Trắc nghiệm, bài giảng pptx các môn chuyên ngành Y dược và các ngành khác hay nhất có tại “tài liệu ngành Y dược hay nhất”; https://123doc.net/users/home/user_home.php?use_id=7046916. Slide bài giảng môn cấu trúc máy tính ppt dành cho sinh viên chuyên ngành công nghệ - kỹ thuật và các ngành khác. Trong bộ sưu tập có trắc nghiệm kèm đáp án chi tiết các môn, giúp sinh viên tự ôn tập và học tập tốt môn cấu trúc máy tính bậc cao đẳng đại học chuyên ngành công nghệ - kỹ thuật và các ngành khác
Trang 1Bài 9
VÀO RA BẰNG NGẮT
Trang 21 CÁC PHƯƠNG PHÁP VÀO/RA
• Phương pháp hỏi vòng (Polling)
– CPU thăm dò trạng thái của ngoại vi qua cổng trạng thái.
– Quá trình thăm dò được thực hiện tuần hoàn
– Ưu điểm: dễ tổ chức.
– Nhược điểm: tốn thời gian của CPU.
• Phương pháp ngắt (Interrupt)
CPU thực hiện chương trình, không thăm dò trạng thái ngoại vi.
Khi cần trao đổi dữ liệu, ngoại vi gửi y/c ngắt cho CPU
CPU ngắt khỏi chương trình chính để phục vụ ngoại vi và quay trở
về chương trình chính sau khi trao đổi xong.
Trang 3a) Phương pháp hỏi vòng
• Vào/ra dữ liệu được CPU thực hiện thông qua các cổng.
• CPU thăm dò trạng thái sẵn sàng của cổng
thông qua các tín hiệu bắt tay (Handshake
Signals).
• Các tín hiệu thăm dò lấy từ các mạch phối ghép được thiết kế.
Trang 4Ví dụ vào/ra bằng thăm dò
• Sơ đồ ghép nối máy in:
80 88
D7
D0-INTR
D0-D7
82 55
STB ACK D0- D7
PC7
PC6PA0-PA7
PC3INTRA
Mỏy in
Trang 5Chế độ 1: Ra dữ liệu với khả năng bắt
tay
Port A output OBFA ACKA
INTRA
Cổng A với các tín hiệu bắt tay
OBFB ACKB
INTRB
Cổng B với các tín hiệu bắt tay
D7 D6 D5 D4 D4 D2 D1 D0
Port B Output Port B Mode 1 PC4,5:
1=Input 0= Output
Từ trạ ng thái - Mode 1 Output
D7 D6 D5 D4 D3 D2 D1 D0
INTEA do PC6 điều khiển ở mode BSR INTEB do PC2 điều khiển ở mode BSR
Sơ đồ đầu ra chế độ 1 của 8255A
Từ điều khiển - Mode 1 Output
INTR ACK Output
Biểu đồ thời gian lối ra chế độ 1
OBFA INTA INTRA INTEB OBFB INTRB
Mode I/O Port A mode 1 Port A Output
Port B output
PA7 PA0 INTEA
PC7 PC6
PC3
WR
INTEB
A PC1PC2
PC0
PC4,5
OBF WR
I/O I/O
Trang 6Ch ¬ng tr×nh in th«ng b¸o:
“Hello! I print a message”
§o¹n d÷ liÖu:
CWP EQU 303H ;dia chi thanh ghi dieu khien
Trang 7§o¹n ch ¬ng tr×nh:
MOV AL,10100000B ;tu dieu khien: PA ra, che do 1
MOV AL,00001101B ;lap PC6=1 cho INTEa
MOV SI,OFFSET MY_DATA ;SI=dia chi chuoi du lieu
OUT DX,AL ;gui ky tu cua chuoi toi may in
INC SI ;tang con tro du lieu
Thăm dò trạng thái cổng máy in
Trang 8b) Vµo/ra b»ng ng¾t
• Ngắt: CPU tạm dừng công việc hiện tại để trao
đổi dữ liệu.
• Sử dụng để tận dụng khả năng xử lý của CPU
cho nhiều công việc
• CPU 8088 có 2 chân vào ngắt: NMI (không
che được) và INTR (che được).
• Mạch hỗ trợ ngắt cứng: Interrupt Controller
8259 có 8 đầu vào ngắt.
Trang 9– 2 byte địa chỉ segment (để gán cho CS)
– 2 byte địa chỉ offset (để gán cho IP)
Trang 10Bảng vector ngắt
• Chứa các địa chỉ lệnh đầu tiên (vector ngắt) của chương trình con phục vụ ngắt.
• Nằm ở đầu bộ nhớ: từ 00000 đến 003FFh
Trang 11Xem bảng vector ngắt bằng Debug
Ô nhớ chứa vector ngắt INTnn có địa chỉ: nn x 4
Ví dụ: địa chỉ ngắt INT0 là: 00A7:1068
INT1 là: 0070:018B INT2 là: 03A0:0016
…
INT0F là: 020E:03FF
Trang 12Chương trình con phục vụ ngắt (ISR-Interrupt Service Rountine)
• Mỗi ngắt có 01 chương trình con ISR.
• Mỗi ISR có địa chỉ CS:IP của lệnh đầu lưu trong Bảng vector ngắt.
• Khi ngắt được kích hoạt chương trình ISR
được gọi để phục vụ ngắt.
• Khi bị ngắt, CPU cất CS:IP hiện thời vào Stack rồi gán cho CS:IP giá trị lấy từ Bảng vector ngắt
Trang 13Chạy chương trình ISR
• Vào Command Prompt bằng lệnh cmd
• Nhập Debug, nhấn Enter
• Trong môi trường Debug nhập 2 lệnh assembler: -a
• Chạy chương trình: -G
Trang 142 NGẮT TRONG MÁY TÍNH IBM PC
• Ngắt cứng: phát sinh từ mạch của các ngoại vi
Ví dụ: INT 9h (ngắt từ bàn phím), INT 0Bh (ngắt từ COM2),
• Ngắt mềm: kích hoạt bởi lệnh phần mềm
Ví dụ: INT 21h (ngắt của DOS), INT 10h (ngắt của BIOS, phục vụ
Video),
• Ngắt nội bộ:
– INT 00: phép chia cho 0 (Divide by 0)
– INT 01: chạy từng lệnh (Trap mode: cờ TF=1).
– INT 02: ngắt không che được (input NMI=1).
– INT 03: điểm dừng (Halt).
– INT 04: tràn số có dấu (cờ Over Flow OF=1)
Trang 15Ngắt và thanh ghi cờ
Cờ ngắt IF đ ợc dùng để che ngắt cứng tới chân INTR:
đều bị cấm
cho phép.
lập cờ ngắt STI (set interrupt flag) dùng để
R = dự trữ (reserved) SF = cờ dấu (sign flag)
U = ch a xác định (undefined) ZF = cờ không (zero flag)
OF = cờ tràn (overflow flag) AF = cờ nhớ phụ (auxiliary carry flag)
DF = cờ h ớ ng (direction flag) PF = cờ chẵn lẻ (parity flag)
IF = cờ ngắt (interrupt flag) CF = cờ nhớ (carry flag)
TF = cờ bẫy (trap flag)
Hình 11.2 Thanh ghi cờ
Trang 16Quá trình thực hiện một ngắt
1 Cất thanh ghi cờ (FR) vào ngăn xếp và giảm SP đi 2
2 Xoá hai cờ cho phép ngắt IF và cờ bẫy TF (IF=0 và TF=0) Tuỳ thuộc vào thủ tục ngắt mà có thể huỷ che chân INTR bằng lệnh STI
3 Cất CS hiện hành vào ngăn xếp và giảm SP đi 2.
4 Cất IP hiện hành vào ngăn xếp và giảm SP đi 2.
5 Nhân số hiệu INT với 4 để xác định địa chỉ vật
lý của ngắt trong bảng vec tơ ngắt, qua đó có đ ợc
CS và IP của ch ơng trình con phục vụ ngắt ISR.
6 Với CS:IP mới, CPU bắt đầu nhận và thực hiện các lệnh của ch ơng trình con phục vụ ngắt ISR.
7 Lệnh cuối cùng của ISR là lệnh IRET Lệnh này thông báo để CPU tải lại giá trị IP, CS và FR từ ngăn xếp và nhờ vậy CPU có thể chạy tiếp ch ơng trình tại nơi nó
đã bị ngắt
Trang 173.Mạch điều khiển ngắt khả
trình 8259
Chức năng: hỗ trợ ngắt cứng, mở rộng
số ngắt cứng cho CPU, sắp xếp thứ tự u tiên.
Sơ đồ khối: Link
• 4 từ khởi tạo ICW1-ICW4
(Initialization Command Word)
• 3 từ điều khiển hoạt động
OCW1-OCW3 (Operation Command Word)
Trang 18Lo gic điều khiển
ISR PR IRR
IMR
Internal Bus
IR0-IR7
Bộ đệm dữ liệu
Khối logic (đọc ghi)
Bộ đệm cascad Các yêu cầu ngắt
Trang 19Hình 2.24 Bộ điều khiển ngắt lập trình 8259A
Vcc A0 INTA IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 INT
SP / EN CAS 2
D0-D7
RD
WR
CS A0 INT INTA
CS0 - CS2 SP/EN
Ghi chú:
IMR : Thanh ghi mặt nạ để che hay không che ngắt ISR : L u ngắt đ ợ c phục vụ
Trang 20§Þa chØ cña ICW vµ OCW
Trang 21Ví dụ tìm địa chỉ ICW, OCW
Ví dụ 1:
Tìm địa chỉ của ICW1 - ICW4 nếu chọn chíp (CS) đ ợc kích hoạt bởi A7 - A1 = 0010000X
Giải:
Nh trên cho thấy 20H là địa chỉ cổng của ICW1 và 21H là
của ICW2, ICW3 và ICW4
Trang 22Các câu hỏi liên quan
Câu 1: Các phương pháp phục vụ vào/ra của CPU? Ưu nhược điểm của chúng? Trình bày
về bảng vector ngắt: chức năng, vị trí trong bộ nhớ? Vec-tơ ngắt (địa chỉ đoạn và độ lệch) của chương trình con phục vụ ngắt INT 14h nằm ở những ngăn nhớ nào trong bảng vec-tơ ngắt?
Trang 23Các câu hỏi liên quan
Câu 1: Các phương pháp phục vụ vào/ra của CPU? Ưu nhược điểm của chúng? Trình bày
về bảng vector ngắt: chức năng, vị trí trong bộ nhớ? Vec-tơ ngắt (địa chỉ đoạn và độ lệch) của chương trình con phục vụ ngắt INT 14h nằm ở những ngăn nhớ nào trong bảng vec-tơ ngắt?
Trả lời: (tiếp)
• Quản lý bằng phương pháp ngắt: Mỗi thiết bị vào/ra được gán với một tín hiệu ngắt khi ngoại vi yêu câu được phục vụ, nó sẽ phát tín hiệu IRQ đến mạch điều khiển ngắt và qua thiết bị này thông báo cho CPU biết yêu cầu được phục vụ Khi CPU nhận được
thông báo này nó sẽ cất toàn bộ trạng thái hiện thời (địa chỉ CS:IP, thanh ghi RF) vào trong ngăn xếp và căn cứ vào số hiệu ngắt để xác định được địa chỉ của chương trình con phục vụ ngắt CPU sẽ thực hiện chương trình con phục vụ ngắt đáp ứng yêu cầu của ngoại vi tương ứng Sau khi chương trình con phục vụ ngắt kết thúc, trạng thái của CPU trước đó sẽ được hồi phục và CPU lại tiếp tục quá trình trước đó Ưu điểm của phương pháp này là đáp ứng tức thời yêu cầu của ngoại vi Trên máy tính IBM PC và tương thích hình thức quản lý ngoại vi bằng ngắt được áp dụng
• Vector ngắt là một vùng nhớ có độ dài 1024 bytes (1 KB) được quy định nằm ở địa chỉ
từ 00000h – 003FFh dùng để chứa địa chỉ của các chương trình con phục vụ ngắt
Vecter ngăt gồm có 256 phần tử mỗi phần tử gồm có 4 byte (tương đương 1 KB bộ
nhớ) được dùng để chứa địa chỉ đoạn và độ lệch của chương trình con phục vụ ngắt (hai byte thấp chứa địa chỉ độ lệch và 2 byte cao chứa địa chỉ đoạn)
Trang 24Các câu hỏi liên quan
Câu 1: Các phương pháp phục vụ vào/ra của CPU? Ưu nhược điểm của chúng? Trình bày
về bảng vector ngắt: chức năng, vị trí trong bộ nhớ? Vec-tơ ngắt (địa chỉ đoạn và độ lệch) của chương trình con phục vụ ngắt INT 14h nằm ở những ngăn nhớ nào trong bảng vec-tơ ngắt?
Trả lời: (tiếp)
• Hệ điều hành của máy tính IBM quy định có 256 ngắt được đánh số từ 00h – FFh do đó mỗi phần tử của vector ngắt sẽ chứa địa chỉ của 1 chương trình con phục vụ ngắt Địa chỉ đầu tiên của mỗi phần tử ngắt trong bảng vector ngắt được xác định gấp 4 lần số hiệu ngắt
• Với ngắt có số hiệu là 14h thì địa chỉ đoạn và độ lệch của chương trình con phục vụ ngắt này sẽ được chứa trong các ô nhớ ở bảng vector ngắt như sau:
• Địa chỉ đầu tiên của phần tử ngắt bằng 4 lần số hiệu ngắt: 14h x 4 = 50h
• Như vậy ô nhớ có địa chỉ 00050h và 00051h sẽ chứa địa chỉ độ lệch của chương trình con phục vụ ngắt 14h
• Ô nhớ 00052h và ô nhớ 00053h chứa địa chỉ đoạn của chương trình con phục vụ ngắt có số hiệu 14h
Trang 25Các câu hỏi liên quan
Câu 2: Định nghĩa ngắt và phân loại ngắt? Vector ngắt là gì, gồm mấy byte? Nội dung của
nó chứa thông tìn gì? Trình bày cách xác định địa chỉ đoạn và độ lệch của chương trình con phục vụ ngắt có số hiệu ngắt là INT 17h?
Trả lời:
• Định nghĩa ngắt: Ngắt là sự đáp ứng các sự kiện bên ngoài nhằm thông báo cho CPU biết thiết bị cần phục vụ
• Ngắt cứng: (Hardware Interrupt) được phát sinh bởi các mạch của máy tính khi đáp lại
1 sự kiện nào đó Nó được dùng để điều khiển các thiết bị ngoại vi quan trọng trên máy tính như bàn phím, ổ đĩa, máy in v.v Các ngắt này được vi mạch điều khiển ngắt 8259A quản lý
Trang 26Các câu hỏi liên quan
Câu 2: Định nghĩa ngắt và phân loại ngắt? Vector ngắt là gì, gồm mấy byte? Nội dung của
nó chứa thông tìn gì? Trình bày cách xác định địa chỉ đoạn và độ lệch của chương trình con phục vụ ngắt có số hiệu ngắt là INT 17h?
có thể đặt các ngắt bẫy để kiểm tra
• Vector ngắt là gì, gồm mấy byte? Xem trả lời ở câu 1
Trang 27Các câu hỏi liên quan
Câu 3: Thế nào là ngắt cứng và ngắt mềm Hệ điều hành của máy tính IBM cho phép
quản lý tối đa được bao nhiêu ngắt cứng và ngắt mềm Khi một ngắt được kích hoạt, CPU xác định địa chỉ của chương trình con phục vụ ngắt đó như thế nào? (cụ thể cho trường hợp ngắt mềm) Xác định các ô nhớ chứa thông tin cho phép xác định địa chỉ logic của chương trình con phục vụ ngắt có số hiệu ngắt là 18h
• Với ngắt cứng: HĐH sẽ xác định số hiệu của ngắt tương ứng thông qua việc đọc nội dung của thanh ghi ICW2 (Initialization Command Word 2- từ lệnh khởi tạo 2) trên vi mạch quản lý ngắt sau đó HĐH lấy số hiệu ngắt đó nhân với 4 để xác định được vị trí của 4 ô nhớ trong bảng vector ngắt nơi chứa địa chỉ đoạn và độ lệch của chương trình con phục vụ ngắt
Trang 28Các câu hỏi liên quan
Câu 4: Nêu định nghĩa ngắt, phân loại ngắt, chương trình con phục vụ ngắt và vec-tơ
ngắt? Qui trình thực hiện ngắt của CPU khi có một ngắt được kích hoạt?
Câu 5: Định nghĩa vai trò của ngăn xếp và thanh ghi con trỏ ngăn xếp - SP khi thực hiện
thao tác cất giữ và hồi phục số liệu vào trong Stack (ngăn xếp) Khi khởi động máy tính SP được thiết lập giá trị như thế nào Khi nào thì SP có giá trị tăng và khi nào thì có giá trị giảm đi
Trả lời:
• Ngăn xếp là một vùng nhớ có độ dài 64 KB (tương đương 1 segment) được máy tính sử dụng để cất tình trạng tạm thời của hệ thống gồm trạng thái của các thanh ghi RF, CS, IP khi thực hiện các thao tác ngắt và là nơi cất giữ và hồi phục thông tin các thanh ghi đa năng của BVXL khi thực hiện các lệnh Push và Pop.
• Thanh ghi con trỏ ngăn xếp (SP) là thanh ghi có độ dài 16 bits có chức năng luôn trỏ đến đỉnh của ngăn xếp
• Đỉnh của ngăn xếp là vị trí của ô nhớ mà SP trỏ đến, tại đó sẽ diễn ra thao tác phục hồi và cất giữ
số liệu khi máy tính thực hiện các thao tác ngắt và các lệnh PUSH và POP.
• Địa chỉ của đỉnh ngăn xếp là: SS:SP khi khới động máy tính IBM PC và tương thích giá trị của
thanh ghi SP bao giờ cũng được nạp giá trị lớn nhất FFFFh
• Cấu trúc của ngăn xếp là cấu trúc LIFO (Vào sau/ra trước) do vậy khi máy tính thực hiện quá trình cất giữ trạng thái và thực hiện các lệnh cất giữ PUSH thì giá trị của ngăn xếp được giảm đi và khi máy tình thực hịên quá trình hồi phục trạng thái hay các lệnh POP thì giá trị của ngăn xếp được tăng lên Một thao tác cất giữ hay hồi phục thông tin khiến cho giá trị của thanh ghi SP thay đổi 2 đơn vị Tương đương với việc máy tính cất giữ hay hồi phục được 2 byte thông tin.