Вы находитесь на странице: 1из 5

11/06/2008

CPU DIDÁTICA

α ρ Ck w
h β i σ
Reg.
Mem. Mem.
de
de de
Entr.
Progr. Dados j
u v
l Registrador m
A B n
Ck f Ck
g
Cont. Co C
de s Flag
Ck
Progr. t FC
Fo F

0 1 b0 b3 k
S0 Unidade u
: Lógica E α
d v
Registr. e S3 Aritmética C Pág. β
Fo Co θ0
C de de Ck
Mux θ1
E
de
a Instruções
x Mem. ρ
Z b Ck σ
Flag y
Ω c F o
F Circuito
Z p
b0 q
Acumulador
A10 A9 . . . A2 Q0 b3 r
Ψ Cont. φ0 : x y
A0 Unidade
d de Q3 Reg.
Controle
e Fase φ1 A1 θ0
Ck
Dn . . . D5 D4 D3 D2 D1 D0 θ1 de
... Saída
Ck z
Ck z ... f e d c b a

c b a Mux Flag e d Reg. Instr. g f Cont. Prog. h Mem. Prog. i Mem. Dad.
0 0 0 Flag Fo = 0 0 0 Zerar RI 0 0 Zerar CP 0 Ligar HiZ 0 Ligar HiZ
0 0 1 Flag Fo = 1 0 1 Carregar RI 0 1 Carregar CP 1 Desl. HiZ 1 Desl. HiZ
0 1 0 Flag Fo = b0 1 0 Manter RI 1 0 CP = CP+1 2708 x 1 2114 x 1
0 1 1 Flag Fo = b3 1 1 Manter RI 1 1 Manter CP
1 0 0 Flag Fo = C 74273 x 1 74161 x 2
1 0 1 Flag Fo = E k ULA j Mem. Dad.
1 1 0 Flag Fo = Z Contador Fase Unidade Controle 0 Op. Aritm. 0 Leitura
1 1 1 Flag Fo = Ω 7493 x 1 2716 x 4 1 Op. Lógic. 1 Escrita
74151 x 1 74181 x 1 2114 x 1

n m Reg. AB l Reg. AB q p o Circuito. Acum. w Reg. Entr. β α Mem. Prog.


0 0 Zerar AB 0 Ligar HiZ 0 0 0 Zerar Ac 0 Ligar HiZ σ ρ Mem. Dad.
0 1 Carregar A 1 Desl. HiZ 0 0 1 Carregar Ac 1 Desl. HiZ 0 0 Sel. Pág. 0
1 0 Carregar B 74173 x 2 0 1 0 Manter Ac 74173x 1 0 1 Sel. Pág. 1
1 1 Manter AB 0 1 1 Manter Ac 1 0 Sel. Pág. 2
74173 x 2 1 0 0 F (b3...b0) F 1 1 Sel. Pág. 3
r Circ. Acu. 1 0 1 F (b3...b0) F z Reg. Saída Mem. Prog.
C – Flag de Carry 0 Ligar HiZ 1 1 0 b0 (b3...b0) b3 0 Ligar HiZ 2708 x 1
E – Flag de A = B 1 Desl. HiZ 1 1 1 b0 (b3...b0) b3 1 Desl. HiZ Mem. Dados
Z – Flag de Zero 74194 x 1 74194 x 1 74173x 1 2114 x 1

t s Flag FC v u Reg. Entr. e d Cont. Fase y x Reg. Saída Pág. Memória


0 0 Zerar FC 0 0 Zerar Re 1 0 Parar CF 0 0 Zerar Rs v u Mem. Prog.
0 1 Atualizar C 0 1 Carregar Re Ψ Liberar CF 0 1 Carregar Rs 1 0 β = θ1 α = θ0
1 0 Atualizar F 1 0 Manter Re 7493 x 1 1 0 Manter Rs y x Mem. Dad.
1 1 Manter FC 1 1 Manter Re Ψ – Ctr Externo 1 1 Manter Rs 1 0 σ = θ1 ρ = θ0
7474 x 1 74173x 1 Ω – Ctr Externo 74173 x 1 7474 x 2
11/06/2008

Memória de Dados: para armazenar dados.


