9:18 1 introdução às características de otimização na arquitetura intel® xscale módulo i
TRANSCRIPT
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
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
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
10:52 AM 10:52 AM 4
Bancos sobrepostos de registradores
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
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)
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
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
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)
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
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
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
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
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
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
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
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
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
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.
10:53 AM 10:53 AM 20
Família PXA2xx• Historia BTB
10:53 AM 10:53 AM 21
Bits da história
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
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
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)
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
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
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
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