Procesadores y microprocesadores PowerPC
sistemas informáticos G4 Bajar en ZIP
 
 
     

 

Los microprocesadores G4

Contenidos

1 Introducción.

 

El presente texto pretende ser un acercamiento a los sistemas informáticos con procesadores G4 de la compañía Apple (powermacs) existentes en el mercado el presente año 2003. Una pieza clave de estos ordenadores, así como del presente estudio será la familia de procesadores PPC745x de la casa motorola que acompaña a estas máquinas. La arquitectura intrínseca de este microprocesador es la que condiciona en parte toda una serie de características peculiares que diferencian a los ordenadores apple de otros sistemas informáticos comerciales, como son los enormemente difundidos PCs con sus procesadores Pentium, y que les permiten realizar tareas de diseño, tales como paginación web o edición digital de vídeo de forma realmente eficiente.

Image /tmp/lyx_tmpdir2309d0cQKQ/lyx_tmpbuf0/_home_josator_Arquitectura_macintosh_motorola.gif

El enfoque englobará temas tales como el diseño y los buses del sistema (breve descripción), la arquitectura de las memorias, el comportamiento de la caché, la gestión de la entrada salida y las interrupciones de la familia de procesadores PPC745x.

2 Introducción a los elementos del computador a estudiar.

Como ya hemos mencionado anteriormente el procesador condiciona una serie de posibilidades y de dispositivos a la hora de construir los sistemas informáticos, tomaremos como referencia el bus de uno de los últimos y más potentes modelos de la casa Apple a fecha de hoy (27 de marzo de 2003). Este modelo es el Powermac G4 Quicksilver, estos modelos están equipados con chips PowerPC de Motorola, en concreto de la familia 745x, el más rápido de estos chips equipado en los sistemas Apple alcanza una velocidad de reloj de 1.42GHz.

Hay que tener en cuenta que la arquitectura de estos ordenadores es RISC (Reduced Instruction Set Computers) en contraposición a los procesadores CISC (Complex Instruction Set Computers) que acompañan a los sistemas PC, por lo que la velocidad entre estos procesadores es, por diversas razones, más o menos equivalente si realizamos un estudio en gigaflops, a pesar de que la diferencia en las frecuencias de reloj es bastante elevada. Por ejemplo un G4 733Mhz equivale a un Pentium 4 a 1,4 Ghz (según información de la compañía). Los procesadores Mips utilizan también tecnología RISC.

Los sistemas Macintosh son ampliamente utilizados en el mundo del diseño (edición de vídeo, aplicaciones 3D, creación de páginas web, maquetación de libros). Para proporcionar la potencia necesaria para estas tareas a sus sistemas, Apple decidió que estos ordenadores dispusieran de 2 procesadores 745x, por lo que nos encontramos con un sistema de computación paralela. Los dos procesadores se unen a un puente que se comunica con el dispositivo U2, que realiza la función de controlador de memoria principal y de puente a los buses PCI, al U2 se enchufa otro controlador de entrada-salida denominado Keylargo.

Otra peculiaridad de estos sistemas es que incorporan una caché de nivel 3 externa al procesador, de unos 2 Mega-bytes, esta caché está unida directamente al procesador. Esta memoria no es única, sino que cada uno de los procesadores dispone de uno de estos chips de memoria caché, por lo que los accesos a memoria son más eficientes. De la memoria caché hablaremos más adelante.

A continuación mostramos un gráfico que nos muestra la disposición de los buses y del sistema:

 

disposición de los buses y del sistema

 

 

3 La memoria principal.

Una de las funciones del dispositivo U2 es controlar a la memoria principal del equipo, según podemos observar en la figura anterior, disponemos de 4 ranuras para instalar módulos DIMM de memoria RAM de 184 patillas cada una, en las cuales podemos insertar módulos de memoria DDR (Double Data Rate) 133Mhz (con lo que obtendríamos 266 efectivos) o de 167Mhz (333 efectivos). Una de las cuatro ranuras viene ya con un chip preinstalado de fábrica.

La memoria de 133Mhz es la mínima para los procesadores de 1Ghz y la de 167 lo es para los G4 a 1'25Ghz. El tamaño de estos módulos DIMM tiene que ser de 256MB o de 512MB, aunque el fabricante advierte que los módulos de 128MB y 1GB también están soportados, siempre que el total de la memoria instalada no supere los 2GB de límite.

La colocación de módulos de distinto tamaño, así como su posición, no influyen en el rendimiento total del sistema, y la memoria combinada de todos los módulos instalados, se configura como un vector continuo gracias al controlador.

