148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · indice 1. introduccion: 1.1 historia de la...

126
UNIVERSIDAD AUTONOMA METROPOLITANA ' cB-7- J c_ JM~. EiE_cTQOU\C-* REPORTE FINAL 'TEMA: ARQUITECTURA RISC %LUMNO: VARGAS ESCUDERO G. ELOY MATRICULA: 88223678 -9 DE MAYO DE 1996 _Ix_

Upload: vudiep

Post on 13-Feb-2019

225 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

UNIVERSIDAD AUTONOMA METROPOLITANA ' cB-7- J c_ J M ~ . E i E _ c T Q O U \ C - *

REPORTE FINAL

'TEMA: ARQUITECTURA RISC

%LUMNO: VARGAS ESCUDERO G. ELOY

MATRICULA: 88223678

-9 DE MAYO DE 1996 _Ix_

Page 2: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

INDICE

1. INTRODUCCION:

1.1 Historia de la tecnología RISC

1.2 Conceptos fundamentales en Arquitecturas RISC

1.3 Especificaciones Principales del MC88100

1.4 Breve panorama de la arquitectura del

MC88100

1.5 Unidades de ejecución y Archivo de Registro

1.6 Modelo de Ejecución

2. MODOS DE DIRECCIONAMIENTO Y SET DE INSTRUCCION:

2.1 Tipos de Instrucción y Modos de

Direccionamiento

2.2 Categorias de Instrucción

2.3 Set de Instrucciones

2.4 Tips de Programación

3. DESCRIPCION DE SEÑAL:

3.1 Señales del Bus de Datos

3.2 Señales del Bus de Instrucciones

3.3 Señales de Interrupción y Control

3.4 Señales de Poder y Reloj

4. OPERACION DEL BUS:

4.1 Características del Bus

4.2 Mecanismo de Acceso a Datos

4.3 Interface del P Bus con el MC88200

5. EXCEPCIONES:

5.1 Excepciones

5.2 Vectores de Excepción y R. V. B.

5.3 Prioridades de Excepción

5.4 Procesamientos de Excepción

5.5 Excepciones de la Unidad de Instrucción

5.6 Excepciones de Acceso a Memoria

6. FORMA DE TRABAJAR DE UN RISC(Diagramas de tiempo)

7. TIEMPOS DE EJECUCION DE INSTRUCCIONES

8. SOFTWARE EN COMPILACION

9. VENTAJAS EN COMPARACION CON LOS CISCS

3.0. BIBLIOGRAFIA

3

Page 3: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

1. INTRODUCCION.

1.1 Historia de la tecnología RISC

Los primeros CPU's RISC fuerón desarrollados en los ultimo8 años de l o s

70's y a principios de los 80's por IBM, la Universidad de de California

en Berkeley y la Universidad de Stanford. En lugar de seguir diseños

tradicionales de computadoras, los cuales empacan tantos procesamientos

de poder como sean posibles dentro de cada instrucción en el CPU, .

construyerón esta arquitectura de computadora con muchas instrucciones

simples que son ejecutadas mas rapidamente. La ganancia del resultado de

esta representación fué tan notable para que las ideas RISC

establecieran rapidamente sus caminos dentro de diseños comerciales de

CPU, incluyendo el Motorola 88000, el MIPS R2000 y R3000, y el Sun

SPARC. Estos procesadores RISC usan instrucciones que ejecutan en tan

pocos ciclos de reloj como sean posibles, generalmente solamente uno.

LOS procesadores RISC también cuentan con compiladores óptimos para

generar el menor número posible de instrucciones para cada programa y

para organizar las instrucciones del pipeline, para minimizar los

retardos. La unión de optimizar compiladores y arquitecturas RISC

pretende que un programa RISC pueda frecuentemente ejecutarse mucho más

rápido que esos programas convencionales y equivalentes, aunque el

programa RISC sea mas largo. RISC tuvo la velocidad, pero no tuvo exito

en el software.

Duplicando negocios de software del DOS en el lugar de tarbajo de RISC

no es una tarea simple. Esto es no solamente por que el procesador RISC

es incompatible con viejos modelos de CISC (Complejo Set de

Instrucciones de Computadoras) CPU's tales como el 8086, pero también

porque todas las computadoras RISC introducidas a la fecha son basadas

en los sistemas operativos UNIX, quienes son incompatibles con DOS.

Mientras tanto, millones de usuarios de PC's han encontrado los limites

de la función de DOS IBM PC's, XT's y AT'S, y necesitan mas poder. La

estación de trabajo de RISC podria ser un ascenso lógico en la

trayectoria, pero por la ausencia de compatibilidad no es posible.

4

Page 4: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

El MC88100 es el primer procesador en la familia M88000 del '

Computadoras con Instrucciones Reducidas Implementada con la tecnología

de gran densidad Motorola CMOS(HCMOS), el MC88100 incorpora 32-bit de

registros, de datos y de direcciones. La familia del M88000 incluye el

MC88200 la unidad de manejo de memoria caché en la cual adhiere alta

velocidad en la memoria cache, maneja dos niveles de paginado de memoria

y soporta multiprocesamientos para memoria compartida.

El MC88100 utiliza instrucciones simples con ejecución extremadamente

rápida para alcanzar máxima eficiencia para el sistema M88000. Además

una línea llena de optimizados compiladores, sistemas operativos,

programas de aplicación y desarolladas herramientas de aplicación para

el M88000.

1.2 CONCEPTOS FUNDAMENTALES EN ARQUITECTURAS RISC

1. - Jerarquización de Memoria.

La unidad de memoria es un componente escencial en cualquier computadora

digital. Una muy pequeña computadora con limitadas aplicaciones pueden

hacer tareas sin necesidad de capacidad de almacenamiento temporal

adicional. Generalmente las computadoras corren programas efecientemente

si estos son equipados con almacenamiento adicional mas alla de la

memoria principal. Es mas económico usar de bajo costo que sirva como

respaldo para almacenar información que no es regularmente usada por la

CPU. Dispositivos que proveen de este almacenamiento son llamados

memorias auxiliares. La unidad de memoria que se comúnica directamente

con la CPU es llamada memoria principal, en el cuál solo programas y

datos regularmente necesarios por el procesador son usados.

La capacidad total de memoria de una computadora puede ser visualizada

como jerarquia de componentes. La jerarquía de sistemas de memoria

consiste de todos l o s dispositivos de almacenamiento empleados en una

computadora, desde el más lento pero mayor capacidad de memoria

auxiliar, a la más relativa rápida memoria auxiliar (figura de Abajo).

5

Page 5: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

I MAGNETIC0 I

PROCESADOR

ENTRADA /

SALIWA

MEMOR I A

PR 1 NC I PAL

MEMOR I A I L I CACHE I

En la parte baja de la jerarquía son las cintas magnéticas usadas para

almacenar y remover archivos. Luego son los discos magnéticos usados

como respaldo de almacenamiento. La memoria principal ocupa la posición

central , y se comunica directamente con la CPU y con los dispositivos de memoria auxiliar a través du un puerto de entrada salidya ( E / S ) .

CuandQ programas no residen en la memoria principal y son necesitados

por la CPU, esta se va a la memoria auxiliar, y programas que no son

regularmente necesitados en la memoria principal, estos son transferidos

en la memoria auxiliar y dejar espacio en la memoria principal para

programas y datos.

Una especial y muy rápida memoria es algunas veces usada para

incrementar la velocidad de procesamiento haciendo programas y datos

disponibles a la CPU muy rápida. Esta memoria es llamada memoria cache,

y es usada en la jerarquización de memoria para compensar la velocidad diferencial del tiempo de acceso de la memoria principal y el puerto de

E/S. Este procesador lógico es regularmente más rápida que el tiempo de

acceso a la memoria principal, con el resultado que la velocidad de

procesamiento es limitada a la velocidad de la memoria principal. Una

técnica usada para compensar estos tiempo es el emplear una memoria

rápida y baja capacidad entre la CPU y la memoria principal con tiempos

de acceso cercanos a los retardos de la propagación del procesador. Esta

memoria CACHE es usada para almacenar segmentos de programas, datos

temporales frecuentemente necesarios en calculoc, haciendo programas y

datos disponibles a un periodo rápido, y es posible incrementar el

periodo de ejecución del procesador.

6

Page 6: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

En,un sistema de computadoras la demanda de servicios es alto, corriendo

estos de la siguiente forma:

- BATCH MODE : Los programas son preparados sin el uso directo de la computadora, donde el operador carga todos los programas en la

computadora donde será ejecutado uno a la vez; este método es eficiente

t a l que los programas pueden ser alimentados en la computadora tan

rápido como estos puedan ser procesados.

- MODO DE TIEMPO COMPARTIDO : Este método, es usado en el que muchos

usuarios se comunican por medio de una terminal remota interactiva. La.

computadora puede responder a multiples usuarios al mismo tiempo. E s t o ’

es acompañado por muchos programas que residen en la memoria mientras el

sistema localiza el pedazo de tiempo de cada programa a ejecutar por la

CPU .

Un concepto común en ambos terminos, es el uso de multiprogramación, y

esto es la existencia de varios programas en diferentes partes de la

memoria al mismo tiempo.

Es posible mantener todas la partes de la computadora ocupadas por

trabajar en varios programas en secuencia, por ejemplo:

Suponga un programa que es empezado a ejecutar en la CPU y una

transferencia de Entrada/Salida es requerida. La CPU inicia e l ’

procesamiento de Entrada/Salida para ejecutar la transferencia, esto

deja a la CPU libre para ejecutar a otro programa. En un sistema de

multiprogramas, cuando un programa esta esperando para transferencia de

Entrada/Salida, hay un programa listo para usar en la CPU.

Con multiprogramas, la necesidad de eleva para correr programas

parciales, por variación del llenado de la memoria principal en uso por

el programa dado, y moviendo programas alrededor de la jerarquía de

memoria. Algunos programas son tan grandes que son acomodaros en el

espacio total disponible en la memoria principal. Sin embargo, una

7

- ’c”*7p - =

Page 7: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

computadora usa muchos programas, y todos los programas no pueden

residir en la memoria principal todo el tiempo. Un programa con datos

normales puede recidir en la memoria auxiliar, mientras el programa 6

segmentos de este a ser ejecutado es transferido a la memoria principal

para ser ejecutados por la CPU. Esta es tarea del sistema operativo,

para mantener a la memoria principal una porción de esta información que

es regularmente activo. La parte del sistema que supervisa el flujo de

información entre la memoria auxiliar y la principal es llamada

Manejador de Memoria.

Procesamiento Pipeline.

La técnica de PIPELINE es la de descomponer un proceso secuencia1 en

sub-operaciones con cada subproceso ejecutado existente en un segmento

especial dedicado que opera con otros segmentos. Un PIPELINE puede ser

visualizado como una colección de segmentos procesados a través del cuál

fluye información binaria. Cada segmento ejecuta procesamiento parcial

dedicado por medio de particionar tareas. El resultado obtenido de la

computación es transferido al siguiente segmento en el pipeline. El

resultado final es obtenido despues de que el dato ha pasado a traves de

todos los segmentos. La caracteristica del pipeline es que varias

operaciones computacionales pueden ser ejecutadas en distintos segmentos

al mismo tiempo. El traslape de las operaciones es posible asociando un

registro con cada segmento en el pipeline, el registro nos da la

separación entre los segmentos tal que puedan operar simultaneamente

sobre datos separados.

Ejemplo :

suponga que deseamos operar la combinación de sumar y ejecutar

operaciones con varios números.

Ai * Bi + Ci para i = 0 . . 7

donde Rl..R5 son registros que reciben un

nuevo dato cada pulso de reloj

8

Page 8: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

I & & & * I

Los cinco registros son caragdos con un nuevo dato cada pulso de reloj.

pulso segmento 1 segmento 2 segmento 3

R1 R2 R3 R4 R5 -- -- -- -- 1 Al B1

2 A2 B2

3 A3 B3 A2*B2 C2 Al*Bl+C1

4 A4 B4 A3*B3 C3 A2 *B2+C2

5 A5 B5 A4*B4 C4 A3 *B3+C3

6 A6 B6 A5*B5 C5 A4*B4+C4

7 AI BI A6*B6 C6 A5*B5+C5

8 -- -- Al*B7 Cl A6*B6+C6

9 -- -- -- -- A7*Bl+C7

Al*Bl C1 -- --

W

En este ejemplo, toma tres pulsos de reloj en llenarse la Pipeline, y

recuperar el primer dato en R5, y cada pulso produce una nueva salida

moviendo el dato un paso abajo de la pipeline. Cuando no hay más datos

disponibles, los pulsos de reloj continuan hasta que emerge la Última

salida del pipeline.

Note que el procesador ejecuta simultaneas operaciones en cada segmento.

No importa cuantos segmentos haya en el sistema, una vez que el pipeline

se llena, toma un pulso de reloj para obtener la salida, sin importar

cuantos pasos son requeridos para ejecutar un proceso entero. Si el

tiempo que toma para procesar una operación en cada segmento es un

9

Page 9: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

,

intervalo t, y si hay k segmentos, entonces cada operación total se

completa en k*t tiempos.

Cualquier operación que pueda ser descompuesta en secuencia de

suboperaciones de la misma complejidad, esta puede ser implementada por

un procesador pipeline. El procedimiento es eficiente solo en estas

aplicaciones donde la misma computación debe aer repetida sobre varios

datos a la entrada. El procesamiento de datos por técnica pipeline ha

sido aplicado regularmente en operaciones aritmeticas de punto flotante.

Instrucción Pipeline.

El procesamiento pipeline puede no solo ocurrir en varios datos, si no'

también en varias instrucciones. Una instrucción pipeline lee

consecutivamente instruciones de la memoria, mientras instruciones

previas son ejecutadas en otros segmentos. Esto causa una instrucción

Fetch y ejecutando operaciones simultaneas (diagrama de flujo siguiente

figura). La Única desventaja asociado con este esquema es que una de las

instrucciones puede causar un brinco fuera de secuencia. En este caso,

el pipeline debe ser vaciado y toda instrucción que ha sido leida de la

memoria después del brinco debe de ser descargada.

Una instrucción pipeline puede ser implementada por medio de un Buffer

FIFO(first in- fisrt out). Siempre que la fase que es ejecutada no usa

la memoria, el control incrementa el PC y usa el valor de la dirección

para leer la instrucción consecutiva de la memoria. Las instrucciones

son metidas dentro de un Buffer FIFO tal que puedan ser ejecutadas bajos

las bases anteriormente mencionadas. En esto, varias instrucciones

pueden ser colocadas en la cola, y esperar para su decodificación y

ejecución por el procesador.

El mecanismo de varias instrucciones de cola provee una eficiente manera

para reducir el tiempo promedio de acceso a memoria para lectura de

instrucciones. Siempre que hay un espacio en el Buffer FIFO, la CPU

ejecuta una instrucción. ~l Buffer actua como una cola del cuál el

control extrae la instrucción a ejecutarse. Si la CPU ejecuta una

10

I

Page 10: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

instrucción que transfiera el control a una locación fuera de la

secuencia normal, el buffer FIFO es inicializado(reset) y ne1 pipeline

e8 declarado vacio. El control entonces hace Fetch a la instrucción de

la dirección del brinco y comienza a rellenar el Buffer de la nueva . localidad. Por supuesto, cabe mencionar que el procesamiento Pipeline

puede ser extendida para incluir otras fases en el ciclo de la CPU.

instrucción Fetch

Segmento 1 a Memoria

Vacia el Pipeline

Segmeto 2 alcula la

irección Efectiva u Manejo de

I - ................... . ........................ . .............

Segmento 4 Actualiza el P.C. t I

O

O

Fetch Operando Segmento 3

de la Memoria

._ .. _ _ EJecuta

Instrucción

Mientras una instrucción es ejecutada en el procesador, la siguiente

instrucción en secuencia esta cupada haciendo Fetch un operando de la

memoria. La dirección efectiva puede ser calculada por una circuitería

aritmética separada para la tercera instrucción, y siempre que la

memoria este disponible, el cuarto y todas las subsecuentes

instrucciones pueden ser Fetcheadas y colocadas en la cola de

instrucciones del FIFO. Esto es para arriba de cuatro suboperaciones en

el ciclo de instrucciones pueden traslaparse y arriba de cuatro

diferentes instrucciones son procesadas al mismo tiempo.

11

Page 11: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

Wemorias Asociativas.

Muchas aplicaciones para procesamiento de datos requiere de la busqueda

de articulos almacenados en una tabla de memoria. La manera establecida

para buscar artículos en una tabla es almacenando estos donde puedan ser

direccionables en secuencia. El procedimiento de busqueda e5 una

estrategía para elegir una dirección en secuencia, leer el contenido de

memoria de cada dirección, y comparar la información leída con el

artículo buscado hasta que se encuentre. El número de accesos a memoria

depende de la locación de artículos y la eficiencia de los algoritmos de

busqueda. La mayoria de los algoritmos de busqueda han sido

desarrollados para minimizar el número de accesos mientras esta buscando

un artículo en una RAM.

El tiempo requerido para encontrar un artículo almacenado en la memoria

puede ser reducido considerablemente si el dato almacenado puede ser

identificado para acceso pr contenido del dato mismo más que por su

dirección.

Una memoria accesada por contenido es llamada memoria asociativa. Este

tipo de memoria es accesada simultaneamente y en paralelo en base del

contenido de dato. La memoria es capaz de de encontrar una localidad

vacia para almacenar un dato, cuando una palabra Ó contenido de esta se

lee de una memoria asociativa.

Debido a que la memoria asociativa es Única para hacer busquedas en

paralelo, su organización e5 especial. Además las busquedas pueden ser

sobre una palabra entera Ó un campo específico con una palabra.

12

Page 12: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

Entrada) MEMORIA ASOCIATIVA

Ledura) m PALABRAS

n BITS POR PALABRA Escritura)

A Salida

+ M

Este consiste de un arreglo de memoria y lógica para m palabras de n

bits por palabra. El registro argumento A tiene n bits, uno para cada

bit de una palabra. El registro match M tiene m bits, uno para cada

palabra en memoria. Cada palabra es comparada en paralelo con el

contenido del registro argumento. Las palabras que hacen juego con los

bits del argumento ponen el correspondiente bit en el registro match. La

lectura es hecha por acceso secuencia1 a memoria para estas palabras que

tienen los correspondientes bits puestos en el registro match.

La organización integra de una celda binaria consiste de un elemento

Latch para almacenamiento del bit y los circuitos de escritura y ’

lectura. Circuito adicionales son necesarios para hacer juego cada ’

palabra con el contenido del argumento del registro A. El juego lógico

para cada palabra puede ser derivado de un algoritmo de comparación para

dos números binarios.

13

I

Page 13: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

,

E j emplo :

FllF2,F3,F4,..,Fn n = número de bits por palabra

El contenido de la palabra será igual al argumento en A

Si Ai = Fi Para i = 1,2,3,..,n

Dos bits son iguales si ambos son 1 6 O

- - Xi = AiFi + AiFi = Complemento de la Or Exclusiva

entra Ai y Fi.

Xi = 1 si 8610 si Ai = Fi

Xi = O si sólo si Ai = Fi

Para cada que palabra sea igual al argumento en A, debemos tener todas

las variables Xi = 1

Mj = X1 X2 X3 .. Xn donde j es una palabra.

Comparación de juegos de palabras de 4 bits en una memoria asociativa

A l B C A2 B C

I

A3 B C A4 B C

I I I

PALABRA 2

M2

A LAS OTRAS PALABRAS

--m ' 3 ' c

14

Page 14: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

Memoria Cache.

Localidad de referencia: Análisis de una gran cantidad de números de

programas típicos ha mostrado que referencias a memoria en cualquier

tiempo tiende a ser confinado de una pequeña memoria.

La razón para la propiedad anterior puede ser entendida considerando que

programas típicos fluyen en forma secuencia1 en forma de lazo y

subrutinas. Cuando un lazo de un programa es ejecutado repetidamente

hace referencias a memoria que hacen lazo. En cualquier tiempo una

subrutina es llamada y las instrucciones hacen Fetch de la memoria.

Iterativos procedimientos refienren a localidades comunes de memoria y

arreglos de números confinados dentro de una porción local de memoria.

