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

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

Conjunto de Instruções Multimídia Instituto de Computação Universidade Estadual de Campinas Celso Tetsuo Nagase Suzuki RA 004859

Apresentações semelhantes


Apresentação em tema: "Conjunto de Instruções Multimídia Instituto de Computação Universidade Estadual de Campinas Celso Tetsuo Nagase Suzuki RA 004859"— Transcrição da apresentação:

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

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

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

4 Conjunto de Instruções Multimídia4 Novembro de 2005 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 Processador de 80MHz toca vídeos MPEG-1 em tempo real (30 frames por segundo), sem hardware adicional.

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

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

7 Conjunto de Instruções Multimídia7 Novembro de 2005 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.

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

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

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

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

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

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

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

15 Conjunto de Instruções Multimídia15 Novembro de 2005 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.

16 Conjunto de Instruções Multimídia16 Novembro de 2005 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.

17 Conjunto de Instruções Multimídia17 Novembro de 2005 Extensões multimídia x86 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. SSE (Streaming SIMD Extensions – Intel – 1999)

18 Conjunto de Instruções Multimídia18 Novembro de 2005 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.

19 Conjunto de Instruções Multimídia19 Novembro de 2005 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).

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

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

22 Conjunto de Instruções Multimídia22 Novembro de 2005 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; }

23 Conjunto de Instruções Multimídia23 Novembro de 2005 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 120

24 Conjunto de Instruções Multimídia24 Novembro de 2005 Exemplo Threshold de uma imagem em níveis de cinza. Compiladores Intel ICC e GCC S.O. GNU/Linux CPUPentium 4 3GHz HT Athlon Athlon XP Sempron Mobile ICC C - MPixels/s SSE1940 (4,2x)1655 (3,6x)1592 (3,4x)725 (2,0x) SSE22069 (4,5x)1650 (3,6x)sem suporte723 (2,0x) GCC C - MPixels/s SSE1924 (6,5x)1654 (3,7x)1592 (4,0x)723 (2,2x) SSE22069 (7,0x)1654 (3,7x)sem suporte722 (2,2x)

25 Conjunto de Instruções Multimídia25 Novembro de 2005 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.


Carregar ppt "Conjunto de Instruções Multimídia Instituto de Computação Universidade Estadual de Campinas Celso Tetsuo Nagase Suzuki RA 004859"

Apresentações semelhantes


Anúncios Google