Nhom 01 - Phân tích kiến trúc và nguyên lý làm việc của bộ VXL Pentium 4 Dual Core - Pdf 25

ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
LỚP KTMP2-K6
BÀI TẬP LỚN KIẾN TRÚC MÁY TÍNH
ĐỀ TÀI: PHÂN TÍCH KIẾN TRÚC VÀ NGUYÊN LÝ LÀM VIỆC CỦA BỘ VXL
PENTIUM 4
NHÓM 1:
Hỏa Tiến Anh
Trương Đức Anh
Phan Ngọc Anh
Đỗ Việt Anh
Nguyễn Tuấn Anh
1
MỤC LỤC
PHẦN I: GIỚI THIỆU VXL INTEL PENTIUM 4 4
PHẦN II: NỘI DUNG CHÍNH 6
I.CÁC CÔNG NGHỆ MỚI 6
1.1 Hyper-Pipelined Technology - Công nghệ Siêu ống 6
1.2. Execution TraceCache 8
1.3.Rapid Execution Engine 9
1.4. Advanced Transfer Cache (ATC) 9
1.5. Out-Of-Order Execution 9
1.6. Branch Prediction (phỏng đoán nhánh) 10
1.7. Rapid Execution Engine 10
1.8. Quad Data Rate 10
1.9. Enhanced Floating Point & Multimedia Unit 11
1.10.Streaming SIMD Extension 2 (SSE2) Instructions 11
1.11. Hyper Threading (siêu phân luồng) 11
PHẦN II: SƠ ĐỒ KHỐI, CẤU TRÚC, CHỨC NĂNG CÁC BỘ PHẬN 12
1. SƠ ĐỒ KHỐI KIẾN TRÚC NETBURST 12
2. SƠ ĐỒ KHỐI BỘ VI XỬ LÝ PENTIUM 4 15
3.OUT-OF-ODER EXCUTION LOGIC 22

độ FSB là 266 MHz (công nghệ Double Data Rate).
Bộ vi xử lí Pentium IV có đến 42 triệu Tranzito,kích thước chết của nó là 217
mm2,công suất tiêu thụ 55 W khi làm việc ở mức 1,5GHz.Tốc độ bus hệ thống 3,2 GB/s , rất cao
ở thời điểm bấy giờ.
4
Bảng: So sánh hiệu suất Pentium 3 và Pentium 4
Bảng trên là sự so sánh hiệu suất của Pentium IV 1,5GHz và Petium III 1,0 GHz.Rõ rang ta có
thể thấy tính vượt trội dành cho Pentium IV.Các ứng dụng sốnguyên cao hơn 15-20 %,trong khi
ứng dụng dấu chấm động và multimedia lên tới 30-70%.Pentium 4 đầu tiên (tên mã là
Willamette) xuất hiện cuối năm 2000 đặt dấu chấmhết cho “triều đại” Pentium III. Willamette
xuất sản xuất trên công nghệ 0,18 ,có42 triệu transistor(nhiều hơn gần 50% so với Pentium
III),bus hệ thống (system bus) 400 MHz,bộ nhớ đêm tích hợp L2 256 KB,socket 423 và 478.P4
Willamette có tốc độ như 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9 , 2.0 GHz. P4 Northwood xuất hiện vào
tháng 1 năm 2002,được sản xuất trên công nghệ0,13,có khoảng 55 triệu transistor,bộ nhớ
đệm tích hợp L2 512 KB,socket 478.Northwood có 3 dòng gồm Northwood A(system bus
400 MHz),tốc độ 1.6, 1.8, 2.0, 2.2, 2.4, 2.5, 2.6, và 2.8 GHz.Northwoood B(system bus 533
MHz) tốc độ 2.26, 2.4, 2.53, 2.66, 2.8, 3.06 GHz(riêng 3.06 GHz có hỗ trợ công nghệ siêu phân
luồng Hyper Threading-HT).Northwood C (system bus 800 MHz,tất cả hỗ trợ HT),gồm 2.4,2.6,
3.0, 3.2, 3.4 GHz.
P4 Prescott (năm 2004).Là BXL đầu tiên sản xuất theo công nghệ 90nm,kích
thước vi mạch giảm 50% so với P4 Willamette.Điều này cho phép tích hợp nhiều
transistor hơn trên cùng kích thước (125 triệu transistor so với 55 triệu transistor của
P4 Northwood),tốc độ chuyển đổi của transistor nhanh hơn,tăng khả năng xử lí,tính
toán.Dung lượng bộ nhớ đệm tích hợp L2 của P4 Prescott gấp đôi so với P4
5
Northwood(1MB so với 512KB).Ngoài tập lệnh MMX,SSE,SSE2,Prescott được bổ
sung tập lệnh SSE3 giúp các ứng dụng xử lí video và game chạy nhanh hơn.Đây là
giai đoạn “giao thời ” giữa socket 478-775LGA,system bus 533 MHz-800MHz và mỗi
sản phẩ được đặt tên khiến người dùng càng bối rối khi chọn mua.
Prescott A(FSB 533MHz)có các tốc độ 2.4, 2.26, 2.8 (socket 478),Prescott 505