La selección de los distintos módulos es similar la vista en teoría, todas las ranuras ( y en consecuencia los módulos que estén o no insertados) se conectan con el bus de direcciones directamente. El bus de datos está conectado, a través de cuatro interruptores sin capacidad conductora, a los cuatro módulos de memoria y, según el interruptor esté en baja o alta impedancia, permitirán el paso de la información o no, desde o hacia los módulos.

Consecuentemente sólo dispondremos de un interruptor en baja impedancia (activo) a la vez, realizándose la selección de módulo a través de una línea que está conectada al bus de datos. Esto nos lleva a pensar que el bus de direcciones selecciona simultáneamente la información de una palabra en todos los módulos, y que sólo se recoge la salida de un módulo.

El bus de datos del procesadores de 64 bits, y el bus de direcciones es de 32 bits, con lo que tendríamos 2^32 Bytes direccionables, que son 2^2 GBytes, es decir, 4 GB de datos direccionables.

4 El controlador de memoria U2

El chip U2, que cumple la función de puente entre el procesador y la entrada/salida, también cumple el papel de controlador de la memoria RAM. El bus del procesador va desde los 133 a los 167 MHz y va desde el susodicho procesador hasta el controlador U2.

El bus del procesador utiliza los protocolos MaxBus, soportados por el controlador U2. El protocolo MaxBus incluye mejoras que aumentan la eficiencia del bus. Las mejoras son:


4.1 ``Out-of-Order completion''


Esta característica permite al controlador de memoria optimizar la eficiencia transfiriendo cualquier información que está preparada, en vez de tener que transferirla en el orden en que las transacciones fueron puestas en el bus, esto quiere decir que una lectura rápida de memoria DDR SRAM puede pasar antes que una lectura lenta del bus PCI, permitiendo al procesador realizar más tareas antes de esperar a los datos provenientes del bus PCI.


4.2 ``Address bus streaming''

Esta característica permite a un sólo maestro en el bus realizar múltiples transacciones ``back-to-back''. Esto significa que un sólo maestro (procesador) puede escribir direcciones a una velocidad de una cada dos ciclos de reloj, mejorando la velocidad de una cada tres ciclos de reloj existente en el bus de los procesadores 60x.


4.3 ``Intervention''

Es una optimización de la caché, que aumenta la velocidad en los sistemas con dos procesadores simultáneos. Si un procesador modifica una información, el cambio sólo se realiza en la caché de ese procesador. Si el otro procesador necesita esa información, tiene que coger los nuevos valores.

En sistemas anteriores, el primer procesador debía escribir la información en memoria, y entonces el segundo procesador podía leer los datos correctos de memoria. Con esta mejora, el primer procesador escribe directamente la información en la caché del segundo, reduciendo la latencia en un factor de diez o mayor.

5 La memoria caché

Este tipo de procesadores vienen con los dos tipos comunes de memoria caché, es decir caché L1 (de nivel 1) y L2 (nivel 2) dentro del propio procesador, y además, los procesadores más avanzados cuentan también con un tercer nivel de memoria L3, lo que les capacita de un mejor rendimiento frente a procesadores con tan sólo dos niveles de caché.

La memoria caché de primer nivel está dividida en dos tipos, caché de datos y de instrucciones, por lo que sigue una arquitectura denominada dual o Harvard. La caché de segundo nivel ya no se encuentra dividida en instrucciones y datos, pero por el contrario cuenta con una capacidad mucho mayor, 256 KB ó 512 KB en los procesadores de gama alta.

Fuera del procesador, y sólo en los de gama alta, encontramos un tercer nivel de memoria que puede ser de 1MB o llegar hasta los 2MB.

Ahora pasaremos a detallar más en profundidad los tres tipos de memoria:


5.1 Caché L1

Las características más importantes que podemos comentar sobre la L1 son las siguientes:

- Como hemos dicho anteriormente, sigue la arquitectura Harvard, por lo que cuenta con dos cachés, una para datos y otra para instrucciones. Cada una es de 32 KB.

- Cada caché posee una correspondencia asociativa por conjuntos de 8 vías.

- Los bloques de cada caché son de 32 Bytes (un bloque de caché equivale a una línea).

- El algoritmo de reemplazo utilizado es una variante del LRU denominada PLRU (pseudo-least-recently-used).

- Con respecto a las políticas de escritura estos procesadores implementan los dos tipos, escritura directa y posterior (write-through y write-back), las cuales se pueden elegir.

- La memoria de instrucciones es capaz de dar hasta 4 instrucciones por cada ciclo de reloj, y la memoria de datos hasta 4 palabras por ciclo.

- Esta memoria tiene la posibilidad de ser desactivada o bloqueada mediante software.

En los siguientes gráficos podemos observar las organizaciones de las dos memorias caché L1:

 

Cache L1

 

 

