Я пытаюсь понять пути данных и то, как это работает в программировании MIPS. Часть занижения заключается в понимании кодов операций ALU, которые, по сути, сообщают ALU, какие операции выполнять. Например, если мы реализуем базовые функции AND, OR, ADD, SUB, NAND
и NOR
, мы получим базовое распределение кодов операций ALU, т. е. AND
равно 00
, OR
равно 01
, ADD
равно 10
, SUB
равно 10
, NAND
равно 10
и NOR
равно 01
. Но я не уверен, что понимаю, почему код операции ALU для sw
и lw
равен 00
?
Почему код операции ALU для lw и sw равен 00?
Ответы (1)
В MIPS существует только один режим адресации: база + смещение.
В инструкциях загрузки и сохранения АЛУ выполняет это вычисление адреса, которое выполняется с помощью сложения. Таким образом, АЛУ выполняет сложение в: регистр + расширенный знак непосредственно, что формирует адрес, отправляемый в память данных.
person
Erik Eidt
schedule
21.02.2020
Но разве OP-код для сложения (ALU - 2 бита) не равен 10? Итак, если мы выполняем сложение, разве код операции для lw и sw не должен быть равен 10?
- person Ski Mask; 21.02.2020
ALUOP — 00 (2 бита), а управление ALU — 010 (3 бита): сложение. Он преобразуется из 00 в 010 системой управления ALU. Я полагаю, что вы путаете ALUOP и ALUControl, но некоторые слайды и тексты также делают это. В некоторых текстах управление ALU также описывается как 4-битное. (Кстати, это внутренние детали реализации процессора, поэтому программа может использовать разные значения без ведома.)
- person Erik Eidt; 22.02.2020
Основной элемент управления предоставляет 00 как ALUOp из
addi
, lw
и sw
, и это сообщает элементу управления ALU вывод кода для добавления в ALU. Главный элемент управления предоставляет 01 в качестве ALUOP для ветвей, что заставляет элемент управления ALU выводить код для вычитания в ALU. Для остальных главный элемент управления выводит 1x, что указывает элементу управления ALU искать правильную операцию в битах func[5:0].
- person Erik Eidt; 22.02.2020
lw
иsw
? - person EOF   schedule 21.02.20206 bit opcode, 5 bit rs, 5 bit rt, 5 bit rd, 5 bit SHAMT, 6 bit ALUop
. Формат дляsw
иlw
с общей регистровой базой (I-тип) -6 bit opcode, 5 bit rs, 5 bit rt, 16 bit immediate
. Где вы видите ALUop в инструкциях загрузки/сохранения? - person EOF   schedule 22.02.2020lw
иsw
определенно не управляют АЛУ. АЛУ таким образом, потому что эти биты сразу поступают в АЛУ как операнд (Инструкция [15-0]). Скорее, ALUop из компонента Control представляет собой 2-битный селектор для мультиплексора, решившего использовать либо функциональное поле в инструкции, либо напрямую переопределить некоторые коды операций. - person EOF   schedule 22.02.2020