El Procesador

Plan your projects and define important tasks and actions

Get Started. It's Free
or sign up with your email address
Rocket clouds
El Procesador by Mind Map: El Procesador

1. Objetivos

1.1. Ruta de datos

1.2. Ruta de control

1.3. nanoMIPS

1.3.1. Arquitectura MIPS simplificada

2. Procesador Secuencial

2.1. Mientras no termine una instrucción no comienza la siguiente

2.2. Procesador monociclo

2.2.1. Cada instrucción se completa en un único ciclo de reloj

2.2.2. CPI=1

2.2.3. La duración del ciclo de reloj es el de la instrucción que más tarda en ejecutarse

2.3. Procesador multiciclo

2.3.1. Cada instrucción puede tardar más de un ciclo en ejecutarse

2.3.2. CPI > 1

2.3.3. La duración de un ciclo es de la duración de la etapa más larga

2.4. nanoMIPS

2.4.1. Repertorio de instrucciones

2.4.1.1. Acceso a memoria: LW, SW

2.4.1.2. Operaciones aritmético-lógicas: ADD, SUB, AND, OR, SLT

2.4.1.3. Control de flujo: BEQ

2.5. Metodología para el diseño

2.5.1. Paso 1: Analizar el repertorio de instrucciones

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

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

2.5.4. Paso 4: Ensamblar la ruta de datos localizando los puntos de control

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

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

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

2.6. Arquitectura MIPS

2.6.1. Formato de la instrucción

2.6.1.1. Todas las instrucciones de MIPS32 tienen 32 bits de anchuta y 3 tipos de instrucciones: I, R, J

2.6.2. Subconjunto

2.6.2.1. Instrucciones con referencia a memoria (Tipo I)

2.6.2.2. Instrucciones aritmético-lógicas con operandos en registros (Tipo R)

2.6.2.3. Instrucciones de dalto condicional (Tipo I)

3. Fases de Ejecución de una instrucción

3.1. Fetch (F)

3.1.1. Busca en memoria la instrucción apuntada por el PC.

3.2. Decode (D)

3.2.1. Decodificación de la isntrucción, separar los diferentes campos.

3.3. Execution (X)

3.3.1. Ejecución de la operación por opcode

3.4. Memory Access (M)

3.4.1. Accede a la memoria para leer o escribir

3.5. Writeback (W)

3.5.1. Vuelca un resulatdo a un registro

4. Procesador Monociclo

4.1. Diseño de la ruta de datos

4.1.1. Temporizador monociclo

4.1.1.1. Ejecución típica

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

4.1.2. Componentes

4.1.2.1. Memoria de instrucciones

4.1.2.2. Memoria de datos

4.1.2.3. 32 registros de datos

4.1.2.4. Contador de programa

4.1.2.5. 2 sumadores

4.1.2.6. ALU

4.1.2.7. Extensor de signo

4.1.2.8. Desplazador a la izquierda

4.1.3. Ensamblaje

4.1.3.1. Para la búsqueda se debe leer la isntrucción de la memoria de instrucciones

4.1.3.2. La ejecución secuencial actualiza el contador de programa

4.2. Diseño del controlador

4.2.1. La tarea

4.2.1.1. Seleccionar las operaciones a realizar y controlar el flujo de datos

4.3. Unidades de control nanoMips

4.3.1. Global

4.3.1.1. Entrada: opcode

4.3.1.2. Salida: Genera los valores adecuados para las diferentes señales de control

4.3.2. Local

4.3.2.1. Entrada: ALUOp, Funct

4.3.2.2. Salida: Genera la señal ALU Control

5. Procesador Multiciclo

5.1. Adaptación del ciclo de reloj para ejecutar la instrucción más larga

5.2. Diseño de la ruta de datos

5.2.1. División del trabajo en etapas

5.2.2. Cada etapa debe completarse en 1 ciclo de reloj

5.2.3. Se reduce el periodo del procesador

5.2.4. CPI > 1

5.2.5. No son necesarios sumadores extra

5.2.6. No son necesario dos memorias separadas

