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 4 2. MIPS multiciclo: construção do bloco operativo, execução das instruções Prof. José Luís Güntzel guntzel@ufpel.edu.br www.ufpel.edu.br/~guntzel/AOC2/AOC2.html slide 4.2 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Lembrando o Bloco Operativo Monociclo 32Endereço Instrução lida Memória de Instruções PC + 4 + Desl. à esq. 2 bits 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 EscReg Zero Resultado ULA 3 Exten- são de sinal 3216 [25-21] [20-16] [15-11] M U X 0 1 RegDst [15-0] M U X 0 1 ULAFonte EscMem LerMem Endereço Dado lido Dado a ser escrito Memória de dados M U X 0 1 MemParaReg Opera- ção da ULA 2 [5-0] 6 ULAOp FontePC slide 4.3 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II No Bloco Operativo Monociclo • Cada instrução executa em um ciclo de relógio • O período do relógio é determinado pela instrução mais lenta • Os recursos de hardware não podem ser aproveitados – duas memórias: uma para instruções e outra para dos dados – ULA e dois somadores slide 4.4 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Um Bloco Operativo Multiciclo • Instruções são divididas claramente em etapas • Cada etapa executa em um ciclo de relógio • O período do relógio é determinado pela etapa mais lenta • Cada instrução executa em um número apropriado de ciclos de relógio (proporcional ao número de etapas) • Os recursos de hardware podem ser aproveitados – redução no custo do bloco operativo – aumento na complexidade do bloco de controle slide 4.5 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Características do Bloco Operativo Multiciclo • Uma única memória para instruções e dados • Apenas uma ULA (dispensa os uso de somadores extras) • Inserção de registradores (não-visíveis ao programador) para reter as saídas das unidades funcionais (exigência do regime multiciclo): – Dados a serem usados na mesma instrução um ciclo de relógio posterior ficam armazenados nos registradores não-visíveis ao programador – Dados a serem usados em outras instruções devem ser armazenados em elementos de memória visíveis ao programador (banco de registradores, PC ou memória) slide 4.6 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II O 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 slide 4.7 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Características do Bloco Operativo Multiciclo Novos Registradores (Não-Visíveis ao Programador) • Registrador de Instrução (IR ou RI) • Registrador de Dados da Memória (MDR ou RDM) • Registradores A e B, para guardar os dados lidos do banco de registradores • Registrador ULASaída Todos estes registradores (exceto o IR) armazenam dados somente entre duas bordas de relógio adjacentes e portanto, não necessitam sinal de carga (controle de escrita), apenas o sinal de relógio (clock slide 4.8 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Características 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 ULA usada também para calcular PC+4 e endereço de desvio Novos Recursos: registradores e muxes slide 4.9 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Características 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 Os Registradores são “Barreiras Temporais” slide 4.10 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Características 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 Os Sinais de Controle IouD LerMem EscMem IREsc RegDst MemParaReg ULAFonteB ULAOp EscReg ULAFonteA Opera- ção da ULA 2 [5-0] 6 32 [5-0] Mesmo controle da ULA usado na versão monociclo 2 slide 4.11 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Existem 3 possíveis fontes para o PC: 1. O resultado de PC+4, disponível na saída da ULA: este valor sempre será armazenado no PC 2. O conteúdo de ULASaída: este registrador armazena o endereço-alvo do desvio condicional, após este ter sido calculado pela ULA (beq) 3. Os 26 bits menos significativos do IR, deslocados à esquerda e concatenados com os 4 bits mais significativos do PC incrementado (jump) Características do Bloco Operativo Multiciclo Acréscimos de Recursos para Suportar jump e branch on equal slide 4.12 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Características do Bloco Operativo Multiciclo Acréscimos de Recursos para Suportar jump e branch on equal 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 escritoDado 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 4.13 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Passos (etapas) das Instruções 1. Busca da instrução 2. Decodificação da instrução Leitura dos registradores – mesmo que não sejam utilizados Cálculo do endereço do branch – mesmo que instrução não seja branch 3. Execução da operação – instruções tipo R Cálculo do endereço efetivo do operando – instruções load e store Determinar se branch deve ser executado – instrução branch 4. Acesso à memória – instruções load e store Escrita de registrador – instruções tipo R 5. Escrita de registrador – instrução load slide 4.14 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Execução de Instruções 1. Busca da Instrução (e incremento do PC) RI = Mem[PC]; PC = PC + 4; Estas operações ocorrem em paralelo slide 4.15 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Execução de Instruções: busca 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 2 [31-0] slide 4.16 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Execução de Instruções 2. Decodificação (Geração dos Sinais de Controle) e Leitura de Rs e Rt A = Reg[ RI[25-21] ]; B = Reg[ RI[20-16] ]; ULASaída = PC + (extensão de sinal (RI[15-0]) << 2 ) Estas operações ocorrem em paralelo slide 4.17 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Execução de Instruções: leit. Rs e Rt e decodificação 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] slide 4.18 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Execução de Instruções 3. Execução da Instrução: Referência à memória (lw e sw) ULASaída = A + extensão de sinal(RI[15-0]); Tipo R ULASaída = A op B; Desvio Condicional Se (A == B) então PC = ULASaída; (usa a ULA para fazer A-B, porém sem escrever em ULASaída) Desvio Condicional PC = PC[31-28] || ( RI[25-0] <<2 ); slide 4.19 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Execução de Instruções: execução lw/sw [31-28] 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-0] slide 4.20 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Execução de Instruções: execução tipo R 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] slide 4.21 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Execução de Instruções: execução beq 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] slide 4.22 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Execução de Instruções: execução jump 32 Endereço DadoMem Memória PC Dado a ser escritoM 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] slide 4.23 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Execução de Instruções 4. Final da Execução de sw e Tipo R: lw: RDM = Mem[ULASaída]; sw: Mem[ULASaída] = B; Tipo R Reg[ RI[15-11] ] = ULASaída; slide 4.24 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Execução de Instruções: lw lê dado da memória 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 [31-28] [31-0] slide 4.25 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Execução de Instruções: conclui sw 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 [31-28] [31-0] slide 4.26 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Execução de Instruções: conclui tipo R 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] slide 4.27 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Execução de Instruções 5. Final da Execução de lw: lw: Reg[ RI[20-16] ] = RDM; slide 4.28 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Execução de Instruções: conclui lw 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] slide 4.29 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 de desvio incondicional Instrução de desvio condicional Instrução swInstrução tipo RNome do passo
Compartilhar