-
Die
vorliegende Erfindung betrifft Verfahren und Einrichtungen zum Abrufen
von in einem nicht-flüchtigen
Speicher-Array gespeicherten
Daten.
-
Für die meisten
modernen Prozessoren ist die Lesezykluszeit wesentlich kürzer als
die Zugriffszeit vieler nichtflüchtiger
Halbleiterspeichereinrichtungen, einschließlich löschbarer programmierbarer Nur-Lese-Speicher
(EPROM), elektrischer löschbarer
programmierbarer Nur-Lese-Speicher (EEPROM) und Flash-EPROMs. Infolgedessen
muß der
Prozessor um eine Anzahl von Wartezuständen verzögert werden, bevor ihm das
Lesen der Ausgabe der Einrichtung erlaubt wird, um nach dem Adressieren
einer derartigen Speichereinrichtung das Lesen unrichtiger Daten
zu vermeiden. Da sich der Prozessor in jedem Wartezustand im wesentlichen
im Leerlauf befindet, ist es wünschenswert,
die für
einen vorgegebenen Speicherzugriff benötigte Anzahl von Wartezuständen zu
minimieren, um die Verschwendung von Rechenressourcen zu vermeiden.
-
Aus
der US-Patentschrift 5,105,389 ist ein Verfahren zum Ausgeben von
Daten einer nicht-flüchtigen
Speichereinrichtung bekannt, bei dem aus einem gleichzeitig ausgelesenen
4-fachwort mit Hilfe der zwei am niedrigsten bewerteten Adreßbits ein
bestimmtes Wort ausgewählt
und ausgegeben wird.
-
1 zeigt eine Abbildung der
Architektur einer bekannten Seitenmodus-Flash-Speichereinrichtung 12,
auf die mit einer reduzierten Anzahl von Wartezuständen zugegriffen
werden kann. Der Flash-Speicher 12 enthält ein Flash-Speicher-Array 5 mit
mehreren Flash-Speicherzellen, eine Leseverstärkerschaltung 7, einen
Multiplexer 9 und einen Ausgabepuffer 11. Die
Flash-Speichereinrichtung 12 empfängt wenigstens zwei extern
erzeugte Signale: ein durch einzelne Adreßbits A0-X definiertes
Adreßsignal
und ein Ausgabe-Freigabe-Signal
OE#. Wie in 1 gezeigt
ist, werden die höherwertigen
Adreßbits
A2-X zum Adressieren des Flash-Speicher-Arrays 5 angelegt,
während
die niederwertigen Bits A0-1 an den Multiplexer 9 angelegt
werden. Die höherwertigen
Adreßbits
A2-X definieren in dem Flash-Speicher-Array 5 einen
als "Seitenadresse" bezeichneten Adreßbereich,
und die an entsprechenden von der Seitenadresse umfaßten Adressen
gespeicherten Datenwerte werden zusammen als "Seite des Speichers" oder kurz "Seite" bezeichnet. Das Flash-Speicher-Array 5 ist
derart konzipiert, daß es
als Antwort auf jede neue Seitenadresse eine ganze Speicherseite
auf einmal ausgibt. Die vom Flash-Speicher-Array 5 ausgegebene
Seite des Speichers wird hier als die "anhängige
Seite" bezeichnet,
und jeder einzelne Datenwert der anhängigen Seite wird als ein "Wort" bezeichnet. Jedes
Wort der anhängigen
Seite wird von der Leseverstärkerschaltung 7 verstärkt und
an einen entsprechenden Eingang des Multiplexers 9 angelegt.
Die niederwertigen Adreßbits
A0-1 dienen als Multiplexerauswahlsignale
zum Auswählen
eines der in dem Multiplexer 9 eingegebenen Wörter, und der
Multiplexer 9 gibt als Antwort das ausgewählte Wort
an den Puffer 11 aus. Der Puffer 11 treibt die einzelnen
Bits des ausgewählten
Wortes beim Empfang eines aktiven Ausgabe-Freigabe-Signals OE# von
einer externen Steuereinrichtung auf einen Datenbus.
-
Der
die meiste Zeit beanspruchende Zugriff auf die Seitenmodus-Flash-Speichereinrichtung 12 tritt
auf, wenn die Seitenadresse gegenüber dem vorherigen Zugriffszyklus
geändert
wird. In diesem Fall wird die volle Zugriffszeit des Flash-Speicher-Array zum
Ausgeben einer neuen Speicherseite benötigt. Wenn jedoch nur die niederwertigen "Wortauswahl"-Adreßbits A0-1 gegenüber dem
vorherigen Zyklus geändert
werden, dann sind die angeforderten Daten in der bereits anhängigen Speicherseite
vorhanden und die volle Flash-Speicher-Array-Zugriffszeit wird nicht benötigt. Tatsächlich ermöglicht es
die Seitenmodus-Flash-Speichereinrichtung 12, daß sich die
Flash-Speicher-Array-Zugriffszeit über eine Anzahl von aufeinanderfolgenden
Speicherlesezyklen amortisiert, in denen die Seitenadresse unverändert bleibt.
Da das Abrufen einer ganzen Speicherseite oft erforderlich ist,
z.B. zum Füllen
einer Zeile eines Cache-Speichers, kann die Seitenmodus-Architektur 12 verwendet
werden, um die durchschnittliche Zugriffszeit für die Flash-Speichereinrichtung
wesentlich zu verringern.
-
2 zeigt ein Zeitablaufdiagramm 35 für eine Folge
bzw. Sequenz von an der bekannten Seitenmodus-Flash-Speichereinrichtung
der 1 ausgeführten Leseoperationen.
Zu den dargestellten Signalen gehören das Master-Taktsignal CLK,
die Seitenadresse A2-X, die Wortauswahladresse
A0-1, das Chip-Freigabe-Signal CE#, das Ausgabe-Freigabe-Signal
OE# und die Datenausgabe DQ0-15. Wie oben
angegeben, sind die Seitenadresse A2-X und
die Wortauswahladresse A0-1 jeweils Bestandteile
einer einzelnen von einem Prozessor angelegten Adresse A0-X. Es ist klar, daß die genaue Anzahl der in
der Seitenadresse A2-X oder der Wortauswahladresse
A0-1 enthaltenen Bits je nach Ausführungsform
variieren kann. Mit jeder ansteigenden Flanke des Master-Taktsignals
CLK zusammenfallende Gitterlinien sind gezeigt, um die jeweiligen
Zyklusperioden des Master-Taktsignals CLK darzustellen.
-
Während einer
ersten Zyklusperiode Ta des Master-Taktsignals
CLK wird eine mit Adresse 0 bezeichnete und die Bits A0-X enthaltende
neue Adresse in die Seitenmodus-Flash-Speichereinrichtung eingegeben.
Aufgrund der Buskapazität
wird eine durch den Pfeil 22 angezeigte Einschwingzeit
benötigt,
bevor die Seitenadresse A2-X und die Wortauswahladresse
A0-1 gültig
sind. Sobald die Seitenadresse A2-X gültig ist,
legt eine außerhalb
der Flash-Speichereinrichtung angeordnete Adreßdekodierlogik das Chip-Freigabe-Signal
CE# an, um die Seitenadresse A2-X in der
Flash-Speichereinrichtung freizugeben. Wie von dem Pfeil 24 angezeigt
wird, tritt eine Ausbreitungsverzögerung auf, bevor das Chip-Freigabe-Signal
CE# auf ein aktives niedriges Potential übergeht. Das Chip-Freigabe-Signal
CE# bleibt solange auf dem aktiven niedrigen Potential angelegt, solange
die Seitenadresse A2-X unverändert bleibt.
-
Wie
der Pfeil 26 anzeigt, werden die Zyklen Tw1,
Tw2, Tw3 und Tw4 des Master-Taktsignals CLK abgeschlossen,
bevor das adressierte Wort, Daten 0, gültig wird. Die Master-Taktzyklen
Tw1, Tw2, Tw3 und Tw4 stellen
Wartezustände
dar, die benötigt werden, um
einen Zugriff auf das Flash-Speicher-Array zu ermöglichen,
und während
dieser Wartezustände
ist der Prozessor im wesentlichen im Leerlauf. Das Ausgabe-Freigabe-Signal
OE# geht einige Zeit vor dem Gültigwerden
der Daten 0 auf ein aktives niedriges Potential über, um die Ausgabe der Daten
0 auf einen Datenbus zu ermöglichen.
Der Prozessor liest während
des Zyklus Td0 des Master-Taktsignals CLK
die Daten 0 und legt dann bei der ansteigenden Flanke des nachfolgenden
Taktzyklus Tw eine neue Adresse, Adresse
1, an.
-
Unter
der Annahme, daß die
Adresse 1 die gleiche Seitenadresse wie die Adresse 0 enthält, bleibt
die während
des Taktzyklus Ta an die Flash-Speichereinrichtung
angelegte Seitenadresse gültig,
so daß das
Chip-Freigabe-Signal CE# und das Ausgabe-Freigabe-Signal OE# aktiv
bleiben. Außerdem
enthält
die bereits anhängige
Seite des Speichers aufgrund der unter Bezugnahme auf 1 beschriebenen Seitenmodus-Architektur
den von der Adresse 1 angezeigten Datenwert, Daten 1. Infolgedessen
ist die zum Gültigwerden
der Daten 1 benötigte
Zeit wesentlich kürzer
als die zum Gültigwerden der
Daten 0 benötigte
Zeit. Genauer gesagt werden die Daten 1, wie von dem Pfeil 28 angezeigt,
während
des Zyklus Td1 des Master-Taktsignals gültig, welcher
dem Taktzyklus Tw unmittelbar folgt, in
welchem die Adresse 1 angelegt wurde. Die Folge der für das Gültigwerden
der Daten 1 benötigten
kürzeren
Zeit ist eine im Vergleich zur Lesezykluszeit für die Daten 0 (sechs Master-Taktzyklen)
kürzere
Lesezykluszeit für
die Daten 1 (zwei Master-Taktzyklen). Wie
die Pfeile 30 bzw. 32 anzeigen, werden außerdem zusätzliche
Datenwerte, Daten 2 und Daten 3, von der anhängigen Speicherseite jeweils
innerhalb von zwei Master-Taktzyklen
adressiert und ausgegeben. Folglich kann die von dem Prozessor zum
Lesen von vier Datenwerten aus der Flash-Speichereinrichtung benötigte Gesamtanzahl
von Taktzyklen mit Hilfe der Seitenmodus-Architektur von möglichen
24 Taktzyklen (vier Wörter × 6 Taktzyklen
pro Wort) auf 12 Taktzyklen reduziert werden.
-
Trotz
der von der Seitenmodus-Architektur ermöglichten Zugriffszeiteinsparungen
werden weiterhin Wartezustände
zum Lesen von Daten aus der Flash-Speichereinrichtung benötigt, selbst
wenn die Speicherseite anhängig
ist. Wie beispielsweise in 2 gezeigt
ist, stellen alle Tw-Zyklen des Master-Taktsignals CLK,
die Td0, Td1, Td2 bzw. Td3 folgen, Wartezustände dar
in denen der Prozessor im wesentlichen im Leerlauf ist.
-
Aufgabe
der Erfindung ist es, die Wartezustände zu verringern. Diese Aufgabe
wird erfindungsgemäß durch
ein Verfahren mit den Merkmalen des Anspruchs 1, eine Speichereinrichtung
mit den Merkmalen des Anspruchs 17 bzw. eine Datenverarbeitungseinrichtung
mit den Merkmalen des Anspruchs 25 gelöst.
-
Es
werden Verfahren und Einrichtungen zum Ausgeben von in einer nicht-flüchtigen
Speichereinrichtung gespeicherten Daten beschrieben. Die Speichereinrichtung
empfängt
eine Adresse, die eine Mehrzahl von in einem nicht-flüchtigen
Speicher-Array der Speichereinrichtung gespeicherten Datenwerten
anzeigt. Dann wird ein Auswahlsignal in der Speichereinrichtung
erzeugt, um jeden Datenwert der angezeigten Mehrzahl von Datenwerten
in einer vorgegebenen Sequenz auszuwählen. Jeder ausgewählte Datenwert
wird dann gemäß der vorgegebenen
Sequenz ausgegeben.
-
Vorteilhafte
und/oder bevorzugte Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
-
Die
vorliegende Erfindung ist zur Veranschaulichung in den Figuren der
zugehörigen
Zeichnung dargestellt, in denen gleiche Bezugszeichen auf ähnliche
Elemente hinweisen und in denen:
-
1 eine Abbildung einer bekannten
Seitenmodus-Flash-Speicher-Architektur
zeigt.
-
2 ein Zeitablaufdiagramm
zeigt, welches eine Folge von mit Hilfe der bekannten Speicher-Architektur
der 1 ausgeführten Leseoperationen veranschaulicht.
-
3 eine Abbildung einer Seitenmodus-Flash-Speicher-Architektur
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung zeigt.
-
4 ein Zeitablaufdiagramm
zeigt, das eine Folge von mit Hilfe der Speicher-Architektur gemäß 3 ausgeführten Leseoperationen veranschaulicht.
-
5 ein Blockschaltbild eines
einen nicht-flüchtigen
Speicher enthaltenden Computersystems zeigt, wobei der nicht-flüchtige Speicher
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung ausgebildet ist.
-
Es
werden Verfahren und Einrichtungen zum Ausgeben von Daten aus einer
nicht-flüchtigen
Speichereinrichtung beschrieben. Obwohl die detaillierte Beschreibung
Ausführungsbeispiele
anhand eines Flash-EPROMs beschreibt, kann die Erfindung in jedem
beliebigen nicht-flüchtigen
Halbleiterspeicher eingesetzt werden, einschließlich EPROMs, EEPROMs und Flash-Speicher und solcher
Technologien wie NOR, NAND, AND, Divided Bit-Line NOR (DINOR) und
ferro-elektrischer Speicher mit wahlfreiem Zugriff (FRAM), ist jedoch
nicht auf diese beschränkt.
-
Eine
nicht-flüchtige
Speichereinrichtung gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung enthält
ein nichtflüchtiges
Speicher-Array, eine Leseverstärkerschaltung,
einen Multiplexer, einen Datenselektor, eine Reihenfolge-Steuereinrichtung
bzw. einen Sequenzcontroller, ein Latch, einen Ausgabepuffer, einen
Adreßeingang
und einen Takteingang. Über
den Adreßeingang
wird eine eine Mehrzahl von in dem nicht-flüchtigen Speicher-Array gespeicherten
Datenwerten anzeigende Adresse empfangen. Die angezeigte Mehrzahl
von Datenwerten wird von der Leseverstärkerschaltung verstärkt und
in den Multiplexer eingegeben. Der Daten selektor überführt ein
Multiplexerauswahlsignal in eine Reihe von Auswahlzuständen, wobei
jeder Auswahlzustand bei der abfallenden Flanke eines am Takteingang
empfangenen Taktsignals begonnen wird. Die Sequenz der Auswahlzustände wird
von dem Sequenzcontroller festgelegt. Als Antwort auf jeden Auswahlzustand
der Sequenz der Auswahlzustände gibt
der Multiplexer einen entsprechenden Datenwert aus der Mehrzahl
von Datenwerten aus. Bei jeder ansteigenden Flanke des Taktsignals,
welche einem Übergang
zu einem neuen Auswahlzustand folgt, wird der von dem Multiplexer
ausgegebene Datenwert in einem Ausgabelatch Latch-gespeichert. Der in
dem Ausgabelatch Latch-gespeicherte Datenwert wird an den Ausgabepuffer
angelegt, welcher den Datenwert auf einen Datenbus treibt. Da es
das Ausgabelatch dem Datenselektor ermöglicht, das Multiplexerauswahlsignal
zum Auswählen
des nächsten Ausgangsdatenwertes
zu überführen, ohne
den aktuellen Ausgangsdatenwert zu beeinträchtigen, und aufgrund der kurzen
Einschwingzeit des vom Datenselektor erzeugten Multiplexerauswahlsignals
ermöglicht
es die vorliegende Erfindung, daß eine Sequenz von Datenwerten
aus der nicht-flüchtigen Speichereinrichtung
ausgegeben wird, ohne daß zwischendurch
Wartezustände
benötigt
werden.
-
3 zeigt eine Abbildung einer
Synchron-Seitenmodus-Flash-Speichereinrichtung 55, welche
ein Ausführungsbeispiel
der vorliegenden Erfindung implementiert. Die Flash-Speichereinrichtung 55 enthält ein Flash-Speicher-Array 5,
eine Leseverstärkerschaltung 7,
einen Multiplexer 9 und einen Ausgabepuffer 11,
die jeweils die im Zusammenhang mit 1 weiter
oben beschriebene Funktion haben. Die Flash-Speicher-Einrichtung 55 enthält ferner
einen Datenselektor 41, ein Latch 43 und einen
Sequenzcontroller 45. Die Flash-Speichereinrichtung 55 empfängt wenigstens
drei extern erzeugte Signale: Ein durch die einzelnen Adreßbits A0-X definiertes Adreßsignal, ein Ausgabe-Freigabe-Signal OE#
und ein Master-Taktsignal
CLK.
-
Der
Datenselektor 41 dient als interner Adreßgenerator,
der dem Multiplexer 9 eine Sequenz von Wortauswahladressen
zur Verfügung
stellt. Jede Wortauswahladresse ist ein Multiplexerauswahlsignal,
welches aus einer zum Auswählen
eines beliebigen Wortes einer am Eingang des Multiplexers 9 anhängigen Speicherseite
ausreichend großen
Anzahl von Bits besteht. Der Zustand der einzelnen Bits des Multiplexerauswahlsignals
zu einer vorgegebenen Zeit wird als "Auswahlzustand" bezeichnet.
-
Der
Datenselektor 41 empfängt
das Master-Taktsignal CLK über
einen Inverter 47 und legt jede Wortauswahladresse der
Sequenz von Wortauswahladressen als Antwort auf einen entsprechenden Übergang
des Master-Taktsignals CLK an. Da der Signalpfad 48 zwischen
dem Datenselektor 41 und dem Multiplexer 9 kurz
ist, ist die Kapazität
des Signalpfades minimal. Infolgedessen ist die für jede von
dem Datenselektor 41 angelegte Wortauswahladresse benötigte Einschwingzeit
wesentlich kürzer als
die Einschwingzeit für
die niederwertigen Adreßbits
A0-1, auf die sich die bekannten Einrichtungen stützen.
-
Die
Aufgabe des Inverters 47, der als Teil des Datenselektors 41 betrachtet
werden kann, besteht darin, den Datenselektor 41 dazu zu
veranlassen, bei jeder abfallenden Flanke des Master-Taktsignals CLK
nach dem Gültigwerden
einer Anfangswortadresse eine neue Wortauswahladresse anzulegen. Durch
Takten des Datenselektors auf der abfallenden Flanke de Master-Taktsignals
CLK wird der Zeitpunkt, zu dem jede von dem Datenselektor 41 erzeugte
Wortauswahladresse gültig
wird, um einen halben Zyklus des Master-Taktsignals CLK vorverlegt.
Wie im folgenden unter Bezugnahme auf 4 beschrieben
wird, ermöglicht
es die Kombination aus dem um einen halben Taktzyklus früheren Anlegen der
Wortauswahladresse und der kürzeren
Einschwingzeit der Wortauswahladresse, eine neue gültige Wortauswahladresse
in aufeinanderfolgenden Taktzyklen des Master-Taktsignals CLK vorzulegen. Ein
Prozessor kann die Sequenz von von der Sequenz von Wortauswahladressen
ausgewählten Wörtern dann
ohne dazwischenliegende Wartezustände lesen.
-
Eine
Folge des Taktens des Datenselektors 41 auf der abfallenden
Flanke des Master-Taktsignals CLK besteht darin, daß der Multiplexer
durch das frühere
Anlegen jeder Wortauswahladresse das neu ausgewählte Wort ausgeben kann, bevor
das zuvor ausgegebene Wort von dem Prozessor gelesen wurde. Diese
Folge wird bei einem Ausführungsbeispiel
der vorliegenden Erfindung durch ein Latch 43 vermieden,
welches eine Störung
der ausgegebenen Daten vermeidet, während sie vom Prozessor gelesen
werden. Das Latch 43 ist zwischen dem Multiplexer 9 und
dem Ausgabepuffer 11 angeordnet und empfängt das
Master-Taktsignal CLK. Das Latch 43 latch-speichert jedes
vom Multiplexer 9 ausgegebene Datenwort auf einer entsprechenden
ansteigenden Flanke des Master-Taktsignals CLK; einen halben Zyklus
des Master-Taktsignals CLK nach dem Auswählen des Wortes durch den Datenselektor 41. Das
Ausgangssignal des Latch 43 wird an den Eingang des Puffers 11 angelegt,
welcher die Latch-gespeicherten Daten dann auf den Datenbus treibt.
Auf diese Weise bleibt der vom Latch 43 und somit vom Ausgabepuffer 11 angelegte
Wert wenigstens bis zur nächsten
ansteigenden Flanke des Master-Taktsignals CLK unverändert, selbst
wenn sich das Ausgangssignal des Multiplexers 9 verändert, bevor
der zuvor ausgegebene Datenwert von dem Prozessor gelesen wurde.
-
Es
ist klar, daß die
Verwendung des Datenselektors 41 zum Erzeugen einer Sequenz
von Wortauswahladressen, ohne den Empfang der entsprechenden Sequenz
von Prozessor-angelegten Adressen abzuwarten, das Voraussagen der
Sequenz der Prozessorangelegten Adressen erfordert. Ferner würde es den
Markt für
die Einrichtung beträchtlich eingrenzen,
wenn die Flash-Speichereinrichtung 55 so
konzipiert würde,
daß sie
eine bestimmte Sequenz von Wortauswahladressen vorhersagt, da verschiedene
Prozessoren auf den Speicher gemäß unterschiedlichen
Datensortierschemen zugreifen. Bei einem Ausführungs beispiel der vorliegenden
Erfindung ist der Sequenzcontroller 45 zu diesem Zweck
vorgesehen.
-
Im
allgemeinen liest ein vorgegebener Prozessor eine Datenseite gemäß einer
als Blockreihenfolge bzw. "Burst"-Reihenfolge bekannten vorgegebenen Sequenz.
Beispielsweise lesen die von der IntelTM Corporation
hergestellten Prozessoren die Wörter
einer Vier-Wort-Seite üblicherweise
gemäß der Sequenz
1-0-3-2, die als "Intel-Burst-Reihenfolge" bekannt ist. Jede
Zahl in der Sequenz stellt den Offset des Wortes innerhalb der Seite
dar. Andere Prozessoren lesen Wörter
einer Vier-Wort-Seite gemäß der Sequenz
1-2-3-0, die als "lineare
Burst-Reihenfolge" bekannt
ist. Bei einem Ausführungsbeispiel
der vorliegenden Erfindung ist der Sequenzcontroller 45 vorgesehen,
um ein oder mehrere Steuersignale 46 an den Datenselektor 41 anzulegen,
das oder die anzeigen, daß der
Datenselektor 41 Wortauswahladressen gemäß einer
von einer Mehrzahl von vorgegebenen Sequenzen erzeugen soll. Beispielsweise
kann bzw. können
das eine oder die mehreren Steuersignale 46 in einem Zustand
die Intel-Burst-Reihenfolge anzeigen und in einem anderen Zustand
kann bzw. können
das eine oder die mehreren Steuersignale 46 die lineare
Burst-Reihenfolge anzeigen, usw. Der Zustand des einen oder der mehreren
von dem Sequenzcontroller 45 angelegten Steuersignale 46 kann
während
der Herstellung des Bauelementes festverdrahtet worden sein oder
alternativ kann eine Programmschnittstelle, beispielsweise ein Steuerregister,
in der Flash-Speichereinrichtung vorgesehen sein, damit der Zustand
des einen oder der Mehrzahl der von dem Sequenzcontroller 45 angelegten
Steuersignale 46 von einem programmgesteuerten Prozessor
eingestellt werden kann.
-
Zusätzlich zum
Empfang des Master-Taktsignals CLK und des einen oder der Mehrzahl
der von dem Sequenzcontroller 45 ausgegebenen Steuersignale 46 empfängt der
Datenselektor 41 die niederwertigen Bits der vom Prozessor
angelegten Adresse A0-1. Bei einem Ausführungsbeispiel
der vorliegenden Erfindung erzeugt der Datenselektor 41 die
erste Wortauswahl adresse der Sequenz von Wortauswahladressen auf
der Basis des Zustands der niederwertigen Adreßbits A0-1.
Wenn die von den niederwertigen Adreßbits A0-1 angegebene
Anfangswortauswahladresse nicht die gleiche wie das Anfangswort
in der angegebenen Burst-Reihenfolge ist, dann erzeugt der Datenselektor 41 die
Sequenz der Wortauswahladressen gemäß der vom Sequenzcontroller 45 angegebene
Burst-Reihenfolge, jedoch beginnend mit dem von den niederwertigen
Adreßbits
A0-1 angegebenen Wortoffset. Nachdem die
letzte Wortauswahladresse in der Burst-Reihenfolge angelegt wurde, wird
die nächste
Wortauswahladresse an den Beginn der Burst-Reihenfolge gepackt.
Wenn der Sequenzcontroller beispielsweise angibt, daß der Burst-Reihenfolge
1-0-3-2 zu folgen ist, die von den niederwertigen Adreßbits A0-1 angegebene Anfangswortauswahladresse
jedoch 0 ist, dann wäre
die von dem Datenselektor 41 angelegte Sequenz der Wortauswahladressen
0-3-2-1.
-
Im
Hinblick auf die Burst-Reihenfolge-Sequenz kann der Datenselektor 41 während der
Herstellung fest verdrahtet werden, damit er die niederwertigen
Adreßbits
A0-1 entweder ignoriert, oder die niederwertigen
Adreßbits
A0-1 zum Festlegen einer Anfangswortauswahladresse
innerhalb einer Burst-Sequenz
verwendet. Alternativ kann der Sequenzcontroller 45 eine
Programmschnittstelle enthalten, welche es einem programmierten
Prozessor ermöglicht,
den Betriebsmodus des Datenselektors 41 derart einzustellen,
daß er
auf die niederwertigen Adreßbits
beim Festlegen der Anfangswortauswahladresse einer Burst-Sequenz
entweder Bezug nimmt oder diese ignoriert. Der programmierte Betriebsmodus
könnte
dem Datenselektor 41 dann durch den Zustand eines oder
mehrerer zusätzlicher
Bits in dem einen oder den mehreren Steuersignalen 46 mitgeteilt
werden.
-
Bei
einem anderen Ausführungsbeispiel
der vorliegenden Erfindung enthält
der Sequenzselektor 45 eine Programmschnittstelle, welche
es der Flash-Speichereinrichtung 55 ermöglicht, in einem asynchronen
Modus betrieben zu werden.
-
Wenn
die Flash-Speichereinrichtung 55 für den Betrieb im asynchronen
Modus konfiguriert ist, wird der Datenselektor 41 in einen
Weiterleitungsmodus versetzt, so daß die niederwertigen Adreßbits A0-1 direkt an den Multiplexer 9 weitergeleitet
werden, um dessen Ausgangssignal auszuwählen. Auch das Latch 43 wird
in einen transparenten Zustand versetzt, so daß das Ausgangssignal des Multiplexers 9 direkt
an den Puffer 11 weitergeleitet wird. Auf diese Weise kann
ein programmierter Prozessor die Flash-Speichereinrichtung derart
konfigurieren, daß sie
im synchronen Modus oder im asynchronen Modus arbeitet, indem ein
Steuerwert an den Sequenzselektor 4S geschrieben wird,
welcher als Antwort die Signale anlegt, die zum Steuern der Operation
des Latch 43 und des Datenselektors 41 benötigt werden. Der
Sequenzcontroller 45 kann im synchronen Betriebsmodus dem
Datenselektor 41 signalisieren, aufeinanderfolgende Wortauswahladressen
gemäß einer
von einer Mehrzahl von vorgegebenen Wortauswahlsequenzen anzulegen,
wobei die von den niederwertigen Adreßbits einer vom Prozessor angelegten
Adresse angezeigte Anfangswortauswahladresse entweder verwendet
oder ignoriert wird.
-
4 zeigt ein Zeitablaufdiagramm 75 einer Sequenz
von Leseoperationen, die an der synchronen Seitenmodus-Flash-Speichereinrichtung
der 3 ausgeführt werden.
Die in der Diagramm 75 dargestellten Signale sind in zwei
Gruppen unterteilt: Eine Gruppe von Systemsignalen 51 und
eine Gruppe von Speichersignalen 63. Die Gruppe von Systemsignalen 51 enthält Signale,
die in der Flash-Speichereinrichtung empfangen werden, jedoch von
einer oder mehreren in Bezug auf die Flash-Speichereinrichtung externen
Einrichtungen erzeugt werden. Zu der Gruppe der Systemsignale 51 gehört das Master-Taktsignal
CLK, die Seitenadresse A2-X, die Wortauswahladresse
A0-1, das Chip-Freigabe-Signal CE# und das
Ausgabe-Freigabe-Signal OE#. Jedes dieser Signale hat die oben unter
Bezugnahme auf 2 beschriebene
Aufgabe. Zu der Gruppe der Speichersignale 63 gehören die
von den Komponenten der Flash-Speichereinrichtung selbst erzeugten Signale, nämlich die
interne Adresse IA0-1, die Multiplexer-Ausgangssignale
IQ0-15, die Latch-Ausgangssignale LQ0-15 und die Daten-Ausgangssignale DQ0-15. Mit der ansteigenden Flanke des Master-Taktsignals CLK
zusammenfallende Gitterlinien sind gezeigt, um die entsprechenden
Zyklusperioden des Master-Taktsignals
CLK darzustellen.
-
Während einer
ersten Zyklusperiode Ta des Master-Taktsignals
CLK legt ein Prozessor an die Flash-Speichereinrichtung eine Adresse
an. Diese erste Adresse ist in 4 als
Adr.0 bezeichnet und enthält
die Seitenadresse A2-X und die Wortauswahladresse
A0-1. Wie oben unter Bezugnahme auf 2 beschrieben wurde, wird
eine Einschwingzeit benötigt,
bevor die Seitenadresse A2-X und die Wortauswahladresse
A0-1 gültig
sind. Sobald die Seitenadresse A2-X gültig wird,
legt eine außerhalb
der Flash-Speichereinrichtung angeordnete Adreßdekodierlogik das Chip-Freigabe-Signal
CE# an, um die Seitenadresse A2-X in der
Flash-Speichereinrichtung freizugeben. Wie der Pfeil 24 anzeigt,
tritt eine Ausbreitungsverzögerung
auf, bevor das Chip-Freigabe-Signal CE# auf ein aktives niedriges
Potential übergeht.
Das Ausgabe-Freigabe-Signal OE# geht zu einem Zeitpunkt vor dem
Gültigwerden
des adressierten Datenwertes DQ0 auf ein aktives niedriges Potential über, um
die Ausgabe von DQ0 auf einem Datenbus zu ermöglichen. Sowohl das Chip-Freigabe-Signal
CE# als auch das Ausgabe-Freigabe-Signal OE# bleiben aktiv, bis
die Seitenadresse A2-X geändert wird.
-
Bis
zu diesem Punkt entsprechen die im Zeitablaufdiagramm 75 der 4 beschriebenen Ereignisse
denjenigen, die unter Bezugnahme auf das Zeitablaufdiagramm 35 der 2 beschrieben wurden. Jedoch
erzeugt ein unter Bezugnahme auf 3 beschriebener
Datenselektor als Antwort auf die abfallende Flanke des Master-Taktsignals
während
der Zyklusperiode Ta eine interne Wortauswahladresse
Int.Adr.0. Dies ist im Diagramm 75 durch den Pfeil 53 dargestellt.
Wie zuvor festgestellt, kann diese interne Anfangswortauswahladresse
je nach Konfiguration der Flash-Speichereinrichtung auf dem Zustand
der vom Prozessor angelegten Wortauswahladresse A0-1 basieren
oder auch nicht.
-
Da
der erste Zugriff nach dem Anlegen einer neuen Seitenadresse A2-X die volle Zugriffszeit des Flash-Speicher-Array benötigt, vergeht
eine Anzahl von Taktzyklen Tw1, Tw2, Tw3, bevor die
adressierte Seite am Eingang des Multiplexers anhängig ist. Dann,
kurz bevor das Master-Taktsignal CLK in den Taktzyklus Tw4 übergeht,
wird das von der internen Wortauswahladresse Int.Adr.0 ausgewählte Wort
IQ0 vom Multiplexer ausgegeben. Der Pfeil 55 zeigt die Verzögerung zwischen
dem Anlegen des Chip-Freigabe-Signals CE# und dem Zeitpunkt, zu
dem das Anfangsmultiplexerausgangswort IQ0 gültig wird.
-
Bei
der ansteigenden Flanke des Zyklus Tw4 des
Master-Taktsignals
CLK wird das Wort IQ0 von einem unter Bezugnahme auf 3 beschriebenen Latch Latch-gespeichert.
Wie der Pfeil 57 anzeigt, gibt es eine Ausbreitungsverzögerung zwischen
der ansteigenden Flanke des Zyklus Tw4 und
dem Zeitpunkt, zu dem das Latch-gespeicherte Wort LQ0 gültig wird.
Das Latch-gespeicherte Wort LQ0 wird an einen Ausgabepuffer angelegt,
welcher DQ0 auf einen Systemdatenbus treibt. Der Pfeil 58 zeigt
die Ausbreitungsverzögerung
an, die zur Ausgabe von DQ0 benötigt
wird. Somit wird DQ0 für
den Prozessor während
des Taktzyklus Td0 des Master-Taktsignals
CLK verfügbar,
nachdem die Taktzyklen Tw1, Tw2,
Tw3 und Tw4 abgeschlossen
wurden.
-
Wie
der Pfeil 59 anzeigt, wird bei der abfallenden Flanke des
Taktzyklus Tw4, eine neue interne Wortauswahladresse
Int.Adr.1 erzeugt. Int.Adr.1 ermöglicht,
daß das
Wort IQ1 von dem Multiplexer kurze Zeit später ausgegeben wird, wie der
Pfeil 60 anzeigt. IQ1 wird bei der ansteigenden Flanke
von Td0 Latch-gespeichert, wie der Pfeil 64 anzeigt,
um das Latch-gespeicherte Ausgangssignal LQ1 zu liefern. LQ1 wiederum
wird verwendet, um DQ1 kurze Zeit später auf den Datenbus zu treiben,
wie der Pfeil 65 anzeigt. Durch Anlegen der internen Wortauswahladresse Int.Adr.1
als Antwort auf die abfallende Flanke des Taktzyklus Tw4,
in welchem das vorherige Datenwort LQ0 Latchgespeichert wurde, und
aufgrund der kurzen für
die interne Wortauswahladresse Int.Adr.1 benötigten Einschwingzeit, ist
es daher möglich,
eine neue gültige
Wortauswahladresse IQ1 während
des Taktzyklus Td1 anzulegen, der dem Taktzyklus
Tw4 unmittelbar folgt, in dem die vorherige
interne Adresse IQ0 angelegt wurde. Infolgedessen wird IQ1 rechtzeitig
für LQ1
gültig,
das bei der ansteigenden Flanke des Taktzyklus Td0 Latch-gespeichert werden
soll; einen Taktzyklus nach dem Latch-Speichern von LQ0. In ähnlicher
Weise wird DQ1 während
des Taktzyklus Td1 ausgegeben, einen Taktzyklus
nach der Ausgabe von DQ0.
-
Wie
der Pfeil 67 anzeigt, wird die interne Wortauswahladresse
Int.Adr.2 als Antwort auf die abfallende Flanke des Taktzyklus Td0 angelegt, einen Taktzyklus nach der Wortauswahladresse
Int.Adr.1. Wie bei dem früheren
Anlegen von Int.Adr.1 und wie die Pfeile 68, 69 und 70 zeigen,
ermöglicht
es das frühere
Anlegen von Int.Adr.2, daß IQ2,
LQ2 und DQ2 während
Zyklen des Master-Taktsignals angelegt werden, welche den entsprechenden
Zyklen des Master-Taktes unmittelbar folgen, in denen IQ1, LQ1 und
DQ1 angelegt wurden. Ebenso ermöglicht
es das Anlegen von Int.Adr.3 als Antwort auf die abfallende Flanke
des Taktzyklus Td1, daß IQ3, LQ3 und DQ3 während Zyklen
des Master-Taktsignals angelegt werden, die den entsprechenden Zyklen
des Master-Taktes unmittelbar folgen, in denen IQ2, LQ2 und DQ2
angelegt wurden. Die Pfeile 71, 72, 73 und 74 zeigen
die Zeitpunkte an, zu denen Int.Adr.3, IQ3, LQ3 bzw. DQ3 angelegt
werden.
-
Es
wird weiterhin auf 4 Bezug
genommen. Es ist klar, daß die
interne Wortauswahladresse, das Multiplexer-Ausgangssignal, das Latch-Ausgangssignal
und das Puffer-Ausgangssignal in einer zeitverschachtelten Weise
angelegt werden, wobei die Latenzzeit zwischen dem Anlegen einer
internen Adresse und des zugehörigen
Pufferausgangssignals größer als
ein Zyklus des Master-Taktsignals CLK ist. Infolgedessen legt der
Multiplexer beispielsweise bereits das nachfolgende ausgewählte Wort IQ1
an, während
das Pufferausgangssignal DQ0 auf einen Datenbus getrieben wird.
Somit kann IQ1 bis an den Ausgang der Einrichtung übertragen
werden, bevor DQ0 gelesen wird, wodurch der Ausgang der Einrichtung
unstabil wird. Dadurch jedoch, daß IQ0 in einem Ausgabe-Latch
bei der ansteigenden Flanke des Taktzyklus Td0 Latch-gespeichert
wird, wird DQ0 angelegt und bleibt für einen ganzen Taktzyklus ungestört.
-
Es
wird nun auf das vom Prozessor angelegte Wortauswahlsignal A0-1 Bezug genommen, wobei die Adresse Adr.1
von dem Prozessor in dem Taktzyklus Td1 angelegt
wird, welcher dem Taktzyklus Td0 unmittelbar
folgt, indem DQ0 gelesen wurde. Trotz der Tatsache, daß die Adresse
Adr.1 am Ende des Taktzyklus Td1 noch nicht
abgeschlossen sein kann, ist der Prozessor noch in der Lage, das
adressierte Wort aufgrund der früheren
internen Adreßerzeugung
der synchronen Seitenmodus-Flash-Speichereinrichtung
zu lesen. In ähnlicher
Weise können
die vom Prozessor angelegten Wortauswahladressen Adr.2 und Adr.3
bis zum Ende der Taktzyklen Td2 bzw. Td3 nicht abgeschlossen sein, jedoch hindert
dies den Prozessor nicht daran, DQ2 und DQ3 in diesen Taktzyklen
zu lesen. Somit kann der Prozessor, nachdem eine Anzahl von Wartezuständen bis
zur Verfügbarkeit
des Anfangswortes DQ0 abgewartet wurde, die Worte DQ1, DQ2 und DQ3
in aufeinanderfolgenden Zyklen des Master-Taktsignals CLK lesen,
wodurch die in bekannten Einrichtungen benötigten Wartezustände beseitigt
werden.
-
5 zeigt ein Blockschaltbild
einer Anordnung 85, mit der oben beschriebenen synchronen, nicht-flüchtigen
Seitenmodus-Speichereinrichtung 55, einem Prozessor 91 und
einer I/O-Einrichtung 97, die jeweils mit einem Bus 87 gekoppelt
sind. Die Anordnung 85 kann ein Computersystem, eine Kamera, ein
Telefon, ein Datenaufzeichnungsinstrument oder eine andere Einrichtung
sein, in der ein für
einen Prozessor zugreifbarer nicht-flüchtiger Speicher benötigt wird.
In dem Fall eines Computersystems kann der Prozessor 91 ein
Mikro prozessor sein und die I/O-Einrichtung 97 kann eine
Tastatur, eine Maus oder eine andere Cursorsteuereinrichtung, eine
Massenspeichereinrichtung, einen Kernspeicher und eine Anzeige aufweisen.
Im Fall eines Telefons kann der Prozessor 91 ein Mikrocontroller
sein und die I/O-Einrichtung 97 ein Tastenfeld, einen Lautsprecher,
ein Mikrofon und eine Signalerzeugungs- und -empfangsschaltung aufweisen.
Andere Einrichtungen können
in ähnlicher
Weise zusätzliche
mit dem Bus 87 gekoppelte Komponenten aufweisen.
-
Wie
in 5 gezeigt ist, enthält der Bus 87 einen
Adreßbus 88,
einen Datenbus 89 und einen Steuerbus 90. Bei
einem Ausführungsbeispiel
der vorliegenden Erfindung enthält
der Steuerbus 90 einen Leiter für den Empfang eines vom Prozessor 91 angelegten
Master-Taktsignals. Der synchrone, nicht-flüchtige Seitenmodus-Speicher 55 kann
von diesem Taktsignal gesteuert werden. Außerdem kann ein Speichercontroller
mit einer Adreßdekodierlogik
und einer Logik zum Anlegen eines Ausgabe-Freigabe-Signals und eines
Chip-Freigabe-Signals an den nicht-flüchtigen Speicher 55 vorgesehen sein,
obwohl der nicht-flüchtige
Speicher 55 in der Darstellung direkt mit dem Bus 87 verbunden
ist.
-
In
der vorangegangenen Beschreibung wurde die Erfindung unter Bezugnahme
auf spezielle Ausführungsbeispiele
beschrieben. Es sollte jedoch klar sein, daß verschiedene Modifikationen
und Änderungen
vorgenommen werden können,
ohne den breiteren Erfindungsgedanken und Schutzbereich der Erfindung
zu verlassen, wie er in den beigefügten Ansprüchen angegeben ist. Die Beschreibung
und die Zeichnungen sind entsprechend als Veranschaulichung und
nicht als Einschränkung
zu verstehen.