Abstracciones y rendimiento de los sistemas informáticos

Descubre cómo se construye un sistema informático por capas, desde las aplicaciones y el sistema operativo, pasando por el conjunto de instrucciones, hasta las puertas lógicas y los transistores, y cómo una línea de código se convierte en instrucciones máquina. Después aprende a medir correctamente el rendimiento: tiempo de ejecución y productividad, tiempo de CPU, frecuencia de reloj y ciclos por instrucción, combinados en la ecuación de rendimiento. Usa la ley de Amdahl para predecir qué puede aportar realmente una mejora o la incorporación de núcleos al procesador, y descubre por qué los límites de potencia pusieron fin a la carrera por aumentar la frecuencia de reloj y llevaron a los procesadores multinúcleo.

IntermedioUnidad 1 de 6 del curso Curso de Organización y arquitectura de computadores

Lo que aprenderás

  1. Explica cómo las capas de abstracción conectan una aplicación con los transistores que la ejecutan, sigue una sentencia desde el código de alto nivel hasta las instrucciones máquina e identifica la arquitectura del conjunto de instrucciones como el contrato entre software y hardware.
    • Recorre las capas de abstracción desde las aplicaciones hasta los transistores
      Identifica las capas de un sistema informático, indica qué proporciona y qué oculta cada una y explica por qué la abstracción permite diseñar sistemas complejos.
    • Sigue un programa desde el código de alto nivel hasta las instrucciones máquina
      Describe cómo los compiladores, ensambladores, enlazadores y cargadores convierten un programa de alto nivel en instrucciones máquina binarias y sigue una sentencia hasta su patrón de bits.
    • Explica la arquitectura del conjunto de instrucciones como interfaz entre hardware y software
      Distingue la ISA, la interfaz binaria de aplicación y la implementación, y explica por qué una ISA puede tener muchas implementaciones con distinto rendimiento.
  2. Usa el tiempo de ejecución y la productividad para definir el rendimiento, compara correctamente dos sistemas informáticos y mide los tiempos que importan para un programa.
    • Compara sistemas informáticos mediante el tiempo de respuesta y la productividad
      Define el tiempo de respuesta y la productividad, expresa el rendimiento como el inverso del tiempo de ejecución e indica correctamente cuántas veces más rápido es un sistema informático que otro.
    • Mide el tiempo transcurrido, el tiempo de CPU y los ciclos de reloj
      Distingue el tiempo transcurrido del tiempo de CPU, interpreta mediciones de tiempo y convierte entre periodo y frecuencia de reloj con las unidades correctas.
  3. Relaciona el tiempo de CPU con el número de instrucciones ejecutadas, los ciclos por instrucción y la frecuencia de reloj, calcula cualquiera de ellos a partir de los demás y evalúa qué decisiones de diseño y afirmaciones sobre rendimiento cambian realmente el tiempo de ejecución.
    • Relaciona el tiempo de CPU con los ciclos de reloj y la frecuencia de reloj
      Calcula el tiempo de CPU a partir de los ciclos y la frecuencia de reloj, y resuelve problemas de diseño en los que una frecuencia de reloj mayor requiere ciclos adicionales.
    • Calcula el CPI a partir de una mezcla de instrucciones
      Define los ciclos por instrucción, calcula el CPI medio como media ponderada de las clases de instrucciones y úsalo para comparar secuencias de código.
    • Aplica la ecuación clásica de rendimiento
      Usa tiempo de CPU = número de instrucciones ejecutadas × CPI × duración del ciclo de reloj para calcular y comparar tiempos de ejecución, e identifica qué factores modifican el algoritmo, el lenguaje, el compilador, la ISA, la organización y la tecnología.
    • Evalúa las afirmaciones sobre rendimiento y los resúmenes de pruebas de rendimiento
      Explica por qué los MIPS y la frecuencia de reloj pueden inducir a error, cómo conjuntos de pruebas de rendimiento como SPEC CPU presentan los resultados como razones y por qué se usa la media geométrica para resumirlos.
  4. Calcula el factor de aceleración global cuando solo se acelera una parte de un programa, determina el límite de ese factor y aplica el mismo razonamiento a programas que se ejecutan en muchos núcleos de procesador.
    • Calcula el factor de aceleración global de una mejora
      Aplica la ley de Amdahl a una mejora parcial, determina la mejora necesaria para alcanzar un factor de aceleración deseado y reconoce cuándo un objetivo es imposible.
    • Usa la ley de Amdahl para analizar la aceleración con varios núcleos
      Calcula el factor de aceleración y la eficiencia de un programa parcialmente paralelo en muchos núcleos, explica por qué los factores de aceleración reales son menores y contrasta los problemas de tamaño fijo con los de tamaño creciente.
  5. Calcula cómo la tensión, la frecuencia y la capacitancia determinan la potencia y la energía de un chip, explica por qué el aumento de la potencia puso fin a la era de núcleos individuales cada vez más rápidos y explica por qué los procesadores pasaron a ser multinúcleo y qué exige esto al software.
    • Calcula la potencia dinámica y la energía dinámica en chips CMOS
      Usa las relaciones entre capacitancia, tensión, frecuencia, potencia y energía para estimar el efecto de cambios de diseño y distingue la potencia dinámica de la estática.
    • Explica el muro de potencia y el fin del escalado de Dennard
      Describe cómo la reducción del tamaño de los transistores permitió en otro tiempo aumentar las frecuencias de reloj con una densidad de potencia constante, y por qué las fugas y el límite de tensión frenaron el aumento de las frecuencias de reloj a partir de mediados de la década de 2000.
    • Explica por qué los procesadores pasaron a ser multinúcleo y qué exige esto al software
      Muestra con la ecuación de potencia por qué varios núcleos más lentos pueden superar a uno rápido y explica por qué obtener velocidad de los procesadores multinúcleo depende del software paralelo.

Guía de estudio de Rendimiento de los sistemas informáticos

5 capítulos

1

Conecta el software con el hardware

Una línea de código fuente cruza varias interfaces antes de que un procesador pueda ejecutarla. Las aplicaciones dependen del software de sistema, las instrucciones máquina dependen de una ISA y quienes diseñan hardware implementan esas instrucciones con lógica y transistores. Seguir ese camino permite separar el comportamiento requerido de un programa de las decisiones de diseño que determinan su velocidad, y entender por qué los procesadores compatibles pueden tener rendimientos muy distintos.

1.1 De las aplicaciones a los interruptores físicos

Una abstracción muestra qué hace un componente mientras oculta los detalles de cómo funciona. Un navegador puede pedir al sistema operativo que lea un archivo sin controlar los circuitos del dispositivo de almacenamiento. Las interfaces definidas permiten diseñar, probar y sustituir partes de un sistema sin reconstruir todas las capas a la vez.

Las capas y sus funciones

Un orden habitual, desde la tarea de la persona usuaria hasta los dispositivos físicos, es:

  1. El software de aplicación realiza tareas como editar una hoja de cálculo o navegar por la web.
  2. El software de sistema proporciona servicios compartidos y traduce programas. Incluye sistemas operativos, compiladores, ensambladores, enlazadores y bibliotecas.
  3. La arquitectura del conjunto de instrucciones (ISA) define las instrucciones máquina y otros comportamientos visibles para el software de bajo nivel.
  4. La microarquitectura, u organización, implementa esa ISA con un camino de datos, una unidad de control, cauces de segmentación y cachés.
  5. La lógica digital construye operaciones y almacenamiento a partir de puertas, sumadores, multiplexores y registros.
  6. Los circuitos conectan componentes electrónicos para realizar esa lógica.
  7. Los dispositivos, principalmente transistores, proporcionan el comportamiento de conmutación físico.

Estos límites son vistas útiles de una misma máquina. Distintos diagramas pueden agrupar capas contiguas. Un sistema operativo es software: la CPU ejecuta sus instrucciones, incluidas las instrucciones privilegiadas que le ayudan a gestionar los recursos de forma segura.

Sigue una suma

Considera la sentencia de C total = price + tax;. Un compilador elige dónde se almacenan los valores y qué instrucciones realizan la suma. Puede elegir una instrucción de suma sin diseñar un sumador. Quien diseña la microarquitectura asigna esa instrucción al hardware de ejecución. Quien diseña la lógica construye el sumador con puertas; quien diseña los circuitos se ocupa de los detalles eléctricos detrás de esas puertas. Cada persona usa una interfaz más sencilla hacia el nivel inferior.

El sistema informático físico tiene cinco componentes clásicos: entrada, salida, memoria, camino de datos y unidad de control. El camino de datos opera sobre los datos. La unidad de control dirige las operaciones y coordina la memoria y la entrada y salida. Juntos, el camino de datos y la unidad de control forman el procesador o CPU.

AlmacenamientoFunción principal¿Conserva los datos sin alimentación?
DRAMMemoria principal de trabajoNo
SRAMCachés pequeñas y rápidas cerca del procesadorNo
Flash o disco magnéticoAlmacenamiento secundarioSí

Un transistor actúa como un interruptor controlado eléctricamente. Un circuito integrado, o chip, une muchos transistores en una sola pieza de silicio. Esos interruptores permiten construir la lógica; la lógica permite implementar instrucciones; las instrucciones permiten ejecutar software.

Más transistores y distintas velocidades

La ley de Moore comenzó con la observación de Gordon Moore de 1965 y se revisó en 1975 para describir una tendencia a duplicar aproximadamente el número de transistores cada dos años. Diez duplicaciones de este tipo multiplican una cantidad por 210=1024, a lo largo de unos 20 años. Es una tendencia de fabricación, no una garantía física; su ritmo se ha reducido.

Cumplir una interfaz preserva el comportamiento que esta promete. No determina el rendimiento, el consumo de energía ni el coste. Dos procesadores pueden implementar correctamente la misma instrucción de suma mientras usan distintos circuitos, cachés y frecuencias de reloj. La aplicación obtiene el mismo resultado del cálculo, pero espera una cantidad de tiempo diferente.

Puntos clave

  • Una abstracción muestra un comportamiento útil y oculta los detalles de la implementación.
  • Las capas conectan las aplicaciones, el software de sistema, la ISA, la microarquitectura, la lógica, los circuitos y los dispositivos.
  • La CPU combina el camino de datos y la unidad de control; la memoria y la entrada y salida completan la visión clásica de cinco componentes.
  • La DRAM y la SRAM son volátiles; la memoria flash y los discos magnéticos conservan los datos sin alimentación.
  • La ley de Moore describe una tendencia en el número de transistores, no un crecimiento garantizado del rendimiento.
  • Las interfaces compatibles preservan el comportamiento especificado, mientras que la velocidad y la energía siguen dependiendo de las capas inferiores.

1.2 Cómo se convierte el código fuente en instrucciones

Un procesador ejecuta lenguaje máquina, instrucciones codificadas como bits. El código de alto nivel describe un cálculo mediante variables, expresiones, bucles y funciones. La traducción une estas dos formas de verlo y a menudo expande una sentencia corta en varias instrucciones.

El recorrido de un programa compilado

Para un programa en C, las etapas principales son:

EtapaEntrada y resultado
CompiladorTraduce el código fuente a ensamblador o directamente a código objeto
EnsambladorConvierte el ensamblador simbólico en código máquina dentro de un archivo objeto
EnlazadorCombina archivos objeto y código de bibliotecas, resolviendo referencias entre ellos
CargadorCarga el ejecutable en memoria e inicia el programa

Un archivo objeto puede contener código máquina sin ser todavía un programa ejecutable completo. Por ejemplo, una llamada a una función definida en otro archivo necesita que el enlazador resuelva esa referencia. El cargador forma parte del soporte del sistema operativo para la ejecución, no es otro traductor de código fuente.

Sigue una sentencia de C

Supón que price está en el registro x6, tax está en x7 y el compilador coloca total en x5. Entonces:

total = price + tax;

puede convertirse en esta instrucción de RISC-V:

add x5, x6, x7

El destino aparece primero en el texto ensamblador. La instrucción suma los valores de x6 y x7 y escribe el resultado en x5. Su codificación de tipo R de 32 bits coloca los campos en un orden diferente:

CampoSignificado aquíBits
funct7Selecciona la operación de suma junto con los demás campos de operación0000000
rs2Registro fuente 700111
rs1Registro fuente 600110
funct3Selector de operación000
rdRegistro destino 500101
opcodeFamilia de la instrucción0110011

Al unir los campos se obtiene 0000000 00111 00110 000 00101 0110011, o 0x007302B3. Los espacios hacen legibles los campos; no se almacenan como parte de la instrucción.

Una sentencia fuente no tiene por qué significar una sola instrucción. Incluso con todos los operandos en registros, f = (g + h) - (i + j); necesita dos sumas y una resta. Cargar operandos desde la memoria añade instrucciones. Por tanto, el número de instrucciones ejecutadas depende de la traducción y de la ISA, no solo del número de líneas de código fuente.

Otras vías hacia el código máquina

Un programa de alto nivel a menudo puede recompilarse para otra ISA. Su ejecutable existente está ligado a su ISA y a las convenciones del sistema operativo. Un ejecutable x86-64 necesita recompilación, emulación o traducción binaria para ejecutarse en una máquina Arm o RISC-V que no pueda ejecutarlo de forma nativa.

El código de bytes es un formato de instrucciones intermedio para un entorno de ejecución de un lenguaje. CPython compila el código fuente de Python a código de bytes y lo interpreta con un programa intérprete. Las máquinas virtuales de Java suelen usar compilación en tiempo de ejecución (JIT) para convertir en código máquina el código de bytes utilizado con frecuencia mientras se ejecuta el programa. En ambos casos, la CPU física acaba ejecutando instrucciones máquina.

El ensamblador sigue siendo texto, incluso cuando una línea se parece mucho a una instrucción real. Una pseudoinstrucción es una forma cómoda aceptada por el ensamblador: mv x5, x6 de RISC-V se convierte en addi x5, x6, 0. El control exacto de las instrucciones puede ser útil en el código del sistema operativo y en bucles críticos, pero renuncia a parte de la portabilidad y la libertad del compilador que ofrece el código de alto nivel.

Puntos clave

  • La compilación, el ensamblado, el enlace y la carga realizan tareas diferentes.
  • El ensamblador es texto simbólico; el código máquina es la codificación binaria que ejecuta el procesador.
  • Una sentencia de alto nivel puede ejecutar varias instrucciones, incluidas operaciones de memoria.
  • Los intérpretes y los compiladores JIT siguen dependiendo de instrucciones máquina a nivel de hardware.
  • Un programa fuente puede recompilarse para otra ISA; su ejecutable existente generalmente no es portable.

1.3 La ISA, la ABI y el diseño del procesador

La arquitectura del conjunto de instrucciones (ISA) es el contrato entre el hardware y el software de más bajo nivel. Indica a quien programa en lenguaje máquina qué operaciones existen y qué significan. El diseño interno de un procesador puede cambiar mientras ese contrato permanece estable.

Qué especifica el contrato

Una ISA define las instrucciones y sus codificaciones binarias, los registros visibles para quien programa, el comportamiento del direccionamiento, los tipos de datos admitidos y los mecanismos arquitectónicos usados para acceder a la entrada y salida. Un compilador se dirige a estas características cuando convierte un cálculo en instrucciones.

Una implementación es un diseño físico que cumple la ISA. Su microarquitectura describe decisiones internas como las unidades de ejecución, las etapas de segmentación, los tamaños de caché y la predicción de saltos. Esas decisiones afectan mucho al tiempo de ejecución.

PreguntaTipo de decisión
¿Existe una instrucción de multiplicación y qué resultado produce?ISA
¿Esa multiplicación tarda un ciclo o cuatro?Microarquitectura
¿Qué registros llevan los argumentos de las funciones?Convención de la ABI
¿Qué tamaño tiene la caché de primer nivel?Microarquitectura

La distinción se refiere al comportamiento prometido. Un programa debe recibir el resultado de multiplicación especificado. Por lo general, no necesita saber cómo se construyó el multiplicador para obtener ese resultado.

Por qué una ISA por sí sola no basta para la compatibilidad binaria

La interfaz binaria de aplicación (ABI) añade la interfaz del sistema operativo y las convenciones binarias a la parte de la ISA correspondiente al nivel de usuario. Especifica las convenciones de llamada, como los registros para argumentos, junto con la organización de los datos y las convenciones de llamadas al sistema. Dos máquinas pueden ejecutar las mismas codificaciones de instrucciones y, aun así, diferir en cómo recibe un argumento una función.

La compatibilidad binaria requiere que se admitan las características de la ISA y la ABI del programa. Incluso dentro de la familia x86, que comenzó con el 8086 de Intel en 1978, importan la compatibilidad con el sistema operativo y los modos de ejecución. La compatibilidad con versiones anteriores ha preservado muchos programas antiguos mientras cambiaban las implementaciones de los procesadores, pero compartir el nombre de una familia no garantiza que todos los ejecutables históricos funcionen en todos los entornos.

Una arquitectura, muchas implementaciones

Intel y AMD implementan x86-64 con distintos diseños internos. Arm y RISC-V también admiten implementaciones con presupuestos de potencia y rendimientos muy diferentes. RISC-V comenzó en la Universidad de California en Berkeley en 2010 y es una ISA abierta y libre de regalías. Sus conjuntos base de instrucciones para enteros incluyen RV32I y RV64I; las extensiones estándar incluyen M para multiplicación y división de enteros, y F y D para operaciones en coma flotante.

Un programa que usa una extensión opcional necesita una implementación que la admita. La existencia de una base compartida no hace que todas las extensiones sean universales. El ejemplo de suma de RISC-V ilustra la misma interfaz entre hardware y software que se encuentra en Arm y x86, aunque sus instrucciones y codificaciones son diferentes.

Riqueza de instrucciones y tiempo de ejecución

Una ISA puede expresar más trabajo en una instrucción, lo que reduce el número de instrucciones ejecutadas. Esa instrucción también puede tardar más ciclos o exigir un ciclo más largo. El cálculo relevante es el producto completo:

tiempo de CPU=nuˊmero de instrucciones ejecutadas×CPI×duracioˊn del ciclo.

Un conjunto de instrucciones más completo no basta para determinar qué máquina es más rápida. Tampoco una ISA compartida implica igual velocidad: los procesadores compatibles pueden usar distintos relojes, cachés y unidades de ejecución para producir los mismos resultados requeridos.

Puntos clave

  • La ISA especifica el comportamiento de la máquina visible para quien programa; la microarquitectura lo implementa.
  • La ABI añade las convenciones binarias y la interfaz del sistema operativo que necesitan los ejecutables.
  • La compatibilidad binaria requiere las características pertinentes de la ISA, el entorno de ejecución y la ABI.
  • RISC-V combina una ISA base para enteros con extensiones estándar opcionales.
  • La riqueza de instrucciones cambia los compromisos entre el número de instrucciones ejecutadas, el CPI y la duración del ciclo.
2

Mide el rendimiento que importa

El rendimiento empieza por el trabajo que se necesita completar: una tarea, un flujo de solicitudes o una combinación de ambos. La medida de tiempo adecuada depende de esa necesidad. Separa el tiempo que espera una persona del tiempo durante el que calcula un procesador y después convierte entre frecuencia de reloj y duración del ciclo. Estas distinciones evitan que un procesador rápido, un servidor de gran capacidad y una aplicación que responde con rapidez se conviertan en tres afirmaciones diferentes ocultas tras la misma palabra.

2.1 Tiempo para una tarea y trabajo por segundo

Una persona que espera la conversión de un archivo quiere un tiempo de respuesta corto. Un servicio que procesa muchas conversiones también necesita una productividad alta. Estas medidas responden a preguntas diferentes, incluso cuando ambas describen el mismo sistema informático.

Elige la magnitud que corresponde a la tarea

El tiempo de respuesta, también llamado tiempo de ejecución o latencia, abarca desde el inicio de la tarea hasta su finalización. Incluye el cálculo, los accesos a memoria y almacenamiento, la entrada y salida y la actividad pertinente del sistema operativo. Si la tarea espera en una cola después de enviarse, esa espera contribuye al tiempo de respuesta para la persona usuaria.

La productividad es el trabajo completado por unidad de tiempo. Sus unidades pueden ser solicitudes por segundo o tareas por hora. Una máquina puede completar muchas tareas por hora mientras cada tarea individual sigue tardando mucho tiempo.

NecesidadMedida útilMejora
Completar una solicitud interactivaTiempo de respuestaMenos segundos por solicitud
Procesar una gran carga de trabajo independienteProductividadMás solicitudes por segundo
Atender a muchas personas de forma aceptableAmbasMás trabajo completado con esperas aceptables

Añadir procesadores puede aumentar la productividad al ejecutar tareas independientes a la vez. No necesariamente reduce el cálculo de una tarea, aunque puede reducir el tiempo de espera por un procesador libre. Un procesador más rápido suele mejorar ambas medidas.

Compara el rendimiento en la dirección correcta

Para la misma tarea, define:

RendimientoX=1TX.

Si A tarda 10 s y B tarda 15 s, el rendimiento de A con respecto al de B es:

RendimientoARendimientoB=TBTA=1510=1,5.

A es 1,5 veces más rápido. El rendimiento de B es dos tercios del de A. Coloca el mayor tiempo de ejecución sobre el menor al indicar cuántas veces más rápida es la máquina más rápida.

Para una mejora, el factor de aceleración es el tiempo anterior dividido por el tiempo nuevo. Una compilación que pasa de 60 s a 48 s tiene un factor de aceleración de:

6048=1,25.

Su reducción de tiempo es:

60−4860=0,20=20%.

El rendimiento aumentó un 25 %, mientras que el tiempo disminuyó un 20 %. Estos porcentajes usan distintos denominadores. Decir «un 20 % más rápido» puede ocultar qué magnitud cambió; la razón y los tiempos medidos aclaran la afirmación.

Una productividad igual puede ocultar esperas diferentes

Un servicio que completa 1200 solicitudes por minuto ofrece 20 solicitudes por segundo. Esa tasa podría obtenerse procesando una solicitud cada 50 ms, con 50 ms por solicitud. También podría obtenerse procesando diez solicitudes en paralelo, cada una de 500 ms: diez tareas completadas cada medio segundo vuelven a dar 20 por segundo.

La segunda organización tiene la misma productividad, pero un tiempo de procesamiento por solicitud diez veces mayor. Un resultado de productividad por sí solo no permite determinar la latencia que experimenta una persona usuaria. Compara el mismo trabajo completado, indica el intervalo de tiempo y conserva las unidades al pasar de minutos a segundos.

Puntos clave

  • El tiempo de respuesta mide cuánto tarda una tarea; la productividad mide el trabajo completado por unidad de tiempo.
  • Para la misma tarea, el rendimiento es el inverso del tiempo de ejecución.
  • El factor de aceleración es el tiempo anterior dividido por el nuevo; la reducción porcentual del tiempo usa el tiempo anterior como denominador.
  • Los procesadores adicionales pueden aumentar la productividad sin reducir el cálculo de una tarea secuencial.
  • Una productividad igual puede coexistir con latencias de solicitud muy diferentes.

2.2 Interpreta resultados de tiempos y convierte unidades de reloj

Un cronómetro mide todo lo que ocurre entre el inicio y el final. La ecuación de rendimiento de la CPU mide el trabajo del procesador. Mantener separadas estas perspectivas evita atribuir a una mejora del procesador la reducción de un tiempo de espera que no puede eliminar.

Tiempo transcurrido y tiempo de procesador

El tiempo transcurrido, o tiempo de reloj de pared, incluye el cálculo, la espera de archivos o de la red y los intervalos en que se ejecutan otros procesos. El tiempo de CPU registra el tiempo de procesador atribuido a la tarea. El tiempo de CPU en modo usuario corresponde a la ejecución del código del programa; el tiempo de CPU en modo sistema corresponde a la ejecución de código del sistema operativo en su nombre.

Supón que el comando time de Unix informa «real 2,50 s, user 1,80 s, sys 0,20 s». El programa usó:

1,80+0,20=2,00 s

de tiempo de CPU. En este ejemplo de medición con un solo hilo, los 0,50 s restantes representan tiempo no atribuido a la ejecución en la CPU, como la espera o el tiempo en que el proceso dejó de estar planificado. Si una mejora del procesador reduce a la mitad la parte de CPU mientras esa espera permanece fija, el tiempo transcurrido pasa a ser:

0,50+2,002=1,50 s.

Reducir a la mitad los 2,50 s completos aceleraría incorrectamente también la espera. El rendimiento de la CPU suele centrarse en el tiempo en modo usuario; el rendimiento del sistema se evalúa usando el tiempo transcurrido con una carga del sistema controlada.

En un programa paralelo, el tiempo de CPU se suma entre sus hilos y núcleos. Cuatro núcleos que trabajan durante la mayor parte de un segundo pueden producir 3,6 s de tiempo en modo usuario durante 1,0 s de tiempo transcurrido. En ese caso, restar el tiempo de CPU sumado del tiempo transcurrido no mide la espera.

La frecuencia de reloj es el inverso del periodo

Un reloj da un ritmo temporal al hardware síncrono. El periodo de reloj se expresa en segundos por ciclo; la frecuencia de reloj, en ciclos por segundo:

periodo=1frecuencia.

A 4 GHz, la frecuencia es de cuatro mil millones de ciclos por segundo. Un ciclo dura:

14×109 s=0,25 ns=250 ps.

A 2,5 GHz el periodo es de 400 ps. En sentido contrario, 312,5 ps por ciclo dan:

1312,5×10−12 Hz=3,2 GHz.
Prefijo o unidadValor
GHz109 ciclos/s
ns10−9 s
ps10−12 s
KiB210=1024 bytes
GiB230=1 073 741 824 bytes

Los prefijos de tiempo y frecuencia usan potencias decimales. Los prefijos binarios de memoria usan potencias de dos. Etiquetas como «GB» a veces se usan de forma imprecisa para cantidades binarias, así que comprueba su significado antes de convertir un tamaño.

Interpreta una medición como el resultado de una ejecución

La frecuencia anunciada de un procesador no registra cada momento de la ejecución. El aumento temporal de frecuencia, la gestión de energía y la limitación térmica del rendimiento cambian la frecuencia. El contenido de la caché y la actividad en segundo plano también cambian el tiempo medido. Repetir una medición y comunicar un valor típico, como la mediana, ayuda a distinguir un resultado estable de una ejecución inusualmente favorable. Usa mediciones de tiempo y frecuencia del mismo intervalo de ejecución cuando las relaciones con el número de ciclos.

Puntos clave

  • El tiempo transcurrido incluye la espera; el tiempo de CPU incluye el tiempo en modo usuario más el tiempo en modo sistema atribuidos a la tarea.
  • El tiempo de CPU sumado entre varios núcleos puede superar el tiempo transcurrido.
  • El periodo y la frecuencia de reloj son inversos; usa de forma coherente los segundos, nanosegundos y picosegundos.
  • GHz usa potencias decimales de diez; KiB y GiB usan potencias binarias de dos.
  • El aumento temporal de frecuencia, la limitación térmica, las cachés y el trabajo en segundo plano pueden cambiar el resultado entre ejecuciones.
  • Una aceleración de la CPU reduce la parte de CPU del tiempo transcurrido, pero deja intactas las esperas no afectadas.
3

Calcula y compara el tiempo de CPU

El tiempo de CPU de un programa depende de cuántas instrucciones ejecuta, cuántos ciclos requieren esas instrucciones y cuánto dura cada ciclo. Estos factores pueden moverse en direcciones opuestas cuando cambia un compilador o un procesador. Analiza los presupuestos de ciclos y las mezclas de instrucciones antes de comparar tiempos de ejecución completos y después usa esas mismas relaciones para evaluar afirmaciones sobre frecuencia de reloj y tasa de instrucciones, así como resúmenes de pruebas de rendimiento.

3.1 Convierte un presupuesto de ciclos en tiempo de CPU

Un ciclo de reloj es una unidad de tiempo del procesador, no una instrucción. Algunas instrucciones necesitan muchos ciclos y la ejecución solapada puede completar varias instrucciones por ciclo. Empieza por el total de ciclos que necesita todo el programa.

Divide los ciclos por los ciclos por segundo

Si un programa necesita un número conocido de ciclos, su tiempo de CPU es:

T=ciclos×periodo=ciclosfrecuencia de reloj.

Para seis mil millones de ciclos a 3 GHz:

T=6×1093×109=2 s.

Las unidades explican la división: ciclos divididos por ciclos por segundo dan segundos. Multiplicar los ciclos por la frecuencia produciría ciclos al cuadrado por segundo, no una duración. Multiplicar por el periodo funciona porque su unidad es segundos por ciclo.

La misma ecuación permite encontrar otra incógnita. Multiplica el tiempo por la frecuencia para obtener los ciclos; divide los ciclos por el tiempo objetivo para encontrar la frecuencia necesaria. Mantén la frecuencia en Hz cuando el tiempo esté en segundos, o cancela explícitamente los factores correspondientes de miles de millones.

Cuando una frecuencia de reloj mayor requiere más ciclos

El procesador A ejecuta un programa en 10 s a 3 GHz. Su presupuesto de ciclos es:

10×3×109=3×1010 ciclos.

Un diseño propuesto B aumenta ese número de ciclos en un 20 %. Por tanto, B debe ejecutar:

1,2×3×1010=3,6×1010 ciclos.

Para terminar en 9 s, B necesita:

fB=3,6×10109=4×109 Hz=4 GHz.

La razón de frecuencias de reloj es cuatro tercios, aproximadamente 1,33. El factor de aceleración real es solo diez novenos, aproximadamente 1,11, porque B necesita más pulsos para terminar el trabajo. Tratar el número de ciclos anterior como si no cambiara predeciría una frecuencia de reloj demasiado baja para alcanzar el objetivo.

Compara un compromiso sin elegir un tamaño de programa

Supón que un diseño multiplica el número de ciclos anterior por un factor a y la frecuencia de reloj anterior por un factor b. Entonces:

TnuevoTanterior=ab.

El diseño es más rápido cuando el factor de crecimiento del número de ciclos es menor que el factor de crecimiento de la frecuencia. Si ambos crecen por el mismo factor, el tiempo de CPU no cambia. Esta razón es útil cuando una propuesta de diseño indica cambios porcentuales, pero no da un número absoluto de ciclos.

Por qué el periodo tiene un límite físico

Entre registros, las señales atraviesan la lógica combinacional y deben estabilizarse antes de que se capturen sus resultados. El camino necesario más lento es el camino crítico. La tecnología de los circuitos y la cantidad de trabajo asignada a una etapa limitan lo corto que puede ser un periodo de reloj seguro.

Quien diseña el sistema puede dividir el trabajo en etapas de segmentación más cortas para permitir una frecuencia de reloj mayor, pero la reorganización también puede cambiar el número de ciclos. Por tanto, más GHz es una afirmación sobre la frecuencia de los pulsos. Para establecer una mejora de rendimiento, combínala con los ciclos que el programa necesita realmente con ese diseño.

Puntos clave

  • El tiempo de CPU es igual a los ciclos multiplicados por el periodo del ciclo, o a los ciclos divididos por la frecuencia de reloj.
  • El tiempo multiplicado por la frecuencia de reloj da los ciclos; los ciclos divididos por el tiempo objetivo dan la frecuencia de reloj requerida.
  • Compara el factor del número de ciclos con el factor de la frecuencia cuando ambos cambian.
  • El camino crítico limita el periodo de reloj y reorganizar el trabajo puede cambiar el número de ciclos.

3.2 Pondera el CPI según las instrucciones ejecutadas

Los ciclos por instrucción (CPI) son los ciclos totales de CPU del programa divididos por el número de instrucciones ejecutadas. Es una media de una ejecución, por lo que puede ser fraccionaria y depende de qué instrucciones se ejecutan y de cómo interactúan con la máquina.

Suma los ciclos antes de calcular la media

Para clases de instrucciones con cantidades Ci y CPI por clase ci:

ciclos=∑iCici,CPI=∑iCici∑iCi.

De forma equivalente, multiplica el CPI de cada clase por su fracción del número de instrucciones ejecutadas y suma las contribuciones. Las fracciones deben describir las instrucciones ejecutadas, no las líneas de código fuente ni el número de tipos de instrucción.

Supón que las instrucciones de ALU tardan 1 ciclo, las cargas y almacenamientos tardan 4 y los saltos condicionales tardan 2. Una mezcla del 50 %, 30 % y 20 % da:

0,50(1)+0,30(4)+0,20(2)=0,50+1,20+0,40=2,1.

Para cinco mil millones de instrucciones a 3 GHz, el total es de 10,5 mil millones de ciclos y el tiempo de CPU es de 3,5 s. La media no ponderada de los costes de las tres clases, aproximadamente 2,33, es incorrecta: las clases no aparecen con la misma frecuencia.

Más instrucciones pueden suponer menos ciclos

Dos versiones de un compilador usan los mismos costes por clase:

