Vi cấu trúc Sandy Bridge - phần 1

Như chúng ta đã biết , Intel đưa ra chiến lược “tick-tock” cho họ bộ vi xử lí  của mình .

Nguyên tắc của chiến lược này rất đơn giản đó là họ nâng cấp quy trình sản xuất hoặc đưa ra vi cấu trúc mới . Chu kì của chiến lược này trong thời gian 02 năm .

Cuối năm  2008 , Intel giới thiệu vi cấu trúc Nehalem và trong đầu năm  2010 bắt đầu sản xuất những bộ vi xử lí  Westmere bằng công nghệ 32nm , sau đó trong năm  2011 lại có một chu kì mới , cấu trúc mới .

 

\"\"

 

Sandy Bridge là tên mã của vi cấu trúc mới sau Nehalem trong những bộ vi xử lí được sản xuất bằng công nghệ 32nm .

Trước khi nói về chi tiết công nghệ của Sandy Bridge , chúng ta cần xem xét về việc nguyên nhân Intel cần thay thế vi cấu trúc Nehalem . Những CPU dựa trên cấu trúc Nehalem rất nhanh và được người tiêu dùng nồng nhiệt chào đón . Đối thủ của Intel là AMD không  hề có bất kì vi cấu trúc có giá trị nào để cạnh tranh được với Nehalem  do những bộ vi xử lí  Athlon II hoặc Phenom II đều dựa trên vi cấu trúc Stars cũ kỹ và chậm hơn . Tuy nhiên AMD lại đặt nhiều hy vọng với vi cấu trúc Bulldozer hoàn toàn mới . Mặc dù có nhiều ưu thế nhưng Nehalem lại có một số nhược điểm bắt buộc những kỹ sư của Intel phải làm việc cật lực để đưa ra những sản phẩm mới .

Đầu tiên đó là quy trình sản xuất những bộ vi xử lí  Westmere phức tạp . Những CPU này có chứa hai khuôn ( Die ) bán dẫn dựa trên hai công nghệ sản xuất khác nhau được ghép chung vào một vỏ . Trong khi đó quy trình 32nm hiện thời đã đủ sức để cho phép sản xuất những bộ vi xử lí  phức tạp hơn với sản lượng cao . Thứ hai những bộ vi xử lí  Nehalem đã đạt tới tần số làm việc lớn nhất , do vậy rất khó để có thể chạy Overclock mà lại không vượt qua mức TDP chuẩn . Điều đó có nghĩa là cần tìm ra cách mới để tăng hiệu suất làm việc tức là cần một vi cấu trúc mới .

 

Thông tin chung

 

Hai năm đã qua , Intel đã làm rất tốt công việc tích hợp nhiều tính năng của Chipset vào trong CPU . Những bộ vi xử lí  đầu tiên của cấu trúc Nehalem là Bloomfield , đã tích hợp mạch điều khiển bộ nhớ . Thế hệ tiếp theo là Lynnfield đã có thêm điều khiển Bus PCIe m bên cạnh điều khiển bộ nhớ . Sau đó Clarkdale tích hợp thêm lõi đồ họa  , mặc dù lõi đồ họa  là khuôn bán dẫn riêng bên trong gói CPU . Sandy Bridge đã làm công việc cuối cùng đó là tích hợp tất cả bằng một công nghệ sản xuất trên cùng khuôn bán dẫn bao gồm : lõi x86 , lõi đồ họa  , mạch điều khiển bộ nhớ và mạch điều khiển Bus PCIe .

 

\"\"

 

Khuôn bán dẫn của Sandy Bridge có kích thước 225mm2 , nhỏ hơn so với Lynnfield hoặc Bloomfield 4-lõi hoặc thậm chí cả Gulftown 6-lõi 32nm . Những CPU Sandy Bridge sẽ có 2- hoặc 4-lõi , hỗ trợ công nghệ Hyper-Threading , 8MB Cache L3 , hỗ trợ bộ nhớ DDR3 2-kênh , sẽ hỗ trợ 16 Lane PCIe 2.0 , lõi đồ họa  hỗ trợ DirectX 10.1 .

