1 / 31

Função básica da CPU

Função básica da CPU. Buscar uma instrução na memória Interpretar qual operação é representada pela instrução Trazer (se for o caso) os operandos para a CPU Executar a operação Armazenar (se for o caso) os dados de saída Repetir o processo com uma nova instrução

ziven
Download Presentation

Função básica da CPU

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. Função básica da CPU • Buscar uma instrução na memória • Interpretar qual operação é representada pela instrução • Trazer (se for o caso) os operandos para a CPU • Executar a operação • Armazenar (se for o caso) os dados de saída • Repetir o processo com uma nova instrução  etapas do Ciclo de Instrução

  2. Performance • Medida de performance baseadaem: • número de instruções • período do clock • ciclos de clock porinstrução (CPI) • Clock • dispositivogerador de pulsos (medidoem Hertz) • Para cadapulso do relógio se realizauma micro-instrução • A quantidade de vezesque o pulso se repeteem um segundo define a velocidade do clock • Freqüênciamedidaem Hertz (1 cicloporsegundo) Ex: 1 MHertz

  3. Performance • Número de instruções • Depende do programa • Período do clock e ciclos de clock por instrução • Dependem da implementação do processador

  4. Implementação da UCP • Definir como a instrução • Construção do caminho do dados • Definição da unidade de controle • Começar por uma implementação simples (cada instrução dura exatamente um clock) e ir melhorando iterativamente

  5. Unidades da UCP Composta por 2 tipos de unidades funcionais: • Elementos que operam sobre valores de dados • Ex: ULA (Unidade Lógica e Aritmética) = ALU • Elementos de estados • Ex: Registradores e a memória de instruções e dados

  6. Unidades da UCP • Elementos “combinacionais”: • Elementos que operam sobre valores de dados • Saída depende somente das entradas • Dado o mesmo conjunto de entradas, produz sempre a mesma saída • Saída é uma “combinação” dos dados de entrada • Elementos “seqüenciais”: • Elementos de estados • A saída depende tanto da entrada como do estado interno do elemento • Ex: Uma operação no banco de registradores depende tanto do número do registrador quanto do valor armazenado no registrador

  7. Elementos necessários para construção da UCP • Lugar para guardar as instruções do programa • Memória de instruções (elemento de estados) • Elementos para guardar o endereço da instrução • ProgramCounter (PC) (elemento de estados) • Elemento para adicionar 1 ao PC para que este possa ir para a próxima instrução • ULA (Unidade Lógica e Aritmética) (elemento combinacional)

  8. Elementos necessários para construção (I) • Memória de instruções • PC • ULA só de soma Endereço de leitura Instrução Memória de Instruções PC Somador

  9. Caminho de dados da Busca da Instrução • Busca a instrução na memória, cujo endereço está no contador de programa PC • Incrementa o contador de programa PC de 1 1 Somador PC Endereço de leitura Instrução Memória de Instruções

  10. Subconjunto de instruções • O foco será dado em um subconjunto de instruções: • Aritmética: add e addi • Memória: lw e sw • Desvio: beq • Para cada instrução iremos definir o caminho de dados • O método de implementação das outras instruções ocorre a partir das instruções básicas

  11. 0 op regA 0 destreg rd regB 3 bits 3 bits 3 bits 13 bits 3 bits 7 bits Revisão do Formato das Instruções (I) • R-FORMAT (lê dois registradores e escreve o resultado em outro registrador) • add regA regB destreg 31 25 24 22 21 19 18 16 15 3 2 0 op: código de operação regA: registrador com primeiro operando fonte regB: registrador com segundo operando fonte destreg: registrador que guarda resultado da operação

  12. Exemplo: Instrução de Soma • add regA regB destreg • Mem[PC] Obtém instrução da memória • R[destreg] R[regA] + R[regB] Executa operação de soma • PC PC + 1 Calcula próximo endereço Buscar informação dos registradores Somar os valores Guardar informação no registrador

  13. Elementos necessários para construção (II) • Banco de Registradores com 8 registradores • Registrador selecionado por • Reg a ser lido #1 • Reg a ser lido #2 • “Reg a ser escrito” seleciona registro que recebe “dado a ser escrito” quando EscReg=1 • Um barramento de 32 bits de entrada • Dado a ser escrito • Dois barramentos de 32 bits de saída • Dado lido #1 e Dado lido #2 • Registrador 0 tem o valor 0

  14. Elementos necessários para construção (II) • Banco de Registradores com 8 registradores Reg a ser lido # 1 Reg a ser lido #2 Reg a ser escrito Dado de escrita 3 32 Dado lido #1 Dadolido #2 3 No do registrador Dado 32 3 32 Dado EscReg

  15. Elementos necessários para construção (III) • Elementos Combinacionais Select (=0 linha de cima, =1 linha de baixo) Somador 32 X MUX A 32 C Soma = X + Y B Y 32 Multiplexador Controle da ULA (operação a ser executada) 3 32 Zero Usado para verificar se 2 dados são iguais ULA Resultado da UAL 32 32

  16. Caminho de Dados paraInstruções do tipo R-FORMAT • R[destreg] R[regA] op R[regB] • Reg a ser lido #1 = regA, Reg a ser lido #2=regB • Reg a ser escrito= destreg • Controle da UAL e de EscReg baseado no código da instrução

  17. Caminho de Dados paraInstruções do tipo R-FORMAT • R[destreg] R[regA] op R[regB] I N S T R U Ç Ã O Operação da UAL 3 Reg a ser lido # 1 Reg a ser lido #2 Reg a ser escrito Dado de escrita 3 3 32 Dado lido #1 Dadolido #2 Zero UAL 3 32 Resultado da UAL 32 EscReg

  18. Revisão do Formato das Instruções (II) • I-Format (trabalha com imm) • lw regA regB imm • sw regA regB imm • addi regA regB imm • beq regA regB imm • Desvio utiliza endereço PC relativo (PC + 1 + imm) 31 25 24 22 21 19 18 16 15 0 imm op regA 0 regB 3 bits 3 bits 16 bits 3 bits 7 bits

  19. Exemplo: Instrução de Carga • lw regA regB imm • mem[PC] Busca instrução na memória • End R[regA]+SignExt(imm) Calcula o endereço da memória • R[regB] Mem[End] Carrega os dados da memória no registrador • PC PC+1 Calcula o próximo endereço 32 bits 16 bits Buscar informação em registrador Transformar 16 bits em 32 bits Pegar informação da memória Guardar informação do registrador

  20. Elementos necessários para construção (IV) • Extensão de sinal • Transformar um número com 16 bits em um com 32 bits • Replicar o bit mais significativo: • Ex: (2)10 = 0000 0000 0000 0010 (com 16 bits)0000 0000 0000 0000 0000 0000 0000 0010 • Ex: (-2)10 = inv (0000 0000 0000 0010)+1=1111 1111 1111 1110 (com 16 bits)1111 1111 1111 1111 1111 1111 1111 1110

  21. Elementos necessários para construção (IV) • Extensão de sinal Extensão de sinal 16 32

  22. Elementos necessários para construção (V) • Memória • Um barramento de entrada: Dado a ser escrito • Um barramento de saída: Dado lido • Seleção de endereço • Endereço seleciona a palavra a ser colocada em Dado lido ou endereço no qual o Dado a ser escrito será posto • Para escrever no endereço, seta EscMem para 1 • Para ler do endereço, seta LerMem para 1

  23. Elementos necessários para construção (V) • Memória EscMen Endereço Dado a ser escrito Dadolido LerMem

  24. Caminho de Dados paraInstrução de Carga • lwregAregBimm (guarda no regB o dado do endereço de memóriaregA+imm) Operação da UAL 3 Reg a ser lido # 1 Reg a ser lido #2 Reg a ser escrito Dado de escrita 3 EscMen I N S T R U Ç Ã O 32 Dado lido #1 Dadolido #2 Zero Endereço Dado a ser escrito UAL Dadolido 3 32 LerMem EscReg Extensão de sinal 16 32

  25. Exemplo: Instrução de Armazenamento • sw regA regB imm • mem[PC] Busca instrução na memória • End R[regA]+SignExt(imm) Calcula o endereço da memória • Mem[End] R[regB] Carrega os dados na memória • PC PC+1 Calcula o próximo endereço Buscar informação em registrador Transformar 16 bits em 32 bits Pegar informação em registrador Guardar informação na memória

  26. Caminho de Dados paraInstrução de Armazenamento • swregAregBimm(guarda no enderenço de memóriaregA+imm o dado de regB) Operação da UAL 3 Reg a ser lido # 1 Reg a ser lido #2 Reg a ser escrito Dado de escrita 3 I N S T R U Ç Ã O 3 32 Dado lido #1 Dadolido #2 Zero EscMen UAL Endereço Dado a ser escrito Dadolido LerMem EscReg Extensão de sinal 16 32

  27. Revisão do Formato de Instrução de DesvioCondicional (III) • beq regA regB imm • mem[PC] Busca instrução na memória • Cond R[regA]-R[regB] Calcula a condição de desvio • if (Cond eq 0) • PC PC+1 + SignExt(imm) Calcula endereço PC relativo • else • PC PC+1 Calcula o próximo endereço

  28. Caminho de Dados paraInstrução de DesvioCondicional PC+1 vindo do caminho de dados de busca de umainstrução Endereçoalvo do desviocondicional 3 Reg a ser lido # 1 Reg a ser lido #2 Reg a ser escrito Dado de escrita Somador I N S T R U Ç Ã O 3 Dado lido #1 Dadolido #2 Para a lógica de controle do desvio condicional UAL Zero 3 Operação da UAL EscReg Extensão de sinal Se R[regA]-R[regB] = 0 o sinal na saída Zero é 1. Se R[regA]-R[regB] != 0 o sinal na saída Zero é 0. 16 32

  29. Passos do Projeto • Objetivos: projetar um caminho de dados para possibilitar a execução de todas as instruções vistas em um único ciclo de clock • De acordo com a arquitetura do conjunto de instruções, define-se uma estrutura organizacional macro. • Essa estrutura é refinada para definir os componentes do caminho de dados, suas interconexões e pontos de controle • Estrutura de controle é definida • O projeto do caminho de dados e controle é refinado para projeto físico e validação funcional

  30. Caminho de Dados • Busca de Instrução + InstruçõesAritm. e Lóg. (R-format) + Instruções de Referência à Memória (I-Format) 1 Somador Operação da UAL Reg a ser lido # 1 Reg a ser lido #2 Reg a ser escrito Dado de escrita 3 PC Endereço de leitura Dado lido #1 Dadolido #2 EscMen Zero Instrução M U X Endereço Dado a ser escrito UAL M U X Dadolido M U X Memória de Instruções EscReg LerMem Extensão de sinal 16 32

  31. Caminho de Dados • Busca de Instrução + InstruçõesAritm. e Lóg. (R-format) + Instruções de Referência à Memória (I-Format) + Desvio M U X 1 Somador UAL Reg a ser lido # 1 Reg a ser lido #2 Reg a ser escrito Dado de escrita DvC 3 PC Endereço de leitura Dado lido #1 Dadolido #2 EscMen Instrução M U X Endereço Dado a ser escrito UAL M U X Dadolido M U X Memória de Instruções LerMem EscReg Extensão de sinal 16 32

More Related