Arquitectura Simd Max

May 4, 2019 | Author: Xiomara Alvarado Delgado | Category: Central Processing Unit, Algorithms, Array Data Structure, Computer Memory, Compiler
Share Embed Donate


Short Description

ARQUITECTURA SIMD...

Description

ARQUITECTURA SIMD (Instrucción Única, Datos Múltiples o Single Instruction Multiple Data)

I. Introducción El procesamiento de datos en paralelo es una forma de mejorar el desempeño los algoritmos y así disminuir el tiempo de ejecución de los mismos. De acuerdo a la clasificación propuesta por Flynn las diversas arquitecturas de computadores se pueden agrupar en: • •





SISD Single Instruction Single Data ! "na Instrucción# "n Dato$ %ISD %ultiple Instruction Single Data ! %<iples Instrucciones# "n Dato$ SI%D Single Instruction %ultiple Data ! "na Instrucción# %<iples Datos$ %I%D %ultiple Instrucion %ultiple Data ! %<iples Instrucciones# %<iples Datos$

'a arquitectura m(s utili)ada es la SISD y se puede encontrar# por ejemplo# en los procesadores de los computadores personales# mientras las SI%D y %I%D se usan para supercomputadores# computadores de alto desempeño o en procesos en general que requieran * gran capacidad de procesamiento.

II. Defnición 'as arquitecturas SI%D Single Instruction %ultiple Data$ ejecutan la misma instrucción so+re m<iples datos simult(neamente, de manera semejante a como un sargento ordena a todo el pelotón dar media vuelta# en lugar de -acerlo de soldado en soldado. Es una arquitectura de procesadores en la que se o+tiene paralelismo a nivel de datos datos Figur Figura a $. /omo /omo su acróni acrónimo mo indica indica## una una sola sola instru instrucci cción ón del proc proces esad ador or afec afecta ta a vario arioss regi regist stro ross del del mism mismo. o. 'as 'as unid unidad ades es SI%D SI%D aprovec-an una propiedad de los flujos de datos llamada paralelismo de datos. Se puede o+tener paralelismo de datos cuando se tiene una cantidad de datos uniformes a los que se les reali)a la misma operación. "n ejemplo cl(sico es la de invertir los colores de una imagen 012. Se de+e repetir la misma operación a cada uno de los elementos en un gran conjunto de datos.

Figura  Comparación entre las operaciones tradicionales SISD con las operaciones SIMD)

En una arquitectura SI%D el paralelismo se logra por m<iples unidades de proceso llamadas Elementos de 3rocesamiento 3Es$# cada una de las cuales es capa) de ejecutar una operación especiali)ada autónomamente. 'a arquitectura de los 4rray 3rocessor y de los 3rocesadores 5ectoriales SI%D se caracteri)a por el -e6 c-o de que la misma operación es reali)ada en un momento dado so+re un gran conjunto de datos en todos los 3Es. 'as computadoras SI%D est(n especialmente diseñadas para reali)ar cómputos vecto ectori ria ales les so+r so+re e matr matri6 i6 ces o array rrayss de dato datos. s. 3uede ueden n util utili) i)ar arsse indistintamente los t7rminos 3rocesadores 4rray# 3rocesadores 3aralelos# y computado6 ras SI%D.

