Segmentación

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Rocket clouds
Segmentación por Mind Map: Segmentación

1. Paralelismo

1.1. Las arquitecturas basadas en Von Neumann presentan limitaciones técnicas.

1.2. Paralelismo es una arquitectura alternativa.

1.3. Tipos de paralelismo:

1.3.1. Interno: Única CPU (Segmentación)

1.3.2. Explícito: Varias CPUs

1.3.2.1. SIMD: un solo flujo de instrucciones, múltiples datos.

1.3.2.2. MIMD: varios flujos de instrucciones y datos.

1.3.2.3. MISD: varios flujos de instrucciones y un solo de datos.

2. Tipos de procesadores:

2.1. Secuenciales

2.1.1. Hasta que no termina de ejecutar una instrucción no comienza la siguiente

2.1.1.1. Monociclo: la duración del ciclo de reloj vendrá fijada por la instrucción más lenta

2.1.1.2. Multiciclo: la duración de la etapa más larga es la que fija el periodo del reloj

2.2. Segmentados

2.2.1. Permite solapar en el tiempo la ejecución de varias instrucciones.

2.2.1.1. Paralelismo a nivel de instrucción (Pipelining).

2.2.1.2. Los procesadores actuales incorporan pipelining.

3. Encauzamiento

3.1. Técnica para la generación de paralelismo implícito

3.1.1. Ejecutar varias instrucciones o partes de instrucciones, usando una única unidad de proceso.

3.2. La segmentación consiste en dividir una función en subfunciones independientes que se realizan simultáneamente.

3.2.1. Se tratan distintos procesos a la vez aunque en fases distintas.

3.3. Proceso similar a una cadena de montaje.

3.4. El encauzamiento consigue la ejecución de instrucciones en un tiempo muy inferior a los procesos no encauzados

3.5. Divide las fases de ejecución de las instrucciones en más etapas.

3.5.1. Aprovecha los mejor los momentos en los que no se acceden a memoria.

3.5.1.1. PowerPC 750 6 etapas

3.5.1.2. UNIVAC 4 etapas

3.5.1.3. NanoMips 5 etapas

3.6. .

4. Conceptos

4.1. Se desea:

4.1.1. CPI = 1

4.1.2. Período de reloj limitado por la etapa más lenta.

4.2. Técnica que surgió para aumentar las prestaciones

4.3. Si se ejecuta una instrucción cada vez, el hardware está desaprovechado.

4.4. En cada etapa las diferentes instrucciones tiene que utilizar diferentes recursos para evitar conflictos.

4.5. .

5. Problemas

5.1. Se realizaban accesos a memoria en las etapas F y M.

5.1.1. Solución: Se separan las memorias, una de instrucciones y otra de datos

5.2. Accesos al banco de registros en las etapas D y W.

5.2.1. Solución: La escritura en los registros se realiza en la primera mitad del ciclo y la lectura en la segunda.

5.3. El PC cambia en F, pero las instrucciones de salto lo pueden modificar en M

5.3.1. Multiplexor etapa F

5.3.2. Restador etapa X para realizar al mismo tiempo la suma del desplazamiento al PC en la ALU y la comparación de registros en el caso de BEQ

5.4. Otras soluciones:

5.4.1. Registros de segmentaciones

5.4.1.1. Almacenan el resultado de cada etapa al final del ciclo de reloj

5.5. Solucion Ruta de Datos

6. Unidad de control procesador segmentado

6.1. En la etapa D, el opcode permite generar todas las señales de control necesarias.

6.2. Las señales se propagan por los registros de segmentación.

6.3. Circuito combinacional que genera las señales de control para cada tipo de instrucción a partir del opcode.

6.4. Dimensionar los registros de segmentación.

6.4.1. X-> ALUSrcA, ALUSrcB, ALUOp y RegDst

6.4.2. Y-> branch, MemRead y MemWrite

6.4.3. W-> MemtoReg y RegWrite

6.5. .

7. Rendimiento de un procesador segmentado

7.1. La productividad aumenta ya que idealmente se completa una nueva instrucción por ciclo, CPI =1

7.2. El tiempo de ejecucción de una única instrucción empeora debido al hardware adicional que se introduce en la ruta de datos.

7.3. SpeedUp máximo al segmentar un procesador multiciclo: S = tmul / tseg S = (I*CPI*T)mult / (I*CPI*T)seg

8. Pipeling vs Paralelismo

8.1. Ambas técnicas se orientan a mejorar el rendimiento, incrementando el número de modulo hardware que operan simultáneamente.

8.2. Pipelining

8.2.1. El HW no está replicado, sólo etsa dividido en varias etapas.

8.3. Paralelo

8.3.1. El HW si está replicado, por lo que varias operaciones pueden ejecutarse de forma simultánea.

8.4. .

9. MIPS: ejemplo de juego de instrucciones para pipelining

9.1. El juego de instrucciones se diseñó para ser ejecutado en un pipelining

9.1.1. 1. Todas las instrucciones tienen la misma longitud. Faciliata la etapa F y D

9.1.2. 2. MIPS solo tiene unos pocos formatos de instrucciones: al mismo tiempo se encuentra los registros fuente en los mismo campos y se decodifica la instrucción

9.1.3. 3. Operandos en memoria solo existen en instrucciones load/store.

9.1.4. 4. Los operandos deben estar alineados en memoria, por lo que solo se necesita un acceso a memoria.

10. Resolución de riesgos en procesadores segmentados

10.1. Lo ideal sería mantener todas las etapas del pipeline llenas, pero esto no es así, por lo que pueden presentar estos riegos:

10.1.1. Riesgos estructurales

10.1.1.1. Se producen cuando dos o más instrucciones necesitan utilizar el mismo recurso hadware al mismo tiempo

10.1.1.1.1. Solución -> Parones estructurales

10.1.2. Riegos de datos

10.1.2.1. Se producen cuando dos o más instrucciones presentan dependencias de datos entre sí,

10.1.2.1.1. Tipos de dependencias

10.1.2.1.2. Solución de software -> Prevención

10.1.2.1.3. Solución de hardware -> Detener el pipeline

10.1.2.1.4. Solución de hardware -> Anticipación (Adelantamiento), data fordwarding

10.1.3. Riesgos de control

10.1.3.1. Una instrucción que modifica el valor del PC todavía no lo ha hecho cuando se tiene que comenzar la ejecución de la siguiente instrucción

10.1.3.2. BEQ, hasta la fase M no carga el valor adecuado para el PC

10.1.3.3. Soluciones

10.1.3.3.1. Hardware Adicional

10.1.3.3.2. Hardware : Prediccion de Salto Estatica

10.1.3.3.3. Software: Salto Retardado o Relleno de Ranura

11. Excepciones en el nanoMIPS segmentado

11.1. Los métodos utilizados para indicar la causa de una excepción son :

11.1.1. Registro de excepción

11.1.2. Vector de interrupciones

11.1.2.1. la dirección a la cual se transfiere el control viene determinada por el tipo de excepción

11.1.2.1.1. .

11.2. Las excepciones se tratan como otro tipo de riesgo de control.

11.3. En caso de Overflow

11.3.1. Se debe vaciar el pipeline de instrucciones posteriores a la suma

11.3.2. Se debe comenzar la carga de instrucciones de la nueva dirección

11.4. La ruta de datos se debe adaptar para soportar excepciones

11.4.1. Señal para seleccionar el nuevo valor del PC

11.4.2. Registro de excepción para almacenar la causa de laexcepción: Cause Register

11.4.3. Registro para almacenar la instrucción que provocó la excepción: EPC

11.5. Trabajo conjunto del SO y del Hardware

11.5.1. Hardware

11.5.1.1. Detener la instrucción que provocó el fallo

11.5.1.2. Completar las instrucciones anteriores

11.5.1.3. Vaciar el pipeline de instrucciones posteriores

11.5.1.4. Guardar la causa de la excepción

11.5.1.5. Salvar la dirección de la instrucción que provocó la excepción

11.5.1.6. Saltar a una dirección predeterminada

11.5.2. Sistema Operativo

11.5.2.1. analiza la causa de la excepción y actuar en consecuencia

11.5.2.1.1. Cuando se trata de una instrucción indefinida, Fallo de hardware u overflow, el SO mata el proceso y retorna el motivo

11.5.2.1.2. Cuando se trata de una petición de E/S , el SO salva el estado del programa , realiza la tarea en cuestión y restaura el estado del programa