Anda di halaman 1dari 27

Tema 2.

Diseo del repertorio de


instrucciones
Arquitectura de
Computadores
I. T. Informtica de Gestin

Curso 2009-2010

Tema 2:

Transparencia: 2 / 53

Diseo del repertorio de instrucciones

ndice

Conceptos bsicos
Consideraciones sobre los lenguajes de alto nivel y su influencia
en el diseo del lenguaje mquina
Parmetros del repertorio de instrucciones
Formato de instrucciones
Tecnologa VLIW
Compatibilidad binaria
Compiladores
Ejemplos de repertorio de instrucciones
Bibliografa

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 3 / 53

Diseo del repertorio de instrucciones

Conceptos bsicos (I). Definiciones

Repertorio de instrucciones o juego de instrucciones: es el


conjunto de todas las rdenes que puede ejecutar un computador
Instruccin: es una operacin expresada mediante la codificacin
binaria de cadenas de unos y ceros y que es interpretada y ejecutada
por el computador
Instruccin mquina: es la cadena de ceros y unos que se
corresponde con una instruccin
Cdigo mquina: es la representacin como instrucciones mquina
de todo el repertorio de instrucciones
Lenguaje ensamblador: es el juego de instrucciones expresado
como un conjunto de mnemnicos en el que cada instruccin en
ensamblador se corresponde con una nica instruccin de lenguaje
mquina

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 4 / 53

Diseo del repertorio de instrucciones

Conceptos bsicos (II). Programacin

Proceso de creacin de un programa en un lenguaje de alto nivel


PROGRAM Ppal
(input, output)
VAR
num: integer;
ok: boolean;
BEGIN
readln(num);
.

Programa
fuente
(PASCAL)

Libreras
_____
_____
_____

_____
_____
_____

_____
_____
_____

Compilador
Ensamblador
Montador

Inicio:
add ax, 1000h
jc fin
inc si

Programa en ensamblador

_____
_____
_____

_____
_____
_____

Mdulo objeto

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Ejecutable

Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 5 / 53

Diseo del repertorio de instrucciones

Lenguajes de alto nivel y repertorio (I).


Almacenamiento de los operandos

Estudio del impacto de los lenguajes de alto nivel y de los servicios del
sistema operativo en el diseo del repertorio de instrucciones

TYPE vector = ARRAY [1..n] OF tipoelemento;


PROCEDURE IntercambioDirecto (VAR v: vector);
VAR i, j: integer;
elemento: tipoelemento;
BEGIN
FOR i:= 2 TO n DO
FOR j:= n DOWNTO i DO
IF v[j-i] > v[j] THEN
BEGIN
elemento := v[j-i];
v[j-i] := v [j];
v[j] := elemento
END
END;
Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Almacenar en registros
variables muy usadas

Operandos por
instruccin modificados

Datos y modos de
direccionamiento
empleados

Comparaciones y saltos
condicionales e
incondicionales
Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 6 / 53

Diseo del repertorio de instrucciones

Lenguajes de alto nivel y repertorio


(y II). Almacenamiento de los operandos

Estudio del impacto de los lenguajes de alto nivel y de los servicios del
sistema operativo en el diseo del repertorio de instrucciones
PROGRAM Principal (input, output);
VAR v: vector;
BEGIN
LeerVector ( v );
IntercambioDirecto ( v );
MostrarVector ( V );
writeln (Progama finalizado)
END.

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Llamadas a subrutinas
y funciones

Invocacin de
servicios del sistema
operativo

Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 7 / 53

Diseo del repertorio de instrucciones

Parmetros del repertorio (I)

Elementos a tener en cuenta al disear el repertorio de instrucciones


Dimensin de estudio
Almacenamiento de operandos en la
CPU
Nmero de operandos explcitos por
instruccin
Posicin del operando

Operaciones
Tipo y tamao de operandos

Responde a
Dnde se encuentran los operandos
adems de en memoria?
Cuntos operandos son designados
explcitamente en una instruccin
tpica?
Puede la ALU operar con operandos
situados en memoria?
Cmo se especifica la posicin de
memoria?
Qu operaciones se proporcionan en
el repertorio de instrucciones?
Cul es el tamao y el tipo de cada
operando?
Cmo se especifcia cada operando

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Tema 2:

