Содержание
- 2. 1.1. Тракт записи данных команды SW в память. Особенности схемы построения микроархитектуры процессора при выполнении команд
- 3. 1. Как и команда загрузка слова (Lw), так и команда сохранения слова (sw), работают с расширением
- 4. Схема с тремя мультиплексорами ALUSrc, MemotReg, RegDst . 2. Микроархитектура с тремя мультиплексорами для обработки команд
- 5. 2.Мультиплексор записи MemotReg. При выполнении команды Lw порт записи WD3 файла регистров RF подключался к памяти
- 6. 3.Мультиплексор определения адреса записи RegDst . Адрес регистра в файле регистров, куда нужно было записать данные,
- 7. 3. Микроархитектура с командами условного перехода. Команда условного перехода beq- переход, если равно. Эта команда сравнивает
- 8. 2. Новое значение счетчика команд при выполненного условного перехода (РСВranch) вычисляется путем сдвига влево расширяющего знака
- 9. Схема однотактного процессора MIPS с устройством управления. 4. Однотактное устройство управления. Устройство управления формирует управляющие сигналы
- 10. Блок управления. Устройство управления можно разделить на две части: комбинационную логику (Main Decoder - MD); дешифратор
- 11. Таблица истинности для основного дешифратора, показывающая зависимость управляющих сигналов от значения составляющей opcode Так как сигнал
- 12. Дешифратор Для всех команд типа R основной дешифратор формирует одинаковые сигналы; эти команды отличаются только сигналами,
- 13. 5. Анализ производительности однотактного процессора. Каждая команда в однотактном процессоре выполняется ровно за один такт. Цепь
- 15. Скачать презентацию
Слайд 2 1.1. Тракт записи данных команды SW в память.
Особенности схемы построения
1.1. Тракт записи данных команды SW в память.
Особенности схемы построения
при выполнении команд Lw и sw.
Команда sw для определения адреса записи А в DM читает из файла регистров по адресу А1 составляющую адреса ScrA из RD1 и число 4 из поля imm для составляющей адреса ScrB.
Для определения слова, которое надо записать в DM читается еще один регистр по адресу А2 из порта RD2 RF и его содержимое записывает в память данных.
Адрес регистра А2 указывается в поле rt (Instr20:16). Эти пять бит подключены по A2 ко второму порту регистрового файла RD2. Прочитанное значение из RF появляется на выходе RD2 и попадает на вход записи WD в память данных DM. Вход разрешения записи WE управляется сигналом MemWrite. Для команды sw сигнал MemWrite = 1, чтобы данные были записаны в память DM.
Для команды Lw всегда сигнал MemWrite = 0 и данные не записываются в память DM.
Один такт – одна команда процессора. Команда sw завершена.
Команда sw
Sw $s3,4($0)
А1 А2 101
Слайд 3
1. Как и команда загрузка слова (Lw), так и команда сохранения слова
1. Как и команда загрузка слова (Lw), так и команда сохранения слова
2. Команда sw, ничего не записывает в файл регистров в отличие от Lw. Команда sw читает из инструкции еще одно поле rt (Instr 20:16) и определяет его содержимое по адресу А2 регистрового файла. Эти пять бит подключены ко второму порту А2 RF, которые определяют адрес чтения и на выходе RD2 файла регистров RF появляется 32 – битный операнд. Он попадает на вход записи WD в память данных DM. Вход разрешения записи (WE) управляется сигналом MemWrite записи памяти. Для команды sw сигнал MemWrite = 1, чтобы данные были записаны в память данных DM. При этом управляющие сигналы: ALUControl = 010, чтобы базовый адрес был просуммирован со смещением, а значение Read Data из памяти данных DM в этом случае игнорируется, так как в регистровом файле RF Reg Write= 0.
Особенности исполнения команд типа Lw и sw
Слайд 4 Схема с тремя мультиплексорами ALUSrc, MemotReg, RegDst .
2. Микроархитектура с тремя
Схема с тремя мультиплексорами ALUSrc, MemotReg, RegDst .
2. Микроархитектура с тремя
1.Мультиплексор формирования составляющих адреса ALUSrc.
Содержимое двух регистров RD1 и RD2 читается из файла регистров по адресам А1, А2 и подается на входы АЛУ. Ранее операнд SrcB вычислялся через непосредственное значению SignImm с расширением знака. Теперь добавляем мультиплексор, чтобы была возможность подать на вход АЛУ или SignImm, или выход RD2 файла регистров RF.
Мультиплексор управляется новым сигналом ALUSrc. ALUSrc равен нулю для команд типа R и в этом случае на вход АЛУ подается значение из файла регистров.
Тракт данных с поддержкой команд типа R .
A1 RF A2RF A3RF
Формат команды
Слайд 52.Мультиплексор записи MemotReg.
При выполнении команды Lw порт записи WD3 файла регистров RF
2.Мультиплексор записи MemotReg.
При выполнении команды Lw порт записи WD3 файла регистров RF
Однако команды типа R так же должны записываться в файл регистров RF значение ALUResult по адресуA3 поле команды rd. Чтобы выбирать между ReadData при выполнении команды Lw и ALUResult для команд типа R, добавим еще один мультиплексор MemotReg, выход которого соединен со входом записи WD3 RF.
Если выход MemtoReg =0 равен нулю для команд типа R, то в этом случае Result принимает
значение ALUResult. Для команды Lw MemtoReg=1 равен единице, а Result принимает
значение ReadData. Для команды sw значение MemotReg, равное 1 не играет никакой
роли, так как sw ничего в регистровый файл не пишет.
ReadData
Слайд 6 3.Мультиплексор определения адреса записи RegDst .
Адрес регистра в файле регистров, куда
3.Мультиплексор определения адреса записи RegDst .
Адрес регистра в файле регистров, куда
Примечание:
Для команды sw значение RegDst не играет никакой роли, так как sw ничего в регистровый файл не пишет
Слайд 73. Микроархитектура с командами условного перехода.
Команда условного перехода beq- переход, если
3. Микроархитектура с командами условного перехода.
Команда условного перехода beq- переход, если
Эта команда сравнивает два регистра и, если они равны, то добавляет смещение к счетчику команд PC, выполняя, таким образом, условный переход.
Смещение - это положительное или отрицательное число, передаваемое как непосредственный
операнд в поле инструкции imm: Instr15:0. Смещение указывает количество команд, которое нужно пропустить, прежде чем продолжить выполнение программы. Над значением непосредственного операнда надо выполнить операцию знакового расширения, после чего умножить его (количество команд) на четыре, чтобы получить новое значение счетчика команд (следующий адрес после команды перехода плюс смещение): PC' = PC + 4 + Signlmm * 4
и
Слайд 82. Новое значение счетчика команд при выполненного условного перехода (РСВranch) вычисляется путем
2. Новое значение счетчика команд при выполненного условного перехода (РСВranch) вычисляется путем
При выполнении условного перехода два регистра сравниваются путем вычитания одного из другого в АЛУ. Если ALUResult равен нулю (т.е. сигнал Zero=1), о чем сигнализирует флаг нуля, то регистры равны. Нужно добавить мультиплексор, чтобы выбрать, какое именно значение присвоить PC’ = PCPlus4 или PCBranch.
РСВгапсh используется тогда, когда выполняется команда условного перехода и установлен флаг нуля, т.е. сигнал Вгаnсh равен единице для команды beq и тогда схема И выдает сигнал PCSrc для мультиплексора счетчика . Для команды beq сигналы ALUControl = 110, что означает, что АЛУ должно выполнить операцию вычитания. Если ALUSrc = 0, операнд SrcB был прочитан из регистрового файла RD2. Сигналы управления RegWrite и МEMWrite равны нулю, так как команда условного перехода ничего не пишет ни в регистровый файл, ни в память. Значения RegDst и MemoReg не активны в регистровый файл также ничего не пишется.
PCPlus4
RegWrite
0
МEMWrite
RegDst
0
MemoReg
0
ALUControl
110
Branch
и
ALUSrc
0
Слайд 9 Схема однотактного процессора MIPS с устройством управления.
4. Однотактное устройство управления.
Устройство
Схема однотактного процессора MIPS с устройством управления.
4. Однотактное устройство управления.
Устройство
и
Слайд 10Блок управления.
Устройство управления можно разделить на две части:
комбинационную логику (Main Decoder
Блок управления.
Устройство управления можно разделить на две части:
комбинационную логику (Main Decoder
дешифратор этой логики (ALU Decoder -AD) .
Основной дешифратор MD вычисляет значение большинства выходов на основе 6- битного поля opcode. Он также формирует двухбитный сигнал ALUOp (1:0) для дешифратора логики AD . Дешифратор АЛУ (AD) использует 2-х битный сигнал ALUOp совместно с 6- битным полем Opcode для вычисления 3-х битного состояния ALUControl (2:0).
MD
AD
5:0
5:0
1:0
Управляющие сигналы всех
команд главного дешифратора MD: MemotoReg, MemWrite, Branch, ALUSrc,RegDst, RegWrite
уже были описаны
при анализе тракта данных.
Слайд 11Таблица истинности для основного дешифратора, показывающая зависимость управляющих сигналов от значения составляющей
Таблица истинности для основного дешифратора, показывающая зависимость управляющих сигналов от значения составляющей
Так как сигнал ALUOp =11 никогда не используется, то для упрощения логики можно
использовать неопределенные значения X1 и 1X вместо 01 и 10,т.е. контролировать только место 1 в старшем или младшем бите управления.
Для команд типа R первые два бита поля funct всегда равны 10, так что их можно
проигнорировать для упрощения дешифратора.
5:0
5:0
Слайд 12Дешифратор
Для всех команд типа R основной дешифратор формирует одинаковые сигналы; эти команды
Дешифратор
Для всех команд типа R основной дешифратор формирует одинаковые сигналы; эти команды
Слайд 135. Анализ производительности однотактного процессора.
Каждая команда в однотактном процессоре выполняется ровно
5. Анализ производительности однотактного процессора.
Каждая команда в однотактном процессоре выполняется ровно
Цепь с наибольшей задержкой для команды lw показана синей пунктирной линией.
Начало в счетчике команд по положительному фронту тактового сигнала записывает свое новое значение. Затем обновленное значение PC используется для выборки следующей команды. Потом процессор читает SrcA из регистрового файла, одновременно с этим читается знаковое расширенное смещение Sign, которое через мультиплексор SrcB подается на вход АЛУ как операнд. АЛУ складывает операнды SrcA и SrcB, вычисляя эффективный адрес памяти ALUResalt . По этому адресу производится чтение из памяти данных ReadData, которое выбирается мультиплексором. Получаем сигнал Result. Сигнал Result должен стать стабильным на входе регистрового файла до того, как придет следующий положительный фронт тактового сигнала, иначе запись будет иметь неверное значение.