Confusão de pipelining do processador [fechada]

0

Depois de ler como os processadores usam pipelines (de vários artigos: wikipedia, SU e outros lugares), estou um pouco confuso em algumas partes do que li, por isso gostaria de compartilhar o que chegar a entender e se alguém pode apenas esclarecer que o seguinte está correto (por favor, deixe-me saber se algum deles está errado),

Abreviações:

ciclo = ciclo de clock
ICR = taxa de conclusão de instrução
TI = taxa de transferência de instruções IL = Latência de Instrução

  1. IL é o número de nanossegundos necessários para que uma única instrução passe por todo o pipeline (assim, quanto menor o IL, maior o ICR).

  2. Cada estágio de um pipeline leva um ciclo para ser concluído.

  3. Assumindo que: um pipeline não experimenta nenhuma "bolha", falta de cache, etc; o pipeline tem 5 estágios de profundidade, o processador está funcionando a uma velocidade de clock de 2 GHz (isto é, 0,5 nanossegundos por ciclo).

    O processador será capaz de processar 800'000'000 instruções em um segundo (ignorando o fato de que o pipeline precisa primeiro preencher com instruções, a fim de alcançar o máximo de TI).

  4. Se um pipeline tiver 10 estágios de profundidade, uma instrução terá um IL de 10 ciclos.

  5. A TI máxima que um processador de arquiteto de núcleo único e não superescalar pode alcançar é de 1 instrução por ciclo.

  6. O período de ciclo de um processador é determinado pelo estágio mais lento de seu pipeline.

  7. Quanto menor o período de tempo que cada etapa de um pipeline leva, maior o IT & ICR.

  8. O pipeline perfeito tem: baixa IL, alta profundidade de pipeline (mas evita "bolhas", erros de cache, etc), alta velocidade de clock, alta IT & alto ICR.

por Sam 03.09.2013 / 12:37

1 resposta

2

ICR = TI

1) Sua realmente tem mais a ver com quanto tempo o pipeline é. Para comparar, uma conexão de internet de alta latência não é necessariamente uma com baixa largura de banda.

2) Sim, embora às vezes uma instrução não possa deixar um estágio particular do pipeline quando queremos (cache miss, etc.).

3) Não, ele processará 2.000.000.000 de instruções. Uma instrução diferente estará em cada estágio do pipeline a qualquer momento, então, ter 5 estágios não irá atrasá-lo no universo perfeito, onde nada de bolhas ou erros de cache irá perder.

4) Parece certo. Com alguns processadores, quantos estágios uma instrução passa depende da instrução.

5) Parece correto.

6) Todos eles têm que rodar no mesmo relógio, mas quando você está projetando um, sim, o que nunca falha é o fator limite.

7) Sim, e quanto menor a latência da instrução, também, embora atingir essas velocidades de clock mais altas geralmente exija o alongamento do pipeline.

8) Um pipeline longo pode permitir alcançar velocidades de clock maiores, mas deixa você mais vulnerável a bolhas ou ramificações incorretas, portanto, isso é realmente mais um compromisso. Em última análise, tudo o que importa é a taxa de transferência.

    
por 03.09.2013 / 14:22