Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Sistemas Processadores e Periféricos Aula 6 - Revisão Adaptado a partir dos Slides de Organização de Computadores 2006/02 do professor Leandro Galvão DCC/UFAM - galvao@dcc.ufam.edu.br Prof. Frank Sill Torres DELT – Escola de Engenharia UFMG Arquitetura tipo Ciclo Único Cada instrução é executada em um 1 ciclo de clock Ciclo de clock deve ser longo o suficiente para executar a instrução mais longa Desvantagem: velocidade global limitada à velocidade da instrução mais lenta Implementação de Instruções no Processador Tclock Tadd Tsrl Tdiv 2 Implementação de Instruções no Processador Arquitetura tipo Multi-ciclo Quebra o ciclo de execução em vários passos Executa cada passo em um ciclo de clock Vantagem: cada instrução usa apenas o número de ciclos que ela necessita Tclock Tadd Tsrl Tdiv 3 RegWrite 5 5 5 Banco de Registradores Dados de escrita Dados de leitura 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 IR r t r s o p r d s h a m t f u n c t Implementação de ciclo único :: Tipo R Implementação de ciclo único :: Tipo R + Load/Store + Desvios opALU OrigALU MemWrite MemRead MemtoRegRead address Instruction 16 32 Add ALUresult Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 Shift left 2 4 4 ALU result Zero ALU Address Write data Read data Sign extend Add Banco de Registradores Memória de dados OrigPC PC M U X M U X M U X beq $t0,$t1,label $t0 = $t1 Memória de instruções M U X RegWrite RegDst Rs Rt Rd Implementação de ciclo único :: Unidade de controle principal Shift left 2 PC Instruction memory Read address Instruction [31– 0] Data memory Read data Write data Registers Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 Instruction [15– 11] Instruction [20– 16] Instruction [25– 21] Add ALU result Zero Instruction [5– 0] MemtoReg ALUOp MemWrite RegWrite MemRead Branch Jump RegDst ALUSrc Instruction [31– 26] 4 M u x Instruction [25– 0] Jump address [31– 0] PC+4 [31– 28] Sign extend 16 32Instruction [15– 0] 1 M u x 1 0 M u x 0 1 M u x 0 1 ALU control Control Add ALUresult M u x 0 1 0 ALU Shift left 226 28 Address Implementação de ciclo único :: Unidade de controle principal Opcode 0h 23h 2Bh 4h Nome R Lw Sw Beq Entrada opcode na unidade de controle Bit31 0 1 1 0 Bit30 0 0 0 0 Bit29 0 0 1 0 Bit28 0 0 0 1 Bit27 0 1 1 0 Bit26 0 1 1 0 Saídas da unidade de controle RegDst 0 1 X X ALUSrc 1 0 0 1 MemtoReg 0 1 X X RegWrite 1 1 0 0 MemRead 0 1 0 0 MemWrite 0 0 1 0 Branch 0 0 0 1 ALUop1 1 0 0 0 ALUop0 0 0 0 1 7 Implementação de multi-ciclo :: Inclusão de MUX e registradores Shift le ft 2 PC Memory MemDa ta Write da ta M u x 0 1 Regis ters Write regis ter Write data Read da ta 1 Read da ta 2 Read regis ter 1 Read regis ter 2 M u x 0 1 M u x 0 1 4 Instruction [15– 0] Sign extend 3216 Ins truction [25– 21] Ins truction [20– 16] Ins truction [15– 0] Ins truction regis ter 1 M u x 0 3 2 M u x ALU result ALU Zero Memory data regis ter Ins truction [15– 11] A B ALUOut 0 1 Address M u x 0 2 1 8 9 Sistemas Processadores e Periféricos Aula 7 - Via de Dados e Controle II (cap. 5) Adaptado a partir dos Slides de Organização de Computadores 2006/02 do professor Leandro Galvão DCC/UFAM - galvao@dcc.ufam.edu.br Prof. Frank Sill Torres DELT – Escola de Engenharia UFMG As unidades de estado visíveis ao programador (PC, memória, banco de registradores) e IR precisarão de sinais de controle de escrita Memória precisará de um sinal de leitura Dividindo Instruções em Estágios :: Linhas de controle 10 Dividindo Instruções em Estágios :: Linhas de controle Shift left 2 PC M u x 0 1 Registers Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 Instruction [15– 11] M u x 0 1 M u x 0 1 4 Instruction [15– 0] Sign extend 3216 Instruction [25– 21] Instruction [20– 16] Instruction [15– 0] Instruction register ALU control ALU result ALU Zero Memory data register A B IorD MemRead MemWrite MemtoReg PCWriteCond PCWrite IRWrite ALUOp ALUSrcB ALUSrcA RegDst PCSource RegWrite Control Outputs Op [5– 0] Instruction [31-26] Instruction [5– 0] M u x 0 2 Jump address [31-0]Instruction [25–0] 26 28Shift left 2 PC [31-28] 1 1 M u x 0 3 2 M u x 0 1 ALUOut Memory MemData Write data Address 11 Dividindo Instruções em Estágios :: Linhas de controle Sinal de Controle Efeito quando inativo (zero) Efeito quando ativo (um) RegDst O registrador de destino é indicado no campo Rt (bits 20:16) O registrador de destino é indicado no campo Rd (bits 15:11) RegWrite Nenhum O registrador destino é escrito com o valor da entrada Write data ALUSrcA Primeiro operando da ALU é o PC Primeiro operando da ALU vem do registrador A MemRead Nenhum O conteúdo da posição de memória endereçada é colocado nas saídas MemWrite Nenhum O conteúdo da posição de memória endereçada é reescrito 12 Dividindo Instruções em Estágios :: Linhas de controle Sinal de Controle Efeito quando inativo (zero) Efeito quando ativo (um) MemtoReg O valor a escrever no registrador vem de ALUOut O valor a escrever no registrador é lido da memória de dados IouD PC é usado para fornecer o endereço para a unidade de memória ALUOut é usado para fornecer endereço para unidade de memória IR Write Nenhum Saída da memória é escrita no IR WritePC Nenhum PC é escrito; a origem é controlada por OrigPC WritePCCond Nenhum PC é escrito se a saída Zero da ALU também estiver ativa 13 Dividindo Instruções em Estágios :: Linhas de controle Sinal de Controle Valor (binário) Efeito ALUOp 00 ALU realiza adição 01 ALU realiza subtração 10 Campo funct determina operação da ALU ALUSrcB 00 Segunda entrada da ALU vem do registrador B 01 Segunda entrada da ALU é a constante 4 10 Segunda entrada da ALU são os 16 bits menos significativos de IR com sinal estendido 11 Segunda entrada da ALU são os 16 bits menos significativos de IR com sinal estendido, deslocados de 2 bits para a esquerda Dividindo Instruções em Estágios :: Linhas de controle Sinal de Controle Valor (binário) Efeito PCSource 00 Saída da ALU (PC + 4) é escrita em PC 01 ALUOut é escrito em PC (desvios) 10 Endereço de destino do jump, deslocado de 2 bits à esquerda e concatenado com os 4 bits mais significativos de de PC + 4 é escrito em PC 15 Usa o registrador Program Counter (PC) para ler a instrução da memória e armazená-la no Registrador de Instrução (IR) Incrementa PC em 4 e coloca o resultado de volta em PC IR = *PC; // IR = valor que esta // armazenado no endereço // que o PC indica PC = PC + 4; Estágio 1 Instruction Fetch (IF) 16 17 Estágio 1: IF IR = *PC PC = PC + 4 4PC + 4 5 5 RD1 RD2 RN1 RN2 WN WD RegWrite Registers Operation ALU 3 ZeroRD WD MemRead Memory ADDR MemWrite 5 Instruction I PC I R M D R A B ALU OUT Carga de Instrução Estágio 2 Instruction Decode (ID) Lê os campos correspondentes aos registradores rs e rt, independentemente do tipo de instrução Os valores lidos são colocados nos registradores temporários A e B Computa o endereço de desvio, considerando que a instrução possa ser um branch A = Reg[IR[25-21]]; B = Reg[IR[20-16]]; ALUOut = PC + (sign-extend(IR[15-0]) << 2); 18 19 Branch Target Address Reg[rs] Reg[rt] PC + 4 5 5 RD1 RD2 RN1 RN2 WN WD RegWrite Registers Operation ALU 3 Zero RD WD MemRead Memory ADDR MemWrite 5 Instruction I PC I R M D R A B ALU OUT Decodificação de Instrução e Carga de Registrador Estágio 2 Instruction Decode (ID) A = Reg[IR[25-21]]; (A = Reg[rs]) B = Reg[IR[20-15]]; (B = Reg[rt]) ALUOut = (PC + sign-extend(IR[15-0]) << 2) 20 Estágio 3 Execution (EX) A ALU executará uma das quatro funções abaixo, dependendo do tipo da instrução: Referência à memória (para load/store): ALUOut = A + sign-extend(IR[15-0]); Tipo R ALUOut = A op B; Branch: if (A==B) PC = ALUOut; Jump: PC = PC[31-28] concat (IR(25-0) << 2) 21 ALUOut = A + sign-extend(IR[15-0]); Mem. Address Reg[rs] Reg[rt] PC + 4 5 5 RD1 RD2 RN1 RN2 WN WD RegWrite Registers Operation ALU 3 Zero RD WD MemRead Memory ADDR MemWrite 5 Instruction I PC I R M D R A B ALU OUT Estágio 3:EX Instruções de acesso à memória 22 Estágio 3: EX Instrucões tipo R ALUOut = A op B R-Type Result Reg[rs] Reg[rt] PC + 4 5 5 RD1 RD2 RN1 RN2 WN WD RegWrite Registers Operation ALU 3 Zero RD WD MemRead Memory ADDR MemWrite 5 Instruction I PC I R M D R A B ALU OUT 23 Estágio 3: EX Branch if (A == B) PC = ALUOut; Branch Target Address Reg[rs] Reg[rt] Branch Target Address 5 5 RD1 RD2 RN1 RN2 WN WD RegWrite Registers Operation ALU 3 Zero RD WD MemRead Memory ADDR MemWrite 5 Instruction I PC I R M D R A B ALU OUT 24 Estágio 3: EX Jump PC = PC[31-28] concat (IR[25-0] << 2) Jump Address Reg[rs] Reg[rt] Branch Target Address 5 5 RD1 RD2 RN1 RN2 WN WD RegWrite Registers Operation ALU 3 Zero RD WD MemRead Memory ADDR MemWrite 5 Instruction I PC I R M D R A B ALU OUT 25 Estágio 4 Acesso à memória (MEM) Instruções de acesso à memória: Load: Dados são lidos na memória e escritos no registrador de dados da memória (MDR) MDR = Memory[ALUOut]; Store: Dados são escritos na memória Memory[ALUOut] = B; Instruções do tipo R: A saída da ALU é escrita no registrador de destino Reg[IR[15-11]] = ALUOut; 26 Estágio 4: MEM Leitura de memória (lw) MDR = Memory[ALUOut]; Mem. Data PC + 4 Reg[rs] Reg[rt] Mem. Address 5 5 RD1 RD2 RN1 RN2 WN WD RegWrite Registers Operation ALU 3 Zero RD WD MemRead Memory ADDR MemWrite 5 Instruction I PC I R M D R A B ALU OUT 27 Estágio 4: MEM Escrita de memória (sw) Memory[ALUOut] = B; PC + 4 Reg[rs] Reg[rt] 5 5 RD1 RD2 RN1 RN2 WN WD RegWrite Registers Operation ALU 3 Zero RD WD MemRead Memory ADDR MemWrite 5 Instruction I PC I R M D R A B ALU OUT 28 Estágio 4: MEM Instruções de Tipo R Reg[IR[15:11]] = ALUOUT R-Type Result Reg[rs] Reg[rt] PC + 4 5 5 RD1 RD2 RN1 RN2 WN WD RegWrite Registers Operation ALU 3 Zero RD WD MemRead Memory ADDR MemWrite 5 Instruction I PC I R M D R A B ALU OUT 29 Estágio 5 Write Back (WB) Depende do tipo de instrução Load: Escrita no registrador: Reg[IR[20-16]]= MDR; Estágio final 30 Estágio 5: WB Finalização de leitura de memória (lw) Reg[IR[20-16]] = MDR; PC + 4 Reg[rs] Reg[rt]Mem. Data Mem. Address 5 5 RD1 RD2 RN1 RN2 WN WD RegWrite Registers Operation ALU 3 Zero RD WD MemRead Memory ADDR MemWrite 5 Instruction I PC I R M D R A B ALU OUT 31 Estágio Ação Tipo R Action Memória Ação Branch Ação Jump Carga de Instrução IR = Memory[PC] PC = PC + 4 Decodificação Instrução A = Reg [IR[25-21]] Carga de Registrador B = Reg [IR[20-16]] ALUOut = PC + (sign-extend (IR[15-0]) << 2) Execução ALUOut = A op B ALUOut = A + sign-extend if (A ==B) then PC = PC [31-28] II Computo de Endereço (IR[15-0]) PC = ALUOut (IR[25-0]<<2) Finalização branch/jump Acesso à memória Reg [IR[15-11]] = Load: MDR = Memory[ALUOut] Finalização tipo R ALUOut or Store: Memory [ALUOut] = B Finalização Leitura Mem. Load: Reg[IR[20-16]] = MDR (IF) (ID) (EX) (MEM) (WB) Tipo de instrução Resumo Multi-ciclo 32 Resumo Multi-ciclo Instruções MIPS levam de 3 a 5 etapas de execução As duas primeiras etapas (IF e ID) são comuns a todas instruções As células vazias na tabela indicam que a classe de instruções representada pela coluna leva menos ciclos No hardware multi-ciclo, esses ciclos não ficam ociosos, pois uma instrução é executada logo após a anterior 33 Implementando Controle Os valores dos sinais de controle são dependentes de: Quais funções estão sendo executadas Quais estágios estão ocorrendo Baseado nos sinais de controle especificados, duas abordagens podem ser usadas para gerar os sinais de controle: 1) Especificar um máquina de estados finitos graficamente 2) Usar microprogramação 34 Máquina de Estados Finitos (FSM) Finite State Machine (FSM) Um conjunto de estados Uma função que computa o próximo estado Determinada pelo estado atual e pela entrada Uma função de saída Determinada pelo estado corrente e possivelmente pela entrada No nosso caso, usaremos uma máquina de Moore A função de saída é usada somente pelo estado corrente 35 Máquinas de Estados Finitos (FSM) Função para o próximo estadoEstado atual Clock Função de saída Entradas Saídas Próximo estado 36 Início Busca/decodificação da instrução e busca dos registradores Instruções de acesso à memória Instruções tipo R Instruções de branch Instruções de jump Máquinas de Estados Finitos (FSM) :: Visão Geral 37 Busca de instrução e decodificação são identicos para todas as instruções Sinais gerados são mostrados dentro dos círculos dos estados ALUS rcA = 0 ALUS rcB = 11 ALUOp = 00 MemRe ad ALUS rcA = 0 IorD = 0 IRWrite ALUS rcB = 01 ALUOp = 00 PCWrite PCS ource = 00 Instruction fetch Instruction decode/ Register fetch ( O p = ' J M P ' ) 0 1 S ta rt Memory re fe rence FSM (F igure 5 .33) R-type FSM (F igure 5.34) Branch FSM (Figure 5 .35 ) J ump FSM (Figure 5 .36 ) Máquinas de Estados Finitos (FSM) :: Visão Geral Fig. 5.32 38 FSM Acesso à Memória MemWrite Io rD = 1 Me m Re a d Io rD = 1 ALUS rcA = 1 ALUS rcB = 10 ALUO p = 0 0 R e gW rite Mem toR e g = 1 R e gDs t = 0 Memory a ddre s s c omputa tio n (O p = 'LW ') o r (O p = 'SW ') Memo ry a cc e s s Write -ba ck s te p ( O p = ' L W ' ) 4 2 53 F rom s ta te 1 To s ta te 0 (F igu re 5 .3 2 ) Memory a cc e s s Fig. 5.3339 FSM Instruções Tipo R ALUSrcA = 1 ALUSrcB = 00 ALUOp = 10 RegDs t = 1 RegWrite MemtoRe g = 0 Execution R-type comple tion 6 7 (Op = R-type ) From s ta te 1 To s ta te 0 Fig. 5.34 (F igure 5.32) 40 Branch comple tion 8 (Op = 'BEQ') From s ta te 1 To s ta te 0 (Figure 5.32) ALUSrcA = 1 ALUSrcB = 00 ALUOp = 01 PCWriteCond PCS ource = 01 FSM Instruções Branch Fig. 5.35 41 Jump comple tion 9 (Op = 'J ') F rom s ta te 1 To s ta te 0 (F igure 5 .32) PCWrite P CSource = 10 FSM Instruções Jump Fig. 5.36 42 FSM Controle IF ID EX MEM WB PCWrite PCS ource = 10 ALUS rcA = 1 ALUS rcB = 00 ALUOp = 01 PCWriteCond PCS ource = 01 ALUS rcA =1 ALUS rcB = 00 ALUOp = 10 Re gDs t = 1 RegWrite MemtoRe g = 0 MemWrite Io rD = 1 MemRea d IorD = 1 ALUS rcA = 1 ALUS rcB = 10 ALUOp = 00 RegDs t = 0 RegWrite Mem toReg = 1 ALUS rcA = 0 ALUS rcB = 11 ALUOp = 00 MemRe a d ALUS rcA = 0 Io rD = 0 IRWrite ALUS rcB = 01 ALUOp = 00 PCWrite PCS ource = 00 Ins truc tion fe tch Ins truc tion de code / re gis te r fe tch J ump comple tion Bra nch comple tionExe cution Memory addre s s computa tion Memory a cce s s Memory a cce s s R-type comple tion Write -ba ck s te p ( O p = ' J ' ) ( O p = ' L W ' ) 4 0 1 9862 753 S ta rt Fig. 5.38 43 FSM Implementação Entradas Estado corrente Bits de Opcode da instrução Saídas Próximo estado Sinais a serem gerados para o estado corrente PCWrite PCWriteCond IorD MemtoReg PCSource ALUOp ALUSrcB ALUSrcA RegWrite RegDst NS3 NS2 NS1 NS0 O p 5 O p 4 O p 3 O p 2 O p 1 O p 0 S 3 S 2 S 1 S 0 State register IRWrite MemRead MemWrite Instruction register opcode field Outputs Control logic Inputs 4 bits de estado p/ gerar 10 estados 44 FSM Implementação usando PLA PLA (Programmable Logic Array) Formato básico de uma PLA 45 FSM Implementação usando PLA Exemplo da implementação de um função lógica em uma PLA 46 AND dos Opcodes e Estado Corrente OR dos AND FSM Implementação usando PLA 47 m n ROM ROM (Read Only Memory) Valores das posições de memória são fixos Vantagem: Ser capaz de implementar qualquer função lógica com o seu número de entradas Uma ROM pode ser usada para implementar uma tabela verdade Com m bits, é possível endereçar 2m entradas das ROM A saída da ROM são os bits armazenados na entrada endereçada FSM Implementação usando ROM 48 Quantos entradas? 6 Bits para opcode, 4 bits para estado = 10 linhas de endereço ( i.e. 210 = 1024 endereços diferentes) Quantos saídas? 16 saídas de controle de via dos dados 4 bits para o estado 20 saídas Tamanho do ROM é 210 x 20 = 20k bits Devastador, porque para muitos entradas as saídas são as mesmas FSM Implementação usando ROM 49 Melhoramento do tamanho de ROM: Os 4 bits do estado geram as 16 bits de saída de controle (= 24 x 16 Bits) 10 Bits para definir o novo estado ( = 210 x 4 Bits) = 4.3k Bits de ROM PLA é bem menor Pode compartilhar os termos-produto Só precisa de entradas que produzem saídas ativa Tamanho: (10x16) + (20x16) = 480 células de PLA FSM Implementação PLA vs. ROM 50 Exemplo: CPI em uma CPU multi-ciclo Assuma um mix de instruções com: Qual CPI (ciclos de clock por instrução), assumindo que cada estágio toma um ciclo de clock? Instrução % No. de ciclos Load 22 5 Store 11 4 Tipo R 49 4 Branch 16 3 Jump 2 3 Exemplo: CPI em uma CPU multi-ciclo Solução: , 1 , N instr i i i total instr total N CPI CPI N , 1 , N instr i i i instr total N CPI N 0,22 0,11 0,49 0,16 05 4 4 3 3,02 4,04 52 Pipeline (capítulo 6) Adaptado a partir dos Slides de Organização de Computadores 2006/02 do professores Leandro Galvão (DCC/UFAM ‐ galvao@dcc.ufam.edu.br) e o Ricardo de Oliveira Duarte (DELT/UFMG) 53 Exemplo da LavanderiaExemplo da Lavanderia B DA C 4 pessoas (A, B, C, D) possuem sacolas de roupa para lavar, secar e dobrar Lavar leva 30 minutos Secar leva 40 minutos Dobrar leva 20 minutos 54 Exemplo da LavanderiaExemplo da Lavanderia Lavanderia sequencial leva 6 horas para terminar Se eles conhecessem computação, quanto tempo levaria? A B C D 30 40 20 30 40 20 30 40 20 30 40 20 6 7 8 9 10 11 Meia-noite T a r e f a s Tempo 55 Exemplo da LavanderiaExemplo da Lavanderia A B C D 30 40 40 40 40 6 7 8 9 10 11 Meia-noite T a r e f a s Tempo 40 Lavanderia com pipelining leva 3,5 horas 56 Pipeline :: Definição Pipeline :: Definição Pipeline é uma técnica de implementação de processadores que permite a sobreposição temporal de diversas fases de execução de instruções Em outras palavras, o hardware processa mais de uma instrução de cada vez, sem esperar que uma instrução termine antes de começar a outra 57 Pipeline :: Características Pipeline :: Características Pipeline não melhora a latência de uma única tarefa, mas melhora o throughput de todo trabalho Tempo de execução de uma tarefa é o mesmo, com ou sem pipelining Ganho começa a existir a partir da segunda tarefa Taxa de inserção de tarefas é limitada pela tarefa mais lenta Pipeline explora o paralelismo entre as instruções em um fluxo de instruções sequenciais É uma técnica invisível ao programador, ao contrário de técnicas de multiprocessadores 58 Ganho de desempenho com PipeliningGanho de desempenho com Pipelining Supondo: N instruções K estágios de duração T Tempo de execução sem pipelining: N × K × T Tempo de execução com pipelining: K × T + (N‐1) × T N K T N K 59 Ganho de desempenho com PipeliningGanho de desempenho com Pipelining Ganho de desempenho: No limite (Número de instruções N → ∞): Ganho → K (número de estágios) TNKT NKT )1( NK N N 11 1 60 Ganho de desempenho com Pipelining :: Monociclo × Multiciclo × Pipeline Ganho de desempenho com Pipelining :: Monociclo × Multiciclo × Pipeline Tclock 1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4 5 6 Tempo de execução (Texec) Monociclo Multiciclo Pipeline 61 Ganho de desempenho com PipeliningGanho de desempenho com Pipelining Contudo: Estágios não são perfeitamente balanceados para durarem a mesma quantidade de tempo T Cada estágio possui um overhead de tempo em decorrência do pipelining Portanto: O tempo de execução de cada estágio no processador com pipeline será maior que no computador sem pipeline O ganho será um pouco menor que o número K de estágios 62 Processador RISC de cinco estágiosProcessador RISC de cinco estágios Cinco estágios de execução de cada instrução: IF ‐ Busca (fetch) da instrução ID ‐ Decodificação da instrução EX ‐ Execução ou cálculo do endereço efetivo MEM ‐ Acesso à memória ou desvio WB ‐ Atualização dos registradores (write‐back) Cada fase de uma instrução é processada por um estágio, em um ciclo de clock Uma nova instrução é iniciada a cada ciclo Instrução Ciclo de clock 1 2 3 4 5 6 7 8 9 i IF ID EX MEM WB i+1 IF ID EX MEM WB i+2 IF ID EX MEM WB i+3 IF ID EX MEM WB i+4 IF ID EX MEM WB 63 Processador RISC de cinco estágiosProcessador RISC de cinco estágios Duranteum mesmo ciclo de clock, temos de garantir que não ocorram duas operações com os mesmos componentes do caminho de dados: Utiliza‐se uma memória cache de dados (DM) separada da memória cache de instruções (IM) O banco de registradores é utilizado duas vezes: Estágio ID para leitura, na 2ª. metade do ciclo de clock Estágio WB para escrita, na 1ª. metade do ciclo de clock 64 Processador RISC de cinco estágiosProcessador RISC de cinco estágios PC é incrementado e armazenado a cada ciclo, durante a fase IF Como tratar desvios? Registradores são inseridos entre cada estágio do pipeline para: Garantir que operações em diferentes estágios do pipeline não interfiram uma nas outras Carregar resultados intermediários entre estágios não adjacentes Tais registradores recebem nomes especiais, que é a junção dos nomes dos estágios que interfaceiam: IF/ID ID/EX EX/MEM MEM/WB 65 Processador RISC de cinco estágiosProcessador RISC de cinco estágios IF/ID ID/EX EX/MEM MEM/WB 66 Execução de um load em pipeline (IF)Execução de um load em pipeline (IF) 67 Execução de um load em pipeline (ID)Execução de um load em pipeline (ID) 68 Execução de um load em pipeline (EX)Execução de um load em pipeline (EX) 69 Execução de um load em pipeline (MEM)Execução de um load em pipeline (MEM) 70 Execução de um load em pipeline (WB)Execução de um load em pipeline (WB) 71 Execução de um load em pipeline :: correção Execução de um load em pipeline :: correção O número do registrador a ser escrito somente é utilizado no estágio WB O que vocês aprenderam hoje? Controle da arquitetura tipo multi-ciclo Linhas de controle Estágios Máquinas de estados Finitos (FSM) Cálculo do CPI Básicos da arquitetura tipo pipeline 72 Questão Defina todos os passos necessários para as instruções seguintes quando eles forem executados em uma arquitetura MIPS multi‐ciclo: “j label3” “lw $s3, 12($t0)”, “beq $t2, $t4, $t1”, “sub $s1, $s2, $s3”. j label3 IF, ID, EX lw $s3, 12($t0) IF, ID, EX, MEM, WB sub $s1, $s2, $s3 IF, ID, EX, MEM beq $t2, $t4, $t1 IF, ID, EX 73
Compartilhar