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

Phân tích kiến trúc, nguyên lí làm việc của bộ vi xử lí AMD k8

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 (1.23 MB, 41 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP LỚN MÔN HỌC

Đề tài:
Phân tích kiến trúc, nguyên lí làm việc của bộ vi xử lí AMD K8

Giáo viên:

Ths.Nguyễn Tuấn Tú

Các thành viên:
1.Vũ Văn Lương MãSV: 0541060109
2.Nguyễn Thế Duy MãSV: 0541060136
3.Nguyễn Duy Quý Mã SV: 0441360079

Hà Nội 20/6/2012


Mục Lục
1.1.Giới thiệu tổng quát...........................................................................................................2
1.2.Các dòng CPU dùng socket AM2.....................................................................................5
1.2.1.AMD Sempron...........................................................................................................5
1.2.2.AMD Athlon 64..........................................................................................................7
1.2.3.AMD Athlon 64 X2..................................................................................................10
1.2.4.AMD Athlon 64 FX..................................................................................................12
1.3.Thông tin chi tiết.............................................................................................................18
1.3.1.Các tính năng và công nghệ mới..............................................................................18
1.3.2 Các tính năng và công nghệ có sẵn...........................................................................19
2.1Tìm nạp dòng lệnh – Instructions Fetch..........................................................................21


2.2 Rẽ nhánh.........................................................................................................................22
2.3Giải mã - Decoding.........................................................................................................23
2.4Bộ phận xử lý số nguyên – Interger Execution Unit.......................................................24
2.5 Bộ phận dấu phẩy động – Floating Point Unit..............................................................25
2.6 Hệ thống bộ nhớ bên trong...........................................................................................26
2.7Bộ phận điều khiển bộ nhớ - Memory Controller...........................................................29
2.8 Lấy trước dữ liệu – Prefetch...........................................................................................30
2.9 Ảo hoá............................................................................................................................30


LỜI NÓI ĐẦU

Vào ngày 1 tháng 6 năm 2006, AMD chính thức tung ra thị trường thế hệ CPU
K8 sử dụng socket AM2 (socket AM2 có 940 chân). Thế hệ CPU K8 này hỗ trợ RAM
DDR2 và có thêm 1 số tính năng, công nghệ mới như công nghệ máy tính ảo AMD
Virtualization . Đặc biệt thế hệ CPU K8 dùng socket AM2 còn có dòng EE (Energy
Efficient) với công suất tiêu thụ thấp hơn đáng kể. Cốt lõi K8 là rất tương tự như các
K7. Sự thay đổi cơ bản nhất là sự tích hợp các hướng dẫn AMD64 và một bộ điều
khiển bộ nhớ on-chip. Bộ điều khiển bộ nhớ đáng kể làm giảm độ trễ bộ nhớ và chịu
trách nhiệm đối với hầu hết tăng hiệu suất từ K7 lên K8.
Dưới đây là một số tìm hiểu cơ bản về kiến trúc, nguyên lí làm việc của bộ vi xử lí
AMD K8. Do thời gian chuẩn bị không nhiều và với kiến thức còn hạn chế của bản
thân nên sẽ không tránh khỏi những thiếu sót. Mong thầy cùng tham gia góp ý xây dựng
thêm để thông tin hệ thống của bộ vi xử lí được hoàn thiện hơn !

Nhóm sinh viên thực hiện

1



CHƯƠNG I: KIẾN TRÚC BỘ VI XỬ LÍ AMD K8
1.1.Giới thiệu tổng quát.
K8 AMD là một bộ xử lý máy tính vi kiến trúc được thiết kế bởi AMD là sự kế thừa
cho vi kiến trúc AMD K7 . K8 là thực hiện đầu tiên của các AMD64 64-bit mở rộng
các kiến trúc xử lý x86 .
Bộ vi xử lý dựa trên lõi K8 bao gồm:


Athlon 64



Athlon 64 X2



Athlon 64 FX



Sempron



Opteron



Turion 64


Cốt lõi K8 là rất tương tự như các K7. Sự thay đổi cơ bản nhất là sự tích hợp các
hướng dẫn AMD64 và một bộ điều khiển bộ nhớ on-chip. Bộ điều khiển bộ nhớ đáng
kể làm giảm độ trễ bộ nhớ và chịu trách nhiệm đối với hầu hết tăng hiệu suất từ K7 K8.
Vào ngày 1 tháng 6 năm 2006, AMD chính thức tung ra thị trường thế hệ CPU K8
sử dụng socket AM2 (socket AM2 có 940 chân). Thế hệ CPU K8 này hỗ trợ RAM
DDR2 và có thêm 1 số tính năng, công nghệ mới như công nghệ máy tính ảo AMD
Virtualization . Đặc biệt thế hệ CPU K8 dùng socket AM2 còn có dòng EE (Energy
Efficient) với công suất tiêu thụ thấp hơn đáng kể.

2


Hình 1.1: Sơ đồ kiến trúc của bộ vi xử lí AMD K8

3


Hình ảnh về sản phẩm

Hình 1.2: Socket AMD2

Hình 1.3: AMD 64 Athlon

4


1.2.Các dòng CPU dùng socket AM2.

1.2.1.AMD Sempron.


Hình 1.4: Sơ đồ kiến trúc AMD Sưmpron
Đặc điểm :
Bus hệ thống 1600MHz.
Hỗ trợ RAM DDR2 dual channel 400/533/667MHz.
Hỗ trợ Cool’n’Quiet
Hỗ trợ AMD64.
Công suất TDP : 62W ( 35W đối với dòng Energy Efficient)
Vcore
5




1,20 / 1,25 V (dòng Energy Efficient).



1,25 / 1,30 / 1,35 V.

6




Các loại CPU AMD Sempron dùng socket AM2 :

Bảng 1.1 Các loại CPU AMD Sempron dùng socket AM2

1.2.2.AMD Athlon 64.


Hình 1.5: AMD Athlon 64
Đặc điểm :
Bus hệ thống 2000MHz.
Hỗ trợ RAM DDR2 dual channel 400/533/667MHz.
Hỗ trợ công nghệ AMD Virtualization.
Hỗ trợ Cool’n’Quiet.
Hỗ trợ AMD64.
Công suất TDP : 62W ( 35W đối với dòng Energy Efficient).
7


Có thể hạ thấp hệ số nhân.

8


Vcore


1,20 / 1,25 V (dòng Energy Efficient).



1,25 / 1,30 / 1,35 V.

Các loại CPU AMD Athlon 64 dùng socket AM2 :

Bảng 1.2 Các loại CPU AMD Athlon 64 dùng socket AM2

9



1.2.3.AMD Athlon 64 X2.

Hình 1.6: AMD Athlon 64 X2
Đặc điểm
Bộ xử lí 2 nhân.
Bus hệ thống 2000MHz.
Hỗ trợ RAM DDR2 dual channel 400/533/667/800 MHz.
Hỗ trợ công nghệ AMD Virtualization.
Hỗ trợ Cool’n’Quiet.
Hỗ trợ AMD64
Công suất TDP : 89W ( 65W đối với dòng Energy Efficient).
10


Có thể hạ thấp hệ số nhân.
Vcore


1,20 / 1,25 V (dòng Energy Efficient).



1,30 / 1,35 V.

Các loại CPU AMD Athlon 64 X2 dùng socket AM2

Bảng 1.3 Các loại CPU AMD Athlon 64 X2 dùng socket AM2


11


1.2.4.AMD Athlon 64 FX.

Hình 1.7: AMD Athlon 64 FX
Đặc điểm :
Bộ xử lí 2 nhân
Bus hệ thống 2000MHz.
Hỗ trợ RAM DDR2 dual channel 400/533/667/800 MHz.
Hỗ trợ công nghệ AMD Virtualization.
Hỗ trợ Cool’n’Quiet.
Hỗ trợ AMD64.
Công suất TDP : 125W.
12


Có thể thay đổi hệ số nhân.
Vcore 1,35 / 1,40 V.
CPU AMD Athlon 64 FX dùng socket AM2 :

Vài hình ảnh của Athlon 64 3000+ socket AM2:

13


a)

b)
Hình 1.8: hình ảnh của Athlon 64 3000+ socket AM2


14


a)

15


b)
Hình 1.9: hình ảnh của Athlon 64 3000+ socket AM2

16


17


a)

b)
Hình 1.10: CPU dung socket AM2 (940 chân) và CPU dung socket 939 (939 chân)
1.3.Thông tin chi tiết.
1.3.1.Các tính năng và công nghệ mới.
Bộ nhớ DDR2.

Thế hệ CPU sử dụng socket AM2 hỗ trợ RAM DDR2 ở chế độ

dual channel. RAM DDR2 có tốc độ cao hơn DDR1 , tiêu thụ điện năng ít hơn và hiện
nay, DDR2 là chuẩn RAM phổ biến nhất

Bộ xử lí AMD hỗ trợ các loại RAM DDR2 sau :
AMD Sempron : DDR2-400/533/667.
AMD Athlon 64 : DDR2-400/533/667.
AMD Athlon 64 X2 : DDR2-400/533/667/800
18


AMD Athlon 64 FX : DDR2-400/533/667/800.
Chú ý nhỏ về DDR2 SDRAM:
DDR2-400 : bus 400MHz, băng thông kênh đơn lí thuyết 3200MB/s.
DDR2-533 : bus 533MHz, băng thông kênh đơn lí thuyết 4200MB/s.
DDR2-667 : bus 667MHz, băng thông kênh đơn lí thuyết 5300MB/s.
DDR2-800 : bus 800MHz, băng thông kênh đơn lí thuyết 6400MB/s.
Công nghệ AMD-v (AMD Virtualization Technology).
Công nghệ máy tính ảo giúp người sử dụng tại 1 thời điểm có thể dùng đồng
thời song song nhiều hệ điều hành (HĐH) trong cùng 1 máy tính.Trước khi có công
nghệ này, máy tính muốn dùng nhiều hệ điều hành thì sử dụng 1 trong 2 cách sau:
-Sử dụng nhiều HĐH cùng 1 lúc nhưng chỉ có 1 HĐH khai thác trực tiếp tài nguyên hệ
thống , các HĐH còn lại được xem như 1 ứng dụng của HĐH đầu tiên, chúng vẫn khai
thác được tài nguyên của máy nhưng gián tiếp, tức là các HĐH này không nhận diện
được hệ thống phần cứng, chúng chỉ nhận diện được 1 hệ thống giả lập (không có thật,
do phần mềm quản lí các HĐH ảo tạo ra) .
-Cài nhiều HĐH trong 1 máy nhưng tại 1 thời điểm chỉ có thể sử dụng được 1 HĐH,
HĐH được sử dụng có thể khai thác trực tiếp tài nguyên hệ thống.
AMD Virtualization giúp người dùng có thể cùng 1 lúc dùng nhiều HĐH, các HĐH đó
đều khai thác trực tiếp tài nguyên hệ thống. Công nghệ này còn có tên mã là
PACIFICA.
Energy Efficient.
Thế hệ CPU AMD dùng socket 939 đã nổi tiếng về lượng điện năng tiêu thụ ít.
Thế hệ CPU AMD sử dụng socket AM2 đã có bước tiến lớn lớn hơn nữa về công suất

tiêu thụ. Công suất tiêu thụ của các CPU dùng socket AM2 thấp hơn thế hệ 939 từ
10% đến hơn 30%. Đây thực sự là 1 cải tiến hữu ích cho ocer và ... các phòng net.
(công suất tiêu thụ điện thấp -> mát mẻ -> dễ oc cao )
1.3.2 Các tính năng và công nghệ có sẵn.
AMD64 (Công nghệ tính toán 64-bit).
HyperTransport Technology (Công nghệ siêu truyền)
Integrated Memory Controller (Bộ điều khiển bộ nhớ tích hợp).
Cool’n’Quiet (Công nghệ làm mát và tiết kiệm điện năng)
19


Enhanced Virus Protection (Tính năng phòng chống virus).

20


CHƯƠNG II: NGUYÊN LÝ LÀM VIỆC CỦA BỘ XỬ LÝ AMD K8
2.1Tìm nạp dòng lệnh – Instructions Fetch
Bộ xử lý bắt đầu quá trình mã hoá bằng việc tìm nạp dòng lệnh từ cache lệnh L1
và giải mã chúng.Độ dài của lệnh x86 thường không ổn định nên rất khó xác định giới
hạn của chúng trước khi quá trình giải mã bắt đầu. Để đảm bảo rằng việc xác định độ
dài lệnh không ảnh hưởng đến tốc độ giải mã, các bộ xử lý K8 sẽ giải mã dòng lệnh
trong khi chúng đang được nhập vào cache L1. Thông tin về quá trình giải mã được
chứa trong những vùng đặc biệt bên trong cache L1 (3bit thông tin trước khi giải mã
cho một byte lệnh). Bằng cách giải mã trước (predecoding) trong khi đang tải lệnh
vào cache, phạm vi những lệnh có thể được xác định trong quá trình giải mã, cho phép
đảm bảo tốc độ giải mã ổn định không phụ thuộc vào dạng thức và độ dài của lệnh.
Các bộ xử lý tải các khối dòng lệnh từ cache và lấy ra các dòng lệnh mà nó cần
gửi cho giải mã. Một chiếc CPU sử dụng công nghệ vi cấu trúc K8 và Core 2 thì nạp
lệnh trong các khối 16-byte. Khi đó, tốc độ nạp lệnh đủ nhanh để bộ xử lý K8 và Core

2 có thể gửi được ba dòng lệnh với tốc độ giải mã trung bình là 5 byte mỗi xung nhịp.
Tuy nhiên, một số dòng lệnh x86 có thể dài 16 byte và theo một số thuật toán, độ dài
của một số dòng lệnh cạnh đó có thể lớn hơn 5 byte. Do đó, không thể giải mã ba dòng
lệnh trong một xung nhịp.

21


Hình 2.1: Một số dòng lệnh dài liền nhau làm hạn chế tốc độ giải mã trong quá trình
tìm nạp dòng lệnh trong khối 16 byte
Cụ thể, SSE2 – một dòng lệnh đơn giản với những phép toán dạng thanh ghithanh ghi (ví dụ, movapd xmm0, xmm1 ) – dài 4 byte. Tuy nhiên, nếu dòng lệnh tạo lập
bộ nhớ xác định bằng cách sử dụng thanh ghi cơ sở và Offset trống như movapd
xmm0, [eax+16] , thì độ dài của nó tăng lên 6 đến 9 byte tùy thuộc vào khoảng
Offset . Nếu có các thanh ghi bổ sung trong chế độ 64 bit, vẫn có một REX-prefix một
byte thêm vào mã dòng lệnh. Khi đó, độ dài của dòng lệnh SSE2 trong chế độ 64 bit
có thể tăng lên thành 7-10 byte. Các lệnh SSE1 thì ngắn hơn 1 byte nếu như đó là lệnh
vector (nói cách khác là làm việc với 4 trị số 32 bit). Nhưng nếu nó là một dòng lệnh
SSE1 vô hướng (chỉ có một toán hạng), chiều dài của nó cũng có thể tăng đến 7-10
byte trong cùng điều kiện.
2.2 Rẽ nhánh
Nếu như chuỗi lệnh móc xích tới nhiều nhánh, CPU sẽ cố dự đoán xa hơn hướng
của chương trình để tránh việc đứt đoạn trong quá trình giải mã và chọn lựa giải mã
nhánh chắc chắn nhất. Trong trường hợp này, các thuật toán dự đoán nhánh sẽ được sử
dụng để tìm nạp khối lệnh tiếp theo. Các bộ xử lý K8 sử dụng thuật toán thích ứng bậc
hai để dự đoán nhánh. Thuật toán này xem xét quá trình dự đoán không chỉ trong dòng
lệnh hiện thời, mà cả 8 dòng lệnh trước đó. Nhược điểm chính của các thuật toán dự
đoán nhánh K8 là chúng không có khả năng dự đoán nhánh gián tiếp có địa chỉ không
cố định.
Nhánh gián tiếp là các nhánh sử dụng một con trỏ (Pointer) được tính toán động trong
suốt quá trình xử lý mã chương trình. Các nhánh động này thường được thêm vào các

lệnh Case trong chương trình dịch và được sử dụng trong suốt quá trình để gọi hàm địa
chỉ vàhàm ảo trong việc lập trình hướng tới đối tượng. Các bộ xử lý K8 thường cố sử
dụng địa chỉ nhánh cuối cùng để tìm nạp một nhóm mã. Nếu như địa chỉ đó đã thay
đổi thì Pipe giải mã sẽ hoàn toàn trống rỗng. Còn nếu địa chỉ nhánh thường xuyên thay
22


đổi thì hệ điều hành sẽ liên tục mắc lỗi. Việc dự đoán địa chỉ không cố định đối với
nhánh gián tiếp được sử dụng lần đầu tiên trong bộ xử lý Pentium M. Do trong CPU
K8 không có những thuật toán như vậy nên những CPU này cũng hoạt động kém hiệu
quả hơn trong các mã định hướng đối tượng.
2.3Giải mã - Decoding
Các khối lệnh nhận được từ cache lệnh được sao chép vào bộ nhớ đệm tạm thời
Predecode/Pick , nơi các dòng lệnh được chọn ra từ các khối, định dạng, và chuyển
vào các bộ phận ( Pipe ) giải mã tương ứng. Các lệnh đơn giản có thể được giải mã chỉ
bằng một hoặc hai vi lệnh ( Micro-Operation hay được ghi Micro-Ops ) sẽ được gửi
đến một bộ phận giải mã đơn giản có tên DirectPath . Còn các dòng lệnh phức tạp
hơn, yêu cầu từ 3 phép toán trở lên, sẽ được gửi vào bộ phận giải mã vi chương trình
được gọi là VectorPath .

Hình 2.2: Bộ phận giải mã
Cứ mỗi xung nhịp, có tối đa 3 Macro-Operation (MOP) được ra khỏi bộ phận giải mã.
Trong mỗi xung nhịp, bộ phận giải mã DirectPath có thể xử lý 3 lệnh 1-MOP đơn
giản hoặc một lệnh 2-MOP và một lệnh 1-MOP, hoặc 1.5 lệnh 2-MOP (ba lệnh 2
MOP trong hai xung nhịp). Nhưng việc giải mã các lệnh phức tạp phải cần đến hơn 3
MOP, đó chính là lý do tại sao phải cần đến vài xung nhịp mới giải mã đầy đủ được
chúng. Để tránh xung đột khi rời Pipe giải mã , K8 và K8 những lệnh đơn giản và
phức tạp có thể được gửi liên tục để giải mã .
Các MOP gồm hai vi lệnh ( Micro-Ops ) : một phép tính số nguyên hay một phép tính
số học dấu phẩy động và một yêu cầu địa chỉ bộ nhớ. Các vi lệnh được lấy ra từ các

MOP bằng một bộ phận phân phát ( Scheduler ) , sau đó chúng được gửi để thực hiện
một cách độc lập .
23


×