Architecture matérielles

Peu connu du grand public, le mathématicien hongrois John von Neumann (1903-1957) a pourtant élaboré des théories dont les applications ont définitivement changé le cours de l’humanité, de la bombe atomique à la révolution numérique . Si vous voulez en savoir plus visionnez La vidéo ci-dessous (57 minutes )

De Turing à Von Neumann

Dans l’histoire de l’informatique, vue en début d’année, nous avions vu que les premiers ordinateurs, au sens moderne, possédant une mémoire et capable de faire des traitements variés, étaient apparus dans la première moitié du XXe siècle. En 1945, le mathématicien américano-hongrois John Von Neumann, utilisant les recherches d’Alan Turing, décrit le modèle d’un calculateur à programme possédant une mémoire. Ce modèle est encore utilisé aujourd’hui et est connu sous le nom d’Architecture Von Neumann :

  • Le CPU (Central Processing Unit) ou Processeur qui possède deux parties :
    • UAL : unité arithmétique et logique qui effectue les opérations de base (addition, soustraction, multiplication…)
    • CU (control unit) Unité de contrôle : elle commande le fonctionnement du système en séquençant les commandes et en choisissant le chemin que doivent prendre les données.
    • Le processeur possède également une petite mémoire temporaire appelée registre. (on parle aussi parfois d’accumulateurs pour les calculs intermédiaires).
  • La mémoire qui contient les données et les programmes :RAM (Random Access Memory) : mémoire qui contient les programmes et données en cours de traitement. Chaque cellule mémoire est accessible par son adresse .

Exécution d’instructions simples en langage machine

Le CPU exécute les instructions de manière séquentielle, aidé en cela par une horloge qui définit le passage au traitement suivant. Le cycle de fonctionnement normal des instructions est le suivant :

  • Chargement de l’instruction à exécuter
  • Décodage de l’instruction
  • Incrémentation du compteur ordinal (équivalent au déplacement de la tête de lecture dans une machine de Turing)
  • Recherche des données nécessaires en mémoire avec leur adresse
  • Chargement des données nécessaires
  • Exécution de l’instruction (calcul, écriture…)
  • Reprise au début

Chaque instruction ou donnée à une longueur d’un certain nombre de bits appelé « mot machine » dont la longueur correspond à la largeur du bus de données. En 2021, la plupart des ordinateurs fonctionnent avec des bus de 64 bits, soit 8 octets.

Le langage machine

TEST 1 :

On met notre code sur le simulateur y86 :

On remarque que le programme stocke la valeur « immédiate » 9 dans le registre  %eax.

TEST 2 :

Enregistrement de la valeur « immédiate » 9 dans le registre %eax

Enregistrement de la valeur « immédiate » 6 dans le registre %ebx

Effectuons l’addition et enregistrons le résultat dans le registre %ebx

Fin du programme

Modifions  le programme pour effectuer la soustraction 6-9 dans %ebx

On peux retenir donc que pour additionner on utilise « addl » et pour soustraire « subl » !

Le résultat de la soustraction donne f f f f f f f d(16)

Mais esque ce nombre correspond  il à -3 ?

première méthode: complément à 2

f f f f f f f d(16)

Écriture en binaire

1111 1111 1111 1111 1111 1111 1111 1101

Inversion des bits

0000 0000 0000 0000 0000 0000 0000 0010

Ajout de 1

0000 0000 0000 0000 0000 0000 0000 0011

3 en décimal !

Deuxième méthode : on ajoute 3

1111 1111 1111 1111 1111 1111 1111 1101

0000 0000 0000 0000 0000 0000 0000 0011

————————————————————-

0000 0000 0000 0000 0000 0000 0000 0000

la somme donne bien 0

TEST 3 :

Enregistrement de la valeur « immédiate » 9 dans le registre %eax

Et on place la valeur %eax donc ‘9’ et on la place dans la mémoire « rm »movl ligne 48 en hexadécimal donc :

Aucune réponse

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *