Introdução aos Sistemas microprocessados II Prof. Carlos E. Capovilla - CECS/UFABC 1
Visão geral dos sistemas embutidos Sistemas computacionais estão em toda parte Maioria de nós pensam que são computadores apenas: PC s Laptops Mainframes Servidores Mas há outros tipos de sistemas computacionais Muito mais comum... Prof. Carlos E. Capovilla - CECS/UFABC 2
Visão geral dos sistemas embutidos Sistemas computacionais embutidos dentro de dispositivos eletrônicos Difícil de definir. Qualquer sistema computacional exceto um computador desktop Bilhões de unidades produzidas anualmente, contra milhões de unidades de desktop Talvez 50 por eletrodomésticos e por automóvel Computadores estão aqui... e aqui... e até aqui... Lots more of these, though they cost a lot less each. Prof. Carlos E. Capovilla - CECS/UFABC 3
Aplicações Alguns exemplos de onde são usados sistemas microprocessados embutidos Aviônicos, como sistemas de controle inercial, controle de vôo e outros sistemas integrados nas aeronaves, como sistemas de orientação de mísseis; Telefones celulares e centrais telefônicas; Equipamentos de redes de computadores, como roteadores, hubs, switches e firewalls; Impressoras; Dispositivos de armazenamento (discos rígidos e disquetes); Controladores da tracção, do motor e do antibloqueio em automóveis: freios ABS e controle de tração; Prof. Carlos E. Capovilla - CECS/UFABC 4
Aplicações II Mais Alguns exemplos de onde são usados sistemas microprocessados embutidos Calculadoras; Eletrodomésticos, como fornos microondas, máquinas de lavar, aparelhos de TV, DVD players; Equipamentos médicos; Videogames; PDAs; Tratores e implementos agrícolas; Urna eletrônica. Prof. Carlos E. Capovilla - CECS/UFABC 5
Pequena lista de sistemas embutidos Anti-lock brakes Auto-focus cameras Automatic teller machines Automatic toll systems Automatic transmission Avionic systems Battery chargers Camcorders Cell phones Cell-phone base stations Cordless phones Cruise control Curbside check-in systems Digital cameras Disk drives Electronic card readers Electronic instruments Electronic toys/games Factory control Fax machines Fingerprint identifiers Home security systems Life-support systems Medical testing systems Modems MPEG decoders Network cards Network switches/routers On-board navigation Pagers Photocopiers Point-of-sale systems Portable video games Printers Satellite phones Scanners Smart ovens/dishwashers Speech recognizers Stereo systems Teleconferencing systems Televisions Temperature controllers Theft tracking systems TV set-top boxes VCR s, DVD players Video game consoles Video phones Washers and dryers Prof. Carlos E. Capovilla - CECS/UFABC 6
Algumas características comuns Funcionalidade única Executa um programa único, continuamente Restrições de projeto Baixo custo, baixo consumo, pequeno, rápido, etc. Reagem em tempo-real Reagem a mudanças no ambiente onde se encontra o sistema Precisam computar certos resultados em tempo-real sem atrasos (delay) Prof. Carlos E. Capovilla - CECS/UFABC 7
Processadores Processador Circuito digital que executa tarefas computacionais Datapath e controlador Propósito-geral: variedade de tarefas computacionais Dedicados: tarefa única Especializados (para uma área de aplicação): número de tarefas limitadas Um processador dedicado customizado pode ser Rápido, pequeno, baixo consumo CCD preprocessor Microcontroller Entretanto, alto NRE, longo time-to-market, baixa flexibilidade Pixel coprocessor Prof. Carlos E. Capovilla - CECS/UFABC 8 CCD lens Digital camera chip A2D JPEG codec DMA controller D2A Multiplier/Accum Display ctrl Memory controller ISA bus interface UART LCD ctrl
Tecnologia processadores Processador não precisa necessariamente ser programável Processador diferente de processadores de propósito geral Controller Datapath Controller Datapath Controller Datapath Control logic and State register IR PC Register file General ALU Control logic and State register IR PC Registers Custom ALU Control logic State register index total + Data memory Data memory Program memory Assembly code for: Data memory Program memory Assembly code for: total = 0 for i =1 to Propósito geral ( software ) total = 0 for i =1 to Aplicação Específica Processador dedicado ( hardware ) Prof. Carlos E. Capovilla - CECS/UFABC 9
Tecnologia processadores Processadores variam em suas customizações de acordo com o problema em questão Funcionalidade desejada Processador propósito-geral Processador aplicação-específica Processador dedicado Prof. Carlos E. Capovilla - CECS/UFABC 10
Processadores de propósito geral Dispositivos programáveis utilizam uma variedade de aplicações Também conhecidos como microprocessadores Características Memória de programa Datapath (barramento de dados) comum com arquivo de registros extensos e ULA geral Benefícios usuário Baixo custo para colocação no mercado e custos desenvolvimento Grande flexibilidade Pentium o mais conhecido, mas há outros milhares Controlador Lógica controle e registradores de estado IR PC Memória de programa Assembly code for: total = 0 for i =1 to Datapath Arquivo de registro ULA geral Memória de Dados Prof. Carlos E. Capovilla - CECS/UFABC 11
Processadores dedicados Circuito digital projetado para executar exatamente um programa coprocessadores, aceleradores ou periféricos Características Contém somente componentes necessários para execução de um único programa Não possui memória de programa Benefícios Rápido, alto desempenho Baixo Consumo Tamanho reduzido Controller Control logic State register Datapath Data memory Prof. Carlos E. Capovilla - CECS/UFABC 12 index total +
Processadores de aplicação específica Processador programável otimizado para uma classe de aplicações particular tendo em comum algumas características Compromisso entre processadores de propósito geral e dedicado Características Memória de programa Datapath otimizado Unidades com funções especiais Benefícios Flexibilidade, bom desempenho, tamanho e consumo Controller Control logic and State register Prof. Carlos E. Capovilla - CECS/UFABC 13 IR PC Program memory Assembly code for: total = 0 for i =1 to Datapath Registers Custom ALU Data memory
Microcomputador Microcomputador: computador digital com velocidade e recursos limitados, e tipicamente é constituído por: unidade central de processamento; memória; circuitos de entrada e saída. Suas aplicações são também limitadas quando comparadas às de um computador de maior porte. Prof. Carlos E. Capovilla - CECS/UFABC 14
Memória local de armazenamento de Informações Binárias. Podem ser formadas por circuitos semicondutores, mídias magnéticas, mídias ópticas, etc... De uma certa forma, um Registrador pode ser considerado uma memória que armazena apenas uma informação binária por vez. Computador Unidade de processamento que executa Instruções de um programa para realizar alguma tarefa. Instrução define uma única ação que um computador pode executar por vez. As ações das instruções podem ser: leitura ou escrita de uma informação binária na memória, leitura ou escrita de uma informação binária em um registrador, operações lógicas entre informações binárias, operações aritméticas entre informações binárias, etc... Prof. Carlos E. Capovilla - CECS/UFABC 15
Programa conjunto de Instruções arranjadas de maneira organizada por um programador com o objetivo de informar ao Computador qual a tarefa que mesmo deverá executar. Os Programas, em geral, são armazenados na Memória do Computador. Software são os programas que são carregados na memória do Computador para serem executados (Ex: Windows, Office, C++, Netscape, etc...). Firmware são os programas que já estão previamente armazenados em uma memória não volátil (ROM/PROM/EPROM/Flash) e que permitem a operação fundamental de um computador, inclusive a carga de Programas (Software) na memória para serem executados Hardware são as partes eletrônicas, eletro-mecânicas e ópticas de um computador. Prof. Carlos E. Capovilla - CECS/UFABC 16
Componentes básicos de um Computador Prof. Carlos E. Capovilla - CECS/UFABC 17
Nome: AN/FSQ-7 Fabricante: IBM Ano: 1958 Fim da produção: 1963 CPU 55.000 válvulas Velocidade: 75 KIPS (Kilo Instruções Por Segundo) Memória: 8892 palavras Tamanho/Peso: 2000 m2/275 ton Preço: $238 milhões Um pouco de História... 1º Computador Prof. Carlos E. Capovilla - CECS/UFABC 18
Mais um pouco de História... 1º Microprocessador 1971 Intel Corporation lançou no mercado o microprocessador 4004 (3.000 transistores ) O microprocessador é um dispositivo lógico programável em um único chip de silício, concebido sob a tecnologia VLSI (circuito integrado em alta escala). Ele age sob o controle de um programa armazenado em memória, executando operações aritméticas, lógica booleana, tomada de decisão, além de entrada e saída, permitindo a comunicação com outros dispositivos periféricos. Prof. Carlos E. Capovilla - CECS/UFABC 19
Evolução do endereçamento Prof. Carlos E. Capovilla - CECS/UFABC 20
Memórias RAM e ROM RAM (Random Access Memory) - 8k x 8 Volátil (Leitura e Escrita) DRAM (Dynamic RAM) Célula Básica é o Capacitor (acesso atravês de transistor como chave) Memórias grandes (acima de Megabytes) Necessita de circuitos de refresh Mais densas (portanto) Mais baratas SRAM (Static RAM) Célula Básica é o Latch Memórias na faixa de Kilobytes (centenas ou menos) Cada latch utiliza em torno de 5 transistores Menos densas (portanto) Mais caras Prof. Carlos E. Capovilla - CECS/UFABC 21
Memórias RAM e ROM II ROM (Ready Only Memory) Não Volátil (Leitura e Escrita (?*)) ROM (Programavél pelo fabricante) PROM (Programmable ROM - Programavél pelo usuário 1 única vez por hardware externo especial) EPROM (Erasable PROM Reprogramável atravês de hardware externo Apagamento atravês de Luz Ultravioleta) EEPROM (Electrically EPROM Reutilizável atravês de hardware simples) FLASH* (EEPROM Popular -- Apagável por setor) Prof. Carlos E. Capovilla - CECS/UFABC 22
Unidades básicas de um Microprocessador: Prof. Carlos E. Capovilla - CECS/UFABC 23
Unidades básicas de um Microprocessador: Unidade Lógico Aritmética (ULA), responsável pela realização das operações lógicas e aritméticas. (Exemplo soma / subtração simples compl. 2) Unidade de Controle (UC), responsável pela decodificação e execução das instruções, fornecendo os sinais de temporização adequados para as diversas partes do processador e do próprio computador. Registradores para armazenamento da Informação Binária (dados, endereços e instruções). Prof. Carlos E. Capovilla - CECS/UFABC 24
Registradores: De propósito geral: utilizado por exemplo, para as operações de movimentação de dados e operações lógicas e aritméticas. Especiais: são registradores com funções específicas para determinados fins. São exemplos de registradores especiais: Acumulador; Registrador de Flags; Contador do Programa ( Program Counter - PC); Ponteiro da Pilha ( Stack Pointer - SP). Prof. Carlos E. Capovilla - CECS/UFABC 25
Microprocessador X Microcontrolador Prof. Carlos E. Capovilla - CECS/UFABC 26
Evolução dos Microprocessadores Microprocessadores 32 / 64 bits Expansão de barramentos Expansão de clock Uso intenso de armazenamento secundário Hierarquia de memória Casamento com o S.O. Pipeline Microprocessadores de 8 / 16 bits Microcomputadores de 8/16 bits S.O. 8/16 bits Aplicações de propósito geral Aplicações específicas Microcontroladores 8 / 16 / 32 bits Sistemas dedicados Apenas um processamento por vez Integração de I/O e memória Pipeline (depende do modelo)
Microprocessador e Microcontrolador Microprocessador + periféricos Microcontrolador Prof. Carlos E. Capovilla - CECS/UFABC 28
Microcontroladores Os microcontroladores apresentam: menor desempenho que os microprocessadores; custo muito baixo (alguns dólares tipicamente); destinados a aplicações onde as dimensões, custo, tamanho e consumo do produto são muito importantes. Prof. Carlos E. Capovilla - CECS/UFABC 29
Prof. Carlos E. Capovilla - CECS/UFABC 30
Arquitetura de Von Neumann Problemas com a Arquitetura de Von Neumann: Há apenas um barramento (duto) de dados e um de endereço. As Instruções e os dados ocupam o mesmo endereçamento de memória. As Instruções e os dados trafegam pelo mesmo duto (Duto de Dados). Prof. Carlos E. Capovilla - CECS/UFABC 31
Arquitetura Harvard Os dutos (barramento) de endereçamento de dados e instruções de programas são distintos Os dutos de dados (conexão com memória de dados) e instruções (conexão com memória de programa) são distintos Prof. Carlos E. Capovilla - CECS/UFABC 32
SET de Instrução CISC (Von Neumann) Complex Instrution Set Computer (em torno de 100 à 200 instruções) RISC (Harvard) Reduced Instrution Set Computer (exemplo PIC 35 instruções) Prof. Carlos E. Capovilla - CECS/UFABC 33
RISC X CISC RISC (Reduced Instruction Set Computer) CISC (Complex Instruction Set Computer) 1. Instruções simples de apenas 1 ciclo 2. Referências a memória só com LOAD/STORE 3. Uso intensivo de Pipeline 4. Instruções Executadas por Hardware 5. Instruções de formato Fixo 6. Poucas instruções com poucos modos de endereçamento 7. A complexidade está no compilador 8. Vários conjuntos de registradores 1. Instruções complexas com vários ciclos 2. Qualquer instrução pode referenciar à memória 3. Pouco uso de Pipeline 4. Instruções interpretadas por microprograma 5. Instruções com formato variável 6. Muitas instruções com muitos modos de endereçamento 7. A complexidade está no microprograma 8. Um único conjunto de registradores
Operação Básica O microcomputador/microcontrolador é uma máquina eletrônica capaz de buscar e executar instruções de programas alocados em memória; Após a energização de um microcomputador/microcontrolador, é gerado um sinal de reset que zera o Program Counter (PC), ou seja, posiciona o Contador de Programa no endereço inicial. O programa é executado a partir de seu início; O microprocessador/microcontrolador irá buscar e executar a instrução que está localizada no endereço de memória definida pelo PC (início do programa) e então executa-lá. T i M 2 M 3 Ciclo de busca M1 Ciclo de execução Ciclo de instrução Prof. Carlos E. Capovilla - CECS/UFABC 35