AULA1 – Introdução a Microprocessadores gerais Disciplina: Aplicações Avançadas de Microprocessadores (AAM) Profa. Ana T. Y. Watanabe [email protected] 2013/2 “ Mais vale o bom nome do que as muitas riquezas; e o ser estimado é melhor do que a prata e o ouro”. Provérbios 22:1 Tópicos: • Conceitos gerais • Evolução dos Microprocessadores • Arquiteturas • Principais características dos Microprocessadores • Critérios para escolha de um microprocessador • Perguntas CONCEITOS GERAIS: Microprocessador ? Microcomputador? Microcontrolador? DSP (Digital Signal Processor)? DSC (Digital Signal Controller)? CONCEITOS GERAIS: Microprocessador? Incorpora num único CI LSI (100 a 999 portas) as funções de uma CPU. Processamento complexo, alto custo. Ex.: Microcomputadores, aparelhos eletrônicos em geral. Microcomputador? Membro da família de computadores que consiste de um CI de microprocessador, CIs de memória, e CIs de interfaces de I/O. CONCEITOS GERAIS: Microcontrolador ((µC, uC or MCU) ? => CPU + memória + vários periféricos em um único CI, usado para controle. Microcontrolador dedicado ou embarcado? => Microcontrolador que está embutido em um produto comercial que pode ser um dispositivo ou sistema específico. 1.4. Processadores Sinais Digitais (DSP) Diferem dos microprocessadores na arquitetura de hardware, software e no conjunto de instruções, o qual é otimizado para o tratamento digital de sinais. São empregados em aplicações que exigem processamento de sinais em tempo real, tais como: áudio, imagem, temperatura, intensidade luminosa, pressão, sinais biomédicos, etc. São capazes de realizar operações MAC (Multiplica e ACumula em um único ciclo de instrução), permitindo o processamento em tempo real. CONCEITOS GERAIS: Principais características dos DSPs: Processadores para tratamento de dados em ponto fixo ou flutuante Arquitetura otimizada para computação intensiva. Modos de endereçamento especiais para suporte eficiente a operações de processamento de sinais (endereçamento circular para tratamento de filtros, endereçamento “bit-reverse” para transformada rápida de Fourier...) Formato de dados (16 ou 32 bits típicos) Muitos periféricos especializados “on chip” (portas seriais, memória, timers, conversores A/D e D/A, geradores de PWM, etc) Baixo custo Baixo consumo CONCEITOS GERAIS: Surgimento dos DSPs: Em 1983 surgiu o primeiro processador digital de sinais. Lançado pela Texas Instruments, o TMS320C10 foi especificamente projetado para resolver problemas de processamento digital de sinais, até esta época, feito totalmente no domínio da eletrônica analógica. O Processamento digital de sinais além de muito pouco utilizado, requeria máquinas muito complexas, restritivas às áreas militares, aeroespaciais e de exploração do petróleo. Controladores de Sinais Digitais (DSCs) É um componente recente que integra as características de controle em tempo real de um MCU com as características de processamento em tempo real de um DSP. DSC = controle MCU + processamento DSP São designados para aplicações de áudio e controle de movimentos (motores, encoders, etc.), em particular, aquelas aplicações as quais os microcontroladores não são capazes de atender. Possuem tamanho, custo e periféricos internos tais como os microcontroladores, aliado à capacidade de operação MAC dos DSPs. CONCEITOS GERAIS: Hardware e Software? "hardware" é o conjunto de dispositivos elétricos/eletrônicos que englobam a CPU, a memória e os dispositivos de E/S ou seja, é composto de objetos tangíveis - circuitos integrados, placas de circuito impresso, cabos, fontes de alimentação, memórias, impressoras, terminais de vídeo, teclados, etc. O "software", ao contrário, consiste em algoritmos e suas representações para o computador ou seja, os programas. Firmware? CONCEITOS GERAIS: Firmware? programa ou conjunto de programas (constituintes do "software" básico de um computador) que orientam: a sua partida, a sua inicialização ("bootstraps programs") e a sua operação. Por esta razão são softwares permanentemente residentes em ROM. CONCEITOS GERAIS: Memória principal? bloco de memória interno do microcomputador responsável pelo armazenamento de programas e de dados que podem ser imediatamente acessados pela CPU. Fisicamente é implementada através do uso de pastilhas semicondutoras de memória ROM ("read only memory"), não voláteis e RAM ("random access memory"), voláteis. Memória secundária ou de massa? memória auxiliar, externa, onde possam ser armazenados maior quantidade de dados e programas os quais, não sejam imediatamente necessários a CPU. Embora de acesso mais lento, este tipo de memória é relativamente mais econômico para o sistema do que a memória principal. Exemplos deste tipo de memória são os discos magnéticos e os ópticos. CONCEITOS GERAIS: Memória CACHE? A memória cache surgiu quando percebeu-se que as memórias não eram mais capazes de acompanhar o processador em velocidade, fazendo com que muitas vezes ele tivesse que ficar “esperando” os dados serem liberados pela memória RAM para poder concluir suas tarefas, perdendo muito em desempenho. CONCEITOS GERAIS: Para solucionar este problema, começou a ser usada a memória cache, um tipo ultra-rápido de memória que serve para armazenar os dados mais frequentemente usados pelo processador, evitando na maioria das vezes que ele tenha que recorrer à comparativamente lenta memória RAM. Enfim, é como se fosse um memória auxiliar a RAM. CONCEITOS GERAIS: São usados dois tipos de cache, chamados de cache primário, ou cache L1 (level 1), e cache secundário, ou cache L2 (level 2). O cache primário é embutido no próprio processador e é rápido o bastante para acompanhá-lo em velocidade. CONCEITOS GERAIS: Sempre que um novo processador é desenvolvido, é preciso desenvolver também um tipo mais rápido de memória cache para acompanhá-lo. Como este tipo de memória é extremamente caro (chega a ser algumas centenas de vezes mais cara que a memória RAM convencional) usamos apenas uma pequena quantidade dela. Para complementar, usamos também um tipo um pouco mais lento de memória cache na forma do cache secundário, que por ser muito mais barato, permite que seja usada uma quantidade muito maior. CONCEITOS GERAIS: Caches nos microprocessadores CONCEITOS GERAIS: Caches nos microprocessadores Evolução dos Microprocessadores O primeiro microprocessador utilizado em um computador pessoal foi o Intel 8080 (8 bits ) lançado em 1974; O primeiro microprocessador realmente popular foi o Intel 8088, lançado em 1979 e incorporado a um PC IBM - que apareceu em 1982. O 8088 evoluiu para o 80286, depois para o 80386, 80486, Pentium, Pentium II, Pentium III e Pentium 4, Celeron, Xeon, Itanium, Core2 (Duo – 2 núcleos e Quad – 4 núcleos), i3, i5 e i7 extreme ... Seu principal concorrente, a AMD, evoluiu paralelamente, com o 286A, o 386, 486, 586, K5, K6-3, Athlon, Duron, Sempron, Athlon MX, AMD64, Phenom e Turion. ARQUITETURAS: Como são definidas as arquiteturas dos computadores? Escolha do conjunto de instruções que lhes serão atribuídas e; Escolha do modelo que será usado para acesso a dados e programas. ARQUITETURAS: 1) Pela escolha do seu conjunto de instruções podemos ter: Arquiteturas CISC (Complex Instruction Set Computer) Quando apresentam um conjunto muito grande e complexo de instruções. As máquinas CISC apresentam um conjunto muito grande de instruções (acima de 100 por exemplo) e algumas delas, dado sua complexidade, apresentam formatos diferenciados e são executadas em múltiplos ciclos de relógio. Arquiteturas RISC(Reduced Instruction Set Computer) Quando apresentam um conjunto específico de instruções, sendo de mesmo tamanho e são normalmente processadas em um único ciclo. ARQUITETURAS: Implementações CISC e RISC vem se tornando cada vez mais similares; • Arquiteturas RISC da atualidade possuem um número de instruções equivalente as arquiteturas CISC de gerações anteriores; • Com o aumento da velocidade da tecnologia atual, arquiteturas CISC passaram a executar mais de uma instrução por ciclo, utilizando pipeline. ARQUITETURAS: • Com esses avanços tecnológicos, CISC e RISC passaram a possuir diversas similaridades, e a distinção entre as mesmas deixa de ser tão relevante; • Porém, apesar do aumento no conjunto de instruções, RISC continua utilizando instruções de um ciclo, com um grande número de registradores. Além disso, continua utilizando apenas instruções LOAD/STORE para acesso a memória. ARQUITETURAS: 2) Pela escolha do modelo que será usado para acesso a dados e programas podemos ter: Computadores com arquitetura segundo o modelo proposto pelo Instituto de Estudos Avançados de Princeton (atribuído a Von Neumann) – máquina de Von Neumann Computadores com arquitetura segundo o modelo proposto pela universidade de Harvard – máquina de Harvard. ARQUITETURAS: Modelo von Neumann: Os dados e instruções são armazenados em uma única memória de leitura e escrita, mais simples, menos restritivo, menos eficiente, execução sequencial de instruções. Modelo von Neumann: Dados e instruções armazenados em uma única memória de leitura e escrita. Endereçamento da memória por posição e não pelo tipo; Execução seqüencial de instruções ; e Único caminho entre memória e CPU. Modelo von Neumann: - Arquitetura mais simples; - Mais lento pois não permite acesso simultâneo às memórias. ARQUITETURAS: Modelo Harvard: Variação da arquitura von Neumann; Barramentos separados para instruções e dados, portanto trafegam em barramentos diferentes => paralelismo; Memórias separadas para instruções e dados. ARQUITETURAS: Modelo Harvard: ARQUITETURAS: Modelo Harvard: ARQUITETURAS: Idéia de pipeline: ARQUITETURAS: Pipeline é uma técnica de hardware que permite que a CPU realize a busca de uma ou mais instruções além da próxima a ser executada. Estas instruções são colocadas em uma fila de memória(dentro da CPU) onde aguardam o momento de serem executadas. A técnica de pipeline é utilizada para acelerar a velocidade de operação da CPU, uma vez que a próxima instrução a ser executada está normalmente armazenada dentro da CPU e não precisa ser buscada da memória, normalmente muito mais lenta que a CPU. ARQUITETURAS: O modelo de Von Neumann é usado pela maioria dos microprocessadores tradicionais e o modelo de Harvard é usado pela grande maioria dos microcontroladores e DSPs. ARQUITETURAS: Beneficiados pelos avanços da tecnologia de fabricação e pelo elevado grau de miniaturização dos chips, muitas inclusões foram feitas aos modelos de Von Neumann e de Harvard, no entanto, a essência de suas proposições estão mantidas até os dias de hoje. Principais características dos Microprocessadores: Largura de bus de endereços elevada (permite o gerenciamento de grande quantidade de memória) Unidade de gerenciamento de memória integrada Co-processador matemático e unidade lógica e aritmética com suporte à operações numéricas complexas tais como multiplicação em ponto flutuante. Sofisticados modos de endereçamento para eficiente suporte as funções de linguagens de alto nível. Alto custo Alto consumo de energia. Critérios para escolha de um microprocessador: Funcionalidade do conjunto de instruções Arquitetura e modos de endereçamento Velocidade de execução (não exatamente a freqüência do clock) Capacidade aritmética e lógica Capacidade de endereçamento Consumo de energia Tamanho Presença de periféricos necessários a aplicação. Ponto Fixo: Em computação, uma representação de número de ponto fixo é um tipo de dados real para um número que tem um número fixo de dígitos depois (e às vezes também antes) do ponto decimal. Por exemplo, uma representação de ponto fixo que tem sete dígitos decimais com duas casas decimais pode representar os números de 12345,67, 123,45, 1,23, etc Ponto Flutuante: Em computação, uma representação de números reais em ponto flutuante, refere-se ao fato de que o ponto decimal pode "flutuar", isto é, ele pode ser colocado em qualquer lugar em relação aos algarismos significativos do número. Ponto Flutuante: http://www.slideshare.net/adorepump/aritmeticacomputacional-presentation Ponto Flutuante: PERGUNTAS: 1) Qual a diferença básica entre microprocessador e microcontrolador? 2) O que é memória cache? Qual a sua finalidade? 3) Quais as diferenças entre software e firmware? 4) Como são definidas as arquiteturas dos computadores? Explique. 5) Quais as principais características dos Microprocessadores? 6) Quais as principais características dos DSPs? 7) Qual a diferença fundamental entre a arquitetura von Neumann e a Harvard? Qual é a mais rápida? Justifique. 8) O que é pipeline? Qual a vantagem? 9) Qual a diferença entre CISC e RISC? 10) O que são em computação ponto fixo e flutuante de números reais?