SlideShare uma empresa Scribd logo
DESDOBRAMENTO E
ESCALONAMENTO DE LOOP
– PIPELINE MIPS 32 BITS
ELAINE CECÍLIA GATTO
Usando o código a seguir:
- Desdobre o código quatro vezes e
escalone-o para execução rápida no
pipeline padrão do MIPS sem mecanismo
de forwarding.
- Considere que ele admite a instrução
ADDI. Você pode considerar que o LOOP
é executado para um múltiplo de quatro
vezes. Suponha inicialmente que$10 = 0
e $30 = 400. Suponha também que os
desvios são resolvidos no estágio MEM.
- Como o código escalonado se compara
com o código não escalonado original em
termos de execução—isto é, em termos
de speed up? Mostre o código
desdobrado e depois escalonado.
LOOP: Lw $2, 0($10)
Sub $4, $2, $3
Sw $4, 0($10)
Addi $10, $10, 4
Bne $10, $30, LOOP
lw $2, 0($10)
IF/IM ID/REG EX/ALU MEM WB/REG
cc1
ANALISANDO O CÓDIGO MIPS PARA IDENTIFICAR OS CONFLITOS/HAZARDS/DEPENDENCIAS
CICLO 1:
- A instrução LW entra no pipeline
O conteúdo deste material está no livro ARQUITETURA DE COMPUTADORES UMA ABORDAGEM
QUANTITATIVA. Vai da página 135 a 140.
ANALISANDO O CÓDIGO MIPS PARA IDENTIFICAR OS CONFLITOS/HAZARDS/DEPENDENCIAS
CICLO 2:
- A instrução LW está sendo codificada
- A instrução sub entra no pipeline
lw $2, 0($10)
IF/IM EX/ALU MEM WB/REG
cc2
sub $4, 42, $3
ID/REG
ANALISANDO O CÓDIGO MIPS PARA IDENTIFICAR OS CONFLITOS/HAZARDS/DEPENDENCIAS
CICLO 3:
- A instrução LW está calculando o
endereço de memória de onde deve
pegar o operando
- A instrução SUB está sendo codificada
- A instrução SW entra no pipeline
lw $2, 0($10)
IF/IM EX/ALU MEM WB/REG
cc3
sub $4, 42, $3
ID/REG
sw $4, 0($10)
ANALISANDO O CÓDIGO MIPS PARA IDENTIFICAR OS CONFLITOS/HAZARDS/DEPENDENCIAS
CICLO 4:
- A instrução LW está buscando o valor
do endereço de memória calculado
- A instrução SUB está sendo calculada:
$4 = $2 - $3
- A instrução SW está sendo codificada
- A instrução ADDI entra no pipeline.
Neste ciclo temos um conflito entre as
instruções LW e SUB. O valor do
operando $2 que SUB precisa ainda não
está disponível!
lw $2, 0($10)
IF/IM EX/ALU MEM WB/REG
cc4
sub $4, 42, $3
ID/REG
sw $4, 0($10)
addi $10, $10, 4
ANALISANDO O CÓDIGO MIPS PARA IDENTIFICAR OS CONFLITOS/HAZARDS/DEPENDENCIAS
CICLO 5:
- A instrução LW escreve no registrador
$2 e sai do pipeline
- A instrução SUB não faz nada no
estágio MEM neste ciclo
- A instrução SW está calculando o
endereço de memória
- A instrução ADDI está sendo codificada
- A instrução BNE entra no pipeline
lw $2, 0($10)
IF/IM EX/ALU WB/REG
cc5
sub $4, 42, $3
ID/REG
sw $4, 0($10)
addi $10, $10, 4
bne $10, $30, LOOP
MEM
ANALISANDO O CÓDIGO MIPS PARA IDENTIFICAR OS CONFLITOS/HAZARDS/DEPENDENCIAS
CICLO 6:
- A instrução SUB escreve no registrador
$4 e sai do pipeline
- A instrução SW escreve o valor que
está no registrador $4 no endereço de
memória calculado
- A instrução ADDI calcula $10 = $10 + 4
- A instrução BNE está sendo codificada
Aqui temos um problema com as
instruções SUB e SW. Qual valor correto
que será escrito por SW sendo que SUB
ainda não terminou a escrita?
IF/IM EX/ALU WB/REG
cc6
sub $4, 42, $3
ID/REG
sw $4, 0($10)
addi $10, $10, 4
bne $10, $30, LOOP
MEM
ANALISANDO O CÓDIGO MIPS PARA IDENTIFICAR OS CONFLITOS/HAZARDS/DEPENDENCIAS
CICLO 7:
- A instrução SW não faz nada no estágio
WB e sai do pipeline
- A instrução ADDI não faz nada no
estágio MEM
- A instrução BNE está comparando o
valores dos registradores: $10 != $30 ?
Aqui temos um problema com as
instruções ADDI e BNE. O valor do
registrador $10 ainda não foi escrito,
então BNE não pode compará-lo!
IF/IM EX/ALU
cc7 ID/REG
sw $4, 0($10)
addi $10, $10, 4
bne $10, $30, LOOP
WB/REG
MEM
ANALISANDO O CÓDIGO MIPS PARA IDENTIFICAR OS CONFLITOS/HAZARDS/DEPENDENCIAS
CICLO 8:
- A instrução ADDI escreve no registrador
$10 e sai do pipeline
- A instrução BNE, no estágio MEM,
realiza o desvio
Como temos o problema no ciclo anterior,
ele persistirá aqui!
IF/IM EX/ALU
cc8 ID/REG
addi $10, $10, 4
bne $10, $30, LOOP
WB/REG
MEM
ANALISANDO O CÓDIGO MIPS PARA IDENTIFICAR OS CONFLITOS/HAZARDS/DEPENDENCIAS
CICLO 9:
- A instrução BNE sai do pipeline
IF/IM EX/ALU
cc9 ID/REG
bne $10, $30, LOOP
WB/REG
MEM
Concluímos que o código tem conflitos que precisam ser resolvidos com forwarding e bolhas. No entanto, o
exercício diz que o pipeline não possui o mecanismo de forwarding. Os conflitos estão marcados no código a
seguir:
LOOP: Lw $2, 0($10)
Sub $4, $2, $3
Sw $4, 0($10)
Addi $10, $10, 4
Bne $10, $30, LOOP
COM MECANISMO DE FORWARDING O PIPELINE DESTE CÓDIGO FICA DA SEGUINTE FORMA:
IF/IM EX/ALU
ID/REG MEM WB/REG
IF/IM EX/ALU
ID/REG WB/REG
MEM
IF/IM EX/ALU
ID/REG MEM WB/REG
EX/ALU
IF/IM ID/REG MEM WB/REG
IF/IM EX/ALU
ID/REG MEM WB/REG
Lw $2, 0($10)
Sub $4, $2, 43
Sw $4, 0($10)
Addi $10, $10, 4
Bne $10, $10, LOOP
12 ciclos de clock para iniciar e
finalizar as 8 instruções e
precisaremos de 3 bolhas.
8 ciclos de START de instruções
1 2 3 4 5 6 7 8 9 10 11 12
SEM MECANISMO DE FORWARDING O PIPELINE DESTE CÓDIGO FICA DA SEGUINTE FORMA:
IF/IM EX/ALU
ID/REG MEM WB/REG
Lw $2, 0($10)
IF/IM EX/ALU
ID/REG MEM WB/REG
IF/IM EX/ALU
ID/REG MEM WB/REG
IF/IM EX/ALU
ID/REG MEM WB/REG
IF/IM EX/ALU
ID/REG MEM WB/REG
Sub $4, $2, $3
Sw $4, 0($10)
Addi $10, $10, 4
Bne $10, $10, LOOP
14 ciclos de clock para iniciar e
finalizar as 10 instruções!
Precisaremos de 5 bolhas. São 10
ciclos de start.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
COM MECANISMO DE FORWARDING, E
SEM QUALQUER ESCALONAMENTO, O
CÓDIGO FICA DA SEGUINTE FORMA:
LOOP: 1. LW $2, 9($10)
2. BOLHA
3. SUB $4, $2, $3
4. BOLHA
5. SW $4, 0($10)
6. ADDI $10, $10, 4
7. BOLHA
8. BNE $10, $30, LOOP
SEM MECANISMO DE FORWARDING, E
SEM QUALQUER ESCALONAMENTO, O
CÓDIGO FICA DA SEGUINTE FORMA:
LOOP: 1. LW $2, 9($10)
2. BOLHA
3. BOLHA
4. SUB $4, $2, $3
5. BOLHA
6. SW $4, 0($10)
7. ADDI $10, $10, 4
8. BOLHA
9. BOLHA
10. BNE $10, $30, LOOP
Estes códigos são apenas reflexo dos diagramas dos slides anteriores
ESCALONAMENTO:
- Técnica usada para manter o pipeline cheio;
- Encontra sequências de instruções não relacionadas que podem ser sobrepostas;
- Evita bolhas:
- Uma instrução dependente precisa ser separada da instrução de origem por uma distância em
ciclos de clock igual à latência do pipeline dessa instrução de origem
COM MECANISMO DE FORWARDING, E
COM ESCALONAMENTO, O CÓDIGO
FICA DA SEGUINTE FORMA:
LOOP: 1. LW $2, 0($10)
2. ADDI $10, $10, 4
3. SUB $4, $2, $3
4. BOLHA
5. SW $4, 8($10)
6. BNE $10, $30, LOOP
SEM MECANISMO DE FORWARDING, E
COM ESCALONAMENTO, O CÓDIGO
FICA DA SEGUINTE FORMA:
LOOP: 1. LW $2, 0($10)
2. ADDI $10, $10, 4
3. BOLHA
4. SUB $4, $2, $3
5. BOLHA
6. BOLHA
7. SW $4, 8($10)
8. BNE $10, $30, LOOP
Vamos ver como fica o diagrama pra esses dois códigos!
O 8 na instrução SW em ambos os códigos, é por conta que pulamos 2 instruções: 0 + 4 + 4. A
bolha não conta! Para escalonar precisamos prestar atenção nestes detalhes!
COM MECANISMO DE FORWARDING E COM ESCALONAMENTO
IF/IM EX/ALU
ID/REG MEM WB/REG
IF/IM EX/ALU
ID/REG WB/REG
MEM
IF/IM EX/ALU
ID/REG MEM WB/REG
EX/ALU
IF/IM ID/REG MEM WB/REG
IF/IM EX/ALU
ID/REG MEM WB/REG
Lw $2, 0($10)
Sub $4, $2, 43
Sw $4, 8($10)
Addi $10, $10, 4
Bne $10, $10, LOOP
10 ciclos de clock para iniciar e
finalizar as 6 instruções e
precisaremos de 1 bolha.
6 ciclos de START de instruções
1 2 3 4 5 6 7 8 9 10
SEM MECANISMO DE FORWARDING E COM ESCALONAMENTO
IF/IM EX/ALU
ID/REG MEM WB/REG
IF/IM EX/ALU
ID/REG WB/REG
MEM
IF/IM EX/ALU
ID/REG MEM WB/REG
EX/ALU
IF/IM ID/REG MEM WB/REG
IF/IM EX/ALU
ID/REG MEM WB/REG
Lw $2, 0($10)
Sub $4, $2, 43
Sw $4, 8($10)
Addi $10, $10, 4
Bne $10, $10, LOOP
12 ciclos de clock para iniciar e
finalizar as 8 instruções e
precisaremos de 3 bolhas.
8 ciclos de START de instruções
1 2 3 4 5 6 7 8 9 10 11 12
DESDOBRANDO O LOOP EM 4 CÓPIAS
1. Lw $2, 0($10)
2. Sub $4, $2, $3
3. Sw $4, 0($10)
4. Lw $6, 8($10)
5. Sub $8, $6, $3
6. Sw $8, 8($10)
7. Lw $12, 16($10)
8. Sub $14, $12, $3
9. Sw $14, 16($10)
10. Lw $16, 24($10)
11. Sub $18, $16, $3
12. Sw $18, 24($10)
13. Addi $10, $10, 32
14. Bne $10, $30, LOOP
LOOP:
Para desdobrar o código você precisa fazer uma cópia do
CORPO do LOOP renomeando os registradores e
modificando o índice que acompanha o endereço base da
instrução de load/store.
As instruções referentes ao incremento do LOOP e à
decisão do DESVIO não entram na cópia!
O código à esquerda já é o código desdobrado. Cada parte
replicada está com uma cor diferente para destacar as
mudanças.
Agora temos 14 instruções que vão encher o pipeline e
com isso as bolhas não serão mais necessárias.
Ainda assim, do jeito que está aqui teremos bolhas. Vamos
reordenar para evitar isto!
DESDOBRANDO O LOOP EM 4 CÓPIAS
1. Lw $2, 0($10)
2. Lw $6, 8($10)
3. Lw $12, 16($10)
4. Lw $16, 24($10)
5. Sub $4, $2, $3
6. Sub $8, $6, $3
7. Sub $14, $12, $3
8. Sub $18, $16, $3
9. Sw $4, 0($10)
10. Sw $8, 8($10)
11. Sw $14, 16($10)
12. Sw $18, 24($10)
13. Addi $10, $10, 4
14. Bne $10, $30, LOOP
LOOP:
Depois de desdobrar o código, reordene de
forma que todas as instruções de LOAD
estejam no inicio e todas as instruções de
STORE no final.
DESDOBRAMENTO:
- É uma técnica para aumentar o número de
instruções relativas às instruções de desvio
- Replica o corpo do LOOP várias vezes e
ajusta o final
- Remove as instruções de desvio do meio do
caminho
- Permite que instruções de diferentes
iterações sejam escalonadas juntas
- Necessário renomear os registradores
- Considerar apenas o corpo do LOOP para a
replicação
- Evita bolhas
DIAGRAMA CÓDIGO DESDOBRADO E ESCALONADO
IF/IM EX/ALU
ID/REG MEM WB/REG
LW $2, 0($10)
IF/IM EX/ALU
ID/REG MEM WB/REG
LW $6, 8($10)
IF/IM EX/ALU
ID/REG MEM WB/REG
LW $12, 16($10)
IF/IM EX/ALU
ID/REG MEM WB/REG
LW $16, 24($10)
IF/IM EX/ALU
ID/REG MEM WB/REG
IF/IM EX/ALU
ID/REG MEM WB/REG
IF/IM EX/ALU
ID/REG MEM WB/REG
SUB $4, $2, $3
SUB $8, $6, $3
SUB $14, $12, $3
Note que escreve em $2 no ciclo 5 e
usa $2 no ciclo 7. Não há conflitos! O
mesmo pode ser observado nas outras
instruções
1 2 3 4 5 6 7 8 9 10 11
DIAGRAMA CÓDIGO DESDOBRADO E ESCALONADO
IF/IM EX/ALU
ID/REG MEM WB/REG
IF/IM EX/ALU
ID/REG MEM WB/REG
SUB $18, 416, $3
IF/IM EX/ALU
ID/REG MEM WB/REG
IF/IM EX/ALU
ID/REG MEM WB/REG
IF/IM EX/ALU
ID/REG MEM WB/REG
IF/IM EX/ALU
ID/REG MEM WB/REG
IF/IM EX/ALU
ID/REG MEM WB/REG
Sw $4, 0($10)
Sw $8, 8($10)
Sw $14, 16($10)
Sw $18, 24($10)
Addi $10, $10, 32
Bne $10, $30, LOOP
8 9 10 11 12 13 14 15 16 17 18
- Desdobramos o código em quatro vezes
- Consideramos que o circuito não tem forwarding
- Consideramos que os desvios são resolvidos no estágio MEM
- Consideramos que o circuito admite a instrução ADDI
- Mostramos o código desdobrado e escalonado
- Como o código escalonado se compara com o código não escalonado original em termos de
execução, isto é, em termos de speed up?
Código Original
14 ciclos de clock para iniciar e finalizar as
10 instruções! Precisaremos de 5 bolhas.
São necessário 10 ciclos de clock de start.
Código Desdobrado e Escalonado
18 ciclos de clock para iniciar e finalizar as 14
instruções! Não precisaremos de bolhas. São
necessários 14 ciclos de clock de start.