Memória de Programa: para armazenar instruções.
Páginas de Memória: para selecionar páginas de memória.
Registradores A e B: para armazenar os operandos A e B.
Contador de Programa: para indicar os endereços das instruções.
Unidade Lógica e Aritmética: para executar operações lógicas e aritméticas.
Registrador de Instruções: para armazenar o código binário das instruções.
Multiplexador de Flag’s: para selecionar a flag utilizada pela instrução.
Circuito Acumulador: para armazenar e processar o resultado da ULA.
Flip-Flop das Flag’s F e C: para armazenar as flag’s F e C.
Contador de Fase: para indicar as fases de cada instrução.
Registrador de Entrada: para entrada de dados de 4 bits.
Registrador de Saída: para saída de dados de 4 bits.
Unidade de Controle: para controlar a CPU.

Flag’s da CPU Variáveis de Controle


C – Flag de Carry (Vai um) a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z
E – Flag de A=B (Igualdade) β ,ρ
α,β ρ,σ
σ Controle de Página de Memória
Z – Flag de Zero (Acumulador) θ0 e θ1 Controle de Página de Memória
F – Flag de Controle da CPU φ0 e φ1 Controle de Fase da CPU
A0 a A10 Unidade de Controle - Via de Endereços
Ctr’s da CPU D0 a D31 Unidade de Controle - Via de Dados
Ω – Ctr Externo (Usuário) Q0 a Q3 Função Lógica/Aritmética da ULA
Ψ – Ctr Externo (Liberar CF) S0 a S3 Função Lógica/Aritmética da ULA
11/06/2008

INSTRUÇÃO DESCRIÇÃO
Reset da CPU Todas as variáveis de controle são zeradas para inicialização do sistema
Ciclo de Busca Busca o código da próxima instrução a ser executada e armazena no RI (Fase 0)
Ciclo de Execução Executa a instrução carregada no RI e prepara o próximo ciclo de busca (Fase 1,2,3)
Mneu Op Op Descrição da instrução Bytes Flags Código
NOP --- --- Nenhuma operação é executada 1 --- 00
MOV A Ac Transfere o conteúdo do acumulador para o registrador A 1 E 01
MOV B Ac Transfere o conteúdo do acumulador para o registrador B 1 E 02
MOV Ac A Transfere o conteúdo do registrador A para o acumulador 1 Z 03
MOV Ac B Transfere o conteúdo do registrador B para o acumulador 1 Z 04
MOV A Adr Transfere o conteúdo do endereço Adr para o registrador A 2 E 05
MOV B Adr Transfere o conteúdo do endereço Adr para o registrador B 2 E 06
MOV Adr Ac Transfere o conteúdo do acumulador para o endereço Adr 2 --- 07
MOV A (AB) Transfere o conteúdo endereçado por AB para o registrador A 1 E 08
MOV B (AB) Transfere o conteúdo endereçado por AB para o registrador B 1 E 09
MOV (AB) Ac Transfere o conteúdo do acumulador para o endereço AB 1 --- 0A
RAL Ac --- Desloca o acumulador para esquerda sem F 1 Z 0B
RAR Ac --- Desloca o acumulador para direita sem F 1 Z 0C
RLF Ac --- Desloca o acumulador para esquerda com F 1 F,Z 0D
RRF Ac --- Desloca o acumulador para direita com F 1 F,Z 0E
RST FC --- Reset dos flag bits F e C 1 F,C 0F
JMP Adr --- Desvia para o endereço Adr 2 --- 10
JPF Adr --- Desvia para o endereço Adr se F = 1 2 --- 11
JNF Adr --- Desvia para o endereço Adr se F = 0 2 --- 12
JMP (AB) --- Desvia para o endereço AB 1 --- 13
JPF (AB) --- Desvia para o endereço AB se F = 1 1 --- 14
JNF (AB) --- Desvia para o endereço AB se F = 0 1 --- 15
CLR Ac --- Zera o acumulador Ac = 0 1 Z 16
CLR AB --- Zera o par de registradores AB 1 E 17

INP A Re Entrada de dados A = Re 1 E 20


INP B Re Entrada de dados B = Re 1 E 21
INP Adr Re Entrada de dados Adr = Re 2 --- 22
INP (AB) Re Entrada de dados (AB) = Re 1 --- 23
OUT Rs Ac Saída de dados Rs = Ac 1 --- 24
OUT Rs Re Saída de dados Rs = Re 1 --- 25
OUT Rs Adr Saída de dados Rs = Adr 2 --- 26
OUT Rs (AB) Saída de dados Rs = (AB) 1 --- 27

STR F 0 Atualiza bit F = 0 - valor lógico 0 1 F 30


STR F 1 Atualiza bit F = 1 - valor lógico 1 1 F 31
STR F b0 Atualiza bit F = b0 - acumulador b0 1 F 32
STR F b3 Atualiza bit F = b3 - acumulador b3 1 F 33
STR F C Atualiza bit F = C - flag de carry C 1 F 34
STR F E Atualiza bit F = E - flag de igual A = B 1 F 35
STR F Z Atualiza bit F = Z - flag de zero Ac = 0 1 F 36
STR F Ω Atualiza bit F = Ω - controle externo 1 F 37

DMi --- --- Seleciona página “i” da memória de dados 1 --- 40...43
PMi --- --- Seleciona página “i” da memória de programa 1 --- 44...47
PMi Adr --- Endereço Adr da página “i” da memória de programa 2 --- 48...4B
PMi (AB) --- Endereço (AB) da página “i” da memória de programa 1 --- 4C...4F

LDn Ac --- Carrega o acumulador com o valor “n” 1 Z 50...5F


OLn Ac AB Operação lógica “n” com operandos A e B 1 Z 60...6F
OAn Ac AB Operação aritmética “n” com operandos A e B 1 Z,C 70...7F
OLn Ac Dat Operação lógica “n” com operando Dat 2 Z 80...8F
OAn Ac Dat Operação aritmética “n” com opernado Dat 2 Z,C 90...9F
ULn Ac --- UpLoad de Ac para o endereço A0 +“n” 1 Z A0...AF
ULn Re --- UpLoad de Re para o endereço B0 +“n” 1 --- B0...BF
DLn A --- DownLoad do endereço C0 +“n” para A 1 E C0...CF
DLn B --- DownLoad do endereço D0 +“n” para B 1 E D0...DF
DLn Rs --- DownLoad do endereço E0 +“n” para Rs 1 --- E0...EF

HLT --- --- Para CF e aguarda Ψ controle externo liberar CF 1 --- FF

Ac = 0 ⇒ Z = 1 A=B⇒E=1
11/06/2008

Programação Registradores Flags Mem. Progr. Mem. Progr. Mem. Dados


Mneu. Oper. Oper. A B Ac Re Rs C E Z F End. Cód. End. Cód. End. Cont.
00H 40H 00H
01H 41H 01H
02H 42H 02H
03H 43H 03H
04H 44H 04H
05H 45H 05H
06H 46H 06H
07H 47H 07H
08H 48H 08H
09H 49H 09H
0AH 4AH 0AH
0BH 4BH 0BH
0CH 4CH 0CH
0DH 4DH 0DH
0EH 4EH 0EH
0FH 4FH 0FH
10H 50H 10H
11H 51H 11H
12H 52H 12H
13H 53H 13H
14H 54H 14H
15H 55H 15H
16H 56H 16H
17H 57H 17H
18H 58H 18H
19H 59H 19H
1AH 5AH 1AH
1BH 5BH 1BH
1CH 5CH 1CH
1DH 5DH 1DH
1EH 5EH 1EH
1FH 5FH 1FH
20H 60H 20H
21H 61H 21H
22H 62H 22H
23H 63H 23H
24H 64H 24H
25H 65H 25H
26H 66H 26H
27H 67H 27H
28H 68H 28H
29H 69H 29H
2AH 6AH 2AH
2BH 6BH 2BH
2CH 6CH 2CH
2DH 6DH 2DH
2EH 6EH 2EH
2FH 6FH 2FH
30H 70H 30H
31H 71H 31H
32H 72H 32H
33H 73H 33H
34H 74H 34H
35H 75H 35H
36H 76H 36H
37H 77H 37H
38H 78H 38H
39H 79H 39H
3AH 7AH 3AH
3BH 7BH 3BH
3CH 7CH 3CH
3DH 7DH 3DH
3EH 7EH 3EH
3FH 7FH 3FH
11/06/2008

Byte 3 Byte 2 Byte 1 Byte 0


Instrução F Código Binário da Instrução Fase
ULA Pm Rs Rs - Pm Re Re - Pm FC Ac Ac AB AB U MD MD MP CP RI - CF MF
Mnemônico F b7 b6 b5 b4 b3 b2 b1 b0 φ1 φ0 s3 s2 s1 s0 θ1 θ0 z y x w v u t s r q p o n m l k j i h g f e d c b a
reset da cpu 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ciclo de busca 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0

mn op op A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 Q3 Q2 Q1 Q0 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

Вам также может понравиться