MISD

Taxonomía de Flynn Una instrucción Un dato Múltiples datos Múltiples instrucciones

SISD

MISD

SIMD

MIMD

En computación, MISD (del inglés Multiple Instruction, Single Data, en español: "múltiples instrucciones, un dato") es un tipo dearquitectura computacional (particularmente de computación paralela) donde muchas unidades funcionales realizan diferentes operaciones en los mismos datos. Las arquitecturas segmentadas pertenecen a este tipo, aunque en un extremo se podría llegar a decir que los datos son diferentes después de ser procesados por cada etapa en el pipeline, con lo cual no entraría en esta categoría. Las máquinas tolerantes a fallos ejecutan la misma instrucción redundantemente para detectar y corregir errores, utilizando task replication, son consideradas de este tipo. No existen muchos ejemplos de esta arquitecura dado que las técnicas más comunes de procesamiento de datos en paralelo suelen ser más apropiadas para MIMD y SIMD. Específicamente, facilitan el escalamiento y el uso de recursos computacionales mejor que MISD. Algunos argumentan que un array sistólico es un ejemplo de una estructura MISD. [editar]Referencias
↑ Quinn, Michael J. Parallel Programming in C with MPI and OpenMP.Boston: McGraw Hill, 2004.
1 2

1.

2.

↑ Ibaroudene, Djaffer. "Parallel Processing, EG6370G: Chapter 1, Motivation and History." St Mary's University, San Antonio, TX. Spring 2008.

Una instrucción. un procesador vectorial. donde se necesitan varios sistemas de respaldo en caso de que uno falle. También se han propuesto algunas arquitecturas teóricas que hacen uso de MISD. Múltiples instrucciones. múltiples datos (SIMD) Un computador que explota varios flujos de datos dentro de un único flujo de instrucciones para realizar operaciones que pueden ser paralelizadas de manera natural. múltiples datos (MIMD) Varios procesadores autónomos que ejecutan simultáneamente instrucciones diferentes sobre datos diferentes. Múltiples instrucciones. Los sistemas distribuidos suelen clasificarse como arquitecturas MIMD. un dato (SISD) Computador secuencial que no explota el paralelismo en las instrucciones ni en flujos de datos. un dato (MISD) Poco común debido al hecho de que la efectividad de los múltiples flujos de instrucciones suele precisar de múltiples flujos de datos. como por ejemplo en navegación aérea. Flynn en 1972. Por ejemplo.Taxonomía de Flynn Taxonomía de Flynn Una Múltiples instrucción instrucciones Un dato Múltiples datos SISD MISD SIMD MIMD La taxonomía de Flynn es una clasificación de arquitecturas de computadores propuesta por Michael J. Sin embargo. o uno distribuido. Ejemplos de arquitecturas SISD son las máquinas con uni-procesador o monoprocesador tradicionales como el PC o los antiguos mainframe. pero ninguna llegó a producirse en masa. . este tipo se usa en situaciones de paralelismo redundante. bien sea explotando un único espacio compartido de memoria.1 2 [editar]Clasificaciones 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: Una instrucción.

[editar]Diagrama de comparación de las clasificaciones Esas cuatro arquitecturas son mostradas visualmente a continuación en donde cada "PU" (processing unit) es una unidad de procesamiento: SISD MISD SIMD MIMD Clasificaciones adicionales También existe una extensión común a esta taxonomía que es: .

se ejecuta una instrucción detrás de otra. Con estas consideraciones. . También se le llama 'un proceso. Taxonomía de las arquitecturas 1 Introducción  Introducción En este trabajo se explican en detalle las dos clasificaciones de computadores más conocidas en la actualidad. La segunda clasificación es una clasificación moderna en la que sólo tienen en cuenta los sistemas con más de un procesador. Flynn la publicó por primera vez en 1966 y por segunda vez en 1970. múltiples datos (SPMD) . Esos demás nodos devuelven sus resultados directamente al administrador. Un ejemplo podría ser la consola de Sony PlayStation 3. es decir. que corre el programa y otorga los datos a todos los demás nodos que ejecutan un segundo programa. sólo se ejecuta una única instrucción. La primera clasificación. Single Data stream) Los sistemas de este tipo se caracterizan por tener un único flujo de instrucciones sobre un único flujo de datos. así como cuáles son las ventajas e inconvenientes que cada uno ostenta. Esta taxonomía se basa en el flujo que siguen los datos dentro de la máquina y de las instrucciones sobre esos datos. múltiples datos (MPMD) . Se define como flujo de instrucciones al conjunto de instrucciones secuenciales que son ejecutadas por un único procesador y como flujo de datos al flujo secuencial de datos requeridos por el flujo de instrucciones. Múltiples programas. El objetivo de este trabajo es presentar de una forma clara los tipos de sistemas que existen en la actualidad desde el punto de vista de distintos autores.múltiples procesadores autónomos que trabajan simultáneamente sobre al menos dos programas independientes.múltiples procesadores autónomos que trabajan simultáneamente sobre el mismo conjunto de instrucciones (aunque en puntos independientes) sobre datos diferentes. que tiene la arquitectura de procesador SPU/PPU. múltiples datos'.  Clasificación de Flynn Clasificación clásica de arquitectura de computadores que hace alusión a sistemas con uno o varios procesadores.Un programa. en cualquier momento. Flynn clasifica los sistemas en cuatro categorías:  SISD (Single Instruction stream. Normalmente este sistema elige a un nodo para ser el host o administrador. es la clasificación clásica de Flynn en dónde se tienen en cuenta sistemas con uno o varios procesadores. Este es el concepto de arquitectura serie de Von Neumann donde.

Ejemplos de este tipo de sistemas los encontramos en los computadores CRAY monoprocesador. IBM 390 VF. La CPU contiene un único procesador con instrucciones que procesa un único flujo de estas liberando cada instante una. Ejemplos de estos sistemas los tenemos en las máquinas vectoriales con hardware escalar y vectorial. El funcionamiento de este tipo de sistemas es el siguiente. Debido a que las unidades funcionales operan independientemente. HITACHE. ejecutando o ignorando una misma instrucción para todas las ALUs. todos los elementos realizan una misma instrucción pero sobre una gran cantidad de datos. IBM 9000 VF.N A(I) = B(I) + C(I) . Por este motivo existirá concurrencia de operación. Multiple Data stream) Estos sistemas tienen un único flujo de instrucciones que operan sobre múltiples flujos de datos. Las unidades de proceso operan sobre datos diferentes pero con la misma instrucción recibida. CYBER 205. es decir. La Unidad de Control manda una misma instrucción a todas las unidades de proceso (ALUs).  SIMD CON CPU PARTICIONADA En este tipo de sistemas. es posible liberar nuevas instrucciones antes de que finalice la ejecución de las instrucciones previas. El procesamiento es síncrono. esta clasificación es el origen de la máquina paralela.  SIMD CON MULTIPLES ALUS Estos sistemas trabajan en modo lock step.  SIMD (Single Instruction stream. Existe un único procesador que maneja el flujo de instrucciones del programa y que transfiere todas las instrucciones a las diferentes unidades aritmético/lógicas. FUJITSU. NEC SUPERCOMPUTERS. la ejecución de las instrucciones sigue siendo secuencial como en el caso anterior. Cada ALU opera sobre un segmento diferente de datos del programa.Un ejemplo de estos sistemas son las máquinas secuenciales convencionales. Existen dos alternativas distintas que aparecen después de realizarse esta clasificación:  Arquitectura Vectorial con segmentación: Una CPU única particionada en unidades funcionales independientes trabajando sobre flujos de datos concretos  Arquitectura Matricial (matriz de procesadores): Varias ALUs idénticas a las que el procesador de instrucciones asigna una única instrucción pero trabajando sobre diferentes partes del programa. ALLIANT FX/1 Y CONVEX C-1. Ejemplo de funcionamiento del sistema con el siguiente bucle: DO 2000 I=1. la CPU se diseña como un conjunto de unidades funcionales independientes que ejecutan simultáneamente varias operaciones aritmético/lógicas.

Se trabaja de forma segmentada. Existen dos tipos de sistemas teniendo en cuenta su acoplamiento. En arquitecturas con varias unidades de control (MISD Y MIMD). Los sistemas MISD se contemplan de dos maneras distintas:  Varias instrucciones operando simultáneamente sobre un único dato.  MIMD (Multiple Instruction stream. En el caso de que haya más ALUs que iteraciones.  MISD (Multiple Instruction stream. existirá un número de estas que no estén operativas durante la ejecución de las instrucciones del bucle. Este tipo de sistemas no ha tenido implementación hasta hace poco tiempo.  Varias instrucciones operando sobre un dato que se va convirtiendo en un resultado que será la entrada para la siguiente etapa.  Categorías de Ordenadores Paralelos Clasificación moderna que hace alusión única y exclusivamente a los sistemas que tienen más de un procesador (i. Estos sistemas empezaron a utilizarse a principios de los 80. Ejemplo de estos sistemas son las máquinas paralelas actuales. Multiple Data stream) Sistemas con un flujo de múltiples instrucciones que operan sobre múltiples datos.e máquinas paralelas). todas las unidades de proceso pueden trabajar de forma concurrente. existe otro nivel superior con una unidad de control que se encarga de controlar todas las unidades de control del sistema. el procesador ordenará la ejecución hasta que estén procesados todos los valores de I. También podemos encontrar aplicaciones de redes neuronales en máquinas masivamente paralelas. Cuando las unidades de proceso reciben datos de una memoria no compartida estos sistemas reciben el nombre de MULTIPLE SISD (MSISD). Son sistemas con memoria compartida que permiten ejecutar varios procesos simultáneamente (sistema multiprocesador).2000 CONTINUE El procesador asigna a cada ALU la operación de suma de B(I) con C(I) y siendo el almacenamiento del resultado en A(I) pero pasando a cada ALU un valor diferente de I. Los sistemas . Single Data stream) Sistemas con múltiples instrucciones que operan sobre un único flujo de datos. Los sistemas fuertemente acoplados son aquellos en los que los procesadores dependen unos de otros. En el caso de que haya menos ALUs que iteraciones del bucle. Una ALU inactiva o en OFF significa que:  La ALU recibe instrucciones pero las ignora  La ALU ejecuta cálculos pero no almacena ningún resultado. Ejemplos de estos tipos de sistemas son los arrays sistólicos o arrays de procesadores.

Dependiendo de la forma en que los procesadores comparten la memoria. Cada procesador tiene supropia caché privada y también se comparten los periféricos.  Sistema Simétrico Cuando todos los procesadores tienen el mismo tiempo de acceso a todos los componentes del sistema (incluidos los periféricos). dado el alto grado de compartición de los recursos (hardware o software) y el alto nivel de interacción entre procesadores. NUMA y COMA. Atendiendo a esta y a otras características.débilmente acoplados son aquellos en los que existe poca interacción entre los diferentes procesadores que forman el sistema. Tienen un único espacio de direcciones para todos los procesadores y los mecanismos de comunicación se basan en el paso de mensajes desde el punto de vista del programador. pudiendo acceder a un mismo módulo varios procesadores. . Existen varias categorías de sistemas UMA. la clasificación moderna divide a los sistemas en dos tipos: Sistemas multiprocesador (fuertemente acoplados) y sistemas multicomputador (débilmente acoplados). Los sistemas multiprocesadores son arquitecturas MIMD con memoria compartida. reciben el nombre de sistemas multiprocesador simétrico. El sistema de interconexión debe ser rápido y puede ser de uno de los siguientes tipos:    Bus común Red crossbar Red multietapa Este modelo es conveniente para aplicaciones de propósito general y de tiempo compartido por varios usuarios. Los procesadores tienen el mismo dominio (prioridad) sobre los periféricos y cada procesador tienen la misma capacidad para procesar. lo que hace que un procesador dependa de lo que hace otro. a los multiprocesadores también se les llama sistemas de memoria compartida. se clasifican en sistemas multiprocesador UMA. Los multiprocesadores son sistemas fuertemente acoplados (tightly-coupled).  UMA (Uniform Memory Access) Sistema multiprocesador con acceso uniforme a memoria.  Multiprocesadores Un multiprocesador puede verse como un computador paralelo compuesto por varios procesadores interconectados que comparten un mismo sistema de memoria. esto quiere decir que todos los procesadores tienen el mismo tiempo de acceso a todas las palabras de la memoria. La memoria física es uniformemente compartida por todos los procesadores. Dado que los multiprocesadores comparten diferentes módulos de memoria.

La ventaja de estos sistemas con respecto a los sistemas UMA. No hay jerarquía de memoria en cada módulo procesador. al igual que los sistemas SIMD. Las memorias distribuidas son memorias cachés. por tanto.  Multicomputadores Los sistemas multicomputadores se pueden ver como un computador paralelo en el cual cada procesador tiene su propia memoria local. Todas las cachés forman un mismo espacio global de direcciones. es el cluster jerárquico en el que se combinan las memorias locales y las globales obteniendo una cierta escalabilidad del sistema. Todas las memorias locales conforman la memoria global compartida y físicamente distribuida y accesible por todos los procesadores. es que el acceso a memoria local es mucho más rápido. Este tipo de sistemas no ha tenido mucha transcendencia. debido a que primero debe aceptarse dicho acceso por el procesador del que depende el módulo de memoria local. El acceso a las cachés remotas se realiza a través de los directorios distribuidos de las cachés. Estos clusters están conectados a la memoria global compartida. El acceso a memoria. en donde sólo los primeros pueden ejecutar aplicaciones y dónde en tiempo de acceso para diferentes procesadores no es el mismo. Dependiendo de la red de interconexión utilizada.  NUMA (Non Uniform Memory Access) Un sistema multiprocesador NUMA es un sistema de memoria compartida donde el tiempo de acceso varía según donde se encuentre localizado el acceso. El sistema en su totalidad es un sistema NUMA. por este motivo es un sistema muy restringido en cuanto a la capacidad de memoria global. Los procesadores esclavos (attached) ejecutan código usuario bajo la supervisión del maestro. Sistema Asimétrico Los sistemas multiprocesador asimétrico.  COMA (Cache Only Memory Access) Los sistemas COMA son un caso especial de los sistemas NUMA. por lo tanto cuando una aplicación es ejecutada en un procesador maestro dispondrá de una cierta prioridad.  Cluster Jerárquico Otro modelo NUMA que nace como la mezcla del modelo UMA explicado anteriormente y el modelo NUMA anterior. no es uniforme para diferentes procesadores. Los procesadores aparecen distribuidos en clusters (1 sistema UMA o un 1 sistema NUMA). son sistemas con procesadores maestros y procesadores esclavos. ya que el acceso a memoria es no uniforme por parte de los clusters. En estos sistemas la memoria se encuentra distribuida y no compartida como en los sistemas multiprocesador. se pueden utilizar jerarquías en los directorios para ayudar a la localización de copias de bloques de caché. Los computadores se . Existen memorias locales asociadas a cada procesador y estos pueden acceder a datos de su memoria local de una manera más rápida que a las memorias de otros procesadores.

estos sistemas son débilmente acoplados. La transferencia de unos procesadores a otros se realiza por tanto por múltiples transferencias entre procesadores conectados dependiendo del establecimiento de dicha red. El diagrama de bloques de un sistema multicomputador coincide con el visto para los sistemas UMA. 3 1 . la diferencia viene dada porque la red de interconexión no permite un acceso directo entre memorias.comunican a través de paso de mensajes. ya que los módulos funcionan de forma casi independiente unos de otros. ya que éstos sólo tienen acceso directo a su memoria local y no al las memorias del resto de procesadores. Dado que la memoria está distribuida entre los diferentes elementos de proceso. estos sistemas reciben el nombre de distribuidos. La transferencia de los datos se realiza a través de la red de interconexión que conecta un suconjunto de procesadores con otro subconjunto. sino que la comunicación se realiza por paso de mensajes. Por otra parte.

.

.

.

.

.

.

.

Esta clasificación es: Número de Flujos de Información Uno Múltiples Número de solo Flujos de Uno solo SISD SIMD Instrucciones. Esta taxonomía es ampliamente conocida y aceptada. I=instruction. D=data. MIMD En 1972 Michael Flynn. Single Data) Se refiere a las computadoras convencionales de Von Neuman. SISD (Single Instruction. publicó un documento en donde escogió dos características de las computadoras y probó con las 4 combinaciones posibles. Son equipos con un solo procesador que trabaja sobre un solo dato a la vez. y las otras no. MISD. A estos equipos se les llama también computadoras secuenciales. Múltiples MISD MIMD [notación]¬ S=single. . En la categoría SISD están la gran mayoría de las computadoras existentes.SISD. Dos estaban en la mente de todos. M=multiple. Ejemplo: PC’s. profesor de ingeniería eléctrica en la de la Universidad de Stanford. SIMD. Describe las computadoras por como los flujos de instrucciones interactúan con los flujos de información.

Otras personas consideran que un grupo de equipos que trabaja sobre un solo dato se puede considerar como un sistema de tipo MISD.SIMD (Single Instruction. es decir. Existe controversia acerca de si realmente existen equipos de tipo MISD. Un ejemplo sería un conjunto de equipos que trata de factorizar un número primo muy grande utilizando diferentes algoritmos. Ejemplos: o Thinking Machines CM-2 . La unidad de control se encarga de enviar la misma instrucción a todas las unidades funcionales. Multiple Data) Arreglo de procesadores. Estos equipos son de propósito específico. como por ejemplo el procesamiento de imágenes. Son utilizadas en redes neuronales. Cada unidad funcional trabaja sobre datos diferentes. Cada procesador sigue el mismo conjunto de instrucciones. Las computadoras SIMD tienen una sola unidad de control y múltiples unidades funcionales. Típicamente tienen miles procesadores simples. Hay quienes argumentan que estos equipos no existen. diferentes elementos de información son asignados a cada procesador. Utilizan memoria distribuida. son apropiados para ciertas aplicaciones particulares.

Cada procesador MIMD corre casi independientemente de los otros. Ejemplos: . Pueden tener memoria distribuida o compartida. equipos de memoria distribuida y redes de computadores. Diferentes elementos de información se asignan a diferentes procesadores. Los equipos MIMD son de propósito general. En la categoría MIMD están los equipos con varios procesadores completos. Esta categoría incluye varios subgrupos: Equipos de memoria compartida. Las computadoras MIMD pueden ser utilizadas en aplicaciones con información en paralelo o con tareas en paralelo.o MassPar computers o Procesador MMX MIMD (Multiple Instruction. Multiple Data) Múltiples computadoras y multiprocesadores. Se puede decir que MIMD es un super conjunto de SIMD. Los procesadores pueden ejecutar la misma o instrucción o diferentes instrucciones. Cada procesador tiene su propia unidad de control y su propia unidad funcional. Las piezas de código distribuidas entre los procesadores.

o todo compartido (shared everything). En cada una de estas pipelines. multiples procesadores comparten la memoria RAM y el bus del sistema. Tightly coupled El Multiprocesamiento simétrico (symmetric multiprocessing / SMP) tiene un diseño simple pero aún así efectivo. Este diseño es también conocido como estrechamente acoplado (tightly coupled). Pipeline Una pipeline es una serie de módulos que son capaces de ejecutar fases de instrucciones. Single Data) No son usadas. Al cabo de un momento. se anula el pipeline erróneo y el otro continúa como si nada. se lanzan cada uno de los dos flujos resultados de efectuar o no el salto.o SGI/Cray Power Challenge Array o SGI/Cray Origin-2000 o HP/Convex SPP-2000 MISD (Multiple Instruction. y no son significativas. cuando ya se sabe el resultado. duplicando (otra vez en teoría) el rendimiento. si un procesador tiene dos pipelines puede ejecutar dos instrucciones en una sola fase en un momento dado. . En SMP.

y pocas veces existen apariciones de memoria desigual.El multiprocesamiento simétrico (SMP) es una arquitectura computacional paralela en la cual los procesadores múltiples hacen funcionar una sola copia del sistema operativo y comparten la memoria con otros recursos de una computadora.D E F I N I C I O N. que descansa en uno solo al final de un funcionamiento continuo desde una lengüeta giratoria de Arquitectura de Memoria Inmediata Coherente no Uniforme (ccNUMA) hacia unos sistemas de procesamiento paralelo menos ajustados y masivamente conectados que se dirigen a sistemas distribuidos tales como Beowulfs. los cuales son grupos de acomodamiento de PCs off-the-shelf los cuales están interconectados con una tecnología como Ethernet y que corren programas escritos para procesamientos paralelos. Irónicamente tanto la fuerza (velocidad) y la debilidad (carecen de escalabilidad) del multiprocesamiento simétrico llegan de la característica más relevante: memoria compartida. permitiendo a los sistemas de multiprocesamiento simétrico . En más de un lado. entradas y salidas e interrupciones externas. Todos los procesadores tienen el mismo acceso a la memoria.. El multiprocesamiento simétrico. no hay necesidad de pasar mensajes. es un tipo de computación que utiliza más de un solo procesador.

Note que es poco frecuente que en el cualificador haya recursos que no sean compartidos. Esto es. En la mayoría de los sistemas de multiprocesamiento. El problema es resuelto en el hardware. el cual es una razón que los sistemas de multiprocesamiento simétrico (SMP) puestos directamente no es proporcionalmente más grandes que los sistemas de procesador único. cada procesador tiene su propia memoria inmediata Este es un estática RAM más cara que es requerida porque el principal acceso RAM dinámico es demasiado lento para mantenerse con la velocidad de los procesadores.comunicarse y sincronizarse más rápidamente que otros sistemas de procesamiento paralelo. más que desde la memoria principal y el valor en la memoria inmediata original es invalidado. Esto. todavía se genera más gastos generales que en un sistema de procesador único. aún cuando. conlleva a un problema de coherencia inmediata cuando un procesador de multiprocesamiento simétrico (SMP) necesita para tener acceso a una dirección que puede estar almacenado en otra memoria inmediata del procesador. Aunque esta solución es rápida. El direccionamiento deseado viene desde otra memoria inmediata del procesador. la postura directa de dos procesadores es menos que dos veces la puesta directa de un procesador .

el multiprocesamiento simétrico (SMP) todavía golpea los gastos generales requeridos por otras arquitecturas paralelas. Para un número limitado de procesadores. Los sistemas de multiprocesamiento simétrico High-end y los sistemas de multiprocesamiento simétrico como los ccNUMA son más escalables. La memoria compartida también tiene un impacto en la codificación.único y la puesta de cuatro procesadores es menos de dos veces que la de dos procesadores. Existe un limite de cómo varios procesadores de multiprocesamiento simétrico (SMP) pueden compartir el sistema operativo y los recursos de una computadora antes que la memoria y que la contienda del conductor imponga una ley de retornos decrecientes: Los límites superiores de sistemas de multiprocesamiento simétrico (SMP) para computadoras de mesa de uso normal que parecen ser cerca de ocho procesadores. las cuales el procesador resiste para tener acceso y transcribe los valores de datos que sobrescriben el trabajo de otros procesadores. Esencialmente. los sistemas ccNUMA son sistemas de multiprocesamiento . Mientras que no haya la necesidad de pasar datos entre procesadores. haciendo que se requiera un alto grado de cooperación para las aplicaciones front-runner. es necesario evitar condiciones contrarias.

puede que sea lo perfecto.0 hacia delante. Windows 95 ó . No tiene soporte para MS-DOS. Para aplicaciones que no están conectadas estrechamente y caen en forma natural dentro de los dominios. uno de los nodos restantes es probable que tenga acceso a algo que causará una interrupción. En definitiva. Sistema Operativo 9 de Mac. Es probable que los sistemas y las variables del usuario sean dejados en un estado sin resolver. Sin embargo los sistemas de multiprocesamiento simétrico (SMP) no resisten los defectos. Si la operación de un procesador disminuye la coherencia de la memoria inmediata no está garantizada por mucho tiempo para el sistema operativo y la aplicación para el usuario. Windows NT y Windows 2000 . una tarjeta madre y procesadores debe estar configurada para funcionar los multiprocesamientos simétricos. con 128 procesadores. con alguna memoria menos local que la de un multiprocesamiento simétrico puro. Sistema Operativo 2 Servidor Warp .simétrico SMP que son rotos dentro de los dominios de la memoria. Una combinación de un sistema operativo. el multiprocesamiento simétrico es soportado por las diversas variedades de Unix. Los sistemas ccNUMA Higher-end han sido hechos para escalar tanto como 64 nodos. Linux2. En cuanto a software. Puede ser que haya apuntadores con valores que no tengan significado.

Lightly coupled ( Procesamiento masivamente paralelo “MPP”) Los sistemas MPP no comparten recursos. y la empresa Advanced Micro Devices Inc. el multiprocesamiento simétrico puede ser implementado en arquitecturas Ultra SPARC. Las aplicaciones enlazadas pueden tomar ventaja de los multiprocesamiento simétricos que se incluyen en BackOffice Suites. En vez de esto. ellos se prestan soporte con el estándar sin patente OpenPIC para los procesadores Cyrix 6x86 de la empresa Via Technologies y los procesadores k6 de la empresa AMD. Porque Intel es propietario de los estándares del Controlador de Interrupción Programables (APIC) éstos pueden ser utilizados para los multiprocesamiento simétricos (SMP). Sybase Inc. la cual esta ubicada en Sunnyvale. y también por todo los circuitos integrados Intel. SPARCserver y PowerPC. en cambio otros distribuidores de unidades centrales de procesamiento (CPU) que no pueden usarlo incluyen a la empresa Via Technologies la cual está ubicada en Taipei Taiwán. e Informix Corp.. Del lado del hardware.Windows 98. Lotus Notes y los administradores de bases de datos SQL de Oracle. éstos están constituidos por un conjunto de nodos interconectados en modo "loosely coupled" . incluyendo desde los procesadores 486s hacia arriba. de Microsoft Corp. California.

sin igual en el mercado. en la práctica. La máquina OPUS (Open Parallel Unisys System) de Unisys. De esta manera el número de nodos interconectados es en teoría ilimitado. Los nodos trabajan conjuntamente para resolver queries complejos usuales de los DatawareHousings o de los contextos DSS. Puesto que cada nodo es "autónomo". en este esquema.(interconexión débil). Un sistema así dimensionado tiene capacidad para soportar miles de usuarios y Terabytes de almacenamiento magnético. El sistema puede ser afinado según las necesidades de la Empresa. el número de mensajes es muy limitado (lo contrario de los SMP) y por ende los buses de interconexión no constituyen. se habla de centenas de nodos (de procesadores). cuellos de botella. Su arquitectura permite incrementar el número de procesadores configurando así máquinas a la medida del problema que se desea resolver. Esta nueva modalidad de multiprocesamiento es la piedra angular de los sistemas de ayuda a la decisión. Los diferentes nodos se interconectan mediante un mecanismo de intercambio de mensajes. Sobre cada nodo se ejecuta un micro-sistema operacional o micro-Kernel. es un claro ejemplo de este nuevo tipo de computación paralela. Todos los nodos son de propósito general. entradas/salidas de disco y red (Figura 3). como suele ocurrir en los sistemas SMP. sin que por ello se tengan cuellos de botella entre memoria y procesador o entre procesador y dispositivos de I/O. memoria. algunos nodos puede ser . por ejemplo. Cada nodo posee la potencia computacional de un computador completo: procesador.

de forma que la longitud del vector v que acabamos de presentar es n. v2. la suma de vectores se puede realizar utilizando el siguiente código: DO I=1. N S (I) = X(I) + Y (I) . En FORTRAN. Un vector v.dedicados a operaciones de bases de datos. v3.. x2+ y2. Programación vectorial Para mostrar los conceptos que se encuentran detrás de un procesador vectorial. . . declararíamos el vector v mediante la expresión: DIMENSION V (N) En donde N es una variable entera que almacena el valor de la longitud del vector. . mientras que otros son asignados a otras tareas específicas. vamos a presentar en primer lugar una breve muestra de cómo programar operaciones vectoriales sobre códigos FORTRAN. Cuando queremos representar un vector en un programa. Dos vectores se pueden sumar simplemente sumando cada una de sus componentes.. vn)T La longitud del vector se define como el número de elementos en el vector. es una lista de elementos de la forma: v = (v1. xn+yn) En FORTRAN. se declara el vector como una matriz de una única dimensión.. . es decir: s = x + y = (x1+ y1..

Los pasos para realizar la operación s = x + y son: 1. 3. en la que los distintos pasos de la fase de montaje de un automóvil. por ejemplo. Se normaliza el resultado de la suma. Elementos de la arquitectura vectorial Una computadora vectorial contiene un conjunto de unidades aritméticas especiales denominadas pipelines. El punto decimal del número con menor magnitud se desplaza de forma que los exponentes de los dos números coincidan. En muchos aspectos. 4. e Y han sido declarados como matrices de dimensión N. los pasos o etapas necesarias para realizar una suma en punto flotante en una máquina con hardware que emplee aritmética IEEE. X. . se realizan en distintas etapas de la cadena. Se suman los dos números.ENDDO Donde s es el vector en el que se almacena la suma final. por ejemplo. y S. Consideremos. una pipeline es similar a una cadena de montaje de una fábrica de coches. 2. Estas pipelines superponen la ejecución de las diferentes partes de una operación aritmética sobre los elementos del vector. produciendo una ejecución más eficiente de la operación aritmética que se está realizando. Se comparan los exponentes de los dos números en punto flotante que se quieren sumar para encontrar cuál es el número de menor magnitud.

5x. los registros vectoriales del Cray Y-MP contienen 64 elementos. Esto permite que los elementos de un vector puedan realizar operaciones con elementos escalares. Registros vectoriales Algunas computadoras vectoriales. de la misma forma que cada elemento de un vector se introduce en cada paso en la pipeline vectorial. Sin embargo. como un overflow. En este caso. Por ejemplo.5 se almacena en un registro escalar y se introduce en la pipeline de .. los registros vectoriales contienen en su interior muchos elementos de un vector al mismo tiempo. el valor 2. estos registros se configuran de tal forma que pueden ser utilizados por una pipeline vectorial. conteniendo un único valor. Un registro de propósito general o un registro de punto flotante contiene un único valor.5. Por ejemplo. Sin embargo. para calcular el resultado de la operación y = 2. como el Cray Y-MP. Los contenidos de estos registros pueden ser enviados a (o recibidos por) una pipeline vectorial a razón de un elemento por paso temporal. 6. Registros escalares Los registros escalares se comportan de la misma forma que los registros de punto flotante. mientras que los del Cray C90 contienen 128 elementos. el valor del registro se lee una vez cada t unidades de tiempo y se introduce en el pipeline. contienen registros vectoriales. Se realizan los chequeos necesarios para comprobar si se ha producido algún tipo de excepción en punto flotante durante la suma. Se realiza el redondeo.

x6.x13 . Una operación de dispersión reformatea el vector resultante para que los elementos se encuentren espaciados correctamente.. si se quieren extraer los elementos: x1..x5. x4(n-1)+1 del vector (x1. los elementos del vector que se van a procesar se cargan desde la memoria . x2. La mayoría de los procesadores vectoriales están equipados para poder recoger los elementos necesarios de un vector (una operación de recogida) y colocarlos juntos en un vector o en un registro vectorial.. se dice entonces que el desplazamiento es igual a 4. Operaciones de dispersión y agrupamiento Algunas veces sólo son necesarios algunos de los elementos de un vector para realizar un cálculo.xn) para realizar algún tipo de operación vectorial. Procesadores vectoriales de registro vectorial Si un procesador vectorial posee registros vectoriales. x4...x9. x5. Las operaciones de dispersión y recogida también se pueden utilizar con datos que no se encuentran regularmente espaciados.. x3..multiplicación cada t unidades de tiempo para ser multiplicado por cada uno de los elementos de x y así obtener el resultado en el vector y. el espaciado entre los elementos que se van a recoger se denomina desplazamiento o stride. Si los elementos que se utilizan presentan un patrón de espaciado regular.. Por ejemplo.

Procesadores vectoriales memoria a memoria Otro tipo de procesadores vectoriales permite que las operaciones realizadas con vectores se alimenten directamente de datos procedentes de la memoria hasta los pipelines vectoriales y que los resultados se escriban directamente en la memoria.directamente en el registro vectorial utilizando una operación de carga vectorial. es decir. Esto permite que se pueda utilizar en otra operación sin necesidad de volver a leer el vector. El vector que se obtiene a partir de una operación vectorial se introduce en un registro vectorial antes de que se pueda almacenar de nuevo en la memoria mediante una operación de almacenamiento vectorial. En este tipo de computadoras. a estas computadoras se les conoce como procesadores vectoriales de registro vectorial. Un ejemplo de . Por este motivo. La figura 3 muestra la arquitectura de registros y pipelines de una computadora vectorial de registro vectorial. se requiere más tiempo para conseguir que la operación vectorial comience a realizarse. y también permite que el almacenamiento se pueda solapar con otro tipo de operaciones. Dado que los elementos del vector necesitan venir de la memoria en lugar de proceder de un registro. Esto es debido en parte al coste del acceso a la memoria. sólo se realizan operaciones vectoriales sobre vectores que ya se encuentran almacenados en los registros vectoriales. El número de etapas de cada pipeline se muestra entre paréntesis dentro de cada pipeline. todas las operaciones aritméticas ó lógicas vectoriales son operaciones registro a registro. Este tipo de procesadores se conocen con el nombre de procesadores vectoriales memoria a memoria.

los procesadores vectoriales de registro vectorial suelen ser más eficientes que los procesadores vectoriales memoria a memoria. las memorias de los procesadores vectoriales se suelen dividir en bancos de memoria. Como sucede con muchas otras características de arquitectura de computadoras. la palabra 0 se almacena en el banco 0.. Sin embargo.. Los bancos de memoria entrelazados asocian de forma sucesiva las direcciones de memoria con bancos sucesivos de forma cíclica. los procesadores vectoriales memoria a memoria pueden llegar a ser más eficientes si la longitud de los vectores es lo suficientemente grande.. la palabra n-1 se almacena en el banco n-1.. Debido a la capacidad de superponer el acceso a la memoria y la posible reutilización de los vectores ya utilizados. De esta forma. Sin embargo.. en donde n es el número de bancos de memoria. 2. n es normalmente una potencia de 2: n= 2k.procesador vectorial memoria a memoria era el CDC Cyber 205. De hecho.. donde k = 1. etc. la palabra n+1 en el banco 1. 3 ó 4. esta diferencia en el rendimiento entre los dos tipos de arquitecturas tiende a desaparecer. .. Bancos de memoria entrelazados Para permitir un acceso más rápido a los elementos vectoriales que se encuentran almacenados en la memoria. a medida que la longitud de los vectores utilizados para un cálculo se incrementa.. . la experiencia ha demostrado que la longitud de los vectores suele ser mucho más corta de la necesaria para que esta situación llegue a producirse. la palabra 1 se almacena en el banco 1. la palabra n en el banco 0.

de forma que un elemento vectorial es leído en cada banco por cada ciclo de reloj. Cuando los elementos de un vector que se almacena en una memoria entrelazada se trasladan al registro vectorial. Adecuado para la resolución de problemas no estructurados: reconocimiento de voz.Un acceso a memoria (carga o almacenamiento) de un valor de datos en un banco necesita varios ciclos de reloj para llegar a completarse. mientras que se puede acceder a varios bancos de memoria de forma simultánea. Cada banco de memoria permite sólo que se lea o almacene un valor de los datos por cada acceso a memoria. Clustering Clustering es el proceso de agrupar datos en clases o clusters de tal forma que los objetos de un cluster tengan una similaridad . entonces n elementos de un vector pueden ser leídos con el mismo coste del que sería necesario para un único acceso a memoria. Permiten resolver problemas de forma adaptativa y no algorítmica. las lecturas se reparten entre los bancos de memoria. Si un acceso a memoria precisa de n ciclos de reloj. También comienzan a estar disponibles lenguajes de alto nivel para la reconfiguración y redefinición de las redes neuronales. Proceso masivo en paralelo ¬(Neurocomputación ) Proceso masivo en paralelo mediante redes neuronales artificiales. de patrones. etc. corrección de errores. Este procedimientos es n veces más rápido que el necesario para realizar el mismo número de accesos a memoria sobre un único banco. Comienzan a aparecer neurocomputadores con coprocesadores asociados a ordenadores personales y estaciones de trabajo.

-Capacidad de añadir restricciones. -Independiendentes del orden de los datos. ordinales. -Clusters de formas arbitrarias: lo basados en distancias numéricas tienden a encontrar cluster esféricos. probabilísticos. jerárquicos. -Manejo de ruido: muchos son sensibles a datos erroneos. nominales. etc. etc. Los grupos pueden ser exclusivos.alta entre ellos. -Poder funcionar eficientemente con alta dimensionalidad. clasificar documentos. binarios. como el número de clusters. La medida de similaridad está basada en los atributos que describen a los objetos. -Requerimientos mínimos para especificar parámetros. y baja (sean muy diferentes) con objetos de otros clusters. Clustering puede ser aplicado. -Capacidad de manejar diferentes tipos de atributos: numéricos (lo más común). para caracterizar clientes. por ejemplo. Retos: -Escalabilidad: normalmente corren con pocos datos. formar taxonomías. . con traslapes.

Collision Detection es una protección contra mensajes chocando en el transito. Xerox Corporation creó el experimental Ethernet. y en 1975 introdujo el primer producto Ethernet. Ethernet Arquitectura Ethernet A finales de 1960. Este temprano diseño de red fue la fundación de lo que hoy es Ethernet. Carrier-Sense significa que la computadora escucha el cable de la red y espera hasta un periodo de silencio para poder mandar su mensaje. Multiple Access se refiere a que múltiples computadoras pueden estar conectadas en el mismo cable de red. . La pieza principal en el diseño de la red fue llamado Carrier-Sense Multiple Access with Collision Detection (CSMA/CD). la universidad de hawai desarrolló una red de área amplia(WAN. La versión original de este producto de red fue diseñado como un sistema de 2.94mbps(Megabits por segundos) conectando hasta 100 computadoras en un cable de un kilometro. -Para datos numéricos. En 1972. La universidad necesitaba conectar varias computadora que estaban esparcidas a través de su campus. usualmente se pasa primero por un proceso de estandarización. -La medida de similaridad se define usualmente por proximidad en un espacio multidimensional.-Que los clusters interpretables y utilizables. Red que se extiende a través de un área geográfica mayor a una LAN).

Evidentemente que en una misma red Ethernet al haber muchas computadoras tratando de enviar datos al mismo tiempo y/o al haber una transferencia masiva de datos se crea un gran porcentaje de colisiones y utilización. pero el problema reside en que dos o mas computadoras al escuchar que no se esta usando el cable pueden mandar el exacto mismo momento su información (Multiple Access). Además. la .3. es importante que sea al azar ya que si ambas computadoras tuvieran el mismo intervalo fijo se produciría un ciclo vicioso de colisiones y reenvíos (Collision Detection). Si se pasa del 1% de colisiones y/o 15% de utilización de cable ya se dice que la red está saturada. Intel y Digital crearon un standard para Ethernet de 10mbps. Entonces las computadoras detectan la colisión y deciden reenviar su información a un intervalo al azar. Este diseño fue la base de la especificación IEEE 802. Esto se oye muy sencillo.3. El CSMA/CD funciona de la siguiente manera: cuando una computadora desea mandar información primero escucha el cable de la red para revisar que no se este usando en ese precioso momento (Carrier-Sense).El Ethernet de Xerox fue tan existoso que Xerox. El producto Ethernet se apega en la mayoria de las partes del standard 802. Asi por ejemplo al detectar la colisión una computadora se espera tres milisegundos y la otra cinco milisegundos. siendo obvio que una computadora reenviara en primer lugar y la otra esperará a que el cable este de nuevo sin tránsito. las señales de este tipo de red tienden a degradarse con la distancia debido a la resistencia. y como solamente puede haber uno y sólo un mensaje en tránsito en el cable se produce una colisión.

Cuanto más se aumenta la velocidad de transmisión de los datos. donde un mismo cable recorre todas y cada una de las computadoras. Thicknet. la velocidad de transmisión y otros detalles para trabajar y proporcionar un servicio relativamente libre de errores en la mayoría de los entornos. las luces fluorecentes y otros dispositivos eléctricos. pudiendo llegar el cableado hasta 185 metros. El cableado es grueso y es utilizado principalmente para largas oficinas o hasta todas las computadoras de un edificio. Se pueden conectar hasta 100 . Se utiliza cable coaxial RG-58 el cual es bastante barato por lo que a esta red también se le conoce como CheapNet. Por esta razón las normas de Ethernet especifican los tipos de cables. Inclusive la señal todavia se puede distorsionar por las interferencias eléctricas exteriores generadas por los motores. Del cable principal (backbone) salen cables usualmente Par Trenzado que se conectan a directamente a cada una de las computadoras. los protectores y las distancias del mismo. Thicknet ó 10Base5 transmite datos a 10mbps por Banda Base en un cableado que puede alcanzar 500 metros. Utiliza la topologia local bus. Thinnet ó 10Base2 puede transmitir datos a 10mbps por Banda Base(señales digitales). Un mismo segmento de cable puede soportar hasta 30 computadoras. Las redes Ethernet pueden utilizar diferentes tipos de cableado. Los tres cableados más comunes son Thinnet. cada uno con sus beneficios y problemas. Más susceptible es la señal a degradarse. y Twisted Pair (Par trenzado).capacidad u otros factores. Es el más utilizado y recomendado para redes pequeñas.

Un nodo es un dispositivo activo conectado a la red. normalmente. Un nodo también puede ser dispositivo o equipo de la red como un concentrador. Una topología de bus consiste en que los nodos se unen en serie con cada nodo conectado a un cable largo o bus. como una computadora o una impresora. Estas dos topologías definen cómo se conectan entre sí los "nodos". conmutador o un router. que el segmento entero pase a ser inoperable hasta que la rotura sea reparada. El Hub queda en el centro de la estrella y funciona como "repetidor". Twisted Pair ó 10BaseT transmite datos a 10mbps por Banda Base y utiliza un Hub (concentrador)desde el cual con cable Par Trenzado se conecta cada una de las computadoras quedando en forma similar a estrella. Una rotura en cualquier parte del cable causará. Muchos nodos pueden conectarse en el bus y pueden empezar la comunicación con el resto de los nodos en ese segmento del cable. Topologías Se diseñan redes Ethernet típicamente en dos configuraciones generales o topologías: "bus" y "estrella".computadoras con este cableado en un mismo segmento. El cable desde el Hub hasta la computadora no debe de medir más de 100 metros. .