Abstractions et performance des ordinateurs

Découvre comment un système informatique est construit en couches, des applications et du système d’exploitation jusqu’aux portes logiques et aux transistors, en passant par le jeu d’instructions, et comment une ligne de code devient des instructions machine. Apprends ensuite à mesurer correctement la performance : temps d’exécution et débit, temps processeur, fréquence d’horloge et cycles par instruction, réunis dans l’équation de performance. Utilise la loi d’Amdahl pour prévoir le gain réel apporté par une amélioration ou par des cœurs de processeur supplémentaires, et découvre pourquoi les limites de puissance ont mis fin à la course aux fréquences d’horloge plus élevées et conduit aux processeurs multicœurs.

IntermédiaireUnité 1 sur 6 de la formation Formation : Architecture informatique : processeur, mémoire et RISC-V

Ce que tu vas apprendre

  1. Explique comment les couches d’abstraction relient une application aux transistors qui l’exécutent, suis le parcours d’une instruction de haut niveau jusqu’aux instructions machine et reconnais l’architecture du jeu d’instructions comme le contrat entre logiciel et matériel.
    • Parcours les couches d’abstraction, des applications aux transistors
      Nomme les couches d’un système informatique, indique ce que chacune fournit et masque, et explique pourquoi l’abstraction rend possible la conception de systèmes complexes.
    • Suis le parcours d’un programme, du code de haut niveau aux instructions machine
      Décris comment les compilateurs, les assembleurs, les éditeurs de liens et les chargeurs transforment un programme de haut niveau en instructions machine binaires, et suis une instruction jusqu’à sa représentation en bits.
    • Explique comment l’architecture du jeu d’instructions définit l’interface entre matériel et logiciel
      Distingue l’ISA, l’interface binaire d’application et l’implémentation, et explique pourquoi une même ISA peut avoir de nombreuses implémentations aux performances différentes.
  2. Utilise le temps d’exécution et le débit pour définir la performance, compare correctement deux ordinateurs et mesure les temps qui comptent pour un programme.
    • Compare des ordinateurs à partir du temps de réponse et du débit
      Définis le temps de réponse et le débit, exprime la performance comme l’inverse du temps d’exécution et indique correctement combien de fois un ordinateur est plus rapide qu’un autre.
    • Mesure le temps écoulé, le temps processeur et les cycles d’horloge
      Distingue le temps écoulé du temps processeur, interprète les mesures de temps et convertis la période d’horloge en fréquence et inversement avec les bonnes unités.
  3. Relie le temps processeur au nombre d’instructions exécutées, aux cycles par instruction et à la fréquence d’horloge, calcule l’une de ces grandeurs à partir des autres et évalue quels choix de conception et quelles affirmations sur la performance modifient réellement le temps d’exécution.
    • Relie le temps processeur aux cycles d’horloge et à la fréquence d’horloge
      Calcule le temps processeur à partir des cycles et de la fréquence d’horloge, et résous des problèmes de conception où une horloge plus rapide entraîne des cycles supplémentaires.
    • Calcule le CPI à partir de la répartition des instructions
      Définis le nombre de cycles par instruction, calcule le CPI moyen comme une moyenne pondérée sur les classes d’instructions et utilise-le pour comparer des séquences de code.
    • Applique l’équation classique de performance
      Utilise temps processeur = nombre d’instructions exécutées × CPI × durée du cycle d’horloge pour calculer et comparer des temps d’exécution, et détermine les facteurs que modifient l’algorithme, le langage, le compilateur, l’ISA, l’organisation et la technologie.
    • Évalue les affirmations sur la performance et les synthèses de tests de performance
      Explique pourquoi les MIPS et la fréquence d’horloge sont trompeurs, comment les batteries de tests comme SPEC CPU présentent leurs résultats sous forme de rapports et pourquoi la moyenne géométrique sert à les synthétiser.
  4. Calcule l’accélération globale lorsque seule une partie d’un programme est accélérée, détermine la limite de cette accélération et applique le même raisonnement aux programmes exécutés sur de nombreux cœurs de processeur.
    • Calcule l’accélération globale obtenue grâce à une amélioration
      Applique la loi d’Amdahl à une amélioration partielle, détermine l’amélioration nécessaire pour atteindre une accélération donnée et reconnais quand un objectif est impossible.
    • Utilise la loi d’Amdahl pour analyser l’accélération obtenue avec plusieurs cœurs
      Calcule l’accélération et l’efficacité d’un programme partiellement parallèle sur de nombreux cœurs, explique pourquoi les accélérations réelles sont plus faibles et distingue les problèmes de taille fixe de ceux dont la taille augmente.
  5. Calcule comment la tension, la fréquence et la capacité déterminent la puissance et l’énergie d’une puce, explique pourquoi l’augmentation de la puissance a mis fin à l’ère des cœurs uniques toujours plus rapides, et explique pourquoi les processeurs sont devenus multicœurs et ce que cela exige des logiciels.
    • Calcule la puissance dynamique et l’énergie dynamique dans les circuits CMOS
      Utilise les relations entre capacité, tension, fréquence, puissance et énergie pour estimer l’effet de changements de conception, et distingue la puissance dynamique de la puissance statique.
    • Explique le mur de puissance et la fin de la validité de la loi de Dennard
      Décris comment la réduction des transistors a autrefois permis d’augmenter la fréquence d’horloge à densité de puissance constante, et pourquoi les fuites et la limite de tension ont arrêté la hausse des fréquences après le milieu des années 2000.
    • Explique pourquoi les processeurs sont devenus multicœurs et ce que cela exige des logiciels
      Montre à l’aide de l’équation de puissance pourquoi plusieurs cœurs plus lents peuvent surpasser un cœur rapide, et explique pourquoi l’accélération obtenue avec des processeurs multicœurs dépend des logiciels parallèles.

Performance des ordinateurs : cours

5 chapitres

1

Relier le logiciel au matériel

Une ligne de code source traverse plusieurs interfaces avant qu’un processeur puisse l’exécuter. Les applications s’appuient sur les logiciels système, les instructions machine sur une ISA, et les concepteurs de matériel implémentent ces instructions à l’aide de logique et de transistors. Suivre ce parcours permet de distinguer le comportement exigé d’un programme des choix de conception qui déterminent sa vitesse, et de comprendre pourquoi des processeurs compatibles peuvent offrir des performances très différentes.

1.1 Des applications aux interrupteurs physiques

Une abstraction montre ce que fait un composant tout en masquant les détails de son fonctionnement. Un navigateur peut demander au système d’exploitation de lire un fichier sans contrôler les circuits du périphérique de stockage. Des interfaces définies permettent de concevoir, de tester et de remplacer des parties d’un système sans reconstruire toutes les couches à la fois.

Les couches et leurs rôles

Voici un ordre courant, de la tâche de l’utilisateur aux dispositifs physiques :

  1. Les logiciels applicatifs effectuent des tâches comme modifier une feuille de calcul ou naviguer sur le web.
  2. Les logiciels système fournissent des services partagés et traduisent les programmes. Ils comprennent les systèmes d’exploitation, les compilateurs, les assembleurs, les éditeurs de liens et les bibliothèques.
  3. L’architecture du jeu d’instructions (ISA) définit les instructions machine et les autres comportements visibles par les logiciels de bas niveau.
  4. La microarchitecture, ou organisation, implémente cette ISA à l’aide d’un chemin de données, d’une unité de commande, de pipelines et de caches.
  5. La logique numérique construit les opérations et le stockage à partir de portes, d’additionneurs, de multiplexeurs et de registres.
  6. Les circuits relient les composants électroniques pour réaliser cette logique.
  7. Les dispositifs, principalement les transistors, assurent la commutation physique.

Ces frontières offrent des vues utiles d’une même machine. Différents diagrammes peuvent regrouper des couches voisines. Un système d’exploitation est un logiciel : le processeur exécute ses instructions, y compris des instructions privilégiées qui l’aident à gérer les ressources en toute sécurité.

Suivre une addition

Considère l’instruction C total = price + tax;. Un compilateur choisit où sont placées les valeurs et quelles instructions effectuent l’addition. Il peut choisir une instruction d’addition sans concevoir d’additionneur. Un concepteur de microarchitecture associe cette instruction au matériel d’exécution. Un concepteur logique construit l’additionneur à partir de portes ; un concepteur de circuits s’occupe des détails électriques de ces portes. Chaque personne utilise une interface plus simple vers le niveau inférieur.

L’ordinateur physique possède cinq composants classiques : entrée, sortie, mémoire, chemin de données et unité de commande. Le chemin de données effectue des opérations sur les données. L’unité de commande dirige les opérations et coordonne la mémoire et les entrées-sorties. Ensemble, le chemin de données et l’unité de commande forment le processeur, ou CPU.

StockageRôle principalConserve les données sans alimentation ?
DRAMMémoire principale de travailNon
SRAMPetits caches rapides près du processeurNon
Mémoire flash ou disque magnétiqueStockage secondaireOui

Un transistor agit comme un interrupteur commandé électriquement. Un circuit intégré, ou puce, réunit de nombreux transistors sur une même plaquette de silicium. Ces interrupteurs permettent de réaliser la logique ; la logique permet de réaliser les instructions ; les instructions permettent d’exécuter les logiciels.

Davantage de transistors et des vitesses différentes

La loi de Moore découle de l’observation de Gordon Moore en 1965, révisée en 1975 : le nombre de transistors tendait à doubler environ tous les deux ans. Dix doublements de ce type multiplient un nombre par 210=1024, en environ 20 ans. C’est une tendance de fabrication, pas une garantie physique ; son rythme a ralenti.

Le respect d’une interface préserve le comportement qu’elle promet. Il ne détermine pas la performance, la consommation d’énergie ou le coût. Deux processeurs peuvent implémenter correctement la même instruction d’addition tout en utilisant des circuits, des caches et des fréquences d’horloge différents. L’application obtient le même résultat, mais attend pendant une durée différente.

Points clés

  • Une abstraction expose un comportement utile et masque les détails de l’implémentation.
  • Les couches relient les applications, les logiciels système, l’ISA, la microarchitecture, la logique, les circuits et les dispositifs.
  • Le processeur réunit le chemin de données et l’unité de commande ; la mémoire et les entrées-sorties complètent la représentation classique à cinq composants.
  • La DRAM et la SRAM sont volatiles ; la mémoire flash et les disques magnétiques conservent les données sans alimentation.
  • La loi de Moore décrit une tendance du nombre de transistors, et non une croissance garantie de la performance.
  • Les interfaces compatibles préservent le comportement spécifié, tandis que la vitesse et l’énergie dépendent toujours des couches inférieures.

1.2 Comment le code source devient des instructions

Un processeur exécute le langage machine, constitué d’instructions codées en bits. Le code de haut niveau décrit un calcul à l’aide de variables, d’expressions, de boucles et de fonctions. La traduction relie ces deux représentations, en développant souvent une courte instruction de haut niveau en plusieurs instructions machine.

Le parcours d’un programme compilé

Pour un programme C, les étapes principales sont les suivantes :

ÉtapeEntrée et résultat
CompilateurTraduit le code source en assemblage ou directement en code objet
AssembleurTransforme l’assemblage symbolique en code machine dans un fichier objet
Éditeur de liensCombine les fichiers objets et le code des bibliothèques en résolvant les références entre eux
ChargeurPlace l’exécutable en mémoire et démarre le programme

Un fichier objet peut contenir du code machine sans être encore un programme complet exécutable. Par exemple, l’appel d’une fonction définie dans un autre fichier nécessite que l’éditeur de liens résolve cette référence. Le chargeur fait partie des mécanismes d’exécution du système d’exploitation ; ce n’est pas un autre traducteur de code source.

Suivre une instruction C

Supposons que price se trouve dans le registre x6, que tax soit dans x7 et que le compilateur place total dans x5. Alors :

total = price + tax;

peut devenir cette instruction RISC-V :

add x5, x6, x7

La destination vient en premier dans le texte d’assemblage. L’instruction additionne les valeurs de x6 et x7 et écrit le résultat dans x5. Son codage de type R sur 32 bits place les champs dans un ordre différent :

ChampSignification iciBits
funct7Sélectionne l’addition avec les autres champs d’opération0000000
rs2Registre source 700111
rs1Registre source 600110
funct3Sélecteur d’opération000
rdRegistre destination 500101
opcodeFamille d’instructions0110011

La réunion des champs donne 0000000 00111 00110 000 00101 0110011, soit 0x007302B3. Les espaces rendent les champs lisibles ; ils ne sont pas stockés dans l’instruction.

Une instruction source ne correspond pas nécessairement à une seule instruction machine. Même si tous les opérandes sont dans des registres, f = (g + h) - (i + j); nécessite deux additions et une soustraction. Le chargement des opérandes depuis la mémoire ajoute des instructions. Le nombre d’instructions exécutées dépend donc de la traduction et de l’ISA, pas seulement du nombre de lignes source.

D’autres chemins vers le code machine

Un programme de haut niveau peut souvent être recompilé pour une autre ISA. Son exécutable existant est lié à son ISA et aux conventions du système d’exploitation. Un exécutable x86-64 doit être recompilé, émulé ou traduit sous forme binaire pour fonctionner sur une machine Arm ou RISC-V qui ne peut pas l’exécuter nativement.

Le bytecode est un format intermédiaire d’instructions pour un environnement d’exécution. CPython compile le code source Python en bytecode et l’interprète à l’aide d’un programme interpréteur. Les machines virtuelles Java utilisent couramment la compilation à la volée pour transformer le bytecode fréquemment utilisé en code machine pendant l’exécution du programme. Dans les deux cas, le processeur physique exécute finalement des instructions machine.

L’assemblage reste du texte, même lorsqu’une ligne ressemble étroitement à une instruction réelle. Une pseudo-instruction est une facilité acceptée par l’assembleur : en RISC-V, mv x5, x6 devient addi x5, x6, 0. Le contrôle exact des instructions peut être utile dans le code du système d’exploitation et les boucles critiques, mais il sacrifie une partie de la portabilité et de la liberté d’optimisation du compilateur offertes par le code de haut niveau.

Points clés

  • La compilation, l’assemblage, l’édition de liens et le chargement remplissent des rôles différents.
  • L’assemblage est un texte symbolique ; le code machine est le codage binaire exécuté par le processeur.
  • Une instruction de haut niveau peut entraîner l’exécution de plusieurs instructions machine, dont des opérations mémoire.
  • Les interpréteurs et les compilateurs à la volée s’appuient toujours sur des instructions machine au niveau matériel.
  • Un programme source peut être recompilé pour une autre ISA ; son exécutable existant n’est généralement pas portable.

1.3 L’ISA, l’ABI et la conception du processeur

L’architecture du jeu d’instructions (ISA) est le contrat entre le matériel et les logiciels de plus bas niveau. Elle indique à la personne qui programme en langage machine quelles opérations existent et ce qu’elles signifient. La conception interne d’un processeur peut changer alors que ce contrat reste stable.

Ce que spécifie le contrat

Une ISA définit les instructions et leurs codages binaires, les registres visibles par le programmeur, le mode d’adressage, les types de données pris en charge et les mécanismes de l’architecture utilisés pour accéder aux entrées-sorties. Un compilateur cible ces caractéristiques lorsqu’il transforme un calcul en instructions.

Une implémentation est une conception matérielle qui respecte l’ISA. Sa microarchitecture décrit des choix internes comme les unités d’exécution, les étages du pipeline, la taille des caches et la prédiction des branchements. Ces choix influent fortement sur le temps d’exécution.

QuestionType de choix
Une instruction de multiplication existe-t-elle et quel résultat produit-elle ?ISA
Cette multiplication prend-elle un cycle ou quatre ?Microarchitecture
Quels registres transmettent les arguments des fonctions ?Convention de l’ABI
Quelle est la taille du cache de premier niveau ?Microarchitecture

La distinction porte sur le comportement promis. Un programme doit recevoir le résultat de multiplication spécifié. Il n’a généralement pas besoin de savoir comment le multiplicateur a été construit pour obtenir ce résultat.

Pourquoi une ISA seule ne suffit pas à assurer la compatibilité binaire

L’interface binaire d’application (ABI) ajoute à l’ISA accessible aux programmes utilisateur l’interface du système d’exploitation et les conventions binaires. Elle spécifie les conventions d’appel, comme les registres d’arguments, ainsi que l’organisation des données et les conventions d’appel système. Deux machines peuvent exécuter les mêmes codages d’instructions tout en utilisant des règles différentes pour transmettre un argument à une fonction.

La compatibilité binaire exige la prise en charge des fonctionnalités de l’ISA et de l’ABI nécessaires au programme. Même au sein de la famille x86, qui a commencé avec l’Intel 8086 en 1978, la prise en charge par le système d’exploitation et les modes d’exécution comptent. La rétrocompatibilité a préservé de nombreux anciens programmes alors que les implémentations des processeurs ont changé, mais le partage d’un nom de famille ne garantit pas que chaque exécutable historique fonctionne dans tous les environnements.

Une architecture, de nombreuses implémentations

Intel et AMD implémentent x86-64 avec des conceptions internes différentes. Arm et RISC-V prennent également en charge des implémentations aux budgets de puissance et aux performances très différents. RISC-V a été créée à l’Université de Californie à Berkeley en 2010 et est une ISA ouverte et libre de redevances. Ses jeux de base pour les entiers comprennent RV32I et RV64I ; ses extensions standard comprennent M pour la multiplication et la division d’entiers, et F et D pour les opérations en virgule flottante.

Un programme qui utilise une extension facultative a besoin d’une implémentation qui la prend en charge. L’existence d’une base commune ne rend pas toutes les extensions universelles. L’exemple d’addition RISC-V illustre la même interface entre matériel et logiciel que dans Arm et x86, même si leurs instructions et leurs codages diffèrent.

Richesse des instructions et temps d’exécution

Une ISA peut exprimer davantage de travail dans une seule instruction, ce qui réduit le nombre d’instructions. Cette instruction peut aussi prendre plus de cycles ou exiger un cycle plus long. Le calcul pertinent est le produit complet :

temps processeur=nombre d’instructions exeˊcuteˊes×CPI×dureˊe du cycle.

Un jeu d’instructions plus riche ne suffit pas à déterminer quelle machine est la plus rapide. Une ISA commune ne garantit pas non plus une vitesse égale : des processeurs compatibles peuvent utiliser des horloges, des caches et des unités d’exécution différents pour produire les mêmes résultats requis.

Points clés

  • L’ISA spécifie le comportement de la machine visible par le programmeur ; la microarchitecture l’implémente.
  • L’ABI ajoute les conventions binaires et l’interface du système d’exploitation nécessaires aux exécutables.
  • La compatibilité binaire exige les fonctionnalités pertinentes de l’ISA, l’environnement d’exécution et l’ABI.
  • RISC-V combine une ISA de base pour les entiers et des extensions standard facultatives.
  • La richesse des instructions modifie les compromis entre nombre d’instructions, CPI et durée du cycle.
2

Mesurer la performance qui compte

La performance part du travail à accomplir : une tâche, un flux de requêtes ou un mélange des deux. La mesure de temps adaptée dépend de ce besoin. Distingue le temps d’attente de l’utilisateur du temps de calcul du processeur, puis passe de la fréquence d’horloge à la durée du cycle et inversement. Ces distinctions évitent de confondre, sous un même mot, un processeur rapide, un serveur à grande capacité et une application réactive.

2.1 Temps pour une tâche et travail par seconde

Une personne qui attend la conversion d’un fichier souhaite un temps de réponse court. Un service qui traite de nombreuses conversions a aussi besoin d’un débit élevé. Ces mesures répondent à des questions différentes, même lorsqu’elles décrivent un même ordinateur.

Choisir la grandeur adaptée à la tâche

Le temps de réponse, aussi appelé temps d’exécution ou latence, s’étend du début à la fin de la tâche. Il comprend le calcul, les accès à la mémoire et au stockage, les entrées-sorties et l’activité pertinente du système d’exploitation. Si la tâche attend dans une file après sa soumission, cette attente contribue au temps de réponse pour l’utilisateur.

Le débit est le travail accompli par unité de temps. Il peut s’exprimer en requêtes par seconde ou en tâches par heure. Une machine peut terminer de nombreuses tâches par heure alors que chacune prend beaucoup de temps.

BesoinMesure utileAmélioration
Terminer une requête interactiveTemps de réponseMoins de secondes par requête
Traiter une grande charge de travail indépendanteDébitPlus de requêtes par seconde
Servir de nombreuses personnes de façon acceptableLes deuxDavantage de travail accompli avec des attentes acceptables

Ajouter des processeurs peut augmenter le débit en exécutant des tâches indépendantes simultanément. Cela ne raccourcit pas nécessairement le calcul propre à une tâche, même si cela peut réduire le temps d’attente d’un processeur libre. Un processeur plus rapide améliore souvent les deux mesures.

Comparer les performances dans le bon sens

Pour une même tâche, on définit :

PerformanceX=1TX.

Si A prend 10 s et B prend 15 s, la performance de A par rapport à celle de B est :

PerformanceAPerformanceB=TBTA=1510=1,5.

A est 1,5 fois plus rapide. La performance de B vaut deux tiers de celle de A. Place le temps d’exécution le plus long au-dessus du plus court pour indiquer combien de fois la machine la plus rapide est plus rapide.

Pour une amélioration, l’accélération est l’ancien temps divisé par le nouveau. Une compilation dont la durée passe de 60 s à 48 s a pour accélération :

6048=1,25.

Sa réduction de temps est de :

60−4860=0,20=20%.

La performance a augmenté de 25 %, tandis que le temps a diminué de 20 %. Ces pourcentages utilisent des dénominateurs différents. Dire « 20 % plus rapide » peut masquer la grandeur qui a changé ; le rapport et les temps mesurés rendent l’affirmation claire.

Un débit égal peut masquer des attentes différentes

Un service qui traite 1 200 requêtes par minute fournit 20 requêtes par seconde. Ce débit peut provenir du traitement d’une requête toutes les 50 ms, chaque requête prenant 50 ms. Il peut aussi provenir du traitement de dix requêtes en parallèle, chacune prenant 500 ms : dix requêtes terminées toutes les demi-secondes donnent à nouveau 20 par seconde.

La seconde organisation a le même débit, mais un temps de traitement par requête dix fois plus long. Le seul résultat de débit ne permet pas de déterminer la latence subie par un utilisateur. Compare le même travail accompli, indique l’intervalle de temps et garde les unités lorsque tu passes des minutes aux secondes.

Points clés

  • Le temps de réponse mesure la durée d’une tâche ; le débit mesure le travail accompli par unité de temps.
  • Pour une même tâche, la performance est l’inverse du temps d’exécution.
  • L’accélération est l’ancien temps divisé par le nouveau ; le pourcentage de réduction du temps utilise l’ancien temps comme dénominateur.
  • Des processeurs supplémentaires peuvent augmenter le débit sans raccourcir le calcul d’une tâche séquentielle.
  • Un même débit peut coexister avec des latences de requête très différentes.

2.2 Lire les mesures de temps et convertir les unités d’horloge

Un chronomètre mesure tout ce qui se passe entre le début et la fin. L’équation de performance du processeur mesure le travail du processeur. Distinguer ces deux points de vue évite d’attribuer à une amélioration du processeur la réduction d’un temps d’attente qu’elle ne peut pas supprimer.

Temps écoulé et temps processeur

Le temps écoulé, ou temps réel, comprend le calcul, l’attente de fichiers ou du réseau et les intervalles pendant lesquels d’autres processus s’exécutent. Le temps processeur enregistre le temps de processeur attribué à la tâche. Le temps processeur utilisateur correspond à l’exécution du code du programme ; le temps processeur système correspond à l’exécution du code du système d’exploitation pour son compte.

Supposons que la commande Unix time indique « real 2.50 s, user 1.80 s, sys 0.20 s. » Le programme a utilisé :

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

de temps processeur. Pour cet exemple de mesure à un seul thread, les 0,50 s restantes représentent le temps non comptabilisé comme temps d’exécution processeur, par exemple une attente ou une période pendant laquelle le programme n’est pas planifié. Si une amélioration du processeur divise par deux la partie correspondant au temps processeur tandis que l’attente reste fixe, le temps écoulé devient :

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

Diviser par deux la totalité des 2,50 s réduirait aussi à tort le temps d’attente. La performance du processeur se concentre souvent sur le temps utilisateur ; la performance du système est évaluée à partir du temps écoulé sous une charge système contrôlée.

Pour un programme parallèle, le temps processeur est additionné sur ses threads et ses cœurs. Quatre cœurs travaillant pendant la majeure partie d’une seconde peuvent produire 3,6 s de temps utilisateur pendant 1,0 s de temps écoulé. Dans ce cas, soustraire le temps processeur total du temps écoulé ne mesure pas l’attente.

La fréquence d’horloge est l’inverse de la période

Une horloge donne un rythme au matériel synchrone. La période d’horloge s’exprime en secondes par cycle ; la fréquence d’horloge en cycles par seconde :

peˊriode=1freˊquence.

À 4 GHz, la fréquence est de quatre milliards de cycles par seconde. Un cycle dure :

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

À 2,5 GHz, la période est de 400 ps. Dans l’autre sens, 312,5 ps par cycle donnent :

1312,5×10−12 Hz=3,2 GHz.
Préfixe ou unitéValeur
GHz109 cycles/s
ns10−9 s
ps10−12 s
KiB210=1024 octets
GiB230=1 073 741 824 octets

Les préfixes de temps et de fréquence utilisent des puissances décimales. Les préfixes binaires de mémoire utilisent des puissances de deux. Des notations comme « GB » sont parfois employées de manière approximative pour des quantités binaires ; vérifie donc leur sens avant de convertir une taille.

Interpréter une mesure comme le résultat d’une exécution

La fréquence annoncée d’un processeur ne rend pas compte de chaque instant de son exécution. L’augmentation temporaire de fréquence, la gestion de l’énergie et le bridage thermique modifient la fréquence. Le contenu des caches et l’activité en arrière-plan modifient aussi le temps mesuré. Répéter une mesure et indiquer une valeur typique, comme la médiane, aide à distinguer un résultat stable d’une exécution exceptionnellement favorable. Utilise les mesures de temps et de fréquence du même intervalle d’exécution lorsque tu les relies au nombre de cycles.

Points clés

  • Le temps écoulé comprend l’attente ; le temps processeur comprend les temps utilisateur et système attribués à la tâche.
  • Le temps processeur additionné sur plusieurs cœurs peut dépasser le temps écoulé.
  • La période et la fréquence d’horloge sont inverses ; veille à la cohérence entre secondes, nanosecondes et picosecondes.
  • GHz utilise des puissances décimales de dix ; KiB et GiB utilisent des puissances binaires de deux.
  • L’augmentation temporaire de fréquence, le bridage, les caches et le travail en arrière-plan peuvent modifier le résultat d’une exécution à l’autre.
  • Une accélération du processeur réduit la partie du temps écoulé correspondant au temps processeur, sans modifier les attentes non concernées.
3

Calculer et comparer le temps processeur

Le temps processeur d’un programme dépend du nombre d’instructions qu’il exécute, du nombre de cycles nécessaires à ces instructions et de la durée de chaque cycle. Ces facteurs peuvent évoluer en sens opposés lorsque le compilateur ou le processeur change. Étudie les budgets de cycles et la répartition des instructions avant de comparer les temps d’exécution complets, puis utilise ces mêmes relations pour évaluer les affirmations sur la fréquence d’horloge et le débit d’instructions, ainsi que les synthèses de tests de performance.

3.1 Convertir un budget de cycles en temps processeur

Un cycle d’horloge est une unité de temps du processeur, pas une instruction. Certaines instructions nécessitent de nombreux cycles, et le chevauchement de leur exécution peut permettre d’en terminer plusieurs par cycle. Commence par le nombre total de cycles nécessaires à l’ensemble du programme.

Diviser les cycles par les cycles par seconde

Si le nombre de cycles nécessaires à un programme est connu, son temps processeur est :

T=cycles×peˊriode=cyclesfreˊquence d’horloge.

Pour six milliards de cycles à 3 GHz :

T=6×1093×109=2 s.

Les unités expliquent la division : les cycles divisés par les cycles par seconde donnent des secondes. Multiplier les cycles par la fréquence produirait des cycles au carré par seconde, pas une durée. La multiplication par la période fonctionne parce que son unité est la seconde par cycle.

La même équation permet de trouver une autre inconnue. Multiplie le temps par la fréquence pour retrouver les cycles ; divise les cycles par le temps visé pour trouver la fréquence nécessaire. Garde la fréquence en Hz lorsque le temps est en secondes, ou simplifie explicitement les facteurs correspondants de l’ordre du milliard.

Quand une horloge plus rapide nécessite davantage de cycles

Le processeur A exécute un programme en 10 s à 3 GHz. Son budget de cycles est :

10×3×109=3×1010 cycles.

Une conception B proposée augmente ce nombre de cycles de 20 %. B doit donc exécuter :

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

Pour terminer en 9 s, B nécessite :

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

Le rapport des fréquences d’horloge est de quatre tiers, soit environ 1,33. L’accélération réelle n’est que de dix neuvièmes, soit environ 1,11, car B a besoin de plus de cycles pour terminer le travail. Supposer que l’ancien nombre de cycles reste inchangé conduirait à prévoir une fréquence d’horloge trop basse pour atteindre l’objectif.

Comparer un compromis sans choisir une taille de programme

Supposons qu’une conception multiplie l’ancien nombre de cycles par un facteur a et l’ancienne fréquence d’horloge par un facteur b. Alors :

TnouveauTancien=ab.

La conception est plus rapide lorsque le facteur d’augmentation du nombre de cycles est inférieur au facteur d’augmentation de la fréquence. Si les deux augmentent du même facteur, le temps processeur reste inchangé. Ce rapport est utile lorsqu’une proposition de conception indique des changements en pourcentage sans donner de nombre absolu de cycles.

Pourquoi la période a une limite physique

Entre les registres, les signaux traversent la logique combinatoire et doivent se stabiliser avant que leurs résultats soient enregistrés. Le chemin nécessaire le plus lent est le chemin critique. La technologie des circuits et la quantité de travail attribuée à un étage limitent la réduction possible de la période d’horloge sans compromettre le fonctionnement.

Un concepteur peut diviser le travail en étages de pipeline plus courts pour permettre une horloge plus rapide, mais cette réorganisation peut aussi modifier le nombre de cycles. Davantage de GHz indique donc une fréquence d’horloge plus élevée. Pour établir une amélioration de performance, associe cette fréquence au nombre de cycles dont le programme a réellement besoin avec cette conception.

Points clés

  • Le temps processeur est égal aux cycles multipliés par la période du cycle, ou aux cycles divisés par la fréquence d’horloge.
  • Le temps multiplié par la fréquence d’horloge donne les cycles ; les cycles divisés par le temps visé donnent la fréquence d’horloge nécessaire.
  • Compare le facteur du nombre de cycles au facteur de fréquence lorsque les deux changent.
  • Le chemin critique limite la période d’horloge, et la réorganisation du travail peut modifier le nombre de cycles.

3.2 Pondérer le CPI selon les instructions exécutées

Le nombre de cycles par instruction (CPI) est le nombre total de cycles processeur du programme divisé par son nombre d’instructions exécutées. C’est une moyenne sur une exécution : il peut donc être fractionnaire et dépend des instructions exécutées et de leurs interactions avec la machine.

Additionner les cycles avant de calculer la moyenne

Pour des classes d’instructions d’effectifs Ci et de CPI par classe ci :

cycles=∑iCici,CPI=∑iCici∑iCi.

De façon équivalente, multiplie le CPI de chaque classe par sa proportion dans le nombre d’instructions et additionne les contributions. Les proportions doivent porter sur les instructions exécutées, pas sur les lignes source ou le nombre de types d’instructions.

Supposons que les instructions de l’unité arithmétique et logique prennent 1 cycle, les chargements et rangements 4, et les branchements 2. Une répartition de 50 %, 30 % et 20 % donne :

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

Pour cinq milliards d’instructions à 3 GHz, le total est de 10,5 milliards de cycles et le temps processeur de 3,5 s. La moyenne non pondérée des coûts des trois classes, environ 2,33, est incorrecte : les classes n’apparaissent pas aussi souvent les unes que les autres.

Davantage d’instructions peuvent tout de même nécessiter moins de cycles

Deux versions d’un compilateur utilisent les mêmes coûts par classe :

ClasseCycles par instructionVersion 1, en millionsVersion 2, en millions
Unité arithmétique et logique1400600
Chargement et rangement4300150
Branchement2100100

La version 1 exécute 800 millions d’instructions. Les contributions en cycles sont de 400, 1 200 et 200 millions, soit un total de 1 800 millions. Son CPI est :

1800800=2,25.

La version 2 exécute 850 millions d’instructions. Ses contributions sont de 600, 600 et 200 millions, soit un total de 1 400 millions. Son CPI est :

1400850≈1,65.

À 3 GHz, les temps sont de 0,60 s et d’environ 0,467 s. La version 2 est environ 1,29 fois plus rapide malgré l’exécution de 50 millions d’instructions supplémentaires. Remplacer de nombreuses instructions mémoire coûteuses par un plus grand nombre d’instructions peu coûteuses pour l’unité arithmétique et logique peut rendre ce compromis avantageux.

Le CPI caractérise une charge de travail sur une machine

Les attentes mémoire, les défauts de cache, le comportement des branchements et les choix du compilateur modifient le CPI effectif. Un seul « CPI du processeur » ne peut pas décrire tous les programmes. Des compteurs de performance matériels ou un simulateur peuvent mesurer les nombres totaux d’instructions et de cycles pour la charge de travail analysée.

Le nombre d’instructions par cycle (IPC) utilise les mêmes totaux dans l’ordre inverse :

IPC=1CPI.

Un IPC de 2,5 donne un CPI de 0,4. Plusieurs instructions peuvent se chevaucher dans un processeur qui émet et termine plusieurs instructions par cycle. Une moyenne inférieure à un ne signifie pas que le parcours complet d’une instruction individuelle s’achève en une fraction de cycle d’horloge.

Points clés

  • Calcule le nombre total de cycles en additionnant, pour chaque classe, son nombre d’instructions multiplié par son CPI.
  • Le CPI moyen pondère les coûts des classes par leurs proportions d’instructions exécutées.
  • Une séquence d’instructions plus longue peut s’exécuter plus vite si son nombre total de cycles est plus faible.
  • Le CPI dépend du programme, du compilateur et du comportement de la machine pendant l’exécution.
  • L’IPC est l’inverse du CPI ; le chevauchement des instructions peut produire un CPI inférieur à un.

3.3 Combiner nombre d’instructions, CPI et fréquence d’horloge

L’équation de performance du processeur réunit les trois facteurs du temps d’exécution :

T=I×CPI×tcycle=I×CPIf.

Ici, I est le nombre d’instructions exécutées et f la fréquence d’horloge effective pendant l’exécution. Le nombre d’instructions multiplié par les cycles par instruction donne les cycles. La division par les cycles par seconde donne ensuite des secondes.

Calculer un temps et retrouver une inconnue

Un programme exécute deux milliards d’instructions avec un CPI de 1,5 sur un processeur à 2,5 GHz. Calcule d’abord le nombre total de cycles, puis convertis-le en temps :

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

Pour déduire le CPI du temps mesuré, transforme la même équation :

CPI=TfI.

Pour 1,6 milliard d’instructions en 0,8 s à 3,2 GHz, on obtient 2,56 milliards de cycles. La division par 1,6 milliard d’instructions donne un CPI de 1,6.

Comparer les produits complets

Deux processeurs exécutent le même programme compilé avec le même nombre d’instructions. A a une fréquence de 4 GHz et un CPI de 1,8 ; B a une fréquence de 2,5 GHz et un CPI de 1,0. Leurs temps par instruction sont :

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

B est 1,125 fois plus rapide. Son CPI plus faible compense largement son horloge plus lente. Le nombre d’instructions se simplifie ici parce qu’il est identique ; il ne se simplifierait pas si les deux programmes suivaient des séquences d’instructions différentes.

De même, une option du compilateur qui réduit le nombre d’instructions de 10 % mais augmente le CPI de 15 %, à fréquence identique, modifie le temps d’un facteur :

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

Le temps augmente de 3,5 %. La seule réduction du nombre d’instructions indique une évolution dans le mauvais sens.

Relier les choix de conception aux facteurs
ChoixFacteurs qu’il peut modifier
AlgorithmeNombre d’instructions et éventuellement CPI
Langage de programmation ou compilateurNombre d’instructions et CPI
ISANombre d’instructions, CPI et fréquence d’horloge
OrganisationCPI et fréquence d’horloge
Technologie des circuitsFréquence d’horloge

Ces liens sont utiles pour l’analyse ; ce ne sont pas des réglages indépendants que l’on peut toujours modifier sans conséquence. Un cache réduit les cycles d’attente de la mémoire, ce qui abaisse le CPI effectif. L’exécution en pipeline fait se chevaucher des instructions successives et peut réduire le CPI effectif ou permettre une période d’horloge plus courte. Ces changements peuvent introduire d’autres coûts qui apparaissent dans les totaux mesurés.

Garder un intervalle de mesure cohérent

Mesure le temps processeur, le nombre d’instructions, les cycles et la fréquence pour le même travail. Des compteurs ou une simulation fournissent les nombres d’instructions et de cycles. La fréquence nominale en GHz d’un produit ne retrace pas la fréquence d’une exécution pendant laquelle le processeur accélère ou ralentit. Lorsque la fréquence varie, la moyenne correspondante est le nombre total de cycles comptés divisé par le temps processeur de cet intervalle.

L’équation prévoit le temps d’exécution processeur. L’attente du stockage ou du réseau fait partie du temps écoulé et doit être ajoutée séparément lorsque c’est le résultat dont l’utilisateur a besoin.

Points clés

  • Le temps processeur est le nombre d’instructions exécutées multiplié par le CPI et divisé par la fréquence d’horloge.
  • Transforme l’équation pour déduire le CPI, le nombre d’instructions ou la fréquence nécessaire à partir des grandeurs mesurées.
  • Ne simplifie le nombre d’instructions que lorsque les exécutions comparées ont le même nombre.
  • Des modifications du compilateur et du matériel peuvent améliorer un facteur tout en en dégradant un autre.
  • Utilise la fréquence et les nombres relevés lors de la même exécution, et non une fréquence d’horloge annoncée.
  • Ajoute séparément les attentes non concernées pour prévoir le temps écoulé.

3.4 Évaluer les scores des tests et les affirmations sur le débit d’instructions

Une affirmation utile sur la performance porte sur un travail qui compte pour l’utilisateur. Un programme de test de performance exécute une charge de travail choisie pour mesurer la performance. Une batterie de tests de performance échantillonne plusieurs charges de travail lorsqu’une seule application ne peut pas représenter l’ensemble du besoin.

Lire le type de résultat SPEC

SPEC CPU 2026, publiée en mai 2026, succède à SPEC CPU 2017. Ses batteries sollicitent les processeurs, les systèmes mémoire et les compilateurs. SPECspeed mesure le temps nécessaire pour terminer un exemplaire d’un programme ; cet exemplaire peut lui-même utiliser plusieurs threads. SPECrate mesure le débit à l’aide de plusieurs exemplaires. Les batteries pour les entiers et pour la virgule flottante répondent à différents types de charges de travail, et le produit prend aussi en charge des mesures énergétiques.

Un rapport de vitesse pour un programme compare le temps de référence au temps mesuré :

r=TreˊfeˊrenceTmesureˊ.

Un temps de référence de 3 000 s et un temps mesuré de 250 s donnent 12. Plus le résultat est élevé, mieux c’est. Un rapport de débit comprend le nombre d’exemplaires terminés pendant l’intervalle mesuré. Compare des indicateurs de même type et la même version de la batterie ; un score de vitesse et un score de débit répondent à des questions différentes.

Synthétiser les rapports avec une moyenne géométrique

Pour des rapports positifs, la batterie utilise :

G=r1r2⋯rnn.

Les rapports 2, 8 et 4 donnent un produit de 64 et une racine cubique de 4. Leur moyenne arithmétique est d’environ 4,67, ce qui donne un résultat différent.

La comparaison par la moyenne géométrique ne dépend pas de la machine de référence choisie pour établir les rapports. Supposons que X prenne 10 s et 40 s sur deux programmes, tandis que Y prend 20 s et 25 s. Des temps de référence de 100 s pour les deux donnent des rapports de 10 et 2,5 pour X, et de 5 et 4 pour Y. Les moyennes géométriques sont de 5 et d’environ 4,47 : X est donc en tête avec un facteur d’environ 1,12.

Remplaçons les temps de référence par 50 s et 200 s : X obtient des rapports de 5 et 5, Y de 2,5 et 8. Leurs moyennes géométriques restent de 5 et d’environ 4,47. Les moyennes arithmétiques passent en revanche de 6,25 contre 4,5 à 5 contre 5,25, ce qui inverse le classement. La normalisation par rapport à la référence ne doit pas déterminer quelle machine semble la plus rapide.

Pourquoi les MIPS peuvent favoriser un code plus lent

Les MIPS, millions d’instructions par seconde, sont définis par :

MIPS=ITprocesseur×106=fCPI×106.

Les instructions accomplissent des quantités différentes de travail utile selon les ISA. Même sur une seule machine, les MIPS changent selon le programme, et un débit d’instructions plus élevé peut s’accompagner d’un temps d’exécution plus long.

À 3 GHz, supposons que les instructions de l’unité arithmétique et logique, les chargements et rangements et les branchements coûtent respectivement 1, 4 et 2 cycles. Le code Q en exécute respectivement 400, 300 et 100 millions : 800 millions d’instructions, 1 800 millions de cycles, 0,60 s, environ 1 333 MIPS. Le code P en exécute 1 500, 100 et 100 millions : 1 700 millions d’instructions, 2 100 millions de cycles, 0,70 s, environ 2 429 MIPS. P termine ses instructions plus rapidement mais achève la tâche plus tard.

Les débits de crête décrivent la capacité idéale du matériel. Les charges de travail réelles peuvent atteindre beaucoup moins en raison des dépendances, des attentes mémoire et d’autres limites. Utilise le temps réel d’une tâche pour juger sa performance ; la fréquence, les MIPS et les débits de crête n’en expliquent que certaines parties.

Points clés

  • Choisis des programmes de test de performance représentatifs de la charge de travail prévue.
  • SPECspeed mesure le temps nécessaire pour terminer un exemplaire ; SPECrate mesure le débit sur plusieurs exemplaires.
  • Un rapport temps de référence sur temps mesuré plus élevé indique une meilleure performance.
  • Utilise la moyenne géométrique pour synthétiser des rapports normalisés positifs sans que le classement dépende de la référence.
  • Les MIPS peuvent augmenter alors qu’une tâche ralentit, et les instructions de différentes ISA accomplissent des quantités de travail différentes.
  • Les débits de crête décrivent une capacité idéale, pas le temps d’exécution mesuré d’une tâche.
4

Déterminer les limites d’une amélioration

Une amélioration ne compte que pendant la partie d’une tâche qui peut en bénéficier. Une unité arithmétique plus rapide ne change pas l’attente des fichiers, et des cœurs supplémentaires laissent le travail séquentiel sur un seul cœur. La loi d’Amdahl traduit cette répartition en un budget de temps, rendant visibles les gains probables comme les limites infranchissables. Le même raisonnement aide à choisir une optimisation, à remonter d’un objectif au moyen de l’atteindre et à expliquer pourquoi les charges de travail parallèles de taille fixe et croissante racontent des histoires différentes.

4.1 Calculer le gain obtenu en améliorant une partie d’une tâche

La loi d’Amdahl commence par diviser le temps d’exécution initial en une partie concernée et une partie non concernée. Accélère uniquement le temps de la partie concernée, puis additionne à nouveau les deux parties. Cela évite d’appliquer une amélioration locale à un travail qu’elle ne peut pas modifier.

Construire le nouveau temps à partir des anciens temps

Si la partie concernée devient s fois plus rapide :

Tnouveau=Tconcerneˊs+Tnon concerneˊ.

Soit f la fraction concernée du temps d’exécution initial. La division par le temps initial donne la formule de l’accélération :

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

Un programme de 120 s passe 90 s à effectuer des calculs en virgule flottante et 30 s ailleurs. La fraction concernée est donc de 0,75. Rendre les calculs en virgule flottante trois fois plus rapides réduit leur temps à 30 s :

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

Les calculs en virgule flottante gagnent un facteur trois ; le programme complet gagne un facteur deux. Les 30 s inchangées expliquent l’écart.

Remonter à partir d’un objectif

Pour terminer la même tâche en 40 s, le travail inchangé nécessite toujours 30 s. Il ne reste que 10 s pour la partie en virgule flottante qui prenait initialement 90 s. Donc :

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

Un objectif de 30 s laisserait zéro temps pour ce travail. Aucune accélération finie ne permet à une quantité positive de travail concerné de prendre exactement zéro temps. Lorsque l’accélération locale augmente sans borne, l’accélération globale tend vers :

Slimite=11−f.

Ici, la limite est de 4, approchée par valeurs inférieures. Avec une fraction non concernée d’une moitié, la limite est de 2. Lorsque tout le travail est concerné, aucun temps positif inchangé n’impose un tel plafond fini.

Optimiser ce qui prend du temps

Le principe accélérer le cas courant consiste à repérer où le temps d’exécution est réellement passé. Le profilage mesure cette répartition. Doubler la vitesse d’une partie responsable de 60 % du temps donne :

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

Une amélioration d’un facteur dix sur une partie de 10 % ne donne que :

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

Un facteur local élevé peut apporter moins qu’une amélioration modeste appliquée à une plus grande partie de la tâche.

La fraction concernée doit être une fraction du temps. Si les chargements et rangements représentent 30 % des instructions mais prennent 60 % des cycles, leur fraction du temps à fréquence d’horloge fixe est de 0,60. Compter toutes les instructions de la même façon masquerait leur coût plus élevé.

Appliquer la même répartition à l’attente

Pour une tâche avec 2,00 s de travail processeur et 0,50 s d’attente fixe de fichiers, doubler la vitesse du processeur donne 1,50 s au total. L’accélération est d’environ 1,67. Le même budget de temps s’applique aux améliorations du matériel, des logiciels et des entrées-sorties : détermine exactement quelle partie du temps initial change avant d’appliquer le facteur.

Points clés

  • La loi d’Amdahl accélère le temps concerné et conserve le temps non concerné dans le total.
  • La fraction concernée est une fraction du temps initial, pas des instructions ni des lignes source.
  • Utilise le temps visé moins le temps non concerné pour déterminer l’amélioration locale nécessaire.
  • Une fraction non concernée positive fixe une limite d’accélération égale à un divisé par cette fraction.
  • Le profilage aide à repérer les améliorations qui concernent une grande part du temps d’exécution.

4.2 Estimer l’accélération et l’efficacité sur plusieurs cœurs

Des cœurs supplémentaires ne raccourcissent une tâche que si du travail peut s’exécuter simultanément. Divise le temps initial d’une tâche fixe sur un seul cœur en une partie séquentielle et une partie parallèle, puis examine ce que des cœurs supplémentaires peuvent changer.

La loi d’Amdahl pour une tâche de taille fixe

Soit p la fraction parallèle du temps initial sur un seul cœur. Avec une répartition parfaite sur N cœurs et sans surcoût :

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

Pour une fraction parallèle de 0,95, la fraction séquentielle est de 0,05. Huit cœurs donnent :

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

À 100 cœurs, l’accélération est d’environ 16,8 ; à 1 000 cœurs, elle est d’environ 19,6. Les 5 % séquentiels maintiennent l’accélération pour une taille fixe sous 20, quel que soit le nombre de cœurs ajoutés.

L’efficacité parallèle est l’accélération divisée par le nombre de cœurs. L’efficacité sur huit cœurs est d’environ 0,74, soit 74 %. À 100 cœurs, elle est d’environ 17 %. Une accélération plus élevée peut s’accompagner d’une efficacité plus faible, car chaque cœur supplémentaire contribue moins à la tâche fixe.

Pourquoi les gains mesurés peuvent être plus faibles

Le modèle idéal répartit le travail parallèle en parts égales et ne prévoit aucun coût de coordination. Les programmes réels communiquent et se synchronisent, et certains cœurs reçoivent plus de travail que d’autres.

Pour 100 unités égales de travail indépendant sur quatre cœurs identiques, une affectation équilibrée donne 25 unités à chacun. Si l’un reçoit 40 unités tandis que les autres terminent plus tôt, la fin de la tâche attend ce cœur le plus chargé. L’accélération est de 100 divisé par 40, soit 2,5, avant même d’ajouter les coûts de communication. Additionner les temps de fin anticipée des autres cœurs ne donnerait pas le temps nécessaire pour terminer : c’est le dernier résultat requis qui le détermine.

Un programme à un seul thread n’a aucune fraction parallèle à répartir. Des cœurs supplémentaires peuvent tout de même exécuter d’autres programmes et améliorer le débit du système, mais ils ne divisent pas automatiquement le flux d’instructions de ce programme.

Travail fixe et travail croissant posent des questions différentes

Le passage à l’échelle fort (strong scaling) maintient la taille totale du problème fixe et cherche à savoir combien de fois des processeurs supplémentaires peuvent le terminer plus vite. Le passage à l’échelle faible (weak scaling) augmente le travail total proportionnellement au nombre de processeurs, de sorte que le travail par processeur reste à peu près constant. Une simulation plus grande peut utiliser une grille plus fine tout en gardant à peu près la même charge de travail par processeur.

La loi de Gustafson décrit le travail agrandi lorsque le temps séquentiel reste fixe tandis que le travail parallèle augmente. Sa fraction séquentielle s est mesurée lors de l’exécution parallèle, contrairement à la fraction initiale sur un cœur de la loi d’Amdahl :

Sagrandi=s+(1−s)N.

Pour une fraction séquentielle mesurée de 0,05 sur 100 cœurs, l’accélération pour le problème agrandi est de 95,05. Cela ne contredit pas la limite d’Amdahl de 20 pour une tâche fixe dont la fraction séquentielle initiale était de 5 %. La taille de la tâche et la base de mesure de la fraction diffèrent.

Un logiciel parallèle doit mettre à disposition du travail indépendant, l’équilibrer et coordonner les résultats. Le matériel supplémentaire fournit de la capacité ; la structure du programme détermine dans quelle mesure cette capacité raccourcit son temps d’exécution.

Points clés

  • Pour un passage à l’échelle idéal à taille fixe, ne divise par le nombre de cœurs que le temps parallèle initial.
  • La fraction séquentielle initiale fixe la limite d’accélération multicœur selon Amdahl.
  • L’efficacité parallèle est l’accélération divisée par le nombre de cœurs.
  • La communication, la synchronisation et une répartition inégale du travail réduisent les gains.
  • Le passage à l’échelle fort fixe le travail total ; le passage à l’échelle faible maintient le travail par processeur à peu près constant.
  • La loi de Gustafson utilise une fraction séquentielle mesurée lors de l’exécution parallèle pour une charge de travail croissante.
5

Relier les limites de puissance à la conception multicœur

Un processeur doit terminer son travail en respectant à la fois un budget de temps et un budget de puissance. La commutation des transistors consomme de l’énergie, la tension influe fortement sur ce coût et la chaleur limite l’intensité à laquelle une puce peut fonctionner. Relie ces relations à la fin de la loi idéale de réduction des transistors et au passage à plusieurs cœurs. Tu comprendras ainsi pourquoi davantage de transistors peuvent rester utiles même lorsque des horloges plus rapides ne suffisent plus à apporter le prochain gain de performance.

5.1 Calculer la puissance de commutation et l’énergie d’une tâche

Les processeurs CMOS consomment de l’énergie lors de la commutation des signaux et aussi par les fuites lorsqu’ils sont alimentés. L’énergie dynamique est associée à la commutation ; la puissance statique est consommée même sans commutation utile. Leurs parts relatives dépendent de la puce et de sa charge de travail.

La tension a un effet au carré

L’énergie associée à une transition varie proportionnellement à la capacité et au carré de la tension d’alimentation. Une expression courante utilise la moitié de la capacité multipliée par la tension au carré ; une impulsion complète de charge et de décharge varie proportionnellement à la capacité multipliée par la tension au carré. Pour la puissance dynamique moyenne, utilise :

Pdynamique=αCV2f.

Ici, C est la charge capacitive, V la tension d’alimentation, f la fréquence d’horloge et α décrit l’activité de commutation selon la convention de comptage choisie. Certaines conventions incluent un facteur d’une moitié dans le facteur d’activité. Les calculs de rapports fonctionnent correctement lorsque la convention d’activité reste cohérente.

À capacité et activité inchangées, réduire la tension et la fréquence de 20 % chacune donne :

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

La nouvelle puissance dynamique représente 51,2 % de la puissance initiale. Réduire la tension seule de 10 % donne un facteur de 0,81, soit une réduction de 19 % de la puissance dynamique et de l’énergie par transition.

Une tension plus faible ralentit aussi la commutation des transistors. L’adaptation dynamique de la tension et de la fréquence (DVFS) ajuste la tension et la fréquence ensemble pour que les circuits puissent toujours fonctionner à la vitesse choisie.

Puissance et énergie répondent à des questions différentes

La puissance est un débit d’énergie mesuré en watts ; un watt correspond à un joule par seconde. L’énergie d’une tâche est la puissance moyenne multipliée par la durée :

E=PmoyenneT.
ExécutionPuissance moyenneTempsÉnergie
A20 W3 s60 J
B30 W1,5 s45 J

B consomme plus de puissance pendant son exécution mais moins d’énergie pour terminer la tâche. Le refroidissement doit gérer la vitesse de production de chaleur ; l’utilisation de la batterie et la consommation d’électricité accumulent de l’énergie au fil du temps.

Pour un travail fixe avec les mêmes nombre de transitions, tension et activité, réduire la fréquence seule répartit ces transitions sur une durée plus longue. La puissance dynamique diminue, mais l’énergie dynamique de la tâche reste inchangée. Réduire la tension diminue aussi l’énergie de chaque transition. Si la puissance statique persiste pendant toute l’exécution prolongée, le ralentissement peut même augmenter cette partie de l’énergie de la tâche.

Fuites et matériel inactif

Les transistors censés être bloqués laissent tout de même passer un courant de fuite. Les dispositifs plus petits et les tensions de seuil plus faibles font des fuites un enjeu important de conception. La coupure d’alimentation déconnecte l’alimentation d’une zone inactive pour réduire sa consommation statique.

Un serveur peu chargé peut tout de même consommer une part importante de sa puissance de crête. Faire suivre la consommation au travail utile, ce qu’on appelle la proportionnalité énergétique, est un objectif de conception. Terminer rapidement une tâche et passer à un état de faible consommation peut économiser de l’énergie en raccourcissant l’intervalle pendant lequel les fuites et les autres consommations de fond persistent. La performance et l’efficacité énergétique peuvent donc s’améliorer ensemble.

Points clés

  • La puissance dynamique varie avec l’activité de commutation, la capacité, le carré de la tension et la fréquence.
  • La réduction de la tension diminue l’énergie par transition et nécessite généralement un ajustement de la fréquence.
  • L’énergie d’une tâche est la puissance moyenne multipliée par la durée ; une exécution de puissance supérieure peut consommer moins d’énergie.
  • Réduire la fréquence seule laisse inchangée l’énergie dynamique d’une tâche dont le nombre de transitions est fixe.
  • Les fuites entraînent une puissance statique, et la coupure d’alimentation réduit la consommation des zones inactives.
  • Une faible utilisation ne garantit pas une faible puissance ; la proportionnalité énergétique est un objectif de conception.

5.2 Pourquoi les horloges plus rapides ont atteint une limite de puissance

Pendant des décennies, des transistors plus petits ont permis d’obtenir davantage de dispositifs et une commutation plus rapide tout en maintenant la chaleur à un niveau maîtrisable. Le mur de puissance est apparu lorsque la tension ne pouvait plus diminuer suffisamment pour maintenir cette tendance. Il a changé la façon dont les concepteurs transformaient de nouveaux transistors en performance utile.

La relation idéale de la loi de Dennard

Dans le modèle idéal de réduction développé par Robert Dennard et ses collègues en 1974, soit un facteur k>1 qui décrit la réduction. Les dimensions, la capacité, la tension et le délai sont divisés par ce facteur. La fréquence peut être multipliée par ce facteur. La puissance dynamique par transistor change donc selon :

1k×1k2×k=1k2.

La surface par transistor diminue aussi du carré du facteur de réduction. La même surface peut accueillir autant de transistors supplémentaires, ce qui compense la puissance plus faible de chaque dispositif. La densité de puissance, en watts par unité de surface, reste à peu près constante dans ce modèle idéal.

Pour un facteur de 1,4, la capacité et la tension tombent à environ 0,71 de leurs valeurs initiales et la fréquence augmente d’un facteur 1,4. La puissance par transistor tombe à environ 0,51. Il est possible de placer environ 1,96 fois plus de transistors, de sorte que la puissance totale sur une même surface reste à peu près inchangée.

Pourquoi la tension a cessé de suivre la taille

Les transistors ont besoin d’un seuil de commutation utilisable. Réduire trop fortement la tension de seuil augmente fortement les fuites. Au milieu des années 2000, la tension d’alimentation ne pouvait plus diminuer au même rythme que les dimensions des transistors. À tension presque fixe, une fréquence plus élevée augmente la puissance dynamique, et placer davantage de transistors actifs sur une surface augmente la chaleur à évacuer.

Les chiffres historiques montrent l’ampleur du changement antérieur : les fréquences des ordinateurs de bureau sont passées d’environ 10 MHz au début des années 1980 à 3,8 GHz en 2004, tandis que les tensions d’alimentation passaient d’environ 5 V vers 1 V. Ce sont des valeurs historiques générales, pas des spécifications universelles. Environ 100 W représentait déjà un budget de refroidissement difficile à gérer pour de nombreuses conceptions grand public de l’époque.

L’annulation en 2004 par Intel du Pentium 4 à 4 GHz prévu et de la conception Tejas a marqué ce tournant vers des conceptions attentives à la puissance et vers les processeurs à deux cœurs. Les fréquences d’horloge sont ensuite restées de l’ordre de quelques gigahertz au lieu de poursuivre leur hausse rapide antérieure. La microarchitecture a continué à améliorer la performance d’un seul cœur, mais les augmentations de fréquence ont apporté une part bien plus faible du gain.

Gérer le budget thermique

L’enveloppe thermique (TDP) est une cible de conception thermique utilisée pour dimensionner une solution de refroidissement dans des conditions de fonctionnement spécifiées. Ce n’est ni une mesure de puissance instantanée ni un maximum universel. Lorsque les limites thermiques sont atteintes, le bridage thermique réduit la vitesse de fonctionnement pour diminuer la chaleur.

Si une puce contient plus de matériel que son budget de puissance ne permet d’en faire fonctionner ensemble à pleine vitesse, certaines zones doivent être ralenties ou éteintes. Le silicium noir désigne cet écart entre les transistors disponibles et le matériel actif utilisable simultanément.

La loi de Moore et la loi de Dennard décrivent des tendances différentes : le nombre de transistors pour l’une, les effets d’une réduction tenant compte de la puissance pour l’autre. La fin de la validité de la seconde ne signifiait pas que le nombre de transistors avait cessé d’augmenter. L’obstacle à l’augmentation indéfinie de la fréquence est principalement la puissance et la chaleur, et non une incapacité soudaine des transistors à commuter plus vite.

Points clés

  • La loi idéale de Dennard réduisait la tension avec la taille des dispositifs et maintenait la densité de puissance à peu près constante.
  • Les fuites et les contraintes de seuil de commutation ont empêché la tension de continuer à diminuer de façon idéale.
  • Sans réductions correspondantes de tension, des horloges plus rapides et davantage de dispositifs actifs augmentent la densité de puissance.
  • L’enveloppe thermique guide la conception du refroidissement dans des conditions spécifiées ; le bridage thermique réduit la vitesse aux limites thermiques.
  • Le silicium noir décrit le matériel qui ne peut pas être entièrement actif à pleine vitesse dans les limites du budget de puissance.
  • La tendance du nombre de transistors décrite par Moore est distincte de la relation de réduction décrite par Dennard.

5.3 Utiliser davantage de cœurs dans un budget de puissance

Un processeur multicœur place plusieurs cœurs sur une même puce. Chaque cœur exécute un flux d’instructions, tandis que les cœurs partagent la mémoire principale et souvent certains caches. Les conceptions grand public d’ordinateurs de bureau et portables se sont orientées vers deux cœurs vers 2005-2006, car augmenter la fréquence d’un seul cœur devenait de plus en plus coûteux en puissance.

Comparer deux cœurs plus lents à un cœur plus rapide

Considère un cœur à 4 GHz et 1,2 V contre deux cœurs à 3 GHz et 1,0 V. Pour cette comparaison, garde la même capacité par cœur et la même activité de commutation. La puissance dynamique relative est :

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

Avec un travail égal par cycle et suffisamment de travail indépendant pour les deux cœurs, le débit idéal change d’un facteur :

2×34=1,5.

La paire offre environ 50 % de débit en plus pour environ 4 % de puissance dynamique en plus. Dans ce modèle, l’effet au carré de la réduction de tension rend le cœur supplémentaire possible. La puissance statique, les limites de la mémoire partagée et les coûts de coordination comptent toujours pour évaluer une puce complète.

Pour un programme séquentiel qui n’utilise qu’un seul nouveau cœur, la performance tombe aux trois quarts de la performance initiale à travail égal par cycle. Il prend quatre tiers du temps initial. Additionner les deux fréquences de 3 GHz pour obtenir « 6 GHz » masquerait ce résultat : aucun des deux cœurs ne fonctionne à 6 GHz.

Le logiciel doit rendre le travail parallélisable

Avant le mur de puissance, une fréquence plus élevée et le chevauchement matériel accéléraient souvent le code existant sans changements majeurs. Les cœurs supplémentaires ont besoin de flux d’instructions indépendants. Un programme en profite en divisant son travail en tâches concurrentes, en équilibrant les affectations et en coordonnant les résultats. Les bibliothèques parallèles peuvent fournir cette structure, mais le travail doit tout de même se prêter utilement au parallélisme.

Le parallélisme au niveau des instructions fait se chevaucher des instructions au sein d’un flux, grâce à des techniques matérielles et de compilation comme l’exécution en pipeline et l’émission multiple. Le parallélisme au niveau des threads exécute différents threads sur plusieurs cœurs. Ce sont deux sources différentes de concurrence : la première ne garantit pas qu’un programme puisse occuper tous les cœurs.

Les requêtes indépendantes d’un serveur fournissent naturellement de nombreux flux ; le multicœur peut donc améliorer le débit même lorsque chaque requête reste séquentielle. Raccourcir le calcul d’une requête exige du parallélisme au sein de cette requête. Sa fraction séquentielle impose alors la limite d’Amdahl.

Consacrer les transistors à des travaux efficaces

Davantage de transistors peuvent servir à créer des caches plus grands, plusieurs cœurs généralistes ou du matériel spécialisé. Les GPU et les accélérateurs spécialisés ciblent des charges de travail comme le graphisme, l’apprentissage automatique et l’encodage vidéo. Les puces peuvent aussi combiner des cœurs rapides et gourmands en puissance avec des cœurs plus petits et plus efficaces, comme dans les conceptions big.LITTLE d’Arm.

Avec un budget de puissance fixe, la performance par watt compare la performance utile à la puissance consommée. SPEC CPU 2026 prend aussi en charge des mesures énergétiques en plus des mesures de performance. Une bonne décision de conception tient compte du temps nécessaire pour terminer la charge de travail, de son coût énergétique et de la puissance que le système peut soutenir.

Points clés

  • Les puces multicœurs exécutent plusieurs flux d’instructions sur des cœurs distincts.
  • Une tension et une fréquence plus faibles par cœur peuvent améliorer le débit total avec un budget de puissance dynamique similaire.
  • Une tâche séquentielle ne tire aucune capacité d’exécution supplémentaire des cœurs inutilisés.
  • Le chevauchement au niveau des instructions et le parallélisme au niveau des threads sont des mécanismes différents.
  • Des requêtes indépendantes peuvent améliorer le débit du système sans réduire le temps de calcul de chaque requête.
  • Le matériel spécialisé et les architectures à cœurs mixtes offrent d’autres façons d’utiliser efficacement les transistors.

Performance des ordinateurs : exemples

5 Leçons Interactives

1

Suis un calcul du code au matériel

