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

Uml - Exemplos de Modelagem em UML
Uml - Exemplos de Modelagem em UMLUml - Exemplos de Modelagem em UML
Uml - Exemplos de Modelagem em UML
André Constantino da Silva
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
Helder da Rocha
 
Conceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareConceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de software
Ronney Moreira de Castro
 
Visual g apostila de algoritmo
Visual g   apostila de algoritmoVisual g   apostila de algoritmo
Visual g apostila de algoritmo
Emerson Tranquilino
 
Ingles Instrumental Apostila Para Estudo
Ingles Instrumental Apostila Para EstudoIngles Instrumental Apostila Para Estudo
Ingles Instrumental Apostila Para Estudo
Ana
 
Logica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 SubalgoritmosLogica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 Subalgoritmos
Regis Magalhães
 
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
Mario Jorge Pereira
 
Sistema de Numeração Egípcio
Sistema de Numeração EgípcioSistema de Numeração Egípcio
Sistema de Numeração Egípcio
Vera Sezões
 
Doc estatistica _1198613339
Doc estatistica _1198613339Doc estatistica _1198613339
Doc estatistica _1198613339
Luana Lima Freitas
 
Aula 6 probabilidade condicional
Aula 6   probabilidade condicionalAula 6   probabilidade condicional
Aula 6 probabilidade condicional
Ariel Rennó Chaves
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
Evonaldo Gonçalves Vanny
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
Mario Sergio
 
Exercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetores
Willians Miyabara
 
Cálculo Numérico - Aula01: Introdução aos métodos numéricos
Cálculo Numérico - Aula01: Introdução aos métodos numéricosCálculo Numérico - Aula01: Introdução aos métodos numéricos
Cálculo Numérico - Aula01: Introdução aos métodos numéricos
Rodolfo Almeida
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
Gabriel Faustino
 
História do windows
História do windowsHistória do windows
História do windows
Antonio Cabral
 
Programação Estruturada em Python - Introducao
Programação Estruturada em Python - IntroducaoProgramação Estruturada em Python - Introducao
Programação Estruturada em Python - Introducao
Eduardo S. Pereira
 
Variáveis e portugol
Variáveis e portugolVariáveis e portugol
Variáveis e portugol
Carlos Wagner Costa
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
Jorge Ávila Miranda
 

Mais procurados (20)

Uml - Exemplos de Modelagem em UML
Uml - Exemplos de Modelagem em UMLUml - Exemplos de Modelagem em UML
Uml - Exemplos de Modelagem em UML
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Conceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareConceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de software
 
Visual g apostila de algoritmo
Visual g   apostila de algoritmoVisual g   apostila de algoritmo
Visual g apostila de algoritmo
 
Ingles Instrumental Apostila Para Estudo
Ingles Instrumental Apostila Para EstudoIngles Instrumental Apostila Para Estudo
Ingles Instrumental Apostila Para Estudo
 
Exercicio Corel Draw
Exercicio Corel DrawExercicio Corel Draw
Exercicio Corel Draw
 
Logica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 SubalgoritmosLogica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 Subalgoritmos
 
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
 
Sistema de Numeração Egípcio
Sistema de Numeração EgípcioSistema de Numeração Egípcio
Sistema de Numeração Egípcio
 
Doc estatistica _1198613339
Doc estatistica _1198613339Doc estatistica _1198613339
Doc estatistica _1198613339
 
Aula 6 probabilidade condicional
Aula 6   probabilidade condicionalAula 6   probabilidade condicional
Aula 6 probabilidade condicional
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
 
Exercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetores
 
Cálculo Numérico - Aula01: Introdução aos métodos numéricos
Cálculo Numérico - Aula01: Introdução aos métodos numéricosCálculo Numérico - Aula01: Introdução aos métodos numéricos
Cálculo Numérico - Aula01: Introdução aos métodos numéricos
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
 
História do windows
História do windowsHistória do windows
História do windows
 
Programação Estruturada em Python - Introducao
Programação Estruturada em Python - IntroducaoProgramação Estruturada em Python - Introducao
Programação Estruturada em Python - Introducao
 
Variáveis e portugol
Variáveis e portugolVariáveis e portugol
Variáveis e portugol
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
 

Semelhante a Pipeline desdobramento escalonamento

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)
Henry Raúl González Brito
 
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
Elaine 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ção
gbpf
 
