PENTIUM

Anuncio
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 instrucción (sólo lectura) tamaño de línea de 32 bytes
- Cache de datos (write-back) tamaño de línea de 32 bytes
- Dos cauces de ejecución 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 aritméticas, o lógica, 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 interacción con otro procesador en el mismo
sistema, es necesario un mecanismo que mantenga la coherencia de las copias de los datos que
residen simultáneamente en ambas cache. Este mecanismo es lo que se llama un Protocolo de
Coherencia Cache y en este caso está desarrollado mediante una técnica llamada espionaje (snoopy),
consistente en testear constantemente todo trasiego de datos que ocurra en el bus y verificar si los
datos implicados están 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 función de simular la culminación de una
escritura frente al procesador, de manera que éste pueda continuar hacia la siguiente instrucción.
Técnicamente un procesador no puede avanzar a la instrucción siguiente hasta que no se ha ejecutado
la previa. En el caso de una instrucción de escritura, su finalización 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 localización en memoria.
-
Transceivers de datos (de entrada y de salida) se encargan de depositar o recoger el dato del bus.
-
Lógica de control del bus. El bus permite dos tipos de transferencias:
estándar: Para tamaños de datos de 8,16,32 bits. Son transacciones que el
procesador realiza directamente a memoria saltándose la cache. Esto va a
ocurrir para tres categorías de datos:
Entrada salida
Datos no cacheables
Escritura de datos cacheables
Burst: Consiste en múltiples ciclos en los que se llena completamente el bus de
datos. Básicamente se utilizarán para actualizar o vaciar la cache en memoria.
-
-
Lógica de control de maestro de bus. El Pentium puede cooperar en principio con otro procesador en
lo que sería un sistema multiprocesador. Ambos compartirían 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.
Lógica 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 lógica que controla la cache interna. Se referirá a la lógica que dispara
los intercambios de línea cuando hay un fallo de cache, etc, además de la lógica de coherencia de los
datos de la caché con los que hay en la memoria.
Generación y control de paridad. Por cada envío o recepción de direcciones y/o datos se genera un
control de paridad que debe siempre verificarse. Si en algún momento se detecta un fallo de paridad,
se produce un serio error en el sistema.
Bus de datos.
D[63..0]. Las 64 líneas de dato. Se considera dividido en 8 caminos de datos de un byte cada uno.
BRDY#. Esta señal proviene del dispositivo que está siendo accedido e indica que éste da por terminado
el ciclo de bus al haber leído y haber ya situado el dato en el bus.
Aunque un dispositivo tenga un bus de 8 bits, al conectarse al bus debería ser capaz de satisfacer una
petición de hasta 8 bytes (siempre y cuando esto tenga sentido para el dispositivo) en un solo ciclo. De
esto se debe encargar una lógica externa que sirva de adaptador entre el bus del dispositivo y el bus del
procesador.
Bus de direcciones.
El conjunto de líneas más relacionado con las direcciones son:
A[31..3]: Obsérvese la carencia de las tres líneas de orden inferior
BE#[7..0]: Son las líneas de habilitación de byte que de alguna manera suplen la falta de las A[2..0]
ADS#: Addres Status. Esta señal inicia una transacción. Indica que en el bus se ha situado una dirección
con propósitos de acceso.
Cuando se saca una dirección al bus, esta dirección puede estar destinada a acceder a 1 byte, o 2 bytes o
...8 bytes. Donde se indican cuántos bytes y dónde los supone localizados el procesador dentro del bus de
datos es en las líneas BE#. Cada línea BE# está asociada con un byte del bus de datos, por ejemplo BE#3
está asociada con el byte de datos comprendido entre las líneas D[24..31]. Quiérese decir que cuando
BE#3 está activa, en una escritura el Pentium va a proporcionar el dato por ese conjunto de líneas y
cuando lee esperará que el dato esté situado en esas posiciones.
Señales de control.
Se disponen de las típicas señales de control que definen los tipos de transacción:
M/IO#: Indica hacia qué espacio de direcciones va encaminada la transacción.
D/C#: Distingue entre ciclos de datos/código 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 línea de caché
o actualización de memoria desde una línea de cache. Si esta línea no se activa significa que el dato leído
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 situación dentro del mismo. Salvo en un caso, las líneas de dirección no van a contener
una dirección válida, y las líneas BE contienen la definición del tipo de ciclo que está transcurriendo.
Shutdown: Es una paralización del sistema y ocurre cuando se da una condición de triple fallo o cuando
se detecta un error de paridad interno.
Se retorna de esta situación mediante una interrupción de los tipos NMI, INIT, RESET.
Flush: Se genera tras la ejecución de instrucciones del tipo INVD (invalidar) o WRINVD (escribir e
invalidar). Es una señal que aparecerá después 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 ejecución de la instrucción HALT. Paraliza el procesador. Se sale de esta situación
tras la activación de alguna de las interrupciones INTR, NMI, INIT, RESET.
Flush: (Flush signal)
Branch Trace. Bit de traza.
Este ciclo especial se produce tras la activación del bit de traza. Y se genera siempre que se produzca un
salto efectivo. Indica a la lógica externa la situación colocando en las líneas de dirección la dirección de
destino del salto. Suple la falta de las líneas A[2:0] con las líneas BT[2:0]
Otras líneas de interés.
Lock# , SCYC.
La señal Lock# se activa cuando se ejecuta una instrucción que tiene como prefijo la indicación Lock. Si
la transacción 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 tamaño de bus es de
este tamaño.) se activa la señal SCYC para indicarlo.
CACHE#
KEN#
Situación: 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 línea 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 dirección a la que
se está accediendo con las que tiene etiquetadas de esta manera, si se produce coincidencia activará la
señal KEN# del procesador) entonces al detectar la señal KEN# activa el procesador comprende que no
puede llenar la cache con este dato (o la línea completa que se ha traído) y le pasa exclusivamente el dato
al procesador sin dejar copia en la cache.
EWBE# Señal 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 continuación 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 cómo se va a ejecutar su código.
Señales de interrupción.
Además de las consabidas: INTR y NMI también otras funciones del sistema se invocan mediante un
proceso de interrupción:
BUSCHK# indica que un ciclo de bus no se ha cumplido satisfactoriamente.
R/S# Detiene la ejecución del procesador de forma inmediata al comienzo de la siguiente instrucción.
Utilizada en un contexto de comprobaciones y depuración 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 podía desde procesadores anteriores, gracias a la distinción entre las líneas de
datos y las líneas 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 señal NA# la activa el dispositivo externo para indicar que ya está dispuesto a
recibir la siguiente dirección 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 más lo
insinuado arriba.
Descargar