Tải bản đầy đủ (.pdf) (13 trang)

Giáo Trình Kiến Trúc Máy Tính - Nguyễn Hữu Lộ phần 6 potx

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 (207.71 KB, 13 trang )

Cấn Trúc Máy Tính
-66-
Đặt sự kiện này vào những trường hợp khác, nếu bus có một tập hợp không đồng
nhất các thiết bò, một số có tốc độ nhanh và một số có tốc độ chậm, bus phải thích ứng
với các thiết bò có tốc độ chậm nhất và do đó các thiết bò có tốc độ nhanh không thể
được sử dụng hết khả năng của chúng.
Kỹ thuật pha trộn này có thể giải quyết bằng cách dùng bus không đồng bộ, bus
không có xung clock chủ, trình bày trong hình 3.4. Thay vì ràng buộc mọi thứ với xung
clock, khi thiết bò chủ đã xác lập các đường đòa chỉ, tín hiệu
MREQ
, tín hiệu RD và
các tín hiệu cần thiết khác, thiết bò chủ sẽ xác lập nột tín hiệu đặc biệt gọi là tín hiệu
đồng bộ chủ
MSYN
( master synchronibzation ). Khi thấy tín hiệu này, thiết bò thụ
động sẽ thực hiện công việc bằng chính tốc độ của mình. Khi thực hiện xong, thiết bò
phụ thuộc sẽ xác lập đường tín hiệu đồng bộ phụ thuộc
SSYN
(slave synchronization
).
Ngay khi tín hiệu chủ bus thấy tín hiệu
SSYN
được xác lập, thiết bò này biết
rằng dữ liệu đã sử dụng được, vì thế sẽ chốt dữ liệu lại, sau đó không xác lập các
đường đòa chỉ cùng với
MREQ
, RD và
MSYN
. Khi thấy tín hiệu
MSYN
không còn


xác lập, thiết bò phụ thuộc biết chu kỳ đã hoàn tất, sẽ không xác lập
SSYN
và chúng
ta trở lại trạng thái ban đầu, với tất cả các tín hiệu không còn xác lập, đợi thiết bò chủ
kế tiếp.
Giản đồ thời gian của các bus không đồng bộ sử dụng các mũi tên để chỉ nguyên
nhân và kết quả, như trong hình 3.5. Xác lập tín hiệu
MSYN
làm cho các đường dữ
liệu được xác lập, và cũng làm cho thiết bò phụ thuộc xác lập
SSYN
. Xác lập
SSYN

làm cho các đường đòa chỉ,
MREQ
, RD và
MSYN
không còn xác lập. Cuối cùng,
MSYN
không còn xác lập sẽ làm
SSYN
không xác lập, kết thúc thao tác đọc dữ
liệu.

Hình 3.4 : Hoạt động của một bus không đồng bộ
Tập các tín hiệu phối hợp với nhau theo cách này gọi là bắt tay hoàn toàn (full
handshake ). Phần cơ bản bao gồm 4 sự kiện sau :
1.
MSYN

được xác lập
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-67-
2.
SSYN
được xác lập để đáp ứng theo
MSYN

3.
MSYN
không xác lập để đáp ứng theo
SSYN
.
4.
SSYN
không xác lập để đáp ứng theo sự không xác lập của
MSYN
.
Rõ ràng phương pháp bắt tay hoàn toàn có thời gian độc lập. Mỗi sự kiện được
gây ra bởi một sự kiện trước, không phải bởi xung clock. Nếu một cặp thiết bò chủ –
phụ thuộc cá biệt có tốc độ chậm, chúng vẫn không làm ảnh hưởng đến cặp thiết bò có
tốc độ nhanh hơn nhiều.
Thuận lợi của loại bus không đồng bộ đến đây đã rõ, nhưng trên thực tế hầu hết
các bus là bus không đồng bộ. Nguyên nhân là do hệ thống đồng bộ dễ lắp đặt hơn.
CPU chỉ phải xác lập các tín hiệu và bộ nhớ chỉ phải tương tác lại. Không có sự hồi
tiếp ( nguyên nhân và hậu quả ) và nếu các thành phần được chọn hoàn toàn thích hợp,
các thiết bò làm việc sẽ không cần bắt tay.
5. Phân xử bus
Cho tới lúc này, chúng ta đã ngầm giả thiết chỉ có một thiết bò chủ là CPU. Thực

