Instrucciones SIMD que son...

Tema en 'Soft y Hard' comenzado por xXMaNoLoXx, 26/Dic/2009.

  1. xXMaNoLoXx

    xXMaNoLoXx Im back!!!

    Ingreso:
    22/May/2008
    Mensajes:
    230
    Ubicación:
    La Rioja, Argentina... Entre Bulnes y Bolivar...
    Bueno las instrucciones SIMD (Single Instruction Multiple Data o Instrucción Simple Múltiples Datos) operan con más de un dato al mismo tiempo al contrario de las instrucciones SISD (Single Instruction Single Data o Instrucción Simple Dato Simple).

    En la imagen se ve mejor la diferencia.

    [​IMG]

    Por ejemplo, con SISD en una arquitectura x86 (la que usa la PC) una operación suma se realiza en bajo nivel, de la siguiente manera: se toma un numero “a” y un numero “b” se aplica la operación suma entre ellos “a+b” y el resultado se acumula o guarda en “b” quedaría algo así - [b = a+b].

    A que viene esto, es que al realizar la operación tanto “a” como “b” son acumulados en registros internos del procesador.

    Hay que aclarar que todos los procesadores tienen apenas unos pocos registros.

    En cambio con las instrucciones SIMD se opera simultáneamente con varios números, también se usan dos registros y un operando, pero los registros pueden contener dos o mas datos.

    Ejemplo, un primer registro puede contener los números “a” y “c” un segundo registro los números “b” y ”d” a estos registros le aplicamos “suma miembro a miembro” que guarda el resultado en el segundo registro (“b” y “d”), entonces quedaría algo así – [b,d] = [a + b,c + d].

    En palabras mas simples el esquema SISD usa los números simples (valores escalares) mientras que las instrucciones SIMD operan con valores vectoriales.

    Siempre que sea posible la paralelizacion de operaciones, trabajar con instrucciones SIMD nos ofrecerá un mayor rendimiento desde un pequeño porcentaje hasta diez veces la velocidad con SISD.

    Un poco De Historia

    El concepto SIMD fue introducido en la PC con el Intel Pentium MMX (P55C) en el 97 con un juego de 57 instrucciones, las siglas MMX no tienen un significado particular se conoce como “MultiMedia eXtensions”.

    AMD por su parte introdujo sus instrucciones SIMD para la arquitectura x86 con el K6-2 en el 98 y se llamo 3DNow!

    Para cerrar el juego de instrucciones SIMD hacen la vida multimedia mas fácil ya que si no existieran se verían relegados en performance todas las aplicaciones digitales, entre ellas el renderizado 3D, compresión-descompresión de video, procesamientos de imágenes y por ultimo y no menos importante los Juegos que utilizan fundamentalmente las capacidades SIMD de las GPU de las placas de video.

    Glosario

    Registros – Un registro es un espacio interno del procesador para manejar los datos que esta procesando.

    Espero que les guste el post... siempre yo con cosas relacionadas a la compu... si hay algo que no entiendan digan... xq estoy "estudiando" para adelantar temas y me viene biem... _ok
     
    #1
    A 5alv4 le gusta esto.
  2. 5alv4

    5alv4 ※0※0※0※

    Ingreso:
    13/Jun/2006
    Mensajes:
    2.803
    Ubicación:
    0x66726565
    Eso es sacado de la PC User, puede ser??:P

    Yo lo lei en esa revista y tenia el mismo grafico!! jajajaa
     
    #2
  3. xXMaNoLoXx

    xXMaNoLoXx Im back!!!

    Ingreso:
    22/May/2008
    Mensajes:
    230
    Ubicación:
    La Rioja, Argentina... Entre Bulnes y Bolivar...
    al grafico lo encontre en internet la info es parte de la revista power pc y parte de apuntes... si señor chilvao que observador... _ok
     
    #3
  4. 5alv4

    5alv4 ※0※0※0※

    Ingreso:
    13/Jun/2006
    Mensajes:
    2.803
    Ubicación:
    0x66726565
    jajaj habria ke investigar cuales son esas 57 instrucciones!!

    Te dejo repu!! Me copo la onda del articulo!:P
     
    #4
  5. xXMaNoLoXx

    xXMaNoLoXx Im back!!!

    Ingreso:
    22/May/2008
    Mensajes:
    230
    Ubicación:
    La Rioja, Argentina... Entre Bulnes y Bolivar...
    las subo apenas encuentre...

    Ya volvi de chamical... Aca pongo lo que encontre...


    Intel - MMX

    MMX es un Conjunto de instrucciones SIMD diseñado por Intel e introducido en 1997 en sus microprocesadores Pentium MMX. Fue desarrollado a partir de un set introducido en el Intel i860. Ha sido soportado por la mayoría de fabricantes de micros x86 desde entonces.

    Fue presentado como un acrónimo de MultiMedia eXtension o Multiple Math o Matrix Math eXtension, pero oficialmente sólo es un juego de consonantes sin significado, usado con la única intención de poder poner cortapisas legales de marca registrada a los desarrollos de terceros que trataran de usarlo.

    Descripcion

    MMX agregó 8 nuevos registros a la arquitectura, conocidos como MM0 al MM7 (en adelante llamados MMn).

    Cada uno de los registros MMn es un número entero de 64 bits. Sin embargo, uno de los conceptos principales del juego de instrucciones MMX es el concepto del tipo de datos compactados (packed data types), que significa en lugar de usar el registro completo para un solo número entero de 64 bits (palabra cuádruple o quadword), se puede usar para almacenar dos enteros de 32 bits (palabra doble o doubleword), cuatro enteros de 16 bits (palabra o word) u ocho enteros de 8 bits (byte u octeto).

    Para simplificar el diseño y evitar modificar el sistema operativo para preservar el estado adicional a través de los interruptores de contexto, MMX reutiliza los ocho registros existentes de la FPU. Por ello es muy difícil trabajar con la FPU y MMX a la vez. Para maximizar el rendimiento, los programadores deben utilizar el procesador exclusivamente en un modo o el otro, retrasando todo lo posible el lento paso de un modo a otro.

    Funcionamiento

    Uno de los problemas para MMX es que sólo soporta operaciones con números enteros. Cada uno de los ocho registros de 64 bits del vector MMX, alias de los ocho registros existentes de coma flotante, pueden representar 2 números de 32 bits, cuatro de 16 u 8 de 8 bits. Durante el diseño original del i860, el uso de matemáticas de vector entero tenía sentido (las operaciones 2D y 3D requieren de ambas), pero cuando esta funcionalidad se pasa a las GPUs, MMX pierde interés y la coma flotante se vuelve mucho más importante. Por otra parte, sus nuevas operaciones aritméticas incluyen las operaciones aritméticas de saturación, lo que podría acelerar perceptiblemente el procesamiento digital de señales. Por ello mejora el rendimiento de la multimedia.

    Intel solucionó esos problemas más adelante con SSE, un conjunto de instrucciones SIMD más ampliado con soporte de coma flotante de 32 bits y un sistema adicional de vectores de registros de 128 bits que hacen más sencillo usar SIMD y FPU al mismo tiempo. SSE es a su vez ampliado por SSE2, que también extiende las instrucciones MMX que pueden operar con registros XMM de 128 bits y recientemente con SSE3, introducido con la Intel Core Microarchitecture. Incluir cualquiera de estos conjuntos implica incluir MMX.

    Intel y su mayor competidor AMD llegaron a un acuerdo de compatibilidad por el que éste último sacó al mercado microprocesadores con el juego de instrucciones MMX, los procesadores AMD K6. Más tarde AMD daría un paso más, añadiendo a sus procesadores un nuevo juego de instrucciones para operaciones en coma flotante: 3DNow!.

    AMD - 3DNow!

    3DNow! es el nombre que recibe una extensión multimedia diseñada por AMD para sus procesadores, introducida por AMD en febrero de 1998 con sus procesadores K6-2. En términos más técnicos, es un añadido de instrucciones SIMD al tradicional conjunto de instrucciones x86, para obtener más rendimiento en el procesamiento de vectores, es decir, operaciones que son realizadas sobre un vector de datos al mismo tiempo (y no sobre un único dato). Este tipo de operaciones son empleadas frecuentemente por muchas aplicaciones multimedia.

    Fue desarrollado originalmente como una mejora del conjunto de instrucciones MMX de Intel, haciendo que pudiera manejar datos en coma flotante además de enteros. Posteriormente, Intel creó un conjunto de instrucciones (SSE) similares a las 3DNow! de AMD, el cual fue incluido por AMD en sus Athlon XP. SSE es incompatible con 3DNow!

    La extensión 3DNow! consta de 21 instrucciones que soportan operaciones de punto flotante tipo SIMD e incluyen operaciones de enteros SIMD, la prerrecuperación de datos por hardware (conocida en inglés como prefetch) y cambio rápido MMX-punto flotante.


    Fuente Wikipedia

    MMX - Wikipedia, la enciclopedia libre

    3DNow! - Wikipedia, la enciclopedia libre


    Algo es algo chilvao espero encontrar mas info... _ok
     
    #5
    Última modificación: 5/Ene/2010
  6. 5alv4

    5alv4 ※0※0※0※

    Ingreso:
    13/Jun/2006
    Mensajes:
    2.803
    Ubicación:
    0x66726565
    Esta bueno saber este tipo de cosas!!

    Ademas me lo toman a veces en la facu!:P
     
    #6

Compartinos

Cargando...