Chaque point mémoire est donc caractérisé par une adresse, correspondant à un numéro de ligne (en anglais row) et un numéro de colonne (en anglais
column). Or cet accès n'est pas instantané et s'effectue pendant un délai appelé temps de latence. Par conséquent l'accès à une donnée en mémoire dure
un temps égal au temps de cycle auquel il faut ajouter le temps de latence. Ainsi, pour une mémoire de type DRAM, le temps d'accès est de 60
nanosecondes (35ns de délai de cycle et 25 ns de temps de latence). Sur un ordinateur, le temps de cycle correspond à l'inverse de la fréquence de
l'horloge, par exemple pour un ordinateur cadencé à 200 MHz, le temps de cycle est de 5 ns (1/(200*106)). Par conséquent un ordinateur ayant une
fréquence élevée et utilisant des mémoires dont le temps d'accès est beaucoup plus long que le temps de cycle du processeur doit effectuer des cycles
d'attente (en anglais wait state) pour accéder à la mémoire. Dans le cas d'un ordinateur cadencé à 200 MHz utilisant des mémoires de types DRAM
(dont le temps d'accès est de 60ns), il y a 11 cycles d'attente pour un cycle de transfert. Les performances de l'ordinateur sont d'autant diminuées qu'il y
a de cycles d'attentes, il est donc conseillé d'utiliser des mémoires plus rapides.
Le processeur
Sans trop entrer dans les détails, on peut dire que l'exécution des instructions par un processeur peut se découper en les grandes étapes suivantes :
chargement de l'instruction à exécuter dans le processeur (à un emplacement particulier appelé registre d'instruction)
décodage de l'instruction
localisation dans la mémoire des données utilisées par l'instruction
si nécessaire, chargement des données depuis la mémoire dans le processeur
exécution de l'instruction
recopie des résultats à leur destination
passage à l'instruction suivante : l'exécution des instructions est séquentielle et le processeur conserve «quelque part» le numéro (adresse) de la
prochaine instruction à exécuter : c'est le compteur ordinal.
Au travers de ce qui précède, on voit que le processeur dispose de manière interne d'une mémoire pour y stocker temporairement des informations : on
parle de registres.
Les registres servent à stocker des données accessibles directement par la processeur ecute;e ou en sortie de calcul). Les registres sont souvent
spécialisés dans un certain type de données/instructions bien que certains gardent, pour des raisons de souplesse, une fonction générale.
La taille des des registres est plus ou moins étendue. Un processeur qui utilise des registres 32 bits est dit «processeur 32 bits» alors que les processeurs
utilisant des registres 64 bits sont dits «processeurs 64 bits».
Le nombre de registres varie selon les processeurs, d'une dizaine à quelques centaines.
Ce type de mémoire se place au niveau supérieur de la hiérarchie mémoire : c'est le type de mémoire qui possède le meilleur temps d'accès mais,
compte tenu de la limitation de place dans un processeur leur coût est élevé et leur nombre limité (quelques dizaines).
Les opérations sont le plus généralement réalisées sur les données dans les registres. Ainsi, les données sont transférées de la mémoire dans des registres
(opérations de type load), traitées et les résultats transférés depuis les registres vers la mémoire (opération de type store).
On peut citer parmi les registres qu'on retrouve sur tous les processeurs :
registre instruction (RI) contenant l'instruction en cours de traitement
compteur ordinal (compteur de programme, CO ou PC pour Program Counter), contenant l'adresse de la prochaine instruction à traiter
(registre) accumulateur (ACC), stockant les données traitées par l'UAL
registre d'état (PSW, Processor Status Word), permettant de stocker des indicateurs sur l'état du système (retenue, dépassement, etc.)
communément appelés drapeaux (flags)
registre d'index utilisé pour une certaine forme d'adressage de la mémoire
registres généralistes pouvant contenir temporairement des donnés
pointeur de pile utilisé pour repérer le sommet de la pile mémoire
Le processeur est cadencé au rythme d'une horloge interne (cristal de quartz soumis à un courant électrique, envoyant des impulsions, appelées «top» ou
«cycle»). La fréquence d'horloge correspond au nombre d'impulsions par seconde et s'exprime en Hertz (Hz).
Les tout premiers ordinateurs fonctionnaient à quelques dizaines de Hertz, le premier PC tournait à 4,77 MHz, aujourd'hui on compte en GHz.
Par exemple, un ordinateur à 200 MHz possède une horloge envoyant 200 000 000 battements par seconde.
A chaque top d'horloge le processeur exécute une action élémentaire (atomique), correspondant à une instruction ou une partie d'instruction. L'indicateur
appelé CPI (Cycles Par Instruction) permet de représenter le nombre moyen de cycles d'horloge nécessaire à l'exécution d'une instruction. La puissance
du processeur peut ainsi être caractérisée par le nombre d'instructions qu'il est capable de traiter par seconde. L'unité utilisée est le MIPS (Millions
d'Instructions Par Seconde) correspondant à la fréquence du processeur que divise le CPI.
Principales unités fonctionnelles d'un processeur :
l'unité de commande qui lit les données arrivant, les décode puis les envoie à l'unité d'exécution. Elle est est notamment constituée d d'un
séquenceur (ou bloc logique de commande) chargé de synchroniser l'exécution des instructions au rythme de l' horloge. Il est ainsi chargé de
l'envoi des signaux de commandes, du compteur ordinal et du registre d'instruction
l'unité d'exécution (ou unité de traitement), qui accomplit les tâches que lui a données l'unité d'instruction. L'unité d'exécution est notamment
composée de l'UAL, l'unité de virgule flottante (notée FPU qui accomplit les calculs complexes non entiers que ne peut réaliser l'unité arithmétique
et logique), le registre d'état et le registre accumulateur
l'unité de gestion des bus (ou unité d'entrées-sorties), qui gère les flux d'informations entrant et sortant, en interface avec la mémoire vive du
système
Hiérarchie mémoire
En fait, les types de mémoires susceptibles de stocker des programmes ou des données sont multiples.