assembly.pdf
assembly.pdfassembly.pdf
assembly.pdf
DanielDias661447
 
Basic step1
Basic step1Basic step1
Basic step1
Fernando Passold
 
Curso de ShellScript - Lm07 shellscript7
Curso de ShellScript - Lm07 shellscript7Curso de ShellScript - Lm07 shellscript7
Curso de ShellScript - Lm07 shellscript7
Pessoal
 
Rel3-81715-81731-81138
Rel3-81715-81731-81138Rel3-81715-81731-81138
Rel3-81715-81731-81138
André Ferreira
 
Clp ab avancado
Clp ab avancadoClp ab avancado
Clp ab avancado
Ricardo Akerman
 

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 etaria
Elaine Cecília Gatto
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à Medicina
Elaine 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 EPPC
Elaine Cecília Gatto
 
entrevista r7.pdf
entrevista r7.pdfentrevista r7.pdf
entrevista r7.pdf
Elaine 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.pptx
Elaine Cecília Gatto
 
Empoderamento Feminino
Empoderamento FemininoEmpoderamento Feminino
Empoderamento Feminino
Elaine 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 UFSCar
Elaine 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ções
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
 
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
Elaine 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.pdf
Elaine Cecília Gatto
 
Curtinhas de sábado.pdf
Curtinhas de sábado.pdfCurtinhas de sábado.pdf
Curtinhas de sábado.pdf
Elaine 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
 
Cheat sheet Mips 32 bits
Cheat sheet Mips 32 bitsCheat sheet Mips 32 bits
Cheat sheet Mips 32 bits
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 bits
Elaine 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ção
Elaine 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

Oceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsx
Oceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsxOceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsx
Oceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsx
Luzia Gabriele
 
Atividade Análise literária O GUARANI.pdf
Atividade Análise literária O GUARANI.pdfAtividade Análise literária O GUARANI.pdf
Atividade Análise literária O GUARANI.pdf
sesiomzezao
 
Temática – Projeto para Empreendedores Locais
Temática – Projeto para Empreendedores LocaisTemática – Projeto para Empreendedores Locais
Temática – Projeto para Empreendedores Locais
Colaborar Educacional
 
APA fonoaudiologia Pratica Trabalho Prontos.pptx
APA fonoaudiologia Pratica Trabalho Prontos.pptxAPA fonoaudiologia Pratica Trabalho Prontos.pptx
APA fonoaudiologia Pratica Trabalho Prontos.pptx
orquestrasinfonicaam
 
UFCD_5673_Segurança nos transportes_índice.pdf
UFCD_5673_Segurança nos transportes_índice.pdfUFCD_5673_Segurança nos transportes_índice.pdf
UFCD_5673_Segurança nos transportes_índice.pdf
Manuais Formação
 
Desafio matemático - multiplicação e divisão.
Desafio matemático -  multiplicação e divisão.Desafio matemático -  multiplicação e divisão.
Desafio matemático - multiplicação e divisão.
Mary Alvarenga
 
Slide para aplicação da AVAL. FLUÊNCIA.pptx
Slide para aplicação  da AVAL. FLUÊNCIA.pptxSlide para aplicação  da AVAL. FLUÊNCIA.pptx
Slide para aplicação da AVAL. FLUÊNCIA.pptx
LeilaVilasboas
 
Guia Genealógico da Principesca e Ducal Casa de Mesolcina, 2024
Guia Genealógico da Principesca e Ducal Casa de Mesolcina, 2024Guia Genealógico da Principesca e Ducal Casa de Mesolcina, 2024
Guia Genealógico da Principesca e Ducal Casa de Mesolcina, 2024
principeandregalli
 
A Atuação das Forças Armadas na Garantia da Lei e da Ordem (GLO).pdf
A Atuação das Forças Armadas na Garantia da Lei e da Ordem (GLO).pdfA Atuação das Forças Armadas na Garantia da Lei e da Ordem (GLO).pdf
A Atuação das Forças Armadas na Garantia da Lei e da Ordem (GLO).pdf
Falcão Brasil
 
Caderno_de_referencias_Ocupacaohumana_IV_FlaviaCoelho_compressed.pdf
Caderno_de_referencias_Ocupacaohumana_IV_FlaviaCoelho_compressed.pdfCaderno_de_referencias_Ocupacaohumana_IV_FlaviaCoelho_compressed.pdf
Caderno_de_referencias_Ocupacaohumana_IV_FlaviaCoelho_compressed.pdf
shirleisousa9166
 
Estudo Infantil - MISSÕES NACIONAIS - IGREJA BATISTA
Estudo Infantil - MISSÕES NACIONAIS - IGREJA BATISTAEstudo Infantil - MISSÕES NACIONAIS - IGREJA BATISTA
Estudo Infantil - MISSÕES NACIONAIS - IGREJA BATISTA
deboracorrea21
 
Aviação de Asas Rotativas. Aos Rotores, o Sabre!.pdf
Aviação de Asas Rotativas. Aos Rotores, o Sabre!.pdfAviação de Asas Rotativas. Aos Rotores, o Sabre!.pdf
Aviação de Asas Rotativas. Aos Rotores, o Sabre!.pdf
Falcão Brasil
 
Atividade Dias dos Pais - Meu Pai, Razão da Minha História.
Atividade Dias dos Pais -  Meu Pai, Razão da Minha História.Atividade Dias dos Pais -  Meu Pai, Razão da Minha História.
Atividade Dias dos Pais - Meu Pai, Razão da Minha História.
Mary Alvarenga
 
EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23
EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23
EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23
Sandra Pratas
 
O processo da farinhada no Assentamento lagoa de Dentro, Zona Rural de Várzea...
O processo da farinhada no Assentamento lagoa de Dentro, Zona Rural de Várzea...O processo da farinhada no Assentamento lagoa de Dentro, Zona Rural de Várzea...
O processo da farinhada no Assentamento lagoa de Dentro, Zona Rural de Várzea...
AntHropológicas Visual PPGA-UFPE
 
Conhecimento sobre Vestimenta Anti chamas
Conhecimento sobre Vestimenta Anti chamasConhecimento sobre Vestimenta Anti chamas
Conhecimento sobre Vestimenta Anti chamas
edusegtrab
 
EBOOK_HORA DO CONTO_O SONHO DO EVARISTO_CARLA MORAIS_22_23
EBOOK_HORA DO CONTO_O SONHO DO EVARISTO_CARLA MORAIS_22_23EBOOK_HORA DO CONTO_O SONHO DO EVARISTO_CARLA MORAIS_22_23
EBOOK_HORA DO CONTO_O SONHO DO EVARISTO_CARLA MORAIS_22_23
Sandra Pratas
 
A Industria Brasileira de Defesa - Situação Atual e Perspectivas de Evolução.pdf
A Industria Brasileira de Defesa - Situação Atual e Perspectivas de Evolução.pdfA Industria Brasileira de Defesa - Situação Atual e Perspectivas de Evolução.pdf
A Industria Brasileira de Defesa - Situação Atual e Perspectivas de Evolução.pdf
Falcão Brasil
 
Guerra de reconquista da Península ibérica
Guerra de reconquista da Península ibéricaGuerra de reconquista da Península ibérica
Guerra de reconquista da Península ibérica
felipescherner
 

Último (20)

Oceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsx
Oceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsxOceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsx
Oceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsx
 
Atividade Análise literária O GUARANI.pdf
Atividade Análise literária O GUARANI.pdfAtividade Análise literária O GUARANI.pdf
Atividade Análise literária O GUARANI.pdf
 
Temática – Projeto para Empreendedores Locais
Temática – Projeto para Empreendedores LocaisTemática – Projeto para Empreendedores Locais
Temática – Projeto para Empreendedores Locais
 
FOTOS_AS CIÊNCIAS EM AÇÃO .
FOTOS_AS CIÊNCIAS EM AÇÃO                .FOTOS_AS CIÊNCIAS EM AÇÃO                .
FOTOS_AS CIÊNCIAS EM AÇÃO .
 
APA fonoaudiologia Pratica Trabalho Prontos.pptx
APA fonoaudiologia Pratica Trabalho Prontos.pptxAPA fonoaudiologia Pratica Trabalho Prontos.pptx
APA fonoaudiologia Pratica Trabalho Prontos.pptx
 
UFCD_5673_Segurança nos transportes_índice.pdf
UFCD_5673_Segurança nos transportes_índice.pdfUFCD_5673_Segurança nos transportes_índice.pdf
UFCD_5673_Segurança nos transportes_índice.pdf
 
