[Taller 6][Partes d y e] carga de valor inmediato

[Taller 6][Partes d y e] carga de valor inmediato

de Agustina Chaer Butler -
Número de respuestas: 3

Hola,

Estoy haciendo las partes d y e del taller 6. No estoy encontrando solución para cargar un valor inmediato de 8 bits con la instrucción dada.

El formato de instrucción elegido utiliza 3 bits para la instrucción, 2 para identificar el registro y eso deja 3 bits para el valor inmediato.

El problema está en intentar cargar 8 bits inmediatos. Por lo que leí en este foro, se podría llegar a hacer multiples instrucciones e ir cargándolos por partes pero si tenemos el set de instrucciones fijo esto no sería solución. Que solución se podría dar para la parte d?

En respuesta a Agustina Chaer Butler

Re: [Taller 6][Partes d y e] carga de valor inmediato

de Federico Rivero -

Estimada:

Hay varias soluciones. La más simple en mi opinión es cargar el inmediato en un registro fijo (por ejemplo, que siempre cargue en A), eso deja 3 bits para el OPCODE y 5 bits libres. De esos 5 libres, 4 se utilizan para el inmediato y el último bit podría indicar si se carga en la parte alta o baja del registro.

Otras soluciones como utilizar varias instrucciones también son aceptables (si te fijás, a todas las demás instrucciones les sobra un bit, por lo cual se puede extender el tamaño del OPCODE)

Saludos!

         Federico

En respuesta a Federico Rivero

Re: [Taller 6][Partes d y e] carga de valor inmediato

de Valentina Pereira Ciaffone -
Hola!! Entiendo la solucion planteada pero me surgio la siguiente duda, como se que tamañano tienen mis registros. Porque por letra no se da que sean de 8 bits, porque podemos asumirlo? 

Otra duda que nos surgio fue por que en la parte b esto no representa un problema. Sabemos que en CISC las instrucciones tienen largo variable pero entendimos que estas no podrian superar los 8 bits(en este caso), por lo que tampoco seria codificable  ¿?.

Saludos!!
En respuesta a Valentina Pereira Ciaffone

Re: [Taller 6][Partes d y e] carga de valor inmediato

de Federico Rivero -
Hola!

El tamaño de los registros se infiere de cuando se dice que la CPU es de 8 bits. Ese dato te informa del ancho de los registros y el "camino de datos" de la CPU en general (tamaño operados ALU, bus de datos, etc).

Con respecto a la segunda pregunta, una CPU risc SI puede tener instrucciones dr tamaño mayor a la palabra de memoria, y de hecho es lo usual, porque en CISC, al ser las operaciones más complejas, típicamente precisan codificar más información en una instrucción. Por ejemplo, 8086 tiene instrucciones de entre 1 a 6 bytes, donde las más largas codifican 2 operandos inmediatos de 16 bits (!). Lo que sí es una restricción habitual es que todas las instrucciones deben codificarse en un múltiplo de byte, es decir, porque la unidad mínima en la interfaz con memoria suele ser 1 byte.

Saludos,
Federico