DE10196002B3 - Synchroner nichtflüchtiger Speicher und Verfahren zum Betrieb eines synchronen nichtflüchtigen Speichers - Google Patents
Synchroner nichtflüchtiger Speicher und Verfahren zum Betrieb eines synchronen nichtflüchtigen Speichers Download PDFInfo
- Publication number
- DE10196002B3 DE10196002B3 DE10196002T DE10196002T DE10196002B3 DE 10196002 B3 DE10196002 B3 DE 10196002B3 DE 10196002 T DE10196002 T DE 10196002T DE 10196002 T DE10196002 T DE 10196002T DE 10196002 B3 DE10196002 B3 DE 10196002B3
- Authority
- DE
- Germany
- Prior art keywords
- data
- read
- write
- synchronous
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2281—Timing of a read operation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/229—Timing of a write operation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2216/00—Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
- G11C2216/12—Reading and writing aspects of erasable programmable read-only memories
- G11C2216/22—Nonvolatile memory in which reading can be carried out from one memory bank or array whilst a word or sector in another bank or array is being erased or programmed simultaneously
Landscapes
- Dram (AREA)
- Read Only Memory (AREA)
Abstract
Ein synchroner nichtflüchtiger Speicher, umfassend:
ein Feld nichtflüchtiger Speicherzellen, die in einer Mehrzahl von adressierbaren Bänken angeordnet sind;
eine mit dem Feld gekoppelte Lese/Schreibschaltung, wobei die Lese/Schreibschaltung erste Daten in eine erste der Mehrzahl von adressierbaren Bänken schreibt und gleichzeitig zweite Daten aus einer zweiten der Mehrzahl von adressierbaren Bänken liest,
wobei die Lese/Schreibschaltung einen Schreibsignalspeicher umfasst, um die auf externen Datenkommunikationsverbindungen bereit gestellten ersten Daten zu speichern,
wobei eine einzelne Feldzeile über eine Vielzahl von adressierbaren Bänken für einen Lese- und Schreibzugriff geöffnet ist,
wobei die Lese/Schreibschaltung die ersten Daten auf die offene Feldzeile der ersten der Mehrzahl von adressierbaren Bänken schreibt und im wesentlichen gleichzeitig zweite Daten von der offenen Feldzeile der zweiten der Mehrzahl von adressierbaren Bänken liest, und
wobei die externen Datenkommunikationsverbindungen in einem Muster angeordnet sind, das zu synchronen flüchtigen Speichervorrichtungen kompatibel ist.
ein Feld nichtflüchtiger Speicherzellen, die in einer Mehrzahl von adressierbaren Bänken angeordnet sind;
eine mit dem Feld gekoppelte Lese/Schreibschaltung, wobei die Lese/Schreibschaltung erste Daten in eine erste der Mehrzahl von adressierbaren Bänken schreibt und gleichzeitig zweite Daten aus einer zweiten der Mehrzahl von adressierbaren Bänken liest,
wobei die Lese/Schreibschaltung einen Schreibsignalspeicher umfasst, um die auf externen Datenkommunikationsverbindungen bereit gestellten ersten Daten zu speichern,
wobei eine einzelne Feldzeile über eine Vielzahl von adressierbaren Bänken für einen Lese- und Schreibzugriff geöffnet ist,
wobei die Lese/Schreibschaltung die ersten Daten auf die offene Feldzeile der ersten der Mehrzahl von adressierbaren Bänken schreibt und im wesentlichen gleichzeitig zweite Daten von der offenen Feldzeile der zweiten der Mehrzahl von adressierbaren Bänken liest, und
wobei die externen Datenkommunikationsverbindungen in einem Muster angeordnet sind, das zu synchronen flüchtigen Speichervorrichtungen kompatibel ist.
Description
- Technisches Gebiet der Erfindung
- Die vorliegende Erfindung bezieht sich auf einen synchronen nichtflüchtigen Speicher und ein Verfahren zum Betrieb eines synchronen nichtflüchtigen Speichers.
- Die
US 5,245,572 offenbart einen asynchronen Flashspeicher mit herkömmlichen asynchronen Lese- und Schreibmodi. Ferner wird ein Schreibsignalspeicher zum Speichern der Schreibdaten offenbart. Der Flashspeicher umfasst zwei interne nichtflüchtige Speicherfelder, einen zugehörigen Schaltkreis, ein Adressenregister und einen Multiplexer, um dem Speicher ein gleichzeitiges Ausführen einer Leseoperation und einer Schreiboperation zu ermöglichen. - 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 (randomaccess memory, Direktzug riffspeicher). 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 (readonly 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 nicht-flü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 nichtflü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.
- 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.
- Der erfindungsgemäße synchrone nichtflüchtige Speicher umfasst die Merkmale gemäß Anspruch 1.
- Das erfindungsgemäße Verfahren zum Betrieb eines synchronen nichtflüchtigen Speichers umfasst die Merkmale gemäß Anspruch 6.
- 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 selbstgesteuerten 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 selbstgesteuerten 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; -
31 illustriert den Zeitablauf eines Schreibvorgangs, dem ein Lesen derselben Bank folgt; -
32 illustriert ein Speichersystem der vorliegenden Erfindung; und -
33 illustriert ein Mehrprozessorsystem der vorliegenden Erfindung. - 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 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 Speichervorrichtung100 enthält ein Feld nicht-flüchtiger Flashspeicherzellen102 . Dieses Feld ist in einer Mehrzahl adressierbarer Bänke angeordnet. In einer Ausführungsform enthält der Speicher vier Speicherbänke104 ,106 ,108 und110 . Jede Speicherbank enthält adressierbare Sektoren von Speicherzeilen. Auf die im Speicher gespeicherten Daten kann unter Verwendung extern bereit gestellter Stellenadressen zugegriffen werden, die vom Adressregister112 empfangen worden sind. Die Adressen werden unter Verwendung einer Zeilenadressmultiplexerschaltung114 decodiert. Die Adressen werden auch unter Verwendung einer Banksteuerlogik116 und Zeilenadresssignalspeicher- und Decoderschaltung118 decodiert. Um auf eine geeignete Spalte des Speichers zuzugreifen, koppelt die Spaltenadressenzähl- und Signalspeicherschaltung120 die empfangenen Adressen an die Spaltendecodierschaltung122 . Schaltung124 stellt Eingabe-/Ausgabetorsteuerung, Datenmaskenlogik, Lesedatensignalspeicherschaltung und Schreibtreiberschaltung bereit. Daten werden durch die Dateneingangsregister126 eingegeben und durch die Datenausgangsregister128 ausgegeben. Kommandoausführungslogik130 wird bereit gestellt, um die grundlegenden Vorgänge der Speichervorrichtung zu steuern. Ein Zustandsautomat bzw. eine Statusmaschine132 wird auch bereit gestellt, um bestimmte Vorgänge zu steuern, die mit den Speicherfeldern und -zellen durchgeführt werden. Ein Statusregister134 und ein Identifikationsregister136 können ebenfalls bereit gestellt werden, um Daten auszugeben. -
1B illustriert eine Verbindungsstiftzuordnung einer Ausführungsform der vorliegenden Erfindung. Der Speicherbaustein150 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 Vccp154 . 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äuses160 , das Bumpverbindungen anstelle von Stiftverbindungen von1B 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 Speicher12 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 LOAD COMAND REGISTER-Vorgangs bereit zu stellen, wie unten erklärt wird. Die Adressleitungen A0–A11 werden auch verwendet, um während eines LOAD 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 die interne Statusmaschine (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 auf1B wird eine VCCQ-Verbindung verwendet, um den DQ-Verbindungen einen isolierten Strom zur Verfügung zu stellen, 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-Verbindung144 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-/pumpschaltkreis145 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 Modusregisters147 (NVMode-Register) werden die Inhalte während der Initialisierung automatisch in ein flüchtiges Modusregister148 geladen. Die Vorrichtung wird in einem programmierten Zustand hochgefahren und erfordert kein Nachladen des nicht-flüchtigen Modusregisters147 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 in2 gezeigt. Das Modusregister wird über einen LOAD MODE REGISTER-Befehl programmiert und behält gespeicherte Informationen, bis es reprogrammiert wird. Die Inhalte des Modusregisters können in das NV-Modus-Register147 kopiert werden. Die NVModusregistereinstellungen laden das Modusregister148 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-Modusregister147 zu speichern. Die Inhalte des NVModusregisters werden dann in ein flüchtiges Modusregister148 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 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 LOAD 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 Modusregister148 geladen und sind die Vorgabedaten, wenn sie nicht dynamisch mit dem LOAD 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 der internen Statusmaschine132 und den Lesepfad (d. h. Speicherfeld102 , ID-Register136 oder Statusregister134 ). - 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,11ns-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 Burst 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 in7 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 in8 gezeigt durchgeführt werden, oder jedes nachfolgende READ kann an einer anderen Bank durchgeführt werden. - Daten von jeglichem READ-Burst können mit einem nachfolgenden WRITE-Befehl (WRITE-Befehlen muss ein WRITE SETUP vorausgehen) abgeschnitten werden und auf Daten von einem Festlängen-READ-Burst 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 einen E/A-Konkflikt 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, Buskonkurrenz ohne das Hinzufügen eines NOP-Zyklus zu vermeiden. - 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 in12 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 BUSRT 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 Wahrheitstabelle 4 – derzeitiger Status Bank n – Kommando an Bank n WAHRHEITSTABELLE 5 – derzeitiger Zustand Bank n – Kommando an Bank m
- 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 Befehlsausführlogik
130 (CEL). Die CEL steuert den Betrieb der internen Statusmaschine132 (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 ISM132 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 (eliminiert Überlöschen), inkrementiert und überwacht ERASE-Versuche und setzt Bits im ISM-Statusregister.
- Das 8-Bit-ISM-Statusregister
134 gestattet einem externen Prozessor200 , 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ücksetzen/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 Eingag 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 ISM132 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 und110 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 Statusregister134 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-Registers134 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-Register148 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 LOAD 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 - 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 - 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 LOAD 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 LOAD 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 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-Register147 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 LOAD 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 LOAD 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
- 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
- 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 ermöglicht bzw. freigegeben, indem RP# auf VSS ± 0,2 V 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 aktive 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 selbstgesteuerten 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 SR4 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 StatusPrü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 darin 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 und26 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 in28 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 der30 , bei dem das Lesen nicht aufgrund des Schreibvorgangs verzögert wurde. - Der synchrone Flash-Speicher stellt einen latenzfreien Schreibbetrieb zur Verfügung. Dies unterscheidet ihn von einem SDRAM, der vom System das Bereitstellen von Latenz für Schreibvorgänge verlangt, genau wie bei einem Lesevorgang. So nimmt der Schreibvorgang vom System-Bus nicht so viele Zyklen weg wie der SDRAM und kann daher den System-Lese-Durchsatz verbessern, vergleiche
12 , wo die Schreibdaten, Din im selben Taktzyklus wie bei dem Schreibbefehl und die Spaltenadresse bereitgestellt werden. Der Taktzyklus T1 von12 muss nicht unbedingt ein NOP-Befehl sein (vergleiche30 ). Der Lese-Befehl kann zum nächsten Taktzyklus, der den Schreibdaten folgt, bereitgestellt werden. Während somit der Lesevorgang erfordert, dass die DQ-Verbindungen für eine vorgegebene Zahl von Taktzyklen, folgend dem Lese-Befehl (Latenz) verfügbar bleiben, können die DQ-Verbindungen unmittelbar, nachdem der Schreibbefehl bereitgestellt ist, verwendet werden (keine Latenz). Als solche gestattet die vorliegende Erfindung die Null-Bus-Umsatzfähigkeit. Dies unterscheidet sich wesentlich von SDRAM, wo mehrere Warte-Zyklen auf dem System-Bus benötigt werden, wenn zwischen Lese- und Schreib-Vorgängen gewechselt wird. Der synchrone Flash stellt diese zwei Merkmale bereit und könnte den Bus-Durchsatz verbessern. - Unter Bezugnahme auf
32 enthält ein System300 der vorliegenden Erfindung einen synchronen Speicher302 , der interne Schreib-Signalspeicher304 aufweist, die verwendet werden zum Speichern von auf den DQ-Eingängen306 empfangenen Schreib-Daten. Die Schreib-Signalspeicher sind mit dem Speicherfeld310 gekoppelt. Wieder kann das Speicherfeld in einer Zahl von adressierbaren Blöcken angeordnet sein. Daten können auf einen der Blöcke geschrieben werden, während ein Lesevorgang an anderen Blöcken durchgeführt werden kann. Die Speicherzellen des Feldes können nichtflüchtige Speicherzellen sein. Daten-Kommunikationsverbindungen306 werden zur bidirektionalen Datenkommunikation mit einer externen Vorrichtung, wie einen Prozessor120 oder anderem Speicher-Steuergerät verwendet. - Ein Daten-Puffer
330 kann mit den Daten-Kommunikationsverbindungen gekoppelt sein, um die bidirektionale Daten-Kommunikation zu verwalten. Dieser Puffer kann ein traditioneller FIFO oder Pipeline-Eingabe/Ausgabe-Pufferschaltkreis sein. Der Schreib-Signalspeicher ist zwischen dem Datenpuffer und dem Speicherfeld eingekoppelt, um auf den Daten-Kommunikationsverbindungen bereitgestellte Daten zu übernehmen. Schließlich wird eine Steuerschaltung bereitgestellt, um die am Feld durchgeführten Lese- und Schreibvorgänge zu verwalten. - Durch Übernehmen der eingegebenen Schreibdaten kann der Datenbus
306 (DQ's) freigegeben und der Schreibvorgang unter Verwendung der gepufferten Daten durchgeführt werden. Nachfolgende Schreibvorgänge auf dem Speicher können verhindert werden, während der erste Schreibvorgang durchgeführt wird. Jedoch ist der Bus verfügbar, um unmittelbar einen Lesevorgang am Speicher durchzuführen. - Die vorliegende Erfindung sollte nicht mit einer traditionellen Eingabe/Ausgabe-Puffer-Architektur verwechselt werden. Das heißt, während früherer Speichervorrichtungen einen Eingangspuffer auf dem DQ-Eingabepfad und einen Ausgangspuffer auf den DQ-Ausgabepfad verwendeten, wird die für sowohl Lese- als auch Schreibvorgänge verwendete Taktlatenz gleich gehalten. Die vorliegende Erfindung kann Eingabe/Ausgabe-Puffer-Schaltungen beinhalten, um einer Schnittstelle die DQ-Verbindungen und einen externen Prozessor bereit zu stellen. Die zusätzlichen Schreib-Signalspeicher gestatten es dem Speicher, den Schreibpfad-Vorgang in einen Bereich des Speichers zu isolieren, während Daten-Lese-Vorgänge an anderen Speicherbereichen gestattet sind.
- Gleichzeitige Lese- und Schreibvorgänge
- Frühere Flash-Speichervorrichtungen hatten sehr beschränkte Simultanbetriebsfähigkeiten. Das heißt, vorbekannte Flash-Speicher blockierten typischerweise das Lesen auf dem Speicher, während ein Schreibvorgang durchgeführt wurde. Einige Speichervorrichtungen erlaubten ein Lesen während des Schreibens durch Anhalten eines laufenden Schreibvorgangs, worauf sie das Lesen des Feldes gestatteten. Wieder andere Flash-Speicher können Lesen während des Schreibens durch Bereitstellen eines begrenzten Abschnitts erlauben, in dem geschrieben werden kann, während der Rest des Speichers für Lesen verfügbar ist. Die Intention eines solchen Flash-Speichers ist es gewesen, die Notwendigkeit eines getrennten EEPROM in einem System zu eliminieren. Der begrenzte Abschnitt stellt eine EEPROM-Stelle im Flash bereit, und lässt den Rest des Speichers für den Flash-Betrieb übrig. Diese Flash-Speicher gestatten jedoch nicht Lesen, während Schreibvorgänge auf das gesamte Speicherfeld durchgeführt werden können.
- Die vorliegende Erfindung stellt ein Flash-Feld bereit, das in Bankstrukturen ähnlich einem SDRAM angeordnet ist. In einer Ausführungsform ist ein 64M-Synchron-Flash in vier 16M-Bänke mit dem gleichen Adressierschema wie ein 64M-SDRAM geteilt. Solche Bänke sind weiter in kleinere adressierbare 4M Sektoren gebrochen, die gelöscht oder programmiert werden können. Der Speicher gestattet gleichzeitiges Lesen und Schreiben auf einer pro-Bank-Basis. Somit kann in eine Bank geschrieben werden, während ein gleichzeitiges Lesen auf einer der anderen Bänke aufgeführt werden kann. Wie dem Fachmann bekannt, kann ein SDRAM in jeder Bank eine gemeinsame Zeile offen haben. Lese- und Schreibvorgänge können sequentiell über die offene Zeile und über die Feldbänke hinweg durchgeführt werden.
- Der vorliegende synchrone Flash-Speicher hat eine Bankarchitektur ähnlich wie SDRAM, die es gestattet, eine Zeile in jeder der Bänke zu öffnen, während auf eine der Bänke geschrieben wird. Unter Bezugnahme auf
33 wird eine Ausführungsform eines Verarbeitungssystems400 der vorliegenden Erfindung illustriert. Ein synchroner Flash-Speicher410 ist mit mehreren Prozessoren440 ,442 ,444 und446 über einen bidirektionalen Datenbus435 gekoppelt. Der Speicher enthält ein Feld nichtflüchtiger Speicherzellen, die in mehreren Bänken412 ,414 ,416 und418 angeordnet sind. Eine Lese/Schreibschaltung430 wird allgemein gezeigt, um die Datenkommunikation mit diesem Feld zu verwalten. Im Betrieb kann ein Prozessor, wie ein Prozessor440 , einen Schreibvorgang in Zeile420 von Feld-Bank414 initiieren. Während der Schreibvorgang durchgeführt wird, kann ein zweiter Prozessor, wie etwa Prozessor442 , Daten von Zeile420 einer zweiten Feld-Bank lesen. Dies gestattet es vier Prozessoren, voneinander unabhängig mit der synchronen Flash-Speichervorrichtung zu arbeiten. Die vorliegende Erfindung ist nicht auf vier Bänke oder vier Prozessoren beschränkt. Einzelne oder mehrere Prozessoren können einen Schreibvorgang auf einer Bank durchführen, während sie Daten von dem verbleibenden Speicherfeld Bänken lesen, vergleiche zum Beispiel32 . Somit können gleichzeitige Schreib- und Mehrfach-Lesevorgänge ablaufen. - Schlussfolgerungen
- Ein synchroner Flash-Speicher ist beschrieben worden, der ein Feld von nichtflüchtigen Speicherzellen enthält. Das Speicherfeld ist in Zeilen und Spalten angeordnet und kann weiterhin in adressierbaren Blöcken angeordnet sein. Datenkommunikationsverbindungen werden für bidirektionale Datenkommunikation mit einer externen Vorrichtung(en) verwendet, wie etwa ein Prozessor oder andere Speichercontroller. Ein Schreib-Signalspeicher ist zwischen dem Datenpuffer und dem Speicherfeld eingekoppelt, um auf den Datenkommunikationsverbindungen bereitgestellte Daten zu übernehmen. Der Speicher kann Daten in eine Stelle, wie etwa einen Speicherfeldblock, schreiben, während Daten von einer zweiten Stelle, wie etwa einem zweiten Speicherfeldblock, gelesen werden. Die Schreib- und Lesevorgänge werden auf einer gemeinsamen adressierbaren Zeile der Speicherblöcke durchgeführt.
Claims (11)
- Ein synchroner nichtflüchtiger Speicher, umfassend: ein Feld nichtflüchtiger Speicherzellen, die in einer Mehrzahl von adressierbaren Bänken angeordnet sind; eine mit dem Feld gekoppelte Lese/Schreibschaltung, wobei die Lese/Schreibschaltung erste Daten in eine erste der Mehrzahl von adressierbaren Bänken schreibt und gleichzeitig zweite Daten aus einer zweiten der Mehrzahl von adressierbaren Bänken liest, wobei die Lese/Schreibschaltung einen Schreibsignalspeicher umfasst, um die auf externen Datenkommunikationsverbindungen bereit gestellten ersten Daten zu speichern, wobei eine einzelne Feldzeile über eine Vielzahl von adressierbaren Bänken für einen Lese- und Schreibzugriff geöffnet ist, wobei die Lese/Schreibschaltung die ersten Daten auf die offene Feldzeile der ersten der Mehrzahl von adressierbaren Bänken schreibt und im wesentlichen gleichzeitig zweite Daten von der offenen Feldzeile der zweiten der Mehrzahl von adressierbaren Bänken liest, und wobei die externen Datenkommunikationsverbindungen in einem Muster angeordnet sind, das zu synchronen flüchtigen Speichervorrichtungen kompatibel ist.
- Der synchrone nichtflüchtige Speicher von Anspruch 1, wobei die Mehrzahl von adressierbaren Bänken vier Blöcke umfasst.
- Der synchrone nichtflüchtige Speicher von Anspruch 1 oder 2, bei dem die externen Datenkommunikationsverbindungen in einem Muster angeordnet sind, das zu einem Synchronous Dynamic Random Access Memory (SDRAM) kompatibel ist.
- Der synchrone nichtflüchtige Speicher nach einem der Ansprüche 1 bis 3, bei dem der synchrone nichtflüchtige Speicher einen Teil eines Verarbeitungssystems bildet, das umfasst: einen Prozessor; und einen mit dem Prozessor gekoppelten, synchronen nichtflüchtigen Speicher, umfassend, ein Feld nichtflüchtiger Speicherzellen, die in einer Mehrzahl von adressierbaren Bänken angeordnet sind, eine mit dem Feld gekoppelte Lese/Schreibschaltung, wobei die Lese/Schreibschaltung erste, von dem Prozessor bereitgestellte Daten in eine erste der Mehrzahl von adressierbaren Bänken schreibt und gleichzeitig zweite Daten von einer zweiten der Mehrzahl von adressierbaren Bänken liest und die zweiten Daten dem Prozessor bereitstellt, einen Schreib-Signalspeicher, der angepasst ist, die ersten Daten zu speichern während sie in die erste der Vielzahl von adressierbaren Bänken geschrieben werden, und wobei eine einzelne Feldzeile über eine Mehrzahl von adressierbaren Bänken für einen Lese- und Schreibzugriff geöffnet ist, wobei die Lese/Schreibschaltung die ersten Daten auf die offene Feldzeile der ersten der Mehrzahl von adressierbaren Bänken schreibt und im wesentlichen gleichzeitig zweite Daten von der offenen Feldzeile der zweiten der Mehrzahl von adressierbaren Bänken liest.
- Der synchrone nichtflüchtige Speicher nach einem der Ansprüche 1 bis 3, bei dem der synchrone nichtflüchtige Speicher einen Teil eines Verarbeitungssystems bildet, das umfasst: erste und zweite Prozessoren; und einen mit den ersten und zweiten Prozessoren gekoppelten, synchronen nichtflüchtigen Speicher, wobei der synchrone nichtflüchtige Speicher umfasst: ein Feld nichtflüchtiger Speicherzellen, die in einer Mehrzahl von adressierbaren Bänken angeordnet sind, einen Schreib-Signalspeicher, der mit dem Feld zum Speichern von Schreib-Daten gekoppelt ist, eine mit dem Feld gekoppelte Lese/Schreib-Schaltung, wobei die Lese/Schreibschaltung erste, durch den ersten Prozessor bereit gestellte Daten in eine erste der Mehrzahl von adressierbaren Bänken schreibt und gleichzeitig zweite Daten von einer zweiten der Mehrzahl von adressierbaren Bänken liest und die zweiten Daten dem zweiten Prozessor bereit stellt, wobei eine einzelne Feldzeile über eine Mehrzahl von adressierbaren Bänken für einen Lese- und Schreibzugriff geöffnet ist, und wobei die Lese/Schreibschaltung die ersten Daten auf die offene Feldzeile der ersten der Mehrzahl von adressierbaren Bänken schreibt und im wesentlichen gleichzeitig zweite Daten von der offenen Feldzeile der zweiten der Mehrzahl von adressierbaren Bänken liest.
- Ein Verfahren zum Betreiben eines synchronen nichtflüchtigen Speichers, umfassend: Zugreifen auf eine gemeinsame adressierbare Zeile der ersten und zweiten Bankstellen eines einzelnen Speicherfeldes, Schreiben erster Daten in die erste Bankstelle in dem Speicherfeld des synchronen nichtflüchtigen Speichers, wobei die ersten Daten vor dem Schreiben der ersten Daten in die erste Bankstelle im Speicherfeld in einem Schreib-Signalspeicher gespeichert werden, und im Wesentlichen gleichzeitig Lesen zweiter Daten von der zweiten Bankstelle im Speicherfeld des synchronen nichtflüchtigen Speichers, wobei externe Datenkommunikationsverbindungen des synchronen nichtflüchtigen Speichers in einem Muster angeordnet sind, das zu einem synchronen flüchtigen Speicher kompatibel ist.
- Das Verfahren von Anspruch 6, wobei die ersten Daten über einen externen Prozessor dem synchronen nichtflüchtigen Speicher bereitgestellt werden.
- Das Verfahren von Anspruch 6, wobei die ersten Daten dem synchronen nichtflüchtigen Speicher über einen ersten externen Prozessor bereitgestellt werden und das Verfahren weiterhin umfasst Ausgeben der zweiten Daten an einen zweiten externen Prozessor.
- Das Verfahren von Anspruch 6, weiterhin umfassend Zugreifen auf eine gemeinsame adressierbare Zeile der ersten und zweiten Bankstellen vor dem Schreiben der ersten Daten und Lesen der zweiten Daten, wobei die Schreib- und Lesevorgänge denselben Satz Lese-/Schreib-Verstärker verwenden.
- Das Verfahren von Anspruch 6, bei dem die externen Datenkommunikationsverbindungen des synchronen nicht flüchtigen Speichers in einem Muster angeordnet sind, das zu einem Synchronous Dynamic Random Access Memory (SDRAM) kompatibel ist.
- Das Verfahren nach Anspruch 7, weiterhin umfassend Ausgeben der zweiten Daten an den externen Prozessor.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US19350600P | 2000-03-30 | 2000-03-30 | |
US60/193,506 | 2000-03-30 | ||
US09/628,184 | 2000-07-28 | ||
US09/628,184 US6851026B1 (en) | 2000-07-28 | 2000-07-28 | Synchronous flash memory with concurrent write and read operation |
PCT/US2001/010375 WO2001075892A2 (en) | 2000-03-30 | 2001-03-30 | Synchronous flash memory with concurrent write and read operation |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10196002T1 DE10196002T1 (de) | 2003-03-13 |
DE10196002B3 true DE10196002B3 (de) | 2012-11-08 |
Family
ID=26889068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10196002T Expired - Fee Related DE10196002B3 (de) | 2000-03-30 | 2001-03-30 | Synchroner nichtflüchtiger Speicher und Verfahren zum Betrieb eines synchronen nichtflüchtigen Speichers |
Country Status (5)
Country | Link |
---|---|
JP (1) | JP3779209B2 (de) |
KR (1) | KR100438634B1 (de) |
AU (1) | AU2001251169A1 (de) |
DE (1) | DE10196002B3 (de) |
WO (1) | WO2001075892A2 (de) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101002276B (zh) * | 2004-07-29 | 2010-09-01 | 斯班逊有限公司 | 在非易失性存储装置中信息设定之方法及设备 |
WO2007023544A1 (ja) * | 2005-08-25 | 2007-03-01 | Spansion Llc | 記憶装置、記憶装置の制御方法、および記憶制御装置の制御方法 |
JP2007164938A (ja) | 2005-12-16 | 2007-06-28 | Matsushita Electric Ind Co Ltd | 半導体記憶装置 |
US7639540B2 (en) | 2007-02-16 | 2009-12-29 | Mosaid Technologies Incorporated | Non-volatile semiconductor memory having multiple external power supplies |
KR101293226B1 (ko) | 2011-06-30 | 2013-08-05 | (주)아토솔루션 | 비휘발성 메모리 소자, 전자제어 시스템, 및 비휘발성 메모리 소자의 동작방법 |
US11269779B2 (en) * | 2020-05-27 | 2022-03-08 | Microsoft Technology Licensing, Llc | Memory system with a predictable read latency from media with a long write latency |
DE102021107045A1 (de) | 2021-03-10 | 2022-09-15 | Elmos Semiconductor Se | Rechnersystem für eine Motorsteuerung mit einem Programmspeicher und einem Datenspeicher |
CN113343319B (zh) * | 2021-06-29 | 2024-04-02 | 珠海一微半导体股份有限公司 | 一种flash的类型识别方法及类型识别系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5245572A (en) * | 1991-07-30 | 1993-09-14 | Intel Corporation | Floating gate nonvolatile memory with reading while writing capability |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3435783B2 (ja) * | 1994-03-17 | 2003-08-11 | 株式会社日立製作所 | 複数組のデータバッファを備える記憶素子及び記憶素子を用いたデータ処理システム |
US5666322A (en) * | 1995-09-21 | 1997-09-09 | Nec Electronics, Inc. | Phase-locked loop timing controller in an integrated circuit memory |
JP3570879B2 (ja) * | 1997-07-09 | 2004-09-29 | 富士通株式会社 | 不揮発性半導体記憶装置 |
JP3386705B2 (ja) * | 1997-12-25 | 2003-03-17 | 株式会社東芝 | 半導体記憶装置およびそのバーストアドレスカウンタ |
-
2001
- 2001-03-30 AU AU2001251169A patent/AU2001251169A1/en not_active Abandoned
- 2001-03-30 DE DE10196002T patent/DE10196002B3/de not_active Expired - Fee Related
- 2001-03-30 WO PCT/US2001/010375 patent/WO2001075892A2/en active IP Right Grant
- 2001-03-30 JP JP2001573484A patent/JP3779209B2/ja not_active Expired - Fee Related
- 2001-03-30 KR KR10-2002-7013090A patent/KR100438634B1/ko not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5245572A (en) * | 1991-07-30 | 1993-09-14 | Intel Corporation | Floating gate nonvolatile memory with reading while writing capability |
Also Published As
Publication number | Publication date |
---|---|
AU2001251169A1 (en) | 2001-10-15 |
WO2001075892A3 (en) | 2002-05-23 |
KR20020086746A (ko) | 2002-11-18 |
WO2001075892A2 (en) | 2001-10-11 |
DE10196002T1 (de) | 2003-03-13 |
JP2003529880A (ja) | 2003-10-07 |
KR100438634B1 (ko) | 2004-07-02 |
JP3779209B2 (ja) | 2006-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6798710B2 (en) | Synchronous flash memory with virtual segment architecture | |
JP3809909B2 (ja) | ステータスバースト出力を行うシンクロナスフラッシュメモリ | |
US6883044B1 (en) | Synchronous flash memory with simultaneous access to one or more banks | |
US6459617B1 (en) | Method and circuitry for bank tracking in write command sequence | |
KR100438635B1 (ko) | 동기 플래시 메모리에서 프리차지 동작의 소거 | |
US7054992B2 (en) | Synchronous flash memory with non-volatile mode register | |
DE10196011B3 (de) | Synchrone Speichereinrichtung und Verfahren zum Lesen von Daten von einer synchronen Speichereinrichtung | |
DE10196002B3 (de) | Synchroner nichtflüchtiger Speicher und Verfahren zum Betrieb eines synchronen nichtflüchtigen Speichers | |
DE10196001B4 (de) | Schnittstellenbefehlsarchitektur für synchronen Flashspeicher | |
JP4902325B2 (ja) | ゼロレイテンシ機能、ゼロバスターンアラウンド機能を有するシンクロナスフラッシュメモリ | |
JP2003529878A (ja) | 不揮発性モードレジスタを有するシンクロナスフラッシュメモリ | |
JP2003529884A (ja) | シンクロナスフラッシュメモリ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law |
Ref document number: 10196002 Country of ref document: DE Date of ref document: 20030313 Kind code of ref document: P |
|
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final |
Effective date: 20130209 |
|
R081 | Change of applicant/patentee |
Owner name: ROUND ROCK RESEARCH, LLC (N.D.GES.D. STAATES D, US Free format text: FORMER OWNER: MICRON TECHNOLOGY, INC., BOISE, ID., US |
|
R082 | Change of representative |
Representative=s name: PATENTANWAELTE STAEGER & SPERLING PARTNERSCHAF, DE |
|
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |