200 likes | 475 Views
บทที่ 4 สถาปัตยกรรมคอมพิวเตอร์เบื้องต้น. สถาปัตยกรรมทั่วไปของระบบคอมพิวเตอร์ หน่วยประมวลผลกลาง หน่วยความจำ สถาปัตยกรรมของหน่วยประมวลผลตระกูล 80x86 ความเป็นมา ลักษณะทั่วไปของไมโครโปรเซสเซอร์ 8086 ระบบบัส การจัดการหน่วยความจำ แสต็ก รายละเอียดของส่วนประกอบภายใน ALU Registers
E N D
บทที่ 4 สถาปัตยกรรมคอมพิวเตอร์เบื้องต้น • สถาปัตยกรรมทั่วไปของระบบคอมพิวเตอร์ • หน่วยประมวลผลกลาง • หน่วยความจำ • สถาปัตยกรรมของหน่วยประมวลผลตระกูล 80x86 • ความเป็นมา • ลักษณะทั่วไปของไมโครโปรเซสเซอร์ 8086 • ระบบบัส • การจัดการหน่วยความจำ • แสต็ก • รายละเอียดของส่วนประกอบภายใน • ALU • Registers • โหมดการอ้างแอดเดรส • การอินเตอร์รัพท์ • สถาปัตยกรรมของหน่วยประมวลผลสมัยใหม่
Fetch Excute Decode Opcode Operand หน่วยประมวลผลกลาง • ขั้นตอนการทำงาน • อ่านคำสั่ง (Fetch) • ตีความ (Decode) • ประมวลผล (Excute) • CPU จะทำงานตามชุดคำสั่งที่อ่านขึ้นมาจากหน่วยความจำหลักเท่านั้น Stored Program Architecture (หรือ von Neumann Architecture) • ชุดคำสั่ง Opcode + Operand • Opcode : ระบุประเภทของการประมวลผล • Operand : ระบุข้อมูลที่นำมาประมวลผล
หน่วยความจำ • บิต : หน่วยที่เล็กที่สุดในการเก็บข้อมูล • ไบต์ : หน่วยที่ใช้ในการอ้างถึงข้อมูลในหน่วยความจำ • หน่วยย่อยจะมีหมายเลขเฉพาะตัว แอดเดรส [Address] • การอ้างถึงข้อมูลในหน่วยความจำ • หน่วยประมวลผลจะต้องสามารถระบุ แอดเดรสของข้อมูลนั้นด้วย
CPU Memory I/O I/O I/O Data bus Address bus Control bus บัส : ช่องทางส่งสัญญาณ • อุปกรณ์ต่าง ๆ จะเชื่อมต่อกันโดยผ่านทางกลุ่มของสายสัญญาณ ที่เราเรียกว่า บัส • เราสามารถแบ่งกลุ่มของบัสออกเป็น 3 กลุ่ม • บัสข้อมูล • บัสตำแหน่ง หรือ แอดเดรสบัส • บัสควบคุม
สถาปัตยกรรมของระบบ ไมโครโปรเซสเซอร์ตระกูล 80x86 • ความเป็นมา • 4040 4 บิต • 8080 8 บิต • 8086 16 บิต อ้างหน่วยความจำได้ 1 MB • 8088 ภายใน 16 บิต ภายนอก 8 บิต • 80186 ไมโครโปรเซสเซอร์สำหรับระบบความคุม • 80286 16 บิต อ้างหน่วยความจำได้ 16 MB เริ่มมีความสามารถในการจัดการหน่วยความจำ • 80386 32 บิต อ้างหน่วยความจำได้ 4 GB มีความสามารถในการจัดการหน่วยความจำ ชุดคำสั่งและโครงสร้างทางซอฟต์แวร์ยังคงเป็นมาตรฐานอยู่ในปัจจุบัน • 80486 เพิ่มหน่วยประมวลผลทางคณิตศาสตร์ • Pentium พัฒนาการประมวลผลให้เร็วยิงขึ้น • หน่วยประมวลผลตระกูลอื่น ๆ เช่น • 68000, PowerPC, Alpha, SPARC, MIPS
การจัดการหน่วยความจำ • 8086 มีแอดเดรสบัสขนาด 20 บิต อ้างแอดเดรสได้ 2 แบบแตกต่างกัน อ้างแอดเดรสได้ 1 MB แอดเดรสขนาด 20 บิตนี้ คือแอดเดรสที่แท้จริง (physical address) ที่หน่วยประมวลผลอ้างจากหน่วยความจำ • 8086 มีรีจิสขนาด 16 บิต ไม่พอเพียงในการอ้างแอดเดรส ต้องใช้รีจิสเตอร์ 2 ตัวในการอ้างแอดเดรส • อ้างแอดเดรสแบบ เซกเมนต์ : ออฟเซ็ต • แบ่งหน่วยความจำทั้งหมดออกเป็นส่วนย่อย ๆ ที่เริ่มต้นแตกต่างกัน [segment] แล้วระบุระยะจากจุดเริ่มต้นนั้น [offset]
memory segment offset การอ้างแอดเดรสแบบเซกเมนต์ : ออฟเซ็ต • การแปลงจากการอ้างแบบ เซกเมนต์ : ออฟเซ็ต เป็น physical address • เลื่อนบิตของเซกเมนต์ ไปทางซ้าย 4 บิต (-> มีขนาด 20 บิต) • นำค่าของออฟเซ็ตมาบวก • ตัวอย่าง แปลงจาก 12ADh : 3A3Eh • 12AD0h เซกเมนต์ที่เลื่อนบิตไปทางซ้าย 4 บิต • 3A3Eh ออฟเซ็ต • 1650Eh physical address • ในทางกลับกัน physical address 1650Eh สามารถอ้างแอดเดรสแบบ segment : offset ได้เป็น 12ADh : 3A3Eh เช่นกัน และยังสามารถอ้างแบบอื่นได้ด้วย เช่น 1650h :000Eh 1200h : 450Eh 1000h : 650Eh และ คู่ segment : offset อื่น ๆ อีกหลายคู่
segment 0000h segment 0001h segment 0002h segment 0003h การเหลื่อมกันของเซกเมนต์ • เซกเมนต์หนึ่ง ๆ มีขอบเขตตั้งแต่ offset ที่ 0000h จนถึง FFFFh [16 บิต] เซกเมนต์มีขนาด = 64 KB [65536 bytes] • จุดเริ่มต้นของเซกเมนต์ต่าง ๆ • เซกเมนต์ที่ 0000h เริ่มต้นที่ physical address 00000h • เซกเมนต์ที่ 0001h เริ่มต้นที่ physical address 00010h • เซกเมนต์ที่ 0002h เริ่มต้นที่ physical address 00020h • ลักษณะของการเรียงตัวของเซกเมนต์จะเหลื่อมกัน
Code segment Data segment Stack segment Extra segment เซกเมนต์รีจิสเตอร์ • CS : Code segment ชี้ไปยังหน่วยความจำที่เก็บโปรแกรม • DS : Data segment ชี้ไปยังหน่วยความจำที่เก็บข้อมูล • ES : Extra segment ชี้ไปยังหน่วยความจำที่เก็บข้อมูลอื่น ๆ • SS : Stack segment ชี้ไปยังหน่วยความจำที่เป็น stack • 8086 สามารถอ้างหน่วยความจำทั้งหมดได้ 1 MB แต่สามารถอ้างได้พร้อมกันแค่ 4 เซกเมนต์เท่านั้น
แสต็ก • เป็นหน่วยความจำสำหรับเก็บข้อมูล ที่มีลักษณะเป็นแบบ เข้าก่อนออกทีหลัง (First In Last Out :FILO)
รายละเอียดของส่วนประกอบภายในไมโครโปรเซสเซอร์ 8086 • ALU : มีขนาด 16 บิต • ทำให้เรียก 8086 ว่าเป็น CPU 16 บิต • รีจิสเตอร์ • รีจิสเตอร์ทั่วไป (General-Purpose Registers) • 16 บิต : AX BX CX และ DX • 8 บิต : AH AL BH BL CH CL DH และ DL • รีจิสเตอร์สำหรับอ้างอิง (Index Registers) • มีขนาด 16 บิต : SI และ DI • รีจิสเตอร์สำรับการชี้ (Pointer Registers) • มีขนาด 16 บิต : BP และ SP • เซกเมนต์รีจิสเตอร์ (Segment Registers) • CS DS ES และ SS • แฟล็ก (Flags) • สถานะของผลลัพธ์จากการคำนวณ • รีจิสเตอร์อื่น ๆ ที่ผู้ใช้ไม่สามารถใช้ได้โดยตรง • IP (Instruction Pointer) : เก็บตำแหน่งของคำสั่งถัดไป • IR (Instrcution Register) : เก็บคำสั่งปัจจุบัน • etc.
คู่รีจิสเตอร์ 16 บิต และ 8 บิต • AX (Accumulator Register) • BX (Base Register) • CX (Counter Register) • DX (Data Register) AX AH AL BX BH BL CX CH CL DX DH DL
โหมดการอ้างแอดเดรส • โหมดการอ้างแอดเดรส (Addressing Mode) คือรูปแบบที่ CPU อ้างถึงข้อมูล แบ่งเป็น 3 กลุ่ม • อ้างถึงข้อมูลใน รีจิสเตอร์ • อ้างถึงข้อมูลจากที่ระบุในคำสั่ง • อ้างถึงข้อมูลในหน่วยความจำ
การขัดจังหวะ • การสั่งให้หน่วยประมวลผลหยุดทำงานปัจจุบันชั่วคราว แล้วกระโดดไปตอบสนองการขัดจังหวะนั้น เมื่อตอบสนองเสร็จแล้ว CPU จะกลับมาประมวลผลงานเดิมที่ค้างไว้ • ตัวอย่าง เช่น อุปกรณ์บางชิ้นได้รับข้อมูล ข้อมูลเขียนลงในฮาร์ดดิสก์เรียบร้อย หรือ มีการกดปุ่มบนแป้นพิมพ์ เป็นต้น • การขัดจังหวะสามารถสร้างได้จาก • ฮาร์ดแวร์ : ฮาร์ดแวร์อินเตอร์รัพท์ • ใช้ในการแจ้งการเปลี่ยนสถานะของอุปกรณ์รอบข้างต่างๆ และต้องการการจัดการจาก CPU • ซอฟต์แวร์ : ซอฟต์แวร์อินเตอร์รัพท์ • ใช้ในการเรียกใช้บริการของระบบ (system library)
สถาปัตยกรรมของระบบคอมพิวเตอร์สมัยใหม่สถาปัตยกรรมของระบบคอมพิวเตอร์สมัยใหม่ • เทคโนโลยีของหน่วยประมวลผลกลาง • หน่วยประมวลผลแบบ RISC • การประมวลผลแบบ ไปป์ไลน์ • การประมวลผลแบบซูเปอร์สเกลาร์ • ระบบบัสสมัยใหม่ • หน่วยความจำแคช