1. NanoMips
1.1. Ruta de Datos
1.1.1. Combinacional
1.2. Ruta de Control
1.2.1. Secuencial ó combinacional
2. Ejecución Instrucción Etapas NanoMips
2.1. Fetch (F)
2.1.1. Buscar memoria instrucción apuntada PC
2.2. Decode (D)
2.2.1. Decodificación instrucción
2.3. Execution (X)
2.3.1. Ejecución operación (opcode)
2.4. Memory Access (M)
2.4.1. Acceso a memoria leer/escribir
2.5. WriteBack (W)
2.5.1. vuelca resultado a registro
3. Tipo Instrucciones
3.1. Instrucción tipo I
3.1.1. Load
3.1.1.1. F - D - X - M - W
3.1.2. Store
3.1.2.1. F - D - X - W
3.1.3. Aritmético-Lógicas
3.1.3.1. F - D - X - W
3.1.4. Saltos Condicionales
3.1.4.1. F - D - X
3.1.5. Saltos Incondicionales
3.1.5.1. F - D - X
3.2. Instrucciones tipo R
3.2.1. Aritmético-Lógicas
3.2.1.1. F - D - X - W
3.3. Instrucciones tipo J
3.3.1. Saltos Incondicionales con Direccionamiento
3.3.1.1. F - D - X
4. Diseño Procesador
4.1. Circuito Digital
4.1.1. Combinacional
4.1.2. Secuencial
4.2. Sistema Combinacional
4.2.1. Salidas en función de entradas
4.3. Sistema Secuencial
4.3.1. Salida en función de la salida de otra operación, depende estado anterior
4.3.2. Gobernados por señal de reloj
5. Procesador Secuencial
5.1. Una instrucción a la vez
5.2. Según método de temporización
5.2.1. Procesador Monociclo
5.2.1.1. CPI=1
5.2.1.2. Duración ciclo reloj fijada por la instrucción que tarda más
5.2.2. Procesado Multiciclo
5.2.2.1. CPI>1
5.2.2.2. Duración ciclo de reloj menos que monociclo
5.3. Utilización recursos según procesador
5.3.1. Monociclo
5.3.1.1. Ciclo demora tiempo instrucción mas larga
5.3.2. Multiciclo
5.3.2.1. Ciclo más rápido, da numero de ciclos que necesita cada instrucción
6. Repertorio Instrucciones
6.1. Formato
6.2. Acceso a memoria
6.2.1. LW, SW (I)
6.3. Operaciones Aritmético-Lógicas
6.3.1. ADD, SUB, AND, OR, SLT(R)
6.4. Control de Flujo
6.4.1. BEQ (I)
7. Procesadores Secuenciales: Funcionamiento, Ruta, UC
7.1. Análisis de Intrucciones
7.2. Metodología de Temporización
7.3. Selección de módulos necesarios
7.4. Ensamblar ruta de datos
7.5. Determinar puntos de control
7.6. Diseñar unidad de control
7.7. Optimización segmentación
8. Diseño Procesador Monociclo
8.1. Diseño de la ruta de Datos
8.1.1. Contador Programa
8.1.2. Memorias Instrucciones
8.1.3. Memoria Datos
8.1.4. Banco 32 registros
8.1.4.1. 4 entradas
8.1.4.2. 2 salidas
8.1.5. ALU de enteros
8.1.6. Extensor de signo
8.1.7. Desplazador a la Izquierda
8.2. Diseño de controlador
8.2.1. Unidad de Control Global
8.2.1.1. Decodifica Opcode
8.2.1.2. Configuración ruta de datos
8.2.2. Unidad de Control Local para ALU
8.2.2.1. Decodifica Funct
8.2.2.2. Genera señal ALU control
8.2.3. Decodificación Multinivel
8.2.3.1. U.C global decodifica opcode
8.2.3.2. Intrucción R, control local ALU decodifica Funct
8.3. Ruta de Datos y Unidad de Control
8.3.1. 8 puntos de control
9. Diseño Procesador Multiciclo
9.1. Nacen porque monociclos no son eficientes
9.1.1. Adaptación ciclo de reloj para ejecución instrucción más larga
9.2. Imposible optimizar ruta de datos
9.3. División de trabajo en etapas RISC
9.4. Cada etapa relacionada con el hardware
9.5. Reduce periodo procesador
9.6. CPI mayor a 1
9.7. Instrucción demora los ciclos necesarios
9.8. Ruta de Datos
9.8.1. Etapa F: registro instruccion
9.8.2. Etapa D: lectura operandos
9.8.3. Etapa X: operandos fuente ALU
9.8.4. Etapa M: memoria a MDR
9.8.5. Etapa W: ALUOut a registro
9.9. Cambios
9.9.1. No necesita sumadores extra
9.9.2. No dos memorias separadas
9.9.3. Mismo registro en distintas etapas ejecución de instrucción
9.10. Puntos de Control
9.10.1. No hay tabla de verdad no son constantes los valores
9.10.2. Señales se modifican en distintos ciclos de reloj
9.10.3. 13 señales de puntos de control
9.11. Unidades de Control
9.11.1. Unidad Control Global
9.11.1.1. Circuito Secuencial
9.11.1.2. Entrada Opcode
9.11.1.3. Maquina Estado, microprograma
9.11.2. Unidad Control local de ALU
9.11.3. Como maquina de estados
9.11.3.1. Conocida como cableada
9.11.3.2. 8 estados maximo 5 ciclos
9.11.3.3. F y D se ejecutan por igual para todas instrucciones
9.11.3.4. Modificación implica rediseñar toda UC
9.11.4. Unidades de control microprogramada
9.11.4.1. Memoria ROM almacena señales
9.11.4.2. Ejecutar instrucción lee de memoria en orden determinado
9.11.4.3. Cada palabra microinstrucción
9.11.4.4. Conjunto microinstrucciones es microprograma
9.11.4.5. Solo recupera 3 o 4 microinstrucciones
9.11.4.6. Codificación Horizontal: mas espacio
9.11.4.7. Codificación Vertical: menos espacio
9.11.4.8. Ventajas
9.11.4.8.1. Flexible
9.11.4.8.2. ocupa menos área
9.11.4.9. Desventaja
9.11.4.9.1. más lenta
10. Tratamiento Excepciones
10.1. Transferir control a otro programa
10.1.1. Salva estado procesador al producir excepcion
10.1.2. Corrija causa excepción
10.1.3. Reataure estado procesador
10.1.4. Causante excepción para continuar
10.2. Rutina de tratamiento de Excepción (RTE)
10.3. Interruccion vs Excepcion
10.3.1. Excepción
10.3.1.1. Evento no planificado interrumpe ejecución programa
10.3.2. Interrupción
10.3.2.1. Excepción proviene fuera microprocesador
10.4. Componentes hardware necesarios
10.4.1. Registro Excepcion
10.4.1.1. Almacenamiento tipo de excepcion para ser leido por RTE
10.4.2. Contador programa excepcion PC-4
10.4.3. Restador para PC-4
10.4.4. PC con dirección comienza RTE
10.5. Señales de Control
10.5.1. ALU_Overflor o Illegal-Opcode
10.5.2. Exception
10.5.3. ExceptionWrite y EPCWrite
10.5.3.1. control escritura
10.5.4. PCWrite control PC
10.6. Monociclo
10.6.1. Añadir señales circuito combinacional
10.7. Multiciclo
10.7.1. Modificar maquina estados
10.7.2. Nuevos microprogramas
10.7.2.1. Bifurcaciones
10.7.2.1.1. Microinstrucciones