nguyen li va kien truc cua amd k8

49
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

Upload: luong-vu-van

Post on 30-Jul-2015

554 views

Category:

Documents


32 download

TRANSCRIPT

Page 1: nguyen li va kien truc cua amd k8

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

Page 2: nguyen li va kien truc cua amd k8

Mục Lục

LỜI NÓI ĐẦU...........................................................................................................................1

CHƯƠNG I: KIẾN TRÚC BỘ VI XỬ LÍ AMD K8............................................................2

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..........................................................................................................6

1.2.3.AMD Athlon 64 X2....................................................................................................7

1.2.4.AMD Athlon 64 FX....................................................................................................9

1.3.Thông tin chi tiết.............................................................................................................13

1.3.1.Các tính năng và công nghệ mới..............................................................................13

1.3.2 Các tính năng và công nghệ có sẵn...........................................................................14

CHƯƠNG II: NGUYÊN LÝ LÀM VIỆC CỦA BỘ XỬ LÝ AMD K8.............................15

2.1Tìm nạp dòng lệnh – Instructions Fetch...........................................................................15

2.2 Rẽ nhánh..........................................................................................................................16

2.3Giải mã - Decoding..........................................................................................................17

2.4Bộ phận xử lý số nguyên – Interger Execution Unit........................................................18

2.5 Bộ phận dấu phẩy động – Floating Point Unit................................................................19

2.6 Hệ thống  bộ nhớ  bên trong............................................................................................20

2.7Bộ phận điều khiển bộ nhớ - Memory Controller............................................................23

2.8 Lấy trước dữ liệu – Prefetch............................................................................................24

2.9 Ảo hoá.............................................................................................................................24

Chương 3: ỨNG DỤNG.........................................................................................................26

KẾT LUẬN..............................................................................................................................32

TÀI LIỆU THAM KHẢO......................................................................................................33

Page 3: nguyen li va kien truc cua amd k8

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

Page 4: nguyen li va kien truc cua amd k8

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

Page 5: nguyen li va kien truc cua amd k8

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

3

Page 6: nguyen li va kien truc cua amd k8

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

Hình 1.2: Socket AMD2

Hình 1.3: AMD 64 Athlon

4

Page 7: nguyen li va kien truc cua amd k8

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 

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

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

5

Page 8: nguyen li va kien truc cua amd k8

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).

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

6

Page 9: nguyen li va kien truc cua amd k8

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

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.

7

Page 10: nguyen li va kien truc cua amd k8

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).

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

8

Page 11: nguyen li va kien truc cua amd k8

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.

Có thể thay đổi hệ số nhân.

Vcore 1,35 / 1,40 V.

CPU AMD Athlon 64 FX dùng socket AM2 :

9

Page 12: nguyen li va kien truc cua amd k8

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

a)

b)

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

10

Page 13: nguyen li va kien truc cua amd k8

a)

b)

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

11

Page 14: nguyen li va kien truc cua amd k8

a)

b)

Hình 1.10: CPU dung socket AM2 (940 chân) và CPU dung socket 939 (939 chân)

12

Page 15: nguyen li va kien truc cua amd k8

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

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 13

Page 16: nguyen li va kien truc cua amd k8

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)

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

14

Page 17: nguyen li va kien truc cua amd k8

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.

15

Page 18: nguyen li va kien truc cua amd k8

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 ghi-

thanh 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 16

Page 19: nguyen li va kien truc cua amd k8

đổ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 .

17

Page 20: nguyen li va kien truc cua amd k8

Các MOP rời khỏi bộ giải mã trong một xung nhịp lại được kết hợp vào các nhóm ba,

đôi khi là hai, hoặc thậm chí chỉ có 1 MOP bởi các lệnh DirectPath và VectorPath hay

các khoảng thời gian trễ khác nhau trong việc chọn lệnh để giải mã. Một nhóm không

hoàn thiện như vậy cần phải bổ sung thêm các MOP rỗng để đủ 3 MOP, sau đó sẽ

được chuyển đi xử lý. 

