OpenLLM-France/wikimedia huggingface dataset:
# Programmation Assembleur/x86/Optimisation des performances

* Programmation Assembleur/x86
* Introduction
* Registres
* Les flags
* Copie entre registres et mémoire
* Les branchements
* La pile
* Les interruptions
* Opérations arithmétiques et logiques
* Interactions avec les périphériques
* Optimisation des performances
* Index
* Conclusion
* Modifier ce modèle
Ce chapitre aborde un sujet avancé concernant l'optimisation des performances, notamment en vue de réduire le temps d'exécution des programmes par le processeur. Le sujet s'appuie notamment sur le fonctionnement des processeurs x86, le nombre de cycles, ... Il s'applique également à d'autres processeurs.

## Optimisation par alignement des données en mémoire

Une règle générale d'optimisation concerne l'alignement des données en mémoire :
    Une donnée de n bits (une puissance de 2 : 16, 32, 64) doit être placée à une adresse multiple de n bits en mémoire.
Pour expliquer en détails et mieux comprendre le pourquoi de cette règle, prenons le cas le plus simple du processeur 8086 traitant des données de 16 bits.
Les instructions sont exécutées en plusieurs cycles groupés en phases : T1, T2, T3, Tw et T4. Afin de réduire le nombre de broches du composant, le 8086 multiplexe les adresses (20 bits) et les données (16 bits) dans le temps :
* Les broches AD0 à AD15 présentent l'adresse durant la phase T1, et jouent le rôle de A0 à A15 (Address) ;
* Durant les autres phases (T2 à T4), elles jouent le rôle de D0 à D15 (Data) en lecture ou écriture selon l'opération exécutée ;
* Les broches A16 à A19 présentent les 4 bits de poids forts de l'adresse durant la phase T1.
Les blocs de mémoire permettent d'accéder aux données par mots de 16 bits dont l'adresse est spécifié sur 19 bits (A1 à A19) :
* D15-D8 présente toujours l'octet de l'adresse impaire (A19..A1 1),
* D7-D0 présente toujours l'octet de l'adresse paire (A19..A1 0).
Cependant le 8086 peut lire et écrire des mots de 8 ou 16 bits, à des adresses paires ou impaires :
* Pour les mots de 16 bits aux adresses paires ou les mots de 8 bits (quel que soit la parité de l'adresse), la lecture ou l'écriture s'effectue en une seule fois.
* Pour les mots de 16 bits aux adresses impaires, la lecture ou l'écriture s'effectue en deux fois : l'octet de poids faible à l'adresse (A19..A1 1) sur les broches D15 à D8, puis l'octet de poids fort à l'adresse (A19'..A1' 0) sur les broches D7 à D0 ; où A19'..A1' représente l'adresse A19..A1 + 1 (soit l'adresse sur 20 bits + 2 pour adresser le premier octet du mot de 16 bits suivant).
Pour le 8086, aligner les données de 16 bits à des adresses multiples de 2 permet donc d'éviter une lecture/écriture en plusieurs fois.
Le principe est généralisable pour des données sur 32 bits, 64 bits ou plus.
# Programmation Assembleur/x86/Optimisation des performances

* Programmation Assembleur/x86
* Introduction
* Registres
* Les flags
* Copie entre registres et mémoire
* Les branchements
* La pile
* Les interruptions
* Opérations arithmétiques et logiques
* Interactions avec les périphériques
* Optimisation des performances
* Index
* Conclusion
* Modifier ce modèle
Ce chapitre aborde un sujet avancé concernant l'optimisation des performances, notamment en vue de réduire le temps d'exécution des programmes par le processeur. Le sujet s'appuie notamment sur le fonctionnement des processeurs x86, le nombre de cycles, ... Il s'applique également à d'autres processeurs.

## Optimisation par alignement des données en mémoire

Une règle générale d'optimisation concerne l'alignement des données en mémoire :
    Une donnée de n bits (une puissance de 2 : 16, 32, 64) doit être placée à une adresse multiple de n bits en mémoire.
Pour expliquer en détails et mieux comprendre le pourquoi de cette règle, prenons le cas le plus simple du processeur 8086 traitant des données de 16 bits.
Les instructions sont exécutées en plusieurs cycles groupés en phases : T1, T2, T3, Tw et T4. Afin de réduire le nombre de broches du composant, le 8086 multiplexe les adresses (20 bits) et les données (16 bits) dans le temps :
* Les broches AD0 à AD15 présentent l'adresse durant la phase T1, et jouent le rôle de A0 à A15 (Address) ;
* Durant les autres phases (T2 à T4), elles jouent le rôle de D0 à D15 (Data) en lecture ou écriture selon l'opération exécutée ;
* Les broches A16 à A19 présentent les 4 bits de poids forts de l'adresse durant la phase T1.
Dans une architecture 8086, les blocs de mémoire sont séparés deux groupes : un pour les octets aux adresses paires, et un autre pour les adresses impaires. Les blocs de mémoire permettent d'accéder aux données par mots de 16 bits dont l'adresse est spécifié sur 19 bits (A1 à A19) :
* D15-D8 présente toujours l'octet de l'adresse impaire (A19..A1 1),
* D7-D0 présente toujours l'octet de l'adresse paire (A19..A1 0).
Cependant le 8086 peut lire et écrire des mots de 8 ou 16 bits, à des adresses paires ou impaires :
* Pour les mots de 16 bits aux adresses paires ou les mots de 8 bits (quel que soit la parité de l'adresse), la lecture ou l'écriture s'effectue en une seule fois.
* Pour les mots de 16 bits aux adresses impaires, la lecture ou l'écriture s'effectue en deux fois : l'octet de poids faible à l'adresse (A19..A1 1) sur les broches D15 à D8, puis l'octet de poids fort à l'adresse (A19'..A1' 0) sur les broches D7 à D0 ; où A19'..A1' représente l'adresse A19..A1 + 1 (soit l'adresse sur 20 bits + 2 pour adresser le premier octet du mot de 16 bits suivant).
Pour le 8086, aligner les données de 16 bits à des adresses multiples de 2 permet donc d'éviter une lecture/écriture en plusieurs fois.
Le principe est généralisable pour des données sur 32 bits, 64 bits ou plus.
# Programmation Assembleur/x86/Optimisation des performances

* Programmation Assembleur/x86
* Introduction
* Registres
* Les flags
* Copie entre registres et mémoire
* Les branchements
* La pile
* Les interruptions
* Opérations arithmétiques et logiques
* Interactions avec les périphériques
* Optimisation des performances
* Index
* Conclusion
* Modifier ce modèle
Ce chapitre aborde un sujet avancé concernant l'optimisation des performances, notamment en vue de réduire le temps d'exécution des programmes par le processeur. Le sujet s'appuie notamment sur le fonctionnement des processeurs x86, le nombre de cycles, ... Il s'applique également à d'autres processeurs.

## Optimisation par alignement des données en mémoire

Une règle générale d'optimisation concerne l'alignement des données en mémoire :
    Une donnée de n bits (une puissance de 2 : 16, 32, 64) doit être placée à une adresse multiple de n bits en mémoire.
Pour expliquer en détails et mieux comprendre le pourquoi de cette règle, prenons le cas le plus simple du processeur 8086 traitant des données de 16 bits.
Les instructions sont exécutées en plusieurs cycles groupés en phases : T1, T2, T3, Tw et T4. Afin de réduire le nombre de broches du composant, le 8086 multiplexe les adresses (20 bits) et les données (16 bits) dans le temps :
* Les broches AD0 à AD15 présentent l'adresse durant la phase T1, et jouent le rôle de A0 à A15 (Address) ;
* Durant les autres phases (T2 à T4), elles jouent le rôle de D0 à D15 (Data) en lecture ou écriture selon l'opération exécutée ;
* Les broches A16 à A19 présentent les 4 bits de poids forts de l'adresse durant la phase T1.
Dans une architecture 8086, les blocs de mémoire sont séparés deux groupes :
* un pour les octets aux adresses paires, relié aux broches D0 à D7,
* et un autre pour les adresses impaires, relié aux broches D8 à D15.
Les blocs de mémoire permettent d'accéder aux données par mots de 16 bits dont l'adresse est spécifié sur 19 bits (A1 à A19) :
* D15-D8 présente toujours l'octet de l'adresse impaire (A19..A1 1),
* D7-D0 présente toujours l'octet de l'adresse paire (A19..A1 0).
Cependant le 8086 peut lire et écrire des mots de 8 ou 16 bits, à des adresses paires ou impaires :
* Pour les mots de 16 bits aux adresses paires ou les mots de 8 bits (quel que soit la parité de l'adresse), la lecture ou l'écriture s'effectue en une seule fois.
* Pour les mots de 16 bits aux adresses impaires, la lecture ou l'écriture s'effectue en deux fois : l'octet de poids faible à l'adresse (A19..A1 1) sur les broches D15 à D8, puis l'octet de poids fort à l'adresse (A19'..A1' 0) sur les broches D7 à D0 ; où A19'..A1' représente l'adresse A19..A1 + 1 (soit l'adresse sur 20 bits + 2 pour adresser le premier octet du mot de 16 bits suivant).
Pour le 8086, aligner les données de 16 bits à des adresses multiples de 2 permet donc d'éviter une lecture/écriture en plusieurs fois.
Le principe est généralisable pour des données sur 32 bits, 64 bits ou plus.
# Accueil/Vitrine

Aujourd'hui dimanche : Wikilivres:Vitrine/78
Dans les prochains jours :
Lundi
Mardi
Ce livre est en constante évolution afin de suivre les progrès techniques, les nouveaux appareils, ...
# Accueil/Vitrine

Aujourd'hui dimanche : Wikilivres:Vitrine/78
Dans les prochains jours :
Lundi
Mardi
Mercredi
Ce livre est en constante évolution afin de suivre les progrès techniques, les nouveaux appareils, ...
# Goélette Cardabela/Album/Version imprimable

Albums de la vie à bord
* La vie à bord, navire à quai
** Aménagement intérieur
** Album photo
* Aménagement extérieur
** Album photo
* La vie à bord, au mouillage
* La vie à bord en navigation
Image de couverture : https://fr.wikibooks.org/wiki/Bulbe_d%27%C3%A9trave-Cardabela.jpg Attribution : {{{attribution}}}
# La maison BRAGARD

[[Fichier:|250px|center|middle]]
Paragraphe court d'introduction au livre.
    Ébauche
* Une version imprimable du livre « La maison BRAGARD » est disponible. (voir/ modifier)
* Une version PDF de ce livre est demandée.
Pour lire ce livre, commencez par ... Courte introduction sur page de garde.

## Sommaire

La maison BRAGARD/Sommaire

## Voir aussi

* ...liens vers d'autres livres...
Au temps du fondateur c'est le terme "maison" qui était le plus souvent utilisé pour nommer une entreprise et c'est pourquoi je l'utilise en titre pour vous raconter la véritable histoire de la société BRAGARD; Vous pourrez trouver sur la toile un certain nombre d'articles tout à fait fantaisistes écrits dans un but publicitaire par du personnel qui ne connaissait pas le sujet ou qui désiraient se mettre en valeur.
L'auteur est fils ainé du fondateur
# La maison BRAGARD

[[Fichier:|250px|center|middle]]
Paragraphe court d'introduction au livre.
    Ébauche
* Une version imprimable du livre « La maison BRAGARD » est disponible. (voir/ modifier)
* Une version PDF de ce livre est demandée.
Pour lire ce livre, commencez par ... Courte introduction sur page de garde.

## Sommaire

La maison BRAGARD/Sommaire

## Voir aussi

* ...liens vers d'autres livres...
Au temps du fondateur c'est le terme "maison" qui était le plus souvent utilisé pour nommer une entreprise et c'est pourquoi je l'utilise en titre pour vous raconter la véritable histoire de la société BRAGARD; Vous pourrez trouver sur la toile un certain nombre d'articles tout à fait fantaisistes écrits dans un but publicitaire par du personnel qui ne connaissait pas le sujet ou qui désirait se mettre en valeur.
L'auteur est fils ainé du fondateur : Jean Henri BRAGARD qui a été au cœur du sujet et a participé activement au développement de l'entreprise pour la hisser dans les mille de l'Expansion et qui comportait, à l'époque de son départ, près de 1200 personnes.