Escolar Documentos
Profissional Documentos
Cultura Documentos
Microprocessadores
Prof. Pedro Fernandes
Aula 2
Conceitos Básicos
Blocos Básicos de um Microcontrolador
• Um microcontrolador tem 3 blocos básico:
Barramento do Sistema
Entrada Saída
A Unidade de Entrada e
O CPU executa todas as CPU do Elemento de Memória Unidade E/S Saída (E/S) transfere
instruções e faz as microcontrolador
dados entre o
operações lógicas e microcomputador e
aritméticas com os dados. dispositivos externo via
O CPU contém todos os A memória armazena
todas as instruções e registradores. Essa
registradores, unidades de transferência envolve
controle e circuitos lógico- dados. Tipicamente é
separada em memória dados, sinais de controle e
aritméticos. status.
ROM e RAM.
Blocos Básicos de um Microcontrolador
• Barramentos:
• Existem três tipos de barramentos: os barramentos de endereço, de dados e de controle.
Barramento de Endereço
Barramento de Dados
Quando a memória ou os
Barramento de Controle
registradores de E/S
recebem dados do
No barramento de endereço, a
microprocessador, ocorre
transferência de dados é
a operação WRITE.
unidirecional, do CPU para a
Quando a memória ou a
E/S memória ou E/S.
unidade E/S envia dados
ao CPU, então há uma O tamanho do barramento de
operação READ. endereços determina o número de
endereços de memória disponíveis
para execução de instruções pelo
microprocessador.
Blocos Básicos de um Microcontrolador
• Barramentos:
• Existem três tipos de barramentos: os barramentos de endereço, de dados e de controle.
Barramento de Endereço
Barramento de Dados
Quando a memória ou os
Barramento de Controle
registradores de E/S
recebem dados do
O tamanho do barramento de
microprocessador, ocorre
endereços é especificado pelo
a operação WRITE.
número total de bits de endereço
Quando a memória ou a
E/S requerido pela CPU. Desse modo,
unidade E/S envia dados
o barramento de endereço
ao CPU, então há uma
determina o tamanho da memória
operação READ.
principal do microcontrolador.
Quando um CPU com barramento de endereços de 8 bits quer transferir informação para uma certa
parte da memória, ela usa um registrador interno para gerar um endereço de 8 bits o qual irá aparecer
no barramento de endereços. Esses 8 bits são então decodificados para determinar o local de
memória desejado.
Blocos Básicos de um Microcontrolador
• Barramentos:
• Existem três tipos de barramentos: os barramentos de endereço, de dados e de controle.
Barramento de Endereço
Barramento de Dados
Quando a memória ou os
Barramento de Controle
registradores de E/S
recebem dados do
O barramento de dados é
microprocessador, ocorre
bidirecional.
a operação WRITE.
Quando a memória ou a
E/S O barramento de controle consiste
unidade E/S envia dados
ao CPU, então há uma de um número de sinais usados
operação READ. para sincronizar a operação de
cada elemento do
microcomputador. O CPU manda
os sinais para o elemento em
questão para indicar o tipo de
operação a ser realizada.
Blocos Básicos de um Microcontrolador
• Sinais de clock:
• O sinais de clock estão presente no barramento de controle;
• Os sinais geram períodos os quais devem ser obedecidos durante a execução de operações;
• A maioria dos microcontroladores possuem circuitos internos geradores de sinais de clock;
• O número de ciclos por segundo (Hertz) é chamado de frequência de clock;
• Quanto maior a frequência de clock, maior a velocidade do microprocessador;
• A frequência dos microcontroladores típicos variam entre 1 𝑀𝐻𝑧 e 40 𝑀𝐻𝑧.
• A duração de um ciclo de clock é o inverso da frequência;
Arquiteturas de um Microcontrolador
• Um microcontrolador requer memória para armazenar programas e dados;
• Cada instrução de um programa vem acompanhada de um dado (imediato) ou de
um endereço de dado;
• Sendo assim, o microprocessador precisa de duas memórias: a memória de
programa, o qual contém instruções e dados imediatos; e memória de dados,
contendo os dados cujos endereços são especificados nas instruções;
• Desse modo, os dois principais tipos de arquitetura de um microprocessador se
diferem principalmente na forma como essas duas memórias são organizadas.
Arquiteturas de um Microcontrolador
• Arquitetura von Neumann (de Princeton):
• Um único sistema de memória é utilizado com mesmos barramentos de endereço e de dados
para acessar as memórias de programas e de dados;
• As memórias não podem ser executados simultaneamente, o que diminui sua velocidade;
• O microprocessador MSP utiliza essa arquitetura;
Barramento
de Endereço
Memória de
Programa e
Barramento
de Dados
de Dados
Arquiteturas de um Microcontrolador
• Arquitetura de Harvard:
• Utiliza unidades diferentes de memória de programa e de dados, assim como barramentos
diferentes de endereço e de dados;
• Processadores com esta arquitetura necessitam de quatro barramentos para as memórias de
programa e de dados;
• Instruções e dados podem ser acessados simultaneamente;
• O PIC18F utiliza arquitetura de Harvard.
Barramento Barramento
de Endereço de Endereço
Memória Memória
de de Dados
Barramento Barramento
Programa de Dados de Dados
Arquiteturas de um Microcontrolador
• Usando arquitetura de Harvard é possível obter memória de programa e de
dados de tamanhos diferentes, por exemplo, o PIC18F4550 possui memória de
programa com 15 bits para endereços e memória de dados com 14 bits;
• A maioria dos microcontroladores utilizam a arquitetura de Harvard, uma vez que
não é caro implementar os barramentos em um microchipe;
• Apesar da arquitetura von Neumann ter desempenho mais lento, processadores
em geral utilizam esta arquitetura. Um exemplo é o processador Pentium.
Unidade Central de Processamento (CPU)
• O CPU é o cérebro de um microcontrolador. A frequência de clock do CPU
determina a velocidade. O número de bits de dados e endereços de um CPU
resulta na capacidade de memória. As características de E/S e interfaces
dependem dos bits de controle emitidos pela CPU;
• A lógica de um CPU pode ser dividida em três áreas principais: registradores,
unidade de controle e unidade lógico-aritmética (ULA);
Unidade Central de Processamento (CPU)
• Registradores:
• Registrador de Instrução (RI): Responsável por guardar instruções. O conteúdo desse
registrador é sempre decodificado como uma instrução na CPU. Depois de obter um código
de instrução da memória, essa instrução é armazenada neste registrador. Só neste momento
a instrução é decodificada internamente na CPU que então faz a operação requerida;
• Registrador de Endereço de Memória (REM): Contém o endereço de dados. A CPU usa este
endereço como um indicador direto para a memória.
• Acumulador (A): Armazena o resultado da maioria das operações na ULA. Muitas vezes é
utilizado para receber ou mandar bytes para dispositivos externos.
Unidade Central de Processamento (CPU)
• Registradores:
• Contador de Programa (CP): Contém o endereço de uma instrução ou de um código de
operação. Normalmente possui o endereço da próxima instrução a ser executada. Este
registrador possui as seguintes características:
1. Quando a CPU é ligada (ou resetada), a primeira instrução a ser executada é carregada
no CP;
2. Para executar uma instrução, a CPU põe o conteúdo do CP no barramento de
endereços e depois lê o conteúdo desse endereço na memória. O conteúdo do CP é
incrementado automaticamente pela lógica interna do CPU;
3. O conteúdo do CP normalmente é sequencial, contudo pode ser manipulado nas
instruções.
Unidade Central de Processamento (CPU)
• Registradores:
• Dependendo dos registradores, um microcontrolador pode ser classificado como máquina
acumuladora ou baseada em registradores de propósito geral:
• Microcontrolador acumulador: os dados são mantidos por acumuladores, sendo que toda
operação lógica e aritmética usa esses registradores como fontes de dados. O resultado da
operação também é mantido em acumuladores;
Memória de
Dados
Unidade Central de Processamento (CPU)
Memória de
Programa
A
RI As instruções começam
Incremento de 2 CP no endereço 0x0200 da
memória de programa
Conteúdos em A e RI são
desconhecidos neste
momento.
Memória de
Dados
Incremento de 1
Unidade Central de Processamento (CPU)
Memória de
Programa
A O conteúdo no endereço
RI de memória de programa
CP apontado pelo CP é
guardado no RI.
O CP é incrementado
através da ULA para o
próximo endereço de
memória de programa,
com novas instruções.
Memória de
Dados
Unidade Central de Processamento (CPU)
Memória de
Programa
A A CPU realiza a instrução
0E02, e carrega A com
RI
0x02
CP
O RI é carregado então
com a instrução apontada
pelo PC (0x0202)
O CP é incrementado
novamente pela ULA.
Memória de
Dados
Unidade Central de Processamento (CPU)
Memória de
Programa
A
RI
CP
Outros exemplos de flags é o indicador de overflow, o qual indica se um valor é maior que a
capacidade dos registradores, o flag zero o qual indica se um valor é nulo e o flag de sinal,
indicando se um valor é negativo ou positivo.
Unidade Central de Processamento (CPU)
• Unidade de Controle:
• A unidade de controle deve ler e decodificar instruções da memória de programa. Esta
unidade deve interpretar os dados contidos no Registrador de Instrução e responder gerando
uma sequência de sinais de habilitação (enable) para ativar os blocos lógicos apropriados da
ULA;
• Os sinais de controle gerados pela Unidade de Controle podem ser enviados para outros
elementos do microprocessador e vice-versa. Esta comunicação se dá pelo barramento de
controle;
• Alguns sinais comuns de controle:
• 𝑅𝐸𝑆𝐸𝑇 - É uma entrada comum a qualquer CPU, uma vez que essa entrada é ativada, o
Contador de Programa é carregado com um endereço de memória predeterminado;
• 𝑅𝐸𝐴𝐷/𝑊𝑅𝐼𝑇𝐸: Essa é uma saída de comando comum a qualquer CPU, informando aos
outros elementos do microcontrolador se a CPU está lendo ou escrevendo;
• 𝐼𝑁𝑇𝐸𝑅𝑅𝑈𝑃𝑇 𝑅𝐸𝑄𝑈𝐸𝑆𝑇 : Os dispositivos E/S podem realizar um interrupção no
microcontrolador de acordo com a programação realizada. Quando esse comando é
acionado, a CPU pula para uma rotina de interrupção que o usuário deseja realizar. Quando
terminada a rotina, a CPU volta para a instrução onde tinha sido interrompida.
Unidade Central de Processamento (CPU)
• Unidade de Controle:
• Há duas operações básicas na Unidade de Controle:
• Interpretação: a unidade lê a instrução de um endereço de memória indicado no
Contador de Programa e põe seu conteúdo no Registrador de Instrução. A Unidade
reconhece o tipo de instrução, selecionando as operações necessárias e acionando as
unidades apropriadas para a sua execução. A Unidade de Controle então envia sinais
para que a execução seja feita de forma apropriada e transmite o resultado da operação
para o destino especificado;
Latch
Latch
Latch
Latch
Segmento 1 Segmento 2 Segmento 3 Segmento 4
Entrada
Clock
Arquiteturas de CPU
• Existem basicamente dois tipos de arquiteturas de CPU: CISC e RISC.
• Os primeiros microprocessadores utilizavam a arquitetura CISC (Computador com
Complexo Conjunto de Instruções). Estes CPUs contém uma grande gama de
instruções (muitos usados raramente) e modos de endereçamento. Como a
maioria das instruções fazem acesso à memória do sistema, normalmente a
arquitetura CISC funciona com ciclos de clock relativamente baixos e é difícil de
implementar o pipeline;
• No final dos anos 70, foi apresentada a arquitetura RISC (Computador com
Conjunto de Instruções Reduzido), possuindo somente um número considerado
necessário de instruções, uma vez que quase toda tarefa necessita de poucas
instruções para serem realizadas;
Arquiteturas de CPU
• Características da arquitetura RISC:
• É desenvolvido utilizando Unidade de Controle do tipo Hardwired, tendo
pouca ou nenhuma microcomputação envolvida;
• Um CPU RISC realiza a maioria das instruções em um único ciclo de clock;
• O conjunto de instruções do RISC normalmente tem apenas as instruções
REGISTRAR, CARREGAR e ARMAZENAR. As operações aritméticas utilizam a
instrução REGISTRAR e as manipulações da memória utilizam CARREGAR e
ARMAZENAR;
• As instruções possuem formato fixo;
• Um CPU RISC consegue realizar várias instruções simultaneamente,
facilitando a utilização de pipeline;