การจำแนกตามสถาปัตยกรรมชุดคำสั่ง (ISA)
เปรียบเทียบ CISC กับ RISC
สถาปัตยกรรมชุดคำสั่ง (Instruction Set Architecture – ISA) เป็นส่วนสำคัญที่กำหนดวิธีการที่โปรเซสเซอร์ทำงานกับคำสั่งต่างๆ สถาปัตยกรรมหลักสองประเภทที่ถูกพัฒนาขึ้นคือ CISC (Complex Instruction Set Computer) และ RISC (Reduced Instruction Set Computer) ซึ่งมีแนวคิดที่แตกต่างกันอย่างชัดเจน
CISC (Complex Instruction Set Computer)
CISC เป็นสถาปัตยกรรมที่เน้นการใช้คำสั่งที่ซับซ้อนและมีขนาดใหญ่ โดยแต่ละคำสั่งสามารถทำงานหลายอย่างในครั้งเดียว เช่น การโหลดข้อมูลจากหน่วยความจำ คำนวณ และเก็บผลลัพธ์กลับไปยังหน่วยความจำ ข้อดีคือช่วยลดจำนวนคำสั่งที่ต้องใช้ในโปรแกรม ทำให้โปรแกรมมีขนาดเล็กลงและประหยัดหน่วยความจำ ตัวอย่างเช่น โปรเซสเซอร์ตระกูล x86 ของ Intel และ AMD
ข้อดีของ CISC:
- จำนวนคำสั่งน้อยกว่า: เนื่องจากคำสั่งหนึ่งทำได้หลายขั้นตอน ทำให้โปรแกรมสั้นลง ลดการใช้หน่วยความจำ
- เข้ากันได้กับซอฟต์แวร์เก่า: สถาปัตยกรรม CISC มักมีการรักษาความเข้ากันได้ย้อนหลัง ทำให้ซอฟต์แวร์เก่าสามารถทำงานบนฮาร์ดแวร์ใหม่ได้
- การเขียนโปรแกรมสะดวก: นักพัฒนาไม่ต้องจัดการกับคำสั่งพื้นฐานมากมาย
ข้อเสียของ CISC:
- ฮาร์ดแวร์ซับซ้อน: การออกแบบหน่วยควบคุมที่ต้องถอดรหัสคำสั่งที่ซับซ้อนทำให้ใช้ทรานซิสเตอร์มากขึ้นและใช้พลังงานสูง
- ประสิทธิภาพต่อรอบสัญญาณนาฬิกาต่ำ: คำสั่งที่ซับซ้อนอาจใช้หลายรอบสัญญาณนาฬิกาในการทำงาน ทำให้ความเร็วโดยรวมลดลง
- การใช้พลังงานสูง: เหมาะสำหรับอุปกรณ์ที่ใช้พลังงานจากแหล่งจ่ายไฟหลัก ไม่เหมาะกับอุปกรณ์พกพา
ข้อสังเกต: CISC เหมาะกับงานที่ต้องการความเข้ากันได้และมีทรัพยากรพลังงานไม่จำกัด เช่น คอมพิวเตอร์ตั้งโต๊ะและเซิร์ฟเวอร์
RISC (Reduced Instruction Set Computer)
RISC เป็นสถาปัตยกรรมที่เน้นการใช้คำสั่งที่เรียบง่ายและมีขนาดคงที่ แต่ละคำสั่งทำเพียงหนึ่งงาน เช่น การบวกเลข หรือการโหลดข้อมูล โดยทั่วไปแล้วคำสั่งเหล่านี้จะทำงานเสร็จภายในหนึ่งรอบสัญญาณนาฬิกา ตัวอย่างเช่น โปรเซสเซอร์ ARM, MIPS, และ RISC-V
ข้อดีของ RISC:
- ฮาร์ดแวร์เรียบง่าย: ใช้ทรานซิสเตอร์น้อยกว่า ทำให้ประหยัดพลังงานและผลิตได้ง่าย
- ประสิทธิภาพสูงต่อรอบสัญญาณนาฬิกา: คำสั่งส่วนใหญ่ทำงานในหนึ่งรอบ ทำให้สามารถเพิ่มความเร็วสัญญาณนาฬิกาได้สูง
- การใช้พลังงานต่ำ: เหมาะสำหรับอุปกรณ์พกพา เช่น สมาร์ทโฟนและแท็บเล็ต
- การออกแบบที่ปรับขยายได้: สถาปัตยกรรมแบบโมดูลาร์ช่วยให้ปรับแต่งได้ง่าย
ข้อเสียของ RISC:
- จำนวนคำสั่งมากขึ้น: โปรแกรมที่เขียนด้วย RISC มักมีขนาดใหญ่กว่า เนื่องจากต้องใช้หลายคำสั่งเพื่อทำงานเดียว
- การเขียนโปรแกรมซับซ้อน: นักพัฒนาต้องจัดการกับคำสั่งพื้นฐานจำนวนมาก
- ความเข้ากันได้ย้อนหลังจำกัด: การเปลี่ยนแปลงสถาปัตยกรรมอาจทำให้ซอฟต์แวร์เก่าไม่สามารถทำงานได้
ข้อสังเกต: RISC เหมาะกับงานที่ต้องการประสิทธิภาพสูงต่อวัตต์ เช่น อุปกรณ์เคลื่อนที่และระบบฝังตัว
ตารางเปรียบเทียบ CISC และ RISC
| คุณสมบัติ | CISC | RISC |
|---|---|---|
| ขนาดคำสั่ง | ใหญ่และซับซ้อน (หลายไบต์) | เล็กและเรียบง่าย (ขนาดคงที่) |
| จำนวนคำสั่งในโปรแกรม | น้อย | มาก |
| รอบสัญญาณนาฬิกาต่อคำสั่ง | หลายรอบ | หนึ่งรอบเป็นส่วนใหญ่ |
| ความซับซ้อนของฮาร์ดแวร์ | สูง | ต่ำ |
| การใช้พลังงาน | สูง | ต่ำ |
| ความเร็ว | ช้ากว่าในรอบสัญญาณนาฬิกาเดียวกัน | เร็วกว่าในรอบสัญญาณนาฬิกาเดียวกัน |
| การจัดการหน่วยความจำ | โหมดกำหนดแอดเดรสซับซ้อน | โหมดกำหนดแอดเดรสแบบโหลด-เก็บ |
| ตัวอย่างโปรเซสเซอร์ | x86, 68000 | ARM, MIPS, RISC-V |
ตัวอย่างการทำงาน
CISC: คำสั่ง MUL R1, R2, R3 อาจทำการคูณค่าใน R2 และ R3 แล้วเก็บผลลัพธ์ใน R1 โดยใช้หลายรอบสัญญาณนาฬิกา
RISC: ต้องใช้หลายคำสั่ง เช่น LOAD R2, addr1, LOAD R3, addr2, MUL R1, R2, R3, STORE R1, addr3 แต่ละคำสั่งใช้หนึ่งรอบ
สรุป
การเลือกใช้ CISC หรือ RISC ขึ้นอยู่กับความต้องการของระบบ หากต้องการความเข้ากันได้และมีพลังงานไม่จำกัด CISC เป็นทางเลือกที่ดี แต่ถ้าต้องการประสิทธิภาพสูงต่อวัตต์และความเรียบง่าย RISC เหมาะกว่า ปัจจุบันโปรเซสเซอร์สมัยใหม่หลายตัวผสมผสานแนวคิดทั้งสองเข้าด้วยกัน เช่น การใช้ RISC core ภายในแต่ยังคงรองรับชุดคำสั่ง CISC (เช่น โปรเซสเซอร์ x86 สมัยใหม่ที่แปลงคำสั่ง CISC เป็น micro-operations แบบ RISC ก่อนทำงาน)
ข้อสังเกตสำคัญ: การพัฒนาแบบผสมผสานนี้ช่วยให้ได้ทั้งประสิทธิภาพสูงและการใช้พลังงานต่ำ