Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Организация и функционирование вычислительных машин1.doc
Скачиваний:
37
Добавлен:
01.05.2014
Размер:
1.13 Mб
Скачать

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Load– загрузка

Store– выгрузка

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

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

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

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

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

в IBM370 (команд стало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

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

IfIMM= 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 широкого развития не получило. В современных процессорах регистры сохраняются в кэше, эффективное использование кэша при сохранении регистров, оптимизация и распределение регистров между процедурами обеспечиваются с помощью компилятора.