Architecture 16 bits
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 216 valeurs différentes, soit 65 535 valeurs. Un processeur 16 bits peut donc adresser directement 64 kio de mémoire.
Histoire
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 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 (ou 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
Les processeurs 16 bits ont disparu de l'industrie des ordinateurs personnels actuels (aujourd'hui 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 comme il existe plusieurs modèles de données pour les architectures 64 bits, 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 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 | 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[3].
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
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 possédant le même jeu d’instructions.
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 ».
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).
La même analyse s'applique à l'Intel 80386SX, microprocesseur d'entrée de gamme, qui est également un processeur 32 bits associé à un bus 16 bits.
Notes et références
- Name: 2116B, sur hpmuseum.net, consulté le 24 décembre 2012
- « Intel 8088 microprocessor family », sur www.cpu-world.com (consulté le )
- Borland Turbo C++ 1.01 in-program manual
- «ST» signifiant Sixteen/Thirty-two, indiquant l'architecture du processeur en 16⁄32 bits.
Articles connexes
- Portail de l’informatique