Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпаргалка.doc
Скачиваний:
123
Добавлен:
01.05.2014
Размер:
1.1 Mб
Скачать

Компьютеры с сокращенным набором команд.

(КСНК (RISC - Reduced Instruction Set Computer))

КСНК представляет собой возвращение к принципам аппаратного управления выполнением команд.

Первое и второе поколение машин содержало менее пятидесяти команд, основная проблема, по которой набор команд не расширялся - это цена аппаратуры, а также программирование в кодах (программист не мог запомнить большое количество команд). Затем аппаратные средства подешевели, появился опыт компилирования и оптимизации объектного кода.

  1. Аппаратное управление  50-е годы (эра аппаратчиков)

  2. Микропрограммное управление  60 – 80-е годы (эра программистов)

Основной лозунг Микропрограммного управления: больше команд хороших и разных.

Требования программистов:

  1. Минимизация программ

  2. Упрощения реализации компиляторов.

К этому времени разрыв набора команд между различными компьютерами был от 50 до 300 команд (рекордсменом был Vax11/780, у него было 303 команды).

Этот подход стал понижать производительность при размещении одного процессора на одном кристалле, так как около шестидесяти процентов площади кристалла занимало микропрограммное управление. А реализация на разных кристаллах также приводила к понижению производительности, да к тому же еще и снижала выход годных кристаллов. И в результате концу 80-х при активном развитии микропроцессорной техники и СБИС резко уменьшилось количество машинных команд и возврат к 50 командам (которые наиболее часто использовались). В конце концов, появились CISC компьютеры. (Complex Instruction Set Computer – машины со сложным набором команд)

Основной лозунг RISC компьютеров: меньше команд, выше скорость выполнения.

Основной закон:

Система команд должна содержать минимальный набор, наиболее часто используемый и наиболее простых команд.

Четыре принципа RISC архитектуры:

  1. Любая команда независимо от ее типа должна выполнять за один машинный цикл, обратно пропорциональный тактовой частоте процессора (стандартом является команда сложения регистра с регистром, она занимает от 3 – 10нс.).

  2. Все команды должны иметь одинаковую длину и минимальное число форматов (обычно не более 2 -3), это упрощает логику управления при выборе и при исполнение команды.

  3. Обращение к памяти производиться только по специально выделенным командам работы с памятью типа:

Load – загрузка

Store – выгрузка

а вся обработка данных должна вестись в регистровом формате.

  1. Система команд должна обеспечивать поддержку компиляции с конкретного языка программирования в системе машинных команд(RISC компиляторы на порядок сложнее чес для CISC).

Немного истории:

Идея создания RISC компьютера была реализована в машинах Cray–1.

В 1975 году (сотрудник IBM) John Cook впервые попытался применить RISC архитектуру

в IBM 370 (команд стало 50, два формата записи команд), при этом быстродействие повысилось в два – три раза.

Само название RISC появилось в середине восьмидесятых годах, в институте Беркли создали машину RISC–1, после RISC–1 последовал RISC–2.

MIPS (серийный выпуск машин) – R4000 – R10000

SUN – SPARC

HP – HP PA7xxx – PA9xxx (PA – Precision Architecture)

DEC – Alpha 21xx

IBM + Apple – Power PC

Формат команд и структура процессора RISC–1.

7

1

5

5

1

13

КОП

Усл

Dest

SRC1

IMM

SRC2

31 25

24

23 19

18 14

13

12 0

Большинство команд RISC процессора являются трех адресными.

Код операции.

Бит условия.

Регистр назначения (длина пять бит) NPOH = 32.

Источник 1

If IMM = 1  SRC2 – непосредственное данное

If IMM = 0  SRC2 – регистр

Недостаток: удлиняет длину команды на восемь бит.

Существует два вида формата команды.

  1. Rd  Rs1 op S2

  2. Rd  M((Rs1) + S2) / адрес

Структура процессора RISC1

Форма записи команд в регистровом варианте облегчает реализацию конвейерного исполнения команды, так как исключает конфликты обращения к памяти.

Пример:

E = (A + B) x (C + D)

  1. Двух адресная обработка команд (CISC).

Add b, a

Add d, c

Mull d, b

Store e, d

ВК|ДШ|ОА|ВО|ИСП|ЗР║ВК| | |

ВК|ДШ|ОА|ВО|ИСП|……|ЗР║ | |

ВК|ДШ|ОА|……|……|……|ВО| | |

║……|……|……|……|……|……|ВК| | |

  1. Трех адресная обработка команд (RISC).

Add R1, R2, R6

Add R3, R4, R7

Mull R6, R7, R5

S1 S2 d

ВК | ДШ | ИСП

ВК | ДШ | ИСП

ВК | ДШ | ИСП

Основная проблема: при большом количестве используемых регистров надо сохранять их в памяти при переключениях с программы на программу. Решение проблемы сохранения и восстановления набора регистров при вызове подпрограмм предлагается реализовать следующими способами:

  1. Организация окон перекрытия регистров.

MORS – Multiple Overlapping Register Set. (Rolodex в RISC–1)

Сто тридцать восемь регистров в RISC-1, они распределялись между восьмью программами (по тридцать два).

Физические регистры

Недостатки:

  1. Ограниченное число параметров при передаче через регистры.

  2. Ограниченное число подпрограмм, которые могут предоставлять регистры окна.

Решение:

  1. Включить аппаратные ресурсы (недостаток: портит RISC архитектуру).

  2. Сохранение регистров окна в памяти (недопустимо в системах реального времени).

  3. Изменение контекста задачи (изменение регистров окна), при этом потери составят от 100 до 1000 машинных тактов.

  1. RISC-2, для удобства работы с регистровыми окнами, реализован подход Omega():

Внутренние кольцо – Rolodex

Внешние кольцо – буферная память, используется для сохранения текущего окна, которое мы замещаем.

Rolodex широкого развития не получило. В современных процессорах регистры сохраняются в кэше, эффективное использование кэша при сохранении регистров, оптимизация и распределение регистров между процедурами обеспечиваются с помощью компилятора.