[go: up one dir, main page]

DE69414556T2 - Schnell loeschbare datei - Google Patents

Schnell loeschbare datei

Info

Publication number
DE69414556T2
DE69414556T2 DE69414556T DE69414556T DE69414556T2 DE 69414556 T2 DE69414556 T2 DE 69414556T2 DE 69414556 T DE69414556 T DE 69414556T DE 69414556 T DE69414556 T DE 69414556T DE 69414556 T2 DE69414556 T2 DE 69414556T2
Authority
DE
Germany
Prior art keywords
block
address
virtual
unit
physical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69414556T
Other languages
English (en)
Other versions
DE69414556D1 (de
Inventor
Amir 62309 Tel Aviv Ban
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western Digital Israel Ltd
M Systems Inc
Original Assignee
SYSTEMS Ltd M
M Systems Ltd
M Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=21835870&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69414556(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by SYSTEMS Ltd M, M Systems Ltd, M Systems Inc filed Critical SYSTEMS Ltd M
Publication of DE69414556D1 publication Critical patent/DE69414556D1/de
Application granted granted Critical
Publication of DE69414556T2 publication Critical patent/DE69414556T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

    HINTERGRUND DER ERFINDUNG Gebiet der Erfindung
  • Diese Erfindung betrifft ein verbessertes System zum Speichern und Wiedergewinnen von Informationen in Flash-Speichern und ganz besonders ein System, das in einen Flash- Speicher geschriebene Daten organisiert und verwaltet.
  • Beschreibung des Standes der Technik
  • Wie dem Fachmann ersichtlich ist, sind bei elektrisch löschbaren und programmierbaren Festwertspeichern (EEPROMs) vom Flash-Typ Transistoren mit schwebendem bzw. veränderlichem Gatter im Stand der Technik beschrieben worden und derzeit wirtschaftlich erhältlich. Diese sogenannten Flash- Speicher sind nicht-flüchtige Speicher ähnlich in Funktionalität und Leistung zu EPROM-Speichern mit einer zusätzlichen Funktionalität, die einen systeminternen programmierbaren Vorgang gestattet, um Blöcke des Speichers zu löschen. In einem Flash-Speicher ist es in der Praxis nicht geeignet, einen zuvor beschriebenen Bereich eines Speichers ohne eine vorhergehende Blocklöschung des Bereiches wieder zu beschreiben. Während diese Erfindung im Zusammenhang mit einem Flash-Speicher beschrieben wird, versteht es der Fachmann, daß deren Lehre ebenso auf Datenspeichervorrichtungen mit den gleichen Schreib-, Lese- und Blocklöschungscharakteristiken vor Schreibcharakteristiken wie bei Flash- Speichern anwendbar ist.
  • In einem typischen Computersystem ist das verarbeitende bzw. bearbeitende Systemprogramm für die Datenverwaltung der Datenspeichervorrichtungen, die Teil des Systems sind, verantwortlich. Um eine Kompatibilität mit dem verarbeitenden bzw. bearbeitenden Systemprogramm zu erreichen, besteht ein notwendiges und gewöhnlicherweise ausreichendes Attribut einer Datenspeichervorrichtung darin, daß sie Daten aus jedem Platz in dem Datenspeichermedium (aus-)lesen und darin (ein-)schreiben kann. Daher sind Flash-Speicher nicht mit typischen existierenden verarbeitenden bzw. bearbeitenden Systemprogrammen kompatibel, wenn Daten nicht in einen Bereich eines Flash-Speichers geschrieben werden können, in welchen Daten vorher geschrieben wurden, bis der Bereich erst gelöscht ist.
  • Softwareprodukte sind im Stand der Technik vorgeschlagen worden, um einem Flash-Speicher zu gestatten, durch existierende computerverarbeitende Programme ohne Modifikation des verarbeitenden bzw. bearbeitenden Systemprogrammes verwaltet zu werden. Diese bekannten Programme betreiben allerdings den Flash-Speicher als eine "Einmal-Schreib-Oftmals-Lese-"Vorrichtung. Dieses bekannte Softwareprodukt kann zuvor beschriebene Speicherplätze nicht wiederherstellen. Wenn sämtliche Plätze gegebenenfalls beschrieben sind, kann der Speicher ohne ein spezifisches Benutzereingreifen nicht weiter verwendet werden.
  • Die GB-A-2 251 323 offenbart einen Flash-Speicher, der blocklöschbar ist und der einen aktiven Block zum Speichern von ersten Daten sowie einen Reserveblock zum Speichern von zweiten Daten, die eine Kopie der ersten Daten sind, welche während eines Putzvorganges vor dem Löschen des aktiven Blockes hergestellt sind, beinhaltet. Die Reserblöcke sind Blöcke, die eine zeitweise Dateisicherung während des Putzvorganges vorsehen. Der Flash-Speicher beinhaltet eine Verzeichnistabelle zum Verzeichnen einer logischen Adresse einer Zuordnungseinheit zu einer physikalischen Adresse eines Bereiches (Zuordnungseinheit) in dem Speicher. Eine weitere Tabelle ist vorhanden, um Informationen bereitzustellen, ob ein Block ein aktiver Block oder ein Reserveblock ist und ob der Block frei oder in Benutzung ist. Ein Putzvorgang zieht einen Wiederzuordnungsvorgang nach sich. Dabei werden sämtliche gegenwärtig aktiven Dateien aus den Blöcken, die eventuell zu löschen sind, herausbewegt. Die Verzeichnistabelle ist eine verbundene Liste, wobei jede verbundene Listenkette in der Verzeichnistabelle eine historische Aufzeichnung der Schaffung und Entfernung von schmutzigen Bereichen darstellt.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Eine Aufgabe dieser Erfindung besteht in der Bereitstellung eines Verfahrens (d. h. einer Software, Firmware einer Hardware), um einen Zugang zu einem Flash-Speicher zu steuern und zu verwalten, so daß der Flash-Speicher für das computerverarbeitende System als eine Datenspeichervorrichtung erscheint, bei welcher es möglich ist, Daten aus jedem Flash-Speicherplatz (aus-) zu lesen oder darin (ein-) zu schreiben. Ein Verfahren, das einem Flash-Speicher gestattet, Direktzugriffsspeicher zu emulieren, und existierenden computerverarbeitenden Systemen gestattet, jede andere erforderliche Unterstützung in der gleichen Weise, die durch Standard-Direktzugriffsspeicher bereitgestellt und von dem Emulationsverfahren unabhängig sind, zur Verfügung zu stellen.
  • Kurz gesagt beabsichtigt diese Erfindung die Bereitstellung eines Flash-Speichers, eines virtuellen Verzeichnissystems, das gestattet, Daten kontinuierlich in unbeschriebene physikalische Adreßplätze geschrieben zu werden. Das virtuelle Speicherverzeichnis verknüpft physikalische Platzadressen des Flash-Speichers, um den Platz der Daten in dem Speicher zu verfolgen.
  • Die physikalischen Plätze des Flash-Speichers sind als ein Feld von Bytes organisiert. Jedem der Bytes in dem Feld ist eine Adreßnummer aufgrund derer das Byte physikalisch zugänglich ist, die hierin als der physikalische Adreßraum bezeichnet ist, zugeordnet. Jedes der Bytes in dem Feld weist eine zweite Adresse, genannt der virtuelle Adreßraum, auf. Eine Tabelle, genannt ein virtuelles Verzeichnis, konvertiert virtuelle Adressen in physikalische Adressen. Hier ist zu bemerken, daß der virtuelle Adreßraum nicht notwendigerweise die gleiche Größe wie der physikalische Adreßraum aufweist.
  • Eine zusammenhängende, in der Länge festgelegte Gruppe von physikalischen Byteadressen bildet einen Block. Unter Voraussetzung einer Blockgröße von 512 Byte ist zum Beispiel ein Byte mit einer physikalischen Adresse von 256211 die Bytenummer 211 in Block 500 (256211 : 512 = 500 + 211). Ein oder mehrere physikalische zusammenhängende Bereiche (sogenannte Zonen) eines Flash-Speichers, die physikalisch gelöscht werden können, indem eine geeignete bekannte Flash- Speichertechnologie verwendet wird, umfaßt eine Einheit und jede Einheit beinhaltet eine integrale Anzahl von Blöcken.
  • Das virtuelle Speicherverzeichnis ist eine Tabelle, in welcher der erste Eingang zum virtuellen Block 0, der zweite zum virtuellen Block 1 usw. gehört. In der Tabelle ist zu jeder virtuellen Blockadresse eine entsprechende physikalische Adresse zugeordnet. Beim (Aus-)Lesen aus dem Flash- Speichervorgang wird eine computererzeugte Adresse als eine virtuelle Blockadresse und ein Byteplatz im Block decodiert. Das virtuelle Speicherverzeichnis wird verwendet, um die virtuelle Blockadresse in eine physikalische Blockadresse umzuwandeln bzw. zu konvertieren; der Byteplatz ist der gleiche in dem virtuellen Adreßraum und dem physikalischen Adreßraum.
  • Bei einem Schreibvorgang wird die computererzeugte Adresse wiederum als eine virtuelle Blockadresse und ein Byteplatz in dem Block interpretiert. Das virtuelle Speicherverzeichnis konvertiert diese in eine physikalische Speicherblockadresse. Wenn der Flash-Speicherblock, welcher der physikalischen Adresse entspricht, dann gegenwärtig beschrieben wird, ist es im allgemeinen nicht möglich, diese physikalische Adresse zu beschreiben. Ein unbeschriebener Block wird daher angepeilt bzw. aufgefunden und beschrieben. Das virtuelle Speicherverzeichnis wird geändert, so daß die unbeschriebene physikalische Blockadresse zu der ursprünglichen virtuellen Adresse verzeichnet wird und die ursprüngliche physikalische Adresse als unbenutzbar bezeichnet wird und unbenutzbar bleibt, bis ein Zonenlöschungsvorgang stattfindet, welcher die Einheit, die diesen Block beinhaltet, löscht. Es ist zu bemerken, daß ein Schreibvorgang annimmt, daß ein gesamter Block wieder beschrieben werden wird. Auf diese Weise finden Computersysteme gewöhnlich Daten in einem Speichermedium. Allerdings ist es ersichtlich, daß im allgemeinen jede gewünschte Anzahl von Bytes in den neuen Speicherplatz geschrieben werden könnte.
  • Bei einer bevorzugten Ausführungsform der Erfindung wird jede Einheit einer logischen Einheitsadresse zugeordnet, die unverändert bleibt, wenn die Einheit in einen neuen physikalischen Adreßplatz in einem Flash-Speicher wieder beschrieben wird. Das virtuelle Verzeichnis beinhaltet Bezugnahmen auf die logischen Einheitsadressen eher als die physikalischen Einheitsadressen, so daß eine Datenbewegung während Einheitsübertragungen keine Auswirkung auf ein virtuelles Verzeichnis hat.
  • Jede Einheit weist ein Benutzerverzeichnis von sämtlichen Blöcken innerhalb der Einheit auf; die virtuelle Adresse eines Blockes, wenn sie verzeichnet ist, und die besonderen Zeichen, um freie Blöcke zu bezeichnen und um nicht verwendbare Blöcke zu bezeichnen.
  • Nicht verwendbare Blöcke des zuvor beschriebenen Flash- Speichers werden zurückgewonnen, indem Speichereinheiten, welche die nicht verwendbaren Blöcke beinhalten, zu einem reservierten, unbeschriebenen Raum in dem Flash-Speicher übertragen werden. Nur die verwendbaren Blöcke werden bei dem Übertragungsvorgang beschrieben, so daß die Plätze, an welchen sich die nicht verwendbaren Blöcke befinden, wenn wieder beschrieben, in dem reservierten Raum nicht wieder beschrieben werden und daher verwendbar sind. Nach erfolgter Wiederbeschreibung wird der ursprüngliche Speichereinheitsraum als eine Einheit blitzartig gelöscht und wird daher ein unbeschriebener reservierter Raum, auf den eine nachfolgende Übertragung erfolgen kann.
  • Bei einer bevorzugten Ausführungsform der Erfindung wird auch das virtuelle Verzeichnis primär bzw. hauptsächlich in dem Flash-Speicher mit nur einem kleinen sekundären virtuellen Verzeichnis im Direktzugriffsspeicher gespeichert. Das virtuelle Verzeichnis in einem Flash-Speicher wird in Blöcken gespeichert und in bzw. auf Seiten organisiert, deren Größe gleich dem Produkt der Anzahl von Bytes in einem Block mal der Anzahl von physikalischen Blockadressen diese Anzahl von Bytes repräsentierend ist. Ein sekundärer Direktzugriffsspeicher beinhaltet die Seitenadressen. Beim Lesen von Daten für eine vorgegebene virtuelle Adresse wird die Seitenzahl durch Teilen einer Adresse durch die Seitengröße bestimmt. Das Ergebnis indiziert das sekundäre virtuelle Verzeichnis, um den richtigen primären virtuellen Verzeichnisblock zu finden. Der Rest wird verwendet, um die erforderliche physikalische Adresse für das virtuelle Verzeichnis, das in dem Flash-Speicher gespeichert ist, zu berechnen. Um das virtuelle Verzeichnis in dem Flash-Speicher zu ändern, wird das geänderte Verzeichnis in einen freien Block geschrieben und wird das sekundäre Verzeichnis in dem Direktzugriffsspeicher geändert, um die Änderung in dem primären Verzeichnisplatz zu reflektieren. Der ersetzte Block wird als gelöscht markiert.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die vorhergehenden und anderen Aufgaben, Aspekte und Vorteile werden aus der nachfolgenden detaillierten Beschreibung einer bevorzugten Ausführungsform der Erfindung unter Bezugnahme auf die Zeichnungen besser verständlich, wobei:
  • Fig. 1 ein Blockdiagramm ist, das zweckmäßige Komponenten eines Systems in Übereinstimmung mit einer Ausführungsform eines Systems gemäß der Lehre dieser Erfindung darstellt,
  • Fig. 2 eine bildliche Darstellung eines Niveaus einer Flash-Speicherorganisation in Übereinstimmung mit der Lehre dieser Erfindung ist,
  • Fig. 3 eine bildliche Darstellung ist, auf welche Weise eine Einheit formatiert wird,
  • Fig. 4 eine bildliche Darstellung ist, welche zeigt, wie die computererzeugten Adressen in physikalische Adressen verzeichnet werden,
  • Fig. 5 ein Flußdiagramm ist, welches einen Lesevorgang darstellt,
  • Fig. 6 ein Flußdiagramm ist, welches einen Schreibvorgang darstellt,
  • Fig. 7 ein Bilddiagramm ist, welches den Stand einer Einheit vor und nach einem Übertragungsvorgang darstellt,
  • Fig. 8 ein Flußdiagramm eines Übertragungsvorganges ist,
  • Fig. 9 ein Flußdiagramm ist, welches den Vorgang zeigt, bei dem ein überwiegender Teil des virtuellen-zu- physikalischen Verzeichnisses in einem Flash- Speicher gespeichert wird.
  • DETAILLIERTE BESCHREIBUNG EINER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Nun Bezug nehmend auf die Fig. 1 der Zeichnungen gibt in einem typischen System ein Prozessor 10 in Kombination mit dessen verarbeitender bzw. bearbeitender Systemsoftware eine Reihe von Lese- und Schreibbefehlen aus, um Daten auszulesen und in spezifische Adreßplätze in einem Direktzugriffsspeicher zu schreiben. Wie es durch den Fachmann ersichtlich ist, können in einer Direktzugriffsspeichervorrichtung, wie einem Disk-Speicher, Daten (ein-)geschrieben oder aus jedem Adreßplatz (aus-)gelesen werden. Der Prozessor 10 bei dem System der Fig. 1 schreibt Daten in einen und liest Daten aus einem Flash-Speicher 12 in Blöcken an spezifischen Adreßplätzen. Obschon Zonen des Flash- Speichers 12 gelöscht werden können, können gegenwärtig beschriebene Adreßplätze nicht wieder beschrieben werden, bis die gesamte Zone gelöscht ist. In Übereinstimmung mit der Lehre dieser Erfindung stellt eine Flash-Speichersteuereinrichtung 14 einen vollständig wiederbeschreibbaren virtuellen Adreßraum zur Verfügung, so daß der Flash-Speicher 12 einen Direktzugriffsspeicher, wie einen Disk-Speicher, emuliert, und stellt die prozessorverarbeitende Systemsoftware sämtliche weitere erforderliche verarbeitende Unterstützung (wie ein Dateisystem) in der gleichen Weise bereit, wie sie es für einen Standard-Direktzugriffsspeicher vorsieht, und in einer Weise, die unabhängig von dem Flash- Speicher 12 und dessen Steuereinrichtung 14 ist. Ein typisches System beinhaltet auch einen herkömmlichen Direktzugriffsspeicher 16. Es ist ersichtlich, daß die Funktionen der Steuereinrichtung 14 in einer Software, Firmware einer Hardware durchgeführt werden können und nicht notwendigerweise als eine physikalisch getrennte Einheit besteht, wie in der Zeichnung vorgeschlagen ist.
  • Nun Bezug nehmend auf die Fig. 2 ist teilweise die Organisation des Flash-Speichers dargestellt. Der Flash-Speicher weist eine Anzahl von Zonen auf, die hier als Zone A, Zone B etc. bezeichnet sind. Jede Zone ist aus einer Anzahl von zusammenhängenden physikalischen Speicherplätzen zusammengesetzt, die bei Verwendung einer herkömmlichen, hinlänglich bekannten Flash-Speichertechnologie blockweise gelöscht bzw. blockgelöscht werden können. Die Zonen sind als Einheiten organisiert, von denen nur vier gezeigt sind, welche in der Zeichnung als EINHEIT #1, EINHEIT #6, EINHEIT N-1 und ÜBERTRAGUNGSEINHEIT bezeichnet sind. Jede Einheit ist aus wenigstens einer Zone einer Vielzahl von zusammenhängenen Zonen zusammengesetzt. Wie hier dargestellt ist, ist j ede Einheit aus zwei Zonen zusammengesetzt (d. h. EINHEIT #1 - Zone A und Zone B; EINHEIT #2 - Zone C und Zone D, ÜBERTRAGUNGSEINHEIT - Zone x2 und 2x).
  • Jede Einheit ist aus einer integralen Anzahl von adressierbaren Blöcken zusammengesetzt und jeder Block wiederum ist aus einer zusammenhängenden, in der Länge festgelegten Gruppe von Bytes zusammengesetzt. Es ist immer eine Einheit in dem Speicher 12 vorhanden, der unbeschrieben ist (d. h. eine ÜBERTRAGUNGSEINHEIT), so daß aktive Blöcke in eine Einheit, die gelöscht werden muß, in diese unbeschriebene Einheit vor Löschen der Einheit geschrieben werden können.
  • Nun auf die Fig. 3 Bezug nehmend beinhaltet jede Einheit eine integrale Anzahl von zusammenhängenden Datenblöcken 21, die wiederum aus zusammenhängenden Byteadressen zusammengesetzt sind, die als eine Blockzahl und eine Verschiebung bzw. Versetzung bzw. einen Offset innerhalb des Blockes adressiert werden können. Jeder Block in einer Einheit weist eine Einheit auf, die durch die Blockzahl und die Verschiebung mit der bzw. um die Einheit adressiert werden kann. Jede Einheit weist einen Einheitskopf bzw. ein oberes Einheitsende 23 und ein Verzeichnis 25 des Zuordnungsstatus jedes Blockes in der Einheit auf. Der Einheitskopf 23 um faßt eine Formatidentifizierungseinrichtung und die logische Einheitszahl der Einheit. Da sich Daten während einer Einheitsübertragung physikalisch bewegen müssen, bleibt die Einheitszahl vorzugsweise unverändert, selbst wenn sich der physikalische Platz der Einheit in dem Flash-Speicher 12 ändert. Zusätzlich kann der Kopf auch systemweite Informationen beinhalten. Das Blockzuordnungsverzeichnis 25 weist ein Wort für jeden Block auf, das dessen Status und dessen Verschiebung in der Einheit bezeichnet. Die Statusanzeigen sind: "Block frei und beschreibbar", "Block gelöscht und nicht beschreibbar", "Block ordnet zu und enthält Benutzerdaten" und eine virtuelle Adresse des Blockes (Rückversetzungszeiger).
  • Wie zuvor erwähnt ist, wird jeder Einheit vorzugsweise eine logische Einheitszahl zugeordnet, die sich nicht ändert, selbst wenn sich der physikalische Platz in dem Speicher der Einheit ändert. Wie in der Fig. 4 dargestellt ist, sind die durch den Computer 10 erzeugten Adressen 29 aus einer Blockzahl und einer Blockverschiebung zusammengesetzt. Diese Adressen werden durch die Flash-Steuereinrichtung 14 als virtuelle Adressen interpretiert und ein virtuelles Verzeichnis wird verwendet, um eine Übereinstimmung zwischen dem virtuellen Adreßraum und dem physikalischen Adreßraum herzustellen. Die virtuellen Verzeichnisänderungen als Blöcke werden wieder beschrieben und der virtuelle Adreßraum ist daher dynamisch. Es ist ebenso zu bemerken, daß ein Block oder Blöcke in dem virtuellen Adreßraum jederzeit in den physikalischen Adreßraum umverzeichnet bzw. umgewandelt werden können und daß Blöcke in dem physikalischen Adreßraum unbeschrieben und daher frei sein können, beschrieben zu werden.
  • Da sich die Daten während einer Einheitsübertragung in einen unbeschriebenen Einheitsraum physikalisch bewegen, werden die Daten logischen Einheitszahlen zugeordnet, die sich mit Änderungen in dem physikalischen Raum der Einheit in dem Speicher nicht ändern. Ein virtuelles Verzeichnis 31 verzeichnet Blockzahlen in der virtuellen Adresse in einer logischen Blockadresse bzw. bildet Blockzahlen in der virtuellen Adresse auf eine logische Blockadresse in dem ersten Schritt einer Zwei-Schritt-Adressenübersetzung bzw. Zwei-Schritt-Adressenübertragung ab. Die logische Einheitsadresse ist eine auf eine logische Einheitszahl bezogene Adresse, ähnlich einer physikalischen Adresse, die eine auf eine physikalische Einheitszahl bezogene Adresse ist. Die logische Einheitszahl sind die höherwertigen binären Zahlen der logischen Adresse und können von der logischen Adresse durch einen Bitverschiebungsvorgang abgeleitet werden. Die aus dem Verzeichnis 31 erhaltene logische Adresse 33 beinhaltet eine logische Einheitszahl längs mit der Verschiebung des Blockes in(-nerhalb) der Einheit.
  • Eine logische Einheitstabelle 35 überträgt bzw. setzt die logische Einheitszahl in eine physikalische Einheitszahl für die logische Einheit um. Dieser Zwei-Schritt- Adressenübersetzungsvorgang bzw. Zwei-Schritt-Adressenübertragungsvorgang vermeidet die Notwendigkeit, Blockadressen in dem Verzeichnis zu ändern, wenn eine Einheit an einen neuen physikalischen Platz bewegt wird.
  • In einem Lesevorgang wird die virtuelle Adresse 29, die aus einer Blockadresse zum Beispiel zusammengesetzt ist, anfänglich in einer logischen Einheitszahl und einer Blockverschiebung innerhalb der Einheit in dem adressierten Block verzeichnet. Das Verzeichnis 35 verzeichnet die Einheitszahl 33 in einer physikalischen Adresse 37 für die Einheit längs mit der Verschiebung des adressierten Blockes 37 innerhalb der Einheit und der adressierte Datenblock wird aus diesem physikalischen Raum gelesen. Hier ist vorausgesetzt, daß Daten auf einer Blockbasis gelesen und geschrieben werden, wie es typischerweise erfolgt ist. Natürlich können Daten auf einer Bytebasis bei Verwendung des gleichen Prinzips, wenn gewünscht, geschrieben und gelesen werden. Die Fig. 5 ist ein Flußdiagramm, das diesen Lesevorgang darstellt. Wie zuvor erklärt ist, wird die virtuelle Adresse 29 in einer logischen Adresse (Block 40) in dem ersten Schritt einer Zwei-Schritt-Adressenübersetzung bzw. Zwei-Schritt-Adressenübertragung verzeichnet bzw. in einer logischen Adresse (Block 40) abgebildet. In dem zweiten Schritt wird die logische Adresse in einer physikalischen Adresse in dem Flash-Speicher, Block 41, verzeichnet bzw. abgebildet. Daten werden an dieser physikalischen Adresse gelesen, Block 42, der den Vorgang abschließt.
  • Bei einem Schreibvorgang wird die virtuelle Adresse 29 wiederum anfänglich in einer logischen Einheitszahl und einer Blockverschiebung innerhalb der Einheit verzeichnet. Der Algorithmus der Steuereinrichtung 14 untersucht das Blockzuordnungsverzeichnis 25 für diese Einheit. Wenn der zu dieser Adresse korrespondierende Block geschrieben worden ist, kann ein Schreibbefehl an der korrespondierenden physikalischen Adresse nicht ausgeführt werden. Der Steueralgorithmus scannt bzw. fragt das Blockzuordnungsverzeichnis 25 für jede Einheit ab, bis ein freier Block aufgefunden wird. Der Status des Blockes in dem Blockverzeichnis 25 an der ursprünglichen Einheitsadresse wird geändert, um in dem Block in dem Zuordnungsverzeichnis gelöscht zu werden, und der Status des freien Blockes wird geändert, um beschrieben zu werden. Das virtuelle Verzeichnis 31 wird aktualisiert, so daß die ursprüngliche virtuelle Adresse nun auf die neue logische Adresse hinweist, in welcher der Schreibvorgang stattfinden muß. Diese logische Adresse wird in einer physikalischen Adresse in der zuvor beschriebenen Weise verzeichnet bzw. abgebildet und der Block wird in diese Adresse geschrieben. Die Fig. 6 ist ein Flußdiagramm, das diesen Schreibvorgang darstellt. Bei einem Schreibvorgang wird die virtuelle Adresse 29 in einer logischen Einheitsadresse verzeichnet, Block 45, und wird die Einheitszuordnung für die Einheit untersucht, Block 46. Wenn in einem Entscheidungsblock 47 die Einheitsadresse frei ist, wird die Ein heitsadresse in einer physikalischen Adresse verzeichnet bzw. abgebildet, Block 48, und werden Daten in diese physikalische Adresse (ein-)geschrieben, Block 49, und endet der Vorgang. Wenn die logische Adresse nicht frei ist (Block 47), werden die Einheitstabellen gescannt bzw. abgefragt, um eine freie Adresse in den Einheitszuordnungstabellen aufzufinden, Block 50. Diese neue logische Adresse wird in einer physikalischen Adresse verzeichnet bzw. abgebildet, Block 51, und die Daten werden in diese physikalische Adresse (ein-)geschrieben, Block 52. Die Einheitszuordnungstabellen werden aktualisiert (Block 53), um anzuzeigen, daß der ursprüngliche Block gelöscht und nicht beschreibbar ist und daß der neue Block zugeordnet ist und Benutzerdaten enthält. Das virtuelle-zu-logische Adressenverzeichnis wird dann aktualisiert, um auf die neue physikalische Adresse der Daten, die mit der ursprünglichen virtuellen Adresse übereinstimmt, hinzuweisen, Blöcke 54 und 55.
  • Um die Lese- und Schreibvorgänge ohne Beschränkung fortsetzen zu können, wird der physikalische Speicherraum periodisch zurückgewonnen bzw. regeneriert. Wie zuvor erklärt ist, wird wenigstens eine Einheit des Speichers immer reserviert, so daß sie gänzlich aus freien Blöcken besteht und als eine ÜBERTRAGUNGSEINHEIT dient.
  • Nun auf die Fig. 7 Bezug nehmend wird eine aktive Einheit ausgewählt (hier EINHEIT #M) und werden sämtliche dieser gegenwärtig verzeichneten bzw. abgebildeten aktiven Blöcke gelesen und dann in die ÜBERTRAGUNGSEINHEIT geschrieben. Die ausgewählte Einheit #M wird dann blockweise gelöscht bzw. blockgelöscht und wird die ÜBERTRAGUNGSEINHEIT, während die Übertragungseinheit, in welche die aktiven Blöcke geschrieben worden sind, bei diesem Beispiel die Einheit #M wird. Die Fig. 7 zeigt den Status der Einheiten vor und nach einem Übertragungsvorgang bzw. Übersetzungsvorgang. Die Fig. 8 ist ein Flußdiagramm dieses Übertragungsvorgan ges bzw. Übersetzungsvorganges. Bei einem Übertragungsvorgang wird eine Einheit für die Übertragung bzw. Übersetzung ausgewählt, Block 60, und werden die aktiven Datenblöcke in der ausgewählten Einheit gelesen, Block 61. Diese aktiven Datenblöcke werden dann in die Übertragungseinheit an Positionen in der Übertragungseinheit entsprechend den Positionen, an welchen sie in der ursprünglichen Einheit angeordnet waren, geschrieben, Block 62. Die ausgewählte ursprüngliche Einheit wird dann blitzartig gelöscht, Block 63, und das logische-zu-physikalische Adressenverzeichnis wird geändert, so daß die ausgewählte Einheit die Übertragungseinheit wird und die Übertragungseinheit der Einheitszahl der ausgewählten Einheit zugeordnet wird, Block 64.
  • Das so weit beschriebene System benötigt ein virtuelles Verzeichnis, dessen Inhalte frei aktualisiert sind, und ein solches Verzeichnis kann in einem herkömmlichen Direktzugriffsspeicher gespeichert werden. Allerdings unter der Voraussetzung zum Beispiel einer Blockgröße von 512 Byte, da das virtuelle Verzeichnis einen Eingang für jeden Block beinhaltet und jeder Eingang zum Beispiel 4 Byte lang ist (d. h. geeignet zum Adressieren bis zu 4 Gigabyte eines Speichers), würde ein Flash-Speicher von 80 MByte einen Speicher von 640 kByte erfordern, um die Verzeichnistabellen zu speichern. Um den zum Speichern des virtuellen Verzeichnisses erforderlichen Platz des Direktzugriffsspeichers zu beschränken, wird bei einer bevorzugten Ausführungsform der Erfindung ein Großteil der Verzeichnisdaten in dem Flash-Speicher 12 selbst gespeichert und wird ein sekundäres virtuelles Verzeichnis, das virtuelle Adressen aus dem Computer in dem primären virtuellen Verzeichnis verzeichnet bzw. abbildet, in einen Direktzugriffsspeicher, wie dem Speicher 16, gespeichert. Ein hier zu betrachtender wesentlicher Gesichtspunkt besteht darin, daß die sekundäre virtuelle Verzeichnisanordnung den Vorgang zum Lesen und Schreiben des virtuellen Verzeichnisses zu den früher beschriebenen Verfahren zum Lesen und Schreiben gewöhnlicher Daten identisch ist. Das virtuelle Verzeichnis selbst wird in einer zu den Benutzerdaten in der vorhergehenden Beschreibung äquivalenten Weise behandelt und das in dem Direktzugriffsspeicher gespeicherte virtuelle Verzeichnis (das heißt, daß das sekundäre virtuelle Verzeichnis) ist zu dem virtuellen Verzeichnis in der vorhergehenden Beschreibung äquivalent.
  • Bei dieser Ausführungsform befindet sich das virtuelle Verzeichnis in dem Flash-Speicher 12 an negativen virtuellen Adressen; ein gewöhnlicher Raum beginnt bei einer virtuellen Adresse Null. Das virtuelle Verzeichnis verzeichnet bzw. bildet die selbst verwendete negative Adresse ab, so daß das sich in einen Flash-Speicher befindliche virtuelle Verzeichnis wie gewöhnliche Benutzerdaten gelesen und geschrieben werden kann und sich nur der Teil des virtuellen Verzeichnisses, das selbst verzeichnet bzw. abbildet (d. h. das sekundäre virtuelle Verzeichnis) in dem Direktzugriffsspeicher befindet.
  • Bei einem vereinfachten Beispiel wird ein virtuelles Verzeichnis von 6000 Byte angenommen, die in zwölf virtuellen Verzeichnisblöcken, jeweils zu 512 Byte, gespeichert sind. Es wird eine Vier-Byte-Adresse angenommen, wobei jeder Verzeichnisblock 128 physikalische Adressen speichern kann. Jeder Block enthält daher die Adressen von 64 kByte eines virtuellen Flash-Speichers. Jeder Block von virtuellen Flash-Speicheradressen wird als eine Seite betrachtet und der Direktzugriffsspeicher speichert die Seitenadressen (bei diesem Beispiel nur 48 Byte), die in bzw. zu Adressenblöcken verzeichnet bzw. abgebildet sind. Beim Lesen von Daten aus einer vorgegebenen virtuellen Adresse wird die Adresse durch die Seitengröße (64 kByte) geteilt, um eine Seitenzahl in dem sekundären virtuellen Verzeichnis zu erhalten, welches in den bzw. zu dem Seitenblock des primären virtuellen Verzeichnisses, in welchem die Adresse gespeichert ist, verzeichnet bzw. abbildet. Mit dem virtuel len Speicherseitenblock kann das Verfahren zum Verzeichnen bzw. Abbilden in einer spezifischen physikalischen Adresse eines Flash-Speichers in der bereits beschriebenen Weise fortfahren. Nachdem die virtuelle Adresse durch die Seitengröße geteilt ist, kann zum Beispiel der Rest durch die virtuelle Speicherblockgröße (z. B. 512) geteilt werden, um einen Index zu dem aus dem Flash-Speicher gelesenen Adressenfeld zu erhalten.
  • Beim Schreiben von Daten in einer vorgegebenen virtuellen Adresse wird die computererzeugte Adresse ebenso durch die Seitengröße geteilt, um einen Index zu dem sekundären virtuellen Verzeichnis in dem Direktzugriffsspeicher zu erhalten. Das sekundäre virtuelle Verzeichnis verzeichnet bzw. bildet in bzw. zu einem primären virtuellen Verzeichnis ab, in welchem der primäre virtuelle Verzeichnisblock (ein-)gelesen ist; und dies wird ausgenutzt, um in dem physikalischen Block, der adressiert worden ist, zu verzeichnen bzw. abzubilden, in welchem es (ein-)gelesen ist. Da dieser Block nicht wieder beschrieben werden kann, wird ein unbeschriebener Block identifiziert und in der zuvor beschriebenen Weise mit dem als gelöscht markierten ursprünglichen Datenblock beschrieben. Um das virtuelle Verzeichnis, das sich in dem Flash-Speicher befindet, zu aktualisieren, wird im wesentlichen der gleiche Vorgang durchgeführt. Der virtuelle Verzeichnisblock wird in seiner modifizierten Form, um den neuen physikalischen Platz der Adressendaten zu reflektieren, in einen unbeschriebenen Block in dem Flash- Speicher geschrieben und der alte Block wird als gelöscht markiert. Der sekundäre virtuelle Speicher in dem Direktzugriffsspeicher wird, wenn notwendig, geändert, um die Änderung in den primären virtuellen Speicherblockplätzen wiederzugeben bzw. zu reflektieren.
  • Die Fig. 9 ist ein Flußdiagramm dieses Vorganges. Der erste Schritt bei diesem Verfahren besteht darin, eine virtuelle Adresse in eine Seitenzahl umzuwandeln bzw. zu konvertie ren, Block 70, und die Seitenzahl zu verwenden, um die Adresse in dem RAM 16 in dem Flash-Speicher 12 des einschlägigen bzw. relevanten Seitenblockes des virtuellen Verzeichnisses, die in dem Flash-Speicher gespeichert ist, aufzufinden bzw. zu lokalisieren, Block 21. Der Seitenblock des virtuellen Verzeichnisses an dieser Adresse wird aus dem Flash-Speicher gelesen (Block 72) und in der zuvor beschriebenen Weise verwendet, um eine zu der virtuellen Adresse korrespondierende physikalische Adresse für einen Datenlese- oder Datenschreibvorgang aufzufinden bzw. zu lokalisieren. Bei einem Datenschreibvorgang muß der Seitenblock des virtuellen Verzeichnisses aktualisiert werden, Block 73, und wird der aktualisierte Seitenblock des virtuellen Verzeichnisses in einen freien physikalischen Adreßplatz des Flash-Speichers geschrieben, Block 74. Die ursprüngliche Flash-Speicheradresse, an welcher der Seitenblock des virtuellen Verzeichnisses angeordnet war, wird als gelöscht markiert, Block 75, und der RAM-Speicher 16 wird aktualisiert, um auf die virtuelle-zu-physikalische Verzeichnisadresse für das aktualisierte Verzeichnis hinzuweisen, Block 76.
  • Das virtuelle Verzeichnis kann nach Starten des Systems einfach wiederhergestellt werden. Das virtuelle Verzeichnis, das sich in dem Flash-Speicher befindet, ist nicht flüchtig und bedarf keiner Wiederherstellung. Das sekundäre virtuelle Verzeichnis, das sich in dem flüchtigen Direktzugriffsspeicher befindet, kann durch Scannen bzw. Abfragen des Blockverwendungsverzeichnisses, das sich an dem oberen Ende jeder Einheit befindet, beim Start wiederhergestellt werden. Die als in einer virtuellen Adresse verzeichnet bzw. abgebildet markierten Blöcke werden identifiziert und das sekundäre virtuelle Verzeichnis dementsprechend hergestellt.

Claims (6)

1. Speicherverwaltungsverfahren für einen Speicher (12), in welchen Daten nur in unbeschriebene physikalische Speicherplätze geschrieben werden können und in welchen eine Zone von benachbarten Speicherplätzen gleichzeitig gelöscht werden können, umfassend die Schritte:
Organisieren der Daten in dem Speicher (12) in eine Vielzahl von Einheiten, wobei jede der Einheiten wenigstens eine Zone einschließt,
Organisieren jeder Einheit in eine integrale Anzahl von adressierbaren Blöcken, wobei jeder Block eine Vielzahl von benachbarten physikalischen Speicherplätzen umfaßt, Errichten eines Blockzuordnungsverzeichnisses (25) für jede Einheit, welches den Zustand jedes Blockes in einer Einheit als entweder beschrieben oder unbeschrieben oder gelöscht anzeigt,
Errichten eines virtuellen Verzeichnisses (31), um virtuelle Blockadressen in physikalischen Blockadressen innerhalb einer Einheit zu verzeichnen,
Schreiben von Daten in den Speicher (12) an einer virtuellen Adresse (29):
(a) Verzeichnen der virtuellen Adresse (29) in einer physikalischen Blockadresse in einer Einheit,
(b) Untersuchen des Blockzuordnungsverzeichnisses (25) für die Einheit, in welche die virtuelle Adresse (29) in Unterabschnitt (a) verzeichnet worden ist, um zu bestimmen, ob der Zustand eines Blockes an einer physikalischen Blockadresse beschrieben oder unbeschrieben oder gelöscht ist,
(c) wenn sich der Block an der physikalischen Blockadresse in beschriebenem Zustand befindet:
(1) Untersuchen des Blockzuordnungsverzeichnisses (25) von wenigstens einer anderen der Einheiten, um eine unbeschriebene Blockadresse zu identifizieren,
(2) Schreiben der Daten in den Speicher (12) zu der unbeschriebenen Blockadresse,
(3) Ändern des Blockzuordnungsverzeichnisses (25) für einen Block in der Einheit, in welchem die virtuelle Adresse (29) in Schritt (a) verzeichnet worden ist, um sie als gelöschte physikalische Blockadresse anzuzeigen,
(4) Ändern des Blockzuordnungsverzeichnisses (25) für einen Block in der Einheit, in welche die Daten in Schritt (c) (2) geschrieben worden sind, um sie als geschriebene, zuvor unbeschriebene Blockadresse, an welcher die Daten geschrieben worden sind, anzuzeigen,
(5) Ändern des virtuellen Verzeichnisses (31), um virtuelle Adressen (29) in physikalische Adressen (37) in einer Einheit zu verzeichnen, derart, daß das virtuelle Verzeichnis (31) die virtuelle Adresse (29) in die physikalische Adresse (37) des zuvor unbeschriebenen Blockes, in welchen die Daten in Schritt (c) (2) geschrieben worden sind, zu verzeichnen, derart, daß die virtuelle Adresse nicht in der physikalischen Adresse (37) des geschriebenen Blockes des Schrittes (c) verzeichnet wird.
2. Speicherverwaltungsverfahren nach Anspruch 1, umfassend die Schritte:
Speichern eines ersten virtuellen Verzeichnisses in dem Speicher (12), das virtuelle Adressen (29) in physikalische Adressen (37) in einer Einheit abbildet,
Organisieren des in dem Speicher (12) gespeicherten ersten virtuellen Verzeichnisses in Segmente von seitenadressierbaren Blöcken,
Speichern eines zweiten virtuellen Verzeichnisses in einem Direktzugriffsspeicher (16), das Seitenadressen in physikalische Adressen der seitenadressierbaren Blöcke in dem Speicher (12) abbildet,
Ändern eines seitenadressierbaren Blockes in dem ersten virtuellen Verzeichnis, das in dem Speicher (12) gespeichert ist, durch Schreiben eines geänderten seitenadressierbaren Blockes in eine unbeschriebene physikalische Blockzuordnung, und
Aktualisieren des zweiten virtuellen Verzeichnisses, das in dem Direktzugriffsspeicher (16) gespeichert ist, derart, daß es die Seitenadresse des geänderten seitenadressierbaren Blockes in der unbeschriebenen physikalischen Blockzuordnung, in welche der geänderte seitenadressierbare Block geschrieben worden ist, verzeichnet.
3. Speicherverwaltungsverfahren nach Anspruch 2, umfassend die Schritte:
Einschreiben von Daten in den Speicher (12) an einer virtuellen Adresse (29) durch:
(a) Ableiten einer Seitenadresse aus einer virtuellen Adresse (29),
(b) Verzeichnen der Seitenadresse in einem seitenadressierbaren Block in dem Speicher (12),
(c) Lesen eines Segmentes des ersten virtuellen Verzeichnisses, das eine virtuelle Adresse (29) in einer physikalischen Adresse (37) verzeichnet,
(d) Verzeichnen der virtuellen Adresse (29) in einer physikalischen Adresse (37),
(e) wenn sich der Block an der physikalischen Blockadresse in einem geschriebenen oder gelöschten Zustand befindet:
(1) Schreiben der Daten in den Speicher (12) an einer unbeschriebenen Blockadresse,
(2) Ändern des ersten virtuellen Verzeichnissegmentes, derart, daß das erste virtuelle Verzeichnis die virtuelle Adresse (29) in der physikalischen Adres se (37) des unbeschriebenen Blockes, in welchem die Daten in Schritt (e) (1) geschrieben worden sind, verzeichnet,
(3) Schreiben des geänderten ersten virtuellen Verzeichnissegments aus Schritt (e) (2) in einen unbeschriebenen physikalischen Blockplatz in dem Speicher (12),
(4) Aktualisieren der in dem Direktzugriffsspeicher (16) gespeicherten zweiten Tabelle, derart, daß sie die Seitenadresse des geänderten ersten virtuellen Verzeichnissegmentes des unbeschriebenen physikalischen Blockplatzes verzeichnet.
4. Speicherverwaltungsverfahren nach einem der Ansprüche 1 bis 3, bei welchem das Verzeichnen der virtuellen Adresse (29) in einer physikalischen Adresse (37) eine Zwei-Schritt- Adressenübersetzung umfaßt:
Übersetzen der virtuellen Adresse (29) in eine logische Einheitsadresse (33) durch das virtuelle Verzeichnis (31), und
Übersetzen der logischen Adresse (33) in die physikalische Adresse (37) durch eine logische Einheitstabelle (35).
5. Speicherverwaltungsverfahren nach einem der Ansprüche 1 bis 4, umfassend:
Einlesen von Daten in den Speicher an einer virtuellen Adresse:
(a) Verzeichnen der virtuellen Adresse (29) in einer physikalischen Blockadresse in einer Einheit,
(b) Lesen der Daten aus dem Speicher (12) an der physikalischen Adresse (37).
6. Speicherverwaltungsverfahren nach einem der Ansprüche 1 bis 5, umfassend die weiteren Schritte:
Errichten einer Übertragungseinheit in dem Speicher (12), in welchem sämtliche Blöcke der Einheit unbeschrieben sind, wobei die Übertragungseinheit ein Übertragungseinheitsblockzuordnungsverzeichnis beinhaltet,
periodisches Identifizieren einer zu löschenden, zu der Übertragungseinheit unterschiedlichen ausgewählten Einheit, Lesen jedes geschriebenen Blockes in die ausgewählte Einheit,
Schreiben jedes geschriebenen Blockes in der ausgewählten Einheit in die Übertragungseinheit,
Aktualisieren des Übertragungseinheitszuordnungsverzeichnisses (25), um den Zustand der Blöcke, die in dem gerade vorhergehenden Schritt zum Schreiben geschrieben worden sind, als geschrieben anzuzeigen,
Löschen der ausgewählten Einheit,
Aktualisieren des virtuellen Verzeichnisses der virtuellen Adressen (29) in physikalische Adressen (37), um die Bewegung der geschriebene Blöcke zu reflektieren.
DE69414556T 1993-03-08 1994-02-28 Schnell loeschbare datei Expired - Lifetime DE69414556T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/027,131 US5404485A (en) 1993-03-08 1993-03-08 Flash file system
PCT/US1994/001848 WO1994020906A1 (en) 1993-03-08 1994-02-28 Flash file system

Publications (2)

Publication Number Publication Date
DE69414556D1 DE69414556D1 (de) 1998-12-17
DE69414556T2 true DE69414556T2 (de) 1999-05-06

Family

ID=21835870

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69414556T Expired - Lifetime DE69414556T2 (de) 1993-03-08 1994-02-28 Schnell loeschbare datei

Country Status (12)

Country Link
US (1) US5404485A (de)
EP (1) EP0688450B1 (de)
JP (2) JPH08510072A (de)
KR (1) KR100292011B1 (de)
CN (1) CN1078364C (de)
AU (1) AU6269994A (de)
DE (1) DE69414556T2 (de)
FI (1) FI105726B (de)
IL (1) IL108766A (de)
TW (1) TW264547B (de)
WO (1) WO1994020906A1 (de)
ZA (1) ZA941446B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010063773A1 (de) * 2010-12-21 2012-07-12 Endress + Hauser Wetzer Gmbh + Co. Kg Feldgerät mit einem semi-permanenten elektronischen Speicher und Verfahren zum Betreiben eines solchen Feldgerätes

Families Citing this family (588)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
US5657332A (en) * 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US5581723A (en) * 1993-02-19 1996-12-03 Intel Corporation Method and apparatus for retaining flash block structure data during erase operations in a flash EEPROM memory array
US5519843A (en) * 1993-03-15 1996-05-21 M-Systems Flash memory system providing both BIOS and user storage capability
US5479638A (en) * 1993-03-26 1995-12-26 Cirrus Logic, Inc. Flash memory mass storage architecture incorporation wear leveling technique
US5485595A (en) * 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
US6311286B1 (en) * 1993-04-30 2001-10-30 Nec Corporation Symmetric multiprocessing system with unified environment and distributed system functions
US5600821A (en) * 1993-07-28 1997-02-04 National Semiconductor Corporation Distributed directory for information stored on audio quality memory devices
US5640529A (en) * 1993-07-29 1997-06-17 Intel Corporation Method and system for performing clean-up of a solid state disk during host command execution
JP3215237B2 (ja) * 1993-10-01 2001-10-02 富士通株式会社 記憶装置および記憶装置の書き込み/消去方法
US5784706A (en) * 1993-12-13 1998-07-21 Cray Research, Inc. Virtual to logical to physical address translation for distributed memory massively parallel processing systems
EP0663636B1 (de) * 1994-01-12 2001-10-31 Sun Microsystems, Inc. Logisch adressierbarer physikalischer Speicher für ein Rechnersystem mit virtuellem Speicher, das mehrere Seitengrössen unterstützt
US5696917A (en) 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
US5765175A (en) * 1994-08-26 1998-06-09 Intel Corporation System and method for removing deleted entries in file systems based on write-once or erase-slowly media
ATE149709T1 (de) * 1994-09-30 1997-03-15 Sel Alcatel Ag Verfahren zur speicherverwaltung eines flash- speichers
JPH08137634A (ja) * 1994-11-09 1996-05-31 Mitsubishi Electric Corp フラッシュディスクカード
JP2669365B2 (ja) * 1994-11-24 1997-10-27 日本電気株式会社 書換え可能なromファイル装置
JP3464836B2 (ja) * 1995-01-19 2003-11-10 富士通株式会社 記憶装置のメモリ管理装置
AU692670B2 (en) * 1995-02-10 1998-06-11 Aristocrat Technologies Australia Pty Limited Dram emulator
AUPN105495A0 (en) * 1995-02-10 1995-03-09 Aristocrat Leisure Industries Pty Ltd Dram emulator
JP3706167B2 (ja) * 1995-02-16 2005-10-12 株式会社ルネサステクノロジ 半導体ディスク装置
JP2671860B2 (ja) 1995-03-30 1997-11-05 日本電気株式会社 フラッシュメモリ用ファイルシステム
JPH08328762A (ja) * 1995-06-06 1996-12-13 Mitsubishi Electric Corp 半導体ディスク装置及びそのメモリ管理方法
US6728851B1 (en) 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US5845313A (en) 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US6978342B1 (en) * 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US6081878A (en) * 1997-03-31 2000-06-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US8171203B2 (en) * 1995-07-31 2012-05-01 Micron Technology, Inc. Faster write operations to nonvolatile memory using FSInfo sector manipulation
US5930815A (en) * 1995-07-31 1999-07-27 Lexar Media, Inc. Moving sequential sectors within a block of information in a flash memory mass storage architecture
DE29513792U1 (de) * 1995-08-28 1995-10-12 Siemens AG, 80333 München Prozessoreinheit
GB2291991A (en) * 1995-09-27 1996-02-07 Memory Corp Plc Disk drive emulation with a block-erasable memory
GB2291990A (en) * 1995-09-27 1996-02-07 Memory Corp Plc Flash-memory management system
US5933847A (en) 1995-09-28 1999-08-03 Canon Kabushiki Kaisha Selecting erase method based on type of power supply for flash EEPROM
JPH0997206A (ja) * 1995-09-28 1997-04-08 Canon Inc フラッシュrom管理方法及び装置及びコンピュータ制御装置
JPH0997207A (ja) * 1995-09-28 1997-04-08 Canon Inc フラッシュrom管理方法及び装置及びコンピュータ制御装置
JPH0997314A (ja) * 1995-09-28 1997-04-08 Canon Inc Icカード装置
JP3703181B2 (ja) * 1995-09-28 2005-10-05 キヤノン株式会社 フラッシュrom管理方法及び装置
JP3727983B2 (ja) * 1995-09-28 2005-12-21 キヤノン株式会社 電子カメラ
US6014724A (en) * 1995-10-27 2000-01-11 Scm Microsystems (U.S.) Inc. Flash translation layer block indication map revision system and method
US5867641A (en) * 1995-10-27 1999-02-02 Scm Microsystems (U.S.) Inc. Flash translation layer cleanup system and method
US5987478A (en) * 1995-10-31 1999-11-16 Intel Corporation Virtual small block file manager for flash memory array
US5829013A (en) 1995-12-26 1998-10-27 Intel Corporation Memory manager to allow non-volatile memory to be used to supplement main memory
US5978808A (en) * 1995-12-27 1999-11-02 Intel Corporation Virtual small block file manager for flash memory array
JPH09185551A (ja) * 1996-01-08 1997-07-15 Mitsubishi Electric Corp 半導体記憶装置
US5787445A (en) * 1996-03-07 1998-07-28 Norris Communications Corporation Operating system including improved file management for use in devices utilizing flash memory as main memory
US5860082A (en) * 1996-03-28 1999-01-12 Datalight, Inc. Method and apparatus for allocating storage in a flash memory
US5896393A (en) * 1996-05-23 1999-04-20 Advanced Micro Devices, Inc. Simplified file management scheme for flash memory
US5848420A (en) * 1996-06-14 1998-12-08 Eastman Kodak Company System and method for accessing data of a digital camera from a personal computer
KR980013092A (ko) * 1996-07-29 1998-04-30 김광호 교환시스템의 화일관리장치 및 방법
FR2752072B1 (fr) * 1996-08-01 1999-01-29 Solaic Sa Carte a circuit integre comportant des fichiers classes selon une arborescence
JPH10124381A (ja) * 1996-10-21 1998-05-15 Mitsubishi Electric Corp 半導体記憶装置
US5745418A (en) * 1996-11-25 1998-04-28 Macronix International Co., Ltd. Flash memory mass storage system
US5937434A (en) * 1997-02-14 1999-08-10 Intel Corporation Method of managing a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US6182188B1 (en) * 1997-04-06 2001-01-30 Intel Corporation Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US6311290B1 (en) 1997-02-14 2001-10-30 Intel Corporation Methods of reliably allocating, de-allocating, re-allocating, and reclaiming objects in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US5982553A (en) 1997-03-20 1999-11-09 Silicon Light Machines Display device incorporating one-dimensional grating light-valve array
US6088759A (en) 1997-04-06 2000-07-11 Intel Corporation Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US5943692A (en) * 1997-04-30 1999-08-24 International Business Machines Corporation Mobile client computer system with flash memory management utilizing a virtual address map and variable length data
JP3104646B2 (ja) * 1997-06-04 2000-10-30 ソニー株式会社 外部記憶装置
GB2328531A (en) * 1997-08-23 1999-02-24 Ibm Storing a long record in a set of shorter keyed records
DE19740525C1 (de) * 1997-09-15 1999-02-04 Siemens Ag Verfahren zur Abspeicherung und Wiedergewinnung von Daten in einem Steuersystem, insbesondere in einem Kraftfahrzeug
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
JPH11203191A (ja) * 1997-11-13 1999-07-30 Seiko Epson Corp 不揮発性記憶装置、不揮発性記憶装置の制御方法、および、不揮発性記憶装置を制御するプログラムを記録した情報記録媒体
JP3680142B2 (ja) * 1997-12-05 2005-08-10 東京エレクトロンデバイス株式会社 記憶装置及びアクセス方法
US6040997A (en) * 1998-03-25 2000-03-21 Lexar Media, Inc. Flash memory leveling architecture having no external latch
US6130770A (en) 1998-06-23 2000-10-10 Silicon Light Machines Electron gun activated grating light valve
US6101036A (en) 1998-06-23 2000-08-08 Silicon Light Machines Embossed diffraction grating alone and in combination with changeable image display
JP4085478B2 (ja) * 1998-07-28 2008-05-14 ソニー株式会社 記憶媒体及び電子機器システム
US6872984B1 (en) 1998-07-29 2005-03-29 Silicon Light Machines Corporation Method of sealing a hermetic lid to a semiconductor die at an angle
US6303986B1 (en) 1998-07-29 2001-10-16 Silicon Light Machines Method of and apparatus for sealing an hermetic lid to a semiconductor die
US6314557B1 (en) 1998-12-14 2001-11-06 Infineon Technologies Development Center Tel Aviv Ltd Hybrid computer programming environment
JP4046877B2 (ja) 1998-12-14 2008-02-13 株式会社ルネサステクノロジ 一括消去型不揮発性メモリおよび携帯電話
KR20000041291A (ko) * 1998-12-22 2000-07-15 김영환 이동통신 시스템에서 방문 이동 가입자의 데이터 관리 방법
FR2787901B1 (fr) * 1998-12-28 2001-02-09 Bull Sa Organisation memoire par zones physiques
GB9903490D0 (en) * 1999-02-17 1999-04-07 Memory Corp Plc Memory system
CA2267484C (en) * 1999-03-30 2002-03-05 Object Technology International Inc. Reclaiming memory from deleted applications
US6148354A (en) * 1999-04-05 2000-11-14 M-Systems Flash Disk Pioneers Ltd. Architecture for a universal serial bus-based PC flash disk
AU2006200756B2 (en) * 1999-04-05 2008-04-03 Sandisk Il Ltd A USB flash memory device for connecting to a USB-defined BUS
US6282605B1 (en) 1999-04-26 2001-08-28 Moore Computer Consultants, Inc. File system for non-volatile computer memory
KR100330164B1 (ko) 1999-04-27 2002-03-28 윤종용 무효 블록들을 가지는 복수의 플래시 메모리들을 동시에 프로그램하는 방법
KR100544175B1 (ko) * 1999-05-08 2006-01-23 삼성전자주식회사 링킹 타입 정보를 저장하는 기록 매체와 결함 영역 처리 방법
US7690031B2 (en) * 2000-01-06 2010-03-30 Super Talent Electronics, Inc. Managing bad blocks in flash memory for electronic data flash card
US7702831B2 (en) * 2000-01-06 2010-04-20 Super Talent Electronics, Inc. Flash memory controller for electronic data flash card
US8102662B2 (en) * 2007-07-05 2012-01-24 Super Talent Electronics, Inc. USB package with bistable sliding mechanism
US7830666B2 (en) 2000-01-06 2010-11-09 Super Talent Electronics, Inc. Manufacturing process for single-chip MMC/SD flash memory device with molded asymmetric circuit board
US20080209114A1 (en) * 1999-08-04 2008-08-28 Super Talent Electronics, Inc. Reliability High Endurance Non-Volatile Memory Device with Zone-Based Non-Volatile Memory File System
US8625270B2 (en) 1999-08-04 2014-01-07 Super Talent Technology, Corp. USB flash drive with deploying and retracting functionalities using retractable cover/cap
US7447037B2 (en) * 1999-08-04 2008-11-04 Super Talent Electronics, Inc. Single chip USB packages by various assembly methods
US8141240B2 (en) 1999-08-04 2012-03-27 Super Talent Electronics, Inc. Manufacturing method for micro-SD flash memory card
US7318117B2 (en) 2004-02-26 2008-01-08 Super Talent Electronics, Inc. Managing flash memory including recycling obsolete sectors
US7466556B2 (en) * 1999-08-04 2008-12-16 Super Talent Electronics, Inc. Single chip USB packages with swivel cover
US7535719B2 (en) * 1999-08-04 2009-05-19 Super Talent Electronics, Inc. Single chip USB packages with contact-pins cover
US7872871B2 (en) * 2000-01-06 2011-01-18 Super Talent Electronics, Inc. Molding methods to manufacture single-chip chip-on-board USB device
KR100577380B1 (ko) * 1999-09-29 2006-05-09 삼성전자주식회사 플래시 메모리와 그 제어 방법
KR100703680B1 (ko) * 1999-10-14 2007-04-05 삼성전자주식회사 플래시 파일 시스템
CN1088218C (zh) 1999-11-14 2002-07-24 邓国顺 用于数据处理系统的快闪电子式外存储方法及其装置
US6643731B2 (en) * 1999-12-31 2003-11-04 Texas Instruments Incorporated Low cost memory management that resists power interruption
US20060161725A1 (en) * 2005-01-20 2006-07-20 Lee Charles C Multiple function flash memory system
US7702984B1 (en) 2000-01-06 2010-04-20 Super Talent Electronics, Inc. High volume testing for USB electronic data flash cards
US20080286990A1 (en) * 2003-12-02 2008-11-20 Super Talent Electronics, Inc. Direct Package Mold Process For Single Chip SD Flash Cards
US6424975B1 (en) 2000-01-07 2002-07-23 Trg Products, Inc. FAT file system in palm OS computer
US6956878B1 (en) 2000-02-07 2005-10-18 Silicon Light Machines Corporation Method and apparatus for reducing laser speckle using polarization averaging
US7102671B1 (en) 2000-02-08 2006-09-05 Lexar Media, Inc. Enhanced compact flash memory card
US6426893B1 (en) * 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
EP1130516A1 (de) * 2000-03-01 2001-09-05 Hewlett-Packard Company, A Delaware Corporation Adressabbildung in einer Halbleiter-Speichervorrichtung
US7167944B1 (en) 2000-07-21 2007-01-23 Lexar Media, Inc. Block management for mass storage
US7113432B2 (en) 2000-09-14 2006-09-26 Sandisk Corporation Compressed event counting technique and application to a flash memory system
US6473845B1 (en) * 2000-09-28 2002-10-29 Hewlett-Packard Company System and method for dynamically updating memory address mappings
KR100644602B1 (ko) * 2000-10-11 2006-11-10 삼성전자주식회사 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조
US6986030B2 (en) 2000-10-27 2006-01-10 M-Systems Flash Disk Pioneers Ltd. Portable memory device includes software program for interacting with host computing device to provide a customized configuration for the program
US7373656B2 (en) * 2000-10-27 2008-05-13 Sandisk Il Ltd. Automatic configuration for portable devices
US7606733B2 (en) * 2000-10-27 2009-10-20 Sandisk Il Ltd. Account portability for computing
US7028165B2 (en) * 2000-12-06 2006-04-11 Intel Corporation Processor stalling
KR100365725B1 (ko) 2000-12-27 2002-12-26 한국전자통신연구원 플래시 메모리를 이용한 파일 시스템에서 등급별 지움정책 및 오류 복구 방법
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6510488B2 (en) 2001-02-05 2003-01-21 M-Systems Flash Disk Pioneers Ltd. Method for fast wake-up of a flash memory system
US7177081B2 (en) 2001-03-08 2007-02-13 Silicon Light Machines Corporation High contrast grating light valve type device
US6938144B2 (en) * 2001-03-22 2005-08-30 Matsushita Electric Industrial Co., Ltd. Address conversion unit for memory device
US6707591B2 (en) 2001-04-10 2004-03-16 Silicon Light Machines Angled illumination for a single order light modulator based projection system
US6732221B2 (en) 2001-06-01 2004-05-04 M-Systems Flash Disk Pioneers Ltd Wear leveling of static areas in flash memory
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
US6865346B1 (en) 2001-06-05 2005-03-08 Silicon Light Machines Corporation Fiber optic transceiver
US6591330B2 (en) 2001-06-18 2003-07-08 M-Systems Flash Disk Pioneers Ltd. System and method for flexible flash file
US6782205B2 (en) 2001-06-25 2004-08-24 Silicon Light Machines Method and apparatus for dynamic equalization in wavelength division multiplexing
US6747781B2 (en) 2001-06-25 2004-06-08 Silicon Light Machines, Inc. Method, apparatus, and diffuser for reducing laser speckle
US7024532B2 (en) * 2001-08-09 2006-04-04 Matsushita Electric Industrial Co., Ltd. File management method, and memory card and terminal apparatus that make use of the method
US6829092B2 (en) 2001-08-15 2004-12-07 Silicon Light Machines, Inc. Blazed grating light valve
US7356641B2 (en) * 2001-08-28 2008-04-08 International Business Machines Corporation Data management in flash memory
US6760805B2 (en) * 2001-09-05 2004-07-06 M-Systems Flash Disk Pioneers Ltd. Flash management system for large page size
US6930364B2 (en) 2001-09-13 2005-08-16 Silicon Light Machines Corporation Microelectronic mechanical system and methods
GB0123410D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Memory system for data storage and retrieval
GB0123419D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Data handling system
US6678785B2 (en) * 2001-09-28 2004-01-13 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write
GB0123421D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Power management system
GB0123416D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
GB0123415D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
GB0123417D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Improved data processing
US7299463B2 (en) * 2001-09-28 2007-11-20 Intel Corporation Method for atomically updating a plurality of files
US6956995B1 (en) 2001-11-09 2005-10-18 Silicon Light Machines Corporation Optical communication arrangement
KR100449708B1 (ko) * 2001-11-16 2004-09-22 삼성전자주식회사 플래시 메모리 관리방법
US6977847B2 (en) * 2001-11-23 2005-12-20 M-Systems Flash Disk Pioneers Ltd. Detecting partially erased units in flash devices
JP3967121B2 (ja) * 2001-12-11 2007-08-29 株式会社ルネサステクノロジ ファイルシステム、ファイルシステム制御方法およびファイルシステムを制御するためのプログラム
DE10163342A1 (de) * 2001-12-21 2003-07-10 Elektro Beckhoff Gmbh Unterneh Datenübertragungsverfahren, serielles Bussystem und Anschalteinheit für einen passiven Busteilnehmer
TWI240861B (en) * 2002-01-11 2005-10-01 Integrated Circuit Solution In Data access method and architecture of flash memory
US6800238B1 (en) 2002-01-15 2004-10-05 Silicon Light Machines, Inc. Method for domain patterning in low coercive field ferroelectrics
US6621739B2 (en) * 2002-01-18 2003-09-16 Sandisk Corporation Reducing the effects of noise in non-volatile memories through multiple reads
US6957295B1 (en) 2002-01-18 2005-10-18 Lexar Media, Inc. File management of one-time-programmable nonvolatile memory devices
US6950918B1 (en) 2002-01-18 2005-09-27 Lexar Media, Inc. File management of one-time-programmable nonvolatile memory devices
US7231643B1 (en) 2002-02-22 2007-06-12 Lexar Media, Inc. Image rescue system including direct communication between an application program and a device driver
AU2003218299A1 (en) * 2002-03-19 2003-10-08 Michael Bucci Device and method for throwing motion training
US6767751B2 (en) 2002-05-28 2004-07-27 Silicon Light Machines, Inc. Integrated driver process flow
US6728023B1 (en) 2002-05-28 2004-04-27 Silicon Light Machines Optical device arrays with optimized image resolution
US7054515B1 (en) 2002-05-30 2006-05-30 Silicon Light Machines Corporation Diffractive light modulator-based dynamic equalizer with integrated spectral monitor
US6822797B1 (en) 2002-05-31 2004-11-23 Silicon Light Machines, Inc. Light modulator structure for producing high-contrast operation using zero-order light
US6829258B1 (en) 2002-06-26 2004-12-07 Silicon Light Machines, Inc. Rapidly tunable external cavity laser
US6908201B2 (en) 2002-06-28 2005-06-21 Silicon Light Machines Corporation Micro-support structures
US6813059B2 (en) 2002-06-28 2004-11-02 Silicon Light Machines, Inc. Reduced formation of asperities in contact micro-structures
EP1376608A1 (de) * 2002-06-28 2004-01-02 Cp8 Programmierverfahren in einem nichtflüchtigen Speicher und System zur Realisierung eines solchen Verfahrens
US6714337B1 (en) 2002-06-28 2004-03-30 Silicon Light Machines Method and device for modulating a light beam and having an improved gamma response
KR100484147B1 (ko) * 2002-07-26 2005-04-18 삼성전자주식회사 플래시 메모리 관리 방법
US7035949B2 (en) * 2002-07-29 2006-04-25 M-System Flash Dist Pioneers Ltd. Multipurpose processor, system and method
US6801354B1 (en) 2002-08-20 2004-10-05 Silicon Light Machines, Inc. 2-D diffraction grating for substantially eliminating polarization dependent losses
US7057795B2 (en) 2002-08-20 2006-06-06 Silicon Light Machines Corporation Micro-structures with individually addressable ribbon pairs
US6970969B2 (en) * 2002-08-29 2005-11-29 Micron Technology, Inc. Multiple segment data object management
US6968439B2 (en) 2002-08-29 2005-11-22 Micron Technology, Inc. Single segment data object management
US7130979B2 (en) * 2002-08-29 2006-10-31 Micron Technology, Inc. Dynamic volume management
US6712480B1 (en) 2002-09-27 2004-03-30 Silicon Light Machines Controlled curvature of stressed micro-structures
US7254668B1 (en) * 2002-10-28 2007-08-07 Sandisk Corporation Method and apparatus for grouping pages within a block
US7174440B2 (en) * 2002-10-28 2007-02-06 Sandisk Corporation Method and apparatus for performing block caching in a non-volatile memory system
JP3694501B2 (ja) * 2002-10-30 2005-09-14 松下電器産業株式会社 記憶装置
JP4199519B2 (ja) * 2002-11-05 2008-12-17 パナソニック株式会社 メモリ管理装置及びメモリ管理方法
DE10252059B3 (de) * 2002-11-08 2004-04-15 Infineon Technologies Ag Verfahren zum Betreiben einer Speicheranordnung
KR100457812B1 (ko) * 2002-11-14 2004-11-18 삼성전자주식회사 플래시 메모리, 그에 따른 플래시 메모리 액세스 장치 및방법
US6928207B1 (en) 2002-12-12 2005-08-09 Silicon Light Machines Corporation Apparatus for selectively blocking WDM channels
US6987600B1 (en) 2002-12-17 2006-01-17 Silicon Light Machines Corporation Arbitrary phase profile for better equalization in dynamic gain equalizer
US7057819B1 (en) 2002-12-17 2006-06-06 Silicon Light Machines Corporation High contrast tilting ribbon blazed grating
US6934070B1 (en) 2002-12-18 2005-08-23 Silicon Light Machines Corporation Chirped optical MEM device
US6927891B1 (en) 2002-12-23 2005-08-09 Silicon Light Machines Corporation Tilt-able grating plane for improved crosstalk in 1×N blaze switches
KR100483490B1 (ko) * 2002-12-24 2005-04-15 한국전자통신연구원 저장 매체에 데이터를 저장하기 위한 이중 저널링저장방법
CA2511304C (en) * 2002-12-24 2011-09-20 Lg Electronics, Inc. Dual journaling store method and storage medium thereof
FI20022297L (fi) * 2002-12-31 2004-07-01 Nokia Corp Menetelmä muistikomponenttien sisältöjen vertailemiseksi
US7068372B1 (en) 2003-01-28 2006-06-27 Silicon Light Machines Corporation MEMS interferometer-based reconfigurable optical add-and-drop multiplexor
US7286764B1 (en) 2003-02-03 2007-10-23 Silicon Light Machines Corporation Reconfigurable modulator-based optical add-and-drop multiplexer
US6947613B1 (en) 2003-02-11 2005-09-20 Silicon Light Machines Corporation Wavelength selective switch and equalizer
TW200415464A (en) * 2003-02-12 2004-08-16 Acard Technology Corp SATA flash memory device
US6922272B1 (en) 2003-02-14 2005-07-26 Silicon Light Machines Corporation Method and apparatus for leveling thermal stress variations in multi-layer MEMS devices
US7391973B1 (en) 2003-02-28 2008-06-24 Silicon Light Machines Corporation Two-stage gain equalizer
US7027202B1 (en) 2003-02-28 2006-04-11 Silicon Light Machines Corp Silicon substrate as a light modulator sacrificial layer
US6806997B1 (en) 2003-02-28 2004-10-19 Silicon Light Machines, Inc. Patterned diffractive light modulator ribbon for PDL reduction
US6922273B1 (en) 2003-02-28 2005-07-26 Silicon Light Machines Corporation PDL mitigation structure for diffractive MEMS and gratings
US6829077B1 (en) 2003-02-28 2004-12-07 Silicon Light Machines, Inc. Diffractive light modulator with dynamically rotatable diffraction plane
US7526598B2 (en) * 2003-03-03 2009-04-28 Sandisk Il, Ltd. Efficient flash memory device driver
US7042611B1 (en) 2003-03-03 2006-05-09 Silicon Light Machines Corporation Pre-deflected bias ribbons
US20040186746A1 (en) * 2003-03-21 2004-09-23 Angst Wendy P. System, apparatus and method for storage and transportation of personal health records
US7003621B2 (en) * 2003-03-25 2006-02-21 M-System Flash Disk Pioneers Ltd. Methods of sanitizing a flash-based data storage device
EP1462946A1 (de) * 2003-03-25 2004-09-29 Acard Technology Corp. Architektur für eine seriell ATA-Bus basierte Flash-Speichervorrichtung
US7664987B2 (en) * 2003-05-25 2010-02-16 Sandisk Il Ltd. Flash memory device with fast reading rate
US6973519B1 (en) 2003-06-03 2005-12-06 Lexar Media, Inc. Card identification compatibility
US7606993B2 (en) * 2003-06-10 2009-10-20 Tdk Corporation Flash memory controller, memory control circuit, flash memory system, and method for controlling data exchange between host computer and flash memory
US7372731B2 (en) * 2003-06-17 2008-05-13 Sandisk Il Ltd. Flash memories with adaptive reference voltages
JP4433372B2 (ja) * 2003-06-18 2010-03-17 株式会社日立製作所 データアクセスシステム及び方法
US6988175B2 (en) * 2003-06-30 2006-01-17 M-Systems Flash Disk Pioneers Ltd. Flash memory management method that is resistant to data corruption by power loss
US7188228B1 (en) 2003-10-01 2007-03-06 Sandisk Corporation Hybrid mapping implementation within a non-volatile memory system
US7012835B2 (en) * 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US7296144B2 (en) * 2003-11-24 2007-11-13 Sandisk Il Ltd. Method of traceless portable application execution
US7440286B2 (en) * 2005-04-21 2008-10-21 Super Talent Electronics, Inc. Extended USB dual-personality card reader
US8998620B2 (en) * 2003-12-02 2015-04-07 Super Talent Technology, Corp. Molding method for COB-EUSB devices and metal housing package
US8102657B2 (en) * 2003-12-02 2012-01-24 Super Talent Electronics, Inc. Single shot molding method for COB USB/EUSB devices with contact pad ribs
US7872873B2 (en) 2003-12-02 2011-01-18 Super Talent Electronics, Inc. Extended COB-USB with dual-personality contacts
KR100608602B1 (ko) * 2003-12-10 2006-08-03 삼성전자주식회사 플래시 메모리, 이를 위한 사상 제어 장치 및 방법
US20050132178A1 (en) * 2003-12-12 2005-06-16 Sridhar Balasubramanian Removable flash backup for storage controllers
CN1809833B (zh) 2003-12-17 2015-08-05 雷克萨媒体公司 用于减少用于购买的电子设备的盗窃发生率的方法
JP2005190036A (ja) 2003-12-25 2005-07-14 Hitachi Ltd 記憶制御装置及び記憶制御装置の制御方法
JP4463042B2 (ja) * 2003-12-26 2010-05-12 株式会社日立製作所 ボリュームの動的割り付け機能を有する記憶装置システム
US7631138B2 (en) 2003-12-30 2009-12-08 Sandisk Corporation Adaptive mode switching of flash memory address mapping based on host usage characteristics
US7383375B2 (en) * 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
KR100526188B1 (ko) * 2003-12-30 2005-11-04 삼성전자주식회사 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리
US8504798B2 (en) 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US20050144363A1 (en) * 2003-12-30 2005-06-30 Sinclair Alan W. Data boundary management
US7433993B2 (en) * 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
WO2005067377A2 (en) * 2004-01-15 2005-07-28 M-Systems Flash Disk Pioneers Ltd. Removable medium with bookmark
BRPI0418426A (pt) * 2004-01-19 2007-05-22 Trek 2000 Int Ltd dispositivo portátil de armazenamento de dados usando uma tabela de mapeamento de endereço de memória
US7869219B2 (en) * 2004-01-20 2011-01-11 Super Talent Electronics, Inc. Flash drive with spring-loaded retractable connector
US7177200B2 (en) * 2004-02-10 2007-02-13 Msystems Ltd. Two-phase programming of a flash memory
US7716413B2 (en) * 2004-02-15 2010-05-11 Sandisk Il Ltd. Method of making a multi-bit-cell flash memory
US8019928B2 (en) * 2004-02-15 2011-09-13 Sandisk Il Ltd. Method of managing a multi-bit-cell flash memory
EP1733555A4 (de) * 2004-02-23 2009-09-30 Lexar Media Inc Sicherer kompakter flash
CN1323358C (zh) * 2004-03-05 2007-06-27 中国科学院计算技术研究所 一种虚拟存储模型及其方法
US20050213393A1 (en) 2004-03-14 2005-09-29 M-Systems Flash Disk Pioneers, Ltd. States encoding in multi-bit flash cells for optimizing error rate
US7310347B2 (en) * 2004-03-14 2007-12-18 Sandisk, Il Ltd. States encoding in multi-bit flash cells
TWI254947B (en) * 2004-03-28 2006-05-11 Mediatek Inc Data managing method and data access system for storing all management data in a management bank of a non-volatile memory
US7725628B1 (en) 2004-04-20 2010-05-25 Lexar Media, Inc. Direct secondary device interface by a host
US7325090B2 (en) 2004-04-29 2008-01-29 Sandisk Il Ltd. Refreshing data stored in a flash memory
TWI249670B (en) * 2004-04-29 2006-02-21 Mediatek Inc System and method capable of sequentially writing a flash memory
US7370166B1 (en) 2004-04-30 2008-05-06 Lexar Media, Inc. Secure portable storage device
US8352697B2 (en) * 2004-05-17 2013-01-08 Sandisk Il Ltd. Method of managing files for optimal performance
US7346401B2 (en) * 2004-05-25 2008-03-18 International Business Machines Corporation Systems and methods for providing constrained optimization using adaptive regulatory control
WO2005121968A2 (en) * 2004-06-07 2005-12-22 Wms Gaming Inc. Gaming device with resource swapping
US20060004951A1 (en) * 2004-06-30 2006-01-05 Rudelic John C Method and apparatus to alter code in a memory
KR100568115B1 (ko) * 2004-06-30 2006-04-05 삼성전자주식회사 점진적 머지 방법 및 그것을 이용한 메모리 시스템
US20080195817A1 (en) * 2004-07-08 2008-08-14 Super Talent Electronics, Inc. SD Flash Memory Card Manufacturing Using Rigid-Flex PCB
US7957189B2 (en) * 2004-07-26 2011-06-07 Sandisk Il Ltd. Drift compensation in a flash memory
US7817469B2 (en) * 2004-07-26 2010-10-19 Sandisk Il Ltd. Drift compensation in a flash memory
US8407396B2 (en) * 2004-07-30 2013-03-26 Hewlett-Packard Development Company, L.P. Providing block data access for an operating system using solid-state memory
US7386700B2 (en) 2004-07-30 2008-06-10 Sandisk Il Ltd Virtual-to-physical address translation in a flash file system
US8275969B2 (en) * 2004-08-05 2012-09-25 Sandisk Il Ltd. Storage with persistent user data
US7594063B1 (en) 2004-08-27 2009-09-22 Lexar Media, Inc. Storage capacity status
US7464306B1 (en) 2004-08-27 2008-12-09 Lexar Media, Inc. Status of overall health of nonvolatile memory
WO2006026645A2 (en) * 2004-08-30 2006-03-09 Silicon Storage Technology, Inc. Systems and methods for providing nonvolatile memory management in wireless phones
US20060059296A1 (en) * 2004-09-16 2006-03-16 M-Systems Flash Disk Pioneers, Ltd. Emulating small block size of flash memory
US7164611B2 (en) 2004-10-26 2007-01-16 Micron Technology, Inc. Data retention kill function
US7496493B1 (en) * 2004-11-09 2009-02-24 Western Digital Technologies, Inc. External memory device to provide disk device and optical functionality
EP1672487A1 (de) * 2004-12-14 2006-06-21 Sony Ericsson Mobile Communications AB Verfahren und Vorrichtung für eine effiziente Speicherverwendung
WO2006063941A2 (en) * 2004-12-14 2006-06-22 Sony Ericsson Mobile Communications Ab Method and means for an efficient memory usage
US7685400B2 (en) * 2004-12-15 2010-03-23 International Business Machines Corporation Storage of data blocks of logical volumes in a virtual disk storage subsystem
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7395404B2 (en) 2004-12-16 2008-07-01 Sandisk Corporation Cluster auto-alignment for storing addressable data packets in a non-volatile memory array
US7366826B2 (en) * 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
US7315916B2 (en) * 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
US7386655B2 (en) * 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7149111B2 (en) * 2004-12-17 2006-12-12 Msystems Ltd. Method of handling limitations on the order of writing to a non-volatile memory
US7246195B2 (en) * 2004-12-30 2007-07-17 Intel Corporation Data storage management for flash memory devices
DE102005001038B3 (de) * 2005-01-07 2006-05-04 Hyperstone Ag Verfahren zur Umsetzung von logischen in reale Blockadressen in Flashspeichern
US7308525B2 (en) * 2005-01-10 2007-12-11 Sandisk Il Ltd. Method of managing a multi-bit cell flash memory with improved reliablility and performance
US7426623B2 (en) * 2005-01-14 2008-09-16 Sandisk Il Ltd System and method for configuring flash memory partitions as super-units
US8341371B2 (en) * 2005-01-31 2012-12-25 Sandisk Il Ltd Method of managing copy operations in flash memories
US7877539B2 (en) * 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US8108691B2 (en) * 2005-02-07 2012-01-31 Sandisk Technologies Inc. Methods used in a secure memory card with life cycle phases
US8321686B2 (en) * 2005-02-07 2012-11-27 Sandisk Technologies Inc. Secure memory card with life cycle phases
US8423788B2 (en) * 2005-02-07 2013-04-16 Sandisk Technologies Inc. Secure memory card with life cycle phases
KR20080007430A (ko) * 2005-02-11 2008-01-21 샌디스크 아이엘 엘티디 Nand 플래시 메모리 시스템 체계
US7224604B2 (en) * 2005-03-14 2007-05-29 Sandisk Il Ltd. Method of achieving wear leveling in flash memory using relative grades
US8522048B2 (en) * 2005-04-14 2013-08-27 Sandisk Il Ltd. Content delivery system
US7634494B2 (en) * 2005-05-03 2009-12-15 Intel Corporation Flash memory directory virtualization
US7275140B2 (en) * 2005-05-12 2007-09-25 Sandisk Il Ltd. Flash memory management method that is resistant to data corruption by power loss
US7389397B2 (en) * 2005-06-01 2008-06-17 Sandisk Il Ltd Method of storing control information in a large-page flash memory device
US7334725B2 (en) * 2005-06-01 2008-02-26 San Disk Il Ltd. Flash memory device within a business card
JP2006338371A (ja) 2005-06-02 2006-12-14 Toshiba Corp メモリシステム
KR100827227B1 (ko) * 2005-06-24 2008-05-07 삼성전자주식회사 저성능 저장장치의 drm 권리 객체를 효율적으로관리하는 방법 및 장치
US20070005929A1 (en) * 2005-06-30 2007-01-04 Post Daniel J Method, system, and article of manufacture for sector mapping in a flash device
US7748031B2 (en) * 2005-07-08 2010-06-29 Sandisk Corporation Mass storage device with automated credentials loading
US8438647B2 (en) 2005-07-14 2013-05-07 Imation Corp. Recovery of encrypted data from a secure storage device
US8321953B2 (en) * 2005-07-14 2012-11-27 Imation Corp. Secure storage device with offline code entry
US8015606B1 (en) 2005-07-14 2011-09-06 Ironkey, Inc. Storage device with website trust indication
US8335920B2 (en) 2005-07-14 2012-12-18 Imation Corp. Recovery of data access for a locked secure storage device
US20070016721A1 (en) * 2005-07-18 2007-01-18 Wyse Technology Inc. Flash file system power-up by using sequential sector allocation
US7558906B2 (en) 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US7627733B2 (en) * 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
US7480766B2 (en) * 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US7552271B2 (en) 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7949845B2 (en) * 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
KR100739722B1 (ko) * 2005-08-20 2007-07-13 삼성전자주식회사 플래시 메모리 관리 방법 및 플래시 메모리 시스템
US7571275B2 (en) * 2005-08-31 2009-08-04 Hamilton Sundstrand Corporation Flash real-time operating system for small embedded applications
US20070067620A1 (en) * 2005-09-06 2007-03-22 Ironkey, Inc. Systems and methods for third-party authentication
US8966284B2 (en) * 2005-09-14 2015-02-24 Sandisk Technologies Inc. Hardware driver integrity check of memory card controller firmware
US8855714B2 (en) 2005-09-14 2014-10-07 Sandisk Il Ltd. Removable media player for mobile phones
US20070061597A1 (en) * 2005-09-14 2007-03-15 Micky Holtzman Secure yet flexible system architecture for secure devices with flash mass storage memory
US8291295B2 (en) * 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7631245B2 (en) * 2005-09-26 2009-12-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
TWI298836B (en) * 2005-10-12 2008-07-11 Sunplus Technology Co Ltd Apparatus for controlling flash memory and method thereof
US7681109B2 (en) * 2005-10-13 2010-03-16 Ramot At Tel Aviv University Ltd. Method of error correction in MBC flash memory
US7529905B2 (en) 2005-10-13 2009-05-05 Sandisk Corporation Method of storing transformed units of data in a memory system having fixed sized storage blocks
US7814262B2 (en) * 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
US7526715B2 (en) * 2005-10-17 2009-04-28 Ramot At Tel Aviv University Ltd. Probabilistic error correction in multi-bit-per-cell flash memory
US7509471B2 (en) * 2005-10-27 2009-03-24 Sandisk Corporation Methods for adaptively handling data writes in non-volatile memories
US7631162B2 (en) 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
ATE518190T1 (de) * 2005-12-09 2011-08-15 Sandisk Il Ltd Verfahren zur flash-speicher-verwaltung
US7877540B2 (en) * 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
US7793068B2 (en) * 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US20080276036A1 (en) * 2005-12-21 2008-11-06 Nxp B.V. Memory with Block-Erasable Location
US7769978B2 (en) * 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US8266378B1 (en) 2005-12-22 2012-09-11 Imation Corp. Storage device with accessible partitions
US8639873B1 (en) 2005-12-22 2014-01-28 Imation Corp. Detachable storage device with RAM cache
KR100755700B1 (ko) * 2005-12-27 2007-09-05 삼성전자주식회사 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 관리방법
US7519754B2 (en) 2005-12-28 2009-04-14 Silicon Storage Technology, Inc. Hard disk drive cache memory and playback device
US20070147115A1 (en) * 2005-12-28 2007-06-28 Fong-Long Lin Unified memory and controller
FR2895828B1 (fr) * 2006-01-03 2008-05-30 Thales Sa Procede de gestion de donnees destinees a etre ecrites et lues dans une memoire
US7512847B2 (en) * 2006-02-10 2009-03-31 Sandisk Il Ltd. Method for estimating and reporting the life expectancy of flash-disk memory
US7388781B2 (en) * 2006-03-06 2008-06-17 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US8848442B2 (en) * 2006-03-06 2014-09-30 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US8645793B2 (en) * 2008-06-03 2014-02-04 Marvell International Ltd. Statistical tracking for flash memory
US7823043B2 (en) * 2006-05-10 2010-10-26 Sandisk Il Ltd. Corruption-resistant data porting with multiple error correction schemes
US8042029B2 (en) 2006-05-21 2011-10-18 Ramot At Tel Aviv University Ltd. Error correction decoding by trial and error
US7583545B2 (en) * 2006-05-21 2009-09-01 Sandisk Il Ltd Method of storing data in a multi-bit-cell flash memory
US7711890B2 (en) * 2006-06-06 2010-05-04 Sandisk Il Ltd Cache control in a non-volatile memory device
US20070300031A1 (en) * 2006-06-22 2007-12-27 Ironkey, Inc. Memory data shredder
US8307148B2 (en) 2006-06-23 2012-11-06 Microsoft Corporation Flash management techniques
US7533328B2 (en) * 2006-07-04 2009-05-12 Sandisk Il, Ltd. Method of error correction in a multi-bit-per-cell flash memory
KR100764052B1 (ko) 2006-08-03 2007-10-08 삼성전자주식회사 유동적 어드레스 바운더리를 갖는 플래시 메모리 장치 및그것의 프로그램 방법
US20080046641A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
US20080046630A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
US20080052524A1 (en) * 2006-08-24 2008-02-28 Yoram Cedar Reader for one time password generating device
US20080072058A1 (en) * 2006-08-24 2008-03-20 Yoram Cedar Methods in a reader for one time password generating device
WO2008026466A1 (fr) * 2006-08-31 2008-03-06 Sharp Kabushiki Kaisha Système de fichiers
KR100802059B1 (ko) * 2006-09-06 2008-02-12 삼성전자주식회사 읽기 디스터브로 인한 배드 블록의 생성을 억제할 수 있는메모리 시스템 및 그것의 동작 방법
US7886204B2 (en) * 2006-09-27 2011-02-08 Sandisk Corporation Methods of cell population distribution assisted read margining
US7716538B2 (en) * 2006-09-27 2010-05-11 Sandisk Corporation Memory with cell population distribution assisted read margining
US7761623B2 (en) * 2006-09-28 2010-07-20 Virident Systems, Inc. Main memory in a system with a memory controller configured to control access to non-volatile memory, and related technologies
US9984012B2 (en) 2006-09-28 2018-05-29 Virident Systems, Llc Read writeable randomly accessible non-volatile memory modules
US8051253B2 (en) * 2006-09-28 2011-11-01 Virident Systems, Inc. Systems and apparatus with programmable memory control for heterogeneous main memory
US8074022B2 (en) * 2006-09-28 2011-12-06 Virident Systems, Inc. Programmable heterogeneous memory controllers for main memory with different memory modules
US20080082750A1 (en) * 2006-09-28 2008-04-03 Okin Kenneth A Methods of communicating to, memory modules in a memory channel
US7761625B2 (en) * 2006-09-28 2010-07-20 Virident Systems, Inc. Methods for main memory with non-volatile type memory modules, and related technologies
US7761624B2 (en) * 2006-09-28 2010-07-20 Virident Systems, Inc. Systems and apparatus for main memory with non-volatile type memory modules, and related technologies
US7761626B2 (en) * 2006-09-28 2010-07-20 Virident Systems, Inc. Methods for main memory in a system with a memory controller configured to control access to non-volatile memory, and related technologies
US8949555B1 (en) 2007-08-30 2015-02-03 Virident Systems, Inc. Methods for sustained read and write performance with non-volatile memory
KR100849221B1 (ko) 2006-10-19 2008-07-31 삼성전자주식회사 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치
KR100771519B1 (ko) * 2006-10-23 2007-10-30 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법
US8189328B2 (en) 2006-10-23 2012-05-29 Virident Systems, Inc. Methods and apparatus of dual inline memory modules for flash memory
US7814263B2 (en) * 2006-10-26 2010-10-12 Sandisk Il Ltd. Erase history-based flash writing method
KR100789406B1 (ko) 2006-11-03 2007-12-28 삼성전자주식회사 플래시 메모리 시스템 및 그것의 가비지 컬렉션 방법
US7913055B2 (en) * 2006-11-04 2011-03-22 Virident Systems Inc. Seamless application access to hybrid main memory
KR100816761B1 (ko) * 2006-12-04 2008-03-25 삼성전자주식회사 낸드 플래시 메모리 및 에스램/노어 플래시 메모리를포함하는 메모리 카드 및 그것의 데이터 저장 방법
US8578127B2 (en) * 2009-09-09 2013-11-05 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US8706968B2 (en) * 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
US8151082B2 (en) * 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
KR20090087119A (ko) 2006-12-06 2009-08-14 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) 빈 데이터 토큰 지시어를 사용한 저장 장치 내의 데이터 관리 장치, 시스템 및 방법
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US8443134B2 (en) * 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
US8161353B2 (en) * 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
KR100845552B1 (ko) 2006-12-18 2008-07-10 (재)대구경북과학기술연구원 Ftl의 어드레스 매핑 방법
US7814401B2 (en) * 2006-12-21 2010-10-12 Ramot At Tel Aviv University Ltd. Soft decoding of hard and soft bits read from a flash memory
US8370561B2 (en) * 2006-12-24 2013-02-05 Sandisk Il Ltd. Randomizing for suppressing errors in a flash memory
US8127200B2 (en) * 2006-12-24 2012-02-28 Sandisk Il Ltd. Flash memory device and system with randomizing for suppressing errors
US8423794B2 (en) * 2006-12-28 2013-04-16 Sandisk Technologies Inc. Method and apparatus for upgrading a memory card that has security mechanisms for preventing copying of secure content and applications
US8885384B2 (en) 2007-01-11 2014-11-11 Chengdu Haicun Ip Technology Llc Mask-programmed read-only memory with reserved space
KR100885181B1 (ko) 2007-02-06 2009-02-23 삼성전자주식회사 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법
US7966355B2 (en) 2007-02-13 2011-06-21 Modu Ltd. Interface for extending functionality of memory cards
US8370562B2 (en) * 2007-02-25 2013-02-05 Sandisk Il Ltd. Interruptible cache flushing in flash memory systems
US20080222349A1 (en) * 2007-03-07 2008-09-11 Ocz Technology Group Inc. Ieee 1394 interface-based flash drive using multilevel cell flash memory devices
CN100461134C (zh) * 2007-03-27 2009-02-11 华为技术有限公司 一种外部存储器控制器及基于外部存储器控制器的地址变换的方法
US7477547B2 (en) * 2007-03-28 2009-01-13 Sandisk Corporation Flash memory refresh techniques triggered by controlled scrub data reads
US7573773B2 (en) * 2007-03-28 2009-08-11 Sandisk Corporation Flash memory with data refresh triggered by controlled scrub data reads
JP4636046B2 (ja) * 2007-03-29 2011-02-23 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US7808834B1 (en) 2007-04-13 2010-10-05 Marvell International Ltd. Incremental memory refresh
US7689762B2 (en) * 2007-05-03 2010-03-30 Atmel Corporation Storage device wear leveling
US8254134B2 (en) 2007-05-03 2012-08-28 Super Talent Electronics, Inc. Molded memory card with write protection switch assembly
US7850468B2 (en) 2007-06-28 2010-12-14 Super Talent Electronics, Inc. Lipstick-type USB device
US7789680B2 (en) * 2007-07-05 2010-09-07 Super Talent Electronics, Inc. USB device with connected cap
US8102658B2 (en) * 2007-07-05 2012-01-24 Super Talent Electronics, Inc. Micro-SD to secure digital adaptor card and manufacturing method
CN101094183B (zh) * 2007-07-25 2011-12-07 杭州华三通信技术有限公司 一种缓存管理方法及装置
US8031526B1 (en) 2007-08-23 2011-10-04 Marvell International Ltd. Write pre-compensation for nonvolatile memory
US7944702B2 (en) 2007-08-27 2011-05-17 Super Talent Electronics, Inc. Press-push flash drive apparatus with metal tubular casing and snap-coupled plastic sleeve
US8189381B1 (en) 2007-08-28 2012-05-29 Marvell International Ltd. System and method for reading flash memory cells
US8085605B2 (en) 2007-08-29 2011-12-27 Marvell World Trade Ltd. Sequence detection for flash memory with inter-cell interference
US9921896B2 (en) 2007-08-30 2018-03-20 Virident Systems, Llc Shutdowns and data recovery to avoid read errors weak pages in a non-volatile memory system
JP4746598B2 (ja) * 2007-09-28 2011-08-10 株式会社東芝 半導体記憶装置
US7970983B2 (en) * 2007-10-14 2011-06-28 Sandisk Il Ltd. Identity-based flash management
US8024545B2 (en) 2007-10-19 2011-09-20 Inha-Industry Partnership Institute Efficient prefetching and asynchronous writing for flash memory
US8241047B2 (en) * 2007-10-30 2012-08-14 Super Talent Electronics, Inc. Flash drive with spring-loaded swivel connector
US20090138673A1 (en) * 2007-11-28 2009-05-28 Apple Inc. Internal memory mapped external memory interface
US8116083B2 (en) * 2007-12-04 2012-02-14 Super Talent Electronics, Inc. Lipstick-type USB device with tubular housing
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US8195912B2 (en) * 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US8316277B2 (en) * 2007-12-06 2012-11-20 Fusion-Io, Inc. Apparatus, system, and method for ensuring data validity in a data storage process
US7934052B2 (en) * 2007-12-27 2011-04-26 Pliant Technology, Inc. System and method for performing host initiated mass storage commands using a hierarchy of data structures
KR101386489B1 (ko) * 2008-01-14 2014-04-21 삼성전자주식회사 메모리 장치 및 멀티 비트 프로그래밍 방법
US8892831B2 (en) 2008-01-16 2014-11-18 Apple Inc. Memory subsystem hibernation
US8417893B2 (en) 2008-02-04 2013-04-09 Apple Inc. Memory mapping techniques
US8856464B2 (en) * 2008-02-12 2014-10-07 Virident Systems, Inc. Systems for two-dimensional main memory including memory modules with read-writeable non-volatile memory devices
WO2009102821A2 (en) * 2008-02-12 2009-08-20 Virident Systems, Inc. Methods and apparatus for two-dimensional main memory
US8438343B2 (en) 2008-02-29 2013-05-07 Kabushiki Kaisha Toshiba Memory system with fixed and variable pointers
KR101437123B1 (ko) * 2008-04-01 2014-09-02 삼성전자 주식회사 메모리 시스템 및 그것의 마모도 관리 방법
US8156392B2 (en) * 2008-04-05 2012-04-10 Fusion-Io, Inc. Apparatus, system, and method for bad block remapping
US20100017558A1 (en) * 2008-04-11 2010-01-21 Richard Matthew Fruin Memory device operable in read-only and re-writable modes of operation
CA2629960C (en) * 2008-04-28 2009-12-08 Westport Power Inc. Apparatus and method for improving the accuracy of measurements taken with a capacitance-type sensor
US8356105B2 (en) * 2008-05-02 2013-01-15 Marblecloud, Inc. Enterprise device policy management
EP2297742B1 (de) 2008-05-16 2013-07-24 Fusion-io, Inc. Vorrichtung, system und verfahren zum detektieren und ersetzen von ausgefallenem datenspeicher
JP2009282678A (ja) * 2008-05-21 2009-12-03 Hitachi Ltd フラッシュメモリモジュール及びストレージシステム
KR101497074B1 (ko) * 2008-06-17 2015-03-05 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법
US8745314B1 (en) 2008-06-24 2014-06-03 Virident Systems, Inc. Methods for a random read and read/write block accessible memory
US9513695B2 (en) 2008-06-24 2016-12-06 Virident Systems, Inc. Methods of managing power in network computer systems
TWI370969B (en) 2008-07-09 2012-08-21 Phison Electronics Corp Data accessing method, and storage system and controller using the same
US8417902B2 (en) * 2008-08-05 2013-04-09 Atmel Corporation One-time-programmable memory emulation
JP4909963B2 (ja) * 2008-09-09 2012-04-04 株式会社東芝 統合メモリ管理装置
US7962801B2 (en) * 2008-10-15 2011-06-14 Silicon Motion, Inc. Link table recovery method
KR101510120B1 (ko) * 2008-11-21 2015-04-10 삼성전자주식회사 메모리 장치 및 메모리 장치의 관리 방법
US8316201B2 (en) * 2008-12-18 2012-11-20 Sandisk Il Ltd. Methods for executing a command to write data from a source location to a destination location in a memory device
US9612954B2 (en) 2008-12-31 2017-04-04 Micron Technology, Inc. Recovery for non-volatile memory after power loss
US8589700B2 (en) 2009-03-04 2013-11-19 Apple Inc. Data whitening for writing and reading data to and from a non-volatile memory
US20100228906A1 (en) * 2009-03-06 2010-09-09 Arunprasad Ramiya Mothilal Managing Data in a Non-Volatile Memory System
US8065469B2 (en) * 2009-04-20 2011-11-22 Imation Corp. Static wear leveling
US8176295B2 (en) 2009-04-20 2012-05-08 Imation Corp. Logical-to-physical address translation for a removable data storage device
TWI457940B (zh) * 2009-05-15 2014-10-21 Macronix Int Co Ltd 區塊為基礎快閃記憶體之位元組存取
US8281227B2 (en) * 2009-05-18 2012-10-02 Fusion-10, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US8307258B2 (en) * 2009-05-18 2012-11-06 Fusion-10, Inc Apparatus, system, and method for reconfiguring an array to operate with less storage elements
US8468293B2 (en) 2009-07-24 2013-06-18 Apple Inc. Restore index page
US8516219B2 (en) 2009-07-24 2013-08-20 Apple Inc. Index cache tree
US8745365B2 (en) * 2009-08-06 2014-06-03 Imation Corp. Method and system for secure booting a computer by booting a first operating system from a secure peripheral device and launching a second operating system stored a secure area in the secure peripheral device on the first operating system
US8683088B2 (en) 2009-08-06 2014-03-25 Imation Corp. Peripheral device data integrity
US20110041039A1 (en) * 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
US20110040924A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Detecting a Transmission Error Over a NAND Interface Using Error Detection Code
US8612718B2 (en) * 2009-08-19 2013-12-17 Seagate Technology Llc Mapping alignment
US20110055471A1 (en) * 2009-08-28 2011-03-03 Jonathan Thatcher Apparatus, system, and method for improved data deduplication
US8688894B2 (en) * 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
KR101717644B1 (ko) 2009-09-08 2017-03-27 샌디스크 테크놀로지스 엘엘씨 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법
KR101689420B1 (ko) 2009-09-09 2016-12-23 샌디스크 테크놀로지스 엘엘씨 저장 장치의 전력 감소 관리를 위한 장치, 시스템, 및 방법
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
US8601222B2 (en) 2010-05-13 2013-12-03 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US8255655B2 (en) * 2009-10-02 2012-08-28 Sandisk Technologies Inc. Authentication and securing of write-once, read-many (WORM) memory devices
US8489803B2 (en) * 2009-12-14 2013-07-16 Smsc Holdings S.A.R.L. Efficient use of flash memory in flash drives
US8443263B2 (en) * 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
US8595411B2 (en) * 2009-12-30 2013-11-26 Sandisk Technologies Inc. Method and controller for performing a sequence of commands
US9396104B1 (en) 2010-03-22 2016-07-19 Seagate Technology, Llc Accessing compressed data of varying-sized quanta in non-volatile memory
US8416624B2 (en) 2010-05-21 2013-04-09 SanDisk Technologies, Inc. Erase and programming techniques to reduce the widening of state distributions in non-volatile memories
KR20120003283A (ko) * 2010-07-02 2012-01-10 삼성전자주식회사 데이터 저장 장치 및 그것의 배드 블록 관리 방법
EP2598996B1 (de) 2010-07-28 2019-07-10 SanDisk Technologies LLC Vorrichtung, system und verfahren für bedingte speichervorgänge auf nichtflüchtigen speichern
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US8452914B2 (en) * 2010-11-26 2013-05-28 Htc Corporation Electronic devices with improved flash memory compatibility and methods corresponding thereto
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US8527693B2 (en) 2010-12-13 2013-09-03 Fusion IO, Inc. Apparatus, system, and method for auto-commit memory
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
WO2012083308A2 (en) 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
WO2012100087A2 (en) 2011-01-19 2012-07-26 Fusion-Io, Inc. Apparatus, system, and method for managing out-of-service conditions
CN102609214A (zh) * 2011-01-21 2012-07-25 鸿富锦精密工业(深圳)有限公司 将biosrom模拟成磁盘的的系统及方法
WO2012106362A2 (en) 2011-01-31 2012-08-09 Fusion-Io, Inc. Apparatus, system, and method for managing eviction of data
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
US8966191B2 (en) 2011-03-18 2015-02-24 Fusion-Io, Inc. Logical interface for contextual storage
JP2012203443A (ja) * 2011-03-23 2012-10-22 Toshiba Corp メモリシステムおよびメモリシステムの制御方法
JP2012226822A (ja) 2011-04-15 2012-11-15 Samsung Electronics Co Ltd 不揮発性メモリ装置
US20120317377A1 (en) * 2011-06-09 2012-12-13 Alexander Palay Dual flash translation layer
TWI521343B (zh) 2011-08-01 2016-02-11 Toshiba Kk An information processing device, a semiconductor memory device, and a semiconductor memory device
US8687421B2 (en) 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US9251052B2 (en) 2012-01-12 2016-02-02 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
US10102117B2 (en) 2012-01-12 2018-10-16 Sandisk Technologies Llc Systems and methods for cache and storage device coordination
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
US8629689B1 (en) * 2012-05-18 2014-01-14 Altera Corporation Integrated circuit with improved interconnect routing and associated methods
US9021336B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for redundantly storing error correction codes in a flash drive with secondary parity information spread out across each page of a group of pages
US8972824B1 (en) 2012-05-22 2015-03-03 Pmc-Sierra, Inc. Systems and methods for transparently varying error correction code strength in a flash drive
US8793556B1 (en) 2012-05-22 2014-07-29 Pmc-Sierra, Inc. Systems and methods for reclaiming flash blocks of a flash drive
US9021337B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive
US9021333B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for recovering data from failed portions of a flash drive
US9176812B1 (en) 2012-05-22 2015-11-03 Pmc-Sierra, Inc. Systems and methods for storing data in page stripes of a flash drive
US9183085B1 (en) 2012-05-22 2015-11-10 Pmc-Sierra, Inc. Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency
US8788910B1 (en) 2012-05-22 2014-07-22 Pmc-Sierra, Inc. Systems and methods for low latency, high reliability error correction in a flash drive
US8996957B1 (en) 2012-05-22 2015-03-31 Pmc-Sierra, Inc. Systems and methods for initializing regions of a flash drive having diverse error correction coding (ECC) schemes
US9047214B1 (en) 2012-05-22 2015-06-02 Pmc-Sierra, Inc. System and method for tolerating a failed page in a flash device
US20130326114A1 (en) * 2012-05-30 2013-12-05 Seagate Technology Llc Write mitigation through fast reject processing
US9128820B1 (en) 2012-06-18 2015-09-08 Western Digital Technologies, Inc. File management among different zones of storage media
KR102147359B1 (ko) 2012-06-29 2020-08-24 삼성전자 주식회사 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9064575B2 (en) * 2012-08-03 2015-06-23 Micron Technology, Inc. Determining whether a memory cell state is in a valley between adjacent data states
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US9733907B2 (en) 2012-10-30 2017-08-15 Oracle International Corporation System and method for testing compiler implementation using dynamic combinatorial test generation
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9478271B2 (en) * 2013-03-14 2016-10-25 Seagate Technology Llc Nonvolatile memory data recovery after power failure
US9009565B1 (en) 2013-03-15 2015-04-14 Pmc-Sierra, Inc. Systems and methods for mapping for solid-state memory
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US9208018B1 (en) 2013-03-15 2015-12-08 Pmc-Sierra, Inc. Systems and methods for reclaiming memory for solid-state memory
US9026867B1 (en) 2013-03-15 2015-05-05 Pmc-Sierra, Inc. Systems and methods for adapting to changing characteristics of multi-level cells in solid-state memory
US9081701B1 (en) 2013-03-15 2015-07-14 Pmc-Sierra, Inc. Systems and methods for decoding data for solid-state memory
US9053012B1 (en) 2013-03-15 2015-06-09 Pmc-Sierra, Inc. Systems and methods for storing data for solid-state memory
US9558108B2 (en) 2013-04-15 2017-01-31 Macronix International Co., Ltd. Half block management for flash storage devices
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
CN103324553B (zh) * 2013-06-21 2016-08-24 华为技术有限公司 数据恢复方法、系统及装置
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US10019352B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for adaptive reserve storage
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
CN103713857B (zh) * 2013-12-24 2017-06-27 华为技术有限公司 存储数据的方法及存储装置
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9230689B2 (en) 2014-03-17 2016-01-05 Sandisk Technologies Inc. Finding read disturbs on non-volatile memories
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US10552085B1 (en) 2014-09-09 2020-02-04 Radian Memory Systems, Inc. Techniques for directed data migration
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US10114562B2 (en) 2014-09-16 2018-10-30 Sandisk Technologies Llc Adaptive block allocation in nonvolatile memory
US9552171B2 (en) 2014-10-29 2017-01-24 Sandisk Technologies Llc Read scrub with adaptive counter management
US9978456B2 (en) 2014-11-17 2018-05-22 Sandisk Technologies Llc Techniques for reducing read disturb in partially written blocks of non-volatile memory
US9349479B1 (en) 2014-11-18 2016-05-24 Sandisk Technologies Inc. Boundary word line operation in nonvolatile memory
US9627072B2 (en) 2014-11-25 2017-04-18 Macronix International Co., Ltd. Variant operation sequences for multibit memory
US9449700B2 (en) 2015-02-13 2016-09-20 Sandisk Technologies Llc Boundary word line search and open block read methods with reduced read disturb
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US10009438B2 (en) 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration
US10185513B1 (en) 2015-06-05 2019-01-22 Life365, Inc. Device configured for dynamic software change
US10552058B1 (en) 2015-07-17 2020-02-04 Radian Memory Systems, Inc. Techniques for delegating data processing to a cooperative memory controller
CN106547480B (zh) * 2015-09-17 2019-04-12 慧荣科技股份有限公司 数据储存装置及其数据读取方法
US9653154B2 (en) 2015-09-21 2017-05-16 Sandisk Technologies Llc Write abort detection for multi-state memories
US10185666B2 (en) 2015-12-15 2019-01-22 Facebook, Inc. Item-wise simulation in a block cache where data eviction places data into comparable score in comparable section in the block cache
US20170168956A1 (en) * 2015-12-15 2017-06-15 Facebook, Inc. Block cache staging in content delivery network caching system
US10126962B2 (en) 2016-04-22 2018-11-13 Microsoft Technology Licensing, Llc Adapted block translation table (BTT)
US9817593B1 (en) 2016-07-11 2017-11-14 Sandisk Technologies Llc Block management in non-volatile memory system with non-blocking control sync system
US9881682B1 (en) 2016-11-23 2018-01-30 Seagate Technology Llc Fine grained data retention monitoring in solid state drives
CN108733576B (zh) * 2017-04-20 2022-12-09 得一微电子股份有限公司 一种固态硬盘及其内存转换层对映方法
US10318416B2 (en) * 2017-05-18 2019-06-11 Nxp B.V. Method and system for implementing a non-volatile counter using non-volatile memory
IT201700057287A1 (it) * 2017-05-26 2018-11-26 St Microelectronics Srl Procedimento per gestire schede a circuito integrato, scheda ed apparecchiatura corrispondenti
KR102521746B1 (ko) 2017-12-18 2023-04-13 에스케이하이닉스 주식회사 메모리 장치의 주소 맵핑을 관리하는 반도체 장치 및 이를 포함하는 데이터 저장 장치
KR20190120573A (ko) * 2018-04-16 2019-10-24 에스케이하이닉스 주식회사 메모리 시스템, 데이터 처리 시스템 및 메모리 시스템의 동작 방법
JP2021023748A (ja) * 2019-08-09 2021-02-22 株式会社島津製作所 X線透視撮影装置
US11175984B1 (en) 2019-12-09 2021-11-16 Radian Memory Systems, Inc. Erasure coding techniques for flash memory
US11586385B1 (en) 2020-05-06 2023-02-21 Radian Memory Systems, Inc. Techniques for managing writes in nonvolatile memory
TWI842009B (zh) * 2022-07-08 2024-05-11 瑞昱半導體股份有限公司 資料存取方法及資料存取系統

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4511964A (en) * 1982-11-12 1985-04-16 Hewlett-Packard Company Dynamic physical memory mapping and management of independent programming environments
JPH0271342A (ja) * 1988-09-07 1990-03-09 Oki Electric Ind Co Ltd メモリ管理装置
JPH0314042A (ja) * 1989-06-13 1991-01-22 Fujitsu Ltd データベースにおける資源管理方式
EP0473767A1 (de) * 1990-03-23 1992-03-11 Eastman Kodak Company Anordnung zum verwalten und zuordnen von virtuellen speichern für eine digitale datenverarbeitungsanlage
US5193184A (en) * 1990-06-18 1993-03-09 Storage Technology Corporation Deleted data file space release system for a dynamically mapped virtual data storage subsystem
US5210866A (en) * 1990-09-12 1993-05-11 Storage Technology Corporation Incremental disk backup system for a dynamically mapped data storage subsystem
JP2584119B2 (ja) * 1990-09-28 1997-02-19 富士写真フイルム株式会社 メモリカードにおけるデータ記録方法およびメモリカードシステム
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
JP2582487B2 (ja) * 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 半導体メモリを用いた外部記憶システム及びその制御方法
JP3407317B2 (ja) * 1991-11-28 2003-05-19 株式会社日立製作所 フラッシュメモリを使用した記憶装置
JP3178909B2 (ja) * 1992-01-10 2001-06-25 株式会社東芝 半導体メモリ装置
JPH0695955A (ja) * 1992-09-09 1994-04-08 Ricoh Co Ltd フラッシュ・ファイル・システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010063773A1 (de) * 2010-12-21 2012-07-12 Endress + Hauser Wetzer Gmbh + Co. Kg Feldgerät mit einem semi-permanenten elektronischen Speicher und Verfahren zum Betreiben eines solchen Feldgerätes

Also Published As

Publication number Publication date
KR960701402A (ko) 1996-02-24
IL108766A0 (en) 1994-05-30
JPH08510072A (ja) 1996-10-22
FI954235L (fi) 1995-11-08
JP2003085037A (ja) 2003-03-20
AU6269994A (en) 1994-09-26
US5404485A (en) 1995-04-04
TW264547B (de) 1995-12-01
JP3997130B2 (ja) 2007-10-24
EP0688450A4 (de) 1995-10-20
FI105726B (fi) 2000-09-29
IL108766A (en) 1996-12-05
DE69414556D1 (de) 1998-12-17
WO1994020906A1 (en) 1994-09-15
EP0688450A1 (de) 1995-12-27
EP0688450B1 (de) 1998-11-11
FI954235A0 (fi) 1995-09-08
CN1098526A (zh) 1995-02-08
CN1078364C (zh) 2002-01-23
ZA941446B (en) 1994-09-26
KR100292011B1 (ko) 2001-09-17

Similar Documents

Publication Publication Date Title
DE69414556T2 (de) Schnell loeschbare datei
DE69623720T2 (de) Verfahren zum Aufräumen eines Flash-Speichers mit Übersetzungsschicht
DE69527594T2 (de) Flashspeicherkarte
DE69623407T2 (de) Verfahren zur Überprüfung der Blockzuordnung eines Flash-Speichers mit Übersetzungsschicht
DE69612752T2 (de) Speicheranordnung
DE60030876T2 (de) Bereichsverwaltung eines nichtflüchtigen Speichers mit hoher Kapazität
DE69226847T2 (de) Datenverwaltungssystem für Halbleiterspeicher mit beschränkter Programmierung und I.C.-Speicherkarte mit solchem Datenverwaltungssystem
DE19615948C2 (de) Flash-Festkörper-Plattenspeicher-Karte
DE19782041B4 (de) Verfahren zum Durchführen eines kontinuierlichen Überschreibens einer Datei in einem nicht-flüchtigen Speicher
DE3856090T2 (de) Aus Einheitsfunktionsgruppen aufgebaute Dateienspeicherungszuordnungstabellen für Dateienspeichereinheiten grosser Kapazität
DE69534527T2 (de) Verfahren zur Verwendung von nicht-aneinandergrenzenden reservierten Speicherplatz zur Datenmigration in einem hierarchischen redundanten Datenspeichersystem
DE69635962T2 (de) Flash-Speicher-Massenspeichersystem und Verfahren dafür
DE69801112T2 (de) Dateispeicherverwaltungssystem für schnappschusskopieroperationen
DE69333906T2 (de) Verfahren und System für die Dateienverwaltung mit einem schnell löschbaren, programmierbaren ROM
DE60319407T2 (de) Verfolgen der am häufigsten gelöschten blöcke eines nichtflüchtigen speichersystems
DE68920895T2 (de) System zur Steuerung von Aufnahmebereichen auf einer beschreibbaren optischen Platte.
DE60019903T2 (de) Speichersystem
DE60316171T2 (de) Automatischer abnutzungsausgleich in einem nicht-flüchtigen speichersystem
DE60035780T2 (de) Schaltung für plattenantriebskontroller und verfahren zur überschlagung von defekten oder ungewünschten sektoren
DE68913605T2 (de) Verfahren zur Handhabung defekter Sektoren auf einem plattenförmigen Informations-Aufzeichnungsträger und Gerät zur Durchführung des Verfahrens.
DE69534363T2 (de) Verfahren um Festplatten zu einer Festplattenanordnung hinzuzufügen und gleichzeitig die Datenerreichbarkeit zu gewährleisten
EP2401680B1 (de) Verfahren zur verwaltung von flashspeichern mit gemischten speichertypen
DE102005031525A1 (de) Verfahren und System zur Steuerung eines Flashspeichers und Speichersystem
DE102006005876A1 (de) Flashspeicher-Steuervorrichtung, Vorrichtung zum Steuern eines Flashspeichers, Flashspeicher-System und Verfahren zum Verwalten von Abbildungsdaten eines Flashspeichers
DE4022885C2 (de) Verfahren zum Verschieben von Speicherbereichen und Hierarchie-Speichersystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: M-SYSTEMS INC., MELVILLE, N.Y., US

Owner name: SANDISK IL LTD., TEL AVIV, IL