You are on page 1of 37

Segmentación de Cauce y

Procesadores
Segmentados
Curso : ARQUITECTURA DE COMPUTADORAS

2018A
Contenido

2.1 Introducción: Definición


y Notas Históricas

2.2 Principios de la Segmentación y


Mejora de Prestaciones

2.3 Diseño De Un Procesador Segmentado.


Gestion De Riesgos De Datos, Control Y
Estructurales
PIPELINING
Es una técnica empleada en el diseño de
procesadores, basada en la división de la ejecución
de las instrucciones en etapas, consiguiendo así que
una instrucción empiece a ejecutarse antes de que
hayan terminado las anteriores y, por tanto, que haya
varias instrucciones procesándose simultáneamente.
Mejorar desempeño realizando paralelamente varias
etapas del ciclo de instrucción al mismo tiempo.
En el procesador las unidades funcionales se dividen
entre ellas el procesamiento de las instrucciones.
La segmentación se utiliza para hacer procesadores
mas rapidos
Segmentación del procesador en etapas para
procesar una instrucción diferente en cada una de
ellas y trabajar con varias a la vez.
IBM 709
Computador basado en tubos de vacío con memoria
de núcleos de ferrita.
Apareció en 1958 como mejora del IMB 704, este
incorporaba canales los cuales permitían el
solapamiento de instrucciones y las entradas y
salidas.
Con la misma frecuencia de reloj se conseguia 60%
mas de prestaciones.
IBM 70941
Apareció en 1962
Computador implementado con transistores y
memoria de núcleos de ferrita y que incluía un
registro IBR(Instruction Backup Register).
IBR almacena la siguiente instrucción a ejecutar
Con una frecuencia 6 veces mayor se obtiene una
velocidad 7,5 veces mayor. 25% mas de prestaciones
Se observa que se puede lograr una mejora en la
velocidad que no se basa exclusivamente en el
aumento de la velocidad del circuito.
IBM 7030 STRECH
Proyecto Strech primero en utilizar termino
“segmentación de cauce”
Primer procesador de propósito general segmentado.
Implementado a través de un cauce con cuatro
etapas que solapaban la captación, decodificación y
la ejecución.
Años 50, 60 y 70 la segmentación de cauce pasa a un
segundo plano.
En 1981 se publica 1er libro “Kogge” dedicado a la
segmentación de cauce
En los 80 resurge la segmentación de cauce gracias a las
instrucciones RISC
Procesadores RISC se diseñaron desde principio como
“procesadores segmentados”
Para los años 90 la segmentación se utiliza incluso en
los procesadores embebidos los cuales necesitaban
prestaciones aún mas elevadas.
Primer procesador con cauce supersegmentado fue
MIPS R4000.
2.2 PRINCIPIOS DE LA SEGMENTACIÓN Y
MEJORA DE LAS PRESTACIONES
Consideremos que una operación se
ejecuta en un tiempo T, la
segmentación se basa en dividir la
ejecución en fases que se realicen una
después de la otra pero de forma
independiente.
GANANCIA DE VELOCIDAD “n” operaciones
_
 = =
TLI: tiempo de latencia inicial.
N: número de operaciones en el cauce
t: tiempo de procesamiento de una etapa.
T: tiempo de ejecución de una operación.
k: número de etapas.
Si el número de instrucciones tiende a infinito.
 á =
TLI=k . t
Si T=TLI
_
 = = =
Inserta un
registro de
desacoplo
entre
etapas
2.3 DISEÑO DE UN PROCESADOR
SEGMENTADO.
GESTION DE RIESGOS DE DATOS,
CONTROL Y ESTRUCTURALES
Consideramos una instrucción que
codifica una operación con dos registros
como operandos y un registro como
destino:
Rc ← Ra op Rb

Esta distribución de tareas nos lleva a un


cauce con cuatro etapas:
-IF(Instruction Fetch)
-ID/OF(Instruction Decode/Operand
Fetch)
-ALU
-OS(Operand Store)
Distribución inicial de etapas en el diseño de un
procesador segmentado
• Considerando solo este tipo de instrucciones, se pueden
presentar situaciones que reducen el rendimiento del cauce.
Riesgos de datos
surgen por
dependencia entre
operandos y
resultados de
instrucciones
distintas

• 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 técnicas.
• Así un riesgo o dependencia(hazard, en ingles) es cualquier condición que
pueda interrumpir el flujo continuo, en este caso, de instrucciones, a
través del cauce. Se distinguen tres tipos:
-Riesgos de Datos Riesgos Estructurales o
-Riesgos de control coliiones surgen cuando
instrucciones diferentes
-Riesgos Estructurales necesitan un recurso al
mismo tiempo
RIESGOS DE DATOS

Riesgos de control
surgen por
instrucciones de salto
condicional
• La escritura en el banco de registros siempre se hace
en la ultima etapa, la etapa OS. Por lo tanto, en el
diseño de cauce que se planteo, los riesgos de tipo
WAR y RAW no causan problemas de ningún 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:

–Reorganización de código
–Interbloqueo entre etapas
–Los atajos (bypass paths o forwarding)
1. Reorganización de Código
2. Interbloqueo entre etapas

• Se introducen elementos hardware en el


cauce para detectar la existencia de
dependencias.
3. Atajos (bypass paths o forwarding)

Alumno Morales Moya Edward Anibal


• Ejemplo de ejecución de dos instrucciones con
dependencia RAW que ilustra el funcionamiento
de la técnica de caminos de bypass.

You might also like