Вы находитесь на странице: 1из 16

CAPTULO VII

SEGMENTACIN ENCAUZADA
(PIPELINE)






CAPTULO VII SEGMENTACIN ENCAUZADA (PIPELINE)




129


7.1 INTRODUCCIN

El pipeline segmentacin encauzada, como se conoce en espaol, es una tcnica utilizada en
el diseo e implantacin de microprocesadores en la cual mltiples instrucciones pueden ejecutarse
simultneamente. La tcnica de la segmentacin encauzada no reduce el tiempo que tarda una
instruccin en ejecutarse, slo incrementa el nmero de instrucciones que se ejecutan
simultneamente; es decir, mejora el rendimiento incrementando la productividad de las
instrucciones en lugar del tiempo de ejecucin de las instrucciones individuales.

Es fcil entender el concepto de segmentacin encauzada si pensamos en una lnea de ensamble,
en donde cada etapa de la lnea completa una parte del trabajo total. Al igual que en la lnea de
ensamble, el trabajo que se realiza para cada instruccin se descompone en partes ms pequeas;
cada una de estas partes, denominadas etapas segmentos, necesitan una fraccin del tiempo total
para completar la instruccin.

Entre dos etapas de la lnea de ensamble se coloca un registro de acoplo, tambin denominado
registro de segmentacin, que se encarga de guardar los datos y las seales de control necesarias
para etapas posteriores. Por ejemplo, el registro de acoplo situado entre las etapas 2 y 3 de la figura
7.1 guarda los datos y las seales de control generadas en la etapa 2 para su uso posterior en la etapa
3. Gracias a los registros de acoplo es posible manejar mltiples instrucciones al mismo tiempo.










Figura 7.1. Etapas o segmentos.


De la figura 7.2 se observa que la ejecucin de una instruccin consta de cuatro etapas o
mdulos: 1) traer la instruccin, 2) decodificarla, 3) traer operandos, y 4) ejecutarla. Si cada uno de
estos mdulos es independiente de los dems, entonces, en el tiempo n se empezara a traer la
instruccin In; al mismo tiempo se estara decodificando la instruccin In-1, trayendo los operandos
de la instruccin In-2 y terminando de ejecutar la instruccin In-3. Esto significa que una vez que el
cauce est lleno, idealmente, en cada ciclo de reloj se estara ejecutando una instruccin.

Un aspecto de suma importancia en la segmentacin encauzada es la duracin del ciclo de reloj.
Este reloj es el encargado de sincronizar todas las etapas de la segmentacin, por lo tanto, debe ser
lo suficientemente grande para acomodar las operaciones de la etapa ms lenta.

Idealmente, la mejora de velocidad debido a la segmentacin encauzada es igual al nmero de
etapas, esto es, una arquitectura segmentada de cuatro etapas es cuatro veces ms rpida que una
arquitectura sin esta tecnologa. Sin embargo, esta velocidad no se alcanza en la realidad ya que en
algunas ocasiones el cauce tiene que ser llenado de nuevo, como por ejemplo, cuando ocurre un
salto; en este caso, la secuencia de instrucciones que estaba dentro del cauce tiene que ser eliminada

DISEO DE MICROPROCESADORES






CAPTULO VII SEGMENTACIN ENCAUZADA (PIPELINE)




130


para comenzar a ejecutar nuevas instrucciones a partir de la direccin de salto. Adicionalmente,
debido a que las etapas estn equilibradas imperfectamente, el tiempo por instruccin en una
arquitectura segmentada no tiene el valor mnimo posible y la mejora en velocidad ser menor que
el nmero de etapas.

















Figura 7.2. Diagrama de Tiempos / Tareas.


7.2 LA ARQUITECTURA SEGMENTADA DEL 68HC11

Si revisamos detenidamente el repertorio de instrucciones del 68HC11 notaremos que cada
instruccin ejecuta una serie de pasos. En general, los pasos a seguir son los siguientes.

1. Traer de la memoria la instruccin que se desea ejecutar (a este paso se le conoce como
ciclo fetch bsqueda de la instruccin)
2. Decodificacin de la instruccin
3. Si la instruccin requiere leer un operando de la memoria, entonces se calcula la direccin
efectiva de ese operando y se lee el dato de la memoria
4. Si lo requiere la instruccin, se leen de los registros internos del microprocesador los
operandos necesarios
5. Ejecucin, es decir, se realiza una operacin en la unidad de procesos aritmticos con los
operandos ledos anteriormente
6. Se guardan los resultados de la operacin y se actualiza el registro de banderas

Observe que estos pasos son similares a los ejecutados en las cartas ASM para las instrucciones
vistas en el captulo VI. La arquitectura segmentada del 68HC11 tambin ejecutar estos mismos
pasos, pero agrupados en las siguientes cuatro etapas.

1. Etapa IF (traer la instruccin / instruction fetch). La instruccin a ejecutar es leda de la
memoria de instrucciones
2. Etapa ID (decodificacin / instruction decode). Se decodifica la instruccin y se traen los
operandos necesarios por la instruccin (tanto de memoria como de registros internos)
3. Etapa EX (ejecucin / execution). Se procesan los operandos en la UPA (unidad de
procesos aritmticos)
4. Etapa WB (post-escritura / write back). Se guardan resultados

DISEO DE MICROPROCESADORES








CAPTULO VII SEGMENTACIN ENCAUZADA (PIPELINE)




131












Figura 7.3. Etapas propuestas para la arquitectura segmentada del 68HC11.


A continuacin se describen las tareas que se ejecutan en cada etapa y se presenta un diagrama de
bloques con el hardware necesario para su implantacin. Hay que tener presente que esta
arquitectura no soporta todo el conjunto de instrucciones del 68HC11; algunas instrucciones no son
soportadas y otras requieren redefinir el formato de la instruccin, agregar hardware adicional,
para su posible implantacin.


7.2.1 ETAPA 1 - LECTURA DE LA INSTRUCCIN

El primer paso que realiza todo microprocesador es leer de memoria la siguiente instruccin a
ejecutar. Recordemos que en la arquitectura secuencial del 68HC11, descrita en el captulo VI, el
primer paso que se realiza para cada instruccin es su ciclo fetch, es decir, traer de memoria la
instruccin a ejecutar. Enseguida, si la instruccin lo requera, tambin eran ledos de memoria los
datos y/o las direcciones en memoria de los datos. Este proceso necesitaba acceder a memoria cierto
nmero de veces, segn la instruccin que se tratase.

Para una arquitectura segmentada, acceder tantas veces a la memoria complica el hardware y
retrasa el comienzo de la siguiente instruccin a ejecutar. No olvide que la segmentacin encauzada
recomienda que el flujo de datos sea siempre hacia adelante, es decir, que se avance hacia etapas
posteriores en el cauce; sin embargo, habr etapas, como la de post-escritura, en la que se necesitar
retroceder en el cauce.

Una manera de evitar los accesos a memoria repetidamente es leyendo en una sola pasada toda la
informacin que la instruccin vaya a necesitar, esto es, leer el cdigo de operacin de la
instruccin, leer los datos inmediatos y leer las direcciones de memoria. Para ello, el tamao de la
instruccin para el 68HC11 segmentado ha sido extendido a 32 bits, los cuales contendrn toda la
informacin necesaria segn el modo de direccionamiento del que se trate. Adems, la memoria
externa ser separada en memoria de instrucciones o programa y en memoria de datos.

Como resultado del aumento en el tamao de la instruccin, el formato de sta se ha modificado
de la siguiente manera.






Figura 7.4. Formato general para las instrucciones del 68HC11 segmentado.

DISEO DE MICROPROCESADORES






CAPTULO VII SEGMENTACIN ENCAUZADA (PIPELINE)




132


El campo ID, bits 31 al 24, sirven para especificar sobre qu registro ndice se va a operar, es
decir, se trata del registro ndice IX del registro IY. El campo CDIGO, bits 23 al 16, guardan el
cdigo de operacin de la instruccin, tal y como lo establece el conjunto de instrucciones del
68HC11. Y los bits 15 al 0 pueden almacenar el valor de un dato inmediato, una direccin, un
desplazamiento, nada, segn el modo de direccionamiento que se trate. Los formatos vlidos para
los bits 15 al 0 se muestran en la siguiente tabla.


Bits 15-8
hh
00
jj
00
00
nn
uu
00


Bits 7-0
ll
dd
kk
ii
ff
mm
vv
rr


Descripcin
Direccin de 16 bits
Direccin de 8 bits
Dato inmediato de 16 bits
Dato inmediato de 8 bits
Desplazamiento de 8 bits sin signo
Mscara de 16 bits
Desplazamiento de 16 bits con signo
Desplazamiento de 8 bits con signo

Tabla 7.1. Contenido para los 16 bits menos significativos del formato de instrucciones.


A continuacin se analizan algunos ejemplos para dejar en claro el formato de instrucciones.


El campo cdigo, 0x86, nos indica que la instruccin a
0x00 0x86
CDIGO
0x12
jj
0x34
kk
ejecutar es ldaa con modo de direccionamiento inmediato. El
dato inmediato, 0x1234, se encuentra guardado en los 16 bits
menos significativos del formato de la instruccin.

El campo cdigo, 0x08, junto con el campo ID, 0x18, nos
0x18
ID
0x08
CDIGO
0x00 0x00
indican que la instruccin a ejecutar es iny. Como iny utiliza
el modo de direccionamiento inherente, el resto de los
campos no son relevantes.

El campo cdigo, 0xF7, nos indica que la instruccin a
0x00 0xF7
CDIGO
0x50
hh
0x48
ll
ejecutar es stab con modo de direccionamiento extendido. La
direccin extendida, 0x5048, se encuentra guardada en los 16
bits menos significativos del formato de la instruccin.


La siguiente figura muestra los formatos de instruccin genricos para los modos de
direccionamiento directo y extendido.








Figura 7.5. Formatos para los modos de direccionamiento directo y extendido.

DISEO DE MICROPROCESADORES






CAPTULO VII SEGMENTACIN ENCAUZADA (PIPELINE)




133


Note que en ambos casos se estn ocupando los 32 bits del formato de la instruccin, por lo tanto,
resulta poco efectivo mantener ambos formatos, ya que con el modo extendido es posible manejar el
modo directo. Algo similar ocurre con el formato de los desplazamientos con signo, y con el
formato de los datos inmediatos de 8 y 16 bits. An con el conocimiento de que hay formatos
repetidos innecesarios, stos sern mantenidos con el fin de adaptar la nueva arquitectura al
conjunto de instrucciones que ya habamos manejado en el captulo VI.

Finalmente, el hardware para la etapa de la lectura de la instruccin queda de la siguiente manera.









































Figura 7.6. Hardware para la etapa IF - Lectura de la instruccin.


En esta etapa se lee de la memoria la instruccin a ejecutar y se almacena en el registro de
segmentacin IF/ID. La direccin de esta instruccin est dada por el contador de programa (PC);
dicha direccin se incrementa y se vuelve a cargar en el PC para ser leda en el siguiente ciclo de
reloj. La direccin incrementada tambin se guarda en el registro de segmentacin IF/ID, pues es
posible que la necesite otra instruccin posteriormente, por ejemplo, la instruccin bra.



DISEO DE MICROPROCESADORES






CAPTULO VII SEGMENTACIN ENCAUZADA (PIPELINE)




134


7.2.2 ETAPA 2 - DECODIFICACIN DE LA INSTRUCCIN /
CLCULO DE LA DIRECCIN EFECTIVA / LECTURA DE OPERANDOS

Durante esta etapa, la instruccin leda en la etapa anterior es decodificada. Una vez que se
conoce la instruccin a ejecutar, el mdulo de control genera las seales de control que gobernarn
el hardware de esta etapa y de etapas posteriores. Por ejemplo, las seales de control que se emplean
en la segunda etapa se encargan de informarle a los distintos componentes de esta etapa qu
operaciones realizar. Estas operaciones consisten en lectura de operandos de registros, clculo de
direcciones, lectura de operandos de la memoria de datos, principalmente.

Obsrvese que la memoria de instrucciones o de programa ha sido separada de la memoria de
datos, pues de estar unidas, la contina lectura de operandos y escritura de resultados demorara la
lectura de la siguiente instruccin a ejecutar. El hardware para esta etapa se muestra en la figura 7.7.











































Figura 7.7. Hardware para la etapa ID - Decodificacin de la instruccin y lectura de operandos.



DISEO DE MICROPROCESADORES






CAPTULO VII SEGMENTACIN ENCAUZADA (PIPELINE)




135


El mdulo de control de la figura 7.7 es el encargado de generar todas las seales de control.
Algunas de estas seales sern utilizadas durante esta etapa y otras sern guardadas en los registros
de segmentacin para su utilizacin en etapas posteriores. La generacin de las seales de control es
posible gracias a la informacin que le brindan al mdulo las lneas instr[31:16], pues estas lneas
transportan el cdigo de operacin de la instruccin con la informacin suficiente para saber de qu
instruccin se trata y su modo de direccionamiento.

Por otra parte, en el mdulo de registros internos se encuentran los acumuladores A y B, y los
registros internos IX, IY, SP y AUX. Todos estos registros son de 16 bits de tamao. El siguiente
diagrama muestra la disposicin de todos ellos dentro del mdulo.



















Figura 7.8. Mdulo de registros internos.


La lnea de control SelRegR le indica al mdulo qu registros deseamos leer; la lnea SelRegW le
indica en qu registro se desea escribir el valor de DatoW; y las salidas D1 y D2 transportan los
valores ledos de dichos registros. Posteriormente se describir el funcionamiento de la lgica
interna de este mdulo, la cual nos permitir adelantar datos, y evitar lecturas y escrituras al mismo
tiempo en el mismo registro. A continuacin se muestran las tablas para la escritura y lectura de los
registros internos.



SelRegW
0
1
2
3
4
5
6


Registro que se
escribe
Ninguno
ACCA
IX
IY
ACCB
AUX
SP

Tabla 7.2. Seleccin de los registros para escritura.



DISEO DE MICROPROCESADORES








CAPTULO VII SEGMENTACIN ENCAUZADA (PIPELINE)


Registro seleccionado




136
SelRegR

0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
para lectura
D1 D2
0 0
ACCA ACCB
ACCB IX
ACCB IY
ACCA 0
ACCB 0
ACCA IX
ACCA IY
AUX 0
0 IX
0 IY
0 SP
ACCA SP
ACCB SP
IX SP
IY SP

Tabla 7.3. Seleccin de los registros para lectura.


El mdulo sumador/restador de esta etapa se utiliza para calcular incrementos, decrementos, y
sobre todo, para el clculo de la direccin efectiva en instrucciones con modo de direccionamiento
indexado. Ms adelante, se ver un ejemplo de este tipo de instruccin.

Las seales de control para el mdulo sumador/restador son las siguientes: S/ R , permite
seleccionar la operacin a ejecutar, una suma (si vale uno) y una resta (si vale cero); y Cin, que es el
acarreo de entrada al sumador. Note que este mdulo obtiene sus operandos de dos multiplexores. El
primer multiplexor utiliza la seal de control SelS1; si SelS1 vale uno, entonces se elige el bus
instr[15:0], pero si vale cero, entonces se elige el valor de cero. El segundo multiplexor utiliza la
seal de control SelS2; si SelS2 vale uno, entonces se elige el valor de PC, y si vale cero, se elige el
contenido de alguno de los registros internos (D2).


















Figura 7.9. Mdulo sumador / restador y sus seales de control.


DISEO DE MICROPROCESADORES






CAPTULO VII SEGMENTACIN ENCAUZADA (PIPELINE)




137


En esta etapa tambin se encuentra la memoria de datos la cual es totalmente independiente de la
memoria de instrucciones, de ella leeremos operandos, o bien, almacenaremos los resultados de
nuestras operaciones, segn sea el caso.

La nica seal de control que se utiliza en la memoria es MemW, la cual indica si se realiza una
operacin de escritura o de lectura en ella. Si MemW vale uno la operacin a efectuar ser escritura,
y si vale cero la operacin ser lectura. La direccin del dato a leer o escribir en memoria proviene
de un multiplexor, esta direccin se selecciona con la lnea de control SelDir. Cuando SelDir=0 la
direccin que se elige proviene del mdulo sumador/restador; si SelDir=1 proviene del bus
instr[15:0]; y si SelDir=2 la direccin que se toma ser DirW.














Figura 7.10. Memoria de datos y sus seales de control.


Por otra parte, las instrucciones de salto o de acceso relativo utilizan un desplazamiento de 8 bits
con signo para calcular una direccin de salto. El mdulo encargado de calcular esta direccin de
salto es la UPA (unidad de procesos aritmticos) ubicada en la siguiente etapa. Sin embargo, como
se ver ms adelante, la UPA slo ejecuta operaciones de 16 bits, por lo que el desplazamiento de 8
bits con signo necesitar ser extendido a 16 bits. El mdulo encargado de esta tarea es el mdulo de
extensin de signo, quien tomar los 8 bits del desplazamiento con signo y los extender a 16 bits,
repitiendo en los 8 bits ms significativos el bit de signo del desplazamiento original, es decir,

Desplazamiento original Desplazamiento extendido
01100011 0000000001100011
10111100 1111111110111100

Finalmente, existe un multiplexor que selecciona los operandos para la siguiente etapa. Este
multiplexor elige estos operandos de los datos presentes en los buses D1, D2, D3, D4 y D5, segn la
instruccin que se trate. La seleccin de estos operandos se muestra en la siguiente tabla.












DISEO DE MICROPROCESADORES



SelSrcs
0
1
2
3


Operandos seleccionados
OP1 OP2
0 0
D1 D2
D1 D4
D1 D5




CAPTULO VII SEGMENTACIN ENCAUZADA (PIPELINE)




138


4
5
6


D4
D2
D2


D3
D5
D4

Tabla 7.4. Seleccin de los operandos para la etapa de ejecucin.


Los operandos que se seleccionaron utilizando el multiplexor anterior, la direccin efectiva y las
seales de control para las etapas posteriores son guardados temporalmente en el registro de
segmentacin ID/EX.

En resumen, esta segunda etapa se encarga de realizar tres tareas: 1) la decodificacin de la
instruccin y la generacin de las seales de control; 2) el clculo de direcciones efectivas para
datos en memoria; y 3) la lectura de operandos.

La decodificacin es realizada por el mdulo de control el cual revisa el cdigo de operacin de
la instruccin (los dos bytes ms significativos del formato de la instruccin), y con base en l,
genera las seales de control necesarias para la etapa actual y para las etapas posteriores.

La direccin efectiva es una direccin en memoria de donde se lee un dato, o bien, una direccin
en memoria en donde se guarda un dato. Para algunos modos de direccionamiento esta direccin no
es inmediata. Por ejemplo, el modo de direccionamiento indexado, calcula la direccin efectiva
sumando al contenido de un registro base un desplazamiento; en cambio, los modos de
direccionamiento directo y extendido proporcionan la direccin efectiva de forma inmediata.

La lectura de operandos consiste en obtener los datos que se operarn en la siguiente etapa. Los
operandos pueden provenir de los registros internos, de la memoria de datos, o bien, pueden estar
contenidos en el mismo formato de la instruccin. Para obtener el contenido de algunos de los
registros basta con indicar al mdulo de registros internos qu registros se desean leer. Para obtener
el operando de la memoria de datos es necesario contar con la direccin efectiva donde se encuentra
ese dato. Y si el operando est contenido en el formato de la instruccin, como es el caso del
direccionamiento inmediato, la lnea de control SelDato, de uno de los multiplexores, permitir su
seleccin.


7.2.3 ETAPA 3 - EJECUCIN / CLCULO DE BANDERAS Y SALTOS

Esta etapa ejecuta tres tareas: 1) opera los operandos obtenidos en la etapa de decodificacin
(etapa 2); 2) actualiza el registro de estados o banderas; y 3) calcula la condicin de salto.

