Está en la página 1de 55

Estructura de Computadores

Tema 4: El procesador. Ruta de datos y control.

1ª parte: diseño uniciclo

LECTURAS OBLIGATORIAS:
D. A. Patterson, J.L. Hennessy, “Estructura y Diseño de Computadores”:
Apartados 5.1 a 5.3.
BIBLIOGRAFÍA DE CONSULTA DEL TEMA:
D. A. Patterson, J.L. Hennessy, “Estructura y Diseño de Computadores”: Capítulo 5.
Tema 5: El procesador. Ruta de datos y control

Índice:
• 4. El procesador
•4.1. Introducción y ejemplos sencillos
•4.2. Construcción del camino de datos
•4.3. Realización de un esquema simple
•4.3.1 Camino de datos
•4.3.1 Control

CUM (UEX) 2019 - 2020 JPM


Tema 5: El procesador. Ruta de datos y control
5.1. Introducción
Dos fases en el estudio del procesador:

1. Ruta de Datos: elementos necesarios para la ejecución de las


instrucciones y su interconexión.

2. Unidad de Control: parte del procesador que gestiona y dirige


todas las operaciones que éste realiza.

• Factores que afectan a la realización de un procesador:

• Juego de instrucciones

• Número de ciclos de reloj por instrucción

• Las unidades funcionales del computador se implementan a


partir de elementos lógicos:

• Combinacionales (salidas dependen de entradas actuales)

• Secuenciales (contienen estados: memorias, registros,…)

• Metodología de sincronización: cuando pueden escribirse y leerse las


diferentes señales. Escritura por flanco.
CUM (UEX) 2019 - 2020 JPM 1
Tema 5: El procesador. Ruta de datos y control
5.1. Introducción
Metodología de sincronización:
Lógica combinatoria entre 2 elementos de estados, que opera en un
único ciclo de reloj (toda señal desde 1 hasta 2 debe propagarse en un ciclo)

CICLO RELOJ

Lectura de elem. Estado 1.


Envío mediante elemento combinacional.
Escritura en elem. Estado 2.
Estabilización señales lógica combinacional

CUM (UEX) 2019 - 2020 JPM 2


Tema 5: El procesador. Ruta de datos y control
5.1. Introducción
Metodología de sincronización:

Sincronización por flanco: permite la lectura, envío del valor (a través de lógica
combinacional) y escritura sobre un mismo registro (siempre que el ciclo sea lo
Suficientemente largo como para que las entradas sean estables en el flanco elegido.

No existe la realimentación dentro de un mismo ciclo (pues las entradas del bloque
Combinatorio solo pueden modificarse en el flanco elegido).

CUM (UEX) 2019 - 2020 JPM 3


Tema 5: El procesador. Ruta de datos y control
5.1. Introducción
Ejemplo circuito combinacional:

Unidad Aritmético-Lógica:

ALU à circuito combinacional que realiza una serie de microoperaciones aritméticas y


lógicas.

A0
Entradas y salidas: A A1
A2
A y B: operandos de entrada de 4 bits A3

F: operando de salida de 4 bits B0 F0

B
B1 ALU F1
F
S2: distingue entre operaciones aritméticas y B2 F2
lógicas B3 F3

Acarreo entrada Acarreo salida


S0 y S1: tipo de op. lógica o aritmética a realizar CIN COUT
Selección

CIN y COUT: solo adquieren sentido en las S0


operaciones aritméticas S1
S2

CUM (UEX) 2019 - 2020 JPM 4


Tema 5: El procesador. Ruta de datos y control
5.1. Introducción
Unidad procesadora.

Ejemplo de Unidad Aritmético-Lógica:

Operaciones Lógicas
S2 S1 S0 CIN Operación Función
1 0 0 0 F = A and B AND
1 0 1 0 F = A or B OR
1 1 0 0 F = A xor B XOR
1 1 1 0 F = not A NOT
Operaciones Aritméticas
S2 S1 S0 CIN Operación Función
0 0 0 0 F=A Transferencia
0 0 0 1 F = A +1 Incremento
0 0 1 0 F=A+B Suma
0 0 1 1 F=A+B+1 Suma con acarreo
0 1 0 0 F = A + not ( B) Resta C-1
0 1 0 1 F = A + not (B) + 1 Resta C-2
0 1 1 0 F=A–1 Decremento
0 1 1 1 F=A Transferencia

CUM (UEX) 2019 - 2020 JPM 5


Tema 5: El procesador. Ruta de datos y control
5.1. Introducción
Unidad procesadora.

Diseño de la ALU para una arquitectura concreta: MIPS R-2000:

Requisitos iniciales:

Add, AddU, Sub, SubU, AddI, AddIU à Sumador/Restador en C-2 con detección de overflow.

And, Or, AndI, OrI à Circuito que realice las operaciones AND y OR lógicas.

Slt, SltI, SltIU à (set-less-than) pone a 1 un determinado registro si el primer operando es menor que el
segundo à Circuito sumador en C-2 con inversor, comprobar signo resultado.

Formato de las instrucciones aritméticas y lógicas: (las veremos en detalle más adelante)

TIPO R (registro) cod. oper rs rt rd shamt funct

TIPO I (inmediato) cod. oper rs rt Desp/inmediato.

Instrucc. OPCODE FUNCT Instrucc. OPCODE FUNCT Instrucc. OPCODE FUNCT


ADD 00 32 ADDI 08 xx SLT 00 42
ADDU 00 33 ADDIU 09 xx SLTU 00 43
SUB 00 34 SLTI 10 xx
SUBU 00 35 SLTIU 11 xx
AND 00 36 ANDI 12 xx
OR 00 37 ORI 13 xx

CUM (UEX) 2019 - 2020 JPM 6


Tema 5: El procesador. Ruta de datos y control
5.1. Introducción
Unidad procesadora.

Diseño de la ALU para una arquitectura concreta: MIPS R-2000:

Filosofía: dividir el problema en pequeños problemas, solucionarlos y unir las soluciones


(modularidad).

Dejaremos para otro módulo la lógica de extensión de signo y de 0, por lo que los sufijos I e
IU no se tratarán. Esto reduce nuestro subconjunto de operaciones a implementar a:

Add, addu, sub, subu, and, or, xor, nor, slt y sltu à 10 operaciones (4 bits)

32 32
Entradas: operandos A y B à 2 x 32 bits; modo de 4 bits
A B
Salidas: resultado S à 32 bits; 1 bit detección de 0; 1 bit 4
c m
overflow
ovf ALU
Operaciones: add, addu, sub, subu, and, or, xor, nor, slt, sltu 32
S

CUM (UEX) 2019 - 2020 JPM 7


Tema 5: El procesador. Ruta de datos y control
5.1. Introducción
Unidad procesadora.

Diseño de la ALU para una arquitectura concreta: MIPS R-2000:

Alternativas de diseño:

32 ALU’s de 1 bit en serie: el resultado de la ALUi depende del acarreo de salida de la ALUi-1.
Sumador de propagación de arrastre.

• 32 ALU’s en paralelo con acarreo anticipado (CLA = carry look ahead). Se evalúa el acarreo
antes de realizar la suma de todas las ALU’s a la vez (Trabajo ECTS)

• ….
A 32 B 32

a31 b31 a31 b31


4
Primera aproximación (SERIE)
m m
cOUT s
31 cIN cOUT s
31 cIN M

ovflw
S 32

CUM (UEX) 2019 - 2020 JPM 8


Tema 5: El procesador. Ruta de datos y control
5.1. Introducción
Unidad procesadora.

Diseño de la ALU para una arquitectura concreta: MIPS R-2000:

Primera aproximación (SERIE): empezamos por la suma

Entradas Salidas a
XOR Suma
a b Suma Carry out b
0 0 0 0
0 1 1 0 AND Carry out
1 0 1 0
1 1 0 1 Semisumador de 1 bit

ci Si
Semisumador
ai s de 1 bit c
Semisumador Ci +1
OR
bi de 1 bit c

Sumador total de 1 bit

CUM (UEX) 2019 - 2020 JPM 9


Tema 5: El procesador. Ruta de datos y control
5.1. Introducción
Unidad procesadora.

Diseño de la ALU para una arquitectura concreta: MIPS R-2000:


Entadas Salidas
Primera aproximación (SERIE): empezamos por la suma
a b cin sum cout
ai bi
0 0 0 0 0
0 0 1 1 0
ci ci +1
Sumador total 1 bit 0 1 0 1 0
0 1 1 0 1
si 1 0 0 1 0
1 0 1 0 1
Combinando el sumador obtenido con una puerta AND y otra 1 1 0 0 1
OR (seleccionando la salida con un multiplexor) tenemos:
Cin 1 1 1 1 1

A AND

RESULT
M
OR U
X
Sumador
1 bit
B
Cout

CUM (UEX) 2019 - 2020 JPM 10


Tema 5: El procesador. Ruta de datos y control
5.1. Introducción

Unidad procesadora.

Diseño de la ALU para una arquitectura concreta: MIPS R-2000:

Primera aproximación (SERIE): añadimos la resta

Para introducir también la operación de resta A – B bastará con poder realizar la op. A + Ca(2)(B) = A +
Ca(1)(B) + 1 y para realizar el Ca(1) de B basta con introducir una puerta XOR y una señal una señal
Binvert. (que se encarga del not(B), mientras que el + 1 viene por CIN)

Sselect Sselect
Binvert Cin Cin
Binvert
A AND
A AND

RESULT RESULT
M M
OR U OR U
B 0 X X
Sumador Sumador
1
1 bit 1 bit
XOR
B
Cout Cout

CUM (UEX) 2019 - 2020 JPM 11


Tema 5: El procesador. Ruta de datos y control
5.1. Introducción

Unidad procesadora.

Diseño de la ALU para una arquitectura concreta: MIPS R-2000:

Primera aproximación (SERIE): añadimos la operación slt (set on less than)

• Produce un 1 si rs < rt y un 0 en caso contrario à Poner todo a 0’s menos el bit menos
significativo

• Con una resta (a – b) < 0 à ((a-b)+b)<(0+b) à a < b


S select
B invert C in

A
AND

M
OR RESULT
B 0 U
Sumador
1
1 bit
X
less C out

CUM (UEX) 2019 - 2020 JPM 12


Tema 5: El procesador. Ruta de datos y control
5.1. Introducción
Unidad procesadora.

Diseño de la ALU para una arquitectura concreta: MIPS R-2000:

Primera aproximación (SERIE): añadimos la operación slt (set on less than)


Para poner el bit menos significativo a 1 à Conectamos la salida del MSB al LSB y el resto a 0’s
mediante la entrada less
CIN Se espera q el bit menos
Binvert Operación 0 0 0 … 0 1 si a < b significativo sea 1 si a< b; lo que
0 0 0 … 0 0 en otro caso equivale a poner 1 si a-b es
a0 CIN negativo ó 0 si a-b es positivo
b0 Result0
ALU 0
less
bit de signo (a31 y b31)
COUT

Basta con conectar el bit de signo de la salida del último


a1 CIN

b1 Result1 sumador al bit menos significativo.


ALU 1
0
less
COUT

PROBLEMA: La salida resultado del bit más significativo para


slt no es la salida del sumador (sino el valor de la entrada less).

Por esto, se necesita una ALU especial para ese último bit con
una salida extra: la salida del sumador, que llamamos set. Ya
a31 CIN
Result31 que es una ALU nueva, aprovechamos para añadirle la
b31
ALU 31 set detección del desbordamiento.
0
less overflow
COUT

CUM (UEX) 2019 - 2020 JPM 13


Tema 5: El procesador. Ruta de datos y control
5.1. Introducción
Unidad procesadora.

Diseño de la ALU para una arquitectura concreta: MIPS R-2000:

Detección del desbordamiento

Ejemplo con números de 4 bits: el desbordamiento ocurre cuando CARRY OUTMSB distinto de CARRYINMSB

0 1 1 1 1 0
0 1 1 1 7 1 1 0 0 -4
+ 0 0 1 1 3 + 1 0 1 1 -3

1 0 1 0 -6 0 1 1 1 7
Luego para una ALU de N bits: OVERFLOW = CARRY_IN [N-1] XOR CARRY_OUT [N-1]
CIN0

a0 1-bit
b0 ALU resultado0
X Y X xor Y CIN1
COUT0 resultado1
resultado2
0 0 0 a1 1-bit OR


b1 ALU
0 1 1 resultado31
CIN2 COUT1
1 0 1
a2 1-bit
1 1 0 b2 ALU La detección de cero es aún más sencilla
CIN3 COUT2
a3 1-bit XOR overflow
b3 ALU
COUT3

CUM (UEX) 2019 - 2020 JPM 14


Tema 5: El procesador. Ruta de datos y control
5.1. Introducción
Unidad procesadora.

Ejemplos de computadores sencillos de propósito general: Máquina Simple.

Computadores capaces de ejecutar un conjunto de instrucciones.

La Unidad Procesadora en función del conjunto de instrucciones. Unidad de Control en función de las
señales de control necesarias para controlar el funcionamiento de los elementos de la Unidad
Procesadora.

Ejemplo de diseño: Máquina Simple (propuesta en el libro “Estructura de Computadores” de J.M.


Angulo. Tiene 6 instrucciones à SUMA, RESTA, AND, COMPARAR, MOVER y SALTAR.

Tiene un único formato de instrucción:

Una instrucción 32 bits à 2 palabras de memoria. COP DESTINO FUENTE


3 13 16
16 16

3 bits à 23 = 8 instrucciones Operando Destino (D): Operando Fuente (F):


Suficientes para 6 instrucciones. Direccionamiento directo. Direccionamiento inmediato.

CUM (UEX) 2019 - 2020 JPM 15


Tema 5: El procesador. Ruta de datos y control
5.1. Introducción
Unidad procesadora.

Ejemplos de computadores sencillos de propósito general: Máquina Simple.

Directo (D): contenido de la dirección de


memoria D.
Repertorio de Instrucciones a Ejecutar:
COP NEMÓNICO DESCRIPCIÓN FUNCIÓN Inmediato F: contenido de la segunda
000 ADD D,F Suma (D) ß F + (D) palabra de la instrucción.
001 MOV D,F Mover (D) ß F
Z: biestable de estado.
010 SUB D,F Resta (D) ß F – (D)
011 AND D,F Producto Lógico (D) ß F AND (D) El registro de instrucción RI tiene 16 bits:
100 CMP F,D Comparar si F – (D) = 0 à z = 1
3 bits del COP à entrada a la U.C.
sino à z = 0
13 bits del DESTINO à operando
101 BEQ D Salta si igual si z = 1 PC ß D DESTINO.
si z = 0 PC ß PC+1

CUM (UEX) 2019 - 2020 JPM 16


Tema 5: El procesador. Ruta de datos y control
5.1. Introducción
Unidad procesadora.

Camino de datos de la Máquina Simple: 3 componentes básicos: ALU, registros y Memoria


Principal.

ALU: 4 operaciones à 2 señales de control ALU 1 y ALU 0

ALU 1 ALU 0 OPERACIÓN


0 0 A+B
0 1 B
1 0 B–A
1 1 A AND B

Registros: la MS dispone de los registros imprescindibles para su funcionamiento:

Z: biestable de estado 0. 1 bit que requiere una señal de carga (se activa con op. aritmético-lógicas).

PC: contador programa. 13 bits. Dirección de MP de la siguiente instrucción.


Posee señal de control à 0 à carga del operando destino de la instrucción actual.
à 1 à incrementa PC.

RI: registro de instrucción. 16 bits que guarda el COP y el D.

RDM: registro de dirección de memoria. 13 bits que tienen como entrada DESTINO.

A y B: almacenamiento temporal de los datos que provienen de la ALU.

CUM (UEX) 2019 - 2020 JPM 17


Tema 5: El procesador. Ruta de datos y control
5.1. Introducción
Unidad procesadora.

Camino de datos de la Máquina Simple: solo faltará establecer el Sistema de Bus: 3 tipos de
líneas.

Bus de datos: de 16 bits. Interconecta RIM, las entradas ALU y el registro RI.

Bus de direcciones: 13 bits. Interconectará el registro RDM con el contador de programa (PC) con el
operando destino y con la MP.

Bus de control: del mismo tamaño que la palabra de control. Interconecta la UC y la UP. Los bits que
lo componen controlarán los dispositivos del camino de datos. INC

ESC
RDM
PC PC +1
RDM puede recibir info. de 2 fuentes à MUX M0
que seleccione el PC o el DESTINO. M R MEM.
U PPAL.
13 D
13 13 2 13 x 16
M0 ENTRADA 13 D X M
0 PC
3 COP RIM
1 DESTINO (RI) 16
A A B B
RI LEC RIM
z ALU0
Z ALU
ALU1

CUM (UEX) 2019 - 2020 JPM 18


Tema 5: El procesador. Ruta de datos y control
5.1. Introducción
Unidad procesadora.

Camino de datos de la Máquina Simple:

Todas las señales de control han sido representadas en el diagrama.

La palabra de control para la máquina MS es la siguiente: campos decodificados menos ALU y MUX
1 1 1 1 1 1 1 2 1 1 1
LEC ESC M0 RI A B Z ALU0 ALU1 RDM RIM PC

No toda combinación de valores es válida; solo aquellos que representan una microoperación válida.

Ejemplos de microoperaciones:
Microoperación LEC ESC M0 RI A B Z ALU RDM RIM PC
RDM ß PC, LEC 1 0 0 0 0 0 0 xx 1 0 0

RI ß RIM 0 0 x 1 0 0 0 xx 0 0 0

RDM ß D, LEC 1 0 1 0 0 0 0 xx 1 0 0

RIM ß A + B 0 0 x 0 0 0 1 00 0 1 0

PC ß PC + 1 0 0 0 0 0 0 0 xx 0 0 1

PC ß D 0 0 1 0 0 0 0 xx 0 0 1

A ß RIM 0 0 x 0 1 0 0 xx 0 0 0

CUM (UEX) 2019 - 2020 JPM 19


Tema 5: El procesador. Ruta de datos y control
5.1. Introducción
Unidad procesadora.

Camino de datos de la Máquina Simple:

El diagrama de flujo para MS que establece la secuencia de operaciones a realizar en la UP para llevar
a cabo la ejecución de las instrucciones es el siguiente:

RDM ß PC, LEC Pasamos los primeros 16 bits de la


RI ß RIM, PC ß PC + 1 instrucción al RI
RDM ß PC, LEC Pasamos el resto de la instrucción al
B ß RIM, PC ß PC + 1 registro B (16 bits restantes)

000 001 010 011 100 101 (BEQ)


COP

RDM ß D
000 010 011 100 001 (MOV)

LEC, A ß RIM RIM ß B, ESC si z=1 PC ßD

(ADD) (AND)
000 (SUB) 011 (COMP)
010 011

RIM ß A+B, ESC RIM ß A - B, ESC RIM ß A x B, ESC B-A

CUM (UEX) 2019 - 2020 JPM 20


Tema 5: El procesador. Ruta de datos y control
5.1. Introducción
Instrucciones MIPS a implementar: visión global

En capítulos anteriores identificamos la parte común para casi todas las instrucciones
MIPS. En concreto, 2 pasos comunes:

1. Enviar contenido PC a memoria instrucciones y cargar siguiente instrucción


2. Leer 1 ó 2 registros, dados por los campos de instrucción

Después, acciones diferentes según tipo de instrucción: uso ALU y read/write registro/s

CUM (UEX) 2019 - 2020 JPM 21


Tema 5: El procesador. Ruta de datos y control
5.1. Introducción
Generalidades diseño uniciclo:

Cada instrucción se ejecutará en un único ciclo de reloj (UNICICLO) à CPI=1

El periodo de reloj debe ser el de la instrucción más larga: camino crítico.

La implementación monociclo es poco flexible, pero fácil de comprender e implementar.

Poco práctica à más lenta que una realización que permita a diferentes tipos de
instrucciones tardar un número diferente de ciclos de reloj (tan cortos como la instrucción)

El control para la implementación monociclo es más sencillo.

CUM (UEX) 2019 - 2020 JPM 22


Tema 5: El procesador. Ruta de datos y control
5.2. Camino de datos

Metodología de diseño:

1. Analizar el conjunto de instrucciones para determinar los bloques de


hardware necesarios para la ejecución de las mismas.

2. Ir uniendo los diferentes bloques en secciones del data path para cada
instrucción.

3. Determinar el control necesario (lógica y hardware) para cada elemento


del camino de datos.

CUM (UEX) 2019 - 2020 JPM 23


Tema 5: El procesador. Ruta de datos y control
5.2. Camino de datos

Análisis subconjunto repertorio instrucciones: formatos

Registros de los Registro del


Función: selecciona la variante de la op.
operandos fuentes operando destino

TIPO R 31·········26 25·······21 20······16 15·····11 10········6 5············0 rd, rs, rt


Add, sub, and
or y slt cod. oper rs rt rd shamt funct add $t0, $t1, $t2

rt, desp rs
31·········26 25·······21 20······16 15····································0 lw $t0, desplaz($t1)
TIPO I cod. oper rs rt Desp/inmediato. sw $t0, desplaz($t1)
Lw, sw y beq

Registro del Registro del Campo desplazamiento Dirección de memoria:


operando fuente operando destino de memoria rs + desp

31·········26 25·········································································0 Dirección destino


TIPO J cod. oper Dirección destino j 2500
j

Campo dirección de destino del salto

CUM (UEX) 2019 - 2020 JPM 24


Tema 5: El procesador. Ruta de datos y control
5.2. Camino de datos

Análisis subconjunto repertorio instrucciones:

REPERTORIO DE INSTRUCCIONES
Incluímos sólo un subconjunto de instrucciones enteras
(las más significativas)

• Instrucciones de referencia a memoria


– LW, SW (carga palabra, almacenar palabra)

• Instrucciones aritmético-lógicas
– And, sub, add, or, slt

• Instrucciones de control de secuencia


– Beq (salto condicional)
– J. (salto incondicional)

CUM (UEX) 2019 - 2020 JPM 25


Tema 5: El procesador. Ruta de datos y control
5.2. Camino de datos
Visión global de la implementación:

Independientemente del tipo de instrucción:

1. Enviar PC a memoria para buscar instrucción (FETCH)


2. Leer 1 ó 2 registros utilizando los campos de la instrucción

Después, similitudes:

Todas utilizan ALU tras leer registros:


– Referencia a memoria: cálculo de dirección efectiva
– Aritmético-lógicas: operación en cuestión
– Salto: comparación (en realidad resta).

Después utilizan ALU:


– Lw y Sw: acceso a memoria para completar almacenamiento u obtener palabra a cargar
– Aritmético-lógicas: escritura resultado ALU en registro.
– BEQ: si verifica condición de salto à cambio siguiente dirección PC.

CUM (UEX) 2019 - 2020 JPM 26


Tema 5: El procesador. Ruta de datos y control
5.2. Camino de datos
Primeros elementos necesarios: FETCH à captura instrucción
(para todo tipo de instrucciones)

Lugar donde almacenar las instrucciones de


los programas (unidad de memoria de Sumador necesario para incrementar el
instrucciones (MI)) à elemento de estado. PC de forma que apunte a la dirección de
En principio, solo acceso lectura. la siguiente instrucción a ejecutar en la
memoria de instrucciones (sumaremos 4
à palabras de 32 bits y memoria
Elemento de estado que almacena la direccionable por bytes).
dirección de la siguiente instrucción a
ejecutar à Contador de programa (PC), PC ß PC + 4
bajo control de una señal de escritura.

CUM (UEX) 2019 - 2020 JPM 27


Tema 5: El procesador. Ruta de datos y control
5.2. Camino de datos

Camino de datos: FETCH à captura instrucción

1. Mem[PC];

2. PCßPC+4;

1. Carga de la instrucción
desde memoria.

2. Para después ejecutar la


siguiente instrucción,
incrementar el PC en 4
bytes para que apunte a la
siguiente instrucción en
memoria.

Aún habrá que retocarlo para las instrucciones de salto y bifurcación (MÁS ADELANTE).

CUM (UEX) 2019 - 2020 JPM 28


Tema 5: El procesador. Ruta de datos y control
5.2. Camino de datos

Primeros elementos necesarios: Instrucciones TIPO R (aritmético-lógicas)


Todas leen 2 registros, operan con la ALU sobre sus contenidos escriben el resultado en un registro
(add, sub, slt, and y or)

ALU de 32 bits, con dos entradas y una salida de


Banco de 32 registros (25=32) donde se puede 32 bits. Entrada de control de 3 bits para seleccionar
leer 2 registros (rs y rt) y escribir en 1 (rd). Tendrá el tipo de operación aritmético-lógica.
dos salidas y una entrada de datos (escrituras
controladas mediante señal, las lecturas se
producen siempre)
R[rd] ß R[rs] op R[rt]
CUM (UEX) 2019 - 2020 JPM 29
Tema 5: El procesador. Ruta de datos y control
5.2. Camino de datos

Camino de datos: Instrucciones TIPO R (aritmético-lógicas)

ADD rd,rs,rt R[rd]ß R[rs]+R[rt]


SUB rd,rs,rt R[rd]ß R[rs]-R[rt]

CUM (UEX) 2019 - 2020 JPM 30


Tema 5: El procesador. Ruta de datos y control
5.2. Camino de datos

Primeros elementos necesarios: Instrucción BEQ (Tipo I) (Salto condicional)


Lee dos registros y compara su contenido; calcula dirección de salto: desplazamiento (con signo
extendido) de palabras + (PC+4).

16 32
Ext.
signo

Unidad de extensión de signo, para sumar


inmediato (16 bits) a un registro (32 bits) habrá que
convertir inmediato a un nº de 32 bits (tomar bit más
significativo y repetirlo hasta completar 32 bits).

32

A
32 32 Sumador binario, para calcular la
Desp. D 32
D dirección final de salto relativo al PC+4
Izqda. E
<<2 32 R

Desplazador 2 bits izquierda, equivale BEQ rs, rt, inmediato16 si rs –rt eq 0


amultiplicar por 4. PCßPC+4+(SignExt[inmediato16]<<2)

CUM (UEX) 2019 - 2020 JPM 31


Tema 5: El procesador. Ruta de datos y control
5.2. Camino de datos

Camino de datos: Instrucción BEQ (Tipo I) (Salto condicional)

BEQ rs, rt, inm16

Si (R[rs] = R[rt]) entonces PCßPC+4+(Ext_sign(inm16)*4)


Si no PC ß PC+4

CUM (UEX) 2019 - 2020 JPM 32


Tema 5: El procesador. Ruta de datos y control
5.2. Camino de datos
Primeros elementos necesarios: Instrucciones TIPO I (carga/almacenamiento)
(lógicas con inmediato, lw, sw y beq) Además del banco de registros y la ALU anteriores, las
instrucciones tipo I necesitan:

Memoria de datos, elemento de estado que tiene Unidad de extensión de signo, con una entrada de
como entradas la dirección del dato a escribir y el 16 bits que se extiende a una salida de 32 bits.
propio dato. Como salida solo tiene el valor leído.
Tiene control de lectura y escritura separados (solo
uno activo en cada momento)

LW rs, rt, inmediato16 R[rt]ßMem[R[rs]+SignExt[inmediato16]]

CUM (UEX) 2019 - 2020 JPM 33


Tema 5: El procesador. Ruta de datos y control
5.3.1. Camino de datos: Ejemplo Simple

• Una vez vistas las subpartes del camino de datos para cada tipo de
instrucción, construiremos el camino de datos total y su control para la
más simple de las implementaciones para instrucciones MIPS. En concreto,
ejecutara: lw, sw, beq, add, sub,and, or y slt. Posteriormente se ampliará
para las instrucciones de salto incondicional (j).

• Implementación más simple à MONOCICLO (toda instrucción en un ciclo


de reloj). Ningún elemento del camino de datos puede utilizarse más de
1 vez por instrucción à replicar resursos (mem. datos y mem.
instrucciones separadas.

• Muchos elementos funcionales podrán compartirse mediante


diferentes flujos de instrucciones (mediante multiplexores o selectores de
datos).

CUM (UEX) 2019 - 2020 JPM 34


Tema 5: El procesador. Ruta de datos y control
5.3.1. Camino de datos: Ejemplo Simple

Camino de datos: construyendo el data path final:


Primero unimos instrucciones tipo R y carga/almacenamiento:
TIPO R: R[rd] ß R[rs] op R[rt]
LW: R[rt] ß Mem[R[rs]+Ext_sign.[inm16]]
SW: Mem[R[rs]+Ext_sign.[inm16]] ß R[rt]

Comparten: Banco Registros y ALU.


Han sido necesarios: 2 multiplexores
Uno para seleccionar segundo operando de la ALU (registro o inmediato)
Otro para seleccionar dato a guardar en registro (ALU à TIPO R o Mem à LW)

Añadimos HW necesario para la fase de captura o FETCH:


Mem. Instrucciones, PC y Sumador.

Finalmente añadimos HW para las instrucciones BEQ:


Comparten: Banco Registros y ALU.
Añadimos: 1 multiplexor para seleccionar la fuente del PC (PC+4 o PC+4+(Ext_sign(inm16)*4)

CUM (UEX) 2019 - 2020 JPM 35


Tema 5: El procesador. Ruta de datos y control
5.3.1. Camino de datos: Ejemplo Simple

Comparten: Banco Registros y ALU.


Tipo R y carga/almacenamiento: Han sido necesarios: 2 multiplexores
Uno para seleccionar segundo operando de la ALU
(registro o inmediato)
Otro para seleccionar dato a guardar en registro (ALU à
TIPO R o Mem à LW)

MemRead

MemRead

CUM (UEX) 2019 - 2020 JPM 36


Tema 5: El procesador. Ruta de datos y control
5.3.1. Camino de datos: Ejemplo Simple

Añadimos: Sumador para incrementar el contenido del PC


+ HW para FETCH: Son necesarias: Mem. Instrucciones,
FETCH: PC y Sumador.
Una memoria de instrucciones separada de los datos.

Datapath para TipoR+acceso a memoria

MemRead
MemRead

CUM (UEX) 2019 - 2020 JPM 37


Tema 5: El procesador. Ruta de datos y control
5.3.1. Camino de datos: Ejemplo Simple
Comparten: Banco Registros y ALU.
Añadimos: 1 multiplexor para seleccionar la fuente
+ instrucciones BEQ : del PC (PC+4 o PC+4+(Ext_sign(inm16)*4)
1 Sumador para +(Ext_sign(inm16)*4

MemRead

CUM (UEX) 2019 - 2020 JPM 38


Tema 5: El procesador. Ruta de datos y control
5.3.2. Control: Ejemplo Simple

31·········26 25·······21 20······16 15·····11 10········6 5············0


TIPO R 0 rs rt rd shamt funct
Add, sub, and
or y slt

Registro del Registro del Registro del


operando fuente operando fuente operando destino
31·········26 25·······21 20······16 15····································0

TIPO I 35 ó 43 rs rt address
Lw, sw

Registro del Registro del Campo desplazamiento


operando fuente operando destino de memoria

31·········26 25·······21 20······16 15····································0


TIPO I 4 rs rt address
beq

Registro del Registro del Campo desplazamiento


operando fuente operando fuente de memoria

CUM (UEX) 2019 - 2020 JPM 39


Tema 5: El procesador. Ruta de datos y control
5.3.2. Control: Ejemplo simple
Camino de datos completo:

MemRead

CUM (UEX) 2019 - 2020 JPM 40


Tema 5: El procesador. Ruta de datos y control
5.3.2. Control: Ejemplo simple

Señal de Control Efecto cuando no está Efecto cuando está activa


activa

RegDest (RegDst) El destino es rt [20-16] El destino es rd [15-11]

EscrReg (RegWrite) Ninguno Registro destino se


actualiza con valor a
escribir
Fuente ALU (ALUSrc) Segundo op. ALU segundo Segundo op. ALU
registro leído ext_sig[15-0]

FuentePC (PCSrc) PC=PC+4 PC=salida sumador


(dirección salto)

LeerMem (MemRead) Ninguno El valor de la pos. de mem.


dada por dirección se
coloca en la salida de
lectura
EscrMem (MemWrite) Ninguno El valor de la pos. de mem.
dada por dirección se
reemplaza por el valor de
la entrada de datos
MemaReg (MemtoReg) Entrada en banco de El valor de la entrada del
registros proviene de ALU banco de registros
proviene de la memoria

CUM (UEX) 2019 - 2020 JPM 41


Tema 5: El procesador. Ruta de datos y control
5.3.2. Control: Ejemplo simple
Camino de datos + unidad de control:

Op[5-0]

MemRead

CUM (UEX) 2019 - 2020 JPM 42


Tema 5: El procesador. Ruta de datos y control
5.3.2. Control: Ejemplo simple

0
1
00
1 1

Instrucción LOAD: 1
MemRead

CUM (UEX) 2019 - 2020 JPM 43


Tema 5: El procesador. Ruta de datos y control
5.3.2. Control: Ejemplo simple

1
1
10 0
0

Instrucción TIPO R: 0
MemRead

CUM (UEX) 2019 - 2020 JPM 44


Tema 5: El procesador. Ruta de datos y control
5.3.2. Control: Ejemplo simple

X 0

0
01
x

Instrucción BEQ: 0
MemRead

CUM (UEX) 2019 - 2020 JPM 45


Tema 5: El procesador. Ruta de datos y control
5.3.2. Control: Ejemplo simple

Instrucción RegDst FuenteALU MemaReg EscReg LeerMem EscMem SaltoCond ALUOp1 ALUOp0

TIPO R 1 0 0 1 0 0 0 1 0

LW 0 1 1 1 1 0 0 0 0

SW X 1 X 0 0 1 0 0 0

BEQ X 0 X 0 0 0 1 0 1

Con la información de la tabla y del camino de datos, puede diseñarse


la lógica de control ya podemos construir la unidad de control.

CUM (UEX) 2019 - 2020 JPM 46


Tema 5: El procesador. Ruta de datos y control
5.3.2. Control: Ejemplo simple

Continuamos con el control:

La función de control puede definirse de forma precisa.

Salidas: líneas de control.


Entradas: 6 bits código operación.

COP COP en binario


Nombre decimal
Op5 Op4 Op3 Op2 Op1 Op0
Formato R 0 0 0 0 0 0 0
LW 35 1 0 0 0 1 1
SW 43 1 0 1 0 1 1
BEQ 4 0 0 0 1 0 0

Ahora podemos generar la lógica de control mediante una tabla de verdad que
combine todas las salidas.

CUM (UEX) 2019 - 2020 JPM 47


Tema 5: El procesador. Ruta de datos y control
5.3.2. Control: Ejemplo simple

Entrada Señal Tipo R LW SW BEQ


o salida
Op5 0 1 1 0
Op4 0 0 0 0
Op3 0 0 1 0
Entradas
Op2 0 0 0 1
Op1 0 1 1 0
Op0 0 1 1 0
RegDest 1 0 x x RegDst
FuenteALU 0 1 1 0 FuenteAL
MemaReg 0 1 x x U
MemaReg
EscReg 1 1 0 0 EscReg
Salidas LeerMem 0 1 0 0 MemWrite
EscMem 0 0 1 0
MemRead
SaltoCon
SaltoCond 0 0 0 1
d
ALUOp1
ALUOp1 1 0 0 0
ALUOp0
ALUOp0 0 0 0 1

CUM (UEX) 2019 - 2020 JPM 48


Tema 5: El procesador. Ruta de datos y control
5.3.2. Control: Ejemplo simple

¿Saltos incondicionales?

Se deja planteado como ejercicio la realización de los saltos incondicionales.

Habrá que estudiar el formato de instrucción, extender el camino de datos y


su control para la realización de dicho tipo de instrucciones.

Deberá explicarse como deberán activarse las señales de control necesarias.

31·········26 25·········································································0 Dirección destino


TIPO J cod. oper Dirección destino j 2500
j

Campo dirección de destino del salto

CUM (UEX) 2019 - 2020 JPM 49


Tema 5: El procesador. Ruta de datos y control
5.3.2. Control: Ejemplo simple

Aunque el diseño de este tipo de realizaciones funciona correctamente, no se


utiliza en los diseños actuales por ser ineficiente. El ciclo de reloj ha de tener
la misma longitud para todos los tipos de instrucción à CPI=1

El tiempo de ciclo de reloj vendrá dado por el mayor tiempo de ejecución


posible en la máquina que en la mayoría de las ocasiones es la instrucción
LOAD WORD, que emplea 5 unidades funcionales en serie:

Mem.Instrucciones+Banco Registros+ALU+Mem.Datos+Banco Registros

CICLO RELOJ

Sin embargo, otros tipos de instrucción pueden ejecutarse más rápido.

CUM (UEX) 2019 - 2020 JPM 50


Tema 5: El procesador. Ruta de datos y control
5.3.2. Control: Ejemplo simple

Rendimiento en máquinas uniciclo:

Supóngase que los tiempos de ejecución de las unidades funcionales principales de esta
realización son los siguientes:

Unidades de memoria: 2 ns.


ALU y sumadores: 2ns.
Banco registros (lect/escr): 1 ns.

Suponiendo que los multiplexores, la unidad de control, el acceso al PC, la unidad de


extensión de signo y los cables no tienen retardo, ¿cual de las siguientes realizaciones
sería más rápida y por cuánto?

1. Una realización donde cada instrucción se ejecuta en 1 ciclo de tamaño fijo.


2. Una realización donde cada instrucción se ejecuta en 1 ciclo de longitud variable, de
forma que cada instrucción tarda únicamente lo necesario (aunque este esquema no es
muy realista, nos permitirá ver el sacrificio que supone el que las instrucciones deban
ejecutarse en un único ciclo de reloj de la misma longitud).

Para la comparación de rendimientos supóngase la siguiente combinación de


instrucciones: 24% de loads, 12% de stores, 44% de tipoR, 18% de saltos
condicionales y 2% de saltos incondicionales (jumps)

CUM (UEX) 2019 - 2020 JPM 51


Tema 5: El procesador. Ruta de datos y control
5.3.2. Control: Ejemplo simple

Clase de instrucción Unidades funcionales usadas por dicha clase

Formato R Carga instrucción Acceso a registros ALU Acceso a registros


Load word Carga instrucción Acceso a registros ALU Acceso a memoria Acceso a registros
Store word Carga instrucción Acceso a registros ALU Acceso a memoria
BEQ Carga instrucción Acceso a registros ALU
JUMP Carga instrucción

Clase instrucción Memoria Lectura Operación Memoria Escritura TOTAL


instrucciones registros ALU datos registros
FormatoR 2 1 2 0 1 6 ns
Load word 2 1 2 2 1 8 ns
Store word 2 1 2 2 7 ns
BEQ 2 1 2 5 ns
JUMP 2 2 ns

Tiempo de ciclo máquina 1 = 8 ns (aproximado, no real)


Tiempo de ciclo máquina 2 = 8 * 24% + 7 * 12% + 6 * 44% + 5 * 18% + 2 * 2% = 6,3 ns

Rendimiento CPU reloj variable Tpo. ejecución CPU uniciclo Tpo. ciclo CPU uniciclo 8
1,27
Rendimiento CPU uniciclo Tpo. Ejecución CPU reloj variable Tpo. ciclo CPU reloj variable 6,3

CUM (UEX) 2019 - 2020 JPM 52


Tema 5: El procesador. Ruta de datos y control
5.3.2. Control: Ejemplo simple

Uniciclo à hacer más rápido el caso común.

Las diferentes unidades funcionales solo pueden usarse una vez por ciclo. (esto
conlleva duplicar algunas U.F à encarecimiento del diseño).

Para evitar esto à técnicas de realización que tengan un ciclo inferior, que
requieran más de un ciclo por instrucción. Esto es lo que veremos en los
próximos temas à Realización Multiciclo y Segmentación

CUM (UEX) 2019 - 2020 JPM 53

También podría gustarte