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

PHÂN TÍCH KIẾN TRÚC VÀ NGUYÊN LÝ LÀM VIỆC CỦA BỘ VI SỬ LÝ 64 BÍT 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 (669.94 KB, 27 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
Khoa Công Nghệ Thông Tin
----------

Đề tài:

PHÂN TÍCH KIẾN TRÚC VÀ NGUYÊN LÝ LÀM VIỆC
CỦA BỘ VI SỬ LÝ 64 BÍT CỦA AMD

Nhóm sinh viên thực hiện : Nhóm 3
Lớp: KHMT3-K6

Hà Nội, 2012
Nhóm sv thực hiện: Nhóm3

1

lớp:khmt3-k6


CHƯƠNG 1:

LỊCH SỬ CỦA AMD 64 BÍT

1.Lịch sử của AMD64
AMD64 được thiết kế bởi Hewlett Parkard như một sự thay
thế cho kiến trúc IA64,được công bố vào năm 1999 và hoàn thiện kỹ
thuật đầy đủ vào năm 2000.Kiến trúc của AMD64 như 1 sự thay thế
hoàn hảo của AMD cộng với khả năng tính toán 64bit cho các kiến
trúc x86 hiện có.AMD64 dựa trên bộ xử lý Opteron,được phát hành
vào tháng 4 năm 2003.


AMD đã làm 1 cuộc cách mạng lớn khi đưa vào nhân bộ xử lý
A64 2 công nghệ thật tuyệt vời, đó là khả năng xử lý 64bit và tích hợp
luôn bộ điều khiển bộ nhớ.
CHƯƠNG2: KIẾN TRÚC CỦA BỘ VI SỬ LÝ
AMD 64 BÍT
X86-64 là kiến trúc 64 bít mà AMD đã phát triển cho họ bộ vi
sử
lí hammer. Khác với kiến trúc IA 64 bít được intel sử dụng trong
các bộ sử lí intanium, X86-64 dựa trên kiến trúc X86-32 hiện tại.
kiến trúc X86-32 trên cho phép chạy các ứng dụng 32 bitys mà
không cần phải biên dịch lại và hiệu xuất không bị suy giảm như
khi chạy ở chế độ mô phỏng X84-32 trên bộ vi sử lí intanium. Ngoài
ra những lợi thế của các kiến trúc trước đây , còn có những tính
năng tiên tiến khác.
Giải thuật 64 bít rất đơn giản : thêm vào tập thanh ghi một vài
thyanh ghi mới và mở rộng các thanh ghi củ. có 8 thanh ghi đa
dụng mới được thêm vào, chúng được sử dụng tronh model 64 bít;
và các thanh ghi cũ EAX, EBX.. được mở rộng từ 32 bít lên 64 bít .
tám thanh ghi mới được thêm vào các đơn vị SSE để hổ trợ SSE2,
việc tăng hiệu năng của các ứng dụng đói tài nguyên
Để hổ trợ cả mả lệnh 32 bít và 64 bít, kiến trúc X86-64 cho phép bộ
vi sử lí làm việc ở 2 chế độ:
Nhóm sv thực hiện: Nhóm3

2

lớp:khmt3-k6


1.


chế độ “ sâu” (long mode)

a, chế độ 64 bít: hỗ trợ địa chỉ 64 bít thật,8 thanh ghi đa dụng 64 bít
mới, các thanh ghi GPR 64 pít, con trỏ lệnh 64 bít, không gian địa
chỉ liên tục.
b, chế độ tương thích: hổ trợ tương thích cho các ứng dụng 16 hay
32 bít, nó được thực hiện dựa trên nguyên tác sử dụng các phân
đoạn mã riêng biệt làm việc trong chế độ bảo vệ. ứng dụng sẽ xem
bộ vi sử lí như CPU X86 thông thường trong chế đọ bảo vệ. hệ điều
hành sẽ đảm nhận vịc dịch chuyển địa chỉ, xử lí cách ngắt và hệ
thống cấu trúc dữ liệu
2.

chế độ “kế thừa” (legacy mode):

hổ trợ tương thích với các hệ điều hành 16 bít và 32 bít. Khi ở
mode “kế thừa” , bộ vi sử lí sẽ có nhưng chức năng của một CPU 32
bít thông thường, không có bất kì tập lệnh 64 pít nào. Kiểu hoạt
động này cung cấp chế độ tương thích đầy đủ nhất với tất cả các
kiến trúc hiện tại , bao gôm việc hổ trợ các phân đoạn bộ nhớ, các
thanh ghi GPR và con trỏ lệnh 32 bít
3. Phương pháp AMD
Phương pháp đảm bảo thời gian phục vụ yêu cầu vào ra số liệu của
ngoại vi là ngắn nhưng vẫn thực hiện bằng phần mềm. Mỗi lệnh đều
phải được thực hiện qua các giai đoạn có sự tham gia của vi sử
lí.Trong một số trường hợp ví dụ khi cần chuyển một mảng dữ liệu có
đặc điểm giống nhau giữa các bộ và các ngoại vi nhanh như màn hình
thì phương pháp bàng phần mềm không đủ nhanh để đáp ứng các yêu
cầu chuyển số liệu rất cao. Lúc này phải dùng phương pháp bằng phần

cứng,thay chương trình con thực hiện chuyển số liệu giữa bộ nhớ và
thiết bị ngoại vi mà không thông qua vi sử lý. Cách thức này gọi là
truy nhập bộ nhớ trực tiếp AMD ( access memory direct). Làm nhiệm
vụ điều khiển quá trình này là chíp bổ trợ AMD-8232 ,hay còn được
gọi là AMD. Với phương pháp AMD , tốc độ truyền dữ lieeujchir bị
hạn chế bởi thoeif gian truy nhập của bộ nhớ. Vi sử lí không cần phải
Nhóm sv thực hiện: Nhóm3

3

lớp:khmt3-k6


đọc, giải mã và thực hiện các lệnh chuyển số liệu, cá lệnh điều chỉnh
địa chỉ và cá lệnh kiểm tra độ dài mảng đã chuyển để biết thời điểm
kết thúc. Nó hoàn toàn chuyển quyền diều khiển bus cho chíp AMD và
số kiệu được truyền trực tiếp giữa ngoại vi và bộ nhớ dưới sự điều
khiển của chíp này.
3.1 Bộ điều khiển bộ nhớ(Memory control)
Kể từ dòng K7 trở về trước, bộ điều khiển bộ nhớ do chipset cầu
bắc đảm nhận, nhiệm vụ chính của chipset cầu bắc là làm cầu nối
trung gian giữa CPU và bộ nhớ chính thông qua FontSideBus (FSB).
Do đó về mặt lý thuyết bus bộ nhớ sẽ bị giới hạn theo bus của
CPU hay bus của chipset, trong khi đó, bus bộ nhớ hiện nay đã được
đẩy lên rất cao, ta thường nghe nói đến bộ nhớ
DDR500,DDR550,DDR600 và cao hơn nữa.
Đến dòng K8 - A64, AMD đã tích hợp luôn bộ điều khiển bộ nhớ
vào trong nhân của CPU (core) nên có thể nói rằng trong chừng mực
nào đó bus bộ nhớ cao đến bao nhiêu CPU đều có thể đáp ứng được.
Bên cạnh đó việc tích hợp bộ điều khiển bộ nhớ còn góp phần rất lớn

trong việc giảm đáng kể “độ trễ” của dữ liệu do không phải truyền từ
CPU qua chipset cầu bắc và ngược lại, đồng thời “vứt bỏ” nút thắt dữ
liệu giúp gia tăng băng thông giữa CPU và bộ nhớ chính. (Edit bởi
linhVNDIY)
Theo đánh giá chủ quan chính điều này đã góp phần đáng kể trong
việc kéo dài tuổi thọ của RAM DDRI, trước sự cạnh tranh lăm le thay
thế của RAM DDRII .
3.2. HyperTransport Technology (HTT)
Công nghệ HyperTransport là 1 kết nối tốc độ cực nhanh theo
kiểu điểm đến điểm để kết nối các thành phần trên motherboard. Công
nghệ này được phát minh bởi AMD và được ứng dụng trong những
lĩnh vực đòi hỏi dữ liệu được truyền đi với cường độ cao, tốc độ lớn và
độ trễ nhỏ. Và AMD đã ứng dụng luôn công nghệ này vào bộ xử lý
A64.
Nhóm sv thực hiện: Nhóm3

4

lớp:khmt3-k6


Bằng công nghệ HyperTransport, bộ xử lý A64 sẽ giao tiếp với 2
thành phần chính trong hệ thống là memory và chipset thông qua
HyperTransport bus (gọi là HTT). Tuyến giao tiếp giữa CPU và
chipset được gọi với tên mới là HT bus. Và điểm đặc biết là 2 tuyến
giao tiếp này hoàn toàn độc lập với nhau, sự thay đổi của tuyến bus
này sẽ không gây ảnh hưởng đến bus kia và nguợc lại . Do đó AMD đã
không gọi HT bus là FSB nữa, mặc dù nhìn bề ngoài chúng có vẻ
giống nhau.
Ở dòng K7 trở về trước, FSB đóng vai trò quan trọng nhất trong

tốc độ của hệ thống, FSB thấp đồng nghĩa với việc đang sỡ hữu 1 hệ
thống có tốc độ chậm.
A64 thì hoàn toàn không xảy ra điều này, có thể bạn đang cài đặt
HT bus ở mức thấp (thấp hơn cả mức mặc định của nhà sản xuất chẳng
hạn), nhưng tốc độ của toàn bộ hệ thống lại không thấp tí nào
4.Hệ số nhân
Trong hệ thống A64 có 2 HSN khác nhau cần quan tâm đó là :
Hệ số nhân của CPU – Multiplier (hay còn gọi là CPU Ratio)
HSN này có nhiệm vụ xác lập tốc độ thực của CPU (core speed).
HSN này giống như các dòng CPU K7 trở về trước.
Core speed sẽ được xác định qua công thức sau :
Core speed = HTT x Multiplier
Căn cứ vào HSN, có thể thấy rằng A64 được chia thành 2 dòng
riêng biệt:
- dòng cao cấp - AthlonFX : không bị khóa HSN (unlocked), điều
chỉnh HSN thoải mái theo cách của người sử dụng.
- dòng phổ thông - Athlon64 : bị khoá HSN 1 nửa (Hafl locked),
chỉ có thể điều chỉnh HSN giảm xuống so với HSN chuẩn của CPU mà
thôi.

Nhóm sv thực hiện: Nhóm3

5

lớp:khmt3-k6


Hệ số nhân của HT bus – LDT (Lightning Data Transport)
HSN LDT dùng để xác lập tần số HT bus khi CPU giao tiếp với
chipset, HT bus được tính bằng công thức sau :

HT bus = HTT x LDT
Ở dòng A64, để có hệ thống ổn định và hiệu quả nhất thì HT bus
phải được cài đặt với tần số tối đa trong khoảng 1.000Mhz. Do đó
trong quá trình sử dụng chúng ta nên cài đặt HTT và LDT ở mức độ
hợp lý để luôn đảm bảo rằng HT bus chạy trong khoảng 1.000Mhz.
Lấy ví dụ cụ thể :
Với HTT = 200Mhz, LDT = 5
Với HTT 200 - 250Mhz, LDT = 4
Với HTT 250 - 330Mhz, LDT = 3.
5 .Bộ chia
Bộ chia nhằm xác định tỷ lệ giữa HTT bus và Memory bus, được
sử dụng trong trường hợp memory bus không theo kịp với HTT bus,
hay nói cách khác ta vẫn có thể đẩy HTT bus lên cao khi sử dụng bộ
nhớ có tốc độ chậm thông qua bộ chia.
Trên hệ thống A64 thông thường có các bộ chia sau :
Divider 200 (bộ chia 1: 1)
Divider 180 (bộ chia 9:10)
Divider 166 (bộ chia 5: 6)
Divider 150 (bộ chia 3: 4)
Divider 140 (bộ chia 7:10)
Divider 133 (bộ chia 2: 3)
Divider 120 (bộ chia 3: 5)
Divider 100 (bộ chia 1: 2)

Nhóm sv thực hiện: Nhóm3

6

lớp:khmt3-k6



6. Công nghệ Cool’n’quiet:
Trước đây việc tăng cường hiệu năng bộ xử lý luôn đồng nghĩa
với việc tăng giá điện năng tiêu hao và tiếng ồn.Công nghệ
Cool’n’quiet của AMD qua kiểm nghiệm thực tế đã tỏ ra hiệu dụng
trong việc giảm thiểu tối đa mức tiêu thụ điện năng,giúp hệ thống chạy
thật êm mượt khi thực thi các chuỗi lệnh,đồng thời giải nhiệt hiệu quả
tạo lên một môi trường thật yên tĩnh thông thoáng.
7. Phòng chống virus :
Được kích hoạt khi sử dụng hệ điều hành window XP SP2 trở
lên ,tự động ngăn ngừa hiện tượng tràn bộ đệm khi bị virus tấn công.
8. Tích hợp tấm tản nhiệt trên CPU:
Bảo vệ an toàn cho CPU ,tránh hiện tượng mẻ core trước đây của
dòng CPU AMD,tăng tính giải nhiệt cho CPU vì có mặt tiếp xúc lớn
với bộ tản nhiệt.

Nhóm sv thực hiện: Nhóm3

7

lớp:khmt3-k6


CHNG 3:

NGUYấN L LM VIC

1. Hoạt động của chíp điều khiển AMD
Chíp AMD sẽ tạo ra địa chỉ , các tín hiệu điều khiển đọc đọc/viết
ngoại vi , tính số từ đã chuyển và thông báo khi chuyển xong mảng số

liệu cho vi xử lý. Ta có thể hình dung nh sơ đồ sau :

Không gian
Bộ nhớ
Vi xử Lý

AMD

Không gian
vào ra

Hình 3-1:Các đờng liên hệ trực tiếp trong quá trình AMD
BUS địa chỉ

CPU

BUS số liệu

AMDC
HOLD

HRQ

DRQ

HLDA

HACK DACK

Thiết bị

I/O
DRQ

Bộ nhớ

DACK

BUS điều khiển ,các tín hiệu IOR, IOW, MEMR, MEMW

Hình 3-2: Sơ đồ nối AMD với bộ nhớ, thiết bị ngoại vi và vi xử lý
Nhúm sv thc hin: Nhúm3

8

lp:khmt3-k6


Khi hoạt động AMD , một ngoại vi ( ví dụ, bộ điều khiển ổ đĩa)
muốn gửi byte số liệu bằng phơng pháp này thì trớc hết nó phải gửi tín
hiệu theo yêu cầu AMD là DREQ tới một lối vào (gọi là một kênh) của
chíp AMD .Nếu kênh này không bị che, chíp AMD sẽ đáp lại bằng tín
hiệu ghi nhận yêu cầu HRQ.Vi xử lý sẽ đáp ứng bằng cách thả nổi bus
và gửi ra tín hiệu ghi nhận HLDA tới AMD. Khi AMD nhận đợc tín
hiệu này, nó sẽ gửi đợc một tín hiệu điều khiển các chuyển mạch kể
trên tới vị trí AMD của chúng.Việc này làm ngát xử lý khỏi bus và nối
AMD với bus. Lúc này AMD nhận quyền điều khiển bus và gửi ra địa
chỉ nhớ mà số liệu từ ngoại vi cần viết vào. Tiếp theo nó gửi tín hiệu
nhận AMD là DACK0 tới ngoại vi để báo cáo cho ngoại vi hãy sẵn
sàng gửi tiếp số liệu. Cuối cùng, chíp AMD hạ cả hai đờng IOR và
MEMW trên bus điều khiển tới mức lôgic thấp để cho phép ngoại vi

xuất byte số liệu ra và viết vào bộ nhớ. Khi việc truyền số liệu hoàn tất,
chip AMD lấy di tín hiệu khi yêu cầu HRQ thả nổi bus. Các chuyển
mạch quay về vị trí ban đầu cho phép xử lý nắm lại quyền điều khiển
bus cho đến khi AMD yêu cầu tiếp theo. Việc truyền số liệu bằng
AMD từ bộ nhớ tới ngoại vi cũng đợc thực hiện theo cách tơng tự chỉ
có điều chíp AMD lúc này sẽ làm tích cực đờng điều khiển đọc bộ nhớ
MEMR và đờng điều khiển số liệu ra IOW.
Thông thờng chip AMD chuyển lên tục cả mảng số liệu, nên trong
nó có thanh đếm số từ (word count register) cho mỗi kênh. Sau mỗi
chuyển đợc một từ, nội dung thanh đếm giảm đi 1, địa chỉ AMD đợc
hiệu chỉnh lại (hoặc tăng hoặc giảm l). Khi nội dung thanh đếm số từ
bằng 0, chip AMD thông báo kết thúc hoạt động AMD bằng tín hiệu
TC (terminal count) đợc tạo ra từ thanh đếm số từ. Kết thúc quá trình
AMD, chip AMD sẽ đa theo tín hiệu yêu cầu treo HRQ trở về mức tích
cực (HRQ = 0).
Có hai phơng pháp thực hiện AMD:
- Cách thứ nhất là xử lý chuyển nhợng bus cho AMD rồi tự treo
- Cách thứ hai là AMD lấy lén chu kì
Nhúm sv thc hin: Nhúm3

9

lp:khmt3-k6


Trong đó AMD tận dụng những khoảng thời gian trong một chu kì bus
mà CPU không truy cập bộ nhớ (khi CPU bật phát tín hiệu địa chỉ cho
các chu kì đọc huặc viết bộ nhớ) để thực hiện phép AMD. Phơng pháp
thứ hai đòi hỏi việc đồng bộ thời gian rất nghiêm ngặt. Ta có giản đồ
thời gian của phép AMD bằng phơng pháp lấy lén chu kì.

2. Chip bổ trợ AMD-8237A
2.1. Sơ đồ nguyên lý:
Vi mạch 8237A của hãng Intel là một ví dụ điển hình của một
chip điều khiển truy nhập bộ nhớ trực tiếp AMD trong máy vi tính IBM
PC. Đó là một vi mạch gồm có 40 chân và đợc chia làm hai hàng mỗi
bên 20 chân. Ta có thể thấy nh trong hình sau:

Nhúm sv thc hin: Nhúm3

10

lp:khmt3-k6


Hình3 - 3: Sơ đồ khối chíp AMD-8237
AMD-8237A gồm 3 khối chính :
- Khối điều khiển và phân chia thời gian cho các hoạt động bên
trong và tạo tín hiệu điều khiển cho bên ngoài
- Khối điều khiển mã lệnh do CPU đa tới trớc khi phục vụ AMD
và giảI mã từ điều khiển chế độ để chọn điều kiểu AMD.
- Khối mã hoá đàu tiên làm trọng tài yêu tiên giải quyết u tiên cho
những kênh AMD yêu cầu phục vụ trong cùng một thời điểm.

Các chân tín hiệu là nh sau:

Nhúm sv thc hin: Nhúm3

11

lp:khmt3-k6



IOR: chỉ thị rằng chip AMD đang đọc số liệu từ ngoại vi địa
chỉ cảng.
IOW: AMD đang viết số liệu tới ngoại vi qua cảng.
MEMR: số liệu đợc đọc từ bộ nhớ chính.
MEMW:số liệu đang đợc viết ở bộ nhớ chính.
READY: tín hiệu vào từ bộ nhớ hoặc ngoại vi.
HLDA: CPU hoặc bus master báo cho biết nó đã
bus cho AMD.

rời khỏi

ADSTB: nhận byte cao vào chốt địa chỉ ngoài của DAM.
AEN: kích hoạt chốt địa chỉ của AMD.
HQR: tín hiệu yêu cầu AMD từ chip 8237.
CS: tín hiệu chọn chip.
CLK: lối vào xung nhịp đồng hồ(4,77 MHz hoặc
7,16 MHz trong PC).
RESET: khởi động lại chip.
DACK0-DACK3: chấp nhận AMD
DREQ0-DREQ3: đòi hỏi AMD tử ngoại vi
DB0-DB7: bus số liệu 2 hớng
A0-A3: ở trạng thái standby,CPU dùng nibble này để định địa
chỉ các thanh ghi. Khi 8237 đợc kích hoạt,đây là 4 bit địa chỉ thấp.
A4-A7: khi 8237 đợc kích hoạt, đay là 4 bit địa chỉ.
EOP: Kết thúc xử lý AMD .
Vcc: nguồn nuôi +5V
GND: nối đất.
2.2. Các trạng thái làm việc

Nhúm sv thc hin: Nhúm3

12

lp:khmt3-k6


Tên thanh ghi

Độ dài( bit) số lợng

Địa chỉ gốc
Số từ gốc
Địa chỉ tức thời
Số từ tức thời
Trạng thái
Lệnh
Tạm thời
Chế độ
Mặt nạ
Yêu cầu AMD

16
16
16
16
8
8
8
6

4
4

4
4
4
4
1
1
1
4
1
1

2.3. Các thanh ghi bên trong 8237
Các thanh ghi trong chip đợc chia thành hai nhóm: nhóm các thanh
ghi điều khiển, trạng thái và nhóm các thanh ghi làm việc.
2.4. Chu kỳ nghỉ
Khi không có yêu cầu AMD, 8237 ở chu kỳ nghỉ bằng cách liên
tục thực hiện trạng thái SI. Nó kiểm tra các đờng yêu cầu số liệu DQR
vào tất cả các chu kỳ đồng hồ, đồng thời kiểm tra chân chọn mạch CS
để xem CPU có ý định gửi lệnh đến hoặc đọc/ghi thông số, trạng thái,
chế độ AMD từ (hoặc vào) chip AMD hay không. Nếu CS=0 và HRQ
= 0, 8237 tuân theo sự điều khiển bằng chơng trình của CPU. A0-A3 là
Nhúm sv thc hin: Nhúm3

13

lp:khmt3-k6



những đầu vào địa chỉ để chọn các thanh ghi trong của 8237. Những
thanh ghi này đợc ghi vào hoặc đọc ra tuỳ thuộc vào tín hiệu điều
khiển đọc/ viết IORD và IOWD của CPU.

2.5. Chu kì hoạt động
Lúc này chip AMD phát yêu cầu treo HRQ cho CPU. Số liệu đợc
chuyển bằng AMD trong những chu kỳ này theo một trong những chế
độ sau:
- Chế độ chuyển từng từ (Single Transfer Mode)
- Chế độ chuyển mảng (Bolock Transfer)
- Chế độ chuyển theo nhu cầu (Đeman Transfer)
- Chế độ ghép tầng (Cascade mode)
2.6. Các chế độ u tiên
8237 có thể làm việc ở 2 chế độ u tiên khác nhau theo quy định
từ phần mèm:
- Chế độ u tiên cố định: kênh 0 có mức u tiên cao nhất, kênh 3 có
mức thấp nhất.
- Chế độ u tiên vòng: kênh vừa phục vụ sẽ có mức u tiên thấp
nhất, lúc mới lập chế độ kênh 0 ở mức cao nhất.
2.7 Làm việc với vi xử lý
8237 có thể làm việc một trong hai chế độ u tiên khác nhau theo
quy định phần mềm từ CPU là: chế độ u tiên cố định: kênh 0 có mức u
tiên cao nhất, kênh 3 có mức thấp nhất và chế độ u tiên vòng: kênh
Nhúm sv thc hin: Nhúm3

14

lp:khmt3-k6



vừa phục vụ sẽ có mức u tiên thấp nhất, lúc mới lập chế độ kênh 0 ở
mức cao nhất. Trớc khi để AMD làm việc, chơng trình cần phải lập cho
nó cho chế độ u tiên, mặt nạ (che) cho từng kênh, v.v... và quy định
cho từng kênh địa chỉ AMD, đọ dài mảng (số đếm từ) bằng cách ghi
vào các thanh ghi trong của 8237 theo quy định.
Trong quá trình hoạt động, 8237 luôn cập nhật trạng thái của
mình vào thanh ghi trạng thái để vi xử lý có thể độc ở thời điểm nào.
Thông tin trạng thái cho biết kênh AMD nào đã đạt đến số đém kết
thúc TC (terminal count) tức đã chuyển xong mảng số liệu có độ dài
quy định ở thanh ghi số đếm từ gốc, hoặc bị bắt buộc kết thúc chuyển
do tác động của tín hiệu EOP đang vhờ phục vụ bất cứ ở kênh nào nếu
có.
8237 còn có thể nhận và thực hiện hai lệnh phần mềm vi xử lý:
Lệnh xoá mạch lật bên trong nhằm để đa về trạng thái ban đầu trớc khi đọc học đợc viết địa chỉ hoặc số đếm từ mới vào 8237,
Lệnh xoá toàn bộ có chức năng nh RESET lạnh: tất cả các thanh
ghi lệnh, trạng thái, yêu cầu mạch lật trong đều bị xoá, thanh ghi mặt
nạ đợc lập và 8237 chuyển sang chu kì nghỉ.
Thanh ghi yêu cầu AMD:

Hình 3-4: Thanh ghi yêu cầu AMD
Thanh ghi lệnh:

Nhúm sv thc hin: Nhúm3

15

lp:khmt3-k6



H×nh3- 5: Thanh ghi lÖnh
Thanh ghi chÕ ®é :

H×nh 3-6 :Thanh ghi chÕ ®é
Thanh ghi mÆt n¹ :

H×nh 3-7: thanh ghi mÆt nạ

Nhóm sv thực hiện: Nhóm3

16

lớp:khmt3-k6


Định dạng cho các thanh ghi
Kênh

Thanh ghi
Địa chỉ gốc và
tức thời
Địa chỉ tức thời

0

Đọc
/viết

Viết
Đọc


Số từ gốc và
tức thời

Viết

Số từ tức thời

Đọc

Địa chỉ gốc và
tức thời

Viết
Đọc

1

Địa chỉ tức thời
Viết
Số từ gốc và
tức thời
Nhúm sv thc hin: Nhúm3

CS TOR IOW A3 A2 A1 A0

Mạch
lật
trong


Bus số liệu
DB0-DB7

0

1

0

0

0

0

0

0

A0-A7

0

1

0

0

0


0

0

1

A8-A15

0

0

1

0

0

0

0

0

A0-A7

0

0


1

0

0

0

0

1

A8-A15

0

1

0

0

0

0

1

0


W0-W7

0

1

0

0

0

0

1

1

W8-W15

0

0

1

0

0


0

1

0

W0-W7

0

0

1

0

0

0

1

1

W8-W15

0

1


0

0

0

1

0

0

A0-A7

0

1

0

0

0

1

0

1


A8-A15

0

0

1

0

0

1

0

0

A0-A7

0

0

1

0

0


1

0

1

A8-A15

0

1

0

0

0

1

1

0

W0-W7

0

1


0

0

0

1

1

1

W8-W15

17

lp:khmt3-k6


Số từ tức thời
Địa chỉ gốc và
tức thời
Địa chỉ tức thời
2

Số từ gốc và
tức thời
Số từ tức thời


Đọc

Viết
Đọc
Viết
Đọc

Địa chỉ gốc và
tức thời
Viết
Địa chỉ tức thời
Đọc

3

Số từ gốc và
tức thời

Viết

Số từ tức thời

Đọc

0

0

1


0

0

1

1

0

W0-W7

0

0

1

0

0

1

1

1

W8-W15


0

1

0

0

1

0

0

0

A0-A7

0

1

0

0

1

0


0

1

A8-A15

0

0

1

0

1

0

0

0

A0-A7

0

0

1


0

1

0

0

1

A8-A15

0

1

0

0

1

0

1

0

W0-W7


0

1

0

0

1

0

1

1

W8-W15

0

0

1

0

1

0


1

0

W0-W7

0

0

1

0

1

0

1

1

W8-W15

0

1

0


0

1

1

0

0

A0-A7

0

1

0

0

1

1

0

1

A8-A15


0

0

1

0

1

1

0

0

A0-A7

0

0

1

0

1

1


0

1

A8-A15

0

1

0

0

1

1

1

0

W0-W7

0

1

0


0

1

1

1

1

W8-W15

0

0

1

0

1

1

1

0

W0-W7


0

0

1

0

1

1

1

1

W8-W15

Bng 3-1:nh dang cho cỏc thanh ghi
Các lệnh của chip AMD-8237A

Nhúm sv thc hin: Nhúm3

18

lp:khmt3-k6


Tín hiệu
A3


A2

A1

1

0

1

IOW

Lệnh

A0

OR

0

0

0

1

Đọc thanh ghi trang thái

0


0

0

1

1

Nạp thanh ghi lệnh

1

0

0

1

0

1

không hợp lệ

1

0

0


1

1

0

Nạp thanh ghi yêu cầu
AMD

1

0

1

0

0

1

không hợp lệ

1

0

1


0

1

0

Ghi từng bit cho thanh ghi
mặt na

1

0

1

1

0

1

không hợp lệ

1

0

1

1


1

0

Nạp thanh ghi chế độ

1

1

0

0

0

1

không hợp lệ

1

1

0

0

1


0

Xoá mạch lật xong

1

1

0

1

0

1

Đọc thanh ghi tạm thời

1

1

0

1

1

0


RESET AMD

1

1

1

0

0

1

không hợp lệ

1

1

1

0

1

1

không hợp lệ


1

1

1

1

0

1

không hợp lệ

1

1

1

1

1

1

Ghi toàn bộ thanh ghi mặt
na


Bng 3-2: cỏc lnh ca chip AMD-8237A
Trong CPXC một chip AMD chỉ có khả năng phục vụ các ngoại
vi 8 bit((các thiết bị chỉ có các thanh ghi 8 bit). Trong máy PC AT (16
Nhúm sv thc hin: Nhúm3

19

lp:khmt3-k6


bit) có thêm một chip AMD nữa gọi là chủ (master) đợc nối với vi xử
lý. Các chân HRQ và HLDA của chip AMD tớ đợc nối với kênh 0 của
chip chủ để để nhằm cho các kênh từ 0-3 có mức u tiên hơn 3 kênh của
chip chủ. Các kênh 0-3 của chủ đợc quy ức là kênh AMD từ 4-7 của
máy AT. Bốn kênh của chip tớ phục vụ cho ngoại vi 8 bit, trong khi đó
3 kênh tùe 5 đến 7 không sử dụng đợc cấu hình cho các thiết bị 16 bit.
Dới đây là liệt kê địa chỉ vào/ ra thanh ghi điều khiển và trạng thái
của AMD -8237A
AMD (1)
08h
08h
09h
0Ah
0Bh
0Fh

AMD (2) Đọc/viết (R/W) Thanh ghi
D0h
R
trạng thái

D0h
W
lệnh
D2h
W
yêu cầu AMD
D4h
W
che kênh
D6h
R
chế độ AMD
DEh
W
mặt nạ

chỳ thớch:
(1): chủ trong PC/XT, tớ trong AT
(2): chủ trong AT
Các địa chỉ vào/ra của thanh ghi địa chỉ và đếm số từ đợc liệt kê dới
đây:
AMD (1)
00h
01h
02h
03h
04h
05h
06h
07h


AMD(2)
C0h
C1h
C2h
C3h
C4h
C5h
C6h
C7h

Thanh ghi
địa chỉ kênh 0/4
đếm kênh 0/4
địa chỉ kênh 1/5
đếm kênh 1/5
địa chỉ kênh 2/6
đếm kênh 2/6
địa chỉ kênh 3/7
đếm kênh 3/7

chỳ thớch:
Nhúm sv thc hin: Nhúm3

20

lp:khmt3-k6


(1): chủ trong PC/XT, tớ trong AT

(2): chủ trong AT
Chơng trình sau là một ví dụ về việc truyền số liệu từ khối nhớ có
dải địa chỉ từ 10000h đến 13FFFh tớ khối nhớ có dải địa chỉ từ 14000h
tới 17FFFh.
LATCHB
EQU
10H
chốt (B)
CLEAR_FL
EQU
70H địa chỉ F/L của mạch lật
CHO_ADD
EQU
70H
địa chỉ kênh 0
CH1_ADD EQU
72H
địa chỉ kênh 1
CH1_CNT
EQU 73H
bộ đếm kênh 1
MODE
EQU
78H
địa chỉ thanh ghi chế độ
CMMD
EQU 78H
địa chỉ thanh ghi lệnh
MASKS
EQU 74H

địa chỉ thanh ghi mặt nạ
REQ
EQU 75H địa chỉ thanh ghi yêu cầu STATUS
EQU 78H
địa chỉ thanh ghi trạng thái
ịa chỉ khối dữ liệu cần truyền:
ES:DI địa chỉ nơi đến
CX
số byte cần chuyển
- thanh ghi ra:
không có
- thanh ghi vào:
ES:SI
ịa chỉ khối dữ liệu cần truyền :
ES:DI
địa chỉ nơi đến
CX
số byte cần chuyển
TRANSFER

PROG FAR
PUSH AX
Lập trình cho LatchB :
MOV AX,ES
MOV AL,AH
SHR AL,1
SHR AL,1
SHR AL,1
SHR AL,1
OUT

LatchB,AL
Nhúm sv thc hin: Nhúm3

21

lp:khmt3-k6


Xóa mạch lật:
OUT CLEAR_FL,AL
ặt địa chỉ nguồn vào kênh 0 :
MOV
AX,SI
OUT
CH0_ADD,AL
MOV
AL,AH
OUT
CH0_ADD,AL
ặt địa chỉ đích vào kênh 1:
MOV
AX,DI
OUT
CH1_ADD,AL
MOV
AL,AH
OUT
CH1_ADD,AL
Chỉ định số byte cần chuyển:
MOV

AX,CX
DEC
AX
OUT
CH1_CNT,AL
ặt chế độ:
MOV
AL,88H
OUT
MODE,AL
MOV
AL,85H
OUT
MODE,AL
Cho phép việc truyền:
MOV
AL,1
OUT
CMMD,AL
Bỏ mặt nạ che kênh 1:
MOV
AL,0EH
OUT
ASKS,AL
Yêu cầu AMD:
MOV
AL,04
OUT
REQ,AL
AGAIN AL,0EH

IN
AL, STATUS
TEST
AL,1
JZ
AGAI
Kết thúc thủ tục truyền:
POP
AX
Nhúm sv thc hin: Nhúm3

22

lp:khmt3-k6


RET

ENDP

3. Athlon và hammer: giống và khác nhau
Mặc dầu bộ vi sử lí hammer được AMD gọi là” BXL thế hệ thứ 8k8”, thực chất kiến trúc mới là sự phát triển logic của thế hệ kiến trúc
k7. nếu bạn đã từng biết qua thế hệ cấu trúc của k7 hẳn bạn nhận thấy
kiến trúc hammer rất giống k7, điều đó có nghĩa là các tập lệch trong
hammer va athlon được sử lí cùng một cách , tất nhiên là nếu không
xét đến sự hổ trở của các lệch và thanh ghi 64 bít. Xem kĩ hơn, nhân
của bọ sử lí k8 có những thay đỏi đáng kể :
- bộ đếm cấp 1(L1) không thay đổi, vvaanr là 128 kb:64 kb cho dữ liệu
và 64 kb cho tập lệch
- dung lượng tối đa của bộ đếm cấp 2 (L2) giảm từ 8MB xuống cón

1MB. Hammmer được định hướng vòa thị trường náy chủ, trong tường
hợp cần bộ đệm lớn hơn, AMD sẽ sử dụng bộ đếm cấp 3(L3)
- các đường ống (pipeline) lớn hơn cho phép hammer hoạt đọng ở tần
số xung nhịp coa hơn so với athlon.
- hammer có trang bị bộ dự đoán nhánh (BPU- branch prediction unit)
được cải tiến.
- BXL k8 có bộ đệm TLB lớn hơn.
Chúng ta hãy xem xét chi tiết một số cải tiến : trước hết là về
pipeline, pepiline 4 đã cho thấy tầm quan trọng của pepiline. Nhờ có
pepiline dài hơn,pepiline 4 có thể làm việc ở số lỏi cực nhanh mà các
BXL dùng kiến trúc khác không đạt được, tuy nhiên do khả năng tiên
đoán nhanh lệch không mạnh mẽ nên không tận dụng hết khả năng của
pepiline, dẩn đến hiệu xuất không cao. Đó chính là lí do tại sao AMD
chỉ tăng kích thước của pepiline một ít.để sử dụng hiệu quả phần
pepiline mở rộng, AMD chia nhỏ tiến trình lấy lệch từ bộ đệm và tiến
trình giải mã lệnh thành các tác vụ đơn giản được thực hiện bởi lõi
BXL
AMD xem trọng việc tiên đoán chính xác hơn là tăng khả năng
tính toán song song nhiều nhánh lệnh như họ bộ xử lí itanium của
intel. Cùng với pepiline dài hơn, AMD còn thiết kế cho hammer một
BPU được cải tiến nhắm đến những công việc tính toán phức tạp . đó
chính là lí do tại sao bộ đệm được chế tạo lớn gấp 4 lần so với bộ đệm
tương ứng của BXL athlon. Nhờ vậy BPU của hammer nhớ được
Nhóm sv thực hiện: Nhóm3

23

lớp:khmt3-k6



nhiều nhánh lệnh hơn và tiên đoán các nhánh tương lai. Ngoài ra còn
có bộ tính địa chỉ nhánh hổ trợ tính toán địa chỉ nhánh kế nhanh và
chính sác.
Chúng ta đã xem xét về những cải tiến nhằm nâng cao hiệu xuất
làm việc của BXL với mã lệnh, giờ chúng ta hãy tìm hiểu về mặt dữ
liệu dặc biệt những thay đổi liên quan đến bộ đệm TLB. TLB là một
bộ đệm đặc biệt trong bộ vi sử lí dùng trong việc dịch địa chỉ dữ liệu
ảo thành địa chỉ vật lí. TLB giữa lại kết quả của lần trước, nhờ việc
dịch chuyển các địa chỉ dữ liệu đã dung trước đây sẽ nhanh hơn. Một
đạc biệt nữa là cách thức sử dụng TLB trong hammer cho phép chuyển
đổi cực nhanh giữa các tác vụ. thông thường khi hệ điều hành chuyển
sang một tác vụ khác, TLB sẽ bị xóa. Trong trường hợp công việc có
yêu cầu cao, hệ thống chuyển đổi giữa các tác vụ rất thương xuyên và
BXL phải xóa và điền lại TLB liên tục , điều này làm ảnh hưởng đến
hiệu xuất. hammer có khả năng khôi phục nhanh TLB nhờ gán một mã
xác định duy nhất cho mổi tác vụ và lưu giữa lại dữ liệu TLB của nó.
Đây là lí do tại sao bộ đếm TLB của L2 trong hammer tăng gấp 2 lần
so với athlon XP.
4. CPU hai nhân của AMD
Những CPU hai nhân của AMD được giới thiệu sau so với các
CPU hai nhân của Intel. Trước khi các CPU đa nhân của AMD xuất
hiện thì dòng sản phẩm Athlon 64 của AMD đã khá thành công.
AMD đã bắt đầu phát triển các CPU 64 bit bắt đầu từ năm 2003 trên
nền cấu trúc 32 bit-x86 và đã được sử dụng rộng rãi trên các máy
chủ, máy trạm và máy tính cá nhân để bàn.
Vào tháng 5 năm 2005 những CPU Athlon 64 X2 hai nhân đầu
tiên của AMD xuất hiện. Althlon 64 X2 đã có hai loại theo từng mã
riêng như sau:




Cache L2 dung lượng 1 MB (ứng với 512 KB cho mỗi nhân) ở
mã: Manchester
Cache L2 dung lượng 2 MB (ứng với 1 MB cho mỗi nhân) ở mã:
Toledo

Cùng với các đặc tính khác bao gồm:
Nhóm sv thực hiện: Nhóm3

24

lớp:khmt3-k6







Tốc độ xử lý thực tế CPU từ 2,2 GHz đến 2,4 GHz
Sản xuất trên công nghệ 90 nm (nanomet)
1 GHz HyperTransport
Sử dụng Socket 939.

CHƯƠNG 4: NHỮNG YỂU TỐ ẢNH HƯỞNG TỚI
TỐC ĐỘ CỦA BỘ VI SỬ LÍ
1.Băng thông (bandwidth)
Đầu tiên chúng ta sẽ tìm hiểu xem A64 mà cụ thể là A64 socket
939 có khả năng cung cấp băng thông cho hệ thống bao nhiêu nhé
Băng thông giao tiếp giữa CPU và Chipset nForce3 250 sử dụng 1

đường link HyperTransport cho việc chuyển dữ liệu đồng thời lên
(upstream) và xuống (downstream) khi giao tiếp với CPU.
Mỗi đường lên và xuống có giao tiếp 16bit và đạt tốc độ 1.000
Mhz/s.
Do đó ta có thể tính được băng thông giữa CPU và chipset thông
qua công thức sau :
[(2 x 16bit) x (2 x 1.000Mhz/s)] /8bit = 8.000MB/s(1)
Băng thông giao tiếp giữa CPU và bộ nhớ chính (Bandwidth
Memory)
A64 socket 939 sử dụng kênh bộ nhớ đôi (Dual Memory), mỗi
kênh có giao tiếp 64bit và bộ nhớ DDR (Double Data Rate) hoạt động
với tần số 400Mhz/s.
Do đó ta có thể tính được băng thông giữa CPU và bộ nhớ chính
thông qua công thức sau :
[(2 x 64bit) x (2 x 200Mhz/s)] /8bit = 6.400MB/s (2)
Từ (1) và (2) ta có thể thấy rằng tổng băng thông mà A64 socket
939 có thể đáp ứng được cho toàn bộ hệ thống là 14.400Mb/s ~
14,4GB/s
2.Ảnh hưởng của HT bus đến Bandwidth của chipset
Nhóm sv thực hiện: Nhóm3

25

lớp:khmt3-k6


×