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

1. 11. Multiciclo

1.1. Diseño de la ruta de datos

1.1.1. 1. División del trabajo en etapas

1.1.2. 2. Cada etapa está relacionada con el hardware de la ruta de datos.

1.1.3. 3. Cada etapa debe completarse en 1 ciclo de reloj.

1.1.4. 4. Reduce el periodo del procesador

1.1.5. CPI>1

1.2. Ruta de datos del nanoMips multiciclo

1.2.1. Etapas F,D,X,M,W

1.2.2. Sin sumadores extras

1.2.3. Memorias no están separadas

1.3. Puntos de control

1.3.1. No se pueden dar como una tabla de verdad.

1.3.2. Las señales se van modificando en los diferentes ciclos de reloj .

1.3.3. Señales:

1.3.3.1. IorD, MemRead, MemWrite, MemToReg, RegDst, RegWrite, ALUSrcA, ALUSrcB, ALUOp, PCSrc, PCWrite, PCWriteCond e IRWrite!

1.4. Unidad de Control del NanoMips monociclo

1.4.1. Unidad de control global

1.4.1.1. Máquina de estados

1.4.1.1.1. 8 estados en máximo 5 ciclos

1.4.1.1.2. Ciclos F,D se ejecutan para todas las instrucciones por igual.

1.4.1.1.3. Cada tipo de instrucción evoluciona por unos estados diferentes.

1.4.1.2. Microprograma

1.4.1.2.1. Almacenada en la Memoria ROM

1.4.1.2.2. Instrucción equivalente a leer palabras de esta memoria en un orden determinado,

1.4.1.2.3. Palabra es una microinstrucción

1.4.1.2.4. conjunto de microinstrucciones = microprograma

1.4.1.2.5. VENTAJAS

1.4.1.2.6. DESVENTAJAS

1.4.1.2.7. Codificación horizontal

1.4.1.2.8. Codificación vertical

1.4.2. Unidad de control local de la ALU

1.5. Tratamiento de excepciones

1.5.1. Transferir el control a otro programa RTE(Rutina de Tratamiento de Excepciones)

1.5.1.1. 1. Salve el estado del procesador

1.5.1.2. 2. Corrija la causa de la excepción

1.5.1.3. 3. Recupere el estado del procesado

1.5.1.4. 4. Repita la ejecución en la que se encontraba

1.5.2. Tipos de excepciones

1.5.2.1. Interrupción E/S

1.5.2.2. Llamada al sistema operativo

1.5.2.3. Punto de ruptura

1.5.2.4. Códigos de operación inválidos

1.5.2.5. Overflow

1.5.3. Componentes Hardware necesarios

1.5.3.1. 1. Registro Exception

1.5.3.2. 2. Contador de Programa Exception

1.5.3.3. 3. Restador

1.5.4. Señales de Control

1.5.4.1. ALU_overflow

1.5.4.2. Ilegal_opcode

1.5.4.3. Exeption

1.5.4.4. ExeptionWrite y EPCWrite

1.5.4.5. PCWrite

2. 6. Funcionamiento y diseño de la ruta de datos y la unidad de control

2.1. Análisis del repertorio de instrucciones

2.2. Establecer las metodologías de temporización

2.3. Seleccionar los módulos necesarios

2.4. Ensamblar la ruta de datos

2.5. Determinar los puntos de control

2.6. Diseño de unidad de control

2.7. Optimizar el diseño obtenido

3. 4. Procesador Secuencial

3.1. Monociclo

3.1.1. Instrucción completa en un ciclo reloj

3.1.2. CPI= 1

3.1.3. Duración del ciclo = Instrucción más tarda

3.2. Multiciclo

3.2.1. Instrucción puede tardar mas de un ciclo reloj

3.2.2. CPI>1

3.2.3. Duración ciclo = Etapa mas larga

4. 3. Diseño de un Procesador

4.1. Ruta de datos

4.1.1. Combinacional

4.2. Unidad de control

4.2.1. Secuencial o combinacional

4.3. Sistema combinacional

4.3.1. Sus salidas son función exclusiva del valor de sus entradas

4.4. Sistema secuencial

4.4.1. Salida pueden depender de los estados anteriores o estados internos

