Está en la página 1de 145

CAPITULO 2

SEGMENTACIN DE CAUCE Y
PROCESADORES SEGMENTADOS

Docente:
Ing. Jess Talavera Suarez
INTRODUCCIN: DEFINICIN Y NOTAS
HISTRICAS

La segmentacin de cauce es una tcnica general


que permite aumentar el rendimiento del sistema al
que se aplica.

Se basa e identificar una serie de fases o pasos en el


procesamiento de la tarea que realiza el sistema y
redisear este de forma que cada una de esas fases
se implemente en una etapa que puede trabajar
DEFINICIN independientemente de las otras .

Con eso el sistema podra estar procesando varias tareas al mismo


tiempo, aunque cada una de ellas estara en una etapa distinta y por
tanto en una fase diferente de su procesamiento.
Aunque el tiempo que necesita una tarea para completarse puede ser
similar al que proporciona el sistema sin segmentar, e incluso mayor, en el
sistema segmentado aumentara el numero de tareas que se completan
por unidad de tiempo.
Despus de ser utilizada
Esta tcnica es la que se aplica En Bucholz 62,un texto donde se frecuentemente en
en las cadenas de montaje de las describe el proyecto stretch, computadoras diseados desde
fabrica, y su punto de partida aparece el IBM 7030, se puede finales de los 50, la
puede situarse en la fabricacin considerar el primer procesador segmentacin de cauce paso a
del modelo automvil Ford T de propsito general ser secundario desde finales de
(1908-1927) segmentado. 60 hasta finales de los 70, dado
que se hacia mas nfasis en las
maquinas orientadas a simplificar
el software (VAX)

El inicio de su uso empieza con el Permite el solapamiento entre la


IBM 709, basado en tubos de ejecucin de una instruccin y la en los 80 con las arquitecturas
vaco con memoria de ncleos de captacin del siguiente . su RISC se vuelve a utilizar la
ferrita. frecuencia de reloj era 6 veces segmentacin de cauce, dado
mayor que el del IBM 709 , pero que las caractersticas RISC
(1958 mejora del IBM 704) la velocidad era 7.5 veces mayor. favorecen un diseo sencillo para
el cauce que puede integrarse en
un microprocesador y facilitan un
aprovechamiento eficiente del
mismo.

entre las nuevas tcnicas que


incorporaba consista en la 1962 aparece el IBM 70941 , un
incorporacin de canales para computador implementado con El primer procesador con un
hacer posible el solapamiento transistores y memoria de cauce constituido por un gran
del procesamiento de ncleos de ferrita que inclua un numero de etapas fue el MIPS
instrucciones y las entradas registro el IBR (INSTRUCTION R400.la primera implementacin
/salidas, con la misma frecuencia BACKUP REGISTER) alpha el 21064, tenia un conjunto
de reloj que el IBM 704 de instrucciones y cauce de
procesamiento tambin similar .
2.2 PRINCIPIOS DE LA SEGMENTACIN Y MEJORA DE
PRESTACIONES
Supongamos que en un sistema una
operacin se ejecuta en un tiempo T. Una T es el tiempo de procesamiento correspondiente
implementacin segmentada del sistema se a una etapa, cuanto menor sea, mayor ser la
basa en dividir la ejecucin de la operacin en ganancia mxima alcanzable, segn esto, cuanto
una serie de fases que se realizan una mayor sea el numero de etapas, k, (suponiendo
despus de la otra, en cada una de las etapas que mas etapas significa etapas mas sencillas,
que constituyen el sistema segmentado.
que necesitan un tiempo t menor).

En un sistema segmentado con etapas que El valor del tiempo de latencia de inicio se puede
consumen un tiempo t, la GANACIA DE expresar como
VELOCIDAD que conseguira en la ejecucin de
n operaciones consecutivas seria : En el caso ideal de que se verifique que

La ganancia mxima que se podra obtener en un


A medida que el nmero de operaciones a
procesar es mayor, la ganancia que se cauce cuando el numero de operaciones
obtiene es mayor, tendiendo (cuando el ejecutadas en el mismo cree tiende a k, es
numero de instrucciones tienden al infinito): decir, a ser igual al numero de etapas del cauce.

FIGURA 2.1:

Comparacin de tiempos en la ejecucin de tres operaciones en un sistema no


segmentado en el que cada operacin tarda un tiempo T, y en un diseo segmentado
de ese sistema con etapas que consumen un tiempo igual a t y con un tiempo de paso a
travs del cauce igual a TLI

FIGURA 2.2: obtencin del tiempo de las


etapas de un cauce
sncrono. Se introduce 1
registro de desacoplo entre
etapas para fijar las
entradas que cada etapa
deba procesar en cada
momento
FIGURA 2.3:

Uso de copias de etapas en paralelo para mejorar el


rendimiento del cauce
Se define como el
numero de operaciones
que se ejecutan por
unidad de tiempo

PRODUCTIVID
AD

OTRAS
MAGNITUDES
En el cause
Es la relacin entre la
segmentado ganancia de velocidad
que proporciona el
cauce y el nmero de
etapas del mismo
EFICIENCIA
2.3 DISEO DE UN PROCESADOR SEGMENTADO.
GESTIN DE RIESGOS DE DATOS, CONTROL Y
ESTRUCTURALES

Suponemos que el Consideramos una Esta distribucin de tareas nos


procesador tiene un instruccin que lleva a un cauce con cuatro
tamao de palabra etapas:
codifica una
igual a 32 bits y para operacin con dos IF(Captacion de instruccion)
empezar, ID/OF(Decodificacion/ lectura de
registros como operandos)
consideramos una operandos y un ALU (Operac en Unidad funcional)
instruccin sencilla registro como OS(Escritura en el banco de
en cuanto a su destino: registros)
ejecucin. Rc Ra op Rb
Fig 2.4 Distribucin inicial de etapas en el
diseo de un procesador segmentado
FIGURA 2.5:

CONSIDERANDO SOLO ESTE TIPO DE INSTRUCCIONES, SE


PUEDEN PRESENTAR SITUACIONES QUE REDUCEN EL
RENDIMIENTO DEL CAUCE.

Existen una serie de condiciones que pueden hacer


que un cauce no genere resultados correctos a no ser
que se interrumpa su funcionamiento durante un
numero de ciclos determinado. Por tanto disminuir el
rendimiento del cauce, a no ser que se empleen una
serie de tcnicas.
As un riesgo o dependencia es cualquier condicin que pueda
interrumpir el flujo continuo, en este caso, de instrucciones, a travs
del cauce. Se distinguen tres tipos:
-Riesgos de Datos
-Riesgos de control
-Riesgos Estructurales

RIESGOS DE DATOS
LA ESCRITURA EN EL BANCO DE REGISTROS SIEMPRE SE HACE EN
LA ULTIMA ETAPA, LA ETAPA OS. POR LO TANTO, EN EL DISEO DE
CAUCE QUE SE PLANTEO, LOS RIESGOS DE TIPO WAR Y RAW NO
CAUSAN PROBLEMAS DE NINGN TIPO.
2.3.1 SOLUCIONES PARA LA DEPENDENCIAS DE
DATOS DE TIPO RAW

Las alternativas mas importantes para evitar los problemas


de los riesgos RAW son:

1. REORGANIZACIN DE CDIGO

Consiste en disponer las En caso de que no existan


instrucciones en el instrucciones
dando tiempo a que esta
programa de forma que independientes que
haya almacenado su
entre instrucciones con puedan interponerse entre
resultado antes de que la
dependencias de tipo RAW las instrucciones con
lectura ocasionada por la
existan instrucciones que dependencias de tipo
segunda instruccin
permitan retrasar la RAW, siempre es posible
tenga lugar
segunda instruccin con introducir una o varias
respecto a la primera instrucciones de no operar
1. Reorganizacin de cdigo. Introduciendo 1
o varias operaciones de NOP para conseguir el
retardo necesario

2. Interbloqueo entre etapas. Se introduce


FIGURA 2.5: elementos para detectar la existencia de
dependencias.

Si se detecta la instruccin que debe leer el


resultado detiene el numero de ciclos necesario.

3. Los atajos. Se aprovecha para habilitar una


serie de caminos que se aaden al cauce para
permitir que los resultados de una etapa pasen
como entradas a la etapa donde son necesarios
en caso de dependencias

Solucin para las dependencias RAW


reorganizacin de cdigo
EJEMPLO DE EJECUCIN DE DOS INSTRUCCIONES CON
DEPENDENCIA RAW QUE ILUSTRA EL FUNCIONAMIENTO DE
LA TCNICA DE CAMINOS DE BYPASS.

FIGURA 2.11:
2.3.2 IMPLEMENTACIN DE LAS
INSTRUCCIONES DE SALTO

LAS INSTRUCCIONES DE SALTO TIENEN EL FORMATO


BCND RA
CND: ES LA CONDICIN DE LA QUE DEPENDE EL SALTO(Z,NZ..) Y SE
REFIERE AL RESULTADO DE LA ULTIMA INSTRUCCIN ANTERIOR A LA
DE SALTO QUE MODIFICA LOS BITS DE ESTADO
EL DESPLAZAMIENTO RESPECTO AL VALOR DE PC QUE
DETERMINA LA DIRECCIN DESTINO DEL SALTO SE
ENCUENTRA ALMACENADO EN EL REGISTRO RA.
EL CONTENIDO SE CARGARA EN RA DEL PROCESADOR EN
ID/OF Y SE SUMARA A PC EN LA ETAPA ALU.
El MUX permite controlar el valor del
PC, su valor incrementado o el valor a
la direccin de destino se calcula en
la ALU.
La seal que controla el camino
habilitado por el multiplexor se
genera mediante el modulo de lgica
de condicin.

En la fig aparece el PC que cada ciclo se incrementa en 4 para apuntar a la siguiente


instruccin a captar
(Consideramos instrucciones de 32 bits, osea 4 bytes)
EVENTOS SIGNIFICATIVOS EN LA EJECUCIN DE UNA
INSTRUCCIN DE SALTO CONDICIONAL

Como vemos antes que se actualice correctamente el valor del PC


en el caso de 1 instruccin de salto, se introducen en el cauce las
2 instrucciones que siguen a la instruccin de salto condicional en
el programa y que no deberan de terminar su ejecucin.
UNA POSIBILIDAD CONSISTE EN ABORTAR LA EJECUCIN DE ESAS
INSTRUCCIONES. SI EL PROCESADOR SIEMPRE ABORTA LA
EJECUCIN DE LAS DOS INSTRUCCIONES HABR QUE INCLUIR EN
EL CDIGO DE INSTRUCCIONES QUE NO TENGAN NINGUNA
UTILIDAD PARA QUE EL PROGRAMA SE EJECUTE
CORRECTAMENTE.

Secuencia ordenada
LA APLICACIN DE LA TCNICA DE SALTO RETARDADO DEPENDE DE LAS
CARACTERSTICAS DEL PROCESADOR EN LO QUE RESPECTA A LA
POLTICA DE ANULACIN DE INSTRUCCIONES CAPTADAS ERRNEAMENTE
EN LOS SALTOS Y AL NUMERO DE HUECOS QUE HAY QUE OCUPAR.

El numero de ciclos
que hay desde que
se capta la
instruccin hasta
que se determina si
se produce el salto o
no y se ha
actualizado el
contador de
programa.
2.3.3 IMPLEMENTACIN DE LAS
INSTRUCCIONES DE ACCESO A MEMORIA
2.3.3 IMPLEMENTACIN DE LAS
INSTRUCCIONES DE ACCESO A MEMORIA

LAS OPERACIONES DE CARGA Y ALMACENAMIENTO DE DATOS EN


MEMORIA SON OPERACIONES FRECUENTES SOBRE TODO EN CDIGOS
RISC, DONDE SE ENCUENTRA ENTRE UN 25% Y 35% DE CARGAS Y
10% DE ALMACENAMIENTO.
PAR REALIZAR UN CARGA (LOAD) HAY QUE DETERMINAR LA
DIRECCIN DE MEMORIA (EFFECTIVE ADDRESS, EA), EN
PROCESADORES RISC SE HACE EN DOS PASOS.
1. SE CAPTA LOS CONTENIDOS DE LOS REGISTROS.
2. SE CALCULA LA DIRECCIN EFECTIVA A PARTIR DE DICHOS
CONTENIDOS.
PARA EL ALMACENAMIENTO ES SIMILAR , LA DIFERENCIA ES QUE LA
DIRECCIN Y EL DATO A ESCRIBIR EN MEMORIA SE ENVAN EN
PARALELO A LA MMU(UNIDAD DE GESTIN DE MEMORIA)
EN ESTE TIPO DE INSTRUCCIONES SE DEBE INDICAR UNA DIRECCIN
DE MEMORIA Y UN REGISTRO.
POR LO TANTO LAS INSTRUCCIONES DE CARGA TENDRN LA FORMA
LD RD,RS Y LAS DE ALMACENAMIENTO TENDRA LA FORMA ST RS,RD
INSTRUCCIN DE ALMACENAMIENTO, EN LA ETAPA
ID/OF SE DECODIFICA Y SE CAPTAN SUS OPERANDOS,
UNO DE ELLOS, RD PASARA POR LA ALU PARA
OBTENER LA DIRECCIN DE MEMORIA DONDE HAY
QUE ESCRIBIR.
EL REGISTRO RS PASARA POR LA ALU SIN SER
MODIFICADO. POR LO TANTO LA FINAL DE LA ETAPA
ALU SE TENDR LA DIRECCIN DE MEMORIA EN EL
REGISTRO DMAR(DATA MEMORY ADDRESS REGISTER)
Y EL DATO A ESCRIBIR EN EL REGISTRO SDMR(STORE
DATA MEMORY REGISTER).
PARA LA INSTRUCCIN DE CARGA, LA DIRECCIN DE
MEMORIA SE TENDRA AL FINAL DE LA ETAPA DE
OPERACIN CON LA ALU. EN EL SIGUIENTE CICLO SE
ACCEDERA A MEMORIA PARA QUE AL FINAL DE
DICHO CICLO, EL DATO SE TENGA EN EL REGISTRO
LDMR(LOAD DATA MEMORY REGISTER), CON LO CUAL
SE NECESITARA UN CICLO MAS PARA PASAR DEL
REGISTRO LDMR A RD
ALTERNATIVAS PARA SOLUCIONAR EL RIESGO ESTRUCTURAL
ES LAS INSTRUCCIONES DE ACCESO A MEMORIA.
INTRODUCIR UNA INSTRUCCIN DE NO OPERAR.
AADIR MAS PUERTOS DE ESCRITURA Y
REDISEAR EL BANCO DE REGISTROS.
FALTA POR CONSIDERAR LO QUE SUCEDE CUANDO TRAS UNA
INSTRUCCIN DE ACCESO A MEMORIA HAY UNA INSTRUCCIN QUE
NECESITA EL DATO PARA REALIZAR UNA OPERACIN. ES DECIR
EXISTE DEPENDENCIA TIPO RAW ENTRE LAS INSTRUCCIONES I E
I+D (D>0) SE INTRODUCE ENTRE ELLOS UN RETARDO DE USO DE
CARGA(LOAD-USE-DELAY).
POR LO TANTO, ENTRE LA INSTRUCCIN I E I+D DEBE HABER DOS
INSTRUCCIONES, CON LO QUE D>2 Y EL RETARDO DE USO DE
CARGA ES DE 2 CICLOS.
PARA SOLUCIONAR ESTE PROBLEMA SE PUEDEN INTRODUCIR
INSTRUCCIONES NOP, TAMBIN SE PODRA USAR CAMINOS DE
BYPASS ENTRE EL REGISTRO LDMR Y LAS ENTRADAS DE LA ALU.
2.4 EL ESPACIO DE DISEO DE LOS
PROCESADORES SEGMENTADOS

