PA-RISC: tecnología y estrategia.

Cuentan que los primeros diseñadores de procesadores RISC dibujaban en la máscara del circuito integrado la silueta de un coche deportivo alemán como reflejo de las grandes prestaciones que se obtenían de dichos procesadores. Posiblemente dichos diseñadores al dibujar la silueta del coche querían plasmar sólo el concepto de velocidad, pero hay muchas más lecturas de este símil. Los fabricantes de automóviles deportivos deben compaginar no sólo un motor muy potente sino también un chasis, suspensiones, frenos, dirección, etc. hasta llegar a conseguir un vehículo equilibrado. De la misma forma, los diseñadores de sistemas RISC deben compaginar muchos aspectos tecnológicos para conseguir llegar a una arquitectura RISC equilibrada. En esta analogía hay, sin embargo, un punto radicalmente diferente, el precio. Un coche deportivo suele ser más costoso que un vehículo normal, sin embargo la tecnología RISC busca reducir el coste de producir sistemas de altas prestaciones.

Cuando, a principios de los 80, Hewlett-Packard decidió implementar una arquitectura RISC para sus nuevos sistemas informáticos, partió de los conceptos básicos de dicha arquitectura: juego de instrucciones simple que no necesita microcódigo en la CPU, ejecución en un solo ciclo de reloj, formato fijo de instrucciones, operaciones orientadas a registros y no a memoria, solapamiento (pipelining) en ejecución y compiladores optimizadores. Pero en cada uno de estos pilares se analizó la mejor implementación posible en aras de obtener la mayor potencia al menor coste y con la flexibilidad para cubrir un amplio espectro de tipos de proceso. El resultado se denominó arquitectura de precisión RISC (PA-RISC).

Veamos el ejemplo del juego de instrucciones. Puesto que se buscaba diseñar una arquitectura de proceso para toda una familia de ordenadores que se deberían construir durante varias décadas, se puso en marcha un proceso de medición exhaustivo de miles de aplicaciones reales en los más diferentes entornos: científico, transaccional, monousuario y multiusuario. De esta manera, partiendo de la teoría y de su confrontación con las medidas reales, se diseñó un juego de instrucciones equilibrado. Por ejemplo, se soportan directamente operaciones BCD y de cadenas de caracteres, muy utilizadas ambas en los compiladores COBOL; se soportan instrucciones que ejecutan en un solo ciclo los saltos condicionales (comparar y saltar) que suponen entre el 15 y el 20% de las ejecuciones de procesos reales; y como último ejemplo, se soportan instrucciones que ejecutan en un solo ciclo una multiplicación y una suma de números en coma flotante, muy utilizadas en los cálculos matriciales. Este juego de instrucciones cuidadosamente diseñado es el primer ejemplo de la diferencia entre PA-RISC y otras arquitecturas RISC como, por ejemplo, SPARC de SUN, POWER de IBM y ALPHA de DEC.

Veamos otro área donde HP perfeccionó la teoría básica RISC: niveles de protección en ejecución. PA-RISC proporciona una arquitectura con 4 niveles de privilegio en ejecución de instrucciones superando a otros RISC que proporcionan únicamente 2 niveles. El uso de mayor número de niveles, de pasarelas de llamada de uno a otro, de permisos de acceso a páginas y otros mecanismos permite crear sistemas multiusuario seguros desde su raíz.

Estos dos ejemplos anteriores sirven para ilustrar como, al igual que en el diseño de coches deportivos, es necesario un equilibrio entre los diferentes elementos para obtener el mayor rendimiento al menor coste y con la mayor flexibilidad. A continuación se describen otros aspectos que definen la arquitectura PA-RISC.

ARQUITECTURA SUPERESCALAR

Un principio básico de RISC es la ejecución de las instrucciones en un solo ciclo de reloj. Mediante la arquitectura superescalar se ejecuta más de una instrucción por ciclo. PA-RISC permite la ejecución simultánea de una operación con enteros y otra con números en coma flotante. La figura 1 muestra el diagrama de bloques del procesador PA7100 de HP. En este diagrama se puede observar que se utilizan buses separados para acceso a las cachés de datos y de instrucciones, eliminando de esta manera cuellos de botella en el acceso a la memoria. Los accesos a la memoria caché externa se hacen a la velocidad del procesador (99 MHz en la última versión) sin ciclos de espera. Otros procesadores sólo pueden acceder sin ciclos de espera a la caché interna (de limitado tamaño).

