04 Jun

PIPELINES

Son las que 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.

¿POR QUÉ SE CARACTERIZAN LOS PROCESADORES VECTORIALES?

Los procesadores vectoriales se caracterizan porque ofrece una serie de operaciones de alto nivel que operan sobre vectores, es decir, matrices lineales de números. Una operación típica de un procesador vectorial sería la suma de 2 vectores de coma flotante de 64 elementos y obtener 64 resultados.

INSTRUCCIONES VECTORIALES

Tienen propiedades importantes que son:

  • El cálculo de cada resultado es independiente de los resultados anteriores en el mismo vector.
  • Una sola instrucción vectorial especifica una gran cantidad de trabajos.
  • Como se sustituye un bucle completo por una instrucción vectorial cuyo comportamiento está predeterminado.
  • Las instrucciones vectoriales que acceden a memoria tienen un patrón de acceso conocido.

Por estas razones, las operaciones vectoriales pueden hacerse más rápidas que una secuencia de operaciones escalares sobre el mismo número de elementos de datos.

PROCESADOR VECTORIAL BÁSICO

Se divide en:

  • Arquitectura vectorial básica
  • Instrucciones vectoriales básicas
  • Tiempo de ejecución vectorial
    • Tiempo de arranque vectorial y taza de inicialización
  • Unidades de carga, almacenamiento vectorial
    • Memoria entrelazada o intercalada

1.- ARQUITECTURA VECTORIAL BÁSICA

Contiene los siguientes elementos:

  • Registros vectoriales: Estos registros son los que contienen los operandos vectoriales.
  • Unidades Funcionales Vectoriales: Es el área de trabajo de las Pipeline.
  • Unidad de Carga y Almacenamiento: Gestiona las transferencias de vectores de memoria.
  • Registros Escalares: Contienen operandos escalares, pueden proporcionar datos como entradas a las unidades funcionales vectoriales.
  • Unidades funcionales Escalares: Pueden existir para operaciones específicamente escalares.

TIPOS DE ARQUITECTURA VECTORIALES

  • Máquinas vectoriales con registro: En una máquina de este tipo todas las operaciones vectoriales excepto las de carga y almacenamiento operan con vectores almacenados en registros. La mayoría de las máquinas vectoriales modernas utilizan este tipo de arquitectura. Ejemplos: Cray Research (CRAY-1, CRAY-2).
  • Máquinas vectoriales memoria-memoria: En estas máquinas todas las operaciones vectoriales son de memoria a memoria. Ejemplo: CDC.

En las máquinas vectoriales con registro la longitud de cada registro es habitualmente fija. Ejemplo: 64 componentes de 64 bits cada uno con un CRAY. Otras máquinas como algunas de Fujitsu, utilizan registros vectoriales reconfigurados para encajar dinámicamente la longitud del registro con la longitud de los operandos.

2.- INSTRUCCIONES VECTORIALES BÁSICAS

Se dividen en 6 tipos diferentes:

  • Vector-vector: Son aquellas cuyos operandos son vectores y el resultado es un vector.
  • Vector-Escalar: Son instrucciones en cuyos operandos interviene algún escalar y el resultado es un vector.
  • Vector-Memoria: M –> V = carga el vector de la memoria, V –> M almacena el vector a la memoria.
  • Reducción de Vectores: Son instrucciones cuyo operando son vectores y el resultado es un escalar. Ejemplos: suma, promedio, máximo, media.
  • Reunir y Esparcir: Estas funciones sirven para almacenar/cargar vectores dispersos en memoria.
  • Enmascaramiento: Este vector permite almacenar resultados intermedios de operaciones con varios niveles de profundidad.

3.- TIEMPO DE EJECUCIÓN VECTORIAL

Tres son los factores que influyen en el tiempo de ejecución de una secuencia de operaciones vectoriales:

  • La longitud de los vectores sobre los que se opera.
  • Las dependencias de datos después de varias iteraciones.
  • Los riesgos estructurales entre las operaciones.

¿A QUÉ SE REFIERE LA VELOCIDAD DE INICIALIZACIÓN EN UN PROCESADOR VECTORIAL?

Es la velocidad o frecuencia a la cual una unidad vectorial consume nuevos operandos y produce nuevos resultados, podemos calcular el tiempo para una instrucción vectorial.

¿QUÉ ES UN CONVOY?

Es el conjunto de instrucciones vectoriales que podrían potencialmente iniciar su ejecución en el mismo ciclo de reloj. Para simplificar diremos que las instrucciones de un convoy deben terminar de ejecutarse antes que cualquier otra instrucción, vectorial o escalar, pueda empezar a ejecutarse.

¿QUÉ ES UN TOQUE O CAMPANADA?

Es una medida aproximada del tiempo de ejecución para una secuencia de vectores. Por lo tanto, para una secuencia de vectores que consiste en m convoyes se ejecuta en m campanadas, y para la longitud de un vector de n, será aproximadamente (n x m) ciclos de reloj.

3.1.- TIEMPO DE ARRANQUE VECTORIAL Y TAZA DE INICIALIZACIÓN

El tiempo de arranque viene de la latencia del cause en relación con la unidad funcional empleada. El tiempo de arranque incrementa el tiempo efectivo en ejecutar un convoy en más de una campanada. Generalmente la taza de inicialización corresponde a lanzar una instrucción por ciclo de reloj generalmente es 1.

4.- UNIDAD DE CARGA O ALMACENAMIENTO VECTORIAL

El comportamiento de la unidad de carga o almacenamiento es más complicado que de las unidades aritméticas. El tiempo de arranque para una carga es el tiempo para coger la primera palabra de la memoria y guardarla en un registro. Para conseguir una taza de inicialización de una palabra por ciclo el sistema de memoria debe ser capaz de producir o aceptar una cantidad de datos esto se puede conseguir mediante la creación de banco de memoria múltiple.

4.1.- MEMORIA ENTRELAZADA O INTERCALADA

En una máquina vectorial los accesos no son a datos individuales sino a colecciones de ellos (vectores). De tal manera que se puede realizar acceso a varios elementos a la vez. Por eso se presenta una técnica entrelazado que permite el acceso segmentado a los diferentes módulos de memoria paralela.

EXISTEN 2 FORMATOS DE DIRECCIONES PARA REALIZAR UNA MEMORIA ENTRELAZADA

  • Entrelazado orden alto: Utiliza los a bits de orden alto como selector de módulo y los b bits de orden bajo como la dirección de la palabra dentro de cada módulo. Por lo tanto el entrelazado de orden alto permite el acceso en bloque a posiciones contiguas de memoria y es tolerante a fallos.
  • Entrelazado de orden bajo: Reparte las localizaciones continuas de memoria entre los m módulos de forma horizontal esto implica que los a bits de orden bajo de la dirección se utilizan para identificar el módulo de memoria. Los b bits de orden más alto forman la dirección de la palabra dentro de cada módulo. Por lo tanto el entrelazado de orden bajo soporta el acceso de bloque de forma segmentada y no es tolerante a fallos ya que en caso de fallo de un módulo toda la memoria queda inutilizable.

A LA VEZ EL ENTRELAZADO DE ORDEN BAJO SE PUEDE DIVIDIR EN TRES TIPOS:

  • Acceso concurrente a memoria (acceso C): Los accesos a los módulos de una memoria se pueden solapar de forma segmentada. Para esto el ciclo de memoria (llamado ciclo mayor de memoria se subdivide en m ciclos menores). El ciclo mayor es el tiempo total necesario para completar el acceso a una palabra simple de un módulo. El ciclo menor es el tiempo necesario para producir una palabra.
  • Acceso simultáneo a memoria (acceso S): La memoria entrelazada de orden bajo puede estar dispuesta de manera que permita acceso simultáneo, o acceso S.
  • Memoria de acceso (C/S): Este tipo de organización de memoria permite los accesos de tipo C y también los tipos S.

ORGANIZACIÓN BÁSICA DE UN PROCESADOR MATRICIAL

Se trata de n elementos de proceso sincronizado y bajo el control de una unidad de control cada elemento de proceso o procesador está formado por una ALU asociada a unos registros de trabajo y una memoria local para el almacenamiento de datos. Las instrucciones vectoriales son transmitidas a los EP para su ejecución de esta manera se alcanza un alto grado de paralelismo gracias a la multiplicidad de los elementos procesados.

