Вы находитесь на странице: 1из 26

Уровень микроархитектуры

Мухортова Н.Н.
Уровень микроархитектуры

Над цифровым логическим уровнем находится уровень


микроархитектуры. Его задача — интерпретация команд уровня
архитектуры команд

Общих принципов разработки уровня микроархитектуры не существует.


Каждая разработка индивидуальна.

Рассмотрим в качестве уровня архитектуры команд подмножество


целочисленных команд виртуальной машины Java IJVM.
Цикл выборка-
декодирование-исполнение

Условимся каждую команду уровня архитектуры команд считать


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

Тракт данных — это часть центрального процессора, состоящая из АЛУ


(арифметико-логического устройства), его входов и выходов.
Такт данных

На рисунке перечеркнутая стрелочка с цифрой 6 сверху указывает на


наличие шести линий управления АЛУ. Из них F0 и F1 служат для задания
операции, ENA и ENB — для разрешения входных сигналов A и B
соответственно, INVA — для инверсии левого входа и INC — для переноса
бита в младший разряд, что эквивалентно прибавлению единицы к
результату.

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


что-то полезное.
Некоторые
комбинации
сигналов и
соответствующие
им функции
Такт данных

АЛУ содержит два входа для данных: левый вход(A) и правый вход (B). С
левым входом связан регистр временного хранения H. С правым входом
связана шина B, на которую могут поступать значения с одного из девяти
источников, что показано с помощью девяти серых стрелок, примы
кающих к шине.
Такт данных

В регистр H может поступать функция АЛУ, которая проходит через


правый вход (из шины B) к выходу АЛУ. Одна из таких функций —
сложение входных сигналов АЛУ, только при этом сигнал ENA
отрицателен, и левый вход получает значение 0. Если к значению шины B
прибавить 0, это значение не изменится. Затем результат проходит через
схему сдвига (также без изменений) и сохраняется в регистре H.
Такт данных

Существует еще две линии управления, которые используются


независимо от остальных. Они служат для управления выходом АЛУ.
Линия SLL8 (Shift Left Logical — логический сдвиг влево) сдвигает число
влево на 1 байт, заполняя 8 самых младших двоичных разрядов нулями.
Линия SRA1 (Shift Right Arithmetic — арифметический сдвиг вправо)
сдвигает число вправо на 1 бит, оставляя самый старший двоичный
разряд без изменений.
Синхронизация тракта данных

Точная синхронизация тракта данных делает возможным считывание и


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

На спаде импульса устанавливаются биты, которые будут запускать все


вентили. Этот процесс занимает определенный отрезок времени Δw.
Затем выбирается регистр, и его значение передается на шину B. На это
требуется время Δx.

Далее АЛУ и схема сдвига начинают оперировать поступившими к ним


данными.
Синхронизация тракта данных

После промежутка Δy выходные сигналы АЛУ и схемы сдвига


стабилизируются. В течение следующего отрезка Δz результаты проходят
по шине С к регистрам, куда они загружаются на фронте следующего
импульса.

Загрузка должна запускаться фронтом сигнала и осуществляться


мгновенно, так что даже в случае изменений каких-либо входных
регистров изменения в шине C будут происходить только после полной
загрузки регистров. На фронте импульса регистр, запускающий шину B,
приостанавливает свою работу и ждет следующего цикла.
Синхронизация тракта данных

Чтобы такая система была работоспособна, требуется жесткая


синхронизация и довольно длинный цикл; должно быть известно
минимальное время прохождения сигнала через АЛУ; регистры должны
загружаться с шины C очень быстро

Границы подциклов определяются только временем прохождения


сигнала, поэтому для надежной загрузки регистра разработчики тракта
данных должны очень четко рассчитать, чтобы время Δw + Δx + Δy + Δz
стабильно предшествовало фронту синхронизирующего сигнала.
Функционирование памяти
Наша машина может взаимодействовать с памятью двумя способами:
через порт с пословной адресацией (32-разрядный) и через порт с
побайтовой адресацией (8-разрядный). Порт с пословной адресацией
управляется двумя регистрами: MAR (Memory Address Register —
адресный регистр памяти) и MDR (Memory Data Register —
информационный регистр памяти), 8-разрядный порт управляется
регистром PC, который записывает 1 байт в 8 младших битов регистра
MBR (Memory Buffer Register — буферный регистр памяти). Этот порт
может считывать данные из памяти, но не может записывать их в
память.
Функционирование памяти
Каждый из этих регистров, а также все остальные регистры,
изображенные на рис., запускаются одним из сигналов управления.
Белая стрелка под регистром указывает на сигнал управления, который
разрешает передавать выходной сигнал регистра на шину B.

Регистр MAR не связан с шиной B, поэтому у него нет разрешающего


сигнала управления. У регистра H этого сигнала тоже нет, так как он
является единственным возможным левым входом АЛУ и поэтому
всегда разрешен.
Микрокоманды

Для управления трактом данных, изображенном на рис., необходимо 29


сигналов.

Их можно разделить на пять функциональных групп


Функциональные группы

1. 9 сигналов для записи данных с шины C в регистры;


2. 9 сигналов для разрешения передачи регистров на шину B и в АЛУ;
3. 8 сигналов для управления АЛУ и схемой сдвига;
4. 2 сигнала, которые указывают, что нужно осуществить чтение или
запись через регистры MAR/MDR (на рисунке они не показаны);
5. 1 сигнал, который указывает, что нужно осуществить вызов из
памяти через регистры PC/MBR (на рисунке также не показан).
Функциональные группы

Значения этих 29 сигналов управления определяют операции для одного


цикла тракта данных. Цикл состоит из передачи значений регистров на
шину B, прохождения этих сигналов через АЛУ и схему сдвига, передачи
полученных результатов на шину C и записи их в нужный регистр
(регистры). Кроме того, если установлен сигнал считывания данных, то в
конце цикла после загрузки регистра MAR начинает работать память.
Функциональные группы

Данные из памяти помещаются в MBR или MDR в конце следующего


цикла, а использоваться эти данные могут в цикле, который идет после
него.

Другими словами, если считывание из памяти через любой из портов


начинается в конце цикла k, то полученные данные не смогут
использоваться в цикле k + 1 (только в цикле k + 2 и позже).
Формат микрокоманды для Mic-1

На следующем рисунке изображен один из возможных форматов. В нем


представлены следующие 6 групп, содержащие 36 сигналов:

1. Addr — адрес следующей потенциальной микрокоманды;


2. JAM — определение того, как выбирается следующая микрокоманда;
3. ALU — функции АЛУ и схемы сдвига;
4. C — выбор регистров, которые записываются с шины C;
5. Mem — функции памяти;
6. B — выбор источника для шины B (как он кодируется, было показано
Микроархитектура
Core i7

Вам также может понравиться