Transport Triggered Architecture ( TTA ) เป็นแนวทางที่น่าสนใจในการออกแบบ CPU ที่ต้องใช้เพียงคำสั่ง move เท่านั้นสำหรับการคำนวณ การนำ TTA CPU แบบง่ายมาใช้งานเมื่อเร็วๆ นี้ได้จุดประกายการอภิปรายเกี่ยวกับสถาปัตยกรรมคอมพิวเตอร์แบบมินิมอลลิสต์ แต่ชุมชนได้เน้นข้อเท็จจริงที่น่าสนใจ คือสถาปัตยกรรม x86 ของ Intel สามารถทำงานเป็นระบบ MOV-only ได้แล้ว
![]() |
---|
โพสต์บล็อกที่อภิปรายเรื่อง "สถาปัตยกรรม 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 แบบดั้งเดิม โดยมีข้อได้เปรียบที่เป็นเอกลักษณ์สำหรับแอปพลิเคชันเฉพาะ ในขณะที่เน้นให้เห็นว่าแนวทางที่แตกต่างกันในการคำนวณสามารถบรรลุผลลัพธ์เดียวกันผ่านวิธีการที่แตกต่างกันอย่างสิ้นเชิง