วันศุกร์ที่ 13 มีนาคม พ.ศ. 2552

บทที่ 11 - อินพุต/เอาต์พุต (Input/Output)

อินพุต/เอาต์พุต
(Input/Output)
อินพุต/เอาต์พุต (Input/Output)
- การใช้ประโยชน์ของระบบคอมพิวเตอร์ขึ้นอยู่กับสิ่งอำนวยความสะดวกทางอินพุต/เอาต์พุต หรือไอโอ
(I/O : Input/Output) ซึ่งเป็นการติดต่อระหว่างผู้ใช้กับคอมพิวเตอร์
- การเพิ่มความเร็วของพีซีโดยเพิ่มความเร็วของโปรเซสเซอร์ แต่ถ้าไม่ลดข้อจำกัดความเร็วในการทำงานกับไอโอจะทำให้
ประสิทธิภาพของคอมพิวเตอร์ไม่ดีเท่าที่ควร
- กำหนดโครงสร้างอินพุตและเอาต์พุตในคอมพิวเตอร์โดยการให้มีตะกร้าอินพุต และตะกร้าเอาต์พุต
แต่ละคำสั่งของอินพุตจะถ่ายโอนข้อมูลตะกร้าอินพุตไปยังเครื่องคิดเลข
- ในแต่ละคำสั่งของเอาต์พุตจะทำการถ่ายโอนข้อมูลออกจากเครื่องคิดเลขไปไว้ในตะกร้าเอาต์พุต
- ในคอมพิวเตอร์จริง ตะกร้าอินพุตและตะกร้าเอาต์พุตจะถูกแทนด้วยบัสอินเทอร์เฟซ
- ปริมาณการถ่ายโอนข้อมูลของไอโอที่ทำงานร่วมกันหลายตัวมีผลต่อการทำงาน โดยเฉพาะไอโอที่มีความเร็วในการถ่ายโอน
ข้อมูลต่างกันเป็นอย่างมาก ทำให้ต้องมีการซิงโครไนซ์เพื่อป้องกันข้อมูลสูญหาย
- การทำงานของไอโอจะใช้เวลาซีพียูมาก เนื่องจากเวลาส่วนมากเกิดจากการรอจนกว่างานจะเสร็จสมบูรณ์
- มีวิธีการมากมายถูกนำมาใช้เพื่อแก้ปัญหาการซิงโครไนซ์และควบคุมการทำงานของไอโอในระหว่างที่ไอโอดีไวซ์ที่หลากหลาย
กำลังทำงานในปริมาณข้อมูลและความเร็วที่ต่างกัน
คุณสมบัติพื้นฐานของอินพุต/เอาต์พุต
- คีย์บอร์ดเป็นดีไวซ์สำหรับอินพุต อินพุตพื้นฐานที่เป็นตัวอักษร ที่มีอัตราการถ่ายโอนข้อมูลเป็นไปอย่างช้ามากเพื่อเปรียบเทียบ
กับการโปรเซสของซีพียู เนื่องจากความเร็วในการคีย์ของผู้ใช้งาน ปกติคอมพิวเตอร์ทำงานเพียงงานเดียว ซีพียูจะใช้เวลาส่วนมาก
ในการรออินพุตจากคีย์บอร์ด ทำให้คอมพิวเตอร์ทำงานไม่เต็มประสิทธิภาพ
- การอินพุตด้วยคีย์บอร์ดมี 2 ประเภท
- อินพุตที่แอปพลิเคชันคาดหมายไว้ (expected input) ในการตอบสนองโปรแกรมที่ร้องขอข้อมูล
- อินพุตที่ไม่ได้คาดหมาย (unexpected input) เช่น การกดคีย์ Control-Alt-Delete บนพีซีจะเป็น
การสตาร์ตคอมพิวเตอร์ใหม่ เป็นต้น
- เมาส์เป็นอินพุตดีไวซ์ที่สามารถสร้างอินพุตได้ทั้งที่คาดหมายและไม่ได้คาดหมาย เมื่อเคลื่อนเมาส์แล้วคลิกจะเปลี่ยน
วิธีเอ็กซิคิวต์โปรแกรม
- จอภาพและเครื่องพิมพ์ทำงานในอัตราการถ่ายโอนข้อมูลที่กว้าง (ตั้งแต่ความเร็วต่ำไปจนถึงความเร็วสูง)
- สำหรับเอาต์พุตที่เป็นกราฟิก อาจจะอยู่ในรูปแบบออปเจ็กต์ หรือบิตแมพ ก็ได้ แต่ส่วนมากจะแสดงผลในรูปแบบของบิตแมพ
ซึ่งเป็นข้อมูลขนาดใหญ่ นอกจากนี้ทั้งภาพวีดิโอ ภาพกราฟิกความละเอียด กราฟิกเหล่านี้ต้องการการถ่ายโอนข้อมูลที่มีความเร็วสูง
เพื่อให้การใช้งานมีประสิทธิภาพ
- การที่ดิสก์เป็นดีไวซ์ที่ใช้ในการเก็บข้อมูลทำให้ดิสก์เป็นได้ทั้งอินพุตและเอาต์พุตแต่ในคนละเวลากัน
- การถ่ายโอนข้อมูลของดิสก์มีความเร็วสูง ดีวีรอมพยายามที่จะแสดงวิดีโอเต็มจอภาพในอัตราของภาพยนตร์อย่างต่อเนื่อง
จะต้องมีความคงที่ของข้อมูลที่มีอัตราอินพุตประมาณ 10 เมกะไบต์ต่อวินาที เนื่องจากเครือข่ายมีความเร็วสูง
ทำให้มีการใช้เครือข่ายแทนดิสก์ในการเก็บโปรแกรมและข้อมูลในคอมพิวเตอร์ที่อยู่ห่างไกล
ความต้องการทั่วไปสำหรับระบบคอมพิวเตอร์ที่รองรับไอโอ
- ต้องมีการกำหนดแอ็ดเดรสเฉพาะให้แต่ละดีไวซ์ที่ต่อพ่วง
- ต้องมีวิธีการที่ดีไวซ์ต่อพ่วงสามารถเริ่มสื่อสารกับซีพียู การควบคุมไอโอด้วยโปรแกรมมีความเหมาะสมเฉพาะสำหรับ
ดีไวซ์ที่มีความเร็วต่ำ และมีการถ่ายโอนข้อมูลเป็นเวิร์ด แต่สำหรับดีไวซ์ความเร็วสูงที่มีการถ่ายโอนข้อมูลเป็นบล็อก
จะมีการถ่ายโอนข้อมูลที่มีประสิทธิภาพสูงกว่าในการถ่ายโอนข้อมูลระหว่างไอโอกับหน่วยความจำ
- ต้องสามารถดูแลดีไวซ์ที่มีการควบคุมที่ต่างกันให้สามารถทำงานได้
การใช้อินเทอร์เฟซโมดูลในการเชื่อมต่อไอโอดีไวซ์โดยตรงกับซีพียู
- ความแตกต่างสำหรับแต่ละไอโอดีไวซ์รวมกับความจำเป็นในการกำหนดแอ็ดเดรส, การซิงโครไนซ์, สถานะ และความ
สามารถในการควบคุม ภายนอก ทำให้มีความจำเป็นที่จะต้องรองรับแต่ละดีไวซ์ด้วยอินเทอร์เฟซพิเศษโดยเฉพาะ
- โดยปกติไอโอดีไวซ์จะเชื่อมต่อกับซีพียูผ่านทางไอโอโมดูล (I/O module)
- ไอโอโมดูลต้องมีความสามารถในการถ่ายโอนข้อมูลเป็นบล็อกที่ใช้บัฟเฟอร์อย่างเหมาะสมและเป็นมาตรฐานในการ
อินเทอร์เฟซกับซีพียู และมีความสามารถในการควบคุมดีไวซ์พิเศษที่ถูกออกแบบขึ้นมาด้วย
- ไอโอโมดูลที่ควบคุมดีไวซ์ประเภทเดียวจะเรียกว่า “ดีไวซ์คอนโทรลเลอร์” ถ้ามีดีไวซ์มากขึ้น ต้องมีการกำหนดแอ็ดเดรส
เพื่อแยกออกจากโมดูลอื่น
การอินเทอร์เฟซของไอโอโมดูลของดิสก์คอนโทรลเลอร์กับดิสก์
อินพุต/เอาต์พุตโมดูล (I/O Modules)
- ฟังก์ชันของไอโอโมดูล รับแมสเสจที่เป็นแอ็ดเดรสเข้ามาแล้วรับคำสั่งจากซีพียูเพื่อทำงานกับดิสก์ที่กำหนด
- เตรียมบัพเฟอร์ไว้เพื่อพักข้อมูล จนกว่าจะถ่ายโอนมายังดิสก์ได้
- เตรียมรีจิสเตอร์ที่จำเป็น และสัญญาณควบคุมเพื่อการถ่ายโอนกับหน่วยความจำโดยตรง
- ควบคุมดิสก์ไดรฟ์ โดยการย้ายหัวอ่านไปยังตำแหน่งที่ต้องการเขียน
- ก็อปปี้ข้อมูลจากบัพเฟอร์ไปยังดิสก์
- มีความสามารถในการอินเทอร์รัพต์ เพื่อใช้ในการแจ้งข่าวให้ซีพียูทราบเมื่อการถ่ายโอนข้อมูลเสร็จเรียบร้อย
การเข้าถึงหน่วยความจำโดยตรง
- เหมาะสำหรับการถ่ายโอนข้อมูลบนดิสก์ความเร็วสูง
- ซีพียูไม่มีส่วนเกี่ยวข้องในขณะถ่ายโอน ทำให้สามารถทำงานอื่นได้
- มีประโยชน์เป็นอย่างมากในระบบมัลติยูเซอร์ การถ่ายโอนจะอยู่ในทิศทางใดทิศทางหนึ่ง
- ใช้โมดูลเพิ่มเติมที่เรียกว่า ดีเอ็มเอโมดูล (DMA Module) ในบัสหลัก
- เลียนแบบการทำงานของโปรเซสเซอร์ สามารถถ่ายโอนข้อมูลในหน่วยความจำผ่านบัสหลักได้
- ไม่ขัดขวางกาทำงานของโปรเซสเซอร์ ทำให้ทำงานได้อย่างต่อเนื่อง การทำงานแบบนี้เรียกว่า “การขโมยวงรอบเวลา”
(cycle stealing)

ไม่มีความคิดเห็น:

แสดงความคิดเห็น