Architectures matérielles

Programme

De Turing à Von Neumann

Grace aux travaux de Turing Von Neumann a défini en 1944 l’architecture d’un ordinateur.

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.

Le Transistor

Le transistor a été inventé en 1947 par les Américains John Bardeen, William Shockley et Walter Brattain, chercheurs des Laboratoires Bell. Ces chercheurs ont reçu pour cette invention le prix Nobel de physique en 1956.

Un transistor est l’élément de base des circuits logiques.

Activité : Une porte logique avec des transistors

Sachant que quand c=1 la led est allumée. Donc on déduire que a ou (exclusive) b = c.

La loi de Moore

La loi de Moore est empirique et issue de constatations faites par Gordon E. Moore. En 1965, celui qui fut l’un des cofondateurs de la société Intel trace une courbe d’évolution de la taille et du prix des microprocesseurs. Il s’aperçoit alors que à coût égal, leur complexité doublait tous les ans. En 1975, il précise que c’est le nombre de transistors qui double tous les deux ans. Il a prédit que cette croissance allait se poursuivre à ce rythme jusqu’en 2015, où elle serait limitée par la taille des atomes. L’Histoire lui a donné raison puisque entre 1971 et 2001 la densité des transistors a effectivement doublé 1,96 fois par an. 

Architecture de Von Neumann

Modèle de Van Neumann

L’unité de commande ou de contrôle récupère les informations dans la mémoire et donne les ordres à l’UAL.

L’unité arithmétique et logique ALU (ou UAL) exécute les instructions du programme une par une en commençant par la première (calculs , les opérations logiques les comparaisons).

L’accumulateur est un registre spécial ou sont versés les résultats intermédiaires.

Les entrés et sorties permettent de communiquer avec le monde extérieur.

La mémoire stocke le programme ( données et instructions) en binaire.

Dans les ordinateurs actuels on trouve plusieurs processeurs séparés ou plusieurs cœurs intégrés dans une même puce.

Programmation en assembleur

EXEMPLE 1 :

On met notre code sur le simulateur y86 :

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

EXEMPLE 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 est-ce-que 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

EXEMPLE 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 :

No Responses

Leave a Reply

Your email address will not be published. Required fields are marked *