Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore w 15

w 15

Published by apichat9415, 2020-04-14 06:11:51

Description: w 15

Search

Read the Text Version

บทท่ี 8 หนว่ ยรบั เขา้ /สง่ ออก  การใช้ประโยชน์จากระบบคอมพิวเตอร์นั้นข้ึนอยู่กับส่ิงอานวยความสะดวกทางอินพุตและ เอาตพ์ ตุ (Input/Output : I/O) ซึง่ เปน็ การติดต่อระหว่างผ้ใู ช้กบั คอมพิวเตอร์ การเพิ่มความเร็วในการทางานของคอมพิวเตอร์โดยเพิ่มความเร็วของโพรเซสเซอร์ แต่ไม่ลด ข้อจากัดของความเร็วในการทางานของไอโอ จะทาให้ประสิทธิภาพการทางานของคอมพิวเตอร์ไม่ได้ ผลดีเท่าทคี่ วร เราสามารถกาหนดโครงสร้างของอินพุตและเอาตพ์ ุตในคอมพิวเตอร์ได้โดยการให้มีตะกร้าอินพตุ และเอาต์พุต แต่ละคาส่ังของอินพุตจะถ่ายโอนข้อมูลจากในตะกร้าอินพุตไปยังเคร่ืองคิดเลข และในแต่ ละคาส่ังของเอาต์พุตจะถ่ายโอนข้อมูลจากเคร่อื งคิดเลขไปไวใ้ นตะกร้าเอาต์พุต ซ่ึงในสถาปัตยกรรมของ คอมพิวเตอรจ์ รงิ ๆ แล้ว ตะกร้าอินพตุ และเอาต์พตุ คือ บัสและอินเทอรเ์ ฟซนั่นเอง ความสามารถในการถ่ายโอนข้อมูลของไอโอที่ทางานร่วมกันหลายตัวส่งผลต่อการทางานของ คอมพิวเตอร์ โดยเฉพาะไอโอที่มีความเร็วในการถ่ายโอนข้อมูลต่างกันเป็นอย่างมาก ทาให้ต้องมีการ ซงิ โครไนซ์เพอื่ ปอ้ งกนั ขอ้ มลู สูญหาย 8.1 คุณสมบตั ิพ้นื ฐาน ในระบบคอมพิวเตอร์จะอุปกรณ์ต่าง ๆ ท่ีต่อพ่วงหรือใช้งานร่วมกันกับหน่วยเก็บข้อมูล (data storage) เช่น ดิสก์ เทป หรือ เคร่ืองพิมพ์ ซ่ึงอุปกรณ์เหล่านี้เรียกว่าเป็น หน่วยรับเข้า/ส่งออก (I/O Device) ซ่ึงต้องมีการติดต่อสื่อสารกับซีพียูโดยผ่านไอโอโมดูล (I/O Module) ซ่ึงเป็นวงจรอย่างหนึ่งที่ ควบคุมการทางานของอุปกรณ์ สาเหตุท่ีไม่มีการเช่ือมต่ออุปกรณ์ต่าง ๆ โดยตรงกับซีพียูโดยผ่านบัส เนื่องจาก อุปกรณ์ท่ีเป็นไอโอมีหลายประเภทท่ีแตกต่างกัน ดังนั้นจึงควรมีตัวกลางที่เรียกว่า ไอโอโมดูล เพื่อควบคุมการทางานของอุปกรณ์ต่าง ๆ แทนที่จะให้ซีพียูทาหน้าที่ควบคุมโดยตรง แต่หากไม่มีไอโอ โมดูลกจ็ ะตอ้ งมีลอจิกที่ใชใ้ นการควบคมุ อุปกรณห์ ลาย ๆ รปู แบบตามชนดิ ของอปุ กรณน์ ัน้ ๆ ไอโอโมดูลจะมีวงจรลอจิกอยู่ภายในเพ่ือควบคุมอุปกรณ์ต่าง ๆ ซ่ึงวงจรลอจิกเหล่าน้ีไม่ได้อยู่ใน ภายในซพี ียเู นือ่ งจากเพอ่ื ลดการทางานของซีพียูให้ทางานเฉพาะงานทเ่ี ปน็ การประมวลผลเท่าน้ัน ระบบคอมพิวเตอรแ์ ละสถาปตั ยกรรม

ห น้ า | 176 8.1.1 สาเหตทุ ต่ี อ้ งมีไอโอโมดูล 1. เน่ืองจากอุปกรณ์ต่อพ่วงมีอยู่หลายชนิด จึงต้องมีหลายวิธีท่ีจะใช้จัดการหรือควบคุมอุปกรณ์ ต่อพ่วงแต่ละชนิดน้ัน ถ้าไม่มีตัวกลางไว้คอยควบคุมก็จะต้องมีการสร้างวงจรลอจิกจานวนมากไว้ในซีพียูเพื่อ ควบคมุ การทางาน จะสง่ ผลใหซ้ ีพียมู ีขนาดใหญ่และทางานหนักขนึ้ 2. เน่ืองจากอัตราการเคลื่อนย้ายข้อมูล (transfer) ของซีพียูกับของอุปกรณ์ต่าง ๆ แตกต่างกัน มาก เน่อื งจากซพี ยี มู กี ารทางานท่ีเร็วกวา่ อุปกรณ์เหล่าน้ัน 3. อุปกรณ์ต่าง ๆ มีรูปแบบของข้อมูลท่ีแตกต่างกัน ซึ่งซีพียูบางรุ่นอาจส่งข้อมูลคร้ังละ 8บิต 16 บิต หรือ 32บิต อุปกรณ์ต่าง ๆ ก็เช่นเดียวกัน เช่น ถ้าเป็นอุปกรณ์ที่ส่งพอร์ตอนุกรม (serial port) อย่างเช่น เมาส์ หรือคีย์บอร์ด มีการรับส่งข้อมูลครั้งละ 8บิต ดังน้ันจึงต้องมีไอโอโมดูลทาหน้าที่ในการโต้ตอบกับข้อมูล และอุปกรณ์ให้เป็นไปตามรูปแบบของอุปกรณ์แต่ละชนิด โดยซีพียูจะส่งข้อมูลมาครั้งละคา (word) มาท่ีไอโอ โมดลู แล้วไอโอโมดูลจะแปลงใหเ้ ป็นรปู แบบตามชนดิ ของอปุ กรณน์ ้ัน ๆ 8.1.2 หน้าทข่ี องไอโอโมดูล ไอโอโมดูลมีหน้าท่ีหลักในการควบคุมการเคลื่อนย้ายข้อมูล (transfer data) ระหว่างอุปกรณ์ ภายนอก (external device) กบั ซีพียู และยังมีหน้าที่ต่าง ๆ ดังน้คี ือ 1. Control and Timing : ควบคุมและจัดการเกี่ยวกบั อัตราหรือจังหวะการเคลื่อนยา้ ยข้อมูลให้ มีความสอดคล้องกนั ระหวา่ งซีพยี กู บั อปุ กรณ์ตา่ ง ๆ 2. CPU Communication : ซพี ียจู ะส่งคาสง่ั มาที่ไอโอโมดูลเพื่อตรวจสอบสถานะของไอโอโมดูล อยา่ งเชน่ ตรวจสอบวา่ ขณะน้ีมกี ารเคล่ือนย้ายขอ้ มูลเกิดขึน้ ท่ีไอโอโมดูลหรอื ไม่ 3. Device Communication : ตรวจเชค็ วา่ ขณะนไ้ี อโอโมดลู พรอ้ มทจ่ี ะทางานหรือไม่ 4. Data Buffering : เป็นท่ีสาหรับพักข้อมูล ทาการเปล่ียนรูปแบบของข้อมูลให้เหมาะสมกับ อปุ กรณ์นนั้ ๆ 8.1.3 I/O System ประกอบดว้ ย 1. อุปกรณอ์ นิ พุต/เอาตพ์ ุต (I/O Devices) 2. ตัวควบคุมการสง่ ขอ้ มลู (Control Unit) ระหวา่ งไอโอดีไวซ์กับซีพียู 3. โปรแกรมที่รันอยู่บนซีพียูเพ่ือทางานเก่ียวกับไอโอ (I/O Operation) เช่น การอ่าน/เขียน ขอ้ มูลไปยังไอโอดไี วซ์ตา่ ง ๆ 8.1.4 คุณสมบตั ิพน้ื ฐานของอนิ พุต/เอาตพ์ ตุ โดยปกติแล้วคอมพิวเตอร์จะทางานเพียงงานเดียว ซึ่งซีพียูจะใช้เวลาโดยส่วนใหญ่รออินพุตจาก แป้นพิมพ์ ทาใหค้ อมพวิ เตอร์ทางานได้ไม่เตม็ ประสทิ ธิภาพเนื่องจากใชเ้ วลาในการรอรับข้อมูล ระบบคอมพวิ เตอรแ์ ละสถาปตั ยกรรม

