Instrucciones por segundo

From Wikipedia, the free encyclopedia

Eficacia del procesamiento informático, medida como la potencia necesaria por millón de instrucciones por segundo (vatios por MIPS)

Las instrucciones por segundo (IPS, del inglés instructions per second) son una medida de la velocidad del procesador de una computadora. Para las computadoras de conjunto de instrucciones complejo (CISC), diferentes instrucciones toman diferentes cantidades de tiempo, por lo que el valor medido depende de la mezcla de instrucciones; incluso para comparar procesadores en la misma familia, la medición de IPS puede ser problemática. Muchos valores de IPS reportados han representado tasas de ejecución «pico» en secuencias de instrucciones artificiales con pocas ramificaciones y sin contención de caché, mientras que las cargas de trabajo realistas típicamente conducen a valores de IPS significativamente más bajos. La jerarquía de memoria también afecta en gran medida el rendimiento del procesador, un problema apenas considerado en los cálculos de IPS. Debido a estos problemas, ahora se utilizan generalmente benchmarks sintéticos como Dhrystone para estimar el rendimiento informático en aplicaciones comúnmente utilizadas, y el IPS en bruto ha caído en desuso.

El término se usa comúnmente en asociación con un prefijo métrico (k, M, G, T, P o E) para formar kilo instrucciones por segundo (kIPS), mega instrucciones por segundo (MIPS), giga instrucciones por segundo (GIPS) y así sucesivamente. Anteriormente, TIPS se usaba ocasionalmente para «thousand IPS».

Las IPS se pueden calcular usando esta ecuación:[1]

Sin embargo, la medición de instrucciones/ciclo depende de la secuencia de instrucciones, los datos y factores externos.

Unidades de escala

Para los primeros microprocesadores de 8 bits y de 16 bits, el rendimiento se medía en mil instrucciones por segundo, o kilo instrucciones por segundo (kIPS).

El término «mega instrucciones por segundo» se volvió útil a finales de los años 1970. El IBM System/370 modelo 158–3 y el VAX-11/780 se consideraban aproximadamente equivalentes a 1 MIPS.

Tipos de instrucciones

La velocidad de una CPU dada depende de muchos factores, como el tipo de instrucciones que se ejecutan, el orden de ejecución y la presencia de instrucciones de ramificación (problemáticas en tuberías de CPU). Las tasas de instrucciones de CPU son diferentes de las frecuencias de reloj, usualmente reportadas en Hz, ya que cada instrucción puede requerir varios ciclos de reloj para completarse o el procesador puede ser capaz de ejecutar múltiples instrucciones independientes simultáneamente. Los MIPS pueden ser útiles al comparar el rendimiento entre procesadores hechos con arquitectura similar (por ejemplo, microcontroladores PIC), pero son difíciles de comparar entre arquitectura de procesadores diferentes, especialmente entre arquitecturas RISC y CISC.[2] Esto llevó al término «Meaningless Indicator of Processor Speed»[3] o, menos comúnmente, «Meaningless Indices of Performance»,[4] popular entre la gente técnica a mediados de los años 1980.

La mezcla Gibson (1959)

Antes de que estuvieran disponibles benchmarks estándar, la calificación de velocidad promedio de las computadoras se basaba en cálculos para una mezcla de instrucciones con los resultados dados en kilo instrucciones por segundo (kIPS). Entre los primeros intentos de definir una colección específica de instrucciones para cronometrar fue la mezcla Gibson, producida por Jack Clark Gibson de IBM para aplicaciones científicas en 1959.[5]

Gibson dividió las instrucciones de computadora en 12 clases, basadas en la arquitectura IBM 704, agregando una 13.ª clase para contabilizar el tiempo de indexación. Los pesos se basaban principalmente en el análisis de siete programas científicos ejecutados en el 704, con una pequeña contribución de algunos programas IBM 650. La puntuación general era entonces la suma ponderada de la velocidad de ejecución promedio para instrucciones en cada clase.[6]

La mezcla Gibson es un producto de su era, cuando las velocidades de las computadoras aún se medían en kIPS. Otras calificaciones, como la mezcla ADP que no incluye operaciones de punto flotante, se produjeron para aplicaciones comerciales. Estas calificaciones tempranas no eran tan sistemáticas como los enfoques posteriores, aunque la idea de crear un benchmark para parecerse a aplicaciones del mundo real (más tarde llamado «benchmark sintético») persistiría.

Dos sabores de VAX MIPS

El VAX-11/780 se lanzó en 1977. Se comercializó como capaz de ejecutar el equivalente a 1 millón de instrucciones System/370 por segundo, la primera minicomputadora en lograr tal velocidad. El VAX-11/780 se convertiría rápidamente en una unidad de referencia para mediciones de MIPS, en dos benchmarks separados:

  • El benchmark Whetstone de 1972 se modificó en 1980 para combinar tres de sus medidas de velocidad de operaciones enteras en un «VAX MIPS». Originalmente incluía una mezcla de 42 declaraciones escritas en ALGOL 60 (124 instrucciones en el compilador KDF9), aunque para 1980 se había reescrito en Fortran.
  • El benchmark Dhrystone de 1984, pesado en enteros y cadenas, heredó la idea de usar VAX como referencia de MIPS. Sus resultados se reportaban en «DMIPS», para Dhrystone MIPS. Cada Dhrystone MIPS se definía como la capacidad de ejecutar el bucle principal de Dhrystone 1757 veces por segundo, la puntuación que recibió el VAX-11/780 en este benchmark.

Otras mezclas de instrucciones

zMIPS se refiere a la medida de MIPS utilizada internamente por IBM para calificar sus servidores de mainframe (zSeries, IBM System z9 e IBM System z10).

Millones de operaciones ponderadas por segundo (WMOPS) es una medición similar, utilizada para códecs de audio.

Otros factores que afectan las instrucciones por segundo

Las velocidades MIPS efectivas dependen en gran medida del lenguaje de programación utilizado: algunos compiladores generan código altamente eficiente, otros no. El informe Whetstone tiene una tabla que muestra velocidades MWIPS de PC a través de intérpretes y compiladores tempranos hasta lenguajes modernos. El primer compilador de PC fue para BASIC (1982) cuando una CPU 8088/87 de 4,8 MHz obtuvo 0,01 MWIPS. Los resultados en un Intel Core 2 Duo de 2,4 GHz (1 CPU 2007) varían de 9,7 MWIPS usando intérprete BASIC, 59 MWIPS a través de compilador BASIC, 347 MWIPS usando Fortran de 1987, 1.534 MWIPS a través de HTML/Java hasta 2.403 MWIPS usando un compilador moderno de C/C++.

Cronología de instrucciones por segundo

Véase también

Referencias

Related Articles

Wikiwand AI