PARAORGANIZAR EL ESTUDIO DE LOS DISTINTOS TIPOS


DE MICRO ARQUITECTURAS DE PROCESADORES EN
CUANTO AL USO DE LA SEGMENTACIN DE CAUCE.
SE PUEDE DISTINGUIR UNA SERIE DE ASPECTOS O
DIMENSIONES DE DISEO, QUE DEFINEN EL ESPACIO DE
DISEO DE LOS PROCESADORES SEGMENTADOS.
ESTOS ASPECTOS SE PUEDEN ORGANIZAR EN DOS
GRUPOS :
LOS QUE SE REFIEREN A LA FORMA SEGN LA CUAL ESTA
ORGANIZADO EL CAUCE.
LOS QUE ALUDEN A LA FORMA EN QUE SE RESUELVEN LAS
DEPENDENCIAS ENTRE LAS INSTRUCCIONES QUE SE
PROCESAN.
DIMENSIONES DE DISEO DE UN PROCESADOR
SEGMENTADO

LAS DIMENSIONES DE DISEO ESTN ORGANIZADAS EN DOS


GRUPOS, LA PRIMERA ES LA ORGANIZACIN DEL CAUCE Y LA
SEGUNDA ES LA FORMA DE RESOLVER LAS DEPENDENCIAS.
NUMERO DE ETAPAS
CUANTO MAYOR SEA EL NMERO DE ETAPAS DE UN
PROCESADOR SEGMENTADO MAYOR SER LA GANANCIA
DE VELOCIDAD QUE PODRA PROPORCIONAR.
SIN EMBARGO LAS DEPENDENCIAS OCASIONAN UNA
DESVIACIN CON RESPECTO AL FUNCIONAMIENTO
IDEAL, HACIENDO QUE LA COMPLEJIDAD DE LA GESTIN
DEL CAUCE AUMENTE A MEDIDA QUE TIENE MS
ETAPAS(ES MAS PROFUNDO).
CUANTO MS ETAPAS TIENE UN CAUCE, MAS
INSTRUCCIONES SE ESTARN EJECUTANDO EN
DISTINTAS FASES DE SU CICLO MAQUINA.
A MAYOR ETAPAS, SUELE SER MAYOR LOS RETRASOS
QUE SE NECESITAN PARA ENTRE INSTRUCCIONES
DEPENDIENTES, TAMBIN SE ES MS DIFCIL
ENCONTRAR INSTRUCCIONES INDEPENDIENTES.
NUMERO DE ETAPAS
A MS ETAPAS EN EL CAUCE, MUCHAS DE LAS INSTRUCCIONES DE
SALTO SE PUEDEN INTRODUCIR EN EL CAUCE INCORRECTAMENTE.
SE BUSCA ENCONTRAR UNA PROFUNDIDAD DE CAUCE MS OPTIMA,
ESTO DEPENDER DE LA ARQUITECTURA Y DE LAS
CARACTERSTICAS DE LOS PROGRAMAS QUE SE EJECUTEN.
SUBTAREA QUE IMPLEMENTA CADA
ETAPA

LA DISTRIBUCIN DE LAS FASES DEL


PROCESAMIENTO DE UNA INSTRUCCIN ENTRE
LAS DISTINTAS ETAPAS DEL CAUCE ES UN
ASPECTO ESENCIAL EN EL DISEO DEL CAUCE.
LAS CARACTERSTICAS DEL REPERTORIO DE
INSTRUCCIONES TAMBIN INFLUYEN EN LA
ASIGNACIN DE FUNCIONES A LAS DISTINTAS
ETAPAS DEL CAUCE, AS COMO EL NMERO DE
ETAPAS DEL CAUCE.
ARQUITECTURA RISC
LOS CAUCES EN LA ARQUITECTURA RICS, TIENEN
CUATRO ETAPAS LAS CUALES SON:
CAPTACIN DE INSTRUCCIN (IF)
DECODIFICACIN DE LA INSTRUCCIN Y CAPTACIN DE
LOS OPERANDOS DE LOS REGISTROS (ID).
EJECUCIN DE LA OPERACIN CODIFICADA EN LA
INSTRUCCIN (EXE O ALU).
ESCRITURA DE LOS RESULTADOS EN EL FICHERO DE
REGISTROS (WB).
EJEMPLOS: LOS PROCESADORES POWERPC, SPARC,
SUPERSPARC, INTEL 860 Y MOTOROLA 881100.
ARQUITECTURA RISC
PERO EN OTROS PROCESADORES CON ARQUITECTURA
RICS , TIENEN CINCO ETAPAS.
LA ETAPA AADIDA ES LA ENCARGADA DE ACCEDER A
LA MEMORIA PARA CAPTAR O ALMACENAR UN DATO,
ESTA SE ENCUENTRA TRAS DE LA ETAPA DE
EJECUCIN(EXE).
A PESAR DE QUE LAS INSTRUCCIONES CON RESULTADO
Y OPERANDOS EN REGISTROS NO NECESITAN ESTA
ETAPA, LAS 5 ETAPAS DEL CAUCE SIMPLIFICAN EL
DISEO DEL CAUCE.
EJEMPLOS: LOS PROCESADORES SEGMENTADOS NO
SUPERESCALARES DE MIPS(R2000, R3000, R4200,R4300,
ETC.) Y EN EL HP-PA 7100.
ARQUITECTURA CISC
EN LA ARQUITECTURA CISC ,PROCESAN
INSTRUCCIONES EN LAS QUE EL RESULTADO
Y LOS OPERANDOS PUEDEN ESTAR TANTO EN
LOS REGISTROS COMO EN MEMORIA.
EN ESTE CASO EL CAUCE DEBE CALCULAR LA
DIRECCIN DEL OPERANDO Y GENERAR UN
ACCESO A MEMORIA PARA CAPTAR EL
OPERANDO.
POR ESTOS MOTIVOS EL CAUCE ES COMO EL
CAUCE TPICO DE LA ARQUITECTURA RICS,
MS DOS ETAPAS.
ARQUITECTURA CISC

LAS ETAPAS DEL CAUCE CISC SON LAS SIGUIENTES:


CAPTACIN DE INSTRUCCIN (IF)
DECODIFICACIN DE LA INSTRUCCIN Y CAPTACIN
DE LOS OPERANDOS EN REGISTROS (ID).
CLCULO DE DIRECCIN (A, DE ADDRESS).
ACCESO A MEMORIA (MEM O C, DE ACCESO A CACH)
EJECUCIN DE LA OPERACIN (EXE).
ESCRITURA DE LOS RESULTADOS EN EL FICHERO DE
REGISTROS (WB).
EJEMPLOS: LOS 68040 Y 68060 DE MOTOROLA.
ARQUITECTURA CISC

EN LA INSTRUCCIONES CON OPERANDOS Y


