Bên trong vi cấu trúc Intel Nehalem , phần 1

Nehalem là tên mã của CPU Intel mới mà có tích hợp Bộ phận điều khiển bộ nhớ bên trong và lần đầu tiên có mặt trên thị trường với tên gọi Core i7 .
Giới thiệu

 Nehalem cũng sẽ được dùng cho những bộ vi xử lí trong những hệ thống Máy chủ những năm tới và nó cũng sẽ có mặt trong những CPU giá rẻ . Những CPU dựa trên cấu trúc này sẽ tích hợp bộ phận điều khiển bộ nhớ hỗ trợ tới Triple-Channel DDR3 , 03 mức Cache và quay trở lại với công nghệ HyperThreading và có Bus ngoài mới có tên gọi QPI ( QuickPath ) . Trong bài này chúng tôi sẽ giải thích những gì mới trong cấu trúc này .

Bên dưới là tóm lược những đặc điểm chính của Nehalem

  • Dựa vào Vi cấu trúc Intel Core
  • Có 02 tới 08 lõi
  • Tích hợp Bộ phận điều khiển bộ nhớ , có thể hỗ trợ Triple-Channel DDR3 .
  • 256KB Cache L2 cho mỗi lõi
  • 8MB Cache L3
  • Tập lệnh SSE 4.2 mới với 07 lệnh mới
  • Hỗ trợ công nghệ HyperThreading
  • Turbo Mode ( tự động Overclock )
  • Nâng cấp vi cấu trúc ( hỗ trợ Maro-Fusion 64-bit , cải tiến Loop Stream Detector , 06 cổng gửi dữ liệu – Dispatch …) .
  • Cải tiến Bộ phận Dự đoán rẽ nhánh bằng cách thêm BTB thứ hai ( Branch Target Buffer )
  • Tối ưu hoá những lệnh SSE không thẳng hàng .
  • Cải thiện hiệu suất ảo hoá . Theo Intel thời gian trễ giảm đi 65% so với bộ vi xử lí 65nm Core 2 và giảm 20% so với 45nm Core 2 .
  • Bus ngoài QPI ( QuickPath Interconnect ) mới .
  • Bộ phận điều khiển năng lượng mới .
  • Công nghệ sản xuất hiện tại là 45nm và những Model tương lai sẽ là 32nm có tên mã “Westmere” .
  • Socket mới với 1366 chân .

Một điều quan trọng nên nhớ đó là những bộ vi xử lí Core 2 được sản xuất dựa trên công nghệ dưới 45nm sẽ có nhiều tính năng hơn những bộ vi xử lí được sản xuất trên công nghệ 65nm . Tất cả những tính năng này đều có mặt trong bộ vi xử lí Nehalem đáng chú ý nhất đó là :

·         Tập lệnh SSE 4.1 với 47 lệnh SSE mới .

·         Công nghệ Deep Power Down ( chỉ có trong những CPU Mobile và được gọi là Trạng thái C6 – State )

·         Công nghệ Enhanced Intel Dynamic Acceleration Technology ( chỉ có trong những CPU Mobile ) .

·         Cải thiện FPU ( Bộ tính toán dấu phảy động ) bằng những phép chia theo hệ số 16 nhanh hơn “ Fast Radix-16 Divider “

·         Cải thiện FPU ( Bộ tính toán dấu phảy động ) bằng “Super Shuffle Engine”

·         Công nghệ Ảo hoá nâng cao “Enhanced Virtualization Technology” ( hiệu suất tăng 25 – 75% khi chuyển trạng thái sang máy ảo ) .

Bộ phận điều khiển bộ nhớ tích hợp

Ngay từ khi bắt đầu những CPU của Intel sử dụng Bus ngoài có tên gọi FSB ( Front Side Bus ) để chia xẻ việc truyền thông tin giữa Bộ nhớ và những yêu cầu I/O . Những bộ vi xử lí mới dựa trên lõi Nehalem sẽ tích hợp Bộ phận điều khiển bộ nhớ bên trong và như vậy sẽ cung cấp hai Bus ngoài : Bus bộ nhớ để nối CPU tới bộ nhớ và Bus I/O để nối CPU với thế giới bên ngoài .

Việc thay đổi này sẽ nâng cao hiệu suất làm việc của hệ thống vì hai lí do

  • Có hai đường dữ liệu riêng biệt cho việc truy cập những thiết bị I/O và bộ nhớ .
  • Truy cập bộ nhớ nhanh hơn vì CPU không cần trao đổi thông tin với bất kì những linh kiện bên ngoài CPU .

Trong Hình 1 và Hình 2 so sánh cấu trúc truyền thống dùng với những CPU của Intel và cấu trúc mới sẽ được dùng với những CPU mà có tích hợp Bộ phận điều khiển bộ nhớ .

 \"\"

Hình 1 : Cấu trúc dùng với những CPU Intel hiện tại

 \"\"

Hình 2 : Cấu trúc được dùng với những CPU mà có tích hợp Bộ phận điều khiển bộ nhớ .

Bus ngoài mới dùng có tên gọi QPI ( QuickPath Interconnect ) và nó cung cấp hai đường dữ liệu riêng biệt ( một để Truyền dữ liệu và một để Nhận dữ liệu ) để CPU trao đổi thông tin với Chipset hoặc với những CPU khác , trong trường hợp máy chủ có nhiều CPU . Như thế cũng dễ dàng nhận thấy QPI có ý tưởng tương tự như với Bus HyperTransport của hệ thống AMD . Thế hệ QPI đầu tiên sẽ làm việc với tốc độ 3.2GHz , truyền hai dữ liệu 16-bit tương đương với tốc độ truyền dữ liệu lớn nhất theo lí thuyết là 12.6 GB/s theo mỗi hướng . Chúng tôi đã có bài viết về Bus QPI các bạn nên xem để biết thêm chi tiết .

Những CPU dùng cho máy tính để bàn sẽ chỉ có 01 đường QPI , trong khi đó những CPU sử dụng trong hệ thống Máy chủ sẽ có 02 Bus QPI độc lập cho phép chúng được nối với nhau trong môi trường SMP ( Symmetric MultiProcessing ) .

 
\"\"
 
Bộ phận điều khiển bộ nhớ tích hợp trong những bộ vi xử lí Nehalem có thể thiết lập theo cấu hình Triple-Channel , có nghĩa là nó có khả năng truy cập ba thanh nhớ cùng một lúc , điều này cho phép cải thiện hiệu suất làm việc trong toàn bộ hệ thống . Theo lí thuyết cấu trúc Triple-Channel cung cấp băng thông tăng thêm 50% so với cấu trúc Dual-Channel trước kia với cùng một tốc độ xung nhịp .

Do vậy để đạt được hiệu suất cao nhất có thể với những hệ thông của Nehalem nếu CPU đó hỗ trợ Triple-Channel như Core i7 , chúng ta cần 03 hoặc 06 thanh nhớ .

Bạn nên chú ý điều thay đổi này bởi vì hầu hết hiện nay trong PC dùng 2GB hoặc 4GB ( với hai hoặc bốn thanh nhớ cho những cấu trúc Dual-Channel ) và với hệ thống Nehalem mới thì bộ nhớ trong PC sẽ có dung lượng 1.5GB , 3GB hoặc 6GB cho hiệu suất cao nhất .

Một điều khác bạn sẽ phải rất cẩn thận vì thực tế nhiều Motherboard sử dụng bộ vi xử lí Core i7 sẽ có 04 khe cắm bộ nhớ . Nếu bạn cắm 04 thanh nhớ cùng một lúc trên Motherboard đó thì hiệu suất toàn hộ hệ thống sẽ giảm xuống . Ví dụ , nếu bạn cài 4GB RAM bằng 04 thanh nhớ , mỗi thanh 1GB thì hệ thống sẽ truy cập 3GB đầu tiên theo cấu hình Triple-Channel , nhưng vùng nhớ giữa 3GB – 4GB sẽ truy cập theo hiệu suất kiểu Single-Channel . Do đó tốt hơn cả bạn nên sử dụng bộ nhớ với dung lượng 1.5GB , 3GB hoặc 06GB với 03 thanh nhớ mà thôi .

 Với cấu hình Triple-Channel , CPU sẽ truy cập bộ nhớ 192-bit một lúc ( 64-bit x 03 ) . Vì thế với bộ nhớ DDR3-1066 sẽ cho phép tốc độ truyền dữ liệu theo lí thuyết lớn nhất là 25.58 GB /s .

Bộ phận điều khiển bộ nhớ tích hợp trong CPU dựa vào Nehalem chỉ hỗ trợ bộ nhớ DDR3 mà không hỗ trợ bộ nhớ DDR2 .

Do việc tích hợp Bộ phận điều khiển bộ nhớ bên trong CPU nền Intel phải thay thế Socket khác có 1366 chân . Do đó bạn không thể nâng cấp hệ thống dùng CPU Intel hiện thời thành Core i7 bằng cách thay đổi CPU .

Bộ nhớ Cache

