• Nenhum resultado encontrado

MMX - MULTI MEDIA (MATRIX MATH?) EXTENSIONS

N/A
N/A
Protected

Academic year: 2021

Share "MMX - MULTI MEDIA (MATRIX MATH?) EXTENSIONS"

Copied!
10
0
0

Texto

(1)

Junho de 2014

Arq. e Org. de Comp. - Prof. Gortan - 9. Aula - MMX

1

MMX - MULTI MEDIA (MATRIX MATH ?) EXTENSIONS

MODELO SIMD - SINGLE INSTRUCTION MULTIPLE DATA MODEL

HISTÓRICO:

1993 - SURGE O PENTIUM E A SEGUIR O PENTIUM MMX

1995 - PENTIUM PRO - INAUGUROU FAMÍLIA P6 - NÃO SUPORTAVA INSTRUÇÕES MMX

PENTIUM II, PENTIUM II XEON E CELERON - SUPORTAVAM INSTRUÇÕES MMX

1999 - PENTIUM III E PENTIUM III XEON - SUPORTAVA SSE (128 bits FP) e MMX

SSE = STREAMING SIMD EXTENSIONS

2000 - PENTIUM IV - SUPORTA SSE2 (128 bits FP e INT), SEE e MMX

2005 - PENTIUM EXTREME EDITION- SUPORTA SSE3, SSE2, SSE e MMX

2007 - PENTIUM CORE MICROARCHITECTURE - SUPORTA SSE4, SSE3, SSE2, SSE e MMX

2008 - INTEL CORE i7 - SUPORTA SSE4.2/4.1 SSE4, SSSE3, SSE3, SSE2, SSE e MMX

2011 - INTEL CORE 2ND GENERATION - SUPORTA ADICIONALMENTE AVX, AVX2 (256 bits)

AVX = ADVANCED VECTOR EXTENSIONS

SRC1 (DST)

O MODELO SIMD

MODELO SIMD - SINGLE INSTRUCTION MULTIPLE DATA MODEL

UMA ÚNICA INSTRUÇÃO OPERA SOBRE VÁRIOS OPERANDOS SIMULTÂNEAMENTE

FILOSOFIA: OP DST, SRC

1 x 64 BITS OU 2 x 32 BITS OU 4 x 16 BITS OU 8 x 8 BITS

SRC2

DST

OP OP OP

(2)

Junho de 2014

Arq. e Org. de Comp. - Prof. Gortan - 9. Aula - MMX

3

DST

0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1111 1000 0000 0000 0000 SRC1

(DST)

O MODELO SIMD - EXEMPLO - PADDW

INSTRUÇÃO PADDW - PACKED ADD WORDS (4 x 16 BITS)

CADA SOMA É INDEPENDENTE DA OUTRA - NÃO HÁ CARRY OUT ENTRE SOMAS

FILOSOFIA: OP DST, SRC

1 x 64 BITS OU 2 x 32 BITS OU 4 x 16 BITS OU 8 x 8 BITS

1010 1010 1010 1010 0000 0000 0000 0000 0000 0000 0000 0001 0000 0000 0000 0001 SRC2 1010 1010 1010 1010 1111 1111 1111 1111 0000 0000 0000 0000 1000 0000 0000 0001 OP OP OP OP

NOVIDADES DA ARQUITETURA MMX

COM A ARQUITETURA MMX FORAM INTRODUZIDOS:

8 NOVOS REGISTRADORES DE 64 BITS: MM0 A MM7

3 NOVOS TIPOS DE DADOS “EMPACOTADOS” (PACKED):

A) 64 BITS EMPACOTADOS EM 8 BYTES

B) 64 BITS EMPACOTADOS EM 4 WORDS

B) 64 BITS EMPACOTADOS EM 2 DWORDS

INTEIROS DE 64 BITS (QWORDS)

47 NOVAS INSTRUÇÕES QUE SUPORTAM OS NOVOS TIPOS DE DADOS

(3)

Junho de 2014

Arq. e Org. de Comp. - Prof. Gortan - 9. Aula - MMX

5

ARITMÉTICA COM E SEM SATURAÇÃO

COM INSTRUÇÕES MMX HÁ TRÊS POSSIBILIDADES:

A) WRAPAROUND ARITHMETIC:

B) SIGNED SATURATION ARITHMETIC

C) UNSIGNED SATURATION ARITHMETIC

CONVENCIONAL, COMO NOS REGISTRADORES DE USO GERAL, PORÉM SEM SETAR OS FLAGS

EXEMPLOS:

C) UNSIGNED SATURATION FOR BYTES:

0xFE + 2 = 0xFF

0x02 - 3 = 0x00

B) SIGNED SATURATION FOR BYTES:

0x7E + 2 = 0x7F 0x82 - 3 = 0x80

REGISTRADORES MMX

REGISTRADORES DA FPU: REGISTRADORES MMX: S EXP J FRAÇÃO 62 0 78 64 63 79 S EXP J FRAÇÃO S EXP J FRAÇÃO S EXP J FRAÇÃO S EXP J FRAÇÃO S EXP J FRAÇÃO S EXP J FRAÇÃO S EXP J FRAÇÃO R7 R6 R5 R4 R3 R2 R1 R0 63 0 MM7 MM6 MM5 MM4 MM3 MM2

(4)

Junho de 2014

Arq. e Org. de Comp. - Prof. Gortan - 9. Aula - MMX

7

TIPOS DE INSTRUÇÕES SUPORTADAS EM MMX

ARITMÉTICAS: COMPARAÇÃO: EMPACOTAMENTO: LÓGICAS: DESLOCAMENTO: INICIALIZAÇÃO:

SOMA, SUBTRAÇÃO, MULTIPLICAÇÃO, MAC (NÃO HÁ DIVIS)

IGUAL, MAIOR -NÃO SETA FLAGS, SETA MÁSCARA NO DST.

PAND, PANDN, POR, PXOR.

LÓGICO E ARITMÉTICO (NÃO SUPORTA DIVISÕES).

EMMS - EMPTY MMX STATE

WORD TO BYTE - SATURADO COM E SEM SINAL, DWORD TO WORD - SATURADO COM SINAL

DESEMPACOTA PARTE ALTA E BAIXA SEPARADAMENTE. TRANSFERÊNCIA DE DADOS: MOVD, MOVQ

INSTRUÇÕES DE EMPACOTAMENTO

O EMPACOTAMENTO REDUZ A LARGURA EM BITS DO OPERANDOS À METADE.

CASO A NOVA LARGURA SEJA INSUFICIENTE OCORRERÁ SATURAÇÃO.

A) EMPACOTAMENTO DE DWORDS PARA WORDS (SOMENTE SIGNED SATURATION):

DW D DW C SRC MM / M64 DW B DW A DST MM W D DST MM W C W B W A

B) EMPACOTAMENTO DE WORDS PARA BYTES (SIGNED OU UNSIGNED):

W D DST MM W C W B W A W H SRC MM / M64 W G W F W E DST MM

(5)

Junho de 2014

Arq. e Org. de Comp. - Prof. Gortan - 9. Aula - MMX

9

INSTRUÇÕES DE DSEMPACOTAMENTO

O DSEMPACOTAMENTO DUPLICA A LARGURA EM BITS DOS OPERANDOS.

A METADE INFERIOR É PREENCHIDA COM O DESTINO E A SUPERIOR COM A ORIGEM.

PREENCHENDO-SE A ORIGEM COM ZEROS PODE-SE ESTENDER BYTES PARA WORDS, WORDS PARA DWORDS E DWORDS PARA QWORDS

WF | WB WE | WA DST MM W D DST MM W C W B W A EXEMPLO PUNPCKLWD DST, SRC: W H SRC MM / M64 W G W F W E