Các lệnh vector SSE, SSE2 và SSE3 trong bộ xử lý K8 được chia làm các cặp MOP

chuyên xử lý riêng rẽ nửa trên và nửa dưới 64 bit trong thanh ghi SSE 128 bit bằng

thiết bị 64 bit. Điều này làm thời gian hoàn thành quá trình giải mã tăng lên gấp đôi, và

giảm số dòng lệnh chờ xuống 1 nửa. 

2.4Bộ phận xử lý số nguyên – Interger Execution Unit

Bộ phận xử lý số nguyên của các bộ xử lý K8 gồm ba Pipe số nguyên đối xứng.

Mỗi Pipe này có bộ phận Scheduler riêng với một hàng đợi 8-MOP, một bộ đơn vị số

học và logic (ALU – Arithmetic and Logical Unit ), một đơn vị tạo địa chỉ (AGU –

Address Generation Unit ) và một đơn vị dự đoán rẽ nhánh. Ngoài ra, còn có một đơn

vị nhân nối với Pipe 0, còn Pipe 2 thì được nối với đơn vị xử lý các phép tính mới:

LZCNT và POPCNT mà chúng ta sẽ tìm hiểu kỹ hơn trong phần sau của bài báo này. 

Hình 2.3: Bộ phậnxử lý số nguyên

Lựa chọn hàng đợi cho mỗi MOP tuỳ thuộc vào vị trí cố định của lệnh trong bộ ba.

Mỗi Macro-Operation trong bộ ba lại được gửi đến Bộ đệm sắp xếp lại (ROB) để xử lý

trong đó . Một mặt, nó giúp đơn giản hoá việc quản lý lệnh, nhưng mặt khác, nó có thể

dẫn đến việc hàng đợi bị mất cân bằng nếu như một chuỗi phép tính độc lập được xếp

đặt không thích hợp trong mã chương trình (trong thực tế điều này hiếm khi xảy ra và

cũng ít ảnh hưởng đến hiệu quả làm việc). Bộ phận giải mã sẽ sắp đặt phép nhân và

mở rộng các phép tính Bit mở rộng trong nhóm bộ ba tương ứng để chúng được

chuyển đến Pipe thích hợp. 18

Page 21: nguyen li va kien truc cua amd k8

Như đã đề cập từ trước, các MOP sẽ được tách làm các phép tính số nguyên và phép

tính địa chỉ bộ nhớ trong hàng đợi Scheduler của Pipe số nguyên. Dựa vào từng dữ

liệu, Scheduler có thể chuyển một phép tính số nguyên sang ALU và một phép tính địa

chỉ sang AGU từ mỗi hàng đưọi . Có tối đa hai yêu cầu bộ nhớ đồng thời. Vì vậy,

nhiều nhất là ba phép tính số nguyên và 2 phép tính bộ nhớ (64 bit được đọc/viết) được

xử lý trong mỗi xung nhịp. Còn các Micro-Operation từ nhiều MOP khác nhau có thể

được xử lý không theo thứ tự mà tuỳ thuộc vào dữ liệu sẵn sàng. Ngay khi phép tính vi

lệnh ( Micro-Ops )  số học và MOP đã được xử lý, MOP sẽ rời khỏi hàng đợi lập

Scheduler nhường chỗ cho các phép tính khác. 

Các bộ xử lý K8 sẽ chọn phép tính Micro-Ops đòi hỏi địa chỉ bộ nhớ theo mức độ

chương trình. Các yêu cầu bộ nhớ xuất hiện sau trong mã chương trình không thể được

xử lý trước những phép tính trước đó. Vì thế, nếu như các phép tính trước chưa được

thực hiện, tất cả những phép tính địa chỉ sau đó cũng không thể tiến hành ngay cả khi

các toán hạng đã sẵn sàng. 

Ví dụ:

Add ebx, ecx mov eax, [ebx+10h]

_ Phép tính nhanh địa chỉ  mov ecx, [eax+ebx]

