Um processador possui um pipeline de 5 estágios. Considere que cada ciclo de clock do processador se dá em 4ns. Responda:
a) Qual a latência desse processador?
b) Qual a banda passante deste processador?
c) Considerando que cada estágio do pipeline precisa de 4 ns para funcionar, é sabido que este processador demorou exatos 52 ns para executar um número exato de instruções. Quantas instruções completas o processador executou nesses 52 ns de tempo?
a) Qual a latência desse processador?
b) Qual a banda passante deste processador?
c) Considerando que cada estágio do pipeline precisa de 4 ns para funcionar, é sabido que este processador demorou exatos 52 ns para executar um número exato de instruções. Quantas instruções completas o processador executou nesses 52 ns de tempo?
Passo 1
O enunciado diz que temos um processador com pipeline de 5 estágios e cada ciclo de clock dura 4 ns. Vamos usar os conceitos de latência (tempo que uma instrução leva para atravessar todo o pipeline) e banda passante (throughput, instruções concluídas por unidade de tempo) para responder aos itens.
Passo 2
Para calcular a latência de uma única instrução num pipeline de 5 estágios, basta multiplicar o número de estágios pelo tempo de cada estágio. Cada estágio dura 4 ns, logo:
Passo 3
A banda passante (throughput) de um pipeline ideal é de uma instrução concluída por ciclo de clock. Como cada ciclo é de 4 ns, temos:
Passo 4
Para saber quantas instruções foram executadas em 52 ns, usamos a fórmula do tempo total em pipeline cheio:
onde
, latência = 20 ns e período de clock = 4 ns. Substituindo:
Logo o processador completou 9 instruções.
Passo 5
Teoria aplicada: no pipeline, a primeira instrução só sai após percorrer todos os estágios (latência), e daí em diante cada novo resultado sai a cada ciclo de clock, definindo o throughput.
Resposta
a) 20 ns
b) 0,25 instruções/ns (250 M instruções/s)
c) 9 instruções
b) 0,25 instruções/ns (250 M instruções/s)
c) 9 instruções