Mais conteúdo relacionado

Mais procurados

Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidosGleydson Sousa
 
Tratamento de exceções java
Tratamento de exceções   javaTratamento de exceções   java
Tratamento de exceções javaAntonio Oliveira
 
Método de Newton-Raphson - @professorenan
Método de Newton-Raphson - @professorenanMétodo de Newton-Raphson - @professorenan
Método de Newton-Raphson - @professorenanRenan Gustavo
 
Química Geral 2016/1 Aula 20
Química Geral 2016/1 Aula 20Química Geral 2016/1 Aula 20
Química Geral 2016/1 Aula 20Ednilsom Orestes
 
PBD Select e restrições para Select
PBD Select e restrições para SelectPBD Select e restrições para Select
PBD Select e restrições para SelectElaine Cecília Gatto
 
Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosjulianaveregue
 
Reações Ácido-Base para Separação de Compostos Orgânicos
Reações Ácido-Base para Separação de Compostos OrgânicosReações Ácido-Base para Separação de Compostos Orgânicos
Reações Ácido-Base para Separação de Compostos OrgânicosLuís Rita
 
Análise de Algoritmos - Solução de Recorrências
Análise de Algoritmos - Solução de RecorrênciasAnálise de Algoritmos - Solução de Recorrências
Análise de Algoritmos - Solução de RecorrênciasDelacyr Ferreira
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosMario Jorge Pereira
 