Arquitectura de Computadores
I. T. Informtica de Gestin

Transparencia: 8 / 53

Diseo del repertorio de instrucciones

Parmetros del repertorio (II).


Alternativas a almacenar en CPU

Almacenamiento Operandos
temporal
explcitos por
instruccin ALU
Pila
0
Acumulador
1
Conjunto de
23
registros

Destino para
resultados

Procedimiento para acceder a los


operandos explcitos

Pila
Acumulador
Registros o
memoria

Introducir en / sacar de la pila


Cargar / almacenar el acumulador
Cargar / almacenar registros o
posiciones de memoria

Tipo de mquina
Pila

Ventajas
Modelo sencillo para evaluar
expresiones
Buena densidad de cdigo al ser
cortas las instrucciones

Acumulador

Minimiza los estados internos de


la mquina
Instrucciones cortas
Modelo ms general para
generacin de cdigo

Conjunto de registros

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Desventajas
Imposibildad de acceso aleatorio a
la pila
Dificultad de generacin de cdigo
eficiente
Dificultad de implementacin
eficiente
La mayor cantidad de trfico entre
acumulador-memoria
Instrucciones largas al tener que
nombrarse los registros

Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 9 / 53

Diseo del repertorio de instrucciones

Parmetros del repertorio (III).


Almacenamiento en memoria

Ventajas de las mquinas de registros de propsito general


(GPR)

Los registros permiten una ordenacin ms flexible que las pilas o


acumuladores para evaluar las expresiones
Los registros pueden emplearse para que contengan variables lo que
reduce el trfico de memoria, acelera el programa y aumenta la densidad
de cdigo

Los diseadores de compiladores prefieren registros no


dedicados
El nmero de registros depender de cmo los emplee el
compilador:

Los que requiera el compilador para evaluar expresiones


Los que requiera el compilador para pasar parmetros
Los que requiera el compilador para ubicar variables

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Tema 2:

Arquitectura de Computadores
I. T. Informtica de Gestin

Transparencia: 10 / 53

Diseo del repertorio de instrucciones

Parmetros del repertorio (IV).


Almacenamiento en memoria

Clasificacin de la mquinas GPR. Se basa en las caractersticas


de los operandos para operaciones de la ALU

Nmero de operandos de la ALU, 2 3


Nmero de operandos direccionados en memoria en la ALU de 0 a 3

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 11 / 53

Diseo del repertorio de instrucciones

Parmetros del repertorio (V).


Direccionamiento de memoria

Cmo se interpreta una direccin de memoria? Byte, media palabra,


palabra, doble palabra

Existen dos convenios para clasificar los bytes de una palabra. Se


refieren al lugar que ocupa el byte cuya direccin es xxxx00

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Tema 2:

Arquitectura de Computadores
I. T. Informtica de Gestin

Transparencia: 12 / 53

Diseo del repertorio de instrucciones

Parmetros del repertorio (VI).


Direccionamiento de memoria

En algunas mquinas los accesos a objetos mayores de un byte


deben estar alineados

Un objeto de tamao s bytes estar alienado en el byte de direccin A


si:
A mod s = 0

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 13 / 53

Diseo del repertorio de instrucciones

Parmetros del repertorio (VII).


Direccionamiento de memoria

La alineacin es importante ya que un acceso no alineado tendr


mltiples referencias a una memoria alineada

Incluso en mquinas que no requieren alineacin los accesos


alineados se ejecutan ms rpidamente

Ejemplos de direcciones alineadas y no alineadas para diferentes


tamaos de los objetos direccionados:

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Tema 2:

Arquitectura de Computadores
I. T. Informtica de Gestin

Transparencia: 14 / 53

Diseo del repertorio de instrucciones

Parmetros del repertorio (VIII).


Modos de direccionamiento

Indican la manera de acceder a un dato por parte de una


instruccin

Inmediato: se encuentra en el cdigo mquina de la propia instruccin.


Directo a registro: el dato se encuentra en un registro que se especifica
en el cdigo mquina de la instruccin
Directo a memoria: la direccin del dato se encuentra codificada en l
cdigo mquina de la instruccin
Relativo: se especifica un desplazamiento con respecto a un registro. Por
tanto la direccin final ser la suma de ambos valores
Indirecto: la direccin especificada por el cdigo mquina de la
instruccin no es el dato sino la direccin en la que se debe buscar
Implcito: no se da ningn tipo de indicacin en el cdigo mquina de la
instruccin con respecto a la ubicacin del dato ya que se trabaja con uno
fijo

El nombre del modo de direccionamiento puede cambiar segn


el fabricante

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 15 / 53

Diseo del repertorio de instrucciones

Parmetros del repertorio (IX). Modos


de direccionamiento
Ejemplo de los modos de direccionamiento y el cdigo mquina
asociado en el i80x86

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 16 / 53

Diseo del repertorio de instrucciones

Parmetros del repertorio (X).


Modos de direccionamiento

Influencia de los modos de direccionamiento:

El modo de direccionamiento de una instruccin influye en el nmero de


ciclos que tardar en ejecutarse
Los modos de direccionamiento permitidos influyen en el ciclo de reloj de
la mquina
El conjunto de los modos de direccionamiento que se permiten en una
determinada mquina influir en la complejidad del hardware

Dependencia de los modos de direccionamiento:

La codificacin de los modos de direccionamiento depender de la


correlacin existente entre stos y los cdigos de operacin
La codificacin de los modos de direccionamiento depender del rango
permitido para los diferentes modos de direccionamiento

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 17 / 53

Diseo del repertorio de instrucciones

Parmetros del repertorio (XI).


Frecuencia de los modos de direcc.

Las grficas sobre la frecuencia de uso del modo de direccionamiento


estn sacadas de un VAX

Frecuencia del modo de


direccionamiento
60
40
20
0

43

39
17

55
24
3

11

16

32

40

1 6 1

Inmediato Directo a Relativo a Relativo a Indirecto


memoria registro
registro
ndice
base
TeX Spice GCC

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 18 / 53

Diseo del repertorio de instrucciones

Parmetros del repertorio (XII).


Frecuencia de los modos de direcc.

Las grficas sobre la frecuencia de uso de operaciones que emplean


datos inmediatos estn sacadas de un VAX

Porcentaje de operaciones que


emplean datos inmediatos
100
80
60
40
20
0

94
83 92
38

52 49

26 23

Cargas

Comparaciones

TeX

Spice

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

69

Operaciones de
la ALU

GCC
Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 19 / 53

Diseo del repertorio de instrucciones

Parmetros del repertorio (XIII).


Tamao de los operandos

Mtodos para designar a un operando:

Codificar el operando en el cdigo de la operacin


Anotar el operando con identificadores que sern
interpretados por el hardware (tipo de operando y
operacin)
Distribucin de acceso a datos segn

El tipo de operando indica su tamao


Tipos de operando ms frecuentes:

el tamao de los operandos


100
80
60
40
20
0

Byte
Media palabra (16 bits)
Palabra (32 bits)
Coma flotante en simple precisin (32 bits)
Coma flotante en doble precisin (dos palabras)
Carcter (byte) en ASCII o EBCDIC
BCD empaquetado y desempaquetado

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Tema 2:

91

89
66
34
0

0 0 4

Doble
palabra

Palabra
TeX

Spice

Media
palabra

11

0 9

Byte

GCC

Arquitectura de Computadores
I. T. Informtica de Gestin

Transparencia: 20 / 53

Diseo del repertorio de instrucciones

Parmetros del repertorio (XIV).


Juego de instrucciones

Todas las mquinas generalmente proporcionan un repertorio completo


para las instrucciones aritmtico-lgicas, de transferencia de datos y de
control
El soporte que proporciona el repertorio de instrucciones para las
funciones del sistema varia grandemente de unas arquitecturas a otras
El soporte a operaciones de coma flotante, decimales y de cadenas puede
variar de no existir a tener un amplio conjunto de operaciones especiales

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

10

Tema 2:

Transparencia: 21 / 53

Diseo del repertorio de instrucciones

Parmetros del repertorio (XV).


Juego de instrucciones

Instrucciones de control de flujo


del programa
Modifican las secuencia de
ejecucin de las instrucciones

Existen bsicamente cuatro tipos


de control
Saltos condicionales
Saltos incondicionales
Llamadas a procedimientos
Retorno de procedimientos

