บทที่ 6 การนำข้อมูลเข้าและการส่งข้อมูลออก
หน่วยรับส่งข้อมูลเข้าออก
ทำหน้าที่เป็นตัวกลางการถ่ายเทข้อมูลระหว่างระบบคอมพิวเตอร์กับโลกภายนอกโดยโลกภายนอกจะหมายถึงก่อนที่จะประมวลผลอุปกรณ์ที่ทำหน้าที่เป็นหน่วยรับข้อมูลเช่นแป้นพิมพ์
เมาส์ สแกนเนอร์ อุปกรณ์บริวารประเภทต่างๆ เช่น
แป้นพิมพ์ จอภาพ เครื่องพิมพ์ นอกจากนี้อุปกรณ์บริวารยังหมายถึง
อุปกรณ์ที่ใช้ในงานอื่นๆ ที่ต่อเชื่อมอยู่กับระบบคอมพิวเตอร์ เช่น
ในเครื่องคอมพิวเตอร์ที่ใช้ในกระบวนการผลิตในโรงงานอุตสาหกรรมอาจจะต่อเชื่อมอยู่กับอุปกรณ์วัดหรือควบคุมอุณหภูมิอุปกรณ์เครื่องมือวัดต่างๆ
เป็นต้น
หน่วยรับข้อมูล (Input Unit)
เป็นอุปกรณ์ที่ทำหน้าที่เป็นสื่อกลางระหว่างคอมพิวเตอร์กับผู้ใช้โดยรับคำสั่งหรือข้อมูลจากผู้ใช้แล้วแปลงให้อยู่ในรูปแบบสัญญาณไฟฟ้าที่เครื่องคอมพิวเตอร์สามารถเข้าใจ
หน่วยส่งออก
เป็นอุปกรณ์ที่ทำหน้าทีนำผลลัพธ์ที่ได้จากการทำงานของหน่วยประมวลผลกลางไปแปลงให้อยู่ในรูปแบบที่ผู้ใช้สามารถเข้าใจและนำไปใช้ประโยชน์ได้ อุปกรณ์ที่ทำหน้าที่เป็นหน่วยส่งออก เช่น ลำโพง จอภาพ อุปกรณ์ฉายภาพ เครื่องพิมพ์
หน้าที่ของหน่วยรับและส่งข้อมูล
หน่วยรับส่งข้อมูลเข้าออกหรือโมดูลไอโอ
จะเป็นตัวคั่นกลางระหว่างระบบคอมพิวเตอร์และอุปกรณ์ต่อพ่วงดังนั้นโมดูลไอโอซึ่งทำหน้าที่บริการทั้งสองด้าน
หน้าที่หลักของโมดูลไอโอ
- การควบคุมและรักษาจังหวะการทำงาน
- การสื่อสารกับโปรเซสเซอร์และสื่อสารกับอุปกรณ์ต่อพ่วง
- การจัดการบัฟเฟอร์
- การตรวจสอบข้อผิดพลาด
ในช่วงเวลาใดๆก็ตาม
โปรเซสเซอร์อาจจะทำการสื่อสารกับอุปกรณ์ภายนอกหนึ่งอย่างหรือมากกว่านี้ในรูปแบบที่ไม่สามารถคาดเดาได้
ซึ่งขึ้นอยู่กับความต้องการไอโอของโปรแกรมที่ทำงานอยู่ในเวลานั้น ทรัพยากรภายใน
เช่น หน่วยความจำหลักและบัสหลัก จะต้องถูกนำมาใช้ในงานร่วมกันระหว่างกิจกรรมหลายชนิด
ร่วมทั้งการอ่านหรือบันทึกข้อมูลผ่านโมดูลไอโอ ดังนั้นฟังก์ชันไอโอจึงหมายถึง
ความต้องการในการควบคุมและการจับเวลา(control and timing)เพื่อการประสานงานให้ข้อมูลสามารถไหลผ่านทางทรัพยากรภายในในอุปกรณ์ภายนอกได้ตัวอย่างเช่นการควบคุมการถ่ายเทข้อมูลจากอุปกรณ์ภายนอกมายังโปรเซสเซอร์อาจจะเกี่ยวพันกับการทำงานดังนี้
- โปรเซสเซอร์ทำการติดต่อกับโมดูลไอโอ
เพื่อตรวจสอบสถานะของอุปกรณ์ที่ต้องการใช้งาน
- โมดูลไอโอส่งข้อมูลแสดงสถานะกลับมาให้
- ถ้าอุปกรณ์นั้นสามารถใช้งานได้ และพร้อมที่จะถ่ายเทข้อมูล
โปรเซสเซอร์จะร้องขอถ่ายเทข้อมูลผ่านการออกคำสั่งไปยังโมดูลไอโอ
- โมดูลไอโอได้รับข้อมูลชุดแรก (8 บิตหรือ16 บิต)มาจากอุปกรณ์ภายนอก
- ข้อมูลถ่ายเทจากโมดูลไอโอต่อไปกับโปรเซสเซอร์
ถ้าระบบคอมพิวเตอร์มีบัสหลักใช้งานการโต้ตอบระหว่างโปรเซสเซอร์และโมดูลไอโอจะเกี่ยวข้องกับการถือครองบัสเหตุการณ์ที่สมมติยังแสดงให้เห็นว่าโมดูลไอโอจะต้องสื่อสารกับโปรเซสเซอร์และสื่อสารกับอุปกรณ์ภายนอก
การสื่อสารกับโปรเซสเซอร์เกี่ยวข้องกับสิ่งต่อไปนี้
- การถอดรหัสคำสั่ง (command decoding) : โมดูลไอโอรับคำสั่งจากโปรเซสเซอร์ซึ่งปกติจะส่งสัญญาณมาทางบัสควบคุมการทำงาน(controlbus)ตัวอย่างเช่นโมดูลไอโอสำหรับขับดิสก์จะรับคำสั่งเช่น READ
SECTOR,WRITE SECTOR,SEEK track number,และ SCAN record
ID คำสั่งสองคำสั่งหลังจำเป็นต้องมีการส่งผ่านตัวกำหนดค่ามาด้วย
ซึ่งจะส่งมาทางบัสสำหรับถ่ายเทข้อมูล
- ข้อมูล (Data) : โปรเซสเซอร์จะแลกเปลี่ยนข้อมูลกับโมดูลไอโอ
ผ่านทางบัสสำหรับถ่ายเทข้อมูล
- การรายงานสถานะ (status reporting) : เนื่องจากอุปกรณ์ต่อพ่วงมักจะมีความเร็วต่ำมาก
จึงมีความจำเป็นต้องทราบสถานะการทำงานของอุปกรณ์ตัวอย่างเช่นถ้าโมดูลไอโอถูกสั่งให้อ่านข้อมูลส่งมาให้โปรเซสเซอร์อุปกรณ์ดังกล่าวอาจจะยังไม่ว่างเนื่องจากกำลังให้บริการคำสั่งที่มาก่อนหน้านี้ข้อเท็จจริงข้อนี้สามารถส่งยังโปรเซสเซอร์ผ่านทางสัญญาณสถานะการทำงาน
ซึ่งโดทั่วไปมีอยู่สองอย่างคือ BUSY (ไม่-การรับรู้ที่อยู่
(address recognition):อุปกรณ์ไอโอก็คล้ายกับหน่วย ความจำ
คือแต่ละ เวิร์ด
จะมีหมายเลขที่อยู่เฉพาะเป็นของตนเองนั้นคืออุปกรณ์ไอโอแต่ละชิ้นจะต้องมีหมายเลขเฉพาะสำหรับการอ้างอิงเป็นของตนเองดังนั้นโมดูลไอโอจะต้องสามารถรับรู้หมายที่อยู่เฉพาะของอุปกรณ์แต่ละชนิดได้ อีกด้านหนึ่ง
โมดูลไอโอจะต้องสามารถสื่อสารกับอุปกรณ์ไอโอได้
การสื่อสารนี้ได้แก่การออกคำสั่งรายงานสถานะการทำงานและการถ่ายเทข้อมูลงานที่มีความสำคัญมากที่สุดส่วนหนึ่งของโมดูลไอโอคือการทำบัฟเฟอร์สำหรับข้อมูล
(data buffering) ความต้องการนี้จะถ่ายเทข้อมูลไปยังหรือมาจากหน่วยความหลักหรือโปรเซสเซอร์นั้นสูงมาก
แต่อัตราการถ่ายเทข้อมูลของอุปกรณ์ต่อพ่วงต่างๆ นั้นช้ามากกว่าหลายเท่าตัว
และยังมีอัตราการถ่ายเทที่แตกต่างกันในช่วงที่กว้างมากด้วยข้อมูลที่ถูกส่งมาจากหน่วยจำหลัก
ถูกส่งมายังโมดูลไอโอในลักษณะที่มีความเร็วสูงมากแต่เป็นช่วงสั้นๆเรียกว่าเบิรซท์ข้อมูลนั้นจะถูกเก็บไว้ในบัฟเฟอร์ของโมดูลไอโอ
จากนั้นจึงถูกส่งไปยังอุปกรณ์ต่อพ่วงด้วยความเร็วต่ำเท่ากับอุปกรณ์นั้นๆซึ่งในด้านที่รับข้อมูลนั้นก็จะทำงานที่ความเร็วสูงมากเพื่อไม่ให้หน่วยความจำต้องมาถูกบังคับให้ทำงานช้าลงเพราะอุปกรณ์ความเร็วต่ำ
โมดูลไอโอจึงสามารถทำงานเท่ากับหน่วยความจำและโปรเซสเซอร์และจะต้องสามารถทำงานได้ช้ามากเท่ากับความเร็วของอุปกรณ์ต่อพ่วงแต่ละตัวที่มีใช้งาน
ในทางกลับกันถ้าอุปกรณ์ไอโอทำงานที่ความเร็วสูงมากกว่าที่หน่วยความจำจะทำงานตามได้ทันแล้ว
โมดูลไอโอจะต้องใช้เทคนิคบัฟเฟอร์กับอุปกรณ์นั้น
โครงสร้างของโมดูลไอโอ
โมดูลไอโอแต่ละโมดูลมีความแตกต่างกันมากมายหลายแบบขึ้นอยู่กับชนิดและการทำงานของอุปกรณ์ต่อพ่วง
จำนวนอุปกรณ์ที่ต่อพ่วงโมดูลที่จะควบคุมได้ในที่นี้จะกล่าวถึงรูปแบบทั่วไปเท่านั้นแสดงบล็อไดอะแกรมของโมดูลไอโอทั่วไปโมดูลไอโอจะมีส่วนที่เชื่อมต่อระบบคอมพิวเตอร์โดยผ่าน
บัสหลัก ได้แก่ บัสข้อมูลบัสตำแหน่งและบัสควบคุม
ข้อมูลที่ส่งผ่านโมดูลจะผ่านบัฟเฟอร์ที่เป็นรีจีสเตอร์ข้อมูล
ซึ่งรีจีสเตอร์นี้จะทำหน้าที่พักข้อมูลที่รับจากซีพียูเพื่อส่งไปให้อุปกรณ์ต่อพ่วงหรือทำหน้าที่รับข้อมูลจากอุปกรณ์ต่อพ่วงเพื่อส่งไปให้ซีพียู
การควบคุมไอโอด้วยโปรแกรม
วิธีการทำงานของไอโอมีอยู่สามวิธีวิธีแรกคือการควบคุมด้วยโปรแกรม(programmed
I/O) ข้อมูลจะเกิดการแลกเปลี่ยนระหว่างโปรเซสเซอร์กับโมดูลไอโอ
โปรเซสเซอร์จะประมวลผลโปรแกรมที่เป็นการออกคำสั่งโดยตรงเกี่ยวกับการทำงานของไอโอรวมทั้งการตรวจสอบสถานะของอุปกรณ์
การสั่งอ่านหรือบันทึกข้อมูล และการถ่ายเทข้อมูล
เมื่อโปรเซสเซอร์ออกคำสั่งไปยังโมดูลไอโอ
โปรเซสเซอร์จะต้องรอจนกว่าการตอบสนองต่อคำสั่งนั้นจะสิ้นสุด
ถ้าโปรเซสเซอร์ทำงานได้เร็วกว่าโมดูลไอโอ
การรอคอยนี้จะเป็นการเสียเวลาของโปรเซสเซอร์เป็นอย่างยิ่ง วิธีที่สองเรียกว่า
การควบคุมไอโอผ่านกระบวนการอินเทอร์รัพท์ (Interrupt-driven I/O) โปรเซสเซอร์จะออกคำสั่งไอโอ แล้วหันกลับไปประมวลผลคำสั่งอื่นต่อไป
เมื่อโมดูลไอโอทำงานที่ได้รับมอบนั้นเสร็จเรียบร้อยแล้วก็จะส่งสัญญาณผ่านอินเทอร์รัพท์มาบอกให้ทราบ
ทั้งสองวิธีนี้โปรเซสเซอร์จะต้องรับผิดชอบในการดึงข้อมูลออกมาจากหน่วยความจำหลักและส่งไปให้โมดูลไอโอ
และจะต้องจัดการบันทึกข้อมูลที่ได้รับจากโมดูลไอโอเข้าไปในหน่วยความจำสำหรับการอ่านข้อมูล
วิธีที่สามคือ ดีเอ็มเอ หรือการเข้าถึงหน่วยความจำหลักโดยตรง(Direct memory
access: DMA) ด้วยวิธีการนี้
โมดูลไอโอและหน่วยความจำหลักจะแลกเปลี่ยนข้อมูลกันโดยตรง
โดยที่โปรเซสเซอร์จะมีส่วนร่วมในการทำงานน้อยมากการควบคุมไอโอด้วยโปรแกรมนั้น
เมื่อซีพียูประมวลผลโปรแกรมหลักจะทำการตรวจสอบรีจีสเตอร์สถานะ
(I/O status register) ของไอโอเป็นระยะ ๆ
(ตามเวลาที่กำหนดไว้) ว่าอุปกรณ์ต่อพ่วงใดแสดงความพร้อมที่จะขอติดต่อกับซีพียู
หรืออีกกรณีหนึ่งเมื่อซีพียูพบคำสั่งที่เกี่ยวข้องกับไอโอ
ซีพียูก็จะเรียกใช้ชุดคำสั่งหรือโปรแกรมย่อย เพื่อให้บริการอุปกรณ์ต่อพ่วงนั้น
จากนั้นก็จะเปลี่ยนบิตบอกสถานะของโมดูลไอโอให้เป็น “0” หรือเป็นค่าที่เหมาะสม
เพื่อเมื่อปฏิบัติเสร็จเรียบร้อยโมดูลไอโอก็จะไม่ทำอะไรต่อ
ดังนั้นจึงเป็นหน้าที่ของ ซีพียูที่จะคอยตรวจสอบ
ดูสถานะของโมดูลไอโอจนพบว่างานที่ได้สั่งให้ทำนั้นเสร็จเรียบร้อยแล้วในการประมวลผลคำสั่งที่เกี่ยวข้องกับไอโอ
ซีพียูจะต้องกำหนดหมายเลขที่อยู่หรือแอดเดรสของโมดูลไอโอและอุปกรณ์ต่อพ่วง
หรืออุปกรณ์ต่อพ่วงแต่ละชนิดจะได้รับหมายเลขที่ไม่ซ้ำกัน
เมื่อซีพียูส่งคำสั่งไอโอมายังโมดูลไอโอ
คำสั่งนั้นจะระบุหมายเลขที่อยู่ของอุปกรณ์ต่อพ่วงที่ต้องการไว้ด้วยเสมอ
ดังนั้นโมดูลไอโอจะต้องตรวจสอบสัญญาณที่มาตามสายสัญญาณว่าเป็นหมายเลขที่อยู่ของตนเองหรือไม่
คำสั่งที่ต้องการให้อุปกรณ์ต่อพ่วงปฏิบัติจะมี 4 อย่างด้วยกันคือ
- การควบคุม
(Control) ใช้ในการกระตุ้นให้อุปกรณ์ไอโอพร้อมที่จะปฏิบัติงาน
และบอกให้ทราบว่าจะต้องทำงานอะไร ตัวอย่างเช่น หน่วยเทปแม่เหล็กอาจได้รับคำสั่งให้ม้วนเทปกลับหรือหมุนเทปไปข้างหน้าหนึ่งระเบียน
คำสั่งเหล่านี้จะได้รับการปรับแต่งให้มีความเหมาะสมกับอุปกรณ์แต่ละชนิด
- การทดสอบ (Test) ใช้สำหรับการทดสอบสถานะการทำงานหลายอย่างของโมดูลไอโอและอุปกรณ์
โปรเซสเซอร์จะต้องการทราบว่าอุปกรณ์ที่ต้องการใช้งานนั้น
มีความพร้อมใช้งานอยู่หรือไม่
หรือต้องการทราบว่าคำสั่งที่ให้ปฏิบัติก่อนหน้านี้ได้เสร็จเรียบร้อยหรือยัง
หรือว่ามีข้อผิดพลาดใด ๆ เกิดขึ้นหรือไม่
- การอ่านข้อมูล
(Read) จะทำให้โมดูลไอโออ่านข้อมูลมาจากอุปกรณ์ที่ต่อพ่วงและใส่เข้าไว้ในบัฟเฟอร์ จากนั้นโปรเซสเซอร์จะสามารถนำข้อมูลไปใช้
โดยออกคำสั่งให้โมดูลไอโอใส่ข้อมูลเข้าไปในบัสนำสั่ง
- การบันทึกข้อมูล
(Write) จะทำให้โมดูลไอโอนำข้อมูล (ไบต์ หรือ
เวิร์ด) จากบัสนำส่งข้อมูล ไปส่งต่อให้กับอุปกรณ์ต่อพ่วงที่ต้องการ
การเข้าถึงหน่วยความจำโดยตรง
ข้อเสียของระบบไอโอที่ใช้กลไกอินทอร์รัพท์และไอโอที่โปรแกรมควบคุมแม้ว่าการควบคุมไอโอที่ใช้กลไกอินเทอร์รัพท์จะมีประสิทธิภาพมากกว่าการควบคุมโดยใช้โปรแกรมแต่ก็ยังต้องอาศัยการทำงานของโปรเซสเซอร์ในการถ่ายเทข้อมูลระหว่างหน่วยความจำและโมดูลไอโอนั้นคือข้อมูลทั้งหมด
(ไม่ว่าจะเป็นการอ่านหรือการบันทึกข้อมูล) จะต้องเดินทางผ่านโปรเซสเซอร์เสมอ
ทำให้เกิดประประสิทธิภาพต่ำเนื่องจาก
รบกวนที่เกี่ยวกับสนามแม่เหล็กไฟฟ้าจะมีน้อยกว่าอุปกรณ์ที่ทำงานด้วยความเร็วสูงด้วยเหตุนี้จึงมีความน่าเชื่อถือมากกว่าUSB มีรูปแบบความเร็วในการถ่ายเทข้อมูล 2 แบบ ได้แก่ แบบความเร็วสูงสุด ซึ่ง USB ใช้เพื่อการส่งข่าวสารและถ่ายเทข้อมูลที่ความเร็ว 12 Mbps อุปกรณ์ที่ทำงานความเร็วสูงสุด ได้แก่ ซิปไดรฟ์ สแกนเนอร์และเครื่องพิมพ์
เป็นต้น ส่วนแบบความเร็วต่ำอยู่ที่ 1.5 Mbps อุปกรณ์ที่ทำงานบนความเร็วต่ำ
ได้แก่ แป้นพิมพ์ เมาส์ จอยสติก เป็นต้น โดยมี USB Host ที่ตั้งบนเมนบอร์ด ทำหน้าที่จัดการดูแลช่องสัญญาณและความเร็วของUSBในแต่ละพอร์ต รวมทั้งควบคุมการสื่อสารและการถ่ายเทข้อมูล ระหว่าง USB
Host กับอุปกรณ์ USB
- อัตราการถ่ายเทข้อมูล
จะถูกกำจัดโดยความเร็วที่โปรเซสเซอร์สามารถจะให้บริการแก่อุปกรณ์นั้นๆ ได้
- โปรเซสเซอร์จะถูกดึงให้มาทำงานในระหว่างการถ่ายเทข้อมูลไอโอ
โปรเซสเซอร์จะต้องทำการประมวลผลคำสั่งจำนวนหนึ่งสำหรับการถ่ายเทข้อมูลไอโอแต่ละครั้ง
มาตรฐานการเชื่อมต่อ USB
USBย่อมาจาก Universal Serial Bus เป็นมาตรฐานการเชื่อมต่ออุปกรณ์ ไอโอ
ภายนอกแบบใหม่สำหรับเครื่องคอมพิวเตอร์ในระดับพีซีที่ใช้งานง่ายราคาถูก สามารถจัด
คอนฟิกูเรชันได้ง่ายอีกทั้งมีความเร็วอีกทั้งมีความเร็วในการถ่ายเทข้อมูลสูงสุด
ซึ่งสามารถสนับสนุนการถ่ายข้อมูลที่ความเร็ว12Mb/วินาทีลักษณะของข้อมูลสามารถเป็นได้ทั้งรูปแบบการถ่ายเทข้อมูลในลักษณะกระแสและแพ็กเก็ต
(Packet ในที่นี้จะหมายถึงในลักษณะรูปแบบของข้อมูลที่มีแบบแผนตายตัวที่เรียกว่าFrameที่ประกอบด้วยส่วนหัวส่วนข้อมูลและส่วนหางที่ใช้ตรวจสอบความผิดพลาดของข้อมูล)การที่USBสนับสนุนการส่งถ่ายข้อมูลหลายรูปแบบดังกล่าวจึงทำให้ USB สามารถรับรองอุปกรณ์ ไอโอ ได้หลากหลาย เช่น เมาส์ แป้นพิมพ์
กล้องถ่ายภาพและอุปกรณ์เชื่อมต่อ ISDN นอกจากนี้ USB ยังยอมให้เชื่อมต่อแบบ Hot plugซึ่งหมายถึงความสามารถติดตั้งอุปกรณ์ไอโอได้ทันที่โดยไม่ต้องปิดเครื่องคอมพิวเตอร์เสียก่อนอุปกรณ์ที่ทำงานภายใต้USB สามารถทำงานที่ความเร็วต่ำได้แก่ 1.5 Mb/วินาที
หรือความเร็วสูงสุดคือ 12 Mb/วินาที
ซึ่งข้อดีของการทำงานที่เร็วต่ำหมายถึงสัญญาณ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น