Với bộ nhớ Cache Intel sẽ sử dụng Cache như AMD đã làm với những bộ vi xử lí Phenom , có nghĩa là bộ nhớ Cache L2 riêng cho mỗi lõi và bộ nhớ Cache L3 dùng chung . Mỗi bộ nhớ Cache L2 sẽ là 256KB và Cache L3 sẽ là 8MB , ít nhất là với những Model đầu tiên ( Intel cũng có thể tung ra thị trường những bộ vi xử lí Xeon dựa vào Nehalem mà có nhiều Cache hơn ) . Bộ nhớ Cache L1 cũng tương tự như với Core 2 Duo bao gồm có 64KB trong đó 32KB cho Lệnh và 32KB cho Dữ liệu .

\"\"

 
Những bộ vi xử lí Core 2 Duo chỉ có một bộ nhớ Cache L2 sử dụng chung cho tất cả lõi bên trong CPU , nhưng những CPU Quad-Core của Intel như Core 2 Quad và Core 2 Extreme có hai bộ nhớ Cache L2 , mỗi bộ nhớ Cache L2 lại sử dụng với 02 lõi . Để hiểu rõ hơn chúng tôi minh hoạ theo Hình 3 và Hình 4 .

 \"\"

Hình 3 : So sánh những cấu trúc Cache

 \"\"

Hình 4 : So sánh những cấu trúc Cache

Cải tiến Pipeline CPU

Như đã đề cập trước đó , Nehalem ( Core i7) được dựa vào cấu trúc dùng trong Core 2 Duo và với một số cải tiến với cách xử lí luồng dữ liệu bên trong CPU . Trong phần này chúng ta sẽ xem nó cải tiến những vấn đề gì .

Core 2 Duo được dựa vào cấu trúc bộ vi xử lí Pentium M , và chính là sự quay trở lại với Pentium III . Tất cả những CPU này thuộc thế hệ thứ 6 của CPU Intel . Pentium 4 là CPU của Intel thế hệ thứ 7 , sử dụng Vi cấu trúc hoàn toàn khác – những bộ vi xử lí Core 2 và Core i7 không liên quan một chút gì với cấu trúc của Pentium 4 . Sở dĩ có vấn đề như vậy vì cấu trúc CPU thế hệ thứ 7 không hiệu quả bằng cấu trúc những CPU thuộc thế hệ thứ 6 .

Trong Hình 5 cho thấy mối liên quan của Vi cấu trúc Nehalem mới với những bộ vi xử lí trước kia . Những sự thay đổi chính có trong mỗi CPU mới và những CPU mới đều nâng cấp những tính năng từ những CPU cũ .

 \"\"

Hình 5 : Mỗi liên quan trong “Cây gia phả “ với Vi cấu trúc Nehalem

Để hiểu xem những gì mới bên trong Vi cấu trúc mới , chúng ta cần nhớ lại rằng những Chương trình được viết bằng tập lệnh x86 ( hay còn gọi là “Macro-Op” hoặc “Instruction “ ) , mà không ai cần biết xem CPU thực hiện sẽ như thế nào . Những Macro-Op đầu tiên sẽ được giải mã thành những Vi lệnh ( được gọi là “ Micro-Op” hoặc “µop” ) . Cấu trúc này gọi là lai ghép giữa CISC/RISC và được giới thiện bên trong bộ vi xử lí Pentium Pro : CPU nhận những lệnh x86 ( CISC ) nhưng lại thực hiện bằng một Vi lệnh riêng biệt nào đó ( RISC ) .

Vi cấu trúc Core , dùng trong những bộ vi xử lí Core 2 , đưa thêm vào sử dụng kiểu Macro-Fusion , mà có khả năng dịch hai lệnh x86 thành một Vi lệnh ( cũng được gọi là “Micro-Ops” ) để thực hiện bên trong CPU , sự cải tiến này cho phép hiệu suất làm việc tăng lên và mức tiêu thụ điện năng trong CPU giảm đi vì nó chỉ cần thực hiện một Vi lệnh thay vì hai Vi lệnh trước kia . tuy nhiên việc dịch hai lệnh x86 thành một Vi lệnh lại chỉ làm việc với những lệnh So sánh và lệnh Rẽ nhanh có điều kiện ( Ví dụ như lệnh CMP , TEST cộng với lệnh Jcc ) .

Vi cấu trúc Nehalem cái tiến Macro-Fusion bằng hai cách .

  • Đầu tiên nó thêm sự hỗ trợ một số lệnh rẽ nhánh mà những CPU Core 2 trước kia không làm được .
  • Thứ hai những lệnh Macro-Fusion trong CPU dựa vào Nehalem được dùng cả hai kiểu 32-bit và 64-bit . Trong khi đó Macro-Fusion dùng trong CPU Core 2 chỉ làm việc khi CPU sử dụng Mode 32-bit mà thôi .

 

Bấm vào đây để xem tiếp phần cuối

 \"\"\"\"