Architecture des ordinateurs

Préambule

Contexte

Ceci est un support de cours disponible aux formats html et epub. Il concerne le cours d'architecture des ordinateurs proposé aux étudiants de première année option Mathématique/Informatique. Ce cours repose essentiellement sur le cours de Patrick Marcel proposé également comme une référence dans le site.

Objectif

Qu'est ce qu'un ordinateur ? Selon un dictionnaire Hachette :

ordinateur : n. m. INFORM Machine capable d'effectuer automatiquement des opérations arithmétiques et logiques (à des fins scientifiques, administratives, comptables, etc.) à partir de programmes définissant la séquence de ces opérations.

Ce cours propose de répondre à la question ``qu'est ce qu'un ordinateur ?'' en répondant à la question ``comment fonctionne un ordinateur ?''.


Moyens

Nous disposons de deux semestres de cours. Dans chacun des semestre nous avons une répartition d'un cours par semaine et d'un TD pour chaque groupe (par semaine également). Nous y allons aborder les points suivants :

La méthode de progression est la suivante : le cours introduit les principes généraux et quelques exemples fondamentaux. Les TDs font l'objet de séances particulières durant lesquelles les notions de cours sont rappelées, explicités, au besoin étendues. Ils consistent en une série d'exercices d'application et d'approfondissement. Les TDs, ainsi que leur correction, sont évalués.

Je souhaite également mentionner comme moyen toute contribution que le lecteur voudra m'apporter.


Introduction

Le but de ce premier cours est d'avoir une première idée de ce qui se passe à l'intérieur de la machine lorsqu'un utilisateur interragit avec elle. C'est un cours d'introduction qui comprend :

A titre d'exemple, on s'interesse à la séquence d'évènements suivante : lecture d'un nombre au clavier, opération sur ce nombre, affichage du résultat à l'écran.


La machine perçue par l'utilisateur

Interactions avec la machine au travers des périphériques (dispositifs externes à l'unité centrale) :

Interactions = entrées de commandes, lancements d'application, visualisation, etc...


La machine invisible à l'utilisateur

La boite noire qu'est l'unité centrale contient en fait 3 unités fonctionnelles :


! Toute action de l'utilisateur se traduit par l'exécution d'une séquence d'opérations (faisant intervenir ces unités).

Historique


! La motivation principale est la volonté d'automatiser une suite de tâches élémentaires.


D'abord existent des machines / automates spécialisés : boite à musique, métiers à tisser... puis on associe automate et machine à calcul. Charles Babbage (19ème sciècle) fut le premier à décrire les principes d'un calculateur d'application générale (machine pouvant répéter des séquences d'opérations et choisir une série d'opérations particulière en fonction de l'état du calcul). Le modèle Von Neumann (1946) pose les bases des machines universelles (cf. section 2.3).

On observe généralement 5 générations (étapes décisives) dans l'évolution (principalement technologique) de ces machines :


1945-1958


! la plupart des concepts architecturaux (notamment le bug !) des ordinateurs modernes datent de cette époque.

Notons que le premier ordinateur numérique généraliste, l'ENIAC, commandé par l'armée américaine en 1943 et réalisé en 1946, a eu pour première tâche des calculs complexes pour l'étude de faisabilité de la bombe H.


1958-1964

1964-1971 ou 75 ou 78


! La loi de Moore (co-fondateur d'INTEL) veut que le nombre de transistors intégrables sur une seule puce double chaque année.


1971/5/8-1978/85


! 1971 : invention par INTEL du microprocesseur = toutes les composantes de la CPU sont réunies sur une même puce.

Après...

Le but originel de cette cinqième génération était les machines langages dédiées à l'IA...


Machine Von Neumann

John Von Neumann est à l'origine (1946) d'un modèle de machine universelle (non spécialisée) qui caractérise les machines possèdant les éléments suivants :

Ces dispositifs permettent la mise en oeuvre des fonctions de base d'un ordinateur : le stockage de données, le traitement des données, le mouvement des données et le contrôle. Le fonctionnement schématique en est le suivant : l'UC

1. extrait une instruction de la mémoire,
2. analyse l'instruction,
3. recherche dans la mémoire les données concernées par l'instruction,
4. déclenche l'opération adéquate sur l'ALU ou l'E/S,
5. range au besoin le résultat dans la mémoire.

! La plupart des machines actuelles s'appuient sur le modèle Von Neumann.


Aperçu

Cet aperçu est une introduction au comportement des différents éléments composant l'unité centrale. Il est très schématique et sera développé dans les cours suivants. Il introduit des notions de base comme le cycle d'horloge, les chronogrammes.

Dispositifs de base

Horloge

Utilisée pour synchroniser l'ensemble des dispositifs logiques d'un ordinateur.

Cadencement des instructions à fréquence constante : l'horloge divise le temps en battements de même durée appelés cycles.

Par exemple, une fréquence d'horloge d'un microprocesseur à 500MHz donne des cycles élémentaires de 2 nanosecondes.


Registres

Eléments de mémoire rapide internes à la CPU.

! Plus petit est l'espace de recherche, plus rapide est l'accès à l'information.

Mémorisation commandée par un signal de chargement : 2 types de registres suivant que le chargement se fait sur niveau ou sur front.

Bus

Ensemble de fils électriques sur lesquels transitent les informations entre les unités.

Largeur du bus = nombre de fils constituant le chemin = nombre d'impulsions électriques pouvant être envoyés en parallèle (en même temps).


Unités fonctionnelles

Mémoire

Vecteur dont chaque composante est accessible par une adresse.

Les opérations permises sur la mémoires sont les opérations de lecture et d'écriture.

L'UC inscrit l'adresse d'une cellule dans un registre d'adresse (RA) et demande une opération de lecture ou d'écriture. Les échanges se font par l'intermédiaire d'un registre de mot (RM).

Le mot = l'unité d'information accessible en une seule opération de lecture (sa taille varie en fonction de la machine).


UAL

Vue comme une fonction à 3 paramètres : 1 opération, 2 arguments. Elle renvoie un résultat.

Un registre lui est associé : l' accumulateur (ACC) pour par exemple mémoriser un résultat intermédiaire.


E/S

Sert d'interface avec les périphériques.

Les opérations associées (lecture et/ou écriture) sont fonction du périphérique.


? Quels sont les périphériques où seule est permise la lecture ? l'écriture ? les deux ?

De manière simiulaire à la mémoire, on dispose d'un registre mémorisant l'adresse du périphérique (le registre de sélection du périphérique (RSP)) et d'un registre d'échange de données (RE).

Unité de commandes

Son fonctionnement est celui décrit plus haut.

Compteur ordinal (PC) = registre contenant l'adresse mémoire de l'instruction à exécuter.

Registre d'instruction (RI) mémorise l'instruction (une instruction est composée de plusieurs parties, ou champs)

La machine complète

Une mémoire, une UAL, une unité de commande, une unité d'E/S, un bus, et hop !