1 / 26

Unidade Central de Processamento

Unidade Central de Processamento. Sistemas Digitais CIn-UFPE. Unid. controle. Memória Programas + Dados. Vídeo. IR. PC. MAR. Teclado. Gerais. MBR. ALU. E/S. Unid. processamento. Buffers. Como funciona um computador simples. IR – Instruction Register PC – Program Counter

march
Download Presentation

Unidade Central de Processamento

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Unidade Central de Processamento Sistemas Digitais CIn-UFPE

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

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

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

  5. acumulador saída Y Ty entrada Z A +/- X Tz Tula Tx controle clk 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

  6. - 0 0 a 0 - b a - A = b A = a A = c 0 a+b c A=a Y=- X=- Z=- Ty=0 Tx=1 Tz=0 Tula=0 A=b Y=0 X=a Z=0 Ty=1 Tx=1 Tz=2 Tula=0 A=c Y=a X=b Z=0 Ty=1 Tx=1 Tz=2 Tula=0 A=- Y=a+b X=c Z=0 Ty=1 Tx=1 Tz=2 Tula =1 A=- Y=a+b-c X=- Z=0 Ty=0 Tx=0 Tz=1 A=- Y=- X=- Z= a+b-c A = - a+b-c 0 - a+b-c - - A = - A = - Q Q Q Q D C E A ADD ADD SUB CLRLD DISP Q B Q A Clk Z = a+b-c a Y - saída - a+b-c a+b QA Sigad: QB/CLRLD QB QC/ADD QC QD/ADD QD QE/SUB QE QA/DISP Ty Z entrada +/- X Tz A = a Tz Tula Tx controle Clk T [0] = clear [1] = load [2] = hold Tula [0] = + [1] = - 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 ] Clk

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

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

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

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

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

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

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

  14. Memória Opcode | endereço dados Executando um programa Registradores da CPU 1 9 4 0 3 0 2 PC 3 0 0 3 0 1 5 9 4 1 0 0 0 5 AC 2 9 4 1 3 0 2 2 9 4 1 IR ... 0 0 0 3 9 4 0 0 0 0 5 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 Address Bus MAR 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 MachineLanguageLOAD B 0211ADD C 0012 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. A = B+C • A (acumulador), • B e C são endereços de memória Assembly Language MachineLanguageLOAD B 0211ADD C 0012 00 00 07 01 00 12 Load B 1. 2. ADD C CPU - P1 02 11 00 12 00 03 00 04 PC Opcode address 00 04 00 07 1. 2. LOAD B 02 11 00 04 02 11 00 04 00 03 00 12 ADD C 01 01 01 12 12 11 12 11 01 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. a a f f g g e e c c Decoder BCD 7-Segm. b b d d Projeto Dispositivo de I/O Saída Entrada 4 reset 4 clk Controle 5C Moedas 10C Liberar bombom

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

More Related