วันเสาร์ที่ 14 มีนาคม พ.ศ. 2552

บทที่ 5 - การออกแบบโปรเซสเซอร์


การออกแบบโปรเซสเซอร์
(Processor Design)
โปรเซสเซอร์และซีพียู
- โปรเซสเซอร์ (Processor) จะเป็นตัวประมวลผลเพียงตัวเดียว
- ซีพียู (CPU : Central Processing Unit) หมายถึงหน่วยประมวลผลกลางที่หมายรวมถึงตัวประมวลผล, หน่วยประมวลผลทางคณิตศาสตร์และตรรกะ (ALU) และหน่วยควบคุม (Control Unit)
องค์ประกอบของซีพียู
- สถาปัตยกรรมของซีพียูเป็นตัวบ่งบอกถึงลักษณะเฉพาะ และลักษณะการทำงานที่สำคัญของซีพียู
- อาจจะเรียกอีกแบบหนึ่งว่า “สถาปัตยกรรมชุดคำสั่ง” (ISA : Instruction Set Architecture)
- ลักษณะเฉพาะของซีพียูนี้กล่าวรวมไปถึง จำนวนและประเภทของรีจิสเตอร์, วิธีการกำหนดโหมดของแอ็ดเดรสของหน่วยความจำ และการออกแบบชุดคำสั่งต่าง ๆ (Instruction Sets)
- ปัจจุบันนี้แบ่งออกเป็น 2 กลุ่มคือ CISC (Complex Instruction Set Computers) และ RISC (Reduced Instruction Set Computers)
โครงสร้างการเอ็กซิคิวต์คำสั่งใน CISC และ RISC
ลักษณะเฉพาะของ CISC
- มีการรวมเอาคุณสมบัติด้านต่าง ๆ เช่น การกำหนดโหมดของแอ็ดเดรส (Addressing Mode) หรือประเภทคำสั่ง (Instruction Type) เข้าด้วยกันเพื่อปรับปรุงขีดความสามารถในการทำงาน
- นักออกแบบมองว่าปริมาณการใช้หน่วยความจำ และเวลาที่ใช้ในการเข้าถึงต่าง ๆ ในการทำงานของคอมพิวเตอร์ต้องมองเป็นราคาต่อหน่วย
- สถาปัตยกรรมแบบ CISC มีจำนวน Addressing Mode หลายแบบ
- ลักษณะนี้ส่งผลให้ชุดคำสั่งที่ใช้มีขนาด และใช้เวลาในการประมวลผลแตกต่างกัน
- ผู้ใช้ยอมรับและพอใจ เนื่องจากผู้ใช้สามารถเพิ่มจำนวนโอเปอเรชันบนโปรแกรมที่มีขนาดเท่าเดิมได้
ลักษณะเฉพาะของ RISC
- หนึ่งชุดคำสั่งต่อวงรอบ
- ความยาวของชุดคำสั่งคงที่
- ติดต่อกับหน่วยความจำด้วยคำสั่งโหลดและสโตร์เท่านั้น
- การใช้การกำหนดโหมดของแอ็ดเดรสที่เรียบง่าย
- การใช้โอเปอเรชันที่เรียบง่ายและมีจำนวนจำกัด
- การหน่วงเวลาชุดคำสั่งบางประเภท
- การใช้เทคนิคพรีเฟ็ตช์ และสเปคคูเลทีฟ
- การแบ่งหน้าที่ให้คอมไพเลอร์จัดการ
ยุคเชื่อมต่อระหว่าง CISC กับ RISC
- เดิมคอมพิวเตอร์ยุคแรกจะประมวลผลชุดคำสั่งทีละคำสั่งในหนึ่งช่วงเวลา
- นักออกแบบได้พยายามที่จะปรับปรุงอัตราการประมวลผลชุดคำสั่งให้เพิ่มมากขึ้นโดยใช้วิธีการโอเวอร์แลป (Overlap) ชุดคำสั่งให้มีมากกว่าชุดคำสั่งในการประมวลผลแต่ละครั้ง
- วิธีการโอเวอร์แลปดังกล่าวนี้ต่อมารู้จักกันในชื่อของ Pipelining และ Superscalar
- หลักการทั่ว ๆ ไป ของการประมวลผลชุดคำสั่งคือคอมพิวเตอร์จะโหลดชุดคำสั่งที่ต้องการประมวลผลมาจากหน่วยความจำ เราเรียกขั้นตอนนี้ว่าดึงหรือเฟ็ตช์คำสั่ง (Fetch)
- หลังจากนั้นก็จะทำการประมวลผลหรือเอ็กซิคิวต์ (Execute) แล้วจึงจะเฟ็ตช์ชุดคำสั่งต่อไปเข้ามาหลังจากประมวลผลชุดคำสั่งแรกเสร็จสิ้น
- วิธีการเพิ่มประสิทธิภาพด้วยการโอเวอร์แลปก็คือการเฟ็ตช์ชุดคำสั่งถัดไปเข้ามาก่อนที่ชุดคำสั่งแรกจะทำเสร็จ เราเรียกว่า พรีเฟ็ตช์ (Prefetch)
- อีก เทคนิคที่คล้ายกันเรียกว่าซุปเปอร์สเกลลาร์ (Superscalar) ซึ่งเป็นเทคนิคที่ใช้กับโปรเซสเซอร์ที่มีความสามารถรับชุดคำสั่งเข้าไปประมวลผลได้ทีละหลาย ๆ ชุดคำสั่งพร้อม ๆ กัน
- เทคนิคไปป์ไลน์และซุปเปอร์สเกลลาร์ไม่สามารถนำมาใช้กับ CISC ได้ เนื่องจาก CISC มีความยาวของชุดคำสั่งที่ไม่แน่นอน และ Addressing mode ที่หลากหลายและซับซ้อนทำให้ลดประสิทธิภาพของ CISC ลง
กรณีตัวอย่าง CISC : Motorola MC68000
- สถาปัตยกรรมของซีพียูและหน่วยความจำ
- CPU register
- Memory
- การกำหนดโหมดของแอ็ดเดรส (Addressing Mode)
- รูปแบบคำสั่งของ MC68000 (Instruction Formats)
กรณีตัวอย่าง RISC : The SPARC
- สถาปัตยกรรมของโปรเซสเซอร์และหน่วยความจำของ SPARC
- แยกกลุ่มรีจิสเตอร์ระหว่าง Integer register และ Floating-point register
- มี Branch delayที่ต้องการโปรแกรมเคาเตอร์ (PC) 2 ชุด
- Processor state ประกอบด้วยรีจิสเตอร์ 32 ชุด
- ชุดคำสั่งมีขนาดคงที่ 32 บิต
- อินสตรัคชันรีจิสเตอร์ (IR)มีขนาด 32 บิต
- หน่วยความจำมีขนาด 32 บิตมีขนาดได้ถึง 232 ไบต์
- มีการกำหนดใช้ MMU (Memory Mapping Unit) ทำให้สามารถอ้างอิงเนื้อที่บนหน่วยความจำได้มากขึ้น
- การกำหนดโหมดของแอ็ดเดรสของ SPARC (Addressing Mode)
- register + register
- register + sign-extended, immediate 13-bit constant
- รูปแบบคำสั่งของ SPARC (Instruction Formats)

ไม่มีความคิดเห็น:

แสดงความคิดเห็น