Dans les trois chapitres pr\u00e9c\u00e9dents nous avons \u00e9tudi\u00e9 la plupart des briques de base utilis\u00e9es pour la conception d'ordinateurs. Nous allons maintenant monter d'un niveau et aborder les principes de r\u00e9alisation des principaux blocs fonctionnels \u00e0 partir de ces briques. Nous commen\u00e7ons (c'est un choix arbitraire) par la m\u00e9moire vive. La premi\u00e8re partie de ce chapitre sera consacr\u00e9e \u00e0 son organisation mat\u00e9rielle. Dans la seconde nous \u00e9baucherons son organisation logique, dont l'\u00e9tude doit \u00eatre approfondie dans le cours sur les syst\u00e8mes d'exploitation.
Nous savons que dans un ordinateur toutes les informations : valeur num\u00e9rique, instruction, adresse, symbole (chiffre, lettre,\u2026) etc\u2026 sont manipul\u00e9es sous une forme binaire. Ces informations doivent en g\u00e9n\u00e9ral \u00eatre conserv\u00e9es pendant un certain temps pour permettre leur exploitation. Ce r\u00f4le est d\u00e9volu aux m\u00e9moires charg\u00e9es de conserver programmes, donn\u00e9es provenant de l'ext\u00e9rieur, r\u00e9sultats interm\u00e9diaires, donn\u00e9es \u00e0 transf\u00e9rer \u00e0 l'ext\u00e9rieur, etc. Nous avons d\u00e9j\u00e0 rencontr\u00e9 les registres de m\u00e9morisation, mais ceux-ci ne sont pas adapt\u00e9s aux grandes capacit\u00e9s de stockage.
Il faut pour cela des m\u00e9moires \u00e0 lecture et \u00e9criture ou m\u00e9moires vives, qui permettent d'enregistrer une information, de la conserver et de la restituer. Ces m\u00e9moires sont, d'autre part, \u00e0 acc\u00e8s al\u00e9atoire (RAM : Random Acces Memory) c'est-\u00e0-dire que le temps d'acc\u00e8s \u00e0 l'information est ind\u00e9pendant de sa place en m\u00e9moire. Cette appellation, d'origine historique, est toujours synonyme de m\u00e9moire vive. Bien que tr\u00e8s r\u00e9pandue cette appellation n'est plus suffisante car tous les circuits \u00e0 semi-conducteur sont aujourd'hui \u00e0 acc\u00e8s al\u00e9atoire. L'acc\u00e8s s\u00e9quentiel ne porte plus que sur les m\u00e9moires magn\u00e9tiques (disques ou bandes). Par contre, une m\u00e9moire vive est volatile : la conservation de son contenu n\u00e9cessite la permanence de son alimentation \u00e9lectrique.
L'information \u00e9l\u00e9mentaire, ou bit (binary digit), est m\u00e9moris\u00e9e dans une cellule ou point m\u00e9moire. Nous \u00e9tudierons plus loin les deux principales technologies utilis\u00e9es pour r\u00e9aliser une cellule. Ces cellules sont group\u00e9es en mots de n bits, c'est-\u00e0-dire que les n bits sont trait\u00e9s (\u00e9crits ou lus) simultan\u00e9ment. On ne peut pas modifier un seul bit, il faut transf\u00e9rer le mot dans un registre, modifier le bit puis r\u00e9\u00e9crire le mot en m\u00e9moire. Par ailleurs, les cellules sont arrang\u00e9es en bloc m\u00e9moire.
Ext\u00e9rieurement, et en ne tenant compte que des signaux logiques, un bloc m\u00e9moire peut \u00eatre repr\u00e9sent\u00e9 comme sur la figure 1. Pour pouvoir identifier individuellement chaque mot on utilise k lignes d'adresse. La taille d'un bloc m\u00e9moire est donc 2k, le premier mot se situant \u00e0 l'adresse 0 et le dernier \u00e0 l'adresse 2k - 1. Une ligne de commande (R/W) indique si la m\u00e9moire est acc\u00e9d\u00e9e en \u00e9criture (l'information doit \u00eatre m\u00e9moris\u00e9e) ou en lecture (l'information doit \u00eatre
restitu\u00e9e). Sur ce sch\u00e9ma on distingue deux canaux de n lignes en entr\u00e9e et en sortie, mais dans d'autres cas les acc\u00e8s en entr\u00e9e et en sortie peuvent \u00eatre confondus en un seul canal bidirectionnel. Nous verrons l'int\u00e9r\u00eat de la ligne de validation ou de s\u00e9lection du bloc (CS) un peu plus loin.
Pour simplifier la figure, chaque cellule y est mat\u00e9rialis\u00e9e avec uniquement une ligne de s\u00e9lection et une ligne de sortie. Si la ligne de s\u00e9lection est \u00e0 "0", la cellule est "isol\u00e9e" de la sortie. Si la ligne de s\u00e9lection est \u00e0 "1", l'information m\u00e9moris\u00e9e se retrouve sur la ligne de sortie.
La figure correspond au m\u00e9canisme de lecture, mais le principe est \u00e9galement valable en \u00e9criture. En fonction de l'adresse, le d\u00e9codeur active une des 2k lignes. Ainsi seules les cellules correspondant \u00e0 l'adresse demand\u00e9e sont s\u00e9lectionn\u00e9es et l'information m\u00e9moris\u00e9e est alors disponible en sortie. Cette architecture tr\u00e8s simple n'est pas la plus \u00e9conomique en terme de nombre de portes.
Consid\u00e9rons par exemple une m\u00e9moire contenant 512 mots de 4 bits soient 2048 bits. C'est-\u00e0-dire k = 9 et n = 4. Il faut 512 portes ET pour r\u00e9aliser le d\u00e9codeur. Une \u00e9conomie importante peut \u00eatre obtenue en organisant la m\u00e9moire en une matrice de 64 lignes et 32 colonnes (2048 = 64 x 32). Chacune de ces 64 lignes peut \u00eatre s\u00e9lectionn\u00e9e en utilisant 6 bits d'adresse. Comme nous ne voulons que des mots de 4 bits, il faut encore utiliser 4 multiplexeurs chacun s\u00e9lectionnant une ligne sur 8. Les 3 derniers bits d'adresse sont affect\u00e9s \u00e0 ces multiplexeurs. Cette architecture est d\u00e9nomm\u00e9e adressage X-Y ou bidimensionnel. Dans ce cas 64 portes ET sont n\u00e9cessaires pour le d\u00e9codeur et 9 portes (8 ET et 1 OU) pour chacun des multiplexeurs, soit au total 64 + (9 x 4) = 100 portes. Cela repr\u00e9sente cinq fois moins de portes.
L'organisation matricielle des blocs m\u00e9moires permet \u00e9galement d'\u00e9viter des pistes trop longues pour la distribution des diff\u00e9rents signaux aux cellules. Les constantes de temps et les pertes de charge sont ainsi r\u00e9duites.
Leave a Comment