Aller au contenu

C4 Architecture matérielle

Activités

▪ Activité 1 : Composants d'un ordinateur

Dans cette activité on démonte un ordinateur pour en extraire les composants et les reconnaître.

▪ Activité 2 : Architecture de Von Neumann

En utilisant la video ci-dessus et en faisant éventuellement vos propres recherches sur le Web, répondre brièvement aux questions suivantes :

  1. En quelle année a été conçu le modèle de Von Neumann ?
  2. Quels sont les différentes parties d'un ordinateur dans le modèle de Von Neumman ?
  3. A quels composants d'un ordinateur correspondent ces différentes parties ?

▪ Activité 3 : Circuit logique

circuit Les entrées du circuit sont les boutons jaunes à gauche et les sorties sont les led (la rouge et la bleue) situées à droite.

  1. Observation d'un circuit logique

    1. Quelles sont les valeurs possibles d'une entrée ou d'une sortie ?
    2. Recopier et compléter le tableau suivant qui donne les valeurs des sorties en fonction des entrées :

      \(e_1\) \(e_2\) \(s_1\) \(s_2\)
      0 0 0 ...
      0 1 ... ...
      ... ... ... ...
      ... ... ... ...

      Ce tableau s'appelle la table de vérité du circuit.

  2. Déduire des observations précédentes le rôle de ce circuit logique.

▪ Activité 4 : Simulation d'un circuit logique

On utilisera le simulateur en ligne circuitverse

  1. Aller sur le site de circuitverse, puis cliquer sur le lien Simulator en haut à droite. L'interface est représentée ci-dessous : circuitverse1

    • le menu de gauche permettra de placer divers éléments d'un circuit,
    • le schéma du circuit apparaît dans la partie centrale,
    • à droite se trouve une boîte permettant de modifier les options des éléments du circuit.
  2. Placer deux entrées (input), une porte logique and et une sortie (output) comme ci-dessous. Cliquer sur les entrées afin de les faire varier et dresser la table de vérité de ce circuit. circuitverse2

  3. De même construire un circuit pour tester la porter or puis la porte not (une seule entrée) et donner leur table de vérité.

  4. Le but de cette partie est de construire un additionneur 4 bits.

    1. Placer les 4 bits du premier nombre ainsi que les 4 bits du second nombre (voir ci-dessous). La première retenue de l'addition valant forcément 0, utiliser une entrée constante et valant 0 pour la matérialiser. circuitverse3

    2. Dans le menu "Misc", vous trouverez le circuit d'un additionneur 1 bit tel que celui rencontré dans l'activité précédente. Le placer afin d'additionner les deux bits les plus à droite et placer le résultat de la somme en dessous comme dans une addition traditionnelle à la main. Relier correctement votre circuit et le tester. circuitverse4

    3. Poursuivre la réalisation du circuit en ajoutant les additionneurs pour les autres bits.

      Aide

      Attention à bien relier la sortie de l'addition des deux bits précédents Cout à la retenue de l'addition suivante Cin

    4. Vérifier sur les exemples suivants que votre circuit donne les bons résultats :

    5. 0100 + 0101 = 1001 (c'est à dire 4 + 5 = 9)
    6. 0111 + 0011 = 1010 (c'est à dire 7 + 3 = 10)

    Pour aller plus loin

    On peut inclure l'affichage digital des nombres en base 10 comme sur une calculatrice, chacun des nombres à additionner est sur 4 bits, pour les afficher utiliser un HexDisplay (menu Output). Attention cependant pour regrouper les 4 bits d'un nombre utiliser un Splitter dans le menu Misc, il permet de regrouper une entrée de 4 bits en une seule entrée comme demandé par l'afficher hexadécimal. Pour créer le Splitter, entrer 4 comme bitWidth, puis "1 1 1 1" comme bitWidth Split.

▪ Activité 5 : Un peu de langage machine

Dans cette partie, on utilise un outil en ligne permettant de visualiser le fonctionnement d'un ordinateur. Cet outil a été crée par Peter Higginson et vous le trouverez sur cette page.

  1. Reconnaître les différentes parties de l'architecture de Von Neumman dans le schéma.
  2. Dans le menu Select choisir le programme add qui effectue l'addition de deux nombres. Ce programme s'affiche alors en langage machine dans la partie supérieur droite du navigateur :

        INP R0,2
        INP R1,2
        ADD R2,R1,R0
        OUT R2,4
        HLT
    
    Le langage assembleur n'est qu'une traduction en terme mnémotechnique d'instructions simples compréhensible par le processeur comme par exemple ici INP R0,2 qui signifie "range dans le registre 0 le nombre saisi au clavier".

  3. Exécuter (en vitesse lente) le programme de façon à voir le fonctionnement du simulateur

  4. Modifier ce programme de façon à additionner 3 nombres entrés au clavier

Cours

Vous pouvez télécharger une copie au format pdf du diaporama de synthèse de cours présenté en classe :

Diaporama de cours

Attention

Ce diaporama ne vous donne que quelques points de repères lors de vos révisions. Il devrait être complété par la relecture attentive de vos propres notes de cours et par une révision approfondie des exercices.

QCM

1. Parmi les éléments suivants d'un ordinateur, lequel n'est pas un périphérique d'entrée ?

  • a) Souris
  • b) Ecran
  • c) Disque dur
  • d) Clé usb
  • a) Souris
  • b) Ecran
  • c) Disque dur
  • d) Clé usb

2. Dans le modèle d'architecture de Von Neumann, quel est le rôle de l'unité de contrôle ?

  • a) Gérer le séquençage (l'ordre) des opérations
  • b) Effectuer les opérations
  • c) Lire les données
  • d) Stocker les données
  • a) Gérer le séquençage (l'ordre) des opérations
  • b) Effectuer les opérations
  • c) Lire les données
  • d) Stocker les données

3. Dans le modèle d'architecture de Von Neumann, que signifie UAL ?

  • a) Unité Active de Lecture
  • b) Unité Additive et Logique
  • c) Unité Arithmétique et Logique
  • d) Unité Active et logique
  • a) Unité Active de Lecture
  • b) Unité Additive et Logique
  • c) Unité Arithmétique et Logique
  • d) Unité Active et logique

4. Quel est le rôle de l'unité arithmétique et logique dans un ordinateur ?

  • a) Afficher les informations
  • b) Définir l'ordre des opérations
  • c) Effectuer les opérations
  • d) Stocker les informations
  • a) Afficher les informations
  • b) Définir l'ordre des opérations
  • c) Effectuer les opérations
  • d) Stocker les informations

5. Le composant élémentaire d'un ordinateur, circuit électronique ne pouvant être que dans deux états (0 ou 1) s'appelle :

  • a) Un transistor
  • b) Une radio
  • c) Un processeur
  • d) Une porte logique
  • a) Un transistor
  • b) Une radio
  • c) Un processeur
  • d) Une porte logique

6. Quel est l'opérateur booléen qui vaut 1 seulement lorsque les deux opérandes valent 1 ?

  • a) Or
  • b) And
  • c) Nor
  • d) Nand
  • a) Or
  • b) And
  • c) Nor
  • d) Nand

7. Parmi les propositions suivantes, quelle expression est égale à not(a and b) ?

  • a) (not a) and (not b)
  • b) (not a) or (not b)
  • c) (not a) and b
  • d) a and (not b)
  • a) (not a) and (not b)
  • b) (not a) or (not b)
  • c) (not a) and b
  • d) a and (not b)

8. Quelles sont les valeurs manquantes dans la table de vérité suivante :

a b not a b or (not a)
0 0 1 1
0 1 1 1
1 0 ? ?
1 1 0 1
  • a) 0 et 0
  • b) 0 et 1
  • c) 1 et 0
  • d) 1 et 1
  • a) 0 et 0
  • b) 0 et 1
  • c) 1 et 0
  • d) 1 et 1

9. Si a vaut True et b vaut False, que vaut l'expression not(a and b) ?

  • a) False
  • b) True
  • c) Cette expression renvoie une erreur
  • d) None
  • a) False
  • b) True
  • c) Cette expression renvoie une erreur
  • d) None

10. Si l'expression not(a or b) vaut True, alors les valeurs possibles de aet b sont :

  • a) True et True
  • b) True et False
  • c) False et True
  • d) False et False
  • a) True et True
  • b) True et False
  • c) False et True
  • d) False et False

11. Sur le schéma de circuit suivant, quelles sont les valeurs des sorties A et B ?

illustration

  • a) A=0 et B=0
  • b) A=0 et B=1
  • c) A=1 et B=0
  • d) A=1 et B=1
  • a) A=0 et B=0
  • b) A=0 et B=1
  • c) A=1 et B=0
  • d) A=1 et B=1

Exercices

▪ Exercice 1 : Parties d'un ordinateur

composants (Illustration CC BY-SA 3.0 http://creativecommons.org/licenses/by-sa/3.0/, via Wikimedia Commons)

  1. Nommer les différentes parties d'un ordinateur visualisées ci-dessus.
  2. Citer un composant qui est un périphérique d'entrée.
  3. Citer un composant qui est un périphérique de sortie.

▪ Exercice 2 : Modèle de Von Neumann

  1. Citer les différentes parties d'un ordinateur dans le modèle de Von Neumann.
  2. Que signifie ual, quel est son rôle ?
  3. Dans les ordinateurs actuels, dans quel composant se trouve l'ual ?

▪ Exercice 3 : Toujours vrai ou toujours faux !

  1. Dresser la table de vérité de l'expression a or (not a).
  2. Même question pour a and (not a).

▪ Exercice 4 : Tables de vérités !

  1. Faire la table de vérité de l'expression not(a or b).
  2. Même question pour l'expression (not a) and (not b).
  3. Que peut-on en déduire ?

▪ Exercice 5 : Ordre des opérations

  1. Faire la table de vérité de l'expression (a or b) and c.

    Aide

    On peut dans un premier temps faire la table de vérité à la main puis vérifier les résultats en simulant le circuit sur circuitverse.

  2. Même question pour l'expression a or (b and c).

  3. Les parenthèses sont-elles utiles dans l'écriture des expressions précédentes ? Justifier.

▪ Exercice 6 : Additionneur un bit

  1. En vous aidant éventuellement du cours ou du site circuitverse identifier les portes logiques du circuit suivant : add1
  2. Faire la table de vérité de ce circuit.
  3. En construisant ce circuit sur circuitverse, vérifier vos réponses à la question précédente.
  4. Quel est le rôle de ce circuit ?

▪ Exercice 7 : Opérateur Nand

On note nand(a,b) = not(a and b) (nand est la contraction de not et and). En dressant leurs tables de vérités, vérifier que les expressions suivantes sont égales :

  1. nand(a,a) et not a.
  2. nand(nand(a,b),nand(a,b)) et a and b
  3. nand(nand(a,a),nand(b,b)) et a or b
  4. Que peut-on en déduire ?

▪ Exercice 8 : Langage machine

Cet exercice utilise le simulateur de microprocesseur en ligne sur cette page. Ecrire un programme permettant de calculer 1518 + 2543 - 1317 en utilisant les instructions suivantes :

  • MOV Rn,#val : stocker la valeur val dans le registre Rn. Par exemple MOV R3,#42 stocke la valeur 42 dans le registre 3.
  • ADD Rm,Rn,Rp : additionner les valeurs présentes dans les registres Rn et Rp et range le résultat dans le registre Rm.
  • SUB Rm,Rn,Rp : soustrait les valeurs présentes dans les registres Rn et Rp et range le résultat dans le registre Rm.

Humour d'informaticien

Pour comprendre l'illustration ci-dessous, il faut savoir que dans de nombreux langages de programmation, l'opérateur not se note ! et que l'opérateur and se note &&. Par exemple not(a an b) se note, !(a&&b).

humour booléen