A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Unidade Central de Processamento

Apresentações semelhantes


Apresentação em tema: "Unidade Central de Processamento"— Transcrição da apresentação:

1 Unidade Central de Processamento
Sistemas Digitais CIn-UFPE

2 Como funciona um computador simples
IR – Instruction Register PC – Program Counter MAR – Memory Address Register MBR – Memory Bus Register Vídeo Teclado Memória Programas + Dados E/S Buffers ALU PC IR Gerais MAR MBR Unid. processamento Unid. controle

3 Como funciona um computador?
Início Busca a próxima instrução Executa a instrução Término

4 Executando um programa
Busca instrução Executa instrução Busca operando Decodifica instrução Armazena resultado Incrementa PC

5 Exemplo – Declarações simples
Muitas vezes o processamento de uma informação exige uma seqüência de transferência até que a tarefa seja terminada. Exemplo 01: /* Programa que a função (a+b-c) e mostra o resultado (z = a+b-c) Sigad: CLRLD /* Clear acumulador Y, Z e carrega valor de A em X ADD /*ADD 1o. valor, guarda resultado e lê novo valor ADD /*ADD 2o .valor, guarda resultado e lê novo valor SUB /*SUB 3o .valor, guarda resultado DISP Sigad /*mostra resultado e repete cálculo em Z Como construir uma unidade de controle que implemente este programa? Estado Estado/saída QA Sigad: QB/CLRLD QB QC/ADD QC QD/ADD QD QE/SUB QE QA/DISP Y +/- X controle Tx Ty Z Tz entrada saída A clk acumulador Tula

6 Z = a+b-c Y - a a+b-c - a+b Z X +/- Q B ADD A=b Y=0 X=a Z=0 A = b a Q
Clk Y - a a+b-c - a+b saída QA Sigad: QB/CLRLD QB QC/ADD QC QD/ADD QD QE/SUB QE QA/DISP Q B ADD A=b Y=0 X=a Z=0 Ty=1 Tx=1 Tz=2 Tula=0 A = b a Q C ADD A=c Y=a X=b Z=0 Ty=1 Tx=1 Tz=2 Tula=0 A = c b a Q D SUB A=- Y=a+b X=c Z=0 Ty=1 Tx=1 Tz=2 Tula =1 A = - c a+b A = a - Q E A=- Y=a+b-c X=- Z=0 Ty=0 Tx=0 Tz=1 DISP A = - - a+b-c A=- Y=- X=- Z= a+b-c Q A A = - - a+b-c Ty Z entrada X +/- Tz Q A CLRLD A=a Y=- X=- Z=- Ty=0 Tx=1 Tz=0 Tula=0 A = a Tz Tx Tula controle Clk Tula [0] = + [1] = - T [0] = clear [1] = load [2] = hold Instruções Ty, Tx, Tz Tula CLRLD = [ 0, 1, 0, x ] ADD = [ 1, 1, 2, ] SUB = [ 1, 1, 2, ] DISP = [ 0, 0, 1, x ] Clk

7 X = -; Y= a+b-c; Z =a+b-c;
Instruções Ty, Tx, Tz Tula CLRLD = [ 0, 1, 0, x] ADD = [ 1, 1, 2, 0] SUB = [ 1, 1, 2, 1] DISP = [ 0, 0, 1, x] Execução de um progama Contador de programa memória Z = a+b-c Y saída cpu Ty entrada Z memória memória A X +/- Tz cpu Inst |dados Tx Tula clk controle memória Contador do Programa (PC) Memória: Instruções end(dados) Z = a + b - c cpu [0,1,0,x] CLRLD end+0(a) X = a; Y=0; Z= 0; X = -; Y=-; Z= -; [1,1,2,0] ADD end+1(b) X = b; Y=a; Z= 0; [1,1,2,0] ADD end+2(c) X = c ; Y= a+b; Z =0; [1,1,2,1] SUB X = -; Y= a+b-c; Z =0; X = -; Y= a+b-c; Z =a+b-c; [0,0,1,x] DISP

8 Memória Dado Instrução sinal magnitude 15 3 Opcode Endereço 4 Opcode
15 sinal magnitude Instrução 15 3 Opcode Endereço 4 Opcode 0001 AC <- Mem. 0010 Mem. <- AC 0101 AC <- AC + Mem.

9 Executando um programa
Memória Opcode | endereço dados Registradores da CPU 3 0 0 3 0 0 PC (endereço) 3 0 1 AC (operando) 3 0 2 IR (Instrução) ... 9 4 0 9 4 1 0001 AC <- Mem. 0010 Mem. <- AC 0101 AC <- AC + Mem.

10 Executando um programa
Memória Opcode | endereço dados Registradores da CPU 3 0 0 3 0 0 PC 3 0 1 AC 3 0 2 IR ... 9 4 0 9 4 1 0001 AC <- Mem. 0010 Mem. <- AC 0101 AC <- AC + Mem.

11 Executando um programa
Memória Opcode | endereço dados Registradores da CPU 3 0 0 3 0 1 PC 3 0 1 AC 3 0 2 IR ... 9 4 0 9 4 1 0001 AC <- Mem. 0010 Mem. <- AC 0101 AC <- AC + Mem.

12 Executando um programa
Memória Opcode | endereço dados Registradores da CPU 3 0 0 3 0 1 PC 3 0 1 AC 3 0 2 IR ... 9 4 0 9 4 1 0001 AC <- Mem. 0010 Mem. <- AC 0101 AC <- AC + Mem.

13 Executando um programa
Memória Opcode | endereço dados Registradores da CPU 3 0 0 3 0 2 PC 3 0 1 AC 3 0 2 IR ... 9 4 0 9 4 1 0001 AC <- Mem. 0010 Mem. <- AC 0101 AC <- AC + Mem.

14 Executando um programa
Memória Opcode | endereço dados Registradores da CPU 3 0 0 3 0 2 PC 3 0 1 AC 3 0 2 IR ... 9 4 0 9 4 1 0001 AC <- Mem. 0010 Mem. <- AC 0101 AC <- AC + Mem.

15 Arquitetura do computador
Dispositivo de entrada e saída(E/S) Memória Processor Memory Input/Ouput PC IR AC MAR Address Bus Data Bus MDR ALU PC = Program counter IR = Instruction register AC = Acumulador MAR = Memory Address Register MDR = Memory Data Register ALU = Arithmetic & Logic Unit Control Unit

16 Arquitetura do computador
PC - program counter – indica a próxima instrução a ser executada. IR - Instruction register – recebe a instrução a ser decodificada pela CPU. AC – Acumulador (registrador auxiliar). Guarda temporariamente valores sendo calculados. MAR – Registrador que indica a próxima posição de memória a ser referenciada. Conectado ao barramento de endereços. MDR – Registrador usado para receber ou transmitir dados. Conectado ao barramento de dados. ALU (ULA) – Unidade Lógica

17 Instruções básicas Formato da instrução do computador

18 CPU - P1 Conjunto de instruções básicas
Exemplo de um programa no P1: A = B+C A (acumulador), B e C são endereços de memória Assembly Language MachineLanguage LOAD B ADD C LOAD address AC <= contents of memory address (02) B(11) ADD address AC <= AC + contents of memory address (00) C(12)

19 CPU - P1 Fluxo de execução de instruções

20 CPU - P1 Fluxo de execução de instruções detalhada

21 1. 2. PC Load address AC<- conteúdo do endereço de memória A = B+C
A (acumulador), B e C são endereços de memória Assembly Language MachineLanguage LOAD B ADD C 0012 CPU - P1 02 11 00 12 00 03 00 04 Opcode address PC 00 04 1. 2. 00 07 00 LOAD B 00 07 00 04 02 11 00 03 00 12 00 04 01 ADD C 01 01 12 12 11 01 12 01 11 Load B 1. ADD C 00 12 00 03 00 04 02 11 Load address AC<- conteúdo do endereço de memória

22 Projetos – 2a unidade

23 Projeto 1:Máquina de vender bombons
Implementar uma máquina que vende bombons, com as seguintes funcionalidades: A máquina aceita moedas de 5 e 10 centavos O valor de cada bombom é de 15 centavos A máquina não dá troco, mas guarda os 5 centavos caso o cliente deposite duas moedas de 10 Centavos O bombom é liberado automaticamente assim que o valor atinge um valor igual ou maior que 15C. Os valores acumulados são apresentados no display. Desenvolver todo o projeto por escrito, no papel Diagrama de estados Tabelas verdade Esquemático Mostra simulação na ferramenta Quartus+II Implementar na placa FPGA

24 Projeto Decoder BCD 7-Segm. Controle Liberar bombom Dispositivo de I/O
Entrada Saída Decoder BCD 7-Segm. 4 reset b a c d e f g b a c d e f g 4 clk Controle 5C Moedas 10C Liberar bombom

25 Projeto 2: CPU CPU Memória PC Y Z ULA Instrução Dados acumulador
4 bits bits Dispositivo de saída Y b a c d e f g Memória Ty Z Barramento de dados X ULA Tz Instruções | Dados Tx Status Tula Controle Decodificador de instruções clk decodificador Barramento de Endereços 0 1 ……..n PC Barramento de dados (Instruções)

26 Projeto Implementar as seguintes funções na arquitetura computacional projetada A = B+C-D A = (B+C)/2 Onde: A é o acumulador B, C e D são endereços de memória que armazenam os dados (positivo ou negativos) a serem processados A, B, C e D possuem 4 bits


Carregar ppt "Unidade Central de Processamento"

Apresentações semelhantes


Anúncios Google