La activa porción del programa y datos son colocados en una pequeña y

rápida memoria, y el tiempo de acceso es reducido, disminuyendo también

el tiempo de ejecución del programa.

La básica operación de la Cache es como sigue, cuando la CPU necesita

accesar a memoria, la cache es examinada, si la palabra es encontrada,

esta es leida; si por lo tanto esta palabra no es encontrada, la memoria

principal es accesada, y posteriormente un bloque de palabras son

transferidos de la memoria principal a la memoria Cache.

En resumen, las características básicas de la memoria Cache es la

rapidez del tiempo de acceso. Entonces, poco tiempo de desperdiciado

cuando se buscan palabras en la Cache. La traslación de datos de la

memoria principal a la Cache es referido como procesos de mapeo, tres

tipos de procedimientos para mapear son de interés practico,'

considerando la organización de la memoria Cache.

1.- Mapeo Asociativo.

2.- Mapeo Directo

3.- Mapeo Asociativo t i p o Set.

15

Page 15: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

y una relación de accesos a la memoria basandose en la siguiente

formula:

relación de accesos = # de Bit / # total de referencias

siendo los Hit, las veces en el que el registro Match encuentra el dato

dentro de la memoria asociativa,siendo un Miss cuando el dato no dentro

de esta, y el total de referencias son las veces que se accesa a la

memoria, teniendo un valor de oscilante de este parámetro entre O y 1,

siendo O una relación baja y 1 una relación excelente, para lo que la

eficiencia en velocidad de la CPU esta al máximo.

Pero para ayudar en la discusión del procedimiento de los anteriores

mapeoa para una memoria cache, mencionaremos el uso específico de una

organización de memoria.

I memoria I principal I 32k X 12

I I 1 C . P . U . I I 512 X 12

La memoria principal puede almacenar 32k palabras de 12 bits cada una.

La cache es capaz de almacenar 512 de estas palabras en cualquier

tiempo. Para cada palabra almacenada en la cache, existe un duplicado en

la memoria principal, y la CPU se comunica con ambas memorias, siendo

primeramente direccionada la memoria Cache, y si existe un Hit, la CPU

toma la palabra de 12 bit de la memoria Cache, pero en el caso que

exista un Miss, la CPU lee la palabra de la memoria principal y hace una

transferencia de esta a la memroria Cache.

16

Page 16: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

Map,eo Asociat ivo.

Dirección

La más rápida y flexible organización de la memoria Cache, es usar una

memoria asociativa.

Dato 0 1 0 0 0 O 2 7 5 6

2 3 4 0 7

La memoria Cache almecena conjuntamente dirección y dato de la palabra

de la memoria, esto permite cualquier localización en la Cache para

almacenar cualquier palabra de la memoria principal. De la figura

anterior, muestra tres palabras almacenadas en la Cache, el valor de

direcciones de 15 bits es mostrado como un número total octal de 5

dígitos, y la correspondiente palabra de 12 bits es mostrada como un

número octal de cuatro dígitos. Una dirección de 15 bits de la CPU es

colocada en el registro argumento, y la memoria asociativa es buscada

para una dirección match. Si la dirección es encontrada, los . correspondientes doce bits son leidos y enviados a la CPU, si esta no se

encuentra, la memoria principales accesada, la dirección y datos son

transferidos a la memoria Cache asociativa; pero por si alguna

circustancia la memoria Cache se encuentra llena, un par de dirección y

dato debe de ser desplazado para hacer espacio permitiendo un lugar al

par que se necesita que este presente dentro de la Memoria Cache. La

desición concerniente sobre que par a remplazar, es determinado mediante

un algoritmo

de remplazar

siempre que

que de opciones a la Cache. Un simple procedimiento, es el

las palabras en la Cache, dentro del orden de Round-Robin

una palabra sea pedida de la memoria principal. Esto

17

Page 17: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

constituye la política de remplazo FIFO(primer0 en entrar primero en . salir).

Mapeo Directo.

La memorias asociativas scn caras en comparación con las memorias RAM,

en gran parte debido a la lógica asociada a cada celda. La posibilidad

de usar una memoria RAM para una memoria Cache es mostrada abajo:

I 9 bits I

Et iqueta

32k X 12 Memoria Dir.=9bits Principal Datos=l2bi ts

O 0 O 0 0

ireccion=15bits

atos=l2bits

7 7 7 7 7

La CPU direcciona 15 bits divididos en dos campos, l o s 9 bits menos

significativos constituyen el campo index, y los restantes 6 bits forman

el campo etiqueta. En la figura se muestra que la memoria principal

necesita de ambos campos. El número de bits requeridos para el campo

Index es igual al al número de bits de direciones necesario para accesar

a la memoria Cache.

En general:

2K Palabras - Memoria Cache 2n Palabras - Memoria Principal n = (Etiqueta + Index) bits Index = k Bits

Etiqueta = (n-k) bits

18

.

Page 18: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

La

O 0 1 2 2 0

O 2 6 7 1 0 -

Organización n bits-Memoria Principal Directa k bits-Memoria Cache

organización interna Di recci 6n

Index

O 0 0

7 7 7

de la memoria Cache es Etiqueta

I I Datos I

Memoria Cache

mostrada abajo:

Cada palabra en la Cache consiste de una palabra de datos y su asociada

etiqueta. Cuando se genera una petición de memoria, el campo Index es

usado para direccionar la palabra de la memoria Cache, El campo Etiqueta

de la dirección de la CPU es compara con el campo Etiqueta de la palabra

leida de la Cache, si las dos Etiquetas hacen juego, entonces existe un

Hits, y la palabra se encuentra dentro de la Cache, por lo que si existe

un Miss, la palabra requerida esta dentro de la memoria principal, y

entonces esta es almacenada dentro de la Cache con su nueva etiqueta,

remplazando al valor previo.

La desventaja de este mapeo directos, es que la relación de Hit puede

variar considerablemente de dos a más palabras con l o s mismos

direccionamiento Index pero distintas Etiquetas.

19

Page 19: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

Ejemplo :

Et i queta Datos

O 0 1 2 2 0

0 2 6 7 1 0 I

La palabra en la dirección O0 es entonces almacenada en la memoria

Cache(1ndex = 000, Etiqueta = 00, Dato = 1220).

Suponga que la CPU quiere accesar a la palabra en la dirección

02000(Index L: 000) y es usado para accesar a la Cache. Las dos etiquetas

son comparadas:

0 2 7 7 7

Etiqueta Cache = O0

Etiqueta Memoria Principal = 02

6 7 1 0 I

Lo cual no hace juego. Por lo tanto, la memoria principal es accesada y

leida la palabra 5670, y es transferida a la CPU. La palabra en la Cache'

en la dirección OOO(1ndex) es entonces remplazada con una Etiqueta = 02 '

y un dato de 5670.

Memoria Principal Dir. Memoria Datos + 0 0 0 0 0

2 3 4 0 0 0 7 7 7

P-i 0 1 0 0 0

4 5 6 0 o 1 7 7 7

6ir.

index

O 0 0

7 7 7

Memoria Cache

20

Page 20: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

Mapeo Asociativo Tipo SET.

Se ha mencionado previamente que la desventaja del mapeo anteriormente

mencionado, es que las dos palabras con el mismo index pero con

diferentes Etiquetas, no pueden ser accesadas al mismo tiempo. Pero este

tercer tipo de organización Cache, es un mejoramiento sobre la

organización del mapeo directo en el que cada palabra de la Cache puede

ser almacenada con dos 6 más Etiquetas bajo el mismo Index. Cada dato es

alamcenado junto con su Etiqueta, y el número de artítuculos Etiqueta - Dato6 en una palabra para una Cache, se dice que es un SET.

Ejemplo :

Etiqueta Datos

E j emplo :

O 0

7 7

Datos

Para un tamaño de dos SET

Cada Index se refiere a dos palabras y asociadas Etiquetas. Cada

Etiqueta requiere de 6 bits y cada palabra de dato tiene 12 bits, tal

que la longitud de palabra es 2(6 + 12) = 32 bits. Una dirección de

nueve bits puede acomodar 512 palabras.

Las palabras almacenadas en la dirección O1000 y 02000 de la memoria

principal son alamcenadas en la dirección Index O00 de la Cache.

Similarmente, las direcciones 02777 y 00777 estan en la dirección Index

21

I

Page 21: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

777. Cuando la CPU genera una peticion de memoria, el valor Index de la

dirección es usado para generar acceso a la Cache. La Etiqueta de la CPU

es entonces comparado con las Etiquetas de la Cache para ver si ocurre

Match, por lo que si esto no se presenta, se realiza la misma operación

mencionada en el mapeo asociativo.

1.3 Especificaciones Principales del RISC MC88100

El MC88100 puede ejecutar una gran cantidad de instrucciones en un ciclo

de maquina o una efectiva ejecución concurrente puede ser acompletada a

través de internos pipelines en un ciclo de maquina.

La figura 1.3.1 (a) y (b), muestran un diagrama a bloques del MC88100 y

del MC88200.

Archivo de Registro Jnidad de Instrucción

Pipeline de Fetch pipeline de Acceso de Datos de lntrucciones

Secuenciador

30 bits instrucción

2 bits 2 bits

Figura 1.3.1 (a)

22

Page 22: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

#

REGISTRO DE PROPOSITO GENERAL 1 ,

EcFDvAnnc

L I CADOR L I GADOR L I GADOR L I GADOR

P.F.OP.1MPRESISA

AD1 W P

FDAYF

.F.REGISTRO CONTROL USR

Pi LA

MODELO DE PROGRAMACION USUARIO

MOOELO DE PROGRAMACION SUPERVISOR TUTFRNnC

I i

~ ~~

FIGURA 1 . 6 . 1

Condición de Cómputo:

Los resultados condicionales de pruebas son generados en una manera que complementan operaciones concurrentes y ejecución paralela. Las condiciones son computadas de acuerdo a explícitos requerimientos del programador , usando comparacion de instrucciones. Los resultados condicionales de pruebas son cargados dentro de algun registro de propósito general especificado en vez de dentro de un registro dedicado de código de condición. Eliminando contención entre unidades de ejecución concurrente accesando un registro dedicado de código de condición. Desde que las condiciones son computadas por instrucciones explícitas , optimizando compiladores, pueden reordenar la secuencia de ejecución de instrucciones, para obtener máxima eficiencia.

4 4

Page 23: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

r - El MC88100 tambien provee ramas dedicadas e instrucciones de trampa que combina una comparación explicita con bifurcaciones condicionales dentro de una simple y rapida operación.

Tipos de Operandos y Modos de Direccionamientos:

El MC88100 soporta siete tipos de operando agrupados en tres categorias. Las categorías son enteros, punto flotante y campos de bit, como se muestra en la Tabla 1-1. Adicionales tipos de datos pueden ser incluidos en futuros miembros de la familia M88000 a traves de la inclusión de SFU’s adicionales. El MC88100 provee tres metodos de direccionamiento del espacio de memoria de datos y cuatro metodos de direccionamiento del espacio de memoria de instrucción. La siguiente lista identifica los tres modos de direccionamiento de datos:

* Registro indirecto con no asignado Index

* Registro indirecto con registro Index. * Registro indirecto con registro Index

inmediato.

escalado.

La siguiente lista identifica los cuatro modosde direccionamiento de instrucción:

* Registro con 9 bits, Número Vector. * Registro con 16 bits, Desplazamiento de Signo.

* Punto relativo de Instrucción (26 bits, Desplazamiento de Signo).

* Registro Directo.

Set de Instrucciones:

El set de instrucciones del MC88100 esta dividido en 6 categorias: enteros aritméticos, puntos flotantes

45

Page 24: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

Y

aritméticos, lógicos, campo bit, cargas / almaceñamientos / cambios, y control de flujo. El set de instrucciones del MC88100 es sumarizado en la Tabla 1-2.

TABLA 1.1

TIPOS DE OPERANDOS

Tipo de Operandos Expresado Como: Entero Asigna Ó no Byte (8bits)

Asigna Ó no media palabra (16 bits) Asigna Ó no palabra (32 bits) Asigna Ó no doble palabra ( 6 4 bits) IEEE 754 presición sencilla (32 bits) IEEE 754 presición doble (32 bits) Asigna Ó no campos de bit de 1 a 32 bits

Punto Flotante

Campo de Bit

TABLA 1.2

Resumen de Instrucciones instrucciones Aritrneticas Enteras

Mnemonico add addu

CmP div divu mu1 sub subu

Descipción Suma Suma asignada Compara Divide

Carga/Almacenamiento/Intercambio

Mnemonic0 Descripción id Carga Reg. a Mem. Ida Carga Dirección ldcr Carga del Reg.de Control st Alamcena Reg.a Memoria

DiviciÓn asigna Stet Almacena a Reg.Contro1 Mulkiplica CS Intercambia Reg.Contro1 Resta xmem Intercambia Reg.Memoria Resta asignada

46

Page 25: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

- . i. -

I

c

c d

- Aritméticas P . F . control de Flu jo

Mnemonico DescipciÓn Mnemonico Descripción f add Suma P . F . bbo Brinco sobre Bit=O fcmp Compara P . F . bbl Brinco sobre bit=l fdiv Divide P . F . bcnd Brinco condicional f ldcr Carga P . F . br Brinco incondicional flt Ent. -P. F. bsr Brinco a Subrutina fmul Multiplica Imp Salto incondicional f stcr Alma. P . F. j sr Salto a Subrutiina fsub Resta P . F . rte Retorna de Excepción fxcr Inter. P. F . tbO Trampa a bit=O int Redondea P . F . tbl Trampa a bit=l nint Redondea P . F . tbnd Trampa a límites trnc Trunca P . F . tcnd Trampa condicional

TABLA 1.2 continuación

Lógicas Campo de Bit Mnemonico Descipción Mnemonico Descripción and AND clr Limpia Campo Bit mask Mascara Inm. ext Extrae asignado Bit or OR extu Extrae no asigonado Bit

ffO Busca primer Bit=O ffl Busca primer Bit=l mak Haz Campo Bit rot Rota el Registro set Campo Bit = 1

4 7

I

Page 26: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

*

2. MOD08 DE DIRECCIONAMIENTO Y SET DE INSTRUCCIONES.

Esta sección describe los varios tipos de instrucción y categorias, Y los correspondientes modos de

direccionamientos disponibles en el MC88100.

2.1 Tipos de Instrucción y Modos de Direccionamiento:

Todas las instrucciones son de una palabra (de 32 bits) de longitud. Inmediatos operandos y desplazamientos son codificados en la palabra de instrucción. Todos los otros operandos estan localizados en registros, los cuales pueden ser movidos a y desde la memoria con carga y almacenamiento de instrucciones. El MC88100 ejecuta tres tipos de instrucciones: control de flujo, acceso a memoria de datos y registro a registro. Las instrucciones de control de flujo altera el flujo secuencia1 de instrucciones a través del procesador. Las instrucciones de acceso a memoria de datos cargan datos dentro de los registros de proposito general, almacenan datos a memoria, cambian una localidad de memoria con un registro de proposito general o pueden computar direcciones efectivas. Las instrucciones registro a registro manipulan los datos almacenados en los registros de proposito general. Cada tipo de instrucción tiene capacidad unica de direccionamiento. Las instrucciones de control de flujo se refieren aquellas secciones de memoria que contienen instrucciones; estas referencias son realizadas por la unidad de instrucción. Las instrucciones de acceso a memoria direccionan aquellas secciones de memoria que contienen los datos del programa. Estas referencias son realizadas por la unidad de datos. Las instrucciones registro a registro son confinadas para accesar solamente registros de proposito general en ciertos casos,registros de control. Los siguientes parrafos describen las operaciones de los tres tipos de instrucción, mostrando formatos de instrucción por cada modo de direccionamiento:

48

Page 27: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

1

i. Instrucciones registro a registro:

El MC88100 soporta cutro modos de direccionamiento para sus instrucciones registro a registro. El siguiente parrafo describe estos modos de direccionamiento:

1. Modo de direccionamiento del registro Triadic:

Los modos de direccionamiento del registro Triadic usan tres campos de 5 bits codificados en la instrucción para especificar dos registros fuente y un registro de destino (rD). Este modo de direccionamiento es común a toda instrucción de manipulación de datos. Algunas instrucciones no utilizan los tres campos de selección de registro (campos no usados deberan ser cero). Para instrucciones aritmeticas y lógicas, los datos en la fuente 1 (rS1) y fuente 2 (rS2) de registros es procesado por la unidad de entero o unidad de punto flotante ( F P U ) como dirigidos por el tope de 6 bits y el subcodigo de operaciones y el resultado es ubicado en el registro de destino (rD). Estas instrucciones incluyen las instrucciones add, addu, and, cmp, div, divu, fadd, fcmp, fdiv, fmul, fsub, mul, or, sub, subu u xor. En suma, las instrucciones int, nint, flt trnc utilizadas en estas formas de direccionamiento, aunque el registro de fuente 1 (rS1) no es usado. Las Instrucciones de campo bit pueden usar estos modos de direccionamiento tanto como por debajo de 10 bits de la fuente 2 de registro (rC2) comprendan dos campos de 5 bits que especifica un campo bit operando en rS1. Uno de los valores de 5 bits especifica el offset del campo bit en rS1 y el otro especifica el ancho del campo de bit. Los 22 bits mas altos de rC2 son ignorados. El campo especifico de bit es lpropiadamente procesado por la unidad de entero y ' el resultado es situado en rD. Para instrucciones de rastreo de bit (ffO y ffl) , el operando en rS2 es buscado por la unidad de entero para encontrar ya sea

4 9

Page 28: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

- i I&.. . c

rs2 Registro Fuente 2

- el primer set de bit o el primer bit borrado. El registro es rastreado por el mas significante bit (bit 31) para listar el bit menos significativo (bit O). El resultado es regresado en rD. El campo S1 es ignorado. La instrucción rte usa una variación de la dirección triadic en la cual ningún operando es especificado. Cuando estas instrucciones son ejecutadas el tiempo de de escepción y el registro de sombra son cargados en l o s registros de tiempo corrido. La ejecución de programa resume en el contexto salvado en el tiempo de la excepción y registros de sombra.

W

31

1 0 0 0 0 1 D s1 Sub Codigo s2

-

15

1 1 1 1 0 1 dl sl Sub Codigo s2

-

rsl

O

31 15 O

I Registro Fuente 1 I

I

Registro Destino rD

c Y

5 0

I

Page 29: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

4

rS1 Registro Fuente 1. 1

I

2. Registro con 10 bits de Direccionamiento Inmediato:

W

Este modo de direccionamiento es utilizado en instrucciones de campo de bit (clr, ext, extu, mak, rot, set). Los datos apropiados en los registros especificados por el campo S1 es procesada por la unidad de enteros y el resultado es situado en rD. El campo de 10 bits inmediato sirve como dos campos de 5 bits que especifican el ancho y el offset del campo operando S1.

)

31 9 O I I 1

Operación de Campo

de B i t

31

1 1 1 1 0 0 D

15

sl Sub Ccdigo Inn10

IMM10 Instrucción.

O I

31 O

I i I Reg i c t ro 'Des t i no

rD I

3. Registro con 16 b i t s de Direccionamiento Inmediato:

Esta forma de direccionamiento es usado por instrucciones aritméticas y lógicas requiriendo un valor inmediato de fuente. Los datos en rS1 y los 16 bits inmediatos de operando son procesados por la unidad de enteros o FPU y el resultado es situado en rD. Las instrucciones que usan este

51

Page 30: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

modo incluyen add, addu, and, cmp, div, divu, mask, mul, or,

Instrucción.

sub, subu y xor.

1nn16

31

0pr.Aritmética de Enteros.

3peración de Punto Flotante.

*ración Lógica.

15

rD

O

Registro Destino I

owode D s1

Cero Extendido InMl6

Irmediato

O

Registro Fuente 1.

1 m i 6

D 1 0 0 0 0 0 s2 :RS/ -RD

s1 OP SFU -

Formato de Instrucción :

4. Direccionamiento de Control de Registro:

El direccionamiento de Control de Registro es usado para referirse al control general y control de registro FPU. Registros de proposito general son cargados desde, almacenado a o cambiado con los registros de control. Este modo de direccionamiento aplica a l o s modos de programación del usuario y supervisor. Las instrucciones que usan este modo son: Idcr, stcr, fldcr, fstcr y fxcr.

Formato de Instrucción :

31 26 25 21 20 16 15 14 13 11 10 5 4 O

52

I

Page 31: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

11. Instrucciones de Acceso a Memoria de Datos:

El MC88100 soporta tres modos de direccionamiento accesando el espacio de memoria de datos. Todos estos modos de direccionamiento pueden ser usados por las instrucciones Id, st, xmem y Ida para accesar datos en memoria o generar una dirección a memoria.

1. Registro Indirecto con Cero Extendido Inmediato Index:

El contenido de rS1 es adherido al bit 16 cero extendido inmediato index contenido en el campo 16 de la instrucción. El resultado es una dirección a memoria de datos usado para cargar o almacenar datos via el procesador de bus de datos (P bus). Para una carga de instrucción, la memoria de datos es cargada dentro del registro especificado por el campo D. Para un almacenamiento o cambio de instrucción a memoria el dato en el registro especificado por el campo D es almacenado en la memoria. Para la instrucción Ida la dirección calculada es cargada dentro de un especifico registro de destino.

53

I

Page 32: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

31 15 - 0

Instrucción. I I16

31 15 0

I 1

I & I

lnnediato Cero Extendido I16 I I I

Registro Destino a

1

31 15 O

O OPc&

Registro Fuente 1. rS1

31 O

s1 I16

Formato de Instrucción :

26 25 21 20 16 15 O I I I 1 1 31

2. Registro Indirecto con Index:

El contenido de rSl es adherido al contenido de rS2. El resultado es una dirección a memoria de datos usada para cargar o almacenar datos via el bus de datos P. Para una carga de instrucción, la memoria de datos es cargada dentro del registro especificado por el campo D. Para un almacenamiento o cambio de instrucción a memoria, l o s datos en el registro especificados por el campo D es almacenado a memoria. Para la instrucción Ida, la dirección calculada es cargada dentro del esFecifico 'registro de destino.

5 4

Page 33: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

31 - 0 I 1

rs2

I Re istro Fuente 1 Segistro Fwnt6 1.

Registro Fuente 2.

31 O

1 da

31 O V

Formato de Instrucción :

-

Registro Destino rD

Acceso

Memoria. a

3. Registro Indirecto con Index Escalado:

1 1 1 1 0 1

El contenido de rS2 es escalado por la medida de acceso y luego adherido al contenido de rS1. El resultado es una dirección de datos a memoria usados de la fuente 2 de operandos. En suma, para cargar o almacenar datos via el bus de datos P. Para carga de instrucción, los datos a memoria son cargados dentro del registro especificado por el campo de instrucción D. Para un almacenamiento o cambio de instrucción a memoria el dato en el registro especificado por el campo D es almacenado a memoria. Para la instrucción Ida,la dirección calculada es cargada dentro del especificado registro de destino.

D sl sub code s2

55

Page 34: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

- 31 O

rs2

Escala

31 O

Registro Fuente 2.

Factor Escala

I & I I 31 O

1

Registro Destino rD

Acceso a

Memoria.

Formato de Instrucción :

31 26 25 21 20 16 15 5 4 O

1 1 1 1 0 1 D sl sub code s2

2.2 Categorias de Instrucciones.

Las instruciones usadas en el MC88100 caen en seis categorias:

lógico, entero aritmetico, punto flotante, campo de bit, carga/almacenamiento/cambio y control de flujo. Los siguientes parrafos describen las diferentes categorias con sintaxis de operandos y la operación realizada.

1. Instrucciones Lógicas:

Las instruciones lógicas proveen tres comúnes operaciones lógicas: AND, OR y OR exclusiva. Una instrucción mascarable

56

Page 35: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

- inmediata es también provista. Estas instrucciones operan en toda la fuente 1 de operando o pueden operar en el mas bajo o en el mas alto de media palabra de la fuente 2 de operando. En suma, cuando el direccionamiento triadic es usado, las instrucciones lógicas pueden opcionalmente complementar la fuente 2 de operando antes que la operación suceda.

2. Instrucciones Aritmeticas de Enteros:

Estas instruciones proveen el estandar de operaciones aritméticas y una operación de entero comparado. Para sumar, restar y dividir operaciones, las instrucciones señaladas y no señaladas estan disponibles en el set de instruciones. Varias combinaciones para acarreo de bits pueden ser opcionalmente especificadas para sumar O restar instrucciones.

3. Instrucciones de Punto Flotante:

Las instrucciones de punto flotante proveen ANSI-IEEE 754-

1985 estandares aritmeticos de punto flotante y conversiones ie puntos flotantes de enteros para varias medidas de operando (sencilla y doble presición) . Esta categoria de instrucción también incluyen la instrucciones que accesan el control de registros de punto flotante. La tabla 2-4 lista las instruciones de punto flotante.

4. Instrucciones de Campo de Bit:

Las instrucciones de campo de bit setea, limpia, hace, extrae, rota y encuentra campos de bit en la fuente de operandos. Los campos de bit son especificados por un campo ancho y por el. offset en el campo de instrucción o por el mas bajo operando de 10 bits del rS2.

57

Page 36: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

- Estos mas bajos 10 bits son tratados como dos campos de 5 bits, con bits de 4-0 especificando el offset (<05>) desde la fuente 1 de operandos el bit de posición O y con bits de 9-5 especificando el ancho del campo (W5). Las instrucciones de campo de bit también ejecutan izquierdos y derechos desplazamientos de operaciones. Un ancho de cero especifica todos los 32 bits.

5. Instrucciones de Carga/Almacenamiento/Cambio:

Estas instrucciones ejecutan los accesos a memoria que mueven datos de varios tamaños entre la memoria y el registro de proposito general.

6. Instrucciones de Control de flujo:

Las instrucciones de control de flujo alteran la secuencia1 corriente de ejecución. Estas instrucciones incluyen salto, rama e instruciones de trampa.

2.3 Set de Instruciones

La tabla 2-8 lista el set de instrucciones: Tabla 2-8

Instrucción Operación

add Destino<-Fuente1 + Fuente2 addu Destino<-Fuente1 + Fuente2 and Destino<-Fuente1 A Fuente2 bbO FIP<-XIP + D16<<2 bbl FIP<-XIP + D16<<2 bcnd FIP<-XIP + D16<<2 br FIP<-XIP + D26<<2 bsr FIP<-XIP + D26<<2 clr Destino<-(Fuente1 A (Campo Bit o Os)) CmP Destino<-Fuente1 .. Fuente2

58

Page 37: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

I

Tabla 2-8 (continuación) Instrucción operación

div divu ext

extu

fadd fcmp fdiv ffO

ffl

f ldcr

flt fmul fstcr

fsub f xcr

int

jmp j sr

Id Ida Idcr

Destino<-Fuentel/Fuente2 Destino<-Fuentel/Fuente2 Destino<-(signo extendido de campo bit) de Fuentel Destino<-(cero extendido de campo bit) de Fuentel Destino<-Fuente1 + Fuente2 Destino<-Fuentel .. Fuente2 Destino<-Fuentel/Fuente2 Destino<-(bit numero) o Fuente2 rastreado por el primer borrado Dektino<-(bit numero) o Fuente2 rasterado por el primer seteado Destino<-Registro de control de Punto Flotante Destino<-Flotante(Fuente2) Destino<-Fuente1 * Fuente2 Registro de control de Punto Flotantec- Destino Destino<-Fuente1 - Fuente2 Destino<-Registro de control de Punto Flotante Registro de control de Punto Flotantec- Fuentel Destino<-Redondeo(Fuente2) Apunta a la Instrucción Fetchc-Fuente2 Apunta a'la Instrucción Fetchc-Fuente2 rl<-Apunta a al prox. instruc.

( + 4 si .n es especificado) Registro Destino<-Fuente de dato Destino<-Fuente1 + Fuente2 Registro Destino<-Registro Control

mak ( c a n p o bit)Destino<-(campo bit) de Fuentel 59

I

Page 38: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

I

.. . .------ ..

- Tabla 2-8 (continuación)

instrucción Operación

mask mu1 nint or rot rte

set st

stcr sub subu tbO tbl tbnd

tcnd trnc xcr

xmem

xor

Destino<-Fuente1 A IMM16 Destino<-Fuente1 * Fuente2 Destino<-Redondeo-Nearest(Fuente2) Destino<-Fuente1 v Fuente2 Destino<-Fuente1 rotado por 05 PSR<-EPSR NIP<-SNIP FIP<-SFIP SB<-SSBR

Destino<-(Fuente1 v (campo bit o 1's) Localidad de Memoria<-Registro Fuente (especificado como rD) Registro Control<-Registro Fuente Destino<-Fuente1 - Fuente2 Destino<-Fuente1 - Fuente2 Si el Bit B5 es borrado: Trap VEC9 Si el Bit B5 es seteado: Trap VEC9 Si S1 > S2: Trap Si S1 > IMM16: Trap Si la condición es verdadera: Trap Destino<-Truncar(Fuente2) (temp)<-Fuente1 Registro Destino<-Registro Control (temp)<-Registro Fuente registro Fuente<-Destino Destino<-(temp) Destino<-Fuente1 + Fuente2

2 . 4 TIPS DE PROGRAMACION.

Los siguientes'párrafos proveen información al programador sobre instrucciones de cambio Ó ramificación retardada y

condiciones de computación. 60

Page 39: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

2.4.1. Instrucciones Alternas.

Las instrucciones de cambio son facilmente realizadas a través del campo de instrucciones del MC88100. Los siguientes párrafos lista l a s funciones comunes de cambio y

las instrucciones usadas para ejecutarlas.

2.4 .1 .1 Correctos cambios aritméticos.

Cuando el campo W5 de una instrucción ext (campo de bit señalado) contiene todos l o s ceros (especificando un ancho de 3 2 bits), las instrucciones operan como una instrucción aritmética correcta de cambio. El offset especifica el número de posiciones a cambiar. Los bits. de alto orden son señales archivadas en el registro de destino. La figura 1 muestra el uso del cambio de la instrucción.

Ancho = 32 bits Offset = 5

1 1 1 O 1 1 1 1 1 1 1 O 1 1 1 1

\ 1 1 1 O 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 Extención bit

figura 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1

0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 \ \

figura 2 LLenado de Ceros

1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 / /

figura 3 LLenado de Ceros

61

Page 40: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

2 . 4 . 1 . 2 Correctos cambios lógicos. -

Cuando el campo W5 de una instrucción extu contiene todos ceros (especificando uns ancho de 32 bits), esta instrucción opera como una instrucción correcta a cambio de lógica. El offset especifica el número de posiciones a cambiar. Los bits de alto orden son cero, y archivadas en el registro de destino. La figura 2 muestra el uso de cambios en la instrucción extu.

2 . 4 . 1 . 3 Cambio Izquierdo.

Cuando el campo W5 de una instrucción mak contiene todos los ceros (especificando un ancho de 32 bits), la instrucción opera como una instrucción de cambio izquierdo. Esto es, el campo ancho selecciona una instrucción de cambio izquierdo. Esto es, el campo ancho selecciona el registro completo; el offset especifica el número de posiciones a cambiar. Los bits de bajo orden son cero archivados en el registro de destino.. La figura 3, muestra el uso de cambios en la instrucción mak.

2 . 4 . 1 . 4 Cambios Circular.

La instrucción rot (registro giratorio), gira los bits en rsl a la derecha por el número de bits especificados en el campo 05. El resultado es situado en rD. Para el registro de dirección triadic, los cinco bits de bajo orden del dato contenido en rs2 son usados como el campo 05. Los bits 9-5 en rs2 deben ser cero, los restantes bits son ignorados.

2 . 4 . 2 . Ramificación Retardada:

Ls instrucciones de ramificación y de salto tienen una rama retardada como opción (.n), esto puede ser especificado entonces por la siguiente instrucción secuencia1 la que es

62

Page 41: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

&

ejecutada antes que la rama de instrucción (prescinciendo de la condición de la rama). Esto provee un eficiente uso de los recursos del procesador cuando las ramas son tomadas por que el tiempo requerido para pre fetchear la tarjeta de instrucciones es entre cruzado con la usual instrucción de ejecución.

El programador puede tomar ventaja de la ramificación retardada que destaca por una incondicional rama ó

instrucciones de salto, situando intencionalmente una instrucción que normalmente reside antes de la rama, de modo que fisicamente sigue a la rama (en la ranura demorada) y especificando la opción .n para la rama. Alternativamente, la primera instrucción desde la tarjeta de dirección que llena la ranura demorada, para la rama condicional Ó

instrucciones de salto, la ranura demorada puede también ser llenada con una instrucción desde antes de la rama (si esto no afecta la ejecución de la instrucción de la rama). La ranura demorada puede también ser llenada con una instrucción desde la tarjeta de dirección con tal que el programa de ejecución no sea adversamente afectado por la extra ejecución de esa instrucción en el caso que la rama no sea tomada.

2.4.3. Condición de Computación.

El modelo MC88100 requiere que la condición de bits sea evaluada explicitamente cuando ello es necesario. Por consiguiente, la estructura del circuito en el MC88100 son la más eficientemente implementadas por instrucciones ramificadas que cuenta abajo de cero (en vez de contar hacia arriba del contéo del circuito) por que la comparación y la función de la rama puede ser facilmente implementado con una instrucción 88bcnd88. Si l a instrucción bcnd es usada, ninguna otra condición debe ser evaluada por la rama, y una instrucción de comparación extra no es necesaria.

6 3

Page 42: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

t - Otras condiciones pueden ser evaluadas ejecutando una instrucción de comparación (cmp Ó fcmp) seguida por una instrucción extraida de un campo bit. Un extracto no señalado (extu) de la condición apropiada de bit en el registro de destino para el cmp crea una variable booleana con los valores O y 1 . Sí la condición no necesita ser asignada, una instrucción de bit eficientemente ramificada sobre cualquier condición es generada por la instruccón de comparación.

6 4 I

Page 43: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

* 3. DESCRIPCION DE SEÑAL

3.1 Señales del Bus de Datos:

Esta sección nos proporciona información respecto de las señales externas del MC88100. La Figura 3-1, muestra la organización funcional de l o s signos, por función, clase, estado activo, conteo pin y nombre nenmonico. Seguido a la Figura, son párrafos describiendo cada señal o grupo de señales. Todas las señales de salida (ERR), son puestas en el estado de alta impedancia, cuando la señal de comprobación del P bus es acertado.

I. Señales del procesador del bus de datos:

El siguiente párrafo describe las señales que interfacean la unidad de datos a memoria externa o cache de memoria, manejando unidades a través del bus P.

1. Bus de dirección de datos (DA31-DA2):

El bus de dirección de datos provee la direccion de 30 bit por palabra de los datos del espacio de memoria. Un dato entero de palabra; bytes individuales o medias palabras, son seleccionadas por las señales de datos byte disponibles.

2. Bus de Datos (D31-DO) :

D31-DO son las 3 2 señales bidireccionales del bus de datos que interfacean el MC88100 al espacio de memoria de datos. Los datos en este bus corresponde al direccionamiento suplido por los datos del bus de dirección.

Page 44: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

, JY-

- 3. Datos seleccionados Supervisor/Usuario (DS/U):

La señal DS/U seleccionada entre los espacios de datos a memoria del usuario y supervisor. Este nivel a1t.o selecciona la memoria del supervisor y el nivel bajo selecciona la memoria del usuario. El nivel en estas señales para un acceso dado, es determinado por el valor del bit MODE en el procesador status del registro (PSR) o por el {usr} (memoria usuario) opción de las instrucciones Id y st.

4. Datos Lectura/Escritura (DR/W):

La señal DR/W indica cuando la transacción a. memoria es leida (DR/W=alto nivel) o escrita (DR/W=bajo nivel).

5 . Bus de datos Lock (DLOCK):

La señal DLOCK es una memoria de señal lock usada por la instrucción xmen en conjunción con el MC88200 2MMU. Cuando DLOCK es acertada, el CMMU no permite que la memoria del sistema sea accesada por ningun otro bus maestro entre l o s dos accesos xmen.

6. Datos Byte habilitados (DBE3-DBEO):

Las señales del dato byte habilitado son usadas durante los accesos a memoria de datos del MC88200 CMMü (o remoria). La Tabla 3-1, lista las señales e indica cuales bytes son accesados a la locación de dirección.

66

I

Page 45: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

Bus P de Datos CA3 1-CA2

\ d

f--- DS/-U DR/-W

DLOCK

DBE3-DBEO

Unidad

de

Datos

--+ vcc G n d

Un i dad

de

lnstruccion

MC 88100

Figura 3.1

Tabla 3-1

Bus P de instrucción CA31-CA2 .

, c31-co > DS/-U

CFETCH

CR! -CRO +-- ERR -> CLK <- PLLEN <- PCE

Señal - B i t s de Datos .............................

DBE3 - D31-D24 DBE2 - D23-Dl6 DBEl - D15-DO8 DBEO - D07-DO0

DBE3-DBEO son validas durante la fase de dirección de memoria de transacciones escritas e indica cual byte ( s ) en la memoria debería ser modificada. Una lectura a memoria, puede ser 4 bytes de extensa, y el procesador utiliza las señales habilitadas para extraer el dato requerido. Mientras tantto, durante una instruccih Id, el sistema de memoria puede manejar las 3 2 señales de datos, observar que uno, dos o cuatro señales habilitadas de byte son acertadas. Cuando las señales de byte habilitadas son todas negadas, la transacción pendiente (fase de dirección) es una transacc'ión

67

I

Page 46: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

nula, de otro modo, la transacción es una caria valida u operación almacenada.

7. Datos de Respuesta (DR1-DRO):

Las señales de datos de respuesta de entrada, indica el status de un acceso a memoria durante la fase de respuesta de una transacción de un bus. La tabla 3-2 , lista las diferentes codificaciones para las señales 3e datos de respuesta.

Tabla 3-2

DR1 - DRO - Transacción ...................................

O O Reservado 1 O Sucesos de Trans. de Mem. O 1 i Falla de Trans.

7 Espera de Men.

La suma de una resistencia externa es recomendada en cada señal de respuesta, así, si un dispisitivo no externo responde a la transacción, un error es indicado.

3.2 Señales del Bus de Instrucciones:

El siguiente párrafo describe las señales que interfacean la unidad de instrucción a la memoria externa o CMMUs.

1. Bus de dirección de código (CA31-CA2):

La linea de bus de dirección de codigo, provee la dirección de palabra de 30 bit al espacio de instrucción a memoria. Todas las instrucciones sen de 32 bits de extensión sobre el limite de 3 2 bit; aunque el espacio mas bajo de dirección

6 8

Page 47: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

- de dos bits no son requeridas y son implicitas a ser cero.

2. Bus de codigo (C31-CO):

C31-CO son las 3 2 señales que interfacean el espacio de instrucción a memoria del MC88100. Las instrucciones son siempre de 32 bits de extensión. El bus de codigo es un bus unidireccional, bus de lectura solamente.

3. Codigo seleccionado Supervisor/Usuario (CS/U):

La señal de salida CS/U selecciona entre espacios a memoria del usuario y supervisor. El alto nivel selecciona la memoria del supervisor y una de bajo nivel selecciona la memoria del usuario. El nivel en las señales C S / U son determinadas por el valor del bit MODE en el PSR.

4. Codigo Fetch (CFETCH)

Las señales de salida del CFETCH son cuando una instrucción fetch esta en progreso. Cuando CFETCH es acertado durante la fase de dirección de una transacción de bus, esta comenzando una instrucción fetch. Una señal negada indica que una transacción nula esta comenzando.

5. Codigo de respuesta (CRO-CR1):

Las señales de entrada de un codigo de respuesta indica el status de una instrucción de acceso a memoria durante la fase de respuesta de una transacción de bus. La tabla 3-3

lista las codificaciones para las señales del codigo de respuesta.

69 I

Page 48: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

los buses P y siempre impulsa la dirección de -buses, las señales disponibles del byte de datos, la señal de codigo fetch (CFETCH) y el bus de datos (excepto para la lectura del P bus). La instrucción de codigo de señales P (C31-CO) y las señales de bus de datos P (D31-DO) son entradas durante l o s accesos de lectura, como lo son las señales de respuesta para ambos buses. Todo MC88200 CMMUs (o dispositivo de memoria) en el bus P. son esclavos del procesador MC88100 y la impulsión de datos, codigo y señales de respuesta de acuerdo con esto. Las transacciones del Mc88100 son pipelinadas, lo cual permite al procesador comenzar una transacción antes de recibir el resultado o estado de transacción previa. Desde el procesador puede iniciar una nueva transacción en cada ciclo de reloj, el respondiente dispositivo (o sistema de memoria) debería monitorear las señales del bus en cada ciclo de 45 reloj y responder a transacciones validas de acuerdo con esto (como lo hace el MC88200). Instrucciones y transacciones de bus de datos no son necesariamente requeridas por el procesador en cada ciclo de reloj. Los buses insertan transacciones nulas durante aquellos ciclos de reloj en los cuales una transferencia no es requerida. Los datos (bus de datos P solamente) y lineac de dirección son impulsadas durante una transacción nula, cualquiera de señales DBE3-DBEO (bus P de datos) o el CFETCH (instrucción P bus) son negados. El procesador ignora las señales de respuesta para todas las transacciones nulas. Las señales de entrada y salida son sincronos en el que todos los tiempos sostenidos de ajuste son especificados en referencia a la señal del reloj. Las salidas del MC88100 son impulsadas desde un reloj y un máximo de demora es especificado. En suma, tiempos minimos retenidos son especificados en relación al reloj.

7 5

Page 49: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

P - - t--.

Memoria

ó

MMU

Bus P de Datos CA3 1-CA2

\ /

D S / - U

D R / - U

D L O C K

t - i D BE 3 - D BE o

Bus P de instruccién CA3 1-CA2

C31-CO Unidad Unidad

e---- CR! - C R O

Memoria

ó

MMU

Figura 4.1

4.2 Mecanismos de accesos de datos:

La unidad de datos controla todas las transferencias de datos entre el procesador y el MC88200 CMMüs o memoria via el bus P de datos. No obstante, los traslados de datos pueden ser de 8, 16 o 32 bits, los accesos memoria pueden ser accesos de lectura o escritura, y los accesos de memoria pueden ser temporizados para la instrucción m e n .Por consiguiente, el bus de datos P incorpora señales adicionales que controlan estas funciones. las señales DBE3- DBEO indica cual byte(s) en el bus de datos (D3-D=) son válidas durante transacción de datos de memoria. Para un dato de operación de lectura, la linea superior de 30 datos selecciona una palabra en memoria y las señales acertadas de byte disponibles ind i c < 3 n cual byte ( s ) entre aquella palabra requerida por el procesador. El sistema de memoria responde a la lectura situando el solicitado byte(s) en el bus de datos correspondiendq le señales acertadas de byte. El

sistema de memoria ~ i b ~ i e suplir una palabra completa de 32 bit, y el procesador automaticamente extrae los deseados

76

Page 50: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

I

byte(s) desde el bus. El procesador carga el registro de tarjeta con el resultado de la propia señal o cero. Durante una operación de memoria escrita, las señales disponibles del byte indica cual byte(s) en la memoria podría ser actualizado. Sobre un byte escrito, el'MC88100 situa el byte de dato en las cuatro posiciones de byte en el bus de datos. Las señales de byte disponibles indican el byte en memoria donde los datos son almacenados, y el sistema de memoria puede extraer datos validos desde cualquiera de las 4

posiciones de byte Similarmente en la escritura de una media palabra, el sistema de memoria puede extraer datos validos desde la alta orden o baja orden de una media palabra de el bus de datos P. Los mecanismos de acceso a datos son los siguientes:

-Transacción de lectura de datos -Transacción de escritura de datos -Accesos de datos pipelinados -Operaciones lock en el bus de datos P. -Faltas en accesos de datos

4.3 Interface del P bus con el MC88200

El MC88200 provee una interface alse al P bus para comunicarse con el procesador MC88100 y una interface M bus para comunicarse con la memoria y el reset del sistema. Las interfaces del bus P del procesador y el CMMU son designados para operar completamente sincronos con uno y otro y con una pequeña logica requerida entre ellos. Por encima de 8 CMMUs puede ser directamente conectado al bus P, proveyendo caching y facilidades de manejo de memoria para ambas instrucciones y accesos de datos. La Única lógica externa requerida para. el MC88200 del bus P es una dirección mas decodificada que genera una señal CS para cada CMMU en el sistema. El MC88200 automaticamente encierra las direcciones

77

I

Page 51: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

en el comienzo de una transacción en el busP y-genera las señales de respuesta al procesador con una temporización apropiada. El CMMU conforma las operaciones del P bus iniciadas por el procesador pero la dirección hasta que una respuesta de exito o de falta es dada (por algun CMMU) para previos accesos. El CMMU tambien automaticamente ignora l o s accesos que siguen a una transacción fallada y responde apropiadamente a la proxima transacción que comienza despues que la fase de respuesta que señaliza "faltatt. Finalmente, el CMMU (cuando esta sirviendo los buses de datos P) reconoce la afirmación de la señal DLOCK desde el procesador y llevarlo al M bus, asegurandose que los accesos de lectura y escritura generados por la instrucció n x-men no sea interrumpida por el bus maestro externo. .

78

I

Page 52: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

5. EXCEPCIONES

5 . 1 Excepciones

Las excepciones ocurren debido a 4 tipos de condiciones:

-Interrupción, las cuales son señalizadas externamente via señal de entrada INT.

-Errores señalados externamente, tales como una falta en accesos de memoria.

-Errores reconocidos internamente, tales como dividido por cero.

-Instrucciones de trampa.

El MC88100 comienza el proceso de excepción en la próxima instrucción despues que una excepción es reconocida. El procesador congela el contexto de la ejecución en registros de sombra y excepción tiempo, explicitando interrupciones deseables, y enteros en el modo supervisor. Adicionalmente, la unidad de punto flotante es deseable (y congelada) y la unidad de datos es permitida a acompletar los accesos pendiente. La ejecución de instrucciones transfieren de una manera ordenada a la apropiada excepción de rutina, la cual es definida por la excepción vector asociada con la excepción particular. La excepción de rutina manual es el software que procesa la condición de excepción y realmacena el procesador a una operación normal.

79

Page 53: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

F I-

Dirección Base de Tabla de Vecto~fkcD O O O O O O

*

O O O O

a

Tabla 5.1 Vectores de Excepción. Número de Excepción Dirección Definición

O O Excepción de Reset 1 VBR + $8 Excepción de Interrupción 2 VBR + $10 Acceso de Instrucción 3 VBR + $18 Acceso d8 Dato

VBR + $20 Acceso Perdido VBR + $28 Codigo no Implementado VBR + $30 Violación de Privilegio VBR + $38 Vioación de Límites VBR + $40 División Entera Ilegal

9 VBR + $48 Sobreflujo de Enteros 10 11-113 114 115 116 117 118 119 120

VBR +

VBR + VBR + VBR + VBR + VBR + VBR + VBR +

$50 Error de Excepción

$390 SFU 1 Presición $398 SFU 1 Impresición $3AO SFU 2 Presición $3A8 Reservada $3BO SFU 3 Presición $3B8 Reservada $3CO SFU 4 Presición

Reservadas para futuro uso

121 VBR 4; $3C8 Reservada 122 VBR + $3DO SFU 5 Presición 123 VBR + $3D8 Reservada 124 125 126

VBR + $3EO SFU 6 PresiciÓn VBR + $3E8 Reservada VBR + $3FO SFU 7 Presición

127 VBR + $3F8 Reservada 128-511 Excepciones llamadas por supervisor

8 0

Page 54: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

. 5.2 Vectores de Excepción y Registro de Vector base

Los vectores de excepción son los puntos de entrada dentro de la rutina manual de excepciones. El MC88100 mantiene una tabla vector consistiendo de 512 vectores de excepción sobre 4K-byte de pagina de memoria apuntada por la dirección de vetor base en el registro de vector base (VBR).

Cada excepción y vector de excepción tiene su correspondiente número de excepción el cual es generado por el hardware o especificado como una instrucción trampa de 9-

bit de campo. Este numero e s usado como el índice dentro de la tabla del vector. Cada vector de excepción es de dos instrucciones de largo ( 8 bytes). La Tabla 5-1 lista las condiciones de excepcion y sus respectivos vectores de excepción.

Una excepción vector contiene las primeras dos instrucciones de una rutina de excepción manual, una práctica comun es codificar el vector con una rama de instrucción que usa la opción n (rama demorada). La segunda instruccion puede ser entonces la primera instrucción en la excepción manual, esta instrucción es ejecutad cuando la ramificación de la tarjeta es prefetchada.

El VBR es cargado por e l software normalmente durante la inicialización del procedimiento. Esto puede ser modificado por el software a l a s diferentes páginas de la excepción vector. De todas maneras, se recomienda que el registro solo es modificado cuando l a s excepciones son incapacitadas (la sombra congelada, SFD1 y IND hits del PSR son conjuntadas).

81

Page 55: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

a

5.3 Prioridades de Excepción

Debido a las concurrentes unidades de ejecución del MC88100, muchas excepciones pueden ocurrir al mismo tiempo dentro del procesador. Cuando multiples excepciones ocurren, ellas son reconocidas por el procesador de acuerdo a las prioridades que se muestra en la Tabla 5-2. Las excepciones que tienen la misma prioridad nunca ocurren simultaneamente.

Tabla 5-2 Prioridades Excepciones

........................................... 1 Reset 2 Accesos de instrucción 3 Desimplementado opcode 4 Violación de Privilegios 5 Instrucciones Trampa 6 interrupciones 7 No preciso SFU 8 Acceso de Datos

5.4 Procesamientos de Excepción

Para todas alas excepciones excepto reset y la excepción de error, el MC88100 y procedimientos manuales de software para el procedimiento de excepción. Estos procedimientos son para reconocer la excepción, salvar el contexto del procesador, servir la excepción y regresar al normal procedimiento de la excepción.

El MC88100 no salva automaticamente el contexto del procesador como parte del procedimiento de excepción, el contexto del procesador es almacenando registros apropiados de sombra y tiempos de excepción. Salvar el contexto

82

I

Page 56: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

u - . !*# -

- necesario de memoria es la responsabilidad del software excepción manual.

El procesador esta en la excepción de procesamientos de estado cuando el sombreado es congelado (el bit SFRZ del PSR es seteado) .Cuando el MC88100 esta en la excepción de procesamientos de estado, no puede procesar otra excepción excepto por las instrucciones trampa. Si otra excepción ocurre, el MC88100 lleva la excepción de error, la cual es un error fatal. En sistemas requiriendo excepciones anidadas, el sombreado debe ser habilitado tan pronto como sea posible, despues una excepción es reconocida para situar el procesador en el estado normal. Esta subsecuentes excepciones permiten que ocurran y ser propiamente procesadas. El sombreado puede ser habilitado tan pronto como l o s registros sombra requeridos para manejar la excepción sean salvados dentro de los registros de proposito general o en memoria.

Las interrupciones externas, el acceso mal alineado de excepción y el inexacto puntp flotante de excepción pueden ser mascarables. Cuando ocurre una excepción mascarable, el procesador continua su operación en el modo normal y no toma acciones.

Los procesamientos de excepción son ejecutados en tres fases interrelacionadas:

1. Reconocimiento de excepción, durante la cual el procesador salva el contexto de la ejecución en los registros de sombra y cambia el flujo del programa para el manejo de la rutina de excepción.

8 3

Page 57: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

2. Manejo de excepción, durante la &al corrige la excepción o ejecuta la función iniciada por una instrucción de trampa.

3. Regreso de excepción, durante la cual el procesador restaura el contexto de la excepción en efecto ante la excepción ocurrida y entonces resume la ejecución en la localidad del programa ante la excepción ocurrida.

El manejo de rutina de excepción ejecuta funciones especificas basadas en el tiempo de excepción que ocurrieron.

5.5 Excepciones de la Unidad de Instrucción

A continuación se mencionan las interrupciones externas de excepción y los diferentes tipos de excepción que son generados por la unidad de instrucción:

1. Interrupción de excepción. 2. Acceso malalineado de excepción. 3 . Implementado codigo de operación de

4 . Privilegios de violación de excepción. 5. Trampas de instrucciones de excepciones

6 . Saltos-señal de violación de excepción.

excepción.

tcnd,tbl,tbO.

8 4

Page 58: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

45;: .: L c 4

$

5.6 Excepciones de acceso a memoria.

Las excepciones de acceso a memoria ocurren cuando un acceso a memoria de datos o una instrucción prefetch falla para terminar normalmente. Estas excepciones, las cuales son generadas por el MC88200 CMMU u otro hardware, son señaladas como una falta decodificada en respuesta a la señal durante la respuesta fase de una transacción. Las excepciones de acceso a memoria pueden ocurrir bajo las siguientes condiciones:

1. Una carga, almacenamiento, xmem, u operaciones de instrucciones prefetch, fueron emitidas a una dirección que no es válida en el espacio corriente de direcciones (no existen direcciones penalizadas). 2. Una carga, almacenamiento, u operaciones de

instrucción prefetch fueron emitidas para un segmento o página en un sistema de memoria virtual que no reside en mucha memoria y pude ser leido desde el disco (segmento o defecto de página).

3. Una carga, u operación de instrucción prefetch fueron emitidas por software con insuficiente corrección (privilegio o violación de la protección de escritura).

4 . Los problemas fueron detectados por detección de error del hardware (bus error).

8 5

I

Page 59: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

4

6. FORMA DE TRABAJAR DE UN RISC (Diagramas de tiémpo)

Para dar máximos beneficios de las ultra rapidas arquitecturas de modernos microprocesadores, es escencial que el hardware externo (ROM,RAM) mantengan la ejecución pipeline del CPU con muchas instrucciones y flujo de datos a la velocidad de reloj d e l CPU. En este caso 25Mhz de un procesador RISC. Esto significa hacer una nueva palabra de 32 bits disponibles para el CPU cada 40ns. La ligación del CPU a memoria tiene historicamente muchas tecnicas. Pero como el RISC es de otra era del CPU, se crean nuevos diseños.

Implementando una interface convencional RAM de O estados de espera (estática) en 40ns, requiere un tiempo de acceso mejor que este [40ns (un ciclo de reloj)-14ns (retraso de dirección)-5ns (tiempo para poner el dato), Ó 21nsl. Esto se muestra en la Fig.6-l.

Aún este número, permite no retardos en interface de buffer de dirección y datos. La velocidad de acceso realmente no es práctico, especialmente si la SRAM es parte de una memoria cache, donde la lógica de control y buffer adicionales puede introducir más retardos. Pero por qué hacer procesadores que no pueden operar a la velocidad máxima con la más rápida RAM

disponible?. La respuesta vá ligada al concepto básico del cálculo de velocidad de acceso a memoria (convencionalmente en tácnicas de diseño a memoria). Aunque la tecnología convencional de memoria ha servido a la industria de la microcomputadoras muy bien durante los primeros 20 años, una nueva y má's compleja tecnología debe ser desarrollada en los 90's.

La nueva generación de Ticroprocesadores como el AM29000, el MC88000 y aún el I N T E L 80386, usan técnicas de pipeline y modo brusco para dar máxima eficiencia de los modernos

86

Page 60: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

* , dispositivos de

estática (SCRAM) son disponibles

memoria, como la RAM DINAMIC -de columna . Nuevas técnicas de interface de memoria para llevar a cabo la mayor parte de los

sistemas de ejecución de cero estados de espera, con este nuevo CPU, aún con memorias de bajo costo.

Salida brusca sin s t o p ( a l t o ) :

Para entender que pasa, se necesita ver como el CPU de cuatro etapas opera. Las instrucciones se traslapan con datos, esto.puede ocurrir simultaneamente. Aunque los buses de instrucción y datos son separados, estos comparten un comun bus de direcciones, esto, ocasionalmente necesitaran ambos el bus de direcciones al mismo tiempo.

El modo brusco permite acceso secuencia1 ocurriendo solo cuando la primera dirección de direcciones (el inicio) ha sido colocado en el bus de direcciones.

En la Fig.6-2 se muestra la temporización de un acceso de una instrucción fetch en modo brusco. La dirección de la primera palabra de datos es colocada en el bus de direcciones por el primer ciclo de reloj. Es la responsabilidad del hardware, por el control de la RAM, de dar incremento de direcciones a la RAM para cada ciclo de reloj en la cual la señal de Burst Request (IBREQ) es activo. Esto, el bus de direcciones es libre para acceso de datos. Debe fetcharse muchas instrcucciones secuencialmente, de modo tal que el modo brusco, aumenta la velocidad de acceso para la RAM de instrucciones. Sin embargo, si una instrucción de brinco toma ejecución a una nueva red de código, el ciclo fetch es interrumpido.

87

Page 61: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

9

Esperando para memoria: e

Sistema de grandes memorias con tiempo de acceso de 20ns son justamente no prácticos. Si se simula el diagrama de tiempo de la Fig.6-1, con un ciclo de espera RAM [tiempo de acceso 80ns (dos ciclos de reloj)- 14ns(retardo de direcciones)-5ns (datos set-up)]=6lns, sin incluir buffers (14.08MIPS) solo se obtiene el 64 por ciento de la ejecución pico.

Simulando la ejecución con tres estados de espera (aproximadamente la mejor memoria dinámica (DRAM)) da 7.42MIPS Ó 3 4 por ciento pico de ejcución (claramente,las ventajas de estos procesadores rápidos se pierden por no usar sistemas de memoria de alta velocidad).

Pipeline:

En pipeline, la dirección de la siguiente instrucción es colocada en el bus de prioridad al complemento de la corriente instrucción. El hardware externo latchea esta instrucción, liberando al bus por otro canal (instrucciones o datos).

Velocidad:

Un banco de memoria maneja direcciones pares y el otro banco las direcciones impares. Si suponemos que una instrucción fetch ocurre en una dirección secuencial, entonces un banco es activo en un tiempo; el otro banco, puede ser el ciclo de precargado del RAS (para DRAM) o poniendo el próximo dato listo. Este proceso logra eficiencia con el modo de acceso de instrucción brusca. Cuando se hace una petición IBREQ, el primer banco de RAM, es direccionado. Es aproximadamente 60ns para poner el dato listo. La siguiente palabra de dato, sin embargo, viene del siguiente banco de nemoria. Si el

88

Page 62: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

1 . ' I _--<-

I

I / b ATA PEQoEsr I

fig. 6 - 2

6F I

Page 63: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

* - sistema es diseñado para que la próxima dirección sea colocada en el segundo banco de memoria en el inicio del ciclo (usando incremento externo), entonces el banco toma aproximadamente 100ns para preparar el dato.

Además el segundo banco puede presentar el dato al CPU sólo 40ns Ó un ciclo, después de que el primer banco lo hace similarmente mientras el segundo banco es accesado. El primero puede ser preparado para presenta la siguiente palabra de datos al CPU justamente 40ns después. Esto se puede ver en la Fig 6-3.

89

Page 64: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

* 7 . 0 TIEMPOS DE EJECUCION.

r i- ti-,

Esta sección describe el tiempo de ejecución de instrucciones para el MC88100 y los factores que afectan el tiempo. La ejecución y operación de tiempos son presentadas como guías, porque un tiempo exacto de todas las posibles circunstancias no pueden ser listadas. Esta guía aproximada es usada desde una exacta ejecución de tiempo, tanto la instrucción u operación, quién es grandiosamente dependiente de la velocidad de memoria y otras variables del sistema.

Refierase al punto 7.1, cosideraciones generales de tiempo para listar las guías, el resto de esta sección describe una detallada información del tiempo para instrucciones prefetchadas y entonces los tiempos de ejecución para todas las instrucciones a través de sus respectivas unidades de ejecución. Ejemplos de tiempos son incluidos para procesamientos de excepción, tablero sostenido, prioridades escritas con anterioridad, y sección del procesador debido a los cic,os de espere sn los buses. Un ejemplo de instrucción dispuesta, la cual muestra ejecución concurrente y varias dependencias de registro, son provistas para ilustrar algunas interacciones de tiempo.

7 . 1 CONSIDERACIONES GENERALES DE TIEMPO.

El MC88100 es diseñado para minimizar la instrucción promedio en tiempos de ejecución, lógica, campo de bit, y las instrucciones más integradas ejecutadas en un periodo de tiempo. Este tiempo de instrucciones pueden efectivamente realizar solo un ciclo de ejecución pipeline y alimentación precoz. En general l a s instrucciones de ejecución son presentadas en cuatro partes (ver fig 7-l), prefetch, codificar, ejecutar y respuesta.

90

Page 65: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

- La instrucción de tiempo prefetch consiste de la dirección y fases de respuesta sobre la instrucción P bus para fetchear la instrucción desde el programa especificado.

El tiempo prefetch no esta incluido en las tablas de ejecución de tiempo de instrucciones y pueden ser calculadas separadamente (ver figura 7-3).

El tiempo de codificar es entre cruzado con la fase de respuesta del prefetch y usualment no contribuye a toda latencia. El tiempo total de ejecución de instrucción corresponde a la fase de ejecución. El tiempo de respuesta es el tiempo requerido para regresar resultados al file de registro y esto no contribuye al tiempo-total de ejecución si las ranuras de respuesta estan disponiobles cuando son requeridas (algunas instrucciones no necesitan una respuesta). Las instrucciones son prefetcheadas y ejecutadas concurrentemente con previas instrucciones quienes producen una etapa entre cruzada (ver figura 7-1) que es medida en periodos de tiempo. Este entre cruce decrece el tiempo total para una secuencia de instrucciones.

La siguiente guía general debería ser usada cuando el programa para implementar codigos de trabajo que producen el más eficiente software para el procesador MC88100.

El principal objetivo cuando se optimisa el software para una máxima efieciencia es evitar encasillar la unidad de instrucción pipeline. El resto de esta sección esta dedicada a la explicación de las razones para seguir estas guias, proviendo mas detallada información sobre el significado de ciertas diferencias, y optimizando la ejecución.

1.- Minimizar 'dependencias de registro entre instrucciones multiciclos y subsecuentes que usas sus resultados. La latencia de ejecución total, debe de ser usado con el menor

91

Page 66: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

/- a-. L -

#

monto de tiempo desde el despacho de iñstrucciones multiciclo hasta el tiempo de una instrucción subsecuente. En general, ejecutar carga e instrucciones FPU en muchos periodos de tiempo como sea posible y antes que sus resultados sean requeridos.

2.- Instrucciones consecutivas de unidad de datos podrían ser programados en grupos de tres Ó menos. Si los ciclos de espera son insertados por las respuestas de memoria trazadas, la instrucción pipeline puede continuar con la ejecución de otras instrucciones.

3.- La ramificación retardada debe ser utilizada cuantas veces sea posible. Esto puede maximizarse por la implementación de un circuito con ramificación condicional tal como contar hacia cero y checando el valor del conteo con la instrucción bcnd. Si una instrucción usual en el ciscuito no puede ser situada en la demorada ranura, la primera instrucción en la tarjeta de dirección podría ser movida a la demorada ranura.

4 . - No seguir instrucciones id.d y xmem con una instrucción de unidad de datos por que esto causa que la instrucción pipeline se encasille en un tiempo.

5.- Instrucciones de multiplicación de doble tiempo sequidas por otras instrucciones de pun%o flotante deber de ser espaciadas por lo menos por otras dos instrucciones de puntos no flotantes.

6 . - Instrucciones de división no deben de estar inmediatamente seguidas por otras instrucciones de multiplicar FPU. Estos tipos de operaciones deben de estar espaciadas por'lo menos 3 4 , 2 6 y 55 periodos de tiempo para una sola presición, entero y doble presición dividiendo resultados respectivamente.

92

Page 67: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

* - 7.- El. tiempo crítico del circuito debería programar la ranura de respuesta, entonces estas instrucciones que renuncian a la ranura son estrategicamente mezcladas con instrucciones que requieren una respuesta aplazada.

Para maximizar la ejecución, el hardware podria ser diseñado para minimizar ciclos de espera en ambos buses de instrucciones y datos.

7.2. EJECUCION CONCURRENTE.

Las unidades de ejecución concurrente y el bus multiplexado diseñados en el MC88100 pueden realizar por encima de cinco tipos de operaciones en paralelo, las &ales permiten la acción de aproximar un s o l o ciclo de ejecución. Esta operaciones son:

- Accesos al programa de memoria. -Ejecutar una instrucción aritmética, lógica Ó de campo de bit. -Accesos a memoria de datos. -Ejecutar instrucciones de no multiplicación de punto flotante Ó de una instrucción de división de entero. -Ejecutar instrucciones de punto flotante Ó

instrucciones de multiplicación de enteros.

La figura 7-2 muestra un ejemplo de disgrama de tiempos en la cual todas las unidades estan operando en paralelo. Es resumen, el punto flotante, datos y unidades de instrucción son pipelinadas y capaces de completar una operacion en cada periodo de tiempo. E s t a s unidades son como sigue:

-Cada uno de los cinco puntos flotantes sumado a la tabla pipelinada puede contener una instrucción de punto flotante sumado, restado Ó convertido.

93

Page 68: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

53

-Las seis etapas de multiplicación de punto flotante pipeline, puede contener por encima de seis instrucciones de multiplicación.

-Cada una de las tres etapas de unidades de memoria pueden contener una instrucción de acceso de datos.

-La instrucción de mecanismos de unidades prefetch mantiene dos sobresalientes codigos de accesos.

El conocimiento acerca de la operación de estas etapas pueden ser utilizadas por código programado de software para explotar totalmente el alto nivel de ejecución concurrente del hardware, hasta hoy maximizando la instrucción del MC88100.

7.3. INSTRUCCION DE TIEMPOS PREFETCH.

La unidad de instrucción del MC88100 prefetch, (vía la instrucción P-Bus) ejecuta instrucciones de control de flujo. La unidad de instrucción mantiene tres indicadores de instrucción: ( x i p ) , quién contiene las direcciones de la instrucción más reciente despachada para ejecución, el prosimo indicador de instrucción (nip), y el indicador de la instrucción Fetch ( f i p ) , el corresponde a las proximas instrucciones en la instrucción corriente. La instrucción P- Bus es un bus pipelinado y procesa la fase de respuesta de una acceso (correspondiendo al nip) simultaneamente con la fase de dirección para el próximo acceso (el cual corresponde al f i p ) . Cuando un cambio de flujo sucede(e.g. una rama es tomada) el nip y el fip son apropiados e instrucciones son prefetcheadas desde la apropiada tarjeta de dirección.

9 4

Page 69: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

. . L B . cy - - I

8 - 7 . 3 . 1 . TIEMPO EFECTIVO PREFETCH Y LATENCIA PREFETCH.

El tiempo prefetch para una instrucción puede ser calculada como el número total de tiempos desde el comienzo de fase de dirección para una instrucción de acceso al final de la fase de respuesta (latencia de tiempo prefetch) para el prefetch (ver figura 7-1). Este tiempo son dos tiempos de reloj en un ciclo de no espera del medio ambiente. Sin embargo, hay dos accesos en diferentes etapas del prefetch en cualquier tiempo dado, y son entre cruazadas por un tiempo, haciendo "el tiempo efectivo del prefetchtl para cada acceso en una secuencia de solamente un tiempo. Por consiguiente, la fase de dirección de un prefetch es descrito como el ciclo prefetch en la figuras de esta sección. Aunque la fase de respuesta es también parte de la de prefetch, esto ocurre simultaneamente con la fase de dirección para el próximo acceso, y el segundo tiempo es contado con el primer tiempo con el primer tiempo para el próximo acceso. Esta convención se muestra claramente al comienzo de uns instrucción prefetch.

7 . 3 . 2 . EFECTOS DE INSTUCCION EN CICLOS DE ESPERA EN P-BUS.

Los ciclos de espera en los accesos de la instrucción P-bus son contadas como sucede en la fase de respuesta del acceso correspondiente. En consecuencia, como l o s ciclos de espera son insertados, ellos son simplemente sumados a un tiempo de la fase de dirección para un particular prefetch (ver figura 7-3). En la figura 7-3, la latencia efectiva prefetch para la instrucción A es de dos tiempos; considerando que, el tiempo efectivo de prefetch para la instrucción B es de solamente un tiempo, aún cuando la fase de dirección para B es repetida dos veces. Es la instrucción de ejecución A que es demorada por un ciclo de espera, y el prefetch de la instrucción B no causa demora adicional. La tabla 7-1 hace un resumen de los varios tiempos de instrucción prefetch

95

Page 70: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

para todas las instrucciones del MC88100.

7 . 3 . 3 . INSTRUCCIONES DECODIFICADORAS.

Toda las instrucciones son decodificadas durante la fase de respuesta del prefetch. Para la mayoría de las instrucciones, al final del tiempo de decodificar, el tablero de conteo de bits para la fuente y el destino de registros son checados. Todos ellos deben estar claros antes que la instrucción antes que la instrucción sea despachada a la apropidad unidad de ejecución para la inmediata ejecución. Para las instrucciones de punto flotante esto especifica resultados de doble precisión, el procesador checa el tablero de contéo .de bits en ambos destinos de registros (rD y rD+1) mientras que la instrucción esta en la etapa de decodificar (Ó en ambas etapas de decodificar como en el caso de la fuente de doble precisión de operandos). Si una Ó varias fuentes de doble presición de operando son especificados, la disponibilidad de la fuente de operando es checada una a la vez (un registro checado durante cada fuente decodificada). Para la instrucción st.d el tablero de conteo de bit para ambos,fuentes y destino, son checados uno a la vez (la primer fuente y destino son checados durante la primera etapa de codificación y la segunda etapa y destino son checados durante la segunda fuente de codificación). Si la instrucción a ser ejecutada es una instrucción multiciclo que puede alterar el contenido de un registro de proposito general, los bit apropiados en el tablero de conteo de registro (correspondiente al registro de destino) son conjuntados en el un periodo de tiempo despues de la última etapa de decodificación de una instrucción.

L o s tiempos de ejecución de una instrucción listados por todas partes del resto de esta sección, no incluye un circuito de tiempo efectivo de prefetch, desde que es casi

96

Page 71: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

c LEIP. Lu;, '- -Y-. A

- siempre entre cruzado por la ejecución de otras instrucciones.

7.4. EJECUCION DE UNIDADES DE TIEMPO

Las instrucciones de unidades de entero, las cuales son el conjunto de instrucciones más simples del MC88100, se ejecutan en un período de tiempo. La Tabla 7-2 lista de instrucciones ejecutadas por la unidad de enteros y explicitamente define el tiempo de ejecución para cada un a de las instrucciones en un tiempo de reloj. La Figura 7-4, muestra las secuencias para un serie de instrucciones de unidad de enteros. El tiempo de respuesta para poner al dl a el registro de destino no esta incluido en el tiempo de ejecución listada porque el tiempo de respuesta sucede en paralelo con la ejecución de otras instrucciones y causas no percibibles demoradas.

Las instrucciones Idcr, stcr, xcr, Fldcr y Fxcr operan enteramente dentro de la unidad de entero y no inicia ningún acceso a memoria. Las instrucciones stcr y Fstcr renuncian a la ranura de respuesta y el procesador puede pasarlo sobre otra unidad de ejecución solicitnado una ranura de respuesta en ese tiempo.

Las instrucciones ejecutadas por la unidad de enteros incluyen el entero aritmético, campo bit, lógico y circuito, almacenamiento, cambio, instrucciones de registro. El entero multiplica y divide (mu1,div y dim) instrucciones que son ejecutadas por el FPU y no son listadas en la Tabla 7-2. Referirse al 7.4.3.2.Instrucciones de Tiempo FPU, para información sobre estas instrucciones.

7.4.2.Unidad de Operación de Datos:

La unidad de datos pipeline tiene tres etapas y ejecuta toda 97

Page 72: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

t

- la carga, almacenamiento e instrucciones de intercambio a Y desde memoria. Como se describió en la sección cinco operaciones de bus, los datos P bus realizan todos los datos de accesos externos. El dato P bus es pipelinado como la instrucción P bus y puede procesar la fase de dirección de un acceso simultaneamente con la fase de respuesta para el acceso previo. Las tres etapas pipeline son numeradas 2 , l y

O, y la secuencia de transacciones a memoria de datos a través de la etapas en ese orden (82,l y entonces O). La etapa de la unidad de datos es la etapa de cálculo de dirección y es considerada la etapa de "ejecucióngl para todas las instrucciones de unidad de datos. La etapa 1 de la unidad de datos contiene la instrucción en la fase de dirección, y la etapa O contiene la instrucción en la fase de respuesta en el dato P bus. Las etapas O y I tienen latches asociados con ellos (nombradas como primaria y secundaria, latches de respuesta, respectivamente) que pueden alamcenar los resultados de operaciones de carga que son iniciadas pero que no pueden responder al file de registro porque otras instrucciones estan usando el bus de destino en el tiempo requerido por la unidad de datos. El tiempo total requerido para realizar un acceso a la unidad de datos son tres periodos de reloj, un reloj por cada etapa, asumiendo una operación de bus de datos de no ciclo de espera. Sin embargo, como la instrucción de operaciones prefetch, el tiempo efectivo de ejecución es solamente de un ciclo de reloj en muchos casos porque tres operaciones entrecruzadas pueden estar en progreso en cualquier tiempo. La Tabla 7-3 muestra el tiempo efectivo de ejecutar instrucciones para el acceso a memoria.

La carga de memoria e instrucciones de cambio ponen el bit del tablero contador para el registro de destino durante la fase de ejecución de la operación. Por consiguiente el tiempo total para realizar la operación puede impactar el tiempo promedio de instrucción. La ttlatenciatl para la

98

Page 73: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

-7

#

ejecución de una instrucción de carga es la 'demora del tiempo desde que la instrucción es codificada hasta que los resultados esten disponibles para una instrucción subsecuente. La latencia para una instrucción de almacenamiento es el número total de tiempos de reloj que toma para accesarla por completo. Aunque almacenamiento e instrucciones Ida no regresan resultados y no ponen los tableros de conteo de b i t s , ellos si hacen uso de la fase de respuesta. La respuesta usada por almacenamiento e instrucciones Ida siguen el ciclo de ejecución para el cálculo de dirección. Este es el tiempo en el cual la fuente de datos es fetchada desde el file de registros. Porque el fetch ocurre en el bus de destino interno (D bus)ninguna otra instrucción puede dar respuesta al file de registro en este momento. Carga de memoria e ,instrucciones de cambio no usan la ranura de respuesta inmediatamente despues de ejecutar tiempo o tiempos de reloj; mientrastanto, esa ranura de respuesta esta disponible para otras unidades de ejecución.

Sin mebargo, estas instrucciones requieren una ranura de respuesta cuando el acceso(s) a memoria son completos.

7.4.2.1.Latencia de acceso total:

La latencia de acceso total es dependiente de la disponibilidad del procesador de recursos (la unidad de datos pipeline, accesos a la ranura de respuesta, etc.) y del número de ciclos de espera incurrido en las fases de respuesta de otros accesos tambien el requerido acceso de datos. La latencia pipeline puede ser descrita como sigue:

Data Access l a t e n c y = 3 + CW + BW + AW clocks.

Cuando CW, BW y AW son los ciclos de espera asociados con accesos ya en el dato pipeline (BW y AW) y el acceso de

99

Page 74: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

#

corriente (CW). Asumiendo la unidad de datos pipéline no es encasillada debido a otras instrucciones o causas, la latencia es tres tiempos de reloj más el número de ciclos de espera incurridos por el acceso como se muestra en la Tabla 7-3. Latencia de acceso de datos no incluye el tiempo de respuesta para cargar operaciones porque la respuesta puede ocurrir simultaneamente con la ejecución de la instrucción requiriendo el resultado (Ver 7.5.2 Prioridad de respuesta y alimentación precoz) La Fig 7-5 muestra el tiempo asociado con latencia de accesos a memoria. Codificación de programación de software podría considerar la latencia de accesos para una operación de carga antes de dar una instrucción que requiere l o s resultados desde la carga. Ciclos de espera en el bus de datos P tiene cuatro posibles efectos en la ejecución total de instrucción. Primero, ellos afectan la latencia de accesos para la ejecución de la instrucción particular con la respuesta de espera. Segundo, ellos pueden causar demoras en subsecuentes instrucciones de unidad de datos, causando la unidad de datos pipeline a la casilla, demorando la ejecución de todas las subsecuentes instrucciones. Esto puede ocurrir en el caso de una cinta de las instrucciones de unidad de datos esperando la ejecución cuando la unidad de datos pipeline esta llena (3 accesos pendientes) y encasillada debido a los ciclos de espera en el bus de datos P. Finalmente, ciclos de espera en el bus de datos P, puede ser una indicación que la memoria no esta respondiendo al acceso de datos rapidamente. En este caso, si las instrucciones son prefetchadas desde la misma memoria principal, prefetches pueden tambien ser demorados porque el gran acceso de datos previene el prefetch desde accesar la memoria cuando es requerida.

7.4.2.2.Carga a Memoria, Almacenamiento y Cambios:

Cálculos de ejecución de tiempos para la instrucciones Id.d, st.d y xmem son casos especiales. Las instrucciones de doble

100

Page 75: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

,

#

carga (1d.d) y xmem se dividen en dos transaccrones en la fase de ejecución (etapa 2 ) de la unidad de datos pipeline. Por consiguiente, la ejecución efectiva en la etapa es de dos tiempos de reloj, si esta es seguida por otra instrucción de unidad de datos. Esto crea una casilla en la instrucción pipeline solamente si la instrucción siguiente la 1D.d o xmem es una instrucción de unidad de datos. La Fig. 7-6 muestra una ejemplo de tiempo de una instrucción Id.d(A) seguida por una instrucción Id.d(B). En la secuencia mostrada, Id.d(A) causa una casilla en la instrucción pipeline porque Id.d(A) reside en la etapa dos de la unidad de datos por dos tiempos de reloj. Porque la primera 1d.d esta aún en la etapa dos, la segunda 1d.d no puede avanzar a la unidad de datos inmediatamente despues decodificada. En suma, el ejemplo muestra que la instrucción C es tarnbien prevenida por adelantado a la unidad de datos porque la segunda instrucción Id.d(B) reside en la etapa dos para dos tiempos de reloj. Mientrastanto, si la instrucción C no es una instrucción de unidad de datos, la instrucción pipeline no tiene esta casilla adicior.il, y la instrucción C puede avanzar a la apropiada unidad de ejecución despues de decodificada.

La instrucción st.d es diferente de las instrucciones 1d.d y xmem porque ella debe residir en la etapa decodificada de la instrucción pipeline para dos tiempos de reloj. Por consiguiente, sta siempre encasilla la instrucción pipeline de por lo menos un tiempo de reloj, presciendiendo de la siguiente instrucción.

Subsecuentemente, el tiempo efectivo de ejecución para la instrucción st.d es siempre de dos tiempos de reloj. Adicionalmente, la instrucción st.d checa el tablero contador de bits para las dos fuentes de registros independientemente. En la primera fuente de registro el tablero de conteo de bits es checado durante el segundo

101

Page 76: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

tiempo decodificado. Las dos mitades de la instrucción tambien proceden a la unidad de datos independientemente. Por consiguiente, las dos mitades de una operación st.d puede ser separada si la segunda fuente de registro no esta disponible debido a una tablero contador detenido. De hecho, una excepción puede ocurrir dentro de las dos mitades de la operación de almacenamiento, y el manejador entonces debe reanudar ambas mitades.

La Fig 7-7 muestra un ejemplo de tiempo de una instrucción st.d seguida por una instrucción st.. Este ejemplo tambien muestra que los ciclos de espera en el bus de datos P no necesariamente causan una instrucción adicional en las casillas pipeline. En el ejemplo, aunque los ciclos de espera causan la unidad de datos encasillarse, esto no causa una demora adicional en la ejecución de instrucciones A It B, porque A y B no son instrucciones de unidad de datos. Estas instrucciones pueden proceder a la unidad de ejecución una vez que las instrucciones previas han sido emitidas a la unidad de datos.

7.4.3. Instrucciones de ejecución FPU:

Las instrucciones de punto flotante requieren mas de un tiempo de reloj para la ejecución. Sin ambargo, una ejecución efectiva de un ciclo puede ser realizada debido al modelo del pipeline del FPU. Una secuencia de instrucciones ejecutadas por el FPU que especifica una precisión operandos (32 bits fuente y destino) pueden lograr un efectivo rendimiento especifico de una instrucción por periodo de reloj. Las instrucciones que especifican una o más fuentes operando de doble precisión ( 6 4 bits) toman un ciclo adicional (en la primera etapa) al principio, y pueden lograr un rendimiento especifico tan pequeño como dos periodos de reloj por instrucción. Las instrucciones que especifican destinos de doble precisión ( 6 4 bits) también

102

Page 77: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

a

requieren dos periodos de reloj para dar respuecta al file de registro. Mientras tanto, el tiempo de respuesta es usualmente no percibido debido a la alimentación precoz de la porción individual de 3 2 bits del resultado. Aunque de una a dos instrucciones de rendimiento especifico de reloj pueden ser archivadas, instrucciones subsecuentes que usan los resultados de cualquier operación multiciclo deben esperar hasta que la ejecución total de la operación es completada. Todas las instrucciones ejecutadas por el FPU

renuncian a la ranura de respuesta que corresponde al periodo de reloj. Mientras tanto la ranura de respuesta esta disponible para otra unidad de ejecución. Sin embargo las instrucciones FPU requieren una ranura de respuesta cuando la ejecución de la instrucción es completada.

7.4.3.1. Operaciones pipeline del FPU:

El FPU esta implemmentado como dos pipelines que participan en la etapa inicial ( F P 1 ) y final (FPLAST) (ver fIG.7-8). Instrucciones de entero y punto flotante usan el multiplicador pipeline; todas las otras instrucciones de punto flotante y división de entero usan el sumador pipeline. La secuencia de instrucciones de punto flotante através de los pipelines de un tiempo de reloj por etapa en la mayoria de los casos. Instrucciones de multiplicación pueden operar en paralelo con instrucciones ejecutadas por el sumador pipeline, y por encima de 6 operaciones de multiplicación pueden ir en progreso en un tiempo de reloj. Alternativamente por encima de 5 instrucciones la suma pipeline de punto flotante puede también ejecutarse concurrentemente.

Cuando una instrucción de punto flotante o instrucción de entero mu1 o . div es decodificada por la unidad de instrucción, el tablero contador de bit para todas las fuentes y todos los registros de destino es checado. Cuando

103

Page 78: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

4

la fuente operando(s) de doble precisión son espécificadas, las fuentes son checadas una a la vez.

Cuando el apropiado tablero contador de bit es claro, la instrucción es cargada dentro del FPU1, y los operandos son fetcheados desde el file de registros. Durante este primer ciclo de ejecución, los operandos son checados por valides y l o s exponentes son calculados.

Operandos de una precisión son convertidos a un interno formato de doble precisión.

Si uno o ambos operandos de la fuente son especificados como de doble precisión, la instrucción restante en FPUl para un tiempo de reloj adicional mientras que la segunda mitad de l o s operandos son accesados desde el file de registro y una valides es realizada(ver fig. 7-10). Porque la instrucción pipeline en la unidad de instrucción mantiene la dirección de la instrucción que es emitida la primera etapa de ejecución, la unidad de instrucción pipeline no puede avanzar hasta todas las fuentes de registro especificadas por una instrucción de punto flotante que esta disponible y fu fetcheada desde el file de registro. Mientras tanto, cuando la fuente operandos de doble precisión son especificados, una ranura de tiempo de reloj es incurrida en la instrucción pipeline; ninguna otra instrucción puede comenzar la ejecución hasta que una instrucción previa esta en el proceso de fetch de fuente operandos.

Una vez que todas las fuentes de registro son fetchadas, el tablero contador de bit(s) para el registro(s) de destino son agurpados. Todas las precisas excepciones de punto flotante son reportadas al final de un periodo de uno o dos tiempos de reloj en donde la instrucción de dirección reside en la instrucción pipeline

104

Page 79: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

#

' Secuencia de instrucciones de multiplicación de eñteros (Ver Fig 7 - 8 ) a través de las etapas MULS y MUL3 del pipeline multiplicador y entonces continua a la etapa FPLAST y es compartida entre todas las nstrucciones ejecutadas por el FPU.

El punto flotante multiplica secuencia de instrucciones (Ver Fig 7 - 8 ) a traves de las cuatro etapas del pipeline multiplicador. Si la fuente operandos para una operación de multiplicación de punto flotante son especificados como de doble precisión, el pipeline de punto flotante es tambien encasillado en la etapa FP1 para dos tiempos adicionales de reloj despues que todas las fuentes operando son abastecidas. Cuando la instrucción de doble tiempo de doble multiplicación es encasillada en FP1, ninguna otra instrucción puede ser despachadas al FPU. La Fig.7-9 muestra el tiempo básico para una instrucción de multiplicación de simple precisión- La FIg.7-1 muestra el tiempo equivalente para una operación de multiplicación con dos fuentes operandos de doble precisión y un resultado de doble precisión. Excepto para las instrucciones de división, la secuencia a traves del sumador pipeline (Ver Fig. 7 - 8 ) es el mismo que para otras instrucciones de unidad de punto flotante. La instrucción reside en la etapa FPl uno o dos tiempos de reloj, dependiendo del tamaño de la fuente operandos, y luego progresa a traves de las etapas ADD2, ADD3 y ADD4 en un tiempo de incremento. Las instrucciones de división iterativa en la etapa ADD2 y el numero de iteraCiOneS (no incluyendo el primer reloj en la etapa ADD2) corresponde a 1+R, cuando R es el número de bits de precisión especificado para el resultado. Por consiguiente, extra tiempos en laetapa ADD2 igual l+R cuando:

R=24 para un resultado de simple precisión en punto flotante.

R-32 para un resultado entero, y

105

Page 80: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

R=53 para un resultado de doble prec’isi It n de punto flotante.

Mientras que una instrucción de división esta iteracionando en la etapa ADDL, solamente el sumado pipeline es encasillado. El pipeline de multiplicación puede continuar ejecutando instrucciones.

Sin embargo, si la ejecución de una subsecuente pipeline de suma de instrucción FPU es atentado, su resto en la etapa FP1 hasta que el pipeline de suma avance. Esto previene una tercera instrucción de punto flotante desde FPU, haciendo que la unidad de instrucción pipeline se encasille, y

ninguna otra instrucción puede ser ejecutada. Este tipo de demora puede ser evitado por instrucciones de división apropiadamente espaciadas y otras instrucciones que dependen en el pipeline de suma del FPU.

La etapa FPLAST checa imprecisas excepciones causadas por instrucciones de punto flotante y realiza arbitraje con las otras unidades de ejecución para una ranura de respuesta y regresar resultados al file de registro. Porque tres instrucciones del FPU pueden estar listas para proseguir la etapa FPLAST al mismo tiempo (e.g.,faad, entero mu1 y fmul) hay tambien un esquema prioritario para forzar a realizar las etapas FPLAST.

La trayectoria del entero del entero de multiplicación tiene la primera prioridad, seguido por la trayectoria de multiplicación de punto flotante y entonces el pipeline de suma (Ver Fig 7-8).

La respuesta para resultados de doble precisión requiere de dos ciclos a .traves de la etapa FPLAST, una para cada registro. Sin embargo, debido a la alimentación precóz, el tiempo a traves de FPLAST no parece ser más grande que un

106

Page 81: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

I

tiempo .de reloj, excepto cuando el resultado no e3 usado por otra instrucción doble de punto flotante. Las instrucciones dobles de punto flotante pueden tomar ventaja de la alimentación precoz para el segundo registro porque ellos no usan rama de respuesta y permite al FPU recibir una rama de respuesta en ese tiempo. El codigo de software puede minimizar este tipo de casillas y demoras considerando las interdependencias de l o s pipelines en la unidad de punto flotante y otras unidades de ejecución del MC88100.

7 . 4 . 3 . 2 . Tiempo de la instrucción FPU:

En la mayoría de los casos, el tiempo para un segmento de codificación particular de instrucciones de punto flotante

. pueden ser calculados usando la información suplida por la secuencia de nstrucciones a traves de los pipelines de punto flotante. El sumario en la Tabla 7-4 puede tambien ser utilizada para calcular instrucción de ejecución de tiempo. El tiempo listado en la columna del FP1 corresponde al monto de demoras desde el tiempo que una instrucción FPU es decodificada hasta el tiempo que una segunda instrucciÓn.FPU puede ser despachada al FPU para la ejecución.

El tiempo FPLAST es usualmente no percibida de ser mas grande que un reloj; sin embargo, el asterisco en la tabla identifica aquellas instrucciones que causan dos ciclos a traves del FPLAST.

El segundo ciclo puede ser visto cuando una subsecuente instrucción requiere el resultado que es inmediatamente restituido al segundo registro de destino. La columna de total latencia asume ningunademora asociada con el tablero de conteo sostenido, prioridades de respuesta demoradas o casillas pipeline causadas por otras instrucciones.

107

Page 82: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

* 7.4.4.Instrucción de ejecución y excepciones de cbntrol de

f l u j o :

La unidad de instrucción ejecuta todas las instrucciones de control de flujo calculando la tarjeta de dirección por instrucción subsecuente de ejecución y salva apropiadamente la dirección de retorno por subsecuentes llamadas de entero. Las instrucciones bsr y jsr de control de flujo salvan puntos de retorno como un resultado de su ejecución y usan la ranura de respuesta para dar de alta el file de registro (rl) por consiguiente. Sin embargo, el tiempo de respuesta no esta incluido en el tiempo de ejecución porque no es una demora perceptible. Todas las otras instrucciones de control de flujo renuncian a la ranura de respuesta. Instrucciones de control de flujo son divididas en tres categorías: incondicionales, condicionales y trampa. La Tabla 7-5 lista las diferentes instrucciones de control de flujo y su efectivo tiempo de ejecución. Cuando la ramificación retardada no es seleccionada, las instrucciones incondicionales y condicionales efectivamente toman dos tiempos de reloj para ejecutar cuando la rama es tomada y un tiempo de reloj cuando la rama no es tomada. Para el caso de la rama tomada, la instrucción fetchada inmediatamente después de la rama o salto no es ejecutada, y, aún asi esta es prefetchada, y deshechada. Subsecuentemente, la instrucción pipeline es archivada con nuevas instrucciones localizadas en la tarjeta de dirección. Los siguientes párrafos, proveen una clara explicación del tiempo relacionado con la ramificación demorada y trampa procesada por la unidad de instrucción.

7.4.4.1. Tiempo de ramificación:

La Figura 7-íl(a) muestra un ejemplo codificado de la secuencia de una instrucción de rama condicional con la rama no demorada seguida por una instrucción add con una

108

Page 83: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

#

instrucción Id como la tarjeta de la rama. -Aunque la instrucción add es prefetchada (antes que la rama sea ejecutada), Sta es descartada. El ejemplo, tambien ilustra el tiempo de relación entre el tiempo de ejecución atribuida a la instrucción de la rama y el comienzo de la instrucción de la tarjeta Id prefetch. En realidad estos dcs eventos no ocurren simultaneamente como lo implica la Fig. 7-11. La unidad de instrucción realiza todos los cálculos de dirección para las instrucciones de control de flujo durante la etapa de decodificación para la instrucción de la rama, y la actual ejecución de la rama en O tiempo de reloj. Aunque al comienzo del próximo período de reloj (representado como la primera fase que ejecuta la rama) la tarjeta de dirección ya fue computada, y la fase de dirección para la instrucción de tarjeta prefetch comienza. Mi.entras tanto, ninguna otra instrucción puede ser despachada para ejecución en este período. El período de reloj muerto es por consiguiente atribuido como una ejeción de período de reloj para la rama. El segundo tiempo de reloj para la rama tomada es causado por la fase de respuesta necesaria para el prefetch de la instrucción de la tarjeta. Otra vez, ninguna otra instrucción puede ser despachada para ejecución durante este período de reloj si la rama demorada no es usada.

7 . 4 . ' 4 . 2 . Tiempo de ramificación demorada:

La ramificación demorada es una ramificación particular que puede ser usada para una más eficiente ejecución de las secuencias de las instrucciones cuando las ramas son tomadas. Ramificación demorada (invocando especificamente la opción en una instrucción de control de flujo) instruye al procesador a ejecutar la instrucción que secuencialmente sigue la instrucción de la rama antes que la tarjeta de instrucción. La próxima instrucción secuencia1 ya fué prefetchada para el tiempo que la rama se ejecuta; aunque esta puede ejecutarse mientras la instrucción pipeline es

109

Page 84: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

, rearchivada con la instrucción en la tarjeta de'dirección. La Fig. 7-ll(b) muestra el tiempo relativo para una secuencia de instrucción que usa la opción de rama demorada. La eficiencia sumada por la actuación de la rama demorada es aparente comparando los dos diagramas en la Fig 7-11. La Fig 7-lí(a) muestra que la rama tomada con ramificación no demorada toma dos tiempos de reloj para ejecutar y la Fig.7- ll(b) muestra que la opción de rama demorada permite a la instrucción add (en la rama demorada) ejecutar en uno de esos relojes. Mientrastanto, el tiempo efectivo de ejecución para las instrucciones de la rama que usan ramificaciones demoradas es reducida a un período de reloj, proveyendo la instrucción add que es una instrucción usual para el programa. Este tiempo es el mismo que el tiempo de rama no tomada. La instrucción de ranura demorada sigue a jsr.n bsr.n puede usar el valor en rl con tablero de conteo no demorado; el valor es el resultado de la subrutina llamada instrucción.

7.4.4.3. Instrucciones Trampa y Excepción de Tiempo:

El tiempo de ejecución para las instrucciones trampa y otras excepciones son listadas en la Tabla 7-5; el tiempo de eventos relativo al per ! odo de reloj mostrado en la Fig 7- 12.

Todas las instrucciones trampa, excepto la tbnd, hacen que el Me88100 sincronice sus actividades (completa ejecución de todas las previas instrucciones) antes de la fase de ejecución para la trampa (este tiempo de sincronización de tiempo no esta incluido en la Tabla 7-5). La ejecución de las instrucciones de trampa no tomadas es similar a las de instrucciones de ramas no tomadas y toma un período de reloj (no incluyendo.el tiempo para sincronizar el procesador).

El tiempo para ejecutar instrucciones de salto de trampa 110

Page 85: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

* - esta asignado como tres ciclos de reloj, aunque el vector fetch para la trampa comienza despues de un ciclo de reloj de ejecución para la trampa. Similarmente, para el caso de las instrucciones de bifurcación que no hace uso de retardo de bifurcación, los dos ciclos de reloj extras son necesarios para rellenar la instrucción pipeline y decodificar la instrucción en el vector de trampa. Aún cuando la instrucción de trampa no esta inmovil ejecutándose durante esos dos ciclos de reloj, no pueden otras instrucciones ser ejecutadas. Por lo tanto, el tiempo esta atribuido a la trampa. Las dos instrucciones que le siguen a la trampa en la instrucción corriente no son ejecutadas y son descartadas.

Todas las otras condiciones de excepción procesadas por el MC88100 siguen la misma secuencia de tiempo descrita por la instrucción detrampa. Las condiciones de excepción causadas por la falta de acceso al bus hace tres ciclos de reloj para procesar (tres ciclos de reloj desde el fin de la fase de la falta de respuesta y el comienzo de la ejecución de instrucción en el vector de excepción)

Todas las excepciones congeladas en el FPU y ciclos de espera por la unidad de datos para completar accesos pendientes entre los períodos de reloj tres y cuatro (Ver Fig 7-12). Cuando los accesos pendientes son completados (o tachados), los procesos congelados del estado de la máquina, y el vector de instrucción estan prefetchados. Las excepciones causadas por instrucciones no implementadas son reportadas durante la fase de ejecución por la instrucción no implementada. Como en el caso de la trampa, dos ciclos de reloj más estan atribuidos a la instrucción de tiempo no implementada para contar el tiempo prefetch del vector de instrucción. El período de reloj tres es el punto de referencia en la Fig 7-12 para precisar el punto flotante e imprecisar excepciones como las fases pasadas de ejecución

111

Page 86: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

I,

en FPí Ó FPLAST, respectivamente.

7.5.FACTORES DE TIEMPO:

Ciertamente los factores pueden afectar el total de tiempo de ejecución de una secuencia de instrucciones. Esos factores incluyen las anteriores y posterores instrucciones, la residencia de operandos y palabras de instrucción en los caches en la mencionadas unidades de memoria/cache (CMMUs) , y la residencia de translaciones de direcciones en la translación de dirección cache. Otroas factores tales como el tablero de conteo sostenido, prioridades de respuesta, ciclos de espera en los buses y excepciones, determinan el número total de ciclos de reloj. Los siguientes párrafos describen l o s tableros de conteo, prioridades de respuesta y los ciclos de espera en los buses.

7.S.l.Efectos del Tablero de Conteo:

Porque hay multiples unidades de ejecución en em MC88100, una operación puede requerir un uso de valores en un registro particular de propósito general que esta en el proceso siendo modificado por otra operación concurrente. El tablero de conteo escencialmente setea un bit "en uso" por cada instrucción en un registro de destino. Subsecuentemente, las instrucciones necesitan cualquiera de estos registros fuente o de destino retenidos en la etapa decodificadora de la instrucción pipeline de la unidad de instrucción pipeline (un retenedor de tablero de conteo) y

no son permitidos a procesarse dentro de la etapa de ejecución hasta que este bit es borrado. Un tablero de conteo de bit es borrado cuando la instrucción coloca el bit tiene que escribir este resultado de respuesta en el archivo de registro, . así como las operaciones subsecuentes (posiblemente en tablero de conteo retenedor) con el contenido del registro actualizado.

112

Page 87: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

La Fig.7-13, muestra un ejemplo de un diagrama d& tiempo en la cual demuestra una instrucción pipeline encasillada debido al tablero de conteo sostenido. La instrucción A requiere el contenido de la instrucción precedente Id. Durante el período de reloj tres, el tablero de conteo de bit es agrupado para el registro, esto es, estar alterado por la instrucción Id. Durante los períodos de reloj cuatro y cinco, los restos de la instrucción A en la fase de respuesta (decodif icador) hasta que el tablero de conteo sostenido es realizado; entonces entra en la etapa de ejecución en la apropiada unidad de ejecución en el período de reloj seis. La instrucción B continua en la fase de dirección (prefetch) hasta que la instrucción A haya entrado en la fase de ejecución. Dependencias de registros en instrucciones secuenciales tienen un efecto distinto en tiempo promedio de instrucción. Una instrucción subsecuente que es sostenida en la etapa de decodificación debido a un tablero de conteo sostenido que encasilla la instrucción pipeline prefetchada hasta que los registros apropiados esten disponibles.

Por encima de toda ejecución de una secuencia codificada es demorada hasta que el tablero de conteo sostenido es realizado y permite al pipeline proceder. Aunque un trabajo usual puede ser completado durante esta demora (operaciones de punto flotante u opera ciones de datos a memoria ya en proceso pueden continuar); el tablero de conteo sostenido puede incrementar el tiempo de ejecución para una secuencia codificada dada. La Fig 7-14, muestra una secuencia codificada donde la instrucción A no requiere los resultados del registro de proposito general que es alterado por la instrucción Id. Aún cuando el tablero de conteo sostenido comienza en el período de reloj cuatro. La instrucción A aún entra en la fase de ejecución en ese tiempo. La instrucción B puede o no crear una casilla en la instrucción pipeline, dependiendo de si o no requiere los resultados del registro

113

Page 88: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

que esta en el tablero de conteo sostenido. El coftware de una programa codificado puede efectivamente ordenar operaciones para minimizar las dependencias que encabeza el tablero de conteo sostenido.

7.5.2.Prioridades de respuesta y alimentación precóz:

Todas la unidades de ejecución escriben los resultados en el archivo de registro ( y almacena instrucciones fetch en sus operandos) a traves del bus interno D. cuando multiples unidades de ejecución necesitan simultaneamente escribir un resultado (o fetchar una fuente en caso de un almacenamiento), la secuencia otorga una ranura de respuesta a la unidad de prioridades más altas.. Una instrucción completa es retardada si una unidad de prioridades altas previenen de una unidad de ejecución recibiendo desde una ranura de respuesta.

El órden de la prioridad inevitable por el secuenciador es como sigue:

1. Unidad de enteros, almacenamiento, Ida, jsr e instrucciones vsr.

2. FPU-Multiplicación de enteros(multip1icaciÓn

3 . FPU-Instrucciones de multiplicación de punto pipeline).

flotante. 4 . FPU-Adición pipeline (adición de punto flotante, substracción, división, comparación y conversión de instrucciones, más una instrucción de división de enteros) 5. Unidad de datos-carga de instrucciones.

La Fig 7-5 muestra un ejemplo de ejecución completa que depende de respuestas de prioridad. Un período de reloj uno, el FPU y la unidad de enteros, completa la fase de ejecución

114

. . . I

Page 89: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

L

de dos instrucciones. La unidad de datos, completa la fase de respuesta para la instrucción A , la instrucción B completa esas fases de direcciones y la instrcucción C, completa esa fase de ejecución.

Por el comienzo del período de reloj dos, todas la tres unidades tienen solicitada una ranura de respuesta. El FPU

repite esas fases de ejcuciones pasadas, denotadas con FPLAST. La unidad de datos carga el dato de lectura para la instrucción A, dentro de una respuesta latch que es usada como un registro sostenido y completado, la fase de respuesta para la instrucción B. En el periodo de reloj tres el FPU, teniendo la próxima prioridad, esta garantizando la ranura de respuesta. La instrucción A , es permitida para completar esta respuesta (de la respuesta latch) en el período de reloj cuatro. La respuesta latch secundaria en la unidad de datos es usada para almacenar los resultados de la instrucción B hasta que la primera respuesta latch para la instrucción A es realizada.

Para permitir respuesta latch de sobreflujo, la unidad de datos no inicia ninguna nueva transacción de datos en el bu5 de datos P mientras hay dos accesos externos y uno de ellos esta esperando la respuesta en una ranura de respuesta.

Las prioridades de respuesta, no necesariamente tienen algún efecto adverso en el tiempo de ejecución. Sin embargo, efectos indirectos son inducidos en dos caminos. Primero, si una operación es demorada desde su respuesta a su registro de destino, esto puede causar un tablero de conteo sostenido para una instrucción subsecuente. Segundo, una operación no permite ranura de respuesta en su pipeline, hasta que es completada.

La Fig 7-16, muestra un ejemplo donde la unidad de datos garantiza una ranura de respuesta antes que la unidad de

115

Page 90: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

enteros.

Durante el período de reloj tres, el tablero contador de bit para un registro de propósito general r6 es preparado. En el período de reloj cinco, la fase de ejecución de una instrucción add es encasillada debido al tablero de conteo sostenido. Durante el período de reloj seis, la ranura de respuesta, es garantizada a la instrucción id, porque la instrucción add requiere l o s resultados de id (en r6).

La Fig.7-16, tambien muestra un ejemplo de alimentación precóz, la cual permite la ejecución por la unidad de enteros al mismo tiempo que la respuesta es completada, aún cuando ambos eventos requieren el mismo registro. La alimentación precóz, reduce el número de períodos de reloj que una unidad de ejecución debe esperar para usar un registro. El bus D, es encerrado para esperar la unidad de ejecución sobre uno de los buses fuente, permitiendo el nuevo contenido del registro a ser usado cuando el procesador actualiza el file de registro. Durante el período de reloj seis, la alimentación precóz permite la ejecución de la instrucción add para entrecruzar en el mismo período de reloj como la respuesta para los resultados de id.

7 . 5 . 3 . Ciclos de Espera y Encasillamiento Pipeline:

La respuesta de espera ocurre durante la fase de respuesta del prefetch o durante accesos de datos, cuando una instrucción o un dato operando no puede ser situado en el dato o instrucció del bus P durante el período de tiempo requerido. La siguiente instrucción restante en la fase de dirección hasta que un llsucesoll de respuesta es recibido.

La respuesta dividida puede insertarse tantas respuestas de espera como sean necesarias hasta que la instrucción o dato es reemplazado. Mientrastanto, las casillas de respuesta de

116

Page 91: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

espera la instrucción o dato pipeline en relación al número de respuestas de espera recibidas.

Las casillas pipeline, son creadas cuando una instrucción no puede entrar a la próxima etapa de ejecución.

Las casillas pipeline, son inducidas por respuestas de espera, el tablero de conteo sostenido y prioridades de respuesta. Tambien, ciertas instrucciones automaticamente crean casillas pipeline porque del número de períodos de reloj son requeridos para la ejecución. La Fig.7-17, muestra un ejemplo de casillas pipeline creadas por ciclos de espera, tableros de conteo sostenido y retardos de respuesta. En el período de reloj dos, el prefetch para la instrucción A, ha recibido una respuesta de espera, y la fase de dirección para la instrucción B debe ser repetida en la unidad de instrcción pipeline. En el período de reloj tres, un llsucesolt de respuesta fue recibido y una instrucción A entra a la fase de la ejecución y prepara un tablero de conteo de bits en el período de reloj cuatro. La fase de ejecución normal para la instrucción B es el período de reloj cinco pero esto no puede ejecutarse porque esto requiere el uso del registro reservado por la instrucción A. En el período de reloj siete, el tablero de conteo de bit es

realizado y la instrucción B entra a la fase de ejcución. Porque la instrucción B fue retardada entrando a la fase de ejecución, la instrucción C tiene que repetir esa fase de dirección en la unidad de instrucción pipeline.

7.6.EJEMPLO DE EJECUCION:

Las siguientes instrucciones codificadas en lenguaje ensamblador (Ver Fig 7-18) la curva interna de la seííal de precisión para + comparación de línea de carga de ejecución por el procesado MC88100. Esto no es intentado para ilustrar un optimizado programa codificado -mejor dicho, esto es

117

Page 92: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

* , provisto para ilustrar varias interacciones de'tiempo. La

instrucción prefetch no es mostrada; cualquiera que sea, una explicación instrucción por instrucción es provista en ia figura.

7.7.SUMARIO DEL SET DE INSTRUCCIONES DE TIEMPOS:

La Tabla 7-6, lista la instrucciones ejecutadas por el MC88100, la instrucción y las unidades de entero identifican el tablero de conteo de bits checados. La Tabla 7 - 7 , lista la tabla de conteo de bits checados y seteados por las instrcciones del FPU.

118

I

Page 93: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

m - .)a Lir, L

B I'

- . . . r-

.- .

EXECUTE C

WBB)

' I INSTRUCTION C PREFETCH ANO EXLCUTE LATENCY kl- W B = WRITEBACK

Figure 7.1, Instruction Prefetch and Execute Timing

Wec)

Page 94: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

CLOCK 5 CLOCK 1 4 + , C L O C K 4 4 - CLOCK I 4 * CLOCK 7 +L- C L O C K I - ! -CLOCK I CLOCK 2 4- - I I I I I ' 1 I I

EXECUTE- 7 EXECUTE

A i l d iv

EXECUIE ldiv ld iv

EXECUTE v EXECUTE )' V

ld iv EXECUTE ldiv

EXECUlE lmul

REPLY ldiv ld iv

' PMFETCII

IdlV

EXECUlE 1 I lmul PREFETCH

lmul

\ EX E c u I E

I I n[ REPLY

Idd Id d 1

-I 1 i

I

I

REPLY and a n d i

r PREFETCH '

I d I I

onecution in progress in this clock pariod with 4 0XecutIon uiws opere siing in par.

I I < I

. allel.

Figure 7-2. Concurrent Execution Example . _ _ . - . ... -. . . . -

. -

Page 95: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

-CLOCK I -C

I PHLtElCH 1

add 1

U O C K 5 -+ * CLOCK 8 4 C- uoca ? 4 CLOCK 3 4 - CLOCK 4 + t -CLOCK 2 4 +

I I - I

PREFEICH \ 11

PREFCICH 11 rub or

WB WAIIEBACK

Figure 7-4. Integer-Unit Instruction Execution

-CLOCK I '&CLOCK 2 &CLOCK >+CLOCK 4 +CLOCK á+CLOCK 8 - 1 - -CLOCK I -+

d

SIAGt I

' STAGE0

z

EXtCUlt EXECUlt

REPLY MPLY B C

WB and 2

L - I I I

lOIAL ACCESS LAlENCY If WAIT REPLIES. €le.

I 1

F i g u r a . P Bus %it CycleS

I

Page 96: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

I -CLOCK 2 -- CLOCK 3 + +- UOCK4** CLOCK 5

I I I I , -I INS1 AUCl ION

PIPEUNL STALL UIfAIEO

BY id.d A

- .

--c.+- UOCK a 4- CLOCK?+

I I I INSlRUCllON

PIPELINE STAU CAEAIEO er SECONO a d

-CLOCK I --I

A--

+CLOCK I ClOCK I -+- CLOCK 3 4- CLOCK 4 -.c CLOCK 5 4 + CLOCK 8

l j ' l I 1 I I A U I U M A I I C ,b

SIAL1 ELCAUSí Or

sionr ouueit

PREIEICH 1d.d A

YSlRUCllON UNll

IAlA UNl l ----o-.

+-CLOCK I 3

1

I I 1 I ,-) (r') ("':") c.la:, 1d.d A 1d.d E

I

I I I I

I P P wn WRIILBACK

Figure 7-6. 1d.d Followed by 1d.d Timing (Example).

- I 7

Page 97: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

W l t M C K

- A002

ADO3

A004

INTEGER mu1 - A o

M U U

MU13

MU14

MUL5

FLOATING.POIN1 mu( U A 0 0 PIPELINE

00UBLE.PRECISION DESIINATION OPERANO

6 @ PRIORITIES

Figure 7-8. FPU Pipe(ine Stages 1

-ClOCK 2 -t CLOCK 3 -3- CLOU 4 3

1 I

. $2

+CLOCK 5 -w - CLOCK 6 4

1

.

M U U ’ uw I( MU14

86

.. . .

. . I . ’ ,

Page 98: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

L

-CLOCK I-* CLOCK 2 --w+ CLOCK 3 --L CLOCK 4 - . . 1 I I I .*

I YIiEtEICH

\ bciid

OECOOf\ EXECUIE EXtCUlE \ bcnd bcnd bciid I I IAEPEAIEOI

WB WRllEBACK

4.C- CLOCK 5 4

I

.

bend loop

ad4 r2. 13. r4

-CLOCK 5 4 - CLOCK 8 CLOCK 7 --I

1 I -

Figure 7-10. Double-Precision Multiply

W 8 WRITEBACK

I i l Braiich Taken IDelayed Branching -Not Solocisdl

Figure 7-11. Branch Example (Sheet 1 of 2)

87

-CLOCK 6 4

1

AOOAESS

-CLOCK 7 4

I

Page 99: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

. @

bcnd.n LOOP

add r2.13.14

OOP id IS. r?. 18

YB WRilEBACK

C - C L O C K I -.C. CLOCK 2 -+ CLOCK 3 +.t- CLOCK 4 -t- CLOCK 5 +CLOCK (I 4 - I

+CLOCK I-- CLOCK 2 d - CLOCK 3 4- CLOCK 4 + - I - ' c I

-

+CLOCK 5 4

I

I

I

I

add EXECUIEO IN DELAY SLOl FOR

THE BRANCH

4

lb) Branch Taken IDeliyed Branching - Selected)

PREFETCH PREFETCH \ I PREFETCH I PRCFETCH PREFETCH TRAP B I \ C \ VECTOR VECTOR. I

1 L

SYNCHRONIZES PROCESSOR

C

01s- \ 01s. CAROEO]

Figure 7-11. Branch Example (Sheet 2 of 2)

+CLOCK 6 --I

I

AOORESS id

7 C L O C K 7 3

I

REPLY id

I

(AI Trip Instruction

Figure 7-12. Trap Instructions and Other Exceptions (Sheet 1 of 21

Page 100: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

I I ' I 1 I I I 1 I I I I I I I I I I I

-CLOCK 1 - 3

Fault reply phase lor in. struction or dota ICEass ea.

captions.

1

I

ccrr_r t 1'

i inll Io cum. piola. h a o r a staie at other

(BI Oihoi Cxcop~lonr

Figure 7.12. Trap Instructions and Other Exceptions (Sheet 2 of 2) '

89

Page 101: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

. . . . .,* 8 1 " , . , "

CLOCK 5 --C+ CLOCK 6 -). CLOCK 3 -t CLOCK 4 43-

I I - C INSTRUCTION PIPELINE STALL -J

PREFETCH PREFETCH 1 I ,

A t 8 1 C PREFETCH \

B PREFETCH \

I

WB = WRITEBACK

REPLY b

W B Id 2 ---------

SCOREBOARO SCOREBOARO HOLD BIT CLEARED

,-__----- --------- ___------ Scoreboard bit Instruction A s set for ragiiirr normal execule completrd to be riterrd cycle deferred by U Inmirue Scoreboard bit

clrrrrd for tion. genrral-purPOSr

Execution of id regtsitr

instruction instruction A executed

Figure 7-13. Scoreboard Hold - Instruction Pipeline Stall

90

Page 102: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

I

i

I

I !

1

PREFETCH ’ D

PREFEICH PREFEICH ’

Figure 7-14. Scoreboard Hold - No instruction Pipeiine Stail

91

Page 103: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

FLOATING~POINT IlNll INSTRUCTION

-CLOCK ? --C.C. CLOCK 3 --C- CLOCK 4 3

I I RFPEAT FPLAST ,

INTEGER UN11 INSTRUCllON

-

DATA UN11 l.NSlRUCTlONS

-CLOCK I+

I 1

FPUST

EXFCLJIE PHASt

EXECUTE PHASí C ,

ADDRESS PHASE 8

REPLY PHASE A

integer unot

instruction could proceed 10 execute

REPLY 7 PHASE B 1

iNSTRUCTION A iULL INSTRUCTION B

!pllll '"1 Ail 3 units re. I Wrileback corn. I Writeback for

w t l Í F P l l C I W I i l i i i i ~ wiilalinc), ~i la iwi l 1111 111s I I I ~ I I I I I IIIW A

plaied iha 0 x 0 i lol Prioiiiy FPU Nerl coniplotsd lor I

0818 UIIII corn wow unit FPU grrfiiea IO Ilia Wfiiebdct lor pietes reply repeats rnolner data unit Pri inslruction 6 phase eiecula phase mdry wriieback still pending

c ~ a i m (#ha.. ~iw.n la I l i i 111 r r i i eh r rb sIuI 111. si i i i ullll

ana # a grrn i ra iii. oi.d vmim I S . & . SIUI Il l#

pr i ' i l i f y Wfll.. bi 'h I.tLII IS

lUi4.J U" 111.

d a 1 8 unit

laicn i s atill lull

Figure 7-15. Writeback Priority (Example]

J

Page 104: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

-

Id rb, i1.18

or i2. i5. i7

mor r3. i4. il

add i2. 6, rb

WE WRlTíBACK

-CLOCK 1 4

I PREFETCH Id ' 1

+CLOCK I ---I

I PREFETCIi 1 A

W E WRllEEACK

-CLOCK 2 +

I E (":

PRfFETCH ' 1 or

I I

SCOREBOAR0 4-q Scotulioutd bil lot Wtiitliici rlo1

1101 uarcule tiun. i b LCI add COII (JIWUII IU W IIIIIIUC.

Scortborrd b l lo1

Figure 7-16. Writeback and Feed Forwardinn (Example) 16 claaird.

4-j

E m

PREFETCH '

- 6 i

WAIT RESPONSE

+CLOCK 3 4- CLOCK 4 -- CLOCK 5 4t- CLOCK 6 -t- CLOCK 7 ++ CLOCK I - I I I I I I -

iMFETCH \ / P R E F E T C H b t i E

l

I

O f C O O E ~ OECOOE B h 0

I EXECUTE EXECUTE

0 C

REPLY A

SCOAEOOARO 1101 o

I :

ci3 C.&% .. ~ Figura 7-17. Pipelina Stalls (Example) .? - -

t

Page 105: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

~

I 1 I 1 I I I I I

F . L.d.-

I add r9, r9. 10

9 bb1.n no. 111. loop

I O SI r15, r4. I¶ t --

I

i 3

I"

s

---I

Figure 7-18. Single-Precision Linpack LoopClock Cycles y- '

1. Id Asruiner celo wail cycles. wiilcs lo ieniriei Ill0 duiing cycle 4 al101 ihrer cyde iiipoline latency II II lollowod by pirmllal opefalions which glvc it an r l iacwo earcution tinir 01 ope cycle

2. bdd Singla.cycle Inleper rxecuiion.

1. Id Assuii?er lelo wail Cyclel. 6oCaUlr 01 W i i t B b C k

piioiiiies. i~ must waic unid cycle I IO wrileba;k.

4 lmul Usrr lecd lo iw.~ci l i i i~ n l i I 2 Iioiii I i i s ~ load io begin FPU cIccuIIoIl dii i i i i~ cvclc 4.

5, add Slngk.cvcle inlegmi anomlion 111 [iarallel wilh Imul.

E cmp Singlb.cvcie inlegof rnecution In pbrbilrl with f m d

7 (add Slallrd by scoiaboaid hold uniil Imui complrlal. AI cycir la lmul irsulta air wflilrn into ragistrr 11ir and lad¿ oprr ind by Iead.dfotwrrding.

8 add Slnglr.cvcli Inirgri axrculion.

9 bb1,nDelayed branching ured Pieleich 01 iargal :8l scoreboard causas triget Io k prloidud unid s t o n Is dispatched.

Execuisd duiing drlrv slot 01 bb1.n. Although IoiJ access latency ir Ihiee clocks. iargoi lnairuction begins errcution in Cycle 16.

10 a l

I ' I

Page 106: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

Table 7-1. instruction Prefetch Time Summary I

I 1 Clock. number o/ WJIIS 2 clocks . number of waits ] I I - Effective Pieletch Time Prelelch LDienCy

I rot sei

Table 7-2. Integer, Bit-Field, Logical, and Control-Register Instruction Execution Timing in Clock Periods

1 1 I

4 . C W * f '

*No writeback do1 required for lliese inslruclions.

rmem ü I**

- Instrucclon .--__

and mask or nor

lldcr fstcr

Idci stcr

4 . CW"**

Eneciitlon T h e -__. ___

1 1 1 1

I

1 1, 1 1 1. 1

Table 7-3. Load, Store, and EFchiiiige Memory instruction Execution Time In Clock Perlods

--- ,

Page 107: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

Y F L - I

I

I .

Table 7-6. Integrrllnrtruct~on Unit InStrUCtiOnS i n d Scoreboard Summary

I

i . . I

mp Ir IR^. ontu IO. n1 dcr nrk nark. mark.u ,O1 lot

x x x 'X x -

x x x x x x x x

- -

Y -

x - )tu Rcr

Instruction Unit X X X

bbO. bbl, bcnd lñrrncn T a k O n l bbO. bbl. bcnd IBianCh Not Teten)

bbO.n. bb1.n. b c d n -

X I 1 ij 1 1

X 1

2 1 1 2 1 2 1 2 1 2 1 3 1 3 I

.. acoroboord.

Page 108: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

Y- . L.

fiIiUl.#iS IniuLssd Imul.sda lniul add Iiriul.dra Imul.drd fmul.ddr tmul.ddd inut . -. -----

Table 7-7. FPU Instructions and Scoreboard Summary

Scoraboard Checked _I

id

X X x . R

_-

x X X X X

X x R n X X X X X X X

X X

--

- .

- rd I I id

X X X x

M M

rn

- -

n

X x X X x X

- -

X X x x

x X X X X X X X

X -

X X X X -

FP1

1 2 I 8 1 I I J

I I 2 2

1 2 -_-_

FP1 Exira (Not in

insiruciion pipol

t - 2 - 1 - 2 I ?

1 - 2 - 2 - 2 12 1 -

ADD Plp.

3 3 I I I I I J

3 J 3 3

Iterations In ADD2

3 1-2b 1 I Ir) I I I h I I l o J i ú4 3 4 54 3 t54 3 +54 3 t33

3 5

3 3

. . . . . . .

'Add ono nioro clock 01 nlfoclive FPLAST lime delay only I1 i e iu i l used oiiher by a 8i.d. integer iiiairuction. or an instruction tliot require# Ilia r81u111 of second dcitination register.

...

Page 109: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

.- .

1*

1 1 1' 1, 1 I +

1 1 1. 1, 1 1'

1 l

I '

5

i

6 j 7 6 7 9 9

5 a 5 6 o 6

b a

I

I I . I 1 I I I I 1 I

f m u h r Imul.rdr. .rrd fmul.drr Imul.did. .ddr fmul.rdd fmul.ddd

fiub.sir 1rub.sdr. .rid fiub.drr 1iub.drd. .ddr fiub.rdd fiub.ddd

In1 ma Ini.ad

-

Table 7-6. FPU Instruction Timing Cycles

FPl Extra IN01 in

instruction pipe) - 1

2 1 2 2 - 2 2 + 2

1 2 1 2 2 2 I 2

- - -

Instruction

Irdd.dsd. .ddr Irdd.rdd Irdd.ddd

3

I fcmp.iri fcmp.sdi, .rid 1cmp.idd

fdiv.rii Idiv.rdi. .id Idlv.dsr' fdiv.drd. .ddr Idiv.udd fdiv.ddd

I :

3 3 3

I 3 . 3

interstions in ADD2

3 +25 3 +25 3 +54 3 +54 3 +25 3 +54

I 3 3

3 3

; *? 3

1 1' I + 1 1'

6 5 6 6 6 I

1 1 5 1 6 1 6

1 30 1 31 l * 59 1+ 60 1 31 1+ 60

4 7

Page 110: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

I

t

- 8 . SOFTWARE EN COMPILACION

Asumamos que un pequeño número de registros estan disponibles en la tarjeta de la maquina RISC. En este caso, optimizando el uso de registros es la responsabilidad del compilador. Un programa escrito en un lenguaje de alto nivel no referencia explicitamente un registro. Mejor dicho, un programa esta referenciado simbolicamente.

El objetivo del compilador es tener muchas computaciones como sea posible en los registros, mejor dicho en la memoria principal, y para minimizar cargas y almacenamientos de operaciones.

En general, el acercamiento tomado, es como sigue. Cada cantidad de programa que es un candidato para recibir en un registro, es asignado a un registro cimbolico o virtual. El compilador entonces traza el número ilimitado de registros simbolicos dentro de un realizado número de registros reales. Los registros simbolicos que no se entrecruzan pueden compartir el mismo registro real. Si en una parte particular del programa hay más cantidades con las que tratar que con registros reales entonces, parte de la cantidad es asignada a localidades de memoria. Instrucciones de carga y almacenamiento son usadas para temporalizar posición de cantidades en registros para operaciones computacionales.

La esencia de la optimización de la faena es decidir que cantidades deben ser asignadas a los registros en cualquier punto dado en el programa. La técnica más común usada en compiladores RISC es conocida como colores gráficos.

El problema de‘los co lores gráficos es este, dar una gráfica que consiste de nodos y bordes, asignar tantos colores a los nodcs que los nodos adyacentes tengan diferentes colores, y

119

Page 111: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

- hacer esto de tal manera como minimizar el número de colores diferentes. Este problema es adaptado al problema del compilador de la siguiente manera. Primero el programa es analizado para construir un registro de interferencia gráfica. Los nodos de la gráfica son los registros simbólicos. Si dos registros simbolicos son lldejadosll durante el mismo fragmento del programa, entonces ellos son acompañados por un borde de interferencia coloreada. Una prueba es entonces hecha para colorear la gráfica con N

colores, cuando N es el número de registros. En esta falla, l o s nodos que no pueden ser coloreados deben ser situados en memoria, y las cargas y almacenamiento deben ser utilizados para hacer espacio para las cantidades afectada cuando ellos son necesitados.

La F i g 8-1, es un simple ejemplo del proceso. Asumiendo un programa con seis registros simbólicos para ser compilados en una máquina con tres registros activos. La Fig 8-l(a) muestra la secuencia del tiempo de uso activo de cada registro simbólico y la Fig.8-l(b), muestra el registro de interferencia gráfica. Un posible coloreado con tres colores es indicado. Un registro' simbolico, F, es dejado incoloro y debe ser tratado usando carga y almacenamiento.

A B C D E F R 1 R 2 R3 R4 R5 R6

I T I I 1

F i g u r a 8 . 1

120

Page 112: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

Rol o Amar i 1 lo

Verde Rojo

íb)

Figura

Verde

8 . 1

121

Page 113: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

6'

9.VENTAJAS EN COMPARACION CON LOS CISC's:

Corrientemente, hay mucha controversia s3bre varias publicaciones relacionadas con la comparación entre el RISC y el CISC. La controversia puede ser diviiida en dos categorias:

Primero, ( que diferencía un RISC de un CISC? y Segundo, (

cómo uno una actuación razonable y Útil hiciendo esta comparación?.

Mucho de lo distintivo en el RISC ha sido extensamente usado en el CISC. Algunas de las distinciones ccmo datos de trayectoria pipeline, cache, registro de división de ventanas, son a menudo detectados como atributos de un diseño RISC. Una de las ventajas que tiene el diseño RISC es la existencia de una coherente declaración filos Ó fica. Originalmente, los diseños RISC fueron el objetivo para una aplicación específica y mientras tanto optimizados para una ejecución de una bien definida clase de programas.

Caracteristicamente los CISC son diseñados para una gran cantidad de aplicaciones y consecuentemente incluye soporte para muchos diferentes programas desarrollados. Es evidente que hay ahora una tendencia vigente de la reducida aplicación RISC y un diseño de mayor propósito ~eneral, otra vez confundiendo la diferencia entre RISC y CISC. La propuesta RISC a menudo ve el tamaño de la instrucción y la complejidad como su mayor distinción de los diseños RISC.

Muchas de la técnicas populares de actuación son dudas valiosas cuando se compara la actuación del RISC con la actuación del CISC. Tipicamente los efectos tie1 principal sistema operativo, optimización del compilador y el grupo de registros multiples no son propiamente considerados. Los problemas para la comparación relacionada 21 número de

122

Page 114: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

- transacciones de aplicación por segundo son más significativas que simplemente medir instrucciones

ejecutadas por segundo.

Las ventajas del modelo RISC pueden ser agrupadas en dos categorias:

-Quantitativa: la prueba de comparar el tamaño de un programa y la velocidad de ejecución en máquinas RISC y CISC que usan una tecnología similar -Cualitativa: examinar cada argumento tales como alto nivel de lenguaje y optimo uso de muy alta escala de integración.

Existen varios problemas con la comparación:

-No hay pares de máquinas RISC o CISC que sean comparables en el costo de mantenimiento del ciclo de vida, nivel de tecnología, complejidad de compuertas, sofisticación de compilador, soporte de sistema operativo y más. -No existe un conjunto de programas definitivos. La actuación varía con la programación. -Es dificil incluir los efectos del hardware dependientes de la destreza en compilación. -La mayoría de los analisis comparativos sobre el RISC fueron en máquinas de juguete: no productos comerciales.

Cabe resaltar las principales ventajas del RISC en comparación con el CISC:

-Construcción de buenos compiladores

-Rápida implementación con pocos transistores.

12 3

Page 115: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

Los sucesos del RISC en el mercado es dificil de asegurarse. El desarrollo en introducción continua del producto sigue adelante.

124

Page 116: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

APENDICE

1.- Evolución de la arquitectura de.las computadoras. 1.1 .- Brecha semantica. 1.2 .- Velocidad CPU vs velocidad de memoria. 1.3 .- Quitar al interprete. 1.4 .- Resumen RISC. 1.5 .- RISC - CISC - RISC.

2. - Filos'of ia básica de diseño RISC.

3.- RISC vs CISC. 3.1 .- Diferencias fundamentales. 3.2 .- Comparaciones.

3.2.1 .- El drhystone. 3.2.2 .- A l correr programas

de alto nivel. 3.2.3 .- Tecnologia de construccion. 3.2.4 .- Archivo de registros.

4.- Que tan buenas son la maquinas RISC.

Las primeras computadoras digitales eran en extremo simples. Desde la ENIAC nasta la IBM 7094 y en la CDC 6600, las computadoras tenian relativamente pocas intrucciones y solo uno o dos modos de direccionamiento.

Todo esto cambio de manera abrupta con la introduccion de la serie 360 de IBM, en 1964. Los modelos de esta serie tenian MICROPROGRAMACION. Los microprogramas que ejecutaban presentaban a los usiiarios,en el NIVEL DE MAQUINA

12 5

Page 117: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

r .i- h .c I

# - CONVENCIONAL, un conjunto de instrucciones altamente complejo ( "LENGUAJE DE MAQUINA" ) . Desde luego l o s microprogramas se encontraban en ROM y no podian ser modificados. En pocos anos, aun las minicomputadoras como la VAX, tenian mas de 200 instrucciones y una docena de modos de direccionamiento; todo ello implementado por un microprograma corriendo en lo que aun era una simple pieza de hardware.

La amplia difusion de los lenguajes de alto nivel, por contener estructuras como IF, WHILE y CASE, alentaron la complejidad de los microprocesadores; ya que el lenguaje maquina que estos ultimos soportaban incluia intrucciones como MOVE, ADD y JUMP. La BRECHA semantica resultante condujo a hacer dificil la escritura de compiladores.

Bajar de nivel a los lenguajes estaba fuera de toda discucion, asi que la decision popular fue la de elevar el nivel de IILENGUAJE MAQUINA" . Se incorporaron nuevas instrucciones para manejar las declaraciones CXSE, asi como modos especiales de direccionamiento para manejar arreglos y registros.

Gran parte de los mecanismos de llamadas a Frocedimiento, incluyendo el paso de parametros, ajuste de pila y respaldo de registros, emigro al microcodigo.

126

Page 118: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

Otro factor que alento la propagacion de las maqÜinas RISC, fue la relativamente menor velocidad de la memoria principal en comparacion con la CPü. La importacia de esto radica en que muchas aplicaciones de los lenguajes requieren operaciones complejas repetidamente. En este esquema se disponia de dos formas de simular estas operaciones. La primera era hacer que los programas del lenguaje llamen a rutinas de biblioteca ubicadas en la memoria principal.

La segunda forma era poner estas rutinas en el microprograma y agregar instrucciones nuevas a la arquitectura. El primer metodo requeria de muchas referencias ( lentas ) a memoria, para extraer las instrucciones de la rutina de biblioteca; el segundo metodo extraia la rutina de la memoria rapida ROM dentro de la CPU. Bajo estas circunstancias, la tentacion de poner mas y mas complejidad en el microprograma fue irresistible.

1.3 .- Quitar al interprete.

Mientras que el lenguaje de maquina se hace mas grande y

complicado, su INTERPRETE, el microprograma, se hace mas grande y lento. Mas instruciones significan mayor tiempo gastado en decodificar los codigos de operacion.

De mayor importancia aun, un gran numero de modos de direccionamiento significa que el analisis de direcciones ya no se puede hacer en linea, pues el mismo microcodigo ( muy grande ) tendria que repetirse cientos de veces. De ahi que casi cada instruccion deba llamar a uno de ellos para analizar l o s modos de direccionamiento.

Lo peor de esto, es que dichas maquinas han reducido su 127

Page 119: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

Para abreviar, una maquina RISC es en esencia una computadora con reducido numero de instrucciones VERTICALES. Los programas de usuario se compilan en secuencias de estas microinstrucciones y, luego, son ejecutadas directamente por el hardware sin ninguna intervencion del interprete. El resultado es que las cosas simples que en realidad hacen los programas, tales como sumar dos registros, se pueden ahora completaren una sola microinctruccion.

1.5 .- RISC - CISC - RISC.

En cierto sentido se ha dado la vuelta completa. Antes de que Whilkes inventara la microprogramacion, todas las maquinas e r a c k > k ; con instrucciones simples ejecutadas directamente por el hardware. Despues de que la microprogramacion tomo el control las computadoras se hicieron mas complejas y menos eficientes. Ahora, la industria esta volviendo a sus raices y construyendo, otra vez, maquinas sencillas y rapidas.

- velocidad para permitir la incorporacion de toda clase de instrucciones y modos de direccionamiento que, en la practica, rara vez se usan. De este modo, el esenario se ha montado para que alguien se de cuenta de que se puede hacer que las computadoras corran mucho mas rapido si se quita, de una vez, al interprete; y se deja que cada programa se compile directamente al microcodigo y se ejecute desde la memoria rapida RAM de semiconductor.

La ruptura que hizo posible a las maquinas RISC fue, curiosamente, un avance en el software y no en el hardware.

128

Page 120: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

Las mejoras en la optimizacion de la techologia de compiladores generaron microcodigos tan buenos, si no es que mejores, que l o s escritos a mano.

La filocofia basica de diseno de una maquina RISC consta de cinco pasos:

1.- Analizar las aplicaciones para encontrar las operaciones clave.

2.- Disenar una trayectoria de datos que sea optima para las operaciones clave.

3 . - Disenar instrucciones que realicen las operaciones clave utilizando la trayectoria de datos.

4 . - Agregar nuevas instrucciones solo si no hacen mas lenta a la máquina.

5.- Repetir este proceso para otros recursos.

Las comparaciones se deben tomar con demasiadas reservas debido a la gran cantidad de factores que involucra cada factor.

3.1 .- Diferencias fundamentales.

Las maquinas RISC pueden diferir de sus contrapartes CISC, 129

Page 121: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

- de ocho puntos que a continuacion se enlistan:

CISC RISC 1.- instruciones sencillas en un ciclo. instrucciones

complejas en varios

ciclos. 2.- Solo LOAD/STORE hacen referencia

puede

memoria . a memoria.

3.- Procesamiento serie de varias

etapas. 4 . - Instrucciones ejecutadas por

Por hardware.

5.- Instrucciones de formato fijo.

variable. 6.- Pocas intrucciones y modos de

Y direccionamiento.

7.- La complejidad esta en el

compilador. 8 . - Varios conjuntos de registros

3.2 .- Comparaciones.

cualquier instruccion hacer

referencia a

POCO procesamiento en serie.

intrucciones interpretadas

microproqrama. Instrucciones de

formato

Muchas instrucciones modos de

direccionamiento. La complejidad

esta en el microproqrama. Un solo conjunto de

registros.

Muchos investigadores han relizado comparaciones entre diversas arquitecturas RISC y CISC. Los simuladores que

130

Page 122: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

utilizan por supuesto que emiten un juicio artificial; ya que las pruebas no realizan ninguna operacion de E/S, de modo que en verdad estan probando es el compilador y el desempeno de la CPU.

3.2.1 .- El drhystone.

El drhystone se usa hoy ampliamente para comparar maquinas RISC y CISC. La medida se toma con base en un programa sintetico de comparacion. Aunque los resultados son aun afectados por factores como CALIDAD DEL COMPILADOR, ASIGNACION DE REGISTROS y DESEMPENO DE LA MEMORIA CACHE, el numero de drhystones da por lo menos una idea burda de su desempeño.

3.2.2 .- Al correr programas de alto nivel.

Tamano del programa: El tamano del programa de prueba es irrelevante ya que no se correlaciona con la velocodad de operacion del microprocesador.

Trafico de memoria: Si por lo demas dos maquinas son iguales, considere mejor la que realice menos accesos a memoria. Sin embargo en un simulador no va considerada la pre-estraccion.

Cuando realice la comparacion tome en cuanta que las CISC han recibido el peso de mantener compatibilidad.

'IUno de los principales factores de la velocidad de las maquinas RISC consiste en que todas ellas son arquitecturas nuevas, libres de los errores del pasado."

3.2. .3 .- Tecnología de construcción. Quiza la tecnologia sea el factor mas dificil de omitir

131

Page 123: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

L - cuando -se compara a dos maquinas. '' Es una maquina RISC ECL mas rapida que una CISC CMOS ?. Es probable; a que los transistores ECL permutan mucha mas rapido que los transistores CMOS. Las maquinas RISC y CISC que se comparan utilizan diferentes tipos de SEMICONDUCTORES, TIEMPOS DE RELOJ, BUSES, DISTINTAS PASTILLAS DE MEMORIA ( por no mensionar las diferencias en CACHES, UNIDADES DE MANEJO DE MEMORIA, NUMERO DE ESTADOS DE ESPERA y TECNICAS DE PROCESAMIENTO EN SERIE ) .

Bajo estas perspectivas resulta dificil comparar las arquitecturas independientemente de las implantaciones.

3.2.4 .- Archivo de registros. Las ventanas de traslape de registros son una buena idea pero tienen poco que ver con las arquitecturas CISC y RISC. Las grandes ventajas de RISC son solo posibles a la SENCILLEZ DE LA PASTILLA y AUSENCIA DE MICROCODIGO.

"En el primer caso se tomara mas area de la pastilla que en el segundo. En otras palabras si a un disenador de RISC se le diera la cantidad de espacio en la pastilla que requeriria una VAX con registros de traslape, podria incluir un ARCHIVO DE REGISTROS MUCHO MAS GRANDE, UNA MEMORIA CACHE INTEGRADA, u otros elementos para mejorar el desempeño.I1

4.- Que tan buenas son la maquinas RISC.

El desempeno en bruto depende de la aplicacion particular. Los aspectos del lenguaje ( operacines que el lenguaje soporta ) afectan el desempeño total del sistema. La sencillez de la pastilla ( uso de menos transistores aun considerando al archivo de registros grande ) las hace faciles de disenar.

La arquitectura RISC no se adapta bien al concepto de 132

Page 124: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

I

"familia de maquinas". Las CISC se prestan mejoE para este esquema.

133

Page 125: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

Vamos a arriesgarnos a Computadoras de Instrucciones Reducidad (RISC).

R e s u n i h .

Arqitecturas RISC.

Muchas computadoras actuales tienen una sola CPU, una memoria externa de

8 a 16 registros, cientos de intrucciones y una docena o mas de

complejos modos de direccionamiento. Es como si la arquitectura de

computadoras se hubiera quedado dormida durante 30 años. Sin embargo

algunos arquitectos de computadoras han presentado innovaciones para

revolucionarlas. Como consecuencia una de las promesas del futuro son

las maquinas RISC.

RISC es un acrónimo de las siglas en inglés para Computadora con

Reducido Conjunto de Instrucciones (Reduced Instruction Set Computer),

en contraste con CISC, que se deriva de Computadora con Conjunto de

Instrucciones Complejo (Complex Instruction Set Computer). La IBM 360 y

otras macrocomputadoras, asi como la VAX de DEC, el INTEL 80386 y el

MOTOROLA 68030 son ejemplos de maquinas CISC. Por lo que, quienes apoyan

la filosofia RISC dicen que se requiere de una revision acerca en la

forma en que pensamos acerca de a la arquitectura de computadoras y que

casi todas las máquinas son arquitectonicamente obsoletas.

El presente trabajo pretende ser una visión, del marco de evolución,

respecto a la filosofía de diseño de microprosesadores. Se presenta la

tecnologia RISC como una alternativa en el desarrollo de nuevos

microprocesadores; mencionando algunos factores de confrontacion ante

las implementaciones CISC.

A manera de apendice se anexan filosofías concretas de los

particularirades de arquitecturas RICS, tal como la evolución de la

arquitectura de las computadoras, filosofía básica de diseño de RISC,

RISC vs CISC, y por Último que tan buenas son las máquinas RISC.

2

Page 126: 148.206.53.84148.206.53.84/tesiuami/uam5553.pdf · INDICE 1. INTRODUCCION: 1.1 Historia de la tecnología RISC 1.2 Conceptos fundamentales en Arquitecturas RISC 1.3 Especificaciones

b

B I B L I O G W I A :

-MC88100 (Motorola) RISC MICROPROCESSOR USER'S MANUAL Second Edition Editorial: Prentice Hall.

-Articulas de la revista BYTE noviembre de 1989.

-Procedimientos de la IEEE, Vol 76, No. 1, Enero 1988 por el Instituto de Ingenieros Electricos y Electronicos.

-Ciminiera Luigi, Valenzano Adriano. ADVANCED MICROPROCESSOR ARCHITECTURES, Addison-Wesley, Great Britain, 1987.

-Tanenbaum Andrew. Organizacion de computadoras un enfoque estructurado, tr. de la 3a. ed. en ingles por Sergio Kourchenko B., Prentice Hall, Mexico, 1992.

-Margulis Neal. "The Intel 8086011 en BYTE, diciembre 1989.

1 3 4

I