Direct Memory Access (DMA) คืออะไรและทำงานอย่างไร? [MiniTool Wiki]
What Is Direct Memory Access
การนำทางอย่างรวดเร็ว:
คุณสามารถนำไฟล์ RDMA เทคโนโลยีเพื่อให้คอมพิวเตอร์ในเครือข่ายสามารถแลกเปลี่ยนข้อมูลในหน่วยความจำหลักโดยไม่ต้องเกี่ยวข้องกับโปรเซสเซอร์แคชหรือระบบปฏิบัติการของคอมพิวเตอร์เครื่องใดเครื่องหนึ่ง แต่คุณยังสามารถใช้คุณสมบัติ DMA เพื่อส่งข้อมูลโดยตรงจากอุปกรณ์ที่เชื่อมต่อไปยังหน่วยความจำบนแผงวงจรหลักของคอมพิวเตอร์ โพสต์นี้จาก MiniTool พูดถึง DMA เป็นหลัก
ความหมายของการเข้าถึงหน่วยความจำโดยตรง
ก่อนอื่น Direct Memory Access คืออะไร? Direct Memory Access สามารถย่อเป็น DMA ซึ่งเป็นลักษณะของระบบคอมพิวเตอร์ อนุญาตให้อุปกรณ์อินพุต / เอาต์พุต (I / O) เข้าถึงหน่วยความจำระบบหลัก ( หน่วยความจำเข้าถึงโดยสุ่ม ) ซึ่งเป็นอิสระจากหน่วยประมวลผลกลาง (CPU) ซึ่งทำให้การทำงานของหน่วยความจำเร็วขึ้น
เคล็ดลับ: คุณอาจสนใจโพสต์นี้ - 8 โซลูชั่นที่เป็นประโยชน์เพื่อแก้ไข CPU ของคุณ 100% ใน Windows 10 .
หากไม่มีการเข้าถึงหน่วยความจำโดยตรงเมื่อ CPU ใช้อินพุต / เอาท์พุตที่ตั้งโปรแกรมไว้โดยปกติจะถูกใช้งานอย่างเต็มที่ในระหว่างการอ่านหรือเขียนทั้งหมดดังนั้นจึงไม่สามารถทำงานอื่น ๆ ได้ ด้วย DMA ซีพียูจะเริ่มต้นการถ่ายโอนก่อนจากนั้นดำเนินการอื่น ๆ ในขณะที่กำลังดำเนินการโอนและในที่สุดก็ได้รับการขัดจังหวะจากตัวควบคุม DMA (DMAC) เมื่อการดำเนินการเสร็จสมบูรณ์
Direct Memory Access มีประโยชน์เมื่อใดก็ตามที่ CPU ไม่สามารถรักษาอัตราการถ่ายโอนข้อมูลได้ทันหรือเมื่อ CPU ต้องทำงานในขณะที่รอการถ่ายโอนข้อมูล I / O ที่ค่อนข้างช้า
ระบบฮาร์ดแวร์หลายระบบใช้การเข้าถึงหน่วยความจำโดยตรงเช่นตัวควบคุมดิสก์ไดรฟ์กราฟิกการ์ดการ์ดเครือข่ายและการ์ดเสียง DMA ยังใช้สำหรับการถ่ายโอนข้อมูลบนชิปในโปรเซสเซอร์แบบมัลติคอร์ เมื่อเทียบกับคอมพิวเตอร์ที่ไม่มีช่องทางการเข้าถึงหน่วยความจำโดยตรงคอมพิวเตอร์ที่มีช่องสัญญาณ DMA สามารถถ่ายโอนข้อมูลระหว่างอุปกรณ์ที่มีค่าใช้จ่าย CPU น้อยกว่ามาก
Direct Memory Access ยังสามารถใช้สำหรับ 'memory to memory' เพื่อคัดลอกหรือย้ายข้อมูลในหน่วยความจำ สามารถถ่ายโอนการดำเนินการหน่วยความจำราคาแพง (เช่นสำเนาขนาดใหญ่หรือการดำเนินการรวบรวมข้อมูลแบบกระจาย) จาก CPU ไปยังเอ็นจิ้น DMA เฉพาะ DMA มีความสำคัญในสถาปัตยกรรมเครือข่ายบนชิปและการประมวลผลหน่วยความจำ
Direct Memory Access ทำงานอย่างไร
แล้ว Direct Memory Access ทำงานอย่างไร? Standard Direct Memory Access (เรียกอีกอย่างว่า DMA ของบุคคลที่สาม) ใช้ตัวควบคุม DMA คอนโทรลเลอร์ DMA สามารถสร้างที่อยู่หน่วยความจำและเปิดรอบการอ่านหรือเขียนหน่วยความจำ ครอบคลุมการลงทะเบียนฮาร์ดแวร์หลายรายการที่ CPU สามารถอ่านและเขียนได้
การลงทะเบียนเหล่านี้ประกอบด้วยการลงทะเบียนที่อยู่หน่วยความจำทะเบียนจำนวนไบต์และการลงทะเบียนควบคุมอย่างน้อยหนึ่งรายการ ขึ้นอยู่กับคุณสมบัติที่มีให้โดยตัวควบคุม Direct Memory Access รีจิสเตอร์ควบคุมเหล่านี้สามารถกำหนดการรวมกันของต้นทางปลายทางทิศทางการถ่ายโอน (อ่านหรือเขียนไปยังอุปกรณ์ I / O) ขนาดของหน่วยการถ่ายโอนและ / หรือจำนวน ไบต์เพื่อถ่ายโอนในครั้งเดียว
ในการดำเนินการอินพุตเอาต์พุตหรือหน่วยความจำต่อหน่วยความจำโปรเซสเซอร์โฮสต์เริ่มต้นคอนโทรลเลอร์ DMA ด้วยจำนวนคำที่จะถ่ายโอนและที่อยู่หน่วยความจำที่จะใช้ จากนั้นซีพียูจะสั่งให้อุปกรณ์ต่อพ่วงเริ่มถ่ายโอนข้อมูล
จากนั้นตัวควบคุม Direct Memory Access จะเสนอที่อยู่และสายควบคุมการอ่าน / เขียนไปยังหน่วยความจำระบบ ทุกครั้งที่มีการเตรียมข้อมูลไบต์ที่จะถ่ายโอนระหว่างอุปกรณ์ต่อพ่วงและหน่วยความจำคอนโทรลเลอร์ DMA จะเพิ่มรีจิสเตอร์ที่อยู่ภายในจนกว่าจะโอนบล็อกข้อมูลทั้งหมด
โหมดการทำงาน
Direct Memory Access จะทำงานแตกต่างกันในโหมดการทำงานต่างๆ
โหมดถ่ายต่อเนื่อง
ในโหมดถ่ายต่อเนื่องบล็อกข้อมูลทั้งหมดจะถูกส่งในลำดับต่อเนื่อง เมื่อซีพียูอนุญาตให้คอนโทรลเลอร์ DMA เข้าถึงบัสระบบคอนโทรลเลอร์ DMA จะถ่ายโอนข้อมูลไบต์ทั้งหมดในบล็อกข้อมูลก่อนที่จะปล่อยการควบคุมบัสระบบกลับไปที่ซีพียู แต่จะทำให้ซีพียูไม่ทำงานสำหรับ a เป็นเวลานานมาก โหมดนี้เรียกอีกอย่างว่า“ โหมดถ่ายโอนบล็อก”
โหมดการขโมยวงจร
โหมดการขโมยวงจรใช้ในระบบที่ไม่สามารถปิดใช้งาน CPU ได้ตามระยะเวลาที่กำหนดสำหรับโหมดถ่ายโอนข้อมูลต่อเนื่อง ในโหมดการขโมยวงจรคอนโทรลเลอร์ DMA จะเข้าถึงบัสระบบโดยใช้สัญญาณ BR (Bus Request) และ BG (Bus Grant) ซึ่งเหมือนกับโหมดถ่ายต่อเนื่อง สัญญาณทั้งสองนี้ควบคุมอินเทอร์เฟซระหว่าง CPU และตัวควบคุม DMA
ในแง่หนึ่งในโหมดการขโมยวงจรความเร็วในการส่งบล็อกข้อมูลจะไม่เร็วเท่าในโหมดถ่ายต่อเนื่อง แต่ในทางกลับกันเวลาว่างของ CPU จะไม่นานเท่าในโหมดถ่ายต่อเนื่อง
โหมดโปร่งใส
โหมดโปร่งใสใช้เวลาถ่ายโอนบล็อกข้อมูลนานที่สุด แต่ก็เป็นโหมดที่มีประสิทธิภาพสูงสุดในแง่ของประสิทธิภาพโดยรวมของระบบด้วย ในโหมดโปร่งใสตัวควบคุม Direct Memory Access จะถ่ายโอนข้อมูลเฉพาะเมื่อ CPU ดำเนินการที่ไม่ใช้บัสระบบ
ข้อได้เปรียบหลักของโหมดโปร่งใสคือ CPU ไม่หยุดดำเนินการโปรแกรมและการถ่ายโอน Direct Memory Access นั้นไม่มีค่าใช้จ่ายในแง่ของเวลาในขณะที่ข้อเสียคือฮาร์ดแวร์จำเป็นต้องกำหนดเมื่อ CPU ไม่ได้ใช้บัสระบบซึ่งสามารถ ยุ่งยาก. เรียกอีกอย่างว่า“ โหมดถ่ายโอนข้อมูล DMA ที่ซ่อนอยู่”

