Uiversidade de Brasília Pipeliig Orgaizaçã ção o e Arquitetura de Computadores
Objetivo Apresetar a utilização de uma técica para aumeto de desempeho de arquiteturas de processadores: Pipelie : O que facilita o pipelie: Todas istruções têm o mesmo comprimeto. Poucos formatos de istruções. Operados em memória só aparecem em loads e stores.
Objetivo Pipelie : O que complica (hazards): Propriedades estruturais: memória úica, p.ex.. Cotrole de flo: istruções de desvio. Depedêcias (de dados): uma istrução depede do resultado de outra aterior.
otagem de uma Bicicleta tempo 1 2 3 4 5 uma pessoa leva 5 uidades de tempo para motar uma bicicleta
Liha de otagem (pipelie) tempo/ espaço 1 2 3 4 5
Liha de otagem (pipelie) tempo/ espaço 1 2 3 4 5
Liha de otagem (pipelie) A latêcia do pipelie é o tempo que uma bicicleta leva para ser motada Neste exemplo, a latêcia é 5 uidades de tempo A taxa de produção (ou vazão) do pipelie é de uma bicicleta por uidade de tempo O pipelie só começa a produzir essa taxa uma vez que liha esteja cheia Primeira bicicleta produzida em 5 UT Após a primeira, o pipe produz uma bicicleta por UT
Balaceameto do Pipelie Supoha que a operação otagem da Roda Trazeira requeira duas uidades de tempo Uma uidade para motar a correia Uma uidade para motar a roda O que ocorre com a latêcia do pipelie? O que ocorre com a vazão? Como otimizar o pipelie este caso?
Balaceameto do Pipelie O pipelie ão fucioa se as tarefas ão requerem o mesmo tempo Se uma tarefa leva 2 UT, todas tem que trabalhar este período Latêcia do pipelie seria 10 UT Vazão seria uma bicicleta / 2 UT Dividido a tarefa em duas subtarefas de 1 UT cada, teríamos: Latêcia de 6 UT Vazão de 1 Bici / UT
Pipeliig em Hardware Pipeliig é uma técica de projeto ode o hardware processa mais de uma istrução de cada vez sem esperar que uma istrução termie ates de começar a próxima.
Pipeliig Numa máquia sem pipelie os quatro estágios básicos de uma istrução compreedem: busca decodificação execução atualização
Pipeliig Os mesmos estágios existem uma máquia com pipelie, porém são executados em paralelo: assim que um estágio termia, passa o resultado para o próximo e começa a trabalhar a próxima istrução.
Pipeliig Num projeto de pipelie RISC típico, cada istrução toma um ciclo de clock para cada estágio de modo que o processador pode aceitar uma ova istrução a cada ciclo de clock.
Pipeliig O pipelie ão alivia o tempo de latêcia das istruções. Cada istrução cotiua ecessitado da mesma quatidade de tempo para ser termiada. O pipelie melhora o throughput global.
Exemplo: arquitetura IPS Cotém somete: istruções de referêcia à memória: lw,sw istruções aritméticas/lógicas: add,sub,ad,or,slt istruções de cotrole de flo: beq,j Nome Campos Cometários Tamaho 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Todas istruções têm 32 bits Formato R op rs rt rd shamt fuct Istruções aritméticas Formato I op rs rt address/immed iate Trasferêcia, desvios, imediato Formato J op target address Jump
IPS Uiciclo Dados istros istro # PC Edereço Istrução PC emória de istruções istro # istro # ALU Edereços emória de dados Dados
Busca de Istruções Add 4 PC Edereço Istrução PC emória de istruções
Istruções do Tipo-R 3 Operação da UAL 1 Istrução 2 data1 Zero Write ALU istros WriteData data2 result Write
Istruções load e store Istrução 1 2 Write istros WriteData Write data1 data2 Extesão Extesão de de sial 16 sial 32 3 Operação da UAL Zero ALU result Edereços Write Data emwrite emória de dados data em
Istruções de desvio PC + 4 Shift Shift left left 2 2 Add edereço de desvio Istrução 1 2 Write data1 3 Operação da UAL Zero brach cotrol logic ALU istros WriteData data2 Write Extesão Extesão de de sial 16 sial 32
Jutado as partes Add Add U U X X 4 Shift Shift left 2 left 2 PCSrc PC PC Edereço Istrução emória de istruções 1 2 Write istros WriteData Write data1 data2 U U X X ALUSrc 3 Operação da UAL Zero ALU Edereços Write Data emwrite emória de dados data emto U U X X Extesão Extesão de sial 16 de sial 32 em
Icluido cotrole 4 Add em emto Shift left Shift 2 left 2 Add U U X X [31-26] Cotrole Cotrole Brach emwrite ALUSrc PCSrc ALUOp Write PC PC Edereço Istrução emória de istruções [31-0] [25-21] [20-16] [15-11] [15-0] U U X X Dst [5-0] 1 2 Write WriteData data1 istros data2 Extesão de Extesão sial 16 de sial 32 Zero ALU U X U X ALU cotrol ALU cotrol Edereços Write Data emória de dados data U U X X
IPS: Projetado para Pipelie Todas istruções de mesmo comprimeto. Busca o primeiro estágio, execução o segudo. No 80x86 istruções de 1 a 17 bytes. Poucos formatos de istruções, com o campo do registro de origem a mesma posição em todas istruções. O segudo estágio pode ler o registro ao mesmo tempo que decodifica a istrução.
IPS: Projetado para Pipelie Operados a memória só aparecem as istruções load e store. O estágio de execução pode ser utilizado para calcular um edereço de memória, para ser acessado o próximo estágio. Operados alihados a memória. Facilita trasferêcia de dados que ocupam mais de um edereço.
Pipelie a arquitetura IPS As istruções do processador IPS ecessitam cico etapas: 1. Busca istrução a memória 2. Lê registros e decodifica istrução 3. Executa operação ou calcula edereço 4. Acessa operado a memória (de dados) 5. Escreve o resultado um registro Pode ser utilizado um pipelie de cico estágios
Tempo de execução das Istruções Classe de istrução Busca de Leitura Operação Acesso a Escrita Tempo istrução registro da ULA dado registro total Load word (lw) 2 s 1 s 2 s 2 s 1 s 8 s Store word (sw) 2 s 1 s 2 s 2 s 7 s R-format (add, sub, ad, or, slt) 2 s 1 s 2 s 1 s 6 s Brach (beq) 2 s 1 s 2 s 5 s Jump (j) 2 s 2 s 24% loads 12% stores 44% tipo R 18% braches 2% jumps Ciclo médio = 8x24% + 7x12% + 6x44% + 5x18% + 2x2% = 6.3 s Desempeho = 8/6.3 = 1.27
Execução sem pipelie Tempo 2 4 6 8 10 12 14 16 18 8 s lw $1, 100($0) Busca de istrução UAL Acesso a dados 8 s lw $2, 200($0) Busca de istrução UAL Acesso a dados 8 s lw $3, 300($0). Busca de istrução
Execução com pipelie elhora o desempeho com o aumeto do throughput de istruções. Tempo 2 4 6 8 10 12 14 lw $1, 100($0) Busca de istrução UAL Acesso a dados lw $2, 200($0) Busca de istrução UAL Acesso a dados lw $3, 300($0). Busca de istrução 2 s 2 s 2 s UAL Acesso a dados 2 s 2 s 2 s 2 s
Cotrole do pipelie Temos 5 estágios. O que deve ser cotrolado em cada estágio? IF: Istructio Fetch e PC Icremet ID: Istructio Decode / ister Fetch EX: Executio E: emory Stage WB: Write Back
Idéia básica. Flo de dados IF: Istructio Fetch ID: Istructio decode / register file read 0 EX: Execute / Address Calculatio E: emory Access WB: Write Back 1 Add 4 Shift left 2 Add Add result PC Address Istructio memory Istructio register 1 data 1 register 2 isters data 2 Write register Write data 0 1 Zero ALU ALU result Address Write data Data memory data 1 0 16 Sig exted 32
Flo de dados e registros pipelie 0 u x 1 IF/ID ID/EX EX/E E/WB Add 4 Shift left 2 Add result Add PC Address Istructio memory Istructio register 1 data 1 register 2 isters data 2 Write register Write data 0 1 Zero ALU ALU result Address Write data Data memory data 1 0 16 Sig exted 32
Busca de istrução 0 u x 1 IF/ID ID/EX EX/E E/WB Add 4 Add Add result Shift left 2 PC Address Istructio memory Istructio register 1 data 1 register 2 isters data 2 Write register Write data 0 u x 1 Zero ALU ALU result Address Write data Data memory data 1 u x 0 16 Sig exted 32
Decodificação/leitura de registros 0 1 IF/ID ID/EX EX/E E/WB Add 4 Shift left 2 Add result Add PC Address Istructio memory Istructio register 1 data 1 register 2 isters data 2 Write register Write data 0 1 Zero ALU ALU result Address Write data Data memory data 1 0 16 Sig exted 32
Execução/cálculo de edereço 0 1 IF/ID ID/EX EX/E E/WB Add 4 Shift left 2 Add result Add PC Address Istructio memory Istructio register 1 data 1 register 2 isters data 2 Write register Write data 0 1 Zero ALU ALU result Address Write data Data memory data 1 0 16 Sig exted 32
Acesso à memória 0 1 IF/ID ID/EX EX/E E/WB Add 4 Shift left 2 Add result Add PC Address Istructio memory Istructio register 1 data 1 register 2 isters data 2 Write register Write data 0 1 Zero ALU ALU result Address Write data Data memory data 1 0 16 Sig exted 32
Write back 0 1 IF/ID ID/EX EX/E E/WB Add 4 Shift left 2 Add result Add PC Address Istructio memory Istructio register 1 data 1 register 2 isters data 2 Write register Write data 0 1 Zero ALU ALU result Address Write data Data memory data 1 0 16 Sig exted 32
Cotrole do Pipelie PCSrc 0 u x 1 IF/ID ID/EX EX/E E/WB Add 4 Write Shift left 2 Add Add result Brach PC Address Istructio memory Istructio register 1 data 1 register 2 isters Write data 2 register Write data Istructio [15 0] 16 Sig 32 exted ALUSrc 0 6 1 ALU cotrol Zero ALU ALU result Address Write data emwrite Data memory em data emto 1 u x 0 Istructio [20 16] Istructio [15 11] 0 u x 1 ALUOp Dst
Cotrole do pipelie Os registradores do pipelie ão ecessitam siais de cotrole, pois são carregados a cada ciclo de clock Como deveria ser feito o cotrole uma fábrica de automóveis? uma cetral imagiária dizedo a cada um o que deve ser feito? deveríamos utilizar uma máquia de estados fiitos?
Cotrole do Pipelie Siais de cotrole são trasmitidos da mesma forma que os dados Executio/Address Calculatio stage cotrol lies emory access stage cotrol lies Write-back stage cotrol lies Istructio Dst ALU Op1 ALU Op0 ALU Src Brach em em Write write em to R-format 1 1 0 0 0 0 0 1 0 lw 0 0 0 1 0 1 0 1 1 sw X 0 0 1 0 0 1 0 X beq X 0 1 0 1 0 0 0 X WB Istructio Cotrol WB EX WB IF/ID ID/EX EX/E E/WB
Flo de dados com cotrole P C S rc 0 ID /E X u x 1 C o trol W B E X / E W B E /W B IF /ID E X W B A d d P C 4 A d d r e s s I s tru c tio m e m or y I structio R e ad re g is ter 1 R e ad re g is ter 2 R eg iste rs W rite re gister W rite d a ta R e gw rite R ea d d ata 1 R ea d d ata 2 S h ift le ft 2 0 u x 1 A dd A d d re su lt A L U A L U S r c Z e ro A L U resu lt Bra ch A dd re s s W rite d a ta e mw rit e D a ta m e m o r y R e a d d ata e m to R e g 1 u x 0 I structio [1 5 0 ] 16 3 2 S ig exte d 6 A LU co trol e m R e ad I structio [2 0 1 6] I stru ctio [1 5 1 1] 0 u x 1 R e g D s t A L U O p
Simplificado add $s0, $t0, $t1 I ULA D IF ID EX E WB
Execução com pipelie CC1 CC2 CC3 CC4 CC5 CC6 CC7 lw $1, 100($0) I ULA D lw $2, 200($0) I ULA D lw $3, 300($0) I ULA D
Desempeho. O que pode dar errado. Um processador com pipelie pode pausar por várias razões, icluido atrasos a leitura da memória, cojuto de istruções mal projetado, depedêcia etre istruções,...
Depedêcia de Dados (Hazards). sub $2, $1, $3 ad $12, $2, $5 or $13, $6, $2 add $14, $2, $2 sw $15, 100($2). Depedêcia de dados: Istruções que seguem sub utilizam o registrador $2, cujo valor é produzido pela istrução sub
Depedêcia de Dados CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9 Valor do registro $2 10 10 10 10 10/-20-20 -20-20 -20 sub $2, $1, $3 I UL A D ad $12, $2, $5 I UL A D or $13, $6, $2 I UL A D add $14, $2, $2 I UL A D sw $15, 100($2) I UL A D
Solução por Software O compilador pode detectar a ocorrêcia de hazard de dados e itroduzir NOPs (o operatio) ou reescaloar as istruções sub $2, $1, $3 op op op ad $12, $2, $5 or $13, $6, $2 add $14, $2, $2 sw $15, 100($2)
Escaloameto de Istruções. ld r2, I add r2, r2, #123 st r2, I ld r3, J sub r3, r3, #567 st r3, J.. ld r2, I ld r3, J add r2, r2, #123 sub r3, r3, #567 st r2, I st r3, J. Um rearrajo das istruções o programa, chamado escaloameto de istruções, pode resolver esta pedêcia.
Hardware: Cogelar o pipe (stall ou bolha) A uidade de cotrole do processador pode detectar a ocorrêcia de coflitos e cogelar execução de ovas istruções até que o coflito seja resolvido O cogelameto pode ser feito colocado-se em zero os siais de cotrole que acompaham os dados o pipelie Cotrol 0 u x WB EX
Itrodução de bolhas As bolhas iterrompem a execução dos estágios Tempo 2 4 6 8 10 14 sub $s0, $t1, $t2 I ULA D bolhas add $t2, $s0, $t3 I ULA D
Deteção de Coflitos Comparar ídices dos registradores a serem lidos e escritos, armazeados os registradores do pipelie: IF/ID.ister1 # registradores a serem IF/ID.ister2 # lidos ID/EX.Writeister EX/E.Writeister E/WB.Writeister Deve-se comparar igualmete se a istrução escreve em um registrador (Write = 1)
Uidade de Deteção de Hazard Hazard Detectio Uit WB Cotrol 0 UX EX WB WB PC Istructio emory isters Data emory U X U X
Deteção de Coflitos EX hazard: ID/EX.Write ad ((ID/EX.Dst = 0 ad ID/EX.WriteisterRt=IF/ID.ister1) or (ID/EX.Dst = 1 ad ID/EX.WriteisterRd=IF/ID.ister1) or (ID/EX.Dst = 0 ad ID/EX.WriteisterRt=IF/ID.ister2) or (ID/EX.Dst = 1 ad ID/EX.WriteisterRd=IF/ID.ister2)) E hazard: EX/E.Write ad ((EX/E.Writeister = IF/ID.ister1) or (EX/E.Writeister = IF/ID.ister2))
Itrodução de Bolhas As bolhas atrasam a execução das istruções seguites sub $2, $1, $3 I D ad $12, $2, $5 I D or $13, $6, $2 I D add $14, $2, $2 I D sw $15, 100($2) I D
Exemplo Cosidere a seguite sequêcia: sub $2, $1, $3 ad $4, $2, $5 or $8, $2, $6 add $9, $4, $2 slt $1, $6, $7 Quatos coflitos existem e quatas bolhas são geradas?
Terceiro Ciclo or $8, $2, $6 ad $4, $2, $5 sub $2, $1, $3 Hazard Detectio Uit 0 WB ID/EX.Write Cotrol 0 UX 0 0 EX WB WB PC Istructio emory isters Data emory U X 2 U X
Quito Ciclo Hazard Detectio Uit ad $4, $2, $5 bolha bolha sub $2, $1, $3 E/WB.Write 0 WB Cotrol 0 UX 0 0 EX WB WB PC Istructio emory isters Data emory U X U X 2
Stall Como toda a arquitetura permaece ociosa durate as pausas, tato os projetistas quato os programadores de sistemas RISC fazem um esforço cosciete para evitá-las
Data Hazard: Adiatameto de Dados (Forwardig) Tempo 2 4 6 8 10 add $s0, $t1, $t1 I ULA D sub $t2, $s0, $t3 I ULA D
Adiatameto de Dados. Tempo (em ciclos) Valor do registro $2: CC 1 10 CC 2 10 CC 3 10 CC 4 10 CC 5 10/ 20 CC 6 20 CC 7 20 CC 8 20 CC 9 20 Valor de EX/E: X X X 20 X X X X X Valor de E/WB: X X X X 20 X X X X sub $2, $1, $3 I D ad $12, $2, $5 I D or $13, $6, $2 I D add $14, $2, $2 I D sw $15, 100($2) I D
Forwardig: Cotrole ID/EX WB EX/E Cotrol WB E/WB IF/ID EX WB PC Istructio memory Istructio isters ALU Data memory IF/ID.isterRs IF/ID.isterRt IF/ID.isterRt IF/ID.isterRd Rs Rt Rt Rd EX/E.isterRd Forwardig uit E/WB.isterRd
Exemplo Cosidere a mesma sequêcia: sub $2, $1, $3 ad $4, $2, $5 or $8, $2, $6 add $9, $4, $2 slt $1, $6, $7 Como fica com adiatameto de dados?
Terceiro Ciclo or $8, $2, $6 ad $4, $2, $5 ID/EX sub $2, $1, $3 WB EX/E Cotrol WB E/WB IF/ID EX WB $1 PC Istructio memory Istructio isters $3 ALU Data memory IF/ID.isterRs IF/ID.isterRt IF/ID.isterRt IF/ID.isterRd 2 5 4 1 3 2 EX/E.isterRd Forwardig uit E/WB.isterRd
Quarto Ciclo add $9, $4, $2 or $8, $2, $6 ID/EX ad $4, $2, $5 sub $2, $1, $3 WB EX/E Cotrol WB E/WB IF/ID EX WB $2 PC Istructio memory Istructio isters $5 ALU $2 Data memory IF/ID.isterRs IF/ID.isterRt IF/ID.isterRt IF/ID.isterRd 2 6 8 2 5 4 2 EX/E.isterRd Forwardig uit E/WB.isterRd
Quito Ciclo slt $1, $6, $7 add $9, $4, $2 or $8, $2, $6 ad $4, $2, $5 sub $2, $1, $3 ID/EX WB EX/E Cotrol WB E/WB IF/ID EX WB $2 PC Istructio memory Istructio isters $6 ALU Data memory IF/ID.isterRs IF/ID.isterRt IF/ID.isterRt IF/ID.isterRd 4 2 9 2 6 8 4 EX/E.isterRd 2 Forwardig uit E/WB.isterRd
Sexto Ciclo slt $1, $6, $7 add $9, $4, $2 or $8, $2, $6 ad $4, $2, $5 ID/EX WB EX/E Cotrol WB E/WB IF/ID EX WB $4 PC Istructio memory Istructio isters $2 ALU Data memory IF/ID.isterRs IF/ID.isterRt IF/ID.isterRt IF/ID.isterRd 6 7 1 4 2 9 8 EX/E.isterRd 4 Forwardig uit E/WB.isterRd
Coflitos o Adiatameto Load word pode causar um atraso: Uma istrução teta ler um registro após um load que escreve o mesmo registro. É preciso uma uidade de detecção de hazard para atrasar a istrução pós load.
Coflitos o Adiatameto Tempo (ciclos) CC 1 CC 2 CC 3 CC 4 CC 5 CC 6 CC 7 CC 8 CC 9 CC 10 lw $2 20($1) I D ad $4, $2, $5 I D or $8, $2, $6 add $9, $4, $2 I I D bubble I D slt $1, $6, $7 I D
Hazard detectio uit Hazard detectio uit ID/EX.em ID/EX IF/IDWrite IF/ID Cotrol 0 WB EX EX/E WB E/WB WB PCWrite PC Istructio memory Istructio isters ALU Data memory IF/ID.isterRs IF/ID.isterRt IF/ID.isterRt IF/ID.isterRd Rt Rd EX/E.isterRd ID/EX.isterRt Rs Rt Forwardig uit E/WB.isterRd
Brach hazards Quado é decidido um desvio, outras istruções estão o pipelie. Tempo (em ciclos) CC 1 CC 2 CC 3 CC 4 CC 5 CC 6 CC 7 CC 8 CC 9 40 beq $1, $3, $7 I D 44 ad $12, $2, $5 I D 48 or $13, $6, $2 I D 52 add $14, $2, $2 I D 72 lw $4, 50($7) I D
Opção: Cogelar Pipe Uma opção é sempre cogelar o pipelie quado se ecotra uma istrução de salto codicioal, esperado o resultado da comparação add $4, $5, $6 Busca de istrução UAL Acesso a dados beq $1, $2, 40 Busca de istrução UAL Acesso a dados lw $3, 300($0). Busca de istrução 2 s 6 s 2 s Problema: piora o desempeho do pipelie UAL Acesso a dados 2 s 2 s 2 s 2 s
Previsão de Salto Uma melhor alterativa é fazer uma previsão de salto Caso a previsão esteja correta, ão há perda o pipelie Caso a previsão esteja icorreta, as istrução seguites ao salto devem ser descartadas (descarga do pipelie)
Técicas de Previsão de Desvio desvio uca será realizado desvio sempre será realizado desvio depedete do código da operação desvio depedete do histórico da istrução implemetado com o aílio de uma tabela de histórico de desvios armazea edereço da istrução, edereço do desvio e estado
Outras Técicas múltiplos flos ambas alterativas são executadas simultaeamete busca atecipada de istruções pré-carga das istruções o ed. de desvio memória de laço de repetição (loop buffer) armazea iteramete as istruções executadas mais recetemete atraso de desvio (delayed brach) permitir a execução de algumas istruções imediatamete após a istrução de desvio implica o reordeameto de istruções
Atraso de Desvio q Processador sempre executa istrução seguite q Compilador deve reordear as istruções ou iserir op Tempo 2 4 6 8 10 12 14 beq $1, $2, 40 Busca de istrução UAL Acesso a dados add $4, $5, $6 (Delayed brach slot ) lw $3, 300($0). Busca de istrução Busca de istrução 2 s 2 s 2 s UAL Acesso a dados UAL Acesso a dados 2 s 2 s 2 s 2 s
Descarga do Pipelie IF.Flush Hazard detectio uit ID/EX WB EX/E Cotrol 0 WB E/WB IF/ID EX WB 4 Shift left 2 PC Istructio memory isters = ALU Data memory Sig exted Forwardig uit
Acelerado máquias com pipelie q A velocidade máxima de uma máquia com pipelie é de uma istrução por ciclo de clock. CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9 CC10 CC11 CC12 IF ID EX E WB IF ID EX E WB IF ID EX E WB IF ID EX E WB IF ID EX E WB IF ID EX E WB IF ID EX E WB IF ID EX E WB
Acelerado máquias com pipelie q Duas técicas para iiciar múltiplas istruções por ciclo de clock: q arquiteturas superpipelie q arquiteturas superescalares.
Acelerado máquias com pipelie: o superpipelie q A arquitetura Superpipelie subdivide cada estágio do pipelie em subestágios e multiplica o clock iteramete. q Cada (sub)estágio cotiua executado uma istrução por clock. as como o clock itero é multiplicado, o pipelie pode aceitar duas ou mais istruções para cada clock extero.
Superpipelie CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 IF ID EX E WB IF ID EX E WB IF ID EX E WB IF ID EX E WB IF ID EX E WB IF ID EX E WB IF ID EX E WB IF ID EX E WB
Acelerado máquias com pipelie: a superescalar q A arquitetura superescalar cotém múltiplas uidades de execução que são capazes de fazer a mesma coisa. q Isto permite ao processador executar várias istruções similares cocorretemete, pelo roteameto das istruções às uidades de execução dispoíveis.
Pipelie superescalar CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 IF ID EX E WB IF ID EX E WB IF ID EX E WB IF ID EX E WB IF ID EX E WB IF ID EX E WB IF ID EX E WB IF ID EX E WB IF ID EX E WB
Superpipelie superescalar CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 IF ID EX E WB IF ID EX E WB IF ID EX E WB IF ID EX E WB IF ID EX E WB IF ID EX E WB IF ID EX E WB IF ID EX E WB IF ID EX E WB
Execução diâmica: escaloameto. O hardware executa o escaloameto O hardware teta ecotrar istruções para executar É possível a execução de istruções for a de ordem Execução especulativa e predição diâmica de desvios. Todos processadores moderos são bastate complicados Compaq/DEC Alpha 21264: 9 estágios de pipelie, 6 istructio issue PowerPC e Petium: tabela de histórico de desvios O papel do compilador é muito importate. Este curso serve de base para avaçar o assuto. Overview of Itel s Petium Processors: http://www.itel.com
Referêcias Patterso, D. A., Heessy, J. L., (1998) Computer Orgaizatio ad Desig: The Hardware/Software Iterface. orga Kaufma. http:/www.mkp.com/cod2e.htm/
Leitura recomedada Taebaum, A.S., (1990) Orgaização estruturada de computadores. Cap 4. 4.5 {4.5.4}