Figura 8 'a característica principal de este tipo de arquitecturas es que cuentan con una sola unidad de control# quien es la responsa+le de interpretar y distri+uir  la misma instrucción a todos los procesadores. En caso de que no se desee ejecutar la misma instrucción en todos los procesadores# es posi+le -a+ilitar  sólo los procesadores necesarios por medio de una m(scara. En la Figura 8$ muestra un modelo de arquitectura SI%D de tres procesadores# cada uno operando con su propia memoria local. 9odos los procesadores operan +ajo el control de una sola secuencia de instrucciones emitida por una unidad de control central. Eisten tres flujos de entrada de datos# uno por procesador# los cuales se operan de manera síncrona. En cada paso# todos los procesadores ejecutan la misma instrucción so+re un dato diferente. 'a mayoría de las aplicaciones intere interesan santes tes que que utili) utili)an an este este tipo tipo de comput computado adoras ras requie requieren ren que los procesadores puedan comunicarse comunicarse entre sí con el fin de intercam+iar datos o result resultado adoss interm intermed edios ios.. Esta Esta comuni comunicac cación ión se logra logra por alguno alguno de los siguie siguiente ntess dos dos esque esquemas mas:: median mediante te una memori memoria a com&n com&n arqui arquitec tectur turas as SI%D SI%D a memo memori ria a comp compar artitida da$$ o medi median ante te una una red red de inte interc rcon one eió ión n arquitecturas SI%D a memoria distri+uida$. En las las arqu arquititec ectu tura rass a memo memori ria a comp compar artitida da todo todoss los los proc proces esad ador ores es comparten el mismo espacio de memoria, esto significa que el conocimiento de donde se almacenan los datos no es preocupación para el usuario pues -ay sol solame amente nte una memo memori ria a para tod todos los los proc rocesa esadore doress. En las las arqu arquititec ectu tura rass de memo memoria ria dist distri+ ri+ui uida da cada cada proc proces esad ador or tien tiene e su prop propia ia memoria asociada. 'os procesadores est(n conectados por medio de una red red de inte interc rcon one eió ión n que que les les perm permitite e inte interc rcam am+i +iar ar dato datoss entr entres es sus sus respectivas memorias cuando es necesario. En contraste con las m(quinas de memoria compartida# el usuario de+e estar enterado de la locali)ación de

