Instrução comprimento do caminho - Instruction path length

No desempenho do computador , o comprimento do caminho de instrução é o número de código de máquina instruções necessárias para executar uma seção de um programa de computador . O comprimento total caminho para todo o programa poderia ser considerado uma medida do algoritmo de desempenho 's em um determinado hardware do computador . O comprimento do percurso de uma instrução condicional simples normalmente seria considerado como igual a 2, uma instrução para executar a comparação e outro para tomar uma filial se a condição particular é satisfeito. O período de tempo para executar cada instrução não é normalmente considerado na determinação de comprimento de percurso e assim por comprimento de percurso é meramente uma indicação do desempenho relativo ao invés de em qualquer sentido absoluto.

Quando a execução de um programa de referência , a maior parte do comprimento do percurso de instruções é tipicamente no interior do programa loop interno .

Antes da introdução de caches , o comprimento do caminho foi uma aproximação do tempo de execução, mas em CPUs moderno, com caches, ele pode ser uma aproximação muito pior, com algumas instruções de carga levando centenas de ciclos de quando os dados não está em cache ou ordens de magnitude mais rápido quando em cache (mesmo a mesma instrução em outra rodada em um loop).

programas de montagem

Uma vez que não é, tipicamente, uma relação de um-para-um entre o conjunto de instruções e as instruções da máquina, o comprimento do percurso de instruções é frequentemente tomado como o número de instruções de montagem necessários para realizar uma função ou secção em particular do código. Realizando uma simples consulta à tabela em um un classificadas lista de 1.000 entradas pode exigir talvez 2.000 instruções de máquina (em média, assumindo distribuição uniforme de valores de entrada), enquanto executa a mesma consulta em um ordenada lista usando um algoritmo de busca binária pode exigir apenas cerca de 40 instruções de máquina, uma poupança muito considerável. Expressa em termos de comprimento de caminho de instrução, esta métrica seria reduzida neste caso por um enorme fator de 50 - uma razão pela qual horários de instrução reais podem ser uma consideração secundária em comparação com uma boa escolha de algoritmo que requer um comprimento caminho mais curto.

O comprimento do percurso de instruções de um programa de linguagem assembly é geralmente muito diferente do que o número de linhas de código fonte para esse programa, porque o comprimento do percurso de instruções inclui somente o código no fluxo de controlo executado para a entrada de dados, e não inclui um código que não é relevante para a entrada particular, ou código inacessível .

linguagem de alto nível programas (HLL)

Uma vez que uma declaração por escrito em uma linguagem de alto nível pode produzir várias instruções de máquina de número variável, nem sempre é possível determinar o comprimento do caminho de instrução, sem, por exemplo, um simulador de conjunto de instruções  - que pode contar o número de instruções executadas 'durante simulação. Se a linguagem de alto nível suporta e, opcionalmente, produz uma 'lista assembly', às vezes é possível estimar o comprimento do caminho de instrução, examinando esta lista.

Factores que determinam comprimento do caminho de instrução

Uso de caminho de instrução comprimentos

Do exposto, pode-se perceber que o conhecimento de comprimentos de caminho de instrução pode ser usado:

  • para escolher um algoritmo apropriado para minimizar caminho geral comprimentos para programas em qualquer linguagem
  • para monitorar o quão bem um programa foi otimizado em qualquer idioma
  • para determinar o quão eficiente particulares declarações HLL são para qualquer idioma HLL
  • como uma medida aproximada da geral o desempenho do computador

links externos

  • [1] Arquitetura de Computadores por John L. Hennessy, David A. Patterson, David Goldberg, Krste Asanović
  • [2] IBM - Glossário de Termos de desempenho