Você está na página 1de 5

DAVID A. PATTERSON • JOHN L.

HENNESSY

1
estructura y
diseño de computadores
interficie circuitería/programación

EDITORIAL REVERTÉ, S. A.
5

El procesador: Camino de
datos y control

Compilador

Interficie

Ordenador
Control
En una materia fundamental,
Entrada
ningún detalle es pequeño.
Memoria
Proverbio francés.

Evaluación del Unidad de proceso


rendimiento

Los cinco tipos de componentes de un computador


Salida
Procesador

5.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 5.7 Casos reales: Realización del Pentium Pro . . . . 401
5.2 Construcción del camino de datos . . . . . . . . . . 329 5.8 Falacias y errores habituales . . . . . . . . . . . . . . . 403
5.3 Realización de un esquema sencillo . . . . . . . . . 336 5.9 Conclusiones finales . . . . . . . . . . . . . . . . . . . . . 405
5.4 Realización multiciclo . . . . . . . . . . . . . . . . . . . . 362 5.10 Perspectiva histórica y lecturas adicionales . . . 407
5.5 Microprogramación: Simplificación del 5.11 Términos clave . . . . . . . . . . . . . . . . . . . . . . . . . 410
diseño del control . . . . . . . . . . . . . . . . . . . . . . . 383 5.12 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
5.6 Excepciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394

Cap. 5: El procesador: Camino de datos y control  323


5.3 Realización de un esquema simple  337

Supóngase que va a construirse un camino de datos a partir de las piezas Construcción de un


que se han visto en las figuras 5.5, 5.7, 5.9 y 5.10. El más sencillo de los camino de datos
diseños intentará ejecutar todas las instrucciones en un solo ciclo. Esto sencillo
significa que ningún elemento del camino de datos puede utilizarse más
de una vez por instrucción, de forma que cualquier recurso que se necesite
más de una vez deberá estar replicado. Por tanto, la memoria de instruc-
ciones ha de estar separada de la memoria de datos. Aunque se necesite
duplicar algunas de las unidades funcionales, muchos de estos elementos
pueden compartirse en los diferentes flujos de instrucciones cuando los
caminos de datos individuales de las secciones previas se combinen.
Para compartir un elemento del camino de datos entre dos clases de
instrucciones diferentes se requiere que dicho elemento disponga de
múltiples entradas, así como de una señal de control que seleccione la
adecuada en cada instante. Esta selección se realiza normalmente
mediante un dispositivo llamado multiplexor, aunque su nombre más
correcto quizás sería selector de datos. El multiplexor, introducido en el
capítulo anterior (figura 4.8 de la página 221), escoge entre diferentes
entradas según el valor de la señal de control.

Composición de un camino de datos 5.1 Ejemplo

El camino de datos de las instrucciones aritmético-lógicas (o tipo R) que apa-


rece en la figura 5.7 de la página 332 así como el de las instrucciones de
acceso a memoria de la figura 5.9 de la página 334 son muy parecidos, siendo
las principales diferencias las siguientes:
• La segunda entrada de la ALU es, o bien un registro en caso de una instruc-
ción aritmético-lógica, o bien los bits de menor peso de una instrucción de
memoria con su signo extendido,
• El valor guardado en el registro destino, o bien proviene de la ALU (para
instrucciones de tipo R) o de memoria (en caso de load).
Determine cómo combinar ambos caminos de datos utilizando para ello
multiplexores y sin duplicar aquellos elementos que sean comunes en las figu-
ras 5.7 y 5.9. Ignore todo lo relacionado con el control de los multiplexores.

Para combinar ambos caminos de datos y usar un único banco de registros y Respuesta
una sola ALU, la segunda entrada de ésta ha de soportar dos tipos de datos
diferentes, además de dos posibles caminos para el dato a almacenar en el
banco de registros. De esta manera, se coloca un multiplexor en la entrada de
la ALU y un segundo en la entrada de datos del banco de registros. La figura
5.11 muestra este nuevo camino de datos.

