MOS 6502
|

MOS 6502

Le MOS Technology 6502 est un microprocesseur 8 bits présenté en 1975. Son importance dans l’histoire de l’informatique ne tient pas seulement à ses caractéristiques techniques. À une époque où un microprocesseur peut encore coûter plusieurs centaines de dollars, MOS Technology propose le 6502 pour environ 25 dollars. Cette rupture de prix contribue à rendre possible une nouvelle génération de machines beaucoup plus accessibles.Le 6502 va ainsi se retrouver au cœur de plusieurs ordinateurs devenus emblématiques, parmi lesquels l’Apple I, l’Apple II, le Commodore PET, le VIC-20 ou le BBC Micro. Des processeurs directement dérivés de son architecture équiperont également le Commodore 64, l’Atari 2600 ou encore différentes consoles de jeux. Derrière cette diffusion spectaculaire se cache pourtant un processeur relativement compact, conçu avec une idée simple : utiliser intelligemment peu de ressources matérielles plutôt que multiplier les circuits et les registres.


De Motorola à MOS Technology

L’histoire du 6502 commence en partie chez Motorola. Chuck Peddle et plusieurs ingénieurs qui participeront plus tard au 6502 travaillent d’abord sur la famille du Motorola 6800, l’un des microprocesseurs 8 bits importants du début des années 1970.

Peddle estime cependant qu’un microprocesseur beaucoup moins coûteux pourrait trouver des applications bien au-delà des systèmes professionnels auxquels sont alors destinés ces composants. Avec plusieurs collègues, parmi lesquels Bill Mensch, il quitte Motorola au milieu des années 1970 et rejoint MOS Technology en Pennsylvanie.

Contrairement à une affirmation parfois rencontrée, MOS Technology n’est pas fondée par cette équipe. L’entreprise existe depuis 1969 et fabrique notamment des circuits destinés aux calculatrices. C’est cette société déjà existante qui accueille les anciens ingénieurs de Motorola et leur fournit les moyens de développer une nouvelle famille de microprocesseurs.


Une équipe, pas seulement deux hommes

Chuck Peddle et Bill Mensch sont devenus les deux noms les plus fréquemment associés au 6502, mais le processeur est le résultat du travail d’une équipe. Les documents et témoignages concernant sa conception mentionnent notamment Chuck Peddle, Bill Mensch, Rod Orgill, Ray Hirt et Wil Mathys parmi les ingénieurs, ainsi que plusieurs spécialistes chargés du dessin physique du circuit, dont Harry Bawcom, Michael Janes et Sydney-Anne Holt.

À cette époque, la conception d’un microprocesseur est encore largement un travail manuel. Les différentes parties du circuit doivent être organisées avec une extrême précision afin de limiter la surface de silicium utilisée et d’obtenir un composant pouvant être fabriqué avec un rendement industriel suffisant.

Cette dimension est essentielle pour comprendre le 6502 : son faible prix ne résulte pas simplement d’une décision commerciale. La conception du circuit et les procédés de fabrication de MOS Technology visent également à obtenir une puce compacte et à augmenter la proportion de circuits fonctionnels obtenus sur chaque tranche de silicium.


Avant le 6502 : le 6501

L’équipe ne conçoit pas immédiatement un seul processeur. En 1975 apparaissent notamment le 6501 et le 6502. Les deux partagent une architecture proche, mais le 6501 possède une particularité importante : son brochage est conçu pour être compatible avec celui du Motorola 6800, ce qui permet théoriquement de l’insérer plus facilement dans certains systèmes prévus pour ce dernier.

Cette proximité alimente rapidement un conflit juridique avec Motorola. Le 6501 disparaît finalement du marché, tandis que MOS Technology poursuit la commercialisation du 6502, dont le brochage est différent. C’est ce second processeur qui va connaître une diffusion considérable.

Cette séquence montre que le succès du 6502 n’est pas celui d’une invention apparue isolément. Il s’inscrit dans une compétition industrielle très forte entre fabricants de semi-conducteurs, alors que le marché du microprocesseur est encore extrêmement jeune.


1975 : un processeur à 25 dollars

Lorsque le 6502 est présenté en 1975, son prix attire immédiatement l’attention. MOS Technology l’annonce autour de 25 dollars, alors que des processeurs concurrents comme l’Intel 8080 ou le Motorola 6800 se vendent alors couramment à des prix proches de 200 dollars dans des quantités comparables.

L’écart est suffisamment spectaculaire pour susciter la méfiance de certains observateurs. Pourtant, ce prix devient l’un des principaux arguments du processeur. Il permet à des ingénieurs, des amateurs et de jeunes entreprises de concevoir des systèmes qui auraient été beaucoup plus coûteux avec les processeurs disponibles quelques années auparavant.

Cette baisse du coût du calcul joue un rôle important dans l’émergence de la micro-informatique personnelle. Le processeur n’est évidemment qu’une partie du prix d’un ordinateur, mais diviser fortement le coût de son composant central change l’économie générale de la machine.


Une architecture 8 bits volontairement compacte

Le 6502 est un processeur 8 bits : son unité arithmétique et logique ainsi que ses principaux registres de données travaillent sur des valeurs de 8 bits. Son bus d’adresses possède en revanche 16 bits. Il peut donc former 216, soit 65 536 adresses, correspondant à un espace adressable de 64 Ko.

Le processeur dispose de relativement peu de registres visibles par le programmeur. Cette apparente limitation constitue en réalité l’un des choix structurants de son architecture.

  • A est l’accumulateur, utilisé pour de nombreuses opérations arithmétiques, logiques et de transfert.
  • X et Y sont deux registres d’index de 8 bits, particulièrement utiles pour parcourir des tableaux et calculer des adresses.
  • PC, le compteur ordinal, contient l’adresse de la prochaine instruction à exécuter.
  • SP est le pointeur de pile.
  • P est le registre d’état contenant notamment les indicateurs de zéro, retenue, signe, débordement et interruption.

Plutôt que de disposer d’un grand nombre de registres comme certaines architectures concurrentes, le 6502 exploite très efficacement certaines zones de la mémoire. La plus célèbre est la page zéro.


La page zéro : 256 octets très particuliers

L’espace mémoire du 6502 peut être considéré comme une succession de pages de 256 octets. La première, comprise entre $0000 et $00FF, est appelée page zéro.

Le 6502 dispose de modes d’adressage spécialement conçus pour cette zone. Une adresse située dans la page zéro peut être indiquée avec un seul octet, puisque son octet de poids fort vaut nécessairement zéro.

Pour charger la valeur située à l’adresse $0040, on peut par exemple écrire :

LDA $40

Pour une adresse située ailleurs dans les 64 Ko, par exemple $1240, il faut fournir une adresse complète sur 16 bits :

LDA $1240

La différence paraît faible, mais elle devient considérable lorsqu’un programme effectue des milliers d’accès mémoire. Dans de nombreux cas, l’adressage en page zéro produit une instruction plus courte et plus rapide que son équivalent utilisant une adresse complète. Les programmeurs utilisent donc fréquemment ces 256 octets pour conserver des variables importantes, des compteurs ou des adresses intermédiaires.

La page zéro joue ainsi en partie le rôle qu’un ensemble plus important de registres remplirait dans une autre architecture. C’est l’une des caractéristiques qui donnent à la programmation assembleur du 6502 son style particulier.


Une pile toujours au même endroit

Le 6502 réserve également une place particulière à la pile. Celle-ci se trouve toujours dans la deuxième page de mémoire, entre $0100 et $01FF. Le pointeur de pile SP ne contient que les 8 bits de poids faible de l’adresse ; l’octet de poids fort reste implicitement égal à $01.

La pile sert notamment à mémoriser temporairement des données et, surtout, à conserver l’adresse de retour lors d’un appel de sous-programme. Là encore, MOS Technology économise du matériel : un pointeur de pile sur 8 bits suffit puisque la position générale de la pile est imposée par l’architecture.

Cette solution limite la pile à 256 octets, mais elle simplifie le processeur. Le 6502 multiplie ainsi les compromis de ce type : certaines possibilités sont restreintes, mais le matériel nécessaire pour les mettre en œuvre reste réduit.


Les modes d’adressage au cœur de la programmation

Une grande partie de la souplesse du 6502 vient de ses modes d’adressage, c’est-à-dire des différentes manières dont une instruction peut désigner la donnée sur laquelle elle doit travailler.

Une instruction peut utiliser directement une valeur présente dans le programme, accéder à une adresse mémoire, ajouter le contenu de X ou Y à une adresse, utiliser la page zéro ou encore employer une adresse indirecte contenue en mémoire.

Par exemple :

LDA #$10

signifie « charger directement la valeur hexadécimale $10 dans l’accumulateur », alors que :

LDA $10

signifie « charger dans l’accumulateur la valeur contenue à l’adresse $0010 ». Le caractère # change donc complètement la signification de l’instruction : dans le premier cas, $10 est une donnée ; dans le second, c’est une adresse.

Cette distinction entre instruction et mode d’adressage est fondamentale pour comprendre le langage machine. Le même mnémonique, ici LDA, peut produire différents codes machine selon la manière dont la donnée est désignée.


Un petit programme pour comprendre le processeur

Quelques instructions suffisent pour illustrer le fonctionnement général du 6502 :

LDA #$05
CLC
ADC #$03
STA $0200

La première instruction charge la valeur 5 dans l’accumulateur A. CLC efface ensuite l’indicateur de retenue, car l’instruction d’addition du 6502, ADC pour Add with Carry, tient compte de cet indicateur. ADC ajoute alors 3 au contenu de l’accumulateur. Celui-ci contient maintenant 8. Enfin, STA $0200 copie cette valeur dans la case mémoire située à l’adresse $0200.

Le programme peut donc être lu comme une succession d’opérations très élémentaires : charger une valeur, préparer l’addition, effectuer le calcul puis enregistrer le résultat. À ce niveau, aucune variable portant un nom comme dans un langage moderne n’existe encore : le programme manipule directement les registres du processeur et les adresses mémoire.


Une fréquence modeste, mais pas un processeur « lent » pour autant

Le 6502 est souvent associé à une fréquence d’environ 1 MHz, notamment dans plusieurs des ordinateurs qui l’utilisent. Il faut cependant distinguer la fréquence possible du processeur de celle effectivement choisie par chaque constructeur : celle-ci dépend du modèle du composant et de l’architecture de la machine.

Comparer directement 1 MHz à plusieurs gigahertz d’un processeur moderne n’aurait guère de sens. Les architectures, les mémoires, le nombre de transistors, le travail effectué par chaque instruction et l’organisation complète des systèmes sont incomparables.

L’une des qualités du 6502 est d’effectuer de nombreuses opérations avec un nombre relativement faible de cycles. Le manuel de programmation de MOS Technology montre par exemple que, pour certaines instructions, utiliser la page zéro permet à la fois d’économiser un octet dans le programme et un cycle d’exécution par rapport à l’adressage absolu.


Environ 3 500 transistors… selon la manière de compter

Le chiffre de 3 510 transistors est souvent donné pour le 6502. Il provient notamment de l’analyse détaillée du circuit réalisée plusieurs décennies plus tard par le projet Visual6502.

Ce nombre doit toutefois être interprété avec prudence. Dans un circuit NMOS de cette époque, tous les éléments ne sont pas nécessairement comptabilisés de la même manière. Selon que l’on compte certains transistors de charge ou les emplacements possibles dans les structures logiques programmées, on peut obtenir des valeurs différentes.

Il est donc plus rigoureux de retenir que le 6502 comporte quelques milliers de transistors, un ordre de grandeur qui suffit à montrer à quel point son architecture est compacte comparée aux microprocesseurs contemporains qui en utilisent aujourd’hui plusieurs milliards.


Le KIM-1 : apprendre et expérimenter avec le 6502

MOS Technology ne se contente pas de vendre le processeur. En 1976, l’entreprise commercialise le KIM-1, une petite carte informatique conçue à l’origine pour permettre aux ingénieurs de découvrir et d’expérimenter avec le 6502.

La machine possède environ 1 Ko de mémoire, un petit afficheur à LED et un clavier hexadécimal. Elle est vendue assemblée pour environ 245 dollars. Elle ne ressemble donc pas encore à un micro-ordinateur familial doté d’un écran et d’un clavier complet.

Pourtant, le KIM-1 dépasse rapidement son rôle de système de développement. Les amateurs s’en emparent, lui ajoutent des extensions et écrivent leurs propres programmes. Il devient l’un des systèmes qui participent à la transition entre les cartes destinées aux électroniciens et les véritables ordinateurs personnels.


Du KIM-1 à l’Apple II

Le prix du 6502 le rend particulièrement attractif pour les pionniers de la micro-informatique. Steve Wozniak l’utilise dans l’Apple I puis dans l’Apple II, présenté en 1977. Pour une jeune entreprise comme Apple, choisir un processeur coûtant quelques dizaines de dollars plutôt que plusieurs centaines constitue un avantage considérable.

Le 6502 équipe également le Commodore PET, lui aussi lancé en 1977. Le PET constitue l’une des premières machines entièrement assemblées destinées au nouveau marché de l’ordinateur personnel.

