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:

  1. Buscar na memória a instrução a ser executada;
  2. Alterar o PC para apontar para a próxima instrução a ser executada;
  3. Determinar o tipo de instrução a ser executada;
  4. Se a instrução usar uma palavra da memória, determinar sua localização;
  5. Trazer a palavra para dentro de um registrador da CPU, se necessário;
  6. Executá-la;
  7. Armazenar o resultado na memória ou em um registrador;
  8. 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:

  1. Controle de barramento;
  2. Interrupções;
  3. Arbitragem do barramento;
  4. Sinalização de coprocessador;
  5. Estado;
  6. 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:

  1. A capacidade de corrigir em campo instruções implementadas incorretamente ou até compensar deficiências de projeto no hardware básico.
  2. Acrescentar novas instruções a custo mínimo, mesmo após a entrega da máquina.
  3. 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.

Entradas relacionadas: