DE10392692T5 - Effizientes Lese-Schreibverfahren für Pipeline-Speicher - Google Patents

Effizientes Lese-Schreibverfahren für Pipeline-Speicher Download PDF

Info

Publication number
DE10392692T5
DE10392692T5 DE10392692T DE10392692T DE10392692T5 DE 10392692 T5 DE10392692 T5 DE 10392692T5 DE 10392692 T DE10392692 T DE 10392692T DE 10392692 T DE10392692 T DE 10392692T DE 10392692 T5 DE10392692 T5 DE 10392692T5
Authority
DE
Germany
Prior art keywords
bit
memory
bits
data
latch
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.)
Ceased
Application number
DE10392692T
Other languages
English (en)
Inventor
Geoffrey S. Los Altos Gongwer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Technologies LLC
Original Assignee
SanDisk Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of DE10392692T5 publication Critical patent/DE10392692T5/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1039Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Speichersystem, wobei das Speichersystem zum Speichern von Daten geeignet ist, wobei das Speichersystem Folgendes umfasst:
eine Vielzahl von Speicherelementen, wobei die Vielzahl von Speicherelementen ein erstes Speicherelement umfasst;
eine Datenquelle, wobei die Datenquelle eingerichtet ist, um eine Vielzahl von Bits zu liefern, die in das erste Datenelement zu speichern sind;
ein erstes Element, wobei das erste Element eingerichtet ist, um ein erstes Bit zu empfangen, das in der Vielzahl von Bits von der Datenquelle enthalten ist;
ein zweites Element, wobei das zweite Element eingerichtet ist, um ein erstes Bit von dem ersten Element zu empfangen, wobei das zweite Element ferner eingerichtet ist, um das erste Bit in das erste Speicherelement zu speichern; und
einen Ripple-Clock, wobei der Ripple-Clock eingerichtet ist, um das Zugreifen auf das erste und das zweite Element zu ermöglichen.

Description

  • ALLGEMEINER STAND DER TECHNIK
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft im Allgemeinen digitale Massedatenspeichersysteme. Insbesondere betrifft die vorliegende Erfindung Systeme und Verfahren zum Reduzieren der Gemeinkosten in Zusammenhang mit Multi-State-Speichersystemen.
  • Beschreibung der verwandten Technik
  • Der Einsatz nicht flüchtiger Speichersysteme, wie zum Beispiel Flash-Speichersysteme, steigt aufgrund der kompakten physischen Größe solcher Speichersysteme und der Fähigkeit des nicht flüchtigen Speichers, wiederholt neu programmierbar zu sein. Die kompakte physische Größe von Flash-Speicher-Speichersystemen erleichtert den Einsatz solcher Speichersysteme in Geräten, die in steigendem Maße häufiger werden. Geräte, die Flash-Speicher-Speichersysteme verwenden, umfassen, ohne auf sie beschränkt zu sein, digitale Fotoapparate, digitale Camcorder, digitale Musikwiedergabegeräte, Palmtop-Computer und globale Positionsanzeigevorrichtungen (GPS). Die Fähigkeit, den nicht flüchtigen Speicher, der in dem Flash-Speicher-Speichersystemen enthalten ist, wiederholt neu zu programmieren, erlaubt es den Flash-Speicher-Speichersystemen, verwendet und wiederverwendet zu werden.
  • Daten, die in ein Speichersystem gestreamt werden, werden im Allgemeinen auf einer bitweisen Basis in Speicherzellen oder allgemeiner in Speicherelemente geschrieben und aus den Speicherelementen auf einer bitweisen Basis gelesen. Wie der Fachmann weiß, sind Schreibvorgänge im Allgemeinen langsam, sie brauchen zum Beispiel relativ lang zum Durch führen. Oft sind auch bestimmte Leseoperationen zeitaufwändig.
  • Wie dem Fachmann bekannt ist, werden Bits, die in Zellen geschrieben oder aus ihnen gelesen werden, typisch zwischengespeichert. Bits werden im Allgemeinen zwischengespeichert, wenn ein Datenbus eine Breite zum und vom Speicher hat, die im Wesentlichen kleiner ist als die Anzahl der Bits, die parallel in den Speicher geschrieben, aus ihm gelesen oder bearbeitet werden können. Das Zwischenspeichern von Bits erleichtert auch die Bandbreite und Probleme mit dem Stromverbrauch.
  • Ein Master-Slave-Registerbit ist im Allgemeinen für jedes Bit erforderlich, das zwischengespeichert werden soll. Typisch erfordert jedes Master-Slave-Registerbit bis zu etwa vierundzwanzig Transistoren zur Implementierung. 12 zeigt ein herkömmliches Master-Slave-Register oder Master-Slave-Flip-Flop-Register. Ein Master-Slave-Register 1200, das eine Resetfunktion umfasst, ist für den Gebrauch zum Zwischenspeichern eines Bits geeignet. Für ein nicht flüchtiges Speichersystem, wie zum Beispiel ein Speichersystem, das bis etwa 4000 Zellen oder Speicherelemente umfasst, an welchen gleichzeitig gearbeitet werden kann, können im Allgemeiner in jeder Zelle ein oder zwei Bits gespeichert werden. Wenn daher jedes der 16.000 Bits zwischenzuspeichern ist, können 16.000 Master-Slave-Registerbits erforderlich sein, die ihrerseits im Allgemeinen eine relativ hohe Anzahl von Transistoren insgesamt erforderlich machen. Das Implementieren einer relativ hohen Anzahl von Transistoren, die Master-Slave-Registerbits stützen, kann mehr physischen Platz innerhalb eines Speichersystems als wünschenswert belegen und daher teurer sein.
  • Um die Anzahl von Transistoren zu verringern, die erforderlich ist, um Bits in einer Speichervorrichtung zwischen zuspeichern, können einzelne Daten-Latch-Schaltungen implementiert werden, um sie als Zwischenspeicher an Stelle von Master-Slave-Latch-Schaltungen oder Master-Slave-Registerbits zu verwenden. Jede Speicherzelle kann gleichzeitig betrieben werden oder eine oder mehrere zugehörige Latch-Schaltungen haben, die zum Zwischenspeichern sowohl von Daten, die in der Speicherzelle zu speichern sind, als auch von Daten, die aus der Speicherzelle zu lesen sind, geeignet sind. Der Einsatz einzelner Daten-Latch-Schaltungen an Stelle von Master-Slave-Latch-Schaltungen kann es erlauben, die Anzahl der Transistoren in Zusammenhang mit den Zwischenspeicherfähigkeiten um bis zu etwa 50 zu verringern. Während Master-Slave-Latch-Schaltungen ein relativ einfaches Taktgeberschema verwenden, um einzelne Master-Slave-Latch-Schaltungen auszuwählen, um auf sie zuzugreifen, erfordert der Gebrauch von Daten-Latch-Schaltungen im Allgemeinen kompliziertere Adressierschemata, um auf einzelne Daten-Latch-Schaltungen zuzugreifen. Derartige Adressierschemata können in bestimmten Fällen mehr Transistoren erforderlich machen als zum Unterstützen von Master-Slave-Latch-Schaltungen oder Master-Slave-Bits erforderlich ist.
  • Da ein Adressierschema, das eine relativ hohe Anzahl von Transistoren verwenden kann, eventuell nicht effizient ist, werden gelegentlich Ripple-Clocks implementiert, um das sequenzielle Zugreifen auf Daten-Latch-Schaltungen zu ermöglichen. Das heißt, dass auf die einzelne Datenlatch-Schaltung, die zu jeder Speicherzelle gehört, sequenziell in Bezug auf Daten-Latch-Schaltungen zugegriffen werden kann, die zu anderen Speicherzellen in einer Speichervorrichtung gehören. Ein Beispiel für Daten-Latch-Schaltungen, auf die mit einem Ripple-Clock zugegriffen wird, ist in 13a dargestellt. Ein System 1300 umfasst Latch-Schaltungen 1310 und Master-Slave-Register oder Master-Slave-Flip-Flops 1314. Die Latch-Schaltungen 1310 sind Daten-Latch-Schaltungen, die jeweils zu einer Speicherzelle gehören und durch Latch-Schaltungsaktivierungssignale (LE) aktiviert werden. Spezifisch wird die Latch-Schaltung 1310a durch ein Signal LEA aktiviert, die Latch-Schaltung 1310b wird durch ein Signal LEB aktiviert, das ein Ausgang des Flip-Flops 1314 ist, und die Latch-Schaltung 1310c wird durch ein Signal LEC aktiviert, das ein Ausgang des Flip-Flops 1314b ist. Die Flip-Flops 1314 werden im Allgemeinen von einem gemeinsamen Taktgebersignal (CK) gesteuert.
  • Im Allgemeinen wird in einem bestimmten Zeitpunkt nur ein Signal LE in Anspruch genommen, und das in Anspruch genommene Signal LE wird effektiv von den Flip-Flops 1314 verbreitet. Der Satz effektiv in Anspruch genommener Signale LE bildet einen Ripple-Clock. Wie in einem Zeitdiagramm 1350 von 13b dargestellt, sind ein Signal LEA 1360a, ein Signal LEB 1360b und ein Signal LEC 1360c derart, dass nur ein Signal LE 1360, zum Beispiel bei einem hohen Wert an einer Stelle in der Zeit zum Auslösen der Latch-Schaltungen 1310 der 13a in Anspruch genommen wird.
  • Ein Ripple-Clock, der in einem System, wie zum Beispiel im System 1300 der 13a implementiert wird, erfordert eine Master-Slave-Latch-Schaltung oder Flip-Flop, die das Aktivierungssignal oder die Aktivierungssignale für jeden Satz von Latch-Schaltungen, auf die seriell zugegriffen werden soll, erzeugt. Daher reduziert der Einsatz von Ripple-Clocks und einer einzelnen Daten-Latch-Schaltung für jede Speicherzelle eventuell nicht die Anzahl der Transistoren, die in einer Gesamtspeichervorrichtung erforderlich sind.
  • Daher sind ein System und ein Verfahren erforderlich, die es ermöglichen, Bits effizient in Speicherzellen zu schreiben und sie aus ihnen herauszulesen, ohne dass eine relativ hohe Anzahl von Bauteilen, wie zum Beispiel Transistoren, erforderlich ist. Daher sind ein System und ein Verfahren wünschenswert, um die Gemeinkosten in Zusammenhang mit dem Schreiben von Bits in eine Multi-State-Speicherzelle und das Lesen von Bits aus dieser Multi-State-Speicherzelle zu reduzieren, während das effiziente Durchführen des Schreibens und Lesens ermöglicht wird.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Die vorliegende Erfindung betrifft ein System und ein Verfahren zum effizienten Schreiben von Daten in Speicherzellen und zum Lesen dieser Daten aus den Speicherzellen. Gemäß einem Aspekt der vorliegenden Erfindung umfasst ein Speichersystem ein erstes Speicherelement, eine Datenquelle, ein erstes Element, ein zweites Element und einen Ripple-Clock. Die Datenquelle liefert eine Vielzahl von Bits, die in dem ersten Speicherelement zu speichern sind, und das erste Element empfängt ein erstes Bit von der Datenquelle und taktet ferner das erste Bit in das zweite Element. Das erste Element empfängt dann ein zweites Bit einer Vielzahl von Bits von der Datenquelle, im Wesentlichen während das erste Bit in das erste Speicherelement gespeichert wird. Der Ripple-Clock erlaubt das Zugreifen auf das erste und das zweite Element, so dass das erste Bit und das zweite Bit gepipelined werden können.
  • Bei einer Ausführungsform erlaubt der Ripple-Clock auch im Wesentlichen das gleichzeitige Zugreifen auf das erste Speicherelement und zumindest ein zweites Speicherelement, die in der Vielzahl von Speicherelementen enthalten sind. Bei einer anderen Ausführungsform ist das erste Zwischenspeicherelement eine erste Latch-Schaltung und das zweite Speicherelement eine zweite Latch-Schaltung.
  • Der Einsatz einer Vielzahl von Zwischenspeicherelementen, wie zum Beispiel Latch-Schaltungen, zum Pipelinen von Datenbits entweder in eine Multi-State-Speicherzelle oder zu deren Lesen aus einer Multi-State-Speicherzelle, ermöglicht, dass Schreib- und Leseoperationen jeweils effizient erfolgen. Daher können die Gemeinkosten des Multi-State-Speicherns reduziert werden. Durch Laden eines Bits in eine zweite Latch-Schaltung, die zu einer Gruppe von Speicherzellen gehört, während ein Bit von einer ersten Latch-Schaltung in die Speicherzelle geschrieben wird, kann die mit dem Laden des Bits in die zweite Latch-Schaltung verbundene Zeit effektiv maskiert werden. Daher kann der Gesamtschreibprozess effizienter erfolgen.
  • Gemäß einem anderen Aspekt der vorliegenden Erfindung umfasst ein Rechensystem einen Host, der ein erstes und ein zweites Bit liefert, und eine Speichervorrichtung, die mit dem Host in Kommunikation ist. Die Speichervorrichtung umfasst ein erstes Speicherelement, das das erste Bit in ein zweites Zwischenspeicherelement taktet. Das erste Zwischenspeicherelement empfängt das zweite Bit von dem Host im Wesentlichen, während das erste Bit durch das zweite Zwischenspeicherelement in das erste Speicherelement gespeichert wird. Schließlich umfasst die Speichervorrichtung einen Ripple-Clock, der das Zugreifen auf das erste Zwischenspeicherelement und auf das zweite Zwischenspeicherelement ermöglicht.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung bedingt ein Verfahren zum Speichern einer Vielzahl von Bits in ein Speichersystem, das ein Speicherelement, ein erstes Zwischenspeicherelement und ein zweites Zwischenspeicherelement umfasst, das Empfangen der Vielzahl von Bits und das Bereitstellen eines ersten Bits, das in der Vielzahl von Bits enthalten ist, für das erste Zwischenspeicherelement. Danach wird ein Schreibprozess ausgelöst, um das erste Bit in das Speicherelement zu schreiben, und ein zweites Bit, das in der Vielzahl von Bits enthalten ist, wird dem zweiten Zwischenspeicherelement bereitgestellt, nachdem der Schreibprozess zum Schreiben des ersten Bits in das Speicherelement ausgelöst wurde. Der Schreibprozess zum Schreiben des ersten Bits in das Speicherelement nach dem Bereitstellen des zweiten Bits für das zweite Zwischenspeicherelement wird dann abgeschlossen.
  • Dieser und andere Vorteile der vorliegenden Erfindung ergeben sich bei der Lektüre der folgenden detaillierten Beschreibungen und bei der Untersuchung der verschiedenen Figuren der Zeichnungen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die Erfindung kann am besten unter Bezugnahme auf die folgende Beschreibung verstanden werden, die sich auf die anliegenden Zeichnungen bezieht, in welchen:
  • 1a eine Darstellung in Diagrammform eines allgemeinen Hostsystems ist, das eine nicht flüchtige Speichervorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung umfasst.
  • 1b eine Darstellung in Diagrammform einer nicht flüchtigen Speichervorrichtung ist, nämlich die nicht flüchtige Speichervorrichtung 120 der 1a, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 2 eine Darstellung in Diagrammform eines nicht flüchtigen Speicher-Speicherelements ist, das Datenbits empfängt, die über Latch-Schaltungen, die effektiv parallel gemäß einer Ausführungsform der vorliegenden Erfindung funktionieren, in ein Speicherelement zu schreiben sind.
  • 3 eine Darstellung in Diagrammform eines nicht flüchtigen Speicher-Speicherelements ist, das heißt das nicht flüchtige Speicherelement 204 der 2, das es erlaubt, Datenbits aus dem nicht flüchtigen Speicherelement über Latch-Schaltungen zu holen, die effektiv gemäß einer Ausführungsform der vorliegenden Erfindung parallel funktionieren.
  • 4 eine Darstellung in Diagrammform einer Anordnung von Speicherelementen, mit zwei Schreib-Latch-Schaltungen und zwei Lese-Latch-Schaltungen gemäß einer Ausführungsform der vorliegenden Erfindung, ist.
  • 5 eine Darstellung in Diagrammform einer Zeitachse mit Latch-Schaltungen ist, auf welche in verschiedenen Zeitpunkten durch den Einsatz eines Ripple-Clock gemäß einer Ausführungsform der vorliegenden Erfindung zugegriffen wird.
  • 6a eine Darstellung in Diagrammform einer Anordnung von Speicherelementen und Latch-Schaltungen ist, die Bits gemäß einer Ausführungsform der vorliegenden Erfindung eingeben.
  • 6b eine Darstellung in Diagrammform einer Anordnung von Speicherelementen und Latch-Schaltungen ist, die Bits gemäß einer Ausführungsform der vorliegenden Erfindung eingeben.
  • 7 ein Prozessflussdiagramm ist, das die Schritte in Zusammenhang mit einem Verfahren des Schreibens von Daten in eine Anordnung von Multi-State-Speicherelementen ist, die zwei Daten-Latch-Schaltungen gemäß einer Ausführungsform der vorliegenden Erfindung verwendet.
  • 8 ein Prozessflussdiagramm ist, das die Schritte in Zusammenhang mit einem Verfahren zum Lesen von Daten aus einer Anordnung von Multi-State-Speicherelementen ist, die zwei Daten-Latch-Schaltungen gemäß einer Ausführungsform der vorliegenden Erfindung verwendet.
  • 9 eine Darstellung in Diagrammform einer Anordnung von Speicherelementen ist, die vielfache Lese-Latch-Schaltungen und vielfache Schreib-Latch-Schaltungen gemäß einer Ausführungsform der vorliegenden Erfindung umfasst.
  • 10 eine Darstellung in Diagrammform einer Speicherelementanordnung ist, die zu Latch-Schaltungen gehört, die zum vorübergehenden Speichern von Bits, die zu schreiben sind, und von Bits, die zu lesen sind, in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung dient.
  • 11 eine Darstellung in Diagrammform einer Abtastanordnung ist, die eine Latch-Schaltung gemäß einer Ausführungsform der vorliegenden Erfindung umfasst.
  • 12 eine Darstellung in Diagrammform eines Master-Slave-Registers ist.
  • 13a eine Darstellung in Diagrammform eines Satzes von Daten-Latch-Schaltungen ist, auf die durch einen Ripple-Clock zugegriffen wird.
  • 13b ein Zeitdiagramm ist, das eine Beziehung zwischen Latch-Schaltungs-Aktivierungssignalen darstellt.
  • 14 eine Darstellung in Diagrammform einer nicht flüchtigen Speicher-Speicherelementanordnung ist, die Datenbits über einen Satz aus acht Latch-Schaltungen, der parallel gemäß einer Ausführungsform der vorliegenden Erfindung funktioniert, empfängt.
  • 15 eine Darstellung in Diagrammform einer nicht flüchtigen Speicher-Speicherelementanordnung ist, die Datenbits über einen Satz aus neun Latch-Schaltungen während eines Lesevorgangs gemäß einer Ausführungsform der vorliegenden Erfindung liefert.
  • 16 eine Darstellung in Diagrammform einer Anordnung nicht flüchtiger Speicher-Speicherelemente ist, die Datenbits empfängt, die über Latch-Schaltungen, die effektiv parallel gemäß einer Ausführungsform der vorliegenden Erfindung funktionieren, in ein Speicherelement, zu schreiben sind.
  • DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Das Reduzieren des mit dem Lesen von Bits und Schreiben von Bits in ein Multi-State-Speicherelement verbundenen Gemeinkosten, das heißt durch Reduzieren der Anzahl von Transistoren, die erforderlich sind, um Bits zu lesen und zu schreiben, erlaubt das Verbessern der Leistung eines Gesamtspeichersystems, das die Speicherzelle umfasst. Da Lese- und Schreibvorgänge, insbesondere Schreibvorgänge typisch zeitaufwändig sind, kann das Reduzieren der Zeit in Zusammenhang mit den Lese- und Schreiboperationen die Gesamtkosten signifikant reduzieren, die mit Multi-State-Speicheroperationen verbunden sind.
  • Wenn man erlaubt, dass Bits unter Einsatz einer Vielzahl von Latch-Schaltungen bei Lese- und Schreibprozessen in Zusammenhang mit einem Multi-State-Speicherelement gepipelined werden, kann die Geschwindigkeit, mit welcher die Lese- und Schreibprozesse erfolgen, gesteigert werden. Durch Ermöglichen des Pipelinens unter Einsatz einer Vielzahl von Latch-Schaltungen durch Einbauen eines Ripple-Clock, kann die Effizienz der Lese- und Schreibprozesse gesteigert werden, während die Anzahl von Transistoren in Verbindung mit einem Gesamtspeichersystem, das das Speicherelement umfasst, verringert werden kann.
  • Daten werden durch einen Host, der mit dem Speichersystem in Kommunikation ist zum Beispiel in eine nicht flüchtige Speichervorrichtung, typisch in ein Speichersystem gespeichert. Unter Bezugnahme auf 1a, wird ein all gemeines Hostsystem beschrieben, das eine nicht flüchtige Speichervorrichtung 120 umfasst, zum Beispiel eine CompactFlash-Speicherkarte. Ein Host oder ein Rechensystem 100 umfasst im Allgemeinen einen Systembus 104, der es einem Mikroprozessor 108, einem RAM-Speicher (RAM) 112 und Eingangs-/Ausgangsschaltkreisen 116 erlaubt, zu kommunizieren. Zu bemerken ist, dass das Hostsystem 100 im Allgemeinen weitere Bauteile umfassen kann, wie zum Beispiel Anzeigevorrichtungen und Netzwerkvorrichtungen, die nicht dargestellt wurden.
  • Im Allgemeinen kann das Hostsystem 100 in der Lage sein, Daten zu erfassen, darunter aber nicht einschränkend Standbilddaten, Audiodaten und Videobilddaten. Derartige Daten können in Echtzeit erfasst und drahtlos zu dem Hostsystem 100 übertragen werden. Während das Hostsystem 100 im Wesentlichen ein beliebiges System sein kann, ist das Hostsystem 100 typisch ein System, wie zum Beispiel ein digitaler Fotoapparat, eine Videokamera, eine Mobilkommunikationsvorrichtung, ein Audio-Player oder ein Videoplayer. Hervorzuheben ist jedoch, dass das Hostsystem 100 im Allgemeinen im Wesentlichen jedes beliebige System sein kann, das Daten oder Informationen speichert.
  • Eine nicht flüchtige Speichervorrichtung 120, die bei einer Ausführungsform eine herausnehmbare nicht flüchtige Speichervorrichtung ist, ist eingerichtet, um mit dem Bus 104 eine Schnittstelle zu bilden, um Daten zu speichern. Ein optionaler Block 132 aus Eingangs-/Ausgangsschaltkreisen kann es der nicht flüchtigen Speichervorrichtung 120 erlauben, indirekt eine Schnittstelle mit dem Bus 104 zu bilden. Wenn der Block 132 mit Eingangs-/Ausgangsschaltkreisen vorhanden ist, dient er zum Reduzieren der Auslastung auf dem Bus 104, wie der Fachmann weiß. Die nicht flüchtige Speichervorrichtung 120 umfasst einen nicht flüchtigen Speicher 124 und ein Speichersteuersystem 128. Bei einer Ausführungsform kann die nicht flüchtige Speichervorrichtung 120 auf einem einzigen Chip oder Halbleiterplättchen implementiert sein. Alternativ kann die nicht flüchtige Speichervorrichtung 120 auf einem Multi-Chip-Modul oder auf mehrfachen einzelnen Bauteilen implementiert sein, die gemeinsam als nicht flüchtige Speichervorrichtung 120 verwendet werden können.
  • Der nicht flüchtige Speicher 124 ist eingerichtet, um Daten zu speichern, wie zum Beispiel Daten, auf die nach Bedarf zugegriffen wird, und die gelesen werden. Daten, die in dem nicht flüchtigen Speicher 124 gespeichert sind, können auch nach Bedarf gelöscht werden, obwohl hervorzuheben ist, dass bestimmte Daten in dem nicht flüchtigen Speicher 124 nicht gelöscht werden dürfen. Die Prozesse des Speicherns, Lesens und Löschens von Daten werden im Allgemeinen von dem Speichersteuersystem 128 gesteuert. Bei einer Ausführungsform verwaltet das Speichersteuersystem 128 das Funktionieren des nicht flüchtigen Speichers 124 so, dass die Lebensdauer des nicht flüchtigen Speichers 124 weitgehend maximiert wird, indem im Wesentlichen dafür gesorgt wird, dass der nicht flüchtige Speicher 124 im Wesentlichen gleichmäßig abgenutzt wird.
  • Die nicht flüchtige Speichervorrichtung 120 wurde allgemein als ein Speichersteuersystem 128 umfassend beschrieben, das heißt einen Controller. Oft kann die nicht flüchtige Speichervorrichtung 120 getrennte Chips für die Funktionen des nicht flüchtigen Speichers 124 und das Speichersteuersystem 128, das heißt den Controller umfassen. Beispielsweise können nicht flüchtige Speichervorrichtungen keine Controller enthalten, die auf einem getrennten Chip implementiert sind, während nicht flüchtige Speichervorrichtungen, darunter aber nicht eingeschränkt PC-Karten, CompactFlash-Karten, MultiMedia-Karten und Secure Digital-Karten Controller umfassen, die auf einem getrennten Chip implementiert sind. Bei einer Ausführungsform, bei der die nicht flüchtige Speichervorrichtung 120 keine getrennten Speicher- und Controllerchips umfasst, können die Speicher- und Controllerfunktionen, wie der Fachmann weiß, in einen einzigen Chip integriert werden. Im Allgemeinen umfassen andere Typen nicht flüchtiger Speichervorrichtungen Speicherstickkarten und SmartMedia-Karten.
  • Unter Bezugnahme auf 1b, wird die nicht flüchtige Speichervorrichtung 120 genauer gemäß einer Ausführungsform der vorliegenden Erfindung beschrieben. Wie oben beschrieben, umfasst die nicht flüchtige Speichervorrichtung 120 einen nicht flüchtigen Speicher 124 und ein Speichersteuersystem 128. Der Speicher 124 und das Speichersteuersystem 128 oder Controller sind die Hauptbauteile der nicht flüchtigen Speichervorrichtung 120. Der Speicher 124 kann eine Anordnung von Speicherzellen sein, die auf einem Halbleitersubstrat gebildet sind, wobei ein oder mehrere Datenbits in den einzelnen Speicherzellen durch Speichern eines von zwei oder mehreren Ladeniveaus auf einzelnen Speicherelementen der Speicherzellen gespeichert werden. Ein programmierbarer, elektrisch löschbarer nicht flüchtiger Flash-Nurlesespeicher (EEPROM) ist ein Beispiel eines üblichen Speichertyps für solche Systeme.
  • Das Steuersystem 128 kommuniziert über einen Bus 15 mit einem Hostcomputer oder anderen System, das das Speichersystem zum Speichern von Daten verwendet. Der Bus 15 gehört im Allgemeinen zum Bus 104 der 1a. Das Speichersteuersystem 128 steuert ferner das Funktionieren des Speichers 124, der eine Speicherzellenanordnung 11 umfassen kann, um die Daten, die der Host liefert, zu speichern, Daten zu lesen, die vom Host verlangt werden, und verschiedene Wartungsfunktionen beim Betrieb des Speichers 124 durchzuführen. Das Speichersteuersystem 128 umfasst im Allgemeinen einen Allzweckmikroprozessor, der zugehörige Softwarespeicher und verschiedene logische Schaltkreise hat. Eine oder mehrere Zustandsmaschinen sind oft ebenso zum Steuern der Leistung spezifischer Hilfsprogramme enthalten.
  • Auf die Speicherzellenanordnung 11 wird typisch vom Speichersteuersystem 128 über Adressendecodierer 17 zugegriffen. Die Adressendecodierer 17 legen die richtigen Spannungen an Gatter- und Bitleitungen der Speicherzellenanordnung 11 an, um Daten in eine Gruppe von Speicherzellen, die von dem Speichersteuersystem 128 adressiert wird, zu programmieren, sie aus diesen zu lesen oder zu löschen. Zusätzliche Schaltkreise 19 umfassen Programmiertreiber, die die Spannungen steuern, die an die Elemente der Anordnung angelegt werden, die von den Daten abhängen, die in eine adressierte Gruppe von Zellen programmiert werden. Die zusätzlichen Schaltkreise 19 umfassen ferner Abtastverstärker oder andere Schaltkreise, die zum Lesen von Daten aus einer adressierten Gruppe von Speicherzellen erforderlich sind. Die in die Speicherzellenanordnung 11 zu programmierenden Daten oder Daten, die kürzlich aus der Speicherzellenanordnung 11 gelesen wurden, werden typisch in einem Zwischenspeicher 21 innerhalb des Speichersteuersystems 128 zwischengespeichert. Das Speichersteuersystem 128 umfasst gewöhnlich auch verschiedene Register zum vorübergehenden Speichern von Befehls- und Zustandsdaten und dergleichen.
  • Die Speicherzellenanordnung 11 ist in eine große Anzahl von Blöcken BLÖCKE 0–N Speicherzellen unterteilt. Wie bei Flash-EEPROM-Systemen üblich, ist der Block die Löscheinheit. Das bedeutet, dass jeder Block die Mindestanzahl von Speicherzellen enthält, die gemeinsam gelöscht werden. Jeder Block ist typisch in eine Anzahl von Seiten unterteilt, wie auch in 3 dargestellt. Eine Seite ist die Programmiereinheit. Daher schreibt eine grundlegende Programmieroperation Daten in mindestens eine Seite von Zellen. Ein oder mehrere Datenabschnitte werden typisch innerhalb jeder Seite gespeichert. Wie in 1b gezeigt, umfasst ein Abschnitt Benutzerdaten und Overhead-Daten. Overhead-Daten umfassen typisch einen Fehlerkorrekturcode (ECC), der von den Benutzerdaten des Abschnitts ausgehend berechnet wurde. Ein Abschnitt 23 des Speichersteuersystems 128 berechnet den ECC, wenn Daten in die Speicherzellenanordnung 11 programmiert werden, und prüft den ECC auch, wenn Daten aus der Speicherzellenanordnung 11 gelesen werden. Alternativ werden die ECCs in andere Seiten oder andere Blöcke als die Benutzerdaten, auf die sie sich beziehen, gespeichert.
  • Ein Benutzerdatenabschnitt umfasst typisch 512 Byte, was der Größe eines Abschnitts auf magnetischen Plattenlaufwerken entspricht. Die Overhead-Daten stellen typisch zusätzliche 28 Byte dar. Ein Datenabschnitt ist meistens in jeder Seite enthalten, aber zwei oder mehrere Abschnitte können stattdessen eine Seite bilden. Eine große Anzahl von Seiten bildet einen Block, nämlich ab acht Seiten, zum Beispiel bis zu 512, 1024 oder mehr Seiten. Die Anzahl der Blöcke wird ausgewählt, um eine gewünschte Datenspeicherkapazität für das Speichersystem bereitzustellen. Die Speicherzellenanordnung 11 ist typisch in einige Unteranordnungen (nicht dargestellt) unterteilt, von welchen jede einen Anteil der Blöcke umfasst, die in einem gewissen Ausmaß voneinander unabhängig funktionieren, um den Grad der Parallelität bei der Ausführung verschiedener Speicheroperationen zu steigern. Ein Beispiel für den Gebrauch vielfacher Unteranordnungen ist im U.S.-Patent Nr. 5 890 192 beschrieben, das hier durch Bezugnahme komplett eingegliedert wird.
  • Unter Bezugnahme auf 2, wird gemäß einer Ausführungsform der vorliegenden Erfindung ein nicht flüchtiges Speicher-Speicherelement beschrieben, das Datenbits über Latch-Schaltungen empfängt, die effektiv parallel funktionieren. Obwohl jede Anzahl von Latch-Schaltungen verwendet werden kann, wird 2 zur Vereinfachung der Besprechung der Einsatz von zwei Latch-Schaltungen beschrieben, zum Beispiel in einem Zwei-Bit-System. Ein nicht flüchtiges Speicher-Speicherelement 204, das zu einem nicht flüchtigen Speichersystem gehören kann, zum Beispiel zum nicht flüchtigen Speichersystem 120 der 1a, ist eine grundlegende Datenspeichereinheit, die Datenbits speichert. Hervorzuheben ist, dass ein Speicherelement, wie das Speicherelement 204 innerhalb eines Speichersystems eine grundlegende Speichereinheit ist. Bei einer Ausführungsform kann das Speicherelement 204 eine Zelle oder eine Speicherzelle sein, obwohl das Speicherelement 204 im Wesentlichen ein beliebiger Speichereinheitstyp sein kann.
  • Wenn ein Datenbitstrom 206 in das Speicherelement 204 zu speichern ist, wird der Datenbitstrom 206 effektiv vorübergehend in den Latch-Schaltungen 208, 212 gehalten oder in sie geladen, bevor er in das Speicherelement 204 geschrieben wird. Zum Beispiel kann ein erstes Bit im Strom 206 in die Latch-Schaltung 208 geladen und dann in die Latch-Schaltung 212 über eine parallele Verschiebungsoperation transferiert werden. Während das erste Bit im Wesentlichen aus der Latch-Schaltung 212 in das Speicherelement 204 geschrieben wird, kann das nächste Bit im Strom 206 in die Latch-Schaltung 208 geladen werden. Daher erlaubt es der Einsatz der Latch-Schaltungen 208, 212 den Bits im Strom 206, gepipelined zu werden, wodurch eine Verbesserung der Schreibleistung in Zusammenhang mit dem Schreiben von Bits in das Speicherelement 204 erlaubt wird. Wie weiter unten unter Bezugnahme auf 5 beschrieben, erlaubt es der Einsatz eines Ripple-Clock den Latch-Schaltungen 208, 212, Bits, die zum Strom 206 gehören, zu pipelinen.
  • Der Einsatz der Latch-Schaltungen 208, 212 an Stelle einer Latch-Schaltung, zum Beispiel Latch-Schaltung 208, erlaubt es, Daten effizient zum Speichern in das Speicherelement 204 zu laden. Neben der Verringerung der Anzahl der erforderlichen Transistoren in einer Gesamtspeichervorrichtung, ermöglicht es das Pipelinen in Zusammenhang mit den Latch-Schaltungen 208, 212, die Schreibzeit des Schreibens der Daten in das Speicherelement 204 wesentlich zu verringern. Beispielsweise kann ein Schreibvorgang zum Schreiben eines Bits aus der Latch-Schaltung 212 in das Speicherelement 204 in etwa 100 Mikrosekunden (μs) auftreten. Während der 100 μs, die im Allgemeinen notwendig sind, um ein Bit aus der Latch-Schaltung 208 in das Speicherelement 204 zu schreiben, kann ein anderes Bit in die Latch-Schaltung 208 geladen werden. Wie der Fachmann versteht, ist die Zeit in Zusammenhang mit dem Laden von Bits in die Latch-Schaltungen 208, 212 mit Ausnahme des Ladens des ursprünglichen Bits in die Latch-Schaltung 208 effektiv "verborgen", denn das Laden der Bits in die Latch-Schaltungen 208, 212 erfolgt im Wesentlichen parallel zu Schreibvorgängen.
  • Typisch schreibt nur die Latch-Schaltung 212 Daten in das Speicherelement 204. Obwohl beide Latch-Schaltungen 208, 212 eingerichtet sein können, um Daten in das Speicherelement 204 zu schreiben, vereinfacht die Tatsache, es nur einer Latch-Schaltung zu erlauben, nämlich der Latch-Schaltung 212, in das Speicherelement 204 zu schreiben, die Schaltkreise, die zu den Latch-Schaltungen 208, 212 gehören, wesentlich. Ferner können spezifische Spannungsanforderungen in Zusammenhang mit dem Schreiben von Bits in das Speicherelement 204 nur an die Latch-Schaltung 212 statt an beide Latch-Schaltungen 208, 212 angelegt werden.
  • Um Platz auf einer Speichervorrichtung zu sparen, können die Latch-Schaltungen 208, 212 auch dazu verwendet werden, vorübergehend Daten aufzunehmen, die aus dem Speicherelement 204 zu lesen sind. Die Latch-Schaltungen 208, 212 können daher im Wesentlichen zum Zwischenspeichern von Daten dienen, die zu schreiben sind, und von Daten, die zu lesen sind. Wie in 3 gezeigt, können Daten, wenn sie aus dem Speicherelement 204 zu lesen sind, in die Latch-Schaltungen 208, 212 gelatcht werden, und ein Ausgangsdatenstrom 306 kann geschaffen werden, wenn die Daten aus den Latch-Schaltungen 208, 212 gelesen werden. Typisch kann das erste aus dem Speicherelement 204 gelesene Bit in die Latch-Schaltung 212 geladen und dann in die Latch-Schaltung 208 getaktet werden. Nach dem Übertragen des ersten Bits in die Latch-Schaltung 208, wird das nächste Bit aus dem Speicherelement 204 gelesen und in die Latch-Schaltung 212 geladen, so dass das nächste Bit effektiv in Bezug auf das erste gepipelined wird. Dann können die Bits aus den Latch-Schaltungen 208, 212 durch einen Ripple-Clock gelesen werden. Im Endeffekt kann die Leistung in Zusammenhang mit einem Lesevorgang verbessert werden.
  • Eine optionale dritte Latch-Schaltung 310 kann wie gezeigt verwendet werden, so dass nach dem Laden des ersten Bits in die Latch-Schaltung 212 und Verschieben in die Latch-Schaltung 208 ein zweites Bit in die Latch-Schaltung 212 geladen und in die Latch-Schaltung 310 verschoben werden kann. Sobald die Latch-Schaltungen 208, 310 geladen sind, kann der Ripple-Clock bewirken, dass das erste und das zweite Bit aus den Latch-Schaltungen 208, 310 gelesen werden. Sobald die Latch-Schaltungen 208, 310 daher voll sind, können Bits aus den Latch-Schaltungen 208, 310 gelesen werden. Wenn die Latch-Schaltungen 208, 310 leer sind, werden wieder Bits aus dem Speicherelement 204 gelesen und in die Latch-Schaltungen 208, 310 verschoben. Im Allgemeinen, wenn das Speicherelement 204 ein Zwei-Bit-System ist, werden vorzugsweise zwei Latch-Schaltungen verwendet, um Daten zu speichern, bevor Daten gelesen werden. Beispielsweise können die Latch-Schaltungen 208, 310 beide zum Speichern von Bits verwendet werden, bevor Bits gelesen werden, während die Latch-Schaltung 212 effektiv als Gatter dient. Alternativ kann die Latch-Schaltung 310 eliminiert werden, und die Latch-Schaltungen 208, 212 können die zwei Latch-Schaltungen sein, die verwendet werden, um Bits zu speichern, bevor die Bits gelesen werden.
  • Hervorzuheben ist, dass ein Satz von Latch-Schaltungen, zum Beispiel die Latch-Schaltungen 208, 212 der 2 typisch zu multiplen Speicherelementen gehört, zu einem einzigen Speicherelement, wie zum Beispiel zum Speicherelement 204 der 2 gehören kann. Mit anderen Worten ist jeder Satz von Latch-Speichern im Allgemeinen mit einer Anordnung von Speicherelementen verbunden. Hervorzuheben ist, dass jede Anordnung von Speicherelementen eine beliebige Anzahl von Speicherelementen umfassen kann. Wie in 16 gezeigt, kann eine Anordnung von Multi-State-Speicherelementen 1604, die zu einem nicht flüchtigen Speichersystem gehören kann, angeordnet werden, um einen Datenbitstrom 1606 zu speichern. Der Datenbitstrom 1606 wird effektiv vorübergehend in den Latch-Schaltungen 1608, 1612 aufgenommen oder in sie geladen, bevor er in eine Anordnung von Speicherelementen 1604 geschrieben wird. Ein erstes Bit im Strom 1606 kann in die Latch-Schaltung 1608 geladen und dann in die Latch-Schaltung 1612 durch eine parallele Verschiebeoperation übertragen werden. Während das erste Bit im Wesentlichen aus der Latch-Schaltung 1612 in ein Speicherelement in der Anordnung von Speicherelementen 1604 geschrieben wird, kann das nächste Bit im Strom 1606 in die Latch-Schaltung 1608 geladen werden.
  • Die Adressierschaltung 1614 wird verwendet, um zu bestimmen, in welches Speicherelement innerhalb der Anordnung von Speicherelementen 1604 ein Bit, das in die Latch-Schaltung 1612 geladen ist, zu speichern ist. Spezifisch wird die Adressierschaltung 1614, die Multiplexer- und Demultiplexerfähigkeiten umfassen kann, effektiv verwendet, um ein Speicherelement aus der Anordnung von Speicherelementen 1604 auszuwählen, um es mit der Latch-Schaltung 1612 zu verbinden.
  • Wenn die Anforderungen derart sind, dass ein einziger Satz von Latch-Schaltungen, die beide Schreib- und Leseoperationen unterstützen, nicht ausreicht, um den Anforderungen zu genügen, kann einem Speicherelement oder einer Speicherzelle ein Satz von "Schreib"-Latch-Schaltungen und ein Satz von "Lese"-Latch-Schaltungen zugewiesen werden. 4 ist eine Darstellung in Diagrammform einer Anordnung von Speicherelementen mit zwei Schreib-Latch-Schaltungen und zwei Lese-Latch-Schaltungen gemäß einer Ausführungsform der vorliegenden Erfindung. Wenn der Eingabedatenstrom 420 in ein Speicherelement innerhalb der Anordnung 404 zu schreiben ist, können Bits der Daten, die im Strom 420 enthalten sind, in die Latch-Schaltung 410 geladen und dann in die Latch-Schaltung 414 übertragen werden. Wie oben unter Bezugnahme auf 2 beschrieben, kann ein Bit in eine Latch-Schaltung 414 übertragen wären, so dass, während dieses Bit von der Latch-Schaltung 414 in das Speicherelement 404 geschrieben wird, ein anderes Bit des Stroms 420 im Wesentlichen gleichzeitig in die Latch-Schaltung 410 geladen werden kann. Sobald das Bit aus der Latch-Schaltung 414 in ein Speicherelement der Anordnung 404 geschrieben wird, kann das Bit, das in die Latch-Schaltung 410 geladen wurde, in die Latch-Schaltung übertragen oder verschoben und dann in ein anderes Speicherelement der Anordnung 404 geschrieben werden, während im Wesentlichen gleichzeitig ein anderes Bit aus dem Strom 420 in die Latch-Schaltung 410 geladen wird. Die Latch-Schaltungen 410, 414 ermöglichen es daher den Bits des Stroms 420, effizient in mehrfache Speicherelemente innerhalb der Anordnung 404 gepipelined und geschrieben zu werden.
  • Daten, die aus der Anordnung 404 zu lesen sind, können in die Latch-Schaltung 416 geladen und in die Latch-Schaltung 418 verschoben werden. Ein erstes Bit, das in einem Speicherelement der Anordnung 404 gespeichert ist, kann daher in die Latch-Schaltung 416 geladen und in die Latch-Schaltung 418 getaktet werden. Dann kann ein zweites Bit aus einem anderen Speicherelement in die Latch-Schaltung 416 geladen werden. Bei der beschriebenen Ausführungsform können die Bits als Teil eines Ausgangsdatenstroms 422 ausgestreamt werden. Alternativ, wie oben besprochen, kann die Latch-Schaltung 416 als Gatter dienen, das die Latch-Schaltung 418 versorgt und eine andere Latch-Schaltung (nicht dargestellt), so dass Daten im Wesentlichen nur aus der Latch-Schaltung 418 und der anderen Latch-Schaltung ausgestreamt werden.
  • Wie oben erwähnt, kann ein Ripple-Clock verwendet werden, um Latch-Schaltungen, wie zum Beispiel die Latch-Schaltungen 208, 212 der 2 zum Pipelinen von Daten zu aktivieren. Wie in 5 gezeigt, die eine Darstellung in Diagrammform einer Zeitachse verbunden mit einem Ripple-Clock gemäß einer Ausführungsform der vorliegenden Erfindung ist, aktiviert ein Ripple-Clock in einem Zeitpunkt t1 502a das im Wesentlichen parallele Zugreifen auf die Latch-Schaltungen 506. Die Latch-Schaltungen 506 können daher Daten pipelinen, wenn Daten-/Zugriffssteuersignale 518 den Einzelbitzugriff auf jede Latch-Schaltung 506 erlauben. Typisch verwendet ein Ripple-Clock eine Master-Slave-Latch-Schaltung, um das Zugreifen auf einen Satz von Latch-Schaltungen, zum Beispiel einen Satz, der die Latch-Schaltungen 506 erlaubt, parallel zu aktivieren. Während eine derartige Master-Slave-Latch-Schaltung vielfache Transistoren verwenden kann, verringert der Einsatz eines Ripple-Clock zum Pipelinen von Daten die Gemeinkosten in Zusammenhang mit dem Schreiben in und Lesen aus Multi-State-Speicherelementen, weil im Wesentlichen nur eine Master-Slave-Latch-Schaltung für jede Ripple-Clock-Stufe erforderlich ist.
  • In einem Zeitpunkt t2 502b aktiviert der Ripple-Clock das Zugreifen auf die Latch-Schaltungen 510 im Wesentlichen parallel. In einem Zeitpunkt t3 502c, aktiviert der Ripple-Clock das Zugreifen auf die Latch-Schaltungen 514 im Wesentlichen gleichzeitig anhand der Daten-/Zugriffssteuersignale 518. Hervorzuheben ist, dass, wenn alle Gruppen von Latch-Schaltungen, nämlich die Latch-Schaltungen 502, 506 und 510 durch den Ripple-Clock aktiviert wurden, der Ripple-Clock zurücktakten kann, um noch einmal parallel den Zugriff auf die Gruppen von Latch-Schaltungen zu aktivieren. Daher kann der Ripple-Clock in einem Zeitpunkt t4 (nicht dargestellt), zum Beispiel den im Wesentlichen parallelen Zugriff auf die Latch-Schaltungen 510 aktivieren.
  • Der Ripple-Clock ermöglicht ein im Wesentlichen paralleles Zugreifen auf eine Stufe oder eine Gruppe von Latch-Schaltungen, zum Beispiel der Latch-Schaltungen 502. Wenn zum Beispiel parallel auf die Latch-Schaltungen 502 zugegriffen wird, können Daten aus den Latch-Schaltungen 502 vom Empfänger gelesen werden, oder Daten können in die Latch-Schaltungen 502 von einer Datenquelle gegeben werden. Mit anderen Worten ermöglicht ein Ripple-Clock, das Auftreten paralleler Lesevorgänge innerhalb einer Gruppe von Latch-Schaltungen und erlaubt auch, dass Daten im Wesentlichen gleichzeitig aus der Gruppe von Latch-Schaltungen extrahiert werden. In anderen Zeitpunkten 502 werden andere Gruppen von Latch-Schaltungen parallel aktiviert.
  • Der Einsatz eines Ripple-Clock verhindert im Allgemeinen das willkürliche Zugreifen auf Daten, die unter Verwendung vielfacher Latch-Schaltungen gespeichert werden. Das Verringern der Gemeinkosten, zum Beispiel das Verringern der Anzahl der Transistoren, die erforderlich sind, um Daten zu schreiben und zu holen, das eintritt, wenn ein Ripple-Clock verwendet wird, um das durchzuführende Pipelinen zu ermöglichen, macht den Einsatz eines Ripple-Clock und einer Mehrzahl von Latch-Schaltungen zum Schreiben und Lesen von Daten wünschenswert. Insbesondere, wenn der willkürliche Zugriff auf Daten, die unter Verwendung vielfacher Latch-Schaltungen gespeichert sind, effektiv nicht erforderlich ist, ist das Einsparen in Zusammenhang mit einer Verringerung der Anzahl der Transistoren, die zum Speichern von Daten erforderlich sind, besonders wünschenswert.
  • 6a ist eine Darstellung in Diagrammform einer Speicherelementanordnung und von Latch-Schaltungen während eines Schreibvorgangs gemäß einer Ausführungsform der vorliegenden Erfindung. Die Latch-Schaltungen 604 gehören zu einer Speicherelementanordnung 608 und sind eingerichtet, um Bits in eine Anordnung 608 zu speichern. In der beschriebenen Ausführungsform kann nach dem Laden eines Bits N in eine Latch-Schaltung 604a, wie zum Beispiel, wenn ein Ripple-Clock die Latch-Schaltung 604 aktiviert, ein paralleles Verschieben durchgeführt werden, um das Bit N aus der Latch-Schaltung 604a in die Latch-Schaltung 604 zu verschieben, wonach ein Bit N+1 in die Latch-Schaltung 604a geladen werden kann. Von der Latch-Schaltung 604b kann das Bit N dann in ein Speicherelement in der Anordnung 608 geschrieben werden.
  • 6b ist eine Darstellung in Diagrammform einer einzelnen Speicherelementanordnung und vielfacher Latch-Schaltungen, die während einer Schreiboperation in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung auf die Speicherelementanordnung zugreifen können. Ein Ripple-Clock kann es den Latch-Schaltungen 616a, 616b ermöglicht, im Wesentlichen gleichzeitig geladen zu werden. Ein Bit P+1 und ein Bit M+1 können zum Beispiel im Wesentlichen gleichzeitig in die Latch-Schaltung 616a und in die Latch-Schaltung 616b geladen werden. Bei einer Ausführungsform können die Bits, die in die Latch-Schaltungen 616a, 616b geladen werden, über ein paralleles Verschieben zu den Latch-Schaltungen 616d, 616c geliefert werden. Bits, wie zum Beispiel das Bit M und das Bit P, können dann im Wesentlichen gleichzeitig in ein Speicherelement in der Anordnung 620 gespeichert werden. Alternativ können das Bit m und das Bit P sequenziell in ein Speicherelement in der Anordnung 620 gespeichert werden. Ein geeignetes Verfahren zum Speichern des Bits M und des Bits P in ein Speicherelement ist im U.S. Patent Nr. 6 222 762 B1 beschrieben, das hier mit durch Bezugnahme komplett eingegliedert wird. Im Allgemeinen werden das Bit M+1 und das Bit P+1 in die Latch-Schaltung 616a und die Latch-Schaltung 616b geladen, während das Bit M und das Bit P in ein erstes Speicherelement gespeichert werden, das zur Anordnung 620 gehört.
  • Auch wenn ein paralleles Verschieben ein Bit aus der Latch-Schaltung 616a in die Latch-Schaltung 616d im Wesentlichen zur gleichen Zeit parallel verschieben kann, während ein Bit aus der Latch-Schaltung 616b in die Latch-Schaltung 616c geladen wird, sollte hervorgehoben werden, dass die Bits sequenziell geladen werden können. Wenn zum Beispiel eine Verringerung des elektrischen Rauschens gewünscht wird, kann das Laden eines Bits aus der Latch-Schaltung 616a in die Latch-Schaltung 616d entweder vor oder nach dem Laden eines Bits aus der Latch-Schaltung 616b in die Latch-Schaltung 616c eintreten.
  • Unter Bezugnahme auf 7 werden die Schritte in Zusammenhang mit einem Verfahren zum Schreiben von Daten in eine binäre oder Multi-State-Speicherelementanordnung, die eine Speicherzelle umfasst, die zwei Daten-Latch-Schaltungen verwendet, gemäß einer Ausführungsform der vorliegenden Erfindung beschrieben. Hervorzuheben ist, dass, auch wenn die Schritte in Zusammenhang mit dem Schreiben von Daten als das Schreiben von Daten in eine Speicherzelle mit zwei Latch-Schaltungen beschrieben werden, die Schritte auch für das Schreiben von Daten in im Wesentlichen jedes Speicherelement, das eine beliebige Anzahl von Latch-Schaltungen, zum Beispiel acht Latch-Schaltungen verwendet, implementiert werden können. Ein Prozess 702 des Schreibens von Daten in eine Multi-State-Speicherzellenanordnung oder allgemeiner eine nicht flüchtige Speicher-Speicherelementanordnung beginnt im Schritt 706, in dem ein Datenbit N, das in eine Speicherzelle in der Anordnung zu schreiben ist, in eine erste Latch-Schaltung geladen wird, die zu der Anordnung gehört. Mit anderen Worten wird ein erstes Bit aus einem Datenstrom in eine erste Latch-Schaltung geladen. Das Datenbit N kann von der ersten Latch-Schaltung von im Wesentlichen jeder Quelle, zum Beispiel einem Hostsystem, empfangen werden. Sobald das Datenbit N in die erste Latch-Schaltung geladen ist, wird das Bit N im Schritt 708 durch eine Operation, wie zum Beispiel eine parallele Verschiebeoperation in die zweite Latch-Schaltung verschiebt. Ein Schreibprozess wird dann in Schritt 710 ausgelöst, um das Datenbit N aus der zweiten Latch-Schaltung in die Speicherzellenanordnung zu schreiben.
  • Im Wesentlichen zur gleichen Zeit wie der Zeit des Auslösens des Schreibprozesses zum Schreiben des Datenbits N in die Speicherzellenanordnung, wird das nächste Datenbit des Datenstroms in die erste Latch-Schaltung, die zu der Speicherzellenanordnung gehört, gespeichert. Daher wird das Datenbit N+1 im Schritt 714 in die erste Latch-Schaltung geladen. Das Datenbit N und das Datenbit N+1 werden daher effektiv gepipelined. Nachdem das Datenbit N+1 in Schritt 714 in die erste Latch-Schaltung geladen wurde, wird der Schreibprozess, der in Schritt 710 ausgelöst wurde, abgeschlossen, das heißt, dass der Schreibprozess zum Schreiben des Datenbits N in die Speicherzellenanordnung in Schritt 718 vollendet ist.
  • Nach dem Vollenden des Schreibprozesses in Schritt 718 wird das Datenbit N+1 aus der ersten Latch-Schaltung in Schritt 720 in die zweite Latch-Schaltung verschoben oder geladen. Ein Schreibprozess wird dann in Schritt 722 ausgelöst, um das Datenbit N+1, das in der zweiten Latch-Schaltung gespeichert ist, in die Speicherzellenanordnung zu schreiben. Wenn der Schreibprozess zum Schreiben des Datenbits N+1 in die Speicherzellenanordnung ausgelöst wird, kann ein darauf folgendes Datenbit des Datenstroms in die erste Latch-Schaltung 726 geladen werden. Bei der beschriebenen Ausführungsform wird das Datenbit N+2 in Schritt 726 in die erste Latch-Schaltung geladen. Sobald das Datenbit N+2 in die erste Latch-Schaltung geladen ist, wird in Schritt 730 der Schreibprozess zum Schreiben des Datenbits N+1 in die Speicherzellenanordnung abgeschlossen. Dann wird in Schritt 734 der Wert von N effektiv zurückgestellt, zum Beispiel, wird das Datenbit N+2 initialisiert wird, um das neue Datenbit N zu sein, und der Prozessfluss kehrt zum Schritt 708 zurück, in dem das Datenbit N, nämlich das neue Datenbit N aus der ersten Latch-Schaltung in die zweite Latch-Schaltung verschoben wird.
  • 8 ist ein Prozessflussdiagramm, das die Schritte darstellt, die zum Lesen von Daten, die in einer binären oder Multi-State-Speicherzellenanordnung in Latch-Speichern gemäß einer Ausführungsform der vorliegenden Erfindung gehören. Bei der beschriebenen Ausführungsform werden drei Latch-Schaltungen verwendet, um Daten aus der Multi-State-Speicherzellenanordnung zu lesen, die im Allgemeinen eine Vielzahl von Speicherzellen umfasst. Der Prozess 802 beginnt im Schritt 806, in dem ein erstes Datenbit N aus der Speicherzellenanordnung oder, allgemeiner aus einer Anordnung von Speicherelementen geholt und in eine erste Latch-Schaltung geladen wird, die zu der Speicherzellenanordnung gehört. Bei einer Ausführungsform kann die erste Datenlatch-Schaltung wie in 2 und 3 dargestellt auch dazu verwendet werden, Daten zu laden, die in der Speicherzellenanordnung zu speichern sind, und auch Daten zu laden, die aus der Speicherzellenanordnung zu holen sind.
  • Alternativ und wie in 4 gezeigt, kann die erste Datenlatch-Schaltung, die zum Laden von Daten verwendet wird, die aus der Speicherzellenanordnung geholt werden, im Wesentlichen nur dazu verwendet werden, Daten aus der Speicherzellenanordnung zu laden.
  • Sobald das Datenbit N in die erste Latch-Schaltung geladen ist, die bei einer Ausführungsform effektiv als Gatter dient, wird das Datenbit N aus der ersten Latch-Schaltung in Schritt 808 in eine zweite Latch-Schaltung übertragen. Im Wesentlichen zur gleichen Zeit wie die Übertragung des Datenbits N in die zweite Latch-Schaltung, wird das Datenbit N+1 aus der Speicherzellenanordnung in Schritt 814 in die erste Latch-Schaltung geladen. Nachdem das Datenbit N+1 in die erste Latch-Schaltung geladen wurde, wird das Datenbit N+1 in Schritt 816 in eine dritte Latch-Schaltung übertragen.
  • Im Schritt 820 wird das Funktionieren eines Ripple-Clock erlaubt. Der Ripple-Clock funktioniert im Allgemeinen, um es Bits zu ermöglichen, aus der zweiten Latch-Schaltung und der dritten Latch-Schaltung ausgestreamt zu werden. In Schritt 824 werden daher Daten aus der zweiten und der dritten Latch-Schaltung gelesen. Die Daten können im Wesentlichen gepipelined werden. Sobald die Bits aus der zweiten und der dritten Latch-Schaltung in Schritt 824 gelesen werden, kehrt der Prozessfluss zu Schritt 806 zurück, in dem ein neues Datenbit N aus der Speicherzellenanordnung in die erste Latch-Schaltung geladen wird.
  • Bei einer Ausführungsform können vier Datenbits als vier Bits in ein Speicherelement geschrieben werden, aber mit einer höheren Präzision, zum Beispiel als sieben Bits gelesen werden. Das Lesen von vier gespeicherten Bits als sieben Bits und dann das Zurückübertragen der sieben Bits in vier Bits ist in der gleichzeitigen U.S. Patentanmeldung Nr. 10/152 137 (Anwaltsliste Nr. M-11304 US) mit dem Titel "Steigern der Effektivität von Fehlerkorrekturcodes und des Betriebs von Multiniveauspeichersystemen durch Verwenden von Informationen über die Qualität der gespeicherten Daten", angemeldet am 20. Mai 2002, das hier durch Bezugnahme komplett eingegliedert wird, beschrieben. Um das Speichern von Datenbits in ein Speicherelement und das Holen von Bits aus dem Speicherelement bei einer derartigen Ausführungsform zu erleichtern, können vier dedizierte Schreib-Latch-Schaltungen und sieben dedizierte Lese-Latch-Schaltungen in Bezug auf das Speicherelement implementiert werden. 9 ist eine Darstellung in Diagrammform eines Speicherelements, das mehrfache Lese-Latch-Schaltungen und mehrfache Schreib-Latch-Schaltungen gemäß einer Ausführungsform der vorliegenden Erfindung umfasst. Ein Speicherelement 904 hat vier Schreib-Latch-Schaltungen 914, die eingerichtet sind, um Bits zu laden, die von einer (nicht dargestellten) Datenquelle, zum Beispiel einem Hostsystem (nicht dargestellt), das mit dem Speicherelement 904 kommuniziert, geliefert werden.
  • Die Bits können in die Schreib-Latch-Schaltungen 914 geladen werden, bevor die Bits in das Speicherelement 904 geschrieben werden. Wie oben erwähnt, können vier Bits, die mit den Latch-Schaltungen 914 in das Speicherelement 904 geschrieben wurden, als sieben Bits aus dem Speicherelement 904 gelesen werden. Bei der dargestellten Ausführungsform werden daher sieben Lese-Latch-Schaltungen 916 zum Lesen von Bits aus dem Speicherelement 904 verwendet.
  • Wenn vier Datenbits gespeichert und als sieben Datenbits gelesen werden, oder allgemeiner, wenn eine Anzahl gespeicherter Bits aus einem Speicherelement als eine größere Anzahl von Bits gelesen wird, können die Latch-Schaltungen, die zum vorübergehenden Speichern der Daten dienen, die in das Speicherelement zu schreiben sind, auch als Latch-Schaltungen dienen, die vorübergehend Daten, wie zum Beispiel die Daten speichern, die aus dem Speicherelement gelesen werden. Daher kann ein Speicherelement, das eine Anzahl von Bits speichert, die als eine größere Anzahl von Bits gelesen werden, statt der dedizierten Lese-Latch-Schaltungen und Schreib-Latch-Schaltungen wie oben unter Bezugnahme auf 9 beschrieben, geteilte Lese- und Schreib-Latch-Schaltungen haben. Unter Bezugnahme auf 10 wird ein Speicherelement gemäß einer Ausführungsform der vorliegenden Erfindung beschrieben, das zu Latch-Speichern gehört, die zum vorübergehenden Speichern von Bits dienen, die zu schreiben sind, und die zu lesen sind. Ein Speicherelement 1004 ist zum Speichern von vier Bits eingerichtet, die als sieben Bits gelesen werden, obwohl hervorzuheben ist, dass die Anzahl der gespeicherten Bits und die Anzahl der gelesenen Bits im Allgemeinen weitgehend variieren kann.
  • Um im Allgemeinen den Bedarf des Lesens von sieben Bits zu erlauben, gehören sieben Latch-Schaltungen 1015a–g zum Speicherelement 1004. Die Latch-Schaltungen 1015a–g können als vorübergehende Zwischenspeicher für Bits dienen, die aus dem Speicherelement 1004 gelesen werden. Typisch kann jede der vier Latch-Schaltungen 1015a–g als vorübergehender Zwischenspeicher für Bits dienen, die in Speicherelemente 1004 zu schreiben sind.
  • Wie der Fachmann weiß, brauchen Schreiboperationen im Allgemeinen mehr Zeit als Leseoperationen. Das Pipelinen von Bits, die in das Speicherelement 1004 zu schreiben sind, kann daher auch ohne Pipelinen von Bits, die aus dem Speicherelement 1004 zu lesen sind, die Gesamteffizienz in Zusammenhang mit dem Speichern von Daten in das Speicherelement 1004 steigern. Bits können unter Einsatz von vier Latch-Schaltungen, zum Beispiel der Latch-Schaltungen 1015a–d als Schreib-Latch-Schaltungen während Schreiboperationen in das Speicherelement gepipelined werden, und unter Einsatz von drei Latch-Schaltungen, zum Beispiel der Latch-Schaltungen 1015e–g zum Pipelinen. Die Latch-Schaltungen 1015e–g können daher jede als Latch-Schaltungen dienen, die geladen werden, während Bits aus den Latch-Schaltungen 1015a–d in das Speicherelement 1004 geschrieben werden. Bei der dargestellten Ausführungsform kann eine achte Latch-Schaltung 1015h zu dem Speicherelement 1004 ge hören. Die Latch-Schaltung 1015h kann zusätzlich zu den Latch-Schaltungen 1015e–g als vier Latch-Schaltungen zum Pipelinen für die Latch-Schaltungen 1015a–d und umgekehrt dienen. Der Einsatz von vier Latch-Schaltungen, nämlich der Latch-Schaltungen 1015e–h als Pipeline-Latch-Schaltungen in Bezug auf vier Latch-Schaltungen 1015a–d ermöglicht es jeder der Latch-Schaltungen 1015a–d, eine zugehörige Pipeline-Latch-Schaltung zu haben, wodurch das im Wesentlichen gleichzeitige Schreiben von vier Bits in das Speicherelement 1004 ermöglicht wird. Ebenso können die Latch-Schaltungen 1015a–d als Pipeline-Latch-Schaltungen für die Latch-Schaltungen 1015e–h dienen. Der Einsatz von acht Latch-Schaltungen zum Pipelinen von Bits zum Schreiben in ein Speicherelement wird unten unter Bezugnahme auf 14 beschrieben.
  • Die Latch-Schaltung 1015h kann im Wesentlichen für Schreibprozesse in Zusammenhang mit dem Speicherelement 1004 dediziert sein. Die Latch-Schaltung 1015h kann daher während einer Schreiboperation verwendet werden, bleibt jedoch während einer Leseoperation im Wesentlichen ungenutzt, da die Leseoperation, die zum Lesen von sieben Bits eingerichtet ist, die Latch-Schaltungen 1015a–d verwendet. Alternativ kann eine Leseoperation modifiziert werden, um vier gespeicherte Bits als acht Bits zu lesen, wobei alle Latch-Schaltungen 1015a–h sowohl für Schreiboperation als auch für Leseoperationen verwendet werden können.
  • Im Allgemeinen kann die Latch-Schaltung 1015h für den Gebrauch mit dem Speicherelement 1004 dediziert sein. Da die Latch-Schaltung 1015h bei einer Ausführungsform jedoch im Wesentlichen nur in Bezug auf Schreiboperationen verwendet werden kann, kann die Latch-Schaltungen 1015h "geteilt" werden. Zum Beispiel kann die Latch-Schaltung 1015h zusätzlich zu ihrem Gebrauch zum Erleichtern des Speicherns von Daten im Speicherelement 1004 auch zum Erleichtern des Downloadens von Daten in einen Zwischenspeicher verwendet werden. Die Latch-Schaltung 1015h kann daher als Teil einer Abtasteinrichtung verwendet werden.
  • 11 ist eine Darstellung in Diagrammform einer Abtasteinrichtung, die eine Latch-Schaltung gemäß einer Ausführungsform der vorliegenden Erfindung umfasst. Eine Abtasteinrichtung 1100 ist im Allgemeinen eingerichtet, um Daten, die in einer (nicht dargestellten) Speicherzellenanordnung gespeichert sind, für einen Zwischenspeicher 1105 oder eine Datenlatch-Schaltung zu liefern. Daten, die aus der Speicherzelle geholt werden, können durch einen oder mehrere Abtastverstärker innerhalb einer Abtastverstärkereinrichtung 1117 verarbeitet werden. Typisch werden Bits aus der Speicherzellenanordnung seriell gelesen, wobei das höchstwertige Bit als erstes gelesen wird.
  • Bei der beschriebenen Ausführungsform ist eine Latch-Schaltung 1115 eingerichtet, um den Ausgang der Abtastverstärkereinrichtung 1117 zu latchen, bevor der Ausgang in den Zwischenspeicher 1105 gedownloadet wird. Der Einsatz der Latch-Schaltung 1115 dient typisch zum Verringern der Rauschempfindlichkeit durch das Latchen von Daten während jeder Phase eines Multidurchgangslesens. Während die Latch-Schaltung 1115 mit einem Leseprozess verbunden sein kann, an dem ein Speicherelement oder eine Speicherzelle beteiligt ist, kann die Latch-Schaltung 1115 auch während eines Schreibprozesses einen Zweck erfüllen. Beispielsweise kann die Latch-Schaltung 1115 während eines Schreibprozesses als Latch-Schaltung 1015h der 10 dienen. Zusätzlich zum Latchen der von der Abtastverstärkereinrichtung 1117 während eines Gesamtleseprozesses gelieferten Latch-Daten, kann die Latch-Schaltung 1115 als Pipeline-Latch-Schaltung während eines Schreibprozesses verwendet werden, an dem die Speicherzelle beteiligt ist, die die Daten für die Abtastverstärker 1117 liefert.
  • 14 ist eine Darstellung in Diagrammform einer nicht flüchtigen Speicher-Speicherelementanordnung, die Datenbits über einen Satz von acht Latch-Schaltungen empfängt, die effektiv gemäß einer Ausführungsform der vorliegenden Erfindung parallel funktionieren. Eine nicht flüchtige Speicher-Speicherelementanordnung 1404 kann Multi-State-Speicherelemente umfassen, obwohl die Speicherelementanordnung 1404 im Wesentlichen jeden Typ von Speicherelementen, wie zum Beispiel binäre Speicherelemente enthalten kann. Wenn ein Datenbitstrom 1406 in die Speicherelementanordnung 1404 zu speichern ist, kann der Datenbitstrom 1406 in die Latch-Schaltungen 1408, 1412 geladen werden, bevor er in die Speicherelementanordnung 1404 geschrieben wird. Zum Beispiel kann ein erstes Bit des Stroms 1406 in die Latch-Schaltung 1408a geladen und dann durch eine parallele Verschiebeoperation in die Latch-Schaltung 1412a übertragen werden, während ein zweites Bit des Stroms 1406 in die Latch-Schaltung 1408b geladen und dann durch eine parallele Verschiebeoperation in die Latch-Schaltung 1412b übertragen werden kann. Während die ersten Bits im Wesentlichen aus den Latch-Schaltungen wie zum Beispiel den Latch-Schaltungen 1412a, 1412b in die Speicherelementanordnung 1404 geschrieben werden, können die nächsten Bits des Stroms 1406 in die Latch-Schaltungen 1408a, 1408b geladen werden. Im Allgemeinen können Bits aus dem Strom 1406 im Wesentlichen gleichzeitig in die Latch-Schaltungen 1408 geladen und mit einer parallelen Verschiebeoperation in die Latch-Schaltungen 1412 übertragen werden. Wenn die Bits in den Latch-Schaltungen 1412 dann effektiv in das Speicherelement 1404 gespeichert werden, können die nächsten Bits im Strom 1406 in die Latch-Schaltungen 1408 geladen und mit einer parallelen Verschiebeoperation in die Latch-Schaltungen 1412 übertragen werden.
  • Bei der beschriebenen Ausführungsform schreiben im Wesentlichen nur die Latch-Schaltungen 1412 Daten in die Speicherelementanordnung 1404. Während die Latch-Schaltungen 1408, 1412 eingerichtet sein können, um Daten in die Speicherelementanordnung 1404 zu schreiben, kann die Tatsache, es nur einem Satz von Latch-Schaltungen, nämlich den Latch-Schaltungen 1412 zu erlauben, in die Speicherelementanordnung 1404 zu schreiben, die Schaltkreise, die zu den Latch-Schaltungen 1408, 1412 gehören, wesentlich vereinfachen.
  • Im Allgemeinen kann die Anzahl der Latch-Schaltungen, die zum Schreiben von Daten in eine Speicherelementanordnung verwendet werden, kleiner oder gleich der Anzahl der Latch-Schaltungen sein, die zum Lesen von Daten aus der Speicherelementanordnung verwendet werden. Wenn zum Beispiel eine nicht flüchtige Speicherelementanordnung, wie zum Beispiel die Speicherelementanordnung 1404 der 14 acht dazu gehörende Latch-Schaltungen hat, die Bits in die Speicherelementanordnung 1404 schreiben, kann die Speicherelementanordnung 1404 typisch acht oder neun Latch-Schaltungen haben, die Bits aus der Speicherelementanordnung 1404 lesen. 15 ist eine Darstellung in Diagrammform einer nicht flüchtigen Speicher-Speicherelementanordnung, die Datenbits über einen Satz von neun Latch-Schaltungen während einer Leseoperation gemäß einer Ausführungsform der vorliegenden Erfindung liefert. Wenn Daten aus einer Speicherelementanordnung 1504 in einen Bitstrom 1506 zu lesen sind, kann ein erstes Bit, das im Datenstrom 1506 enthalten ist, in eine Latch-Schaltung 1508 geladen und dann in eine Latch-Schaltung 1512 verschoben werden. Ein darauf folgendes zweites Bit aus dem Datenstrom 1506 kann in die Latch-Schaltung 1508 geladen werden, nachdem das erste Bit in die Latch-Schaltung 1512 getaktet wurde. Dieses zweite Bit kann dann in eine Latch-Schaltung 1512b verschoben werden, bevor ein drittes Bit in die Latch-Schaltung 1512a getaktet wird. Das Laden von Bits in die Latch-Schaltung 1508 und das Verschieben dieser Bits in die Latch-Schaltungen 1512 wird typisch fortgesetzt, bis im Wesentlichen alle Latch-Schaltungen 1512 geladen sind, oder bis der Datenstrom 1506 im Wesentlichen leer ist.
  • Sobald die Latch-Schaltungen 1512 geladen sind, können die in ihnen enthaltenen Bits aus den Latch-Schaltungen 1512 durch einen Ripple-Clock gelesen werden. Die Leistung in Zusammenhang mit einer Leseoperation kann daher verbessert werden, weil acht Bits parallel gelesen werden können. Bei der beschriebenen Ausführungsform dient die Latch-Schaltung 1508 effektiv als Gatter, das es erlaubt, Bits in die Latch-Schaltungen 1512 zu laden. Zu betonen ist jedoch, dass bei einer Ausführungsform die Latch-Schaltung 1508 sowohl als Gatter als auch als Pipeline-Latch-Schaltung dienen kann, das heißt, ein Ripple-Clock kann ein Bit im Wesentlichen direkt aus der Latch-Schaltung 1508 heraustakten. Wenn die Latch-Schaltung 1508 Pipelinefähigkeiten besitzt, kann eine Latch-Schaltung 1512, nämlich die Latch-Schaltung 1512h, im Wesentlichen eliminiert werden, weil die Latch-Schaltung 1508 und die Latch-Schaltungen 1015a–g den Latch-Schaltungen 1408, 1412 der 14 in einem System entsprechen können, in dem jede Latch-Schaltung sowohl eine Lese- als auch eine Schreib-Latch-Schaltung ist. Obwohl nur wenige Ausführungsformen der vorliegenden Erfindung beschrieben wurden, versteht es sich von selbst, dass die vorliegende Erfindung in vielen anderen spezifischen Formen ausgeführt werden kann, ohne den Geltungsbereich der vorliegenden Erfindung zu verlassen. Beispielsweise wurde ein Bauteil innerhalb einer Speichervorrichtung, die Daten zwischenspeichert, die in eine Speicherelementanordnung in der Speichervorrichtung geladen oder aus ihr geholt werden, allgemein als eine Latch-Schaltung beschrieben. Es sollte jedoch beachtet werden, dass im Wesentlichen jedes geeignete Bauteil, das Daten zwischenspeichert, an Stelle einer Latch-Schaltung implementiert werden kann.
  • Wie oben unter Bezugnahme auf 4 beschrieben, können doppelte Sätze von Latch-Schaltungen verwendet werden, um Daten zu latchen, die in eine Speicherelementanordnung zu schreiben sind, und um Daten zu latchen, die aus der Speicherelementanordnung gelesen werden. Zwei Latch-Schaltungen können daher zum Einsatz als dedizierte Schreib-Latch-Schaltungen konfiguriert werden, und zwei Latch-Schaltungen können zum Einsatz als dedizierte Lese-Latch-Schaltungen konfiguriert werden. Innerhalb eines Gesamtsystems, in dem eine Speicherelementanordnung zwei dazu gehörige Schreib-Latch-Schaltungen und zwei dazu gehörige Lese-Latch-Schaltungen hat, können alle vier Latch-Schaltungen zum Zwischenspeichern von Daten verwendet werden, die in die Speicherelementanordnung zu schreiben sind, wenn die Bandbreitenanforderungen so sind, dass zwei dedizierte Lese-Latch-Schaltungen effektiv nicht erforderlich sind. Die zwei Lese-Latch-Schaltungen können auch zum Zwischenspeichern von Daten verwendet werden, die aus der Speicherelementanordnung gelesen werden, wenn gerade keine Daten in die Speicherelementanordnung geschrieben werden. Ebenso können die zwei Schreib-Latch-Schaltungen auch als Lese-Latch-Schaltungen verwendet werden, wenn die Bandbreitenanforderungen innerhalb eines solchen Systems zumindest vorübergehend nicht effektiv zwei dedizierte Schreib-Latch-Schaltungen brauchen.
  • Im Allgemeinen können die Schritte in Zusammenhang mit den Prozessen der vorliegenden Erfindung weitgehend variiert werden. Die Schritte können geändert, anders geordnet, hinzugefügt oder weggelassen werden, ohne den Geltungsbereich der vorliegenden Erfindung zu verlassen. Beispielsweise können Prozesse, die zum Lesen von Daten aus einer Speicherelementanordnung oder zum Schreiben von Daten in eine Speicherelementanordnung verwendet werden, Tests umfassen, um zu bestimmen, ob es zusätzliche Bits gibt, die geholt oder geladen werden sollen. Wenn Daten ferner aus den Lese-Latch-Schaltungen ausgetaktet werden, kann im Wesentlichen gleichzeitig ein Bit in eine Gatter-Latch-Schaltung geladen werden. Die vorliegenden Beispiele müssen daher als darstellend und nicht einschränkend betrachtet werden, und die Erfindung darf nicht auf die hier gegebenen Details beschränkt werden, sondern kann innerhalb des Geltungsbereichs der anliegenden Ansprüche modifiziert werden.
  • Kurzdarstellung: Verfahren und Geräte zum effizienten Schreiben von Daten in und Lesen von Daten aus Multi-State-Speicherzellen. Gemäß einem Aspekt der vorliegenden Erfindung umfasst ein Speichersystem ein erstes Speicherelement, eine Datenquelle, ein erstes Element, ein zweites Element und einen Ripple-Clock. Die Datenquelle stellt eine Vielzahl von Bits bereit, die im ersten Speicherelement zu speichern sind, und das erste Element empfängt ein erstes Bit von der Datenquelle und taktet ferner das erste Bit in das zweite Element. Das erste Element empfängt dann ein zweites Bit der Vielzahl von Bits von der Datenquelle im Wesentlichen während das erste Bit in das erste Speicherelement gespeichert wird. Der Ripple-Clock ermöglicht das Zugreifen auf das erste und das zweite Element derart, dass das erste und das zweite Bit gepipelined werden können.

Claims (38)

  1. Speichersystem, wobei das Speichersystem zum Speichern von Daten geeignet ist, wobei das Speichersystem Folgendes umfasst: eine Vielzahl von Speicherelementen, wobei die Vielzahl von Speicherelementen ein erstes Speicherelement umfasst; eine Datenquelle, wobei die Datenquelle eingerichtet ist, um eine Vielzahl von Bits zu liefern, die in das erste Datenelement zu speichern sind; ein erstes Element, wobei das erste Element eingerichtet ist, um ein erstes Bit zu empfangen, das in der Vielzahl von Bits von der Datenquelle enthalten ist; ein zweites Element, wobei das zweite Element eingerichtet ist, um ein erstes Bit von dem ersten Element zu empfangen, wobei das zweite Element ferner eingerichtet ist, um das erste Bit in das erste Speicherelement zu speichern; und einen Ripple-Clock, wobei der Ripple-Clock eingerichtet ist, um das Zugreifen auf das erste und das zweite Element zu ermöglichen.
  2. Speichersystem nach Anspruch 1, wobei der Ripple-Clock ferner eingerichtet ist, um das im Wesentlichen gleichzeitige Zugreifen auf das erste und das zweite Speicherelement, die in der Vielzahl von Speicherelementen enthalten sind, zu erlauben.
  3. Speichersystem nach Anspruch 1, wobei das erste Element eine erste Latch-Schaltung und das zweite Element eine zweite Latch-Schaltung ist.
  4. Speichersystem nach Anspruch 1, wobei das erste Element eingerichtet ist, um ein zweites Bit, das im Wesentlichen in der Vielzahl von Bits der Datenquelle enthalten ist, im Wesentlichen zu empfangen, während das erste Bit in das erste Speicherelement gespeichert wird.
  5. Speichersystem nach Anspruch 4, wobei das zweite Element eingerichtet ist, um das zweite Bit vom ersten Element zu empfangen, wobei das zweite Element ferner eingerichtet ist, um das zweite Bit in ein zweites Speicherelement, das in der Vielzahl von Speicherelementen enthalten ist, im Wesentlichen zu speichern, während ein drittes Bit, das in der Vielzahl von Bits enthalten ist, von dem ersten Speicherelement von der Datenquelle empfangen wird.
  6. Speichersystem nach Anspruch 1, wobei das erste System eingerichtet ist, um ein zweites Bit, das in der Vielzahl von Bits der Datenquelle enthalten ist, zu empfangen, nachdem das erste Bit in das erste Speicherelement gespeichert wurde.
  7. Speichersystem nach Anspruch 1, wobei das Speichersystem ferner einen Datenempfänger umfasst, und wobei das erste Element ferner eingerichtet ist, um vom ersten Speicherelement ein drittes Bit zu empfangen und das dritte Bit für den Datenempfänger bereitzustellen.
  8. Speichersystem nach Anspruch 7, wobei die Vielzahl von Speicherelementen ein zweites Speicherelement umfasst, und wobei das zweite Speicherelement ferner eingerichtet ist, um ein viertes Bit von dem zweiten Speicherelement im Wesentlichen zu empfangen, nachdem das dritte Bit für den Datenempfänger bereitgestellt wurde.
  9. Speichersystem nach Anspruch 1, wobei das Speichersystem ein nicht flüchtiges Speichersystem ist.
  10. Speichersystem nach Anspruch 9, wobei das nicht flüchtige Speichersystem eine Speicherkarte ist.
  11. Speichersystem nach Anspruch 10, wobei die Speicherkarte entweder eine PC-Karte, eine CompactFlash-Karte, eine MultiMedia-Karte, eine Secure Digital Card, eine SmartMedia-Karte oder eine MemoryStick-Karte ist.
  12. Speichersystem nach Anspruch 9, wobei das erste Speicherelement ein nicht flüchtiges Speicherelement ist.
  13. Rechensystem umfassend: einen Host, wobei der Host eingerichtet ist, um eine Vielzahl von Bits bereitzustellen, wobei die Vielzahl von Bits ein erstes und ein zweites Bit umfasst, und eine Speichervorrichtung, wobei die Speichervorrichtung mit dem Host kommuniziert und die Speichervorrichtung Folgendes umfasst: eine Anordnung von Speicherelementen, wobei die Anordnung von Speicherelementen mindestens ein Speicherelement umfasst, ein erstes Zwischenspeicherelement, wobei das erste Zwischenspeicherelement eingerichtet ist, um das erste Bit von dem Host zu empfangen, ein zweites Zwischenspeicherelement, wobei das zweite Zwischenspeicherelement eingerichtet ist, um das erste Bit von dem ersten Zwischenspeicherelement zu empfangen, wobei das zweite Zwischenspeicherelement ferner eingerichtet ist, um das erste Bit in der Anordnung zu speichern, und einen Ripple-Clock, wobei der Ripple-Clock eingerichtet ist, um das Zugreifen auf das erste Zwischenspeicherelement und auf das zweite Zwischenspeicherelement zu aktivieren.
  14. Rechensystem nach Anspruch 13, wobei der Ripple-Clock ferner eingerichtet ist, um das im Wesentlichen gleichzeitige Zugreifen auf mindestens ein erstes Speicherelement und mindestens ein zweites Speicherelement, die in der Anordnung enthalten sind, zu erlauben.
  15. Rechensystem nach Anspruch 13, wobei das erste Zwischenspeicherelement eine erste Latch-Schaltung und das zweite Zwischenspeicherelement eine zweite Latch-Schaltung ist.
  16. Rechensystem nach Anspruch 13, wobei das erste Zwischenspeicherelement eingerichtet ist, um ein drittes Bit, das in der Vielzahl von Bits des Host enthalten ist, im Wesentlichen zu empfangen, während das zweite Bit in die Anordnung gespeichert wird.
  17. Rechensystem nach Anspruch 13, wobei das zweite Zwischenspeicherelement ferner eingerichtet ist, um ein drittes Bit von der Anordnung zu empfangen und das dritte Bit dem Host bereitzustellen.
  18. Rechensystem nach Anspruch 13, wobei das zweite Zwischenspeicherelement ferner eingerichtet ist, um ein drittes Bit von der Anordnung zu empfangen und das dritte Bit der ersten Zwischenspeicherelement bereitzustellen, wobei das erste Zwischenspeicherelement eingerichtet ist, um dem Host das dritte Bit bereitzustellen.
  19. Rechensystem nach Anspruch 13, wobei die Speichervorrichtung ein nicht flüchtiges Speichersystem ist und das mindestens eine Speicherelement ein nicht flüchtiges Speicherelement ist.
  20. Rechensystem nach Anspruch 19, wobei die Speichervorrichtung entweder eine PC-Karte, eine CompactFlash-Karte, eine MultiMedia-Karte, eine Secure Digital Card, eine SmartMedia-Karte oder eine MemoryStick-Karte ist.
  21. Rechensystem nach Anspruch 13, wobei das Hostsystem eingerichtet ist, um Daten zu erfassen, wobei die Daten eine Vielzahl von Bits umfassen, wobei die Daten eine Standbildinformation, Audioinformation, Videoinformation oder Information sind, die drahtlos erfasst wird.
  22. Rechensystem nach Anspruch 21, wobei das Hostsystem entweder ein digitaler Fotoapparat, eine Videokamera, eine Mobilkommunikationsvorrichtung oder ein Audioplayer oder ein Videoplayer ist.
  23. Rechensystem nach Anspruch 13, wobei die Speichervorrichtung aus dem Hostsystem herausnehmbar ist.
  24. Verfahren zum Speichern einer Vielzahl von Bits in einem Speichersystem, wobei das Speichersystem eine Anordnung umfasst, die mindestens ein Speicherelement, ein erstes Zwischenspeicherelement und ein zweites Zwischenspeicherelement umfasst, wobei das Verfahren Folgendes umfasst: Bereitstellen eines ersten Bits, das in einer Vielzahl von Bits enthalten ist, für das erste Zwischenspeicherelement; Auslösen eines Schreibprozesses zum Schreiben des ersten Bits in das Speicherelement, wobei das Auslösen des Schreibprozesses zum Schreiben des ersten Bits in die Anordnung das Bereitstellen des ersten Bits für das zweite Zwischenspeicherelement umfasst, Bereitstellen eines zweiten Bits, das in der Vielzahl von Bits enthalten ist, für das erste Zwischenspeicherelement, wobei das zweite Bit für das zweite Zwischenspeicherelement bereitgestellt wird, nachdem der Schreibprozess zum Schreiben des ersten Bits in das Speicherelement ausgelöst wurde, und Abschließen des Schreibprozesses zum Schreiben des ersten Bits in die Anordnung, nachdem das zweite Bit dem ersten Zwischenspeicherelement bereitgestellt wurde.
  25. Verfahren nach Anspruch 24, ferner umfassend: Auslösen eines Schreibprozesses zum Schreiben des zweiten Bits in die Anordnung, wobei das Auslösen des Schreibprozesses zum Schreiben des zweiten Bits in die Anordnung das Bereitstellen des zweiten Bits für das zweite Zwischenspeicherelement umfasst; Bereitstellen eines dritten Bits, das in der Vielzahl von Bits enthalten ist, für das erste Zwischenspeicherelement im Wesentlichen, nachdem der Schreibprozess zum Schreiben des zweiten Bits in die Anordnung ausgelöst wurde, und Abschließen des Schreibprozesses zum Schreiben des zweiten Bits in die Anordnung, nachdem das dritte Bit dem ersten Zwischenspeicherelement bereitgestellt wurde.
  26. Verfahren zum Lesen einer Vielzahl von Bits aus einem Speichersystem, wobei das Speichersystem eine Speicherelementanordnung umfasst, die zumindest ein Speicherelement, ein erstes Zwischenspeicherelement und ein zweites Zwischenspeicherelement umfasst, wobei das Verfahren Folgendes umfasst: Bereitstellen eines ersten Bits, das in der Vielzahl von Bits enthalten ist, für das erste Zwischenspeicherelement, wobei das erste Bit aus der Speicherelementanordnung bereitgestellt wird; Bereitstellen des ersten Bits für ein zweites Zwischenspeicherelement von dem ersten Zwischenspeicherelement, und Erzielen des ersten Bits aus dem zweiten Zwischenspeicherelement.
  27. Verfahren nach Anspruch 26, wobei das Speichersystem ferner ein drittes Zwischenspeicherelement umfasst, wobei das Verfahren ferner Folgendes umfasst: Bereitstellen eines zweiten Bits, das in der Vielzahl von Bits enthalten ist, für das erste Zwischenspeicherelement, im Wesentlichen nachdem das erste Bit dem zweiten Zwischenspeicherelement bereitgestellt wurde, Bereitstellen des zweiten Bits für das dritte Zwischenspeicherelement von dem ersten Zwischenspeicherelement, und Erzielen des zweiten Bits aus dem dritten Zwischenspeicherelement im Wesentlichen während das erste Bit aus dem zweiten Zwischenspeicherelement erzielt wird.
  28. Verfahren nach Anspruch 26, ferner umfassend: Bereitstellen eines zweiten Bits, das in der Vielzahl von Bits enthalten ist, für das erste Zwischenspeicherelement, im Wesentlichen nachdem das erste Bit für das zweite Zwischenspeicherelement bereitgestellt wurde, und Erzielen des zweiten Bits aus dem ersten Zwischenspeicherelement, im Wesentlichen während das erste Bit aus dem zweiten Zwischenspeicherelement erzielt wird.
  29. Verfahren nach Anspruch 29, wobei das Speichersystem ferner einen Datenempfänger umfasst, und wobei das erste Zwischenspeicherelement ferner eingerichtet ist, um ein zweites Bit von der Speicherelementanordnung zu empfangen und dieses zweite Bit dem Datenempfänger bereitzustellen.
  30. Speichersystem, wobei das Speichersystem zum Speichern von Daten geeignet ist, wobei das Speichersystem Folgendes umfasst: ein erstes Element, ein zweites Element, wobei das zweite Element eingerichtet ist, um ein erstes und ein zweites Bit bereitzustellen, ein erstes Zwischenspeicherelement, wobei das erste Zwischenspeicherelement eingerichtet ist, um das erste Bit aus dem zweiten Element zu erzielen, wobei das erste Zwischenspeicherelement ferner eingerichtet ist, um dem ersten Element das erste Bit bereitzustellen, und ein zweites Zwischenspeicherelement, wobei das zweite Zwischenspeicherelement eingerichtet ist, um das zweite Bit von dem zweiten Element im Wesentlichen zu erzielen, während das erste Bit durch das erste Zwischenspeicherelement dem ersten Element bereitgestellt wird, wobei das zweite Zwischenspeicherelement ferner eingerichtet ist, um dem ersten Element das zweite Bit bereitzustellen, nachdem das erste Bit dem ersten Element durch das erste Zwischenspeicherelement bereitgestellt wurde.
  31. Speichersystem nach Anspruch 30, wobei das erste Zwischenspeicherelement eine erste Latch-Schaltung und das zweite Zwischenspeicherelement eine zweite Latch-Schaltung ist.
  32. Speichersystem nach Anspruch 30, wobei das Speichersystem ein nicht flüchtiges Speichersystem ist.
  33. Speichersystem nach Anspruch 32, wobei das nicht flüchtige Speichersystem eine Speicherkarte ist.
  34. Speichersystem nach Anspruch 30, ferner umfassend: ein drittes Element, wobei das zweite Zwischenspeicherelement ferner eingerichtet ist, um dem dritten Element das zweite Bit bereitzustellen.
  35. Verfahren zum Pipelinen von Bits in einem System, wobei das System ein erstes Element, ein erstes Latch-Schaltungselement, ein zweites Latch-Schaltungselement, einen Ripple-Clock umfasst, wobei das Verfahren Folgendes umfasst: Laden eines ersten Bits in das erste Latch-Schaltungselement, Auslösen eines Prozesses zum Bereitstellen des ersten Bits für das erste Element, wobei das erste Element eingerichtet ist, um das erste Bit zumindest vorübergehend aufzunehmen, und Laden eines zweiten Bits in das zweite Latch-Schaltungselement, wobei der Ripple-Clock es ermöglicht, das zweite Bit in das zweite Latch-Schaltungselement im Wesentlichen zur gleichen Zeit zu laden, wie der Prozess zum Bereitstellen des ersten Bits für das erste Element ausgelöst wird.
  36. Verfahren nach Anspruch 35, das ferner das Abschließen des Prozesses zum Bereitstellen des ersten Bits für das erste Element nach dem Bereitstellen des zweiten Bits für das zweite Latch-Schaltungselement umfasst.
  37. Verfahren nach Anspruch 36, wobei der Prozess ein Schreibprozess ist, wobei der Schreibprozess eingerichtet ist, um das erste Bit in das erste Element zu schreiben.
  38. Verfahren nach Anspruch 37, wobei das System ein zweites Element umfasst, wobei das Verfahren ferner Folgendes umfasst: Lesen des ersten Bits aus dem zweiten Element, wobei das Lesen des ersten Bits aus dem zweitem Element das erste Bit in das erste Latch-Schaltungselement lädt; und Lesen des zweiten Bits aus dem zweiten Element, wobei das Lesen des zweiten Bits aus dem zweiten Element das zweite Bit in das zweite Latch-Schaltungselement lädt, wobei der Ripple-Clock es ermöglicht, das zweite Bit aus dem zweiten Element im Wesentlichen zur gleichen Zeit zu lesen wie der Prozess zum Bereitstellen des ersten Bits für das erste Element ausgelöst wird.