Commodore conserve ensuite cette architecture avec le VIC-20. Le succès de ces machines contribue à former une importante communauté de programmeurs familiers du langage machine du 6502.

Au Royaume-Uni, le BBC Micro adopte lui aussi un processeur de la famille 6502. Utilisé massivement dans l’enseignement britannique, il contribue à transmettre la connaissance de cette architecture à une nouvelle génération d’utilisateurs et de programmeurs.


Le cas particulier de l’Atari 2600

L’Atari 2600 est souvent citée parmi les machines utilisant le 6502. Cette formulation mérite toutefois d’être précisée : la console utilise en réalité un MOS 6507.

Le 6507 appartient à la même famille et reprend le cœur du 6502, mais son boîtier utilise moins de broches et une partie des lignes d’adresse du 6502 n’est pas disponible. Il peut donc adresser directement un espace beaucoup plus réduit.

Il est ainsi préférable de dire que l’Atari 2600 utilise un dérivé du 6502 plutôt que le 6502 lui-même. La nuance est importante lorsqu’on cherche à retracer précisément la diffusion de cette architecture.


Du 6502 au 6510

La famille évolue ensuite dans plusieurs directions. Pour le Commodore 64, MOS Technology développe le MOS 6510, très proche du 6502 mais doté d’un port d’entrées/sorties intégré.

Dans le Commodore 64, ce petit ajout joue un rôle important dans la configuration de la mémoire. Le 6510 montre ainsi comment l’architecture du 6502 peut être adaptée à une machine particulière sans remettre en cause son modèle de programmation général.

D’autres constructeurs produisent également des versions de la famille 65xx. Cette multiplication des variantes fait du 6502 moins un processeur isolé qu’une véritable architecture qui se développe sur plusieurs générations.


Le 65C02 : le passage au CMOS

Une évolution importante apparaît avec le 65C02. Le « C » indique l’utilisation de la technologie CMOS, qui permet notamment de réduire fortement la consommation électrique par rapport aux premiers circuits NMOS.

Le 65C02 corrige également certaines particularités du 6502 original et enrichit son jeu d’instructions. Il conserve néanmoins les principes fondamentaux de l’architecture et une forte compatibilité avec les logiciels existants.

Cette évolution est particulièrement intéressante historiquement : une architecture conçue dans les années 1970 ne disparaît pas lorsque les techniques de fabrication changent. Elle est adaptée, améliorée et réutilisée dans de nouveaux contextes.


Le 65816 : faire évoluer le 6502 vers 16 bits

Bill Mensch poursuit cette évolution au sein de la société Western Design Center, qu’il fonde après avoir quitté MOS Technology. L’un des résultats les plus importants de ce travail est le 65C816, souvent appelé 65816.

Ce processeur étend l’architecture vers un fonctionnement 16 bits et dispose d’un espace d’adressage beaucoup plus vaste, tout en conservant un mode permettant une forte compatibilité avec le monde du 6502.

Le 65816 sera notamment utilisé dans l’Apple IIgs et dans la famille de processeurs employée par la Super Nintendo. L’architecture imaginée pour un processeur à très bas coût en 1975 se révèle donc suffisamment souple pour continuer à évoluer plus d’une décennie après sa conception.


Une architecture toujours commercialisée

L’histoire ne s’arrête d’ailleurs pas avec les micro-ordinateurs des années 1980. La famille 65xx existe toujours. Western Design Center commercialise encore aujourd’hui des processeurs comme le W65C02S, version CMOS 8 bits de l’architecture, ainsi que le W65C816S, son descendant 8/16 bits.

Le W65C02S est notamment proposé pour des applications embarquées dans les domaines industriels, automobiles, médicaux ou grand public. On ne peut donc plus simplement écrire que l’architecture a été utilisée « pendant plus de vingt ans » : elle possède aujourd’hui une continuité qui approche le demi-siècle.


Caractéristiques principales du MOS 6502

  • Constructeur : MOS Technology
  • Présentation : 1975
  • Architecture : 8 bits
  • Bus d’adresses : 16 bits
  • Espace d’adressage : 65 536 octets, soit 64 Ko
  • Registres principaux : A, X, Y, SP, PC et registre d’état P
  • Page zéro : $0000-$00FF
  • Zone de pile : $0100-$01FF
  • Fréquence emblématique : autour de 1 MHz dans de nombreux systèmes, selon les versions
  • Nombre de transistors : couramment donné autour de 3 500, selon la méthode de comptage
  • Boîtier original courant : DIP 40 broches
  • Prix de lancement emblématique : environ 25 dollars

Quelques machines de la famille 6502

  • KIM-1 : MOS 6502
  • Apple I : MOS 6502
  • Apple II : MOS 6502
  • Commodore PET : MOS 6502
  • Commodore VIC-20 : MOS 6502
  • BBC Micro : processeur de la famille 6502
  • Atari 2600 : MOS 6507, dérivé du 6502
  • Commodore 64 : MOS 6510, dérivé du 6502

Pourquoi le 6502 compte dans l’histoire de l’informatique

Le MOS 6502 n’est ni le premier microprocesseur ni le processeur le plus sophistiqué de son époque. Son importance vient d’une combinaison beaucoup plus intéressante : un prix extrêmement bas, une architecture compacte, des modes d’adressage efficaces et une conception suffisamment souple pour être intégrée dans des machines très différentes.

Son influence est à la fois industrielle et pédagogique. Industrielle, parce que son prix contribue à réduire le coût de conception des systèmes à microprocesseur et accompagne l’apparition d’ordinateurs personnels produits en grande série. Pédagogique, parce que des millions d’utilisateurs rencontrent cette architecture dans leur premier ordinateur et découvrent, à travers elle, les registres, la mémoire, les adresses et le langage machine.

La page zéro, la pile fixée dans une zone précise, le petit nombre de registres et les nombreux modes d’adressage obligent le programmeur à comprendre très directement la manière dont le processeur utilise la mémoire. Cette proximité avec le matériel explique en partie pourquoi le 6502 reste aujourd’hui encore une architecture particulièrement intéressante pour apprendre le fonctionnement interne d’un microprocesseur.

Mais son héritage dépasse largement l’enseignement. Du KIM-1 à l’Apple II, du Commodore PET au BBC Micro, puis à travers le 6510, le 65C02 et le 65816, le 6502 a donné naissance à une famille dont l’histoire traverse presque toute celle de la micro-informatique personnelle. Cinquante ans après son apparition, des descendants directs de cette architecture sont toujours fabriqués. Peu de microprocesseurs des années 1970 peuvent revendiquer une telle continuité.


Par Dirk Oppelt — http://www.cpu-collection.de/, CC BY-SA 3.0, Lien

Publications similaires

  • RIM Loader

    Le RIM Loader  : démarrer une machine sans ROM Dans la famille des machines DEC 12 bits, le Read-In Mode Loader apparaît avec le PDP-5, puis devient particulièrement connu avec le PDP-8, où il sert classiquement à charger le BIN Loader depuis un ruban perforé. Le RIM Loader, pour Read-In Mode Loader, est un petit…

  • Mémoire à lignes à retard

    La mémoire à lignes à retard, ou delay-line memory, est l’une des premières technologies utilisées pour conserver les données et les instructions des ordinateurs électroniques. Son principe vient des recherches menées pendant la Seconde Guerre mondiale sur les systèmes radar. Des dispositifs permettent alors de retarder un signal en le transformant en une onde acoustique…

  • COBOL

    COBOL, acronyme de Common Business-Oriented Language, est un langage de programmation créé à partir de 1959 pour répondre à un problème devenu crucial : comment écrire des programmes de gestion capables de fonctionner sur des ordinateurs provenant de constructeurs différents ? À la fin des années 1950, IBM, UNIVAC, RCA, Honeywell, Burroughs et d’autres fabricants…

  • MOS 6510

    Le MOS Technology 6510 est un microprocesseur 8 bits étroitement dérivé du célèbre MOS 6502. Développé chez MOS Technology à la charnière des années 1970 et 1980, il ne constitue pas une nouvelle architecture : il reprend l’essentiel du fonctionnement du 6502 et lui ajoute principalement un port d’entrées/sorties programmable intégré au processeur.Cette évolution paraît…

  • Fortran

    FORTRAN, contraction de FORmula TRANslation (« traduction de formules »), est l’un des langages les plus importants de l’histoire de l’informatique. Développé chez IBM sous la direction de John Backus, il permet aux scientifiques et aux ingénieurs d’écrire leurs calculs sous une forme beaucoup plus proche des mathématiques que des instructions d’une machine.Lorsque le premier…

  • BASIC

    Le nom BASIC vient de Beginner’s All-purpose Symbolic Instruction Code : un langage pensé pour que des débutants puissent enfin dialoguer avec l’ordinateur. Le langage qui a fait entrer la programmation dans les salles de classe Au début des années 1960, l’ordinateur reste encore une machine distante, coûteuse et intimidante. Dans beaucoup d’universités ou de…