đây là công nghệ siêu ống lệnh (Hyper Pipelined Technology).
Việc tăng độ dài pipeline hướng đến mục tiêu tăng xung nhịp. Có nhiều giai
đoạn hơn đồng nghĩa với các đơn vị chức năng có thể được cấu thành với số lượng
transitor ít hơn. Và với ít transistor thì sẽ dễ dàng nâng cao xung nhịp, về cơ bản là
như vậy.
20 stage (giai đoạn) Pipeline của Pentium IV :
• Stage 1 & 2 - Trace cache next instruction pointer: tìm vi lệnh tiếp theo sẽ được
thực hiện trong BTB (Branch Target Buffer).
• Stage 3 & 4 - Trace cache fetch: nạp vi lệnh từ Trace Cache.
• Stage 5 - Drive: gửi vi lệnh đến resource allocator và mạch RAT.
• Stage 6 - Allocate: kiểm tra tài nguyên CPU cần thiết cho việc thực hiện lệnh. Ví dụ bộ
7
nhớ được dùng làm bộ đệm.
• Stages 7 & 8 - Rename: nếu chương trình sử dụng một trong tám thanh ghi
chuẩn x86 nó sẽ được đổi tên thành một trong 128 thanh ghi của Pentium IV.
• Stage 9 - Queue: các vi lệnh được đưa vào các hàng đợi dành riêng cho từng loại
(ví dụ: truy cập bộ nhớ, xử lý số nguyên hay dấu chấm động …). Lệnh nằm yên trong
hàng đợi cho đến khi có một chỗ trống tương ứng xuất hiện trong scheduler.
• Stages 10, 11, 12 - Schedule: scheduler sắp xếp lại các lệnh nhằm giữ cho mọi
execution unit đều hoạt động. Ví dụ, nếu đơn vị xử lý dấu chấm độngrảnh
rỗi,scheduler lấy ra một lệnh xử lý dấu chấm động để gửi cho đơn vị đó, mặc dù
lệnh tiếp theo trong chương trình có thể là một lệnh xử lý số nguyên.
• Stages 13 & 14 - Dispatch: gửi vi lệnh tới Execution Unit tương ứng.
• Stages 15 & 16 - Register Files: đọc register file.
• Stage 17 - Execute: vi lệnh được thực hiện.
• Stage 18 - Flags: cờ của vi lệnh được cập nhật.
• Stage 19 - Branch Check: kiểm tra nhánh của chương trình có cùng với suy đoán
của mạch dự đoán rẽ nhánh hay không.
• Stage 20 - Drive: gửi kết quả của việc kiểm tra này tới Branch Target
Buffer(BTB).Mặc dù về lý thuyết, pipeline dài có thể làm tăng hiệu năng, tuy nhiên, bất