– địa chỉ phụ thuộc vào kết quả của lệnh trước đó mov edx, [ebx+24h] – lệnh này sẽ

không được gửi đi thực hiện cho đến khi tất cả địa chỉ của các lệnh trước đó đã được

tính toán xong.

Việc này có thể ảnh hưởng đến tốc độ xử lý của K8 do bị “thắt nút cổ chai” . Do đó,

mặc dù bộ xử lý K8 có thể tiến hành hai lệnh mỗi xung nhịp, trong một số mã nhất

định, nó có thể thực hiện đòi hỏi bộ nhớ kém hiệu quả hơn bộ xử lý Core 2, chỉ đọc

được một lệnh mỗi xung nhịp, nhưng lại áp dụng quy tắc xử lý lệnh không theo thứ tự

và có thể đọc hoặc ghi trước các lệnh trước đó.   

 2.5 Bộ phận dấu phẩy động – Floating Point Unit

Bộ phận Scheduler đơn vị dấu phẩy động (FPU) của các bộ xử lý K8 được tách

riêng khỏi bộ phận Scheduler đơn vị số nguyên và có thiết kế khác đi một chút. Bộ

nhớ đệm của Scheduler có thể cung cấp tối đa 12 nhóm, mỗi nhóm gồm 3 MOP (theo

lý thuyết là 36 phép tính dấu phẩy động). Khác với Bộ phận số nguyên có các Pipe đối

xứng, FPU gồm có ba phần khác nhau: FADD cho phép cộng dấu phảy động , FMUL

19

Page 22: nguyen li va kien truc cua amd k8

cho phép nhân dấu phảy động và FMISC (còn được gọi là FSTORE) cho các phép tính

lưu trong bộ nhớ và phép tính bổ trợ. Do đó, bộ nhớ đệm Scheduler không cố định rõ

các MOP vào từng nhóm trong một khác nhau ( theo hình dưới )

Hình 2.4: Đơn vị dấu phẩy động

Mỗi xung nhịp, K8 có thể gửi một phép tính đến đơn vị dấu phẩy động để xử lý. Bộ xử

lý K8 sử dụng đơn vị dấu phẩy động 80 bit. Tại phần giải mã, các lệnh vector SSE 128

bit sẽ được tách làm hai MOP xử lý hai nửa 64 bit của một toán hạng 128 bit. Các

MOP này sẽ được xử lý lần lượt tại các xung nhịp khác nhau. Điều này không chỉ làm

chậm tiến độ xử lý lệnh vector, mà còn làm giảm kích thước của bộ nhớ đệm

Scheduler FPU xuống một nửa, và do đó giảm hiệu quả việc xử lý lệnh không

theo thứ tự. 

Bộ xử lý K8 thực hiện tải những lệnh SSE bằng cách sử dụng Bộ phận FSTORE. Một

mặt, nó không cho phép xử lý cùng lúc bất kỳ lệnh nào khác cần sử dụng Bộ phận này.

Mặt khác, nó chỉ cho phép một lần tải lệnh cùng lúc. K8 chỉ có thể đọc song song hai

lệnh cùng lúc nếu một trong số các lệnh đó kết hợp một phép tính bộ nhớ và một phép

tính dữ liệu (còn gọi là lệnh Load-Execute), ví dụ như ADDPS xmm1, [esi]. 

2.6 Hệ thống  bộ nhớ  bên trong

Đơn vị tài/lưu trữ  - Load/Store Unit

Khi các địa chỉ cần tìm đã được tính toán xong trong AGU của bộ xử lý K8, tất

cả các phép tính đã được tải và lưu trữ sẽ được chuyển đến LSU (Đơn vị tải/lưu trữ -

Load/Store Unit ). LSU chứa hai hàng chờ: LS1 và LS2. Đầu tiên, các phép tính này sẽ

được chuyển vào hàng LS1 với 12 đơn vị. Với tốc độ hai phép tính mỗi xung nhịp,

hàng chờ LS1 cần có bộ nhớ cache L1 được sắp xếp bởi mã lập trình. Trong trường

