DE10392692T5 - Effizientes Lese-Schreibverfahren für Pipeline-Speicher - Google Patents
Effizientes Lese-Schreibverfahren für Pipeline-Speicher Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 72
- 238000003860 storage Methods 0.000 claims abstract description 74
- 230000008569 process Effects 0.000 claims description 46
- 239000000872 buffer Substances 0.000 claims description 26
- 230000001960 triggered effect Effects 0.000 claims description 8
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 238000010295 mobile communication Methods 0.000 claims description 2
- 238000012432 intermediate storage Methods 0.000 claims 1
- 230000005055 memory storage Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000004193 electrokinetic chromatography Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1039—Read-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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent 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
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-Register1200 , 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 System1300 umfasst Latch-Schaltungen1310 und Master-Slave-Register oder Master-Slave-Flip-Flops1314 . Die Latch-Schaltungen1310 sind Daten-Latch-Schaltungen, die jeweils zu einer Speicherzelle gehören und durch Latch-Schaltungsaktivierungssignale (LE) aktiviert werden. Spezifisch wird die Latch-Schaltung1310a durch ein Signal LEA aktiviert, die Latch-Schaltung1310b wird durch ein Signal LEB aktiviert, das ein Ausgang des Flip-Flops1314 ist, und die Latch-Schaltung1310c wird durch ein Signal LEC aktiviert, das ein Ausgang des Flip-Flops1314b ist. Die Flip-Flops1314 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 Zeitdiagramm1350 von13b dargestellt, sind ein Signal LEA1360a , ein Signal LEB1360b und ein Signal LEC1360c derart, dass nur ein Signal LE1360 , zum Beispiel bei einem hohen Wert an einer Stelle in der Zeit zum Auslösen der Latch-Schaltungen1310 der13a in Anspruch genommen wird. - Ein Ripple-Clock, der in einem System, wie zum Beispiel im System
1300 der13a 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 Speichervorrichtung120 der1a , 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 Speicherelement204 der2 , 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 Speichervorrichtung120 umfasst, zum Beispiel eine CompactFlash-Speicherkarte. Ein Host oder ein Rechensystem100 umfasst im Allgemeinen einen Systembus104 , der es einem Mikroprozessor108 , einem RAM-Speicher (RAM)112 und Eingangs-/Ausgangsschaltkreisen116 erlaubt, zu kommunizieren. Zu bemerken ist, dass das Hostsystem100 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 Hostsystem100 übertragen werden. Während das Hostsystem100 im Wesentlichen ein beliebiges System sein kann, ist das Hostsystem100 typisch ein System, wie zum Beispiel ein digitaler Fotoapparat, eine Videokamera, eine Mobilkommunikationsvorrichtung, ein Audio-Player oder ein Videoplayer. Hervorzuheben ist jedoch, dass das Hostsystem100 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 Bus104 eine Schnittstelle zu bilden, um Daten zu speichern. Ein optionaler Block132 aus Eingangs-/Ausgangsschaltkreisen kann es der nicht flüchtigen Speichervorrichtung120 erlauben, indirekt eine Schnittstelle mit dem Bus104 zu bilden. Wenn der Block132 mit Eingangs-/Ausgangsschaltkreisen vorhanden ist, dient er zum Reduzieren der Auslastung auf dem Bus104 , wie der Fachmann weiß. Die nicht flüchtige Speichervorrichtung120 umfasst einen nicht flüchtigen Speicher124 und ein Speichersteuersystem128 . Bei einer Ausführungsform kann die nicht flüchtige Speichervorrichtung120 auf einem einzigen Chip oder Halbleiterplättchen implementiert sein. Alternativ kann die nicht flüchtige Speichervorrichtung120 auf einem Multi-Chip-Modul oder auf mehrfachen einzelnen Bauteilen implementiert sein, die gemeinsam als nicht flüchtige Speichervorrichtung120 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 Speicher124 gespeichert sind, können auch nach Bedarf gelöscht werden, obwohl hervorzuheben ist, dass bestimmte Daten in dem nicht flüchtigen Speicher124 nicht gelöscht werden dürfen. Die Prozesse des Speicherns, Lesens und Löschens von Daten werden im Allgemeinen von dem Speichersteuersystem128 gesteuert. Bei einer Ausführungsform verwaltet das Speichersteuersystem128 das Funktionieren des nicht flüchtigen Speichers124 so, dass die Lebensdauer des nicht flüchtigen Speichers124 weitgehend maximiert wird, indem im Wesentlichen dafür gesorgt wird, dass der nicht flüchtige Speicher124 im Wesentlichen gleichmäßig abgenutzt wird. - Die nicht flüchtige Speichervorrichtung
120 wurde allgemein als ein Speichersteuersystem128 umfassend beschrieben, das heißt einen Controller. Oft kann die nicht flüchtige Speichervorrichtung120 getrennte Chips für die Funktionen des nicht flüchtigen Speichers124 und das Speichersteuersystem128 , 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 Speichervorrichtung120 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 Speichervorrichtung120 genauer gemäß einer Ausführungsform der vorliegenden Erfindung beschrieben. Wie oben beschrieben, umfasst die nicht flüchtige Speichervorrichtung120 einen nicht flüchtigen Speicher124 und ein Speichersteuersystem128 . Der Speicher124 und das Speichersteuersystem128 oder Controller sind die Hauptbauteile der nicht flüchtigen Speichervorrichtung120 . Der Speicher124 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 Bus15 mit einem Hostcomputer oder anderen System, das das Speichersystem zum Speichern von Daten verwendet. Der Bus15 gehört im Allgemeinen zum Bus104 der1a . Das Speichersteuersystem128 steuert ferner das Funktionieren des Speichers124 , der eine Speicherzellenanordnung11 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 Speichers124 durchzuführen. Das Speichersteuersystem128 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 Speichersteuersystem128 über Adressendecodierer17 zugegriffen. Die Adressendecodierer17 legen die richtigen Spannungen an Gatter- und Bitleitungen der Speicherzellenanordnung11 an, um Daten in eine Gruppe von Speicherzellen, die von dem Speichersteuersystem128 adressiert wird, zu programmieren, sie aus diesen zu lesen oder zu löschen. Zusätzliche Schaltkreise19 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 Schaltkreise19 umfassen ferner Abtastverstärker oder andere Schaltkreise, die zum Lesen von Daten aus einer adressierten Gruppe von Speicherzellen erforderlich sind. Die in die Speicherzellenanordnung11 zu programmierenden Daten oder Daten, die kürzlich aus der Speicherzellenanordnung11 gelesen wurden, werden typisch in einem Zwischenspeicher21 innerhalb des Speichersteuersystems128 zwischengespeichert. Das Speichersteuersystem128 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 in3 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 in1b 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 Abschnitt23 des Speichersteuersystems128 berechnet den ECC, wenn Daten in die Speicherzellenanordnung11 programmiert werden, und prüft den ECC auch, wenn Daten aus der Speicherzellenanordnung11 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, wird2 zur Vereinfachung der Besprechung der Einsatz von zwei Latch-Schaltungen beschrieben, zum Beispiel in einem Zwei-Bit-System. Ein nicht flüchtiges Speicher-Speicherelement204 , das zu einem nicht flüchtigen Speichersystem gehören kann, zum Beispiel zum nicht flüchtigen Speichersystem120 der1a , ist eine grundlegende Datenspeichereinheit, die Datenbits speichert. Hervorzuheben ist, dass ein Speicherelement, wie das Speicherelement204 innerhalb eines Speichersystems eine grundlegende Speichereinheit ist. Bei einer Ausführungsform kann das Speicherelement204 eine Zelle oder eine Speicherzelle sein, obwohl das Speicherelement204 im Wesentlichen ein beliebiger Speichereinheitstyp sein kann. - Wenn ein Datenbitstrom
206 in das Speicherelement204 zu speichern ist, wird der Datenbitstrom206 effektiv vorübergehend in den Latch-Schaltungen208 ,212 gehalten oder in sie geladen, bevor er in das Speicherelement204 geschrieben wird. Zum Beispiel kann ein erstes Bit im Strom206 in die Latch-Schaltung208 geladen und dann in die Latch-Schaltung212 über eine parallele Verschiebungsoperation transferiert werden. Während das erste Bit im Wesentlichen aus der Latch-Schaltung212 in das Speicherelement204 geschrieben wird, kann das nächste Bit im Strom206 in die Latch-Schaltung208 geladen werden. Daher erlaubt es der Einsatz der Latch-Schaltungen208 ,212 den Bits im Strom206 , gepipelined zu werden, wodurch eine Verbesserung der Schreibleistung in Zusammenhang mit dem Schreiben von Bits in das Speicherelement204 erlaubt wird. Wie weiter unten unter Bezugnahme auf5 beschrieben, erlaubt es der Einsatz eines Ripple-Clock den Latch-Schaltungen208 ,212 , Bits, die zum Strom206 gehören, zu pipelinen. - Der Einsatz der Latch-Schaltungen
208 ,212 an Stelle einer Latch-Schaltung, zum Beispiel Latch-Schaltung208 , erlaubt es, Daten effizient zum Speichern in das Speicherelement204 zu laden. Neben der Verringerung der Anzahl der erforderlichen Transistoren in einer Gesamtspeichervorrichtung, ermöglicht es das Pipelinen in Zusammenhang mit den Latch-Schaltungen208 ,212 , die Schreibzeit des Schreibens der Daten in das Speicherelement204 wesentlich zu verringern. Beispielsweise kann ein Schreibvorgang zum Schreiben eines Bits aus der Latch-Schaltung212 in das Speicherelement204 in etwa 100 Mikrosekunden (μs) auftreten. Während der 100 μs, die im Allgemeinen notwendig sind, um ein Bit aus der Latch-Schaltung208 in das Speicherelement204 zu schreiben, kann ein anderes Bit in die Latch-Schaltung208 geladen werden. Wie der Fachmann versteht, ist die Zeit in Zusammenhang mit dem Laden von Bits in die Latch-Schaltungen208 ,212 mit Ausnahme des Ladens des ursprünglichen Bits in die Latch-Schaltung208 effektiv "verborgen", denn das Laden der Bits in die Latch-Schaltungen208 ,212 erfolgt im Wesentlichen parallel zu Schreibvorgängen. - Typisch schreibt nur die Latch-Schaltung
212 Daten in das Speicherelement204 . Obwohl beide Latch-Schaltungen208 ,212 eingerichtet sein können, um Daten in das Speicherelement204 zu schreiben, vereinfacht die Tatsache, es nur einer Latch-Schaltung zu erlauben, nämlich der Latch-Schaltung212 , in das Speicherelement204 zu schreiben, die Schaltkreise, die zu den Latch-Schaltungen208 ,212 gehören, wesentlich. Ferner können spezifische Spannungsanforderungen in Zusammenhang mit dem Schreiben von Bits in das Speicherelement204 nur an die Latch-Schaltung212 statt an beide Latch-Schaltungen208 ,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 Speicherelement204 zu lesen sind. Die Latch-Schaltungen208 ,212 können daher im Wesentlichen zum Zwischenspeichern von Daten dienen, die zu schreiben sind, und von Daten, die zu lesen sind. Wie in3 gezeigt, können Daten, wenn sie aus dem Speicherelement204 zu lesen sind, in die Latch-Schaltungen208 ,212 gelatcht werden, und ein Ausgangsdatenstrom306 kann geschaffen werden, wenn die Daten aus den Latch-Schaltungen208 ,212 gelesen werden. Typisch kann das erste aus dem Speicherelement204 gelesene Bit in die Latch-Schaltung212 geladen und dann in die Latch-Schaltung208 getaktet werden. Nach dem Übertragen des ersten Bits in die Latch-Schaltung208 , wird das nächste Bit aus dem Speicherelement204 gelesen und in die Latch-Schaltung212 geladen, so dass das nächste Bit effektiv in Bezug auf das erste gepipelined wird. Dann können die Bits aus den Latch-Schaltungen208 ,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-Schaltung212 und Verschieben in die Latch-Schaltung208 ein zweites Bit in die Latch-Schaltung212 geladen und in die Latch-Schaltung310 verschoben werden kann. Sobald die Latch-Schaltungen208 ,310 geladen sind, kann der Ripple-Clock bewirken, dass das erste und das zweite Bit aus den Latch-Schaltungen208 ,310 gelesen werden. Sobald die Latch-Schaltungen208 ,310 daher voll sind, können Bits aus den Latch-Schaltungen208 ,310 gelesen werden. Wenn die Latch-Schaltungen208 ,310 leer sind, werden wieder Bits aus dem Speicherelement204 gelesen und in die Latch-Schaltungen208 ,310 verschoben. Im Allgemeinen, wenn das Speicherelement204 ein Zwei-Bit-System ist, werden vorzugsweise zwei Latch-Schaltungen verwendet, um Daten zu speichern, bevor Daten gelesen werden. Beispielsweise können die Latch-Schaltungen208 ,310 beide zum Speichern von Bits verwendet werden, bevor Bits gelesen werden, während die Latch-Schaltung212 effektiv als Gatter dient. Alternativ kann die Latch-Schaltung310 eliminiert werden, und die Latch-Schaltungen208 ,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 der2 typisch zu multiplen Speicherelementen gehört, zu einem einzigen Speicherelement, wie zum Beispiel zum Speicherelement204 der2 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 in16 gezeigt, kann eine Anordnung von Multi-State-Speicherelementen1604 , die zu einem nicht flüchtigen Speichersystem gehören kann, angeordnet werden, um einen Datenbitstrom1606 zu speichern. Der Datenbitstrom1606 wird effektiv vorübergehend in den Latch-Schaltungen1608 ,1612 aufgenommen oder in sie geladen, bevor er in eine Anordnung von Speicherelementen1604 geschrieben wird. Ein erstes Bit im Strom1606 kann in die Latch-Schaltung1608 geladen und dann in die Latch-Schaltung1612 durch eine parallele Verschiebeoperation übertragen werden. Während das erste Bit im Wesentlichen aus der Latch-Schaltung1612 in ein Speicherelement in der Anordnung von Speicherelementen1604 geschrieben wird, kann das nächste Bit im Strom1606 in die Latch-Schaltung1608 geladen werden. - Die Adressierschaltung
1614 wird verwendet, um zu bestimmen, in welches Speicherelement innerhalb der Anordnung von Speicherelementen1604 ein Bit, das in die Latch-Schaltung1612 geladen ist, zu speichern ist. Spezifisch wird die Adressierschaltung1614 , die Multiplexer- und Demultiplexerfähigkeiten umfassen kann, effektiv verwendet, um ein Speicherelement aus der Anordnung von Speicherelementen1604 auszuwählen, um es mit der Latch-Schaltung1612 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 Eingabedatenstrom420 in ein Speicherelement innerhalb der Anordnung404 zu schreiben ist, können Bits der Daten, die im Strom420 enthalten sind, in die Latch-Schaltung410 geladen und dann in die Latch-Schaltung414 übertragen werden. Wie oben unter Bezugnahme auf2 beschrieben, kann ein Bit in eine Latch-Schaltung414 übertragen wären, so dass, während dieses Bit von der Latch-Schaltung414 in das Speicherelement404 geschrieben wird, ein anderes Bit des Stroms420 im Wesentlichen gleichzeitig in die Latch-Schaltung410 geladen werden kann. Sobald das Bit aus der Latch-Schaltung414 in ein Speicherelement der Anordnung404 geschrieben wird, kann das Bit, das in die Latch-Schaltung410 geladen wurde, in die Latch-Schaltung übertragen oder verschoben und dann in ein anderes Speicherelement der Anordnung404 geschrieben werden, während im Wesentlichen gleichzeitig ein anderes Bit aus dem Strom420 in die Latch-Schaltung410 geladen wird. Die Latch-Schaltungen410 ,414 ermöglichen es daher den Bits des Stroms420 , effizient in mehrfache Speicherelemente innerhalb der Anordnung404 gepipelined und geschrieben zu werden. - Daten, die aus der Anordnung
404 zu lesen sind, können in die Latch-Schaltung416 geladen und in die Latch-Schaltung418 verschoben werden. Ein erstes Bit, das in einem Speicherelement der Anordnung404 gespeichert ist, kann daher in die Latch-Schaltung416 geladen und in die Latch-Schaltung418 getaktet werden. Dann kann ein zweites Bit aus einem anderen Speicherelement in die Latch-Schaltung416 geladen werden. Bei der beschriebenen Ausführungsform können die Bits als Teil eines Ausgangsdatenstroms422 ausgestreamt werden. Alternativ, wie oben besprochen, kann die Latch-Schaltung416 als Gatter dienen, das die Latch-Schaltung418 versorgt und eine andere Latch-Schaltung (nicht dargestellt), so dass Daten im Wesentlichen nur aus der Latch-Schaltung418 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 der2 zum Pipelinen von Daten zu aktivieren. Wie in5 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 t1502a das im Wesentlichen parallele Zugreifen auf die Latch-Schaltungen506 . Die Latch-Schaltungen506 können daher Daten pipelinen, wenn Daten-/Zugriffssteuersignale518 den Einzelbitzugriff auf jede Latch-Schaltung506 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-Schaltungen506 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-Schaltungen510 im Wesentlichen parallel. In einem Zeitpunkt t3502c , aktiviert der Ripple-Clock das Zugreifen auf die Latch-Schaltungen514 im Wesentlichen gleichzeitig anhand der Daten-/Zugriffssteuersignale518 . Hervorzuheben ist, dass, wenn alle Gruppen von Latch-Schaltungen, nämlich die Latch-Schaltungen502 ,506 und510 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-Schaltungen510 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-Schaltungen502 zugegriffen wird, können Daten aus den Latch-Schaltungen502 vom Empfänger gelesen werden, oder Daten können in die Latch-Schaltungen502 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 Zeitpunkten502 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-Schaltungen604 gehören zu einer Speicherelementanordnung608 und sind eingerichtet, um Bits in eine Anordnung608 zu speichern. In der beschriebenen Ausführungsform kann nach dem Laden eines Bits N in eine Latch-Schaltung604a , wie zum Beispiel, wenn ein Ripple-Clock die Latch-Schaltung604 aktiviert, ein paralleles Verschieben durchgeführt werden, um das Bit N aus der Latch-Schaltung604a in die Latch-Schaltung604 zu verschieben, wonach ein Bit N+1 in die Latch-Schaltung604a geladen werden kann. Von der Latch-Schaltung604b kann das Bit N dann in ein Speicherelement in der Anordnung608 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-Schaltungen616a ,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-Schaltung616a und in die Latch-Schaltung616b geladen werden. Bei einer Ausführungsform können die Bits, die in die Latch-Schaltungen616a ,616b geladen werden, über ein paralleles Verschieben zu den Latch-Schaltungen616d ,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 Anordnung620 gespeichert werden. Alternativ können das Bit m und das Bit P sequenziell in ein Speicherelement in der Anordnung620 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-Schaltung616a und die Latch-Schaltung616b geladen, während das Bit M und das Bit P in ein erstes Speicherelement gespeichert werden, das zur Anordnung620 gehört. - Auch wenn ein paralleles Verschieben ein Bit aus der Latch-Schaltung
616a in die Latch-Schaltung616d im Wesentlichen zur gleichen Zeit parallel verschieben kann, während ein Bit aus der Latch-Schaltung616b in die Latch-Schaltung616c 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-Schaltung616a in die Latch-Schaltung616d entweder vor oder nach dem Laden eines Bits aus der Latch-Schaltung616b in die Latch-Schaltung616c 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 Prozess702 des Schreibens von Daten in eine Multi-State-Speicherzellenanordnung oder allgemeiner eine nicht flüchtige Speicher-Speicherelementanordnung beginnt im Schritt706 , 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 Schritt708 durch eine Operation, wie zum Beispiel eine parallele Verschiebeoperation in die zweite Latch-Schaltung verschiebt. Ein Schreibprozess wird dann in Schritt710 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 Schritt714 in die erste Latch-Schaltung geladen wurde, wird der Schreibprozess, der in Schritt710 ausgelöst wurde, abgeschlossen, das heißt, dass der Schreibprozess zum Schreiben des Datenbits N in die Speicherzellenanordnung in Schritt718 vollendet ist. - Nach dem Vollenden des Schreibprozesses in Schritt
718 wird das Datenbit N+1 aus der ersten Latch-Schaltung in Schritt720 in die zweite Latch-Schaltung verschoben oder geladen. Ein Schreibprozess wird dann in Schritt722 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-Schaltung726 geladen werden. Bei der beschriebenen Ausführungsform wird das Datenbit N+2 in Schritt726 in die erste Latch-Schaltung geladen. Sobald das Datenbit N+2 in die erste Latch-Schaltung geladen ist, wird in Schritt730 der Schreibprozess zum Schreiben des Datenbits N+1 in die Speicherzellenanordnung abgeschlossen. Dann wird in Schritt734 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 Schritt708 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 Prozess802 beginnt im Schritt806 , 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 in2 und3 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 Schritt814 in die erste Latch-Schaltung geladen. Nachdem das Datenbit N+1 in die erste Latch-Schaltung geladen wurde, wird das Datenbit N+1 in Schritt816 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 Schritt824 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 Schritt824 gelesen werden, kehrt der Prozessfluss zu Schritt806 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 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 Speicherelement904 hat vier Schreib-Latch-Schaltungen914 , die eingerichtet sind, um Bits zu laden, die von einer (nicht dargestellten) Datenquelle, zum Beispiel einem Hostsystem (nicht dargestellt), das mit dem Speicherelement904 kommuniziert, geliefert werden. - Die Bits können in die Schreib-Latch-Schaltungen
914 geladen werden, bevor die Bits in das Speicherelement904 geschrieben werden. Wie oben erwähnt, können vier Bits, die mit den Latch-Schaltungen914 in das Speicherelement904 geschrieben wurden, als sieben Bits aus dem Speicherelement904 gelesen werden. Bei der dargestellten Ausführungsform werden daher sieben Lese-Latch-Schaltungen916 zum Lesen von Bits aus dem Speicherelement904 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 auf10 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 Speicherelement1004 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 Speicherelement1004 . Die Latch-Schaltungen1015a–g können als vorübergehende Zwischenspeicher für Bits dienen, die aus dem Speicherelement1004 gelesen werden. Typisch kann jede der vier Latch-Schaltungen1015a–g als vorübergehender Zwischenspeicher für Bits dienen, die in Speicherelemente1004 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 Speicherelement1004 zu lesen sind, die Gesamteffizienz in Zusammenhang mit dem Speichern von Daten in das Speicherelement1004 steigern. Bits können unter Einsatz von vier Latch-Schaltungen, zum Beispiel der Latch-Schaltungen1015a–d als Schreib-Latch-Schaltungen während Schreiboperationen in das Speicherelement gepipelined werden, und unter Einsatz von drei Latch-Schaltungen, zum Beispiel der Latch-Schaltungen1015e–g zum Pipelinen. Die Latch-Schaltungen1015e–g können daher jede als Latch-Schaltungen dienen, die geladen werden, während Bits aus den Latch-Schaltungen1015a–d in das Speicherelement1004 geschrieben werden. Bei der dargestellten Ausführungsform kann eine achte Latch-Schaltung1015h zu dem Speicherelement1004 ge hören. Die Latch-Schaltung1015h kann zusätzlich zu den Latch-Schaltungen1015e–g als vier Latch-Schaltungen zum Pipelinen für die Latch-Schaltungen1015a–d und umgekehrt dienen. Der Einsatz von vier Latch-Schaltungen, nämlich der Latch-Schaltungen1015e–h als Pipeline-Latch-Schaltungen in Bezug auf vier Latch-Schaltungen1015a–d ermöglicht es jeder der Latch-Schaltungen1015a–d , eine zugehörige Pipeline-Latch-Schaltung zu haben, wodurch das im Wesentlichen gleichzeitige Schreiben von vier Bits in das Speicherelement1004 ermöglicht wird. Ebenso können die Latch-Schaltungen1015a–d als Pipeline-Latch-Schaltungen für die Latch-Schaltungen1015e–h dienen. Der Einsatz von acht Latch-Schaltungen zum Pipelinen von Bits zum Schreiben in ein Speicherelement wird unten unter Bezugnahme auf14 beschrieben. - Die Latch-Schaltung
1015h kann im Wesentlichen für Schreibprozesse in Zusammenhang mit dem Speicherelement1004 dediziert sein. Die Latch-Schaltung1015h 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-Schaltungen1015a–d verwendet. Alternativ kann eine Leseoperation modifiziert werden, um vier gespeicherte Bits als acht Bits zu lesen, wobei alle Latch-Schaltungen1015a–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 Speicherelement1004 dediziert sein. Da die Latch-Schaltung1015h bei einer Ausführungsform jedoch im Wesentlichen nur in Bezug auf Schreiboperationen verwendet werden kann, kann die Latch-Schaltungen1015h "geteilt" werden. Zum Beispiel kann die Latch-Schaltung1015h zusätzlich zu ihrem Gebrauch zum Erleichtern des Speicherns von Daten im Speicherelement1004 auch zum Erleichtern des Downloadens von Daten in einen Zwischenspeicher verwendet werden. Die Latch-Schaltung1015h 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 Abtasteinrichtung1100 ist im Allgemeinen eingerichtet, um Daten, die in einer (nicht dargestellten) Speicherzellenanordnung gespeichert sind, für einen Zwischenspeicher1105 oder eine Datenlatch-Schaltung zu liefern. Daten, die aus der Speicherzelle geholt werden, können durch einen oder mehrere Abtastverstärker innerhalb einer Abtastverstärkereinrichtung1117 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ärkereinrichtung1117 zu latchen, bevor der Ausgang in den Zwischenspeicher1105 gedownloadet wird. Der Einsatz der Latch-Schaltung1115 dient typisch zum Verringern der Rauschempfindlichkeit durch das Latchen von Daten während jeder Phase eines Multidurchgangslesens. Während die Latch-Schaltung1115 mit einem Leseprozess verbunden sein kann, an dem ein Speicherelement oder eine Speicherzelle beteiligt ist, kann die Latch-Schaltung1115 auch während eines Schreibprozesses einen Zweck erfüllen. Beispielsweise kann die Latch-Schaltung1115 während eines Schreibprozesses als Latch-Schaltung1015h der10 dienen. Zusätzlich zum Latchen der von der Abtastverstärkereinrichtung1117 während eines Gesamtleseprozesses gelieferten Latch-Daten, kann die Latch-Schaltung1115 als Pipeline-Latch-Schaltung während eines Schreibprozesses verwendet werden, an dem die Speicherzelle beteiligt ist, die die Daten für die Abtastverstärker1117 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-Speicherelementanordnung1404 kann Multi-State-Speicherelemente umfassen, obwohl die Speicherelementanordnung1404 im Wesentlichen jeden Typ von Speicherelementen, wie zum Beispiel binäre Speicherelemente enthalten kann. Wenn ein Datenbitstrom1406 in die Speicherelementanordnung1404 zu speichern ist, kann der Datenbitstrom1406 in die Latch-Schaltungen1408 ,1412 geladen werden, bevor er in die Speicherelementanordnung1404 geschrieben wird. Zum Beispiel kann ein erstes Bit des Stroms1406 in die Latch-Schaltung1408a geladen und dann durch eine parallele Verschiebeoperation in die Latch-Schaltung1412a übertragen werden, während ein zweites Bit des Stroms1406 in die Latch-Schaltung1408b geladen und dann durch eine parallele Verschiebeoperation in die Latch-Schaltung1412b übertragen werden kann. Während die ersten Bits im Wesentlichen aus den Latch-Schaltungen wie zum Beispiel den Latch-Schaltungen1412a ,1412b in die Speicherelementanordnung1404 geschrieben werden, können die nächsten Bits des Stroms1406 in die Latch-Schaltungen1408a ,1408b geladen werden. Im Allgemeinen können Bits aus dem Strom 1406 im Wesentlichen gleichzeitig in die Latch-Schaltungen1408 geladen und mit einer parallelen Verschiebeoperation in die Latch-Schaltungen1412 übertragen werden. Wenn die Bits in den Latch-Schaltungen1412 dann effektiv in das Speicherelement1404 gespeichert werden, können die nächsten Bits im Strom1406 in die Latch-Schaltungen1408 geladen und mit einer parallelen Verschiebeoperation in die Latch-Schaltungen1412 übertragen werden. - Bei der beschriebenen Ausführungsform schreiben im Wesentlichen nur die Latch-Schaltungen
1412 Daten in die Speicherelementanordnung1404 . Während die Latch-Schaltungen1408 ,1412 eingerichtet sein können, um Daten in die Speicherelementanordnung1404 zu schreiben, kann die Tatsache, es nur einem Satz von Latch-Schaltungen, nämlich den Latch-Schaltungen1412 zu erlauben, in die Speicherelementanordnung1404 zu schreiben, die Schaltkreise, die zu den Latch-Schaltungen1408 ,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 der14 acht dazu gehörende Latch-Schaltungen hat, die Bits in die Speicherelementanordnung1404 schreiben, kann die Speicherelementanordnung1404 typisch acht oder neun Latch-Schaltungen haben, die Bits aus der Speicherelementanordnung1404 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 Speicherelementanordnung1504 in einen Bitstrom1506 zu lesen sind, kann ein erstes Bit, das im Datenstrom1506 enthalten ist, in eine Latch-Schaltung1508 geladen und dann in eine Latch-Schaltung1512 verschoben werden. Ein darauf folgendes zweites Bit aus dem Datenstrom1506 kann in die Latch-Schaltung1508 geladen werden, nachdem das erste Bit in die Latch-Schaltung1512 getaktet wurde. Dieses zweite Bit kann dann in eine Latch-Schaltung1512b verschoben werden, bevor ein drittes Bit in die Latch-Schaltung1512a getaktet wird. Das Laden von Bits in die Latch-Schaltung1508 und das Verschieben dieser Bits in die Latch-Schaltungen1512 wird typisch fortgesetzt, bis im Wesentlichen alle Latch-Schaltungen1512 geladen sind, oder bis der Datenstrom1506 im Wesentlichen leer ist. - Sobald die Latch-Schaltungen
1512 geladen sind, können die in ihnen enthaltenen Bits aus den Latch-Schaltungen1512 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-Schaltung1508 effektiv als Gatter, das es erlaubt, Bits in die Latch-Schaltungen1512 zu laden. Zu betonen ist jedoch, dass bei einer Ausführungsform die Latch-Schaltung1508 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-Schaltung1508 heraustakten. Wenn die Latch-Schaltung1508 Pipelinefähigkeiten besitzt, kann eine Latch-Schaltung1512 , nämlich die Latch-Schaltung1512h , im Wesentlichen eliminiert werden, weil die Latch-Schaltung1508 und die Latch-Schaltungen1015a–g den Latch-Schaltungen1408 ,1412 der14 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)
- 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.
- 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.
- Speichersystem nach Anspruch 1, wobei das erste Element eine erste Latch-Schaltung und das zweite Element eine zweite Latch-Schaltung ist.
- 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.
- 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.
- 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.
- 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.
- 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.
- Speichersystem nach Anspruch 1, wobei das Speichersystem ein nicht flüchtiges Speichersystem ist.
- Speichersystem nach Anspruch 9, wobei das nicht flüchtige Speichersystem eine Speicherkarte ist.
- 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.
- Speichersystem nach Anspruch 9, wobei das erste Speicherelement ein nicht flüchtiges Speicherelement ist.
- 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.
- 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.
- Rechensystem nach Anspruch 13, wobei das erste Zwischenspeicherelement eine erste Latch-Schaltung und das zweite Zwischenspeicherelement eine zweite Latch-Schaltung ist.
- 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.
- 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.
- 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.
- Rechensystem nach Anspruch 13, wobei die Speichervorrichtung ein nicht flüchtiges Speichersystem ist und das mindestens eine Speicherelement ein nicht flüchtiges Speicherelement ist.
- 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.
- 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.
- Rechensystem nach Anspruch 21, wobei das Hostsystem entweder ein digitaler Fotoapparat, eine Videokamera, eine Mobilkommunikationsvorrichtung oder ein Audioplayer oder ein Videoplayer ist.
- Rechensystem nach Anspruch 13, wobei die Speichervorrichtung aus dem Hostsystem herausnehmbar ist.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Speichersystem nach Anspruch 30, wobei das erste Zwischenspeicherelement eine erste Latch-Schaltung und das zweite Zwischenspeicherelement eine zweite Latch-Schaltung ist.
- Speichersystem nach Anspruch 30, wobei das Speichersystem ein nicht flüchtiges Speichersystem ist.
- Speichersystem nach Anspruch 32, wobei das nicht flüchtige Speichersystem eine Speicherkarte ist.
- Speichersystem nach Anspruch 30, ferner umfassend: ein drittes Element, wobei das zweite Zwischenspeicherelement ferner eingerichtet ist, um dem dritten Element das zweite Bit bereitzustellen.
- 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.
- 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.
- 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.
- 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.
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)
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)
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 | 삼성전자주식회사 | 멀티 파이프라인 구조를 가지는 고속 동기 반도체 메모리및 그의 동작방법 |
-
2002
- 2002-05-21 US US10/152,536 patent/US6751129B1/en not_active Expired - Lifetime
-
2003
- 2003-02-20 DE DE10392692T patent/DE10392692T5/de not_active Ceased
- 2003-02-20 CN CNB038145316A patent/CN100444279C/zh not_active Expired - Fee Related
- 2003-02-20 JP JP2004508350A patent/JP4480571B2/ja not_active Expired - Fee Related
- 2003-02-20 KR KR1020047018791A patent/KR100990541B1/ko not_active IP Right Cessation
- 2003-02-20 GB GB0425543A patent/GB2406196B/en not_active Expired - Fee Related
- 2003-02-20 AU AU2003213169A patent/AU2003213169A1/en not_active Abandoned
- 2003-02-20 WO PCT/US2003/005214 patent/WO2003100787A1/en active Application Filing
-
2009
- 2009-05-18 JP JP2009120417A patent/JP2009259253A/ja active Pending
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 |