Desafio matemático - multiplicação e divisão.
Desafio matemático -  multiplicação e divisão.Desafio matemático -  multiplicação e divisão.
Desafio matemático - multiplicação e divisão.
 
Slide para aplicação da AVAL. FLUÊNCIA.pptx
Slide para aplicação  da AVAL. FLUÊNCIA.pptxSlide para aplicação  da AVAL. FLUÊNCIA.pptx
Slide para aplicação da AVAL. FLUÊNCIA.pptx
 
Guia Genealógico da Principesca e Ducal Casa de Mesolcina, 2024
Guia Genealógico da Principesca e Ducal Casa de Mesolcina, 2024Guia Genealógico da Principesca e Ducal Casa de Mesolcina, 2024
Guia Genealógico da Principesca e Ducal Casa de Mesolcina, 2024
 
A Atuação das Forças Armadas na Garantia da Lei e da Ordem (GLO).pdf
A Atuação das Forças Armadas na Garantia da Lei e da Ordem (GLO).pdfA Atuação das Forças Armadas na Garantia da Lei e da Ordem (GLO).pdf
A Atuação das Forças Armadas na Garantia da Lei e da Ordem (GLO).pdf
 
Caderno_de_referencias_Ocupacaohumana_IV_FlaviaCoelho_compressed.pdf
Caderno_de_referencias_Ocupacaohumana_IV_FlaviaCoelho_compressed.pdfCaderno_de_referencias_Ocupacaohumana_IV_FlaviaCoelho_compressed.pdf
Caderno_de_referencias_Ocupacaohumana_IV_FlaviaCoelho_compressed.pdf
 
Estudo Infantil - MISSÕES NACIONAIS - IGREJA BATISTA
Estudo Infantil - MISSÕES NACIONAIS - IGREJA BATISTAEstudo Infantil - MISSÕES NACIONAIS - IGREJA BATISTA
Estudo Infantil - MISSÕES NACIONAIS - IGREJA BATISTA
 
Aviação de Asas Rotativas. Aos Rotores, o Sabre!.pdf
Aviação de Asas Rotativas. Aos Rotores, o Sabre!.pdfAviação de Asas Rotativas. Aos Rotores, o Sabre!.pdf
Aviação de Asas Rotativas. Aos Rotores, o Sabre!.pdf
 
Atividade Dias dos Pais - Meu Pai, Razão da Minha História.
Atividade Dias dos Pais -  Meu Pai, Razão da Minha História.Atividade Dias dos Pais -  Meu Pai, Razão da Minha História.
Atividade Dias dos Pais - Meu Pai, Razão da Minha História.
 
EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23
EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23
EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23
 
O processo da farinhada no Assentamento lagoa de Dentro, Zona Rural de Várzea...
O processo da farinhada no Assentamento lagoa de Dentro, Zona Rural de Várzea...O processo da farinhada no Assentamento lagoa de Dentro, Zona Rural de Várzea...
O processo da farinhada no Assentamento lagoa de Dentro, Zona Rural de Várzea...
 
Conhecimento sobre Vestimenta Anti chamas
Conhecimento sobre Vestimenta Anti chamasConhecimento sobre Vestimenta Anti chamas
Conhecimento sobre Vestimenta Anti chamas
 
EBOOK_HORA DO CONTO_O SONHO DO EVARISTO_CARLA MORAIS_22_23
EBOOK_HORA DO CONTO_O SONHO DO EVARISTO_CARLA MORAIS_22_23EBOOK_HORA DO CONTO_O SONHO DO EVARISTO_CARLA MORAIS_22_23
EBOOK_HORA DO CONTO_O SONHO DO EVARISTO_CARLA MORAIS_22_23
 
A Industria Brasileira de Defesa - Situação Atual e Perspectivas de Evolução.pdf
A Industria Brasileira de Defesa - Situação Atual e Perspectivas de Evolução.pdfA Industria Brasileira de Defesa - Situação Atual e Perspectivas de Evolução.pdf
A Industria Brasileira de Defesa - Situação Atual e Perspectivas de Evolução.pdf
 
Guerra de reconquista da Península ibérica
Guerra de reconquista da Península ibéricaGuerra de reconquista da Península ibérica
Guerra de reconquista da Península ibérica
 

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.