p6 ej 2

p6 ej 2

de Joaquin Vidal Fiorella -
Número de respuestas: 3

Hola, primero tengo una duda de teorico. Entiendo que cuando la CPU es de 16 bits las instrucciones van de a 2. Es correcto decir entonces que cuando es de a 8 van de a 1, y cuando es de 32 de a 4? 

Con respecto al ejercicio, hay 8 registros, por lo que se podrian numerar con 3 bits, pero la CPU es de 16. Para esto veo dos soluciones, nombrar los registros con 4 bits y que el mas significativo quede siempre en 0, o nombrarlos con 3 bits y al final dejar los bits que falten en 0. Hay alguna que este bien y otra que este mal?

En respuesta a Joaquin Vidal Fiorella

Re: p6 ej 2

de Federico Rivero -
Buen día!

Hola, primero tengo una duda de teorico. Entiendo que cuando la CPU es de 16 bits las instrucciones van de a 2. Es correcto decir entonces que cuando es de a 8 van de a 1, y cuando es de 32 de a 4? 

No entiendo a qué te referís con esto, te animás reformularlo? 

Con respecto al ejercicio, hay 8 registros, por lo que se podrian numerar con 3 bits, pero la CPU es de 16. Para esto veo dos soluciones, nombrar los registros con 4 bits y que el mas significativo quede siempre en 0, o nombrarlos con 3 bits y al final dejar los bits que falten en 0. Hay alguna que este bien y otra que este mal?

Lo primero que decís es correcto, como hay 8 registros, bastan 3 bits para identificarlos. Lo segundo no entiendo de dónde viene, que la CPU sea de 16 bits no te impone un tamaño mínimo para la codificación de los registros, podés dejar 3 bits sin problemas. Ahora, si lo que estás diciendo es que en algunos formatos de instrucción, te sobran bits, entonces sí, los bits libres los podés ubicar como quieras, ejemplo, si tenés que codificar la instrucción ADD REG1, REG2, REG3, suponiendo que el OPCODE es de 4 bits, el formato podría ser:

OPCODE[4 bits]   |   REG1 [3 bits]   |   REG2 [3 bits]   |   REG3 [3 bits]   |   000 

es decir, en ese caso estoy rellenando al final de la tira con 3 ceros, pero estos formatos también son válidos:

OPCODE[4 bits]   |   000   |   REG1 [3 bits]   |   REG2 [3 bits]   |   REG3 [3 bits]   

OPCODE[4 bits]   |   REG1 [3 bits]  | 0  |   REG2 [3 bits]  | 0 |   REG3 [3 bits]   |  0 

U otros.

Lo importante sí es que el OPCODE tiene que estar en la misma posición siempre para todos los formatos, esto es así porque cuando la CPU lee de memoria la instrucción, no sabe qué instrucción es, y por lo tanto tiene que ir a una posición fija a decodificar el OPCODE, y una vez decodificado el OPCODE, se deduce el formato de la instrucción (sabiendo que es un ADD y conociendo el formato, sabemos dónde están ubicados los campos de los registros).

Si algo no quedó claro no dudes en preguntar de nuevo!

Saludos,

              Federico 



   


En respuesta a Federico Rivero

Re: p6 ej 2

de Joaquin Vidal Fiorella -
Gracias por la respuesta. Con l o primero me referia a que en la clase del ej 1 el profesor numera las instrucciones de 2 en 2.
En respuesta a Joaquin Vidal Fiorella

Re: p6 ej 2

de Federico Rivero -
Hola Joaquín!

Si podés vichate este hilo: https://eva.fing.edu.uy/mod/forum/discuss.php?d=217919 , ahí traté de explicar el tema con detalle.

Si algo no queda claro por favor no dudes en preguntar de nuevo.

Saludos!
Federico