Chương 2: CẤU TRÚC BÊN NGOÀI VÀ
CHỨC NĂNG CỦA VXL 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 D15 và các đường
đòa chỉ từ A0 đến A15 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.
Sau đây là sơ đồ chân của 8086 ở cả hai chế độ minimum
và maximum:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
GND
AD
14
AD
13
AD
12
AD
11
AD
10
AD
9
AD
8
AD
7
AD
6
AD
5
AD
4
AD
3
AD
2
AD
1
AD
0
NMI
INTR
CLK
GND
Vcc
AD
15
A
16
/S
3
A
17
/S
4
A
18
/S
5
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
2). Chức năng của các chân của 8086:
Vcc = 5V
Điện áp nuôi là 5V 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 8259), 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ư 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
15
- Address/Data bus (input/output):
Giống như trong 8085, 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ý ‘Interrupt acknowlegde’ và ‘Hold acknowledge’.
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
5
đượ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
acknowledge’.
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’.
HB
E
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 acknowledge’.
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 acknowledge’.
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 acknowledge’.
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
15
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 acknowledge’.
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 acknowledge’.
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 acknowledge’. 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 ở 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 acknowledge’ 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
acknowledge’
QS
1
, QS
0
– Queue status (output):
Ngõ ra cho biết trạng thái của hàng đợi lệnh, những thông
tin này cần thiết cho Co-processor.
QS
0
QS
1
Trạng thái hàng đợi lệnh
0
0
1
1
0
1
0
1
Không hoạt động .
Xóa nội dung hàng đợi kệnh.
Nạp byte mã lệnh đầu tiên vào thanh
ghi lệnh.
Nạp byte mã lệnh tiếp theo của lệnh
nhiều byte
. 8086 ở cả hai chế độ minimum
và maximum:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
GND
AD
14
AD
13
AD
12
AD
11
AD
10
AD
9
AD
8
AD
7
AD
6
AD
5
AD
4
AD
3
AD
2
AD
1
AD
0
NMI
INTR
CLK
GND
Vcc
AD
15
A
16
/S
3
A
17
/S
4
A
18
/S
5
A
17
/S
6
BHE/S
7
MN/MX
RD
HOLD. Chương 2: CẤU TRÚC BÊN NGOÀI VÀ
CHỨC NĂNG CỦA VXL 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