Anda di halaman 1dari 11

TEMA 3: OTROS MICROPROCESADORES LECCIN 1 :ARQUITECTURAS RISC

MICROPROCESADORES pag. 1

LECCIN 1: ARQUITECTURAS RISC



Esta leccin est tomada del libro de Stalling Computer Organization & Architecture captulo 13.

La primera parte de la leccin habla de principios generales de las arquitecturas RISC. Aqu continuamos
la leccin con la descripcin de algunos ejemplos de mquinas con arquitecturas RISC.

2. El microprocesador IMS T425 .

2.1 Arquitectura transputer

Es un microprocesador de propsito especial orientado a la ejecucin de programas en OCCAM, esto
implica que tanto desde el punto de vista de los registros como desde el conjunto de instrucciones debe
tener elementos que permitan la gestin y comunicacin entre procesos. Estar pues optimizado para
trabajar en modo M.I.M.D.

Los transputer se han diseado en 1985 en la empresa Inmos , que actualmente est en el grupo SGS-
Thomson, y en la actualidad se fabrica tanto para usos militares (MIL-STD-883) como en la industria
aeroespacial y en usos civiles. Existen versiones de 16 bits y de 32 bits, nosotros vamos a usar como
ejemplo el modelo T425 de 32 bits con los buses de datos y de direcciones multiplexados, existen
modelos de propsito mas restringido como el M212 la serie A1XX . El modelo T800 incorpora una
unidad de punto flotante.

Las aplicaciones mas comunes son el clculo intensivo, el procesamiento grfico de alto nivel,
procesamiento de imgenes, inteligencia artificial, etc.



En la figura tenemos un esquema de la arquitectura interna, formada por los siguientes elementos:

TEMA 3: OTROS MICROPROCESADORES LECCIN 1 :ARQUITECTURAS RISC

MICROPROCESADORES pag. 2
Tiene una memoria RAM interna de 4KB
Tiene 4 enlaces duplex punto a punto LINK0-3 para comunicacin con otros transputer
Buses de datos y direcciones multiplexados de 32 bits.
El ancho de banda es de 33MB/seg con la memoria externa y de 100 MB/seg con la memoria
interna
La velocidad de pico es de 25 Mips.
Est disponible en versiones PGA de 84 pines (pin gris array), PLCC de 84 pines (Plastic leaded
chip carrier) y de 100 pines en PQFP (Plastic quad flatpack)


En cuanto a los registros disponibles tenemos los siguientes:

Puntero de instrucciones IP
Puntero a rea de trabajo WP
Registro de operandos OR
Pila de evaluacin : registros A,B,C.
Punteros para listas de procesos:
o Baja prioridad: FPtr0, BPtr0
o Alta prioridad: FPtr1, BPtr1
Registros para control de tiempo:
o Baja prioridad: Clock0, TnextReg0
o Alta prioridad: Clock1, TnextReg1


Tenemos pues un puntero a la instruccin siguiente, un puntero a la zona de variables locales (rea de
trabajo) que apunta a los datos con desplazamientos positivos a partir de WP y una pila de registros
(registros A,B,C) para instrucciones sin operandos . Por supuesto existirn unas instrucciones de carga y
almacenamiento de la pila.

Al ser un procesador orientado a procesos existen unos registros para facilitar el trabajo de gestin de
procesos . El sistema mantiene dos colas enlazadas de procesos activos con dos niveles de prioridad. De
modo que FPtri apunta al primer proceso activo en la cola, cada proceso de la cola apunta al siguiente y el
ltimo es apuntado por el registro BPtri.

El proceso en ejecucin est apuntado por IP y tiene asociado un rea de trabajo apuntada por WP. Un
proceso deja de estar en ejecucin por una de estas causas:

Por finalizacin del proceso. En este caso el proceso desaparece.
Por quedar a la espera de la comunicacin con otro proceso. Pasa a ser inactivo
Por agotar su quantum temporal.
Por ser desalojado por otro de mayor prioridad.

Los procesos cuando dejan de estar activos almacenan su IP en la posicin WP-1 de su rea de trabajo y
salvo en el ltimo caso no se guarda la pila de evaluacin en el rea de trabajo. Por eso no se pueden
guardar datos en la pila.

Existen dos timer (uno por nivel de prioridad) , son los registros Clock0 y Clock1 que se actualizan cada
64 s cada 1 s respectivamente. Los registros TnextReg se pueden usar para despertar un proceso al
transcurrir un tiempo determinado.


TEMA 3: OTROS MICROPROCESADORES LECCIN 1 :ARQUITECTURAS RISC

MICROPROCESADORES pag. 3
2.2.- Comunicacin entre procesos.

La comunicacin entre procesos tiene lugar por medio de canales. Sus caractersticas son:

Comunicacin punto a punto
Sncrona. Los dos procesos que se comunican tienen que realizar operaciones complementarias
(escribir y leer) a travs de un canal comn. El proceso que inicia la comunicacin pone sus datos
y espera que el segundo proceso haga lo propio, mientras tanto pasa a estado inactivo.
Sin memorias intermedias.

Cuando lo procesos estn en el mismo transputer, el canal es una posicin de memoria, si estn en
distintos procesadores el canal es uno de los enlaces bidireccionales LINKi de que dispone el micro. Son
enlaces serie de 10 MB/s . El protocolo de comunicacin es simple, se manda cada byte precedido por dos
bit de inicio (11) y terminado con un bit de parada (0). Por la lnea complementaria se recibe la
verificacin de la transmisin (11).

Supongamos que tenemos dos procesos P y Q que se van a comunicar a travs de un determinado canal. El
proceso P inicia la comunicacin dejando sus datos en la pila de evaluacin y pasando a continuacin a ser
inactivo. En la siguiente figura tenemos un esquema del proceso


Al pasar a estar inactivo el proceso P guarda el valor de su IP en la posicin WP-1 y a continuacin guarda
los valores de la direccin del mensaje y su tamao.

El proceso Q realiza la operacin complementaria , entonces se realiza la copia del mensaje entre P y Q,
el proceso P pasa a la cola de procesos activos y el canal se inicializa de nuevo a estado vaco.

Cuando los procesos estn en diferentes procesadores todo funciona igual excepto que ahora
el canal es un elemento fsico LINKi y que los procesos slo tienen que poner sus datos en las
correspondientes pilas de evaluacin y esperar a que se complete la operacin.

En la figura siguiente tenemos un esquema del proceso:
TEMA 3: OTROS MICROPROCESADORES LECCIN 1 :ARQUITECTURAS RISC

MICROPROCESADORES pag. 4





2.3.- El conjunto de instrucciones

La palabra de instruccin es de un byte con el siguiente formato:

Cdigo de operacin (4 bits) Operando (4 bits)

Segn esto tendremos en principio 16 instrucciones nicamente, ahora bien, mediante la tcnica de
cdigos de operacin con extensin hay una instruccin (opr 0FH) que amplia el cdigo de operacin a los
8 bits. La lista de instrucciones la tenemos en la tabla siguiente:

TEMA 3: OTROS MICROPROCESADORES LECCIN 1 :ARQUITECTURAS RISC

MICROPROCESADORES pag. 5


El campo de operando se copia en el registro OR y es inicializado con cada instruccin. Para formar
operandos de mayor tamao usamos las instrucciones pfix y nfix (prefijo y prefijo negativo) que cargan el
operando en OR pero no lo inicializan despus sino que desplazan su contenido 4 bits a la izquierda ( el
prefijo negativo adems complementa el operando). De esta manera podemos formar operandos de hasta
32 bits.

Encontramos los siguientes tipos de instrucciones:

De carga y descarga de la pila de evaluacin:

La pila se puede cargar con constantes (LDC), con datos de memoria local global (LDI,LDNI), con
punteros a memoria local global (LDIP,LDNIP). Tambin se puede descargar sobre memoria local
global (STI,STNI)

De control de flujo:

TEMA 3: OTROS MICROPROCESADORES LECCIN 1 :ARQUITECTURAS RISC

MICROPROCESADORES pag. 6
Tenemos instrucciones de comparacin que comprueban si el valor de B es mayor que el de A y ponen un 1
un 0 en el registro A (GT), que comparan el registro A con una constante (EQC) y ponen el resultado en
A.

Tambin tenemos instrucciones de salto incondicional (J) y condicional (JC) que realiza el salto si el tope
de la pila es 0

Tenemos una instruccin de bucles (LEND)

Tambin hay instrucciones para implementar la construccin ALT de OCCAM
(ALT,ALTW,ALTEND,ENBS, ENBCD,DISSS y DISC)

Aritmticas y lgicas:

Todas las instrucciones utilizan como operandos los registros A y B de la pila y dejan el resultado en el
registro A.

Tenemos instrucciones con control de desbordamiento (ADD, SUB, MUL, DIV, REM), y otras sin control
de desbordamiento (SUM, DIFF, PROD)

Tambin hay instrucciones que operan a nivel de bit (AND, OR, XOR, NOT, SHL, SHR)

De control de procesos:

Podemos aadir un proceso a la cola de procesos activos (STARTP), finalizar un proceso (INDP), pararlo
(STOPP) y reanudarlo (RUNP)

Los procesos pueden acceder al reloj de la cola correspondiente, para lectura (IDTIMER) utilizar el
reloj para desactivarse durante un tiempo (TIN)

De gestin de subrutinas

Tenemos dos instrucciones de llamada a subrutina (CALL y GCALL). La primera amplia el rea de trabajo
del programa que llama a la subrutina en 4 palabras que corresponden a IP y a la pila de evaluacin, el
nuevo IP lo toma del registro de operando.

La instruccin GCALL toma el nuevo IP del tope de la pila y deja el viejo en el mismo sitio, la propia rutina
se encargar de almacenar el valor de IP en una direccin fija de su rea de trabajo.

Tambin tenemos una instruccin de retorno de subrutina (RET)

De acceso a estructuras de datos:

Dado que en OCCAM la nica estructura de datos es el vector que se recorre linealmente, tenemos
instrucciones para calcular el desplazamiento segn el tamao del dato (BCNT,WCNT) y para sumar el
desplazamiento a la direccin de base (BSUB, WSUB). Tambin existe la instruccin MOVE.

De control de errores:

Para la gestin de errores el transputer dispone de dos bits de control: ERROR que indica si se ha
producido un error y HALTONERROR que indica si se ha parar el procesador cuando se produce un error.
TEMA 3: OTROS MICROPROCESADORES LECCIN 1 :ARQUITECTURAS RISC

MICROPROCESADORES pag. 7
Existen instrucciones de manipulacin de estos bits: Para ponerlos a uno (SETERR, SETHALTERR), para
ponerlos a cero (CIRHALTERR) y para chequear su valor (TESTERR, TESTHALTERR)

De comunicacin:

Son las instrucciones que implementan la comunicacin entre procesos OCCAM (IN, OUT,
OUTWORD y OUTBYTE)


3. El microprocesador UltraSPARC II.

Es una implementacin de la arquitectura SPARC hecha por Sun. Es una mquina con arquitectura interna
de 64 bits ( registros y datos) y bus de memoria de 128 bits. Es un diseo RISC superescalar de cuatro
vas . En la figura tenemos un esquema bsico de la arquitectura interna:




La cach L2 es externa, la cach I es asociativa de dos vas de 16 KB con lneas de 32 bytes pero admite
la lectura de media lnea cach ( es decir de 16 bytes 4 instrucciones). En cada lectura entrega 16
bytes ( 128 bits) que corresponden a 4 instrucciones . La cach D es de 16t KB con mapeo directo,
escritura a travs y sin asignacin con dos sublneas de 16 bytes cada una.
TEMA 3: OTROS MICROPROCESADORES LECCIN 1 :ARQUITECTURAS RISC

MICROPROCESADORES pag. 8
La unidad de prebsqueda-despacho es similar a la del Pentium pero no tiene que transformar las
instrucciones en microoperaciones porque tienen ya una estructura simplificada con tres operandos. Se
emiten cuatro instrucciones por ciclo de reloj. Esta unidad resuelve tambin el tema de la prediccin de
ramificaciones con un algoritmo de 2 bits similar al estudiado en la leccin 1. El conjunto de instrucciones
tiene varias formas de ramificacin que facilita la prediccin.

Las instrucciones prebuscadas se almacenan en una cola de 12 bytes que pasa a la unidad de agrupamiento.
La labor que realiza esta unidad es prepara cuatro instrucciones que se puedan ejecutar a la vez en
funcin de las unidades aritmtico-lgicas disponibles. Vemos que tiene dos unidades de enteros y dos de
punto flotante. Se permite la emisin y la retirada fuera de orden .

