DIFERENCIAS DE LAS ARQUITECTURAS RISC Y CISC:
6.4 SISTEMAS DE MULTIPROCESAMIENTO
Un sistema multiprocesador es una interconexión entre dos o más de las CPUs que comparten una memoria y un equipo de entrada / salida comunes. El término ―procesador‖ en el multiprocesador puede significar o una unidad procesadora central (CPU) o un procesador de entrada-salida (IOP).
Un sistema multiprocesador implica la existencia de CPU‘s múltiples, aunque usualmente habrá uno o más IOP‘s.
La creación del microprocesador ha producido la mayor motivación para los sistemas procesadores múltiples. El hecho de que los microprocesadores tomen muy poco espacio físico y sean poco costosos los hace factibles para interconectar un gran número de microprocesadores en un sistema compuesto.
El beneficio derivado de una organización del multiprocesador es un comportamiento mejor del sistema. Es logrado por medio de partición de la función total en un número de tareas que cada uno de los procesadores puede manejar individualmente. Las tareas del sistema pueden ser localizadas en procesadores de propósito especial cuyo diseño es optimizado para realizar ciertos tipos de procesamiento eficientemente.
La función del sistema puede distribuirse entre procesadores concurrentes separados que ejecutan operaciones en paralelo, reduciendo así el tiempo de ejecución global.
El multiprocesamiento mejora la confiabilidad del sistema de tal manera que una falla o error en un parte tiene un efecto limitado en el resto del sistema. Si una falla hace que un procesador falle, un segundo procesador puede asignarse para realizar las funciones del procesador deshabilitado. El sistema como un todo puede continuar funcionando como un todo quizá con alguna perdida en eficiencia.
Interconexión entre los procesadores.
Los componentes que forman un sistema multiprocesador son las CPU‘s y los IOP‘s conectados a los dispositivos entrada-salida y una unidad de memoria que puede partirse en un número de módulos separados. La interconexión entre las componentes puede tener configuraciones físicas diferentes dependiendo del número de rutas de transferencia que se encuentran disponibles entre los procesadores y la memoria. Cuatro esquemas de interconexión que han sido utilizados son:
Memoria multipuerto. Interruptor de barra cruzada.
Barraje común de tiempo compartido. Estructura de barraje dual.
Un sistema de memoria multipuerto emplea barajes separados entre cada modulo de memoria y cada CPU o IOP.
La ventaja de la organización de memoria multipuerto es la alta tasa de transferencia que puede lograse debido a las rutas múltiples entre los procesadores y la memoria. La desventaja es que requiere de control de memoria costosa y un gran número de cables y conectores.
La organización de interruptor de barra cruzada consta de un número de puntos de cruz que son colocados en las intersecciones entre los barajes del procesador y las rutas de modulo de memoria. También resuelven requisiciones múltiples de acceso al mismo modulo de memoria en una base prioritaria predeterminada.
El sistema multiprocesador de barraje común consta de un número de procesadores conectados a través de una ruta común a una unidad de memoria.
Cualquier otro procesador que desee iniciar una transferencia debe primero determinar la disponibilidad del estado del barraje, y solamente después de que el barraje este disponible el procesador puede direccionar la unidad de memoria para iniciar la transferencia.
Comunicación interprocesador.
Los diversos procesadores en un sistema multiprocesador deben venir provistos con una facilidad para comunicarse el uno con el otro. Una ruta de comunicación se puede establecer a través de canales comunes de entrada-salida.
El uso primario de la memoria común es actuar como un centro de mensajes similar a un apartado de correos, en donde cada procesador puede dejar mensajes para otros procesadores y recoger mensajes dirigido a el.
Además de la memoria compartida, un sistema multiprocesador puede tener otros recursos compartidos. Por ejemplo, una unidad de almacenamiento de disco conectada a un IOP puede estar disponible para todos los CPU‘s. Estos proporcionan facilidad para compartir programas de sistemas almacenados en un disco magnético. Una ruta de comunicación entre dos CPU‘s puede establecerse también por medio de un enlace entre dos IOP‘s asociados con dos CPU‘s diferentes. Este tipo de enlace le permite a cada uno de los CPU tratar a l otro como un dispositivo, I/O de tal manera que las operaciones I/O puedan utilizarse para transferir información entre las memorias locales de los dos CPU‘s.
Un sistema multiprocesador que emplea una interconexión de memoria compartida y utiliza recursos de sistemas I/O comunes que se dice que es un sistema acoplado ajustadamente. Esta es una característica de un sistema multiprocesador que tiene todas sus componentes principales, tales como CPU‘s, IOP‘s y dispositivos I/O en proximidad cercana.
Arbitramento del Barraje.
Cada procesador en un sistema multiprocesador requiere acceso a memoria común o a otros recursos comunes a través de un sistema de barraje común. Si no hay otro procesador utilizando el barraje común, al procesador
Los procedimientos de arbitramento sirven todas las requisiciones del procesador en la base de prioridades establecidas.
La técnica de resolución de prioridad serie se obtiene de una conexión en guirnalda de los árbitros de barraje. Un procesador puede estar en el medio de una operación de barraje cuando un procesador de alta prioridad requiere el barraje. El procesador de baja prioridad debe completar su operación de barraje antes de entregar el control del barraje.
La técnica de arbitramento de barraje paralelo utiliza un codificador de prioridad alterna y un decodificador. Cada arbitro del barraje en el esquema paralelo tiene una línea de salida de requisición de barraje y una línea de entrada de reconocimiento de barraje.
Exclusión mutua.
Un sistema multiprocesador que funciona adecuadamente debe proporcionar un mecanismo que garantice un acceso ordenado para compartir la memoria y otros recursos compartidos. Esto es necesario para proteger a los datos de que se cambien simultáneamente por dos o más procesadores. Este mecanismo ha sido denominado de exclusión mutua. La exclusión mutua debe proporcionarse en un sistema multiprocesador para habilitar un procesador para un excluir o enclavar el acceso a un recurso compartido por otros procesadores cuando ello es una sección crítica del programa. Una sección crítica de programa es una secuencia de programa que, una vez que comienza, debe completar la ejecución antes de que otro procesador accese el mismo recurso compartido.
Una variable binaria denominada semáforo es a menudo utilizada para indicar si un procesador está ejecutando una sección crítica del programa o no. Un semáforo es una bandera controlada por software que es almacenada en una localización de memoria a la cual todos los procesadores tienen acceso.
Cuando el semáforo es igual a 1, significa que el procesador está ejecutando un programa crítico, de tal manera que la memoria compartida no esta disponible para otros procesadores. Cuando el semáforo es igual a 0. l la memoria compartida esta disponible para cualquier procesador que la requiera.
La prueba y colocación del semáforo es por sí misma una operación crítica y debe analizarse como una operación sola indivisible.
Un semáforo puede iniciarse por medio de una instrucción de prueba y colocación en conjunto con un mecanismo de cerradura de hardware.
Una cerradura se hardware es una señal generada por el procesador que sirve para prevenir que otros procesadores utilicen el barraje del sistema siempre y cuando que la señal esté activa.
El semáforo mismo, cuando se coloca, previene que otros procesadores accesen la memoria compartida mientras un procesador está ejecutando una sección crítica del programa.