Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Organização de Computadores I DCC006 Prof. Omar Paranaiba Vilela Neto Aula 8 – O Processador: Data Path e Controle (Continuação) 2 Integração do Datapath • Uso de multiplexadores PC Instruction memory Read address Instruction 16 32 Add ALUresult M u x Registers Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 Shift left 2 4 M u x ALU operation3 RegWrite MemRead MemWrite PCSrc ALUSrc MemtoReg ALU result Zero ALU Data memory Address Write data Read data M u x Sign extend Add 3 Integração do Datapath • Uso de multiplexadores PC Instruction memory Read address Instruction 16 32 Add ALUresult M u x Registers Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 Shift left 2 4 M u x ALU operation3 RegWrite MemRead MemWrite PCSrc ALUSrc MemtoReg ALU result Zero ALU Data memory Address Write data Read data M u x Sign extend Add Quem controla tudo isso? 4 Controle • Seleção de operações (ALU, read/write, etc.) • Controle do fluxo de dados (multiplexadores) • Informações extraídas dos 32 bits da instrução • Exemplo: add $8, $17, $18 Formato da Instrução: 000000 10001 10010 01000 00000 100000 op rs rt rd shamt funct • Operações das ALU's são baseadas nos campos tipo de instrução e no código da função 5 • Exemplo: lw $1, 100($2) 35 2 1 100 op rs rt 16 bit offset • Entradas de controle da ALU 0000 AND 0001 OR 0010 add 0110 subtract 0111 set-on-less-than Controle 6 • O hardware deve permitir executar o conjunto de instruções – dado o tipo de instrução 00 = lw, sw 01 = beq, 11 = arithmetic – código da função aritmética • Descrito usando uma tabela verdade (que definirá o lógica): ALUOp computed from instruction type Controle 7 Controle Antes de vermos o controle, vamos lembrar os tipos de instruções. 8 Controle PC Instruction memory Read address Instruction [31– 0] Instruction [20– 16] Instruction [25– 21] Add Instruction [5– 0] MemtoReg ALUOp MemWrite RegWrite MemRead Branch RegDst ALUSrc Instruction [31– 26] 4 16 32Instruction [15– 0] 0 0M u x 0 1 Control Add ALUresult M u x 0 1 Registers Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 Sign extend Shift left 2 M u x 1 ALU result Zero Data memory Write data Read data M u x 1 Instruction [15– 11] ALU control ALU Address 9 Controle Caminho dos dados em uma instrução do tipo R 10 Controle Caminho dos dados em uma instrução load 11 Controle Caminho dos dados em uma instrução branch equal 12 Controle Agora sabemos como controlar! Mas como o controle é implementado? 13 Controle Operation2 Operation1 Operation0 Operation ALUOp1 F3 F2 F1 F0 F (5– 0) ALUOp0 ALUOp ALU control block Controle da ALU 14 Controle R-format Iw sw beq Op0 Op1 Op2 Op3 Op4 Op5 Inputs Outputs RegDst ALUSrc MemtoReg RegWrite MemRead MemWrite Branch ALUOp1 ALUOpO Controle Principal 15 • Nós esperamos que os valores sejam estáveis – ALU poderia não produzir a resposta correta – Nós usamos sinais que são controlados por um clock que determina quando escrever • Tempo de Ciclo é determinado pelo caminho mais longo Nossa estrutura de Controle Nós estamos ignorando vários detalhes como tempo de setup e hold Clock cycle State element 1 Combinational logic State element 2 16 Onde Nós Estamos • Problemas do ciclo único: – Instruções complicadas como ponto flutuante, como fazer? – Gasto de área • Uma solução: – usar o menor cycle time – Ter diferentes números de ciclos para instruções diferentes – datapath “multiciclo”: PC Memory Address Instruction or data Data Instruction register Registers Register # Data Register # Register # ALU Memory data register A B ALUOut 17 Onde Nós Estamos • Exemplo da página 236 – Terceira Edição • Considere os seguintes tempos de operação das Unidades Funcionais: – Memória: 200 ps; – ALU e Somadores: 100 ps; – Banco de registradores: 50 ps. • Qual a diferença de desempenho das duas implementações abaixo: – Implementação ciclo único; – Implementação que usa ciclo de duração variável, tendo a duração necessária. • Considere: 25% loads, 10% stores, 45% ALU, 15% desvios e 5% Jump. 18 Onde Nós Estamos • Exemplo da página 236 – Terceira Edição Implementação Ciclo Único: 600 ps / instrução; Implementação 2: 600 x 25% + 550 x 10% + 400 x 45% + 350 x 15% + 200 x 5% = 447,5ps / instrução. Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18
Compartilhar