A PARTE ALTA DA ORIGEM E DESTINO É DESCARTADA.

PREENCHENDO-SE SRC COM ZEROS PODE-SE ESTENDER WA E WB PARA DWORDS

D C B A

DST

MULTIPLICAÇÃO EM MMX

O RESULTADO DA MULTIPLICAÇÃO OCUPA O DOBRO DA LARGURA EM BITS DOS OPERANDOS

EM MMX HÁ INSTRUÇÕES QUE PRESERVAM SOMENTE A PARTE ALTA OU SOMENTE A PARTE BAIXA DO RESULTADO DA MULTIPLICAÇÃO

PMULHW DST, SRC - PRESERVA SOMENTE PARTE ALTA

H G F E

SRC

HIGH( D x H ) HIGH( C x G ) HIGH( B x F ) HIGH( A x E ) DST

PMULLW DST, SRC - PRESERVA SOMENTE PARTE BAIXA

(6)

Junho de 2014

Arq. e Org. de Comp. - Prof. Gortan - 9. Aula - MMX

11

D C B A

DST

MULTIPLY AND ACCUMULATE (MAC)

INSTRUÇÕES DE MULTIPLICAÇÃO E SOMA SÃO ÚTEIS EM PROCESSAMENTO DE SINAIS.

COM MMX É POSSÍVEL MULTIPLICAR 4 WORDS ENTRE SI E ACUMULAR O RESULTADO EM DUAS DWORD NO DESTINO - INTRUÇÃO PMADDWD DST,SRC

H G F E

SRC

C x G + D x H A x E + B x F DST

PMADDWD DST, SRC:

COMPATIBILIDADE COM A FPU - INSTRUÇÃO EMMS

COMO VIMOS, MMX E A FPU UTILIZAM OS MESMOS REGISTRADORES DE HARDWARE

QUALQUER INSTRUÇÃO MMX (EXCETO EMMS) SETA TODOS OS TAGS DOS 8 REGISTRADORES DA FPU COMO VÁLIDOS (TODOS OS BITS = 00)

SE, APÕS A EXECUÇÃO DE UMA INSTRUÇÃO MMX, UMA OUTRA ROTINA QUISER EXECUTAR UMA INSTRUÇÃO DA FPU E TENTAR CARREGAR UM VALOR PARA UM DOS REGISTRADORES, GERARÁ UMA EXCEÇÃO DE PILHA CHEIA.

POR ESSE MOTIVO DEVE-SE EXECUTAR SEMPRE A INSTRUÇÃO EMMS AO TERMINAR O USO DA UNIDADE MMX.

A INSTRUÇÃO EMMS SETA TODOS OS TAGS DA FPU COMO VAZIOS (TODOS OS BITS = 11).

O SALVAMENTO E RESTAURAÇÃO DE CONTEXTO DA UNIDADE MMX É FEITO COM AS MESMAS INSTRUÇÕES UTILIZADAS PARA A FPU (POIS O HW É O MESMO) - FSAVE, FRSTOR, FSTENV E FLDENV.

INSTRUÇÕES MMX NÃO GERAM EXCEÇÕES NUMÉRICAS.

(7)

Junho de 2014

Arq. e Org. de Comp. - Prof. Gortan - 9. Aula - MMX

13

EXEMPLO DE APLICAÇÃO - PROCESSAMENTO DE IMAGEM

IMAGEM DA GAROTA DO TEMPO EM FRENTE AO MAPA GEOGRÁFICO

TEMOS DUAS IMAGENS, CONSISTINDO DE UMA SÉRIE DE VETORES COM PIXELS CADA PIXELS É REPRESENTADO POR 16 BITS

VETOR X - ARMAZENA A IMAGEM DA GAROTA EM FRENTE A UM FUNDO AZUL VETOR Y - ARMAZENA A IMAGEM DO MAPA GEOGRÁFICO.

OBJETIVO:

GERAR A IMAGEM COMPOSTA PELOS DOIS VETORES, SUBSTITUINDO TODOS OS PIXELS AZUIS DE X PELOS CORRESPONDENTES PIXELS DO MAPA Y.

cmp x[i],BLUE ; pixel x[i] é azul?

jne next_pixel ; não, vamos processar o próximo

mov x[i],y[i] ; sim, substituímos x[i] por y[i]

SOLUÇÃO SEM MMX:

EXEMPLO DE APLICAÇÃO - PROCESSAMENTO DE IMAGEM

SOLUÇÃO COM MMX: PODEMOS PROCESSAR 4 PIXELS POR VEZ (64 BITS)

A MATRIZ AGORA É INDEXADA DE 4 EM 4 PIXELS - PROCESSAMENTO 4 x MAIS RÁPIDO

movq mm0,x[i] ; carrega 4 pixels de uma vez

pcmpeqw mm0,BLUE ; cte BLUE contém 4 pixels azuis

pandn mm0,x[i] ; zera os azuis

SOLUÇÃO COM MMX:

pand mm1,y[i] ; carrega pixes correspondentes do mapa

movq mm1,mm0 ; cópia da máscara em mm1 também

por mm0,mm1 ; imagem sobreposta em mm0

movq z[i],mm0 ; salva pixels processados

(1) (2) (3) (4) (5) (6) (7)

(8)

Junho de 2014

Arq. e Org. de Comp. - Prof. Gortan - 9. Aula - MMX

15

PIXEL 3 (AZUL) PIXEL 2 (NÃO AZUL) PIXEL 1 (AZUL) PIXEL 0 (NÃO AZUL) MM0

COMPARAÇÕES EM MMX

O RESULTADO DE COMPARAÇÕES COM INSTRUÇÕES MMX É EXPRESSO POR MEIO DE UMA MÁSCARA NO OPERANDO DE DESTINO.

SE O RESULTADO DA COMPARAÇÃO FOR VERDADEIRO OS BITS CORRESPONDENTES NA MÁSCARA SERÃO SETADOS, CASO CONTRÁRIO SERÃO ZERADOS.

BLUE BLUE BLUE BLUE

M64

FFFF h (TRUE) 0000 h (FALSE) FFFF h (TRUE) 0000 h (FALSE) MM0

EXEMPLO PCMPEQW MM0, BLUE: (REFERENTE AO PASSO (2)

PIXEL 3 (AZUL) PIXEL 2 (NÃO AZUL) PIXEL 1 (AZUL) PIXEL 0 (NÃO AZUL) X[ i ]

OPERAÇÕES LÓGICAS EM MMX - PANDN

PANDN INVERTE OS BITS NO OPERANDO DE DESTINO E EXECUTA AND COM A ORIGEM

O RESULTADO É COLOCADO NO OPERANDO DE DESTINO

FFFF h (TRUE) 0000 h (FALSE) FFFF h (TRUE) 0000 h (FALSE) MM0

EXEMPLO PANDN MM0, X[ i ]: (REFERENTE AO PASSO (4)

0000 h PIXEL 2 (NÃO AZUL) 0000 h PIXEL 0 (NÃO AZUL) MM0

(9)

Junho de 2014

Arq. e Org. de Comp. - Prof. Gortan - 9. Aula - MMX

17

MAPA PIXEL 3 MAPA PIXEL 2 MAPA PIXEL 1 MAPA PIXEL 0 Y[ i ]

OPERAÇÕES LÓGICAS EM MMX - PAND

PAND EXECUTA AND COM A ORIGEM

O RESULTADO É COLOCADO NO OPERANDO DE DESTINO

FFFF h (TRUE) 0000 h (FALSE) FFFF h (TRUE) 0000 h (FALSE) MM1

EXEMPLO PANDN MM1, Y[ i ]: (REFERENTE AO PASSO (5)

MAPA PIXEL 3 0000 h MAPA PIXEL 1 0000 h MM1

PRINCÍPIO BÁSICO DE UM FILTRO DIGITAL

N = 100; j = 2:N-1;

x = 0:2*pi/(N-1):2*pi;

y = sin(x);

r = zeros(1,size(x,2));

r(20) = 1; r(60) = -1;

yf(1) = yr(1)/3 + yr(2)/3;

yf(j) = yr(j-1)/3 + yr(j)/3 + yr(j+1)/3;

yf(N) = yr(N-1)/3 + yr(N)/3;

rf(1) = 2*yr(1)/3 - yr(2)/3;

(10)

Junho de 2014

Arq. e Org. de Comp. - Prof. Gortan - 9. Aula - MMX

19

REPRESENTAÇÃO DE NRS. FRACIONÁRIOS COM INTEIROS

SUPONHAMOS QUE DESEJAMOS DETERMINAR O PRODUTO:

SEN(45°) x 8.192 = 0,7071 x 8192 UTILIZANDO APENAS INTEIROS DE 16 BITS

SOLUÇÃO A):

REPRESENTAMOS 0,7071 COMO (0,7071 x 10.000) / 10.000 = 7.071 / 10.000 E CALCULAMOS (8.192 x 7.071) / 10.000

SOLUÇÃO B):

REPRESENTAMOS 0,7071 COMO (0,7071 x 65.535)/65.535 = 46.339 / 65.535 E CALCULAMOS (8.192 x 46.339) / 65.535

VANTAGEM: UTILIZA TODOS OS 16 BITS DE PRECISÃO

DESVANTAGEM: NÃO PERMITE REPRESENTAÇÃO DE NÚMEROS COM SINAL

SOLUÇÃO C):

UTILIZAMOS NOTAÇÃO COMPLEMENTO DE 2 COM 15 BITS DE MANTISSA E 1 DE SINAL REPRESENTAMOS 0,7071 COMO (0,7071 x 32.768) / 32.768 = 23.170 / 32.768 E CALCULAMOS

(8.192 x 23.170) / 32.768

A REPRESENTAÇÃO NO FORMATO DA SOLUÇÃO C) É GERALMENTE CONHECIDA COMO FORMATO Q15, ONDE O FATOR UTILIZADO É 32768, PERMITINDO REPRESENTAR NÚMEROS

FRACIONÁRIOS |1 |, ENTRE - 32768 / 32768 E + 32.767 / 32.768

Referências

Documentos relacionados

Estes insetos são então utilizados para a principal aplicação dos mesmos no âmbito criminal, a estimativa do Intervalo Pós-Morte Mínimo (IPMmin). No entanto,

A multiplicidade numérica é a imagem ou a matéria, é o que não muda de natureza ao dividir-se, o que só tem diferenças de grau e estas, realizadas ou não, são sempre atuais

[r]

O gráfico y(pixels) vs x(pixels) mostra as trajetórias dos defeitos até a aniquilação no ponto representado pela estrela.... O gráfico y(pixels) vs x(pixels) mostra as trajetórias

Como se mostrou na Parte 1 deste artigo, no sistema da maturidade de Hegel a Fenomenologia aparece em três lugares muito diferentes: em primeiro lugar, como o conjunto da obra

— O Tri- bunal resolveu, quanto ao registro do Diretó- rio Nacional e Comissão Executiva, rejeitada a prejudicial de ilegitimidade de parte, con- verter o julgamento em

teresse na obtenção da certidão para fins outros. Recurso ordinário a que se nega provimento. Passarinho, José Fernandes Dantas, Pedro Gordilho, J. Mandado de Segurança que

8) O termo Reserva Mineral Provada significa uma Reserva Mineral expressa em termos de tonelagens/volume mineráveis e teor na qual o Recurso Mineral Identificado foi definido em