ห น้ า | 177 1. แปน้ พิมพ์ (Keyboard) เป็นอุปกรณ์สาหรับอินพุตข้อมูลเข้าสู่ระบบคอมพิวเตอร์ อินพุตพ้ืนฐานที่เป็นตัวอักษรจะมี อัตราการถ่ายโอนข้อมูลเป็นไปอย่างช้ามากเม่ือเปรียบเทียบกับการทางานของซีพียู นอกจากน้ียังขึ้นอยู่กับ ความเรว็ ในการกดแป้นตวั อกั ษรของผูใ้ ชง้ านด้วย การอินพุตด้วยแปน้ พมิ พม์ ี 2 ประเภท ไดแ้ ก่ - อนิ พตุ ท่แี อพพลเิ คชัน่ คาดหมายไว้ (Expected Input) เป็นอินพุตในการตอบสนองโปรแกรมทีร่ ้องขอขอ้ มลู - อินพุตที่ไม่ได้คาดหมาย (Unexpected Input) เช่น การกดคีย์ Ctrl+Alt+Delete เพ่ือ เป็นการรสี ตาร์ทเครอื่ งคอมพิวเตอร์ 2. เมาส์ (Mouse) เป็นอุปกรณ์สาหรับอินพุตข้อมูลที่สามารถสร้างอินพุตได้ทั้งท่ีคาดหมายและไม่ได้คา ดหมาย เม่อื ผูใ้ ชข้ ยับเมาส์แลว้ กดป่มุ จะเกิดการเอ็กซีคิวต์โปแกรม 3. จอภาพและเครอ่ื งพมิ พ์ ทางานในอัตราการถ่ายโอนข้อมูลท่ีกว้าง (ตั้งแต่ความเร็วต่าไปจนถึงความเร็วสูง) สาหรับ เอาต์พุตท่ีเป็นกราฟิกซึ่งอาจอยู่ในรูปแบบออบเจ็กต์หรือบิตแมพ ซ่ึงเป็นข้อมูลที่มีขนาดใหญ่ นอกจากน้ี ข้อมลู ภาพ วดิ ีโอ ภาพกราฟกิ ความละเอียดสูง ขอ้ มูลเหล่าน้ีต้องการอุปกรณ์ที่มีการถ่ายโอนข้อมูลท่ีมีความเร็ว สงู เพื่อใหก้ ารใช้งานมีประสิทธิภาพมากข้ึน 4. ดิสก์ เป็นอุปกรณ์ที่ใช้ในการเก็บข้อมูล ดิสก์จึงเป็นได้ท้ังอินพุตและเอาต์พุตแต่คนละเวลากัน การ ถา่ ยโอนข้อมลู ของดสิ ก์มีความเร็วสูง แตป่ จั จบุ นั ระบบเครือข่ายมีความเร็วสูงกว่า ทาให้มีการใชร้ ะบบเครือข่าย แทนดิสก์ในการเก็บโปรแกรมและขอ้ มลู ในคอมพวิ เตอร์ที่อย่หู ่างไกลกัน 5. ดวี ีดรี อม การใช้ดีวีดีรอมเพื่อแสดงข้อมูลวิดีโอแบบเต็มจอภาพและวิดีโอน้ันฉายแบบต่อเนื่องด้วย อปุ กรณท์ ่ีใชจ้ ะต้องมคี วามคงที่ของข้อมลู ทีม่ ีอตั ราอนิ พุตประมาณ 10 เมกะไบต์ต่อวินาที ระบบคอมพิวเตอร์และสถาปตั ยกรรม

ห น้ า | 178 ตารางที่ 8.1 อตั ราการถ่ายโอนข้อมูลของอปุ กรณ์อนิ พุต/เอาต์พุตต่าง ๆ อปุ กรณ์ อินพุต/เอาต์พุต อัตราการถา่ ยโอนขอ้ มลู (กิโลไบต์ต่อวินาที) คียบ์ อร์ด อินพตุ 0.01 เมาส์ อินพุต 0.02 อนิ พตุ เสยี ง อินพตุ 0.02 สแกนเนอร์ อนิ พุต 200 เอาต์พตุ เสียง เอาต์พุต 0.5 เครอื่ งพมิ พอ์ ิงค์เจต็ เอาต์พุต 1.5 เครอื่ งพิมพเ์ ลเซอร์ เอาต์พตุ 100-1000 การแสดงผล เอาต์พตุ 30000 เครือข่ายเฉพาะบรเิ วณ อินพตุ หรือเอาต์พุต 200-20000 ออ็ พติคลั ดิสก์ สอ่ื จดั เก็บข้อมูล 500-15000 เทปแม่เหล็ก สือ่ จดั เก็บข้อมลู 1000-15000 ดิสก์แมเ่ หลก็ สื่อจัดเกบ็ ข้อมลู 2000-60000 แหล่งข้อมูลวดิ ีโอท่ีไมไ่ ดบ้ บี อัดข้อมลู อนิ พุต 1000 แหลง่ ข้อมลู เสียงท่ีไมไ่ ดบ้ บี อัดขอ้ มูล อินพุต 100 8.2 ความต้องการของระบบคอมพิวเตอร์ 1. ตอ้ งมกี ารกาหนดแอดเดรสเฉพาะให้กบั แต่ละอปุ กรณท์ ต่ี ่อพ่วง 2. ต้องมีขนั้ ตอนวิธกี ารท่อี ุปกรณ์ตอ่ พ่วงสามารถติดต่อสือ่ สารกบั ซีพยี ู 3. การควบคมุ อนิ พุต/เอาต์พตุ ด้วยโปรแกรมมคี วามเหมาะสมกบั อุปกรณ์ท่ีมีความเร็วต่า และมกี ารถ่าย โอนข้อมูลเป็นแบบเวิร์ด แต่สาหรับอุปกรณ์ท่ีมีความเร็วสูงท่ีมีการถ่ายโอนข้อมูลเป็นแบบบล็อก จะมีการถ่าย โอนข้อมลู ที่มปี ระสทิ ธภิ าพสูงกวา่ ในการถ่ายโอนข้อมูลระหว่างอุปกรณ์อนิ พตุ /เอาต์พุตกบั หนว่ ยความจา 4. ต้องสามารถดูแลอุปกรณท์ ่ีมกี ารควบคมุ ทแี่ ตกต่างกันใหส้ ามารถทางานรว่ มกันได้ 8.2.1 การใชอ้ นิ เทอรเ์ ฟซโมดลู ในการเชื่อมต่ออุปกรณ์อนิ พุต/เอาตพ์ ตุ โดยตรงกับซีพยี ู 1. รูปแบบท่ีอุปกรณ์ต่าง ๆ ต้องการข้อมูลท่ีแตกต่างกัน ทาให้ระบบคอมพิวเตอร์ใช้อินเทอร์เฟซ ท้งั ด้านฮารด์ แวรแ์ ละซอฟตแ์ วร์ตา่ งกัน ระบบคอมพิวเตอร์และสถาปัตยกรรม

ห น้ า | 179 2. เนื่องจากอุปกรณ์กับซีพียูมีความเร็วท่ีแตกต่างกัน ทาให้การซิงโครไนซ์ยุ่งยาก โดยเฉพาะ อย่างย่ิงถ้ามีหลาย ๆ อุปกรณ์พยายามติดต่อกับอินพุต/เอาต์พุตพร้อม ๆ กัน จะทาให้มีการใช้บัฟเฟอร์จานวน มาก 3. การเช่ือมต่อภายในที่สนับสนุนการให้บริการมัลติมีเดีย จะต้องมีความสามารถในการส่งข้อมูล อย่างตอ่ เนือ่ ง รวมถงึ เครอื ขา่ ยและอปุ กรณ์ทตี่ ดิ ต่อสือ่ สารกนั ดว้ ยความเร็วสงู 4. อุปกรณ์จาพวกดิสก์ไดรฟว์ถูกควบคุมด้วยกลไกทางอิเล็กทรอนิกส์ที่ซีพียูต้องใช้เวลามากใน การควบคมุ การทางาน 5. จะต้องมีอินเทอร์เฟซเฉพาะเพื่อรองรับการทางานของแตล่ ะอุปกรณ์อินพุต/เอาต์พุตท่ีมีความ แตกต่างกนั ทง้ั ในเรอ่ื งของแอดเดรส การซงิ โครไนซ์ สถานะ และความสามารถในการควบคุมภายนอก 6. โดยปกติอปุ กรณ์อินพตุ /เอาต์พตุ จะเช่ือมต่อกบั ซีพียูผ่านทางไอโอโมดลู (I/O Module) 7. ไอโอโมดูลจะต้องมีความสามารถในการถ่ายโอนข้อมูลแบบบล็อกโดยใช้บัฟเฟอร์ มีมาตรฐาน ในการอนิ เทอร์เฟซกบั ซพี ยี ู และมคี วามสามารถในการควบคุมอปุ กรณ์พเิ ศษที่ถูกออกแบบมาเพ่ิมขน้ึ ดว้ ย 8. ไอโอโมดูลท่ีควบคุมอุปกรณ์ประเภทเดียวเรียกว่า ดีไวซ์คอนโทรลเลอร์ แต่หากมีอุปกรณ์ มากกวา่ 1 ประเภท จะต้องมีการกาหนดแอดเดรสเพอ่ื แยกออกจากโมดูลอ่นื CPU I/O Module I/O Module ภาพท่ี 8.1 แสดงการจดั เรยี งไอโอโมดูลอย่างง่าย I/O Data I/O Module Data I/O Device Data Address Register I/O Device Data Data I/O I/O Module Data Data Register Address I/O Device CPU ภาพที่ 8.2 แสดงการจัดเรียงไอโอโมดลู ทีม่ ีความสลบั ซบั ซอ้ น ระบบคอมพวิ เตอรแ์ ละสถาปัตยกรรม

