Conjunto de Instruções Multimídia

Slides:



Advertisements
Apresentações semelhantes
Conjunto de Instruções MIPS
Advertisements

HARDWARE.
Arquiteturas de Barramento
Processadores AMD.
Arquitetura de Computadores
M I B INTRODUÇÃO Microprocessadores
Tipos de Microcomputadores
Software Básico Silvio Fernandes
Exemplo de arquitetura registrador-registrador- MIPS
MIPS MULTICICLO Fluxo de Dados e Controle
Arquitetura de Sistemas Operacionais
MC542 Organização de Computadores Teoria e Prática
Intel Pentium 4 Giovanni Rizzo de Paiva - RA Matheus Tasso Perugini - RA Rafael Rodrigues Dias - RA MC722 - Projeto de Sistemas Computacionais.
O Microprocessador SuperH
Processadores risc: sparc – powerpc – arm - mips.
Processador Intel Itanium
Arquitetura AMD 64 Família de 64 bits da AMD Trabalho feito por :
Extensões Multimídia Alunos: Daniel Machado de Faria – RA015783
Processador Pentium 4 MO401 – Arquitetura de Computadores I
Multicores - Processadores Multinúcleos – Uma Visão Geral
Paralelismo em nível de instrução: Arquiteturas VLIW Grupo 01: Júlia Martinez Perdigueiro ra Tatiane Baggio Borili ra
Técnicas de Predição de Desvios
Arquiteturas Diferentes
CISC e RISC.
História dos Computadores
Processador s processadores (ou CPUs, de Central Processing Unit) são chips responsáveis pela execução de cálculos, decisões lógicas e instruções que.
Altera NIOS II: uma breve introdução
SSC144 Arquitetura de Computadores Introdução
SSC114 Arquitetura de Computadores Histórico da AMD
SSC144 Arquitetura de Computadores Evolução Arquitetura von Neumann (parte I) Aula 2 11/08/10 Profa. Sarita.
Maria Aparecida Castro Livi
Estudo da aplicação “jogos” em sistemas embarcados
Estudo comparativo entre as arquiteturas Opteron e Itanium
Desempenho de Aplicativos em Computadores 32/64 bits
Sistemas Digitais Microprocessados
REPRESENTAÇÃO DE INSTRUÇÕES
Arquitetura de Computadores I
Fundação Educacional de Barretos Faculdade de Engenhariarmação
Manutenção - Processadores
Processadores.
Programação em Assembly SIMD
Processamento Vectorial: Single Instruction Multiple Data
MANUTENÇÃO DE MICRO I A família de CPU X86 E os primeiros PCs
MANUTENÇÃO DE MICRO.
Prof. João Paulo de Toledo Gomes
Afonso Ferreira Miguel
Arquitetura de Computadores
Processadores 1971 até 1981 Em 1971, a Intel lançou seu primeiro processador. O Intel 4004 era usado apenas em calculadoras e tinha capacidade de processamento.
CUDA vs OpenCL Introdução.
Curso: Curso Profissional – TGPSIMódulo 4 Arquitectura de Computadores Turma: 11ºC Elementos do grupo: Eugeniu Deliu Nº492;Pedro Teixeira Nº602; Ricardo.
VII Semana de Iniciação Científica do CBPF
Processzor történelem Az Intel és AMD processzorai.
Aveiro, 28 de Abril de Arquitectura de Computadores II Ano lectivo 2003/2004 Nuno
Organização e Arquitetura de Computadores
Arquiteturas RISC x CISC
IMM Instalação e Manutenção de Microcomputadores
DSC/CEEI/UFCG Hardware (Parte I) Introdução à Informática.
Microprocesadores x Microcontroladores
Trabalho realizado por:
Arquitetura de Sistemas Embarcados
MICROPROCESSADOR AMD TURION 64 E TURION 64 X2. GRUPO  Alexandre Garcia  Celio Ribeiro  Marco Alves.
Arquitetura de Computadores
Slides before 1st Section Divider
MO401 – Trabalho 2 Fábio Augusto Menocci Cappabianco RA:991724
Processadores.
A CPU E SUA EVOLUÇÃO.
Arquitetura do ARM RISC (Reduced Instruction Set Computer) – Conjunto relativamente grande de registradores – Modelo “load/store “de processamento Operações.
 Evolução constante das linguagens de programação de alto nível (LAN) desde o Fortran (primeira LAN)  Surgimento de novos paradigmas como a OO, Orientação.
Benchmarks: Dhrystone e Whetstone Matheus F. Stigger.
Introdução a Ciência da Computação Aula 05 Prof. Francisco G. Rodrigues.
Transcrição da apresentação:

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 004859 celso.suzuki@ic.unicamp.br Disciplina MO401 Arquitetura de Computadores

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

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

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

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

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

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

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

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

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

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

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

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

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

Extensões multimídia x86 MMX (Intel - 1996) 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

Extensões multimídia x86 3DNow! (AMD - 1998) 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

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

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

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

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

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

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

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

Conjunto de Instruções Multimídia Exemplo Threshold de uma imagem em níveis de cinza. Compiladores Intel ICC 9.0.021 e GCC 3.4.4. 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

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