"Ressembler" implique une métaphore. Si nous prenons "à quoi cela ressemblera" littéralement, cela ressemblera à un morceau de silicium gravé de fantaisie assis sur sa carte mère. Le but était clairement la métaphore. Pour construire la métaphore, nous devons regarder ce que c'est vraiment en premier. Ensuite, nous pouvons construire une métaphore acceptable. C'est un peu long, mais heureusement, cela se termine par une métaphore vidéo pour vous.
Le code machine est en fait stocké en mémoire sous forme de bits. Les puces mémoire sont généralement des DRAM , qui stockent ces bits sous forme de tensions à travers un condensateur et des électrons. Les deux sont connectés - il est difficile de parler des tensions sans électrons. Parfois, c'est pratique de parler de l'un ou de l'autre, mais comprenez que là où l'un va, l'autre suit.
L'aventure du code machine commence par une «récupération». Un modèle particulier de tensions est appliqué aux fils de la puce RAM indiquant que cet ensemble particulier de bits doit être envoyé à la CPU. Pourquoi? Je ne sais pas, je m'en fiche. Généralement, ce signal est envoyé parce que le processeur a terminé la dernière instruction et en demande une nouvelle comme réponse instinctive, comme un chien qui demande une deuxième gâterie après que vous lui ayez donné la première. Ce processus commence par un coup de pied primordial dans le pantalon provoqué par une instabilité naturelle dans le CPU. Lorsqu'une alimentation applique une tension constante à la puce, les augmentations de tension conduisent finalement le CPU à mettre les bonnes tensions sur les puces RAM pour aller chercher les premières instructions (je fais un peu de la main sur la couche BIOS, car ce n'est pas important à l'histoire. Cherchez-le).
La mémoire moderne diffuse des données en parallèle. Cela signifie que les bits qui composent le code machine sont divisés en "voies" (32 ou 64 sont communes), ce qui est la façon logique de dire les fils 32/64 de la RAM à la CPU. La tension sur ces lignes est augmentée et abaissée selon les besoins pour la transmettre au CPU.
Une fois dans le CPU, il peut faire son travail. C'est le domaine de la microarchitecture , et cela peut se compliquer car il s'agit littéralement d'une industrie d'un milliard de dollars. Ces tensions affectent les transistors, qui affectent d'autres tensions, d'une manière que nous pourrions décrire comme «l'ajout de bits» ou la «multiplication». Ce ne sont vraiment que des tensions qui représentent ces bits, de la même manière que nous pourrions griffonner la chaîne de 5 caractères "2 + 2 = 4" sur un morceau de papier et dire que nous avons fait des mathématiques. Le crayon graphite n'est pas le numéro deux. C'est juste la représentation physique que nous utilisons pour ce nombre.
C'est donc ce que fait le vrai système, à un niveau extrêmement élevé. J'ai bien sauté ... à peu près tout ... mais c'est assez décent pour pouvoir revenir à votre vraie question. À quoi cela ressemblerait-il [métaphoriquement]?
En l'occurrence, je pense que Martin Molin a peut-être construit la meilleure métaphore, avec sa machine à marbre . Le code machine est codé (à la main) sur certaines bandes Lego Technics au milieu sous forme de chevilles, plutôt que de tensions sur un condensateur. Cela ressemble plus à EPROM qu'à DRAM, mais les deux contiennent des données. Les billes sont comme les électrons, étant déplacées par des tensions (ou gravité, dans le cas des billes). Et lorsque les électrons se déplacent, ils appliquent une force aux portes qui font les choses.
Sa machine est simple, comparée à un CPU moderne, mais ce n'est pas si mal, en ce qui concerne les métaphores. Et c'est accrocheur!