28
06:46 PM 06:46 PM 1 Introdução às características de Introdução às características de otimização na Arquitetura Intel otimização na Arquitetura Intel ® ® XScale™ XScale™ Módulo I

9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

Embed Size (px)

Citation preview

Page 1: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:52 AM 10:52 AM 1

Introdução às características de otimização Introdução às características de otimização na Arquitetura Intelna Arquitetura Intel®® XScale™ XScale™

Módulo I

Page 2: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:52 AM 10:52 AM 2

Agenda Fundamentos da Arquitetura ARM Arquitetura Intel® XScale™ Pipeline do processador Intel® XScale™ Data Cache Buffers de Preenchimento (Fill Buffers), Buffers de

Pendência (Pend Buffers) e Write Buffers Branch Target Buffer (BTB) Coprocessador de desempenho Gerenciamento de potência Referências

Page 3: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:52 AM 10:52 AM 3

Fundamentos da Arquitetura ARM Arquitetura ARM padrão

Registradores e instruções de 32 bits 16 registradores, alguns dedicados como pc, lr, sp Registradores separados em bancos para interrupções

Um banco de registradores para cada classe de interrupções

Variações Especificações incluem um modo menor de 16 bits, modo “thumb” Versão 5 implementa extensões DSP

Page 4: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:52 AM 10:52 AM 4

Bancos sobrepostos de registradores

Page 5: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:52 AM 10:52 AM 5

Fundamentos da Arquitetura ARM Especificações de licença ARM LTD (independente de

implementação) O Microprocessador Intel® StrongARM™ pertence a versão 4.0 O Microprocessador Intel® XScale™ pertence a versão 5.0

ARM LTD também licencia design específicos – implementação de uma especificação

O Microprocessador Intel® XScale™ é um ARM v5TEEle pertence a versão 5, com suporte ao modo “thumb” e

implementa as extensões DSP

Page 6: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:52 AM 10:52 AM 6

Real TimeClock

Diagrama de Sistema do Processador PXA25x

BluetoothUART

PWM x 4

Multimedia Card

Irda/UART

UART(Full Modem)

AC97/I2S

SSP/SPI/uWire

I2C

PowerManagement

32 KHz Osc

Memory ControllerIntel®

XScale™Core SDRAM Control

Flash Control

SRAM Control

3,68 MHz OscJTAG

Core PLL

Peripheral PLL(s)

Clock Dividerand

Distribution

Burst Flash Interface

USB Client

Real TimeClock

InterruptController

Timer / PWM

15 PrimaryGPIO

InterruptController

LCDController

PCMCIA/CF

Card Control

16 channelDMA

ControllerBridge

PXA25x SOC (System On

a Chip)

Page 7: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:52 AM 10:52 AM 7

Diagrama de Sistema do Processador PXA27x

Quick CaptureInterface

4-bit SD I/O

PWM x 4

USIM Card

Keypad

UART x 3

AC97/I2S

SSP x 3

I2C

PowerManagement

32 KHz Osc

Memory ControllerIntel®

XScale™Core SDRAM Control

Flash Control

SRAM Control

DMAControllerBridge

13 MHz Osc

JTAG

Core PLL

Peripheral PLL(s)

Clock Dividerand

Distribution

I2C for DVM

WirelessMMX™

Unit

SRAM

256K bytes

BasebandIntel MSLInterface

USB Client

Real TimeClock

InterruptController

Timer (4F,8S)w/ watchdog

GPIO

USBHost

LCDController

4 Bancos de 64K de

memória SRAM

Page 8: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:53 AM 10:53 AM 8

Memória “On-chip” SRAM do PXA27x 4 bancos de 64K cada de memória SRAM para código e

dados Acesso mais rápido à memória interna do que à memória

externa Usa tensão de alimentação menor que a memória externa

Exemplos de uso Frame Buffer USB Host Dados recebidos da interface Intel Quick Capture (Interface da

Câmera de Vídeo) Variáveis temporárias Variáveis críticas para o desempenho Estado do SO para o sistema de Wake Up

Page 9: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:53 AM 10:53 AM 9

Características de Otimização construídas no núcleo do microprocessador Intel® XScale™

• Pipeline de 7 estágios

• Caches grandes• Buffer de escrita

(Write Buffer)• Buffer de

preenchimento (Fill Buffer)

• Buffer de espera (Pend Buffer)

• iMPT (CP0)• Branch Target

