Mô-đun vào-ra INTR3 INTR2 INTR1 INTR0 Thanh ghi yêu cầu ngắt Mô-đun vào-ra Mô-đun vào-ra Mô-đun vào-ra
26 May 2012 IT3030 35
Hỏi vũng bằng phần mềm
CPU thực hiện phần mềm hỏi lần lượt từng mụ-đun vào-ra
Chậm
Thứ tự cỏc mụ-đun được hỏi vũng chớnh là thứ tự ưu tiờn CPU Mô-đun vào-ra INTR Cờ yêu cầu ngắt Mô-đun vào-ra Mô-đun vào-ra Mô-đun vào-ra
Hỏi vũng bằng phần cứng CPU Mô-đun vào-ra INTR Cờ yêu cầu ngắt Bus dữ liệu Mô-đun vào-ra Mô-đun vào-ra Mô-đun vào-ra INTA
26 May 2012 IT3030 37
Kiểm tra vũng bằng phần cứng (tiếp)
CPU phỏt tớn hiệu chấp nhận ngắt
(INTA) đến mụ-đun vào-ra đầu tiờn
Nếu mụ-đun vào-ra đú khụng gõy ra
ngắt thỡ nú gửi tớn hiệu đến mụ-đun kế tiếp cho đến khi xỏc định được mụ-đun gõy ngắt
Thứ tự cỏc mụ-đun vào-ra kết nối trong
Bộ điều khiển ngắt lập trỡnh được
PIC – Programmable Interrupt Controller
PIC cú nhiều đường vào yờu cầu ngắt cú qui định mức ưu tiờn
PIC chọn một yờu cầu ngắt khụng bị cấm cú mức ưu tiờn cao nhất gửi tới CPU
CPU Mô-đun Mô-đun vào-ra INTR3 INTR2 INTR1 INTR0 Mô-đun vào-ra Mô-đun vào-ra Mô-đun vào-ra PIC INTR INTA Bus dữ liệu
26 May 2012 IT3030 39
Đặc điểm của vào-ra điều khiển bằng ngắt
Cú sự kết hợp giữa phần cứng và phần
mềm
Phần cứng: gõy ngắt CPU
Phần mềm: trao đổi dữ liệu
CPU trực tiếp điều khiển vào-ra
CPU khụng phải đợi mụ-đun vào-ra
Ngắt của 80x86
Tổ chức kiểu vector ngắt
Số hiệu ngắt: n (00-FF)
Bảng vector ngắt: 256 x 4 byte = 1024bytes
00000 – 003FF
26 May 2012 IT3030 41
3. DMA (Direct Memory Access)
Vào-ra bằng chương trỡnh và bằng ngắt
do CPU trực tiếp điều khiển:
Chiếm thời gian của CPU
Tốc độ truyền bị hạn chế vỡ phải chuyển qua CPU
Để khắc phục dựng DMA
Thờm mụ-đun phần cứng trờn bus
DMAC (Controller)
DMAC điều khiển trao đổi dữ liệu giữa mụ- đun vào-ra với bộ nhớ chớnh
Sơ đồ cấu trỳc của DMAC
Bộ đếm dữ liệu
Logic điều khiển Thanh ghi địa chỉ Thanh ghi dữ liệu
Các đ-ờng dữ liệu
Các đ-ờng địa chỉ Yêu cầu bus Chuyển nh-ợng bus
Ngắt Đọc
Ghi
Điều khiển đọc Điều khiển ghi
Yêu cầu DMA Chấp nhận DMA
26 May 2012 IT3030 43
Cỏc thành phần của DMAC
Thanh ghi dữ liệu: chứa dữ liệu trao đổi
Thanh ghi địa chỉ: chứa địa chỉ ngăn
nhớ dữ liệu
Bộ đếm dữ liệu: chứa số từ dữ liệu cần
trao đổi
Logic điều khiển: điều khiển hoạt động
Hoạt động DMA
CPU “núi” cho DMAC
Vào hay Ra dữ liệu
Địa chỉ thiết bị vào-ra (cổng vào-ra tương ứng)
Địa chỉ đầu của mảng nhớ chứa dữ liệu nạp vào thanh ghi địa chỉ
Số từ dữ liệu cần truyền nạp vào bộ đếm dữ liệu
CPU làm việc khỏc
DMAC điều khiển trao đổi dữ liệu
Sau khi truyền được một từ dữ liệu thỡ:
nội dung thanh ghi địa chỉ tăng
nội dung bộ đếm dữ liệu giảm
Khi bộ đếm dữ liệu = 0, DMAC gửi tớn hiệu ngắt CPU để bỏo kết thỳc DMA
26 May 2012 IT3030 45
Cỏc kiểu thực hiện DMA
DMA truyền theo khối (Block-transfer DMA): DMAC sử dụng bus để truyền xong cả khối dữ liệu
DMA lấy chu kỳ (Cycle Stealing DMA): DMAC cưỡng bức CPU treo tạm thời từng chu kỳ
bus, DMAC chiếm bus thực hiện truyền một từ dữ liệu.
DMA trong suốt (Transparent DMA): DMAC nhận biết những chu kỳ nào CPU khụng sử dụng bus thỡ chiếm bus để trao đổi một từ dữ liệu.
Cấu hỡnh DMA (1)
Mỗi lần trao đổi một dữ liệu, DMAC sử dụng bus hai lần
Giữa mụ-đun vào-ra với DMAC
Giữa DMAC với bộ nhớ
CPU
. . .
DMAC I/O Memory