Sistemas Microprocessados: Componentes, Memória e Arquiteturas
Classificado em Computação
Escrito em em português com um tamanho de 11,85 KB
Unidade I: Componentes de um Sistema Microprocessado
O Microprocessador
Um microprocessador é uma máquina capaz de resolver problemas através da execução de instruções que lhe são dadas. Essa máquina executa instruções simples, tais como:
- Somar dois números;
- Verificar se um número é zero;
- Copiar dados de uma parte da memória para outra.
Estas instruções básicas formam a linguagem de máquina. Portanto, um processador executa uma série de instruções de um conjunto conhecido como conjunto de instruções (ISA - Instruction Set Architecture).
Armazenamento do Programa
Onde o programa fica armazenado?
- Um programa fica armazenado na memória de programa, de onde o processador deve buscá-lo para executá-lo;
- Um programa é composto por diversas linhas de instrução, que é a menor porção de um programa;
- Um processador executa uma linha por vez.
CPU (Unidade Central de Processamento)
A função da CPU é buscar as instruções da memória, examiná-las e executá-las. As informações são transmitidas pelo barramento, que pode ser externo ou interno à CPU.
A CPU é composta por partes distintas:
- A Unidade de Controle (UC) é quem busca as instruções e determina o tipo;
- A ULA (Unidade Lógica Aritmética), que executa as operações aritméticas e booleanas;
- O Banco de Registradores, uma memória pequena, mas veloz, para acelerar a execução.
O banco de registradores pode ser de uso geral e pode agrupar configurações dos dispositivos presentes. São de alta velocidade porque estão dentro da CPU. Os mais importantes são o PC (Program Counter) e o IR (Instruction Register), vistos anteriormente.
Organização da CPU: Caminho de Dados
O caminho de dados é composto por:
- Banco de registradores (Ex.: 1 a 32);
- ULA (Unidade Lógica Aritmética);
- Barramentos de conexão e tráfego de dados.
Esse é o modelo de Von Neumann. Atualmente, existem várias implementações diferentes, porém a ideia básica é a mesma.
Execução de uma Instrução
A execução de cada instrução compreende uma série de tarefas:
- Buscar na memória a instrução a ser executada;
- Alterar o PC para apontar para a próxima instrução a ser executada;
- Determinar o tipo de instrução a ser executada;
- Se a instrução usar uma palavra da memória, determinar sua localização;
- Trazer a palavra para dentro de um registrador da CPU, se necessário;
- Executá-la;
- Armazenar o resultado na memória ou em um registrador;
- Voltar para o passo 1.
Exemplo: o processador MIPS.
Componentes de um Sistema Microprocessado: Memória e Barramentos
Exemplo de Memória e Barramentos Externos:
- Clock da CPU;
- Sinais de controle;
- Barramento de dados multiplexado com a parte baixa dos endereços;
- Barramento de endereços.
Exemplo de memória e barramentos internos.
Parâmetros Importantes da CPU
Capacidade de Memória
A capacidade de memória determina o tamanho máximo do programa que pode ser armazenado. Uma memória com "m" pinos de endereço pode endereçar 2^m posições. Ex.: m=16, 2^16 = 65536 bytes.
A largura do barramento de dados determina a organização da memória e quantas palavras são escritas por operação. Ex.: 8, 16, 32 bits.
Memórias podem ser organizadas em palavras de 8, 16 ou 32 bits. Por exemplo, uma CPU que armazena palavras de 32 bits e possui barramentos de dados de 8 bits será mais lenta que uma CPU com barramento de 32 bits, mas será mais barata também.
Sinais de Controle
As CPUs possuem sinais de controle que sinalizam diversas operações:
- Controle de barramento;
- Interrupções;
- Arbitragem do barramento;
- Sinalização de coprocessador;
- Estado;
- Diversos.
Memória
Sua função é armazenar o programa a ser executado e os dados resultantes de operações. Existem memórias de vários tipos: material de construção, capacidade, velocidade, barramentos de comunicação e volatilidade.
O elemento básico de uma memória é o Flip-flop. É o elemento utilizado para armazenar informações em memórias SRAM. Em memórias DRAM, de computadores, um capacitor é utilizado (na verdade, o efeito capacitivo de transistores é utilizado). A capacidade de 1 Flip-Flop é de 1 bit.
RAMs e ROMs
As memórias estudadas até então permitiam escrita e leitura. Estas são chamadas de memórias RAM (Random Access Memory) ou memórias de acesso aleatório. Elas podem ser de dois tipos:
- SRAM (Static Random Access Memory):
- Construída com flip-flops, mantendo a informação enquanto energizadas;
- Muito rápidas;
- Caras;
- Ocupam muito espaço em um chip.
- DRAM (Dynamic Random Access Memory):
- Construída com capacitores, mantendo a informação por pouco tempo, precisa de refresh em intervalos de alguns milissegundos;
- Mais lentas;
- Baratas;
- Ocupam menos espaço em um chip, permitindo alta densidade.
ROMs (Read Only Memory)
Em algumas situações, dados e programas não podem ser alterados e nem mesmo devem ser perdidos após a energia ser retirada. Essas memórias são gravadas durante o processo de fabricação.
A gravação é feita expondo o material fotossensível da memória a uma máscara que contém o padrão de bits a ser gravado. O programa só pode ser trocado substituindo o chip por outro com o novo programa. São muito baratas quando fabricadas em grandes volumes, porém a logística para seu uso as torna difíceis de serem usadas.
Tipos de ROM Programáveis
- PROMs (Programmable Read Only Memory): Essas memórias podem ser gravadas uma única vez, geralmente pelo próprio cliente ou desenvolvedor. Alguns fabricantes de microcontroladores usam este tipo de memória como uma linha de baixo custo.
- EPROM (Erasable Programmable Read Only Memory): As EPROMs são o próximo nível; elas podem ser apagadas através de luz ultravioleta e gravadas novamente. Esse processo pode ser repetido algumas vezes. A vantagem é evidente: o programa pode ser alterado e o chip instalado novamente.
- EEPROM (Electrically Erasable Programmable Read Only Memory): Melhor ainda que a EPROM é a EEPROM. Esta pode ser apagada através de pulso de tensão. Uma tensão próxima de 13,75 V, aplicada durante alguns minutos, apaga totalmente a memória, possibilitando a regravação.
- FLASH: As memórias Flash permitem que apenas alguns blocos sejam apagados. Elas apresentam altas densidades e são as mais utilizadas atualmente. Muito encontrada também como memória de programa de microcontroladores atuais.
Unidade II: Arquiteturas CISC e RISC
CISC (Complex Instruction Set Computer)
As principais vantagens da arquitetura CISC são:
- A capacidade de corrigir em campo instruções implementadas incorretamente ou até compensar deficiências de projeto no hardware básico.
- Acrescentar novas instruções a custo mínimo, mesmo após a entrega da máquina.
- Projeto estruturado, permitia desenvolvimento, teste e documentação eficientes.
O grande problema da arquitetura CISC é que o conjunto de instruções era muito grande (de 200 a 300 instruções diferentes). Isso dificultava o projeto de compiladores por causa do uso adequado de instruções. Este tipo de arquitetura é chamada de CISC - Complex Instruction Set Computer.
RISC (Reduced Instruction Set Computer)
Um grupo se opôs a essa tendência de computadores complexos e caros: a ideia era executar uma quantidade maior de instruções, mais simples, que no final alcançassem um desempenho maior. Surge o conceito de RISC - Reduced Instruction Set Computer.
A chave para o sucesso destes processadores era a quantidade de instruções que podiam ser iniciadas por segundo, não importando o tempo de execução individual. Outra vantagem é que o ISA tinha poucas instruções (50 normalmente).
Surgiu então um debate acalorado entre CISC e RISC. Os argumentos dos defensores do RISC eram:
- Instruções RISC são executadas em um ciclo, ao invés de 4 ou 5 ciclos como nos CISC;
- Se cada instrução RISC fosse executada 10 vezes mais rápida, mesmo que fosse necessário executar 4 instruções RISC para corresponder a uma CISC, isso traria maior desempenho;
- O projeto de compiladores fica mais fácil, uma vez que o ISA é bem menor;
- Também facilita para o programador, pois decorar 50 instruções é bem mais fácil que 300;
- O hardware do RISC é simples e suas instruções são executadas diretamente pelo hardware, isso acelera muito a execução do programa;
- O ISA RISC é padronizado, e todas as instruções têm um tempo de execução igual, isso facilita no uso de técnicas de aceleração;
- Como o ISA é pequeno, precisamos de poucos bits para representá-lo. As instruções são fáceis de decodificar (identificar): Com instruções menores, este processo é acelerado, aumentando a taxa de início das instruções.
- Apenas duas instruções acessam a memória (LOAD e STORE): O acesso à memória é o gargalo dos sistemas atuais; quanto menos acessos forem feitos, melhor. Assim, todas as outras operações usam registradores, muito mais rápidos.
- Muitos registradores (32 geralmente).
Instruções RISC e CISC
Exemplo de processador RISC: MIPS, instruções de 3 operandos. Todas as instruções têm 32 bits (regularidade). Formato das instruções: add $t0, $s1, $s2
.
Processador CISC, 8051: Possui 6 formatos diferentes; as instruções são de 1, 2 ou 3 bytes. Exemplo de programa: multiplicar dois números.
As soluções atuais usam um pouco das duas arquiteturas, chamadas híbridas. Características:
- Possibilitou uma melhor compatibilidade de software e hardware;
- Estabilizou o custo das máquinas e software;
- Ampliou a possibilidade de construção de hardware e software em diferentes linguagens e modos;
- Aumentou a capacidade de processamento.
Microcontroladores
Microcontroladores são computadores embutidos e não são vendidos como PCs. São dispositivos especializados, gerenciam dispositivos e interfaces específicas. Muito utilizados em diversas aplicações: desde eletrodomésticos até medicina. As primeiras versões tinham pouca capacidade; hoje, equipam o iPhone e o iPad.
Possuem as mesmas características básicas dos computadores (memória, CPU, etc.), mas são, geralmente, dispositivos com menor capacidade de memória e processamento. Muito utilizados em aplicações de baixo consumo de energia (low power), como celulares. Largamente usados na indústria em conjunto com CLPs.
Com o avanço da microeletrônica, a capacidade de processamento destes dispositivos aumentou muito. Dividem-se em dois grandes grupos: de uso geral (relógio de pulso) e uso específico (multimídia ou DSP). Outra grande diferença para os PCs está no custo: um microcontrolador pode custar centavos de dólar, enquanto um processador algumas dezenas de dólares.