1. Diseño de un Procesador
1.1. Módulos
1.1.1. Ruta de Datos
1.1.2. Unidad de control
1.2. Circuito digital
1.2.1. Combinacional + secuencial
1.3. Sistema Combinacional
1.4. Sistema Secuencial
2. Procesador secuencial
2.1. Hasta que no termina de ejecutar una instrucción no comienza a ejecutar 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 viene fijada por la instrucción que más tarde 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 del ciclo de reloj es menor que para monociclo
2.3.4. Se establece que la duración de un ciclo = duración de la etapa más larga
3. nanoMIPS
3.1. Repertorio de instrucciones
3.1.1. Acceso a memoria
3.1.1.1. LW, SW : tipo I
3.1.2. Operaciones aritmético-lógicas
3.1.2.1. ADD, SUB, AND, OR, SLT: tipo R
3.1.3. Control de flujo
3.1.3.1. BEQ: tipo I
3.2. ruta de datos monociclo
3.2.1. Contador de programa : pc
3.2.2. Memorias separadas de instrucciones y de datos:
3.2.3. banco de 32 registros
3.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
3.2.4. Dos sumadores
3.2.4.1. uno para sumar 4 al PC y otro para el desplazamiento relativo al PC
3.2.5. ALU
3.2.5.1. BEQ, hacer una resta y comprobar si el resultado es cero
3.2.6. Extensor de signo
3.2.7. Desplazador a la izquierda
3.3. unidades de control monociclo
3.3.1. Unidad de control GLOBAL
3.3.1.1. Entrada: Opcode
3.3.1.2. Salidas: Genera los valores adecuados para las diferentes señales de control
3.3.1.3. PCSrc no se genera directamente
3.3.1.4. Se suele diseñar mediante decodificadores y puertas OR
3.3.2. Unidad de control LOCAL
3.3.2.1. Entradas <--- ALUOp, Funct
3.3.2.2. Salida ---> Genera la señal ALUControl
3.3.3. Decodificación Multinivel
3.4. ruta de datos multiciclo
3.4.1. Etapa F → Registro de instrucción IR
3.4.2. Etapa D → Lectura de operandos, A y B
3.4.3. Etapa X → Operandos fuente ALU en A y B
3.4.4. Etapa M → De memoria a MDR
3.4.5. Etapa W → De ALUOut a registro
3.4.6. No son necesarios sumadores extra
3.4.7. No son necesarias dos memorias separadas
3.4.8. Un mismo recurso puede usarse en diferentes etapas de la ejecución de una instrucción
3.5. unidades de control multiciclo
3.5.1. Unidad de control global
3.5.1.1. Circuito secuencial
3.5.1.2. Entrada ← opcode
3.5.1.3. Se puede diseñar como máquina de estados o mediante microprograma
3.5.2. Unidad de control local de la ALU