Usado primeiramente nos processadores de P6 ou de sexto-geração, a execução dinâmica permite o processador de executar mais instruções na paralela, assim que as tarefas são terminadas mais rapidamente. Esta inovação da tecnologia é compreendida de três elementos principais:
Predição da filial múltipla. Prediz o fluxo do programa através de diversas filiais
Análise do fluxo de dados. Programa instruções para ser executado quando pronto, independent de sua ordem no programa original
Execução speculative. Aumenta a taxa da execução olhando antes de o contador de programa e executando as instruções que são prováveis ser necessárias
A predição da filial é uma característica encontrada anteriormente somente em processadores high-end do mainframe. Permite o processador de manter o encanamento da instrução cheio ao funcionar em uma relação de velocidade elevada. Uma unidade especial de fetch/decode no processador usa um algoritmo altamente optimized da predição da filial predizer o sentido e o resultado das instruções que estão sendo executadas através dos níveis múltiplos das filiais, chama-se, e retorna-se. É similar a um jogador de chess que trabalha para fora das estratégias múltiplas adiantado do jogo do jogo predizendo a estratégia do oponente diversos movimentos no futuro. Predizendo o resultado da instrução adiantado, as instruções podem ser executadas com nenhuma espera.
A análise do fluxo de dados estuda o fluxo dos dados através do processador para detectar todas as oportunidades para a execução out-of-order da instrução. Uma unidade especial de dispatch/execute no processador monitora muitas instruções e pode executar estas instruções em uma ordem que optimizes o uso das unidades superscalar múltiplas da execução. A execução out-of-order resultante das instruções pode manter as unidades da execução ocupadas mesmo quando a falta de esconderijo e outras instruções dados-dependentes puderam de outra maneira manter levantadas coisas.
A execução speculative é a potencialidade do processador para executar adiantado instruções do contador de programa real. A unidade de dispatch/execute do processador usa a análise do fluxo de dados executar todas as instruções disponíveis no pool da instrução e armazenar os resultados em registos provisórios. Uma unidade da aposentadoria procurara então o pool da instrução pelas instruções terminadas que não são nenhum dependente mais longo dos dados em outras instruções para funcionar ou que têm predições não resolvidas da filial. Se umas instruções terminadas forem encontradas, os resultados estão cometidos à memória pela unidade da aposentadoria ou à arquitetura de Intel do padrão apropriado na ordem que foram emitidos originalmente. São aposentados então do pool.
A execução dinâmica remove essencialmente o confinamente e a dependência em arranjar em seqüência linear da instrução. Promovendo a execução out-of-order da instrução, pode manter as unidades da instrução dados trabalhar melhor que esperar da memória. Mesmo que as instruções possam ser preditas e avariado executado, os resultados são cometidos na ordem original de modo a para não disrupt ou não mudar o fluxo de programa. Isto permite o P6 de funcionar exatamente o software existente da arquitetura de Intel como o P5 (Pentium) e o didjust precedente dos processadores um o lote inteiro mais rapidamente!
![]() . |