Sistemas Embebidos I Licenciatura em Eng. de Electrónica e Telecomunicações e de Computadores Licenciatura em Engenharia Informática e de Computadores Mestrado em Engenharia Informática e de Computadores © 2008- 2013, Tiago Miguel Dias ADEETC - Secção de Arquitecturas e Sistemas Operativos I. Sistemas de Computadores: uma breve revisão 1. Características gerais dos sistemas de computadores Um computador é um sistema digital programável através de uma sequência de instruções guardadas em memória que especificam a sequência de operações de manipulação de dados que deve ser executada. Os computadores modernos baseiam-se no modelo de Von Neuman que usa a mesma memória para guardar as instruções e os dados. Este modelo foi proposto na década de 40 e apresenta como principal vantagem a hipótese de se poder tratar as instruções como dados. Principais componentes: Processador (CPU) Responsável pelo processamento das instruções, sendo composto por um circuito de controlo e outro de processamento de dados. Memória Guarda os dados necessários para o funcionamento do processador. Portos E/S Possibilitam a interacção com o mundo exterior ao computador. © 2008- 2013, Tiago Miguel Dias ADEETC - Secção de Arquitecturas e Sistemas Operativos 2 I. Sistemas de Computadores: uma breve revisão 2. Evolução dos sistemas de computadores A evolução nos sistemas de computadores, e em particular dos processadores, tem decorrido a um ritmo alucinante e deve-se fundamentalmente a avanços em três áreas distintas: Tecnologia de implementação Arquitectura do computador Organização do computador Estes avanços permitiram não só diminuir o tamanho e consumo de potência dos computadores, mas também aumentar o seu desempenho e frequência de trabalho, para além de minimizar o custo destes sistemas. 1940 © 2008- 2013, Tiago Miguel Dias ADEETC - Secção de Arquitecturas e Sistemas Operativos 2000 3 I. Sistemas de Computadores: uma breve revisão 3. Arquitectura vs Organização Arquitectura do computador Caracterização do sistema visto pelo programador/utilizador, ou seja, conjunto de instruções, registos, modelo de excepções, gestão de memória, … Organização do computador Caracterização da implementação física, ou seja, a estrutura do pipeline, cache, … Arquitectura Organização ARM7TDMI (ARM) ARM (ARM) ARM9TDMI (ARM) StrongARM SA-1 (Intel) Processor Core © 2008- 2013, Tiago Miguel Dias ADEETC - Secção de Arquitecturas e Sistemas Operativos LPC2106 (NXP) ARM920T (ARM) DragonBall MX1 (Motorola) StrongARM SA-110 (Intel) StrongARM SA-1100 (Intel) CPU Core: processor core + Cache + MMU + interfaces Microcontrolador/ System-on-chip 4 I. Sistemas de Computadores: uma breve revisão 3. Classes de processadores Microprocessadores Chips com grande escala de integração onde são implementados os CPUs. Uso genérico - Máquina de estados que executa comandos/instruções guardados num banco de memória. Cada estado é definido pelos valores guardados em memória e no conjunto de registos associados ao CPU. As instruções definem a forma de evolução dos estados, bem como a próxima instrução a ser executada. DSPs – Processadores dedicados com instruções e unidades funcionais optimizadas para o processamento digital de sinal. Exemplos: Família TMSC320 da Texas. Microcontroladores Processadores destinados ao controlo de sistemas electrónicos autónomos e de custo reduzido que incluem num único chip o CPU, memória e periféricos. Constituem 90% do mercado de vendas de processadores. Convencionais – Dispositivos de 4 ou 8-bit. Exemplos: Intel 8051, família AVR da ATMEL e Motorola 6811. Avançados – Dispositivos de 32-bit com maior desempenho e gerações mais avançadas de periféricos. Exemplos: Intel 8096 e ARMxTDMI. © 2008- 2013, Tiago Miguel Dias ADEETC - Secção de Arquitecturas e Sistemas Operativos 5 I. Sistemas de Computadores: uma breve revisão 4. Evolução para RISC Até à década de 80 a evolução dos processadores assentou fundamentalmente no aumento do conjunto de instruções dos CPUs, por forma a otimizar a tradução dos programas descritos em linguagem de alto nível para linguagem máquina (compiladores muito pouco eficientes). Estes processadores (CISC) tinham um conjunto de instruções vasto, o que dificultava a sua aprendizagem e os tornava pouco eficientes. Tinham elevado consumo de potência e a sua implementação em IC consumia grandes áreas de silício. Maximizar o desempenho de um processador implica otimizar o desempenho das suas unidades funcionais, nomeadamente as que são usadas com maior frequência. © 2008- 2013, Tiago Miguel Dias ADEETC - Secção de Arquitecturas e Sistemas Operativos Tipo de Instrução Utilização Média Transferência de dados 43% Controlo 23% Operações Aritméticas 15% Comparações 13% Operações Lógicas 5% Outras 1% 6 I. Sistemas de Computadores: uma breve revisão 5. Conceito de RISC (Reduced Instruction Set Computer) Classe de arquitecturas de processadores caracterizadas por um conjunto de instruções reduzido e unidades funcionais optimizadas para a sua execução. Características típicas: Arquitectura Load-Store (uma instrução acede à memória para ler/escrever dados); Conjunto de instruções reduzido e de dimensão fixa (32-bit); Banco de registos uniforme e de elevada dimensão (16/32 registos de uso geral); Espaço de endereçamento único (E/S mapeadas no mapa de memória); Instruções executadas num único ciclo de relógio. Vantagens Ciclo de desenvolvimento mais curto e económico; Melhor desempenho (descodificação de instruções em hardware, unidades funcionais optimizadas, pipelinig, uso de cache, …); Consumo de potência reduzido. © 2008- 2013, Tiago Miguel Dias ADEETC - Secção de Arquitecturas e Sistemas Operativos 7