Direct Memory Access – Wikipedia Tiếng Việt
Có thể bạn quan tâm
| Bài viết này cần thêm chú thích nguồn gốc để kiểm chứng thông tin. Mời bạn giúp hoàn thiện bài viết này bằng cách bổ sung chú thích tới các nguồn đáng tin cậy. Các nội dung không có nguồn có thể bị nghi ngờ và xóa bỏ. (Tìm hiểu cách thức và thời điểm xóa thông báo này) |
| Bài viết hoặc đoạn này cần được wiki hóa để đáp ứng tiêu chuẩn quy cách định dạng và văn phong của Wikipedia. Xin hãy giúp sửa bài viết này bằng cách thêm bớt liên kết hoặc cải thiện bố cục và cách trình bày bài. (tháng 2 năm 2013) |
Direct memory access (DMA) (tạm dịch, truy cập bộ nhớ trực tiếp) là cơ chế của hệ thống máy tính cho phép một thành phần phần cứng truy cập đến bộ nhớ dữ liệu chính (như RAM) một cách độc lập với CPU.
DMA thường thì hoạt động chuyển thông tin giữa thiết bị I/O với bộ nhớ máy tính được thực hiện thông qua CPU theo cơ chế tuần tự: CPU ra lệnh "import" để nhập 1 đơn vị thông tin (byte/word) từ thiết bị I/O vào thanh ghi CPU rồi ra lệnh ghi thông tin từ thanh ghi CPU vào ô nhớ RAM nào đó. Quy trình này rất chậm vì CPU phải tốn nhiều chu kỳ máy để thực hiện các lệnh di chuyển thông tin, hơn nữa thông tin còn phải đi vòng qua CPU trước khi đến được vị trí cuối cùng. Để tăng tốc độ chuyển dữ liệu giữa I/O và RAM, người ta đã thiết kế mạch cứng DMA (Direct Memory Access) cho phép chuyển dữ liệu trực tiếp giữa I/O và RAM mà không cần đi ngang qua CPU nữa. Như vậy, nếu driver thiết bị I/O hỗ trợ tốt chế độ hoạt động DMA thì bạn nên cho phép chế độ này hoạt động.
Khi sử dụng, CPU gửi cho bộ điều khiển một số các thông số như địa chỉ trên đĩa của khối, địa chỉ trong bộ nhớ nơi định vị khối, số lượng byte dữ liệu để chuyển.
Sau khi bộ điều khiển đã đọc toàn bộ dữ liệu từ thiết bị vào buffer của nó và kiểm tra checksum, bộ điều khiển chuyển byte đầu tiên vào bộ nhớ chính tại địa chỉ được mô tả bởi địa chỉ bộ nhớ DMA. Sau đó nó tăng địa chỉ DMA và giảm số bytes phải chuyển. Quá trình này lập cho tới khi số bytes phải chuyển bằng 0, và bộ điều khiển tạo một ngắt. Như vậy không cần phải copy khối vào trong bộ nhớ, nó đã hiện hữu trong bộ nhớ.
Điểm lợi của DMA: Với những chức năng giao tiếp ngoài có tính liên tục như xử lý âm thanh, kết nối mạng với bên ngoài thì rất cần thiết. CPU không thể xử lý đa nhiệm cùng lúc nhiều chức năng nên buộc phải sử dụng DMA. Nếu gói dữ liệu chưa thể ghi hết vào DMA thì CPU có thể đợi (do CPU có tốc độ lớn hơn nhiều với giao tiếp ngoài) cho đến khi nào cờ ngắt báo đã ghi xong.
Lịch sử
[sửa | sửa mã nguồn]Tham khảo
[sửa | sửa mã nguồn]Bài viết này vẫn còn sơ khai. Bạn có thể giúp Wikipedia mở rộng nội dung để bài được hoàn chỉnh hơn. |
- x
- t
- s
| |
|---|---|
| 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 | |
Từ khóa » Dma Trong Stm32 Là Gì
-
STM32F1: DMA Phần 1: ADC Với STM32 - DevIOT
-
Dma Là Gì - Hướng Dẫn Lập Trình Dma Với Stm32 - WEB GIẢI ĐÁP
-
Dma Là Gì - Hướng Dẫn Lập Trình Dma Với Stm32 - Thienmaonline
-
Dma Là Gì - Hướng Dẫn Lập Trình Dma Với Stm32
-
BÀI 10: DMA VỚI STM32F103 - Chia Sẻ Các Vấn đề điện Tử
-
Cơ Chế Dma Là Gì ? Hướng Dẫn Lập Trình Dma Với Stm32
-
Hướng Dẫn Sử Dụng Chức Năng UART IDLE DMA - TAPIT
-
Đọc ADC Nhiều Kênh Trên SMT32 Sử Dụng DMA - TAPIT
-
Bài 9: Lập Trình STM32 ADC Nhiều Kênh Với DMA - Khuê Nguyễn
-
Thế Nào Là Dma Là Gì ? Trong Tin Học Dma Là Gì
-
Sự Khác Nhau Khi Sử Dụng Polling, Interrupt Và DMA Trong Giao Tiếp ...
-
Direct Memory Access ( Dma Là Gì ? Định Nghĩa Và Giải Thích Ý ...
-
Top 9 Dma Là Gì - Mobitool
-
Bài 9: Lập Trình STM32 ADC Nhiều Kênh Với DMA - Chickgolden