Nous utilisons des cookies pour améliorer votre expérience.

MacBidouille

Les CPU des Mac : Motorola 6809E

Le Motorola 6809 ou M6809 a été intégré dans un des premiers prototypes du Macintosh en 1979.

Le but étant d'avoir une CPU relativement puissante, orientée vers les langages de haut-niveau compilés, et un bus 8 bits avec une logique simple, quitte à devoir utiliser un système de banques mémoire comme celui utilisé pour les cartes d'extension pour Apple ][ (jusqu'à 4Mo dans ce cas!).

La logique de banques mémoire n'est pas complexe a implémenter, on la retrouvera par exemple sur le Goupil 3 français de SMT avec ses cartes 6809 ou Z80, permettant d'adresser jusqu'à 1 Mo (24 bits) via 16 registres physiques sur le bus, mais c'est de la haute-voltige relativement incompatible avec les langages de haut-niveau, même si le 6809 via son code relogeable (relocatable) aurait pu être le meilleur 8 bits pour implémenter cela de manière transparente: c'est un exercice à réserver aux professionnels et sur circuit fermé!

Un point de détail, le E à la fin de la référence ne correspond pas à une fréquence d'horloge mais au fait d'utiliser une horloge externe pour synchroniser le 6809 avec le bus système et les autres composants qui y sont reliés.

Sa fréquence était de 1Mhz, 1,5Mhz pour le 68A09 puis 2Mhz pour le 68B09.

Le 6809 avait des avantages évidents sur le 6502, en terme de performance et de support des langages compilés comme le C ou Pascal, mais partageait nombre de ses défauts les plus criants.

Ses avantages sur le 6502 historique:

  • Performances bien meilleures
  • Code plus compact
  • Code relogeable, capable de s'exécuter à l'identique même quand son adresse d'exécution change, via les sauts et appels de sous-routines relatifs au PC, essentiel pour du multitâche associé à de la pagination simple (pas de mémoire virtuelle, ni donc de faute d'accès)
  • 3 pointeurs 16 bits utilisables (X, Y et U), 2 accumulateurs 8 bits A & B utilisables comme 1 accumulateur 16 bits D
  • Des modes d'adressages indirect puissants
  • Un petit délice à programmer en assembleur, du code simple et efficace, grâce aux registres et aux modes d'adressages
  • Support incroyable du C pour lequel il a été conçu, un strcpy() c'est 3 instructions dans la boucle, un strncpy() une de plus, un tri-add 5 instructions.
  • Capacité aussi pour le Pascal compilé via le registre U utilisé comme Frame Pointer, avec celui-ci déjà choisi pour Lisa, donc potentiellement pour le Macintosh aussi

Ses inconvénients dans un Macintosh

  • Adressage direct limité à 64Ko quand un frame buffer de Macintosh originel (512x342 monochrome) prenait déjà plus de 21Ko!
  • Performances du bus toutes aussi limitées et limitantes, surtout pour une interface graphique sans processeur spécialisé dédié
  • Fin de vie, Motorola ayant décidé en 1976 que son avenir était le projet MACSS 16 bits qui deviendra le 68000 dévoilé la même année que ce prototype, en 1979

Le 6809 n'a évidemment pas duré, il était pourtant pour moi le meilleur 8 bits pour implémenter une interface graphique et un système de banques mémoire fonctionnel et transparent, même en langage de haut-niveau compilé. Mais sans aucun avenir.

Et vous que pensez-vous d'un 6809 dans un Mac, ou vos expériences avec celui-ci ?

Sondage

Etes-vous tenté par le nouveau Mac mini M4 ?