hợp không có trong cache ( Cache –Miss ) , các phép tính sẽ được xếp vào hàng chờ

LS2 32 đơn vị. Đây là lúc cần đến bộ nhớ cache L2 và RAM. 

20

Page 23: nguyen li va kien truc cua amd k8

Cache L1

Cache L1 trong K8 được tách riêng: 64KB lệnh (L1I) và dữ liệu (L1D). Mỗi cache

được liên kết hai chiều và có độ dài 64 byte. Việc này có thể dẫn đến xung đột thường

xuyên giữa các đường có cùng đích đến, làm tăng số cache thiếu và ảnh hưởng xấu đến

tốc độ xử lý. Nhưng tình trạng này có thể được khắc phục bằng cache L1 có kích

thước lớn hơn. Ngoài ra, một ưu điểm khác của L1D đó là có có hai cổng, do vậy có

thể xử lý hai lệnh đọc hoặc/và viết hai lệnh trong mỗi xung nhịp.  

Cache L2

Mỗi nhân trong bộ xử lý 2 nhân K8 có cache L2 riêng của mình . Cache L2 trong

K8 vẫn như cũ: 512KB mỗi nhân với 16 liên kết. Các cache L2 riêng đều có ưu và

nhược điểm riêng so với cache L2 chia sẻ trong CPU Core 2. Chắc chắn ưu điểm lớn

nhất là việc xung đột và cạnh tranh cache khi nhiều nhân cùng được tải cùng một lúc

sẽ không còn nữa. Còn nhược điểm là sẽ có ít cache hơn cho mỗi nhân khi chỉ có một

ứng dụng hoạt động.   

Cache L2 đều là riêng: các dữ liệu lưu trong cache L1 và L2 đều không nhân đôi.

Cache L1 và L2 trao đổi dữ liệu qua hai Bus theo hai hướng: một để nhận và một để

chuyển dữ liệu. Trong bộ xử lý K8, mỗi Bus rộng 64 bit (8 byte). Cấu trúc này giúp tốc

độ chuyển dữ liệu đến cache L2 ít nhất là 8 byte/xung nhịp. Nói cách khác, cần 8 xung

nhịp để chuyển 64 bit, do vậy thời gian chuyển dữ liệu đến nhân sẽ bị chậm lại rõ rệt,

đặc biệt là khi hai dòng trong cache L2 được chuyển đến cùng một lúc. 

Hình 2.5: Bus chuyển dữ liệu giữa cache L1 và L2 trong bộ xử lý K8 

Cache L3  

Để khắc phục nhược điểm của cache L2 có kích cỡ nhỏ, các cache L3 2MB trong tất

cả các nhân của K8 lại có thể chia sẻ được với 32 đường liên kết.Cache L3 có cả khả

năng thích ứng và riêng biệt: nó lưu trữ dữ liệu từ cache L2 của tất cả các nhân và cả

dữ liệu chung của nhiều nhân. Khi nhân yêu cầu đọc một dòng lệnh, nếu như chỉ có

21

Page 24: nguyen li va kien truc cua amd k8

một nhân đang sử dụng dòng lệnh đó, nó sẽ được chuyển từ không gian trống trong

L3. Còn nếu dòng lệnh này đang được một nhân khác sử dụng, nó sẽ vẫn nằm trong

cache. Tuy nhiên, để xếp chỗ cho dòng lệnh đến từ cache 2, một dòng lệnh khác trước

đó sẽ rời đi. 

Cache L3 sẽ giúp tăng tốc độ luân chuyển dữ liệu giữa các nhân. Như đã tìm hiểu, các

bộ xử lý Athlon 64 tạm thời chỉ chuyển đổi dữ liệu giữa các nhân thông qua Bus bộ

nhớ. Do đó, việc chuyển đến dữ liệu chia sẻ diễn ra chậm hơn nhiều. Theo như AMD,

bộ xử lý 4 nhân K8 có thể trao đổi dữ liệu qua cache L3. Khi yêu cầu từ một trong số

