1 курс 1 семестр / лекции / Лекция 9 Многотактный П — копия
.pdfЛекция 9. Многотактный процессор.
Вопросы:
1.Тракты команд и данных многотактного процессора.
2.Многотактное устройство управления.
3.Дополнительные команды addi и j.
Литература: Дэвид М. Харрис и Сара Л. Харрис. Цифровая схемотехника и архитектура компьютера, второе издание, с. 966 - 1003.
Тракт команд и данных однотактного процессора
1. Тракты команд и данных многотактного процессора.
Недостатки однотактного процессора:
1.Период его тактового сигнала должен быть достаточно большим, чтобы успела выполниться самая медленная команда (например, lw).
2.Процессору требуется три сумматора (один - для АЛУ (вычисление адресов и операндов команд типа R) и два - для вычисления нового значения счетчика команд РС: 1 для последовательного выполнения команд и 2-й для команд перехода ); быстрые сумматоры требуют множества логических элементов, что делает их относительно дорогими схемами.
3.Процессор должен иметь отдельные блоки памяти: команд и данных, что зачастую нереально. В большинстве компьютеров используют общую память для команд и данных, доступную для чтения и записи.
Для решения этих недостатков используют многотактный процессор, в котором выполнение каждой команды разбивается на несколько этапов - тактов. На
каждом этапе (такте) процессор может читать или писать данные в память или в регистровый файл, или выполнять какую-нибудь операцию в АЛУ. У
разных команд в этом случае будет разное количество тактов, так что простые команды смогут выполняться быстрее, чем сложные. Понадобится только один сумматор; на разных этапах он может использоваться для разных целей. Также процессор сможет обходиться общей памятью для команд и данных. Команды будут выбираться на первом такте, а чтение или запись данных будут происходить на последующих тактах.
Временные диаграммы процессоров
Однотактный процессор |
Многотактный процессор |
|
T- период тактового сигнала |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
импульс |
|
пауза |
Тактовыйимпульс импульс |
|
|
|||
|
|
|
|
|
|
|
|
|
PC оркивыб |
|
|
T- период тактового сигнала |
|
|
Ста |
||||||
PC = A1 адрес команды |
|
|
адре |
|||||||
|
|
ди |
||||||||
|
|
|
|
|
|
|
|
|
са |
я |
|
Стадия выборки адреса |
|
|
|
||||||
|
|
tнс |
|
|||||||
|
|
|
|
|
|
|
|
рас |
||
|
|
|
|
|
|
|
|
|||
RF = команда Lw $a0, 4($0) |
|
|
|
ши |
||||||
|
|
RF |
фр |
|||||||
|
|
|
|
|
|
|
|
|
овк |
|
|
|
Стадия расшифровка команды |
tнс |
|
а |
|||||
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
RF = формирование адреса чтения в DM
|
|
|
|
|
|
RF |
|
|
|
|
|
|
|
|
|
|
|
Формирование |
|
SrcA и SrcB |
tнс |
|
|
|
|
|
|
|
ALU |
||
|
|
|
|
|
|||
ALU = вычисление адреса для DM |
|||||||
|
|
|
|
|
|
||
|
|
SrcA + SrcB |
вычисление А |
tнс |
|
||
|
|
|
|
|
DM |
||
DM |
|||||||
|
Стадия чтение по адресу А
tнс
RF = запись данных по адресу А3 в порт WD3, RF
|
|
|
WE3=1 |
|
|
||
|
Определение А3 |
|
|
||||
|
|
|
|
|
|||
PC = |
|
|
|
|
|
|
|
PC’ адрес новой |
|
|
|
|
|||
Новы |
Стадия выборки |
PC = PC’ |
|||||
команды |
|||||||
й А |
адреса |
tнс |
|||||
|
|||||||
|
|
|
|
|
|||
|
|
|
|
|
|
|
T- период тактового сигнала
Тактовый импульс
tнс
Фор
мир
ова
ние
SrcA
и
SrcB Src A + Src B
выч
исл
ени е А
Ста
дия
чте
ние
по
адр
есу
А
Оп
ре
де
ле
ни
е
А3
tнс
tнс
tнс
tнс
Ст
ад
ия
tнс вы
бо
рк
и
ад
ре
са
tнс
1.1 Основные принципы конструирования многотактного
процессора.
1.Конструкция тракта данных выполнена на основе соединения
блоков памяти и блоков, хранящие архитектурное состояние процессора при помощи комбинационной логики, определяющей какие блоки и когда использовать на основании их адресного разделения .
2.Использование других блоков для хранения информации о
промежуточном (не архитектурном) состоянии между этапами.
3.Определение устройства управления, которое должно формировать разные управляющие сигналы в зависимости от
текущего этапа выполнения команды на основе конечного автомата.
4.Добавление новых команд, по необходимости.
1.2. Отличие многотактного от однотактного процессора:
В многотактном процессоре используют общую память, хранящую и команды, и
данные. Поэтому выбор команды происходит на одном такте, а обращаются к памяти данных на другом такте, а обработка команды в RF может происходить на третьем такте и смена значения счетчика РС происходит на 4 такте. Таким образом, каждый элемент многотактного процессора может работать на отдельном такте синхронного импульса. Частота импульсов тактового генератора может быть еще увеличена, т.к. каждый такт теперь определяет не полную команду, а ее отдельный этап.
CLK
|
|
|
рп1 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
команды |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
данные |
команды |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
данные |
|
|
рп2 |
|||
|
|
|
|
|
|
|
Счетчик команд (РС) и файл регистров (Register File) – не изменены.
Память команд и данных (Instr/Data Memory) – в одном устройстве, но разделены на две части (команды и данные), к которым подсоединяются два регистра памяти рп1 и рп2 соответственно для хранения архитектурных состояний процессора и его данных: рп1 – для хранения команд, а рп2 – для хранения данных.
1.3. Выборка команды из памяти.
Прочитанная из памяти команда сохранятся во временный (не архитектурный) регистр инструкций (Instruction Register-IR), что бы можно было использовать ее в следующих тактах.
Сигнал разрешения записи в регистр инструкций IR назовем IRWrite (запись инструкций) и используем его, когда потребуется обновить находящуюся в регистре команду.
команды
IR
1.4. Обработка команды lw.
lw $s3, 1 ($s0) – чтение и загрузка (запись) слова в регистровый файл!
Инструкция lw определяет эффективный адрес в памяти как сумму базового адреса и смещения. Базовый адрес (записан в скобках в инструкции) является регистром, а смещение константа 1.
1). Первым шагом для команды lw будет чтение регистра, содержащего базовый адрес. Номер регистра указывается в поле команды rs (Instr 25:21) и подается на адресный вход первого порта (А1) файла регистров RF. Значение, прочитанное из файла регистров (базовый адрес), появляется на его выходе RD1, после чего сохраняется во временный регистр адреса А.
2). Поиск 2-го адреса. Команде lw также нужно смещение, которое представляет собой непосредственный операнд (immediate), находящийся в одном из полей команды, Instr15:0. Над этим операндом выполняется операция знакового расширения, в
результате чего получается 32-битное число Signlmm
3). Сложение базового адреса ScrA и смещения ScrB –
вычисление адреса данных ALUResult для памяти, которое сохраняется в еще одном не архитектурном регистре ALUOut. Данные, которые нужно записать по вычисленному адресу А, находятся в блоке I/D Memory.
А