Organización de la memoria caché L1 de Instrucciones

Cache

 

Organización de la memoria caché L1 de Datos

Como se puede observar, la estructura es idéntica y la única diferencia reside en que en una guardaremos instrucciones y en la otra datos.

 

5.2 Caché L2

Las principales características que aparecen en la memoria caché L2 de estos procesadores son las siguientes:


- Memoria unificada para instrucciones y datos con una capacidad de 256 KB ó 512KB con una correspondencia asociativa por conjuntos de 8 vías.

- Puede utilizarse para contener únicamente datos, únicamente instrucciones o ambas a la vez.

- Completamente segmentada, para poder ofrecer a la caché L1 32 Bytes por ciclo de reloj.

- Latencia total de nueve ciclos de reloj cuando ocurre una situación de fallo al acceder a L1 y acierto al acceder a L2.

- El algoritmo de reemplazo utilizado es siempre el aleatorio, aunque existen dos variantes entre las cuales se puede elegir.

- Política de escritura seleccionable entre directa y posterior (write-through o write-back).

- Organizada como 32 Bytes por bloque y 2 bloques por línea.

 

5.3 Caché L3

Aunque la memoria caché L3 no se encuentra en el propio procesador, en él está su correspondiente controlador de memoria, el cual tiene las siguientes características:

- Soporte para memoria de 1 ó 2 MB de memoria externa SRAM con correspondencia asociativa por conjuntos de 8 vías.

- Posibilidad de almacenar instrucciones, datos o de los dos tipos conjuntamente. - Política de escritura directa o posterior, según se seleccione.

- Con una L3 de 1MB, la memoria se organiza en 64 Bytes por linea.

- Con una L3 de 2MB, la memoria se organiza en 128 Bytes por línea.

- Algoritmo de reemplazo idéntico a la caché L2, elección entre dos algoritmos aleatorios.

- Un bus externo de 64 bits conectado con L3 permite la transferencia de 64 bits por cada ciclo de reoloj de la L3.


Una vez vista la configuración básica de los tres niveles de memoria caché, seguidamente podemos observar un esquema en el que aparecen cómo están organizadas la caché L1, L2 y el controlador de la L3 dentro del procesador:


Image /tmp/lyx_tmpdir2309d0cQKQ/lyx_tmpbuf0/_home_josator_Arquitectura_macintosh_org-cahe.jpg

 

 

6 Breve descripción de la MMU.


El procesador MPC7451 proporciona un espacio de direccionamiento efectivo de 4 Gigabytes accesible para los programas de supervisor y usuario. Esta memoria la implementa con un tamaño de página de 4 Kilobytes y con un tamaño de segmento de 256 Megabytes.

Algunas características básicas de la MMU de este procesador son las siguientes:

- Soporte para modo de direccionamiento real, es decir, la traducción de las direcciones puede ser deshabilitada para accesos a datos o a instrucciones.

- Traducción de direcciones por bloques. Proporciona un mecanismo para traducir bloques de hasta 256 Megabytes de direcciones lógicas a físicas. Esta característica puede ser de gran ayuda para traducir grandes rangos de direcciones cuyos mapas no cambian frecuentemente.

- Dos TLB (translation lookaside buffer) separados para instrucciones y datos. Sirven para mantener las últimas traducciones de direcciones en el chip y mejorar la velocidad sin tener que acudir a la tabla de páginas.

-Los TLB pueden ser desactivados mediante instrucciones máquina.

6.1 Organización de la MMU

El siguiente esquema muestra la organización conceptual de la MMU de un procesador PowerPC en una implementación de 32 bits la cual genera direcciones físicas de 32 bits. La MMU real de un procesador MPC7451 genera direcciones físicas de 36 bits, por lo que diferiría del siguiente esquema. Como se puede observar, cuando se generan las direcciones físicas de 32 bits, los bits del 0 al 19 de la dirección lógica se transforman en los bits 0-19 de la dirección física y el resto permanecen iguales para las dos direcciones. Una vez la traducción se ha realizado, la MMU envía esa dirección ya como la dirección real en memoria.

Una característica importante es que la MMU almacena si una traducción es para datos o para instrucciones; si el procesador se encuentra en modo usuario o modo kernel e incluso en los accesos a datos, si es una operación de lectura o escritura de la memoria. Esta información la guarda, entre otras cosas para reforzar la seguridad programada por el sistema operativo.

Los siguientes esquemas muestran la verdadera MMU(de instrucciones, aunque es igual que la de daros) del MPC7451 y cómo genera las direcciones físicas de 36 bits. También muestran los dos TLB.

 

Acerca de este documento...

La arquitectura de los ordenadores Macintosh.

 

Sitios de referencia:



Diego Negrete 26-04-2004