You are on page 1of 15

หน่ วยที่ 5 ระบบอินพุต เอาต์พุต

สาระสาคัญ
ระบบอิ น พุ ต /เอาท์ พุ ต หรื อ 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)
เป็ นอุปกรณ์อินพุตชนิดแรกที่ใช้กบั คอมพิวเตอร์ และถือเป็ นอินพุตหลักของอุปกรณ์ประเภท
ตัวอักษร ตัวเลข และสัญลักษณ์ต่าง ๆ ซึ่ งในปั จจุบันแป้ นพิมพ์ได้เพิ่มปุ่ มขึ้นเพื่อความสะดวกในการใช้งาน
เช่น ปุ่ มคียล์ ูกศร ปุ่ มคียล์ ดั และฟังก์ชนั ต่าง ๆ

รู ปที่ 1 คียบ์ อร์ด


2. เมาส์ (Mouse)
เป็ นอุปกรณ์ที่ใช้สาหรับชี้ตาแหน่ ง ซึ่ งใช้ในการควบคุม และเคลื่อนย้ายตาแหน่งบนจอภาพ
รวมทั้งการเลือกข้อมูลรู ปแบบของเมาส์ จะมีปุ่มเพื่อใช้คลิก 2 ปุ่ ม คือ ปุ่ มซ้ายและปุ่ มขวา เมาส์บางประเภท
จะมีลูกล้ออยูร่ ะหว่าปุ่ มซ้าย และปุ่ มขวา ลูกล้อนี้สามารถเลื่อนขึ้นลงได้ ทาให้สะดวกในการเลื่อนอ่านข้อมูล
ในกรณีที่มีขอ้ มูลมากกว่าหนึ่งหน้าจอภาพ แบ่งออกเป็ น 3 ประเภท ดังนี้
2.1 แบบทางกล (Mechanical Mouse)
เมาส์ประเภทนี้ จะมีลอ้ ยางเป็ นลูกกลิ้งอยู่ดา้ นล่าง เมื่อผูใ้ ช้เมาส์เลื่อนเมาส์ไปบนแผ่นรอง
เมาส์ (Mouse Pad) หรื อพื้นโต๊ะ จะทาให้ลูกกลิ้งด้านล่างหมุนและทาให้แกนภายในของเมาส์หมุนและส่ ง
สัญญาณเป็ นพิกดั ในการเลื่อนตาแหน่งชี้ (Mouse Pointer) ของเมาส์ไปยังตาแหน่งที่ตอ้ งการบนจอภาพ เมื่อ
ต้อ งการเลือ กส่ งต่าง ๆ บนจอภาพ ทาได้โดยการกดปุ่ มซ้ายหรื อ ขวา 1 ครั้ง (Click) หรื อ 2 ครั้ง (Double
Click) การทางานของเมาส์น้ ีจะต้องควบคุมด้วยโปรแกรมที่เรี ยกว่า Mouse Driver

รู ปที่ 2 เมาส์แบบทางกล
2.2 แบบใช้ แสง (Optical Mouse)
เมาส์แบบใช้แสง เป็ นเมาส์ที่พฒั นามาจากเมาส์ลูกกลิ้ง ซึ่งเมาส์ลูกกลิ้งมีจุดด้อยอยู่ตรงที่มี
ขีดจากัดในการทางานที่ตอ้ งใช้งานบนพื้นผิวที่เรี ยบและความรวดเร็ วในการใช้งานที่ช้าอีกทั้งยังมีความ
ละเอียดต่า ทาให้มีการพัฒนาขึ้นมาเป็ นเมาส์แบบใช้แสง การทางานของเมาส์ประเภทนี้ อาศัยหลักการส่ ง
แสงจากเมาส์ลงไปบนแผ่นรองเมาส์ชนิดพิเศษ ซึ่ งมีผิวมันสะท้อนแสงและเป็ นตารางตามแนวแกน X และ
Y โดยแกนหนึ่งเป็ นสี น้ าเงิน อีกแกนเป็ นสี ดาตัดกันไว้คอยตรวจจับการเคลื่อนที่ ซึ่งบนเมาส์จะมี LED 2 ตัว
ให้กาเนิดแสงออกมา 2 สี คือ สี ดาและสี น้ าเงิน LED ทีก่ าเนิดแสงสี ดาจะดูดกลืนแสงสี น้ าเงิน LED ที่กาเนิ ด
แสงสี น้ าเงินจะดูดกลืนแสงสี ดา ซึ่งตัวตรวจจับแสงเป็ นทรานซิสเตอร์ไวแสง สี ที่ตรวจจับได้จะบอกทิศทาง
ส่วนช่วงของแสงที่หายไปจะบอกถึงระยะทางการเคลื่อนที่

รู ปที่ 3 Optical Mouse


2.3 แบบไร้ สาย (Wireless Mouse)
เป็ นเมาส์ ที่มีการทางานเหมือ นเมาส์ ทั่วไปเพียงแต่ไม่มีการใช้สายไฟต่อออกมาจากตัว
เมาส์ ซึ่งเมาส์ชนิดนี้จะมีตวั รับและตัวส่งสัญญาณซึ่งทางด้านตัวรับสัญญาณอาจจะเป็ นหัวต่อแบบ PS/2 หรื อ
แบบ USB ที่เรี ยกว่า Thumb USB Receiver ซึ่งใช้ความถี่วิทยุอยู่ 27 MHz และปัจจุบนั ใช้แบบ Nano Receiver
ซึ่ งใช้ความถี่วิทยุที่ 2.4 GH และใช้งานได้ในรัศมีที่กว้างขึ้น เนื่ องจากคลื่นวิทยุสามารถทะลุผ่านอุปกรณ์กีด
ขวางใด ๆ ได้แต่จะมีการติดตั้งเครื่ องรับสัญญาณเพิ่มเติมที่เครื่ องคอมพิวเตอร์

รู ปที่ 4 เมาส์แบบไร้สาย

3. จอยสติก (Joy Stick)


เป็ นอุปกรณ์อินพุตที่ใช้ในการเล่มเกมคอมพิวเตอร์ ประกอบด้วยก้านบังคับที่ใช้ควบคุมทิศทาง
และปุ่ มฟังก์ชนั ต่าง ๆ เพื่อเลือกใช้ในการเล่นเกม
รู ปที่ 5 จอยสติก
4. จอภาพแบบสัมผัส (Touch Screen)
เป็ นจอภาพแบบพิเศษที่สามารถเป็ นได้ท้ งั อุปกรณ์อินพุตและอุปกรณ์เอาท์พุต นิ ยมใช้กบั งาน
ธุรกิจร้านค้า โรงแรม สายการบิน และธนาคาร วิธีการใช้จอภาพแบบสัมผัส ทาได้โดยผูใ้ ช้งานนานิ้วกดไป
ยังตาแหน่งที่ตอ้ งการบนจอภาพ

รู ปที่ 6 จอภาพแบบสัมผัส
5. สแกนเนอร์ (Scanner)
เป็ นอุปกรณ์ต่อเชื่อมคอมพิวเตอร์ แบบกราฟิ กที่มีหน้าที่ในการเปลี่ยนแปลงภาพต้นฉบับ (รู ป
ถ่าย ตัวอักษรบนหน้ากระดาษภาพวาด) ให้เป็ นข้อมูลเพื่อให้คอมพิวเตอร์ สามารถนาข้อมูลดังกล่าวมาใช้
ประโยชน์ในการแสดงผลที่หน้าจอทาให้สามารถแก้ไขตกแต่งเพิ่มเติมและจัดเก็บข้อมูลได้

รู ปที่ 7 สแกนเนอร์
อุปกรณ์ เอาท์ พุต (Output Devices)
อุ ป กรณ์ ที่ ท าให้ ค อมพิ ว เตอร์ ค วบคุ ม หรื อ ส่ ง ผลออกมาสู่ ภ ายนอกตัว เครื่ อ งได้ หลัง จากที่
คอมพิวเตอร์ ได้ทาการประมวผลแล้วก็จะต้องมีวิธีในการนาผลลัพธ์ออกมาแสดง ซึ่ งสามารถแบ่งอุปกรณ์
แสดงผลได้แก่ อุปกรณ์แสดงผลลัพธ์ ชั่วคราว เช่ น จอภาพ (Monitor) อุปกรณ์แสดงผลลัพ ธ์ถ าวร เช่ น
เครื่ องพิมพ์ (Printer) และอุปกรณ์แสดงผลลัพธ์ประเภทเสี ยง เช่น ลาโพง (Speaker) เป็ นต้น
1. จอภาพ (Monitor)
เป็ นอุ ป กรณ์ ที่จ าเป็ นและนิ ย มใช้เ พื่ อ แสดงเอาท์พุ ต ไม่ ว่ า จะเป็ นในรู ป แบบของข้อ ความ
ภาพนิ่ง กราฟิ ก ภาพเคลื่อนไหว

รู ปที่ 8 จอภาพ
2. เครื่ องพิมพ์ (Printer)
เป็ นอุปกรณ์เอาท์พุตมาตรฐานชนิ ดหนึ่ ง ใช้สาหรับพิมพ์ขอ้ มูลจากคอมพิวเตอร์ลงในกระดาษ
เครื่ องพิมพ์แบ่งออกเป็ น 4 ประเภทใหญ่ คือ
2.1 เครื่ องพิมพ์ แบบดอทเมทริ กซ์ (Dot Matrix Printer)
เป็ นเครื่ องพิมพ์ที่ใช้หัวเข็มกระแทกผ้าหมึกเพื่อ ให้เกิดจุดรวมกัน เป็ นตัวอักษร ปั จจุบัน
เครื่ องพิมพ์ประเภทนี้ได้รับความนิยมน้อยลง

รู ปที่ 9 เครื่ องพิมพ์แบบดอทเมทริ กซ์


2.2 เครื่ องพิมพ์ แบบบรรทัด (Line Printer)
เป็ นเครื่ องพิมพ์ที่มีลกั ษณะการทางานคล้ายกับเครื่ องพิมพ์ แบบดอทเมทริ กซ์ แต่จะพิมพ์
เป็ นบรรทัด ซึ่งแตกต่างจากการพิมพ์แบบดอทเมทริ กซ์ที่พิมพ์ทีละตัวอักษร
รู ปที่ 10 เครื่ องพิมพ์แบบบรรทัด
2.3 เครื่ องพิมพ์ แบบอิงค์ เจ็ต (Ink Jet Printer)
เป็ นเครื่ องพิมพ์ที่ใช้หลักการพ่นหมึก สามารถพิมพ์ได้ท้ งั ตัวอักษรและรู ปภาพโดยทัว่ ไป
เครื่ องพิมพ์แบบอิงค์เจ็ตสี จะประกอบไปด้วย 4 สี คือ ดา แดง เหลือง และน้ าเงิน

รู ปที่ 11 เครื่ องพิมพ์แบบอิงค์เจ็ต


2.4 เครื่ องพิมพ์ แบบเลเซอร์ (Laser Printer)
เป็ นเครื่ อ งพิ ม พ์ที่ นิ ย มใช้กับ งานพิ ม พ์เ อกสารทั่ว ไป สามารถพิ ม พ์ไ ด้ค มชัด และเร็ ว
หลักการทางานของเครื่ องพิมพ์แบบเลเซอร์ คล้ายกับ เครื่ องถ่ายเอกสารโดยใช้ผงหมึกที่บรรจุไ ว้ในตลับ
(Toner) ภาพที่ได้จากเครื่ องพิมพ์แบบเลเซอร์มีความคมชัดสูงกว่ากว่าเครื่ องพิมพ์แบบอิงค์เจ็ต

รู ปที่ 12 เครื่ องพิมพ์แบบเลเซอร์


3. ลาโพง (Speaker)
เป็ นอุปกรณ์เอาท์พุตที่ใช้แสดงข้อมูลประเภทเสี ยงจากเครื่ องคอมพิ วเตอร์ โดยต้อ งใช้คู่กบั
อุปกรณ์ การ์ ดเสี ยง (Sound Card) เป็ นตัวเชื่ อ มระหว่า งลาโพงกับ เครื่ อ งคอมพิ ว เตอร์ โดยทาการแปลง
สัญญาณดิจิตอลเป็ นสัญญาณอนาล็อกไปยังลาโพง
รู ปที่ 13 ลาโพง
การติดต่ อกับอุปกรณ์ อินพุต/เอาท์ พุต
ในระบบคอมพิวเตอร์มีอุปกรณ์ต่าง ๆ ที่ต่อพ่วงหรื อใช้งานร่ วมกันกับ Data Storage เช่น Disk, Tape
หรื อ ต่อ กับเครื่ องพิมพ์ (Printer) ซึ่ งอุปกรณ์พวกนี้ เรี ยกว่าเป็ น I/O Device จะต้อ งมีการติดต่อ สื่ อ สารกับ
หน่วยประมวลผลกลางซึ่งในระบบคอมพิวเตอร์น้ นั การติดต่อระหว่างหน่วยประมวลผลกลางกับ I/O device
ต่าง ๆ นั้นจะติดต่อ ผ่าน I/O Module ซึ่ งเป็ นวงจร (Circuit) อย่างหนึ่ งที่ ใช้ควบคุม Device สาเหตุที่เราไม่
เชื่อมต่อ Device ต่าง ๆ โดยตรงกับหน่วยประมวลผลกลางโดยผ่านบัสนั้น เนื่องจากอุปกรณ์ที่เป็ น I/O นั้นมี
หลายประเภทที่แตกต่างกัน และมีความเร็ วที่ต่า ดังนั้นจึงควรมีตวั กลางที่เรี ยกว่า I/O Module ที่จะควบคุม
การทางานของ Device ต่าง ๆ แทนที่จะให้หน่ วยประมวลผลกลางเป็ นตัวควบคุมโดยตรง ซึ่ งถ้าไม่มี I/O
Module นี้จะทาให้ตอ้ งมี Logic ที่ใช้ในการควบคุม Device หลาย ๆ รู ปแบบตามชนิดของ Device นั้น ๆ
I/O Module มี Logic Circuit อยู่ภายในเพื่อควบคุม Device ต่าง ๆ นั้น การที่ไม่นา Logic เหล่านี้ มา
ไว้ในหน่ วยประมวลผลกลาง เพื่อลดการทางานของหน่ ว ยประมวลผลกลางให้ทาเฉพาะงานที่เป็ นการ
ประมวลผลเท่านั้นซึ่งวิธีน้ ี จะเพิ่มประสิ ทธิ ภาพการทางานให้กบั ระบบโดยรวมได้ พิจารณาจากรู ปที่ 14 จะ
เป็ นการเชื่อมต่อระหว่าง Device กับหน่วยประมวลผลกลาง และมี I/O Module เป็ นตัวกลาง โดยเชื่อมต่อ
ผ่านบัส

รู ปที่ 14 รู ปแบบการเชื่อมต่อของอุปกรณ์ I/O Module

1. สาเหตุที่ต้องมี I/O Modules