Buffer (BTB)• Monitoramento de

desempenho (CP14)

Page 10: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:53 AM 10:53 AM 10

Características de Otimização construídas no núcleo do microprocessador Intel® XScale™

• PXA25x– iMPT

• PXA27x– WMMX

CP0 CP1CP0 CP1

Page 11: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:53 AM 10:53 AM 11

Processador Intel RISC com Superpipeline de 7 estágios

Algumas operações podem ser feitas em paralelo ou sobrepor a latência de outra

DecodificadoDecodificador de r de

instruçãoinstrução

BTBBTB

Cache de Cache de instruçãoinstrução

Cache Cache de de

DadosDados

MWB

Page 12: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:53 AM 10:53 AM 12

Etapas do PipelinePipe / Pipestage Description

Main Execution Pipeline Handles data processing instructions

•IF1/IF2 Instruction Fetch

•ID Instruction Decode

•RF Register File / Operand Shifter

•X1 ALU Execute

•X2 State Execute

•XWB Write-back

Memory Pipeline Handles load/store instructions

•D1/D2 Data cache access

•DWB Data cache writeback

MAC Pipeline Handles all multiply instructions

•M1-M5 Multiplier stages

•MWB MAC write-back occurs during M2-M5

Page 13: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:53 AM 10:53 AM 13

Características do Data Cache do PXA255

Data Cache Buffers de

Leitura/Escrita de dados

Combina desempenho do processador com a interface de memória

Dica de otimização: O Data Cache é mais efetivo quando se usa PreLoad, alinhamento, referências

localizadas, write-back cache

Page 14: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:53 AM 10:53 AM 14

Organização do Data Cache do PXA255

• 32 K Data Cache• 32 bytes por linha de

cache (via)• 32 conjuntos com 32 vias• Alinhado em 32 bytes• Tamanho afeta a

escalabilidade da aplicação

• Substituição por Round Robin

Dica de otimização: Múltiplas threads podem comprometer o uso da cache umas das outras

Page 15: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:53 AM 10:53 AM 15

Fill Buffer A Cache pode trabalhar

independentemente da MMU

Até 4 pedidos de leitura à memória podem ser armazenados antes que o processador entre em espera

Hit-Under-Miss performance

Fill Buffer

Pend Buffer

Un

idad

e d

e G

ere

nc

iam

en

to

de

Mem

óri

a (M

MU

)

32 bytes no endereço 1

32 bytes no endereço 2

32 bytes no endereço 3

32 bytes no endereço 4

Register FileRegister File

Endereço 1 para R1

Endereço 1 + 2 para R2

Endereço 2 para R4

Endereço 3 para R6F

rom

Ca

ch

e M

iss

Fro

m C

ac

he

Mis

s

Dica de otimização: Utilizar PreLoad ou carregar muitos dados de diferentes linhas da cache fará com que o processador entre em espera

Page 16: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:53 AM 10:53 AM 16

Pend Buffer Carregamentos para

os registradores das linhas de cache pendentes no Fill Buffer são colocados no Pend Buffer

Executado na ordem do programa

4 entradas

Fill Buffer

Pend Buffer

Un

idad

e d

e G

ere

nc

iam

en

to

de

Mem

óri

a (M

MU

)

Register FileRegister File

Endereço 1 para R1

Endereço 1 + 2 para R2

Endereço 2 para R4

Endereço 3 para R6F

rom

Ca

ch

e M

iss

Fro

m C

ac

he

Mis

s

32 bytes no endereço 1

32 bytes no endereço 2

32 bytes no endereço 3

32 bytes no endereço 4

Dica de otimização: Carregar muitos dados de uma mesma linha de cache de uma vez, fará com que o processador entre em espera

Page 17: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:53 AM 10:53 AM 17

Buffer de escrita (Write Buffer)• Aproveita a capacidade de

acessos repetidos das SDRAM• 8 entradas, com 16 bytes cada• Cada entrada é alinhada em

16 bytes• Suporta múltiplas requisições

de armazenamento de dados quando estes estão alinhados em 16 bytes

O código deve coletar dados locais (registradores) usando instruções adjacentes e escrever para o armazenamento global

em endereços consecutivos

Page 18: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:53 AM 10:53 AM 18

Branch Target Buffer (BTB)• Branch Target Buffer (BTB)

– Cache diretamente mapeado– 128 entradas

• Instruções B e BL utilizam as previsões

• Erro na previsão significa um acréscimo de 4 ciclos

Branch Address [31:9,1]Branch Address [31:9,1] Target Address [31:1]Target Address [31:1]

Tag Data

HistoryHistoryBits [1:0]Bits [1:0]V

alid

Val

id

StateSupports Thumb

2 bits de história

do desvio

Dica de otimização: tente fundir condições similares em um único desvio, especialmente para desvios orientados por dados

Page 19: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:53 AM 10:53 AM 19

Família PXA2xx Branch Target Buffer (BTB)

O BTB, com o endereço da instrução atual, verifica se este endereço é um desvio que foi previamente utilizado

Utiliza os bits [8:2] do endereço atual para selecionar a entrada do BTB e compara os dados do buffer com os bits [31:9,1] do endereço da instrução atual.

Se o branch foi previamente utilizado, consulta a história para identificar o destino previsto.

Page 20: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:53 AM 10:53 AM 20

Família PXA2xx• Historia BTB

Page 21: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:53 AM 10:53 AM 21

Bits da história

Page 22: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:53 AM 10:53 AM 22

Coprocessador de desempenho CP14

Performance Monitoring Unit (PMU) Coprocessador desenvolvido para monitorar eventos internos

do processador

Registradores principais Clock Counter (CCNT) (32 bits) Performance Count Registers (PMNx) (32 bits) Performance Monitor Control Register (PMNC)

Recurso utilizado pelo Intel® VTune™ Performance Analyzer

Page 23: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:53 AM 10:53 AM 23

Coprocessador de desempenho CP14 Registradores da PMU

Clock Counter (CCNT) Iniciada em zero ou por valor específico Pode gerar IRQ ou FIQ no transbordo

Performance Count Registers (PMN0 – PMN3) 16 eventos podem ser monitorados Iniciada em zero ou por valor específico Pode gerar IRQ ou FIQ no transbordo

Performance Monitor Control Register (PMNC) Controla quais eventos serão monitorados Detecta transbordos nos registradores Habilita/desabilita interrupções Limpa todos os contadores e Habilita os mecanismos da PMU

Page 24: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:53 AM 10:53 AM 24

Eventos contabilizados nos registradores PMNx

Número Descrição Número Descrição

0x0 Fracasso na cache de instruções 0x7 Instrução executada

0x1 Cache de instruções

não pode entregar instrução

0x8 Duração de atraso em ciclos devido a um buffer de dados cheio

0x2 Atraso por dependência de dado 0x9 Atraso devido a um buffer de dados cheio

0x3 Fracasso Translation Look aside Buffer de instruções

0xa Acesso à cache de dados

0x4 Fracasso de TLB dados 0xb Fracasso à cache de dados

0x5 Instrução de desvio executada 0xc Writeback da cache de dados

0x6 Erro na previsão de desvio 0xd O software mudou o PC (desvios)

Page 25: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:53 AM 10:53 AM 25

Coprocessador de desempenho CP14

Possibilita a amostragem por número de eventos ou por tempo Por número de eventos

PMNx configurado para gerar interrupção após determinado número de eventos

Por tempo CCNT configurado para gerar interrupção após intervalo de tempo

determinado

Processo estatístico

Page 26: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:53 AM 10:53 AM 26

Gerenciamento de potência

Wireless Intel SpeedStep® Technology Intel® Dynamic Frequency Management Intel® Dynamic Voltage Management

DA9031 - Circuito integrado gerenciador de potência

Modos de potência do processador: Run, Turbo, Idle e Sleep O PXA27x apresenta também:

Deep Sleep, Standby and Deep idle

Page 27: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:53 AM 10:53 AM 27

Árvore de clock do microprocessador Intel® XScale™• Geralmente

gerenciada pelo SO

• Ajustes dos controles dos clocks “desempenho vs. uso de energia

• Ajustes para freqüência do processador, vs. velocidade do barramento de memória

• N e M normalmente 2

Page 28: 9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I

10:53 AM 10:53 AM 28

Leituras Recomendadasem ordem de prioridade ...

Optimization CD, PCADN [www.intel.com/pca/developernetwork/]

Optimization Techniques Using Intel XScale Technology – Microsoft Windows Mobile Edition

ARM Architeture Reference Manual – David Seal, Editor Addison-Wesley

The Software Optimization Cookbook – by Richard Gerber Intel Press