-
GEBIET
-
Ausführungsformen
der Erfindungen betreffen Computerspeicher. Genauer gesagt betreffen
Ausführungsformen der Erfindung den Abnutzungsausgleich
für einen nicht-flüchtigen Speicher.
-
HINTERGRUND
-
Bei
Computer- und Elektrogeräteoperationen können
Flash-Speicher und ähnliche nicht-flüchtige Speicher
große Vorteile bei der Erhaltung von Daten bieten, indem
sie einen Kleinleistungsbetrieb mit geringen Kosten und hoher Dichte
liefern. Da Daten in einem kompakten Format gespeichert werden,
das im Betrieb minimale Leistung benötigt und zur Aufrechterhaltung
der Speicherung keinen Strom benötigt, wird ein derartiger
Speicher in einer zunehmenden Anzahl von Anwendungen verwendet.
-
Der
nicht-flüchtige Speicher weist jedoch im Betrieb gewisse
Kehrseiten auf. Zum Beispiel weist ein Speicher, wie zum Beispiel
Flash-Speicher, eine begrenzte Lebensdauer im Gebrauch auf, weil
ein derartiger Speicher dazu neigt, mit jedem Schreibzyklus schlechter
zu werden. Wenn ein bestimmter Abschnitt des Speichers mehr Speicheroperationen
als andere Abschnitte des Speichers unterzogen wird, dann werden
aus diesem Grund die Abschnitte mit einer größeren
Anzahl von Schreibvorgängen dazu neigen, schlechter zu
werden und letztendlich schneller zu versagen.
-
Zur
Verlängerung der gesamten Lebensdauer eines Flash-Speichers
kann ein Abnutzungsausgleichsprozess implementiert werden. Der Abnutzungsausgleichsprozess
soll für eine gleichmäßigere Verteilung
der Abnutzung der Speichereinrichtung durch Lenken von Schreiboperationen
zu weniger verwendeten Abschnitten des Speichers führen.
Dieser Prozess kann durch den Speichercontroller abgewickelt werden,
wobei das Host-System von dem Prozess nichts weiß.
-
Abnutzungsausgleich
kann einen Algorithmus zum Neuzuordnen von logischen Blockadressen
zu unterschiedlichen physikalischen Blockadressen in dem Halbleiterspeicher-Array
der Einrichtung enthalten. Der verwendete Algorithmus kann jedoch
die Effizienz des Speicherbetriebs und die Effektivität
des Abnutzungsausgleichsprozesses erheblich beeinträchtigen.
Punkte, wie die zeitliche Steuerung von Neuzuordnungsprozessen,
die Art, in der die geeigneten physikalischen Bereiche für
eine Neuzuordnung identifiziert werden, und damit zusammenhängende
Punkte können den Speicherbetrieb erheblich beeinträchtigen.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Ausführungsformen
der Erfindung werden beispielhaft und nicht beschränkend
in den Figuren der beigefügten Zeichnungen dargestellt,
in denen sich gleiche Bezugszahlen auf gleiche Elemente beziehen:
-
1 zeigt
eine Darstellung einer Ausführungsform eines nicht-flüchtigen
Speichers;
-
2 zeigt
ein Flussdiagramm, das eine Ausführungsform eines Abnutzungsausgleichsprozesses darstellt;
-
3A zeigt
eine Darstellung einer Regressionslinie, die für einen
nicht-flüchtigen Speicher vor Abnutzungsausgleich generiert
ist;
-
3B zeigt
eine Darstellung einer Regressionslinie, die für einen
nicht-flüchtigen Speicher generiert ist, nachdem eine Ausführungsform
von Abnutzungsausgleich implementiert wurde;
-
4 bis 7 zeigen
ein Beispiel für Speicherblockwiederbeanspruchungsoperationen
in einer Ausführungsform eines Abnutzungsausgleichsprozesses;
-
8 zeigt
eine Darstellung einer Ausführungsform einer nicht-flüchtigen
Speichervorrichtung; und
-
9 zeigt
eine Darstellung eines Computersystems, das eine Ausführungsform
der Erfindung verwendet.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Eine
Ausführungsform der Erfindung betrifft initiativen Abnutzungsausgleich
für einen nicht-flüchtigen Speicher.
-
In
der hierin verwendeten Form bedeutet:
- „nicht-flüchtiger
Speicher” Speicher, der Speicherinhalte aufrechterhält,
wenn der Speicher nicht mit Strom versorgt wird. Nicht-flüchtiger
Speicher schließt Flash-Speicher ein.
- „Flash-Speicher” nicht-flüchtiger
Computerspeicher, der elektrisch gelöscht und neu programmiert
werden kann. Flash-Speicher speichert Informationen in einem Array
von Transistoren mit schwebendem Gate (floating gate transistors), „Zellen” genannt,
von denen jeder ein oder mehr Bits an Information speichert. In
der hierin verwendeten Form kann „Flash-Speicher” irgendeine
der Technologien zur Flash-Speicher-Ablage einschließen.
Zum Beispiel kann ein Flash-Speicher NOR- und NAND-Technologie-Speicher
einschließen. Zusätzlich kann Flash-Speicher Technologien
einschließen, die variierende Zahlen von Bits an Information
pro Speicherzelle liefern, einschließlich ein-Bit-pro-Zelle-Flash-Speicher
(single-bit-per-cell flash memory) und Mehrebenenzellstruktur (multi-level
cell structure), die mehrere Bits pro Zelle zulässt.
- „Abnutzung” die Nutzung eines nicht-flüchtigen
Speichers.
- „Block” ein Abschnitt einer nicht-flüchtigen
Speicheranordnung (non-volatile memory array), der im Betrieb gelöscht
werden kann, wobei der Block mehrere Zellen enthält. Einzelne
Zellen eines gelöschten Flash-Speicherblocks können
programmiert werden, aber Zellen in einem Block eines Flash-Speichers
können nur durch Löschen des gesamten Speicherblocks
geändert werden.
-
In
einer Ausführungsform der Erfindung wird der ungleichmäßigen
Abnutzung von Flash- oder anderen nicht-flüchtigen Speichern
durch Verwendung eines Abnutzungsausgleichsprozesses begegnet. In
einer Ausführungsform der Erfindung wird Abnutzungsausgleich
durch Tauschen von Daten aus einer Gruppe von am meisten abgenutzten
Speicherblöcken gegen Daten aus einer Gruppe von am wenigstens
abgenutzten Speicherblöcken implementiert. In einer Ausführungsform
enthält ein Abnutzungsausgleichsprozess für einen nicht-flüchtigen
Speicher die Pflege von Zählern für Löschoperationen
für Speicherblöcke sowohl für jede physikalische
Blockadresse als auch für jede logische Blockadresse. In
einer Ausführungsform wird der Abnutzungsausgleichsprozess
in bestimmten Intervallen ausgelöst, wenn ermittelt worden
ist, dass eine Steigung einer Linie, die den Zähler für
Löschen von physikalischen Blöcken und den Zähler
für Löschen von logischen Blöcken jedes
Speicherblocks repräsentiert, größer
als ein bestimmter Schwellenwert ist.
-
Ein
nicht-flüchtiger Speicher, wie zum Beispiel Flash-Speicher,
weist im Betrieb Einschränkungen auf, weil der Speicher
nur eine bestimmte endliche Zahl von Lösch-Schreib-Zyklen
zulassen wird und es notwendig ist, einen Block zu löschen,
bevor irgendwelche Daten in die Zellen des Blocks geschrieben werden.
Zum Beispiel wird bei den meisten kommerziell erhältlichen
Flash-Produkten garantiert, dass sie 1 Million Programmierzyklen
aushalten. Aus diesem Grund sollte man Vorsicht walten lassen, wenn
man festplattengestützte Anwendungen, wie zum Beispiel
Betriebssysteme, auf Flash-Speichergestützte Einrichtungen,
wie zum Beispiel CompactFlash, umstellt. Der Effekt der ungleichen
Abnutzung kann durch bestimmte Chip-Firmware oder Dateisystemtreiber
durch Zählen der Schreibvorgänge und dynamisches
Neuzuordnen der Blöcke, um die Schreiboperationen auf die
Sektoren zu verteilen, oder durch Schreibverifikation und Neuzuordnung
von freien Sektoren im Fall von Schreibfehlern teilweise kompensiert
werden. Mit der Zeit wird jedoch eine Variation der Aktivität
von Daten allgemein zu einer ungleichen Abnutzung führen.
-
Es
wird auch allgemein empfohlen, im Betrieb von nicht-flüchtigen
Speichern einen Abnutzungsausgleichsprozess oder -algorithmus zu
implementieren, um die Anzahl von Schreibzyklen, die pro Speicherblock auftreten,
zu überwachen und zu verteilen. Dies ist für schreibintensive
Anwendungen besonders wichtig. Wenn kein Abnutzungsausgleich implementiert
ist, dann können Speicherblöcke mit sehr unterschiedlichen Raten
verwendet werden. Blöcke mit langlebigen Daten müssen
nicht so viele Lösch-Schreib-Zyklen wie die Blöcke
mit sich häufig ändernden Daten aushalten. Der
Abnutzungsausgleichsprozess soll sicherstellen, dass alle verfügbaren
Schreibzyklen für jeden Block allgemein gleichmäßig
verwendet werden. Allgemein kann Abnutzungsausgleich den Austausch
von Daten zwischen Speicherblöcken einschließen.
-
In
einer Ausführungsform der Erfindung ist ein Abnutzungsausgleichsprozess
(der als IWL(Initiative Wear Leveling) bezeichnet werden kann) in
einem nicht-flüchtigen Speicher implementiert. In einer
Ausführungsform der Erfindung kann der Abnutzungsausgleich
für einen nicht-flüchtigen Speicher den Austausch
von Gruppen von Speicherblöcken statt einzelner Speicherblöcke
einschließen. In dieser Ausführungsform kann eine
erste Gruppe die am stärksten abgenutzten Speicherblöcke
eines nicht-flüchtigen Speichers repräsentierten
und kann eine zweite Gruppe die am wenigstens abgenutzten Speicherblöcke
repräsentieren. Die Daten können unter Blöcken
in genannten Gruppen ausgetauscht werden.
-
In
einer Ausführungsform der Erfindung schließt ein
Prozess zum Abnutzungsausgleich für einen nicht-flüchtigen
Speicher das Aufzeichnen der Anzahl von Löschoperationen
für Speicherblöcke sowohl für physikalische
als auch logische Adressen ein. In einer Ausführungsform
wird zusätzlich zum Pflegen bzw. Aufbewahren eines PBEC(Physical
Block Erase Count)-Werts zum Verfolgen, wieviele Wiederanspruchungsoperationen
an einem physikalischem Block erfolgt sind, ein LBEC(Logical Block
Erase Count)-Wert gepflegt, der durch einen logischen Blockindex
für jeden Speicherblock indiziert wird, um die Änderungshäufigkeit
von Daten pro logischen Block zu verfolgen. Auf diese Weise werden,
jedesmal wenn ein Speicherblock wiederbeansprucht wird, seine PBEC-
und LBEC-Werte jeweils um 1 erhöht.
-
In
einer Ausführungsform gilt das folgende hinsichtlich der
PBEC- und LBEC-Werte:
- 1. PBEC-Inkrement = LBEC-Inkrement
(das Wiederbeanspruchen eines Speicherblocks wird zu einer Erhöhung
von sowohl PBEC als LBEC führen)
- 2. Summe des gesamten PBEC für die Einrichtung ≥ Summe
des gesamten LBEC für die Einrichtung
- 3. Summe des gesamten PBEC für die Einrichtung = Summe
des gesamten LBEC für die Einrichtung, wenn das Dateisystem
auf einem frischen Speicher initiiert wird.
-
Wenn
ein Dateisystem initialisiert und abgeschaltet wird und kein Formatieren
des Speichers stattgefunden hat, sind die LBEC- und PBEC-Werte gleich.
Wenn ein Speicher formatiert wird, bevor ein Dateisystem initialisiert
wird, dann kann angenommen werden, dass die PBEC-Werte beibehalten
oder neu gespeichert werden, nachdem die Formatierung abgeschlossen
ist. Die LBEC-Werte können jedoch gelöscht werden,
weil die Blockdaten gelöscht werden. Da die Blockdaten
in diesem Fall verwendet werden, um zu reflektieren, wie aktiv die
Daten sind, besteht kein Grund, deren LBEC zu speichern, nachdem
die Daten gelöscht worden sind. Folglich gilt für
einen frischen/neuen/vollkommen gelöschten Speicher: Die
Summe (LBEC) = Summe (PBEC). Wenn eine Formatierung der Einrichtung
erfolgt ist, sind die LBECs gelöscht worden und wird nachfolgend
die Summe (PBEC) größer als die Summe (LBEC) sein.
-
In
einer Ausführungsform der Erfindung wird ein PBEC-Feld
zum Verfolgen verwendet, wie viele Wiederbeanspruchungsoperationen
an jedem physikalischen Block erfolgt sind. In einer Ausführungsform
wird ein zusätzliches LBEC-Feld durch einen logischen Blockindex
indiziert, um die Änderungshäufigkeit von Daten durch
einen logischen Block zu verfolgen. Somit wird jedesmal, wenn ein
logischer Datenblock wiederbeansprucht wird, sein LBEC um eins erhöht,
sowie der PBEC für den relevanten physikalischen Datenblock
um eins erhöht. In einer Ausführungsform ist:
- (1) PBEC-Inkrement = LBEC-Inkrement – jedes
wird um eins erhöht, jedesmal wenn ein Block wiederbeansprucht
wird.
- (2) Summe vom gesamten PBEC ≥ Summe von gesamtem LBEC
- (3) Summe von gesamtem PBEC = Summe von gesamtem LBEC, wenn
das Dateisystem auf einem frischen Flash initialisiert wird.
-
In
einer Ausführungsform der Erfindung werden mindestens zwei
WBGs(Worn Block Groups) in einem IWL-Abnutzungsausgleichsprozess
bestimmt. Eine erste Gruppe wird als die „hohe Gruppe” bezeichnet.
Die hohe Gruppe wird relativ PBEC- und hohe LBEC-Werte aufweisen
und kann irgendwelche freien (spare) Blöcke bzw. Reserveblöcke
enthalten, weil Wiederbeanspruchungszyklen häufig für
Leer- bzw. Zwischenblöcke von nicht-flüchtigen
Speichern auftreten. Eine zweite Gruppe wird als die „niedrige
Gruppe” bezeichnet und wird relativ niedrige PBEC und niedrige
LBEC aufweisen, wobei freie (spare) Blöcke ausgeschlossen
sind. Der IWL-Prozess soll dann die logischen Blöcken mit
hohem LBEC und logischen Blöcke mit niedrigem LBEC zwischen
den beiden Gruppen austauschen (swap), was durch eine Reihe von
Wiederbeanspruchungsoperationen bewerkstelligt werden kann. Diese
Prozedur wird als der WBG-Austausch bezeichnet. Der Zweck des WBG-Austausches
besteht darin, langlebige (mit niedrigem LBEC) Datenblöcke
mit viel benutzten (hoher PBEC) Blöcken zu bestücken
und häufig geänderte (hoher LBEC) Datenblöcke
mit weniger abgenutzten (niedriger PBEC) Blöcken zu bestücken.
Bei dieser Operation weisen die freien Blöcke ein hohes
Potenzial auf, dass sie der nächste Wiederbeanspruchungsblock
sind, und somit werden freie Blöcke mit hohem PBEC auch zur
entgegengesetzten Gruppe bewegt bzw. verschoben.
-
Ein
Abnutzungsausgleichsprozess kann jedoch gewisse übliche
Speicheroperationen, einschließlich der normalen Wiederbeanspruchungsoperationen,
beeinträchtigen. Aufgrund dessen kann Abnutzungsausgleich
ein Abwägen gegenüber Speicherleistung erfordern.
In einer Ausführungsform der Erfindung können bestimmte
Werte eingestellt werden, um die Häufigkeit von Abnutzung
von Abnutzungsausgleich zu beeinflussen. In einer Ausführungsform
kann ein Benutzer die ECMOD (Löschzählintervall)
und die SLOPETH-Werte (Steigungsschwellenwert) festlegen. Eine Erhöhung
dieser Werte wird die Leistungskosten reduzieren, obwohl potentiell
zu Kosten gewisser Lebensdauer der nicht-flüchtigen Einrichtung.
-
In
einer Ausführungsform der Erfindung enthält ein
nicht-flüchtiger Speicher Abnutzungsausgleich, der zumindest
teilweise auf der Anzahl von Löschoperationen für
jeden physikalischen Speicherblock und der Anzahl von Löschoperationen
für jeden logischen Speicherblock basiert. In einer Ausführungsform
werden Abnutzungsausgleichsoperationen initiiert, wenn die Steigung
einer Regressionslinie einen Schwellenwert überschreitet,
wobei die Regressionslinie für den physikalischen Löschzähler
für jeden Block in Abhängigkeit von dem logischen
Löschzähler für jeden derartigen Block
generiert wird.
-
In
einer Ausführungsform der Erfindung kann die Initiierung
eines IWL-Prozesses durch die Steigung einer Linie ausgelöst
werden, die an eine Kurve der Zähler für Löschen
von physikalischen Blöcken und logischen Blöcken
für jeden Speicherblock angepasst (fit) ist, wobei die
Steigung der Linie auch verwendet wird, um zu ermitteln, ob die
Operation erfolgreich gewesen ist. In einer Ausführungsform
kann ein statistisches Verfahren verwendet werden, um die Linie
an die Fehleranzahldaten anzupassen (fitten). In einer besonderen Ausführungsform
wird lineare Regression verwendet, um zu ermitteln, warm eine IWL-Operation
erforderlich ist, und zu messen, wie erfolgreich eine ausgeführte
IWL-Operation gewesen ist. Lineare Regression versucht die Beziehung
zwischen zwei Variablen durch Anpassung (fitting) einer linearen
Gleichung an beobachtete Daten zu modellieren. Das üblichste
Verfahren zum Fitten einer Regressionslinie ist das Verfahren der
kleinsten Quadrate. Das Verfahren der Linie mit den kleinsten Quadraten
wendet eine Gleichung der Form f(x) = a + bx an, die eine Geradenfunktion
mit einem Schnittpunkt bei a und einer Steigung b ist. Das Verfahren
beschreibt den Trend eines Rohdatensatzes (l1,
p1), (l2, p2), ..., (ln, pn) wie folgt.
-
-
Im
Betrieb der nicht-flüchtigen Speichereinrichtung gibt es
drei Fälle für Regressionsliniensteigung b:
- • b = 0, was auftreten kann, wenn
ein System auf frischem Flash initialisiert wird oder wenn Abnutzungsausgleich
aufrechterhalten worden ist
- • b > 0,
was auftritt, wenn Abnutzung nicht ausgeglichen wird; und
- • b < 0,
was in einem erfolgreichen Prozess auftritt, wenn WBGs ausgetauscht
worden sind.
-
In
einer Ausführungsform der Erfindung kann Abnutzungsausgleich
auf Auftreten nur nach bestimmten Intervallen beschränkt
werden. Zum Beispiel ist ECMOD das Löschzählintervall,
das verstreicht, bevor ein IWL-Prozess ausgelöst wird.
Zum Beispiel könnte ECMOD 1000 Zyklen oder weniger betragen.
Ferner kann das Auslösen des Abnutzungsausgleichens durch
SLOPETH, den PBEC-LBEC-Regressionsliniensteigungsschwellenwert,
gelenkt werden. In einem nicht-flüchtigen Speicher kann
eine normale Wiederbeanspruchungsoperation verwendet werden, um
einen „schmutzigen” (dirty) Speicherblock, der
ungültige Daten enthält, mit der Operation, die
zum Freisetzen des invalidierten Speicherplatzes vorgesehen ist,
wiederzubeanspruchen. In einer IWL-Implementierung wird die normale
Wiederbeanspruchungsprozedur für den nicht-flüchtigen
Speicher nicht modifiziert, aber kann der Abnutzungsausgleichsprozess
die Leistung der Hintergrundwiederbeanspruchungsaufgabe beeinträchtigen.
Ein Benutzer oder Designer kann den Problemen mit der Speicherlebensdauer
und den Anforderungen von Kunden an die Leistung durch Einstellen
der ECMOD und SLOPETH-Parameter Rechnung tragen, die gemeinsam die
Häufigkeit von Abnutzungsausgleich bestimmen. Zum Beispiel
kann ein Kunde die Leistungskosten des Abnutzungsausgleichs durch
Erhöhen von ECMOD und SLOPETH reduzieren.
-
In
einer Implementierung von Abnutzungsausgleich kann die Verarbeitung
allgemein durch der Halbleiterspeichercontroller gehandhabt werden
und somit von dem Host-System unabhängig sein. In einer
derartigen Implementierung führt das Host-System die Lese-
und Schreibvorgänge nur bei logischen Blockadressen durch
und verwendet es die zugrundeliegenden physikalischen Blockadressen
nicht. Auf diese Weise erlangt der Host keine Kenntnis von Bewegungen
bzw. Verschiebungen von Daten, die als Folge von Abnutzungsausgleich
auftreten. Ausführungsformen der Erfindung können
jedoch hinsichtlich der Speichersteuerung variieren und sind auf
kein spezielles Verfahren zur Speichersteuerung beschränkt.
-
Wenn
ein Dateisystem initialisiert und dann abgeschaltet wird und es
keine Formatierungsoperation gibt, sind das Inkrement von LBEC und
das Inkrement von PBEC gleich. Bevor jedoch das Dateisystem initialisiert
wird, wenn ein Flash formatiert wird, wird PBEC gehalten oder neu
gespeichert, nachdem die Formatierung abgeschlossen worden ist;
man würde aber erwarten, dass der LBEC vollständig
gelöscht wird, weil der Datenblock gelöscht wird,
und somit besteht kein Bedarf, seinen LBEC zu speichern bzw. zu
sichern. Folglich ist für einen frischen, neuen oder vollständig
gelöschten Flash seine Summe (LBEC) = Summe (PBEC). Wenn eine
Formatierung stattfindet, werden die LBECs gelöscht, so
dass die Summe (PBEC) größer als die Summe (LBEC)
sein kann.
-
In
den gelieferten Beispielen wird ein einziger Schwellenwert zur Ermittlung
des Beginns und des Endes eines Abnutzungsausgleichsprozesses verwendet.
Ausführungsformen der Erfindung können jedoch mehr
als einen Schwellenwert verwenden. In einer Ausführungsform
der Erfindung kann ein Prozess zwei Schwellenwerte zur Reduzierung
der Anzahl des Erfordernisses eines Austauschprozesses verwenden.
In diesem Beispiel unterliegt ein nicht-flüchtiger Speicher
einer normalen Verwendung, die zu einer allmählichen Zunahme
einer Regressionslinienanpassung (regression line fit) an die Werte
der Zählerwerte für das Löschen von physikalischen
Blöcken und Zählerwerten für Löschen
von logischen Blöcken der Speicherblöcke führt. Ein
Prozess zum Austauschen eines abgenutzten Blocks kann initiiert
werden, wenn die Steigung einer Regressionslinie für die
Speicherblöcke oberhalb eines ersten Schwellenwerts liegt.
Nach Initiierung können sich die Austausche von abgenutzten
Blockgruppen fortsetzen, bis die Steigung der Regressionslinie geringer
als ein zweiter Schwellenwert ist, wobei zu dem Zeitpunkt der Austauschprozess
enden würde. Der Prozess würde dann zum Originalzustand
zurückkehren, in dem der Prozess des Austausches von abgenutzten
Blöcken initiiert würde, wenn die Steigung der
Regressionslinie wieder den ersten Schwellenwert überschreitet.
Beim Zurückkehren zum normalen Betrieb würde die
Steigung der Regressionslinie wieder allmählich zunehmen,
da mehr Löschzyklen bei bestimmten hochaktiven Speicherblöcken
auftreten.
-
1 zeigt
eine Darstellung einer Ausführungsform eines nicht-flüchtigen
Speichers. In dieser Darstellung enthält eine nicht-flüchtige
Speichereinrichtung 100 eine Anordnung von Speicherblöcken 105.
In einem Beispiel kann die Anordnung von Speicherblöcken 105 einen
ersten Speicherblock 110 mit einer physikalischen Blockadresse
PB1 und einer logischen Blockadresse LB7 und einen zweiten Speicherblock 115 mit einer
physikalischen Blockadresse PB4 und einer logischen Blockadresse
LB5 enthalten. Die gelieferten Adressen sind einfache Beispiele
und es kann jede physikalische oder logische Adresse vorliegen.
In jedem Betrieb kann jeder Block der Speicheranordnung 105 mehreren
Lösch- und Schreibzyklen unterzogen sein, wobei jeder Zyklus
zu einer Verkürzung der Lebensdauer der beeinflussten Zellen
führt.
-
Wie
dargestellt, kann der erste Speicherblock 110 relativ inaktiv
sein, wobei der Block gelöscht wird und ein Satz von Daten
A 120 in den Block 110 geschrieben wird 125.
Im Gegensatz dazu ist der zweite Speicherblock 115 relativ
aktiv, wobei zum Beispiel Daten B 130 modifiziert werden 135,
was zu vielen Lösch- und Schreiboperationen 140 an
den Zellen des zweiten Blocks 115 führt, da jeder
Schreibprozess ein Löschen der Daten in dem Block erfordert.
Folglich kann mit der Zeit die Abnutzung an dem zweiten Speicherblock 115 wesentlich
größer als die Abnutzung an dem ersten Speicherblock 110 sein.
-
In
einer Ausführungsform der Erfindung unterliegt die Anordnung
von Speicherblöcken Abnutzungsausgleich zum Ausgleichen
der Abnutzung an den Speicherblöcken. In dieser Ausführungsform
basiert der Abnutzungsausgleich auf einem Zähler für
physikalische Blockschreibzyklen und einem Zähler für
logische Blockschreibzyklen. In einer Ausführungsform wird
ein Abnutzungsausgleichsalgorithmus initiiert, wenn die Steigung
der Linienanpassung (line fit) an die physikalischen Blockschreibzyklen
und die logischen Blockschreibzyklen durch lineare Regression einen
Schwellenwert erreicht. In einer Ausführungsform liefert
der Algorithmus eine Datenwiedergewinnung (data reclamation), bei
der die in einer Gruppe von am meisten abgenutzten Blöcken
(die den zweiten Speicherblock 115 enthalten kann) enthaltenen
Daten durch die in einer Gruppe mit am wenigstens abgenutzten Blöcken
(die den ersten Speicherblock 110 enthalten können)
ausgetauscht werden. In einem anderen Beispiel kann die Gruppe mit
geringster Abnutzung einen freien Speicherblock enthalten, wobei
freie Blöcke sehr wahrscheinlich wiederbeansprucht werden.
Nach dem Austausch zwischen den vorgesehenen Gruppen können
die verbleibenden Blöcke weiteren Austauschen unterliegen,
wobei sich der Prozess fortsetzt, bis die Steigung der Regressionslinie
nicht länger oberhalb des Schwellenwertes liegt.
-
2 zeigt
ein Flussdiagramm, um eine Ausführungsform eines Abnutzungsausgleichsprozesses darzustellen.
In dieser Darstellung wird ein Hintergrundspeicherwiederbeanspruchungsprozess
hervorgebracht (spawned) 205, wobei der Prozess gewöhnliche
Speicherwiederbeanspruchung (memory reclaiming) für Abnutzungsausgleich
einschließt. Der Wiederbeanspruchungsprozess ist eine Form
davon, was man als eine „Endlosschleife” 210 bezeichnen
kann, die sich mit Wiederholungen fortsetzt. In dieser Schleife
erfolgen normale Speicherwiederbeanspruchungsprozesse 215.
-
Wenn
ECMOD(error count modulus)-Zusatzlöschzähler aufgetreten
sind 220, d. h., seit dem Beginn der Hintergrundwiederbeanspruchungsaufgabe
und seit der letzten Abnutzungsausgleichsoperation, dann wird die
Nutzungsausgleichsverarbeitung initiiert. Die Steigung b einer Regressionslinie
für Zähler für Löschungen von
physikalischen Blöcken (Physical Block Erase Count(PBEC))
und Zähler für Löschen von logischen Blöcken (Logical
Block Erase Count(LBEC)) wird im Vergleich mit einem Schwellenwert
SLOPETH evaluiert 225. Wenn die Steigung b den Schwellenwert
nicht übersteigt, setzt die Schleife fort. Wenn die Steigung
b den Schwellenwert überschreitet, dann wird ein Austausch
einer Gruppe von abgenutzten Blöcken durchgeführt 230,
wobei die in der am stärksten abgenutzten Gruppe enthaltenen
Daten (eine Gruppe, die Speicherblöcke mit höheren
PBEC- und LBEC-Werten sowie freie Speicherblöcke enthält)
mit den in der am wenigsten abgenutzten Gruppe (eine Gruppe, die
Speicherblöcke mit niedrigeren PBEC- und LBEC-Werten enthält,
unter Ausschluss von freien Speicherblöcken) enthaltenen
Daten ausgetauscht werden. Nach dem Austausch wird die Steigung
b wieder mit Schwellenwert SLOPETH verglichen 225, wobei
der Austauschprozess dann fortsetzt, bis die Steigung b den Schwellenwert
b SLOPETH nicht länger überschreitet.
-
In
einer Ausführungsform kann der Prozess hinsichtlich des
für den Abnutzungsausgleich verwendeten Schwellenwerts
variieren. Zum Beispiel kann das Initiieren eines Abnutzungsausgleichsprozesses
auftreten, wenn die Steigung b einen ersten Schwellenwert (SLOPETH1) überschreitet,
wobei der Abnutzungsausgleichsprozess sich fortsetzt, bis die Steigung
b unter einem zweiten Schwellenwert (SLOPETH2) liegt, wobei zum
Beispiel SLOPETH2 geringer als SLOPETH1 sein kann.
-
3A zeigt
eine Darstellung einer Regressionslinie, die für einen
nicht-flüchtigen Speicher vor Abnutzungsausgleich generiert
worden ist. In dieser Darstellung wird jeder Block eines hypothetischen nicht-flüchtigen
Speichers durch Zähler für Löschen von
physikalischen Blöcken (PBEC 305) und Zähler
für Löschen von logischen Blöcken (LBEC 310)
präsentiert. Wenn ein Flash-Speicher neu ist, werden anfänglich sehr
niedrige Zähler für Löschen von physikalischen
Blöcken und Zähler für Löschen
von logischen Blöcken oder sogar mit dem Wert Null vorliegen.
Wenn jedoch mehr Schreibzyklen durchgeführt werden, werden
die aktiveren Speicherblöcke höhere Zählerwerte
für sowohl Zähler für Löschen
von physikalischen Blöcken als auch Zähler für
Löschen von logischen Blöcken entwickeln, wie
in 3A gezeigt ist.
-
Wie
in dieser Darstellung gezeigt ist, kann mit der Zeit erwartet werden,
dass bestimmte Speicherblöcke mit niedrigen PBEC- und LBEC-Werten 315,
bestimmte Blöcke mit mittleren PBEC- und LBEC-Werten 320 und
bestimmte Blöcke mit hohen PBEC- und LBEC-Werten 325 vorhanden
sein werden. In einer Ausführungsform der Erfindung wird
lineare Regression verwendet, um eine Regressionslinie für
die Speicherblockwerte 335 zu generieren. Zur leichteren
Darstellung ist eine Symmetrielinie 330 vorgesehen. Die
Speicherblöcke auf der rechten der Symmetrielinie 330 werden
im Vergleich zu den Speicherblöcken auf der linken Seite
der Symmetrielinie 330 abgenutzt werden, was zu einem vorzeitigen
Ausfall der Einrichtung führen kann, wenn nicht Abnutzungsausgleich
eingerichtet wird.
-
In
einer Ausführungsform der Erfindung kann eine Abnutzungsausgleichsevaluierung
erfolgen, nachdem eine bestimmte Anzahl von Löschereignissen
eingetreten ist. Bei dieser Evaluierung kann ein Abnutzungsausgleichsprozess
initiiert werden, wenn die Steigung der Regressionslinie 335 oberhalb
eines Schwellenwerts liegt, was zu einem Austausch von Gruppen 350 mit
abgenutzten Blöcken führt. Bei dem Austausch werden
in den Blöcken der am meisten abgenutzten Gruppe 325 enthaltene
Daten durch Blöcke in der am wenigsten abgenutzten Gruppe 315 ausgetauscht.
In einer Ausführungsform wird der Austausch durch eine
Reihe von Wiederbeanspruchungsoperationen bewerkstelligt. Nach dem
Austausch wird wieder eine Regressionslinie generiert und die Steigung
wieder mit einem Schwellenwert verglichen. Der Prozess setzt sich
fort, bis die Steigung ausreichend modifiziert worden ist, so dass
sie unter den Schwellenwert fällt.
-
3B zeigt
eine Darstellung einer für einen nicht-flüchtigen
Speicher generierten Regressionslinie, nachdem eine Ausführungsform
von Abnutzungsausgleich implementiert worden ist. In dieser Darstellung
wird jeder Block eines hypothetischen nicht-flüchtigen
Speichers wieder durch Zähler für Löschen
von physikalischen Blöcken (PBEC 355) und Zähler
für Löschen von logischen Blöcken (LBEC 360)
präsentiert. Im Nachgang zu dem Austauschen von abgenutzten
Gruppen hat sich die Steigung der resultierenden Regressionslinie
verändert 385. Nach dem Austauschen gibt es Speicherblöcke
mit hohen PBEC und niedrigen LBEC 365, Speicherblöcke
mit mittleren PBEC- und LBEC-Werten 370 (die wahrscheinlich
in keinen Austausch involviert gewesen sind) und Speicherblöcke
mit niedrigen PBEC- und hohen LBEC-Werten 375. Zur leichteren
Darstellung ist wieder eine Symmetrielinie 380 vorgesehen.
Im wesentlichen sind die Speicherblöcke auf der rechten Seite
der Symmetrielinie 380 nun Blöcke mit relativ
geringer Abnutzung, aber nun mit aktiven Daten, die zu einer zukünftigen
Abnutzung führen können. Die Speicherblöcke
auf der linken Seite der Symmetrielinie 380 sind nun Blöcke
mit relativ hoher Abnutzung, aber nun mit Daten, die weniger aktiv
sind und von denen somit erwartet wird, dass sie zu geringerer zukünftiger
Abnutzung führen.
-
4 bis 7 stellen
ein Beispiel für Speicherblockwiederbeanspruchungsoperationen
in einer Ausführungsform eines Abnutzungsausgleichsprozesses
dar. Die Figuren stellen Speicherblöcke eines beispielhaften
nicht-flüchtigen Speichers dar. Wie dargestellt ist, bedeutet
PBn den n-ten physikalischen Block und LBn den n-ten logischen Block.
Wie in der Darstellung gezeigt, weist jeder Speicherblock eine physikalische Blockadresse
auf und entweder eine logische Blockadresse auf oder ist er als
frei (spare) gekennzeichnet. In dieser Darstellung enthält
die Speichereinrichtung acht Speicherblöcke (PB0 bis PB7).
In den Figuren ist jeder Speicherblock durch seine physikalische
Blockadresse 405, seine logische Blockadresse 410,
seinen Zähler 415 für Löschen
von logischen Blöcken und seinen Zähler 420 für
Löschen von physikalischen Blöcken gekennzeichnet.
In einer Ausführungsform der Erfindung wird ein IWL-Prozess
implementiert und werden in Speicherblöcken der geeigneten
Gruppen enthaltene Daten über eine Reihe von Wiederbeanspruchungsprozessen
ausgetauscht. Während die 4 bis 7 einen
besonderen Prozess zum Austauschen der Daten darstellen, sind Ausführungsformen
der Erfindung nicht auf irgendeinen speziellen Prozess zur Durchführung des
Austauschprozesses beschränkt.
-
In 4 sind
die Blöcke eines beispielhaften nicht-flüchtigen
Speichers gezeigt. Zur leichteren Darstellung nimmt die Abnutzung,
die eingetreten ist, allgemein von PB0 bis PB7 zu. Die tatsächliche
Abnutzung kann jedoch in irgendeinem der Speicherblöcke
erfolgen; sie muss nicht in einer Reihenfolge erfolgen. In einer besonderen
Implementierung werden Intervall- und Steigungsschwellenwerte festgelegt,
die in diesem Beispiel ECMOD = 135 und SLOPETH = 0,09 betragen können.
Es handelt sich dabei um spezielle Werte für dieses Beispiel,
aber diese Werte können, falls erforderlich, modifiziert
werden.
-
In 4 sind
Summe (LBEC) = 135, Summe (PBEC) = 135 und b = 0,0976515 durch Berechnung
des Trends des Rohdatensatzes (l1, p1), (l2, p2), ..., (ln, pn). Wenn der Löschzähler
ECMOD erreicht hat, erfolgt eine Evaluierung der Steigung. In diesem
Fall ist die Steigung größer als der SLOPETH-Wert
0,09, was eine übermäßige ungleiche Abnutzung
des Speichers anzeigt. Somit muss ein Abnutzungsausgleichsprozess
begonnen werden.
-
In
einer Ausführungsform der Erfindung können die
Speicherblöcke in Gruppen auf zahlreiche Arten unterteilt
werden. Für das in 4 präsentierte
vereinfachte Beispiel ist es möglich, dass die niedrige
Gruppe PB0 425 enthalten kann (mit LBEC = 7 und PBEC =
4) und PB1 430 (mit LBEC = 3 und PBEC = 6). Es ist ersichtlich,
dass diese Blöcke geringe Abnutzung aufweisen und anscheinend
keine aktiven Daten enthalten. Für die hohe Gruppe können
die Blöcke PB6 455 (mit LBEC = 30 und PBEC = 28)
und PB7 460 (ein freier Block mit PBEC = 30) enthalten.
In dieser Darstellung sind die hohen und niedrigen Gruppen aus benachbarten
Speicherblöcken zusammengesetzt, aber dies dient nur zur
einfacheren Darstellung. In der Praxis kann jeder Speicherblock
in entweder der hohen Gruppe oder der niedrigen Gruppe enthalten
sein. Die verbleibenden Blocke (PB2 435, PB3 440,
PB4 445 und PB5 450) fallen in die mittlere Gruppe
und sind nicht in den Austausch involviert. Wenn der Austausch zu
keiner ausreichenden Änderung der Steigung führt,
dann werden diese verbleibenden Blöcke in die niedrigen
und hohen Gruppen zum Austausch gezogen.
-
In
einer Ausführungsform der Erfindung können die
Austausche in einer Reihe von Operationen unter Verwendung eines
herkömmlichen Wiederbeanspruchungsprozesses implementiert
werden. Wenn zum Beispiel ein Austausch zwischen PB0 425 und
PB7 460 unter Verwendung des Prozesses Wiederbeanspruchen (PB0,
PB7) vorliegt, führt dies zu Kopieren von Daten aus PB0
zu PB7, Löschen von PB0 und Setzen PB0 als freien Block.
In diesem Beispiel von 4 ist Wiederbeanspruchen (PB0,
PB7) der erste durchgeführte Austausch.
-
5 zeigt
den resultierenden Speicher nach Wiederbeanspruchen (PB0, PB7).
In diesem Beispiel ist nun PB0 525 der freie Block, wobei
PBEC von 4 auf 5 erhöht ist. PB7 560 ist nun LB6,
wobei LBEC nun von 5 auf 7 ansteigt. (PBEC von PB7 560 bleibt
auf 30, weil dies ein freier Block ist, der somit bereits gelöscht
worden ist und kein Löschen vor Schreiben der Daten erfordert.).
An diesem Punkt sind Summe (LBEC) = 136, Summe (PBEC) = 136 und
b = –0,11161.
-
6 zeigt
den resultierenden Speicher nach der nächsten folgenden
Operation, die Wiederbeanspruchen (PB6, PB0) ist. Nach der Operation
ist PB6 655 nun der Zwischenblock, wobei PBEC von 28 auf
29 erhöht ist. PB0 625 ist nun LB0, wobei LBEC
von 30 auf 31 zunimmt. In diesem Punkt sind in dem Austauschprozess
Summe (LBEC) = 137, Summe (PBEC) = 137 und b = –0,28086.
-
7 zeigt
den resultierenden Speicher nach der letzten in der Reihe von Operationen,
Wiederbeanspruchen (PB6, PB1). In diesem letzten Stadium weist PB0 625 LBEC
= 31 und PBEC = 5 auf und ist PB1 730 der freie Block (der
somit ein möglicher nächster Wiederbeanspruchungsblock
ist), wobei PBEC = 7 ist. Somit weist die Gruppe von Blöcken
mit der geringsten Abnutzung nun mehr aktive Daten auf, wodurch
geringe Abnutzung an hohe Datenaktivität angepasst wird.
Ferner weist PB6 755 LBEC = 4 und PBEC = 29 auf und weist PB7 560 LBEC
= 8 und PBEC = 30 auf. Die Gruppe von Blöcken mit der höchsten
Abnutzung weist nun am wenigsten aktive Daten auf, wodurch hohe
Abnutzung an geringe Datenaktivität angepasst wird. Nach
der letzten in der Reihe von Wiederbeanspruchungsoperationen sind
Summe (LBEC) = 138, Summe (PBEC) = 138 und b = –0,54262.
Somit ist die Steigung in der PBEC-LBEC-Regressionslinie unter den
Schwellenwert reduziert worden. In dieser Ausführungsform
der Erfindung ist somit die Abnutzungsausgleichsoperation abgeschlossen.
Das System wird dann auf ECMOD Löschzyklen warten, bevor
es wieder die Steigung mit dem Schwellenwert vergleicht, um zu ermitteln,
ob ein weiterer Abnutzungsausgleichszyklus erforderlich ist. Wenn die
Steigung der PBEC-LBEC-Regressionslinie noch nicht unter den Schwellenwert
abgenommen hätte, würde sich dann der Austauschprozess
fortsetzen, was zusätzliche Datenaustausche liefert, um
die Steigung unter den erforderlichen Wert zu reduzieren.
-
8 zeigt
eine Darstellung einer Ausführungsform einer nicht-flüchtigen
Speichervorrichtung. In dieser Darstellung kann eine nicht-flüchtige
Speichervorrichtung 800, wie zum Beispiel ein Flash-Speicher,
mit einer Vorrichtung 815 oder als ein Teil davon gekoppelt
werden. Die Vorrichtung kann irgendeine Vorrichtung sein, die elektronischen
Speicher erfordert, einschließlich eines Computers, eines
PDA(Personal Digital Assistant) oder Handheld Computer, einer digitalen
Kamera, eines digitalen Musikabspielgeräts oder einer anderen Einheit.
Die Speichervorrichtung 800 enthält eine Speicheranordnung 805,
die mit einem Speichercontroller 810 gekoppelt ist, wobei
der Speichercontroller 810 die Speicherung von Daten in
der Speicheranordnung 805 steuert. Die Speicheranordnung 805 enthält
mehrere Speicherblöcke von Speicherzellen, einschließlich
zum Beispiel eines ersten Speicherblocks 820 und eines
zweiten Speicherblocks 825. In diesem Beispiel ist der
erste Speicherblock 820 physikalischer Block PB0 und logischer
Block LB5 und ist der zweite Speicherblock 825 physikalischer
Block PB3 und logischer Block LB2. Der Speichercontroller 810 kann
für die Zuordnung von logischen Speicherbereichen verantwortlich
sein, so dass die Vorrichtung 815 Speicherzellen durch
logische Bereiche adressiert und die physikalischen Bereiche der
Speicherzellen nicht kennt.
-
In
einer Ausführungsform der Erfindung zeichnet der Speichercontroller 810 einen
Zähler von jedem Lösch-Schreib-Zyklus für
die Speicheranordnung 805 auf, wobei der Zähler
einen Zähler für jeden physikalischen Block und
jeden logischen Block enthält. In einer Ausführungsform
werden die Zähler verwendet, um Abnutzungsausgleichsoperationen
für die Speichereinrichtung zu implementieren. In einer
Ausführungsform kann die Speichereinrichtung 800 eine
Registrierdatenbank oder Registrierdatenbanken enthalten, das/die
die aktuellen Schreib-Lösch-Zyklus-Zähler enthält/enthalten.
Wie dargestellt ist, enthält die Speichereinrichtung 810 eine
Registrierdatenbank von Zählern 830 für
Löschen von physikalischen Blöcken und eine Registrierdatenbank
von Zählern 835 für Löschen
von logischen Blöcken. Wie gezeigt ist, enthält
die Registrierdatenbank von Zählern 830 für
Löschen von physikalischen Blöcken PBOEC (der
Löschzähler für PB0) 840 für
den ersten Speicherblock 820 und PB3EC 845 für
den zweiten Speicherblock 825, fortsetzend bis PBnEC 850 für
den n-ten physikalischen Block. Die Registrierdatenbank von Zählern 835 für
Löschen von logischen Blöcken enthält
LB2EC (den Löschzähler für LB2) 855 für
den ersten Speicherblock 820 und LB5EC 860 für
den zweiten Speicherblock 825, fortsetzend bis LBmEC 865 für
den m-ten logischen Block. Die Speicheranordnung 805 kann
einen oder mehrere freie Blöcke enthalten, die einem logischen
Speicherblock zugeordnet sind, und somit kann m geringer als n sein.
-
In
einer Ausführungsform der Erfindung evaluiert der Speichercontroller 810 den
aktuellen Status der Abnutzung der Blöcke der Speicheranordnung 805.
In einer Ausführungsform erfolgt die Evaluierung nach ECMOD
Durchläufen von Löschzyklen. In einer Ausführungsform
der Erfindung berechnet der Speichercontroller 810 eine
Steigung einer Regressionslinie für die in der Registrierdatenbank
von Zählern 830 für Löschen
von physikalischen Blöcken und in der Registrierdatenbank
von Zählern 835 für Löschen
von logischen Blöcken enthaltenen Daten. Wenn die Steigung
der Regressionslinie einen Schwellenwert (SLOPETH) übersteigt, dann
identifiziert der Speichercontroller 810 eine Gruppe mit
hoher Abnutzung von Speicherblöcken (mit hohen PBEC- und
LBEC-Werten, einschließlich freie Blöcke) und
eine Gruppe mit niedriger Abnutzung von Speicherblöcken
(mit niedrigen PBEC- und LBEC-Werten) und erfolgt ein Austausch
von Daten zwischen den Gruppen, um aktive Daten zu Speicherblöcken
mit niedriger Abnutzung zu übertragen.
-
9 zeigt
eine Darstellung des Computersystems, das eine Ausführungsform
der Erfindung verwendet. Gewisse Standard- und allgemein bekannte
Komponenten, die für die vorliegende Erfindung nicht relevant sind,
sind nicht gezeigt. In einer Ausführungsform der Erfindung
umfasst ein Computer 900 einen Bus 905 oder ein
anderes Kommunikationsmittel zum Kommunizieren von Informationen
und ein Verarbeitungsmittel, wie zum Beispiel zwei oder mehr Prozessoren 910 (als
ein erster Prozessor 915 und ein zweiter Prozessor 920 gezeigt),
die mit dem Bus 905 zur Verarbeitung von Information gekoppelt
sind. Die Prozessoren 910 können einen oder mehrere
physikalische Prozessoren und einen oder mehrere logische Prozessoren
umfassen. Ferner kann jeder der Prozessoren 910 mehrere
Prozessorkerne enthalten. Der Einfachheit halber ist der Computer 900 mit
einem einzigen Bus 905 dargestellt, aber der Computer kann
mehrere unterschiedliche Busse aufweisen und die Komponentenverbindungen
mit genannten Bussen können variieren. Der in 9 gezeigte Bus 905 stellt
eine Abstraktion dar, die irgendeinen oder mehrere separate physikalische
Busse, Punkt-zu-Punkt-Verbindungen oder beides repräsentiert,
die durch geeignete Brücken, Adapter oder Controller verbunden
sind. Der Bus 905 kann somit zum Beispiel einen Systembus,
einen PCI(Peripheral Component Interconnect)-Bus, einen HyperTransport
oder ISA(Industry Standard Architecture)-Bus, einen SCSI(Small Computer
System Interface)-Bus, einen USB(Universal Serial Bus), IIC(I2C)-Bus
oder einen IEEE(Institute of Electrical and Electronics Engineers)-Standard
1394-Bus, manchmal als „Firewire” bezeichnet,
aufweisen. („Standard for a High Performance Serial
Bus" 1394–1995, IEEE, am 30. August 1996 veröffentlicht,
und Ergänzungen).
-
Der
Computer 900 umfasst ferner eine RAM(Random Access Memory)-
oder andere dynamische Speichereinrichtung als einen Hauptspeicher 925 zum
Speichern von Informationen und Befehlen zur Ausführung
durch die Prozessoren 910. Der Hauptspeicher 925 kann
auch zum Speichern von temporären Variablen oder anderer
Zwischeninformation während der Ausführung von
Befehlen durch die Prozessoren 910 verwendet werden. RAM-Speicher
schließt DRAM(Dynamic Random Access Memory), der Auffrischen
von Speicherinhalten erfordert, und SRAM(Static Random Access Memory)
ein, der kein Auffrischen von Inhalten erfordert, aber höhere
Kosten mitsichbringt. DRAM-Speicher kann SDRAM(Synchronous Dynamic
Random Access Memory), der ein Taktsignal zum Steuern von Signalen
enthält, und EDO DRAM(Extended Data-Out Dynamic Random
Access Memory) einschließen. Die Verwendung des Hauptspeichers
kann die Speicherung von empfangenen Signalen von drahtlosen Geräten
enthalten. Der Computer 900 kann auch einen ROM(Read Only Memory) 930 und/oder
andere statische Speichereinrichtungen zum Speichern von statischen
Informationen und Befehlen für die Prozessoren 910 enthalten.
-
Der
Datenspeicher 935 kann auch mit dem Bus 905 des
Computers 900 zum Speichern von Informationen und Befehlen
gekoppelt sein. Der Datenspeicher 935 kann eine Magnetplatte
oder optische Platte oder optische Platte und deren korrespondierenden
Laufwerke, Flash-Speicher oder andere nicht-flüchtige Speicher
oder andere Speichereinrichtungen einschließen. Genannte
Elemente können miteinander kombiniert werden oder können
separate Komponenten sein und Teile von anderen Elementen des Computers 900 verwenden.
In einer Ausführungsform der Erfindung kann der Datenspeicher 935 Flash-Speicher 937 enthalten. In
einer Ausführungsform sorgt der Flash-Speicher 937 für
Abnutzungsausgleichsprozesse, um die Abnutzung an Speicherblöcken
des Flash-Speichers 937 auszugleichen, die durch ein Ungleichgewicht
hinsichtlich der Lösch-Schreib-Zyklen für jeden
Speicherblock verursacht ist.
-
Der
Computer 900 kann auch über den Bus 905 mit
einer Anzeigeeinrichtung 940, wie zum Beispiel einer Kathodenstrahlröhre(Cathode
Ray Tube(CRT))-Anzeige, einer Flüssigkristallanzeige (Liquid
Crystal Display(LCD)), einer Plasmaanzeige oder irgendeiner anderen
Anzeigetechnologie, zum Anzeigen von Informationen für
einen Endnutzer gekoppelt sein. In einigen Umgebungen kann die Anzeigeeinrichtung
ein Touchscreen sein, der auch zumindest teilweise als eine Eingabeeinrichtung
verwendet wird. In einigen Umgebungen kann die Anzeigeeinrichtung 940 eine
Audioeinrichtung sein oder enthalten, wie zum Beispiel einen Lautsprecher
zum Liefern von Audioinformationen. Eine Eingabeeinrichtung 945 kann
mit dem Bus 905 zum Kommunizieren von Informationen und/oder
Befehlsauswahlen an die Prozessoren 910 gekoppelt sein.
In zahlreichen Implementierungen kann die Eingabeeinrichtung 945 eine
Tastatur, ein Tastenfeld, ein Touchscreen und Stift, ein sprachaktiviertes
System oder eine andere Eingabeeinrichtung oder Kombinationen von
genannten Einrichtungen sein. Ein anderer Typ von Benutzereingabeeinrichtung,
die enthalten sein kann, ist eine Cursorsteuereinrichtung 950,
wie zum Beispiel eine Maus, ein Trackball oder Cursorrichtungstasten
zum Kommunizieren von Richtungsinformationen und Befehlsauswahlen
an den einen oder die mehreren Prozessoren 910 und zum
Steuern von Cursorbewegung auf der Anzeigeeinrichtung 940.
-
Eine
Kommunikationseinrichtung 955 kann auch mit dem Bus 905 gekoppelt
sein. In Abhängigkeit von der speziellen Implementierung
kann die Kommunikationseinrichtung 955 einen Transceiver,
ein drahtloses Modem, eine Netzwerkschnittstellenkarte, ein LAN(Local
Area Netzwork) auf der Hauptplatine oder eine andere Schnittstelleneinrichtung
sein. Die Verwendung einer Kommunikationseinrichtung 955 kann
den Empfang von Signalen von drahtlosen Einrichtungen einschließen.
Zur Funkkommunikation kann die Kommunikationseinrichtung 955 eine
oder mehrere Antennen 958 enthalten. In einer Ausführungsform
kann die Kommunikationseinrichtung 955 eine Firewall enthalten,
um den Computer 900 vor missbräuchlichem Zugang
zu schützen. Der Computer 900 kann mit einem Netzwerk,
wie zum Beispiel LAN(Local Area Network) 965 oder anderen
Einrichtungen verbunden sein, die die Kommunikationseinrichtung 955 verwenden,
was auch Verbindungen mit dem Internet, einem Local Area Network
oder einer anderen Umgebung einschließen kann. Der Computer 900 kann
auch eine Stromversorgungseinrichtung oder ein Stromversorgungssystem 960 umfassen, die/das
eine Netzversorgung, eine Batterie, eine Solarzelle, eine Brennstoffzelle
oder ein anderes System oder eine andere Einrichtung zum Liefern
oder Erzeugen von Strom aufweisen kann. Der von der Stromversorgungseinrichtung
bzw. dem Stromversorgungssystem 960 gelieferte Strom kann
nach Bedarf an Elemente des Computers 900 verteilt werden.
-
Fachleute
auf dem Gebiet werden vor dem Hintergrund dieser Offenbarung erkennen,
dass viele andere Variationen ausgehend von der vorangehenden Beschreibung
und den Zeichnungen vorgenommen werden können, die in dem
Schutzbereich der vorliegenden Erfindung liegen. In der Tat ist
die Erfindung nicht auf die oben beschriebenen Details beschränkt.
Stattdessen definieren die folgenden Ansprüche, die irgendwelche
Veränderungen bzw. Verbesserungen enthalten, den Schutzbereich
der Erfindung.
-
In
der obigen Beschreibung wurden zu Erläuterungszwecken zahlreiche
spezielle Details dargelegt, um für ein umfassendes Verständnis
der vorliegenden Erfindung zu sorgen. Für einen Fachmann
auf dem Gebiet wird jedoch ersichtlich sein, dass die vorliegende
Erfindung ohne einige dieser speziellen Details in die Praxis umgesetzt
werden kann. In anderen Beispielen sind allgemein bekannte Strukturen
und Einrichtungen in Blockdiagrammform gezeigt.
-
Die
vorliegende Erfindung kann zahlreiche Prozesse einschließen.
Die Prozesse gemäß der vorliegenden Erfindung
können durch Hardwarekomponenten durchgeführt
werden oder in maschinenausführbaren Befehlen verkörpert
sein, die verwendet werden können, um einen Universalprozessor
oder Spezialprozessor oder logische Schaltkreise, die mit den Befehlen
programmiert sind, die Prozesse durchführen zu lassen.
Alternativ können die Prozesse durch eine Kombination von
Hardware und Software durchgeführt werden.
-
Teile
der vorliegenden Erfindung können als ein Computerprogrammprodukt
bereitgestellt werden, das ein maschinenlesbares Medium enthalten
kann, auf dem Befehle gespeichert sind, die verwendet werden können,
um einen Computer (oder andere elektronische Geräte) zu
programmieren und einen Prozess gemäß der vorliegenden
Erfindung durchführen zu lassen. Das maschinenlesbare Medium
kann, ohne aber darauf beschränkt zu sein, Floppy-Disketten,
optische Platten, CD-ROMs(Compact Disk Read-Only Memory) und magnetooptische
Platten, ROMs(Read-Only Memory), RAMs(Random Access Memory), EPROMs(Erasable
Programmable Read-Only Memory), EEPROMs(Electrically-Erasable Programmable
Read-Only Memory), magnetische oder optische Karten, Flash-Speicher
oder einen anderen Typ von Medium/maschinenlesbarem Medium zum Speichern
von elektronischen Befehlen einschließen. Außerdem
kann die vorliegende Erfindung auch als ein Computerprogrammprodukt
heruntergeladen werden, wobei das Programm von einem fernem Computer
auf einen anfordernden Computer mittels von Datensignalen, die in
einer Trägerwelle oder einem anderen Ausbreitungsmedien
verkörpert sind, über eine Kommunikationsverbindung
(z. B. ein Modem oder eine Netzwerkverbindung) übertragen
werden kann.
-
Viele
der Verfahren sind in deren grundsätzlichsten Form beschrieben,
aber es können Prozesse hinzugefügt oder entfernt
werden, zu oder von jedem der beschriebenen Verfahren, und Informationen
können hinzugefügt oder entfernt werden zu oder
von jeder der beschriebenen Nachrichten, ohne aus dem grundlegenden
Schutzbereich der vorliegenden Erfindung zu gelangen. Für
Fachleute auf dem Gebiet wird ersichtlich sein, dass weitere Modifikationen
und Anpassungen durchgeführt werden können. Die
speziellen Ausführungsformen sollen die Erfindung nicht
beschränken, sondern sie darstellen. Der Schutzbereich
der vorliegenden Erfindung soll nicht durch die oben gelieferten
speziellen Beispiele bestimmt werden, sondern nur durch die nachfolgenden
Ansprüche.
-
Es
sollte verständlich sein, dass die Bezugnahme in der gesamten
Beschreibung auf „eine (1) Ausführungsform” oder „eine
Ausführungsform” bedeutet, dass ein bestimmtes
Merkmal bei der Ausführung der Erfindung vorhanden sein
kann. In ähnlicher Weise sollte es verständlich
sein, dass in der vorangehenden Beschreibung von beispielhaften
Ausführungsformen der Erfindung zahlreiche Merkmale der
Erfindung manchmal in einer einzigen Ausführungsform, Figur
oder Beschreibung derselben zur gradlinigen Beschreibung miteinander
gruppiert sind und beim Verstehen von einem oder mehreren der zahlreichen
erfinderischen Aspekte helfen. Diese Offenbarungsmethode soll jedoch
nicht so interpretiert werden, dass sie eine Absicht reflektiert, dass
die beanspruchte Erfindung mehr Merkmale erfordert, als in jedem
Anspruch ausdrücklich zitiert sind. Stattdessen liegen
die erfinderischen Aspekte, wie die folgenden Ansprüche
reflektieren, in weniger als allen Merkmalen einer einzigen vorangehend
offenbarten Ausführungsform. Somit werden die Ansprüche
hierdurch ausdrücklich in diese Beschreibung aufgenommen,
wobei jeder Anspruch alleine als eine separate Ausführungsform
der vorliegenden Erfindung steht.
-
Zusammenfassung
-
Ein
Verfahren und eine Vorrichtung für einen initiativen Abnutzungsausgleich
für einen nicht-flüchtigen Speicher. Eine Ausführungsform
eines Verfahrens enthält Zählen von Löschzyklen
für jeden eines Satzes von mehreren Speicherblöcken
eines nicht-flüchtigen Speichers, wobei das Zählen
von Löschzyklen für jeden Speicherblock Erhöhen
eines ersten Zählers für eine physikalische Blockadresse
des Speicherblocks, und wenn der Speicherblock kein freier Speicherblock
ist, Erhöhen eines zweiten Zählers für
eine logische Blockadresse des Speicherblocks enthält.
Das Verfahren enthält auch Ermitteln, ob der nicht-flüchtige
Speicher eine ungleichmäßige Abnutzung von Speicherblöcken
aufweist, auf der Grundlage von zumindest zum Teil des Zählens
der Löschzyklen der Vielzahl von Speicherblöcken.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- - „Standard
for a High Performance Serial Bus” 1394–1995,
IEEE, am 30. August 1996 [0054]