Overview of I/O

Download Report

Transcript Overview of I/O

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 กลุ่ม
1. Human readable เช่น video display และ printer
2. Machine readable เช่น magnetic disk และ sensors
3. Communication เช่น การ์ดแลน
External Device
External Device
• Control signal
– ฟังก์ชนั ที่อุปกรณ์จะต้องปฏิบตั ิ เช่น READ (อ่านข้อมูลแล้วส่ งให้กบั
I/O module), WRITE (รับข้อมูลแล้วทาการบันทึก)
• Status signals บ่งบอก state ของอุปกรณ์ เช่น READY หรื อ NOTREADY
• Data คือกลุ่มของ บิตที่จะถูกส่ งหรื อรับกับ I/O module
• Transducer ตัวเปลี่ยนแปลงระหว่าง data ของ electrical กับ พลังงาน
รู ปแบบอื่น
• Buffer คือที่พกั ชัว่ คราวในระหว่างเคลื่อนย้ายข้อมูลระหว่าง I/O module
และอุปกรณ์ภายนอก เช่น มีขนาดของ buffer เท่ากับ 8 หรื อ 16 บิต
External Device
• Keyboard/Monitor
– ปฏิสมั พันธ์ระหว่างคอมพิวเตอร์และผูใ้ ช้โดยทัว่ ไป
– ผูใ้ ช้นาเข้าข้อมูลผ่านทางคียบ์ อร์ด ข้อมูลนี้จะถูกส่ งไปให้กบั
คอมพิวเตอร์ และอาจจะถูกนาไปแสดงบนจอมอนิเตอร์
“K”
transducer
“1001011”
Typical I/O Data Rates
I/O modules
• เพราะเหตุใดจึงมี ?
• ประเภทของอุปกรณ์มีความแตกต่างกันมาก และแต่ละประเภทก็มีวธิ ี
operation ก็มีไม่เหมือนกัน
• อัตราการส่ งถ่ายข้อมูลของอุปกรณ์ภายนอกช้ากว่า meomey หรื อ
processor มาก
• รู ปแบบและความยาวของข้อมูลของอุปกรณ์ต่างๆ ส่ วนมากแตกต่างกับ
รู ปแบบและความยาวของเครื่ องคอมพิวเตอร์
I/O modules
I/O modules - Function
• Control and timing
– ควบคุมการทางานให้ถูกต้อง เช่น ควบคุมการส่ งถ่ายข้อมูลจาก
อุปกรณ์ภายนอกให้กบั โปรเซสเซอร์
• Processor communication
– ติดต่อสื่ อสารกับโปรเซสเซอร์ เช่น I/O module ของ disk อาจจะ
ได้รับคาสัง่ เช่น READ SECTOR, WRITE SECTOR
• Device communication
– ติดต่อสื่ อสารกับอุปกรณ์ภายนอก
I/O modules - Function
• Data buffering
– เป็ นส่ วนที่สาคัญยิง่ ของ I/O module
• Error detection
– ทาหน้าที่รายงานข้อผิดพลาดที่เกิดขึ้นให้กบั โปรเซสเซอร์ เช่น 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
Memory module
1
CPU
2
READ
Check status
3
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
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
• เมื่อโปรเซสเซอร์ตอ้ งการอ่านหรื อเขียนข้อมูล ก็จะออกคาสัง่ ไปที่ DMA
module
– ส่ ง control signal (read หรื อ write)
– หมายเลขของอุปกรณ์
– จุดเริ่ มต้น location ใน memory ที่ตอ้ งการอ่านหรื อเขียน จัดเก็บใน
address register ของ DMA module
– จานวของ words ที่ตอ้ งการอ่านหรื อเขียน จัดเก็บใน data count
register ของ DMA module
Direct Memory Access
Memory module
READ
CPU
DMA module
Next Instruction
I/O module
peripheral
Data
ที่มา
• William Stalling, Computer Organization and Architecture, USA