El hardware para esta etapa se muestra en la figura 7.11.

La unidad de procesos aritmticos (UPA) se encarga de obtener el resultado entre los operandos
segn la operacin establecida en SelOp. SelOp es una seal de control generada en la etapa
anterior, pero que es empleada hasta esta etapa. En la UPA se realizan las operaciones lgicas, las
operaciones aritmticas y los corrimientos, tal y como se muestra en la tabla 7.5.



DISEO DE MICROPROCESADORES






CAPTULO VII SEGMENTACIN ENCAUZADA (PIPELINE)









































Figura 7.11. Hardware para la etapa EX - Ejecucin.




139


SelOp
0
1
2
3
4
5
6
7
8
9
A
B


Operacin ejecutada
Ninguna
OP1 + OP2 + Acarreo
OP1 OP2 Acarreo
OP1 and OP2
OP1 or OP2
OP1 xor OP2
Corrimiento a la izquierda de OP1 con B0 = 0
Corrimiento a la derecha de OP1 con B15 = B15
OP2 OP1 Acarreo
Corrimiento a la derecha de OP1 con B15 = 0
Rotacin a la izquierda de OP1 con B0 = CCCR
Rotacin a la derecha de OP1 con B15 = CCCR

Tabla 7.5. Operaciones de la UPA.



DISEO DE MICROPROCESADORES




CAPTULO VII SEGMENTACIN ENCAUZADA (PIPELINE)




140


El acarreo de entrada al mdulo UPA es seleccionado mediante la seal de control SelC. Si SelC
vale cero, el acarreo elegido proviene del registro de estados (CCCR); si SelC vale uno, entonces el
acarreo elegido es Cadj, el cual es generado por el mdulo de control de la etapa 2 y es establecido a
un cierto valor segn la instruccin que se trate.

Las banderas que se modificaron tras la operacin ejecutada en la UPA son guardadas en el
registro de estados (CCR, Condition Code Register) por el mdulo generador de banderas. La tabla
7.6 muestra la relacin entre la seal de control SelFlags y las banderas que son actualizadas en el
registro de estados por el mdulo generador de banderas.



SelFlags
0
1
2
3
4
5
6
7
8
9
A
B
C


Banderas que son actualizadas
en el CCR
No se modifica el CCR
N, Z, V=0
N, Z, V, C, H
N, Z, V, C
Z
C=0
I=0
V=0
C=1
I=1
V=1
N, Z, V=0, C=1
N, Z, V

Tabla 7.6. Banderas afectadas en CCR por el mdulo generador de banderas.


En caso de ejecutar una instruccin de salto, la UPA calcular la direccin a donde
probablemente se deba saltar, y el mdulo Branch evaluar la condicin de salto para determinar si
en verdad se ejecuta el salto o no. Recuerde que las seales de control, VF y SelBranch, empleadas
en el mdulo Branch fueron generadas en la etapa anterior.

El mdulo Branch genera una seal de salida denominada Branch. Esta seal, generada a partir
de la condicin de salto y del valor de VF, nos permite saber si el salto se realiza o no. Para ello, la
condicin de salto debe ser evaluada; si el resultado de esta evaluacin es igual al valor de VF,
entonces la seal Branch toma el valor de uno, si no, Branch toma el valor de cero. La tabla 7.7
muestra la relacin entre la seal de control SelBranch y la condicin de salto que se evala.












DISEO DE MICROPROCESADORES


SelBranch
0
1
2
3
4


Condicin a evaluar
Se compara con cero
C
Z
N V
Z+(N V)




CAPTULO VII SEGMENTACIN ENCAUZADA (PIPELINE)




141


5
6
7


C+Z
N
V

Tabla 7.7. Condiciones de salto para el mdulo Branch.


Por ltimo, son guardados en el registro de segmentacin EX/WB el resultado de la UPA, la
direccin efectiva obtenida en la etapa 2, algunos valores de banderas, y las seales de control
necesarias para la ltima etapa. A continuacin se presenta la relacin de la seal SelResult con las
fuentes seleccionadas hacia el registro de segmentacin EX/WB.



