©josé maría foces, 1997-2007 la cpula cpu –ruta de datos bloques funcionales principales...

54
©José María Foces, 1997-2007 La CPU La 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 Excepciones Excepciones 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 y El procesador: Camino de datos y control. control.

Upload: juana-pineda

Post on 29-Jan-2016

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ©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

©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.

Page 2: ©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

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

Page 3: ©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

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

Page 4: ©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

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

Page 5: ©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

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

Page 6: ©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

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

Page 7: ©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

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

Page 8: ©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

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

Page 9: ©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

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

Page 10: ©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

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

Page 11: ©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

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

Page 12: ©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

©José María Foces, 1997-2007

La CPU: Ruta de datos y Unidad de controlLa CPU: Ruta de datos y Unidad de control

Page 13: ©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

©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

Page 14: ©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

©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

Page 15: ©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

©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

Page 16: ©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

©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

!

Page 17: ©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

©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

Page 18: ©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

©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

Page 19: ©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

©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]

Page 20: ©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

©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]

Page 21: ©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

©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

Page 22: ©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

©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)

Page 23: ©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

©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)

Page 24: ©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

©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

Page 25: ©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

©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)

Page 26: ©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

©José María Foces, 1997-2007

Diagrama de estados resumido

Page 27: ©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

©José María Foces, 1997-2007

Fases 0 y 1 (Comunes a todas las instrucciones)

Page 28: ©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

©José María Foces, 1997-2007

Fases 2, 3 y 4 de las instrucciones lw y sw

Page 29: ©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

©José María Foces, 1997-2007

Fases 2 y 3 de las instrucciones del tipo R (add, sub, and, or y slt)

Page 30: ©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

©José María Foces, 1997-2007

Fase 2 de la instrucción beq

Page 31: ©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

©José María Foces, 1997-2007

Fase 2 de la instrucción j

Page 32: ©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

©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

Page 33: ©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

©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

Page 34: ©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

©José María Foces, 1997-2007

UC cableada

Page 35: ©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

©José María Foces, 1997-2007

UC cableada mediante una PLA

Page 36: ©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

©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.

Page 37: ©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

©José María Foces, 1997-2007

UC microprogramada

Datapath

IR[31-26]

UC

Page 38: ©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

©José María Foces, 1997-2007

Microprograma MIPS para la UC

Page 39: ©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

©José María Foces, 1997-2007

Formato de las microinstrucciones

Page 40: ©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

©José María Foces, 1997-2007

Diagrama de estados completo

Page 41: ©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

©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

Page 42: ©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

©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.

Page 43: ©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

©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.

Page 44: ©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

©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

Page 45: ©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

©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

Page 46: ©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

©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 …)

Page 47: ©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

©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?

Page 48: ©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

©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

Page 49: ©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

©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

Page 50: ©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

©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

Page 51: ©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

©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

Page 52: ©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

©José María Foces, 1997-2007

Diagrama de estados completo

Overflow

Instruccióndesconocida

Page 53: ©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

©José María Foces, 1997-2007

Ruta de datos completaVector de excepción: 0x80000180

Page 54: ©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

©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