-
Technisches Gebiet der Erfindung
-
Die
vorliegende Erfindung bezieht sich allgemein auf nicht flüchtige Speichervorrichtungen
und insbesondere bezieht sich die vorliegende Erfindung auf einen
synchronen nicht-flüchtigen
Flashspeicher.
-
Hintergrund der Erfindung
-
Typischerweise
werden Speichervorrichtungen als interne Speicherbereiche im Computer
bereit gestellt. Der Begriff Speicher bezieht sich dabei auf Datenspeicher,
der in Form von integrierten Schaltkreischips vorliegt. Es gibt
mehrere verschiedene Arten von Speicher. Eine Art ist RAM (random-access
memory, Direktzugriffspeicher). Dieser wird typischerweise als Hauptspeicher
in einer Computerumgebung verwendet. RAM bezieht sich auf Lese-
und Schreibspeicher; das bedeutet, dass man sowohl Daten in das
RAM schreiben als auch Daten aus dem RAM auslesen kann. Dies ist
anders als beim ROM, das nur Datenlesen gestattet. Das meiste RAM
ist flüchtig,
was bedeutet, dass ein steter Fluss von Elektrizität benötigt wird,
um seine Inhalte zu erhalten. Sobald der Strom abgeschaltet wird,
gehen jegliche Daten im RAM verloren.
-
Computer
enthalten fast immer einen kleinen Bereich von Festwertspeicher
(read-only memory, ROM),
welcher Instruktionen zum Starten des Computers enthält. Anders
als bei RAM kann in ROM nicht geschrieben werden. Ein EEPROM (electrically
erasable programmable read-only memory, elektrisch löschbarer programmierbarer
Festwertspeicher) ist eine spezielle Art nicht-flüchtigen
ROMs, der gelöscht
werden kann, indem er einer elektrischen Ladung ausgesetzt wird.
Wie andere Arten von ROM ist EEPROM traditionell nicht so schnell
wie RAM. EEPROM umfasst eine große Zahl von Speicherzellen,
die elektrisch isolierte Steueranschlüsse (schwebende Steueranschlüsse) aufweisen.
Daten werden in den Speicherzellen in Form von Ladung auf den schwebenden
Steueranschlüssen gespeichert.
Die Ladung wird durch Programmierungs- bzw. Löschvorgänge zu den schwebenden Gates
transportiert oder davon entfernt.
-
Noch
eine andere Art nicht-flüchtigen
Speichers ist Flashspeicher. Ein Flashspeicher ist eine Art von EEPROM,
das blockweise gelöscht
und reprogrammiert werden kann anstelle von jeweils einem Byte.
Viele moderne PCs weisen ihr BIOS in einem Flashspeicherchip gespeichert
auf, so dass es bedarfsweise leicht aktualisiert werden kann. Solch
ein BIOS wird manchmal ein Flash-BIOS genannt. Flashspeicher ist
auch bei Modems populär,
da es dem Modemhersteller gestattet, neue Protokolle zu unterstützen, wenn
sie standardisiert werden.
-
Ein
typischer Flashspeicher umfasst ein Speicherfeld, das eine große Zahl
von Speicherzellen enthält, die
in Zeilen- und Spaltenmanier angeordnet sind. Jede der Speicherzellen
enthält
einen schwebenden Gatterfeldeffekttransistor, der zur Aufnahme einer
Ladung in der Lage ist. Die Zellen sind üblicherweise in Blöcken gruppiert.
Jede der Zellen innerhalb eines Blocks kann in beliebiger Weise
durch Laden des schwebenden Gatters elektrisch programmiert werden.
Die Ladung kann aus dem schwebenden Gatter durch eine Blocklöschoperation
entfernt werden. Das Datum in einer Zelle wird durch die Anwesenheit
oder Abwesenheit der Ladung im schwebenden Gatter bestimmt.
-
Ein
synchrones DRAM (SDRAM) ist eine Art von DRAM, das bei viel höheren Taktgeschwindigkeiten betrieben
werden kann als konventioneller DRAM-Speicher. SDRAM synchronisiert
sich selbst mit einem CPU-Bus und ist in der Lage, bei 100 MHz zu
laufen, ungefähr
dreimal schneller als konventionelles FPM (Fast Page Mode) RAM und
ungefähr
zweimal so schnell wie EDO (Extended Data Output) DRAM und BEDO
(Burst Extended Data Output) DRAM. Auf SDRAMs kann schnell zugegriffen
werden, sie sind jedoch flüchtig.
Viele Computersysteme sind darauf ausgelegt, im Betrieb SDRAM zu
verwenden, würden
jedoch von nichtflüchtigem
Speicher profitieren.
-
Aus
den oben genannten Gründen
und aus anderen, unten genannten Gründen, die dem Fachmann beim
Lesen und Verstehen der vorliegenden Beschreibung ersichtlich werden,
gibt es im Stand der Technik einen Bedarf nach einer nicht flüchtigen
Speichervorrichtung, die in einer ähnlichen Weise arbeiten kann
wie der SDRAM-Betrieb. Insbesondere gibt es einen Bedarf für synchronen,
nichtflüchtigen
Speicher, der simultane Lese- und Schreibzugriffe gestattet.
-
Aus
der
US 6,026,465 A ist
ein Flashspeicherchip bekannt, der in vier unterschiedlichen Lesemodi
betrieben werden kann, unter anderem einem asynchronen Flashmodus,
einem synchronen Flashmodus, einem asynchronen DRAM-Modus und einem
SDRAM-Modus. Diese Flashspeichervorrichtung weist ein Modusregister
auf, mit dem die vier verschiedenen Lesemodi eingestellt werden
können.
-
Es
ist folglich die Aufgabe der Erfindung, eine nichtflüchtige Speichervorrichtung
bereitzustellen, die in einem dem SDRAM-Betrieb ähnlichen Weise betrieben werden
kann und die simultane Lese- und Schreibzugriffe gestattet.
-
Zusammenfassung der Erfindung
-
Die
oben erwähnten
Probleme bei Speichervorrichtungen und andere Probleme werden durch
die vorliegende Erfindung adressiert und werden durch Lesen und
Studieren der folgenden Beschreibung verstanden werden.
-
In
einer Ausführungsform
stellt die vorliegende Erfindung einen nichtflüchtigen synchronen Flashspeicher
bereit, der mit existierenden SDRAM Gehäuse-Stiftzuweisungen kompatibel
ist. Es ist beim Lesen der detaillierten Beschreibung ersichtlich,
dass Systemdesigner mit Kenntnissen in SDRAM-Anwendungen die vorliegende
Erfindung leicht zur Verbesserung des Systembetriebs implementieren
könnten.
-
In
einer Ausführungsform
umfasst eine synchrone Flashspeichervorrichtung ein Feld nichtflüchtiger Speicherzellen
und ein Befehlsregister zum Speichern von zur Steuerung von Flashspeichervorgängen verwendeten
Befehlsdaten. Das Befehlsregister kann unter Verwendung eines Befehlsregisterladebetriebsmodus geladen
werden, der unter Verwendung einer vordefinierten Kombination eines
Spaltenadressabtastsignals (CAS#), eines Zeilenadressabtastsignals
(RAS#) und eines Schreibfreigabesignals (WE#) initiiert wird.
-
In
einer anderen Ausführungsform
umfasst eine synchrone Flashspeichervorrichtung ein Feld nichtflüchtiger
Speicherzellen und ein Befehlsregister zum Speichern von zur Steuerung
von Flashspeichervorgängen
verwendeten Befehlsdaten. Das Befehlsregister ist gekoppelt zum
Empfangen der Befehlsdaten in Reaktion auf einen Ladebefehl, der
zu einem Auffrisch-Befehl
mit einem synchronen Direktzugriffsspeicher (SDRAM) äquivalent
ist.
-
Ein
Verfahren zum Bereitstellen von Befehlen in einem synchronen Flashspeicher
wird ebenfalls bereitgestellt. Das Verfahren umfasst Initiieren
eines Befehlsregisterladevorgangs unter Verwendung einer vordefinierten
Kombination eines Spaltenadressabtastsignals (CAS#), eines Zeilenadressabtastsignals
(RAS#) und eines Schreibfreigabesignals (WE#) und Laden von Befehlsdaten
in das Befehlsregister unter Verwendung von Adressverbindungen des
synchronen Flashspeichers in Reaktion auf den Befehlsregisterladevorgang.
-
Kurze Beschreibung der Zeichnungen
-
1A ist
ein Blockdiagramm eines synchronen Flashspeichers der vorliegenden
Erfindung;
-
1B ist
ein integriertes Schaltkreisstiftanschlussdiagramm einer Ausführungsform
der vorliegenden Erfindung;
-
1C ist
ein integriertes Schaltkreisverbindungsbumprasterdiagramm einer
Ausführungsform
der vorliegenden Erfindung;
-
2 illustriert
ein Modusregister einer Ausführungsform
der vorliegenden Erfindung;
-
3 illustriert
Schreibvorgänge
mit einer CAS-Latenz von ein, zwei und drei Taktzyklen;
-
4 illustriert
das Aktivieren einer spezifischen Zeile in einer Bank des Speichers
einer Ausführungsform
der vorliegenden Erfindung;
-
5 illustriert
den Zeitablauf zwischen einem Aktivkommando und einem Lese- oder
Schreibkommando;
-
6 illustriert
ein Lesekommando;
-
7 illustriert
den Zeitablauf für
aufeinanderfolgende Lesebursts (Lesefolgen) einer Ausführungsform
der vorliegenden Erfindung;
-
8 illustriert
wahlfreie Lesezugriffe innerhalb einer Seite einer Ausführungsform
der vorliegenden Erfindung;
-
9 illustriert
einen Lesevorgang, dem ein Schreibvorgang folgt;
-
10 illustriert
Leseburstbetrieb, der unter Verwendung eines Burstendkommandos gemäß einer Ausführungsform
der vorliegendenden Erfindung beendet wird;
-
11 illustriert
einen Schreibbefehl;
-
12 illustriert
ein Schreiben, dem ein Lesevorgang folgt;
-
13 illustriert
einen "Power-Down"-(Stromspar-)-Betrieb
einer Ausführungsform
der vorliegenden Erfindung;
-
14 illustriert
einen Taktaussetzvorgang während
eines Burstlesens;
-
15 illustriert
eine Speicheradressenkarte einer Ausführungsform des Speichers mit
zwei Urladesektoren;
-
16 ist
ein Flussdiagramm einer selbstgetimten Schreibabfolge gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
17 ist
ein Flussdiagramm einer kompletten Schreibstatusprüfabfolge
gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
18 ist
ein Flussdiagramm einer selbstgetimten Blocklöschabfolge gemäß einer
Ausführungsform der
vorliegenden Erfindung;
-
19 ist
ein Flussdiagramm einer vollständigen
Blocklöschstatusprüfabfolge
gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
20 ist
ein Flussdiagramm einer Blockschutzabfolge gemäß einer Ausführungsform
der vorliegenden Erfindung;
-
21 ist
ein Flussdiagramm einer vollständigen
Blockstatusprüfabfolge
gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
22 ist
ein Flussdiagramm einer Vorrichtungsschutzabfolge gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
23 ist
ein Flussdiagramm einer Blockschutzaufhebabfolge gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
24 illustriert
den Zeitablauf eines Initialisierungs- und Modusregisterladevorgangs;
-
25 illustriert
den Zeitablauf eines Taktanhaltmodusvorgangs;
-
26 illustriert
den Zeitablauf eines Burstlesevorgangs;
-
27 illustriert
den Zeitablauf von alternierenden Banklesezugriffen;
-
28 illustriert
den Zeitablauf eines Vollseitenburstlesevorgangs;
-
29 illustriert
den Zeitablauf eines Burstlesevorgangs unter Verwendung eines Datenmaskensignals;
-
30 illustriert
den Zeitablauf eines Schreibvorgangs, dem ein Lesen einer anderen
Bank folgt; und
-
31 illustriert
den Zeitablauf eines Schreibvorgangs, dem ein Lesen derselben Bank
folgt;
-
Detaillierte Beschreibung
der Erfindung
-
In
der folgenden detaillierten Beschreibung der vorliegenden Ausführungsformen
wird auf die beigefügten
Zeichnungen Bezug genommen, die hierzu gehören und in denen zur Illustration
spezifische Ausführungsformen
gezeigt werden, in denen die Erfindungen ausgeführt werden können. Diese
Ausführungsformen werden
hinreichend detailliert beschrieben, um dem Fachmann zu ermöglichen,
die Erfindung auszuführen, und
es versteht sich, dass andere Ausführungsformen verwendet werden
können
und dass logische, mechanische und elektrische Veränderungen
gemacht werden können,
ohne vom Geist und Umfang der vorliegenden Erfindung abzuweichen.
Die folgende detaillierte Beschreibung ist daher nicht in beschränkender
Weise aufzufassen, und der Schutzumfang der vorliegenden Erfindung
ist nur durch die Ansprüche
definiert.
-
Die
folgende detaillierte Beschreibung ist in zwei Hauptabschnitte geteilt.
Der erste Abschnitt ist eine Schnittstellenfunktionsbeschreibung,
welche die Kompatibilität
mit einem SDRAM-Speicher detailliert beschreibt. Der zweite Hauptabschnitt
ist eine funktionelle Beschreibung, die Flasharchitekturfunktionsbehle
spezifiziert.
-
Schnittstellenfunktionsbeschreibung
-
Unter
Bezugnahme auf 1A wird ein Blockdiagramm einer
Ausführungsform
der vorliegenden Erfindung beschrieben. Die Speichervorrichtung 100 enthält ein Feld
nicht-flüchtiger
Flashspeicherzellen 102. Dieses Feld ist in einer Mehrzahl
adressierbarer Bänke
angeordnet. In einer Ausführungsform
enthält
der Speicher vier Speicherbänke 104, 106, 108 und 110.
Jede Speicherbank enthält
adressierbare Sektoren von Speicherzellen. Auf die im Speicher gespeicherten
Daten kann unter Verwendung extern bereit gestellter Stellenadressen
zugegriffen werden, die vom Adressregister 112 empfangen
worden sind. Die Adressen werden unter Verwendung einer Zeilenadressmultiplexerschaltung 114 decodiert.
Die Adressen werden auch unter Verwendung einer Banksteuerlogik 116 und
ZeilenadressZwischenspeicher- und Decoderschaltung 118 decodiert.
Um auf eine geeignete Spalte des Speichers zuzugreifen, koppelt
die Spaltenadressenzähl-
und Zwischenspeicherschaltung 120 die empfangenen Adressen
an die Spaltendecodierschaltung 122. Schaltung 124 stellt
Eingabe-/Ausgabetorsteuerung, Datenmaskenlogik, LesedatenZwischenspeicherschaltung
und Schreibtreiberschaltung bereit. Daten werden durch die Dateneingangsregister 126 eingegeben
und durch die Datenausgangsregister 128 ausgegeben. Kommandoausführungslogik 130 wird
bereit gestellt, um die grundlegenden Vorgänge der Speichervorrichtung
zu steuern. Ein Zustandsautomat (ISM, internal status machine) 132 wird
auch bereit gestellt, um bestimmte Vorgänge zu steuern, die mit den
Speicherfeldern und -zellen durchgeführt werden. Ein Statusregister 134 und
ein Identifikationsregister 136 können ebenfalls bereit gestellt
werden, um Daten auszugeben.
-
1B illustriert
eine Verbindungsstiftzuordnung einer Ausführungsform der vorliegenden
Erfindung. Der Speicherbaustein 150 hat 54 Verbindungsstifte.
Die Stiftkonfiguration ist im wesentlichen ähnlich der erhältlicher
SDRAM-Gehäuse.
Zwei für
die vorliegende Erfindung spezifische Verbindungen sind RP# 152 und Vccp 154.
Obwohl die vorliegende Erfindung Verbindungsbezeichnungen mit ähnlich wirkenden
SDRAMs teilen kann, wird die Funktion der auf den Verbindungen bereit
gestellten Signale hierin beschrieben und sollte nicht mit denen
von SDRAMs gleichgesetzt werden, außer wenn es hier gesagt wird. 1C illustriert
eine Ausführungsform
eines Speichergehäuses 160,
das Bumpverbindungen anstelle von Stiftverbindungen von 1B aufweist.
Die vorliegende Erfindung ist daher nicht auf eine spezifische Gehäusekonfiguration
beschränkt.
-
Bevor
die Betriebsmerkmale der Speichervorrichtung beschrieben werden,
wird eine detailliertere Beschreibung der Verbindungsstifte und
ihrer jeweiligen Signale vorgenommen. Die Eingangstaktverbindung
wird verwendet, um ein Taktsignal (CLK) bereit zu stellen. Das Taktsignal
kann durch einen Systemtaktgeber angetrieben werden und alle synchronen
Flashspeichereingangssignale werden an der positiven Flanke von
CLK abgetastet. CLK inkrementiert auch einen internen Burstzähler und
steuert die Ausgaberegister.
-
Die
Eingangstaktfreigabeverbindung (CKE) wird verwendet, um die CLK-Signaleingabe zu
aktivieren (HIGH Status) und zu deaktivieren (LOW Status).
-
Deaktivieren
der Takteingabe führt
zum POWER-DOWN und STANDBY-Betrieb (bei dem alle Speicherbänke unbenutzt
sind), ACTIVE POWER-DOWN-(eine Speicherzeile ist in jeder Bank aktiv)
oder CLOCK SUSPEND-Betrieb (Burst/Zugriff findet statt). CKE ist
synchron, außer
nachdem die Vorrichtung in die POWER-DOWN Modi geht, wo CKE asynchron wird,
bis derselbe Modus verlassen wird. Die Eingangspuffer einschließlich CLK
werden während
der POWER-DOWN-Modi inaktiviert, um niedrige Bereitschaftsleistung bereit
zu stellen. CKE kann in Systemen auf HIGH gezogen werden, bei denen
POWER-DOWN-Modi (außer RP#-
tiefen Stromsparen) nicht benötigt
werden.
-
Die
Chipauswahleingabeverbindung (CS#) stellt ein Signal zum Freigeben
(registriertes LOW) und Sperren (registriertes HIGH) eines in der
Kommandoausführlogik
bereitgestellten Kommandodecoders bereit. Alle Kommandos sind maskiert,
wenn CS# als HIGH registriert ist. Weiterhin sorgt CS# für eine externe
Bankauswahl in Systemen mit Mehrfachbänken und CS# kann als Teil
des Kommandocodes angesehen werden, muss es jedoch nicht notwendigerweise
sein.
-
Die
Eingangskommandoeingabeverbindungen für RAS#, CAS# und WE# (zusammen
mit CS#) definieren einen Befehl, der vom Speicher ausgeführt werden
soll, wie im Detail unten beschrieben. Die Eingangs-/Ausgangsmaskenverbindungen
(DQM) werden verwendet, um Eingangsmaskensignale für Schreibzugriffe
und ein Ausgangsfreigabesignal für
Lesezugriffe bereit zu stellen. Eingabedaten werden maskiert, wenn DQM
während
eines Schreibzyklus als HIGH abgetastet wird. Die Ausgangsepuffer
werden in einem Hochimpedanz-(HIGH-Z)-Zustand (nach einer zweitaktigen
Latenz) gebracht, wenn DQM während
eines Lesezyklus als HIGH abgetastet wird. DQML entspricht den Datenverbindungen
DQ0–DQ7
und DQMH entspricht den Datenverbindungen DQ8–DQ15. DQML und DQMH werden
als im selben Zustand befindlich angesehen, wenn sie als DQM bezeichnet
werden.
-
Adresseingänge 133 werden
vorrangig verwendet, um Adresssignale bereit zu stellen. In der
illustrierten Ausführungsform
hat der Speicher 12 Leitungen (A0–A11). Wie unten beschrieben,
können
auf den Adressverbindungen andere Signale bereit gestellt werden.
Die Adresseingänge
werden dann während
eines ACTIVE-Befehls (Zeilenadresse A0–A11) und eines READ/WRITE-Befehls
(Spaltenadresse A0–A7)
abgetastet, um eine Stelle in einer jeweiligen Speicherbank auszuwählen. Die
Adresseingänge
werden auch verwendet, um einen Betriebscode (OpCode) während eines
LORD COMAND REGISTER-Vorgangs bereit zu stellen, wie unten erklärt wird.
Die Adressleitungen A0–A11
werden auch verwendet, um während
eines LORD MODE REGISTER-Vorgangs Moduseinstellungen einzugeben.
-
Eine
Eingangsrücksetz-/Stromspar-(RP#)-Verbindung 140 wird
für Rücksetz-
und Stromspar-Vorgänge
verwendet. Beim anfänglichen
Vorrichtungseinschalten wird eine 100μs-Verzögerung, nachdem RP# von LOW
nach HIGH gegangen ist, in einer Ausführungsform für die interne
Vorrichtungsinitialisierung benötigt,
bevor ein ausführbarer
Befehl erteilt wird. Das RP#-Signal setzt das Statusregister zurück, setzt
den interne Zustandsautomat (ISM) 132 auf einen Feldlesemodus
und bringt die Vorrichtung in einen tiefen Power-Down-Modus, wenn
es LOW ist. Während
des Ausschaltens sind alle Eingangsverbindungen einschließlich CS# 142 unbeachtlich
und alle Ausgänge
werden in einen HIGH-Z-Zustand gebracht. Wenn das RP#-Signal gleich einer VHH-Spannung
(5 V) ist, werden alle Schutzmodi während WRITE und ERASE ignoriert.
Das RP#-Signal gestattet es auch einem Vorrichtungsschutzbit, auf
1 (geschützt)
gesetzt zu werden und gestattet es Blockschutzbits eines 16-Bit-Registers,
an den Stellen 0 und 15 auf 0 (ungeschützt) gesetzt zu werden, wenn
es auf VHH gebracht wird. Die Schutzbits werden untenstehend detaillierter
beschrieben. RP# wird während
aller anderen Betriebsmodi auf HIGH gehalten.
-
Bankadresseneingangsverbindungen
BA0 und BA1 definieren, auf welche Bank ein ACTIVE-, READ-, WRITE-
oder BLOCK PROTECT-Befehl angewandt wird. Die DQ0–DQ15-Verbindungen 143 sind
Datenbusverbindungen, die für
bidirektionale Datenkommunikation verwendet werden. Unter Bezugnahme
auf 1B wird eine VCCQ-Verbindung verwendet, um den
DQ-Verbindungen einen isolierten Strom zur Verfügung zu steilen, um die Rauschimmunität zu verbessern.
In einer Ausführungsform
ist VCCQ = Vcc oder 1,8 V ± 0,15 V.
Die VSSQ-Verbindung wird verwendet, um die Erdung gegenüber den
DQs zu isolieren und die Rauschimmunität zu verbessern. Die VCC-Verbindung
stellt eine Stromversorgung, wie etwa 3 V, bereit. Eine Erdungsverbindung
wird durch die Vss-Verbindung bereit gestellt. Eine andere optionale
Spannung wird auf der VCCP-Verbindung 144 bereit gestellt.
Die VCCP-Verbindung kann extern mit VCC verbunden werden und ist
eine Quelle von Strom während
der Vorrichtungsinitialisierung sowie WRITE- und ERASE-Vorgängen. Das
heißt, dass
Schreiben oder Löschen
an der Speichervorrichtung unter Verwendung einer VCCP-Spannung
durchgeführt
werden kann, während
alle anderen Vorgänge
mit einer VCC-Spannung durchgeführt
werden können. Die
VCCP-Verbindung ist mit einem Hochspannungsschaltungs-/pumpschaltkreis 145 gekoppelt.
-
Die
folgenden Abschnitte geben eine detailliertere Beschreibung des
Betriebs des synchronen Flashspeichers wieder. Eine Ausführungsform
der vorliegenden Erfindung ist ein nicht-flüchtiger, elektrisch-sektorlöschbarer
(Flash) programmierbarer Festwertspeicher, der 67.108.864 Bits als
4.194.304 16-Bit-Wörter
organisiert enthält.
Andere Bestückungsdichten
werden erwogen, und die vorliegende Erfindung ist nicht auf die Beispieldichte
beschränkt.
Jede Speicherbank ist in vier unabhängig löschbaren Blöcken (insgesamt 16) organisiert.
Um sicherzustellen, dass kritische Firmware vor versehentlichem
Löschen
oder Überschreiben
geschützt
ist, kann der Speicher 16 256K-Worte Hardware- und Software-verriegelbare
Blöcke
enthalten. Die Vier-Bank-Architektur des Speichers unterstützt echte
Simultanvorgänge.
-
Ein
Lesezugriff auf irgendeine Bank kann gleichzeitig mit einem Hintergrund-WRITE- oder -ERASE-Vorgang
an irgendeiner anderen Bank vorkommen. Der synchrone Flashspeicher
hat eine synchrone Schnittstelle (alle Signale werden auf der positiven
Flanke des Taktsignals CLK registriert). Lesezugriffe auf den Speicher
können
burstorientiert sein. Dies heißt,
dass Speicherzugriffe an einer ausgewählten Stelle beginnen und für eine programmierte
Zahl von Stellen in einer programmierten Abfolge fortgesetzt werden.
Lesezugriffe beginnen mit Registrierung eines ACTIVE-Befehls, gefolgt
von einem READ-Befehl. Die mit dem ACTIVE-Befehl koinzidenten registrierten
Adressbits werden verwendet, um die Bank und die Zeile, auf die
zugegriffen werden soll, auszuwählen.
Die mit dem READ-Befehl koinzidenten registrierten Adressbits werden verwendet,
um die Startspaltenstelle und Bank für den Burstzugriff auszuwählen.
-
Der
synchrone Flashspeicher stellt programmierbare Leseburstlängen von
1, 2, 4 oder 8 Stellen oder der vollen Seite mittels einer Burstende-Option
zur Verfügung.
Weiterhin verwendet der synchrone Flashspeicher eine interne Pipelinearchitektur,
um Hochgeschwindigkeitsbetrieb zu erzielen.
-
Der
synchrone Flashspeicher kann in Schwachstromspeichersystemen, wie
Systemen, die bei 3 V arbeiten, betrieben werden. Ein tiefer Power-Down-Modus
wird gemeinsam mit einem Strom sparenden Bereitschaftsmodus bereitgestellt.
Alle Eingänge
und Ausgänge
sind Niederspannungs-Transistor-Transistor-Logik (LVTTL, low voltage
transistor-transistor-logic)-kompatibel. Der synchrone Flashspeicher
bietet wesentliche Vorzüge
bei der Flashbetriebsleistung, einschließlich der Fähigkeit zu synchronem Datenburst
bei hoher Datenrate mit automatischer Spaltenadressgenerierung und
der Fähigkeit,
Spaltenadressen bei jedem Taktzyklus während eines Burstzugriffs beliebig
zu ändern.
-
Im
allgemeinen wird der synchrone Flashspeicher ähnlich einem Mehrbank-DRAM
konfiguriert, das bei Niederspannung betrieben wird und eine synchrone
Schnittstelle enthält.
Jede der Bänke
ist in Reihen und Spalten organisiert. Vor dem normalen Betrieb
wird der synchrone Flashspeicher initialisiert. Die folgenden Abschnitte
stellen detaillierte Informationen bereit, welche die Vorrichtungsinitialisierung,
Registerdefinition, Befehlsbeschreibungen und den Vorrichtungsbetrieb
abdecken.
-
Der
synchrone Flash wird in einer vordefinierten Weise eingeschaltet
und initialisiert. Nachdem Strom an VCC, VCCQ und VCCP (gleichzeitig)
angelegt wird und das Taktsignal stabil ist, wird RP# 140 von
einem LOW-Zustand in einen HIGH-Zustand überführt. Eine Verzögerung,
wie etwa eine 100 μs
Verzögerung,
wird benötigt,
nachdem RP# nach HIGH übergeht,
um die interne Vorrichtungsinitialisierung abzuschließen. Nachdem
die Verzögerungszeit
abgelaufen ist, wird der Speicher in einen Feldlesemodus gebracht
und ist zum Modusregisterprogrammieren oder für einen ausführbaren
Befehl bereit. Nach anfänglicher
Programmierung eines nicht-flüchtigen
Modusregisters 147 (NVMode-Register) werden die Inhalte
während
der Initialisierung automatisch in ein flüchtiges Modusregister 148 geladen.
Die Vorrichtung wird in einem programmierten Zustand hochgefahren
und erfordert kein Nachladen des nicht-flüchtigen Modusregisters 147 vor
dem Erteilen von Betriebsbefehlen. Dies wird unten detaillierter
erklärt.
-
Das
Modusregister 148 wird verwendet, um den spezifischen Betriebsmodus
des synchronen Flashspeichers zu definieren. Diese Definition enthält die Auswahl
einer Burstlänge,
eines Bursttyps, einer CAS-Latenz und eines Betriebsmodus, wie in 2 gezeigt.
Das Modusregister wird über
einen LORD MODE REGISTER-Befehl programmiert und behält gespeicherte
Informationen, bis es reprogrammiert wird. Die Inhalte des Modusregisters
können
in das NV-Modus-Register 147 kopiert werden. Die NVModusregistereinstellungen
laden das Modusregister 148 während der Initialisierung automatisch.
Details zu ERASE NVMODE REGISTER- und WRITE NVMODE REGISTER Befehlsabfolgen
werden unten angegeben. Der Fachmann wird wahrnehmen, dass es bei
einem SDRAM erforderlich ist, dass ein Modusregister während jedes
Initialisierungsvorgangs extern geladen wird. Die vorliegende Erfindung
gestattet es, einen Vorgabemodus im NV-Modusregister 147 zu
speichern. Die Inhalte des NVModusregisters werden dann in ein flüchtiges
Modusregister 148 für
einen Zugriff während
Speichervorgängen
kopiert.
-
Die
Modusregisterbits M0–M2
spezifizieren eine Burstlänge,
M3 spezifiziert einen Bursttyp (sequentiell oder verschachtelt),
M4–M6
spezifizieren eine CAS-Latenz, M7 und M8 spezifizieren einen Betriebsmodus,
M9 auf 1 gesetzt und M10 und M11 sind in dieser Ausführungsform
reserviert. Da WRITE-Bursts derzeit nicht implementiert sind, ist
M9 auf eine logische 1 gesetzt, und Schreibzugriffe sind Einzelstellen-(Nicht
Burst)-Zugriffe. Das Modusregister muss geladen werden, wenn alle
Bänke unbenutzt
sind und die Steuerung muss für
die spezifizierte Zeit warten, bevor ein nachfolgender Vorgang initiiert
wird.
-
Lesezugriffe
auf den synchronen Flashspeicher können burstorientiert sein,
wobei die Burstlänge
programmierbar ist, wie in Tabelle 1 gezeigt. Die Burstlänge bestimmt
die Maximalzahl von Spaltenstellen, auf die automatisch bei einem
gegebenen Lesekommando zugegriffen werden kann. Burstlängen von
1, 2, 4 oder 8 Stellen sind sowohl für sequentielle als auch für verschachtelte
Bursttypen verfügbar
und ein Vollseitenburst ist für
den sequentiellen Typ verfügbar.
Der Vollseitenburst kann in Verbindung mit dem BURST TERMINATE-Befehl
verwendet werden, um willkürliche Burstlängen zu
erzeugen, d. h. dass ein Burst selektiv beendet werden kann, um
kundenspezifisch lange Bursts bereit zu stellen. Wenn ein READ-Befehl
erteilt wird, wird ein Block von Spalten gleich der Burstlänge effektiv
ausgewählt.
Alle Zugriffe für
diesen Burst geschehen innerhalb dieses Blocks, was bedeutet, dass
der Burst innerhalb des Blocks umbricht, falls eine Begrenzung erreicht wird.
Der Block wird durch A1 bis A7 eindeutig ausgewählt, wenn die Burstlänge auf
2 eingestellt ist, durch A2–A7,
wenn die Burstlänge
auf 4 eingestellt ist, und durch A3–A7, wenn die Burstlänge auf
8 eingestellt ist. Die verbleibenden (niedrigstwertigen) Adressbits
werden verwendet, um die Startstelle innerhalb des Blocks auszuwählen.
-
Vollseitenbursts
brechen innerhalb der Seite um, falls die Begrenzung erreicht wird.
-
Zugriffe
innerhalb eines gegebenen Bursts können programmiert sein, entweder
sequentiell oder verschachtelt zu sein; dies wird als der Bursttyp
bezeichnet und mittels Bit M3 ausgewählt. Die Anordnung von Zugriffen
innerhalb eines Bursts wird durch die Burstlänge, den Bursttyp und die Startspaltenadresse
bestimmt, wie in Tabelle 1 gezeigt. TABELLE
1 BURSTDEFINITION
-
Spaltenadressabtast-(CAS,
column adress strobe)-Latenz ist eine Verzögerung in Taktzyklen zwischen
der Registrierung eines READ-Befehls und der Verfügbarkeit
des ersten Stücks
an ausgegebenen Daten auf den DQ-Verbindungen. Die Latenz kann auf
ein, zwei oder drei Taktzyklen eingestellt werden. Falls beispielsweise
ein READ-Befehl zur Taktflanke n registriert wird und die Latenz
ist m Takte, werden die Daten zur Taktflanke n + m verfügbar sein.
Die DQ-Verbindungen beginnen, Daten zu treiben, wenn die Taktflanke
einen Zyklus früher
(n + m – 1)
ist und, vorhaltlich, dass die verwandten Zugriffszeiten eingehalten
werden, werden die Daten zur Taktflanke n + m gültig sein. Beispielsweise angenommen,
dass die Taktzykluszeit so ist, dass alle relevanten Zugriffszeiten
eingehalten werden, falls ein READ-Befehl bei T0 registriert wird,
und die Latenz auf zwei Takte programmiert ist, werden die DQs nach
T1 beginnen zu treiben und sind die Daten bei T2 gültig, wie
in 3 gezeigt. 3 illustriert
beispielhafte Betriebsfrequenzen, bei denen verschiedene Taktlatenzeinstellungen
verwendet werden können.
Der normale Betriebsmodus wird durch Einstellen von M7 und M8 auf 0
ausgewählt
und die programmierte Burstlänge
gilt für
READ-Bursts.
-
Die
folgenden Wahrheitstabellen geben mehr Details zu den Betriebsbefehlen
einer Ausführungsform des
Speichers der vorliegenden Erfindung. Eine Erklärung der Befehle wird hierin
gegeben und folgt nach Wahrheitstabelle 2. WAHRHEITSTABELLE 1 Schnittstellenkommandos und DQM-Betrieb
Name
(Funktion) | CS# | RAS# | CAS# | WE# | DQM | ADDR | DQs |
COMMAND
INHIBIT (NOP) | H | X | X | X | X | X | X |
Kein
Vorgang (NOP, keine Operation) | L | H | H | H | X | X | X |
ACTIVE
(wähle
Bank und aktiviere Zeile) | L | L | H | H | X | Bank/Zeile | X |
READ
(wähle
Bank, Spalte und starte Leseburst) | L | H | L | H | X | Bank/Spalte | X |
WRITE
(wähle
Bank, Spalte und starte Schreiben) | L | H | L | L | X | Bank/Spalte | gültig |
BURST
TERMINATE | L | H | H | L | X | X | aktiv |
ACTIVE
TERMINATE | L | L | H | L | X | X | X |
LORD
COMMAND REGISTER | L | L | L | H | X | Bef.-Code | X |
LORD
MODE REGISTER | L | L | L | L | X | Betriebs-Code | X |
Schreibfreigabe-/Ausgangsfreigabe | - | - | - | - | L | - | aktiv |
Schreibhemmung/Ausgang-HIGH-Z | - | - | - | - | H | - | HIGH-Z |
WAHRHEITSTABELLE
2 Flashspeicherbefehlsabfolgen
-
Die
COMMAND INHIBIT-Funktion verhindert, dass neue Kommandos durch den
synchronen Flashspeicher ausgeführt
werden, unabhängig
davon, ob das CLK-Signal
freigegeben ist. Die Auswahl des synchronen Flashspeichers wird
effektiv aufgehoben, jedoch sind Vorgänge, die bereits bearbeitet
werden, davon nicht betroffen.
-
Der
NO OPERATION-Befehl (NOP) wird verwendet, um einen NOP am synchronen
Flashspeicher durchzuführen,
der ausgewählt
ist (CS# ist LOW). Dies verhindert, dass unerwünschte Befehle während unbenutzten
oder Warte-Zuständen
registriert werden, und bereits in Bearbeitung befindliche Vorgänge sind
nicht betroffen.
-
Die
Modusregisterdaten werden über
die Eingänge
A0–A11
geladen. Der LORD MODE REGISTER-Befehl kann nur erteilt werden,
wenn alle Feldbänke
unbenutzt sind und ein nachfolgender ausführbarer Befehl kann nicht erteilt
werden, bis eine vorgegebene Zeitverzögerung (MRD) erreicht wird.
Die Daten im NV-Modusregister 147 werden nach Einschaltinitialisierung
automatisch in das Modusregister 148 geladen und sind die
Vorgabedaten, wenn sie nicht dynamisch mit dem LORD MODE REGISTER-Befehl
geändert
werden.
-
Ein
ACTIVE-Befehl wird verwendet, um eine Zeile in einer bestimmten
Feldbank für
einen nachfolgenden Zugriff zu öffnen
(oder zu aktivieren). Der Wert auf den Eingängen BA0, BA1 wählt die
Bank aus und die auf den Eingängen
A0–A11 bereitgestellte
Adresse wählt
die Zeile aus. Die Zeile bleibt für Zugriffe aktiv bis zum nächsten ACTIVE-Befehl,
einem Power-Down oder einem RESET.
-
Der
READ-Befehl wird verwendet, um einen Burstlesezugriff auf eine aktive
Zeile zu initiieren. Der Wert auf den Eingängen BA0, BA1 wählt die
Bank aus und die an den Eingängen
A0–A7
bereitgestellte Adresse wählt
die Anfangsspaltenstelle aus. Gelesene Daten erscheinen auf den
DQs vorbehaltlich dem Logikpegel am Datenmasken(DQM)-Eingang, der
zwei Takte früher
vorhanden war. Falls ein gegebenes DQM-Signal als HIGH registriert
wurde, werden die entsprechenden DQs zwei Takte später HIGH-Z
(hohe Impedanz) sein, falls das DQM-Signal als LOW registriert wurde,
werden die DQs gültige
Daten bereitstellen. Somit kann der DQM-Eingang verwendet werden, um Ausgabedaten
während
eines Lesevorgangs zu maskieren.
-
Ein
WRITE-Befehl wird verwendet, um einen Einzelstellenschreibzugriff
auf eine aktive Zeile zu initiieren. Einem WRITE-Befehl muss ein
WRITE SETP-Befehl vorausgehen. Der Wert auf den Eingängen BA0, BA1
wählt die
Bank und die an Eingängen
A0–A7
bereitgestellte Adresse wählt
eine Spaltenstelle aus. An den DQs erscheinende Eingangsdaten werden
in das Speicherfeld geschrieben, vorbehaltlich, dass der DQM-Eingangslogikpegel
koinzident zu den Daten erscheint. Falls ein gegebenes DQM-Signal
als LOW registriert wird, werden die entsprechenden Daten in den
Speicher beschrieben werden; falls das DQM-Signal als HIGH registriert
wird, werden die entsprechenden Dateneingänge ignoriert und kein WRITE
wird auf diese Wort/Spaltenstelle ausgeführt. Ein WRITE-Befehl mit DQM
auf HIGH wird als ein NOP angesehen.
-
Ein
ACTIVE TERMINATE-Befehl wird für
synchrone Flashspeicher nicht benötigt, kann aber bereitgestellt
werden, um ein Lesen in einer Weise zu beenden, die ähnlich ist
dem SDRAM-PRECHARGE-Befehl. Der ACTIVE TERMINATE-Befehl kann erteilt
werden, um ein stattfindendes BURST READ zu beenden und kann Bank-spezifisch
sein oder nicht.
-
Ein
BURST TERMINATE-Befehl wird verwendet, um entweder Festlängen- oder
Vollseitenbursts abzuschneiden. Der zuletzt registrierte READ-Befehl
vor dem BURST TERMINATE-Befehl wird abgeschnitten. BURST TERMINATE
ist nicht Bank-spezifisch.
-
Der
Ladekommandoregistervorgang wird verwendet, um Flashspeichersteuerbefehle
an die Befehls-Ausführlogik
(CEL, Command Execution Logic) 130 zu initiieren. Die CEL
empfängt
und interpretiert Befehle für
die Vorrichtung. Diese Befehle steuern den Betrieb des internen
Zustandsautomaten 132 und den Lesepfad (d. h. Speicherfeld 102,
ID-Register 136 oder Statusregister 134).
-
Bevor
ein READ- oder WRITE-Befehl einer Bank innerhalb des synchronen
Flashspeichers erteilt werden kann, muss eine Zeile in dieser Bank „geöffnet" werden. Dies wird
mittels des ACTIVE-Befehls (definiert durch CS#, WE#, RAS#, CAS#)
bewerkstelligt, welches sowohl die zu aktivierende Bank als auch
die zu aktivierende Zeile auswählt,
siehe 4.
-
Nach Öffnen einer
Zeile (Erteilen eines ACTIVE-Befehls) kann dieser Zeile ein READ-
oder WRITE-Befehl erteilt werden, vorbehaltlich einer Zeitperioden-(tRCD)-Spezifikation, tRCD(MIN)
sollte durch die Taktperiode geteilt und auf die nächste Ganzzahl
aufgerundet werden, um die früheste
Taktflanke nach dem ACTIVE-Befehl zu bestimmen, zu der ein READ-
oder WRITE-Befehl eingegeben werden kann. Beispielsweise führt eine
tRCD-Spezifikation von 30 ns bei einem 90 MHZ-Takt (11,11 ns-Periode)
zu 2,7 Takten, was auf 3 gerundet wird. Dies spiegelt sich in 5 wieder,
die jeden Fall abdeckt, bei dem 2 < tRCD(MIN)/tCK ≤ 3. (Dasselbe
Verfahren wird verwendet, um andere Spezifikationslimits von Zeiteinheiten
in Taktzyklen umzuwandeln.)
-
Ein
nachfolgender ACTIVE-Befehl an eine andere Zeile derselben Bank
kann erteilt werden, ohne dass eine zuvor aktive Zeile geschlossen
werden muss, vorausgesetzt, dass das Minimalzeitintervall zwischen aufeinanderfolgenden
ACTIVE-Befehlen an dieselbe Bank durch tRC definiert ist.
-
Ein
nachfolgender ACTIVE-Befehl an eine andere Bank kann erteilt werden,
während
auf die erste Bank zugegriffen wird, was zu einer Verringerung des
Gesamtzeilenzugriffs-Overheads führt.
Das Minimal-Zeitintervall zwischen aufeinanderfolgenden ACTIVE-Befehlen
an unterschiedliche Bänke
wird durch eine Zeitperiode tRRD definiert.
-
READ-Bursts
werden mit einem READ-Befehl (definiert durch CS#, WE#, RAS#, CAS#),
wie in 6 gezeigt, initiiert. Die Anfangs-Spalte und Bankadressen
werden mit dem READ-Befehl bereitgestellt. Während READ-Bursts wird das
gültige
Ausgabendaten-Element von der Anfangsspaltenadresse nach der CAS-Latenz nach
dem READ-Befehl verfügbar
sein. Jedes nachfolgende Ausgabendaten-Element ist bei der nächsten positiven
Taktflanke gültig.
Nach Fertigstellung des Bursts unter der Annahme, dass kein anderes
Kommando initiiert worden ist, gehen die DQs in einen HIGH Z-Zustand.
Ein Vollseitenburst wird fortgesetzt, bis er beendet wird. (Am Ende
der Seite wird er nach Spalte 0 umbrechen und fortfahren.) Daten
von einem READ-Burst
werden mit einem nachfolgenden READ-Befehl abgeschnitten werden
und Daten von einem Festlängen-READ-Burst
können
unmittelbar gefolgt werden von Daten von einem nachfolgenden READ-Befehl.
In jedem Fall kann ein kontinuierlicher Datenfluss eingehalten werden.
Das erste Datenelement vom neuen Kurst folgt entweder dem letzten
Element eines abgeschlossenen Bursts oder dem letzten gewünschten
Datenelement eines längeren
Bursts, der abgeschnitten wird. Der neue READ-Befehl sollte x Zyklen
vor derjenigen Taktflanke erteilt werden, bei der das letzte gewünschte Datenelement
gültig
ist, wobei x gleich der CAS-Lantenz minus 1 ist. Dies wird in 7 für CAS-Latenzen
von 1, 2 und 3 gezeigt; Datenelement n + 3 ist entweder das letzte
eines Bursts von 4 oder das letzte gewünschte eines längeren Bursts.
Der synchrone Flashspeicher verwendet eine Pipeline-Architektur
und erfordert daher nicht die mit einer Vorauslese-Architektur assoziierte 2n-Regel.
Ein READ-Befehl kann zu jeglichem Taktzyklus, der einem vorigen
READ-Befehl folgt, erteilt werden. Vollgeschwindigkeitswahllesezugriffe
innerhalb einer Seite können
wie in 8 gezeigt durchgeführt werden, oder jedes nachfolgende
READ kann an einer anderen Bank durchgeführt werden.
-
Daten
von jeglichem READ-Kurst können
mit einem nachfolgenden WRITE-Befehl (WRITE-Befehlen muss ein WRITE
SETUP vorausgehen) abgeschnitten werden und auf Daten von einem
Festlängen-READ-Kurst
können
unmittelbar Daten von einem nachfolgenden WRITE-Befehl folgen (vorbehaltlich
von Busdurchsatzbegrenzungen). Das WRITE kann an der Taktflanke
initiiert werden, die unmittelbar dem letzten (oder letzten gewünschten)
Datenelement vom READ-Burst folgt, vorausgesetzt, dass E/A Konkurrenz
vermieden werden kann. In einem gegebenen Systemdesign kann die
Möglichkeit
existieren, dass die, die Eingangsdaten schreibende Vorrichtung
auf LOW-Z gehen würde,
bevor die synchronen Flashspeicher-DQs HIGH-Z gehen. In diesem Fall
sollte zumindest eine Einzelzyklusverzögerung zwischen den zuletzt
gelesenen Daten und dem WRITE-Befehl auftreten.
-
Die
DQM-Eingabe wird verwendet, um E/A-Konkurrenz zu vermeiden, wie
in 9 gezeigt. Das DQM-Signal muss zumindest zwei
Takte vor dem WRITE-Befehl (DQM-Latenz
ist 2 Takte für
Ausgabepuffer) (HIGH) annehmen, um ein Daten-Aus vom Lesen zu unterdrücken. Wenn
der WRITE-Befehl registriert ist, gehen die DQs auf HIGH-Z (oder
verbleiben HIGH-Z) unabhängig
vom Zustand des DQM-Signals. Das DQM-Signal muss vor dem Schreibkommando
abfallen (DQM-Latenz ist 0 Takte für Eingangspuffer), um sicherzustellen,
dass die geschriebenen Daten nicht maskiert werden. 9 zeigt
den Fall, bei dem die Taktfrequenz es gestattet, Buskonflikte ohne
das Hinzufügen
eines NOP-Zyklus zuvermeiden.
-
Ein
Festlängen-
oder Vollseiten-READ-Burst kann entweder mit ACTIVE TERMINATE (kann Bank-spezifisch
sein oder nicht) oder BURST TERMINATE (nicht Bank-spezifisch) Befehlen
abgeschnitten werden. Der ACTIVE TERMINATE oder BURST TERMINATE
Befehl sollte x Zyklen vor der Taktflanke erteilt werden, bei der
letzte gewünschte
Datenelement gültig
ist, wobei x gleich der CAS-Latenz minus 1 ist. Dies wird in 10 für jede mögliche CAS-Latenz
gezeigt; Datenelement n + 3 ist das letzte gewünschte Datenelement eines Bursts
von 4 oder das letzte gewünschte
eines längeren
Bursts.
-
Ein
Einzelstellen WRITE wird mit einem WRITE-Befehl initiiert (definiert
durch CS#, WE#, RAS#, CAS#), wie in 11 gezeigt.
Die Anfangsspalten- und Bankadressen werden mit dem WRITE-Befehl
bereit gestellt. Wenn ein WRITE-Befehl registriert ist, kann ein
READ-Befehl wie durch Wahrheitstabellen 4 und 5 definiert, ausgeführt werden.
Ein Beispiel wird in 12 gezeigt. Während eines
WRITE ist das gültige
Daten-Ein koinzident mit dem WRITE-Befehl registriert.
-
Anders
als SDRAM erfordern synchrone Flashs keinen PRECHARGE-Befehl, um
die offene Zeile in einer bestimmten Bank oder die offenen Zeilen
in allen Bänken
zu deaktivieren. Der ACTIVE TERMINATE-Befehl ähnelt dem BURST TERMINATE-Befehl; jedoch kann
der ACTIVE TERMINATE Bank-spezifisch sein oder nicht. Wenn A10 während eines
ACTIVE TERMINATE-Befehls HIGH annimmt, wird dies ein BURST READ
in jeder Bank beenden. Wenn A10 während eines ACTIVE TERMINATE-Befehls
LOW ist, werden BA0 und BA1 festlegen, welche Bank einen Beenden-Vorgang
durchlaufen wird. ACTIVE TERMINATE wird als ein NOP für Bänke betrachtet,
welche durch A10, BA0, BA1 nicht adressiert sind.
-
Power-Down
tritt auf, falls die Taktfreigabe CKE gleichzeitig mit einem NOP
oder COMMAND INHIBIT registriert wird, wenn gerade keine Zugriffe
durchgeführt
werden. Das Einleiten des Power-Down deaktiviert die Eingangs- und
Ausgangspuffer (ausschließlich
CKE), nachdem interne Statusmaschinenvorgänge (einschließlich WRITE-Vorgängen) abgeschlossen
sind, um Strom während
eines Bereitschaftszustands zu sparen.
-
Der
Power-Down-Zustand wird durch Registrieren eines NOP oder eines
COMMAND INHIBIT und von CKE auf HIGH an der gewünschten Taktflanke (die zu
tCKS passt) angeregt. Vgl. 13 für einen
beispielhaften Power-Down-Vorgang.
-
Ein
Taktanhaltmodus tritt auf, wenn ein Spaltenzugriff/Burst durchgeführt wird
und CKE als LOW registriert wird. Im Taktanhaltmodus wird ein interner
Takt deaktiviert, was zum „Einfrieren" der synchronen Logik führt. Bei
jeder positiven Taktflanke, an der CKE als LOW abgetastet wird,
wird die nächste
interne positive Taktflanke aufgehoben. Jeglicher Befehl oder Daten,
die an den Eingangsstiften zum Zeitpunkt einer aufgehobenen internen
Taktflanke vorhanden sind, werden ignoriert, an den DQ-Stiften vorhandene
Daten verbleiben angetrieben, und Burstzähler werden nicht inkrementiert,
solange der Takt angehalten ist (siehe Beispiel in 14).
Der Taktanhaltmodus wird durch Registrieren von CKE auf HIGH angeregt;
der interne Takt und diesbezügliche
Betrieb wird zur nachfolgenden positiven Taktflanke wieder aufgenommen.
-
Der
Burst Lese-/Einzelschreibmodus ist in einer Ausführungsform der Vorgabemodus.
Alle WRITE-Befehle führen
zum Zugriff auf eine Einzelspaltenstelle (Einzelburst), während READ-Befehle
auf Spalten gemäß der programmierten
Burstlänge
und Abfolge zugreifen. Die folgende Wahrheitstabelle 3 illustriert
den Speicherbetrieb unter Verwendung des CKE-Signals. WAHRHEITSTABELLE 3 – CKE
CKEn-1 | CKEn | derzeitiger
Status | Kommandon | Aktionn |
L | L | POWER-DOWN | X | POWER-DOWN erhalten |
CLOCK
SUSPEND | X | CLOCK
SUSPEND erhalten |
L | H | POWER
DOWN | COMMAND
INHIBIT oder NOP | POWER-DOWN Verlassen |
CLOCK
SUSPEND | X | CLOCK
SUSPEND Verlassen |
H | L | Alle
Bänke unbenutzt | COMMAND
INHIBIT oder NOP | POWER-DOWN Einleiten |
Lesen
oder Schreiben | VALID | CLOCK
SUSPEND Einleiten |
H | H | | siehe
Wahrheitstabelle 4 | |
Wahrheitstabelle 4 – derzeitiger Status Bank n – Kommando
an Bank n
derzeitiger Zustand | CS# | RAS# | CAS# | WE# | Befehl/Aktion |
beliebig | H | X | X | X | COMMAND
INHIBIT (NOP/führe
vorigen Vorgang fort) |
L | H | H | H | NO
OPERATION (NOP/führe
vorigen Vorgang fort) |
unbenutzt | L | L | H | H | ACTIVE
(wähle
und aktiviere Zeile) |
L | L | L | H | LORD
COMMAND REGISTER |
L | L | L | L | LORD
MODE REGISTER |
L | L | H | L | ACTIVE
TERMINATE |
Zeile Aktiv | L | H | L | H | READ
(wähle
Spalte und starte READ-Burst) |
L | H | L | L | WRITE
(wähle
Spalte und starte WRITE) |
| L | L | H | L | ACTIVE
TERMINATE |
L | L | L | H | LORD
COMMAND REGISTER |
READ | L | H | L | H | READ
(wähle
Spalte und starte neuen READ-Burst) |
L | H | L | L | WRITE (wähle
Spalte und starte WRITE) |
L | L | H | L |
L | H | H | L | ACTIVE
TERMINATE |
| L | L | L | H | BURST
TERMINATE LORD COMMAND REGISTER |
WRITE | L | H | L | H | READ
(wähle
Spalte und starte neuen READ-Burst) |
L | L | L | H | LORD
COMMAND REGISTER |
WAHRHEITSTABELLE 5 – derzeitiger Zustand Bank
n – Kommando
an Bank m
derzeitiger
Zustand | CS# | RAS# | CAS# | WE# | Kommando/Aktion |
beliebig | H | X | X | X | COMMAD
INHIBIT (NOP/führe
vorigen Vorgang fort) |
L | H | H | H | NO
OPERATION (NOP/Setze vorigen Vorgang fort) |
unbenutzt | X | X | X | X | beliebiges Kommando, andemfalls gehe
zu Bank m |
Zeile Aktivieren, oder Aktiv Beenden | L | L | H | H | ACTIVE
(wähle und
aktiviere Spalte) |
L | H | L | H | READ
(wähle Spalte
und starte READ-Burst) |
L | H | L | L | WRITE
(wähle Spalte
und starte WRITE) |
L | L | H | L | ACTIVE
TERMINATE |
L | L | L | H | LORD
COMMAND REGISTER |
READ | L | L | H | H | ACTIVE
(wähle Spalte
und aktiviere Zeile) |
L | H | L | H | READ
(wähle Spalte
und starte neuen READ-Burst) |
L | H | L | L | WRITE
(wähle Spalte
und starte WRITE |
L | L | H | L | ACTIVE
TERMINATE |
L | L | L | H | LORD
COMMAND REGISTER |
WRITE | L | L | H | H | ACTIVE
(wähle und
aktiviere Zeile) |
L | H | L | H | READ
(wähle Spalte
und starte READ-Burst) |
L | L | H | L | ACTIVE
TERMINATE |
L | H | H | L | BURST
TERMINATE |
L | L | L | H | LORD
COMMAND REGISTER |
-
FUNKTIONS-BESCHREIBUNG
-
Der
synchrone Flashspeicher beinhaltet eine Zahl von Merkmalen, um ihn
ideal geeignet zum Codespeichern und Vor-Ort-Ausführen von
Anwendungen auf einem SDRAM-Bus zu machen. Das Speicherfeld ist in
vier individuelle Löschblöcke segmentiert.
Jeder Block kann gelöscht
werden, ohne dass in anderen Blöcken gespeicherte
Daten betroffen sind. Diese Speicherblöcke werden gelesen, beschrieben
und gelöscht
durch Erteilen von Befehlen an die Befehisausführlogik 130 (CEL).
Die CEL steuert den Betrieb des internen Zustandsautomaten 132 (ISM),
die vollständig
alle ERASE NVMODE REGISTER, WRITE NVMODE REGISTER, WRITE, BLOCK
ERASE, BLOCK PROTECT, DEVICE PROTECT, UNPROTECT ALL BLOCKS und VERIFY-Vorgänge steuert.
Die ISM 132 schützt
jede Speicherstelle vor Überlöschen und
optimiert jede Speicherstelle für maximale
Datenbewahrung. Zusätzlich
vereinfacht die ISM weitgehend die zum Beschreiben der Vorrichtung im
System oder in einem externen Programmierer notwendige Steuerung.
-
Der
synchrone Flashspeicher ist in 16 unabhängig löschbare Speicherblöcke organisiert,
die es Bereichen des Speichers gestatten, gelöscht zu werden, ohne den Rest
der Speicherdaten zu beeinträchtigen.
Jeder Block kann gegen unbeabsichtigtes Löschen oder Schreiben hardwaregeschützt sein.
Ein geschützter Block
erfordert es, dass der RP#-Stift auf VHH (eine relativ: hohe Spannung)
getrieben wird, bevor er modifiziert wird. Die 256K-Wortblöcke an Stellen
0 und 15 können
zusätzlichen
Hardwareschutz aufweisen. Wenn ein PROTECT BLOCK-Befehl an diesen Blöcken durchgeführt worden
ist, wird ein UNPROTECT ALL BLOCKS-Befehl alle Blöcke außer den
Blöcken
an Stellen 0 und 15 entriegeln, sofern nicht der RP#-Stift auf VHH
liegt. Dies stellt zusätzliche
Sicherheit für
kritischen Code während
in System-Firmware-Aktualisierungen bereit, sollte eine unbeabsichtigte
Stromunterbrechung oder ein Systemrücksetzen auftreten.
-
Einschaltinitialisierung,
ERASE-, WRITE- und PROTECT-Zeitabläufe werden durch Verwenden
einer ISM zur Steuerung aller Programmieralgorithmen im Speicherfeld
vereinfacht. Die ISM stellt Schutz gegen Überlöschen sicher und optimiert
den Schreibspielraum jeder Zelle. Während WRITE-Vorgängen inkrementiert und überwacht
die ISM automatisch WRITE-Versuche, verifiziert Schreibspielräume auf
jeder Speicherzelle und aktualisiert das ISM-Statusregister. Wenn
ein BLOCK ERASE-Vorgang durchgeführt
wird, überschreibt
die ISM automatisch den gesamten adressierten Block (eliminirt Überlöschen),
inkrementiert und überwacht
ERASE-Versuche und
setzt Bits im ISM-Statusregister.
-
Das
8-Bit-ISM-Statusregister 134 gestattet einem externen Prozessor 200,
den Status der ISM während
WRITE-, ERASE- und PROTECT-Vorgängen
zu überwachen.
Ein Bit des 8-Bit-Statusregisters (SR7) wird vollständig durch
die ISM gesetzt und rückgesetzt.
Dieses Bit zeigt an, ob die ISM mit einer ERASE-, WRITE- oder PROTECT-Aufgabe
beschäftigt
ist. Zusätzliche
Fehlerinformation wird in drei anderen Bits (SR3, SR4 und SR5) eingestellt:
Schreibe und Schütze
Block-Fehler, Lösche
und hebe Schutz aller Blöcke
auf -Fehler, und Vorrichtungsschutz-Fehler. Die Statusregisterbits
SR0, SR1 und SR2 stellen Details des ablaufenden ISM-Betriebs bereit.
Der Anwender kann überwachen,
ob ein ISM-Betrieb auf Vorrichtungsebene oder auf Bankebene (einschließlich welche
Bank unter ISM-Steuerung steht) abläuft. Diese 6 Bits (SR3–SR5) müssen vom
Hostsystem zurückgesetzt
werden. Das Statusregister wird unter Bezugnahme auf Tabelle 2 unten
detaillierter beschrieben.
-
Die
CEL 130 empfängt
und interpretiert Befehle an die Vorrichtung. Diese Befehle steuern
den Betrieb der ISM und des Lesepfads (d. h. Speicherfeld, Vorrichtungskonfiguration
oder Statusregister). Befehle können der
CEL erteilt werden, während
die ISM aktiv ist.
-
Um
maximales Stromsparen zu gestatten, hat der synchrone Flash einen
tiefen Power-Down-Modus sehr niedriger Spannung. Um in diesen Modus
zu gelangen, wird der RP#-Stift 140 (Rücksetzers/Ausschalten) auf
VSS ± 0,2
V gebracht. Um unabsichtliches Rücksetzen
zu verhindern, muss RP# für
100 ns auf VSS gehalten werden, bevor die Vorrichtung in den Rücksetzmodus
geht. Wenn RP# auf VSS gehalten wird, geht die Vorrichtung in den
tiefen Power-Down Modus. Nachdem die Vorrichtung in den tiefen Power-Down
Modus geht, wird ein Übergang
von LOW zu HIGH an RP# zu einer Vorrichtungseinschaltinitialisierungssequenz
führen,
wie hier ausgeführt.
-
Das Übergehen
von RP# von LOW nach HIGH nach Einleiten des Rücksetzmodus, aber vor Eintreten in
den tiefen Power-Down-Modus erfordert eine 1 μs Verzögerung vor dem Erteilen eines
ausführbaren
Befehls. Wenn die Vorrichtung in den tiefen Power-Down-Modus eintritt,
werden alle Puffer außer
dem RP#-Puffer abgeschaltet und der Stromfluss ist niedrig, beispielsweise
mit einem Maximum von 50 μA
bei 3,3 V VCC. Der Eingang an RP# muss während des tiefen power-Down
bei Vss verbleiben. Eintreten in den RESET-Modus löscht das
Statusregister 134 und setzt die ISM 132 in dem
Feld Lese-Modus.
-
Die
synchrone Flash-Speicherfeld-Architektur ist darauf ausgelegt, das
Löschen
von Sektoren ohne Stören
des Rests des Feldes zu gestatten. Das Feld ist in 16 adressierbare "Blöcke" unterteilt, die
unabhängig löschbar sind.
Durch Löschen
von Blöcken,
und nicht des gesamten Feldes, wird die Gesamtvorrichtungshaltbarkeit
verbessert, wie auch die Systemflexibilität. Nur die ERASE und BLOCK
PROTECT-Funktionen
sind blockorientiert. Die 16 adressierbaren Blöcke sind gleichmäßig in vier
Bänke 104, 106, 108 und 110 von
je vier Blöcken
unterteilt. Die vier Bänke
haben simultane Lese-während
des Schreibens-Funktionalität.
Ein ISM-WRITE- oder ERASE-Vorgang an einer Bank kann simultan mit
einem READ-Vorgang an einer anderen Bank erfolgen. Das Statusregister 134 kann
abgefragt werden, um zu bestimmen, welche Bank im ISM-Betrieb ist.
Der synchrone Flash-Speicher hat eine einzelne Hintergrundbetriebs-ISM
zum Steuern der Einschaltinitialisierungs-, ERASSE-, WRITE-, und
PROTECT-Vorgänge.
Nur ein ISM-Vorgang kann jeweils zu einem Zeitpunkt auftreten; jedoch
können
gewisse andere Befehle einschließlich READ-Vorgängen durchgeführt werden,
während
der ISM-Betrieb stattfindet. Ein von der ISM gesteuerter Betriebsbefehl
ist entweder als ein Bankebenenvorgang oder als ein Vorrichtungsebenenvorgang
definiert. WRITE und ERASE sind Bankebenen-ISM-Vorgänge. Nachdem ein ISM-Bankvorgang
initiiert worden ist, könnte
ein READ an jeglicher Stelle in der Bank ungültige Daten ergeben, während ein
Lesen auf eine andere Bank das Feld auslesen wird. Ein READ STATUS
REGISTER-Befehl gibt die Inhalte des Status-Registers 134 aus.
Das ISM-Status-Bit zeigt an, wann der ISM-Betrieb abgeschlossen ist (SR7 = 1).
Wenn der ISM-Betrieb abgeschlossen ist, tritt die Bank automatisch
in den Feld-Lese-Modus ein. ERASE NVMODE REGISTER, WRITE NVMODE
REGISTER, BLOCK PROTECT, DEVICE PROTECT, und UNPROTECT ALL BLOCKS
sind Vorrichtungs-Ebenen-ISM-Vorgänge. Wenn ein ISM-Vorrichtungsebenenvorgang
initiiert worden ist, wird ein READ einer Bank die Inhalte des Felds
ausgeben. Ein READ STATUS REGISTER-Befehl kann erteilt werden, um
den Abschluss des ISM-Betriebs festzustellen. Wenn SR7 = 1, wird
der ISM-Betrieb abgeschlossen sein und ein nachfolgender ISM-Vorgang
kann initiiert werden. Jeder Block kann vor unbeabsichtigtem ERASE
oder WRITE mittels einer Hardware-Schaltung geschützt werden,
die es erfordert, dass der RP#-Stift bis VHH getrieben wird, bevor
ein WRITE oder ERASE begonnen wird, wie unten beschrieben.
-
Jeder
Block kann Hardware-geschützt
sein, um zusätzliche
Sicherheit für
die sensitivsten Bereiche der Firmware zu erzielen. Während ein
WRITE oder ERASE eines Hardware-geschützten Blocks muss der RP#-Stift
auf VHH gehalten werden, bis das WRITE oder ERASE abgeschlossen
ist. Ein WRITE oder ERASE-Versuch auf einen geschützten Block
ohne RP# = VHH wird verhindert und führt zu einem Schreib- oder Löschfehler.
Die Blöcke
an Stellen 0 und 15 können
zusätzlichen
Hardware-Schutz aufweisen, um unabsichtlichen WRITE- oder ERASE-Betrieb
zu verhindern. In dieser Ausführungsform
können
diese Blöcke
nicht durch einen UNPROTEXT ALL BLOACKS-Befehl durch Software frei
gegeben werden, wenn nicht RP# = VHH. Der Schutz-Status jedes Blocks
kann durch Lesen seines Blockschutzbits mit einem READ STATUS REGISTER-Befehl
geprüft
werden. Weiterhin muss zum Schutz eines Blockes eine Drei-Zyklus-Befehls-Abfolge mit
der Blockadresse erteilt werden.
-
Der
synchrone Flash-Speicher kann drei verschiedene Typen von READ-Vorgängen aufweisen.
Abhängig
vom Modus wird ein READ-Vorgang Daten aus dem Speicherfeld, dem
Statusregister oder einem der Vorrichtungskonfigurationsregister
erzeugen. Einem READ des Vorrichtungskonfigurationsregisters oder
des Status-Registers
muss ein LCR-ACTIV-Zyklus vorausgehen, und die Burstlänge der
Datenausgabe wird durch die Modusregistereinstellungen definiert.
Ein nachfolgendes READ oder ein READ, dem kein LCR-ACTIVE-Zyklus
vorausgeht, liest das Feld. Jedoch gibt es mehrere Unterschiede,
die im folgenden Abschnitt beschrieben werden.
-
Ein
READ-Befehl an eine Bank gibt die Inhalte des Speicherfelds aus.
Während
ein WRITE oder ERASE-ISM-Vorgang stattfindet, kann ein READ einer
Stelle in der Bank unter ISM-Steuerung zur Ausgabe ungültiger Daten
führen.
Nach Verlassen des RESET-Vorgangs geht die Vorrichtung automatisch
in den Feld-Lese-Modus über.
-
Das
Durchführen
eines Lesens des Statusregisters 134 erfordert dieselbe
Eingabeabfolge wie beim Lesen des Felds, außer dass ein LCR-READ STATUS
REGISTER (70H)-Zyklus den ACTIVE READ-Zyklen vorausgehen muss. Die
Burstlänge
der Status-Register-Datenausgabe wird durch das Modus-Register 148 definiert.
Die Inhalte des Status-Registers werden aktualisiert und vorbehaltlich
der CAS-Latenzen bei der nächsten
positiven Taktflanke übernommen.
Die Vorrichtung geht automatisch für nachfolgende READ-Vorgänge in den
Feld-Lese-Modus.
-
Das
Lesen eines der Vorrichtungskonfigurationsregister 136 erfordert
dieselbe Eingabeabfolge wie beim Lesen des Status-Registers, außer dass
spezifische Adressen erteilt werden müssen. WE# muss HIGH sein und
DQM und CS# müssen
LOW sein. Um die Herstellerkompatibilitäts-ID zu lesen, müssen die
Adressen 000000H sein, und um die Vorrichtungs-ID zu lesen, müssen die
Adressen 000001H sein. Jedes der Blockschutz-Bits wird an der dritten
Adressstelle innerhalb jedes Löschblocks
(xx0002H) gelesen, während
das Vorrichtungsschutz-Bit aus der der Stelle 000003H ausgelesen
wird.
-
Die
DQ-Stifte werden auch zur Eingabe von Daten in das Feld verwendet.
Die Adressstifte werden auch verwendet, um eine Adressstelle zu
spezifizieren oder einen Befehl während des LORD COMMAND REGISTER-Zyklus
in das CEL einzugeben. Eine Befehlseingabe erteilt einen 8-Bit-Befehl
an CEL, um den Betriebsmodus der Vorrichtung zu steuern. Ein Schreiben
wird verwendet, um Daten im Speicherfeld einzugeben. Der folgende
Abschnitt beschreibt beide Arten von Eingaben.
-
Um
eine Befehlseingabe durchzuführen,
muss DQM LOW sein, und CS# and WE# müssen LOW sein. Adressstifte
oder DQ-Stifte werden zum Eingeben von Befehlen verwendet. "Nicht für die Eingabe" von Befehlen verwendete
Adressstifte sind "unbeachtlich" und müssen stabil
gehalten werden. Der 8-Bit-Befehl wird auf DQ0–DQ7 oder A0–A7 eingegeben
und auf der positiven Taktflanke übernommen.
-
Ein
WRITE auf das Speicherfeld stellt die gewünschten Bits auf logisch 0,
kann jedoch nicht ein gebenes Bit von logisch 0 auf logisch 1 ändern. Das
Setzen von Bits auf eine logische 1 erfordert, dass der Gesamtblock
gelöscht
wird. Um ein Schreiben durchzuführen,
muss DQM LOW sein, CS# und WE# müssen
LOW sein, und VCCP muss an VCC gebunden sein. Schreiben auf einen
geschützten
Block erfordert auch, dass der RP#-Stift auf VHH gebracht wird.
A0–A11
liefern die zu beschreibende Adresse, während die in das Feld zu schreibenden
Daten auf den DQ-Stiften eingegeben werden. Die Daten und Adressen
werden auf der steigenden Flanke des Takts übernommen. Einem WRITE muss
ein WRITE SETUP-Befehl vorausgehen.
-
Um
das Schreiben der Speicherblöcke
zu vereinfachen, enthält
der synchrone Flash eine ISM, die alle internen Algorithmen für die WRITE
und ERASE-Zyklen steuert. Ein 8-Bit-Befehlssatz wird zur Steuerung
der Vorrichtung verwendet. Siehe Wahrheitstabellen 1 und 2 für eine Liste
gültiger
Befehle.
-
Das
8-Bit-ISM-Status-Register
134 (siehe Tabelle 2) wird abgefragt,
um einen ERASE NVMODE REGISTER, WRITE NVMODE REGISTER, WRITE, ERASE,
BLOCK PROTECT, DEVICE PROTECT oder UNPROTECT ALL BLOCKS Abschluss
oder diesbezügliche
Fehler zu prüfen.
Der Abschluss eines ISM-Vorgangs kann durch Erteilung eines READ
STATUS REGISTER-Befehls (70H) überwacht
werden. Die Inhalte der Status-Register werden an DQ0–DQ7 ausgegeben
und an der nächsten
positiven Taktflanke (vorbehaltlich den CAS-Latenzen) für eine feste
Burstlänge
aktualisiert, wie durch die Modus-Register-Einstellungen vorgegeben.
Der ISM-Betrieb wird abgeschlossen sein, wenn SR7 = 1. Alle definierten
Bits werden durch die ISM gesetzt, aber nur das ISM-Status-Bit wird
durch die ISM zurückgesetzt.
Der Löschen/Schutz-Aufheben-Block, Schreiben/Schutz-Block,
Vorrichtungsschutz müssen
unter Verwendung eines CLEAR STATUS REGISTER (50H)-Befehls gelöscht werden.
Dies gestattet es dem Anwender auszuwählen, wann das Status-Register
abgefragt und gelöscht
wird. Beispielsweise kann ein Host-System mehrere WRITE-Vorgänge durchführen, bevor
das Status-Register überprüft wird,
statt nach jedem einzelnen WRITE zu prüfen. Kontrollieren des RP#-Signals
oder Herunterfahren der Vorrichtung löscht das Status-Register ebenfalls. TABELLE 2 STATUS-REGISTER
STATUS
BIT Nr. | STATUS
REGISTER BIT | BESCHREIBUNG |
SR7 | ISM-Status
1
= Fertig
0 = beschäftigt | Das
ISMS-Bit zeigt den aktiven Zustand des Zustandsautomaten beim Durchführen von
WRITE oder BLOCK ERASE. Die Steuerungs-Logik fragt dieses Bit ab, um
zu bestimmen, wann die Lösch
und Schreib Status Bits gültig
sind. |
SR6 | Reserviert | Reserviert
für zukünftige Verwendung |
SR5 | ERASE/UNPROTECT
BLOCK STATUS
1 = BLOCK ERASE oder BLOCK UNPROTECT-Fehler
0
= erfolgreiches BLOCK ERASE oder UNPROTECT | ES
wird auf 1 gesetzt, nachdem die Maximalzahl von ERASE – Zyklen
durch die ISM ohne erfolgreiches Verifizieren durchgeführt worden
ist. Dieses Bit wird auf 1 gesetzt, falls ein BLOCK UNPROTECT-Vorgang
erfolglos ist. ES wird nur durch einen CLEAR STATUS REGISTER-Befehl
oder durch ein RESET gelöscht. |
SR4 | WRITE/PROTECT
BLOCK STATUS
1 = WRITE- oder BLOCK PROTECT-Fehler
0 =
erfolgreiches WRITE oder BLOCK PROTECT | WS
wird auf 1 gesetzt, nachdem die Maximalzahl von WRITE-Zyklen durch
die ISM ohne eine erfolgreiche Verifizierung ausgeführt worden
ist. Dieses Bit wird auch auf 1 gesetzt, falls ein BLOCK oder DEVICE
PROTECT-Vorgang erfolglos ist. WS wird nur durch einen CLEAR STATUS
REGISTER-Befehl oder durch ein RESET gelöscht. |
SR2
SR1 | Bank-A1-ISM-Status
Bank-A0-ISM-Status | Wenn
SR0 = 0, kann die Bank unter ISM-Steuerung aus BA0, BA1:[0,0] Bank0;
[0,1]Bank 1; [1,0]Bank2; [1,1] Bank3 decodiert werden. |
SR3 | DEVICE
PROTECT STATUS
1 = Vorrichtung geschützt, ungültiger Vorgang versucht
0
= Vorrichtung ungeschützt
oder RP#-Bedingung eingetroffen | DPS
ist auf 1 gesetzt, falls ein ungültiges
WRITE, ERASE, PROTECT BLOCK, PROTECT DEVICE oder UNPROTECT ALL BLOCKS – versucht
wird. Nachdem einer dieser Befehle erteilt ist, wird die Bedingung
von RP#, dem Blockschutz-Bit und dem Vorrichtungsschutz-Bit verglichen,
um zu bestimmen, ob der gewünschte
Vorgang erlaubt ist. Muss durch CLEAR STATUS REGISTER oder durch
ein RESET gelöscht
werden |
SR0 | DEVICE/BANK
ISM STATUS
1 = Vorrichtungsebenen-ISM-Betrieb
0 = Bankebenen-ISM-Betrieb | DBS
wird auf 1 gesetzt, falls der ISM-Betrieb ein Vorrichtungsebenen-Betrieb
ist. Ein gültiges READ
einer Bank des Felds kann unmittelbar auf die Registrierung eines
Vorrichtungsebenen-ISM-WRITE-Vorgangs
folgen. Wenn DBS auf 0 gesetzt ist, |
| | ist
der ISM-Betrieb ein Bankebenen-Betrieb. Ein READ der Bank unter
ISM-Steuerung kann
zu ungültigen
Daten führen.
SR2 und SR3 können
decodiert werden, um zu bestimmen, welche Bank unter ISM-Steuerung
ist. |
-
Die
Vorrichtung-ID, Herstellerkompatibilität-ID, der Vorrichtungsschutz-Status
und der Blockschutz-Status können
alle durch Erteilen eines READ DEVICE CONFIGURATION (90H)-Befehls
gelesen werden. Um das gewünschte
Register zu lesen, muss eine spezifische Adresse anliegen. Siehe
Tabelle 3 für
weitere Details über
die verschiedenen Vorrichtungskonfigurationsregister
136. TABELLE 3 VORRICHTUNGSKONFIGURATION
VORRICHTUNGS-KONFIGURATION | ADRESSE | DATEN | BEDINGUNG |
Hersteller-Kompatibilität | 000000H | 2CH | Herstellerkompatibilität Lesen |
Vorrichtungs-ID | 000001H | D3H | Vorrichtungs-ID-Lesen |
Blockschutz-Bit | xx0002H | DQ0
= 1 | Block
geschützt |
xx0002H | DQ0
= 0 | Block
ungeschützt |
Vorrichtungsschutz-Bit | 000003H | DQ0
= 1 | Blockschutz-Modifikation gesperrt |
000003H | DQ0 = 0 |
Blockschutz-Modifikation freigegeben |
-
Befehle
können
erteilt werden, um die Vorrichtung in verschiedene Betriebsmodi
zu bringen. Jeder Modus weist bestimmte Vorgänge auf, die in diesem Modus
durchgeführt
werden können.
Mehrere Modi verlangen nach einer Abfolge zu schreibender Befehle,
bevor sie erreicht werden. Der folgende Abschnitt beschreibt die
Eigenschaften jedes Modus und die Wahrheitstabellen 1 und 2 listen
alle Befehlsabfolgen auf, die benötigt werden, um den gewünschten
Betrieb durchzuführen.
Die Lese-während-des-Schreibens-Funktionalität gestattet
die Durchführung
eines Hintergrundbetriebs-Schreibens oder -Löschens jeder Bank, während gleichzeitig
von einer anderen Bank gelesen wird. Für einen Schreibbetrieb müssen die
LCR-ACTIVE WRITE-Befehlsabfolgen in Wahrheitstabelle 2 in aufeinanderfolgenden
Taktzyklen abgeschlossen werden. Jedoch, kann, um einen synchronen
Flash-Steuerbetrieb zu vereinfachen, eine unbegrenzte Zahl von NOPs
oder COMMAND INHIBTs in der Befehlsabfolge erteilt werden. Für zusätzlichen
Schutz müssen
die Befehlsabfolgen dieselbe Bankadresse wie bei drei Zyklen aufweisen.
Falls die Bankadresse während
der LCR-ACTIV-WRITE-Befehlsabfolge sich ändert, oder falls die Befehlsabfolgen
nicht aufeinander folgend sind (mit der Ausnahme von NOPs oder COMMAND
INHIBITs, die erlaubt sind), werden die Schreib- und Löschstatus-Bits (SR4
und SR5) gesetzt und der Vorgang wird unterbunden.
-
Beim
Einschalten und vor dem Erteilen eines Betriebsbefehls an die Vorrichtung
wird der synchrone Flash initialisiert. Nachdem Strom an VCC, VCCQ
und VCCP (gleichzeitig) angelegt worden ist und der Takt stabil
ist, wird RP# von LOW nach HIGH überführt. Eine
Verzögerung
(in einer Ausführungsform
eine 100 μs Verzögerung)
wird benötigt,
nachdem RP# nach HIGH übergeht,
um die interne Vorrichtungsinitialisierung abzuschließen. Beim
Abschließen
der Vorrichtungsinitialisierung befindet sich die Vorrichtung im
Feld Lese-Modus und der Vorrichtung kann ein ausführbarer
Befehl erteilt werden.
-
Um
die Vorrichtung-ID, Herstellerkompatibilitäts-ID, das Vorrichtungsschutz-Bit
und jedes der Blockschutz-Bits zu lesen, wird ein READ DEVICE CONFIGURATION
(90H)-Befehl erteilt. In diesem Modus werden spezifische Adressen
erteilt, um die gewünschte
Information zu lesen. Die Hersteller-Kompatibilitäts-ID wird bei
000000H gelesen; die Vorrichtungs-ID wird bei 000001H gelesen. Die
Hersteller- Kompatibilitäts-ID und Vorrichtungs-ID
werden auf Q0–DQ7
ausgegeben. Das Vorrichtungsschutz-Bit wird bei 000003H gelesen
und jedes der Blockschutz-Bits wird an der dritten Adressstelle
innerhalb jeden Blocks (xx0002H) gelesen. Die Vorrichtungs- und
Blockschutz-Bits werden auf DQ0 ausgegeben.
-
Drei
aufeinander folgende Befehls an aufeinander folgenden Taktflanken
werden benötigt,
um Daten im Feld einzugeben (NOPs und Befehlshemmungen sind gestattet).
Im ersten Zyklus wird ein LORD COMMAND REGISTER-Befehl mit WRITE
SETUP (40H) auf A0–A7
gegeben, und die Bankadresse wird auf BA0, BA1 erteilt. Der nächste Befehl
ist ACTIVE, welcher die Zeilenadresse aktiviert und die Bankadresse
bestätigt. Der
dritte Zyklus ist Schreiben, während
dem die Anfangsspalte, die Bankadresse und Daten erteilt werden. Das
ISM-Status-Bit wird auf der folgenden Taktflanke gesetzt (vorbehaltlich
von CAS-Latenzen). Während
die ISM das WRITE ausführt,
wird das ISM-Status-Bit (SR7) 0 sein. Ein Lesevorgang der Bank unter
ISM-Steuerung kann ungültige
Daten erzeugen. Wenn das ISM-Status-Bit (SR7) auf eine logische
1 gesetzt wird, ist das WRITE abgeschlossen und die Bank ist in
einem Feld-Lesemodus und bereit für einen ausführbaren
Befehl. Schreiben auf Hardware-geschützte Blöcke erfordert auch, dass der
RP#-Stift vor dem dritten Zyklus (WRITE) auf VHH gesetzt ist und
RP# muss auf VHH gehalten werden, bis der ISM-WRITE-Vorgang abgeschlossen
ist. Die Schreib- und Lösch-Status-Bits
(SR4 und SR5) werden gesetzt, falls die LCR-ACTIV-WRITE-Befehlsabfolge
nicht in aufeinanderfolgenden Zyklen abgeschlossen wird oder die
Bankadresse sich bei einem der drei Zyklen ändert. Nachdem die ISM das
WRITE initiiert hat, kann es außer
durch ein Rücksetzen
oder durch Ausschalten des Teils nicht abgebrochen werden. Während eines
WRITE eins davon zu machen, kann die geschriebenen Daten korrumpieren.
-
Das
Ausführen
einer ERASE-Abfolge setzt alle Bits innerhalb eines Blocks auf logisch
1. Die zum Ausführen
eines ERASE notwendige Befehlsabfolge ähnelt derjenigen für ein WRITE.
Um zusätzliche
Sicherheit gegen unbeabsichtigtes Blocklöschen bereitzustellen, werden
drei aufeinander folgende Befehlsabfolgen zu aufeinanderfolgenden
Taktflanken benötigt,
um ein ERASE eines Blocks zu initiieren. Im ersten Zyklus wird LORD
COMAND REGISTER mit ERASE SETUP (20H) auf A0–A7 gegeben und die Bankadresse
des zu löschenden
Blocks wird auf BA0, BA1 erteilt. Der nächste Befehl ist ACTIVE, wobei
A10, A11, BA0, BA1 die Adresse des H zu löschen Blocks bereitstellen.
Der dritte Zyklus ist WRITE, während
dem ERASE CONFIRM (D0H) auf DQ0–DQ7
gegeben wird und die Bankadresse nochmals erteilt wird. Zur folgenden
Taktflanke wird das ISM-Status-Bit gesetzt (vorbehaltlich von CAS-Latenzen).
Nachdem ERASE CONFIRM (D0H) erteilt ist, wird die ISM das ERASE
des adressierten Blocks beginnen. Jeglicher READ-Vorgang der Bank,
wo der adressierte Block sitzt, kann ungültige Daten ausgeben. Wenn
der ERASE-Vorgang
abgeschlossen ist, ist die Bank im Feld-Lese-Modus und bereit für einen
ausführen
Befehl. Das Löschen
Hardware-geschützter
Blöcke
erfordert auch, dass der RP#-Stift vor dem dritten Zyklus (WRITE)
auf VHH gesetzt wird, und RP# muss auf VHH gehalten werden, bis
ERASE abgeschlossen ist (SR7 = 1). Falls die LCR-ACTIVE-WRITE-Befehlsabfolge nicht in
aufeinander folgenden Zyklen abgeschlossen wird (NOPs und COMMAND
INHIBITs sind zwischen den Zyklen gestattet) oder die Bankadresse
sich für
ein oder mehrere Befehlszyklen ändert,
werden die Schreiben- und Löschen-Status-Bits
(SR4 und SR5) gesetzt und der Vorgang wird unterbunden.
-
Die
Inhalte des Modus-Registers 148 können in das NV-Modus-Register 147 mittels
eines WRITE NVMODE REGISTER-Befehls kopiert werden. Vor dem Schreiben
in das NV-Modus-Register muss eine ERASE NVMODE REGISTER-Befehlsabfolge
abgeschlossen sein, um alle Bits in dem NV-Modus-Register auf logisch 1
zu setzen. Die zur Ausführung
von ERASE NVMODE REGISTER and WRITE NVMODE REGISTER notwendige Befehlsabfolge ähnelt der
eines WRITE. Siehe Wahrheitstabelle 2 für weitere Informationen über die zum
Abschließen
von ERASE NVMODE REGISTER und WRITE NVMODE REGISTER notwendigen LCR-ACTIVE-WRITE
Befehle. Nachdem der WRITE-Zyklus der ERASE NVMODE REGISTER oder
WRITE NVMODE REGISTER-Befehlsabfolge registriert worden ist, kann
ein READ-Befehl
dem Feld erteilt werden. Ein neuer WRITE-Vorgang wird nicht gestattet
werden, bis der derzeitige-ISM-Betrieb abgeschlossen ist und SR7
= 1.
-
Ausführen einer
BLOCK PROTECT-Abfolge gibt die erste Ebene von Software/Hardware-Schutz
für einen
gegebenen Block frei. Der Speicher enthält ein 16 Bit Register, das
ein Bit aufweist, das den 16 schätzbaren
Blöcken
entspricht. Der Speicher hat auch ein Register, um ein Vorrichtungs-Bit
bereitzustellen, das zum Schutz der Gesamtvorrichtung von Schreib-
und Lesevorgängen
verwendet wird. Die zur Ausführung
eines BLOCK PROTECT notwendigen Befehlsabfolge ähnelt der eines WRITE. Um zusätzliche
Sicherheit gegen unabsichtlichen Blockschutz bereitzustellen, werden
drei aufeinander folgende Befehlszyklen benötigt, um ein BLOCK PROTECT
zu initiieren. Im ersten Zyklus wird ein LORD COMMAND REGISTER mit
einem PROTECT SETUP (60H) Befehl auf A0–A7 erteilt, und die Bankadresse
des zu schützenden
Blocks wird auf BA0, BA1 erteilt. Der nächste Befehl ist ACTIVE, der
eine Zeile im zu schützenden
Block aktiviert und die Bankadresse bestätigt. Der dritte Zyklus ist
WRITE, während
dem BLOCK PROTECT CONFIRM (01H) auf DQ0–DQ7 erteilt wird und die Bankadresse
neu wiedererteilt wird. Das ISM-Status-Bit wird zur folgenden Taktflanke
gesetzt (vorbehaltlich von CAS-Latenzen). Die ISM beginnt dann den
PROTECT-Vorgang. Falls LCR-ACTIVE-WRITE nicht in aufeinander folgenden
Zyklen abgeschlossen wird (NOPs und COMMAND INHIBITs sind zwischen
Zyklen gestattet) oder sich die Bankadresse ändert, werden die Schreib-
und Lösch-Status-Bits
(SR4 und SR5) gesetzt und der Vorgang wird verhindert. Wenn das
ISM-Status-Bit (SR7) auf logisch 1 gesetzt ist, ist PROTECT abgeschlossen
worden und die Bank befindet sich im Feld-Lese-Modus und ist bereit
für einen
ausführbaren
Befehl. Wenn ein Blockschutz-Bit erst einmal auf 1 (geschützt) gesetzt
worden ist, kann es nur auf 0 rückgesetzt
werden durch den UNPROTECT ALL BLOCKS-Befehl. Die UNPROTECT ALL
BLOCKS-Befehlsabfolge ähnelt
der des BLOCK PROTECT Befehls; jedoch wird im dritten Zyklus ein
WRITE mit einem UNRPTECT ALL BLOCKS CONFIRM (D0H) Befehl erteilt
und die Adressen sind "unbeachtlich". Für zusätzliche
Informationen siehe Wahrheitstabelle 2. Die Blöcke an Stellen 0 und 15 weisen
zusätzliche
Sicherheit auf. Wenn einmal die Blockschutz-Bits an Stellen 0 und
15 auf 1 (geschützt)
gesetzt worden sind, kann jedes Bit nur auf 0 zurückgesetzt
werden, falls RP# vor dem dritten Zyklus des UNPROTECT-Vorgangs
auf VHH gebracht wird und auf VHH gehalten wird, bis der Vorgang
abgeschlossen ist (SR7 = 1). Weiterhin muss, falls das Vorrichtungsschutz-Bit
gesetzt ist, RP# vor dem dritten Zyklus auf VHH gebracht werden
und auf VHH gehalten werden, bis der BLOCK PROTECT oder UNPROTECT
ALL BLOCKS-Vorgang abgeschlossen ist. Um den Schutzstatus eines
Blocks zu überprüfen, kann
ein READ DEVICE CONFIGURATION (90H)-Befehl erteilt werden.
-
Ausführen einer
DEVICE PROTECT-Abfolge setzt das Vorrichtungsschutz-Bit auf eine
1 und verhindert eine Blockschutz-Bit-Modifikation. Die zur Ausführung eines
DEVICE PROTECT notwendige Befehlsabfolge ähnelt der eines WRITE. Drei
aufeinander folgende Befehlszyklen werden benötigt, um eine DEVICE PROTECT-Abfolge zu initiieren.
Im ersten Zyklus wird LORD COMMAND REGISTER mit einem PROTECT SETUP
(60H) auf A0–A7
erteilt, und eine Bankadresse wird auf BA0, Ba1 gegeben. Die Bankadresse
ist "unbeachtlich", aber dieselbe Bankadresse
muss für
alle drei Zyklen verwendet werden. Der nächste Befehl ist ACTIVE. Der
dritte Zyklus ist WRITE, während
dem ein DEVICE PROTECT (F1H)-Befehl an DQ0–DQ7 erteilt wird und RP# wird
auf VHH gebracht. Das ISM-Status-Bit wird in der folgenden Taktflanke
gesetzt (vorbehaltlich von CAS Latenzen). Ein ausführbarer
Befehl kann der Vorrichtung erteilt werden. RP# muss auf VHH gehalten
werden, bis das WRITE abgeschlossen ist (SR7 = 1). Ein neuer WRITE-Vorgang
wird nicht gestattet, bis der derzeitige ISM-Betrieb abgeschlossen
ist. Wenn einmal das Vorrichtungsschutz-Bit gesetzt ist, kann es nicht
auf 0 zurückgesetzt
werden. Mit Setzen des Vorrichtungsschutz-Bits auf 1 wird BLOCK
PROTECT oder BLOCK UNPROTECT verhindert, sofern nicht RP# während einer
der Vorgänge
auf VHH ist. Das Vorrichtungsschutz-Bit beeinträchtigt nicht WRITE oder ERASE-Vorgänge. Vergleiche
Tabelle 4 für
weitere Informationen über
Block und Vorrichtungsschutzvorgänge. TABELLE 4 SCHUTZVORGANGSWAHRHEITSTABELLE
FUNKTION | RP# | CS
# | DQ
M | WE
# | Adresse | VccP | DQ0–Q7 |
Vorrichtung
ungeschützt |
PROTECT
SETUP | H | L | H | L | 60H | X | X |
PROTECT BLOCK | H | L | H | L | BA | H | 01H |
PROTECT
DEVICE | VHH | L | H | L | X | X | F1H |
UNPROTECT
ALL BLOCKS | H/VHH | L | H | L | X | H | D0H |
Vorrichtung
geschützt |
PROTECT
SETUP | H
oder VHH | L | H | L | 60H | X | X |
PROTECT BLOCK | VHH | L | H | L | BA | H | 01H |
UNPROTECT
ALL BLOCKS | VHH | L | H | L | X | H | D0H |
-
Nachdem
das ISM-Status-Bit (SR7) gesetzt worden ist, können die Vorrichtung/Bank-(SR0),
Vorrichtungsschutz-(SR3), BankA0-(SR1), Bank A1-(SR2), Schreib/Schutzblock-(SR4) und
Löschen/Schutz-Aufheben-(SR5)
Status-Bits überprüft werden.
Falls eines oder eine Kombination von SR3, SR4, SR5 Status-Bits gesetzt
worden ist, ist ein Fehler während
des Betriebs aufgetreten. Die ISM kann die SR3-, SR4- oder SR5-Bits
nicht zurücksetzen.
Um diese Bits zu löschen,
muss ein CLEAR STATUS REGISTER (50H)-Befehl gegeben werden. Tabelle
5 listet die Fehlerkombinationen. TABELLE 5 STATUSREGISTERFEHLERDECODIERUNG
STATUS BITS | FEHLERBESCHREIBUNG |
SR5 | SR4 | SR3 |
0 | 0 | 0 | Keine
Fehler |
0 | 1 | 0 | WRITE-,
BLOCK PROTECT- oder
DEVICE PROTECT-Fehler |
0 | 1 | 1 | Ungültiger BLOCK
PROTECT oder DEVICE PROTECT, RP# nicht gültig (VHH) |
0 | 1 | 1 | Ungültiges BLOCK
oder DEVICE PROTECT, RP# nicht gültig |
1 | 0 | 0 | ERASE-
oder ALL BLOCK UNPROTECT-Fehler |
1 | 0 | 1 | Ungültiges ALL
BLOCK UNPROTECT, RP# nicht gültig
(VHH) |
1 | 1 | 0 | Befehlsabfolgefehler |
-
Der
synchrone Flash-Speicher wird ausgelegt und hergestellt, um anspruchsvolle
Code und Datenspeicherbedingungen zu erfüllen. Um dieses Niveau von
Zuverlässigkeit
sicherzustellen, muss VCCP während WRITE
oder ERASE-Zyklen an Vcc gebunden sein. Betrieb außerhalb
dieser Grenzen kann die Zahl von WRITE und ERASE-Zyklen vermindern,
die mit der Vorrichtung durchgeführt
werden kann. Jeder Block ist ausgelegt und angefertigt für eine Minimalhaltbarkeit
von 100.000-WRITE/ERASE-Zyklen.
-
Der
synchrone Flash-Speicher bietet verschiedene Stromsparmerkmale,
die im Feld-Lese-Modus
verwendet werden können,
um Energie zu sparen. Ein tiefer Power-Down-Modus wird freigegeben, indem RP# auf
VSS ± 0,2V
gebracht wird. Der Stromfluss (ICC) ist in diesem Modus niedrig,
wie etwa mit einem Maximum von 50 μA. Wenn CS# auf HIGH ist, geht
die Vorrichtung in den aktiven Bereitschafts-Modus. In diesem Modus ist der Strom
auch niedrig, wie etwa ein Maximum-ICC-Strom von 30 mA. Falls CS# während eines
Schreib-, Lösch-
oder Schutzvorgangs auf HIGH gebracht wird, setzt die ISM den WRITE-Vorgang
fort und die Vorrichtung verbraucht aktive Iccp-Energie, bis der
Vorgang abgeschlossen ist.
-
Unter
Bezugnahme auf 16 wird ein Flussdiagramm einer
selbst-timenden Schreibabfolge gemäß einer Ausführungsform
der vorliegenden Erfindung beschrieben. Die Abfolge beinhaltet Laden
des Befehlsregisters (Code 40H), Empfangen eines aktiven Befehls
und einer Zeilenadresse und Empfangen eines Schreibbefehls und einer
Spaltenadresse. Die Abfolge stellt dann eine Statusregisterabfrage
bereit, um festzustellen, ob das Schreiben abgeschlossen ist. Die
Abfrage überwacht
Statusregister-Bit 7 (SR7), um festzustellen, ob es auf 1 gesetzt
worden ist. Eine optionale Statusprüfung kann enthalten sein. Wenn
das Schreiben abgeschlossen ist, wird das Feld in den Feld Lese-Modus
gebracht.
-
Unter
Bezugnahme auf 17 wird ein Flussdiagramm einer
vollständigen
Schreib-Status-Prüfabfolge
gemäß einer
Ausführungsform
der vorliegenden Erfindung vorgestellt. Die Abfolge fragt Status-Register-Bit 4
(SR4) ab, um festzustellen, ob es auf 0 gesetzt ist. Falls SR4 eine
1 ist, gab es einen Fehler beim Schreibvorgang. Die Abfolge fragt
auch Status-Register-Bit 3 (SR3) ab, um festzustellen, ob es auf
0 gesetzt ist. Falls SR3 eine 1 ist, hat es einen "ungültigen Schreiben"-Fehler während des
Schreibvorgangs gegeben.
-
Unter
Bezugnahme auf 18 wird ein Flussdiagramm einer
selbst getimten Block-Lösch-Abfolge
gemäß einer
Ausführungsform
der vorliegenden Erfindung bereitgestellt. Die Abfolge beinhaltet
Laden des Befehlsregisters (Code 20H) und Empfangen eines aktiven
Befehls und einer Zeilenadresse. Der Speicher bestimmt dann, ob
der Block geschützt
ist. Falls er nicht geschützt
ist, führt
der Speicher einen Schreibvorgang (D0H) am Block aus und überwacht
das Status-Register bezüglich
des Abschlusses. Eine optionale Status-Prüfung kann durchgeführt werden
und der Speicher wird in einen Feld-Lese-Modus gebracht. Falls der Block
geschützt
ist, wird ein Löschen
nicht gestattet, wenn nicht das RP#-Signal auf einer erhöhten Spannung ist
(VHH).
-
19 illustriert
ein Flussdiagramm einer kompletten Block-Lösch-Status-Prüfabfolge
gemäß einer Ausführungsform
der vorliegenden Erfindung. Die Abfolge überwacht das Status-Register,
um festzustellen, ob ein Befehls-Abfolge-Fehler aufgetreten ist
(SR4 oder SR5 = 1). Falls SR3 auf 1 gesetzt ist, ist ein "Ungültiges Löschen" oder "Schutz-Aufheben"-Fehler aufgetreten.
Schließlich
ist ein "Block-Lösch- oder "Schutz-Aufheben"-Fehler passiert, falls SR5 auf 1 gesetzt
ist.
-
20 ist
ein Flussdiagramm einer Block-Schutz-Abfolge gemäß einer Ausführungsform
der vorliegenden Erfindung. Die Abfolge beinhaltet Laden des Befehls-Registers
(Code 60H) und Empfangen eines aktiven Befehls und einer Zeilenadresse.
Der Speicher stellt dann fest, ob der Block geschützt ist.
Falls er nicht geschützt
ist, führt
der Speicher einen Schreibvorgang (01H) zum Block durch und überwacht
das Status-Register bezüglich
des Abschlusses. Eine optionale Status-Prüfung
kann durchgeführt
werden und der Speicher wird in einen Feld-Lese-Modus gebracht.
Falls der Block geschützt
ist, wird das Löschen
nicht erlaubt, wenn nicht das RP#-Signal auf erhöhter Spannung (VHH) ist.
-
Unter
Bezugnahme auf 21 wird ein Flussdiagramm einer
kompletten Block-Status-Prüfabfolge
gemäß einer
Ausführungsform
der vorliegenden Erfindung bereitgestellt. Die Abfolge überwacht
die Status-Register-Bits 3, 4 und 5, um festzustellen, ob Fehler
entdeckt wurden.
-
22 ist
ein Flussdiagramm einer Vorrichtungs-Schutz-Abfolge gemäß einer
Ausführungsform
der vorliegenden Erfindung. Die Abfolge beinhaltet Laden des Befehlsregisters
(Code 60H) und Empfangen eines aktiven Befehls und einer Zeilenadresse.
Der Speicher stellt dann fest, ob RP# auf VHH ist. Der Speicher
führt einen
Schreibvorgang (F1H) durch und überwacht
das Status-Register bezüglich
des Abschlusses. Eine optionale Statusprüfung kann durchgeführt werden
und der Speicher wird in einen Feld-Lese-Modus gebracht.
-
23 ist
ein Flussdiagramm einer Block-Schutz-Aufhebe-Abfolge gemäß einer
ersten Ausführungsform
der vorliegenden Erfindung. Die Abfolge beinhaltet Laden des Befehls-Registers
(Code 60H), und Empfangen eines aktiven Befehls und einer Zeilenadresse.
Der Speicher stellt dann fest, ob die Speichervorrichtung geschützt ist.
Falls sie nicht geschützt
ist, stellt der Speicher fest, ob die Urlade-(Boot)-Stellen (Blöcke 0 und
15) geschützt
sind. Falls keiner der Blöcke
geschützt
ist, führt
der Speicher einen Schreib-Vorgang (D0H) zum Block aus und überwacht
das Status-Register
bezüglich
des Abschlusses. Eine optionale Status-Prüfung kann durchgeführt werden
und der Speicher wird in einen Feld-Lese-Modus gebracht. Falls die
Vorrichtung geschützt
ist, wird das Löschen
nicht gestattet, wenn nicht das RP#-Signal auf einer erhöhten Spannung
(VHH) ist. Gleichermaßen
stellt der Speicher, falls die Urladestellen geschützt sind,
fest, ob der Schutz aller Blöcke aufgehoben
werden sollte.
-
24 illustriert
den Zeitablauf eines Initialisierungs- und Lade-Modus-Register-Vorgangs. Das Modus-Register
wird durch Bereitstellen eines Lade-Modus-Register-Befehls und Bereitstellen
von Vorgangs-Codes (opcode) auf den Adressleitungen programmiert.
Der Opcode wird in das Modus-Register geladen. Wie oben erläutert, werden
die Inhalte des nichtflüchtigen
Modus-Registers automatisch beim Einschalten in das Modus-Register
geladen und der Lade-Modus-Register-Vorgang muss nicht nötig sein.
-
25 illustriert
die Zeitabfolge eines Takt-Aufhebe-Modus-Betriebs und 26 illustriert
die Zeitabfolge eines anderen Burst-Lese-Vorgangs. 27 illustriert
die Zeitabfolge abwechselnder Bank-Lese-Zugriffe. Hier werden aktive
Befehle benötigt,
um Bankadressen zu ändern.
Ein Vollseiten-Burst-Lesebetrieb wird in 28 illustriert.
Man beachte, dass der Vollseiten-Burst sich nicht selbst beendet,
sondern einen Beenden-Befehl erfordert.
-
29 illustriert
die Zeitabfolge eines Lesevorgangs unter Verwendung einer Daten-Masken-Signals. Das
DQM-Signal wird verwendet, um den Datenausgang zu maskieren, so
dass die Dout m + 1 nicht auf den DQ-Verbindungen bereit gestellt
ist.
-
Unter
Bezugnahme auf 30 wird die Zeitabfolge eines
Schreibvorgangs, gefolgt von einem Lesen einer anderen Bank, illustriert.
Bei diesem Vorgang wird ein Schreiben auf Bank a durchgeführt und
ein nachfolgendes Lesen von Bank b durchgeführt. Es wird in jeder Bank
auf dieselbe Zeile zugegriffen.
-
Unter
Bezugnahme auf 31 wird die Zeitabfolge eines
Schreibvorgangs, gefolgt von einem Lesen derselben Bank, illustriert.
Bei diesem Vorgang wird ein Schreiben auf Bank a durchgeführt und
ein nachfolgendes Lesen von Bank a durchgeführt. Es wird beim Lesevorgang
auf eine andere Zeile zugegriffen und der Speicher muss darauf warten,
dass der vorhergehende Schreibvorgang abgeschlossen ist. Dies unterscheidet sich
vom Lesen der 30, bei dem das Lesen nicht
aufgrund des Schreibvorgangs verzögert wurde.
-
Schnittstellenbefehlsarchitektur
-
Ein
SDRAM verwendet drei Befehlsleitungen, RAS, CAS und WE, um seine
Befehle zu decodieren. Diese drei Leitungen gestatten das Decodieren
von acht verschiedenen DRAM-artigen Befehlen, wie dem Fachmann bekannt.
Sie beinhalten NOP, Aktivieren, Lesen, Schreiben, Auffrischen, Vorladen,
Modusregisterladen und Burstende. Der vorliegende Flash-Speicher
führt Lesevorgänge wie
ein SDRAM durch und verwendet damit die Mehrheit der obigen Befehle.
Auf der anderen Seite weist der Flash-Speicher eine Reihe von Vorgängen auf,
die bei SDRAM nicht existieren. Diese Vorgänge beinhalten Befehle wie
Programmiereinstellen, Löscheinstellen,
Löschbestätigen, Feld
Lesen, Status Lesen, Intelligenten Identifikator Lesen, Statusregisterlöschen, und
Befehle, die sich auf Blockschutzschemata des Flash-Speichers beziehen.
-
Diese
Erfindung erhält
die Befehlsarchitektur des SDRAM soweit als möglich ungestört, während sie die
Decodierung Flash-bezogener Befehle gestattet. Ein Befehl, der bei
SDRAM verwendet wird und bei Flash-Speicher nicht notwendig ist,
ist der Auffrisch-(Refresh-)-Befehl. DRAM benötigt aufgrund der Tatsache, dass
es dynamisch ist, ein periodisches Auffrischen, um seine Daten zu
erhalten. Die Flash-Speicherzellen
der vorliegenden Erfindung sind nichtflüchtig und erfordern den Auffrisch-Vorgang
nicht. Die Befehlsarchitektur der vorliegenden Erfindung verwendet
die Auffrisch-Befehlskombination der drei Befehlsstifte, um einen
Befehlsregisterladebefehl (LCR) für den Flashspeicher wiederzugeben.
Durch Zuweisen dieser Kombination liest der Speicher die Adressleitungen
und lädt
ein Befehlsregister. Der Speicher verwendet den Inhalt des Befehlsregisters 133 (1A),
um Flash-bezogene Vorgänge
durchzuführen.
-
Dies
ist äquivalent
mit einem Eröffnen
eines sekundären
Decodierungsmechanismus, der es gestattet, dass alle Flash-Vorgänge ausführbar sind,
während
sehr kleine Änderungen
an einer SDRAM-Befehlsschnittstelle gemacht werden. Die für Flash-Vorgänge verwendeten
Befehle sind auch zu den normalen Flash-Befehlen, die derzeit verwendet
werden, kompatibel. Die vorliegende Erfindung fügt daher innerhalb der SDRAM-Befehlsarchitektur
ein neues Befehlsschema hinzu, während
sie die Kompatibilität
mit anderen Flash-Speicherschnittstellen
bewahrt. Vgl. Wahrheitstabelle 2 für eine Liste von auf den Adressleitungen
bereitgestellten, beispielhaften Codes. Die vorliegende Erfindung
lädt daher
ein Flash-Befehlsregister mit auf den Adressleitungen bereitgestellten
Daten, wenn die Befehlsleitungen Daten enthalten, die einer äquivalenten
DRAM-Auffrisch-Befehlsabfolge
entsprechen.
-
Bei
einem Standard-Flash-Speicher sind Daten- oder E/A-Verbindungen
Verwendungen, um Betriebsbefehle zu decodieren. Dies führt bei
synchronen Speichern zu Problemen. Das heisst, falls Burst-Lesen durchgeführt wird
und E/A-Verbindungen
verwendet werden, um Befehle bereitzustellen, muss das System darauf
warten, dass der Lese-Burst abgeschlossen ist. Damit sind Konflikte
auf dem Bus möglich.
Daher lädt die
vorliegende Erfindung ein Flash-Befehlsregister mit auf Adressleitungen
bereitgestellten Daten.
-
Schlussfolgerung
-
Ein
synchroner Flashspeicher beinhaltet ein Feld nichtflüchtiger
Speicherzellen. Die Speichervorrichtung hat eine Gehäusekonfiguration,
die zu einem SDRAM kompatibel ist. Die Speichervorrichtung umfasst
ein Feld nichtflüchtiger
Speicherzellen und ein Befehlsregister zum Speichern von Befehlsdaten,
die zum Steuern von Flashspeichervorgängen verwendet werden. Im Betrieb
wird das Befehlsregister durch Initiieren eines Befehlsregisterladevorgangs
geladen, der eine Kombination eines Spaltenadressabtastsignals (CAS#),
eines Zeilenadressabtastsignals (RAS#) und eines Schreibfreigabesignals
(WE#) verwendet.