ไมโครอาร์คิเทคเจอร์ (Microarchitecture) โครงสร้างภายในของโปรเซสเซอร์
สรุปใจความสำคัญ
- ไมโครอาร์คิเทคเจอร์คือการนำชุดคำสั่ง (ISA) มาปรับใช้จริงในฮาร์ดแวร์ของโปรเซสเซอร์
- สถาปัตยกรรมคอมพิวเตอร์เกิดจากการรวมกันของ ISA และไมโครอาร์คิเทคเจอร์
- การประมวลผลแบบไปป์ไลน์ (Pipelining) ช่วยให้โปรเซสเซอร์ประมวลผลคำสั่งได้หลายคำสั่งพร้อมกันในขั้นตอนที่ต่างกัน
ในทางอิเล็กทรอนิกส์ วิทยาการคอมพิวเตอร์ และวิศวกรรมคอมพิวเตอร์ ไมโครอาร์คิเทคเจอร์ (Microarchitecture) หรือที่เรียกว่า การจัดระเบียบคอมพิวเตอร์ (Computer Organization) คือวิธีการที่ชุดคำสั่งสถาปัตยกรรม (Instruction Set Architecture หรือ ISA) ถูกนำมาปรับใช้จริงในโปรเซสเซอร์ตัวใดตัวหนึ่ง
สถาปัตยกรรมคอมพิวเตอร์ (Computer Architecture) เกิดจากการผสมผสานระหว่างไมโครอาร์คิเทคเจอร์และชุดคำสั่งสถาปัตยกรรม (ISA) ซึ่ง ISA หนึ่งชุดอาจถูกนำไปสร้างเป็นไมโครอาร์คิเทคเจอร์ที่แตกต่างกันได้หลายรูปแบบ ขึ้นอยู่กับเป้าหมายของการออกแบบหรือการเปลี่ยนแปลงของเทคโนโลยีในขณะนั้น

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

โดยทั่วไป ไมโครอาร์คิเทคเจอร์จะถูกนำเสนอในรูปแบบของแผนผังที่แสดงการเชื่อมต่อขององค์ประกอบต่างๆ เช่น เกต (Gates), รีจิสเตอร์, หน่วยคำนวณและตรรกะ (ALU) โดยแบ่งออกเป็นสองส่วนหลักคือ เส้นทางข้อมูล (Datapath) ซึ่งเป็นที่ที่ข้อมูลถูกจัดเก็บและเคลื่อนย้าย และ เส้นทางควบคุม (Control Path) ซึ่งทำหน้าที่ควบคุมทิศทางของข้อมูล
องค์ประกอบสำคัญของไมโครอาร์คิเทคเจอร์
การออกแบบไมโครอาร์คิเทคเจอร์ในปัจจุบันมีประเด็นสำคัญที่ต้องพิจารณาดังนี้:
- การประมวลผลแบบไปป์ไลน์ (Pipelined Datapath): เป็นเทคนิคที่ใช้ในไมโครโปรเซสเซอร์สมัยใหม่ส่วนใหญ่ ช่วยให้คำสั่งหลายคำสั่งสามารถประมวลผลซ้อนทับกันได้คล้ายกับสายพานการผลิตในโรงงาน โดยมีขั้นตอนพื้นฐาน เช่น การดึงคำสั่ง (Fetch), การถอดรหัสคำสั่ง (Decode), การประมวลผล (Execute) และการเขียนข้อมูลกลับ (Write Back)
- หน่วยประมวลผล (Execution Units): ประกอบด้วยหน่วยคำนวณและตรรกะ (ALU), หน่วยคำนวณเลขทศนิยม (FPU), หน่วยโหลด/จัดเก็บ (Load/Store Units), การทำนายสาขา (Branch Prediction) และ SIMD ซึ่งทำหน้าที่คำนวณและดำเนินการตามคำสั่ง
- การตัดสินใจระดับระบบ: เช่น การเลือกว่าจะรวมคอนโทรลเลอร์หน่วยความจำ (Memory Controllers) ไว้ในตัวชิปหรือไม่ รวมถึงการพิจารณาเรื่องพื้นที่ของชิป, ต้นทุน, การใช้พลังงาน และความซับซ้อนของลอจิก

แนวคิดพื้นฐานของไมโครอาร์คิเทคเจอร์
วงจรคำสั่ง (Instruction Cycles)
เพื่อให้โปรแกรมทำงานได้ CPU ทุกตัวจะต้องดำเนินการตามขั้นตอนดังนี้:
- อ่านคำสั่งและถอดรหัส (Read and Decode)
- ค้นหาข้อมูลที่เกี่ยวข้องที่จำเป็นต้องใช้ในการประมวลผลคำสั่ง
- ประมวลผลคำสั่ง (Process)
- เขียนผลลัพธ์ออกไป (Write results)
วงจรคำสั่งนี้จะทำงานซ้ำไปเรื่อยๆ จนกว่าจะมีการปิดเครื่อง
ไมโครอาร์คิเทคเจอร์แบบหลายรอบ (Multicycle Microarchitecture)
ในอดีต คอมพิวเตอร์ยุคแรกใช้การออกแบบแบบหลายรอบ (Multicycle) ซึ่งใช้จำนวนองค์ประกอบลอจิกน้อยที่สุดและใช้พลังงานในระดับที่เหมาะสม แม้จะมีความเร็วต่ำกว่าแบบไปป์ไลน์ แต่มีความน่าเชื่อถือสูงและมีการกำหนดเวลาที่แน่นอน
คำถามที่พบบ่อย
ไมโครอาร์คิเทคเจอร์แตกต่างจาก ISA อย่างไร?
ISA คือ 'สิ่งที่' โปรเซสเซอร์ทำได้ (ชุดคำสั่งและโมเดลการเขียนโปรแกรม) ส่วนไมโครอาร์คิเทคเจอร์คือ 'วิธีการ' ที่ฮาร์ดแวร์ทำให้สิ่งนั้นเกิดขึ้นจริง
ทำไมโปรเซสเซอร์รุ่นใหม่ถึงเร็วขึ้นทั้งที่ใช้ ISA เดิม?
เพราะมีการปรับปรุงไมโครอาร์คิเทคเจอร์ เช่น การเพิ่มประสิทธิภาพของไปป์ไลน์, การเพิ่มหน่วยประมวลผล (Execution Units) และการใช้เทคโนโลยีการผลิตเซมิคอนดักเตอร์ที่ก้าวหน้าขึ้น
เส้นทางข้อมูล (Datapath) และเส้นทางควบคุม (Control Path) คืออะไร?
เส้นทางข้อมูลคือส่วนที่ข้อมูลไหลผ่านและถูกประมวลผล (เช่น ALU และรีจิสเตอร์) ส่วนเส้นทางควบคุมคือส่วนที่สั่งการว่าข้อมูลควรจะเคลื่อนที่ไปทางไหนและเมื่อไหร่