DE10392692T 2002-05-21 2003-02-20 Effizientes Lese-Schreibverfahren für Pipeline-Speicher Ceased DE10392692T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/152,536 2002-05-21
US10/152,536 US6751129B1 (en) 2002-05-21 2002-05-21 Efficient read, write methods for multi-state memory
PCT/US2003/005214 WO2003100787A1 (en) 2002-05-21 2003-02-20 Efficient read, write method for pipeline memory

Publications (1)

Publication Number Publication Date
DE10392692T5 true DE10392692T5 (de) 2005-06-30

Family

ID=29582065

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10392692T Ceased DE10392692T5 (de) 2002-05-21 2003-02-20 Effizientes Lese-Schreibverfahren für Pipeline-Speicher

Country Status (8)

Country Link
US (1) US6751129B1 (de)
JP (2) JP4480571B2 (de)
KR (1) KR100990541B1 (de)
CN (1) CN100444279C (de)
AU (1) AU2003213169A1 (de)
DE (1) DE10392692T5 (de)
GB (1) GB2406196B (de)
WO (1) WO2003100787A1 (de)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7523482B2 (en) * 2002-08-13 2009-04-21 Microsoft Corporation Seamless digital channel changing
US8397269B2 (en) 2002-08-13 2013-03-12 Microsoft Corporation Fast digital channel changing
US7324393B2 (en) * 2002-09-24 2008-01-29 Sandisk Corporation Method for compensated sensing in non-volatile memory
US7327619B2 (en) * 2002-09-24 2008-02-05 Sandisk Corporation Reference sense amplifier for non-volatile memory
US7196931B2 (en) * 2002-09-24 2007-03-27 Sandisk Corporation Non-volatile memory and method with reduced source line bias errors
US7443757B2 (en) * 2002-09-24 2008-10-28 Sandisk Corporation Non-volatile memory and method with reduced bit line crosstalk errors
AU2003272596A1 (en) * 2002-09-24 2004-04-19 Sandisk Corporation Non-volatile memory and its sensing method
US7046568B2 (en) * 2002-09-24 2006-05-16 Sandisk Corporation Memory sensing circuit and method for low voltage operation
US6987693B2 (en) * 2002-09-24 2006-01-17 Sandisk Corporation Non-volatile memory and method with reduced neighboring field errors
US7603689B2 (en) * 2003-06-13 2009-10-13 Microsoft Corporation Fast start-up for digital video streams
US7064980B2 (en) * 2003-09-17 2006-06-20 Sandisk Corporation Non-volatile memory and method with bit line coupled compensation
US6956770B2 (en) * 2003-09-17 2005-10-18 Sandisk Corporation Non-volatile memory and method with bit line compensation dependent on neighboring operating modes
US7562375B2 (en) 2003-10-10 2009-07-14 Microsoft Corporation Fast channel change
US7444419B2 (en) * 2003-10-10 2008-10-28 Microsoft Corporation Media stream scheduling for hiccup-free fast-channel-change in the presence of network chokepoints
US7430222B2 (en) * 2004-02-27 2008-09-30 Microsoft Corporation Media stream splicer
US7640352B2 (en) * 2004-09-24 2009-12-29 Microsoft Corporation Methods and systems for presentation of media obtained from a media stream
DE102004055013A1 (de) * 2004-11-15 2006-05-24 Infineon Technologies Ag Computereinrichtung
US7477653B2 (en) * 2004-12-10 2009-01-13 Microsoft Corporation Accelerated channel change in rate-limited environments
US7656710B1 (en) 2005-07-14 2010-02-02 Sau Ching Wong Adaptive operations for nonvolatile memories
US20070110503A1 (en) * 2005-10-31 2007-05-17 Glover J S Dispensing brush with replaceable cartridge/handle part
US8135040B2 (en) * 2005-11-30 2012-03-13 Microsoft Corporation Accelerated channel change
US7486561B2 (en) * 2006-06-22 2009-02-03 Sandisk Corporation Method for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
US7489549B2 (en) * 2006-06-22 2009-02-10 Sandisk Corporation System for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
CN101689130A (zh) 2006-12-06 2010-03-31 弗森多系统公司(dba弗森-艾奥) 采用渐进raid存储数据的装置、系统和方法
TWI348617B (en) * 2007-08-09 2011-09-11 Skymedi Corp Non-volatile memory system and method for reading data therefrom
CN101364444B (zh) 2008-02-05 2011-05-11 威盛电子股份有限公司 控制方法及运用该控制方法的存储器及处理系统
WO2009140112A1 (en) * 2008-05-13 2009-11-19 Rambus Inc. Fractional program commands for memory devices
JP5086972B2 (ja) * 2008-11-06 2012-11-28 力晶科技股▲ふん▼有限公司 不揮発性半導体記憶装置のためのページバッファ回路とその制御方法
EP2377129A4 (de) * 2008-12-09 2013-05-22 Rambus Inc Nicht flüchtige speichervorrichtung für gleichzeitige und serielle speicheroperationen
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
CN102597910B (zh) 2009-09-09 2015-03-25 弗森-艾奥公司 存储设备中用于功率减小管理的装置、系统及方法
KR101829208B1 (ko) * 2009-12-31 2018-02-20 에스케이하이닉스 주식회사 반도체 메모리 장치의 동작 방법
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US9251058B2 (en) 2010-09-28 2016-02-02 SanDisk Technologies, Inc. Servicing non-block storage requests
US9263102B2 (en) 2010-09-28 2016-02-16 SanDisk Technologies, Inc. Apparatus, system, and method for data transformations within a data storage device
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
WO2012082792A2 (en) 2010-12-13 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for auto-commit memory
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
KR102460281B1 (ko) * 2017-11-24 2022-10-31 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 다중 입력 파이프 라인을 가진 데이터 버스

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2798485B2 (ja) * 1990-07-26 1998-09-17 日本電気アイシーマイコンシステム株式会社 書き込み可能不揮発性メモリ
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5592435A (en) 1994-06-03 1997-01-07 Intel Corporation Pipelined read architecture for memory
JP3013714B2 (ja) 1994-09-28 2000-02-28 日本電気株式会社 半導体記憶装置
US5655105A (en) 1995-06-30 1997-08-05 Micron Technology, Inc. Method and apparatus for multiple latency synchronous pipelined dynamic random access memory
US5950219A (en) 1996-05-02 1999-09-07 Cirrus Logic, Inc. Memory banks with pipelined addressing and priority acknowledging and systems and methods using the same
JPH1064257A (ja) * 1996-08-20 1998-03-06 Sony Corp 半導体記憶装置
US5890192A (en) * 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
US5903496A (en) * 1997-06-25 1999-05-11 Intel Corporation Synchronous page-mode non-volatile memory with burst order circuitry
KR100255152B1 (ko) * 1997-06-30 2000-05-01 김영환 플래쉬 메모리 장치
JPH1126095A (ja) * 1997-06-30 1999-01-29 Amp Japan Ltd 電子制御スイッチ付コネクタ装置
JPH11162183A (ja) * 1997-11-28 1999-06-18 New Core Technology Kk 不揮発性半導体多値メモリ装置
US6105106A (en) 1997-12-31 2000-08-15 Micron Technology, Inc. Computer system, memory device and shift register including a balanced switching circuit with series connected transfer gates which are selectively clocked for fast switching times
KR100351889B1 (ko) * 1998-11-13 2002-11-18 주식회사 하이닉스반도체 카스(cas)레이턴시(latency) 제어 회로
KR100287542B1 (ko) 1998-11-26 2001-04-16 윤종용 웨이브 파이프라인 스킴을 구비한 동기형 반도체 메모리 장치및 그것의 데이터 패스 제어 방법
JP3905990B2 (ja) 1998-12-25 2007-04-18 株式会社東芝 記憶装置とその記憶方法
US6282556B1 (en) 1999-10-08 2001-08-28 Sony Corporation Of Japan High performance pipelined data path for a media processor
KR100391147B1 (ko) 2000-10-24 2003-07-16 삼성전자주식회사 멀티 파이프라인 구조를 가지는 고속 동기 반도체 메모리및 그의 동작방법

