1 módulo vii wireless mmx. 2 agenda módulo vii – wireless mmx introdução estrutura ...

34
1 Módulo VII Wireless MMX

Upload: internet

Post on 22-Apr-2015

107 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

1

Módulo VII

Wireless MMX

Page 2: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

2

AgendaMódulo VII – Wireless MMX

IntroduçãoEstruturaRegistradores e instruções

Page 3: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

3

Intel Wireless MMX Technology Coprocessador com instruções para alto desempenho

em processamento multimídia: Tecnologia MMX Integer Intel Streaming SIMD Extensions (SSE) Instruções de mídia da micro-arquitetura Intel® XScaleTM

Ambiente familiar de desenvolvimento Possui Intrínsecas para quase todas as instruções Encoraja a portabilidade de aplicações desktop para

dispositivos móveis

Page 4: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

4

Processamento multimídia através de paralelismo de dados Operações idênticas em dados concorrentemente Uma operação pode produzir vários resultados

Paralelismo de Dados (SIMD)

x0x1x2x3

y0y1y2y3

++++

z0z1z2z3

Processamento Escalar

Processamento SIMD

+

x0

y0

z0

Intel Wireless MMX Technology

Page 5: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

5

Tipos de dado Wireless MMX™

A tecnologia Intel® Wireless MMX™ define 3 tipos de dados empacotados em uma double-world 64bit

Elementos com dados empacotados são inteiros com ou sem sinal

0781516

63

01516 31 63

0 3132

63

0 63

8 bytes

4 meias words 16 bits

2 words 32 bits

1 valor 64 bits

Page 6: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

6

Onde utilizar de Wireless MMX

Codecs de Áudio e Vídeo Filtros FIR/IIR Operações com matrizes Gráficos 3D Compensação de cor Segurança / Criptografia Busca por cadeias de caracteres

O WMMX possui muitos usos além da

aceleração para multimídia

Page 7: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

7

Como aproveitar a tecnologia Intel Wireless MMX

Ferr

amen

tas

Inte

Ferr

amen

tas

Inte

Intel® IPPIntel® IPP

Intel®

MM

X™

/SS

E

Code B

ase

Intel®Wireless MMX™

Technology

Intel®Wireless MMX™

Technology

Vec

tor

Com

pile

r

Intel® XScale™

Low Power

Intrínsecas

CIntrínsecas

C

Page 8: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

8

Suporte de Sistemas Operacionais a WMMX

Microsoft Windows Mobile para PPC e Smartphone 2003: disponível agora

MontaVista CEE Linux BSP disponível pela MontaVista

Symbian v7.0S: Beta BSP disponível pela Intel

PalmOS v5.2: Beta BSP disponível pela Intel v5.3: Alpha BSP disponível pela Intel

Page 9: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

9

Tecnologia Intel® Wireless MMX™ no Sistema LCD

Display

Color SpaceConversion

Controlador de

Display

Intel XScale Micro

architecture

Intel Wireless MMX

Technology

Interface de

MemóriaSystem Bus

Memória ExternaInstruction Cache Data Cache

Communication Fabric

Inernal Memory

USB Controller

DMA Controller

Communication Fabric

S2P I2C AC97

CMOSSensor

DataCapture Interface

Page 10: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

10

Estrutura da tecnologia Wireless MMX Mapeado no Coprocessador 0 e 1 Deve ser habilitado no Coprocessador 15

Deve ser habilitado no Pocket PC Instrução privilegiada Todas as imagens da Intel possuem o Coprocesador

habilitado Suporta instruções iMPT

Acumulador de 64 bits 16 Registradores de 64 bits

Abundância de espaço para armazenar os coeficientes do filtro FIR no conjunto de conjunto de registradores

Page 11: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

11

4 registradores de 32 bits Propósito geral usados para deslocamento e alinhamento

Acoplado com o core ARM Movimento de dados entre núcleo e o Coprocessador agora

é mais rápido, 4 ciclos contra 7 usando iMPT

Linha de execução simples Não é um processador separado Fluxo de instruções ligado com as instruções padrões ARM

Estrutura da tecnologia Wireless MMX

Page 12: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

12

XWBX2X1RFIDF2F1

MWBMnM1

D2 DWBD1

XWBX2X1RFID

MWBM3M2M1

DWBD2D1

XM

D

Estrutura do PipelinePipeline Intel XScale

Pipeline Intel Wireless MMX

F1 - F2: Carregamento da Instrução

ID: Decodificação da Instrução

RF: Acesso a operandos e atalhos

X1 - XWB: Estágios de pipe para ALU

M1 - MWB: Estágios de pipe para MAC

D1 - DWB: Estágios de pipe para carregamento

de dados

Page 13: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

13

Registradores Wireless MMX

wR0

wR15

wR14

wR13

wR12

wR11

wR10

wR9

wR8

wR7

wR6

wR5

wR4

wR3

wR2

wR1

CP0 – Registradores de dados SIMD

wcGR3

wcGR2

wcGR1

wcGR0

wCASF

wcCSSF

wCon

wCID

CP1 – Estados e Controle

Page 14: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

14

Registradores de Estado e Controle Registradores de estado:

Flags de aritmética SIMD e saturação (wCASF)

Estado de saturação (wCSSF) Registradores de controle:

wCGR0-wCGR3 (Registradores 32-bits de uso geral, utilizados para alinhamento, deslocamento)

Coprocessor ID (wCID) Registrador de controle do

Coprocessador (wCon)

wcGR3

wcGR2

wcGR1

wcGR0

wCASF

wcCSSF

wCon

wCID

CP1

Page 15: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

15

PXA27x (wCASF - Arithmetic Flags)

Page 16: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

16

PXA27x (wCASF)

Page 17: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

17

PXA27x (wCSSF – SIMD Saturation Flags)

Page 18: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

18

PXA27x (wCID – Coprocessor ID)

Page 19: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

19

PXA27x (wCon – Coprocessor Control)

Page 20: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

20

Registradores de dados SIMD

wR0

wR15

wR14

wR13

wR12

wR11

wR10

wR9

wR8

wR7

wR6

wR5

wR4

wR3

wR2

wR1

16 registradores 64 bits

Utilizados como operandos nas instruções Wireless MMX

Transferências entre os registradores do CP0 e do processador principal devem ser feitas com instruções específicas

CP0 – Registradores de dados SIMD

Page 21: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

21

Como utilizar Wireless MMXHabilitando os Coprocessadores

Ligar os bits do registrador 15 do CP15 (“Coprocessor Access Register”)

bit 0 – CP0

bit 1 – CP1

A maioria das instruções Wireless MMX possuem uma função C intrínseca para facilitar o seu uso

Libera o usuário de explicitamente manusear os registradores e habilita o compilador a tratar a sincronização das instruções

O usuário pode escrever o código diretamente em assembly

Page 22: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

22

Instruções de Multiplicação

Instruções de Multiplicação com Acumulador TMIA TMIAPH TMIAXY WMAC

Instruções de Multiplicação WACC WMUL WMADD

WMADD wRd, wRn, wRm

b3*a3+b2*a2

b3 b2 b1 b0

b1*a1+b0*a0

a3 a2 a1 a0

Page 23: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

23

Instruções Lógicas e Aritméticas Instruçoes Aritiméticas

WSAD WAVG2 WADD/WSUB WMAX/WMIN

Instruções Lógicas WAND/WANDN WOR/WXOR

Instruções de Comparação WCMPEQ WCMPGT

WSADB wRd, wRn, wRm

ADi+7

ADi+6

ADi+5

ADi+4

ADi+3

ADi+2

ADi+1

ADi+0

a7 a6 a5 a4 a3 a2 a1 a0

b7 b6 b5 b4 b3 b2 b1 b0

iaib

wRm

wRn

Page 24: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

24

Instruções de FormataçãoWUNPCKIH

a3 a2 a1 a0b3 b2 b1 b0

b1 a1 b0 a0

a3 a2 a1 a0b3 b2 b1 b0

b3 a3 b2 a2

Coloca as meia word altas em words

Coloca as meia-words baixas em words

WUNPCKIL

Page 25: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

25

Instruções de Formatação

WUNPCKEL

a3 a2 a1 a0

0 a1 0 a0

a3 a2 a1 a0

0 a3 0 a2

Desempacota as meia word altas e completa com zero

Desempacota as meia word baixas e completa com zero

WUNPCKEH

Page 26: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

26

As instruções de embaralhamento SIMD, selecionam quatro meia-words dos registradores fonte

WSHUFH wRd, wRn #0x9C

Instruções de Formatação

0x9C

wRd

wRnb3 b2 b1 b0

b2 b1 b3 b0

10 01 11 00

Page 27: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

27

WALIGNI wRd, wRn, wRm, #3

Instruções de Formatação

b7 b6 b5 b4 b3 b2 b1 b0a7 a6 a5 a4 a3 a2 a1 a0

a2 a1 a0 b4 b3 b2 b1 b0

As instruções de alinhamento permitem alinhamentos em padrões de bytes baseados em pares de registradores, tanto em um valor imediato ou em um valor armazenado em um registrador geral

Page 28: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

28

Instruções de Transferência Transfere dados entre o core Intel XScale® e a unidade

Intel® Wireless MMX™ Instruções WMMX iniciadas com a letra T (transferência) Essa operação executam sincronizadamente nos dois

pipes Wireless MMX para Intel XScale

TANDC, TORC, TEXTRC, TMOVMSK

Intel XScale para Wireless MMX TINSR, TMIA, TMIAPH, TMIAxy

MRCMRRC

MCRMCRR

Intel® Wireless MMX™

Intel® XScale Core

XWBX1 X2RFID

XWBX1 X2RFID

Page 29: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

29

Instruções Load/Store

O núcleo principal calcula o endereço para transações de memória Intel® Wireless MMX™

Intel® XScale™ Pipeline

Intel® Wireless MMX™ Pipeline

M

X

D D1 D2 DWB

M1 M2 M3 MWB

XWBX1 X2RFID

XWBX1 X2RFIDF2F1

MWBM1 Mn

D2 DWBD1

As instruções load/store são mapeadas no núcleo padrão Intel XScale® LDC/STC

WLDR - Executa carregamentos de vetores na memória ao Register File com tipos de 8, 16, 32 ou 64 bits de dados. O dado carregado será estendido com zeros

WSTR – Executa armazenamentos de vetores do Register File para a memória

Page 30: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

30

Execução condicional Todas as instruções de dados Intel® Wireless MMX™

podem ser executadas condicionalmente

A condição depende dos flags do registrador CPSR Elimina a necessidade de pequenos saltos

Melhora a eficiência do desenrolamento e intercalação

Pode transferir eficientemente flags do SIMD para o core CPSR

Page 31: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

31

PXA27x Instruções úteis para o Laboratório

TBCSTH

a0

a0 a0 a0 a0

Desempacota as meia word baixas e completa com zero

Page 32: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

32

PXA27x Instruções úteis para o Laboratório

WUNPCKExSH

WUNPCKEL

a3 a2 a1 a0

0 a1 0 a0

a3 a2 a1 a0

0 a3 0 a2

Desempacota as meia word Desempacota as meia word altas e completa com zeroaltas e completa com zero

Desempacota as meia word Desempacota as meia word baixas e completa com zerobaixas e completa com zero

WUNPCKEHWUNPCKEH

Page 33: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

33

PXA27x Instruções úteis para o Laboratório

WLDRD wRd[63:0] = Mem[<address_mode>]

WMAXSH wRd[half 3] = maior(wRn[half 3], wRm[half 3]) wRd[half 2] = maior(wRn[half 2], wRm[half 2]) wRd[half 1] = maior(wRn[half 1], wRm[half 1]) wRd[half 0] = maior(wRn[half 0], wRm[half 0])

TMRRC RdHi=wRn[63:32] RdLo=wRn[31:0]

Page 34: 1 Módulo VII Wireless MMX. 2 Agenda  Módulo VII – Wireless MMX  Introdução  Estrutura  Registradores e instruções

34

Módulo VII

Laboratório