Para explicar como é consiste, levará um pequeno lembrete sobre os diferentes estágios de uma instrução. No capítulo sobre a micro-arquitetura de um processador, foi visto que uma instrução é realizada em várias etapas distintas: a carga, decodificação e várias etapas para executar a instrução, a última dependendo do processador, do processador. Modo de endereçamento ou manipulações deve executar. Sem pipeline, estas etapas são feitas de acordo com as outras e uma instrução deve esperar até que o anterior esteja completo antes de iniciar.

Com um pipeline, podemos começar a executar uma nova instrução sem esperar até que o anterior termine . Por exemplo, a próxima instrução pode ser carregada enquanto a instrução em execução estiver na etapa de execução. Afinal, essas duas etapas são completamente independentes e usam circuitos separados. O princípio do pipeline é simples: execute várias instruções diferentes, cada um sendo em um passo diferente dos outros. Cada instrução muda gradualmente de um passo para o próximo neste pipeline e uma nova instrução por ciclo é carregada no primeiro andar. O número total de etapas necessárias para executar uma instrução (e, portanto, o número de estágios do pipeline) é chamado de profundidade do pipeline. Corresponde ao número teórico máximo de instruções executadas ao mesmo tempo no pipeline.

Pipeline: princípio.

Para entender o que significa, compare a execução desta instrução sem e com oleoduto . Por exemplo, usaremos uma organização relativamente geral, onde cada instrução passa pelas seguintes etapas:

  • Carregamento: Nós cobramos nossa declaração da memória;
  • decodificação: decodificando o instrução;
  • execução: a instrução é executada;
  • Acesso à memória: Acesso à memória RAM;
  • gravação: Se necessário, o resultado da instrução é Gravado na memória.

sem pipeline, é preciso esperar que uma instrução seja concluída para executar o seguinte. A instrução executa todas as suas etapas, antes que a seguinte declaração seja inicializada no passo 1.

Execução de três instruções sem pipeline.

com um pipeline, começamos uma nova instrução por ciclo (sob condições ótimas).

Execução de três instruções com pipeline.

O isolamento dos estágios do design

Design Um processador com um pipeline requer algumas modificações da arquitetura do nosso processador. Primeiro de tudo, cada etapa de uma instrução deve ser executada independentemente dos outros, o que significa usar circuitos independentes para cada andar. Portanto, é impossível reutilizar um circuito em várias etapas, pois é feito em alguns processadores sem pipeline. Por exemplo, em um processador livre de pipeline, o adderador de alumínio pode ser usado para atualizar o programa de contador ao carregar, calculando endereços ao acessar memória, adições, etc. Mas em um processador com um pipeline, não podemos pagar, o que faz cada passo usando seu próprio adder. Da mesma forma, o estágio de carregamento pode entrar em conflito com outros andares para acesso a memória ou cache, especialmente para instruções de acesso à memória. Este conflito pode ser resolvido entre o piso de carregamento e o piso de acesso à memória, duplicando o cache L1 em um cache de instruções e um cache de dados. E este princípio é geral: é importante separar os circuitos encarregados de cada etapa. Cada circuito dedicado a um passo é chamado de fase do pipeline.

Pipelinesysmodificador síncrono e assíncrono

A maioria dos pipelines interpõe registros entre as etapas, para isolá-las. As transferências entre registros e pisos podem ser sincronizadas por um relógio ou assíncronamente.

Se o pipeline estiver sincronizado no relógio do processador, falamos sobre o gasoduto síncrono. Cada andar coloca um ciclo de clock para realizar seu trabalho, ou seja, leia o conteúdo do registro que o conecta à etapa anterior e deduzir o resultado para escrever no seguinte registro. Estes são esses pipelines encontrados nos processadores Intel e AMD mais recentes.

Pipeline síncrono tamponado

em outros pipelines, não há nenhum relógio para sincronizar transferências entre as pisos, que são através de um ônibus “barramento” assíncrono. Estamos falando de pipeline assíncrono.

