Architecture matérielle

Publié par admin_nsi le

De Turing à Von Neumann

https://interstices.info/comment-fonctionne-une-machine-de-turing/

http://inriamecsci.github.io/#!/grains/machine-turing

Grace aux travaux de Turing Von Neumann a défini en 1944 l’architecture d’un ordinateur.
https://interstices.info/le-modele-darchitecture-de-von-neumann/

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 )


Le transistor a été inventé len 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.

Après avoir visionné la vidéo ci-dessous rédiger la réponse à la question :

Qu’est ce qu’un transistor ?

Le transistor est l’élément de base des circuits logiques

le circuit ci dessus permet de simuler sur logisim une porte logique à l’aide de deux transistors. Vous pouvez télécharger le fichier et l’ouvrir avec logisim ou réaliser le circuit sur directement. Écrire la table de vérité pour déterminer la fonction logique obtenue.    

fichier à télécharger

Toutes les opérations logiques sont réalisées avec des circuits logiques.

conjecture de Moore

Qu’est ce qu’un processeur ?

Architecture de Von Neumann

Modèle de Von 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.

Cliquer pour apprendre à déterminer le nombre de cœurs de votre pc

Comparer brièvement votre processeur (pc lycée ou personnel) avec celui de mon pc de bureau.

Programmation en assembleur

Il est difficile pour un humain d’écrire directement en langage machine (binaire). On utilise un langage plus lisible : l’assembleur.

Dans ce qui suit nous allons programmer en assembleur grâce à un simulateur.

un exemple de code en assembleur simplifié y86 :  irmovl 9,%eax

Résultat de l’assemblage en langage machine :1100001111000000001001000000000000000000000000

Cette écriture présente bien des inconvénients pour un humain et justifie l’utilisation de l’assembleur qui remplace les séquences de bits par des symboles plus faciles à retenir.

Chaque processeur a son jeu d’instructions et ne peut exécuter que le langage machine.L’assembleur chargé d’obtenir ce langage machine est donc propre à chaque  processeur (ou famille de processeur).

Dans les activités qui suivent nous allons utiliser le simulateur y86

Architecture x86

https://fr.wikipedia.org/wiki/X86

Architecture y86

http://aurelien.esnard.emi.u-bordeaux.fr/teaching/doku.php?id=archi:y86

Simulateur y86

https://dept-info.labri.fr/ENSEIGNEMENT/archi/js-y86/

Ouvrir le simulateur y86 https://dept-info.labri.fr/ENSEIGNEMENT/archi/js-y86/ Remplacer le code existant par le code ci-dessous
.pos 0
    irmovl 9,%eax
    halt
Cliquer sur assemble puis faire exécuter le code obtenu (pas à pas avec Step ) avec Start. Vérifiez que le programme stocke la valeur « immédiate » 9 dans le registre  %eax.     Le registre est une mémoire interne très rapide du processeur . La dernière instruction qui marque la fin du programme se trouve à l’adresse 0x0006 Le processeur exécute les instructions de façon séquentielle et un compteur ordinal PC lui donne l’adresse de l’instruction suivante : ici 0x0007
https://dept-info.labri.fr/ENSEIGNEMENT/archi/js-y86/ Enregistrons la valeur « immédiate » 9 dans le registre %eax Enregistrons la valeur « immédiate » 6 dans le registre %ebx Effectuons l’addition et enregistrons le résultat dans le registre %ebx Fin du programme L’implémentation de cette séquence d’instructions en assembleur « y86 » donne :
.pos 0
    irmovl 9,%eax
    irmovl 6,%ebx
    addl %eax,%ebx
    halt
  Saisir puis exécuter ce code. Modifions  le programme pour effectuer la soustraction 6-9 dans %ebx
.pos 0
    irmovl 9,%eax
    irmovl 6,%ebx
    subl %eax,%ebx
    halt
Notez et justifiez la valeur hexadécimale stockée dans %ebx Le résultat de la soustraction donne : 0xf f f f f f f d ou f f f f f f f d(16) 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
Catégories : Non classé

0 commentaire

Laisser un commentaire

Emplacement de l’avatar

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