1.1 เนื่ อ งจากอุ ป กรณ์ ภายนอกมี ห ลายชนิ ด ดัง นั้น จึ ง ต้อ งมี ห ลายวิ ธี ที่ จ ะต้อ งจัด การหรื อ
ควบคุมอุปกรณ์แต่ละชนิ ดนั้น ถ้าไม่มีตวั กลางมาคอยควบคุม เราจะต้องสร้าง Logic มากมายไว้ในหน่ วย
ประมวลผลกลาง เพื่อทางานกับมัน ทาให้หน่วยประมวผลกลาง มีขนาดใหญ่และทางานหนัก
1.2 อัตราการเคลื่อนย้าย (Transfer) ข้อ มูล ระหว่างหน่ วยประมวลผลกลางกับของอุปกรณ์
ภายนอกต่าง ๆ แตกต่างกันมาก เพราะหน่วยประมวลผลกลางจะมีการทางานที่เร็ วกว่าอุปกรณ์ภายนอกอื่น
ๆ แสดงดังรู ปที่ 15
1.3 อุปกรณ์ภายนอกแต่ละชนิ ด มีรูปแบบของข้อมูลที่แตกต่างกัน หน่วยประมวลผลกลาง
ของบางเครื่ องอาจะส่งทีละ 8 บิต, 16 บิต หรื อ 32 บิต อุปกรณ์ต่าง ๆ ก็เช่นกัน เช่น ถ้าเป็ นอุปกรณ์ที่ส่งผ่าน
Serial Port เช่น เมาส์ หรื อ Keyboard ก็จะมีการรับส่งทีละ 8 บิต ดังนั้นจึงต้องมี I/O Module มาทาหน้าที่ใน
การแปลงข้อมูลให้เป็ นไปตามรู ปแบบของอุปกรณ์แต่ละชนิ ด โดยหน่วยประมวลผลกลางจะส่ งข้อมูลมาที
ละคา หรื อทีละ word มาที่ I/O Module แล้ว I/O Module จะแปลงให้เป็ นรู ปแบบตามชนิดของอุปกรณ์น้ นั ๆ

รู ปที่ 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 เป็ นที่ ส าหรั บ พัก ข้อ มู ล ท าการเปลี่ ย นรู ป แบบของข้ อ มู ล ให้ เ หมาะกับ
อุปกรณ์น้ นั ๆ

รู ปที่ 16 โครงสร้างภายนอกของ I/O Module

ส่วนทางานหลักของ 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) มิฉะนั้นก็จะไม่
ทราบและไม่ได้ตอบสนองต่ออุปกรณ์อินพุตเหล่านี้ทาให้ได้ผลการรันโปรแกรมไม่สมบูรณ์แต่ก็มีผลทาให้
การรันโปรแกรมช้าลงกว่าที่ควรจะเป็ น

รู ปที่ 17 Program I/O


4.2 Interrupt I/O
อินเตอร์รัพท์ คือ การขัดจังหวะการทางาน หน่วยประมวลผลกลาง ช่วยลดเวลาของหน่วย
ประมวลผลกลาง ที่จะต้องสู ญเสี ยไปในการตรวจสอบอุปกรณ์ I/O การ Interrupt จะมีวงจรควบคุมระดับ
ของการอินเตอร์รัพท์ ที่เรี ยกว่า Interrupt Controller โดยทัว่ ไปแล้ว ระดับ 0 จะมีระดับความสาคัญสูงสุด
การใช้งาน Interrupt Controller อินเตอร์ รัพท์ คือ การขัดจังหวะการทางานของหน่ ว ย
ประมวลผลกลาง โดยที่อุปกรณ์ที่ร้องขอการขัดจังหวะมานั้น จะขอให้หน่วยประมวลผลกลางบริ การงานให้
การอิ น เตอร์ รั พ ท์ถื อได้ว่ าเป็ นลักษณะการทางานแบบหนึ่ ง ที่ มีค วามส าคัญมากในระบบคอมพิว เตอร์
เนื่ อ งจากช่ วยลดเวลาของหน่ วยประมวลผลกลาง ที่จะต้อ งสู ญเสี ยไปในการตรวจสอบอุปกรณ์ I/O ว่ามี
อุปกรณ์ใดบ้างที่ต้องการให้หน่วยประมวลผลกลางทางานให้บา้ ง ซึ่ งในระหว่างการตรวจสอบนี้ หน่ วย
ประมวลผลกลางสามารถไปทางานอื่นได้ตามปกติ ดังนั้นการนาเอาวิธีการอินเตอร์รัพท์เข้ามาใช้ในระบบซึ่ง
เป็ นการทาให้หน่วยประมวลผลกลางมีเวลาไปทางานอย่างอื่นมากขึ้นด้วย โดยปกติการ Interrupt จะมีวงจร
ควบคุมที่เรี ยกว่า Interrupt Controller ตัว Interrupt Controller จะเป็ นตัวจาลาดับ ความส าคัญ สู ง สุ ด และ
ระดับ 7 จะมีความสาคัญต่าสุด หากต้องการให้มีอินเตอร์รัพท์เกิดขึ้นกับ I/O หลายระดับ อาจจะใช้ Interrupt
Controller ต่อพ่วงกัน Interrupt driven I/O สมมติเป็ นอ่านข้อมูลจาก I/O และ write ข้อมูลลงหน่วยความจา
จะมีข้นั ตอนการทางานดังนี้
ขั้นที่ 1 หน่ วยประมวลผลกลางจะออกคาสั่ง Read ให้กับ I/O Module เสร็ จแล้วหน่ ว ย
ประมวลผลกลางก็จะไปทางานอย่างอื่น
ขั้นที่ 2 เมื่อ I/O พร้อมก็จะส่ งสัญญาณ Interrupt มาให้กบั หน่วยประมวลผลกลาง หน่วย
ประมวลผลกลางจะอ่านสถานะจาก I/O Module ว่าพร้อมหรื อยัง
ขั้นที่ 3 หน่ วยประมวลผลกลาง ตรวจสอบสถานะของ I/O Module ว่าพร้ อ มหรื อยังไม่
พร้อม หากไม่พร้อม ก็แจ้งสถานะ Error หากพร้อมก็จะทางานขั้นตอนต่อไป
ขั้นที่ 4 หน่วยประมวลผลกลาง จะอ่าน Word จาก I/O Module
ขั้นที่ 5 จากนั้นหน่วยประมวลผลกลาง จะเขียน word ไปที่หน่วยความจา
ขั้นที่ 6 ตรวจสอบว่าอ่านครบทุก Word แล้วหรื อยัง หากยังให้กลับมาทาใน ขั้นตอนที่ 1
ใหม่

รู ปที่ 18 Interrupt I/O

โดยเมื่ อ อุ ป กรณ์ เ หล่ า นั้น มีข้อ มู ล ต้อ งการจะส่ ง ให้ แ ก่ ห น่ ว ยประมวลผลกลาง จะส่ ง
สัญญาณ 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 ได้

รู ปที่ 19 DMA Block Diagram


