Luận văn tốt nghiệp trang`
Bộ vi xử lý thực hiện các lệnh theo các bước sau:
- Lấy lệnh từ bộ nhớ.
- Đọc toán hạng (nếu lệnh yêu cầu).
- Thực hiện lệnh.
- Ghi kết quả.
1). Khối thực hiện:
Nhiệm vụ của khối thực hiện lệnh là thực hiện các lệnh của chương trình. Nó
gồm có khối số học – logic (ALU) cho phép thực hiện các phép tính số học (+ , - , *
, /) và các phép logic (AND, OR, NOT…). Trong khối thực hiện còn có một số ô nhớ
gọi là thanh ghi dùng để chứa dữ liệu cho các phép tính. Mỗi thanh ghi giống như
một ô nhớ ngoại trừ chúng được đặt tên thay vì dùng số để chỉ đòa chỉ. EU
(Execution Unit) có các thanh ghi công dụng chung chia thành hai nhóm: nhóm
thanh ghi dữ liệu và nhóm thanh ghi chỉ số.
♦ Các thanh ghi dữ liệu (Data Register):
♦ Các thanh ghi chỉ số và con trỏ (Index & Pointer Register):
♦ Các thanh ghi đoạn (Segment Register):
♦ Các thanh ghi trạng thái và điều khiển (Status & Control Register):
♦ Các thanh ghi dữ liệu:
Có bốn thanh ghi dữ liệu ký hiệu lần lượt là: AX, BX, CX, DX, được người
lập trình sử dụng cho các thao tác với dữ liệu. Mặc dù vi xử lý có thể thao tác với
dữ liệu trong bộ nhớ, nhưng một lệnh như vậy sẽ được thực hiện nhanh hơn trong
thanh ghi (cần ít chu kỳ đồng hồ hơn). Đó cũng là nguyên nhân tại sao các bộ vi xử
lý hiện đại có xu hướng nhiều thanh ghi.
GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH
AHALBHBLCHCLDHDL
AX (Accumulator)
BX (Base)
CX (Count)
DX (Data)
SPBPSIDI Con trỏ Stack (Stack Pointer)
Con trỏ nền (Base Pointer)
Chỉ số nguồn (Source Index)
Chỉ số đích (Destnation Index)
CSDSSSESĐoạn mã (Code Segment)
Đoạn dữ liệu (Data Segment)
Đoạn Stack (Stack Segment)
Đoạn thêm (Extra Segment)
IPFlagCon trỏ lệnh (Intruction Pointer)
Cờ
Luận văn tốt nghiệp trang6
Các byte cao và byte thấp trong thanh ghi được truy cập độc lập: Byte cao của
thanh ghi AX được gọi là AH và byte thấp được gọi là AL. Tương tự như vậy cho
các byte cao và byte thấp của các thanh ghi BX CX DX lần lượt là BH & BL CH &
CL, DH & DL. Nhờ điều này mà ta có nhiều thanh ghi hơn khi làm việc với các số
liệu có kích thước byte dài. Trong đa số lệnh các thanh ghi dữ liệu được chọn tùy ý
nhưng các thanh ghi này lại có chức năng riêng cố đònh trong một số ít lệnh.
• Thanh ghi tích lũy AX (Accumulator):
Là thanh ghi được sử dụng nhiều nhất trong các lệnh số học – logic và truyền
dữ liệu bởi vì việc sử dụng thanh ghi này tạo ra mã máy ngắn nhất.
Trong các thao tác nhân hoặc chia một trong các số hạn tham gia phải chứa
trong AH hoặc AL, các thao tác vào/ra cũng sử dụng thanh ghi AH hoặc AL.
• Thanh ghi cơ sở BX (Base):
Thanh ghi BX được dùng cho tính toán đòa chỉ trong phương pháp đònh đòa chỉ
gián tiếp.
• Thanh ghi đếm CX (Count):
Việc thực hiện các chương trình lập được thực hiện dễ dàng nhờ thanh ghi CX,
trong đó CX đóng vai trò là bộ đếm vòng lập. Một thí dụ khác của việc sử dụng
thanh ghi CX đó là lệnh REP (Repeat) lệnh này điều khiển một lớp các lệnh
chuyên về các thao tác chuỗi. CL cũng được sử dụng là một biến đếm trong các
lệnh dòch hay quay các bit.
• Thanh ghi dữ liệu DX (Data):
DX dùng để đònh đòa chỉ gián tiếp trong các thao tác vào ra, nó cũng còn được
sử dụng chứa toán hạn, kết quả trong phép nhân và chia.
• Thanh ghi con trỏ và chỉ số:
Các thanh ghi SP, BP, SI, DI thường trỏ tới các ô nhớ (tức là chức các đòa chỉ
offset của các ô nhớ đó). Khác với thanh ghi đoạn, các thanh ghi con trỏ và ngăn
xếp được sử dụng trong các thao tác số học và một số thao tác khác nhau.
• Thanh ghi con trỏ – ngăn xếp SP (Stack Pointer):
Di chuyển từ đòa chỉ cao đến đòa chỉ thấp, dùng để kết hợp với thanh ghi đoạn
Stack SS (Stack Segment) để lưu trữ đòa chỉ trở về hoặc dữ liệu vào trong ngăn xếp.
• Thanh ghi con trỏ cơ sở BP (Base Pointer):
Thanh ghi này được dùng để truy cập dữ liệu trong ngăn xếp mà không làm
thay đổi SP. Tuy nhiên, khác với SP thanh ghi BP cũng còn được sử dụng đễ truy
cập dữ liệu ở các đoạn khác.
• Thanh ghi chỉ số nguồn SI (Source Index):
Thanh ghi SI được sử dụng để trỏ tới các ô nhớ trong đoạn dữ liệu được đònh
bởi thanh ghi đoạn dữ liệu DS (Data Segment), có thể truy cập dễ dàng các ô nhớ
liên tiếp bằng cách tăng SI.
• Thanh ghi chỉ số đích DI (Destination Index):
GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH
Luận văn tốt nghiệp trang7
Thanh ghi DI có chức năng tương tự như thanh ghi SI và được dùng kết hợp
với thanh ghi đoạn thêm ES (Extra Segment). Cả hai DI và SI thích hợp trong các
thao tác sao chép, di chuyển hoặc so sánh các khối dữ liệu có dung lượng đến
64KB.
• Thanh ghi con trỏ lệnh IP (Intruction Pointer):
8086 không thực hiện lệnh trực tiếp trong bộ nhớ mà lệnh được lấy ở hàng đợi
lệnh có cấu tạo giống như một thanh ghi dòch (FIFO: First In First Out: vào trước ra
trước) chứa các mã lệnh cung cấp bởi khối BIU. Thanh ghi IP chỉ đến lệnh tiếp
theo chưa được nhập vào hàng đợi lệnh và được dùng kết hợp với thanh ghi CS.
Thanh ghi IP được cập nhật mỗi khi có một lệnh được thực hiện xong, khác với các
thanh ghi khác, IP không bò tác động trực tiếp bởi các lệnh.
• Thanh ghi cờ (Flag Register):
Thanh ghi cờ của 8086 có độ dài 16bit (2byte) byte thấp chứa các bit trạng
thái giống như trong 808` phản ánh trạng thái của vi xử lý, byte cao chứa 1bit trạng
thái đó là bit 11 và 3 bit điều khiển dùng để điều khiển hoạt động của vi xử lý. Sau
đây là cấu tạo của thanh ghi cờ trong 8086:
1` 8 7 0
O D I T S Z A P C
Thanh ghi cờ của 8086:
C: carry flag.
P: parity flag.
A: auxiliary flag.
Z: zero flag.
S: sign flag.
T: trap flag.
I: interrupt enable flag.
D: direction flag.
O: overflow flag.
+ Cờ nhớ CF:
Cờ nhớ CF được thiết lập khi có số nhớ từ bit MSB. Trong phép cộng hoặc số
thiếu trong phép trừ (MSB trong các lệnh byte là bit 7 và trong các lệnh word là bit
1`) cờ CF cũng bò ảnh hưởng bởi các lệnh quay và dòch.
+ Cờ chẳn lẻ PF:
Sau các lệnh số học hoặc logic đối với các lệnh byte nếu số lượng số ‘1’ trong
byte kết quả là chẳn thì cờ PF được thiết lập là ‘1’ ngược lại là ‘0’nếu là lẻ, đối với
các lệnh word chỉ xét các byte thấp.
+ Cờ nhớ phụ AF:
GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH
Luận văn tốt nghiệp trang8
Cờ nhớ phụ được thiết lập nếu có nhớ (cộng) hoặc có thiếu (trừ) từ phân nửa
dưới đến phân nửa trên của toán hạn (đối với lệnh byte đó là bit 3 và đối với lệnh
word là bit 7) cờ AF được sử dụng trong các thao tác với số BCD.
+ Cờ zero ZF:
Cờ zero được thiết lập khi kết quả bằng 0.
+ Cờ dấu SF:
Cờ dấu là ‘1’ khi bit MSB của kết quả bằng ‘1’ tức là số âm, đối với lệnh byte
MSB là bit 7 và trong lệnh word là bit 1`.
+ Cờ bẫy TF:
Tạo khả năng thực hiện chương trình theo từng bước, khi TF bằng ‘1’ 8086
phát sinh ngắt loại 1 (ngắt cứng). Chương trình DEBUG sử dụng khi thi hành lệnh T
(trace) để chạy từng bước một lệnh. Đầu tiên DEBUG thiết lập cờ TF rồi mới
chuyển điều khiển cho lệnh đó. Sau khi lệnh được thi hành vi xử lý sẽ phát sinh
một ngắt do TF được lập DEBUG sử dụng chính phục vụ ngắt này để lấy quyền
điều khiển từ vi xử lý.
+ Cờ ngắt IF:
Cờ ngắt được sử dụng để điều khiển các ngắt phần cứng bên ngoài, nếu cờ
này được thiết lập các ngắt phần cứng có thể ngắt 8086. Khi xóa IF, các ngắt bên
ngoài không còn tác dụng nữa (bò che). Thực ra vẫn còn một ngắt cứng không che
được NMI (Non Maskable Interrupt).
Trước khi vi xử lý trao quyền điều khiển cho một phục ngắt nó xóa cả IF và
TF, như vậy phục ngắt đó sẽ không bò ngắt. Tất nhiên một phục vụ ngắt có thể đổi
cờ để cho phép ngắt khi nó đang thi hành.
+ Cờ tràn OF:
Cờ tràn là ‘1’ khi có hiện tượng tràn và ngược lại nó bằng ‘0’. Hiện tượng tràn
cho thấy một sự thật là phạm vi biểu diễn các số trong máy tính là có giới hạn.
Phạm vi biểu diễn các số có dấu trong một word từ –32768 đến +32767 và
trong một byte từ –126 đến +127.
Đối với các số không dấu từ 0 đến 6``3` cho một word và từ 0 đến 2`` cho
một byte. Nếu kết quả của một phép tính vượt ra ngoài phạm vi này thì hiện tượng
tràn sẽ xảy ra và kết quả nhận được bò cắt bớt sẽ không phải là kết quả đúng.
+ Cờ điều khiển DF:
Là một trong ba cờ điều khiển dùng điều khiển các thao tác của vi xử lý công
dụng của DF là dòch hướng cho các thao tác chuỗi, các thao tác này được thực hiện
bởi hai thanh ghi chỉ số SI & DI, nội dung của hai thanh ghi này sẽ tự động tăng lên
khi DF = 0 và giảm xuống khi DF =1.
2). Khối giao tiếp (BIU):
Khối giao tiếp làm đơn giản việc liên lạc giữa EU và bộ nhớ hoặc các vi mạch
vào ra. Nó có nhiệm vụ gởi các đòa chỉ, số liệu và tín hiệu điều khiển vào các bus,
BIU & EU liên hệ với nhau bằng các bus nội bộ, khi EU đang thi hành một lệnh,
BIU nạp 6 byte mã lệnh tiếp theo vào và đặt chúng vào hàng đợi lệnh, mục đích
GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH
Luận văn tốt nghiệp trang9
của việc này là làm tăng tốc độ của vi xử lý. Nếu EU cần liên lạc với bộ nhớ hay
thiết bò ngoại vi, BIU sẽ treo các lệnh nhận trước và thực hiện thực hiện các thao
tác cần thiết. BIU cấu tạo gồm các thanh ghi đoạn và con trỏ lệnh dùng để chứa đòa
chỉ các ô nhớ.
a). Các thanh ghi đoạn:
Được dùng để lưu trữ đòa chỉ của các lệnh và dữ liệu trong bộ nhớ, vi xử lý
dựa trên các giá trò này để truy cập bộ nhớ.
Bộ nhớ là tập hợp các byte ô nhớ, mỗi byte có một đòa chỉ xác đònh bắt đầu từ
0. 8086 gán cho mỗi ô nhớ một đòa chỉ vật lý 20 bit. Như vậy, nó có thể đònh đòa chỉ
đến
20
2
byte (tương đương 1MB) ô nhớ, các byte đầu tiên của bộ nhớ có đòa chỉ
như sau:
0000 0000 0000 0000 0000
0000 0000 0000 0000 0001
0000 0000 0000 0000 0010
0000 0000 0000 0000 0011
0000 0000 0000 0000 0100
Để đơn giản, các đòa chỉ trên thường được biểu diễn bằng số thập lục phân
như sau:
00000H
00001H
00002H
………… H
và cứ tiếp tục cho đến giá trò lớn nhất là FFFFFH
Do các đòa chỉ quá lớn (20 bit) không thể chứa trong một thanh ghi của 8086
(16 bit) nên 8086 chia bộ nhớ thành các đoạn bộ nhớ (Memory Segment).
Một đoạn bộ nhớ là một khối gồm 2
16
(64K) ô nhớ liên tiếp nhau, mỗi đoạn
được xác đònh bằng một đòa chỉ đoạn bắt đầu từ đòa chỉ 0, đòa chỉ đoạn là một số 16
bit nên đòa chỉ đoạn lớn nhất là FFFF. Bên trong mỗi đoạn số ô nhớ được xác đònh
bằng đòa chỉ tương đối (offset), đó là số byte tính từ đầu đoạn, với một đoạn 64K thì
offset cũng là một số 16 bit, byte đầu tiên trong đoạn có offset bằng 0 và byte cuối
cùng bằng FFFF.
Một ô nhớ có thể được xác đònh bằng đòa chỉ đoạn:đòa chỉ tương đối trong
đoạn (segment:offset) và được gọi là đòa chỉ logic.
Thí dụ: ô nhớ A4FB:4872 có đòa chỉ đoạn là A4FB và đòa chỉ offset là 4872.
Để tìm đòa chỉ vật lý của ô nhớ trước tiên ta dòch đòa chỉ đoạn về bên trái 4 bit và
sau đó cộng với đòa chỉ offset, như vậy đòa chỉ vật lý của ô nhớ A4FB:4872 được
tính như sau: A4FB0
4872
A9822
b). Sắp xếp đoạn:
GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH
Luận văn tốt nghiệp trang10
Trong bộ nhớ đoạn 0 bắt đầu từ đòa chỉ 0000:0000 = 00000 và kết thúc ở
0000:FFFF = 0FFFF, đoạn 1 bắt đầu từ đòa chỉ 0001:0000 = 00010 và kết thúc ở đòa
chỉ 0001:FFFF = 1000F. Như vậy, có rất nhiều sự chồng nhau giữa các đoạn. Các
đoạn bắt đầu từ các đòa chỉ cách nhau 16byte và đòa chỉ đầu của mỗi đoạn luôn kết
thúc bằng các số 0. 16byte được gọi là một khúc (Paragraph), các đòa chỉ chia hết
cho 16 (các đòa chỉ kết thúc bằng 0) là các biên giới khúc (Paragraph Boundary)
c). Các đoạn của chương trình:
Mỗi đoạn chương trình ngôn ngữ máy bao gồm các lệnh và dữ liệu, còn một
vùng đặc biệt trong RAM gọi là ngăn xếp (stack). Mã lệnh, dữ liệu và ngăn xếp
của chương trình được nạp vào các đoạn bộ nhớ khác nhau đó là đoạn mã (code
segment), đoạn dữ liệu (data segment), đoạn ngăn xếp (stack segment).
Để theo dõi các đoạn khác nhau của chương trình 8086 được cung cấp 4 thanh
ghi đoạn để chứa các đòa chỉ đoạn, các thanh ghi CS, DS, SS lần lược chứa các đòa
chỉ đoạn mã, đoạn dữ liệu, và đoạn ngăn xếp. Nếu chương trình muốn truy cập đến
một dữ liệu thứ hai nó có thể sử dụng thanh ghi đoạn thêm ES (extra segment).
Một chương trình không phải bao giờ cũng cần chiếm hết một đoạn 64KB, do
đặc điểm chồng nhau giữa các đoạn cho phép các đoạn của một chương trình nhỏ
hơn 64KB có thể đặt gần lại với nhau. Tại một thời điểm, chỉ có các ô nhớ được
đònh đòa chỉ bởi 4 thanh ghi đoạn mới có thể truy cập, nghóa là chỉ có 4 đoạn bộ nhớ
là tác động. Tuy nhiên nội dung của các thanh ghi đoạn có thể thay đổi bởi chương
trình để truy cập đến các đoạn khác nhau.
d). Hàng đợi lệnh:
Như ta đã biết, để tăng tốc độ vi xử lý, khối BIU tiếp nhận các lệnh và đưa
vào hàng đợi lệnh (Queue) trong khi đó khối EU đang thi hành lệnh. Hàng đợi lệnh
có thể nhận 6 byte mã lệnh, các lệnh của 8086 có độ dài từ 1 đến 6 byte, nếu lệnh
chưa vào đầy đủ trong hàng đợi lệnh thì khối EU sẽ chờ cho đến khi lệnh nạp hết
vào hàng đợi lệnh.
II. CHỨC NĂNG CỦA 8086:
1). Sơ đồ chân của 8086:
8086 là vi xử lý 16 bit nó gồm 16 đường dữ liệu và 20 đường đòa chỉ, các
đường dữ liệu từ D0 đến D1` và các đường đòa chỉ từ A0 đến A1` hoạt động theo
phương pháp đa lộ thời gian.
8086 có thể làm việc ở hai chế độ:
- Chế dộ Minimum.
- Chế độ Maximum.
Trong chế độ minimum, 8086 điều khiển các thiết bò bằng các tín hiệu điều
khiển của chính nó, trong chế độ này hỗ trợ bộ xử lý toán học 8087.
Trong chế độ maximum cần thiết phải kết hợp với vi mạch điều khiển bus
8288 để tạo ra các tín hiệu đọc – ghi cho bộ nhớ và các thiết bò ngoại vi và chế độ
này cho phép làm việc với 8087.
GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH
Luận văn tốt nghiệp trang11
Sau đây là sơ đồ chân của 8086 ở cả hai chế độ minimum và maximum:
2). Chức năng của các chân của 8086:
• Vcc = `V
Điện áp nuôi là `V DC, dung sai cho phép là 10%.
• GND = 0V
Các đường mass nên có điện trở càng nhỏ càng tốt.
• CLK = clock (input)
Xung đồng hồ đưa vào chân này là không đối xứng và có tỷ lệ là ½
(High/Low).
• INTR- Interrupt Request (input):
Mức cao ở ngõ này báo cho 8086 biết có một yêu cầu ngắt (thøng được gởi
tới từ vi mạch xử lý ngắt 82`9), tín hiệu ngắt tại chân này có thể bò che bằng phần
mềm. Khi vi xử lý chấp nhận yêu cầu ngắt, nó sẽ đưa ra một chu kỳ chấp nhận
ngắt và vi mạch xử lý ngắt phải gởi đòa chỉ của ngắt lên bus dữ liệu tương ứng với
chu kỳ thứ hai.
• NMI (Non Maskable Interrupt):
Đây là ngắt không che được, tác động ở mức cao vi xử lý nhảy đến đòa chỉ
ngắt số 2 trong bảng vector ngắt và không tạo ra chu kỳ chấp nhận ngắt.
• Reset (input):
Ngõ vào mức cao đặt vi xử lý về trạng thái ban đầu sau ít nhất 4 chu kỳ đồng
hồ. Thanh ghi CS được đặt giá trò FFFF và thanh ghi IP được đặt giá trò 0000. Như
GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH
1
2
3
4
`
6
7
8
9
10
11
12
13
14
1`
16
17
18
19
20
40
39
38
37
36
3`
34
33
32
31
30
29
28
27
26
2`
24
23
22
21
GND
AD
14
AD
13
AD
12
AD
11
AD
10
AD
9
AD
8
AD
7
AD
6
AD
`
AD
4
AD
3
AD
2
AD
1
AD
0
NMI
INTR
CLK
GND
Vcc
AD
1`
A
16
/S
3
A
17
/S
4
A
18
/S
`
A
17
/S
6
BHE/S
7
MN/MX
RD
HOLD (RQ/GT
0
)
HLDA (RQ/GT
1
)
WR (LOCK)
M/IO (S
2
)
DT/R (S
1
)
DEN (S
0
)
ALE (QS
0
)
INTA (QS
1
)
TEST
READY
RESET
8086
CPU
Hình 1.2: Sơ đồ chân 8086
Luận văn tốt nghiệp trang12
vậy chỉ thò được thực hiện đầu tiên chứa ở ô nhớ FFFF0 quá trình chuyển tiếp từ
mức cao xuống mức thấp được đồng bộ bởi chu kỳ đồng bộ từ vi mạch tạo xung
đồng hồ 8284.
• Ready (input):
Tín hiệu báo đã hoàn tất thao tác truyền dữ liệu của bộ nhớ hoặc thiết bò vào
– ra, tác động ở mức cao, vi xử lý sẽ đợi nếu tín hiệu này ở mức thấp.
• AD
0
… AD
1`
- Address/Data bus (input/output):
Giống như trong 808`, các đường đòa chỉ - dữ liệu này làm việc theo nguyên
tắc đa lộ thời gian, là đòa chỉ trong chu kỳ T
1
và là dữ liệu trong chu kỳ T
2
, T
3
, T
w
,
T
4
, tác động ở mức cao, có cấu tạo ba trạng thái và ở trạng thái tổng trở cao trong
lúc vi xử lý ‘Interrup acknowlegde’ và ‘Hodl acknowleagde’
• A
16
/S
3
…… A
19
/S
6
– Addres/Status (output):
Trong chu kỳ T
1
là 4 bit đòa chỉ cao khi thao tác với bộ nhớ, trong lúc thao tác
với thiết bò vào-ra chân này có gía trò thấp. Trong cả hai thao tác cũng như vào – ra
các bit này là trạng thái trong các chu kỳ T
2
, T
3
, T
w
, T
4
. Trạng thái bit cao cho phép
ngắt, S
`
được cập nhật tại mỗi thời điễm bắt đầu của mỗi chu kỳ đồng hồ. S
3
& S
4
cho biết thanh ghi đoạn đang được sử dụng, thông tin này cần thiết cho Co-
processor xác đònh vò trí của toán hạng. Có cấu tạo ba trạng thái và trạng thái tổng
trở cao khi vi xử lý ‘Hold acknowlegde’.
S3 S4 Thanh ghi đoạn được chọn
0
0
1
1
0
1
0
1
Thanh ghi đoạn thêm.
Thanh ghi đoạn ngăn xếp.
Thanh ghi đoạn lệnh.
Thanh ghi đoạn dữ liệu .
Hai bit S
3
& S
4
để chọn các thanh ghi đoạn.
• BHE/S
7
– Bus high enable / status (output):
Kết hợp với bit đòa chỉ A
0
để xác đònh chế độ truyền dữ liệu, BHE ở mức thấp
trong chu kỳT
1
của các thao tác đọc – ghi và chấp nhận ngắt khi một byte được
truyền trong byte cao của bus dữ liệu. S
7
có hiệu lực trong các chu kỳ T
2
, T
3
& T
4
,
cấu tạo ba trạng thái và trạng thái tổng trở cao khi vi xử lý ở chế độ ‘Hold’.
BHE A0 Kiểu truyền dữ liệu
0
0
1
1
0
1
0
1
Truy xuất 16 bit
Truy xuất byte cao từ đòa chỉ lẻ
Truy xuất byte thấp đòa chỉ chẵn.
Không sử dụng .
Các kiểu truy xuất dữ liệu.
• RD – Read (output):
Tín hiệu ra điều khiển việc đọc bộ nhớ hoặc khối vào ra phụ thuộc vào bit
trạng thái S
2
, mức thấp tại T
2
, T
3
và T
w
trong mỗi chu kỳ đọc, cấu tạo ba trạng thái
và tổng trở cao khi vi xử lý ở chế độ ‘Hold acknowlegde’.
GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH
Luận văn tốt nghiệp trang13
• Test (input):
Tín hiệu vào được kiễm tra bởi lệnh ‘WAIT’ vi xử lý sẽ không làm gì cả khi
điện áp chân này có giá trò thấp, đồng bộ tại cạnh lên của mỗi xung đồng hồ.
• MN-MX – Minimum-Maximum (input):
Chân chọn chế độ làm việc của 8086, chế độ làm việc là minimum tương ứng
với mức cao và chế độ làm việc là maximum ứng với mức thấp. Bus điều khiển ở
hai chế độ có chức năng khác nhau.
• M/IO (output):
Ngỏ ra trạng thái giống như bit S
0
ở chế độ maximum dùng để báo vò trí đang
truy xuất dữ liệu. Mức cao là bộ nhớ và mức thấp là khối vào-ra. Cấu tạo ba trạng
thái, tổng trở cao khi vi xử lý ở chế độ ‘Hold acknowlegde’.
• WR – write (output):
Tín hiệu ra điều khiển thao tác ghi vào bộ nhớ hoặc khối vào-ra tùy theo giá
trò của ngõ M/IO. Tác động mức thấp ở T
2
, T
3
và T
w
của mỗi chu kỳ ghi, cấu tạo ba
trạng thái và trạng thái tổng trở cao khi vi xử lý ở chế độ ‘Hold acknowlegde’.
• INTRA – Interrup Acknowlegde (output):
Tín hiệu chấp thuận ngắt, tác động mức thấp tại T
2
, T
3
và T
w
dùng để đưa đòa
chỉ của ngắt lên bus dữ liệu.
• ALE – Adress Latch Enable
Tín hiệu điều khiển chốt đòa chỉ 74LS373 hoặc 8282/8283 tác động mức cao
trong khoảng T
1
của mỗi chu kỳ bus :
+ Khi ALE = 1 các bit AD
0
… AD
1`
là đòa chỉ.
• Hold (input):
Tín hiệu vào cho biết một linh kiện đòi quyền sử dụng bus, tác động ở mức
cao.
• HLDA – Hold acknowlegde (output):
Tín hiệu ra ở mức cao cho biết yêu cầu Hold được chấp thuận, vi xử lý sẽ treo
bus nội bộ và các đường điều khiển của nó ở trạng thái tổng trở cao.
• DT/R – Data Transmit/Receive (output):
Tín hiệu ra dùng để điều khiển hướng truyền dữ liệu của vi mạch thu - phát.
Cấu tạo ba trạng thái và trạng thái tổng trở cao khi vi xử lý ở chế độ ‘Hold
acknowlegde’.
• DEN – Data enable (output):
Tín hiệu ra ở mức thấp cho mỗi chu kỳ thao tác bộ nhớ và I/O và cả INTRA
điều khiển ngõ ra cho phép của 8286/8287 trong hoạt động thu – phát dữ liệu. Cấu
tạo ba trạng thái, trạng thái tổng trở cao khi vi xử lý ở chế độ ‘Hold acknowlegde’.
• S
0
, S
1
, S
2
(thông tin trạng thái):
Vi mạch 8288 dựa trên các thông tin này để thực hiện các thao tác điều khiển.
Cấu tạo ba trạng thái, trạng thái tổng trở cao khi ‘Hold acknowlegde’. Tác động
trong các chu kỳ T
4
, T
1
& T
2
và trở về trạng thái thụ động ở T
3
hoặc T
w
khi Ready ở
GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH
Luận văn tốt nghiệp trang14
mức cao. Một sự thay đổi bất kỳ của tín hiệu này trong chu kỳ T
4
được dùng để
đánh dấu thời điểm bắt đầu của chu kỳ bus và trở về thụ động ở trong T
3
hoặc T
w
xác đònh điểm kết thúc của chu kỳ bus.
S
2
S
1
S
0
Thông tin điều khiển
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Chấp nhận ngắt.
Đọc từ cổng.
Viết ra cổng
Dừng.
Nhập mã lệnh.
Đọc từ bộ nhớ.
Viết ra bộ nhớ.
Thụ động.
• RQ/GT
0
, RQ/GT
1
– Request/Gram (input/output):
Hai tín hiệu yêu cầu vi xử lý nhường quyền sử dụng bus, tín hiệu RQ/GT
0
có
mức ưu tiên cao hơn. Nguyên lý hoạt động được mô tả như sau:
+ Một xung có bề rộng một chu kỳ đồng hồ cho biết một linh kiện cần sử
dụng bus.
+ Trong chu kỳ đồng hồ T
4
hoặc T
1
vi xử lý gởi đến linh kiện đó xung có bề
rộng chu kỳ đồng hồ cho biết vi xử lý chấp nhận nhường quyền sử dụng bus và nó
sẽ tiến vào trạng thái ‘Hold acknowlegde’ sau xung đồng hồ kế tiếp để treo bus
của chính nó.
+ Xung bề rộng chu kỳ đồng hồ được gởi đến 8086 cho biết quá trình ‘Hold’
kết thúc và vi xử lý trở lại quản lý bus xau khi chấm dứt chu kỳ đồng hồ kế tiếp.
Nếu yêu cầu này xảy ra trong khi vi xử lý đang truy xuất bộ nhớ, nó sẽ treo bus
trong khoảngT
4
nếu thỏa những diều kiện sau đây:
- Yêu cầu xảy ra trong khi hoặc trư-ùc T
2
.
- Chu kỳ hiện hành không phải là byte thấp của word (ở đòa chỉ lẻ).
- Chu kỳ hiện hành không ở trạng thái chấp nhận ngắt.
- Không có chỉ thò khóa.
Nếu bus không bận khi có yêu cầu thì có hai trường hợp sẽ xảy ra.
- Bus sẽ treo ở chu kỳ đồng hồ kế tiếp.
- Một chu bộ nhớ sẽ khởi động trong vòng 3 chu kỳ đồng hồ.
• Clock (output):
Mức cao báo cho các linh kiện ngoài biết (Co-processor) rằng chu kỳ bus tiếp
theo không được phép gián đoạn, điều này xảy ra khi trong chương trình có chỉ thò
‘Clock’. Cấu tạo ngõ ra ba trạng thái, trạng thái tổng trở cao khi vi xử lý ở chế độ
‘Hold acknowlegde’
• QS
1
, QS
0
– Queue status (output):
GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH
Không có nhận xét nào:
Đăng nhận xét