các nhân được chuyển đến, nhân chuyển đổi dữ liệu sẽ copy dữ liệu vào cache L3, nơi

nhân yêu cầu có thể đọc chúng. Thời gian chuyển dữ liệu trong cache của nhân còn lại

sẽ được rút ngắn rất nhiều. 

Hình 2.6 : Quá trình chuyển dữ liệu giữa các nhân trong bộ xử lý K8

Cache L3 sẽ hoạt động hiệu quả hơn so với cache L2. Tuy nhiên, AMD cho rằng hiệu

quả trội hơn này còn tuỳ thuộc vào khối lượng công việc. Nếu khối lượng công việc

không quá lớn, khả năng làm việc của L3 sẽ lớn hơn rõ rệt, còn nếu khối lượng công

việc rất nặng nề, độ rộng băng thông sẽ tăng lên.  Chúng ta sẽ còn phải chờ để kiểm

chứng điều đó .

TLB

Bên cạnh bộ nhớ Cache cho lệnh và cho dữ liệu , bộ vi xử lí có nhiều kiểu của Cache :

đó là Bộ đệm TLB ( Translation – Lookaside Buffer ) . Những bộ đệm này được dùng

22

Page 25: nguyen li va kien truc cua amd k8

để lưu trữ sự kết nối giữa địa chỉ trang vật lí với địa chỉ trang ảo từ những Bảng trang

địa chỉ .

Số lượng của danh mục TLB xác định có bao nhiêu trang bộ nhớ có thể làm việc mà

không mất công chuyển sang Bảng trang khác . Điều này hay bị phê phán trong những

ứng dụng mà xử lí dữ liệu bộ nhớ ngẫu nhiên , khi chúng yêu cầu dữ liệu liên tục trong

những trang khác nhau , bộ vi xử lí K8 có những bộ đệm dịch nhiều hơn và có kích

thước cũng lớn hơn . Để thuận tiên theo dõi , chúng tôi đưa ra bảng dưới đây

                                 

Bảng 2. 1 : Khả năng TLB của bộ vi xử lí K8

ITLB : Bộ đệm TLB cho lệnh

DTLB : Bộ đệm TLB cho dữ liệu

Như bảng trên cho thấy nhiều bộ đệm dịch những trang 2MB . Nó xuất hiện để hỗ trợ

cho việc những trang có dung lượng lớn hơn 1GB mà có thể được dùng hữu ích cho

những máy chủ xử lí khối lượng dữ liệu lớn . Với sự hỗ trợ thích hợp từ phía hệ điều

hành mà những ứng dụng dùng những trang 2MB và 1GB sẽ chạy nhanh hơn .

2.7Bộ phận điều khiển bộ nhớ - Memory Controller

Khi dữ liệu được yêu cầu không tìm thấy trong bất kì bộ nhớ Cache nào , thì yêu

cầu đó được chuyển tới Bộ phận điều khiển bộ nhớ tích hợp bên trong Die ( Vùng

Silcon chứa Chip ) của bộ vi xử lí . Vị trí của Bộ phận điều khiển bộ nhớ nằm trên Die

của bộ vi xử lí làm giảm thời gian trễ với bộ nhớ , nhưng bên cạnh đó nó lại làm cho

bộ vi xử lí không linh hoạt với những kiểu bộ nhớ khác nhau , nó lại làm tăng kích

thước của Die và sự phức tạp trong thiết kế .

Bộ phận điều khiển bộ nhớ được tích hợp bên trong CPU là một điều thuận lợi với

những bộ vi xử lí K8.

23

Page 26: nguyen li va kien truc cua amd k8

Đầu tiên , bây giờ nó có thể truyền dữ liệu không phải bằng một kênh có độ rộng 128-

bit và nó dùng hai kênh độc lập 64-bit . Như vậy hai hoặc nhiều nhân của bộ vi xử lí

có thể làm việc hiệu quả hơn với bộ nhớ trong cùng một thời gian .

Thứ hai , thuật toán sắp xếp lại và cấp phát trong Bộ phận điều khiển bộ nhớ được tối