RESULTADOS EN REGISTROS, NO UTILIZAN LAS
ETAPAS A Y C.
LA EXISTENCIA DE ETAPAS QUE NO SE UTILIZAN
NO AFECTAN DIRECTAMENTE A LAS
PRESTACIONES.
PERO AUMENTA LA POSIBILIDAD DE QUE EXISTAN
DEPENDENCIAS.
POR ESO EXISTE LA ALTERNATIVA DE UN CAUCE
DE CINCO ETAPAS. EJEMPLO: PROCESADOR
PENTIUM, EL 80486 Y EL R8000.
PARA QUE SEAN CINCO ETAPAS, LA ETAPA C Y LA ETAPA
EXE SE JUNTAN (EXE/C), AS PUES AL EJECUTAR UNA
INSTRUCCIN, SE USA LA ETAPA (EXE/C), DOS VECES , UNA
PARA ACCEDER A LA MEMORIA Y LA SEGUNDA PARA
REALIZAR LA OPERACIN.
PARA LA INSTRUCCIN DE CARGA DE MEMORIA , SE ES
NECESARIO EL CORRESPONDIENTE CAMINO DE BYPASS
ENTRE EL REGISTRO DONDE SE TIENE EL DATO TRAS
HABERLO LEDO DE LA MEMORIA AL FINAL DEL EXE/C Y LAS
ENTRADAS DE LAS UNIDADES FUNCIONALES QUE PUEDE
REALIZAR LA OPERACIN.
PERO EXISTE UN MNIMO DE UN CICLO DE RETARDO DE
USO DE CARGA .
EJEMPLO DE RETARDO DE USO DE CARGA IGUAL A CERO:
PENTIUM, EL SUPERSPARC, R8000, I486, ETC.
EJEMPLO DE RETARDO DE USO DE CARGA IGUAL A UN CICLO
SON :MIPS X, R2000, R3000,POWER 1Y 2, POWER PC 601,ETC.
RETARDO MS DE UN CICLO : MC88100 (2), R4000 (2), ALPHA
21064 (3).
DISTRIBUCION DE LA SECUENCIA DE
ETAPAS
EL PROCESADOR SEGMENTADO QUE SE HA
DISEADO, TODAS LAS INSTRUCCIONES PASAN
POR TODAS Y CADA UNA DE LAS ETAPAS DEL
CAUCE.
SE HABLA DE CAUCE NICO O CAUCE
MULTIFUNCIONAL, DADO QUE TODAS LAS
INSTRUCCIONES PASAN POR EL MISMO CAUSE
FSICO.
EXISTEN PROCESADORES DE DOBLE CAUCE,
DONDE UN CAUCE REALIZA OPERACIONES DE
COMA FLOTANTE Y EL OTRO CAUSE REALIZA
OPERACIONES ARITMTICAS ENTERAS, CARGA,
SALTOS, ALMACENAMIENTO, ETC.
ALTERNATIVAS DE DISTRIBUCION
DE ETAPAS DE UN CAUCE
EJECUCIN DE INSTRUCCIONES EN
LOS CAUCES DOBLE Y MULTIPLE
SE MUESTRA EL CAUCE DOBLE EN EL QUE SE
ALARGA EL TIEMPO CORRESPONDIENTE A LA
UNIDAD FUNCIONAL MS RPIDA, INTRODUCIENDO
RETARDOS O BURBUJAS, PARA QUE LOS CAMINOS
POSIBLES DEL CAUCE, TENGAN LA MISMA DURACIN.
2.5 OPTIMIZACIN DE
CAUCES FUNCIONALES
PREVIAMENTE NOMBRAREMOS LOS TIPOS
DE CAUSES:

1)UNIFUNCION: EJECUTAN UN NICO PROCESO.


2)MULTIFUNCION: PUEDEN EJECUTAR VARIOS PROCESOS.
PUEDEN SER:
A) ESTATICOS: EN UN INSTANTE DETERMINADO SOLO
PUEDEN EJECUTAR UNO.
B)DINAMICOS: PUEDEN EJECUTAR SIMULTNEAMENTE
VARIOS PROCESOS.
3)LINEAL: A CADA ETAPA SOLO LE PUEDE SEGUIR OTRA
ETAPA CONCRETA.
4)NO LINEAL: SE PUEDEN ESTABLECER RECORRIDOS
COMPLEJOS DE ETAPAS.
LAS UNIDADES FUNCIONALES QUE SE INTRODUCEN EN
LOS PROCESADORES SEGMENTADOS PARA REALIZAR LAS
OPERACIONES CODIFICADAS EN LAS INSTRUCCIONES,
TAMBIN PUEDEN ESTAR SEGMENTADAS. DE ESTA FORMA,
LA ETAPA DE EJECUCIN PUEDE COMPRENDER MAS DE UN
CICLO, DEPENDIENDO DEL NUMERO DE CICLOS DE LA
UNIDAD FUNCIONAL QUE SE ESTE UTILIZANDO.
A CONTINUACIN SE DESCRIBEN ALGUNOS EJEMPLOS DE
UNIDADES FUNCIONALES SEGMENTADAS. A TRAVS DE
ESOS EJEMPLOS SE DISTINGUIERA ENTRE CUACES
LINEALES Y NO LINEALES Y SE JUSTIFICARA LA NECESIDAD
DE UN PROCEDIMIENTO QUE PERMITA EL
APROVECHAMIENTO EFICAZ DE CAUSES NO LINEALES
CARACTERSTICAS DE PROCESOS SEGMENTADOS

LA SEGMENTACIN ES UNA TCNICA EMPLEADA EN EL DISEO DE


PROCESADORES QUE TRATA DE EXPLOTAR EL PARALELISMO
INTRNSECO QUE EXISTE ENTRE LAS INSTRUCCIONES DE UN FLUJO
SECUENCIAL.
LA SEGMENTACIN PUEDE PROCESAR LAS SUBTAREAS
SIMULTNEAMENTE.
PARA QUE EL TIEMPO DE LATENCIA DEL PROCESADOR SEGMENTADO
SEA EL MNIMO POSIBLE ES NECESARIO QUE EL PROCESADOR EST
EQUILIBRADO.
EL PROCESADOR EST EQUILIBRADO SI TODAS LAS SUBTAREAS EN
QUE SE HAYA DIVIDIDO LA TAREA TOTAL TARDEN EN PROCESARSE EL
MISMO TIEMPO .
2.5.1. EJEMPLOS DE UNIDADES
FUNCIONALES SEGMENTADAS

A TRAVS DE EJEMPLOS SE INTRODUCIR EL PROBLEMA QUE


SURGE CUANDO LOS CAUCES TIENEN DIFERENTE DURACIN,
ETAPAS QUE SE UTILIZAN DE DISTINTA FORMA POR
DISTINTAS OPERACIONES, O ETAPAS QUE SE REUTILIZAN.
ACUMULADOR NO SEGMENTADO


ACUMULADOR SEGMENTADO


LAS ETAPAS DE CAUCE COINCIDEN CON LOS ELEMENTOS QUE
PERMITEN REALIZAR LA SUMA Y ACUMULACIN DE CADA UNO DE
LOS BITS. POR LO TANTO TODAS LAS ETAPAS SON IGUALES Y
TIENEN LA MISMA DURACIN .
OTRO EJEMPLO DE LA UNIDAD SEGMENTADA ES EL MULTIPLICADOR
DE DATOS DE SEIS BITS, QUE SE MUESTRA EN LA SIGUIENTE FIGURA.
SE TRATA DE UN CAUCE CON CINCO ETAPAS EN LA QUE SE OPERA
LOS BITS DEL MULTIPLICANDO CON LOS BITS DEL MULTIPLICADOR.
MULTIPLICADOR DE DATOS DE
6 BITS
EN LAS SIGUIENTES ETAPAS SE HA DISTRIBUIDO UN RBOL DE
SUMADORES QUE PERMITE OBTENER LA SUMA DE LOS 6 DATOS
DE 6 BITS DESPLAZADOS QUE SE OBTIENEN AL FINAL DE LA
PRIMERA ETAPA
SE MUESTRA LA OPERACIN REALIZADA POR LOS 2 TIPOS DE
SUMADORES UTILIZADOS EN EL RBOL (SUMADOR CON
SALVAGUARDA DE ACARREO, SSA Y EL SUMADOR CON
PROPAGACIN DE ACARREO, SPA).
Multiplicador de datos de 32 bits (si uno quisiera construir el
mismo multiplicador anlogo a lo anterior necesitara usar
30 SSA sumadores, que adems serian mas complejos
porque deben ser capaces de sumar mas datos con mas
bits)

La figura muestra un diseo de segmentacin alternativo en


forma de cauce no lineal debido a que presenta
realimentacin lo cual hace que algunas etapas se vuelvan
a usar
EN LA SIGUIENTE FIGURA MUESTRA LAS ETAPAS DEL CAUCE
ARITMTICO DEL TI-ASC JUNTO CON EL USO QUE SE DA PARA
ALGUNAS OPERACIONES ARITMTICAS.

HAY ETAPAS QUE NO USAN LAS MISMAS OPERACIONES, OTRAS