ClaseCiclos por instrucciónVersión 1, millonesVersión 2, millones
ALU1400600
Carga y almacenamiento4300150
Salto condicional2100100

La versión 1 ejecuta 800 millones de instrucciones. Sus contribuciones en ciclos son 400, 1200 y 200 millones, con un total de 1800 millones. Su CPI es:

1800800=2,25.

La versión 2 ejecuta 850 millones de instrucciones. Sus contribuciones son 600, 600 y 200 millones, con un total de 1400 millones. Su CPI es:

1400850≈1,65.

A 3 GHz, los tiempos son 0,60 s y aproximadamente 0,467 s. La versión 2 es aproximadamente 1,29 veces más rápida pese a ejecutar 50 millones de instrucciones más. Sustituir muchas instrucciones de memoria costosas por más instrucciones de ALU de bajo coste puede hacer que ese intercambio compense.

El CPI corresponde a una carga de trabajo en una máquina

Las paradas de memoria, los fallos de caché, el comportamiento de los saltos y las decisiones del compilador cambian el CPI efectivo. Un único «CPI del procesador» no puede describir todos los programas. Los contadores de rendimiento del hardware o un simulador pueden medir los totales de instrucciones y ciclos de la carga de trabajo analizada.

Las instrucciones por ciclo (IPC) usan los mismos totales en orden inverso:

IPC=1CPI.

Un IPC de 2,5 da un CPI de 0,4. Varias instrucciones pueden solaparse en un procesador que emite y completa varias instrucciones por ciclo. Una media inferior a uno no significa que el recorrido completo de una instrucción individual termine en una fracción de un pulso de reloj.

Puntos clave

  • Calcula los ciclos totales sumando el número de instrucciones de cada clase multiplicado por su CPI.
  • El CPI medio pondera los costes de las clases según sus fracciones de instrucciones ejecutadas.
  • Una secuencia de instrucciones más larga puede ejecutarse más rápido si su número total de ciclos es menor.
  • El CPI depende del programa, del compilador y del comportamiento de la máquina durante la ejecución.
  • El IPC es el inverso del CPI; la ejecución solapada puede producir un CPI inferior a uno.

3.3 Combina el número de instrucciones ejecutadas, el CPI y la frecuencia de reloj

La ecuación de rendimiento de la CPU reúne los tres factores temporales:

T=I×CPI×tciclo=I×CPIf.

Aquí I cuenta las instrucciones ejecutadas y f es la frecuencia de reloj efectiva durante la ejecución. Las instrucciones multiplicadas por los ciclos por instrucción dan ciclos. Al dividirlos por los ciclos por segundo se obtienen segundos.

Calcula un tiempo y despeja una incógnita

Un programa ejecuta dos mil millones de instrucciones con un CPI de 1,5 en un procesador de 2,5 GHz. Primero calcula el total de ciclos y después conviértelo en tiempo:

2×109×1,5=3×109 ciclos, T=3×1092,5×109=1,2 s.

Para deducir el CPI a partir del tiempo medido, despeja en la misma ecuación:

CPI=TfI.

Para 1,6 mil millones de instrucciones en 0,8 s a 3,2 GHz, hay 2,56 mil millones de ciclos. Al dividir por 1,6 mil millones de instrucciones se obtiene un CPI de 1,6.

Compara productos completos

Dos procesadores ejecutan el mismo programa compilado con el mismo número de instrucciones. A tiene 4 GHz y un CPI de 1,8; B tiene 2,5 GHz y un CPI de 1,0. Su tiempo por instrucción es:

1,84×109=0,45 ns,1,02,5×109=0,40 ns.

B es 1,125 veces más rápido. Su menor CPI compensa con creces su reloj más lento. El número de instrucciones ejecutadas se cancela aquí porque es igual; no se cancelaría si los dos programas siguieran secuencias de instrucciones diferentes.

Del mismo modo, una opción del compilador que reduce el número de instrucciones ejecutadas en un 10 %, pero aumenta el CPI en un 15 %, a la misma frecuencia, cambia el tiempo por un factor de:

0,90×1,15=1,035.

El tiempo aumenta un 3,5 %. La reducción de instrucciones por sí sola apunta en la dirección equivocada.

Relaciona las decisiones de diseño con los factores
DecisiónFactores que puede cambiar
AlgoritmoNúmero de instrucciones ejecutadas y posiblemente CPI
Lenguaje de programación o compiladorNúmero de instrucciones ejecutadas y CPI
ISANúmero de instrucciones ejecutadas, CPI y frecuencia de reloj
OrganizaciónCPI y frecuencia de reloj
Tecnología de circuitosFrecuencia de reloj

Estas relaciones son útiles para el análisis, no son controles independientes que siempre puedan ajustarse sin consecuencias. Una caché reduce los ciclos de espera de memoria y disminuye el CPI efectivo. La segmentación solapa instrucciones sucesivas y puede reducir el CPI efectivo o permitir un periodo de reloj más corto. Estos cambios pueden introducir otros costes que aparecen en los totales medidos.

Mantén coherente el intervalo de medición

Mide el tiempo de CPU, el número de instrucciones ejecutadas, los ciclos y la frecuencia para el mismo trabajo. Los contadores o la simulación proporcionan los recuentos de instrucciones y ciclos. Los GHz nominales de un producto no registran la frecuencia de una ejecución que aumenta o reduce su velocidad. Cuando la frecuencia varía, la media correspondiente es el total de ciclos contados dividido por el tiempo de CPU de ese intervalo.

La ecuación predice el tiempo de ejecución de CPU. La espera por el almacenamiento o la red forma parte del tiempo transcurrido y debe incluirse por separado cuando ese es el resultado que necesita la persona usuaria.

Puntos clave

  • El tiempo de CPU es el número de instrucciones ejecutadas multiplicado por el CPI y dividido por la frecuencia de reloj.
  • Despeja en la ecuación para deducir el CPI, el número de instrucciones ejecutadas o la frecuencia requerida a partir de magnitudes medidas.
  • Cancela el número de instrucciones ejecutadas solo cuando las ejecuciones comparadas tienen el mismo número.
  • Los cambios en el compilador y el hardware pueden mejorar un factor mientras empeoran otro.
  • Usa la frecuencia y los recuentos de la misma ejecución, no una frecuencia de reloj anunciada.
  • Añade por separado las esperas no afectadas al predecir el tiempo transcurrido.

3.4 Evalúa puntuaciones de pruebas de rendimiento y afirmaciones sobre tasas de instrucciones

Una afirmación útil sobre rendimiento se refiere al trabajo que importa a la persona usuaria. Una prueba de rendimiento ejecuta una carga de trabajo elegida para medir el rendimiento. Un conjunto de pruebas de rendimiento toma muestras de varias cargas de trabajo cuando una aplicación no puede representar toda la necesidad.

Interpreta el tipo de resultado de SPEC

SPEC CPU 2026, publicado en mayo de 2026, sucede a SPEC CPU 2017. Sus conjuntos ponen a prueba procesadores, sistemas de memoria y compiladores. SPECspeed mide el tiempo de finalización de una copia de un programa; esa copia puede usar a su vez varios hilos. SPECrate mide la productividad usando varias copias. Los conjuntos de enteros y de coma flotante sirven para distintos tipos de carga de trabajo, y el producto también admite métricas de energía.

Una razón de velocidad para un solo programa compara el tiempo de referencia con el tiempo medido:

r=TreferenciaTmedido.

Un tiempo de referencia de 3000 s y un tiempo medido de 250 s dan 12. Cuanto mayor, mejor. Una razón de productividad incluye el número de copias completadas en el intervalo medido. Compara métricas del mismo tipo y la misma versión del conjunto; una puntuación de velocidad y una de productividad responden a preguntas diferentes.

Resume razones con una media geométrica

Para razones positivas, el conjunto usa:

G=r1r2⋯rnn.

Las razones 2, 8 y 4 dan un producto de 64 y una raíz cúbica de 4. Su media aritmética es aproximadamente 4,67, un resultado diferente.

La comparación mediante la media geométrica no depende de qué máquina de referencia determina las razones. Supón que X tarda 10 s y 40 s en dos programas, mientras que Y tarda 20 s y 25 s. Tiempos de referencia de 100 s para ambos dan razones de 10 y 2,5 para X, y de 5 y 4 para Y. Las medias geométricas son 5 y aproximadamente 4,47, por lo que X aventaja a Y por un factor de aproximadamente 1,12.

Cambia los tiempos de referencia a 50 s y 200 s: X obtiene razones de 5 y 5, Y obtiene 2,5 y 8. Sus medias geométricas siguen siendo 5 y aproximadamente 4,47. Las medias aritméticas, en cambio, pasan de 6,25 frente a 4,5 a 5 frente a 5,25, lo que invierte la clasificación. La normalización con respecto a la referencia no debe decidir qué máquina parece más rápida.

Por qué los MIPS pueden premiar el código más lento

Los MIPS, millones de instrucciones por segundo, son:

MIPS=ITCPU×106=fCPI×106.

Las instrucciones realizan distintas cantidades de trabajo útil en distintas ISA. Incluso en una máquina, los MIPS cambian con el programa, y una mayor tasa de instrucciones puede ir acompañada de un tiempo de ejecución más largo.

A 3 GHz, supón que las instrucciones de ALU, carga y almacenamiento y salto condicional cuestan 1, 4 y 2 ciclos. El código Q ejecuta 400, 300 y 100 millones de ellas: 800 millones de instrucciones, 1800 millones de ciclos, 0,60 s, unos 1333 MIPS. El código P ejecuta 1500, 100 y 100 millones: 1700 millones de instrucciones, 2100 millones de ciclos, 0,70 s, unos 2429 MIPS. P completa instrucciones más rápido, pero termina la tarea más tarde.

Las tasas máximas teóricas describen la capacidad ideal del hardware. Las cargas de trabajo reales pueden alcanzar mucho menos debido a dependencias, esperas de memoria y otros límites. Usa el tiempo real de la tarea para evaluar su rendimiento; la frecuencia, los MIPS y las tasas máximas teóricas solo explican partes concretas de este.

Puntos clave

  • Elige pruebas de rendimiento que representen la carga de trabajo prevista.
  • SPECspeed mide el tiempo de finalización de una copia; SPECrate mide la productividad entre copias.
  • Una razón mayor entre el tiempo de referencia y el tiempo medido indica mejor rendimiento.
  • Usa la media geométrica para resumir razones normalizadas positivas sin obtener clasificaciones que dependan de la referencia.
  • Los MIPS pueden aumentar mientras una tarea se vuelve más lenta, y las instrucciones de distintas ISA realizan cantidades de trabajo diferentes.
  • Las tasas máximas teóricas describen la capacidad ideal, no el tiempo de ejecución medido de una tarea.
4

Determina los límites de una mejora

Una mejora solo importa durante la parte de una tarea que puede aprovecharla. Una unidad aritmética más rápida no cambia las esperas de archivos, y los núcleos adicionales dejan el trabajo secuencial en un solo núcleo. La ley de Amdahl convierte esa división en un presupuesto de tiempo, lo que permite ver tanto las ganancias probables como los límites estrictos. El mismo razonamiento ayuda a elegir una optimización, razonar hacia atrás desde un objetivo y explicar por qué las cargas de trabajo paralelas de tamaño fijo y creciente cuentan historias diferentes.

4.1 Calcula la ganancia de mejorar una parte de una tarea

La ley de Amdahl comienza dividiendo el tiempo de ejecución original en una parte afectada y una parte no afectada. Acelera solo el tiempo afectado y después vuelve a sumar las partes. Esto evita aplicar una mejora local a un trabajo que no puede cambiar.

Construye el nuevo tiempo a partir de los tiempos anteriores

Si la parte afectada pasa a ser s veces más rápida:

Tnuevo=Tafectados+Tno afectado.

Sea f la fracción afectada del tiempo de ejecución original. Al dividir por el tiempo original se obtiene la forma del factor de aceleración:

S=1(1−f)+f/s.

Un programa de 120 s dedica 90 s a operaciones en coma flotante y 30 s a otras tareas. Por tanto, la fracción afectada es 0,75. Hacer que las operaciones en coma flotante sean tres veces más rápidas reduce su tiempo a 30 s:

Tnuevo=903+30=60 s,S=12060=2.

Las operaciones en coma flotante ganan un factor de tres; el programa completo gana un factor de dos. Los 30 s sin cambios explican la diferencia.

Razona hacia atrás desde un objetivo

Para terminar la misma tarea en 40 s, el trabajo sin cambios sigue necesitando 30 s. Solo quedan 10 s para la parte original de 90 s de operaciones en coma flotante. Por tanto:

40=90s+30,s=9010=9.

Un objetivo de 30 s dejaría cero tiempo para ese trabajo. Ninguna aceleración finita hace que una cantidad positiva de trabajo afectado tarde exactamente cero tiempo. A medida que el factor de aceleración local crece sin límite, el factor de aceleración global se aproxima a:

Slıˊmite=11−f.

Aquí el límite es 4, al que se aproxima desde abajo. Con una fracción no afectada de un medio, el límite es 2. Cuando todo el trabajo está afectado, no hay un tiempo positivo sin cambios que imponga un límite finito de este tipo.

Optimiza donde se emplea el tiempo

El principio hacer rápido el caso habitual significa identificar dónde se emplea realmente el tiempo de ejecución. El análisis del perfil de ejecución mide esa distribución. Duplicar la velocidad de una parte responsable del 60 % del tiempo da:

S=10,40+0,60/2≈1,43.

Una mejora de diez veces en una parte que ocupa el 10 % da solo:

S=10,90+0,10/10≈1,10.

Un gran factor local puede quedar por detrás de una mejora modesta aplicada a una parte mayor de la tarea.

La fracción afectada debe ser una fracción de tiempo. Si las cargas y los almacenamientos son el 30 % de las instrucciones, pero ocupan el 60 % de los ciclos, su fracción de tiempo con una frecuencia de reloj fija es 0,60. Contar todas las instrucciones por igual pasaría por alto su mayor coste.

Aplica la misma división a la espera

Para una tarea con 2,00 s de trabajo de CPU y 0,50 s de espera fija por archivos, duplicar la velocidad de la CPU da 1,50 s en total. Su factor de aceleración es aproximadamente 1,67. El mismo presupuesto de tiempo sirve para mejoras de hardware, software y entrada y salida: identifica exactamente qué tiempo original cambia antes de aplicar el factor.

Puntos clave

  • La ley de Amdahl acelera el tiempo afectado y deja el tiempo no afectado en el total.
  • La fracción afectada es una fracción del tiempo original, no de las instrucciones ni de las líneas de código fuente.
  • Usa el tiempo objetivo menos el tiempo no afectado para encontrar la mejora local requerida.
  • Una fracción no afectada positiva establece un límite del factor de aceleración igual a uno dividido por esa fracción.
  • El análisis del perfil de ejecución ayuda a identificar mejoras que afectan a una gran parte del tiempo de ejecución.

4.2 Estima el factor de aceleración y la eficiencia con varios núcleos

Más núcleos solo reducen el tiempo de una tarea cuando el trabajo puede ejecutarse al mismo tiempo. Divide el tiempo original de una tarea fija con un solo núcleo en una parte secuencial y una parte paralelizable, y después considera qué pueden cambiar los núcleos adicionales.

Ley de Amdahl para una tarea de tamaño fijo

Sea p la fracción paralelizable del tiempo original con un solo núcleo. Con una división perfecta entre N núcleos y sin sobrecoste:

S(N)=1(1−p)+p/N.

Para una fracción paralelizable de 0,95, la fracción secuencial es 0,05. Ocho núcleos dan:

S(8)=10,05+0,95/8≈5,93.

Con 100 núcleos el factor de aceleración es aproximadamente 16,8; con 1000 núcleos es aproximadamente 19,6. El 5 % secuencial mantiene el factor de aceleración para un tamaño fijo por debajo de 20, independientemente de cuántos núcleos se añadan.

La eficiencia paralela es el factor de aceleración dividido por el número de núcleos. La eficiencia con ocho núcleos es aproximadamente 0,74, o el 74 %. Con 100 núcleos es aproximadamente el 17 %. Un factor de aceleración mayor puede ir acompañado de una eficiencia menor porque cada núcleo adicional contribuye menos a la tarea fija.

Por qué las ganancias medidas pueden ser menores

El modelo ideal asigna partes iguales del trabajo paralelo y ningún coste de coordinación. Los programas reales se comunican y sincronizan, y algunos núcleos reciben más trabajo que otros.

Para 100 unidades iguales de trabajo independiente en cuatro núcleos idénticos, una asignación equilibrada da 25 unidades a cada uno. Si uno recibe 40 unidades mientras los demás terminan antes, la finalización debe esperar a ese núcleo más ocupado. El factor de aceleración es 100 dividido por 40, o 2,5, incluso antes de añadir los costes de comunicación. Sumar los tiempos de finalización anticipada de los demás núcleos no daría el tiempo de finalización: lo determina el último resultado necesario.

Un programa de un solo hilo no tiene una fracción paralelizable que distribuir. Más núcleos pueden seguir ejecutando otros programas y mejorar la productividad del sistema, pero no dividen automáticamente el flujo de instrucciones de ese programa.

El trabajo fijo y el trabajo creciente plantean preguntas distintas

La escalabilidad fuerte mantiene fijo el tamaño total del problema y pregunta cuánto más rápido pueden terminarlo más procesadores. La escalabilidad débil aumenta el trabajo total en proporción al número de procesadores, de modo que el trabajo por procesador permanece aproximadamente constante. Una simulación mayor puede usar una malla más fina mientras mantiene aproximadamente la misma carga de trabajo por procesador.

La ley de Gustafson describe el trabajo escalado cuando el tiempo secuencial permanece fijo mientras crece el trabajo paralelo. Su fracción secuencial s se mide en la ejecución paralela, a diferencia de la fracción original de Amdahl con un solo núcleo:

Sescalado=s+(1−s)N.

Para una fracción secuencial medida de 0,05 en 100 núcleos, el factor de aceleración escalado es 95,05. Esto no contradice el límite de Amdahl de 20 para una tarea fija cuya fracción secuencial original era del 5 %. El tamaño de la tarea y la base de medición de la fracción son diferentes.

El software paralelo debe exponer trabajo independiente, equilibrarlo y coordinar los resultados. Más hardware proporciona capacidad; la estructura del programa determina cuánto de esa capacidad reduce su tiempo de finalización.

Puntos clave

  • Para la escalabilidad ideal de tamaño fijo, divide solo el tiempo paralelizable original por el número de núcleos.
  • La fracción secuencial original determina el límite de aceleración multinúcleo de Amdahl.
  • La eficiencia paralela es el factor de aceleración dividido por el número de núcleos.
  • La comunicación, la sincronización y la distribución desigual del trabajo reducen las ganancias.
  • La escalabilidad fuerte fija el trabajo total; la escalabilidad débil mantiene aproximadamente fijo el trabajo por procesador.
  • La ley de Gustafson usa una fracción secuencial medida en la ejecución paralela para una carga de trabajo creciente.
5

Relaciona los límites de potencia con el diseño multinúcleo

Un procesador debe completar el trabajo dentro de un presupuesto tanto de tiempo como de potencia. La conmutación de los transistores consume energía, la tensión afecta mucho a ese coste y el calor limita la intensidad con que puede funcionar un chip. Relaciona estas cuestiones con el fin del escalado ideal de transistores y la transición hacia varios núcleos. El resultado explica por qué más transistores pueden seguir siendo útiles incluso cuando las frecuencias de reloj más altas por sí solas no pueden proporcionar la siguiente mejora de rendimiento.

5.1 Calcula la potencia de conmutación y la energía de una tarea

Los procesadores CMOS consumen energía cuando las señales conmutan y también por fugas mientras están alimentados. La energía dinámica está asociada a la conmutación; la potencia estática se consume incluso sin conmutación útil. Sus proporciones relativas dependen del chip y de su carga de trabajo.

La tensión tiene un efecto cuadrático

La energía asociada a una transición escala con la capacitancia y el cuadrado de la tensión de alimentación. Una expresión habitual usa la mitad de la capacitancia multiplicada por la tensión al cuadrado; un pulso completo de carga y descarga escala con la capacitancia multiplicada por la tensión al cuadrado. Para la potencia dinámica media, usa:

Pdinaˊmica=αCV2f.

Aquí C es la carga capacitiva, V es la tensión de alimentación, f es la frecuencia de reloj y α describe la actividad de conmutación según la convención de recuento elegida. Algunas convenciones absorben un factor de un medio en el factor de actividad. Los cálculos de razones funcionan correctamente cuando se mantiene coherente la convención de actividad.

Con capacitancia y actividad sin cambios, reducir tanto la tensión como la frecuencia en un 20 % da:

PnuevaPanterior=0,82×0,8=0,512.

La nueva potencia dinámica es el 51,2 % de la original. Reducir solo la tensión en un 10 % da un factor de 0,81, una reducción del 19 % en la potencia dinámica y la energía por transición.

Una tensión menor también ralentiza la conmutación de los transistores. El escalado dinámico de tensión y frecuencia (DVFS) ajusta la tensión y la frecuencia conjuntamente para que los circuitos puedan seguir funcionando a la velocidad elegida.

La potencia y la energía responden a preguntas diferentes

La potencia es una tasa, medida en vatios; un vatio es un julio por segundo. La energía para una tarea es la potencia media multiplicada por la duración:

E=PmediaT.
EjecuciónPotencia mediaTiempoEnergía
A20 W3 s60 J
B30 W1,5 s45 J

B consume más potencia durante la ejecución, pero usa menos energía para completar la tarea. La refrigeración debe gestionar la tasa de producción de calor; el uso de la batería y el consumo de electricidad acumulan energía a lo largo del tiempo.

Para un trabajo fijo con el mismo número de transiciones, tensión y actividad, reducir solo la frecuencia distribuye esas transiciones durante más tiempo. La potencia dinámica disminuye, pero la energía dinámica de la tarea no cambia. Reducir la tensión también reduce la energía de cada transición. Si la potencia estática persiste durante toda la ejecución más larga, reducir la velocidad puede incluso aumentar esa parte de la energía de la tarea.

Fugas y hardware inactivo

Los transistores nominalmente apagados siguen dejando pasar corriente de fuga. Los dispositivos más pequeños y las tensiones umbral más bajas hacen de las fugas un problema importante de diseño. La desconexión de la alimentación corta el suministro a una región inactiva para reducir su consumo estático.

Un servidor con poca carga puede seguir usando una fracción considerable de su potencia máxima. Hacer que el consumo siga al trabajo útil, lo que se llama proporcionalidad energética, es un objetivo de diseño. Terminar una tarea rápidamente y entrar en un estado de bajo consumo puede ahorrar energía al acortar el intervalo durante el que se consume potencia por fugas y otras actividades de fondo. Por tanto, el rendimiento y la eficiencia energética pueden mejorar juntos.

Puntos clave

  • La potencia dinámica escala con la actividad de conmutación, la capacitancia, el cuadrado de la tensión y la frecuencia.
  • La reducción de tensión disminuye la energía por transición y suele requerir un ajuste de frecuencia.
  • La energía de una tarea es la potencia media multiplicada por la duración; una ejecución de mayor potencia puede usar menos energía.
  • Reducir solo la frecuencia deja sin cambios la energía dinámica de una tarea con un número fijo de transiciones.
  • Las fugas causan potencia estática y la desconexión de la alimentación reduce el consumo en regiones inactivas.
  • Una utilización baja no garantiza una potencia baja; la proporcionalidad energética es un objetivo de diseño.

5.2 Por qué las frecuencias de reloj más altas encontraron un límite de potencia

Durante décadas, los transistores más pequeños aportaron tanto más dispositivos como una conmutación más rápida dentro de un presupuesto de calor manejable. El muro de potencia apareció cuando la tensión ya no pudo seguir bajando lo suficiente para mantener ese patrón. Esto cambió la forma en que quienes diseñan sistemas convertían los nuevos transistores en rendimiento útil.

La relación ideal del escalado de Dennard

En el modelo ideal de escalado desarrollado por Robert Dennard y sus colaboradores en 1974, sea un factor k>1 el que describe la reducción de tamaño. Las dimensiones, la capacitancia, la tensión y el retardo se dividen por ese factor. La frecuencia puede multiplicarse por el factor. Por tanto, la potencia dinámica por transistor cambia en:

1k×1k2×k=1k2.

El área por transistor también disminuye por el cuadrado del factor de reducción. La misma área puede contener esa cantidad adicional de transistores, lo que compensa la menor potencia por dispositivo. La densidad de potencia, vatios por unidad de área, permanece aproximadamente constante en este modelo ideal.

Para un factor de 1,4, la capacitancia y la tensión disminuyen aproximadamente a 0,71 de sus valores originales y la frecuencia aumenta por un factor de 1,4. La potencia por transistor disminuye aproximadamente a 0,51. Caben aproximadamente 1,96 veces más transistores, por lo que la potencia total en la misma área permanece aproximadamente igual.

Por qué la tensión dejó de seguir al tamaño

Los transistores necesitan un umbral de conmutación utilizable. Reducir demasiado la tensión umbral aumenta mucho las fugas. A mediados de la década de 2000, la tensión de alimentación ya no podía reducirse al mismo ritmo que las dimensiones de los transistores. Con una tensión casi fija, una frecuencia mayor aumenta la potencia dinámica, y colocar más transistores activos en un área aumenta el calor que hay que disipar.

Las cifras históricas muestran la escala del cambio anterior: las frecuencias de reloj de los equipos de escritorio aumentaron de unos 10 MHz a principios de la década de 1980 a 3,8 GHz en 2004, mientras que las tensiones de alimentación bajaron de aproximadamente 5 V hacia 1 V. Son valores históricos generales, no especificaciones universales. Alrededor de 100 W ya era un presupuesto de refrigeración difícil para muchos diseños de uso general de esa época.

La cancelación por Intel en 2004 del Pentium 4 de 4 GHz previsto y del diseño Tejas marcó ese giro hacia diseños que tenían en cuenta la potencia y hacia los procesadores de doble núcleo. Posteriormente, las frecuencias de reloj se mantuvieron en el orden de unos pocos gigahercios en lugar de seguir el rápido aumento anterior. La microarquitectura siguió mejorando el rendimiento de un solo núcleo, pero los aumentos de frecuencia aportaron mucho menos a la ganancia.

Gestiona el presupuesto térmico

La potencia de diseño térmico (TDP) es un objetivo de diseño térmico usado para dimensionar una solución de refrigeración bajo condiciones de funcionamiento especificadas. No es una medición instantánea de potencia ni un máximo universal. Cuando se alcanzan los límites térmicos, la limitación térmica del rendimiento reduce la velocidad de funcionamiento para disminuir el calor.

Si un chip contiene más hardware del que su presupuesto de potencia permite ejecutar conjuntamente a plena velocidad, algunas regiones deben ralentizarse o apagarse. El silicio oscuro da nombre a esta diferencia entre los transistores disponibles y el hardware activo que puede usarse simultáneamente.

La ley de Moore y el escalado de Dennard describen tendencias distintas: el número de transistores frente al comportamiento del escalado que tiene en cuenta la potencia. El fin del segundo no significó que el número de transistores dejara de crecer. El obstáculo para aumentar indefinidamente la frecuencia es principalmente la potencia y el calor, no una incapacidad repentina de los transistores para conmutar más rápido.

Puntos clave

  • El escalado ideal de Dennard reducía la tensión con el tamaño de los dispositivos y mantenía la densidad de potencia aproximadamente constante.
  • Las fugas y las restricciones de tensión umbral de conmutación impidieron que la tensión siguiera escalando de forma ideal.
  • Sin reducciones correspondientes de tensión, las frecuencias de reloj más altas y más dispositivos activos aumentan la densidad de potencia.
  • La TDP guía el diseño de la refrigeración en condiciones especificadas; la limitación térmica reduce la velocidad al alcanzar los límites térmicos.
  • El silicio oscuro describe hardware que no puede estar todo activo a plena velocidad dentro del presupuesto de potencia.
  • La tendencia del número de transistores de Moore es distinta de la relación de escalado de Dennard.

5.3 Usa más núcleos dentro de un presupuesto de potencia

Un procesador multinúcleo coloca varios núcleos en un solo chip. Cada núcleo ejecuta un flujo de instrucciones, mientras que los núcleos comparten la memoria principal y a menudo algunas cachés. Los diseños de uso general para equipos de escritorio y portátiles se orientaron hacia el doble núcleo alrededor de 2005–2006, a medida que aumentar la frecuencia de reloj de un solo núcleo se hacía cada vez más costoso en potencia.

Compara dos núcleos más lentos con uno más rápido

Considera un núcleo a 4 GHz y 1,2 V frente a dos núcleos a 3 GHz y 1,0 V. Mantén la misma capacitancia por núcleo y actividad de conmutación para esta comparación. La potencia dinámica relativa es:

2×(1,01,2)2×34≈1,04.

Con el mismo trabajo por ciclo y suficiente trabajo independiente para ambos núcleos, la productividad ideal cambia por un factor de:

2×34=1,5.

La pareja ofrece aproximadamente un 50 % más de productividad con aproximadamente un 4 % más de potencia dinámica. La reducción de tensión elevada al cuadrado hace asequible el núcleo adicional en este modelo. La potencia estática, los límites de la memoria compartida y los costes de coordinación siguen importando al evaluar un chip completo.

Para un programa secuencial que usa solo un núcleo nuevo, el rendimiento cae a tres cuartos del original con el mismo trabajo por ciclo. Tarda cuatro tercios del tiempo anterior. Combinar las dos frecuencias de 3 GHz en «6 GHz» ocultaría ese resultado: ninguno de los núcleos funciona a 6 GHz.

El software debe exponer el trabajo

Antes del muro de potencia, una frecuencia más alta y el solapamiento por hardware solían acelerar el código existente sin grandes cambios. Los núcleos adicionales necesitan flujos de instrucciones independientes. Un programa se beneficia de ellos dividiendo su trabajo en tareas concurrentes, equilibrando las asignaciones y coordinando los resultados. Las bibliotecas paralelas pueden proporcionar esa estructura, pero el trabajo debe seguir teniendo una forma paralela útil.

El paralelismo a nivel de instrucciones solapa instrucciones dentro de un flujo mediante técnicas de hardware y compilador como la segmentación y la emisión múltiple. El paralelismo a nivel de hilos ejecuta distintos hilos en varios núcleos. Son fuentes distintas de concurrencia: la primera no garantiza que un programa pueda ocupar todos los núcleos.

Las solicitudes independientes de un servidor proporcionan naturalmente muchos flujos, por lo que la arquitectura multinúcleo puede mejorar la productividad incluso cuando cada solicitud sigue siendo secuencial. Reducir el cálculo de una solicitud requiere paralelismo dentro de esa solicitud. Su fracción secuencial impone entonces el límite de Amdahl.

Dedica transistores a tipos de trabajo eficientes

Más transistores pueden permitir cachés más grandes, varios núcleos de propósito general o hardware especializado. Las GPU y los aceleradores de dominio específico se dirigen a cargas de trabajo como gráficos, aprendizaje automático y codificación de vídeo. Los chips también pueden combinar núcleos rápidos y de alta potencia con núcleos más pequeños y eficientes, como en los diseños big.LITTLE de Arm.

Con un presupuesto de potencia fijo, el rendimiento por vatio compara el rendimiento útil con la potencia consumida. SPEC CPU 2026 también admite mediciones de energía junto con métricas de rendimiento. Una buena decisión de diseño tiene en cuenta el tiempo de finalización de la carga de trabajo, su coste energético y la potencia que el sistema puede sostener.

Puntos clave

  • Los chips multinúcleo ejecutan varios flujos de instrucciones en núcleos separados.
  • Una tensión y una frecuencia menores por núcleo pueden mejorar la productividad total dentro de un presupuesto de potencia dinámica similar.
  • Una tarea secuencial no obtiene capacidad de ejecución adicional de los núcleos que no usa.
  • El solapamiento a nivel de instrucciones y el paralelismo a nivel de hilos son mecanismos diferentes.
  • Las solicitudes independientes pueden mejorar la productividad del sistema sin reducir el tiempo de cálculo de cada solicitud.
  • El hardware especializado y el que combina distintos núcleos ofrecen otras formas de usar los transistores eficientemente.

Ejemplos de Rendimiento de los sistemas informáticos

5 Lecciones Interactivas

1

Sigue un cálculo desde el código hasta el hardware

16 pasos
Sigue una suma a través de las capas del sistema, la traducción y las interfaces que permiten a distintos procesadores ejecutar software compatible.
  1. 1
    IntroducciónUna suma, varias perspectivas

    La sentencia de C total = price + tax; describe un resultado, pero deja sin especificar los registros, las codificaciones de instrucciones y los circuitos de conmutación. Esos detalles se encuentran en distintas capas, cada una de ellas una abstracción que oculta su funcionamiento tras una interfaz.

    Sigue la suma hacia abajo y después pregúntate qué debe coincidir para que un binario se ejecute en otra máquina: la ISA y sus convenciones. Esto separa el comportamiento en el que se basa el software de las decisiones de hardware que determinan su rendimiento.

  2. 2
    ExplicaciónUna interfaz oculta el trabajo interno

    Una abstracción expone un servicio útil mientras oculta su implementación interna. Una aplicación puede solicitar la lectura de un archivo sin controlar la electrónica del almacenamiento.

    Un recorrido descendente habitual es aplicaciones → software de sistema → ISA → microarquitectura → lógica digital → circuitos → transistores. Cada perspectiva hace manejable el sistema al proporcionar un límite en el que puede trabajar otra persona encargada del diseño.

  3. 3
    Ejemplo¿Quién elige cada aspecto de la suma?

    Para total = price + tax;, el compilador puede elegir registros y una instrucción de suma. No necesita diseñar las puertas del sumador.

    Quien diseña la microarquitectura elige el hardware de ejecución; quien diseña la lógica construye un sumador con puertas; quienes diseñan los circuitos se ocupan del comportamiento eléctrico. Cumplir las interfaces permite que cada decisión encaje en el cálculo completo sin exponer todos los detalles inferiores a quien programa.

  4. 4
    ConexiónSitúa los componentes físicos

    Los cinco componentes clásicos son entrada, salida, memoria, camino de datos y unidad de control. La CPU combina el camino de datos y la unidad de control: uno opera sobre los datos y la otra dirige el trabajo.

    La DRAM contiene la memoria de trabajo, la SRAM proporciona cachés pequeñas y rápidas y ambas son volátiles. La memoria flash y los discos magnéticos conservan los datos sin alimentación. Un sistema operativo gestiona estos recursos como software que se ejecuta en la CPU.

  5. 5
    DesafíoIdentifica la capa modificada

    Una persona de ingeniería sustituye las puertas dentro de un sumador. Sus instrucciones máquina siguen produciendo todos los mismos resultados requeridos. ¿Ha cambiado necesariamente la ISA? Explica tu respuesta.

    ---reveal---

    No. Ha cambiado la implementación de lógica digital. La ISA especifica el comportamiento visible de la suma; distintas disposiciones de puertas pueden cumplir esa misma especificación. Sin embargo, pueden diferir en retardo, potencia o área.

  6. 6
    Idea claveMás dispositivos no determinan el tiempo de una tarea

    Un transistor actúa como un interruptor controlado eléctricamente y un chip integra muchos dispositivos de este tipo. La ley de Moore describe la tendencia histórica a duplicar aproximadamente el número de transistores cada dos años.

    Diez duplicaciones dan un factor de 1024 a lo largo de unos 20 años. Esa tendencia de fabricación, cuyo ritmo se ha reducido, no determina con qué rapidez se ejecuta un programa. Los dispositivos añadidos siguen necesitando una organización útil y un presupuesto de potencia viable.

  7. 7
    ExplicaciónConstruye un ejecutable

    Un compilador traduce el código fuente de alto nivel a ensamblador o código objeto. Un ensamblador codifica el ensamblador en un archivo objeto. Un enlazador combina archivos objeto y código de bibliotecas, resolviendo las referencias entre ellos.

    Después, el cargador carga el ejecutable en memoria y lo inicia. Estas tareas son distintas: el código traducido puede seguir necesitando que se resuelva una referencia a una biblioteca antes de formar el ejecutable que se usa en la ejecución.

  8. 8
    EjemploSelecciona registros y una instrucción

    Supón que price se mantiene en x6, tax en x7 y el resultado debe estar en x5. La suma de C puede convertirse en:

    add x5, x6, x7
    

    El destino aparece primero en esta sintaxis de ensamblador. La instrucción lee los dos registros fuente, suma sus valores y escribe el resultado en el destino. El texto es una instrucción simbólica; el procesador necesita su codificación binaria.

  9. 9
    EjemploCodifica la misma suma

    Los campos de codificación de tipo R, en el orden de los bits almacenados, son:

    • funct7: 0000000
    • rs2: 00111
    • rs1: 00110
    • funct3: 000
    • rd: 00101
    • opcode: 0110011

    Al unirlos, codifican 0x007302B3. Los campos de los registros fuente preceden al campo de destino en la disposición de bits, aunque el destino aparece primero en el texto ensamblador. Las posiciones de los campos permiten al hardware interpretar los mismos bits de forma coherente.

  10. 10
    ConsejoCuenta operaciones, no líneas de código fuente

    Incluso con los operandos ya en registros, f = (g + h) - (i + j); necesita dos sumas y una resta. Las cargas añaden instrucciones cuando los datos están inicialmente en memoria.

    Una forma abreviada en ensamblador también puede ocultar una etapa de traducción: mv x5, x6 se convierte en addi x5, x6, 0. CPython interpreta código de bytes intermedio y Java suele usar compilación JIT, pero en todas las vías la CPU física acaba ejecutando instrucciones máquina.

  11. 11
    DesafíoLocaliza una función sin resolver

    El ensamblador se ha convertido en código objeto, pero una llamada sigue haciendo referencia a una función de otro archivo objeto. ¿Qué etapa gestiona esa referencia y qué etapa posterior inicia el programa?

    ---reveal---

    El enlazador resuelve la referencia al combinar los archivos objeto. Después, el cargador carga el ejecutable resultante en memoria y lo inicia. La carga no sustituye el trabajo de traducción y resolución de referencias de las etapas anteriores de construcción.

  12. 12
    ExplicaciónSepara el contrato de su implementación

    La ISA especifica instrucciones, codificaciones, registros, direccionamiento y otros comportamientos visibles de la máquina. La microarquitectura elige los cauces de segmentación, unidades de ejecución, cachés y estructuras relacionadas internas.

    Si existe la multiplicación y qué resultado devuelve son cuestiones de la ISA. Si esa multiplicación tarda un ciclo o cuatro es una cuestión de implementación. Por tanto, dos procesadores compatibles pueden calcular el mismo resultado a distintas velocidades.

  13. 13
    ConexiónAñade las convenciones binarias

    La ABI añade a la ISA de nivel de usuario las interfaces del sistema operativo y convenciones como los registros para argumentos y la organización de los datos. Un binario necesita tanto las características de las instrucciones que usa como un entorno de ejecución compatible.

    RISC-V ofrece las bases RV32I y RV64I más extensiones opcionales, incluidas M para multiplicación y división de enteros y F y D para coma flotante. Compartir una ISA base por sí sola no garantiza todas las extensiones ni la ABI que espera un programa.

  14. 14
    DesafíoDetermina qué requiere realmente la compatibilidad

    Un binario se ejecuta en una máquina nueva con un tamaño de caché diferente, pero falla en otra máquina que carece de una extensión de instrucciones que utiliza. ¿Qué explica los distintos resultados?

    ---reveal---

    El tamaño de la caché es una decisión de implementación que puede afectar a la velocidad mientras preserva el comportamiento requerido de la ISA. La extensión ausente elimina la compatibilidad con instrucciones que el binario necesita. Reutilizar un binario requiere las características pertinentes de la ISA y la ABI; las cachés idénticas no forman parte de ese requisito.

  15. 15
    DesafíoEvalúa la afirmación sobre instrucciones más potentes

    Una instrucción propuesta para una ISA sustituye varias instrucciones anteriores. Quien la diseña afirma que esto por sí solo demuestra que un programa será más rápido en la nueva máquina. ¿Qué más hay que comparar?

    ---reveal---

    Compara el número de instrucciones ejecutadas, los ciclos medios por instrucción y el periodo de reloj para la tarea completa. La nueva instrucción puede reducir el número de instrucciones mientras aumenta el coste en ciclos o requiere un periodo más largo. El beneficio de la traducción solo se convierte en una ganancia de rendimiento mediante el producto temporal completo.

  16. 16
    RepasoExamina el recorrido completo

    Una expresión fuente se convierte en instrucciones mediante la traducción y el enlace, y después se ejecuta en hardware que implementa una ISA. La ABI añade las convenciones necesarias para el entorno del ejecutable.

    Usa ese recorrido para localizar un cambio: las decisiones de código alteran el flujo de instrucciones; las decisiones de implementación alteran cómo se ejecuta. La compatibilidad se refiere al comportamiento requerido, mientras que el rendimiento depende del trabajo y los tiempos en todas las capas inferiores.

2

Elige e interpreta una medida de rendimiento

12 pasos
Compara el tiempo de una tarea con la productividad del sistema y después interpreta tiempos de CPU y convierte unidades de reloj.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónDecide qué significa completar el trabajo
  2. 2
    ExplicaciónMide una tarea o un flujo
  3. 3
    EjemploInvierte la razón de tiempos
  4. 4
    Desafío¿Puede una misma tasa implicar la misma espera?
  5. 5
    ExplicaciónInterpreta los tiempos real, user y system
  6. 6
    Idea claveLos segundos de CPU en paralelo se suman
  7. 7
    EjemploCalcula el inverso en segundos
  8. 8
    ConsejoMantén separados los prefijos decimales y binarios
  9. 9
    DesafíoDeduce un periodo de reloj
  10. 10
    ConsejoDescribe una ejecución real
  11. 11
    DesafíoPredice el tiempo transcurrido tras una mejora de la CPU
  12. 12
    RepasoAsigna la unidad correcta a la afirmación
3

Construye y comprueba una predicción del tiempo de CPU

21 pasos
Combina ciclos, mezcla de instrucciones y frecuencia de reloj, y después comprueba si las afirmaciones sobre rendimiento describen el trabajo completado.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónTres factores forman un tiempo de ejecución
  2. 2
    ExplicaciónEmpieza con el presupuesto de ciclos
  3. 3
    EjemploObtén los ciclos antes de cambiar el diseño
  4. 4
    ConexiónEl reloj no puede adelantarse a la lógica necesaria
  5. 5
    Desafío¿Es suficiente el aumento de frecuencia de reloj?
  6. 6
    ExplicaciónEl CPI es una media ponderada por la ejecución
  7. 7
    EjemploResuelve una mezcla de instrucciones
  8. 8
    EjemploUn flujo más largo puede tener un total de ciclos menor
  9. 9
    Idea claveEs posible una media inferior a uno
  10. 10
    DesafíoCalcula los ciclos y la tasa inversa
  11. 11
    ExplicaciónConvierte instrucciones en tiempo
  12. 12
    EjemploCompara dos números iguales de instrucciones ejecutadas
  13. 13
    ConexiónLocaliza el factor de diseño
  14. 14
    DesafíoObtén un CPI medido
  15. 15
    ExplicaciónElige la métrica de la prueba de rendimiento
  16. 16
    EjemploMultiplica las razones y después calcula la raíz
  17. 17
    DesafíoInterpreta una razón de productividad
  18. 18
    EjemploComprueba qué premia un resultado alto de MIPS
  19. 19
    ConsejoInterpreta las cifras máximas como capacidad
  20. 20
    DesafíoCombina los cambios del compilador y del hardware
  21. 21
    RepasoComprueba la afirmación completa
4

Determina qué parte limita el factor de aceleración

15 pasos
Usa presupuestos de tiempo para evaluar una mejora local, un factor de aceleración deseado y la ejecución paralela en más núcleos.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónMantén el trabajo sin cambios en el presupuesto
  2. 2
    ExplicaciónDivide el tiempo original antes de acelerarlo
  3. 3
    EjemploAcelera la parte de coma flotante
  4. 4
    EjemploRazona hacia atrás desde el tiempo objetivo
  5. 5
    Idea claveAnaliza el perfil de la parte costosa
  6. 6
    DesafíoElige la mejor mejora
  7. 7
    ExplicaciónUsa los núcleos solo para el tiempo paralelizable
  8. 8
    EjemploAñade muchos núcleos a una tarea paralelizable en un 95 %
  9. 9
    ExplicaciónDivide el factor de aceleración por los núcleos para hallar la eficiencia
  10. 10
    EjemploLa finalización espera al núcleo más ocupado
  11. 11
    DesafíoDetermina el efecto de la parte secuencial
  12. 12
    ConexiónCambia la pregunta cuando el trabajo crece
  13. 13
    DesafíoComprueba si dos afirmaciones se contradicen
  14. 14
    DesafíoIncluye el trabajo de CPU y la espera de archivos
  15. 15
    RepasoDetermina primero el tiempo restante
5

Explica el muro de potencia y la respuesta multinúcleo

19 pasos
Calcula la potencia dinámica y la energía, sigue el fin del escalado ideal y comprueba el beneficio de núcleos más lentos.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónEl rendimiento tiene un presupuesto de calor
  2. 2
    ExplicaciónCuenta la conmutación y las fugas por separado
  3. 3
    EjemploAplica el cuadrado de la tensión
  4. 4
    EjemploCompara la energía durante una tarea completa
  5. 5
    Idea claveUna frecuencia menor no elimina transiciones
  6. 6
    DesafíoMantén sin cambios el componente estático
  7. 7
    ExplicaciónLa reducción ideal mantuvo estable la densidad de potencia
  8. 8
    EjemploComprueba una generación tecnológica ideal
  9. 9
    ExplicaciónLa tensión no pudo seguir al tamaño
  10. 10
    ConexiónInterpreta los límites térmicos como restricciones de funcionamiento
  11. 11
    DesafíoDiagnostica el fallo del escalado
  12. 12
    ExplicaciónMás núcleos proporcionan flujos separados
  13. 13
    EjemploCalcula el coste en potencia dinámica de dos núcleos más lentos
  14. 14
    EjemploPregunta si la carga de trabajo puede usar la pareja
  15. 15
    ConexiónDistingue el solapamiento de instrucciones y el de hilos
  16. 16
    ConexiónUsa hardware especializado para el trabajo adecuado
  17. 17
    DesafíoElige un diseño para trabajo independiente
  18. 18
    DesafíoCombina la reducción de velocidad, la energía y el tiempo de finalización
  19. 19
    RepasoAdapta el diseño a su trabajo útil

Ejercicios de Rendimiento de los sistemas informáticos

50 Preguntas de Práctica en 5 sets

Set 1: Relaciona las capas y las medidas básicas de rendimiento10 Preguntas de Práctica

Pregunta 1 de 10

Una persona que desarrolla software trata la lectura de un archivo como un servicio del sistema operativo sin controlar la electrónica del almacenamiento. ¿Qué idea hace posible esa separación?
  1. La compilación a un nuevo conjunto de instrucciones
  2. La incorporación de almacenamiento físico a la memoria principal
  3. La abstracción mediante una interfaz definida
  4. La combinación del camino de datos y la lógica de control
Mostrar respuestaOcultar respuesta
Respuesta: C
La abstracción expone el servicio que necesita quien desarrolla el programa mientras oculta su implementación. La interfaz del sistema operativo permite al programa solicitar la lectura de un archivo sin gestionar los circuitos del dispositivo. La compilación traduce código, pero no es la idea que explica por qué un servicio puede ocultar sus detalles internos.

Pregunta 2 de 10

Un archivo objeto llama a una función definida en otro archivo objeto. ¿Qué herramienta resuelve esa referencia al construir el ejecutable?
  1. El enlazador
  2. El compilador
  3. El ensamblador
  4. El cargador
Mostrar respuestaOcultar respuesta
Respuesta: A
El enlazador combina archivos objeto y resuelve referencias entre su código y sus datos. Un ensamblador puede producir código máquina dejando sin resolver una referencia a una función externa. El cargador inicia el ejecutable resultante; no sustituye la etapa de enlace descrita aquí.

Pregunta 3 de 10

Un servicio completa 1800 tareas en 90 s. ¿Cuál es su productividad?
  1. 30 tareas/s
  2. 0,05 tareas/s
  3. 1710 tareas/s
  4. 20 tareas/s
Mostrar respuestaOcultar respuesta
Respuesta: D
La productividad es el trabajo completado dividido por el intervalo de tiempo, por lo que 1800 dividido por 90 da 20 tareas por segundo. Dividir en el sentido contrario da 0,05 segundos por tarea, un tiempo por tarea completada. Ese inverso no es una productividad en tareas por segundo.

Pregunta 4 de 10

La misma conversión tarda 18 s en la máquina L y 12 s en la máquina M. ¿Cómo se comparan el rendimiento y el tiempo de ejecución de M con los de L?
  1. 1,5 veces el rendimiento; 50,0 % menos de tiempo
  2. 1,5 veces el rendimiento; 33,3 % menos de tiempo
  3. 0,67 veces el rendimiento; 33,3 % menos de tiempo
  4. 1,33 veces el rendimiento; 25,0 % menos de tiempo