ưu hoá . Những nhóm điều khiển bộ nhớ Đọc và Ghi vì thế mà Bus nhớ có thể được

tận dụng một cách tối đa . Những việc Đọc thuận lợi hơn so với việc Ghi . Dữ liệu cần

ghi được lưu trữ trong bộ đệm mà không rõ kích thước ( nó sẽ nằm giữa từ 16 và 30

dòng , mõi dòng 64-byte ) . Với việc điều khiển những dòng yêu cầu trong những

nhóm chúng ta có thể tránh việc chuyển Bus nhớ từ trạng thái Đọc thành Ghi liên tục

để tiết kiệm thời gian . Nó cho phép tăng hiệu suất một cách đáng kể khi thay đổi yêu

cầu trạng thái Đọc và Ghi .

Thứ ba , Bộ phận điều khiển bộ nhớ có thể phân tích chuỗi yêu cầu và thực hiện công

việc lấy trước dữ liệu . ( Prefetch ) .

2.8 Lấy trước dữ liệu – Prefetch

Prefetch rõ ràng đem lại lợi ích cho những bộ vi xử lí K8 . Tích hợp bộ phận điều

khiển bộ nhớ cho phép thời gian trễ thấp điều đó làm cho những bộ vi xử lí của AMD

thực hiện thành công với hệ thống nhớ trong một thời gian dài . Tuy nhiên , những bộ

vi xử lí K8 không đạt được hiệu suất làm việc như mong đợi với bộ nhớ DDR2 , trong

khi đó Core 2 lại có cơ cấu tạo nên sức mạnh với Prefetch . Những bộ vi xử lí K8 có

02 Prefetch : một để cho mã và một để cho dữ liệu . Prefetch cho dữ liệu lấy dữ liệu

vào trong bộ nhớ Cache L2 bằng phương thức đơn giản đó là liên tục .

2.9 Ảo hoá

AMD tiếp tục cải tiến công nghệ ảo của họ mà những máy chủ có thể chạy vài

hệ điều hành cùng một lúc trên một máy tính . Một trong những cải tiến công nghệ ảo

một cách sâu sắc đó là sử dụng Nested Paging . Trong hệ thống này những trang máy

ảo được lồng nhau trong toàn bộ Bảng trang của Hypervisor ( Theo dõi những máy ảo

– là một nền tảng ảo cho phép nhiều hệ điều hành chạy trên một PC ) . Nếu không có

liên kết tới trang trong TLB , CPU thực hiện biến đổi tất cả Bảng tự động , không như

kiểu Shadow Paging yêu cầu nhiều tài nguyên để quản lí việc chuyển Bảng của những

máy ảo

24

Page 27: nguyen li va kien truc cua amd k8

Hình 2.7 : Kiểu Shadow Paging khi chuyển giữa những hệ thống máy ảo thì

Hypervisor phải chuyển giữa những Bảng trang đã được xoá sạch TLB trong cùng một

thời gian

Hình 2.8 : Kiểu Nested Paging khi chuyển giữa những hệ thống máy ảo Hypervisor

khong cần phải xoá sạch TLB tại cùng một thời điểm .

Một số dữ liệu cho rằng dùng Nested Paging làm tăng hiệu suất ứng dụng trên hệ

thống ảo tới 40% khi so sánh với hiệu suất được dùng kiểu Shadow Paging .

25

Page 28: nguyen li va kien truc cua amd k8

Chương 3: ỨNG DỤNG

Ban đầu, AMD thiết kế Neo cho những sản phẩm như MTXT siêu mỏng (loại MTXT

mỏng, nhẹ, có đầy đủ chức năng, giá cả phải chăng). Tuy nhiên, giờ đây, AMD sẽ mở

rộng việc sử dụng chip Neo sang các PC "tất cả trong một" và nettop (loại MTĐB giá

rẻ, nhỏ chỉ bằng cuốn sách bìa cứng).

Với sức mạnh tổng hợp từ các bộ xử lý bên trong chip, thế hệ APU của AMD đã nâng