throughput channel) với "nhân CPU" (CPU core). ATC bao gồm một giao diện 256-bit
(32 byte) để truyền dữ liệu trên mỗi đồng hồ nhân (core clock). Điều này cho phép ATC
(L2 Cache) hỗ trợ tốc độ cao gấp 4 lần tốc độ truyền dữ liệu của L2 Cache sử dụng trong
các CPU Pentium III.
Ví dụ: CPU Pentium 4 - 2.53Ghz có tốc độ truyền dữ liệu lên tới 81GB/giây, so với
tốc độ truyền dữ liệu 16GB/giây của Pentium III - 1.0 Ghz
1.5. Out-Of-Order Execution
Nhân hỗ trợ Out-of-Order Execution có thể sắp xếp lại các vi lệnh, cho phép lệnh
(cùng với đầu vào và các tài nguyên hệ thống cần thiết) để thực thi ngay khi có thể và
tránh lãng phí thời gian. Khi một vi lệnh đang chờ được cấp phát tài nguyên hoặc dữ
liệu, các lệnh khác (thường là trong buffer) có thể chen vào thực thi. Nhờ thực thi các
9
lệnh song song, những khoảng trễ của pipeline bị loại bỏ. Nhân có thể thực thi nhiều
lệnh trong mỗi giai đoạn của pipeline.
Sau đó in-order retirement unit sẽ tìm các lệnh được thực hiện xong và không còn
phụ thuộc dữ liệu cũng như liên quan đến các lệnh rẽ nhánh chưa hoàn tất để xử lý
và lưu kết quả ra bộ nhớ theo trật tự ban đầu của nó.
1.6. Branch Prediction (phỏng đoán nhánh)
Kiến trúc NetBurst có thể nhớ được các nhánh trong chương trình chạy, giúp làm
giảm độ trễ trong quá trình nhảy và nạp đầy ống lệnh, Các nhánh được lưu giữ trên
cơ sở địa chỉ lệnh bên trong Branch Target Buffer (BTB). Bộ vi xử lý có thể dự đoán
được các nhánh sắp tới trước cả khi lệnh rẽ nhánh được thực hiện.
1.7.Rapid Execution Engine
Trong Pentium 4, có 2 ALU (Arithmetic Logic Unit) và hai AGU
(Address Generation Unit) chạy với mức xung gấp đôi xung clock. Rapid
execution engine được giới thiệu là làm giảm độ trễ của việc thực hiện các phép
toán đơn giản.
Điều này thực sự có ý nghĩa vì hiệu năng và tốc độ của vi xử lý phụ thuộc rất
nhiều vào các tính toán số nguyên trên ALU.
1.8.Quad Data Rate

