DEST= -H

реклама
Учебный курс
Архитектура ЭВМ
и язык ассемблера
Лекция 8
заместитель министра связи и массовых
коммуникаций РФ, старший преподаватель
Северов Дмитрий Станиславович
Микроархитектура
2
Управление микрокомандами
• Микропрограммная память
–
–
–
–
–
(9) Псевдорегистр «микропрограммный счётчик» (MPC)
(512x36) Управляющая память
(36) Регистр микрокоманд (MIR)
Триггеры признаков (N),(Z)
Схемы управления выбором следующего микроадреса
• Уточнённый цикл микрокоманды
–
–
–
–
–
Спадом такта микрокоманда фиксируется в MIR
Выдача из регистра на входную шину
Срабатывание АЛУ и сдвигателя
Стабилизация выходной шины, шин памяти, АЛУ
Защёлкивание (ростом такта)
• в триггеры признаков (N), (Z)
• в регистры с выходной шины и/или из памяти
– Формирование MPC к началу след. цикла (спаду такта )
3
Некоторые задачи реализации АСК
• Определить модель памяти
–
–
–
–
Набор констант
Фрейм локальных переменных
Стек операндов
Область процедур
• Определить набор команд
• Определить поведение памяти при…
– передаче параметров и управления между процедурами
– cоздании локальных переменных
– вычислении выражений
• Определить состав микрокоманд
• Реализовать АСК в виде микропрограммы
4
Модель памяти
SP
Текущий стек
операндов 3
Текущий фрейм
локальных
переменных 3
Фрейм
локальных
переменных 2
Набор
констант
СРР
Фрейм
локальных
переменных 1
LV
Область
процедур
PC
5
Набор команд IJVM
Число Мнемоника
0x10 BIPUSH byte
0x59 DUP
0xA7 GOTO offset
0x60 IADD
0x7E IAND
0x99
0x9B
0x9F
0x84
Примечание
Помещает байт в стек
Копирует верхнее слова стека и помещает его в стек
Безусловный переход
Выталкивает два слова из стека; помещает в стек их сумму
Выталкивает два слова из стека; помещает в стек результат
логического умножения
IFEQ offset Выталкивает слово из стека и совершает переход, если оно
равно нулю
IFLT offset
Выталкивает слово из стека и совершает переход, если оно
меньше нуля
IF_ICMPEQ Выталкивает два слова из стека; совершает переход, если
offset
они равны
IINC varnum Прибавляет константу к локальной переменной
const
6
Набор команд IJVM (продолжение)
0x15 ILOAD
Помещает локальную переменную в стек
varnum
0xB6 INVOKEVIRT Вызывает процедуру
UAL disp
0x80 IOR
Выталкивает два слова из стека; помещает в стек результат
логического сложения
0xAC IRETURN
Выдает результат выполнения процедуры (целое число)
0x36 ISTORE
Выталкивает слово из стека и запоминает его во фрейме
vamum
локальных переменных
0x64 ISUB
Выталкивает два слова из стека; помещает в стек их
разность
0x13 LDC_W index Берет константу из набора констант и помещает ее в стек
0x00 NOP
Не производит никаких действий
0x57 POP
Удаляет верхнее слово стека
Ox5F SWAP
Переставляет два верхних слова стека
OxC4 WIDE
Префиксная команда; следующая команда содержит16битный индекс
Память при вызове и возврате
8
Микрооперации
Таблица 4.3. Все допустимые операции. Любую из перечисленных операций
можно расширить, добавив «<<8», что означает сдвиг результата влево на 1 байт.
Например, часто используется операция H=MBR<<8
DEST=H
DEST=SOURCE
DEST=H
DEST=SOURCE
DEST=H+SOURCE
DEST=H+S0URCE+1
DEST=H+1
DEST=S0URCE+1
DEST=SOURCE-H
DEST=S0URCE-1
DEST= -H
DEST=H И SOURCE
DEST=H ИЛИ SOURCE
DEST=0
DEST=1
DEST= -1
SOURCE
- MDR
- PC
- MBR
- MBRU
- SP
- LV
- CPP
- TOS
- OPC
DEST
- MAR
- MDR
- PC
- SP
- LV
- CPP
- TOS
- OPC
- H
9
Микропрограмма для Mic-1
Микрокоманда
Main1
nop1
iadd1
iadd2
iadd3
lload1
iload2
iload3
iload4
Операция
РС=РС+1; fetch;
goto(MBR)
goto Main 1
Комментарий
MBR содержит код операции; получение
следующего байта; отсылка
Ничего не происходит
Чтение слова, идущего после верхнего слова
MAR=SP=SP-1;rd стека
H=TOS
Н = вершина стека
MDR=TOS=MDR+ Суммирование двух верхних слов; запись
H;wr; goto Main 1 суммы в верхнюю позицию стека
MBR содержит индекс; копирование значения
H-LV
LVBH
MAR = адрес локальной переменной, которую
MAR=MBRU+H; rd нужно поместить в стек
Регистр SP указывает на новую вершину
MAR=SP=SP+1
стека; подготовка к записи
Увеличение значения PC на 1; вызов кода
PC=PC+1; fetch; wr следующей операции; запись вершины стека
10
Микропрограмма для Mic-1 (продолжение)
iload5
goto1
goto2
goto3
goto4
goto5
goto6
TOS=MDR; goto
Malnl
OPC=PC-1
Обновление TOS
Сохранение адреса кода операции
MBR ■ первый байт смещения; вызов второго
PC=PC+1; fetch
байта
Сдвиг первого байта влево на 8 битов и
H=MBR<<8
сохранение его в регистре Н
H=MBRU ИЛИ Н Н =16-битное смещение перехода
PC=OPC+H; fetch Суммирование смещения и ОРС
goto Maln1
Ожидание вызова следующего кода операции
А дальше?
• Учебные модели
– Google: VS-CPU Carpinelli
– Google: RS-CPU Carpinelli
– Жмакин А.П. Архитектура ЭВМ. (с диском)
• ISBN 5-94157-719-2
• Простейший процессор
– 8 бит
– 4-ре команды
– www.csie.ntu.edu.tw/~b92029/data/EXP
12
Ускорение микроархитектуры
• Меньше микроопераций в операции
– упрятать выборку команды
– три шины
• Короче цикл
– меньше последовательных действий
– короче отдельные действия
• сложнее сумматор (АЛУ)
• убрать декодер 4в16
• Несколько действий одновременно
– Отдельный блок выборки команд
13
Mic-2
LDC-W
SWAP
9
8
3
6
ILOAD
6
3
IADD
4
3
LDC-W
9
3
14
Mic-3
• Такт короче
• Всё доступно
Mic-2
Mic-3
Mic-2
Mic-3
15
Конвейер
16
Mic-4
• Микрооперации
• Специализация
–
–
–
–
–
Начало в ПЗУ
Выборка заранее
Очередь исполнения
MIR на стадию
Микропереходы
отдельно
17
Кэш (cache)
• Отображение, «попадание», «промах»
• Блоки, строки, теги
• Основные характеристики
–
–
–
–
–
–
Емкость (1КB-10МБ)
Размер строки
Алгоритм отображения
Алгоритм замещения
Алгоритм согласования
Число уровней
18
Скачать