Architecture 16 bits

Un article de Wikipédia, l'encyclopédie libre.
Le WDC W65C816S, un micro-processeur 16 bits

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

Un mot de 16 bits peut stocker 216 valeurs différentes, soit 65 536 valeurs. Un processeur 16 bits peut donc directement adresser 64 kio 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 816 bits (bus de données 8 bits, bus d'adresse de 16 bits) se multiplient, comme le Zilog Z80, le MOS Technology 6502 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 de données externe ne sont que de 8 bits de large[2].

Un entier de 16 bits permet de stocker 216 (soit 65 536) 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]

Les processeurs 16 bits ont disparu de l'industrie des ordinateurs personnels actuels (remplacé par 64 bits), 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 processeur 16 bits permet d’accéder à 65 536 emplacements particulier de la mémoire.

Le choix d'un modèle de mémoire dépend 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.

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[3].

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 et son unité arithmétique et logique ont 16 bits de large, et son bus mémoire ne peut adresser que 16 Mio de Mémoire vive. Il expose toutefois une 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. Les programmes écrits pour le Motorola 68000 sont donc compatibles avec les processeurs 32 bits de la famille M68k et exploitent pleinement leurs capacités 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-bit » 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 ».[réf. nécessaire]

De nombreuses machines familiales de l'époque utilisèrent le microprocesseur 68000 : le Macintosh, l'Amiga 500, l'Atari ST[4], le Sharp X68000 mais également la console Neo-Geo AES. Le 68000 fut utilisé dans la console Jaguar d'Atari, présentée à l'époque comme la première 64 bits du marché (alors que seule une partie de son architecture était effectivement 64 bits).

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

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

  1. Name: 2116B, sur hpmuseum.net, consulté le 24 décembre 2012
  2. « Intel 8088 microprocessor family », sur www.cpu-world.com (consulté le )
  3. Borland Turbo C++ 1.01 in-program manual
  4. «ST» signifiant Sixteen/Thirty-two, indiquant l'architecture du processeur en 1632 bits.

Annexes[modifier | modifier le code]

Articles connexes[modifier | modifier le code]