Pipeline síncrono e assíncrono.

Os sinais de controle de oleodutos assíncronos podem ser facilmente criados com portas c.

estrutura de micropiplelina

o paradoxo de O pipelinesmodir

Vamos voltar um pouco sobre oleodutos síncronos. Nestes, um chão faz seu trabalho em um ciclo de relógio. Em um pipeline com n etapas, uma instrução põe n Ciclos de clock para ser executado, contra um único ciclo em um processador sem qualquer pipeline. Mas então o que bom não executa instruções simultaneamente, se cada instruções demorar mais tempo? O tempo de execução de um pacote de instruções não é suposto para mudar! Exceto que este raciocínio esquece um parâmetro importante: um estágio de pipeline tem um tempo de propagação menor do que um processador completo; o que torna possível aumentar a frequência. Isso torna possível multiplicar a frequência por um coeficiente mais ou menos proporcional ao número de etapas.

Efeito do uso de um pipeline na frequência de um processador.

podemos formalizar este raciocínio matematicamente, posando:

  • t {\ displaystyle t}
    t

    a latência da instrução ” com gasoduto em segundos;

  • t {\ displaystyle t}
    t

    a latência da instrução sem pipeline em segundos;

  • t chão {\ displaystyle t {\ text {assoalho}}}
    {\ displaystyle t _ {\ text}}

    a latência de um piso de pipeline em segundos;

  • n {\ displaystyle n}
    {\ displaystyle n}

O número de fases do pipeline.

Suponha que os circuitos do processador possam ser cortados em estágios que mesma latência, ou seja, que colocou o mesmo tempo para fazer seu trabalho. O tempo definido por um andar para fazer o seu trabalho é:

t chão = t n {\ displaystyle t _ {\ text {chão}} = {\ frac {t} {n}}}

{\displaystyle t_{\text{étage}}={\frac {t}{N}}}{\ displaystyle t _ {\ text {assoalho}} = {\ frac {t} {n}}}

em um pipeline, uma instrução deve passar por n {\ Displaystyle n}

{\ displaystyle n}

estágios para ser executado. Seu tempo total de execução é o produto da latência de um andar pelo seu número: t = n × t n {\ displaystyle t = n \ vezes {\ frac {t}}}

{\ Displaystyle t = n \ vezes {\ frac {t} {n}}}

.

simplificando, encontramos:

t = t {\ displaystyle t = t}

{\ displaystyle t = t}

disse o contrário, o tempo de execução de uma instrução não altera: o aumento da frequência compensa o aumento no número de etapas. Por outro lado, o fato de que várias instruções podem ser executadas ao mesmo tempo aumenta o desempenho: se a latência permanecer a mesma, a taxa de fluxo do processador aumenta.

Agora, vamos olhar com mais detalhes acontece com a frequência. Em um processador livre de gasodutos, presume-se que a instrução coloca um ciclo de clock para executá-lo (para simplificar). A frequência do processador é, portanto, o inverso do tempo de execução da instrução, ou seja:

f = 1 t {\ displaystyle f = {1 \ over t}}

{\ Displaystyle f = {1 \ over t}}

em um processador com oleoduto, o tempo de latência de um piso é igual, por definição, até a duração de um ciclo de clock. A frequência é o oposto dessa duração, o que vale a pena:

f = n t {\ displaystyle f = {n \ over t}}

{\ displaystyle f = { N}}}

Vemos que a frequência foi multiplicada pelo número de andares com um pipeline! Temos boa n {\ displaystyle n}

{\ displaystyle n}

estágios em vez de um, mas cada andar n {\ displaystyle N}

{\ displaystyle n}

vezes mais rápido, o que compensa. Mais uma vez, o aumento de desempenho vem do aumento no CPI.

A influência dos registros inter-estágios que modificam