los datos en las memorias locales y de+er( mover o distri+uir estos datos eplícitamente cuando sea necesario.  4ctualmente# gracias al avance tecnológico# los procesadores poseen unidades que les ;permiten reali)ar operaciones SI%D# esto quiere decir que permiten el procesar cierta de cantidad de datos con una sola instrucción. 'as 9ecnologías %%o?@ de 4%D# 4lti5ec de %otorolaAFreescale son ejemplos de SI%D en procesadores com&nmente utili)ados en computadores personales de escritorio o de uso masivo. En los dispositivos como las c(maras digitales se pueden encontrar procesadores em+e+idos con ;capacidad SI%D: 2lacBFin# SC40/ de 4nalog Devices y todos los derivados de los procesadores 40%# a partir de su versión # son ejemplos de procesadores que poseen unidades SI%D con optimi)aciones para aplicaciones de audio y video en dispositivos de mano. De+ido a la disponi+ilidad de la unidad SI%D los algoritmos tradicionales que puedan +eneficiarse de esta de+en ser reformulados para alcan)ar mayor eficiencia. 'os algoritmos que se utili)an en el procesamiento digital de im(genes son los candidatos inmediatos para la optimi)ación que ofrece esta tecnología# pues estos procesos consisten en la iteración de un mismo conjunto de instrucciones en gran cantidad de data. Dentro de estos algoritmos el filtro %ediano resalta por su importancia en el pre6procesamiento de im(genes.

II.1

Ventajas  Funcionan muy +ien con vectores de datos.  'a eficiencia es óptima cuando se manejan arreglos de datos en ciclos for. Entre las desventajas se encuentran las siguientes:  'as instrucciones de salto y las condicionales no pueden ser ejecutadas en paralelo porque sólo eiste una unidad de control de instrucciones.  El rendimiento decae considera+lemente en las sentencias case en un factor de Ap# donde p es el n&mero de +loques case.  Durante los ciclos ?-ile# los datos en algunos procesadores pueden encontrar la condición de salida del ciclo antes de que ocurra en otros procesadores. En este caso# los procesadores que -ayan completado el ciclo de+en des-a+ilitarse -asta que el resto de los procesadores cumplan con la condición de salida.

II.2

Modelo "n &nico programa controla los procesadores.

    

til en aplicaciones uniformes 3rocesamiento de im(genes. %ultimedia. 4plicaciones num7ricas so+re grillas. Su aplica+ilidad est( limitada por las comunicaciones entre procesadores. %GDE'G SI%D /G%3"94/IH> DE 4'94

3E0FG0%4>/E ! 8J 40K"I9E/9"04S 3404'E'4S   'a topología de interconeión es fija.   'os elementos de procesamiento tienen capacidad de cómputo limitada  +it a L +its$# por lo que se pueden colocar una gran cantidad por c-ip e.g. /%68 con MB 3Es$.  Fueron los primeros multiprocesadores difundidos comercialmente en la d7cada de JL$ Ejemplos comerciales:   

II.3

/ray ótese que en el paso  3EX$ reci+e pero no transmite, en el paso 8 son los 3E$ y 3EX$, en tanto que en el paso = son los 3EM$# 3EN$# 3E$ y 3EX$ los que reci+en solamente. Estos 3Es que no se desea que transmitan son enmascarados durante el paso correspondiente. Durante las operaciones de suma 3E$ permanece in-i+ido en el paso , 3E$ y 3E$ se vuelven inactivos en el paso 8, en tanto que en el paso = los 3E$# 3E$# 3E8$ y 3E=$ son inactivos. 'os 3Es que son enmascarados en cada paso dependen de la operación ruteo de datos o suma aritm7tica$ que se realice.  4un así los patrones de enmascaramiento varían en los diferentes ciclos de la operación. >ótese que las operaciones de ruteo y enmascaramiento pueden ser muc-o m(s complejas cuando la longitud del vector es n Y >. "n array de 3Es es una unidad aritm7tica pasiva esperando ser invocada para las tareas de cómputo paralelo.

III.1.4 Procesadores rra! de estr%ct%ra (it)Plane "na variante de las arquitecturas de procesadores array utili)a una gran cantidad de procesadores de un +it. En las arquitecturas +it6plane los procesadores array se colocan en una grilla mes-$ sim7trica por ej. de M ZM$ y se asocian con m<iples planos de +its en memoria que se corresponden a las dimensiones de la grilla de procesadores ver Fig. N.X$. El procesador n 3n$ situado en la grilla en la posición #y$ opera so+re los +its de memoria u+icados en la posición #y$ en todos los planos de memoria asociados. "sualmente se proveen adem(s operaciones del tipo de copia# enmascarado y operaciones aritm7ticas que operan so+re todos los planos de memoria tanto so+re columnas como so+re filas. El 3rocesador %asivo 3aralelo de 'oral y el 3rocesador 4rray Distri+uido de I/' ejemplifican esta clase de arquitecturas utili)adas muy frecuentemente para aplicaciones de procesamiento de im(genes mapeando piels desde la estructura planar de la memoria. 'a %(quina de /oneión de 9-inBing %ac-ine tiene organi)ada la memoria como N.N= procesadores de un +it en conjuntos de a cuatro procesadores unidos en una topología de -ipercu+o.

III.1.* r+%itect%ra de Procesadores arra! de 'e'oria asociati,a 'as computadoras construidas so+re memorias asociativas constituyen un tipo muy distintivo de m(quinas SI%D que utili)an una lógica de comparación para acceder en paralelo# de acuerdo al contenido# a los datos almacenados. 'as investigaciones so+re la construcción de memorias asociativas comen)aron en los <imos años de la d7cada de los N con el o+jetivo o+vio de lograr recorrer la memoria en paralelo +uscando datos que coincidieran con una clave específica. 'os procesadores de memorias asociativas PmodernosP desarrollados en los X por ej. el /onjunto de Elementos de 3rocesamiento en 3aralelo 63E3E6 de los la+oratorios 2ell$ y las arquitecturas m(s recientes el procesador   4sociativo de 'oral# 4S30G$ -an sido construidos lógicamente orientados a aplicaciones de +ases de datos tales como +&squedas y navegaciones. 'a Fig. N.L muestra las características de las unidades funcionales de un procesador de memoria asociativa. "n controlador de programa un computador serial$ lee y ejecuta las instrucciones invocando a un controlador  array especiali)ado cuando se detectan instrucciones de memoria asociativa.

0egistros especiales -a+ilitan al controlador de programa y a la memoria asociativa para compartir datos. 'a mayoría de los procesadores de memoria asociativa utili)an una organi)ación serial de +its# la cual implica operaciones concurrentes so+re un solo +it6slice para todas las pala+ras en la memoria asociativa. /ada pala+ra de memoria asociativa# que generalmente tiene una gran cantidad de +its por ej. =8XL$ se asocia con registros especiales y una lógica de comparación que funcionalmente constituye un procesador. 3or lo tanto# un procesador asociativo con MJ pala+ras tiene efectivamente MJ elementos de procesamiento. 'a Fig. N.J muestra una comparación orientada a fila para una arquitectura gen7rica de +it6serial. "na parte del registro de comparación contiene el valor que de+e coincidir.

9odos los elementos de procesamiento 3E$ comien)an en una columna específica de la memoria y comparan el contenido de cuatro +its consecutivos en la fila con el contenido del registro# encendiendo un +it en el registro 4 para indicar si la fila equipara o no. En la Fig. N. podemos ver una operación de un G0 lógico reali)ada entre una columna de +its y el vector de +its en el registro 4# siendo el registro 2 el que reci+e el resultado. "n cero en el registro de m(scara indica que la pala+ra asociada no de+e incluirse en esta operación.

III.1.- SSO0I" S  SIS0I"OS 'os procesadores sistólicos son el resultado de los avances en tecnología de semiconductores y en las aplicaciones que requieren un amplio rendimiento.

III.1.-.1

Introd%cci&n a los procesadores Sist&licos

Fue en JXL cuando C. 9. [ung y /. E. 'eiserson introdujeron el t7rmino PsistólicoP y el concepto su+ya6 cente# para resolver pro+lemas de sistemas de propósito específico que de+en +alancear el +and?idt- entre una intensiva cantidad de c(lculos y gran cantidad de requerimientos de EAS. 'os procesadores convencionales est(n muy a menudo limitados por la disparidad del +and?idt- de Entrada y el +and?idt- de Salida# el cual se produce de+ido a que los ítems de datos de+en ser leídos y gra+ados cada ve) que se los referencia. "na ra)ón para elegir el t7rmino PsystolicP como parte de Systolic 4rray puede verse en la analogía con el sistema de circulación -umano# en el cual el cora)ón entrega y reci+e una gran cantidad de sangre como resulta6 do del +om+eo rítmico e ininterrumpido de pequeñas cantidades de ese fluido a trav7s de venas y arterias. En esta analogía el cora)ón corresponde a la fuente y destino de los datos# como si fuera una memoria glo+al, y la red de venas es equivalente al array de procesadores y sus coneiones. 'as arquitecturas Sistólicas array sistólicos$ son multiprocesadores pipelini)ados en los cuales los datos se +om+ean en forma rítmica desde la memoria y a trav7s de la red de procesadores antes de ser devueltos a la memoria ver Fig. N.$. 'a información circula entre los procesadores como en un pipeline# pero sólo los procesadores frontera mantienen comunicación con el eterior.

"n reloj glo+al conjuntamente con mecanismos eplícitos de retardo sincroni)a el flujo de datos a trav7s del pipe que se conforma con los datos o+tenidos de la memoria y los resultados parciales que usa cada procesa6 dor. 'os procesadores modulares unidos mediante una red local y regular  proveen los ladrillos +(sicos para construir una +uena variedad de sistemas de propósito específico. Durante cada intervalo de tiempo estos procesadores ejecutan una secuencia corta e invariante de instrucciones. El t7rmino ParrayP se origina en la similitud de los systolic array con una grilla o red en la cual cada punto corresponde a un procesador y cada -ilo a una coneión entre los procesadores. 5isto como esta estructura los sistólicos son descendientes de las arquitecturas del tipo array# tales como los arrays interactivos# los autómatas celulares y los procesadores array. Si +ien la estructura array caracteri)a las interconeiones en los sistólicos# es el t7rmino PsystolicP el que capta el comportamiento innovador y distintivo de estos sistemas. PSystolicP en este conteto significa que los c(lculos pipeline se reali)an en todas las dimensiones del array y +rindan como resultado un muy alto rendimiento computacional. Son sistemas de cómputos altamente especiali)ados en los que se de+e reali)ar operaciones concurrentes y que se caracteri)an por la gran cantidad y diversidad de procesadores. 'a tecnología apta para esto es la 5'SI Integración en muy alta escala$. De todas maneras eiste un límite tecnológico# inclusive el de la velocidad de la lu). 'uego para conseguir altas velocidades de procesamiento se recurre al uso simult(neo de procesadores. G sea que los algoritmos a utili)ar de+en permitir un alto grado de pipelining y multiprocesamiento. En otras pala+ras# los algoritmos sistólicos administran los c(lculos de manera tal que un ítem de dato no se usa solamente cuando es input sino tam+i7n es reutili)ado movi7ndose a trav7s del pipeline en el array. En estos casos se -acen críticas las redes de interconeión. 'a misma consiste en un conjunto de procesadores interconectados que reali)an operaciones simples. 'a interconeión puede generar vectores# matrices# (r+oles# etc.

Esto resulta en un +alance del anc-o de +anda +and?idt-$ entre el procesamiento y la entradaAsalida# especialmente en pro+lemas de compute6+ound que tienen m(s c(lculos a reali)ar que entradas y salidas. 'a idea como se ve en la Fig. N.$ es que desde la memoria se P+om+eaP la información como desde un cora)ón# y esta fluye de un 3rocesador al siguiente. Esto es adecuado para procesos con muc-o tiempo de c(lculo y donde varias operaciones se reali)an en forma repetida so+re un mismo dato. Este tipo de arquitecturas es la apropiada para resolver pro+lemas de alta repetición y muy específicos# o sea se desarrollan para casos especiales y no se +usca la resolución de pro+lemas en general.

III.1.5 "%estiones de I'ple'entaci&n 3.1.5.1 Siste'as sist&licos de prop&sito $eneral ! espec6#ico En forma típica# un array sistólico puede pensarse como un sistema algorítmicamente especiali)ado en el sentido en que su diseño refleja necesidades de un algoritmo específico. Sin em+argo# sería desea+le diseñar arrays sistólicos capaces de ejecutar  eficientemente m(s de un algo6 ritmo para una o m(s aplicaciones. Eisten dos propuestas posi+les para el diseño de estos sistemas PmultipropósitoP# y eiste un compromiso entre las dos que se encuentra generalmente en muc-as de las implementaciones actuales. "na propuesta consiste en agregar mecanismos de -ard?are para poder  reconfigurar la topología y el patrón de interconeiones del sistólico y poder así# emular los requerimientos de un diseño especiali)ado. "n ejemplo concreto de esto lo constituye la computadora /onfigura+le de 4lto 3aralelismo /onfigura+le Cig-ly 3arallel# /Ci3$# que cuenta con una matri) de s?itc-es programa+le con el propósito de reconfiguraciones. 'a otra propuesta utili)a soft?are para mapear  diferentes algoritmos dentro de una arquitectura fija de array. Esta propuesta necesita de la eistencia de lenguajes de programación capaces de epresar c(lculos en paralelo# así como del desarrollo de traductores# sistemas operativos y ayudas de programación. Estos requerimientos son de aplicación# por ejemplo# en el sistema sistólico O403 desarrollado en la "niversidad de /arnegie %ellon. 3ara cada algoritmo# el diseñador necesita identificar el diseño sistólico eficiente y los mapas y las t7cnicas apropiadas para utili)ar. 'a cuestión de las t7cnicas apropiadas es de gran importancia# ya que la performance final# el costo y la eactitud del diseño dependen de las mismas.

3.1.5.2 7cnicas de Dise8o ! Mapeo 3ara producir un array sistólico a partir de la descripción de un algoritmo# el diseñador necesita una comprensión total del mismo# y estar 

familiari)ado con los principios su+yacentes a cuatro cosas: el c(lculo de tipo sistólico# la aplicación# el algoritmo y la tecnología. Se -an -ec-o progresos en el desarrollo de t7cnicas de diseño sistem(ticas para automati)ar este proceso. 9ípicamente# las especificaciones incluyen el tamaño y la topología del array# las operaciones reali)adas por cada elemento de procesamiento# el orden y la temporalidad de la comunicación de los datos# y los inputs y outputs. De forma limitada# estas t7cnicas pueden tener en cuenta factores tecnológicos y la relación del array sistólico en sí mismo con el resto del sistema. Sin em+argo# no son completas ya que solo pueden utili)arse en el nivel de especificaciones y sólo de una manera indirecta.

3.1.5.3 9ran%laridad 'a operación +(sica reali)ada en cada ciclo por cada elemento de procesamiento en los diferentes arrays sistólicos varía desde una simple operación de +it# -asta una multiplicación y suma a nivel de pala+ra# e incluso -asta la completa ejecución de un programa. 'a elección del grado de refinamiento est( determinado por la aplicación o por la tecnología# o por am+os. /uando se programan arrays sistólicos esta granularidad o grado de refinamiento puede tam+i7n determinarse mediante compromisos entre el grado deseado y el nivel de programa+ilidad.

3.1.5.4 Etensi;ilidad %uc-os arrays sistólicos especiali)ados pueden implementaciones -ard?are de un dado algoritmo.

verse

como

En tal caso# el procesador sistólico puede ejecutar solamente un determinado algoritmo que est( diseñado para un pro+lema de un tamaño específico. Si uno desea ejecutar el mismo algoritmo para un pro+lema de gran tamaño# o +ien de+e construir un array muc-o mayor o de+e particionar el pro+lema. El primer caso es simple de conceptuali)ar y solo requiere que m(s elementos de procesamiento se utilicen para construir una versión etendida del array original. Sin em+argo# en cuanto a implementación se refiere# de+emos recordar  que pueden eistir factores que no afecten la performance en arrays pequeños pero que sí pueden afectarla en sistemas de gran tamaño. Estos factores incluyen la sincroni)ación del reloj# la confia+ilidad# las necesidades de alimentación el7ctrica# las limitaciones en el tamaño del c-ip# y las restricciones de los pin de EAS.

3.1.5.* "on#ia;ilidad

Se pueden utili)ar sencillas leyes de la pro+a+ilidad para demostrar  porqu7 el incrementar el tamaño del array resulta en la disminución de la confia+ilidad a menos que se incorpore redundancia o se disponga de mecanismos tolerantes a fallas. De -ec-o# la confia+ilidad de un array de procesadores es igual a la confia+ilidad de uno de los procesa6 dores elevada a la cantidad de procesadores que contiene el array: / conjunto de m procesadores.$ Q /m de  procesador$ De+ido a que la confia+ilidad de un procesador es un n&mero menor a # la confia+ilidad de todo el array se aproima r(pidamente a cero a medida que el n&mero de procesadores aumenta. "n +uen diseño de estos sistemas tolerantes a fallas tiene como meta la maimi)ación de la confia+ilidad mientras que se minimi)a el correspondiente over-ead. En los arrays sistólicos las soluciones posi+les planteadas incluyen etensiones sencillas de las t7cnicas +ien conocidas utili)adas en las computadoras digitales convencionales. Sin em+argo estas t7cnicas no aprovec-an las características propias de los arrays sistólicos ni de los algoritmos que ellos ejecutan.

3.1.5.- Particiona'iento de $randes pro;le'as /uando es necesario ejecutar pro+lemas de gran tamaño sin construir  arrays sistólicos de gran tamaño# el pro+lema# entonces# de+e ser  particionado de manera tal que el mismo algoritmo pueda utili)arse para resolver el pro+lema m(s pequeño# así un array c-ico y de tamaño fijo puede resolverlo. "na t7cnica consiste en identificar particiones del algoritmo y un orden de ejecución de esas particiones de manera tal que la correctitud se mantenga y el array original puede ejecutar cada partición. El resultado que se o+serva de esta t7cnica es que el array PnavegaP a trav7s del conjunto de los c(lculos del algoritmo en un orden correcto -asta Pcu+rirP todos los c(lculos. Gtra t7cnica trata de replantear el pro+lema a resolver de manera tal que el pro+lema se convierta en un conjunto de pro+lemas m(s pequeños similares al pro+lema original y que puedan resolverse por el array sistólico. %ientras que la segunda t7cnica tiene menos generalidad y es m(s difícil de automati)ar que la primer t7cnica# puede tener mejor performance cuando se la utili)a.

3.1.5.5 (lo+%es de constr%cci&n %ni,ersales

'os arrays sistólicos son m(s +aratos de construir que los otros arrays de+ido a la profusa repetición de un pequeño n&mero de módulos +(sicos y sencillos y de+ido a la alta densidad y eficiencia de sus layouts. El diseño modular de los arrays sistólicos permite que aquellos diseñadores que desean armar r(pida6 mente prototipos puedan valerse de dispositivos comunes off6t-e6s-elf$# tales como microprocesadores# unidades de aritm7tica de punto flotante y c-ips de memoria. Sin em+argo# estas partes no fueron diseñadas para implementaciones de arrays sistólicos y pueden por consiguiente ser inadecuadas para cumplir  los requerimientos del diseño. Esto desem+ocó en el desarrollo de P+loques universales de construcciónP que son c-ips que pueden utili)arse para muc-os arrays sistólicos.  4lgunos c-ips comercialmente disponi+les de este tipo que mere)can esta definición incluyen al 9ransputer I>%GS# al 9I 9%S=8 y 9%S=88# el c-ip de dataflo? >E/ 3D X8L# etc. 'os pro+lemas que implica el uso de +loques de construcción programa+les incluyen el desarrollo de -erramientas de programación de ayuda a los diseñadores y la provisión de un soporte para interconeiones flei+les.

3.1.5.< Inte$raci&n en siste'as eistentes  4 pesar de que los arrays sistólicos proveen una alta performance# su integración dentro de sistemas ya eistentes es no trivial de+ido al amplio +and?idt- de EAS que se produce# so+re todo cuando el pro+lema de+e ser particionado y los datos de entrada de+en ser accedidos repetidamente. 'os pro+lemas adicionales que de+en resolverse en aquellos sistemas que cuentan con gran cantidad de arrays sistólicos incluyen la interconeión con el -ost# el su+sistema de memoria que soporte los array sistólicos# el +ufferi)ado y el acceso a datos para o+tener la distri+ución especial de datos de EAS# y la multipleación y desmultipleación de datos cuando son insuficientes las puertas de EAS.

III.2 Procesadores Vectoriales /onjunto de elementos -ard?are diseñado para procesar vectores# en los procesadores vectoriales -ay poca replicación -ard?are pocas unidades de proceso que sumen$. En su lugar# se apoyan en una especiali)ación mediante pipeline. /aracterísticas: 6 6

3ro+lemas matem(ticos que involucran procesos físicos presentan dificultades computacionales  4erodin(mica# sismología# meteorología o Simulaciones de campo continuo o

 4lta precisión /(lculos repetitivos de punto flotante so+re grandes arrays de n&meros Supercomputadores manejas estos pro+lemas /ientos de millones de flops o %uy costosos \6N millones "SD$ o Gptimi)ados para c(lculo o %ultitarea# IAG >G prioritarios SI en mainframes$ o %ercado limitado o ITD# go+ierno# meteorología o

6 6 6



Inicialmente desarrollados para aplicaciones de supercomputación# -oy en día son importantes en proceso multimedia. Gperaciones de alto nivel que operan so+re arrays de escalares: PvectoresP

III.2.1 Propiedades de los Procesadores Vectoriales 6 6

6 6

Se completa muc-o tra+ajo en una sola instrucción vectorial se a-orran loops$ %enos fetc- de instrucciones o /ada resultado es independiente del anterior  Se pueden ejecutar m<iples operaciones en paralelo o Diseño simple# alta frecuencia de reloj o /ompilador programador$ asegura que no ocurran o dependencias Se reducen saltos y los pro+lemas asociados en el pipeline Instrucciones vectoriales acceden a memoria con un patrón conocido 3refetc- efectivo o Se amorti)a la latencia de memoria con la carga de un gran o n&mero de elementos Se puede eplotar un sistema con gran anc-o de +anda de o memoria >o se requieren cac-es para los datos$ o

III.2.2 Estilo de r+%itect%ras Vectoriales 6 6

3rocesadores vectoriales memoria6memoria 9odas las operaciones vectoriales son de memoria a memoria o 3rocesadores vector6registro 9odas las operaciones vectoriales son entre registros vectoriales o ecepto loadAstore de vectores$ Equivalente vectorial de arquitecturas load6store o %(quinas vectoriales a partir de fin de los Ls o

III.2.3 "o'ponentes de %n Procesador Vectorial •

/3" escalar: registros# datapat-s# lógica de fetc- de instrucciones









0egistros vectoriales 2anco de memoria de largo fijo almacena un &nico vector  o 9ípicamente L6=8 registros vectoriales 6L [+its$ o o  4l menos 8 puertos de lectura y  de escritura o Se pueden ver como elementos de M+# =8+# +# L+ "nidades funcionales vectoriales F"s$ En pipeline# arrancan una operación por ciclo o o 9ípicamente 8 a L F"s: enteros y 3F "nidades vectoriales load6store 'S"s$ En pipeline# loadAstore de vectores o Se leenAescri+en m<iples elementos por ciclo o 3ueden tener m<iples 'S"s o /ross6+ar para interconeión de F"s # 'S"s# registros

III.2.4 ipos de Instr%cciones Vectoriales

III.2.* Operaciones Vectoriales de 'e'oria •



Gperaciones loadAstore mueven grupos de datos entre registros y memoria 9res tipos de direccionamiento "nit stride opera so+re un vector$ o o %(s r(pido o >on6unit stride opera so+re una tira de vectores$ o Indeed gat-er6scatter$ Equivalente vectorial de registro indirecto  4decuado para sparse arrays 3ermiten incrementar el código vectori)a+le Soporte de varias com+inaciones de anc-os de los datos en memoria R.'#.O#.C.#.2  RM+# =8+# +# L+ o   



I5. •





EXTENSIONES SIMD PAA !PP %otivación 2aja performance de procesamiento mmedia en 133s o /osto y poca flei+ilidad de 4SI/s especiali)ados para o gr(ficosAvideo Infrautili)ación de datapat-s y registros o Idea +(sica : su+6?ord parallelism 9ratar un registro de M6+it como un vector de 8=86+it# o M6+it o LL6+it s-ort vectors$ 3artición de datapat-s de M +it para manejar m<iples operaciones angostas en paralelo 0estricciones iniciales >o agregar (rea registros$ o >o agregar ecepciones o

IV.1 e,isi&n de Etensiones SIMD

IV.2 Pro$ra'aci&n con Etensiones SIMD •





S-ared li+raries optimi)adas Escritas en assem+ler# distri+uídas por el fa+ricante o Se necesita 43I +ien definida para formatear datos y usarla o %acros de lenguajes para varia+les y operaciones Orappers /A/TT para varia+les s-ort vector y llamados a o funciones o 3ermiten sc-eduling de instrucciones y optimi)aciones de asignaciones de registros para procesadores específicos >o porta+le# no est(ndar  o /ompiladores para etensiones SI%D o En los -ec-os# no -ay compiladores disponi+les 3ro+lemas o Soporte para epresar aritm7tica de punto fijo y paralelismo SI%D %odelo complicado para loadAstore de vectores  4ctuali)aciones frecuentes  4ssem+ler  

 



". #$NCIONES % AP&ICACIONES V.1

=%nciones SIMD

si'd12 cne$ si'd12 a> si'd12 ;: >iega el componente de a cuando el correspondiente componente de + es negativo. si'd2< cne$ si'd2< a> si'd2< ;: >iega el componente de a cuando el correspondiente componente de + es negativo. si'd12 a;s si'd12:  9oma el valor a+soluto de cada uno de los componentes. si'd2< a;s si'd2 #i @' "ne los componentes l e - en un tipo empaquetado. si'd24 join?si'd24 #i l> #i @ "ne los componentes l e - en un tipo empaquetado. si'd2< join?si'd2< #i l> #i @ "ne los componentes l e - en un tipo empaquetado. acc etract?@i$@ si'd12 Etrae el componente alto +its 8=..8$ y lo alinea con el punto +inario. acc etract?loA si'd12 Etrae el componente +ajo +its ..$ y lo alinea con el punto +inario. acc etract?@i$@ si'd24 Etrae el componente alto +its MX..8M$ y lo alinea con el punto +inario. acc etract?loA si'd24 Etrae el componente +ajo +its 8=..$ y lo alinea con el punto +inario. acc etract?@i$@ si'd2
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF