©José María Foces, 1997-2007
• La CPULa CPU– Ruta de datos
• Bloques funcionales principales– Memoria– Fichero de registros– ALU
• Lógica digital– Lógica glue– Elementos de estado
» Intra-instrucción, interciclo, inter-instrucción.
– Unidad de control• Modelo procesal: MEFD.• Implementaciones
– Cableada– Microprogramada
• ExcepcionesExcepciones– Excepciones e interrupciones– Organización general del procesador MIPS
• CPU (Ruta de datos y unidad de control)• Coprocesador 0: Gestión de memoria y excepciones• Coprocesador 1: Punto flotante.
Capítulo 5. Capítulo 5. El procesador: Camino de datos El procesador: Camino de datos
y control.y control.
Capítulo 5. Capítulo 5. Microprocesador MIPS.Microprocesador MIPS.
EEstructura general y sincronización vía structura general y sincronización vía clockclock
©José María Foces Morán, 1997-2010
Capítulo 5. Capítulo 5. Bloques funcionales.Bloques funcionales.
Memoria principal, usos.Memoria principal, usos.
• Guardar instrucciones y datos
• En una celda, 1 byte• Cada celda de 1
byte tiene su dirección
• 1 word: 4 celdas seguidas– Dirección mod 4 = 0
©José María Foces, 1997-2007
Capítulo 5. Capítulo 5. Bloques funcionales.Bloques funcionales.
Memoria principal, usos.Memoria principal, usos.
• Guardar instrucciones y datos– Segmento de datos
estáticos– Segmento de código
• Instrucciones (Rep. binaria)
– Segmento de datos dinámicos
• Pila• Datos dinámicos (heap).
©José María Foces, 1997-2007
Capítulo 5. Capítulo 5. Bloques funcionales.Bloques funcionales.
Memoria principal en MIPS, ciclo de escrituraMemoria principal en MIPS, ciclo de escritura
• Fases para transferir una word a una posición de memoria:1. Transferir la word
desde su fuente al bus Datos a escribir
2. Formar la dirección de memoria en el bus llamado Dirección
3. La UC aserta la microorden EscrMem
©José María Foces Morán, 1997-2010
Capítulo 5. Capítulo 5. Bloques funcionales.Bloques funcionales.
Memoria principal en MIPS, ciclo de lecturaMemoria principal en MIPS, ciclo de lectura
• Fases para leer una word que reside en una posición de memoria:1. Formar la dirección de
memoria en el bus llamado Dirección
2. La UC aserta la microorden LeerMem
3. Transferir la word desde su posición de memoria al bus Datos leídos
©José María Foces Morán, 1997-2010
Capítulo 5. Capítulo 5. Bloques funcionales.Bloques funcionales.
Fichero de registros (FR) MIPSFichero de registros (FR) MIPS
• Características generales:
• 32 registros de 32 bits
• Dos lecturas simultáneas
• 1 escritura
©José María Foces Morán, 1997-2010
Capítulo 5. Capítulo 5. Bloques funcionales.Bloques funcionales.
Fichero de registros (FR) MIPS, ciclo de escrituraFichero de registros (FR) MIPS, ciclo de escritura
• Lectura A y lectura B están estables
• Datos para escribir están estables
• Se activa EscrFR y se transfieren los datos al registro de destino
• Se necesita un ciclo completo
©José María Foces Morán, 1997-2010
Capítulo 5. Capítulo 5. Bloques funcionales.Bloques funcionales.
Fichero de registros (FR) MIPS, ciclo de lecturaFichero de registros (FR) MIPS, ciclo de lectura
• Lectura A y lectura B están estables, al principio del ciclo actual
• Los datos leídos en A y en B están listos al final de este ciclo
• Se necesita un ciclo completo para leer el FR
©José María Foces Morán, 1997-2010
Capítulo 5. Capítulo 5. Bloques funcionales.Bloques funcionales.
Fichero de registros (FR) MIPS y registros Fichero de registros (FR) MIPS y registros interciclo interciclo A y A y BB
• Se necesita un ciclo completo para leer el FR
• Los datos procedentes del FR se usan en la ALU
• La ALU tarda un ciclo completo en operar con ellos
• Necesitamos un registro intermedio (interciclointerciclo) entre el FR y la ALU (A y B)
©José María Foces Morán, 1997-2010
Capítulo 5. Capítulo 5. Microprocesador MIPS.Microprocesador MIPS.
EEstructura general y sincronización vía structura general y sincronización vía clockclock
©José María Foces Morán, 1997-2010
©José María Foces, 1997-2007
La CPU: Ruta de datos y Unidad de controlLa CPU: Ruta de datos y Unidad de control
©José María Foces, 1997-2007
Instruction fetch: Instruction fetch: Fase 1, Fase 1, común a todas las instrucciones.común a todas las instrucciones.
Leer memoria usando PC actual Escribir PC:
PC PC+4
©José María Foces, 1997-2007
Instruction decode: Instruction decode: Fase Fase 2, común a todas las instrucciones.2, común a todas las instrucciones.
Decodificar instrucción
Calcular branch target
Lectura de dos registros GPR
©José María Foces, 1997-2007
sw $s1, (100)$t0 sw $s1, (100)$t0 Fase Fase 33
Dirección de memoria que va a ser escrita (más tarde)100 + $t0
©José María Foces, 1997-2007
sw $s1, (100)$t0 sw $s1, (100)$t0 Fase Fase 44
Escribir el contenido del registro B en la dirección de memoria contenida en AluOut
!
©José María Foces, 1997-2007
lw $s1, (100)$t0 lw $s1, (100)$t0 Fase Fase 33
Dirección de memoria que va a ser leída (más tarde)100 + $t0
©José María Foces, 1997-2007
lw $s1, (100)$t0 lw $s1, (100)$t0 Fase Fase 44
Dato presente en la dirección 100 + $t0 se guarda en MDR
©José María Foces, 1997-2007
lw $s1, (100)$t0 lw $s1, (100)$t0 Fase Fase 55
Dato presente en MDR se transfiere al registro del RF indicado en los 5 bits IR[20-16]
©José María Foces, 1997-2007
j 350000 j 350000 Fase 3Fase 3Cargar PC con la dirección de destino calculada:PC IR[0-25]<<2 || PC[28-32]
©José María Foces, 1997-2007
beq $t1, $t0, destino beq $t1, $t0, destino Fase 3Fase 3
Si (ALU zero == 1)
PC AluOut
Si (ALU zero == 1)
PC AluOut
©José María Foces, 1997-2007
slt $t0, $s3, $s4 slt $t0, $s3, $s4 Fase 3Fase 3
Guardar en AluOut:
1 si $s3 < $s4($s3-$s4 < 0, negativo)
0 si $s3>=$s4($s3-$s4 >=0, nulo/positivo)
©José María Foces, 1997-2007
slt $t0, $s3, $s4 slt $t0, $s3, $s4 Fase 4Fase 4
Guardar en el registro $t0 (indicado por IR[15-11]) el resultado guardado en
AluOut (Un 1 o un 0)
©José María Foces, 1997-2007
Ver figuras…
• Figura 5.35– Resumen de las fases de ejecución de
las 9 instrucciones.
• Figura 5.36– Resumen de estados de la unidad de
control
• Figura 5.42– Todos los estados de la unidad de
control
©José María Foces, 1997-2007
Modelo MEFD de la implementación cableada del control
• Figura 5.43– INPUTS: IR[31-26] y
Zero– OUTPUTS:
Microórdenes– ESTADO: Un
registro de estado de… 4 bits (recuerda, 10 estados, por ahora)
©José María Foces, 1997-2007
Diagrama de estados resumido
©José María Foces, 1997-2007
Fases 0 y 1 (Comunes a todas las instrucciones)
©José María Foces, 1997-2007
Fases 2, 3 y 4 de las instrucciones lw y sw
©José María Foces, 1997-2007
Fases 2 y 3 de las instrucciones del tipo R (add, sub, and, or y slt)
©José María Foces, 1997-2007
Fase 2 de la instrucción beq
©José María Foces, 1997-2007
Fase 2 de la instrucción j
©José María Foces, 1997-2010
Modelo para la UCMEFD: Máquina de estados finita y determinista
• Alfabeto de salida, O:– El conjunto de microórdenes que produce la
UC
• Alfabeto de entrada, I:– El conjunto de señales que recibe a su
entrada• IR[31-26], bit de zero procedente de la ALU• Otros que se pueden añadir: overflow, etc.
• Conjunto finito de estados, S:– Uno de ellos es el estado inicial S0
©José María Foces, 1997-2010
Modelo para la UC (II)MEFD: Máquina de estados finita y determinista
• En cada estado la MEFD calcula lo siguiente:– Qué salida O corresponde al estado
presente• Qué microórdenes se han de activar, esto
es, qué configuración hay que realizar en la ruta de datos
– Cuál es el estado siguiente
©José María Foces, 1997-2007
UC cableada
©José María Foces, 1997-2007
UC cableada mediante una PLA
©José María Foces, 1997-2007
UC cableada mediante una ROM
• ROM: Read-only memory. Una memoria que se escribe sólo la primera vez que se usa.– m lineas de dirección: 2m
posiciones de memoria– n lineas de datos: 2n bits en
cada posición
• n tablas de verdad (Funciones booleanas)
• Cada función es de m variables booleanas
• La ROM contiene las funciones de cálculo de la salida y las de estado siguiente.
©José María Foces, 1997-2007
UC microprogramada
Datapath
IR[31-26]
UC
©José María Foces, 1997-2007
Microprograma MIPS para la UC
©José María Foces, 1997-2007
Formato de las microinstrucciones
©José María Foces, 1997-2007
Diagrama de estados completo
©José María Foces, 1997-2007
Diagrama de estados y microprograma completos
Label ALU Control SRC1 SRC2 Register control
Memory PCWrite control
Sequencing
Fetch Add PC 4 Read PC
ALU Seq
Add PC Extend Shift
Read Dispatch1
Mem1 Add A Extend Dispatch2
LW2 Read ALU
Seq
Write MDR
Fetch
SW2 Write ALU
Fetch
Rformat1 Funct A B Seq
Write ALU
Fetch
BEQ1 Subt A B ALUOut-cond
Fetch
JUMP1 Jump addres
s
Fetch
©José María Foces, 1997-2007
Codificación y verticalidad del set de microinstrucciones
• Sin codificación:– Cada oeración del datapath emplea 1
bit
– Más rápido, requiere mas memoria
• Mucha codificación:– Enviar las microinstrucciones a través
de lógica para obtener las microórdenes
– Menos memoria, mas lento.
©José María Foces, 1997-2007
Excepción: Concepto.
• Evento que altera el flujo de ejecución de un programa de forma no determinista
• Instrucciones de salto– Alteración programada del flujo de
ejecución: beq, j, etc.
©José María Foces, 1997-2007
Excepción vs. interrupción
• Una excepción se produce internamente en el procesador, dos tipos, por ahora:– Overflow– Instrucción no reconocida
• Una interrupción se produce externamente al procesador– Un dispositivo que solicita la atención del
procesador
©José María Foces, 1997-2007
Estudiamos dos excepciones
• En el capítulo 5, como ejemplo, implementaremos las siguientes excepciones:
– Overflow
– Instrucción no reconocida
©José María Foces, 1997-2007
Una excepción provoca un salto
- Efecto producido por la excepción:- La ejecución del programa se suspende
temporalmente:- ¿Dirección de salto?
- Es la dirección donde debemos ubicar el programa qe sabe tratar la excepción:
- ¿Cómo se salva la dirección de memoria a la que debemos retornar?
- Similar a la dirección de retorno de procedimiento (jal/jr $ra …)
©José María Foces, 1997-2007
Dirección de salto “excepción”
- Es la dirección 0x80000180
- Programa gestor de excepción
- Cuando recibe control, a su vez, salta a la rutina que trata el tipo de excepción concreto que ha ocurrido ¿Cómo?
©José María Foces, 1997-2007
Registro Cause
- Indica el tipo de excepción ocurrida:
- Se carga con el código de excepción concreto cuando ésta tiene lugar
- Consultado por el gestor de excepción
©José María Foces, 1997-2007
Registro EPC
- Salvar la dirección de memoria de la instrucción que produjo la excepción
- Para poder reiniciar su ejecución cuando se ha tratado la excepción
- 32 bits
©José María Foces, 1997-2007
Problemas
- EPC
- No basta con transferir PC -> EPC porque, cuando se detecta la excepción, el PC ya contiene PC+4.
- Es necesario calcular PC-4 -> EPC
©José María Foces, 1997-2007
Chequeo de excepciones
- Instrucción no definida- El estado siguiente al estado 1 para cualquier
op-code distinto de lw, sw, tipo R, j y beq
- Overflow- Se obtiene como salida de la ALU (Ver cap4)- Se usa para crear un nuevo estado siguiente al
estado 7
©José María Foces, 1997-2007
Diagrama de estados completo
Overflow
Instruccióndesconocida
©José María Foces, 1997-2007
Ruta de datos completaVector de excepción: 0x80000180
©José María Foces, 1997-2007
• Cierto o falso:– Puesto que la instrucción j no depende de los valores del
fichero de registros ni del branch target (Dirección de salto condicional), puede ser completada durante el segundo estado, en vez de esperar al tercero.
• Ejercicios propuestos– 15, 17, 18, 19, 21, 22– Ver ejercicios resueltos en forma de java applets (CD-ROM)
• No olvidarse de los siguientes aspectos:– Concepto de microprogramación– Perspectiva general sobre excepciones
Estudio