RAM parallèle sans grand nombre de broches?

16

Dans les années 1970, Texas Instruments avait une gamme de produits désormais abandonnée qu'ils appelaient GRAM (et en lecture seule équivalente GROM), qui était essentiellement une puce de mémoire standard avec adresse et données multiplexées sur 8 broches. Vous commenceriez une opération en envoyant à la puce deux octets d'adresse, puis à chaque impulsion de la broche de lecture ou d'écriture, elle lirait ou écrirait un octet à l'aide du bus, puis incrémenterait le compteur d'adresses interne. Le résultat a été une puce de mémoire qui était presque aussi rapide (au moins pour les opérations d'accès séquentiel) qu'une puce de mémoire parallèle standard, mais qui n'a besoin que d'un boîtier à 16 broches, plutôt que des boîtiers à 28 broches d'autres mémoires similaires de la journée nécessaires .

Aujourd'hui, pour des applications similaires, vous utiliserez probablement le plus souvent une mémoire série accessible par SPI - mais le problème est que ces mémoires sont assez lentes (la plupart ont un débit maximal d'environ 20 Mbit / s; certaines fonctionnent aussi vite que le double, mais je n'ai pas trouvé plus rapide que cela) alors qu'un équivalent moderne de ces pièces TI pourrait être beaucoup plus rapide que cela, permettant facilement un accès à 100 + Mbit / s.

Existe-t-il quelque chose qui est encore en production et qui se comporte de la même manière que ces puces TI? Les pièces les plus proches que je peux trouver aujourd'hui sont des pièces personnalisées, par exemple le VLSI VS23S010D , qui combine un périphérique de mémoire qui prend en charge le type d'interface que je recherche avec un pilote d'affichage, ce qui place le nombre de broches jusqu'à 48 broches. Je recherche idéalement quelque chose dans un boîtier à 14 ou 16 broches (je pense que 14 est le minimum réaliste - puissance 2x, données 8x, horloge, sélection d'adresse, octet de lecture, octet d'écriture).

Jules
la source
Le microcontrôleur MC68HC11 avait une adresse multiplexée ennuyeuse + un bus de données similaire à ce que vous décrivez, une telle mémoire serait géniale pour cela.
pipe
mais le 68HC11 a seulement multiplexé A0..7; A8..15 étaient toujours des broches séparées.
amI

Réponses:

19

La solution standard appropriée est probablement QSPI (également appelée QPI ou SQI). Il s'agit en quelque sorte d'une extension de l'interface SPI, mais utilise quatre bits de données (quad, d'où le Q dans l'acronyme) (IO0 / IO1 / IO2 / IO3) au lieu d'un signal unique pour chaque direction (MISO / MOSI).

Les puces sont donc très petites (généralement SO-8) et l'interface est très efficace: vous devez envoyer l'adresse pour chaque commande de lecture ou d'écriture, mais vous pouvez ensuite lire plusieurs octets en rafale, quatre bits à chaque cycle d'horloge. La vitesse d'horloge maximale est généralement de ~ 104 MHz pour le flash. Il peut être rendu encore plus rapide en utilisant une signalisation à double débit (quatre bits à chaque front d'horloge, à la fois ascendante et descendante: donc huit bits à chaque cycle d'horloge - généralement, les puces flash atteindront un maximum de 80 MHz dans ce mode).

Les fiches techniques des puces fourniront tous les détails sur la signification / l'utilisation exacte de chaque signal. Pour illustrer, voici un chronogramme de commande de lecture (en mode débit unique et tiré de cette fiche technique ):

entrez la description de l'image ici

Ici, vous voyez que vous avez besoin de 14 cycles d'horloge pour obtenir le premier octet (à 80 MHz, cela signifie un temps d'accès de 175 ns). Mais si vous avez besoin de plus d'octets, ajoutez simplement 2 cycles par octet (25ns). La lecture en rafale le rendra donc beaucoup plus rapide qu'une puce parallèle parallèle de 70ns ou même de 45ns.

Vous pouvez facilement trouver des pièces flash NOR de nombreux fabricants en utilisant cette interface. Notez que leurs performances (vitesse maximale, nombre de cycles factices) et leurs fonctionnalités (Quad I / O ou tout simplement Dual I / O, prise en charge DDR) varient, alors consultez la fiche technique.

La RAM est un peu plus difficile à trouver, mais toujours disponible, notamment auprès de Microchip (par exemple 23LC512 ), ON semi (par exemple N01S818HA ) et ISSI (par exemple IS62WVS2568GBLL-45 ). Cependant, ils sont plus lents que le flash. Mais l'ISSI que je suggère ci-dessus va toujours jusqu'à 45 MHz (débit de données unique) avec apparemment un cycle de lecture minimum nécessitant 11 horloges pour le premier octet. Ou autrement dit: 200ns + 45ns par octet (débit 180Mbit / s), ce qui n'est pas mauvais et dépasse la vitesse GRAM que vous avez indiquée.

Notez également que de nombreux MCU haut de gamme (de NXP, ST, ...) prennent en charge cette interface dans le matériel.

faible
la source
Oui, cela ressemble exactement à ce que je cherchais. Merci. :)
Jules
Une autre interface assez similaire est le bus SD 4 bits.
Dmitry Grigoryev le
@DmitryGrigoryev C'est vrai. Mais je ne pense pas que vous puissiez trouver des puces RAM adhérant à cela, cependant. Il n'y a probablement que des puces flash NAND (eMMC).
dim
@dim - ma compréhension (basée sur les interfaces QSPI de ST) est qu'elles sont en lecture / écriture (pas seulement en lecture seule) - RAM vs Flash ne devrait pas non plus avoir beaucoup d'importance
ThreePhaseEel
@ThreePhaseEel Vous avez raison: sur les puces ST, l'interface QSPI peut être définie dans l'un des deux modes: mode indirect (vous déclenchez des commandes sur la puce en définissant explicitement certains registres) et mode mappé en mémoire (l'interface flash traduit automatiquement accès à la mémoire dans les commandes de lecture). En mode mappé en mémoire, le manuel de référence indique explicitement que seule la lecture est autorisée. En mode indirect, cependant, vous pouvez envoyer la commande de votre choix (lecture / écriture / autre), comme vous l'avez mentionné. Je vais modifier en conséquence.
dim
2

Je poste ceci comme une autre réponse parce que c'est quelque chose de totalement différent.

Il existe une autre interface, mais moins courante, qui correspond aussi bien à votre description: HyperBus , conçue par Cypress (c'est propriétaire).

Celui-ci utilise le DDR à des vitesses beaucoup plus élevées (jusqu'à 166 MHz) et un bus 8 bits. Vous pouvez donc atteindre 2666 Mbit / s (wow!), Ce qui laisse QSPI loin derrière. Il est également conçu pour la DRAM à plus haute densité plutôt que pour la SRAM, vous pouvez donc trouver des puces 8M x 8 (contre 256k x 8 pour la SRAM ISSI QSPI mentionnée dans l'autre article). Il n'utilise que 12 signaux (tensions d'alimentation exclues).

Voici un produit HyperRAM d'ISSI: IS66WVH8M8ALL . Il existe également des produits HyperFlash.

Mais nous sommes sur une autre catégorie de produits. Il est plus cher, moins facile à trouver, les puces sont généralement BGA et l'interface est un peu plus complexe (en raison de la vitesse élevée et du DDR). En outre, moins de microcontrôleurs prennent en charge cela.

faible
la source
Il existe des versions 8 bits du flash QSPI de plusieurs fournisseurs qui sont assez similaires à "HyperBus" en termes de performances.
Timmy Brolin