Mais procurados (20)

Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
Tratamento de exceções java
Tratamento de exceções   javaTratamento de exceções   java
Tratamento de exceções java
 
Método de Newton-Raphson - @professorenan
Método de Newton-Raphson - @professorenanMétodo de Newton-Raphson - @professorenan
Método de Newton-Raphson - @professorenan
 
Transistor bipolar de juncao (TBJ) 1
Transistor bipolar de juncao (TBJ)   1Transistor bipolar de juncao (TBJ)   1
Transistor bipolar de juncao (TBJ) 1
 
Algoritmos - Aula 13 A - Lacos em C
Algoritmos - Aula 13 A - Lacos em CAlgoritmos - Aula 13 A - Lacos em C
Algoritmos - Aula 13 A - Lacos em C
 
Linguagem C - Ponteiros
Linguagem C - PonteirosLinguagem C - Ponteiros
Linguagem C - Ponteiros
 
Química Geral 2016/1 Aula 20
Química Geral 2016/1 Aula 20Química Geral 2016/1 Aula 20
Química Geral 2016/1 Aula 20
 
PBD Select e restrições para Select
PBD Select e restrições para SelectPBD Select e restrições para Select
PBD Select e restrições para Select
 
Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dados
 
Consultas SQL
Consultas SQLConsultas SQL
Consultas SQL
 
Funções em C
Funções em CFunções em C
Funções em C
 
Reações Ácido-Base para Separação de Compostos Orgânicos
Reações Ácido-Base para Separação de Compostos OrgânicosReações Ácido-Base para Separação de Compostos Orgânicos
Reações Ácido-Base para Separação de Compostos Orgânicos
 
Aula 7 banco de dados
Aula 7   banco de dadosAula 7   banco de dados
Aula 7 banco de dados
 
Mapa Sistemico
Mapa SistemicoMapa Sistemico
Mapa Sistemico
 
Análise de Algoritmos - Solução de Recorrências
Análise de Algoritmos - Solução de RecorrênciasAnálise de Algoritmos - Solução de Recorrências
Análise de Algoritmos - Solução de Recorrências
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
Pilhas e Filas
Pilhas e FilasPilhas e Filas
Pilhas e Filas
 
Amplificador operacional
Amplificador operacionalAmplificador operacional
Amplificador operacional
 
Bjt modif
Bjt modifBjt modif
Bjt modif
 
Porta lógica com tabela verdade
Porta lógica com tabela verdadePorta lógica com tabela verdade
Porta lógica com tabela verdade
 

Semelhante a Pipeline desdobramento escalonamento

Conjunto de instruções mips - instruções de desvio
Conjunto de instruções mips - instruções de desvioConjunto de instruções mips - instruções de desvio
Conjunto de instruções mips - instruções de desvioElaine Cecília Gatto
 
Introdução ao php - Condicionais e Laços de repetição
Introdução ao php - Condicionais e Laços de repetiçãoIntrodução ao php - Condicionais e Laços de repetição
Introdução ao php - Condicionais e Laços de repetiçãogbpf
 
Curso de ShellScript - Lm07 shellscript7
Curso de ShellScript - Lm07 shellscript7Curso de ShellScript - Lm07 shellscript7
Curso de ShellScript - Lm07 shellscript7Pessoal
 

Semelhante a Pipeline desdobramento escalonamento (8)

Tema 2 | Linguagem PHP Básico (I)
Tema 2 | Linguagem PHP Básico (I)Tema 2 | Linguagem PHP Básico (I)
Tema 2 | Linguagem PHP Básico (I)
 
Conjunto de instruções mips - instruções de desvio
Conjunto de instruções mips - instruções de desvioConjunto de instruções mips - instruções de desvio
Conjunto de instruções mips - instruções de desvio
 
Introdução ao php - Condicionais e Laços de repetição
Introdução ao php - Condicionais e Laços de repetiçãoIntrodução ao php - Condicionais e Laços de repetição
Introdução ao php - Condicionais e Laços de repetição
 
assembly.pdf
assembly.pdfassembly.pdf
assembly.pdf
 
Basic step1
Basic step1Basic step1
Basic step1
 
Curso de ShellScript - Lm07 shellscript7
Curso de ShellScript - Lm07 shellscript7Curso de ShellScript - Lm07 shellscript7
Curso de ShellScript - Lm07 shellscript7
 
Rel3-81715-81731-81138
Rel3-81715-81731-81138Rel3-81715-81731-81138
Rel3-81715-81731-81138
 
Clp ab avancado
Clp ab avancadoClp ab avancado
Clp ab avancado
 

Mais de Elaine Cecília Gatto

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaElaine Cecília Gatto
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaElaine Cecília Gatto
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Elaine Cecília Gatto
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCElaine Cecília Gatto
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxElaine Cecília Gatto
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Elaine Cecília Gatto
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarElaine Cecília Gatto
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesElaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationElaine Cecília Gatto
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfElaine Cecília Gatto
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Elaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsElaine Cecília Gatto
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoElaine Cecília Gatto
 
Exploring label correlations for partitioning the label space in multi label ...
Exploring label correlations for partitioning the label space in multi label ...Exploring label correlations for partitioning the label space in multi label ...
Exploring label correlations for partitioning the label space in multi label ...Elaine Cecília Gatto
 

Mais de Elaine Cecília Gatto (20)

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etaria
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à Medicina
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPC
 
entrevista r7.pdf
entrevista r7.pdfentrevista r7.pdf
entrevista r7.pdf
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptx
 