một tập các thanh ghi, kể cả thanh ghi đếm chương trình PC riêng (separate program
counter), CPU vật lý sẽ luân phiên các giai đoạn tìm/giải mã giữa hai CPU logic và chỉcố
gắng thực thi những thao tác từ hai chuỗi lệnh đồng thời theo cách hướng tới
những đơn vị thực thi ít được sử dụng.
Bảng: Phân luồng “Hyper-Threading”
PHẦN II. SƠ ĐỒ KHỐI, CẤU TRÚC, CHỨC NĂNG CÁC BỘ PHẬN
1.SƠ ĐỒ KHỐI KIẾN TRÚCNETBURST
12
Sơ đồ khối của vi kiến trúc NetBurst
13
Die picture of Pentium IV processor
Sơ đồ khối vi kiến trúc NetBurst Gồm 4 thành phần chính sau:
1. The In-Order Front End
2. The Out-Of-Order Execution Engine
3. The Integer and Floating-Point Execution Units
4. The Memory Subsystem
1.1.The In-Order Front End
In-Order Front End có nhiệm vụ nạp và giải mã lệnh.Front End có khả năng dự đoán
rẽ nhánh chính xác cao nhờ lưu trữ lịch sử thực hiện chương trình và suy đoán nhánh
mà chương trình sẽ thực hiện tiếp.Địa chỉ lệnh dự đoán từ front-end branch
prediction logic này được sử dụng để nạp các byte lệnh từ Cache L2.Những byte lệnh
IA 32 bit này sau đó được giải mã thành các vi lệnh (uops).
Vi kiến trúc Netburst có 1 dạng Cache lệnh L1 đặc biệt tiên tiến gọi là Execution
Trace Cache.Không giống như các Cache lệnh thong thường,Trace Cache nằm giữa
khối giải mã và khối thực hiện cơ bản như hình vẽ.Ở vị trí này Trace Cache có thể lưu
trữ được các lệnh IA 32 đã được giải mã hay còn gọi là các vi lệnh.Sau khi được lưu
trữ vào đây,các lệnh IA 32 đã được giải mã này sẽ được xóa khỏi vòng lặp thực hiện
lệnh chính của chương trình.Thông thường các lệnh được giải mã 1 lần và được đặt vào
Trace Cache sau đó được sử dụng nhiều lần từ đây giống như giống như các
cache lệnh thông thường trước .Bộ giải mã lệnh IA 32 chỉ được sử dụng khi

subsystem.
16
2.1Front End.
Sơ đồ Front End
Khối Front End bao gồm một số đơn vị như hình vẽ,bao gồm :
- Instruction TLB (ITLB)
- the front-end branch predictor (labeled here Front-End BTB)
- the IA-32 Instruction Decoder
- the Trace Cache
-Micocode ROM
2.2Trace Cache
Trace Cache là cache chính hay cache lệnh level 1(L1) đảm nhiệm vận chuyển 3 vi
lệnh mỗi xung nhịp đồng hồ tới khối logic Out-Of-Order Execution.Phần lớn các lệnh
trong chương trình là được nạp và thực hiện từ Trace Cache.Chỉ khi nào miss Trace
17
Cache thì vi kiến trúc NetBurst mới nạp và giải mã đến các lệnh ở Cache L2.Trace
Cache có khả năng nắm giữ tới 12 vi lệnh, mỗi vi lệnh trong Pentium IV có độ rộng
100-bit nên trong Trace Cache có dung lượng 150KB (12288 x 100 /8).Nó có tỷ lệ hit từ
8 đến 16K byte tương tự như các Cache lệnh thông thường.
Các lệnh IA-32 khá rườm rà để giải mã.Mỗi lệnh này có nhiều giá trị và lựa chọn
khác nhau.Khối logic giải mã lệnh(instruction decoding logic) cần phải sắp xếp lại và
chuyển đổi các lệnh phức tạp này thành các vi lệnh đơn giản mà máy có thể hiểu và
thực hiên được.Việc giải mã này sẽ đặc biệt khó khi cố gắng giải mã các lệnh IA 32
phức tạp trong mỗi chu kì xung nhịp đồng hồ khi Pentium IV hoạt động ở mức tần số
xung nhịp đồng hồ cao. Một bộ giải mã IA-32 băng thông cao có khả năng giải mã
nhiều lệnh mỗi nhịp đồng hồ, có nhiều đường ống để làm công việc đó. Khi một nhánh
dự đoán sai, thời gian phục hồi ngắn hơn nhiều nếu máy không giải mã lại tập lệnh IA-
32 cần để tiếp tục thực hiện tại vị trí nhánh mục tiêu. Bằng việc lưu trữ các vi lệnh của
các lệnh đã được giải mã ,vi kiến trúc NetBurst có thể bỏ qua phần lớn thời gian giải
mã lệnh do đó giảm thiểu độ trễ khi miss dự đoán và cho phép việc giải mã trở nên

Đơn vị logic nạp (fetch) sẽ luôn cố gắng nạp đầu vào cho đơn vị giải mã là các lệnh
IA 32 tiếp theo mà chương trình sẽ cần thực hiện. Đơn vị Instruction prefetch sẽ được
chỉ đạo từ đơn vị logic branch prediction (đơn vị dự đoán nhánh)(trên hình vẽ chính là
khối Front-End BTB) để biết được lệnh gì sẽ được nạp tiếp theo.Bộ dự đoán nhánh cho
phép bộ xử lí bắt đầu nạp và thực hiện lệnh trước khi kết quả của nhánh trước đó
được biết. Đơn vị dự đoán rẽ nhánh này(branch prediction logic/front – end BTB) có
dung lượng khá rộng lên tới 4K entries ,do đó nó có thể nắm được hầu hết các thông
tin của các nhánh cũ đã thực hiện. Nếu 1 nhánh không tìm thấy ở BTB ,bộ dự đoán rẽ
nhánh dự đoán kết quả của nhánh dựa trên hướng của sự dời chỗ nhánh (tiến hoặc
lùi). Nhánh lùi được cho là được thực hiện và nhánh tiến cho là không thực hiện.
19
2.5 IA-32 Instruction Decoder
The Istruction Decoder nhận các byte lệnh 32 bit từ Cache L2 64 bit,và giải mã
chúng thành các vi lệnh(uops) mà máy có thể hiểu và thực hiện được.Một bộ giải mã
đơn instruction decoder chỉ có thể giải mã được tối đa là 1 lệnh IA 32 trong 1 chu kì
đồng hồ mà thôi.Một số lệnh IA 32,mỗi lệnh có thể chuyển đổi được thành 1 vi lệnh
đơn,nhưng cũng có nhiều lệnh thì lại mỗi lệnh chuyển đổi được thành nhiều hơn 1 vi
lệnh .Trong trường hợp cần nhiều hơn 4 vi lệnh để hoàn thành giải mã 1 lệnh IA 32 thì
lúc này bộ giải mã sẽ gửi tín hiệu vào trong microcode ROM để lấy các vi lệnh tương
ứng .Tuy nhiê phần lớn các lệnh không cần phải nhảy vào microcode ROM để hoàn
thành giải mã.Ví dụ điển hình về 1 lệnh phức tạp gồm nhiều vi lệnh chúng ta có thể kể
đến lênh string move,lệnh này cần tới hàng nghìn vi lệnh để hoàn thành giải mã nó.
3.OUT-OF-ODER EXCUTION LOGIC
Out- Of – Order Excution Engine bao gồm các thành phần:
- allocation, renaming.
- scheduling functions.
Khối logic thực thi này có một số bộ đệm để sắp xếp lại trật tự thực hiện các lệnh khi
chúng được đưa vào ống lệnh và được lập lịch thực hiện để có thể thực hiện chương
trình nhanh hơn.Bộ xử lí sẽ cố gắng tìm ra thật nhiều lệnh có thể thực hiện xong chỉ
trong mỗi chu kì và thực hiện chúng kể cả khi chúng không còn sắp xếp theo trình tự

Scheduler là giữ cho mọi execution unit trong CPU luôn luôn làm việc. Các vi lệnh
tới scheduler sẽ đƣợc nó phân tích và đặt vào một trong bốn scheduler unit tùy theo
kiểu của vi lệnh:
 Memory scheduler unit: cho những vi lệnh liên quan đến bộ nhớ. Những vi
lệnh này đến từ hàng đợi của các vi lệnh bộ nhớ (memory microinstruction
queue).
• Fast scheduler unit: cho những vi lệnh đơn giản.
• Slow / General FP scheduler unit: cho những vi lệnh khác và những vi lệnh
xử lý dấu chấm động phức tạp.
• Simple FP scheduler unit: cho những vi lệnh dấu chấm động đơn giản.
Scheduler sắp xếp những vi lệnh theo kiểu của chúng. Sau đó nó có thể gửi mỗi
vi lệnh trực tiếp tới Execution Unit tương ứng để xử lí. Những Execution Unit được
nối tới Scheduler qua 04 cổng gửi đi (dispatch port) được đánh số từ 0 tới 3, như
hình dưới đây:
22
4.INTEGER AND FLOATING-POINT EXECUTION UNITS
4.1 Execution Unit
Execution Unit là nơi mà các lệnh thực sự được thực hiên.Nó được thiết kế ra đểtối ưu
hoá hiệu suất tổng thể bằng cách xử lí các trường hợp phổ biến nhất càng nhanhcàng tốt.Có
nhiều đơn vị thực hiện (Execution units) khác nhau trong vi kiến trúcNetBurst.
Như đã đề cập, Pentium IV có bốn cổng gửi đi đánh số từ 0 tới 3. Mỗi cổng
được nối tới một, hai hoặc ba đơn vị thực thi (execution unit). Pentium IV có 05
execution unit làm việc song song (02 FPU cho số dấu chấm động, 03 ALU cho số
nguyên) và thêm 02 AGU để đọc và ghi dữ liệu vào bộ nhớ RAM. Các execution
unit, kể cả cùng loại, được chia ra phục vụ những loại vi lệnh khác nhau như hình
vẽ:
Unit execution
Phần chính của Rapid Execution Engine là các rapid execution unit, bao gồm hai
ALU và hai AGU được đánh dấu “clock x2” trên hình vẽ. Các vi lệnh đơn giản có thể
23

cache L1 to và chậm hơn.
5. MEMMORY SUBSYSTEM
Vi xử lí Pentium 4 có một memory subsystem với khả năng nổi bật cho phép ứng
dụng mới, các ứng dụng luồng định hướng bang thong cao như 3D, video, và content
creation. Memory subsystem bao gồm bộ nhớ cache mức 2 và bus hệ thống. Cache
level 2 lưu trữ các dữ liệu không lưu trữ được trong cache L1. Bus hệ thống ngoài
được sử dụng để truy cập main memory khi xảy ra miss ở cache mức 2 hay cũng để
truy cập hệ thống thiết bị I/O.
5.1Cache mức 2 hay còn gọi là Advanced Transfer Cache
Bộ nhớ cache mức 2 là bộ nhớ cache 256K-byte mà giữ cả các lệnh bị miss trong
Trace Cache và dữ liệu bị miss trong cache dữ liệu mức 1. Bộ nhớ cache mức 2 được
tổ chức như một bộ 8 đường liên kết với 128 bytes trên một dòng cache. Những
đường cache 128-byte bao gồm 2 phần 64-byte sectors.
Cache L2 của Pentium 4 kết nối với cache dữ liệu L1 qua bus có độ rộng là 256-bit.
Trong các thế hệ vi xử lí trƣớc của Intel độ rộng này là 64-bit. Với một vàiphép toán đơn
giản ta sẽ thấy băng thông giữa cache L2 và nhân là 44.8GB/s vớiPentium 4 ở mức
xung 1.4 GHz và 48GB/s với Pentium 4 ở mức xung 1.5 GHz,nhanh gấp 4 lần so với
thế hệ trước với cùng một xung nhịp.
Cache L2 có các dung lượng có thể có 2-MB/1-MB/256-KB/512-KB
5.2 Bus hệ thống
Bộ vi xử lí Pentium IV có bus hệ thống với bang thông 3,2 Gbytes mỗi giây.
Băngthông cao là một tạo khả năng quan trọng cho các ứng dụng dòng dữ liệu từ
bộ nhớ.Băng thông này đạt được như vậy là nhờ một bus rộng 64 bit có khả năng
truyền dữ liệu với tốc độ 400MHz.Xung nhịp đồng hồ là 100MHz nhưng nhờ sử dụng
một công nghệ mới gọi là “quad-pumped” mà bus 100 MHz có thể gửi được tới 400
25

Trích đoạn CÔNG NGHỆ MMX
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status