PDF de programación - Arquitecturas RISC v.2014

Imágen de pdf Arquitecturas RISC v.2014

Arquitecturas RISC v.2014gráfica de visualizaciones

Publicado el 12 de Julio del 2018
936 visualizaciones desde el 12 de Julio del 2018
790,7 KB
43 paginas
Creado hace 9a (18/09/2014)
Arquitecturas RISC

v.2014

William Stallings, Organización y Arquitectura de

Computadores, Capítulo 12: Computadores de repertorio

reducido de instrucciones.

John Hennessy – David Patterson, Arquitectura de

Computadores – Un enfoque cuantitativo 1ª ed, Capítulos 1 a 6
y Apéndice E: Visión general de las arquitecturas RISC (3ª ed Ap

C, 4ª ed Ap J).



Avances importantes en

microprocesadores desde 1950

 Unidad de control microprogramada y el concepto de

familia (1964): compatibilidad ISA con diferentes
implementaciones [IBM 360].

 Memoria cache (1968) [IBM 360].
 Segmentación del cauce de instrucciones (pipeline).
 Arquitecturas RISC (1985): involucra la mayoría de los aspectos

importantes relacionados con la arquitectura y la organización.

No existe en la actualidad una tecnología
que haga prever un impacto semejante.

Múltiples procesadores?



Arquitecturas RISC
La brecha semántica
 El costo del hardware baja (evolución tecnológica) y el costo del

software sube (poco confiable, difícil de mantener).

 Como una solución aparecen los lenguajes de programación de alto
nivel (HLL): mayor nivel de abstracción (programación estructurada
vs. OO, más concreto y más poderoso), pero aumenta la brecha
semántica.

 Cuál es la forma más eficiente de generar lenguaje máquina?

 Aproximación CISC: ISAs complejas, con muchas instrucciones y

modos de direccionamiento, incluyendo instrucciones de HLL.
Compiladores simples.

 Aproximación RISC: simplificar el set de instrucciones

adaptándolo a los requerimientos REALES de los programas
(estudios). Cambio de estrategia.



Arquitecturas RISC
Principales características

 Arquitectura de carga/almacenamiento, con pocos

modos de direccionamiento.

 Un gran número de registros de uso general, cuya

utilización se optimiza en el compilador.

 Repertorio de instrucciones limitado, sencillo y con

formato fijo

 Especial énfasis en la segmentación y unidad de control

cableada.



Arquitecturas RISC
Algunas arquitecturas



Arquitecturas RISC
Orígenes (1980-1990)

 John L. Hennessy (Stanford) -> arquitectura MIPS (Microprocessor

without Interlocking Pipeline Stages)
 MIPS Technology Inc. Diseñadores de los procesadores RXXXX;

fabricados por Nec, Toshiba y SGI; utilizados en PlayStationII,
Nintendo64, CISCO, SGI.

 David A. Patterson (Berkeley) -> arquitecturas RISC I y II

 Conduce al diseño de la arquitectura SPARC fabricada por Sun

Microsystems. Workstations.
 Juntos -> arquitectura DLX (H-P)

 Base para éstas y otras arquitecturas (Alpha de Dec, 88000 de

Motorola, 29000 de AMD o i960 de Intel). Pocas diferencias!



Arquitecturas RISC
Evaluación dinámica de los
programas en tiempo de ejecución
Qué hacen los programas escritos en HLL la mayor

parte del tiempo? [Patterson, 1982]

 Frecuencia dinámica de instrucciones:

 Movimiento de datos 43%
 Control de flujo 23%
 Operaciones aritméticas y lógicas 20%
 Comparaciones 13%
 Otras 10%

Del recuento de instrucciones y referencias a memoria resulta un
gran peso de las llamadas a funciones de los lenguajes

estructurados (salvaguarda del estado y pasaje de parámetros).



Arquitecturas RISC
Evaluación dinámica (cont)

 Tipos de operandos: 60% variables escalares (enteros, reales,

char, etc.), de las cuales el 80% son locales.

 Llamadas a procedimientos: gran cantidad de accesos a

memoria. El 98% usa menos de seis argumentos, de los cuales el
92% usa menos de seis variables escalares locales. Pocos niveles
de anidamiento (menor que seis). Concepto: referencia a
operandos localizada. 6/6/6

 Modos de direccionamiento: solo el 18% de las instrucciones

utiliza modos sofisticados. La mayoría utiliza modos que se
resuelven en un ciclo (registro, desplazamiento).



Arquitecturas RISC
Evaluación dinámica (cont)



Arquitecturas RISC
Evaluación dinámica (cont)

Conclusiones de las mediciones:

 Preponderancia de operaciones y modos de direccionamiento

simples -> ISA REDUCIDO.

 Los operandos son mayormente escalares locales ->

REGISTROS y LOAD/STORE.
Importancia de llamadas a procedimientos -> VENTANAS.

Además es clave un pipeline eficiente -> ANCHO DE

INSTRUCCIONES FIJO e INSTRUCCIONES SIMPLES.

Si resulta...

 CONTROL CABLEADO, puede aumentarse fCLOCK y por lo

tanto mayor RENDIMIENTO




Principales aspectos RISC

(el repertorio de instrucciones reducido y sus

consecuencias en la organización)

 Pocas instrucciones simples
 Arquitectura load/store
 Pocos modos de direccionamiento
 Instrucciones de ancho fijo
 Gran número de registros



1. Pocas instrucciones simples

 El objetivo es que ejecuten, de ser posible, en un único ciclo de
máquina (luego de ser captadas y decodificadas, por supuesto).
Pipeline de tres etapas para las instrucciones sin referencia a
memoria: FI – DI – EI.

 Puedo utilizar control cableado porque son simples.
 La unidad de control es simple, por lo tanto puede funcionar con

mayor frecuencia de clock.

 El pipeline es eficiente si las instrucciones son de tiempo de

ejecución similar en cada etapa.

 Las instrucciones complejas de los CISC se implementan como una

secuencia de operaciones RISC. {EJEMPLO}



2. Arquitectura load/store

 Las únicas instrucciones que referencian datos en memoria son las
de carga y almacenamiento. Las demás operan solo con registros.

 Los accesos a memoria no pueden hacerse en un ciclo. Cuatro

etapas en el pipeline para las instrucciones con referencia a
memoria: FI – DI – CA (calcular dirección) – TR (transferir). La
instrucción siguiente debe retardarse. Ver delayed load.



 Discusión sobre la eficiencia de los programas resultantes si me

interesa el tráfico con memoria y la densidad de código resultante
(no confundir con programa simbólico más corto)



3. Pocos modos de direcciona-
miento
 Además de los modos registro e inmediato, el principal modo de

direccionamiento (y casi siempre el único) es el de
desplazamiento (offset), con registro de 32 bits más un
desplazamiento de 16 bits, solo utilizado para LOAD/STORE.

MIPS: lw r2,128(r3)

 Se puede utilizar para simular el modo directo o absoluto, muy

utilizado para acceder a datos estáticos, usando r0.

 También se puede simular el modo indirecto con registro

haciendo el desplazamiento nulo.

 IMPORTANTE: Se evitan los modos que necesiten acceder a

memoria para componer la dirección de un operando (indirecto con
memoria).



4. Instrucciones de ancho fijo
y formato uniforme
 Usualmente instrucciones de ancho fijo de 32 bits.
 Esto hace que la captación y decodificación de instrucciones sea
simple y rápida. No se necesita esperar a que se conozca el largo
de la instrucción actual para empezar a decodificar la próxima.

 El formato uniforme simplifica la decodificación porque el código de

operación y el campo de dirección están ubicados en la misma
posición para todas las instrucciones.

Ver luego la codificación del repertorio de instrucciones de DLX:
Ver luego la codificación del repertorio de instrucciones de DLX:

Tipo I (carga y almacenamiento)
Tipo I (carga y almacenamiento)
Tipo R (registro-registro)
Tipo R (registro-registro)
Tipo J (saltos)
Tipo J (saltos)



5. Gran número de registros

 Las variables y los resultados intermedios pueden ser almacenados

en registros evitando repetidos accesos a memoria.

 Los registros pueden utilizarse para el pasaje de parámetros a

procedimientos, evitando hacerlo por la pila (memoria). Recordar
medidas 6/6/6.

 Puede utilizarse un grupo de registros para cada procedimiento,

evitando tener que salvar el estado.

 Es posible implementar muchos registros porque se redujo la

complejidad de la unidad de control.

 La arquitectura no limita la utilización de los registros. Son de

propósitos generales. Sin embargo el compilador debe organizarse
de alguna manera, según su conveniencia (por ejemplo si
implementa un stack).



Ejemplo: Implementación de ventanas de registros
 Es una forma de optimizar la utilización de un gran número de

registros ante la presencia de llamadas a funciones originadas por
la programación estructurada.

 En cada momento sólo es visible una ventana de N registros (del 0

al N-1).

 Se definen tres areas de trabajo de largo fijo superpuestas (in,

local, out).

 Los parámetros a procedimientos se pasan sin transferencia real.

Sólo es necesario incrementar el puntero de ventana actual (CWP).



Ventana de registros (cont)

 Una llamada a procedimiento incrementa CWP.
 CWP = SWP genera interrupción, salva a memoria e incrementa

SWP.

 Idem al retorno.
 Recordar 6/6/6.
 Con k ventanas k-1 proc.
 GLOBALES.



Ventana de registros del procesador SPARC



Discusión
Banco de registros vs. cache de datos

Disponibilidad, número de bits necesarios, velocidad.



Optimización de registros basada en el compilador

 Los HLL no utilizan registros. El compilador utiliza registros

virtuales y trata de adaptarlos a los registros disponibles.

 Compromiso entre disponibilidad de registros y sofisticación del

compilador.

 Coloreado de grafos:



Carga retardada (delayed load)

 La instrucción posterior a un LOAD debe suspenderse durante un

ciclo si necesita el operando.

 La técnica de carga retardada (similar al salto retardado) es muy

utilizada en RISC por su gran eficiencia.

 Consiste en ejecutar la instrucción siguiente sin detención. El

operando no está disponible. El compilador (o el programador ASM)
es responsable de las consecuencias.



Carga retardada (cont)

 En esas condiciones, el programa presentado es incorrecto (RAW

hazard).



Carga retardada (cont)

 La siguiente secuencia es correcta. Depende del compilador el
encontrar la instrucción que pueda colocarse a continuación del
LOAD, sin afectar el resultado del program
  • Links de descarga
http://lwp-l.com/pdf12480

Comentarios de: Arquitecturas RISC v.2014 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad