Professional Documents
Culture Documents
หน่วยที่ 6 ระบบอินพุต เอาต์พุต
หน่วยที่ 6 ระบบอินพุต เอาต์พุต
สาระสาคัญ
ระบบอิ น พุ ต /เอาท์ พุ ต หรื อ I/O คื อ ระบบการเชื่ อ มต่ อ ระหว่ า งอุ ป กรณ์ ภ ายนอก กับ หน่ ว ย
ประมวลผลกลาง และหน่วยความจาหลัก โดยผ่านระบบบัส เหตุผลที่หน่วยประมวลผลกลางไม่ติดต่อกับ
อุปกรณ์ภายนอกเอง เพราะ
1) อุปกรณ์ภายนอกมีหลายชนิ ด ดังนั้นจึงต้องมีหลายวิธีที่จะต้องจัดการหรื อควบคุมอุปกรณ์แต่ละ
ชนิ ดนั้น ถ้าไม่มีตวั กลางมาคอยควบคุม เราจะต้องสร้าง Logic มากมายไว้ในหน่วยประมวลผลกลาง เพื่อ
ทางานกับมัน ทาให้หน่วยประมวผลกลาง มีขนาดใหญ่และทางานหนัก
2) อัตราการเคลื่อนย้าย (Transfer) ข้อมูล ระหว่างหน่วยประมวลผลกลางกับของอุปกรณ์ภายนอก
ต่าง ๆ แตกต่างกันมาก เพราะหน่วยประมวลผลกลางจะมีการทางานที่เร็วกว่าอุปกรณ์ภายนอกอื่น ๆ
3) อุปกรณ์ภายนอกแต่ละชนิ ด มีรูปแบบของข้อมูลที่แตกต่างกัน หน่วยประมวลผลกลาง ของบาง
เครื่ องอาจะส่ งทีละ 8 บิต, 16 บิต หรื อ 32 บิต อุปกรณ์ต่าง ๆ ก็เช่นกัน เช่น ถ้าเป็ นอุปกรณ์ที่ ส่งผ่าน Serial
Port เช่น เมาส์ หรื อ Keyboard ก็จะมีการรับส่ งทีละ 8 บิต ดังนั้นจึงต้องมี I/O Module มาทาหน้าที่ในการ
แปลงข้อมูลให้เป็ นไปตามรู ปแบบของอุปกรณ์แต่ละชนิด โดยหน่วยประมวลผลกลางจะส่งข้อมูลมาทีละคา
หรื อทีละ word มาที่ I/O Module แล้ว I/O Module จะแปลงให้เป็ นรู ปแบบตามชนิดของอุปกรณ์น้ นั ๆ
โดยรู ปแบบในการติดต่อกับ I/O มี 3 รู ปแบบ คือ 1) Programmed I/O 2) Interrupt I/O และ 3) Direct
Memory Access (DMA)
หัวข้อการเรียนรู้
1. อุปกรณ์อินพุต
2. อุปกรณ์เอาต์พุต
3. การติดต่อกับอุปกรณ์อินพุต/เอาต์พุต
จุดประสงค์เชิงพฤติกรรม
1. บอกความหมายของอุปกรณ์อินพุตได้
2. ยกตัวอย่างอุปกรณ์อินพุตได้
3. บอกความหมายของอุปกรณ์เอาต์พุตได้
4. ยกตัวอย่างอุปกรณ์เอาต์พุตได้
5. อธิบายวิธีในการติดต่อกับอุปกรณ์อินพุต/เอาต์พตุ ได้
6. ใช้งานอุปกรณ์อินพุต/เอาต์พุตบนเครื่ องคอมพิวเตอร์ได้
อุปกรณ์ อินพุต (Input Devices)
อุปกรณ์อินพุต คือ อุปกรณ์ที่ทาให้คอมพิวเตอร์ สามารถสัม ผัส และรับรู้ สิ่งต่าง ๆ จากภายนอก
เครื่ องอันได้แก่ โปรแกรมหรื อชุดคาสั่งที่เขียนสั่งงานให้คอมพิวเตอร์ทางานตามขั้นตอนและข้อมูลที่ตอ้ งใส่
เข้าไปพร้อมกับโปรแกรม เพื่อส่งไปให้หน่วยประมวลผลกลางทาการประมวลผลและผลิตผลลัพธ์ที่ตอ้ งการ
ออกมา เช่น คียบ์ อร์ ด เมาส์ จอยสติ๊ก จอสัมผัส ปากกาแสง กล้องดิจิตอล สแกนเนอร์ และเครื่ องอ่านบัตร
เป็ นต้น
1. คีย์บอร์ ด (Keyboard)
เป็ นอุปกรณ์อินพุตชนิดแรกที่ใช้กบั คอมพิวเตอร์ และถือเป็ นอินพุตหลักของอุปกรณ์ประเภท
ตัวอักษร ตัวเลข และสัญลักษณ์ต่าง ๆ ซึ่ งในปั จจุบันแป้ นพิมพ์ได้เพิ่มปุ่ มขึ้นเพื่อความสะดวกในการใช้งาน
เช่น ปุ่ มคียล์ ูกศร ปุ่ มคียล์ ดั และฟังก์ชนั ต่าง ๆ
รู ปที่ 2 เมาส์แบบทางกล
2.2 แบบใช้ แสง (Optical Mouse)
เมาส์แบบใช้แสง เป็ นเมาส์ที่พฒั นามาจากเมาส์ลูกกลิ้ง ซึ่งเมาส์ลูกกลิ้งมีจุดด้อยอยู่ตรงที่มี
ขีดจากัดในการทางานที่ตอ้ งใช้งานบนพื้นผิวที่เรี ยบและความรวดเร็ วในการใช้งานที่ช้าอีกทั้งยังมีความ
ละเอียดต่า ทาให้มีการพัฒนาขึ้นมาเป็ นเมาส์แบบใช้แสง การทางานของเมาส์ประเภทนี้ อาศัยหลักการส่ ง
แสงจากเมาส์ลงไปบนแผ่นรองเมาส์ชนิดพิเศษ ซึ่ งมีผิวมันสะท้อนแสงและเป็ นตารางตามแนวแกน X และ
Y โดยแกนหนึ่งเป็ นสี น้ าเงิน อีกแกนเป็ นสี ดาตัดกันไว้คอยตรวจจับการเคลื่อนที่ ซึ่งบนเมาส์จะมี LED 2 ตัว
ให้กาเนิดแสงออกมา 2 สี คือ สี ดาและสี น้ าเงิน LED ทีก่ าเนิดแสงสี ดาจะดูดกลืนแสงสี น้ าเงิน LED ที่กาเนิ ด
แสงสี น้ าเงินจะดูดกลืนแสงสี ดา ซึ่งตัวตรวจจับแสงเป็ นทรานซิสเตอร์ไวแสง สี ที่ตรวจจับได้จะบอกทิศทาง
ส่วนช่วงของแสงที่หายไปจะบอกถึงระยะทางการเคลื่อนที่
รู ปที่ 4 เมาส์แบบไร้สาย
รู ปที่ 6 จอภาพแบบสัมผัส
5. สแกนเนอร์ (Scanner)
เป็ นอุปกรณ์ต่อเชื่อมคอมพิวเตอร์ แบบกราฟิ กที่มีหน้าที่ในการเปลี่ยนแปลงภาพต้นฉบับ (รู ป
ถ่าย ตัวอักษรบนหน้ากระดาษภาพวาด) ให้เป็ นข้อมูลเพื่อให้คอมพิวเตอร์ สามารถนาข้อมูลดังกล่าวมาใช้
ประโยชน์ในการแสดงผลที่หน้าจอทาให้สามารถแก้ไขตกแต่งเพิ่มเติมและจัดเก็บข้อมูลได้
รู ปที่ 7 สแกนเนอร์
อุปกรณ์ เอาท์ พุต (Output Devices)
อุ ป กรณ์ ที่ ท าให้ ค อมพิ ว เตอร์ ค วบคุ ม หรื อ ส่ ง ผลออกมาสู่ ภ ายนอกตัว เครื่ อ งได้ หลัง จากที่
คอมพิวเตอร์ ได้ทาการประมวผลแล้วก็จะต้องมีวิธีในการนาผลลัพธ์ออกมาแสดง ซึ่ งสามารถแบ่งอุปกรณ์
แสดงผลได้แก่ อุปกรณ์แสดงผลลัพธ์ ชั่วคราว เช่ น จอภาพ (Monitor) อุปกรณ์แสดงผลลัพ ธ์ถ าวร เช่ น
เครื่ องพิมพ์ (Printer) และอุปกรณ์แสดงผลลัพธ์ประเภทเสี ยง เช่น ลาโพง (Speaker) เป็ นต้น
1. จอภาพ (Monitor)
เป็ นอุ ป กรณ์ ที่จ าเป็ นและนิ ย มใช้เ พื่ อ แสดงเอาท์พุ ต ไม่ ว่ า จะเป็ นในรู ป แบบของข้อ ความ
ภาพนิ่ง กราฟิ ก ภาพเคลื่อนไหว
รู ปที่ 8 จอภาพ
2. เครื่ องพิมพ์ (Printer)
เป็ นอุปกรณ์เอาท์พุตมาตรฐานชนิ ดหนึ่ ง ใช้สาหรับพิมพ์ขอ้ มูลจากคอมพิวเตอร์ลงในกระดาษ
เครื่ องพิมพ์แบ่งออกเป็ น 4 ประเภทใหญ่ คือ
2.1 เครื่ องพิมพ์ แบบดอทเมทริ กซ์ (Dot Matrix Printer)
เป็ นเครื่ องพิมพ์ที่ใช้หัวเข็มกระแทกผ้าหมึกเพื่อ ให้เกิดจุดรวมกัน เป็ นตัวอักษร ปั จจุบัน
เครื่ องพิมพ์ประเภทนี้ได้รับความนิยมน้อยลง
รู ปที่ 15 อัตราการเคลื่อนย้ายข้อมูลของอุปกรณ์ภายนอก
2. หน้ าที่ของ I/O Module
I/O Module มีหน้าที่หลักในการควบคุมการเคลื่อนย้ายข้อมูล (Transfer data) ระหว่างอุปกรณ์
ภายนอก (External Device) กับ หน่วยประมวลผลกลาง รวมไปถึงการทาหน้าที่ต่าง ๆ ต่อไปนี้ดว้ ย คือ
1) Control and Timing ควบคุมและจัดการเกี่ยวกับเรื่ องอัตราหรื อจังหวะการ Transfer ข้อมูล
เพื่อให้สอดคล้องกันระหว่างหน่วยประมวลผลกลางกับอุปกรณ์
2) CPU Communications โดย หน่ ว ยประมวลผลกลาง จะส่ ง ค าสั่ ง มาที่ I/O Module เพื่ อ
ตรวจสอบสถานะของ I/O Module ได้ เช่น ขณะนี้มีการ transfer เกิดขึ้นที่ I/O Module หรื อไม่
3) Device Communications ท าให้ ส ามารถตรวจเช็ ค ได้ ว่ า ขณะนี้ I/O Module พร้ อ มที่ จ ะ
ทางานหรื อไม่
4) Data Buffering เป็ นที่ ส าหรั บ พัก ข้อ มู ล ท าการเปลี่ ย นรู ป แบบของข้ อ มู ล ให้ เ หมาะกับ
อุปกรณ์น้ นั ๆ
ส่วนทางานหลักของ I/O Module คือ I/O Logic ซึ่งอาจจะเป็ นโปรเซสเซอร์เล็ก ๆ หรื อเป็ นฮาร์ดแวร์
ที่ถูกออกแบบมาเพื่อควบคุมการทางาน โดยจะคอยรับคาสั่งควบคุมจากหน่วยประมวลผลกลางเข้ามา ถ้า
เป็ นการ Transfer ข้อมูลก็จะนาเข้ามาไว้ใน Data Register ถ้าเป็ นคาสั่งควบคุมก็จะนาเข้ามาไว้ใน Control
Register หรื อ ถ้า เป็ นในลัก ษณะบอกสถานะของอุป กรณ์ ก็จ ะน ามาไว้ใ น Status Register เพื่ อ ให้ ห น่ ว ย
ประมวลผลกลางสามารถตรวจสอบสถานะเหล่านั้นได้ หน่วยประมวลผลกลางจะระบุว่าต้องการติดต่อกับ
อุปกรณ์ตวั ไหนโดยกาหนดเป็ น Address ของอุปกรณ์น้ นั ผ่าน Address Line ซึ่ งเป็ น System Bus ที่เชื่อมต่อ
ระหว่ า งหน่ ว ยประมวลผลกลางกับ I/O Module ใน Control Register จะมี flag ต่ า ง ๆ ซึ่ งจะบ่ ง บอก
ความหมายหรื อบอกสถานะของแต่ละอุปกรณ์ได้
นอกจากนี้ ย งั มี External Device Interface Logic ที่ เ ชื่ อ มเข้า กับ อุ ปกรณ์ต่ า ง ๆ โดยตรงผ่ า น link
พิเศษ คือ Data, Status และ Control
3. อุปกรณ์ I/O
อุปกรณ์ที่ใช้ในการรับ-ส่งข้อมูลในคอมพิวเตอร์มีเป็ นจานวนมาก แต่สามารถแบ่งกลุ่มตาม
ลักษณะการใช้งานได้ 3 กลุ่มดังนี้
3.1 อุปกรณ์ ที่ใช้ สาหรั บบันทึกข้อมูล (Storage Device)
อุปกรณ์ที่ใช้สาหรับจัดเก็บข้อมูล โปรแกรมคาสัง่ และสารสนเทศต่าง ๆ ไวอย่างถาวร
เพื่อสามารถนาไปใช้ประโยชน์ในวันข้างหน้าได้ เรี ยกอีกอย่างหนึ่งว่าหน่วยความจาสารอง (Secondary
Storage) เช่น เทป, ดิสก์, ซีดีรอม เป็ นต้น
3.2 อุปกรณ์ ช่วยในการส่ งผ่ านข้อมูล (Transmission Device)
อุปกรณ์ที่มีหน้าที่หลักในการเปลี่ยนรู ปแบบของสัญญาณข้อมูลให้ผอู ้ ยูใ่ นรู ปที่เข้ากันได้
นาสื่ อกลางนาสัญญาณ และเครื่ องคอมพิวเตอร์ที่ใช้งาน เช่น โมเด็ม, Networks Cards เป็ นต้น
3.3 อุปกรณ์ ช่วยในการติดต่ อระหว่ างผู้ใช้ กับคอมพิวเตอร์ (Human Interfaces Devices)
โดยนาอุปกรณ์ที่ใช้ในการติดต่อระหว่างผูใ้ ช้งานกับคอมพิวเตอร์ เพื่อควบคุมและเป็ น
จอแสดงผล เช่น จอภาพ เมาส์ และแป้นพิมพ์ เป็ นต้น
4. รูปแบบในการติดต่อกับ I/O
หน่วยประมวลผลสามารถติดต่อกับอุปกรณ์ I/O ได้ 4 รู ปแบบ ดังนี้
4.1 Programmed I/O
เป็ นการอ่ า น-เขี ย นข้อ มู ล ระหว่ า ง I/O กับ หน่ ว ยความจ า ในวิ ธี ก ารนี้ เป็ นการเขี ย น
โปรแกรมสั่ ง งานให้ อุ ป กรณ์ I/O อ่ า นหรื อ เขี ย นข้อ มู ล ซึ่ ง จะท าให้ Module ได้รั บ ค าสั่ ง มาจากหน่ ว ย
ประมวลผลกลาง กล่าวคือ หน่วยประมวลผลกลาง จะควบคุมการทางาน ของอุปกรณ์ I/O โดยตรง ซึ่งหน่วย
ประมวลผลกลางจะคอยตรวจสอบการทางานของ I/O จนกระทัง่ เสร็ จจึงจะสามารถทางานอื่นให้ได้โดยที่
เมื่อ อุปกรณ์ I/O ทางานเสร็ จ Status bit ของ I/O Module จึ งจะเปลี่ยนการทางานแบบ Programmed I/O นี้
หน่วยประมวลผลกลาง จะต้องคอยตรวจสอบ Status bit ของ I/O Module เป็ นช่วง ๆ เวลาเนื่องจากความเร็ ว
ของการทางานระหว่าง หน่วยประมวลผลกลาง กับ I/O แตกต่างกันกล่าวคือ I/O จะทางานช้ากว่า หน่วย
ประมวลผลกลาง ดังนั้นการทางานแบบ Programmed I/O หน่วยประมวลผลกลาง จะต้องเสี ยเวลาในการรอ
คอย I/O มาก ทาให้การทางานของระบบคอมพิวเตอร์ ไม่มีประสิ ทธิ ภาพเนื่ องจาก หน่วยประมวลผลกลาง
จะทางานช้าตามอุปกรณ์รอบข้าง (Peripheral) แต่ก็มีขอ้ ดีคือ การทางาน แบบ Programmed I/O นั้น ใช้งาน
ง่าย โดยการเขียนโปรแกรมส่ งงานให้ Hardware ทางานโดยตรง Programmed I/O ทาการควบคุมการติดต่อ
อุปกรณ์ภายนอกด้วยการให้หน่วยประมวลผลกลาง ทางานไปตามขั้นตอนในโปรแกรมที่สร้างไว้ โดยใน
โปรแกรมจะประกอบด้วยชุดคาสั่งสาหรับทางาน 4 อย่างคือ
1) Control สาหรับสัง่ งานอุปกรณ์ภายนอกให้ทางานตามที่ตอ้ งการ
2) Test สั่ ง ให้ ห น่ ว ยประมวลผลกลาง ท าการทดสอบสถานะของ I/O Module และ
อุปกรณ์ภายนอก
3) Read สั่งให้ I/O Module รับข้อ มูลที่ป้อนเข้ามาจากอุปกรณ์ภายนอกเข้ามาวางไว้ใน
Buffer แล้วส่งต่อให้หน่วยประมวลผลกลาง หรื อหน่วยความจาผ่าน Data Bus
4) Write สั่ ง ให้ I/O Module รั บ ข้อ มู ล ไปจาก Data Bus และส่ ง ออกไปให้ แ ก่ อุ ป กรณ์
ภายนอกการควบคุมการติดต่อกับอุปกรณ์ภายนอกแบบนี้มีขอ้ เสี ยที่สาคัญคือในระหว่างการรันโปรแกรมทัว่
ๆ ไปตามปกติ หน่ วยประมวลผลกลาง จะต้อ งคอยแบ่งเวลามาตรวจสอบว่าอุปกรณ์อินพุตที่สาคั ญเช่น
แป้ นพิมพ์หรื อเมาส์มีการกดป้ อนข้อมูลเข้ามาหรื อไม่อยู่เป็ นครั้งคราวตลอดเวลา (polling) มิฉะนั้นก็จะไม่
ทราบและไม่ได้ตอบสนองต่ออุปกรณ์อินพุตเหล่านี้ทาให้ได้ผลการรันโปรแกรมไม่สมบูรณ์แต่ก็มีผลทาให้
การรันโปรแกรมช้าลงกว่าที่ควรจะเป็ น
โดยเมื่ อ อุ ป กรณ์ เ หล่ า นั้น มีข้อ มู ล ต้อ งการจะส่ ง ให้ แ ก่ ห น่ ว ยประมวลผลกลาง จะส่ ง
สัญญาณ Interrupt มาที่ข้ วั สายนี้ พร้อมกับส่ งหมายเลขประจาอุปกรณ์มาทางแอดเดรสบัส เป็ นการแจ้งให้
หน่วยประมวลผลกลางทราบว่าในขณะนั้นอุปกรณ์น้ นั ๆ มีขอ้ มูลที่จะส่งให้แก่ หน่วยประมวลผลกลาง หรื อ
กล่าวอีกอย่างหนึ่งว่าเป็ นการขอใช้บริ การจากหน่วยประมวลผลกลาง ซึ่ งหน่วยประมวลผลกลางก็จะทราบ
ว่าอุปกรณ์ใดขอใช้บริ การมา จะหยุดการรันโปรแกรมที่กาลังรันอยู่เพื่อไปรันโปรแกรมย่อยที่เขียนไว้ และ
เมื่อเสร็จสิ้นการให้บริ การอุปกรณ์น้ นั ๆ แล้วจึงกลับมาทาโปรแกรมเดิมต่อไป ดังขั้นตอนการทางานจะเห็น
ว่าด้วยวิธีการ Interrupt Driven I/O นี้ หน่ วยประมวลผลกลาง ไม่ต้อ งเสี ยเวลามาคอยตรวจดูสถานะของ
อุปกรณ์อินพุตต่าง ๆ อยูเ่ สมอ ในระหว่างการรัน Main Program ต่อเมื่อมีสัญญาณอินเตอร์รัพท์เข้ามาเท่านั้น
ซึ่ ง หน่วยประมวลผลกลางจะหยุดการรัน Main Program เพื่อไปรันโปรแกรมย่อยให้บริ การอุปกรณ์น้ ันๆ
เมื่อเสร็จแล้วจึงกลับไปรัน Main program ต่อไป จึงมีผลทาให้ได้ความเร็วในการรัน Main Program สูงขึ้น
4.3 Direct Memory Access (DMA)
เป็ นการติดต่อระหว่าง I/O กับ Memory โดยตรง โดยไม่ผ่าน หน่วยประมวลผลกลางจะ
เป็ นการเพิม่ ความเร็วของระบบในการย้ายข้อมูลเข้าออกจากหน่วยความจาโดยไม่รบกวน หน่วยประมวลผล
กลาง จะมี DMA Module เป็ นตัวจัดการการรับส่ งข้อมูลระหว่างอุปกรณ์ การแก้ไขปั ญหาที่เกิดจากการทา
Programmed I/O คือทาอย่างไรที่จะไม่ให้หน่วยประมวลผลกลางไปยุ่งกับการ Transfer ข้อมูล ไม่ตอ้ งเกิด
การขัดจังหวะการทางานของหน่ วยประมวลผลกลาง เพื่อ ไปทา data transfer วิธีแก้ก็คือ เราจะใช้ DMA
Controller ต่อเข้ากับบัส แล้วเอา I/O controller ต่อเข้ากับ DMA อีกทีหนึ่ ง ทั้งหน่วยประมวลผลกลาง และ
DMA จะทางานพร้อมๆ กันอาจมีการใช้หน่วยความจา พร้อมกัน ทาให้บางครั้งเกิดการแย่งกันใช้บัสหรื อ
หน่ ว ยความจ า ดั้ง นั้น จึ ง ต้อ งมี ก ารควบคุ ม การใช้บัส และหน่ ว ยความจ า ปกติ จ ะใช้ห ลัก ว่ า ให้ ห น่ ว ย
ประมวลผลกลาง เป็ น master คือจะได้สิทธิ์ก่อนทุกครั้งที่ตอ้ งการ และ DMA จะต้องมีการ Request ก่อนทุก
ครั้งด้วย DMA Request (DMA Controller ต้อ งการรับ/ส่ งข้อ มูลกับอุปกรณ์) เมื่อ หน่ วยประมวลผลกลาง
เห็น DMA Request และขณะนั้น หน่วยประมวลผลกลาง ไม่ได้ใช้หน่วยความจาหรื อบัส หน่วยประมวลผล
กลางจะยอมให้ DMA ใช้โดยการยกระดับสัญญาณ DMA Acknowledge เพื่อให้ DMA Controller สามารถ
เริ่ มต้นการ Transfer ได้