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

Простейшая схема формирователя управляющих сигналов

Способы кодирования микрокоманд.

Основная проблема – установление компромисса между длинной МК, скоростью выполнения МК и количеством выполняемых МОп.

Обычно число различных микроопераций как минимум на порядок превышает число машинных операций. Кроме того, в составе микрокоманды требуется указывать прямой адрес следующей микрокоманды в микропрограммной памяти. Это приводит к тому, что длина микрокоманды может достигать больших размеров (Lмк.200 бит и более).

Эффективно использоваться микрокоманда длиной 200 бит не может.

Для решения этой проблемы применяют различные способы кодирования микрокоманд.

  1. Унитарное кодирование (по существу это отсутствие какого-либо кодирования)

LОПЧМК= (NМОП)MAX

опчмк – операционная часть микрокоманды

моп – микрооперация

Достоинства:

  1. Простота формирования управляющих сигналов.

  2. Высокая скорость формирования сигналов.

2. Прямое или одноуровневое кодирование команд.

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

Затем эти двоичные коды поступают на входы ДШi, где расшифровываются и затем используются для формирования управляющих сигналов. Прямое или одноуровневое

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

W количество групп

LMK=(Log2(mi) + 1) нужно взять целую частьLogи прибавить к ней единицу

I = 1

  1. Косвенное (двухуровневое) кодирование команд.

Частным случаем косвенного кодирования является резидентное кодирование.

(пример использования 32-битной системы на 16-битной)

Существуют еще горизонтальное и вертикальное кодирование.

Принципы деления полей.

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

LМКОМ­64 бита . Проблема: усложняется программирование (так как программист должен мыслить параллельно, что довольно затруднительно).

Вертикальное кодирование – в одно поле кодируется группа, допускающее параллельное выполнение микроопераций. Цель: минимизация длины команды в целом. При этом в одном такте может выполняться небольшое число микрокоманд. В целом, любая горизонтально закодированная команда соответствует нескольким вертикальным закодированным командам.

Пусть (NМОП)MAX= 100 (МОП – микрооперации)

Число одновременно выполненных микроопераций равно

N’ПАР_МОП= 32 / МК (комбинации)

mРАЗРЯДОВ ДЛЯ МОП= 5 =Log2N’MK , то есть хранится пяти разрядный код, а при дешифрации (двух уровневой) он распаковывается в 32 бита, затем в 100 микроопераций.

Основной недостаток это низкая скорость расшифровки и выполнение команды + МПЗУ может занимать до ½ площади кристала.

Особенности микропрограммного способа управления:

  1. Большая гибкость в плане изменения набора команд, путем замены микропрограммной памяти (ПЗУ) или перезаписи микропрограммной памяти (ППЗУ).

  2. Возможность рационального распределения аппаратного и микропрограммного управления порождает семейство машин разной производительности, но с одним набором команд.

  3. Микропрограммное управление имеет регулярную структуру и реализуется с помощью БИС

  4. Есть возможность эмуляции на микропрограммном уровне новых архитектур машин на имеющейся инструментальной машине.

  5. Микропрограммная реализация системных программ (компиляторы, файловые системы), значительно повышает производительность системы и используется в суперкомпьютерах.

8+9

КСНК (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–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

MullR6,R7,R5

S1S2d

ВК | ДШ | ИСП

ВК | ДШ | ИСП

ВК | ДШ | ИСП

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

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

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

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

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

Недостатки:

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

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

Решение:

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

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

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

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