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

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

Arquitetura de Sistemas Embarcados

Apresentações semelhantes


Apresentação em tema: "Arquitetura de Sistemas Embarcados"— Transcrição da apresentação:

1 Arquitetura de Sistemas Embarcados
Exame de Qualificação em Abrangência (prestado em 09/12/2005) Carlos Arthur Lang Lisbôa Orientador: Prof. Luigi Carro

2 Definições Sistema Embarcado
Qualquer dispositivo que inclui um computador programável mas que não é, ele mesmo, um computador de uso geral. Wayne Wolf, 2000 Processador Embarcado Um processador programável, cuja interface de programação não está acessível para o usuário final do produto. A única interação com o usuário é através do aplicativo. Jan Rabaey, 2000

3 Uso Geral vs. Embarcados Qual a diferença ?
The Intel® Pentium® Processor Extreme Edition with the processing capabilities of four threads delivers more computing capabilities enabling you to explore new ways to accomplish and enjoy performance intensive tasks on your PC. Featuring advanced technologies that offer high performance, flexibility and robust functionality, the Intel PXA270 processor is packaged specifically for the embedded market and is ideal for the low-power framework of battery-powered devices.

4 Uso Geral vs. Embarcados ... mas não apenas isto !
calculadoras simples ou programáveis eletrodomésticos “inteligentes” telefones celulares jogos eletrônicos controle, segurança e conforto em veículos set-top boxes sistemas GPS som, fotografia e vídeo copiadoras, impressoras e outros periféricos ... a criatividade humana não tem limites !

5 Roteiro da Apresentação
Introdução Processadores Memórias Sistemas com múltiplos núcleos Comunicação: barramentos e NOCs Aspectos relacionados a software Conclusão

6 Introdução: Requisitos Especiais
consumo nem sempre é problema; custo sim área e desempenho podem ser críticos (soft / hard deadlines) tolerância a falhas pode ser fator crítico múltiplos processadores heterogêneos necessidade de comunicação e redes (NOCs) capacidade gráfica antenas, som, vídeo: processamento digital de sinais (DSP) “embriões” de sistemas operacionais (RTOS) aplicativos residentes em memória / download

7 Introdução: Complexidade do Projeto
portabilidade dos produtos limitação de consumo especificação de desempenho mínimo: hard deadlines baixa capacidade de memória (área, consumo) segurança e confiabilidade operação em rede (múltiplos núcleos) metodologia de teste adequada

8 Introdução Amplo espaço de projeto a ser explorado
particionamento hardware / software tipo(s) de processador(es) hierarquias de memórias interfaces para periféricos comunicação entre componentes sistema operacional e aplicativos Prazo de projeto: poucos meses Custos elevados (pessoal, ferramentas, máscaras)  requer volume de produção

9 Roteiro da Apresentação
Introdução Processadores Memórias Sistemas com múltiplos núcleos Comunicação: barramentos e NOCs Aspectos relacionados a software Conclusão

10 Processadores: Arquitetura
Selecionar a mais adequada à aplicação uso de lógica programável (conforme volume) FPGAs (Field Programmable Gate Array) - baixo volume ASICs (Application Specific Integrated Circuit) - alto ASIPs (Application Specific Instruction Set Processor) - alto microprocessadores de prateleira, específicos ou IPs pipeline superescalar VLIW (Very Large Instruction Word) processamento digital de sinais (DSP) múltiplos processadores no mesmo chip reconfigurabilidade  redução do consumo de energia

11 Processadores Arquiteturas com Pipeline
paralelismo de estágios da execução de instruções na prática: 12 a 20 estágios com pipeline cheio: 1 instrução por ciclo custo maior em potência (mais chaveamentos) Jan Rabaey, 2000

12 Processadores Pipelines - hazards: structural, data, control
estrutural: faltam componentes (FUs, registradores) dependência de dados reordenação pelo compilador - limitada reordenação pelo processador (forwarding) - mais consumo controle: desvios condicionais (> 20% !) por software: inserção de NOPs (mais lento, mais memória) inserção de “bolhas” remoção de instruções do pipeline quanto mais estágios, maior o custo em desempenho para amenizar o custo: predição de saltos laços - probabilidade maior é repetir máquina de estados - predição “estatística”

13 Processadores Pipelines: dimensionamento  custo
produtividade máxima: 1 instrução por ciclo mais estágios  ciclos mais curtos ciclos mais curtos  maior freqüência maior freqüência  maior potência clock mais rápido  requer redistribuição redistribuição de clock  mais área, mais potência

14 Processadores Arquiteturas superescalares: exemplo
vários pipelines em paralelo - paralelismo explícito Jan Rabaey, 2000

15 Processadores Arquiteturas superescalares: exemplo real
hyperthreading: 1 superescalar por thread (Intel Pentium Extreme Edition) Intel Pentium® 4

16 Exemplo: processadores Pentium®

17 Exemplo: processadores Pentium®

18 Exemplo: processadores Pentium®

19 Exemplo: processadores Pentium®

20 Processadores Arquiteturas superescalares - dificuldades
programas da “vida real” têm pouco paralelismo na compilação: loop unrolling = mais dependência redução da dependência de dados pelo processador execução de instruções fora de ordem busca instruções cuja dependência de dados esteja resolvida e as executa antes das demais renomeação de registradores (aliases) maior custo em potência: hw extra mantém unidades ocupadas a maior parte do tempo  uso principal: processadores de uso geral

21 Processadores Arquiteturas VLIW: instruções em paralelo 64-bit 32-bit
data cache 16KB mmu 64-bit memory bus multi-port 128 words x 64 bits register file FU instruction cache 32 KB bypass network PC exceptions 32-bit peripheral VLIW instruction decode and launch Jan Rabaey, 2000

22 Processadores Arquiteturas VLIW - prós e contras
mais econômica em potência: sem detecção de paralelismo durante execução sem predição de saltos paralelismo resolvido pelo compilador (custa caro) dependência de dados  desperdício de memória requer recompilação quando muda a largura do VLIW ideal para sistemas em que o código não muda durante a operação do processador embarcado mais usadas em processamento de sinais e multimedia, onde aplicações têm mais paralelismo

23 Processadores Arquiteturas DSP - processamento de sinais
aplicações: telefone celular, modems, controle, ... digital  analógico - repetibilidade e facilidade projeto processadores digitais de uso geral: muitos recursos não utilizáveis em DSP carência de recursos otimizados para DSP consumo de potência elevado processadores digitais de sinais otimizações de hardware para acelerar a execução dos algoritmos específicos para DSP (filtros, FFT, DCT, ...) resultados: maior desempenho, menor potência

24 Processadores Arquiteturas DSP - otimizações específicas
“stream” de entrada contínuo - taxa fixa grande quantidade de dados que não podem ser perdidos não pode ler um “lote” e esperar enquanto processa solução: buffer circular - implementação em hardware arquitetura Harvard: memórias para instruções e dados separadas, com acesso em paralelo vários bancos de memória para dados, com acesso em paralelo interrupções simplificadas para atender E/S sem necessidade de chavear contexto

25 Processadores Arquiteturas DSP - otimizações específicas
instrução multiplica-e-acumula endereçamento de bit reverso registradores com auto incremento controle de laços em hardware muitas destas otimizações estão migrando para processadores de uso geral nos sistemas embarcados, podem ser usados: co-processadores DSP processadores VLIW adaptados para processamento de sinais

26 Roteiro da Apresentação
Introdução Processadores Memórias Sistemas com múltiplos núcleos Comunicação: barramentos e NOCs Aspectos relacionados a software Conclusão

27 Memórias: hierarquia CPU Cache - Interna (L1) SRAM
Register File Cache - Interna (L1) SRAM M A I O R C P D E M A I O R V E L C D M A I O R C U S T / B Y E Cache Externa (L2) - SRAM Memória Principal DRAM Memória Secundária - Disco, Flash

28 Memórias: principais dificuldades
velocidade  capacidade memórias estáticas (caches) rápidas, mas ocupam muita área grande consumo de potência se beneficiam de: localidade temporal localidade espacial aplicabilidade a sistemas embarcados não é “unanimidade” Compaq/Digital StrongARM

29 Memórias: principais dificuldades
velocidade  capacidade memórias dinâmicas (memória “principal”) várias ordens de grandeza mais lentas ocupam menos área, têm maior capacidade alto custo em potência consumida para acessos cache + principal  tempo de resposta imprevisível outros tipos de memória usados em SEs memórias FLASH (também como “memória virtual”) EEPROMs - grandes capacidades (ex: câmeras) FRAM (ferromagnetic RAM) - mesma área, sem refresh

30 Roteiro da Apresentação
Introdução Processadores Memórias: hierarquia Sistemas com múltiplos núcleos Comunicação: barramentos e NOCs Aspectos relacionados a software Conclusão

31 Sistemas com Múltiplos Núcleos
Vários processadores num chip (MP-SOCs): homogêneos: processadores iguais - uso geral exemplos: Intel Pentium D e Intel Pentium Extreme heterogêneos: processadores distintos - sistemas embarcados DSP DSP DSP 3D Subsyst. DSP DSP DSP ARM Video Subsyst. DSP Audio Subsystem DSP DSP System Interconnect In DSOC Scheduler SRAM SMP Scheduler Out Nomadik Mobile Multimedia STMicroelectronics

32 Roteiro da Apresentação
Introdução Processadores Memórias: hierarquia Sistemas com múltiplos núcleos Comunicação: barramentos e NOCs Aspectos relacionados a software Conclusão

33 Comunicação: barramentos/NOCs
evolução da tecnologia: mais transistores menores / chip custo: reuso de núcleos de propriedade intelectual (IPs) necessidade: interconexão entre muitos núcleos alternativas: conexão ponto-a-ponto: não reusável barramentos: uma transferência por ciclo capacitância elevada (fios longos e muitos núcleos)  freqüência máxima limitada barramentos hierárquicos: paralelismo limitado

34 Comunicação: barramentos/NOCs
alternativas (continuação): NOCs: networks on chip conjunto de canais e roteadores conexões ponto-a-ponto entre roteadores permitem freqüências mais altas do que barramentos diversas topologias: grelha, torus, árvore, hipercubo, etc. maior capacidade de paralelismo: vários “caminhos” escaláveis de acordo com a quantidade de núcleos fatores que determinam eficiência: largura do canal de roteamento (# fios) topologia política de prioridades e controle de fluxo

35 Roteiro da Apresentação
Introdução Processadores Memórias: hierarquia Comunicação: barramentos e NOCs Sistemas com múltiplos núcleos Aspectos relacionados a software Conclusão

36 Aspectos relacionados a software
antigamente: fixo (microondas, automóveis, ...) atualmente: “mutante” (celulares, PDAs, ...) tendência: sistemas baseados em plataformas, com especialização por software (alto custo de máscaras) novos requisitos em software: compiladores otimizados para VLIW sistemas operacionais de tempo real - RTOS software retargeting (binary translation)

37 Roteiro da Apresentação
Introdução Processadores Memórias: hierarquia Comunicação: barramentos e NOCs Sistemas com múltiplos núcleos Aspectos relacionados a software Conclusão

38 Conclusão Espaços abertos para pesquisa (exemplos):
hierarquia de memória  tipo de aplicação reuso de traces da cache para reduzir potência uso de arrays reconfiguráveis dinamicamente e binary translation para reduzir consumo de energia tolerância a múltiplas falhas simultâneas (2010) compiladores mais eficientes para arquiteturas VLIW para reduzir consumo de energia (uso de instruções “low power”) estruturação de código p/aumentar hit rate das caches

39 Perguntas ?

40 Referências bibliográficas
[Wayne Wolf, 2000] Wolf, W. Computers as Components: Principles of Embedded Computer Systems Design. Academic Press, San Diego, CA, ISBN Patterson, D.A. e Hennessy,J. L. Computer Architecture: A Quantitative Approach. Morgan Kaufmann Publishers, San Francisco, CA, ISBN [Jan Rabaey, 2000] Rabaey, J e Keutzer, K. Notas de aula da disciplina “CS252 - Advanced Computer Architecture”, ministrada pelos Profs. Drs. Jan Rabaey e Kurt Keutzer, na University of California at Berkeley, USA, primavera de 2000. Carro, L. e Wagner, Flávio R. Notas de aula do curso “Sistemas Computacionais Embarcados” ministrado pelos Profs. Drs. Flávio Rech Wagner e Luigi Carro nas XII Jornadas de Atualização em Informática (JAI), no XXIII Congresso da Sociedade Brasileira de Computação, 2 e 3 de agosto de 2003, Campinas, SP, Brasil.


Carregar ppt "Arquitetura de Sistemas Embarcados"

Apresentações semelhantes


Anúncios Google