computadores de repertorio reducido de instrucciones

43
Computadores de repertorio reducido de instrucciones Equipo 7

Upload: liliana120990

Post on 05-Aug-2015

152 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computadores de Repertorio Reducido de Instrucciones

Computadores de repertorio reducido

de instruccionesEquipo 7

Page 2: Computadores de Repertorio Reducido de Instrucciones

Temas a tratarCaracterísticas de la ejecución de instruccionesO OperacionesO OperandoO Llamadas a procedimientosO ConsecuenciasUtilización de un amplio banco de registrosO Ventanas de registrosO Variables globalesO Un amplio banco de registros frente a una cacheOptimización de registros basada en el compilador

Page 3: Computadores de Repertorio Reducido de Instrucciones

Características de la ejecución de instruccionesO Uno de los aspectos relacionados

con la computadora que ha evolucionado de manera mas visibles es el de los lenguajes de programación.

O Conforme el coste de hardware disminuye, el coste de software aumenta.

Page 4: Computadores de Repertorio Reducido de Instrucciones

Características de la ejecución de instruccionesFactores de este problemaO Que aumente el coste de software es

el hecho de que hay menos programadores.

O La falta de fiabilidad ya que a medida que nacen nuevos lenguajes de programación nacen nuevos errores.

Page 5: Computadores de Repertorio Reducido de Instrucciones

Características de la ejecución de instrucciones

Los investigadores y la industria han desarrollado lenguajes de alto nivel

(high level lenguaje, HLL) O Mas potentes y complejosO permiten al programador expresar

algoritmos de manera mas concisaO Apoyan de manera natural la

programación estructurada o diseño orientado a objetos.

Page 6: Computadores de Repertorio Reducido de Instrucciones

Características de la ejecución de instruccionesTambién hubo un problema llamada Salto semántico entre las operaciones del HLL y la arquitectura del computador.O Ineficiencia de la ejecuciónO Tamaño excesivo del programa en

lenguaje maquinaO Complejidad de los compiladores

Page 7: Computadores de Repertorio Reducido de Instrucciones

Características de la ejecución de instruccionesSe diseñaron nuevas arquitecturas para evitar estos problemas. Incluyen:O Repertorios de instrucciones grandesO Docenas de modos de

direccionamientoO Sentencias en HLL escritas en

hardware

Page 8: Computadores de Repertorio Reducido de Instrucciones

Características de la ejecución de instruccionesSus mejoras fueron:O Facilitar el trabajo del escritor de

compiladoresO Mejorar la eficiencia de ejecuciónO Dar soporte a HLL mas complejos y

sofisticados

Page 9: Computadores de Repertorio Reducido de Instrucciones

Operaciones

Las sentencias de asignación predominan, lo cual indica que el sencillo movimiento de datos tiene mucha importancia. También prodominan las sentencias condicionales (IF, LOOP), son implementadas en lenguaje maquina con alguna instrucción.

Page 10: Computadores de Repertorio Reducido de Instrucciones

Operaciones

Estos repertorios son instructivos para el diseñador 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.

Page 11: Computadores de Repertorio Reducido de Instrucciones

OperacionesO NO revelan que instrucciones

consumen mas tiempo de ejecución.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.

Page 12: Computadores de Repertorio Reducido de Instrucciones

Operaciones

Page 13: Computadores de Repertorio Reducido de Instrucciones

OperacionesO En la columna 2 y 3 muestran la frecuencia

relativa de aparición de HLL en varios programas.

O En la columna 4 y 5 se multiplico el numero de instrucciones maquina generadas por el compilador, además se normalizaron.

O En la columna 4 y 5 se multiplico la frecuencia de aparición de cada tipo de sentencia por el numero relativo de referencias a memoria originado por esa sentencia.

Page 14: Computadores de Repertorio Reducido de Instrucciones

Operandos

En el estudio de Patterson, también se consideró se consideró la frecuencia dinámica de aparición de distintas clases de variables.

Page 15: Computadores de Repertorio Reducido de Instrucciones

Operandos

Este estudio analizo el comportamiento dinámico de los programas en HLL de manera

independiente de la arquitectura.

Page 16: Computadores de Repertorio Reducido de Instrucciones

Llamadas a procedimientos

Las llamadas y retornos de procedimientos son muy importantes

para los programas en HLL.

Page 17: Computadores de Repertorio Reducido de Instrucciones

Llamadas a procedimientos

La siguiente tabla indica que son las operaciones que consumen mas

tiempo en programas en HLL compilados.

Page 18: Computadores de Repertorio Reducido de Instrucciones

Llamadas a procedimientos

O El estudio de Tanenbaum encontró que el 98% de los procedimientos llamados dinámicamente 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 activación de un procedimiento no es muy grande.

Page 19: Computadores de Repertorio Reducido de Instrucciones

ConsecuenciasO 3 elementos que caracterizan a las

arquitecturas RISC: O Usar un gran número de registros, o

un compilador que optimice el tratamiento de éstos.

O Prestar atención al diseño de los cauces de instrucciones.

O Repertorio de instrucciones simplificado.

Page 20: Computadores de Repertorio Reducido de Instrucciones

Utilización de un amplio banco de registros

O Hay una gran proporción de sentencias de asignación en programas escritos en HLL.

O Hay un número significativo de accesos a operandos por cada sentencia de HLL.

Page 21: Computadores de Repertorio Reducido de Instrucciones

Utilización de un amplio banco de registros

O La razón de que esté indicado ese almacenamiento en registros es que éstos constituyen el dispositivo de almacenamiento más rápido disponible.

O El banco de registros físicamente es pequeño y se encuentra en el mismo chip que la ALU y la unidad de control. Emplea direcciones más cortas que las de la cache y la memoria.

