Análisis de la jerarquía de memoria del Broadway
16:00 | Author: Ricardo Silva Asenjo


El procesador Broadway esta basado en los PowerPC G3 de IBM. He estado buscando informacion mas especifica sobre el procesador de la Wii pero no he conseguido nada. Pongo informacion sobre el PowerPC G3 pero no puedo confirmar si es igual para el procesador Broadway.

Características

  • Cache de datos e instrucciones separadas.
  • 32 Kbytes.
  • Asociativa por conjuntos de 8 vías.
  • Indexada por la dirección efectiva.
  • Tags por la dirección física.
  • Algoritmo pseudo LRU de reemplazamiento.
  • Cada bloque de la cache es de 32 bytes (8 palabras).
  • Dos bits de coherencia en cada bloque de la cache de datos:
  • Modified, Exclusive, Invalid
  • Un bit de coherencia en cada bloque de la cache de instrucciones: Invalid, Valid
Cache de datos

  • Modified: El bloque direccionado está en la cache, y está modificado respecto a lo almacenado en el subsistema de memoria.
  • Exclusive: El bloque direccionado está en la cache, y esta cache tiene propiedad exclusiva sobre el bloque. Sólo se encuentra en la cache de este procesador. Los datos del bloque son coherentes respecto al bloque en el subsistema de memoria.
  • Invalid: El bloque direccionado no contiene datos válidos o no se encuentra en la cache.

Cache L2

  • SRAMs síncronas externas para el almacenamiento de datos de hasta 1 Mbyte.
  • Asociativa por conjuntos de 2 vías con 4096 entradas.
  • Está organizada en líneas de 64 o 128 bytes, sudivididas en bloques de 32 bytes (8 palabras).
  • Cada bloque tiene bits de estado valid y modified.
  • Acepta múltiples accesos simultáneos.
  • Cache de instrucciones: solicitud de instrucción
  • Cache de datos: operación de carga o dos almacenamientos
  • Peticiones desde la cache L1 son buscadas en los tags de la L2 y servidas por la L2 si se encuentran, en caso de fallo, son reenviadas al bus.
  • Soporta sistemas de coherencia de cache a través de snooping.
  • Da servicio a peticiones snoop desde el bus.
  • Establece prioridad para las peticiones.
  • Normalmente trabaja en modo write back.

Predictores de salto en IBM G3

Unidad de procesado de saltoes ( BPU ): predicción estática y dinámica de los saltoes.

Componentes de la BPU

BHT: tabla de histórico de saltoes implementada mediante una caché de 512 entradas y 2 bits por entrada. Predictor local de 2 bits.
BTIC: cache de direcciones de instrucciones de los saltoes (BTB) implementada mediante una caché asociativa por conjuntos de 64 entradas, 4 vías y 16 entradas por conjunto. Almacena los saltoes más recientemente tomados.
Registros de control: CR o registro condicional sobre el cual se realizan la operaciones en los saltoes condicionales, CTR o registro contador que almacena dirección de salto para los “bcctr”, y LR o registro de enlace que almacena la dirección de salto para los “bcl”.

Características de la BPU

Analiza las instrucciones provenientes de caché, 4 instrucciones por ciclo. Es capaz de procesar 1 salto por ciclo, realizando las operaciones necesarias en el registro CR si se trata de un salto condicional.
Si las dependencias de datos impiden resolver el salto inmediatamente se predice el resultado del salto.
El predictor a utilizar, estático o dinámico depende del valor asignado al registro hardware HID0[BHT]:
HID0[BHT] = 1, predicción dinámica
HID0[BHT] = 0, predicción estática
Ante una predicción realizada no se podrá escribir a registro el resultado de la instrucción hasta resolver el salto, ejecución especulativa.
En lo que se resuelve un primer salto se puede hacer la predicción de un segundo salto, pero las nuevas instrucciones a ejecutar han de esperar en la cola de instrucciones hasta saber si la predicción anterior fue correcta.
Tras un salto tomado o predicho como tomado un éxito en la BTIC supone un ahorro de 1 ciclo en la carga de las nuevas instrucciones en la cola.

Predicción estática de los saltos

En la arquitectura PowerPC esté tipo de predicción está implementada como parte del código de instrucción del propio salto.
Las instrucciones de salto cuentan con un campo denominado BO-field que permite realizar una predicción por software sobre la resolución de cada salto.
El bit menos significativo del campo BO-field, bit “y”, determinará si el salto se toma o no, y = 1 se toma,
y = 0 no se toma.
Se utiliza sólo si HID0[BHT] = 0.

Predicción dinámica de los saltos

Se realiza haciendo uso de la BHT o predictor local de 2 bits que almacena la predicción asociada a cada salto.
Esta caché contiene 512, por lo que se utilizan los 9 bits menos significativos de la instrucción para indexar las predicciones asociadas a cada salto.
Para cada salto la predicción puede ser “fuertemente no tomada”, “no tomada”, “tomada” o “fuertemente tomada”.
Se utiliza sólo si HID0[BHT] = 1.


Para tener mas informacion respecto esta jerarquia se tiene que acceder a los siguientes temas de mo Blog. En ellos se especifica mucho mas afondo todos los distintos aspectos respecto al Broadway.

-RISC vs CISC (Usa la tecnologia RISC)
-CPU de la Wii -Broadway-
-Organizacion y rendimiento de la memoria cache.
This entry was posted on 16:00 and is filed under . You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.