![](/user_photo/_userpic.png)
1 курс 1 семестр / лекции / Лекция 9 Многотактный П — копия
.pdfЛекция 9. Многотактный процессор.
Вопросы:
1.Тракты команд и данных многотактного процессора.
2.Многотактное устройство управления.
3.Дополнительные команды addi и j.
Литература: Дэвид М. Харрис и Сара Л. Харрис. Цифровая схемотехника и архитектура компьютера, второе издание, с. 966 - 1003.
![](/html/74161/64/html_SquzVnI8Ir.uBxu/htmlconvd-F9jiOf2x1.jpg)
Тракт команд и данных однотактного процессора
![](/html/74161/64/html_SquzVnI8Ir.uBxu/htmlconvd-F9jiOf3x1.jpg)
1. Тракты команд и данных многотактного процессора.
Недостатки однотактного процессора:
1.Период его тактового сигнала должен быть достаточно большим, чтобы успела выполниться самая медленная команда (например, lw).
2.Процессору требуется три сумматора (один - для АЛУ (вычисление адресов и операндов команд типа R) и два - для вычисления нового значения счетчика команд РС: 1 для последовательного выполнения команд и 2-й для команд перехода ); быстрые сумматоры требуют множества логических элементов, что делает их относительно дорогими схемами.
3.Процессор должен иметь отдельные блоки памяти: команд и данных, что зачастую нереально. В большинстве компьютеров используют общую память для команд и данных, доступную для чтения и записи.
Для решения этих недостатков используют многотактный процессор, в котором выполнение каждой команды разбивается на несколько этапов - тактов. На
каждом этапе (такте) процессор может читать или писать данные в память или в регистровый файл, или выполнять какую-нибудь операцию в АЛУ. У
разных команд в этом случае будет разное количество тактов, так что простые команды смогут выполняться быстрее, чем сложные. Понадобится только один сумматор; на разных этапах он может использоваться для разных целей. Также процессор сможет обходиться общей памятью для команд и данных. Команды будут выбираться на первом такте, а чтение или запись данных будут происходить на последующих тактах.
![](/html/74161/64/html_SquzVnI8Ir.uBxu/htmlconvd-F9jiOf4x1.jpg)
Временные диаграммы процессоров
Однотактный процессор |
Многотактный процессор |
|
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нс
![](/html/74161/64/html_SquzVnI8Ir.uBxu/htmlconvd-F9jiOf5x1.jpg)
1.1 Основные принципы конструирования многотактного
процессора.
1.Конструкция тракта данных выполнена на основе соединения
блоков памяти и блоков, хранящие архитектурное состояние процессора при помощи комбинационной логики, определяющей какие блоки и когда использовать на основании их адресного разделения .
2.Использование других блоков для хранения информации о
промежуточном (не архитектурном) состоянии между этапами.
3.Определение устройства управления, которое должно формировать разные управляющие сигналы в зависимости от
текущего этапа выполнения команды на основе конечного автомата.
4.Добавление новых команд, по необходимости.
![](/html/74161/64/html_SquzVnI8Ir.uBxu/htmlconvd-F9jiOf6x1.jpg)
1.2. Отличие многотактного от однотактного процессора:
В многотактном процессоре используют общую память, хранящую и команды, и
данные. Поэтому выбор команды происходит на одном такте, а обращаются к памяти данных на другом такте, а обработка команды в RF может происходить на третьем такте и смена значения счетчика РС происходит на 4 такте. Таким образом, каждый элемент многотактного процессора может работать на отдельном такте синхронного импульса. Частота импульсов тактового генератора может быть еще увеличена, т.к. каждый такт теперь определяет не полную команду, а ее отдельный этап.
CLK
|
|
|
рп1 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
команды |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
данные |
команды |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
данные |
|
|
рп2 |
|||
|
|
|
|
|
|
|
Счетчик команд (РС) и файл регистров (Register File) – не изменены.
Память команд и данных (Instr/Data Memory) – в одном устройстве, но разделены на две части (команды и данные), к которым подсоединяются два регистра памяти рп1 и рп2 соответственно для хранения архитектурных состояний процессора и его данных: рп1 – для хранения команд, а рп2 – для хранения данных.
![](/html/74161/64/html_SquzVnI8Ir.uBxu/htmlconvd-F9jiOf7x1.jpg)
1.3. Выборка команды из памяти.
Прочитанная из памяти команда сохранятся во временный (не архитектурный) регистр инструкций (Instruction Register-IR), что бы можно было использовать ее в следующих тактах.
Сигнал разрешения записи в регистр инструкций IR назовем IRWrite (запись инструкций) и используем его, когда потребуется обновить находящуюся в регистре команду.
команды
IR
![](/html/74161/64/html_SquzVnI8Ir.uBxu/htmlconvd-F9jiOf8x1.jpg)
1.4. Обработка команды lw.
lw $s3, 1 ($s0) – чтение и загрузка (запись) слова в регистровый файл!
Инструкция lw определяет эффективный адрес в памяти как сумму базового адреса и смещения. Базовый адрес (записан в скобках в инструкции) является регистром, а смещение константа 1.
1). Первым шагом для команды lw будет чтение регистра, содержащего базовый адрес. Номер регистра указывается в поле команды rs (Instr 25:21) и подается на адресный вход первого порта (А1) файла регистров RF. Значение, прочитанное из файла регистров (базовый адрес), появляется на его выходе RD1, после чего сохраняется во временный регистр адреса А.
![](/html/74161/64/html_SquzVnI8Ir.uBxu/htmlconvd-F9jiOf9x1.jpg)
2). Поиск 2-го адреса. Команде lw также нужно смещение, которое представляет собой непосредственный операнд (immediate), находящийся в одном из полей команды, Instr15:0. Над этим операндом выполняется операция знакового расширения, в
результате чего получается 32-битное число Signlmm
![](/html/74161/64/html_SquzVnI8Ir.uBxu/htmlconvd-F9jiOf10x1.jpg)
3). Сложение базового адреса ScrA и смещения ScrB –
вычисление адреса данных ALUResult для памяти, которое сохраняется в еще одном не архитектурном регистре ALUOut. Данные, которые нужно записать по вычисленному адресу А, находятся в блоке I/D Memory.
А