tema 4 el procesador -...

61
Tema 4 EL PROCESADOR 4.1. Introducci´ on Un computador es un dispositivo electr´ onico formado por componentes y subsistemas digitales que permite el procesamiento de datos. Desde el punto de vista estructural, el computador se considera dividido en varios ni- veles organizados jer´ arquicamente. La Figura 4.1 muestra la organizaci´ on del computador seg´ un estos niveles. Se distinguen 5 niveles b´asicos: Nivel Digital: Se corresponde con la m´ aquina f´ ısica y engloba todos los circuitos digitales que constituyen el computador y que han sido estudiados en los cap´ ıtulos anteriores. Nivel Instrucciones M´ aquina: En este nivel se construyen programas en lenguaje aquina (secuencias de 0’s y 1’s), que es el lenguaje capaz de entender la CPU. Tambi´ en se incluye en este nivel la programaci´on en ensamblador. El lenguaje en- samblador es la notaci´ on simb´olica del lenguaje m´ aquina. Nivel Sistema Operativo: Los sistemas operativos son un conjunto de programas que ayudan al usuario en la explotaci´on del computador, siendo por tanto, una capa software con la que se rodea el hardware para facilitar su utilizaci´ on. Nivel Lenguajes Alto Nivel: El objetivo de este nivel es facilitar al programador la utilizaci´on del computador. Los programas escritos en un leguaje de alto nivel deber´ an pasar por un proceso intermedio de traducci´ on, denominado compilaci´ on, antes de ejecutarse. El objetivo de la compilaci´on es traducir el lenguaje de alto nivel a un lenguaje de bajo nivel que la m´aquina pueda entender. La figura 4.2 muestra un ejemplo de traducci´on de un trozo de c´ odigo codificado en un lenguaje de alto nivel (lenguaje C) a lenguaje ensamblador para el procesador MIPS y de lenguaje ensamblador a lenguaje m´ aquina. El programa que traduce el c´ odigo es- crito en lenguaje ensamblador al c´ odigo equivalente en lenguaje m´ aquina se llama ensamblador. 1

Upload: others

Post on 25-Mar-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

Tema 4

EL PROCESADOR

4.1. Introduccion

Un computador es un dispositivo electronico formado por componentes y subsistemasdigitales que permite el procesamiento de datos.

Desde el punto de vista estructural, el computador se considera dividido en varios ni-veles organizados jerarquicamente. La Figura 4.1 muestra la organizacion del computadorsegun estos niveles. Se distinguen 5 niveles basicos:

Nivel Digital: Se corresponde con la maquina fısica y engloba todos los circuitosdigitales que constituyen el computador y que han sido estudiados en los capıtulosanteriores.

Nivel Instrucciones Maquina: En este nivel se construyen programas en lenguajemaquina (secuencias de 0’s y 1’s), que es el lenguaje capaz de entender la CPU.Tambien se incluye en este nivel la programacion en ensamblador. El lenguaje en-samblador es la notacion simbolica del lenguaje maquina.

Nivel Sistema Operativo: Los sistemas operativos son un conjunto de programasque ayudan al usuario en la explotacion del computador, siendo por tanto, una capasoftware con la que se rodea el hardware para facilitar su utilizacion.

Nivel Lenguajes Alto Nivel: El objetivo de este nivel es facilitar al programadorla utilizacion del computador. Los programas escritos en un leguaje de alto niveldeberan pasar por un proceso intermedio de traduccion, denominado compilacion,antes de ejecutarse. El objetivo de la compilacion es traducir el lenguaje de altonivel a un lenguaje de bajo nivel que la maquina pueda entender. La figura 4.2muestra un ejemplo de traduccion de un trozo de codigo codificado en un lenguajede alto nivel (lenguaje C) a lenguaje ensamblador para el procesador MIPS y delenguaje ensamblador a lenguaje maquina. El programa que traduce el codigo es-crito en lenguaje ensamblador al codigo equivalente en lenguaje maquina se llamaensamblador.

1

Page 2: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

2 TEMA 4. EL PROCESADOR

Lenguaje maquina

Logica digital

Sistema operativo

Lenguajes alto nivel

Aplicaciones

Figura 4.1: Organizacion estructural de un computador

Nivel Aplicaciones: Este nivel esta formado por paquetes de programas de aplicacionque sirven para resolver problemas en campos especıficos de la ciencia o la gestion.

Centrandonos en el nivel digital, los elementos principales de un computador son: launidad de procesamiento central (CPU, Central Processing Unit) o procesador, la memoriaprincipal, el subsistema de entrada/salida y algunos medios de interconexion de todos estoscomponentes como se muestra en la figura 4.3.

La unidad central de procesamiento (CPU): Controla el funcionamiento del compu-tador y lleva a cabo sus funciones de procesamiento de datos. Frecuentemente sellama simplemente procesador. Sus principales componentes estructurales son:

• Unidad de control: Controla el funcionamiento de la CPU y, por tanto, delcomputador.

• Unidad aritmetico-logica (ALU, Arithmetic Logic Unit): Lleva a cabo las fun-ciones de procesamiento de datos del computador.

• Registros: Proporcionan almacenamiento interno a la CPU.

• Interconexiones CPU: Proporcionan comunicacion entre la unidad de control,la ALU y los registros.

La memoria principal: Almacena instrucciones y datos.

E/S: Transfiere datos entre el computador y el entorno externo.

Sistema de interconexion: Proporciona la comunicacion entre la CPU, la memoriaprincipal y la E/S.

La tarea de un computador es el procesamiento de datos en base al contenido de lasinstrucciones. Ambos elementos (instrucciones y datos) se almacenan en memoria y secodifican empleando un numero especifico de bits. De este modo, la arquitectura de uncomputador esta disenada para transferir bloques de informacion (o multiplos de blo-ques) de un determinado tamano. A cada uno de estos bloques se le denomina palabra y

Page 3: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.1. INTRODUCCION 3

swa p ( i n t v [ ] , i n t k ){ i n t t emp ; t emp = v [ k ] ; v [ k ] = v [ k +1 ] ; v [ k +1 ] = t emp ;}

swa p : mu l i $2 , $5 , 4 a dd $2 , $4 , $2 l w $15 , 0 ( $2 ) l w $16 , 4 ( $2 ) sw $16 , 0 ( $2 ) sw $15 , 4 ( $2 ) j r $31

00000000101000010000000000011000000000001000111000011000001000011000110001100010000000000000000010001100111100100000000000000100101011001111001000000000000000001010110001100010000000000000010000000011111000000000000000001000

Binary machinelanguageprogram(for MIPS)

C compiler

Assembler

Assemblylanguageprogram(for MIPS)

High-leve llanguageprogram(in C)

Figura 4.2: Programa C compilado a lenguaje ensamblador y despues ensamblado a len-guaje maquina

su tamano, en numero de bits, se denomina ancho de palabra. Todos los elementos delcomputador (registros, buses, memorias, perifericos, ALUs) estan disenados para transfe-rir, almacenar o procesar palabras.

El modo de funcionamiento de un computador consiste en la ejecucion continua deinstrucciones que operan sobre diferentes datos. El proceso de ejecucion de una instruccionsigue una secuencia de 4 pasos:

1. Lectura o carga de la instruccion: La instruccion se transfiere desde memoria auno de los registros internos de la CPU, el denominado registro de instruccion (IR,Instruction Register).

2. Decodificacion de la instruccion: La unidad de control lee el contenido del IR y

Page 4: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4 TEMA 4. EL PROCESADOR

REGISTROS

ALUUNIDAD DECONTROL

PC IR

PROCESADOR

Instrucciones

Datos

UNIDAD DEMEMORIA

ENTRADA

SALIDA

Figura 4.3: El computador: unidades funcionales basicas

decodifica la operacion a ejecutar.

3. Ejecucion de la instruccion: Se activan las senales necesarias para la ejecucion de laoperacion.

4. Determinacion de la siguiente instruccion: Se asume que las instrucciones se eje-cutaran de forma ordenada, es decir, despues de la ejecucion de una instruccionconcreta se carga y se ejecuta la siguiente instruccion contigua en memoria. Sin em-bargo, en ciertas situaciones se realizan saltos, pasando a ejecutarse otra instruccionsituada en una posicion de memoria diferente. La CPU lleva un control de la direc-cion en memoria de la siguiente instruccion por medio del empleo de un registro dela CPU especial al que se denomina contador de programa (PC, Program Counter).Despues de traer una instruccion, el contenido del PC se actualiza para apuntar ala siguiente instruccion de la secuencia.

4.2. El repertorio de instrucciones

El funcionamiento de la CPU esta determinado por las instrucciones maquina queejecuta. Al conjunto de instrucciones distintas que puede ejecutar la CPU se le denominarepertorio de instrucciones de la CPU. El repertorio de instrucciones define las funcionesque puede realizar la CPU y tiene, por tanto, un efecto significativo sobre la implemen-tacion de la misma.

Cada instruccion maquina debe contener la informacion que necesita la CPU para suejecucion. Los elementos constitutivos de una instruccion maquina son:

Page 5: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.2. EL REPERTORIO DE INSTRUCCIONES 5

6 bits

16 bits

6 bits4 bits

Ref. a operando Ref. a operandoCodop

Figura 4.4: Un formato de instrucciones sencillo

Codigo de operacion: Especifica la operacion a realizar (suma, E/S, etc.). La opera-cion se indica mediante un codigo binario.

Referencia a operandos fuente: La operacion puede implicar a uno o mas operandosfuente, es decir, operandos que son entradas para la instruccion.

Referencia al operando resultado: La operacion puede producir un resultado.

Referencia a la siguiente instruccion: En la mayorıa de los casos la siguiente ins-truccion sigue inmediatamente a la instruccion en ejecucion. En tales casos no hayreferencia explıcita a la siguiente instruccion. Cuando sea necesaria una referenciaexplıcita, debe suministrarse la direccion de memoria.

Los operandos fuente y resultado pueden estar en algunas de las siguientes areas:

Memoria: Como en las referencias a instrucciones siguientes, debe indicarse la di-reccion de memoria.

Registro de la CPU: Salvo raras excepciones, una CPU contiene uno o mas registrosque pueden ser referenciados por instrucciones maquina. Si existe mas de uno, cadaregistro tendra asignado un numero unico, y la instruccion debe contener el numerodel registro deseado.

Dispositivo de E/S: La instruccion debe especificar el modulo y dispositivo de E/Spara la operacion. En el caso de E/S asignadas en memoria, se dara otra direccionde memoria.

Dentro del computador, cada instruccion se representa por una secuencia de bits. Estasecuencia se puede interpretar dividida en campos, correspondientes cada uno de ellos alos elementos constitutivos de la instruccion. La descripcion de la instruccion en camposy bits se denomina formato de instruccion. La figura 4.4 muestra un ejemplo sencillo deformato de instruccion. En la mayorıa de los repertorios de instrucciones se emplea masde un formato. Durante su ejecucion, la instruccion se escribe en el registro de instruccion(IR) de la CPU. La CPU debe ser capaz de extraer los datos de los distintos campos dela instruccion para realizar la operacion requerida.

Los aspectos mas importantes a tener en cuenta en el diseno del repertorio de instruc-ciones son:

Page 6: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

6 TEMA 4. EL PROCESADOR

Repertorio de operaciones: Cuantas y que operaciones considerar, y cuan complejasdeben ser.

Tipos de datos: Los distintos tipos de datos con los que se efectuan operaciones.

Formatos de instrucciones: Longitud de la instruccion (en bits), tamano de los dis-tintos campos, etc.

Registros: Numero de registros de la CPU que pueden ser referenciados por instruc-ciones, y su uso.

Direccionamiento: El modo o modos de direccionamiento mediante los cuales puedeespecificarse la direccion de un operando o instruccion.

4.2.1. Modelo de ejecucion

El modelo de ejecucion especifica el dispositivo (memoria, registro, etc.) que almacenalos operandos de las instrucciones. Una arquitectura no esta restringida a un unico modelo,sino que suele dar soporte a varios. La eleccion de un modelo u otro es fuertementedependiente de la arquitectura del sistema. Por ejemplo, una unidad aritmetico-logicaque esta exclusivamente conectada con registros (tanto para acceder a los operandos deentrada como para almacenar el resultado) quedara limitada al empleo de un modeloregistro-registro (en el que ambos operandos son registros). Los modelos de ejecucionposibles son:

Modelo de pila: En este modelo los operandos se almacenan en una pila de modoque se opera con datos de la pila y el resultado es colocado encima de la pila. Sedenota por POP a la instruccion que retira de la pila un dato y lo copia a memoriao a un registro. Se denomina PUSH a la instruccion que inserta en la pila un valorde memoria o de un registro.

Modelo de registro-registro (o carga/almacenamiento): En este caso ambos operan-dos deben residir en un registro. Es el modelo de ejecucion mas extendido, ya quelas instrucciones que lo emplean se pueden ejecutar de forma rapida (dado que elacceso a un registro es inmediato). En este modelo es necesario transferir de formaexplıcita los datos entre la memoria y los registros a traves de instrucciones de cargay de almacenamiento.

Modelo registro-memoria: En este modelo un operando esta en un registro y el otroesta en una posicion de memoria. El resultado se almacena en un registro.

Modelo memoria-memoria: Ambos operandos residen en memoria principal y elresultado tambien se almacena en memoria principal. Mediante este modelo no esnecesario transferir los datos entre la memoria y los registros, sin embargo, tiene elinconveniente de que la ejecucion de las instrucciones requiere un gran numero deciclos de reloj (necesarios para acceder a los datos en memoria).