Bên cạnh tích hợp nhiều thành phần khác , trong vi cấu trúc Sandy Bridge cũng có những sự cải tiến đáng kể . Cấu trúc x86 trong Sandy Bridge đã được thay đổi để bảo đảm chạy nhanh hơn so với những bộ vi xử lí  thế hệ trước khi chạy cùng tốc độ xung nhịp , nhưng chúng lại có mức độ tiêu thụ điện  năng ít hơn do vậy mà những CPU Sandy Bridge sẽ có thể chạy với tốc độ cao hơn .

Hơn thế nữa trong vi cấu trúc x86 mới lại hỗ trợ những lệnh AVX (Advanced Vector Extensions) mới , được sử dụng nhiều trong những thuật toán của Multimedia , tài chính hoặc khoa học . AVX khác với những tập lệnh SSE Vector trước kia như có độ rộng phép toán cao hơn 256-bit thay vì 128-bit , do đó mà chúng sẽ cho phép xử lí dữ liệu lớn hơn trong khi mức độ tiêu hao tài nguyên ít hơn .

 

\"\"

 

Bằng việc phát hành Sandy Bridge hồi đầu năm  nay , Intel hy vọng những bộ vi xử lí  này sẽ nhanh chóng chiếm lĩnh thị trường trong hầu hết những phân khúc giá cả khác nhau từ 100-300$ với những Chip Core i3 / i5 và i7 . Cuối năm 2011 , Intel sẽ đưa ra những Chip Sandy Bridge rẻ tiền hơn .

 

\"\"

\"\"

 

Bên cạnh những bộ vi xử lí  trên , Intel cũng có những Chip Sandy Bridge tiết kiệm điện  năng cho hệ thống  mobile với TDP 45W hoặc 65W

 

\"\"

 

Nếu xét về giá những bộ vi xử lí Nehalem vẫn sẽ thống trị trong những sản phẩm giá cao với những CPU Bloomfield và Gulftown LGA1366 và có thể bị thay thế từ cuối năm  nay . Intel sẽ đưa ra nền tảng  máy chủ để bàn LGA2011 đó là cấu trúc Sandy Bridge E đặc biệt với 8-lõi , 16MB Cache L3 , điều khiển bộ nhớ 4-kênh , 32 Lane PCIe 2.0 .

Sandy Bridge không  phải có tất cả những bộ phận hoàn toàn mới khi so sánh với Clarkdale , nhưng nó lại dùng Socket LGA1155 trên những Motherboard mới .

 

\"\"

 

Cùng với Sandy Bridge , Intel cũng có họ Chipset mới : P67 và H67 với đồ họa  tích hợp . Như những Chipset LGA1156 , P67 và H67 mới rất đơn giản vì bây giờ những chức năng của North Bridge đã được chuyển vào bên trong CPU vì vậy chỉ còn một Chip South Bridge với những tính năng thông thường . Chúng sẽ hỗ trợ 02 cổng SATA 6.0Gbps

 

\"\"

 

Thật không  may khi mà những Chipset mới lại không hỗ trợ USB 3.0 vì thế những nhà sản xuất Motherboard LGA1155 sẽ dùng Chip điều khiển của nhà sản xuất khác như NEC , VIA để hỗ trợ USB 3.0 .

Dưới đây là biểu đồ so sánh bộ vi xử lí  Sandy Bridge với Lynnfield , có cùng số lõi x86 , làm việc với cùng tốc độ xung nhịp , cho thấy vi cấu trúc mới có hiệu suất làm việc cao hơn từ 5-10% .

 

\"\"

 

Tuy nhiên Sandy Bridge lại có mức độ tiêu thụ điện  năng thấp hơn 25% .

 

Hiệu suất cao hơn từ đâu ?

 

Các kỹ sự Intel khẳng định Sandy Bridge có hiệu suất làm việc tăng lên trong khi mức độ tiêu thụ điện  năng giảm đi . Sandy Bridge không phải chỉ cải tiến dựa trên cấu trúc Nehalem mà nó mượn nhiều ý tưởng từ dự án Pentium 4 thất bại . Tất nhiên vi cấu NetBurst , trong Pentium 4 , là sự thất bại của Intel nhất là việc nó tiêu thụ điện  năng quá lớn , nhưng một số bộ phận trong Pentium 4 vẫn có mặt trong Core i3 , i5 và i7 mới .

Chúng ta bắt đầu chú ý tới sự thay đổi đáng kể trong vi cấu trúc Sandy Bridge bắt đầu từ Pipeline : khi những lệnh x86 được giải mã hóa thành những vi lệnh ( micro-ops ) đơn giản hơn . Bộ phận giải mã tương tự như trong Nehalem , nó xử lí 04 lệnh trong mỗi chu kì xung nhịp và hỗ trợ những công nghệ Micro-Fusion và Macro Fusion . Tuy nhiên những lệnh xử lí chuyển thành vi lệnh không chỉ được chuyển tới tầng xử lí tiếp theo mà nó còn được giữ lại ở mức độ Cache L0 . Nói một cách khác , bên cạnh bộ nhớ Cache L1 32KB thông thường cho những lệnh như trong hầu hết các bộ vi xử lí  x86 , Sandy Bridge còn có thêm Cache L0 để lưu trữ những kết quả đã được giải mã . Cache này được lấy lại từ ý tưởng của vi cấu trúc NetBurst , nguyên lí hoạt động của nó tương tự như Execute Trace Cache .

 

\"\"

 

Cache vi lệnh đã được giải mã có dung lượng 6KB và có thể lưu trữ được 1500 vi lệnh , trợ giúp rất nhiều cho Bộ phận giải mã ( Decoder ) . Nếu như Decoder phát hiện ra những lệnh đã được giải mã trước đó và bây giờ đang được lưu trữ trong Cache L0 thì nó sẽ không  cần phải thực thi quá trình giải mã mới . Bộ nhớ đệm Cache L0 này hỗ trợ rất nhiều để giảm bớt tải công việc Decoder , đó là phần tiêu thụ nhiều điện  năng trong CPU . Theo Intel 80% những lệnh lưu trữ trong Cache L0 được sử dụng lại trong hầu hết các ứng dụng . Bên cạnh đó khi Decoder trong Sandy Bridge nghỉ nó sẽ bị tạm thời vô hiệu hóa để tiết kiệm điện  năng.

Cải tiến quan trọng thứ hai trong những tầng Pipeline đầu tiên đó chính là Bộ phận dự đoán rẽ nhánh - BPU ( Branch Prediction Unit ) .

Bạn có thể không đánh giá hết được tầm quan trọng khi mà BPU làm việc . Mỗi khi dự đoán rẽ nhánh bị sai nó sẽ yêu cầu dừng lại và xóa hoàn toàn Pipeline . Kết quả là dự đoán rẽ nhánh sai không  chỉ ảnh hưởng tới hiệu suất làm việc mà lại tốn điện năng để thực hiện lại toàn bộ Pipeline . Intel đã thiết kế BPU để nó có thể làm việc cực kì hiệu quả trong những bộ vi xử lí  mới . Tuy nhiên Intel đã thay đổi tất cả những bộ đệm của Sandy Bridge dùng để lưu trữ những Địa chỉ Rẽ nhánh và những Lịch sử Dự đoán bằng cách tăng thêm khoảng trống để lưu trữ dữ liệu này . Kết quả là Sandy Bridge có thể lưu trữ Lịch sử Dự đoán nhiều hơn mà không  cần phải tăng kích thước của cấu trúc dữ liệu dùng trong BPU .Theo đánh giá của Intel , nhờ đó là BPU trong Sandy Bridge đã dự đoán chính xác nhiều hơn 5% so với những vi cấu trúc trước kia .

 

\"\"

 

Nhưng bộ phận quan trọng trong tất cả các bộ vi xử lí  OOO ( Out-of-Order ) chính là OOO Cluster , nó thay đổi đáng kể . Ở đây vi cấu trúc Sandy Bridge và NetBurst có vẻ như gần gũi với nhau nhất . Những kỹ sư của Intel đã mang PRF ( Physical Register File ) quay lại trong Sandy Bridge . PRF không  được dùng trong vi cấu trúc Nehalem mà tập trung cải tiến RRF (Retirement Register File ) . Trước kia , khi chúng sắp xếp lại những vi lệnh , chúng dùng để lưu trữ tất cả thanh ghi sao lưu lại của mỗi hoạt động trong bộ đệm . Bây giờ chúng dùng liên kết tới những giá trị thanh ghi lưu trữ trong PRF . Cách làm này cho phép không  chỉ hạn chế truyền dữ liệu thừa , mà nó còn ngăn chặn việc sao lưu những thanh ghi có cùng nội dung và như vậy tiết kiệm được không gian .

 