Las unidades de enteros y reales tienen distintos registros. La unidad de punto flotante tiene una unidad
de grficos (similar al MMX) que permite mejoras en el procesamiento de imgenes, audio y vdeo.

La unidad de LOAD/STORE realiza la carga de datos a travs de la cachs y mantiene colas de datos de
entrada y salida para su procesamiento.

Este microprocesador tiene una segmentacin avanzada con nueve etapas como se puede ver en la figura:




La primera etapa trae instrucciones de la cach I , la etapa de decodificacin inserta algunos bits a cada
instruccin de modo que puede seleccionar mejor la unidad de ejecucin , la etapa de agrupamiento emite
las instrucciones a las unidades funcionales . Vemos que segn sean instrucciones de enteros o reales
existen vas diferentes. En el caso de enteros se ejecutan habitualmente en un ciclo de reloj, la etapa de
cach se necesita para las instrucciones de carga y almacenamiento y las etapas N
1
y N
2
son para
sincronizar con las etapas de punto flotante. Las instrucciones de punto flotante se ejecutan en tres
ciclos excepto las de divisin (12 ciclos) y raz cuadrada ( 22 ciclos). La etapa N
3
se usa para resolver
excepciones que pueden haber ocurrido.

La estructura de la memoria es lineal con 2
64
bytes direccionables.

En cuanto a los registros cada programa dispone de 32 registros de enteros y 32 de punto flotante
organizados como se indica en la tabla siguiente donde vemos que los registros R0 a R8 se usan para
variables globales (registros G) aunque R0 contiene siempre un cero. Los registros R8-R13 sirven para
pasar parmetros ( registros O), los registros R16-R23 se usan para variables locales ( registros L) y los
registros R24-R29 se usan para recibir parmetros de otros procedimientos ( registros I). Adems
algunos registros sirven para cosas especiales como el R14 que es el puntero de pila (SP), el R30 que es el
puntero a la base de pila del marco actual (FP) ( similar al LV) y el R30 que contiene la direccin de
retorno del procedimiento actual

TEMA 3: OTROS MICROPROCESADORES LECCIN 1 :ARQUITECTURAS RISC

MICROPROCESADORES pag. 9












Los registros de la SPARC estn organizados en un nmero variable de ventanas de 24 registros que
tienen la estructura que se indica en la figura de forma que se facilita el paso de parmetros entre
procedimientos.





En cuanto a los formatos de instruccin vemos en la figura un esquema de los mismos. Vemos
que todos presentan un cdigo de operacin inicial de 2 bits que indica el tipo de instruccin y luego
tenemos un campo adicional en la mayora de los casos. Vemos que las instrucciones con formato general
tienen tres operandos , aunque instrucciones como LOAD unen los campos de registro fuente para dar una
direccin en memoria de la que obtener el dato que se almacena en el registro destino.








TEMA 3: OTROS MICROPROCESADORES LECCIN 1 :ARQUITECTURAS RISC

MICROPROCESADORES pag. 10




En cuanto al conjunto de instrucciones es bastante reducido.

Las instrucciones LOAD y STORE tienen versiones para 8,16,32 y 64 bits con versiones para nmeros con
signo y sin l.

Las instrucciones aritmticas tienen versiones para posicionar los bits de condicin NZVC no. Con esto
permite que el compilador pueda ejecutar las instrucciones fuera de orden. Una instruccin especial es la
suma etiquetada en la que el operando no tienen un tipo definido de dato y en funcin del momento de
ejecucin la mquina determina si es un dato entero real. Se usa en lenguajes como Prolog en las que el
tipo de datos se fija en el momento de ejecucin.

Las instrucciones de desplazamiento y rotacin permiten desplazamientos de un bit a la izquierda y dos a
la derecha con posibilidad de trabajar con 32 64 bits.

El grupo de instrucciones lgicas permite las operaciones habituales .

TEMA 3: OTROS MICROPROCESADORES LECCIN 1 :ARQUITECTURAS RISC

MICROPROCESADORES pag. 11
Tenemos tambin instrucciones de control con saltos condicionales e incondicionales y llamadas a
procedimiento.

Por ltimo es interesante sealar que algunas instrucciones tpicas que no aparecen directamente en el
conjunto de instrucciones estn disponibles mediante el uso del registro G0 de un operando constante
como se puede ver en la siguiente figura:

Anda mungkin juga menyukai