-
Hintergrund
der Erfindung
-
Technisches
Gebiet
-
Die
Erfindung betrifft einen DRAM-Speicherchipbaustein und ferner eine
einen solchen Baustein umfassende Mehrchip-Kapselung (MCP – Multi-Chip Package). Ferner
betrifft die Erfindung Flash-Speicherbausteine und Flash-Controller
zur Steuerung der Funktionsweise eines solchen Bausteins. Ferner
betrifft die Erfindung das Assoziieren eines Arbeitsspeichers und
eines Datenspeichers mit einer CPU für die Verwendung in Mobilsystemen
wie etwa Digitalkameras und Mobiltelefonen.
-
Mobilsysteme,
wie zum Beispiel Mobiltelefone oder Digitalkameras usw. wurden in
letzter Zeit in bezug auf ihre Systemlogik sowie ihren assoziierten Speicher
beträchtlich
verbessert. Gemäß den spezifischen
Anforderungen eines solchen Systems sind heutzutage vielfältige Speichertypen
gleichzeitig in Mobilsystemen enthalten.
-
Zum
Beispiel besitzen Mobiltelefone sowie Digitalkameras eine Systemlogik,
die eine Anzahl von Chips umfasst, die spezifische, mit einem Mobilsystem
assoziierte Aufgaben durchführen.
Zum Beispiel besitzt ein Mobiltelefon einen Basisbandchip zum Durchführen von
Aufgaben der drahtlosen Kommunikation und ferner einen DSP-Chip
(digitale Signalverarbeitung), der einen an einem Kamerateil des Mobiltelefons
angebrachten CCD-Baustein (Charged Coupled Device) steuern kann.
-
Neuere
Entwicklungen zeigen, dass dieses System reiner Kommunikations-CPU
(CCPU) in Kombination mit mehreren Anwendungs-CPUs (ACPU) tendenziell
in einem kombinierten Chip vereinigt wird. Die Kombination einer
CCPU mit einer Anzahl von ACPUs, die Aufgaben der Kommunikation
und der digitalen Signalverarbeitung durchführen, zu einem Chip kann jedoch
auf beträchtliche
Beschränkungen
stoßen,
da die Anzahl der zum Assoziieren verschiedener Speichertypen mit
den verschiedenen Teilen einer jeweiligen vereinigten CPU notwendigen
Schnittstellen Chipfläche
verbraucht und ferner eine unnötig
große
Spannungsversorgung erfordert.
-
1 zeigt das Problem mehrerer
Schnittstellen. Eine vereinigte CPU 502 umfasst eine Schnittstelle 504,
die Kommunikation mit einem Low-Power-SDRAM 516 (synchroner
dynamischer Direktzugriffsspeicher) über 60 Daten-, Befehls- bzw. Adressenleitungen
oder -pins bereitstellt, wenn der SDRAM eine x32-Komponente ist.
Der SDRAM 516 dient als ein Arbeitsspeicher.
-
Ferner
besitzt eine zweite Schnittstelle 506 27 Daten-, Befehls-
und Adressenleitungen, die Kommunikation mit einem NAND-Flash-Speicher 514 bereitstellen,
der als Permanentspeicher (nichtflüchtiger Speicher) für große Mengen
an Benutzerdaten, z.B. Bilddaten, dient.
-
Weiterhin
besitzt eine dritte Schnittstelle 508 44 Daten-, Befehls-
und Adressenleitungen, die Kommunikation mit einem NOR-Flash-Speicher 510 bereitstellen,
worin auch ein Pseudo-SRAM 512 untergebracht
ist. Dieser letztere Speicher ist dafür ausgelegt, Programmdateien
und Codedaten zu speichern, da NOR-Flash-Speicher im Allgemeinen
Zellen dieses Speichers schnelleren Lese- oder Schreibzugriff bereitstellt,
während
die Speicherdichte im Vergleich mit dem NAND-Flash-Speicher etwas kleiner
ist.
-
Folglich
besitzt die CPU 502 Schnittstellen, die bei diesem vorbekannten
Beispiel insgesamt 131 Pins ergeben. Es war deshalb eine Anforderung,
die Anzahl der zum Assoziieren verschiedener Arten von Speicher
mit einer einzigen CPU notwendigen Schnittstellen zu reduzieren.
Die einfachste Vorgehensweise wäre
einfach das Vereinigen des Systems nichtflüchtiger Speicher (NAND, NOR)
für permanente
Datenspeicherung mit dem Arbeitsspeicher für den flüchtigen SDRAM. Es entsteht
jedoch eine technische Schwierigkeit in Bezug auf den großen Unterschied
bei Taktraten- und Datentransfergeschwindigkeiten zwischen SDRAM
und den Flash-Speichertypen.
Zum Beispiel wird SDRAM mit einer Rate von z.B. 300 MHz getaktet,
während
Flash-Speicher mit Raten unterhalb von 30 MHz getaktet wird.
-
Die
Notwendigkeit einer Vereinigung der Speicherschnittstellen, um die
Menge an Schnittstellen-Pads seitens der Systemlogik (d.h. der CPU)
zu verringern, vergrößert sich
weiter aufgrund von zukünftigen
Technologieaussichten. Zur Zeit verwendet die 130-nm-Technologie
zwei CPU-Chips (CCPU und ACPU), die jeweils zum Beispiel 200 Pads
erfordern, um über
ihre Schnittstellen mit anderen Systemkomponenten zu kommunizieren.
Für das
Jahr 2007, für
das die 80-nm-Technologie
geplant ist, wird ein vergrößerter vereinigter
Chip mit 500 Pads und zur Bereitstellung von Kern- und Anwendungsfunktionen
in Mobilsysteme eingeführt
werden. Weitere Schrumpfungen bis zu der 60-nm-Technologie werden dann
erwartungsgemäß Probleme
behandeln, die bisher aufgrund der beträchtlichen Menge an durch die
Pads verbrauchter Chipfläche
ungelöst sind.
-
Die
US-Patentanmeldung Nr. 2005/0027928 A1 von M-Systems Flash Disk
Pioneers, Ltd., Israel, schlägt
vor, NOR-Flash- und
SRAM-Speicher aufzuheben und gleichzeitig die SDRAM-Schnittstelle für den Zugriff
auf den SDRAM als einen Arbeitsspeicher und auf den NAND-Flash-Controller
auf demselben Chipbaustein zu verwenden. Der NAND-Flash-Speicher
selbst wird auf einem zweiten Chip angeordnet, der mittels einer
internen Schnittstelle mit dem Controller verbunden wird. Mittel
zum Behandeln der Geschwindigkeitsunterschiede und zum Betreiben
der verschiedenen Speicherkomponenten auf kosten- und zeiteffektive
Weise werden gemäß diesem
Vorschlag jedoch nicht bereitgestellt.
-
Eine
Aufgabe der vorliegenden Erfindung ist deshalb die Verringerung
der Kosten der Implementierung einer vereinigten Systemlogik insbesondere im
Fall von Mobilsystemen. Eine weitere Aufgabe der Erfindung ist die
Verringerung von Kosten und Bemühungen
zur Bereitstellung von Arbeits- und Speicherungsspeicher für eine Mobilsystemlogik
und insbesondere die Bereitstellung eines vereinigten Speichers,
der eine Anzahl von mit der Systemlogik gemeinsamen Schnittstellen
aufweist, die so klein wie möglich
ist.
-
Eine
weitere Aufgabe der Erfindung ist die Verringerung der zum Betrieb
einer Systemlogik und zur Kommunikation mit ihrem assoziierten Speicher notwendigen
Stromversorgung.
-
Kurzfassung der Erfindung
-
Diese
und andere Aufgaben werden durch einen Speicherchipbaustein gelöst, umfassend:
- – eine
erste Schnittstelle, die dafür
ausgelegt ist, eine Kommunikation zwischen einem dynamischen Direktzugriffsspeicher
des Bausteins und einem Hostsystem bereitzustellen;
- – den
dynamischen Direktzugriffsspeicher;
- – einen
Controller zum Steuern der Funktionsweise eines nichtflüchtigen
Speichers;
- – eine
zweite Schnittstelle, die dafür
ausgelegt ist, eine Kommunikation zwischen dem Controller und dem
nichtflüchtigen
Speicher bereitzustellen;
- – einen
First-In-/First-Out-Speicherpuffer, der mit Folgendem verbunden
ist: a) dem dynamischen Direktzugriffsspeicher mittels eines ersten
Datentransferbusses und b) dem Controller zur Steuerung der Funktionsweise
des nichtflüchtigen
Speichers mittels eines zweiten Datentransferbusses zum Puffern
von zwischen dem dynamischen Direktzugriffsspeicher oder einem Hostsystem
und dem Controller, der die Funktionsweise des nichtflüchtigen
Speichers steuert, zu transferierenden Daten.
-
Die
Aufgabe wird ferner durch eine Mehrchip-Kapselung gelöst, die
den im Obigen dargelegten ersten Speicherchipbaustein und einem den
nichtflüchtigen
Speicher umfassenden zweiten Speicherchipbaustein umfasst.
-
Die
Aufgabe wird ferner durch ein System gelöst, umfassend: eine Zentralverarbeitungseinheit (CPU);
die Mehrchip-Kapselung
(MCP) wie oben dargelegt, zum permanenten Speichern oder Lesen von durch
die CPU verarbeiteten Daten und zum Bereitstellen eines Arbeitsspeichers
für durch
die CPU ausgeführte
Programmdateien und eine einzige Busschnittstelle zur Bereitstellung
der Kommunikation zwischen der CPU und der MCP.
-
Weitere
vorteilhafte Aspekte und Ausführungsformen
gehen aus den angefügten
Ansprüchen hervor.
-
Ein
Speicherchipbaustein besitzt zwei Schnittstellen. Die erste Schnittstelle
ist dafür
ausgelegt, eine Kommunikation zwischen einem DRAM-Teil des Bausteins
und einem externen Hostsystem, z.B. einer CPU, bereitzustellen.
Gemäß einer
bevorzugten Ausführungsform
ist diese Schnittstelle mit einem externen Bus verbunden, auf den
die CPU auch Zugriff hat.
-
Die
zweite Schnittstelle des Speicherchipbausteins ist dafür ausgelegt,
eine Kommunikation zwischen einem Controller von nichtflüchtigem
Speicher und dem nichtflüchtigen
Speicher bereitzustellen. Gemäß einer
bevorzugten Ausführungsform
der Erfindung hat diese Schnittstelle keinen Zugang zu weiteren
Komponenten mittels eines externen Bussystems, d.h. stellt diese
zweite Schnittstelle stattdessen einen internen Bus zwischen dem
Controller und dem nichtflüchtigen
Speicher bereit.
-
Folglich
assoziiert der Speicherchipbaustein zwei verschiedene Arten von
Speicher, z.B. einen flüchtigen
Speicher, vorzugsweise einen DRAM-Speicher, und einen nichtflüchtigen
Speicher, vorzugsweise einen Flash-Speicher, und ganz besonders
bevorzugt einen NAND-Flash-Speicher mit einer zentralen CPU über eine
einzige Schnittstelle, z.B. die erste Schnittstelle.
-
Auf
dem Speicherchipbaustein ist ein erster First-In-/First-Out-Speicherpuffer
implementiert und trennt einen DRAM-Kernteil von dem Controller-Teil des
nichtflüchtigen
Speichers. Insbesondere trennt dieser First-In-/First-Out-(FIFO-)Speicherpuffer
den Datentransfer zwischen dem DRAM-Kernteil und dem Controller-Teil des
nichtflüchtigen
Speichers. Folglich werden im Speicherchip aus dem Hostsystem über die
erste Schnittstelle zugeführte
Daten nicht direkt dem Controller des nichtflüchtigen Speichers zugeführt, sondern
müssen
zuerst in den FIFO-Speicherpuffer eingegeben werden.
-
Da
die erste Schnittstelle dafür
ausgelegt ist, eine Kommunikation zwischen dem DRAM und dem Hostsystem
bereitzustellen, ist diese Schnittstelle ferner mit Mengen von Befehls-,
Adress- und Datenleitungen mit wohlbekannten DRAM- oder SDRAM-Standards
vereinbar ausgestattet. Der FIFO-Speicherpuffer
liefert ein Mittel zum Zwischenspeichern der aus dem Hostsystem
(z.B. der CPU) oder dem DRAM-Kernteil ankommenden Daten. Weitere
an der ersten Schnittstelle ankommende Befehlsignale werden im Hinblick
auf Befehle ausgewertet, die für
Operationen gültig
sind, die durch den Controller des nichtflüchtigen Speichers und/oder
den FIFO-Speicherpuffer
ausgeführt
werden.
-
Gemäß einem
Aspekt der Erfindung werden für
diesen Zweck im Vergleich mit einer herkömmlichen SDRAM-Schnittstelle
zwei zusätzliche
Pins mit der ersten Schnittstelle bereitgestellt. Diese zusätzlichen
Pins sind dafür
ausgelegt, zusätzlich
zu den herkömmlichen
Befehlssignalen /CS, /RAS, /CAS und /WE ein fünftes und ein sechstes Befehlssignal zu
transferieren. Es wird angemerkt, dass das herkömmliche/BSL (Bankauswahlsignal)
in der gesamten Vorlegeschrift nicht als Befehlssignal bezeichnet wird.
Gemäß einer
weiteren Ausführungsform
ist ein dritter zusätzlicher
Pin dafür
ausgelegt, ein FIFO-Speicherpuffer-Bankauswahlsignal bereitzustellen,
falls dieser Speicher auch hinsichtlich Banken ähnlich wie der DRAM-Kernteil angeordnet
ist (der dann ein SDRAM ist).
-
Unter
Verwendung eines Befehlsdecoders emuliert eine beliebige Kombination
von high- oder low-Signalpegeln einen spezifischen Befehl, der eine Operation
einer Steuerlogik des SDRAM-Kernteils ergibt. Unter Verwendung dieser
beiden zusätzlichen Pins
kann gemäß der Erfindung
eine ausreichende Menge weiterer Befehle emuliert werden, die zur Steuerung
der Funktionsweise der oben erwähnten zwei
separaten Datentransferbusse und ferner zur Steuerung der Funktionsweise
des nichtflüchtigen Speichers
mittels des entsprechenden Controllers dienen.
-
Gemäß einem
Aspekt der Erfindung ist der nichtflüchtige Speicher ein Flash-Speicher,
insbesondere ein NAND-Flash-Speicher.
In diesem Fall betreffen die mit dem vorherigen Aspekt erwähnten emulierten
Befehle eine Standardmenge von Befehlen für den NAND-Flash-Controller.
-
Gemäß einem
weiteren Aspekt der Erfindung umfasst der Controllerteil des nichtflüchtigen Speichers
ferner einen Eingangs-/Ausgangs-Datenpuffer. Da dieser Puffer mit
einem lokalen Takt des Controllers des nichtflüchtigen Speichers getaktet werden
kann, stellt diese Einheit einen Geschwindigkeitsaustausch des Datentransfers
zu der nichtflüchtigen
Speichereinheit bereit.
-
Gemäß einem
weiteren Aspekt ist der FIFO-Speicherpuffer mit einem FIFO-Datenprozessor
ausgestattet, der den Datentransfer zwischen dem FIFO-Speicherarray
und dem Controllerteil des nichtflüchtigen Speichers und ferner
zwischen dem FIFO-Speicherarray
und dem DRAM- oder SDRAM-Array steuert. Als Alternative kann der
letztere Datentransfer, d.h. auf dem ersten Datentransferbus, durch
eine SDRAM-Steuerlogik verwaltet werden, die außerdem FIFO-Speicherpufferfunktionen
ausführt.
Dies ist besonders dann vorteilhaft, wenn das FIFO-Speicherpufferarray
als ein SDRAM-Speicher organisiert ist, ähnlich wie der SDRAM des SDRAM-Kernteils,
der als Arbeitsspeicher dient. Es ist dann einfach, die SDRAM-Steuerlogik zusätzlich das
FIFO-Speicherarray steuern zu lassen.
-
Gemäß diesem
Aspekt können
mehrere Schreib- oder Leseoperationen auf dem ersten Datentransferbus
zwischen dem SDRAM-Array, dem FIFO-Array und dem Hostsystem (CPU)
durchgeführt
werden. Diese Operationen werden getrennt von den Schreib- oder
Leseoperationen zwischen dem FIFO-Array und dem nichtflüchtigen
Speicher behandelt. In dem konkreten Fall, dass das Hostsystem nur
mit dem SDRAM kommuniziert, wird das FIFO-Array von dieser Kommunikation
entlastet und kann an einer zweiten Hintergrundkommunikation mit dem
nichtflüchtigen
Speicher teilnehmen. Folglich können
gleichzeitige Schreib- oder Leseoperationen zu/von dem SDRAM-Array und zu/von
dem nichtflüchtigen
Speicher durchgeführt
werden. Der FIFO-Speicherpuffer dient somit zur Optimierung des Prozesses
der langsamen Speicheroperation des nichtflüchtigen Speichers parallel
mit einer schnellen Speicheroperation des SDRAM-Arbeitsspeichers aufgrund
der CPU.
-
Gemäß einem
weiteren Aspekt wird die SDRAM-Schnittstelle mit einem oder zwei
weiteren Pins ausgestattet, die zum Transfer von Signal-Flags von
dem Chipbaustein zu dem Hostsystem (z.B. der CPU) dienen. Diese
Flags transferieren einen Bereitschafts- oder Belegtstatus des nichtflüchtigen
Speichers und/oder des FIFO-Speicherpuffers. Das Hostsystem kann
also diese Status-Flag-Signale prüfen, um entsprechende Befehlssignale
auszugeben, was zu geeigneten Befehlen führt, wenn das SDRAM-Array,
das FIFO-Array bzw. der nichtflüchtige
Speicher beschrieben werden.
-
Obwohl
die Erfindung hier als in einem Speicherchipbaustein, einer Mehrchip-Kapselung
und einem System mit einer CPU realisiert dargestellt und beschrieben
wird, ist dennoch nicht beabsichtigt, diese auf die gezeigten Details
zu beschränken,
da verschiedene Modifikationen und Strukturänderungen daran vorgenommen
werden können,
ohne von dem Gedanken der Erfindung abzuweichen, und innerhalb des
Schutzumfangs und Geltungsbereichs von Äquivalenten der Ansprüche.
-
Der
Chipbaustein, die Kapselung und das System der Erfindung werden
jedoch zusammen mit zusätzlichen
Aufgaben und Vorteilen davon am besten durch die folgende Beschreibung
spezifischer Ausführungsformen
in Verbindung mit den beigefügten
Zeichnungen verständlich.
-
Kurze Beschreibung der
Zeichnungen
-
1 zeigt
eine Übersicht über eine
CPU und ihren assoziierten Speicher gemäß dem Stand der Technik;
-
2 ist
gleich 1, aber gemäß einer Ausführungsform
der Erfindung;
-
3 zeigt
ein Blockschaltbild eines Speicherchipbausteins gemäß einer
Ausführungsform der
Erfindung;
-
4 zeigt
ein ausführlicheres
Blockschaltbild eines Speicherchipbausteins gemäß einer Ausführungsform
der Erfindung;
-
5 zeigt
ein vereinfachtes Flussdiagramm verschiedener Lade- und Speicheroperationen,
die gemäß einer
Ausführungsform
der Erfindung ausgeführt
werden können.
-
Ausführliche
Beschreibung der Ausführungsformen
-
2 zeigt
ein Übersichts-Blockschaltbild eines
Systems mit einer CPU 502, einem SDRAM-Arbeitsspeicher 516' und einem NAND-Flash-Speicher 514b zur
permanenten Speicherung von Benutzerdaten und ausführbaren
Programmdateien gemäß einer
ersten Ausführungsform der
Erfindung. Die CPU 502 besitzt eine einzige (erste) Schnittstelle 504', die Kommunikation
sowohl mit dem flüchtigen
Arbeitsspeicher 516' als
auch mit dem nichtflüchtigen
Speicherungs-Speicher 514b bereitstellt. Die Breite dieses
Busses wird auf 64 Daten-, Befehls- und Adressenleitungen oder Pins
auf dem entsprechenden Speicherchipbaustein vergrößert, im
Vergleich zu den 60 Leitungen oder Pins, die in dem vorbekannten
Beispiel von 1 gezeigt sind.
-
Da
die Schnittstelle 504' die
einzige auf der CPU-Seite übrige
Schnittstelle ist, wird die Gesamtzahl der Leitungen oder Pads,
die auf dem CPU-Board 502 erforderlich sind, gemäß diesem spezifischen
Beispiel von 131 auf 64 verringert. Dabei wird über eine zweite Schnittstelle 520 von
dem SDRAM-Arbeitsspeicher 516' aus auf den Flash-Speicher 514b zugegriffen.
Genauer gesagt umfasst der SDRAM-Arbeitsspeicher 516' einen NAND-Flash-Controllerteil 514a,
der die Funktionsweise des NAND-Flash-Speichers 514b steuert.
Die über
die erste Schnittstelle 504' bereitgestellten
4 zusätzlichen
Pins dienen zum Ergeben zusätzlicher
Befehle zum Betrieb des Flash-Controllerteils 514a sowie
als ein mit dem SDRAM-Speicherchipbaustein bereitgestellter FIFO-Speicherpufferteil.
-
3 zeigt
ein Blockschaltbild mit einem ähnlichen
SDRAM-Speicherchipbaustein 40,
der gemäß einer
zweiten Ausführungsform
der vorliegenden Erfindung eine Schnittstelle mit einem Flash-Speicherbaustein 60 aufweist.
Der bei dieser Ausführungsform
verwendete Flash-Speicherbaustein 60 ist ein NAND-Flash-Speicher.
-
Der
SDRAM-Speicherchipbaustein 40 gemäß dieser Ausführungsform
kann in drei Teile unterteilt werden: einen SDRAM-Kernteil 10,
einen FIFO-Pufferteil 20 und einen Flash-Controllerteil 30. Dennoch
können
alle drei Teile auf demselben Chip oder Waferteil hergestellt werden,
während
der Flash-Speicherbaustein 60, auf den direkt von dem SDRAM-Speicherbaustein über die
Schnittstelle aus zugegriffen wird, auf einem anderen Chip oder
Waferteil hergestellt werden kann.
-
Der
SDRAM-Kernteil 10 umfasst eine Schnittstelle 12 zu
einem Hostsystem, wie zum Beispiel einer Zentralverarbeitungseinheit 50 (CPU).
Die Schnittstelle 12 umfasst mehrere Pins 14,
die so angeordnet sind, dass sie dem SDRAM-Standard entsprechen. Gemäß ihren
Funktionen können
die Pins in solche gruppiert werden, die Taktsignale, Adressensignale,
Befehlssignale, Bankauswahlsignale und Datensignale transferieren.
Wie in 3 durch Doppelpfeile gezeigt, werden im Vergleich
zu dem SDRAM-Standard zusätzliche
Pins für
die Schnittstelle bereitgestellt. Diese zusätzlichen Pins sind dafür ausgelegt,
Signale zu senden, die Steuerung von Hintergrund-Speicher- und -Ladeoperationen
in Bezug auf die für
permanente Speicherung in dem NAND-Flash-Speicher beabsichtigten
Daten ergeben, während
Daten zwischen der Host-CPU 50 und dem SDRAM-Array 190 transferiert
werden.
-
Die
erste Schnittstelle 12 umfasst ferner Pins, die den Bereitschafts-
oder Belegtstatus des FIFO-Pufferteils 20 und/oder des
NAND-Flash-Speichers 60 von dem Chipbaustein 40 zu
der CPU 50 signalisieren.
-
Der
SDRAM-Kernteil 10 besitzt einen Taktgenerator 110,
der aus den ankommenden Taktsignalen einen internen Takt erzeugt
(der z.B. mit 130 MHz läuft).
Dieser Takt ist für
den SDRAM-Kernteil 10 und
den FIFO-Speicherpufferteil 20 gültig. Der Takt wird zu dem
Flash-Controllerteil 30 weitergeleitet und dort erzeugt
ein Flash-Taktgenerator 310 aus dem SDRAM-Teil-Takt einen Flash-Takt,
der für
diesen Teil gültig
ist (z.B. mit 20 MHz).
-
Jeder
der drei Teile 10, 20, 30 des Chipbausteins 40 umfasst
ein Speicherarray oder einen Puffer mit Registern. Der SDRAM-Kernteil 10 umfasst ein
SDRAM-Speicherarray 190 mit einer Größe von z.B. 64 MB. Außerdem umfasst
der FIFO-Speicherpuffer 20 ein
FIFO-SDRAM-Array 290 mit einer Größe von 2 MB. Der Flash-Controllerteil 30 umfasst
ein Datenregister 380, das an den Eingangs-/Ausgangspuffer 390 mit
einer Größe von 2
kB angeschlossen ist.
-
Beide
Arrays 190, 290 werden durch einen ersten Datentransferbus 192 verbunden.
Dieser erste Datentransferbus wird durch die SDRAM-Steuerlogik 120 gesteuert,
die Befehle empfängt,
die aus den an der Schnittstele 12 ankommenden Befehlssignalen
emuliert werden. Der erste Datentransferbus kann eine Breite von
8, 16, 32 oder 64 Bit aufweisen und ist entweder für bidirektionalen
Datentransfer ausgelegt oder besteht jeweils aus einem unidirektionalen
Lese- und Schreibbus.
-
Ein
FIFO-Datenprozessor 210 steuert als Reaktion auf emulierte
Hintergrund-Speicher- und -Ladebefehle einen zweiten Datentransferbus.
Der zweite Datentransferbus verbindet das FIFO-Speicherarray 290 mit
einem Flash-Eingangs-/-Ausgangspuffer 390,
der mit Datenregistern 380 und einer ECC-Logik 385 (siehe
die ausführliche 4)
assoziiert ist. Dieser letztere Puffer- und Registerteil führt die
Transfergeschwindigkeitsanpassung in Bezug auf den langsameren Flash-Controller-Takt 310 aus.
Der zweite Datentransferbus kann eine Breite von 8, 16, 32 oder
64 Bit aufweisen und ist entweder für bidirektionalen Datentransfer
ausgelegt oder besteht jeweils aus einem unidirektionalen Lese-
und Schreibbus.
-
Eine
Standard-NAND-Flash-Schnittstelle 32 stellt den Datentransfer
und die Befehlssteuerung zu oder von dem Flash-Speicherbaustein 60 bereit.
Dabei ist der NAND-Flash- Controller 320,
der diese Operation steuert, auf dem vorliegenden Speicherchipbaustein 40 angeordnet.
-
4 zeigt
ein ausführlicheres
Blockschaltbild gemäß der zweiten
Ausführungsform
der Erfindung. Hierbei umfasst die erste Schnittstelle 12 mehrere
Pins 14 entsprechend dem SDRAM-Standard.
-
Die
Pindefinitionen der Taktsignale lauten:
- – CLK: Systemtakteingang,
wobei andere Signale auf die ansteigende Flanke von CLK bezogen werden;
- – /CLK:
invertiertes Signal des Systemtakts, verfügbar für DDR-Speicher (doppelte Datenrate)
mit Bezug von Signalen auf die fallende Flanke;
- – CKE:
Taktfreigabesignal
-
Die
Pindefinitionen der Befehlssignale lauten:
- – /CS: Chipauswahl-
und Befehl-Aktiv-Signal;
- – /RAS:
Zeilen-Aktiv-Signal
- – /CAS:
Spalten-Aktiv-Signal
- – /WE:
Schreib- oder Lesefreigabesignal
- – /LD:
Datenladefreigabesignal
- – /ST:
Datenspeicherfreigabesignal
-
/LD
und /ST gehen über
den SDRAM-Standard hinaus und werden der Schnittstelle 12 zusätzlich zur
Steuerung von Hintergrund-Laden (/LD) und zur Steuerung eines Hintergrundspeichers
(/ST) von für
lange Speicherung in dem nichtflüchtigen
Speicher beabsichtigte Daten bereitgestellt. Jedes der Befehlssignale
kann mit Bezug auf eine Taktzeitsteuerung einen High- oder Low-Pegel
erreichen.
-
Wenn
CKE als ein Befehlssignal gezählt wird,
kann eine Menge von mindestens 13 Befehlen zum Betrieb des SDRAM-Kernteils 10 aus
einer beliebigen Kombination von Signalpegeln (Low oder High) herkömmlicher
SDRAM-Signale CKE, /CS, /RAS, /CAS, /WE mittels eines Befehlsdecoders 150 emuliert
werden. Dafür
kann eine sogenannte Befehlswahrheitstabelle eingerichtet werden,
die verfügbare
Befehle mit bestimmten Kombinationen von Signalpegeln (d.h. High
oder Low) der ankommenden Befehlssignale an den jeweiligen Pins
assoziiert. Die Befehle werden durch eine SDRAM-Kernlogik 120 empfangen
und ausgeführt,
die außerdem
Steueraufgaben mit Bezug auf den FIFO-Pufferteil 20 ausführt.
-
Unter
Verwendung der zusätzlichen
Pins mit jeweiligen Signalen: /LD und /ST können Mengen weiterer Befehle
gemäß Kombinationen
von Signalpegeln mit denen der oben angegebenen Signale mittels
des Befehlsdecoders 150 eingerichtet werden. Bei dieser
Ausführungsform
handelt es sich dabei um 9 zusätzliche
Befehle. 4 dieser Befehle betreffen NAND-Flash-Befehle: RST (Rücksetzen), STR (Statusregister),
IDR (Chip-ID-Register),
ABE (automatisches Blocklöschen).
2 der 9 zusätzlichen
Befehle betreffen die Steuerung des Datentransfers zwischen dem
SDRAM-FIFO-Speicherarray 290 und dem Flash-Speicher-Eingangs-/-Ausgangspuffer 390 (zweiter
Datentransferbus 294): LD (Hintergrund-Laden), ST (Hintergrund-Speichern).
Ferner betreffen 3 zusätzliche
Befehle der Menge von 9 Befehlen die Steuerung des Datentransfers
zwischen dem SDRAM-Kernspeicherarray 190 und dem FIFO-Speicherarray 290:
CP (automatisches Kopieren), BU (automatisches Sichern) und DAS
(Zieladressen-Strobe).
-
Diese 3 letzteren
Befehle CP, BU und DAS werden automatisch direkt als Reaktion auf
die durch CPU ausgegebenen Befehlssignale ausgeführt, d.h. nicht als eine Hintergrundoperation.
Die Befehle LD und ST sind jedoch Hintergrundoperationen. Folglich ist
die Dauer der Ausführung
nicht im voraus bekannt, und weitere Signale FIFO und Flash mit
jeweiligen Flag-Signalpins sind wie nachfolgend beschrieben notwendig,
um der CPU 50 Rückmeldung
darüber
zu geben, was gerade der Status im Hintergrund ist (zwischen dem
FIFO-Pufferspeicherteil 20, dem Flash-Controllerteil 30 und
dem Flash-Speicherbaustein 60).
-
Nach
der Emulation werden Befehle entweder durch die SDRAM-Kernlogik 120 oder
den FIFO-Zeitsteuerungsgenerator 211, der den in 3 gezeigten
Datenprozessor 210 darstellt, zur Steuerung der jeweiligen
Datentransferbusse empfangen. Die 4 Flash-Speichersteuerbefehle
werden zu dem NAND-Flash-Controller 320 weitergeleitet.
-
Der
Baustein besitzt ferner Indikatorsignale /FIFO und /FLASH, die über zwei
jeweilige zusätzliche
Pins der Schnittstelle 12 zu der CPU 50 gesendet werden.
Diese Signale dienen als Flag für
den Status des FIFO-Pufferteils 20 und den Flash-Controllerteil 30 bzw.
den Flash-Speicherbaustein 60 für die CPU 50. Die
CPU 50 kann abhängig
von diesen geflaggten Signalen entsprechende Befehlssignale ausgeben.
-
Der
SDRAM-Kernteil 10 umfasst ferner gemäß dieser Ausführungsform
ein Modusregister 140 und eine Bankauswahlkomponente 130.
Die Bankauswahlkomponente 130 puffert das an einem jeweiligen
Pin der ersten Schnittstelle 12 ankommende Bankauswahlsignal.
Unter Verwendung dieses Signals kann eine der Banken 0–3 des Arrays 190 für Lese- oder Schreibzugriff
in Übereinstimmung
mit dem SDRAM-Standard ausgewählt
werden. Zusätzlich
zu dem Bankauswahlpin (Pindefinition: BSL) kann ein weiterer Pin
wahlweise vorgesehen werden, um eine Bank des FIFO-Speicherpufferarrays 290 auszuwählen, wenn
es sich dabei um das Array 290 handelt, sowie im Hinblick
auf Bänke
gemäß dem SDRAM-Standard
angeordnet werden. In 4 ist mit diesem Signal eine
Pindefinition FBS (FIFO-Pufferauswahl) assoziiert.
-
Der
SDRAM-Kernteil 10 umfasst ferner Zeilen- und Spaltenadressenpuffer 160, 170 zum
Empfangen von Adressen über
Pins ADD[0:20]. Eine Datensteuerkomponente 180 wird durch
die SDRAM/FIFO-Steuerlogik 120 gesteuert, um den Datentransfer
auf den ersten Datentransferbus zu verwalten.
-
Eine
Hintergrundladeoperation kann gemäß dieser Ausführungsform
folgendermaßen
durchgeführt
werden: Es wird ein LD-Befehl (Hintergrundladebefehl) ausgegeben
(z.B. mit /CS und /LD auf „Low" und /RAS, /CAS,
/WE, /ST und CKE auf „High"), mit einer Quellenadresse „SA" einer NAND-Flash-Speicherseite, die über die
Adressenpins ADD durch die CPU 50 zugeführt wird. SA betrifft die Seite
des NAND-Speichers, die in den FIFO-Pufferteil geladen werden soll.
Sofort wird das /FLASH-Flag über
den jeweiligen Pin gesetzt. Bei einem DAS-Befehl (Zieladressen-Strobe: z.B. mit
/CS, /LD und /ST auf „Low" und /RAS, /CAS,
/WE und CKE auf „High"), der drei Taktperioden
später
gemäß einer
vordefinierten Regel ausgegeben wird, wird eine Bank des FIFO-Speicherpufferarrays 290 ausgewählt (Befehl
FBS) und eine Adresse „DA" in dem FIFO-Speicherpufferarray 290 wird über Adressenpins
ADD als eine Zieladresse bereitgestellt.
-
Als
nächstes
führt die
CPU 50 eine automatische Vordergrund-Schreiboperation in das SDRAM-Array 190 aus.
Drei Taktperioden nach dem DAS-Befehl wird ein ACT-Befehl ausgegeben,
um eine Zeile zu aktivieren (z.B. mit /CS und /RAS auf „Low" und /CAS, /WE, /ST,
/LD und CKE auf „High"). Damit wird eine
Bankadresse (Befehl BLS) und eine Zeilenadresse „RA" (über
Adressenpins) gesendet. Dann wird ein Schreiben WR (z.B. mit /CS,
/CAS und /WE auf „Low" und /RAS, /LD, /ST
und CKE auf „High") mit Transfer einer
Spaltenadresse CA in dem Spaltenadressenpuffer 160 durchgeführt.
-
Als
Reaktion auf diesen Befehl wird eine Datensequenz von 8 Bit, d.h.
ein Wort, über
DQ-Pins DQ[1-32] der Schnittstelle 12 in das SDRAM-Array 190 transferiert
und in die Speicherzellen geschrieben, die die logische Zeilen-,
Spalten- und Bankadresse aufweisen, die wie oben angegeben bereitgestellt
wird.
-
In
der Zwischenzeit hat das Hintergrundladen aus dem NAND-Flash-Speicher in
den FIFO-Puffer begonnen. Die Adressen „SA" und „DA" wurden in jeweilige Ziel- und Quellenregister 330, 340 des
Flash-Controllerteils 30 transferiert. Der LD-Befehl wird
von dem FIFO-Zeitsteuerungsgenerator 211 erkannt.
-
Der
Flash-Controllerteil 30 besitzt eine generische Schnittstelle 32 zur
Kommunikation mit dem Flash-Speicherbaustein 60.
Diese zweite Schnittstelle 32 ist mit Pins mit den folgenden
Definitionen ausgestattet:
/CE Chipfreigabe mit Active-Low
CLE-Befehl-Latch-Freigabe
mit Active-High
ALE-Adressen-Latch-Freigabe mit Active-High
/RE
Lesefreigabe
/WE Schreibfreigabe
/WP Schreibschutzfreigabe
RD,
/BY Bereitschafts- oder Belegteingangssignal
NDQ[1-16] Eingangs-/Ausgangsports
für Adresse, Befehl
und Daten
-
Die
Pins repräsentieren
eine Flash-Schnittstelle-Standardanordnung
und sind im Vergleich zu vorbekannten NAND-Flash-Speicherschnittstellen nicht abgeändert.
-
Massepegel-
und Spannungsversorgungspins sind in den Diagrammen der Einfachheit
halber in Bezug auf beide Schnittstellen 12 und 32 nicht
gezeigt.
-
Der
NAND-Flash-Controller 320 ruft Seitendaten aus der NAND-Adresse „SA" über die NDQ-Pins der Schnittstelle 32 ab.
Die Daten werden sofort in dem Datenregister 380 gespeichert.
Der FIFO-Zeitsteuerungsgenerator 211 startet dann die Datensteuerlogik 280,
um die registrierten Daten in das FIFO-Speicherpufferarray 290 zu
transferieren, indem sie unter der Zieladresse „DA" gespeichert werden.
-
Während dieser
Operation wird außerdem das
/FIFO-Flag ausgegeben, um der CPU 50 zu signalisieren,
dass der FIFO-Speicherpuffer
belegt ist. Als Folge davon darf die CPU 50 erst dann wieder Daten
zu/von dem FIFO-Speicherpufferarray 290 speichern oder
laden, wenn das /FIFO-Flag zu dem Pegel „High" zurückkehrt
(wenn das Signal als Active-„Low" definiert ist).
-
5 zeigt
eine Übersicht über die
gemäß dieser
Ausführungsform
der Erfindung verfügbaren Lade-,
Speicher-, Lese- und Schreibbefehle. LD und ST sind Hintergrundoperationen
(auf dem zweiten Datentransferbus), die durch den Flash-Controller 320 und
den Zeitsteuerungsgenerator 211 gesteuert werden, BU (Sicherung)
und CP (Kopieren) sind automatische Vordergrundoperationen (auf
dem ersten Datentransferbus), die direkt durch die CPU 50 eingeleitet
und durch die SDRAM/FIFO-Steuerlogik 120 gesteuert werden.
Schreib- und Lesebefehle (WR, RD) können alternativ sowohl auf
dem SDRAM-Kernarray 190 als auch auf dem SDRAM-FIFO-Speicherarray 290 durch
die CPU 50 ausgeführt
werden.
-
- 10
- DRAM-Kernteil
- 12
- DRAM-Schnittstelle
- 14
- Kontaktanschluss
- 20
- Mehrport-FIFO-Eingangs-/-Ausgangspuffer
- 30
- Flash-Speicher-Controllerteil
- 32
- Flash-Speicherschnittstelle
- 40
- DRAM-Chipbaustein
- 50
- Hostsystem,
CPU
- 60
- Flash-Speicherchipbaustein
- 110
- DRAM-Takt
- 120
- DRAM-
und FIFO-Steuerlogik
- 180
- Datensteuerung
(1. Bus)
- 190
- DRAM-Speicherarray
- 192
- 1.
Datentransferbus
- 210
- FIFO-Datenprozessor
- 211
- FIFO-Zeitstellungsgenerator
- 280
- Datensteuerung
(2. Bus)
- 290
- FIFO-Speicherarray
- 294
- 2.
Datentransferbus
- 310
- Flash-Speichertakt
- 320
- Flash-Controller
- 380
- Flash-Datenregister
- 385
- ECC-Logik
- 390
- Flash-Eingangs-/-Ausgangspuffer