CISC vs RISC Сложное против простого
Особенности CISC Множество команд для выполнения разнообразных операций Различное время на дешифрацию и выполнение команды Плохая предсказуемость условных переходов Сбои конвейера
Критика CISC Простои конвейера обработки команд Простои конвейера обработки данных Сложность в освоении набора команд Имеются неиспользуемые (или редко используемые) команды Существуют команды, дублирующие действия друг друга
RISC – как альтернатива Единое время дешифрации при едином формате команд
Архитектура RISC Регистры Регистровые окна Структура команды
Критика RISC Ограниченный набор команд усложняет программирование на низком уровне Необходимо заботиться о распределении регистров между задачами и оптимизировать операции загрузки-выгрузки
Примеры RISC процессоров Alpha 2x064 PowerPC Sparc MIPS F-CPU Itanium
Состав команд Alpha Целочисленные Вещественные Управляющие (переходы) Load-Store PAL По типу – 1,2,3-х и безадресные
Синтетические команды Примеры синтетических команд CLR r0 = sub r31,r31,r0 NEG r24 = sub r31,r24,r24 MOV r13,r15 = sub r13,r31,r15
Особенности дешифрации команд Поля определяют строку и столбец в матрице дешифрации Количество матриц невелико Операции над целыми числами и вещественными дешифрируются одинаков быстро
OTA vs TTA Фиксация команды для дешифрации Фиксация данных в оперативных регистрах Устройства исполнения одинаковы Разные функциональные устройства
Программа для TTA Вместо ADD R0,R1,R3 mov r0, add.1 mov r1, add.2 mov add.3, r3
Комбинация операндов
SIMD - параллелизм (например, сложение) пара 64-разрядных операндов 2 пары 32-разрядных операндов 4 пары 16-разрядных операндов 8 пар 8-разрядных операндов Как реализовать практически?
микросуперскалярность TTA SIMD-команды Параллельная работа разных функциональных устройств Конвейер данных
Архитектура F-CPU
Itanium Состав регистров Разрядность операндов Разрядность команды Связки команд Состав команд