-
GEBIET DER ERFINDUNG
-
Die Erfindung betrifft ein Verfahren, ein System und ein Computerprogrammprodukt für den Ausgleich nachlassender Funktionsfähigkeit (wear leveling) von Halbleiterdatenträgern auf der Grundlage der von einer RAID-Steuereinheit empfangenen Daten- und Paritätsnutzungsinformationen.
-
HINTERGRUND DER ERFINDUNG
-
Ein Halbleiterdatenträger (Solid State Disk, SSD) kann eine Datenspeichereinheit umfassen, die zur dauerhaften Speicherung digitaler Daten einen Halbleiterspeicher verwendet. Halbleiterdatenträger können Flashspeicher oder andere Speichertypen beinhalten. Im Vergleich mit elektromechanisch gesteuerten Datenspeichereinheiten wie beispielsweise Festplatten ermöglichen Halbleiterdatenträger einen wesentlich schnelleren Datenzugriff. Bestimmte Halbleiterdatenträger vertragen nur eine begrenzte Anzahl von Löschzyklen, bevor sie unzuverlässig werden. Es gibt Techniken zum Ausgleich nachlassender Funktionsfähigkeit und zum Reinigen, um die Lebensdauer von Halbleiterdatenträgern zu verlängern.
-
Unter einer redundanten Reihe unabhängiger Datenträger/Laufwerke (Redundant Array of Independent Disks, RAID) ist eine Anordnung von Datenspeichern für Computer zu verstehen. Bei bestimmten Typen von RAID-Systemen können Daten- und Paritätsinformationen in Spuren auf eine Vielzahl von Datenträgern geschrieben werden. Bei solchen RAID-Anordnungen können eine oder mehrere Datenträger ausfallen, ohne dass es zu Datenverlust kommt. Zum Beispiel können die Daten und die Parität bei einer beispielhaften RAID-6-Anordnung auf mindestens vier Datenträger verteilt werden, und eine Anordnung nach dem RAID-6-System kann beim Ausfall von bis zu zwei Datenträger wiederhergestellt werden. RAID-Anordnungen können aus Festplatten, Halbleiterdatenträgern oder Speichermedien anderer Typen gebildet werden.
-
Bei SCSI-Speicheroperationen (Small Computer Systems Interface, Schnittstelle für kleine Computersysteme) werden Befehle über einen Befehlsdeskriptorblock (Command Desciptor Block, CDB) gesendet. Jeder CDB kann aus einer festen Anzahl von Bytes bestehen, zum Beispiel 10, 12, oder 16 Bytes. Bei bestimmten SCSI-Speicheroperationen können auch CDBs mit variabler Länge zulässig sein. CDBs können aus einem Befehlscode mit einem Byte und bestimmten nachfolgenden befehlsspezifischen Parametern bestehen. SCSI-Speicheroperationen können bei Datenspeichersystemen von Computern mit RAID-Anordnungen angewendet werden.
-
Die
US 7 073 010 B2 betrifft einen Dual-Modus Universal-Serial-Bus (USB)-Switch, der in einem normalen Hub-Modus betrieben werden kann, um Transaktionen von einem Host zu mehreren USB-Flash-Speicherblöcken, die USB-Endpunkte sind, zu puffern. Wenn er in einem Single-Endpoint-Modus betrieben wird, fängt der Dual-Mode-USB-Switch Pakete vom Host ab und antwortet dem Host als ein einziger USB-Endpunkt. Der USB-Switch fasst alle nachgeschalteten USB-Flash-Speicherblöcke zusammen und meldet einen einzelnen Speicherpool als einzelnen virtuellen USB-Speicher an den Host. Nichteinander folgende Transaktionen können durch Paketumordnung überlagert werden. Ein Token-Paket, das eine nachfolgende Transaktion startet, wird neu geordnet, um an die USB-Flash-Speicherblöcke gesendet zu werden, bevor die Daten- und Handshake-Pakete, die eine erste Transaktion beenden, damit die zweite Transaktion früher mit dem Zugriff auf den Flash-Speicher beginnen kann. Die Daten können über mehrere USB-Flash-Speicherblöcke gespiegelt oder gestreift werden, und die Parität kann zur Fehlerbehebung hinzugefügt werden.
-
ÜBERBLICK ÜBER DIE BEVORZUGTEN AUSFÜHRUNGSARTEN
-
Aufgabe der Erfindung ist es, ein verbessertes Verfahren, ein verbessertes System und ein verbessertes Computerprogrammprodukt für den Ausgleich nachlassender Funktionsfähigkeit (wear leveling) von Halbleiterdatenträgern (solid state disks) bereitzustellen.
-
Die der Erfindung zugrunde liegenden Aufgaben werden mit den Merkmalen der unabhängigen Patentansprüche gelöst. Ausführungsformen der Erfindung sind in den abhängigen Ansprüchen angegeben.
-
Es werden ein Verfahren, ein System und ein Computerprogrammprodukt bereitgestellt, wobei eine Steuereinheit eine Vielzahl von Halbleiterdatenträgern als redundante Anordnung unabhängiger Datenträger (RAID) konfiguriert, wobei die Vielzahl der Halbleiterdatenträger eine Vielzahl von Blöcken speichern und die geschätzte Lebenserwartung der Speicherbereiche der Vielzahl von Halbleiterdatenträgern, die mindestens einigen aus der Vielzahl von Blöcken entsprechen, unterschiedlich hoch ist.
-
Die Steuereinheit beinhaltet in Datenstrukturen, die einem in den Speicherbereichen der Vielzahl von Halbleiterdatenträgern zu speichernden Block zugehörig sind, eine Anzeige, dass der Block der RAID entsprechende Paritätsinformationen enthält, wobei die Paritätsinformationen Information umfassen, die einem Fehlerkorrekturmechanismus zum Schutz vor Datenträgerausfall entsprechen. Die Steuereinheit sendet die Datenstrukturen an die Vielzahl von Halbleiterdatenträgern, wobei die Vielzahl der Halbleiterdatenträger einen Speicherbereich zuordnen, dessen geschätzte Lebenserwartung relativ höher ist als die von anderen Speicherbereichen, um den Block zu speichern, der die Paritätsinformationen beinhaltet.
-
Es handelt sich bei den Datenstrukturen um erste Datenstrukturen, bei dem Block um einen ersten Block, bei dem Speicherbereich um einen ersten Speicherbereich und bei der Anzeige um eine erste Anzeige. Die Steuereinheit beinhaltet in zweiten Datenstrukturen, die einem in den Speicherbereichen der Halbleiterdatenträger zu speichernden zweiten Block zugehörig sind, eine zweite Anzeige, wobei die zweite Anzeige anzeigt, wie viele Datenträger in der RAID vorhanden sind, wobei die Vielzahl von Halbleiterdatenträgern als Reaktion auf die Feststellung, dass der zweite Block für eine größere Anzahl von Datenträger vorgesehen ist als ein für weniger Datenträger vorgesehener dritter Block, den zweiten Block einem zweiten Speicherbereich zuordnen, dessen geschätzte Lebenserwartung höher ist als die eines dritten Speicherbereichs, in dem der dritte Block gespeichert werden soll.
-
Bei weiteren Ausführungsarten sind die erste und die zweite Datenstruktur in einem SCSI-Befehlsdeskriptorblock (CDB) enthalten, wobei freie Bits des CDB zum Speichern der ersten und der zweiten Datenstruktur genutzt werden. Die noch weiteren Ausführungsarten, die die Zuordnung des ersten und des zweiten Speicherbereiches zu dem ersten, dem zweiten, dem dritten und weiteren Blöcken festlegen, beruhen auf mindestens einer RAID-Ebene und einem RAID-Typ
-
Bei weiteren Ausführungsarten wird die Zuordnung des ersten und des zweiten Speicherbereichs und weiterer Speicherbereiche zum ersten, zweiten, dritten und weiteren Blöcken anhand mindestens einer RAID-Rangordnung und eines RAID-Typs ermittelt.
-
Bei weiteren Ausführungsarten sind die erste und die zweite Datenstruktur in Konfigurationsregistern einer PCI-kompatiblen (Anschluss für Erweiterungskomponenten) Karte enthalten.
-
In einem Beispiel handelt es sich bei den Datenstrukturen um erste Datenstrukturen, bei dem Block um einen ersten Block, bei dem Speicherbereich um einen ersten Speicherbereich und bei der Anzeige um eine erste Anzeige. Die Steuereinheit beinhaltet in zweiten Datenstrukturen, die einem in den Speicherbereichen der Halbleiterdatenträger zu speichernden zweiten Block zugehörig sind, eine zweite Anzeige, wobei die zweite Anzeige eine relative Häufigkeit anzeigt, mit welcher die im zweiten Block gespeicherten Daten wahrscheinlich aktualisiert werden, wobei zum Speichern des zweiten Blocks ein zweiter Speicherbereich verwendet wird, dessen Lebensdauer im Vergleich zu anderen Speicherbereichen als höher eingeschätzt wird, wobei der zweite Block häufiger als andere Blöcke aktualisiert wird.
-
Bei weiteren Ausführungsarten empfängt eine in der Vielzahl von Halbleiterdatenträgern enthaltene Firmware die durch die Steuereinheit gesendeten Datenstrukturen. Die in der Vielzahl von Halbleiterdatenträgern enthaltene Firmware ordnet zum Speichern des die Paritätsinformationen enthaltenden Blocks den Speicherbereich zu, dessen geschätzte Lebensdauer höher ist als bei den anderen Speicherbereichen.
-
Bei weiteren Ausführungsarten ist in die Steuereinheit ein computerlesbarer Code integriert, wobei der Code in Verbindung mit der Steuereinheit aktiviert wird, um die Schritte zum Konfigurieren der Vielzahl von Halbleiterdatenträgern, zum Aufnehmen der Datenstrukturen und zum Senden der Datenstrukturen durch die Steuereinheit auszuführen.
-
Figurenliste
-
In den folgenden Zeichnungen stellen gleiche Bezugsnummern generell dieselben Teile dar, wobei:
- 1 ein Funktionsschaubild einer ersten beispielhaften Steuereinheit gemäß bestimmten Ausführungsarten zeigt, die eine Vielzahl von Halbleiterdatenträgern steuert;
- 2 ein Funktionsschaubild zeigt, das eine beispielhafte Zuordnung von Speicherbereichen gemäß bestimmten Ausführungsarten auf der Grundlage von Paritätsinformationen darstellt;
- 3 ein Funktionsschaubild zeigt, das eine beispielhafte Zuordnung von Speicherbereichen gemäß bestimmten Ausführungsarten auf der Grundlage der Anzahl von Datenträgern darstellt;
- 4 ein Funktionsschaubild zeigt, das beispielhafte SCSI-CDB-Datenstrukturen gemäß bestimmten Ausführungsarten darstellt;
- 5 ein Funktionsschaubild zeigt, das eine zweite beispielhafte Steuereinheit gemäß bestimmten Ausführungsarten darstellt, die eine Vielzahl von Halbleiterdatenträgern steuert;
- 6 einen ersten Ablaufplan veranschaulicht, der die in einer beispielhaften Steuereinheit gemäß bestimmten Ausführungsarten ausgeführten ersten Schritte zeigt;
- 7 einen zweiten Ablaufplan veranschaulicht, der die in einer beispielhaften Steuereinheit gemäß bestimmten Ausführungsarten ausgeführten zweiten Schritte zeigt;
- 8 einen dritten Ablaufplan veranschaulicht, der die in einer beispielhaften Steuereinheit gemäß bestimmten Ausführungsarten ausgeführten dritten Schritte zeigt; und
- 9 ein Funktionsschaubild eines Rechnersystems zeigt, das bestimmte Elemente darstellt, die in die Steuereinheiten der 1 und 5 gemäß bestimmten Ausführungsarten aufgenommen werden können.
-
DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
-
In der folgenden Beschreibung wird auf die beiliegenden Zeichnungen Bezug genommen, die Bestandteil der Beschreibung sind und verschiedene Ausführungsarten veranschaulichen. Es ist klar, dass auch andere Ausführungsarten verwendet und Änderungen an Struktur und Arbeitsweise vorgenommen werden können. RAID-Anordnungen können aus Festplatten oder Halbleiterdatenträgern aufgebaut werden. Halbleiterdatenträger können jedoch aufgrund von Beständigkeits- und Leseproblemen gespeicherter Daten in Halbleiterdatenträgern einem rascheren Nachlassen der Funktionsfähigkeit unterliegen als Festplatten.
-
Mit einer RAID-Steuereinheit verbundene Halbleiterdatenträger können möglicherweise nicht den Typ der durch die Halbleiterdatenträger verarbeiteten Datenblöcke ermitteln. Bei bestimmten Halbleiterdatenträgern kann es sich bei den verarbeiteten Daten um einen beispielhaften SCSI-Block oder um eine Menge Daten auf bestimmten PCIE-Adressen (Peripheral Component Interconnect Express, Hochgeschwindigkeitsanschluss für Erweiterungskomponenten) handeln. Beim Ausgleich nachlassender Funktionsfähigkeit der Halbleiterdatenträger können diese dazu neigen, alle Datenblöcke gleichberechtigt zu behandeln. Das führt dazu, dass die Standzeit der Halbleiterdatenträger durch die schwächsten Blöcke bestimmt sein kann, wobei als schwächste Blöcke diejenigen mit der kürzesten Lebenserwartung gelten. Zum Beispiel kann in einem Halbleiterdatenträger mit 128-Flash-Speicherchips die geschätzte Lebenserwartung zwischen verschiedenen Speicherbereichen dieser 128 Flash-Speicherchips und sogar innerhalb eines bestimmten Flash-Speicherchips stark variieren.
-
Um einen wirksamen Ausgleich nachlassender Funktionsfähigkeit der Halbleiterdatenträger zu erreichen, kann bei bestimmten Ausführungsarten die zu erwartende Lebensdauer von Speicherbereichen in den Halbleiterdatenträgern berücksichtigt werden. Bei bestimmten Ausführungsarten werden in den von der Steuereinheit gesendeten Informationen an die Halbleiterdatenträger Informationen über die zu erwartende Aktualisierungshäufigkeit von Blöcken geliefert. Zum Beispiel kann es bei bestimmten Ausführungsarten eine Menge mit Bestimmtheit absehbarer Daten geben, die ständig einen hohen Schreibbedarf verursachen können, wie dies bei den Blöcken in RAID 5- und RAID 6-Installationen der Fall ist. Bei bestimmten Ausführungsarten werden Informationen von der Steuereinheit an die Halbleiterdatenträger geliefert, dass ein bestimmter Block einer logischen Blockadresse (Logical Block Address, LBA) P oder Q entspricht [d.h., der Block ist für die gemäß der RAID-Bezeichnungsweise durch P oder Q dargestellten Paritätsdaten reserviert]. Durch die gelieferten Informationen sind die Halbleiterdatenträger in der Lage, den betreffenden Block in Speicherbereichen zu speichern, die für eine längere Lebensdauer bekannt sind.
-
Zum Beispiel kann die Parität in einer 5+P RAID-Rangordnung fünfmal öfter geschrieben werden als eine Datenspur für die Aktualisierung von kleinen Blöcken. Bei bestimmten Ausführungsarten werden den Halbleiterdatenträgern Datenstrukturen zugeleitet, wobei die Datenstrukturen anzeigen, dass es sich bei dem geschriebenen logischen Blockadressbereich um eine Paritätsspur handelt.
-
Bei bestimmten Ausführungsarten werden unter Verwendung von SCSI-Modusseiten oder Konfigurationsregistern in einer PCIE-Karte die folgenden Informationen von der Steuereinheit an Halbleiterdatenträger gesendet, die durch die Steuereinheit als RAID konfiguriert worden sind:
- (i) Bearbeitung der Paritätsspur aktivieren (In solchen Situationen werden die Halbleiterdatenträger angewiesen, die in einer RAID-Rangordnung als Parität bezeichneten LBAs (logische Blockadressen) als Sektoren mit großer Zugriffshäufigkeit zu behandeln.); und
- (ii) Anzahl der Datenträger in der RAID-Rangordnung (Die Anzahl der beispielhaften Datenträger kann von 2 bis 255 reichen. Die Anzahl stellt den Faktor für die zu erwartende Schreibhäufigkeit der Datenelemente dar.)
-
Bei bestimmten Ausführungsarten können die Halbleiterdatenträger auf der Grundlage der durch die Steuereinheit gelieferten Informationen Blöcke zuweisen, die mit höherer Wahrscheinlichkeit wiederholt in Speicherbereiche geschrieben werden, von denen bekannt ist, dass ihre Lebenserwartung im Vergleich zu anderen Speicherbereichen höher ist. Zum Beispiel werden Blöcke, die Paritätsinformationen enthalten, und Blöcke, die RAID-Rangordnungen mit einer relativ größeren Anzahl von Datenträgern entsprechen, mit höherer Wahrscheinlichkeit wiederholt geschrieben und können in Speicherbereichen gespeichert werden, von denen bekannt ist, dass ihre Lebenserwartung im Vergleich mit anderen Speicherbereichen höher ist.
-
Beispielhafte Ausführungsarten
-
1 zeigt ein Funktionsschaubild einer ersten beispielhaften Steuereinheit 100 gemäß bestimmten Ausführungsarten, die eine Vielzahl von Halbleiterdatenträgern 102a, 102b, ..., 102n steuert. Die beispielhafte Steuereinheit 100 kann eine geeignete Recheneinrichtung wie beispielsweise einen Personal Computer, einen Großrechner, einen Arbeitsplatzrechner, einen Server, einen Client, ein Telefon, einen Laptop, ein Rechnermodul usw. umfassen. Die beispielhafte Steuereinheit 100 kann als RAID-Steuereinheit bezeichnet werden, da die Vielzahl der Halbleiterdatenträger in Form einer oder mehrerer RAIDs geschaltet sind und die Steuereinheit 100 die Funktion einer oder mehrerer RAIDs steuert.
-
Eine in der Steuereinheit 100 enthaltene Anwendung für den Ausgleich nachlassender Funktionsfähigkeit 104 erzeugt 106 eine SCSI-CDB-Struktur 108 für einen Block, wobei die SCSI-CDB-Struktur 108 eine Paritätsinformationsanzeige 110 und/oder eine Datenträgeranzahlanzeige 112 und/oder eine Schreibhäufigkeitsanzeige 114 beinhaltet.
-
Die Steuereinheit 100 verwendet die SCSI-CDB-Struktur 108, um den Block betreffende Informationen an die Halbleiterdatenträger 102a...102n zu senden. Die Paritätsinformationsanzeige 110 zeigt an, ob der Block zum Speichern von Paritätsdaten verwendet wird. Der Datenträgerzahlanzeiger 112 zeigt die Anzahl der Datenträger in der RAID-Konfiguration an, für die der Block geschrieben werden soll. Zum Beispiel zeigt der Datenträgerzahlanzeiger 112 bei einer RAID-Konfiguration 5+P (d.h. fünf Datenträger und ein Paritätsdatenträger) fünf an. Der Schreibhäufigkeitsanzeiger 114 dient als wahlweise Anzeige, die durch einen Benutzer oder eine automatische Anwendung eingegeben werden kann, wobei die Schreibhäufigkeitsanzeige einen Schätzwert darstellt, der angibt, wie oft der Block wahrscheinlich geschrieben wird. Zum Beispiel können bestimmte Blocktypen öfter als andere Blocktypen aktualisiert werden, und der Benutzer kann solche Informationen zur Speicherung in der Schreibhäufigkeitsanzeige 114 angeben.
-
In 1 besteht der beispielhafte Halbleiterdatenträger aus einer Vielzahl von Flash-Speicherchips 116a...116n, wobei jeder Flash-Speicherchip einen oder mehrere Speicherbereiche für Blöcke aufweist. Zum Beispiel weist der Flash-Speicherchip 116a Speicherbereiche 118a...118n auf, wobei die verbleibende Lebenserwartung der einzelnen Speicherbereiche 118a...118n aufgrund des unregelmäßigen Nachlassens der Funktionsfähigkeit unterschiedlich hoch sein kann. Der beispielhafte Halbleiterdatenträger 102a beinhaltet auch eine Firmware 120 für die Halbleiterdatenträger, wobei die Firmware 120 dazu dient, unter Verwendung der durch die SCSI-CDB-Struktur 108 und durch die Steuereinheit 100 an die Halbleiterdatenträger 102a...102n gesendeten Informationen die nachlassende Funktionsfähigkeit der Speicherbereiche in den Flash-Speicherchips 116a...116n auszugleichen. Der andere Halbleiterdatenträger 102b...102n weist ebenso Flash-Speicherchips, Firmware und Speicherbereiche wie der Halbleiterdatenträger 102a auf.
-
1 veranschaulicht somit bestimmte Ausführungsarten, bei denen eine beispielhafte SCSI-CDB-Struktur 108 durch eine Steuereinheit 100 dazu verwendet wird, mit den Blöcken zusätzliche Informationen an die Halbleiterdatenträger 102a...102n zu senden, die als RAID-Anordnung geschaltet sind. Durch die zusätzlichen Informationen sind die Halbleiterdatenträger 102a...102n in der Lage festzustellen, wie oft die Blöcke wahrscheinlich geändert werden. Blöcke, die wahrscheinlich häufiger geändert werden, werden in solchen Speicherbereichen gespeichert, deren Lebensdauer höher ist als die von anderen Speicherbereichen.
-
2 zeigt ein Funktionsschaubild 200, das eine beispielhafte Zuordnung von Speicherbereichen gemäß bestimmten Ausführungsarten auf der Grundlage von Paritätsinformationen zeigt. In 2 sind zwei beispielhafte Speicherbereiche 202, 204 gezeigt, wobei sich die beiden beispielhaften Speicherbereiche in den Halbleiterdatenträgern 102a...102n befinden, die als RAID-Anordnung geschaltet sind. Die Firmware 120 der Halbleiterdatenträger kann festgestellt haben, dass die Lebenserwartung des Speicherbereichs 202 höher ist als die des Speicherbereichs 204. Die Lebenserwartung eines Speicherbereichs stellt ein Maß für die noch verbleibende Lebensdauer des Speicherbereichs dar. Zur Berechnung der Werte der Lebenserwartung können beliebige Verfahren und Methoden angewendet werden, die bei Halbleiterdatenträger zur Steigerung ihrer Haltbarkeit Anwendung finden.
-
Bei bestimmten Ausführungsarten sind die Paritätsinformationen mit der Kennzeichnung versehen (Bezugsnummer 206), dass sie auf einer logischen Blockadresse (LBA) gespeichert ist, d.h., ein Block dient zum Speichern der Paritätsinformationen. Bei anderen Ausführungsarten tragen die Paritätsinformationen keine Kennzeichnung (Bezugsnummer 208), dass sie auf einer logischen Blockadresse gespeichert ist, d.h., ein Block dient nicht zum Speichern der Paritätsinformationen. Da die Parität voraussichtlich oft aktualisiert wird, wird der Block als Reaktion darauf, dass die Paritätsinformationen auf der LBA gespeichert werden (Bezugsnummer 206), dem Speicherbereich mit der höheren Lebenserwartung zugeordnet (Bezugsnummer 210). Außerdem wird als Reaktion darauf, dass die Paritätsinformationen nicht auf der LBA gespeichert werden (Bezugsnummer 208), der Block dem Speicherbereich 204 mit einer geringeren Lebenserwartung zugeordnet (Bezugsnummer 212) .
-
3 zeigt ein Funktionsschaubild, das eine beispielhafte Zuordnung von Speicherbereichen gemäß bestimmten Ausführungsarten auf der Grundlage der Anzahl der Datenträger zeigt. 3 zeigt zwei beispielhafte Speicherbereiche 302, 304 in den Halbleiterdatenträgern 102a...102n, die als RAID-Anordnung geschaltet sind. Die Firmware der Halbleiterdatenträger hat möglicherweise festgestellt, dass der Speicherbereich 302 eine höhere Lebenserwartung hat als der Speicherbereich 304.
-
Bei bestimmten Ausführungsarten sind fünf Datenträger in der RAID-Anordnung mit der Kennzeichnung versehen (Bezugsnummer 306), dass sie den einer logischen Blockadresse (LBA) entsprechenden Blöcken zugeordnet sind, z.B. kann eine RAID-Anordnung vom Typ 5+P fünf Datenträger und ein Paritätsdatenträger aufweisen, eine RAID-Anordnung vom Typ 2+P hingegen zwei Datenträger und ein Paritätsdatenträger.
-
Da Blöcke, die RAID-Anordnungen mit einer größeren Anzahl von Datenträgern entsprechen, voraussichtlich öfter aktualisiert werden, wird der Block als Reaktion darauf, dass fünf Datenträger angezeigt werden (Bezugsnummer 306), dem Speicherbereich 302 mit der höheren Lebenserwartung zugeordnet (Bezugsnummer 310). Außerdem wird der Block als Reaktion auf die Anzeige von zwei Datenträgern (Bezugsnummer 308) dem Speicherbereich 304 mit der geringeren Lebenserwartung zugeordnet. Es sind auch Systeme mit abweichenden RAID-Anordnungen möglich, beispielsweise 5+2P-Anordnungen (d.h. fünf Datenträger und zwei Paritätsdatenträger) oder 6+2P-Anordnungen (d.h. sechs Datenträger und zwei Paritätsdatenträger) usw.
-
4 zeigt ein Funktionsschaubild 400, das beispielhafte SCSI-CDB-Datenstrukturen 402, 404, 406 gemäß bestimmten Ausführungsarten zeigt. Die SCSI-CDB-Datenstrukturen 402, 404, 406 können durch die Steuereinheit 100 erzeugt werden, um sie an die Halbleiterdatenträger 102a...102n zu senden.
-
Ungenutzte Bits 410, 412, 414 in den SCSI-CDB-Strukturen 402, 404, 406 können zur Übertragung der Paritätsinformationsanzeige 110, der Datenträgeranzahlanzeige 112 und der Schreibhäufigkeitsanzeige 114 verwendet werden. Bei bestimmten Ausführungsarten können vorhandene SCSI-CDB-Befehle zum Beispiel so geändert werden, dass zumindest der CDB für die Befehle WRITE(10) 402, WRITE(12) 404 und WRITE(16) 406 und auch Schreibprüfbefehle ein Bit zum Anzeigen enthalten, dass es sich bei dem LBA-Bereich um eine Paritätsspur handelt, die erwartungsgemäß öfter aktualisiert wird als Daten, und die RAID-Steuereinheit 100 kann die geänderten SCSI-CDB-Datenstrukturen erzeugen. Bei bestimmten Ausführungsarten können solche CDB-Befehle geändert werden, wenn keine sequenziellen Operationen ausgeführt werden und wenn keine massenhaften Schreiboperationen erfolgen.
-
Während 4 zeigt, dass Werte für die Anzeigen 110, 112, 114 über die SCSI-CDB-Datenstrukturen 402, 404, 406 gesendet werden, können die Anzeigen bei alternativen Ausführungsarten in die Konfigurationsregister einer PCI-kompatiblen Karte aufgenommen werden.
-
5 zeigt ein Funktionsschaubild, das eine zweite beispielhafte Steuereinheit 500 gemäß bestimmten Ausführungsarten zeigt, die eine Vielzahl von Halbleiterdatenträgern 502 steuert. Die zweite beispielhafte Steuereinheit 500 kann der in 1 gezeigten ersten beispielhaften Steuereinheit 100 entsprechen, und die Vielzahl der Halbleiterdatenträger 502 kann der in 1 gezeigten Vielzahl von Halbleiterdatenträgern 102a...102n entsprechen.
-
Die Steuereinheit 500 erzeugt Informationen und sendet diese über eine oder mehrere Datenstrukturen, welche die Paritätsinformationsanzeige 504, die Datenträgeranzahlanzeige 506 und die Schreibhäufigkeitsanzeige 508 umfassen. Die Steuereinheit 500 konfiguriert die Vielzahl von Halbleiterdatenträgern 502 als RAID-Anordnung. Die Vielzahl der Halbleiterdatenträger 502 beinhaltet eine Vielzahl von Speicherbereichen 510a, 510b, ..., 510n mit entsprechenden geschätzten Werten der Lebenserwartung 512a, 512b, ..., 512n. Eine in einem oder mehreren der Halbleiterdatenträger 502 installierte Firmware 514 kann zur Abschätzung der Werte der Lebenserwartung 512a...512n und zum Zuordnen der durch die Steuereinheit 500 gesendeten Blöcke zu den Speicherbereichen 510a...510n auf der Grundlage der in der Paritätsinformationsanzeige 504, der Datenträgeranzahlanzeige 506 und der Schreibhäufigkeitsanzeige 508 enthaltenen Informationen verwendet werden.
-
6 veranschaulicht einen ersten Ablaufplan 600, der erste in den beispielhaften Steuereinheiten 100, 500 ausgeführte Schritte gemäß bestimmten Ausführungsarten zeigt. Die ersten Schritte können durch eine Anwendung wie beispielsweise die in der Steuereinheit 100, 500 befindliche Anwendung zum Ausgleich nachlassender Funktionsfähigkeit 104 ausgeführt werden.
-
Die Steuerung beginnt in Kasten 602, wo eine beispielhafte Steuereinheit 500 eine Vielzahl von Halbleiterdatenträgern 502 als redundante Anordnung unabhängiger Datenträger (RAID) konfiguriert, wobei durch die Vielzahl der Halbleiterdatenträger 502 eine Vielzahl von Blöcken gespeichert werden und wobei die geschätzten Werte der Lebenserwartung 512a...512n der Speicherbereiche 510a...510n der Vielzahl der Halbleiterdatenträger, die mindestens einigen aus der Vielzahl von Blöcken entsprechen, unterschiedlich hoch sind.
-
Die Steuereinheit 500 beinhaltet (in Kasten 604) in Datenstrukturen, die einem in den Speicherbereichen 510a...510n der Vielzahl von Halbleiterdatenträgern 502 zu speichernden Block zugehörig sind, eine Anzeige 504, dass der Block eine auf die RAID bezogene Paritätsinformationen beinhaltet, wobei die Paritätsinformationen Informationen umfassen, die sich auf einen Fehlerkorrekturmechanismus zum Schutz vor dem Ausfall eines Datenträgers beziehen.
-
Die Steuereinheit 500 sendet (in Kasten 606) die Datenstrukturen an die Vielzahl von Halbleiterdatenträgern 502, wobei die Vielzahl der Halbleiterdatenträger 502 den Datenstrukturen einen Speicherbereich zuordnen, dessen geschätzte Lebenserwartung höher ist als die anderer Speicherbereiche, um den Block mit der darin enthaltenen Paritätsinformationen zu speichern.
-
7 veranschaulicht einen zweiten Ablaufplan 700, der zweite in den beispielhaften Steuereinheiten 100, 500 ausgeführte Schritte gemäß bestimmten Ausführungsarten zeigt. Die zweiten Schritte können durch eine Anwendung wie beispielsweise die in den Steuereinheiten 100, 500 befindliche Anwendung zum Ausgleich nachlassender Funktionsfähigkeit 104 ausgeführt werden.
-
Die Steuerung beginnt in Kasten 702, wo die Steuereinheit 500 eine Vielzahl von Halbleiterdatenträgern 502 als redundante Anordnung unabhängiger Datenträger (RAID) konfiguriert, wobei durch die Vielzahl der Halbleiterdatenträger 502 eine Vielzahl von Blöcken gespeichert werden und wobei die geschätzten Werte der Lebenserwartung 512a...512n der Speicherbereiche 510a...510n der Vielzahl der Halbleiterdatenträger, die mindestens einigen aus der Vielzahl von Blöcken entsprechen, unterschiedlich hoch sind.
-
Die Steuereinheit 500 beinhaltet (in Kasten 704) in Datenstrukturen, die einem in den Speicherbereichen 510a...510n der Vielzahl von Halbleiterdatenträgern 502 zu speichernden Block zugehörig sind, eine Anzeige 506, welche die in der RAID vorhandenen Datenträger anzeigt.
-
Die Steuereinheit 500 sendet (in Kasten 706) die Datenstrukturen an die Vielzahl von Halbleiterdatenträgern 502, wobei die Vielzahl der Halbleiterdatenträger 502 als Reaktion auf die Feststellung, dass der Block für eine größere Anzahl von Datenträgern vorgesehen ist als ein anderer Block, der für eine geringere Anzahl von Datenträgern vorgesehen ist, den Block einem Speicherbereich zuordnen, dessen geschätzte Lebenserwartung höher ist als die eines anderen Speicherbereichs, in dem der andere Block gespeichert ist.
-
8 veranschaulicht einen dritten Ablaufplan 800, der dritte in den beispielhaften Steuereinheiten 100, 500 ausgeführte Schritte gemäß bestimmten Ausführungsarten zeigt. Die dritten Schritte können durch eine Anwendung wie beispielsweise die in der Steuereinheit 100, 500 befindliche Anwendung zum Ausgleich nachlassender Funktionsfähigkeit 104 ausgeführt werden.
-
Die Steuerung beginnt in Kasten 802, wo die Steuereinheit 500 eine Vielzahl von Halbleiterdatenträgern 502 als redundante Anordnung unabhängiger Datenträger (RAID) konfiguriert, wobei durch die Vielzahl der Halbleiterdatenträger 502 eine Vielzahl von Blöcken gespeichert werden und wobei die geschätzten Werte der Lebenserwartung 512a...512n der Speicherbereiche 510a...510n der Vielzahl der Halbleiterdatenträger, die mindestens einigen aus der Vielzahl von Blöcken entsprechen, unterschiedlich hoch sind.
-
Die Steuereinheit 500 beinhaltet (in Kasten 804) in Datenstrukturen, die einem in den Speicherbereichen 510a...510n der Vielzahl von Halbleiterdatenträgern 502 zu speichernden Block zugehörig sind, eine Anzeige 508, welche eine relative Häufigkeit anzeigt, mit der die in dem Block gespeicherten Daten wahrscheinlich aktualisiert werden. Die Anzeige 508 kann durch einen Benutzer bereitgestellt werden oder von vorgegebenen Faktoren abhängen, die automatisch durch ein in der Steuereinheit 500 befindliches Programm analysiert werden.
-
Die Steuereinheit 500 sendet (in Kasten 806) die Datenstrukturen an die Vielzahl von Halbleiterdatenträgern 502, wobei ein Speicherbereich, dessen geschätzte Lebenserwartung höher ist als die anderer Speicherbereiche, zum Speichern des Blocks verwendet wird, wobei der Block häufiger als andere Blöcke aktualisiert wird.
-
Während die Ablaufpläne in den 6, 7, 8 gezeigt haben, dass die Paritätsinformationsanzeige 504, die Datenträgeranzahlanzeige 506 und die Schreibhäufigkeitsanzeige 508 durch die Steuereinheit 500 getrennt an die Vielzahl von Halbleiterdatenträgern 502 gesendet werden, können die Paritätsinformationsanzeige 504 und/oder die Datenträgeranzahlanzeige 506 und/oder die Schreibhäufigkeitsanzeige 508 bei bestimmten Ausführungsarten als Teil der SCSI-CDB-Datenstruktur 400 von der Steuereinheit 500 an die Vielzahl der Halbleiterdatenträger 502 gesendet werden. In solchen Fällen werden die durch eine oder mehrere aus der Vielzahl der Anzeigen 504, 506, 508 gelieferten Hinweise gemeinsam durch die Firmware 514 der Vielzahl von Halbleiterdatenträgern 502 genutzt, um die Zuordnung der Speicherbereiche zu den Blöcken anhand der geschätzten Aktualisierungshäufigkeit der Blöcke festzulegen, die sich aus einer Analyse der in den Anzeigen 504, 506, 508 gespeicherten Informationen ergibt. Bei alternativen Ausführungsarten können außer den Anzeigen 504, 506, 508 auch weitere Anzeigen gesendet werden. Bei bestimmten Ausführungsarten kann das Festlegen der Zuordnung der Speicherbereiche 510a...510n zu den Blöcken beispielsweise anhand von Anzeigen erfolgen, die durch die Steuereinheit 500 bezüglich einer RAID-Rangordnung und/oder eines RAID-Typs geliefert werden.
-
Somit veranschaulichen die 1 bis 8 bestimmte Ausführungsarten, bei denen eine RAID-Steuereinheit 100, 500 Informationen mit Hinweisen über die Nutzungshäufigkeit für Blöcke an die Halbleiterdatenträger 102a...102n liefert. Die Informationen über die Nutzungshäufigkeit können darauf beruhen, ob in den Blöcken Paritätsinformationen gespeichert sind, und/oder auf der Anzahl der Datenträger in einer RAID-Anordnung. Die Informationen über die Nutzungshäufigkeit können durch die Halbleiterdatenträger 102a...102n, 502 genutzt werden, um den Blöcken, die wahrscheinlich häufiger als andere Blöcke aktualisiert werden, Speicherbereiche mit einer höheren Lebenserwartung zuzuordnen.
-
Weitere Details zu den Ausführungsarten
-
Die beschriebenen Schritte können unter Verwendung üblicher technischer und/oder Programmierverfahren als Verfahren, Vorrichtung oder Computerprogrammprodukt realisiert werden, um Software, Firmware, Hardware oder eine Kombination davon zu erstellen. Demzufolge können Aspekte der Ausführungsarten komplett in Form von Hardware, komplett als Software (darunter Firmware, speicherresidente Software, Mikrocode usw.) oder als Kombination von Software- und Hardwareaspekten ausgeführt werden, die hier generell als „Schaltkreis“, „Modul“ oder „System“ bezeichnet werden können. Außerdem können Aspekte der Ausführungsarten als Computerprogrammprodukt ausgeführt werden, das in Form eines computerlesbaren Programmcodes auf einem oder mehreren computerlesbaren Medien gespeichert ist.
-
Es kann eine beliebige Kombination von einem oder mehreren computerlesbaren Medien verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein Medium mit computerlesbaren Signalen oder um ein computerlesbares Speichermedium handeln. Als computerlesbares Speichermedium kann zum Beispiel, aber nicht ausschließlich, ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine entsprechende Vorrichtung oder Einheit oder eine geeignete Kombination davon dienen. Eine genauere (unvollständige) Aufzählung von Beispielen des computerlesbaren Mediums kann Folgendes beinhalten: einen elektrischen Anschluss mit einer oder mehreren Leitungen, eine austauschbare Computerdiskette, eine Festplatte, einen Arbeitsspeicher (Random Access Memory, RAM), einen schreibgeschützten Speicher (Read-Only Memory, ROM), einen löschbaren programmierbaren schreibgeschützten Speicher (EPROM oder Flash-Speicher), einen Lichtwellenleiter, eine austauschbare schreibgeschützte Compact-Disc (CD-ROM), eine optische Speichereinheit oder eine geeignete Kombination davon. In Bezug auf dieses Dokument kann es sich bei dem computerlesbaren Speichermedium um ein beliebiges gegenständliches Medium handeln, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Ausführung von Anweisungen enthalten oder speichern kann. Ein Medium mit computerlesbaren Signalen kann ein weitergeleitetes Datensignal mit einem darin verkörperten computerlesbaren Programmcode enthalten, zum Beispiel als Basisbandsignal oder als Teil einer Trägerwelle. Ein solches weitergeleitetes Signal kann eine Vielzahl von Formen annehmen, darunter, aber nicht darauf beschränkt, elektromagnetische Signale, optische Signale oder eine geeignete Kombination davon. Bei einem Medium mit computerlesbaren Signalen kann es sich auch um ein beliebiges computerlesbares Medium außer computerlesbaren Speichermedien handeln, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Befehlen übertragen, weiterleiten oder befördern kann.
-
Der auf einem computerlesbaren Medium gespeicherte Programmcode kann unter Verwendung eines beliebigen geeigneten Mediums übertragen werden, darunter, aber nicht ausschließlich, über drahtlose Verbindungen, über Kabel, über Lichtwellenleiter, über Hochfrequenzwellen usw. oder eine geeignete Kombination davon.
-
Ein Computerprogrammcode zum Ausführen der Schritte gemäß Aspekten der vorliegenden Erfindung kann in einer beliebigen Kombination von einer oder mehrerer Programmiersprachen geschrieben werden, darunter eine objektorientierte Programmiersprache wie Java*, Smalltalk, C++ oder ähnliche und herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Der Programmcode kann komplett auf dem Computer des Benutzers, teilweise als eigenständiges Software-Paket auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder komplett auf dem fernen Computer oder Server ausgeführt werden. Im letzteren Fall kann der ferne Computer über ein beliebiges Netzwerk mit dem Computer des Benutzers, darunter über ein lokales Netz (Local Area Network, LAN) oder ein öffentliches Netz (Wide Area Network, WAN), oder (zum Beispiel unter Verwendung eines Internetanbieters über das Internet) mit einem externen Computer verbunden sein.
-
Im Folgenden werden Aspekte der vorliegenden Erfindung unter Bezug auf Ablaufpläne und/oder Funktionsschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsarten der Erfindung beschrieben. Es ist klar, dass jeder Kasten der Ablaufpläne und/oder Funktionsschaubilder sowie Kombinationen von Kästen in den Ablaufplänen und/oder Funktionsschaubildern durch Anweisungen von Computerprogrammen realisiert werden können. Die Anweisungen dieser Computerprogramme können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungseinrichtung bereitgestellt werden, um eine Maschine dergestalt zu schaffen, dass die durch den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungseinrichtung ausgeführten Anweisungen Mittel zum Realisieren der in dem Block oder den Blöcken des Ablaufplans und/oder des Funktionsschaubildes angegebenen Funktionen/Arbeitsschritte erzeugen.
-
Die Anweisungen dieser Computerprogramme können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, andere programmierbare Datenverarbeitungseinrichtungen oder andere Einheiten so steuern kann, dass diese in bestimmter Weise funktionieren, damit die in dem computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsartikel erzeugen, der Anweisungen zum Realisieren der in dem Block oder in den Blöcken der Ablaufpläne und/oder Funktionsschaubilder angegebenen Funktionen/Arbeitsschritte beinhaltet.
-
Die Anweisungen der Computerprogramme können auch in einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten geladen werden, um eine in dem Computer, den anderen programmierbaren Einrichtungen oder anderen Einheiten auszuführende Reihe von Arbeitsschritte auszulösen, damit ein computergestützter Prozess dergestalt abläuft, dass die in dem Computer oder den anderen programmierbaren Vorrichtungen ausgeführten Anweisungen Prozesse zum Ausführen der in dem Block oder den Blöcken in den Ablaufplänen und/oder Funktionsschaubildern angegebenen Funktionen/Arbeitsschritte auslösen.
-
9 zeigt ein Funktionsschaubild, das bestimmte Elemente darstellt, die in dem System 900 gemäß bestimmten Ausführungsarten enthalten sein können. Das System 900 kann die Recheneinheit 100, 500 (z.B. eine RAID-Steuereinheit) umfassen und eine Schaltlogik 902 beinhalten, die bei bestimmten Ausführungsarten mindestens einen Prozessor 904 enthalten kann. Das System 900 kann auch einen Speicher 906 (z.B. eine flüchtige Speichereinheit) und einen Speicher 908 beinhalten. Der Speicher 908 kann eine permanente Speichereinheit (z.B. EEPROM, ROM, PROM, RAM, DRAM, SRAM, Flashspeicher, Firmware, programmierbare Logik usw.), ein Magnetplattenlaufwerk, ein optisches Plattenlaufwerk, ein Bandlaufwerk usw. beinhalten. Der Speicher 908 kann eine interne Speichereinheit, eine periphere Speichereinheit und/oder eine Speichereinheit mit Zugriff über ein Netzwerk umfassen. Das System 900 kann eine Programmlogik 910 beinhalten, die einen Code 912 enthält, der in den Speicher 906 geladen und durch den Prozessor 904 oder die Schaltlogik 902 ausgeführt werden kann. Bei bestimmten Ausführungsarten kann die den Code 912 enthaltende Programmlogik 910 im Speicher 908 gespeichert werden. Bei bestimmten anderen Ausführungsarten kann die Programmlogik in der Schaltlogik 902 angelegt sein. Obwohl die Programmlogik 910 in 9 getrennt von den anderen Elementen dargestellt ist, kann die Programmlogik 910 auch im Speicher 906 und/oder in der Schaltlogik 902 angelegt sein.
-
Bestimmte Ausführungsarten können auf ein Verfahren zum Eingeben von Rechenanweisungen durch eine Person oder zur automatischen Verarbeitung unter Einbeziehung eines computerlesbaren Codes in ein Rechensystem ausgerichtet sein, wobei der Code in Kombination mit dem Rechensystem zur Ausführung der Arbeitsschritte der beschriebenen Ausführungsarten befähigt wird. Unter den Begriffen „eine Ausführungsart“, „Ausführungsart“, „Ausführungsarten“, „die Ausführungsart“, „die Ausführungsarten“, „eine oder mehrere Ausführungsarten“, „einige Ausführungsarten“ und „eine Ausführungsart“ sind „eine oder mehrere (aber nicht alle) Ausführungsarten der vorliegenden Erfindung(en)“ zu verstehen, sofern nicht ausdrücklich Anderes angegeben ist.
-
Unter den Begriffen „beinhalten“, „umfassen“, „aufweisen“ und deren Abwandlungen ist zu verstehen „einschließlich, aber nicht darauf beschränkt“, sofern nicht ausdrücklich Anderes angegeben ist.
-
Die nummerierte Aufzählung von Objekten bedeutet keineswegs, dass einige oder alle Objekte sich gegenseitig ausschließen, sofern nicht ausdrücklich Anderes angegeben ist.
-
Unter den Begriffen „ein“, „eine“ und „der, die, das“ sind „ein oder mehrere“ zu verstehen, sofern nicht ausdrücklich Anderes angegeben ist.
-
Einheiten, zwischen denen Daten ausgetauscht werden, müssen nicht unbedingt ständig Daten untereinander austauschen, sofern nicht ausdrücklich Anderes angegeben ist. Außerdem können Einheiten, die Daten untereinander austauschen, die Daten direkt oder indirekt über eine oder mehrere Zwischenstationen austauschen.
-
Eine Beschreibung einer Ausführungsart mit mehreren untereinander Daten austauschenden Komponenten bedeutet keinesfalls, dass alle diese Komponenten erforderlich sind. Vielmehr werden eine Vielzahl von wahlweisen Komponenten beschrieben, um die große Vielfalt an möglichen Ausführungsarten der vorliegenden Erfindung zu veranschaulichen.
-
Obwohl die Verarbeitungsschritte, die Verfahrensschritte, die Algorithmen oder Ähnliches in einer bestimmten Reihenfolge beschrieben werden können, können diese Prozesse, Verfahren und Algorithmus ferner auch in anderer Reihenfolge abgearbeitet werden. Mit anderen Worten, jede möglicherweise beschriebene Sequenz oder Reihenfolge von Schritten zeigt keinesfalls eine Notwendigkeit an, dass die Schritte in dieser Reihenfolge ausgeführt werden müssen. Die Schritte der hier beschriebenen Prozesse können in jeder zweckmäßigen Reihenfolge ausgeführt werden. Ferner können einige Schritte auch gleichzeitig ausgeführt werden.
-
Wenn hier eine einzelne Einheit oder ein einzelner Artikel beschrieben wird, ist klar, dass anstelle einer einzelnen Einheit oder eines einzelnen Artikels mehr als eine Einheit/ein Artikel verwendet werden kann (unabhängig davon, ob diese zusammenwirken). Wenn hier mehr als eine Einheit oder ein Artikel beschrieben werden (unabhängig davon, ob diese zusammenwirken), ist ebenso klar, dass anstelle von mehr als einer Einheit oder mehr als einem Artikel eine einzelne Einheit oder ein einzelner Artikel beziehungsweise anstelle der gezeigten Anzahl von Einheiten oder Programmen eine andere Anzahl von Einheiten/Artikeln verwendet werden kann. Die Funktionalität und/oder die Merkmale einer Einheit können alternativ durch eine oder mehrere andere Einheiten dargestellt werden, auch wenn nicht ausdrücklich beschrieben wurde, dass sie eine solche Funktionalität/solche Merkmale aufweisen. Somit brauchen andere Ausführungsarten der vorliegenden Erfindung die Einheit selbst nicht zu beinhalten.
-
Mindestens einige Arbeitsschritte, die möglicherweise in den Figuren veranschaulicht worden sind, zeigen bestimmte Ereignisse, die in einer bestimmten Reihenfolge ablaufen. Bei alternativen Ausführungsarten können einige Arbeitsschritte in einer anderen Reihenfolge ausgeführt, geändert oder ausgelassen werden. Darüber hinaus können zu der oben beschriebenen Logik weitere Schritte hinzugefügt werden, ohne den beschriebenen Ausführungsarten zu widersprechen. Ferner können die hier beschriebenen Arbeitsschritte nacheinander ablaufen oder bestimmte Arbeitsschritte parallel abgearbeitet werden. Weiterhin können Arbeitsschritte durch eine einzelne Verarbeitungseinheit oder durch verteilte Verarbeitungseinheiten ausgeführt werden.
-
Die vorhergehende Beschreibung verschiedener Ausführungsarten der Erfindung dient nur zur Veranschaulichung und Beschreibung. Sie erhebt nicht den Anspruch auf Vollständigkeit oder die Beschränkung der Erfindung genau auf die beschriebene Form. Angesichts der oben dargelegten Lehren sind zahlreiche Änderungen und Varianten möglich. Der Geltungsbereich der Erfindung soll nicht durch diese detaillierte Beschreibung, sondern nur durch die beiliegenden Ansprüche eingeschränkt werden. Die obige Darlegung, die Beispiele und Daten vermitteln eine komplette Beschreibung zur Herstellung und Anwendung der Gesamtheit der Erfindung. Da zahlreiche Ausführungsarten der Erfindung ausgeführt werden können, ohne vom Geist und Geltungsbereich der Erfindung abzuweichen, liegt das Wesen der Erfindung in den angehängten Ansprüchen.
-
* Java ist ein Warenzeichen oder eingetragenes Warenzeichen von Sun Microsystems, Inc.