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 ที่ซ่อนอยู่”
![Memory Stick คืออะไรและการใช้งานหลักและอนาคต [MiniTool Wiki]](https://gov-civil-setubal.pt/img/minitool-wiki-library/88/what-is-memory-stick.jpg)


![วิธีแก้ไขปัญหาใน Windows Update Standalone Installer [MiniTool Tips]](https://gov-civil-setubal.pt/img/backup-tips/03/how-fix-issue-windows-update-standalone-installer.jpg)
![[แก้ไข] Command Prompt (CMD) ไม่ทำงาน / เปิด Windows 10? [เคล็ดลับ MiniTool]](https://gov-civil-setubal.pt/img/data-recovery-tips/98/command-prompt-not-working-opening-windows-10.jpg)


![จะติดตั้ง Zoom บนพีซีหรือ Mac ที่ใช้ Windows 10 ได้อย่างไร ดูคู่มือ! [เคล็ดลับ MiniTool]](https://gov-civil-setubal.pt/img/news/BB/how-to-install-zoom-on-windows-10-pc-or-mac-see-the-guide-minitool-tips-1.png)
![การกู้คืนไฟล์อย่างรวดเร็วหลังจากการคืนค่าระบบ Windows 10/8/7 [MiniTool Tips]](https://gov-civil-setubal.pt/img/data-recovery-tips/98/quick-recover-files-after-system-restore-windows-10-8-7.jpg)
![7 วิธียอดนิยมในการแก้ไข League of Legends พูดติดอ่าง [MiniTool News]](https://gov-civil-setubal.pt/img/minitool-news-center/49/top-7-ways-fix-league-legends-stuttering.png)




![แก้ไข“ 1152: เกิดข้อผิดพลาดในการแตกไฟล์ไปยังตำแหน่งชั่วคราว” [MiniTool News]](https://gov-civil-setubal.pt/img/minitool-news-center/44/solved-1152-error-extracting-files-temporary-location.png)

![วิธีแก้ไขปัญหา“ ขอส่วนหัวหรือคุกกี้ใหญ่เกินไป” [MiniTool News]](https://gov-civil-setubal.pt/img/minitool-news-center/75/how-fix-request-header.jpg)