Mostrar respuestaOcultar respuesta
Respuesta: B
El rendimiento es el inverso del tiempo, por lo que M tiene 18 dividido por 12, es decir, 1,5 veces el rendimiento de L. La reducción del tiempo es 6 dividido por los 18 originales, aproximadamente el 33,3 %. Un aumento del rendimiento del 50 % no significa una reducción del tiempo del 50 %, porque los dos porcentajes tienen distintos denominadores.

Pregunta 5 de 10

Un informe de tiempos de un solo hilo indica «real 4,4 s, user 2,7 s, sys 0,5 s». ¿Qué tiempo de CPU se atribuye a esta tarea?
  1. 4,4 s
  2. 3,2 s
  3. 2,7 s
  4. 1,2 s
Mostrar respuestaOcultar respuesta
Respuesta: B
El tiempo de CPU incluye tanto la ejecución en modo usuario como la ejecución del sistema operativo en nombre de la tarea, lo que da 2,7 más 0,5, es decir, 3,2 s. Tomar solo 2,7 s omite el tiempo de CPU en modo sistema. Los 4,4 s de tiempo transcurrido también incluyen intervalos en los que la tarea no usa el procesador.

Pregunta 6 de 10

Una tarea usa 7,5 mil millones de ciclos a una frecuencia constante de 2,5 GHz. ¿Cuál es su tiempo de CPU?
  1. 3,0 s
  2. 0,3 s
  3. 5,0 s
  4. 18,75 s
Mostrar respuestaOcultar respuesta
Respuesta: A
Divide 7,5 mil millones de ciclos por 2,5 mil millones de ciclos por segundo para obtener 3,0 s. Multiplicar los dos números da 18,75, pero no produce una duración. El número de ciclos debe multiplicarse por los segundos por ciclo o dividirse por los ciclos por segundo.

Pregunta 7 de 10

Un programa ejecuta un 70 % de instrucciones de ALU de 1 ciclo cada una y un 30 % de instrucciones de memoria de 5 ciclos cada una. ¿Cuál es su CPI medio?
  1. 3,0
  2. 1,8
  3. 2,5
  4. 2,2
Mostrar respuestaOcultar respuesta
Respuesta: D
Pondera cada coste en ciclos por su fracción de instrucciones: 0,70 por 1 más 0,30 por 5 da 2,2 ciclos por instrucción. La media simple de los costes de las clases es 3,0, pero trata ambas clases como si fueran igual de frecuentes. Sus números de instrucciones ejecutadas son distintos.

Pregunta 8 de 10

Una tarea ejecuta originalmente 1,5 mil millones de instrucciones con un CPI de 2,0 y a 3 GHz. Un código nuevo ejecuta 1,2 mil millones de instrucciones con un CPI de 2,8. ¿Qué frecuencia de reloj constante haría que el código nuevo terminara un 20 % antes que el original?
  1. 3,36 GHz
  2. 3,5 GHz
  3. 4,2 GHz
  4. 4,0 GHz
Mostrar respuestaOcultar respuesta
Respuesta: C
El tiempo original es 1,0 s, por lo que el objetivo es 0,8 s. El código nuevo requiere 1,2 por 2,8, es decir, 3,36 mil millones de ciclos; al dividir por 0,8 s se obtienen 4,2 GHz. Una frecuencia de 3,36 GHz solo recupera el tiempo original de 1,0 s y no alcanza la mejora solicitada.

Pregunta 9 de 10

Una tarea de 100 s dedica 40 s a una rutina. La rutina pasa a ser cuatro veces más rápida y todo el trabajo restante permanece sin cambios. ¿Cuál es el nuevo tiempo de la tarea?
  1. 25 s
  2. 85 s
  3. 70 s
  4. 60 s
Mostrar respuestaOcultar respuesta
Respuesta: C
Los 40 s de la rutina pasan a ser 10 s, mientras que el trabajo no afectado sigue tardando 60 s, lo que da 70 s en total. Dividir los 100 s completos por cuatro aceleraría incorrectamente la parte sin cambios. Un factor de aceleración local solo se aplica al tiempo original dedicado a la rutina mejorada.

Pregunta 10 de 10

Un diseño CMOS reduce la tensión al 90 % y la frecuencia al 80 % de sus valores anteriores, sin cambiar la capacitancia ni la actividad. ¿Qué fracción de la potencia dinámica original permanece?
  1. 0,648
  2. 0,720
  3. 0,810
  4. 0,576
Mostrar respuestaOcultar respuesta
Respuesta: A
La potencia dinámica escala con el cuadrado de la tensión y con la frecuencia, por lo que la razón es 0,90 al cuadrado por 0,80, es decir, 0,648. Multiplicar directamente la tensión y la frecuencia da 0,720 y omite el efecto cuadrático de la tensión. El resultado se refiere a la potencia dinámica; no se proporciona ningún valor de potencia estática.
Set 2: Interpreta cargas de trabajo, mezclas y cambios de diseño10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

Una persona que diseña un sumador cambia las puertas usadas en su interior mientras mantiene sin cambios todos los resultados visibles para la ISA. ¿A qué capa pertenece el cambio a nivel de puertas?
  1. Aplicaciones
  2. Lógica digital
  3. Software del sistema
  4. Convenciones de la ABI
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Un compilador ya ha generado texto ensamblador y el programa todavía necesita una función de una biblioteca externa. ¿Cuáles son las siguientes etapas principales antes de que comience la ejecución?
  1. Enlace, compilación y después carga
  2. Carga, ensamblado y después enlace
  3. Ensamblado, carga y después enlace
  4. Ensamblado, enlace y después carga
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Una ejecución usa cuatro núcleos e informa de 2,0 s de tiempo transcurrido y 6,8 s de tiempo de CPU combinado en modo usuario y en modo sistema. ¿Qué muestra ese informe?
  1. Un trabajo de CPU equivalente a 3,4 núcleos de media
  2. Un resultado de medición físicamente imposible
  3. Exactamente 4,8 s de espera por almacenamiento
  4. Una frecuencia de 3,4 GHz por núcleo activo
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Un procesador completa una media de 2 instrucciones por ciclo durante una ejecución. ¿Cuál es el CPI correspondiente?
  1. 2,0
  2. 1,0
  3. 0,5
  4. 0,2
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

En un procesador de frecuencia fija, las instrucciones de ALU cuestan 1 ciclo y las instrucciones de memoria cuestan 4. La versión compilada U ejecuta 600 millones de instrucciones de ALU y 200 millones de memoria; la versión V ejecuta 900 millones de ALU y 100 millones de memoria. ¿Qué versión termina primero y con qué factor de aceleración?
  1. V; aproximadamente 1,077 veces más rápida
  2. U; aproximadamente 1,250 veces más rápida
  3. V; aproximadamente 1,400 veces más rápida
  4. U; aproximadamente 1,077 veces más rápida
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Tres programas producen razones de velocidad normalizadas de 1, 4 y 16. ¿Qué puntuación de media geométrica las resume?
  1. 7
  2. 8
  3. 4
  4. 16
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Una tarea fija tarda 160 s en un núcleo, incluidos 40 s que deben seguir siendo secuenciales. En ocho núcleos, su trabajo paralelo se divide de manera uniforme y la coordinación añade 5 s después del trabajo. ¿Cuáles son el factor de aceleración global y la eficiencia paralela?
  1. Aproximadamente 2,91 y 36,4 %
  2. Aproximadamente 3,20 y 40,0 %
  3. Aproximadamente 2,67 y 66,7 %
  4. Aproximadamente 2,67 y 33,3 %
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

¿Qué cambio rompió el patrón de escalado ideal que había permitido frecuencias de reloj mayores con una densidad de potencia aproximadamente constante?
  1. El número de transistores dejó de crecer en todos los chips
  2. La tensión dejó de bajar al ritmo del tamaño de los dispositivos
  3. Los periodos de reloj dejaron de depender del retardo de los circuitos
  4. El número de instrucciones quedó fijado por las líneas de código fuente
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Un chip sustituye un núcleo de 3 GHz por cuatro núcleos de 3 GHz con el mismo rendimiento por núcleo. Una tarea completamente secuencial no tenía demora en cola. ¿Cómo afecta el cambio del número de núcleos al tiempo de cálculo de esa tarea?
  1. Se reduce a una cuarta parte
  2. Permanece igual en un núcleo
  3. Se reduce a tres cuartas partes
  4. Aumenta a cuatro veces el tiempo
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Un procesador completa 1,8 mil millones de instrucciones en 1,2 segundos de CPU y los contadores registran 3,6 mil millones de ciclos. Un informe indica que el procesador es de «3,6 GHz». ¿Qué CPI y frecuencia media efectiva describen esta ejecución?
  1. CPI 2,0 y 3,0 GHz
  2. CPI 1,5 y 3,6 GHz
  3. CPI 2,4 y 3,6 GHz
  4. CPI 2,0 y 4,32 GHz
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 3: Encuentra cuellos de botella y compara diseños completos10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

Dos procesadores admiten la misma ISA de nivel de usuario y las mismas extensiones, pero sus sistemas operativos usan distintas convenciones de llamada y de llamadas al sistema. ¿Por qué no está garantizado que un binario de un entorno se ejecute sin cambios en el otro?
  1. Sus ABI difieren pese a compartir la ISA
  2. Sus tamaños de caché deben ser idénticos
  3. Sus ISA deben usar codificaciones de suma distintas
  4. Sus frecuencias de reloj deben coincidir para ser compatibles
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Una parte sin cambios de una tarea ocupa el 25 % de su tiempo original. ¿A qué factor de aceleración global se aproxima la aceleración de solo la parte restante cuando su factor de aceleración local crece sin límite?
  1. 3
  2. 2,5
  3. 4
  4. 5
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Un diseño necesita un 15 % más de ciclos para un programa, pero aumenta su frecuencia de reloj en un 25 %. ¿Cuál es su nuevo tiempo de CPU como fracción del tiempo de CPU anterior?
  1. 0,80
  2. 1,10
  3. 1,4375
  4. 0,92
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

El periodo de un reloj se reduce de 625 ps a 500 ps. ¿Cuáles son su nueva frecuencia y el aumento porcentual de la frecuencia?
  1. 2,0 GHz; un 20 % mayor
  2. 2,0 GHz; un 25 % mayor
  3. 1,6 GHz; un 25 % mayor
  4. 1,6 GHz; un 20 % mayor
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Para la misma tarea en un procesador, la versión compilada H informa de 2000 MIPS y 0,9 s de CPU; la versión J informa de 1500 MIPS y 0,8 s de CPU. ¿Qué establece la comparación?
  1. H ejecuta un 33 % más de instrucciones y es más rápida
  2. H ejecuta un 50 % más de instrucciones y es más lenta
  3. H ejecuta un 50 % más de instrucciones y es más rápida
  4. H ejecuta un 33 % más de instrucciones y es más lenta
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Una tarea de 200 s dedica 120 s a una rutina que puede acelerarse. Una persona que diseña el sistema promete un factor de aceleración global de tres cambiando solo esa rutina. ¿Cómo debe evaluarse la promesa?
  1. Viable; un factor de aceleración local de tres alcanza el objetivo
  2. Viable; un factor de aceleración local de seis alcanza el objetivo
  3. Posible solo si el tiempo de la rutina llega exactamente a cero
  4. Imposible; los 80 s sin cambios superan el tiempo objetivo
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Un programa alcanza un factor de aceleración de 6 en 10 núcleos. ¿Cuál es su eficiencia paralela?
  1. 60%
  2. 40%
  3. 67%
  4. 6%
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Con tensión fija, una tarea tarda 2 s con 40 W de potencia dinámica y 10 W de potencia estática. Reducir la frecuencia a la mitad duplica su duración y reduce a la mitad la potencia dinámica, mientras que la potencia estática sigue siendo 10 W. ¿Cuál es la nueva energía total de la tarea?
  1. 80 J, que son 20 J menos
  2. 100 J, que no cambia
  3. 120 J, que son 20 J más
  4. 200 J, que son 100 J más
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

En una reducción ideal de Dennard por un factor de 2, ¿cómo cambian la potencia por transistor y la densidad de transistores?
  1. La potencia pasa a la mitad; la densidad se duplica
  2. La potencia pasa a un cuarto; la densidad se cuadruplica
  3. La potencia no cambia; la densidad se cuadruplica
  4. La potencia pasa a un octavo; la densidad se cuadruplica
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Un núcleo de 4 GHz a 1,2 V se sustituye por dos núcleos de 3 GHz a 1,0 V, con igual capacitancia y actividad por núcleo e igual trabajo por ciclo. Una carga de trabajo tiene una fracción paralelizable del 80 % en el núcleo original. Sin sobrecoste, ¿cómo se compara su nuevo tiempo de finalización con el anterior?
  1. 0,67 veces el tiempo anterior
  2. 0,75 veces el tiempo anterior
  3. 0,80 veces el tiempo anterior
  4. 1,33 veces el tiempo anterior
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 4: Analiza afirmaciones y reconstruye magnitudes que faltan10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

Una aplicación produce los mismos resultados en dos sistemas informáticos compatibles, pero el trabajo que hace un uso intensivo de la memoria es mucho más lento en uno de ellos. ¿Cómo puede explicar la abstracción ambas observaciones?
  1. Las interfaces requieren hardware idéntico cuando coinciden los resultados
  2. Los tiempos distintos muestran que la aplicación debe usar otra ISA
  3. La especificación del lenguaje de alto nivel fija el rendimiento de la memoria
  4. Las interfaces preservan el comportamiento requerido mientras los diseños de capas inferiores afectan al tiempo
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

En ensamblador de RISC-V, mv x9, x10 puede ensamblarse como addi x9, x10, 0. ¿Qué tipo de construcción de ensamblador es mv aquí?
  1. Una interfaz de llamada al sistema
  2. Una pseudoinstrucción
  3. Un formato de archivo binario
  4. Un ciclo de reloj del hardware
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Una tarea de un solo hilo informa de 9 s de tiempo transcurrido, 5 s en modo usuario y 1 s en modo sistema. Una mejora duplica la velocidad de la CPU; otra reduce a la mitad el tiempo ajeno a la CPU. Todos los demás tiempos permanecen fijos. ¿Qué tiempo transcurrido resulta al aplicar ambas mejoras?
  1. 4,5 s
  2. 3,0 s
  3. 4,0 s
  4. 6,0 s
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Un procesador de 2,4 GHz ejecuta una tarea en 5 s. Un procesador de reemplazo necesita un 30 % más de ciclos y tiene un periodo de reloj de 250 ps. ¿Cuáles son el tiempo de CPU del reemplazo y el factor de aceleración de la tarea?
  1. 3,0 s y aproximadamente 1,67
  2. 6,5 s y aproximadamente 0,77
  3. 3,9 s y aproximadamente 1,28
  4. 3,9 s y aproximadamente 0,78
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Un programa usa la extensión M de RISC-V y una ABI concreta del sistema operativo. Una máquina nueva admite las mismas convenciones de ABI, pero solo la ISA base RV64I. ¿Qué compatibilidad nativa adicional necesita el binario?
  1. Una capacidad idéntica de caché de primer nivel
  2. Compatibilidad con sus instrucciones de la extensión M
  3. Una frecuencia de reloj igual a la de la máquina original
  4. Un compilador que genere exactamente tantas instrucciones
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Dos programas tardan 8 s y 32 s en X, y 16 s y 18 s en Y. Usando la media geométrica de sus razones de velocidad por programa, ¿cómo se compara X con Y?
  1. X es aproximadamente 1,281 veces más rápido
  2. Y es aproximadamente 1,061 veces más rápido
  3. X es aproximadamente 1,061 veces más rápido
  4. Y es aproximadamente 1,176 veces más rápido
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Una prueba de productividad usa un tiempo de referencia de 240 s y completa seis copias en un intervalo medido de 120 s. ¿Cuál es la razón de productividad?
  1. 12
  2. 2
  3. 6
  4. 3
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Una tarea fija contiene un 10 % de trabajo secuencial. Una persona que diseña el sistema quiere una eficiencia paralela ideal de al menos el 50 % en 16 núcleos. ¿Puede esta tarea alcanzar ese objetivo sin cambiar su fracción secuencial?
  1. Sí; la eficiencia ideal es aproximadamente del 64 %
  2. Sí; la eficiencia ideal es aproximadamente del 53 %
  3. No; la eficiencia ideal es solo del 10 %
  4. No; la eficiencia ideal es solo del 40 %
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

La ejecución A usa una media de 24 W durante 2,5 s. La ejecución B usa 36 W durante 1,5 s para la misma tarea. ¿Qué ejecución usa menos energía y cuánta menos?
  1. A usa 12 J menos
  2. B usa 24 J menos
  3. B usa 6 J menos
  4. A usa 6 J menos
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Un cambio tecnológico reduce la capacitancia a la mitad y cuadruplica la densidad de dispositivos activos, pero la tensión no puede bajar. Quienes diseñan el sistema mantienen constantes la frecuencia y la actividad por dispositivo. ¿Qué ocurre con la potencia dinámica por unidad de área?
  1. Permanece constante
  2. Se duplica
  3. Se reduce a la mitad
  4. Se cuadruplica
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 5: Integra los presupuestos de tiempo, paralelismo y potencia10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

¿Qué interfaz especifica cómo pasa argumentos en registros una función compilada?
  1. La arquitectura del conjunto de instrucciones
  2. La interfaz binaria de aplicación
  3. La microarquitectura del procesador
  4. El mapa de memoria del cargador de programas
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Un servicio tiene inicialmente un núcleo; cada solicitud secuencial necesita 0,20 s de cálculo. Pasa a cuatro núcleos, cada uno de los cuales tarda 0,25 s por solicitud. Con solicitudes independientes y sin otros límites, ¿qué ocurre con la productividad máxima y el tiempo de cálculo de cada solicitud?
  1. La productividad se multiplica por 4; el tiempo de cálculo baja un 75 %
  2. La productividad se multiplica por 3,2; el tiempo de cálculo baja un 20 %
  3. La productividad se multiplica por 3,2; el tiempo de cálculo sube un 25 %
  4. La productividad se multiplica por 5; el tiempo de cálculo sube un 25 %
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Cinco mediciones controladas de tiempo transcurrido son 1,8 s, 1,9 s, 7,2 s, 2,0 s y 2,1 s. ¿Qué tiempo mediano representa estas ejecuciones?
  1. 2,0 s
  2. 1,9 s
  3. 3,0 s
  4. 2,1 s
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Con una frecuencia de reloj fija, un programa ejecuta un 75 % de instrucciones de ALU que cuestan 1 ciclo y un 25 % de instrucciones de memoria que cuestan 5 ciclos. Una optimización deja los números de instrucciones sin cambios y reduce a la mitad solo el coste en ciclos de la clase de memoria. ¿Qué factor de aceleración global de CPU resulta?
  1. Aproximadamente 1,143
  2. Aproximadamente 1,600
  3. Aproximadamente 1,818
  4. Aproximadamente 1,455
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Un nuevo compilador reduce el número de instrucciones ejecutadas en un 20 % y aumenta el CPI en un 25 %. La frecuencia de reloj del nuevo hardware es un 10 % mayor. Para la misma tarea, ¿cuál es el factor de aceleración final?
  1. 1,00
  2. 1,125
  3. 1,10
  4. 1,375
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Un chip duplica su número de núcleos activos idénticos y reduce la frecuencia por núcleo al 75 % del valor anterior. Sin cambios en la capacitancia ni la actividad por núcleo, ¿cuál es la mayor razón de tensión que mantiene la potencia dinámica total igual o inferior a su valor anterior?
  1. Aproximadamente 0,667
  2. Aproximadamente 0,866
  3. Aproximadamente 0,943
  4. Aproximadamente 0,816
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Una tarea de 180 s incluye 45 s que una mejora no puede cambiar. ¿Qué factor de aceleración local del trabajo restante se necesita para alcanzar un factor de aceleración global de tres?
  1. 9
  2. 3
  3. 6
  4. 12
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Una carga de trabajo escalada de 20 núcleos dedica el 10 % de su tiempo medido en la ejecución paralela a trabajo secuencial. Según el modelo de Gustafson, ¿qué factor de aceleración escalado resulta y puede usarse ese valor como factor de aceleración de Amdahl para una tarea sin cambios en un núcleo con una fracción secuencial del 10 %?
  1. 10,0; sí, ambos modelos usan la misma fracción
  2. 18,1; no, la carga de trabajo y la base de la fracción difieren
  3. 18,1; sí, ambos modelos describen trabajo fijo
  4. 6,90; no, la carga de trabajo y la base de la fracción difieren
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Un diseño tiene 50 W de potencia dinámica y 20 W de potencia estática. La frecuencia no cambia, la tensión disminuye un 10 % y la potencia estática permanece en 20 W. ¿Cuál es su nueva potencia total?
  1. 56,7 W
  2. 63,0 W
  3. 40,5 W
  4. 60,5 W
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Un servidor multimedia sustituye un núcleo de CPU por cuatro núcleos que ejecutan las conversiones más lentamente. Su programa de conversión, que no ha cambiado, usa un hilo de CPU. ¿Por qué pueden terminar muchas conversiones independientes a una tasa mayor mientras cada conversión tarda más?
  1. Más tareas se ejecutan simultáneamente, mientras cada una usa un núcleo más lento.
  2. Cada tarea combina cuatro núcleos más lentos en un flujo de instrucciones más rápido.
  3. Los nuevos núcleos reducen el tiempo de CPU de cada tarea al eliminar trabajo secuencial.
  4. Las frecuencias de reloj de los cuatro núcleos se suman para cada conversión.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

¿Te atascas con una pregunta tuya? Ayuda con Tareas

Términos Clave

93 Términos Clave, cada uno con su definición

A

Abstracción
Una abstracción es una vista simplificada que muestra un comportamiento útil mientras oculta los detalles de cómo lo implementa un componente.
Una interfaz de archivos del sistema operativo es una abstracción que permite a una aplicación solicitar datos sin controlar los circuitos del disco.
Acelerador
Un acelerador es hardware especializado diseñado para realizar una clase seleccionada de trabajo eficientemente en comparación con la ejecución de propósito general.
Un acelerador de vídeo puede mejorar el trabajo de codificación adecuado cuando el software dirige ese trabajo al hardware especializado.
Análisis del perfil de ejecución
El análisis del perfil de ejecución mide cómo se distribuye el tiempo de ejecución u otra actividad relacionada entre las partes de un programa para identificar mejoras que compensen.
El análisis del perfil de ejecución puede mostrar que una mejora modesta de una rutina habitual ahorra más tiempo que una gran mejora de una rutina poco frecuente.
Archivo objeto
Un archivo objeto contiene código traducido e información relacionada que puede combinarse con otros archivos para construir un ejecutable.
Un archivo objeto puede contener instrucciones máquina y seguir haciendo referencia a una función que el enlazador debe resolver.
Arquitectura del conjunto de instrucciones (ISA)
Una arquitectura del conjunto de instrucciones define las instrucciones máquina, los registros, el direccionamiento y el comportamiento visibles para el software de bajo nivel.
Dos diseños de procesador diferentes pueden cumplir la misma arquitectura del conjunto de instrucciones y tardar tiempos distintos en una tarea.

C

Camino crítico
Un camino crítico es el camino lógico necesario más lento entre registros, que limita lo corto que puede ser un periodo de reloj síncrono seguro.
Reducir el trabajo a lo largo del camino crítico puede permitir un periodo de reloj más corto, aunque el número de ciclos también puede cambiar.
Camino de datos (ruta de datos)
Un camino de datos es la parte de un procesador que mantiene datos y opera sobre ellos, realizando las operaciones que dirige la unidad de control.
El camino de datos suma dos valores de registros cuando la unidad de control indica a la máquina que ejecute una suma.
Carga capacitiva
Una carga capacitiva es la capacitancia eléctrica que una señal debe cargar y descargar, determinada por los dispositivos y las conexiones que alimenta.
Reducir la carga capacitiva disminuye la potencia dinámica cuando la tensión, la frecuencia y la actividad de conmutación permanecen sin cambios.
Cargador
Un cargador es un componente de soporte del sistema operativo que carga un ejecutable en memoria y lo prepara para comenzar a ejecutarse en la máquina.
Después de enlazar un programa, el cargador organiza su imagen en memoria antes de que comience la ejecución.
Ciclos de reloj de la CPU
Los ciclos de reloj de la CPU son el total de pulsos del procesador atribuidos a la ejecución de un programa, incluidos los ciclos requeridos por los costes efectivos de sus instrucciones.
Seis mil millones de ciclos de reloj de la CPU tardan 2 s cuando la frecuencia de reloj medida es de 3 GHz durante toda la ejecución.
Ciclos por instrucción (CPI)
Los ciclos por instrucción son el total de ciclos de CPU dividido por las instrucciones ejecutadas en una ejecución y expresan el coste efectivo medio de esas instrucciones.
Los ciclos por instrucción aumentan cuando los costosos ciclos de espera de memoria ocupan una parte mayor de la ejecución del mismo programa.
Circuito integrado
Un circuito integrado es un chip que contiene muchos dispositivos electrónicos conectados, incluidos transistores, en una pieza de material semiconductor.
Un circuito integrado puede contener varios núcleos de procesador, cachés y otro hardware de soporte.
Código de bytes
El código de bytes es un formato intermedio de instrucciones para el entorno de ejecución de un lenguaje, que puede interpretarlo o seguir traduciéndolo a código máquina.
CPython compila el código fuente a código de bytes antes de que su intérprete realice las operaciones correspondientes.
Compatibilidad con versiones anteriores
La compatibilidad con versiones anteriores es la capacidad de admitir software creado para una interfaz o plataforma anterior dentro del entorno compatible del sistema nuevo.
La compatibilidad con versiones anteriores puede preservar binarios antiguos mientras los diseños internos de los procesadores cambian considerablemente.
Compilación en tiempo de ejecución (JIT)
La compilación en tiempo de ejecución traduce código a instrucciones máquina durante la ejecución y a menudo se centra en el código usado con frecuencia.
Una máquina virtual de Java puede usar la compilación en tiempo de ejecución tras identificar un método que se ejecuta con frecuencia.
Compilador
Un compilador traduce código de programa de alto nivel a una forma de nivel inferior, como ensamblador o código objeto, para una máquina de destino.
El compilador elige registros y una instrucción de suma al traducir una expresión aritmética.
Conjunto de pruebas de rendimiento
Un conjunto de pruebas de rendimiento es una colección de cargas de trabajo usadas para medir varios aspectos de un sistema en lugar de depender de un solo programa.
Un conjunto de pruebas de rendimiento puede mostrar diferencias que un único programa favorable ocultaría en una comparación de procesadores.
Contador de rendimiento
Un contador de rendimiento es un mecanismo de hardware para contar eventos de ejecución, como ciclos o instrucciones, durante un intervalo medido.
Un contador de rendimiento registra ciclos que pueden dividirse por el número correspondiente de instrucciones ejecutadas para estimar el CPI.
Convención de llamada
Una convención de llamada es una regla de la ABI para la comunicación entre funciones compiladas, incluido dónde se pasan los argumentos y los resultados.
La convención de llamada indica a las funciones compiladas por separado qué registros contienen sus argumentos de entrada.
Corriente de fuga
La corriente de fuga es la corriente que circula por transistores nominalmente apagados y contribuye a la potencia estática de un chip alimentado.
Reducir los umbrales de conmutación puede aumentar la corriente de fuga y dificultar una mayor reducción de la tensión de alimentación.

D

Densidad de potencia
La densidad de potencia es la potencia disipada por unidad de área, expresada a menudo en vatios por milímetro cuadrado al hablar de chips.
Más transistores activos en la misma área pueden aumentar la densidad de potencia a menos que la potencia por dispositivo disminuya lo suficiente.
Desconexión de la alimentación
La desconexión de la alimentación corta el suministro a una región de hardware inactiva para reducir las fugas, en lugar de limitarse a dejar esa región sin usar.
Un chip usa la desconexión de la alimentación después de que termine una tarea para que los circuitos inactivos consuman menos potencia estática.
Desequilibrio de carga
El desequilibrio de carga es una distribución desigual del trabajo paralelo que deja a algunos procesadores esperando mientras otro termina su parte mayor.
Cuando un núcleo recibe 40 unidades de trabajo y los demás reciben mucho menos, el desequilibrio de carga hace que la finalización dependa de ese núcleo.

E

Ecuación de rendimiento de la CPU
La ecuación de rendimiento de la CPU relaciona el tiempo de CPU con el número de instrucciones ejecutadas, el CPI medio y el periodo de reloj, multiplicando los tres factores.
La ecuación de rendimiento de la CPU revela por qué un menor número de instrucciones ejecutadas puede perder su beneficio cuando aumenta el CPI.
Eficiencia paralela
La eficiencia paralela es el factor de aceleración alcanzado o predicho dividido por el número de procesadores, y expresa la ganancia con respecto a la aceleración lineal ideal.
Un factor de aceleración de seis en ocho núcleos da una eficiencia paralela del 75 %, aunque la tarea sea considerablemente más rápida.
Ejecutable
Un ejecutable es un archivo de programa preparado para una máquina y un entorno de sistema operativo concretos que el cargador puede iniciar.
El enlazador produce un ejecutable después de combinar código objeto y resolver las referencias necesarias.
Energía
La energía es la cantidad acumulada que se usa durante un intervalo de tiempo, calculada para una tarea como la potencia media multiplicada por la duración.
Un consumo medio de 20 W durante 3 s usa 60 J de energía, que es distinto de la tasa de funcionamiento de 20 W.
Energía dinámica
La energía dinámica es la energía usada en las transiciones de señales, que escala con la carga capacitiva y el cuadrado de la tensión de alimentación.
Con la misma tensión, un número fijo de transiciones idénticas usa la misma energía dinámica incluso cuando se ralentiza.
Enlazador
Un enlazador combina archivos objeto y código de bibliotecas y resuelve referencias a funciones y datos definidos en archivos separados.
El enlazador conecta una llamada de un archivo objeto con la función de biblioteca que proporciona su implementación.
Ensamblador
Un ensamblador traduce lenguaje ensamblador simbólico a codificaciones de instrucciones máquina y normalmente produce un archivo objeto.
El ensamblador convierte add x5, x6, x7 en su codificación binaria y expande las pseudoinstrucciones admitidas.
Escalabilidad débil
La escalabilidad débil aumenta el tamaño total del problema en proporción al número de procesadores para que la cantidad de trabajo por procesador permanezca aproximadamente fija.
Un estudio de escalabilidad débil amplía la simulación a medida que hay más procesadores disponibles, manteniendo un trabajo similar en cada uno.
Escalabilidad fuerte
La escalabilidad fuerte mide cómo cambia el tiempo de ejecución con el número de procesadores mientras el tamaño total del problema permanece fijo.
Una prueba de escalabilidad fuerte ejecuta una simulación del mismo tamaño en más núcleos y mide cuánto antes termina.
Escalado de Dennard
El escalado de Dennard es un modelo ideal de escalado de dispositivos en el que la reducción de las dimensiones y la tensión permite una mayor velocidad con una densidad de potencia aproximadamente constante.
El escalado de Dennard deja de cumplirse cuando la tensión ya no disminuye lo suficiente para compensar la potencia de más dispositivos activos y rápidos.
Escalado dinámico de tensión y frecuencia (DVFS)
El DVFS es el escalado dinámico de tensión y frecuencia, que ajusta conjuntamente la tensión y la frecuencia de funcionamiento de un chip durante su uso.
El DVFS puede reducir la tensión para un punto de funcionamiento de menor frecuencia cuando la velocidad de conmutación requerida lo permite.

F

Factor de aceleración
Un factor de aceleración es la razón entre el tiempo de ejecución original y el nuevo tiempo de ejecución de la misma tarea después de un cambio.
Un factor de aceleración de 1,25 significa que el nuevo tiempo es el 80 % del anterior, una reducción de la duración del 20 %.
Factor de aceleración local
Un factor de aceleración local es el factor por el que una mejora acelera su parte afectada, antes de tener en cuenta el resto de la tarea.
Un factor de aceleración local de cuatro divide el tiempo afectado original por cuatro mientras deja sin cambios el resto del trabajo.
Factor de actividad
Un factor de actividad expresa cuánta capacitancia conmuta por ciclo de reloj según la convención de recuento usada en un modelo de potencia.
Una razón de potencia dinámica que mantiene fijo el factor de actividad supone que la actividad de conmutación sigue siendo comparable.
Fracción afectada
La fracción afectada es la parte del tiempo de ejecución original dedicada al trabajo que una mejora propuesta puede acelerar.
Las operaciones de memoria pueden tener una fracción afectada del 60 % del tiempo y formar solo el 30 % de las instrucciones.
Fracción paralelizable
La fracción paralelizable en el análisis de Amdahl para una tarea fija es la fracción del tiempo original en un solo núcleo que puede dividirse entre núcleos.
Una fracción paralelizable de 0,95 deja secuencial el 5 % del tiempo original, lo que limita las ganancias de los núcleos adicionales.
Fracción secuencial
La fracción secuencial es la parte del tiempo de ejecución que debe transcurrir sin dividirse entre núcleos, medida según la base indicada por el modelo.
Amdahl usa una fracción secuencial original en un solo núcleo, mientras que Gustafson usa la fracción de la ejecución paralela.
Frecuencia de reloj
La frecuencia de reloj es el número de ciclos de reloj del hardware por segundo, medido en hercios y expresado a menudo en gigahercios.
Una frecuencia de reloj de 4 GHz proporciona cuatro mil millones de ciclos por segundo, no cuatro mil millones de sentencias fuente completadas.
Frecuencia media efectiva
La frecuencia media efectiva de una ejecución es el número de ciclos de CPU contados dividido por el tiempo de ejecución de CPU correspondiente.
La frecuencia media efectiva tiene en cuenta una ejecución que aumenta o reduce su frecuencia en lugar de usar una única frecuencia anunciada.

