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

Post on 29-Jan-2016

226 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

©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

top related