Bài giảng Cấu trúc máy tính - Chương 5: Input /Output Devices

Nguyên lý xuất nhập trong máy tính

Cách CPU giao tiếp với thiết bị I/O.

Ngắt quãng

DMA

Các thiết bị I/O :

Hard Disk,Floopy Disk, Printer, Keyboard,Mouse

 

ppt49 trang | Chuyên mục: Kiến Trúc Máy Tính | Chia sẻ: yen2110 | Lượt xem: 332 | Lượt tải: 0download
Tóm tắt nội dung Bài giảng Cấu trúc máy tính - Chương 5: Input /Output Devices, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
h ngắt cứng. 
Khi cần thiết chương trình có thể cấm ngắt cứng. 
Ngắt cứng được phát sinh bởI chip 8259 Interrupt Controler, phát tín hiệu cho CPU tạm đình chỉ sự thi hành của CT hiện hành và xử lý ngắt. 
23 
Chuong 5 : I/O Devices 
Hardware Interrupt 
Đăïc trưng của ngắt cứng là tín hiệu yêu cầu ngắt quãng INTR . 
Ngắt bàn phím là 1 điển hình ngắt cứng. 
Khi cần thiết chương trình có thể cấm ngắt cứng bằng lệnh CLI (Clear Interrupt Flag). 
24 
Chuong 5 : I/O Devices 
Bảng vector Interrupt 
Một vùng nhớ dài 1024 bytes đặt ở đầu bộ nhớ chính (0h – 400h) , chứa 256 phần tử, mỗi phần tử là 1 bộ 4 bytes đánh số từ 0h-FFh và được gọi là các vector ngắt , tạo thành bảng vector ngắt . 
Mỗi vector ngắt chứa địa chỉ của 1 chương trình phục vụ ngắt đặt trong bộ nhớ. 
Các chương trình phục vụ này liên lạc trực tiếp với các thiết bị I/O thông qua 1 số thanh ghi gọi là cổng (port) vào/ra. 
25 
Chuong 5 : I/O Devices 
Bảng Interrupt vector (cont) 
Khi 1 ngắt được yêu cầu, CPU không cần biết địa chỉ của chương trình con phục vụ ngắt này mà chỉ quan tâm đến số hiệu i của ngắt và số này chỉ đến phần tử thứ i của bảng interrupt vector . 
Ex : Khi ta gỏ vào 1 phím, 1 tín hiệu sẽ tạm thời ngắt ngang công việc của CPU. CPU sẽ tìm đến vector ngắt số 9 (của bàn phím). Vector này ở địa chỉ 0:24h. 
 CPU sẽ lấy ra địa chỉ của thủ tục chuyên phục vụ bàn phím (có sẵn trong ROM BIOS). 
 Thực hiện thủ tục này xong 
 Quay trở lại chỗ bị ngắt để tiếp tục thực hiện công việc dở dang 
26 
Chuong 5 : I/O Devices 
Những chỉ thị ngắt này lấy địa chỉ CTC ở đâu ? 
Ex : INT 21h 
Để tính địa chỉ của CTC phục vụ ngắt ta : 
21h * 4 = 84h  cần dùng 2 word (4 bytes)cho mỗI vector ngắt hay địa chỉ CTC. 
Địa chỉ 00A7:107C 
CS 
IP 
27 
Chuong 5 : I/O Devices 
Các vector ngắt trỏ đến các thủ tục có sẵn trong ROM BIOS 
Vector ngắt 
Địa chỉ 
Chức năng 
5 
14H 
In màn hình ra máy in. 
8 
20H 
Đo thời gian 
9 
24H 
Mã scan từ bàn phím 
10 
40H 
Video display 
11 
12 
13 
.. 
28 
Chuong 5 : I/O Devices 
Thí dụ minh họa Interrupt 
36 
09 
74 
00 
2A 
E4 
00 
F0 
5B 
E0 
00 
F0 
76 
2A 
00 
30 
5B 
E8 
00 
F0 
BẢNG VECTOR NGẮT 
Số ngắt 8 
4 
x 
00014h 
00018h 
0001Ch 
00024h 
4 bytes 
00020h 
29 
Chuong 5 : I/O Devices 
Các loại cổng vào ra 
Cổng nối tiếp (serial port ) : IBM PC cung cấp 2 cổng nối tiếp : COM1 hay AUX và COM2 
 2 cổng này ở địa chỉ 400h và 402h trong vùng dữ liệu BIOS. 
