Transcript บัส
สถาปัตยกรรมคอมพิวเตอร์ บทที่ 3 การทางานพืน้ ฐานและระบบบัส LOGO การทางานพืน้ ฐานและระบบบัส คอมพิวเตอร์ จะไม่ สามารถทางานได้ ถ้ าหาไม่ มีโปรแกรมสั่ งงานให้ กบั ตัวเครื่อง โปรแกรม หมายถึง การนาคาสั่ งทีค่ อมพิวเตอร์ เข้ าใจมาเรียงต่ อกัน จากนั้น หน่ วยประมวลผลจะตีความหมาว่ าต้ องการจะทาอะไร และจะทางานตามคาสั่ งนั้น การทางานภายในซีพยี ู สั่ งให้ บวกเลข A กับ B ข้ อมูลจะถูกเก็บไว้ ในรีจิสเตอร์ A + B A B A B โปรแกรมจะสั่ งงานให้ บวกเลข ALU A + B หน่ วยควบคุมจะทาหน้ าทีส่ ั่ งให้ บวก โดยวงจรภายใน ALU 5 4 1 2 3 4 5 การทางานพืน้ ฐานและระบบบัส รหัสคาสั่ ง ตีความคาสั่ ง ข้ อมูล ตัวประมวลผลจะอ่านรหัส คาสั่ งเข้ ามา แล้วตีความคาสั่ งว่ า จะทาอะไร จากนั้นก็จะรับ ข้ อมูลเข้ าสู่ ALU เพือ่ ทาการ ประมวลผลคาสั่ งนั้น ALU (Arithmetic and Logic Function) ผลลัพธ์ การทางานพืน้ ฐานและระบบบัส เมือ่ คอมพิวเตอร์ จะต้ องทาโปรแกรม โปรแกรมจะถูกโหลดมาเก็บไว้ ในหน่ วยความจาหลัก โดยหน่ วยความจาจะถูกแบ่ งไว้ ว่าตาแหน่ งใดเก็บคาสั่ ง ตาแหน่ งใดจะเก็บข้ อมูล ส่ วนประกอบของคอมพิวเตอร์ แบบ Top-Level View CPU Memory PC MAR IR MBR I/O AR Instruction Instruction . . Data I/O BR I/O Module Data PC = Program Counter IR = Instruction Register MAR = Memory Address Register MBR = Memory Buffer Register I/O AR = I/O Address Register I/O BR = I/O Buffer Register ฟังก์ชันการทางานพืน้ ฐาน การทางานของคอมพิวเตอร์ จะเกิดจากการทาชุดคาสั่ง ที่เป็ นรหัสภาษาเครื่ อง และ เก็บอยูใ่ นหน่วยความจา ประกอบไปด้วยประบวนการ 2 ขั้นตอน 1. อ่านรหัสคาสั่งจากหน่วยความจา 2. การปฎิบต ั ิการ หรื อ กระทาตามคาสั่ง Fetch Cycle Start Execute Cycle Fetch Instruction Execute Instruction ไซเคิลคาสั่ง (Instructure Cycle) Halt ลักษณะของคาสั่ งภาษาเครื่อง รหัสคาสั่ง จะประกอบด้วย 2 ส่ วน คือ 1. ออปโค้ด (opcode) บอกว่าให้ซีพียท ู าอะไร ่ ี่ใด 2. โอเปอร์ แรนด์ (operand) การทาคาสั่งจะทากับค่าข้อมูลที่อยูท 15 12 11 0 Opcode Address รูปแบบคาสั่ ง 15 S 14 0 Magnitude รูปแบบเลขจานวนเต็ม การขัดจังหวะ เมือ่ ซีพยี ูทางานตามโปรแกรม จะทาคาสั่งเรียงกันไปทีละ คาสั่ง แต่ซีพยี ูสามารถถูกขัดจังหวะ หรือถูกอิ นเทอร์รัปต์ให้ไป ทางานอื่ นก่อนได้ และเมือ่ ทางานนั้นจบแล้วจึงกลับมา ทางานที่โปรแกรมหลักที่มนั ทาอยู่ก่อนหน้า การขัดจังหวะ Program เกิดจากการทาคาสั่งแต่ละคาสั่งได้ไม่สมบูรณ์ หือเกิดโอเวอร์โฟวล์ หรือ เกิดการหารด้วยศูนย์ Timer เมื่อมีการจับเวลาและเวลาเดินมาถึงค่าที่กาหนด จะ เกิดการอิ นเทอร์รัปต์โปรแกรม I/O อุปกรณ์อินพุ ต เอาท์พุต ส่งสัญญาณมาบอกซีพยี ู Hardware เกิดจากแหล่งจ่ายไฟหรือหน่วยความจา ผิดพลาด ลาดับการทาคาสั่ งเมื่อโปรแกรมถูกอินเทอร์ รัปต์ ชุ ดคาสั่ ง ชุ ดคาสั่ ง โปรแกรมย่ อย C C G D A A B B E F H การขัดจังหวะ 1 ชั้น การขัดจังหวะหลายชั้น การดาเนินการของคาสั่ ง CALL และ Return 305 306 307 308 โปรแกรม …….. …….. Instruction Instruction CALL 425 Instruction ……….. ……….. ก่อนคาสั่ ง CALL หลังคาสั่ ง CALL กระโดดไปแอดเดรส 425 กลับตาแหน่ ง 308 โปรแกรมย่ อย 425 Instruction 426 Instruction ……………. 435 Return เก็บค่ าโปรแกรมเคาน์ เตอร์ (PC) ลงสู่ หน่ วยความจาสแตก 308 คืนค่าจากสแตกให้ กบั PC (308) ฟังก์ ชันอินพุตเอาต์ พตุ ซีพยี ู สามารถอ่านเขียนข้ อมูลกับต่าแหน่ งหน่ วยความจาได้ และสามารถอ่านเขียนข้ อมูลกับตาแหน่ งพอร์ ตได้ ระบบคอมพิวเตอร์ ที่ออกแบบให้ บสั ของหน่ วยความจา (program memory) และบัสของหน่ วยความจาข้ อมูล (data memory) แยกออกจากกัน PROGRAM Memory Precessor Data Memory von Neumann and Harvard Architectures Instruction memory von Neumann CPU Instruction Address, Data and Status Busses Memory Harvard CPU Instructions von Neumann “bottleneck” Data Data Memory Address, Data and Status Busses 17 Data space Address, Data and Status Busses การวัดสมรรถนะของคอมพิวเตอร์ ความเร็วของซีพยี ู วัดจากจานวนขั้นตอนการทางานพืน้ ฐานภายใน 1 หน่ วยเวลา เวลาของการทางาน วัดเป็ นจานวนลูกของสั ญญาณนาฬิ กา เวลาทีใ่ ช้ ในการปฏิบัตกิ าร เวลาที่ใช้ หนึ่งขั้นตอนพืน้ ฐาน เรียกว่ า Clock Period หรือ Clock Cycle Time คาสั่ งบางคาสั่ งใช้ จานวนสั ญญาณนาฬิ กาไม่ เท่ ากัน ขั้นตอนโดยทั่วไปมีดงั นี้ 1. อ่ านรหัสคาสั่ ง (Fetch) 4. ปฎิบัติการตามคาสั่ ง 2. ถอดรหัส 5. เก็บผลลัพธ์ จากการประมวลผล 3. อ่ านข้ อมูลที่มากระทากับคาสั่ งนั้น ส่ วนประกอบของระบบบัสและการเชื่อมต่ อ คอมพิวเตอร์มีอุปกรณ์ 3 ส่ วนหลัก ที่เชื่อมต่อ กัน หน่วยประมวลผลกลาง หน่วยความจา พอร์ตอินพุตและเอาต์พตุ ส่ วนประกอบของบัสและการเชื่อมต่ อ บัสของหน่วยประมวลผลกลาง ประกอบด้วยแอดเดรสบัสสาหรับติดต่อ กับหน่วยความจาและพอร์ต บัสของหน่วยความจา เช่น ถ้าหน่วยความจาสามารถเก็ฐข้อมูลได้ N เวิร์ด (1 เวิร์ด เท่ากับ 2 ไบต์ หรื อ 16 บิต) แต่ละเวิร์ดจะอยูท่ ี่ ตาแหน่ง 0,1,… N-1 มีบสั ข้อมูลสาหรับส่ งข้อมูลเข้าออก หน่วยความจา และมีบสั ควบคุมซึ่งประกอบด้วยสัญญาณอ่านเขียน หน่วยความจา บัสของพอร์ตอินพุตเอาต์พตุ เป็ นบัสสาหรับรับส่ งข้อมูลระหว่างระบบ คอมพิวเตอร์กบั อุปกรณ์ภายนอก บัส (Bus) หน้ าทีข่ องระบบ Bus • ระบบบัสจะเชื่อมอุปกรณ์ต่าง ๆ บนเมนบอร์ดเข้าด้วยกัน บัส (Bus) หน้ าทีข่ องระบบ Bus (ต่ อ) • บัสเป็ นทางเชื่อมต่อระหว่างอุปกรณ์ต่างๆ ทั้งที่อยูบ่ นเมนบอร์ด และที่ติดตั้ง เพิ่มเข้ามาตั้งแต่ซีพีย,ู หน่วยความจา, แคช, ฮาร์ดดิสก์, สล็อตต่างๆ และ จอภาพ เป็ นต้น ดังนั้น ความเร็ วและประสิ ทธิภาพในการทางานของบัสจึงมีผลอย่างมากกับ ประสิ ทธิภาพโดยรวมของเครื่ องคอมพิวเตอร์ บัส (Bus) หน้ าทีข่ องระบบ Bus (ต่ อ) • ระบบบัสที่เหมาะสมจะต้องมีความเร็ วเพียงพอที่จะให้อุปกรณ์ต่างๆ รับส่ ง ข้อมูลระหว่างกันได้อย่างเต็มศักยภาพความเร็ วของอุปกรณ์น้ นั ๆ เพื่อไม่ให้ เป็ นตัวถ่วงอุปกรณ์อื่นๆ อันจะทาให้ความเร็ วโดยรวมของทั้งเครื่ องลดลง ระบบบัสและสล็อตต่ างๆ มีความสาคัญและเกีย่ วข้ องกัน บัสที่สาคัญที่สุด คือ บัสที่ใช้เชื่อมต่อกับซีพียู เรี ยกว่า Front Side Bus (FSB) เป็ นบัสที่ตอ้ งทางานด้วยความถี่สูงสุ ดภายนอกของซีพียเู ช่น 100, 133, 166, 200 , 266 และ 800 MHz เป็ นต้น เนื่องจากเป็ นเส้นทางเชื่อมต่อระหว่างซีพียู (ซึ่งติดตั้งอยูก่ บั ซ็อคเก็ตของซีพีย)ู กับชิปเซ็ตตัวหลัก ส่ วนต่ าง ๆ บนเมนบอร์ ด บัสทีเ่ ชื่อมต่ อไปยังส่ วนต่ าง ๆ ส่ วนประกอบของบัสและการเชื่อมต่ อ Read Memory Write N Word Data Address Data N-1 Instructions Address CPU Data Read I/O Module Write M Ports Address Internal Data External Data Interrupt Signals Internal Data External Data Interrupt signals Control Signals Data ตัวอย่ างระบบบัสของคอมพิวเตอร์ หน่วยประมวลผลกลาง หน่วยความจา บัส พอร์ต I/O ตัวที่ n พอร์ต I/O ตัวที่ 1 บัสแอดเดรส บัสข้ อมูล บัสควบคุม ถอดรหัส แอดเดรส วงจรควบคุม รี จีสเตอร์ขอ้ มูลและสถานะ อุปกรณ์อินพุต I/O Interface การติดต่ อระหว่ างคอมพิวเตอร์ กบั อุปกรณ์ ภายนอก การติดต่ อระหว่ างคอมพิวเตอร์ กบั อุปกรณ์ภายนอกหรือพอร์ ตอินพุต จะมี 2 วิธี อ่านค่ าจากพอร์ ตอยู่ตลอดเวลา ว่ าต้ องการติดต่ อกับซีพยี ู หรือไม่ วิธีนีซ้ ีพยี ูจะต้ องเสี ยเวลาไปบางส่ วนเพราะต้ องคอยตรวจสอบพอร์ ตอยู่ ตลอดเวลา ใช้ วธิ ีการอินเทอร์ รัปต์ เมื่อพอร์ ตอินพุตเอาท์ พุตต้ องการติดต่ อกับซีพยี ู จะส่ งสั ญญาณอินเทอร์ รัปต์ ไปบอกซีพยี ู การจัดสั ญญาณอินเทอร์ รัปต์ เมื่อมีสัญญาณอินเทอร์ รัปต์ เข้ ามา ซีพยี ูจะตรวจสอบว่ าสัญญานั้นมาจาก พอร์ ตใด และจะให้ บริการกับพอร์ ตนั้น CPU I / O ตัว ที่ 1 I / O ตัว ที่ 2 I / O ตัวที่ n การจัดสั ญญาณอินเทอร์ รัปต์ ทุกพอร์ ตส่ งสั ญญาณมา ผานวงจรจัดลาดับความสาคัญ โดยการพิจารณา จะให้ ซีพยี ูทาโปรแกรมตอบสนองการอินเทอร์ รัปกับพอร์ ตตัวใดก่อน วงจรจัดลาดับความสาคัญ CPU I/O ตัวที่ 1 I/O ตัว ที่ 2 I/O ตัว ที่ 3 I/O ตัว ที่ 4 การขยายระบบบัสบนเมนบอร์ ด Local Bus Processor Cache Local I/O Controller Main Memory System Bus Network SCSI Expansion Bus Interface Expansion Bus Serial Modem ISA Bus ISA (Industry Standard Architecture) เป็ นระบบบัสที่เริ่ ม มาใช้ต้ งั แต่คอมพิวเตอร์ IBM PC/XT โดยมีการส่ งข้อมูลขนาด 8 บิต และ 16 บิต ทางานได้ที่ความเร็ ว 8 MHz เป็ นระบบบัสที่ใช้กบั คอมพิวเตอร์ รุ่นเก่า ที่มีความเร็ วไม่สูงมาก เช่น 8086,80286, 80386 และ 8086 Local Bus เป็ นระบบบัสที่ถกู สร้างแยกออกมาจากระบบบัส ISA เพื่อให้อุปกรณ์บาง ประเภทที่ตอ้ งการควาเร็ วสู งนาไปใช้งาน เช่น อุปกรณ์ที่ใช้ในการวาดภาพ การ์ด เสี ยง ระบบบัสแบบนี้จะมีความเร็ วเข้าใกล้ซีพียมู ากขึ้น PCI Bus พัฒนาโดย Intel เมื่อปี 1990 ย่อมาจาก Peripheral Component Interconnect ซึ่ งเป็ นระบบบัสที่ยงั นิยมใช้กนั อยูใ่ น ปั จจุบนั ถูกออกแบบมาให้ใช้กบั ซี พียคู วามเร็ วสู ง ๆ เช่น Pentium ระบบบัสแบบ PCI มีท้ งั แบบ 32 บิต และแบบ 64 บิต เช่น ถ้าบัส 32 บิต ทางานที่ความเร็ ว 33 MHz จะมีความเร็ วในการส่ งข้อมูล เท่ากับ 32 x 33 = 1056 เมกะบิต่อวินาที PCI Bus Processor Cache Bridge/Memory Controller DRAM Audio Motion Video PCI Bus LAN SCSI Expansion Bus Bridge Expansion Bus Graphics Base I/O Device ตัวอย่ างการใช้ ระบบบัสของ Server Processor / Cache Processor / Cache Memory Controller DRAM System Bus Host Bridge Host Bridge PCI Bus PCI Bus Expansion Bus Bridge Expansion Bus Bridge SCSI SCSI LAN LAN PCI to PCI Bridge AGP AGP (Accelerated Graphic Port) เป็ นระบบบัสที่พฒั นามา จากระบบบัสแบบ PCI เพื่อใช้กบั การ์ ดแสดงผลจอภาพ มีความเร็ วสู งถึง 266 เมกะไบต์ต่อวินาที และพัฒนามาต่อเนื่องจนปั จจุบนั มีความเร็ วถึง 1066 เมกะ ไบต์ต่อวินาที AGP สล๊อตบนเมนบอร์ ด PCI Express PCI Express นั้นเป็ นบัสที่ทางานแบบ Serial สามารถเลือกใช้ ความเร็ วมากน้อยตามต้องการได้ โดยแบ่งออกเป็ นช่องสัญญาณ (channel) หรื อ lane บัสของ PCI มีความเร็ วในการรับส่ งข้อมูลแต่ละทิศทาง 250 MB/sec และรวมสองทาง (Full-Duplex) สูงถึง 500 MB/sec ซึ่ งเป็ นความเร็ วขั้น ต่าสุ ดเรี ยกว่า PCI Express x1 ถูกออกแบบให้มาแทนที่ PCI Bus แบบเดิม ประกอบด้วย 1 lane สล็อตก็จะสั้น ส่ วนขั้นถัดไปจะมีความเร็ วเพิ่มขึ้นเป็ น 2, 4, 8 และ 16 เท่าตามลาดับ ก็จะประกอบด้วย 2, 4, 8 และ 16 lane ที่รับส่ งข้อมูลพร้อม กัน สล็อตก็จะยาวขึ้น (มีข้ วั ต่อมากขึ้น) เรี ยกว่าเป็ น PCI Express x2, x4, x8 และสูงสุ ดคือ PCI Express x16 ที่เร็ วถึง 8 GB/sec ซึ่ งจะมา แทนที่สล็อตแบบ AGP 8x ที่ใช้กนั อยูใ่ นปั จจุบนั • ปัญหาหลักที่สาคัญของคอมพิวเตอร์ แม้วา่ คอมพิวเตอร์ จะมีแนวโน้มเร็ วขึ้นทุกวัน แต่มนั เร็ วไม่สมส่ วนเพราะส่ วนที่มี ความเร็ วเพิ่มขึ้นมาก คือ CPU แต่ในขณะ ที่อุปกรณ์ อย่างอื่นก็เร็ ว แต่เร็ วไม่ทนั CPU ซึ่ งปั ญหาที่เราจะพูดถึงนั้นก็คือ ปั ญหาคอขวด (button neck) ปั ญหาคอขวด คือ ปั ญหาที่ความเร็ วของแต่ละอุปกรณ์ไม่เท่ากัน จึงทาให้เกิดความ เลื่อมล้ ากัน ทาให้เกิดข้อจากัด คือ ในขณะที่ CPU มีความเร็ วสู งมากขึ้นเรื่ อย ๆ แต่ การส่ งข้อมูลจาก HARD DISK เพื่อเข้าไปประมวลผล ใน CPU ทาได้ชา้ มาก ทา ให้ CPU ต้องหยุดรอโดยเปล่าประโยชน์ ดังนั้น เครื่ องคอมพิวเตอร์ มี่ความเร็ วของซี พียู เป็ น 2 เท่าของเครื่ องอื่น ไม่ใช่วา่ จะต้องทางานได้เร็ วเป็ นสองเท่า แบบฝึ กหัด 1. 2. 3. 4. การอินเทอร์ รับปต์คืออะไร สามารถเกิดได้จากสาเหตุใดได้บา้ ง เพราะเหตุใดความกว้างของบัส จึงมีผลต่อความเร็ วของคอมพิวเตอร์ ระบบบัสแบบ PCI และ AGP ควรนามาใช้กบั อุปกรณ์ชนิ ดใด จงอธิ บายถึงปั ญหาหลัก ของคอมพิวเตอร์ ในด้านของความเร็ วที่ไม่สมส่ วน และ จงยกตัวอย่างอุปกรณ์ที่ทาให้เกิดปั ญหาเหล่านั้น