Le rôle d’un processeur est soit de faire des calculs, soit de faire des transferts de données avec la mémoire ou les périphériques.
Les calculs sont réalisés au sein de l’Unité Arithmétique et Logique ( UAL ou ALU ) , afin de traiter des opérations :
L’UAL regroupe donc des composants réalisant ces opérations en permanence.
La sélection de l’opération souhaitée se fait avec un multiplexeur, pour aiguiller le résultat du bon opérateur.
Les bits d’état NZVC indique comment s’est passé l’opération :
l’analyse de ces bits d’état permet de réaliser des tests pour comparer des valeurs dans le cas des instructions de branchement.
Problématique
Dans un système à processeur, l’échange de données avec la mémoire se fait via des bus ( fils en parallèle ).
Le processeur comme la mémoire doivent pouvoir écrire ou lire sur ce bus.
Un même fil serait donc susceptible d’être forcé par 2 états contradictoires, d’où un conflit.
Lorsqu’un élément connecté à un fil force la valeur logique de ce fil, les autres éléments doivent être transparents ( déconnectés ), on appelle cela l’état haute impédance.
Une porte 3 états permet de réaliser la connexion à un bus :
Nous considérons une mémoire de type RAM constituée de bascules RS afin de mémoriser une donnée.
La mémoire se compose de 4 mots de 4 bits.
Le bus d’adresse permet de sélectionner le mot que l’on souhaite lire ou modifier.
Dans l’exemple ci-dessous, le bus d’adresse a la valeur 1, le décodeur 2 vers 4 permet d’activer la ligne \( y_{1} \) .
Afin de disposer d’une mémoire plus étendue, on peut associer plusieurs composants mémoire.
Le signal CS ( Chip Select ) permet d’activer l’utilisation d’une mémoire.
Si je considère 4 fils d’adresse \( A_3 A_2 A_1 A_0 \), je peux utiliser \( A_3 A_2 \) (poids forts) afin de sélectionner et activer une mémoire parmi 4.
Les fils \( A_1 A_0 \) (poids faibles) me servent alors à choisir une case dans la mémoire sélectionnée.
Une mémoire est volatile si elle perd l’information mémorisée lorsque l’alimentation électrique est coupée.
Mémoires à semiconducteurs (accès direct) - Temps d’accès < 100ns
Mémoire Morte : non volatile - ex : EEPROM/Flash
Mémoire RAM / Mémoire Vive : volatile
Mémoires de Masse - Non volatile - ex : Disque Dur / CD / DVD
Lors d’un accès mémoire, je peux lire ou modifier un mot mémoire.
Si ma mémoire contient 1024 cases mémoires ( sélectionnables via le bus d’adresse ), et que chaque case ou mot est de taille 8 bits :
Capacité = 1024 x 8 = 8192 bits = 1024 octets = 1ko
( \( 1ko = 2^{10} octets \) )