Учебный курс
DESCRIPTION
Учебный курс. Архитектура ЭВМ и язык ассемблера Лекция 8 заместитель министра связи и массовых коммуникаций РФ, старший преподаватель Северов Дмитрий Станиславович. Микроархитектура. Управление микрокомандами. • Микропрограммная память. –. - PowerPoint PPT PresentationTRANSCRIPT
Учебный курс
Архитектура ЭВМ и язык ассемблера
Лекция 8
заместитель министра связи и массовых коммуникаций РФ, старший преподаватель
Северов Дмитрий Станиславович
Микроархитектура
2
–––––
–––––
Управление микрокомандами• Микропрограммная память
(9) Псевдорегистр «микропрограммный счётчик» (MPC)(512x36) Управляющая память(36) Регистр микрокоманд (MIR)Триггеры признаков (N),(Z)Схемы управления выбором следующего микроадреса
• Уточнённый цикл микрокомандыСпадом такта микрокоманда фиксируется в MIRВыдача из регистра на входную шинуСрабатывание АЛУ и сдвигателяСтабилизация выходной шины, шин памяти, АЛУЗащёлкивание (ростом такта)
• в триггеры признаков (N), (Z)• в регистры с выходной шины и/или из памяти
– Формирование MPC к началу след. цикла (спаду такта )3
––––
Некоторые задачи реализации АСК• Определить модель памяти
Набор константФрейм локальных переменныхСтек операндовОбласть процедур
• Определить набор команд• Определить поведение памяти при…
– передаче параметров и управления между процедурами– cоздании локальных переменных– вычислении выражений
• Определить состав микрокоманд• Реализовать АСК в виде микропрограммы
4
Модель памяти
5
Набор констант
Текущий стек операндов 3
Текущий фрейм локальных переменных 3
Фрейм локальных переменных 2
Фрейм локальных переменных 1
Область процедур
СРР
SP
LV
PC
6
Набор команд IJVM
Число Мнемоника Примечание0x10 BIPUSH byte Помещает байт в стек0x59 DUP Копирует верхнее слова стека и помещает его в стек0xA7 GOTO offset Безусловный переход0x60 IADD Выталкивает два слова из стека; помещает в стек их сумму0x7E IAND Выталкивает два слова из стека; помещает в стек результат
логического умножения 0x99 IFEQ offset Выталкивает слово из стека и совершает переход, если оно
равно нулю0x9B IFLT offset Выталкивает слово из стека и совершает переход, если оно
меньше нуля0x9F IF_ICMPEQ
offsetВыталкивает два слова из стека; совершает переход, если они равны
0x84 IINC varnum const
Прибавляет константу к локальной переменной
0x15 ILOAD varnum
Помещает локальную переменную в стек
0xB6 INVOKEVIRTUAL disp
Вызывает процедуру
0x80 IOR Выталкивает два слова из стека; помещает в стек результат логического сложения
0xAC IRETURN Выдает результат выполнения процедуры (целое число)0x36 ISTORE
vamumВыталкивает слово из стека и запоминает его во фрейме локальных переменных
0x64 ISUB Выталкивает два слова из стека; помещает в стек их разность
0x13 LDC_W index Берет константу из набора констант и помещает ее в стек0x00 NOP Не производит никаких действий0x57 POP Удаляет верхнее слово стекаOx5F SWAP Переставляет два верхних слова стекаOxC4 WIDE Префиксная команда; следующая команда содержит16-
битный индекс
Набор команд IJVM (продолжение)
Память при вызове и возврате
8
Микрооперации
9
Таблица 4.3. Все допустимые операции. Любую из перечисленных операций можно расширить, добавив «<<8», что означает сдвиг результата влево на 1 байт. Например, часто используется операция H=MBR<<8
DEST=HDEST=SOURCE SOURCE DESTDEST=H - MDR - MARDEST=SOURCE - PC - MDR DEST=H+SOURCE - MBR - PCDEST=H+S0URCE+1 - MBRU - SPDEST=H+1 - SP - LVDEST=S0URCE+1 - LV - CPPDEST=SOURCE-H - CPP - TOSDEST=S0URCE-1 - TOS - OPCDEST= -H - OPC - HDEST=H И SOURCEDEST=H ИЛИ SOURCEDEST=0DEST=1DEST= -1
10
Микро-команда Операция Комментарий
Main1РС=РС+1; fetch; goto(MBR)
MBR содержит код операции; получение следующего байта; отсылка
nop1 goto Main 1 Ничего не происходит
iadd1 MAR=SP=SP-1;rdЧтение слова, идущего после верхнего слова стека
iadd2 H=TOS Н = вершина стека
iadd3MDR=TOS=MDR+H;wr; goto Main 1
Суммирование двух верхних слов; запись суммы в верхнюю позицию стека
lload1 H-LV MBR содержит индекс; копирование значения LVBH
iload2 MAR=MBRU+H; rdMAR = адрес локальной переменной, которую нужно поместить в стек
iload3 MAR=SP=SP+1 Регистр SP указывает на новую вершину стека; подготовка к записи
iload4 PC=PC+1; fetch; wrУвеличение значения PC на 1; вызов кода следующей операции; запись вершины стека
Микропрограмма для Mic-1
iload5TOS=MDR; goto Malnl Обновление TOS
goto1 OPC=PC-1 Сохранение адреса кода операции
goto2 PC=PC+1; fetchMBR ■ первый байт смещения; вызов второго байта
goto3 H=MBR<<8Сдвиг первого байта влево на 8 битов и сохранение его в регистре Н
goto4 H=MBRU ИЛИ Н Н =16-битное смещение переходаgoto5 PC=OPC+H; fetch Суммирование смещения и ОРС
goto6 goto Maln1Ожидание вызова следующего кода операции
Микропрограмма для Mic-1 (продолжение)
А дальше?• Учебные модели
– 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-2LDC-WSWAPILOADIADDLDC-W
98649
36333
14
Mic-3• Такт короче• Всё доступно
Mic-2
Mic-2
Mic-3
Mic-3
15
Конвейер
16
–––––
Mic-4• Микрооперации• Специализация
Начало в ПЗУВыборка заранееОчередь исполненияMIR на стадиюМикропереходыотдельно
17
––––––
Кэш (cache)• Отображение, «попадание», «промах»• Блоки, строки, теги• Основные характеристики
Емкость (1КB-10МБ)Размер строкиАлгоритм отображенияАлгоритм замещенияАлгоритм согласованияЧисло уровней
18