1. DMA ประกอบด้วย
1.1 Control Logic เป็ น Circuit ที่ควบคุมการระหว่าง หน่วยประมวลผลกลาง,
Memory และ I/O Module
1.2 Address Register เป็ น Address ที่ช้ ีไปยังตาแหน่งเริ่ มต้นการ Transfer ใน
หน่วยความจา
1.3 Data Register บอกจุดเริ่ มต้นของ Buffer ในหน่วยความจาที่จะ Transfer
1.4 Data Counter จะบอกจานวน Byte หรื อ Word ที่จะ Transfer
1.5 DMA REQ คือสัญญาณที่ DMA ส่งให้เพื่อขอใช้ BUS
1.6 DMA ACK เป็ นสัญญาณที่ตอบกลับจาก หน่วยประมวลผลกลางว่าให้ใช้บสั ได้
1.7 INTR เป็ นสัญญาณที่บอก หน่วยประมวลผลกลาง ให้รู้ว่าสิ้นสุด การ Transfer
แล้ว
2. ภายใน DMA Controller จะมีรีจิสเตอร์ 3 ตัว
1) IOAR (I/O address register) เปKน register ที่เก็บ pointer ที่จะชี้ไปยัง buffer ใน
หน่วยความจา ซึ่งจะถูก initialize ด$วย address ของหน่วยความจาขณะนั้น
2) IODR (I/O data register) เปKน buffer ที่ใช$ในการรับส่งระหว่างอุปกรณ กับ
หน่วยความจา
3) DC (data count) ซึ่งเปKน register ที่ใช$เก็บจานวน byte ใน block
เมื่ อ มี อุ ปกรณ์ ใ ดต้อ งการ transfer ข้อ มู ล DMA Controller จะส่ ง DMA REQ มาที่
หน่วยประมวลผลกลาง และหน่วยประมวลผลกลางจะตอบรับด้วย DMA ACK จากนั้นหน่วยประมวลผล
กลาง จะต้อง execute คาสั่งพิเศษ เพื่อที่จะ initialize DC และ IOAR เพื่อให้ DMA เริ่ มต้นการ transfer และ
จากนั้นหน่วยประมวลผลกลาง ก็จะปล่อยให้เป็ นหน้าที่ของ DMA ในการ transfer ส่ วน หน่วยประมวลผล
กลางเองก็จะไปทางานอื่นต่อไป ในขณะที DMA ทางานนั้น จะทาการ transfer ข้อมูลทีละ 1 byte หรื อ 1
word หรื อ 1 block ในแต่ละครั้งของการ transfer ค่าใน IOAR จะเพิ่มขึ้นทีละ 1 และค่าใน DC จะลดลงทีละ
1 จนกระทั่งค่าใน DC ลดลงเป็ น 0 แสดงว่าสิ้ นสุ ดการ transfer DMA จะส่ งสัญญาณ INTR เพื่อ บอกให้
หน่วยประมวลผลกลาง รู้ว่าสิ้นสุดการ transfer ข้อมูลแล้ว
3. DMA Data Transfer
ข้อมูลจะสามารถถูกส่ง (transfer) ได้หลายทาง ภายใต้ DMA Control ดังนี้คือ
1) DMA Block Transfer คือ การที่ block ของข้อ มูลที่มีความยาวไม่ จ ากัด หรื อ ไม่
แน่นอนนั้นถูก transfer ในลักษณะต่อเนื่ องไปจนเสร็ จ ซึ่ งในขณะนั้นถ้าหน่วยประมวลผลกลางต้องการใช้
บัส หน่วยประมวลผลกลางจะต้องรอคอย (เรี ยกว่าอยู่ในสถานะ inactive) จนกว่าการ transfer block นั้นจะ
เสร็ จสิ้ น หน่วยประมวลผลกลางจึงจะสามารถใช้ bus ได้ ดังนั้นวิธีน้ ี จะเหมาะกับ device ที่มี transfer rate
สูง (High speed device) เพื่อที่หน่วยประมวลผลกลางจะได้ไม่ตอ้ งรอคอยนาน เช่น disk
2) Cycle Stealing วิธีน้ ีจะ DMA จะใช้ bus ในการ transfer ได้ ครั้งละ 2-3 word และ
หยุด ให้ หน่ ว ยประมวลผลกลาง ได้ใ ช้บัส นั่น คื อ ถ้า จะพู ด ว่ า DMA Controller คอยหาโอกาสที่ ห น่ ว ย
ประมวลผลกลาง ไม่ได้ใช้บสั DMA controller จะส่ งสัญญาณ DMA REQ เพื่อให้หน่วยประมวลผลกลางรู้
ว่าต้องการใช้ bus และ หน่วยประมวลผลกลาง ก็จะตอบรับด้วย DMA ACK เพื่อให้ DMA ใช้บสั จนกระทัง่
หน่วยประมวลผลกลาง จะต้องการใช้บสั อีกครั้งหนึ่ ง DMA controller จะคืน bus ให้กบั หน่วยประมวลผล
กลาง จะเห็ นว่าวิธีน้ ี หน่ วยประมวลผลกลาง จะอยู่ในสถานะ inactive ในช่ วงเวลาสั้น ๆ คือ คอยจนกว่า
DMA จะ transfer ครบ word เท่านั้น ไม่เหมือนวิธีแรกที่ตอ้ งรอจนกว่าจะครบ block หรื อ transfer เสร็ จสิ้ น
การทา Cycle stealing นี้เหมาะกับ medium speed device เช่น tape
3) Transparent DMA จะแตกต่ า งจาก 2 วิ ธี แ รก เพราะใน 2 วิ ธี แรกเมื่ อ หน่ ว ย
ประมวลผลกลางอนุญาตให้ DMA ใช้บสั นั้น หน่วยประมวลผลกลางเองจะอยู่ในสถานะ Inactive เพื่อรอ
การทางานของ DMA แต่ในวิธี transparent DMA หรื อทาให้ DMA มีลกั ษณะโปร่ งใสนั้น คือขณะที่ DMA
ใช้บสั นั้น หน่วยประมวลผลกลางก็จะทางานอื่น ๆ ของตัวเองขนานกันไปด้วย เช่น ทาการ decode คาสั่ง
ไม่ได้อยู่ในสถานะ inactive เหมือน 2 วิธีแรก มักจะอาศัยฮาร์ ดแวร์ ที่ช่วยให้ก ารทางานระหว่าง DMA และ
หน่วยประมวลผลกลางสอดคล้องกัน วิธีน้ ีมกั ใช้กบั อุปกรณ์ที่มีความเร็วต่า (low speed device)
4. DMA Procedure
1) หน่ วยประมวลผลกลาง จะ execute 2 คาสั่งพิเศษ 2 คาสั่งคือ Load IOAR และ
Load DC (ซึ่ งเป็ น Register ของ DMA) ใน IOAR จะเป็ นการระบุ address ที่ช้ ี ไ ปยัง buffer และใน DC จะ
กาหนดความยาวของ buffer ว่ามีขนาดเท่าไร
2) เมื่อ DMA controller พร้ อ มที่จะส่ ง หรื อ รับข้อ มูล มันจะส่ ง DMA request ไป
ให้กบั หน่วยประมวลผลกลาง และ หน่วยประมวลผลกลาง จะรอคอยจนกว่าจะถึงจุดที่เรี ยกว่า DMA break
point ณ จุดนี้ หน่ วยประมวลผลกลาง จะปล่อ ยการควบคุม bus และส่ งสัญญาณ DMA ACK กลับไปให้
DMA ทาให้ DMA controller สามารถเริ่ มต้นการ transfer ข้อมูลได้
3) เมื่อ DMA controller transfer ข้อมูล ทุก ๆ word ที่ถูก Transfer จะเพิ่มค่าทีละ 1
ใน IOAR และลดค่าใน DC ทีละ 1
4) ถ้า DC ยัง ไม่ เ ท่ า กับ 0 แต่ I/O device ไม่ พ ร้ อ มที่ จ ะรั บ ส่ ง ข้อ มู ล หรื อ DMA
Controller ต้องการที่จะคืนการควบคุมบัสให้กบั หน่วยประมวลผลกลาง DMA controller จะปล่อยบัส และ
ทาให้หน่วยประมวลผลกลาง สามารถจะทางานที่คา้ งอยูต่ ่อไปได้
5) เมื่ อ DC = 0 DMA controller จะปลดปล่ อ ย bus และจะส่ ง สั ญ ญาณ interrupt
(INTR) ไปให้กับ หน่ วยประมวลผลกลาง ว่าการ Transfer เสร็ จสิ้ น หรื อ ส่ งสัญญาณ INTR อีกครั้งเมื่ อ
ต้องการ request การ Transfer ครั้งใหม่

You might also like