La parte del camino de datos encargada de la búsqueda de instruccio-


nes (mostrada en la figura 5.5 de la página 331), puede añadirse fácil-
mente a este nuevo camino de datos. En la figura 5.12 puede verse el
resultado obtenido. Este nuevo camino de datos tiene memorias separa-
342  Cap. 5: El procesador: Camino de datos y control

señales de control de la ALU. Debido a que la tabla de verdad es muy


grande (28 = 256 entradas) y teniendo en cuenta que para muchas de
dichas combinaciones los valores de la salida no tienen importancia, úni-
camente se dan los valores de las salidas para aquellas entradas de la tabla
donde el control de la ALU debe tener un valor específico. Las diferentes
tablas de verdad que se irán viendo a lo largo de este capítulo contendrán
únicamente aquellos subconjuntos de entradas que deban estar activa-
das, eliminando aquellos cuyos valores de salida sean indeterminados.
Este método tiene un inconveniente que se analizará en la sección C.2
del Apéndice C.
Debido a que en muchos casos algunos valores de las entradas no son
importantes, se pretende que sean indeterminados. Un término de este
tipo (representado en la tabla mediante una X en la columna de entrada
correspondiente) indica que la salida es independiente del valor de dicha
entrada. Por ejemplo, cuando el campo ALUOp vale 00, caso de la pri-
mera fila de la tabla de la figura 5.15, la señal de control de la ALU siem-

ALUOp Campo de la función


Operación
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

FIGURA 5.15 Tabla de verdad de los 3 bits de control de la ALU (también llama-
dos Operación). Las entradas son ALUOp y el código de función. Únicamente se mues-
tran aquellas entradas para las cuales la señal de control de la ALU tiene sentido. También
se han añadido algunas entradas cuyo valor es indeterminado. Por ejemplo, el campo
ALUOp no utiliza la codificación 11, de forma que la tabla de verdad puede contener las
entradas 1X y X1 en vez de 10 y 01. También, cuando se utiliza el código de función, los 2
primeros bits (F5 y F4) de dichas instrucciones son siempre 10, de forma que también se
consideran indeterminados y se reemplazan por XX en la tabla de verdad.

pre será 010, independientemente del código de función. Es decir, en este


caso, el código de la función se considera indeterminado en esta fila de la
tabla de verdad. Más tarde se verán ejemplos de otro tipo de términos
indeterminados. Si no se está familiarizado con este tipo de términos,
véase el Apéndice B para mayor información.
Una vez que se ha construido la tabla de verdad, ésta puede optimi-
zarse y entonces pasar a su realización mediante puertas lógicas. Este pro-
352


0
M
u
Sumador x
Sumador 1
Resultado
de la ALU
4
Desp. 2
a la izqu.
RegDest
SaltoCond
LeerMem
MemaReg
Instrucción [31-26]
Control ALUOp
EscrMem
FuenteALU
EscrReg
Cap. 5: El procesador: Camino de datos y control

Instrucción [25-21] Reg. de Registros


Dirección lectura 1
PC de lectura Dato
Instrucción [20-16] Reg. de leído 1 ALU Cero
Instrucción lectura 2
0 Dato Resultado
[31-0] Reg. de 0 Dato 1
M leído 2 de la ALU Dirección
escritura M leído M
Memoria de u
u u
instrucciones Instrucción [15-11] x Dato a Memoria
x x
1 escribir de datos
1 0
Dato a
escribir

Instrucción [15-0] 16 32
Extensión Control
de signo de la
ALU

Instrucción [5-0]

FIGURA 5.22 La segunda fase de la ejecución de una instrucción de tipo R lee los dos registros fuente del banco de registros. En este paso, la
unidad de control principal calcula los valores de las líneas de control utilizando para ello el código de operación. Estas unidades pasan a estar activas y se
unen a aquellas que ya lo habían estado durante la carga de la instrucción, mostrada en la figura 5.21.