โปรเซสเซอร์ VLIW สถาปัตยกรรมและคุณลักษณะของ CPU

โปรเซสเซอร์ VLIW สถาปัตยกรรมและคุณลักษณะของ CPU

VLIW ย่อมาจาก Very Long Instruction Word ซึ่งแปลว่าคำสั่งที่ยาวมาก ในโลกของสถาปัตยกรรมโปรเซสเซอร์ใช้เพื่อกำหนดประเภทของ ซีพียู หรือโปรเซสเซอร์ที่บรรลุคำสั่งแบบขนานหรือ ILP แต่มีวิธีการที่แตกต่างจากที่ใช้ในโปรเซสเซอร์ superscalar ซึ่งเป็นวิธีที่ใช้กันทั่วไปในซีพียู

ซีพียูประเภท VLIW มีข้อดีและข้อเสียหลายประการเมื่อเทียบกับโปรเซสเซอร์อื่น ๆ และไม่เพียง แต่ใช้ในซีพียูเท่านั้น แต่ยังเป็นหน่วย shader สำหรับ GPU และใน DSP ด้วย

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

โปรเซสเซอร์ VLIW ทำงานอย่างไร

วีลิว

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

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

เนื่องจากคำแนะนำอาจมีองศาของระยะเวลาที่แตกต่างกันในแง่ของรอบนาฬิกานี่จึงเป็นปัญหาด้านประสิทธิภาพเนื่องจากในหลายรอบนาฬิกาเราจะมีหน่วยการดำเนินการที่ไม่ต้องทำอะไรเลยและจะดำเนินการตามคำสั่ง NOP ซึ่งหมายความว่าในช่วงนาฬิกานั้น รอบเครื่องดังกล่าวไม่ได้ดำเนินการใด ๆ สิ่งนี้ทำให้โปรเซสเซอร์ VLIW ต้องพึ่งพาคอมไพเลอร์เป็นอย่างมากเพื่อให้ได้ประสิทธิภาพสูงสุด

ข้อดีและข้อเสียของการออกแบบ VLIW

CPU ย้อนกลับ Render

ข้อดีส่วนใหญ่ที่นำมามีดังต่อไปนี้:

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

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

วีลิว

เพื่อให้เข้าใจได้ดีขึ้นลองนึกภาพว่าคุณได้จัดกลุ่มคำสั่ง VLIW 3 ซึ่งต้องใช้ 4 รอบแรกในการดำเนินการ 7 รอบที่สองและ 10 รอบที่สาม หน่วยประมวลผลที่รับผิดชอบในการดำเนินการคำสั่งแรกจะเป็น 6 รอบนาฬิกาโดยไม่ต้องทำอะไรเลย 3 ตัวที่สองและทั้งหมดนี้เนื่องจากหน่วยที่สามจะต้องใช้ 10 รอบในการทำงาน

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

การสร้างคำสั่งโดยคอมไพเลอร์

สีCódigo binario

เพื่อให้คุณเข้าใจได้ดีขึ้นเราได้เตรียมรายการไว้สองสามรายการรายการแรกคือการดำเนินการในโปรเซสเซอร์ superscalar หรือที่เรียกว่า ILP ส่วนที่สองคือ CPU ประเภท VLIW

เริ่มต้นด้วยโปรเซสเซอร์ประเภท ILP รายการคำแนะนำจะเป็นดังต่อไปนี้:

  1. โหลด A1
  2. โหลด B1
  3. โหลด A2
  4. ชาร์จ B2
  5. คูณค่า A1 และ B1
  6. เพิ่มค่าของ A2 และ B2
  7. เพิ่ม A1 และ A2
  8. ขนส่งสินค้า A3
  9. โหลด B3
  10. คูณ A3 ด้วย B3
  11. เพิ่ม B1 และ B2

ในทางกลับกันโปรเซสเซอร์ VLIW จะจัดกลุ่มคำสั่งหลายคำสั่งไว้ในที่เดียว:

  1. A2 และ B2 จะชาร์จพร้อมกัน
  2. โหลด A2 และ B2 คูณ A1 และ B1 เพิ่ม A2 และ B2
  3. โหลด A3, B3, คูณ A3 ด้วย B3 และเพิ่ม B1 และ B2

ความจริงที่ว่าเราได้จัดการเพื่อจัดกลุ่มคำสั่ง 11 คำให้เป็นเพียง 3 คำสั่งที่มีขนาดใหญ่มากหมายความว่าระยะเวลาที่คำสั่ง VLIW แต่ละคำสั่งจะต้องใช้ส่วนใหญ่จะเป็นเวลาที่ใช้สำหรับคำสั่งที่ซับซ้อนที่สุดในกลุ่มคำสั่ง

การเข้าถึงหน่วยความจำของโปรเซสเซอร์ประเภทนี้

แรม CPU

ดังที่เราได้กล่าวไปก่อนหน้านี้โปรเซสเซอร์ VLIW ขึ้นอยู่กับคอมไพเลอร์และหลายครั้งที่พวกเขาเพิ่มคำสั่ง NOP ลงในโค้ดระหว่างการคอมไพล์ เหตุผลในการทำเช่นนี้เนื่องจากการสร้าง VLIW CPU ที่มีคำสั่งขนาดตัวแปรนั้นซับซ้อนมากดังนั้นการสร้างบิตขนาดคงที่ซึ่ง CPU จะอ่านคำแนะนำและดึงข้อมูลจำนวนนั้นจากหน่วยความจำในแต่ละรอบ . และคำแนะนำ

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

สิ่งปกติในโปรเซสเซอร์ VLIW คือพวกเขากำลังรวบรวมคำสั่งต่อไปนี้เพื่อดำเนินการในขณะที่กำลังดำเนินการคำสั่ง VLIW ปัจจุบัน เนื่องจากการจัดกลุ่มคำสั่งหลาย ๆ คำสั่งเข้าด้วยกันทำให้เวลาในการจับภาพของแต่ละคำสั่งแยกจากกันจึงลดลง