Tải bản đầy đủ (.pdf) (16 trang)

Tài liệu Bên trong vi cấu trúc Intel Nehalem docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (594.14 KB, 16 trang )

Bên trong vi cấu trúc Intel Nehalem

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à sẽ có mặt trên thị
trường trong tháng tới và sẽ có tên gọi Core i7 . Cấu
trúc này 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 ) .

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 .

Vi cấu trúc Core cũng thêm Loop Stream Detector ( LSD ) , về cơ bản
nó là bộ nhớ Cache chứa 18 lệnh nằm ở giữa Bộ phận Lấy dữ liệu (

Fetch ) và Bộ phận Giải mã ( Decode ) từ CPU.



Khi CPU đang chạy vòng lặp ( Loop – là một phần của chương trình
được lặp đi lặp lại vài lần ) , CPU không cần lấy những lệnh yêu cầu
một lần nữa từ Bộ nhớ Cache lệnh L1 : chúng
đã sẵn sàng gần bộ
phận Decode . Trên thực tế khi ấy CPU sẽ tắt Bộ phận Fetch và Dự
đoán rẽ nhánh để tiết kiệm năng lượng .
Với những bộ vi xử lí dựa vào Nehalem thì LSD được chuyển tới phái
sau Bộ phận Decode . Do vạy thay vì giữ những lệnh x86 như trong
những CPU Core 2 thì nó sẽ giữ những lệnh Micro-Ops ( 28 lệnh như
vậy ) . Như vậy hiệu suất làm việc
được cải tiến , bởi vì khi CPU đang
chạy vòng lặp : chúng đã được giải mã rồi và những lệnh đó nằm bên
trong LSD . Như vậy CPU giờ đây khi chạy vòng lặp nó có thể tắt thêm
cả Bộ phận Decode bên cạnh Fetch và Bộ phận dự đoán rẽ nhánh và
điều đó sẽ tiết kiệm điện năng hơn nữa .

Hình 6 : Vị trí của LSD trong những CPU Core và Nehalem
Cấu trúc Nehalem thêm một cổng Gửi dữ liệu ( Dispatch ) phụ và bây
giờ có 12 Bộ phận thự hiện lệnh ( Execution Unit ) , xem hình dưới .
Với những CPU d
ựa vào cấu trúc này có thể có nhiều Vi lệnh được thực
hiện cùng một lúc hơn so với những CPU trước kia .
Hình 7 : Những cổng Dispatch và những Bộ phận thực hiện lệnh (
Execution Unit )
Vi cấu trúc Nehalem cũng thêm hai bộ đệm phụ : TLB ( Translation
Look-aside Buffer) thứ hai với 512-Entry và BTB ( Brach Target Buffer

) thứ hai . Việc tăng bộ đệm này khiến cho hiệu suất làm việc của CPU
tăng lên .
TLB là bảng dùng để chuyển đổi giữa Địa chỉ Vật lí và những Địa chỉ Ảo

bằng Mạch điện bộ nhớ Ảo . Bộ nhớ Ảo là kỹ thuật mà CPU mô phỏng
nhiều bộ nhớ RAM thành những File nằm trên ổ cứng ( hay còn gọi là
Swap File ) để cho phép máy tính tiếp tục hoạt động ngay cả khi
không có đủ bộ nhớ RAM . Trong trường hợp không đủ bộ nhớ RAM để
lưu trữ , dữ liệu sẽ được lưu trữ tạm thời trên ổ cứng nên nó
được mô
phỏng như là bộ nhớ RAM để sử dụng .
Dự đoán Rẽ nhánh ( Branch Prediction ) là mạch điện mà có nhiệm vụ
cố gắng phỏng đoán những bước tiếp theo của chương trình theo
hướng tiến về phía trước , tải vào bên trong CPU những lệnh mà nó
nghĩ rằng CPU sẽ tải theo bước tiếp theo . Nếu việc phỏng đoán là
chính xác thì CPU sẽ không mất thời gian lãng phí để tải những lệnh
này từ bộ nhớ vì chúng đã nằm bên trong CPU . Việc tăng kích thước (
hoặc thêm Bộ đệm thứ hai , trong những CPU Nehalem ) của BTB cho
phép m
ạch điện này tải nhiều lệnh hơn và điều đó tăng việc phỏng
đoán những bước tiến hành tiếp theo của CPU hơn và cũng đồng nghĩa
với việc cải thiện hiệu suất làm việc của CPU .
Cải tiến Quản lí công suất
Những Transistor bên trong CPU làm việc như một cái Công tắc (
Switch ) với hai trạng thái
• Dẫn điện , khi ấy nó làm việc như là Công tắc được đóng để cho
phép dòng điện đi qua
• Không dẫn điện , Công tắc mở không cho phép dòng điện đi qua .

Có một vấn đề đó là khi Switch làm việc ở trạng thái Không dẫn điện ,

theo lí thuyết chúng sẽ không cho phép bất kì dòng điện nào đi qua ,
nhưng thực tế vẫn còn có dòng diện có cường độ nhỏ đi qua . Dòng
điện này gọi là hiện tượng dò điện và nếu cộng tất cả những dòng điện

dò này lại thì sẽ có một kết quả khá lớn và như vậy sẽ gây lãng phí
điện năng vào tạo ra những nhiệt lượng không cần thiết . Một trông
những thchs thức trong thiết kế CPU hiện nay đó là cố gắng loại trừ
dòng điện dò .
Nehalem có Bộ phận điều khiển năng lượng PCU ( Power Control Unit )
bên trong để quản lí năng lượng tốt hơn ( xem Hình 8 ) . Bộ phận này
làm giảm lượ
ng điện dò và cũng cho phép “Turbo Mode” mới . Về cơ
bản CPU có thể cung cấp những điện áp và tần số làm việc khác nhau
cho mỗi lõi , cho những Bộ phận bên ngoài lõi , cho Bộ phận điều khiển

bộ nhớ , cho bộ nhớ Cache và cho những Bộ phận I/O .
Những CPU trước kia của Intel , tất cả lõi phải chạy cùng một tốc độ
xung nhịp nhưng trong Nehalem mõi lõi có thể được lập trình để chạy
những tốc độ xung nhịp khác nhau để tiết kiệm năng lượng .
Hình 8 : Bộ phận điều khiển năng lượng - PCU
Vì tích hợp PCU nên bây giờ nó có thể tắt bất k
ì
lõi nào bên trong CPU ,

đó là một đặc điểm mà những CPU Core 2 không làm được . Như vậy
trong thực tế bây giờ CPU có thể cho bất kì lõi nào thành trạng thái
nguồn C6 ( “Deep Power Down” ) mà không cần phụ thuộc vào những
lõi khác . Như vậy điều đó sẽ cho phép tiết kiệm năng lượng khi đang
chạy PC trong khi đó một hoặc nhiều lõi được nghỉ thậm trí là tắt hẳn
nguồn .


×