IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Les CPU des Mac : intel 4004, Réactions à la publication du 01/10/2024
Options
Paul Emploi
posté 1 Oct 2024, 21:28
Message #1


Macbidouilleur d'Or !
*****

Groupe : Rédacteurs
Messages : 2 157
Inscrit : 19 Nov 2020
Membre no 212 895



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 wink.gif


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!


Lien vers le billet original



--------------------
La liberté d'expression c'est l'extrémisme. La censure c'est la liberté.
Go to the top of the page
 
+Quote Post
malloc
posté 2 Oct 2024, 09:53
Message #2


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 642
Inscrit : 5 Sep 2004
Membre no 23 103



Merci pour le coup de projecteur sur ce CPU méconnu.

Chacun sait bien sûr que le vrai test de Turing-completeness, c'est de faire tourner Doom wink.gif


--------------------
AMF: Ne possède pas d'actions Apple. Ne touche aucune rémunération, directe ou indirecte, d'Apple. Intervient ici depuis 20 ans à titre personnel. Ne partage pas son compte avec des tiers. N'a aucun lien avec les rédacteurs du blog MacBidouille.
Mes messages sont parfois édités par la modération dans le texte, et ce sans trace visible. Ce qui apparaît sous mon nom peut ne pas provenir de moi.
Go to the top of the page
 
+Quote Post
amike
posté 2 Oct 2024, 17:22
Message #3


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 1 539
Inscrit : 9 Aug 2012
Membre no 178 091



Défi : "Linux sur intel 4004"

"Son astuce a été d'émuler une CPU MIPS R3000 32 bits avec le intel 4004 4 bits"
"[tout est possible s'il est possible d'] émuler un x86 32 bits ou 64 bits, ou ARM 64 bits"

C'est de la triche, donc, non ? laugh.gif
Go to the top of the page
 
+Quote Post
toinet
posté 3 Oct 2024, 22:24
Message #4


Nouveau Membre


Groupe : Membres
Messages : 30
Inscrit : 5 Jul 2006
Lieu : Le Chesnay-Rocquencourt
Membre no 63 970



Les cartes d'extension pour Apple II peuvent monter jusqu'à 16Mo. On n'accède qu'à un banc de 64Ko à la fois.
Il faut donc voir la mémoire comme : 64Ko de mémoire principale (MAINRAM) et 64Ko x 256 bancs en mémoire auxiliaire (CARDRAM)

Pratiquement, à l'époque, vu le prix des éléments, on n'allait pas au-delà de 8Mo.

Antoine


--------------------
Go to the top of the page
 
+Quote Post
Paul Emploi
posté 3 Oct 2024, 23:48
Message #5


Macbidouilleur d'Or !
*****

Groupe : Rédacteurs
Messages : 2 157
Inscrit : 19 Nov 2020
Membre no 212 895



Citation (toinet @ 3 Oct 2024, 23:24) *
Les cartes d'extension pour Apple II peuvent monter jusqu'à 16Mo. On n'accède qu'à un banc de 64Ko à la fois.
Il faut donc voir la mémoire comme : 64Ko de mémoire principale (MAINRAM) et 64Ko x 256 bancs en mémoire auxiliaire (CARDRAM)

Pratiquement, à l'époque, vu le prix des éléments, on n'allait pas au-delà de 8Mo.

Antoine

Intéressant et troublant.

Pour moi la limite était de 4 Mo, déjà délirante pour l'époque, la limite réelle avec un système de pagination mémoire de 4 Mo théorique, et plutôt 1 Mo en pratique.
Il n'est pas possible de switcher d'un banc de 64 Ko à un autre banc de 64 Ko, en aucun cas. Évidemment.
J'ai du mal à comprendre d'où ça vient?!?

Il faut noter que le switch de l'espace mémoire complet (les 64 Ko adressables) ne peut pas fonctionner avec de la RAM sur un 6502, ni un 68000 d'ailleurs, ça peut se faire sur un 68020 en exploitant le cache (sur une NMI ou sans NMI possible).
Avec une ROM non-switchée ça pourrait se jouer sur un 6502 avec l'IRQ masquée, et très lentement.

Mais pour moi les pages faisaient 4Ko (bien plus pratique), comme sur un Goupil 3 et son 6809E.


--------------------
La liberté d'expression c'est l'extrémisme. La censure c'est la liberté.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 14th November 2025 - 07:20