Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal de Pelotas Instituto de Física e Matemática Departamento de Informática Bacharelado em Ciência da Computação Arquitetura Arquitetura e e OrganizaOrganizaçãçãoo de de Computadores Computadores IIII Aula 5 2. MIPS multiciclo: projeto do bloco de controle com Máquina de Estados Finitos (FSM) Prof. José Luís Güntzel guntzel@ufpel.edu.br www.ufpel.edu.br/~guntzel/AOC2/AOC2.html slide 5.2 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Visão Geral da Máquina de Estados Busca da instrução/decodificação + leitura dos registradores (Rs e Rt) início Instruções de referência à memória Instruções tipo R Instruções de desvio condicional Instruções de desvio incondicional Cada caixa pode representar um ou mais passos e portanto, pode executar em um ou mais ciclos de relógio (dependendo da instrução). 0 1 4 2 6 7 3 5 8 9 slide 5.3 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Resumo dos Passos Necessários para Cada Instrução 5 Reg[RI[20-16]] = RDM RDM = Mem [ULASaída] ULASaída = A + extensão de sinal (RI[15-0]) Instrução lw Término de uma instrução load word 3344Número de passos Mem [ULASaída] = B Reg [RI[15-11]] = ULASaída Término de uma instrução store word ou de tipo R PC = PC[31-28] || (RI[25-0] <<2 ) Se (A == B) então PC = ULASaída ULAOp = A op B Execução, cálculo do endereço de acesso à memória, término de uma instrução branch/jump A = Reg [RI[25-21]] B = Reg [RI[20-16]] ULASaída = PC + (extensão de sinal(RI[15-0]) <<2) Decodificação da instrução & leitura dos registradores Rs e Rt & cálculo do endereço de desvio (cond.) RI = Mem[PC] PC = PC + 4 Busca da instrução Instrução jInstrução beqInstrução swInstrução tipo RNome do passo 0 1 4 26 7 3 5 8 9 slide 5.4 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Sinais de Controle do Bloco Operativo Multiciclo 32 Endereço DadoMem Memória PC Dado a ser escrito M U X 0 1 Zero Resultado ULA Reg a ser lido #1 Reg a ser lido #2 Reg a ser escrito Dado de escrita Dado lido #1 Dado lido #2 Registradores Registrador de instrução Registrador de dados da memória A B ULA Saída 32 [25-21] [20-16] [15-11] M U X 0 1 [15-0] M U X 0 1 M U X 0 1 2 3 M U X 0 1 Exten- são de sinal Desl. à esq. 2 bits 4 3216 IouD LerMem EscMem IREsc Opera- ção da ULA 2 6 32 [5-0] EscReg RegDst Controle ULAOp ULAFonteA FontePCPCEscCond PCEsc MemParaReg ULAFonteB 2 Desl. à esq. 2 bits M U X 0 1 2 26 [25-0] [31-28] 26 28 4 PC+4 end. desvio cond. end. desvio incond. 2 [31-0] slide 5.5 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Sinais de Controle da ULA O campo “funct” determina a operação da ULA 10 ULA realiza subtração01 ULA realiza adição00 EfeitoULAOp slide 5.6 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Estado 0: RI = Mem[PC]; PC = PC + 4; 32 Endereço DadoMem Memória PC Dado a ser escrito M U X 0 1 Reg a ser lido #1 Reg a ser lido #2 Reg a ser escrito Dado de escrita Dado lido #1 Dado lido #2 Registradores Registrador de instrução Registrador de dados da memória A B ULA Saída 32 [25-21] [20-16] [15-11] M U X 0 1 [15-0] M U X 0 1 M U X 0 1 2 3 M U X 0 1 Exten- são de sinal Desl. à esq. 2 bits 4 3216 IouD LerMem EscMem IREsc Opera- ção da ULA 2 6 32 [5-0] EscReg RegDst Controle ULAOp ULAFonteA FontePCPCEscCond PCEsc MemParaReg ULAFonteB 2 Desl. à esq. 2 bits M U X 0 1 2 26 [25-0] [31-28] 26 28 4 Zero Resultado ULA 1 1 0 0 01 001 200 [31-0] LerMem = 1 ULAFonteA = 0 IouD = 0 IREsc = 1 ULAFonteB = 01 ULAOp = 00 PCEsc = 1 FontePC = 00 0 slide 5.7 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Estado 1: Decodificação; A = Reg[ RI[25-21] ]; B = Reg[ RI[20-16] ]; ULASaída = PC + (extensão de sinal (RI [15-0]) << 2 ) 32 Endereço DadoMem Memória PC Dado a ser escrito M U X 0 1 Zero Resultado ULA Reg a ser lido #1 Reg a ser lido #2 Reg a ser escrito Dado de escrita Dado lido #1 Dado lido #2 Registradores Registrador de instrução Registrador de dados da memória A B ULA Saída 32 [25-21] [20-16] [15-11] M U X 0 1 [15-0] M U X 0 1 M U X 0 1 2 3 M U X 0 1 Exten- são de sinal Desl. à esq. 2 bits 4 3216 IouD LerMem EscMem IREsc Opera- ção da ULA 2 6 32 [5-0] EscReg RegDst Controle ULAOp ULAFonteA FontePCPCEscCond PCEsc MemParaReg ULAFonteB 2 Desl. à esq. 2 bits M U X 0 1 2 26 [25-0] 26 28 4 0 11 00 2 [31-28] [31-0] ULAFonteA = 0 ULAFonteB = 11 ULAOp = 00 1 slide 5.8 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Estado 2: ULASaída = A + extensão de sinal (RI[15-0]); 32 Endereço DadoMem Memória PC Dado a ser escrito M U X 0 1 Zero Resultado ULA Reg a ser lido #1 Reg a ser lido #2 Reg a ser escrito Dado de escrita Dado lido #1 Dado lido #2 Registradores Registrador de instrução Registrador de dados da memória A B ULA Saída 32 [25-21] [20-16] [15-11] M U X 0 1 [15-0] M U X 0 1 M U X 0 1 2 3 M U X 0 1 Exten- são de sinal Desl. à esq. 2 bits 4 3216 IouD LerMem EscMem IREsc Opera- ção da ULA 2 6 32 [5-0] EscReg RegDst Controle ULAOp ULAFonteA FontePCPCEscCond PCEsc MemParaReg ULAFonteB 2 Desl. à esq. 2 bits M U X 0 1 2 26 [25-0] 26 28 4 1 10 00 2 [31-28] [31-0] ULAFonteA = 1 ULAFonteB = 10 ULAOp = 00 2 slide 5.9 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Estado 3: RDM = Mem[ULASaída]; 32 Endereço DadoMem Memória PC Dado a ser escrito M U X 0 1 Zero Resultado ULA Reg a ser lido #1 Reg a ser lido #2 Reg a ser escrito Dado de escrita Dado lido #1 Dado lido #2 Registradores Registrador de instrução Registrador de dados da memória A B ULA Saída 32 [25-21] [20-16] [15-11] M U X 0 1 [15-0] M U X 0 1 M U X 0 1 2 3 M U X 0 1 Exten- são de sinal Desl. à esq. 2 bits 4 3216 IouD LerMem EscMem IREsc Opera- ção da ULA 2 6 32 [5-0] EscReg RegDst Controle ULAOp ULAFonteA FontePCPCEscCond PCEsc MemParaReg ULAFonteB 2 Desl. à esq. 2 bits M U X 0 1 2 26 [25-0] 26 28 4 1 2 1 3 LerMem = 1 IouD = 1 [31-28] [31-0] slide 5.10 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização deComputadores II Estado 4: Reg [RI[20-16]] = RDM; 32 Endereço DadoMem Memória PC Dado a ser escrito M U X 0 1 Zero Resultado ULA Reg a ser lido #1 Reg a ser lido #2 Reg a ser escrito Dado de escrita Dado lido #1 Dado lido #2 Registradores Registrador de instrução Registrador de dados da memória A B ULA Saída 32 [25-21] [20-16] [15-11] M U X 0 1 [15-0] M U X 0 1 M U X 0 1 2 3 M U X 0 1 Exten- são de sinal Desl. à esq. 2 bits 4 3216 IouD LerMem EscMem IREsc Opera- ção da ULA 2 6 32 [5-0] EscReg RegDst Controle ULAOp ULAFonteA FontePCPCEscCond PCEsc MemParaReg ULAFonteB 2 Desl. à esq. 2 bits M U X 0 1 2 26 [25-0] 26 28 4 1 0 1 2 [31-28] [31-0] 4 EscReg = 1 MemParaReg = 1 RegDst = 0 slide 5.11 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Estado 5: Mem [ULASaída] = B 32 Endereço DadoMem Memória PC Dado a ser escrito M U X 0 1 Zero Resultado ULA Reg a ser lido #1 Reg a ser lido #2 Reg a ser escrito Dado de escrita Dado lido #1 Dado lido #2 Registradores Registrador de instrução Registrador de dados da memória A B ULA Saída 32 [25-21] [20-16] [15-11] M U X 0 1 [15-0] M U X 0 1 M U X 0 1 2 3 M U X 0 1 Exten- são de sinal Desl. à esq. 2 bits 4 3216 IouD LerMem EscMem IREsc Opera- ção da ULA 2 6 32 [5-0] EscReg RegDst Controle ULAOp ULAFonteA FontePCPCEscCond PCEsc MemParaReg ULAFonteB 2 Desl. à esq. 2 bits M U X 0 1 2 26 [25-0] 26 28 4 1 1 2 5 EscMem = 1 IouD = 1 [31-28] [31-0] slide 5.12 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Estado 6: ULASaída = A op B 32 Endereço DadoMem Memória PC Dado a ser escrito M U X 0 1 Zero Resultado ULA Reg a ser lido #1 Reg a ser lido #2 Reg a ser escrito Dado de escrita Dado lido #1 Dado lido #2 Registradores Registrador de instrução Registrador de dados da memória A B ULA Saída 32 [25-21] [20-16] [15-11] M U X 0 1 [15-0] M U X 0 1 M U X 0 1 2 3 M U X 0 1 Exten- são de sinal Desl. à esq. 2 bits 4 3216 IouD LerMem EscMem IREsc Opera- ção da ULA 2 6 32 [5-0] EscReg RegDst Controle ULAOp ULAFonteA FontePCPCEscCond PCEsc MemParaReg ULAFonteB 2 Desl. à esq. 2 bits M U X 0 1 2 26 [25-0] 26 28 4 1 00 2 10 [31-28] [31-0] ULAFonteA = 1 ULAFonteB = 00 ULAOp = 10 6 slide 5.13 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Estado 7: Reg [RI[15-11]] = ULASaída 32 Endereço DadoMem Memória PC Dado a ser escrito M U X 0 1 Zero Resultado ULA Reg a ser lido #1 Reg a ser lido #2 Reg a ser escrito Dado de escrita Dado lido #1 Dado lido #2 Registradores Registrador de instrução Registrador de dados da memória A B ULA Saída 32 [25-21] [20-16] [15-11] M U X 0 1 [15-0] M U X 0 1 M U X 0 1 2 3 M U X 0 1 Exten- são de sinal Desl. à esq. 2 bits 4 3216 IouD LerMem EscMem IREsc Opera- ção da ULA 2 6 32 [5-0] EscReg RegDst Controle ULAOp ULAFonteA FontePCPCEscCond PCEsc MemParaReg ULAFonteB 2 Desl. à esq. 2 bits M U X 0 1 2 26 [25-0] 26 28 4 0 1 1 2 [31-28] [31-0] 7 RegDst = 1 EscReg = 1 MemParaReg = 0 slide 5.14 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Estado 8: Se (A == B), então PC = ULASaída 32 Endereço DadoMem Memória PC Dado a ser escrito M U X 0 1 Zero Resultado ULA Reg a ser lido #1 Reg a ser lido #2 Reg a ser escrito Dado de escrita Dado lido #1 Dado lido #2 Registradores Registrador de instrução Registrador de dados da memória A B ULA Saída 32 [25-21] [20-16] [15-11] M U X 0 1 [15-0] M U X 0 1 M U X 0 1 2 3 M U X 0 1 Exten- são de sinal Desl. à esq. 2 bits 4 3216 IouD LerMem EscMem IREsc Opera- ção da ULA 2 6 32 [5-0] EscReg RegDst Controle ULAOp ULAFonteA FontePCPCEscCond PCEsc MemParaReg ULAFonteB 2 Desl. à esq. 2 bits M U X 0 1 2 26 [25-0] 26 28 4 1 00 01 1 01 2 0 [31-28] [31-0] ULAFonteA = 1 ULAFonteB = 00 ULAOp = 01 PCEscCond = 1 PCEsc = 0 FontePC = 01 8 slide 5.15 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Estado 9: PC = PC [31-28] || ( RI[25-0] << 2 ) 32 Endereço DadoMem Memória PC Dado a ser escrito M U X 0 1 Zero Resultado ULA Reg a ser lido #1 Reg a ser lido #2 Reg a ser escrito Dado de escrita Dado lido #1 Dado lido #2 Registradores Registrador de instrução Registrador de dados da memória A B ULA Saída 32 [25-21] [20-16] [15-11] M U X 0 1 [15-0] M U X 0 1 M U X 0 1 2 3 M U X 0 1 Exten- são de sinal Desl. à esq. 2 bits 4 3216 IouD LerMem EscMem IREsc Opera- ção da ULA 2 6 32 [5-0] EscReg RegDst Controle ULAOp ULAFonteA FontePCPCEscCond PCEsc MemParaReg ULAFonteB 2 Desl. à esq. 2 bits M U X 0 1 2 26 [25-0] 26 28 4 1 10 2 [31-28] [31-0] PCEsc = 1 FontePC = 10 9 slide 5.16 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Máquina de Estados: busca e decodificação ULAFonteA = 0 ULAFonteB = 11 ULAOp = 00 LerMem = 1 ULAFonteA = 0 IouD = 0 IREsc = 1 ULAFonteB = 01 ULAOp = 00 PCEsc = 1 FontePC = 00 Busca da instrução 0 Decodificação da instrução/ Leitura dos registradores Rs e Rt 1 Instruções de referência à memória Instruções tipo R Instrução de desvio condicional Instrução de desvio incondicional início (Op = ‘lw ’) OU (Op = ‘s w’) Op = tipo R O p = ‘b eq ’ O p = ‘j um p ’ slide 5.17 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Máquina de Estados: execução de instruções lw/sw ULAFonteA = 1 ULAFonteB = 10 ULAOp = 00 Cálculo do endereço de acesso à memória 2 3 4 5 LerMem = 1 IouD = 1 EscMem = 1 IouD = 1 EscReg = 1 MemParaReg = 1 RegDst = 0 Acesso à memória Acesso à memória Escrita no registrador Rt Para o estado 0 Do estado 1 Op = ‘lw’ Op = ‘sw’ (Op = ‘lw’) OU (Op = ‘sw’) slide 5.18 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Máquina de Estados: execução de instrução tipo R ULAFonteA = 1 ULAFonteB = 00 ULAOp = 10 Execução6 7 RegDst = 1 EscReg = 1 MemParaReg = 0 Término da instrução tipo R (escrita em Rd) Para o estado 0 Do estado 1 Op =tipo R slide 5.19 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Máquina de Estados: execução de instrução beq ULAFonteA = 1 ULAFonteB = 00 ULAOp = 01 PCEscCond = 1 PCEsc = 0 FontePC = 01 Término do desvio condicional 8 Para o estado 0 Do estado 1 Op = ‘beq’ slide 5.20 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Máquina de Estados: execução de instrução jump PCEsc = 1 FontePC = 10 Término do desvio incondicional 9 Para o estado 0 Do estado 1 Op = ‘j’ slide 5.21 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Máquina de Estados: busca e decodificação ULAFonteA = 1 ULAFonteB = 00 ULAOp = 01 PCEscCond = 1 PCEsc = 0 FontePC = 01 Término do desvio condicional 8 ULAFonteA = 1 ULAFonteB = 10 ULAOp = 00 Cálculo do endereço de acesso à memória 2 3 4 5 LerMem = 1 IouD = 1 EscMem = 1 IouD = 1 EscReg = 1 MemParaReg = 1 RegDst = 0 Acesso à memória Acesso à memória Escrita no registrador Rt Op = ‘lw’ Op = ‘sw’ ULAFonteA = 1 ULAFonteB = 00 ULAOp = 10 Execução 6 7 RegDst = 1 EscReg = 1 MemParaReg = 0 Término da instrução tipo R (escrita em Rd) PCEsc = 1 FontePC = 10 Término do desvio incondicional 9 ULAFonteA = 0 ULAFonteB = 11 ULAOp = 00 LerMem = 1 ULAFonteA = 0 IouD = 0 IREsc = 1 ULAFonteB = 01 ULAOp = 00 PCEsc = 1 FontePC = 00 Busca da instrução 0 Decodificação da instrução/ Leitura dos registradores Rs e Rt 1 início (Op = ‘lw’) OU (O p = ‘s w’) Op = t ipo R O p = ‘be q’ O p = ‘j um p ’ slide 5.22 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Modelo de Máquina de Estados de Moore D1 Q1 Q1 FF1 D2 Q2 Q2 FF2 D3 Q3 Q3 FF3 ... lógica de próximo estado lógica de saída I1 I2 Ik O1 O2 On ... ... saídas entradas CK Em Técnicas Digitais vimos o seguinte modelo… slide 5.23 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Modelo de Máquina de Estados de Moore Adaptando o Modelo ao Caso do MIPS D1 Q1 Q1 FF1 D2 Q2 Q2 FF2 D3 Q3 Q3 FFi ... lógica de próximo estado lógica de saída Op0 PCEsc ... Sinais de Controle OPCODE CK Op4Op5 PCEscCond IouD ULAFonteA EscReg RegDst ... Quantos flip-flops são necessários? Resposta: 4 slide 5.24 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Tabela de Transição de Estados 0-4 0-5 7-6 0-7 9 8 3 2 1 0 Estado Atual 0- 0- 4- 5‘sw’ 3‘lw’ 9‘j’ 8‘beq’ 6tipo R 2‘lw’ ou ‘sw’ 1- Próximo EstadoOpcode 1. Codificar os estados 2. Substituir a codificação na tabela ao lado 3. Encontrar as equações minimizadas para as 4 saídas (variáveis de próximo estado) • Vars. do estado atual: EA3, EA2, EA1, EA0 • Vars. Do próximo estado: PE3, PE2, PE1, PE0 slide 5.25 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Tabela de Saída 7 9 8 6 5 4 3 2 1 0 R e gD s t E s cR eg U L A F onteA U L A F o n te B U L A O p F o n teP C M em P ar aR e g IR E sc E scM em LerM em Iou D P C E s cC o nd P C E scEstado Usar a codificação do estado atual
Compartilhar