Baixe o app para aproveitar ainda mais
Prévia do material em texto
Arquitetura de Computadores Walisson Pereira Arquitetura de Computadores Walisson Pereira walisson.pereira@uvanet.br Universidade Estadual Vale do Acarau´ Slides revisados baseados nas notas de aula do prof. Ju´nior Cap´ıtulo 6: Utilizac¸a˜o de Pipelines Arquitetura de Computadores Walisson Pereira Introduc¸a˜o Computadores mais antigos executavam instruc¸o˜es de modo muito direto: O processador buscava uma instruc¸a˜o da memo´ria; Decodificava-a para determinar qual era a instruc¸a˜o; Lia as entradas das instruc¸o˜es a partir do banco de registradores; Executava os ca´lculos exigidos pela instruc¸a˜o; Escrevia os resultados de volta no banco de registradores; Arquitetura de Computadores Walisson Pereira Introduc¸a˜o Figura : Processador sem pipeline Arquitetura de Computadores Walisson Pereira Introduc¸a˜o O hardware necessa´rio para executar cada um dos passos de um ciclo de execuc¸a˜o e´ diferente Isso implica que maior parte do hardware fica ocioso aguardando que outras partes completem sua execuc¸a˜o Arquitetura de Computadores Walisson Pereira Introduc¸a˜o Pipelining E´ a te´cnica de sobrepor a execuc¸a˜o de diversas instruc¸o˜es para reduzir o tempo de execuc¸a˜o de um conjunto de instruc¸o˜es Arquitetura de Computadores Walisson Pereira Introduc¸a˜o Taxa de rendimento (throughput) E´ a taxa na qual as operac¸o˜es sa˜o executadas. Geralmente expressas como operac¸o˜es/segundo ou operac¸o˜es/ciclo Lateˆncia E´ a quantidade de tempo que uma u´nica operac¸a˜o demora para ser executada Arquitetura de Computadores Walisson Pereira Pipeline Figura : Processador com pipeline Arquitetura de Computadores Walisson Pereira Pipeline Tabela : Execuc¸a˜o em pipeline Esta´gios Ciclo BI DI LR EI ER 1 i1 2 i2 i1 3 i3 i2 i1 4 i4 i3 i2 i1 5 i5 i4 i3 i2 i1 6 i6 i5 i4 i3 i2 7 i7 i6 i5 i4 i3 Arquitetura de Computadores Walisson Pereira Pipeline Tabela : Execuc¸a˜o em pipeline Esta´gios Ciclo BI DI LR EI ER 1 i1 2 i2 i1 3 i3 i2 i1 4 i4 i3 i2 i1 5 i5 i4 i3 i2 i1 6 i6 i5 i4 i3 i2 7 i7 i6 i5 i4 i3 Arquitetura de Computadores Walisson Pereira Pipeline Tabela : Execuc¸a˜o em pipeline Esta´gios Ciclo BI DI LR EI ER 1 i1 2 i2 i1 3 i3 i2 i1 4 i4 i3 i2 i1 5 i5 i4 i3 i2 i1 6 i6 i5 i4 i3 i2 7 i7 i6 i5 i4 i3 Arquitetura de Computadores Walisson Pereira Pipeline Tabela : Execuc¸a˜o em pipeline Esta´gios Ciclo BI DI LR EI ER 1 i1 2 i2 i1 3 i3 i2 i1 4 i4 i3 i2 i1 5 i5 i4 i3 i2 i1 6 i6 i5 i4 i3 i2 7 i7 i6 i5 i4 i3 Arquitetura de Computadores Walisson Pereira Pipeline Tabela : Execuc¸a˜o em pipeline Esta´gios Ciclo BI DI LR EI ER 1 i1 2 i2 i1 3 i3 i2 i1 4 i4 i3 i2 i1 5 i5 i4 i3 i2 i1 6 i6 i5 i4 i3 i2 7 i7 i6 i5 i4 i3 Arquitetura de Computadores Walisson Pereira Pipeline Tabela : Execuc¸a˜o em pipeline Esta´gios Ciclo BI DI LR EI ER 1 i1 2 i2 i1 3 i3 i2 i1 4 i4 i3 i2 i1 5 i5 i4 i3 i2 i1 6 i6 i5 i4 i3 i2 7 i7 i6 i5 i4 i3 Arquitetura de Computadores Walisson Pereira Pipeline Tabela : Execuc¸a˜o em pipeline Esta´gios Ciclo BI DI LR EI ER 1 i1 2 i2 i1 3 i3 i2 i1 4 i4 i3 i2 i1 5 i5 i4 i3 i2 i1 6 i6 i5 i4 i3 i2 7 i7 i6 i5 i4 i3 Arquitetura de Computadores Walisson Pereira Durac¸a˜o do ciclo em Processadores com Pipeline A durac¸a˜o do ciclo de um processador com pipeline e´ dependente de quatro fatores: 1 a durac¸a˜o do ciclo da parte do processador que na˜o tem pipeline 2 o nu´mero de esta´gios do pipeline 3 a homogeneidade com que a lo´gica do caminho de dados e´ dividida entre os esta´gios 4 e a lateˆncia dos latches Arquitetura de Computadores Walisson Pereira Durac¸a˜o do ciclo em Processadores com Pipeline C = S E + L (1) onde: C: durac¸a˜o do ciclo com pipeline S: durac¸a˜o do ciclo sem pipeline E: nu´mero de esta´gios de pipeline L: lateˆncia do latch Arquitetura de Computadores Walisson Pereira Durac¸a˜o do ciclo em Processadores com Pipeline Exemplo: Um processador sem pipeline tem uma durac¸a˜o de ciclo de 25 ns. Qual e´ a durac¸a˜o do ciclo de uma versa˜o deste processador com pipeline de 5 esta´gios divididos homogeneamente, se cada latch tem uma lateˆncia de 1 ns? E se o processador foi dividido em 50 esta´gios de pipeline? Soluc¸a˜o: Para o caso de 5 esta´gios de pipeline: S: 25 ns E: 5 L: 1 ns C = 25ns 5 + 1ns = 6ns (2) Arquitetura de Computadores Walisson Pereira Durac¸a˜o do ciclo em Processadores com Pipeline Exemplo: Um processador sem pipeline tem uma durac¸a˜o de ciclo de 25 ns. Qual e´ a durac¸a˜o do ciclo de uma versa˜o deste processador com pipeline de 5 esta´gios divididos homogeneamente, se cada latch tem uma lateˆncia de 1 ns? E se o processador foi dividido em 50 esta´gios de pipeline? Soluc¸a˜o: Para o caso de 5 esta´gios de pipeline: S: 25 ns E: 5 L: 1 ns C = 25ns 5 + 1ns = 6ns (2) Arquitetura de Computadores Walisson Pereira Durac¸a˜o do ciclo em Processadores com Pipeline Exemplo: Um processador sem pipeline tem uma durac¸a˜o de ciclo de 25 ns. Qual e´ a durac¸a˜o do ciclo de uma versa˜o deste processador com pipeline de 5 esta´gios divididos homogeneamente, se cada latch tem uma lateˆncia de 1 ns? E se o processador foi dividido em 50 esta´gios de pipeline? Soluc¸a˜o: Para o caso de 5 esta´gios de pipeline: S: 25 ns E: 5 L: 1 ns C = 25ns 5 + 1ns = 6ns (2) Arquitetura de Computadores Walisson Pereira Durac¸a˜o do ciclo em Processadores com Pipeline Exemplo: Um processador sem pipeline tem uma durac¸a˜o de ciclo de 25 ns. Qual e´ a durac¸a˜o do ciclo de uma versa˜o deste processador com pipeline de 5 esta´gios divididos homogeneamente, se cada latch tem uma lateˆncia de 1 ns? E se o processador foi dividido em 50 esta´gios de pipeline? Soluc¸a˜o: Para o caso de 50 esta´gios de pipeline: S: 25 ns E: 50 L: 1 ns C = 25ns 50 + 1ns = 1, 5ns (3) Arquitetura de Computadores Walisson Pereira Durac¸a˜o do ciclo em Processadores com Pipeline Exemplo: Um processador sem pipeline tem uma durac¸a˜o de ciclo de 25 ns. Qual e´ a durac¸a˜o do ciclo de uma versa˜o deste processador com pipeline de 5 esta´gios divididos homogeneamente, se cada latch tem uma lateˆncia de 1 ns? E se o processador foi dividido em 50 esta´gios de pipeline? Soluc¸a˜o: Para o caso de 50 esta´gios de pipeline: S: 25 ns E: 50 L: 1 ns C = 25ns 50 + 1ns = 1, 5ns (3) Arquitetura de Computadores Walisson Pereira Durac¸a˜o do ciclo em Processadores com Pipeline Exemplo: Um processador sem pipeline tem uma durac¸a˜o de ciclo de 25 ns. Qual e´ a durac¸a˜o do ciclo de uma versa˜o deste processador com pipeline de 5 esta´gios divididos homogeneamente, se cada latch tem uma lateˆncia de 1 ns? E se o processador foi dividido em 50 esta´gios de pipeline? Soluc¸a˜o: Para o caso de 50 esta´gios de pipeline: S: 25 ns E: 50 L: 1 ns C = 25ns 50 + 1ns = 1, 5ns (3) Arquitetura de Computadores Walisson Pereira Durac¸a˜o do ciclo em Processadores com Pipeline Quando o processador na˜o pode ser dividido em esta´gios de pipeline com lateˆncia igual, a durac¸a˜o do ciclo de relo´gio do processador e´ igual a` lateˆncia do esta´gio de pipeline mais longo, mais o atraso do latch, uma vez que a durac¸a˜o do ciclo tem que ser longa o suficiente para que o esta´gio de pipeline mais longo possa completar e armazenar os seus resultados no latch que esta´ entre ele e o pro´ximo esta´gio Arquitetura de Computadores Walisson Pereira Durac¸a˜o do ciclo em Processadores com Pipeline Exemplo: Suponha que um processador sem pipeline, com uma durac¸a˜o de ciclo de 25 ns, esteja divididoem 5 esta´gios de pipeline com lateˆncia de 5, 7, 3, 6 e 4 ns. Se a lateˆncia do latch for de 1 ns, qual e´ a durac¸a˜o do ciclo do processador resultante? Soluc¸a˜o: 8 ns Arquitetura de Computadores Walisson Pereira Durac¸a˜o do ciclo em Processadores com Pipeline Exemplo: Suponha que um processador sem pipeline, com uma durac¸a˜o de ciclo de 25 ns, esteja dividido em 5 esta´gios de pipeline com lateˆncia de 5, 7, 3, 6 e 4 ns. Se a lateˆncia do latch for de 1 ns, qual e´ a durac¸a˜o do ciclo do processador resultante? Soluc¸a˜o: 8 ns Arquitetura de Computadores Walisson Pereira Lateˆncia do Pipeline Lateˆncia do Pipeline E´ a soma do tempo que uma u´nica instruc¸a˜o demora para passar atrave´s do pipeline Arquitetura de Computadores Walisson Pereira Lateˆncia do Pipeline Exemplo: Se um processador sem pipeline com uma durac¸a˜o de ciclo de 25 ns for dividido homogeneamente em 5 esta´gios de pipeline, utilizando-se latches com uma lateˆncia de 1 ns, qual a lateˆncia total do pipeline? E se o processador foi dividido em 50 esta´gios? Soluc¸a˜o: para o caso de 5 esta´gios: 5 esta´gios× 6 ns = 30 ns (4) Arquitetura de Computadores Walisson Pereira Lateˆncia do Pipeline Exemplo: Se um processador sem pipeline com uma durac¸a˜o de ciclo de 25 ns for dividido homogeneamente em 5 esta´gios de pipeline, utilizando-se latches com uma lateˆncia de 1 ns, qual a lateˆncia total do pipeline? E se o processador foi dividido em 50 esta´gios? Soluc¸a˜o: para o caso de 5 esta´gios: 5 esta´gios× 6 ns = 30 ns (4) Arquitetura de Computadores Walisson Pereira Lateˆncia do Pipeline Exemplo: Se um processador sem pipeline com uma durac¸a˜o de ciclo de 25 ns for dividido homogeneamente em 5 esta´gios de pipeline, utilizando-se latches com uma lateˆncia de 1 ns, qual a lateˆncia total do pipeline? E se o processador foi dividido em 50 esta´gios? Soluc¸a˜o: para o caso de 50 esta´gios: 50 esta´gios× 1, 5 ns = 75 ns (5) Arquitetura de Computadores Walisson Pereira Lateˆncia do Pipeline Exemplo: Suponha que um processador sem pipeline, com uma durac¸a˜o de ciclo de 25 ns, esta´ dividido em 5 esta´gios de pipeline com lateˆncia de 5, 7, 3, 6 e 4 ns. Se a lateˆncia do latch for de 1 ns, qual e´ a lateˆncia do pipeline resultante? Soluc¸a˜o: Ja´ sabemos que um ciclo deste pipeline dura 8 ns, enta˜o: 5 esta´gios× 8 ns = 40 ns (6) Arquitetura de Computadores Walisson Pereira Lateˆncia do Pipeline Exemplo: Suponha que um processador sem pipeline, com uma durac¸a˜o de ciclo de 25 ns, esta´ dividido em 5 esta´gios de pipeline com lateˆncia de 5, 7, 3, 6 e 4 ns. Se a lateˆncia do latch for de 1 ns, qual e´ a lateˆncia do pipeline resultante? Soluc¸a˜o: Ja´ sabemos que um ciclo deste pipeline dura 8 ns, enta˜o: 5 esta´gios× 8 ns = 40 ns (6) Arquitetura de Computadores Walisson Pereira Risco de dependeˆncia entre instruc¸o˜es e o seu impacto sobre a taxa de rendimento O pipelining melhora o desempenho de um processador ao aumentar a taxa de rendimento das instruc¸o˜es Devido a` divisa˜o de instruc¸o˜es em esta´gios e sua sobreposic¸a˜o no pipeline, a durac¸a˜o do ciclo pode ser reduzida, aumentando a taxa pela qual as instruc¸o˜es sa˜o executadas No caso ideal, taxa de rendimento de um pipeline = 1durac¸a˜o do ciclo Para o caso de um pipeline de 5 esta´gios com durac¸a˜o de ciclo de 6 ns e uma durac¸a˜o de ciclo sem pipeline de 25 ns, ter´ıamos uma taxa de rendimento ideal de 1, 67× 108 instruc¸o˜es/segundo contra a taxa de rendimento de 4× 107 instruc¸o˜es/segundo do processador sem pipeline. Arquitetura de Computadores Walisson Pereira Risco de dependeˆncia entre instruc¸o˜es e o seu impacto sobre a taxa de rendimento O pipelining melhora o desempenho de um processador ao aumentar a taxa de rendimento das instruc¸o˜es Devido a` divisa˜o de instruc¸o˜es em esta´gios e sua sobreposic¸a˜o no pipeline, a durac¸a˜o do ciclo pode ser reduzida, aumentando a taxa pela qual as instruc¸o˜es sa˜o executadas No caso ideal, taxa de rendimento de um pipeline = 1durac¸a˜o do ciclo Para o caso de um pipeline de 5 esta´gios com durac¸a˜o de ciclo de 6 ns e uma durac¸a˜o de ciclo sem pipeline de 25 ns, ter´ıamos uma taxa de rendimento ideal de 1, 67× 108 instruc¸o˜es/segundo contra a taxa de rendimento de 4× 107 instruc¸o˜es/segundo do processador sem pipeline. Arquitetura de Computadores Walisson Pereira Risco de dependeˆncia entre instruc¸o˜es e o seu impacto sobre a taxa de rendimento Entretanto, existe uma certa quantidade de fatores que limita a capacidade de um pipeline de executar instruc¸o˜es na sua taxa de pico, como: Dependeˆncias entre as instruc¸o˜es Desvios Tempo necessa´rio para acessar a memo´ria. Arquitetura de Computadores Walisson Pereira Risco de dependeˆncia entre instruc¸o˜es e o seu impacto sobre a taxa de rendimento Risco de dependeˆncia entre instruc¸o˜es Ocorrem quando uma instruc¸a˜o leˆ ou escrevem em um registrador que esta´ sendo utilizado por outra instruc¸a˜o Podem ser de quatro tipos: LAL: risco de leitura apo´s leitura LAE: risco de leitura apo´s escrita EAL: risco de escrita apo´s leitura EAE: risco de escrita apo´s escrita Arquitetura de Computadores Walisson Pereira Risco de dependeˆncia entre instruc¸o˜es e o seu impacto sobre a taxa de rendimento Risco de leitura apo´s leitura (LAL) Ocorre quando duas instruc¸o˜es leˆem o mesmo registrador O risco LAL na˜o causam um problema para o processador por que a leitura de um registrador na˜o modifica seu valor Duas instruc¸o˜es que teˆm o risco LAL podem ser executadas em ciclos sucessivos ou no mesmo ciclo Exemplo: ADD r1, r2, r3 SUB r4, r5, r3 Arquitetura de Computadores Walisson Pereira Risco de dependeˆncia entre instruc¸o˜es e o seu impacto sobre a taxa de rendimento Risco de leitura apo´s escrita (LAE) Ocorre quando uma instruc¸o˜es leˆ um registrador que foi escrito por uma instruc¸a˜o anterior Tambe´m conhecido como dependeˆncias de dados ou dependeˆncias reais Quando um risco LAE ocorre, a instruc¸a˜o que esta´ fazendo a leitura na˜o pode progredir ale´m do esta´gio de leitura do registrador do pipeline ate´ que a instruc¸a˜o que esta´ executando a escrita tenha passado atrave´s do esta´gio de escrita dos registrados Chamamos isto de adiamento ou bolha de pipeline Exemplo: ADD r1, r2, r3 SUB r4, r5, r1 Arquitetura de Computadores Walisson Pereira Risco de dependeˆncia entre instruc¸o˜es e o seu impacto sobre a taxa de rendimento ADD r1,r2,r3 SUB r4,r5,r1 Tabela : Execuc¸a˜o em pipeline, com adiamento Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 SUB ADD 4 SUB (bolha) ADD 5 SUB (bolha) (bolha) ADD 6 SUB (bolha) (bolha) 7 SUB (bolha) 8 SUB Arquitetura de Computadores Walisson Pereira Risco de dependeˆncia entre instruc¸o˜es e o seu impacto sobre a taxa de rendimento ADD r1,r2,r3 SUB r4,r5,r1 Tabela : Execuc¸a˜o em pipeline, com adiamento Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 SUB ADD 4 SUB (bolha) ADD 5 SUB (bolha) (bolha) ADD 6 SUB (bolha) (bolha) 7 SUB (bolha) 8 SUB Arquitetura de Computadores Walisson Pereira Risco de dependeˆncia entre instruc¸o˜es e o seu impacto sobre a taxa de rendimento ADD r1,r2,r3 SUB r4,r5,r1 Tabela : Execuc¸a˜o em pipeline, com adiamento Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 SUB ADD 4 SUB (bolha) ADD 5 SUB (bolha) (bolha) ADD 6 SUB (bolha) (bolha) 7 SUB (bolha) 8 SUB Arquitetura de Computadores Walisson Pereira Risco de dependeˆncia entre instruc¸o˜es e o seu impacto sobre a taxa de rendimento ADD r1,r2,r3 SUB r4,r5,r1 Tabela : Execuc¸a˜o em pipeline, com adiamento Esta´gios CicloBI DI LR EI ER 1 ADD 2 SUB ADD 3 SUB ADD 4 SUB (bolha) ADD 5 SUB (bolha) (bolha) ADD 6 SUB (bolha) (bolha) 7 SUB (bolha) 8 SUB Arquitetura de Computadores Walisson Pereira Risco de dependeˆncia entre instruc¸o˜es e o seu impacto sobre a taxa de rendimento ADD r1,r2,r3 SUB r4,r5,r1 Tabela : Execuc¸a˜o em pipeline, com adiamento Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 SUB ADD 4 SUB (bolha) ADD 5 SUB (bolha) (bolha) ADD 6 SUB (bolha) (bolha) 7 SUB (bolha) 8 SUB Arquitetura de Computadores Walisson Pereira Risco de dependeˆncia entre instruc¸o˜es e o seu impacto sobre a taxa de rendimento ADD r1,r2,r3 SUB r4,r5,r1 Tabela : Execuc¸a˜o em pipeline, com adiamento Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 SUB ADD 4 SUB (bolha) ADD 5 SUB (bolha) (bolha) ADD 6 SUB (bolha) (bolha) 7 SUB (bolha) 8 SUB Arquitetura de Computadores Walisson Pereira Risco de dependeˆncia entre instruc¸o˜es e o seu impacto sobre a taxa de rendimento ADD r1,r2,r3 SUB r4,r5,r1 Tabela : Execuc¸a˜o em pipeline, com adiamento Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 SUB ADD 4 SUB (bolha) ADD 5 SUB (bolha) (bolha) ADD 6 SUB (bolha) (bolha) 7 SUB (bolha) 8 SUB Arquitetura de Computadores Walisson Pereira Risco de dependeˆncia entre instruc¸o˜es e o seu impacto sobre a taxa de rendimento ADD r1,r2,r3 SUB r4,r5,r1 Tabela : Execuc¸a˜o em pipeline, com adiamento Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 SUB ADD 4 SUB (bolha) ADD 5 SUB (bolha) (bolha) ADD 6 SUB (bolha) (bolha) 7 SUB (bolha) 8 SUB Arquitetura de Computadores Walisson Pereira Risco de dependeˆncia entre instruc¸o˜es e o seu impacto sobre a taxa de rendimento Risco de escrita apo´s leitura (EAL) e risco de escrita apo´s escrita (EAE) Ocorre quando uma instruc¸o˜es escreve em um registrador que foi lido por uma instruc¸a˜o anterior Tambe´m conhecido como dependeˆncias de nome, pois este risco na˜o ocorreria se tive´ssemos mais registradores dispon´ıveis Na˜o causam atraso no pipeline se as instruc¸o˜es forem executadas na ordem correta Podem causar problema se as instruc¸o˜es possu´ırem lateˆncias diferentes Arquitetura de Computadores Walisson Pereira Risco de dependeˆncia entre instruc¸o˜es e o seu impacto sobre a taxa de rendimento Exemplo de risco de escrita apo´s leitura (EAL) ADD r1,r2,r3 SUB r2,r5,r6 Exemplo de risco de escrita apo´s escrita (EAE) ADD r1,r2,r3 SUB r1,r5,r6 Arquitetura de Computadores Walisson Pereira Desvios Instruc¸o˜es de desvio tambe´m podem causar atrasos em processadores com pipeline, porque o processador na˜o pode determinar qual instruc¸a˜o deve ser buscada ate´ que o desvio tenha sido executado. Tambe´m conhecido como risco de controle Arquitetura de Computadores Walisson Pereira Desvios BEQ r6, r1, r2 SUB r4,r5,r1 Tabela : Execuc¸a˜o em pipeline, com desvio Esta´gios Ciclo BI DI LR EI ER 1 desvio 2 (bolha) desvio 3 (bolha) (bolha) desvio 4 (bolha) (bolha) (bolha) desvio Atualizac¸a˜o no CP permite busca da pro´xima instruc¸a˜o 5 prox. instr. (bolha) (bolha) (bolha) desvio Arquitetura de Computadores Walisson Pereira Desvios BEQ r6, r1, r2 SUB r4,r5,r1 Tabela : Execuc¸a˜o em pipeline, com desvio Esta´gios Ciclo BI DI LR EI ER 1 desvio 2 (bolha) desvio 3 (bolha) (bolha) desvio 4 (bolha) (bolha) (bolha) desvio Atualizac¸a˜o no CP permite busca da pro´xima instruc¸a˜o 5 prox. instr. (bolha) (bolha) (bolha) desvio Arquitetura de Computadores Walisson Pereira Desvios BEQ r6, r1, r2 SUB r4,r5,r1 Tabela : Execuc¸a˜o em pipeline, com desvio Esta´gios Ciclo BI DI LR EI ER 1 desvio 2 (bolha) desvio 3 (bolha) (bolha) desvio 4 (bolha) (bolha) (bolha) desvio Atualizac¸a˜o no CP permite busca da pro´xima instruc¸a˜o 5 prox. instr. (bolha) (bolha) (bolha) desvio Arquitetura de Computadores Walisson Pereira Desvios BEQ r6, r1, r2 SUB r4,r5,r1 Tabela : Execuc¸a˜o em pipeline, com desvio Esta´gios Ciclo BI DI LR EI ER 1 desvio 2 (bolha) desvio 3 (bolha) (bolha) desvio 4 (bolha) (bolha) (bolha) desvio Atualizac¸a˜o no CP permite busca da pro´xima instruc¸a˜o 5 prox. instr. (bolha) (bolha) (bolha) desvio Arquitetura de Computadores Walisson Pereira Desvios BEQ r6, r1, r2 SUB r4,r5,r1 Tabela : Execuc¸a˜o em pipeline, com desvio Esta´gios Ciclo BI DI LR EI ER 1 desvio 2 (bolha) desvio 3 (bolha) (bolha) desvio 4 (bolha) (bolha) (bolha) desvio Atualizac¸a˜o no CP permite busca da pro´xima instruc¸a˜o 5 prox. instr. (bolha) (bolha) (bolha) desvio Arquitetura de Computadores Walisson Pereira Desvios BEQ r6, r1, r2 SUB r4,r5,r1 Tabela : Execuc¸a˜o em pipeline, com desvio Esta´gios Ciclo BI DI LR EI ER 1 desvio 2 (bolha) desvio 3 (bolha) (bolha) desvio 4 (bolha) (bolha) (bolha) desvio Atualizac¸a˜o no CP permite busca da pro´xima instruc¸a˜o 5 prox. instr. (bolha) (bolha) (bolha) desvio Arquitetura de Computadores Walisson Pereira Desvios Atrasos de desvio teˆm um impacto significativo no desempenho dos processadores modernos Algumas te´cnicas desenvolvidas para tratar deste risco de controle: Acrescentar hardware para permitir que o resultado de uma instruc¸a˜o de desvio seja calculado mais cedo no pipeline Acrescentar hardware que preveja o enderec¸o-destino de cada desvio antes que ele seja completado Arquitetura de Computadores Walisson Pereira Riscos estruturais Ocorrem quando o hardware do processador na˜o e´ capaz de executar, simultaneamente, todas as instruc¸o˜es que esta˜o no pipeline Exemplo: Se o banco de registradores na˜o permite que uma instruc¸a˜o no esta´gio ER escreva seu resultado simultaneamente a leitura de outra instruc¸a˜o no esta´gio LR, enta˜o pode ser necessa´rio adiar a execuc¸a˜o desta u´ltima. Riscos estruturais sa˜o relativamente raros em processadores modernos porque seu hardware e o conjunto de instruc¸o˜es foram projetados para suportar pipelining. Entretanto, processadores que executam mais de uma instruc¸a˜o por ciclo possuem restric¸o˜es em relac¸a˜o ao tipo de instruc¸o˜es que o hardware pode executar simultaneamente. Arquitetura de Computadores Walisson Pereira Riscos estruturais Ocorrem quando o hardware do processador na˜o e´ capaz de executar, simultaneamente, todas as instruc¸o˜es que esta˜o no pipeline Exemplo: Se o banco de registradores na˜o permite que uma instruc¸a˜o no esta´gio ER escreva seu resultado simultaneamente a leitura de outra instruc¸a˜o no esta´gio LR, enta˜o pode ser necessa´rio adiar a execuc¸a˜o desta u´ltima. Riscos estruturais sa˜o relativamente raros em processadores modernos porque seu hardware e o conjunto de instruc¸o˜es foram projetados para suportar pipelining. Entretanto, processadores que executam mais de uma instruc¸a˜o por ciclo possuem restric¸o˜es em relac¸a˜o ao tipo de instruc¸o˜es que o hardware pode executar simultaneamente. Arquitetura de Computadores Walisson Pereira Marcac¸a˜o de Registradores (Scoreboarding) Processadores com pipelines precisam saber quais registradores sera˜o escritos pelas instruc¸o˜es que ja´ esta˜o no pipeline, de modo que instruc¸o˜es subsequentes possam determinar se os seus registradores de entrada estara˜o dispon´ıveis quando elas atingirem o esta´gio de leitura de registradores Para fazer isso, a maioria dos processadores utiliza uma te´cnica chamada marcac¸a˜o de registradores (scoreboarding) Arquitetura de Computadores Walisson Pereira Marcac¸a˜o de Registradores (Scoreboarding) Cada registrador possui um bit conhecido como bit de presenc¸a Se o bit de presenc¸a estiver cheio (1), ele esta´dispon´ıvel para leitura Se o bit de presenc¸a˜ estiver vazio (0), ele na˜o esta´ dispon´ıvel para leitura Arquitetura de Computadores Walisson Pereira Marcac¸a˜o de Registradores (Scoreboarding) Quando uma instruc¸a˜o entra no esta´gio de leitura de registradores, o hardware faz uma verificac¸a˜o para ver se todos os seus registradores de entrada esta˜o cheio Se positivo, o hardware marca os registradores de sa´ıda da instruc¸a˜o como vazios e permite que a instruc¸a˜o progrida para o esta´gio de execuc¸a˜o do pro´ximo ciclo Se negativo, o hardware rete´m a instruc¸a˜o no esta´gio de leitura de registradores ate´ que os seus valores de entrada se tornem cheios, inserindo bolhas no esta´gio de execuc¸a˜o em cada ciclo ate´ que isto acontec¸a. Quando a instruc¸a˜o atinge o esta´gio de escrita e escreve o seu resultado nos seus registradores de destino, enta˜o estes registradores sa˜o marcados como cheio Arquitetura de Computadores Walisson Pereira Marcac¸a˜o de Registradores (Scoreboarding) Quando uma instruc¸a˜o entra no esta´gio de leitura de registradores, o hardware faz uma verificac¸a˜o para ver se todos os seus registradores de entrada esta˜o cheio Se positivo, o hardware marca os registradores de sa´ıda da instruc¸a˜o como vazios e permite que a instruc¸a˜o progrida para o esta´gio de execuc¸a˜o do pro´ximo ciclo Se negativo, o hardware rete´m a instruc¸a˜o no esta´gio de leitura de registradores ate´ que os seus valores de entrada se tornem cheios, inserindo bolhas no esta´gio de execuc¸a˜o em cada ciclo ate´ que isto acontec¸a. Quando a instruc¸a˜o atinge o esta´gio de escrita e escreve o seu resultado nos seus registradores de destino, enta˜o estes registradores sa˜o marcados como cheio Arquitetura de Computadores Walisson Pereira Marcac¸a˜o de Registradores (Scoreboarding) Quando uma instruc¸a˜o entra no esta´gio de leitura de registradores, o hardware faz uma verificac¸a˜o para ver se todos os seus registradores de entrada esta˜o cheio Se positivo, o hardware marca os registradores de sa´ıda da instruc¸a˜o como vazios e permite que a instruc¸a˜o progrida para o esta´gio de execuc¸a˜o do pro´ximo ciclo Se negativo, o hardware rete´m a instruc¸a˜o no esta´gio de leitura de registradores ate´ que os seus valores de entrada se tornem cheios, inserindo bolhas no esta´gio de execuc¸a˜o em cada ciclo ate´ que isto acontec¸a. Quando a instruc¸a˜o atinge o esta´gio de escrita e escreve o seu resultado nos seus registradores de destino, enta˜o estes registradores sa˜o marcados como cheio Arquitetura de Computadores Walisson Pereira Marcac¸a˜o de Registradores (Scoreboarding) Quando uma instruc¸a˜o entra no esta´gio de leitura de registradores, o hardware faz uma verificac¸a˜o para ver se todos os seus registradores de entrada esta˜o cheio Se positivo, o hardware marca os registradores de sa´ıda da instruc¸a˜o como vazios e permite que a instruc¸a˜o progrida para o esta´gio de execuc¸a˜o do pro´ximo ciclo Se negativo, o hardware rete´m a instruc¸a˜o no esta´gio de leitura de registradores ate´ que os seus valores de entrada se tornem cheios, inserindo bolhas no esta´gio de execuc¸a˜o em cada ciclo ate´ que isto acontec¸a. Quando a instruc¸a˜o atinge o esta´gio de escrita e escreve o seu resultado nos seus registradores de destino, enta˜o estes registradores sa˜o marcados como cheio Arquitetura de Computadores Walisson Pereira Prevendo o tempo de execuc¸a˜o em processadores com pipeline Em um processador sem pipeline, e´ necessa´rio completar a execuc¸a˜o de cada instruc¸a˜o antes que ele comece a executar a pro´xima instruc¸a˜o As dependeˆncias entre instruc¸o˜es geralmente na˜o afetam o tempo de execuc¸a˜o de um programa nesse tipo de processador Neste caso, o tempo de execuc¸a˜o de um programa pode ser calculado simplesmente somando os tempos de execuc¸a˜o de todas as instruc¸o˜es que o processador realiza ao executar um programa Arquitetura de Computadores Walisson Pereira Prevendo o tempo de execuc¸a˜o em processadores com pipeline Em um processador com pipeline, o ca´lculo do tempo de execuc¸a˜o de um programa e´ mais complicado devido as dependeˆncia entre as instruc¸o˜es No caso ideal, onde na˜o ocorrem adiamento do pipeline, o ca´lculo do tempo de execuc¸a˜o pode ser dado por T = E + (N− 1) (7) Onde: T = tempo de execuc¸a˜o do programa E = nu´mero de esta´gios do pipeline N = nu´mero de instruc¸a˜o do programa Arquitetura de Computadores Walisson Pereira Prevendo o tempo de execuc¸a˜o em processadores com pipeline Um modo de calcular o tempo de execuc¸a˜o de um programa em um processador com pipeline e´ desenhar um diagrama do pipeline para o programa, como mostrado em slides anteriores. Pore´m, isto e´ impratica´vel para programas grandes. Uma abordagem melhor e´ separar o tempo de execuc¸a˜o de um programa em duas partes: Lateˆncia do pipeline Tempo necessa´rio para colocar todas as instruc¸o˜es do programa em circulac¸a˜o A instruc¸a˜o e´ considerada como estando em circulac¸a˜o quando ela passa do esta´gio de leitura de registradores para o esta´gio de execuc¸a˜o, pois e´ geralmente o u´ltimo local no pipeline onde a instruc¸a˜o pode ser adiada Arquitetura de Computadores Walisson Pereira Prevendo o tempo de execuc¸a˜o em processadores com pipeline Um modo de calcular o tempo de execuc¸a˜o de um programa em um processador com pipeline e´ desenhar um diagrama do pipeline para o programa, como mostrado em slides anteriores. Pore´m, isto e´ impratica´vel para programas grandes. Uma abordagem melhor e´ separar o tempo de execuc¸a˜o de um programa em duas partes: Lateˆncia do pipeline Tempo necessa´rio para colocar todas as instruc¸o˜es do programa em circulac¸a˜o A instruc¸a˜o e´ considerada como estando em circulac¸a˜o quando ela passa do esta´gio de leitura de registradores para o esta´gio de execuc¸a˜o, pois e´ geralmente o u´ltimo local no pipeline onde a instruc¸a˜o pode ser adiada Arquitetura de Computadores Walisson Pereira Prevendo o tempo de execuc¸a˜o em processadores com pipeline Neste modelo, o tempo de execuc¸a˜o de um programa e´: TE = L + (TC − 1) (8) Onde: TE = Tempo de execuc¸a˜o (em ciclos) L = Lateˆncia do pipeline TC = Tempo para colocar em circulac¸a˜o uma instruc¸a˜o Entretanto, o tempo para colocar em circulac¸a˜o uma instruc¸a˜o pode ser diferente de outra Arquitetura de Computadores Walisson Pereira Prevendo o tempo de execuc¸a˜o em processadores com pipeline Neste modelo, o tempo de execuc¸a˜o de um programa e´: TE = L + (TC − 1) (8) Onde: TE = Tempo de execuc¸a˜o (em ciclos) L = Lateˆncia do pipeline TC = Tempo para colocar em circulac¸a˜o uma instruc¸a˜o Entretanto, o tempo para colocar em circulac¸a˜o uma instruc¸a˜o pode ser diferente de outra Arquitetura de Computadores Walisson Pereira Prevendo o tempo de execuc¸a˜o em processadores com pipeline Para calcular o tempo necessa´rio para colocar todas as instruc¸o˜es de um programa em circulac¸a˜o, os projetistas definem a lateˆncia da instruc¸a˜o para cada tipo de instruc¸a˜o em um pipeline como sendo o tempo entre o momento em que uma instruc¸a˜o daquele tipo e´ colocada em circulac¸a˜o e o momento no qual uma instruc¸a˜o dependente pode ser posta em circulac¸a˜o. Exemplo (baseado nos diagramas apresentado neste slides anteriormente): Instruc¸o˜es que na˜o sa˜o de desvio teˆm lateˆncia de 3 ciclos Instruc¸o˜es de desvio teˆm lateˆncia de instruc¸a˜o de 4 ciclos Arquitetura de Computadores Walisson Pereira Prevendo o tempo de execuc¸a˜o em processadores com pipeline Exemplo: No pipeline de exemplo que temos utilizado, que tem lateˆncia de instruc¸a˜o de 3 ciclos para instruc¸o˜es que na˜o sa˜o desvio e 4 ciclospara instruc¸o˜es de desvio, qual e´ o tempo de execuc¸a˜o para a seguinte sequeˆncia de instruc¸o˜es? ADD r1,r2,r3 SUB r4,r5,r6 MUL r8,r2,r1 ASH r5,r2,r1 OR r10,r11,r4 Arquitetura de Computadores Walisson Pereira Prevendo o tempo de execuc¸a˜o em processadores com pipeline Soluc¸a˜o: O nosso pipeline de exemplo tem 5 esta´gios, de modo que sua lateˆncia e´ de 5 ciclos. ADD r1,r2,r3 → ciclo n SUB r4,r5,r6 → ciclo n + 1 MUL r8,r2,r1 → ciclo n + 3 ASH r5,r2,r1 → ciclo n + 4 OR r10,r11,r4 → ciclo n + 5 Portanto, TC = 6 ciclos L = 5 ciclos TE = 5 + 6− 1 = 10 ciclos Arquitetura de Computadores Walisson Pereira Prevendo o tempo de execuc¸a˜o em processadores com pipeline Tabela : Exemplo de execuc¸a˜o de pipeline Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 MUL SUB ADD 4 ASH MUL SUB ADD 5 OR ASH MUL SUB ADD 6 OR ASH MUL (bolha) SUB 7 OR ASH MUL (bolha) 8 OR ASH MUL 9 OR ASH 10 OR Arquitetura de Computadores Walisson Pereira Prevendo o tempo de execuc¸a˜o em processadores com pipeline Tabela : Exemplo de execuc¸a˜o de pipeline Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 MUL SUB ADD 4 ASH MUL SUB ADD 5 OR ASH MUL SUB ADD 6 OR ASH MUL (bolha) SUB 7 OR ASH MUL (bolha) 8 OR ASH MUL 9 OR ASH 10 OR Arquitetura de Computadores Walisson Pereira Prevendo o tempo de execuc¸a˜o em processadores com pipeline Tabela : Exemplo de execuc¸a˜o de pipeline Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 MUL SUB ADD 4 ASH MUL SUB ADD 5 OR ASH MUL SUB ADD 6 OR ASH MUL (bolha) SUB 7 OR ASH MUL (bolha) 8 OR ASH MUL 9 OR ASH 10 OR Arquitetura de Computadores Walisson Pereira Prevendo o tempo de execuc¸a˜o em processadores com pipeline Tabela : Exemplo de execuc¸a˜o de pipeline Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 MUL SUB ADD 4 ASH MUL SUB ADD 5 OR ASH MUL SUB ADD 6 OR ASH MUL (bolha) SUB 7 OR ASH MUL (bolha) 8 OR ASH MUL 9 OR ASH 10 OR Arquitetura de Computadores Walisson Pereira Prevendo o tempo de execuc¸a˜o em processadores com pipeline Tabela : Exemplo de execuc¸a˜o de pipeline Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 MUL SUB ADD 4 ASH MUL SUB ADD 5 OR ASH MUL SUB ADD 6 OR ASH MUL (bolha) SUB 7 OR ASH MUL (bolha) 8 OR ASH MUL 9 OR ASH 10 OR Arquitetura de Computadores Walisson Pereira Prevendo o tempo de execuc¸a˜o em processadores com pipeline Tabela : Exemplo de execuc¸a˜o de pipeline Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 MUL SUB ADD 4 ASH MUL SUB ADD 5 OR ASH MUL SUB ADD 6 OR ASH MUL (bolha) SUB 7 OR ASH MUL (bolha) 8 OR ASH MUL 9 OR ASH 10 OR Arquitetura de Computadores Walisson Pereira Prevendo o tempo de execuc¸a˜o em processadores com pipeline Tabela : Exemplo de execuc¸a˜o de pipeline Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 MUL SUB ADD 4 ASH MUL SUB ADD 5 OR ASH MUL SUB ADD 6 OR ASH MUL (bolha) SUB 7 OR ASH MUL (bolha) 8 OR ASH MUL 9 OR ASH 10 OR Arquitetura de Computadores Walisson Pereira Prevendo o tempo de execuc¸a˜o em processadores com pipeline Tabela : Exemplo de execuc¸a˜o de pipeline Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 MUL SUB ADD 4 ASH MUL SUB ADD 5 OR ASH MUL SUB ADD 6 OR ASH MUL (bolha) SUB 7 OR ASH MUL (bolha) 8 OR ASH MUL 9 OR ASH 10 OR Arquitetura de Computadores Walisson Pereira Prevendo o tempo de execuc¸a˜o em processadores com pipeline Tabela : Exemplo de execuc¸a˜o de pipeline Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 MUL SUB ADD 4 ASH MUL SUB ADD 5 OR ASH MUL SUB ADD 6 OR ASH MUL (bolha) SUB 7 OR ASH MUL (bolha) 8 OR ASH MUL 9 OR ASH 10 OR Arquitetura de Computadores Walisson Pereira Prevendo o tempo de execuc¸a˜o em processadores com pipeline Tabela : Exemplo de execuc¸a˜o de pipeline Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 MUL SUB ADD 4 ASH MUL SUB ADD 5 OR ASH MUL SUB ADD 6 OR ASH MUL (bolha) SUB 7 OR ASH MUL (bolha) 8 OR ASH MUL 9 OR ASH 10 OR Arquitetura de Computadores Walisson Pereira Prevendo o tempo de execuc¸a˜o em processadores com pipeline Exemplo: Qual e´ o tempo de execuc¸a˜o da sequencia abaixo em um pipeline de 7 esta´gios, com uma lateˆncia de instruc¸a˜o de 2 ciclos para instruc¸o˜es que na˜o sa˜o desvio, mas uma lateˆncia de instruc¸a˜o de 5 ciclos para instruc¸o˜es de desvio? Assuma que o desvio na˜o e´ feito, de modo que a DIV e´ a pro´xima instruc¸a˜o a ser executada depois dele. BNE r4,#0,r5 DIV r2,r1,r7 ADD r8,r9,r10 SUB r5,r2,r9 MUL r10,r5,r8 Arquitetura de Computadores Walisson Pereira Prevendo o tempo de execuc¸a˜o em processadores com pipeline Soluc¸a˜o: Com o pipeline de 7 esta´gio, nossa lateˆncia e´ de 7 ciclos BNE r4,#0,r5 → ciclo n DIV r2,r1,r7 → ciclo n + 5 ADD r8,r9,r10 → ciclo n + 6 SUB r5,r2,r9 → ciclo n +7 MUL r10,r5,r8 → ciclo n + 9 Portanto, TC = 10 ciclos L = 7 ciclos TE = 7 + 10− 1 = 16 ciclos Arquitetura de Computadores Walisson Pereira Prevendo o tempo de execuc¸a˜o em processadores com pipeline Soluc¸a˜o: Com o pipeline de 7 esta´gio, nossa lateˆncia e´ de 7 ciclos BNE r4,#0,r5 → ciclo n DIV r2,r1,r7 → ciclo n + 5 ADD r8,r9,r10 → ciclo n + 6 SUB r5,r2,r9 → ciclo n +7 MUL r10,r5,r8 → ciclo n + 9 Portanto, TC = 10 ciclos L = 7 ciclos TE = 7 + 10− 1 = 16 ciclos Arquitetura de Computadores Walisson Pereira Transmissa˜o de resultados (bypassing) Muito do atraso causado pelas dependeˆncias de dados e´ devido ao tempo necessa´rio para escrever os resultados de uma instruc¸a˜o no banco de registradores e, enta˜o, leˆ-lo como entrada de outra instruc¸a˜o. Virtualmente, todos os processadores com pipeline incorporam uma te´cnica conhecida como transmissa˜o de resultado, ou estabelecimento de vias secunda´rias, que transmite os resultados do esta´gio de execuc¸a˜o diretamente para as instruc¸o˜es no esta´gios antereiores do pipeline, permitindo que essas instruc¸o˜es progridam sem esperar que os resultados sejam escritos no bando de registradores Arquitetura de Computadores Walisson Pereira Transmissa˜o de resultados (bypassing) Muito do atraso causado pelas dependeˆncias de dados e´ devido ao tempo necessa´rio para escrever os resultados de uma instruc¸a˜o no banco de registradores e, enta˜o, leˆ-lo como entrada de outra instruc¸a˜o. Virtualmente, todos os processadores com pipeline incorporam uma te´cnica conhecida como transmissa˜o de resultado, ou estabelecimento de vias secunda´rias, que transmite os resultados do esta´gio de execuc¸a˜o diretamente para as instruc¸o˜es no esta´gios antereiores do pipeline, permitindo que essas instruc¸o˜es progridam sem esperar que os resultados sejam escritos no bando de registradores Arquitetura de Computadores Walisson Pereira Transmissa˜o de resultados (bypassing) Figura : Transmissa˜o de resultados (utilizac¸a˜o de vias secunda´rias) Arquitetura de Computadores Walisson Pereira Transmissa˜o de resultados (bypassing) ADD r1,r2,r3; SUB r4,r5,r1; Tabela : Atraso de dados Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 SUB ADD 4 SUB ADD O valor de r1 e´ gerado neste ciclo 5 SUB (bolha) ADD 6 SUB (bolha) (bolha) Mas na˜o e´ lido ate´ este ciclo 7 SUB (bolha) 8 SUB Arquitetura de Computadores Walisson Pereira Transmissa˜o de resultados (bypassing) ADD r1,r2,r3; SUB r4,r5,r1; Tabela : Atraso de dados Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 SUB ADD 4 SUB ADD O valor de r1 e´ gerado neste ciclo 5 SUB (bolha) ADD 6 SUB (bolha) (bolha) Mas na˜o e´ lido ate´ este ciclo 7 SUB (bolha) 8 SUB Arquitetura de Computadores Walisson Pereira Transmissa˜ode resultados (bypassing) ADD r1,r2,r3; SUB r4,r5,r1; Tabela : Atraso de dados Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 SUB ADD 4 SUB ADD O valor de r1 e´ gerado neste ciclo 5 SUB (bolha) ADD 6 SUB (bolha) (bolha) Mas na˜o e´ lido ate´ este ciclo 7 SUB (bolha) 8 SUB Arquitetura de Computadores Walisson Pereira Transmissa˜o de resultados (bypassing) ADD r1,r2,r3; SUB r4,r5,r1; Tabela : Atraso de dados Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 SUB ADD 4 SUB ADD O valor de r1 e´ gerado neste ciclo 5 SUB (bolha) ADD 6 SUB (bolha) (bolha) Mas na˜o e´ lido ate´ este ciclo 7 SUB (bolha) 8 SUB Arquitetura de Computadores Walisson Pereira Transmissa˜o de resultados (bypassing) ADD r1,r2,r3; SUB r4,r5,r1; Tabela : Atraso de dados Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 SUB ADD 4 SUB ADD O valor de r1 e´ gerado neste ciclo 5 SUB (bolha) ADD 6 SUB (bolha) (bolha) Mas na˜o e´ lido ate´ este ciclo 7 SUB (bolha) 8 SUB Arquitetura de Computadores Walisson Pereira Transmissa˜o de resultados (bypassing) ADD r1,r2,r3; SUB r4,r5,r1; Tabela : Atraso de dados Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 SUB ADD 4 SUB ADD O valor de r1 e´ gerado neste ciclo 5 SUB (bolha) ADD 6 SUB (bolha) (bolha) Mas na˜o e´ lido ate´ este ciclo 7 SUB (bolha) 8 SUB Arquitetura de Computadores Walisson Pereira Transmissa˜o de resultados (bypassing) ADD r1,r2,r3; SUB r4,r5,r1; Tabela : Atraso de dados Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 SUB ADD 4 SUB ADD O valor de r1 e´ gerado neste ciclo 5 SUB (bolha) ADD 6 SUB (bolha) (bolha) Mas na˜o e´ lido ate´ este ciclo 7 SUB (bolha) 8 SUB Arquitetura de Computadores Walisson Pereira Transmissa˜o de resultados (bypassing) ADD r1,r2,r3; SUB r4,r5,r1; Tabela : Atraso de dados Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 SUB ADD 4 SUB ADD O valor de r1 e´ gerado neste ciclo 5 SUB (bolha) ADD 6 SUB (bolha) (bolha) Mas na˜o e´ lido ate´ este ciclo 7 SUB (bolha) 8 SUB Arquitetura de Computadores Walisson Pereira Transmissa˜o de resultados (bypassing) ADD r1,r2,r3; SUB r4,r5,r1; Tabela : Usando bypassing Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 SUB ADD 4 SUB ADD O valor de r1 e´ gerado neste ciclo 5 SUB (bolha) ADD r1 ja´ pode ser lido neste ciclo 6 SUB (bolha) 7 SUB Arquitetura de Computadores Walisson Pereira Transmissa˜o de resultados (bypassing) ADD r1,r2,r3; SUB r4,r5,r1; Tabela : Usando bypassing Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 SUB ADD 4 SUB ADD O valor de r1 e´ gerado neste ciclo 5 SUB (bolha) ADD r1 ja´ pode ser lido neste ciclo 6 SUB (bolha) 7 SUB Arquitetura de Computadores Walisson Pereira Transmissa˜o de resultados (bypassing) ADD r1,r2,r3; SUB r4,r5,r1; Tabela : Usando bypassing Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 SUB ADD 4 SUB ADD O valor de r1 e´ gerado neste ciclo 5 SUB (bolha) ADD r1 ja´ pode ser lido neste ciclo 6 SUB (bolha) 7 SUB Arquitetura de Computadores Walisson Pereira Transmissa˜o de resultados (bypassing) ADD r1,r2,r3; SUB r4,r5,r1; Tabela : Usando bypassing Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 SUB ADD 4 SUB ADD O valor de r1 e´ gerado neste ciclo 5 SUB (bolha) ADD r1 ja´ pode ser lido neste ciclo 6 SUB (bolha) 7 SUB Arquitetura de Computadores Walisson Pereira Transmissa˜o de resultados (bypassing) ADD r1,r2,r3; SUB r4,r5,r1; Tabela : Usando bypassing Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 SUB ADD 4 SUB ADD O valor de r1 e´ gerado neste ciclo 5 SUB (bolha) ADD r1 ja´ pode ser lido neste ciclo 6 SUB (bolha) 7 SUB Arquitetura de Computadores Walisson Pereira Transmissa˜o de resultados (bypassing) ADD r1,r2,r3; SUB r4,r5,r1; Tabela : Usando bypassing Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 SUB ADD 4 SUB ADD O valor de r1 e´ gerado neste ciclo 5 SUB (bolha) ADD r1 ja´ pode ser lido neste ciclo 6 SUB (bolha) 7 SUB Arquitetura de Computadores Walisson Pereira Transmissa˜o de resultados (bypassing) ADD r1,r2,r3; SUB r4,r5,r1; Tabela : Usando bypassing Esta´gios Ciclo BI DI LR EI ER 1 ADD 2 SUB ADD 3 SUB ADD 4 SUB ADD O valor de r1 e´ gerado neste ciclo 5 SUB (bolha) ADD r1 ja´ pode ser lido neste ciclo 6 SUB (bolha) 7 SUB
Compartilhar