Вы находитесь на странице: 1из 26

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

FACULTAD DE INGENIERÍA ELECTRÓNICA Y ELÉCTRICA

NOTAS DEL CURSO DE


SISTEMAS DIGITALES

SEGMENTACIÓN (PIPELINE)

Profesor: Guillermo Tejada Muñoz Fecha: 2018


SEGMENTACIÓN DE CAUCE -PIPELINE

Ejemplo una lavandería:

Jesús (X1), María (X2), José (X3) y Gabriel (X4) tienen cada uno una carga de ropa para
lavar, secar, doblar y acomodarlas.

Supongamos que por cada carga:

• Las lavadoras toman 30 minutos……(L)


• Las secadoras toman 30 minutos…..(S)
• Doblarlas toma 30 minutos……………(D)
• Acomodarlas toma 30 minutos….....(A)
SEGMENTACIÓN DE CAUCE -PIPELINE

PROCESO SECUENCIAL

Tenemos que esperar 2 horas para cada carga de ropa:

Velocidad proceso secuencial= carga/tiempo = carga/2hora = 0.5 carga/hora


SEGMENTACIÓN DE CAUCE -PIPELINE
PROCESO SEGMENTADO O PIPELINE:

Después de las primeras 2 horas, para obtener una nueva carga de ropa se tiene que esperar solo
30 minutos (O.5 horas), es decir, a partir de este punto la velocidad es:

Velocidad proceso pipeline = carga/tiempo = carga/0.5hora = 2carga/hora

La velocidad proceso pipeline se ha cuadriplicado.

Velocidad pipeline se multiplica igual al número de sus etapas.


SEGMENTACIÓN DE CAUCE -PIPELINE
En 1959, el ordenador Stretch de IBM, para un proceso de dos etapas:

1.Captación o extracción de la instrucción desde la memoria (fetching).


2.Ejecución de la instrucción

Operaba de la siguiente forma:

• Mientras se ejecutaba una instrucción (Paso de Ejecución), paralelamente se realizaba el Paso


de Captación de la instrucción siguiente para guardarla en un buffer de prealimentación.
• Entonces, al terminar de ejecutar la instrucción se cargaba la siguiente instrucción
directamente desde el buffer sin tener que esperar a traerla desde la memoria.

Esta técnica de prealimentación o prefetching puede verse como un pipeline de dos etapas que se
repite.

Entonces:
Como el proceso tiene dos etapas entonces la velocidad de procesamiento se duplica siempre y
cuando los tiempos de Captación y Ejecución fueran iguales.
SEGMENTACIÓN DE CAUCE -PIPELINE
Sin embargo, la duplicidad de la velocidad es poco probable por dos razones:

1. El tiempo de Ejecución es generalmente más largo que el de Captación: La Ejecución incluye


varias acciones como la lectura y almacenamiento de operandos y la realización de alguna
operación. Por tanto la Captación espera algún tiempo antes que pueda vaciar su buffer.
2. En una instrucción de salto condicional (se produce o no de acuerdo a una condición) la
dirección de la siguiente instrucción a captar es desconocida. Por tanto la etapa de captación
debe esperar hasta que reciba la dirección siguiente instrucción desde la etapa de ejecución. La
etapa de ejecución puede entonces tener que esperar mientras se capta la siguiente
instrucción.

La perdida de tiempo debida a la segunda razón se reduce con una regla simple:

Cuando una instrucción de salto condicional pasa de la Captación a la Ejecución, se capta la


instrucción que sigue a la instrucción de salto. Entonces, si el salto no se produce (no se cumple la
condición), no se ha perdido tiempo. Si el salto se produce, debe desecharse la instrucción captada
y captarse otra instrucción.
SEGMENTACIÓN DE CAUCE -PIPELINE
A pesar de los inconvenientes con las dos etapas se logra aceleración. Para conseguir mayor
aceleración fue conveniente dividir las fases de ejecución de las instrucciones en un mayor
número de etapas, de tal modo que tengan casi igual duración.

Después de Stretch IBM aparecieron:

• UNIVAC sacó el LARC, con 4 etapas.


• PowerPC 750 tiene 6 etapas.
• Pentium de Intel consta de tres unidades de proceso en pipeline, cada una dividida en
varias etapas.
• Motorola 68040 tenía 6 etapas para el tratamiento de los enteros.
SEGMENTACIÓN DE CAUCE -PIPELINE

La ejecución de una instrucción podría descomponerse en las siguientes 5 etapas:

1. IF (Instruction Fetch): Se lee la instrucción de la memoria de instrucciones y se actualiza PC=PC+4.


