Top 10 de los artículos

YouTube
Gmail
Goole
GayRomeo
Números chinos
Números romanos
Orkut
Costco
Sistema porta hepático
El mundo Factbook

News:

SIMD

Taxonomía de Flynn
  Solo
Instrucción
Múltiple
Instrucción
Solo
Datos
SISD MISD
Múltiple
Datos
SIMD MIMD
Esta caja: visión  charla  corrija

En el computar, SIMD (Single Instruction, Multiple Del ata) es una técnica empleada para alcanzar paralelismo del nivel de datos, como en a procesador del vector. Primero hecho popular en los superordenadores en grande (contrarios a MIMD el parallelization), las operaciones smaller-scale de SIMD ha llegado a ser extenso ahora en hardware del ordenador personal. El término se asocia hoy casi enteramente a estas unidades más pequeñas.

Contenido

Historia

La primera era de las máquinas de SIMD fue caracterizada cerca superordenadores como Cray X-MP. Estas máquinas también fueron llamadas los “procesadores del vector.” Estas máquinas funcionaron encendido de largo vectores, por ejemplo agregando dos vectores de 100 números cada uno. Supercomputing se movió lejos del acercamiento de SIMD cuando MIMD los acercamientos llegaron a ser más de gran alcance, y el interés en SIMD disminuyó. Ordenadores más últimos, personales llegaron a ser comunes, y llegaron a ser bastante de gran alcance para apoyar juego en tiempo real. Esto creó una demanda total para un tipo particular de energía que computaba, y los vendedores del microprocesador dieron vuelta a SIMD para resolver la demanda. El primer SIMD ancho-desplegado para el juego era Intel MMX extensiones a x86 arquitectura. IBM y Motorola entonces agregados AltiVec a ENERGÍA la arquitectura, y allí ha sido varias extensiones a los sistemas de instrucción de SIMD para ambas arquitecturas. Todos estos progresos se han orientado hacia la ayuda para los gráficos en tiempo real, y por lo tanto se orientan hacia vectores de dos, tres, o cuatro dimensiones. Cuando las nuevas arquitecturas de SIMD necesitan ser distinguidas las más viejas, las más nuevas arquitecturas entonces se consideran las arquitecturas del “corto-vector”. Un superordenador moderno es casi siempre un racimo de las máquinas de MIMD, que pone (corto-vector) instrucciones de SIMD en ejecución. Una computadora de escritorio moderna es a menudo una máquina del multiprocesador MIMD donde cada procesador puede ejecutar instrucciones del corto-vector SIMD.

DSPs

Una clase separada de procesadores existe para esta clase de tarea, referida comúnmente como Procesadores de la señal numérica, o DSPs. La diferencia principal entre DSP y otras CPU SIMD-capaces es que el DSPs es procesadores autónomos con sus el propios (a menudo difícil de utilizar) sistema de instrucción, mientras que las SIMD-extensiones confían en las porciones de uso general de CPU para manejar los detalles del programa, y las instrucciones de SIMD maneje la manipulación de datos solamente. DSPs también tiende para incluir instrucciones de manejar tipos específicos de datos, de sonido o de vídeo por ejemplo, mientras que los sistemas de SIMD están considerablemente de un propósito más genérico. DSPs funciona generalmente adentro ESPOLÓN de cuadernillo de apuntes son conducidos por las transferencias del acceso directo de memoria iniciadas del sistema huesped y tener acceso a memoria externa. Algunos DSP incluyen sistemas de instrucción de SIMD. La inclusión de los procesadores del propósito de las unidades de SIMD en general ha suplantado el uso de las virutas de DSP en sistemas informáticos, aunque continúan siendo utilizados en usos encajados. Una escala que resbala existe - el Ageia de la célula el SPUs y Unidad de proceso de la física podría ser considerado intermedio entre las CPU y DSPs, en que están optimizados para las tareas numéricas y funcionan en almacén local, pero pueden autónomo controlar sus propias transferencias son así en efecto CPU verdaderas.

Ventajas

Un uso que puede aprovecharse de SIMD es uno donde el mismo valor se está agregando (o se está restando) a una gran cantidad de puntos de referencias, una operación común en muchos multimedias usos. Un ejemplo estaría cambiando el brillo de una imagen. Cada uno pixel de una imagen consiste en tres valores para el brillo de las porciones rojas, verdes y azules del color. Para cambiar el brillo, los valores de R G y de B se leen en memoria, un valor se agrega (o se resta) de ellos, y se escriben los valores que resultan se retiran a la memoria.

Con un procesador de SIMD hay dos mejoras a este proceso. Para uno los datos se entienden para estar en bloques, y un número de valores se pueden cargar de una vez. En vez de una serie de instrucciones que dicen “consiga este pixel, ahora consiguen el pixel siguiente”, un procesador de SIMD tendrá una sola instrucción que diga con eficacia que “consiga las porciones de pixeles” (las “porciones” son un número que varía de diseño al diseño). Para una variedad de razones, esto puede tomar mucho menos tiempo que “consiguiendo” cada pixel individualmente, como con diseño tradicional de la CPU.

Otra ventaja es que los sistemas de SIMD incluyen típicamente solamente esas instrucciones que se puedan aplicar a todos los datos en una operación. Es decir si el sistema de SIMD trabaja cargando encima de ocho puntos de referencias inmediatamente, agregue la operación que es aplicada a los datos sucederá a los ocho valores al mismo tiempo. Aunque igual es verdad para cualesquiera superscalar el diseño del procesador, el nivel del paralelismo en un sistema de SIMD es típicamente mucho más alto.

Desventajas

  • Consideraciones del diseño fuera de su control obstaculizan a muchos diseñadores de SIMD. Una de estas consideraciones es el coste de adición registros para llevar a cabo los datos que se procesarán. Uno quisiera idealmente que las unidades de SIMD de una CPU tuvieran sus propios registros, pero muchos son forzados por razones prácticas de reutilizar los registros existentes de la CPU, típicamente los registros de la coma flotante. Éstos tienden para ser 64 pedacitos largos, más pequeño que óptimos para el uso de SIMD, y conducen a los problemas si el código procuran utilizar SIMD e instrucciones normales de la coma flotante al mismo tiempo - en qué punto luchan las unidades sobre los registros. Tal sistema fue utilizado en Intel primero procura en SIMD, MMX, y los problemas de funcionamiento eran tales que el sistema consideró muy poco uso. Sin embargo, reciente x86 diseños del procesador de Intel y AMD (en el día noviembre de 2006, o varios meses anteriores) han eliminado los problemas de SIMD compartido y los registros floating-point de la matemáticas, proporcionando un banco nuevo, separado de SIMD se colocan.
  • Embalar y el desempaque de los registros de los datos to/from SIMD pueden ser desperdiciadores de tiempo en algunos usos, reduciendo la eficacia ganada. Si cada dato (opinión, un valor de 8 pedacitos) necesita ser recopilado/ser dispersado por separado más bien que cargando un registro entero en una operación, es recomendable reorganizar los datos si es posible, o considere el no usar de SIMD en todos.
  • Recientemente ha habido sin embargo una ráfaga de las actividades de la investigación en las técnicas para la compilación eficiente para SIMD, mucho permanece ser hecho. Para esa materia, el estado plus ultra para SIMD, de una perspectiva del recopilador, es apenas comparable a ése para proceso del vector.
  • Debido a la manera que SIMD trabaja, los datos en los registros debe bien-ser alineado. Incluso para la corriente simple que procesa como la circunvolución esto puede ser una tarea desafiadora.
  • No todo el vectorization del juego de los algoritmos.

Cronología

El primer uso de las instrucciones de SIMD estaba adentro superordenadores del vector de los años 70 tempranos tales como CDC Star-100 y Texas Instruments ASC. El proceso del vector fue popularizado especialmente cerca Cray en los años 70 y los años 80.

Máquinas más últimas utilizaron un número mucho más grande de procesadores relativamente simples en a proceso masivo paralelo- configuración del estilo. Algunos ejemplos de este tipo de máquina incluyeron:

Había muchos otros a partir de esa era también.

Hardware

(64 o 128 pedacitos) SIMD en reducida escala ha llegado a ser popular en las CPU de uso general, comenzando en 1989 con la introducción del Digital Equipment Corporation VAX Instrucciones del vector en el sistema de Rigel[1], y continuando a través 1997 y más adelante con las instrucciones video del movimiento (MVI) para Alfa. Las instrucciones de SIMD se pueden encontrar, a un grado o a otro, en la mayoría de las CPU, incluyendo IBM's AltiVec y SPE para PowerPC, CABALLOS DE FUERZA's PA-RISC Extensiones de la aceleración de las multimedias (Máximo), Intel's MMX e iwMMXt, SSE, SSE2, SSE3 y SSSE3, AMD's ¡3DNow!, ARCO'subsistema video del ARCO de s, SPARC's VIS, Sol's MAJC, BRAZO's NEÓN tecnología, MIPS' MDMX (MaDMaX) y MIPS-3D. IBM, Sony, Toshiba co-desarrollado Procesador de la célula'el sistema de instrucción del SPU de s es pesadamente SIMD basado.

Los sistemas de instrucción incluyen generalmente un sistema completo de instrucciones del vector, incluyendo multipliqúese, invierta y remonte. Éstos son particularmente útiles para procesar los gráficos 3D, aunque son modernos tarjetas de los gráficos con SIMD encajado han asumido el control en gran parte esta tarea de la CPU. Algunos sistemas también incluyen permutan las funciones que reembalan elementos dentro de los vectores, haciéndolos particularmente útiles para la informática y la compresión.

Moderno Unidades de proceso de los gráficos están a menudo las puestas en práctica muy amplias de SIMD, capaces de ramas, de cargas, y de almacenes en 128 o 256 pedacitos a la vez.

Software

Adopción de los sistemas de SIMD adentro ordenador personal el software ha sido lento, debido a un número de problemas. Uno era que muchos de los sistemas de instrucción tempranos de SIMD tendieron para retardar el funcionamiento total del sistema debido a la reutilización de los registros existentes de la coma flotante. Otros sistemas, como MMX y ¡3DNow!, ofrecido la ayuda para los tipos de datos que no eran interesantes a una audiencia ancha y tenían instrucciones costosas de la conmutación de contexto de cambiar entre usar FPU y MMX registros. Los recopiladores también carecieron a menudo la ayuda que requería a programadores recurrir a lenguaje ensamblador codificación.

SIMD encendido x86 ha tenido un comienzo lento. La introducción de ¡3DNow! por AMD y SSE por Intel las materias confusas algo, pero el sistema se parece hoy haber colocado abajo (después de AMD que adopta SSE) y recopiladores más nuevos deben dar lugar a más software SIMD-permitido. Intel y AMD ahora ambos proporcionan las librer'ias matemáticas optimizadas que utilizan instrucciones de SIMD, y los alternativas abiertos de la fuente como el libSIMD y SIMDx86 han comenzado a aparecer.

Computadora de Apple tenía algo más éxito, aun cuando ellos incorporó el mercado de SIMD más adelante que el resto. AltiVec ofreció un sistema rico y puede ser programado usando recopiladores cada vez más sofisticados de Motorola, IBM y GNU, por lo tanto la programación del lenguaje ensamblador se necesita raramente. Además, muchos de los sistemas que beneficiarían de SIMD fueron proveídos por Apple sí mismo, por ejemplo iTunes y QuickTime. Sin embargo, adentro 2006, Las computadoras de Apple se movieron a los procesadores de Intel x86. Apple APIs y herramientas de desarrollo (XCode) fueron reescritos para utilizar SSE2 y SSE3 en vez de AltiVec. Apple era el comprador dominante de las virutas de PowerPC de IBM y Semiconductor de Freescale, y aunque abandonaron la plataforma que el desarrollo adicional de AltiVec se continúa en varios Arquitectura de la energía diseños de Freescale, IBM y P.A. Semi.

SIMD dentro de un registro, o SWAR, es una gama de las técnicas y de los trucos usados para SIMD de ejecución en registros de uso general en el hardware que no proporciona ninguna ayuda directa para las instrucciones de SIMD. Esto se puede utilizar para explotar paralelismo en ciertos algoritmos incluso en el hardware que no apoya SIMD directamente.

Usos comerciales

Aunque ha probado generalmente difícil de encontrar los usos comerciales sostenibles para los procesadores de SIMD, uno que ha tenido cierta medida de éxito es GAPP, que fue desarrollada cerca Lockheed Martin y llevado el sector comercial por su Teranex spin-off. Las encarnaciones recientes Del GAPP se han convertido en una herramienta de gran alcance en tiempo real proceso video los usos tienen gusto de la conversión entre los varios estándares y tarifas video del marco (NTSC to/from Amigacho, NTSC to/from HDTV formatos, etc.), el deinterlacing, reducción del nivel de ruidos de la imagen, adaptante compresión video, y realce de la imagen.

Un uso más ubicuo para SIMD se encuentra adentro juegos video: casi cada moderno consola video del juego desde entonces 1998 ha incorporado un procesador de SIMD en alguna parte en su arquitectura. Sony PlayStation 2 era inusual en que su vector-flote las unidades podría funcionar como DSPs autónomo que ejecuta sus propias corrientes de la instrucción, o como los coprocessors conducidos por instrucciones ordinarias de la CPU. los usos de los gráficos 3D tienden para prestarse bien a SIMD que procesa mientras que confían pesadamente en operaciones con 4 vectores dimensionales. Microsoft Direct3D 9.0 ahora elige en las puestas en práctica procesador-específicas runtime de sus propias operaciones de la matemáticas, incluyendo el uso de instrucciones SIMD-capaces.

Uno de los procesadores muy recientes para utilizar el proceso del vector es Procesador de la célula convertido cerca IBM en cooperación con Toshiba y Sony. Utiliza un número de procesadores de SIMD (cada uno con independiente ESPOLÓN y controlado por una CPU de los fines generales) y se engrana hacia los datasets enormes requeridos por 3D y el vídeo que procesa usos.

Los procesadores comerciales de una escala más grande SIMD están disponibles de de Tecnología de ClearSpeed, inc. y Procesadores de la corriente, inc.. ClearSpeed CSX600 (2004) tiene 96 corazones de la coma flotante. Los procesadores de la corriente son dirigidos por el arquitecto de la computadora La cuenta Dally. Su procesador Storm-1 (2007) contiene 80 corazones de SIMD controlados por una CPU de las MIPS.

Referencias

  1. ^ DEC Rigel

Acoplamientos externos

The original article is from Wikipedia. To view the original article please click here.
Creative Commons Licence