Transport triggered architecture
Transport triggered architecture (TTA) — вариант архитектуры микропроцессоров, в которой программы непосредственно управляют внутренними соединениями (шинами) между блоками процессора (например, АЛУ, Регистровый файл). Вычисления являются побочным эффектом передачи данных между блоками: запись данных на входной порт (triggering port) функционального устройства приводит к началу их обработки данным устройством. Благодаря модульной структуре, TTA-архитектура подходит для проектирования проблемно-ориентированных процессоров (ASIP), при этом TTA-процессоры получаются универсальнее и дешевле чем аппаратные ускорители для фиксированных функций.
Обычно TTA-процессор имеет несколько транспортных шин и множество функциональных устройств (ФУ), подключенных к этим шинам. Обилие ФУ позволяет достичь параллелизма на уровне инструкций. Параллелизм статически определяется программистом. В этом отношении, а также из-за большой длины машинной инструкции, TTA-архитектуры напоминают архитектуры very long instruction word (VLIW) . Инструкция для TTA состоит из нескольких слотов, по слоту на каждую шину. Каждый слот определяет, как данные будут передаваться по данной шине. Столь полный контроль позволяет производить некоторые оптимизации, невозможные для классических архитектур. Например, возможна явная пересылка данных между разными ФУ без сохранения промежуточных данных в регистровом файле.
Процессоры с архитектурами класса TTA были доступны в продаже.
Структура
Процессоры с архитектурой класса TTA состоят из нескольких независимых функциональных устройств и регистровых файлов, которые соединены транспортными шинами и сокетами.
Функциональное устройство
Каждое функциональное устройство выполняет одну или более операцию. Возможна реализация как простейших арифметических операций (целочисленное сложение) так и сложных произвольных операций, специфичных для целевого приложения. Операнды передаются в ФУ через порты ФУ. Результат операции передается через выходной порт ФУ.
В каждом ФУ может быть реализован независимый вычислительный конвейер.
Доступ к памяти и взаимодействие с внешними устройствами обрабатывается специальными ФУ. ФУ для доступа к памяти часто называют load/store unit.
Управляющее устройство
Управляющее устройство контролирует процесс исполнения программ. У него имеется доступ к памяти инструкций для получения следующих машинных команд. Также реализует команды перехода (jump). Обычно управляющее устройство конвейеризовано и выделены стадии: загрузки, декодирования, исполнения инструкций.
Регистровые файлы
Регистровые файлы (РФ) содержат массивы регистров общего назначения, в которых хранятся переменные программы. Подобно ФУ, РФ имеют входные и выходные порты. Количество входных и выходных портов (количество одновременно читаемых РОН из массива) может быть различным для разных РФ.
Программирование
Пример операции сложения для гипотетического ТТА-процессора:
r1 -> ALU.operand1
r2 -> ALU.add.trigger
ALU.result -> r3
Задержки операций
Один из основных принципов ТТА — упростить аппаратное обеспечение, усложнив программное.
Реализации
- MAXQ (Dallas Semiconductor). Является OISC «one instruction set computer», то есть имеет лишь одну инструкцию MOVE.
- «MOVE project»
- TCE project. Используется компилятор LLVM.
- Процессор Able (New England Digital), использовался в системе синтеза музыки Synclavier (Depeche Mode, A-Ha, Duran Duran, Sting)
- Dr. Dobb’s «One-Der» 32-разрядный TTA с исходниками на Verilog, ассемблером и компилятором языка Forth.
Примечания
См. также
- Application-specific instruction-set processor (ASIP)
- Very long instruction word (VLIW)
- Explicitly parallel instruction computing (EPIC)
- Dataflow architecture
Ссылки
- MOVE project: Automatic Synthesis of Application Specific Processors
- Microprocessor Architectures from VLIW to TTA
- TTA Codesign Environment, an open source (MIT licensed) toolset for design of application specific TTA processors.
- BYTE overview article
- Dr. Dobb’s article with 32-bit FPGA CPU in Verilog
- Web site with more details on the Dr. Dobb’s CPU
- Article about TTAs, explaining how the TTA-based Codesign Environment project uses LLVM
- Introduction to the MAXQ Architecture — Includes transfer map diagram
- http://hosting.ulstu.ru/umk/umk/ap/lections/transputers/microprocessor%20architectures/diff/tta/tta.htm (недоступная+ссылка) (рус.)
- Андрей Зубинский, "Одной командой и вообще без команд", 11 февраля 2009 г. // KO