1. Nguyên lý cấu trúc của một mạch DRAM
4.2.2. Nguyên lý thâm nhập bộ nhớ trực tiếp
Trong các phương pháp vào/ra trình bày trên có các nhược điểm sau:
- Vào/ra bằng chương trình phải chuyển số liệu giữa thiết bị vào/ra và bộ nhớ thông qua ACC (hình 4.10)
Sử dụng phương pháp vào/ra điều khiển bằng chương trình ta thấy: - Việc vào/ra số liệu đều qua ACC của CPU
- Muốn đọc số liệu từ TB vào/ra vào bộ nhớ phải qua 2 bước (DATA.R) → ACC
(ACC) → MEM
- Muốn đưa nội dung của ô nhớ tới TB vào/ra cũng phải qua 2 bước (MEM) → ACC
(ACC) → DATA.R của TB vào/ra
Như vậy việc chuyển số liệu giữa thiết bị ngoại vi và bộ nhớ cần hai bước, tốc độ chậm.
Phương pháp vào/ra bằng ngắt bảo đảm thiết bị vào/ra được phục vụ gần như tức thời (trong thời gian ngắn). Nhưng trong chương trình con phục vụ ngắt, quá trình chuyển số liệu được thực hiện bằng chương trình nên tốc độ chậm.
Phương pháp vào/ra thâm nhập bộ nhớ trực tiếp DMA (Direct Memory Access) (hình 4.11) khắc phục các nhược điểm trên. Phương pháp này chuyển số liệu với bộ nhớ không qua ACC của CPU
Chương trình con để chuyển số liệu giữa TB vào/ra và bộ nhớ được thay đổi bằng đơn vị điều khiển đặc biệt bằng phần cứng DMAC (Direct Memory Access Controller).
CPU làm việc bình thường
Khi thiết bị ngoại vi muốn chuyển số liệu trực tiếp với bộ nhớ thì gửi yêu cầu tới DMAC qua tín hiệu DRQ ( DMA Reqest)
Bộ điều khiển DMAC chuyển yêu cầu này tới CPU qua tín hiệu HOLD
CPU thực hiện nốt chu kỳ máy đang thực hiện, treo BUS và trả lời DMAC bằng tín hiệu HLDA.
DMAC trả lời thiết bị vào/ra bằng tín hiệu DACK, làm chủ BUS sinh ra - BUS đ/c (Các tín hiệu địa chỉ)
- Các tín hiệu điều khiển
- Điều khiển chuyển số liệu giữa bộ nhớ và TB vào/ra
Số liệu chuyển giữa bộ nhớ và thiết bị vào/ra thường là cả một khối.
Khi chuyển xong số liệu DMAC đưa tín hiệu TC (Terminal Count) thành tích cực để báo một quá trình DMA kết thúc
Có thể minh họa hoạt động của phương pháp vào/ra số liệu bằng DMA như