\"\"

 

Kết quả là OOO Cluster trong Sandy Bridge có thể giữa được 168 vi lệnh tại cùng một thời điểm , còn trong Nehalem chỉ có thể lưu trữ được 128 vi lệnh trong ROB ( ReOrder Buffer ) . Bên cạnh đó một số điện năng cũng được tiết kiệm . Tuy nhiên việc thay thế giá trị thực tế bằng những liên kết tới đó cũng có mặt hạn chế đó là : Pipeline thực hiện cần có thêm tầng mới cho con trỏ ( Pointer ) để quả lí những liên kết .

Mặc dù vậy những nhà phát triển thực sự không có nhiều sự lựa chọn trong Sandy Bridge . Cấu trúc này hỗ trợ những lệnh AVX mới với những thanh ghi 256-bit . Việc thay đổi này cũng có mặt lợi là hại vì phải bù đắp bằng những công việc khác nhưng Intel đã bảo đảm những lệnh mới trong Sandy Bridge thực thi đủ nhanh . Trong trường hợp này để bảo đảm tận dụng hết những ưu điểm thì những nhà phát triển phần mềm sẽ phải chấp nhận dùng những lệnh mới trong ứng dụng của mình . AVX mới tăng thực thi những lệnh song song thông qua những tính toán vector .

Những lệnh AVX không  khác hơn những lệnh SSE , khi tăng kích thước của thanh ghi vector SIMD lên 256-bit . Những lệnh AVX mới cho phép thực hiện lệnh mà không  phá hủy có nghĩa là dữ liệu đầu tiên trong thanh ghi không bị mất . Kết quả là tập lệnh AVX , như là một sự cải tiến của cấu trúc  được coi như là sự sáng tạo để tăng hiệu suất làm việc và tiết kiệm điện năng bởi vì chúng cho phép thực hiện nhiều thuật toán đơn giản và dùng vài lệnh để hoàn thành nhiệm vụ . Những lệnh AVX hoàn toàn có lợi với những tính toán nặng tính dấu phảy động như Multimedia , những ứng dụng khoa học và tài chính .

Những Bộ phận thực hiện ( Execution Unit ) cũng đã được thiết kế lại nhất là để cho những lệnh 256-bit thực hiện một cách hiệu quả . Thiết kế lại chủ yếu làm việc với hai cặp Execution 128-bit để xử lí gói dữ liệu 2567-bit một cách hiệu quả . Mỗi cổng ( Port ) thực thi trong ba cổng trong Sandy Bridge ( như Nehalem ) có những bộ phận để làm việc cùng một lúc với ba kiểu dữ liệu 64-bit , 128-bit nguyên và 256-bit thực . Và điều quan trọng nhất đó là sự sắp xếp lại này không  ảnh hưởng tới băng thông của Execution Unit .

 

\"\"

 

Sandy Bridge được thiết kế để làm việc với những lệnh Vector 256-bit vì thế mà những nhà phát triển của Intel đã phải chú tâm tới hiệu suất của những Bộ phận chức năng thực hiện việc Tải và Lưu trữ dữ liệu . Trong Nehalem có 03 cổng và chúng cũng vẫn được dùng trong Sandy Bridge , tuy nhiên để tăng hiệu quả công việc , Intel đã hợp nhất hai trong ba cổng này ( màu vàng trong hình dưới ) dùng để phục vụ Tải và Lưu trữ dữ liệu . Cổng thứ ba không  thay đổi chỉ làm nhiệm vụ lưu trữ dữ liệu .

Mỗi cổng có thể cho phép 16-byte / chu kì đồng hồ và tất cả đều qua bộ nhớ Cache L1 dữ liệu . Kết quả là Sandy Bridge cho phép tải 32-byte dữ liệu và lưu trữ 16-byte dữ liệu trong một chu kì đồng hồ .

 

\"\"

 

Nếu chúng ta so sánh những điều đã mô tả trên sẽ thấy Sandy Bridge có cấu trúc thay đổi đáng kể . Những sự thay đổi này sẽ cho phép sửa đổi những nút thắt cổ chai dữ liệu trong Nehalem

 

\"\"

 

 

\"\"