- •Принцип программного управления и машина фон Неймана
- •Понятие архитектуры, организации и реализации эвм
- •2 Многоуровневая организация эвм.
- •Понятие семантического разрыва между уровнями
- •3 Организация аппаратных средств эвм
- •Типовая структура вм на микропроцессорных наборах
- •Типовая структура процессора и основной памяти
- •Основной цикл работы процессора
- •Простейшая схема формирователя управляющих сигналов
- •Способы кодирования микрокоманд.
- •Арифметические особенности risc процессоров.
- •Организация стека процессора
- •1. Регистровая адресация
- •2. Непосредственная адресация
- •3. Прямая адресация
- •4. Косвенная адресация
- •5. Адресация по базе
- •6. Индексная адресация
- •7. Адресация по базе с индексированием и масштабированием
- •1. Директивы задания данных
- •2. Директивы сегментации программы
- •3. Директивы группирования.
- •4. Порядок размещения сегментов.
- •5. Директивы ограничения используемых команд.
- •6. Директива end.
- •Основные среды хранения информации.
- •Виды запоминающих устройств.
- •Постоянные запоминающие устройства.
- •Память с произвольной выборкой.
- •Иерархическая система памяти
- •Ассоциативные запоминающие устройства (азу)
- •Способы выполнения операции передачи данных
Простейшая схема формирователя управляющих сигналов
Способы кодирования микрокоманд.
Основная проблема – установление компромисса между длинной МК, скоростью выполнения МК и количеством выполняемых МОп.
Обычно число различных микроопераций как минимум на порядок превышает число машинных операций. Кроме того, в составе микрокоманды требуется указывать прямой адрес следующей микрокоманды в микропрограммной памяти. Это приводит к тому, что длина микрокоманды может достигать больших размеров (Lмк.200 бит и более).
Эффективно использоваться микрокоманда длиной 200 бит не может.
Для решения этой проблемы применяют различные способы кодирования микрокоманд.
Унитарное кодирование (по существу это отсутствие какого-либо кодирования)
LОПЧМК= (NМОП)MAX
опчмк – операционная часть микрокоманды
моп – микрооперация
Достоинства:
Простота формирования управляющих сигналов.
Высокая скорость формирования сигналов.
2. Прямое или одноуровневое кодирование команд.
Весь набор микроопераций делится на группы, связанные с управлением конкретными устройствами, а в пределах группы микрооперации кодируются в двоичной форме.
Затем эти двоичные коды поступают на входы ДШi, где расшифровываются и затем используются для формирования управляющих сигналов. Прямое или одноуровневое
кодирование называется так потому, что все группы являются независимы друг от друга.
W количество групп
LMK=(Log2(mi) + 1) нужно взять целую частьLogи прибавить к ней единицу
I = 1
Косвенное (двухуровневое) кодирование команд.
Частным случаем косвенного кодирования является резидентное кодирование.
(пример использования 32-битной системы на 16-битной)
Существуют еще горизонтальное и вертикальное кодирование.
Принципы деления полей.
Горизонтальное кодирование – в одно поле объединяется все взаимно исключаемые (в данном такте) микрооперации, тогда при Wполей, одновременно в одном такте можно выполнитьWоперации. По количеству бит и быстродействию этот способ между унитарным и одноуровневым кодированием.
LМКОМ64 бита . Проблема: усложняется программирование (так как программист должен мыслить параллельно, что довольно затруднительно).
Вертикальное кодирование – в одно поле кодируется группа, допускающее параллельное выполнение микроопераций. Цель: минимизация длины команды в целом. При этом в одном такте может выполняться небольшое число микрокоманд. В целом, любая горизонтально закодированная команда соответствует нескольким вертикальным закодированным командам.
Пусть (NМОП)MAX= 100 (МОП – микрооперации)
Число одновременно выполненных микроопераций равно
N’ПАР_МОП= 32 / МК (комбинации)
mРАЗРЯДОВ ДЛЯ МОП= 5 =Log2N’MK , то есть хранится пяти разрядный код, а при дешифрации (двух уровневой) он распаковывается в 32 бита, затем в 100 микроопераций.
Основной недостаток это низкая скорость расшифровки и выполнение команды + МПЗУ может занимать до ½ площади кристала.
Особенности микропрограммного способа управления:
Большая гибкость в плане изменения набора команд, путем замены микропрограммной памяти (ПЗУ) или перезаписи микропрограммной памяти (ППЗУ).
Возможность рационального распределения аппаратного и микропрограммного управления порождает семейство машин разной производительности, но с одним набором команд.
Микропрограммное управление имеет регулярную структуру и реализуется с помощью БИС
Есть возможность эмуляции на микропрограммном уровне новых архитектур машин на имеющейся инструментальной машине.
Микропрограммная реализация системных программ (компиляторы, файловые системы), значительно повышает производительность системы и используется в суперкомпьютерах.
8+9
КСНК (RISC - Reduced Instruction Set Computer)
КСНК представляет собой возвращение к принципам аппаратного управления выполнением команд.
Первое и второе поколение машин содержало менее пятидесяти команд, основная проблема, по которой набор команд не расширялся - это цена аппаратуры, а также программирование в кодах (программист не мог запомнить большое количество команд). Затем аппаратные средства подешевели, появился опыт компилирования и оптимизации объектного кода.
Аппаратное управление 50-е годы (эра аппаратчиков)
Микропрограммное управление 60 – 80-е годы (эра программистов)
Основной лозунг Микропрограммного управления: больше команд хороших и разных.
Требования программистов:
Минимизация программ
Упрощения реализации компиляторов.
К этому времени разрыв набора команд между различными компьютерами был от 50 до300 команд (рекордсменом былVax11/780, у него было 303 команды).
Этот подход стал понижать производительность при размещении одного процессора на одном кристалле, так как около шестидесяти процентов площади кристалла занимало микропрограммное управление. А реализация на разных кристаллах также приводила к понижению производительности, да к тому же еще и снижала выход годных кристаллов. И в результате концу 80-х при активном развитии микропроцессорной техники и СБИС резко уменьшилось количество машинных команд и возврат к 50 командам (которые наиболее часто использовались). В конце концов, появилисьCISCкомпьютеры. (ComplexInstructionSetComputer– машины со сложным набором команд)
Основной лозунг RISCкомпьютеров: меньше команд, выше скорость выполнения.
Основной закон:
Система команд должна содержать минимальный набор, наиболее часто используемый и наиболее простых команд.
Четыре принципа RISC архитектуры:
Любая команда независимо от ее типа должна выполнять за один машинный цикл, обратно пропорциональный тактовой частоте процессора (стандартом является команда сложения регистра с регистром, она занимает от 3 – 10нс.).
Все команды должны иметь одинаковую длину и минимальное число форматов (обычно не более 2 -3), это упрощает логику управления при выборе и при исполнение команды.
Обращение к памяти производиться только по специально выделенным командам работы с памятью типа:
Load– загрузка
Store– выгрузка
а вся обработка данных должна вестись в регистровом формате.
Система команд должна обеспечивать поддержку компиляции с конкретного языка программирования в системе машинных команд(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= 1SRC2 – непосредственное данное
IfIMM= 0SRC2 – регистр
Недостаток: удлиняет длину команды на восемь бит.
Существует два вида формата команды.
Rd Rs1 op S2
Rd M((Rs1) + S2) / адрес
Структура процессора RISC1
Форма записи команд в регистровом варианте облегчает реализацию конвейерного исполнения команды, так как исключает конфликты обращения к памяти.
Пример:
E = (A + B) x (C + D)
Двух адресная обработка команд (CISC).
Add b, a
Add d, c
Mull d, b
Store e, d
║ ВК
| ДШ |
ОА |
ВО |
ИСП
| ЗР ║
ВК
| | | ║ ВК
| ДШ | ОА | ВО | ИСП | …… | ЗР ║ | | ║ ВК
| ДШ | ОА | …… | …… | …… | ВО | | | ║ ……
|
…… |
…… |
……
|
……
| ……
|
ВК
| | |
Трех адресная обработка команд (RISC).
Add R1, R2, R6
Add R3, R4, R7
MullR6,R7,R5
S1S2d
║ ВК
| ДШ |
ИСП
║
║ ВК
| ДШ |
ИСП
║
║ ВК
| ДШ |
ИСП
║
Основная проблема: при большом количестве используемых регистров надо сохранять их в памяти при переключениях с программы на программу. Решение проблемы сохранения и восстановления набора регистров при вызове подпрограмм предлагается реализовать следующими способами:
Организация окон перекрытия регистров.
MORS – Multiple Overlapping Register Set. (Rolodex в RISC–1)
Сто тридцать восемь регистров в RISC-1, они распределялись между восьмью программами (по тридцать два).
Физические регистры
Недостатки:
Ограниченное число параметров при передаче через регистры.
Ограниченное число подпрограмм, которые могут предоставлять регистры окна.
Решение:
Включить аппаратные ресурсы (недостаток: портит RISC архитектуру).
Сохранение регистров окна в памяти (недопустимо в системах реального времени).
Изменение контекста задачи (изменение регистров окна), при этом потери составят от 100 до 1000 машинных тактов.
RISC-2, для удобства работы с регистровыми окнами, реализован подход Omega():