Architecture 16 bits

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Ce modèle est-il pertinent ? Cliquez pour en voir d'autres.
Cet article ne cite pas suffisamment ses sources (juillet 2016).

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références » (modifier l'article, comment ajouter mes sources ?).

En informatique, l'architecture 16 bits est un type de structure d'ordinateur exploitant des mots (processeur, mémoire, bus, , etc.) d'une taille de 16 bits (soit deux octets).

Un mot de 16 bits peut stocker 2^16 valeurs différentes, soit 65 535 valeurs. Un processeur 16 bits peut adresser directement 64 Kib de mémoire.

Histoire[modifier | modifier le code]

Au milieu des années 1960, les premiers ordinateurs 16 bits commercialisés incluent le HP-2116[1] de HP, le PDP-11 de DEC et le Nova de Data General. Ils sont conçus et fabriqués à base de composants « discrets » et de ce fait relativement complexes et volumineux.

Vers le milieu des années 1970, des microprocesseurs 8/16 bits (bus d'adresse de 16 bits, bus de données 8 bits) se multiplient, comme le Zilog Z80 ou le Motorola 6809[réf. nécessaire].

Au début des années 1980, les constructeurs développent des microprocesseurs 16 bits, comme l’Intel 8086, l’Intel 80286 et le MOS Technology 65C816. Les registres et les instructions arithmétiques de l'Intel 8088 opéraient sur des entiers de 16 bits, mais sa mémoire et son bus n'était que de 8 bits de large[réf. nécessaire].

Un entier de 16 bits permet de stocker 2^16 (ou 65 536 nombres) valeurs différentes. Dans une représentation non signée, ces valeurs sont des entiers compris entre 0 et 65 535. Dans une représentation en complément à deux, ces valeurs sont comprises entre -32 768 et 32 767. Par conséquent, un processeur gérant des adresses mémoire de 16 bits peut accéder directement à 64 Kio de mémoire.

Modèles de la mémoire 16 bits[modifier | modifier le code]

Ce modèle est-il pertinent ? Cliquez pour en voir d'autres.
Emojione 267B.svg
Cette section a besoin d'être recyclée (indiquez la date de pose grâce au paramètre date).  
Une réorganisation et une clarification du contenu sont nécessaires. Discutez des points à améliorer en page de discussion.
Ce modèle est-il pertinent ? Cliquez pour en voir d'autres.
Question book-4.svg
Cette section ne cite pas suffisamment ses sources (août 2013).
Pour l'améliorer, ajoutez des références vérifiables [Comment faire ?] ou le modèle {{Référence nécessaire}} sur les passages nécessitant une source.

Les processeurs 16 bits ont été presqu'entièrement supplanté dans l'industrie des ordinateurs personnels, mais ils restent en service dans une grande variété d'applications embarquées. Par exemple, le processeur 16 bits XAP est utilisé dans de nombreux circuits ASIC.

Tout comme il existe plusieurs modèles de données pour les architectures 64 bits, l'architecture Intel 16 bits permet aux différentes modèles de mémoire différentes façons d'accéder à un emplacement particulier de la mémoire. Le choix d'un modèle de mémoire spécifique va dépendre de la quantité d'instructions assembleurs ou du stockage requis pour les pointeurs.

Les compilateurs de l'ère 16 bits ont généralement, pour la largeur selon le type, les caractéristiques suivantes :

Modèle de données 16 bits
Modèle de données short int long Pointeurs
IP16L32 (near) 16 16 32 16
I16LP32 (far) 16 16 32 32

Tiny : code et données seront dans le même segment (notamment les registres CS, DS, ES, SS pointeront vers le même segment). Les pointeurs near sont toujours utilisés. Code, données et pile ensemble ne peuvent pas excéder 64 Kio.

Small : code et données seront dans des segments différents, et les pointeurs near sont toujours utilisés. Il y aura 64 Kio d'espace disponible pour le code et 64 Kio pour les données et la pile.

Medium : le code utilisera des pointeurs far, permettant l'accès à 1 Mio. Les pointeurs de données resteront du type near.

Compact : les données utiliseront des pointeurs far et le code utilisera des pointeurs near.

Large/huge : les pointeurs du code et des données seront far[2].

Type de pointeur utilisé selon le modèle de mémoire
Modèle de mémoire Données Code
Tiny* near
Small near** near
Medium near far
Compact far near
Large far far
Huge huge huge

Le Motorola 16/32 68000 et l'Intel 386SX[modifier | modifier le code]

Le Motorola 68000 est parfois qualifié de 16 bits parce que son bus de données est de 16 bits de large, mais on peut aussi le considérer comme un processeur d'architecture 32 bits dans la mesure où ses registres généraux ont une capacité de 32 bits et que la plupart des instructions arithmétiques supportent des entiers de 32 bits, avec jusqu'à 16 Mio de RAM adressable. Les programmes écrits pour le Motorola 68000 sont donc aisément compatibles au niveau du code source avec d'autres processeurs 32 bits.

Le processeur 68000 de la Sega Mega Drive fut très mis en avant dans les publicités, la console ayant même une inscription « 16 bits » sur le dessus de sa coque, ce qui conduisit cette période de l'histoire des consoles de jeux vidéo à être qualifiée d'« ère 16 bits ».

De nombreuses machines familiales de l'époque utilisèrent le microprocesseur 68000 : le Macintosh, l'Amiga 500, l'Atari ST («ST» signifiant Sixteen/Thirty-two, indiquant l'architecture du processeur en 16/32 bits), le Sharp X68000 mais également la Neo-Geo qui était alors pourtant présentée comme une console uniquement 32 bits. Le 68000 fut même utilisé dans la console Jaguar d'Atari, présentée à l'époque comme la première 64 bits du marché (seule une partie de son architecture était effectivement 64 bits).

La même analyse s'applique à l'Intel 80386SX, microprocesseur bas de gamme, qui est également un processeur 32 bits associé à un bus 16 bits.

Format de fichier 16 bits[modifier | modifier le code]

Un format de fichier 16 bits est un format de fichier binaire pour lequel chaque élément de données est défini sur 16 bits (ou 2 octets), comme l'encodage UTF-16 ou le format Windows Metafile.

Notes et références[modifier | modifier le code]

  1. Name: 2116B, sur hpmuseum.net, consulté le 24 décembre 2012
  2. Borland Turbo C++ 1.01 in-program manual

Articles connexes[modifier | modifier le code]