ฮาร์ดไดรฟ์กำลังทำงานในโหมด pio วิธีคืนค่าประสิทธิภาพของระบบ โหมด PIO และ DMA DMA มันคืออะไร? คุณกำลังพูดถึงเรื่องอะไร

สวัสดีผู้อ่านบล็อกทุกคน ในบทความนี้เราจะพูดถึงวิธีคืนค่าประสิทธิภาพของระบบ ผู้ใช้มักประสบปัญหา ทำงานช้าโดยเฉพาะคอมพิวเตอร์ เมื่อบันทึกและที่ การอ่านดิสก์หรือ "เบรก" ที่ไม่สมเหตุสมผลของระบบระหว่างการทำงานหรือการโหลด เหตุใดระบบจึงค้างการอ่าน
อาจมีเหตุผลหลายประการสำหรับเรื่องนี้ วันนี้ฉันขอเสนอให้พิจารณาเหตุผลทั่วไป - นี่เป็นโหมดการทำงานที่ไม่ถูกต้อง ซีดี/ดีวีดี-รอมหรือ ฮาร์ดไดรฟ์ กล่าวคือ มาพูดถึงกันดีกว่า PIO และ DMA.วิธีการตรวจสอบ ฮาร์ดไดรฟ์สำหรับข้อผิดพลาดและวิธีแก้ไขโปรดอ่าน

สาระสำคัญและความแตกต่างระหว่าง PIO และ DMA คืออะไร.

PIO และ DMA- เหล่านี้เป็นสองโหมด ทำงานหนักดิสก์ โดยทั่วไปแล้วไดรฟ์ใดๆ
PIO (อินพุต/เอาท์พุตที่ตั้งโปรแกรมได้)- โหมดที่ล้าสมัยแล้วเพื่อให้สามารถใช้งานได้
หมั้น CPU ส่งผลให้ประสิทธิภาพลดลงอย่างมาก
DMA (การเข้าถึงหน่วยความจำโดยตรง) - วิธีการที่ทันสมัยซึ่งข้ามโปรเซสเซอร์และ
อุทธรณ์ โดยตรงไปยัง RAM ซึ่งจะช่วยให้ได้อย่างมาก เพิ่มผลผลิตและกำจัด “เบรก” ที่น่ารำคาญ
เข้าโหมด DMA ตัวเลือกต่างๆมีการใช้กันมานานแล้วในระบบปฏิบัติการ Windows 7, 8 และ 10 อย่างไรก็ตาม ในวินโดวส์ XPมักจะมีสถานการณ์ที่ DMA สลับไปที่ PIO โดยอัตโนมัติและนำมันกลับมาแล้ว วิธีการทั่วไปมันจะไม่ทำงาน อะไรทำให้เกิดสถานการณ์เช่นนี้?
ใช้งานใน Windows XPกลไก การควบคุมข้อผิดพลาดหากเมื่ออ่านจาก ฮาร์ดไดรฟ์หรือไดรฟ์อื่น เกิดข้อผิดพลาดบ่อยเกินไป ระบบจะสลับไปที่โหมดช้าลงโดยอัตโนมัติ โดยที่เปอร์เซ็นต์จะต่ำกว่า อย่างไรก็ตาม, วินโดวส์เอ็กซ์พีสามารถนำอุปกรณ์ที่ทำงานตามปกติเข้าสู่โหมดนี้ได้
วิธีแก้ไขข้อผิดพลาด วินโดวส์อ่าน

ดังนั้นเรามาตรวจสอบโหมดการทำงานของไดรฟ์ทั้งหมดเพื่อไม่ให้ระบบช้าลง..

1 - เปิดตัวคอนโซล “การจัดการคอมพิวเตอร์”คลิกขวาบน "คอมพิวเตอร์ของฉัน"


ในเมนูแบบเลื่อนลงให้เลือกรายการ "ตัวจัดการอุปกรณ์"หรือผ่าน
แผงควบคุมหรือ เริ่ม - เรียกใช้ - devmgmt.msc

2. เลือก " ตัวจัดการอุปกรณ์", เลือก IDE ATA/ATAPI ตัวควบคุม,


จะเปิดหลายบรรทัดพร้อมตัวควบคุม - เราสนใจ :
ประถมศึกษาและมัธยมศึกษาช่อง ไอดี→ เราไปกันทีละคน คุณสมบัติช่องเหล่านี้ (คลิกขวาที่ช่องบรรทัด “ คุณสมบัติ") ไปที่บุ๊กมาร์ก" ตัวเลือกเพิ่มเติม» ,
มีสองกลุ่มที่นี่ "อุปกรณ์ 0" และ "อุปกรณ์ 1"แต่ละอันมีเส้น
"โหมดการถ่ายโอน"– จะต้องเลือก “DMA ถ้ามี"แล้วสาย "โหมดการส่งสัญญาณปัจจุบัน"จะต้องมีบางอย่างเช่น "โหมดอัลตร้า DMA: 4,


หากตั้งค่า "โหมด PIO" ที่นี่ แล้วนี่คือของเรากรณีและเราจะทำ แก้ไขมัน.
ถ้าทุกที่โหมดนี้คุ้มค่า อัลตร้า DMA,แล้วทุกอย่างจะดีกับคุณและ การดำเนินการเพิ่มเติมไม่จำเป็นต้องดำเนินการต่อ
3. ขั้นแรก ให้ลองแก้ไขด้วยตนเอง - ในแต่ละบรรทัด “โหมดการถ่ายโอน” ตั้งค่าเป็น “DMA หากมี”คลิก "ตกลง"และรีสตาร์ทคอมพิวเตอร์ หลังจากเปิดเครื่องอีกครั้ง
เราดูโหมดการทำงานของช่องสัญญาณหากติดตั้ง DMA ทุกที่ทุกอย่างก็เป็นไปตามลำดับ ถ้ามี PIO เหลืออยู่ จากนั้นเราก็ดำเนินการต่อไป
4. หาใหม่ครับ ช่อง IDE หลักและรองแล้วลบออก (คลิกขวาที่แต่ละช่อง เลือกจากรายการ "ลบ"- อย่ากลัวไป ทุกอย่างจะผ่านไปได้ด้วยดี
รีสตาร์ทคอมพิวเตอร์ของคุณอีกครั้ง - Windows XP จะค้นหาคอนโทรลเลอร์และโอนไปที่ โหมดรวดเร็วงาน, เช่นใน DMA- ตรวจสอบผลลัพธ์ควรมีโหมดทุกที่ ดีเอ็มเอ
5. หากทั้งหมดที่กล่าวมาข้างต้นไม่ได้ผลและคุณเห็นอีกครั้ง “ โหมดพีโอไอ"แล้วมันก็จะจำเป็น จัดเรียงไดรเวอร์ใหม่สำหรับ เมนบอร์ด– โอเวอร์โหลด
และตรวจสอบผลลัพธ์อีกครั้ง
6. ประเด็นสุดท้ายหากระบอบการปกครองต้องทนทุกข์ทรมาน พีไอโอไม่หายไป ก็ต้องแก้ไขเข้าไป รีจิสทรีฉันต้องการทราบ - ดำเนินการใด ๆ ด้วย
ลงทะเบียนอย่างระมัดระวังและรอบคอบใด ๆ การกระทำที่ผิดอาจส่งผลให้ระบบของคุณใช้งานไม่ได้โดยสมบูรณ์ ทางที่ดีควรทำสำเนารีจิสทรีไว้ล่วงหน้า
อ่านวิธีกำหนดค่า Windows XP โดยใช้รีจิสทรี

ขั้นแรก ให้ลองปิดการใช้งานระบบควบคุมข้อผิดพลาด
เมื่อต้องการทำเช่นนี้ในสาขารีจิสทรี:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdfs\,
สร้างคีย์ การควบคุมข้อผิดพลาดและตั้งค่าเป็น 0.


หลังจากนั้นให้รีบูตและทำตามขั้นตอน №4.


คุณสามารถตั้งค่าโหมดได้ด้วยตนเอง ดีเอ็มเอ.
มีหลายโฟลเดอร์ที่นี่ - 0000, 0001, 0002.
0000 – รับผิดชอบผู้ควบคุมเอง
0001 – รับผิดชอบ IDE Chanell รอง;
0002 – รับผิดชอบ Primary IDE Chanell;
เปิดโฟลเดอร์สำหรับช่องที่เราต้องการ ประกอบด้วย
หลายปุ่ม ขั้นแรกให้เลือก:
อนุญาต MasteDeviceTimingMode แล้ว
SlaveDeviceTimingMode อนุญาตแล้ว
และตั้งค่าให้เท่ากับ 0хffffffff.
หลังจากนี้ ให้ตั้งค่าของคีย์ต่อไปนี้:
MasterDeviceTimingMode
SlaveDeviceTimingMode
ตามข้อมูลต่อไปนี้ขึ้นอยู่กับ
ได้รับการสนับสนุน โหมด UDMA:
UDMA โหมด 2 – 0×2010
UDMA โหมด 4 – 0×8010
โหมด UDMA 5 – 0×10010
UDMA โหมด 6 – 0xffff

หลังจากนั้นให้รีบูทและตรวจสอบผลลัพธ์ - ทุกอย่างจะทำงานได้ดี
วิธีเร่งความเร็วและกู้คืน ประสิทธิภาพของวินโดวส์ 10 อ่าน
ความเร็วในการถ่ายโอนข้อมูลในคอมพิวเตอร์อ่านคืออะไร
ฉันหวังว่าบทความนี้จะช่วยคุณตั้งค่าโหมดได้อย่างถูกต้อง PIO และ DMAและปรับปรุงประสิทธิภาพของระบบโดยรวม


เรียนผู้อ่าน!
หากคุณชอบบล็อกและเนื้อหาที่เผยแพร่มีประโยชน์สำหรับคุณ ฉันขอให้คุณช่วยในเรื่องเนื้อหาและการพัฒนาบล็อกนี้ คุณสามารถทำได้โดยการบริจาคจำนวนเท่าใดก็ได้ การสนับสนุนทางการเงินของคุณจะถูกใช้เพื่อโปรโมตบล็อกและเติมเต็มบล็อก วัสดุที่ดีปรับปรุงฟังก์ชันการทำงานและความเป็นมิตรกับผู้อ่าน และการดำเนินการตามแผนเพิ่มเติม
1) โดยการโอนเงินเข้าบัตร สเบอร์แบงก์: 4424 7710 1196 4323
2) วิธีที่ง่ายที่สุดซึ่งจะไม่รวมกัน ความพยายามที่ดีผู้ใช้แต่ละรายผู้อ่านบล็อกจะมีปุ่มหลายปุ่มที่ส่วนท้ายของแต่ละบทความ ( "แบ่งปัน") เพื่อเพิ่มบทความเข้าไป โซเชียลมีเดียหรือบล็อกและแหล่งข้อมูลการสื่อสารออนไลน์อื่นๆ
ขอขอบคุณล่วงหน้าสำหรับทุกคนที่จะช่วยพัฒนาบล็อก

สวัสดีผู้อ่านบล็อกทุกคน ในบทความนี้เราจะพูดถึงวิธีคืนค่าประสิทธิภาพของระบบ ผู้ใช้มักประสบปัญหาเครื่องคอมพิวเตอร์ทำงานช้ามากโดยเฉพาะ เมื่อบันทึกและที่ การอ่านดิสก์หรือ "เบรก" ที่ไม่สมเหตุสมผลของระบบระหว่างการทำงานหรือการโหลด เหตุใดระบบจึงค้างการอ่าน
อาจมีเหตุผลหลายประการสำหรับเรื่องนี้ วันนี้ฉันขอเสนอให้พิจารณาเหตุผลทั่วไป - นี่เป็นโหมดการทำงานที่ไม่ถูกต้อง ซีดี/ดีวีดี-รอมหรือ ฮาร์ดไดรฟ์กล่าวคือ มาพูดถึงกันดีกว่า PIO และ DMA.อ่านวิธีตรวจสอบข้อผิดพลาดของฮาร์ดไดรฟ์และแก้ไข

สาระสำคัญและความแตกต่างระหว่าง PIO และ DMA คืออะไร.

PIO และ DMA- นี่เป็นโหมดการทำงานของฮาร์ดไดรฟ์สองโหมด ในกรณีทั่วไปของไดรฟ์ใดๆ
PIO (อินพุต/เอาท์พุตที่ตั้งโปรแกรมได้)- โหมดที่ล้าสมัยแล้วเพื่อให้สามารถใช้งานได้
หมั้น CPU ส่งผลให้ประสิทธิภาพลดลงอย่างมาก
DMA (การเข้าถึงหน่วยความจำโดยตรง)- วิธีการสมัยใหม่ที่ข้ามโปรเซสเซอร์และ
อุทธรณ์ โดยตรงไปยัง RAM ซึ่งจะช่วยให้ได้อย่างมาก เพิ่มผลผลิตและกำจัด “เบรก” ที่น่ารำคาญ
อย่างไรก็ตามโหมด DMA ในรุ่นต่างๆ นั้นมีการใช้กันมานานแล้วในระบบปฏิบัติการ Windows 7, 8 และ 10 ในวินโดวส์ XPมักจะมีสถานการณ์ที่ DMA สลับไปที่ PIO โดยอัตโนมัติและไม่สามารถนำกลับมาใช้วิธีปกติได้ อะไรทำให้เกิดสถานการณ์เช่นนี้?
ใช้งานใน Windows XPกลไก การควบคุมข้อผิดพลาดหากข้อผิดพลาดเกิดขึ้นบ่อยเกินไปเมื่ออ่านจากฮาร์ดดิสก์หรือไดรฟ์อื่น ระบบจะสลับไปที่โหมดช้าลงโดยอัตโนมัติ โดยที่เปอร์เซ็นต์จะต่ำกว่า อย่างไรก็ตาม, วินโดวส์เอ็กซ์พีสามารถนำอุปกรณ์ที่ทำงานตามปกติเข้าสู่โหมดนี้ได้
วิธีแก้ไขข้อผิดพลาด วินโดวส์อ่าน

ดังนั้นเรามาตรวจสอบโหมดการทำงานของไดรฟ์ทั้งหมดเพื่อไม่ให้ระบบช้าลง..

1 - เปิดตัวคอนโซล “การจัดการคอมพิวเตอร์”– คลิกขวาที่ "คอมพิวเตอร์ของฉัน"


ในเมนูแบบเลื่อนลงให้เลือกรายการ "ตัวจัดการอุปกรณ์"หรือผ่าน
แผงควบคุมหรือ เริ่ม - เรียกใช้ - devmgmt.msc

2. เลือก " ตัวจัดการอุปกรณ์", เลือก IDE ATA/ATAPI ตัวควบคุม,


จะเปิดหลายบรรทัดพร้อมตัวควบคุม - เราสนใจ :
ประถมศึกษาและมัธยมศึกษาช่อง ไอดี→ เราไปกันทีละคน คุณสมบัติช่องเหล่านี้ (คลิกขวาที่ช่องบรรทัด “ คุณสมบัติ") ไปที่บุ๊กมาร์ก" ตัวเลือกเพิ่มเติม»,
มีสองกลุ่มที่นี่ "อุปกรณ์ 0" และ "อุปกรณ์ 1"แต่ละอันมีเส้น
"โหมดการถ่ายโอน"– จะต้องเลือก “DMA ถ้ามี"แล้วสาย "โหมดการส่งสัญญาณปัจจุบัน"จะต้องมีบางอย่างเช่น "โหมดอัลตร้า DMA: 4,


หากตั้งค่า "โหมด PIO" ที่นี่ แล้วนี่คือของเรากรณีและเราจะทำ แก้ไขมัน.
ถ้าทุกที่โหมดนี้คุ้มค่า อัลตร้า DMA,ทุกอย่างเรียบร้อยดีสำหรับคุณและไม่จำเป็นต้องดำเนินการใด ๆ เพิ่มเติม
3. ขั้นแรก ให้ลองแก้ไขด้วยตนเอง - ในแต่ละบรรทัด “โหมดการถ่ายโอน” ตั้งค่าเป็น “DMA หากมี”คลิก "ตกลง"และรีสตาร์ทคอมพิวเตอร์ หลังจากเปิดเครื่องอีกครั้ง
เราดูโหมดการทำงานของช่องสัญญาณหากติดตั้ง DMA ทุกที่ทุกอย่างก็เป็นไปตามลำดับ ถ้ามี PIO เหลืออยู่ จากนั้นเราก็ดำเนินการต่อไป
4. หาใหม่ครับ ช่อง IDE หลักและรองแล้วลบออก (คลิกขวาที่แต่ละช่อง เลือกจากรายการ "ลบ"- อย่ากลัวไป ทุกอย่างจะผ่านไปได้ด้วยดี
รีสตาร์ทคอมพิวเตอร์ของคุณอีกครั้ง - Windows XP จะค้นหาคอนโทรลเลอร์และเปลี่ยนเป็นโหมดการทำงานที่รวดเร็ว เช่นใน DMA- ตรวจสอบผลลัพธ์ควรมีโหมดทุกที่ ดีเอ็มเอ
5. หากทั้งหมดที่กล่าวมาข้างต้นไม่ได้ผลและคุณเห็นอีกครั้ง “ โหมดพีโอไอ"แล้วมันก็จะจำเป็น จัดเรียงไดรเวอร์ใหม่สำหรับเมนบอร์ด - รีบูท
และตรวจสอบผลลัพธ์อีกครั้ง
6. ประเด็นสุดท้ายหากระบอบการปกครองต้องทนทุกข์ทรมาน พีไอโอไม่หายไป ก็ต้องแก้ไขเข้าไป รีจิสทรีฉันต้องการทราบ - ดำเนินการใด ๆ ด้วย
รีจิสทรีอย่างระมัดระวังและรอบคอบ การกระทำที่ไม่ถูกต้องใด ๆ อาจทำให้ระบบของคุณใช้งานไม่ได้โดยสมบูรณ์ ทางที่ดีควรทำสำเนารีจิสทรีไว้ล่วงหน้า
อ่านวิธีกำหนดค่า Windows XP โดยใช้รีจิสทรี

ขั้นแรก ให้ลองปิดการใช้งานระบบควบคุมข้อผิดพลาด
เมื่อต้องการทำเช่นนี้ในสาขารีจิสทรี:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdfs\,
สร้างคีย์ การควบคุมข้อผิดพลาดและตั้งค่าเป็น 0.


หลังจากนั้นให้รีบูตและทำตามขั้นตอน №4.


คุณสามารถตั้งค่าโหมดได้ด้วยตนเอง ดีเอ็มเอ.
มีหลายโฟลเดอร์ที่นี่ - 0000, 0001, 0002.
0000 – รับผิดชอบผู้ควบคุมเอง
0001 – รับผิดชอบ IDE Chanell รอง;
0002 – รับผิดชอบ Primary IDE Chanell;
เปิดโฟลเดอร์สำหรับช่องที่เราต้องการ ประกอบด้วย
หลายปุ่ม ขั้นแรกให้เลือก:
อนุญาต MasteDeviceTimingMode แล้ว
SlaveDeviceTimingMode อนุญาตแล้ว
และตั้งค่าให้เท่ากับ 0хffffffff.
หลังจากนี้ ให้ตั้งค่าของคีย์ต่อไปนี้:
MasterDeviceTimingMode
SlaveDeviceTimingMode
ตามข้อมูลต่อไปนี้ขึ้นอยู่กับ
ได้รับการสนับสนุน โหมด UDMA:
UDMA โหมด 2 – 0×2010
UDMA โหมด 4 – 0×8010
โหมด UDMA 5 – 0×10010
UDMA โหมด 6 – 0xffff

หลังจากนั้นให้รีบูทและตรวจสอบผลลัพธ์ - ทุกอย่างจะทำงานได้ดี
วิธีเพิ่มความเร็วและกู้คืนประสิทธิภาพของ Windows 10 โปรดอ่าน
ความเร็วในการถ่ายโอนข้อมูลในคอมพิวเตอร์อ่านคืออะไร
ฉันหวังว่าบทความนี้จะช่วยคุณตั้งค่าโหมดได้อย่างถูกต้อง PIO และ DMAและปรับปรุงประสิทธิภาพของระบบโดยรวม


เรียนผู้อ่าน!
หากคุณชอบบล็อกและเนื้อหาที่เผยแพร่มีประโยชน์สำหรับคุณ ฉันขอให้คุณช่วยในเรื่องเนื้อหาและการพัฒนาบล็อกนี้ คุณสามารถทำได้โดยการบริจาคจำนวนเท่าใดก็ได้ การสนับสนุนทางการเงินของคุณจะถูกใช้เพื่อโปรโมตบล็อก เติมเนื้อหาที่ดีในบล็อก ปรับปรุงฟังก์ชันการทำงานและความเป็นมิตรกับผู้อ่าน และดำเนินการตามแผนในอนาคต
1) โดยการโอนเงินเข้าบัตร สเบอร์แบงก์: 4424 7710 1196 4323
2) วิธีที่ง่ายที่สุดซึ่งผู้ใช้และผู้อ่านบล็อกทุกคนไม่ต้องใช้ความพยายามมากนักคือจะมีปุ่มหลายปุ่มที่ส่วนท้ายของแต่ละบทความ ( "แบ่งปัน") เพื่อเพิ่มบทความลงในโซเชียลเน็ตเวิร์กหรือบล็อกและแหล่งข้อมูลการสื่อสารอื่น ๆ บนอินเทอร์เน็ต
ขอขอบคุณล่วงหน้าสำหรับทุกคนที่จะช่วยพัฒนาบล็อก

ดังที่คุณทราบ วินโดวส์ 7ได้รับการปรับปรุงที่สำคัญมากขึ้นในด้านเวลาบูตและการตอบสนองของระบบเมื่อเทียบกับรุ่นก่อน วินโดวส์วิสต้า - มีการเปลี่ยนแปลงที่สำคัญซึ่งทำให้ระบบไม่กินทั้งหมด หน่วยความจำระบบเมื่อเปิด ปริมาณมากหน้าต่าง Explorer ปรับให้เหมาะสม บริการระบบและกระบวนการต่างๆ


ในบทความนี้เราจะดูที่:

  • การเพิ่มประสิทธิภาพของเมนูเริ่ม
  • การเพิ่มประสิทธิภาพ ทำงานหนักดิสก์ใน Windows 7
  • ปรับความเร็วของการคัดลอกและย้ายไฟล์ใน Windows 7 ให้เหมาะสม
  • การเพิ่มประสิทธิภาพการทำงานด้วย ไดรเวอร์ Windows 7
  • การเพิ่มประสิทธิภาพเวลา บูตวินโดวส์ 7
  • เร่งกระบวนการดูภาพขนาดย่อ
  • การเร่งความเร็วเสร็จสิ้น การทำงานของวินโดวส์ 7
ความสนใจ!
โปรดทราบว่าวิธีการบางอย่างที่กล่าวถึงเพื่อเร่งการทำงาน วินโดวส์ 7ขึ้นอยู่กับการปิดใช้งานงานประเภทใด ๆ ลดความซับซ้อนหรือปรับปรุงการทำงานของระบบเพื่อให้ใช้งานได้สะดวกยิ่งขึ้น เหล่านั้น. โดยพื้นฐานแล้วคุณกำลังเลือกระหว่างความสะดวกสบายและประสิทธิภาพ

วิธีเพิ่มประสิทธิภาพ Windows 7

1. เร่งความเร็วเมนูเริ่ม

คำนิยาม เมื่อเร็ว ๆ นี้ โปรแกรมที่ติดตั้งและระบบจะใช้เวลาพอสมควรในการไฮไลต์โปรแกรมที่ติดตั้งล่าสุดเหล่านี้ทุกครั้งที่คุณเปิดเมนูเริ่ม คุณสามารถบันทึกเวลานี้ได้

ในการดำเนินการนี้คุณต้องไปที่การตั้งค่าเมนูเริ่ม: ในคุณสมบัติ "แถบงานและเมนูเริ่ม"(เพื่อเปิดใช้งานให้ไปที่แผงควบคุม Windows 7: เริ่ม -> แผงควบคุม- ไปที่บุ๊กมาร์ก "เมนูเริ่ม"และคลิกที่ปุ่ม "ทูน".
รูปที่ 1 การปรับแต่งเมนูเริ่ม

ยกเลิกการเลือก "ไฮไลท์โปรแกรมที่ติดตั้งล่าสุด"จากนั้นคลิก "นำมาใช้".
รูปที่ 2 ปิดใช้งานการเน้นโปรแกรมที่ติดตั้งล่าสุด
เพื่อลดการหยุดชั่วคราวเมื่อหน้าต่างเมนู Start ปรากฏขึ้น ให้ไปที่ตัวแก้ไขรีจิสทรี (command "ลงทะเบียน"ในการสนทนา “ค้นหาโปรแกรมและไฟล์”).
รูปที่ 3 การเปิดตัวแก้ไขรีจิสทรี
หลังจากเปิดตัว Registry Editor ( regedit.exe) ไปที่เธรด HKEY_CURRENT_USER -> แผงควบคุม-> เดสก์ท็อป(รูปที่ 4)

รูปที่ 4. การเลือกสาขารีจิสทรีที่ต้องการ
เปลี่ยนค่าคีย์ เมนูแสดงดีเลย์กับ "400"บน "50"- การหยุดชั่วคราวจะสั้นลงอย่างมาก

รูปที่ 5 การเปลี่ยนการหยุดชั่วคราวเมื่อแสดงหน้าต่าง
2. การเพิ่มประสิทธิภาพฮาร์ดไดรฟ์ของคุณใน Windows 7

ตัวเลือกนี้คุ้นเคยมาตั้งแต่สมัยโบราณ วินโดวส์เอ็กซ์พีแต่ถ้าเข้า. ประสบการณ์เดิมทีมันถูกรวมไว้แล้วจึงเข้ามา วินโดวส์ 7การเพิ่มประสิทธิภาพฮาร์ดไดรฟ์ถือว่าไม่จำเป็นและถูกปิดใช้งานตามค่าเริ่มต้น ตอนนี้เราจะดูวิธีการเปิดใช้งานตัวเลือกนี้

ไปกันเลย เริ่ม -> แผงควบคุม -> ตัวจัดการอุปกรณ์ -> อุปกรณ์ดิสก์-> (เลือกฮาร์ดไดรฟ์ของคุณ) -> คุณสมบัติ -> นโยบาย...และทำเครื่องหมายไว้ข้างรายการ "ปิดใช้งานการล้างบัฟเฟอร์แคช" รายการ Windowsสำหรับอุปกรณ์นี้".
รูปที่ 6: การปิดใช้งานการล้างบัฟเฟอร์แคชรายการ Windows
ตอนนี้อยู่เหมือนกัน "ตัวจัดการอุปกรณ์"เปิดกระทู้อื่น - "ตัวควบคุม IDE ATA/ATAPI (ตัวควบคุม IDE ATA/ATAPI)"หลังจากนั้นในคุณสมบัติของทุกช่อง ATA (ATA ช่อง 0, ATA ช่อง 1ฯลฯ) ในแท็บ « การตั้งค่าเพิ่มเติม(การตั้งค่าขั้นสูง)"ตรวจสอบว่ามีการทำเครื่องหมายในช่องหรือไม่ “เปิดใช้งาน DMA”.
รูปภาพ 7. เปิดเครื่อง โหมดดีเอ็มเอ
หากไม่ได้เลือกช่องทำเครื่องหมาย ให้ทำเครื่องหมายในช่องนั้น

3. เร่งความเร็วในการคัดลอกและย้ายไฟล์ใน Windows 7

วินโดวส์ 7ได้อีกอัน คุณสมบัติที่น่าสนใจ- การบีบอัดส่วนต่างระยะไกล
ในอีกด้านหนึ่ง ตัวเลือกนี้จะคำนวณและส่งความแตกต่างระหว่างสองออบเจ็กต์ เพื่อลดปริมาณข้อมูลที่ส่งให้เหลือน้อยที่สุด แต่ในทางกลับกัน จะใช้เวลาในการคำนวณ

คุณสามารถปิดการใช้งานคุณสมบัตินี้ได้ โดยไปที่ เริ่ม -> แผงควบคุม -> โปรแกรมและคุณสมบัติ -> เปิดและปิด ส่วนประกอบของวินโดวส์-> การบีบอัดส่วนต่างระยะไกล (จำเป็นต้องยกเลิกการเลือก).

รูปที่ 8 การปิดใช้งานการบีบอัดส่วนต่าง
4. ปิดการใช้งานการสแกน ลายเซ็นดิจิทัลไดรเวอร์

การดำเนินการนี้สามารถเพิ่มความเร็วของระบบได้เล็กน้อย (เมื่อติดตั้งไดรเวอร์ใหม่) หากต้องการปิดการใช้งานตัวเลือกนี้ใน วินโดวส์ 7ทำตามขั้นตอนเหล่านี้:

ดำเนินการใน "เริ่ม" gpedit.msc.
รูปที่ 9. การเปิดแผงการดูแลระบบ
จากนั้นไปที่เส้นทางต่อไปนี้:

การกำหนดค่าผู้ใช้ -> เทมเพลตการดูแลระบบ -> ระบบ -> การติดตั้งไดรเวอร์ -> ลายเซ็นดิจิทัลของไดรเวอร์อุปกรณ์- ในหน้าต่างนี้ คุณต้องเลือกโหมด "พิการ".

รูปที่ 10 การปิดใช้งานการตรวจสอบลายเซ็นดิจิทัลของไดรเวอร์
5. เร่งความเร็วในการบูต Windows 7

เราสามารถเพิ่มได้อีกไม่กี่วินาทีจริงๆ คำแนะนำนี้หมายถึงผู้ใช้ที่ทำงานอยู่ โปรเซสเซอร์แบบมัลติคอร์กับ วินโดวส์ 7เช่น ระบบปฏิบัติการ.
ดังนั้นให้ทำตามขั้นตอนเหล่านี้:

เข้า MSCONFIGในช่องค้นหาเมนู "เริ่ม"และกดปุ่ม "เข้า".

ในหน้าต่างที่เปิดขึ้น ให้ไปที่แท็บแล้วคลิกที่ปุ่ม "ตัวเลือกขั้นสูง".

รูปที่ 11. ตัวเลือกการปรับแต่งระบบเพิ่มเติมทำเครื่องหมายในช่องถัดจากรายการ "จำนวนโปรเซสเซอร์"และในเมนูแบบเลื่อนลงใต้รายการนี้ ให้เลือก จำนวนสูงสุดแกนของคุณ (2 หรือ 4)

รูปที่ 12. การตั้งค่าจำนวนโปรเซสเซอร์สำหรับระบบที่มีโปรเซสเซอร์แบบมัลติเธรด
คลิก "ตกลง"และรีบูตระบบเพื่อดูความแตกต่างที่เห็นได้ชัดเจนในความเร็วการบูต วินโดวส์ 7.

6. เร่งการดูภาพขนาดย่อ (ภาพขนาดย่อ)

คุณสามารถเพิ่มความเร็วในการดูภาพขนาดย่อได้ วินโดวส์ 7- โดยคุณต้องทำตามขั้นตอนเหล่านี้:

เข้า ลงทะเบียนใหม่(ไม่มีเครื่องหมายคำพูด) ในช่องค้นหาเมนู "เริ่ม"และกดปุ่ม "เข้า".

ไปที่กระทู้ "HKEY_CURRENT_USER -> แผงควบคุม -> เมาส์".

รูปที่ 13 การเลือกสาขารีจิสทรีที่ต้องการเพื่อเพิ่มประสิทธิภาพการหยุดชั่วคราวเมื่อแสดงภาพขนาดย่อ
ดับเบิลคลิกที่พารามิเตอร์ MouseHoverTimeและเปลี่ยนค่าเป็น 100 .

รูปที่ 14 การตั้งค่าใหม่
7. ลดเวลา ปิดหน้าต่าง 7

เวลาปิดเครื่อง วินโดวส์ 7สามารถลดลงได้อย่างมาก อย่างไรก็ตาม นี่เป็นวิธีการที่ค่อนข้างป่าเถื่อน: เราจะลดเวลาที่จัดสรรให้กับกระบวนการเพื่อยุติโปรแกรม หลังจากนั้นโปรแกรมจะถูกบังคับให้ยุติลง

เข้า ลงทะเบียนใหม่ในช่องค้นหาเมนู "เริ่ม"และกดปุ่ม "เข้า".

ไปที่กระทู้ HKEY_LOCAL_MACHINE -> ระบบ -> CurrentControlSet -> การควบคุม.


รูปที่ 15. การเลือก รหัสที่จำเป็นรีจิสทรี
เปลี่ยนค่าพารามิเตอร์ "รอเพื่อฆ่าเซอร์วิสหมดเวลา"จากความหมาย 12000 (12 วินาที) เปิด 2000 (2 วินาที)

รูปที่ 16. การเปลี่ยนค่า


ความมั่นคงในระยะยาวจะถูกรบกวนด้วยสิ่งที่คาดเดาไม่ได้และแปลกประหลาดไม่ช้าก็เร็ว ดังนั้นช่วงเวลานั้นจึงมาถึง เมื่อสองสามวันก่อนตอนที่คัดลอกไฟล์จากที่หนึ่ง ฟิสิคัลดิสก์ในทางกลับกัน ฉันสังเกตเห็นว่าความเร็วต่ำมาก - 4-6 Mb/s แทนที่จะเป็น 50-90 Mb/s ที่คาดไว้ (ปรับสำหรับการกระจายตัว) ฉันกำลังดูอยู่ โหลดซีพียู– หนึ่งคอร์ยุ่งมากกับการขัดจังหวะการประมวลผล ทุกอย่างชัดเจน – ดิสก์เปลี่ยนเป็นโหมด PIO

การกำหนดค่าเริ่มต้น: ASUS P5Q, ดิสก์ SATA 4 x 1 Gb, ดิสก์ SATA 2 x 1.5 Gb, ไม่มี RAID, Windows XP SP3 ดิสก์ทำงานในโหมด UDMA เช่นเดียวกับอย่างอื่นฉันทดสอบหลังการติดตั้ง ตัวจัดการอุปกรณ์ -> ตัวควบคุม IDE -> ช่องสัญญาณและดูที่ "โหมดการถ่ายโอนปัจจุบัน" ในภาพ อุปกรณ์ทั้งสองทำงานในโหมด UDMA ในกรณีของฉัน อุปกรณ์ตัวที่สองทำงานในโหมด PIO แต่ฉันไม่ได้บันทึกรูปภาพนี้ เพื่อให้เข้าใจว่าใครอยู่ช่องไหนให้สลับมุมมอง ตัวจัดการอุปกรณ์ในมุมมอง -> อุปกรณ์ตามการเชื่อมต่อ

แม้ว่า ไดรฟ์ SATAตัวควบคุมใน Device Manager คือ ATA ประเด็นก็คือใน BIOS คอนโทรลเลอร์ SATAโดยค่าเริ่มต้นกำหนดค่าให้แกล้งทำเป็น คอนโทรลเลอร์ ATAในกรณีนี้ไม่จำเป็นต้องใช้ไดรเวอร์ AHCI ใหม่เพิ่มเติม คุณสามารถเปลี่ยนไปใช้โหมด AHCI ได้อย่างง่ายดายโดยไม่มีผลกระทบใด ๆ องค์กรเชิงตรรกะข้อมูลต้องการเฉพาะไดรเวอร์ที่เหมาะสมเท่านั้น ในโหมด AHCI การสนับสนุน NCQ (การเรียงลำดับคำสั่ง HDD ใหม่) จะปรากฏขึ้น และโดยทั่วไปประสิทธิภาพจะเพิ่มขึ้นเล็กน้อย แต่เพียงเล็กน้อยเท่านั้น และยังเพิ่มการรองรับด้วย แลกเปลี่ยนร้อน.

รุ่นต่างๆ เหตุผลที่เป็นไปได้:

1) บางอย่างกับรถไฟ
2) บางอย่างกับไดรเวอร์ ความล้มเหลวหรือข้อขัดแย้ง
3) บางอย่างกับ HDD

มีระบบที่สอง - Windows 7 ฉันบูทเข้าไปและสังเกตประสิทธิภาพทั้งหมดของดิสก์ในโหมด UDMA ซึ่งหมายความว่าฮาร์ดแวร์ดูเหมือนจะเป็นปกติ ฉันดูบันทึกเหตุการณ์ฉันไม่พบข้อความใด ๆ เกี่ยวกับปัญหาเกี่ยวกับดิสก์ในนั้น การวินิจฉัยอัจฉริยะ– ทุกอย่างเรียบร้อยดี ไม่มีข้อขัดแย้งกับอุปกรณ์ ทั้งหมดนี้ถือว่าดี ฉันจะเอามัน ไดรเวอร์ล่าสุดกับเอซุส ฉันกำลังเขียนมันลงไป หมายเลขเก่ารุ่นต่างๆ ไดรเวอร์ของอินเทล ICH10R ฉันกำลังติดตั้งอันใหม่ ติดตั้งอย่างรวดเร็วอย่างน่าสงสัย สุดท้ายก็ไม่ได้รับการอัพเดต ด้วยตนเองผ่านทาง ไฟล์ INFฉันอัปเดตไดรเวอร์ ICH10R แล้ว ติดตั้งแล้ว แต่ปัญหายังคงอยู่ ฉันไปที่ Intel ดาวน์โหลดเวอร์ชันล่าสุด ติดตั้งแล้ว ไม่มีอะไรถูกติดตั้งอีก ฉันพบว่าไดรเวอร์ของพวกเขาได้รับการอัพเดตเฉพาะในกรณีที่อุปกรณ์ไม่มีไดรเวอร์เลยเพื่อบังคับให้คุณต้องใช้รหัสลับ "–overlall" ฉันลองอัปเดตแล้ว แต่ไม่สามารถแก้ปัญหาได้ ฉันเปลี่ยนสายเคเบิล ถอดออก เสียบดิสก์ - มันไม่ได้ช่วยอะไร ผลลัพธ์ขั้นกลางคือฮาร์ดแวร์ใช้งานได้ ซอฟต์แวร์ใหม่ไม่ได้ช่วยอะไร

ฉันพบบทความที่น่าสนใจใน Microsoft: “หลังจากเกิดข้อผิดพลาดหรือการหมดเวลาของ CRC หลายครั้ง ไดรฟ์ที่มีอินเทอร์เฟซ IDE ATA และ ATAPI จะใช้โหมด PIO” พวกเขาเขียนว่าหากมีความล้มเหลวในการส่งข้อมูลผ่าน UDMA ระบบจะลดโหมดลงตามลำดับเป็นโหมด PIO (หรือทันที) และหยุดสถานะนี้! หากต้องการนำคอนโทรลเลอร์กลับมา แนะนำให้ถอดคอนโทรลเลอร์ออกจาก Device Manager และคอนโทรลเลอร์จะเกิดใหม่จากเถ้าถ่าน ฉันไม่ได้ไปเพราะว่า... ฉันกลัวว่าเขาอาจจะไม่เกิดใหม่ (พวกเขาเขียนถึงเรื่องนี้ที่ไหนสักแห่ง) จึงใช้เส้นทางที่สองที่อธิบายไว้ที่นั่นและที่อื่น

สารละลาย.เปิดสาขารีจิสทรี “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\(4D36E96A-E325-11CE-B FC1-08002BE10318)” ซึ่งจะมีสาขา 0000, 0001 เป็นต้น สอดคล้องกับอุปกรณ์ใน Device Manager เราสนใจแต่ช่องเท่านั้น เราดูชื่อใน DriverDesc ค่ะ ในกรณีนี้“ช่องทาง IDE หลัก”

ให้ความสนใจกับ MasterDeviceTimingModeAllowed และ SlaveDeviceTimingModeAllowed - พวกเขาตั้งค่ามาสก์ของโหมดที่ยอมรับได้หาก 0xffffffff ทุกอย่างจะได้รับอนุญาตและหาก 0x1f จะมีเพียงโหมด PIO เท่านั้น ฉันมีปัญหากับทาส โหมดปัจจุบันนั้นถูกเก็บไว้ใน MasterDeviceTimingMode และ SlaveDeviceTimingMode ซึ่งแตกต่างกัน (คุณสามารถค้นหาความหมายของตัวเลขได้บนอินเทอร์เน็ต) MS แนะนำให้ทำสิ่งต่อไปนี้ - ตั้งค่าคีย์เพิ่มเติม ResetErrorCountersOnSuccess (DWORD) = 1 และการรีบูตเครื่อง ฉันทำสิ่งนี้ แต่ไม่ได้ทำอะไรเลย แค่ทำให้โหมดที่ต้องการ UserSlaveDeviceTimingModeAllowed ถูกรีเซ็ตเป็น 0x1f เท่านั้น ฉันส่งคืนไปที่ Device Manager แล้ว แต่ฉันคิดว่าคุณสามารถตั้งค่าเป็น 0xffffffff ด้วยตนเองได้ที่นี่เช่นกัน ต่อไป ฉันตั้งค่า SlaveDeviceTimingModeAllowed = 0xffffffff, รีบูตและ voila! ทุกอย่างทำงานได้ ดังนั้น ฉันคิดว่าสิ่งที่ฉันต้องทำคือสิ่งต่อไปนี้ (ปัญหาเกี่ยวกับ Slave):

UserSlaveDeviceTimingModeAllowed = 0xffffffff, SlaveDeviceTimingModeAllowed = 0xffffffff, ResetErrorCountersOnSuccess = 1 และรีบูต

รูปภาพต่อไปนี้แสดงสถานะสุดท้ายของรีจิสทรีหลังจากการรีบูต ขณะนี้โหมดต่างๆ เหมือนเดิม หน้ากากถูกเก็บรักษาไว้ และใน Device Manager เราจะเห็นภาพเหมือนตอนต้นโพสต์

ตอนนี้เกี่ยวกับเหตุผลดังต่อไปนี้จากบทความ MS เหตุผลประการหนึ่งในการแก้ไขไดรเวอร์คือเวลาที่รอเพื่อให้ HDD เริ่มทำงานไม่เพียงพอ (ใน Win2000 คือ 4 วินาที พวกเขาทำให้มันเป็น 10 วินาที) และนี่เป็นปัญหาเมื่อดิสก์มา นอนไม่หลับ ฉันใช้การตั้งค่านี้เพื่อปิดดิสก์อย่างต่อเนื่องหลังจากไม่มีการใช้งานหลังจากผ่านไป 2 ชั่วโมง ซึ่งบางครั้งก็ทำให้ดิสก์ตื่นขึ้นมาแบบสุ่มเมื่อบางแอปพลิเคชันต้องการเข้าถึงหลายพาร์ติชันพร้อมกัน ฉันเชื่อว่าบางทีในบางสถานการณ์ อาจเกินการหมดเวลาและมีการบันทึกความล้มเหลวซึ่งทำให้ UDMA ถูกปิดใช้งาน ตอนนี้ฉันปฏิเสธที่จะถอดดิสก์ออกและปล่อยให้มันทำงานต่อไป เปิดเครื่องบ่อยครั้งและการปิดระบบอาจส่งผลเสียมากกว่าผลดี

สวัสดีทุกคน วันนี้เราจะพูดถึง DMA: เทคโนโลยีที่ช่วยให้คอมพิวเตอร์ของคุณเล่นเพลงให้คุณ แสดงภาพบนหน้าจอ เขียนข้อมูลลงในฮาร์ดไดรฟ์ และในขณะเดียวกันก็ทำให้มีภาระงานน้อยในโปรเซสเซอร์กลาง

DMA มันคืออะไร? คุณกำลังพูดถึงอะไร?

DMA หรือ Direct Memory Access เป็นเทคโนโลยีสำหรับการเข้าถึงหน่วยความจำโดยตรง โดยไม่ผ่านโปรเซสเซอร์กลาง ในยุคของยุค 486 และ Pentium รุ่นแรก บัส ISA ครองตำแหน่งสูงสุด เช่นเดียวกับวิธีการแลกเปลี่ยนข้อมูลระหว่างอุปกรณ์ - PIO (อินพุต/เอาท์พุตที่ตั้งโปรแกรมไว้)

PIO นั้นเรียบง่ายโดยเนื้อแท้: เพื่อที่จะรับข้อมูลจากอุปกรณ์ ไดรเวอร์ระบบปฏิบัติการ (หรือเฟิร์มแวร์ของอุปกรณ์อื่น) จะต้องอ่านข้อมูลนี้จากการลงทะเบียนอุปกรณ์ ลองดูตัวอย่าง:

  • ข้อมูล 1,500 ไบต์มาถึงการ์ดเครือข่าย
  • การ์ดเครือข่ายเริ่มต้นการขัดจังหวะเพื่อแจ้งให้โปรเซสเซอร์ทราบว่าต้องดึงข้อมูลจากอุปกรณ์ ไม่เช่นนั้นจะเกิดบัฟเฟอร์โอเวอร์รันที่เรียกว่าเกิดขึ้น
  • ระบบปฏิบัติการจะจับการขัดจังหวะจากตัวควบคุมการขัดจังหวะและส่งไปยังไดรเวอร์เพื่อทำการประมวลผล
  • ไดรเวอร์อ่านข้อมูลจากรีจิสเตอร์ของการ์ดเครือข่ายแบบวนซ้ำแบบไบต์ต่อไบต์
เป็นผลให้หากการอ่านหนึ่งไบต์ใช้เวลาประมาณ 1 มิลลิวินาทีของเวลาประมวลผล ดังนั้นการอ่าน 1,500 ไบต์จะใช้เวลา 1,500 มิลลิวินาที แต่นี่เป็นเพียงแพ็กเก็ตอีเทอร์เน็ตเดียว ลองนึกดูว่าการ์ดเครือข่ายได้รับกี่แพ็กเก็ตเมื่อคุณอ่าน Habrahabr ที่คุณชื่นชอบ แน่นอนว่าในความเป็นจริง การอ่านในโหมด PIO สามารถจัดเป็น 2.4 ไบต์ได้ แต่การสูญเสียประสิทธิภาพจะยังคงเป็นหายนะ

เมื่อปริมาณข้อมูลที่ประมวลผลโดยโปรเซสเซอร์เริ่มเพิ่มขึ้น เห็นได้ชัดว่าจำเป็นต้องลดการมีส่วนร่วมของโปรเซสเซอร์ในห่วงโซ่การแลกเปลี่ยนข้อมูลให้เหลือน้อยที่สุด ไม่เช่นนั้นสิ่งต่างๆ อาจเป็นเรื่องยาก จากนั้นเทคโนโลยีการเข้าถึงหน่วยความจำโดยตรงก็พบว่ามีการใช้งานอยู่

อย่างไรก็ตาม DMA ไม่เพียงแต่ใช้เพื่อแลกเปลี่ยนข้อมูลระหว่างอุปกรณ์และ RAM เท่านั้น แต่ยังรวมถึงระหว่างอุปกรณ์ในระบบด้วย การถ่ายโอน DMA สามารถทำได้ระหว่าง RAM สองส่วน (แม้ว่าการซ้อมรบนี้จะใช้ไม่ได้กับสถาปัตยกรรม x86) นอกจากนี้ในโปรเซสเซอร์เซลล์ IBM ยังใช้ DMA เป็นกลไกการสื่อสารหลักระหว่างองค์ประกอบการประมวลผลเสริมฤทธิ์กัน (SPE) และองค์ประกอบการประมวลผลกลาง (PPE) นอกจากนี้ SPE และ PPE แต่ละตัวสามารถแลกเปลี่ยนข้อมูลผ่าน DMA ได้ด้วย แรม. เทคนิคนี้– จริงๆ แล้วเป็นข้อได้เปรียบที่สำคัญของ Cell เนื่องจากจะช่วยขจัดปัญหาการเชื่อมโยงกันของแคชในระหว่างการประมวลผลข้อมูลแบบมัลติโปรเซสเซอร์

และทฤษฎีอีกครั้ง

ก่อนที่เราจะลงมือปฏิบัติ ฉันอยากจะเน้นบางส่วนก่อน ประเด็นสำคัญการเขียนโปรแกรมอุปกรณ์ PCI, PCI-E

ฉันพูดถึงการลงทะเบียนอุปกรณ์โดยย่อ แต่ CPU เข้าถึงได้อย่างไร อย่างที่หลายท่านทราบ มีตัวตนเช่นนี้อยู่ในนั้น เทคโนโลยีคอมพิวเตอร์เช่นพอร์ต IO (พอร์ตอินพุต/เอาต์พุต) ได้รับการออกแบบมาเพื่อแลกเปลี่ยนข้อมูลระหว่างโปรเซสเซอร์กลางและ อุปกรณ์ต่อพ่วงและสามารถเข้าถึงได้โดยใช้คำแนะนำการประกอบพิเศษ - เข้า/ออก BIOS (หรือ OpenFirmware บนระบบที่ใช้ PPC) ในระยะแรกของการเริ่มต้น อุปกรณ์ PCIเช่นเดียวกับตัวควบคุมอื่นๆ (ตัวควบคุม Super IO, ตัวควบคุมอุปกรณ์ PS/2, ตัวจับเวลา ACPI ฯลฯ) จะกำหนดช่วงพอร์ต IO ของตัวเองให้กับตัวควบคุมเฉพาะ โดยที่การลงทะเบียนอุปกรณ์จะถูกแมป

นอกจากนี้ การลงทะเบียนอุปกรณ์ยังสามารถแมปกับ RAM (Memory Mapped Registers) ได้ เช่น ไปยังพื้นที่ที่อยู่ทางกายภาพ วิธีนี้มีข้อดีหลายประการ กล่าวคือ:

  • ความเร็วในการเข้าถึง หน่วยความจำกายภาพสูงกว่าพอร์ต IO
  • พอร์ต IO สามารถแมปรีจิสเตอร์ได้สูงสุด 65,535 ไบต์ ในขณะที่ขนาด RAM คอมพิวเตอร์สมัยใหม่มากขึ้นอีกหลายครั้ง
  • การอ่านการลงทะเบียนอุปกรณ์จาก RAM นั้นง่ายกว่าการใช้พอร์ต IO :)
ข้อมูลเกี่ยวกับช่วงของพอร์ต IO หรือ RAM ที่กำหนดให้กับอุปกรณ์นั้นจะถูกจัดเก็บไว้ในพื้นที่การกำหนดค่า PCI ได้แก่ ในการลงทะเบียน BAR0, BAR1, BAR2, BAR4, BAR5

ดังนั้นจึงมีสองวิธีในการรีไซเคิล DMA: DMA ที่ต่อเนื่องกัน และ DMA แบบกระจาย/รวบรวม

DMA ที่ต่อเนื่องกัน

วิธีนี้ง่ายมากและปัจจุบันเกือบจะล้าสมัยแล้ว แต่ยังคงใช้สำหรับการเขียนโปรแกรม ตัวควบคุมเสียง(เช่น Envy24HT) หลักการมีดังนี้:
  • จัดสรรบัฟเฟอร์หนึ่งอันก็เพียงพอแล้ว ขนาดใหญ่ในแรม
  • ที่อยู่ทางกายภาพ (หรือแม่นยำกว่านั้นคือที่อยู่บนบัสของส่วนหน่วยความจำ เนื่องจากที่อยู่จริงและที่อยู่บัสเท่ากันในสถาปัตยกรรม x86 แต่ไม่เท่ากันใน PPC) ของบัฟเฟอร์นี้จะถูกเขียนไปยังการลงทะเบียนอุปกรณ์
  • เมื่อข้อมูลมาถึงอุปกรณ์ ตัวควบคุมอุปกรณ์จะเริ่มการถ่ายโอน DMA
  • เมื่อบัฟเฟอร์เต็มแล้ว ตัวควบคุมอุปกรณ์จะเริ่มการขัดจังหวะเพื่อรายงาน โปรเซสเซอร์กลางว่าบัฟเฟอร์ควรถูกส่งผ่านไปยังระบบปฏิบัติการ
  • ไดรเวอร์ระบบปฏิบัติการจะประมวลผลการขัดจังหวะและส่งผ่านข้อมูลที่ได้รับจากบัฟเฟอร์ต่อไปตามสแต็กอุปกรณ์ระบบปฏิบัติการ
อย่างที่คุณเห็นทุกอย่างค่อนข้างเรียบง่ายและทันทีที่บัส ISA ได้รับการสนับสนุน DMA วิธีนี้ได้พบแอปพลิเคชั่นที่กว้างขวางมาก ตัวอย่างเช่นไดรเวอร์ การ์ดเครือข่ายมีบัฟเฟอร์ DMA สองตัว: อันหนึ่งสำหรับรับข้อมูล (rx) และอีกอันสำหรับส่ง (tx)

กระจาย/รวบรวม DMA

ด้วยการเจริญเติบโต ความเร็วอีเธอร์เน็ตอะแดปเตอร์ DMA ที่อยู่ติดกันแสดงให้เห็นความไม่สอดคล้องกัน สาเหตุหลักมาจากความจริงที่ว่าจำเป็นต้องใช้พื้นที่หน่วยความจำขนาดใหญ่ซึ่งบางครั้งก็ไม่สามารถจัดสรรได้ตั้งแต่นั้นมา ระบบที่ทันสมัยการกระจายตัวของหน่วยความจำกายภาพค่อนข้างสูง มันเป็นความผิดของกลไกทั้งหมด หน่วยความจำเสมือนโดยที่คุณไม่สามารถไปไหนได้ทุกวันนี้ :)

วิธีแก้ปัญหาแนะนำตัวเอง: ใช้หลาย ๆ ส่วนแทนส่วนหน่วยความจำขนาดใหญ่ส่วนเดียว แต่เข้า ภูมิภาคต่างๆความทรงจำนี้เอง คำถามเกิดขึ้น แต่คุณจะบอกคอนโทรลเลอร์อุปกรณ์ได้อย่างไรว่าจะเริ่มการถ่ายโอน DMA และที่อยู่ใดที่จะเขียนข้อมูล จากนั้นพวกเขาก็พบวิธีแก้ปัญหา ให้ใช้ตัวอธิบายเพื่ออธิบายแต่ละพื้นที่ใน RAM

ตัวอธิบายบัฟเฟอร์ DMA ทั่วไปประกอบด้วยฟิลด์ต่อไปนี้:

  1. ที่อยู่ของส่วน RAM (ได้แก่ ที่อยู่บัส) ซึ่งมีไว้สำหรับการถ่ายโอน DMA
  2. ขนาดของส่วนที่อธิบายไว้ของ RAM
  3. แฟล็กเผื่อเลือกและอาร์กิวเมนต์เฉพาะอื่นๆ
  4. ที่อยู่ของคำอธิบายถัดไปในหน่วยความจำ
โครงสร้างของตัวอธิบายถูกกำหนดโดยผู้ผลิตตัวควบคุมอุปกรณ์เฉพาะ และอาจมีฟิลด์อื่นๆ ตัวอธิบาย เช่นเดียวกับบัฟเฟอร์ DMA อยู่ใน RAM

อัลกอริธึม DMA แบบกระจาย/รวบรวมเป็นดังนี้:

  • ไดรเวอร์ระบบปฏิบัติการจัดสรรและเตรียมใช้งานตัวอธิบายบัฟเฟอร์ DMA
  • ไดรเวอร์จัดสรรบัฟเฟอร์ DMA (ส่วนของ RAM สำหรับการถ่ายโอน DMA) และเขียนข้อมูลที่จำเป็นเกี่ยวกับบัฟเฟอร์เหล่านั้นลงในคำอธิบาย
  • อุปกรณ์จะเติมบัฟเฟอร์ DMA ตามความจำเป็น และหลังจากเติมบัฟเฟอร์ตั้งแต่หนึ่งบัฟเฟอร์ขึ้นไป อุปกรณ์จะเริ่มต้นการขัดจังหวะ
  • ไดรเวอร์ OS จะดูตัวอธิบายบัฟเฟอร์ DMA ทั้งหมด กำหนดว่าตัวอธิบายบัฟเฟอร์ตัวใดถูกเติมโดยตัวควบคุมอุปกรณ์ ส่งต่อข้อมูลจากบัฟเฟอร์ลงไปตามสแตกอุปกรณ์ และทำเครื่องหมายบัฟเฟอร์ว่าพร้อมสำหรับการถ่ายโอน DMA
ลำดับที่ตัวควบคุมอุปกรณ์เติมบัฟเฟอร์ DMA จะถูกกำหนดโดยผู้ผลิต คอนโทรลเลอร์สามารถเขียนไปยังบัฟเฟอร์ DMA ว่างตัวแรก หรือเพียงเขียนในแถว (ตัวอธิบายบัฟเฟอร์ DMA ในกรณีนี้จะสร้างรายการริงที่เชื่อมโยงเดี่ยว) ลงในบัฟเฟอร์ทั้งหมด ฯลฯ

หยุด...

วันนี้คงพอแค่นี้ ไม่งั้นข้อมูลจะเยอะเกินไป ในบทความถัดไป ฉันจะแสดงให้คุณเห็นว่า IOKit ทำงานอย่างไรกับเวทมนตร์บนท้องถนนนี้ ฉันรอคอยที่จะแสดงความคิดเห็นและการเพิ่มเติมของคุณ;)