Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Arquitectura paralela




Enviado por vperalesf



    1. Procesamiento
      Paralelo
    2. Arquitectura
      Paralela
    3. Línea paralela
      aritmética
    4. Línea paralela de
      instrucciones
    5. Arquitectura paralela
      RISC

    1. PROCESAMIENTO PARALELO

    El procesamiento paralelo es un término que se
    usa para denotar un grupo de
    técnicas significativas que se usan para
    proporcionar tareas simultáneas de procesamiento de
    datos con el fin de aumentar la velocidad
    computacional de un sistema de
    computadoras.
    En lugar de procesar cada instrucción en forma secuencial
    como es una computadora
    convencional, un sistema de procesamiento paralelo puede ejecutar
    procesamiento concurrente de datos para
    conseguir un menor tiempo de
    ejecución. Por ejemplo, cuando se ejecuta una
    instrucción en la ALU, puede leerse la siguiente
    instrucción de la memoria. El
    sistema puede tener 2 o mas ALUS y ser capaz de ejecutar dos o
    mas instrucciones al mismo tiempo. Además, el sistema
    puede tener dos o más procesadores
    operando en forma concurrente. EL propósito del
    procesamiento paralelo es acelerar las posibilidades de
    procesamiento de la computadora
    y aumentar su eficiencia, esto
    es, la capacidad de procesamiento que puede lograrse durante un
    cierto intervalo de tiempo. La cantidades de circuitería
    aumenta con el procesamiento paralelo y, con el, también
    el costo del
    sistema. Sin embargo, los descubrimientos tecnológicos han
    reducido el costo de la circuetería a un punto en donde
    las técnicas de procesamiento paralelo son
    económicamente factibles.

    El procesamiento paralelo puede
    considerarse de diversos niveles de complejidad. En el nivel mas
    bajo, distinguimos entre operaciones
    seriales y paralelas mediante el tipo de registros que
    utilizan. Los registros de corrimiento operan en forma serial un
    bit a la vez, mientras que los registros con carga paralela
    operan con todos los bits de la palabra en forma
    simultánea.

    Puede obtenerse procesamiento paralelo a un nivel
    más alto de complejidad al tener múltiples unidades
    funcionales que ejecuten operaciones idénticas o
    diferentes, de manera simultánea. El procesamiento
    paralelo se establece al distribuir los datos entre las unidades
    funcionales múltiples. Por ejemplo, las operaciones
    aritmétiocas, lógicas y de corrimiento pueden
    separarse en tres unidades y dividirse los operandos a cada una,
    bajo la supervisión de una unidad de control.

    Fig. 1 Procesador con
    unidades funcionales mútliples

    Para ver el gráfico seleccione la
    opción "Descargar" del menú superior

    La Fig. 9-1. muestra una
    manera posible de separar la unidad de ejecución en 8
    unidades funcionales que operan en paralelo. Los operando en los
    registros se aplican a una de las unidades, dependiendo de la
    operación especificada, mediante la instrucción
    asociada con los operandos.

    La operación ejecutada en cada unidad funcional
    se indica en cada bloque del diagrama. El
    sumador y el multiplicador de enteros ejecutan las operaciones
    aritméticas con números enteros. Las operaciones de
    punto flotante se separan en tres circuitos que
    operan en paralelo. Las operaciones lógicas de corrimiento
    y de incremento pueden ejecutarse en forma concurrente sobre
    diferentes datos. Todas las unidades son independientes unas de
    otra, por lo que puede correrse un número mientras otro se
    incrementa. Por lo general, una organización multifuncional esta asociada
    con una unidad de control compleja para coordinar todas las
    agilidades entre los diferentes componentes.

    Existen varias maneras de clasificar el procesamiento
    paralelo. Puede considerarse a partir de la
    organización interna de los procesadores, desde la
    estructura de
    interconexión entre los procesadores o desde del flujo d e
    información a través del sistema.
    Una clasificación presenta por M. J. Flynn considera la
    organización de un sistema de computadora mediante la
    cantidad de instrucciones y unidades de datos que se manipulan en
    forma simultánea. La operación normal de una
    computadora es recuperar instrucciones de la memoria y
    ejecutarlas en el procesador. La secuencia de instrucciones
    leídas de la memoria constituye un flujo de instrucciones.
    Las operaciones ejecutada sobre los datos en el procesador
    constituyen un flujo de datos.

    El procesamiento paralelo puede ocurrir en el flujo de
    instrucciones, en el flujo de datos o en ambos. La
    clasificación de Flynn divide a las computadoras en cuatro
    grupo principales de la manera siguiente:

    Flujo de instrucción único, Flujo de datos
    único (SISD)

    Flujo de instrucción único, Flujo de datos
    Múltiple (SIMD)

    Flujo de instrucción Múltiple, Flujo de
    datos único (MISD)

    Flujo de instrucción Múltiple, Flujo de
    datos Múltiple (MIMD)

    SISD. Representa la organización de una
    computadora única que contiene una unidad de control, una
    unidad de procesador y una unidad de memoria. Las instrucciones
    se ejecutan en forma secuencial y el sistema puede tener o no
    tener posibilidades de procesamiento paralelo. En este caso el
    procesamiento paralelo puede lograrse mediante unidades
    funcionales múltiples o mediante una arquitectura
    paralela.

    SIMD. Representa una organización que influye
    muchas unidades de procesamiento bajo la supervisión de
    una unidad de control común. Todos los procesadores
    reciben la misma instrucción de la unidad de control, pero
    operan sobre diferentes conjuntos de
    datos. La unidad de memoria compartida debe de contener
    módulos múltiples para que pueda comunicarse con
    todos los procesadores simultáneamente. LA estructura MISD
    es sola de intereses teórico porque no se ha construido
    ningún sistema práctico utilizando esta
    organización. La organización MIMD se refiere a un
    sistema de computadoras capaz de procesar múltiples
    programas al
    mismo tiempo la mayoría de los sistemas de
    multicomputadoras y multiprocesador pueden clasificarse en esta
    categoría.

    La clasificación de Flynn depende en la
    diferencia entre el desempeño de la unidad de control y el de
    la unidad de procesamiento de datos.

    Enfatiza las características de desempeño
    del sistema de computadoras más que sus interconexiones
    estructurales y operacionales. Un tipo de procesamiento paralelo
    que no entra en la clasificación flynn es la arquitectura
    paralela (pipe-line) Las únicas dos categorías
    utilizadas de esta clasificación son los procesadores de
    arreglo SIMD, analizados en la sección 9-7 y
    MIMD.

    El procesamiento por arquitectura paralela es una
    técnica de implantación en donde las suboperaciones
    aritméticas o las fases de un ciclo de instrucción
    de computadora se traslapan en su ejecución el
    procesamiento de vectores
    relaciona con los cálculos que implican vectores y
    matrices
    grandes. Los procesadores de arquitectura paralela ejecutan
    cálculos sobre arreglos de datos grandes.

    2 Arquitectura
    Paralela

    La arquitectura paralela o de líneas paralelas
    (pipe-line), es una técnica en la que se descomponen un
    proceso
    secuencial en suboperaciones, y cada subproceso se ejecuta en un
    segmento dedicado especial que opera en forma concurrente con los
    otros segmentos. Una línea puede considerarse como un
    conjunto de segmentos de procesamiento por el que fluye
    información binaria. Cada segmento ejecuta un
    procesamiento parcial, dictado por la manera en que se divide la
    tarea. El resultado obtenido del cálculo en
    cada segmento se transfiere al siguiente segmento en la
    línea. El resultado final se obtiene después de que
    los datos han recorrido todos los segmentos. El nombre
    "línea" implica un flujo reinformación similar a
    una línea de ensamblado industrial. Es
    característico de las líneas que varios
    cálculos puedan estar en proceso en distintos segmentos,
    al mismo tiempo. La simultaneidad de los cálculos es
    posible al asociar un registro con cada
    segmento en la línea. Los registros proporcionan
    aislamiento entre cada segmento para que cada uno pueda operar
    sobre datos distintos en forma simultánea.

    Tal vez la manera más simple de apreciar la
    arquitectura de líneas paralelas es imaginar que cada
    segmento consta de un registro de entrada seguido de un circuito
    combinatorio. El registro contiene los datos y el circuito
    combinatorio ejecuta las suboperación en el segmento
    particular. La salida del circuito combinacional es un segmento
    dado se aplica al registro de entrada del siguiente segmento. Se
    aplica un reloj a todos los registros después de que se ha
    transcurrido un tiempo suficiente para ejecutar toda la actividad
    del segmento. De esta manera la información fluye por la
    línea un paso a la vez.

    La organización de la línea se
    mostrará mediante un ejemplo:

    Supongamos que deseamos ejecutar las operaciones
    multiplicar y sumar combinadas con un flujo de
    números.

    Ai * B1 +
    Ci para
    i=1,2,3,…7

    Cada suboperación se va a implantar en un
    segmento dentro de la línea.

    Cada segmento tiene uno o dos registros y un circuito
    combinatorio, como se muestra en la figura 9.2. De R1 a R5 son
    registros que reciben nuestros datos con cada pulso de reloj. El
    multiplicador y el sumador son circuitos combinatorios. Las
    suboperaciones ejecutadas en cada segmento del conducto son las
    siguientes:

    Para ver el gráfico seleccione la
    opción "Descargar" del menú superior

    Los cinco registros se cargan con datos nuevos en cada
    pulso de reloj. El efecto de cada pulso de reloj se muestra en la
    tabla 9.-1 El primer pulso de reloj transfiere A1 y B1 dentro de
    R1 y R2. El segundo pulso de reloj transfiere el producto de R1
    y R2 dentro de R3 y C1 dentro de R4. El mismo pulso de reloj
    transfiere A2 y B2 dentro de R1 y R2. El tercer pulso de reloj
    opera sobre los tres segmentos en forma simultánea. Coloca
    a A3 y B3 dentro de R1 y R2, transfiere el producto R1 y R2
    dentro de R3, transfiere C2 dentro de R4 y coloca la suma de R3 y
    R4 dentro de R5. Se necesita tres pulsos de reloj para llenar la
    línea y recuperar la primera salida de R5. De ahí
    en adelante, cada ciclo de reloj produce una nueva salida y mueve
    los datos un paso adelante en la línea. Estos sucede en
    tanto fluyan nuevos datos dentro del sistema cuando ya no hay
    datos de entrada disponibles, el reloj debe continuar hasta que
    emerge la última salida de la línea

    GRAFICO 2 Ejemplo de Procesamiento
    Paralelo

    Para ver el gráfico seleccione la
    opción "Descargar" del menú superior

    Tabla 1 Contenido de registros en el ejemplo de
    arquitectura paralela

    Para ver el gráfico seleccione la
    opción "Descargar" del menú superior

      Consideraciones
    generales

    Cualquier operación que pueden descomponerse en
    una secuencia de suboperaciones de

    aproximadamente la misma complejidad, puede
    implementarse mediante un procesador de arquitectura paralela. La
    técnica es eficiente para aquellas aplicaciones que
    necesitan repetir la

    misma tarea muchas veces con diferentes conjuntos de
    datos. La estructura general de una línea de cuatros
    segmentados se ilustra en la figura 9.3. Los operandos recorren
    los cuatros segmentos de una secuencia fija. Cada segmento consta
    de cada circuito combinacional Si Que ejecuta una
    suboperación sobre el flujo de datos que fluyen por la
    línea. Los segmentos se separan mediante registros
    Ri Que contienen los resultados intermedios entre las
    etapas. La información fluye entre etapas adyacentes bajo
    el control de un reloj común aplicado a todos los
    registros en forma simultánea definimos una tarea como la
    operación total ejecutada cuando se recorren todos los
    segmentos en la línea.

    Figura 3

    Línea paralela de cuatro
    segmentos

    Para ver el gráfico seleccione la
    opción "Descargar" del menú superior

    El desempeño de la arquitectura paralela puede
    ilustrarse mediante un diagrama espacio- tiempo. Este es un
    diagrama que muestra la utilización del segmento como una
    función
    del tiempo. El diagrama espacio-tiempo de un conducto con cuatro
    segmentos se muestra en la figura 9.4 El eje horizontal muestra
    el tiempo en ciclos de reloj y el eje vertical proporciona el
    número de segmentos el diagrama muestra seis tareas de la
    T1 a la T6 ejecutada en cuatros segmentos. Al principio, ala
    tarea T1 se maneja mediante el segmento.

    1.Después del primer ciclo de reloj, el segmento
    2 esta ocupado con T1 mientras que el segmento 1 esta ocupado con
    la tarea T2. A continuar de esta manera la primera tarea T1 se
    complementa después del cuarto ciclo de reloj. De
    ahí en adelante la línea completa una tarea en cada
    ciclo de reloj.

    No importa cuantos segmentos existan en el sistema, una
    vez que la línea esta llena, solo se necesita un periodo
    de reloj para obtener una salida.

    Ahora consideremos el caso en donde se utiliza una
    línea de K de segmentos para ejecutar "n" tareas con un
    tiempo de ciclo de reloj Tp, la primera tarea T1 necesita un
    tiempo igual a KTp para completar su operación, porque
    existen K segmentos en la línea. Las n-1 tareas restantes
    emergen en la línea a una velocidad de una tarea por ciclo
    de reloj y se terminará después de un tiempo igual
    (n-1)tp por lo tanto, para completar n tareas una línea en
    K segmentos se necesita K+ (n-1) ciclos de reloj. Por ejemplo, el
    diagrama de la figura 9-4 muestra cuatros segmentos y seis
    tareas. El tiempo requerido para completar todas las operaciones
    es 4 + (6-1)=9 ciclos de reloj según se indica en el
    diagrama.

    1

    2

    3

    4

    5

    6

    7

    8

    9

     

    Ciclos de reloj

    Segmento 1

    T1

    T2

    T3

    T4

    T5

    T6

    2

    T1

    T2

    T3

    T4

    T5

    T6

    3

    T1

    T2

    T3

    T4

    T5

    T6

    4

    T1

    T2

    T3

    T4

    T5

    T6

    Figura 9.4 Diagrama espacio-tiempo para línea
    paralela

    A continuación consideremos una unidad de
    arquitectura no paralela que ejecuta la misma operación y
    requiere un tiempo igual a Tn para completar cada tarea. El
    tiempo total requerido para n tareas es NTn. La
    aceleración de un procesamiento por arquitectura paralela
    sobre un procesamiento no paralelo equivalente se define mediante
    la relación:

    Para ver el gráfico seleccione la
    opción "Descargar" del menú superior

    Conforme aumenta la cantidad de tareas, n se vuelve
    mucho más grande que K-1, y K+n-1 se aproxima al valor de n.
    Bajo esta condición, la aceleración se convierte
    en:

    Para ver el gráfico seleccione la
    opción "Descargar" del menú superior

    Si consideramos que el tiempo que se necesita para
    procesar una tarea es igual en una arquitectura paralela y en una
    arquitectura no paralela, tendremos Tn = KTp.

    Al incluir esta suposición, la aceleración
    se reduce a:

    Para ver el gráfico seleccione la
    opción "Descargar" del menú superior

    Esto muestra que la máxima aceleración
    teórica que puede proporcionar un conducto es K, en donde
    K es la cantidad de segmentos en el conducto

    Para duplicar la ventaja de velocidad teórica de
    un proceso paralelo mediante unidades funcionales
    múltiples, es necesario construir k segmentos iguale el
    desempeño de k copias de un circuito de arquitectura no
    paralela equivalente bajo condiciones de operación
    iguales. Esto se ilustra en la figura 9-5, en donde están
    conectados en paralelo cuatro circuitos idénticos. Cada
    circuito P ejecuta la misma tarea de un mismo circuito con
    arquitectura paralela equivalente. En lugar de operar con los
    datos de entrada en secuencia, como en una línea, los
    circuitos paralelos aceptan cuatro conjuntos de datos de entrada
    en forma simultánea y ejecutan cuatro tareas al mismo
    tiempo. En lo que se refiere a la velocidad de operación
    esta es equivalente a una línea con cuatro segmentos.
    Nótese que el circuito de cuatro unidades de la figura
    9-5, constituye una organización de instrucción
    única, datos múltiples en paralelo.

    Figura 5 Unidades funcionales múltiples en
    paralelo

    Existen varias razones por las que una
    arquitectura paralela no puede operar a su máxima
    velocidad teórica. Los diferentes segmentos pueden
    requerir tiempos diferentes para completar su
    suboperación. Debe elegirse el ciclo de reloj para iguale
    el tiempo de retraso del segmento con el máximo tiempo de
    propagación. Esto provoca que los otros segmentos
    desperdicien tiempo mientras esperan el siguiente ciclo de reloj.
    Además no siempre es correcto considerar que un circuito
    de arquitectura tiene el mismo retraso de tiempo que un circuito
    con arquitectura paralela equivalente. Muchos de los registros
    intermedios no se necesitarán en un circuito de una sola
    unidad el cual, por lo general, puede construirse por completo
    como un circuito combinatorio. No obstante, la técnica de
    arquitectura paralela proporciona una operación mas
    rápida que una secuencia puramente serial, aunque nunca se
    logra por completo la máxima velocidad
    teórica.

    Existen dos áreas de diseño
    de computadoras en las que es aplicable la organización
    paralela. Una línea aritmética divide una
    operación aritmética en suboperaciones que se
    ejecutan en los segmentos de la línea. Una línea de
    instrucciones opera sobre un flujo de instrucciones al sobreponer
    las fases de recuperación, decodificación y
    ejecución. En las siguientes secciones se explican los dos
    tipos de líneas.

    3 Línea
    paralela aritmética

    Por lo general, se encuentran unidades
    aritméticas de arquitectura paralela en computadoras de
    gran velocidad. Se usan para implantar operaciones de punto
    flotante, multiplicación de números de punto fijo y
    cálculos similares encontrados en problemas
    científicos. En esencia, un multiplicador de arquitectura
    paralela es un arreglo multiplicador como el que se describe en
    la figura 10-10, con sumadores especiales diseñados para
    minimizar el tiempo de propagación de acarreo mediante los
    productos
    parciales. Las operaciones de punto flotante se descomponen con
    facilidad en suboperaciones, como se muestra en la sección
    10-5. Ahora mostraremos un ejemplo de una unidad paralela para
    suma y resta de punto flotante.

    Las entradas para la línea sumadora de punto
    flotante son dos números binarios normalizados de punto
    flotante.

    X = A X 2ª

    Y = B X 2b

    A y B son dos fracciones que representan las mantisas,
    en tanto que a y b son los exponentes. Puede ejecutarse la suma y
    resta de punto flotante en cuatro segmentos, como se muestra en
    la figura 9-6. Los registros etiquetados R se colocan entre los
    segmentos para almacenar los resultados intermedios. Las
    suboperaciones que se ejecutan en los cuatro segmentos
    son:

    1. Comparar los exponentes.
    2. Alinear las mantisas.
    3. Sumar o restar las mantisas.
    4. Normalizar el resultado.

    Esto se apega al procedimiento
    delineado en el diagrama de flujo
    de la figura 10-15, pero se usan algunas variaciones para reducir
    el tiempo de ejecución de las suboperaciones. Se comparan
    los exponentes al restarlos para determinar su diferencia. Se
    escoge el exponente mayor como el exponente del resultado. La
    diferencia entre exponentes determina cuántas veces debe
    ejecutarse un corrimiento a la derecha sobre la mantisa asociada
    con el exponente menor. Esto provoca un alineamiento de las dos
    mantisas. Debe notarse que el corrimiento debe estar
    diseñado como un circuito combinatorio para reducir el
    tiempo de corrimiento. Las dos mantisas se suman o restan en el
    segmento 3. El resultado se normaliza en el segmento 4. Cuando
    ocurre un sobre flujo, la mantisa de la suma o diferencia se
    recorre a la derecha y el exponente se incrementa en 1. Si ocurre
    un sobre flujo, la cantidad de números 0 significativos en
    la mantisa determina el número de corrimientos a la
    izquierda y la cantidad que debe restarse del
    exponente.

    El siguiente ejemplo numérico puede aclarar las
    suboperaciones que se ejecutan en cada segmento. Por simplicidad
    utilizamos números binarios. Consideremos los dos
    números de punto flotante normalizados:

    X = 0.9504 X 103

    Y = 0.8200 X 102

    Para ver el gráfico seleccione la
    opción "Descargar" del menú superior

    Figura 9-6 Arquitectura paralela para
    suma y resta de punto flotante

    Se restan los dos exponentes en el primer
    segmento para obtener 3 – 2 = 1. Se escoge el exponente
    más grande, 3, como el exponente del resultado.

    El siguiente segmento recorre a la derecha la mantisa de
    Y para obtener:

    X = 0.9504 X 103

    Y = 0.0820 X 103

    Esto alinea las dos mantisas bajo el mismo exponente. La
    suma de las dos mantisas en el segmento 3 produce la
    suma:

    Z = 1.0324 X 103

    Se ajusta la suma al normalizar el resultado para que
    tenga una fracción con un primer dígito diferente
    de 0. Esto se hace al recorrer a la derecha una vez la mantisa e
    incrementar el exponente en 1 para obtener la suma
    normalizada.

    Z = 0.10324 X 104

    En la línea paralela de punto flotante se
    implantan el comparador, corrimiento, sumador, sustractor,
    incrementador, y decrementador con circuitos combinatorio.
    Supongamos que los retrasos de tiempo de los 4 segmentos son
    t1 = 60 ns, t2 = 70 ns, t3 = 100
    ns, t4 = 80 ns y que los registros de interfaz tienen
    un retraso de tr = 10 ns. Se selecciona el ciclo de
    reloj para que sea tp = t3 + tr = 110 ns. Un sumador-sustractor
    de punto flotante equivalente no paralelo, tendrá un
    retraso tn = t1 + t2 + t3 +
    t4 + tr = 320 ns. En este caso, el sumador
    paralelo tiene una aceleración mayor 320/110 = 2.9 que el
    sumador no paralelo.

    4
    Línea paralela de instrucciones

    El procesamiento por línea paralela puede ocurrir
    en el flujo de datos y también en el flujo de
    instrucciones. Una línea paralela de instrucciones lee
    instrucciones consecutivas de la memoria mientras, en otros
    segmentos, se ejecutan instrucciones anteriores. Una posible
    digresión asociada con tal esquema es que una
    instrucción puede producir un brinco fuera de secuencia.
    En tal caso, debe vaciarse la línea y deben descartarse
    todas las instrucciones que se han leído de la memoria
    después de la instrucción de brinco.

    Consideremos una computadora con una unidad de
    recuperación y una unidad de ejecución de
    instrucciones diseñada para proporcionar una línea
    de dos segmentos. Puede implantarse el segmento de
    recuperación de instrucciones mediante un registro
    intermedio (buffer) primero en entrar, primero en salir (FIFO).
    Este es un tipo de unidad que forma una cola en lugar de una
    pila. Cuando la unidad de ejecución no esta usando la
    memoria, el control incrementa el contador de programa y
    utiliza su valor de dirección para leer instrucciones
    consecutivas de la memoria. Las instrucciones se insertan en el
    registro intermedio FIFO para que puedan ejecutarse en un esquema
    primero en entrar, primero en salir. Por lo tanto, puede
    colocarse un flujo de instrucciones en una cola, en espera que lo
    decodifique y procese el segmento de ejecución. El
    mecanismo de formación de colas con flujos de
    instrucciones proporciona una manera eficiente para reducir el
    tiempo promedio de acceso a memoria para leer instrucciones.
    Cuando hay espacio en recuperación de instrucciones. El
    registro intermedio actúa como una cola de la que el
    control obtiene las instrucciones para la unidad de
    ejecución.

    Las computadoras con instrucciones complejas requieren
    otras fases además de las de recuperación y
    ejecución para procesar por completo una
    instrucción. En el caso más general, la computadora
    necesita procesar cada instrucción con la siguiente
    secuencia de pasos.

    1. Recuperar la instrucción de la
      memoria
    2. Decodificar la instrucción
    3. Calcular la dirección efectiva
    4. Recuperar los operandos de la memoria
    5. Ejecutar la instrucción
    6. Almacenar el resultado en el lugar
      adecuado.

    Existen ciertas dificultades que evitarán que la
    línea paralela de instrucciones funcione a su velocidad
    máxima. Segmentos diferentes pueden necesitar tiempos
    diferentes para actuar sobre la información que llega. Se
    saltan algunos segmentos para ciertas operaciones. Por ejemplo,
    una instrucción de modo de registro no necesita un
    cálculo de dirección efectiva. Dos o más
    segmentos pueden requerir el acceso a la memoria al mismo tiempo,
    provocando que un segmento espere hasta que otro termine su
    comunicación. En ocasiones, se resuelven
    los conflictos de
    acceso a memoria al usar dos canales de memoria para acceder las
    instrucciones y los datos en módulos separados. De esta
    manera, pueden leerse de forma simultánea una palabra de
    instrucción y una palabra de datos de dos módulos
    diferentes.

    El diseño de una línea paralela de
    instrucciones será más eficiente si se divide el
    ciclo de instrucciones en segmentos de igual duración. El
    tiempo que necesita cada paso para terminar su función
    depende de la instrucción y de la manera como se
    ejecuta.

    Ejemplo: Línea paralela de instrucciones de
    cuatro segmentos

    Consideremos que pueden combinarse en un segmento de
    decodificación de la instrucción y el
    cálculo de la dirección efectiva. Además,
    consideremos que la mayoría de las instrucciones colocan
    el resultado en un registro de procesador, para que la
    ejecución de la instrucción y el almacenamiento
    del resultado puedan combinarse en un segmento. Esto reduce la
    línea paralela de instrucciones a cuatro
    segmentos.

    La figura 9-7 muestra como puede procesarse el ciclo de
    instrucciones en la CPU con una
    línea paralela de cuatro segmentos. Mientras se ejecuta
    una instrucción en el segmento cuatro, la siguiente
    instrucción en secuencia se ocupa en recuperar un operando
    de la memoria en el segmento 3. En un circuito aritmético
    separado puede calcularse la dirección efectiva para la
    tercera instrucción y, cuando está disponible la
    memoria, pueden recuperarse y colocarse en una localidad del
    registro intermedio FIFO la cuarta instrucción y todas las
    subsecuentes. Por lo tanto, pueden traslaparse y estar en proceso
    hasta cuatro suboperaciones en el ciclo de
    instrucciones.

    De vez en cuando, una instrucción en la secuencia
    puede ser del tipo de control de transferencia del programa que
    produce un brinco fuera de la secuencia normal. En ese caso, se
    terminan las operaciones pendientes en los últimos dos
    segmentos y se borra toda la información almacenada en el
    registro intermedio de instrucciones. Después, la
    línea paralela y vuelva a iniciar a partir de un nuevo
    valor de dirección

    Figura 7

    Para ver el gráfico seleccione la
    opción "Descargar" del menú superior

    Arquitectura paralela de CPU de cuatro
    segmentos
    ,

    Para ver el gráfico seleccione la
    opción "Descargar" del menú superior

     La figura 8 muestra la
    operación de la línea paralela de
    instrucciones.

    El tiempo en el eje horizontal se divide en pasos de
    igual duración. En el diagrama, los cuatro segmentos se
    representan con un símbolo abreviado.

    1. FI es el segmento que recupera una
      instrucción
    2. DA es el segmento que decodifica la
      instrucción y calcula la dirección
      efectiva.
    3. FO es el segmento que recupera el
      operando.
    4. EX es el segmento que ejecuta la
      instrucción.

    Figura 8 Temporización d línea paralela
    de instrucciones.

    Paso

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    1

    FI

    DA

    FO

    EX

    2

    FI

    DA

    FO

    EX

    3

    FI

    DA

    FO

    EX

    4

    FI

    FI

    DA

    FO

    EX

    5

    FI

    DA

    FO

    EX

    6

    FI

    DA

    FO

    EX

    7

    FI

    DA

    FO

    EX

    Se considera que el procesador tiene memorias de
    instrucciones y datos separadas, por lo que puede avanzar la
    operación en FI y FO, al mismo tiempo. En ausencia de una
    instrucción de transferencia de control, cada segmento
    opera sobre instrucciones diferentes. Por lo tanto, en el paso 4,
    se ejecuta la instrucción en el segmento EX; el operando
    para la instrucción 2 se recupera en el segmento FO; en el
    segmento DA se decodifica la instrucción 3 y en el
    segmento FI se recupera de la memoria la instrucción
    4.

    Supongamos que la instrucción 3 es una
    instrucción de transferencia de control. Tan pronto como
    se decodifica esta instrucción en el segmento DA en el
    paso 4, se detiene la transferencia de FI a DA de las otras
    instrucciones, hasta que se ejecuta la instrucción de
    transferencia de control en el paso 6. Si se da la transferencia,
    se recupera una nueva instrucción en el paso 7. Si no se
    da la transferencia, puede usarse la instrucción
    recuperada antes, en el paso 4. Después, la línea
    paralela continua la ejecución hasta que se encuentra una
    nueva instrucción de transferencia de control.

    Puede ocurrir otro retraso en la línea si el
    segmento EX necesita almacenar el resultado de la
    operación en la memoria de datos mientras el segmento FO
    necesita recuperar un operando. En ese caso, el segmento FO debe
    esperar hasta que el segmento EX haya terminado su
    operación.

    En general, existen tres dificultades principales que
    provocan que una línea de instrucciones se aparte de su
    operación normal.

    1. Conflictos de recursos,
      provocados al accesar la memoria dos segmentos diferentes, al
      mismo tiempo. Gran parte de estos conflictos pueden resolverse
      al utilizar memorias de instrucciones y de datos
      separadas.
    2. Surgen conflictos de dependencia de datos cuando una
      instrucción depende del resultado de una anterior, pero
      éste todavía no esta disponible.
    3. Se producen dificultades de transferencia de control
      a partir de instrucciones que modifican el valor del
      PC.

    Dependencia de los datos

    Una dificultad que puede producir una degradación
    del desempeño en una línea paralela de
    instrucciones se debe a una posible colisión de datos o
    direcciones. Ocurre una colisión cuando no puede avanzar
    una instrucción porque ciertas instrucciones previas no
    terminan sus operaciones. Ocurre una dependencia de datos cuando
    una instrucción necesita datos que todavía no
    están disponibles. Por ejemplo, una instrucción en
    el segmento FO puede necesitar un operando que se está
    generando, en ese momento, mediante una instrucción
    anterior en el segmento EX. Por lo tanto, la segunda
    instrucción debe esperar a que la primera
    instrucción le deje disponibles los datos. De igual
    manera, puede ocurrir una dependencia de dirección, cuando
    no puede calcularse una dirección de operando porque no
    esta disponible la información que necesita el modelo de
    direccionamiento.

    Por ejemplo, una instrucción con modo de
    direccionamiento indirecto por registro no puede avanzar a
    recuperar el operando si la instrucción anterior esta
    cargando la dirección en el registro; Por lo tanto, el
    acceso del operando en la memoria debe retrasarse hasta que
    está disponible la dirección requerida. Las
    computadoras con arquitectura paralela enfrentan tales conflictos
    de dependencia de datos de diversas maneras.

    El método
    más directo es insertar circuitos verificadores. Un
    verificador es un circuito que detecta instrucciones cuyos
    operandos fuentes son
    destinos de instrucciones que se encuentran mas adelante en la
    línea. La detección de esta situación hace
    que la instrucción cuya fuente no esta disponible se
    retrase suficiente ciclos de reloj para evitar el conflicto.
    Este enfoque mantiene la secuencia de programa al usar hardware para insertar los
    retrasos requeridos.

    Otra técnica llamada avance de operandos, utiliza
    hardware especial para detectar un conflicto y después
    evitarlo al direccionar los datos mediante trayectorias
    especiales entre segmentos de la línea. Por ejemplo en
    lugar de transferir un resultado de la ALU a un registro destino,
    la circuiteria comprueba el operando destino y, si se necesita
    como fuente en la siguiente instrucción, para el resultado
    directamente a la entrada de la ALU, sin acceder al archivo de
    registro. Este método necesita trayectoria de hardware
    adicionales por medio de multiplexores
    y el, circuito que detecta el conflicto.

    Un procesamiento empleado en algunas computadoras es
    proporcionar al compilador que traduce el lenguaje de
    programación de alto nivel a un programa de lenguaje de
    maquina, la responsabilidad para resolver los problemas de
    conflicto de datos. El compilador para tales computadoras esta
    diseñado para detectar un conflicto de datos y reordenar
    las instrucciones conforme sea necesario al retrasar la carga de
    los datos en conflicto por medio de la inserción de
    instrucciones de no operación. Este método se
    denomina carga pospuesta o retardada. En la siguiente
    sección se presenta un ejemplo de este
    procedimiento.

    Manejo de las instrucciones de transferencia de
    control

    Uno de los problemas principales al operar un conjunto
    de instrucciones es la aparición de instrucciones de
    transferencia de control. Una instrucción de transferencia
    de control puede ser condicional o incondicional. Una
    transferencia incondicional siempre altera el flujo secuencia del
    programa al cargar el contador de programa con la
    dirección objetivo. En
    una instrucción condicional, el control selecciona la
    dirección objetivo si se satisface la condición o
    la siguiente instrucción secuencial si no se satisface.
    Como se mencionó antes, la instrucción de
    transferencia de control interrumpe la secuencia normal del flujo
    de instrucciones, produciendo dificultades en la operación
    de la línea paralela de instrucciones. Las computadoras
    con arquitectura paralela emplean diferentes técnicas de
    hardware para minimizar la degradación del
    desempeño provocada por las instrucciones de transferencia
    de control.

    Una manera de manejar una transferencia condicional es
    recuperar con anticipación

    La dirección objetivo, además de la
    instrucción que sigue a la transferencia. Ambas se guardan
    hasta que se ejecuta la transferencia. Si la condición de
    la transferencia se cumple, la línea paralela
    continúa a partir de la instrucción objetivo de la
    transferencia. Una extensión de este procedimiento es
    continuar la recuperación de instrucciones de ambos
    lugares hasta que se tome la decisión de la transferencia.
    En ese momento, el control selecciona el flujo de instrucciones
    de la secuencia de programa correcta.

    Otra posibilidad es usar un registro de
    ramificación objetivo (branch target buffer, BTB). El BTB
    es una memoria asociativa, incluida en el segmento de
    recuperación de la línea. Cada entrada en el BTB
    consiste en la instrucción de transferencia recuperada con
    anticipación y la instrucción objetivo para esa
    transferencia. También almacena unas cuantas instrucciones
    que se encuentran después de la instrucción
    objetivo de la transferencia. Cuando la línea decodifica
    una instrucción de transferencia, busca la memoria
    asociativa BTB para la dirección de la instrucción.
    Si está en el BTB, se puede disponer de la
    instrucción en forma directa y la recuperación con
    anticipación continúa a partir de la nueva
    trayectoria. Si la instrucción no está en el BTB,
    la línea paralela cambia a un nuevo ciclo de instrucciones
    y almacena la instrucción objetivo en el BTB. La ventaja
    de este esquema es que las instrucciones de transferencia de
    control que han ocurrido con anticipación están
    disponibles con facilidad en la línea, sin
    interrupciones.

    Una variante del BTB es el registro de ciclo. Este es un
    pequeño archivo de registros, de muy alta velocidad, que
    se mantiene en el segmento de recuperación de
    instrucciones de la línea paralela. Cuando se detecta un
    ciclo de programa, se almacena por completo en el registro de
    ciclo, incluyendo todas las transferencias. EL ciclo de programa
    puede ejecutarse en forma directa, sin tener que acceder la
    memoria hasta que se retira el modo de ciclo con la transferencia
    de control final.

    Otro procedimiento que utilizan algunas computadoras es
    la predicción de transferencia de control y línea
    paralela. Una arquitectura paralela con predicción de
    transferencia de control utiliza cierta lógica
    adicional para predecir el resultado de una instrucción de
    transferencia condicional antes de que se ejecute.
    Después, la línea paralela empieza a recuperar con
    anticipación el flujo de instrucciones de la trayectoria
    predicha. Una predicción correcta elimina el tiempo
    perdido causado por el proceso de transferencia de
    control.

    Un procedimiento usado en la mayoría de los
    procesadores RISC es la transferencia propuesta o retardad. En
    este procedimiento, el procesador detecta las instrucciones de
    transferencia de control y reordena la secuencia de código
    de lenguaje de máquina al insertar instrucciones
    útiles que conservan sin interrupciones la
    operación de la línea paralela. Un ejemplo de
    transferencia retardada es la inserción de una
    instrucción de no operación después de una
    instrucción de transferencia de control. Eso hace que la
    computadora recupere la dirección objetivo, durante la
    ejecución de la instrucción de no operación,
    lo que permite tener un flujo continuo del conducto.

    5.-ARQUITECTURA
    PARALELA RISC.

    En la sección 8-8 se presento la computadora en
    conjunto reducido de instrucciones (Risc).Entre las
    características que se le atribuyen a Risc esta la
    capacidad e usar un conjunto de instrucciones eficientes para
    implantar una línea paralela de instrucciones con numero
    pequeño de operaciones y de cada una se ejecute en un
    ciclo de reloj. Debido al formato de instrucciones de longitud
    fija, la descodificación de la operación puede
    ocurrir al mismo tiempo que la selección
    de registros .Todas las instrucciones de manipulación de
    datos tiene operación de datos tiene operaciones registros
    a registros. Como todos los operandos están en registros,
    no es necesario calcular una dirección

    Efectivas o recuperar operandos de la memoria .por lo
    tanto , la línea paralela de instrucciones puede
    implantarse con dos o tres segmentos .Un segmento recupera la
    instrucción de la memoria del programa y el otro segmento
    ejecuta la instrucción en la ALU. Puede usarse un tercer
    segmento para almacenar el resultado de la operación de la
    ALU en un registro destino.

    En la arquitectura Risc, las instrucciones de
    transferencia de datos están limitadas alas instrucciones
    cargar y almacenar. Estas instrucciones utilizan un
    direccionamiento, directo por registro .Por lo general, necesita
    tres o cuatro etapas en el segmento. Para evitar conflictos entre
    un acceso a memoria con el fin de recuperar una
    instrucción y cargar y almacenar un operante, gran parte
    de las maquinas Risc utilizan dos canales separados con dos
    memoria: Una para almacenar las instrucciones y otra para
    almacenar los datos .En algún momento, las dos memorias
    pueden operar ala misma velocidad que el reloj del cpu y se
    denomina memoria
    cache.

    Una de las de las principales ventajas de la Risc es su
    capacidad para ejecutar instrucciones a una velocidad de una por
    ciclo de reloj. No es posible que cada instrucción se
    recupere de la memoria y se ejecute en un ciclo de reloj. En
    realidad, lo que se hace es empezar cada instrucción con
    cada ciclo de reloj y mediante su arquitectura paralela el
    procesador logra el propósito de una ejecución de
    instrucción en un solo ciclo. La ventaja de la Risc sobre
    la CISC (computadora con conjunto de instrucciones complejo ) Es
    que la Risc Puede tener segmento paralelos , al requerir un solo
    ciclo de reloj , en tanto la CISC utiliza muchos segmentos en su
    arquitectura paralela y el segmento mas grande requiere dos o mas
    ciclo de reloj.

    Otra característica de la RISC es el
    soporte

    Código de

    operación

    Dirección base

    Fuente 1

    Dirección base

    Fuente 2

    Dirección base

    destino

    Longitud

    De vector

    Figura 11 Formato de instrucción para
    procesamiento de vector.

    Tres campos especifican la dirección base de los
    operandos y un campo adicional proporciona la longitud de los
    conjuntos de datos en los vectores. Esto considera que los
    operandos del vector residen en la memoria. También es
    posible diseñar el procesador con una gran cantidad de
    registros antes de la operación de suma. En ese caso, la
    dirección base y la longitud en la instrucción del
    vector especifican un grupo de registros de CPU.

    Multiplicación de matriz

    La multiplicación de matriz es una de las
    operaciones computacionales mas intensivas que se ejecutan en las
    computadoras con procesadores de vector.

    La multiplicación de matrices n X n consta
    de operaciones de n2 productos internos o
    n3 operaciones multiplicar-sumar. Una matriz
    n X m de números tiene n renglones y
    m columnas y puede considerarse que constituye un conjunto
    de n vectores de renglón o un conjunto de m vectores de
    columna.

    Consideremos por ejemplo, la multiplicación de
    dos matrices 3 X 3 A y B.

    a11 a12
    a13b11 b12
    b13c11 c12
    c13

    a21 a22 a23
    x b21 b22 b23 =
    c21 c22 c23

    a31 a32 a33b31
    b32 b33c31 c32
    c33

     

     La matriz producto C es unas
    matriz 3 X 3 cuyos elementos están relacionados con
    los elementos de A y B mediante el producto
    interno:

    Por ejemplo, el número en el primer
    renglón y la primera columna de la matriz C se
    calcula con i= 1, j =1, para obtener:

    C11= a11
    b11 + a12 b21 + a13
    b31

    Esto requiere tres multiplicaciones y (después de
    inicializar c11 en 0) tres sumas. La
    cantidad total de multiplicaciones o sumas requeridas para
    calcular el producto de la matriz es 9 x 3 = 27. Si
    consideramos la operación global de multiplicar –
    sumar c + a x b como una operación acumulativa, el
    producto de dos matrices n x n requiere
    n3 operaciones de multiplicar – sumar. El
    cálculo consta de n2 productos internos, en
    donde cada producto interno requiere n operaciones de
    multiplicar – sumar, considerando que c se
    inicializa en 0 antes de calcular cada elemento en la
    matriz producto.

    En general, el producto interno consta de la suma de
    k términos de producto de la forma:

    C = A1 B1 +
    A2 B2 + A3 B3 +
    A4 B4 +……+ Ak
    Bk

    En la aplicación típica k puede ser igual
    a 100 o incluso a 1000. el calculo de producto interno en un
    procesador de vector de arquitectura paralela se muestra en la
    figura 9-12. los valores de
    A y B están en la memoria o en registros de procesador. Se
    considera que la línea paralela del multiplicador de punto
    flotante y la línea paralela del sumador de punto flotante
    tienen cuatro segmentos cada uno. Todos los registros de
    segmentos en el multiplicador y en el sumador se inicializan en
    0. Por lo tanto, la salida del sumador es 0 para los primeros
    ocho primeros ciclos, hasta que están llenas ambas
    líneas. Los pares A1 y B1 se
    introducen y multiplican a una velocidad de un par por ciclo.
    Después de los primeros cuatro ciclos, el producto
    comienza a sumarse a la salida del sumador. Durante los cuatro
    ciclos siguientes se suma 0 a los productos que entran a la
    línea del sumador. Al final del octavo ciclo, los primeros
    cuatro productos A1, B1 hasta A4
    B4 están en los cuatro segmentos del sumador y
    los siguientes cuatro productos de A5 B5 a
    A8 B8 están en los segmentos de
    multiplicador. Al comienzo del noveno ciclo, la salida del
    sumador es A1 B1 y la salida del
    multiplicador es A5 B5. Por lo tanto, el
    noveno ciclo comienza la suma A1 B1 +
    A5 B5 en la línea sumador. El
    Décimo ciclo comienza la suma A2 B2
    + A6 B6 y así sucesivamente. Este
    patrón divide la suma en cuatro secciones de la manera
    siguiente:

    C = A1 B1 + A5
    B5 + A9 B9 + A13
    B13 + …

    A2 B2 +
    A6 B6+ A10 B10+
    A14 B14 + …

    A3 B3 + A7
    B7 + A11 B11+ A15
    B15 + …

    A4 B4 + A8 B8 +
    A12 B12+ A16 B16 +

     

    Cuando ya no hay más términos de producto
    por sumar, el sistema inserta cuatro ceros en la línea del
    multiplicador. Entonces la línea del sumador tendrá
    un producto parcial en cada uno de sus cuatro segmentos, que
    corresponden a las cuatro sumas que se listan en los cuatro
    renglones de la ecuación anterior. Después se suman
    las cuatro sumas parciales para formar la suma final.

    Memoria entrelazada

    Los procesos de
    vector y de arquitectura paralela con frecuencia requieren acceso
    simultaneó a la memoria desde dos o mas fuentes, una
    línea paralela de instrucción y un operador al
    mismo tiempo desde dos segmentos diferentes. De igual manera, una
    línea aritmética, por lo general, requiere que se
    introduzca dos o más operandos en la línea, al
    mismo tiempo. En lugar en la línea, al, mismo tiempo. En
    lugar de usar dos canales de memoria para acceso simultaneo,
    puede dividirse la memoria en varios módulos conectados a
    canales de direcciones y de datos comunes. Un modulo de memoria
    es un arreglo de memoria junto con sus propios registros de datos
    y direcciones. La figura 13 muestra una unidad de memoria con
    cuatro módulos. Cada arreglo de memoria tiene su propio
    registro de dirección de un canal de direcciones
    común y los registros de datos comunican con un canal de
    datos bidireccional.

    Para ver el gráfico seleccione la
    opción "Descargar" del menú superior

      Pueden utilizarse los dos bits
    menos significativos de la dirección para diferenciar
    entre los cuatro módulos. El sistema modular permite que
    un módulo inicie un acceso a memoria mientras otros
    módulos están en proceso de leer o escribir una
    palabra y cada modulo puede cumplir una solicitud de memoria
    independiente del estado de los
    otros módulos.

    La ventaja de una memoria modular es que permite la
    utilización de una técnica llamada entrelazado. En
    una memoria entrelazada, se asignan diferentes conjuntos de
    direcciones a diferentes módulos, las direcciones pares
    pueden estar en un módulo y las direcciones impares pueden
    estar en otro. Cuando las cantidad de módulos es una
    potencia de 2,
    los bits menos significativos de la direcciones seleccionan un
    modulo de memoria y los bits restantes representan la
    posición especifica que se va a accesar dentro del modulo
    seleccionado.

    Una memoria modular es útil en sistemas con
    procesamiento de vector y de arquitectura paralela. Un procesador
    de vector que utiliza una memoria modular es útil en
    sistemas con procesamiento de vector y de arquitectura paralela.
    Un procesador de vector que utiliza una memoria entrelazada de
    n canales, puede recuperar n
    operadores de n módulos diferentes. Al
    entrelazar el acceso a la memoria, el tiempo de ciclo de memora
    efectivo puede reducirse en un factor cercano a la cantidad de
    módulos. Una CPU con línea paralelas de
    instrucciones puede aprovechar los módulos de memoria
    múltiples para que cada segmento en la línea pueda
    accesar las memoria en forma independiente del acceso de los
    otros segmentos.

    Supercomputadoras.

    A una computadora comercial con instrucciones de vector
    y operaciones aritméticas de punto flotante de
    líneas paralelas se le denomina Supercomputadora.
    Las supercomputadoras son maquinas de alto rendimiento muy
    poderosas que se usan sobre todo tipo de cálculos
    científicos. Para acelerar la operación, los
    componentes se juntan para minimizar la distancia que tiene que
    recorrer las señales
    electrónicas. Las supercomputadoras también
    utilizan técnicas especiales para evitar el calor en los
    circuitos y prevenir que se quemen debido a su
    proximidad.

    El conjunto de instrucciones de las supercomputadoras
    contiene las instrucciones de transferencia de datos
    manipulación de datos y transferencia de control del
    programa de las computadoras convencionales. Esto se aumenta
    mediante instrucciones que procesan vectores y combinaciones de
    escalares y vectores. Una supercomputadora es un sistema
    computacional que se reconoce por su alta velocidad de
    cálculo, sus sistemas de memoria grandes y rápidos
    y un uso amplio de procesamientos paralelo. Esta equipada con
    unidades funcionales múltiples y cada unidad tiene su
    propia configuración de arquitectura paralela. Aunque la
    supercomputadora maneja aplicaciones de propósito general
    que se encuentran en todas las otras computadoras, está
    optimizada específicamente para el tipo de cálculos
    numéricos que involucran vectores y matrices de
    números de punto flotante.

    Las supercomputadoras no son convenientes para
    procesamiento cotidiano normal de una instalación de
    computadora típica. Su uso se limita a ciertas
    aplicaciones científicas, como predicción
    numérica del clima, análisis de ondas
    sísmicas e investigación espacial. Se usan en forma
    limitada y su mercado
    también es pequeño debido a su alto precio.

    Una medida utilizada para evaluar computadoras, es su
    capacidad para ejecutar cierta cantidad de operaciones de un
    punto flotante por segundo, que se denomina flops. El
    término megaflops se utiliza para representar millones de
    flops y gigaflops para representar mil millones de flops. Una
    supercomputadora típica tiene un tiempo de ciclo
    básico de 4 a 20 ns. Si el procesador puede calcular una
    operación de punto flotante por línea paralela cada
    ciclo, tendrá la capacidad de ejecutar de 50 a 250
    megaflops. Esta velocidad se sostendría desde el momento
    en que se produce la primera respuesta y no incluye el tiempo de
    iniciación de las líneas paralelas.

    La primera supercomputadora desarrollada en 1976 es la
    Cray-1. Utilizada el procesamiento de vector con 12 unidades
    funcionales distintas en paralelo. Cada unidad funcional esta
    dividida para procesar los datos de entrada a través de
    una línea paralela. Todas las unidades funcionales pueden
    operar en forma concurrente con operandos almacenados en una gran
    cantidad de registros (más de 150) en la CPU. Puede
    ejecutarse una operación de punto flotante sobre dos
    conjuntos de operandos de 64 bits, durante un ciclo de reloj de
    12.5 ns. Esto nos da una velocidad de 80 megaflops durante el
    tiempo que se procesan los daros a través de las
    líneas paralelas. Tienen una capacidad de memoria de
    cuatro millones de palabras de 64 bits. La memoria se divide en
    16 bancos, en donde
    cada banco tiene un
    tiempo de acceso de 50 ns. Esto significa que cuando se accedan
    los 16 bancos en forma simultanea, la velocidad de transferencia
    de memoria es de 320 millones de palabras por segundo. La
    investigación acerca de la Cray amplio su supercomputadora
    a una configuración de multiprocesador llamada Cray X-MP y
    Cray Y-MP. La nueva supercomputadora Cray 2 es doce veces
    más poderosa que la Cray 1 en el modo de procesamiento de
    vector.

    Otro modelo inicial de supercomputadora es la Fujitsu
    VP-200. Tiene un procesador escalar y un procesador de vector que
    pueden operar en forma concurrente. Como en las supercomputadoras
    Cray, se utilizan una gran cantidad de registros y de unidades
    funcionales múltiples para habilitar las operaciones de
    vector de registro a registro. Existen cuatro líneas
    paralela s de ejecución en le procesador de vector y
    cuando operan en forma simultanea, pueden procesar hasta 300
    megaflops. La memoria principal tiene 32 millones de palabras
    conectadas a los registros de vector mediante leneas paralelas de
    carga y almacenamiento. La VP-200 tiene 83 instrucciones de
    vector y 195 instrucciones escalares. La mas reciente VP 2600
    utiliza un ciclo de reloj de 3.2 ns y se dice que a su
    máxima capacidad puede procesar cinco
    gigaflops.

    Arreglo de procesador SIMD

    Un arreglo de procesador es un procesador que ejecuta
    cálculos sobre arreglos de datos grandes. El
    término se utiliza para hacer referencia a dos tipos
    diferentes de procesadores. Un arreglo de procesador conectado es
    un procesador auxiliar conectado a una computadora de
    propósito general. Pretende mejorar el desempeño de
    la computadora anfitrión en tareas de cálculos
    numéricos específicos. Un arreglo de procesador
    SIMD (Single Instrucción, múltiple data) es un
    procesador que tiene una organización de
    instrucción única, datos múltiples. Manipula
    instrucciones de vector mediante múltiples unidades
    funcionales que responden a una instrucción común.
    Aunque ambos tipos de procesadores de arreglo manipulan vectores,
    su organización interna es diferente.

    Arreglo de procesador conectado

    Un arreglo de procesador conectado esta diseñado
    un periférico para una computadora anfitriona convencional
    y su propósito es mejorar el desempeño de la
    computadora al proporcionar procesamiento de vector para
    aplicaciones científicas complejas. Produce un alto
    rendimiento mediante el procesamiento paralelo con
    múltiples unidades funcionales. Incluye una unidad
    aritmética que contiene uno o más sumadores y
    multiplicadores de punto flotante de arquitectura paralela. El
    usuario puede programar el arreglo de procesador para que de
    cabida a diversos problemas
    aritméticos complejos.

    La figura 14 muestra la interconexión de un
    arreglo de procesador conectado a una computadora anfitriona. La
    computadora anfitriona es una computadora comercial de
    propósito general y el procesador conectado es una
    terminal conectada a una computadora anfitriona. El arreglo de
    procesador está conectado se trasfieren de la memoria
    principal a una memoria local mediante un canal de alta
    velocidad.

    Para ver el gráfico seleccione la
    opción "Descargar" del menú superior

     La computadora de propósito
    general sin el procesador conectado atiende a los usuarios que
    necesitan procesamiento de datos convencional. El sistema con el
    procesador conectado satisface las necesidades para aplicaciones
    aritméticas complejas.

    Algunos fabricantes de procesadores de arreglo conectado
    ofrecen un modelo que pueden conectarse a diversas computadoras
    anfitrión. Por ejemplo, cuando se conecta a una
    computadora VAX11, el FSP-164/MAX de Floating-Point Systems
    aumenta el poder de
    cálculo de la VAX a 100 megaflops. El objetivo del
    procesador de arreglo conectado es proporcionar posibilidades de
    manipulación de vector a una computadora convencional, a
    una fracción del costo de las
    supercomputadoras.

    Arreglo de procesador SIMD

    Un arreglo de procesador sima es una computadora con
    múltiples unidades de procesamiento que operan en
    paralelo. Las unidades de procesamiento están
    sincronizadas para ejecutar la misma operación bajo el
    control de una unidad común, por lo que proporciona una
    organización de flujo de instrucciones único, flujo
    de procesador se muestra en la figura 9-15. Contiene un conjunto
    de elementos de procesamientos (PE) idénticos, en donde
    cada uno tiene una memoria local M. Cada elemento del
    procesador incluye una ALU, una unidad de control maestro dirige
    las operaciones en los elementos del procesador. La memoria
    principal se utiliza para almacenamiento del programa. La
    función de la unidad de control maestro es decodificar las
    instrucciones y determinar como se van a ejecutar.

    Para ver el gráfico seleccione la
    opción "Descargar" del menú superior

     Las instrucciones de control de
    programa y escalares se ejecutan directa dentro de la unidad de
    control maestro. Las instrucciones de vector se transmiten a
    todos los PE en forma simultánea. Cada PE utiliza
    operandos almacenados en su memoria local. Los operandos de
    vector se distribuyen a las memorias locales antes de la
    ejecución en paralelo de la instrucción.

    Por ejemplo, consideramos la suma de vector C = A +
    B
    . Primero, la unidad de control maestro almacena los
    pésimos componentes ai y
    bi de A y B en la memoria local
    Mi par i = 1, 2, 3, 4 …., n. Después
    transmite la instrucción sumar de punto flotante
    Ci = ai + bi a todos los
    PE, causando que la suma se realice en forma simultanea. Los
    componentes de Ci están almacenados en
    localidades fijas en cada memoria local. Esto produce la suma del
    vector deseado en un ciclo de suma.

    Se usan esquemas de enmascaramiento, con el fin de
    controlar el estado de
    cada PE durante la ejecución de instrucciones de vector.
    Cada PE tiene una bandera que se activa cuando el PE está
    activo y se desactiva cuando está inactivo. Esto asegura
    que sólo están activos durante
    la ejecución de la instrucción aquellos PE que
    necesitan participar. Por ejemplo, supongamos que un arreglo de
    procesador contiene un conjunto de 64 PE. Si se va a procesar una
    longitud de vector menor que 64 conjuntos de datos, la unidad de
    control de selecciona la cantidad correcta de PE que van a estar
    activos. La unidad control debe dividir los vectores con longitud
    mayor de 64, en partes de 64 palabras.

    El procesador de arreglo SIMD más conocido es la
    computadora ILLIAC IV, desarrollada en la Universidad de
    Illinois y fabricada por Burroughs Corp. Esta computadora ya no
    está en operaron. Los procesadores SIMD son computadoras
    altamente especializadas. Sobre todo son convenientes para
    problemas numéricos que pueden expresarse en forma de
    vector o de matriz. Sin embargo, no son muy eficientes en otros
    tipos de cálculos o para trabajar con programas de
    procesamiento de datos convencionales.

     

    Nombre del investigador :

    Vìctor Perales Fabian

    Estudiante: Facultad Ing. De sistemas

    Universidad Señor de Sipan

    Carretera Pimentel , Lambayeque -Perú

    Categoría: Computación E
    inforrmática

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter