Vào/Ra theo phương pháp DMA

Một phần của tài liệu Giáo trình ghép nối với máy vi tính (Trang 35 - 36)

1 5 6 Ο Ο Ο Ο Ο

1.4.4Vào/Ra theo phương pháp DMA

Có nhiều quá trình trao đổi dữ liệu đòi hỏi tốc độ vào/ra dữ liệu nhanh hơn khả năng vào/ra dữ liệu của các phương pháp vào/ra dữ liệu bằng chương trình nhưđã trình bày ở trên, ví dụ quá trình chuyển dữ liệu từ các ổđĩa vào bộ nhớ và ngược lại. Lúc này có thể sử dụng phương pháp vào/ra dữ liệu kiểu DMA, là quá trình vào/ra dữ liệu trực tiếp giữa bộ nhớ và thiết bị ngoại vi không qua CPU.

Trong quá trình DMA việc chuyển dữ liệu không được điều khiển bởi CPU mà bởi một thiết bị phần cứng là bộđiều khiển DMAC (DMA Controller).

Sơđồ quá trình như sau:

HLDA

HOLD DMAC I/O MEM

HACKHRQ HRQ DACK DRQ DACK DRQ CPU Hình 1.20 Vào ra dùng DMA

DMAC được xác lập chếđộ làm việc, nhận thông tin vềđịa chỉđầu khối nhớ chứa dữ liệu và kích thước khối dữ liệu cần truyền. CPU đang hoạt động bình thường nếu giữa thiết bị vào/ra và bộ nhớ có yêu cầu DMA thì:

+ Thiết bị vào/ra phát tín hiệu DRQ cho DMAC.

+ DMAC phát tín hiệu HRQ =1 đến chân HOLD của CPU, yêu cầu CPU đi vào chếđộ DMA (yêu cầu treo CPU).

+ CPU thực hiện nốt chu kỳ máy.

+ CPU phát tín hiệu HLDA trả lời cho DMAC và tự tách ra khỏi hệ thống bus. Quyền điều khiển hệ thống bus thuộc về DMAC.

+ DMAC làm chủ bus hệ thống, tạo tín hiệu DACK trả lời thiết bị yêu cầu, phát địa chỉ ô nhớ lên bus địa chỉ, phát các tín hiệu điều khiển ghi/đọc thiết bị vào/ra và các tín hiệu điều khiển ghi/đọc bộ nhớ và thực hiện điều khiển toàn bộ quá trình chuyển dữ liệu giữa thiết bị vào/ra và bộ nhớ.

+ Kết thúc quá trình DMA, DMAC gửi tín hiệu HRQ = 0 đến chân HOLD trả lại quyền điều khiển bus cho CPU.

+ CPU tiếp tục trở lại kiểu hoạt động bìnhthường.

Một phần của tài liệu Giáo trình ghép nối với máy vi tính (Trang 35 - 36)