Longitud de la ruta de instrucción

Número de instrucciones de código de máquina necesarias para ejecutar una sección de un programa informático

En el rendimiento informático , la longitud de la ruta de instrucción es el número de instrucciones de código de máquina necesarias para ejecutar una sección de un programa informático . La longitud total de la ruta para todo el programa podría considerarse una medida del rendimiento del algoritmo en un hardware informático particular . La longitud de la ruta de una instrucción condicional simple normalmente se consideraría igual a 2, [ cita requerida ] una instrucción para realizar la comparación y otra para tomar una rama si se cumple la condición particular. El tiempo para ejecutar cada instrucción normalmente no se considera al determinar la longitud de la ruta y, por lo tanto, la longitud de la ruta es meramente una indicación del rendimiento relativo en lugar de ser absoluta en ningún sentido.

Al ejecutar un programa de referencia , la mayor parte de la longitud de la ruta de instrucciones normalmente está dentro del bucle interno del programa .

Antes de la introducción de los cachés , la longitud de la ruta era una aproximación del tiempo de ejecución, pero en las CPU modernas con cachés, puede ser una aproximación mucho peor, con algunas instrucciones de carga que toman cientos de ciclos cuando los datos no están en el caché, u órdenes de magnitud más rápido cuando están en el caché (incluso la misma instrucción en otra ronda en un bucle).

Programas de montaje

Dado que, por lo general, existe una relación uno a uno entre las instrucciones de ensamblaje y las instrucciones de máquina, la longitud de la ruta de instrucciones se toma con frecuencia como el número de instrucciones de ensamblaje necesarias para realizar una función o una sección particular de código. Realizar una búsqueda simple en una tabla en una lista no ordenada de 1000 entradas podría requerir quizás 2000 instrucciones de máquina (en promedio, suponiendo una distribución uniforme de los valores de entrada), mientras que realizar la misma búsqueda en una lista ordenada utilizando un algoritmo de búsqueda binaria podría requerir solo unas 40 instrucciones de máquina, un ahorro muy considerable. Expresado en términos de longitud de la ruta de instrucciones, esta métrica se reduciría en este caso por un enorme factor de 50, una razón por la que los tiempos de instrucción reales podrían ser una consideración secundaria en comparación con una buena elección de algoritmo que requiera una longitud de ruta más corta.

La longitud de la ruta de instrucciones de un programa en lenguaje ensamblador generalmente es muy diferente a la cantidad de líneas de código fuente para ese programa, porque la longitud de la ruta de instrucciones incluye solo el código en el flujo de control ejecutado para la entrada dada y no incluye el código que no es relevante para la entrada particular o código inalcanzable .

Programas de lenguaje de alto nivel (HLL)

Dado que una instrucción escrita en un lenguaje de alto nivel puede producir múltiples instrucciones de máquina de un número variable, no siempre es posible determinar la longitud de la ruta de instrucciones sin, por ejemplo, un simulador de conjunto de instrucciones  , que pueda contar la cantidad de instrucciones "ejecutadas" durante la simulación. Si el lenguaje de alto nivel admite y produce opcionalmente una "lista de ensamblaje", a veces es posible estimar la longitud de la ruta de instrucciones examinando esta lista.

Factores que determinan la longitud de la ruta de instrucción

Uso de longitudes de rutas de instrucciones

De lo anterior se desprende que el conocimiento de las longitudes de las rutas de instrucciones se puede utilizar:

  • Elegir un algoritmo apropiado para minimizar las longitudes de ruta generales para programas en cualquier lenguaje.
  • Para monitorear qué tan bien se ha optimizado un programa en cualquier lenguaje
  • para determinar qué tan eficientes son determinadas declaraciones HLL para cualquier lenguaje HLL
  • como una medida aproximada del rendimiento general de la computadora
  • [1] Arquitectura informática Por John L. Hennessy, David A. Patterson, David Goldberg, Krste Asanovic
  • [2] IBM – Glosario de términos de rendimiento
Retrieved from "https://en.wikipedia.org/w/index.php?title=Instruction_path_length&oldid=1219174607"