Vous êtes sur la page 1sur 5

PENTIUM

Notas sobre el Pentium.


- Bus de datos de 64 bits
Notar que el procesador es de 32 bits, y que por lo tanto los accesos a memoria van a ser solicitando datos
de 32 bits o menos. a qu se debe entonces un bus de datos de 64 bits?
- Cache de instruccin (slo lectura) tamao de lnea de 32 bytes
- Cache de datos (write-back) tamao de lnea de 32 bytes
- Dos cauces de ejecucin llamados U y V. El cauce U ejecuta instrucciones complejas (al estilo de las
instrucciones de bucle) y por ello est microprogramado. En cambio el cauce V ejecuta instrucciones
simples (instrucciones aritmticas, o lgica, etc) y por ello est cableado.

Unidad de bus.
Es la interfaz entre el procesador y el exterior. Consta de los siguientes componentes:
-

Drivers y Receivers de direcciones. Los drivers sacan las direcciones al bus y los receivers las
recogen del mismo. La necesidad de sacar las direcciones al bus es obvia, cuando el procesador desea
direccionar a memoria o al sistema de entrada/salida. La utilidad de recoger las direcciones del bus
est relacionada con la cache. Debido a la posibilidad de interaccin con otro procesador en el mismo
sistema, es necesario un mecanismo que mantenga la coherencia de las copias de los datos que
residen simultneamente en ambas cache. Este mecanismo es lo que se llama un Protocolo de
Coherencia Cache y en este caso est desarrollado mediante una tcnica llamada espionaje (snoopy),
consistente en testear constantemente todo trasiego de datos que ocurra en el bus y verificar si los
datos implicados estn o no relacionados con los datos que residen en la cache de este procesador, en
cuyo caso ha de obrarse en consecuencia.

Buffers de escritura. Un buffer de escritura tiene la funcin de simular la culminacin de una


escritura frente al procesador, de manera que ste pueda continuar hacia la siguiente instruccin.
Tcnicamente un procesador no puede avanzar a la instruccin siguiente hasta que no se ha ejecutado
la previa. En el caso de una instruccin de escritura, su finalizacin est marcada con la escritura
efectiva del dato en memoria. Con el uso de un buffer de escritura, la unidad de bus se encarga de
asegurarle al procesador que har llegar el dato a su localizacin en memoria.

Transceivers de datos (de entrada y de salida) se encargan de depositar o recoger el dato del bus.

Lgica de control del bus. El bus permite dos tipos de transferencias:


estndar: Para tamaos de datos de 8,16,32 bits. Son transacciones que el
procesador realiza directamente a memoria saltndose la cache. Esto va a
ocurrir para tres categoras de datos:
Entrada salida
Datos no cacheables
Escritura de datos cacheables
Burst: Consiste en mltiples ciclos en los que se llena completamente el bus de
datos. Bsicamente se utilizarn para actualizar o vaciar la cache en memoria.

Lgica de control de maestro de bus. El Pentium puede cooperar en principio con otro procesador en
lo que sera un sistema multiprocesador. Ambos compartiran el mismo bus local junto con la interfaz
Host-PCI. Es necesario por lo tanto dotar al sistema de un mecanismo de arbitraje que regule los
accesos al bus de los procesadores.
Lgica de control de la cache L2. La cache L2 est fuera del procesador. es lo que se llama una cache
de segundo nivel y es compartida por los dos procesadores.

Internal Cache Control. Es la lgica que controla la cache interna. Se referir a la lgica que dispara
los intercambios de lnea cuando hay un fallo de cache, etc, adems de la lgica de coherencia de los
datos de la cach con los que hay en la memoria.
Generacin y control de paridad. Por cada envo o recepcin de direcciones y/o datos se genera un
control de paridad que debe siempre verificarse. Si en algn momento se detecta un fallo de paridad,
se produce un serio error en el sistema.

Bus de datos.
D[63..0]. Las 64 lneas de dato. Se considera dividido en 8 caminos de datos de un byte cada uno.
BRDY#. Esta seal proviene del dispositivo que est siendo accedido e indica que ste da por terminado
el ciclo de bus al haber ledo y haber ya situado el dato en el bus.
Aunque un dispositivo tenga un bus de 8 bits, al conectarse al bus debera ser capaz de satisfacer una
peticin de hasta 8 bytes (siempre y cuando esto tenga sentido para el dispositivo) en un solo ciclo. De
esto se debe encargar una lgica externa que sirva de adaptador entre el bus del dispositivo y el bus del
procesador.

Bus de direcciones.
El conjunto de lneas ms relacionado con las direcciones son:
A[31..3]: Obsrvese la carencia de las tres lneas de orden inferior
BE#[7..0]: Son las lneas de habilitacin de byte que de alguna manera suplen la falta de las A[2..0]
ADS#: Addres Status. Esta seal inicia una transaccin. Indica que en el bus se ha situado una direccin
con propsitos de acceso.
Cuando se saca una direccin al bus, esta direccin puede estar destinada a acceder a 1 byte, o 2 bytes
o ...8 bytes. Donde se indican cuntos bytes y dnde los supone localizados el procesador dentro del bus
de datos es en las lneas BE#. Cada lnea BE# est asociada con un byte del bus de datos, por ejemplo
BE#3 est asociada con el byte de datos comprendido entre las lneas D[24..31]. Quirese decir que
cuando BE#3 est activa, en una escritura el Pentium va a proporcionar el dato por ese conjunto de lneas
y cuando lee esperar que el dato est situado en esas posiciones.

