RAM parallela senza un gran numero di pin?


16

Negli anni '70, Texas Instruments aveva una gamma di prodotti ormai fuori produzione che chiamavano GRAM (e leggevano solo GROM equivalenti) che era fondamentalmente un chip di memoria standard con indirizzo e dati tutti multiplexati su 8 pin. Avresti iniziato un'operazione inviando al chip due byte di indirizzo e poi ogni volta che pulsavi il pin di lettura o scrittura leggeva o scriveva un byte usando il bus, quindi incrementava il contatore degli indirizzi interni. Il risultato fu un chip di memoria che era quasi altrettanto veloce (almeno per le operazioni di accesso sequenziale) come un chip di memoria parallelo standard, ma che necessita solo di un pacchetto a 16 pin, piuttosto che dei pacchetti a 28 pin necessari altre memorie simili del giorno .

Oggi, per applicazioni simili, probabilmente utilizzeresti molto spesso la memoria seriale con accesso SPI, ma il problema è che tali memorie sono piuttosto lente (la maggior parte ha un throughput massimo di circa 20 Mbit / s; alcune sono veloci quanto il doppio, ma non l'ho trovato più veloce di così) mentre un moderno equivalente di quelle parti TI potrebbe essere molto più veloce di quello, consentendo facilmente l'accesso a 100 + Mbit / s.

Esiste qualcosa che è ancora in produzione e che si comporta in modo simile a quei chip TI? Il più vicino che posso trovare oggi sono parti personalizzate, ad esempio il VLSI VS23S010D , che combina un dispositivo di memoria che supporta il tipo di interfaccia che sto cercando insieme a un driver di visualizzazione, che porta il conteggio dei pin fino a 48 pin .. Idealmente sto cercando qualcosa in un pacchetto a 14 o 16 pin (penso che 14 sia il minimo realistico: 2x potenza, 8x dati, orologio, selezione dell'indirizzo, byte di lettura, byte di scrittura).


Il microcontrollore MC68HC11 aveva un indirizzo multiplex fastidioso + bus dati simile a quello che descrivi, una memoria del genere sarebbe fantastica per quello.
pipe

ma il 68HC11 ha mischiato solo A0..7; A8..15 erano ancora pin separati.
Sono il

Risposte:


19

La soluzione standard appropriata è probabilmente QSPI (anche chiamato QPI, o anche SQI). È in qualche modo un'estensione dell'interfaccia SPI, ma utilizza quattro bit di dati (quad, quindi la Q nell'acronimo) (IO0 / IO1 / IO2 / IO3) invece di un singolo segnale per ciascuna direzione (MISO / MOSI).

Quindi i chip sono molto piccoli (in genere SO-8) e l'interfaccia è molto efficiente: è necessario inviare l'indirizzo per ciascun comando di lettura o scrittura, ma è quindi possibile leggere più byte in sequenza, quattro bit per ogni ciclo di clock. La velocità di clock massima è in genere ~ 104 MHz per il flash. Può essere reso ancora più veloce usando un segnale Dual Data Rate (quattro bit per ogni fronte di clock, sia in salita che in discesa: quindi otto bit per ogni ciclo di clock - in genere, i chip flash raggiungeranno il massimo a 80 MHz in questa modalità).

I fogli dati del chip forniranno tutti i dettagli sull'esatto significato / utilizzo di ciascun segnale. Per illustrare, ecco un diagramma di temporizzazione del comando di lettura (in modalità velocità dati singola, tratto da questo foglio dati ):

inserisci qui la descrizione dell'immagine

Qui, vedi che hai bisogno di 14 cicli di clock per ottenere il primo byte (a 80MHz, significa 175ns tempo di accesso). Ma se hai bisogno di più byte, aggiungi solo 2 cicli per byte (25ns). Quindi la lettura in burst lo renderà molto più veloce di un tipico chip parallelo da 70 ns o addirittura da 45 ns.

Puoi facilmente trovare parti flash NOR di molti produttori, usando questa interfaccia. Notare che le loro prestazioni (velocità massima, conteggio dei cicli fittizi) e le caratteristiche (Quad i / O o solo Dual I / O, supporto DDR) possono variare, quindi controllare la scheda tecnica.

La RAM è un po 'più difficile da trovare, ma è ancora disponibile, in particolare da Microchip (ad esempio 23LC512 ), ON semi (ad esempio N01S818HA ) e ISSI (ad esempio IS62WVS2568GBLL-45 ). Sono più lenti del flash, però. Ma l'ISSI che suggerisco sopra sale ancora a 45 MHz (velocità dati singola) con apparentemente un ciclo di lettura minimo che richiede 11 clock per il primo byte. O in altri termini: 200 ns + 45 ns per byte (throughput 180 Mbit / s), il che non è male e supera la velocità GRAM indicata.

Inoltre, tieni presente che molti MCU di fascia alta (da NXP, ST, ...) supportano questa interfaccia nell'hardware.


Sì, sembra esattamente quello che stavo cercando. Grazie. :)
Jules,

Un'altra interfaccia abbastanza simile è il bus SD a 4 bit.
Dmitry Grigoryev,

@DmitryGrigoryev Esatto. Ma non penso che tu possa trovare chip RAM aderenti a questo, però. Probabilmente ci sono solo chip flash NAND (eMMC).
dim

@dim - la mia comprensione (basata sulle interfacce QSPI di ST) è che sono in lettura / scrittura (non solo in sola lettura) - Anche RAM vs Flash non dovrebbe importare molto
ThreePhaseEel

@ThreePhaseEel Hai ragione: sui chip ST, l'interfaccia QSPI può essere impostata in una delle due modalità: modalità indiretta (si attivano i comandi al chip impostando alcuni registri in modo esplicito) e modalità mappata alla memoria (l'interfaccia flash si traduce automaticamente la memoria accede ai comandi di lettura). In modalità mappata in memoria, il manuale di riferimento dice esplicitamente che è consentita solo la lettura. In modalità indiretta, tuttavia, puoi inviare qualsiasi comando tu voglia (lettura / scrittura / qualunque altra cosa), come hai detto. Modificherò di conseguenza.
dim

2

Sto pubblicando questa come un'altra risposta perché è qualcosa di totalmente diverso.

C'è un'altra interfaccia, ma meno comune, che si adatta bene anche alla tua descrizione: HyperBus , progettato da Cypress (è proprietario).

Questo utilizza DDR a velocità molto più elevate (fino a 166 MHz) e un bus a 8 bit. Quindi puoi raggiungere 2666 Mbit / s (wow!), Il che lascia QSPI molto indietro. È progettato anche per DRAM ad alta densità anziché SRAM, quindi puoi trovare chip 8M x 8 (vs 256k x 8 per la SRAM ISSI QSPI menzionata nell'altro post). Utilizza solo 12 segnali (tensioni di alimentazione escluse).

Ecco un prodotto HyperRAM di ISSI: IS66WVH8M8ALL . Ci sono anche prodotti HyperFlash che puoi trovare.

Ma siamo su un'altra categoria di prodotti. È più costoso, meno facilmente reperibile, i chip sono in genere BGA e l'interfaccia è un po 'più complessa (a causa dell'alta velocità e del DDR). Inoltre, meno MCU supportano questo.


Esistono versioni a 8 bit di QSPI flash di più fornitori che sono abbastanza simili a "HyperBus" in termini di prestazioni.
Timmy Brolin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.