5. 1. Ejecución de una Instrucción

5.1. Fetch(F)

5.1.1. Buscar en memoria la instrucción.

5.2. Decode(D)

5.2.1. Decodificación de la instrucción.

5.3. Executión(X)

5.3.1. Ejecución de la operación.

5.4. Memori Access(M)

5.4.1. Accede a memoria (leer/escribir)

5.5. Writeback(W)

5.5.1. Vuelca el resultado a un registro.

6. 2. Ejecución de los tipos de Instrucciones

6.1. Tipo I

6.1.1. Load/Store

6.1.1.1. F+D+X+M+W

6.1.2. Aritmético-Lógicas

6.1.2.1. F+D+X+W

6.1.3. Saltos Incondicionales

6.1.3.1. F+D+X

6.1.4. Saltos Condicionales

6.1.4.1. F+D+X

6.2. Tipo R

6.2.1. Aritmético-Logico

6.2.1.1. F+D+X+W

6.3. Tipo J

6.3.1. Saltos Incondicionales

6.3.1.1. F+D+X

7. 12. Tratamiento de Excepciones

7.1. Consiste en transferir el control a otro programa.

7.1.1. Salve el estado

7.1.2. Corrija la causa de la excepción

7.1.3. Restaure el estado

7.1.4. Repita la ejecución de la instrucciones causante de la excepción

7.1.5. RTE ( Rutina de Tratamiento de Excepción

7.2. Excepción Vs Interrupción!

7.2.1. Excepción: evento no planificado que interrumpe la ejecución de un programa

7.2.2. Interrupción: una excepción que proviene de fuera del microprocesador!

7.3. Tipos

7.3.1. Interrupciones de E/S

7.3.2. Llamadas al Sistema Operativo

7.3.3. Puntos de ruptura

7.3.4. Códigos de operación inválidos

7.3.5. Overflow o desbordamiento en la ALU

7.3.6. Fallos de página!

7.3.7. Accesos a memoria no alineados!

7.3.8. Violación de zonas protegidas de memoria

7.3.9. Fallos de hardware

7.3.10. Fallos de alimentación

7.4. Componentes de hardware necesarios

7.4.1. Registro Exception

7.4.1.1. Almacena código de tipo excepción

7.4.2. EPC

7.4.2.1. Almacena PC - 4

7.4.3. Restador

7.4.3.1. Para realizar el EPC

7.5. Señales de Control

7.5.1. ALU_overflow e Ilegal_opcode

7.5.2. Exception

7.5.2.1. Escribir código de las excepciones

7.5.3. ExceptionWrite y EPCWrite:

7.5.3.1. Controlar la escritura de los dos nuevos registros

7.5.4. PCWrite

7.5.4.1. Controlar la carga del PC

8. 10. nanoMIPS

8.1. Repertorio de instrucciones

8.1.1. Acceso a memoria

8.1.1.1. LW, SW : tipo I

8.1.2. Operaciones aritmético-lógicas

8.1.2.1. ADD, SUB, AND, OR, SLT: tipo R

8.1.3. Control de flujo

8.1.3.1. BEQ: tipo I

8.2. Ruta de datos monociclo

8.2.1. Contador de programa : pc

8.2.2. Memorias separadas de instrucciones y de datos:

8.2.3. banco de 32 registros

8.2.3.1. 4 entradas: 1 entrada de datos de 32 bits y 3 entradas de 5 bits para la identificación de registros 2 salidas: dos salidas de datos de 32 bits

8.2.4. Dos sumadores

8.2.4.1. uno para sumar 4 al PC y otro para el desplazamiento relativo al PC

8.2.5. ALU

8.2.5.1. BEQ, hacer una resta y comprobar si el resultado es cero

8.2.6. Extensor de signo

8.2.7. Desplazador a la izquierda

8.3. Unidades de control monociclo

8.3.1. Unidad de control GLOBAL

8.3.1.1. Entrada: Opcode

8.3.1.2. Salidas: Genera los valores adecuados para las diferentes señales de control

8.3.1.3. PCSrc no se genera directamente

8.3.1.4. Se suele diseñar mediante decodificadores y puertas OR

8.3.2. Unidad de control LOCAL

8.3.2.1. Entradas <--- ALUOp, Funct

8.3.2.2. Salida ---> Genera la señal ALUControl

8.3.3. Decodificación Multinivel

8.4. Ruta de datos multiciclo

8.4.1. Etapa F → Registro de instrucción IR

8.4.2. Etapa D → Lectura de operandos, A y B

8.4.3. Etapa X → Operandos fuente ALU en A y B

8.4.4. Etapa M → De memoria a MDR

8.4.5. Etapa W → De ALUOut a registro

8.4.6. No son necesarios sumadores extra

8.4.7. No son necesarias dos memorias separadas

8.4.8. Un mismo recurso puede usarse en diferentes etapas de la ejecución de una instrucción

8.5. Unidades de control multiciclo

8.5.1. 1. Ejecución de una Instrucción

8.5.1.1. Fetch(F)

8.5.1.1.1. Buscar en memoria la instrucción.

8.5.1.2. Decode(D)

8.5.1.2.1. Decodificación de la instrucción.

8.5.1.3. Executión(X)

8.5.1.3.1. Ejecución de la operación.

8.5.1.4. Memori Access(M)

8.5.1.4.1. Accede a memoria (leer/escribir)

8.5.1.5. Writeback(W)

8.5.1.5.1. Vuelca el resultado a un registro.

8.5.2. Unidad de control global

8.5.2.1. Circuito secuencial

8.5.2.2. Entrada ← opcode

8.5.2.3. Se puede diseñar como máquina de estados o mediante microprograma

8.5.3. Unidad de control local de la ALU

9. 8. Monociclo

9.1. Diseño de la ruta de datos

9.1.1. Ejecuciión típica

9.1.2. Todos los elementos de almacenamiento están sincronizados al mismo flanco de reloj.

9.2. Componentes de la ruta de datos

9.2.1. Memoria de instrucciones

9.2.2. Memoria de Datos

9.2.3. 32 registros de datos

9.2.4. Contador de programa

9.2.5. ALU

9.2.6. Extensor de signo

9.2.7. Desplazador a la izquierda

9.3. Ensamblaje de la ruta de datos

9.3.1. Búsqueda de instrucciones

9.3.1.1. Lee la instruccion en la memoria de instrucciones indicada por el contador de programa.

9.3.2. Ejecución Secuencial

9.3.2.1. Actualizar el contador de programa

9.4. Valores de los puntos de control

9.4.1. Intrucción de carga

9.4.2. Instrucción de almacenaje

9.4.3. Instrucción aritmético-lógicas

9.4.4. Instrucción de salto condicional

10. 5. Caso de estudio: nanoMips

10.1. Operaciones aritmético-lógicas: ADD, SUB, AND, OR, SLT (tipo R)!

10.2. Control de flujo: BEQ (tipo I)

10.3. Acceso a memoria: LW, SW (tipo I)

11. 7. Metodología para el diseño de un procesador

11.1. Paso 1: Analizar el repertorio de instrucciones

11.2. Paso 2: Establecer la metodología de temporización

11.3. Paso 3: Seleccionar el conjunto de módulos

11.4. Paso 4: Ensamblar la ruta de datos

11.5. Paso 5: Determinar los valores de los puntos de control

11.6. Paso 6: Diseñar la lógica de control.

12. 9. Diseño del controlador (monociclo)

12.1. Instrucciones

12.1.1. Carga (lw)

12.1.1.1. rt ←Memoria( rs + SignExt( inmed ) ), PC ←PC + 4

12.1.2. Almacenaje (sw)

12.1.2.1. Memoria( rs + SignExt( inmed ) ) ←rt, PC ←PC + 4

12.1.3. Aritmético Lógicas

12.1.3.1. rd ←rs and rt, PC ←PC + 4

12.1.4. Salto Condicional

12.1.4.1. si(rs=rt)entonces(PC←PC+4+4·SignExp(inmed))enotrocasoPC←PC+4

12.2. Controlador

12.2.1. Control Global

12.2.1.1. Decodifica el Opcode

12.2.1.2. Configura globalmente la ruta de datos

12.2.2. Control Local

12.2.2.1. Decodifica el funct

12.2.2.2. Selecciona la operación a realizar por la ALU