La direccin de un salto debe


especificarse siempre

La forma de especificar el salto es


mediante direccionamiento relativo
al contador de programa

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Frecuencia de uso de cada tipo de


bifuracin
100
80
60
40
20
0

78
66 75
16 13 10

18 12 12

Llamada / retorno

Salto
incondicional

TeX

Spice

Salto condicional

GCC

Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 22 / 53

Diseo del repertorio de instrucciones

Parmetros del repertorio (XVI).


Juego de instrucciones

Principales mtodos para evaluar las condiciones de salto:

En un registro de indicadores: el estado de la condicin se


almacena en un bit del registro de indicadores por la instruccin que lo
genera.

En un registro de propsito general: la instruccin que genera la


condicin pone un uno o un cero en un registro de propsito general

Ventaja: Solamente se emplea un bit


Inconveniente: problemas de dependencia en superescalares

Ventaja: Simplifica la dependencia


Inconveniente: Se necesita un registro completo

Utilizando una instruccin de comparacin y salto: la instruccin


que genera el estado y la que salta es la misma

Ventaja: todo se resuelve en una misma instruccin


Inconveniente: Puede aumentar el CPI de la instruccin

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

11

Tema 2:

Transparencia: 23 / 53

Diseo del repertorio de instrucciones

Parmetros del repertorio (XVII).


Juego de instrucciones

Comparaciones ms empleadas en los saltos condicionales:


Frecuencia de diferentes tipos de
comparaciones en saltos condicionales
100
80
60
40
20
0

72 75
25
0

89

25

11

LT / GE

GT / LE
TeX

Spice

EQ /NE

GCC

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 24 / 53

Diseo del repertorio de instrucciones

Parmetros del repertorio (XVIII).


Juego de instrucciones

Frecuencia de los diferentes tipos de salto:

Direccin de salto, salto efectivo y total


bifurcaciones en %
80
60
40
20
0

54 51 54
17

70 63 63

31 26

Saltos hacia
atrs

Saltos efectivos

TeX

Spice

Total
bifurcaciones

GCC

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

12

Tema 2:

Transparencia: 25 / 53

Diseo del repertorio de instrucciones

Parmetros del repertorio (y XIX).


A tener en cuenta en el diseo

Resumen de los parmetros a tener en cuenta para el diseo del


repertorio de instrucciones de un computador

Parmetro 1: almacenamiento de operandos en la CPU

Parmetro 2: nmero de operandos explcitos en una instruccin

Parmetro 3: Modos de direccionamiento

Parmetro 4: Tipo y tamao de los operandos

Parmetro 5. Conjunto de instrucciones que se tendrn en cuenta en el


repertorio

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 26 / 53

Diseo del repertorio de instrucciones

Formato de instrucciones (I).


Alternativas de diseo

Se debe decidir si se desea crear un juego de instrucciones CISC


o uno RISC

CISC: Complex Instruction Set


Computer

RISC: Reduced Instruction Set


Computer

Muchos modos de
direccionamiento

Pocos modos de
direccionamiento

Muchos tipos de instrucciones

Pocas instrucciones y muy


sencillas

Instrucciones que realizan


operaciones muy complejas
aunque se empleen poco

Pocos formatos de instruccin


y muy regulares

Ej. I80x86, M680x0

Ej. SPARC

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

13

Tema 2:

Transparencia: 27 / 53

Diseo del repertorio de instrucciones

Formato de instrucciones (II).


Codificacin de las instrucciones

Se debe tener en cuenta:

El tamao del cdigo generado tiene una relacin directa con el nmero
de accesos a memoria y por lo tanto con el tiempo de ejecucin
El nmero de instrucciones y el tipo influye en la decodificacin y por lo
tanto, nuevamente en el tiempo de ejecucin
La facilidad de programacin de la mquina

Equilibrar en el diseo:

El nmero de registros y el de los modos de direccionamiento permitidos


El tamao de las instrucciones. Si son mltiplos de la palabra del
computador mucho mejor
Que los accesos a memoria sean por palabras o lneas de cache

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Tema 2:

Arquitectura de Computadores
I. T. Informtica de Gestin

Transparencia: 28 / 53

Diseo del repertorio de instrucciones

Formato de instrucciones (III).


Codificacin de las instrucciones

Una instruccin debe contener:

El cdigo de la instruccin: indica qu operacin va a realizar la


instruccin
Operandos fuente: sobre qu valores va a operar la instruccin
Operando destino: dnde dejar la instruccin el resultado de la
operacin
Direccin de la instruccin siguiente: dnde se encuentra la siguiente
instruccin del programa. Normalmente el direccionamiento de las
instrucciones es implcito

Se debe tener en cuenta lo siguiente:

Los repertorios CISC como el del i80x86 suelen hacer que uno de los
operandos sea fuente y destino de la operacin
Los repertorios RISC suelen emplear tres operandos en la ALU dos fuente
y uno destino

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

14

Tema 2:

Transparencia: 29 / 53

Diseo del repertorio de instrucciones

Formato de instrucciones (IV).


Codificacin de las instrucciones

Caractersticas generales:

Los formatos son sistemticos: los campos suelen ir en posiciones fijas


El cdigo de operacin: o su extensin es el primero de los campos
Son mltiplos de la palabra del computador: para optimizar los
accesos a memoria

Alternativas en cuanto a formato de instrucciones:

Formato fijo: emplea el mismo formato para todos los tipos de


instruccin. Es muy difcil de implementar
Formato variable: presenta el cdigo de operacin, extensiones de
cdigo, nmero variable de operandos y de modos de direccionamiento
Formato mixto: emplea dos o tres formatos fijos para encajar todas las
instrucciones
Formato ortogonal: cualquier instruccin admite todos los tipos de
operandos y todos los modos de direccionamiento

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Tema 2:

Arquitectura de Computadores
I. T. Informtica de Gestin

Transparencia: 30 / 53

Diseo del repertorio de instrucciones

Formato de instrucciones (y V).


Codificacin de las instrucciones

Consejos a tener en cuenta en el diseo:

Equilibrio. Intentar que estn razonablemente equilibrados los modos de


direccionamiento y el nmero de registros
Instrucciones mltiplos de la palabra del computador. Lo ideal que
una instruccin ocupe una palabra, pero es muy difcil
Tamao del cdigo. Dependiendo del formato de las instrucciones la
codificacin de un programa ser ms o menos extensa con lo que tiene
una influencia directa en el tiempo de ejecucin
Decodificacin. Cuanto ms complejo sea el formato de las instrucciones
ms se tardar en decodificar la instruccin por lo que tambin influye en
el tiempo de ejecucin
Programacin. Dependiendo de los modos de direccionamiento
permitidos y de los operandos ser ms o menos sencilla de programar
Compilador. La generacin del cdigo la lleva a cabo el compilador por lo
que el formato de las instrucciones debe facilitar el proceso

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

15

Tema 2:

Transparencia: 31 / 53

Diseo del repertorio de instrucciones

Tecnologa VLIW (I)

La tecnologa RISC ha favorecido la segmentacin en los


procesadores, permitiendo que varias instrucciones se ejecuten
simultneamente
La ejecucin simultnea trae consigo el problema de las
dependencias entre las instrucciones. Dos alternativas:

Detectar las dependencias y reordenar el cdigo en tiempo de ejecucin


mediante hardware especfico en el procesador
Detectar las dependencias y reordenar el cdigo en tiempo de
compilacin

La tecnologa VLIW se basa en la segunda alternativa

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Tema 2:

Arquitectura de Computadores
I. T. Informtica de Gestin

Transparencia: 32 / 53

Diseo del repertorio de instrucciones

Tecnologa VLIW (II)

Las mquinas VLIW cuenta con un compilador que agrupa diversas


operaciones sencillas e independientes entre s en la misma palabra
de instruccin. Cuando la unidad de control las decodifica, las divide
en sus operaciones componentes y las despacha en unidades
funcionales independientes
El compilador es quin empaqueta el cdigo en operaciones
independientes
Dado que no hay hardware dedicado a la deteccin de las
dependencias se pueden tener mejores unidades funcionales y se
mejora la velocidad de reloj
Inconveniente: un compilador trabaja slo con una arquitectura.
(CISC o RISC)

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

16

Tema 2:

Transparencia: 33 / 53