Seales de control.
Se disponen de las tpicas seales de control que definen los tipos de transaccin:
M/IO#: Indica hacia qu espacio de direcciones va encaminada la transaccin.
D/C#: Distingue entre ciclos de datos/cdigo y ciclos especiales.
W/R#: Indica si el ciclo es de lectura o de escritura.
CACHE#: Indica si el ciclo est relacionado con la cach, lectura de datos para llenar una lnea de cach
o actualizacin de memoria desde una lnea de cache. Si esta lnea no se activa significa que el dato ledo
no se almacenar en la cache, o que el dato escrito procede directamente del procesador.

Ciclos especiales.
Los ciclos especiales son aquellos que no tienen por objeto acceder a datos externos al procesador, sino
manifestar una situacin dentro del mismo. Salvo en un caso, las lneas de direccin no van a contener
una direccin vlida, y las lneas BE contienen la definicin del tipo de ciclo que est transcurriendo.
Shutdown: Es una paralizacin del sistema y ocurre cuando se da una condicin de triple fallo o cuando
se detecta un error de paridad interno.
Se retorna de esta situacin mediante una interrupcin de los tipos NMI, INIT, RESET.

Flush: Se genera tras la ejecucin de instrucciones del tipo INVD (invalidar) o WRINVD (escribir e
invalidar). Es una seal que aparecer despus de haber salvado la cache interna y tiene por objeto avisar
a la cache L2 de que debe volcar sus datos en memoria.
Halt: Se genera tras la ejecucin de la instruccin HALT. Paraliza el procesador. Se sale de esta situacin
tras la activacin de alguna de las interrupciones INTR, NMI, INIT, RESET.
Flush: (Flush signal)
Branch Trace. Bit de traza.
Este ciclo especial se produce tras la activacin del bit de traza. Y se genera siempre que se produzca un
salto efectivo. Indica a la lgica externa la situacin colocando en las lneas de direccin la direccin de
destino del salto. Suple la falta de las lneas A[2:0] con las lneas BT[2:0]

Otras lneas de inters.


Lock# , SCYC.
La seal Lock# se activa cuando se ejecuta una instruccin que tiene como prefijo la indicacin Lock. Si
la transaccin bloqueada requiere un ciclo doble (debido a que el dato se desborda entre dos 'bloques de
bus' - considerando la memoria dividida en bloques de bus de 64 bits dado que el tamao de bus es de
este tamao.) se activa la seal SCYC para indicarlo.
CACHE#
KEN#
Situacin: se solicita determinado dato que no est en la cache. Se produce un fallo de cach
y se genera un ciclo de llenado de una lnea de cache. Pero resulta que el dato ha sido etiquetado como No
Cacheable (Debe existir un mecanismo externo que intercepte los accesos y compare la direccin a la que
se est accediendo con las que tiene etiquetadas de esta manera, si se produce coincidencia activar la
seal KEN# del procesador) entonces al detectar la seal KEN# activa el procesador comprende que no
puede llenar la cache con este dato (o la lnea completa que se ha trado) y le pasa exclusivamente el dato
al procesador sin dejar copia en la cache.
EWBE# Seal que avisa del deseo de hacer un acceso ordenado a memoria. Un acceso No ordenado a
memoria puede ocurrir si tras una escritura directa a memoria, el dato queda 'retenido' en el buffer de
escritura y a continuacin se realiza un nuevo acceso a memoria. Este nuevo acceso est desordenado
porque se ha realizado antes de que se cumpliera efectivamente el acceso previo. En datos no
relacionados no tiene mayor importancia, pero en datos que tengan una cierta dependencia uno de otro
puede violar los presupuestos de programador acerca de cmo se va a ejecutar su cdigo.

Seales de interrupcin.
Adems de las consabidas: INTR y NMI tambin otras funciones del sistema se invocan mediante un
proceso de interrupcin:
BUSCHK# indica que un ciclo de bus no se ha cumplido satisfactoriamente.
R/S# Detiene la ejecucin del procesador de forma inmediata al comienzo de la siguiente instruccin.
Utilizada en un contexto de comprobaciones y depuracin del procesador.
FLUSH# Causa que los datos internos de la cache sean invalidados.
SMI#: System managemen interrupt
INIT: realiza un reset pero mantiene los contenidos de la cach y el estado de la unidad F.P.

Ciclos encauzados.
El Pentium puede, ya se poda desde procesadores anteriores, gracias a la distincin entre las lneas de
datos y las lneas de direcciones, encadenar varios ciclos de bus montando las direcciones del siguiente
acceso sobre el periodo de datos del ciclo anterior. Con ello se consigue reducir un periodo por ciclo,
salvo en el primer dato. La seal NA# la activa el dispositivo externo para indicar que ya est dispuesto a
recibir la siguiente direccin en el caso de que el procesador tenga intenciones de realizar uno de estos
encadenamiento.

Nota: asociadas con estas notas existen 10 transparencias que permiten, digo yo, comprender algo ms lo
insinuado arriba.

Vous aimerez peut-être aussi