En el diseño de una arquitectura superescalar es necesario buscar el equilibrio entre el número de unidades de ejecución implementadas y el aprovechamiento que se puede hacer de ellas en la ejecución de instrucciones en paralelo. Otras arquitecturas como SPARC de SUN y POWER de IBM implementan más de dos unidades paralelas. Sin embargo, no permiten realizar en paralelo cualquier combinación de instrucciones sino que sólo ciertas combinaciones específicas son permitidas. De esta manera, el aprovechamiento que pueden hacer los compiladores de estas arquitecturas no es muy elevado a pesar de la complejidad del chip. Si se analizan los resultados de las pruebas de prestaciones (benchmarks) oficialmente publicados por estos fabricantes tales como los SPECint92, SPECfp92 y TPS representativos de operaciones con números enteros, de coma flotante y transaccionales, podremos observar que ninguno de ellos supera a los resultados obtenidos por HP con su PA-RISC 7100 (ver tabla 1).

ARQUITECTURA DE 64/32 BITS

En la figura 1 se puede ver también que el acceso a la memoria se hace a 64 bits. Asimismo, se utiliza un direccionamiento virtual de 64 bits que permite implementar 4000 millones (2 elevado a 32) segmentos cada uno de ellos de 4 Gb. Las instrucciones son de 32 bits; algo común con el resto de arquitecturas RISC ya que ni siquiera las denominadas de 64 bits como ALPHA/AXP de DEC implementan instrucciones de más bits. Los registros y las operaciones con números en coma flotante son también de 64 bits. Solamente las operaciones con números enteros se realizan a 32 bits, no obstante esto permite operar con valores de hasta 4.200.000.000. Por tanto, aunque PA-RISC podrá ser implementada como una arquitectura de las denominadas de 64 bits cuando esto sea necesario para el usuario, en la actualidad es una arquitectura de 64/32 bits ya que implanta a 32 bits las operaciones con números enteros y a 64 bits los accesos a memoria, las operaciones con números en coma flotante y el direccionamiento virtual.

ARQUITECTURA MULTIPROCESADOR

PA-RISC fue diseñada desde sus orígenes con la idea de multiproceso simétrico MIMD. Al igual que con las arquitecturas superescalares, en un sistema multiprocesador se deben tener en cuenta ciertos parámetros para obtener un diseño equilibrado. Con el estado actual del hardware, diseñar un sistema con decenas de procesadores no es difícil, lo difícil es que no aparezcan cuellos de botella en el sistema. Por ejemplo, si se desea utilizar un modelo de memoria común donde los procesadores no tienen memoria privada, el cuello de botella aparece en el bus de memoria. Para evitar esto, HP ha diseñado sus sistemas multiprocesador con un bus de memoria de 1 Gb/s de ancho de banda. Mediante este bus, un sistema con 4 procesadores dispone de 256 Mb/s de velocidad de transferencia para cada procesador. Además, y para reducir el tráfico con memoria, se implementan memorias caché de 2Mb por cada procesador. Otro aspecto importante es el ancho de banda de entrada/salida del sistema. En el sistema HP, este ancho de banda es de 256Mb/s. Por último, el sistema operativo ha sido optimizado para un balanceo de cargas de proceso que permita el mayor aprovechamiento del hardware. En su conjunto, el diseño multiprocesador de HP se basa en monoprocesadores muy potentes, gran ancho de banda de los buses de memoria y de entrada/salida y un sistema operativo optimizado. Anunciar sistemas con muchos procesadores es fácil, que e

Viñeta publicada el 20 de febrero de 1870 en La Flaca n.º 35 Tendencias

ny2 ACTUALIDAD

ny2 Sociedad de la información

Día de la Movilidad y el BYOD Coffee Break