A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "9:18 1 Introdução às características de otimização na Arquitetura Intel® XScale Módulo I."— Transcrição da apresentação:

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

2 9:18 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

3 9:18 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

4 9:18 4 Bancos sobrepostos de registradores

5 9:18 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 v5TE Ele pertence a versão 5, com suporte ao modo thumb e implementa as extensões DSP

6 9:18 6 Real Time Clock Diagrama de Sistema do Processador PXA25x Bluetooth UART PWM x 4 Multimedia Card Irda/UART UART (Full Modem) AC97/I 2 S SSP/SPI/uWire I2CI2C Power Management 32 KHz Osc Memory Controller Intel® XScale Core SDRAM Control Flash Control SRAM Control 3,68 MHz Osc JTAG Core PLL Peripheral PLL(s) Clock Divider and Distribution Burst Flash Interface USB Client Real Time Clock Interrupt Controller Timer / PWM 15 Primary GPIO Interrupt Controller LCD Controller PCMCIA/CF Card Control 16 channel DMA Controller Bridge PXA25x SOC (System On a Chip)

7 9:18 7 Diagrama de Sistema do Processador PXA27x Quick Capture Interface 4-bit SD I/O PWM x 4 USIM Card Keypad UART x 3 AC97/I 2 S SSP x 3 I2CI2C Power Management 32 KHz Osc Memory Controller Intel® XScale Core SDRAM Control Flash Control SRAM Control DMA Controller Bridge 13 MHz Osc JTAG Core PLL Peripheral PLL(s) Clock Divider and Distribution I 2 C for DVM Wireless MMX Unit SRAM 256K bytes Baseband Intel MSL Interface USB Client Real Time Clock Interrupt Controller Timer (4F,8S) w/ watchdog GPIO USB Host LCD Controller 4 Bancos de 64K de memória SRAM

8 9:18 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

9 9:18 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 9:18 10 Características de Otimização construídas no núcleo do microprocessador Intel® XScale PXA25x – iMPT PXA27x – WMMX CP0 CP1

11 9:18 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 Decodificado r de instrução BTB Cache de instrução Cache de Dados MWB

12 9:18 12 Etapas do Pipeline Pipe / PipestageDescription Main Execution PipelineHandles data processing instructions IF1/IF2Instruction Fetch IDInstruction Decode RFRegister File / Operand Shifter X1ALU Execute X2State Execute XWBWrite-back Memory PipelineHandles load/store instructions D1/D2Data cache access DWBData cache writeback MAC PipelineHandles all multiply instructions M1-M5Multiplier stages MWBMAC write-back occurs during M2-M5

13 9:18 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

14 9:18 14 Organização do Data Cache do PXA 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

15 9:18 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 Unidade de Gerenciamento de Memória (MMU) 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 File Endereço 1 para R1 Endereço para R2 Endereço 2 para R4 Endereço 3 para R6 From Cache Miss Dica de otimização: Utilizar PreLoad ou carregar muitos dados de diferentes linhas da cache fará com que o processador entre em espera

16 9:18 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 Unidade de Gerenciamento de Memória (MMU) Register File Endereço 1 para R1 Endereço para R2 Endereço 2 para R4 Endereço 3 para R6 From Cache Miss 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

17 9:18 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

18 9:18 18 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] Target Address [31:1] TagData History Bits [1:0] Valid State Supports 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

19 9:18 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.

20 9:18 20 Família PXA2xx Historia BTB

21 9:18 21 Bits da história

22 9:18 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

23 9:18 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

24 9:18 24 Eventos contabilizados nos registradores PMNx NúmeroDescriçãoNúmeroDescrição 0x0Fracasso na cache de instruções 0x7Instrução executada 0x1Cache de instruções não pode entregar instrução 0x8Duração de atraso em ciclos devido a um buffer de dados cheio 0x2Atraso por dependência de dado 0x9Atraso devido a um buffer de dados cheio 0x3Fracasso Translation Look aside Buffer de instruções 0xaAcesso à cache de dados 0x4Fracasso de TLB dados0xbFracasso à cache de dados 0x5Instrução de desvio executada 0xcWriteback da cache de dados 0x6Erro na previsão de desvio0xdO software mudou o PC (desvios)

25 9:18 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

26 9:18 26 Gerenciamento de potência Wireless Intel SpeedStep® Technology Intel® Dynamic Frequency Management Intel® Dynamic Voltage Management DA 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

27 9:18 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

28 9:18 28 Leituras Recomendadas em ordem de prioridade... Optimization CD, PCADN [www.intel.com/pca/developernetwork/]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


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

Apresentações semelhantes


Anúncios Google