You are on page 1of 49

Capitulo 2

SEGMENTACIN DE CAUCE Y
PROCESADORES SEGMENTADOS

DEFINICIN

La segmentacin de cauce es una tcnica general que permite


aumentar el rendimiento del sistema al que se aplica.
Se basa e identifica una serie de fases o pasos en el
procesamiento de la tarea que realiza el sistema y redisea
este de forma que cada una de esas fases se implemente en
una etapa que puede trabajar 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 segmenta, e
incluso mayor, en el sistema segmentado aumentara el
numero de tareas que se completan por unidad de tiempo.

Esta tcnica se aplica en las


cadenas de montaje de las
fabricas, y su punto de partida
puede situarse en la
fabricacin del modelo
automvil Ford T (1908-1927)
El inicio del uso de la
segmentacin de cauce en los
computadores empieza con
el IBM 709,un computador
basado en tubos de vaco con
memoria de ncleos de
ferrita.
(1958 mejora del IBM 704)

Entre las nuevas tcnicas que


incorporaba consista en la
incorporacin de canales
para hacer posible el
solapamiento del
procesamiento de
instrucciones y las entradas
/salidas, con la misma
frecuencia de reloj que el IBM
704

1962 aparece el IBM 70941 ,


un computador implementado
con transistores y memoria de
ncleos de ferrita que inclua
un registro el IBR
(INSTRUCTION BACKUP
REGISTER)

Permite el solapamiento entre


la ejecucin de una
instruccin y la captacin del
siguiente . su frecuencia de
reloj era 6 veces mayor que el
del IBM 709 , pero la
velocidad era 7.5 veces
mayor.

En Bucholz 62,un texto donde


se describe el proyecto
stretch, aparece el IBM 7030,
se puede considerar el primer
procesador de propsito
general segmentado.

Despus de ser utilizada


frecuentemente en
computadoras diseados
desde finales de los 50, la
segmentacin de cauce paso
a ser secundario desde
finales de 60 hasta finales de
los 70, dado que se hacia
mas nfasis en las maquinas
orientadas a simplificar el
software (VAX)

En los 80 con las


arquitecturas RISC se vuelve
a utilizar la segmentacin de
cauce, dado que las
caractersticas RISC
favorecen un diseo sencillo
para el cauce que puede
integrarse en un
microprocesador y facilitan un
aprovechamiento eficiente del
mismo.

El primer procesador con un


cauce constituido por un gran
numero de etapas fue el MIPS
R400.la primera
implementacin alpha el
21064, tenia un conjunto de
instrucciones y cauce de
procesamiento tambin
similar.

PRINCIPIOS DE LA SEGMENTACIN
Y MEJORA DE PRESTACIONES
Supongamos que en un sistema una operacin se
ejecuta en un tiempo T. una implementacin
segmentada del sistema se basa en dividir la
ejecucin de la operacin en una serie de fases
que se realizan una despus de la otra, en cada
una de las etapas que constituyen el sistema
segmentado.
En un sistema segmentado con etapas que
consumen un tiempo t. la GANACIA DE
VELOCIDAD que conseguira en la ejecucin de n
operaciones consecutivas seria :


A medida que el nmero de operaciones a procesar es
mayor, la ganancia que se obtiene es mayor, tendiendo
(cuando el numero de instrucciones tienden al infinito):

T es el tiempo de procesamiento correspondiente a una


etapa, cuanto menor sea, mayor ser la ganancia mxima
alcanzable, segn esto, cuanto mayor sea el numero de
etapas, k, (suponiendo que mas etapas significa etapas mas
sencillas, que necesitan un tiempo t menor).
El valor del tiempo de latencia de inicio se puede expresar
como
En el caso ideal de que se verifique que
La ganancia mxima que se podra obtener en un cauce
cuando el numero de operaciones ejecutadas en el mismo
cree tiende a , es decir, a ser igual al numero de etapas de
cauce.

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

obtencin
del tiempo
de las
etapas de
un cauce
sncrono

Uso de copias de etapas en paralelo para


mejorar el rendimiento del cauce

OTRAS MAGNITUDES

PRODUCTIVIDA
PRODUCTIVIDA
D
D

EFICIENCIA
EFICIENCIA

DISEO DE UN PROCESADOR
SEGMENTADO,GESTION DE RIESGOS DE DATOS,
CONTROL Y ESTRUCTURALES

Suponemos que el procesador tiene un tamao de palabra


igual a 32 bits y para empezar, consideramos una instruccin
sencilla en cuanto a su ejecucin.
Consideramos una instruccin que codifica una operacin con
dos registros como operandos y un registro como destino:

Rc Ra op Rb

Esta distribucin de tareas nos lleva a un cauce con cuatro


etapas:

-IF(Instruction Fetch)
-ID/OF(Instruction Decode/Operand Fetch)
-ALU
-OS(Operand Store)

Distribucin inicial de etapas en el


diseo de un procesador
segmentado

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(hazard, en
ingles) es cualquier condicin
que pueda interrumpir el flujo
continuo, en este caso, de
instrucciones, a travs del
cauce. Se distinguen tres
tipos:

Riesgos Estructurales

Riesgos de
Datos
Riesgos de
control
Riesgos
Estructurales

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.

SOLUCIONES PARA LA DEPENDENCIAS DE DATOS


DE TIPO RAW
Las alternativas mas importantes para evitar los
problemas de los riesgos RAW son:
REORGANIZACIN DE CDIGO
EL INTERBLOQUEO ENTRE ETAPAS
ATAJOS (BYPASS PATHS O FORWARDING)

REORGANIZACIN DE CDIGO
Consiste en disponer las instrucciones en el
programa de forma que entre instrucciones con
dependencias de tipo RAW existan instrucciones
que permitan retrasar la segunda instruccin con
respecto a la primera dando tiempo a que esta
haya almacenado su resultado antes de que la
lectura ocasionada por la segunda instruccin
tenga lugar
En el caso que de que no existan instrucciones
independientes que puedan interponerse entre las
instrucciones con dependencias de tipo RAW,
siempre es posible introducir una o varias
instrucciones de no operar

Solucin para las dependencias RAW reorganizacin


de cdigo

EL INTERBLOQUEO ENTRE
ETAPAS
Se introducen elementos de hardware en el
cauce para detectar la existencia de
dependencias. En el caso de que se detecte una
la instruccin que debe leer el resultado
proporcionado por la primera se detiene el
numero de ciclos necesario

ATAJOS (BYPASS PATHS O FORWARDING)

Ejemplo de ejecucin de dos instrucciones con dependencia RAW que


ilustra el funcionamiento de la tcnica de caminos de bypass.

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..)
El desplazamiento respecto al valor de PC que
determina la direccin destino se encuentra
almacenado en el registro Ra.

Procesador segmentado con saltos condicionales

Eventos significativos en la ejecucin de una


instruccin de salto condicional

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.

Otra alternativa seria dejar que las instrucciones que se


han captado prosigan su ejecucin en el cauce. Se le
conoce tambin con el nombre de salto retardado

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.

Se puede mejorar el procesamiento de saltos si se modifica la forma de


comprobar la condicin., evitando que la misma se genere en otra
instruccin distinta a la propia instruccin de salto condicional. Por
ejemplo:
R3: R3+R1

R3: R3+R1
bz R6
bz R3,R6
Tambin se mejorara el rendimiento del procesador frente a los saltos si
se adelantara el procesamiento de la instruccin de salto a las primeras
etapas del cauce
Por ejemplo si se reorganiza convenientemente el hardware de la etapa
ID/OF para que dicha etapa se realice la determinacin de que la
instruccin es de salto .

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
Para organizar 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.