Tải bản đầy đủ (.doc) (22 trang)

Phân tích kiến trúc và nguyên lý làm việc của bộ VLX 64bit của AMD

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 (645.29 KB, 22 trang )

Bộ công thơng
Trờng đại học côngnghiệp hà nội
Khoa: công nghệ thông tin
BáO CáO BàI TậP LớN MÔN HọC
KIếN TRúC MáY TíNH
NHóM THực HIệN : Nhóm 3
LớP : KTPM2
Thành viên trong nhóm : 1 . Phạm Văn Cờng
2 . Vũ Mạnh Cờng
3 . Nguyễn Văn Công
4 . Đoàn Văn Chung
Giáo viên hớng dẫn : nguyễn tuấn tú
H ni: 2012
PhÇn A : Giíi thiÖu
I / ®Ò tµi

Ph©n tÝch kiÕn tróc & nguyªn lý lµm viÖc cña bé vi xö lý amd 64 bit .
II/ bè côc
1. kiÕn tróc AMD 64 bit.
2.Nguyªn lý lµm viÖc AMD 64 bit.
2
Phần B: Nội dung
1. Kiến trúc AMD 64bit:

1. Giới thiệu

Trong phần này chúng ta sẽ xem qua cấu trúc bên trong của bộ vi xử lí
AMD64 được sử dụng trong Athlon 64, Athlon 64 X2, Athlon 64 FX,
Opteron, Turion 64 và một vài kiểu Sempron .
Cấu trúc này có tên gọi như K8 hoặc Hammer , chúng ta sau khi xem cấu trúc
bên trong của nó và so sánh với cấu trúc bên trong của bịi vi xử lí Intel .


Sự khác nhau chính giữa cấu trúc AMD64 và những bộ vi xử lí được thiết kế
trước đó của AMD như AthlonXP và Athlon đầu tiên ở chỗ phần điều khiển bộ
nhớ được đi kèm bên trong CPU mà không thông qua Chip North Bridge ( Chip
chính của Chipset trên Mainboard ) . Do đó Mainboard được sản xuất cho bộ vi
xử lí dựa trên cấu trúc AMD64 thì Chip “North Bridge” là cầu nối giữa CPU và
Bus đồ hoạ (AGP hoặc PCI Express) và Chip "South Bridge" . Từ khi
Chip “North Bridge” được sản xuất đơn giản hơn thì một vài nhà sản xuất chỉ
còn một Chipset trên Mainboard cho kiểu CPU của AMD64.
Từ khi phần điều khiển bộ nhớ được đi kèm bên trong CPU , dung lượng của bộ
nhớ - bao gồm kiểu bộ nhớ được hỗ trợ và hỗ trợ Dual Channel - phụ thuộc vào
CPU mà không còn phụ thuộc vào North Bride ( không còn phụ thuộc vào
Mainboard ) như đã từng xảy ra với những Mainboard sử dụng CPU có cấu trúc
khác . Như vậy đối với Mainboard dùng CPU dựa trên cấu trúc AMD64 mà
không tích hợp Video on-board thì không có những tính năng khác của
Mainboard được quan tâm đến . đối với những Mainboard dùng CPU dựa trên
cấu trúc AMD64 có tích hợp Card màn hình on-board thì chỉ có tính năng của
phần Card màn hình là được quan tâm đến .
Hình dưới đây là cấu trúc được dùng dựa trên CPU khác
3


4
Hình dưới đây là cấu trúc được dùng dựa trên bộ vi xử lí AMD64


Chúng ta có thể nói rằng Chip "North Bridge" được gắn bên trong CPU . Trên
Mainboard chúng ta sẽ tìm thấy Chip " Bridge" mà sẽ phù hợp giao diện giữa
Bus "HyperTransport" ( có nghĩa là CPU ) với Bus của card đồ hoạ (AGP hoặc
PCI Express x16) và Chip "South Bridge" . Đôi khi nhà sản xuất Mainboard họ
đưa ra một Chip duy nhất gọi là “Single-chip Solution” bao gồm Chip " Bridge"