16 étapes
Suis une addition à travers les couches du système, la traduction et les interfaces qui permettent à différents processeurs d’exécuter des logiciels compatibles.
  1. 1
    IntroductionUne addition, plusieurs vues

    L’instruction C total = price + tax; décrit un résultat, mais ne précise pas les registres, les codages d’instructions ni les circuits de commutation. Ces détails se trouvent dans différentes couches, chacune étant une abstraction qui masque son fonctionnement derrière une interface.

    Suis l’addition vers les couches inférieures, puis demande-toi ce qui doit correspondre pour qu’un binaire s’exécute sur une autre machine : l’ISA et ses conventions. Cela distingue le comportement sur lequel le logiciel compte des choix matériels qui déterminent sa performance.

  2. 2
    ExplicationUne interface masque le fonctionnement interne

    Une abstraction expose un service utile tout en masquant son implémentation interne. Une application peut demander la lecture d’un fichier sans contrôler l’électronique du stockage.

    Un parcours descendant courant est applications → logiciels système → ISA → microarchitecture → logique numérique → circuits → transistors. Chaque vue rend le système maîtrisable en fournissant une frontière à laquelle une autre personne peut travailler.

  3. 3
    ExempleQui choisit quoi pour l’addition ?

    Pour total = price + tax;, le compilateur peut choisir des registres et une instruction d’addition. Il n’a pas besoin de concevoir les portes de l’additionneur.

    Le concepteur de la microarchitecture choisit le matériel d’exécution ; le concepteur logique construit un additionneur à partir de portes ; les concepteurs de circuits s’occupent du comportement électrique. Le respect des interfaces permet d’intégrer chaque choix dans le calcul complet sans exposer tous les détails inférieurs au programmeur.

  4. 4
    LienSituer les composants physiques

    Les cinq composants classiques sont l’entrée, la sortie, la mémoire, le chemin de données et l’unité de commande. Le processeur réunit le chemin de données et l’unité de commande : le premier agit sur les données, la seconde dirige le travail.

    La DRAM constitue la mémoire de travail, la SRAM fournit de petits caches rapides, et toutes deux sont volatiles. La mémoire flash et les disques magnétiques conservent les données sans alimentation. Un système d’exploitation gère ces ressources en tant que logiciel exécuté sur le processeur.

  5. 5
    DéfiRepérer la couche modifiée

    Une ingénieure remplace les portes à l’intérieur d’un additionneur. Ses instructions machine produisent toujours tous les mêmes résultats requis. A-t-elle nécessairement modifié l’ISA ? Explique.

    ---reveal---

    Non. L’ingénieure a modifié l’implémentation en logique numérique. L’ISA spécifie le comportement visible de l’addition ; différentes dispositions de portes peuvent respecter cette même spécification. Elles peuvent néanmoins différer par leur délai, leur puissance ou leur surface.

  6. 6
    Point cléDavantage de dispositifs ne déterminent pas le temps d’une tâche

    Un transistor agit comme un interrupteur commandé électriquement, et une puce intègre de nombreux dispositifs de ce type. La loi de Moore décrit la tendance historique à doubler approximativement le nombre de transistors environ tous les deux ans.

    Dix doublements donnent un facteur de 1 024 sur environ 20 ans. Cette tendance de fabrication, dont le rythme a ralenti, ne précise pas la vitesse d’exécution d’un programme. Les dispositifs ajoutés nécessitent toujours une organisation utile et un budget de puissance viable.

  7. 7
    ExplicationConstruire un exécutable

    Un compilateur traduit le code source de haut niveau en assemblage ou en code objet. Un assembleur code l’assemblage dans un fichier objet. Un éditeur de liens combine les fichiers objets et le code des bibliothèques en résolvant les références entre eux.

    Le chargeur place ensuite l’exécutable en mémoire et le démarre. Ces rôles sont distincts : le code traduit peut encore nécessiter la résolution d’une référence à une bibliothèque avant de former l’exécutable utilisé pour l’exécution.

  8. 8
    ExempleChoisir des registres et une instruction

    Supposons que price soit conservé dans x6, tax dans x7 et que le résultat doive être placé dans x5. L’addition en C peut devenir :

    add x5, x6, x7
    

    La destination apparaît en premier dans cette syntaxe d’assemblage. L’instruction lit les deux registres source, additionne leurs valeurs et écrit le résultat dans la destination. Le texte est une instruction symbolique ; le processeur a besoin de son codage binaire.

  9. 9
    ExempleCoder la même addition

    Les champs du codage de type R, dans l’ordre des bits stockés, sont :

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

    Réunis, ils codent 0x007302B3. Les champs des registres source précèdent le champ destination dans la disposition des bits, même si la destination vient en premier dans le texte d’assemblage. Les positions des champs permettent au matériel d’interpréter les mêmes bits de manière cohérente.

  10. 10
    ConseilCompter les opérations, pas les lignes source

    Même lorsque les opérandes sont déjà dans des registres, f = (g + h) - (i + j); nécessite deux additions et une soustraction. Les chargements ajoutent des instructions lorsque les données se trouvent initialement en mémoire.

    Les raccourcis d’assemblage peuvent aussi masquer une étape de traduction : mv x5, x6 devient addi x5, x6, 0. CPython interprète un bytecode intermédiaire et Java utilise couramment la compilation à la volée, mais dans tous les cas le processeur physique exécute finalement des instructions machine.

  11. 11
    DéfiRepérer une fonction dont la référence n’est pas résolue

    L’assemblage a été converti en code objet, mais un appel fait toujours référence à une fonction située dans un autre fichier objet. Quelle étape traite cette référence, et quelle étape ultérieure démarre le programme ?

    ---reveal---

    L’éditeur de liens résout la référence en combinant les fichiers objets. Le chargeur place ensuite l’exécutable obtenu en mémoire et le démarre. Le chargement ne remplace pas le travail de traduction et de résolution des références effectué aux étapes précédentes de construction.

  12. 12
    ExplicationDistinguer le contrat de son implémentation

    L’ISA spécifie les instructions, les codages, les registres, l’adressage et les autres comportements visibles de la machine. La microarchitecture détermine les pipelines, les unités d’exécution, les caches et les structures internes associées.

    L’existence d’une multiplication et le résultat qu’elle renvoie sont des questions d’ISA. Le fait que cette multiplication prenne un cycle ou quatre est une question d’implémentation. Deux processeurs compatibles peuvent donc calculer le même résultat à des vitesses différentes.

  13. 13
    LienAjouter les conventions binaires

    L’ABI ajoute à l’ISA accessible aux programmes utilisateur les interfaces du système d’exploitation et des conventions comme les registres d’arguments et l’organisation des données. Un binaire a besoin à la fois des fonctionnalités d’instructions qu’il utilise et d’un environnement d’exécution compatible.

    RISC-V propose les bases RV32I et RV64I ainsi que des extensions facultatives, notamment M pour la multiplication et la division d’entiers et F et D pour la virgule flottante. Le seul partage d’une ISA de base ne garantit pas la présence de chaque extension ou ABI attendue par un programme.

  14. 14
    DéfiDéterminer ce que la compatibilité exige réellement

    Un binaire fonctionne sur une nouvelle machine dont la taille de cache est différente, mais échoue sur une autre machine à laquelle manque une extension d’instructions qu’il utilise. Qu’est-ce qui explique ces résultats différents ?

    ---reveal---

    La taille du cache est un choix d’implémentation qui peut influer sur la vitesse tout en préservant le comportement requis par l’ISA. L’extension manquante prive le binaire de la prise en charge d’instructions dont il a besoin. La réutilisation d’un binaire exige les fonctionnalités pertinentes de l’ISA et l’ABI ; des caches identiques ne font pas partie de ces exigences.

  15. 15
    DéfiÉvaluer l’affirmation sur une instruction plus riche

    Une instruction proposée pour une ISA remplace plusieurs anciennes instructions. Son concepteur affirme que cela prouve à lui seul que le programme sera plus rapide sur la nouvelle machine. Que faut-il comparer d’autre ?

    ---reveal---

    Compare le nombre d’instructions, le nombre moyen de cycles par instruction et la période d’horloge pour la tâche complète. La nouvelle instruction peut réduire le nombre d’instructions tout en augmentant le coût en cycles ou en nécessitant une période plus longue. Le bénéfice de la traduction ne devient un gain de performance qu’à travers le produit complet qui détermine le temps.

  16. 16
    RécapitulatifLire le parcours complet

    Une expression source devient des instructions par traduction et édition de liens, puis s’exécute sur du matériel qui implémente une ISA. L’ABI ajoute les conventions nécessaires à l’environnement de l’exécutable.

    Utilise ce parcours pour situer un changement : les choix de code modifient le flux d’instructions ; les choix d’implémentation modifient son exécution. La compatibilité concerne le comportement requis, tandis que la performance dépend du travail et des temps dans toutes les couches inférieures.

2

Choisis et interprète une mesure de performance

12 étapes
Compare le temps d’une tâche au débit du système, puis lis les mesures de temps processeur et convertis les unités d’horloge.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionDéterminer ce que signifie terminer
  2. 2
    ExplicationMesurer une tâche ou un flux
  3. 3
    ExempleInverser le rapport des temps
  4. 4
    DéfiUn même débit signifie-t-il une même attente ?
  5. 5
    ExplicationLire les temps réel, utilisateur et système
  6. 6
    Point cléLes secondes processeur parallèles s’additionnent
  7. 7
    ExempleCalculer l’inverse en secondes
  8. 8
    ConseilDistinguer les préfixes décimaux et binaires
  9. 9
    DéfiDéduire une période d’horloge
  10. 10
    ConseilDécrire une exécution réelle
  11. 11
    DéfiPrévoir le temps écoulé après une amélioration du processeur
  12. 12
    RécapitulatifAssocier la bonne unité à l’affirmation
3

Construis et vérifie une prévision du temps processeur

21 étapes
Combine les cycles, la répartition des instructions et la fréquence d’horloge, puis vérifie si les affirmations sur la performance décrivent le travail accompli.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionTrois facteurs déterminent un temps d’exécution
  2. 2
    ExplicationCommencer par le budget de cycles
  3. 3
    ExempleRetrouver les cycles avant de modifier la conception
  4. 4
    LienL’horloge ne peut pas dépasser la logique nécessaire
  5. 5
    DéfiL’augmentation de fréquence est-elle suffisante ?
  6. 6
    ExplicationLe CPI est une moyenne pondérée par les exécutions
  7. 7
    ExempleÉtudier une répartition des instructions
  8. 8
    ExempleUn flux plus long peut avoir un total de cycles plus faible
  9. 9
    Point cléUne moyenne inférieure à un est possible
  10. 10
    DéfiCalculer les cycles et le débit inverse
  11. 11
    ExplicationPasser des instructions au temps
  12. 12
    ExempleComparer deux nombres d’instructions égaux
  13. 13
    LienRepérer le levier de conception
  14. 14
    DéfiRetrouver un CPI mesuré
  15. 15
    ExplicationChoisir l’indicateur de test de performance
  16. 16
    ExempleMultiplier les rapports, puis calculer la racine
  17. 17
    DéfiLire un rapport de débit
  18. 18
    ExempleVérifier ce que favorise un résultat élevé en MIPS
  19. 19
    ConseilLire les chiffres de crête comme une capacité
  20. 20
    DéfiCombiner les changements du compilateur et du matériel
  21. 21
    RécapitulatifVérifier l’affirmation complète
4

Détermine quelle partie limite une accélération

15 étapes
Utilise des budgets de temps pour évaluer une amélioration locale, une accélération visée et une exécution parallèle sur davantage de cœurs.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionGarder le travail inchangé dans le budget
  2. 2
    ExplicationRépartir le temps initial avant de l’accélérer
  3. 3
    ExempleAccélérer la partie en virgule flottante
  4. 4
    ExempleRemonter à partir du temps visé
  5. 5
    Point cléProfiler la partie coûteuse
  6. 6
    DéfiChoisir la meilleure amélioration
  7. 7
    ExplicationUtiliser les cœurs uniquement pour le temps parallèle
  8. 8
    ExempleAjouter de nombreux cœurs à une tâche parallèle à 95 %
  9. 9
    ExplicationDiviser l’accélération par le nombre de cœurs pour trouver l’efficacité
  10. 10
    ExempleLa fin de la tâche attend le cœur le plus chargé
  11. 11
    DéfiRetrouver la contrainte séquentielle
  12. 12
    LienChanger la question lorsque le travail augmente
  13. 13
    DéfiVérifier si deux affirmations se contredisent
  14. 14
    DéfiInclure le travail processeur et l’attente des fichiers
  15. 15
    RécapitulatifDéterminer d’abord le temps restant
5

Explique le mur de puissance et la réponse multicœur

19 étapes
Calcule la puissance et l’énergie dynamiques, suis la fin de la réduction idéale et évalue le bénéfice de cœurs plus lents.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionLa performance a un budget thermique
  2. 2
    ExplicationCompter séparément commutation et fuites
  3. 3
    ExempleAppliquer le carré de la tension
  4. 4
    ExempleComparer l’énergie sur une tâche complète
  5. 5
    Point cléUne fréquence plus faible ne supprime pas les transitions
  6. 6
    DéfiGarder la composante statique inchangée
  7. 7
    ExplicationLa réduction idéale maintenait une densité de puissance stable
  8. 8
    ExempleVérifier une génération technologique idéale
  9. 9
    ExplicationLa tension ne pouvait plus suivre la taille
  10. 10
    LienLire les limites thermiques comme des contraintes de fonctionnement
  11. 11
    DéfiDiagnostiquer l’échec de la réduction idéale
  12. 12
    ExplicationDavantage de cœurs fournissent des flux distincts
  13. 13
    ExempleÉvaluer la puissance dynamique de deux cœurs plus lents
  14. 14
    ExempleDéterminer si la charge de travail peut utiliser les deux cœurs
  15. 15
    LienDistinguer le chevauchement des instructions et celui des threads
  16. 16
    LienUtiliser du matériel spécialisé pour un travail adapté
  17. 17
    DéfiChoisir une conception pour du travail indépendant
  18. 18
    DéfiCombiner ralentissement, énergie et temps d’exécution
  19. 19
    RécapitulatifAdapter la conception à son travail utile

Performance des ordinateurs : QCM

50 Questions Pratiques en 5 séries

Série 1 : Relier les couches et les mesures de performance de base10 Questions Pratiques

Question 1 sur 10

Une développeuse considère la lecture d’un fichier comme un service du système d’exploitation sans contrôler l’électronique du stockage. Quelle idée rend cette séparation possible ?
  1. La compilation vers un nouveau jeu d’instructions
  2. L’ajout de stockage physique à la mémoire principale
  3. L’abstraction par une interface définie
  4. La combinaison du chemin de données et de la logique de commande
Afficher la réponseMasquer la réponse
Réponse : C
L’abstraction expose le service dont la développeuse a besoin tout en masquant son implémentation. L’interface du système d’exploitation permet au programme de demander la lecture d’un fichier sans gérer les circuits du périphérique. La compilation traduit le code, mais ce n’est pas l’idée qui explique pourquoi un service peut masquer ses détails internes.

Question 2 sur 10

Un fichier objet appelle une fonction définie dans un autre fichier objet. Quel outil résout cette référence lors de la construction de l’exécutable ?
  1. L’éditeur de liens
  2. Le compilateur
  3. L’assembleur
  4. Le chargeur
Afficher la réponseMasquer la réponse
Réponse : A
L’éditeur de liens combine les fichiers objets et résout les références entre leur code et leurs données. Un assembleur peut produire du code machine tout en laissant une référence à une fonction externe non résolue. Le chargeur démarre l’exécutable obtenu ; il ne remplace pas l’étape d’édition de liens décrite ici.

Question 3 sur 10

Un service termine 1 800 tâches en 90 s. Quel est son débit ?
  1. 30 tâches/s
  2. 0,05 tâche/s
  3. 1 710 tâches/s
  4. 20 tâches/s
Afficher la réponseMasquer la réponse
Réponse : D
Le débit est le travail accompli divisé par l’intervalle de temps : 1 800 divisé par 90 donne donc 20 tâches par seconde. La division dans l’autre sens donne 0,05 seconde par tâche, un temps par tâche terminée. Cet inverse n’est pas un débit en tâches par seconde.

Question 4 sur 10

Une même conversion prend 18 s sur la machine L et 12 s sur la machine M. Comment la performance et le temps d’exécution de M se comparent-ils à ceux de L ?
  1. 1,5 fois la performance ; 50,0 % de temps en moins
  2. 1,5 fois la performance ; 33,3 % de temps en moins
  3. 0,67 fois la performance ; 33,3 % de temps en moins
  4. 1,33 fois la performance ; 25,0 % de temps en moins
Afficher la réponseMasquer la réponse
Réponse : B
La performance est l’inverse du temps : M a donc 18 divisé par 12, soit 1,5 fois la performance de L. La réduction du temps est de 6 divisé par le temps initial de 18, soit environ 33,3 %. Une augmentation de performance de 50 % ne signifie pas une réduction de temps de 50 %, car les deux pourcentages ont des dénominateurs différents.

Question 5 sur 10

Un compte rendu de temps pour un programme à un seul thread indique « real 4.4 s, user 2.7 s, sys 0.5 s. » Quel temps processeur est attribué à cette tâche ?
  1. 4,4 s
  2. 3,2 s
  3. 2,7 s
  4. 1,2 s
Afficher la réponseMasquer la réponse
Réponse : B
Le temps processeur comprend l’exécution utilisateur et l’exécution du système d’exploitation pour le compte de la tâche, soit 2,7 plus 0,5, ou 3,2 s. Ne prendre que 2,7 s omet le temps processeur système. Les 4,4 s de temps écoulé comprennent aussi les intervalles pendant lesquels la tâche n’utilise pas le processeur.

Question 6 sur 10

Une tâche utilise 7,5 milliards de cycles à une fréquence constante de 2,5 GHz. Quel est son temps processeur ?
  1. 3,0 s
  2. 0,3 s
  3. 5,0 s
  4. 18,75 s
Afficher la réponseMasquer la réponse
Réponse : A
Divise 7,5 milliards de cycles par 2,5 milliards de cycles par seconde pour obtenir 3,0 s. Multiplier les deux nombres donne 18,75 mais ne produit pas une durée. Le nombre de cycles doit être multiplié par les secondes par cycle, ou divisé par les cycles par seconde.

Question 7 sur 10

Un programme exécute 70 % d’instructions de l’unité arithmétique et logique à 1 cycle chacune et 30 % d’instructions mémoire à 5 cycles chacune. Quel est son CPI moyen ?
  1. 3,0
  2. 1,8
  3. 2,5
  4. 2,2
Afficher la réponseMasquer la réponse
Réponse : D
Pondère chaque coût en cycles par sa proportion d’instructions : 0,70 fois 1 plus 0,30 fois 5 donne 2,2 cycles par instruction. La moyenne simple des coûts des classes est de 3,0, mais elle considère les deux classes comme également fréquentes. Leurs nombres d’instructions exécutées sont différents.

Question 8 sur 10

Une tâche exécute initialement 1,5 milliard d’instructions avec un CPI de 2,0 à 3 GHz. Un nouveau code exécute 1,2 milliard d’instructions avec un CPI de 2,8. Quelle fréquence d’horloge constante permettrait au nouveau code de se terminer 20 % plus tôt que l’ancien ?
  1. 3,36 GHz
  2. 3,5 GHz
  3. 4,2 GHz
  4. 4,0 GHz
Afficher la réponseMasquer la réponse
Réponse : C
Le temps initial est de 1,0 s, donc l’objectif est de 0,8 s. Le nouveau code nécessite 1,2 fois 2,8, soit 3,36 milliards de cycles ; la division par 0,8 s donne 4,2 GHz. Une fréquence de 3,36 GHz ne fait que rétablir le temps initial de 1,0 s et n’atteint pas l’amélioration demandée.

Question 9 sur 10

Une tâche de 100 s passe 40 s dans une routine. La routine devient quatre fois plus rapide et tout le travail restant est inchangé. Quel est le nouveau temps de la tâche ?
  1. 25 s
  2. 85 s
  3. 70 s
  4. 60 s
Afficher la réponseMasquer la réponse
Réponse : C
Les 40 s de la routine deviennent 10 s, tandis que le travail non concerné prend toujours 60 s, soit 70 s au total. Diviser les 100 s complètes par quatre accélérerait à tort la partie inchangée. Une accélération locale ne s’applique qu’au temps initial passé dans la routine améliorée.

Question 10 sur 10

Une conception CMOS réduit la tension à 90 % et la fréquence à 80 % de leurs valeurs précédentes, à capacité et activité inchangées. Quelle fraction de la puissance dynamique initiale reste-t-il ?
  1. 0,648
  2. 0,720
  3. 0,810
  4. 0,576
Afficher la réponseMasquer la réponse
Réponse : A
La puissance dynamique varie avec le carré de la tension et avec la fréquence : le rapport est donc 0,90 au carré fois 0,80, soit 0,648. Multiplier directement la tension et la fréquence donne 0,720 et omet l’effet du carré de la tension. Le résultat concerne la puissance dynamique ; aucune valeur de puissance statique n’est fournie.
Série 2 : Interpréter les charges de travail, les répartitions et les changements de conception10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Un concepteur modifie les portes utilisées dans un additionneur tout en gardant inchangés tous les résultats visibles par l’ISA. À quelle couche appartient ce changement des portes ?
  1. Les applications
  2. La logique numérique
  3. Les logiciels système
  4. Les conventions de l’ABI
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Un compilateur a déjà produit le texte d’assemblage, et le programme a encore besoin d’une fonction de bibliothèque externe. Quelles sont les principales étapes suivantes avant le début de l’exécution ?
  1. Édition de liens, compilation, puis chargement
  2. Chargement, assemblage, puis édition de liens
  3. Assemblage, chargement, puis édition de liens
  4. Assemblage, édition de liens, puis chargement
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Une exécution utilise quatre cœurs et indique 2,0 s de temps écoulé avec un total de 6,8 s de temps processeur utilisateur et système. Que montre ce résultat ?
  1. Un travail processeur équivalent à 3,4 cœurs en moyenne
  2. Un résultat de mesure physiquement impossible
  3. Exactement 4,8 s passées à attendre le stockage
  4. Une fréquence d’horloge de 3,4 GHz par cœur actif
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Un processeur termine en moyenne 2 instructions par cycle pendant une exécution. Quel est le CPI correspondant ?
  1. 2,0
  2. 1,0
  3. 0,5
  4. 0,2
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Sur un processeur à fréquence fixe, les instructions de l’unité arithmétique et logique coûtent 1 cycle et les instructions mémoire 4. La version U exécute 600 millions d’instructions pour l’unité arithmétique et logique et 200 millions d’instructions mémoire ; la version V en exécute respectivement 900 millions et 100 millions. Quelle version termine en premier, et avec quelle accélération ?
  1. V ; environ 1,077 fois plus rapide
  2. U ; environ 1,250 fois plus rapide
  3. V ; environ 1,400 fois plus rapide
  4. U ; environ 1,077 fois plus rapide
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Trois programmes produisent des rapports de vitesse normalisés de 1, 4 et 16. Quel score obtenu par moyenne géométrique les synthétise ?
  1. 7
  2. 8
  3. 4
  4. 16
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Une tâche fixe prend 160 s sur un cœur, dont 40 s qui doivent rester séquentielles. Sur huit cœurs, son travail parallèle se répartit également et la coordination ajoute 5 s après le travail. Quels sont l’accélération globale et l’efficacité parallèle ?
  1. Environ 2,91 et 36,4 %
  2. Environ 3,20 et 40,0 %
  3. Environ 2,67 et 66,7 %
  4. Environ 2,67 et 33,3 %
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Quel changement a mis fin à la réduction idéale qui permettait des horloges plus rapides à densité de puissance à peu près constante ?
  1. Le nombre de transistors a cessé d’augmenter sur toutes les puces
  2. La tension a cessé de diminuer au même rythme que la taille des dispositifs
  3. Les périodes d’horloge sont devenues indépendantes du délai des circuits
  4. Le nombre d’instructions est devenu déterminé par les lignes source
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Une puce remplace un cœur à 3 GHz par quatre cœurs à 3 GHz qui offrent la même performance par cœur. Une tâche entièrement séquentielle ne subissait aucune attente en file. Quel effet ce changement du nombre de cœurs a-t-il sur le temps de calcul de cette tâche ?
  1. Il devient égal à un quart du temps initial
  2. Il reste identique sur un seul cœur
  3. Il devient égal aux trois quarts du temps initial
  4. Il devient quatre fois plus long
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Un processeur termine 1,8 milliard d’instructions en 1,2 seconde processeur, et des compteurs enregistrent 3,6 milliards de cycles. Un rapport indique que le processeur fonctionne à « 3,6 GHz ». Quels CPI et fréquence moyenne effective décrivent cette exécution ?
  1. CPI de 2,0 et fréquence de 3,0 GHz
  2. CPI de 1,5 et fréquence de 3,6 GHz
  3. CPI de 2,4 et fréquence de 3,6 GHz
  4. CPI de 2,0 et fréquence de 4,32 GHz
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 3 : Repérer les goulots d’étranglement et comparer des conceptions complètes10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Deux processeurs prennent en charge la même ISA accessible aux programmes utilisateur et les mêmes extensions, mais leurs systèmes d’exploitation utilisent des conventions d’appel système et d’appel de fonction différentes. Pourquoi un binaire destiné à un environnement n’est-il pas garanti de fonctionner sans modification dans l’autre ?
  1. Leurs ABI diffèrent malgré l’ISA commune
  2. Leurs tailles de cache doivent être identiques
  3. Leurs ISA doivent coder l’addition différemment
  4. Leurs fréquences d’horloge doivent correspondre pour être compatibles
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Une partie inchangée d’une tâche prend 25 % de son temps initial. Vers quelle accélération globale tend-on en accélérant uniquement le reste, lorsque son accélération locale augmente sans borne ?
  1. 3
  2. 2,5
  3. 4
  4. 5
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Une conception nécessite 15 % de cycles en plus pour un programme, mais augmente sa fréquence d’horloge de 25 %. Quelle fraction de l’ancien temps processeur représente le nouveau temps processeur ?
  1. 0,80
  2. 1,10
  3. 1,4375
  4. 0,92
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

La période d’une horloge passe de 625 ps à 500 ps. Quels sont sa nouvelle fréquence et le pourcentage d’augmentation de cette fréquence ?
  1. 2,0 GHz ; augmentation de 20 %
  2. 2,0 GHz ; augmentation de 25 %
  3. 1,6 GHz ; augmentation de 25 %
  4. 1,6 GHz ; augmentation de 20 %
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Pour une même tâche sur un processeur, la version H indique 2 000 MIPS et 0,9 s de temps processeur ; la version J indique 1 500 MIPS et 0,8 s de temps processeur. Qu’établit cette comparaison ?
  1. H exécute 33 % d’instructions en plus et est plus rapide
  2. H exécute 50 % d’instructions en plus et est plus lente
  3. H exécute 50 % d’instructions en plus et est plus rapide
  4. H exécute 33 % d’instructions en plus et est plus lente
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Une tâche de 200 s passe 120 s dans une routine qui peut être accélérée. Un concepteur promet une accélération globale d’un facteur trois en ne modifiant que cette routine. Comment juger cette promesse ?
  1. Réalisable ; une accélération locale d’un facteur trois atteint l’objectif
  2. Réalisable ; une accélération locale d’un facteur six atteint l’objectif
  3. Possible seulement si le temps de la routine atteint exactement zéro
  4. Impossible ; les 80 s inchangées dépassent le temps visé
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Un programme atteint une accélération de 6 sur 10 cœurs. Quelle est son efficacité parallèle ?
  1. 60%
  2. 40%
  3. 67%
  4. 6%
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

À tension fixe, une tâche prend 2 s avec 40 W de puissance dynamique et 10 W de puissance statique. Diviser la fréquence par deux double sa durée et divise la puissance dynamique par deux, tandis que la puissance statique reste de 10 W. Quelle est la nouvelle énergie totale de la tâche ?
  1. 80 J, soit 20 J de moins
  2. 100 J, soit une valeur inchangée
  3. 120 J, soit 20 J de plus
  4. 200 J, soit 100 J de plus
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Dans une réduction idéale selon Dennard d’un facteur 2, comment la puissance par transistor et la densité de transistors changent-elles ?
  1. La puissance est divisée par deux ; la densité est doublée
  2. La puissance est divisée par quatre ; la densité est quadruplée
  3. La puissance reste inchangée ; la densité est quadruplée
  4. La puissance est divisée par huit ; la densité est quadruplée
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Un cœur à 4 GHz et 1,2 V est remplacé par deux cœurs à 3 GHz et 1,0 V, avec une capacité et une activité égales par cœur et un travail égal par cycle. Une charge de travail a une fraction parallèle de 80 % sur le cœur initial. Sans surcoût, comment son nouveau temps d’exécution se compare-t-il à l’ancien ?
  1. 0,67 fois le temps initial
  2. 0,75 fois le temps initial
  3. 0,80 fois le temps initial
  4. 1,33 fois le temps initial
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 4 : Analyser les affirmations et retrouver les grandeurs manquantes10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Une application produit les mêmes résultats sur deux ordinateurs compatibles, mais le travail qui sollicite beaucoup la mémoire est bien plus lent sur l’un d’eux. Comment l’abstraction peut-elle expliquer ces deux observations ?
  1. Les interfaces exigent un matériel identique quand les résultats sont égaux
  2. Des temps différents montrent que l’application doit utiliser une ISA différente
  3. La performance de la mémoire est fixée par la spécification du langage de haut niveau
  4. Les interfaces préservent le comportement requis tandis que les couches inférieures influent sur le temps
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

En assemblage RISC-V, mv x9, x10 peut être assemblée sous la forme addi x9, x10, 0. De quel type de construction d’assemblage s’agit-il pour mv ici ?
  1. Une interface d’appel système
  2. Une pseudo-instruction
  3. Un format de fichier binaire
  4. Un cycle d’horloge matériel
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Une tâche à un seul thread indique 9 s de temps écoulé, 5 s de temps utilisateur et 1 s de temps système. Une mise à niveau double la vitesse du processeur ; une autre divise par deux le temps non processeur. Tous les autres temps restent fixes. Quel temps écoulé résulte de l’application des deux améliorations ?
  1. 4,5 s
  2. 3,0 s
  3. 4,0 s
  4. 6,0 s
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Un processeur à 2,4 GHz exécute une tâche en 5 s. Son remplaçant nécessite 30 % de cycles en plus et a une période d’horloge de 250 ps. Quels sont le temps processeur du remplaçant et l’accélération de la tâche ?
  1. 3,0 s et environ 1,67
  2. 6,5 s et environ 0,77
  3. 3,9 s et environ 1,28
  4. 3,9 s et environ 0,78
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Un programme utilise l’extension M de RISC-V et une ABI de système d’exploitation particulière. Une nouvelle machine prend en charge les mêmes conventions d’ABI, mais seulement l’ISA de base RV64I. Quelle prise en charge native supplémentaire le binaire nécessite-t-il ?
  1. Une capacité de cache de premier niveau identique
  2. La prise en charge de ses instructions de l’extension M
  3. Une fréquence d’horloge égale à celle de la machine initiale
  4. Un compilateur qui produit exactement autant d’instructions
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Deux programmes prennent 8 s et 32 s sur X, et 16 s et 18 s sur Y. En utilisant la moyenne géométrique de leurs rapports de vitesse par programme, comment X se compare-t-il à Y ?
  1. X est environ 1,281 fois plus rapide
  2. Y est environ 1,061 fois plus rapide
  3. X est environ 1,061 fois plus rapide
  4. Y est environ 1,176 fois plus rapide
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Un test de débit utilise un temps de référence de 240 s et termine six exemplaires pendant un intervalle mesuré de 120 s. Quel est le rapport de débit ?
  1. 12
  2. 2
  3. 6
  4. 3
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Une tâche fixe contient 10 % de travail séquentiel. Une conceptrice souhaite une efficacité parallèle idéale d’au moins 50 % sur 16 cœurs. Cette tâche peut-elle atteindre cet objectif sans changer sa fraction séquentielle ?
  1. Oui ; l’efficacité idéale est d’environ 64 %
  2. Oui ; l’efficacité idéale est d’environ 53 %
  3. Non ; l’efficacité idéale n’est que de 10 %
  4. Non ; l’efficacité idéale n’est que de 40 %
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

L’exécution A utilise en moyenne 24 W pendant 2,5 s. L’exécution B utilise 36 W pendant 1,5 s pour la même tâche. Quelle exécution utilise le moins d’énergie, et de combien ?
  1. A utilise 12 J de moins
  2. B utilise 24 J de moins
  3. B utilise 6 J de moins
  4. A utilise 6 J de moins
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Un changement technologique divise la capacité par deux et quadruple la densité de dispositifs actifs, mais la tension ne peut pas diminuer. Les concepteurs maintiennent constantes la fréquence et l’activité par dispositif. Que devient la puissance dynamique par unité de surface ?
  1. Elle reste constante
  2. Elle double
  3. Elle est divisée par deux
  4. Elle est multipliée par quatre
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 5 : Combiner les budgets de temps, de parallélisme et de puissance10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Quelle interface spécifie comment une fonction compilée transmet ses arguments dans les registres ?
  1. L’architecture du jeu d’instructions
  2. L’interface binaire d’application
  3. La microarchitecture du processeur
  4. Le plan mémoire du chargeur de programme
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Un service possède initialement un cœur ; chaque requête séquentielle nécessite 0,20 s de calcul. Il passe à quatre cœurs, chacun prenant 0,25 s par requête. Avec des requêtes indépendantes et sans autre limite, que deviennent le débit maximal et le temps de calcul de chaque requête ?
  1. Le débit est multiplié par 4 ; le temps de calcul baisse de 75 %
  2. Le débit est multiplié par 3,2 ; le temps de calcul baisse de 20 %
  3. Le débit est multiplié par 3,2 ; le temps de calcul augmente de 25 %
  4. Le débit est multiplié par 5 ; le temps de calcul augmente de 25 %
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Cinq mesures contrôlées du temps écoulé sont de 1,8 s, 1,9 s, 7,2 s, 2,0 s et 2,1 s. Quel temps médian représente ces exécutions ?
  1. 2,0 s
  2. 1,9 s
  3. 3,0 s
  4. 2,1 s
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

À fréquence d’horloge fixe, un programme exécute 75 % d’instructions de l’unité arithmétique et logique coûtant 1 cycle et 25 % d’instructions mémoire coûtant 5 cycles. Une optimisation laisse les nombres inchangés et ne divise par deux que le coût en cycles de la classe mémoire. Quelle accélération globale du processeur en résulte ?
  1. Environ 1,143
  2. Environ 1,600
  3. Environ 1,818
  4. Environ 1,455
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Un nouveau compilateur réduit le nombre d’instructions de 20 % et augmente le CPI de 25 %. La nouvelle horloge matérielle est 10 % plus rapide. Pour la même tâche, quelle est l’accélération finale ?
  1. 1,00
  2. 1,125
  3. 1,10
  4. 1,375
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Une puce double son nombre de cœurs actifs identiques et réduit la fréquence par cœur à 75 % de l’ancienne valeur. À capacité et activité inchangées par cœur, quel est le plus grand rapport de tension qui maintient la puissance dynamique totale inférieure ou égale à son ancienne valeur ?
  1. Environ 0,667
  2. Environ 0,866
  3. Environ 0,943
  4. Environ 0,816
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Une tâche de 180 s comprend 45 s qu’une amélioration ne peut pas modifier. Quelle accélération locale du travail restant est nécessaire pour obtenir une accélération globale d’un facteur trois ?
  1. 9
  2. 3
  3. 6
  4. 12
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Une charge de travail agrandie sur 20 cœurs passe 10 % de son temps d’exécution parallèle mesuré dans du travail séquentiel. Selon le modèle de Gustafson, quelle accélération pour le problème agrandi en résulte, et cette valeur peut-elle servir d’accélération selon Amdahl pour une tâche inchangée sur un cœur avec une fraction séquentielle de 10 % ?
  1. 10,0 ; oui, les deux modèles utilisent la même fraction
  2. 18,1 ; non, la charge de travail et la base de la fraction diffèrent
  3. 18,1 ; oui, les deux modèles décrivent un travail fixe
  4. 6,90 ; non, la charge de travail et la base de la fraction diffèrent
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Une conception a une puissance dynamique de 50 W et une puissance statique de 20 W. La fréquence est inchangée, la tension diminue de 10 % et la puissance statique reste de 20 W. Quelle est la nouvelle puissance totale ?
  1. 56,7 W
  2. 63,0 W
  3. 40,5 W
  4. 60,5 W
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Un serveur multimédia remplace un cœur de processeur par quatre cœurs qui effectuent chacun les conversions plus lentement. Son programme de conversion inchangé utilise un seul thread sur le processeur. Pourquoi de nombreuses conversions indépendantes peuvent-elles se terminer à un débit plus élevé alors que chaque conversion prend plus de temps ?
  1. Davantage de tâches s’exécutent simultanément, chacune sur un cœur plus lent.
  2. Chaque tâche combine quatre cœurs plus lents en un flux d’instructions plus rapide.
  3. Les nouveaux cœurs réduisent le temps processeur de chaque tâche en supprimant le travail séquentiel.
  4. Les fréquences d’horloge des quatre cœurs s’additionnent pour chaque conversion.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Tu bloques sur ton propre exercice ? Aide aux Devoirs

Mots-Clés

93 Mots-Clés, chacun avec sa définition

A

Abstraction
Une abstraction est une vue simplifiée qui montre un comportement utile tout en masquant les détails de sa mise en œuvre par un composant.
L’interface de fichiers d’un système d’exploitation est une abstraction qui permet à une application de demander des données sans contrôler les circuits du disque.
Accélérateur
Un accélérateur est un matériel spécialisé conçu pour effectuer efficacement une classe de travail choisie par rapport à une exécution généraliste.
Un accélérateur vidéo peut améliorer un travail d’encodage adapté lorsque le logiciel confie ce travail au matériel spécialisé.
Accélération
Une accélération est le rapport entre le temps d’exécution initial et le nouveau temps d’exécution pour une même tâche après un changement.
Une accélération de 1,25 signifie que le nouveau temps représente 80 % de l’ancien, soit une réduction de durée de 20 %.
Accélération locale
Une accélération locale est le facteur par lequel une amélioration accélère la partie concernée, avant de tenir compte du reste de la tâche.
Une accélération locale de quatre divise par quatre le temps initial concerné tout en laissant le reste du travail inchangé.
Architecture du jeu d’instructions
Une architecture du jeu d’instructions définit les instructions machine, les registres, l’adressage et le comportement visibles par les logiciels de bas niveau.
Deux conceptions de processeur différentes peuvent respecter la même architecture du jeu d’instructions tout en prenant des temps différents pour une tâche.
Assembleur
Un assembleur traduit le langage d’assemblage symbolique en codages d’instructions machine, en produisant généralement un fichier objet.
L’assembleur transforme add x5, x6, x7 en son codage binaire et développe les pseudo-instructions prises en charge.

B

Batterie de tests de performance
Une batterie de tests de performance est un ensemble de charges de travail utilisé pour mesurer plusieurs aspects d’un système au lieu de s’appuyer sur un seul programme.
Une batterie de tests de performance peut révéler des différences qu’un programme favorable masquerait dans une comparaison de processeurs.
Bridage thermique
Le bridage thermique réduit la vitesse de fonctionnement d’un processeur lorsque la température atteint ses limites, aidant ainsi la puce à maîtriser sa production de chaleur.
Le bridage thermique peut allonger le temps processeur en réduisant la fréquence d’horloge effective pendant une charge de travail soutenue.
Budget de cycles
Un budget de cycles est le nombre total de cycles processeur disponibles ou nécessaires pour une tâche avec un objectif de temps donné.
Un processeur à 4 GHz dispose d’un budget de 36 milliards de cycles si la tâche doit se terminer en 9 s de temps processeur.
Bytecode
Le bytecode est un format intermédiaire d’instructions destiné à un environnement d’exécution, qui peut l’interpréter ou le traduire en code machine.
CPython compile le code source en bytecode avant que son interpréteur effectue les opérations correspondantes.

C

Charge capacitive
Une charge capacitive est la capacité électrique qu’un signal doit charger et décharger, déterminée par les dispositifs et les connexions qu’il commande.
Réduire la charge capacitive diminue la puissance dynamique lorsque la tension, la fréquence et l’activité de commutation restent inchangées.
Chargeur
Un chargeur est un composant du système d’exploitation qui place un exécutable en mémoire et le prépare à démarrer sur la machine.
Après l’édition de liens d’un programme, le chargeur organise son image mémoire avant le début de l’exécution.
Chemin critique
Un chemin critique est le chemin logique nécessaire le plus lent entre les registres, qui limite la réduction possible de la période d’horloge synchrone sans compromettre le fonctionnement.
Réduire le travail le long du chemin critique peut permettre une période d’horloge plus courte, même si le nombre de cycles peut aussi changer.
Chemin de données
Un chemin de données est la partie d’un processeur qui conserve les données et effectue sur elles les opérations dirigées par l’unité de commande.
Le chemin de données additionne les valeurs de deux registres lorsque l’unité de commande demande à la machine d’exécuter une addition.
Circuit intégré
Un circuit intégré est une puce contenant de nombreux dispositifs électroniques reliés entre eux, notamment des transistors, sur un morceau de matériau semi-conducteur.
Un circuit intégré peut contenir plusieurs cœurs de processeur, des caches et d’autres composants matériels de support.
CMOS
La technologie CMOS est la technologie de transistors utilisée dans les processeurs modernes, dont les coûts énergétiques proviennent de la commutation des signaux et des fuites statiques.
Une estimation de puissance CMOS distingue la consommation dynamique de commutation de celle qui persiste sans transitions utiles.
Cœurs hétérogènes
Les cœurs hétérogènes sont des cœurs de conceptions différentes au sein d’un même processeur, combinant souvent des cœurs rapides et gourmands en puissance avec des cœurs plus petits et économes.
Une puce à cœurs hétérogènes peut attribuer différents travaux à des types de cœurs dont les performances et les coûts en puissance diffèrent.
Compilateur
Un compilateur traduit le code d’un programme de haut niveau en une forme de plus bas niveau, comme l’assemblage ou le code objet, pour une machine cible.
Le compilateur choisit des registres et une instruction d’addition lorsqu’il traduit une expression arithmétique.
Compilation à la volée
La compilation à la volée traduit du code en instructions machine pendant l’exécution, souvent en privilégiant le code fréquemment utilisé.
Une machine virtuelle Java peut utiliser la compilation à la volée après avoir repéré une méthode fréquemment exécutée.
Compteur de performance
Un compteur de performance est un dispositif matériel qui compte des événements d’exécution, comme les cycles ou les instructions, sur un intervalle mesuré.
Un compteur de performance enregistre des cycles qui peuvent être divisés par le nombre d’instructions correspondant pour estimer le CPI.
Convention d’appel
Une convention d’appel est une règle de l’ABI qui régit la communication entre fonctions compilées, notamment l’emplacement de transmission des arguments et des résultats.
La convention d’appel indique aux fonctions compilées séparément quels registres contiennent leurs arguments à l’entrée.
Coupure d’alimentation (power gating)
La coupure d’alimentation déconnecte l’alimentation d’une zone matérielle inactive pour réduire les fuites, au lieu de simplement laisser cette zone inutilisée.
Une puce utilise la coupure d’alimentation après la fin d’une tâche afin que les circuits inactifs consomment moins de puissance statique.
Courant de fuite
Un courant de fuite est un courant qui traverse des transistors censés être bloqués et contribue à la puissance statique d’une puce alimentée.
Réduire les seuils de commutation peut augmenter le courant de fuite et compliquer une réduction supplémentaire de la tension d’alimentation.
Cycles d’horloge du processeur
Les cycles d’horloge du processeur sont le nombre total de cycles attribués à l’exécution d’un programme, y compris les cycles nécessaires au coût effectif de ses instructions.
Six milliards de cycles d’horloge du processeur prennent 2 s lorsque la fréquence d’horloge mesurée est de 3 GHz pendant toute l’exécution.
Cycles par instruction (CPI)
Le nombre de cycles par instruction est le nombre total de cycles processeur divisé par le nombre d’instructions exécutées pendant une exécution ; il représente le coût effectif moyen de ces instructions.
Le nombre de cycles par instruction augmente lorsque les cycles coûteux d’attente mémoire occupent une plus grande part de l’exécution d’un même programme.

D

Débit
Le débit est la quantité de travail accomplie par unité de temps, par exemple le nombre de requêtes par seconde ou de tâches par heure.
Exécuter des tâches indépendantes sur davantage de cœurs peut augmenter le débit alors que le calcul de chaque tâche prend le même temps.
Débit de crête
Un débit de crête décrit une capacité de traitement maximale idéale dans des conditions favorables, et non le résultat mesuré d’une application.
Un programme qui sollicite beaucoup la mémoire peut atteindre bien moins que le débit de crête d’une puce parce que son exécution attend des données.
Densité de puissance
La densité de puissance est la puissance dissipée par unité de surface, souvent exprimée en watts par millimètre carré pour les puces.
Davantage de transistors actifs sur une même surface peuvent augmenter la densité de puissance, sauf si la puissance par dispositif diminue suffisamment.
Déséquilibre de charge
Un déséquilibre de charge est une répartition inégale du travail parallèle qui laisse certains processeurs en attente pendant qu’un autre termine sa part plus importante.
Lorsqu’un cœur reçoit 40 unités de travail et que les autres en reçoivent beaucoup moins, le déséquilibre de charge fait dépendre la fin de la tâche de ce cœur.
DRAM
La DRAM est une technologie de mémoire principale volatile utilisée pour conserver les programmes et les données pendant le fonctionnement d’un ordinateur ; elle perd son contenu sans alimentation.
Les données de travail d’un programme peuvent être conservées en DRAM, tandis qu’un fichier enregistré reste sur un support de stockage non volatil.
DVFS
La DVFS est l’adaptation dynamique de la tension et de la fréquence, qui ajuste ensemble la tension et la fréquence de fonctionnement d’une puce pendant son utilisation.
La DVFS peut réduire la tension pour un point de fonctionnement à fréquence plus faible lorsque la vitesse de commutation requise le permet.

É

Éditeur de liens
Un éditeur de liens combine les fichiers objets et le code des bibliothèques et résout les références aux fonctions et aux données définies dans des fichiers distincts.
L’éditeur de liens relie un appel dans un fichier objet à la fonction de bibliothèque qui fournit son implémentation.
Énergie
L’énergie est la quantité accumulée sur un intervalle de temps ; pour une tâche, elle se calcule en multipliant la puissance moyenne par la durée.
Une consommation moyenne de 20 W pendant 3 s utilise 60 J d’énergie, ce qui est distinct de la puissance de fonctionnement de 20 W.
Énergie dynamique
L’énergie dynamique est l’énergie consommée lors des transitions des signaux ; elle varie avec la charge capacitive et le carré de la tension d’alimentation.
À tension identique, un nombre fixe de transitions identiques consomme la même énergie dynamique même si elles sont ralenties.
Équation de performance du processeur
L’équation de performance du processeur relie le temps processeur au nombre d’instructions exécutées, au CPI moyen et à la période d’horloge en multipliant ces trois facteurs.
L’équation de performance du processeur montre pourquoi un nombre d’instructions plus faible peut perdre son avantage lorsque le CPI augmente.

E

Efficacité parallèle
L’efficacité parallèle est l’accélération obtenue ou prévue divisée par le nombre de processeurs ; elle exprime le gain par rapport à une accélération linéaire idéale.
Une accélération de six sur huit cœurs donne une efficacité parallèle de 75 %, même si la tâche est nettement plus rapide.
Enveloppe thermique (TDP)
L’enveloppe thermique est une cible de conception thermique utilisée pour choisir le refroidissement dans des conditions de fonctionnement spécifiées, et non une mesure instantanée de puissance.
Un refroidissement conçu autour de l’enveloppe thermique doit tenir compte des conditions de fonctionnement spécifiées du processeur.
Exécutable
Un exécutable est un fichier programme préparé pour une machine et un environnement de système d’exploitation particuliers, que le chargeur peut démarrer.
L’éditeur de liens produit un exécutable après avoir combiné le code objet et résolu les références nécessaires.
Exécution en pipeline
L’exécution en pipeline fait se chevaucher les étapes d’instructions successives afin qu’un processeur puisse terminer le travail à un débit supérieur à celui d’un traitement entièrement séquentiel.
L’exécution en pipeline peut améliorer le CPI effectif ou permettre une période d’horloge plus courte sans modifier les résultats promis par l’ISA.

F

Facteur d’activité
Un facteur d’activité exprime la quantité de capacité qui commute par cycle d’horloge selon la convention de comptage utilisée dans un modèle de puissance.
Un rapport de puissance dynamique qui maintient le facteur d’activité fixe suppose que l’activité de commutation reste comparable.
Fichier objet
Un fichier objet contient du code traduit et des informations associées qui peuvent être combinés avec d’autres fichiers pour construire un exécutable.
Un fichier objet peut contenir des instructions machine tout en faisant encore référence à une fonction que l’éditeur de liens doit résoudre.
Fraction améliorée
La fraction améliorée est la part du temps d’exécution initial consacrée au travail qu’une amélioration proposée peut accélérer.
Les opérations mémoire peuvent représenter une fraction améliorée de 60 % du temps tout en ne formant que 30 % des instructions.
Fraction parallélisable
Dans l’analyse d’Amdahl pour une tâche fixe, la fraction parallélisable est la fraction du temps initial sur un seul cœur qui peut être répartie entre les cœurs.
Une fraction parallélisable de 0,95 laisse 5 % du temps initial séquentiel, ce qui limite les gains apportés par des cœurs supplémentaires.
Fraction séquentielle
La fraction séquentielle est la part du temps d’exécution qui doit s’écouler sans répartition entre les cœurs, mesurée selon la base indiquée par le modèle.
Amdahl utilise une fraction séquentielle initiale sur un seul cœur, tandis que Gustafson utilise la fraction mesurée lors de l’exécution parallèle.
Fréquence d’horloge
La fréquence d’horloge est le nombre de cycles d’horloge matériels par seconde, mesuré en hertz et souvent exprimé en gigahertz.
Une fréquence d’horloge de 4 GHz fournit quatre milliards de cycles par seconde, et non quatre milliards d’instructions source terminées.
Fréquence moyenne effective
La fréquence moyenne effective d’une exécution est le nombre de cycles processeur comptés divisé par le temps d’exécution processeur correspondant.
La fréquence moyenne effective tient compte d’une exécution pendant laquelle le processeur accélère ou ralentit, au lieu d’utiliser une seule fréquence annoncée.

I

Instructions par cycle (IPC)
Le nombre d’instructions par cycle est le nombre d’instructions exécutées divisé par le nombre de cycles processeur d’une exécution ; il est l’inverse de son CPI moyen.
Le nombre d’instructions par cycle peut dépasser un lorsqu’un processeur fait suffisamment se chevaucher les instructions pour en terminer plusieurs par cycle.
Interface binaire d’application (ABI)
Une interface binaire d’application spécifie les conventions binaires et les interfaces du système d’exploitation en complément de l’ISA accessible aux programmes utilisateur.
Le respect de l’interface binaire d’application permet à un appel de fonction d’utiliser les registres d’arguments attendus par la fonction appelée.
Interpréteur
Un interpréteur est un programme qui lit des opérations dans une autre représentation de programme et les effectue au moyen de sa propre exécution.
Un interpréteur de bytecode exécute des instructions machine pour mettre en œuvre les opérations de bytecode qu’il lit.

L

Langage d’assemblage
Le langage d’assemblage est une forme textuelle symbolique des instructions machine, dont les noms de registres et d’opérations sont lisibles par les humains.
La ligne de langage d’assemblage add x5, x6, x7 désigne un registre destination et deux registres source.
Langage machine
Le langage machine est constitué d’instructions codées en binaire qu’un processeur peut exécuter selon son architecture du jeu d’instructions.
La valeur hexadécimale 0x007302B3 représente le codage en langage machine d’une addition RISC-V.
Logiciels système
Les logiciels système fournissent des services partagés et des outils de traduction des programmes ; ils comprennent les systèmes d’exploitation, les compilateurs, les éditeurs de liens et les bibliothèques.
Une application s’appuie sur les logiciels système pour allouer la mémoire et préparer le code exécutable destiné au processeur.
Loi d’Amdahl
La loi d’Amdahl relie l’accélération globale à la fraction du temps initial améliorée et à son accélération locale, en gardant inchangé le temps non concerné.
La loi d’Amdahl explique pourquoi tripler la vitesse d’une routine donne une amélioration inférieure à un facteur trois pour l’ensemble de la tâche.
Loi de Dennard
La loi de Dennard est un modèle idéal de réduction des dispositifs dans lequel la diminution des dimensions et de la tension permet une vitesse plus élevée à densité de puissance à peu près constante.
La loi de Dennard cesse de s’appliquer lorsque la tension ne diminue plus assez pour compenser la puissance de dispositifs actifs plus nombreux et plus rapides.
Loi de Gustafson
La loi de Gustafson modélise l’accélération d’un problème agrandi lorsque le travail parallèle augmente avec le nombre de processeurs, tandis que le temps séquentiel reste fixe dans le modèle.
La loi de Gustafson utilise une fraction séquentielle mesurée lors de l’exécution parallèle, contrairement à la fraction utilisée dans l’analyse d’Amdahl pour une tâche fixe.
Loi de Moore
La loi de Moore est la tendance historique de fabrication selon laquelle le nombre de transistors sur une puce doublait approximativement tous les deux ans.
Dix doublements selon la loi de Moore multiplieraient le nombre de transistors par 1 024, sans garantir la même accélération.

M

Microarchitecture
Une microarchitecture est l’organisation interne du matériel qui implémente une ISA, notamment les unités d’exécution, les pipelines et les caches.
Un cache plus grand modifie la microarchitecture sans nécessairement changer les codages d’instructions utilisés par un binaire.
MIPS
Les MIPS sont un débit de millions d’instructions machine exécutées par seconde de temps processeur, qui ne mesure pas directement le travail utile d’une tâche.
Une version peut avoir un nombre de MIPS plus élevé tout en terminant plus tard si elle exécute suffisamment d’instructions supplémentaires pour la même tâche.
Moyenne géométrique
La moyenne géométrique de valeurs positives est la racine de leur produit, dont le degré est égal au nombre de valeurs.
La moyenne géométrique des rapports normalisés de tests de performance rend les comparaisons entre machines indépendantes du choix de la référence.
Moyenne pondérée
Une moyenne pondérée donne à chaque valeur une contribution proportionnelle à son poids, comme la proportion d’exécution d’une classe d’instructions.
Le CPI calculé par moyenne pondérée donne plus de poids à une instruction fréquente de l’unité arithmétique et logique qu’à une classe de branchements rarement exécutée.
Mur de puissance (power wall)
Le mur de puissance est la limite imposée à la poursuite de l’augmentation des fréquences d’horloge par la consommation de puissance et la chaleur qu’un système réalisable peut évacuer.
Le mur de puissance a encouragé les concepteurs à consacrer les transistors supplémentaires à plusieurs cœurs plutôt qu’à des horloges toujours plus rapides.

N

Nombre d’instructions exécutées
Le nombre d’instructions exécutées est le nombre d’instructions machine effectivement exécutées pour une tâche, y compris les répétitions des itérations de boucle.
Un compilateur peut augmenter le nombre d’instructions exécutées tout en réduisant le nombre total de cycles, en remplaçant des instructions coûteuses par d’autres moins coûteuses.

P

Parallélisme au niveau des instructions
Le parallélisme au niveau des instructions fait se chevaucher les opérations au sein d’un flux d’instructions, à l’aide de techniques matérielles et de compilation qui augmentent le débit d’exécution.
L’exécution en pipeline contribue au parallélisme au niveau des instructions sans exiger que le programme crée un thread pour chaque opération.
Parallélisme au niveau des threads
Le parallélisme au niveau des threads exécute simultanément des flux d’instructions logiciels distincts, ce qui permet à plusieurs cœurs de contribuer à l’exécution.
Une bibliothèque parallèle peut rendre possible le parallélisme au niveau des threads afin que des parties indépendantes d’une tâche utilisent différents cœurs.
Passage à l’échelle faible (weak scaling)
Le passage à l’échelle faible augmente la taille totale du problème proportionnellement au nombre de processeurs afin que la quantité de travail par processeur reste à peu près fixe.
Une étude de passage à l’échelle faible agrandit la simulation lorsque davantage de processeurs sont disponibles, en gardant un travail similaire sur chacun.
Passage à l’échelle fort (strong scaling)
Le passage à l’échelle fort mesure comment le temps d’exécution change avec le nombre de processeurs lorsque la taille totale du problème reste fixe.
Un test de passage à l’échelle fort exécute une simulation de même taille sur davantage de cœurs et mesure combien de temps est gagné.
Performance
Pour une tâche fixe, la performance est l’inverse du temps d’exécution : une durée plus courte représente donc une valeur de performance plus élevée.
Diviser par deux le temps d’une même tâche accomplie double sa performance, à condition que le travail comparé soit inchangé.
Performance par watt
La performance par watt est la performance de traitement utile divisée par la puissance consommée ; elle exprime la performance qu’un budget de puissance permet d’obtenir.
Un débit plus élevé à puissance similaire améliore la performance par watt lorsque les deux résultats décrivent le même type de travail utile.
Période d’horloge
La période d’horloge est la durée d’un cycle d’horloge, égale à l’inverse de la fréquence d’horloge lorsque les unités sont cohérentes.
Une période d’horloge de 250 ps correspond à 4 GHz, car la période et la fréquence sont inverses.
Préfixe binaire
Un préfixe binaire désigne un multiplicateur de taille qui est une puissance de deux, comme KiB pour 1 024 octets ou GiB pour 1 073 741 824 octets.
Le préfixe binaire de KiB distingue les unités de 1 024 octets des puissances décimales utilisées dans les unités de fréquence d’horloge.
Processeur multicœur
Un processeur multicœur contient plusieurs cœurs sur une même puce, chacun capable d’exécuter son propre flux d’instructions tout en partageant certaines ressources.
Un processeur multicœur peut traiter simultanément des requêtes indépendantes sans fusionner ses cœurs en une seule horloge plus rapide.
Profilage
Le profilage mesure la répartition du temps d’exécution ou d’une activité associée entre les parties d’un programme afin de repérer les améliorations utiles.
Le profilage peut montrer qu’une amélioration modeste d’une routine courante économise plus de temps qu’un gain important sur une routine rare.
Programme de test de performance (benchmark)
Un programme de test de performance exécute une charge de travail définie pour mesurer la performance d’un système sur un travail choisi pour représenter un besoin pratique.
Un programme de test de performance qui correspond au comportement d’une application est plus instructif qu’un débit de crête sans rapport avec cette charge de travail.
Proportionnalité énergétique
La proportionnalité énergétique est l’objectif de conception qui consiste à faire suivre la consommation de puissance d’un système à la quantité de travail utile qu’il effectue.
Un serveur dont la consommation au repos est élevée n’atteint pas la proportionnalité énergétique, même si son efficacité sous charge maximale est bonne.
Pseudo-instruction
Une pseudo-instruction est un raccourci d’assemblage qu’un assembleur développe en une ou plusieurs instructions machine réelles.
L’instruction RISC-V mv x5, x6 est une pseudo-instruction qui peut être réalisée sous la forme addi x5, x6, 0.
Puissance
La puissance est le débit auquel l’énergie est consommée, mesuré en watts, un watt étant égal à un joule par seconde.
Une puissance consommée plus élevée peut tout de même correspondre à une énergie de tâche plus faible lorsque le programme se termine suffisamment tôt.
Puissance dynamique
La puissance dynamique est le débit de consommation d’énergie dû à la commutation, proportionnel à l’activité, à la capacité, au carré de la tension et à la fréquence.
Une réduction de tension de 10 % à fréquence et activité inchangées diminue la puissance dynamique à 81 % de son ancienne valeur.
Puissance statique
La puissance statique est la consommation qui persiste sans commutation utile parce que les dispositifs alimentés laissent passer un courant de fuite.
La puissance statique continue d’être consommée pendant une exécution plus longue, même lorsque la réduction de fréquence diminue sa puissance dynamique.

R

Répartition des instructions
La répartition des instructions est la distribution des instructions exécutées entre différentes classes, utilisée pour pondérer le coût en cycles de chaque classe.
Une répartition comportant de nombreux chargements coûteux peut avoir un CPI plus élevé qu’une répartition dominée par des instructions arithmétiques simples.
Rétrocompatibilité
La rétrocompatibilité est la prise en charge de logiciels construits pour une interface ou une plateforme antérieure dans l’environnement pris en charge par le nouveau système.
La rétrocompatibilité peut préserver les anciens binaires tandis que les conceptions internes des processeurs changent considérablement.
RISC-V
RISC-V est une architecture du jeu d’instructions ouverte et libre de redevances, avec des jeux de base pour les entiers et des extensions d’instructions standard facultatives.
Un programme RISC-V qui utilise des instructions de multiplication d’entiers a besoin de la prise en charge de l’extension correspondante.

S

Silicium noir (dark silicon)
Le silicium noir désigne le matériel d’une puce qui ne peut pas fonctionner entièrement et simultanément à pleine vitesse dans les limites du budget de puissance et du budget thermique disponibles.
Une puce peut laisser certaines unités inactives parce que le silicium noir limite leur utilisation simultanée, même si les dispositifs sont présents sur la puce.
SPECrate
SPECrate est la famille d’indicateurs SPEC CPU qui mesure le débit en exécutant plusieurs exemplaires et en tenant compte du travail accompli.
Un rapport SPECrate inclut le nombre d’exemplaires ainsi que le temps de référence divisé par l’intervalle mesuré.
SPECspeed
SPECspeed est la famille d’indicateurs SPEC CPU qui mesure le temps nécessaire pour terminer un exemplaire d’un programme de test ; cet exemplaire peut utiliser plusieurs threads.
Un résultat SPECspeed concerne le temps d’un exemplaire de programme ; il ne doit donc pas être interprété comme le débit de nombreux exemplaires distincts.
SRAM
La SRAM est une technologie de mémoire volatile utilisée pour de petites structures de stockage rapides, comme les caches proches du matériel d’exécution du processeur.
Un processeur conserve les données récemment utilisées dans un cache en SRAM pour réduire le temps passé à accéder à la mémoire principale.
Système d’exploitation
Un système d’exploitation est un logiciel qui gère les ressources matérielles et fournit des services permettant aux programmes de partager l’ordinateur en toute sécurité.
Le système d’exploitation planifie un autre programme pendant qu’une application attend une opération de stockage.

T

Temps de réponse
Le temps de réponse est la durée entre le début et la fin d’une tâche, y compris les calculs, les entrées-sorties et les attentes qui la concernent.
Une personne qui attend le résultat d’une conversion s’intéresse au temps de réponse même si le service termine de nombreuses autres tâches.
Temps écoulé
Le temps écoulé est la durée réelle d’une exécution du début à la fin, y compris le travail processeur, l’attente et les délais d’ordonnancement.
L’attente d’un fichier peut augmenter le temps écoulé sans ajouter une durée équivalente d’exécution processeur attribuée à la tâche.
Temps processeur
Le temps processeur est le temps d’exécution sur le processeur attribué à une tâche, qui combine son exécution utilisateur et l’exécution système pour son compte.
Le temps processeur additionné sur plusieurs cœurs occupés peut dépasser le temps écoulé de la tâche du début à la fin.
Temps processeur système
Le temps processeur système mesure le temps que le processeur passe à exécuter le code du système d’exploitation pour le compte de la tâche mesurée.
Le temps processeur d’un programme comprend le temps processeur système utilisé pour traiter ses requêtes au système d’exploitation.
Temps processeur utilisateur
Le temps processeur utilisateur mesure le temps que le processeur passe à exécuter le code d’un programme en mode utilisateur, hors exécution du système d’exploitation.
Un outil de mesure indique le temps processeur utilisateur séparément du temps passé dans les services système demandés par le programme.
Transistor
Un transistor est un dispositif commandé électriquement qui agit comme un interrupteur et permet de réaliser les circuits utilisés pour construire la logique numérique.
De nombreux transistors fonctionnent ensemble dans un circuit qui réalise un additionneur à l’intérieur d’un processeur.

U

Unité de commande
L’unité de commande est le composant du processeur qui dirige les opérations du chemin de données et coordonne la mémoire et les entrées-sorties selon les instructions.
L’unité de commande sélectionne l’opération et la destination nécessaires lorsque le processeur exécute une instruction machine.

À propos de cette unité

Par StudeliSignaler une erreur

Crée ton propre Matériel d'Étude

Transforme tes notes, diapos et documents en Guides d'Étude, Questions Pratiques, Flashcards et 6 autres outils.

Commencer