ra, các chip I/O cũng có thể trở thành các thiết bò chủ khi đọc và ghi bộ nhớ, và chúng
cũng gây ra các ngắt. Các bộ đồng xử lý cũng trở thành thiết bò chủ khi cần đến các
toán hạng. Một câu hỏi được đặt ra : “ Điều gì sẽ bảy ra nếu có hai hoặc nhiều thiết bò
cùng lúc muốn trở thành thiết bò chủ ?”. Câu trả lời là cần có một số cơ chế phân xử
bus nào đó để ngăn cản sự tranh chấp.
Các cơ chế phân xử bus có thể là tập trung hoặc không tập trung. Trước tiên,
chúng ta hãy xét cơ chế phân xử bus tập trung. Một dạng đơn giản cá biệt của phân xử
bus tập trung được trình bày trong hình 3.5. Trong sơ đồ này, bộ phân xử bus đơn sẽ
quyết đònh thiết bò nào kế tiếp là thiết bò chủ. Nhiều bộ vi xử lý thiết kế sẵn bộ phân
xử bus ngay trong chip CPU, nhưng trong các hệ thống máy tính mini đôi khi là một
thiết bò riêng. Bus chứa một đường yêu cầu thiết kế theo kiểu OR nối dây được xác lập
bởi một hoặc nhiều thiết bò vào bất cứ lúc nào. Với cách kết nối này, không có cách
nào bộ phân xử bus biết được có bao nhiêu thiết bò đang yêu cầu bus, bộ phân xử bus
chỉ biết có hay không có yêu cầu sử dụng bus.
Khi thấy có yêu cầu bus, bộ phân xử bus phát tín hiệu cho phép dùng bus bằng
cách xác lập đường cấp bus ( bus grant line ). Đường này được nối qua tất cả các thiết
bò I/O theo kiểu nối tiếp giống như chuỗi các bóng đèn trên cây giáng sinh. Khi thấy
tín hiệu cấp bus, thiết bò đứng gần bộ phân xử bus nhất sẽ kiểm tra xem có phải đã đưa
ra một yêu cầu bus hay không. Nếu đúng, thiết bò này sẽ tiếp quản bus và không
truyền tín hiệu cấp bus xuống cho các thiết bò khác. Nếu không yêu cầu bus, thiết bò
này truyền tín hiệu cấp bus tới thiết bò kế tiếp trên đường dây và cứ như vậy cho đến
khi có một thiết bò nào đó nhận tín hiệu cấp bus và tiếp quản bus.
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-68-
Sơ đồ này được gọi là sự ràng buộc chuỗi (daisy chaining ). Sơ đồ này có đặc tính
là các thiết bò được cấp quyền ưu tiên tùy thuộc vào các thiết bò đó đứng gần bao
nhiêu đối với bộ phân xử bus. Thiết bò nào đứng gần nhất sẽ có ưu tiên cao nhất.
Để đến gần những ưu tiên ngầm đònh dựa trên khoảng cách từ bộ phân xử tới
thiết bò, nhiều bus có nhiều mức ưu tiên. Mỗi mức ưu tiên có một đường yêu cầu bus

và một đường cấp bus. Bộ phân xử bus có thể có 2 mức ưu tiên, 1 và 2 (các bus trên
thực tế thường có 4, 8 hoặc 16 mức).
Mỗi thiết bò được nối đến một trong các mức yêu cầu bus. Những thiết bò càng có
yêu cầu cấp bách về thời gian sẽ được nối đến các mức ưu tiên càng cao.

Hình 3.5: Bộ phân xử bus tập trung
Nếu có nhiều mức ưu tiên được yêu cầu đồng thời, bộ phân xử bus chỉ phát tín
hiệu cấp bus trên mức ưu tiên cao nhất. Trong số các thiết bò có cùng mức ưu tiên,
người ta áp dụng sơ đồ ràng buộc chuỗi.
Nhiều bộ phân xử bus có thêm đường tín hiệu thứ 3 để một thiết bò xác lập đường
này khi nhận cấp bus và chiếm giữ bus. Ngay khi đường tín hiệu trả lời này
(acknowledgement line) được xác lập, các đường yêu cầu bus và cấp bus sẽ đổi thành
không xác lập. Kết quả là các thiết bò khác có thể yêu cầu bus trong lúc thiết bò đầu
tiên đang sử dụng bus. Vào lúc thao tác chuyển dữ liệu hiện tại hoàn tất, thiết bò chủ
kế tiếp đã được chọn, có thể bắt đầu ngay khi đường trả lời đổi sang trạng thái thụ
động. Tại thời điểm này, phần tiếp theo sau của phân xử bus có thể bắt đầu. Sơ đồ này
đòi hỏi thêm một đường bus nữa và nhiều mạch logic cho từng thiết bò, nhưng việc sử
dụng các chu kỳ bus trở nên tốt hơn. Các chip PDP-11, Motorola và một chip khác nữa
sử dụng hệ thống này.
Trong nhiều hệ thống, CPU cũng phải dành quyền sử dụng bus và có ưu tiên thấp
nhất, chỉ dành được bus khi không có thiết bò nào khác chiếm dụng. Ýù tưởng ở đây là
CPU có thể lúc nào cũng phải đợi, còn các thiết bò I/O thường xuyên phải dành bus
nhanh vì nếu không dữ liệu sẽ mất. Các đóa quay ở tốc độ cao nên không thể đợi.
Khi sử dụng phương pháp phân xử bus không tập trung, ta không cần có bộ phân
xử bus. Thí dụ VAX SBI có 16 đường yêu cầu bus có ưu tiên, một đường cho mỗi thiết
bò. Thiết kế này sẽ giới hạn số thiết bò là 16. Khi một thiết bò muốn dùng bus, thiết bò
này xác lập đường yêu cầu. Tất cả các thiết bò đều kiểm tra tất cả các đường yêu cầu
bus, do vậy vào cuối mỗi chu kỳ, thiết bò nào cũng đều biết có phải là thiết bò có ưu
tiên cao nhất hay không, và do đó có được phép dùng bus trong chu kỳ kế tiếp hay
Nguyễn Hữu Lộc Khoa Vật Lý

Cấn Trúc Máy Tính
-69-
không. So với phương pháp phân xử bus tập trung, phương pháp này đòi hỏi nhiều
đường bus hơn, nhưng giảm được giá thành do không có bộ phân xử bus.
Một kiểu phân xử bus không tập trung khác được dùng hệ thống Multibus. Sơ đồ
trình bày trong hình 3.6 chỉ sử dụng 3 đường và vấn đề có bao nhiêu thiết bò hiện diện
không quan trọng. Đường bus đầu tiên là đường yêu cầu bus kết nối theo kiểu OR nối
dây. Đường thứ 2 gọi là BUSY được xác lập bởi thiết bò chủ hiện tại. Đường thư ba
được dùng để phân xử bus. Tất cả thiết bò được nối theo sơ đồ ràng buộc chuỗi. Đầu
của chuỗi này được giữ ở trạng thái xác lập bằng cách nối với đường cấp điện 5
volt.

Hình 3.6 : Phân xử bus không tập trung của Multibus.
Khi không có thiết bò nào yêu cầu bus, đường phân xử bus đã xác lập được
truyền tới tất cả thiết bò. Để chiếm bus, trước tiên thiết bò kiểm tra xem bus có rảnh
hay không và tín hiệu phân xử bus đang nhận ở ngõ vào IN có được xác lập không.
Nếu tín hiệu ở ngõ vào IN không xác lập, thiết bò không thể trở thành thiết bò chủ.
Tuy nhiên, nếu tín hiệu ở ngõ vào IN được xác lập, ngõ ra out của thiết bò sẽ không
được xác lập để yêu cầu mọi thiết bò khác ở phần dưới của chuỗi không xác lập IN và
OUT. Khi sự tranh chấp qua đi, chỉ có một thiết bò có ngõ vào IN xác lập và ngõ ra
OUT không xác lập. Thiết bò này trở thành thiết bò chủ, xác lập đường BUSY và ngõ ra
OUT, bắt đầu truyền dữ liệu.
Một ý tưởng nhỏ về phân xử bus cho thấy, thiết bò đầu tiên bên trái luôn được
truy xuất bus liên tục. Vì thế, sơ đồ này tương tự với sơ đồ phân xử bus theo kiểu ràng
buộc chuỗi ban đầu, chỉ khác là không có bộ phân xử bus, vì thế giá thành sẽ rẻ hơn,
nhanh hơn, và tránh được ảnh hưởng khi bộ phân xử bus bò hư ở trường hợp phân xử
bus tập trung. Hệ Multibus cũng đưa ra phương pháp phân xử bus tập trung, vì thế
người thiết kế hệ thống có khả năng lựa chọn.
Phương pháp sau cùng về phân xử bus có liên quan đến các thao tác đa chu kỳ
(multiple cycle operation). Trong các hệ thống đa xử lý, người ta thường dùng một từ

nhớ để bảo vệ các cấu trúc dữ liệu dùng chung (shared data structure). Nếu từ nhớ này
là 0, bộ xử lý được phép lập từ lên 1 và sử dụng cấu trúc dữ liệu đó. Nếu từ nhớ này
đã là 1, bộ xử lý đó phải đợi cho tới khi bộ xử lý hiện đang dùng cấu trúc dữ liệu kết
thúc và lập từ nhớ trở về 0.
Chuỗi các sự kiện sau đây trình bày một tình huống xảy ra sai.
1. Bộ xử lý A đọc từ x và thấy bằng zero (chu kỳ bus 0)
2. Bộ xử lý B đọc từ x và thấy bằng zero (chu kỳ bus 1)
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-70-
3. Bộ xử lý A ghi 1 vào từ x (chu kỳ bus 2)
4. Bộ xử lý B ghi 1 vào từ x (chu kỳ bus 3)
Nếu chuỗi sự kiện này xảy ra, 2 bộ xử lý sẽ đồng thời nghó rằng có sự truy xuất
loại trừ đối với cấu trúc dữ liệu dùng chung, kết quả dẫn đến sự rối loạn. Để tránh tình
trạng này, nhiều CPU có lệnh đọc từ nhớ, nếu là 0 sẽ lập lên 1. Điều rắc rối là một
lệnh như vậy cần 2 chu kỳ bus, một để đọc và một để ghi. Có một cơ hội nhỏ (nhưng
không phải là không có) là bộ xử lý thứ 2 sẽ lẻn vào giữa chu kỳ đọc và chu kỳ ghi,
phá vỡ tình trạng rắc rối này.
Giải pháp cho vấn đề này là thêm một đường tín hiệu phụ thuộc vào bus, gọi là
LOCK, được xác lập khi bắt đầu một lệnh như vậy. Khi LOCK xác lập, không có bộ
xử lý nào được phép trở thành thiết bò chủ cho tới khi LOCK trở lại trạng thái không
xác lập. Nguyên tắc này cho phép một CPU có khả năng thực hiện nhiều chu kỳ bus
mà không có sự ngăn cản nào. Đối với các bus không tính chất này, thật khó thiết kế
một hệ thống đa xử lý làm việc đúng.
6. Xử lý ngắt
Cho tới đây, chúng ta chỉ mới đề cập đến những chu kỳ bus thông thường, với
thiết bò chủ đọc dữ liệu từ thiết bò thụ động hoặc ghi dữ liệu lên thiết bò thụ động. Một
công dụng quan trọng khác của bus là xử lý ngắt. Khi CPU yêu cầu thiết bò I/O thực
hiện một công việc, CPU, thường chờ đợi một ngắt không công việc được thực hiện.
Việc báo hiệu ngắt sẽ yêu cầu bus.

