Sie sind auf Seite 1von 14

Expansin de cdigo de operacin

Expansin de cdigos de operacin

Considere una instruccin de (k+n) bits con un cdigo de operacin de k bits y una sola direccin de n bits. Esta instruccin permite 2k operaciones distintas y 2n direcciones distintas. Los mismos (k+n) pueden dividirse en un cdigo de operacin de (k-1) bits y una direccin de (n+1)bits, lo que implica la mitad de las operaciones y el doble de direcciones de memoria. Es posible establecer equilibrios entre los bits del cdigo de operacin y los bits de direcciones. Para ello se puede utilizar lo que se conoce como expansin o extensin de cdigos.

Ejemplo

Expansin de cdigos de operacin


Consideremos una mquina con instrucciones de 16 bits y las direcciones son de 4 bits. Esta situacin puede ser razonable para una mquina que posee 16 registros donde se efectan todas las operaciones. Un posible diseo sera un cdigo de operacin de 4 bits y tres direcciones en cada instruccin.

Ejemplo

Si los diseadores necesitan: 15 instrucciones de 3 direcciones 14 instrucciones de 2 direcciones 31 instrucciones de 1 direccin 16 instrucciones de cero direcciones

Pueden usar los cdigos de operacin del O al 14 como instrucciones de tres direcciones pero interpretar el cdigo de operacin 15 de forma distinta

Ejemplo
15 instrucciones de 3 direcciones

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

1111 16

Ejemplo
14 instrucciones de dos direcciones

El cdigo 15 indica que el cdigo de operacin esta contenido realmente en los bits del 8 al 15, no en los bits 12 a 15. Los bits 0 a 3 corresponden a una direccin, y los bits 4 a 7 corresponden a la otra direccin. En las instrucciones de dos direcciones tendremos 1111 en los bits 12 a 15, y en el resto de los bits correspondientes al cdigo de operacin del 8 al 11tendremos las distintas combinaciones para nuevos cdigos de operacin.

1111 0000 1111 0001 1111 0010 1111 0011 1111 0100 1111 0101 1111 0110 1111 0111 1111 1000 1111 1001 1111 1010 1111 1011 1111 1100 1111 1101

1 2 3 4 5 6 7 8 9 10 11 12 13 14

1111 1110 15 1111 1111 16

Ejemplo

Las instrucciones que tienen 1111en los bits ms a la izquierda y 1110 y 1111en los bits 8 a 11 sern tratadas de forma distinta.

Ejemplo
31 instrucciones de una direccin

1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

1110 1110 1110 1110 1110 1110 1110 1110 1110 1110 1110 1110 1110 1110 1110 1110

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

1111 1111 0000 17 1111 1111 0001 18 1111 1111 0010 19 1111 1111 0011 20 1111 1111 0100 21 1111 1111 0101 22 1111 1111 0110 23 1111 1111 0111 24 1111 1111 1000 25 1111 1111 1001 26 1111 1111 1010 27 1111 1111 1011 28 1111 1111 1100 29 1111 1111 1101 30 11111111 1110 31 1111 1111 1111

Ejemplo

Estas instrucciones se tratarn como si el cdigo de operacin est en los bits 4 a 15

Ejemplo
16 instrucciones de cero direcciones

El cdigo de operacin 1111 1111 1111 se interpreta como seal de que el cdigo de operacin esta en los bits 0 a 15, lo que da 16 instrucciones con cero direcciones.

1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Ejemplo

Los cdigos de operacin fueron creciendo. Las instrucciones de tres direcciones tienen un cdigo de operacin de 4 bits; las de dos direcciones tienen un cdigo de 8 bits, la de una direccin tienen un cdigo de 12 bits y las de cero tienen cdigos de 16 bits.

Expansin de cdigos de operacin


Con el uso de expansin de cdigos de operacin se puede minimizar la longitud promedio de las instrucciones codificando cada instruccin de forma que el nmero de bits requerido sea el mnimo. Por otro lado se puede hacer que todas las instrucciones tengan la misma longitud, asignando los cdigos de operacin ms cortos a las instrucciones que necesiten ms bits para especificar otras cosas. Se puede tambin minimizar el tamao promedio de las instrucciones escogiendo cdigos de operacin ms cortos para las instrucciones ms comunes y ms largos para las menos usadas.

Preguntas
1. Como se divide las instrucciones? R: Cdigo de Operaciones y Direcciones 2. En que bits del cache se almacena los cdigos de operacin en el ejemplo de las 15 instrucciones de 3 direcciones R: En los bits del 12 al 15

3. Si tenemos 8 bits en cdigo de operacin. Cuantos direcciones tenemos y cuantos bits por direccin?
R: Tenemos 2 direcciones y 4 bits por direccion

Fuentes
http://ldc.usb.ve/~rgonzalez/2005abriljulio/ci3815/Lamina sClase/FormatodeInstrucciones.pdf TANENBAUM- Organizacin de Computadoras

Das könnte Ihnen auch gefallen