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 ที่ซ่อนอยู่”

![วิธีแก้ไขปัญหา“ Windows Driver Foundation High CPU” [MiniTool News]](https://gov-civil-setubal.pt/img/minitool-news-center/67/how-fix-windows-driver-foundation-high-cpu-issue.jpg)
![[แก้ไขแล้ว!] ข้อผิดพลาดของ YouTube กำลังโหลดแตะเพื่อลองอีกครั้งบน iPhone](https://gov-civil-setubal.pt/img/blog/13/youtube-error-loading-tap-retry-iphone.jpg)
![วิธีใช้ Clonezilla ใน Windows 10 Clonezilla Alternative คืออะไร? [เคล็ดลับ MiniTool]](https://gov-civil-setubal.pt/img/backup-tips/12/how-use-clonezilla-windows-10.png)
![วิธีการกู้คืนเอกสาร Word ที่ไม่ได้บันทึก (2020) - สุดยอดคู่มือ [เคล็ดลับ MiniTool]](https://gov-civil-setubal.pt/img/data-recovery-tips/12/how-recover-unsaved-word-document-ultimate-guide.jpg)
![คุณจะแก้ไขข้อผิดพลาดของเบราว์เซอร์ที่ไม่รองรับ Hulu ได้อย่างไร ดูคำแนะนำ! [MiniTool News]](https://gov-civil-setubal.pt/img/minitool-news-center/79/how-can-you-fix-hulu-unsupported-browser-error.png)
![จะหยุด No Man’s Sky จาก Crashing บนพีซีได้อย่างไร? 6 วิธี [MiniTool Tips]](https://gov-civil-setubal.pt/img/disk-partition-tips/60/how-stop-no-man-s-sky-from-crashing-pc.jpg)

![แก้ไขสายเคเบิลเครือข่ายเสียบไม่ถูกต้องหรืออาจเสีย [MiniTool News]](https://gov-civil-setubal.pt/img/minitool-news-center/60/fix-network-cable-is-not-properly-plugged.png)

![ข้อมูลเบื้องต้นเกี่ยวกับขนาดหน่วยการจัดสรรและสิ่งต่างๆเกี่ยวกับมัน [MiniTool Wiki]](https://gov-civil-setubal.pt/img/minitool-wiki-library/21/introduction-allocation-unit-size.png)

![หาก Windows 10 HDR ของคุณไม่เปิดให้ลองทำสิ่งเหล่านี้ [MiniTool News]](https://gov-civil-setubal.pt/img/minitool-news-center/08/if-your-windows-10-hdr-won-t-turn.jpg)
![คำแนะนำในการแก้ไขข้อผิดพลาด Windows Update 0x800706BE - 5 วิธีการทำงาน [MiniTool News]](https://gov-civil-setubal.pt/img/minitool-news-center/03/guide-fix-windows-update-error-0x800706be-5-working-methods.png)


![วิธีเริ่ม Windows 10 ในเซฟโหมด (ขณะบูต) [6 วิธี] [เคล็ดลับ MiniTool]](https://gov-civil-setubal.pt/img/data-recovery-tips/39/how-start-windows-10-safe-mode.png)
![Dropbox ไม่ซิงค์ใน Windows 10 หรือไม่ นี่คือวิธีแก้ไข! [เคล็ดลับ MiniTool]](https://gov-civil-setubal.pt/img/backup-tips/91/is-dropbox-not-syncing-windows-10.jpg)