và Chip "South Bridge" .

Phần điều khiển bộ nhớ được đi kèm bên trong bộ vi xử lí AMD64 có thể điều
khiển tới 04 thanh nhớ / kênh . Do vậy hệ thống Dual - Channel có thể điều
khiển 08 thanh nhớ . Số của khe cắm được có sẵn trên Mainboard là giới hạn bởi
nhà sản xuất Mainboard .

5
2. Bus HyperTransport và Đa xử lí

Sự trao đổi thông tin giữa CPU AMD64 và Chip " Bridge" được thực hiện bởi
Bus có tên là HyperTransport . Tốc độ HyperTransport phụ thuộc vào kiểu của
CPU . Giá trị thông thường là 3200MB/s hoặc 4000MB/s . Để hiểu kỹ hơn về
HyperTransport bạn có thể xem riêng bài này trong trang Web của chúng tôi .

Bộ vi xử lí AMD64 có thế có nhiều hơn một bus HyperTransport . Trong khi tất
cả CPU AMD64 của thị trường máy tính để bàn và máy tính xách tay Athlon 64,
Athlon 64 FX, Athlon 64 X2, Sempron và Turion 64 chỉ có 01 bus
HyperTransport , thì kiểu CPU dùng AMD64 cho náy chủ và máy trạm làm việc
- Opteron - có nhiềuhơn 01 bus HyperTransport .

Bộ vi xử lí Opteron có series 1xx không hỗ trợ Đa xử lí và chỉ có 01 bus
HyperTransport như hình trên ( ở phần 1) .
CPU Opteron 2xx hỗ trợ đa xử lí tới 02 CPU và có 02 Bus HyperTransport .
CPU Opteron 8xx hỗ trợ đa xử lí tới 08 CPU có 03 Bus HyperTransport . Những
Bus thêm vào để dùng kết nối bên trong những CPU với nhau , chúng ta có thể
xem hình dưới đây .

Cấu hình Opteron 2xx hoặc 8xx có Dual-CPU và Đa xử lí


6

Cấu hình Đa xử lí Opteron 8xx có 04 CPU

7

Cấu hình đa xử lí Opteron 8xx có 08 CPU

8

Quan điểm của AMD về vấn đề Đa xử lí cũng rất được đáng quan tâm .
Mỗi một CPU có phần điều khiển bộ nhớ của nó , mỗi CPU truy cập vào những
thanh nhớ riêng biệt .

Ví dụ : trong hệ thống 04 Opterron có 4GB bộ nhớ thì mỗi một CPU có điều
khiển riêng 1GB nhớ . Trong hệ thống Opteron có 04 CPU 4GB được chia cho
tất cả CPU . Như thế mỗi một CPU có thể điều khiển tới 04 thanh nhớ / kênh và
9
04 CPU có thể điều khiển trực tiếp tới 32 thanh nhớ ( 08 thanh / CPU ) . Nhà sản
xuất Mainboard thiết kế số khe cắm RAM sẵn sàng trên Mainboard ( có nghĩa
là có thể nói rằng hệ thống Opteron 04 CPU có thể có tới 32 thanh nhớ mà
không thể nói rằng tất cả hệ thống Opteron 04 PCU có 32 khe cắm RAM ).

Trong hình trên chúng ta có thể thấy phần "I/O " . I/O này đại diện cho mỗi kiểu
của Bridge , thông thường là South Bridge , nó có thể là Bridge của Card đồ hoạ
AGP hoặc PCI Express x16 , nó cũng có thể là PCI-X hoặc PCI Express cho
mục đích Card Add-on

Bus HyperTransport được kết nối bên trong CPU theo hình dưới đây



Bộ vi xử lí AMD64 có "Crossbar" , ở đó là đường nạp dữ liệu và những lệnh từ
và tới CPU , bộ nhớ và với Bus HyperTransport .
10

System Request Interface (SRI) cũng được gọi là System Request Queue (SRQ),
trong khi APIC là Advanced Programmable Interrupt Controller .

3. Socket của CPU

CPU AMD64 có vài kiểu Socket khác nhau . Chúng ta phải dùng Mainboard có
cùng kiểu Socket với CPU mà chúng ta có .
Những kiểu Socket khác nhau bởi vì những tính năng khác nhau của phần điều
khiển bộ nhớ .

• Socket 754 : phần điều khiển bộ nhớ DDR và Single - Channel , có nghĩa
là điều khiển bộ nhớ truy cập bộ nhớ 64-bit . được sử dụng đầu tiên cho
kiểu Athlon64 , Turion64 và kiểu Sempron socket 754.
• Socket 939 : điều khiển bộ nhớ DDR và Dual - Channel , điều khiển bộ
nhớ truy cập 128-bit . được sử dụng kiểu Athlon 64, Athlon 64 X2,
Athlon 64 FX và một vài dòng Opteron 1xx.
• Socket 940 : điều khiển bộ nhớ DDR và Dual - Channel yêu cầu bộ nhớ
ECC . được dùng trong Opteron và những kiểu đầu tiên của Athlon 64
FX.
• Socket AM2 : điều khiển bộ nhớ DDR2 và Dual - Channel . Được dùng
cho những sản phẩm sắp tới của Athlon 64, Athlon 64 X2 và Athlon 64
FX .
Hình dưới đây là Socket của CPU và trên Mainboard
Socket 754


11


Socket 939



4. Những đặc điểm chính AMD64

Từ khi phát hành Athlon64 , cấu trúc AMD64 đem lại nhiều kiểu 64-bit cho
những lệnh của x86 .
Kiểu này gọi là x86-64 của AMD và nó làm để mở rộng những thanh ghi có sẵn
32-bit thành những thanh ghi 64-bit .
Tất cả bộ vi xử lí AMD64 có 16 thanh ghi 64-bit khi chạy kiểu x86-64 . Trong
kiểu này bộ vi xử lí có bus địa chỉ được mở rộng từ 32-bit lên 40-bit , nó cho
phép CPU có thể truy cập tới 1TB RAM ( 2^40 ) . Cũng trong kiểu này CPU có
thể truy cập tới 256TB của bộ nhớ ảo ( 2^48 ) . Bộ nhớ ảo là công nghệ mà cho
12
phép CPU mô phòng nhiều bộ nhớ RAM bằng cách tạo thành những file nháp
trên ổ cúng gọi là Swap file .

Intel đã Copy tất cả những đặc điểm trên và họ không ngoại trừ bất kì đặc điểm
nào của AMD . Mặc dù vậy những CPU AMD64 mà hỗ trợ kiểu x86-64 thì
không phải tất cả bộ vi xử lí của Intel đều hỗ trợ đặc điểm đó . Để sử dụng đặc
điểm này thì hệ điều hành phải chạy 64-bit .

Như chúng ta đã biết phần điều khiển nhớ của AMD64 làm việc trên công nghệ
DDR hoặc DDR2 . Công nghệ Dual Data Rate làm việc bằng cáhc truyền 02 dữ
liệu trong một chu kì đồng hồ . Do đó khi dùng Athlon64 có bộ nhớ
DDR400/PC3200 , CPU truy cập với tần số xung nhịp đồng hồ 200MHz chứ

không phải 400 MHz ( bộ nhớ DDR và DDR2 có tốc độ thực bằng 1/2 tốc độ
ghi trên nhãn ) .

