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

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

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

Apresentações semelhantes


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

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

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 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 Bancos sobrepostos de registradores

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 Diagrama de Sistema do Processador PXA25x
LCD Controller Intel® XScale™ Core Memory Controller Interrupt Controller Real Time Clock SDRAM Control Bluetooth UART Flash Control PXA25x SOC (System On a Chip) PWM x 4 Multimedia Card SRAM Control Irda/UART Burst Flash Interface UART (Full Modem) AC97/I2S PCMCIA/CF Card Control SSP/SPI/uWire I2C 16 channel DMA Controller USB Client Bridge Real Time Clock Interrupt Controller 32 KHz Osc Clock Divider and Distribution 3,68 MHz Osc Timer / PWM Power Management JTAG Core PLL 15 Primary GPIO Peripheral PLL(s)

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

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

11 Processador Intel RISC com Superpipeline de 7 estágios
Decodificador de instrução BTB Cache de instrução Cache de Dados MWB Algumas operações podem ser feitas em paralelo ou sobrepor a latência de outra

12 Etapas do Pipeline Pipe / 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

13 Características do Data Cache do PXA255
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 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

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

16 Unidade de Gerenciamento de Memória (MMU)
Pend Buffer Fill Buffer 32 bytes no endereço 1 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 32 bytes no endereço 2 32 bytes no endereço 3 32 bytes no endereço 4 Unidade de Gerenciamento de Memória (MMU) From Cache Miss Pend Buffer Endereço 1 para R1 Endereço para R2 Endereço 2 para R4 Endereço 3 para R6 Register File 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 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 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] History Bits [1:0] Valid 2 bits de história do desvio Tag Supports Thumb Data State Dica de otimização: tente fundir condições similares em um único desvio, especialmente para desvios orientados por dados

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 Família PXA2xx Historia BTB

21 Bits da história

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 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 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 Eventos contabilizados nos registradores PMNx
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)

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 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 Á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 Leituras Recomendadas em ordem de prioridade ...
Optimization CD, PCADN [ 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 "Módulo I Introdução às características de otimização na Arquitetura Intel® XScale™"

Apresentações semelhantes


Anúncios Google