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 Programa de Pós-Graduação em Computação Laboratório de Sistemas Embarcados Instituto de Informática Universidade Federal do Rio Grande do Sul Porto Alegre – RS – Brasil Definições Sistema Embarcado Processador Embarcado Qualquer dispositivo que inclui um computador programável mas que não é, ele mesmo, um computador de uso geral. 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. Wayne Wolf, 2000 Jan Rabaey, 2000 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 2 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. Exame de Qualificação em Abrangência 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. Carlos A. L. Lisbôa 09/12/2005 3 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 ! Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 4 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 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 5 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 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 6 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 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 7 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 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 8 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 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 9 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 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 10 Processadores • Arquiteturas com Pipeline • paralelismo de estágios da execução de instruções Jan Rabaey, 2000 • na prática: 12 a 20 estágios • com pipeline cheio: 1 instrução por ciclo • custo maior em potência (mais chaveamentos) Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 11 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” Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 12 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 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 13 Processadores • Arquiteturas superescalares: exemplo • vários pipelines em paralelo - paralelismo explícito Jan Rabaey, 2000 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 14 Processadores • Arquiteturas superescalares: exemplo real Intel Pentium® 4 hyperthreading: 1 superescalar por thread (Intel Pentium Extreme Edition) Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 15 Exemplo: processadores Pentium® Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 16 Exemplo: processadores Pentium® Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 17 Exemplo: processadores Pentium® Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 18 Exemplo: processadores Pentium® Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 19 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 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 20 Processadores • Arquiteturas VLIW: instruções em paralelo 64-bit memory bus 32-bit peripheral bus multi-port 128 words x 64 bits register file bypass network data cache 16KB mmu mmu FU FU FU FU FU exceptions PC instruction cache mmu 32 KB VLIW instruction decode and launch Jan Rabaey, 2000 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 21 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 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 22 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 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 23 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 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 24 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 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 25 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 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 26 Memórias: hierarquia CPU M A I O R C A P A C I D A D E Register File Cache - Interna (L1) SRAM M A I O R Cache Externa (L2) - SRAM V E L O C I D A D E Memória Principal DRAM Memória Secundária - Disco, Flash Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 M A I O R C U S T O / B Y T E 27 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” Exame de Qualificação em Abrangência Compaq/Digital StrongARM Carlos A. L. Lisbôa 09/12/2005 28 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 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 29 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 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 30 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 ARM DSP 3D DSP Subsyst. DSP Video Subsyst. DSP DSP DSP DSP Audio DSP Subsystem DSP System Interconnect In DSOC Scheduler Exame de Qualificação em Abrangência SRAM SMP Scheduler Out Carlos A. L. Lisbôa Nomadik Mobile Multimedia STMicroelectronics 09/12/2005 31 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 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 32 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 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 33 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 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 34 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 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 35 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) Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 36 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 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 37 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 Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 38 Perguntas ? Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 39 Referências bibliográficas • [Wayne Wolf, 2000] Wolf, W. Computers as Components: Principles of Embedded Computer Systems Design. Academic Press, San Diego, CA, 2001. ISBN 1-55860-693-9. • Patterson, D.A. e Hennessy,J. L. Computer Architecture: A Quantitative Approach. Morgan Kaufmann Publishers, San Francisco, CA, 2003. ISBN 1-55860-724-2. • [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. Exame de Qualificação em Abrangência Carlos A. L. Lisbôa 09/12/2005 40