BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
̶̶̶−
BÀI TIỂU LUẬN
MÔN HỌC : KIẾN TRÚC MÁY TÍNH VÀ HỆ
ĐIỀU HÀNH
ĐỀ TÀI: PHÂN TÍCH KIẾN TRÚC VÀ NGUYÊN
LÝ LÀM VIỆC CỦA BỘ VXL AMD 64BIT
Giáo Viên Hướng Dẫn: Ths.Nguyễn Tuấn Tú
Nhóm số: 11
Lớp: IT6067.3_K15
Hà nội, năm 2021
1
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 : KIẾN TRÚC MÁY TÍNH
ĐỀ TÀI : PHÂN TÍCH KIẾN TRÚC VÀ NGUYÊN
LÝ LÀM VIỆC CỦA BỘ VXL AMD 64BIT
Giáo viên : Ths Nguyễn Tuấn Tú
Sinh viên thực hiện: Nguyễn Đức Trung
Trần Văn Mạnh
Phạm Thanh Tú
Bế Chấn Hưng
Nguyễn Văn Lượng
Lớp: IT6067.3_K15
2
Hà nội, năm 2021
3
LỜI NÓI ĐẦU..................................................................................................5
CHƯƠNG I: TỔNG QUAN VỀ AMD 64BIT................................................6
CHƯƠNG II: KIẾN TRÚC CỦA AMD 64BIT.............................................6
2.1 Mô tả kiến trúc........................................................................................7
2.1.1 Chế độ dài (Long Mode).....................................................................7
2.1.1.1 Chế độ 64-bit (64-bit Mode)............................................................7
2.1.1.2 Chế độ tương thích (Compatibility Mode)....................................8
2.2. Chế độ kế thừa. (Legacy Mode )...........................................................8
2.3. Phương pháp AMD................................................................................9
2.4. Bộ điều khiển bộ nhớ (Memory control)..............................................9
2.5. HyperTransport Technology (HTT)...................................................10
2.6. Hệ số nhân.............................................................................................10
2.7. Bộ chia...................................................................................................12
2.8. Cơng nghệ Cool’n’quiet:......................................................................12
2.9. Phịng chống virus:...............................................................................12
2.10. Tích hợp tấm tản nhiệt trên CPU:....................................................13
Chương III: NGUYÊN LÝ LÀM VIỆC......................................................13
3.1. Hoạt động của chip điều khiển AMD.................................................13
4
3.2. Chip bổ trợ 8237
3.2.1. Sơ đồ nguyên lý:...............................................................................15
3.2.2 Các trạng thái làm việc.....................................................................18
3.2.3. Các thanh ghi bên trong 8237.........................................................18
3.2.4. Chu kỳ nghỉ......................................................................................18
3.2.5. Chu kì hoạt động..............................................................................19
3.2.6. Các chế độ ưu tiên............................................................................19
3.2.7 Làm việc với vi xử lý.........................................................................19
3.3. Athlon và Hammer: giống và khác nhau...........................................25
3.4. CPU hai nhân của AMD......................................................................26
CHƯƠNG IV: NHỮNG YẾU TỐ ẢNH HƯỞNG TỚI TỐC ĐỘ CỦA BỘ
VI XỬ LÍ.................................................................................................................27
4.1.Băng thơng (Bandwidth).......................................................................27
4.2.Ảnh hưởng của HT bus đến Bandwidth của chipset..........................28
KẾT LUẬN.....................................................................................................30
TÀI LIỆU THAM KHẢO.............................................................................31
5
LỜI NÓI ĐẦU
Khi các ứng dụng bắt đầu yêu cầu không gian địa chỉ lớn hơn và giá RAM
bắt đầu giảm, Intel và AMD bắt đầu theo đuổi kiến trúc 64 bit. Intel đã phát
triển kiến trúc IA64 RISC hoàn toàn mới; AMD đã lấy kiến trúc x86 32-bit, đặt nó
trên steroid 64-bit (đăng ký 64-bit và hoạt động số ngun, một khơng gian địa chỉ
64-bit, v.v), và gọi nó là AMD64. AMD64 hồn tồn tương thích ngược, cho phép
người dùng chạy các ứng dụng 32 bit và hệ điều hành chưa được sửa đổi. Thơng
qua phần trình bày dưới đây, chúng ta sẽ có cái nhìn sâu hơn về cách thức hoạt
động cũng như các ứng dụng thực tế của bộ vi xử lý AMD 64bit.
6
CHƯƠNG I: TỔNG QUAN VỀ AMD 64BIT.
Việc phát triển các tác vụ do máy tính giải quyết ngày càng địi hỏi nhiều hơn
từ phần cứng mà các tác vụ này đang được xử lý trên đó. Các yêu cầu về máy tính
cá nhân đã tăng lên hàng năm. Nó xảy ra bởi vì mọi người muốn giải quyết vấn đề
trên máy tính của họ nhiều hơn và các nhiệm vụ đó cũng phức tạp hơn mà trước đó
chỉ có thể xử lý trên các máy tính lớn có hiệu suất cao.
AMD64 là kiến trúc bộ xử lý 64-bit được phát triển bởi Advanced Micro
Devices (AMD) để bổ sung khả năng tính tốn 64-bit cho kiến trúc x86. Nó đơi khi
được gọi là x86-64, x64 và Intel 64. Với khả năng tính tốn nâng cao, nó hỗ trợ
nhiều bộ nhớ ảo và bộ nhớ vật lý hơn so với phiên bản 32-bit, cho phép các chương
trình lư trữ nhiều dữ kiệu hơn trong bộ nhớ. AMD64 có thể tương thích ngược, điều
này rất có lợi vì nó có nghĩa là các ứng dụng 64-bit có thể cùng tồn tại với các ứng
dụng 16-bit và 32-bit. Nó nổi tiếng với khả năng hỗ trợ đồng thời tính tốn 32-bit
và 64-bit mà khơng bị giảm hiệu suất.
AMD64 được xây dựng như một giải pháp thay thế cho kiến trúc IA-64 do
Intel và Hewlett Packard thiết kế. Được công bố lần đầu vào năm 1999 và được
hồn thiện vào tháng 8 năm 2000. Nó đã được AMD định hướng ngay từ đầu như
một bước tiến hóa để thêm khả năng tính tốn 64-bit vào kiến trúc x86 hiện có, trái
ngược với Intel trong việc tạo ra một kiến trúc 64-bit hoàn toàn mới với IA-64. Bộ
xư lý dựa trên AMD64 (Opteron) đầu tiên được xuất xưởng vào năm 2003.
Linux là nhân hệ điều hành đầu tiên chạy kiến trúc AMD64 ở chế độ dài bắt
đầu từ năm 2001 trước khi phần cứng có sẵn cho nó. Nó cũng khả năng tương thích
ngược cho các tệp thực thi 32-bit. SUSE Linux Enterprise 15 hỗ trợ thời gian chạy
32-bit trên kiến trúc AMD64, có thể cần thiết để chạy các công cụ thiết lập phầm
mềm hoặc phần cứng, vẫn biên dịch dưới dạng mã nhị phân 32-bit.
CHƯƠNG II: KIẾN TRÚC CỦA AMD 64BIT.
Kiến trúc AMD64 là một phần mở rộng tương thích ngược đơn giản nhưng
mạnh mẽ của kiến trúc x86. Nó bổ sung thêm khơng gian địa chỉ 64-bit và tăng
7
thêm tài nguyên thanh ghi để hỗ trợ hiệu suất cao hơn cho các chương trình 64-bit
được biên dịch lại, cung cấp hỗ trợ mã 16-bit và 32-bit cũ của các ứng dụng và hệ
thống mà không cần sửa đổi lại chúng.
Sự cần thiết của kiến trúc 64-bit được giải thích bởi các ứng dụng cần khơng
gian địa chỉ lớn. Đây là các máy chủ hiệu suất cao, trình quản lý dữ liệu, hệ thống
CAD và cả các trò chơi. Các ứng dụng như vậy sẽ có lợi do khơng gian địa chỉ 64bit và nhiều thanh ghi hơn. Ít thanh ghi có sẵn trong kiến trúc x86 cũ sẽ hạn chế
hiệu suất của các tác vụ tính tốn.
2.1 Mơ tả kiến trúc.
2.1.1 Chế độ dài (Long Mode).
Chế độ dài là chế độ mà hệ điều hành 64 bit có thể truy cập các tập lệnh và
đăng kí 64 bit. Chế độ dài gồm có 2 chế độ con là chế độ 64-bit và chế độ tương
thích.
2.1.1.1 Chế độ 64-bit (64-bit Mode).
Một chế độ phụ của chế độ dài, hỗ trợ tồn bộ phạm vi địa chỉ ảo 64-bit và
tính năng mở rộng đăng kí. Chế độ này được kích hoạt bởi hệ điều hành trên một
cơ sở giải mã riêng lẻ. Vì chế độ 64-bit hỗ trợ khơng gian địa chỉ ảo 64-bit nên nó
yêu cầu 64-bit hệ điều hành và chuỗi công cụ. Các tệp nhị phân ứng dụng hiện tại
có thể chạy mà khơng cần biên dịch lại trong chế độ tương thích, trong hệ điều
hành chạy ở chế độ 64-bit hoặc các ứng dụng cũng có thể được biên dịch lại để
chạy ở chế độ 64-bit.
Các tính năng định địa chỉ bao gồm con trỏ hướng dẫn 64-bit (RIP) và định
địa chỉ dữ liệu tương đối ở chế độ RIP. Chế độ này phù hợp với các hệ điều hành
hiện đại bằng cách chỉ hỗ trợ một không gian địa chỉ phẳng, với một mã dữ liệu và
không gian ngăn xếp.
8
2.1.1.2 Chế độ tương thích (Compatibility Mode).
Chế độ tương thích-chế độ con thứ hai của chế độ dài cho phép các hệ điều
hành 64-bit chạy các ứng dụng x86 16-bit và 32-bit hiện có. Các ứng dụng kế thừa
này chạy ở chế độ tương thích mà khơng cần biên dịch lại.
Các ứng dụng đang chạy ở chế độ tương thích sử dụng địa chỉ 32-bit và 16bit đều có thể truy cập 4GB đầu tiên của địa chỉ ảo. Tiền tố lệnh x86 kế thừa
chuyển đổi giữa 16-bit và 32-bit địa chỉ và kích thước tốn hạng.
Như với chế độ 64-bit, chế độ tương thích được hệ điều hành bật trên cơ sở
mã hóa riêng lẻ. Tuy nhiên, khơng giống như chế độ 64-bit, phân đoạn x86 hoạt
động giống như trong chế độ kế thừa kiến trúc x86, sử dụng chế độ bảo vệ 16-bit
hoặc 32-bit. Từ góc nhìn của ứng dụng, chế độ tương thích giống như một mơi
trường bảo vệ kế thừa x86. Tuy nhiên, từ góc nhìn hệ điều hành, dịch địa chỉ, xử lý
ngắt dữ liệu hệ thống sử dụng cơ chế độ dài 64-bit.
2.2. Chế độ kế thừa. (Legacy Mode ).
Chế độ kế thừa bảo tồn khả năng tương thích nhị phân khơng chỉ với các ứng
dụng 16-bit và 32-bit hiện có mà cịn cùng với các hệ điều hành 16-bit và 32-bit
hiện có. Chế độ kế thừa bao gồm ba chế độ sau:
Chế độ bảo vệ (Protected Mode): hỗ trợ các chương trình 16-bit và 32bit với bộ nhớ phân đoạn, phân trang tùy chọn và kiểm tra đặc quyền. Các
chương trình chạy ở chế độ được bảo vệ có thể truy cập không gian bộ nhớ
lên đến 4GB.
Chế độ Virtual-8086: hỗ trợ các chương trình chế độ thực 16-bit đang
chạy dưới dạng tác vụ trong chế độ được bảo vệ. Nó sử dụng đoạn bộ nhớ
đơn giản, phân trang tùy chọn và giới hạn kiểm tra bảo vệ. Các chương
trình chạy ở chế độ Virtual-8086 có thể truy cập khơng gian bộ nhớ lên đến
1MB.
Chế độ thực (Real Mode): hỗ trợ các chương trình 16-bit sử dụng bộ
nhớ dựa trên thanh ghi đơn giản phân đoạn. Nó khơng hỗ trợ phân trang
hoặc kiểm tra sự bảo vệ. Các chương trình chạy ở chế độ thực có thể lên
đến 1MB dung lượng bộ nhớ.
9
Chế độ kế thừa tương thích với việc triển khai các bộ xử lý 32-bit hiện có
của kiến trúc x86. Các bộ xử lý triển khai kiến trúc AMD64 khởi động ở chế độ
thực kế thừa giống như các bộ xử lý triển khai kiến trúc x86 kế thừa.
2.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 xử lí. Trong một số trường hợp như 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 xử 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 q trình này là chip bổ
trợ AMD-8232, hay cịn được gọi là AMD. Với phương pháp AMD, tốc độ truyền
dữ liệu chỉ bị hạn chế bởi thời gian truy nhập của bộ nhớ. Vi xử lí khơng cần phải
đọc, giải mã và thực hiện các lệnh chuyển số liệu, các lệnh điều chỉnh địa chỉ và
các lệnh kiểm tra độ dài mảng đã chuyển để biết thời điểm kết thúc. Nó hồn tồn
chuyển quyền điều khiển bus cho chip 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 chip này.
2.4. 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 ln 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.
10
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.
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 của RAM DDRII .
2.5. 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.
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ề ngồ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ì hồn tồ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 tồn bộ hệ thống lại khơng thấp tí nào.
2.6. 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)
11
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ị khố 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.
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 q 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.
12
2.7. 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)
2.8. 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 n tĩnh thơng thống.
2.9. 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ộ nhớ đệm khi bị virus tấn công.
13
2.10. 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.
Chương III: NGUYÊN LÝ LÀM VIỆC
3.1. Hoạt động của chip điều khiển AMD
Chip 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ó
sơ đồ như 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
14
Hình 3-2: Sơ đồ nối AMD với bộ nhớ,thiết bị ngoại vi và vi xử lý .
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 u cầu
AMD là DREQ tới một lối vào (gọi là một kênh của chip AMD. Nếu kênh này
không bị che, chip 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 vi 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, chip
AMD hạ cả hai đường IOR và MEMW trên bus điều khiển tới mức logic 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
hồn tất, chip AMD lấy đi 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 chip 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 lần 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
15
giảm 1). 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ẽ đem theo tín hiệu yêu cầu treo HRQ trở về mức
tích cực (HRQ= 0).
Có 2 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ứ 2 là AMD lấy lén chu kì.
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
hoặ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ì.
3.2. Chip bổ trợ 8237
Hình 3-3: Sơ đồ chân của DMAC-8237
3.2.1. Sơ đồ nguyên lý:
Vi mạch 8237 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:
16
Hình 3-4: Sơ đồ khối chip AMD-8237
8237 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 cho CPU đã tới trước khi phục vụ AMD và
giải mã từ điều khiển chế độ để chọn điều khiển AMD .
Khối mã hóa đầu tiên làm trọng tài ư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:
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
17
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ó đã rời khỏi bus cho
AMD.
DSTB: nhận byte cao vào chốt địa chỉ ngồ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
DACKO-DACK3: chấp nhận AMD
REQ0-DREQ3: đòi hỏi AMD tử ngoại vi
DBO-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 đây là 4 bit địa chỉ
EOP: kết thúc sử lý AMD
Vcc: nguồn nuôi +5V
GND: nối đất
18
3.2.2 Các trạng thái làm việc
Tên thanh ghi
Độ dài ( bit )
Số lượng
Địa chỉ gốc
16
4
Số từ gốc
16
4
Địa chỉ tức thời
16
4
Số từ tức thời
16
4
Trạng thái
8
1
Lệnh
8
1
Tạm thời
8
1
Chế độ
6
4
Mặt nạ
4
1
Yêu cầu AMD
4
1
3.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.
3.2.4. Chu kỳ nghỉ
Khi khơng có u cầu AMD, 8237 ở chu kỳ nghỉ bằng cách liên tục thực
hiện trạng thái SĨ. 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ữ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.
19
3.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)
3.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.
3.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 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,
vv... 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 ln 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 phần mềm vi xử lý:
20
Lệnh xóa mạch lật bên trong nhằm để đa dạng về trạng thái ban đầu
trước khi được viết địa chỉ hoặc số đếm từ mới vào 8237
Lệnh xóa tồn bộ có chức năng như RESET lạnh: tất cả thanh ghi
lệnh, trạng thái, yêu cầu mạch lật trong đều bị xóa,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-5: Thanh ghi yêu cầu AMD
Thanh ghi lệnh:
Hình 3-6: Thanh ghi lệnh
Thanh ghi chế độ:
21
Hình 3-7: Thanh ghi chế độ
Thanh ghi mặt nạ:
Hình 3-8: Thanh ghi mặt nạ
Định dạng cho các thanh ghi:
22
Các lệnh của chip AMD-8237A
23
Bảng 3-1: các lệnh của chip AMD-8237A
Trong CPXC một chip AMD chỉ có khả năng phục vụ các ngoại vị 8 bit(các
thiết bị chỉ có các thanh ghi 8 bit). Trong máy PC AT (16 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ừ 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)
AMD (2)
Đọc/viết
(R/W)
24
Thanh ghi
08h
D0h
R
Trạng thái
08h
D0h
W
Lệnh
09h
D2h
W
0Ah
D4h
W
0Bh
D6h
R
Chế độ
AMD
0Fh
DEh
W
Mặt nạ
Yêu cầu
AMD
Che kênh
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)
AMD (2)
Thanh ghi
00h
C0h
Địa chỉ kênh 0/4
01h
C1h
Đếm kênh 0/4
02h
C2h
Địa chỉ kênh 1/5
03h
C3h
Đếm kênh 1/5
04h
C4h
Địa chỉ kênh 2/6
05h
C5h
Đếm kênh 2/6
06h
C6h
Địa chỉ kênh 3/7
07h
C7h
Đếm kênh 3/7
Chú thích:
25