ห น้ า | 180 8.3 ปัจจัยการออกแบบไอโอ การออกแบบระบบไอโอให้เหมาะสมจะทาให้ซีพียูทางานได้อย่างมีประสิทธิภาพ ท้ังในเร่ืองของการ ซิงโครไนซ์อุปกรณ์หลาย ๆ อุปกรณ์ การปรับเวลาของอุปกรณ์ท่ีมีอัตราการถ่ายโอนข้อมูลท่ีแตกต่างกัน และ การปรับเวลาของซีพียูให้ทางานได้โดยไม่ต้องเสียเวลารอในขณะที่ไอโอกาลังทางาน ปัจจัยเหล่าน้ีเป็นตัววัด ประสทิ ธิภาพของคอมพิวเตอร์ สว่ นปัจจยั ทค่ี วรพจิ ารณาในการออกแบบไอโอมี 3 ประการได้แก่ 1. ตาแหน่งข้อมลู : การเลือกอปุ กรณ์ และแอดเดรสของขอ้ มลู ในอุปกรณ์ 2. การถ่ายโอนข้อมูล : ปริมาณของข้อมูล อัตราการถ่ายโอนข้อมูลท้ังในขณะท่ีเข้าหรือขณะที่ออกจาก อปุ กรณ์ 3. การซิงโครไนซ์ : ใหเ้ อาต์พุตเฉพาะเมอื่ อปุ กรณ์พร้อม และรับอินพุตเมื่อมขี อ้ มูล ในการออกแบบไอโอทั้ง 3 ประการทกี่ ลา่ วขา้ งต้นนั้นจาเป็นต้องมีการถ่ายโอนข้อมลู ของไอโอออกมา ซึง่ การถ่ายโอนข้อมูลน้ันข้ึนอยู่กับประเภทของอุปกรณ์ไอโอที่เป็นมาตรฐาน การเช่ือมต่อซีพียูและอุปกรณ์ไอโอ เป็นการกาหนดโครงสร้างข้อมูลท่ีอุปกรณ์อินเทอร์เฟซตามรายละเอียด เช่น การรวมบิตเป็นเวิร์ด การ ตรวจสอบและแก้ไขข้อผิดพลาดใน low-level และการรับเวริ ์ดในรจี ิสเตอร์ท่ีอยใู่ นแอดเดรสทว่ี ่างในไอโอ การ เชื่อมต่อระหว่างซีพียูและอุปกรณ์ไอโอเป็นการกาหนดมาตรฐานให้กับอุปกรณ์ในการเขียนข้อมูล และมี คุณสมบตั ทิ ตี่ อ้ งใช้ในการอา่ นและเขียนข้อมลู 8.4 โครงสร้างของไอโอบัส โครงสรา้ งของไอโอบสั น้นั จะประกอบด้วย 3 สว่ นดงั นี้ 1. Isolated I/O จะมีชุดของแอดเดรสบัส ดาต้าบัส และคอนโทรลบัส ซ่ึงเป็นชุดของไอโอบัส และจะมีอีกชุดหนึ่ง สาหรบั เมมโมรบี่ สั ทีแ่ ยกจากกัน Control CPU Address Memory Data Address I/O System Data Control I/O bus ภาพที่ 8.3 แสดงโครงสรา้ งของไอโอบสั แบบ Isolated I/O ระบบคอมพิวเตอรแ์ ละสถาปัตยกรรม

ห น้ า | 181 2. Shared I/O มีการใช้แอดเดรสบัสและดาต้าบัสร่วมกัน เป็นไอโอบัสและเมมโมรี่บัส แต่มีสัญญาณควบคุมคนละ เสน้ กนั สาหรบั อ่าน เขียน อินพตุ และเอาตพ์ ุต Control CPU Address Memory Data I/O Control I/O System ภาพที่ 8.4 แสดงโครงสร้างของไอโอบสั แบบ Shared I/O 3. Memory-map I/O แบบน้ีจะมีอีกบัสหน่ึงที่ใช้ท้ังในไอโอ และหน่วยความจา จากภาพที่ 8.5 เป็นการใช้คอนโทรลบัส ร่วมกนั ช่วงของเมมโมร่แี อดเดรสจะถูกกันไวส้ าหรับไอโอรจี สิ เตอร์ Memory Control CPU Address Memory Data I/O Control I/O System ภาพที่ 8.5 แสดงโครงสร้างของไอโอบสั แบบ Memory-map I/O พื้นที่แอดเดรสทั้งหมดของระบบคอมพิวเตอร์ท่ีเป็นแบบ Memory-map I/O นั้นในหน่วยความจา ประกอบด้วยเมมโมรีโมดลู จานวน 2-3 โมดลู ซงึ่ จะมไี อโอรีจสิ เตอรก์ ระจายไปตามการอินเทอรเ์ ฟซของอุปกรณ์ อินพุตเอาตพ์ ุต แตม่ เี พียงแอดเดรสบางส่วนของไอโอรจี ิสเตอรเ์ ท่านัน้ ท่ใี ชใ้ นระบบ ระบบคอมพิวเตอรแ์ ละสถาปัตยกรรม