UN MODELO OPERACIONAL PARA LOS COMPUTADORES MATRICIALES VIENE ESPECIFICADO POR LA SIGUIENTE QUINTUPLA: M = (N,C,I,M,R)

  • N: Es el número de elementos de proceso en la máquina.
  • C: Es el conjunto de instrucciones ejecutadas directamente por la unidad de control incluyendo las instrucciones escalares y las de control del flujo de ejecución.
  • I: Es el conjunto de instrucciones que la UC envía a todos los EP para su ejecución en paralelo.
  • M: Es el conjunto de posibilidades de enmascaramiento donde cada máscara se encarga de dividir el conjunto de EP en subconjuntos de EP habilitados o deshabilitados.
  • R: Es el conjunto de funciones de ruteo que especifican varios patrones para ser establecidos en la red de interconexión para intercomunicación entre EP.

ESTRUCTURA INTERNA DE UN ELEMENTO DE PROCESO

Aunque las características de un EP es un procesador matricial pueden variar de unas a otras máquinas, los elementos básicos por los que están formados los EP, son los siguientes:

  • Memoria local – MEP
  • Conjunto de registros e indicadores (Ai, Bi, Ci y Si)
  • Unidades aritmético lógica
  • Registro índice local
  • Registro de direcciones
  • Registro de encaminamiento de datos – Ri

Algunos procesadores matriciales pueden usar dos registros de encaminamiento, uno para la entrada y otro para la salida.

CADA ELEMENTO DE PROCESO EPi

Se dividen en 2:

  • Modo activo: Si un elemento está activo ejecuta la instrucción que la enviado la Unidad de Control (UC).
  • Modo inactivo: Si está inactivo no ejecuta la instrucción que recibe.

Los esquemas de enmascaramiento se utilizan para modificar los indicadores de estado de (Si), supongamos que (Si = 1), el EP está activo y si no está inactivo.

En un procesador matricial los operandos vectoriales pueden ser especificados por los registros a utilizar o por las direcciones de memoria a referenciar.

COMPARANDO CON LOS PROCESADORES VECTORIALES

Tienen en común:

  • El sistema solo procesa un flujo de instrucciones (una única UC).
  • Diseñados para trabajar con vectores y matrices.
  • Paralelismo a nivel de datos.

¿CÓMO CONSIGUEN EL PARALELISMO?

  • Vectoriales:
    • Concurrencia de múltiples unidades funcionales que constituyen juntas la ALU.
    • Segmentación de las unidades funcionales.
  • Matriciales:
    • Concurrencia de múltiples elementos de proceso de propósito general, siendo cada uno una ALU independiente.
    • En el interfaz procesador-memoria hay varias transferencias simultáneas.

RESPECTO AL USO COMPARTIDO DE DATOS Y LA COMUNICACIÓN ENTRE INSTRUCCIONES

  • Vectoriales:
    • Los datos se comparten mediante memoria compartida y registros comunes.
    • Las unidades funcionales no se comunican entre sí.
    • Solo existe un único flujo de datos entre procesador y memoria.
  • Matriciales:
    • Los datos se pueden compartir tanto por acceso a memoria compartida como mediante comunicación entre los EP.
    • Los EP pueden comunicarse entre sí sin memoria intermedia.

DIFERENCIA ENTRE PROCESADORES VECTORIALES – MATRICIALES

Radican en la manera como acceden a los datos los procesadores vectoriales van avanzando secuencialmente mientras a sus resultados se le aplica nuevas operaciones en el caso de los procesadores matriciales el acceso a los datos es de manera simultánea.

DEFINICIÓN DE PROCESADORES MATRICIALES

Son computadoras de propósitos específicos destinados a limitadas aplicaciones científicas donde pueden alcanzar un rendimiento elevado sin embargo tienes algunos problemas de vectorización y programación difíciles de resolver. Lo cierto es que los computadores matriciales no son populares entre los fabricantes de supercomputadoras comerciales.

Deja un comentario