2. ID (Instruction Decode): Se decodifica la instrucción y se accede a los registros del banco de registros.
3. EXE (Execution): Se calcula en ALU las instrucciones tipo R o se calcula direcciones de memoria.
4. MEM (Memory Access): Se accesa a la memoria de datos para leer o escribir.
5. WB (Write Back): Se escribe en el banco de registros el resultado de la ALU o un dato extraído de la
memoria de datos.

Etapa Etapa Etapa Etapa Etapa


IF ID EXE MEM WB
SEGMENTACIÓN DE CAUCE -PIPELINE

SECUENCIAL CON UN MICROPROCESADOR


50us 100Us 150 us

I1 IF1 ID1 EXE1 MEM1 WB1


IF2 ID2 EXE2 MEM2 WB2
I2
IF3 ID3 EXE3 MEM3 WB3
I3
Una instrucción se procesa cada 50useg
Latencia de cada instrucción es 50 useg.

PIPELINE CON UN MICROPROCESADOR PARALELO CON 3 MICROPROCESADORES

50us 60Us 70 us 50us

I1 IF1 ID1 EXE1 MEM1 WB1 I1 IF1 ID1 EXE1 MEM1 WB1
IF2 ID2 EXE2 MEM2 WB2 IF2 ID2 EXE2 MEM2 WB2
I2 I2
IF3 ID3 EXE3 MEM3 WB3 IF3 ID3 EXE3 MEM3 WB3
I3 I3

Después de 50us por cada 10 useg se procesa una instrucción, entonces CPI=1. En 50 useg se procesan las tres instrucciones,
La latencia por cada instrucción es 50 useg pero su desempeño o rendimiento pero con mayores costos de hardware.
mejoro - 1 ciclo (10us) por instrucción.
DESEMPEÑO
¿Cuánto tiempo le tomará a un pipeline ejecutar 1000000 de instrucciones add?

La primera instrucción tomará = 5 ciclos


Las restantes tomarán = 1 ciclo
Entonces:

Tiempo = 1x5ciclos+ (1000000-1)x 1 ciclo = 4 ciclos + 1000000 ciclos =1000004 ciclos


Si cada ciclo es 200ps, entonces:
Tiempo = 200 useg.

También:

Tiempo = (Número de etapas – 1)*ciclo + (Número de instrucciones)*ciclo


Tiempo = 4*ciclo + 1000000*ciclo = 1000004 ciclos
Tiempo = 200 useg.
Parámetros importantes
El tiempo de ciclo del pipeline es el tiempo necesario para que un conjunto de instrucciones avance una
etapa a través del pipeline. Está determinada por la duración de la etapa más lenta y determina el clock
del pipeline.

Donde:

Además:
MIPS PIPELINE

Se agregan registros de estados (latchs: IF/ID, ID/EX, EX/MEM, MEM/WB)


que aislan cada etapa del pipeline.
CAMINO DE DATOS SEGMENTADO

I1
CAMINO DE DATOS SEGMENTADO

I2 I1
I3 I2 I1
CAMINO DE DATOS SEGMENTADO

I4 I3 I2 I1
CAMINO DE DATOS SEGMENTADO

I5 I4 I3 I2 I1
CAMINO DE DATOS SEGMENTADO - lw
CAMINO DE DATOS SEGMENTADO - lw
CAMINO DE DATOS SEGMENTADO - lw
CAMINO DE DATOS SEGMENTADO - lw
CAMINO DE DATOS SEGMENTADO - lw
SEÑALES DE CONTROL PIPELINE
Todas las señales de control se generan en la unidad de control desde la primera etapa
(Decodificación) y se van pasando de etapa en etapa.
SEÑALES DE CONTROL PIPELINE

En la etapa IF: No hay señales de control. Siempre lee Instrucción y actualiza PC.
En la etapa ID: No hay señales de control.
REFERENCIAS

Patterson, D.A, Hennessy, J.L. (2005). Computer Organization and Design


The hardware/Software Interface (Third edition). USA: Elsevier Inc.

Patterson, D.A, Hennessy, J.L. (2014). Computer Organization and Design


The hardware/Software Interface (Fifth edition). USA: Elsevier Inc.

Arquitectura de Computadores- Cesar Represa -


https://www.youtube.com/watch?v=ZryPweoBQFM&list=PL8c7Cj2gXgtNy9yQxqC0RT
tQdORCPuDwn

Arquitectura de Sistemas - Segmentación - Antonio Llanes-


https://www.youtube.com/watch?v=aAdZjIWeEtQ

Вам также может понравиться