Está en la página 1de 87

UNIDAD DE CONTROL

A tomar en cuenta
 Laejecución de una instrucción implica
la ejecución de una secuencia de pasos
más pequeños, normalmente llamados
ciclos.

 Cada ciclo se compone de una serie de


operaciones más elementales, llamadas
microoperaciones.
La unidad de control de un procesador realiza
dos tareas:

 (1) hace que el procesador ejecute las


microoperaciones en la secuencia correcta,
determinada por el programa que se está
ejecutando
 (2) genera las señales de control que
provocan la ejecución de cada
microoperación.
Una técnica para construir la unidad de control es
la implementación cableada, en la cual dicha
unidad es un circuito combinacional.

Sus señales lógicas de entrada, gobernadas por


la instrucción máquina en curso, se transforman
en un conjunto de señales de control de salida.
UNIDAD DE CONTROL
 La UC emite señales de control externas al
procesador para producir el intercambio de
datos con la memoria y los módulos de E/S
 La UC emite señales de control internas al
procesador para transferir datos entre registros y
hacer que la ALU ejecute una función concreta y
regular otras operaciones internas
 La entrada a la UC esta formada por el registro
de instrucción, los indicadores de estado, y ciertas
señales de control de fuentes externas, por
ejemplo señales de interrupción
Unidad de Control
Provee las señales de control para la operación y coordinación
de las componentes del procesador

El principal propósito de la Unidad de Control es


decodificar las instrucciones y generar las
señales que permitan realizar la operación
deseada.
PARTES DEL PROCESADOR
 CIRCUITO DE COMUNICACIÓN INTERNA: Controla los enlaces entre el
microprocesador y otros componentes.
 UNIDAD DE CONTROL: Da instrucciones a otros elementos de la unidad ejecutiva
para que recojan datos, efectúen cálculos y almacenen resultados.
 UNIDAD DE SEGMENTACIÓN/UNIDAD DE PAGINACIÓN: Ayudan al circuito de
comunicación interna a localizar la información. Cabe resaltar que estas dos
unidades tienen la misma función.
 UNIDAD DE PRE-LOCALIZACIÓN: Establece una lista de instrucciones en secuencia
para que la unidad decodificadora las traduzca.
 REGISTROS: Son los almacenes temporales de memoria.
 UNIDAD DE ARITMÉTICA/LÓGICA: Proporciona la capacidad de calculo y de
tomar decisiones lógicas.
 UNIDAD DE DECODIFICACIÓN: Transforman los datos entrantes en una forma que
la unidad ejecutiva pueda procesar.
 UNIDAD DE PRUEBA DE PROTECCIÓN: Esta comprueba que los datos estén libres
de errores.
 PINES: Proporcionan enlaces electrónicos.
Conceptos necesarios
para especificar la funcionalidad de un
procesador:
 1. Operaciones (códigos de operación).
 2. Modos de direccionamiento.
 3. Registros.
 4. Interfaz con el módulo de E/S.
 5. Interfaz con el módulo de memoria.
 6. Estructura del procesamiento de interrupciones.
MICROOPERACIONES
Sabemos:
 El funcionamiento de un computador, cuando ejecuta un
programa, es mediante una secuencia de ciclos de instrucción,
con una instrucción máquina por ciclo.
 Esta secuencia de ciclos de instrucción no es necesariamente la
misma, debido a la existencia de instrucciones de salto.

A lo que nos referimos aquí es a la secuencia temporal de ejecución


de instrucciones.
 La ejecución de un programa es la ejecución secuencial de
instrucciones.
 Cada instrucción se ejecuta durante un ciclo de instrucción
compuesto por subciclos más cortos (por ejemplo, subciclo
de captación, indirecto, de ejecución, de interrupción, etc.).
 La ejecución de cada subciclo incluye una o más
operaciones más breves, es decir, una o más
microoperaciones
EL CICLO DE CAPTACIÓN
 Registro de dirección de memoria
