DE4143072C2 - Blockweise löschbarer nicht-flüchtiger Halbleiterspeicher - Google Patents
Blockweise löschbarer nicht-flüchtiger HalbleiterspeicherInfo
- Publication number
- DE4143072C2 DE4143072C2 DE4143072A DE4143072A DE4143072C2 DE 4143072 C2 DE4143072 C2 DE 4143072C2 DE 4143072 A DE4143072 A DE 4143072A DE 4143072 A DE4143072 A DE 4143072A DE 4143072 C2 DE4143072 C2 DE 4143072C2
- Authority
- DE
- Germany
- Prior art keywords
- sector
- address
- data
- block
- flash memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
Description
Die Erfindung bezieht sich auf einen nicht-flüchtigen Halb
leiterspeicher, der blockweise löschbar ist, sowie auf ein
einen solchen Speicher aufweisendes Computersystem.
Gewisse Arten bekannter Personal-Computersysteme enthalten
einen Mikroprozessor (im folgenden auch als Zentraleinheit,
zentrale Verarbeitungseinheit oder CPU bezeichnet), der mit
verschiedenen Arten von Speichersystemen, nämlich einem Nur-
Lese-Speicher (ROM), einem Direktzugriffsspeicher (RAM), einem
Festplattenlaufwerk als Massenspeicher und wenigstens einem
Floppy-Disk-Laufwerk zur Speicherung auf auswechselbaren magne
tischen Disketten gekoppelt ist. Diese bekannten Personal-Com
putersysteme haben in typischer Ausführung eine Architektur,
welche dem eigenen Speicher der bekannten Personal-Computer
systeme angepaßt ist.
Ein ROM wird in Verbindung mit einem als ROM-Monitor
bezeichneten und im ROM gespeicherten Programm als Firmware
bezeichnet. Ein ROM-Modul eines Basis-Eingabe/Ausgabe-Systems
("BIOS") ist eine Art von ROM-Monitor, der im ROM gespeichert
wird und als Betriebssystem für gewisse Personal-Computer
dient. Der ROM-BIOS-Modul enthält in typischer Ausführung (1)
Treiber für bestimmte Hardware, einschließlich der Tastatur,
der Plattenlaufwerke und des Druckers; (2) ein nach Einschalten
wirksames Eigentestprogramm ("POST"); (3) eine Startroutine,
welche das System initialisiert; und (4) ein Ladeprogramm, wel
ches den Boot- oder ersten Sektor von einer Diskette oder ein
Festplatte liest.
Nach dem Einschalten des Personal-Computers wird das POST-
Programm des BIOS-Moduls ausgeführt; die BIOS-Startroutine
führt gewisse Initialisierungen durch; und das Ladeprogramm
liest den Inhalt des Boot-Sektors von einer Diskette oder einer
Festplatte. Dieser Boot-Sektor enthält ein Ladeprogramm für das
Betriebssystem des Computers. Das Ladeprogramm des Betriebs
systems lädt seinerseits einen Teil des Betriebssystems von
einer Diskette oder einer Festplatte in den RAM.
Das Betriebssystem für den Personal-Computer verarbeitet
Befehle, steuert die Programmausführung und überwacht die Hard
ware- und Software-Ressourcen des Computersystems. Ein Typ
eines bekannten Betriebssystems ist MS-DOS der Firma Microsoft
Corporation, Redmond, Washington. Das MS-DOS-Betriebssystem
enthält das oben beschriebene Ladeprogramm, das MS-DOS-BIOS,
ein MS-DOS-Kernel, eine Benutzerschnittstelle und Dienstpro
gramme.
Das MS-DOS-BIOS enthält (1) neue Treiber, welche Komponen
ten der Treiber des ROM-BIOS erweitern und benutzen; (2) eine
Initialisierungsroutine für die MS-DOS-BIOS-Treiber; und (3)
ein weiteres Ladeprogramm.
Die neuen Treiber für das MS-DOS-BIOS werden auch als BIOS-
Erweiterungen oder BIOS-ROM-Erweiterungen bezeichnet. Bei eini
gen bekannten Personal-Computern werden alle Eingabe- und Aus
gabe-Funktionen durch Software gesteuert, welche in einem 32-
Kilobyte- oder 64-Kilobyte-Abschnitt des ROM enthalten ist, und
durch kleinere (typischerweise 2 Kilobyte große) BIOS-ROM-
Erweiterungen.
Die Initialisierungsroutine für die MS-DOS-BIOS-Treiber
zeigt einen Copyright-Hinweis an und stellt die Unterbrechungs
tabelle für die neuen Treiber ein.
Das Ladeprogramm des MS-DOS-BIOS lädt den Rest des
Betriebssystems.
Das MS-DOS-Kernel ist eine Shell zwischen dem BIOS und dem
Anwenderprogramm. Das MS-DOS-Kernel initiiert die Ausführung
des Anwenderprogramms, ordnet Speicher für Anwenderprogramme
zu, bildet eine Anwenderprogramm-Schnittstelle zwischen dem
Anwenderprogramm und der Hardware und steuert das Lesen und
Schreiben der Dateien.
Die Benutzerschnittstelle von MS-DOS liefert Informationen
an den Benutzer. Die Benutzerschnittstelle liefert eine Anfor
derungsmeldung, welche den Benutzer zur Befehlseingabe auffor
dert. Die Benutzerschnittstelle wirkt als Systemmanager, wenn
das Betriebssystem die Kontrolle hat.
Die Dienstprogramme von MS-DOS liefern bestimmte zweckmäßi
ge Funktionen für MS-DOS. Diese Funktionen umfassen (1) das
Formatieren einer Diskette oder einer Festplatte und (2) das
Prüfen einer Diskette oder Festplatte.
Die Festplatte und Disketten, wie sie bei dem oben bezeich
neten Personal-Computersystem verwendet werden, sind nicht-
flüchtige Speichersysteme, d. h. Mittel, welche ihre gespeicher
ten Daten weder bei Unterbrechung des Betriebsstroms des Compu
ters noch bei Ausschalten des Computers verlieren. Die Fest
platte und Disketten sind Arten von Blockspeichergeräten, was
bedeutet, daß Daten auf sie und von ihnen in Blöcken übertragen
werden.
Bei Festplatten und Disketten werden Daten physikalisch auf
konzentrischen Spuren gespeichert. Jede Spur besteht aus einer
Vielzahl von Sektoren. Ein Sektor hat typischerweise eine Länge
von 512 Bytes. Eine Plattensteuereinrichtung und ein physikali
scher Gerätetreiber eines Personal-Computersystems führen das
Schreiben auf und Lesen von Platten typischerweise in Sektor
einheiten durch.
Bei MS-DOS ist ein Cluster die kleinste logisch adressier
bare Speichereinheit. Bei einigen Festplatten gibt es vier Sek
toren pro Cluster. Bei einigen anderen Festplatten und bei
einer 3,5"-Diskette hoher Dichte ist ein Cluster ein einziger
Sektor.
Jede partitionierte Zone einer Festplatte bildet ein logi
sches Untersystem, welches sein eigenes Betriebssystem enthal
ten kann. Eine Partitionstabelle im ersten Sektor einer forma
tierten Festplatte enthält Informationen über die Partitionen.
Eine Festplatte und eine Diskette werden formatiert, bevor
sie das erste Mal in Benutzung genommen werden. Bei einer For
matierung auf niedrigem Niveau wird jede Spur in Sektoren
unterteilt, und es werden Identifizierungs(ID)-Sektor-Anfangs
etiketten an einheitlichen Positionen um die Spur angeordnet.
Ein Formatieren auf hohem Niveau etabliert die Cluster, initia
lisiert einige Plattenbereiche und bereitet die Platte zur
Datenaufnahme vor.
Auf dem Gerätetreiber- und dem BIOS-Niveau werden Platten
anforderungen durch ein "Tupel" beschrieben, welches das Lauf
werk, den Kopf, die Zylinder-Spur, den Sektor und die Länge
angibt. Die logischen Sektornummern sind auf der DOS-Ebene und
der BIOS-Ebene bekannt. DOS liest von den und schreibt auf die
Platten in Clustereinheiten.
Fig. 1 zeigt die logische Organisation eines bekannten MS-
DOS-Betriebssystems. Für das MS-DOS-Betriebssystem wird eine
Platte 2 in zwei logische Bereiche unterteilt: einen System
bereich 4 und einen Datenbereich 9. Der Systembereich enthält
eine Bootaufzeichnung 3, eine Dateizuordnungstabelle ("FAT") 5
und einen Wurzel-Verzeichnisbereich 7, welcher die Wurzelver
zeichniseinträge enthält. Der Datenbereich 9 enthält Dateien,
die zum Speichern von Anwendungsprogrammen, Daten und Unterver
zeichnisinformationen dienen.
Die Bootaufzeichnung 3 enthält ein Bootstrap-Ladeprogramm
zum Laden des Betriebssystems. Die Bootaufzeichnung 3 enthält
auch Informationen bezüglich des ASCII-Namens des formatieren
den DOS, die Anzahl von Bytes pro Sektor der Platte, die Anzahl
von Sektoren pro Cluster, die Anzahl von Sektoren in der Boot
aufzeichnung, die Anzahl von Kopien des Datei-Zuordnungstabel
leneintrags (oder Clusters), die Anzahl von Wurzelverzeich
niseinträgen, die Anzahl von Sektoren pro Partition, die Plat
tentypennummer, die Nummer von Sektoren pro Dateizuordnungs
tabelle, die Anzahl von Sektoren pro Spur, die Anzahl von Sei
ten pro Diskette bzw. Platte, die Anzahl von reservierten oder
versteckten Sektoren, die physikalische Laufwerknummer, eine
erweiterte Bootsektorsignatur, eine Volumenidentifizierung und
eine Volumentabelle.
Das Wurzelverzeichnis 7 ist eine Tabelle von 32-Byte-Ein
trägen, die jeweils gewisse Attribute der Datei angeben. Typi
scherweise enthält jeder das Wurzelverzeichnis 7 bildende Ver
zeichniseintrag einen Dateinamen, eine Dateierweiterung, Attri
butflags, Zeit- und Datumsangaben für die Datei, die Nummer des
Startclusters für die die Datei bildenden Cluster und die
Dateigröße.
Jede Datei auf der Platte ist aus einem oder mehreren Clu
stern aufgebaut. Die Dateizuordnungstabelle 5 enthält eine Auf
zeichnung in Form einer Kette zur Beschreibung der die die
Datei bildenden Cluster verknüpfenden Kette. Ein typisches FAT
5 enthält eine Liste von 2-Byte-Einträgen, eine für jedes Clu
ster. Bei einigen bekannten FAT's sind die FAT-Einträge länger
als zwei Bytes. Die Länge jedes FAT-Eintrages hängt von der
Gesamtanzahl von Clustern ab. Der Verzeichniseintrag für eine
Datei enthält die Nummer des Startclusters für die Datei, und
das Betriebssystem verwendet die Startclusternummer zum Zugriff
auf die Datei-Zuordnungstabelle. Jeder FAT-Eintrag ist ein Zei
ger auf den nächsten Cluster der Datei. Daher enthält der FAT-
Eintrag, die mit dem ersten Zugriff gewonnen wird, die Cluster
nummer für das die Datei bildende nächst Cluster. Das Betriebs
system verwendet diese nächste Clusternummer für den Zugriff
auf das FAT zur Gewinnung wiederum einer anderen Clusternummer
und setzt diesen Prozeß solange fort, bis ein spezieller Marker
in der FAT 5 erreicht ist.
Die Dateistruktur auf der Platte ist baumartig. Einträge im
Wurzelverzeichnis können Zeiger auf Unterverzeichnisse sein.
Die Unterverzeichnisse können ineinandergesetzt sein.
Ein mit der Verwendung von Festplatten und Disketten bei
einigen Arten bekannter Personal-Computer verbundener Nachteil
besteht darin, daß Festplattenlaufwerke und Floppy-Disk-Lauf
werke physikalisch relativ große Geräte mit einer Reihe mecha
nischer Komponenten sind. Erhebliche Baugrößen stehen im Gegen
satz zu den gedrängt angeordneten integrierten Schaltungen,
welche andere Teile eines Personal-Computer ausmachen. Außerdem
verhindern erhebliche Baugrößen bekannter Festplatten- und
Floppy-Disk-Laufwerke einer weiteren Miniaturisierung tragbarer
Personal-Computer.
Andere Nachteile bekannter Festplatten- und Floppy-Disk-
Laufwerke bestehen darin, daß sie im Vergleich zu integrierten
Schaltungen in anderen Teilen des Personal-Computers einen
relativ hohen Energiebedarf haben.
Bekannte Festplatten- und Floppy-Disk-Laufwerke haben auch
den Nachteil, daß sie störungsanfällig sind, wenn sie übermäßi
gen Stoß- und Vibrationsbeanspruchungen oder Staub oder anderen
atmosphärischen Kontaminationen ausgesetzt sind.
Eine andere Art eines bekannten nicht-flüchtigen Computer
speichers ist der elektrisch-löschbare, programmierbare Flash-
Nur-Lese-Speicher ("Flash-EEPROM"). Der Flash-EEPROM kann vom
Benutzer programmiert werden und hält nach der Programmierung
bis zum erneuten Löschen seine Daten fest. Ein elektrisches
Löschen des Flash-EEPROMs löscht den gesamten Inhalt des Spei
chers in einer relativ raschen Operation. Der Flash-EEPROM kann
danach mit einem neuen Code programmiert werden.
Ein Nachteil dieser Art von bekanntem Speicher liegt darin,
daß nicht jede einzelne Bitzelle von einer logischen Null in
eine logische Eins ohne vorhergehendes Löschen überschrieben
werden kann. Ein anderer Nachteil der bekannten Ausführungen
von Flash-EEPROMs besteht darin, daß er in großen Blöcken
gelöscht, d. h. in einen logischen Eins-Zustand rückgesetzt wer
den muß, oder nur insgesamt gelöscht werden kann.
Ein anderer Nachteil eines bekannten Flash-EEPROMs besteht
in der begrenzten Anzahl von Löschmöglichkeiten und Schreib
zyklen vor dem Ausfall des Flash-EEPROMs.
Diese Beschränkungen bezüglich Überschreiben und Löschen
haben die Brauchbarkeit und die Einsatzmöglichkeiten bekannter
Flash-EEPROMs bei Personal-Computersystemen bisher beträchtlich
eingeschränkt.
Aus der EP 0 392 895 A2 ist ein Flash-EEPROM-System
bekannt, das zur Nachbildung eines Plattenlaufwerks dient. Die
ses System umfaßt eine Zuordnungstabelle zur Umsetzung logi
scher Adressen in physikalische EEPROM-Adressen. Der Flash-
EEPROM ist in Blöcke unterteilt, die die Größe eines Festplat
tensektors aufweisen.
Der Erfindung liegt die Aufgabe zugrunde, eine Plattenemu
lation für einen blockweise löschbaren nicht-flüchtigen Halb
leiterspeicher zur Verfügung zu stellen. Insbesondere soll ein
reservierter Block zum Optimieren der Integrität und Zuverläs
sigkeit der Dateistruktur verfügbar gemacht werden.
Gelöst wird diese Aufgabe durch einen nicht-flüchtigen
Halbleiterspeicher mit den Merkmalen des Patentanspruchs 1 bzw.
ein Computersystem mit den Merkmalen des Patentanspruchs 10.
Der nicht-flüchtige Halbleiterspeicher weist einen aktiven
Block zum Speichern erster Daten und einen Reserveblock zum
Speichern zweiter Daten auf. Die zweiten Daten sind eine Kopie
der ersten Daten. Die Kopie wird während einer Aufräumoperation
(clean-up operation) vor dem Löschen des aktiven Blocks herge
stellt. Der nicht-flüchtige Halbleiterspeicher weist auch eine
Abbildungstabelle zum Abbilden einer logischen Adresse einer
Zuordnungseinheit auf eine physikalische Adresse eines Sektors
innerhalb des nicht-flüchtigen Halbleiterspeichers auf. Andere
vorteilhafte Merkmale und Weiterbildungen der Erfindung ergeben
sich aus den Unteransprüchen und der nun folgenden Beschreibung
von in der Zeichnung dargestellten Ausführungsbeispielen.
In der Zeichnung zeigen:
Fig. 1 die logische Organisation eines bekannten
Betriebssystems;
Fig. 2 ein Personal-Computersystem mit einer Flash-
Anordnung und einem Dateisystemtreiber, der im
RAM des Computersystems gespeichert ist;
Fig. 3 ein Personal-Computersystem mit (1) einer
Flash-Speicheranordnung, (2) einem im ROM-BIOS
und der ROM-BIOS-Erweiterung enthaltenen
Dateisystemtreiber und (3) einem RAM-Puffer zur
Dateiübertragung und zur Aktualisierung einer
Dateitabelle;
Fig. 4 ein Personal-Computersystem mit (1) einer Flash-
Speicheranordnung, (2) einem im ROM-BIOS
und der ROM-BIOS-Erweiterung gespeicherten Da
teisystemtreiber und (3) einem separaten Sy
stemsteuergerät;
Fig. 5 eine abgebildete Eingabe/Ausgabe-
Flash-Speicheranordnung;
Fig. 6 eine Seitenabbildungs-Flash-Speicherfeldstruk
tur;
Fig. 7 eine Flash-Speicherfeldstruktur mit direkter
Speicherabbildung;
Fig. 8 einen Flash-EEPROM mit einer Sektoren-Datei
struktur und einer Cluster-Abbildungstabelle;
Fig. 9 ein Beispiel einer Cluster-Abbildungstabelle
für ein Flash-Speicherfeld;
Fig. 10 ein Beispiel einer verknüpften Liste innerhalb
der Cluster-Abbildungstabelle der Fig. 9;
Fig. 11 ein Beispiel für die Arbeitsweise der Cluster-
Abbildungstabelle;
Fig. 12 ein Beispiel einer Sicherungskopie einer Clu
ster-Abbildungstabelle; und
Fig. 13 ein Beispiel einer Sektor-Abbildungstabelle.
Fig. 2 zeigt einen Personal-Computer 10 mit einem bevorzug
ten Dateisystem oder einer Dateistruktur 32. Das Dateisystem 32
weist einen oder mehrere Flash-EEPROMs auf, welche eine Flash-
Speicheranordnung 34 bilden. Ein Flash-EEPROM ist eine Art von
Halbleiterspeicher. Das Dateisystem 32 weist auch einen Soft
ware-Dateisystemtreiber 28 auf, der im System-RAM 22 gespei
chert ist. Das Personal-Computersystem 10 weist auch eine zen
trale Recheneinheit (CPU) 12 und einen Bus 18 auf.
Wie weiter unten genauer beschrieben werden wird, ist die
Flash-Speicheranordnung 34 so ausgebildet, daß sie entweder ein
Festplatten- oder ein Floppy-Disk-Laufwerk zu emulieren vermag.
Der System-RAM 22 enthält Raum zur Speicherung des Anwen
derprogramms 24. Bei einem Ausführungsbeispiel der Erfindung
hat der System-RAM 22 eine Größe von 1 MByte. Der System-RAM 22
hat auch Raum zur Speicherung von anderen Anwendungsprogrammen
und für Daten. Bei einem Ausführungsbeispiel der Erfindung ent
hält der System-RAM 22 ein Betriebssystem 26 für das Computer
system 10. Bei alternativen Ausführungsbeispielen enthält der
System-RAM 22 außerdem zwei oder mehr Betriebssysteme.
Der System-RAM enthält auch die Dateisystem-Treibersoftware
28. Diese Treibersoftware 28 definiert die Dateistruktur für
die Flash-Speicheranordnung 34. Der Dateisystemtreiber 28 und
die Dateistruktur für eine Flash-Speicheranordnung werden wei
ter unten genauer beschrieben.
Anwendungsprogramm 24, Betriebssystem 26 und Dateitreiber
28 sind nicht nur im RAM 22, sondern auch in der Flash-Spei
cheranordnung 34 gespeichert, und zwar in letzterer sowohl in
den Einschalt- als auch in den Ausschaltphasen des Computers
10. Die Flash-Speicheranordnung 34 kann mehr als ein Anwen
dungsprogramm, mehr als ein Betriebssystem und auch mehr als
einen Dateitreiber speichern. Die Flash-Speicheranordnung 34
speichert auch Informationsdateien und Verzeichnisinformatio
nen. Sowohl beim Warmstart als auch beim Kaltstart wird der
Dateisystemtreiber 28 in den System-RAM 22 aus der Flash-Spei
cheranordnung 34 geladen. Kurz gesagt, wirkt die Flash-Spei
cheranordnung als Massenspeichergerät, welches eine Festplatte
ersetzt.
Das Computersystem 10 weist auch ein ROM 14 auf, der BIOS-
Software für den Computer 10 speichert. Bei einem Ausführungs
beispiel der Erfindung enthält das im ROM 14 gespeicherte BIOS
sowohl ein 64-Kilobyte-BIOS als auch zusätzliche BIOS-ROM-Er
weiterungen von jeweils 2 Kilobytes. Die Dateisystem-Treiber
software 28 wird vor der Ausführung in der Flash-Speicheranord
nung 34 und nicht im ROM 14 gespeichert.
Bei Ausführung des ROM-BIOS-Programms 14 nach der Stromein
schaltung des Computers 10 werden der Dateitreiber 28 und das
Betriebssystem 26 in den System-RAM 22 über den Bus 18 aus der
Flash-Speicheranordnung 34 geladen. Der Benutzer des Computers
10 bedient sich danach des Betriebssystems 26 zum Laden des An
wendungsprogramms 24 in den RAM 22. Der Benutzer des Computers
10 kann auch Daten, andere Anwendungsprogramme und andere Be
triebssysteme in den System-RAM 22 laden.
Bei einem Ausführungsbeispiel der Erfindung wird die Flash-
Speicheranordnung 34 in Blöcken gelöscht, wobei jeder Block
eine große Anzahl von Bits enthält. Bei einem alternativen Aus
führungsbeispiel wird die Flash-Speicheranordnung 34 in ihrer
Gesamtheit gelöscht.
Flash-Speicher unterscheiden sich von konventionellen elek
trisch löschbaren, programmierbaren Nur-Lese-Speichern
(EEPROMs) durch die Art ihrer Löschung. Konventionelle EEPROMs
verwenden einen Ansteuerungstransistor zur Steuerung einer in
dividuellen Byte-Löschoperation. Andererseits erreichen Flash-
Speicher eine viel höhere Dichte mit Einzeltransistorzellen.
Während des Löschmodus wird eine hohe Spannung an die Source-
Elektroden jeder Speicherzelle in einem Block oder im gesamten
Chip gleichzeitig angelegt. Dies führt zur Löschung einer gan
zen Speicheranordnung, eines Speicherfeldes oder eines ganzen
Blockes.
Bei der Flash-Speicheranordnung 34 bedeutet eine logische
"Eins", daß - wenn überhaupt - nur wenige Elektronen auf einer
einer Bitzelle zugeordneten schwebenden Gate-Elektrode
(Floating-Gate-Elektrode) gespeichert werden. Eine logische
"Null" bedeutet, daß viele Elektronen auf der der Bitzelle zu
geordneten schwebenden Gate-Elektrode gespeichert sind. Nach
dem Löschen der Flash-Speicheranordnung 23 ist eine logische
Eins in jeder Bitzelle der Speicheranordnung 23 gespeichert.
Jede einzelne Bitzelle des Flash-Speicherfeldes 23 läßt sich
nicht ohne vorhergehende Löschoperation von einer logischen
Null in eine logische Eins überschreiben. Die einzelnen Bitzel
len einer Flash-Speicheranordnung 23 kann dagegen von einer lo
gischen Eins in eine logische Null überschrieben werden, sofern
diese Operation die einfache Addition von Elektronen auf eine
schwebende Gate-Elektrode umfaßt, welche die dem Löschungszu
stand eigene Anzahl von Elektronen enthält.
Eine Flash-Speicheranordnung 34 kann auf eine von drei Ar
ten programmiert werden: (1) jeweils ein Einzelbit; (2) jeweils
ein Einzelwort oder (3) jeweils Wortgruppen. Ein Wort besteht
aus einer Mehrzahl von Speicherbits, die einer einzigen Spei
chersystemadresse oder einem einzigen Bauelement zugeordnet
sind. Die gleichzeitig programmierten Wortgruppen können die
Größe eines Löschblocks der Flash-Speicheranordnung 34 haben.
Programmieroperationen bei Flash-Speichern werden auch als
Schreiboperationen bezeichnet.
Wie oben gesagt, kann ein Einzelbit einer Flash-Speicheran
ordnung 34 nicht von einem logischen Null-Zustand in einen lo
gischen Eins-Zustand ohne vorhergehendes Löschen überschrieben
werden. Die Notwendigkeit der Löschung vor einem Überschreiben
von einer logischen Null in eine logische Eins führt eine einem
Flash-Speicher zugeordnete funktionelle Arbeitsweise ein.
Die Flash-Speicheranordnung 34 speichert sowohl einen aus
führbaren Code als auch nicht-ausführbare Daten. In der nach
folgenden Detailbeschreibung wird der Begriff "Daten" zur Be
zeichnung (1) nicht-ausführbarer Daten allein oder (2) sowohl
eines ausführbaren Codes als auch nicht-ausführbarer Daten ver
wendet.
Die einer Flash-Speicheranordnung 34 zugeordnete Leseopera
tion ist einer Leseoperation bei anderen Nur-Lese-Speichergerä
ten sehr ähnlich. Bei einem Ausführungsbeispiel benötigt eine
Leseoperation für eine Flash-Speicheranordnung 34 in der
Größenordnung von 135 Nanosekunden. Schreib- und Leseoperatio
nen für eine Flash-Speicheranordnung 34 sind jedoch beträcht
lich langsamer. Bei einem Ausführungsbeispiel der Erfindung
sind Löschzeiten für einen Block einer Flash-Speicheranordnung
34 in der Größenordnung von einer Sekunde. Schreiboperationen
für ein Einzelwort benötigen bei der Flash-Speicheranordnung 34
in der Größenordnung von 10 Mikrosekunden. Daher sind die Lese-,
Schreib- und Löschoperationen bei einer Flash-Speicheranord
nung 34 von asymmetrischer Art, d. h. die Schreib- und Löschope
rationen sind beträchtlich langsamer als die Leseoperationen.
Außerdem hat jeder Flash-Speicher der Flash-Speicheranord
nung 34 eine begrenzte Lebensdauer bezüglich der Lösch- und
Schreib- (d. h. Programmier-)operationen. Bei einem Ausführungs
beispiel kann die Flash-Speicheranordnung 34 ein Minimum von
10000 Lösch/Programmier-Zyklen durchlaufen, bevor die Flash-
Speicheranordnung 34 auszufallen droht oder eine wesentliche
Verschlechterung der Lösch/Schreib-Funktion droht. Daher ist
ein Ausführungsbeispiel der Erfindung bezüglich der Anzahl zu
verlässig durchführbarer Lösch/Schreib-Zyklen der Flash-Spei
cheranordnung 34 begrenzt. Andererseits gibt es keine Begren
zung der Lebensdauer in bezug auf die Zahl der Leseoperationen
der Flash-Speicheranordnung 34.
Bei einem Ausführungsbeispiel der Erfindung hat jedes die
Flash-Speicheranordnung 34 enthaltende Flash-Speichergerät meh
rere Löschblöcke. Bei diesem Ausführungsbeispiel gibt es ge
wisse Beschränkungen bei den Lösch/Programmier-Zyklen benach
barter Blöcke. Benachbarte Blöcke sind solche Blöcke, die ent
weder Zeilenverbindungen oder Spaltenverbindungen gemeinsam be
nutzen. Die Beschränkungen der Zyklen benachbarter Blöcke die
nen dazu, elektrische Störbedingungen von Daten zu verhindern.
Ein häufigeren Zyklen unterworfener Block wird als heißer
Block bezeichnet. Ein keinen oder selteneren Zyklen unterworfe
ner Block wird als kalter Block bezeichnet. Der wesentliche Pa
rameter ist die Differenz zwischen der Anzahl von Zyklen, die
jeweils benachbarten Blocks zugeordnet sind. Ein heißer Block
kann ggf. eine solche Zykluszählung erreichen, daß Daten in ei
nem kalten Block des Flash-Speicherfeldes 34 beeinträchtigt
werden. Eine Möglichkeit der Vermeidung einer solchen Heiß-
Kalt-Block-Wechselwirkung besteht darin, heiße Blöcke der
Flash-Speicheranordnung 34 Zyklusbeschränkungen zu unterwerfen.
Eine andere Möglichkeit zur Minimierung ungünstiger Einflüsse
aufgrund der Heiß-Kalt-Block-Wechselwirkung besteht darin, die
kalten Blöcke der Flash-Speicheranordnung 34 periodisch zu lö
schen und neu zu programmieren. Das periodische Löschen und Um
programmieren kalter Blöcke wird als Regeneration kalter Blöcke
bezeichnet.
Wie weiter unten genauer beschrieben werden wird, berück
sichtigen die bevorzugten Dateistrukturen nach der vorliegenden
Erfindung die oben erläuterten Funktionscharakteristiken von
Flash-EEPROMs, aus denen die Flash-Speicheranordnung 34 aufge
baut ist.
Fig. 3 zeigt ein Personal-Computersystem 40 mit einer be
vorzugten Ausführungsform einer Dateistruktur 58. Das Personal-
Comutersystem 40 weist eine zentrale Recheneinheit 12 und einen
ROM 42 auf. Der ROM 42 speichert BIOS-Software 43 und BIOS-Er
weiterungssoftware 44. Das Personal-Computersystem 40 weist
auch einen Bus 48 und einen System-RAM 52 auf. Der System-RAM
52 speichert das Anwendungsprogramm 24 und das Betriebssystem
26. Das Personal-Computersystem 40 enthält auch einen RAM-Puf
fer 62 und eine Flash-Speicheranordnung 64.
Der RAM-Puffer 62 sorgt für die Pufferung zur Übertragung
von Dateien zwischen der Flash-Speicheranordnung 64 und dem Sy
stem-RAM 52. Der RAM-Puffer 62 sorgt auch für eine Pufferung
bei dem Aufbau oder der Aktualisierung eines Verzeichnisses für
die in der Flash-Speicheranordnung 64 gespeicherten Dateien.
Mindestens ein Flash-EEPROM bildet die Flash-Speicheranord
nung 64. Letztere speichert das Anwendungsprogramm 24, das Be
triebssystem 26, Daten, andere Anwendungsprogramme und andere
Betriebssysteme. Das Betriebssystem 26, das Anwendungsprogramm
24 und andere Programme und Daten können von der Flash-Spei
cheranordnung 64 über einen Bus 48 zum System-RAM 52 übertragen
werden.
Die Dateistruktur 58 enthält die Flash-Speicheranordnung
64, den RAM-Puffer 62, die ROM-BIOS-Erweiterungssoftware 44 und
einen Teil der ROM-BIOS-Software 43.
Die Dateisystem-Treibersoftware, welche die Dateistruktur
für die Flash-Speicheranordnung 64 definiert, bildet einen Teil
der ROM-BIOS-Software 43 und der ROM-BIOS-Erweiterungssoftware
44 im ROM 42. Bei dem in Fig. 3 gezeigten Ausführungsbeispiel
ist der Systemtreiber ein integraler Teil der Firmware des Per
sonal-Computersystems 40. BIOS 43 und BIOS-Erweiterung 44 sind
Speicherblöcke, welche entweder direkt abgebildet (direct-map
ped) oder seitenweise umgelagert (paged) werden. Daher ist bei
dem in Fig. 3 dargestellten Ausführungsbeispiel die Dateisy
stem-Treibersoftware weder im System-RAM 52 noch in der Flash-
Speicheranordnung 64 gespeichert.
Bei dem Ausführungsbeispiel gemäß Fig. 3 ist eine Erweite
rung des BIOS-Interrupts 13H als Teil der BIOS/ROM-Erweiterung
44 vorgesehen. Diese 13H-Interrupt-Erweiterung wird während der
Initialisierung in den Standard-13H-Interrupt-Vektor geschaltet.
BIOS-Anforderungen, die nicht an die Flash-Spei
cheranordnung 64 gerichtet sind, werden an den alten BIOS-In
terrupt-13H-Verarbeiter übertragen.
Fig. 4 zeigt ein Personal-Computersystem 70 mit wiederum
einer anderen bevorzugten Dateistruktur 94. Das Personal-Com
putersystem 70 weist eine zentrale Recheneinheit 12 und einen
System-RAM 72 auf. Bei einem bevorzugten Ausführungsbeispiel
enthält der System-RAM 72 ein Anwendungsprogramm 24 und ein Be
triebssystem 26. Das Personal-Computersystem 70 weist auch
einen Bus 88 und einen ROM 78 auf. Letzterer enthält BIOS-Soft
ware 79 und BTOS-Erweiterungssoftware 80.
Das Personal-Computersystem 70 weist auch ein Steuergerät
92 und eine Flash-Speicheranordnung 96 auf. Letztere ist aus
Flash-EEPROMs aufgebaut. Die Flash-Speicheranordnung 96 spei
chert das Anwendungsprogramm 24, das Betriebssystem 26, Daten,
andere Anwendungsprogramme und andere Betriebssysteme, welche
in den System-RAM 72 über den Bus 88 geladen werden können.
Dateistruktur 94 besteht aus dem Steuergerät 92, der Flash-
Speicheranordnung 96, der ROM-BIOS-Erweiterung 80 und einem
Teil des ROM-BIOS 79.
Das in Fig. 4 gezeigte Personal-Computersystem 70 hat eine
vollständig Hardware-getriebene Dateistruktur für die Flash-
Speicheranordnung 96. Das Steuergerät 92 ist speziell für die
Definition und Steuerung der Dateistruktur für die Flash-Spei
cheranordnung 96 vorgesehen. Das Steuergerät 92 weist einen Mi
krocontroller 100 zur Überwachung der Steuerung auf.
Das Steuergerät 92 weist auch eine Steuerlogik 106 auf. Bei
einem bevorzugten Ausführungsbeispiel der Erfindung enthält die
Steuerlogik 106 eine programmierbare Logikanordnung (PLA). Die
Logikschaltung 106 enthält die Digitallogik, welche die Opera
tion des Steuergeräts 92 steuert.
Bei einem Ausführungsbeispiel weist das Steuergerät 92
einen ROM 98 auf, welcher die Dateisystem-Treibersoftware spei
chert. Die Dateisystem-Treibersoftware ist von einem Mikrocon
troller 100 ausführbar und definiert die Dateistruktur für die
Flash-Speicheranordnung 96.
Bei einem alternativen Ausführungsbeispiel ist die ausführ
bare und die Dateistruktur für die Flash-Speicheranordnung 96
definierende Dateisystem-Treibersoftware ein Bestandteil der
ROM-BIOS-Software 79 und der BIOS-ROM-Erweiterungssoftware 80.
Das Steuergerät 92 enthält einen Puffer-RAM 102. Puffer-RAM 102
bewirkt die Pufferung zur Übertragung von Dateien und zur Er
zeugung und Aktualisierung von Verzeichnissen.
Das Steuergerät 92 enthält auch einen Puffer/Multiplexer
104. Der Puffer/Multiplexer 104 bewirkt die Pufferung zur Da
teiübertragung. Der Puffer/Multiplexer 104 multiplext auch von
und zu der Flash-Speicheranordnung 96 übertragene Daten.
Die der Puffer-Multiplexer-Schaltung 104 zugeordnete Logik
kann zu irgendeinem Standard-Systembus-Interface passen. Die
dem Puffer-Multiplexer 104 zugeordnete Logik kann beispiels
weise mindestens einem der folgenden Standards angepaßt sein:
PC XT, PC AT (d. h. IDE-Industrie-Standardarchitektur), EISA (d. h. erweiterte Industrie-Standardarchitektur), MCA (d. h. Micro-Channel-Architektur), VME (d. h. Virtual Machine Environ ment) und Multibus.
PC XT, PC AT (d. h. IDE-Industrie-Standardarchitektur), EISA (d. h. erweiterte Industrie-Standardarchitektur), MCA (d. h. Micro-Channel-Architektur), VME (d. h. Virtual Machine Environ ment) und Multibus.
Bei einem Ausführungsbeispiel der Erfindung ist das Steuer
gerät 92 im Personal-Computersystem 70 enthalten. So kann das
Steuergerät 92 beispielsweise auf eine in der Zeichnung nicht
dargestellten Systemplatine innerhalb des Personal-Computers 70
angeordnet sein.
Bei einem alternativen Ausführungsbeispiel kann das Steuer
gerät 92 ein Eingabe/Ausgabe(I/O)-Gerät sein, welches zum Per
sonal-Computersystem 70 extern oder in einem Erweiterungssteck
platz (nicht gezeigt) des Personal-Computersystems 70 angeord
net ist. Bei diesem alternativen Ausführungsbeispiel kann die
dem Puffer/Multiplexer 104 zugeordnete Logik zu irgendeinem
Standard-I/O-Interface passen. Beispielsweise kann der Puf
fer/Multiplexer 104 zu wenigstens einem der folgenden I/O-
Schnittstellen passen: IDE, ST506, SCSI (d. h. Small Computer
System Interface) und SA400 (d. h. ein Floppy-Disk-Standard).
Bei dem alternativen Ausführungsbeispiel kommuniziert daher der
Personal-Computer 70 über eine der o. g. Standard-I/O-Schnitt
stellen mit dem Steuergerät 92.
Das Personal-Computersystem 40 der Fig. 3 und das Personal-
Computersystem 70 der Fig. 4 weisen jeweils Hardware auf, wel
che der Steuerung der Dateistruktur der zugehörigen Flash-Spei
cheranordnung dient. Bei dem Personal-Computersystem 40 ist
diese zusätzliche Hardware der RAM-Puffer 62. Bei dem Personal-
Computersystem 70 ist diese zusätzliche Hardware das Steuerge
rät 92. Der RAM-Puffer 62 der Fig. 3 und das Steuergerät 92 der
Fig. 4 schaffen die Voraussetzung dafür, daß sich eine Speiche
rung des Dateisystem-Steuercodes im System-RAM 52, in der
Flash-Speicheranordnung 64, im System-RAM 72 oder in der Flash-
Speicheranordnung 96 jeweils erübrigt.
Der RAM-Puffer 62 und das Steuergerät 92 dienen jeweils
auch der Datenpufferung, damit der System-RAM 52 der Fig. 2 und
der Sytem-RAM 72 der Fig. 4 nicht als Datenpuffer für die Da
teistrukturen 58 bzw. 94 dienen müssen. Außerdem bedeutet die
Einbeziehung des Datenpuffers 62 in das Personal-Computersystem
40 und des Steuergeräts 92 in das Personal-Computersystem 70,
daß der System-RAM 52 und der System-RAM 72 nicht als Notizbe
reiche für die Dateistrukturen in den Flash-Speicheranorndung
64 bzw. 96 zu dienen brauchen.
Der RAM-Puffer 62 in Fig. 3 und das Steuergerät 92 in Fig.
4 ermöglichen es, daß die Dateistruktur 58 und die Dateistruk
tur 96 jeweils als einen bootfähigen Speicherbereich aufweisend
angesehen werden können, wobei der Speicherbereich Bestandteil
der primären Systemhardware für den jeweiligen Personal-Compu
ter ist. Im Ergebnis bewirken der RAM-Puffer 62 und das Steuer
gerät 92 eine Verbesserung der Gesamtbetriebsweise der Datei
strukturen der Flash-Speicheranordnungen für die jeweiligen
Personal-Computersysteme.
Die verschiedenen Konfigurationen der in den Fig. 2-4
gezeigten Personal-Computer 10, 40 und 70 führen zu unter
schiedlichen Computercharakteristiken. Im Computersystem 10 der
Fig. 2 wird der Dateitreiber 28 durch die zentrale Rechenein
heit 12 als eine Vordergrund-Task-Softwareroutine ausgeführt,
welche alle Dateimanagementaufgaben zum Management der Flash-
Speicheranordnung 34 verarbeitet. Der Dateisystemtreiber 28
übernimmt einen Teil des System-RAM 22, jedoch kann die Größe
des System-RAM 22 beschränkt sein. Wenn das Betriebssystem 26
des Personal-Computersystems 10 beispielsweise MS-DOS ist, so
kann der System-RAM 22 auf ein Megabyte "Real-Modus"-Kapazität
beschränkt sein.
Bei dem Computersystem 40 gemäß Fig. 3 ist die Dateisystem-
Treibersoftware, welche die Dateistruktur für die Flash-Spei
cheranordnung 64 definiert, Bestandteil der ROM-BIOS-Software
43 und der ROM-BIOS-Erweiterungssoftware 44 im ROM 42. Die
Größe des Speicherraums im ROM 42 kann jedoch beschränkt sein.
Beispielsweise werden bei bestimmten MS-DOS-kompatiblen Perso
nal-Computern alle Eingabe-Ausgabe-Funktionen durch Firmware
getrieben, welche in einem 64 Kilobyte BIOS-Abschnitt des ROM
mit kleineren BIOS-ROM-Erweiterungen von jeweils 2 Kilobyte
enthalten ist. Die System-Driversoftware kann den im ROM 42
verfügbaren Raum übersteigen, wenn der ROM 42 von geringer
Größe ist.
Demgegenüber speichert das Hardware-Steuergerät 92 für das
Computersystem 70 den Dateitreiber, und dadurch werden die
Speicherbedürfnisse bezüglich Flash-Speicheranordnung 96, ROM
78 und System-RAM 72 reduziert. Darüberhinaus vereinfacht das
Hardware-Steuergerät 92 die Dateisystem-Steuerbefehle. Bei
spielsweise setzt das Hardware-Steuergerät 92 die Dateisystem-
Steuerbefehle in Prozeßaufrufe auf hohem Niveau um, die mittels
eines auf den in einem anderen Speicherraum befindlichen Code
hinweisenden Namens (Labels) über Software zugreifbar sind. Bei
einem Ausführungsbeispiel der Erfindung sind die vereinfachten
Dateisystem-Steuerbefehle oder die Dateitreiber-Steuerbefehle
im ROM 98 des Hardware-Steuergeräts 92 als konventioneller
BIOS-artiger Steuercode gespeichert. Dies wiederum macht es
möglich, daß das Dateisystem 94 als grundsätzlich bootfähiges
Gerät erkennbar ist. Dies führt zu vereinfachten Dateisystem
aufrufen. Jeder Dateisystemaufruf führt zu der Ausführung des
Dateisystemtreibers (der auch als Dateisystem-Steuercode be
zeichnet wird).
Bei einem Ausführungsbeispiel wird jeder Dateisystemaufruf
für ein Computersystem 70 der Fig. 3 direkt von der CPU 12 aus
geführt, welche Befehle aus dem Haupt-BIOS und direkt abgebil
deten BIOS-Erweiterungen, die im ROM 78 gespeichert sind, holt.
Bei einem anderen Ausführungsbeispiel wird jeder Dateisystem
aufruf von der CPU 12 aus Speicherseiten ausgeführt, welche
sich in BIOS-Erweiterungsspeicherblöcken im ROM 98 befinden.
Bei wiederum einem anderen Ausführungsbeispiel wird jeder Da
teisystemaufruf vom Mikrocontroller 100 aus dem Dateisystem
treiber ausgeführt, der im ROM 98 des Hardware-Steuergeräts 92
gespeichert ist.
Bei einem bevorzugten Ausführungsbeispiel reduziert das
Hardware-Steuergerät 92 jede dateibezogene Aufgabe (Task) auf
einen einzigen Befehl aus der CPU 12 des Leitrechners, wodurch
ein Betrag zur Entlastung der Host-CPU 12 geleistet wird. Das
Steuergerät akzeptiert Daten, die mit Geschwindigkeiten ent
sprechend einem RAM-Speicher eingehen, indem es die einlaufen
den Daten im lokalen RAM-Pufferraum 102 hält. Das Hardware-
Steuergerät 92 beendet jede gegebene Task automatisch, führt
jedoch nur eine Operation pro Zeiteinheit aus.
Außerdem gibt das Steuergerät 92 der CPU 12 die Möglich
keit, jede Dateisystem-Task für einen unmittelbaren Datenzu
griff zu unterbrechen. Dies bedingt die zusätzliche RAM-Puffe
rung jeder gültigen Dateiinformation, die sich anderenfalls in
einem unzugreifbaren Block befinden könnte. Ein unzugreifbarer
Block ist ein solcher, der in einer Schreib- oder einer
Löschoperation involviert ist. Das Steuergerät 92 nimmt nach
der Unterbrechung die ursprüngliche Task wieder auf. Bei einem
Ausführungsbeispiel der Erfindung reiht das Hardware-Steuerge
rät 92 eine vorgegebene Anzahl gleichzeitiger Schreibaufgaben
aneinander.
Wiederum bei einem Ausführungsbeispiel überwacht das Steu
ergerät 92 die Flash-Speicheranordnung 96 nach verfügbaren
freien Raum und Heiß/Kalt-Blockzyklus-Fehlabgleichen. Das Hard
ware-Steuergerät 92 initiiert im Bedarfsfalle auch automatisch
eine Umverteilungsoperation bezüglich des Flash-Speichers 96.
Eine Umverteilungsoperation gleicht die Zyklusverteilung unter
Blöcken der Flash-Speicheranordnung 96 aus. Die Umverteilungs
operation wird vom Hardware-Steuergerät im Bedarfsfall automa
tisch initiiert, und zwar nach Art einer vollständigen Hinter
grundaufgabe (background-task).
Das Hardware-Steuergerät 92 initiiert auch eine Aufräumope
ration in bezug auf die Flash-Speicheran
ordnung 96, um für die Speicherung im Flash-Speicher 96 Platz
zu schaffen. Die Aufräumoperation wird im Bedarfsfalle vom
Hardware-Steuergerät 92 eingeleitet und nach Art einer voll
ständigen Hintergrund-Task durchgeführt. Die Aufräumoperation
wird weiter unten genauer beschrieben werden.
Um dem Dateisystem-Hardwaresteuergerät 92 die Möglichkeit
einer kontinuierlichen Überwachung der Flash-Speicheranordnung
96 nach verfügbaren freien Raum und nach Heiß/Kalt-Blockzyklus-
Ungleichmäßigkeiten zu geben und um automatisch Aufräum- oder
Umverteilungsoperationen einzuleiten, sollte der Flash-Speicher
96 (1) in dem Personal-Computersystem 70 resident sein oder al
ternativ (2) physikalisch sicher mit dem Personal-Computersy
stem 70 gekoppelt sein, wenn die Flash-Speicheranordnung 96
entfernbar ist. Bei dem alternativen Ausführungsbeispiel, bei
dem die Flash-Speicheranordnung 96 entfernbar ist, weist das
Personal-Computersystem 70 eine lichtemittierende Anzeigediode
(LED) auf, die zum Leuchten gebracht wird, wenn eine Hinter
grundaufgabe unter Einbeziehung der Flash-Speicheranordnung 96
abgewickelt wird. Der Benutzer des Personal-Computers 70 wird
instruiert, daß die Flash-Speicheranordnung 96 nicht entfernt
werden darf, wenn die LED erleuchtet und demzufolge eine Hin
tergrundaufgabe abgewickelt wird.
Bei einem Ausführungsbeispiel ist das Steuergerät 92 mit
einer kleiner Batterie gekoppelt, welche für das Steuergerät 92
den Betriebsstrom liefert, wenn die Stromzufuhr zum Personal-
Computersystem 60 unterbrochen ist. Dies hilft sicherzustellen,
daß die Datenübertragungen zur Flash-Speicheranordnung 96 vom
Puffer-RAM 102 selbst dann beendet werden, wenn das Computersy
stem vom Betriebsstrom getrennt ist.
Bei einem anderen Ausführungsbeispiel der Erfindung ist je
doch keine Batterie zur Stützung des Steuergerät 92 vorgesehen.
Es ist einzusehen, daß bei den Ausführungsbeispielen gemäß
Fig. 2-4 Lösch-Speicheranordnung 34, 64 und 96 in Ersatz
entweder von Festplattenlaufwerken oder Floppy-Disk-Laufwerken
verwendet werden können.
In bevorzugten Ausführungsbeispielen kann die Interface-
Schaltung zu einer Flash-Hauptspeicheranordnung entweder (1)
Eingabe/Ausgabe(I/O)-abgebildet (mapped), (2) Seitenspeicher-
abgebildet oder (3) Direktspeicher-abgebildet sein. Fig. 5
zeigt ein I/O-Abbildungsschema für die Interface-Schaltung.
Das in Fig. 5 gezeigte I/O-Abbildungsschema verwendet eine
I/O-Ebene 85 mit Serienübertragungs-I/O-Ports, das in die
Flash-Speicheranordnung 81 und den lokalen Puffer-RAM 83 abbil
det. Da das in Fig. 5 gezeigte I/O-Abbildungsschema eine sepa
rate I/O-Speicherebene 85 anstelle einer Hauptspeicherebene be
nutzt (Hauptspeicher wird auch als System-RAM bezeichnet) ver
braucht das I/O-Abbildungsschema gemäß Fig. 5 keinen Hauptspei
cherraum im Host- bzw. Leitcomputer. Mit anderen Worten, das
I/O-Abbildungsschema belegt keinen Raum im System-RAM des Host
computers.
Die I/O-Geräte, die mit seriellen I/O-Ports 85 gekoppelt
sind, können jedoch die direkte Ausführung durch eine CPU nicht
unterstützen, wenn diese I/O-Geräte (nicht gezeigt) serielle
Geräte anstelle von Direktzugriffsgeräten sind. Diese I/O-Ge
räte müssen Codedateien zur Ausführung in den System-RAM abla
den.
Fig. 6 zeigt ein Seitenspeicher-Abbildungsinterface zu ei
ner Seitenabbildungs-Flash-Speicheranordnung 105. Fig. 6 zeigt
die Hauptspeicherebene 89. Die Hauptspeicherebene 89 enthält
den Hauptsystem-RAM 99, ein Seitenwechsel-Fenster 97, eine
BIOS/ROM-Erweiterung 95, BIOS 93 und Erweiterungssystem-RAM 91.
Bei einem Ausführungsbeispiel der Erfindung ist die Haupt
speicherebene 89 auf einen Adreßbereich 101 von einem Megabyte
beschränkt. Die Beschränkung des Adreßbereichs auf ein Megabyte
bedeutet, daß der geschützte Betrieb ("protected mode") einer
CPU oder eines Mikroprozessors zum Adressieren von Teilen in
der Hauptspeicherebene 89 verwendet wird, die jenseits der 1-
Megabyte-Adreßgrenze 101 liegen. Mit anderen Worten, der ge
schützte Modus einer CPU dient zum Adressieren des Erweite
rungssystem-RAM-Bereichs 91 der Hauptspeicherebene 89.
Typische Mikroprozessoren früher Generationen und niedriger
Leistung wiesen keinen geschützten Betriebsmodus auf. Typische
Personal-Computer-Betriebssysteme früher Generationen und nied
riger Leistung waren auch nicht in der Lage, eine Adressierung
im geschützten Betrieb vorzunehmen. Diese Mikroprozessoren
niedriger Leistung sowie diese Betriebssysteme konnten daher
keine Bereiche oberhalb der 1-Megabyte-Adresse adressieren. Ge
wisse Mikroprozessoren und Betriebssysteme höherer Leistung und
späterer Generation können Adreßbereiche über der 1-Megabyte-
Adresse adressieren.
In Fig. 6 besteht die Flash-Speicheranordnung 105 aus
schmalen Seiten 107, 109 und 111 und ist mit einem lokalen Puf
fer-RAM 113 gekoppelt. In alternativer Ausführungsform könnte
die Flash-Speicheranordnung 105 aus einer beliebigen Anzahl von
Seiten bestehen.
In Fig. 6 ist das Seitenwechsel-Fenster 97 die Seitenspei
cher-Abbildungsschnittstelle, die der Leit-CPU den direkten Zu
griff auf die Seiten 107, 109 und 111 der Flash-Speicheranord
nung 105 ermöglicht. Jede Seite wird gewechselt, um nach Bedarf
auf ein anderes Segment der Flash-Speicheranordnung 105 hinzu
weisen.
Fig. 6 zeigt auch die Seitenbildungs-Firmware 103, die als
Erweiterung für einen Komponententreiber dient. Die Seitenbil
dungs-Firmware 103 enthält Seiten 115, 117, 119 und 121. Bei
einem Ausführungsbeispiel der Erfindung dient die Seitenwech
sel-Fenster-Schnittstelle 97 als Zeiger auf die Seitenbildungs-
Firmware 103. Durch Hinweis des Seitenwechsel-Fensters 97 auf
die Seitenbildungs-Firmware 103 wird eine Erweiterung auf den
größeren Firmware-Speicherraum 103 ermöglicht. Dies gibt dem
Computersystem über eine einzige (typischerweise 2 Kilobyte)
BIOS/ROM-Erweiterung 95 hinaus zusätzlichen Speicherraum.
Fig. 7 zeigt ein direkt speicherabgebildetes Interface für
eine Flash-Hauptspeicheranordnung. In Fig. 7 enthält die Haupt
speicherebene 135 eine Flash-Speicheranordnungsabbildung 149
(flash memory array map) und einen lokalen Puffer-RAM 147 zu
sätzlich zum Hauptsystem-RAM 137, einer BIOS/ROM-Erweiterung
139, BIOS 141 und Erweiterungssystem-RAM 145.
Die Hauptspeicherebene 135 gemäß Fig. 7 hat eine 1-Mega
byte-Adreßbereichsgrenze 143. Flash-Speicheranordnungsabbildung
149 und lokale Puffer-RAM-Abbildung 147 befinden sich über der
1-Megabyte-Adreßbereichsgrenze 143 der Speicherebene 135. Dies
bedeutet, daß ein geschützter Betrieb einer CPU oder eines Mi
kroprozessors zum Adressieren der Flash-Speicheranordnungsab
bildung 149 und der lokalen Puffer-RAM-Abbildung 147 verwendet
wird. Im Gegensatz dazu kann die CPU den Hauptsystem-RAM 137,
die BIOS/ROM-Erweiterung 139 und das BIOS 141 der Hauptspei
cherebene 135 ohne Verwendung des geschützten Modus adressie
ren.
Die Flash-Speicheranordnungsabbildung 149 bildet die Flash-
Speicheranordnung des Personal-Computersystems direkt ab. Daher
ist die Flash-Speicheranordnungsabbildung 149 von gleicher
Größe wie die Flash-Speicheranordnung des Personal-Comutersy
stems.
Außerdem wird die lokale Puffer-RAM-Abbildung 147 direkt in
den lokalen Puffer-RAM des Personal-Computersystems abgebildet.
Daraus folgt, daß die lokale Puffer-RAM-Abbildung (map) 147 die
gleiche Größe hat wie der lokale Puffer-RAM des Personal-Com
putersystems.
Das direkte Speicherabbildungsschema nutzt daher einen
großen Teil des Hauptspeicherraums. Außerdem bedingt die direkt
Speicherabbildungsmethode eine CPU und ein Betriebssystem, die
Bereiche der Hauptspeicherebene oberhalb der 1-Megabyte-Adreß
bereichsgrenze 143 zu adressieren vermögen.
Das direkte Abbildungsschema ermöglicht eine direkte Code
ausführung von der gesamten Flash-Speicheranordnung. Anderer
seits ermöglicht das Seiten-Abbildungsschema eine direkte Code
ausführung von einem Teil der Flash-Speicheranordnung.
Das direkte Abbildungsschema erfordert eine CPU und ein Be
triebssytem, die über die 1-Megabyte-Grenze hinaus zu adressie
ren in der Lage sind. Im Gegensatz dazu arbeitet das Seitenab
bildungsschema mit einer CPU und einem Betriebssystem, die
oberhalb der 1-Megabyte-Grenze nicht mehr adressieren können.
Fig. 8 zeigt eine Dateistruktur 400 der Flash-Speicheran
ordnung 401. Die Dateistruktur 400 enthält Sektoren und sorgt
für eine Plattenemulation. Die Dateistruktur 400 wird auch als
Datei-Sektorstruktur bezeichnet.
Bei einer Datei-Sektorstruktur, wie der Dateistruktur 400,
werden Code und Daten in Sektoren gespeichert. Jeder Sektor hat
eine feste Länge. Bei der Dateistruktur 400 enthält jeder Sek
tor 512 physikalische Bytes.
Die Sektoren entsprechen Sektoren auf bekannten Festplatten
und Disketten eines Personal-Computersystems. Auf herkömmlichen
Festplatten gibt es in typischer Ausführung siebzehn Sektoren
pro Spur.
Bei dem MS-DOS-Betriebssystem ist ein Cluster die kleinste
logisch adressierbare Speichereinheit. Bei einigen herkömmli
chen Festplatten gibt es vier Sektoren pro Cluster. Bei einer
Festplatte und einer HD 3,5-Zoll Diskette enthält ein Cluster
einen Sektor.
Bei der Dateistruktur 400 gemäß Fig. 8 ist jeder Cluster
eine Zuordnungseinheit ("AU"). Bei der Dateistruktur 400 ist
ein Cluster aus einem einzigen Sektor aufgebaut.
Bei einem alternativen Ausführungsbeispiel der Erfindung
ist jedes Cluster aus zwei Sektoren aufgebaut. Bei einem wie
derum alternativen Ausführungsbeispiel kann jeder Cluster aus
drei oder mehr Sektoren bestehen.
Bei einem wiederum alternativen Ausführungsbeispiel (weiter
unten diskutiert) ist ein logischer Sektor anstelle eines Clu
sters eine Zuordnungseinheit für die Dateistruktur.
Die Sektor-Dateistruktur 400 der Fig. 8 sorgt für eine Emu
lation konventioneller Platten-Dateistrukturen und ist ähnlich
der Sektor-Dateistruktur auf Festplatten- und Floppy-Disk-Lauf
werken ausgebildet.
Die in Sektoren unterteilte Dateistruktur 400 ermöglicht
eine beliebige Auswahl bzw. Ansteuerung von Löschblöcken zum
Aufräumen. Dies wiederum hilft, unnötige Dateibewegungen zu re
duzieren. Dies trägt außerdem zur Reduktion übermäßigen Zyklus
operationen bei.
Eine Sektor-Dateistruktur ist jedoch nicht in der Lage,
eine vollständige fortlaufende Ausführung anstelle von Code-Da
teien zu unterstützen. Dagegen ermöglicht ein fortlaufendes
Sektor-Seiten-Speicherdateischema die Ausführung benachbarter
Abschnitte oder kleiner Codedateien.
Bei einer sektorförmigen Dateistruktur muß das Durchlaufen
individueller Blöcke verfolgt werden, um während ei
ner Aufräumoperation das aktive Management von Heiß/Kalt-Lösch
block-Umverteilung zu unterstützen. Dieser Durchlauf einzelner
Blöcke wird nach den weiter unten erörterten Aufräum/Umord
nungsregeln eigenständig verwaltet.
Eine Flash-Speicheranordnung 401 weist eine Anzahl von Da
tenblöcken zur Code- oder Datenspeicherung auf. In der vorlie
genden Beschreibung soll der Ausdruck "Daten" sowohl ausführ
bare Codes als auch nicht-ausführbare Daten oder beides be
zeichnen. Fig. 8 zeigt ein Beispiel für die Dateistruktur der
Flash-Speicheranordnung 401 in dem einer Aufräumoperation un
mittelbar folgenden Zustand.
Blöcke 416, 424 und 428 der Flash-Speicheranordnung 401
sind "zu reservierende" Blöcke, die auch als Reserveblöcke oder
reservierte Blöcke bezeichnet werden. Reserveblöcke sind solche
Blöcke, welche während einer Aufräumoperation eine temporäre
Sicherungsdatei bilden.
Bei einem Ausführungsbeispiel der Erfindung kann eine Auf
räumoperation ausgelöst werden, wenn (1) die verfügbare Flash-
Speicherkapazität unter eine vorgegebene (konfigurierbare)
Grenze absinkt; (2) ein Benutzer eine Aufräumoperation aus
drücklich verlangt, wobei die Aufräumoperation nach einem spe
ziellen Aufräum-Dienstprogramm, beispielsweise einem speicher
residenten (TSR-)Programm im RAM des Personal-Computersystems
durchgeführt wird; oder (3) ein (konfigurierbares) Zeitinter
vall verstrichen ist, das ein Triggern der Aufräumoperation be
wirkt. Eine Aufräumoperation wird auch als Reklamationszyklus
bezeichnet.
Eine Aufräumoperation umfaßt zunächst eine Umordnungsopera
tion. Während einer Umordnungsoperation werden alle gerade ak
tiven Dateien aus denjenigen Blöcken herausbewegt, die mögli
cherweise gelöscht werden. Diese gerade aktiven Dateien werden
in Reserveblöcke bewegt. Jeder zu löschende Flash-Speicherblock
wird als Ganzer zeitgleich gelöscht. Bei der Dateistruktur 400
stehen die Reserveblöcke 416, 424 und 428 zur Umordnung während
einer Aufräumoperation zur Verfügung. Die Reserve 416, 424 und
428 dienen daher als temporäre Dateireserve.
Block 408 ist ein freizumachender Block, der nach der näch
sten Aufräumoperation ein freier Block wird.
Blöcke 404, 414, 420 sind freie Blöcke, die als Blöcke zur
Speicherung von Codes und Daten benutzbar sind. Zu dem in Fig.
8 gezeigten Zeitpunkt sind die freien Blöcke 404, 414 und 420
inaktiv. Diese Blöcke sollen für zukünftige Code- und Daten
speicherung verwendet werden. Zum Zeitpunkt gemäß Fig. 8 werden
Daten und Codes für aktive Dateien in aktiven Sektoren der
Blöcke 402, 406, 412, 418, 426 und 430 gespeichert. Während ei
ner weiteren Operation des Personal-Computersystems werden Da
ten und Codes zusätzlich in Sektoren in den freien Blöcken 404,
414 und 420 abgelegt.
Datenblock 430 ist ein partiell freier Block. Ein Teil 464
des Blocks 430 enthält in aktiven Sektoren gespeicherte Codes
oder Daten. Der Abschnitt 462 des Blocks 430 ist zur Code- oder
Datenspeicherung frei verfügbar. Während der weiteren Operation
des Personal-Computersystems werden Code und Daten auch in den
Abschnitt 462 des Blocks 430 gespeichert.
Wenn die Sektoren innerhalb der freien und teilweise freien
Blöcke mit Code und Daten gefüllt sind, vermindert sich die
Zahl der von Daten oder Codes freibleibenden Blöcke. Wenn die
Zahl von freien, nutzbaren Blöcken die erlaubte Zahl von Reser
veblöcken erreicht, wird eine Aufräumoperation eingeleitet.
Die Sektoren innerhalb der Blöcke 402, 406, 412, 418 und
426 enthalten zusammen mit den Sektoren innerhalb des Ab
schnitts 464 des Blocks 430 die aktiven und entfernten Dateien
und Unterverzeichnisse. Sektoren 403, 405, 409, 411, 413, 415,
417, 423, 425 und 427 innerhalb des Blocks 402 und Sektoren
431, 433, 439, 443, 445 und 453 innerhalb Block 406 sind Bei
spiele für aktive Daten- und Unterverzeichnissektoren. Blöcke
412, 418, 426 und 430 enthalten auch aktive Datei- und Unter
verzeichnissektoren. Sektoren 407, 419, 421, 429, 435, 437,
441, 447, 449, 451, 457, 459, 461, 463, 465, 467, 469, 471,
473, 475, 477, 479, 481, 483, 485, 487, 489 und 491 sind die
die entfernten Dateien und Unterverzeichnisse enthaltenden Da
teisektoren.
Wenn eine Aufräumoperation erforderlich wird, identifiziert
das Personal-Computersystem die für ein nachfolgendes Neube
schreiben zu löschenden Blöcke. Mit anderen Worten, bei der
Aufräumoperation identifiziert das Personal-Computersystem die
Blöcke mit Dateien, welche beim Aufräumen umgeordnet und bewegt
werden sollen. Die Identifzierung von beim Aufräumen zu lö
schenden Blöcken wird von zwei Bedingungen bestimmt. Die erste
Bedingung besteht darin, daß der Block mit den wenigstens Zy
klen ausgewählt wird. Dies reduziert die Zyklus-Ungleichge
wichte zwischen den heißen und kalten Blöcken.
Wenn es keine starken Ungleichgewichte zwischen den Zyklus
zählwerten von Blöcken gibt, so ist die zweite Bedingung maß
geblich. Mit anderen Worten, wo die Zyklusverteilung nicht von
dem Personal-Computersystem als Problem gekennzeichnet ist, ist
die zweite Bedingung maßgeblich. Die zweite Bedingung besagt,
daß die Blöcke mit der höchsten Anzahl von gelöschten Sektoren
die zum Löschen auszuwählenden Blöcke sein sollen.
Der Grund für diese zweite Bedingung oder Regel liegt
darin, daß die gelöschte Dateien oder gelöschte Unterverzeich
nisse enthaltenden Sektoren vor einer Löschoperation nicht aus
einem Block bewegt zu werden brauchen. Die gelöschten Dateien
und gelöschten Unterverzeichnisse enthalten keine zu rettenden
Information, so daß die gelöschten Dateien und Unterverzeich
nisse als Teil der Aufräumoperation einem Löschvorgang unter
worfen werden können. Mit anderen Worten, es besteht kein Be
darf an einer Umordnung gelöschter Dateien oder gelöschter Un
terverzeichnisse. Die zweite Bedingung führt daher zu einer
Minimierung von Bewegungen aus aktiven Sektoren vor dem Löschen
als Teil einer Aufräumoperation.
Ein im wesentlichen zufälliger Prozeß bestimmt, welche
Blöcke die meisten gelöschten Dateisektoren enthalten. Daher
bedeutet die zweite Regel oder Bedingung, daß das Aufräumschema
zu einer weitgehend zufälligen Blockselektion mit Bezug auf die
zu löschenden Blöcke führt. Diese im wesentlichen zufällige
Blockselektion hilft, die Aufräumeffizienz zu vergrößern, und
minimiert gleichzeitig die gesamten Zyklusdisparitäten.
Die obigen Bedingungen 1 und 2 verwalten die zyklischen
Verteilungen innerhalb der Flash-Speicheranordnung 401. Regeln
1 und 2 helfen gemeinsam, die Zyklusdifferenzen zu minimieren.
Daraus folgt, daß das Aufräumen der Dateistruktur 400 im we
sentlichen zufälliger Art ist.
Während der Aufräumoperation tritt eine Kompressionsopera
tion derart auf, daß die drei Blöcke 406, 418 und 426 in die
Reserveblöcke 416 und 424 passen. Während der Kompressionsope
ration werden zuvor vom Benutzer gelöschte Dateien nicht in die
Blöcke 416 und 424 überschrieben. Die Kompressionsoperation
wird auch als Verdichtung bezeichnet.
In Fig. 8 sind gelöschte Dateien und Unterverzeichnisse in
Sektoren 429, 435, 437, 441, 447, 449, 451, 463, 465, 467, 469,
471, 473, 475, 477, 479, 481, 483, 485, 487, 489 und 491 ent
halten, die sich in Blöcken 406, 418 und 426 befinden. Diese
gelöschten Sektoren werden nicht in die Blöcke 416 und 424 um
geschrieben. Blöcke 406, 418 und 426 werden als resident in dem
nächsten zu komprimierenden Bereich bezeichnet. Die Größe des
komprimierbaren Raums für Blöcke 406, 418, 426 ist derjenige
Raum, der von den o. g. gelöschten Sektoren 429 . . . 491 einge
nommen wird.
Nach dem Komprimieren der Blöcke 406, 418 und 426 in die
Blöcke 416 und 424 werden die Blöcke 406, 418 und 426 gelöscht.
Danach werden die Blöcke 406, 418 und 426 zu Reserveblöcken.
Block 428 bleibt ein Reserveblock. Block 408 bleibt ein freier
Block.
Die Dateistruktur 400 verwendet eine Cluster-Abbildungsta
belle 446, welche logische Cluster in physikalische Sektoren
der Dateistruktur 400 abbildet. Die Cluster-Abbildungstabelle
446 bildet eine Verbindung zwischen den physikalischen Sektoren
der Dateistruktur 400 und der Außenwelt. Die Cluster-Abbil
dungstabelle 446 läßt die Dateistruktur 400 für die Außenwelt
so erscheinen, als wenn die Flash-Speicheranordnung 401 eine
herkömmliche Festplatte oder Floppy-Disk mit benachbarten Sek
toren wäre. Tatsächlich unterscheidet sich die Flash-Speicher
anordnung 401 natürlich von einer konventionellen Festplatte
oder Floppy-Disk im Hinblick auf die Tatsache, daß die Flash-
Speicheranordnung 401 nur in Blöcken gelöscht werden kann und
daß die Dateistruktur 400 eine Aufräumoperation enthält. Die
Cluster-Abbildungstabelle 446 überwindet diese Unterschiede da
durch, daß sie von dem Personal-Computersytem aufrufbare logi
sche Sektoren in den physikalischen Sektoren der Flash-Spei
cheranordnung 401 abbildet.
Die Cluster-Abbildungstabelle 446 befindet sich im Block
422 der Flash-Speicheranordnung 401. Block 422 wird als Clu
ster-Abbildungsblock oder als Flash-Plattenemulationsblock be
zeichnet. Block 422 enthält auch ein Cluster-Abbildungstabel
len-Flag 440, einen Flash-Plattenemulation-(FDE)-Boot-Datensatz
442, eine Flash-Plattenemulation-Konfigurationsblock-Zustands
tabelle 444 und einen freien Raum 448. Der freie Raum 448
stellt Raum für die Erweiterung der Cluster-Abbildungstabelle
446 zur Verfügung.
Das Cluster-Abbildungstabellen-Flag 440 speichert ein Mu
ster von Daten, das angibt, welcher Block die Cluster-Abbil
dungstabelle für die Dateistruktur 400 speichert. Das Cluster-
Abbildungstabellen(CMT)-Flag 440 speichert ein spezielles
nicht-willkürliches Datenmuster, welches angibt, ob der das
CMT-Flag 440 enthaltende Block auch der die Cluster-Abbildungs
tabelle enthaltende Block ist. Bei einem Ausführungsbeispiel
speichert das CMT-Flag 440 beispielsweise eine Folge von sich
wiederholenden AAh/55h-Daten. Bei einem anderen Ausführungsbei
spiel speichert das CMT-Flag 440 eine andere nicht-willkürliche
Folge von Daten.
Bei einem Ausführungsbeispiel der Erfindung wird eine zu
sätzliche Prüfung durchgeführt, um festzustellen, ob ein spe
zieller Block tatsächlich der Cluster-Abbildungsblock ist.
Diese Prüfung wird zur Vermeidung von Fehlern bei der Lokali
sierung des Cluster-Abbildungsblocks durchgeführt, die anderen
falls auftreten könnten, wenn ein anderer als der Cluster-Ab
bildungsblock ein anfängliches Datenmuster enthält, welches mit
dem Datenmuster des CMT-Flag 440 übereinstimmt. Die Zusatzprü
fung geschieht durch Prüfen eines Testsummen-Datenfeldes in dem
Flash-Plattenemulation-Boot-Datensatz 442 des Cluster-Abbil
dungsblocks 422. Bei einem Ausführungsbeispiel ist das Prüfsum
mendatenfeld im Boot-Datensatz 442 ein spezielles Muster, wel
ches deshalb gewählt worden ist, weil dieses Datenmuster unge
ändert bleibt, wenn der FDE-Boot-Datensatz 442 sowohl gültig
als auch aktuell ist. Bei einem anderen Ausführungsbeispiel ist
das Prüfsummendatenfeld im FDE-Boot-Datensatz 442 ein zugehöri
ges Zyklus-Redundanzprüf-(CRC)- oder Fehlerkorrekturcode-(ECC)-
Datenfeld. Zunächst sieht das Computersystem nach dem CMT-Flag.
Als zweites prüft der Computer das Prüfsummendatenfeld. Ein
richtiges Ergebnis aus dem Prüfsummendatenfeld in der FDE-
Bootaufzeichnung 442 sagt dem Computersystem, daß es tatsäch
lich den aktuellen und gültigen Cluster-Abbildungsblock für die
Flash-Speicheranordnung 401 gefunden hat.
Wie in Fig. 8 gezeigt ist, befindet sich die FDE-Bootauf
zeichnung 442 im Block 422 nächst dem CMT-Flag 440. Die FDE-
Bootaufzeichnung 442 enthält Informationen über den speziellen
Dateisystemtyp und die spezielle Dateisystemrevision der Datei
struktur 400. Der FDE-Boot-Datensatz 442 enthält auch gewisse
Dateisystemparameter. Diese Parameter umfassen formatierbare
Kapazitätsinformationen, Reserveblockinformationen, anhängende
Cluster-Abbildungstabelleninformationen, Informationen, die
sich auf eine alte Cluster-Abbildungstabelle beziehen, und In
formationen über die aktuelle Cluster-Abbildungstabelle.
Die formatierbare Kapazitätsinformation ist die Größe des
zur Speicherung von Code und Daten formatierbaren Bereichs der
Flash-Speicheranordnung 401. Die Reserveblockinformation iden
tifiziert, welche Blöcke Reserveblöcke sind. Wie oben gesagt,
werden Reserveblöcke während der Aufräum- und Umordnungsopera
tionen verwendet. Die Anhangcluster-Abbildungstabelleninforma
tion betrifft den Ort von zusätzlichen Blöcken, die zur Spei
cherung zusätzlicher Cluster-Abbildungstabelleninformationen
verwendet werden. Bei einem Ausführungsbeispiel ist eine An
hangcluster-Abbildungstabelle in einem oder mehreren zusätzli
chen Blöcken bei einer Anzahl von Cluster-Abbildungstabellen
eingaben verwendbar, die eine vorgegebene Kapazität überstei
gen. Eine alte CMT ist eine Sicherungskopie der aktuellen Clu
ster-Abbildungstabelle. Die sich auf die alte Cluster-Abbil
dungstabelle beziehenden Parameterinformationen bezeichnen den
Ort innerhalb der Flash-Speicheranordnung 401, wo das alte CMT
gespeichert ist. In Fig. 8 ist beispielsweise das alte CMT 445
im Block 410 gespeichert. Die sich auf die Cluster-Abbildungs
tabelle beziehende Parameterinformation bezeichnet den Ort der
Cluster-Abbildungstabelle 446 innerhalb der Flash-Speicheran
ordnung 401.
FDE-Blockstatus enthält Informationen über diejenigen
Blöcke, die aktive Blöcke, Reserveblöcke und Defektblöcke sind.
Außerdem enthält die FDE-Block-Statustabelle 444 eine Zyklus
zählinformation über jeden Block der Dateistruktur 400. Die
Block-Statustabelle 444 reserviert den Cluster-Abbildungsblock
422 und Reserveblöcke als unzugreifbar, um eine nachfolgende
Aufräumoperation zu ermöglichen. Dies verhindert, daß das Com
putersystem diese Blöcke zu überschreiben sucht. Defekte Blöcke
werden auch vermieden und in der Blockstatustabelle 444 be
zeichnet. Die FDE-Block-Statustabelle 444 befindet sich im
Block 422 nächst dem FDE-Boot-Datensatz 442.
Die Cluster-Abbildungstabelle 446 befindet sich im Block
422 nächst der FDE-Block-Statustabelle 444. Die Cluster-Abbil
dungstabelle 446 bildet von einem Betriebssystem des Personal-
Computersystems gesendete logische Cluster-Adressen in physika
lische Adressen innerhalb der Flash-Speicheranordnung 401 ab.
Cluster-Abbildungstabelle 446 macht es der Flash-Speicheranord
nung 401 und deren zugehöriger Dateistruktur 400 möglich, dem
Personal-Computersystem so wie ein Festplattenantrieb oder ein
Floppy-Disk-Antrieb zu erscheinen.
Fig. 9, 10 und 11 zeigen die Organisation und Operation der
Cluster-Abbildungstabelle 446. Die Cluster-Abbildungstabelle
446 ist eine Tabelle, welche logische Cluster-Adressen 520 ge
mäß Fig. 9 mit den in Spalte 521 aufgeführten physikalischen
Adressen korreliert. Diese Korrelation wird auch als Assozia
tivabbildung bezeichnet.
Die in der Liste 520 gefundenen logischen Cluster-Adressen
sind diejenigen logischen Adressen, welche von einem Platten-
Betriebssystem eines Personal-Computersystems an ein Code oder
Daten für das Personal-Computesystem speicherndes Festplatten-
oder Floppy-Disk-Laufwerk gesendet würden.
Bei einem bekannten Computersystem sind logische Cluster-
Adressen die Cluster-Adressen eines Festplatten- oder Floppy-
Disk-Laufwerks. Jedes Cluster besteht aus mindestens einem Sek
tor, der die Spuren herkömmlicher Festplatten oder Floppy-Disks
bildet. Die Zahl von Sektoren pro Cluster hängt von der Größe
oder Konfiguration des bekannten Festplatten- oder Floppy-Disk-
Laufwerks ab.
Die Flash-Speicheranordnung 401 ist natürlich keine konven
tionelle Festplatte oder Floppy-Disk. Die Flash-Speicheranord
nung 401 besteht aus dem Flash-Speicher, der sich nur in rela
tiv großen Blöcken löschen läßt. Ohne vorhergehendes Löschen
kann die Flash-Speicheranordnung 401 nicht an einzelnen Bitzel
len von einer logischen Null in eine logische Eins überschrie
ben werden.
Bei dem in Fig. 8 gezeigten Beispiel hat die Dateistruktur
400 einen Sektor pro Cluster. Bei der Dateistruktur 400 können
sequentielle Daten enthaltende Sektoren über verschiedene
Blöcke gestreut werden. So können beispielsweise die Anfangs
zeilen des Codes im Sektor 409 des Blocks 402 der Flash-Spei
cheranordnung 401 der Fig. 8 und die Endzeilen desselben Codes
im Sektor 445 des Blocks 406 angeordnet sein. Bei herkömmlichen
Festplatten- oder Floppy-Disk-Antrieben können Datenbits ohne
vorhergehende Löschzyklen überschrieben werden. Im Gegensatz
dazu läßt sich ohne vorhergehendes Löschen eine Einzelbitzelle
bei dem Flash-Speicher 401 in Fig. 8 nicht von einer logischen
Null in eine logische Eins überschreiben. Daher überschreiben
bei der Flash-Speicheranordnung 401 neue Daten keine alten Da
ten, sofern nicht eine vorhergehende Löschoperation durchge
führt ist (Ausnahme ist das Überschreiben eines Einzelbits von
einer logischen Eins in eine logische Null). Stattdessen wird
ein alter Sektor als schmutziger Sektor identifiziert. Dies
zeigt an, daß der Sektor nicht weiter benutzte Daten enthält.
Der schmutzige Sektor wird dann während einer Aufräumoperation
gelöscht. Mit anderen Worten, ein schmutziger Sektor enthält
Daten oder einen Code, die bei der nächsten Aufräumoperation
gelöscht werden sollen. So ist beispielsweise der Sektor 407
mit der Dateistruktur 400 in Fig. 8 ein schmutziger Sektor mit
alten unerwünschten Codes oder Daten.
Anstelle des Überschreibens neuer Daten oder Codes in einen
schmutzigen Sektor 407 kann der neue Code oder neue Daten ein
fach in verfügbaren Raum eines freien Blocks oder eines Reser
veblocks innerhalb der Flash-Speicheranordnung 401 geschrieben
werden. So können neue Daten oder Codes in einen der verfügba
ren Sektoren des Reserveblocks 416 geschrieben werden.
Trotz der Unterschiede zwischen den Charakteristiken der
Flash-Speicheranordnung 401 und eines konventionellen Festplat
ten- oder Floppy-Disk-Antriebs läßt die Abbildungstabelle 446
die Flash-Speicheranordnung 401 der Fig. 8 für das Betriebssy
stem des Personal-Computersystems so erscheinen, als wäre die
Flash-Speicheranordnung 401 ein Festplatten- oder Floppy-Disk-
Antrieb. Die Cluster-Abbildungstabelle 446 bewirkt dies da
durch, daß sie Cluster-Logikadressen in physikalische Sektoren
innerhalb der Flash-Speicheranordnung 401 abbildet.
Die Cluster-Abbildungstabelle 446 ist eine aus einer Viel
zahl von Verknüpfungs- bzw. Verbindungslisteneinträgen beste
hende Tabelle. Die Tatsache, daß die Cluster-Abbildungstabelle
446 Verbindungslisten enthält, ermöglicht ein Hinzufügen über
die Zeit.
Die in Fig. 9 gezeigte Cluster-Abbildungstabelle 446 bildet
in Liste 420 gefundene logische Adressen in in der Spalte 521
gefundene physikalische Adressen ab. Spalte 522 enthält Zeiger
für jeden der Tabelleneinträge. Ein Null-Muster von allen logi
schen Einsen, gespeichert in einem speziellen Eintrag der
Spalte 522 zeigt, daß der besondere Eintrag das Ende einer Ver
bindungsliste ist. Ein Nullmuster aller logischen Einsen wird
als das F-Null-(Hexadezimal)-Muster von Daten bezeichnet.
Bei dem Ausführungsbeispiel der Cluster-Abbildungstabelle
446 in Fig. 9 gibt es nur einen Sektor pro Cluster. CMT 446 ar
beitet wie folgt. Eintrag 551 in der Cluster-Abbildungstabelle
446 bildet die logische Cluster-Adresse Null in der physikali
schen Sektoradresse 403 der Flash-Speicheranordnung 401. Zur
Erleichterung des Verständnisses sind die in Spalte 522 der
Fig. 9 aufgeführten physikalischen Adressen die gleichen wie
die Bezugszeichen für die Sektoren der Dateistruktur 400 in
Fig. 8. Daher entspricht die physikalische Adresse 403 des Ein
trags 551 dem Sektor 403 der Dateistruktur 400 in Fig. 8. Für
den Eintrag 551 in Fig. 9 enthält der Zeiger innerhalb Spalte
522 das F-Null-Muster von Daten. Dies zeigt an, daß es keine
weiteren Verbindungslisteneinträge für die logische Adresse
Null gibt. Dies zeigt, daß Sektor 403 der Struktur 400 kein
schmutziger Sektor ist. Dies bedeutet, daß der Sektor an der
physikalischen Adresse 403 tatsächlich der logischen Cluster-
Adresse Null entspricht.
In ähnlicher Weise bildet der Eintrag 553 der Cluster-Ab
bildungstabelle 446 die Cluster-Logikadresse Eins in die physi
kalische Dateistrukturadresse 405 ab. Die physikalische Adresse
405 entspricht dem Sektor 405 in Fig. 8. Eintrag 553 enthält
das F-Null-Muster von Daten in der nächsten logischen Adresse
oder Null-Spalte 522. Dies zeigt an, daß es keinen weiteren
Verbindungslisteneintrag gibt und die physikalische Adresse 405
daher der Cluster-Logikadresse Eins entspricht.
Eintrag 555 der Cluster-Abbildungstabelle 446 ist ein er
ster Eintrag in einer Verbindungsliste. Eintrag 555 bildet Sek
tor-Logikadresse 2 in der physikalischen Adresse 407 ab. Sektor
407 der Flash-Speicheranordnung 401 ist an der physikalischen
Adresse 407. Sektor 407 der Flash-Speicheranordnung 401 ist ein
schmutziger Sektor. Dies bedeutet, daß Sektor 407 entweder (1)
bei der nächsten Aufräumoperation an dem Block 402 zu löschende
Informationen enthält oder (2) ein schlechter Sektor ist, der
ein physikalisches Problem hat und nicht mehr zur Datenspeiche
rung benutzt werden soll. Ein Beispiel eines schlechten Sektors
wäre ein solcher, in dem defekte Floating-Gate-Zellen sind und
der daher Daten nicht fehlerfrei speichern kann.
Die nächste logische Adresse oder ein Null-Eintrag in
Spalte 522 für Eintrag 555 zeigt auf Adresse S. Die Adresse S
ist eine neu abgebildete (d. h. angehängte) Logikadresse, auf
die vom Zeiger für Eintrag 555 gezeigt wird.
In Fig. 9 stellt der Buchstabe S auch die Anzahl von logi
schen Sektoren pro Partition der Flash-Speicheranordnung 401
dar. S ist auch gleich der Anzahl von logischen Sektoren pro
Partition einer hypothetischen Festplatte oder Floppy-Disk,
welche von der Dateistruktur 400 emuliert wird.
Die logische Adresse S entspricht dem Eintrag 563 in der
Cluster-Abbildungstabelle 446. Für Eingabe 563 ist die physika
lische Adresse 421 in Spalte 521 gespeichert. Die physikalische
Adresse 421 der Flash-Speicheranordnung 401 entspricht daher
der neu abgebildeten logischen Adresse S. Sektor 421 der Flash-
Speicheranordnung 401 wurde an der physikalischen Adresse 421
gefunden. Sektor 421 ist ein schmutziger Sektor. Die nächste
Logikadreßeingabe für Eintrag 563 der Cluster-Abbildungstabelle
446 enthält die Adresse S + 1.
Eintrag 565 der Cluster-Abbildungstabelle 446 bildet die
neu abgebildete Logikadresse S + 1 auf die physikalische Adresse
449 ab. Die physikalische Adresse 449 entspricht dem Sektor 449
der Flash-Speicheranordnung 401. Sektor 449 der Fig. 8 ist ein
schmutziger Sektor. Die nächster Logikadreßeingabe für Eintrag
565 ist die logische Cluster-Adresse S + 2.
Eintrag 567 der Cluster-Abbildungstabelle 446 bildet die
logische, angehängte Cluster-Adresse S + 2 auf die physikalische
Adresse 443 ab. Die physikalische Adresse 443 in Spalte 521 der
Cluster-Abbildungstabelle 446 entspricht dem in Fig. 8 gezeig
ten Sektor 443. Sektor 443 wird im Block 406 der Dateistruktur
400 gefunden. Sektor 443 ist kein schmutziger Sektor. Stattdes
sen ist Sektor 443 ein aktiver guter Sektor. Die nächste logi
sche Adresse oder Nulleintrag für Eintrag 567 der Fig. 9 ist
der F-Null-(Hexadezimal)-Eintrag. Dies bezeichnet das Ende der
Verbindungsliste, welche mit der logischen Cluster-Adresse 2
beginnt.
Fig. 10 zeigt die Verbindungsliste, die von den Einträgen
555, 563, 565 und 567 der Cluster-Abbildungstabelle 446 gebil
det wird. Eintrag 555 bildet die logische Cluster-Adresse 2 auf
die physikalische Sektor-Adresse 407 ab. Der "nächste" Zeiger
eintrag von 555 weist auf Eintrag 563 hin. Der "nächste" Zeiger
des Eintrags 563 weist auf Eintrag 565 hin. Der "nächste" Zei
ger des Eintrags 565 weist auf Eintrag 567 und der Zeiger für
Eintrag 567 enthält das F-Null-(Hexadezimal)-Muster von Daten.
Dieses Null-Muster von Daten zeigt an, daß Eintrag 567 der
letzte Eintrag in der Verbindungslistenkette ist.
Wie oben unter Bezugnahme auf Fig. 9 gesagt, sind Sektoren
407, 421 und 449 schmutzige Sektoren. Sektor 443 ist ein akti
ver, "sauberer" oder guter Sektor. Aus diesem Grunde endet die
Verbindungslistenkette mit dem Sektor 443. Mit anderen Worten,
die Verbindungslistenkette endet mit dem ersten aktiven guten
Sektor innerhalb der Verbindungslistenkette. Das Endergebnis
der Verbindungsliste besteht gemäß Fig. 10 darin, daß die Clu
ster-Abbildungstabelle 446 die logische Cluster-Adresse 2 auf
die physikalische Sektor-Adresse 443 abbildet, wobei der physi
kalische Sektor 443 ein aktiver "sauberer" Sektor ist.
Ein Verbindungsglied wird den Verbindunglistenketten inner
halb der Cluster-Abbildungstabelle 446 jedesmal dann hinzuge
fügt, wenn ein schmutziger Sektor erzeugt oder entfernt wird.
Mit anderen Worten, jede Verbindungslistenkette innerhalb der
Cluster-Abbildungstabelle 446 stellt eine historische Aufzeich
nung von der Erzeugung und Entfernung von schmutzigen Sektoren
dar.
Bei der aus den Einträgen 555, 563, 565 und 567 gebildeten
Verbindungslistenkette war an einem Zeitpunkt 407 ein gültige
Daten oder Codes enthaltender aktiver, sauberer Sektor. An die
sem früheren Zeitpunkt wurde die logische Adresse 2 vom CMT 446
auf die physikalische Adresse 407 abgebildet, und der Zeiger
für Eintrag 555 enthielt das F-Null-Muster von Daten. An einem
gewissen Punkt während des Betriebs des Personal-Computersy
stems wurde Sektor 407 jedoch zu einem schmutzigen Sektor. So
bald dies geschah, wurde der Zeiger für den Eintrag 555 von dem
F-Null-Muster von durchgehend Einsen in ein neues Muster geän
dert, das die angehängte logische Adresse S in Binärform dar
stellt. Diese Änderung vom F-Null-Muster auf die Adresse S ge
schieht durch überschreiben (ohne vorhergehendes Löschen), da
bei einem Flash-Speicher 401 jede Einzelbitzelle von einer lo
gischen Eins in eine logische Null überschrieben werden kann.
Das F-Null-Muster (bestehend durchgehend aus logischen Einsen)
wurde in die Adresse S durch Überschreiben eines oder mehrerer
Bits von einer logischen Eins in eine logische Null geändert,
um die Adresse S zu erzeugen.
Eintrag 563 wurde sodann in der Cluster-Abbildungstabelle
446 als ein neu-abgebildeter (d. h. angehängter) Eintrag gespei
chert. Die neu-abgebildete Adresse S wurde in der Cluster-Ab
bildungstabelle 446 auf die physikalische Adresse 421 abgebil
det. Die physikalische Adresse 421 entspricht dem Sektor 421.
Zu einem vorhergehenden Zeitpunkt war Sektor 421 kein schmutzi
ger Sektor. Stattdessen war Sektor 421 ein guter Sektor. Zu
diesem früheren Zeitpunkt enthielt der Zeiger für Eintrag 563
das F-Null-Muster von Daten. Zu diesem früheren Zeitpunkt bil
dete daher die Cluster-Abbildungstabelle 446 die logische
Adresse 2 auf den Sektor 421 ab.
Mit der Zeit wurde Sektor 421 zu einem schmutzigen Sektor.
Daher mußte ein anderes Verbindungsglied der Verbindungsliste
für die logische Cluster-Adresse 2 hinzugefügt werden. Daher
wurde der Zeiger für Eintrag 563 von dem Null-Muster von Daten
in die neu abgebildete Adresse S + 1 geändert.
Eintrag 565 wurde sodann in der Cluster-Abbildungstabelle
446 gespeichert, um die angehängte Adresse S + 1 auf die physika
lische Adresse 449 abzubilden. Die physikalische Adresse 449
entspricht dem Sektor 449. Der Zeiger für Eintrag 565 enthielt
zu diesem Zeitpunkt das F-Null-Datenmuster. Sektor 449 war zu
diesem Zeitpunkt ein guter Sektor und kein schmutziger Sektor.
Daher bildete zu diesem Zeitpunkt die Cluster-Tabelle 446 die
logische Adresse 2 auf die physikalische Adresse 449 ab.
Danach wurde zu einem späteren Zeitpunkt Sektor 449 zu ei
nem schmutzigen Sektor. Nachdem dies geschah, wurde der Zeiger
für Eintrag 565 von dem F-Null-Muster auf die Adresse S + 2 über
schrieben. Eintrag 567 wurde danach in der Cluster-Abbildungs
tabelle 446 gespeichert. Eintrag 567 enthielt das F-Null-Daten
muster in der "nächste logische Adresse oder Null"-Position
522. Dadurch wurde die Sektor-Abbildungstabelle 446 in der in
Fig. 9 gezeigten Weise belassen.
Wie oben gesagt, ist die Logikadresse S - 1 die letzte logi
sche Cluster-Adresse. Die neu abgebildeten (d. h. angehängten)
Adressen S-X in Fig. 9 sind alles Adressen, die zur Bildung von
Verbindungslisten verwendet werden. Eintrag 571 bildet die
letzte logische Adresse X auf die physikalische Adresse 443 ab
und enthält ein F-Null-Datenmuster für seinen Zeiger.
Im folgenden wird auf Fig. 9 Bezug genommen. Cluster-Abbil
dungstabelle 446 enthält andere Einträge. Cluster-Eintrag 446
bildet die logische Cluster-Adresse S - 1 auf die physikalische
Adresse 453 ab. Der Zeiger für Eintrag 561 ist das F-Null-Da
tenmuster. Für Eintrag 571 hat die angehängte Adresse X einen
Zeiger mit einem F-Null-Datenmuster.
Fig. 11 zeigt, wie die Cluster-Abbildungstabelle 446 arbei
tet. Das Platten-Betriebssystem sieht die logischen Cluster-
Adressen 520 in der Cluster-Abbildungstabelle 446 gespeichert.
Die Cluster-Abbildungstabelle 446 bildet jene logischen Adres
sen 520 in die Flash-Sektoren innerhalb der Flash-Speicheran
ordnung 401 ab. Wie oben gesagt, gibt es bei der Dateistruktur
400 einen Sektor pro Cluster.
Wie in Fig. 11 gezeigt, bildet die Cluster-Abbildungsta
belle 446 Cluster 0 bis S - 1 ab. Der Beginn der Cluster an der
logischen Adresse Null und das Vorhandensein von S Clustern pro
Partition sind der Grund dafür, daß Cluster S - 1 das letzte Clu
ster ist.
Das logische Cluster 0 wird in den Flash-Speichersektor 403
abgebildet. Das logische Cluster 1 wird in den Sektor 405 der
Flash-Speicheranordnung 401 abgebildet. Flash-Sektoren 403 und
405 befinden sich im Flash-Block 402 der Flash-Speicheranord
nung 401. Flash-Sektoren 403 und 405 sind beides aktive, gute
Sektoren.
Wie in Fig. 11 gezeigt ist, war die logische Clusteradresse
2 ursprünglich von der Cluster-Abbildungstabelle 446 im Flash-
Sektor 407 der Flash-Speicheranordnung 401 abgebildet. Flash-
Sektor 407 wurde dann zu einem schmutzigen Sektor. Der schmut
zige Sektor 407 befindet sich im Flash-Block 402.
Danach wurden Verbindungsglieder hinzugefügt, um eine Ver
bindungsliste innerhalb der Cluster-Abbildungstabelle 446 für
Cluster 2 zu erzeugen. Das Resultat dieser Verbindungsliste be
steht darin, daß das logische Cluster 2 jetzt in den Flash-Sek
tor 443 innerhalb des Flash-Blocks 446 abgebildet ist.
Es kann einige Verbindungsglieder in der Verbindungsliste
geben; jedoch besteht das Endresultat darin, daß Cluster 2 auf
Flash-Sektor 443 abgebildet ist, obwohl Cluster 2 ursprünglich
auf Flash-Sektor 407 abgebildet war.
Bei einem Ausführungsbeispiel können bis zu zwei Gigabytes
des Speichers 401 adressiert werden. Bei einem alternativen
Ausführungsbeispiel kann der maximal adressierbare Speicherraum
größer oder kleiner als 2 Gigabytes sein.
Fig. 9 soll ein Beispiel für eine Cluster-Abbildungstabelle
446 zeigen; andere Modifikationen sind möglich. Außerdem zeigt
die Cluster-Abbildungstabelle 446 nur einen Teil der logischen
Clusteradressen, angehängten Adressen und Einträge. Zahlreiche
Einträge und logische Adressen liegen zwischen den Adressen 2
und Adressen S - 1 und auch zwischen den angehängten Adressen S + 2
und X.
Bei einem alternativen Ausführungsbeispiel der Erfindung
hat die Dateistruktur 400 zwei (oder mehr) Sektoren pro Clu
ster. Ein Cluster ist immer noch die Zuordnungseinheit. Bei ei
ner Abwandlung dieses Ausführungsbeispiels werden die physika
lischen Sektoren für ein spezielles logisches Cluster in die
Flash-Speicheranordnung derart geschrieben, daß diese physika
lischen Sektoren innerhalb der Flash-Speicheranordnung 401 ein
ander folgen. Mit anderen Worten, die physikalischen Sektoren
pro Cluster sind physikalisch zusammengruppiert und benachbart.
Die Cluster-Abbildungstabelle für dieses alternative Ausfüh
rungsbeispiel bildet zwei (oder mehr) angrenzende physikalische
Sektoren pro logischer Cluster-Adresse ab.
Bei einem anderen Ausführungsbeispiel gibt es zwei (oder
mehr) Sektoren pro Cluster. Jedoch können die physikalischen
Sektoren für ein spezielles Cluster über die Daten- oder Code-
Zonen der Flash-Speicheranordnung 401 verstreut sein. Mit ande
ren Worten, bei diesem Ausführungsbeispiel sind die physikali
schen Sektoren pro Cluster nicht zusammengruppiert und brauchen
nicht benachbart zu sein. Die Cluster-Abbildungstabelle bei
diesem alternativen Ausführungsbeispiel bildet zwei (oder mehr)
physikalische Sektoren pro logischer Cluster-Adresse ab.
Bei wiederum einem alternat 35131 00070 552 001000280000000200012000285913502000040 0002004143072 00004 35012iven Ausführungsbeispiel der Er
findung umfaßt die Dateistruktur 400 eine Sektor-Abbildungsta
belle, welche die Cluster-Abbildungstabelle 446 ersetzt. Diese
Sektor-Abbildungstabelle bildet logische Adressen von Sektoren
auf physikalische Adressen von Sektoren ab. Bei diesem alterna
tiven Ausführungsbeispiel ist ein logischer Sektor die Zuord
nungseinheit. Die Sektor-Abbildungstabelle arbeitet anderer
seits in ähnlicher Weise wie die CMT 446. Bei diesem alternati
ven Ausführungsbeispiel befindet sich die Sektor-Abbildungsta
belle in einem Sektor-Abbildungsblock, beispielsweise im Block
422. CMT-Flag 440 und CMT-Raum 448 sind bei diesem Ausführungs
beispiel mit Sektor-Abbildungstabellenraum bezeichnet.
Bei einem Ausführungsbeispiel der Erfindung wird eine Kopie
einer Cluster-Abbildungstabelle 446 als Sicherungskopie in ei
nem freien oder reservierten Sektor innerhalb der Dateistruktur
400 der Fig. 8 gespeichert. Bei einem Ausführungsbeispiel der
Erfindung werden Sicherungskopien der Cluster-Abbildungstabelle
446 periodisch angefertigt. Bei einem Ausführungsbeispiel der
Erfindung werden Sicherungskopien der Cluster-Abbildungstabelle
446 nach jeder Aufräumoperation angefertigt.
Bei einem Ausführungsbeispiel ist die Sicherungskopie der
Cluster-Abbildungstabelle 446 eine komprimierte Version der
Cluster-Abbildungstabelle 446. In Fig. 12 stellt die Tabelle
650 eine komprimierte Version der Cluster-Abbildungstabelle 446
dar. Tabelle 650 enthält nur die Cluster-Logikadressen in
Spalte 520 und die physikalischen Adressen in Spalte 521. Die
Zeiger für jeden Eintrag und die angehängten (d. h. neu-abgebil
deten) Adressen sind nicht enthalten.
Tabelle 650 weist die logischen Adressen 0 bis S - 1 (wobei S
die Anzahl von Sektoren pro Partition darstellt) und nicht die
angehängten Adressen auf. Jede in Spalte 621 gespeicherte
Adresse ist eine physikalische Adresse eines der entsprechenden
Cluster-Logikadresse zugeordneten aktiven, guten Sektors. Bei
Tabelle 650 sind keine Verbindungslistenketten gespeichert.
Einzig sind die logischen Cluster-Adreßanfänge und die physika
lischen Adreßenden der Verbindunglistenketten und auch die Ein
träge ohne Verbindungslisten gespeichert.
Eintrag 651 bildet die logische Cluster-Adresse 0 auf die
physikalische Adresse 403 ab. Eintrag 653 bildet die Cluster-
Logikadresse 1 auf der physikalischen Adresse 405 ab. Eintrag
655 bildet die Logikadresse 2 auf die physikalische Adresse 443
ab.
Durch Vergleich der Fig. 9 und 12 ist zu erkennen, daß
die Kombination von Einträgen 555, 563, 565 und 567 schließlich
die Cluster-Logikadresse auf die physikalische Adresse 443 ab
bildet. Diese vier Einträge 555, 563, 565 und 567 enthalten
eine Verbindungslistenkette. Die komprimierte Tabelle 650 spei
chert nur den Beginn und das Ende dieser Verbindungslisten
kette. Mit anderen Worten, Eintrag 655 speichert nur die Bezie
hung zwischen der Cluster-Logikadresse 2 und der physikalischen
Adresse 443.
Schließlich bildet der Eintrag 661 der Tabelle 650 die Lo
gikadresse S - 1 auf die physikalische Adresse 453 ab.
Bei einem Ausführungsbeispiel wird die Cluster-Abbildungs
tabelle 446 oder eine komprimierte Version der Cluster-Abbil
dungstabelle 446 im RAM des Personal-Computersystems gespei
chert.
Für das Computersystem sieht die Dateistruktur 400 der Fig.
8 wie ein Festplattenlaufwerk oder ein Floppy-Disk-Laufwerk
aus. Dateistruktur 400 kann mit einem Boot-Datensatz, einer Da
teizuordnungstabelle, Wurzelverzeichniseinträgen und einem Da
tenbereich mit den gleichen logischen Adressen geladen werden,
wie die Bereiche bei Speicherung auf einem Plattenlaufwerk. Mit
anderen Worten, Flash-Speicheranordnung 401 in Fig. 8 kann bei
spielsweise in Verbindung mit einem konventionellen MS-DOS-Be
triebssystem verwendet werden, wie es unter Bezugnahme auf Fig.
1 beschrieben worden ist.
Bei einem Ausführungsbeispiel unterstützt die Flash-Plat
tenemulations-Dateistruktur 400 alle existierenden Versionen
von (1) DOS, (2) OS/2 (d. h. Betriebssystem/2 von IBM) und (3)
UNIX-Betriebssysteme. Die Flash-Diskemulations-Dateistruktur
400 hängt nicht von einer speziellen Version von DOS, OS/2,
UNIX, BIOS oder anderen plattenresidenten Datenstrukturen ab.
Dienstleistungsprogramme auf niedriger Ebene für DOS und OS/2
werden ebenfalls unterstützt von der Dateistruktur 400.
Bei einem Ausführungsbeispiel werden direkte Plattenzu
griffe für Lese- und Schreiboperationen durch die Unterbrechun
gen 25H und 26H und die Standard-DOS-Treiberschnittstelle von
der Dateistruktur 400 unterstützt.
Bei einem Ausführungsbeispiel werden alle von der BIOS-Un
terbrechung 13H definierten Funktionen von der Flash-Diskemula
tions-Treiberstruktur 400 unterstützt.
Bei einem Ausführungsbeispiel wird die Flash-Speicheranord
nung 401 in Verbindung mit einem MS-DOS-Betriebssystem verwen
det. Unter Bezugnahme sowohl auf Fig. 1 als auch Fig. 8 wird
die Dateistruktur 400 in zwei logische Bereiche unterteilt:
einen Systembereich 4 und einen Datenbereich 9. Der Systembe
reich enthält einen Boot-Datensatz 3, eine Dateizuordnungsta
belle 5 und einen Wurzelverzeichnisbereich 7, der die Wurzel
verzeichniseinträge enthält. Der Datenbereich enthält Dateien,
die zur Speicherung von Anwendungsprogrammen, Daten und Unter
verzeichnisinformationen verwendet werden. Die Boot-Datensatz
3, die Daten-Zuordnungstabelle 5 und der Wurzelverzeichnisein
trag 7 belegen den Beginn der logischen Cluster der Dateistruk
tur 400, beginnend mit dem logischen Cluster 0.
Die in Fig. 1 gezeigte Organisation ist eine logische
Adreßorganisation. Die tatsächlichen physikalischen Sektoren
der Flash-Speicheranordnung 401, welche den Boot-Datensatz 3,
die Datei-Zuordnungstabelle 5, die Wurzelverzeichniseingabe 7
und Daten 9 speichern, werden von der Cluster-Abbildungstabelle
446 bestimmt.
Der Boot-Datensatz 3 enthält ein Bootstrap-Ladeprogramm zum
Laden des Betriebssystems. Die Bootaufzeichnung 3 enthält auch
Informationen bezüglich des ASCII-Namens und des formatierenden
DOS, die Anzahl von Bytes pro Sektor, die Anzahl von Sektoren
pro Cluster, die Anzahl von Sektoren im Boot-Datensatz, die An
zahl von Kopien der Dateizuordnungstabelle, die Anzahl der Wur
zelverzeichniseinträge, die Anzahl von Sektoren pro Partition,
die Speicher (d. h. emulierte Platte)-Typnummer, die Anzahl von
Sektoren pro Zuordnungstabelle, die Anzahl von reservierten
oder versteckten Sektoren und die Identifikationsnummer für die
Flash-Speicheranordnung 401 und die erweiterte Bootsektorsigna
tur, eine Volumenidentifikation und eine Volumentabelle.
Das Wurzelverzeichnis 7 ist eine Tabelle von 32-Byte-Ein
trägen, von denen jeder gewisse Attribute der Datei bezeichnet.
Jeder Verzeichniseintrag, der zum Verzeichnis 7 gehört, enthält
einen Dateinamen, Dateierweiterung, Attributflags, Zeit- und
Datumsangaben für die Datei, eine Startclusternummer für die
die Datei bildenden Cluster und die Dateigröße.
Jede Datei auf der Platte ist aus einem oder mehreren Clu
stern aufgebaut. Die Datei-Zuordnungstabelle 5 enthält eine
Aufzeichnung in Form einer Kette zur Beschreibung derjenigen
Art, in der die die Datei bildenden Cluster miteinander ver
knüpft sind. Bei einem Ausführungsbeispiel enthält die FAT 5
eine Liste von 2-Byte-Einträgen, einer für jedes Cluster. Bei
alternativen Ausführungsbeispielen sind die FAT-Einträge länger
oder kürzer als zwei Bytes. Der Verzeichniseintrag für eine Da
tei enthält die Nummer des Startclusters für die Datei, und das
Betriebssystem verwendet diese Startclusternummer für den Zu
griff auf die Datei-Zuordnungstabelle. Jeder FAT-Eintrag ist
ein Zeiger auf das nächste Cluster der Datei. Daher enthält der
aus dem ersten Zugriff gewonnene FAT-Eintrag die Clusternummer
des zur Datei gehörigen nächsten Clusters. Die Betriebssysteme
verwenden die nächste Clusternummer zum Zugriff auf die FAT, um
eine andere Clusternummer zu gewinnen. Dieser Prozeß wird so
lange fortgesetzt, bis eine spezielle Marke in der FAT 5 er
reicht ist.
Bei MS-DOS ist die Logikstruktur für die Dateien der Da
teistruktur 400 baumförmig. Einträge in dem Wurzelverzeichnis
können Hinweise oder Zeiger auf Unterverzeichnisse sein. Die
Unterverzeichnisse können eingeschlossen sein.
Die Codes und Daten speichernden Dateien werden in physika
lischen Sektoren über die Flash-Speicheranordnung 401 der Fig.
8 verstreut. Auch hier dient die Cluster-Abbildungstabelle 446
zur Abbildung der Logikadressen für die Dateien auf die physi
kalischen Adressen der diese Dateien speichernden Sektoren.
Bei einem alternativen Ausführungsbeispiel der Erfindung
weist die Dateistruktur 400 gemäß Fig. 8 zusätzlich einen Kopf
teil auf. Der Kopfteil befindet sich beispielsweise im Block
414, der dann nicht länger ein freier Block ist.
Der Kopfteil ist eine Datei, welche Informationen über die
Flash-Speicheranordnung 401 beinhaltet. Bei einem Ausführungs
beispiel enthält der Kopfteil Informationen bezüglich der un
formatierten Größe der gesamten Flash-Speicheranordnung 401,
der formatierten Größe der Flash-Speicheranordnung 401, der Ge
samtzahl von Blöcken innerhalb der Flash-Speicheranordnung 401
und detaillierte Geräteinformationen bezüglich der Flash-Spei
cheranordnung 401. Bei einem Ausführungsbeispiel der Erfindung
umfassen die im Kopfteil gespeicherten detaillierten Gerätein
formationen Lösch- und Schreibspannungen; Lösch- und Schreibbe
fehle; Lösch- und Schreibalgorithmen; maximale individuelle und
Gesamtchip-Zyklusspezifikationen; und Lese-Schreib- und
Löschleistungscharakteristiken der Flash-Speicheranordnung 401.
Bei einem alternativen Ausführungsbeispiel weist der Kopf
teil zusätzlich Informationen bezüglich der Lage eines anderen
Kopfteils oder mehrerer anderer Kopfteile auf.
Bei diesem alternativen Ausführungsbeispiel, bei der der
Kopfteil in einem der Blöcke der Flash-Speicheranordnung 401
gespeichert ist, beispielsweise im Block 414, muß der Kopfteil
periodisch regeneriert werden. Das Regenerieren des Kopfteils
beinhaltet ein periodisches vollständiges Löschen und Neu-
Schreiben des Kopfteils. Dieses periodische Regenerieren des
Kopfteils ist notwendig, da letzterer typischerweise ein kalter
Block im Vergleich zu anderen Blöcken der Flash-Speicheranord
nung 401 ist. Mit anderen Worten, der Kopfteil befindet sich in
einem Block, der weniger häufig durchlaufen wird als das gros
der anderen Blöcke der Flash-Speicheranordnung 401. Daher muß
der Kopfteil periodisch regeneriert werden.
Um festzustellen, ob der Kopfteil regeneriert werden muß,
wird die Zahl von Lösch/Programmier-Zyklen der dem Kopfteil be
nachbarten Blöcke und des Kopfteils verfolgt. Ein Zyklus-Zähl
parameter wird im Haupt-Kopfteilblock gespeichert. Die Zyklus
zählung stellt die Anzahl von Lösch/Schreib-Zyklen des Kopf
teils und der dem Kopfteil benachbarten Blöcke dar.
Bei diesem alternativen Ausführungsbeispiel wird eine al
ternative (d. h. Sicherungs-)Kopie des Kopfteils in einem ande
ren Block des Flash-Speichers 401, beispielsweise im Block 420
gespeichert. Dieser alternative Kopfteil, der im Block 420 ge
speichert ist, wird zeitweilig als Kopfteil benutzt, während
die Regenerationsoperation durchgeführt wird.
Bei wiederum einem alternativen Ausführungsbeispiel befin
det sich der Kopfteil nicht im Flash-Speicher 401. Stattdessen
ist der Kopfteil in einem Speicher auf einer getrennten inte
grierten Schaltungskarte angeordnet, die Bestandteil eines Per
sonal-Computersystems ist. Die den Kopfteil speichernde Anord
nung wäre ein Registernummern-Zyklusspeicher. Der Kopfteil wäre
so in einer separaten Anordnung gespeichert.
Bei dieser Ausführungsform braucht der Kopfteil nicht rege
neriert zu werden, vorausgesetzt, daß er sich nicht innerhalb
der Flash-Speicheranordnung 401 befindet. Daraus folgt, daß der
Kopfteil kein kalter Block wäre und keinen Zyklus-Zählparameter
mit Bezug auf Heiß/Kalt-Zyklusfolgen enthält.
Es ist klar, daß die Verwendung eines Kopfteils optional
ist. Ein Ausführungsbeispiel der Erfindung vermeidet die Ver
wendung eines Kopfteils mit der folgenden Struktur. Der Flash-
Speicher 401 hat Hersteller- und Geräteidentifizierungscodes,
die in der Speicheranordnung gespeichert sind. Bei einem Aus
führungsbeispiel veranlassen diese Hersteller- und Geräteiden
tifizierungscodes die Software des Personal-Computersystems, in
eine Nachschlagetabelle zu gehen, welche die aus den speziellen
Hersteller- und Geräteidentifizierungscodes ableitbare Kopf
teil-Information speichert.
Fig. 13 stellt eine alternative Cluster-Abbildungsanordnung
für die Dateistruktur 400 dar. Bei dieser alternativen Anord
nung gemäß Fig. 13 findet eine Sektor-Abbildungstabelle 746 an
stelle der Cluster-Abbildungstabelle 446 Verwendung. Die Clu
ster-Sektor-Abbildungstabelle 746 wird auch als Flash-Sektor-
Hash-Tabelle 746 bezeichnet.
Bei dem alternativen Ausführungsbeispiel gemäß Fig. 13 gibt
es nur einen Sektor pro Cluster für die Dateistruktur 400.
Außerdem gibt es vier Sektoren in einer Kette. Jede Kette hat
vier Sektoren mit sequentiellen logischen Adressen.
Die logischen Sektoradressen der Sektor-Abbildungstabelle
746 finden sich in Spalte 720 der Fig. 13.
Beispielsweise enthält der Eintrag 751 der Sektor-Abbil
dungstabelle 746 die Kette 0. Die Kette 0 wird zugegriffen,
wenn einer der vier logischen Abschnitte 0, 1, 2 oder 3 wieder
gefunden werden soll. Mit anderen Worten, Kette 0 besteht aus
Sektoren mit logischen Adressen 0, 1, 2 und 3.
Kette 1 besteht aus Sektoren mit logischen Adressen 4-7.
Kette 1 findet sich am Eintrag 753 der Sektor-Abbildungstabelle
746.
Eintrag 761 in Tabelle 746 enthält das F-Null-
(Hexadezimal)-Muster der Daten, das ein Datenmuster aus über
einstimmenden logischen Einsen enthält. Dies zeigt an, daß die
dem Eintrag 761 zugeordnete Kette gerade nicht benutzt wird.
Wie in Fig. 13 gezeigt ist, gehen die logischen Sektor
adressen zur Adresse S - 1. S ist gleich der Anzahl der Sektoren
pro Partition. Der letzte Eintrag in der Sektor-Abbildungsta
belle 746 ist die Kette M. Eintrag 765 ist der letzte Eintrag
in der Tabelle 746, und Eintrag 765 entspricht der Kette M.
Eintrag 765 ist den logischen Sektor-Adressen S - 4 bis S - 1 zuge
ordnet. Die letzte logische Sektoradresse pro Partition ist S -
1, da die logischen Sektoradressen mit der Adresse 0 beginnen.
Jede in der Sektor-Abbildungstabelle 746 gespeicherte Kette
ist auf seiner Verbindungsliste von Einträgen für die dieser
Kette zugeordneten Sektoren aufgebaut. Jeder die in der Sektor-
Abbildungstabelle 746 gespeicherte Kette bildende Eintrag wird
auch als Sektor-Hash-Eintrag bezeichnet.
Fig. 13 zeigt Beispiele gewisser Einträge, welche die Ver
bindungsliste für Kette 0 der Sektor-Abbildungstabelle 746 bil
den. Die in Fig. 13 gezeigten Einträge sind die Einträge 731
und 741.
Eintrag 741 in Fig. 13 zeigt das, was einen Eintrag inner
halb einer in der Sektor-Abbildungstabelle 746 gespeicherten
Kette bildet. Eintrag 731 ist aus einem Platten-Sektor-Eintrag
733, einem Flash-Sektor-Eintrag 735 und einem Zeiger-Eintrag
737 gebildet.
Der Plattensektor-Eintrag 733 speichert die logische
Adresse eines der die Kette enthaltenden Sektoren. Wenn Eintrag
731 der erste Eintrag in der Verbindungslistenkette 0 ist, so
ist die in 733 gespeicherte logische Sektor-Adresse die logi
sche Sektor-Adresse 0, d. h. die logische Adresse für Sektor 0.
Die logische Adresse des Disk-Sektors, gespeichert in Eintrag
733, ist die Adresse, wie sie vom Platten-Betriebssystem für
den Personal-Computer gesehen wird.
Die im Eintrag 735 der Fig. 13 gespeicherte Adresse ist die
physikalische Adresse innerhalb der Flash-Speicheranordnung 401
(Fig. 8) eines demjenigen logischen Sektor zugeordneten Sek
tors, dessen Adresse im Eintrag 733 gespeichert ist. Mit ande
ren Worten, ein Sektor, dessen physikalische Adresse im Eintrag
735 gespeichert ist, ist innerhalb der Flash-Speicheranordnung
401 der Fig. 8 ein physikalischer Sektor. Eintrag 731 bildet
daher ab oder korreliert eine logische Adresse eines Sektors
auf bzw. mit einer physikalischen Adresse eines Sektors.
Wenn die physikalische Sektoradresse 731 für einen aktiven,
guten Sektor und nicht für einen schmutzigen Sektor ist, so
speichert der Eintrag 737 des Eintrags 731 das F-Null-
(Hexadezimal)-Muster von Daten. Wenn die physikalische Sektor
adresse 731 jedoch für einen schmutzigen Sektor bestimmt ist,
so speichert der Eintrag 737 des Eintrags 731 einen Zeiger, der
die Adresse eines nächsten Sektor-Hash-Eintrags ist.
Wie in Fig. 13 gezeigt ist, weist der Zeiger 737 auf den
Eintrag 741 der Kette 0 der Sektor-Abbildungstabelle 746 hin.
Wie in Fig. 13 außerdem gezeigt ist, speichert Eintrag 741
eine logische Sektoradresse von 2 auf dem Platz 733 des Ein
trags 741. Eintrag 741 speichert auch die physikalische Sektor
adresse 405 auf dem Platz 735 des Eintrags 741. Adresse 405 ist
die physikalische Adresse des Sektors 405 der Flash-Speicheran
ordnung 401 in Fig. 8. Daher bildet Eintrag 741 die logische
Sektoradresse 2 auf die physikalische Adresse 405 des physika
lischen Sektors 405 der Flash-Speicheranordnung 401 ab.
Eintrag 741 der Verbindungsliste der Kette 0 hat ein F-
Null-Datenmuster, das am Platz 737 gespeichert ist. Dies zeigt
an, daß der physikalische Sektor 405 ein aktiver guter Sektor
ist.
Wie oben gesagt, gibt es bei dem in Fig. 13 gezeigten Aus
führungsbeispiel vier logische Sektoren pro Kette. Daher hat
jede Kette mindestens vier Einträge, und zwar jeweils einen für
jeden der die Kette bildenden Sektoren.
Sektor-Abbildungstabelle 746 wird im Vorbeilauf konstru
iert, wenn zusätzliche Sektoren der Flash-Speicheranordnung 401
zur Speicherung von Codes oder Daten verwendet werden. Neue
Kette und neue Sektor-Hash-Einträge werden addiert, wenn zu
sätzliche Sektoren der Flash-Speicheranordnung 401 zur Speiche
rung von Codes oder Daten verwendet werden. Die Sektor-Abbil
dungstabelle 746 wird kontinuierlich aufgebaut, bis alle zum
Speichern von Code oder Daten verfügbaren Sektoren zugeordnet
worden sind.
Wenn ein Sektor-Hash-Eintrag eine physikalische Sektor
adresse am Platz 735 und ein F-Null-Datenmuster am Platz 737
hat und wenn der mit dieser physikalischen Sektoradresse iden
tifizierte physikalische Sektor schmutzig wird, wird das F-
Null-Datenmuster am Platz 737 überschrieben und wird zu einem
Zeiger oder Hinweis auf eine Adresse eines nächsten Sektor-
Hash-Eintrags. Der nächste Sektor-Hash-Eintrag wäre ein neu
hinzugefügter Sektor-Hash-Eintrag, der die physikalische
Adresse eines aktiven guten Sektors enthält.
Wenn beispielsweise der physikalische Sektor 405 ein
schmutziger Sektor wird, so wird ein neuer Sektor-Hash-Eintrag
der Kette 0 hinzugefügt. Das F-Null-Muster von Daten am Platz
737 des Eintrags 741 wird überschrieben und zeigt auf den neuen
Sektor-Hash-Eintrag. Der neue Sektor-Hash-Eintrag enthält bei
spielsweise die physikalische Sektoradresse 409 an der Stelle
735 und die logische Sektoradresse 2 an der Stelle 733, wenn
der logische Sektor 2 auf den aktiven, guten physikalischen
Sektor 409 abgebildet wurde. Das Überschreiben des F-Null-Da
tenmuster kann ohne vorhergehendes Löschen erfolgen, da jedes
Bit der Flash-Speicheranordnung 401 ohne vorhergehendes Löschen
von einer logischen Eins in eine logische Null überschrieben
werden kann.
Das Computersystem durchläuft wiederholt die Ketten der
Flash-Sektor-Abbildungstabelle 746, bis sie für jeden zugeord
neten Logiksektor einen Sektor-Hash-Eintrag findet, der das F-
Null-Datenmuster am Platz 737 enthält. Jeder gültige Sektor-
Hash-Eintrag mit dem F-Null-Datenmuster am Platz 737 bildet
eine logische Sektoradresse (gespeichert am Platz 733) auf eine
aktive "saubere" physikalische Sektoradresse (gespeichert am
Platz 735) ab. Wenn andererseits das F-Null-Muster am Platz 737
nicht gespeichert ist, so ist die am Platz 735 gespeicherte
physikalische Adresse eine Adresse eines schmutzigen Sektors.
Bei einem alternativen Ausführungsbeispiel gibt es zwei
(oder mehr) Sektoren pro Cluster. In wiederum einem alternati
ven Ausführungsbeispiel kann es vier Sektoren pro Cluster ge
ben. Für diese alternativen Ausführungsbeispiele bildet die
Flash-Sektor-Abbildungstabelle 846 die logischen Sektoradressen
auf die physikalischen Sektoradressen ab.
Bei einem wiederum alternativen Ausführungsbeispiel bildet
die Flash-Sektor-Abbildungstabelle logische Clusteradressen auf
physikalische Sektoradressen ab.
Um zu vermeiden, daß lange Hash-Ketten bei häufig geänder
ten Sektoren wiederholt durchlaufen werden, wird eine kompri
mierte Sektor-Abbildungs-Tabelle (sector-hash-table) im RAM des
Personal-Computersystems gespeichert. Die RAM-Sektor-Abbil
dungstabelle 846 gemäß Fig. 13 ist ein Beispiel einer kompri
mierten Sektor-Hash-Tabelle. Um die RAM-Sektor-Abbildungsta
belle 846 zu bilden, werden alle diejenigen Sektor-Hash-Ein
träge in der Sektor-Abbildungstabelle 746, welche am Platz 737
kein F-Null-Muster enthalten, nicht in den RAM geschrieben. Nur
diejenigen Sektor-Hash-Einträge mit einem F-Null-Datenmuster am
Platz 737 werden in den RAM geschrieben. Daher werden nur die
jenigen Sektor-Hash-Tabelleneinträge der Sektor-Abbildungsta
belle 746 in den RAM geschrieben, die logische Sektoradressen
auf aktive, gute Sektoren abbilden.
Die RAM-Sektor-Abbildungstabelle 846 wird im Vorbeilauf
während des Lesens oder Schreibens von Sektoren gebildet.
Die RAM-Sektor-Abbildungs- bzw. Hash-Tabelle 846 dient zur
Leistungsverbesserung. Wenn die Kopie der RAM-Sektor-Abbil
dungstabelle 846 aus dem RAM verlorengeht, so hat diese Tatsa
che keinen Einfluß auf die Konsistenz der in der Flash-Spei
cheranordnung 401 gespeicherten Daten. Dies liegt daran, daß
die Sektor-Hash-Tabelle 746 immer noch im Flash-Speicher 401
gespeichert ist.
Um trotzdem die Integrität des Dateisystems zu gewährlei
sten, wird bei einem Ausführungsbeispiel der Erfindung eine Si
cherungskopie der Sektor-Abbildungstabelle 746 in wenigstens
einem freien Sektor innerhalb eines freien Blocks oder eines
Reserveblocks der Flash-Speicheranordnung 401 gespeichert.
Bei einem alternativen Ausführungsbeispiel wird eine Sek
tor-Abbildungstabelle, welche logische Sektoradressen direkt
auf aktive Bootsektoren abbildet, im RAM (und in einem freien
Sektor der Flash-Speicheranordnung 401 als Sicherungskopie) ge
speichert.
Fig. 13 zeigt auch eine Flash-Sektor-Zuordnungs-Bitmap 881.
Jedes Bit in Bitmap 881 ist einem physikalischen Sektor der
Flash-Speicheranordnung 401 zugeordnet. So ist beispielsweise
Bit 0 dem physikalischen Sektor 403, Bit 1 dem physikalischen
Sektor 405 usw. zugeordnet. Ein Bit in Form einer logischen
Eins zeigt einen freien Sektor. Ein Bit in Form einer logischen
Null zeigt einen schmutzigen Sektor. Daher können sowohl freie
als auch schmutzige Sektoren der Flash-Speicheranordnung durch
eine Inspektion der Bitmap 881 rasch festgestellt werden.
Außerdem kann ein beliebiges Muster von benachbarten freien
oder schmutzigen Sektoren durch eine Inspektion der Bitmap 881
leicht festgestellt werden.
Bei einem Ausführungsbeispiel der Erfindung ist die Flash-
Sektor-Zuordnungs-Bitmap 881 im RAM des Personal-Computersy
stems cache-gespeichert, um die Leistungsfähigkeit des Perso
nal-Computersystems zu verbessern.
Fig. 13 zeigt auch eine Block-Statustabelle 444 der Flash-
Speicheranordnung 401. Wie oben gesagt, wird die Zykluszählung
von einzelnen Blöcken in der Block-Statustabelle 444 gehalten.
Die Block-Statustabelle 444 wird am Ende jeder Aufräumoperation
aktualisiert. Die RAM-Block-Statustabelle 844 ist eine tem
poräre RAM-Kopie der Block-Statustabelle 444. Die RAM-Block-
Statustabelle 844 wird während der Umordnungsoperation beim
Aufräumen der Flash-Speicheranordnung 401 verwendet.
Bei einem Ausführungsbeispiel der Erfindung enthält das
Personal-Computersystem auch Hardware und Firmware zur Durch
führung der logischen Zustandsinversion in Verbindung mit
Flash-Plattenemulationsdateistruktur 400. Die logische Zu
standsinversion arbeitet wie folgt.
Herkömmliche Standard-Plattenformatoperationen für Fest
platten und Disketten sind so definiert, daß sie alle Blöcke
der Festplatten und Disketten auf einen logischen Nullzustand
löschen. Auch physikalische Sektoren von herkömmlichen Fest
platten und Floppy-Disk werden typischerweise beim Formatieren
markiert und sind (1) "frei und gut" (d. h. nicht defekt), (2)
"schlecht", (3) "reserviert/unbenutzt" oder (4) "neu-abgebil
det", wobei die Standard-Vorgabebedingung frei gut ist. Be
kannte Formatierungsverfahren spezifizieren in typischer Ver
fahrensweise einen "00"-Code zum Markieren von Festplatten- und
Diskettensektoren (oder größerer "Cluster"-Zuordnungseinheiten)
als frei/gut.
Im Gegensatz dazu sind die Zellen der Flash-Speicheranord
nung 401 vorgelöscht auf den Zustand einer logischen Eins. Da
her ist bei einem Ausführungsbeispiel der Erfindung das Perso
nal-Computersystem mit zusätzlicher Hardware versehen, um das
Ausgangssignal der Flash-Speicheranordnung 401 zu invertieren.
Durch Invertieren des Flash-Geräteausgangs mit der FDE-System
hardware erscheint der gelöschte Zustand der Flash-Speicheran
ordnung 401 für das Computersystem als logische "Null". Dies
macht die Daten der gelöschten Flash-Blöcke logisch konsistent
mit der herkömmlichen Anfangsformatierung und frei gut Deskrip
toren. Wie der gelöschte Raum behandelt wird, ist insofern
wichtig, als das FDE-Dateisystem eine Verfügbarkeit von freiem
gelöschtem Raum für eine maximale Schreibleistung erforderlich
macht.
Bei einem Ausführungsbeispiel der Erfindung bewirkt die
Flash-Plattenemulation-Steuerfirmware eine Minimierung der
Neuschreiboperation. Dies wird im folgenden beschrieben.
Bekannte Betriebssysteme, wie DOS, verwenden "00"-Daten als
anfänglichen aktiven Code. In DOS wird beispielsweise ein unbe
nutzter Verzeichnis-Dateinamen-Eintrag mit "00" markiert, da
nach mit "E5H"-Daten gekennzeichnet, wenn der Eintrag logisch
gelöscht worden ist.
Die obige logische Zustandsinversion für die Flash-Spei
cheranordnung 401 ermöglicht in den meisten Fällen, daß dieses
erste Datennamenbyte erfolgreich von "00" in gültige Daten des
ersten Bytes des gültigen Dateinamens überschrieben wird und
danach auf "E5H". Die logische Inversion bewirkt, daß physika
lische Daten in der Flash-Speicheranordnung 401 von dem Eins-
Zustand in den Null-Zustand invertiert werden, was ohne Um
schreiben des ganzen Blocks in einen anderen vorgelöschten
Block geschehen kann.
Bei einem Ausführungsbeispiel wird ein Algorithmus der zen
tralen Firmware des FDE-Systems hinzugefügt, der in Verbindung
mit der oben beschriebenen logischen Inversionshardware verwen
det wird. Dieser Algorithmus minimiert die Anzahl von benötig
ten Umschreiboperationen. Dieser Algorithmus prüft zunächst
Sektor- oder Cluster-Umschreiboperationen bezüglich der erfor
derlichen logischen Zustandsübergänge der Daten. Wenn kleine
Datenabschnitte umgeschrieben werden sollen (z. B. FAT-Eintrags
modifikationen), so kann dieses Umschreiben durch "1" auf "0"-
Übergänge im physikalischen Flash-Speicher durchgeführt werden,
was selbst wiederum durch Überschreiben einiger weniger Bytes
innerhalb eines aktiven, gültigen Datenspeichersektors oder -
clusters geschehen kann. Dadurch werden unnötige Umschreibope
rationen des gesamten Clusters vermieden.
Bei einem Ausführungsbeispiel der Erfindung umfaßt die Dat
eistruktur 400 auch die Fehlerdetektion und die logische Sek
torverifikation.
Bei der minimalen FDE-Implementierung werden Datenspeicher
einheiten (Sektoren oder Cluster) regelmäßigen 2N-Partitionen
(z. B. 512-Byte-DOS-Sektoren) derart zugeordnet, daß eine vorge
gebene, gerade Anzahl von Speichereinheiten exakt mit den
großen Löschblockgrenzen der Flash-Speicheranordnung 401 zusam
menfällt. Viele Umfelder des Computersystems bedingen jedoch
die Berechnung und Speicherung nach dem Schreiben und die Rück
führung beim Lesen von zwei oder mehr Zyklus-Redundanz-Checks
("CRC") oder Fehlerkorrektorcode-("ECC")-Datenfeldern, die zur
Feststellung (und ggf. Korrektur) von Medien- oder Übertra
gungsdefekten verwendet werden können.
Bei einem Ausführungsbeispiel der Erfindung werden CRC-
oder ECC-Datenfelder zu Sektoren oder Clustern der Dateistruk
tur 400 hinzugefügt. Die extra CRC-ECC-Bytes bedingen eine Mi
nimalgröße der Datenzuordnungseinheit von 2N + M, wobei M gleich
der Zahl der zusätzlichen CRC- oder ECC-Bytes ist. Dies führt
häufig zu einer ungeraden Zahl oder zumindest keinem Vielfachen
von 2N von Datenzuordnungseinheiten pro Löschblock. Dies erhöht
die Kompliziertheit der FDE-Systemfirmware, hilft jedoch zur
Verbesserung der Zuverlässigkeit des gesamten Flash-Speicher-
Subsystems durch die Befähigung zur Feststellung und eventuel
len Korrektur von Medienfehlern.
Durch Vergrößerung der Anzahl von zusätzlichen Bytes pro
Speichereinheit auf M + L wird eine Fehlererkennung für die Clu
ster-Abbildungstabelle 446 geschaffen. Die Anzahl von Extryby
tes L muß ausreichen, um die von dem gegebenen FDE-System zuge
lassene Gesamtzahl von formatierbaren logischen Sektoren zu in
dizieren. Die in L enthaltenen Daten sind die logische Sektor
zahl, welche der speziellen physikalischen Flash-Zuordnungsein
heit zugeordnet ist. Wenn daher die Cluster-Abbildungstabelle
446 auf einen bestimmten physikalischen Platz hinweist, kann
die logische Sektorzuordnung verifiziert werden, wenn dieser
physikalische Platz tatsächlich zugegriffen wird. Dies ergibt
eine unmittelbare Erkennung von Fehlern, welche in der RAM-
Bild-Clusterabbildungstabelle aufgrund von Soft-Fehlern im RAM-
Speichergerät entstehen. Da die Flash-Speicheranordnung 401
keine Soft-Fehler verursacht, können diese Fehler durch Lesen
der Verbindungslistenversion der Cluster-Abbildungstabelle 446
wiedergewonnen werden. Die Daten in den Extra-Logiksektortabel
lenbytes L müßten überschrieben oder auf irgendeine andere
Weise ungültig gemacht werden, wenn der logische Sektor/Cluster
nachfolgend in einen anderen physikalischen Sektor/Cluster neu
abgebildet wird.
Das intrinsische Flash-Zyklusmanagement, das bei der Da
teistruktur 400 verwendet wird, hilft die Zuverlässigkeit der
Flash-Speicheranordnung 401 zu verbessern. Ebenfalls zur Ver
besserung der Zuverlässigkeit trägt die Tatsache bei, daß die
Dateistruktur 400 Maßnahmen zur Anfertigung von Sicherungkopien
enthält.
Ausführungsbeispiele der Erfindung helfen auch dazu, die
System-RAM-Erfordernisse zu minimieren, und zwar (1) durch Ein
bettung des Steuercodes in Firmware und (2) durch Verwendung
von Reserveblöcken für die Block-zu-Block Datei und Verzeich
nisübertragung während der Aufräumoperationen.
Die Block-Zustandstabelle 444 unterstützt die Gleichmäßig
keit der Flash-Einrichtungs- und -Block-Zyklen. Hierdurch wird
die Speicherzuverlässigkeit verbessert, während heiße Flecken
bzw. Punkte, welche ein Löschen und eine Verschlechterung der
Schreibleistung relativ zu anderen Geräten und Blöcken inner
halb der Bauelemente bewirken, minimiert werden. Block-Zu
standstabelle 444 verfolgt auch Reserveblöcke, wodurch die Zu
verlässigkeit und die Geschwindigkeit der Aufräum- und "Hin
tergrundaufgaben"-Löschoperationen verbessert werden.
Claims (17)
1. Nicht-flüchtiger Halbleiterspeicher (401), der block
weise löschbar ist, mit:
- A) einem aktiven Block (402, 406, 412, 418, 426, 430) zur Speicherung erster Daten;
- B) einem Reserveblock (416, 424, 428) zur Speicherung zweiter Daten, wobei die zweiten Daten eine Kopie der ersten Daten sind und die Kopie während einer Aufräumoperation vor einem Löschen des aktiven Blocks hergestellt wird; und
- C) einer Abbildungstabelle (446) zum Abbilden einer logi schen Adresse einer Zuordnungseinheit auf eine physikalische Adresse eines Sektors im nicht-flüchtigen Halbleiterspeicher (401).
2. Speicher nach Anspruch 1, dadurch gekennzeichnet, daß
die Abbildungstabelle (446) aufweist:
- 1. wenigstens ein Feld für eine logische Adresse (520, 525), die der logischen Adresse der Zuordnungseinheit ent spricht;
- 2. ein Feld für eine erste zugehörige physikalische Adresse eines Sektors in dem nicht-flüchtigen Halbleiterspei cher;
- 3. ein Feld für eine nächste logische Adresse, das einen
ersten Wert enthält, sofern die erste zugehörige physikalische
Adresse sauber ist, das heißt, gültige Daten in dem nicht-
flüchtigen Halbleiterspeicher an dieser ersten physikalischen
Adresse angeordnet sind, wobei das Feld (522) für die nächste
logische Adresse einen logischen Adreßwert enthält, der auf
eine zweite logische Adresse und eine zugehörige zweite physi
kalische Adresse in der Abbildungstabelle (446) verweist, so
fern die erste physikalische Adresse derart schmutzig (dirty)
ist, daß ungültige Daten an der ersten physikalischen Adresse
angeordnet sind; und
wobei die Abbildungstabelle (446) während einer Aufräum operation derart aktualisiert wird, daß der erste Wert des Fel des (522) der nächsten logischen Adresse auf die zweite logi sche Adresse verweist, und die zugehörige physikalische Adresse derart aktualisiert wird, daß sie die zweite physikalische Adresse identifiziert, wobei die zweite physikalische Adresse eine Adresse der in den Reserveblock des nicht-flüchtigen Halb leiterspeichers kopierten Daten ist.
3. Speicher nach Anspruch 1 oder 2, dadurch gekennzeichnet,
daß er ein elektrisch löschbarer, programmierbarer Flash-Nur-
Lese-Speicher (Flash-EEPROM) ist.
4. Speicher nach einem der Ansprüche 1 bis 3, dadurch
gekennzeichnet, daß zusätzlich eine Block-Statustabelle (444)
vorgesehen ist, die Informationen darüber enthält, ob ein Block
- a) ein aktiver oder ein Reserveblock ist,
- b) frei oder in Benutzung ist und
- c) defekt oder nicht-defekt ist.
5. Speicher nach einem der Ansprüche 1 bis 4, dadurch
gekennzeichnet, daß er außerdem einen Kopfteil aufweist, der
die folgenden Informationen enthält:
- a) eine Größe des nicht-flüchtigen Halbleiterspeichers in unformatiertem Zustand;
- b) eine maximale Anzahl von für den nicht-flüchtigen Halbleiterspeicher vorgesehenen Löschzyklen;
- c) Lösch- und Schreibspannungen;
- d) Lösch- und Schreibbefehle;
- e) Lösch- und Schreibalgorithmen.
6. Halbleiterspeicher nach einem der Ansprüche 1 bis 4,
dadurch gekennzeichnet, daß die Zuordnungseinheit ein Sektor
oder ein Cluster ist.
7. Halbleiterspeicher nach einem der Ansprüche 1 bis 6,
dadurch gekennzeichnet, daß außerdem ein Inverter zum logischen
Invertieren jedes aus dem Halbleiterspeicher gelesenen Daten
bits vorgesehen ist.
8. Halbleiterspeicher nach einem der Ansprüche 1 bis 7,
dadurch gekennzeichnet, daß ein Fehlerkorrekturcode-Datenfeld
vorgesehen ist.
9. Halbleiterspeicher nach einem der Ansprüche 1 bis 8,
dadurch gekennzeichnet, daß eine Sektor-Zuordnungs-Bitmap vor
gesehen ist.
10. Computersystem, mit:
- A) einer zentralen Verarbeitungseinheit (12);
- B) einem blockweise löschbaren, nicht-flüchtigen Halblei
terspeicher (34; 64; 96; 401), der von der zentralen Verarbei
tungseinheit (12) zugreifbar ist und aufweist:
- 1. einen aktiven Block (402, 406, 412, 418, 426, 430) zur Speicherung erster Daten;
- 2. einen Reserveblock (416, 424, 428) zur Speicherung zweiter Daten, wobei die zweiten Daten eine Kopie der ersten Daten sind und die Kopie vor dem Löschen des aktiven Blocks während einer Aufräumoperation hergestellt wird;
- 3. eine Abbildungstabelle (446) zum Abbilden einer logi schen Adresse einer Zuordnungseinheit auf eine physikalische Adresse eines Sektors innerhalb des nicht-flüchtigen Halblei terspeichers (401);
- C) Speichermitteln (14; 42; 78) zum Speichern eines Pro gramms zur Steuerung des nicht-flüchtigen Halbleiterspeichers.
11. Computersystem nach Anspruch 10, dadurch gekennzeich
net, daß die Abbildungstabelle (446) aufweist:
- 1. wenigstens ein Feld für eine logische Adresse (520, 525), die der logischen Adresse der Zuordnungseinheit ent spricht;
- 2. ein Feld für eine erste zugehörige physikalische Adresse eines Sektors in dem nicht-flüchtigen Halbleiterspei cher;
- 3. ein Feld für eine nächste logische Adresse, das einen
ersten Wert enthält, sofern die erste zugehörige physikalische
Adresse sauber ist, das heißt, gültige Daten in dem nicht-
flüchtigen Halbleiterspeicher an dieser ersten physikalischen
Adresse angeordnet sind, wobei das Feld (522) für die nächste
logische Adresse einen logischen Adreßwert enthält, der auf
eine zweite logische Adresse und eine zugehörige zweite
physikalische Adresse in der Abbildungstabelle (446) verweist,
sofern die erste physikalische Adresse derart schmutzig (dirty)
ist, daß ungültige Daten an der ersten physikalischen Adresse
angeordnet sind; und
wobei die Abbildungstabelle (446) während einer Aufräum operation derart aktualisiert wird, daß der erste Wert des Fel des (522) der nächsten logischen Adresse auf die zweite logi sche Adresse verweist, und die zugehörige physikalische Adresse derart aktualisiert wird, daß sie die zweite physikalische Adresse identifiziert, wobei die zweite physikalische Adresse eine Adresse der in dem Reserveblock des nicht-flüchtigen Halb leiterspeichers kopierten Daten ist.
12. Computersystem nach Anspruch 10 oder 11, dadurch
gekennzeichnet, daß die Speichermittel (14; 42; 78) als ROM
ausgebildet sind.
13. Computersystem nach Anspruch 10 oder 11, dadurch
gekennzeichnet, daß die Speichermittel als RAM ausgebildet
sind.
14. Computersystem nach Anspruch 13, dadurch gekennzeich
net, daß der RAM ein Mehrzweck-System-RAM oder ein Pufferspei
cher ist.
15. Computersystem nach einem der Ansprüche 10 bis 14,
dadurch gekennzeichnet, daß der Halbleiterspeicher (105)
als Seitenwechsel-Speicher abgebildet wird.
16. Computersystem nach Anspruch 10, dadurch gekennzeich
net, daß der Halbleiterspeicher (149) als direktabge
bildeter Speicher abgebildet wird.
17. Computersystem nach einem der Ansprüche 10 bis 16,
dadurch gekennzeichnet, daß ein Hardware-Steuerbauelement (92)
zur Ausführung des den Halbleiterspeicher (96) steuernden Pro
gramms vorgesehen ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63598890A | 1990-12-31 | 1990-12-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE4143072A1 DE4143072A1 (de) | 1992-07-02 |
DE4143072C2 true DE4143072C2 (de) | 2001-01-25 |
Family
ID=24549940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4143072A Expired - Fee Related DE4143072C2 (de) | 1990-12-31 | 1991-12-27 | Blockweise löschbarer nicht-flüchtiger Halbleiterspeicher |
Country Status (6)
Country | Link |
---|---|
US (1) | US5630093A (de) |
JP (1) | JP3195988B2 (de) |
DE (1) | DE4143072C2 (de) |
GB (1) | GB2251323B (de) |
HK (1) | HK56895A (de) |
SG (1) | SG27995G (de) |
Families Citing this family (268)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0617363B1 (de) * | 1989-04-13 | 2000-01-26 | SanDisk Corporation | Austausch von fehlerhaften Speicherzellen einer EEprommatritze |
US7190617B1 (en) * | 1989-04-13 | 2007-03-13 | Sandisk Corporation | Flash EEprom system |
US6230233B1 (en) * | 1991-09-13 | 2001-05-08 | Sandisk Corporation | Wear leveling techniques for flash EEPROM systems |
TW261687B (de) * | 1991-11-26 | 1995-11-01 | Hitachi Seisakusyo Kk | |
US6347051B2 (en) | 1991-11-26 | 2002-02-12 | Hitachi, Ltd. | Storage device employing a flash memory |
JPH05151097A (ja) * | 1991-11-28 | 1993-06-18 | Fujitsu Ltd | 書換回数制限型メモリのデータ管理方式 |
JP3587204B2 (ja) * | 1991-11-28 | 2004-11-10 | 株式会社日立製作所 | 記憶装置 |
JP3826936B2 (ja) * | 1991-11-28 | 2006-09-27 | 株式会社日立製作所 | 記憶装置 |
JPH05233426A (ja) * | 1992-02-20 | 1993-09-10 | Fujitsu Ltd | フラッシュ・メモリ使用方法 |
US6549974B2 (en) | 1992-06-22 | 2003-04-15 | Hitachi, Ltd. | Semiconductor storage apparatus including a controller for sending first and second write commands to different nonvolatile memories in a parallel or time overlapped manner |
JP3328321B2 (ja) * | 1992-06-22 | 2002-09-24 | 株式会社日立製作所 | 半導体記憶装置 |
JPH0750558B2 (ja) * | 1992-09-22 | 1995-05-31 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 一括消去型不揮発性メモリ |
US5479633A (en) * | 1992-10-30 | 1995-12-26 | Intel Corporation | Method of controlling clean-up of a solid state memory disk storing floating sector data |
US5473753A (en) * | 1992-10-30 | 1995-12-05 | Intel Corporation | Method of managing defects in flash disk memories |
US5369616A (en) * | 1992-10-30 | 1994-11-29 | Intel Corporation | Method for assuring that an erase process for a memory array has been properly completed |
US5337275A (en) * | 1992-10-30 | 1994-08-09 | Intel Corporation | Method for releasing space in flash EEPROM memory array to allow the storage of compressed data |
US5448577A (en) * | 1992-10-30 | 1995-09-05 | Intel Corporation | Method for reliably storing non-data fields in a flash EEPROM memory array |
US5471604A (en) * | 1992-10-30 | 1995-11-28 | Intel Corporation | Method for locating sector data in a memory disk by examining a plurality of headers near an initial pointer |
US5822781A (en) * | 1992-10-30 | 1998-10-13 | Intel Corporation | Sector-based storage device emulator having variable-sized sector |
US5357475A (en) * | 1992-10-30 | 1994-10-18 | Intel Corporation | Method for detaching sectors in a flash EEPROM memory array |
US5535369A (en) * | 1992-10-30 | 1996-07-09 | Intel Corporation | Method for allocating memory in a solid state memory disk |
US5341330A (en) * | 1992-10-30 | 1994-08-23 | Intel Corporation | Method for writing to a flash memory array during erase suspend intervals |
US5416782A (en) * | 1992-10-30 | 1995-05-16 | Intel Corporation | Method and apparatus for improving data failure rate testing for memory arrays |
US5341339A (en) * | 1992-10-30 | 1994-08-23 | Intel Corporation | Method for wear leveling in a flash EEPROM memory |
US5452311A (en) * | 1992-10-30 | 1995-09-19 | Intel Corporation | Method and apparatus to improve read reliability in semiconductor memories |
US5740395A (en) * | 1992-10-30 | 1998-04-14 | Intel Corporation | Method and apparatus for cleaning up a solid state memory disk storing floating sector data |
US5359570A (en) * | 1992-11-13 | 1994-10-25 | Silicon Storage Technology, Inc. | Solid state peripheral storage device |
US5740349A (en) * | 1993-02-19 | 1998-04-14 | Intel Corporation | Method and apparatus for reliably storing defect information in flash disk memories |
US5835933A (en) * | 1993-02-19 | 1998-11-10 | Intel Corporation | Method and apparatus for updating flash memory resident firmware through a standard disk drive interface |
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 |
US5603036A (en) * | 1993-02-19 | 1997-02-11 | Intel Corporation | Power management system for components used in battery powered applications |
US5455800A (en) * | 1993-02-19 | 1995-10-03 | Intel Corporation | Apparatus and a method for improving the program and erase performance of a flash EEPROM memory array |
US5586285A (en) * | 1993-02-19 | 1996-12-17 | Intel Corporation | Method and circuitry for increasing reserve memory in a solid state memory disk |
US5404485A (en) * | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
JP3078946B2 (ja) * | 1993-03-11 | 2000-08-21 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置 |
US5479638A (en) * | 1993-03-26 | 1995-12-26 | Cirrus Logic, Inc. | Flash memory mass storage architecture incorporation wear leveling technique |
US6078520A (en) * | 1993-04-08 | 2000-06-20 | Hitachi, Ltd. | Flash memory control method and information processing system therewith |
KR970008188B1 (ko) * | 1993-04-08 | 1997-05-21 | 가부시끼가이샤 히다찌세이사꾸쇼 | 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치 |
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 |
US5682497A (en) * | 1993-09-28 | 1997-10-28 | Intel Corporation | Managing file structures for a flash memory file system in a computer |
US5490264A (en) * | 1993-09-30 | 1996-02-06 | Intel Corporation | Generally-diagonal mapping of address space for row/column organizer memories |
SG49632A1 (en) * | 1993-10-26 | 1998-06-15 | Intel Corp | Programmable code store circuitry for a nonvolatile semiconductor memory device |
JP3251414B2 (ja) * | 1994-01-11 | 2002-01-28 | 三菱電機株式会社 | プログラマブルコントローラおよびそのプログラム容量変更方法 |
JP3784844B2 (ja) * | 1994-03-30 | 2006-06-14 | 沖電気工業株式会社 | 半導体記憶装置 |
JP3507132B2 (ja) * | 1994-06-29 | 2004-03-15 | 株式会社日立製作所 | フラッシュメモリを用いた記憶装置およびその記憶制御方法 |
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 |
US5754817A (en) * | 1994-09-29 | 1998-05-19 | Intel Corporation | Execution in place of a file stored non-contiguously in a non-volatile memory |
US5809558A (en) * | 1994-09-29 | 1998-09-15 | Intel Corporation | Method and data storage system for storing data in blocks without file reallocation before erasure |
JPH08137634A (ja) * | 1994-11-09 | 1996-05-31 | Mitsubishi Electric Corp | フラッシュディスクカード |
DE19540915A1 (de) * | 1994-11-10 | 1996-05-15 | Raymond Engineering | Redundante Anordnung von Festkörper-Speicherbausteinen |
US5563828A (en) * | 1994-12-27 | 1996-10-08 | Intel Corporation | Method and apparatus for searching for data in multi-bit flash EEPROM memory arrays |
JP2734391B2 (ja) * | 1995-01-18 | 1998-03-30 | 日本電気株式会社 | 不揮発性メモリのファイル管理装置 |
US5724592A (en) * | 1995-03-31 | 1998-03-03 | Intel Corporation | Method and apparatus for managing active power consumption in a microprocessor controlled storage device |
US5559957A (en) * | 1995-05-31 | 1996-09-24 | Lucent Technologies Inc. | File system for a data storage device having a power fail recovery mechanism for write/replace operations |
JP3782840B2 (ja) | 1995-07-14 | 2006-06-07 | 株式会社ルネサステクノロジ | 外部記憶装置およびそのメモリアクセス制御方法 |
EP0783748B1 (de) * | 1995-07-28 | 2001-11-21 | International Business Machines Corporation | Massenspeicherverwendung von lokalprobeanordnung |
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 |
US5845313A (en) | 1995-07-31 | 1998-12-01 | Lexar | Direct logical block addressing flash memory mass storage architecture |
US8171203B2 (en) | 1995-07-31 | 2012-05-01 | Micron Technology, Inc. | Faster write operations to nonvolatile memory using FSInfo sector manipulation |
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 |
US5835935A (en) * | 1995-09-13 | 1998-11-10 | Lexar Media, Inc. | Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory |
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 |
JPH0997314A (ja) * | 1995-09-28 | 1997-04-08 | Canon Inc | Icカード装置 |
JP3703181B2 (ja) * | 1995-09-28 | 2005-10-05 | キヤノン株式会社 | フラッシュrom管理方法及び装置 |
JPH0997206A (ja) * | 1995-09-28 | 1997-04-08 | Canon Inc | フラッシュrom管理方法及び装置及びコンピュータ制御装置 |
US6014724A (en) * | 1995-10-27 | 2000-01-11 | Scm Microsystems (U.S.) Inc. | Flash translation layer block indication map revision system and method |
US5987478A (en) * | 1995-10-31 | 1999-11-16 | Intel Corporation | Virtual small block file manager for flash memory array |
JPH09185551A (ja) * | 1996-01-08 | 1997-07-15 | Mitsubishi Electric Corp | 半導体記憶装置 |
US5860082A (en) * | 1996-03-28 | 1999-01-12 | Datalight, Inc. | Method and apparatus for allocating storage in a flash memory |
US5832525A (en) * | 1996-06-24 | 1998-11-03 | Sun Microsystems, Inc. | Disk fragmentation reduction using file allocation tables |
US5819298A (en) * | 1996-06-24 | 1998-10-06 | Sun Microsystems, Inc. | File allocation tables with holes |
US5793943A (en) * | 1996-07-29 | 1998-08-11 | Micron Electronics, Inc. | System for a primary BIOS ROM recovery in a dual BIOS ROM computer system |
JPH1063551A (ja) * | 1996-08-16 | 1998-03-06 | Nec Off Syst Ltd | 情報処理装置 |
GB2317720A (en) * | 1996-09-30 | 1998-04-01 | Nokia Mobile Phones Ltd | Managing Flash memory |
US6092168A (en) * | 1996-10-25 | 2000-07-18 | Hewlett-Packard Co. | Data storage system and method for deallocating space by writing and detecting a predefined data pattern |
US5937423A (en) * | 1996-12-26 | 1999-08-10 | Intel Corporation | Register interface for flash EEPROM memory arrays |
US6279069B1 (en) | 1996-12-26 | 2001-08-21 | Intel Corporation | Interface for flash EEPROM memory arrays |
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 |
JPH10326493A (ja) * | 1997-05-23 | 1998-12-08 | Ricoh Co Ltd | 複合化フラッシュメモリ装置 |
JP4079506B2 (ja) * | 1997-08-08 | 2008-04-23 | 株式会社東芝 | 不揮発性半導体メモリシステムの制御方法 |
JP3319361B2 (ja) * | 1997-09-30 | 2002-08-26 | ソニー株式会社 | 記憶装置、データ処理装置及びデータ処理方法 |
US5937425A (en) * | 1997-10-16 | 1999-08-10 | M-Systems Flash Disk Pioneers Ltd. | Flash file system optimized for page-mode flash technologies |
JP3534585B2 (ja) * | 1997-10-21 | 2004-06-07 | 株式会社日立製作所 | フラッシュメモリを複数使用した外部記憶装置のデータ記憶制御方法及び装置 |
JPH11203191A (ja) * | 1997-11-13 | 1999-07-30 | Seiko Epson Corp | 不揮発性記憶装置、不揮発性記憶装置の制御方法、および、不揮発性記憶装置を制御するプログラムを記録した情報記録媒体 |
WO1999030239A1 (fr) * | 1997-12-05 | 1999-06-17 | Tokyo Electron Limited | Memoire et procede d'acces |
US6009520A (en) * | 1997-12-10 | 1999-12-28 | Phoenix Technologies, Ltd | Method and apparatus standardizing use of non-volatile memory within a BIOS-ROM |
US6560702B1 (en) | 1997-12-10 | 2003-05-06 | Phoenix Technologies Ltd. | Method and apparatus for execution of an application during computer pre-boot operation |
US6117186A (en) * | 1998-01-15 | 2000-09-12 | Dvp Media Pty Ltd. | System and method for easy loading of CD-ROM computer software without installation process |
JP2000030375A (ja) * | 1998-07-10 | 2000-01-28 | Tokyo Electron Ltd | データ処理システム、アクセス装置及び記録媒体 |
JP4085478B2 (ja) * | 1998-07-28 | 2008-05-14 | ソニー株式会社 | 記憶媒体及び電子機器システム |
US6694340B1 (en) | 1998-09-24 | 2004-02-17 | International Business Machines Corporation | Technique for determining the age of the oldest reading transaction with a database object |
US6343293B1 (en) | 1998-09-24 | 2002-01-29 | International Business Machines Corporation | Storing the uncompressed data length in a LOB map to speed substring access within a LOB value |
US6363389B1 (en) | 1998-09-24 | 2002-03-26 | International Business Machines Corporation | Technique for creating a unique quasi-random row identifier |
US6144970A (en) * | 1998-09-24 | 2000-11-07 | International Business Machines Corporation | Technique for inplace reorganization of a LOB table space |
US6470359B1 (en) | 1998-09-24 | 2002-10-22 | International Business Machines Corporation | Fast technique for recovering an index on an auxiliary table |
US6343286B1 (en) | 1998-09-24 | 2002-01-29 | International Business Machines Corporation | Efficient technique to defer large object access with intermediate results |
US6606617B1 (en) | 1998-09-24 | 2003-08-12 | International Business Machines Corporation | Optimized technique for prefetching LOB table space pages |
US6366902B1 (en) | 1998-09-24 | 2002-04-02 | International Business Machines Corp. | Using an epoch number to optimize access with rowid columns and direct row access |
US6308264B1 (en) * | 1998-09-30 | 2001-10-23 | Phoenix Technologies Ltd. | Dual use master boot record |
TW494303B (en) * | 1998-10-20 | 2002-07-11 | Via Tech Inc | Input/output controller |
JP3511916B2 (ja) * | 1998-11-17 | 2004-03-29 | 松下電器産業株式会社 | 記録再生装置 |
US6260156B1 (en) | 1998-12-04 | 2001-07-10 | Datalight, Inc. | Method and system for managing bad areas in flash memory |
US6317875B1 (en) * | 1999-01-15 | 2001-11-13 | Intel Corporation | Application execution performance through disk block relocation |
GB9903490D0 (en) * | 1999-02-17 | 1999-04-07 | Memory Corp Plc | Memory system |
US6725322B1 (en) * | 1999-02-22 | 2004-04-20 | Renesas Technology Corp. | Memory card, method for allotting logical address, and method for writing data |
US6104638A (en) * | 1999-02-26 | 2000-08-15 | Hewlett-Packard Company | Use of erasable non-volatile memory for storage of changing information |
US7774315B1 (en) * | 1999-03-12 | 2010-08-10 | Eldad Galker | Backup system |
US6192456B1 (en) * | 1999-03-30 | 2001-02-20 | Adaptec, Inc. | Method and apparatus for creating formatted fat partitions with a hard drive having a BIOS-less controller |
US6427186B1 (en) * | 1999-03-30 | 2002-07-30 | Frank (Fong-Long) Lin | Memory, interface system and method for mapping logical block numbers to physical sector numbers in a flash memory, using a master index table and a table of physical sector numbers |
US6148354A (en) | 1999-04-05 | 2000-11-14 | M-Systems Flash Disk Pioneers Ltd. | Architecture for a universal serial bus-based PC flash disk |
US6535949B1 (en) | 1999-04-19 | 2003-03-18 | Research In Motion Limited | Portable electronic device having a log-structured file system in flash memory |
WO2000067132A1 (en) * | 1999-04-30 | 2000-11-09 | Centennial Technologies, Inc. | Combination ata/linear flash memory device |
IL129947A (en) * | 1999-05-13 | 2003-06-24 | Tadiran Telecom Business Syste | Method and apparatus for downloading software into an embedded system |
US20080071973A1 (en) * | 2000-01-06 | 2008-03-20 | Chow David Q | Electronic data flash card with various flash memory cells |
US6629199B1 (en) * | 1999-08-20 | 2003-09-30 | Emc Corporation | Digital data storage system including directory for efficiently providing formatting information for stored records and utilization of a check value for verifying that a record is from a particular storage location |
US6565443B1 (en) | 1999-09-14 | 2003-05-20 | Innovative Gaming Corporation | System and method for verifying the contents of a mass storage device before granting access to computer readable data stored on the device |
KR100577380B1 (ko) * | 1999-09-29 | 2006-05-09 | 삼성전자주식회사 | 플래시 메모리와 그 제어 방법 |
US6742078B1 (en) * | 1999-10-05 | 2004-05-25 | Feiya Technology Corp. | Management, data link structure and calculating method for flash memory |
JP3604977B2 (ja) * | 1999-10-14 | 2004-12-22 | Necエレクトロニクス株式会社 | バスインタフェース回路作成装置及び記録媒体 |
US6839827B1 (en) * | 2000-01-18 | 2005-01-04 | International Business Machines Corporation | Method, system, program, and data structures for mapping logical blocks to physical blocks |
US6687815B1 (en) * | 2000-02-01 | 2004-02-03 | Sun Microsystems, Inc. | Method and apparatus for storing non-volatile configuration information |
US6480943B1 (en) * | 2000-04-29 | 2002-11-12 | Hewlett-Packard Company | Memory address interleaving and offset bits for cell interleaving of memory |
JP3942807B2 (ja) * | 2000-06-06 | 2007-07-11 | 株式会社ルネサステクノロジ | ブロックアラインメント機能付き半導体記憶装置 |
US7167944B1 (en) | 2000-07-21 | 2007-01-23 | Lexar Media, Inc. | Block management for mass storage |
US6715036B1 (en) | 2000-08-01 | 2004-03-30 | International Business Machines Corporation | Method, system, and data structures for transferring blocks of data from a storage device to a requesting application |
US7155559B1 (en) | 2000-08-25 | 2006-12-26 | Lexar Media, Inc. | Flash memory architecture with separate storage of overhead and user data |
US7062602B1 (en) | 2001-04-09 | 2006-06-13 | Matrix Semiconductor, Inc. | Method for reading data in a write-once memory device using a write-many file system |
US7003619B1 (en) | 2001-04-09 | 2006-02-21 | Matrix Semiconductor, Inc. | Memory device and method for storing and reading a file system structure in a write-once memory array |
US6996660B1 (en) | 2001-04-09 | 2006-02-07 | Matrix Semiconductor, Inc. | Memory device and method for storing and reading data in a write-once memory array |
US6895490B1 (en) * | 2001-04-09 | 2005-05-17 | Matrix Semiconductor, Inc. | Method for making a write-once memory device read compatible with a write-many file system |
JP2002351685A (ja) * | 2001-05-22 | 2002-12-06 | Sankyo Seiki Mfg Co Ltd | 不揮発性メモリのデータ更新方法及び制御装置 |
KR100389867B1 (ko) | 2001-06-04 | 2003-07-04 | 삼성전자주식회사 | 플래시 메모리 관리방법 |
JP3613336B2 (ja) * | 2001-06-05 | 2005-01-26 | 日本電気株式会社 | ファイルアクセス制御方法、装置、及びプログラム |
TWI240864B (en) * | 2001-06-13 | 2005-10-01 | Hitachi Ltd | Memory device |
AU2002315365A1 (en) * | 2001-06-21 | 2003-01-08 | Dan Bress | Systems and methods for removing data stored on long-term memory devices |
CN1122281C (zh) * | 2001-06-30 | 2003-09-24 | 深圳市朗科科技有限公司 | 一种多功能半导体存储装置 |
DE10134973A1 (de) * | 2001-07-24 | 2003-02-20 | Orga Kartensysteme Gmbh | Computersystem und Verfahren zum Speichern von Dateien auf einer Chipkarte |
US7107299B2 (en) * | 2001-08-14 | 2006-09-12 | Hewlett-Packard Development Company, L.P. | Method and apparatus for managing large numbers of objects having the same property |
JP2003058417A (ja) * | 2001-08-21 | 2003-02-28 | Matsushita Electric Ind Co Ltd | 記憶装置 |
GB0123415D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Method of writing data to non-volatile memory |
GB0123421D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Power management system |
GB0123410D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Memory system for data storage and retrieval |
GB0123416D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Non-volatile memory control |
US7502886B1 (en) * | 2001-10-23 | 2009-03-10 | Emc Corporation | Data storage device with two-tier raid control circuitry |
US6732222B1 (en) * | 2002-02-01 | 2004-05-04 | Silicon Motion, Inc. | Method for performing flash memory file management |
US7277011B2 (en) * | 2002-02-22 | 2007-10-02 | Micron Technology, Inc. | Removable memory media with integral indicator light |
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 |
US7010662B2 (en) * | 2002-02-27 | 2006-03-07 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
US7533214B2 (en) * | 2002-02-27 | 2009-05-12 | Microsoft Corporation | Open architecture flash driver |
US6901499B2 (en) * | 2002-02-27 | 2005-05-31 | Microsoft Corp. | System and method for tracking data stored in a flash memory device |
US7085879B2 (en) * | 2002-02-27 | 2006-08-01 | Microsoft Corporation | Dynamic data structures for tracking data stored in a flash memory device |
US6587383B1 (en) * | 2002-03-19 | 2003-07-01 | Micron Technology, Inc. | Erase block architecture for non-volatile memory |
US7627464B2 (en) * | 2002-04-18 | 2009-12-01 | Standard Microsystems Corporation | Bootable solid state floppy disk drive |
US6707748B2 (en) * | 2002-05-07 | 2004-03-16 | Ritek Corporation | Back up power embodied non-volatile memory device |
US7032093B1 (en) * | 2002-08-08 | 2006-04-18 | 3Pardata, Inc. | On-demand allocation of physical storage for virtual volumes using a zero logical disk |
US7093071B2 (en) * | 2002-10-09 | 2006-08-15 | Intel Corporation | Queued copy command |
FR2846114A1 (fr) * | 2002-10-16 | 2004-04-23 | Thomson Licensing Sa | Dispositif de memorisation d'une liste d'elements et procede de memorisation d'un element dans un tel dispositif |
CN100483552C (zh) | 2002-10-28 | 2009-04-29 | 桑迪士克股份有限公司 | 在非易失性存储系统中执行自动磨损平衡的方法 |
JP3694501B2 (ja) * | 2002-10-30 | 2005-09-14 | 松下電器産業株式会社 | 記憶装置 |
KR100457812B1 (ko) * | 2002-11-14 | 2004-11-18 | 삼성전자주식회사 | 플래시 메모리, 그에 따른 플래시 메모리 액세스 장치 및방법 |
US7082512B2 (en) * | 2002-11-21 | 2006-07-25 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
US6901498B2 (en) * | 2002-12-09 | 2005-05-31 | Sandisk Corporation | Zone boundary adjustment for defects in non-volatile memories |
US7051251B2 (en) * | 2002-12-20 | 2006-05-23 | Matrix Semiconductor, Inc. | Method for storing data in a write-once memory array using a write-many file system |
US20040225874A1 (en) * | 2003-05-09 | 2004-11-11 | Jeremy Burr | Method for reduced BIOS boot time |
US20050010835A1 (en) * | 2003-07-11 | 2005-01-13 | International Business Machines Corporation | Autonomic non-invasive backup and storage appliance |
JP2005085011A (ja) * | 2003-09-09 | 2005-03-31 | Renesas Technology Corp | 不揮発性メモリ制御装置 |
EP1686482B1 (de) * | 2003-11-18 | 2013-03-06 | Panasonic Corporation | Dateiaufzeichnungseinrichtung |
JP4567966B2 (ja) * | 2003-12-22 | 2010-10-27 | 株式会社東芝 | エミュレーションシステムおよびエミュレーション方法 |
KR100533682B1 (ko) * | 2003-12-26 | 2005-12-05 | 삼성전자주식회사 | 플래시 메모리의 데이터 관리 장치 및 방법 |
KR100526188B1 (ko) * | 2003-12-30 | 2005-11-04 | 삼성전자주식회사 | 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리 |
US20080082736A1 (en) * | 2004-03-11 | 2008-04-03 | Chow David Q | Managing bad blocks in various flash memory cells for electronic data flash card |
US7725628B1 (en) | 2004-04-20 | 2010-05-25 | Lexar Media, Inc. | Direct secondary device interface by a host |
US7370166B1 (en) | 2004-04-30 | 2008-05-06 | Lexar Media, Inc. | Secure portable storage device |
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 |
US7398348B2 (en) | 2004-08-24 | 2008-07-08 | Sandisk 3D Llc | Method and apparatus for using a one-time or few-time programmable memory with a host device designed for erasable/rewritable memory |
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 |
US20060069848A1 (en) * | 2004-09-30 | 2006-03-30 | Nalawadi Rajeev K | Flash emulation using hard disk |
KR100631765B1 (ko) * | 2004-10-18 | 2006-10-09 | 삼성전자주식회사 | 플래시 메모리의 데이터 처리 장치 및 방법 |
WO2006135441A1 (en) * | 2004-10-25 | 2006-12-21 | Nalpeiron | Method and apparatus for restricting use of a computer program |
US7409623B2 (en) * | 2004-11-04 | 2008-08-05 | Sigmatel, Inc. | System and method of reading non-volatile computer memory |
KR100643288B1 (ko) * | 2004-11-16 | 2006-11-10 | 삼성전자주식회사 | 플래시 메모리의 데이터 처리 장치 및 방법 |
DE102004058528B3 (de) * | 2004-12-04 | 2006-05-04 | Hyperstone Ag | Speichersystem mit Sektorbuffern |
US20060136657A1 (en) * | 2004-12-22 | 2006-06-22 | Intel Corporation | Embedding a filesystem into a non-volatile device |
KR100684942B1 (ko) * | 2005-02-07 | 2007-02-20 | 삼성전자주식회사 | 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템 |
US7634494B2 (en) * | 2005-05-03 | 2009-12-15 | Intel Corporation | Flash memory directory virtualization |
US7752381B2 (en) * | 2005-05-24 | 2010-07-06 | Micron Technology, Inc. | Version based non-volatile memory translation layer |
US7797479B2 (en) * | 2005-06-30 | 2010-09-14 | Intel Corporation | Technique to write to a non-volatile memory |
US7533323B2 (en) * | 2005-07-28 | 2009-05-12 | Prostor Systems, Inc. | Adaptive archival format |
US7512864B2 (en) * | 2005-09-30 | 2009-03-31 | Josef Zeevi | System and method of accessing non-volatile computer memory |
ITVA20050061A1 (it) * | 2005-11-08 | 2007-05-09 | St Microelectronics Srl | Metodo di gestione di un dispositivo di memoria non volatile e relativa memoria |
US7644251B2 (en) * | 2005-12-19 | 2010-01-05 | Sigmatel, Inc. | Non-volatile solid-state memory controller |
US20070226394A1 (en) * | 2006-03-27 | 2007-09-27 | Finisar Corporation | Alternate storage of repeated data within a data storage device |
US7979624B2 (en) * | 2006-03-31 | 2011-07-12 | Intel Corporation | Techniques to truncate data files in nonvolatile memory |
JP4984666B2 (ja) * | 2006-06-12 | 2012-07-25 | ソニー株式会社 | 不揮発性メモリ |
US8285757B2 (en) * | 2007-01-31 | 2012-10-09 | Agency For Science, Technology And Research | File system for a storage device, methods of allocating storage, searching data and optimising performance of a storage device file system |
US7917479B2 (en) * | 2007-03-20 | 2011-03-29 | Micron Technology, Inc. | Non-volatile memory devices, systems including same and associated methods |
KR100826654B1 (ko) * | 2007-04-24 | 2008-05-06 | 주식회사 하이닉스반도체 | 플래시 메모리소자의 동작방법 및 이를 위한 제어회로 |
US9396103B2 (en) * | 2007-06-08 | 2016-07-19 | Sandisk Technologies Llc | Method and system for storage address re-mapping for a memory device |
US7913033B2 (en) | 2007-10-09 | 2011-03-22 | Micron Technology, Inc. | Non-volatile memory device having assignable network identification |
US8090904B2 (en) * | 2008-02-01 | 2012-01-03 | Cru Acquisition Group, Llc | Reduced hard-drive-capacity detection device |
JP5218228B2 (ja) * | 2008-04-23 | 2013-06-26 | 新東工業株式会社 | 搬送装置及びブラスト加工装置 |
US20090271562A1 (en) * | 2008-04-25 | 2009-10-29 | Sinclair Alan W | Method and system for storage address re-mapping for a multi-bank memory device |
EP2189895A1 (de) | 2008-11-24 | 2010-05-26 | Deutsche Thomson OHG | Flash-basierter Speicher, der eine Flash-Übersetzungsschicht umfasst, und Verfahren zum Speichern einer Datei darin |
TWI499906B (zh) | 2008-12-08 | 2015-09-11 | Apacer Technology Inc | Memory reorganization method of storage device, computer storage medium, computer program product, reorganization method |
JP4461187B1 (ja) * | 2008-12-24 | 2010-05-12 | 株式会社東芝 | 不揮発性半導体メモリドライブ装置、情報処理装置および不揮発性半導体メモリドライブ装置における記憶領域の管理方法 |
US20100235605A1 (en) * | 2009-02-13 | 2010-09-16 | Nir Perry | Enhancement of storage life expectancy by bad block management |
US8880544B2 (en) * | 2009-06-26 | 2014-11-04 | Simplivity Corporation | Method of adapting a uniform access indexing process to a non-uniform access memory, and computer system |
EP2460104A4 (de) * | 2009-07-27 | 2016-10-05 | Ibm | Verfahren und system zur transformation logischer datenobjekte für speicherungszwecke |
WO2011021174A2 (en) * | 2009-08-21 | 2011-02-24 | Xdata Engineering Limited | Storage peripheral device emulation |
US8724401B2 (en) * | 2009-09-29 | 2014-05-13 | Seagate Technology Llc | Data stripes and addressing for flash memory devices |
US8745353B2 (en) * | 2009-10-23 | 2014-06-03 | Seagate Technology Llc | Block boundary resolution for mismatched logical and physical block sizes |
US8364929B2 (en) * | 2009-10-23 | 2013-01-29 | Seagate Technology Llc | Enabling spanning for a storage device |
TW201115582A (en) * | 2009-10-29 | 2011-05-01 | Acer Inc | Method for determining data correlation and data processing method for memory |
US8473669B2 (en) * | 2009-12-07 | 2013-06-25 | Sandisk Technologies Inc. | Method and system for concurrent background and foreground operations in a non-volatile memory array |
US8266369B2 (en) * | 2009-12-18 | 2012-09-11 | Nxp B.V. | Flash memory interface |
WO2011148223A1 (en) | 2010-05-27 | 2011-12-01 | Sandisk Il Ltd | Memory management storage to a host device |
EP2413329B1 (de) | 2010-07-28 | 2014-03-26 | Fujitsu Semiconductor Europe GmbH | Elektronische Vorrichtungen |
US8452911B2 (en) | 2010-09-30 | 2013-05-28 | Sandisk Technologies Inc. | Synchronized maintenance operations in a multi-bank storage system |
EP2515237A1 (de) * | 2011-04-18 | 2012-10-24 | Gemalto SA | Tragbare sichere Vorrichtung mit Speicherdienst |
JP5792019B2 (ja) * | 2011-10-03 | 2015-10-07 | 株式会社日立製作所 | 半導体装置 |
US8762627B2 (en) | 2011-12-21 | 2014-06-24 | Sandisk Technologies Inc. | Memory logical defragmentation during garbage collection |
EP2657845A1 (de) * | 2012-04-25 | 2013-10-30 | Siemens Aktiengesellschaft | Verfahren zur Änderung von Daten bei einer Anforderung der Daten von einem physikalischen Speicher durch eine Empfangseinheit |
US9165010B2 (en) | 2012-04-30 | 2015-10-20 | Sap Se | Logless atomic data movement |
US9171020B2 (en) | 2012-04-30 | 2015-10-27 | Sap Se | Deleting records in a multi-level storage architecture |
US9465844B2 (en) | 2012-04-30 | 2016-10-11 | Sap Se | Unified table query processing |
US10162766B2 (en) * | 2012-04-30 | 2018-12-25 | Sap Se | Deleting records in a multi-level storage architecture without record locks |
US9465829B2 (en) | 2012-04-30 | 2016-10-11 | Sap Se | Partial merge |
US8910018B2 (en) * | 2012-07-17 | 2014-12-09 | Macronix International Co., Ltd. | Memory with dynamic error detection and correction |
US9195578B2 (en) * | 2012-08-24 | 2015-11-24 | International Business Machines Corporation | Systems, methods and computer program products memory space management for storage class memory |
KR20140038110A (ko) * | 2012-09-20 | 2014-03-28 | 한국전자통신연구원 | 파일 시스템 관리 방법 및 이를 이용하는 장치 |
DE102012022728A1 (de) * | 2012-11-21 | 2014-05-22 | Unify Gmbh & Co. Kg | Verfahren zur Steuerung eines Flash-Speichers zur Massenspeicherung, der von einem an einen Host anschließbaren Kommunikationsgerät umfasst ist, und Computerprogrammprodukt zur Ausführung des Verfahrens |
US9047172B2 (en) | 2012-11-29 | 2015-06-02 | Intel Corporation | Adaptive power control of memory map storage devices |
US8954656B2 (en) | 2012-12-20 | 2015-02-10 | Sandisk Technologies Inc. | Method and system for reducing mapping table size in a storage device |
US9348746B2 (en) | 2012-12-31 | 2016-05-24 | Sandisk Technologies | Method and system for managing block reclaim operations in a multi-layer memory |
US9223693B2 (en) | 2012-12-31 | 2015-12-29 | Sandisk Technologies Inc. | Memory system having an unequal number of memory die on different control channels |
US9336133B2 (en) | 2012-12-31 | 2016-05-10 | Sandisk Technologies Inc. | Method and system for managing program cycles including maintenance programming operations in a multi-layer memory |
US9465731B2 (en) | 2012-12-31 | 2016-10-11 | Sandisk Technologies Llc | Multi-layer non-volatile memory system having multiple partitions in a layer |
US9734050B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for managing background operations in a multi-layer memory |
US9734911B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for asynchronous die operations in a non-volatile memory |
US8873284B2 (en) | 2012-12-31 | 2014-10-28 | Sandisk Technologies Inc. | Method and system for program scheduling in a multi-layer memory |
US8943266B2 (en) | 2013-03-13 | 2015-01-27 | Hitachi, Ltd. | Storage system and method of control for storage system |
US8812744B1 (en) | 2013-03-14 | 2014-08-19 | Microsoft Corporation | Assigning priorities to data for hybrid drives |
US9626126B2 (en) | 2013-04-24 | 2017-04-18 | Microsoft Technology Licensing, Llc | Power saving mode hybrid drive access management |
US9946495B2 (en) | 2013-04-25 | 2018-04-17 | Microsoft Technology Licensing, Llc | Dirty data management for hybrid drives |
US9229876B2 (en) | 2013-12-17 | 2016-01-05 | Sandisk Technologies Inc. | Method and system for dynamic compression of address tables in a memory |
US9383927B2 (en) | 2014-05-28 | 2016-07-05 | SandDisk Technologies LLC | Method and system for creating a mapping table cache from an interleaved subset of contiguous mapping data for a storage device |
EP3195128B1 (de) * | 2014-09-15 | 2020-10-21 | Intel Corporation | Speicherverwaltung in virtualisierter umgebung |
KR102344834B1 (ko) * | 2014-09-24 | 2021-12-29 | 삼성전자주식회사 | 솔리드 스테이트 드라이브 및 이를 포함하는 컴퓨팅 시스템 |
US9781225B1 (en) * | 2014-12-09 | 2017-10-03 | Parallel Machines Ltd. | Systems and methods for cache streams |
US10055236B2 (en) | 2015-07-02 | 2018-08-21 | Sandisk Technologies Llc | Runtime data storage and/or retrieval |
US10042553B2 (en) | 2015-10-30 | 2018-08-07 | Sandisk Technologies Llc | Method and system for programming a multi-layer non-volatile memory having a single fold data path |
US9778855B2 (en) | 2015-10-30 | 2017-10-03 | Sandisk Technologies Llc | System and method for precision interleaving of data writes in a non-volatile memory |
US10133490B2 (en) | 2015-10-30 | 2018-11-20 | Sandisk Technologies Llc | System and method for managing extended maintenance scheduling in a non-volatile memory |
US10120613B2 (en) | 2015-10-30 | 2018-11-06 | Sandisk Technologies Llc | System and method for rescheduling host and maintenance operations in a non-volatile memory |
US10037164B1 (en) | 2016-06-29 | 2018-07-31 | EMC IP Holding Company LLC | Flash interface for processing datasets |
US10055351B1 (en) | 2016-06-29 | 2018-08-21 | EMC IP Holding Company LLC | Low-overhead index for a flash cache |
US10331561B1 (en) | 2016-06-29 | 2019-06-25 | Emc Corporation | Systems and methods for rebuilding a cache index |
US10261704B1 (en) | 2016-06-29 | 2019-04-16 | EMC IP Holding Company LLC | Linked lists in flash memory |
US10146438B1 (en) | 2016-06-29 | 2018-12-04 | EMC IP Holding Company LLC | Additive library for data structures in a flash memory |
US10089025B1 (en) | 2016-06-29 | 2018-10-02 | EMC IP Holding Company LLC | Bloom filters in a flash memory |
US10503635B2 (en) | 2016-09-22 | 2019-12-10 | Dell Products, Lp | System and method for adaptive optimization for performance in solid state drives based on segment access frequency |
US10747459B2 (en) * | 2017-10-26 | 2020-08-18 | Urflash Llc | Media storage device including multiple partitions |
US10906236B2 (en) | 2018-01-25 | 2021-02-02 | Ford Global Technologies, Llc | Article with solid, lattice, and hollow sub-regions |
US10802744B2 (en) * | 2018-09-06 | 2020-10-13 | Western Digital Technologies, Inc. | Updating mapping information during synchronization of memory device |
US11061598B2 (en) * | 2019-03-25 | 2021-07-13 | Western Digital Technologies, Inc. | Optimized handling of multiple copies in storage management |
CN115220639A (zh) * | 2021-04-15 | 2022-10-21 | 伊姆西Ip控股有限责任公司 | 管理存储系统的方法、电子设备和计算机程序产品 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0392895A2 (de) * | 1989-04-13 | 1990-10-17 | Sundisk Corporation | EEprom-System mit Blocklöschung |
Family Cites Families (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2828855C2 (de) * | 1978-06-30 | 1982-11-18 | Siemens AG, 1000 Berlin und 8000 München | Wortweise elektrisch umprogrammierbarer, nichtflüchtiger Speicher sowie Verfahren zum Löschen bzw. Einschreiben eines bzw. in einen solchen Speicher(s) |
JPS57132256A (en) * | 1981-02-09 | 1982-08-16 | Sony Corp | Memory device |
US4430727A (en) * | 1981-11-10 | 1984-02-07 | International Business Machines Corp. | Storage element reconfiguration |
JPS58215795A (ja) * | 1982-06-08 | 1983-12-15 | Toshiba Corp | 不揮発性メモリ装置 |
JPS58215794A (ja) * | 1982-06-08 | 1983-12-15 | Toshiba Corp | 不揮発性メモリ装置 |
US4511964A (en) * | 1982-11-12 | 1985-04-16 | Hewlett-Packard Company | Dynamic physical memory mapping and management of independent programming environments |
JPS59162695A (ja) * | 1983-03-07 | 1984-09-13 | Nec Corp | 記憶装置 |
US4644494A (en) * | 1984-02-06 | 1987-02-17 | Sundstrand Data Control, Inc. | Solid state memory for aircraft flight data recorder systems |
US4896262A (en) * | 1984-02-24 | 1990-01-23 | Kabushiki Kaisha Meidensha | Emulation device for converting magnetic disc memory mode signal from computer into semiconductor memory access mode signal for semiconductor memory |
US4642759A (en) * | 1984-04-02 | 1987-02-10 | Targa Electronics Systems Inc. | Bubble memory disk emulation system |
US4660130A (en) * | 1984-07-24 | 1987-04-21 | Texas Instruments Incorporated | Method for managing virtual memory to separate active and stable memory blocks |
US4775932A (en) * | 1984-07-31 | 1988-10-04 | Texas Instruments Incorporated | Computer memory system with parallel garbage collection independent from an associated user processor |
US4958315A (en) * | 1985-07-02 | 1990-09-18 | The United States Of America As Represented By The Secretary Of The Navy | Solid state electronic emulator of a multiple track motor driven rotating magnetic memory |
US4757533A (en) * | 1985-09-11 | 1988-07-12 | Computer Security Corporation | Security system for microcomputers |
US4800520A (en) * | 1985-10-29 | 1989-01-24 | Kabushiki Kaisha Toshiba | Portable electronic device with garbage collection function |
GB8529890D0 (en) * | 1985-12-04 | 1986-01-15 | Watson P | Garbage collection in computer system |
US4802117A (en) * | 1985-12-16 | 1989-01-31 | Pitney Bowes Inc. | Method of preserving data storage in a postal meter |
US4718041A (en) * | 1986-01-09 | 1988-01-05 | Texas Instruments Incorporated | EEPROM memory having extended life |
JP2685173B2 (ja) * | 1986-05-31 | 1997-12-03 | キヤノン株式会社 | メモリ書き込み制御方法 |
JPH07109717B2 (ja) * | 1986-05-31 | 1995-11-22 | キヤノン株式会社 | メモリ書き込み制御方法 |
US4797810A (en) * | 1986-06-26 | 1989-01-10 | Texas Instruments Incorporated | Incremental, multi-area, generational, copying garbage collector for use in a virtual address space |
JPS63113623A (ja) * | 1986-10-30 | 1988-05-18 | Nec Corp | セクタバツフア制御方式 |
JPS63183700A (ja) * | 1987-01-26 | 1988-07-29 | Mitsubishi Electric Corp | Eepromアクセス方法 |
US4984149A (en) * | 1987-03-28 | 1991-01-08 | Kabushiki Kaisha Toshiba | Memory access control apparatus |
US5053990A (en) * | 1988-02-17 | 1991-10-01 | Intel Corporation | Program/erase selection for flash memory |
US5268870A (en) * | 1988-06-08 | 1993-12-07 | Eliyahou Harari | Flash EEPROM system and intelligent programming and erasing methods therefor |
US5070474A (en) * | 1988-07-26 | 1991-12-03 | Disk Emulation Systems, Inc. | Disk emulation system |
US5012425A (en) * | 1988-12-30 | 1991-04-30 | Pitney Bowes Inc. | EPM having an improvement in non-volatile storage of accounting data |
US5101490A (en) * | 1989-01-10 | 1992-03-31 | Bull Hn Information Systems Inc. | Peripheral device controller with an EEPROM with microinstructions for a RAM control store |
US5047989A (en) * | 1989-03-10 | 1991-09-10 | Intel Corporation | Chapter mode selection apparatus for MOS memory |
US5163021A (en) * | 1989-04-13 | 1992-11-10 | Sundisk Corporation | Multi-state EEprom read and write circuits and techniques |
US5226168A (en) * | 1989-04-25 | 1993-07-06 | Seiko Epson Corporation | Semiconductor memory configured to emulate floppy and hard disk magnetic storage based upon a determined storage capacity of the semiconductor memory |
US5398142B1 (en) * | 1989-05-31 | 1997-09-16 | Raxco Inc | Method for eliminating file fragmentation and reducing average seek times in a magnetic disk media environment |
US5131089A (en) * | 1989-06-12 | 1992-07-14 | Grid Systems Corporation | Solid state disk drive emulation |
US5077737A (en) * | 1989-08-18 | 1991-12-31 | Micron Technology, Inc. | Method and apparatus for storing digital data in off-specification dynamic random access memory devices |
US5200959A (en) * | 1989-10-17 | 1993-04-06 | Sundisk Corporation | Device and method for defect handling in semi-conductor memory |
US5247658A (en) * | 1989-10-31 | 1993-09-21 | Microsoft Corporation | Method and system for traversing linked list record based upon write-once predetermined bit value of secondary pointers |
US5321834A (en) * | 1989-11-28 | 1994-06-14 | Xerox Corporation | Method and system for reclaiming unreferenced computer memory space |
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 |
US5270979A (en) * | 1991-03-15 | 1993-12-14 | Sundisk Corporation | Method for optimum erasing of EEPROM |
US6256642B1 (en) * | 1992-01-29 | 2001-07-03 | Microsoft Corporation | Method and system for file system management using a flash-erasable, programmable, read-only memory |
US5404485A (en) * | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
-
1991
- 1991-09-02 GB GB9118735A patent/GB2251323B/en not_active Expired - Fee Related
- 1991-12-19 JP JP35404191A patent/JP3195988B2/ja not_active Expired - Lifetime
- 1991-12-27 DE DE4143072A patent/DE4143072C2/de not_active Expired - Fee Related
-
1995
- 1995-02-17 SG SG27995A patent/SG27995G/en unknown
- 1995-04-11 HK HK56895A patent/HK56895A/xx not_active IP Right Cessation
-
1996
- 1996-04-19 US US08/635,030 patent/US5630093A/en not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0392895A2 (de) * | 1989-04-13 | 1990-10-17 | Sundisk Corporation | EEprom-System mit Blocklöschung |
Also Published As
Publication number | Publication date |
---|---|
JPH05241741A (ja) | 1993-09-21 |
JP3195988B2 (ja) | 2001-08-06 |
GB2251323B (en) | 1994-10-12 |
GB2251323A (en) | 1992-07-01 |
GB9118735D0 (en) | 1991-10-16 |
SG27995G (en) | 1995-06-16 |
HK56895A (en) | 1995-04-21 |
DE4143072A1 (de) | 1992-07-02 |
US5630093A (en) | 1997-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4143072C2 (de) | Blockweise löschbarer nicht-flüchtiger Halbleiterspeicher | |
DE60030876T2 (de) | Bereichsverwaltung eines nichtflüchtigen Speichers mit hoher Kapazität | |
DE69839126T2 (de) | Verschiebung aufeinander folgender sektoren innerhalb eines datenblocks in einem flash-massenspeicher | |
DE112020002526B4 (de) | Blockmodusumschaltung in datenspeichersystem | |
US5544356A (en) | Block-erasable non-volatile semiconductor memory which tracks and stores the total number of write/erase cycles for each block | |
DE60217883T2 (de) | Verfahren zum schreiben von daten in einen nicht-flüchtigen speicher | |
DE69034191T2 (de) | EEPROM-System mit aus mehreren Chips bestehender Blocklöschung | |
DE69534527T2 (de) | Verfahren zur Verwendung von nicht-aneinandergrenzenden reservierten Speicherplatz zur Datenmigration in einem hierarchischen redundanten Datenspeichersystem | |
USRE46404E1 (en) | Flash memory management method | |
US7984084B2 (en) | Non-volatile memory with scheduled reclaim operations | |
DE102008057219B4 (de) | Verfahren zum Betreiben eines Solid-State-Speichersystems, Solid-State-Speichersystem und Computersystem | |
DE60211653T2 (de) | Teildatenprogrammier- und leseoperationen in einem nichtflüchtigen speicher | |
DE60122155T2 (de) | Flashspeicherarchitektur zur implementierung von gleichzeitigen programmierbaren flashspeicherbanken mit host-kompatibilität | |
US9092340B2 (en) | Method and system for achieving die parallelism through block interleaving | |
DE69533058T2 (de) | Speicherplattenanordnung mit redundanter Speicherung und Verfahren zur inkrementalen Redundanzerzeugung während des Datenschreibens auf die Speicherplattenanordnung | |
EP1410399B1 (de) | Verfahren und schaltung zur verkürzung der blockschreibzeit bei einem nicht-flüchtigen speicher | |
DE19782041B4 (de) | Verfahren zum Durchführen eines kontinuierlichen Überschreibens einer Datei in einem nicht-flüchtigen Speicher | |
DE69533764T2 (de) | Verfahren zum Gebrauch von Speicherplatten unterschiedlicher Inhalte in einem Einzelvolumen einer hierarchischen Speicherplattenanordnung | |
DE102020106971A1 (de) | Datenschreibverwaltung im nichtflüchtigen speicher | |
CN1139031C (zh) | 包括多个存储装置的存储器设备 | |
DE69630624T2 (de) | EEPROM-Matrix mit einem, dem "Flash"-Speicher ähnlichen Kern | |
US8171203B2 (en) | Faster write operations to nonvolatile memory using FSInfo sector manipulation | |
DE112015000378T5 (de) | Selektives Rückkopieren für einen auf einem Chipplättchen gepufferten nichtflüchtigen Speicher | |
DE10238566A1 (de) | Fenster-basierendes Flashspeicher-Speichersystem und Management und Zugriffsverfahren darauf | |
DE102005031525A1 (de) | Verfahren und System zur Steuerung eines Flashspeichers und Speichersystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |