Leçons de niveau 14

Logique séquentielle/Mémoires

Une page de Wikiversité.
Sauter à la navigation Sauter à la recherche
Début de la boite de navigation du chapitre
Mémoires
Icône de la faculté
Chapitre no 6
Leçon : Logique séquentielle
Chap. préc. :Registres
Chap. suiv. :Les technologies
fin de la boite de navigation du chapitre
Icon falscher Titel.svg
En raison de limitations techniques, la typographie souhaitable du titre, « Logique séquentielle : Mémoires
Logique séquentielle/Mémoires
 », n'a pu être restituée correctement ci-dessus.

Les mémoires[modifier | modifier le wikicode]

Il existe différentes catégories de mémoires :


Organisation des mémoires : les bus[modifier | modifier le wikicode]

Une mémoire est caractérisée par plusieurs bus :

Le bus de commande comporte en général 3 signaux : WE (Write Enable) qui permet de choisir entre écriture et lecture, CE (Chip Enable) qui sélectionne le composant et OE (Output Enable) qui sélectionne les sorties 3 états. Bien sûr dans le cas d’un mémoire à lecture seulement (PROM) le signal WE est absent.

  • Écriture dans une mémoire : la mémoire dispose d'une entrée notée /WE (Write Enable) qui doit prendre la valeur 0. L'écriture devient possible sur un front de /WE si la mémoire est sélectionnée (/CE = 0).
Td6bfig1.png

La capacité des mémoires est mesurée en bits ou octets. Pour un bus de données de largeur n (n fils) et un bus d'adresse de largeur m la capacité en bits est définie par :

On divisera cette capacité par 8 pour l'avoir en octets. On utilisera aussi les multiples :

PROM à diodes[modifier | modifier le wikicode]

Nous allons décrire le schéma interne d'une petite mémoire à diodes. Son intérêt est qu'elle est suffisamment simple pour qu'on puisse la comprendre à l'aide des connaissances que l’on a acquises jusqu'à présent. On vous déconseille cependant de réaliser cela avec des composants discrets. Prenez plutôt cela comme un schéma de principe, sachant que les diodes seront en fait des transistors qui seront plus ou moins sophistiqués suivant la technologie et surtout si l’on désire que tout ceci soit reprogrammable ou pas.

Voyons un peu de quoi est constitué ce composant :

Td6bfig2.png

Nous voyons apparaître un décodeur dont le but est de sortir un zéro sur une des sorties Yi. Chacune des diodes peut être assimilée à un contact électrique (c'est naturellement exact seulement quand cette diode est polarisée pour être passante). Lorsqu'aucune diode n'apparaît au croisement d'une ligne horizontale et verticale, on dira qu'elle a été grillée, et d’un point de vue électrique, elle matérialise l'absence de contact. Remarquez en sortie des commandes trois états (technologie expliquée dans le chapitre suivant).

Exercice 1[modifier | modifier le wikicode]

À partir du schéma ci-dessus, on vous demande de donner le contenu de cette mémoire. Les diodes de connexion non représentées sont naturellement grillées

Ainsi vous pouvez nous aider!!!!

Exercice 1'

.Le boitier 2114 est une mémoire vive N MOS de 1Kx4 ayant des broches d’entrée/sortie commune et deux entrées de validation de puce vraie au niveau bas. Dessinez son symbole logique

Exercice 2'

  Montrez comment on peut construire un modulo de mémoire 1024x8 à partir de CI de mémoire vive dont la capacité est 1Kx1 qui a des entrées et sorties communes et une entrée de sélection de puce vraie au niveau bas.

Zones utiles mémoires[modifier | modifier le wikicode]

Une mémoire peut être modélisée comme un ensemble d'octets indexé par une adresse. Mais il suffit de forcer une des broches d'adresses à 0 ou à 1 pour que seules certaines zones soient accessibles et pas d'autres.

Avant de faire une exercice sur une EPROM, nous allons en rappeler les caractéristiques à partir de sa dénomination.

Par exemple, une 27C256_20 signifie :

  • 27=EPROM,
  • C=CMOS
  • 256=capacité en Kbits,
  • 20= temps d'accès en unité 10 ns (ici 200 ns)

Exercice 2[modifier | modifier le wikicode]

On considère une mémoire EPROM type 27C256 de 32K octets.

a) Déterminer la largeur du bus de donnée et le nombre de bits du bus d'adresse.
b) Calculer le nombre de zones et les adresses de début et fin des zones dans les cas suivants :
  • A14 = 1
  • A13 = 0
  • A12 = 0 et A10 = 1

Associations de mémoires[modifier | modifier le wikicode]

En général lorsqu'on ne dispose que de circuits ayant une certaine capacité mémoire et que l’on désire réaliser un espace mémoire de plus grande capacité nous devons faire face à deux problèmes différents :

  • étendre la largeur du bus de données ;
  • étendre la largeur du bus d'adresse.

Le premier problème est très simple à résoudre comme le montre la figure ci-dessous (partie gauche) et le deuxième un peu plus complexe (partie droite). En fait, malheureusement, on rencontre bien plus souvent le deuxième problème. Intéressant de remarquer que dans ce cas on double la capacité en ajoutant un seul fil d'adresse. Si vous comprenez bien cela, il n'y aura pas de problème pour réaliser le circuit combinatoire de droite.

Td6bfig3.png

On montre dans cette figure, à gauche, comment doubler la taille du bus de données et à droite comment doubler la capacité d’un circuit mémoire en en prenant deux mais en gardant la même dimension pour le bus de données.

Exercice 3[modifier | modifier le wikicode]

On souhaite constituer un bloc mémoire de 5K octets à partir de blocs élémentaires plus petits de 2K et 1K. Réaliser un schéma de la fonction Choix dans le cas où le bloc commence à l'adresse 0000H.

Décodage d'adresse[modifier | modifier le wikicode]

Le décodage d'adresse consiste à sélectionner correctement un ensemble de circuits mémoire pour constituer une mémoire continue ou discontinue. Le principe est identique à l'extension des mémoires, réaliser un circuit de sélection.

Exercice 4[modifier | modifier le wikicode]

Nous voulons réaliser une interface mémoire avec un bus de données 8 bits (D7-D0) et un bus d'adresse 16 bits (A15-A0) avec un microprocesseur. Ce microprocesseur gère un signal /WR pour écrire et /RD pour lire. Donner les équations de sélection pour :

  • une ROM 8K pour une adresse commençant à 2000H ;
  • une ROM 4K pour une adresse commençant à 8000H ;
  • une ROM 2K pour une adresse commençant juste après celle de 8k.

Donner les mêmes équations de sélection si on admet la possibilité de voir plusieurs fois le même boîtier dans l'espace mémoire.