(Memory Address Register, MAR): está
conectado a las líneas de dirección del
bus del sistema. Especifica la dirección
de memoria de una operación de
lectura o de escritura.

 Registro intermedio de memoria (Memory


Buffer Register, MBR): está conectado a
las líneas de datos del bus del sistema.
 Contador de programa (Program
Counter, PC): contiene la dirección de la
siguiente instruccióna captar.

 Registro de instrucción (Instruction


Register, IR): contiene la última
instrucción captada.
MAR

Al inicio del ciclo de captación, la dirección de la MBR


siguiente instrucción a ejecutar está en el contador de PC 0000000001100100
programa (PC); IR
AC

MAR 0000000001100100
Primero: llevar esa dirección al registro de MBR
dirección de memoria (MAR), por ser el único
PC 0000000001100100
registro conectado a las líneas de dirección del bus
IR
del sistema.
AC

El segundo paso es traer la instrucción. MAR 0000000001100100


La dirección deseada (en MAR) se coloca en el bus MBR 0001000000100000
de direcciones, la UC emite una orden READ por el PC 0000000001100100
bus de control, y el resultado aparece en el bus de IR
datos y se copia en el registro intermedio de
AC
memoria (MBR
El tercer paso es transferir el contenido de MAR 0000000001100100
MBR al registro de instrucción (IR). Esto MBR 0001000000100000
libera MBR para su uso durante un posible PC 0000000001100100
ciclo indirecto. IR 0001000000100000
AC

• El ciclo de captación consta


de tres pasos y cuatro
microoperaciones.
• Cada microoperación implica
la transferencia de datos
hacia dentro o hacia fuera de
un registro.
• Las transferencias no se
interfieran entre sí, varias de
ellas pueden tener lugar
durante un paso, ahorrando
tiempo.
• Primera unidad de tiempo: transferir el
contenido de PC a MAR.
• Segunda unidad de tiempo: transferir el
contenido de la posición de memoria
especificada por MAR a MBR. Incrementar
en I el contenido de PC.
• Tercera unidad de tiempo: transferir el
contenido de MBR a IR.
Los agrupamientos de microoperaciones deben
cumplir dos sencillas reglas:

1. Debe seguirse la secuencia


correcta de eventos. Así, (MAR ←
(PC)) debe preceder a (MBR ←
Memoria), ya que la operación de
lectura de memoria hace uso de la
direcciónal macenada en MAR.

2. Deben evitarse los conflictos. No se


debe intentar leer y escribir en el
mismo registro en una unidad de
tiempo, ya que los resultados serían
imprevisibles. Por ejemplo, las
microoperaciones (MBR ←
Memoria) e (IR ← MBR) no deberían
tener lugar en la misma unidad de
tiempo.
Ciclo Indirecto
• Una vez que se capta una instrucción, el siguiente paso es captar los operandos
fuente.
• Tenemos un formato de instrucción de una dirección, que permite
direccionamiento directo e indirecto.
• Si la instrucción especifica una dirección indirecta, un ciclo indirecto ha de
preceder al ciclo de ejecución.
• El flujo de datos difiere, e incluye las siguientes microoperaciones:
EL CICLO DE INTERRUPCIÓN
 Cuando termina el ciclo de ejecución, se realiza una
comprobación para determinar si ha ocurrido alguna
interrupción habilitada.

 Si es así, tiene lugar un ciclo de interrupción


Ciclo de Ejecución
 Captación e interrupción son predecibles ya que se repiten
las microoperaciones
 Es diferente en cada instrucción
 Tenemos la instrucción de suma:
ADD R1, X
Puede suceder la siguiente secuencia de microoperaciones:
 Una instrucción frecuente es «incrementar y saltar si cero»
(Increment and Skip if Zero):
ISZ X

 El contenido de la posición X se incrementa en


1.
 Si el resultado es 0, la siguiente instrucción se
salta.
 Una posible secuencia de microoperaciones es
 Por último, la instrucción de llamada a subrutina. Como ejemplo, la
instrucción «saltar y guardar la dirección» (Branch and Save Address):
BSA X
 La dirección de la instrucción que viene a continuación de la instrucción BSA
se guarda en la posición X, y la ejecución continúa en la posición X + I.
 La dirección guardada se usará más adelante en el retorno.
 Esta es una técnica sencilla para proporcionar llamadas a subrutinas.
 Son suficientes las siguientes microoperaciones:
Ciclo de Instrucción
 Cadafase del ciclo de instrucción
puede descomponerse en una
secuencia de microoperaciones
elementales
 Hay ciclos de captación, indirecto y de
interrupción, y para el ciclo de
ejecución existe una secuencia de
microoperaciones para cada código
de operación
necesita unir las secuencias de
 Se
microoperaciones
Para completar la descripción, tenemos que unir las secuencias de microoperaciones,
dos bits llamado
código de ciclo
de instrucción
(instruction cycle
code, ICC).
Control de procesador
Requisitos funcionales de la unidad de control
1. Definir los elementos básicos de un
procesador
2. Describir las microoperaciones que ejecuta
el procesador
3. Determinar las funciones que debe realizar
la unidad de control para que se ejecuten
las operaciones
1. Definir los elementos básicos de un
procesador

 ALU
 Registros
 Caminos de datos internos
 Caminos de datos externos
 Unidad de control
2. Tipos de mirooperaciones
 La ejecución de un programa consta de operaciones
que involucran todos elementos del procesador.
 Las operaciones consisten en una secuencia de
microoperaciones.
 Todas las microoperaciones se pueden clasificar en una
de las siguientes categorías:

• Transferencia de datos de un registro a otro.


• Transferencia de datos de un registro a una interfaz externa (por
ejemplo, al bus del sistema).
• Transferencia de datos de una interfaz externa a un registro.
• Realizar una operación aritmética o lógica, usando registros para
entrada y salida.
3.Funciones de la Unidad de
Control
 Secuenciamiento
Hacer que la CPU realice una serie de
microoperaciones en la secuencia correcta, de
acuerdo al programa aque esta ejecutando

 Ejecución
Hacer que se ejecute cada microoperacion
Señales de Control de entrada

• Reloj
—La señal que hace que se ejecute una microoperación por ciclo de reloj
• Registro de Instrucción
—Código de operación de la instrucción en curso
—Determina cuales micro-instrucciones se realizan en el ciclo de ejecución
• Indicadores (Flags)
—Estado de la CPU
—Resultado de operaciones previas
• Señales de control de bus del sistema
—Interrupciones
—Reconocimientos
Señales de Control de salida

• Las salidas son las siguientes:

Internas de la CPU: son de 2 tipos


—Las que provocan movimientos de datos entre registros
—Las que activan funciones específicas de la ALU

Hacia el bus de control: son de 2 tipos


—Para la memoria
—Para los módulos de I/O

El nuevo elemento introducido en esta figura es el de señal de control.


Se usan tres tipos de señales de control:

1. las que activan una función


de la ALU,
2. las que activan un camino
de datos,
3. y las que son señales del bus
del sistema externo u otra
interfaz externa.
Ejemplo de Secuencia de Señales de Control - Búsqueda
 MAR (PC)
— La Unidad de Control activa la señal para las compuertas
entre el PC y el MAR

 MBR (memoria)
—Activa las compuertas entre MAR y el bus de direcciones
—Activa la señal de control de lectura de la memoria
—Activa las compuertas entre el bus de datos y el MBR
 Señales de control de la lógica que suma I al contenido de
PC y almacena el resultado en el nuevo PC
 Despues, la unidad de control envía una señal de control que
abra las puertas adecuadas entre el MBR y IR
UN EJEMPLO DE SEÑALES DE CONTROL
• procesador sencillo con un único acumulador.
• Se indican los caminos de datos entre los distintos elementos.
• Los caminos de control de las señales que proceden de la unidad de control no
se muestran, pero las terminaciones de las señales de control están designadas
como Ci y se indican mediante un círculo designadas como Ci
Caminos de datos: la unidad de control dirige el flujo interno de datos.

• ALU: la unidad de control gobierna el funcionamiento de la ALU mediante un conjunto de


señales de control. Estas señales activan diversos dispositivos y puertas dentro de la ALU.

• Bus del sistema: la unidad de control envía señales de control a las líneas de control del bus
del sistema (por ejemplo, lectura de la memoria).
Organización Interna del procesador
 Las compuertas o señales que controlan el
movimiento de datos desde y hacia el bus interno
 Las señales de control manejan la transferencia de
datos desde y hacia el bus externo.
 Es necesario agregar registros temporales (de entrada
y de salida) para asegurar una operación apropiada
de la ALU
IMPLEMENTACIÓN CABLEADA

La unidad de control tiene dos técnicas:

• Implementación cableada
• Implementación microprogramada

 En una implementación cableada, la unidad de control es


esencialmente un circuito combinacional.

 Sus señales lógicas de entrada se transforman en un conjunto


de señales lógicas de salida, que son las señales de control.
• Reloj
—Provee una secuencia repetitiva de pulsos
—Permite calcular la duración de cada microoperación
—Debe ser de una duración suficiente para asegurar la
propagación de las señal a través de las compuertas u
buses
—Hay señales de control diferentes en unidades de
tiempo diferentes dentro de un único ciclo de
instrucción.
—Por lo tanto, se necesita un contador que genere una
señal de control diferente para t1, t2, etc.
Problemas del diseño de Lógica Cableada

• La lógica del secuenciamiento y las


microoperaciones resulta muy compleja
- Esto dificulta el diseño y el testeo

• El diseño resulta inflexible.


- Esto impide agregar nuevas instrucciones.
Implementación
de la Unidad de Control
La UC tiene típicamente dos partes:
– Una parte combinacional que carece de estado
(por ej. para las decodificaciones, diseño único-ciclo)

– Otra parte secuencial para el secuenciamiento de


las instrucciones y para el control principal de un
diseño múltiple-ciclo.
● ROM
● PLA (Programmable Logic Array)
● Contador
● Microprogramacion
Control cableado
Diseño del procesador
uniciclo
 Cada instrucción se ejecuta en un único
ciclo de reloj
 CPI=1 para todas las instrucciones
 Ciclos por instrucción o CPI son una
medida del rendimiento de un
procesador
 Diseño poco flexible, pero fácil de
comprender! Y de implementar!!
Metodología de
sincronización
Lógica
estado estado
Combinatoria

Actualización del
estado
Diseño: Pasos necesarios
 1er Paso: Analizar el conjunto de instrucciones para
determinar los requerimientos del Camino de Datos
 2o Paso: Seleccionar los componentes
 3er Paso: Construir el Camino de Datos según los
requerimientos
 4o Paso: Analizar la implementación de cada
instrucción para determinar las señales de control
necesarias
 5o Paso: Construir el Control.
1er Paso: Formato MIPS de
47
Instrucción
Son todas de 32 bits. Tres formatos:

31 26 21 16 11
 Tipo R
6 0
op rs rt rd sha funct
mt
 Tipo I
31 26 21 16
0
op rs rt Address/inmediate
 Tipo J

31 26
0
op Target Address
1er Paso: Subconjunto MIPS
 ADD y SUB 31 26 21 16 11
 addu rd ,rs ,rt 6 0
o rs rt rd sham fun
 subu rd, rs ,rt t ct
p

 OR inmediato 31 26 21 16
0
 ori rt, rs, inm16

 LOAD and STORE 31 26 21 16


 lw rt, rs, inm16 0
op rs rt Address/inmediate
 sw rt, rs, inm16

 BRANCH 31 26 21 16
0
 beq rs, rt, inm16
op rs rt Address/inmedia
te
1er Paso: RTL
Todas las instrucciones comienzan haciendo el fetch
ADDU R[rd]<--R[rs]+R[rt]; PC<--PC+4

SUBU R[rd]<--R[rs]-R[rt]; PC<--PC+4

ORI R[rt]<--R[rs]|zero_ext(Inm16); PC<--PC+4

LOAD R[rt]<--Mem[R[rs]+sign_ext(Inm16)]; PC<--PC+4

STORE Mem[R[rs]+sign_ext(Inm16)]<-- R[rt]; PC<--PC+4

BEQ if (R[rs]==R[rt]) then PC<--PC+4+(sign_ext(Inm16)*4)


else PC<--PC+4
1er Paso: Requerimientos del Conjunto
de Instrucciones
 Memoria
 Instrucciones y Datos
 Registros (32x32)
 Leer rs
 Leer rt
 Escribir rt o rd
 PC
 Extensor de signo
 Sumar y Restar registros y/o valores inmediatos
 Operaciones lógicas(and/or) registros y/o valores
inmediatos
 Sumar 4 al PC o 4+inmediato extendido *4
2o Paso: Componentes del Camino de
Datos
Instruction
address

PC
Instruction Add Sum
Instruction
memory
MemWrite

a. Instruction memory b. Program counter c. Adder


Address Read
data 16 32
Sign
extend
Write Data
data memory

ALU control MemRead


5 Read 3
register 1
Read a. Data memory unit b. Sign-extension unit
Register 5 data 1
Read
numbers register 2 Zero
Registers Data ALU ALU
5 Write result
register
Read
Write data 2
Data data

RegWrite

a. Registers b. ALU
2o Paso: Componentes del Camino de
Datos 52
 Elementos Combinacionales

 Sumador , ALU y Multiplexor


Op
Sel
3
A 2 3
A 2
3
+
3 3 A 2
2 2 3

ALU
Sum

MUX
a Resultado 2
3 3 32
B 2 2
B
B
2o Paso: Componentes del Camino de
Datos
 Elementos de Almacenamiento: Banco de
Registros
RegW
WE

LRA

5
LRB BusA
5
ER 32
Dat Dat
32 5 32 Registros BusB
a In 32 a
de 32 bits
Out
BusW 32

32

CLK CLK
2o Paso: Componentes del Camino de
Datos
 Elementos de Almacenamiento: Banco de
Registros: dos puertos de lectura
RegW
Read register
number 1
Register 0 LRA
Register 1 M 5
u Read data 1 LRB BusA

Register n – 1 x 5
ER 32
Register n
5 32 Registros BusB
de 32 bits
Read register
number 2 BusW 32

32
M
u Read data 2
x
CLK
2o Paso: Componentes del Camino de
Datos
 Elementos de Almacenamiento: Banco de
Registros: un puerto de escritura
RegW
Write

C
0 LRA
Register 0
1 D
5
n-to-1 C LRB BusA
Register number
decoder Register 1
5
D ER 32
n– 1
n 5 32 Registros BusB
de 32 bits
BusW 32
C
Register n – 1
32
D
C
Register n
Register data D
CLK
2o Paso: Componentes del Camino de
Datos
 Elementos de Almacenamiento:
 Memorias WE

direcció
n
Dato
dirección 32
instrucci Out
ón
32 32
32

Memoria de Memoria
Instrucciones de Datos
Dato In

32

CLK
3er Paso:Construcción del Camino de Datos
Fetch de Instrucciones
 Mem[PC]; PC<-- PC+4 (código secuencial)

3
2

3
+
2
WE
3
4 2

dirección
instrucci
PC

ón
32
32

Memoria
de
Instruccio
nes

CLK
3er Paso:Construcción del Camino de Datos
Formato R: Addu y Subu 58

ADDU R[rd]<--R[rs]+R[rt]; PC<--PC+4


SUBU R[rd]<--R[rs]-R[rt];
RegW PC<--PC+4
ALUctr
rs
LRA
Instrucció

5
rt BusA
LRB
5
rd 32 3
WR
n

2
5 32 BusB
Registros
BusW de 32 bits
32

32

CLK
3er Paso:Construcción del Camino de Datos
Formato I: lógicas con Inmediato 59

ORi R[rt]<--R[rs]op ZeroExtR[inm16]; PC<--PC+4

RegDs
t Reg
W Alusrc
ALUctr

rs
LRA
5
rt BusA
LRB
5
32 3
WR
MUX

2
Instrucció

5 32 BusB
r Registros
de 32 bits M
d BusW 32 U
n

X
32

CLK

3
Inm16
xt
ZeroE

2
3er Paso:Construcción del Camino de Datos
Formato I: LOAD 60
Lw rt,rs,inmm1 6
R[rt]<--Mem[R[rs]+ SignExt[inm16]]; PC<--PC+4
RegDs
t Reg
W Alusrc
ALUctr
W_src
rs
LRA
5
rt BusA
LRB
5
32 3
WR
MUX

2
Instrucció

32 BusB M
5
Registros U
r WE
de 32 bits M X
d BusW 32 U
n

X
@
32
Memori
a de
Datos
CLK

3 32
Inm16 CLK
n
EXtensio

2
3er Paso:Construcción del Camino de Datos
Formato I: STORE 61
Sw rt,rs,inmm1 6
Mem[R[rs]+ SignExt[inm16]]<----R[rt]; PC<--PC+4
RegDs
t Reg
W Alusrc
ALUctr
W_src
rs
LRA
5
rt BusA
LRB
5
32 3
WR
MUX

2
Instrucció

32 BusB M
5
Registros U
r WE
de 32 bits M X
d BusW 32 U
n

X
@
32
Memori
a de
Datos
CLK

3 32
Inm16 CLK
n
EXtensio

2
3er Paso:Construcción del Camino de Datos
Formato I: Branch 62
Beq rs, rt, inm16
if (R[rs]==R[rt]) then PC<--PC+4+(sign_ext(Inm16)*4
else PC<--PC+4
PC_sr
c
WE
3
2

3
+
2
instrucci
MUX

PC
3 dirección
4 2 ón
Memoria 32
3
de
2
Instruccio
nes
3
+
2
n
Extensió

3
2
<<

CLK
2
3er Paso:Juntando Todo
Pcsrc

MUX
2
>>
RegDs
t Reg ZER
W Alusr
32 O
c
ALUctr
W_sr
32 rs c
+ LRA
5
3 r BusA
4 2 LRB
t
5
32 32
WR
MUX

32 BusB M
5
Registr U
instrucci rd WE
M X
ón Bus os de
32 U
PC

Memoria W 32 bits
32 X
de 32 @
Instruccio Memori
nes a de
Datos
CLK
CLK
3 3
Inm C
n
EXtensio

2 2
16 L
K
Señales de Control
No Activa Activa
RegDst destino es rt destino es rd

ALUsrc operando proviene operando son los 16 bits de la


del B. De Reg inst. con el signo extendido
W_src El valor que se escribe en El valor que se escribe en el B.
De Reg
el B. de Reg proviene de proviene de Memoria
la ALU
RegW Nad Se escribe el valor en el registro
especificado
WE Nada Se escribe en la memoria el valor que
está en su entrada
PC_src PC=PC+4 PC=destino de salto
Ejemplo: Load 65
Pcsrc

MUX
2
>>
RegD ZER
st Reg O
W Alusr
3
c
2 ALUct
W_sr
32 r
rs c
+ LRA
5
32 rt BusA
4 LRB
5
32 3
WR
MUX

2
32 BusB M
5
Registr U
instrucci rd WE
M X
ón BusW os de
32 U
PC

Memoria de 32 bits
32 X
Instruccione 3 @
s 2 Memo
ria de
Datos
CL
CLK K
3 3
Inm16 C
n
EXtensio

2 2 L
K
Ejemplo: ADDU 66
Pcsrc

MUX
2
>>
RegD ZERO
st Reg
W Alusr
3
c
2 ALUct
W_sr
32 r
rs c
+ LRA
5
32 rt BusA
4 LRB
5
32 3
WR
MUX

2
32 BusB M
5
Registr U
instrucci rd WE
M X
ón BusW os de
32 U
PC

Memoria de 32 bits
32 X
Instruccione 3 @
s 2 Memo
ria de
Datos
CL
CLK K
3 3
Inm16 C
n
EXtensio

2 2 L
K
40 Paso:Control

Inm16
Memoria de <0..15>
Branch
Instrucciones Rd Unidad
<11..15 RegW
Unidad
>
Rt
de de
<16..20 Control RegDst Proceso
>
Rs
<21..25
>
Funct
<0..6> ALUsrc

Op
<26..31 ALUctr
>
WE

W_src
4o Paso:Control
Branc
68
h

MUX
WE
CONTROL
W_sr

2
>>
c

Pcsrc
32 RegDs Reg Alusr ZER
W c O
t ALUctr
32 rs
+ LRA
5
3 r BusA
4 2 LRB
t
5
32 32
WR
MUX

32 BusB M
5
Registr U
instrucci rd
M X
ón Bus os de
32 U
PC

Memoria W 32 bits
32 X
de 32 @
Instruccio Memori
nes a de
Datos
CLK
CLK
3 3
Inm C
n
EXtensio

2 2
16 L
K
4o Paso: Control Principal
Addu Subu Lw Sw Ori Beq
RegDst 1 1 0 x 0 x
ALUsrc 0 0 1 1 1 0
W_src 0 0 1 x 0 x
RegW 1 1 1 0 1 0
WE 0 0 0 1 0 0
Branch 0 0 0 0 0 1
ALUctr suma resta suma suma or resta
4 o Paso: Control de la ALU
000 AND
001 OR
010 add
110 subtract
111 set-on-less-than
Op

3
2
A

3
2
ALU
Resultado
3 Cer
2 o

B
4 o Paso: Control de la ALU

ALUop
Control
Control
de
5..0
la ALU

3
2
A
Operación
31..26
3
2

ALU
Resultado
Instrucción 3 Cer
2 o

B
4 o Paso: Control de la ALU 72
 La ALU necesita 3 bits de control
 Dado el tipo de instrucción
00 = lw, sw
01 = beq,
10 = arithmetic
y el código de función para las tipo R
ALUOp Funct field Operation
ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0
0 0 X X X X X X 010
X 1 X X X X X X 110
1 X X X 0 0 0 0 010
1 X X X 0 0 1 0 110
1 X X X 0 1 0 0 000
1 X X X 0 1 0 1 001
1 X X X 1 0 1 0 111
Control 0
M
u
x
Add ALU 1
result
Add Shift
RegDst left 2
4 Branch
MemRead
Instruction [31– 26] MemtoReg
Control ALUOp
MemWrite
ALUSrc
RegWrite

Instruction [25– 21] Read


Read register 1
PC address Read
Instruction [20– 16] Read data 1
register 2 Zero
Instruction 0 Registers Read
[31– 0] ALU ALU
M Write data 2 0 Address Read
result 1
Instruction u register M data
u M
memory x u
Instruction [15– 11] Write x
1 Data x
data 1 memory 0
Write
data
16 32
Instruction [15– 0] Sign
extend ALU
control

Instruction [5– 0]

Memto- Reg Mem Mem


Instruction RegDst ALUSrc Reg Write Read Write Branch ALUOp1 ALUp0
R-format 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
5o Paso: Implementación
Inputs
ALUOp Op5

ALU control block Op4


Op3
ALUOp0 Op2
ALUOp1 Op1
Op0

Operation2
F3 Outputs
Operation R-format Iw sw beq
F2 Operation1 RegDst
F (5– 0) ALUSrc
F1
MemtoReg
Operation0
RegWrite
F0
MemRead
MemWrite

Branch
ALUOp1

ALUOpO
Implementación de la UC

UC COMBINACIONAL
Implementación de la UC
 La UC computa las señales de control basándose en el
opcode y en el campo funct de la instrucción.
 La mayoría de la información de control proviene del opcode
 ● Diseño simplificado. Dos bloques.
Multiciclo
Diseño monociclo
83
 Todas las instrucciones tardan tanto como la
más lenta
 Ciclo de reloj es largo, pero CPI=1
 No hay reuso de unidades funcionales

Diseño multiciclo
 Reduce el tiempo de ciclo
 Un ciclo de reloj=una etapa de ejecución
 Reuso de Unidades Funcionales
 Cada instrucción puede utilizar o no todas
las etapas, el CPI > 1.
Comparación

También podría gustarte