aula 15: ciclo de execução e introdução ao...
Post on 27-May-2018
214 Views
Preview:
TRANSCRIPT
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Aula 15: Ciclo de Execução e Introdução ao Pipeline
Diego Passos
Universidade Federal Fluminense
Fundamentos de Arquiteturas de Computadores
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 1 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Revisão
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 2 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Na Última Aula. . .
Começamos a falar sobre as instruções de máquina.▶ Operações simples que o hardware é capaz de executar.
Programas executados por um computador são armazenados como sequências deinstruções na memória.
▶ Há um registrador especial chamado PC.▶ Ele armazena o endereço da próxima instrução a ser executada.▶ A cada nova instrução executada, PC é incrementado.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 3 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Na Última Aula. . . (II)
Discutimos tipos de instrução.▶ Instruções aritméticas.▶ Instruções lógicas.▶ Instruções de desvio condicional.▶ Instruções de desvio incondicional.▶ . . .
Vimos exemplos destes tipos de instrução na arquitetura MIPS.▶ add.▶ beq.▶ and.▶ . . .
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 4 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Na Última Aula. . . (III)
Também vimos que instruções têm formatos específicos.▶ Esquema de representação.▶ Define quais e como informações são guardadas na instrução.
Finalmente, discutimos os operandos de uma instrução.▶ “Parâmetros” da operação a ser executada.▶ Podem ser, por exemplo, imediatos (constantes numéricas) ou registradores.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 5 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Ciclo de Execução de uma Instrução
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 6 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Ciclo de Execução de uma Instrução
Um processador funciona em ciclos.▶ De tempos em tempos, ele executa a mesma sequência de passos.▶ Potencialmente, com entradas diferentes.▶ Manipulando as entradas, obtemos os resultados desejados.
Estes ciclos consistem na execução de instruções.▶ As entradas são os dados.▶ Mas também as instruções em si.
⋆ Mudando o programa, também mudamos a saída.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 7 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Composição (Básica) do Ciclo de Execução de uma Instrução
Vista na aula passada:
Buscar Instrução Interpretar Instrução Executar Instrução
Próxima instrução é buscada na memória.Instrução é interpretada.
▶ i.e., reconhecem-se o tipo, os operandos, etc.
Operação indicada é executada.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 8 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Ciclo de Execução: Mais Detalhadamente
Partes do ciclo mostrado no slide anterior são “complexas”.▶ Interpretar instrução.▶ Executar instrução.
Há vários detalhes que ocorrem dentro de cada uma.Usualmente, definimos o ciclo de execução de uma instrução de forma mais detalhada.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 9 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Ciclo de Execução: Mais Detalhadamente (II)
InícioDecodificar a Operação a
Ser RealizadaTérmino
Buscar Instrução na Memória
Buscar Operandos(Se Houver)
Executar a Operação
Armazenar Resultado
(Se Houver)
Há fases de Busca de Operandos e Armazenamento de Resultado.▶ No esquema anterior, faziam parte de Interpretar Instrução e Executar Instrução.
Nos próximos slides, discutiremos cada uma destas fases.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 10 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Buscar Instrução
Primeiro passo na execução da instrução:▶ Descobrir qual ela é.
Instruções são armazenadas na MP.Processador só consegue manipular informações em seus registradores.
▶ Logo, antes de mais nada, processador precisa trazer instrução da MP para algum registrador.▶ Não um registrador qualquer: o IR.
⋆ Instruction Register.
Em algumas arquiteturas, as instruções têm comprimento fixo.▶ e.g., MIPS, com instruções de 32 bits.
Em outras, comprimento pode ser variável.▶ e.g., x86, com instruções de até 15 bytes.▶ Neste caso, busca da instrução pode não ser tão simples.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 11 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Buscar Instrução (II)
A busca de uma instrução, portanto, é basicamente uma leitura da memória.Como o processador sabe o endereço a ser lido?
▶ Já discutido anteriormente.▶ Há um outro registrador especial que o armazena.▶ O Program Counter, ou PC.
⋆ Outros nomes: IC (Instruction Counter), IP (Instruction Pointer).
PC tem que ser constantemente atualizado.▶ Para apontar para a próxima instrução a ser executada.▶ Normalmente, instruções são executadas na ordem em que aparecem em memória.▶ Logo, após a leitura da instrução atual, PC já é incrementado.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 12 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Decodificar a Instrução
Objetivo geral: entender a instrução.▶ i.e., entender o que a sequência de bits representa.
Envolve uma série de sub-tarefas:▶ Qual é a operação a ser realizada?▶ Qual é o formato da instrução?▶ Onde estão os operandos?
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 13 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Decodificar a Instrução (II)
0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0
Opcode:
000000(2) = 0(10)
Significado:
Operação Lógica
ou
Aritmética
Operando 1:
10001(2)=17(10)
Significado:
Primeiro
Operando está
no Reg. 17
Operando 2:
10010(2)=18(10)
Significado:
Segundo
Operando está
no Reg. 18
Resultado:
01000(2)=8(10)
Significado:
Armazenar
Resultado
no Reg. 8
Campo não
Utilizado
Nesta
Instrução
(deve sempre
ser 0)
Função:
100000(2)=32(10)
Significado:
Operação de
Soma
0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 14 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Decodificar a Instrução (III)
Primeiro passo, normalmente, é reconhecer o opcode.▶ Dado o opcode, geralmente, o restante do formato da instrução é conhecido pelo processador.▶ i.e., processador sabe como tratar os demais bits da instrução.▶ Adicionalmente, opcode define o tipo de operação a ser realizada.
0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0
Opcode:
000000(2) = 0(10)
Significado:
Operação Lógica
ouAritmética
Formato: R
Operando 1:
Registrador
Operando 2:
Registrador
Resultado:
RegistradorDeslocamento Função
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 15 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Decodificar a Instrução (IV)
Uma vez reconhecido o formato da instrução, pode-se descobrir a localização dosoperandos.
▶ Podem estar já em registradores.▶ Podem ser constantes numéricas especificadas na própria instrução.▶ Podem ser endereços de memória.
O opcode da instrução determina a semântica dos bits dos operandos.▶ i.e., o que fazer com eles para encontrar os operandos.▶ e.g., usar como identificador de um registrador, somar com uma constante para obter um
endereço de memória.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 16 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Busca de Operandos
Note que nem toda instrução possui operandos.Exemplo: instrução nop no x86.
▶ No Operation.▶ Instrução que não faz “nada”.
⋆ Embora cause efeitos colaterais, como incrementar o PC.
Mas na enorme maioria dos casos, instruções possuirão ao menos um operando.▶ Sempre verdade no MIPS, por exemplo.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 17 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Busca de Operandos (II)
A busca de operandos consiste na tarefa de encontrar os valores sob os quais serárealizada a operação.Os respectivos bits são passados como entrada de componentes internos do processador.
▶ Como somadores, deslocadores, multiplexadores, . . .Um caso comum ocorre quando operando está na MP.
▶ Endereço é dado por alguma combinação de valores em registradores e constantes específicasna própria instrução.
▶ Processador requisita leitura à MP.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 18 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Busca de Operandos (III)
1 0 0 1
Registrador 0
0 0 1 1
Registrador 1
Seletor Mux
Somador
0 1
Outro
Dado
Note que mesmo para operandos emregistradores, há algo a se fazer nestaetapa.
▶ Bits do registrador especificado devemser “conectados” ao(s) componente(s)adequado(s).
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 19 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Busca de Operandos (IV)
1 0 0 1
Registrador 0
0 0 1 1
Registrador 1
Seletor Mux
Somador
0 1
Imediato
(Instrução)
Endereço do
Operando
na MP
Note ainda que certos casos de busca deoperandos requerem a execução de algumtipo de processamento.
▶ Comumente, somas.▶ Algumas vezes deslocamentos
(multiplicações por potências de 2).Exemplo: instrução load word no MIPS.
▶ Endereço: valor de registrador +imediato.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 20 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Execução da Operação
Uma vez que os bits dos operandos estejam “conectados” aos componentes corretos doprocessador, a instrução é executada.Esta execução geralmente consiste em algum tipo de operação lógica-aritmética.
▶ Somar dois números.▶ Calcular um xor bit a bit.▶ . . .
Em alguns casos particulares, a operação pode ser simplesmente não fazer nada com odado.
▶ e.g., deixar o dado passar.▶ Exemplo: operações de leitura ou escrita na memória.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 21 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Execução da Operação (II)
Esta fase também consiste em “configurar” alguns componentes da CPU.Determinados componentes precisam de informações adicionais.
▶ Linhas de controle.▶ Especificam como o componente deve agir sobre os dados.
Exemplos clássicos:▶ Um multiplexador: sinal na linha de controle seleciona entre primeira e segunda entrada.▶ Unidade lógica-aritmética: sinal nas linhas de controle selecionam operação lógica aritmética
a ser realizada.Os sinais destas linhas de controle são geralmente determinados a partir de campos dainstrução.
▶ Como opcode e função, no caso do MIPS.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 22 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Armazenamento dos Resultados
Etapa similar à de busca de operandos.▶ Mas no sentido inverso.▶ i.e., ao invés de ler valores, estes são armazenados em local apropriado.
Este “local” pode ser um registrador ou algum endereço da MP.▶ Assim como ocorre na busca de operandos, opcode e formato da instrução determinam o
local.Também de forma similar, pode ser necessário realizar “processamento” para determinarexatamente este local.
▶ i.e., algum tipo de conta.▶ Exemplo clássico: instruções de transferência para a MP do MIPS.
⋆ Soma de registrador com imediato.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 23 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Armazenamento dos Resultados
Note ainda que certas instruções não geram dados a serem armazenados.▶ Ao menos não na MP ou em registradores de propósito geral.
▶ e.g., instruções de desvio.▶ Única (possível) escrita é no PC.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 24 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introdução ao Conceito de Pipeline
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 25 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Ciclos de CPU vs. Instruções
Processadores operam em ciclos.Duração de um ciclo do processador é determinada pela frequência do seu clock.
▶ Clock de 1 GHz rightarrow 1 bilhão de ciclos por segundo.Pergunta: quantas instruções um processador operando a 1 GHz de clock executapor segundo?
▶ Resposta: depende!▶ Pode ser exatamente 1 bilhão.▶ Pode ser menos.▶ Pode ser mais.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 26 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Ciclos de CPU vs. Instruções
Processadores operam em ciclos.Duração de um ciclo do processador é determinada pela frequência do seu clock.
▶ Clock de 1 GHz rightarrow 1 bilhão de ciclos por segundo.Pergunta: quantas instruções um processador operando a 1 GHz de clock executapor segundo?
▶ Resposta: depende!▶ Pode ser exatamente 1 bilhão.▶ Pode ser menos.▶ Pode ser mais.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 26 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Ciclos de CPU vs. Instruções
Por que depende?▶ É possível projetar um processador que execute exatamente uma instrução a cada ciclo.
⋆ O que veremos nas próximas aulas.▶ Mas há vantagens em quebrar a execução de uma instrução em vários ciclos de clock.
⋆ Reutilização de componentes.⋆ Permitir que instruções mais simples levem menos tempo.⋆ Permitir paralelismo.
Voltaremos a este ponto em aulas posteriores.▶ Mas por hora, o foco será no último ponto.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 27 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Pipeline: Uma Analogia
Vamos usar uma analogia1para entender o conceito de Pipeline (Patterson):▶ Suponha uma república de estudantes com 4 pessoas: Ann, Brian, Cathy, Dave.▶ Toda segunda-feira à noite, eles lavam roupa.▶ Cada um possui um conjunto de roupas sujas.
⋆ Aproximadamente a mesma quantidade de roupas.▶ Processo composto por 4 etapas:
⋆ Máquina de lavar: 30 minutos.
⋆ Secador/passar roupas: 30 minutos.
⋆ Dobrar roupas: 30 minutos.
⋆ Guardar roupas: 30 minutos.
1Adaptado de http://www.cs.berkeley.edu/˜pattrsn/61CS99/lectures/lec25-pipeline.pdfDiego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 28 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Pipeline: Uma Analogia (II)
Solução sequencial:▶ Cada pessoa aguarda a conclusão da anterior.
30
B
C
D
ATime
3030 3030 30 3030 3030 3030 3030 3030
6 PM 7 8 9 10 11 12 1 2 AM
Ordem
das
Tarefas
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 29 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Pipeline: Uma Analogia (III)
Solução alternativa:▶ A medida que uma pessoa termina uma fase, a seguinte inicia aquela fase do seu conjunto de
roupas.
12 2 AM6 PM 7 8 9 10 11 1
Time
B
C
D
A
303030 3030 30 30
Ordem
das
Tarefas
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 30 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Pipeline: Uma Analogia (IV)
Na solução original, cada pessoa demora 4 × 30 = 120 minutos para lavar sua roupa.Na solução alternativa também.Mas o tempo total na solução alternativa é muito menor:
▶ 210 minutos, contra 480 minutos.Em outras palavras:
▶ O tempo de resposta para uma única tarefa (pessoa) não mudou.▶ Mas a vazão do sistema (pessoas atendidas por unidade de tempo) aumentou 118%.
Maior eficiência vem do uso de pipeline.▶ i.e., executar etapas de tarefas diferentes em paralelo.▶ Evita que recursos fiquem ociosos.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 31 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Ciclo de Execução de Instrução e Pipeline
Podemos aplicar a mesma técnica para a execução de instruções em uma CPU?▶ Sim, desde que possamos quebrar a tarefa de execução das instruções em
sub-tarefas independentes.Podemos, por exemplo, considerar as subtarefas como as etapas do ciclo de execução deuma instrução.
▶ Busca da instrução.▶ Decodificação.▶ Busca dos operandos.▶ Execução.▶ Armazenamento do Resultado.
Assumindo, é claro, que não haja dependência entre as etapas de instruçõessubsequentes.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 32 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Ciclo de Execução de Instrução e Pipeline: Eficiência
No jargão de arquitetura de computadores, cada “subtarefa” é chamada de estágio dopipeline.Considerando um pipeline com 5 estágios, o estado do pipeline ao longo do tempo:
S1:
S2:
S3:
S4:
S5:
1 2 3 4 5 7 86
Tempo
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7
1 2 3 4 5 6
1 2 3 4 5
1 2 3 4
...
Quantas instruções são executadas por ciclo de clock?
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 33 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Ciclo de Execução de Instrução e Pipeline: Eficiência (II)
Com 5 estágios, primeira instrução demora 5 ciclos de clock.Após este tempo, a cada 1 ciclo, temos mais uma instrução sendo concluída.Para executar n instruções, precisamos de t = 5 + n − 1 = n + 4 ciclos.
▶ Logo, processador executa nn+4 instruções por ciclo de clock.
▶ Para n grande, isso é praticamente 1.Eficiência não é perfeita porque os k primeiros ciclos são gastos enchendo o pipeline.
▶ Onde k é o número de estágios.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 34 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Pipeline vs. Monociclo
Na conta anterior, verificamos que com o pipeline quase conseguimos atingir umainstrução por ciclo.
▶ Então qual é a vantagem de usar um pipeline com vários estágios ao invés de uma soluçãoque faz tudo em um ciclo só?
A vantagem está na duração do ciclo.▶ Como, individualmente, cada estágio do pipeline faz algo “simples”, a duração de um ciclo
pode ser curta.▶ Na implementação monociclo, cada ciclo é mais complexo, longo.
Exemplo: o que é melhor?▶ Quase uma tarefa por ciclo, com ciclo de 1 ns.▶ Exatamente uma tarefa por ciclo, com ciclo de 5 ns.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 35 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Pipeline e Desvios
A técnica de pipeline é efetiva, desde que mantenhamos o pipeline cheio.▶ i.e., quando uma instrução está no estágio i , a próxima está no estágio i + 1.
Mas como o processador sabe qual é a próxima instrução?▶ A princípio, uma tarefa fácil.▶ Programas são sequências de instruções armazenadas em memória.
⋆ Também de forma sequencial.
Mas há um caso especial: as instruções de desvio.▶ Próxima instrução pode estar em alguma posição diferente.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 36 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Pipeline e Desvios (II)
Suponha que uma instrução de desvio chegue ao último estágio do pipeline.Neste ponto, a CPU descobre que será realizado um desvio (ao invés da execuçãosequencial).O que fazer?
▶ Outras instruções já estão no pipeline.▶ Elas não deveriam ser executadas.▶ Solução: flush do pipeline.
⋆ Esvaziamos o pipeline, não permitindo a conclusão das demais instruções.⋆ Recomeçamos com o pipeline vazio a partir do endereço do desvio.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 37 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Pipeline e Desvios (III)
S1:
S2:
S3:
S4:
S5:
1 2 3 4 5 7 86
Tempo
1 2 3 4 5 6 11 12
1 2 3 4 5 11
1 2 3 4
1 2 3
1 2
...
Flush
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 38 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Pipeline e Desvios (IV)
O flush em um pipeline impede que executemos instruções erradas.▶ Mas desempenho é prejudicado.▶ Enfrentamos novamente o custo inicial de encher o pipeline.
Lembre-se: há dois tipos de desvios diferentes.▶ Desvios condicionais.▶ Desvios incondicionais.
No caso de desvios incondicionais, podemos amenizar o problema:▶ Se conseguirmos detectar o desvio cedo, precisamos descartar apenas um subconjunto das
instruções já executadas.▶ O pipeline ainda ficará “meio cheio”.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 39 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Pipeline e Desvios (V)
Mas e para desvios condicionais?▶ Se soubéssemos cedo o resultado da condição, poderíamos usar a mesma estratégia dos
desvios incondicionais.▶ Mas isso geralmente não é possível.
⋆ Desvios condicionais são mais complexos.⋆ Precisam chegar a estágios finais do pipeline para sabermos seu resultado.
Não há solução, então?
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 40 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Predição de Desvios
Processadores modernos geralmente possuem um branch predictor.▶ Preditor de desvios.▶ Tenta “advinhar” o resultado de uma instrução de desvio condicional.▶ Baseado em histórico.
Quando CPU decta (cedo) a execução de uma instrução de desvio condicional:▶ Preditor prevê se desvio ocorrerá ou não.▶ Se preditor diz que desvio não ocorrerá, próxima instrução é colocada no pipeline.▶ Caso contrário, instrução do endereço de destino é utilizada.
Se o preditor acerta, pipeline continua cheio.Se o preditor erra, temos que fazer um flush.
▶ E pagar a penalidade de desempenho.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 41 / 42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Exercício
Suponha um processador com pipeline de 5 estágios.▶ Em instruções de desvio condicional, o preditor sempre prevê que o salto não ocorrerá.▶ Assuma que ao final do quarto estágio a CPU é capaz de determinar o resultado de
instruções de desvio condicional.▶ Caso o desvio seja tomado, é preciso dar um flush nas três instruções nos estágios anteriores.▶ Caso contrário, o pipeline continua cheio.
Determine o número médio de instruções executadas por ciclo de clock considerando:▶ 20% das instruções são de desvio condicional.▶ 30% destes desvios ocorrem.▶ Não há nenhuma outra fonte de ineficiência do pipeline.
Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 42 / 42
top related