Also Published As

Publication number Publication date
GB2406196A (en) 2005-03-23
KR20050024278A (ko) 2005-03-10
GB0425543D0 (en) 2004-12-22
WO2003100787A1 (en) 2003-12-04
CN1662993A (zh) 2005-08-31
JP2005527055A (ja) 2005-09-08
KR100990541B1 (ko) 2010-10-29
JP4480571B2 (ja) 2010-06-16
JP2009259253A (ja) 2009-11-05
GB2406196B (en) 2006-05-03
US6751129B1 (en) 2004-06-15
AU2003213169A1 (en) 2003-12-12
CN100444279C (zh) 2008-12-17

Similar Documents

Publication Publication Date Title
DE10392692T5 (de) Effizientes Lese-Schreibverfahren für Pipeline-Speicher
DE60212982T2 (de) Dynamische spaltenblockauswahl
DE60130437T2 (de) Simultane mehrbankoperation für flash-speicher
DE60132830T2 (de) Neuartiges verfahren und struktur zur effizienten datenverifizierungsoperation für nichtflüchtige speicher
DE69034191T2 (de) EEPROM-System mit aus mehreren Chips bestehender Blocklöschung
DE60029206T2 (de) Nichtflüchtiger Speicher zur Speicherung von Multibitdaten
DE19646216C2 (de) Nicht-flüchtige Halbleiterspeichervorrichtung und Verfahren zum Betreiben derselben
DE19882933B4 (de) Flash-Speicher-Unterteilung für Lese-während-Schreiboperationen
DE102006014558B4 (de) Flashspeicherbauelement
DE4141892C2 (de) Halbleiterspeichereinrichtung und Verfahren zum Speichern von Daten in einer Halbleiterspeichereinrichtung
DE19882486B4 (de) Synchroner, nicht-flüchtiger Seitenmodus-Speicher
DE102005033165B4 (de) Nichtflüchtiges Speicherbauelement, Programmier- und Schreibverfahren
DE102005014815B4 (de) Datenleseverfahren und Halbleiterbauelement
DE69726219T2 (de) Verfahren und Vorrichtung zur Prüfung einer Speicher-integrierten Schaltung
DE102008003055A1 (de) Flash-Speichervorrichtung und Verfahren zum Betreiben derselben
DE102005033662A1 (de) Flash-Speicher vom Vielfachebenentyp und Verfahren zum Steuern von Programm- und Leseoperationen für denselben
DE102005017012A1 (de) NOR-Flashspeicherbauelement, zugehöriges Speichersystem und Programmierverfahren
DE112010000955T5 (de) NAND-Flasharchitektur mit mehrstufiger Zeilendecodierung
DE102010037064A1 (de) Nichtflüchtige Speichervorrichtung und -system sowie Verfahren des Programmierens einer nichtflüchtigen Speichervorrichtung
DE60016104T2 (de) Nichtflüchtige Halbleiterspeicheranordnung
DE102005041276B4 (de) Nicht-flüchtige Speicherzellen-Einrichtung, Programmierelement und Verfahren zum Programmieren von Daten in eine Mehrzahl von nicht-flüchtigen Speicherzellen
DE102005015806A1 (de) Verfahren zum Lesen einer Flash-Speichervorrichtung
DE60014774T2 (de) Flash-Speicher mit Übertragungs- und Kombinierfunktion
EP1262060B1 (de) Verfahren und Vorrichtung zum teilweisen Auslesen der Bilddaten eines Bildsensors
DE102019135863A1 (de) Speichercontroller, Speichervorrichtung und Speichersystem mit verbesserten Schwellenspannungs-Verteilungseigenschaften und ähnliche Betriebsverfahren

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
R082 Change of representative

Representative=s name: V. BEZOLD & PARTNER, DE

Representative=s name: V. BEZOLD & PARTNER, 80799 MUENCHEN, DE

R081 Change of applicant/patentee

Owner name: SANDISK TECHNOLOGIES INC., PLANO, US

Free format text: FORMER OWNER: SANDISK CORP., SUNNYVALE, CALIF., US

Effective date: 20120227

Owner name: SANDISK TECHNOLOGIES INC., US

Free format text: FORMER OWNER: SANDISK CORP., SUNNYVALE, US

Effective date: 20120227

R082 Change of representative

Representative=s name: V. BEZOLD & PARTNER PATENTANWAELTE - PARTG MBB, DE

Effective date: 20120227

R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final
R003 Refusal decision now final

Effective date: 20140621