Tất cả CPU AMD64 có bộ nhớ Cache lệnh là 64KB và Cache dữ liệu là 64KB .
Bộ nhớ cache L2 thì phụ thuộc vào kiểu của CPU . Trong bộ vi xử lí Dual-core
thì cache L2 được tách rời có nghĩa là mỗi nhân sở hữu bộ nhớ cache L2 riêng
biệt . Trong CPU của Intel dòng mới nhất ( Core Duo và Core 2 Duo ) bọ nhớ
cache L2 được dùng chung và được chia xẻ tuỳ theo nhu cầu của mỗi nhân
( Intel tuyên bố đó là cải tiến để tăng hiệu suất làm việc ) .

5. Pipeline AMD64

Pipeline là danh sách của tất cả các tầng mà một lệnh phải đi qua một cách thứ
tự để thực hiện một công việc được hoàn thành .
Cấu trúc AMD 64 dùng 12 tầng Pipeline đối với những lệnh thực hiện số
nguyên và 17 tầng Pipeline đối với những phép tính thực hiện dấu phảy động .
Dó đó nó sẽ cần 12 hoặc 17 bước để một lệnh đưa ra được thực hiện hoàn thành
trong AMD64 .

Cấu trúc trước của AMD - K7 , được sử dụng Athlon , Athlon XP và một vài
kiểu Sempron , có 10 tầng Pipeline . Pentium 4 có 20 tầng , Pentium
13
4 “Prescott” có 31 tầng . Intel quay trở lại những bộ vi xử lí sau này Core 2 Duo
có 14 tầng Pipeline .

Chúng ta hãy nghiên cứu Pipeline số nguyên của AMD64 . Nó dựa trên Pipeline
của cấu trúc K7 , sự khác nhau chính ở tầng Decoder ( giải mã ) mà nó sẽ phân
thành vài tầng khác , chắc chắn cho phép những CPU AMD64 đạt được tốc độ
đồng hồ cao hơn .



• Fetch : những lệnh được đưa tới từ bộ nhớ cache lệnh L1 thành những
nhóm 16 byte ( 128 bit ) . Trong phần này thành 02 tầng . Tầng thứ hai
được biết như là “Transit” - Sự đi qua , nó là hoạt đông jchính để chuyển
dữ liệu bên trong CPU ( tương tự như tầng Drive của Pentium 4 )
• Pick : Fetch Unit gửi 128-bit mà đã được chuyển tới tầng này , cung cấp
tới một bộ đệm được sẵn sàng ở đây . Những lệnh x86 không có độ dài cố
định , trong tầng này CPU sẽ tìm và tách những lệnh hiện có bên trong bộ
đệm . Nó cũng quyết định những lệnh x86 sẽ được gửi tới phần Decoder
14
nào : tới Decode đơn giản ( nhanh ) được dùng những lệnh x86 chung mà
chuyển đổi thành một hoặc hai vi lệnh , hoặc tới Decoder phức tạp ( chậm
) được dùng cho những lệnh x86 mà được chuyển đổithành vài vi lệnh .
Tầng này được biết như là "Scan "
• Decode : ở đây những lệnh x86 được chuyểnthành những vi lệnh là nhân
CPU có thể hiểu được . Trong phần này có 02 tầng.
• Pack : những cặp vi lệnh đã được giải mã được ghép thành một vi lệnh ở
đây .
• Pack/Decode : một vài giải mã được làm ở đây trước khi vi lệnh được gửi
tới Instruction Control Unit của AMD64 ( tương tự như ROB Reorder
Buffer của Intel ).
• Dispatch : những vi lệnh được gửi tới Scheduler thích hợp trong tầng
này .
• Schedule : những vi lệnh được lên danh sách để thực hiện một trong
những Scheduler của CPU .
• AGU/ALU : những lệnh liên quan đến số nguyên và lên quan đến bộ nhớ
được thực hiện ở đây .
• Data Cache : dú liệu được sinh ra trong Execution Unit được gửi tới bộ
nhớ Cache L1 , những thanh ghi đầu tiên sẽ lưu được lưu trữ và lệnh được
đánh dấu “executed” trong ROB . Phần này giống như “Retirement” trong

CPU của Intel .
6. Bộ nhớ Cache và Fetch Unit

Trong cấu trúc AMD64 đường dữ liệu kết nối giữa bộ nhớ Cache L1 và L2 có
độ rộng 128-bit . Trong bộ vi xử lí của Intel thuộc thế hệ thứ 7 ( Pentium 4 )
đường dữ liệu này có độ rộng 256-bit và trong CPU của Intel thuộc thhé hệ thứ
6 (Pentium Pro, Pentium II, Pentium III ) đường này rộng 64-bit .

15

Bộ nhớ cache lệnh L1 của CPU AMD64 bao gồm mạch logic Pre-decode , mỗi
một byte lưu trữ bên trong bộ nhớ cache L1 có một vài bit để đánh dấu bắt đầu
và kết thúc mỗi lệnh . Những lệnh x86 không có độ dài cố định ( chúng có thể
có từ 1 đến 15 byte ) , quá trình xử lí để tách đâu là điểm đầu và đâu là điểm
cuối là rất quan trong để CPU giải mã ( Decoder ) .

Cache lệnh L1 cung cấp 76 bit phụ tới Fetch Unit trong đó : 52 bit là Pre-decode
, 08 bit chẵn lẻ và 16 phần chọn rẽ nhánh . Những bit chọn rẽ nhánh được CPU
sử dụng để ccó gắng dự đoán trước những rẽ nhánh bên trong chương trình .

Do đó trên thực tế Cache L1 có dung lượng lớn hơn 64KB như thông báo vì có
thêm những thông tin lưu trữ Pre-decode và thông tin rẽ nhánh .
16
Nó sẽ được tính là 102 KB gồm : 64KB cache lệnh + 4KB parity + 26 KB Pre-
decode + 8KB dữ liệu rẽ nhánh .
Cấu trúc AMD64 dùng 2048 đầu vào BTB (Branch Target Buffer) , có cuìng
kích thước với cấu trúc thế hệ trước CPU của AMD , K7 . BTB là bộ nhớ nhỏ
mà chứa danh sách tất cả những rẽ nhánh được nhận biết bên trong chương trình
.
BTB của Pentium 4 có 4096 đầu vào trong khi những bộ vi xử lí thuộc thế hệ

thứ 6 của Intel phần đệm này có 512 đầu vào.
Thanh ghi rẽ nhánh khác BHT (Branch History Table) , được AMD gọi
là GHBC (Global History Bimodal Counter) , có 16384 đầu vào trong cấu trúc
AMD64 , trong khi Pentium 4 của Intel có 4096 đầu vào , có cùng kích thước
với BHT của cấu trúc K7 của AMD . Thanh ghi này có 02-bit dùng để theo vết
những rẽ nhánh có điều kiện " có khả năng nhất " , "có khả năng" , " không có
khả năng" và "không có khả năng nhất " .
7. Decoder
Bộ vi xử lí của AMD dùng cấu trúc ghép lai CISC/RISC từ thế hệ thứ 5 ( có tên
là K5 ) .
Intel bắt đầu dùng phương pháp này từ CPU thuộc thế hệ thứ 6 . CPU phải chấp
nhận lệnh CISC , hay được gọi là x86 , từ hầu hết các chương trình ngày nay
được sử dụng những lệnh này . Những bộ vi xử lí chỉ có RISC không được thiết
kế cho PC bởi vì nó không chạy được những chương trình thông thường như :
Windows , OFFICE
Do đo giải pháp được tất cả bộ vi xử lí trên thị trường ngày nay của AMD và
Intel là dùng bộ giải mã ( Decoder ) . Bên trong CPU có những lệnh như là
RISC , những đằng trước của Decoder chỉ có những lệnh CISC .
Những lệnh x86 CISC được gọi là " lệnh " , những lệnh bên trong của RISC gọi
là "vi lệnh " hoặc : “micro-op”, “µops” , “ROP”.
Cấu trúc AMD64 có kiểu lệnh thứ ba gọi là Macro-op hoặc "MOP" , nó là lệnh
được tạo ra từ Giải mã lệnh . AMD64 thực hiện bên trong bằng những Macro-op
. Khi những Macro-op được đưa tới những Scheduler thích hợp , nó đẩy nhanh
giải mã thành những vi lệnh và sau đó những vi lệnh này được thực hiện .
Nếu chúng ta chú ý nhớ rằng một cái gì đó trong cấu trúc mới của Intel cũng
được sử dụng kiểu Macro-op trên chính là đặc điểm Macro-fusion ( ghép hai vi
lệnh thành một vi lệnh trong một thanh ghi có độ rộng gấp đôi ) . Những bộ vi
xử lí có sử dụng Macro-fusion chỉ làm việc với những lệnh rẽ nhánh , còn trong
AMD64 dùng Macro-op được dùng trong tất cả các lệnh .
17

Những vi lệnh RISC không thể truy cập trực tiếp , do chúng ta không tạo ra
những phần mềm viết trên tập lệnh này , do đó những lệnh phải đi qua phần
Decoder . Mỗi một CPU có tập vi lệnh RISC riêng và không tương thích với
những vi lệnh từ CPU khác . Có nghĩa là vi lệnh của AMD65 khác với vi lệnh
của Pentium 4 , khác với cấu trúc vi lệnh của K7 .
Tuỳ thuộc vào độ phức tạp của lệnh x86 , nó có thể chuyển đổi thành một vài vi
lệnh RISC .
Trong cấu trúc AMD64 , những vi lệnh x86 có thể được chuyển đổi thành những
Macro-op được sử dụng trong 03 phần khác nhau :
• Dùng Decoder đơn giản , gọi là DirectPath Single , mà chuyển một lệnh
x86 thành một lệnh Macro-op .
• Cũng dùng Decoder đơn giản , gọi là DirectPath Double , chuyển đổi 01
lệnh x86 thành 02 Macro-op .
• Hoặc dùng Decoder phức tạp , gọi là DirectPath Vector , chuyển 01 lệnh
x86 thành vài lệnh Macro-op .
Ở đây Decoder của AMD64 làm việc như thế nào ?
Trong tầng Pick , hoặc gọi là Scan , CPU tìm kiếm và tách những lệnh hiện thời
trong Instruction Byte Buffer , quyết định phần nào sẽ được
dùng DirectPath hoặc VectorPath .
Sau đó đến tầng giải mã Decode , được phân thành 02 bước , ở đây những lệnh
x86 hiện tại được chuyển đổi thành những Macro-op . Tầng này tương đương
với tầng Aligh của CPU K7 . Tốc độ giải mã lớn nhất ở đầu ra là 06 Macro-op /
chu kì đồng hồ : 03 macro-op cho DirectPath và 03 macro-op cho VectorPath .
Những Macro-op đi tới tầng Pack ( tương đương với tầng Decode 1 của K7 ) , ở
đó những lệnh Macro-op được gói lại với nhau , 03 Macro-op được gửi tới tầng
tiếp theo - Pack/Decode - sau đó những Macro-op được gửi tới Instruction
Control Unit ( tương đương với Reorder Buffer (ROB) của Intel .

18
8. Dispatch và Schedule

Như chúng ta đã đề cập Instruction Control Unit là ROB (Reorder Buffer) của
bộ vi xử lí AMD64 . Ở đó những Macro-op được "nhặt" và gửi tới phần
lên công việc OOO ( Out-Of-Order ) , có nghĩa là thực hiện công việc không
theo thứ tự lệnh xuất hiện trong chương trình . Ví dụ nếu chương trình như sau :
Interger
Interger
Interger
Interger
FP
19
Interger
FP
Cấu trúc AMD64 có 03 Execution Unit thực hiện những phép tính liên quan đến
số nguyên và cũng có 03 Execution Unit thực hiện những phép tính liên quan
đến dấu phảy động . Nếu nó không thực hiện OOO thì những phần liên quan đến
dấu phảy động sẽ nghỉ khi chạy chương trình này khi lệnh trước cũng là lệnh
liên quan đến số nguyên không thể thực hiện cùng một lúc bởi vì cũng chỉ có 03
Execution Unit đang được sử dụng . Từ khi có sự cải tiến kiểu thực hiện OOO ,
lệnh thứ năm cũng là lệnh dấu phảy động (FP) đầu tiên ,có thể được gửi cùng
thực hiện một lúc cùng với lệnh Interger đầu tiên , công việc này tăng hiệu suất
của CPU .
Trên thực tế trong AMD64 có 03 FPU nên cả hai lệnh FP đã có trong chương
trình trên sẽ được chuyển đi để thực hiện lệnh trong cùng một lúc . Mục đích của
nó là làm cho CPU luôn luôn hoạt động trong tất cả thời gian .
ROB ( Reorder Buffer ) có sẵn trong cấu trúc AMD64 , nó có 72 đầu vào và một
điều khá thú vị là mỗi một Execution Unit liên quan đến số nguyên có một vị trí
cố định Scheduler trong đó ( 8 đầu vào / ALU ) . Những Execution Unit của FP
chỉ duy nhất một khối Scheduler và có 36 đầu vào . Do đó tổng cộng trong
AMD64 có 04 Scheduler , tương đương với Pentium 4.
ROB cũng cung cấp cho Register Renaming . Cấu trúc lệnh CISC x86 có 08

thanh ghi 32-bit (EAX, EBX, ECX, EDX, EBP, ESI, EDI và ESP) . Số này là
quá ít , đặc biệt khi CPU thực hiện công việc kiểu OOO , nó sẽ phá huỷ nội
dung của các thanh ghi và làm hỏng chương trình .
Do đó ở tầng này bộ vi xử lí sẽ thay đổi tên và nội dung của những thanh ghi
được dùng trong chương trình thành một trong 96 thanh ghi , trogn khi Pentium
4 có 128 thanh ghi . Thế hệ thứ 6 bộ vi xử lí của Intel (Pentium II , Pentium III)
chỉ có 40 thanh ghi trong .
Một điều chú ý đó là một thủ thuật nhỏ trong cấu trúc AMD64 chỉ cần 96 thanh
ghi trong . Chúng tạo một cách đơn giản là một trường kết quả trong một hay
72 đầu vào của ROB để lưu trữ kết quả mỗi lệnh ( Pentium 4 không có việc này
; Pentium 4 cần chỉ định một thanh ghi bên trong để lưu trữ kết quả mỗi khi lệnh
được thực hiện ) . Thêm vào đó File thanh ghi của nó ( hoặc IFFRF, Integer
Future File and Register File, AMD gọi như vậy) có 40 đầu vào ( 16 trong số đó
để lưu trữ giá trị “correct” cho mỗi thanh ghi x86 , chúng có thể không dùng ) .
==> 72 + 40 -16 = 96

20

9. Execution Unit

Cấu trúc AMD64 có 03 Execution Unit cho số nguyên ( hay còn gọi là ALU
- Arithmetic and Logic Unit, hoặc IEU - Integer Execution Unit) , 03 AGU
(Address Generation Unit ) và 03 FPU (Floating-Point Unit) .
Nó có nhiềuhơn 01 ALU so với Pentium 4 . Tốc độ chuyển lệnh cao nhất là 06
lệnh / chu kì đồng hồ , cùng tốc độ với Pentium 4

21


Như hình trên chúng ta thấy , chỉ có những lệnh FP chỉ có thể được xử lí trong

FPU riêng biệt . FPAD cho những lệnh cộng dấu phảy động như lệnh ADDPS
( trong tập lệnh SSE ) trong khi FMUL thực hiện những lệnh nhân dấu phảy
động như MULPS ( trong tập lệnh SSE )
22

×