I

Instrucciones por ciclo (IPC)
Las instrucciones por ciclo son el número de instrucciones ejecutadas dividido por los ciclos de CPU de una ejecución, el inverso de su CPI medio.
Las instrucciones por ciclo pueden superar uno cuando un procesador solapa suficientes instrucciones para completar varias por ciclo.
Interfaz binaria de aplicación (ABI)
Una interfaz binaria de aplicación especifica las convenciones binarias y las interfaces del sistema operativo junto con la ISA de nivel de usuario.
La coincidencia de la interfaz binaria de aplicación permite que una llamada a una función use los registros para argumentos que espera la función llamada.
Intérprete
Un intérprete es un programa que lee operaciones de otra representación de un programa y las lleva a cabo mediante su propia ejecución.
Un intérprete de código de bytes ejecuta instrucciones máquina para implementar las operaciones de código de bytes que lee.

L

Lenguaje ensamblador
El lenguaje ensamblador es una forma textual simbólica de las instrucciones máquina, con nombres de registros y operaciones legibles para las personas.
La línea de lenguaje ensamblador add x5, x6, x7 indica un registro destino y dos registros fuente.
Lenguaje máquina
El lenguaje máquina consta de instrucciones codificadas en binario que un procesador puede ejecutar según su arquitectura del conjunto de instrucciones.
El valor hexadecimal 0x007302B3 representa una codificación en lenguaje máquina de una suma de RISC-V.
Ley de Amdahl
La ley de Amdahl relaciona el factor de aceleración global con la fracción del tiempo original que se mejora y su factor de aceleración local, manteniendo sin cambios el tiempo no afectado.
La ley de Amdahl explica por qué triplicar la velocidad de una rutina da una mejora inferior a tres veces para toda la tarea.
Ley de Gustafson
La ley de Gustafson modela el factor de aceleración escalado cuando el trabajo paralelo crece con el número de procesadores mientras el tiempo secuencial permanece fijo en el modelo.
La ley de Gustafson usa una fracción secuencial medida en la ejecución paralela, a diferencia de la fracción del análisis de Amdahl para una tarea fija.
Ley de Moore
La ley de Moore es la tendencia histórica de fabricación a duplicar aproximadamente el número de transistores de un chip cada dos años.
Diez duplicaciones según la ley de Moore multiplicarían el número de transistores por 1024, sin garantizar el mismo factor de aceleración.
Limitación térmica del rendimiento
La limitación térmica del rendimiento reduce la velocidad de funcionamiento de un procesador cuando la temperatura alcanza sus límites, lo que ayuda al chip a controlar la producción de calor.
La limitación térmica del rendimiento puede alargar el tiempo de CPU al reducir la frecuencia de reloj efectiva durante una carga de trabajo sostenida.

M

Media geométrica
La media geométrica de valores positivos es la raíz de su producto, con un grado de raíz igual al número de valores.
La media geométrica de razones normalizadas de pruebas de rendimiento mantiene las comparaciones entre máquinas independientes de la elección de referencia.
Media ponderada
Una media ponderada da a cada valor una contribución proporcional a su peso, como la fracción de ejecución de una clase de instrucciones.
La media ponderada del CPI da más peso a una instrucción de ALU frecuente que a una clase de salto condicional que se ejecuta raramente.
Memoria dinámica de acceso aleatorio (DRAM)
La DRAM es una tecnología de memoria principal volátil que se usa para mantener programas y datos mientras funciona un sistema informático; pierde su contenido sin alimentación.
Los datos de trabajo de un programa pueden mantenerse en DRAM aunque un archivo guardado permanezca en almacenamiento no volátil.
Memoria estática de acceso aleatorio (SRAM)
La SRAM es una tecnología de memoria volátil que se usa para estructuras de almacenamiento pequeñas y rápidas, como las cachés cercanas al hardware de ejecución del procesador.
Un procesador mantiene datos usados recientemente en una caché SRAM para reducir el tiempo dedicado a acceder a la memoria principal.
Mezcla de instrucciones
Una mezcla de instrucciones es la distribución de las instrucciones ejecutadas entre clases, usada para ponderar el coste en ciclos de cada clase.
Una mezcla con muchas cargas costosas puede tener un CPI mayor que una mezcla dominada por instrucciones aritméticas simples.
Microarquitectura
Una microarquitectura es la organización interna del hardware que implementa una ISA, incluidas las unidades de ejecución, los cauces de segmentación y las cachés.
Una caché mayor cambia la microarquitectura sin cambiar necesariamente las codificaciones de instrucciones que usa un binario.
Millones de instrucciones por segundo (MIPS)
Los MIPS son una tasa de millones de instrucciones máquina ejecutadas por segundo de tiempo de CPU, que no mide directamente el trabajo útil de la tarea.
Una versión compilada puede tener más MIPS y terminar más tarde si ejecuta suficientes instrucciones adicionales para la misma tarea.
Muro de potencia
El muro de potencia es la limitación al crecimiento de la frecuencia de reloj impuesta por el consumo de potencia y el calor que un sistema práctico puede disipar.
El muro de potencia llevó a quienes diseñan sistemas a dedicar los transistores adicionales a varios núcleos en lugar de a frecuencias de reloj cada vez mayores.

N

Núcleos heterogéneos
Los núcleos heterogéneos son diseños de núcleo distintos dentro de un mismo procesador, que a menudo combinan núcleos rápidos de alta potencia con otros más pequeños y eficientes.
Un chip con núcleos heterogéneos puede asignar distintos trabajos a tipos de núcleo con diferentes costes de rendimiento y potencia.
Número de instrucciones ejecutadas
El número de instrucciones ejecutadas es la cantidad de instrucciones máquina realmente ejecutadas para una tarea, incluidas las iteraciones repetidas de los bucles.
Un compilador puede aumentar el número de instrucciones ejecutadas mientras reduce los ciclos totales al sustituir instrucciones costosas por otras de menor coste.

P

Paralelismo a nivel de hilos (TLP)
El paralelismo a nivel de hilos ejecuta flujos de instrucciones de software separados de forma concurrente, lo que permite que varios núcleos contribuyan a la ejecución.
Una biblioteca paralela puede exponer paralelismo a nivel de hilos para que partes independientes de una tarea usen núcleos distintos.
Paralelismo a nivel de instrucciones (ILP)
El paralelismo a nivel de instrucciones solapa operaciones dentro de un flujo de instrucciones, usando técnicas de hardware y compilador para aumentar la tasa de ejecución.
La segmentación contribuye al paralelismo a nivel de instrucciones sin exigir que el programa cree un hilo para cada operación.
Periodo de reloj
El periodo de reloj es la duración de un ciclo de reloj, igual al inverso de la frecuencia de reloj cuando las unidades son coherentes.
Un periodo de reloj de 250 ps corresponde a 4 GHz porque el periodo y la frecuencia son inversos.
Potencia
La potencia es la tasa a la que se usa la energía, medida en vatios, donde un vatio equivale a un julio por segundo.
Un consumo de potencia mayor puede seguir usando menos energía para la tarea cuando el programa termina suficientemente antes.
Potencia de diseño térmico (TDP)
La potencia de diseño térmico es un objetivo de diseño térmico para seleccionar la refrigeración bajo condiciones de funcionamiento especificadas, no una lectura instantánea de potencia.
La refrigeración diseñada en torno a la potencia de diseño térmico debe tener en cuenta las condiciones de funcionamiento especificadas del procesador.
Potencia dinámica
La potencia dinámica es la tasa de consumo de energía debida a la conmutación, proporcional a la actividad, la capacitancia, el cuadrado de la tensión y la frecuencia.
Una reducción de tensión del 10 % sin cambios en la frecuencia ni la actividad reduce la potencia dinámica al 81 % de su valor anterior.
Potencia estática
La potencia estática es el consumo que persiste sin conmutación útil porque los dispositivos alimentados dejan pasar corriente de fuga.
La potencia estática continúa durante una ejecución más larga incluso cuando reducir la frecuencia disminuye su potencia dinámica.
Prefijo binario
Un prefijo binario denota un multiplicador de tamaño que es una potencia de dos, como KiB para 1024 bytes o GiB para 1 073 741 824 bytes.
El prefijo binario de KiB distingue las unidades de 1024 bytes de las potencias decimales usadas en las unidades de frecuencia de reloj.
Presupuesto de ciclos
Un presupuesto de ciclos es el número total de ciclos de procesador disponibles o requeridos para una tarea con un objetivo temporal especificado.
Un procesador de 4 GHz tiene un presupuesto de 36 mil millones de ciclos si la tarea debe terminar en 9 s de tiempo de CPU.
Procesador multinúcleo
Un procesador multinúcleo contiene varios núcleos en un chip, cada uno capaz de ejecutar su propio flujo de instrucciones mientras comparte algunos recursos.
Un procesador multinúcleo puede atender solicitudes independientes de forma concurrente sin fusionar sus núcleos en un único reloj más rápido.
Productividad
La productividad es la cantidad de trabajo completado por unidad de tiempo, como solicitudes por segundo o tareas por hora.
Ejecutar tareas independientes en más núcleos puede aumentar la productividad mientras el cálculo de cada tarea tarda lo mismo.
Proporcionalidad energética
La proporcionalidad energética es el objetivo de diseño de hacer que el consumo de potencia de un sistema siga la cantidad de trabajo útil que realiza.
Un servidor con un consumo elevado en reposo no alcanza la proporcionalidad energética aunque su eficiencia con la carga máxima sea buena.
Prueba de rendimiento
Una prueba de rendimiento es una carga de trabajo de programa definida que se usa para medir el rendimiento de un sistema en un trabajo elegido para representar una necesidad práctica.
Una prueba de rendimiento que refleja el comportamiento de una aplicación es más informativa que una tasa máxima teórica ajena a esa carga de trabajo.
Pseudoinstrucción
Una pseudoinstrucción es una forma abreviada de ensamblador que un ensamblador expande en una o más instrucciones máquina reales.
mv x5, x6 de RISC-V es una pseudoinstrucción que puede implementarse como addi x5, x6, 0.

R

Rendimiento
Para una tarea fija, el rendimiento es el inverso del tiempo de ejecución, por lo que una duración menor representa un valor de rendimiento mayor.
Reducir a la mitad el tiempo de la misma tarea completada duplica su rendimiento, siempre que el trabajo comparado no cambie.
Rendimiento por vatio
El rendimiento por vatio es el rendimiento de procesamiento útil dividido por la potencia consumida y expresa cuánto rendimiento permite un presupuesto de potencia.
Una mayor productividad con una potencia similar mejora el rendimiento por vatio cuando ambos resultados describen el mismo tipo de trabajo útil.
RISC-V
RISC-V es una arquitectura del conjunto de instrucciones abierta y libre de regalías, con conjuntos base para enteros y extensiones estándar de instrucciones opcionales.
Un programa RISC-V que usa instrucciones de multiplicación de enteros necesita compatibilidad con la extensión correspondiente.

S

Segmentación
La segmentación solapa etapas de instrucciones sucesivas para que un procesador pueda completar trabajo a una tasa mayor que con el procesamiento completamente secuencial.
La segmentación puede mejorar el CPI efectivo o permitir un periodo de reloj más corto sin cambiar los resultados prometidos por la ISA.
Silicio oscuro
El silicio oscuro describe el hardware de un chip que no puede funcionar todo a plena velocidad a la vez dentro del presupuesto de potencia y térmico disponible.
Un chip puede dejar algunas unidades inactivas porque el silicio oscuro limita el uso simultáneo, pese a tener los dispositivos en el chip.
Sistema operativo
Un sistema operativo es software que gestiona los recursos del hardware y proporciona servicios para que los programas puedan compartir el sistema informático de forma segura.
El sistema operativo planifica otro programa mientras una aplicación espera una operación de almacenamiento.
Software de sistema
El software de sistema proporciona servicios compartidos y soporte para la traducción de programas, incluidos sistemas operativos, compiladores, enlazadores y bibliotecas.
Una aplicación depende del software de sistema para asignar memoria y preparar código ejecutable para el procesador.
SPECrate
SPECrate es la familia de métricas de SPEC CPU que mide la productividad mediante la ejecución de varias copias y teniendo en cuenta el trabajo completado.
Una razón de SPECrate incluye el número de copias junto con el tiempo de referencia dividido por el intervalo medido.
SPECspeed
SPECspeed es la familia de métricas de SPEC CPU que mide el tiempo de finalización de una copia de una prueba de rendimiento; la copia puede usar varios hilos.
Un resultado de SPECspeed se refiere al tiempo de una copia de programa, por lo que no debe interpretarse como la tasa de muchas copias separadas.

T

Tasa máxima teórica
Una tasa máxima teórica describe una capacidad máxima ideal de procesamiento en condiciones favorables, en lugar del resultado medido de una aplicación.
Un programa que hace un uso intensivo de la memoria puede alcanzar mucho menos que la tasa máxima teórica de un chip porque la ejecución espera datos.
Tecnología de transistores MOS complementarios (CMOS)
La CMOS es la tecnología de transistores usada en los procesadores modernos, con costes energéticos debidos a la conmutación de señales y a las fugas estáticas.
Una estimación de potencia CMOS separa el consumo dinámico de conmutación del consumo que persiste sin transiciones útiles.
Tiempo de CPU
El tiempo de CPU es el tiempo de ejecución del procesador atribuido a una tarea, que combina su ejecución en modo usuario con la ejecución en modo sistema en su nombre.
El tiempo de CPU sumado entre varios núcleos ocupados puede superar el tiempo transcurrido de principio a fin de la tarea.
Tiempo de CPU en modo sistema
El tiempo de CPU en modo sistema mide el tiempo de procesador dedicado a ejecutar código del sistema operativo en nombre de la tarea que se mide.
El tiempo de CPU de un programa incluye el tiempo de CPU en modo sistema usado para atender sus solicitudes al sistema operativo.
Tiempo de CPU en modo usuario
El tiempo de CPU en modo usuario mide el tiempo de procesador dedicado a ejecutar el código propio de nivel de usuario de un programa, excluida la ejecución del sistema operativo.
Una herramienta de medición informa del tiempo de CPU en modo usuario por separado del tiempo dedicado a los servicios del sistema solicitados por el programa.
Tiempo de respuesta
El tiempo de respuesta es la duración desde el inicio de una tarea hasta su finalización, incluidos el cálculo, la entrada y salida y la espera pertinentes.
A una persona que espera el resultado de una conversión le importa el tiempo de respuesta aunque el servicio termine muchas otras tareas.
Tiempo transcurrido
El tiempo transcurrido es la duración de principio a fin de una ejecución medida por el reloj, incluidos el trabajo de CPU, la espera y las demoras de planificación.
Una espera por archivos puede aumentar el tiempo transcurrido sin añadir una cantidad igual de ejecución de CPU atribuida a la tarea.
Transistor
Un transistor es un dispositivo controlado eléctricamente que actúa como interruptor y permite construir los circuitos usados en la lógica digital.
Muchos transistores trabajan juntos en un circuito que implementa un sumador dentro de un procesador.

U

Unidad de control
La unidad de control es el componente del procesador que dirige las operaciones del camino de datos y coordina la memoria y la entrada y salida según las instrucciones.
La unidad de control selecciona la operación y el destino necesarios cuando la CPU ejecuta una instrucción máquina.

Sobre esta unidad

Por StudeliInformar de un error

Crea tus propios Materiales de Estudio

Convierte tus notas, diapositivas y documentos en Guías de Estudio, Preguntas de Práctica, Flashcards y 6 herramientas más.

Comenzar