27
DISEÑO DE UN PROCESADOR DISEÑO DE UN PROCESADOR SEGMENTADO. SEGMENTADO. GESTIÓN DE RIESGOS DE GESTIÓN DE RIESGOS DE DATOS, CONTROL Y DATOS, CONTROL Y ESTRUCTURALES ESTRUCTURALES

Arquitectura de Computadoras Tema 2.3

Embed Size (px)

Citation preview

Page 1: Arquitectura de Computadoras Tema 2.3

DISEÑO DE UN DISEÑO DE UN PROCESADOR PROCESADOR SEGMENTADO.SEGMENTADO.

GESTIÓN DE RIESGOS DE GESTIÓN DE RIESGOS DE DATOS, CONTROL Y DATOS, CONTROL Y

ESTRUCTURALESESTRUCTURALES

Page 2: Arquitectura de Computadoras Tema 2.3

GENERALIDADESGENERALIDADES

RcRcRa op RbRa op Rb

La distribución de tareas nos lleva a unLa distribución de tareas nos lleva a un

cause de cuatro etapas:cause de cuatro etapas: IFIF (Instruction fetch)(Instruction fetch) ID/OFID/OF (Instruction Decode/Operand (Instruction Decode/Operand

Fetch)Fetch) ALUALU OSOS (Operand Store)(Operand Store)

Page 3: Arquitectura de Computadoras Tema 2.3
Page 4: Arquitectura de Computadoras Tema 2.3

Existen una serie de condiciones Existen una serie de condiciones (riesgos) que pueden hacer que el (riesgos) que pueden hacer que el cauce no genere los resultados cauce no genere los resultados correctos, a no ser que se interrumpa correctos, a no ser que se interrumpa su funcionamiento durante un su funcionamiento durante un número de ciclos determinado. Lo número de ciclos determinado. Lo que llevara a la disminución de que llevara a la disminución de rendimiento del cauce.rendimiento del cauce.

Tipos de riesgos:Tipos de riesgos: Riesgos de datosRiesgos de datos Riesgos de controlRiesgos de control Riesgos estructuralesRiesgos estructurales

Page 5: Arquitectura de Computadoras Tema 2.3

Riesgos de DatosRiesgos de Datos:: Surgen por las Surgen por las dependencias entre los operandos y dependencias entre los operandos y resultados de operaciones anteriores o resultados de operaciones anteriores o posteriores.posteriores.

Riesgos de control:Riesgos de control: Se originan a partir de Se originan a partir de instrucciones de salto condicional, ya que instrucciones de salto condicional, ya que según su resultado, determinan la según su resultado, determinan la secuencia de instrucciones que se secuencia de instrucciones que se ejecutaran tras ellas.ejecutaran tras ellas.

Riesgos estructurales:Riesgos estructurales: Llamados también Llamados también de colisiones, se produce cuando de colisiones, se produce cuando instrucciones diferentes pueden necesitar instrucciones diferentes pueden necesitar un recurso al mismo tiempo.un recurso al mismo tiempo.

Page 6: Arquitectura de Computadoras Tema 2.3

RIESGOS DE DATOSRIESGOS DE DATOS

TIPOS:TIPOS: RAW (Read After Write)RAW (Read After Write) WAR (Write After Read)WAR (Write After Read) WAW (Write After Write)WAW (Write After Write)

Page 7: Arquitectura de Computadoras Tema 2.3

Riegos de datos tipo RAWRiegos de datos tipo RAW

Se producen cuando una instrucción Se producen cuando una instrucción utiliza como uno de sus operandos, utiliza como uno de sus operandos, el resultado que obtiene de una el resultado que obtiene de una instrucción previa:instrucción previa:

Almacenamiento1 2W RR2 = R1 + R2

R1 = R2 + R3

Read Oper Write

t+1 t+2 t+3 t+4

Read Write

Page 8: Arquitectura de Computadoras Tema 2.3

Riegos de datos tipo WARRiegos de datos tipo WAR

Se producen cuando una instrucción Se producen cuando una instrucción utiliza como destino, un operando utiliza como destino, un operando que se utiliza en una instrucción que se utiliza en una instrucción previa:previa:

Almacenamiento2 1W RR2 = R1 + R2

R1 = R2 + R3

Read Oper Write

t+1 t+2 t+3 t+4

Read Write

Page 9: Arquitectura de Computadoras Tema 2.3

Riegos de datos tipo WAWRiegos de datos tipo WAW

Se producen cuando una instrucción Se producen cuando una instrucción utiliza como destino, el registro utiliza como destino, el registro resultado de una instrucción previa:resultado de una instrucción previa:

Almacenamiento1 2W WR2 = R1 + R2

R2 = R4 + R3

Read Oper Write

t+1 t+2 t+3 t+4

Read Write

Page 10: Arquitectura de Computadoras Tema 2.3

Conclusión:Conclusión:

Según la distribución de etapas del cauce, la Según la distribución de etapas del cauce, la escritura en el banco de registros siempre se escritura en el banco de registros siempre se hace en la ultima etapa; cuando la hace en la ultima etapa; cuando la instrucción escriba su resultado, todas las instrucción escriba su resultado, todas las instrucciones anteriores habrán terminado, instrucciones anteriores habrán terminado, de tal manera que los riesgos del tipo WAR y de tal manera que los riesgos del tipo WAR y WAW no causan ningún error en su ejecución.WAW no causan ningún error en su ejecución.

OF/ID OS

OF/ID OS

t t+1 t+2 t+3 t+4R2 = R1 + R2

R2 = R4 + R3

Page 11: Arquitectura de Computadoras Tema 2.3

SOLUCIONES PARA LAS SOLUCIONES PARA LAS DEPENDENCIAS DE DATOS DEPENDENCIAS DE DATOS

DE TIPO RAWDE TIPO RAW Se pueden desarrollar mediante Se pueden desarrollar mediante

Hardware o Software. Para elegir entre Hardware o Software. Para elegir entre una de ellas se debe tener en cuenta el una de ellas se debe tener en cuenta el rendimiento. Las alternativas para rendimiento. Las alternativas para evitar los problemas de los riesgos RAW evitar los problemas de los riesgos RAW son:son: Reorganización del códigoReorganización del código Interbloqueo entre etapasInterbloqueo entre etapas AtajosAtajos

Page 12: Arquitectura de Computadoras Tema 2.3

REORGANIZACIÓN DEL REORGANIZACIÓN DEL CÓDIGOCÓDIGO

Colocar instrucciones Colocar instrucciones independientes, entre instrucciones independientes, entre instrucciones con dependencia RAW, que retracen con dependencia RAW, que retracen la segunda instrucción con respecto la segunda instrucción con respecto a la primera.a la primera.

Read Oper Write

t+1 t+2 t+3 t+4R4 = R1 + R2

R2 = R4 + R5Read Write

R3 = R1 + R2

Page 13: Arquitectura de Computadoras Tema 2.3

REORGANIZACIÓN DEL REORGANIZACIÓN DEL CÓDIGOCÓDIGO

Colocar NOP’s, entre instrucciones Colocar NOP’s, entre instrucciones con dependencia RAW, que retracen con dependencia RAW, que retracen la segunda instrucción con respecto la segunda instrucción con respecto a la primera.a la primera.

Read Oper Write

t+1 t+2 t+3 t+4R4 = R1 + R2

R2 = R4 + R3Read Write

NOP

Page 14: Arquitectura de Computadoras Tema 2.3

INTERBLOQUEO ENTRE INTERBLOQUEO ENTRE ETAPASETAPAS

Se introduce elementos Hardware en Se introduce elementos Hardware en el cauce que detecten dependencias. el cauce que detecten dependencias. La etapa de lectura de operandos se La etapa de lectura de operandos se bloquea para la instrucción paralela.bloquea para la instrucción paralela.

Read Oper Write

t+1 t+2 t+3 t+4R4 = R1 + R2

R2 = R4 + R3Read Write

Page 15: Arquitectura de Computadoras Tema 2.3

ATAJOS (BYPASS)ATAJOS (BYPASS)

Implementa el Hardware necesario Implementa el Hardware necesario para detectar las dependencias y para detectar las dependencias y además las enruta para mandar los además las enruta para mandar los datos donde son necesarios (Datos datos donde son necesarios (Datos anticipados).anticipados).

Read Oper Write

t+1 t+2 t+3 t+4R4 = R1 + R2

R2 = R4 + R3Read Write

Page 16: Arquitectura de Computadoras Tema 2.3
Page 17: Arquitectura de Computadoras Tema 2.3

IMPLEMENTACIÓN DE LAS IMPLEMENTACIÓN DE LAS INSTRUCCIONES DE SALTOINSTRUCCIONES DE SALTO

El PC es el que determina la dirección del El PC es el que determina la dirección del destino del salto. destino del salto.

Para ver si una condición es cierta, se ha Para ver si una condición es cierta, se ha implementado por hardware un circuito que implementado por hardware un circuito que lo detecte y además permita ingresar a la lo detecte y además permita ingresar a la ALU, como un operando más, el contenido del ALU, como un operando más, el contenido del PC.PC.

El PC se auto incrementará si no salta, o El PC se auto incrementará si no salta, o modificara su contenido de acuerdo a un modificara su contenido de acuerdo a un offset (Salto).offset (Salto).

Page 18: Arquitectura de Computadoras Tema 2.3

IMPLEMENTACIÓN DE LAS IMPLEMENTACIÓN DE LAS INSTRUCCIONES DE SALTOINSTRUCCIONES DE SALTO

Si la condición es cierta, el salto se Si la condición es cierta, el salto se efectuara, por lo que las efectuara, por lo que las instrucciones paralelas siguientes instrucciones paralelas siguientes que se estaban desarrollando son que se estaban desarrollando son indeseables:indeseables:

ALU

t+1 t+2 t+3 t+4R3 = R1 + R2

PC+(R6) Salto bz R6

indeseables

CC

Page 19: Arquitectura de Computadoras Tema 2.3
Page 20: Arquitectura de Computadoras Tema 2.3

SOLUCIONES A LAS SOLUCIONES A LAS INSTRUCCIONES DE SALTOINSTRUCCIONES DE SALTO

Escribir Nop’s en las posiciones donde Escribir Nop’s en las posiciones donde las instrucciones son indeseables.las instrucciones son indeseables.

Colocar instrucciones independientes, Colocar instrucciones independientes, para que completen su ejecución.para que completen su ejecución.

Colocar en la instrucción explícitamente Colocar en la instrucción explícitamente el registro en que se verificara la el registro en que se verificara la condición (b cond Ra,off).condición (b cond Ra,off).

Page 21: Arquitectura de Computadoras Tema 2.3
Page 22: Arquitectura de Computadoras Tema 2.3
Page 23: Arquitectura de Computadoras Tema 2.3

IMPLEMENTACIÓN DE LAS IMPLEMENTACIÓN DE LAS INSTRUCCIONES DE ACCESO INSTRUCCIONES DE ACCESO

A MEMORIAA MEMORIA Las instrucciones de carga y Las instrucciones de carga y

almacenamiento son utilizadas almacenamiento son utilizadas frecuentemente en un programa.frecuentemente en un programa. Se captan los contenidos de los registros Se captan los contenidos de los registros

donde esta la información necesaria para donde esta la información necesaria para calcular la dirección.calcular la dirección.

Se calcula la dirección efectiva a partir de Se calcula la dirección efectiva a partir de dichos contenidos. (necesita un ciclo dichos contenidos. (necesita un ciclo mas)mas)

Page 24: Arquitectura de Computadoras Tema 2.3

IMPLEMENTACIÓN DE LAS IMPLEMENTACIÓN DE LAS INSTRUCCIONES DE ACCESO INSTRUCCIONES DE ACCESO

A MEMORIAA MEMORIA Existen nuevos registros en Existen nuevos registros en

Hardware:Hardware: DMAR: Registro de la dirección de la DMAR: Registro de la dirección de la

memoria de datos.memoria de datos. SDMR: Registro a escribir en la memoria SDMR: Registro a escribir en la memoria

de datos.de datos. LDMR: Registro a cargar de la memoria LDMR: Registro a cargar de la memoria

de datos.de datos.

Page 25: Arquitectura de Computadoras Tema 2.3
Page 26: Arquitectura de Computadoras Tema 2.3

SOLUCIONES:SOLUCIONES:

Colocar instrucciones independientes Colocar instrucciones independientes si se pudiera para evitar que se si se pudiera para evitar que se pierda un ciclo, si no se pudiera pierda un ciclo, si no se pudiera colocar un Nop.colocar un Nop.

Incrementar el número ciclos de reloj Incrementar el número ciclos de reloj por instrucción. Teniendo una etapa por instrucción. Teniendo una etapa dedicada al acceso sobre la carga y dedicada al acceso sobre la carga y almacenamiento de la memoria.almacenamiento de la memoria.

Page 27: Arquitectura de Computadoras Tema 2.3