QUE DURAN MAS QUE OTRAS O QUE REUTILIZAN ETAPAS EN
UNA MISMA OPERACIN.
Cauce Lineal:

Cada unidad
funcional slo puede
ser usada una vez por
instruccin, tienen la
misma duracin; as
como un orden.
TI-ASC

En la siguiente
figura muestra las
etapas del cauce
aritmtico del TI-
ASC junto con el
uso que se da para
algunas
operaciones
aritmticas.
Hay etapas que no
usan las mismas
operaciones, otras
que duran mas que
otras o que
reutilizan etapas en
una misma
operacin.
CAUCE NO LINEAL
CARACTERISTIAS DE CAUCES NO LINEALES
Algunas Etapas se vuelven a reutilizar por una misma operacin.
Hay etapas que necesitan varios ciclos de reloj
Una misma operacin puede usar mas de una etapa al mismo
tiempo.
El orden de las etapas puede variar(de una operacin a otra).
Las dependencias entre operaciones produce un cambio en el
orden de las etapas a ejecutarse.
COMPARANDO CON LAS
CARACTERISTICAS DE CAUCES

LINEALES :
Todas las instrucciones tardan el mismo tiempo y atraviesan todas
las etapas.
Cada unidad funcional slo puede ser usada una vez por
instruccin (el flujo de informacin queremos que vaya siempre
hacia la derecha)
Cada unidad funcional debe ser utilizada en la misma etapa por
todas las instrucciones.
LA PRODUCTIVIDAD DE UN CAUCE DEPENDE :

Que exista una fuente continua de


operaciones (instrucciones )a
realizar.

Exista un procedimiento eficaz de


planificacin de cauce.
2.5.2 DISEO DE UNA UNIDAD DE CONTROL
PARA UN CAUCE SEGMENTADO

MEJORAR LA PLANIFICACIN EN UN CAUCE


ESTTICO, UNIFUNCIONAL O MULTIFUNCIONAL,
LO QUE NOS PERMITE ALCANZAR LA MXIMA
PRODUCTIVIDAD DE DICHO CAUCE.
1) CONSTRUIR LA TABLA DE RESERVAS: CON TANTAS FILAS COMO ETAPAS
TIENE EL CAUCE Y TANTAS COLUMNAS COMO CICLOS CONSUME UNA
OPERACIN AL PASAR A TRAVS DE DICHO CAUCE.
2) OBTENER LAS LATENCIAS PROHIBIDAS (NMERO DE CICLOS QUE
SEPARAN DOS MARCAS EN LA MISMA FILA DE LA TABLA DE RESERVAS (TR)
FORMADA POR N COLUMNAS.
3) FORMAR EL VECTOR DE COLISIONES: ES UN VECTOR DE M BITS CON
COMPONENTE I-SIMA IGUAL A 1 SI LA LATENCIA ES PROHIBIDA Y 0 SI ES
PERMITIDA. DONDE M ES LA MXIMA LATENCIA PROHIBIDA, QUE SER
MENOR O IGUAL A N-1 LA LATENCIA N SER PERMITIDA PORQUE LA
TABLA DE RESERVAS SOLO TIENE N COLUMNAS.
4) GENERAR EL DIAGRAMA DE ESTADOS: EL VECTOR DE
COLISIONES CORRESPONDE AL ESTADO INICIAL DEL CAUCE
EN EL TIEMPO T1. EL CAUCE CAMBIA DE ESTADO AL
EVOLUCIONAR EL TIEMPO.
MTODO DE CLCULO DE ESTADOS: SE USA EL
DESPLAZAMIENTO DE M-BITS. DEL VECTOR DE COLISIONES.
Donde las latencias prohibidas son 2 y 4. Las dimensiones del vector de
colisiones tambin ser 4 y estar dado por:

Vc=(1, 0, 1, 0)
5) CICLOS DE LATENCIA: SE OBTIENEN A PARTIR DEL
DIAGRAMA DE ESTADOS SIGUIENDO CAMINOS CERRADOS.
LATENCIA MEDIA DE UN CICLO: MEDIA DE LATENCIAS
QUE APARECEN EN UN CICLO.

LATENCIA PROHIBIDA: DADO UN ESTADO DEL


CAUCE EN UN INSTANTE DETERMINADO, LOS
RETARDOS CON RESPECTO A ESE INSTANTE EN LOS
QUE NO SE PUEDEN INTRODUCIR NUEVAS
OPERACIONES EN EL CAUCE, POR QUE DARAN LIGAR
A COLISIONES SE DENOMINA LATENCIAS PROHIBIDAS
CICLOS AVARICIOSOS
EL PROBLEMA DE DETERMINAR LA POLTICA MAS PRODUCTIVA DE
INICIO DE OPERACIONES SE RESUELVE SI SE IDENTIFICA EL CICLO
DE MNIMA LATENCIA MEDIA.
ESTA IDENTIFICACIN PUEDE SER COMPLEJA EN EL CASO DE QUE
SE TENGAN DIAGRAMAS COMPLICADOS QUE DEN LUGAR A UN
NMERO DE CICLOS ELEVADOS.
UNA ALTERNATIVA MS SENCILLA SE BASA EN LA IDENTIFICACIN
DE LOS CICLOS AVARICIOSOS QUE INCLUYEN A LOS DISTINTOS
ESTADOS.
PARA CONSTRUIR UN CICLO AVARICIOSO SE PARTE DE UN ESTADO
Y SE TOMA EL CAMINO QUE IMPLICA INICIAR LA OPERACIN
ESPERANDO EL TIEMPO MNIMO POSIBLE. ES DECIR, SE TOMA EL
ARCO CORRESPONDIENTE A LA LATENCIA NO PROHIBIDA MS
PEQUEA DEL ESTADO. SE PASA A UN NUEVO ESTADO Y SE SIGUE
EL MISMO PROCEDIMIENTO HASTA QUE SE CIERRA EL CICLO
2.6 INTERRUPCIONES EN
UN PROCESADOR
SEGMENTADO
EN ESTA SECCIN SE INTRODUCEN LOS
ASPECTOS RELACIONADOS CON EL
PROCESAMIENTO DE LAS INTERRUPCIONES Y
LAS EXCEPCIONES EN UN PROCESADOR
SEGMENTADO.
EL PROCESAMIENTO DE LAS INTERRUPCIONES
Y LAS EXCEPCIONES AFECTA NEGATIVAMENTE
AL RENDIMIENTO DEL PROCESADOR
SEGMENTADO
Efecto de una interrupcin en la ejecucin de un programa. Ejemplo de
interrupcin por fallo de pagina

Proceso original Gestor de interrupciones Continua el proceso original

Se produce la interrupcin. Se Prosigue el proceso original


suspende el proceso original y se
guarda informacin sobre el proceso
interrumpido (PC, al menos)

Comienza otro proceso

Proceso original Continua el proceso original

El gestor de fallos de pagina enva una La pagina ya esta disponible


peticin de pagina al sistema de E/S
Taxonoma de los distintos
tipos de interrupciones

1. SI SON ORIGINADAS POR UNA FUENTE EXTERNA AL


PROCESADOR O PARTEN DEL PROPIO PROCESADOR

2. SI INDICAN UNA CONDICIN DE ERROR QUE DEBE SUBSANAR


LA RUTINA DE GESTIN DE INTERRUPCIN O PERMITEN
ACCEDER A ALGN SERVICIO QUE PROPORCIONA EL SISTEMA
OPERATIVO A TRAVS DEL CORRESPONDIENTE GESTOR DE
INTERRUPCIN
A Generadas por el propio procesador para
indicar una condicin de error

B Generadas por el propio procesador para


acceder a un servicio del sistema operativo

C Generadas fuera del procesador para


indicar una condicin de error

D Generadas fuera del procesador para acceder a


un servicio del sistema operativo
Taxonoma de las
interrupciones
Indican una
condicin de Interrupciones
error y dan criticas para
paso a una comunicarse
rutina de con el S.O.
recuperacin

Memoria virtual
Fuente interna a Excepciones Instrucciones
la CPU (A) no
implementadas

Fallo hardware Temporizacin


Fuente externa
(C) E/S (D)
EXCEPCIONES

ENTRE ELLAS ESTN LAS ORIGINADAS POR


ANOMALAS EN LAS OPERACIONES ARITMTICAS,
COMO POR EJEMPLO:

CONDICIONES DE DESBORDAMIENTO
(OVERFLOW).
CONDICIONES DE AGOTAMIENTO (UNDERFLOW).
LA VIOLACIN DE LA PROTECCIN DE MEMORIA.
ETCTERA.
Memoria Virtual
Instrucciones no Implementadas
DENTRO DE ESTE TIPO DE INTERRUPCIONES ESTN:

LA ORIGINADA POR UN FALLO DE PGINA.

LAS INTERRUPCIONES QUE INTRODUCE EL


PROGRAMADOR EN EL PROPIO CDIGO, POR
EJEMPLO:
PARA GENERAR TRAZAS.
PARA IMPLEMENTAR INSTRUCCIONES NO
DEFINIDAS EN EL REPERTORIO MQUINA.
ETCTERA.
Fallo Hardware

SON LAS ORIGINADAS POR


ERRORES EN EL HARDWARE DEL
COMPUTADOR, POR EJEMPLO:

FALLOS DE ALIMENTACIN.
Temporizacin
ESTAS CORRESPONDEN A:

LAS PETICIONES DE SERVICIO DE LOS


DISPOSITIVOS DE E/S.

A LOS EVENTOS DE TEMPORIZACIN,


ETC.
SE PRESENTAN DOS CASOS:

CASO 1: LA INTERRUPCIN EN LA PRIMERA INSTRUCCIN


(FALLO DE PGINA EN LA INSTRUCCIN LW AL ACCEDER AL
DATO EN LA ETAPA MEM) OCURRE DESPUES QUE LA
EXCEPCIN DE LA SEGUNDA INSTRUCCIN (FALLO DE PGINA
AL ACCEDER A LA INSTRUCCIN ADD EN IF).

CASO2: LAS DOS INSTRUCCIONES DEL CASO 1, COINCIDEN EN


EL MISMO CICLO.
Ejemplos de interrupciones
en un procesador segmentado
LW IF ID EX MEM WB

ADD IF ID EX MEM WB

El orden temporal de las interrupciones puede


ser distinto del orden de las instrucciones en el
cdigo: la ADD da lugar a una excepcin de
falta de pagina de instruccin al captarse en IF,
y la LW, a una falta de pgina en MEM

LW IF ID EX MEM WB

ADD IF ID EX MEM WB

Se puede producir una excepcin de falta de


pagina en LW, y una excepcin aritmtica en ADD
al mismo tiempo
Segn se atiendan las interrupciones respetando el orden de
ejecucin de las instrucciones o no, se habla de interrupciones
precisas o imprecisas

Garantiza que el proceso


interrumpido contine
PRECISAS correctamente despus
de una interrupcin no
catastrfica.

No tarda en atenderse la
interrupcin
IMPRECISAS La instruccin que
produce la interrupcin
se vuelve ejecutar
Todas las instrucciones que se emitieron antes de
la instruccin indicada por el contador de
programa (PC) almacenado (para continuar el
proceso interrumpido) se han completado

Precisas Las instrucciones posteriores al valor indicado


por el PC almacenado no se ejecutan y no han
(Smith y Pleszkun 1985) cambiado el estado del procesador.

Si la interrupcin fue ocasionada por una


instruccin, el contador de programa apunta a
esa instruccin, que puede ejecutarse
completamente o no.
Significado de las condiciones
de Smith y Pleszkun en un cauce
El contador de programa
almacenado para restaurar
el proceso apunta a la
instruccin que esta aqu

Instrucciones que no se ejecutan Instrucciones que se ejecutan


ni cambian de estado completamente

Instruccin completamente
ejecutada o no ejecutada
Implementacin de
Interrupciones
Imprecisa

Por el propio Fuera del


procesador, procesador,
para indicar Detectada se deja de captar
para indicar
una condicin una condicininstrucciones, se terminan
de error de error las instrucciones del cause,
luego inicia el gestor de
Por el propio Fuera del interrupcin. Luego se
procesador, procesador,contina, o congelar el
para acceder para acceder estado del procesador en el
a un servicio a un serviciomomento de la interrupcin
del sistema del sistemacomo es la de tipo D
operativo operativo

Precisa
2.7 LA FAMILIA DE
PROCESADORES ARM
Se denomina ARM (Advanced RISC Machines)
A una familia de microprocesadores RISC diseados
por la empresa Acorn Computers y desarrollados por
Advanced RISC Machines Ltd., una empresa derivada
de Acorn Computers.
El diseo del ARM comenz en 1983 como un
proyecto de desarrollo en la empresa Acorn
Computers.
El equipo termin el diseo preliminar y los primeros
prototipos del procesador en el ao 1985
Las caractersticas de las arquitecturas RISC favorecen un diseo
sencillo del cauce
De hecho desde el principio las propuestas de procesadores RISC se
planteaban como procesadores segmentados
Despus la segmentacin de cauce se fue incorporando en las micro
arquitecturas de repertorio de instrucciones CISC
Por ejemplo :
- El microprocesador
80486 de intel (1989)
Utiliza un cauce de 5 etapas
(CISC)
El microprocesador MC68040 de Motorola
(1991) utiliza un cauce de 6 etapas (RISC)
Evolucin de las prestaciones RISC y CISC incluyendo la lnea de
nuevos procesadores RISC representadas fundamentalmente por
las arquitecturas ARM y SH de Hitachi.
La potencia disipada por estas nuevas arquitecturas RISC esta en
torno a uno o dos watios de forma que pueden incluirse en
computadoras de bolsillo o dispositivos similares .

Evolucin de las lneas de microprocesadores [Makimoto 01]


La familia de los procesadores ARM se dirige fundamentalmente
al mercado de los sistemas embebidos.
Por lo que las restricciones de bajo coste y consumo tienen una
importancia determinante en el diseo de modelos de
procesadores de esta familia
El primer procesador ARM se desarrollo en Inglaterra entre 1983
y 1985
En ese momento ya se haban propuesto las primeras
arquitecturas RISC : RISC I y RISC II
La arquitectura ARM incorpora una serie de caractersticas de la
arquitectura de Berkeley
Arquitectura de tipo carga/almacenamiento con instrucciones
de tamao fijo de 32 bits y formato de instrucciones con 3
direcciones
El
El primer
primer
procesador
procesador
ARM
ARM
Se desarrollo
en Inglaterra
entre 1983 y
1985
Historia de ARM
ARM1
ARM1 El modelo contaba con apenas 25.000
(Acorn RISC
(Acorn RISC transistores
Machine
Machine 1)
1)

Posea un bus de datos de 32 bits y ofreca un espacio


de direcciones de 26 bits, junto con 16 registros de 32
ARM2 bits (30,000 transistores)

Se consiguieron latencias de 25Mhz,


ARM3 consumo reducido comparativamente
con la arquitectura x86
(1990)

con 35,000 transistores,


usndolo principalmente
ARM6 para la primer PDA de
Apple
comenz a
usarse
dentro
ARM8 de calculador
as, GPS y
dispositivos
mviles
Versiones del Repertorio
de Instrucciones
26 BITS PARA
v1 DIRECCIONES
DE MEMORIA

26 BITS PARA
v2 DIRECCIONES
DE MEMORIA

Direcciones de
byte de 32 bits y
v3 operandos de
32 bits.

Multiplicacin
v4 con operandos
de 64 bits.

Realiza
v5 operaciones de
multiplicacin y
v5E acumulacin de
16 bits.
Han aparecido cinco versiones diferentes del repertorio de
instrucciones ARM, v1 a v5
v1 y v2 solo disponen de 26 bits para direcciones de memoria
En v3 se introducen direcciones de 32 bits y operandos de 32
bits
V3 introdujo instrucciones de multiplicacin con operandos de 32
bits
V4 introdujo instrucciones de multiplicacin con operandos de
64bits
V5 aade instrucciones para normalizar nmeros, multiplicacin y
acumulacin de 16 bits (tiles en rutinas de procesamiento de
seales digitales) y para la gestin de puntos de ruptura en la
depuracin de programas
Caractersticas Importantes

