Вы находитесь на странице: 1из 26

Formato de instrucciones

Material Elaborado por el Profesor Ricardo Gonzlez


A partir de Materiales de las Profesoras
Angela Di Serio
Mara Blanca Ibaez

Elementos de una instruccin de mquina


add rd rs rt
Funcin: rd rs+rt
add $8, $2, $3 => 00434020

000000

00010

00011

01000

00000

100000

Cada instruccin debe contener la informacin que necesita el CPU para su ejecucin.
Cdigo de operacin. Especifica la operacin a realizar (suma,resta, E/S, etc.), la operacin se
indica mediante un cdigo binario.
Referencia a operandos fuente: La operacin puede involucrar a uno o ms operandos fuentes, es
decir, operandos que son entradas para la instruccin.
Referencia al operando resultado. La operacin puede producir un resultado.
Referencia a la siguiente instruccin. Le indica al CPU de donde va a captar la siguiente
instruccin tras completarse la ejecucin de la instruccin actual. La siguiente instruccin a
captar esta en memoria principal. En la mayora de los casos, la siguiente instruccin sigue
inmediatamente a la instruccin en ejecucin. En tales casos no hay referencia explcita a la
siguiente instruccin. Cuando sea necesaria una referencia explcita, se debe suministrar la
direccin de memoria.

Como se analiza una instruccin en el CPU


add rd rs rt
Funcin: rd rs+rt
000000 00010 00011 01000 00000 100000
0 | 0 | 4 | 3 | 4 | 0 | 2 | 0

add $8, $2, $3 => 00434020

CPU

PC
1500

Memoria
Registro de Instruccin
0000 0000 0100 0011 0100 0000 0010 0000

add
Unidad de Control
+

Fetch

1497
1498
1499
1500
1501
1502
1503
1504
1505

0
100

02000800
00434020
00341100
001246895
13978184

Formato de instrucciones
El formato de la instrucciones es un conjunto
de especificaciones que indican como debe ser
interpretado el patrn de bits de una
instruccin de mquina para logra su ejecucin
dentro del computador.
El formato de la instruccin nos indica cual es
el cdigo de operacin y cuales los operandos
que la instruccin especifica, tanto explcita
como implcitamente.

Criterios para el diseo de los formatos


de las instrucciones
En algunas mquinas todas las instrucciones tienen la
misma longitud; en otras hay instrucciones con distintas
longitudes. La longitud de las instrucciones puede ser
menor, igual o mayor que el tamao de la palabra. Exigir
que todas las instrucciones posean la misma longitud hace
ms sencillo su decodificacin pero puede desperdiciarse
espacio.
En el momento que se disea una nueva computadora se
deben escoger los formatos de las instrucciones y para ello
se deben tomar en cuenta varios factores.

Criterios para el diseo de los formatos


de las instrucciones
Por un lado, si la nueva computadora llega a tener un exito
comercial,el conjunto de instrucciones podra sobrevivir 20
aos o ms. En este caso, la capacidad para aadir nuevas
instrucciones y aprovechar otras oportunidades que surjan
durante el tiempo de vida del diseo de ese computador
tiene gran importancia.
Adems, la eficiencia de un conjunto de instrucciones
depende en gran medida de la tecnologa con la que se va a
implementar. Con el pasar del tiempo, esta tecnologa
puede cambiar enormemente y hacer que ciertas decisiones
que se tomaron al momento del diseo, no parezcan luego
que fueron las mejores.

Criterios para el diseo de los formatos


de las instrucciones
Un criterio de diseo importante es el relativo al
tamao de las instrucciones. Un programa
conformado por n instrucciones de 16 bits ocupa
menos espacio de memoria que n instrucciones de
32 bits.
Si se minimiza mucho el tamao de las
instrucciones puede hacer que el proceso de
decodificacin y sobreposicin de instrucciones
sea ms complicado.

Criterios para el diseo de los formatos


de las instrucciones
Un motivo para disminuir el tamao de las instrucciones es
el ancho de banda de la memoria, es decir, el nmero de
bits que la memoria puede suplir por segundo. La velocidad
de los procesadores ha aumentado ms rapidamente que la
velocidad de las memorias, por lo tanto las memorias se
transforman en cuellos de botellas en el sistema. El hecho
de que las instrucciones sean ms cortas implica un
procesador ms rpido.
Dado que los computadores modernos pueden ejecutar
varias instrucciones en un ciclo de reloj, es imperativo traer
varias instrucciones en cada ciclo de reloj, por lo tanto, el
tamao de la instruccin es importante.

Criterios para el diseo de los formatos


de las instrucciones
Existe un compromiso entre el deseo de disponer un
conjunto de instrucciones de mquina potente y la
necesidad de ahorrar espacio. El programador desea ms
cdigos de operacin, ms operandos, ms modos de
direccinamiento y mayor rango de direcciones.
Al contar con ms cdigos de operacin y ms operandos se
facilita la tarea del programador ya que puede escribir
programas con menos instrucciones.
De igual forma, ms modos de direccinamiento tambien
facilitan la tarea del programador en la implementacin de
ciertas funciones como por ejemplo la manipulacin de
tablas, etc. Adems con el uso de mayor cantidad de
memoria y la memoria virtual, los programadores
demandan poder direccinar mayores rangos de memoria.

Criterios para el diseo de los


formatos de las instrucciones

+ 0
* 1

+
*
/

00
01
10
11

Otro criterio de diseo que debe tomarse en cuenta es el


espacio dentro de la instruccin que ser destinado para
expresar la operacin deseada. No puede haber una
mquina con 2n operaciones e instrucciones de menos de n
bits.
Otro criterio tiene que ver con el nmero de bits de los
campos de direccin. Si se tiene una definicin ms fina de
memoria (por bytes) se debe pagar el precio de tener
direcciones ms largas y por lo tanto instrucciones ms
largas. La definicin ms fina sera un direccionamiento por
bits y en el otro extremo tenemos un direccionamiento por
palabras muy largas.

Diseo de los formatos de las


instrucciones
Teniendo en cuenta estos criterios de diseo, vamos a estudiar
en que consiste un diseo de formato de instrucciones:
Un formato de instrucciones define la descripcin en bits de
una instruccin en trmino de las distintas partes que la
componen. Un formato de instruccin debe incluir un
cdigo de operacin, e implcitamente o explcitamente el
modo de direccinamiento para cada operando.
Por lo general se emplea ms de un formato de instruccin.
Los formatos de instruccin pueden ser de tamao fijo, es
decir, todas las instrucciones poseen la misma longitud o de
formato variable.

Diseo de los formatos de las


instrucciones
Debe existir un compromiso entre el nmero de cdigos de
operacin a emplear vs. capacidad de direccinamiento.
Cod Op.

Direccionamiento

Cod Op.

Direcc

En referencia a la definicin de los operandos se deben considerar


los siguientes factores:
El nmero de modos de direccinamiento.
El nmero de operandos.
El acceso a Registros frente al acceso a Memoria
Rango de direcciones

Diseo de los formatos de las


instrucciones
Hay conjuntos de instrucciones que presentan la propiedad
de ser ortogonales. En el caso de formato de instrucciones,
ste trmino indica que otros elementos o campos de una
instruccin son independientes del cdigo de operacin. Es
decir, la direccin de un operando se calcula siempre de la
misma manera independientemente del cdigo de
operacin.
Hay arquitecturas que trabajan con instrucciones con una
nica longitud (fija) y hay otras que adoptan formatos con
distintas longitudes.
El direccinamiento puede ser ms flexible con varias
combinaciones de referencias a registros y a memoria, as
como de modos de direccinamiento.

Formato de instrucciones de MIPS.

Los formatos ejemplos se muestran con valores en cada campo:


los campos de op y funct forman el cdigo de operacin (cada
uno 6 bits), el campo rs da un registro fuente (5 bits), rt es
tambin normalmente un registro fuente (5 bits), rd es el registro
destino (5 bits) shamt da la cantidad de desplazamiento.

Formato de instrucciones de MIPS.

Formatos de instruccion usados en la


68000 (solo primera palabra).

COP determina la instruccin


OPERANDO determina un dato sobre el que se opera.
REG selecciona un registro
TAM escoge entre byte, palabra y palabra larga.
MOD determina si OPERANDO es fuente o destino y su longitud
CUENTE y DATa son constantes
CONDICION especifica una de las 16 condiciones posibles a examinar
DESPLAZAMIENTO es un desplazamiento con signo para las bifurcaciones
VECTOR especifica donde hacer un desvio

Formatos de instruccion usados en la las


arquitecturas IBM 360/370/390/ Serie Z

Expansin de cdigos de operacin


Cod Op

k bits para
el cdigo de
operacin

Operando

n bits para
el operando

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.

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 efectuan todas las operaciones. Un posible
diseo sera un cdigo de operacin de 4 bits y tres direcciones en cada
instruccin.
Si los diseadores necesitan:
4 bits => 16 valores
15 instrucciones de 3 direcciones
15 + 14 + 31 + 16 = 76
14 instrucciones de dos direcciones
76 > 16
31 instrucciones de una direccin
16 instrucciones de cero direcciones

Expansin de cdigos de operacin


15 instrucciones de 3 direcciones
Se pueden utilizar los cdigos del 0 al 14 para las instrucciones de tres
direcciones y el cdigo de operacin 15 se interpreta de forma distinta.

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

Expansin de cdigos de operacin


14 instrucciones de dos direcciones

El cdigo 15 indica que el cdigo de operacin esta


contenido realmente en los bits del 8 al 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 11
tendremos 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

Expansin de cdigos de operacin

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.

Expansin de cdigos de operacin


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

1111 1110 0000


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

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

1111 1111 0000


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

17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

1111 1111 1111

Expansin de cdigos de operacin


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.
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.

1111 1111 1111 0000


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

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

Expansin de cdigos de operacin (resumen)


Formato Inicial

15 instrucciones de 3 direcciones
14instrucciones de dos direcciones
31 instrucciones de una direccin
16 instrucciones de cero direcciones

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 tambien 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.

Вам также может понравиться