ไมโครโปรเซสเซอร์ - 8257 DMA Controller

DMA ย่อมาจาก Direct Memory Access ได้รับการออกแบบโดย Intel เพื่อถ่ายโอนข้อมูลในอัตราที่เร็วที่สุด ช่วยให้อุปกรณ์สามารถถ่ายโอนข้อมูลไปยัง / จากหน่วยความจำได้โดยตรงโดยไม่มีการรบกวนของ CPU

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

DMA ดำเนินการอย่างไร?

ต่อไปนี้เป็นลำดับของการดำเนินการโดย DMA -

  • ในขั้นต้นเมื่ออุปกรณ์ใด ๆ ต้องส่งข้อมูลระหว่างอุปกรณ์และหน่วยความจำอุปกรณ์จะต้องส่งคำขอ DMA (DRQ) ไปยังตัวควบคุม DMA

  • ตัวควบคุม DMA ส่งคำขอ Hold (HRQ) ไปยัง CPU และรอให้ CPU ยืนยัน HLDA

  • จากนั้นไมโครโปรเซสเซอร์จะระบุสถานะบัสข้อมูลบัสแอดเดรสและบัสควบคุมทั้งหมด CPU ออกจากการควบคุมบัสและรับทราบคำขอ HOLD ผ่านสัญญาณ HLDA

  • ตอนนี้ CPU อยู่ในสถานะ HOLD และคอนโทรลเลอร์ DMA ต้องจัดการการทำงานบนบัสระหว่าง CPU หน่วยความจำและอุปกรณ์ I / O

คุณสมบัติของ 8257

นี่คือรายการคุณสมบัติเด่นบางประการของ 8257 -

  • มีสี่ช่องสัญญาณซึ่งสามารถใช้กับอุปกรณ์ I / O สี่เครื่อง

  • แต่ละช่องมีที่อยู่ 16 บิตและตัวนับ 14 บิต

  • แต่ละช่องสามารถถ่ายโอนข้อมูลได้สูงสุด 64kb

  • แต่ละช่องสามารถตั้งโปรแกรมได้อย่างอิสระ

  • แต่ละช่องสามารถดำเนินการอ่านโอนเขียนโอนและตรวจสอบการดำเนินการโอน

  • สร้างสัญญาณ MARK ไปยังอุปกรณ์ต่อพ่วงที่มีการถ่ายโอน 128 ไบต์

  • ต้องใช้นาฬิกาเฟสเดียว

  • ความถี่มีตั้งแต่ 250Hz ถึง 3MHz

  • มันทำงานใน 2 โหมดกล่าวคือ Master mode และ Slave mode.

8257 สถาปัตยกรรม

ภาพต่อไปนี้แสดงสถาปัตยกรรมของ 8257 -

8257 พินคำอธิบาย

ภาพต่อไปนี้แสดงแผนภาพพินของคอนโทรลเลอร์ 8257 DMA -

DRQ 0 −DRQ3

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

DACK o - DACK 3

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

o - ง7

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

IOR

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

IOW

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

CLK

เป็นสัญญาณความถี่นาฬิกาที่จำเป็นสำหรับการทำงานภายในของ 8257

รีเซ็ต

สัญญาณนี้ใช้เพื่อรีเซ็ตคอนโทรลเลอร์ DMA โดยปิดใช้งานช่อง DMA ทั้งหมด

o - ก3

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

CS

มันเป็นสายการเลือกชิปที่ใช้งานต่ำ ในโหมด Slave จะเปิดใช้งานการอ่าน / เขียนไปยัง / จาก 8257 ในโหมดหลักจะปิดใช้งานการอ่าน / เขียนไปยัง / จาก 8257

4 - ก7

นี่คือการตอดที่สูงขึ้นของที่อยู่ไบต์ที่ต่ำกว่าที่สร้างโดย DMA ในโหมดหลัก

พร้อม

เป็นสัญญาณอินพุตแบบอะซิงโครนัสที่มีการใช้งานสูงซึ่งทำให้ DMA พร้อมโดยการใส่สถานะรอ

HRQ

สัญญาณนี้ใช้เพื่อรับสัญญาณขอพักจากอุปกรณ์เอาท์พุต ในโหมดทาสจะเชื่อมต่อด้วยสายอินพุต DRQ 8257 ในโหมด Master จะเชื่อมต่อกับอินพุต HOLD ของ CPU

HLDA

เป็นสัญญาณตอบรับการระงับซึ่งระบุตัวควบคุม DMA ว่า CPU ได้รับบัสให้กับอุปกรณ์ต่อพ่วงที่ร้องขอโดย CPU เมื่อตั้งค่าเป็น 1

MEMR

เป็นสัญญาณการอ่านหน่วยความจำต่ำซึ่งใช้ในการอ่านข้อมูลจากตำแหน่งหน่วยความจำที่กำหนดแอดเดรสระหว่างรอบการอ่าน DMA

MEMW

เป็นสัญญาณสามสถานะที่ใช้งานอยู่ต่ำซึ่งใช้ในการเขียนข้อมูลไปยังตำแหน่งหน่วยความจำที่กำหนดแอดเดรสระหว่างการดำเนินการเขียน DMA

ADST

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

AEN

สัญญาณนี้ใช้เพื่อปิดใช้งานแอดเดรสบัส / บัสข้อมูล

TC

ย่อมาจาก 'Terminal Count' ซึ่งระบุวัฏจักร DMA ปัจจุบันไปยังอุปกรณ์ต่อพ่วงในปัจจุบัน

เครื่องหมาย

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

V ซีซี

เป็นสัญญาณไฟที่จำเป็นสำหรับการทำงานของวงจร