Cổng nối tiếp dùng cho modem điện thoại, một máy in nối tiếp hay nối trực tiếp với 1 máy tính khác. 
30 
Chuong 5 : I/O Devices 
Các loại cổng vào ra 
Cổng song song (parallel port ) : IBM PC cho phép sử dụng 3 cổng song song : PRN hay LPT1, LPT2 và LPT3. 
Địa chỉ của các cổng này lưu trong bộ nhớ tại 408, 40A, 40C. 
Tên cổng	địa chỉ	Nơi chứa địa chỉ 
COM1	3F8H	400	 
COM2	2F8H	402 
PRN	3BCH	408 
LPT2	378H	40A 
31 
Chuong 5 : I/O Devices 
DMA (Direct Memory Access) 
Kỹ thuật cho phép I/O device hay Bus điều khiển việc truyền dữ liệu vào/ra MT mà không thông qua CPU. 
 Nhờ thế CPU vẫn điều khiển các quá trình xử lý khác trong quá trình nhập xuất dữ liệu. 
DMA là gì ? 
32 
Chuong 5 : I/O Devices 
Thiết bị đầu cuối 
Keyboard : Thiết bị nhập đơn giản. 
tập hợp các công tắc bố trí thành 1 ma trận . 
Tín hiệu ngõ ra của ma trận công tắc này được đưa vào mạch tạo mã bàn phím. 
Mỗi tổ hợp phím xác định được ấn xuống mạch sẽ tạo ra 1 con số nhận diện cho phím đó, sau đó con số này sẽ gửi cho CPU. 
33 
Chuong 5 : I/O Devices 
Scan code của Bàn phím 
Chip 8048 xử lý điều khiển bàn phím : 
Theo dõi có phím nào được ấn không thì báo cho CPU thông qua ngắt 09h. 
Nếu có phím nào bị ấn quá ½s , 8048 sẽ lặp lại phím này sau những khoảng thời gian nhất định (typematic) 
Mỗi lần ấn 1 phím, các mạch điện tử của bàn phím sẽ tạo ra 1 mã dài 1 byte gọi là mã scan , đặc trưng cho vị trí trên bàn phím của phím tác động, giá trị nằm trong khoảng 1 ..83 
34 
Chuong 5 : I/O Devices 
Scan code của Bàn phím 
Khi nhả phím bị ấn, bàn phím tạo ra 1 mã scan khác với mã scan lúc phím bị ấn, có giá trị bằng mã trước cộng thêm 128 (80h) , nghĩa là đổi bit 7 của byte mã scan trước từ 0  1 
Ex : khi ta ấn chữ z , scan code là 44 
Nhả phím này ra bàn phím tạo mã scan 172 
Làm sao MT phân biệt được khi 1 phím được nhấn và khi phím đó được nhả ? 
35 
Chuong 5 : I/O Devices 
Bộ mã hoá quét trên ma trận 
4 line 
To 
1 line 
DEMUX 
2 line 
To 
4 line 
DECODER 
4 Bit Counter 
Q0 Q1 Q2 Q3 
COL1 
COL2 
COL3 
COL4 
KEY DOWN 
1 
2 
4 
8 
SCAN OSC 
ROW1 
ROW2 
ROW3 
ROW4 
0 1 1 0 
0 
1 
1 
0 
0 
1 
1 
0 
EN 
CO 
DER 
TO 
COM 
PU 
TER 
36 
Chuong 5 : I/O Devices 
HOẠT ĐỘNG NGẮT QUÃNG CỦA IO 
Khi 1 IO có yêu cầu giao tiếp với CPU (xuất nhập data), IO này sẽ kích khởi 1 đường tín hiệu IRQ của mình (Interrupt request) để báo là mình cần phục vụ. 
Các bước trong tiến trình ngắt quãng : 
 IO có yêu cầu CPU phục vụ, sẽ gửi tín hiệu IRQ đến Interrupt controller. 
 Nếu có nhiều I/O cùng yêu cầu ngắt , IntController sẽ giải quyết các yêu cầu bằng chế độ ưu tiên. 
 IntController phát 1 tín hiệu đến CPU xin ngắt, CPU sẽ hoàn tất lệnh đang thực hiện , cất giá trị của thanh ghi IP và CS vào stack để biết địa chỉ trở về sau khi phục vụ ngắt hoàn tất. 
37 
Chuong 5 : I/O Devices 
Liên lạc giữa bàn phím và CPU(cont) 
Cứ mỗi lần có 1 tác động ấn phím 
INT 9 sẽ đọc cổng 60H để biết tác động phím nào đã xãy ra (đọc mã scan tương ứng). 
INT 9h chuyển mã scan này thành mã dài 2 bytes , byte thấp chứa mã ASCII của phím đó, byte cao chứa mã scan. 
 mạch bàn phím gây ra ngắt 9 
 gọi 1 chương trình con phục vụ ROM BIOS. 
38 
Chuong 5 : I/O Devices 
HOẠT ĐỘNG NGẮT QUÃNG CỦA I/O 
 CPU yêu cầu mã nhận dạng để biết phục vụ cái gì? Nhờ mã này CPU vào bảng Interrupt vector để biết địa chỉ bắt đầu của chương trình con phục vụ ngắt nằm đâu trong bộ nhớ. 
 CPU chép địa chỉ bắt đầu của chương trình con phục vụ ngắt vào CS và thực thi mã lệnh của chương trình này. 
 Sau khi thực hiện xong tác vụ của ngắt , lệnh cuối cùng là INTR, CPU sẽ lấy giá trị cũ của CS và IP trong stack ra để tiếp tục thực thi các lệnh còn lại của ứng dụng 
39 
Chuong 5 : I/O Devices 
Thí dụ minh hoạ về interrupt 
ADAPTER CARD 
I 
R 
Q 
I 
M 
R 
PREORITY 
CONTROL 
CONTROL 
I 
S 
R 
INTERRUPT 
ENABLE 
FLAG 
CLI 
STI 
CPU 
INT 
IRQ5 
IRQ5 
DATA 
40 
Chuong 5 : I/O Devices 
Giải thích 
Card IO yêu cầu phục vụ bằng cách đưa đường tín hiệu IRQ trên card lên mức 1. 
Đường IRQ nối với bộ điều khiển ngắt, yêu cầu này sẽ làm bật bit 5 của thanh ghi IRR. 
Interrupt controller sẽ so sánh IRR với thanh ghi mặt nạ IMR để xem hiện tại có cho phép IRQ5 hay không. Nếu cho phép thì sẽ kiểm tra tiếp. 
Kiểm tra xem có 1 ngắt có ưu tiên cao hơn IRQ5 hay không. Nếu có thì IRQ5 phải chờ cho đến sau khi ngắt ưu tiên thực hiện xong. 
41 
Chuong 5 : I/O Devices 
Giải thích (cont) 
Lệnh EOI sẽ xóa bit 5 trong thanh ghi ISR để IntController có thể tiếp nhận 1 yêu cầu khác. 
Chương trình phục vụ ngắt phát lệnh IRET kết thúc. CPU phục hồi giá trị CS và IP từ Stack để có thể tiếp tục thực hiện quá trình trước đó. 
42 
Chuong 5 : I/O Devices 
Giải thích (cont) 
Interrupt controller đưa đường tín hiệu INT lên mức 1 để báo cho CPU biết có ngắt quãng. 
CPU nhận tín hiệu INT, sẽ báo lại cho Interrupt controller tín hiệu đồng ý bằng cách đưa tín hiệu INTA về mức 0. 
Sau khi CPU chấp thuận ngắt, Interrupt controller gửi data cho CPU với trị 0Dh (giả sử IRQ5 tương ứng với ngắt 0Dh). 
Bật bit 5 của thanh ghi đang phục vụ ISR, xoá bít 5 của IRR vì IRQ5 đã được giải quyết. 
43 
Chuong 5 : I/O Devices 
Giải thích (cont) 
CPU tạm dừng quá trình hiện hành, lưu giá trị CS và IP vào stack. Nhảy đến địa chỉ 0000:4*0Dh , lấy địa chỉ offset của chương trình con phục vụ ngắt 0Dh. 
Nhảy đến nơi chứa các lệnh của ngắt này và thực thi các lệnh tương ứng. 
Ơû cuối chưong trình phục vụ ngắt, CPU gửi giá trị báo kết thúc phục vụ ngắt EOI (End of Interrupt =20h) cho IntControler. 
44 
Chuong 5 : I/O Devices 
Hard Disk 
Track 
Cylinder 
Sector 
Cluster 
Các thuật ngữ 
track 
sector 
45 
Chuong 5 : I/O Devices 
Hard Disk 
46 
Chuong 5 : I/O Devices 
Hệ thống tập tin của DOS và điều khiển đĩa 
Bảng FAT : (File Allocation Table) 
 Nằm ngay Boot Sector (sector 0). 
 Bảng FAT được tạo ra khi ta partion đĩa cứng 
 Nội dung Bảng FAT mô tả trạng thái của các cluster còn tốt hay đã hư (vật lý), đã dùng hay chưa dùng 
47 
Chuong 5 : I/O Devices 
I/O là gì ? 
Mô tả tiến trình phục vụ ngắt quãng. 
Tính toán vị trí của vector ngắt của interrupt 20h. 
Viết các lệnh sử dụng ngắt 21h , hàm 9 để hiển thị ngày hiện tại. 
Bảng FAT là gì ? 
Summary slide 
48 
Chuong 5 : I/O Devices 
Summary slide 
Thế nào là ngắt nội. Cho 1 thí dụ minh họa. 
Khi lập trình, ta thường gọi 1 chương trình phục vụ xuất nhập, lúc đó ta sử dụng loại ngắt nào. Cách gọi. 
Làm sao để phân biệt ngắt cứng và ngắt mềm. 
Khi dùng INT 21h để hiển thị 1 ký tự ra màn hình, thanh ghi nào chứa ký tự sẽ hiển thị?. 
49 
Chuong 5 : I/O Devices 

File đính kèm:

  • pptbai_giang_cau_truc_may_tinh_chuong_5_input_output_devices.ppt
Tài liệu liên quan