Logo Studenta

ACI-Clase-22b

¡Este material tiene más páginas!

Vista previa del material en texto

Dana K. Urribarri AC 2016 1
Arquitectura de Computadoras
para Ingeniería
(Cód. 7526)
1° Cuatrimestre 2016
Dra. Dana K. Urribarri
DCIC - UNS
Dana K. Urribarri AC 2016 2
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.
Dana K. Urribarri AC 2016 3
Interacción entre la Unidad de Control y la 
Unidad de Procesamiento de Datos
● La Unidad de Control (UC) indica la Unidad de 
Procesamiento de Datos (UPD) una secuencia de 
comandos.
● La UPD manipula los datos de acuerdo a lo 
indicado por la UC.
UC UPD
Output
data
Input
data
Señales
de control
Señales
de estado
Señales de
entrada
(externas)
Señales de
salida
(externas)
B
u
s 
d
e 
C
o
n
t r
o
l
Dana K. Urribarri AC 2016 4
Tareas de la UC
1) Traer la instrucción de memoria (FETCH)
2) Decodificar de la instrucción (DECODE)
3) Ejecutar la instrucción (EXECUTE)
Generar todas señales de control necesarias para 
indicarle a la UPD qué procesamiento aritmético-
lógico debe realizar.
Dana K. Urribarri AC 2016 5
Funciones de la UC
La UC cumple dos funciones importantes:
● Secuenciamiento de las instrucciones:
¿Cómo se transfiere el control del procesador de 
una instrucción a otra?
● Interpretación de la instrucción:
¿Cómo se activan las señales de control que hacen 
que la UPD ejecute la instrucción?
Dana K. Urribarri AC 2016 6
Secuenciamiento de instrucciones
Program Counter (PC)
● Dirección de la próxima 
instrucción a ejecutar.
● Si A debe leerse de memoria de 
a un word, entonces el PC se 
incrementa automáticamente en 
1 cada vez que se obtiene un 
word.
● Cuando se termina de leer la 
instrucción A, el PC apunta al 
primer word de B.
Funciones de la UC
A
B
X
X+k
Dana K. Urribarri AC 2016 7
Secuenciamiento de instrucciones
Branch (condicional o incondicional)
● Permite transferir el control entre instrucciones no 
consecutivas.
● Implícita o explícitamente especifican la dirección 
X de la siguiente instrucción.
● Modifican el PC
PC ← X
Funciones de la UC
Dana K. Urribarri AC 2016 8
Secuenciamiento de instrucciones
Transferencia de control entre (sub)programas 
● Llamada a subrutina
Transferencia temporaria del control de A a B, iniciado por A
● Interrupción
Transferencia temporaria del control de A a B, iniciado por B 
o un dispositivo asociado a B
En la pila del sistema se almacena:
● La dirección de retorno
● Posibles parámetros de A a B
● Variables locales a B
Funciones de la UC
Dana K. Urribarri AC 2016 9
Interpretación de la instrucción
● La UC interpreta la instrucción para determinar 
qué señales de control debe transmitir.
● Estas señales de control se transmiten a través 
de líneas de control.
● Se distinguen 4 grupos de señales de control:
UC UPD
Output
data
Input
data
Señales
de control
Señales
de estado
Señales de
entrada
(externas)
Señales de
salida
(externas)
B
u
s 
d
e 
C
o
n
t r
o
l
Funciones de la UC
Dana K. Urribarri AC 2016 10
Interpretación de la instrucción
● Señales de control
Objetivo principal de la UC.
Señales que controlan la operación de la UPD
UC UPD
Output
data
Input
data
Señales
de control
Señales
de estado
Señales de
entrada
(externas)
Señales de
salida
(externas)
B
u
s 
d
e 
C
o
n
t r
o
l
Funciones de la UC
Dana K. Urribarri AC 2016 11
Interpretación de la instrucción
UC UPD
Output
data
Input
data
Señales
de control
Señales
de estado
Señales de
entrada
(externas)
Señales de
salida
(externas)
B
u
s 
d
e 
C
o
n
t r
o
l
● Señales de estado
Permiten que la UC tome decisiones basadas en los 
datos.
Le permiten a la UPD indicar errores en el 
procesamiento de los datos (x ej. overflow).
Funciones de la UC
Dana K. Urribarri AC 2016 12
Interpretación de la instrucción
Las señales externas se usan para sincronizar con otros controladores.
● Señales de entrada (externas)
Señales que recibe la UC a través del bus de control (señales de start, stop y 
temporizado).
● Señales de salida (externas)
Incluye señales de control a la memoria y señales de control a los módulos de 
I/O
UC UPD
Output
data
Input
data
Señales
de control
Señales
de estado
Señales de
entrada
(externas)
Señales de
salida
(externas)
B
u
s 
d
e 
C
o
n
t r
o
l
Funciones de la UC
Dana K. Urribarri AC 2016
13
Implementación
de la Unidad de Control
Dana K. Urribarri AC 2016 14
Implementación de la UC
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
● Contador
● Microprogramación
Dana K. Urribarri AC 2016 15
Implementación de la UC
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
● Contador
● Microprogramación
Control Cableado
Dana K. Urribarri AC 2016 16
Implementación de la UC
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
● Contador
● Microprogramación Control Microprogramado
Dana K. Urribarri AC 2016
17
Control cableado
Implementación de la UC
Dana K. Urribarri AC 2016 18
Ejemplo
● Tenemos una ALU de la cual nos interesan las 
siguientes operaciones:
Implementación de la UC
Control de la ALU Función
0000 AND
0001 OR
0010 suma
0110 resta
0111 menor que
Dana K. Urribarri AC 2016 19
Ejemplo
● Las siguientes 4 instrucciones utilizan la ALU:
– R-type: Operaciones registro a registro, dos fuentes y 
uno destino. Tienen el siguiente formato:
Implementación de la UC
Instrucción Operación
R-type cualquiera
load suma
store suma
Branch on equal resta
Opcode R
S
R
T
R
D
... Funct
6 bits 5 bits 5 bits 5 bits ... 6 bits
Dana K. Urribarri AC 2016 20
UC Combinacional
● Procesador único-ciclo
Implementación de la UC
Dana K. Urribarri AC 2016 21
● 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.
UC Combinacional
Implementación de la UC
Dana K. Urribarri AC 2016 22
3:0
Estructura
interna de la UC 
combinacional
para el
Procesador
único-ciclo
Implementación de la UC
Dana K. Urribarri AC 2016 23
UC Combinacional
Main decoder
Salidas a partir del 
opcode.
Incluye una señal de 2 
bits ALUOp para el 
siguiente bloque.
Implementación de la UC
ALUOp
1:0 Significado
00 suma
01 resta
10 mirar campo funct
11 N/a
3:
0 3:0
Dana K. Urribarri AC 2016 24
UC Combinacional
Main Decoder: Tabla de verdad:
– Entradas: 6 bits del opcode de cada instrucción
– Salidas:
● 6 señales de control
● 2 bits de ALUOp
Implementación de la UC
Instrucción Opcode RegWrite RegDst ALUSrc Branch MemWrite MemToReg ALUOp
R-type 000000 1 1 0 0 0 0 10
load 100011 1 0 1 0 0 1 00
store 101011 0 X 1 0 1 X 00
branch 000100 0 X 0 1 0 X 01
Dana K. Urribarri AC 2016 25
UC Combinacional
Main Decoder
Implementación de la UC
Dana K. Urribarri AC 2016 26
UC Combinacional
ALU Decoder
A partir de la 
señal ALUOp y el campo 
funct, computa la 
operación de 
entrada a la ALU 
(ALUControl)
Implementación de la UC
3:
0 3:0
Dana K. Urribarri AC 2016 27
ALU Decoder: Tabla de verdad
UC Combinacional
Implementación de la UC
ALUOp Campo Funct
Operación
ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0
0 0 X X X X X X 0010
0 1 X X X X X X0110
1 0 X X 0 0 0 0 0010
1 X X X 0 0 1 0 0110
1 0 X X 0 1 0 0 0000
1 0 X X 0 1 0 1 0001
1 X X X 1 0 1 0 0111
Dana K. Urribarri AC 2016 28
UC Combinacional
ALU Decoder
Implementación de la UC
Dana K. Urribarri AC 2016 29
Control del Pipeline
Procesador en Pipeline
Implementación de la UC – UC Combinacional
FETCH DECODE EXECUTE MEMORY WB
Dana K. Urribarri AC 2016 30
Control del Pipeline
● Tiene las mismas señales de control que el 
procesador único-ciclo.
● Utiliza la misma UC
● Las señales de control se activan en la etapa 
DECODE pero se utilizan en las etapas 
siguientes.
Implementación de la UC – UC Combinacional
Dana K. Urribarri AC 2016 31
Control del Pipeline
● Se extienden los registros interetapas para que 
incluyan la información de control.
Implementación de la UC – UC Combinacional
Dana K. Urribarri AC 2016 33
Control del Pipeline
● Además de registros interetapas, agrega 
multiplexores y lógica de control para resolver 
hazards y forwarding.
Implementación de la UC – UC Combinacional
Dana K. Urribarri AC 2016 34
UC con una Máquina de estados
● Procesador múltiple-ciclo
Implementación de la UC
Dana K. Urribarri AC 2016 35
UC con una Máquina de estados
Opcode Estado
Salidas 
Entradas
Señales
de control
Lógica
de control
Nuevo
estado
Implementación de la UC
Dana K. Urribarri AC 2016 36
Estructura
interna de la
UC combinada
para un
Procesador
múltiple-ciclo
Implementación de la UC
3:0
Dana K. Urribarri AC 2016 37
Estructura
interna de la
UC combinada
para un
Procesador
múltiple-ciclo
Circuito 
combinacional
Implementación de la UC
3:0
Dana K. Urribarri AC 2016 38
Estructura
interna de la
UC combinada
para un
Procesador
múltiple-ciclo
Circuito 
secuencial
Implementación de la UC
3:0
Dana K. Urribarri AC 2016 39
UC con una Máquina de estados
El comportamiento de la UC se puede representar con una tabla de estados:
● Si corresponde al estado interno de la máquina
● Ij corresponde al opcode de la instrucción j
● Si,j corresponde al estado que pasa la máquina estando en el estado Si mientras ejecuta Ij
● zi,j corresponde a las señales de control cuando ejecutando Ij se está en el estado Si.
● Para n estados se necesitan P bits, P = éLog2 né
● Para m opcodes se necesitan Q bits, Q = éLog2 mé
Estado I1 I2 ... Im
S
1
S
1,1
, z
1,1
S
1,2
, z
1,2
... S
1,m
, z
1,m
S
2
S
2,1
, z
2,1
S
2,2
, z
2,2
... S
2,m
, z
2,m
...
S
n
S
n,1
, z
n,1
S
n,2
, z
n,2
... S
n,m
, z
n,m
Implementación de la UC
Dana K. Urribarri AC 2016 40
UC con una Máquina de estados
Con una ROM
Si tenemos
● 20 bits de salidas (4 bits del siguiente estado, 2 bits de ALUOp y 16 bits 
de señales de control)
● 10 bits de entrada (6 bits de opcode y 4 bits del estado actual)
● Una única ROM de 210 x 20 = 20 Kbits
● Muchas combinaciones serán don't care. Mejores resultados usando 
más de una ROM.
Implementación de la UC
z
1
z
2 ... zr Estado0 Estado1 ... EstadoP
{0,1,X} {0,1,X} ... {0,1,X} {0,1,X} {0,1,X} ... {0,1,X}
{0,1,X} {0,1,X} ... {0,1,X} {0,1,X} {0,1,X} ... {0,1,X}
... ... ... ...
{0,1,X} {0,1,X} ... {0,1,X} {0,1,X} {0,1,X} ... {0,1,X}
n × m ≈
2P+Q entradas
r salidas de control P bits para el prox. estado
Dana K. Urribarri AC 2016 41
UC con una Máquina de estados
Con un PLA
● Codifica únicamente 
los términos producto 
necesarios.
● Reduce la cantidad de 
almacenamiento 
requerido para control.
● Tamaño proporcional a:
(#entradas + #salidas) 
x #terminos producto
Implementación de la UC
Dana K. Urribarri AC 2016 42
UC con una Máquina de estados
Con un PLA
● 10 entradas
20 salidas
17 términos producto
Tamaño:
(10+20) 17 = 510
Implementación de la UC
Dana K. Urribarri AC 2016 43
UC con una Máquina de estados
Tamaño con 2 PLAs
● 4 entradas
16 salidas
10 términos producto
Tamaño:
(4 + 16) 10 = 200
● 10 entradas
4 salidas
10 términos producto
Tamaño: (10+4) 10 = 140
Implementación de la UC
Dana K. Urribarri AC 2016 44
UC con una Máquina de estados 
Con un contador
● Usa un contador para calcular el próximo estado
● Debe contemplan saltos a próximos estados no 
consecutivos:
– Basándose en el opcode
– Inicio próxima instrucción
Implementación de la UC
Dana K. Urribarri AC 2016 45
UC con una Máquina de estados 
ROM 1 ROM 2
Implementación de la UC
AddrCtl Acción
0 Estado 0
1 ROM 1
2 ROM 2
3 Estado incrementado
Dana K. Urribarri AC 2016
46
Microprogramación
Implementación de la UC
Dana K. Urribarri AC 2016 47
Microprogramación
● La implementación de la UC como una máquina 
de estados usando un contador podría verse 
como una computadora.
● El concepto de microprogramación fue propuesto 
por M.V. Wilkes en 1951 y utilizaba un decoder y 
una ROM compuesta por una matriz de diodos.
Implementación de la UC
Dana K. Urribarri AC 2016 48
Microprogramación
● Microoperación: Pasos elementales en los que se 
puede dividir la ejecución de una instrucción:
– Incrementar el PC
– Transferencia registro a registro
– Suma en la ALU
– ...
● Microinstrucción: conjunto de microoperaciones 
que ocurren en un momento de tiempo.
● Microprograma (o firmware): Secuencia de 
microinstrucciones.
Implementación de la UC
Dana K. Urribarri AC 2016 49
Microprogramación
Implementación de la UC
● Durante un ciclo, se activa una fila de la matriz con un pulso.
● Genera las señales donde haya un diodo presente.
● La parte izquierda genera las señales de control.
● La parte derecha genera la próxima dirección.
Memoria de control
Dirección
M
ic
ro
in
st
ru
cc
io
ne
s
Dana K. Urribarri AC 2016 50
Microprogramación
Implementación de la UC
● La próxima dirección será el opcode del IR o la dirección proveniente de la 
matriz (dependiendo de las señales de control)
Memoria de control
Dirección
M
ic
ro
in
st
ru
cc
io
ne
s
Dana K. Urribarri AC 2016 51
Microprogramación
● Por cada microoperación, la UC debe generar 
un conjunto predefinido de señales de control.
● Las señales de control pueden valer 1 (activada) 
o 0 (desactivada).
● Cada microoperación puede representarse 
como un patrón diferente de 1s y 0s.
● Este patrón se llama palabra de control (control 
word).
● Las microinstrucciones se organizan en una 
memoria.
Implementación de la UC
Dana K. Urribarri AC 2016 52
Formato de la microinstrucción
Todas las microinstrucciones tiene tres campos 
importantes:
● Palabra de control
● Dirección de la (posible) próxima microinstrucción
● Bits de condición
Implementación de la UC - Microprogramación
Palabra de control Bits de condición Dirección
Dana K. Urribarri AC 2016 53
Formato de la microinstrucción
La longitud de la microinstrucción está relacionada a:
1) El número de microoperaciones que activa 
simultáneamente (grado de paralelismo)
2) El grado de codificación de la información de 
control.
En función del tamaño de la microinstrucción:
● Microprogramación vertical
● Microprogramación horizontal
Implementación de la UC - Microprogramación
Dana K. Urribarri AC 2016 54
Microprogramación vertical
– Formato corto de microinstrucción.
– En cada ciclo puede activarse un número muy limitado 
de microoperaciones (x ej. 1).
– Alto grado de codificación de la información de 
control.
Implementación de la UC - Microprogramación
Dana K. Urribarri AC 2016 55
Microprogramación horizontal
– Formato largo de microinstrucción.
– En cada ciclo puede activarse un gran número de 
microoperaciones.
– Poca codificación de la información de control.
El concepto de VLIW desciende de la microprogramación horizontal
Implementación de la UC - Microprogramación
Dana K. Urribarri AC 2016 56
Codificación de la información de control
210 13
Campos de Control
Líneas de Control
Sin codificación
Implementación de la UC - Microprogramación
Dana K. Urribarri AC 2016 57
Codificación de la información de control
3 Campos de Control
Líneas de Control
210
Decoder 2Decoder 1
Decoder
0
Único Campo de Control
Líneas de Control
Decoder
Codificaciónmedia Codificación completa
Implementación de la UC - Microprogramación
Dana K. Urribarri AC 2016 58
Interpretación de la microinstrucción
1) Activar o desactivar las líneas de control 
siguiendo el patrón especificado por la palabra de 
control.
Esto ejecuta una o más microoperaciones.
2) Si la condición indicada por los bits de condición 
es:
i. Falsa: La próxima microinstrucción a ejecutar es la 
microinstrucción consecutiva.
ii. Verdadera: La próxima microinstrucción a ejecutar es 
la indicada en el campo de dirección.
Implementación de la UC - Microprogramación
Dana K. Urribarri AC 2016 59
Funcionamiento
1) La lógica de 
secuenciamiento dispara 
una operación de lectura 
en la memoria de 
control.
Implementación de la UC - Microprogramación
Dana K. Urribarri AC 2016 60
Funcionamiento
2) La palabra cuya 
dirección se especifica 
en el Control Address 
Register (CAR) se 
almacena en el Control 
Buffer Register (CBR)
Implementación de la UC - Microprogramación
Dana K. Urribarri AC 2016 61
Funcionamiento
3) El contenido del CBR 
genera señales de 
control e información 
sobre la próxima 
dirección.
Implementación de la UC - Microprogramación
Dana K. Urribarri AC 2016 62
Funcionamiento
4) A partir de la información 
sobre la próxima instrucción 
del CBR y flags de la ALU, la 
lógica de control carga la 
próxima dirección en el CAR.
i. Cargar la instrucción 
consecutiva (+1 al CAR)
ii. Carga el campo de dirección 
del CBR en el CAR, 
basándose en la condición de 
salto de la microinstrucción.
iii.Carga el CAR en función de 
del opcode del IR.
Implementación de la UC - Microprogramación
Dana K. Urribarri AC 2016 63
Funcionamiento
Implementación de la UC - Microprogramación
Decodifica el opcode del IR 
en una dirección de la 
memoria de control.
Decodifica los campos de 
control de la 
microinstrucción.
Se usa solo en 
Microprogramación 
vertical.
Dana K. Urribarri AC 2016
64
Comparación
Dana K. Urribarri AC 2016 65
Ventajas y desventajas
Control cableado
– Lógica compleja para el 
secuenciamiento de las 
micro-operaciones
– Costoso de mantener y 
actualizar
+ Es más rápido
Dominante en arquitecturas 
RISC por el formato más 
simple de instrucciones.
Control microprogramado
+ Diseño simplificado
+ Más económico
+ Menos propenso a 
errores
– A tecnología 
comparable, es más lento.
Dominante en 
arquitecturas CISC.
Implementación de la UC
Dana K. Urribarri AC 2016 66
Bibliografía
● Capítulo 7. David Money Harris & Sarah L. Harris. Digital 
Design and Computer Architecture, Elsevier. 2013, 2da Ed.
● Capítulos 19 y 20. William Stallings. Computer Organization 
and Architecture. Designing for Performance. Pearson. 
2013, 9na Ed.
● Apéndice D. David A. Patterson & John L. Hennessy. 
Computer Organization and Design. The Hardware/Software 
Interface. Elsevier Inc. 2014, 5ta Ed.
● Suplementaria
– J. Hennessy & D. Patterson. Computer Architecture: A Quantitative 
Approach. Morgan Kaufmann Publishers INC. 2011, 5ta Ed.
– J. Hayes, Computer Architecture and Organization. McGraw-Hill 
1978
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 33
	Slide 34
	Slide 35
	Slide 36
	Slide 37
	Slide 38
	Slide 39
	Slide 40
	Slide 41
	Slide 42
	Slide 43
	Slide 44
	Slide 45
	Slide 46
	Slide 47
	Slide 48
	Slide 49
	Slide 50
	Slide 51
	Slide 52
	Slide 53
	Slide 54
	Slide 55
	Slide 56
	Slide 57
	Slide 58
	Slide 59
	Slide 60
	Slide 61
	Slide 62
	Slide 63
	Slide 64
	Slide 65
	Slide 66

Otros materiales

Materiales relacionados

11 pag.
Tema 1 - Arquitectura de Von Newman(1)

SIN SIGLA

User badge image

ramirogarcia04zt

8 pag.
TRABAJO PRACTICO N4

SIN SIGLA

User badge image

nahuelk

11 pag.
TRABAJO PRACTICO N5

SIN SIGLA

User badge image

nahuelk