Académique Documents
Professionnel Documents
Culture Documents
Equipo 7
Temas a tratar
Caractersticas de la ejecucin de instrucciones O Operaciones O Operando O Llamadas a procedimientos O Consecuencias Utilizacin de un amplio banco de registros O Ventanas de registros O Variables globales O Un amplio banco de registros frente a una cache Optimizacin de registros basada en el compilador
computadora que ha evolucionado de manera mas visibles es el de los lenguajes de programacin. O Conforme el coste de hardware disminuye, el coste de software aumenta.
Operaciones
Las sentencias de asignacin predominan, lo cual indica que el sencillo movimiento de datos tiene mucha importancia. Tambin prodominan las sentencias condicionales (IF, LOOP), son implementadas en lenguaje maquina con alguna instruccin.
Operaciones
Estos repertorios son instructivos para el diseador del repertorio de instrucciones maquina, porque la dicen que instrucciones se dan mas a menudo y por lo tanto deben ser implementadas de manera optima.
Operaciones
O NO revelan que instrucciones consumen
mas tiempo de ejecucin. O Los programas de Patterson se compilaron en VAX, PDP-11 y Motorola 68000 para determinar el numero medio de instrucciones y referencias de memoria por cada tipo de sentencia.
Operaciones
Operaciones
O En la columna 2 y 3 muestran la frecuencia
relativa de aparicin de HLL en varios programas. O En la columna 4 y 5 se multiplico el numero de instrucciones maquina generadas por el compilador, adems se normalizaron. O En la columna 4 y 5 se multiplico la frecuencia de aparicin de cada tipo de sentencia por el numero relativo de referencias a memoria originado por esa sentencia.
Operandos
En el estudio de Patterson, tambin se consider se consider la frecuencia dinmica de aparicin de distintas clas es de variables.
Operandos
Este estudio analizo el comportamiento dinmico de los programas en HLL de manera independiente de la arquitectura.
Llamadas a procedimientos
Las llamadas y retornos de procedimientos son muy importantes para los programas en HLL.
Llamadas a procedimientos
La siguiente tabla indica que son las operaciones que consumen mas tiempo en programas en HLL compilados.
Llamadas a procedimientos
O El estudio de Tanenbaum encontr que el
98% de los procedimientos llamados dinmicamente se les pasaban menos de 6 argumentos y que el 92% de ellos usaban menos de 6 variables escalares locales. O El estudio de RISC de Berckley presento resultados parecidos. Estos resultados muestran que el numero de palabras necesarias por cada activacin de un procedimiento no es muy grande.
Consecuencias
O 3 elementos que caracterizan a las
arquitecturas RISC:
O Usar un gran nmero de registros, o un
compilador que optimice el tratamiento de stos. O Prestar atencin al diseo de los cauces de instrucciones. O Repertorio de instrucciones simplificado.
de asignacin en programas escritos en HLL. O Hay un nmero significativo de accesos a operandos por cada sentencia de HLL.
almacenamiento en registros es que stos constituyen el dispositivo de almacenamiento ms rpido disponible. O El banco de registros fsicamente es pequeo y se encuentra en el mismo chip que la ALU y la unidad de control. Emplea direcciones ms cortas que las de la cache y la memoria.
que los operandos a los que se accede con mayor frecuencia se encuentren en registros y que se minimicen las operaciones registro-memoria.
Confiar al compilador la maximizacin del uso de los registros. El compilador intentar asignar registros a las variables que se usen ms en un periodo de tiempo dado. Requiere el uso de algoritmos sofisticados de anlisis de programas.
Usar ms registros , de manera que ms variables puedan mantenerse en registros durante en periodos de tiempo ms largos.
Este enfoque se uso en el primer producto RISC, el Pyramid y se utiliza en la actualidad en la conocida arquitectura SPARC
Ventanas de registros
O El uso de un conjunto amplio de registros
debera reducir la necesidad de acceder a memoria. O La mayora de las referencias a operandos se hacen a datos escalares locales, la solucin es almacenar estos en registros, reservando varios registros para variables globales.
Ventanas de registros
Ventanas de registros
retornos, el nmero de ventana de registros tendra que ser ilimitado. O En lugar de eso, las ventanas de registro se pueden tener para contener las ms recientes activaciones de procedimientos.
Ventanas de registros
Ventanas de registros
Ventanas de registros
slo N -1 activaciones de procedimientos. El valor de N no tiene que ser muy grande. O Las computadoras RISC de Berkeley usan 8 ventanas de 16 registros cada una. O El computador Pyramid emplea 16 ventanas de 32 registros cada una.
Variables Globales
O Las variables globales son aquellas a las
que se accede ms de un procedimiento. Se sugieren dos opciones: O 1)Que el compilador asigne posiciones de memoria a las variables declaradas globales en un HLL, y que todas las instrucciones mquina que refieren esas variables usen operados referenciados en memoria, sin embargo este esquema es insuficiente.
Variables Globales
de registros globales. O Estos registros seran fijos en cuanto a su nmero, y accesibles a todos los procedimientos. O Se usa un esquema de numeracin unificado para simplificar el formato de instruccin. Por ejemplo, las referencias a los registros desde 0 a 7 pueden indicar registros globales nicos, y las referencias a los registros del 8 al 31 pueden transformarse para seleccionar los registros fsicos de la ventana en curso. O Esto conlleva un hardware aadido, que se encarga de adaptar la divisin en el direccionamiento de los registros. Adems el compilador ha de decidir qu variables globales deben ser asignadas a los registros.
ventanas como un buffer pequeo y rpido, que contiene un subconjunto de todas las variables que se usen mucho. El banco de registro se comporta de manera similar a una memoria cache.
tiempo, ya que guarda todas las variables escalares locales. Por otra parte, la cache puede hacer un uso ms eficiente del espacio ya que reacciona ante las situaciones dinmicamente. Adems, las caches generalmente tratan todas las referencias a memoria del mismo mods.
O Los datos de la cache se leen por bloques. O La cache es capaz de manipular tanto datos variables
como locales. O se usan un numero de registro <<virtual>> y un nmero de ventana. O Para referenciar la posicin en memoria en la cache, hay que generar una direccin de memoria completa. O En una cache asociativa por conjuntos, una parte de la direccin se usa para leer un nmero de palabras y etiquetas igual al tamao del conjunto.
maquina RISC que contiene nicamente un pequeo numero de registros. El uso optimizado de registros es responsabilidad del compilador. El objetivo del compilador es mantener en registros, en lugar de en memoria los operandos necesarios para hacer clculos como sea posible, y minimizar las operaciones de carga y almacenamiento.
ilimitado de registros simblicos a un nmero fijo de registros reales. O Si en una parte concreta del programa hay ms cantidades a tratar que registros reales, algunas cantidades se asignan a posiciones de memoria.
nodos de manera que los nodos adyacentes tengan colores diferentes se debe minimizar el nmero de colores distintos. O El programa se analiza para construir un grafo de interferencias entre registros. O Si hay dos registros simblicos durante el mismo fragmento de programa. Entonces se unen por un arco para representar su interferencia. O Si este proceso no tiene xito completo, los nodos que no se pueden colorear se colocan en memoria y se tienen que usar cargas y almacenamiento para crear espacio para las cantidades afectadas cuando estas se necesiten
Bibliografa
Organizacin y arquitectura de computadoras diseo para optimizar prestaciones, 5 ed, William Stallings