Empoderamento Feminino
Empoderamento FemininoEmpoderamento Feminino
Empoderamento Feminino
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCar
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de Correlações
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label Classification
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
 
Curtinhas de sábado.pdf
Curtinhas de sábado.pdfCurtinhas de sábado.pdf
Curtinhas de sábado.pdf
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Cheat sheet Mips 32 bits
Cheat sheet Mips 32 bitsCheat sheet Mips 32 bits
Cheat sheet Mips 32 bits
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcação
 
Exploring label correlations for partitioning the label space in multi label ...
Exploring label correlations for partitioning the label space in multi label ...Exploring label correlations for partitioning the label space in multi label ...
Exploring label correlations for partitioning the label space in multi label ...
 

Último

Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...
Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...
Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...LuizHenriquedeAlmeid6
 
Exercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdfExercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdfRILTONNOGUEIRADOSSAN
 
manual-de-direito-civil-flacc81vio-tartuce-2015-11.pdf
manual-de-direito-civil-flacc81vio-tartuce-2015-11.pdfmanual-de-direito-civil-flacc81vio-tartuce-2015-11.pdf
manual-de-direito-civil-flacc81vio-tartuce-2015-11.pdfLeandroTelesRocha2
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfLeandroTelesRocha2
 
hereditariedade é variabilidade genetic
hereditariedade é variabilidade  genetichereditariedade é variabilidade  genetic
hereditariedade é variabilidade geneticMrMartnoficial
 
Poema - Reciclar é preciso
Poema            -        Reciclar é precisoPoema            -        Reciclar é preciso
Poema - Reciclar é precisoMary Alvarenga
 
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdfedjailmax
 
ATPCG 27.05 - Recomposição de aprendizagem.pptx
ATPCG 27.05 - Recomposição de aprendizagem.pptxATPCG 27.05 - Recomposição de aprendizagem.pptx
ATPCG 27.05 - Recomposição de aprendizagem.pptxmairaviani
 
04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf
04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf
04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdfARIANAMENDES11
 
Desastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadessDesastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadessRodrigoGonzlez461291
 
22-modernismo-5-prosa-de-45.pptxrpnsaaaa
22-modernismo-5-prosa-de-45.pptxrpnsaaaa22-modernismo-5-prosa-de-45.pptxrpnsaaaa
22-modernismo-5-prosa-de-45.pptxrpnsaaaaCarolineFrancielle
 
Atividade português 7 ano página 38 a 40
Atividade português 7 ano página 38 a 40Atividade português 7 ano página 38 a 40
Atividade português 7 ano página 38 a 40vitoriaalyce2011
 
Administração (Conceitos e Teorias sobre a Administração)
Administração (Conceitos e Teorias sobre a Administração)Administração (Conceitos e Teorias sobre a Administração)
Administração (Conceitos e Teorias sobre a Administração)zarinha
 
Eurodeputados Portugueses 2019-2024 (nova atualização)
Eurodeputados Portugueses 2019-2024 (nova atualização)Eurodeputados Portugueses 2019-2024 (nova atualização)
Eurodeputados Portugueses 2019-2024 (nova atualização)Centro Jacques Delors
 
Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptx
Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptxSlides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptx
Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Evangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdfEvangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdfPastor Robson Colaço
 
Instrucoes_A_M_Pranchas_01_a_33_Encadern (4).pdf
Instrucoes_A_M_Pranchas_01_a_33_Encadern (4).pdfInstrucoes_A_M_Pranchas_01_a_33_Encadern (4).pdf
Instrucoes_A_M_Pranchas_01_a_33_Encadern (4).pdfssuserbb4ac2
 
Junho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na IgrejaJunho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na IgrejaComando Resgatai
 
Recurso da Casa das Ciências: Bateria/Acumulador
Recurso da Casa das Ciências: Bateria/AcumuladorRecurso da Casa das Ciências: Bateria/Acumulador
Recurso da Casa das Ciências: Bateria/AcumuladorCasa Ciências
 
AULA Saúde e tradição-3º Bimestre tscqv.pptx
AULA Saúde e tradição-3º Bimestre tscqv.pptxAULA Saúde e tradição-3º Bimestre tscqv.pptx
AULA Saúde e tradição-3º Bimestre tscqv.pptxGraycyelleCavalcanti
 

Último (20)

Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...
Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...
Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...
 
Exercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdfExercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdf
 
manual-de-direito-civil-flacc81vio-tartuce-2015-11.pdf
manual-de-direito-civil-flacc81vio-tartuce-2015-11.pdfmanual-de-direito-civil-flacc81vio-tartuce-2015-11.pdf
manual-de-direito-civil-flacc81vio-tartuce-2015-11.pdf
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
 
hereditariedade é variabilidade genetic
hereditariedade é variabilidade  genetichereditariedade é variabilidade  genetic
hereditariedade é variabilidade genetic
 
Poema - Reciclar é preciso
Poema            -        Reciclar é precisoPoema            -        Reciclar é preciso
Poema - Reciclar é preciso
 
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
 
ATPCG 27.05 - Recomposição de aprendizagem.pptx
ATPCG 27.05 - Recomposição de aprendizagem.pptxATPCG 27.05 - Recomposição de aprendizagem.pptx
ATPCG 27.05 - Recomposição de aprendizagem.pptx
 
04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf
04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf
04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf
 
Desastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadessDesastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadess
 
22-modernismo-5-prosa-de-45.pptxrpnsaaaa
22-modernismo-5-prosa-de-45.pptxrpnsaaaa22-modernismo-5-prosa-de-45.pptxrpnsaaaa
22-modernismo-5-prosa-de-45.pptxrpnsaaaa
 
Atividade português 7 ano página 38 a 40
Atividade português 7 ano página 38 a 40Atividade português 7 ano página 38 a 40
Atividade português 7 ano página 38 a 40
 
Administração (Conceitos e Teorias sobre a Administração)
Administração (Conceitos e Teorias sobre a Administração)Administração (Conceitos e Teorias sobre a Administração)
Administração (Conceitos e Teorias sobre a Administração)
 
Eurodeputados Portugueses 2019-2024 (nova atualização)
Eurodeputados Portugueses 2019-2024 (nova atualização)Eurodeputados Portugueses 2019-2024 (nova atualização)
Eurodeputados Portugueses 2019-2024 (nova atualização)
 
Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptx
Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptxSlides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptx
Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptx
 
Evangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdfEvangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdf
 
Instrucoes_A_M_Pranchas_01_a_33_Encadern (4).pdf
Instrucoes_A_M_Pranchas_01_a_33_Encadern (4).pdfInstrucoes_A_M_Pranchas_01_a_33_Encadern (4).pdf
Instrucoes_A_M_Pranchas_01_a_33_Encadern (4).pdf
 
Junho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na IgrejaJunho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na Igreja
 
Recurso da Casa das Ciências: Bateria/Acumulador
Recurso da Casa das Ciências: Bateria/AcumuladorRecurso da Casa das Ciências: Bateria/Acumulador
Recurso da Casa das Ciências: Bateria/Acumulador
 
AULA Saúde e tradição-3º Bimestre tscqv.pptx
AULA Saúde e tradição-3º Bimestre tscqv.pptxAULA Saúde e tradição-3º Bimestre tscqv.pptx
AULA Saúde e tradição-3º Bimestre tscqv.pptx
 

