| Artículos | 01 ENE 1996

Multiproceso simétrico

Tags: Histórico
Susana Galán.

Una de las soluciones posibles para aumentar el rendimiento de los servidores, y en general de cualquier PC, es dotar a la máquina de más de un procesador. Descubra en el presente artículo cómo funciona el multiproceso simétrico.

Determinadas aplicaciones necesitan una potencia de CPU que nunca es suficientemente elevada como, por ejemplo, los programas de animación y render en tres dimensiones o, en otro terreno, las equipos encargados de trabajar como servidores de entornos de red con muchas máquinas cliente.

Si bien la velocidad actual de los procesadores es muy elevada, se encuentran en el mercado CPUs con frecuencias de reloj de 200 MHz y más, en algunos casos puede ser muy útil disponer de un ordenador con más de un microprocesador, de forma que las tareas que ejecutemos en el sistema se dividan entre los dos procesadores, para aumentar el rendimiento general del equipo.

Sin embargo, la utilización de dos o más procesadores plantea serios, y a la vez interesantes, problemas que los fabricantes de hardware han tenido que resolver antes de poner en el mercado este tipo de soluciones.

Intel, como fabricante líder en el mercado de microprocesadores, ha desarrollado un estándar cuyo objetivo es estandarizar el hardware dotado de más de un procesador. Esta especificación, conocida como MP Specification, o Especificación Multi Procesador, define las características hardware y software de un ordenador equipado con más de un procesador compatible con la arquitectura y el juego de instrucciones de las CPUs Intel 486 y Pentium.

Objetivo de la especificación MP

La meta más importante de esta norma es realizar una ampliación de la plataforma PC/AT mediante la cual sea posible diseñar equipos multiprocesador manteniendo una compatibilidad total con el hardware y el software existente.

Mediante la consecución de este objetivo anteriormente mencionado, es posible continuar ejecutando todas las aplicaciones existentes para la plataforma PC/AT y, a través de la utilización de sistemas operativos y aplicaciones para multiproceso, conseguir importantes incrementos en la productividad de los equipos.

Para construir un sistema compatible con esta especificación es necesario, sin embargo, realizar modificaciones en elementos clave del ordenador, como la BIOS del equipo, que debe construir una tabla de datos que presente el hardware de una forma clara a los controladores de dispositivo o a la capa de abstracción de hardware del sistema operativo.

En los siguientes párrafos iremos desgranando todos los componentes, tanto hardware como software, necesarios para construir un ordenador que sea compatible con la especificación MP de Intel.

Aspectos generales de un sistema MP

La especificación diseñada por Intel define que los equipos compatibles MP utilizan un esquema de memoria compartida por todos los procesadores instalados en el sistema. Además, son máquinas totalmente simétricas, es decir, todos los procesadores son funcionalmente idénticos, cada uno es capaz de comunicarse con cualquier otra CPU y no existe entre ellos ningún tipo de jerarquía.

Podemos decir, por lo tanto, que este modelo es simétrico en dos aspectos importantes:

Simetría de memoria. Esto es así ya que todos los procesadores presentes en el sistema acceden a un espacio de memoria común, al cual acceden todas las CPU mediante las mismas direcciones de memoria. Gracias a esta característica es posible que todos los procesadores ejecuten una misma copia del sistema operativo, de forma que cualquier aplicación se ejecutará de idéntica manera, independientemente del número de microprocesadores instalados.

Simetría de entrada/salida. Todos los procesadores comparten el mismo subsistema de entrada/salida, lo cual incluye a los puertos de entrada/salida y a los controladores de interrupciones. Mediante esta característica cualquier procesador de un sistema compatible MP está en disposición de atender interrupciones o peticiones de entrada/salida, al contrario que ocurre con otros sistemas multiprocesador que dedican una de las CPUs a tareas de entrada/salida.

Un vistazo general al hardware

Para fabricar un ordenador compatible MP se necesitan unos componentes mínimos:

- Uno o más procesadores compatibles con la arquitectura y el juego de instrucciones de la familia Intel 486 o Pentium. Esto hace posible, al menos en teoría, el uso de CPUs de otros fabricantes, como AMD y Cyrix, ya que dichos chips son compatibles con el juego de instrucciones de la familia x86 de Intel.

- Una o más APIC (Advanced Programmable Interrupt Controller, Controlador Programable Avanzado de Interrupciones), como el 82489 de Intel. Algunos procesadores, como los Pentium 735\90 y 815\100 o el Pentium Pro, llevan integrada la APIC.

- Un subsistema de memoria compartida y de caché que sea transparente para el software, de forma que ni las aplicaciones ni ninguno de los componentes del sistema operativo deba preocuparse por accesos simultáneos de más de un procesador a una misma dirección de memoria.

- Un esquema de componentes compatible con la plataforma PC/AT desde el punto de vista del software, lo cual incluye mapas de memoria, puertos de entrada/salida, canales DMA, interrupciones, etc.

Procesadores del sistema

A pesar de que según la especificación MP todas las CPUs del equipo son funcionalmente idénticas, éstas se encuentran divididas en dos clases: el procesador de arranque o BSP (bootstrap processor) y los procesadores de aplicaciones o AP (application processors).

La CPU que actúa como procesador de arranque se determina mediante el hardware de la placa base, o bien mediante la combinación de dicho hardware y la BIOS del sistema. Esta diferenciación entre los procesadores del ordenador sólo tiene efecto durante el arranque y el cierre del sistema, de forma que el procesador BSP es el encargado de inicializar el equipo y realizar el arranque del sistema operativo.

Una vez que el sistema operativo ha tomado el control del ordenador los procesadores AP, o de aplicaciones, son activados.

El controlador programable avanzado de interrupciones

El APIC se basa en una arquitectura distribuida que utiliza dos unidades funcionales: una unidad local y otra unidad de entrada/salida. En un sistema MP las unidades locales, las cuales están integradas en el procesador en el caso del Pentium, y las de entrada/salida funcionan juntas, comunicándose a través de un bus dedicado denominado ICC (Interrupt Controller Bus, Bus de Controladores de Interrupciones).

Mediante la APIC local se proporciona interrupciones inter-procesador, por las que una CPU puede interrumpir a otro procesador o grupo de ellos.

Cada APIC local y de entrada/salida tiene un registro de identificación. Este registro de identificación, o ID, sirve para nombrar a cada una de las APIC, y es usado por el software para especificar el destino de determinada información para realizar interrupciones inter-procesador y para acceder al bus ICC.

Para conseguir la compatibilidad con la plataforma PC/AT, las APIC funcionan de forma conjunta con los controladores de interrupciones de la familia 8259A, que se encuentran de forma estándar en cualquier compatible PC/AT.

Mapa de memoria del sistema

Como ya se ha comentado anteriormente, una máquina MP es compatible con la plataforma PC/AT, por lo que los equipos de multiproceso simétrico utilizan el mapa de memoria de dicha plataforma.

Sin embargo, en un sistema MP se debe diseñar un subsistema de acceso a memoria más eficiente que el equivalente para un equipo monoprocesador, ya que la demanda de acceso a memoria es proporcional al número de procesadores presentes en el ordenador.

Si bien la especificación MP de Inte

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios