Truy cập bộ nhớ trực tiếp (DMA) là một cơ chế trong hệ thống máy tính cho phép phần cứng truy cập trực tiếp đến bộ nhớ chính (như RAM) mà không cần qua CPU.
Thông thường, việc chuyển dữ liệu giữa thiết bị I/O và bộ nhớ máy tính phải qua CPU theo cách tuần tự: CPU sẽ ra lệnh nhập một đơn vị dữ liệu (byte/word) từ thiết bị I/O vào thanh ghi, rồi tiếp tục lệnh ghi dữ liệu từ thanh ghi vào RAM. Quy trình này tốn thời gian vì CPU cần nhiều chu kỳ máy để di chuyển dữ liệu, và dữ liệu phải đi qua CPU trước khi đến đích. Để tăng tốc độ truyền dữ liệu giữa I/O và RAM, người ta đã phát triển DMA (Truy cập Bộ nhớ Trực tiếp) để cho phép truyền dữ liệu trực tiếp từ I/O đến RAM mà không cần qua CPU. Nếu driver thiết bị I/O hỗ trợ DMA, bạn nên kích hoạt chế độ này.
Khi sử dụng, CPU cung cấp cho bộ điều khiển các thông số như địa chỉ trên thiết bị, địa chỉ trong bộ nhớ nơi lưu trữ dữ liệu, và số lượng byte cần chuyển.
Sau khi bộ điều khiển đọc xong dữ liệu từ thiết bị và kiểm tra checksum, nó sẽ chuyển byte đầu tiên vào bộ nhớ tại địa chỉ được chỉ định bởi DMA. Sau đó, nó sẽ tăng địa chỉ DMA và giảm số byte cần chuyển. Quy trình này tiếp tục cho đến khi số byte cần chuyển bằng 0, và bộ điều khiển phát ra một ngắt. Như vậy, dữ liệu đã có sẵn trong bộ nhớ mà không cần phải sao chép thêm.
Lợi ích của DMA: Đối với các ứng dụng yêu cầu truyền dữ liệu liên tục như xử lý âm thanh hay kết nối mạng, DMA là rất cần thiết. CPU không thể xử lý nhiều nhiệm vụ cùng lúc, vì vậy cần phải dựa vào DMA. Nếu gói dữ liệu chưa được ghi hoàn toàn vào DMA, CPU có thể tạm dừng (vì CPU có tốc độ cao hơn so với các giao tiếp ngoài) cho đến khi có tín hiệu báo hoàn tất ghi.
Lịch sử
Các tiêu chuẩn kỹ thuật và Tiêu chuẩn chung của các Bus máy tính có dây | |
|---|---|
| Tổng quan |
|
| Tiêu chuẩn |
|
| Lưu trữ |
|
| Ngoại vi |
|
| Âm thanh |
|
| Cầm tay |
|
| Nhúng |
|
Chú ý: các bus liệt kê theo sắp xếp tăng dần về tốc độ (thô), bus ở cuối có tốc độ nhanh nhất Category:Bus máy tính | |
