สถาปัตยกรรม I/O และบัส
สถาปัตยกรรม I/O กำหนดวิธีการที่โปรเซสเซอร์และหน่วยความจำสื่อสารกับอุปกรณ์ต่อพ่วงผ่านบัส, คอนโทรลเลอร์, การขัดจังหวะ และรูปแบบการกำหนดแอดเดรส ซึ่งควบคุมการไหลของคำสั่งและข้อมูลเข้าและออกจากโลกภายนอก
Definition
สถาปัตยกรรม I/O และบัส คือการจัดระเบียบและการเชื่อมต่อที่โปรเซสเซอร์และหน่วยความจำของคอมพิวเตอร์ใช้ในการแลกเปลี่ยนสัญญาณควบคุมและข้อมูลกับอุปกรณ์ต่อพ่วง รวมถึงการกำหนดแอดเดรสของรีจิสเตอร์อุปกรณ์และกลไกที่อุปกรณ์ใช้ในการร้องขอบริการ
Scope
หัวข้อนี้ครอบคลุมโครงสร้างของอินพุต/เอาต์พุต: บัสและการเชื่อมต่อแบบจุดต่อจุด, คอนโทรลเลอร์อุปกรณ์และรีจิสเตอร์, I/O แบบแมปหน่วยความจำเทียบกับ I/O แบบแมปพอร์ต, การสำรวจสถานะและการขัดจังหวะ I/O, และโปรโตคอลบัสและการจัดสรรการเข้าถึง โดยจะกล่าวถึงวิธีการเชื่อมต่อและควบคุมอุปกรณ์ ไม่รวมถึงกลไก DMA สำหรับการถ่ายโอนข้อมูลจำนวนมากและการจำลองเสมือน (การจำลองเสมือน I/O และ DMA) และสื่อจัดเก็บข้อมูลเอง (อุปกรณ์จัดเก็บข้อมูลสำรอง)
Core questions
- อุปกรณ์ต่อพ่วงถูกกำหนดแอดเดรสและควบคุมโดยโปรเซสเซอร์ได้อย่างไร?
- I/O แบบแมปหน่วยความจำและ I/O แบบแมปพอร์ตแตกต่างกันอย่างไร?
- การสำรวจสถานะและการขัดจังหวะ I/O มีประสิทธิภาพแตกต่างกันอย่างไร?
- บัสและการเชื่อมต่อแบบจุดต่อจุดจัดสรรและถ่ายโอนข้อมูลได้อย่างไร?
Key concepts
- คอนโทรลเลอร์อุปกรณ์และรีจิสเตอร์
- I/O แบบแมปหน่วยความจำ
- I/O แบบแมปพอร์ต
- การสำรวจสถานะ
- การขัดจังหวะและตัวจัดการการขัดจังหวะ
- บัสและการเชื่อมต่อ
- การจัดสรรการเข้าถึงบัส
- การกำหนดแอดเดรส I/O
Key theories
- I/O แบบขัดจังหวะ
- แทนที่จะสำรวจสถานะอุปกรณ์อย่างต่อเนื่อง โปรเซสเซอร์จะทำงานอื่นต่อไปและจะได้รับการแจ้งเตือนด้วยการขัดจังหวะเมื่ออุปกรณ์ต้องการความสนใจ ซึ่งช่วยเพิ่มประสิทธิภาพอย่างมากสำหรับอุปกรณ์ที่ทำงานช้าหรือไม่สม่ำเสมอ
Mechanisms
อุปกรณ์แต่ละชิ้นได้รับการจัดการโดยคอนโทรลเลอร์ที่เปิดเผยรีจิสเตอร์ซึ่งโปรเซสเซอร์อ่านและเขียนได้ ไม่ว่าจะผ่านแอดเดรสที่แมปกับหน่วยความจำหรือพอร์ต I/O พิเศษ โปรเซสเซอร์สามารถสำรวจสถานะของรีจิสเตอร์เหล่านี้ หรือมีประสิทธิภาพมากกว่านั้นคือการเปิดใช้งานการขัดจังหวะเพื่อให้เครื่องส่งสัญญาณเมื่อพร้อม บัสเชื่อมต่อส่วนประกอบต่างๆ และจัดสรรการเข้าถึงระหว่างมาสเตอร์หลายตัว ในขณะที่ระบบสมัยใหม่มีแนวโน้มที่จะใช้ลิงก์อนุกรมแบบจุดต่อจุดความเร็วสูงแทนบัสแบบขนานที่ใช้ร่วมกัน
Clinical relevance
สถาปัตยกรรม I/O กำหนดประสิทธิภาพที่ระบบสื่อสารกับอุปกรณ์จัดเก็บข้อมูล, เครือข่าย และอุปกรณ์อื่นๆ I/O แบบขัดจังหวะช่วยให้โปรเซสเซอร์ว่างสำหรับงานที่มีประโยชน์ และวิวัฒนาการจากบัสที่ใช้ร่วมกันไปสู่การเชื่อมต่ออนุกรมความเร็วสูง เช่น PCI Express เป็นพื้นฐานสำหรับแบนด์วิดท์ที่จำเป็นสำหรับฮาร์ดแวร์จัดเก็บข้อมูล, เครือข่าย และตัวเร่งความเร็วที่ทันสมัย
History
ระบบยุคแรกใช้ I/O แบบโปรแกรมและบัสแบบขนานที่ใช้ร่วมกันพร้อมการจัดสรรการเข้าถึงแบบรวมศูนย์ กลไกการขัดจังหวะและบัสมาตรฐาน เช่น ISA และ PCI ช่วยปรับปรุงความยืดหยุ่นและประสิทธิภาพ การเปลี่ยนไปใช้การเชื่อมต่ออนุกรมแบบจุดต่อจุดความเร็วสูง ซึ่งตัวอย่างเช่น PCI Express ได้แก้ไขข้อจำกัดด้านแบนด์วิดท์และการส่งสัญญาณของบัสแบบขนานที่ใช้ร่วมกัน
Key figures
- John L. Hennessy
- David A. Patterson
- Abraham Silberschatz
Related topics
Seminal works
- hennessy2019
- silberschatz2018
Frequently asked questions
- ความแตกต่างระหว่าง I/O แบบแมปหน่วยความจำและ I/O แบบแมปพอร์ตคืออะไร?
- I/O แบบแมปหน่วยความจำกำหนดแอดเดรสรีจิสเตอร์อุปกรณ์ภายในพื้นที่แอดเดรสหน่วยความจำปกติ ดังนั้นคำสั่งโหลดและจัดเก็บข้อมูลทั่วไปจึงสามารถเข้าถึงได้ I/O แบบแมปพอร์ตใช้พื้นที่แอดเดรสแยกต่างหากและคำสั่งพิเศษสำหรับการเข้าถึงอุปกรณ์ I/O แบบแมปหน่วยความจำเป็นที่นิยมมากกว่าในสถาปัตยกรรมสมัยใหม่
- เหตุใดการขัดจังหวะจึงดีกว่าการสำรวจสถานะสำหรับอุปกรณ์ส่วนใหญ่?
- การสำรวจสถานะทำให้โปรเซสเซอร์เสียรอบการทำงานในการตรวจสอบซ้ำๆ ว่าอุปกรณ์พร้อมหรือไม่ การขัดจังหวะช่วยให้โปรเซสเซอร์ทำงานอื่นได้และจะได้รับการแจ้งเตือนเมื่ออุปกรณ์ต้องการบริการจริงๆ เท่านั้น ซึ่งมีประสิทธิภาพมากกว่ามากสำหรับอุปกรณ์ที่ทำงานช้าหรือไม่ตอบสนองอย่างคาดเดาไม่ได้