aula 15: ciclo de execução e introdução ao...

43
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

Upload: phamtram

Post on 27-May-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 2: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Revisão

Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 2 / 42

Page 3: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 4: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 5: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 6: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Ciclo de Execução de uma Instrução

Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 6 / 42

Page 7: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 8: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 9: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 10: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 11: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 12: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 13: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 14: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 15: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 16: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 17: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 18: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 19: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 20: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 21: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 22: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 23: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 24: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 25: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Introdução ao Conceito de Pipeline

Diego Passos (UFF) Ciclo de Execução; Intro. ao Pipeline FAC 25 / 42

Page 26: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 27: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 28: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 29: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 30: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 31: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 32: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 33: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 34: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 35: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 36: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 37: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 38: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 39: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 40: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 41: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 42: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Page 43: Aula 15: Ciclo de Execução e Introdução ao Pipelinediego/disciplinas/2015_1/FAC/arquivos/aula15.pdf · Aula 15: Ciclo de Execução e Introdução ao Pipeline Diego Passos Universidade

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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