Lógica de control principal de MIPS

En el libro de Patterson & Hennessy,

Esto es para estas 4 instrucciones, si necesito implementar instrucciones como andi, addi, ori, j, etc., ¿las agrego a esta tabla? O hago otra cosa?

ACTUALIZAR

Si agrego, creo que la parte difícil es el ALUOp. Solo hay 2 bits, creo que necesito las siguientes operaciones. Y agregué cuál es mi idea de una implementación. ¿Cuál es la implementación correcta de MIPS?

instr    ALUOp
--------+------
AND      0000
OR       0001
add      0100
sub      0101
slt      0111
funct    1xxx

Donde el MSB (bit 3) es un bit de "ver función" (instrucciones de tipo R). el bit 2 será el bit "usar ALU". Luego, los últimos 2 son los bits de operación. Vi varias implementaciones, donde hay más instrucciones como NOR, XOR, shift, etc. ¿No hay un estándar o un estándar más utilizado?

Otra pregunta más de tarea.
@Brian Carlton ¿Qué tiene de malo eso?
Supongo que este no es mi punto fuerte :) con poca ayuda útil en la escuela...

Respuestas (2)

Si el hardware definido en su ruta de datos admite las nuevas instrucciones sin agregar nuevas señales de control, entonces sí, ¡simplemente continúe y extienda la tabla a la derecha!

Respuesta aumentada por pregunta aumentada:

La respuesta depende completamente de la ruta de datos y de lo que significan sus señales de control... Supongo que los bits ALUOp son, respectivamente, la señal de selección para un MUX 2x1, cada uno de los cuales, a su vez, selecciona las entradas de operandos a su ALU. De esa forma pueden usarse para seleccionar un valor de un registro o el inmediato de la instrucción misma. Entonces, para instrucciones inmediatas, probablemente elegirá la entrada "registro" para el operando 1 y la entrada "inmediata" para el operando 2...

Ok, ahora, ¿cuáles deberían ser los bits ALUOp para instrucciones inmediatas? ¿Uso el 11 sin usar?
@jiewmeng, para cualquier pregunta, debe preguntar exactamente qué necesita que se le explique. Si luego tiene más preguntas completas, debe formularlas como otra pregunta. Tómese el tiempo para formular exactamente lo que está buscando, a menudo ese proceso responderá a la mayoría de las preguntas.
@Kortuk, lo tendré en cuenta... a veces me apresuro a hacer preguntas. También actualicé mi qn
@jiewmeng, para que este sitio obtenga excelentes respuestas, necesita excelentes preguntas. Solo consejos para hacer preguntas aquí.

Evité este problema agregando 2 líneas de bits más a ALUOp. Entonces, ahora todas las instrucciones de tipo I que no pudieron ser decodificadas por el bloque ALUContol, tenían 2 bits ALUOp adicionales y ahora podía decodificar 24 instrucciones más.