2014 Ingeniería de Sistemas
Arquitectura de Computadoras
PROCESAMIENTO PARALELO
DOCENTE: - Ing. Arellano Salazar, César
INTEGRANTES: - Alvarez Cruzado, Juana - Cabrera Díaz, Juan Carlos - Carranza De la cruz, Rosita - Correa Yengle, Randy
1.
TRUJILLO PERÚ PERÚ –
2014 1
Ingeniería de Sistemas
Arquitectura de Computadoras
ÍNDICE INTRODUCCIÓN ........................................................................................................................................ 5 PROCESAMIENTO PARALELO ................................................................................................................... 6
TAXONOMÍA DE FLYNN .................................................................................................................6
Diagrama de comparación de las clasificaciones .............................................................. 6 1.Una instrucción, un dato (SISD) ............................................................................................................ 7 1.1.
CARACTERÍSTICAS CARACTER ÍSTICAS................................... .................. ................................... ................................... ................................... .................................... .............................7 ...........7
1.2.
EJEMPLO: .................................. ................. .................................. ................................... ................................... ................................... .................................... ..........................8 ........8
2.Single Instruction, Multiple Data (SIMD) .............................................................................................. 9 2.1.
CARACTERÍSTICAS CARACTER ÍSTICAS................................... .................. ................................... ................................... ................................... .................................... .......................... ........ 10
2.2.
FUNCIONAMIENTO FUNCIONAMI ENTO................................. ................ ................................... ................................... ................................... .................................... .......................... ........ 10
2.2.1.
Arquitectura vectorial con segmentación: .................. ........................... ................... ................... .................. ............ ... 11
2.2.2.
Arquitectura Matricial (matriz de procesadores):.................. ........................... .................. .................. ........... .. 11
2.3.
EJEMPLOS: EJEMPLO S: ................................... .................. .................................. ................................... ................................... ................................... .................................... ...................... 11
3.Multiple Instruction, Single Data (MISD) ............................................................................................ 12 3.1.
CARACTERÍSTICAS: CARACTER ÍSTICAS:.................................. ................. ................................... ................................... ................................... .................................... .......................... ........ 12
3.2.
EJEMPLO: .................................. ................. .................................. ................................... ................................... ................................... .................................... ....................... ..... 13
4.Múltiples instrucciones, Múltiple data (MIMD) .................................................................................. 14 4.1.
CARACTERÍSTICAS CARACTER ÍSTICAS................................... .................. ................................... ................................... ................................... .................................... .......................... ........ 14
4.2.
CLASIFICACIÓN: CLASIFICACI ÓN: ................................. ................ .................................. .................................. ................................... .................................... ................................ .............. 15
4.2.1. 4.2.1 .
SISTEMAS DE MEMORIA COMPARTIDA COMPARTID A .................................. ................. ................................... ............................ .......... 15
4.2.2. 4.2.2 .
SISTEMAS DE MEMORIA DISTRIBUIDA. DISTRIBU IDA. ................................... .................. ................................... ............................ .......... 17
4.2.3.
SISTEMAS DE MEMORIA COMPARTIDA DISTRIBUIDA ................. .......................... .................. .............. ..... 17
2
Ingeniería de Sistemas
Arquitectura de Computadoras
ÍNDICE INTRODUCCIÓN ........................................................................................................................................ 5 PROCESAMIENTO PARALELO ................................................................................................................... 6
TAXONOMÍA DE FLYNN .................................................................................................................6
Diagrama de comparación de las clasificaciones .............................................................. 6 1.Una instrucción, un dato (SISD) ............................................................................................................ 7 1.1.
CARACTERÍSTICAS CARACTER ÍSTICAS................................... .................. ................................... ................................... ................................... .................................... .............................7 ...........7
1.2.
EJEMPLO: .................................. ................. .................................. ................................... ................................... ................................... .................................... ..........................8 ........8
2.Single Instruction, Multiple Data (SIMD) .............................................................................................. 9 2.1.
CARACTERÍSTICAS CARACTER ÍSTICAS................................... .................. ................................... ................................... ................................... .................................... .......................... ........ 10
2.2.
FUNCIONAMIENTO FUNCIONAMI ENTO................................. ................ ................................... ................................... ................................... .................................... .......................... ........ 10
2.2.1.
Arquitectura vectorial con segmentación: .................. ........................... ................... ................... .................. ............ ... 11
2.2.2.
Arquitectura Matricial (matriz de procesadores):.................. ........................... .................. .................. ........... .. 11
2.3.
EJEMPLOS: EJEMPLO S: ................................... .................. .................................. ................................... ................................... ................................... .................................... ...................... 11
3.Multiple Instruction, Single Data (MISD) ............................................................................................ 12 3.1.
CARACTERÍSTICAS: CARACTER ÍSTICAS:.................................. ................. ................................... ................................... ................................... .................................... .......................... ........ 12
3.2.
EJEMPLO: .................................. ................. .................................. ................................... ................................... ................................... .................................... ....................... ..... 13
4.Múltiples instrucciones, Múltiple data (MIMD) .................................................................................. 14 4.1.
CARACTERÍSTICAS CARACTER ÍSTICAS................................... .................. ................................... ................................... ................................... .................................... .......................... ........ 14
4.2.
CLASIFICACIÓN: CLASIFICACI ÓN: ................................. ................ .................................. .................................. ................................... .................................... ................................ .............. 15
4.2.1. 4.2.1 .
SISTEMAS DE MEMORIA COMPARTIDA COMPARTID A .................................. ................. ................................... ............................ .......... 15
4.2.2. 4.2.2 .
SISTEMAS DE MEMORIA DISTRIBUIDA. DISTRIBU IDA. ................................... .................. ................................... ............................ .......... 17
4.2.3.
SISTEMAS DE MEMORIA COMPARTIDA DISTRIBUIDA ................. .......................... .................. .............. ..... 17
2
Ingeniería de Sistemas
Arquitectura de Computadoras
ARQUITECTURA RISC Y CISC ................................................................................................................... 18 1.Microprocesadores RISC ..................................................................................................................... 19 2.Microprocesadores CISC ..................................................................................................................... 19 3. Ventajas y desventajas de RISC y CISC ............................................................................................... 19 RISC ........................................................................................................................................................ 20 DESCRIPCIÓN Y CARACTERÍSTICAS ......................................................................................................... 20 1. NTRODUCCIÓN ................................................................................................................................... 20 2CARACTERÍSTICAS ................................................................................................................................ 21 3. VENTAJAS Y DESVENTAJAS ................................................................................................................. 22 4.PAPEL DE LOS COMPILADORES EN UN SISTEMA RISC ........................................................................ 23 5.CAPACIDAD DE PROCESAMIENT P ROCESAMIENTO O DE LOS SISTEMAS DESDE EL PUNTO DE VISTA DEL D EL USUARIO ......24 6.Procesadores actuales ........................................................................................................................ 24 7.¿CISC o RISC? ....................................................................................................................................... 25 Multiprocesadores ................................................................................................................................. 25 1.Memoria compartida: ......................................................................................................................... 25 1.1.
UMA (Uniform Memory Access) ................................. ............... ................................... ................................... .................................... ....................... ..... 26
1.2.
NUMA (No Uniform Memory Access) ................................. ................ ................................... .................................... ................................ .............. 26
1.3.
Ventajas y Desventaja de Memoria Compartida .................. ........................... .................. .................. .................. .................. ............ ... 27
1.3.1.
Ventajas Ventaja s .................................. ................. .................................. ................................... ................................... ................................... ......................... ....... 27
1.3.2. 1.3.2 .
Desventajas Desvent ajas ................................. ................ ................................... ................................... ................................... .................................... .................... 27
2.Memoria distribuida ........................................................................................................................... 28 2.1.
Ventajas y Desventaja Desventaja de Memoria Distribuida .................. ........................... ................... ................... .................. .................. ............. .... 28
2.1.1. 2.1.1 .
Ventajas Ventaja s .................................. ................. .................................. ................................... ................................... ................................... ......................... ....... 28
2.1.2.
◮ Desventajas
..................................................................................................... 29
3.Memoria Híbrida Compartida-Distribuida .......................................................................................... 29 3.1.
Ventajas & Desventajas de las Memorias Compartidas Distribuidas ................. .......................... .................. ......... 30
3.1.1. 3.1.1 .
Ventajas: Ventaja s:................................. ................ .................................. ................................... ................................... ................................... ........................ ...... 30
3.1.2. 3.1.2 .
Desventajas: Desvent ajas: ................................... .................. ................................... ................................... ................................... .................................. ................ 30
4.TOPOLOGIAS ....................................................................................................................................... 31 4.1.
Totalmente Totalm ente conectada (Completely connected).................. connected) ................................... ................................... ................................ .............. 31
4.2.
Parcialmente Parcia lmente conectada .................................. ................. ................................... ................................... ................................... ................................... ................. 31
3
Ingeniería de Sistemas
Arquitectura de Computadoras
4.3.
Jerárquico Jerárqu ico o árbol (Tree) ................................. ................ ................................... ................................... ................................... ................................... ................. 32
4.4.
Estrella Estrel la ................................... .................. .................................. ................................... .................................... ................................... ................................... .......................... ........ 32
4.5.
Anillo (ring) .................................. ................. .................................. ................................... ................................... ................................... .................................... ...................... 33
LOS SISTEMAS DE MEMORIA CACHÉ Y EL MULTIPROCESO ................................................................... 34 1.Escritura continua (write-through). .................................................................................................... 34 2.Copia posterior (copy-back). ............................................................................................................... 35 2.1.
Escritura Escritu ra radiada (write-broadcas (write- broadcast) t) .................................. ................ ................................... ................................... ................................... ................. 35
2.2.
Escritura Escritu ra invalidada (write-invalidat (write -invalidate) e) ................................... .................. ................................... .................................... ............................. ........... 35
CONCLUSIONES ...................................................................................................................................... 38 BIBLIOGRAFÍA ......................................................................................................................................... 40 LINKOGRAFIA ......................................................................................................................................... 41
4
Ingeniería de Sistemas
Arquitectura de Computadoras
INTRODUCCIÓN La computación Paralela, es muy importante actualmente, al permitir mejorar la velocidad en la solución de grandes problemas, de modo que se mejora el rendimiento de computo. La computación paralela es una forma de cómputo en la que muchas instrucciones se ejecutan simultáneamente, operando sobre el principio de que problemas grandes, a menudo se pueden dividir en unos más pequeños, que luego son resueltos simultáneamente (en paralelo). Hay varias formas diferentes de computación paralela: paralelismo a nivel de bit, paralelismo a nivel de instrucción, paralelismo de datos y paralelismo de tareas. El interés en ella ha crecido últimamente debido a las limitaciones físicas que impiden el aumento de la frecuencia; para alcanzar grandes velocidades y capacidades de elaboración de datos, que son necesarias para el llamado procesamiento de inteligencia, es la disponer varios procesadores en paralelo, actuando simultáneamente. Los procesos paralelos son los que se producen en distintos recursos al mismo tiempo, los procesos simultáneos son los que pueden producirse, en distintos recursos al mismo tiempo, y los procesos solapados son los que pueden producirse en intervalos de tiempo superpuestos. El nivel más elevado del procesamiento paralelo es el de llevar a cabo múltiples tareas mediante sistemas de multiprogramación, tiempo compartido y multiprocesamiento. O sea que la tarea primordial, es la de implementar algoritmos que permitan realizar tareas en paralelo, continuando con los procedimientos y los sistemas operativos para tal objetivo, y terminando con la construcción de sistemas con organizaciones que permitan la realización de tareas simultáneas. Lo dicho sugiere que el procesamiento paralelo es un campo de estudios combinado, en el cual debe hacerse un perfecto balance entre hardware y software.
5
Ingeniería de Sistemas
Arquitectura de Computadoras
PROCESAMIENTO PARALELO TAXONOM ÍA DE
F L YNN
Es una clasificación de arquitecturas de computadoras propuestas por Michael J. Flynn en 1972 es la más aceptada en el mundo y se debe a Flynn, que clasifico las arquitecturas de acuerdo a los flujos de datos (data stream). Y a los flujos de instrucciones (instrution streams). El concepto de flujos de datos se refiere al número de operados que se pueden procesar al tiempo y el de flujos de instrucciones se refiere a cuantos programas se puede ejecutar al tiempo. Propone también la presentación mediante diagramas de bloques. Siendo la clasificación más extendida del paralelismo, distingue entre instrucciones y datos, estos pueden ser simples o múltiples. Las cuatro clasificaciones definidas por Flynn se basan en el número de instrucciones concurrentes (control) y en los flujos de datos disponibles en la arquitectura: Hay cuatro arquitecturas como se puede observar a continuación en donde cada "PU" (processing unit) es una unidad de procesamiento: Diagrama de comparación de las clasificaciones
6
Ingeniería de Sistemas
Arquitectura de Computadoras
1. Una instrucción, un dato (SISD) Es un término que se refiere a una arquitectura computacional en la que un único procesador ejecuta un sólo flujo de instrucciones, para operar sobre datos almacenados en una única memoria. Se corresponde con la arquitectura de Von Neumann. En esta categoría SISD se encuentran la gran mayoría de las computadoras existentes.
SISD
Son equipos con un solo procesador, que trabaja sobre un solo dato a la vez. A estos equipos se les llama también computadoras secuenciales. Flujo único de instrucciones. Flujo único de datos. Corresponde al modelo estructural básico, con un procesador de instrucciones y un procesador de datos. Tiene una única vía de acceso a la memoria principal. Este es el modelo tradicional de computación secuencial donde una unidad de procesamiento recibe una sola secuencia de instrucciones que operan en una secuencia de datos.
Secuencia de
Secuencia de
instrucciones
datos
7
Ingeniería de Sistemas
Arquitectura de Computadoras
Maquinas con un procesador o monoprocesador tradicionales como los antiguos mainframe (computadora central) La mayoría de las computadoras, servidores y estaciones de trabajo. Maquinas clásicas de Von Neumann.
1. CPU I NTERPRETA LAS INSTRUCCIONES CONTENIDAS LOS PROGRAMAS Y PROCESA LOS DATOS. 2. MEMORIA PRINCIPAL R ETIENE DATOS INFORMÁTICOS DURANTE ALGÚN INTERVALO DE TIEMPO . 3. DISPOSITIVOS DE ENTRADA/ SALIDA SON DISPOSITIVOS CON EL CUAL EL ORDENADOR SE COMUNICA CON EL MUNDO EXTERIOR . 4. U NIDAD ARITMÉTICA LÓGICA CIRCUITO DIGITAL QUE CALCULA OPERACIONES ARITMÉTICAS Y OPERACIONES LÓGICAS ENTRE DOS NÚMEROS. 5. U NIDAD DE CONTROL BUSCA LAS INTERRUPCIONES EN LA MEMORIA PRINCIPAL, LAS INTERPRETA Y LAS EJECUTA.
8
Ingeniería de Sistemas
Arquitectura de Computadoras
2. Single Instruction, Multiple Data (SIMD) Se lo conoce como un arreglo de procesadores. A diferencia de SISD, en este caso se tienen múltiples procesadores que sincronizadamente ejecutan la misma secuencia de instrucciones, pero en diferentes datos. El tipo de memoria que estos sistemas utilizan es distribuida. Las computadoras SIMD tienen una sola unidad de control y múltiples unidades funcionales. La unidad de control se encarga de enviar la misma instrucción a todas las unidades funcionales. Cada unidad funcional trabaja sobre datos diferentes. Estos equipos son de propósito específico, es decir, son apropiados para ciertas aplicaciones particulares, como por ejemplo el procesamiento de imágenes. Existe controversia acerca de si realmente existen equipos de tipo MISD. Hay quienes argumentan que estos equipos no existen. Otras personas consideran que un grupo de equipos que trabaja sobre un solo dato se puede considerar como un sistema de tipo MISD.
SIMD
9
Ingeniería de Sistemas
Arquitectura de Computadoras
Estos sistemas tienen un único flujo de instrucciones que operan sobre múltiples flujos de datos. Como por ejemplo: Máquinas vectoriales con hardware escalar. o Maquinas vectoriales con hardware vectorial. o El procesamiento es sincrónico La ejecución de las instrucciones sigue siendo secuencial, es decir que todos los elementos realizan una misma instrucción pero sobre una gran cantidad de datos. Por este motivo existirá concurrencia de operación, es decir es el origen de la máquina paralela. Diferentes elementos de información son asignados a cada procesador. Utiliza memoria distribuida. Tiene una sola unidad de control y y múltiples unidades funcionales. La unidad de control se encarga de enviar la misma instrucción a todas las unidades funcionales. Cada unidad funcional trabaja sobre datos diferentes. Estos equipos son de propósito específico, es decir, son apropiados para ciertas aplicaciones particulares, como por ejemplo el procesamiento de imágenes. -
Procesador 1
Instrucci ones
Procesador 2
Procesador 3
El funcionamiento de este tipo de sistema es el siguiente: La Unidad de Control manda una misma instrucción a todas las unidades de proceso (ALUs). Las unidades de proceso operan sobre datos diferentes pero con la misma instrucción recibida. Existen dos alternativas distintas que aparecen después de realizarse esta clasificación:
10
Ingeniería de Sistemas
Arquitectura de Computadoras
Una CPU única particionada en unidades funcionales independientes trabajando sobre flujos de datos concretos.
Varias ALUs idénticas a las que el procesador de instrucciones asigna una única instrucción pero trabajando sobre diferentes partes del programa.
…
…
…
Carga A
Carga A(2)
Carga A(n)
Carga B(1)
Carga B(2)
Carga B(n)
C(1)=A(1)+B(1)
C(2)=A(2)+B(2)
C(n)=A(n)+B(n)
Guarda C(1)
Guarda C(2)
Guarda C(n)
…
…
…
Unidad 2
Unidad n
Unidad 1
T I E M P O
Thinking Machines CM-2 MassPar computers Procesador MMX Supercomputadoras vectoriales, procesadores de arreglos (Cray-1 (USA) 1976).
11
Ingeniería de Sistemas
Arquitectura de Computadoras
3. Multiple Instruction, Single Data (MISD) Consiste en instrucciones que aplican una misma operación sobre un conjunto más o menos grande de datos. Es una organización que influye muchas unidades de procesamiento bajo la supervisión de una unidad de control común. Es decir, una única unidad de control despachada las instrucciones a diferentes unidades de procesamiento. Todos los procesadores reciben la misma institución de la unidad de control, pero operan sobre diferentes conjuntos de datos. Es decir la misma instrucción es ejecutada de manera síncrona por todas las unidades de procesamiento. Este tipo se refiere a ordenar procesadores con unidad de instrucción que busca una instrucción y después instruye a varias de datos para que la lleven a cabo en paralelo.
MISD
Múltiples Instrucciones operando sobre los mismos datos. Secuencias de instrucciones pasan a través de múltiples procesadores. Cada unidad ejecuta una instrucción distinta. Cada unidad procesa el mismo dato. Aplicación muy limitada en la vida real.
12
Ingeniería de Sistemas
Arquitectura de Computadoras
…
…
…
Carga A
Carga A
Carga A
T
C(1)=A*1
C(2)=A*2
C(n)=A*n
I
Guarda C(1)
Guarda C(2)
Guarda C(n)
E
…
…
…
Unidad 2
Unidad n
Unidad 1
M P O
• Presumiblemente ninguna.
13
Ingeniería de Sistemas
Arquitectura de Computadoras
4. Múltiples instrucciones, Múltiple data (MIMD) Cuyas siglas significa Multiple Instruction, Multiple Data. Es un sistema con un flujo de múltiples instrucciones que operan sobre múltiples datos. Estos sistemas empezaron a utilizarse a principios de los 80. Se las conoce como múltiples computadoras y multiprocesadores. Se puede decir que MIMD es un súper conjunto de SIMD.
MIMD
Son sistemas con memoria compartida que permite ejecutar varios procesos simultáneamente (sistema multiprocesador) La diferencia con estos sistemas es que MIMD es asíncrono. No tiene un reloj central. Cuando las unidades de proceso reciben datos de una memoria no compartida estos sistemas reciben el nombre de Múltiple SISD (MSISD). Los procesadores pueden ejecutar la misma o instrucción o diferentes instrucciones y tener sus propios datos Diferentes elementos de información se asignan a diferentes procesadores Pueden tener memoria distribuida o compartida. Cada procesador MIMD corre casi independientemente de los otros. Pueden ser utilizadas en aplicaciones con información en paralelo o con tareas en paralelo.
14
Ingeniería de Sistemas
-
Conjunto de
Procesador 1
1. 2. 3.
Arquitectura de Computadoras
-
-
Conjunto de
Procesador 2
Conjunto de
Procesador 3
Sistemas de Memoria Compartida. Sistemas de Memoria Distribuida. Sistemas de Memoria Compartida Distribuida.
La memoria convencional que puede direccionar un proceso a través de su espacio de direcciones virtuales es local a ese proceso, cualquier intento de direccionar esa memoria desde otro proceso va a provocar una violación de segmento. El mecanismo de memoria compartida permite a dos o más procesos compartir un segmento de memoria, y por consiguiente, los datos que hay en él. Es por ello el método más rápido de comunicación entre procesos. Al ser el objetivo de este tipo de comunicación la transferencia de datos entre varios procesos, los programas que utilizan memoria compartida deben normalmente establecer algún tipo de protocolo para el bloqueo. Este protocolo puede ser la utilización de semáforos, que es a su vez otro tipo de comunicación (sincronización) entre procesos. La memoria que maneja un proceso, y también la compartida, va a ser virtual, por lo que su dirección física puede variar con el tiempo. Esto no va a plantear ningún problema, ya que los procesos no generan direcciones físicas, sino virtuales, y es el núcleo (con su gestor de memoria) el encargado de traducir unas a otras.
15
Ingeniería de Sistemas
-
Arquitectura de Computadoras
Software
En el software, memoria compartida puede referirse a: Un método de comunicación entre procesos, por ejemplo: el intercambio de datos entre dos programas ejecutándose al mismo tiempo. Uno de los procesos creará un área en RAM a la que el otro pueda acceder, o un método para conservar espacio en la memoria, usando mapeos virtuales o bien soporte explícito del programa en cuestión, dirigiendo los accesos a una sola instancia de datos que normalmente serían duplicados. Comúnmente destinado para bibliotecas de enlace dinámico dinámicas y el espacio de usuario (XIP, "execute in place”).
Dado que ambos procesos pueden acceder al área de memoria compartida como memoria de trabajo regular, esta es una forma de comunicación veloz (al contrario de otros mecanismos de comunicación entre procesos como tuberías nombradas, socket de dominio UNIX o CORBA. En cambio, este sistema es menos potente, si, por ejemplo, los procesos que se comunican deben ejecutarse en la misma máquina (en cuanto a otros métodos de comunicación entre procesos, solo los sockets del Internet Domain (no los sockets de UNIX), pueden usar una red de computadoras). Esto se debe a que se requiere mayor atención y cuidado si los procesos que comparten memoria corren en CPUs separadas y la arquitectura subyacente no soporta coherencia de caché. La comunicación entre procesos por memoria compartida se usa en UNIX, para transferir imágenes entre una aplicación y un XServer, o en la biblioteca COM de Windows dentro del objeto IStream devuelto por la función CoMarshal Inter Thread Interface In Stream. Las bibliotecas de enlace dinámico se copian una sola vez en la memoria y son "mapeadas" para múltiples procesos. Sólo las páginas que estén personalizadas se duplican, normalmente con un mecanismo conocido como copy-onwrite que de manera transparente copia la página cuando se intenta escribir en ésta, y después permite que la escritura se realice en la copia privada. -
Hardware
Se refiere a la situación dónde cada nodo (computadora) comparte sus tablas de páginas, su memoria virtual y todo lo que habita en la memoria RAM con otros nodos en la misma red de interconexión. Una ejemplo de memoria compartida es DSM. En otras palabras, una computadora convencional tiene una memoria RAM y un CPU (entre otras partes de hardware), las cuales están comunicadas de manera local. Cuando se habla de multicomputadoras es necesario entenderlas como un conjunto de máquinas convencionales trabajando coordinadamente con el objetivo de compartir recursos de software y hardware para tareas muy específicas, como por ejemplo la investigación. El hecho de que cada CPU sólo pueda acceder a la RAM local no beneficia mucho y agrega complejidad a los programadores de multicomputadoras, con la compartición de memoria se mitiga esta complejidad ya que todas las CPUs pueden acceder a la misma RAM.
16
Ingeniería de Sistemas
Arquitectura de Computadoras
Ejemplos son: SGI/Cray Power Challenge, SGI/Cray C90, SGI/Onyx, ENCORE, MULTIMAX, SEQUENT y BALANCE, entre otras.
Estos sistemas tienen su propia memoria local. Los procesadores pueden compartir información solamente enviando mensajes. Las computadoras MIMD de memoria distribuida son conocidas como sistemas de procesamiento en paralelo masivo (MPP) donde múltiples procesadores trabajan en diferentes partes de un programa, usando su propio sistema operativo y memoria. Algunos ejemplos de este tipo de máquinas son IBM SP2 y SGI/Cray T3D/T3E.
4.2.3. Es una partición de procesadores que tienen acceso a una memoria compartida común pero sin un canal compartido. Esto es, físicamente cada procesador posee su memoria local y se interconecta con otros procesadores por medio de un dispositivo de alta velocidad, y todos ven las memorias de cada uno como un espacio de direcciones globales. Algunos ejemplos de este tipo de sistemas son HP/Convex SPP-2000 y SGI/Cray Origin2000.
17
Ingeniería de Sistemas
Arquitectura de Computadoras
ARQUITECTURA RISC Y CISC Una de las primeras decisiones a la hora de diseñar un microprocesador es decidir cuál será su juego de instrucciones. La decisión por dos razones; primero, el juego de instrucciones decide el diseño físico del conjunto; segundo, cualquier operación que deba ejecutarse en el microprocesador deberá poder ser descrita en términos de un lenguaje de estas instrucciones. Frente a esta cuestión caben dos filosofías de diseño; máquinas denominadas CISC y máquinas denominadas RISC.
Cuando hablamos de microprocesadores CISC, computadoras con un conjunto de instrucciones complejo, (del inglés complex instruction set computer), y procesadores RISC, computadoras con un conjunto de instrucciones reducido, (del inglés reduced instruction set computer), se piensa que los atributos complejo y reducido describen las diferencias entre los dos modelos de arquitectura para microprocesadores. Esto es cierto solo de forma superficial, pues se requiere de muchas otras características esenciales para definir los RISC y los CISC. Hasta hace solo algunos años, la división era tajante: RISC se utilizaba para entornos de red, mientras que CISC se aplicaba en ordenadores domésticos. Pero en la actualidad se alzan
18
Ingeniería de Sistemas
Arquitectura de Computadoras
voces que afirman que CISC está agotando sus posibilidades, mientras otras defienden fervientemente que CISC ya ha alcanzado a RISC, adoptando algunas de sus principales características.
1. Microprocesadores RISC El término microprocesador RISC significa microprocesador "Reduced Instruction Set Computer". Esto significa que los microprocesadores RISC utilizan sólo un simple conjunto de instrucciones para leer y procesar los datos. Estos conjuntos simples de instrucciones se completan normalmente en un ciclo de reloj de la computadora, o el número de pulsos del oscilador por segundo que el procesador de tu equipo puede manejar, es decir la velocidad se mide en megahertz o gigahertz.
2. Microprocesadores CISC El término microprocesador CISC significa microprocesador "Complex Instruction Set Computer". Como el nombre implica, el microprocesador CISC ejecuta los comandos complejos en menos líneas de código, estableciendo este tipo de procesador como una alternativa a los microprocesadores RISC. Según científicos de la computación de Stanford University, el objetivo de la arquitectura de los microprocesadores CISC es ejecutar tareas de procesamiento en el menor número de líneas de código como sea posible.
3. Ventajas y desventajas de RISC y CISC Los microprocesadores RISC son generalmente menos costosos de construir y vender, ya que utilizan menos componentes y transistores, según Amiga History, una base de datos de la historia de la tecnología. Sin embargo, estos chips no requieren muchas más líneas de código para ejecutar las tareas que sus contrapartes CISC. Los microprocesadores CISC son considerados ser más fáciles para trabajar para los programadores, pero son más costosos de desarrollar
19
Ingeniería de Sistemas
Arquitectura de Computadoras
RISC DESCRIPCIÓN Y CARACTERÍSTICAS Veamos primero cual es el significado de los términos CISC y RISC: - CISC (complex instruction set computer) Computadoras con un conjunto de instrucciones complejo. - RISC (reduced instruction set computer) Computadoras con un conjunto de instrucciones reducido.
1. INTRODUCCIÓN Los atributos complejo y reducido describen las diferencias entre los dos modelos de arquitectura para microprocesadores solo de forma superficial. Se requiere de muchas otras características esenciales para definir los RISC y los CISC típicos. Aún más, existen diversos procesadores que no se pueden asignar con facilidad a ninguna categoría determinada. Así, los términos complejo y reducido, expresan muy bien una importante característica definitiva, siempre que no se tomen solo como referencia las instrucciones, sino que se considere también la complejidad del hardware del procesador. Con tecnologías de semiconductores comparables e igual frecuencia de reloj, un procesador RISC típico tiene una capacidad de procesamiento de dos a cuatro veces mayor que la de un CISC, pero su estructura de hardware es tan simple, que se puede realizar en una fracción de la superficie ocupada por el circuito integrado de un procesador CISC. Esto hace suponer que RISC reemplazará al CISC, pero la respuesta a esta cuestión no es tan simple ya que: -
Para aplicar una determinada arquitectura de microprocesador son decisivas las condiciones de realización técnica y sobre todo la rentabilidad, incluyendo los costos de software. Existían y existen razones de compatibilidad para desarrollar y utilizar procesadores de estructura compleja así como un extenso conjunto de instrucciones.
-
La meta principal es incrementar el rendimiento del procesador, ya sea optimizando alguno existente o se desee crear uno nuevo. Para esto se deben considerar tres áreas principales a cubrir en el diseño del procesador y estas son:
20
Ingeniería de Sistemas
Arquitectura de Computadoras
La arquitectura. La tecnología de proceso (los materiales y técnicas utilizadas en la fabricación del circuito integrado) El encapsulado (cómo se integra un procesador con lo que lo rodea en un sistema funcional, que de alguna manera determina la velocidad total del sistema.)
Aunque la tecnología de proceso y de encapsulado son vitales en la elaboración de procesadores más rápidos, es la arquitectura del procesador lo que hace la diferencia entre el rendimiento de una CPU (Control Process Unit) y otra. Y es en la evaluación de las arquitecturas RISC y CISC donde centraremos nuestra atención. Dependiendo de cómo el procesador almacena los operandos de las instrucciones de la CPU, existen tres tipos de juegos de instrucciones: 1. Juego de instrucciones para arquitecturas basadas en pilas. 2. Juego de instrucciones para arquitecturas basadas en acumulador. 3. Juego de instrucciones para arquitecturas basadas en registros. Las arquitecturas RISC y CISC son ejemplos de CPU con un conjunto de instrucciones para ARQUÍTECTURAS BASADAS EN REGISTROS. Una de las primeras decisiones a la hora de diseñar un microprocesador es decidir cuál será su juego de instrucciones. La decisión es trascendente por dos razones: - Primero, el juego de instrucciones decide el diseño físico del conjunto. - Segundo, cualquier operación que deba ejecutarse en el microprocesador deberá poder ser descrita en términos de un lenguaje de estas instrucciones. Frente a esta cuestión caben dos filosofías de diseño; máquinas denominadas CISC y máquinas denominadas RISC.
2. CARACTERÍSTICAS -
Un chip RISC típicamente tendrá menos transistores dedicados a la lógica principal. Esto permite a los diseñadores una flexibilidad considerable; así pueden, por ejemplo:
Incrementar el tamaño del conjunto de registros. Mayor velocidad en la ejecución de instrucciones. Implementar medidas para aumentar el paralelismo interno. Añadir cachés enormes. Añadir otras funcionalidades, como E/S y relojes para minicontroladores. Construir los chips en líneas de producción antiguas que de otra manera no serían utilizables.
21
Ingeniería de Sistemas
-
Arquitectura de Computadoras
Las características que generalmente son encontradas en los diseños RISC son:
Codificación uniforme de instrucciones (ejemplo: el código de operación se encuentra siempre en la misma posición en cada instrucción, la cual es siempre una palabra), lo que permite una decodificación más rápida. Un conjunto de registros homogéneo, permitiendo que cualquier registro sea utilizado en cualquier contexto y así simplificar el diseño del compilador (aunque existen muchas formas de separar los ficheros de registro de entero y coma flotante). Modos de direccionamiento simple con modos más complejos reemplazados por secuencias de instrucciones aritméticas simples. Los tipos de datos soportados en el hardware (por ejemplo, algunas máquinas CISC tiene instrucciones para tratar con tipos byte, cadena) no se encuentran en una máquina RISC.
3. VENTAJAS Y DESVENTAJAS La arquitectura RISC funciona de modo muy diferente a la CISC, su objetivo no es ahorrar esfuerzos externos por parte del software con sus accesos a la RAM, sino facilitar que las instrucciones sean ejecutadas lo más rápidamente posible. La forma de conseguirlo es simplificando el tipo de instrucciones que ejecuta el procesador. Así, las instrucciones más breves y sencillas de un procesador RISC son capaces de ejecutarse mucho más aprisa que las instrucciones más largas y complejas de un chip CISC. Sin embargo, este diseño requiere de mucha más RAM y de una tecnología de compilador más avanzada. La relativa sencillez de la arquitectura de los procesadores RISC conduce a ciclos de diseño más cortos cuando se desarrollan nuevas versiones, lo que posibilita siempre la aplicación de las más recientes tecnologías de semiconductores. Por ello, los procesadores RISC no solo tienden a ofrecer una capacidad de procesamiento del sistema de 2 a 4 veces mayor, sino que los saltos de capacidad que se producen de generación en generación son mucho mayores que en los CISC. Los comandos que incorpora el chip RISC en su ROM constan de varias instrucciones pequeñas que realizan una sola tarea. Las aplicaciones son aquí las encargadas de indicar al procesador qué combinación de estas instrucciones debe ejecutar para completar una operación mayor. Además, los comandos de RISC son todos del mismo tamaño y se cargan y almacenan del mismo modo. Al ser estas instrucciones pequeñas y sencillas, no necesitan ser descodificadas en instrucciones menores como en el caso de los chips CISC, pues ya constituyen en sí unidades descodificadas. Por ello, el procesador RISC no gasta tiempo verificando el tamaño del comando, en descodificarlo ni en averiguar cómo cargarlo y guardarlo. El procesador RISC puede además ejecutar hasta 10 comandos a la vez pues el compilador del software es el que determina qué comandos son independientes y por ello es posible ejecutar varios a la vez. Y al ser los comandos del RISC más sencillos, la circuitería por la que pasan también es más sencilla. Estos comandos pasan por menos transistores, de forma que se
22
Ingeniería de Sistemas
Arquitectura de Computadoras
ejecutan con más rapidez. Para ejecutar una sola instrucción normalmente les basta con un ciclo de reloj. Entre LAS VENTAJAS DE RISC tenemos las siguientes: - La CPU trabaja más rápido al utilizar menos ciclos de reloj para ejecutar instrucciones. - Utiliza un sistema de direcciones no destructivas en RAM. Eso significa que a diferencia de CISC, RISC conserva después de realizar sus operaciones en memoria los dos operandos y su resultado, reduciendo la ejecución de nuevas operaciones. - Cada instrucción puede ser ejecutada en un solo ciclo del CPU
DESVENTAJAS DE ESTE DISEÑO - Menor potencia que otros procesadores. Existen operaciones que se aceleran muchísimo con instrucciones complejas. Sobre todo de índole matemática asociadas a simulaciones, tratamiento de señal, video, fotos.
4. PAPEL DE LOS COMPILADORES EN UN SISTEMA RISC El compilador juega un papel clave para un sistema RISC equilibrado. Todas las operaciones complejas se trasladan al microprocesador por medio de conexiones fijas en el circuito integrado para agilizar las instrucciones básicas más importantes. De esta manera, el compilador asume la función de un mediador inteligente entre el programa de aplicación y el microprocesador. Es decir, se hace un gran esfuerzo para mantener al hardware tan simple como sea posible, aún a costa de hacer al compilador considerablemente más complicado. Esta estrategia se encuentra en clara contra posición con las máquinas CISC que tienen modos de direccionamiento muy complicados. En la práctica, la existencia en algunos modos de direccionamiento complicados en los microprocesadores CISC, hacen que tanto el compilador como el microprograma sean muy complicados. No obstante, las máquinas CISC no tienen características complicadas como carga, almacenamiento y salto que consumen mucho tiempo, las cuales en efecto aumentan la complejidad del compilador. Para suministrar datos al microprocesador de tal forma que siempre esté trabajando en forma eficiente, se aplican diferentes técnicas de optimización en distintos niveles jerárquicos del software. Los diseñadores de RISC en la empresa MIP y en Hewlett Packard trabajan según la regla siguiente: Una instrucción ingresa en forma fija en el circuito integrado del procesador (es decir, se alambra físicamente en el procesador) si se ha demostrado que la capacidad total del sistema se incrementa en por lo menos un 1%. En cambio, los procesadores CISC, han sido desarrollados por equipos especializados de las empresas productoras de semiconductores y con frecuencia el desarrollo de compiladores se sigue por separado. Por consiguiente, los diseñadores de los compiladores se encuentran con
23
Ingeniería de Sistemas
Arquitectura de Computadoras
una interfaz hacia el procesador ya definido y no pueden influir sobre la distribución óptima de las funciones entre el procesador y compilador. Las empresas de software que desarrollan compiladores y programas de aplicación, tienden por razones de rentabilidad, a utilizar diferentes procesadores como usuarios de su software en lugar de realizar una optimización completa, y aprovechar así las respectivas características de cada uno. Lo cual también genera otros factores negativos de eficiencia. Esta limitación de las posibilidades de optimización del sistema, que viene dada a menudo por una obligada compatibilidad, se superó con los modernos desarrollos RISC.
5. CAPACIDAD DE PROCESAMIENTO DE LOS SISTEMAS DESDE EL PUNTO DE VISTA DEL USUARIO A parte de la base conceptual para el desarrollo de un sistema de computación de alta calidad, se requieren técnicas especiales para optimizar cada uno de los factores que determinan la capacidad de procesamiento, la cual, solo puede definirse con el programa de aplicación. La información suministrada por un fabricante, sobre la velocidad en mips (millones de Instrucciones por segundo) que una arquitectura es capaz de realizar, carece de relevancia hasta que el usuario sepa cuantas instrucciones genera el respectivo compilador, al traducir su programa de aplicación y cuánto tiempo tarda la ejecución de estas instrucciones, y solo el análisis de diferentes pruebas y comparaciones de rendimiento ("benchmarks) da una idea aproximada, que el usuario puede aplicar para delimitar las arquitecturas adecuadas. Dos diferentes puntos de vista acerca de capacidad de procesamiento del sistema. Sistema reprogramable. Un usuario que necesite desarrollar un sistema reprogramable, no está interesado en obtener una alta capacidad de procesamiento. Sistema incluido o dedicado. En estos sistemas el principal objetivo es procesar en forma repetitiva una serie de aplicaciones o funciones determinadas, y es de suma importancia la mayor cantidad posible de pruebas y comparaciones de rendimiento ("benchmarks”) diferentes. Así, estas pruebas y comparaciones sirven para determinar la capacidad de procesamiento de los sistemas, pero solo el análisis de varios resultados de diferentes programas da una idea aproximada de la capacidad de procesamiento real.
6. Procesadores actuales La guerra entre las arquitecturas CISC, que es la opuesta a la RISC, es antigua. Sin embargo y gracias a las tabletas y Smartphone ha vuelto a estar de actualidad. ARM la empresa que está detrás de la mayoría de los micros para estos dispositivos utiliza desde siempre arquitectura RISC. Cualquier micro de Intel o AMD es una mezcla entre CISC y RISC. Tienen instrucciones CISC realmente complejas que son divididas en trozos y procesadas en el orden más adecuado para utilizar todos los recursos al mismo tiempo.
24
Ingeniería de Sistemas
Arquitectura de Computadoras
7. ¿CISC o RISC? La mayor ventaja de un procesador RISC frente a uno CISC es su eficiencia energética. Por eso todavía Intel no ha podido entrar como le gustaría en el mercado de los dispositivos portátiles. Un bajo consumo necesita un micro capaz de realizar sus tareas sin desperdiciar ni un sólo watio. Aunque los micros actuales que puedes tener en cualquier PC son muy parecidos a los RISC es cierto que incluyen en su interior mucha potencia de cálculo que necesita energía para funcionar.
Multiprocesadores Un multiprocesador se puede ver como un computador paralelo compuesto por varios procesadores interconectados que pueden compartir un mismo sistema de memoria. Los procesadores se pueden configurar para que ejecute cada uno una parte de un programa o varios programas al mismo tiempo. Un diagrama de bloques de esta arquitectura se muestra en la figura 1.3. Tal y como se muestra en la figura, que corresponde a un tipo particular de multiprocesador que se verá más adelante, un multiprocesador está generalmente formado por n procesadores y m módulos de memoria. A los procesadores los llamamos P1, P2,. . ., Pn y a las memorias M1, M2, . . . , Mn. La red de interconexión conecta cada procesador a un subconjunto de los módulos de memoria. Dado que los multiprocesadores comparten los diferentes módulos de memoria, pudiendo acceder varios procesadores a un mismo módulo, a los multiprocesadores también se les llama sistemas de memoria compartida.
1. Memoria compartida: ◮ En
general la memoria compartida permite a los procesadores acceder a la memoria como un espacio de direcciones global
◮ Procesadores
múltiples pueden operar independientemente sobre recursos de memoria
compartida ◮ Un
cambio en la memoria producido por una unidad de procesamiento es visible por el resto de los procesadores
◮ Hay
dos clases de arquitecturas de memoria compartida: UMA y NUMA
25
Ingeniería de Sistemas
Arquitectura de Computadoras
En un modelo de Memoria de Acceso Uniforme, la memoria física está uniformemente compartida por todos los procesadores. Esto quiere decir que todos los procesadores tienen el mismo tiempo de acceso a todas las palabras de memoria. Cada procesador puede tener su cache privada, y los periféricos son también compartidos de alguna manera. A estos computadores se les suele llamar sistemas fuertemente acoplados dado el alto grado de compartición de los recursos. Es frecuente encontrar arquitecturas de acceso uniforme que además tienen coherencia de caché, a estos sistemas se les suele llamar CC-UMA (Cache-Coherent Uniform Memory Access). ◮ Un ◮ Las
claro ejemplo son las machinas SMP (Symmetric Multiprocessor) prioridades y los tiempos de acceso son iguales para todos
Un multiprocesador de tipo NUMA es un sistema de memoria compartida donde el tiempo de acceso varía según el lugar donde se encuentre localizado el acceso. La figura 1.4 muestra una posible configuración de tipo NUMA, donde toda la memoria es compartida pero local a cada módulo procesador. Otras posibles configuraciones incluyen los sistemas basados en agrupaciones (clusters) de sistemas como el de la figura que se comunican a través de otra red de comunicación que puede incluir una memoria compartida global. La ventaja de estos sistemas es que el acceso a la memoria local es más rápido que en los UMA aunque un acceso a memoria no local es más lento. Lo que se intenta es que la memoria utilizada por los procesos que ejecuta cada procesador, se encuentre en la memoria de dicho procesador para que los accesos sean lo más locales posible. Aparte de esto, se puede añadir al sistema una memoria de acceso global.
26
Ingeniería de Sistemas
Arquitectura de Computadoras
En este caso se dan tres posibles patrones de acceso. El más rápido es el acceso a memoria local. Le sigue el acceso a memoria global. El más lento es el acceso a la memoria del resto de módulos. Al igual que hay sistemas de tipo CC-UMA, también existe el modelo de acceso a memoria no uniforme con coherencia de caché CC-NUMA (Cache-Coherent NonUniform Memory Access) que consiste en memoria compartida distribuida y directorios de cache.
1.3.1. ◮ Espacio ◮ El
de memoria global es amigable para el programador
intercambio de datos entre las tareas es rápido y uniforme debido a la proximidad entre
CPUs
◮ El
principal problema es que no se puede escalar el modelo. Cuando se agregan CPUs el tráfico se incrementa geométricamente y comienzan los problemas de coherencia ◮ El
programador es responsable de la sincronización de los datos y la coherencia en la memoria
27
Ingeniería de Sistemas
Arquitectura de Computadoras
MEMORIA COMPARTIDA
RED
Procesador 1
Procesador 2
Procesador 3
2. Memoria distribuida ◮ Hay
varios modelos de memoria distribuida. El patrón general es el uso de una red de comunicación para conectar las memorias de los procesadores. ◮
Los procesadores tienen su propia memoria local y no hay correspondencia entre dos procesadores. ◮ Independencia ◮ Cuando ◮ La
de operación, los cambios en un lugar no afectan al resto.
un procesador necesita un dato externo, el programador lo ordena explícitamente.
red de comunicación puede variar ampliamente, puede ser una red Ethernet.
◮
El modelo escala con los procesadores. A medida que se agregan unidades de procesamiento la memoria escala proporcionalmente ◮ Cada
procesador accede a un dato en memoria sin interferir al resto de los componentes. Se eliminan las demoras por accesos múltiples
28
Ingeniería de Sistemas
Arquitectura de Computadoras
◮ El
programador es responsable de muchos de los detalles asociados a la comunicación entre procesadores ◮
Puede ser dificultoso mapear estructuras de datos basadas en memoria global a esta organización de memoria
MEMORIA 1
Procesador 1
MEMORIA 2
Procesador 2
MEMORIA 3
Procesador 3
RED
3. Memoria Híbrida Compartida-Distribuida Son sistemas que, mediante software, emulan semántica de memoria compartida sobre hardware que ofrece soporte solo para comunicación mediante paso de mensajes. Este modelo permite utilizar una red de estaciones de trabajo de bajo costo como una maquina paralela con grandes capacidades de procesamiento y amplia escalabilidad, siendo a la vez fácil de programar. El objetivo principal de estos sistemas es permitir que un multicomputador pueda ejecutar programas escritos para un multiprocesador con memoria compartida. Cada uno de los nodos en un sistema de MCD aporta una parte de su memoria local para construir un espacio global de direcciones virtuales que será empleado por los procesos paralelos que se ejecuten en el sistema. El software de MCD se encarga de interceptar las referencias a memoria que hacen los procesos, y satisfacerlas, ya sea local o remotamente. Si los accesos a memoria hacen referencia a posiciones almacenadas remotamente, es necesario llevar a cabo una transferencia a través de la red, con el consecuente overhead que esto conlleva. Por esta razón los sistemas de MCD tienen un comportamiento no uniforme respecto a los accesos a memoria. Sin embargo, a diferencia de los sistemas NUMA, en este caso los procesadores no tienen acceso a memoria remota en forma directa. Es necesario que medie un componente de software para permitir los accesos que no son locales.
29
Ingeniería de Sistemas
Arquitectura de Computadoras
Los sistemas de memoria compartida distribuida (DSM) representan la creación hibrida de dos tipos de computación paralelos: la memoria distribuida en sistemas multiprocesador y los sistemas distribuidos. Ellos proveen la abstracción de memoria compartida en sistemas con memorias distribuidas físicamente y consecuentemente combinan las mejores características de ambos enfoques. Debido a esto, el concepto de memoria compartida distribuida es reconocido como uno de los enfoques más atractivos para la creación de sistemas escalables, de alto rendimiento de sistemas multi-procesador.
• Ilusión de una memoria física compartida, sin cu ellos de botella. • Estabilidad (podemos extender el sistema sin mucho problema). • Menor costo.
• Topología de red muy importante. • Administración de la red.
NODO 1 MEMORIA
NODO 2 MEMORIA
NODO 3 MEMORIA
RED
Procesador 1
Procesador 2
Procesador 3
30
Ingeniería de Sistemas
Arquitectura de Computadoras
4. TOPOLOGIAS En esta topología cualquier nodo en el sistema está conectado a todos los otros nodos de la red. (Fig. 7.2). El costo básico de esta configuración es alto, ya que debe existir una conexión directa entre cada dos nodos. El costo de anexar un nuevo nodo crece según X, donde X es la cantidad de nodos que contiene la red. Sin embargo, en este entorno los mensajes entre nodos pueden entregarse muy velozmente, cualquier mensaje utiliza solamente una conexión para viajar entre dos nodos. Estos sistemas son muy confiables ya que deben fallar muchos nodos para que el sistema completo falle. Un sistema está particionado si se ha dividido en dos subsistemas que no pueden comunicarse entre sí.
En una red parcialmente conectada existen conexiones directas entre dos nodos pero no para rodos los nodos. De allí el costo básico de la red sea menor. Un mensaje de un nodo a otro puede requerir viajar entre varios nodos antes de arribar a su destino, lo que resulta en una comunicación más lenta. No es tan confiable como la totalmente conectada. Por ejemplo en la figura si falla la conexión entre el nodo B y el nodo C entonces la red era particionada en dos subsistemas. Para minimizar la posibilidad en general cada nodo está conectado con por lo menos otros dos nodos.
31
Ingeniería de Sistemas
Arquitectura de Computadoras
En una red jerárquica los nodos están organizados como un árbol. Es una organización común en las redes de computadoras corporativas donde las oficinas individuales están conectadas a una oficina central local, las que a su vez cuelgan de las oficinas regionales y esta finalmente de las oficinas en la central. Cada nodo (excepto la raíz) tiene un único antecesor y varios hijos. El costo básico de esta configuración es menor que el de la parcialmente conectada. Un padre y si hijo se comunican directamente. Los hermanos se comunican entre sí solo a través del padre. En forma similar los primos solo pueden comunicarse a través de sus abuelos. Si un nodo falla todos sus hijos quedan incomunicados con el resto de la red
En general, la falla de cualquier nodo puede particional la red en varios subárboles disjuntos. Aun cuando se han propuesto varias topologías basadas en la estructura de árbol, los árboles binarios completos han sido la variante más analizada. Se han empleado varias estrategias para reducir el diámetro de comunicación de estas topologías (2(n-1) para un árbol binario completo de n niveles y 2n -1 procesadores). Algunas soluciones incluyen agregar conexiones extra a la red para unir todos los nodos de un mismo nivel.
En una red estrella uno de los nodos está conectado a todos los demás. El costo básico de este sistema es lineal respecto del número de nodos.El costo de comunicación es también bajo, ya que un mensaje del proceso A al proceso B solamente requiere de dos transferencias (Desde A a C y de C a B).
32
Ingeniería de Sistemas
Arquitectura de Computadoras
Sin embargo esta velocidad puede no ser tal ya que el nodo central puede convertirse en un cuello de botella. Mientras haya pocos mensajes la velocidad se mantendrá alta. En algunos sistemas estrella el nodo central está totalmente dedicado al pasaje de mensajes. El nodo central falla la red queda totalmente particionada.
En una red anillo cada nodo está conectado a solo otros dos nodos. El anillo puede ser unidireccional o bidireccional. En una arquitectura unidireccional un nodo puede transmitir información hacia uno solo de sus vecinos. Todos los nodos entregan información hacia la misma dirección. Esta topología ha sido muy utilizada por IBM para sus redes denominadas "Token Ring". En una arquitectura bidireccional un nodo puede transmitir información hacia cualquiera de sus vecinos.
De forma típica, se utilizan paquetes de mensajes de tamaño fijo incluyendo un campo que indica el nodo destino. El costo básico de un anillo es nuevamente lineal respecto de la cantidad de nodos. Sin embargo el costo de comunicación puede ser bastante alto ya que un mensaje de un nodo a otro debe viajar alrededor del anillo hasta que llega a destino. En un anillo unidireccional deberá recorrer a lo sumo n-1 nodos, en tanto que en un bidireccional a lo sumo n/2. En una red bidireccional debe fallar dos conexiones para que la red se particiones. En un anillo unidireccional la falla de un solo nodo particionera la red.
33
Ingeniería de Sistemas
Arquitectura de Computadoras
LOS SISTEMAS DE MEMORIA CACHÉ Y EL MULTIPROCESO Los sistemas de memoria multinivel (cache) son un esfuerzo para evitar el número de peticiones realizadas por cada CPU al bus. Los caches son pequeñas y rápidas (y por tanto caras) memorias, que hacen de tampón (buffer) entre la CPU y la memoria externa, para mantener los datos y/o instrucciones. Se basan en el principio de la "localidad", lo que significa que, dada la fundamental naturaleza secuencial de los programas, los siguientes datos o instrucciones requeridas, estarán localizadas inmediatamente a continuación de las actuales. Los datos contenidos en la memoria cache se organizan en bloques denominados líneas. Las líneas son cargadas en el cache como copias exactas de los datos situados en la memoria externa. Para referenciar a los datos de la memoria cache, se emplean marcas (tags) que identifican a cada línea. Las marcas o tags emplean una porción de la dirección física de los datos, para compararla con la dirección física solicitada por la CPU. Cuando existe una coincidencia exacta de la dirección y de otros cualificadores (estado, privilegio, contexto, etc.), se dice que ha tenido lugar un acierto (hit) de cache; en caso contrario, tiene lugar un fallo (miss) del cache, y en ese caso, los datos han de ser recuperados desde la memoria. El empleo de memoria cache se ha popularizado, como medida para acelerar el tiempo de acceso a la memoria principal, incluso en los sistemas monoprocesador, evitando así, según se incrementa la velocidad de los propios procesadores, aumentar la velocidad de dicha memoria, y por tanto encarecer el sistema. La forma en que la memoria es actualizada por los caches locales puede tener un gran impacto en las prestaciones de un sistema multiprocesador. Básicamente hay dos métodos:
1. Escritura continua (write-through). Requiere que todas las escrituras realizadas en el cache actualicen asimismo los datos de la memoria principal. De esta forma, la memoria principal siempre tiene la última copia de los datos, y por tanto no hay nunca ninguna incoherencia con el cache. El inconveniente es que se producen frecuentes accesos a memoria, especialmente superfluos cuando el software está modificando las mismas secciones de datos repetidamente (por ejemplo ejecutando bucles).
34
Ingeniería de Sistemas
Arquitectura de Computadoras
2. Copia posterior (copy-back). Es un sistema mucho más eficiente, aunque también más complejo de implementar. En este caso, la CPU puede modificar la línea de cache sin necesidad de actualizar inmediatamente la memoria principal. Los datos solo son copiados a la memoria principal cuando la línea de cache va a ser reemplazada con una nueva. Ello no solo minimiza el tráfico del bus, de vital importancia para el resto de los procesadores, sino que también libera al procesador de la tarea de escribir en la memoria principal. Sin embargo, este sistema, en una arquitectura de bus compartido, implica un nuevo nivel de dificultad, denominado coherencia o consistencia (coherency o consistency); dado que cada cache puede tener una copia de los datos existentes en la memoria principal, el desafío es asegurar que los datos permanecen iguales entre todos los caches. Hay dos métodos para mantener cada línea de cache idéntica a las demás:
Que requiere que la CPU que modifica los datos compartidos actualice los otros caches, para lo cual escribe en el bus la dirección de los datos, y los datos mismos, de modo que todos los dispositivos interesados (otras CPU’s) los capturen. Esto asegura que cada línea de cache en el sistema es una copia exacta de las demás.
Impide a una CPU modificar los datos compartidos en su cache hasta que otros caches han invalidado sus copias. En cuanto otros caches invalidan sus líneas, el cache modificado tiene la única copia; de este modo, se garantiza que un solo cache escribe una línea compartida en un momento dado. Tiene la ventaja de conservar el ancho de banda del bus ya que los datos modificados no tienen que ser enviados a otros caches. Ambos sistemas requieren que los caches sean capaces de identificar peticiones en el bus que afecten a sus datos, lo que se realiza con una técnica conocida como "sondeo del bus" (bus snooping). Cada cache compara las direcciones de las peticiones en el bus compartido con los datos en su propio cache, usando las marcas (tags). Este sistema requiere un acceso concurrente a las marcas (tags) del cache por parte del bus del sistema y del bus del procesador. Sin dicho acceso concurrente, el procesador no podría acceder al cache durante las operaciones de sondeo del bus (que tienen que tener prioridad de acceso a las marcas, para poder mantener la coherencia del cache). El resultado son frecuentes atascos del procesador y consecuentemente, bajo rendimiento.
35
Ingeniería de Sistemas
Arquitectura de Computadoras
A su vez, hay varios protocolos asociados con el sondeo del bus para el movimiento de los datos y los mensajes entre los caches: - Intervención indirecta de los datos (indirect data intervención). Es el método más simple de intercambio de datos entre procesadores, aunque también el menos eficiente. La 1ra CPU hace una petición de datos, que es sondeada por la 2da; tiene lugar un acierto de sondeo (snoop hit) si dichos datos están en el cache de la 2da CPU, entonces esta obtiene el control del bus e indica a la 1ra que lo reintente más tarde. La 2da CPU escribe los datos de su cache a la memoria, y la 1ra CPU obtiene el control del bus de nuevo, reiniciando la petición. Los datos son ahora suministrados por la memoria. -
Intervención directa de los datos (direct data intervention). Los datos son suministrados directamente por la 2da CPU a la 1ra. Este mecanismo es aplicable fundamentalmente a los sistemas con sistemas de cache de copia posterior (copy-back). Aunque pueden evitar muchos ciclos comparados con la intervención indirecta, la memoria principal permanece inconsistente con el cache, y debe de ser actualizada cuando la linea de cache es vaciada.
-
Reflexión a memoria (memory reflection) con intervención directa. La memoria captura los datos que han sido depositados en el bus, mientras son enviados a la CPU solicitante. Si la línea de cache no ha sido modificada antes de que tenga lugar la última transacción de intervención de datos, no es necesario escribir a la memoria, con lo que se conserva el ancho de banda. Esta actualización del cache solicitante y la memoria puede tener lugar en un mismo y único ciclo de reloj.
36
Ingeniería de Sistemas
Arquitectura de Computadoras
37
Ingeniería de Sistemas
Arquitectura de Computadoras
CONCLUSIONES
No es un hecho meramente académico, sino puramente comercial y económico. La "era RISC" ha alcanzado a todos los fabricantes de semiconductores: AMD, Intel, MIPS, Motorola, ROSS; y todos ellos son productos usados por fabricantes de ordenadores y estaciones de trabajo: Apple, DEC, HP, IBM, SUN, etc. y sus correspondientes clónicos. El tiempo de diseño de estos productos se reduce sensiblemente, lo que disminuye su coste final, y por tanto, se incrementan sus expectativas, al poder llegar al mercado en un tiempo más adecuado, y con menos posibilidades de errores. Además, son globalmente más eficaces, de menores dimensiones y más bajo consumo, ofreciendo siempre claras ventajas técnicas frente a los más avanzados CISC. Actualmente, las estaciones de trabajo RISC multiprocesadoras de mayor éxito, se basan en diferentes versiones de la tecnología SPARC: superSPARC e HyperSPARC. Está claro que el futuro pertenece a los RISC y a los sistemas multiprocesador, a no ser que la física y la electrónica logren superar las barreras tecnológicas para incrementar muy por encima de las cotas actuales, las velocidades y prestaciones de una única CPU. También cabe esperar, y porque no, la pronta aparición de otras tecnologías que compitan con CISC y RISC.
Cada usuario debe decidirse a favor o en contra de determinada arquitectura de procesador en función de la aplicación concreta que quiera realizar. Esto vale tanto para la decisión por una determinada arquitectura CISC o RISC, como para determinar si RISC puede emplearse en forma rentable para una aplicación concreta. Nunca será decisiva únicamente la capacidad de procesamiento del microprocesador, y sí la capacidad real que puede alcanzar el sistema en su conjunto. Los costos, por su parte, también serán evaluados. Supongamos por ejemplo, que el precio de un procesador sea de $500.00 USD, éste será secundario para un usuario que diseña una estación de trabajo para venderla después a un precio de $100 000.00 USD. Su decisión se orientará exclusivamente por la potencialidad de este procesador. RISC ofrece soluciones atractivas donde se requiere una elevada capacidad de procesamiento y se presente una orientación hacia los lenguajes de alto nivel. En el campo industrial existe un gran número de aplicaciones que ni siquiera agotan las posibilidades de los controladores CISC de 8 bits actuales.
38
Ingeniería de Sistemas
Arquitectura de Computadoras
Si bien el campo de aplicaciones de las arquitecturas RISC de alta capacidad crece con fuerza, esto no equivale al fin de otras arquitecturas de procesadores y controladores acreditadas que también seguirán perfeccionándose, lo que si resulta dudoso es la creación de familias CISC completamente nuevas. Adoptando técnicas típicas de los procesadores RISC en las nuevas versiones de procesadores CISC, se intenta encontrar nuevas rutas para el incremento de la capacidad de las familias CISC ya establecidas. Entre tanto, los procesadores RISC han conquistado el sector de las estaciones de trabajo, dominado antes por los procesadores Motorola 68 000, y es muy probable que acosen la arquitectura Intel en el sector superior de las PC's. Las decisiones en el mercado las toman los usuarios, y aquí, el software o la aplicación concreta juegan un papel mucho más importante que las diferencias entre las estructuras que son inapreciables para el usuario final.
39
Ingeniería de Sistemas
Arquitectura de Computadoras
BIBLIOGRAFÍA 1. Tanembaum, Andrew S. (1992) "Organización de Computadoras. Un Enfoque Estructurado" Ed. Prentice Hall. 2. Rolf Jurgen B. "Del CISC al RISC: Aumento explosivo de la potencia en los microprocesadores" Revista Siemens Año 51 Enero/Marzo 1991. Siemens Aktiengesellschaft. Munich, RFA. 3. Hernández, Luis. "¿RISC O CISC?" PC/TIPS BYTE. Año 5 No. 50 Marzo de 1992. 4. Tanembaum, Andrew S. (1992) "Organización de Computadoras. Un Enfoque Estructurado" Ed. Prentice Hall. 5. Rolf Jurgen B. "Del CISC al RISC: Aumento explosivo de la potencia en los microprocesadores" Revista Siemens Año 51 Enero/Marzo 1991. Siemens Aktiengesellschaft. Munich, RFA. 6. Hernández, Luis. "¿RISC O CISC?" PC/TIPS BYTE. Año 5 No. 50 Marzo de 1992. 7. MATIAS David, "RISC vs CISC: Diseños Opuestos".
40