Outils pour utilisateurs

Outils du site


nsi:premiere:architecture:architecture_sequentielle

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Architecture Séquentielle

L'exécution d'un algorithme dans une machine repose sur les opérations suivantes :

  • Mémorisation
  • Aiguillage des données d'un endroit à un autre
  • Calcul - Nous avons déjà vu comment des circuits logiques permettent de faire une addition.
  • Séquencement

Mémorisation

Exemple de problème : Identifier si un nombre de 4 octets est premier.

Ce que l'on pourrait faire :

  • Les 4 octets en entrée sont comme 32 entrées booléennes. On pourrait écrire le tableau de vérité en mettant la sortie à 1 pour chaque nombre premier.

On aurait alors un circuit logique extrêmement complexe, au fonctionnement presque instantané, sans programme. Mais ce circuit ne sait faire que cela ! Fabriquer un tel circuit serait utile si on avait besoin de faire souvent ce calcul de façon extrêmement rapide.

Dans ce cas, la structure du circuit agit comme une mémoire qui aurait figé toutes les possibilités de nombres premiers de moins de 32 bits.

  • Utiliser une structure plus simple qui fait plusieurs opérations l'une après l'autre. C'est le principe d'un algorithme : enchaîner une suite d'instructions simples pour réaliser une tâche éventuellement complexe.
def estPremier(nombre):
    d = 2
    while d**2 <= nombre and nombre%d != 0:
        d += 1
    return d**2 > nombre

Ce programme est une succession de commande qui se déroule dans un ordre précis. Les calculs ne se font pas tous en même temps. Le système doit mémoriser les résultats de calcul pour pouvoir les utiliser ensuite.

Pas de mémoire → pas de temps, pas d'avant ou d'après. Séquentiel → mémoire.

Exercice 1

Aiguiller

On ne peut pas créer une ligne directe pour chaque paire de circuit devant communiquer. À la place, les données circulent sur un bus.

Conséquence : Il faut définir à chaque instant quel circuit écrit (WRite) sur le bus et quel circuit lit (ReaD)

Exercice 2

Organisation d'un microprocesseur

Architecture de Von Neumann, 1945

C'est la structure générale adoptée par tous les microprocesseurs depuis les années 1950.

  • Un bloc de mémoire contenant des mots binaires.
    Par exemple 1 kio, c'est à dire 1024 mots de 1 octet.
    Ces mots peuvent représenter le programme lui-même ou les données du programme.
  • L'unité arithmétique et logique (UAL). Elle fait les calculs élémentaires.
    Elle dispose de quelques mots de mémoire appelées des registres. Par exemple 32 registres.
  • Entrées / sorties. Il faudra bien que le système communique avec l'extérieure : clavier, écran, capteurs…
  • Unité de séquencement : Cadence le fonctionnement de l'ensemble. Donne les ordres aux différents organes.
    Dispose de quelques registres spéciaux comme le registre d'instruction (RI), le pointeur de ligne (PL)

Déroulement d'un cycle instruction

  • Unité de séquencement (US) commence à l'adresse PL = 0.
  • US lit la donnée mémoire correspondant :
    US écrit l'adresse sur le bus d'adresse, puis envoie les signaux de contrôle.
  • Mémoire écrit la donnée correspondante sur le bus de donnée. US lit sur le bus donnée et stocke dans RI.
  • US décode le mot d'instruction puis émet tous les signaux nécessaire à son exécution.
    Exemple : Demande à UAL d'exécuter une addition entre les registres R1 et R2 et de stocker le résultat dans R3.
  • US passe à la ligne suivante : PL est incrémenté. On recommence.

Séquencer

L'unité de séquencement doit être capable de générer des successions de signaux de façon à faire agir les différents blocs dans un ordre précis.

Exemple : Demander à la mémoire de se positionner en ligne 50, demander à la mémoire de placer le contenu de cette ligne sur le bus de données, demander à un registre de copier ce qui est présent sur le bus de données…

Exercice 3

nsi/premiere/architecture/architecture_sequentielle.txt · Dernière modification : de goupillwiki