Você está na página 1de 7

von Neumann x Harvard

Endereço da posição

• Vimos já que um único


barramento para instruções (…)
SOMAR

e dados dá origem a um VALOR


INSTR.
Conteúdo:
Código de
instrução
ALU

estrangulamento (von
(…)

Memória

Neumann bottleneck) Registo de


instrução
A1 A2
CPU

• Barramentos separados (como nas arquitecturas


de Harvard) e outras formas de paralelismo
ajudam a melhorar o desempenho

EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 1

Memória de programa e
memória de dados
• Diversos microcontroladores assumem memórias
separadas para armazenamento de programas e
de dados
• No caso da família 51
– As memórias de programa (MP) e dados (MD) partilham
o mesmo barramento (arquitectura tradicional)
– Os “dados” da MD não são operandos das instruções,
mas antes variáveis (ex.: ADD A,#55H — o operando
55H está armazenado na MP logo a seguir ao código de
instrução)
EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 2
MP e MD na família 51
• Normalmente a MP é uma (EP)ROM e a MD uma
RAM
• As (EP)ROM são não-voláteis e conservam o
programa quando se desliga a
alimentação
• As RAM “normais” perdem a informação se falha
a alimentação, embora existam RAM não-voláteis
(que possuem uma bateria interna)

EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 3

Micro(proc. ou contr.):
Conceitos básicos
• Os µP integram uma unidade de processamento
central num só componente (registo CPU

de instrução, registos de trabalho,


ALU
E/S
MEM.
EXT.

apontador de programa, unidade de


CONTR.

descodificação e controlo, etc.) µP


• Onde ficam a memória e a entrada / saída?
• Os µC integram todos estes blocos (unidade de µC
processamento central, memória e CPU

entrada / saída) num só componente


ALU
E/S
MEM.
EXT.

CONTR.

EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 4


Barramentos
• Quer os µP quer os µC dispõem de conjuntos de
linhas para comunicar com outros dispositivos
exteriores:
– Barramento de dados: por onde circulam instruções e
operandos; define a largura da palavra do componente
– Barramento de endereços: indica qual a posição que
se pretende aceder (para leitura ou escrita)
– Barramento de controlo: linhas que coordenam a
interacção com o exterior (ex.: /RD para ler a memória)

EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 5

Microcontrolador, memória
e entrada / saída
• Os quatro tipos de transferência de dados
controlados pelo µC são
– Leitura da memória (dados ou programa)
– Escrita da memória (dados)
– Leitura de um periférico de entrada / saída (ex. a porta
série)
– Escrita num periférico de entrada / saída
• Cada tipo referido pode ainda subdividir-se (ex.: a
leitura da MD tem diferenças face à leitura da MP)

EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 6


A família 51
• Representação de um 8051 com memória externa
(ignorou-se um componente de interligação entre
o µC e as memórias,
para simplificar a
representação)
• Nota: O número de
pinos de E/S será
menor nestes casos…

EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 7

Configuração de pinos no
encapsulamento 40-DIP
• Existem muitos P1.0
P1.1
1
2
40
39
+5 V
P0.0 - AD0
P1.2 3 38 P0.1 - AD1
encapsulamentos P1.3 4 37 P0.2 - AD2
P1.4 5 36 P0.3 - AD3
possíveis (DIP e P1.5 6 35 P0.4 - AD4
P1.6 7 34 P0.5 - AD5
não-DIP, com mais P1.7
RST
8
9
33
32
P0.6 - AD6
P0.7 - AD7
ou menos pinos) P3.0 - RxD
P3.1 - TxD
10
11
31
30
/EA - V PP
ALE - /PROG
P3.2 - /INT0 12 29 /PSEN
P3.3 - /INT1 13 28 P2.7 - A15
Nota: Repare-se P3.4 - T0 14 27 P2.6 - A14
P3.5 - T1 15 26 P2.5 - A13
na multiplexagem P3.6 - /W R 16 25 P2.4 - A12
de sinais nos P3.7 - /RD
XTAL2
17
18
24
23
P2.3 - A11
P2.2 - A10
pinos — porquê? XTAL1
0V
19
20
22
21
P2.1 - A9
P2.0 - A8

EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 8


Organização de memória
• Distingue-se entre
– Memória de programa (MP)
– Memória (de dados) interna
e registos
– Funções internas de E/S
(ex.: portas paralelas)
– Memória de dados (MD) externa
• MP e MD podem ter até 64 KB (uma vez que o
barramento de endereços tem 16 bits)

EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 9

Acesso à memória externa


• Existem três tipos de ciclos
– Leitura da memória de programa —quando /PSEN
desce (sempre que lê o código de uma instrução ou
quando executa a instrução MOVC A,…)
– Leitura da memória de dados externa — quando /RD
desce (quando executa MOVX A,…)
– Escrita na memória de dados externa — quando /WR
desce (quando executa MOVX …,A)

EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 10


Espaços de endereçamento
Até 64 KB de MP — a MP
externa é lida via /PSEN;
/EA permite escolher entre
MP interna e externa

Até 64 KB de MD — a MD
externa é lida via /RD e
escrita via /WR (através
das instruções MOVX)
128 ou 256 bytes de RAM
que contêm os registos R0 Nota: Distingue-se entre
a R7, posições de uso RAM genérica e SFR
genérico, SFR (funções (endereços ≥ 128) através
internas de E/S) e stack
EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 11
do modo de endereçamento

O que é a stack?
Chamada a subrotina (PC) (a apontar para a posição Cód. da instr. actual
com endereço “A”) Cód. da instr. seguinte
Cód. da instr. seguinte
(endereços
(endereços crescentes)
crescentes)
? (livre) (PC) ? (livre)
(PC) ? (livre) Ender. da posição A+1

Código de instrução Código de instrução (PC)

Stack Stack
Subrotina Subrotina

Cód. instr. de retorno


Cód. instr. de retorno
Antes Depois

EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 12


Arquitectura da família 51

EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 13

Outras características da
família 51
• O 8051 realiza operações ao bit (ex.: CLR C),
nibble (SWAP A), byte (MOV R0,#0) e duplo-
byte (MOV DPTR,…)
• A inicialização (reset ou power on) obriga à
execução da instrução presente no endereço 0
• Variantes principais: 803X (sem MP interna), 805X
(MP interna de fábrica), 87XX (MP interna
programável pelo utilizador), 89XX (MP interna do
tipo Flash), 8XCXX (tecnologia CMOS)
EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 14

Você também pode gostar