Page 22: Computadores de Repertorio Reducido de Instrucciones

Utilización de un amplio banco de registros

O Se necesita una estrategia que permita que los operandos a los que se accede con mayor frecuencia se encuentren en registros y que se minimicen las operaciones registro-memoria.

Page 23: Computadores de Repertorio Reducido de Instrucciones

Utilización de un amplio banco de registros

O 2 aproximaciones básicas:O Basada en software. O Basada en hardware.

Page 24: Computadores de Repertorio Reducido de Instrucciones

Utilización de un amplio banco de registros

• Basada en software:• Confiar al compilador la maximización

del uso de los registros.• El compilador intentará asignar registros

a las variables que se usen más en un periodo de tiempo dado.

• Requiere el uso de algoritmos sofisticados de análisis de programas.

Page 25: Computadores de Repertorio Reducido de Instrucciones

Utilización de un amplio banco de registros

• Basada en hardware:• Usar más registros , de manera que más

variables puedan mantenerse en registros durante en periodos de tiempo más largos.

• Este enfoque se uso en el primer producto RISC, el Pyramid y se utiliza en la actualidad en la conocida arquitectura SPARC

Page 26: Computadores de Repertorio Reducido de Instrucciones

Ventanas de registros O El uso de un conjunto amplio de

registros debería reducir la necesidad de acceder a memoria.

O La mayoría de las referencias a operandos se hacen a datos escalares locales, la solución es almacenar estos en registros, reservando varios registros para variables globales.

Page 27: Computadores de Repertorio Reducido de Instrucciones

Ventanas de registros O Problema = definición de local varia con cada llamada y retorno de procedimiento, operaciones que suceden con frecuencia.

O Solución

Page 28: Computadores de Repertorio Reducido de Instrucciones

Ventanas de registros O Para manejar cualquier posible patrón de llamadas y retornos, el número de ventana de registros tendría que ser ilimitado.

O En lugar de eso, las ventanas de registro se pueden tener para contener las más recientes activaciones de procedimientos.

Page 29: Computadores de Repertorio Reducido de Instrucciones

Ventanas de registros O Las más antiguas activaciones de procedimientos se salvan en la memoria y se restauran más tarde, cuando la profundidad de anidamiento disminuya.

Page 30: Computadores de Repertorio Reducido de Instrucciones

Ventanas de registros

Page 31: Computadores de Repertorio Reducido de Instrucciones

Ventanas de registros O Un banco de registros de N ventanas puede contener sólo 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.

Page 32: Computadores de Repertorio Reducido de Instrucciones

Variables GlobalesO Las variables globales son aquellas a las

que se accede más 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 máquina que refieren esas variables usen operados referenciados en memoria, sin embargo este esquema es insuficiente.

Page 33: Computadores de Repertorio Reducido de Instrucciones

Variables GlobalesO Una Alternativa es incorporar al procesador un conjunto

de registros globales. O Estos registros serían fijos en cuanto a su número, y

accesibles a todos los procedimientos. O Se usa un esquema de numeración unificado para

simplificar el formato de instrucción. 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 físicos de la ventana en curso.

O Esto conlleva un hardware añadido, que se encarga de adaptar la división en el direccionamiento de los registros. Además el compilador ha de decidir qué variables globales deben ser asignadas a los registros.

Page 34: Computadores de Repertorio Reducido de Instrucciones

Un Amplio Banco de Registros Frente a Una Cache

O El banco de registros organizado en ventanas como un buffer pequeño y rápido, 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.

Page 35: Computadores de Repertorio Reducido de Instrucciones

Un Amplio Banco de Registros Frente a Una Cache

O Características de las organizaciones de un banco de registros amplio y de cache.

Page 36: Computadores de Repertorio Reducido de Instrucciones

Un Amplio Banco de Registros Frente a Una Cache

O El banco de los registros deberían ahorrar tiempo, ya que guarda todas las variables escalares locales. Por otra parte, la cache puede hacer un uso más eficiente del espacio ya que reacciona ante las situaciones dinámicamente. Además, las caches generalmente tratan todas las referencias a memoria del mismo mods.

Page 37: Computadores de Repertorio Reducido de Instrucciones

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

número de ventana. O Para referenciar la posición en memoria en la

cache, hay que generar una dirección de memoria completa.

O En una cache asociativa por conjuntos, una parte de la dirección se usa para leer un número de palabras y etiquetas igual al tamaño del conjunto.

Page 38: Computadores de Repertorio Reducido de Instrucciones
Page 39: Computadores de Repertorio Reducido de Instrucciones

Optimización de registros basada en el compilador

O Si supongamos que disponemos de una maquina RISC que contiene únicamente un pequeño 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 cálculos como sea posible, y minimizar las operaciones de carga y almacenamiento.

Page 40: Computadores de Repertorio Reducido de Instrucciones

O El compilador entonces asigna el número ilimitado de registros simbólicos a un número fijo de registros reales.

O Si en una parte concreta del programa hay más cantidades a tratar que registros reales, algunas cantidades se asignan a posiciones de memoria.

Page 41: Computadores de Repertorio Reducido de Instrucciones
Page 42: Computadores de Repertorio Reducido de Instrucciones

O El coloreado de grafos consiste en asignar colores a los nodos de manera que los nodos adyacentes tengan colores diferentes se debe minimizar el número de colores distintos.

O El programa se analiza para construir un grafo de interferencias entre registros.

O Si hay dos registros simbólicos 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

Page 43: Computadores de Repertorio Reducido de Instrucciones

Bibliografía

Organización y arquitectura de computadoras diseño para optimizar prestaciones, 5ª ed, William Stallings