1 micro parte 1 (conceitos gerais) 2020 - emc › ~jwilson › pdf › 1_micro_parte... ·...
TRANSCRIPT
1Prof. José Wilson Lima Nerys1 Microprocessadores
MICROPROCESSADORES E
MICROCONTROLADORES
José Wilson Lima Nerys
www.emc.ufg.br/~jwilson
Parte 1
2Prof. José Wilson Lima Nerys2 Microprocessadores
Charge publicada no Jornal "The Electrical World 1893 na ocasião do Congresso Internacional de Engenharia Elétrica,
realizado em Chicago, em 21 de agosto de 1893.
Já se passaram pouco mais de 120 anos
3Prof. José Wilson Lima Nerys3 Microprocessadores
Quais são as possibilidades para daqui 50 anos?(comunicação, transporte, medicina...)
4Prof. José Wilson Lima Nerys4 Microprocessadores
Quais são as possibilidades para daqui 50 anos?(comunicação, transporte, medicina...)
5Prof. José Wilson Lima Nerys5 Microprocessadores
O que eles têm em
comum?
6Prof. José Wilson Lima Nerys6 Microprocessadores
Micro
proc
essa
dore
s
Micro
cont
rolado
res
7Prof. José Wilson Lima Nerys7 Microprocessadores
Linha do Tempo
Ábaco(4000 ac)
Octograma chinês
(4000 ac)
LogaritmoJohn NapierTabela de Logaritmo
(1614)
Calculadora de 4 funções
de Leibniz(1671)
Computadores Z1, Z2 e Z3
(1936)
Máquina de diferenças e
Analítica(Babbage)
(1822)
PascalineCalculadora de Blaise Pascal
(1642)
Tear automático com cartão perfurado
(1801)
Computador ColossoVálvulas
(Alan Turing)(1943)
Máquina de Von Newman
Programa armazenado
(1946)
IBM 7090Transistores
FortranCobolPascal(1960)
8Prof. José Wilson Lima Nerys8 Microprocessadores
Linha do Tempo
40044 bits(1971)
80088 bits(1972)
80808 bits(1974)
808616 bits(1978)
80518 bits(1980)
Atmel AVR8 bits(1996)
Pentium 200MMX64 bits(1997)
Raspberry pi(ARM)32 bits(2011)
80858 bits(1976)
808816 bits(1979)
PIC8 bits(1985)
Arduíno(Atmel AVR)
8 bits(2005)
ARM32 bits(1983)
ESP 32(Espressif)
32 bits(2016)
9Prof. José Wilson Lima Nerys9 Microprocessadores
Evolução dos Processadores
10Prof. José Wilson Lima Nerys10 Microprocessadores
Evolução dos Processadores
12Prof. José Wilson Lima Nerys12 Microprocessadores
Quantidade de Transistores
8085 (1976) 3.600 transistores (5 MHz)370.000 instruções/segundo8 bits.
Dual Core (2007): 820 milhões de transistores53.000 milhões de instruções/segundo64 bits. Tecnologia: 45 nm. 3,33 GHz
13Prof. José Wilson Lima Nerys13 Microprocessadores
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Quantidade de Transistores
2 transistores por bit
Quanto maior o número de transistores, maior a quantidade possível de registradores
Aumento no desempenho
14Prof. José Wilson Lima Nerys14 Microprocessadores
Registradores
Os microprocessadores possuem diversos
registradores.
Eles são usados para o armazenamento interno
da CPU.
Existem diversos registradores na CPU e o
principal deles é chamado de Acumulador.
Os registradores são construídos com flip-flops,
que podem reter (armazenar) dados.
15Prof. José Wilson Lima Nerys15 Microprocessadores
Unidade Lógica e Aritmética (ULA ou ALU) - realiza funções básicas
de processamento de dados (adição, subtração, funções lógicas, etc.).
16Prof. José Wilson Lima Nerys16 Microprocessadores
17Prof. José Wilson Lima Nerys17 Microprocessadores
Bit 3 Bit 2 Bit 1 Bit 01 nibble
Menor valor posi�vo 0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
… … … …
Maior valor posi�vo 1 1 1 1 15
Capacidade: 24 = 16 nibbles
Decimal
0
1
2
3
F
Hexa
Número de bits dos Registradores
Quanto maior o número de bits dos registradores, maior a capacidade de processar informações, então maior o desempenho.
18Prof. José Wilson Lima Nerys18 Microprocessadores
Bit 3 Bit 2 Bit 1 Bit 0Bit 7 Bit 6 Bit 5 Bit 41 byte
Menor valor posi�vo 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0
0 0 0 0 0 0 1 1
… … … … … … … …
Maior valor posi�vo 1 1 1 1 1 1 1 1
0
1
2
3
255
Decimal
Capacidade: 28 = 256 bytes
00
01
02
03
FF
Hexa1 byte = 8 bits
Intervalo dos valores positivos e negativos (notação com sinal): 0 a 127 = 00h a 7Fh e -1 a -128 = FFh a 80h
Número de bits dos Registradores
19Prof. José Wilson Lima Nerys19 Microprocessadores
Frequência de ClockAno Processador Frequência de Clock
Tecnologia(tamanho transistor)
1971 4004 108 kHz 10 µm
1972 8008 200 kHz
1976 8085 5 MHz
1978 8086 5 a 10 MHz
1979 8088 5 a 10 MHz
1989 80486 25 a 50 MHz
1997 Pen�um II 450 MHz 0,25 µm
1999 Pen�um III 500 MHz até 1,2 GHz 0,25 µm
2004Pen�um 4 (Presco*)
4 GHz 90 nm
2007 Core 2 3,33 GHz 45 nm
2010 Core i5 3,33 GHz 32 nm
Aum
ento
do d
ese
mpenho
20Prof. José Wilson Lima Nerys20 Microprocessadores
Arquitetura RISC
Arquitetura CISCComplex Instruc�on Set Compu�ng (Computador com Conjunto Complexo de Instruções)
Reduced Instruc�on Set Compu�ng (Computador com Conjunto Reduzido de Instruções)
21Prof. José Wilson Lima Nerys21 Microprocessadores
RISC CISC
Instruções básicas executadas em apenas 1ciclo – uso intenso de superposição na execução de instruções (através de pipeline)
No mínimo 4 ciclos de clock (8085) para executar uma instrução. Tem pouca ou nenhuma superposição na execução de instruções
Uso reduzido da memória – basicamente 2 instruções de acesso à memória (load/store).
Muitas instruções com acesso à memória. Uso intenso da memória (load, store, mov... )
Instruções de tamanho fixo. Exemplo: as instruções do PIC 16F628 têm tamanho fixo de 14 bits.
Instruções de tamanho variável. Exemplo: 8085 tem instruções de 1, 2 e 3 bytes.
Muitos registradores.Exemplo: PIC Fpico possui de 32 a 128 registradores.
Poucos registradores.Exemplo: 8085 possui 7 registradores de propósito geral (A, B, C, D, E, H e L)
Não há necessidade de decodificação das instruções antes de executá-las.As instruções são semelhantes às micro-instruções da arquitetura CISC. As instruções são executadas diretamente no hardware
Ciclo de busca inclui busca na memória e iden�ficação em decodificadores.Uso de micro-instruções gravadas no processador. Necessidade de interpretação das instruções
Instruções simples – 1 ciclo para execução Instruções complexas – múl�plos ciclos para execução.
Número pequeno (ou médio de instruções).Exemplo: PIC 12 e PIC 16 possuem 32 instruções.
Número elevado de instruções.Exemplo: 8085 possui cerca de 74 instruções, que resultam em cerca 255 códigos de operação (opcodes)
Algumas Características RISC X CISC:
22Prof. José Wilson Lima Nerys22 Microprocessadores
Índice de Desempenho de um Microprocessador(velocidade de processamento)
1. Aumento da frequência de clock
2. Aumento do número interno de bits
3. Aumento do número externo de bits
4. Aumento da capacidade e velocidade da memória cache
5. Redução do número de ciclos para execução de cada instrução
6. Execução de instruções em paralelo
23Prof. José Wilson Lima Nerys23 Microprocessadores
Desempenho RISC X CISC:
24Prof. José Wilson Lima Nerys24 Microprocessadores
Ferramentas do Curso:
1. Simulador do Microprocessador 8085: ABACUS
2. Programas aplicados ao microcontrolador 8051:
Edição e Compilação: MCU 8051 IDE
Simulação: MCU 8051 IDE e Proteus
3. Simulador do PIC – MPLAB X IDE
25Prof. José Wilson Lima Nerys25 Microprocessadores
CONJUNTO DE INSTRUÇÕES:
Grupos de instruções mais comuns em processadores de qualquer arquitetura:
Instruções de desvio (No CISC o valor de retorno é guardado na pilha; no RISC é guardado em um registrador.
Instruções de transferência entre registradores e memória
(No RISC: load/store; no CISC: load, store, mov etc)
Instruções de transferência entre registradores
Instruções de transferência entre posições de memória
Operações aritméticas (soma, subtração ...)
Operações lógicas (and, or, not, rotação ...)
26Prof. José Wilson Lima Nerys26 Microprocessadores
PIPELINE:
Técnica usada para acelerar a execução de instruções. A cada ciclo de clock,
enquanto uma instrução está na etapa de execução, a instrução seguinte está
sendo buscada.
O resultado global é que, a cada ciclo, uma nova instrução é iniciada e uma
instrução é encerrada.
No caso mostrado a instrução B faz referência à memória.
Ciclos 1 2 3 4 5
Busca da instrução A B C D E
Execução da instrução A B C D
Referência à memória B
27Prof. José Wilson Lima Nerys27 Microprocessadores
PIPELINE:
Enquanto a instrução A precisa de apenas um ciclo para busca e um para
execução, a instrução B precisa de dois ciclos para execução.
Caso a instrução B interfira na etapa de execução da instrução C (por
exemplo, usando o mesmo registrador ou quando a instrução C precisa do
resultado da instrução B) é necessário aguardar o término da instrução B
antes de executar a instrução C.
Ciclos 1 2 3 4 5 6
Busca da instrução A B C NOP D E
Execução da instrução A B NOP C D
Referência à memória B
28Prof. José Wilson Lima Nerys28 Microprocessadores
29Prof. José Wilson Lima Nerys29 Microprocessadores
Arquitetura do 8085 (detalhe)
31Prof. José Wilson Lima Nerys31 Microprocessadores
Arquitetura do PIC16F
32Prof. José Wilson Lima Nerys32 Microprocessadores
Princípio de Funcionamento 8085
B
A
C
D
LOAD
LOAD
LOAD
LOAD
ENABLE
ENABLE
ENABLE
ENABLE
CLOCK
CLOCK
CLOCK
CLOCK
Chave de 3 estados
33Prof. José Wilson Lima Nerys33 Microprocessadores
A = 15 H
Princípio de Funcionamento 8085
B
C
D
LOAD
LOAD
LOAD
LOAD
ENABLE
ENABLE
ENABLE
ENABLE
CLOCK
CLOCK
CLOCK
CLOCK
MOV D,A
D = 15 H
15 H
34Prof. José Wilson Lima Nerys34 Microprocessadores
Frequência de Clock
CLK
Ciclo de Clock
2
cristalclock
ff =
8085A: fcristal
= 500 kHz a 3,125 MHz
8085A-2: fcristal
= 500 kHz a 5 MHz
Exemplo: Se fcristal
= 2 MHz � fclock
= 1 MHz
Tclock
= 1 µs
35Prof. José Wilson Lima Nerys35 Microprocessadores
Ciclos de Clock, de Máquina e de Instrução
CLK
Estados T1 T2 T3 T4 T1 T2 T3
Ciclo de Máquina 1: M1 Ciclo de Máquina 2 : M2
Ciclo de Instrução
Ciclo de Instrução
Ciclo de Busca
Ciclo de Execução
Ciclo de Execução
36Prof. José Wilson Lima Nerys36 Microprocessadores
Diagrama de Temporização
Estados T1 T2 T3 T4 T1 T2 T3
PC FORA PC+1→PC INST →IR PC FORA PC+1→PC INST →IR
ALE
A15-A8 PC H PC H
AD7-AD0 PC L INST PC L INST
M1 M2
CLK
37Prof. José Wilson Lima Nerys37 Microprocessadores
T1 T2 T3 T4 T1 T2 T3
PC FORA PC+1→PC INST →IR SBE
PC FORA PC+1→PC INST →IR
A15-A8 PC H PC H
AD7-AD0 PC L INST PC L INST
ALE
RD\
WR\
IO-M\
M1 M2
38Prof. José Wilson Lima Nerys38 Microprocessadores
Princípio de Funcionamento 8051
Se f = 12 MHz �
Se f = 11.0592 MHz �
clock
clockf
T1
=clock
clockmáquinaf
TT12
12 =×=
sMHz
Tmáquina µ112
12==
sMHz
Tmáquina µ085,10592,11
12==
39Prof. José Wilson Lima Nerys39 Microprocessadores
Princípio de Funcionamento 8051
Estado S1: a próxima instrução é buscada na ROM, colocada no barramento principal e encaminhada para o registrador IR.
Estado S2: a instrução é decodificada e o PC é incrementado.
Estado S3: os operandos da instrução são preparados
40Prof. José Wilson Lima Nerys40 Microprocessadores
Princípio de Funcionamento 8051
Estado S4: os operandos são enviados para os registradores temporários TMP1 e TMP2, na entrada da ULA
Estado S5: a ULA executa a instrução
Estado S6: o resultado da ULA é colocado no barramento principal e encaminhado para o registrador final.
41Prof. José Wilson Lima Nerys41 Microprocessadores
Formato das Instruções do 8085
Tipo de instrução
Caracterís0cas Exemplos
1 byteO byte da instrução é o próprio Opcode (código de operação)
MOV A,CADD BRLCDCR C
2 bytesO primeiro byte é o Opcode e o segundo byte é o Dado de 8 bits necessário para a instrução
MVI A,35H ADI 05H ORI 01H
3 bytesO primeiro byte é o Opcode; o segundo e o terceiro bytes correspondem a um dado de 16 bits.
LDA 2030HSTA 2040HLXI H,2080H
42Prof. José Wilson Lima Nerys42 Microprocessadores
Formato das Instruções do 8051
OPCODE
OPCODE REG
OPCODE OPERANDO
OPCODE ENDEREÇO DE 11 BITS
OPCODE ENDEREÇO DE 16 BITS
OPCODE OPERANDO 1 OPERANDO 2
1 Byte
2 Bytes
3 Bytes
43Prof. José Wilson Lima Nerys43 Microprocessadores
Formato das Instruções do PIC 16F628
13 8 7 6 5 4 3 2 1 0
OPCODE d f (Endereço do registrador)
Todas as instruções tem 14 bits
Tipo 1: Operações com registradores orientadas por byte
OPCODE � Código da operação
d = 0 � o destino do resultado é o registrador W
d = 1 � o destino do resultado é o registrador f
f � Registrador de endereços de 7 bits (operando)
44Prof. José Wilson Lima Nerys44 Microprocessadores
Formato das Instruções do PIC 16F628
13 10 8 7 6 5 4 3 2 1 0
OPCODE b f (Endereço do registrador)
Tipo 2: Operações com registradores orientadas por bit
OPCODE � Código da operação
b � Endereço de 3 bits
f � Registrador de endereços de 7 bits (operando)
45Prof. José Wilson Lima Nerys45 Microprocessadores
Formato das Instruções do PIC 16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
OPCODE k (literal)
Tipo 3: Operações de controle e literal
OPCODE � Código da operação
k � Indicam um valor constante ou literal
46Prof. José Wilson Lima Nerys46 Microprocessadores
Formato das Instruções do PIC 16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
OPCODE k (literal)
Tipo 4: Operações de desvio
OPCODE � Código da operação
k � Indicam um valor constante ou literal de 11 bits
47Prof. José Wilson Lima Nerys47 Microprocessadores
Flags no 8085
Registrador F: Registra o estado da última operação realizada na ULA
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
S Z × AC × P × CY
48Prof. José Wilson Lima Nerys48 Microprocessadores
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
S Z × AC × P × CY
Flag de Sinal: Assume valor 0 para número positivo (bit 7 = 0) e 1 para negativo (bit 7 = 1)
Flag de Zero: Assume valor 0 para número diferente de zero e 1 para número igual a zero.
Flag Auxiliar de Carry: Assume valor 1 quando há transporte
do Bit 3 para o Bit 4
49Prof. José Wilson Lima Nerys49 Microprocessadores
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
S Z × AC × P × CY
Flag de Paridade: Assume valor 1 quando há uma quantidade par de dígitos 1 no acumulador. Assume valor 0 quando há uma quantidade ímpar.
Flag de Carry: Assume valor 1 quando há transporte do Bit 7 para o bit 8 (O Bit 8 é fora do acumulador)
50Prof. José Wilson Lima Nerys50 Microprocessadores
Exemplo de Operação com Flag do 8085
50
Vai 1 1 1 1 1
A = 85H 1 0 0 0 0 1 0 1
B = 9CH 1 0 0 1 1 1 0 0
A � A + B 0 0 1 0 0 0 0 1
S = 0 � O último bit (bit 7) do resultado, no acumulador, é zero
Z = 0 � O resultado da operação é diferente de zero
AC = 1 � Houve um “vai 1” do bit 3 para o bit 4
P = 1 � Há uma quantidade “par” de dígitos “1” no resultado
CY = 1 � Houve um “vai 1” do bit 7 para “fora” do acumulador (bit 8)
Bit 7 Bit 6 Bit5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
51Prof. José Wilson Lima Nerys51 Microprocessadores
Registrador de Flags – 8051
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
CY AC F0 RS1 RS0 OV × P
ParidadeOverflowUso Geral
Auxiliar de Carry
Carry
RS1 RS0 Banco Selecionado
0 0 0
0 1 1
1 0 2
1 1 3
52Prof. José Wilson Lima Nerys52 Microprocessadores
Registrador de Flags – 8051
OV � overflow � A flag de overflow é setada quando há um carry do bit 7, mas não do bit 6 ou um carry do bit 6, mas não bit 7.
A flag de overflow é útil em operações com número sinalizado representados na forma de complemento de 2. Há duas situações que resultam em OV setado:
• Se a soma de dois números positivos for maior que 7F H e menor que FFH a flag de overflow indica que o número não deve ser interpretado como número negativo.
• Se a soma de dois números negativos (bit 7 = 1) resultar em um número no intervalo de 00 H a 7F H (ou 100 H a 17F H, considerando a flag de carry, que sempre estará presente nessa situação), a flag de overflow indicará que o número não é pra ser interpretado como número positivo.
53Prof. José Wilson Lima Nerys53 Microprocessadores
Registrador de Flags – 8051
Exemplos para a flag de overflow:
1. MOV A,#100 � 64H = 0 1 1 0:0 1 0 0 ADD A,#44 � 2CH = 0 0 1 0:1 1 0 0
Resultado: 144 = 90 H = 1 0 0 1:0 0 0 0 (OV = 1)
Decimal Hexadecimal 1 1 1 1
100 64H 0 1 1 0 0 1 0 0
44 2CH 0 0 1 0 1 1 0 0
144 90H 1 0 0 1 0 0 0 0
Há transporte do bit 6 para o 7, mas não há do bit 7 para o bit 8.Os dois números (64H e 2CH) são positivos na operação com sinal. Assim, o resultado deve ser interpretado como número positivo, mesmo tendo bit 7 igual a 1.
54Prof. José Wilson Lima Nerys54 Microprocessadores
Registrador de Flags – 8051
Exemplos para a flag de overflow:
2. ADD,#01H (Ao resultado da operação anterior: 90H)
Resultado: 145 = 91 H = 1 0 0 1:0 0 0 1 (OV = 0)
144 90H 1 0 0 1 0 0 0 0
01 01H 0 0 0 0 0 0 0 1
145 91H 1 0 0 1 0 0 0 1
Não há transporte do bit 6 para o 7, nem do bit 7 para o bit 8.O número 90H é negativo nas operações com sinal e o número 01H é positivo. Nesse caso não há flag de overflow.
55Prof. José Wilson Lima Nerys55 Microprocessadores
Pilha no 8051
56Prof. José Wilson Lima Nerys56 Microprocessadores
Região de memória usada para guardar endereço de retorno e valores temporários
SP �
Endereço Mnemônico Código
2000 H LXI SP,20FFH 31 FF 20
2003 H
2004 H
xxxxx xxxxx
xxxxx xxxxx
20FF H
Instruções que usam a pilha:
CALL
RET
PUSH
POP
Interrupções
57Prof. José Wilson Lima Nerys57 Microprocessadores
Transferência de dados envolve sempre um par de bytes � 16 bits
O byte mais significativo é sempre guardado primeiro na pilha
O byte menos significativo é retirado primeiro da pilha
O Ponteiro de Pilha SP aponta sempre para o topo da pilha (último valor armazenado)
Registradores utilizados � PSW � A + FlagsB � B + CD � D + EH � H + L
58Prof. José Wilson Lima Nerys58 Microprocessadores
59Prof. José Wilson Lima Nerys59 Microprocessadores
Pilha no 8051
Transferência de dados envolve dados de 8 bits e 16 bits.
Registradores de 16 bits, como DPTR, são guardados em duas operações PUSH e retiradas em duas operações POP
Exemplos:PUSH ACC � Guarda conteúdo do acumuladorPUSH DPH � Guarda 8 bits mais significativos do DPTRPUSH DPL � Guarda 8 bits menos significativos do DPTRPOP ACC � Recupera conteúdo do acumulador
60Prof. José Wilson Lima Nerys60 Microprocessadores
61Prof. José Wilson Lima Nerys61 Microprocessadores
Diferenças básicas entre o uso da Pilha no 8051 e no 8085
Caracterís0ca 8085 8051
Variação do apontador de pilha SP
SP é decrementado nas operações para guardar valores na pilha (PUSH, CALL, chamada de interrupção)
SP é incrementado nas operações para guardar valores na pilha (PUSH, CALL, chamada de interrupção)
Região da memória A região da pilha é a mesma do programa do usuário, podendo haver sobreposição
A pilha é reservada na memória RAM e o programa na memória ROM, não havendo risco de sobreposição
Tamanho do dado guardado
São movimentados 16 bits em cada operação de pilha
São movimentados 8 bits nas operações PUSH e POP e 16 bits nas operações LCALL, RET e chamadas de interrupção.
62Prof. José Wilson Lima Nerys62 Microprocessadores
Bibliografia
[1] ZILLER, Roberto M., “Microprocessadores – Conceitos Importantes,” Edição
do autor, Florianópolis, 2000. ISBN 85-901037-2-2
[2] MALVINO, Albert Paul, “Microcomputadores e microprocessadores;
tradução Anatólio Laschuk, revisão técnica Rodrigo Araês Farias. São
Paulo: McGraw-Hill do Brasil, 1985.
[3] NERYS, José Wilson Lima, “Notas de Aula de Microprocessadores e
Microcontroladores. Página: http://www.emc.ufg.br/~jwilson/teoria.htm