Pipeline desdobramento escalonamento

  • 1. DESDOBRAMENTO E ESCALONAMENTO DE LOOP – PIPELINE MIPS 32 BITS ELAINE CECÍLIA GATTO
  • 2. Usando o código a seguir: - Desdobre o código quatro vezes e escalone-o para execução rápida no pipeline padrão do MIPS sem mecanismo de forwarding. - Considere que ele admite a instrução ADDI. Você pode considerar que o LOOP é executado para um múltiplo de quatro vezes. Suponha inicialmente que$10 = 0 e $30 = 400. Suponha também que os desvios são resolvidos no estágio MEM. - Como o código escalonado se compara com o código não escalonado original em termos de execução—isto é, em termos de speed up? Mostre o código desdobrado e depois escalonado. LOOP: Lw $2, 0($10) Sub $4, $2, $3 Sw $4, 0($10) Addi $10, $10, 4 Bne $10, $30, LOOP
  • 3. lw $2, 0($10) IF/IM ID/REG EX/ALU MEM WB/REG cc1 ANALISANDO O CÓDIGO MIPS PARA IDENTIFICAR OS CONFLITOS/HAZARDS/DEPENDENCIAS CICLO 1: - A instrução LW entra no pipeline O conteúdo deste material está no livro ARQUITETURA DE COMPUTADORES UMA ABORDAGEM QUANTITATIVA. Vai da página 135 a 140.
  • 4. ANALISANDO O CÓDIGO MIPS PARA IDENTIFICAR OS CONFLITOS/HAZARDS/DEPENDENCIAS CICLO 2: - A instrução LW está sendo codificada - A instrução sub entra no pipeline lw $2, 0($10) IF/IM EX/ALU MEM WB/REG cc2 sub $4, 42, $3 ID/REG
  • 5. ANALISANDO O CÓDIGO MIPS PARA IDENTIFICAR OS CONFLITOS/HAZARDS/DEPENDENCIAS CICLO 3: - A instrução LW está calculando o endereço de memória de onde deve pegar o operando - A instrução SUB está sendo codificada - A instrução SW entra no pipeline lw $2, 0($10) IF/IM EX/ALU MEM WB/REG cc3 sub $4, 42, $3 ID/REG sw $4, 0($10)
  • 6. ANALISANDO O CÓDIGO MIPS PARA IDENTIFICAR OS CONFLITOS/HAZARDS/DEPENDENCIAS CICLO 4: - A instrução LW está buscando o valor do endereço de memória calculado - A instrução SUB está sendo calculada: $4 = $2 - $3 - A instrução SW está sendo codificada - A instrução ADDI entra no pipeline. Neste ciclo temos um conflito entre as instruções LW e SUB. O valor do operando $2 que SUB precisa ainda não está disponível! lw $2, 0($10) IF/IM EX/ALU MEM WB/REG cc4 sub $4, 42, $3 ID/REG sw $4, 0($10) addi $10, $10, 4
  • 7. ANALISANDO O CÓDIGO MIPS PARA IDENTIFICAR OS CONFLITOS/HAZARDS/DEPENDENCIAS CICLO 5: - A instrução LW escreve no registrador $2 e sai do pipeline - A instrução SUB não faz nada no estágio MEM neste ciclo - A instrução SW está calculando o endereço de memória - A instrução ADDI está sendo codificada - A instrução BNE entra no pipeline lw $2, 0($10) IF/IM EX/ALU WB/REG cc5 sub $4, 42, $3 ID/REG sw $4, 0($10) addi $10, $10, 4 bne $10, $30, LOOP MEM
  • 8. ANALISANDO O CÓDIGO MIPS PARA IDENTIFICAR OS CONFLITOS/HAZARDS/DEPENDENCIAS CICLO 6: - A instrução SUB escreve no registrador $4 e sai do pipeline - A instrução SW escreve o valor que está no registrador $4 no endereço de memória calculado - A instrução ADDI calcula $10 = $10 + 4 - A instrução BNE está sendo codificada Aqui temos um problema com as instruções SUB e SW. Qual valor correto que será escrito por SW sendo que SUB ainda não terminou a escrita? IF/IM EX/ALU WB/REG cc6 sub $4, 42, $3 ID/REG sw $4, 0($10) addi $10, $10, 4 bne $10, $30, LOOP MEM
  • 9. ANALISANDO O CÓDIGO MIPS PARA IDENTIFICAR OS CONFLITOS/HAZARDS/DEPENDENCIAS CICLO 7: - A instrução SW não faz nada no estágio WB e sai do pipeline - A instrução ADDI não faz nada no estágio MEM - A instrução BNE está comparando o valores dos registradores: $10 != $30 ? Aqui temos um problema com as instruções ADDI e BNE. O valor do registrador $10 ainda não foi escrito, então BNE não pode compará-lo! IF/IM EX/ALU cc7 ID/REG sw $4, 0($10) addi $10, $10, 4 bne $10, $30, LOOP WB/REG MEM
  • 10. ANALISANDO O CÓDIGO MIPS PARA IDENTIFICAR OS CONFLITOS/HAZARDS/DEPENDENCIAS CICLO 8: - A instrução ADDI escreve no registrador $10 e sai do pipeline - A instrução BNE, no estágio MEM, realiza o desvio Como temos o problema no ciclo anterior, ele persistirá aqui! IF/IM EX/ALU cc8 ID/REG addi $10, $10, 4 bne $10, $30, LOOP WB/REG MEM
  • 11. ANALISANDO O CÓDIGO MIPS PARA IDENTIFICAR OS CONFLITOS/HAZARDS/DEPENDENCIAS CICLO 9: - A instrução BNE sai do pipeline IF/IM EX/ALU cc9 ID/REG bne $10, $30, LOOP WB/REG MEM Concluímos que o código tem conflitos que precisam ser resolvidos com forwarding e bolhas. No entanto, o exercício diz que o pipeline não possui o mecanismo de forwarding. Os conflitos estão marcados no código a seguir: LOOP: Lw $2, 0($10) Sub $4, $2, $3 Sw $4, 0($10) Addi $10, $10, 4 Bne $10, $30, LOOP
  • 12. COM MECANISMO DE FORWARDING O PIPELINE DESTE CÓDIGO FICA DA SEGUINTE FORMA: IF/IM EX/ALU ID/REG MEM WB/REG IF/IM EX/ALU ID/REG WB/REG MEM IF/IM EX/ALU ID/REG MEM WB/REG EX/ALU IF/IM ID/REG MEM WB/REG IF/IM EX/ALU ID/REG MEM WB/REG Lw $2, 0($10) Sub $4, $2, 43 Sw $4, 0($10) Addi $10, $10, 4 Bne $10, $10, LOOP 12 ciclos de clock para iniciar e finalizar as 8 instruções e precisaremos de 3 bolhas. 8 ciclos de START de instruções 1 2 3 4 5 6 7 8 9 10 11 12
  • 13. SEM MECANISMO DE FORWARDING O PIPELINE DESTE CÓDIGO FICA DA SEGUINTE FORMA: IF/IM EX/ALU ID/REG MEM WB/REG Lw $2, 0($10) IF/IM EX/ALU ID/REG MEM WB/REG IF/IM EX/ALU ID/REG MEM WB/REG IF/IM EX/ALU ID/REG MEM WB/REG IF/IM EX/ALU ID/REG MEM WB/REG Sub $4, $2, $3 Sw $4, 0($10) Addi $10, $10, 4 Bne $10, $10, LOOP 14 ciclos de clock para iniciar e finalizar as 10 instruções! Precisaremos de 5 bolhas. São 10 ciclos de start. 1 2 3 4 5 6 7 8 9 10 11 12 13 14
  • 14. COM MECANISMO DE FORWARDING, E SEM QUALQUER ESCALONAMENTO, O CÓDIGO FICA DA SEGUINTE FORMA: LOOP: 1. LW $2, 9($10) 2. BOLHA 3. SUB $4, $2, $3 4. BOLHA 5. SW $4, 0($10) 6. ADDI $10, $10, 4 7. BOLHA 8. BNE $10, $30, LOOP SEM MECANISMO DE FORWARDING, E SEM QUALQUER ESCALONAMENTO, O CÓDIGO FICA DA SEGUINTE FORMA: LOOP: 1. LW $2, 9($10) 2. BOLHA 3. BOLHA 4. SUB $4, $2, $3 5. BOLHA 6. SW $4, 0($10) 7. ADDI $10, $10, 4 8. BOLHA 9. BOLHA 10. BNE $10, $30, LOOP Estes códigos são apenas reflexo dos diagramas dos slides anteriores ESCALONAMENTO: - Técnica usada para manter o pipeline cheio; - Encontra sequências de instruções não relacionadas que podem ser sobrepostas; - Evita bolhas: - Uma instrução dependente precisa ser separada da instrução de origem por uma distância em ciclos de clock igual à latência do pipeline dessa instrução de origem
  • 15. COM MECANISMO DE FORWARDING, E COM ESCALONAMENTO, O CÓDIGO FICA DA SEGUINTE FORMA: LOOP: 1. LW $2, 0($10) 2. ADDI $10, $10, 4 3. SUB $4, $2, $3 4. BOLHA 5. SW $4, 8($10) 6. BNE $10, $30, LOOP SEM MECANISMO DE FORWARDING, E COM ESCALONAMENTO, O CÓDIGO FICA DA SEGUINTE FORMA: LOOP: 1. LW $2, 0($10) 2. ADDI $10, $10, 4 3. BOLHA 4. SUB $4, $2, $3 5. BOLHA 6. BOLHA 7. SW $4, 8($10) 8. BNE $10, $30, LOOP Vamos ver como fica o diagrama pra esses dois códigos! O 8 na instrução SW em ambos os códigos, é por conta que pulamos 2 instruções: 0 + 4 + 4. A bolha não conta! Para escalonar precisamos prestar atenção nestes detalhes!
  • 16. COM MECANISMO DE FORWARDING E COM ESCALONAMENTO IF/IM EX/ALU ID/REG MEM WB/REG IF/IM EX/ALU ID/REG WB/REG MEM IF/IM EX/ALU ID/REG MEM WB/REG EX/ALU IF/IM ID/REG MEM WB/REG IF/IM EX/ALU ID/REG MEM WB/REG Lw $2, 0($10) Sub $4, $2, 43 Sw $4, 8($10) Addi $10, $10, 4 Bne $10, $10, LOOP 10 ciclos de clock para iniciar e finalizar as 6 instruções e precisaremos de 1 bolha. 6 ciclos de START de instruções 1 2 3 4 5 6 7 8 9 10
  • 17. SEM MECANISMO DE FORWARDING E COM ESCALONAMENTO IF/IM EX/ALU ID/REG MEM WB/REG IF/IM EX/ALU ID/REG WB/REG MEM IF/IM EX/ALU ID/REG MEM WB/REG EX/ALU IF/IM ID/REG MEM WB/REG IF/IM EX/ALU ID/REG MEM WB/REG Lw $2, 0($10) Sub $4, $2, 43 Sw $4, 8($10) Addi $10, $10, 4 Bne $10, $10, LOOP 12 ciclos de clock para iniciar e finalizar as 8 instruções e precisaremos de 3 bolhas. 8 ciclos de START de instruções 1 2 3 4 5 6 7 8 9 10 11 12
  • 18. DESDOBRANDO O LOOP EM 4 CÓPIAS 1. Lw $2, 0($10) 2. Sub $4, $2, $3 3. Sw $4, 0($10) 4. Lw $6, 8($10) 5. Sub $8, $6, $3 6. Sw $8, 8($10) 7. Lw $12, 16($10) 8. Sub $14, $12, $3 9. Sw $14, 16($10) 10. Lw $16, 24($10) 11. Sub $18, $16, $3 12. Sw $18, 24($10) 13. Addi $10, $10, 32 14. Bne $10, $30, LOOP LOOP: Para desdobrar o código você precisa fazer uma cópia do CORPO do LOOP renomeando os registradores e modificando o índice que acompanha o endereço base da instrução de load/store. As instruções referentes ao incremento do LOOP e à decisão do DESVIO não entram na cópia! O código à esquerda já é o código desdobrado. Cada parte replicada está com uma cor diferente para destacar as mudanças. Agora temos 14 instruções que vão encher o pipeline e com isso as bolhas não serão mais necessárias. Ainda assim, do jeito que está aqui teremos bolhas. Vamos reordenar para evitar isto!
  • 19. DESDOBRANDO O LOOP EM 4 CÓPIAS 1. Lw $2, 0($10) 2. Lw $6, 8($10) 3. Lw $12, 16($10) 4. Lw $16, 24($10) 5. Sub $4, $2, $3 6. Sub $8, $6, $3 7. Sub $14, $12, $3 8. Sub $18, $16, $3 9. Sw $4, 0($10) 10. Sw $8, 8($10) 11. Sw $14, 16($10) 12. Sw $18, 24($10) 13. Addi $10, $10, 4 14. Bne $10, $30, LOOP LOOP: Depois de desdobrar o código, reordene de forma que todas as instruções de LOAD estejam no inicio e todas as instruções de STORE no final. DESDOBRAMENTO: - É uma técnica para aumentar o número de instruções relativas às instruções de desvio - Replica o corpo do LOOP várias vezes e ajusta o final - Remove as instruções de desvio do meio do caminho - Permite que instruções de diferentes iterações sejam escalonadas juntas - Necessário renomear os registradores - Considerar apenas o corpo do LOOP para a replicação - Evita bolhas
  • 20. DIAGRAMA CÓDIGO DESDOBRADO E ESCALONADO IF/IM EX/ALU ID/REG MEM WB/REG LW $2, 0($10) IF/IM EX/ALU ID/REG MEM WB/REG LW $6, 8($10) IF/IM EX/ALU ID/REG MEM WB/REG LW $12, 16($10) IF/IM EX/ALU ID/REG MEM WB/REG LW $16, 24($10) IF/IM EX/ALU ID/REG MEM WB/REG IF/IM EX/ALU ID/REG MEM WB/REG IF/IM EX/ALU ID/REG MEM WB/REG SUB $4, $2, $3 SUB $8, $6, $3 SUB $14, $12, $3 Note que escreve em $2 no ciclo 5 e usa $2 no ciclo 7. Não há conflitos! O mesmo pode ser observado nas outras instruções 1 2 3 4 5 6 7 8 9 10 11
  • 21. DIAGRAMA CÓDIGO DESDOBRADO E ESCALONADO IF/IM EX/ALU ID/REG MEM WB/REG IF/IM EX/ALU ID/REG MEM WB/REG SUB $18, 416, $3 IF/IM EX/ALU ID/REG MEM WB/REG IF/IM EX/ALU ID/REG MEM WB/REG IF/IM EX/ALU ID/REG MEM WB/REG IF/IM EX/ALU ID/REG MEM WB/REG IF/IM EX/ALU ID/REG MEM WB/REG Sw $4, 0($10) Sw $8, 8($10) Sw $14, 16($10) Sw $18, 24($10) Addi $10, $10, 32 Bne $10, $30, LOOP 8 9 10 11 12 13 14 15 16 17 18
  • 22. - Desdobramos o código em quatro vezes - Consideramos que o circuito não tem forwarding - Consideramos que os desvios são resolvidos no estágio MEM - Consideramos que o circuito admite a instrução ADDI - Mostramos o código desdobrado e escalonado - Como o código escalonado se compara com o código não escalonado original em termos de execução, isto é, em termos de speed up? Código Original 14 ciclos de clock para iniciar e finalizar as 10 instruções! Precisaremos de 5 bolhas. São necessário 10 ciclos de clock de start. Código Desdobrado e Escalonado 18 ciclos de clock para iniciar e finalizar as 14 instruções! Não precisaremos de bolhas. São necessários 14 ciclos de clock de start.