em teoria, o raciocínio anterior nos diz que o tempo de execução de uma instrução é o mesmo sem ou com um pipeline. No entanto, os registros interpostos entre as etapas do gasoduto devem ser levados em conta, que adicionam uma pequena latência.Temos, posando:

  • t {\ displaystyle t}
    t

    latência com pipeline;

  • t {\ displaystyle t}
    t

    a latência sem pipeline;

  • τ {\ displaystyle \ tau}
    \ tau

    A latência de um registo entre estágio;

  • n {\ displaystyle n}
    {\ Displaystyle n}

    o número de estágios do pipeline.

t = t + τ × n {\ displaystyle t = t + \ tau \ vezes n }

{\ displaystyle t = t + \ tau \ vezes n}

Nestas condições, a latência de um estágio do gasoduto vale a pena Simplesmente:

tetage = TN = T + τ × nn = tn + τ {\ displaystyle t_ {\ frac} {\ frac {t} {n}} = {\ frac {t + \ tau \ vezes n} {N}} = {\ frac {t} {n}} + \ tau}

{\ displaystyle t_ {pavimento} = {\ frac {t} {n}} {n}} {n}} {n}} = {n}} \ frac {t + \ tau \ vezes n} {n}} = {\ frac {t} {n}} + \ tau}

a frequência do processador é o oposto de esta latência. Portanto, é igual a:

f = 1 t n + τ {\ displaystyle f = {\ frac {1} {}} {{\ frac {t} {n}} + \ tau}}}

{\displaystyle f={\frac {1}{{\frac {t}{N}}+\tau }}}{\ displaystyle f = {\ frac {1} {{}} {{n}} + \ tau}}}

o fluxo, nomeadamente o número de instruções realizada por segundos é expressa a partir desta equação simplesmente. Para um processador livre de gasoduto, este fluxo é simplesmente igual a 1 t {\ displaystyle 1 \ over t}

{\ displaystyle 1 \ Over t}

. O pipeline pode executar n {\ displaystyle n}

{\ displaystyle n}

Instruções ao mesmo tempo, que multiplica a taxa de fluxo por n {\ displaystyle n}

{\ displaystyle n}

, que dá: d = nt = n t + τ × n = 1 t n + τ {\ displaystyle d = {\ displaystyle d = {\ displaystyle \ Frac {n} {t}} = {\ frac {n} {t + \ tau \ vezes n}} = {\ frac {1} {} {} {}}}}}}}

{\ displaystyle d = {\ frac {n} {}} = {\ frac {n} {t + \ tau \ vezes n}} = {\ frac {1} {\ frac {1} {\ frac {1} {\ Frac {t} {n}} + \ tau}}}}

Esta equação nos dá a taxa de fluxo máxima teórico que pode chegar a um pipeline. É suficiente para isso fazer o número de pisos em direção ao infinito, o que dá um fluxo máximo de 1 τ {\ displaystyle 1 \ over \ tau}

{\ displaystyle 1 \ Over \ tau}

. O fluxo é, portanto, limitado pela latência dos registros. Obviamente, esse limite é um limite teórico: a latência de um andar não pode ser zero!

A heterogeneidade das latências entre os estágios do estadio

su os processadores reais, o raciocínio anterior é tão inválido, uma vez que alguns andares têm um caminho crítico mais longo que os outros. Somos então obrigados a parar no andar mais lento, o que reduz o ganho um pouco. A duração de um ciclo de clock deve ser maior que o tempo de propagação mais lento. Mas em todos os casos, o uso de um pipeline permite o melhor multiplicar a frequência pelo número de etapas. Isso impulsionou alguns fabricantes de processadores para criar processadores com um número bastante elevado de andares para torná-los funcionar em freqüência muito alta. Por exemplo, este é o Intel com Pentium 4, cujo pipeline fez 20 andares para o Pentium 4 com base na arquitetura de Willamette e Northwood, e 31 andares para aqueles com base na arquitetura Prescott e Cedar..

gasoduto heterogêneo de um Circuito

Leave a comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *