Input / Output ธนวัฒน์ แซ่เอียบ
External Device Memory memory operation เพื่อเข้าถึง data หรือ instruction ของหน่วยความจำ I/O I/O operation เพื่อแลกเปลี่ยนข้อมูลระหว่างอุปกรณ์ภายนอกและคอมพิวเตอร์ ข้อมูลเช่น control status และ data ผู้รับผิดชอบการแลกเปลี่ยนข้อมูลนี้เรียกว่า I/O module อุปกรณ์ภายนอกที่เชื่อมต่อกับ I/O module เรียกว่า peripheral device
External Device แบ่ง external device ออกได้ 3 กลุ่ม Human readable เช่น video display และ printer Machine readable เช่น magnetic disk และ sensors Communication เช่น การ์ดแลน
External Device
External Device Control signal ฟังก์ชันที่อุปกรณ์จะต้องปฏิบัติ เช่น READ (อ่านข้อมูลแล้วส่งให้กับ I/O module), WRITE (รับข้อมูลแล้วทำการบันทึก) Status signals บ่งบอก state ของอุปกรณ์ เช่น READY หรือ NOT-READY Data คือกลุ่มของ บิตที่จะถูกส่งหรือรับกับ I/O module Transducer ตัวเปลี่ยนแปลงระหว่าง data ของ electrical กับ พลังงานรูปแบบอื่น Buffer คือที่พักชั่วคราวในระหว่างเคลื่อนย้ายข้อมูลระหว่าง I/O module และอุปกรณ์ภายนอก เช่น มีขนาดของ buffer เท่ากับ 8 หรือ 16 บิต
External Device Keyboard/Monitor ปฏิสัมพันธ์ระหว่างคอมพิวเตอร์และผู้ใช้โดยทั่วไป ผู้ใช้นำเข้าข้อมูลผ่านทางคีย์บอร์ด ข้อมูลนี้จะถูกส่งไปให้กับคอมพิวเตอร์ และอาจจะถูกนำไปแสดงบนจอมอนิเตอร์ “K” “1001011” transducer
Typical I/O Data Rates
I/O modules เพราะเหตุใดจึงมี ? ประเภทของอุปกรณ์มีความแตกต่างกันมาก และแต่ละประเภทก็มีวิธี operation ก็มีไม่เหมือนกัน อัตราการส่งถ่ายข้อมูลของอุปกรณ์ภายนอกช้ากว่า meomey หรือ processor มาก รูปแบบและความยาวของข้อมูลของอุปกรณ์ต่างๆ ส่วนมากแตกต่างกับรูปแบบและความยาวของเครื่องคอมพิวเตอร์
I/O modules
I/O modules - Function Processor communication Device communication Control and timing ควบคุมการทำงานให้ถูกต้อง เช่น ควบคุมการส่งถ่ายข้อมูลจากอุปกรณ์ภายนอกให้กับโปรเซสเซอร์ Processor communication ติดต่อสื่อสารกับโปรเซสเซอร์ เช่น I/O module ของ disk อาจจะได้รับคำสั่ง เช่น READ SECTOR, WRITE SECTOR Device communication ติดต่อสื่อสารกับอุปกรณ์ภายนอก
I/O modules - Function Error detection Data buffering ทำหน้าที่รายงานข้อผิดพลาดที่เกิดขึ้นให้กับโปรเซสเซอร์ เช่น paper jam, bad disk track
I/O Steps ขั้นตอนของ I/O CPU ตรวจสอบสถานะของอุปกรณ์ที่ต้องการผ่านทาง I/O module I/O module ตอบกลับ ถ้า ready CPU อาจจะร้องขอข้อมูล I/O module ร้องขอข้อมูลจากอุปกรณ์ให้ I/O module ก็ส่งข้อมูลที่ได้ให้กับ CPU
Input Output Techniques เทคนิคที่ใช้สำหรับ I/O operations 3 วิธี Programmed I/O Interrupt-driven I/O Direct Memory Access (DMA)
Programmed I/O เมื่อโปรเซสเซอร์ปฏิบัติงานโปรแกรม และพบกับคำสั่งที่เกี่ยวข้องกับ I/O และจากคำสั่งนี้ โปรเซสเซอร์จะออกคำสั่งที่เหมาะสมให้กับ I/O module I/O module จะปฏิบัติงานตามคำสั่งที่ได้รับ แล้วกำหนดบิตให้กับ I/O status register ความรับผิดชอบจึงเป็นของ CPU CPU จะต้องตรวจสอบ status ของ I/O module เป็นระยะ ไปจนกระทั่ง operation สมบูรณ์
Programmed I/O
Programmed I/O 1 2 3 Memory module CPU I/O module peripheral READ Check status I/O module peripheral Data
Interrupt-driven I/O ปัญหาของ programmed I/O คือโปรเซสเซอร์ใช้เวลาในการรอคอยให้ I/O module ทำงานได้อย่างสมบูรณ์ วิธีการแก้ปัญหา ให้ CPU ออกคำสั่ง I/O ให้กับ I/O module หลังจากนั้นก็ทำงานคำสั่งอื่นต่อไป และเมื่อพร้อมที่จะส่งข้อมูลให้กับโปรเซสเซอร์ I/O module จะไปขัดจังหวะโปรเซสเซอร์ เพื่อให้โปรเซสเซอร์มาทำการเคลื่อนย้ายข้อมูล
Interrupt-driven I/O เมื่อมี interrupt มีอะไรเปลี่ยนแปลงบ้าง แต่ละ Instruction Cycle ในขั้นตอนสุดท้ายโปรเซสเซอร์จะต้องตรวจสอบว่า มี interrupt เกิดขึ้นหรือไม่ ถ้ามี interrupt โปรเซสเซอร์จะบันทึก context (program counter และรีจีสเตอร์ของโปรเซสเซอร์) ของคำสั่งโปรแกรมปัจจุบัน หลังจากนั้นโปรเซสเซอร์จึงทำงานตาม interrupt ที่เกิดขึ้น เช่น อ่าน data จาก I/O module แล้วนำไปเก็บที่ memory สุดท้ายนำ context ที่ได้จัดเก็บไว้กลับคืน เพื่อปฏิบัติงานของโปรแกรมก่อนการเกิด interrupt ต่อไป
Interrupt-driven I/O
Interrupt-driven I/O Memory module CPU I/O module peripheral READ Check status I/O module Next Instruction peripheral Data
Direct Memory Access ทั้ง 2 วิธีก่อนหน้านี้ยังคงมีข้อเสีย 1. อัตราการส่งถ่ายข้อมูลของ I/O ช้ามาก 2. I/O transfer เพียงคำสั่งเดียวทำให้โปรเซสเซอร์ต้องปฏิบัติงานหลายคำสั่งขึ้นอยู่กับการเกิด interrupt
DMA module
DMA Function เพิ่ม module ใหม่ที่เรียกว่า DMA module ส่ง control signal (read หรือ write) หมายเลขของอุปกรณ์ จุดเริ่มต้น location ใน memory ที่ต้องการอ่านหรือเขียน จัดเก็บใน address register ของ DMA module จำนวของ words ที่ต้องการอ่านหรือเขียน จัดเก็บใน data count register ของ DMA module
Direct Memory Access Memory module CPU I/O module peripheral READ CPU DMA module Next Instruction I/O module peripheral Data
ที่มา William Stalling, Computer Organization and Architecture, USA