Intel x86 ทำ MOV-Only Computing ได้แล้ว ขณะที่ CPU TTA ใหม่แสดงให้เห็นแนวทางทางเลือก

ทีมชุมชน BigGo
Intel x86 ทำ MOV-Only Computing ได้แล้ว ขณะที่ CPU TTA ใหม่แสดงให้เห็นแนวทางทางเลือก

Transport Triggered Architecture ( TTA ) เป็นแนวทางที่น่าสนใจในการออกแบบ CPU ที่ต้องใช้เพียงคำสั่ง move เท่านั้นสำหรับการคำนวณ การนำ TTA CPU แบบง่ายมาใช้งานเมื่อเร็วๆ นี้ได้จุดประกายการอภิปรายเกี่ยวกับสถาปัตยกรรมคอมพิวเตอร์แบบมินิมอลลิสต์ แต่ชุมชนได้เน้นข้อเท็จจริงที่น่าสนใจ คือสถาปัตยกรรม x86 ของ Intel สามารถทำงานเป็นระบบ MOV-only ได้แล้ว

โพสต์บล็อกที่อภิปรายเรื่อง "สถาปัตยกรรม CPU แปลกๆ" รวมถึงข้อมูลเชิงลึกเกี่ยวกับ CPU แบบ MOV เท่านั้น และความเกี่ยวข้องกับสถาปัตยกรรม x86 ของ Intel
โพสต์บล็อกที่อภิปรายเรื่อง "สถาปัตยกรรม CPU แปลกๆ" รวมถึงข้อมูลเชิงลึกเกี่ยวกับ CPU แบบ MOV เท่านั้น และความเกี่ยวข้องกับสถาปัตยกรรม x86 ของ Intel

Intel x86 รองรับ MOV-Only Computing อยู่แล้ว

การเปิดเผยที่น่าประทับใจที่สุดจากการอภิปรายของชุมชนคือสถาปัตยกรรม x86 ที่มีอยู่ของ Intel นั้นเป็น Turing complete โดยใช้เพียงคำสั่ง MOV เท่านั้นแล้ว ความสามารถนี้ได้รับการพิสูจน์ผ่านโครงการต่างๆ เช่น movfuscator ซึ่งสามารถคอมไพล์โปรแกรม C ให้เป็น x86 assembly โดยใช้เฉพาะการดำเนินการ MOV เท่านั้น เทคนิคนี้ใช้ประโยชน์จากโหมดการกำหนดที่อยู่ที่ซับซ้อนและผลข้างเคียงที่มีอยู่ในคำสั่ง MOV ของ x86 เพื่อทำการคำนวณและการดำเนินการควบคุมการไหล

อย่างไรก็ตาม การนำ MOV-only computing มาใช้บน x86 มาพร้อมกับ overhead ที่มีนัยสำคัญ คำสั่ง MOV ของ x86 ที่สอดคล้องกับข้อกำหนดต้องใช้ทรานซิสเตอร์มากกว่า TTA CPU แบบง่ายทั้งตัวอย่างมาก ทำให้เป็นเพียงความอยากรู้ทางวิชาการมากกว่าโซลูชันที่ใช้งานได้จริงสำหรับคอมพิวเตอร์แบบมินิมอลลิสต์

ประโยชน์และข้อจำกัดของสถาปัตยกรรม TTA

Transport Triggered Architecture มีข้อได้เปรียบที่แท้จริงสำหรับแอปพลิเคชันเฉพาะ ในระบบ TTA ไม่มี ALU หรือ registers แบบดั้งเดิมภายใน CPU core แต่คอมโพเนนต์เหล่านี้จะอยู่ในรูปแบบ memory-mapped peripherals การคำนวณเกิดขึ้นโดยการย้ายข้อมูลระหว่างหน่วยเฉพาะทางเหล่านี้แทนที่จะเรียกใช้คำสั่งเลขคณิตโดยตรง

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

CPU เพียงแค่ย้ายภายใน CPU เช่นจาก register หนึ่งไปยังอีก register หนึ่ง ดังนั้นการย้ายทั้งหมดจึงเร็วมาก

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

ข้อมูลจำเพาะของ CPU แบบ TTA

  • ความกว้างของคำสั่ง: 32 บิต (16 บิตสำหรับที่อยู่ต้นทาง + 16 บิตสำหรับที่อยู่ปลายทาง)
  • รอบนาฬิกา: 4 รอบต่อคำสั่ง
  • ความกว้างของ Bus: 16 บิต
  • การจัดวางหน่วยความจำ:
    • 0x0000-0x7FFF: หน่วยความจำคำสั่ง
    • 0x8000-0x8FFF: RAM
    • 0x0000-0x100: ALU
    • 0x1000-0x100: บล็อกควบคุมการไหล
    • 0x8000: บล็อก GPIO
    • 0xFFFF: ตัวนับโปรแกรม

การใช้งานจริงและศักยภาพในอนาคต

แม้จะมีข้อจำกัด แต่สถาปัตยกรรม TTA แสดงให้เห็นความหวังในระบบฝังตัวที่ความเรียบง่ายและต้นทุนเป็นสิ่งสำคัญ ความสามารถในการนำ CPU ที่ใช้งานได้มาใช้งานด้วย gate count ที่น้อยที่สุดทำให้มีความน่าสนใจสำหรับการออกแบบที่ใช้ FPGA หรือแอปพลิเคชันเฉพาะทางที่ไม่ต้องการฟีเจอร์ระบบปฏิบัติการที่ซับซ้อน

ชุมชนได้สังเกตว่าการออกแบบ TTA ทำงานได้ดีที่สุดเมื่อหลีกเลี่ยงการสลับบริบทโดยสิ้นเชิง แนวทางนี้เหมาะกับแอปพลิเคชันฝังตัวเช่นตัวควบคุมจอแสดงผลหรืออินเทอร์เฟซเซ็นเซอร์ที่งานเฉพาะเดียวทำงานอย่างต่อเนื่องโดยไม่มีการขัดจังหวะ

นักพัฒนาบางคนได้ทดลองกับระบบ TTA แบบหลาย core ที่แต่ละ core จัดการงานแยกต่างหาก โดยสื่อสารผ่าน shared memory hubs แนวทางนี้หลีกเลี่ยงปัญหาการสลับบริบทในขณะที่รักษาความเรียบง่ายทางสถาปัตยกรรมที่ทำให้ TTA น่าสนใจ

ส่วนประกอบหลักที่จำเป็น

  • CPU ที่สามารถเคลื่อนย้ายข้อมูลได้
  • Program counter (ใช้ตัวนับ 74,161 )
  • ALU (ใช้ชิป ALU 74181 )
  • บล็อกควบคุมการแตกแขนงและการไหลของข้อมูล
  • ไดรเวอร์บัสและแลตช์ 16 บิต
  • ตรรกะการถอดรหัสที่อยู่
  • บล็อก GPIO สำหรับการดีบัก

เครื่องมือพัฒนาและความท้าทายในการนำไปใช้

แม้ว่าการสร้างระบบ TTA จะตรงไปตรงมาในแนวคิด แต่การนำไปใช้งานจริงเผชิญกับความท้าทายด้าน toolchain การเขียนคอมไพเลอร์สำหรับสถาปัตยกรรม TTA พิสูจน์ว่าเป็นเรื่องยากเพราะ instruction set มีความน้อยมาก โครงการ TTA ที่มีอยู่ส่วนใหญ่อาศัยโค้ด assembly ที่เขียนด้วยมือหรือเครื่องมือพัฒนาเฉพาะทางเช่น OpenASIP ซึ่งให้ทั้งความสามารถในการกำหนดสถาปัตยกรรมและการสร้างคอมไพเลอร์

ไม่ควรมองข้ามคุณค่าทางการศึกษาของระบบ TTA การสร้าง TTA CPU ช่วยให้นักพัฒนาเข้าใจแนวคิดพื้นฐานของคอมพิวเตอร์โดยไม่ต้องติดอยู่กับการจัดการ pipeline ที่ซับซ้อนหรือปัญหาการดำเนินการ superscalar ที่รบกวนการออกแบบโปรเซสเซอร์สมัยใหม่

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

อ้างอิง: Weird CPU architectures, the MOV only CPU