tầm tốc độ xử lý đồ họa với hiệu năng cao, cùng với đó là khả năng tiết kiệm điện

năng tốt và chi phí khá cạnh tranh nên thế hệ chip mới nhất này của AMD được dự báo

sẽ là một “thế lực mới” của thị trường chip trong vài năm tới đây.

Hình 3.1: HD rực rỡ

Sức mạnh tổng hợp từ APU 

Đầu năm 2011, hãng AMD đã làm “khuynh đảo” thị trường chip khi tung ra bộ xử lý

tăng tốc đầu tiên trên thế giới mang tên APU (Accelated Processing Unit) tích hợp 3

thành phần quan trọng bên trong, bao gồm: bộ xử lý tính toán (CPU), bộ xử lý đồ họa

(GPU) và bộ điều khiển cầu bắc (North Bridge). 

26

Page 29: nguyen li va kien truc cua amd k8

Máy trang bị APU có thể kết hợp hai cách xử lý nối tiếp và song song giữa vi xử lý và

bộ xử lý đồ hoạ. Nhờ vậy, khả năng xử lý tính toán và đồ hoạ của APU thực sự vượt

trội và có thể đáp ứng phần lớn nhu cầu của người sử dụng, đồng thời sự giao tiếp giữa

CPU và GPU cũng được tăng tốc đáng kể. 

Hiện nay để tăng tốc xử lý đồ họa, các mẫu chip của những hãng khác phải kết hợp với

card đồ họa rời hoặc khi sử dụng card đồ họa rời, một số mẫu chip phải tắt bộ xử lý đồ

họa bên trong chip, vì thế những sản phẩm này không chỉ gia tăng giá trị mà lại không

tận dụng hết được hiệu năng sản phẩm. Tuy nhiên với chip APU của AMD việc xử lý

đồ họa sẽ tương đương các dòng chip kết hợp card rời của những khác hãng khác và

khi GPU tích hợp trong APU kết hợp với card đồ họa rời sẽ giúp tăng tốc xử lý đồ họa

lên 80% so với bình thường.

Ngoài ra, nếu trên môi trường máy tính xách tay (MTXT) mà người dùng có nhu cầu

vừa xử lý công việc thường xuyên vừa muốn chạy những ứng dụng yêu cầu cấu hình

đồ họa cao như chơi những game “khủng” mà không muốn sử dụng card rời (nóng

máy, tốn pin) thì chip APU của AMD sẽ là lựa chọn hợp lý, vì APU chứa hơn 1 triệu

transistors của AMD sẽ giúp cân bằng khối lượng công việc theo cách hiện đại nhờ kỹ

thuật ép xung tự động Turbo Cores.

Hình 3.2: Công nghệ chip APU

27

Page 30: nguyen li va kien truc cua amd k8

Các dòng sản phẩm bộ vi xử lý AMD K8

`AMD Sempron LE:

Hình 3.3: AMD Sempron LE-1250 Sparta (2.20GHz, 512KB L2 Cache, Socket AM2, 800Mhz FSB)

Series`AMD

Sempron LE

Socket typeAMD

Socket AM2Manufacturing Technology ( Công

nghệ sản xuất )65 nm

Codename (Tên mã)AMDSparta

Số lượng Cores 1CPU Speed (Tốc độ CPU) 2.20GHz

Bus Speed / HyperTransport 0.8 Gb/sL2 Cache 512 KB

Max Thermal Design Power (Công suất tiêu thụ tối đa) (W)

45

V Core (Core Voltage) 35Max Temperature (°C) 75Advanced Technologies • -

Công nghệ đồ họa • -

Bảng 3.1 Thông tin chi tiết về AMD Sempron LE-1250 Sparta (2.20GHz, 512KB L2

Cache, Socket AM2, 800Mhz FSB)

28

Page 31: nguyen li va kien truc cua amd k8

AMD Athlon 64:

Hình 3.4: AMD Athlon 64 3000+ (2.0GHz, 52KB L2 Cache, Socket 939, 1600MHz FSB)

SeriesAMD

Athlon 64

Socket typeAMD

Socket 939Manufacturing Technology ( Công

nghệ sản xuất )90 nm

Codename (Tên mã)AMD

VeniceCPU Speed (Tốc độ CPU) 2.00GHz

Bus Speed / HyperTransport 1.6 Gb/sL2 Cache 512 KB

Max Thermal Design Power (Công suất tiêu thụ tối đa) (W)

89

V Core (Core Voltage) 1.50VMax Temperature (°C) 70

Advanced Technologies • -Công nghệ đồ họa • -

Bảng 3.2: AMD Athlon 64 3000+ (2.0GHz, 52KB L2 Cache, Socket 939, 1600MHz FSB)

29

Page 32: nguyen li va kien truc cua amd k8

AMD Athlon 64 X2

Hình 3.5: CPU AMD Athlon 64 X2 QL-60

Model

Hãng sản xuất AMDThông số kỹ thuật

Multimedia Instruction

• MMX• SSE

• SSE2• SSE3

• 3DNow!Tính toán 64bit

Hỗ trợ Siêu phân luồng (HT)Hỗ trợ công nghệ ảo hóa

Điện thế sử dụng 1.075 - 1.125

Bảng 3.3: CPU AMD Athlon 64 X2 QL-60

30

Page 33: nguyen li va kien truc cua amd k8

AMD Athlon 64 FX

Hình 3.6: AMD Athlon FX-53 (2.4GHz, 1MB L2 Cache, Socket 940, 1600MHz FSB)

SeriesAMD

Athlon FX

Socket typeAMD

Socket 940Manufacturing Technology ( Công nghệ

sản xuất )130 nm

Codename (Tên mã)AMD

-Số lượng Cores 1

CPU Speed (Tốc độ CPU) 2.40GHzBus Speed / HyperTransport 1.6 Gb/s

L2 Cache 1 MBMax Thermal Design Power (Công suất

tiêu thụ tối đa) (W)89

V Core (Core Voltage) 1.50VMax Temperature (°C) 70

Advanced Technologies• HyperTransport

• 64 bitCông nghệ đồ họa • -

Bảng 3.4: AMD Athlon FX-53 (2.4GHz, 1MB L2 Cache, Socket 940, 1600MHz FSB)

31

Page 34: nguyen li va kien truc cua amd k8

KẾT LUẬNTrong điều kiện hiện nay, công nghệ phát triển nhanh như bão. Có rất nhiều

công nghệ mới ra đời. Việc hiểu và ứng dụng công nghệ mới này vào cuộc sống cũng gặp những khó khăn nhất định. Công nghệ bộ vi xử lí cũng vậy. Hiện nay trên thị trường có nhiều hãng sản xuất bộ vi xử lí hàng đầu như: Intel, Amd, IBM, HP, HITACHI… Việc người sử dụng hiểu và tìm cho mình bộ vi xử lí thích hợp với yêu cầu công việc và tài chính cũng không dễ.

Việc tìm hiểu bộ vi xử lí AMD K8, một bộ vi xử lí thuộc hãng AMD, đã mang cho chúng em những thông tin hữu ích về bộ vi xử lí. Một bộ vi xử lí hứa hẹn sẽ mang lại nhiều tiện ích, hi vọng trong tương sản phẩm sẽ có những cải tiến nhất định.

Một lần nữa chúng em xin chân thành cảm ơn Giảng viên Thạc sĩ Nguyễn Tuấn Tú đã có những đóng góp kiến thức để chúng em hoàn thành bài tập lớn này!

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

32

Page 35: nguyen li va kien truc cua amd k8

TÀI LIỆU THAM KHẢO

http://vozforums.com/showthread.php?t=1881613

http://www.wikipedia.org/

http://www.amd.com/sg/Pages/AMDHomePage.aspx

http://www.cpushack.com

http://www.vatgia.com/home/

http://www.pcworld.com.vn/

https://www.google.com.vn/

33