Page 7: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.2. EL REPERTORIO DE INSTRUCCIONES 7

4.2.2. Direccionamiento

En esta seccion analizamos las tecnicas de direccionamiento mas comunes. Se denomi-nan modos de direccionamiento a aquellos algoritmos empleados por el procesador paracalcular las direcciones de las instrucciones y datos. La direccion real de memoria especi-ficada por el modo de direccionamiento se denomina direccion efectiva.

Direccionamiento inmediato: El operando es una constante cuyo valor se almacenaen el campo operando de la instruccion. La ventaja del direccionamiento inmediatoes que una vez captada la instruccion no se requiere una referencia a memoria paraobtener el operando. La desventaja es que el tamano del dato esta restringido a lalongitud del campo de direcciones.

Direccionamiento directo: El operando se encuentra almacenado en memoria enla posicion indicada por el campo operando. La limitacion es que proporciona unespacio de direcciones reducido.

Direccionamiento indirecto: La instruccion contiene en el campo operando la direc-cion de una posicion de memoria en la que se almacena la direccion del operandodeseado. La desventaja es que la ejecucion de la instruccion requiere dos referenciasa memoria para capturar el operando, una para captar su direccion y otra paraobtener su valor.

Direccionamiento de registros: El operando referenciado se encuentra en un registro.El numero de registro se especifica dentro de la instruccion en el campo operando.Las ventajas son: (1) solo es necesario un campo pequeno de direcciones en la ins-truccion; (2) el tiempo de acceso a un registro interno es mucho menor que a lamemoria principal. La desventaja es que el espacio de direcciones esta muy limita-do.

Direccionamiento indirecto con registro: La instruccion contiene en el campo ope-rando el numero del registro en el que se almacena la direccion de memoria deloperando deseado. La ventaja es que este direccionamiento emplea una referenciamenos a memoria que el direccionamiento indirecto.

Direccionamiento con desplazamiento: El campo operando contiene una direccionrelativa o desplazamiento (D). La instruccion tambien especifica, implıcita o explıci-tamente, otras posiciones de memoria de almacenamiento (R), usualmente registrosdel procesador, conteniendo informacion adicional de direccionamiento. La direc-cion efectiva se calcula a traves de una suma (D+R). Los tres usos mas comunesdel direccionamiento con desplazamiento son:

• Desplazamiento relativo: El registro referenciado implıcitamente es el contadorde programa (PC). La direccion efectiva es un desplazamiento relativo a ladireccion de la instruccion.

Page 8: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

8 TEMA 4. EL PROCESADOR

• Direccionamiento con registro-base: El registro referenciado (implıcita o explıci-tamente) contiene una direccion de memoria, y el campo de direccion contieneun desplazamiento desde dicha direccion.

• Indexado: El campo de operando referencia una direccion de memoria y elregistro referenciado contiene un desplazamiento positivo desde esa posicion.

En la Figura 4.5 se muestra graficamente un resumen de los modos de direccionamientovistos aquı.

4.2.3. Operaciones del repertorio de instrucciones

El numero de codigos de operacion diferentes varıa ampliamente de una maquina aotra. Sin embargo, en todas las maquinas podemos encontrar los mismos tipos generalesde operaciones. Una clasificacion tıpica y util es la siguiente:

Transferencias de datos. Las instrucciones que transfieren datos entre memoria yregistros se denominan instrucciones de transferencia de datos. Para acceder a unapalabra en memoria la instruccion debe proporcionar la direccion de memoria. Lainstruccion de transferencia que mueve datos de memoria a algun registro se deno-mina carga (load). La instruccion complementaria transfiere datos de un registro amemoria y se denomina almacenamiento (store).

Aritmeticas. La mayorıa de las maquinas proporcionan las operaciones artimeti-cas basicas de suma, resta, multiplicacion y division. Estas se tienen siempre paranumeros enteros con signo y, a menudo, para numeros en coma flotante. Otras ope-raciones posibles son, por ejemplo, calculo del valor absoluto, cambiar el signo aloperando o incrementar o decrementar el operando.

Logicas. La mayorıa de las maquinas tambien disponen de diversidad de opera-ciones para manipular bits individuales dentro de una palabra o de otra unidaddireccionable. Estan basadas en operaciones booleanas.

De Entrada/Salida. Son instrucciones de transferencia de datos en las cuales elorigen/destino es un modulo de E/S.

De control de flujo. En todos los tipos de operaciones discutidos hasta aquı, lasiguiente instruccion a ejecutar es la inmediatamente posterior en memoria a lainstruccion en curso. Sin embargo, una fraccion significativa de las instruccionesde cualquier programa tienen como mision cambiar la secuencia de ejecucion deinstrucciones. La operacion que realiza la CPU es actualizar el contador de programapara que contenga la direccion de alguna de las instrucciones que hay en memoria.Las operaciones de control de flujo que se pueden encontrar en los repertorios deinstrucciones son:

Page 9: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.2. EL REPERTORIO DE INSTRUCCIONES 9

Figura 4.5: Modos de direccionamiento

• Instrucciones de bifurcacion, tambien llamadas de salto. Tienen como uno desus operandos la direccion de la siguiente instruccion a ejecutar.

• Instrucciones de salto condicional. Se efectua la bifurcacion (se actualiza el

Page 10: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

10 TEMA 4. EL PROCESADOR

contador de programa con la direccion especificada en el operando) solo si secumple una condicion dada, en caso contrario se ejecuta la instruccion siguientede la secuencia (se incrementa el contador de programa de la forma habitual).

• Instrucciones de llamada a subrutina. En cualquier punto del programa sepuede invocar o llamar a una subrutina. Se ordena al computador que pasea ejecutar la subrutina y que retorne despues al punto en que tuvo lugar lallamada. El uso de subrutinas requiere por tanto dos instrucciones basicas: unainstruccion de llamada, que produce una bifurcacion desde la posicion actualal comienzo de la subrutina, y una instruccion de retorno de la subrutina allugar desde el que se llamo.

De control del sistema. Llamadas al sistema operativo para que realice algunservicio: E/S, detener la ejecucion del programa, ...

4.3. Repertorio de instrucciones del MIPS

El diseno del juego de instrucciones es un tema complejo y sujeto a un gran numero decompromisos. Existen tantos juegos de instrucciones como arquitecturas, cada uno con susventajas y sus inconvenientes. No obstante, existen basicamente dos filosofıas de disenoen las que se pueden agrupar todas las arquitecturas: CISC y RISC. Los disenos CISC(Complex Intruction Set Computer, computadora de conjunto de instrucciones complejo)se basan en un juego de instrucciones muy rico con modos de direccionamiento potentes ycomplejos. Esto implica que los programas necesitan menos instrucciones, con lo cual sonmas faciles de desarrollar y mantener por los programadores. Ademas, los programas ocu-pan menos memoria. La filosofıa RISC (Reduced Instruction Set Computer, computadoresde conjunto de instrucciones reducido) en contrapartida se basa en un numero relati-vamente pequeno de instrucciones disponibles, por lo regular unas 50, todas ellas muysencillas, con pocos modos de direccionamiento, pero que se ejecutan muy eficientemente.

En lo que resta del capıtulo se estudiara un subconjunto del repertorio de instruccionesde un computador real. El repertorio de instrucciones escogido proviene del MIPS, usadopor NEC, Nintendo, Silicon Graphics y Sony, entre otros, y es un tıpico ejemplo de disenoRISC.

4.3.1. Arquitectura del MIPS

Las primeras implementaciones de la arquitectura MIPS (familia R20x0 y R30x0)consistieron en una unidad de proceso de enteros (la CPU) y un conjunto de procesadoresque realizaban tareas auxiliares u operan con otros tipos de datos, como numeros en comaflotante. En la figura 4.6 se muestra el esquema del MIPS R2000.

El ancho de palabra de la arquitectura MIPS es de 32 bits. La arquitectura MIPS po-see 32 registros genericos de 32 bits ($0-$31) para utilizacion de la CPU, siendo el registro

Page 11: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.3. REPERTORIO DE INSTRUCCIONES DEL MIPS 11

CPU

Registers

$0

$31

Arithmeticunit

Multiplydivide

Lo Hi

Coprocessor 1 (FPU)

Registers

$0

$31

Arithmeticunit

Registers

BadVAddr

Coprocessor 0 (traps and memory)

Status

Cause

EPC

Memory

Figura 4.6: Esquema del MIPS R2000

$0 solo de lectura y con valor cero. De los restante registros, solo el $31 es implıcitamenteusado por una instruccion. Concretamente, por la instruccion de invocacion de una subru-tina (jal) y se utiliza para guardar la direccion de retorno, como veremos mas adelante.Adicionalmente, el MIPS contiene dos registros para poder operar con operandos de 64bits, como sucede en el caso de la multiplicacion y division, llamados hi (high) y lo (low).En el cuadro 4.1 se puede ver la lista de registros del MIPS y sus usos.

Como se ha comentado antes, estos procesadores MIPS no disponen de unidad de comaflotante incluida en el microprocesador, implementando estas funciones en coprocesadoresseparados. La arquitectura MIPS tiene en cada coprocesador 32 registros de 32 bits paracoma flotante ($f0-$f31), que pueden ser organizados en 16 registros de doble precisioncon 64 bits (las designaciones par de los registros).

En cuanto al direccionamiento de la memoria, este se realiza por bytes. Esto quieredecir que las direcciones de memoria de 2 palabras consecutivas estaran separadas en 4unidades (ya que las palabras son de 4 bytes). Cuando una palabra se carga desde memoriaa un registro o se pasa a memoria desde un registro, la direccion de memoria involucradaha de ser multiplo de 4. Esto es lo que se denomina restriccion de alineamiento. Lasdirecciones que son multiples de 4 se llaman direcciones alineadas.

Un aspecto importante en cualquier procesador con un ancho de palabra superior a 1

Page 12: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

12 TEMA 4. EL PROCESADOR

Nombre Numero Uso Preservadoen llamada

$zero 0 Valor constante 0 n.a.$at 1 Reservado para el ensamblador n.a.$v0-$v1 2-3 Valores para resultados y evalua-

cion de expresionesno

$a0-$a3 4-7 Paso de parametros sı$t0-$t7 8-15 Registros temporales no$s0-$s7 16-23 Registros que deben preservarse sı$t8-$t9 24-25 Registros temporales no$k0-$k1 26-27 Reservado para nucleo de SO n.a.$gp 28 Puntero global sı$sp 29 Puntero de pila sı$fp 30 Puntero de bloque de activacion sı$ra 31 Direccion de retorno sı

n.a.: no aplica

Cuadro 4.1: Registros del MIPS y su uso convencional en llamadas a procedimientos

byte es el ordenamiento de los bytes dentro de una palabra. Dicho ordenamiento puedetomar dos alternativas: big endian o little endian. En little endian la direccion de un datoes la direccion del byte menos significativo del dato. En big endian la direccion del datoes el byte mas significativo del mismo:

palabra de 4 bytes

A B C D

Big Endian

Little Endian

Este aspecto ha de tenerse en cuenta cuando se intercambia informacion entre dis-tintas maquinas. Ejemplos de arquitecturas little endian son los procesadores x86, DECALPHA y VAX. Ejemplos de arquitecturas big endian son IBM POWER, Motorola 6800y 68k. Algunos procesadores (por ejemplo MIPS, PowerPC, Alpha y SPARC v9) permitenconfigurar el comportamiento, estas arquitecturas reciben el nombre de bi-endian.

4.3.2. Tipos de instrucciones MIPS

Los tipos basicos de instrucciones que soporta el MIPS son los siguientes:

Transferencia de datos

Aritmeticas y logicas

De Control de Flujo

Page 13: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.3. REPERTORIO DE INSTRUCCIONES DEL MIPS 13

• Salto condicional

• Bifurcacion

Las caracterısticas mas importantes de estas instrucciones en el procesador MIPS son:

La longitud de todas las instrucciones MIPS es de 32 bits.

Los operandos de las operaciones aritmeticas son siempre registros. MIPS es, portanto, una arquitectura de carga/almacenamiento (registro-registro).

El acceso a memoria se hace a traves de las operaciones de carga y almacenamiento(transferencia de datos).

Para acceder a una palabra en memoria hay que indicar su direccion. MIPS direc-ciona bytes individuales. No obstante, debe tenerse en cuenta que la mayor partede las instrucciones que acceden a memoria lo hacen de forma alineada, por lo quela direccion a la que se accede debe ser multiplo de 4.

4.3.3. Formatos de las instrucciones MIPS

Como comentabamos anteriormente, el numero de bits de una instruccion MIPS essiempre de 32, el mismo tamano que una palabra. Cada instruccion MIPS se divide enuna serie de campos a los que se les da unos nombres para identificarlos facilmente:

op: operacion basica de la instruccion, tradicionalmente llamada codigo de opera-cion.

rs : primer registro operando fuente.

rt : segundo registro operando fuente.

rd : registro operando destino, donde se almacena el resultado de la operacion.

shamt : tamano del desplazamiento (shift amount).

funct : funcion. Este campo selecciona la variante especıfica de la operacion del campoop, y a veces se le denomina codigo de funcion.

El compromiso elegido por los disenadores del MIPS es guardar todas las instruccionescon la misma longitud, pero utilizar diferentes clases de formatos de instruccion paradiferentes clases de instrucciones. Los tres tipos de formatos posibles en MIPS son:

