← กลับไปยังบทความทั้งหมด

ไมโครอาร์คิเทคเจอร์ (Microarchitecture) โครงสร้างภายในของโปรเซสเซอร์

สรุปใจความสำคัญ

  • ไมโครอาร์คิเทคเจอร์คือการนำชุดคำสั่ง (ISA) มาปรับใช้จริงในฮาร์ดแวร์ของโปรเซสเซอร์
  • สถาปัตยกรรมคอมพิวเตอร์เกิดจากการรวมกันของ ISA และไมโครอาร์คิเทคเจอร์
  • การประมวลผลแบบไปป์ไลน์ (Pipelining) ช่วยให้โปรเซสเซอร์ประมวลผลคำสั่งได้หลายคำสั่งพร้อมกันในขั้นตอนที่ต่างกัน

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

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

แผนผังไมโครอาร์คิเทคเจอร์ของ Intel Core 2
ตัวอย่างแผนผังไมโครอาร์คิเทคเจอร์ของ Intel Core 2

ความสัมพันธ์กับชุดคำสั่งสถาปัตยกรรม (ISA)

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

การจัดระเบียบแบบบัสเดี่ยว
การจัดระเบียบแบบบัสเดี่ยว (Single Bus Organization)

โดยทั่วไป ไมโครอาร์คิเทคเจอร์จะถูกนำเสนอในรูปแบบของแผนผังที่แสดงการเชื่อมต่อขององค์ประกอบต่างๆ เช่น เกต (Gates), รีจิสเตอร์, หน่วยคำนวณและตรรกะ (ALU) โดยแบ่งออกเป็นสองส่วนหลักคือ เส้นทางข้อมูล (Datapath) ซึ่งเป็นที่ที่ข้อมูลถูกจัดเก็บและเคลื่อนย้าย และ เส้นทางควบคุม (Control Path) ซึ่งทำหน้าที่ควบคุมทิศทางของข้อมูล

องค์ประกอบสำคัญของไมโครอาร์คิเทคเจอร์

การออกแบบไมโครอาร์คิเทคเจอร์ในปัจจุบันมีประเด็นสำคัญที่ต้องพิจารณาดังนี้:

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

แนวคิดพื้นฐานของไมโครอาร์คิเทคเจอร์

วงจรคำสั่ง (Instruction Cycles)

เพื่อให้โปรแกรมทำงานได้ CPU ทุกตัวจะต้องดำเนินการตามขั้นตอนดังนี้:

  1. อ่านคำสั่งและถอดรหัส (Read and Decode)
  2. ค้นหาข้อมูลที่เกี่ยวข้องที่จำเป็นต้องใช้ในการประมวลผลคำสั่ง
  3. ประมวลผลคำสั่ง (Process)
  4. เขียนผลลัพธ์ออกไป (Write results)

วงจรคำสั่งนี้จะทำงานซ้ำไปเรื่อยๆ จนกว่าจะมีการปิดเครื่อง

ไมโครอาร์คิเทคเจอร์แบบหลายรอบ (Multicycle Microarchitecture)

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

คำถามที่พบบ่อย

ไมโครอาร์คิเทคเจอร์แตกต่างจาก ISA อย่างไร?

ISA คือ 'สิ่งที่' โปรเซสเซอร์ทำได้ (ชุดคำสั่งและโมเดลการเขียนโปรแกรม) ส่วนไมโครอาร์คิเทคเจอร์คือ 'วิธีการ' ที่ฮาร์ดแวร์ทำให้สิ่งนั้นเกิดขึ้นจริง

ทำไมโปรเซสเซอร์รุ่นใหม่ถึงเร็วขึ้นทั้งที่ใช้ ISA เดิม?

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

เส้นทางข้อมูล (Datapath) และเส้นทางควบคุม (Control Path) คืออะไร?

เส้นทางข้อมูลคือส่วนที่ข้อมูลไหลผ่านและถูกประมวลผล (เช่น ALU และรีจิสเตอร์) ส่วนเส้นทางควบคุมคือส่วนที่สั่งการว่าข้อมูลควรจะเคลื่อนที่ไปทางไหนและเมื่อไหร่