Cấp vi lập trình Mục tiêu Nghiên cứu các vấn đề: - Đơn vị xử lý trung tâm CPU - Cách một chip CPU giao tiếp với bộ nhớ và các thiết bị ngoại vi... Cấp logic số Chip vi xử lý Giao ti
Trang 1Cấp vi lập trình
Mục tiêu
Nghiên cứu các vấn đề:
- Đơn vị xử lý trung tâm CPU
- Cách một chip CPU giao tiếp với bộ nhớ và các thiết bị
ngoại vi
Trang 2Cấp logic số
Chip vi xử lý
Giao tiếp CPU với các phần còn lại thông qua các chân:
- Xuất tín hiệu từ CPU
- Nhận tín hiệu từ bên ngoài
- Thực hiện nhận/xuất tín hiệu
Các chân gồm 3 loại: Địa chỉ / Dữ liệu / Điều khiển
Chân địa chỉ Chân điều khiển Chân dữ liệu
1 Đặt địa chỉ bộ nhớ của chỉ thị
lên chân địa chỉ 2 Thông báo cho bộ nhó yêu cầu đọc qua đường điều khiển
3 Bộ nhớ đưa dữ liệu lên chân dữ liệu và xác lập tín hiệu hoàn tất
4 Vi xử lý nhận và thực thi chỉ thị
Trang 3Cấp logic số
Chip vi xử lý
Hai thông số chính để xác định hiệu suất một bộ vi xử lý:
* Số chân địa chỉ:
- Một chip m chân địa chỉ có thể địa chỉ hóa 2m byte bộ nhớ
- Giá trị thường dùng của m là 16, 20, 24, 32 và 36
* Số chân dữ liệu:
- Một chip n chân dữ liệu, có thể đọc hoặc ghi một từ (word) n-bit với một thao tác đơn
- Giá trị thường dùng của n là 8, 16, 32 và 64
Trang 4Cấp logic số
Chip vi xử lý
Các loại chân khác của bộ vi xử lý:
- Chân cấp nguồn
- Chân tiếp đất
- Chân tín hiệu clock
- Các chân điều khiển:
* Điều khiển Bus
* Xử lý ngắt
* Phân xử Bus
* Đồng xử lý
* Trạng thái
* Khác
Trang 5Cấp logic số
Bus
- Bus là một nhóm các đường dẫn chung giữa nhiều thiết bị
- Phân loại theo mục đích:
* System bus: kết nối bộ nhớ và I/O
* Local bus: kết nối các bộ đồng xử lý/bộ nhớ cục bộ
Trang 6Cấp logic số
Phương thức làm việc của Bus
Khái niệm:
- Thiết bị chủ: khởi động việc truyền trên bus
- Thiết bị phụ thuộc: chờ các yêu cầu được gửi qua bus
Đĩa Gửi yêu cầu nhận dữ liệu đọc từ đĩa Bộ nhớ
- Bus có 3 loại: địa chỉ / dữ liệu / điều khiển
- Tốc độ và băng thông của bus phụ thuộc:
* Đồng bộ bus
* Cơ chế phân xử bus
* Cơ chế xử lý ngắt
* Cơ chế xử lý lỗi
Trang 7Cấp logic số
Bus đồng bộ
- Có một đường cấp tín hiệu dạng sóng vuông gọi là xung
clock
- Các hoạt động trên bus (chu kỳ bus) đều chiếm một số
nguyên chu kỳ xung clock
- Các chu kỳ bus giống nhau giữa các cặp thiết bị
Bus không đồng bộ
- Chu kỳ bus có chiều dài bất kỳ
- Các chu kỳ bus không giống nhau giữa các cặp thiết bị
Trang 8Cấp logic số
Bus đồng bộ
T1
4 MHz,250 nsec
Chu kỳ đọc
∅
Địa chỉ Dữ liệu MREQ
RD
Chu kỳ T1
bắt đầu
CPU đặt địa
chỉ bộ nhớ
lên đường địa
chỉ
T AD
- Sau thời gian T AD =110 nsec đường địa chỉ ổn định giá trị mới
- MREQ và RD được thiết lập
- MREQ và RD cần T ML và T RL nsec để ổn định địa chỉ
- MREQ cho biết bộ nhớ đang được truy xuất
- RD xác nhận việc đọc dữ liệu từ bộ nhớ
T ML
T RL
Suốt quá trình chu kỳ T2, Bộ nhớ giải mã địa chỉ và đưa dữ liệu lên Bus
T DS
Trước khi CPU đọc dữ liệu, cần có T DS = 50 nsec đảm bảo ổn định dữ liệu
T MH
T RH
T DH
- T MH và T RH xác định thời gian MREQ và RD không còn xác lập sau khi CPU đọc dữ liệu
- T DH xác định thời gian duy trì dữ liệu trên bus sau RD không còn xác lập
Trang 9Cấp logic số
Phân xử Bus
* Phân xử Bus tập trung (Phương pháp độ ưu tiên 1 mức)
Bộ phân xử
Bus
Yêu cầu Bus Cấp Bus
Nhiệm vụ: quyết định thiết bị
kế tiếp là thiết bị chủ 1 Phát sinh yêu cầu Bus
2 Bộ phân xử xác lập
đường cấp bus
3 Thiết bị gần nhất kiểm
tra có phải chính nó đưa
yêu cầu Bus không?
Đúng: thiết bị tiếp quản bus và không truyền tiếp tín hiệu xuống thiết bị kế tiếp
Trang 10Cấp logic số
Phân xử Bus
* Phân xử Bus tập trung (Phương pháp độ ưu tiên n mức)
Bộ phân
xử Bus
Yêu cầu Bus mức 1
Cấp Bus 1
Yêu cầu Bus mức 2 Cấp Bus 2
Trang 11Cấp logic số
Phân xử Bus
* Phân xử Bus không tập trung (Mô hình Multibus)
Yêu cầu Bus Trạng thái (Busy)
In Out
1
In Out
2
In Out
3
In Out
4 +5v
Đường phân xử bus
Khi không có yêu cầu bus,
đường phân xử truyền tới tất
cả các thiết bị
1 Để chiếm bus: Kiểm tra bus có rảnh không và tìn hiệu ngỏ vào IN xác lập được không?
2 IN xác lập OUT không xác lập, thiết bị trở thành thiết bị chủ xác lập đường BUSY
Trang 12Cấp logic số
Xử lý ngắt
* Xử lý ngắt (Ví dụ: Chip 8259A)
I/O 1 I/O 2
I/O 3 I/O 4
INT
ngắt
8259A
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
INTA
RD
WR D0-D7
Nối 8 chip điều khiển I/O với 8 ngõ vào yêu cầu ngắt IRx
Chân yêu cầu ngắt
Chân trả
lời ngắt
1 Thiết bị gây ngắt xác lập tín hiệu IRx
2 8259A xác lập tín hiệu ngắt INT, điều khiển chân yêu cầu ngắt
3 Nếu có thể, CPU gửi xung INTA trở lại 8259A
4 8259A xuất số ngõ vào lên bus dữ liệu
5 CPU tạo các
vector ngắt,
tìm địa chỉ thủ
tục ngắt và
thực thi trình
phục vụ ngắt
Trang 13Cấp logic số
Chip 8088 (Intel)
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
- Có 40 chân
- 20 chân địa chỉ A0-A19 giữ địa chỉ bộ nhớ và I/O
- 8 chân dữ liệu D0-D7 ghép cùng chân A0-A7
- 4 chân trạng thái S3-S6 ghép chung A16-A19
- Chân 33 xác lập chế độ tôi thiểu/tối đa
- 3 chân trạng thái S0-S2 xác định loại chu kỳ bus
- Chân 32 RD: CPU đang ở chu kỳ đọc bộ nhớ
- Chân 29 Lock: ngăn cản thiết bị chủ khác
không được sử dụng bus
- Chân 22 Ready: tín hiệu sẵn sàng đưa dữ liệu
lên bus
- Chân 18 INTR: tín hiệu ngắt
- 2 chân 30,31: yêu cầu bus và cấp bus (phân xử bus)
- Chân 21 Reset: thiết lập lại trạng thái cho CPU
GND A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
A15 A16 A17 A18 A19
D7 D6 D5 D4 D3 D2 D1 D0
S3 S4 S5 S6 MN/MX
S2 S1 S0
RD
LOCK
READY
INTR
RQ/GT0 RQ/GT1
RESET
Chân ra vật lý
Trang 14Cấp logic số
Chip 8088 (Intel)
Chuyển đổi
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
A14
A13
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
A15 A16 A17 A18 A19
D7
D6
D5
D4
D3
D2
D1
D0
S3 S4 S5 S6 MN/MX
S2 S1 S0
RD
LOCK
READY
INTR
RQ/GT0 RQ/GT1
RESET
Chân ra vật lý
8088
Địa chỉ 20
Chân ra logic
Dữ liệu 8
RD LOCK READY
Bus Control
INTR
Phân xử bus
2
Trạng thái
4
MN/MX RESET
∅ +𝟓𝒗
Trang 15Cấp logic số
Chip 8088 (Intel)
8088
Địa chỉ 20
Chân ra logic
Dữ liệu 8
RD LOCK READY
Bus Control
INTR
Phân xử bus
2
Trạng thái
4
MN/MX RESET
∅ +𝟓𝒗
S2 S1 S0 Loại chu kỳ bus
0 0 0 Trả lời ngắt
0 0 1 Đọc cổng I/O
0 1 0 Ghi cổng I/O
0 1 1 Dừng
1 0 0 Tìm-nạp chỉ thị
1 0 1 Đọc bộ nhớ
1 1 0 Ghi bộ nhớ
1 1 1 Giải phóng bus
Trang 16Cấp logic số
Bus IBM PC tương thích với chip 8088 (Intel)
- Được khắc trên board mạch chủ (mother board)
- Có 62 đường, bao gồm:
* Loại tín hiệu từ bus vào board mẹ (In)
* Loại tín hiệu tạo ra từ board mẹ xuất lên bus (Out)
- Tần số tín hiệu xung clock (OSC) cua bus = 14.31818 MHz
Vì tần số hoạt động tối đa của 8088 là 5 MHz
Chia 3 tần số OSC để có tín hiệu 4.77 MHz gọi là xung clock chủ (CLK)
Trang 17Cấp logic số
Bus IBM PC tương thích với chip 8088 (Intel)
Các tín hiệu trên IBM PC Bus
Tín hiệu Số đường In Out Chức năng OSC 1 x Tín hiệu clock 70 nsec (14.31 Mhz)
CLK 1 x Tín hiệu clock 210 nsec (4.77 Mhz)
RESET 1 x Trạng thái ban đầu CPU
A0-A19 20 x 20 đường địa chỉ
D0-D7 8 x x 8 đường dữ liệu
IO CHCHK 1 x Kiểm tra kênh I/O (lỗi chẳn lẻ)
IO CH RDY 1 x Kênh I/O sẵn sàng
Trang 18Cấp logic số
Bus IBM PC tương thích với chip 8088 (Intel)
Bộ tạo xung
8284A
14.31 Mhz
Bộ điều khiển
ngắt 8259A
CLK RESET
A0-A19
8088 CPU
D0-D7 INT
S0-S2 READY
IBM PC Bus
OSC CLK RESET
74LS373 Bộ chốt
20
A0-A19
74LS245
8288 Điều khiển bus
MEMR MEMW IOR IOW
IO CH RDY IRQ2-IRQ7