Vì có thể có nhiều thiết bò đồng thời tạo ra ngắt, nên vấn đề phân xử ở đây cũng
giống như đối với các chu kỳ thông thường. Giải pháp thường dùng là gán mức ưu tiên
cho thiết bò và dùng bộ phân xử tập trung để cấp ưu tiên cho các thiết bò có yêu cầu về
thời gian tới hạn. Hiện nay có nhiều chip chuẩn điều khiển ngắt đang sử dụng rộng rãi.
IBM PC, PC AT, PS/2 và các máy tương thích với IBM PC sử dụng chip 8259A của
Intel, mô tả trong hình 3.7


Hình 3.7: Sử dụng bộ điều khiển ngắt 8259A
Có thể nối trực tiếp 8 chip điều khiển I/O (của 8 thiết bò I/O) với 8 ngõ vào yêu
cầu ngắt Irx ( Interrupt Request ) của 8259A. Khi có một thiết bò muốn gây ra một
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-71-
ngắt, thiết bò này xác lập đường tín hiệu Irx tương ứng. Khi có một hoặc nhiều ngõ vào
IRx xác lập, 8259 sẽ xác lập đường tín hiệu ngắt INT (interrupt), đường này trực tiếp
điều khiển chân yêu cầu ngắt trên CPU. Khi CPU có thể xử lý một ngắt, CPU gởi một
xung trở lại 8259A trên chân trả lời ngắt INTA (interrupt acknowledge). Tại thời điểm
đó 8259 được kỳ vọng để xác đònh ngõ vào tạo ra yêu cầu ngắt bằng cách xuất số của
ngõ vào lên bus dữ liệu. Phần cứng của CPU dùng số này tạo chỉ số (index) trong một
bảng các con trỏ (interrupt vector), để tìm đòa chỉ của thủ tục (procedure) và thực thi
trình phục vụ ngắt.
8259A có một số thanh ghi nội, CPU có thể đọc và ghi dữ liệu trên chúng bằng
cách dùng các chu kỳ bus thông thường và các chân điều khiển đọc
RD (read), điều
khiển ghi
WR
( write ), chọn chip
CS
(chip select ) và đòa chỉ A0. Khi phần mềm đã

xử lý ngắt và sẵn sàng nhận một ngắt kế tiếp, phần mềm sẽ ghi một mã đặc biệt vào
một trong những thanh ghi của 8259A, mã này sẽ gây cho 8259A không xác lập đường
INT, trừ phi đang có một ngắt khác chờ giải quyết. Các thanh ghi của 8259A cũng có
thể được ghi để đưa 8259A vào một trong các chế độ hoạt động, lập mặt nạ một tập
các ngắt và các đặc tính khác.
Khi có nhiều hơn 8 thiết bò I/O, các 8259A được nối theo kiểu cascade. Trong
trường hợp này, khả năng lớn nhất có thể có, tất cả 8 ngõ vào Irx của một 8259A được
nối bbvới các ngõ ra INT của 8 bộ xử lý ngắt 8259A nữa, cho phép kết nối với 64 thiết
bò I/O trong một hệ thống ngắt 2 tầng (two-stage). 8259A có một vài chân để quản lý
sự nối tầng này, chúng ta đã bỏ qua để đơn giản vấn đề.
Trong lúc tập trung nghiên cứu vào đề tài thiết kế bus, phần giải thích trên cũng
đủ cho chúng ta hiểu những điều cơ bản thiết yếu về cách làm việc của bus và cách
tương tác giữa bộ vi xử lý với các bus. Bây giờ chúng ta hãy xét một số thí dụ về các
bộ vi xử lý thực tế và các bus của chúng.
II. THÍ DỤ VỀ CHIP VI XỬ LÝ VÀ BUS
Trong phần này chúng ta khảo sát chi tiết bộ vi xử lý thuộc họ Intel ở cấp phần
cứng, xem xét loại bus thông dụng dùng cho họ vi xử lý này, IBM PC bus
1. Chip vi xử lý 8088 của họ Intel
8088 là bộ vi xử lý loại NMOS đặt trong một vỏ 40 chân. Bên trong chip này có
một nhóm đường dữ liệu 16 bit, nhưng ở một thời điểm chỉ đọc và ghi 8 bit với bộ nhớ
(nghóa là bus dữ liệu của hệ thống chỉ rộng 8 bit), 8088, với 20 đường đòa chỉ, có thể
đòa chỉ hóa tối đa 1 megabyte bộ nhớ. Bất cứ khi nào có thể, 8088 đều thực hiện tìm -
nạp lệnh trước, để khi cần đến lệnh kế tiếp, lệnh này đã sẵn sàng được sử dụng.
8088 có thể hoạt động ở một trong hai chế độ : chế độ tối thiểu (minimum mode)
và chế độ tối đa (maximum mode). Chế độ tối thiểu được dùng trong các hệ thống nhỏ
với vài thiết bò ngoại vi, thực tế là chế độ chỉ có một bộ xử lý. Thí dụ 8088 sử dụng
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-72-
trong một bộ điều khiển máy giặt sẽ hoạt động ở chế độ tối thiểu. Ý nghóa của các

chân trong 2 chế độ khác nhau, chúng đơn giản hơn trong chế độ tối thiểu. Trong các
hệ máy tính cá nhân, 8088 hoạt động ở chế độ tối đa, thực tế là chế độ có nhiều hơn
một bộ xử lý, vì thế chúng ta sẽ không bàn thêm về chế độ tối thiểu trong tài liệu này.
Các chân ra (pinout ) của 8088 ở chế độ tối đa được trình bày trong hình 3.8 (a),
20 trong 40 chân giữ đòa chỉ bộ nhớ hoặc I/O mà 8088 sẽ đọc hoặc ghi. Các chân này
được gọi là A0 –A19. Vì 8088 truyền dữ liệu 8 bit ở một thời điểm, cần có thêm 8 chân
cho bus dữ liệu. Tuy nhiên, do muốn giảm số chân cần thiết sao cho 8088 đặt vừa trong
một vỏ 40 chân, các đường dữ liệu D0 – D7 được ghép trên cùng chân với A0-A7. Ứng
với thời gian đầu của chu kỳ bus những chân này được gọi là AD0-AD7, là các chân
đòa chỉ, ở thời gian sau của chu kỳ bus chúng là các chân dữ liệu. Người ta dùng những
quy luật chính xác để chi phối việc đònh thì này, vì thế không bao giờ có sự lầm lẫn.
Các chân từ 35 đến 38 cũng được ghép, là các chân đòa chỉ lúc bắt đầu mỗi chu
kỳ bus và là các chân cho biết thông tin trạng thái lúc kết thúc. Tình huống này được
thể hiện bởi các ký hiệu A16/ S3 đến A19/ S6 ( xem các chân từ 35 đến 38 ), gạch
chéo dùng để phân biệt hai tín hiệu không liên quan nhau nhưng có chung một chân.
Chân 33 được gọi là MN /
MX (minimum / maximum), nhưng không biểu thò hai
tín hiệu Mn và
MX . Chân này được xác lập ở mức cao để đưa CPU vào chế độ tối
thiểu và được xác lập ở mức thấp để đưa CPU vào chế độ tối đa, 2 tên với dấu gạch
chéo được dùng ở đây chỉ là 2 cách khác nhau để nói về cùng một sự việc. Tuy việc
dùng ký hiệu này dễ gây lầm lẫn, nhưng đây là cách đặt tên của Intel. Để tránh tối đa
sự nhầm lẫn này, chúng ta sẽ vẽ các chip với các chân logic (logical pinout) hơn là các
chân ra vật lý (Physical pinout) của chúng. Trong hình 3.8(b) ta lại thấy 8088, lần này
các tín hiệu logic được thể hiện, không quan tâm đến các tín hiệu này được đặt trên
chân nào. Thí dụ, ở đây chúng ta thể hiện A0-A19 riêng với D0-D7, bởi vì chúng
không liên quan nhau về tính logic. Thực tế việc đề cập đến một số chân dùng chung
không cần thiết cho sự hiểu biết về cách làm việc của chip. Một đường chéo ngắn, bên
cạnh có ghi một con số cho biết có bao nhiêu đường tín hiệu trên đó (thí dụ 20 cho
A0-A19). Cuối cùng vò trí chúng ta chọn cho mỗi tín hiệu trong hình vẽ; không dựa vào

chân nào được sử dụng, thay vào đó các tín hiệu liên quan với nhau được nhóm lại để
tiện cho việc giải thích.
8088 dùng 6 chân để điều khiển bus. Các chân trạng thái
2S0S −
(Status) xác
đònh lại chu kỳ bus mà 8088 muốn sử dụng. Bảng liệt kê trong hình 3.8(c) trình bày các
loại bus. RD cho biết CPU đang ở chu kỳ đọc bộ nhớ. RD không nhất thiết phải dùng
trong chế độ tối đa, do bởi các thông tin giống như vậy, có thể xuất phát từ các tín hiệu
S0-S2 nhưng đôi khi lại rất thuận tiện.
8088 xác lập chân
LOCK
để báo cho các thiết bò chủ khác không được sử dụng
bus. Tín hiệu này cần dùng để dành độc quyền truy xuất tới bộ nhớ trong một số lệnh
quyết đònh của CPU yêu cầu nhiều chu kỳ bus. Chân tín hiệu này thường dùng chủ yếu
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-73-
trong các hệ thống đa xử lý. Không giống 5 tín hiệu điều khiển bus khác
READY là
một ngõ vào (input). Khi 8088 yêu cầu một byte từ bộ nhớ, CPU muốn bộ nhớ xuất dữ
liệu ra trong 4 chu kỳ xung clock. Nếu bộ nhớ thỏa mãn yêu cầu này bộ nhớ xác lập
đường
READY trong lúc đưa byte dữ liệu yêu cầu lên bus dữ liệu, và chỉ có vậy. Tuy
nhiên, nếu bộ nhớ có tốc độ quá chậm, bộ nhớ phải đặt tín hiệu READY ở trạng thái
không xác lập trước chu kỳ xung clock thứ 4, và giữ ở trạng thái này cho đến byte yêu
cầu được đưa lên bus, đây là trạng thái đợi. Bằng phương pháp này, có thể dùng 8088
với các bộ nhớ có tốc độ nhanh hay chậm.

Hình 3.8 : (a) Các chân ra vật lý của 8088
(b) Các chân ra logic của 8088

(c) Các loại chu kỳ bus của 8088
Các tín hiệu ngắt che được INTR (maskable interrupt) và ngắt không che được
NMI (non - maskable interrupt) được dùng để ngắt CPU. Sự khác nhau giữa 2 tín hiệu
là phần mềm có thể tạm thời che (vô hiệu hóa) loại ngắt che được. Ngắt bò che
(masked interrupt) không bò mất, nhưng phải đợi cho tới khi phần mềm cho phép ngắt
trở lại. Bình thường đường INTR được các thiết bò I/O sử dụng, trái lại đường NMI
được dùng để chỉ ra các lỗi kiểm tra chẳn lẽ của bộ nhớ, hoặc một số vấn đề quan
trọng khác không thể đợi.
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-74-
Hai đường yêu cầu bus và cấp bus RTx/RQ (request/grant) được dùng để phân
xử bus, thí dụ, giữa 8088 và chip đồng xử lý dấu chấm động (floating point
coprocessor) 8087. Sử dụng 2 đường này bộ đồng xử lý có thể yêu cầu 8088 thả nổi
tất cả các bus ( nghóa là 8088 tự không kết nối với bus về mặt điện ), bộ đồng xử lý trở
thành thiết bò chủ truy xuất bộ nhớ .
Bình thường 8088 sẽ cấp bus cho bất kỳ yêu cầu bus nào như vậy vào cuối chu
kỳ bus hiện tại, trừ khi đường tín hiệu LOCK hiện đang được xác lập. Người ta có thể
dùng 2 đường này để điều khiển 2 bộ đồng xử lý.
Tín hiệu
TEST
cho phép 8088 kiểm tra trạng thái của bộ đồng xác lập. Sự kiểm
tra này cần thiết bởi vì khi gặp một lệnh dấu chấm động, 8088 sẽ khởi động 8087 (
chip đồng xử lý dấu chấm động ) song song với bộ đồng xử lý. Khi 8088 cần kết quả
của phép toán dấu chấm động, 8088 có thể kiểm tra xem bộ đồng xử lý đã thực hiện
chưa, nếu chưa 8088 phải đợi.
Các tín hiệu S3-S6 và QSx chứa thông tin về trạng thái nội của CPU. Người ta
cũng không rõ tại sao nhà sản xuất cung cấp những tín hiệu này. Trong thực tế, chúng
thường không được sử dụng.
Chúng ta đã bàn về tín hiệu MN /

MX , vậy chỉ còn tín hiệu RESET. Tín hiệu
này dùng để thiết lập lại trạng thái cho CPU, thí dụ, khi người sử dụng ấn nút reset
trên bàn điều khiển. Sau khi được thiết lập lại, CPU được đặt ở trạng thái ban đầu.
2. Thí dụ về bus
Bus là một chất keo để nối các hệ thống máy tính với nhau. Trong phần này
chúng ta sẽ xem xét kỹ IBM PC bus. IBM PC bus là một thí dụ tốt về một bus sử dụng
trên các hệ thống máy tính dân dụng giá thành thấp. Bus có 20 đường đòa chỉ, 8 đường
dữ liệu và được sử dụng rộng rãi trong các hệ thống dựa trên 8088. Hầu hết các máy
tính tương thích với PC đều sử dụng bus này. IBM PC bus là nền tảng của IBM PC AT
bus cũng như các bus khác.
IBM PC bus đã trở thành bus chuẩn tồn tại trên các hệ thống dựa trên 8088 bởi vì
gần như tất cả các máy tính tương thích với PC đều sử dụng bus này để cho phép các
board I/O kết nối vào hệ thống của chúng. Bus có 62 đường liệt kê trong hình 3.9.
Trong hình này, cột ký hiệu In là các tín hiệu vào từ bus tới board chính, và cột ký
hiệu Out là các tín hiệu được tạo ra trên board chính và xuất lên bus.
Bus được khắc trên board chính, có khoảng 6 đầu nối (connector) hay còn gọi là
các khe mở rộng (extension slot) đặt cách nhau 3/4 inch để gắn các card vào. Mỗi card
có một bảng chân (tab) trên card đặt vừa vào khe mở rộng. Tab có 31 chân rảnh mạ
vàng ở mỗi mặt tạo tiếp xúc tốt về điện với đầu nối. Theo tài liệu, IBM gọi bus là
kênh I/O (I/O channel), nhưng không có ai khác gọi như vậy. Chúng ta chỉ đề cập đến
vì có 2 trong số các tín hiệu của bus dùng tên này.
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-75-
Các máy IBM PC ban đầu (cũng như những máy tương thích) có một bộ dao động
thạch anh tạo xung clock tần số 14.31818 MHz. Tần số này không được chọn tùy ý mà
do yêu cầu tạo ra tín hiệu burst màu (color burst) sử dụng trong các hệ thống truyền
hình màu ở Bắc Mỹ và Nhật. (Ban đầu IBM nghó rằng người tiêu thụ muốn dùng
những máy thu hình màu làm thiết bò hiển thò để tiết kiệm chi phí khi mua một màn
hình máy tính (monitor). Dù không có ai làm như vậy, nhưng vì đã chọn lựa nên IBM

vẫn cài tần số này vào máy tính). Tín hiệu 14.31818 MHz hiện diện trên đường tín
hiệu dao động OSC (oscillator) của bus.

Tín hiệu Đường Vào Ra Mô tả
OSC 1 X Tín hiệu đồng hồ 70ns
(14,31818MHz)
CLK 1 X Tín hiệu đồng hồø 210 ns (4,77 MHz)
RESET 1 X Khởi động CPU
A0-A19 20 X 20 đường đòa chỉ
D0-D7 8 X X 8 đường dữ liệu
ALE 1 X Cho phép chốt đòa chỉ
MEMR 1 X Đọc bộ nhớ
MEMW 1 X Viết bộ nhớ
IOR 1 X Đọc vào/ra
IOW 1 X Viết vào/ra
AEN 1 X Cho phép đòa chỉ (CPU thả nổi bus)
IO CH
CHK
1 X Kiểm tra kênh vào/ra
IO CH
RDY
1 X Kênh vào/ra sẵn sàng
IRQ2-
IRQ7
6 X Yêu cầu ngắt
DRQ1-
DRQ3
3 X Yêu cầu DMA
DACK0-
DACK3

4 X Trả lời DMA
T/C 1 X Đếm
Power 5 +5V, +12V
GND 3 Đất
Reserve
d
1 Không dùng trên PC
Hình 3.9 : Các tín hiệu trên IBM PC bus
Tần số của tín hiệu OSC quá cao đối với 8088 (tần số hoạt động tối đa của 8088
là 5 MHz) nên ta phải chia tần số OSC cho 3 để có tín hiệu 4.77 MHz, thực sự làm việc
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-76-
như một xung clock chủ (master clock) để quyết đònh thời gian của một chu kỳ bus.
Việc chia tần số của bộ dao động thạch anh cho 3 được thực hiện bởi một chip tạo
xung clock 8284A của Intel. Tín hiệu tần số 4.77 MHz cũng ở trên bus và được gọi là
CLK, có mức thấp trong 2/3 và mức cao trong 1/3 chu kỳ tín hiệu, không đối xứng như
tín hiệu OSC.Một số mát tương tbhích với PC chạy ở tần số 8 MHz sử dụng phiên bản
nhanh hơn của chip 8088, các máy này có tín hiệu CLK tần số cao hơn.
8284A cũng tạo ra tín hiệu RESET trên bus. Để thiết lập lại trạng thái ban đầu
cho CPU, mạch điện bên ngoài gởi một tín hiệu tới 8284A để xác lập RESET, bắt buộc
CPU và các thiết bò I/O tự khởi động lại. IBM PC bus cũng có 20 đường đòa chỉ và 8
đường dữ liệu để bus được sử dụng với 8088. Tuy nhiên, để nhận biết nhiều đường
khác của bus, cần phải hiểu không chỉ 8088 mà còn phải biết một số chip hổ trợ cho
8088 và cách sử dụng chúng.

Hình 3.10:Sơ đồ đơn giản bus PC chuẩn sử dụng với 8088
III. Bộ nhớ
Bộ nhớ bán dẫn, nhờ tính tương thích về kích thước và mức độ logic, tốc độ truy
cập cao, năng lượng tiêu thụ thấp nên được thiết kế làm bộ nhớ chính. Chúng được chế

tạo như những chip riêng biệt. Xu thế ngày nay là phải tạo ra các chip nhớ vừa có dung
lượng lớn với kích thước nhỏ và phải có tốc độ cao với giá thành thấp. Trong khi các
chip nhớ thông thường có kích thước cấu trúc điển hình cỡ 1µm thì các chip nhớ 64MB
giảm tới 0,3µm với hơn 200 triệu transistor, tụ điện và điện trở phải cùng hoạt động
chính xác với tốc độ cao trên cùng một chip đó. Chỉ cần một trong số phần tử đó có
vấn đề thì cả chip không thể hoạt động được
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-77-
1. Phân loại bộ nhớ bán dẫn
Chỉ cần dựa trên thời gian viết và cách viết, có thể chia thành bộ nhớ cố đònh, bộ
nhớ nửa cố đònh vàbộ nhớ đọc/viết. Bộ nhớ có nội dung ghi sẵn một lần khi chế tạo
gọi là bộ nhớ cố đònh và được ký hiệu la øROM (Read Only Memory). Sau khi đã viết
(bằng mặt nạ) từ nhà máy thì ROM loại này không viết lại đươc nữa. PROM là một
dạng khác, các bit có thể ghi bằng thiết bò ghi của người sử dụng trong một lần
(Programmable ROM). Bộ nhớ có thể đọc/viết nhiều lần gọi là RAM (Random Access
Memory) gồm có 2 loại:bộ nhớ đọc/viết tónh SRAM (Static RAM) thường được xây
dựng trên các mạch điện tử flip-flop vàbộ nhớ đọc/viết động DRAM (Dynamic RAM)
được xây dựng trên cơ sở nhớ các điện tích ở tụ điện, bộ nhớ này phải được hồi phục
nội dung đều đặn, nếu không nội dung sẽ mất theo sự rò điện tích trên tụ. Giữa ROM
và RAM có một lớp các bộ nhớ được gọi làEPROM (Erasable Programmable ROM )
có thể xoá được bằng tia cực tím và ghi lại được, EEPROM (Electric Earasable
PROM) có thể xoá được bằng dòng điện. Các loại này còn đươc gọi làbộ nhớ nửa cố
đònh. Các bộ nhơ ùDRAM thường thỏa mãn những yêu cầu khi cần bộ nhớ có dung
lượng lớn: trong khi đó khi cần có tốc độ truy xuất lớn thì lại phải dùng các bộ nhớ
SDRAM với giá thành đắc hơn. Nhưng cả hai loại này có nhược điểm là thuộc loại bay
hơi (volatile), thông tin sẽ bò mất đi khi nguồn điện nuôi bò cắt. Do vậy các chương
trình dùng cho việc khởi động PC như boot vàBIOS phải nạp trên các bộ nhớ ROM.

Hình 3.11: Phân loại bộ nhớ bán dẫn

2. Tổ chức bộ nhớ:
Bộ nhớ thường được tổ chức gồm nhiều vi mạch nhớ được ghép lại để có độ dài
từ và tổng số từ cần thiết. Những chip nhớ được thiết kế sao cho có đầy đủ một số chức
năng của một bộ nhớ:
- Một ma trận nhớ gồm các ô nhớ, mỗi ô nhớ ứng với một bit nhớ.
- Mạch logic giải mã đòa chỉ ô nhớ.
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-78-
- Mạch logic cho phép đọc nội dung ô nhớ.
- Mạch logic cho phép viết nội dung ô nhớ.
- Các bộ đệm vào, bộ đệm ra và bộ mở rộng đòa chỉ v.v
Cách tổ chức đơn giản nhất là tổ chức theo tứ (word organized) với sự chọn tuyến
tính (linear selection). Một ma trận nhớ như vậy có độ dài của cột bằng số lượng từ W
và độ dài của hàng bằng số lượng bit B trong một từ. Bộ chọn từ phải giải mã 1 từ W.
Phương pháp chọn tuyến tính có thời gian tâm nhập ngắn nhưng cần một bộ giải mã
lớn khi tổng số từ lớn do đó làm tăng giá thành sản phẩm.
Kích thước của phần giải mã đòa chỉ sẽ giảm đi khi tổ chức ma trận nhớ và phần
logic chọn từ cho phép giải mã hai bước (two-level decoding). Ma trận nhớ sử dụng
giải mã hai bước ứng với từ vật lý và từ logic. Từ vật lý bao gồm số lượng bit trong
một hàng ma trận. Từ logic bao gồm số lượng bit tương ứng với một từ logic được nhận
biết và gửi ra cùng một lúc. cần 2 bộ giải mã: một bộ giải mã hàng để chọn một ừ vật
lý và một bộ giải mã cột gồm một vài mạch dồn kênh (multiplexor) chọn một từ logic
từ một từ vật lý đã chọn.

Hình 3.12: Một thí dụ về giải mã 2 bước cho ma trận ROM 128x128
Nguyễn Hữu Lộc Khoa Vật Lý

×