5.3. Puntos de control

5.3.1. Los valores de las señales se van modificando en los diferentes ciclos de reloj

5.3.2. Señales

5.3.2.1. lorD

5.3.2.2. MemRead

5.3.2.3. MemWrite

5.3.2.4. MemToReg

5.3.2.5. RegDst

5.3.2.6. RegWrite

5.3.2.7. ALUSrcA

5.3.2.8. ALUSRcB

5.3.2.9. ALUOp

5.3.2.10. PCSrc

5.3.2.11. PCWrite

5.3.2.12. PCWriteCond

5.3.2.13. IRWrite

5.4. Unidad de Control

5.4.1. Global

5.4.1.1. Circuito Secuencial

5.4.1.2. Entrada opcode

5.4.1.3. Maquina de estados

5.4.1.3.1. Llamada cableada

5.4.1.3.2. 8 estados que se ejecutan en un máximo de 5 ciclos

5.4.1.3.3. Cuando se modifica una instrucción se debe rediseñar toda la unidad de control

5.4.1.4. Microprograma

5.4.1.4.1. Memoria ROM

5.4.1.4.2. Codificación Horizontal

5.4.1.4.3. Codificación vertical

5.4.1.4.4. Unidades de control

5.4.2. Local

6. Diseño de un procesador

6.1. Módulos

6.1.1. Ruta de datos: combinacional

6.1.2. Unidad de control: secuencial o combinacional

6.2. Circuito digital

6.2.1. Parte combinacional+secuencial

6.2.2. Sistema combinacional

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

6.2.3. Sistema secuencial

6.2.3.1. Los valores de las salidas no dependen exclusivamente de las entradas

7. Instrucciones

7.1. Instrucciones tipo I

7.1.1. Load/Store

7.1.1.1. F

7.1.1.2. D

7.1.1.3. X

7.1.1.4. M

7.1.1.5. W

7.1.2. Aritmético-Lógicas

7.1.2.1. F

7.1.2.2. D

7.1.2.3. X

7.1.2.4. W

7.1.3. Saltos condicionales

7.1.3.1. F

7.1.3.2. D

7.1.3.3. X

7.1.4. Saltos incondicionales

7.1.4.1. F

7.1.4.2. D

7.1.4.3. X

7.2. Instrucciones tipo R

7.2.1. Aritmético Lógicas

7.2.1.1. F

7.2.1.2. D

7.2.1.3. X

7.2.1.4. W

7.3. Instrucciones tipo J

7.3.1. Saltos incondicionales con direccionamiento relativo al PC

7.3.1.1. F

7.3.1.2. D

7.3.1.3. X

8. Excepciones

8.1. Excepción

8.1.1. Transferir el control a otro programa llamado RTE (Rutina de Tratamiento de Excepción)

8.1.2. Evento no planificado que interrumpe la ejecución de un programa

8.2. Interrupción

8.2.1. Una excepción que proviene de fuera del microprocesador

8.3. Tipos

8.3.1. Interrupciones de E/S

8.3.2. Llamadas al Sistema Operativo

8.3.3. Puntos de ruptura

8.3.4. Código de operación inválidos

8.3.5. Overflow o desbordamiento en la ALU

8.3.6. Fallos de página

8.3.7. Accesos a memoria no alineados

8.3.8. Violación de zonas protegidas de memoria

8.3.9. Fallos de Hardware

8.3.10. Fallos de alimentación

8.4. Componentes

8.4.1. Registro Exception

8.4.2. EPC (Contador de Programa Excepción)

8.4.3. Restador

8.5. Señales de control

8.5.1. ALU_overflow

8.5.2. Ilegal_opcode

8.5.3. Exception

8.5.4. ExceptionWrite

8.5.5. EPCWrite

8.5.6. PCWrite

8.6. Unidades de control

8.7. Unidades de control en nanoMIPS

8.7.1. Monociclo

8.7.1.1. Sólo añadir las nuevas señales al circuito combinacional

8.7.2. Multiciclo

8.7.2.1. Modificar la máquina de estados