A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Conjunto de Instruções Multimídia

Apresentações semelhantes


Apresentação em tema: "Conjunto de Instruções Multimídia"— Transcrição da apresentação:

1 Conjunto de Instruções Multimídia
Instituto de Computação Universidade Estadual de Campinas Conjunto de Instruções Multimídia Celso Tetsuo Nagase Suzuki RA Disciplina MO401 Arquitetura de Computadores

2 Conjunto de Instruções Multimídia
Introdução Acelerar a execução de aplicações multimídia. Instruções SIMD. Single Instruction, Multiple Data. Novembro de 2005 Conjunto de Instruções Multimídia

3 Conjunto de Instruções Multimídia
Roteiro Histórico Instruções Multimídia comuns Extensões Multimídia x86 Exemplo Conclusão Novembro de 2005 Conjunto de Instruções Multimídia

4 Conjunto de Instruções Multimídia
Histórico MAX (Multimedia Acceleration eXtensions) PA-RISC 1.1 (HP) – Primeira arquitetura de processadores de uso geral com instruções multimídia, lançado em Janeiro de 1994. Processador de 80MHz toca vídeos MPEG-1 em tempo real (30 frames por segundo), sem hardware adicional. Novembro de 2005 Conjunto de Instruções Multimídia

5 Conjunto de Instruções Multimídia
Histórico VIS (Visual Instruction Set) SPARC (Sun Microsystems) - Linha de processadores UltraSPARC, em 1994. MDMX (MIPS Digital Media eXtensions) Instruções multimídia para a arquitetura MIPS V (SGI), em Outubro de 1996. Novembro de 2005 Conjunto de Instruções Multimídia

6 Conjunto de Instruções Multimídia
Histórico MMX x86 (Intel) – Linha de processadores Pentium MMX, em Outubro de 1996. MVI (Motion Video Instructions) PCA56 (DEC) – Processador 21164PC, lançado em Março de 1997. Novembro de 2005 Conjunto de Instruções Multimídia

7 Conjunto de Instruções Multimídia
Histórico AltiVec PowerPC (Apple-IBM-Motorola) – Extensão multimídia lançada em 1999 com o processador MPC7400 fabricado pela Motorola. ARMv6 Em 2001 a ARM anunciou instruções multimídia incluídas na arquitetura ARMv6. Novembro de 2005 Conjunto de Instruções Multimídia

8 Instruções Multimídia
Dados empacotados Novembro de 2005 Conjunto de Instruções Multimídia

9 Instruções Multimídia
Operações aritméticas Novembro de 2005 Conjunto de Instruções Multimídia

10 Instruções Multimídia
Operações aritméticas Novembro de 2005 Conjunto de Instruções Multimídia

11 Instruções Multimídia
Shift Left Shift Right Novembro de 2005 Conjunto de Instruções Multimídia

12 Instruções Multimídia
Empacotamento de dados Novembro de 2005 Conjunto de Instruções Multimídia

13 Instruções Multimídia
Permutação Novembro de 2005 Conjunto de Instruções Multimídia

14 Instruções Multimídia
Comparação Novembro de 2005 Conjunto de Instruções Multimídia

15 Extensões multimídia x86
MMX (Intel ) 57 instruções. Usa os 8 registradores de ponto flutuante já existentes. Somente operações com números inteiros. 8 Packed Bytes, 4 Packed Words, 2 Packed Doublewords e 1 Packed Quadword. Novembro de 2005 Conjunto de Instruções Multimídia

16 Extensões multimídia x86
3DNow! (AMD ) 21 instruções. Complementa a extensão MMX com operações em números de ponto flutuante de 32 bits. Instrução de prefetch que carrega uma linha do cache L1 com dados do endereço. Novembro de 2005 Conjunto de Instruções Multimídia

17 Extensões multimídia x86
SSE (Streaming SIMD Extensions – Intel – 1999) Corrige algumas limitações da extensão MMX. 8 novos registradores de 128 bits para operações em números de ponto flutuante de 32 bits. Instruções de prefetch e gravação de dados não temporais. Novembro de 2005 Conjunto de Instruções Multimídia

18 Extensões multimídia x86
Enhanced 3DNow! (AMD – 1999) Complementa a extensão 3DNow! com 24 novas instruções. Instruções para gravação de dados não temporais, conversão entre dados inteiros e de ponto flutuante e operações matemáticas. Novembro de 2005 Conjunto de Instruções Multimídia

19 Extensões multimídia x86
SSE2 (Intel – 2001) 144 novas instruções. Suporte a operações com números inteiros nos registradores de 128 bits. 2 números de ponto flutuante de 64 bits empacotados, 16 Packed Bytes, 8 Packed Words, 4 Packed Doublewords, 2 Packed Quadwords. Nos processadores AMD64, o número de registradores de 128 bits foi aumentado para 16 (XMM0 a XMM15). Novembro de 2005 Conjunto de Instruções Multimídia

20 Extensões multimídia x86
3DNow! Professional (AMD) Lançada com a linha de processadores AthlonXP. Enhanced 3DNow! + SSE. Novembro de 2005 Conjunto de Instruções Multimídia

21 Extensões multimídia x86
SSE3 (Intel – 2004) 13 novas instruções. Operações horizontais. Novembro de 2005 Conjunto de Instruções Multimídia

22 Conjunto de Instruções Multimídia
Exemplo Threshold de uma imagem em níveis de cinza. void Threshold(u_int16_t imagein[], u_int16_t imageout[], int npixels, u_int16_t threshold) { int i; for (i = 0; i < npixels; i++) if (imagein[i] > threshold) imageout[i] = 255; else imageout[i] = 0; } Novembro de 2005 Conjunto de Instruções Multimídia

23 Conjunto de Instruções Multimídia
Exemplo Threshold de uma imagem em níveis de cinza. void ThresholdSSE2(u_int16_t imagein[], u_int16_t imageout[], int npixels, u_int16_t thr) { int i; max = 255; xmm0 xmm1 for (i=0; i<npixels; i+=8, imagein+=8, imageout+=8) { asm ("movdqa (%0), %%xmm2 \n" : : "r" (imagein)); asm ("pcmpgtw %xmm0, %xmm2 \n"); asm ("pand %xmm1, %xmm2 \n"); asm ("movntdq %%xmm2, (%0) \n" : : "r" (imageout)); } xmm2 > 120 Novembro de 2005 Conjunto de Instruções Multimídia

24 Conjunto de Instruções Multimídia
Exemplo Threshold de uma imagem em níveis de cinza. Compiladores Intel ICC e GCC S.O. GNU/Linux CPU Pentium 4 3GHz HT Athlon 64 3200+ Athlon XP Sempron Mobile 2800+ ICC C - MPixels/s 464 465 470 368 SSE 1940 (4,2x) 1655 (3,6x) 1592 (3,4x) 725 (2,0x) SSE2 2069 (4,5x) 1650 (3,6x) sem suporte 723 (2,0x) GCC 297 442 396 335 1924 (6,5x) 1654 (3,7x) 1592 (4,0x) 723 (2,2x) 2069 (7,0x) 722 (2,2x) Novembro de 2005 Conjunto de Instruções Multimídia

25 Conjunto de Instruções Multimídia
Conclusão O uso de instruções SIMD é importante para melhorar a velocidade de aplicações multimídia. Compiladores atuais não otimizam trechos críticos com o mesmo desempenho que a codificação direta usando instruções SIMD. Novembro de 2005 Conjunto de Instruções Multimídia


Carregar ppt "Conjunto de Instruções Multimídia"

Apresentações semelhantes


Anúncios Google