50.4. RISC И CISC АРХИТЕКТУРЫ



В мире царит соотношение 20/80:
20% людей выпивают 80% всего пива в мире.

В типичном компьютере 20% типов инструкций выполняются в течении
80% всего времени работы.

Идея: реализовать только эти 20%, но сделать что бы они были очень
      быстрыми. (Reduced Instruction Set - урезанный набор инструкций.






Архитектура системы комманд / \ Аккумуляторная Стековая | Регистровая / \ CISC Выделенный Load-Store | RISC | VLIW | EPIC

Архитектура / | | \ CISC CRISC RISC MISC сложный простой набор набор команд команд < ------------------ сложность CISC (Common Instruction Set complex) CRISC (Complexity Reduced Instruction set complex) RISC (Reduced instruction set complex) MISC (Minimal instruction set complex) VLIW (Very Large instruction word)


RISC

раньше теперь Фиксированная длинна команды 32 32 бит Аппаратная реализация комманд за 1 такт Суперскалярность 2-3 3-5 Большое число регистров общего назначения 32 256 Архитектура регистр-регистр Небольшое число режимов адрессации памяти 1-4 3-8 Небольшое число форматов комманд 1-4 4-10 Упреждающий доступ к памяти Операции с памятью только загрузка/выгрузка Устройство управления с жесткой логикой Шины данных большой разрядности 64 128,256 Наличие Write-Buffers Существенная аппаратная поддержка ЯВУ


CISC

Большое исло машинных комманд, многие из которых аналогичны операторам ЯВУ и выполняются за много тактов Большое число способов адрессации Различная разрядность операций (8,16,32 бит) Преобладание двухоперандного формата комманд Малое количество регистров общего назначения Доступ к памяти не только загрузка/выгрузка Широкое использование микропрограмм. Современные микропроцессоры x86 - имеют частичную RISC архитектуру.


VLIW

Фиксированная длинна команды (большая) Много регистров общего назначения Небольшое число форматов команд Несколько примитивных операций в одной команде Доступ к памяти только загрузка/выгрузка Основная проблема VLIW - усложнение регистрового файла. (например если ширина = 3 команды, то регистр должен иметь 6 выходов и 3 входа).


EPIC

EPIC (Explicitly Parallel Instruction Computing) Инструкции хранятся во VLIW Но параллелизм задается явно Поток инструкций содержит разделители которые определяют границы групп команд которые могут быть выполнены паралельно. (IA-64) Пример bindles: I0 I1 I2 I0 ;; I1 I2 I0 I1 ;; I2 I0 I1 I2 ;; I0 ;; I1 ;; I2 итд. Пример кода: I0 I1 I2 (I0..I4 - паралельно, затем I3 I4 ;; I5 I5..I6 - паралельно, затем I6 ;; I7 I8 I7..I11 - паралельно) I9 I10 I11 Поскольку паралелизм задается явно то возможен multibranch, когда в одной команде возможен переход во много мест. Ястно что условия перехода должны быть ортогональны, если это не так то процессор сгенерирует exception.


VISC

VISC (Variable Instruction Set Complex) Можно менять набор команд. Имплементации: Микропрограммная

Аппаратная (реконфигурация hardware как в FPGA).

Index Prev Next