Está en la página 1de 25

Escuela de Ingeniera Electrnica

Arquitectura Segmentada

Pipeline (Segmentacin)

EL - 4311 Estructura de Microprocesadores

Ing. Jos Alberto Daz Garca

Escuela de Ingeniera Electrnica

Arquitectura Segmentada

Segmentacin (Pipeline) Es una tcnica de implementacin por medio de la cual se puede traslapar la ejecucin de instrucciones. En la actualidad la segmentacin es una de las tecnologas utilizadas para hacer procesadores ms rpidos.

EL - 4311 Estructura de Microprocesadores

Ing. Jos Alberto Daz Garca

Escuela de Ingeniera Electrnica

Arquitectura Segmentada

Segmentacin una tecnologa natural Ejemplo una lavandera Luis, Juan, Gabriela, Lucrecia cada uno tiene una carga de ropa para lavar, secar y doblar. Las lavadoras toman 30 minutos Las secadoras toman 30 minutos Doblarla toma 30 minutos Acomodarla toma 30 minutos

EL - 4311 Estructura de Microprocesadores

Ing. Jos Alberto Daz Garca

Escuela de Ingeniera Electrnica

Arquitectura Segmentada

Lavandera secuencial

EL - 4311 Estructura de Microprocesadores

Ing. Jos Alberto Daz Garca

La lavandera secuencial toma 8 horas en procesar cuatro cargas. Si lo realizamos con la tecnologa segmentada Cunto tardara?

Escuela de Ingeniera Electrnica

Arquitectura Segmentada

Lavandera segmentada

EL - 4311 Estructura de Microprocesadores

Tardara 3.5 horas en procesar las cuatro cargas.

Ing. Jos Alberto Daz Garca

Escuela de Ingeniera Electrnica

Arquitectura Segmentada

Lecciones sobre segmentacin


La segmentacin no ayuda en la realizacin de una nica tarea, ayuda en la realizacin de una carga de trabajo. Se pueden realizar mltiples tareas simultneamente utilizando diferentes recursos. La velocidad se incrementa si se aumentan el nmero de segmentos. La razn de segmentacin est dada por el segmento ms lento. El desbalance en el largo de los segmentos reduce la velocidad (speedup) El tiempo en llenar y vaciar los segmentos reduce la velocidad. Almacn para las dependencias.

EL - 4311 Estructura de Microprocesadores

Ing. Jos Alberto Daz Garca

Escuela de Ingeniera Electrnica

Los 5 estados de las instrucciones MIPS Arquitectura Segmentada


Las instrucciones MIPS presentan cinco estados (cada estado toma un ciclo de reloj):

IF: Bsqueda de instruccin

EL - 4311 Estructura de Microprocesadores

Ing. Jos Alberto Daz Garca

ID: Bsqueda de registros y decodificacin de instrucciones EXE: Ejecucin o clculo de direccin MEM: Acceso a la memoria de datos. WB: Escribir datos en el archivo de registros.

Bsqueda de una instruccin de la memoria de instrucciones

Escuela de Ingeniera Electrnica

SEGMENTACION Arquitectura Segmentada


EL - 4311 Estructura de Microprocesadores

Ing. Jos Alberto Daz Garca

La segmentacin traslapa los pasos. Mejora el rendimiento ya que aumenta el procesamiento de instrucciones.

Escuela de Ingeniera Electrnica

Arquitectura Segmentada

SEGMENTACIN Qu lo hace tan fcil?


Todas las instrucciones son del mismo largo Pocos formatos de instrucciones Los operandos con memoria solo aparecen en las instrucciones de carga y almacene

Qu lo hace difcil?
Riesgos: Hay situaciones en la segmentacin cuando la siguiente instruccin no se puede ejecutar en el prximo ciclo de reloj. Hay tres riesgos:
Riesgos estructurales Riesgos de control Riesgos de datos

EL - 4311 Estructura de Microprocesadores

Ing. Jos Alberto Daz Garca

Escuela de Ingeniera Electrnica

Arquitectura Segmentada

Riesgos estructurales El hardware no puede manejar la combinacin de instrucciones que deben ejecutarse en el mismo ciclo. (suponiendo que se cuenta con una nica memoria) Ejemplo: IF y MEM no pueden ejecutarse en el mismo ciclo ya que ambas necesitan accesar datos de la memoria.

EL - 4311 Estructura de Microprocesadores

Ing. Jos Alberto Daz Garca

Escuela de Ingeniera Electrnica

Arquitectura Segmentada

RIESGOS ESTRUCTURALES SOLUCIN: Retardar la instruccin 4 hasta el ciclo 7.

EL - 4311 Estructura de Microprocesadores

Ing. Jos Alberto Daz Garca

Escuela de Ingeniera Electrnica

Arquitectura Segmentada

RIESGOS DE CONTROL Los riesgos en el control ocurren porque el procesador no sabe lo suficiente.
Cuando se producen saltos condicionales Saltos incondicionales

SOLUCIN:
Atascamiento (Stall): se puede retrazar la ejecucin de la unidad de salto despus de que se conozca la informacin. Prediccin (predict): se puede predecir esta informacin en forma temprana. Retardar el salto.

EL - 4311 Estructura de Microprocesadores

Ing. Jos Alberto Daz Garca

Escuela de Ingeniera Electrnica

Arquitectura Segmentada

Riesgos de control (utilizando Atascamiento) Asuma que se puede calcular la direccin de salto y actualizar el PC en el estado ID. Ejemplo:

EL - 4311 Estructura de Microprocesadores

Ing. Jos Alberto Daz Garca

Escuela de Ingeniera Electrnica

Arquitectura Segmentada

Riesgos de control Solucin correcta

EL - 4311 Estructura de Microprocesadores

Ing. Jos Alberto Daz Garca

Escuela de Ingeniera Electrnica

Arquitectura Segmentada

Riesgos de control (utilizando prediccin) Siempre se predice que el salto no se realizar Si la prediccin es incorrecta, entonces se realiza el atascamiento

EL - 4311 Estructura de Microprocesadores

Ing. Jos Alberto Daz Garca

Escuela de Ingeniera Electrnica

Arquitectura Segmentada
EL - 4311 Estructura de Microprocesadores

Riesgos de control (utilizando retardo en el salto) El ensamblador automticamente reemplaza la instruccin por una instruccin que no afecte el salto. NOTA: MIPS utiliza la seccin de salto retardada

Ing. Jos Alberto Daz Garca

Escuela de Ingeniera Electrnica

Riesgos de datos Arquitectura Segmentada


EL - 4311 Estructura de Microprocesadores

Los riesgos de datos ocurren porque una instruccin depende del resultado de una instruccin previa en el segmento NOTA: las instrucciones add o sub no escriben el resultado hasta el estado WB. Ejemplo:

Ing. Jos Alberto Daz Garca

Algunas veces se puede resolver (o reducir) atascamientos para los riesgos de datos utilizando la tcnica adelantamiento (forwarding)

Escuela de Ingeniera Electrnica

Arquitectura Segmentada

Riesgos de datos (forwarding) Forwarding: Como el resultado de la operacin add ($s0) se obtiene despues del estado EX, se puede adelantar el resultado ($s0) al prximo EX para realizar la operacin sub.

EL - 4311 Estructura de Microprocesadores

Ing. Jos Alberto Daz Garca

Escuela de Ingeniera Electrnica

Arquitectura Segmentada

Riesgos de datos (forwarding) Forwarding: trabaja muy bien. Sin embargo no prev atascamientos en los segmentos. Ejemplo: como la instruccin lw no carga el dato deseado en la memoria hasta el estado MEM, no se puede adelantar el resultado ($s0) hasta el estado MEM.

EL - 4311 Estructura de Microprocesadores

Ing. Jos Alberto Daz Garca

Escuela de Ingeniera Electrnica

Arquitectura Segmentada

Ruta de datos segmentada En esta seccin se mostrar la ruta de datos de un solo ciclo para modificarla en una ruta de datos segmentada

EL - 4311 Estructura de Microprocesadores

Ing. Jos Alberto Daz Garca

Escuela de Ingeniera Electrnica

Arquitectura Segmentada

Idea bsica de la ruta de datos


Se puede dividir la ruta de datos de un solo ciclo en los siguientes cinco segmentos
IF: Instruction fetch
0 M u x 1

ID: Instruction decode/ register file read

EX: Execute/ address calculation

MEM: Memory access

WB: Write back

Add 4 Shift left 2 Read register 1 Add Add result

PC

Address

Instruction Instruction memory

Read data 1 Read register 2 Registers Read Write data 2 register Write data

0 M u x 1

Zero ALU ALU result

Address Data memory Write data

Read data

1 M u x 0

16

Sign extend

32

EL - 4311 Estructura de Microprocesadores

Ing. Jos Alberto Daz Garca

Qu necesitamos para realizar esta separacin? Registros

Escuela de Ingeniera Electrnica

Arquitectura Segmentada

Ruta de datos segmentada


Con el fin de almacenar informacin entre los estados, se necesitan de los registros (Nota: no son necesarios los registros entre WB e IF, ya que todas las instrucciones deben actualizar algunos datos en la memoria, registros o en el PC)
0 M u x 1

IF/ID Add 4

ID/EX

EX/MEM

MEM/WB

Add Add result Shift left 2 Instruction Read register 1

PC

Address Instruction memory

Read data 1 Read register 2 Registers Read Write data 2 register Write data

0 M u x 1

Zero ALU ALU result

Address Data memory Write data

Read data

1 M u x 0

EL - 4311 Estructura de Microprocesadores

16

Sign extend

32

Ing. Jos Alberto Daz Garca

Escuela de Ingeniera Electrnica

Arquitectura Segmentada

Hay un problema Dnde?


El registro de escritura cambia despus del estado final en la instruccin lw. Por lo tanto se necesita cambiar esta ruta de datos para conservar el nmero del registro destino en la instruccin de carga.
0 M u x 1

IF/ID Add 4

ID/EX

EX/MEM

MEM/WB

Add Add result Shift left 2 Instruction Read register 1

PC

Address Instruction memory

Read data 1 Read register 2 Registers Read Write data 2 register Write data

EL - 4311 Estructura de Microprocesadores

0 M u x 1

Zero ALU ALU result

Address Data memory Write data

Read data

1 M u x 0

16

Sign extend

32

Ing. Jos Alberto Daz Garca

Escuela de Ingeniera Electrnica

Ruta de datos corregida Arquitectura Segmentada


0 M u x 1

IF/ID

ID/EX

EX/MEM

MEM/WB

Add 4 Shift left 2 Instruction Read register 1 Add Add result

PC

Address Instruction memory

Read data 1 Read register 2 Registers Read Write data 2 register Write data

0 M u x 1

Zero ALU ALU result

Address Data memory Write data

Read data

1 M u x 0

16

Sign extend

32

EL - 4311 Estructura de Microprocesadores

Ing. Jos Alberto Daz Garca

Escuela de Ingeniera Electrnica

Arquitectura Segmentada

Representacin grfica de los segmentos


Time (in clock cycles) Program execution order (in instructions) lw $10, 20($1) CC 1 CC 2 CC 3 CC 4 CC 5 CC 6

IM

Reg

ALU

DM

Reg

sub $11, $2, $3

IM

Reg

ALU

DM

Reg

Puede ayudar para responder preguntas como:


Cuntos ciclos se necesitan para ejecutar este programa? Qu hace la ALU durante el ciclo 4? Utilice esta representacin para ayudar a entender la ruta de los datos.

EL - 4311 Estructura de Microprocesadores

Ing. Jos Alberto Daz Garca

También podría gustarte