Organização de Computadores Pipeline Processo de Pipelining (exemplo da lavanderia) Organização de Computadores • Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas • Lavadora leva 30 minutos • Secadora leva 30 minutos • “Dobrar” leva 30 minutos • “Guardar” leva 30 minutos A B C D Pipelining (exemplo da lavanderia) Organização de Computadores 6 PM O r d e m T a r e f a s 8 7 30 30 30 30 30 30 30 30 12 11 10 9 30 30 30 30 2 AM 1 30 30 30 Tempo A B C D • Processo seqüencial de lavagem leva oito horas para os quatro • Quanto tempo levaria, utilizando-se pipelining ? 30 Pipelining (exemplo da lavanderia) Organização de Computadores 6 PM O r d e m T a r e f a s 8 7 30 30 30 30 10 9 30 11 12 1 Tempo 30 30 A B C D • Utilizando-se a técnica de pipeline consome-se 3,5 horas no processo de lavagem ! 2 AM Observações sobre Pipelining Organização de Computadores 6 PM O r d e m T a r e f a s 7 8 9 Tempo 30 30 30 30 30 30 30 • Pipelining não ajuda a melhorar a latência de uma atividade, mas aumenta o throughput • Várias tarefas operando em paralelo utilizam recursos diversos A • Aceleração potencial = Número de estágios de pipe B • Taxa de pipeline limitada pelo estágio mais lento C • Desequilíbrios na duração dos estágios reduz a a aceleração D • Tempo para “encher” o pipeline e para “esvaziá-lo”reduz a aceleração • Pode parar por dependências Idéia Básica Organização de Computadores BI: Busca da instrução 0 M u x 1 4 DI: Decodificação/ Leitura do banco de registradores s o m a d o r Registradores PC EX: Execução/ Cálculo do endereço Endereço Instrução Memória de Instruções Reg a ser Dado lido #1 Reg a ser lido #1 lido #2 Dado Reg a ser lido #2 escrito 16 Ext. de sinal 32 s o m a d o r Shift left 2 MEM: Acesso à memória ER: Escrita mo banco de registradores Resultado da soma Zero 0 M u x 1 UAL Resultado da UAL Endereço Dado lido Memória de Dados Dado a ser escrito 1 M u x 0 Os Cinco Estágios da Instrução de Carga Organização de Computadores Ciclo 1 Ciclo 2 Load Busca Reg/Dec Ciclo 3 Ciclo 4 UAL Mem Ciclo 5 Reg • Busca: Busca da instrução da memória de instruções • Reg/Dec: Leitura do(s) registrador(es) e decodificação da Instrução • UAL: Calcula o endereço da memória de dados • Mem: Lê dado da memória de dados • Reg: Escreve o dado no banco de registradores Pipelining Organização de Computadores Ordem de execução do programa (em instruções) 2 Tempo lw 0 1 100 Busca 4 Reg 6 10 12 14 16 18 Acesso ao Reg dado UAL lw 0 2 200 8 Busca 8 ns Reg Acesso ao Reg dado UAL lw 0 3 300 Busca 8 ns ... 8 ns Ordem de execução Tempo do programa (em instruções) lw 0 1 100 llw 0 2 200 lw 0 3 300 2 Busca 2 ns 4 Reg Busca 2 ns 6 UAL Reg Busca 2 ns 8 10 14 12 Acesso ao Reg dado UAL Reg 2 ns Acesso ao Reg dado UAL 2 ns Acesso ao Reg dado 2 ns 2 ns Monociclo vs Pipeline Organização de Computadores Ciclo 1 Ciclo2 Clk Implementação Monociclo: Load Store Waste Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 Ciclo 9 Ciclo 10 Clk Implementação Pipeline: Load Busca Reg Store Busca Exec Mem Escr Reg Exec Mem Escr Exec Mem Tipo R Busca Reg Escr Porque Usar Pipeline? Organização de Computadores • Suponha que vão ser executadas 100 instruções • Máquina monociclo • 1 ciclo de relógio tem duração de 45 ns • 45 ns/ciclo 1 CPI x 100 inst = 4500 ns • Máquina ideal pipelined • 1 ciclo de relógio tem duração de 10 ns • cada estágio de pipeline utiliza um ciclo de relógio • 5 1 ciclo + (1 ciclo (100 inst -1)) = 50 ns + 99 10 ns = 1040 ns Representação Gráfica de Pipeline Organização de Computadores Tempo (em ciclos de clock) Ordem de execução do programa (em instruções) lw $1, 100($0) lw $2, 200($0) lw $3, 300($0) CC 1 CC 2 MI Reg MI CC 3 ALU Reg MI CC 4 CC 5 MD Reg ALU Reg MD ALU CC 6 CC 7 Reg MD Reg Pipeline - Recursos disponíveis Organização de Computadores Tempo (ciclos de clock) Mi Md Reg Md Mi Reg Mi Reg Reg Reg Md Reg ALU Inst 4 Reg Reg ALU Inst 2 Inst 3 Mi Md ALU Inst 1 Reg ALU I n s t r. r Inst 0 Mi ALU O r d e m Md Reg Conflitos do Pipeline Organização de Computadores • Conflitos estruturais: tentativa de utilizar o mesmo recurso de modos diferentes ao mesmo tempo • E.x., lavadora/secadora combinadas, ou pessoa que dobra ocupada com outra atividade (lavando panela) • sem duas memórias, não poderia ter acesso à instrução simultâneo com dados Conflito Estrutural - Memória Única Organização de Computadores Tempo (ciclos de clock) Mi Reg Md Mi Reg Md Mi Reg ALU Md Mi Reg ALU Instr 2 Md ALU Instr 1 Reg ALU I n s t r. Load Mi ALU O r d e m Instr 3 Instr 4 Deteção fácil nesse caso! Reg Reg Reg Reg Md Reg Conflitos do Pipeline Organização de Computadores • Conflitos de controle: tentativa de tomar uma decisão antes que a condição seja avaliada • E.x., lavar uniformes de time de futebol e precisa saber quantidade de sabão; precisa esperar a secadora para colocar próximo uniforme • instruções de desvio Soluções para Conflito de Controle Organização de Computadores • Parada: espera até decisão estar clara Add Beq Reg Md Mi Reg Reg Md Reg Mi Reg ALU Load Mi ALU I n s t r Tempo (ciclos de clock) ALU O r d e m Md Reg Soluções para Conflito de Controle Organização de Computadores • Predição: escolhe uma direção e retorna se errada Tempo (ciclos de clock) Reg Md Mi Reg Md Mi Reg ALU Add Beq Load Mi ALU I n s t r • predição não executada ALU O r d e m • Certo 50% do tempo Reg Reg Md Reg Conflitos do Pipeline Organização de Computadores • Conflitos de dados: tentativa de utilizar um item antes de estar pronto • E.x., uma meia na secadora outro na lavadora; não pode dobrar • instrução depende de resultado da instrução anterior ainda no pipeline Conflito de Dados com r1 Organização de Computadores add r2 r3 r1 addi r1 r4 100 Conflito de Dados com r1 Organização de Computadores Tempo (ciclos de clock) BI ID/RF addi r1 r4 100 Reg Md Mi Reg ALU I n s t r Mi MEM ALU O r d e m add r2 r3 r1 EX REG Reg Md Reg Solução para Conflito por Dados Organização de Computadores • “Adiantamento” do resultado de um estágio para outro I n s t r add r2 r3 r1 Mi addi r1 r4 100 MEM Reg Md Mi Reg ALU O r d e m EX ALU Tempo (ciclos de clock) ID/RF BI ER Reg Md Reg