Formato tipo R: utilizado por las instrucciones aritmeticas y logicas.

Formato tipo I: utilizado por las instrucciones de transferencia, las de salto con-dicional y las instrucciones con operandos inmediatos.

Page 14: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

14 TEMA 4. EL PROCESADOR

5 bits6 bits 5 bits 5 bits 5 bits 6 bits

Tipo - R

5 bits 5 bits6 bits

direccion

16 bits

6 bits 26 bits

Tipo - I

Tipo - J

op

direccionop

op

rs rt

rt rd shamt functrs

Figura 4.7: Codificacion de instrucciones en el MIPS

Formatos tipo J: utilizado por las instrucciones de bifurcacion.

En la figura 4.7 se muestran los campos para cada uno de los tres tipos de formato.Aunque tener multiples formatos complica la circuiterıa, se puede reducir la complejidadguardandolos de forma similar. Por ejemplo, los tres primeros campos de los formatostipo-R y tipo-I son del mismo tamano y tienen los mismos nombres. Los formatos sedistinguen por el valor del primer campo: a cada formato se le asigna un conjunto devalores distintos en el primer campo y por lo tanto la circuiterıa sabe si ha de tratarla ultima mitad de la instruccion como tres campos (tipo-R) o como un campo simple(tipo-I), o si la instruccion es tipo-J.

4.3.4. Instrucciones aritmetico-logicas

El tipo de formato de las instrucciones aritmetico-logicas es tipo-R y el numero deoperandos es siempre tres. Estos operandos son siempre registros. El modo de direcciona-miento empleado, por tanto, es direccionamiento de registro.

En la figura 4.8 se muestran las codificaciones en el lenguaje maquina MIPS para dosejemplos de instrucciones aritmeticas, suma y resta. Para cada instruccion se muestratambien la codificacion de cada campo en decimal y la representacion simbolica de lainstruccion utilizando leguaje ensamblador. La instruccion add $rd,$rs1,$rs2 suma elcontenido de los registros $rs1 y $rs2 y almacena el resultado en $rd.

Muchas veces los programas usan constantes en las operaciones. Para usar una cons-tante utilizando las instrucciones de la figura 4.8 habrıa que cargarla de memoria alregistro para posteriormente sumarla. Una alternativa que evita los accesos a memoria esofrecer versiones de las instrucciones aritmeticas en las cuales un operando es constante.Se usa en este caso el formato de instruccion tipo-I y el modo de direccionamiento es

Page 15: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.3. REPERTORIO DE INSTRUCCIONES DEL MIPS 15

add $7,$3,$6

0 3 6 7 0 32

31 25 20 15 10 5 0

00000 100000001110011000011000000

100010

0 3 6 7 0

31 25 20 15 10 5 0

00000001110011000011000000

sub $7,$3,$6

34

Figura 4.8: Estructuras del lenguaje MIPS para suma y resta

direccionamiento inmediato. En la figura 4.9 se muestra la estructura para el ejemplo dela operacion suma inmediata. La instruccion addi $rd,$rs1,inm suma el contenido de$rs1 y el valor inm y almacena el resultado en $rd.

31 25 20 15

0000 0000 0000 0100

0

addi $8,$8,4

8 8 8 4

001000 01000 01000

Figura 4.9: Estructura del lenguaje MIPS para la suma inmediata

Los operandos constantes aparecen con frecuencia, y situarlos dentro de las instruc-ciones aritmeticas hace que se ejecuten mucho mas rapido.

4.3.5. Instrucciones de transferencia

Las instrucciones de transferencia son instrucciones tipo-I. En la figura 4.10 se mues-tran las codificaciones en lenguaje MIPS para dos ejemplos de operaciones de transferenciamuy comunes, la carga y el almacenamiento de una palabra (lw y sw respectivamente).El direccionamiento usado en este tipo de instrucciones es direccionamiento con desplaza-miento (registro-base). La instruccion lw $rt,desp($rs) carga la palabra almacenada enla direccion de memoria $rs+desp en el registro $rt. La instruccion sw $rt,desp($rs)

almacena la palabra contenida en el registro $rt en la direccion de memoria $rs+desp.

Page 16: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

16 TEMA 4. EL PROCESADOR

Los 16 bits para especificar el desplazamiento significan que una instruccion de cargapuede cargar cualquier palabra dentro de la region ±215 de la direccion del registro base$rs.

31 25 20 15 0

8

01000

lw $8,1200($15)

1200

100011 01111 0000 0100 1011 0000

35 15

101011

31 25 20 15 0

8

01000

1200

01111 0000 0100 1011 0000

15

sw $8,1200($15)

43

Figura 4.10: Estructura del lenguaje MIPS para las instrucciones de transferencia

Existe tambien otra instruccion de transferencia que implementa MIPS, es la llamadainstruccion load upper inmediate (lui) que sirve especıficamente para almacenar los 16bits de la parte alta de una constante en un registro. La instruccion lui $rt,inm almacenalos 16 bits de inm en los 16 bits mas significativos del registro $rt poniendo los otros 16bits a cero ($rt=inm((16). En la figura 4.11 se puede ver la operacion lui.

01000001111

Version en lenguaje maquina: lui $8,255

00000 0000 0000 1111 1111

0000 0000 1111 1111 0000 0000 0000 0000

Contenido del registro $8 tras la ejecucion:

Figura 4.11: El efecto de la instruccion lui

4.3.6. Instrucciones de salto condicional

Lo que distingue a un computador de una simple calculadora es la habilidad de tomardecisiones. Basandose en los datos de entrada y los valores creados durante la compu-tacion, el computador ejecuta diferentes instrucciones. La toma de decisiones se represen-ta comunmente en los lenguajes de programacion de alto nivel usando la sentencia if (si

Page 17: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.3. REPERTORIO DE INSTRUCCIONES DEL MIPS 17

condicional), combinada a veces con sentencias go to (ir a) y etiquetas. El lenguaje maqui-na del MIPS incluye dos instrucciones de toma de decisiones, similares a una sentencia ifcon un go to. Las instrucciones beq (branch if equal) y bne (branch if not equal). Estasdos instrucciones se conocen tradicionalmente como saltos condicionales. Son instruccio-nes de tipo-I y el modo de direccionamiento empleado por ambas es direccionamientocon desplazamiento relativo (direccionamiento con desplazamiento relativo al PC dondeel desplazamiento se indica en numero de palabras en vez de en numero de bytes).

La instruccion beq $rs,$rt,despl significa ir a la instruccion que se encuentra enla direccion de memoria (PC+4)+4*despl si el valor del registro $rs es igual al valordel registro $rt. La instruccion bne $rs,$rt,despl significa ir a la instruccion que seencuentra en la direccion de memoria (PC+4)+4*despl si el valor de $rs no es igual alvalor en $rt. En ensamblador, el uso de etiquetas libera al programador del tedioso calculode las direcciones de salto. Estas instrucciones se muestran en la figura 4.12. En este casose utilizan etiquetas. El ensamblador calculara el desplazamiento necesario para saltar aL1.

31 25 20 15 0

beq $19,$20,L1

4 L119 20

000100 1010010011 0001 1000 0011 1101

000101

31 25 20 15 0

L119 20

1010010011 0001 1000 0011 1101

bne $19,$20,L1

5

Figura 4.12: Estructura en lenguaje MIPS de las instrucciones de salto condicional

La prueba de igualdad y desigualdad es probablemente la mas habitual, pero a veces esutil establecer comparaciones del tipo “menor que”. Para ello se dispone de la instruccionlogica MIPS slt (set on less than), activar si es menor que. El efecto de la instruccion slt

$rd,$rs,$rt es $rd=($rs<$rt). Tambien existe la version de esta instruccion utilizandooperandos inmediatos: slti $rd,$rs,inm es $rd=($rs<inm) La estructura de ambasinstrucciones se muestra en la figura 4.13.

Page 18: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

18 TEMA 4. EL PROCESADOR

0 0

10

slt $8,$19,$20

42

slti $8,$19,10

19 20 8

10818

Figura 4.13: Estructura de las instrucciones slt y slti en el MIPS

4.3.7. Instrucciones de bifurcacion

Una bifurcacion se puede ver como un salto incondicional, es decir, la instruccionobliga a la maquina a seguir siempre el salto. Para distinguir entre saltos condicionales eincondicionales, el nombre MIPS para este tipo de instruccion es jump.

j L1

0

L1

0

jr $8

0 0 88

2

Figura 4.14: Estructura de las instrucciones jump y jump register en el MIPS

La instruccion de bifurcacion jump (j) es de tipo-J y su modo de direccionamiento espseudodirecto. El efecto de la instruccion j es saltar a la direccion de salto especificadapor la instruccion. La direccion de salto son los 26 bits de la instruccion desplazados 2posiciones a la izquierda (es decir, se multiplica por 4) y concatenados con los 4 bits demayor peso del contador de programa (PC ← (PC + 4)31−28IR25−000). Al igual que enlas instrucciones de salto condicional, el ensamblador permite el uso de etiquetas.

La instruccion de bifurcacion jump register (jr) es de tipo-R y utiliza modo de direc-cionamiento indirecto con registro. El efecto de la instruccion es saltar a la direccion dememoria almacenada en el registro.

En la figura 4.14 se muestran estas instrucciones y su formato.

4.3.8. Modos de direccionamiento del MIPS

Resumimos aquı los modos de direccionamiento del MIPS:

Modo de direccionamiento registro, donde el operando es un registro.

Page 19: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.3. REPERTORIO DE INSTRUCCIONES DEL MIPS 19

Modo de direccionamiento base mas desplazamiento, donde el operando esta en unalocalizacion de memoria cuya direccion es la suma de un registro y una constantepresente en la propia instruccion.

Modo de direccionamiento inmediato, donde el operando es una constante que apa-rece en la misma instruccion.

Modo de direccionamiento relativo al PC, donde la direccion es la suma del conta-dor de programa (PC) y la constante de la instruccion multiplicada por 4. Como severa mas adelante, es conveniente incrementar el PC pronto para apuntar a la si-guiente direccion. De aquı que la direccion MIPS es realmente relativa a la direccionde la siguiente instruccion (PC+4) en lugar de a la instruccion actual (PC).

Modo de direccionamiento pseudodirecto, donde la direccion de salto son los 26 bitsde la instruccion desplazados 2 posiciones a la izquierda y concatenados con los 4bits de mayor peso del contador de programa. Esto limita los saltos a 256MB, sinecesitaramos saltar mas alla tendrıamos que sustituir la instruccion jump por jumpregister precedida por otra instruccion para cargar la direccion de 32 bits completaen el registro.

Una operacion simple puede usar mas de un modo de direccionamiento. La operacionde sumar, por ejemplo, usa tanto el direccionamiento inmediado (si usamos la instruccionaddi), como el direccionamiento registro (si usamos la instruccion add). La figura 4.15muestra, para cada modo de direccionamiento, como se localiza el operando correspon-diente.

4.3.9. Llamadas a subrutinas

Un procedimiento o subrutina es una herramienta que los programadores usan paraestructurar programas con el fin de hacerlos facilmente comprensibles y permitir queel codigo sea reutilizado. Los parametros de las subrutinas permiten pasar valores a lasubrutina y que esta retorne resultados.

En la ejecucion de una subrutina el programa debe seguir los siguientes pasos:

1. Situar los parametros en un lugar donde la subrutina pueda acceder a ellos.

2. Transferir el control a la subrutina.

3. Adquirir los recursos de almacenamiento necesarios para el procedimiento.

4. Realizar la tarea deseada.

5. Situar el valor del resultado en un lugar donde el programa que lo ha llamado puedaacceder a el.

6. Retornar el control al punto de origen.

Page 20: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

20 TEMA 4. EL PROCESADOR

x4

x4

4 bits

Figura 4.15: Modos de direccionamiento del MIPS.

Page 21: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.3. REPERTORIO DE INSTRUCCIONES DEL MIPS 21

En la figura 4.16 se muestra graficamente la distribucion de la memoria para programasy datos. El espacio de memoria de un programa de usuario se organiza en varios segmentos:

Segmento de texto: Es un segmento de tamano fijo que contiene las instruccionesdel programa ejecutable.

Segmento de datos: Es un segmento de tamano variable dividido en varias seccionespara los distintos tipos de datos.

Montıculo (heap): Contiene los datos reservados dinamicamente y crece de direccio-nes menores a mayores.

Segmento de pila (stack): Avanza de direcciones mayores a menores. Se utilizara enlas llamadas a procedimientos.

$ s p

$gp

0040 0000 h e x

0

1000 0000 h e x

Text

Static data

Dynamic data

Stack7 f f f f f f f h e x

1000 8000 h e x

p c

Reserved

Figura 4.16: Distribucion de la memoria para programas y datos en el MIPS

En general, en la mayorıa de los procesadores la comunicacion entre un segmento decodigo que llama a una subrutina (invocador) y la subrutina se realiza mediante la pila. Elinvocador situa los parametros en la pila. Posteriormente la subrutina coloca tambien enla pila la informacion que debe guardar temporalmente y al finalizar libera dicho espacioy deja en la pila el resultado de la subrutina. Finalmente el invocador recupera de la pilael resultado.

La pila es un espacio de memoria con estructura tipo LIFO (Last In First Out), enla que el ultimo que entra es el primero en salir. Esta estructura necesita un puntero queapunte a la direccion mas recientemente utilizada, para guardar donde deberıa de situar el

Page 22: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

22 TEMA 4. EL PROCESADOR

siguiente elemento a volcar, o para saber donde se pueden encontrar los valores guardados.Por razones historicas, la pila crece de direcciones de memoria superiores a inferiores. Portanto, para poner valores en la pila tendremos que restar al puntero de pila y para quitarvalores tendremos que sumar al puntero de pila.

Los programas del MIPS reservan un registro solo para la pila, stack pointer ($sp) opuntero de pila. Veamos un par de ejemplos de como introducir datos en la pila y comotransferirlos desde ella.

Para realizar la operacion de push (guardar) salvando dos registros en la pila:

addi $sp,$sp,-8 # ajusto la pila para a~nadir dos elementos

sw $v0,0($sp) # salvo el registro $2

sw $v1,4($sp) # salvo el registro $3

Para realizar la operacion de pop (recuperar) transfiriendo los datos de la pila a dosregistros:

lw $v0,0($sp) # restaura el registro $2

lw $v1,4($sp) # restaura el registro $3

addi $sp,$sp,8 # ajusta el puntero de la pila para eliminar

# dos elementos

Sin embargo, es mas rapido acceder a registros que a memoria, de aquı que el conveniode llamadas MIPS se apoya en el banco de registros para evitar accesos a pila y acelerarası la ejecucion de los programas. Los programas MIPS asignan por convenio los siguientesregistros de los 32 disponibles en cada llamada de procedimiento:

$a0-$a3: cuatro registros de argumentos en los cuales se pasan parametros. Si senecesitan mas parametros se pasan a traves de la pila.

$v0-$v1: dos registros de valores en los cuales se retornan valores.

$ra: un registro de retorno de direccion para volver al punto de origen.

Ademas de esta asignacion de registros, el lenguaje ensamblador del MIPS incluyeuna instruccion solo para procedimientos (jal): salta a una direccion y simultaneamentesalva la direccion de retorno (direccion de la siguiente instruccion) en el registro $ra. Lainstruccion jal (jump-and-link) se muestra en la figura 4.17. Utiliza direccionamientopseudodirecto al igual que jump para el calculo de la direccion de salto. El ensambladorpermite el uso de etiquetas para especificar la direccion de salto.

La direccion de retorno es necesaria porque el mismo procedimiento se puede llamardesde diferentes puntos del programa. La instruccion jal guarda PC + 4 en el registro$ra para encadenar la siguiente instruccion con el retorno del procedimiento.

Page 23: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.3. REPERTORIO DE INSTRUCCIONES DEL MIPS 23

jal direccion_subrutina

3 direccion_subrutina

Figura 4.17: Estructura de la instruccion jump-and-link en MIPS.

Para realizar el salto de retorno disponemos de la instruccion jump register comen-tada anteriormente: jr $ra salta a la direccion almacenada en el registro $ra, que esjustamente lo que se requiere.

Resumiendo, el programa que llama al procedimiento (invocador) pone los valoresde los parametros en $a0-$a3 y usa la instruccion jal para saltar al procedimiento. Elprocedimiento (tambien conocido por invocado) realiza los calculos, pone los resultadosen $v0-$v1 y devuelve el control al invocador usando jr $ra.

Salvaguarda de registros

Si un procedimiento modifica los registros utilizados por la rutina invocadora los va-lores de los registros deben ser guardados y restaurados utilizando para ello la pila. Losdos convenios estandares para guardar y restaurar registros son:

Guardar invocador (caller save): el procedimiento invocador es el responsable deguardar y restaurar los registros que necesite conservar.

Guardar invocado (callee save): el invocado es el responsable de guardar y restaurarcualquier registro que vaya a utilizar.

Para evitar salvar y restaurar un registro cuyo valor nunca se usa, los programas MIPSofrecen dos clases de registros (ver cuadro 4.1):

Registros temporales ($t0-$t9): Se utilizan para guardar datos temporales que nonecesitan ser preservados entre llamadas. No son preservados por el invocado (pro-cedimiento llamado) en una llamada de procedimiento. Estos registros deben serguardados por el invocador en caso de que necesite conservar sus valores.

Registros salvados ($s0-$s7): Se utilizan para almacenar valores de vida mas largaque se deben preservar durante las llamadas. Si el invocado los usa salva previamentesu valor.

Esta simple convencion reduce el volcado de registros.

Page 24: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

24 TEMA 4. EL PROCESADOR

4.4. Diseno de la Unidad Central de Proceso

La unidad central de proceso es la encargada de la ejecucion de las instruccionesespecificadas por el programa. Este modulo esta formado por dos bloques, el Camino deDatos y la Unidad de Control.

Camino de Datos: se encarga de realizar todas las operaciones requeridas por lasinstrucciones del nivel de lenguaje maquina. Contiene los siguientes elementos (verFigura 4.18):

• Unidad Aritmetico-Logica (ALU): esta formada por los circuitos digitales ne-cesarios para realizar las operaciones aritmeticas y logicas requeridas por lasinstrucciones.

• Banco de Registros: contiene los registros que almacenan temporalmente losdatos y resultados con los que opera la ALU.

• Registros Especiales: contienen informacion necesaria para la correcta ejecucionde las instrucciones y del programa. Por ejemplo, la instruccion en ejecucion(registro de instrucciones, IR), la direccion de la siguiente instruccion a ejecutar(contador de programa, PC), etc.

• Buses internos: son los caminos de conexion entre los distintos elementos queforman la Unidad de Proceso.

Figura 4.18: Estructura del Camino de Datos

Page 25: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.5. CONSTRUCCION DEL CAMINO DE DATOS 25

Unidad de Control: se encarga de gestionar el secuenciamiento de las operacionesque se realizan en el Camino de Datos para que las instrucciones se ejecuten adecua-damente. Este secuenciamiento se realiza generando en el orden correcto las senalesde control necesarias para coordinar el funcionamiento del resto de unidades delcomputador. La unidad de control es un sistema secuencial y su complejidad de-pende basicamente de la complejidad del Camino de Datos y del numero y tipo deinstrucciones a ejecutar.

En general, la ejecucion de una instruccion se puede entender como un proceso divididoen 5 pasos:

Captar la instruccion: El procesador debe leer la instruccion de la memoria.

Interpretar las instruccion: La instruccion debe decodificarse para determinar que ac-cion es necesaria.

Captar datos: La ejecucion puede exigir leer datos de la memoria o de un modulode E/S.

Procesar datos: La ejecucion de una instruccion puede exigir llevar a cabo algunaoperacion aritmetica o logica.

Escribir datos: Los resultados de una ejecucion pueden tener que ser escritos en lamemoria o en un modulo de E/S.

En las siguientes secciones estudiaremos como llevar a cabo el diseno de una UnidadCentral de Proceso (Camino de Datos y Unidad de Control). Para ello tomaremos comoejemplo el procesador MIPS. En concreto, disenaremos una Unidad Central de Procesopara ejecutar el siguiente subconjunto del repertorio de instrucciones del MIPS:

Las instrucciones de acceso a memoria lw y sw

Las instrucciones aritmetico-logicas add, sub, and, or y slt

La instruccion de salto condicional beq

La instruccion de salto incondicional j

4.5. Construccion del Camino de Datos

Una forma razonable de empezar el diseno de una Unidad Central de Proceso es laconstruccion del Camino de Datos. Examinaremos para ello los componentes que serannecesarios para la ejecucion de cada una de las instrucciones. Utilizaremos tanto sistemascombinacionales como secuenciales. Para los sistemas secuenciales asumiremos sincroni-zacion por flancos.

Page 26: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

26 TEMA 4. EL PROCESADOR

4.5.1. Carga de la instruccion

Para ejecutar cualquier instruccion se debe empezar por cargar la instruccion desdememoria. La direccion de memoria nos la indica el registro de 32 bits contador de programa(PC). Para ejecutar la siguiente instruccion el contador de programa ha de incrementarsepara que apunte 4 bytes mas adelante. El Camino de Datos para este paso se muestra enla figura 4.19.

Memoria de

instrucciones

Instrucción

DirecciónPC

Sumador

4

Figura 4.19: Parte del Camino de Datos correspondiente a la busqueda de la instruccione incremento del contador de programa

4.5.2. Instrucciones aritmetico-logicas

Las instrucciones aritmetico-logicas son instrucciones tipo R que leen dos registros,operan con la ALU los contenidos de estos registros y escriben el resultado. El ejemplotıpico de este tipo de instrucciones es add $t1, $t2, $t3, que suma los contenidos de$t2 y $t3 y escribe el resultado en $t1. En la figura 4.20 se muestra el Camino de Datospara estas instrucciones suponiendo que ya se ha obtenido la instruccion. Los registrosde 32 bits del procesador se agrupan en un banco de registros. Se puede acceder a cadauno de los registros especificando su numero. El banco de registros tiene dos puertos delectura y uno de escritura. Para escribir hay que activar explıcitamente la senal de controlde escritura. Las entradas que indican el numero de registro a leer o escribir son todas de5 bits, mientras que las salidas (lıneas de datos) son de 32 bits.

Necesitaremos una ALU que pueda realizar las operaciones sumar, restar, AND, ORy realizar la comparacion set on less than (slt). El cuadro 4.2 muestra las lıneas decontrol de la ALU con las correspondientes operaciones. La ALU admitira como entradados operandos de 32 bits (a y b) y una lınea de control de tres bits para seleccionar laoperacion a realizar. Ofrecera como salida el resultado de la operacion, tambien de 32 bits,un bit de acarreo, una salida de deteccion de desbordamiento y una salida de deteccion decero como se ilustra en la figura 4.21. La salida Cero de la ALU se utilizara en la realizacionde los saltos condicionales como veremos mas adelante. La salida de Desbordamiento seusara para la deteccion de excepciones.

Page 27: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.5. CONSTRUCCION DEL CAMINO DE DATOS 27

Instrucción

EscribirReg

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

RE

GIS

TR

OS

3 Operación de la ALU

Cero

Resultadode la ALU

ALU

Figura 4.20: Parte del Camino de Datos correspondiente a las instrucciones aritmetico-logicas (tipo R)

lıneas de control de la ALU funcion000 and001 or010 suma110 resta111 slt

Cuadro 4.2: Valores de las tres lıneas de control de la ALU y las operaciones correspon-dientes.

4.5.3. Instrucciones de transferencia de datos

Las instrucciones de carga y almacenamiento son instrucciones tipo I con el siguienteformato: lw $t1, desp1($t2) o sw $t1, desp1($t2). Estas instrucciones leen o escri-ben un dato en memoria. La direccion de memoria se calcula anadiendo al registro base($t2) el campo de desplazamiento (positivo o negativo) de 16 bits contenido en la ins-truccion. El desplazamiento se extiende a 32 bits antes de realizar la suma en la ALU.Si la instruccion es la sw, el dato a almacenar ha de leerse del registro $t1 del banco deregistros. En caso de lw, el valor leıdo de memoria debe escribirse en el registro $t1. Lafigura 4.22 muestra el Camino de Datos para este tipo de instrucciones. Los identificado-res de registros para el banco estan en los campos de la instruccion, ası como el valor deldesplazamiento, el cual tras extender el signo se convierte en el segundo operando de laALU. La memoria de datos tiene senales de control de lectura y escritura, una entrada dedireccion, una entrada de datos para la escritura y una salida de datos para la lectura. Lasenal de control de lectura de la memoria es necesaria para evitar el acceso a posicionesno validas.

Page 28: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

28 TEMA 4. EL PROCESADOR

Figura 4.21: Sımbolo de la ALU

Memoria

de Datos

Dirección

Dato aescribir

Datoleído

Instrucción

16 32

3 Operación de la ALU

EscribirReg

LeerMem

EscribirMemReg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

RE

GIS

TR

OS

Cero

Resultadode la ALU

ALU

Extensiónde signo

Figura 4.22: Parte del Camino de Datos correspondiente a las instrucciones de acceso amemoria

4.5.4. Instruccion de salto condicional

La instruccion beq es una instruccion tipo I con 3 operandos, dos registros y undesplazamiento de 16 bits utilizado para calcular la direccion destino del salto. Su formatoes beq $t1, $t2, despl. Evalua si el contenido de los registros $t1 y $t2 son iguales,si la condicion se cumple aplica un salto relativo a la direccion de la instruccion consigno. Es la direccion PC+4 la que se utilizara como base para el calculo de la direcciondestino. Para realizar esta instruccion se ha de calcular la direccion destino del salto:(PC+4)+4*despl. Los 16 bits del campo desplazamiento se extienden a 32 y se desplazana la izquierda 2 posiciones para multiplicar por 4. Ademas de calcular la direccion desalto, se tiene que determinar si se realiza el salto o no. Si la condicion se cumple, esdecir, los dos operandos son iguales, la direccion de salto calculada pasa a ser el nuevoPC. Si los operandos son diferentes, el PC+4 deberıa reemplazar al actual. La figura 4.23muestra el Camino de Datos para esta instruccion. Para calcular la direccion de salto se

Page 29: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.5. CONSTRUCCION DEL CAMINO DE DATOS 29

incluye una unidad de extension de signo y un sumador. Para la comparacion se necesitautilizar el banco de registros y la ALU. A la ALU entran los dos datos a comparar, lasenal de control de la ALU se configura para hacer una resta, de esta forma si son igualesse activara la salida Cero de la ALU.

Instrucción

16 32

EscribirReg

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

RE

GIS

TR

OS

3 Operación de la ALU

Cero

ALU

Extensiónde signo

Desp.2 bits ala izq.

Resultado

Sumador

PC +4 del camino de datos de instrucciones

Destino salto

Decidir si se

hace el salto

Figura 4.23: Parte del Camino de Datos correspondiente a la instruccion de salto condi-cional (beq)

4.5.5. Instruccion de salto incondicional

La instruccion de salto incondicional (j) es una instruccion tipo J con un modo dedireccionamiento pseudodirecto. Esta instruccion reemplaza los 28 bits de menor peso delPC con los 26 bits de menor peso de la instruccion desplazados 2 bits hacia la izquierda.No se necesita hardware adicional para llevar a cabo esta instruccion.

4.5.6. Camino de Datos completo

El Camino de Datos necesario para la ejecucion del subconjunto de instrucciones ele-gido estara formado por la combinacion de los elementos explicados en las subseccionesanteriores. Como hemos visto en la seccion 4.4, la ejecucion de una instruccion la po-demos dividir en 5 pasos, correspondiendo cada uno de ellos a diferentes operaciones delas unidades funcionales requeridas. Cada paso lo vamos a ejecutar en un ciclo de relojdiferente, de esta forma podremos utilizar una determinada unidad funcional mas de unavez en una instruccion siempre y cuando se haga en ciclos diferentes, reduciendo ası la

Page 30: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

30 TEMA 4. EL PROCESADOR

cantidad de hardware empleado. Ası por ejemplo, las sumas realizadas para calcular lasiguiente instruccion a ejecutar (ver figuras 4.19 y 4.23) se pueden realizar con la ALUy no se necesitan sumadores independientes para esa operacion. La ALU llevara a cabodiferentes operaciones dependiendo de la instruccion que se ejecute y del ciclo de ejecucionen el que nos encontremos:

Cuando se realice la carga de la instruccion, sumara el PC+4 para incrementar elcontador del programa y que este apunte a la siguiente instruccion a ejecutar.

En el caso de instruccion de carga/almacenamiento, calculara la direccion de me-moria sobre la que leer o escribir sumando a un operando almacenado en registro elcampo desplazamiento con el signo extendido.

En el caso de instruccion tipo R, realizara una operacion aritmetica o logica (and,or, add, sub y slt) con 2 operandos almacenados en los registros.

En el caso de salto condicional, evaluara la condicion de salto restando 2 operandosalmacenados en los registros. Tambien calculara la direccion de salto sumando al PCincrementado los 16 bits menos significativos de la instruccion con el signo extendidoy desplazados dos bits a la izquierda.

Del mismo modo, no se necesita una memoria para instrucciones y otra para datos, yaque el acceso a la memoria de instrucciones y a la de datos se realiza en ciclos diferentesde la ejecucion.

Al finalizar cada ciclo todos los datos que vayan a utilizarse en el siguiente ciclo sedeben almacenar en un elemento de almacenamiento (memoria o registro). Los datos autilizar por las siguientes instrucciones en ciclos posteriores se almacenaran en elementosde almacenamiento visibles al programador (el banco de registros, el PC o la memoria).En cambio, los datos que va utilizar la misma instruccion en ciclos posteriores debenguardarse en registros temporales.

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

RE

GIS

TR

OSMemoria

Instruccioneso datos

Dirección

Registro dedatos dememoria

SalidaALU

Registro deinstrucciones

ALU

A

BDato

PC

Figura 4.24: Vision de alto nivel del Camino de Datos del MIPS

La figura 4.24 muestra una vision de alto nivel del Camino de Datos completo. Eneste diseno se utiliza una unica ALU en vez de una ALU y dos sumadores, una memoria

Page 31: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.5. CONSTRUCCION DEL CAMINO DE DATOS 31

unica para instrucciones y datos, y se han anadido registros temporales tras cada unidadfuncional para almacenar la salida de dicha unidad hasta que este valor vaya a utilizarseen el siguiente ciclo. En concreto, se han anadido los siguientes registros temporales:

El registro de instruccion (IR) y el registro de datos de memoria (MDR) se anadenpara almacenar la salida de la memoria tras la lectura de una instruccion o un dato,respectivamente. Se utilizan dos registros separados, ya que, como se vera mas tarde,ambos valores se necesitaran en un mismo ciclo.

Los registros A y B se utilizan para guardar los valores de los registros operandosleıdos del banco de registros.

El registro SalidaALU almacena la salida de la ALU.

Todos los registros, excepto el IR, guardan datos entre dos ciclos de reloj consecutivosy por tanto no necesitaran senal de escritura. El IR sı necesita conservar la instruccionhasta el final de su ejecucion y por lo tanto sı requiere de esa senal de control.

Debido a que se utilizaran varias unidades funcionales para diferentes propositos,sera necesario introducir multiplexores para poder escoger entre diferentes entradas. Senecesita un MUX para seleccionar:

el origen de la direccion de acceso a memoria (el PC para acceder a instrucciones,el registro SalidaALU para acceder a datos).

el registro de destino, que estara indicado por los bits 16-20 (rt) en los casos de ins-trucciones de carga y por los bits 11-15 (rd) en los casos de instrucciones aritmetico-logicas.

el dato a escribir, que sera un dato de la memoria en el caso de instrucciones decarga y la salida de la ALU en el caso de instrucciones aritmetico-logicas.

la primera entrada de la ALU, que podra ser el registro A o el PC.

la segunda entrada de la ALU, que podra ser el registro B (en el caso de instruccionaritmetica logica o instruccion de salto condicional), el numero 4 (utilizado paraincrementar el PC), el campo desplazamiento con el signo extendido (en el casode instrucciones de transferencia de datos) o el campo desplazamiento con el signoextendido y desplazado 2 bits a la izquierda (para el calculo de la direccion destinoen los saltos condicionales).

la direccion de la siguiente instruccion a ejecutar, que se almacenara en PC y quepodra ser PC+4, la direccion de salto calculada por la ALU en caso de salto con-dicional o la direccion de salto indicada en la propia instruccion en caso de saltoincondicional. En este ultimo caso, la direccion destino se obtiene mediante el des-plazamiento de los 26 bits de menor peso de la instruccion 2 bits a la izquierda(anadiendo 00 como bits de menor peso) y concatenando los 4 bits de mayor pesode PC+4 como bits de mayor peso.

Page 32: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

32 TEMA 4. EL PROCESADOR

La figura 4.25 muestra el Camino de Datos completo para ejecutar las instruccionesbasicas del MIPS.

RE

GIS

TR

OS

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro deinstrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registrode datos dememoria Exten.

signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

Figura 4.25: Camino de Datos para ejecutar las instrucciones basicas del MIPS

El primer paso en la ejecucion de una instruccion es comun a todas las instrucciones yconsiste en el almacenamiento de la instruccion a ejecutar en el registro de instruccion. Seenvıa el PC a memoria como direccion, se efectua la lectura de la instruccion y se escribeen el registro de instrucciones (IR).Tambien se incrementa el PC en cuatro para apuntara la siguiente instruccion a ejecutar. La figura 4.26 muestra la parte del Camino de Datosque se utiliza. Debido a que nuestro diseno utiliza sincronizacion por flanco, se puede leerel contenido de un registro que se vaya a escribir ya que el nuevo valor no sera accesiblehasta el siguiente ciclo de reloj. En este caso, el incremento del PC y la busqueda de lainstruccion puede realizarse en paralelo ya que el nuevo valor del PC no sera visible hastael siguiente ciclo.

A continuacion describiremos como se utiliza este Camino de Datos para cada una delas instrucciones consideradas.

Instrucciones aritmetico-logicas

Si la instruccion a ejecutar es una instruccion aritmetico logica, el siguiente paso sera labusqueda de los registros con los operandos, la ejecucion de la operacion aritmetico-logicasobre los operandos y la escritura del resultado en el registro destino.

La figura 4.27 muestra la parte del Camino de Datos que se utiliza para la busqueda delos registros. En esta etapa se leen los dos registros indicados por rs y rt y se almacenanen los registros temporales A y B.

Page 33: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.5. CONSTRUCCION DEL CAMINO DE DATOS 33

RE

GIS

TR

OS

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro deinstrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registrode datos dememoria Exten.

signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

Figura 4.26: Camino de Datos: etapa de carga de la instruccion

RE

GIS

TR

OS

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro deinstrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registrode datos dememoria Exten.

signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

Figura 4.27: Camino de Datos: busqueda de registros (instruccion tipo R e instruccionsw)

Page 34: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

34 TEMA 4. EL PROCESADOR

La figura 4.28 muestra en rojo la parte del Camino de Datos que se utiliza para laejecucion de la operacion y en rosa lo que se utiliza de ciclos anteriores. En esta etapala ALU lleva a cabo la operacion especificada en el codigo de funcion sobre los datosalmacenados en A y B en el ciclo anterior y almacena el resultado en el registro SalidaALU.

RE

GIS

TR

OS

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro deinstrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registrode datos dememoria Exten.

signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

Figura 4.28: Camino de Datos: instruccion tipo R, ejecucion

La figura 4.29 muestra en rojo la parte del Camino de Datos que se utiliza para escribirel resultado (almacenado en el ciclo anterior en el registro SalidaALU) en el registro destinoespecificado por el campo rd de la instruccion (bits 15-11).

RE

GIS

TR

OS

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro deinstrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registrode datos dememoria Exten.

signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

Figura 4.29: Camino de Datos: instruccion tipo R, escritura de resultado

En total, este tipo de instrucciones necesitaran 4 ciclos de reloj para ejecutarse.

Page 35: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.5. CONSTRUCCION DEL CAMINO DE DATOS 35

Instruccion lw

Si la instruccion a ejecutar es un load (lw $t1, desp1($t2)) el siguiente paso a lacarga de la instruccion sera el calculo de la direccion de memoria a leer, la lectura deldato y el almacenamiento del mismo en el registro destino.

La direccion de memoria se calcula sumando al registro base ($t2) el campo des-plazamiento. Por tanto, antes de calcular la direccion de memoria tendremos que leerel registro base y almacenarlo en el registro temporal A para poder operar con el. Lafigura 4.30 muestra el Camino de Datos utilizado para esta operacion.

RE

GIS

TR

OS

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro deinstrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registrode datos dememoria Exten.

signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

Figura 4.30: Camino de Datos: instruccion lw, busqueda de registro

La figura 4.31 muestra la parte del Camino de Datos que se utiliza para calcular ladireccion de memoria utilizando el dato almacenado en el registro A en el ciclo anterior.

A continuacion se accede a memoria y se carga una palabra en el registro MDR. Ladireccion de memoria que se utiliza se ha calculado en el ciclo anterior y se encuentraalmacenada en SalidaALU. La figura 4.32 muestra en rojo la parte del Camino de Datosque se utiliza y en rosa lo que se utiliza de ciclos anteriores.

Las instruccion se completa escribiendo el valor leıdo de memoria, almacenado en elciclo anterior en el registro MDR, en el banco de registros. La figura 4.33 muestra en rojola parte del Camino de Datos que se utiliza en esta etapa y en rosa lo que se utiliza deciclos anteriores.

Esta instruccion necesita un total de 5 ciclos de reloj para completarse.

Page 36: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

36 TEMA 4. EL PROCESADOR

RE

GIS

TR

OS

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro deinstrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registrode datos dememoria Exten.

signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

Figura 4.31: Camino de Datos: instruccion lw, calculo de la direccion de memoria

RE

GIS

TR

OS

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro deinstrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registrode datos dememoria Exten.

signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

Figura 4.32: Camino de Datos: instruccion lw, lectura de memoria

Page 37: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.5. CONSTRUCCION DEL CAMINO DE DATOS 37

RE

GIS

TR

OS

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro deinstrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registrode datos dememoria Exten.

signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

Figura 4.33: Camino de Datos: instruccion lw, almacenamiento de dato en registro

Instruccion sw

Si la instruccion a ejecutar es un store, los siguientes pasos despues de la carga dela instruccion seran la busqueda del registro a almacenar, el calculo de la direccion dememoria en la que escribir el dato y la escritura del mismo.

Como en la instruccion lw, la direccion de memoria se calcula sumando al registro baseel campo desplazamiento. Por tanto, antes de calcular la direccion de memoria tendremosque leer el registro base y almacenarlo en el registro temporal A para poder operar conel. Esta operacion se puede hacer en paralelo a la carga del registro a almacenar. Lafigura 4.27 muestra el Camino de Datos que se utiliza para estas operaciones.

La figura 4.34 muestra en rojo la parte del Camino de Datos que se utiliza para calcularla direccion de memoria utilizando el dato almacenado en el registro A en el ciclo anterior.

A continuacion se accede a memoria y se escribe el dato almacenado en el registro B.La direccion de memoria que se utiliza se ha calculado en el ciclo anterior y se encuentraalmacenada en SalidaALU. La figura 4.35 muestra en rojo la parte del Camino de Datosque se utiliza y en rosa lo que se utiliza de ciclos anteriores.

Esta instruccion necesita un total de 4 ciclos para ejecutarse.

Instruccion beq

Si la instruccion a ejecutar es una beq, una vez cargada la instruccion se almacenaranlos operandos en los registros A y B, se calculara la direccion de salto y se compararanlos valores de los operandos utilizando la ALU para determinar si el salto se toma o no.

Page 38: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

38 TEMA 4. EL PROCESADOR

RE

GIS

TR

OS

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro deinstrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registrode datos dememoria Exten.

signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

Figura 4.34: Camino de Datos: instruccion sw, calculo de la direccion de memoria

RE

GIS

TR

OS

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro deinstrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registrode datos dememoria Exten.

signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

Figura 4.35: Camino de Datos: instruccion sw, escritura en memoria

Page 39: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.5. CONSTRUCCION DEL CAMINO DE DATOS 39

En caso de que los operandos sean iguales, el salto sera efectivo y se escribira el PC conel valor de salto calculado previamente.

La carga de los operandos y el calculo de la direccion de salto se puede hacer enparalelo. La figura 4.36 muestra la parte del Camino de Datos que se utiliza para llevar acabo estas acciones.

RE

GIS

TR

OS

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro deinstrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registrode datos dememoria Exten.

signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

Figura 4.36: Camino de Datos: instruccion beq, busqueda de los registros y calculo de ladireccion de salto

A continuacion se utiliza la ALU para restar los dos operandos leıdos en el pasoanterior y comprobar de esta forma si son iguales. La senal de Cero de la ALU se utilizapara determinar si el salto se toma o no. Si se toma el salto se escribe el PC con el nuevovalor (la figura 4.37 muestra en rojo la parte del Camino de Datos que se utiliza y en rosalo que se utiliza de ciclos anteriores), si no se cumple la condicion de igualdad el PC no semodifica (la figura 4.38 muestra la parte del Camino de Datos que se usa en este caso).

Esta instruccion necesita 3 ciclos para ejecutarse.

Instruccion j

Si lo que tenemos es una instruccion de salto incondicional lo unico que tendremos quehacer es escribir el PC con la direccion de salto. La figura 4.39 muestra en rojo la partedel Camino de Datos que se utiliza.

Esta instruccion necesitarıa solamente 2 ciclos para ejecutarse, pero como veremosmas adelante, se ejecutara en tres para simplificar el diseno de la Unidad de Control.

Page 40: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

40 TEMA 4. EL PROCESADOR

REGISTROS

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro deinstrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registrode datos dememoria Exten.

signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

Figura 4.37: Camino de Datos: instruccion beq, ejecucion cuando se cumple la condicionde salto

REGISTROS

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro deinstrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registrode datos dememoria Exten.

signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

Figura 4.38: Camino de Datos: instruccion beq, ejecucion cuando no se cumple la condicionde salto

Page 41: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.5. CONSTRUCCION DEL CAMINO DE DATOS 41

RE

GIS

TR

OS

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro deinstrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registrode datos dememoria Exten.

signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

Figura 4.39: Camino de Datos: ejecucion de una instruccion de salto incondicional

4.5.7. Senales de control

Se van a necesitar un conjunto de senales de control para utilizar el Camino de Da-tos de la forma descrita en la seccion anterior. Los elementos de estado visibles por elprogramador (el PC, la memoria y los registros), ası como el IR, necesitan senales decontrol de escritura. Ademas, la memoria necesita una senal para lectura. Los multiplexosde 2 entradas requieren una lınea de control, mientras que los de 4 entradas necesita dossenales. En cuanto a la ALU, mediante una pequena unidad de control que tiene comoentradas el codigo de funcion de la instruccion y 2 bits de control adicionales que recibenel nombre de ALUop, se pueden generar los 3 bits que conforman las senales de control dela ALU. Los dos bits de ALUop indican si la operacion a realizar es una suma para accesosa memoria o calculo de la direccion de salto (00), una resta para saltos condicionales (01),o si la operacion esta codificada en el codigo de funcion (10) para instrucciones tipo R.La salida de la unidad de control de la ALU es una senal de 3 bits que le indica a la ALUla operacion a realizar codificando una de las 5 combinaciones vistas en el cuadro 4.2. Lafigura 4.3 muestra la relacion entre los bits de control de la ALU, los bits ALUop y losdiferentes codigos de funcion de las instrucciones tipo R. Si ALUop tiene como valor 00la ALU realizara una suma (instruccion sw, lw o beq para el calculo de la direccion desalto), si su valor es 01 la ALU realizara una resta (instruccion beq para el chequeo de lacondicion de igualdad). Si tenemos una instruccion tipo R, ALUop tomara el valor 10 yla operacion a realizar por la ALU dependera del codigo de funcion.

La figura 4.40 muestra el Camino de Datos con la senales de control ya anadidas. Lasenales ALUop, SelALUB y FuentePC son de 2 bits, mientras que el resto son solo de 1bit. Los registros A, B, Salida ALU y MDR no requieren ninguna senal de escritura yaque sus contenidos solamente se leen en el ciclo inmediatamente posterior a su escritura.

La figura 4.41 muestra la unidad de control con todas las lıneas de control conectadas

Page 42: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

42 TEMA 4. EL PROCESADOR

ALUOp Campo de funcion Accion Lıneas de control de la ALU00 XXXXXX suma 01001 XXXXXX resta 11010 100000 suma 01010 100010 resta 11010 100100 AND 00010 100101 OR 00110 101010 slt 111

Cuadro 4.3: Calculo de los bits de control de la ALU en funcion de ALUop y el codigo defuncion de las instrucciones tipo R

RE

GIS

TR

OS

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro deinstrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registrode datos dememoria Exten.

signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

SelALUAEscrRegRegDestEscrIREscrMemLeerMem

IoD

EscribirPC

Mem2Reg

ControlALU

ALUop

FuentePCSelALUB

Figura 4.40: El Camino de Datos de la figura 4.25 mostrando las senales de control

Page 43: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.6. DISENO DE LA UNIDAD DE CONTROL 43

a ella. La principal diferencia con la figura 4.40 es la incorporacion de las senales EscrPCy EscrPCCond. El PC deberıa escribirse en caso de salto incondicional (EscrPC=1) o encaso de salto condicional si se cumple la condicion de igualdad (EscrPCCond=1 y CeroALU=1).

RE

GIS

TR

OS

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro deinstrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registrode datos dememoria Exten.

signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

SelALUAEscrReg

RegDestEscrIR

EscrMem

LeerMem

IoD

Control

OP[31-26]

EscrPC

EscrPC Cond

Mem2Reg

ControlALU

ALUopFuentePC

SelALUB

Figura 4.41: El Camino de Datos con la Unidad de Control

Las figuras 4.42 y 4.43 muestran que hace cada senal de control cuando esta activa einactiva.

4.6. Diseno de la Unidad de Control

La unidad de control debe especificar que senales se van a activar en cada paso y cuales el siguiente paso de la secuencia. Se construye como un sistema secuencial o automataque va pasando por diferentes estados, indicando cada estado que puntos de control seactivan (salidas del automata) y, en funcion de las condiciones (entradas del automata),cual es el estado siguiente. Las condiciones de la unidad de control seran los bits de lainstruccion y los indicadores internos (por ejemplo, la salida Cero de la ALU).

Cada estado del automata representara una etapa de la ejecucion de la instrucciony tardara un ciclo de reloj. Como hemos visto en la seccion anterior, cada instruccionnecesita de tres a cinco etapas para ejecutarse. Gran parte de lo necesario para la ejecucionde estas instrucciones sera comun a todas ellas, de hecho, para cada instruccion los dosprimeros pasos seran identicos. A partir de aquı, las acciones necesarias para completar la

Page 44: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

44 TEMA 4. EL PROCESADOR

1El nombre de esta senal proviene de la disyuntiva entre Instrucciones o Datos

Figura 4.42: Acciones de las senales de control de 1 bit

Figura 4.43: Acciones de las senales de control de 2 bits

Page 45: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.6. DISENO DE LA UNIDAD DE CONTROL 45

instruccion dependeran de la instruccion concreta. Despues de la ultima etapa el automatadebe volver al estado inicial para procesar la siguiente instruccion.

En las siguientes subsecciones se muestra lo que ocurre en cada una de las etapasdependiendo de la instruccion.

4.6.1. Etapa 1. Carga de una instruccion

El primer paso en la ejecucion (estado 0) es el almacenamiento de la instruccion aejecutar en el registro de instruccion. Se envıa el PC a memoria como direccion, se efectuala lectura de la instruccion y se escribe en el registro de instrucciones (IR).Tambien seincrementa el PC en cuatro. La figura 4.26 muestra la parte del Camino de Datos que seutiliza. Para la realizacion de este primer paso, se han de activar las senales LeerMem yEscrIR. La senal IoD tiene que estar a 0 para seleccionar el PC como direccion a buscaren memoria. Para incrementar el PC se ha de poner la senal SelALUA a 0 (para enviar elPC a la ALU), SelALUB a 01 (para seleccionar el 4 como segundo operando) y ALUopa 00 (para sumar). Finalmente, para almacenar el nuevo valor del PC se debe activar lasenal EscrPC. La figura 4.44 muestra graficamente la activacion de estas senales sobre elCamino de Datos.

REG

ISTR

OS

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro deinstrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registrode datos dememoria Exten.

signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

SelALUAEscrReg

RegDestEscrIR

EscrMemLeerMem

IoD

Control

OP[31-26]

EscrPCEscrPC Cond

Mem2Reg

ControlALU

ALUopFuentePC

SelALUB

Estado 0

Inicio

LeerMemSelALUA = 0

IoD = 0EscrIREscrPC

FuentePC = 00

selALUB = 01ALUOp = 00

A Estado 1

Figura 4.44: Estado 0. Cargar instruccion

Page 46: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

46 TEMA 4. EL PROCESADOR

4.6.2. Etapa 2. Decodificacion de la instruccion y busqueda delos registros

En esta etapa (estado 1) se decodifica la instruccion, es decir, todavıa no se conoce queinstruccion se va a ejecutar. Para aprovechar el ciclo se adelantan acciones que puedanser utiles a posteriori. Por ejemplo, se leen los dos registros indicados por rs y rt yse almacenan en los registros temporales A y B. Tambien se puede calcular la direcciondestino del salto con la ALU. Dicha direccion de salto potencial se almacena en SalidaALUpara su posterior utilizacion si fuera necesario. El acceso al banco de registros y el calculode la direccion de salto se realizan en paralelo. La figura 4.36 muestra la parte del Caminode Datos que se utiliza. Para llevar a cabo estas acciones se requiere que la senal SelALUAeste a 0 (para enviar el PC a la ALU), SelALUB a 11 (para tomar el campo desplazamientode la instruccion desplazado 2 bits y con el signo extendido) y ALUOp a 00 (para calcularuna suma). La figura 4.45 muestra graficamente la activacion de estas senales sobre elCamino de Datos.

RE

GIS

TR

OS

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro deinstrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registrode datos dememoria Exten.

signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

SelALUAEscrReg

RegDestEscrIR

EscrMem

LeerMem

IoD

Control

OP[31-26]

EscrPC

EscrPC Cond

Mem2Reg

ControlALU

ALUopFuentePC

SelALUB

Estado 1

De Estado 0 SelALUA = 0selALUB = 11ALUOp = 00

Estado ?

Figura 4.45: Estado 1. Decodificacion, busqueda de los registros y calculo de la direccionde salto potencial

A partir de aquı las operaciones del Camino de Datos vienen determinadas por eltipo de instruccion. Las siguientes subsecciones describen las diferentes etapas por las quepasan cada una de las instrucciones consideradas.

Page 47: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.6. DISENO DE LA UNIDAD DE CONTROL 47

4.6.3. Instrucciones de acceso a memoria (sw o lw)

La figura 4.46 muestra los diferentes estados por los que se pasa en la ejecucion de unainstruccion de acceso a memoria, ası como las senales de control que se activan en cadapaso. En los siguientes apartados se explican con mas detalle cada una de las etapas.

De Estado 1

Estado 4

Estado 5

Acceso amemoria

Acceso amemoria

(Op = “LW”) o (Op = “SW”)

(Op = “LW”) (Op = “SW”)

Cálculodirección dememoria

Etapa de escritura

Estado 3

Estado 2

Vuelta al

Estado 0

SelALUA = 1selALUB = 10ALUOp = 00

LeerMemIoD = 1

EscrMemI0D = 1

EscrRegMem2Reg = 1RegDest = 0

Figura 4.46: Control de instrucciones de acceso a memoria

Etapa 3. Calculo de la direccion de memoria

Esta etapa se corresponde con el estado 2 de la figura 4.46. La ALU debe efectuaruna suma para calcular la direccion de memoria (ver figuras 4.31 y 4.34). Para efectuar laoperacion la senal de control SelALUA debe estar a 1 (el primer operando de la ALU esel registro A) y SelALUB a 10 (el segundo operando de la ALU son los 16 bits de menorpeso de la instruccion con el signo extendido). La senal de ALUop vale 00 para hacer unasuma.

Etapa 4. Acceso a memoria

Si la instruccion es un load, se carga una palabra de memoria y se escribe en el MDR.La direccion de memoria que se utiliza se ha calculado en el ciclo anterior y se encuentraalmacenada en SalidaALU (ver figura 4.32). Se debe activar la senal de control LeerMem y

Page 48: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

48 TEMA 4. EL PROCESADOR

poner a 1 IoD para forzar que la direccion con la que se va a acceder a la memoria provengade la ALU. El registro MDR se escribe en cada ciclo de reloj, no necesita ninguna senal decontrol de escritura explıcita. Esta etapa se corresponde con el estado 3 en la figura 4.46.

Si es un store, el operando fuente almacenado en B se escribe en la memoria en ladireccion que se encuentra almacenada en SalidaALU y que ha sido calculada en el cicloanterior (ver figura 4.35). Se ha de activar la senal de control EscrMem y poner IoD a 1para coger la direccion de memoria almacenada en SalidaALU. Esta etapa se correspondecon el estado 5 en la figura 4.46. La instruccion sw finaliza aquı, con lo cual en el siguienteciclo se volverıa al estado 0.

Etapa 5. Etapa de escritura

En esta etapa la instruccion lw se completa escribiendo el valor leıdo de memoria (al-macenado en el ciclo anterior en el registro MDR) en el banco de registros (ver figura 4.33).Para hacer esto Mem2Reg debe ponerse a 1 para escribir el resultado procedente de lamemoria, EscrReg debe activarse para escribir y RegDest debe ponerse a 0 para elegirrt (bits 16-20) como identificador de registro destino. Al finalizar se volverıa el estado 0para procesar una nueva instruccion.

4.6.4. Instrucciones aritmetico-logicas (tipo R)

La figura 4.47 muestra los diferentes estados por los que se pasa en la ejecucion deuna instruccion aritmetico-logica, ası como las senales de control que se activan en cadapaso. Las siguientes subsecciones explican en mas detalle cada una de las etapas.

Etapa 3. Ejecucion de la operacion

La ALU debe realizar la operacion aritmetico-logica especificada en el codigo de fun-cion sobre los datos leıdos del banco de registros en la etapa anterior (ver figura 4.28).Para llevar a cabo la operacion la senal de control SelALUA se tiene que poner a 1 ySelALUB debe tomar el valor 00 (para que las entradas de la ALU sean los registros Ay B respectivamente). La senal ALUop ha de estar a 10 para que la operacion a realizarpor la ALU venga determinada por el codigo de funcion. Esta etapa se corresponde conel estado 6 en la figura 4.47.

Etapa 4. Finalizacion de la operacion

El resultado de la operacion aritmetico-logica realizada en el ciclo anterior y guardadaen el registro SalidaALU se almacena en el registro destino (ver figura 4.29). La senalRegDest debe estar a 1 para forzar que el campo rd (bits 15-11) se use para seleccionarel registro donde se va a escribir; EscrReg tambien debe estar activa y Mem2Reg debe

Page 49: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.6. DISENO DE LA UNIDAD DE CONTROL 49

De Estado 1

Finalización dela operación

(Op = Aritmético-lógica)

Ejecución de laoperación

Estado 7

Estado 6

Vuelta al

Estado 0

SelALUA = 1selALUB = 00ALUOp = 10

RegDest = 1EscrReg

Mem2Reg=0

Figura 4.47: Control de instrucciones aritmetico-logicas

estar a 0 para que se escriba la salida de la ALU en lugar del dato obtenido de memoria.Esta etapa se corresponde con el estado 7 en la figura 4.47.

4.6.5. Instrucciones de salto condicional (beq)

Esta instruccion necesita solamente una etapa mas, etapa 3. En esta etapa, la ALUse utiliza para efectuar la comparacion de igualdad entre los dos registros leıdos en elpaso anterior. La senal de Cero de la ALU se utiliza para determinar si el salto se tomao no (ver figuras 4.37 y 4.38). La senal SelALUA esta a 1 y SelALUB a 00 para tomarlas salidas del banco de registros como entradas de la ALU. La senal ALUop esta a 01para realizar la resta y efectuar ası la comprobacion de igualdad. La senal EscrPCCondesta activa para ası modificar el PC en caso de que la senal de Cero de la ALU tambienlo este. La senal FuentePC esta a 01 indicando que el valor a escribir en el registro dePC es almacenado en SalidaALU, el cual guarda la direccion de destino de salto que secalculo en la etapa previa.

La figura 4.48 muestra el estado correspondiente a esta etapa, estado 8. Una vezfinalizado se vuelve al estado 0 para procesar la siguiente instruccion.

4.6.6. Instruccion de salto incondicional (jump)

Si lo que tenemos es una instruccion de salto incondicional, en la tercera etapa el PCse sustituye por la direccion de salto incondicional (ver figura 4.39). FuentePC se pone a

Page 50: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

50 TEMA 4. EL PROCESADOR

De Estado 1

(Op = “beq”)

Finalizaciónde salto condicional

Estado 8

Vuelta al

Estado 0

SelALUA = 1selALUB = 00ALUOp = 01EscrPCCond

FuentePC = 01

Figura 4.48: Control de instrucciones de salto condicional (beq)

10 y EscrPC se activa para escribir dicha direccion de salto en el PC. La instruccion jumprequiere un unico estado adicional, el estado 9 (ver figura 4.49).

De Estado 1

(Op = “j”)

Finalizaciónde jump

Estado 9

Vuelta al

Estado 0

EscrPCFuentePC = 10

Figura 4.49: Control de instrucciones de salto incondicional (j)

4.6.7. Automata de control completo

La figura 4.50 muestra el automata de control completo. A partir de la definicion deeste automata, existen dos formas de abordar el diseno de la unidad de control: unidadde control cableada y unidad de control microprogramada.

La unidad de control cableada se construye utilizando alguno de los metodos clasicosde diseno de circuitos secuenciales como el que hemos visto en el tema 3. En la unidad decontrol microprogramada se utiliza una memoria de control para almacenar el estado de lasdiferentes senales de control durante cada uno de los ciclos de ejecucion de una instruccion.La implementacion es sencilla y estandar, el hardware es practicamente independiente dela implementacion. La Unidad de Control microprogramada es facil de depurar, modificary ampliar, por lo que es la mejor opcion para sistemas grandes y/o complejos.

Como ya hemos visto el metodo de diseno cableado, a continuacion estudiaremos launidad de control microprogramada.

Page 51: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.7. CONTROL MICROPROGRAMADO 51

Estado 0

Inicio

LeerMemSelALUA = 0

IoD = 0EscrIREscrPC

FuentePC = 00

selALUB = 01ALUOp = 00

Estado 1

SelALUA = 0selALUB = 11ALUOp = 00

(Op = “LW”) o (Op = “SW”)

Estado 4

Estado 5

Acceso amemoria

Acceso amemoria

(Op = “LW”) (Op = “SW”)

Cálculodirección dememoria

Etapa de escritura

Estado 3

Estado 2

SelALUA = 1selALUB = 10ALUOp = 00

LeerMemIoD = 1

EscrMemI0D = 1

EscrRegMem2Reg = 1RegDest = 0

Finalización dela operación

(Op

=Arit

m-L

ógic

as)

Ejecución de laoperación

(Op

=“beq”)

Finalizaciónde salto condicional

Estado 8

SelALUA = 1selALUB = 00ALUOp = 01EscrPCCond

FuentePC = 01

(Op = “j”)

Finalizaciónde jump

Estado 9

EscrPCFuentePC = 10

Estado 7

Estado 6

SelALUA = 1selALUB = 00ALUOp = 10

RegDest = 1EscrReg

Mem2Reg=0

Figura 4.50: Automata de control completo para el Camino de Datos de la figura 4.41

4.7. Control microprogramado

El automata se transforma en un programa de control formado por instrucciones decontrol llamadas microinstrucciones. Cada microinstruccion define el conjunto de senalesde control del Camino de Datos que deben estar activas en un estado determinado. Laejecucion de una microinstruccion tiene como efecto la activacion de las senales de controlespecificadas por dicha microinstruccion. Ademas de definir que senales deben estar acti-vas, tambien se debe especificar la secuencia, es decir, cual es la siguiente microinstrucciona ejecutar.

El conjunto de las microinstrucciones se denomina microprograma y se almacenara enuna memoria de solo lectura, como por ejemplo una ROM. Cada microinstruccion ten-dra asignada una direccion en dicha memoria. La figura 4.51 muestra una implementaciontıpica de una seccion de control microprogramada. Ademas de la memoria de control paraalmacenar las microinstrucciones, se necesita un secuenciador encargado de ir generandolas direcciones de las siguientes microinstrucciones a ejecutar y que veremos mas adelantecomo implementar. La siguiente microinstruccion a ejecutar dependera de la instruccionmaquina que se este ejecutando en el Camino de Datos y de la condiciones generadas porel Camino de Datos.

Existen dos forma de realizar el secuenciamiento de la memoria de control:

Page 52: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

52 TEMA 4. EL PROCESADOR

Reloj

.......

Registro de Microinstruccion

Memoria de Control

(ROM)

Secuenciador

Señales de control

Codigo operacion

Condiciones camino datos

Figura 4.51: Esquema de una unidad de control microprogramada

Secuenciamiento explıcito: cada microinstruccion incluye la direccion de la micro-instruccion siguiente.

Secuenciamiento implıcito: existen dos tipos de microinstrucciones, de control yde salto. Dentro de cada microinstruccion se reserva un campo para especificar eltipo de microinstruccion. Por defecto la siguiente microinstruccion a ejecutar es lasiguiente, es decir, la que ocupa la posicion de memoria consecutiva. Para ejecutarotra microinstruccion necesitaremos incluir una instruccion de salto.

Nosotros vamos a ver como construir una unidad de control con secuenciamientoexplıcito para el conjunto basico de instrucciones MIPS consideradas. Cada estado delautomata de control de la figura 4.50 se va a corresponder con una microinstruccion.

Para llevar a cabo el secuenciamiento tenemos que tener en cuenta el diagrama deestados del automata de control. En general:

Tras terminar una instruccion se ha de retornar al estado 0.

Las instrucciones solamente tienen algunos estados en comun, despues divergen.

Esta divergencia puede ocurrir en varios lugares en el diagrama de estados.

Existen, por tanto, tres metodos posibles para la eleccion de la siguiente microinstruc-cion a ejecutar:

Page 53: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.7. CONTROL MICROPROGRAMADO 53

1. Incrementar la direccion de la microinstruccion actual para obtener la de la siguiente.

2. Saltar a la microinstruccion que inicia la ejecucion de la siguiente instruccion.

3. Elegir la siguiente microinstruccion en funcion del estado en el que nos encontre-mos. Esta eleccion en base al estado recibe el nombre de dispatch. Las operacionesde dispatch suelen realizarse mediante una tabla que contenga las direcciones delas microinstrucciones destino. Esta tabla se suele realizar en una ROM denomina-da ROM de envıo. En el caso general, crearemos una tabla para cada estado conmultiples estados destino. Para la implementacion de las instrucciones basicas delMIPS que hemos considerado en este capıtulo se necesitan dos tablas, una para ele-gir la siguiente microinstruccion despues del estado 1 y otra para elegir la siguientemicroinstruccion despues del estado 2 (ver figura 4.50).

Por lo tanto, para el conjunto basico de instrucciones MIPS consideradas necesitamos2 bits (CtrlDir) para especificar como elegir la siguiente microinstruccion a ejecutar. Lasopciones posibles son:

CtrlDir=00: Va a la primera microinstruccion para comenzar una nueva instruccion.

CtrlDir=01: Selecciona la siguiente microinstruccion utilizando la tabla de envıo 1.

CtrlDir=10: Selecciona la siguiente microinstruccion utilizando la tabla de envıo 2.

CtrlDir=11: Selecciona la siguiente microinstruccion (secuencia normal).

Vamos a suponer la implementacion mas sencilla, cada punto de control del Caminode Datos se corresponde con un bit de las microinstrucciones, es decir, cada una de lasmicroinstrucciones constan de 18 bits (1 bit por cada punto de control del Camino deDatos y 2 bits para especificar la siguiente microinstruccion)1.

La implementacion de la Unidad de Control microprogramada completa puede verseen la figura 4.52. El microprograma se almacena en una memoria de solo lectura (ROM).El registro de estado almacena la direccion de la microinstruccion a acceder. La funcionde secuenciacion se realiza aparte en funcion de CtrlDir y el codigo de operacion de lainstruccion. La figura 4.53 muestra una posible implementacion de la logica de seleccionde direccion. Un mux selecciona en funcion de CtrlDir si aumentar la direccion actual(se utiliza un sumador para realizar el incremento), utilizar las tablas de envıo 1 o 2, osaltar a la microinstruccion 0 para empezar el procesamiento de una nueva instruccion. Laseleccion de la entrada en las tablas de envıo se hace en funcion del codigo de operacionde la instruccion.

Finalmente, la figura 4.54 muestra el contenido de la memoria de control, es decir, elmicroprograma completo correspondiente al automata de control de la figura 4.50. Ca-da microinstruccion representa un estado del automata de control y define las senales de

1Los puntos de control podrıan estar codificados para ahorrar bits en las microinstrucciones. Encontrapartida se necesitarıa incluir un decodificador.

Page 54: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

54 TEMA 4. EL PROCESADOR

Salidas

Entradas

Código de operaciónBits [31-26] del

registro de instrucción

Registro de estado

CtrlDir (2)

Sumador

14

FuentePC (2)ALUop (2)SelALUASelALUB (2)EscrRegRegDestEscrPC condEscrPCIoDLeerMemEscrMemMem2RegEscrIR

Selección

2

Lógica de Control (ROM)

dirección siguiente

Figura 4.52: Unidad de control microprogramada

Entradas

Código de operaciónBits [31-26] del

registro de instrucción

Registro de estado

CtrlDir

Sumador

14

MUX3 2 1 0

Selección

Tabla de envío 2 Tabla de envío 1

dirección siguiente

ROM

2

Figura 4.53: Logica de seleccion de direccion para la unidad de control de la figura 4.52

Page 55: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.7. CONTROL MICROPROGRAMADO 55

control activas en ese estado, ası como la siguiente microinstruccion a ejecutar. Las instruc-ciones del microprograma se etiquetan simbolicamente. Estas etiquetas seran utilizadaspara especificar los contenidos de las tablas de envıo. Un campo en blanco correspondientea una senal que afecta al control de una unidad de estado significa que la senal de controlasociada no debe activarse. Un campo en blanco correspondiente a una senal de controlde un MUX o al control de operacion de la ALU significa que la salida no se usa, por loque las senales asociadas pueden considerarse indiferentes.

0

Reg

Des

t

Mem

2Reg

SelA

LU

A

Esc

rReg

000 1

030

3

1

10 2

estado 0

estado 9

estado 8

estado 7

estado 6

estado 5

estado 4

estado 3

estado 2

estado 1

11 0

3

0

0

12 30

11 0

111 0 0

2 0

AL

UO

p (2

)

Ctr

lDir

(2)

SelA

LU

B (

2)

Fuen

tePC

(2)

1101

11

11

1

Esc

rIR

Esc

rMem

Lee

rMem

IoD

Esc

rPC

Con

d

Esc

rPC

Rformat1

Sw2

Mem1

Beq1

Jump1

2

Lw2

1

Figura 4.54: Microprograma para las instrucciones basicas del MIPS

En la figura 4.55 se pueden ver las dos tablas de envıo mostrando el contenido en formasimbolica utilizando las etiquetas del microprograma. Dependiendo de la instruccion quese este ejecutando en el Camino de Datos se saltara a una u otra microinstruccion de lamemoria de control.

Page 56: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

56 TEMA 4. EL PROCESADOR

Figura 4.55: Tablas de envıo para el microprograma de la figura 4.54

4.8. Temporizacion

En el diseno propuesto cada instruccion se divide en una serie de etapas, correspon-diendose cada una de ellas con un estado de la unidad de control, es decir, cada etapanecesitara un ciclo de reloj para ejecutarse. La figura 4.56 resume las etapas realizadaspara ejecutar cualquier tipo de instruccion y el cuadro 4.4 el numero de ciclos consumidopor cada instruccion o CPI (Clock Cycles per Instruction).

Figura 4.56: Resumen de las etapas realizadas para ejecutar cualquier tipo de instruccion

El ciclo de reloj debe acomodarse al tiempo de las operaciones del Camino de Datosque se realizan en las diferentes etapas: acceso a memoria, acceso al banco de registros ouna operacion de la ALU. El ciclo de reloj deberıa ser al menos tan largo como la maslarga de las operaciones anteriores. Si suponemos, por ejemplo, que se necesitan 2.5 nspara la lectura de memoria, 3 ns para la escritura en memoria, 2 ns para que la ALU llevea cabo una operacion y 1 ns para el acceso a los registros (lectura y escritura), el ciclo dereloj deberıa ser al menos de 3 ns. En este caso, tardarıamos 12 ns (4× 3 ns) en ejecutaruna instruccion aritmetica.

Page 57: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.9. PROCESAMIENTO DE EXCEPCIONES 57

Tipo de instruccion CiclosAritmetica 4lw 5sw 4salto condicional 3jump 3

Cuadro 4.4: Resumen del numero de ciclos por instruccion

4.9. Procesamiento de excepciones

Una excepcion es un suceso inesperado que se produce en el procesador, por ejemploel desbordamiento aritmetico. Una interrupcion es un suceso que provoca un cambioinesperado, pero se produce externamente al procesador. Las interrupciones son utilizadaspor los dispositivos de Entrada/Salida para comunicarse con el procesador, como se vera enel siguiente capıtulo.

En la implementacion basica de las instrucciones del MIPS que hemos consideradopueden ocurrir dos tipos de excepciones: la ejecucion de una instruccion no definida y undesbordamiento aritmetico.

Las acciones que se han de llevar a cabo cuando ocurre una excepcion son:

Guardar la direccion de la instruccion causante en el registro contador de programade la excepcion (EPC).

Transferir el control al sistema operativo en alguna direccion especıfica.

El sistema operativo ejecuta una rutina especıfica.

Finalizar el programa o continuar con su ejecucion, usando EPC para saber donderetomar la ejecucion.

Para que el sistema operativo pueda tratar la excepcion, debe conocer las razonespor las que se ha producido, ademas de la instruccion que la ha causado. El metodoempleado en la arquitectura MIPS para comunicar la causa es incluir un registro de estadodenominado Registro de Causa o Cause Register, que contiene un campo que indica larazon de la excepcion.

Se puede incluir el procesamiento de excepciones a la unidad central de proceso pre-viamente disenada anadiendo algunos registros extra y algunas senales de control. Enconcreto, se tendran que anadir 2 registros adicionales al Camino de Datos:

EPC: Registro de 32 bits para guardar la direccion de la instruccion afectada.

Page 58: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

58 TEMA 4. EL PROCESADOR

Causa: Registro de 1 bit para almacenar la causa (instruccion no definida=0, des-bordamiento aritmetico=1).

En cuanto a las senales de control, necesitaremos dos senales de control para que se es-criban el EPC y el Registro de Causa llamadas EscrEPC y EscrCausa respectivamente.Ademas, tambien se necesita una senal de control de 1 bit para fijar el valor del Regis-tro de Causa, es decir, para fijar el tipo de excepcion. Esta senal recibe el nombre deCausaInt. Finalmente, se tiene que poder escribir la direccion del punto de entrada delsistema operativo para el tratamiento de la excepcion en el PC. Supondremos en nuestraimplementacion que esta direccion es la C0000000hex. Actualmente, el PC esta conecta-do a la salida de un multiplexor de cuatro entradas controlado por la senal FuentePC(ver figura 4.41). De las cuatro entradas solamente se utilizan tres. Podemos por tantoanadir una entrada adicional con el valor constante C0000000hex. La figura 4.57 muestrael Camino de Datos con los elementos necesarios para el procesamiento de excepciones.

SelALUAEscrReg

RegDestEscrIR

EscrMem

LeerMem

IoD

Control

OP[31-26]

EscrPC

EscrPC Cond

Mem2Reg

ALUopFuentePC

EscrEPCCausaInt

EscrCausa

SelALUB

RE

GIS

TR

OS

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro deinstrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registrode datos dememoria Exten.

signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

26

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

28

Mux

0

1

0

1

Causa

16 32

Saltoincond. [31-0]

C0000000

Mux

0

1

2

3

Cero

ResultadoALU

ALU

SalidaALU EPC

ControlALU

Figura 4.57: Camino de Datos con los componentes adicionales necesarios para realizarlas excepciones

Las acciones a tomar durante el procesamiento de una excepcion seran escribir enel Registro Causa un 0 o un 1 para indicar el tipo de excepcion y guardar la direccionde la instruccion causante de la excepcion en el registro EPC. Debido a que el PC seincrementa durante el primer ciclo de cada instruccion, para guardar la direccion de lainstruccion causante de la excepcion en el registro EPC tenemos que utilizar la ALU pararestarle 4 al PC. La figura 4.58 muestra como se utiliza el Camino de Datos anterior parael procesamiento de una excepcion.

Por tanto, para tratar los dos tipos de excepciones que se estan considerando, solose han de anadir los dos estados mostrados en la figura 4.59. Cada estado proporciona

Page 59: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.9. PROCESAMIENTO DE EXCEPCIONES 59

SelALUAEscrReg

RegDestEscrIR

EscrMem

LeerMem

IoD

Control

OP[31-26]

EscrPC

EscrPC Cond

Mem2Reg

ALUopFuentePC

EscrEPCCausaInt

EscrCausa

SelALUB

RE

GIS

TR

OS

Reg. delectura 1

Dato aescribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro deinstrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registrode datos dememoria Exten.

signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

26

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

28

Mux

0

1

0

1

Causa

16 32

Saltoincond. [31-0]

C0000000

Mux

0

1

2

3

Cero

ResultadoALU

ALU

SalidaALU EPC

ControlALU

Figura 4.58: Camino de Datos: procesamiento de excepciones

el control para tres acciones: activar el Registro de Causa, obtener la direccion de lainstruccion que ha provocado la excepcion y guardarla en el EPC, poner en el PC ladireccion para el procesamiento de la excepcion por parte del sistema operativo. El controlse transfiere a uno de estos estados cuando sucede una excepcion. Cuando estos estadosfinalizan, el control se transfiere al estado 0 y se carga una nueva instruccion.

Estado 10CausaInt=0EscrCausa

SelALUA = 0

EscrPCFuentePC = 11

selALUB = 01ALUOp = 01

EscrEPC

Estado 11CausaInt=1EscrCausa

SelALUA = 0

EscrPCFuentePC = 11

selALUB = 01ALUOp = 01

EscrEPC

Al Estado 0

Inicio de una nueva

instrucción

Figura 4.59: Par de estados que muestran las acciones necesarias para las dos excepcionesconsideradas

Ahora falta detectar estas excepciones y transferir el control al estado apropiado. Cadauna de las dos excepciones posibles se detecta de forma diferente:

Instruccion no definida: Se detecta cuando no esta definido el estado siguiente alestado 1 para ese codigo de operacion. Esta excepcion se trata definiendo comosiguiente estado el estado 11 de la figura 4.59 para todos los codigos de operacionno definidos.

Page 60: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

60 TEMA 4. EL PROCESADOR

Desbordamiento aritmetico: La ALU tiene una senal de salida de desbordamiento.Esta senal se utiliza para pasar del estado 6 al estado 10 de la figura 4.59.

La figura 4.60 muestra la maquina de estados finita con los estados adicionales paratratar la deteccion de excepciones.

Estado 0

Inicio

Estado 1

Estado 4

Estado 5

Acceso amemoria

Acceso amemoria

Cálculodirección dememoria

Etapa de escritura

Estado 3

Estado 2

Finalización dela operación

Ejecución de laoperación

Finalizaciónde salto condicional

Estado 8 Estado 9

Estado 7

Estado 6

Estado 10Estado 11

Desbordamiento

Finalizaciónde jump

LeerMemSelALUA = 0

SelALUB = 01ALUop = 00

IoD = 0EscrIREscrPC

FuentePC = 00

SelALUA = 0SelALUB = 11ALUop = 00

SelALUA = 1SelALUB = 10ALUop = 00

SelALUA = 1SelALUB = 00ALUop = 10

SelALUA = 1SelALUB = 00ALUop = 01EscrPCCondFuentePC=01

EscrPCFuentePC=10

LeerMemIoD = 1

EscrMemIoD = 1

RegDest = 1EscrReg

Mem2Reg = 0

CausaInt = 0EscrCausa

SelALUA = 0SelALUB = 01ALUop = 01

EscrEPCEscrPC

FuentePC = 11

CausaInt = 1EscrCausa

SelALUA = 0SelALUB = 01ALUop = 01

EscrEPCEscrPC

FuentePC = 11

EscrRegMem2Reg = 1RegDest = 0

Op = swO

p =

Arit.

-Lóg

ica

Op = beq

Op = otros

Op = j

Op = lw Op = sw

Figura 4.60: Maquina de estados finitos completa

Tendremos que hacer algunas modificaciones en la seccion de control microprogramadapara incorporar los dos nuevos estados. Ademas de anadir las 2 nuevas microinstrucciones,una correspondiente al estado 10 y otra al 11, tendremos que modificar la tabla de envıo1 para considerar otros codigos de operacion (ver cuadro 4.5) y anadir una tercera tablapara tener en cuenta la bifurcacion en el estado 6 (ver cuadro 4.6).

Ahora CtrlDir puede tomar 5 valores diferentes, por lo que necesitamos ampliar estasenal a 3 bits. CrtlDir = 4 se correspondera con la seleccion de la siguiente microinstruc-cion utilizando la tabla de envıo 3. Tambien tendremos que anadir las senales de controlCausaInt, EscrCausa y EscrEPC. Pasarıamos, por tanto, a tener microinstrucciones detamano 22 bits. La figura 4.61 muestra el contenido de la memoria de control completa.

Page 61: Tema 4 EL PROCESADOR - QueGrande.orgquegrande.org/apuntes/grado/1G/FCG/teoria/10-11/tema_4_-_el_procesador.pdf · principal, el subsistema de entrada/salida y algunos medios de interconexi

4.9. PROCESAMIENTO DE EXCEPCIONES 61

Codigo de operacion instruccion Valor000000 Tipo R Rformat1000010 jmp JUMP1000100 beq BEQ1100011 lw Mem1101011 sw Mem 1otro otra Nodef1

Cuadro 4.5: Tabla de envıo 1 para el automata de la figura 4.60

senal de desbordamiento valor0 Arit31 Ov3

Cuadro 4.6: Tabla de envıo 3 para el automata de la figura 4.60

0

estado 9

estado 8

estado 7

estado 6

estado 5

estado 4

estado 3

estado 2

estado 1

estado 10

estado 11

Reg

Des

t

Mem

2Reg

SelA

LU

A

Esc

rReg

000 1

030

3

1

10 2

11 0

3

0

0

12 0

11 0

111 0 0

2 0

AL

UO

p (2

)

SelA

LU

B (

2)

Fuen

tePC

(2)

1101

11

11

1

Esc

rIR

Esc

rMem

Lee

rMem

IoD

Esc

rPC

Con

d

Esc

rPC

Rformat1

Sw2

Mem1

Beq1

Jump1

2

Lw2

1

0

4

Arit3

Ov3

Nodef1

Cau

saIn

t

ESc

rCau

sa

Esc

rEPC

1

0 1 1

1 1

0111 3

0111 3

Ctr

lDir

(3)

0

estado 0

Figura 4.61: Microprograma correspondiente al automata de la figura 4.61