Arquitetura de Sistemas Embarcados

Slides:



Advertisements
Apresentações semelhantes
Aula 5 – Anatomia da Placa-Mãe
Advertisements

Introdução à Hierarquia de Memória
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Entrada e Saída Introdução.
Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra 2004/ Tendências Actuais.
Software Básico Silvio Fernandes
Sistemas Operacionais
Projeto de sistemas computacionais
Pontifícia Universidade Católica do Rio Grande do Sul
ARQUITETURA DE COMPUTADORES II
AULA 1: Introdução a Sistemas Embarcados
Multithreading e multiprocessamento
Arquitetura de Sistemas Operacionais
Arquiteturas Diferentes
CISC e RISC.
Sistemas Operacionais
Informática Industrial
SSC144 Arquitetura de Computadores Introdução
SSC SISTEMAS OPERACIONAIS I Aulas 6 – Escalonamento de Processos
Sistemas Distribuídos e Redes de Computadores
SSC541 - SISTEMAS OPERACIONAIS I Aula 12 – Gerenciamento de Memória
SSC541 - SISTEMAS OPERACIONAIS I Aula 13 – Gerenciamento de Memória
Maria Aparecida Castro Livi
ARQUITETURA E ORGANIZAÇÃO DE PROCESSADORES DSP TI (Família C6000)
Mais sobre potência: As novas idéias CMP502 Profs. Luigi e Flávio.
Estudo da aplicação “jogos” em sistemas embarcados
Rganização de Computadores Melhorias de Desempenho com Pipelines Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de Desempenho.
Co-projeto de Sistemas Operacionais
Tolerância a Falhas em redes Intra-Chip
Estudo de Caso 1: UNIX e LINUX
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Sistemas Operacionais
Professor: Carlos Roberto da Silva Filho, M. Eng.
Sistemas Digitais Microprocessados
UNIDADE DE CONTROLE MICROPROGRAMADA PARA O FEMTOJAVA
Componentes do Computador e noções de Arquitetura de Computadores
Processadores.
Sistemas Operacionais
Arquitetura de Computadores
2- Entendendo o que é Arquitetura e Organização
Sistemas Operacionais
Introdução à Programação
SISTEMAS OPERACIONAIS
Sistemas Distribuídos
Arquitetura de computadores
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Sistemas Operacionais I
Arquitetura de computadores
Noções de Software Escola Almirante Soares Dutra
Organização e Arquitetura de Computadores
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Prof. Remy Eskinazi - Microcontroladores
Sistemas Operacionais
Organização e Arquitetura de Computadores
INTRODUÇÃO À COMPUTAÇÃO
Lógica Programável PTC2527 – EPUSP Guido Stolfi.
Single-Chip Cloud Computer (SCC) Um processador many-core experimental desenvolvido pela Intel Labs.
Dispositivos Programáveis
Entrada e Saída (E/S).
Organização de Computadores
Microprocesadores x Microcontroladores
Tópicos em System-Level
Centro de Informática - UFPE
Conceitos Avançados de Arquitetura de Computadores Arquiteturas RISC Arquiteturas Superpipeline e Superescalares.
Engenharia de Sistemas Embarcados Aula 5: Um Conjunto Básico de Ferramentas.
Processadores.
Por: Lucas da Silva Montes, Marcos Ghesla e Vinícius Randon.
Arquitetura de Sistemas Operacionais
Bruna Cavallero Martins Universidade Católica de Pelotas.
Transcrição da apresentação:

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

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

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.

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 !

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

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

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

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

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

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

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

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”

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

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

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

Exemplo: processadores Pentium®

Exemplo: processadores Pentium®

Exemplo: processadores Pentium®

Exemplo: processadores Pentium®

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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

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

Perguntas ?

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.