« Fonctionnement d'un ordinateur/Le modèle mémoire : alignement et boutisme » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 104 :
===Boutisme simple : gros et petit boutisme===
 
[[File:Endianessmap fr.svg|vignette|Comparaison entre petit et gros-boutiste, ainsi qu'illustration des accès de 8, 16 et 32 bits sur un groupe de 4 octets en gros-boutiste.]]
Sur les '''processeurs gros-boutistes''', la donnée est stockée des adresses les plus faibles vers les adresses plus grande. Pour rendre cela plus clair, prenons un entier qui prend plusieurs octets et qui est stocké entre deux adresses. L'octet de poids fort de l'entier est stocké dans l'adresse la plus faible, et inversement pour le poids faible qui est stocké dans l'adresse la plus grande. Sur les '''processeurs petit-boutistes''', c'est l'inverse : l'octet de poids faible de notre donnée est stocké dans la case mémoire ayant l'adresse la plus faible. La donnée est donc stockée dans l'ordre inverse pour les octets. Certains processeurs sont un peu plus souples : ils laissent le choix du boutisme. Sur ces processeurs, on peut configurer le boutisme en modifiant un bit dans un registre du processeur : il faut mettre ce bit à 1 pour du petit-boutiste, et à 0 pour du gros-boutiste, par exemple. Ces processeurs sont dits '''bi-boutistes'''.
 
Les deux types de boutisme les plus simples sont le gros-boutisme et le petit-boutisme. Sur les '''processeurs gros-boutistes''', la donnée est stockée des adresses les plus faibles vers les adresses plus grande. Pour rendre cela plus clair, prenons un entier qui prend plusieurs octets et qui est stocké entre deux adresses. L'octet de poids fort de l'entier est stocké dans l'adresse la plus faible, et inversement pour le poids faible qui est stocké dans l'adresse la plus grande. Sur les '''processeurs petit-boutistes''', c'est l'inverse : l'octet de poids faible de notre donnée est stocké dans la case mémoire ayant l'adresse la plus faible. La donnée est donc stockée dans l'ordre inverse pour les octets. Certains processeurs sont un peu plus souples : ils laissent le choix du boutisme. Sur ces processeurs, on peut configurer le boutisme en modifiant un bit dans un registre du processeur : il faut mettre ce bit à 1 pour du petit-boutiste, et à 0 pour du gros-boutiste, par exemple. Ces processeurs sont dits '''bi-boutistes'''.
[[File:Big-endian little-endian.jpg|centre|800px|Big-endian little-endian]]
 
Certains processeurs sont un peu plus souples : ils laissent le choix du boutisme. Sur ces processeurs, on peut configurer le boutisme en modifiant un bit dans un registre du processeur : il faut mettre ce bit à 1 pour du petit-boutiste, et à 0 pour du gros-boutiste, par exemple. Ces processeurs sont dits '''bi-boutistes'''.
<gallery widths="400px" heights="400px">
 
Big-Endian-fr.svg|Gros-boutisme.
{|
Little-Endian-fr.svg|Petit-boutisme.
|[[File:Big-Endian-fr.svg|Gros-boutisme.]]
Endianessmap fr.svg|Comparaison entre petit et gros-boutiste, ainsi qu'illustration des accès de 8, 16 et 32 bits sur un groupe de 4 octets en gros-boutiste.
|[[File:Little-Endian-fr.svg|Petit-boutisme.]]
</gallery>
|}
 
Petit et gros-boutisme ont pour particularité que la taille des mots ne change pas vraiment l'organisation des bytes. Peu importe la taille d'un mot, celui-ci se lit toujours de gauche à droite, ou de droite à gauche. Cela n'apparait pas avec les techniques de boutismes plus compliquées.
 
[[File:Big-endian little-endian.jpg|centre|800px|Big-endian little-endian]]
 
===Boutisme avec byte-swap===