SelResult
0
1
3


Fuentes seleccionadas
DatoW DirW
0 0
ResultUPA D3
OP1 D3

Tabla 7.8. Fuentes seleccionadas por la seal de control SelResult.


7.2.4 ETAPA 4 POST-ESCRITURA

En las arquitecturas segmentadas las instrucciones y los datos se desplazan generalmente de
izquierda a derecha a travs de las etapas, sin embargo, hay dos excepciones que se presentan en la
etapa de post-escritura:

1. Cuando se guarda el resultado de la UPA en los registros o en memoria, haciendo que se
retroceda a la etapa 2.
2. Cuando se selecciona el nuevo valor de PC en la etapa 1, valor que puede ser el PC
incrementado, o bien, la direccin de salto calculada en la etapa 3.

En resumen, la etapa de post-escritura se encarga de actualizar los resultados obtenidos en etapas
anteriores. Recuerde que las seales de control utilizadas en esta ltima etapa fueron generadas en la
etapa 2 y se propagaron a travs de los registros de segmentacin hasta la etapa requerida.

La arquitectura completa del 68HC11 segmentado se muestra en la figura 7.12.

De la figura 7.12 notar que la seal de control SelDir se utiliza en dos etapas de la arquitectura,
en la etapa 2 y en la etapa 4. Durante la etapa 2, la seal SelDir seleccionar la direccin de
memoria de donde se leer un dato. Esta direccin puede venir de dos buses, del bus IND/INC (si la
instruccin utiliza acceso indexado), o del bus DIR/EXT (si la instruccin utiliza acceso directo o
extendido). En cambio, en la etapa 4, la seal SelDir seleccionar la direccin en memoria en donde
se guardar algn resultado, si es que la instruccin as lo especifica. Esta direccin provendr
exclusivamente del bus DirW.



DISEO DE MICROPROCESADORES


F
i
g
u
r
a

7
.
1
2
.

A
r
q
u
i
t
e
c
t
u
r
a

d
e
l

6
8
H
C
1
1

u
t
i
l
i
z
a
n
d
o

l
a

t

c
n
i
c
a

d
e

l
a

s
e
g
m
e
n
t
a
c
i

n

e
n
c
a
u
z
a
d
a
.





CAPTULO VII SEGMENTACIN ENCAUZADA (PIPELINE)




































































DISEO DE MICROPROCESADORES




142




CAPTULO VII SEGMENTACIN ENCAUZADA (PIPELINE)




143


La unidad de control ubicada en la etapa 2 es la encargada de generar los valores de la seal
SelDir de acuerdo a la instruccin que se ejecuta. De esta manera, sern generados dos valores para
la seal SelDir, el primer valor se utilizar durante la etapa 2, y el segundo valor ser guardado en el
registro de segmentacin ID/EX junto con las seales de control para las etapas siguientes, y ser
utilizado hasta la etapa 4.


7.2.5 REPRESENTACIN GRFICA DE LA SEGMENTACIN ENCAUZADA

La segmentacin encauzada puede ser difcil de comprender, ya que mltiples instrucciones se
ejecutan simultneamente en un slo camino de datos en cada ciclo de reloj. Para ayudar a
comprenderlo hay dos estilos bsicos de diagramas: los diagramas de mltiples ciclos de reloj y los
diagramas de un slo ciclo de reloj.

En los diagramas de mltiples ciclos de reloj el tiempo avanza de izquierda a derecha en el
diagrama, y las instrucciones avanzan de arriba hacia abajo. Utilizamos estos diagramas para dar
visiones generales de las situaciones en la segmentacin.

Los diagramas de un slo ciclo de reloj muestran el estado del camino de datos durante un slo
ciclo de reloj. Generalmente todas las instrucciones de la segmentacin encauzada se identifican por
rtulos debajo de sus respectivas etapas. Estos diagramas se utilizan para mostrar detalladamente lo
que ocurre en la segmentacin durante cada ciclo de reloj.



































DISEO DE MICROPROCESADORES

Вам также может понравиться