Diseo del repertorio de instrucciones

Tecnologa VLIW (y III)


Cach
de Instr.

Unidad
de Fetch

VLIW

nica Instruccin multioperacin

EU

EU

EU

Banco de Registros

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 34 / 53

Diseo del repertorio de instrucciones

Compatibilidad binaria (I)

La traduccin binaria es la tcnica empleada para cambiar el cdigo


ejecutable de un programa asociado a una arquitectura y a un
sistema operativo en otro cdigo ejecutable diferente para otra
arquitectura y sistema operativo

La mejor forma de aprovechar al mximo las nuevas capacidades de


una arquitectura es portar y recompilar el programa con compiladores
nativos. Con frecuencia esto no es posible

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

17

Tema 2:

Transparencia: 35 / 53

Diseo del repertorio de instrucciones

Compatibilidad binaria (y II)

Existen diferentes tcnicas para realizar la traduccin binaria:

Intrprete software. Es un programa que lee instruccin a instruccin el


programa de la vieja arquitectura y lo traduce a la nueva. No son muy
rpidos
Emulador de microcdigo. Similar al intrprete software pero lleva
hardware aadido para ayudar a decodificar ms rpidamente las
instrucciones antiguas. Solamente funciona en mquinas que emplee
microcdigo
Traductores binarios. Es una secuencia de instrucciones de la nueva
arquitectura que reproduce el comportamiento de las de un programa
antiguo. Parte de la informacin de estado de la vieja arquitectura se
almacena en registros de la nueva
Compiladores nativos. La ms rpida, consiste en recompilar el
programa antiguo

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Tema 2:

Arquitectura de Computadores
I. T. Informtica de Gestin

Transparencia: 36 / 53

Diseo del repertorio de instrucciones

Compiladores (I)

Compilador: es una aplicacin que realiza el proceso de traducir un


programa fuente, escrito en un lenguaje de alto nivel, a un programa
objeto en cdigo mquina y listo para ejecutarse en el ordenador, con
poca o ninguna preparacin adicional (PSP)
Tipos de compiladores:

Ensamblador. Traduce de un lenguaje sencillo, el ensamblador, a


lenguaje mquina
Compilador cruzado. Traduce de un lenguaje mquina a otro objeto para
una mquina diferente a la que se est compilando
Compilador de una o varias pasadas. Necesita uno o varios pasos para
poder general el cdigo objeto
Compilador incremental. Solamente se compilan los errores corregidos
tras descubrilos
Decompilador. Realiza el proceso inverso del compilador

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

18

Tema 2:

Transparencia: 37 / 53

Diseo del repertorio de instrucciones

Compiladores (II).
Estructura de un compilador
Anlisis
Fuente

Compilador

Escner
Tablas
FOR

Parser
Sntesis
Preparacin
para la
generacin
del cdigo
Objeto

Tabla de
Smbolos

Tiras
Constantes

Generacin
de cdigo

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 38 / 53

Diseo del repertorio de instrucciones

Compiladores (III). Ejemplo de


proceso de compilacin

Sentencia fuente a compilar:

Velocidad := VelocidadInicial + Aceleracion x Tiempo;

El escner o explorador dar la siguiente salida:

Variable = Variable + Variable x Variable Delimitador

El parser o reconocedor dar la siguiente salida


<sentencia>
<sentencia asignacin>
<delimitador>
<variable>
<expresin>
<expresin> + <trmino>
<expresin>
<trmino> <trmino>
<factor>
<factor>
<factor>
Variable
=
Variable + Variable x
Variable
Anlisis sintctico: la sentencia es correcta en pascal

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

19

Tema 2:

Transparencia: 39 / 53

Diseo del repertorio de instrucciones

Compiladores (IV). Ejemplo de


proceso de compilacin

La preparacin para la generacin de cdigo generada por el


parser es:
Variable Variable Variable Variable x + =
Se supone que se ha empleado la notacin polaca inversa

Finalmente el generador de cdigo dara las siguientes


instrucciones en lenguaje mquina (expresadas en lenguaje
ensamblador del i80x86:
MOV AL, Aceleracion
MUL Tiempo
ADD AL, VelocidadInicial
MOV Velocidad, AL

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Tema 2:

Arquitectura de Computadores
I. T. Informtica de Gestin

Transparencia: 40 / 53

Diseo del repertorio de instrucciones

Compiladores (V). Dependencia de


cada parte del compilador

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

20

Tema 2:

Transparencia: 41 / 53

Diseo del repertorio de instrucciones

Compiladores (VI). Optimizaciones de


cdigo
Nombre de la optimizacin
Integracin de procedimientos
Eliminacin global de
subespresiones comunes
Reduccin de la altura de la pila
Movimiento de cdigo
Reduccin de potencia
Planificacin de la
segmentacin

Explicacin
Decide si se expanden o no los procedimientos
Sustituye dos instancias del mismo clculo por simple copia
Reorganiza las expresiones matemticas para minimizar los
recursos necesarios para evaluarla
Elimina cdigo de un bucle que calcula el mismo valor en
cada iteracin del bucle
Sustituir la multiplicacin por sumas y desplazamientos, la
divisin por restas y desplazamientos
Reordenar las instrucciones para mejorar el rendimiento de
la segmentacin

El empleo de las optimizaciones en el cdigo puede redundar en una


mejora del rendimiento entre el 60% y el 80%

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 42 / 53

Diseo del repertorio de instrucciones

Compiladores (VII). Optimizaciones


de cdigo

Ejemplo de integracin de procedimientos:

PROCEDURE TablaVacia (VAR T: Tabla)


BEGIN
T.NumeroElementos := 0
END;

El procedimiento es muy sencillo


para expandirlo
Con integracin:
MOV T.NumeroElementos, 0

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Sin integracin:
TablaVacia PROC
MOV T.NumeroElementos, 0
RET
TablaVacia ENDP
.
.
.
CALL TablaVacia
Arquitectura de Computadores
I. T. Informtica de Gestin

21

Tema 2:

Transparencia: 43 / 53

Diseo del repertorio de instrucciones

Compiladores (VIII). Optimizaciones


de cdigo

Eliminacin global de subexpresiones comunes:

.
.
Precio := Cantidad x PUnidad;
Descuento :=
Cantidad x PUnidad x Tanto;
.
..
Precio := Cantidad x PUnidad;
.
.

.
.
Temp0 := Cantidad x PUnidad;
Descuento := Temp0 x Tanto;
.
.
.
Temp0 := Cantidad x PUnidad;
.
.

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 44 / 53

Diseo del repertorio de instrucciones

Compiladores (IX). Optimizaciones de


cdigo

Reduccin de la altura de la pila:

Energia := EnergiaInicial + Masa x Exp(Aceleracion, 2);

Energia EnergiaInicial Masa Aceleracion Aceleracion x x + =

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

22

Tema 2:

Transparencia: 45 / 53

Diseo del repertorio de instrucciones

Compiladores (X). Optimizaciones de


cdigo

Movimiento de cdigo:
MOV CX, 4
MOV SI, 0
Bucle:
MOV AH, 2
MOV DL, Cadena[SI]
INT 21h
INC SI
LOOP Bucle

MOV CX, 4
MOV SI, 0
MOV AH, 2
Bucle:
MOV DL, Cadena[SI]
INT 21h
INC SI
LOOP Bucle

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 46 / 53

Diseo del repertorio de instrucciones

Compiladores (XI). Optimizaciones de


cdigo

Reduccin de potencia:

MOV AL, Pi
MUL Radio
MUL 2
MOV Perimetro, AL

MOV AL, Pi
MUL Radio
SHL AL, 1
MOV Perimetro, AL

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

23

Tema 2:

Transparencia: 47 / 53

Diseo del repertorio de instrucciones

Compiladores (y XII). Optimizaciones


de cdigo

Planificacin de la segmentacin:

ADD AL, BL

ADD AL, BL

MOV CL, AL

XOR DX, DX

XOR DX, DX

MOV CL, AL

INC DL

INC DL

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 48 / 53

Diseo del repertorio de instrucciones

Ejemplos de repertorio de
instrucciones (I). Alpha vs. i80x86

Caractersticas generales de la arquitectura Alpha

Arquitectura de 64 bits
Ejecucin paralela de instrucciones
Configuracin multiprocesador
Alta velocidad de reloj
No orientado a un sistema operativo concreto
No orientado a un lenguaje de alto nivel en concreto

Caractersticas generales de la arquitectura i80x86

Arquitectura de 16 bits que ha evolucionado a 32


Compatibilidad binaria
Repertorio de instrucciones tipo CISC
Dificultad para adaptarse a la ejecucin segmentada
Dificultad para adaptarse a la ejecucin superescalar

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

24

Tema 2:

Transparencia: 49 / 53

Diseo del repertorio de instrucciones

Ejemplos de repertorio de
instrucciones (I). Alpha

Parmetro 1: almacenamiento de operandos en la CPU

Parmetro 2: nmero explcito de operandos por instruccin

32 registros de propsito general para enteros


32 registros de propsito general para coma flotante

3 operandos

Parmetro 3: modos de direccionamiento

Modelo de ejecucin registro-registro


Se exige alineamiento
Ordenamiento datos configurable. Por omisin es little-endian
nico modo de direccionamiento a memoria el relativo a registro
Permite que uno de los tres operandos sea un dato inmediato

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 50 / 53

Diseo del repertorio de instrucciones

Ejemplos de repertorio de
instrucciones (II). Alpha

Parmetro 4: tipo y tamao de los operandos

Instrucciones de proceso emplean datos de 64 bits


Instrucciones de acceso a memoria permiten datos ms pequeos: byte,
word (16), longword (32)
Emplea la extensin de signo para operar con datos menores de 64 bits
Los tipos permitidos son entero con y sin signo y los formatos para coma
flotante del estndar IEEE y del VAX

Parmetro 5: conjunto de instrucciones

Instrucciones de acceso a memoria


Instrucciones de control
Instrucciones de proceso
Instrucciones de coma flotante
Instrucciones miscelneas: llamadas al sistema, gestin de memoria,
Instrucciones multimedia

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

25

Tema 2:

Transparencia: 51 / 53

Diseo del repertorio de instrucciones

Ejemplos de repertorio de
instrucciones (III). i80x86

Parmetro 1: almacenamiento de operandos en la CPU

Parmetro 2: nmero explcito de operandos por instruccin

8 registros de propsito casi general para enteros


8 registros de propsito general para coma flotante en forma de pila

2 operandos. Uno hace las veces de fuente y destino

Parmetro 3: modos de direccionamiento

Modelo de ejecucin registro-memoria


Se recomienda el alineamiento aunque no se exige
Ordenamiento es little-endian
Modos de direccionamiento: inmediato, relativo a registro, directo a
memoria, indirecto a registro, implcito
Los operandos de coma flotante siempre son la pila

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

Tema 2:

Transparencia: 52 / 53

Diseo del repertorio de instrucciones

Ejemplos de repertorio de
instrucciones (y IV). i80x86

Parmetro 4: tipo y tamao de los operandos

Trabaja con tamaos de byte, palabra (16) y doble palabra (32)


El coprocesador matemtico emplea adems enteros de 64 y 80 bits y
coma flotante de 32, 64 y 80 bits
Los tipos permitidos son entero con y sin signo y los formatos para coma
flotante del estndar IEEE

Parmetro 5: conjunto de instrucciones

Instrucciones de transferencia de datos


Instrucciones de control
Instrucciones de proceso
Instrucciones de coma flotante
Instrucciones de manejo de cadenas
Instrucciones miscelneas: llamadas al sistema, gestin de memoria,
Instrucciones multimedia: MMX, MMX2, SSE, 3DNow,

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

26

Tema 2:

Transparencia: 53 / 53

Diseo del repertorio de instrucciones

Bibliografa

Estructura y diseo de computadores


David A. Patterson y John L. Hennessy. Revert, 2000
Captulo 3

Arquitectura de computadores. Un enfoque cuantitativo


John L. Hennessy y David A. Patterson. Mc Graw Hill, 3 ed, 2002
Captulos 3 y 4 y apndices B, C, D y E

Estructura de computadores.
Jos M. Angulo. Paraninfo, 1996
Captulo 2 y 9

Departamento de Automtica
rea de Arquitectura y Tecnologa de Computadores

Arquitectura de Computadores
I. T. Informtica de Gestin

27

Anda mungkin juga menyukai