En architecture informatique, un mot est une unité de base manipulée par un microprocesseur. On parle aussi de mot machine. La taille d’un mot s’exprime en bits, parfois même en octets. Elle est souvent utilisée pour classer les microprocesseurs (, ). Toutes choses étant égales par ailleurs, un microprocesseur est d’autant plus rapide que ses mots sont longs, car les données qu'il traite à chaque cycle sont plus importantes. Sur les microprocesseurs qui peuvent manipuler différentes tailles de données, la taille des mots est choisie arbitrairement, dans le but d’avoir une convention de nommage (en particulier, les instructions dont le mnémonique ne contient pas d’indication explicite de taille s’appliquent à des mots). On prend généralement la taille des principaux registres de données, ou la taille du bus de données.

Les ordinateurs grand public modernes et processeurs modernes utilisent généralement des données de 8, 16, 32 ou , bien que d'autres tailles soient possibles. Ces tailles ont été historiquement fixées par l'architecture matérielle, qui a évolué au cours du temps. Avec l'interopérabilité, la nomenclature la plus couramment utilisée par les éditeurs de langages de développement logiciel est normaliséeLa version française de la norme ISO/CEI 10646 comme suit : donnée de 8 bits : « octet », parfois abusivement « byte » ; donnée de 16 bits : «  » ou « mot », parfois « seizet »Terme utilisé notamment dans la version française de la norme ISO/CEI 10646. voire « doublet » ; donnée de 32 bits : «  » ou « double mot », parfois (rarement) « trente-deuzet » ; donnée de 64 bits : «  » ou « quadruple mot ».

En revanche, au niveau architecture matérielle, le « mot » est fondamentalement la taille du bus mémoire, soit la taille de la donnée unitaire capable de transiter entre les zones de stockage mémoire et les registres du processeur central (voir plus bas). Cette taille n'est pas normalisée, mais est généralement un multiple entier ou fractionnaire du mot « logiciel », c'est-à-dire un multiple de 16.

Utilisation En fonction de l'architecture étudiée, une donnée unitaire réduite au mot peut être utilisée pour :

Nombre réel à virgule fixe Le nombre réel à virgule fixe sert à contenir un nombre à virgule fixe ; classiquement un entier, une valeur numérique disponible en une ou plusieurs capacités, mais l'une de ces tailles sera quasiment toujours le mot.

Les autres tailles, s'il y en a, étant des fractions ou des multiples du mot, et de l'entier de référence, pour des raisons d'optimisation de la mémoire : lorsque mises à disposition au sein du processeur, les valeurs multiples iront dans un registre ajusté à la taille d'un ou plusieurs mots.

Nombre à virgule flottante Le nombre à virgule flottante contient un nombre réel à virgule flottante, valeur numérique classiquement de la taille d'un mot, ou d'un multiple d'un mot.

Adresse L'adresse contient un pointeur vers un emplacement de mémoire, et doit par conséquent être de la taille nécessaire pour pouvoir adresser n'importe quel emplacement en mémoire, sans être exagérément large. La taille est souvent ajustée au mot, permettant d'adresser la capacité mémoire, mais elle peut aussi être une fraction de la taille d'un mot.

Registre Le registre de processeur est conçu pour avoir une taille adaptée à la taille de la donnée qu'il devra contenir, par exemple un entier, un nombre à virgule flottante ou un pointeur. De nombreuses architectures utilisent des « registres multi-usages » pouvant contenir de nombreux types de données ; ils doivent alors être dimensionnés pour pouvoir recevoir le type de données le plus grand. Historiquement, cette taille est celle du mot de l'architecture étudiée, bien que, pour des besoins particuliers, de nouveaux registres aient progressivement été ajoutés pour pouvoir gérer les nouveaux types de données.

Variables du processeur de transfert mémoire Lorsque le processeur effectue des transferts entre la mémoire et ses propres registres, la quantité de données à transmettre est habituellement celle d'un mot. Dans les architectures mémoire simples, le mot est transféré jusqu'à la mémoire via le bus mémoire, qui a généralement une largeur d'un mot, ou d'un demi-mot. Dans les architectures qui gèrent une mémoire cache, les transferts de la taille d'un mot sont ceux entre le processeur et le premier niveau de cache ; aux autres niveaux dans la hiérarchie de mémoire, ce sont des transferts plus volumineux (d'une taille d'un multiple d'un mot) qui sont utilisés.

Unité d'adressage Pour une architecture donnée, les adresses successives désignent des unités de mémoire successives ; cette unité est l'unité d'adressage. Pour la plupart des ordinateurs, elle a la taille d'un « char », c'est-à-dire un octet, ou un mot.. Quelques architectures ont une unité d'adressage de la taille d'un bit. Si cette unité est un mot, alors une quantité de mémoire plus importante peut être adressée en utilisant une adresse d'une taille arbitraire à la contrepartie d'une complexité accrue pour l'adressage d'un unique byte. En corollaire, si l'unité d'adressage est un byte, les « chars » peuvent être adressés directement (par exemple durant les entrées/sorties mémoire).

Instructions Une instruction en langage machine est normalement de la taille d'un mot, comme dans les architectures RISC, ou de la taille d'un de ses multiples. C'est un choix naturel dans la mesure où les instructions et les données partagent la même mémoire dans le système. Dans l'architecture Harvard, les tailles des mots des instructions et des données ne sont pas reliées, dans la mesure où les données sont stockées dans des mémoires différentes ; par exemple, le processeur au sein du commutateur téléphonique 1ESS a des jeux d'instruction sur 37 bits, et des emplacements mémoire basés sur des mots de 23 bits.

Évolution de la taille des mots à travers les années key : b : bits, d : "digit" décimal, w : taille du mot (word) dans l'architecture, n : taille des variables AnnéeComputer architecture Taille du motw Taille des Entiers Taille des Virgule flottante Taille desInstructionsAdresse unitaireresolution Taille ducaractère1837BabbageMachine analytique50 dw—Cinq cartes différentes ont été utilisées pour différents usages, la taille exacte des cartes n'est pas connuew—1941Zuse Z322 b—w8 bw—1942ABC50 bw————1944Harvard Mark I23 dw—24 b——1946(1948){1953}ENIAC(w/ Panel #16){w/ Panel #26}10 dw, 2w(w){w}——(2d, 4d, 6d, 8d){2d, 4d, 6d, 8d}——{w}—1951UNIVAC I12 dw—½ww1 d1952IAS machine40 bw—½ww5 b1952Fast Universal Digital Computer M-234 bw?w34 b = 4 b d'opcode plus 3× 10 b d’adresse10 b—1952IBM 70136 b½w, w—½w½w, w6 b1952UNIVAC 60n d1d, ... 10d———2d, 3d1953IBM 702n d0d, ... 511d—5dd1 d1953UNIVAC 120n d1d, ... 10d———2d, 3d1954(1955)IBM 650(w/IBM 653)10 dw—(w)ww2 d1954IBM 70436 bwwww6 b1954IBM 705n d0d, ... 255d—5dd1 d1954IBM NORC16 dww, 2www—1956IBM 305n d1d, ... 100d—10dd1 d1957Autonetics Recomp I40 bw, 79 b, 8d, 15d—½w½w, w5 b1958UNIVAC II12 dw—½ww1 d1958SAGE32 b½w—ww6 b1958Autonetics Recomp II40 bw, 79 b, 8d, 15d2w½w½w, w5 b1958Setun 6 trit (~9.5 b) jusqu'à 6 trits jusqu'à 3 trits 4 trits?1959IBM 1401n d1d, ...—d, 2d, 4d, 5d, 7d, 8dd1 d1959(TBD)IBM 1620n d2d, ...—(4d, ... 102d)12dd2 d1960LARC12 dw, 2ww, 2www2 d1960CDC 160448 bww½ww6 b1960IBM 1410n d1d, ...—d, 2d, 6d, 7d, 11d, 12dd1 d1960IBM 707010 dwwww, d2 d1960PDP-118 bw—ww6 b1960Elliott 80339 b + 1 parity1961IBM 7030(Stretch)64 b1b, ... 64b,1d, ... 16dw½w, wb, ½w, w1 b, ... 8 b1961IBM 7080n d0d, ... 255d—5dd1 d1962GE-6xx36 bw, 2 ww, 2 w, 80 bww6 b, 9 b1962UNIVAC III25 bw, 2w, 3w, 4w, 6d, 12d—ww6 b1962Autonetics D-17BCalculateur de guidage du Minuteman I27 b11 b, 24 b—24 bw—1962UNIVAC 110736 b⅙ w, ⅓w, ½w, wwww6 b1962IBM 7010n d1d, ...—d, 2d, 6d, 7d, 11d, 12dd1 d1962IBM 709436 bww, 2www6 b1963/1966PDP-6/PDP-1036 bww, 2 www6 b, 9 b (typical)1963Gemini Guidance Computer39 b26 b—13 b13 b, 26 b—1963(1966)Apollo Guidance Computer15 bw—w, 2ww—1963Saturn Launch Vehicle Digital Computer26 bw—13 bw—1964CDC 660060 bww¼w, ½ww6 b1964Autonetics D-37CCalculateur de guidage du Minuteman II27 b11 b, 24 b—24 bw4 b, 5 b1965IBM 36032 b½w, w,1d, ... 16dw, 2w½w, w, 1½w8 b8 b1965UNIVAC 110836 b⅙ w, ¼w, ⅓w, ½w, w, 2ww, 2www6 b, 9 b1965PDP-812 bw—ww8 b 1970PDP-1116 bw2w, 4ww, 2w, 3w8 b8 b1971Intel 40044 bw, d—2w, 4ww—1972Intel 80088 bw, 2d—w, 2w, 3ww8 b1972Calcomp 9009 bw—w, 2ww8 b1974Intel 80808 bw, 2w, 2d—w, 2w, 3ww8 b1975ILLIAC IV64 bww, ½www—1975Motorola 68008 bw, 2d—w, 2w, 3ww8 b1975MOS Tech. 6501MOS Tech. 65028 bw, 2d—w, 2w, 3ww8 b1976Cray-164 b24 b, ww¼w, ½ww8 b1976Zilog Z808 bw, 2w, 2d—w, 2w, 3w, 4w, 5ww8 b1978(1980)16-bit x86 (Intel 8086)(avec virgule flottante : Intel 8087)16 b½w, w, 2d—(2w, 4w, 5w, 17d)½w, w, ... 7w8 b8 b1978VAX32 b¼w, ½w, w, 1d, ... 31d, 1b, ... 32bw, 2w¼w, ... 14¼w8 b8 b1979<br/ >(1984)Famille Motorola 68000(avec virgule flottante)32 b¼w, ½w, w, 2d—(w, 2w, 2½w)½w, w, ... 7½w8 b8 b1985IA-32 (Intel 80386) (avec virgule flottante)32 b¼w, ½w, w, 2d—(w, 2w, 2½w, 17d)¼w, ½w, w, ... 3¾w8 b8 b1985ARMv132 b¼w, w—w8 b8 b1985MIPS32 b¼w, ½w, ww, 2ww8 b8 b1991Cray C9064 b32 b, ww¼w, ½w, 48bw8 b1992Alpha64 b8b, ¼w, ½w, ww, 2w½w8 b8 b1992PowerPC32 b¼w, ½w, ww, 2ww8 b8 b1996ARMv4(avec Thumb)32 b¼w, ½w, w—w(½w, w)8 b8 b2001IA-6464 b8 b, ¼w, ½w, w½w, w41 b8 b8 b2001ARMv6(avec VFP)32 b¼w, ½w, w—(w, 2w)½w, w8 b8 b2003x86-6464 b8b, ¼w, ½w, w½w, w, 1¼w, 17d8b, ¼w, ½w, w, ... 1⅞w8 b8 b2013ARMv8-A64 b8b, ¼w, ½w, w½w, w½w8 b8 bkey : b : bits, d : "digit" décimal, w : taille du mot (word) dans l'architecture, n : taille des variables

Notes et références

Articles connexes Mot (mathématiques) Octet Unité de mesure en informatique

Catégorie:Microprocesseur Catégorie:Mémoire informatique