CON RESPECTO AL REPERTORIO DE


INSTRUCCIONES ARM, ES:

LA EXISTENCIA DE UNA CODIFICACIN COMPACTA DEL


CONJUNTO DE INSTRUCCIONES ARM DE LAS VERSIONES V4 Y
V5. (THUMB) DE FORMATO DE 16 BITS.

DESDE EL PUNTO DE VISTA DEL USO EFICIENTE DEL CAUSE,


ES POSIBLE CONDICIONAR LA EJECUCIN DE CUALQUIER
INSTRUCCIN AL CUMPLIMIENTO DE UNA CONDICIN QUE SE
COMPRUEBA EN EL CPSR. SE TRATA DE UNA CARACTERSTICA
POCO USUAL EN OTRAS ARQUITECTURAS.
Diseo ARM

LOS DISEOS DE ARM SUELEN DENOMINARSE NUCLEOS


(CORES), SE PROPORCIONAN DE DOS FORMAS:

A. COMO DISEOS DETALLADOS Y ESPECFICOS PARA


UN PROCESO DE FABRICACIN DE CIRCUITOS
DETERMINADO (MACROCELDAS HARDWARE).

B. COMO UN MDULO HARDWARE DESCRITO A TRAVS


DE UN LENGUAJE DE DESCRIPCIN DE
HARDWARE(POR EJEMPLO VHDL O VERILOG).
SEGN LA TERMINOLOGA ARM, UN NCLEO DE
PROCESADOR INCLUYE SLO EL PROCESADOR Y LAS
CONEXIONES PARA EL BUS DE DATOS Y DIRECCIONES
CORRESPONDIENTE, MIENTRAS QUE UN NCLEO DE
CPU INCLUYE ADEMS CACHS Y COMPONENTES
PARA LA GESTIN DE MEMORIA

HASTA LA VERSIN ARM7, INCLUSIVE, LOS


PROCESADORES ARM SE IMPLEMENTABAN A TRAVS
DE UNA ARQUITECTURA DE 3 ETAPAS, DESPUS LOS
CAUSES PASARON A TENER 5 ETAPAS.

EL DISEO DEL ARM SE HA CONVERTIDO EN UNO DE


LOS MS USADOS DEL MUNDO, DESDE DISCOS
DUROS HASTA JUGUETES. HOY EN DA, CERCA DEL
75% DE LOS PROCESADORES DE 32 BITS POSEEN
ESTE CHIP EN SU NCLEO.
De esta forma el principal problema que presentaba el
cauce de tres etapas que utilizaban los procesadores de
ARM era el denominado

CUELLO DE BOTELLA DE
NEUMAN:
Cualquier computador de programa almacenado con una
nica memoria para datos y programas ver limitadas
sus prestaciones por el ancho de banda de memoria.
El cauce de 3 etapas tiene que acceder memoria en todos los ciclos
para captar instrucciones
Captar Decodificar Ejecutar
Descomprimir Decodificar Leer Esc.
Captar instrucciones ALU
Thumb ARM Reg Reg

Por otra parte, si la memoria esta unificada no se puede acceder a la


vez a una instruccin y a un dato (ARM7)
Si hay que leer o escribir un dato no se pueden capar instrucciones en
estos ciclos
As pues, si se desea reducir el CPI habra que captar mas de 32 bits
en un ciclo
O separar la memoria en una memoria de datos y una memoria de
instrucciones
Por lo tanto, los procesadores que siguieron al ARM7 empezaron a
utilizar cauces de 5 etapas
Y memoria de datos y una memoria de instrucciones separadas

Captar Decodificar Acceso a Escritura en


ALU registro
instrucciones leer registros memoria de datos

El cauce con tres etapas tiene que acceder a memoria en todos los
ciclos para captar instrucciones.
El cauce con 5 etapas se distribuyen en etapas diferentes lectura y
escritura en los registros y la operacin con la ALU.
Existe una etapa de acceso a memoria que no tiene equivalente en el
cauce de tres etapas
Evolucin en los cauces
de los procesadores ARM
El diseo del ARM se ha convertido en uno de los
ms usados del mundo, desde discos duros hasta
juguetes. Hoy en da, cerca del 75% de los
procesadores de 32 bits poseen este chip en su
ncleo.
Game Boy Advance
Fabricante :
Nintendo
Tipo :
Videoconsola porttil
Generacin :
Sexta generacin
Lanzamiento :
jun-2001

CPU :
ARM7TDMI
32-bit @ 16,7 MHz
Videoconsola GP2X
Fabricante :
GamePark Holdings
Tipo :
Videoconsola porttil
Generacin :
Sptima generacin
Lanzamiento :
10 Nov 2005
CPU
ARM920T @ 200Mhz
ARM940T @ 200Mhz
Nintendo DS
Fabricante :
Nintendo
Tipo :
Videoconsola porttil
Generacin :
Sptima generacin
Lanzamiento :
21 de noviembre de 2004

CPU:
ARM946E-S @ 67 Mhz
ARM7TDMI @ 33 MHz
Motorola ROKR Z6
Fabricante :
Motorola
Tipo :
telfono mvil
Generacin :
tercera generacin
Lanzamiento :
16 de julio de 2007

CPU:
ARM1136J(F)-S
iPhone
Fabricante :
Apple Inc
Tipo :
telfono inteligente
Generacin :
tercera generacin
Lanzamiento :
29 de junio de 2007

CPU:
ARM1176JZ(F)-S
Pandora
Fabricante :
Open Pandora
Tipo :
Videoconsola porttil
Generacin :
Sptima Generacin
Lanzamiento :
2010

CPU:
ARMCortex-A8
de Texas Instruments
iPad
Fabricante :
Apple Inc.
Tipo :
Tablet
Reproductor
multimedia digital
Lanzamiento :
3 de abril de 2010

CPU:
Apple A4 de 1 GHz
EJERCICIOS Y PROBLEMAS
Problema 1

Un circuito que implementaba una operacin en Top= 450 ns se ha segmentado mediante


un cauce lineal con cuatro etapas de duracin T1=100 ns, T2=125 ns, T3=125 ns, T4=100
ns, respectivamente separadas por un registro de desacoplo que introduce un retardo de
25 ns

Cul la mxima ganancia de velocidad posible ?


Cul es la mxima productividad del cauce?
A partir de que nmeros de operacin ejecutadas se consigue una productividad al 90 % de la
productividad mxima?
En nuestro caso
T2=T3=125ns , seria el tiempo
mximo de procesamiento por
etapa mas el retardo del registro
de desacoplo que seria
d=25 ns
t = 125 ns +25 ns =150 ns
T
Mxima ganancia S max
t
S= T = 450 ns = 3
t 150 ns
1
w max
Mxima productividad t

W= 1 = 1 = 6 666 666.67 op /s = 6.67 MOPS


t 150ns

A partir de que nmeros de operacin ejecutadas se consigue una productividad al 90 % de la


productividad mxima
0.9 x 1 = n TLI=k x t = 4 x t
150 TLI + (n-1)*t
n
w n
3 = n TLI n 1 * t
500 4*150 + (n-1)*150
n=27
Problema 2
Supongamos que las etapas de una unidad funcional segmentada
S1, S2, S3, S4 y S5 se utilizan en el orden S1, S3, S5, S1, S3, S4,
S1, S3, S2, S5, S4, S2.
Cual es el tiempo ( en numero de ciclos ) de latencia de inicio del cauce ?

Cul es la tabla de reservas y el vector de colisin inicial ?

Si se supone el cauce vaci inicialmente y se introduce una operacin, es posible


introducir otra pasados 5 ciclos ?

Cul es el numero mnimo de ciclos que hay que esperar ?


S1, S3, S5, S1, S3, S4, S1, S3, S2, S5, S4, S2 (TLI = 12 ciclos)

t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12


S1 X X X
S2 X X
S3 X X X
S4 X X
S5 X X

F={3,5,6,7} (latencias prohibidas)

7 6 5 3
C=(1 1 1 0 1 0 0) Vector de colisiones
TLI= 12 Ciclos
Con latencias prohibidas
F=(3 ,6 ,5 ,7)
El vector de colisiones es:
V=(1 1 1 0 1 0 0)
Si se supone el cause vaco inicialmente y se introduce una
operacin es posible introducir otra pasada 5 ciclos?
No, es posible introducir una operacin a los 5 ciclos ya
que es una latencia prohibida.
Cual es el numero mnimo de ciclos que hay que esperar?
Tenemos (1,2,4,) que NO son latencias prohibidas entonces
el nmero mnimo para introducir una operacin seria de 1
ciclo.
Cules son las latencias prohibidas en ese caso una vez que se ha
introducido la segunda operacin?
F (1110100)
( 111010)
(0111010)
7 6 5 4 3 2

(0111010 )or (1110100 ) (1111110 )


Las nuevas latencias prohibidas para la segunda operacin seran:
F2=(2,3,4,5,6,7)
Problema 3

Se pretende utilizar un cauce con cuatro etapas


A, B, C, D, para aumentar el rendimiento en la
ejecucin de la unidad funcional F. las etapas se
pueden utilizar segn una de las dos secuencias
S1 y S2 siguientes:
S1: ABACACABD S2: ADBCCABD
Si la duracin de cada etapa (incluyendo el
registro de acoplo) es de 50 ns, y la operacin
que implementa la unidad funcional F sin
pipeline tarda 350 ns en ejecutarse Cul de las
dos posibilidades es mejor? Por qu? Cules
son los valores mximos para la productividad, la
eficacia y la ganancia del cauce en cada una de
las secuencias de utilizacin, S1 y S2?
solucin
S1: ABACACABD
t1 t2 t3 t4 t5 t6 t7 t8 t9

A X X X X

B X X

C X X

D X

F = (2,4,6) latencias prohibidas


V= (101010) vector de colisiones

LM = 8/2 = 4 MLM
LM = 12/2 = 6
LM = 10/2 = 5
LM = 15/3 = 5

101010 10101 010101

101010
A1 OR 111111
010101
101010 101 000101

101010
A2 OR 101111
000101
101010 1 000001

101010
A3 OR 101011
000001
111111 0 000000 101111 1 000001

101010 101010
Aa OR 101010 Ac OR 101011
7

000000 000001
101111 0 000000
101011 101 000101 101010
Ac OR 101010
7

101010 000000
Ab OR 101111
000101
101011 1 000001
101010
Ab OR 101011
000001
101011 0 000000

7 101010
Ab OR 101010
000000
S2: ADBCCABD
t1 t2 t3 t4 t5 t6 t7 t8

A y y

B y y

C y y

D y y

F = (1,4,5,6) latencias prohibidas


V= (111001) vector de colisiones

LM = 10/2 = 5
LM = 9/2 = 4.5
MLM
Productividad

w n
n lim w( n)
TLI n 1 MLM * t
n
n = nmero de operaciones
TLI =tiempo de latencia de
inicio 1
t = tiempo de ejecucin de w max
una etapa
MLM * t
MLM= mnima latencia
media
1
w max
MLM * t

S1 :

1
w max 5MOPS
4 * 50ns
Podemos concluir que la
alternativa S1 es mejor porque
su productividad mxima es
mayos q la de S2
S2:
1
w max 4.44 MOPS
4.5 * 50ns
Ganancia

G n
n *T lim G ( n)
TLI n 1 MLM * t
n
n = nmero de operaciones
T = tiempo de ejecucin de
operacin sin segmentar
T
TLI =tiempo de latencia de G max
inicio MLM * t
t = tiempo de ejecucin de
una etapa
MLM= mnima latencia
media
T
G max
MLM * t
T: tiempo para que la unidad funcional
complete una operacin
t : tiempo de etapa
S1
350ns
G max 1.75
4 * 50ns
S2
350ns
G max 1.56
4.5 * 50ns
Eficiencia

E n
n *T G max
k * TLI n 1 MLM * t
E max
k
n = nmero de operaciones
T = tiempo de ejecucin de
operacin sin segmentar
TLI =tiempo de latencia de
inicio
t = tiempo de ejecucin de una
etapa
MLM= mnima latencia
media
K= numero de etapas
G max
E max
k

S1

1.75
ES 1 0.4375
4
S2

1.56
ES 2 0.39
4
Problema 4
La tabla de reservas que se muestra a continuacin
corresponde a un cauce que puede ejecutar dos
funciones A y B: Determinar las latencias prohibidas
y construir el diagrama de estados para dicho cauce

t0 t1 t2 t3 t4
s1 A B A B
s2 A B A
s3 B AB

FAA = ( 3 ) FAB = (1,4,2)


FBA = (2,1) FBB = (3,2)
FAA = ( 3 ) FAB = (1,4,2)

FBA = (2,1) FBB = (3,2)

0100 1011
MA MB
0011 0110
SDD 0010 0100 0110
A1 OR
0001 0011 0011
0001 0100 0101
A2 OR
0000 0011 0011
0000 0100 0100
A4 OR
0000 0011 0011
0000 1011 1011
B 3 OR
0000 0110 0110
0000 1011 1011
B 4 OR
0000 0110 0110
0011 0100 0111
A1 OR
0001 0011 0011

0000 0100 0100


A4 OR
0000 0011 0011

0000 1011 1011


B 3 OR
0000 0110 0110

0000 1011 1011


B 4 OR
0000 0110 0110
0001 0100 0101
A2 OR
0000 0011 0011

0000 0100 0100


A4 OR
0000 0011 0011

0000 1011 1011


B 3 OR
0000 0110 0110

0000 1011 1011


B 4 OR
0000 0110 0110
0000 0100 0100
A4 OR
0000 0011 0011

0000 1011 1011


B 3 OR
0000 0110 0110

0000 1011 1011


B 4 OR
0000 0110 0110
0001 0100 0101
A3 OR
0000 0011 0011

0101 1011 1111


B1 OR
0011 0110 0111

0000 1011 1011


B 4 OR
0000 0110 0110
Problema 6
Un procesador segmentado tiene 5 etapas S1, S2,
S3, S4, S5 y todas tardan un ciclo excepto la etapa
S3 (etapa de ejecucin) que, segn las
instrucciones puede tardar 2 o 3 ciclos. Cul es la
velocidad pico de ese procesador si funciona a 500
MHz? Qu mejora podra implementar para
mejorar esa velocidad pico? Qu valor alcanzara
entonces?
Solucin:
Teniendo en cuenta que una etapa dura dos ciclos
o tres ciclos, en el mejor de los casos, si todas las
instrucciones del programa son de aquellas en las
que la etapa S3 duran dos ciclos, se puede
terminar una instruccin cada dos ciclos. Por tanto,
la velocidad pico se puede estima a partir de:
Compramos el resultado mediante la tabla de reservas

FAA = {1}, FBA = {1}


FAB = {1, 2}, FBB = {1, 2}
Una vez determinadas sus latencias prohibidas, se
puede obtener su diagrama de estados
se puede comprobar fcilmente que
cualquier ciclo que se construya tiene una
latencia media que estar entre 2 (como
mnimo) y 3 (como mximo).
Con la MLM la 1 productividad mxima del
de:
w max ser
cauce
MLM * t
Para mejorar la velocidad del procesador,
una posible mejora consiste en redisear la
etapa S3 de forma que conste de tres etapas
independientes de un ciclo cada una de ella,
tal y como muestra la:

Con esta mejora, el tiempo de latencia inicial


de cualquier instruccin sera de 7 ciclos, y
en cada ciclo terminara de ejecutarse una
instruccin. De esta forma, la velocidad pico
sera: ( t = 1 )