Разработка программного обеспечения для сигнальных процессоров TMS320C64xx Часть 3. Архитектура ядра процессоров с64хх.
Ключевые характеристики ЦСП TMS320C64хх Архитектура VLIW, содержащая 8 функциональных блоков, позволяющая выполнять 8 инструкций за такт; Упаковка инструкций, способствующая уменьшению объема программного кода; Возможность условного выполнения большинства инструкций повышающая гибкость кода использующего ветвления; Поддержка 8/16/32 битных данных обеспечивающее эффективное использование памяти; Возможность использования 40 битых арифметических операций повышает точность вычислений.
Блок-схема ЦСП TMS320C64xx
Ядро С64хх содержит: модуль выборки инструкций; модуль диспетчера инструкций; модуль декодирования инструкций; 2 пути передачи данных, по одному на 4 функциональных блока; битных регистра; регистры управления; логика управления; логика контроля, эмуляции, и прерываний.
Внутренняя память ядра с64хх Память разделена на память программ и память данных и имеет 32-битную адресацию. Имеется 2 внутренних 64-битных порта для доступа к памяти данных. Имеется 1 внутренний 256-битный порт для доступа к памяти программ.
Также ЦСП С6400 содержат: Встроенную RAM объемом до 7 Mbit. 32-битный интерфейс внешней памяти (EMIF) поддерживающий SDRAM, SBSRAM, SRAM и другие типы асинхронной памяти; Контроллер ПДП (EDMA) имеющий 16 независимых каналов; Параллельный HPI интерфейс посредством которого можно осуществлять доступ в адресное пространство другого ЦСП; Несколько буферизованных последовательных портов McBSP; Как минимум 2 32-битных таймера.
Компоненты путей данных ядра
Путь данных А
Модуль.L выполняет 32/40-bit arithmetic and compare operations 32-bit logical operations Leftmost 1 or 0 counting for 32 bits Normalization count for 32 and 40 bits Byte shifts Data packing/unpacking 5-bit constant generation Dual 16-bit arithmetic operations Quad 8-bit arithmetic operations Dual 16-bit minimum/maximum operations Quad 8-bit minimum/maximum operations src 1 src 2 odd dst even dst long src 8
Принцип размещения 40-битных данных в регистровой паре
Модуль.S выполняет 32-bit arithmetic operations 32/40-bit shifts and 32-bit bit- field operations 32-bit logical operations Branches Constant generation Register transfers to/from control register file (.S2 only) Byte shifts Data packing/unpacking Dual 16-bit compare operations Quad 8-bit compare operations Dual 16-bit shift operations Dual 16-bit saturated arithmetic operations Quad 8-bit saturated arithmetic operations even dst 8 long src odd dst src 1 src 2
Модуль.М выполняет 32 × 32-bit multiply operations 16 × 16-bit multiply operations 16 × 32-bit multiply operations Quad 8 × 8-bit multiply operations Dual 16 × 16-bit multiply operations Dual 16 × 16-bit multiply with add/subtract operations Quad 8 × 8-bit multiply with add operation Bit expansion Bit interleaving/de-interleaving Variable shift operations Rotation Galois Field Multiply
Модуль.D выполняет 32-bit add, subtract, linear and circular address calculation Loads and stores with 5-bit constant offset Loads and stores with 15-bit constant offset (.D2 only) Load and store doublewords with 5-bit constant Load and store nonaligned words and doublewords 5-bit constant generation 32-bit logical operations src 2 dst src 1
Стадии и фазы конвейера
Стадия выборки инструкций
Формат пакета выборки Пример записи инструкций выполняемых параллельно:
Пример пакета где все инструкции выполняются последовательно
Пример пакета где все инструкции выполняются параллельно
Пример пакета с последовательно- параллельным выполнением инструкций
Стадия диспетчеризации и декодирования инструкций
Стадия выполнения инструкций
Фазы последней стадии конвейера для инструкции выполняемой за 1 такт Фазы выполнения инструкций: Блок схема стадии выполнения:
Фазы последней стадии конвейера для инструкции выполняемой за 2 такта Фазы выполнения инструкций: Блок схема стадии выполнения:
Фазы последней стадии конвейера для инструкции выполняемой за 3 такта Фазы выполнения инструкций: Блок схема стадии выполнения:
Фазы последней стадии конвейера для инструкции выполняемой за 4 такта Фазы выполнения инструкций: Блок схема стадии выполнения:
Фазы последней стадии конвейера для инструкции выполняемой за 5 тактов Фазы выполнения инструкций: Блок схема стадии выполнения:
Временная диаграмма работы конвейера * Случай когда пакет выборки содержит только один исполняемый пакет