![[3 วิธี] ดาวน์เกรด/ถอนการติดตั้ง Windows 11 และกลับไปเป็น Windows 10](https://gov-civil-setubal.pt/img/news/80/downgrade-uninstall-windows-11.png)
![คุณจะแก้ไขการพยายามเปลี่ยนจาก DPC Blue Screen of Death ได้อย่างไร [เคล็ดลับ MiniTool]](https://gov-civil-setubal.pt/img/backup-tips/08/how-can-you-fix-attempted-switch-from-dpc-blue-screen-death.jpg)

![แก้ไข: POOL_CORRUPTION_IN_FILE_AREA ใน Windows 10 [MiniTool News]](https://gov-civil-setubal.pt/img/minitool-news-center/45/fix-pool_corruption_in_file_area-windows-10.png)
![[6 วิธี] วิธีแก้ไขปัญหาไฟเขียวกระพริบระยะไกลของ Roku](https://gov-civil-setubal.pt/img/news/68/how-fix-roku-remote-flashing-green-light-issue.jpg)

![จะเกิดอะไรขึ้นเมื่อคอมพิวเตอร์ของคุณปิดเครื่องด้วยตัวเอง [MiniTool Tips]](https://gov-civil-setubal.pt/img/data-recovery-tips/26/what-happened-when-your-computer-keeps-shutting-down-itself.png)
![3 วิธีในการตรวจสอบการใช้งานฮาร์ดไดรฟ์ (โปรแกรมใดกำลังใช้ไดรฟ์) [MiniTool News]](https://gov-civil-setubal.pt/img/minitool-news-center/16/3-ways-check-hard-drive-usage.jpg)


![วิธีแก้ไขข้อผิดพลาด“ Windows ไม่พบ” ใน Windows 10 [MiniTool News]](https://gov-civil-setubal.pt/img/minitool-news-center/15/how-fix-windows-cannot-find-error-windows-10.jpg)
![การแก้ไขอย่างสมบูรณ์สำหรับหน้าจอเหลืองแห่งความตายบนคอมพิวเตอร์ Windows 10 [MiniTool News]](https://gov-civil-setubal.pt/img/minitool-news-center/20/full-fixes-yellow-screen-death-windows-10-computers.png)

![วิธีแก้ไขข้อผิดพลาด Windows Update 0x80248007 นี่คือ 3 วิธี [MiniTool News]](https://gov-civil-setubal.pt/img/minitool-news-center/13/how-fix-windows-update-error-0x80248007.png)




