Chương 4:Khối giải mã lệnh và khối điều khiển logic Chức năng của khối giải mã lệnh là nhận lệnh từ thanh ghi lệnh sau đó tiến hành giải mã lệnh rồi đưa tín hiệu điều khiển đến khối điề
Trang 1Chương 4:
Khối giải mã lệnh và khối điều
khiển logic
Chức năng của khối giải mã lệnh là nhận lệnh từ thanh ghi lệnh sau đó tiến hành giải mã lệnh rồi đưa tín hiệu điều khiển đến khối điều khiển logic
d Các đường bus:
Các khối bên trong Vi xử lý liên hệ với nhau thông qua tập hợp các đường dây để truyền dữ liệu gọi là bus hệ thống Chúng được chia ra làm ba loại:
- Bus địa chỉ: có nhiệm vụ định ra địa chỉ của thiết bị cần truy xuất nên mang tính một chiều, chỉ có Vi xử lý mới đưa dữ liệu lên bus địa chỉ
- Bus dữ liệu: dùng để kết nối các thanh ghi bên trong Vi xử lý và ALU, tất cả dữ liệu di chuyển bên trong Vi xử lý từ khối này đến khối khác đều thông qua bus dữ liệu, do đó bus dữ liệu mang tính hai chiều Khi Vi xử lý cần truy xuất dữ liệu từ bộ nhớ hay các thiết bị I/O bên ngoài thì bus dữ liệu bên trong phải được nối với bus dữ liệu bên ngoài
- Bus điều khiển: gồm các tín hiệu điều khiển để đảm bảo sự hoạt động đồng bộ giữa các khối, mỗi tín hiệu điều khiển có một chiều nhất định Khi hoạt động, Vi xử lý đưa các tín hiệu điều khiển tới các khối khác trong hệ thống, đồng thời Vi xử lý cũng nhận tín hiệu từ các khối khác gởi về Điều này không có nghĩa bus điều khiển là hai chiều vì Vi xử lý gởi tín hiệu đi hay nhận tín hiệu về trên các đường tín hiệu khác nhau bên trong bus điều khiển
Trang 24 Tập lệnh (Instructions) của Vi xử lý:
Mỗi loại Vi xử lý có tập lệnh riêng, số lượng lệnh cũng tùy thuộc vào từng loại Vi xử lý Tập lệnh của Vi xử lý có thể được chia làm các nhóm cơ bản sau:
- Nhóm lệnh truyền dữ liệu
- Nhóm lệnh số học và logic
- Nhóm lệnh trao đổi, truyền khối dữ liệu và tìm kiếm
- Nhóm lệnh xoay và dịch
- Nhóm lệnh điều khiển
- Nhóm lệnh về bit
- Nhóm lệnh nhảy
- Nhóm lệnh gọi, trở về
- Nhóm lệnh xuất, nhập
Mỗi lệnh của Vi xử lý là dữ liệu ở dạng số nhị phân Khi Vi xử lý nhận được một lệnh thì từ dữ liệu nhị phân này yêu cầu Vi xử lý thực hiện công việc mà lệnh yêu cầu Chiều dài của một lệnh bằng với chiều dài từ dữ liệu của Vi xử lý Mỗi lệnh mà Vi xử lý thực hiện gồm hai yếu tố:
- Mã công tác: cho biết thao tác mà Vi xử lý phải thực hiện
- Toán hạng: được viết theo sau mã công tác, cho biết vị trí dữ liệu cần phải xử lý
Có nhiều cách để chỉ vị trí của số liệu:
Trang 3- Định địa chỉ trực tiếp bằng thanh ghi: toán hạng là ký hiệu của các thanh ghi và dữ liệu cần xử lý chính là nội dung chứa trong thanh ghi đó
- Định địa chỉ gián tiếp bằng thanh ghi: toán hạng không phải là địa chỉ của số liệu mà chỉ là dấu hiệu cho biết nơi chứa dữ liệu
- Định địa chỉ trực tiếp: toán hạng là địa chỉ của dữ liệu cần được xử lý
- Định địa chỉ tức thời: toán hạng chính là dữ liệu cần được xử lý
- Định địa chỉ ngầm định: vị trí hoặc giá trị của dữ liệu cần được xử lý được hiểu ngầm nhờ mã công tác
Trang 4Vi xử lý 8085A
I Giới thiệu:
Vi xử lý 8085A được hãng Intel chế tạo vào năm 1974 Đây là một Vi xử lý 8 bit, có chiều dài từ dữ liệu là 8 bit, chiều dài từ địa chỉ là 16 bit
1 Đặc tính:
- Nguồn cung cấp : 5V 10%
- Dòng điện cực đại: Imax = 170mA
- Tần số xung clock chuẩn 6MHz
- Mạch tạo xung clock được tích hợp, có thể dùng thạch anh, RC hay RC bên ngoài
- Có 5 yêu cầu ngắt: Trong đó có một yêu cầu ngắt không
che được (NMI - Non Maskable Interrupt) và một tương
thích với 8080A
- Có cổng Input/Output nối tiếp
- Phần mềm tương thích 100% với 8080A
2 Sơ đồ chân và sơ đồ logic:
8085A
Ready Hold
Intr RST 7.5 RST 6.5 RST 5.5
Trap Reset In
X 1
X 2
SID Vcc Vss
A 15 - A 8
AD7- AD0
ALE
S 0
S 1
RD\ WR\ HLDA INTA Reset Out SOD
8085A
X 1
X 2
Reset Out
SOD SID Trap RST 7.5 RST 6.5 RST 5.5 INTR INTA\
AD 0
AD 1
AD 2
AD3
AD 4
AD 5
AD6
AD7 Vss
Vcc HOLD HLDA CLK Out Reset In Ready IO/M\
S1 RD\
WR\
ALE
S 0
A 15
A 14
A13
A 12
A 11
A10
A9 A
Trang 5Sơ đồ chân
A 8 A 15 - Address bus (output)
Byte cao của địa chỉ ô nhớ 16 bit hoặc địa chỉ cổng 8 bit, có cấu tạo ngõ ra 3 trạng thái Trạng thái Hi-Z ở chế độ HOLD, HALT và trong lúc RESET
AD 0 AD 7 - Address/Data bus (input/output)
Bus địa chỉ/dữ liệu, làm việc theo phương pháp đa lộ thời gian: Ở chu kỳ đồng hồ đầu tiên là byte thấp của địa chỉ ô nhớ hoặc khối xuất nhập, ở hai chu kỳ tiếp theo là dữ liệu, cấu tạo ngõ ra 3 trạng thái Trạng thái Hi-Z ở chế độ HOLD, HALT và trong lúc RESET
ALE - Address Latch Enable (output)
Ở chu kỳ đầu tiên của xung đồng hồ, ALE = [1] cho biết
AD0 AD7 là bus địa chỉ
xung clock
A 15 -A 8
ALE
RD\
WR\
T T T T T T
Trang 6Phương pháp đa lộ thời gian
Vi xử lý và chốt địa chỉ
RD\ - Read control (output)
Tác động mức thấp cho biết dữ liệu đang được đọc từ bộ nhớ hoặc cổng Cấu tạo ngõ ra 3 trạng thái Trạng thái Hi-Z ở chế độ HOLD, HALT và trong lúc RESET
Bus địa chỉ Chốt
S 0 S 1 HLDA HOLD
8085A
RESET
RDY CLK INTA ALE RD WR IO/M\ OUT AD7 - AD0 A15 - A8
RESET IN
Bus điều khiển
Bus dữ liệu Tín hiệu ngắt
Chu kỳ viết Chu kỳ đọc
Trang 7WR\ - Write control (output)
Tác động mức thấp cho biết dữ liệu đang được viết vào bộ nhớ hoặc cổng Cấu tạo ngõ ra 3 trạng thái Trạng thái Hi-Z ở chế độ HOLD, HALT và trong lúc RESET
READY (input)
Mức cao trong chu kỳ đọc hoặc viết cho biết bộ nhớ hoặc thiết bị ngoại vi đã sẵn sàng gởi hoặc nhận dữ liệu, Vi xử lý sẽ đợi nếu ngõ này ở mức thấp
S 0 , S 1 , IO/M\ - status (output)
Ba ngõ ra cho biết trạng thái hoạt động của Vi xử lý
IO/
M\ S1 S0 Trạng thái
0 0 1 Viết vào bộ
nhớ
0 1 0 Đọc vào bộ
nhớ
1 0 1 Viết ra cổng
1 1 0 Đọc từ cổng
1 1 1 Nhận yêu cầu
ngắt
* trạng thái Hi-Z
x không xác định
Trang 8* x x RESET
HLDA - Hold Acknowledge (output)
Tín hiệu ra cho biết Vi xử lý chấp nhận quyền sử dụng bus địa chỉ và bus dữ liệu ở chu kỳ kế tiếp, ngõ này trở về mức thấp khi không còn yêu cầu HOLD
INTR - Interrupt Request (input)
Được dùng cho các yêu cầu ngắt công dụng chung, Vi xử lý sẽ nhận ra sau khi thực hiện xong một chỉ thị, ngắt này có thể được che bằng phần mềm và không có hiệu lực trong lúc RESET hoặc trong khi Vi xử lý đang thi hành một chương trình phục vụ ngắt
INTA - Interrupt Acknowledge (output)
Ngõ ra mức thấp cho biết Vi xử lý chấp thuận yêu cầu
ngắt
RST 5.5, RST 6.5, RST 7.5 - Restart Interrupt (input)
Ba yêu cầu ngắt có mức độ ưu tiên cao hơn INTR, được điều khiển bởi lệnh SIM
TRAP (input)
Yêu cầu ngắt có mức độ ưu tiên cao nhất và không che được bằng phần mềm
Trang 9Tên Mức ưu
tiên
Địa chỉ ngắt (1)
Tín hiệu tác động
mức cao RST
RST
RST
5.5
(1) Vi xử lý cất PC vào ngăn xếp trước khi nhảy đến địa chỉ ngắt
(2) Phụ thuộc vào địa chỉ gọi ngắt
INT0
INT1
INT2
INT3
INT4
INT5
INT6
INT7
Đệm ba trạng thái
1 1 1
INTR\ INTA
Vi xử lý
1 1
D0 D1 D2 D3 D4 D5 D6 D7
A 8 A 15
AD 0 AD 7
74148
Trang 10Các ngắt được gọi bằng lệnh RST
INTERR UPT INT
RESTART
D7 D6 D5 D4 D3 D2
D1 D0
Địa chỉ bộ nhớ (Hex)
0 1 1 0 0
0 1 1 1 0 0 0 0
1 1 1 0 0
1
1 1 1
0 0 0 8
2 1 1 0 1
0
1 1 1
0 0 1 0
3 1 1 0 1
1 1 1 1 0 0 1 8
4 1 1 1 0
0 1 1 1 0 0 2 0
5 1 1 1 0
1
1 1 1
0 0 2 8
6 1 1 1 1
0
1 1 1
0 0 3 0
7 1 1 1 1
1 1 1 1 0 0 3 8
RESET IN\ (input)
Mức thấp đặt lại bộ đếm chương trình về 0000H, xóa FF cho phép ngắt và HLDA Bus địa chỉ, bus dữ liệu và bus điều khiển ở trạng thái Hi-Z trong lúc RESET
Trang 11RESET OUT (output)
Báo cho biết CPU đang ở trạng thái RESET, dùng để đặt lại toàn bộ hệ thống, ngõ ra tương thích TTL
X 1 , X 2 (input)
Ngõ đặt thạch anh, RC hoặc LC để tạo xung đồng hồ, X1 còn là ngõ vào của tín hiệu đồng hồ từ mạch bên ngoài
CLK - Clock (output)
Ngõ ra xung đồng hồ có tần số bằng phân nửa tín hiệu tại
X1
SID - Serial Input Data line (input)
Ngõ vào dữ liệu nối tiếp nạp vào bit 7 của bộ tích lũy khi có lệnh RIM
SOD - Serial Output Data line (output)
Ngõ ra dữ liệu nối tiếp được xác định bởi lệnh SIM
Vcc Nguồn nuôi +5V.
Vss Mass.
Cấu tạo 8085A:
Trang 12Cấu tạo bên trong của Vi xử lý 8085A có đầy đủ tất cả các khối của một Vi xử lý 8 bit đã được giới thiệu, nhưng có một số điểm khác biệt được thể hiện qua sơ đồ khối sau:
HOLD
ACCUMULATOR (8) TEMP REG(8)
FLAG (8) FLIP FLOP
DECODER AND MACHINE CYCLE ENCODING
ADDRESS BUFFER
DATA/ADDRESS BUFFER
B REG (8) REG (8)C D
REG (8)
E REG (8) H
REG (8)
L REG (8) STACK POINTER PROGRAM COUNTER INCREMENTER/
DECREMENTER
TIMING AND CONTROL CONTROL STATUS DMA RESET
8 BIT INTERNAL DATA BU S
X 1
X 2
CLOCK OUT
READY
RD\ WR\ ALE S 0 S 1 IO/M\ A 15 A 8
ADDRESS BUS
AD 7 AD 0
DATA/ADDRESS BUS
INTR INTA\ RST 7.5 RST 6.5 RST 5.5 TRAP SID SOD
HLDA
RESET IN RESET OUT INSTRUCTION REGISTER (8)