ห น้ า | 182 เทคนคิ การทางานของอินพตุ /เอาต์พตุ 1. การควบคมุ อนิ พุต/เอาต์พตุ ดว้ ยโปรแกรม (Programmed I/O) เป็นเทคนิคที่มีการแลกเปลี่ยนข้อมูลระหว่างโพรเซสเซอร์และไอโอโมดูล โดยโพรเซสเซอร์จะเอ็กซี คิวตโ์ ปรแกรมทีค่ วบคุมโอเปอเรชั่นของไอโอ รวมถงึ การตรวจสอบสถานะของอปุ กรณ์ การสง่ คาสั่งเพ่อื การอ่าน หรือการเขียน และการถ่ายโอนขอ้ มูล การเอ็กซีคิวต์คาสั่งของไอโอน้ัน โพรเซสเซอร์มีหน้าท่ีในการกาหนดแอดเดรส ไอโอโมดูล อุปกรณ์ และคาส่ังของไอโอ ซึ่งการเอ็กซีคิวต์คาส่ังของไอโอมี 4 ประเภท ได้แก่ ควบคุม (Control) ตรวจสอบ (Test) อ่าน (Read) และเขยี น (Write) ดังภาพท่ี 8.6 Instruction Register 1. ซีพียูเอ็กซีคิวต์คาสั่งอินพุตท่ีแอดเดรส 24 ทา ให้มีการกอ๊ ปปแี้ อดเดรสที่ 24 ไปเกบ็ ไว้ในไอโอ 24 แอดเดรสรจี ิสเตอร์ 24 I/O Address Register Keyboard I/O Module 2. แอดเดรส 24 เป็นไอโอโมดูลของคีย์บอร์ด สายสัญญาณควบคุมการอ่าน/เขียน ชี้ให้เห็น R/W ว่าคาสัง่ นั้นเปน็ อินพตุ 24 I/O Data Register Buffer 3. บัฟเฟอร์ในไอโอโมดูลจะเก็บค่าการกดคีย์ ใน “D” กรณีนีร้ หสั แอสก้ี 68 ซึง่ เป็นตวั อกั ษร D ขอ้ มูล “D” จะถูกถา่ ยโอนไปยงั ไอโอดาต้ารีจสิ เตอร์ “D” 4. ขอ้ มูลในไอโอดาตา้ รีจสิ เตอร์ จะถกู ก๊อปปี้ไปยัง 68 แอคคิวมูเลเตอร์ หรือรีจิสเตอร์ เป็นการส้ินสุด โอเปอเรชัน่ ภาพที่ 8.6 แสดงการเอ็กซคี วิ ตค์ าสง่ั ของไอโอ ระบบคอมพวิ เตอร์และสถาปัตยกรรม

ห น้ า | 183 2. การควบคุมอนิ พุต/เอาตพ์ ุตผา่ นกลไกการอินเทอรร์ พั ท์ (Interrupt Driven I/O) เป็นเทคนิคท่ีโพรเซสเซอร์จะส่งคาส่ังไปยังไอโอ แล้วกลับไปเอ็กซีคิวต์คาส่ังอ่ืนต่อไป จนเมื่อไอโอ ทางานตามคาสง่ั นั้นเสรจ็ เรยี บร้อยแล้วกจ็ ะส่งสัญญาณอินเทอรร์ ัพท์แจ้งให้โพรเซสเซอร์ทราบ ดังภาพที่ 8.7 Memory Register 1. ก่อนการอินเทอร์รัพท์ โปรแกรม A กาลังถูกเอ็กซีคิวต์ A A อยู่ และโปรแกรมเคาเตอร์ (PC) ช้ีอยทู่ ่ีคาสัง่ ปจั จบุ ัน PC Stack Area B Memory Register 2. เม่ือสัญญาณอินเทอร์รัพท์ถูกส่งเข้ามาที่ซีพียู จะมี A การเอ็กซีคิวต์คาสั่งปัจจุบันให้เสร็จเรียบร้อยก่อน A PC หลังจากน้ัน ข้อมูลท้ังหมดท่ีเก่ียวข้องกับโปรแกรมท่ี ถูกเอ็กซีคิวต์ ตาแหน่งของคาสั่งสุดท้าย และข้อมูลใน Stack PC รจี สิ เตอรท์ ุกตัวจะถูกเกบ็ ในพ้ืนท่ีท่ีเป็นสแต็ก หรือพื้นที่ Area พเิ ศษท่เี รียกว่า PCB (Process Control Block) Memory Register 3. เมื่อรูทีนของอินเทอร์รัพท์ถูกเอ็กซีคิวต์เรียบร้อยแล้ว A ค่าในรีจิสเตอร์จะถูกคืนค่า รวมถึงโปรแกรมเคาเตอร์ A PC ด้วย ทาให้โพรเซสเซอร์กลับมาเอ็กซีคิวต์คาสั่งต่อจาก คาสั่งเดมิ กอ่ นที่จะมสี ัญญาณอนิ เทอร์รัพท์เขา้ มา Stack Area ภาพที่ 8.7 แสดงการควบคุมอนิ พตุ /เอาตพ์ ุตผา่ นกลไกการอนิ เทอร์รัพท์ (Interrupt Driven I/O) ระบบคอมพิวเตอร์และสถาปัตยกรรม

ห น้ า | 184 8.5 การจัดลาดบั ความสาคัญของอนิ เทอร์รพั ท์ ถ้ามีอินเทอร์รัพท์เกิดขึ้นมากมายในเวลาเดียวกัน จะมีปัญหาเกิดข้ึนมากมาย ได้แก่ กรณีที่หน่ึง ซีพียูจะ มวี ิธกี ารจดั ลาดบั การตอบสนองอินเทอรร์ ัพท์เหล่าน้นั อย่างไร เม่ือมีอนิ เทอรร์ ัพท์เกิดข้นึ พร้อมกันหลายอินเทอร์ รัพท์เพื่อคอยการตอบสนองจากซพี ียู กรณีท่ีสอง ซพี ียทู ราบไดอ้ ย่างไรวา่ อปุ กรณ์ใดทสี่ ง่ อินเทอร์รพั ท์เขา้ มา 8.5.1 วิธีการหาว่าอปุ กรณใ์ ดทีส่ ่งอนิ เทอร์รพั ท์ใหซ้ พี ยี ู 1. Vectored Interrupt ในสัญญาณอินเทอร์รพั ทน์ น้ั จะมแี อดเดรสของอินเทอร์รัพท์ดไี วซ์รวมมาด้วย ดงั ภาพที่ 8.8 Interrupt K occurs Memory Address of Interrupt A Address of Interrupt B ...... Address of Interrupt K ...... Interrupt A Jump to K Service Routine Service Routine ...... Interrupt K Service Routine ภาพที่ 8.8 แสดงการส่งสญั ญาณอนิ เทอร์รพั ทแ์ บบ Vectored Interrupt 2. Polled Interrupt เปน็ การใช้พูลล่ิงในแต่ละอุปกรณโ์ ดยใช้ daisy chaining ซ่ึงจะเปน็ การวางอนิ เทอร์รัพท์ลงไป บนสายอินเทอร์รพั ท์เพียงเส้นเดียวต่อไปยังซีพียู ซึ่งกาหนดให้มีลาดับความสาคัญสูงสุดที่ซพี ียูสามารถทราบได้ ก่อน ดงั ภาพที่ 8.9 ระบบคอมพวิ เตอรแ์ ละสถาปตั ยกรรม

ห น้ า | 185 Interrupt K occurs Memory General interrupt Polls devices to determine Polling routine which device, then ...... Jump to K Interrupt A Service Routine Service Routine ...... Interrupt K Service Routine ภาพท่ี 8.9 แสดงการสง่ สัญญาณอินเทอรร์ พั ทแ์ บบ Polled Interrupt 8.5.2 การจัดการเมอื่ มีหลายอนิ เทอรร์ พั ท์ เมื่อซีพียูมีหลายอินเทอร์รัพท์เกิดข้ึน ซีพียูจะมีวิธีการจัดการกับอินเทอร์รัพท์เหล่านั้นโดยการ กาหนดลาดับความสาคัญให้แต่ละอินเทอร์รัพท์ ซึ่งซีพียูจะจัดการกับอินเทอร์รัพท์ที่มีความสาคัญสูงสุดก่อน หลังจากนั้นจะจัดการกับอินเทอร์รัพท์ท่ีมีความสาคัญสูงรองลงไปจนถึงอินเทอร์รัพท์ที่มีความสาคัญลาดับ สุดท้าย การกาหนดลาดับความสาคัญให้กับอินเทอร์รัพท์มีข้อดีคือ ทาให้มีลาดับชั้นในการจัดการกับอินเทอร์ รัพท์ เน่ืองจากในการทางานจริงอาจจะมีอินเทอร์รัพท์ซ้อนกันอยู่ในโปรแกรมที่กาลังทางาน การจัดการเมื่อมี หลายอินเทอร์รัพท์นี้จะใช้หลักการท่ีต้องจัดการอินเทอร์รัพท์ที่มีลาดับความสาคัญสูงกว่าก่อนจนเสร็จสมบูรณ์ แล้วจึงจัดการกับอินเทอร์รัพท์ท่ีมีลาดับความสาคัญรองลงมาจนกว่าจะหมดทุกอินเทอร์รัพท์จึงกลับมาทางาน ตอ่ ไป ดงั ภาพท่ี 8.10 ระบบคอมพิวเตอรแ์ ละสถาปตั ยกรรม

ห น้ า | 186 Time original Interrupt Interrupt Interrupt Interrupt program Service A Service B Service C A occurs Executing Interrupt Executing Executing Executing B occurs Suspended Suspended Completed Completed Executing Interrupt Suspended C occurs Executing Completed Executing ภาพท่ี 8.10 แสดงการจดั การของซพี ียูเมอ่ื มหี ลายอินเทอร์รพั ท์ 8.5.3 เทคนิคการทางานของอนิ พุต/เอาต์พุต อุปกรณ์อินพุต/เอาต์พุตใช้เทคนิคการทางานโดยการเข้าถึงหน่วยความจาโดยตรง (Direct Memory Access : DMA) ซง่ึ เทคนิคน้ีมกี ารแลกเปล่ียนข้อมูลกนั โดยตรงระหวา่ งไอโอโมดลู และหน่วยความจา หลัก โดยไมเ่ ก่ียวขอ้ งกับโพรเซสเซอร์ ซงึ่ จะตอ้ งมีเงื่อนไขหลกั 3 ประการคือ 1. ตอ้ งมีวธิ ีการเชือ่ มตอ่ ของอินพุต/เอาต์พุต และหนว่ ยความจา 2. ไอโอโมดูลที่มีความสัมพันธ์กับอุปกรณ์เฉพาะแบบ จะต้องสามารถอ่านและเขียนข้อมูลลงใน หนว่ ยความจาได้ 3. ตอ้ งหลีกเลีย่ งปัญหาที่จะเกิดขน้ึ ระหวา่ งซพี ียแู ละไอโอโมดูล 8.5.3.1 ขอ้ ดขี องการเข้าถงึ หนว่ ยความจาโดยตรง (Direct Memory Access : DMA) 1. เหมาะสาหรบั การถา่ ยโอนข้อมลู บนดสิ ก์ที่มคี วามเร็วสูง 2. ในขณะท่มี กี ารถา่ ยโอนขอ้ มูล ซพี ียูสามารทางานอืน่ ได้ 3. มปี ระโยชนส์ าหรบั ระบบมลั ตยิ สู เซอร์ 4. การถ่ายโอนข้อมลู อยูใ่ นทศิ ทางใดทิศทางหน่ึง 5. ในบสั หลกั มีการใชโ้ มดลู เพ่ิมเตมิ เรียกว่า ดเี อม็ เอโมดูล (DMA Module) ระบบคอมพิวเตอรแ์ ละสถาปตั ยกรรม

ห น้ า | 187 6. มีลักษณะการทางานเลียนแบบการทางานของโพรเซสเซอร์ คือสามารถถ่ายโอน ข้อมูลในหนว่ ยความจาผ่านบัสหลกั ได้ 7. ไม่ขัดขวางการทางานของโพรเซสเซอร์ ทาให้โพรเซสเซอร์ทางานได้อย่างต่อเน่ือง ซง่ึ การทางานแบบนเ้ี รียกวา่ การขโมยวงรอบเวลา (Cycle stealing) Data Lines Data Count Data Register Address Lines Address Register DMA Request Control Logic DMA Acknowledge Interrupt Read Write ภาพท่ี 8.11 แสดงไดอะแกรมของการเขา้ ถึงหนว่ ยความจาโดยตรง 8.5.3.2 ข้อมลู ที่ตอ้ งมเี พอ่ื ควบคุมการเขา้ ถึงหน่วยความจาโดยตรง 1. ตาแหน่งของข้อมูลของอปุ กรณอ์ ินพตุ /เอาต์พตุ 2. ตาแหนง่ เร่มิ ต้นของบลอ็ กข้อมูลในหนว่ ยความจา 3. ขนาดของบลอ็ กขอ้ มลู ท่ีถูกถา่ ยโอน 4. ทิศทางของการถ่ายโอนข้อมูล ได้แก่ การอ่าน (จากอุปกรณ์อินพุต/เอาต์พุตไปหา หนว่ ยความจา) หรอื การเขยี น (จากหน่วยความจาไปหาอุปกรณ์อินพุต/เอาตพ์ ุต) 8.5.3.3 รูปแบบการเขา้ ถงึ หนว่ ยความจาโดยตรง 1. ทกุ โมดูลใช้บสั ร่วมกนั ระบบคอมพิวเตอรแ์ ละสถาปตั ยกรรม

ห น้ า | 188 โดยดีเอ็มเอโมดูลจะทาหน้าท่ีแทนโพรเซสเซอร์ ใช้ในการควบคุมอินพุต/เอาต์พุต ผา่ นโปรแกรม เพอื่ แลกเปลีย่ นข้อมูลระหวา่ งหน่วยความจาและไอโอโมดูลผ่านทางดเี อม็ เอโมดลู Processor DMA I/O . . . . I/O Memory ภาพที่ 8.12 แสดงไดอะแกรมแบบทุกโมดลู ใช้บัสรว่ มกัน 2. การรวมดีเอ็มเอฟงั กช์ นั เขา้ กับไอโอฟงั กช์ ัน เป็นการลดจานวนบัสลง โดยจะมีเส้นทางที่แยกจากบัสเชื่อมต่อระหว่างดีเอ็มเอ โมดูลและไอโอโมดูล ซ่ึงในทางลอจิกน้ันการทางานของดีเอ็มเอโมดูลเป็นส่วนหน่ึงของไอโอโมดูล หรืออาจจะ แยกเปน็ โมดลู ตา่ งหากออกไปเพ่อื ควบคมุ การทางานของไอโอโมดลู อ่ืน ๆ ได้ Processor DMA DMA Memory I/O I/O I/O ภาพท่ี 8.13 แสดงไดอะแกรมแบบการรวมดเี อ็มเอฟงั กช์ นั เข้ากบั ไอโอฟังกช์ ัน 3. การเชอ่ื มตอ่ ไอโอโมดลู กับดีเอ็มเอโมดลู โดยใชไ้ อโอบัส การเชื่อมต่อแบบนี้มีข้อดีคือ ช่วยลดจานวนอินเทอร์เฟซในดีเอ็มเอโมดูลให้เหลือ เพยี งอินเทอรเ์ ฟซเดียว และชว่ ยขยายความสามารถของดีเอ็มเอโมดูลออกไปได้อีกดว้ ย System Bus Processor DMA Memory I/O Bus I/O I/O I/O ภาพที่ 8.14 แสดงไดอะแกรมแบบการเช่ือมต่อไอโอโมดลู กบั ดีเอม็ เอโมดลู โดยใช้ไอโอบสั ระบบคอมพิวเตอร์และสถาปัตยกรรม


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook