Tp 1: simulation d’un ordinateur von neumann simplifié - inf

Informatique Industrielle : TP 1: Simulation d’un ordinateur Von Neumann simplifié

Télécharger PDF

Université de Bouira – Département d’Informatique

TP 1 : Simulation d’un ordinateur Von Neumann simplifié

Objectifs du TP

• Observer le fonctionnement du processeur au niveau de l’exécution des instructions d’un programme.

• Maîtriser les instructions de transfert de données.

• Examiner le déroulement du micro-code du séquenceur qui traduit les instructions en différents ordres.

Le simulateur JOHNNY

JOHNNY est un simulateur de processeur développé spécifiquement à des fins pédagogiques. Pour cette raison, la modélisation du fonctionnement du processeur a été simplifiée par rapport à celle des ordinateurs réels. Ce simulateur est composé des éléments suivants :

Le processeur

Il comprend trois parties : l’unité logique et arithmétique (ALU), la mémoire (RAM) et le séquenceur (CU). Ces blocs sont interconnectés par des bus.

La suite de cette section détaille chaque unité.

La mémoire (RAM)

La mémoire à accès direct (RAM) comprend 1000 emplacements, chacun capable de stocker un nombre entre 0 et 19 999. Une adresse à trois chiffres décimaux suffit pour définir un emplacement unique.

Pour faciliter la lecture des instructions, le nombre de milliers est séparé des trois derniers chiffres (colonnes Hi et Lo), car il représente le code opération.

Les boutons ram→db et db→ram permettent respectivement de copier le contenu d’un emplacement mémoire vers le bus de données et inversement.

Le contenu de la mémoire est modifiable par un simple clic sur un emplacement, ouvrant une fenêtre d’édition.

Dans la fenêtre principale, deux portions de la mémoire (qui peuvent se chevaucher) sont affichées simultanément, permettant de visualiser les instructions et les données concernées.

L’unité arithmétique et logique (ALU)

L’ALU est principalement composée d’un accumulateur. Cet accumulateur peut être remis à zéro (acc := 0), incrémenté (acc++) ou décrémenté (acc--).

Les commandes db→acc et acc→db permettent respectivement de copier la valeur du bus de données dans l’accumulateur et de transférer la valeur de l’accumulateur vers le bus de données.

Le séquenceur (CU)

Le séquenceur est la partie la plus complexe du processeur. Il comprend le registre d’instruction (IR), le compteur ordinal (PC) et le microcode.

• Avec db→ins, la valeur présente sur le bus de données est copiée dans le registre d’instruction.

• La partie de l’instruction représentant l’adresse peut être copiée directement sur le bus d’adresses (ins→ab) ou dans le compteur ordinal (ins→pc).

• La valeur du compteur ordinal peut être copiée sur le bus d’adresses avec pc→ab.

• La micro-instruction pc++ incrémente le compteur ordinal, tandis que =0 : pc++ ne l’incrémente que si l’accumulateur est nul.

ins→mc copie le code opération du registre d’instruction dans les emplacements des centaines et des dizaines du compteur du micro-code et remet à zéro la valeur des unités de ce compteur.

• La micro-instruction mc := 0 remet à zéro la valeur du compteur du micro-code.

Jeu d’instructions

Le micro-code fourni contient les micro-programmes pour les 10 instructions suivantes :

  • TAKE : La valeur de l’emplacement pointé par l’adresse absolue est copiée dans l’accumulateur.
  • SAVE : La valeur de l’accumulateur est copiée à l’emplacement pointé par l’adresse absolue.
  • ADD : La valeur de l’emplacement pointé par l’adresse absolue est ajoutée à celle de l’accumulateur.
  • SUB : La valeur de l’emplacement pointé par l’adresse absolue est soustraite de celle de l’accumulateur.
  • INC : La valeur de l’emplacement pointé par l’adresse absolue est incrémentée.
  • DEC : La valeur de l’emplacement pointé par l’adresse absolue est décrémentée.
  • NULL : La valeur de l’emplacement pointé par l’adresse absolue est mise à zéro.
  • TST : Si la valeur de l’emplacement pointé par l’adresse absolue est nulle, l’instruction suivante est ignorée.
  • JMP : Le programme se poursuit à l’adresse fournie.
  • HLT : Le simulateur affiche un message signalant la fin de l’exécution du programme.

Exercice 1 : Addition

Soit le programme suivant qui additionne deux nombres situés aux adresses <10> et <11>, et mémorise le résultat à l’adresse <12> :

  • 001 : TAKE 010 – Charger la valeur de l’adresse 010 dans l’accumulateur.
  • 002 : ADD 011 – Ajouter la valeur de l’adresse 011 à l’accumulateur.
  • 003 : SAVE 012 – Stocker le résultat de l’addition à l’adresse 012.
  • 004 : HLT 000 – Arrêter l’exécution du programme.

Exercice 2 : Multiplication

Écrire et exécuter un programme dans le simulateur JOHNNY qui multiplie deux nombres situés aux adresses <10> et <11>, et mémorise le résultat à l’adresse <12>.

Foire aux questions (FAQ)

Qu’est-ce que l’accumulateur dans une ALU ?

L’accumulateur est un registre de l’unité arithmétique et logique (ALU) qui stocke temporairement les résultats des opérations effectuées par le processeur.

Comment fonctionne le simulateur JOHNNY ?

JOHNNY simplifie le fonctionnement d’un processeur Von Neumann en permettant de visualiser et manipuler les instructions, les données et le microcode via une interface graphique.

Quelle est la différence entre TAKE et SAVE ?

TAKE charge une valeur depuis la mémoire vers l’accumulateur, tandis que SAVE sauvegarde la valeur de l’accumulateur dans un emplacement mémoire.

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne