- Aprender
- Informática
- Ciencias de la computación
- Organización y arquitectura de computadores
- Rendimiento de los sistemas informáticos
Abstracciones y rendimiento de los sistemas informáticos
IntermedioUnidad 1 de 6 del curso Curso de Organización y arquitectura de computadores
Lo que aprenderás
- 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 transistoresIdentifica 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áquinaDescribe 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 softwareDistingue 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.
- Recorre las capas de abstracción desde las aplicaciones hasta los transistores
- 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 productividadDefine 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 relojDistingue el tiempo transcurrido del tiempo de CPU, interpreta mediciones de tiempo y convierte entre periodo y frecuencia de reloj con las unidades correctas.
- Compara sistemas informáticos mediante el tiempo de respuesta y la productividad
- 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 relojCalcula 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 instruccionesDefine 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 rendimientoUsa 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 rendimientoExplica 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.
- Relaciona el tiempo de CPU con los ciclos de reloj y la frecuencia de reloj
- 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 mejoraAplica 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úcleosCalcula 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.
- Calcula el factor de aceleración global de una mejora
- 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 CMOSUsa 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 DennardDescribe 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 softwareMuestra 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.
- Calcula la potencia dinámica y la energía dinámica en chips CMOS
Guía de estudio de Rendimiento de los sistemas informáticos
1Conecta 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:
- El software de aplicación realiza tareas como editar una hoja de cálculo o navegar por la web.
- El software de sistema proporciona servicios compartidos y traduce programas. Incluye sistemas operativos, compiladores, ensambladores, enlazadores y bibliotecas.
- La arquitectura del conjunto de instrucciones (ISA) define las instrucciones máquina y otros comportamientos visibles para el software de bajo nivel.
- La microarquitectura, u organización, implementa esa ISA con un camino de datos, una unidad de control, cauces de segmentación y cachés.
- La lógica digital construye operaciones y almacenamiento a partir de puertas, sumadores, multiplexores y registros.
- Los circuitos conectan componentes electrónicos para realizar esa lógica.
- 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.
| Almacenamiento | Función principal | ¿Conserva los datos sin alimentación? |
|---|---|---|
| DRAM | Memoria principal de trabajo | No |
| SRAM | Cachés pequeñas y rápidas cerca del procesador | No |
| Flash o disco magnético | Almacenamiento secundario | Sí |
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 , 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:
| Etapa | Entrada y resultado |
|---|---|
| Compilador | Traduce el código fuente a ensamblador o directamente a código objeto |
| Ensamblador | Convierte el ensamblador simbólico en código máquina dentro de un archivo objeto |
| Enlazador | Combina archivos objeto y código de bibliotecas, resolviendo referencias entre ellos |
| Cargador | Carga 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:
| Campo | Significado aquí | Bits |
|---|---|---|
| funct7 | Selecciona la operación de suma junto con los demás campos de operación | 0000000 |
| rs2 | Registro fuente 7 | 00111 |
| rs1 | Registro fuente 6 | 00110 |
| funct3 | Selector de operación | 000 |
| rd | Registro destino 5 | 00101 |
| opcode | Familia de la instrucción | 0110011 |
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.
| Pregunta | Tipo 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:
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.
2Mide 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.
| Necesidad | Medida útil | Mejora |
|---|---|---|
| Completar una solicitud interactiva | Tiempo de respuesta | Menos segundos por solicitud |
| Procesar una gran carga de trabajo independiente | Productividad | Más solicitudes por segundo |
| Atender a muchas personas de forma aceptable | Ambas | Má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:
Si A tarda 10 s y B tarda 15 s, el rendimiento de A con respecto al de B es:
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:
Su reducción de tiempo es:
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ó:
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:
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:
A 4 GHz, la frecuencia es de cuatro mil millones de ciclos por segundo. Un ciclo dura:
A 2,5 GHz el periodo es de 400 ps. En sentido contrario, 312,5 ps por ciclo dan:
| Prefijo o unidad | Valor |
|---|---|
| GHz | ciclos/s |
| ns | s |
| ps | s |
| KiB | bytes |
| GiB | 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.
3Calcula 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:
Para seis mil millones de ciclos a 3 GHz:
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:
Un diseño propuesto B aumenta ese número de ciclos en un 20 %. Por tanto, B debe ejecutar:
Para terminar en 9 s, B necesita:
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 y la frecuencia de reloj anterior por un factor . Entonces:
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 y CPI por clase :
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:
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:
| Clase | Ciclos por instrucción | Versión 1, millones | Versión 2, millones |
|---|---|---|---|
| ALU | 1 | 400 | 600 |
| Carga y almacenamiento | 4 | 300 | 150 |
| Salto condicional | 2 | 100 | 100 |
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:
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:
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:
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:
Aquí cuenta las instrucciones ejecutadas y 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:
Para deducir el CPI a partir del tiempo medido, despeja en la misma ecuación:
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:
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:
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ón | Factores que puede cambiar |
|---|---|
| Algoritmo | Número de instrucciones ejecutadas y posiblemente CPI |
| Lenguaje de programación o compilador | Número de instrucciones ejecutadas y CPI |
| ISA | Número de instrucciones ejecutadas, CPI y frecuencia de reloj |
| Organización | CPI y frecuencia de reloj |
| Tecnología de circuitos | Frecuencia 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:
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:
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:
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.
4Determina 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 veces más rápida:
Sea 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:
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:
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:
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:
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:
Una mejora de diez veces en una parte que ocupa el 10 % da solo:
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 la fracción paralelizable del tiempo original con un solo núcleo. Con una división perfecta entre núcleos y sin sobrecoste:
Para una fracción paralelizable de 0,95, la fracción secuencial es 0,05. Ocho núcleos dan:
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 se mide en la ejecución paralela, a diferencia de la fracción original de Amdahl con un solo núcleo:
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.
5Relaciona 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:
Aquí es la carga capacitiva, es la tensión de alimentación, 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:
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:
| Ejecución | Potencia media | Tiempo | Energía |
|---|---|---|---|
| A | 20 W | 3 s | 60 J |
| B | 30 W | 1,5 s | 45 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 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:
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:
Con el mismo trabajo por ciclo y suficiente trabajo independiente para ambos núcleos, la productividad ideal cambia por un factor de:
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
1Sigue un cálculo desde el código hasta el hardware
16 pasos
- 1Introducció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.
- 2Explicació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.
- 3Ejemplo¿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.
- 4Conexió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.
- 5Desafí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.
- 6Idea 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.
- 7Explicació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.
- 8EjemploSelecciona registros y una instrucción
Supón que
pricese mantiene enx6,taxenx7y el resultado debe estar enx5. La suma de C puede convertirse en:add x5, x6, x7El 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.
- 9EjemploCodifica 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. - funct7:
- 10ConsejoCuenta 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, x6se convierte enaddi 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. - 11Desafí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.
- 12Explicació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.
- 13Conexió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.
- 14Desafí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.
- 15Desafí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.
- 16RepasoExamina 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.
2Elige e interpreta una medida de rendimiento
12 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónDecide qué significa completar el trabajo
- 2ExplicaciónMide una tarea o un flujo
- 3EjemploInvierte la razón de tiempos
- 4Desafío¿Puede una misma tasa implicar la misma espera?
- 5ExplicaciónInterpreta los tiempos real, user y system
- 6Idea claveLos segundos de CPU en paralelo se suman
- 7EjemploCalcula el inverso en segundos
- 8ConsejoMantén separados los prefijos decimales y binarios
- 9DesafíoDeduce un periodo de reloj
- 10ConsejoDescribe una ejecución real
- 11DesafíoPredice el tiempo transcurrido tras una mejora de la CPU
- 12RepasoAsigna la unidad correcta a la afirmación
3Construye y comprueba una predicción del tiempo de CPU
21 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónTres factores forman un tiempo de ejecución
- 2ExplicaciónEmpieza con el presupuesto de ciclos
- 3EjemploObtén los ciclos antes de cambiar el diseño
- 4ConexiónEl reloj no puede adelantarse a la lógica necesaria
- 5Desafío¿Es suficiente el aumento de frecuencia de reloj?
- 6ExplicaciónEl CPI es una media ponderada por la ejecución
- 7EjemploResuelve una mezcla de instrucciones
- 8EjemploUn flujo más largo puede tener un total de ciclos menor
- 9Idea claveEs posible una media inferior a uno
- 10DesafíoCalcula los ciclos y la tasa inversa
- 11ExplicaciónConvierte instrucciones en tiempo
- 12EjemploCompara dos números iguales de instrucciones ejecutadas
- 13ConexiónLocaliza el factor de diseño
- 14DesafíoObtén un CPI medido
- 15ExplicaciónElige la métrica de la prueba de rendimiento
- 16EjemploMultiplica las razones y después calcula la raíz
- 17DesafíoInterpreta una razón de productividad
- 18EjemploComprueba qué premia un resultado alto de MIPS
- 19ConsejoInterpreta las cifras máximas como capacidad
- 20DesafíoCombina los cambios del compilador y del hardware
- 21RepasoComprueba la afirmación completa
4Determina qué parte limita el factor de aceleración
15 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónMantén el trabajo sin cambios en el presupuesto
- 2ExplicaciónDivide el tiempo original antes de acelerarlo
- 3EjemploAcelera la parte de coma flotante
- 4EjemploRazona hacia atrás desde el tiempo objetivo
- 5Idea claveAnaliza el perfil de la parte costosa
- 6DesafíoElige la mejor mejora
- 7ExplicaciónUsa los núcleos solo para el tiempo paralelizable
- 8EjemploAñade muchos núcleos a una tarea paralelizable en un 95 %
- 9ExplicaciónDivide el factor de aceleración por los núcleos para hallar la eficiencia
- 10EjemploLa finalización espera al núcleo más ocupado
- 11DesafíoDetermina el efecto de la parte secuencial
- 12ConexiónCambia la pregunta cuando el trabajo crece
- 13DesafíoComprueba si dos afirmaciones se contradicen
- 14DesafíoIncluye el trabajo de CPU y la espera de archivos
- 15RepasoDetermina primero el tiempo restante
5Explica el muro de potencia y la respuesta multinúcleo
19 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónEl rendimiento tiene un presupuesto de calor
- 2ExplicaciónCuenta la conmutación y las fugas por separado
- 3EjemploAplica el cuadrado de la tensión
- 4EjemploCompara la energía durante una tarea completa
- 5Idea claveUna frecuencia menor no elimina transiciones
- 6DesafíoMantén sin cambios el componente estático
- 7ExplicaciónLa reducción ideal mantuvo estable la densidad de potencia
- 8EjemploComprueba una generación tecnológica ideal
- 9ExplicaciónLa tensión no pudo seguir al tamaño
- 10ConexiónInterpreta los límites térmicos como restricciones de funcionamiento
- 11DesafíoDiagnostica el fallo del escalado
- 12ExplicaciónMás núcleos proporcionan flujos separados
- 13EjemploCalcula el coste en potencia dinámica de dos núcleos más lentos
- 14EjemploPregunta si la carga de trabajo puede usar la pareja
- 15ConexiónDistingue el solapamiento de instrucciones y el de hilos
- 16ConexiónUsa hardware especializado para el trabajo adecuado
- 17DesafíoElige un diseño para trabajo independiente
- 18DesafíoCombina la reducción de velocidad, la energía y el tiempo de finalización
- 19RepasoAdapta el diseño a su trabajo útil
Ejercicios de Rendimiento de los sistemas informáticos
Set 1: Relaciona las capas y las medidas básicas de rendimiento10 Preguntas de Práctica
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Pregunta 10 de 10
Mostrar respuestaOcultar respuesta
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
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
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
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
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
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
mv x9, x10 puede ensamblarse como addi x9, x10, 0. ¿Qué tipo de construcción de ensamblador es mv aquí?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
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
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
¿Te atascas con una pregunta tuya? Ayuda con Tareas
Términos Clave
A
Abstracción
Acelerador
Análisis del perfil de ejecución
Archivo objeto
Arquitectura del conjunto de instrucciones (ISA)
C
Camino crítico
Camino de datos (ruta de datos)
Carga capacitiva
Cargador
Ciclos de reloj de la CPU
Ciclos por instrucción (CPI)
Circuito integrado
Código de bytes
Compatibilidad con versiones anteriores
Compilación en tiempo de ejecución (JIT)
Compilador
Conjunto de pruebas de rendimiento
Contador de rendimiento
Convención de llamada
Corriente de fuga
D
Densidad de potencia
Desconexión de la alimentación
Desequilibrio de carga
E
Ecuación de rendimiento de la CPU
Eficiencia paralela
Ejecutable
Energía
Energía dinámica
Enlazador
Ensamblador
add x5, x6, x7 en su codificación binaria y expande las pseudoinstrucciones admitidas.Escalabilidad débil
Escalabilidad fuerte
Escalado de Dennard
Escalado dinámico de tensión y frecuencia (DVFS)
F
Factor de aceleración
Factor de aceleración local
Factor de actividad
Fracción afectada
Fracción paralelizable
Fracción secuencial
Frecuencia de reloj
Frecuencia media efectiva
I
Instrucciones por ciclo (IPC)
Interfaz binaria de aplicación (ABI)
Intérprete
L
Lenguaje ensamblador
add x5, x6, x7 indica un registro destino y dos registros fuente.Lenguaje máquina
0x007302B3 representa una codificación en lenguaje máquina de una suma de RISC-V.Ley de Amdahl
Ley de Gustafson
Ley de Moore
Limitación térmica del rendimiento
M
Media geométrica
Media ponderada
Memoria dinámica de acceso aleatorio (DRAM)
Memoria estática de acceso aleatorio (SRAM)
Mezcla de instrucciones
Microarquitectura
Millones de instrucciones por segundo (MIPS)
Muro de potencia
N
Núcleos heterogéneos
Número de instrucciones ejecutadas
P
Paralelismo a nivel de hilos (TLP)
Paralelismo a nivel de instrucciones (ILP)
Periodo de reloj
Potencia
Potencia de diseño térmico (TDP)
Potencia dinámica
Potencia estática
Prefijo binario
Presupuesto de ciclos
Procesador multinúcleo
Productividad
Proporcionalidad energética
Prueba de rendimiento
Pseudoinstrucción
mv x5, x6 de RISC-V es una pseudoinstrucción que puede implementarse como addi x5, x6, 0.R
Rendimiento
Rendimiento por vatio
RISC-V
S
Segmentación
Silicio oscuro
Sistema operativo
Software de sistema
SPECrate
SPECspeed
T
Tasa máxima teórica
Tecnología de transistores MOS complementarios (CMOS)
Tiempo de CPU
Tiempo de CPU en modo sistema
Tiempo de CPU en modo usuario
Tiempo de respuesta
Tiempo transcurrido
Transistor
U
Unidad de control
- 1Rendimiento de los sistemas informáticos
- 2Conjunto de instrucciones
- 3Aritmética de computadores
- 4Camino de datos y segmentación
- 5Jerarquía de memoria y cachés
- 6Procesadores paralelos y multinúcleo
Sobre esta unidad
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.