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

MacBidouille

Les CPU des Mac : intel 4004

Le intel 4004 est un microprocesseur 4 bits créé en 1971 par la société alors spécialisée dans la mémoire vive à la demande de Busicom pour son 141-PF, une entreprise Japonaise de fabricant de calculateurs.
Le 4004 est entré dans l'histoire comme le premier microprocesseur commercial.

On peut négocier la notion de microprocesseur ou de CPU puisque comme l'iAPX432 qui a suivi une décennie plus tard et premier 32 bits d'intel, il faut en fait plusieurs puces car les registres situés sur une puce DRAM séparée pour le 4004!

Sans parler de toutes les autres puces intel nécessaire pour avoir un système fonctionnel, ROMs avec UART (sic), DRAM, et des puces additionnelles pour s'interfacer avec le monde.

Le intel 4004

Pour résumer le 4004 est un microprocesseur 4 bits, sans opérations booléennes (en fait sur des vecteurs booléens comme NOT, AND, OR ou XOR), sans autre drapeau que la retenue (Carry/Borrow suivant l'opération ADD ou SUB).

Pour les registres, ils sont 16 de 4 bits, ce qui fait beaucoup, et stockés en DRAM!
La pile fait 4 niveaux de profondeurs, gérée en hardware (!!!), mais comme le PC de 12 bits occupe le dernier niveau, on a donc que 3 niveaux de sous-routines: oubliez donc les algos récursifs par appels (non-optimisés).

Ah oui, pour les interruptions classiques, IRQ et NMI, même sans hiérarchies, vous pouvez oublier: le plus proche est une pin accessible qu'il faut tester régulièrement!

L'adressage est sur 12 bits, limitant la RAM à 4096 octets et la ROM itou, via déjà deux astuces, puisqu'en théorie avec un bus 4 bits et 12 bits d'adressage, le maximum est de 4096 nibbles (demi-octets de 4 bits) soit 2Ko incluant ROM et RAM.
Énorme pour un calculateur comme le Busicom 141-PF pour lequel cette série de puces a été créée.

Malheureusement le Busicom 141-PF serait resté à l'état de prototype, ou pas, l'histoire semble complexe avec NCR (Japonais aussi) qui en aurait vendu sous la référence 18-36.
Mais intel avait compris l'intérêt des microprocesseurs et travaillait déjà à la suite, le 8008, qui évoluera en 8080, 8086, etc. Vous connaissez la suite...

Personne aujourd'hui ne se souvient de intel comme fabricant de mémoire, dont la mémoire à bulle (stockage persistant ancêtre des mémoires Flash et des SSD) avec une carte de 128 Ko pour Apple II basée sur une de ses puce 1Mb.

Linux sur intel 4004

Dmitry Grinberg né en Russie et ayant émigré tôt avec ses parents aux États-Unis est ce que je nommerais un génie. Avec une belle part de folie douce!

Il avait déjà établi un record en 2012 en faisant tourner Linux sur un microcontrôleur 8 bits AVR, record battu en 2023 par d'autres sur un MOS 6510 de Commodore 64 (C64) moins performant, et il a désiré relever le challenge en faisant démarrer et tourner Linux (en mode texte hein!) sur le plus ancien et probablement le moins puissant des microprocesseurs! Le 4004!

Pari réalisé et documenté de fond en comble, avec une vidéo de démonstration (temps accéléré!) de boot et d'usage de quelques commandes.
Une démonstration par l'absurde du principe de Turing-complete!

Son astuce a été d'émuler une CPU MIPS R3000 32 bits avec le intel 4004 4 bits, afin de pouvoir démarrer un kernel patché (pour éviter des bugs existantes), mais à une vitesse plus que cacochyme!

Le prochain record devra probablement être réalisé avec une machine de Turing ;)

Pourquoi "CPU des Mac"

Maintenant qu'un Linux dérivé de Debian tourne dessus, rien n'empêcherait d'étendre le projet à un noyau open-source XNU, voire un macOS complet, même macOS 15 Sequoia.
Évidemment en émulant un x86 32 bits ou 64 bits, ou ARM 64 bits.

Les seules modifications étant d'étendre l'accès mémoire et l'accès à des systèmes de stockages plus larges, même en TCP/IP car après tout il peut être transporté via une liaison série et il y a une UART par puce de ROM 4001!

La seule limite étant l'imagination, et le temps passé à attendre bien sûr!

Notez qu'un Apple II avec mémoire étendue (4 Mo maxi!) devrait pouvoir faire démarrer le Finder du premier Mac, lentement, et même avec des disques durs chainés pour étendre sa mémoire, OS X 10.0 ... Qui s'y colle? (sans la carte ESP 32 SoftCard)

Conclusion

Je voulais profiter de l'exploit incroyable de Dmitry Grinberg pour parler du premier microprocesseur commercial, le intel 4004, qui a ouvert la voie à tout ce qu'on utilise aujourd'hui et qui en descend ou en a été inspiré, dont on peut dire qu'il a changé le monde même si quasi-personne ne l'a utilisé.

Il y a du intel 4004 dans chaque Mac existant qu'il soit ARM, x86, PowerPC ou Motorola!

Sondage

Comptez-vous acheter un Vision Pro ?