DE112010003662T5 - Ausgleich nachlassender Funktionsfähigkeit von Halbleiterdatenträgern auf der Grundlage der von einer RAID-Steuereinheit empfangenen Daten- und Paritätsnutzungsinformationen - Google Patents

Ausgleich nachlassender Funktionsfähigkeit von Halbleiterdatenträgern auf der Grundlage der von einer RAID-Steuereinheit empfangenen Daten- und Paritätsnutzungsinformationen Download PDF

Info

Publication number
DE112010003662T5
DE112010003662T5 DE112010003662T DE112010003662T DE112010003662T5 DE 112010003662 T5 DE112010003662 T5 DE 112010003662T5 DE 112010003662 T DE112010003662 T DE 112010003662T DE 112010003662 T DE112010003662 T DE 112010003662T DE 112010003662 T5 DE112010003662 T5 DE 112010003662T5
Authority
DE
Germany
Prior art keywords
block
semiconductor
data structures
data
raid
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE112010003662T
Other languages
English (en)
Other versions
DE112010003662B4 (de
Inventor
Andrew D. Walls
Daniel Frank Moertl
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112010003662T5 publication Critical patent/DE112010003662T5/de
Application granted granted Critical
Publication of DE112010003662B4 publication Critical patent/DE112010003662B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1057Parity-multiple bits-RAID6, i.e. RAID 6 implementations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1088Scrubbing in RAID systems with parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Es wird eine Steuereinheit beschrieben, die eine Vielzahl von Halbleiterdatenträgern als redundante Anordnung unabhängiger Datenträger/Laufwerke (RAID) konfiguriert, wobei auf der Vielzahl von Halbleiterdatenträgern eine Vielzahl von Blöcken gespeichert werden und wobei Speicherbereiche der Vielzahl von Halbleiterdatenträgern zumindest einigen aus der Vielzahl von Blöcken entsprechen, deren geschätzte Lebenserwartung 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 Informationen umfassen, die einem Fehlerkorrekturmechanismus zum Schutz vor sendet die Datenstrukturen an die Vielzahl von Halbleiterdatenträgern, wobei die Vielzahl von Halbleiterdatenträgern zum Speichern des die Paritätsinformationen enthaltenden Blocks einen Speicherbereich zuordnen, dessen geschätzte Lebenserwartung höher ist als die anderer Speicherbereiche.

Description

  • 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.
  • ÜBERBLICK ÜBER DIE BEVORZUGTEN AUSFÜHRUNGSARTEN
  • 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.
  • Bei weiteren Ausführungsarten 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 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.
  • Bei weiteren Ausführungsarten 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.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 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ätsinformatiansanzeige 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 + 2 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-RAM), 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 Pragrammlogik 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.

Claims (20)

  1. Verfahren, das folgende Schritte umfasst: Konfigurieren einer Vielzahl von Halbleiterdatenträgern (solid state disks) als redundante Anordnung unabhängiger Datenträger/Laufwerke (RAID), wobei in der Vielzahl von Halbleiterdatenträgern eine Vielzahl von Blöcken gespeichert sind und wobei die geschätzte Lebenserwartung von Speicherbereichen der Vielzahl von Halbleiterdatenträgern, die mindestens einigen der Vielzahl von Blöcken entsprechen, unterschiedlich hoch ist; Einbeziehen einer Anzeige durch die Steuereinheit in Datenstrukturen, die einem in den Speicherbereichen der Vielzahl von Halbleiterdatenträgern zu speichernden Block zugehörig sind, dass der Block der RAID entsprechende Paritätsinformationen enthält, wobei die Paritätsinformationen Informationen umfassen, die einem Fehlerkorrekturmechanismus zum Schutz vor Datenträgerausfall entsprechen; und Senden der Datenstrukturen durch die Steuereinheit an die Vielzahl der Halbleiterdatenträger, wobei die Vielzahl der Halbleiterdatenträger zum Speichern des Blocks mit den darin enthaltenen Paritätsinformationen einen Speicherbereich zuordnen, dessen geschätzte Lebenserwartung höher ist als die von anderen Speicherbereichen.
  2. Verfahren nach Anspruch 1, wobei 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 handelt, wobei das Verfahren ferner folgenden Schritt umfasst: Einbeziehen einer zweiten Anzeige durch die Steuereinheit in zweite Datenstrukturen, die einem in den Speicherbereichen der Vielzahl von Halbleiterdatenträgern zu speichernden zweiten Block zugehörig sind, wobei die zweite Anzeige die Anzahl der in der RAID vorhandenen Datenträgere anzeigt und die Vielzahl von Halbleiterdatenträgern als Reaktion auf die Feststellung, dass der zweite Block für eine größere Anzahl von Datenträgern vorgesehen ist als ein dritter Block, der für eine geringere Anzahl von Datenträgern vorgesehen ist, den zweiten Block einem zweiten Speicherbereich zuordnen, dessen geschätzte Lebenserwartung höher ist als die eines dritten Speicherbereichs, in welchem der dritte Block gespeichert wird.
  3. Verfahren nach Anspruch 2, wobei die erste und die zweite Datenstruktur in einem SCSI-Befehlsdeskriptorblock (CDB) enthalten sind und ungenutzte Bits des CDB zum Speichern der ersten und der zweiten Datenstruktur verwendet werden.
  4. Verfahren nach Anspruch 3, wobei die Zuordnung des ersten und des zweiten Speicherbereichs sowie weiterer Speicherbereiche zum ersten, zweiten, dritten und weiteren Blöcken auf der Grundlage einer RAID-Rangordnung und/oder eines RAID-Typs festgelegt wird.
  5. Verfahren nach Anspruch 2, wobei die erste und die zweite Datenstruktur in Konfigurationsregistern einer PCI-kompatiblen Karte enthalten sind.
  6. Verfahren nach Anspruch 1, wobei 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 handelt und wobei das verfahren ferner folgenden Schritt umfasst: Einbeziehen einer zweiten Anzeige durch die Steuereinheit in zweite Datenstrukturen, die einem in den Speicherbereichen der Vielzahl der Halbleiterdatenträger zu speichernden zweiten Block zugehörig sind, wobei die zweite Anzeige eine relative Häufigkeit anzeigt, mit der die im zweiten Block gespeicherten Daten wahrscheinlich aktualisiert werden, wobei zum Speichern des zweiten Blocks, dessen Aktualisierung häufiger erfolgt als die anderer Blöcke, ein zweiter Speicherbereich verwendet wird, dessen geschätzte Lebenserwartung höher ist als die anderer Speicherbereiche.
  7. Verfahren nach Anspruch 1, das ferner folgende Schritte umfasst: Empfangen der durch die Steuereinheit gesendeten Datenstrukturen durch eine in der Vielzahl von Halbleiterdatenträgern enthaltene Firmware; und Zuordnen des Speicherbereichs mit der im Vergleich zu den anderen Speicherbereichen höheren geschätzten Lebenserwartung zum Speichern des Blocks, der die Paritätsinformationen enthält, durch die in der Vielzahl von Halbleiterdatenträgern enthaltene Firmware.
  8. Verfahren nach Anspruch 1, wobei das Verfahren zum Einrichten einer Rechnerinfrastruktur dient und ferner folgenden Schritt umfasst: Einbeziehen eines computerlesbaren Codes in die Steuereinheit, wobei der Code in Verbindung mit der Steuereinheit in der Lage ist, die Arbeitsschritte zum Konfigurieren der Vielzahl von Halbleiterdatenträgern, zum Aufnehmen der Datenstrukturen durch die Steuereinheit und zum Senden der Datenstrukturen durch die Steuereinheit auszuführen.
  9. Steuereinheit, die Daten mit einer Vielzahl von Halbleiterdatenträgern austauscht und Folgendes umfasst: einen Speicher; und einen mit dem Speicher verbundenen Prozessor, wobei der Prozessor Operationen durchführt, die folgende Schritte umfassen: Konfigurieren der Vielzahl von Halbleiterdatenträgern als redundante Anordnung unabhängiger Datenträger (RAID), wobei in der Vielzahl von Halbleiterdatenträgern eine Vielzahl von Blöcken gespeichert werden und die geschätzte Lebensdauer von Speicherbereichen der Vielzahl von Halbleiterdatenträgern, die mindestens einigen aus der Vielzahl von Blöcken entsprechen, unterschiedlich hoch ist; Einbeziehen einer Anzeige in Datenstrukturen, die einem in den Speicherbereichen der Vielzahl von Halbleiterdatenträgern zu speichernden Block zugehörig sind, dass der Block der RAID entsprechende Paritätsinformationen enthält, wobei die Paritätsinformationen Informationen umfassen, die einem Fehlerkorrekturmechanismus zum Schutz vor Datenträgerausfall entsprechen; und Senden der Datenstrukturen an die Vielzahl von Halbleiterdatenträgern, wobei die Vielzahl von Halbleiterdatenträgern zum Speichern des die Paritätsinformationen enthaltenden Blocks einen Speicherbereich zuordnen, dessen geschätzte Lebenserwartung höher ist als die anderer Speicherbereiche.
  10. Steuereinheit nach Anspruch 9, wobei 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 handelt und die Arbeitsschritte ferner folgende Schritte umfassen; Einbeziehen einer zweiten Anzeige in zweite Datenstrukturen, die einem in den Speicherbereichen der Halbleiterdatenträger zu speichernden zweiten Block zugehörig sind, wobei die zweite Anzeige die Anzahl der in der RAID vorhandenen Datenträger anzeigt und die Vielzahl der Halbleiterdatenträger als Reaktion auf die Feststellung, dass der zweite Block für eine größere Anzahl von Datenträgern vorgesehen ist als ein dritter Block, der für eine geringere Anzahl von Datenträgern vorgesehen ist, dem zweiten Block einen zweiten Speicherbereich zuordnen, dessen geschätzte Lebenserwartung höher ist als die eines dritten Speicherbereichs, in dem der dritte Block gespeichert wird.
  11. Steuereinheit nach Anspruch 10, wobei die erste und die zweite Datenstruktur in einem SCSI-Befehlsdeskriptorblock (CDB) enthalten sind und ungenutzte Bits des CDB zum Speichern der ersten und der zweiten Datenstruktur verwendet werden.
  12. Steuereinheit nach Anspruch 11, wobei die Zuordnung des ersten und des zweiten Speicherbereichs sowie weiterer Speicherbereiche zum ersten, zweiten, dritten und weiteren Blöcken auf der Grundlage einer RAID-Rangordnung und/oder eines RAID-Typs festgelegt wird.
  13. Steuereinheit nach Anspruch 9, wobei die erste und die zweite Datenstruktur in Konfigurationsregistern einer PCI-kompatiblen Karte enthalten sind.
  14. Steuereinheit nach Anspruch 9, wobei 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 handelt und die Arbeitsschritte ferner folgende Schritte umfassen; Einbeziehen einer zweiten Anzeige in zweite Datenstrukturen, die einem in den Speicherbereichen der Halbleiterdatenträger zu speichernden zweiten Block zugehörig sind, wobei die zweite Anzeige eine relative Häufigkeit anzeigt, mit der die im zweiten Block gespeicherten Daten wahrscheinlich aktualisiert werden, wobei zum Speichern des zweiten Blocks, dessen Aktualisierung häufiger erfolgt als die anderer Blöcke, ein zweiter Speicherbereich verwendet wird, dessen geschätzte Lebenserwartung höher ist als die anderer Blöcke.
  15. Computerprogrammprodukt zum Ausgleich nachlassender Funktionsfähigkeit einer Vielzahl von Halbleiterdatenträgern, wobei das Computerprogrammprodukt Folgendes umfasst: ein computerlesbares Speichermedium mit einem darauf gespeicherten computerlesbaren Programmcode, wobei der computerlesbare Programmcode dazu dient: die Vielzahl von Halbleiterdatenträgern als redundante Anordnung unabhängiger Datenträger (RAID) zu konfigurieren, wobei auf der Vielzahl von Halbleiterdatenträgern eine Vielzahl von Blöcken gespeichert werden und die geschätzte Lebenserwartung der Speicherbereiche der Vielzahl von Halbleiterdatenträgern, die zumindest einigen aus der Vielzahl von Blöcken entsprechen, unterschiedlich hoch ist; Einbeziehen einer Anzeige in Datenstrukturen, die einem in den Speicherbereichen der Vielzahl von Halbleiterdatenträgern zu speichernden Block zugehörig sind, dass der Block der RAID entsprechende Paritätsinformationen enthält, wobei die Paritätsinformationen Informationen umfassen, die einem Fehlerkorrekturmechanismus zum Schutz vor Datenträgerausfall entsprechen; und Senden der Datenstrukturen an die Vielzahl von Halbleiterdatenträgern, wobei die Vielzahl von Halbleiterdatenträgern zum Speichern des die Paritätsinformationen enthaltenden Blocks einen Speicherbereich zuordnen, dessen geschätzte Lebenserwartung höher ist als die anderer Speicherbereiche.
  16. Computerprogrammprodukt nach Anspruch 15, wobei 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 handelt und der computerlesbare Programmcode ferner dazu dient: Einbeziehen einer zweiten Anzeige in zweite Datenstrukturen, die einem in den Speicherbereichen der Halbleiterdatenträger zu speichernden zweiten Block zugehörig sind, wobei die Vielzahl von Halbleiterdatenträgern als Reaktion auf die Feststellung, dass der zweite Block für eine größere Anzahl von Datenträgern vorgesehen ist als ein dritter Block, der für eine geringere Anzahl von Datenträgern vorgesehen ist, dem zweiten Block einen zweiten Speicherbereich zuordnen, dessen geschätzte Lebenserwartung höher ist als die eines dritten Speicherbereichs, in dem der dritte Block gespeichert wird.
  17. Computerprogrammprodukt nach Anspruch 16, wobei die erste und die zweite Datenstruktur in einem SCSI-Befehlsdeskriptorblock (CDB) enthalten sind und ungenutzte Bits des CDB zum Speichern der ersten und der zweiten Datenstruktur verwendet werden.
  18. Computerprogrammprodukt nach Anspruch 17, wobei die Zuordnung des ersten und des zweiten Speicherbereichs sowie weiterer Speicherbereiche zum ersten, zweiten, dritten und weiteren Blöcken auf der Grundlage einer RAID-Rangordnung und/oder eines RAID-Typs festgelegt wird.
  19. Computerprogrammprodukt nach Anspruch 16, wobei die erste und die zweite Datenstruktur in Konfigurationsregistern einer PCI-kompatiblen Karte enthalten sind.
  20. Computerprogrammprodukt nach Anspruch 15, wobei 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 handelt und der computerlesbare Programmcode ferner dazu dient: eine zweite Anzeige in zweite Datenstrukturen einzubeziehen, die einem in den Speicherbereichen der Halbleiterdatenträger zu speichernden zweiten Block zugehörig sind, wobei die zweite Anzeige eine relative Häufigkeit anzeigt, mit der die im zweiten Block gespeicherten Daten wahrscheinlich aktualisiert werden, wobei zum Speichern des zweiten Blocks, dessen Aktualisierung häufiger erfolgt als die anderer Blöcke, ein zweiter Speicherbereich verwendet wird, dessen geschätzte Lebenserwartung höher ist als die anderer Blöcke.
DE112010003662.4T 2009-09-16 2010-08-26 Ausgleich nachlassender Funktionsfähigkeit von Halbleiterdatenträgern auf der Grundlage der von einer RAID-Steuereinheit empfangenen Daten- und Paritätsnutzungsinformationen Active DE112010003662B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/561,210 US8234520B2 (en) 2009-09-16 2009-09-16 Wear leveling of solid state disks based on usage information of data and parity received from a raid controller
US12/561,210 2009-09-16
PCT/EP2010/062509 WO2011032816A1 (en) 2009-09-16 2010-08-26 Wear leveling of solid state disks based on usage information of data and parity received from a raid controller

Publications (2)

Publication Number Publication Date
DE112010003662T5 true DE112010003662T5 (de) 2012-10-31
DE112010003662B4 DE112010003662B4 (de) 2020-03-05

Family

ID=42831588

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010003662.4T Active DE112010003662B4 (de) 2009-09-16 2010-08-26 Ausgleich nachlassender Funktionsfähigkeit von Halbleiterdatenträgern auf der Grundlage der von einer RAID-Steuereinheit empfangenen Daten- und Paritätsnutzungsinformationen

Country Status (6)

Country Link
US (2) US8234520B2 (de)
CN (1) CN102498472B (de)
DE (1) DE112010003662B4 (de)
GB (1) GB2485872B (de)
TW (1) TW201131350A (de)
WO (1) WO2011032816A1 (de)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8725946B2 (en) * 2009-03-23 2014-05-13 Ocz Storage Solutions, Inc. Mass storage system and method of using hard disk, solid-state media, PCIe edge connector, and raid controller
US8639877B2 (en) * 2009-06-30 2014-01-28 International Business Machines Corporation Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks
JP2011198433A (ja) * 2010-03-23 2011-10-06 Toshiba Corp メモリシステム
WO2012137242A1 (en) * 2011-04-04 2012-10-11 Hitachi, Ltd. Storage system and data control method therefor
KR101801147B1 (ko) * 2011-08-30 2017-11-27 삼성전자주식회사 데이터 신뢰성을 개선하는 데이터 관리 방법 및 그에 따른 데이터 저장 장치
US9152553B1 (en) * 2011-12-15 2015-10-06 Marvell International Ltd. Generic command descriptor for controlling memory devices
WO2013126066A1 (en) * 2012-02-24 2013-08-29 Hewlett-Packard Development Company, L.P. Wear-leveling cores of a multi-core processor
US9575851B1 (en) * 2012-06-27 2017-02-21 EMC IP Holding Company LLC Volume hot migration
FI125308B (en) 2012-07-05 2015-08-31 Blancco Oy Ltd Device, arrangement, method, and computer program for erasing data stored in mass storage
KR101925383B1 (ko) 2012-07-23 2018-12-05 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 데이터 관리 방법
CN102866933B (zh) * 2012-09-03 2016-02-24 厦门市美亚柏科信息股份有限公司 一种raid类型判断方法
CN103858114A (zh) * 2012-09-12 2014-06-11 株式会社东芝 对阵列中的纠错编码区块配置位置进行管理的存储装置、存储控制器以及方法
US9021339B2 (en) 2012-11-29 2015-04-28 Western Digital Technologies, Inc. Data reliability schemes for data storage systems
WO2014118822A1 (en) * 2013-01-31 2014-08-07 Hitachi, Ltd. Storage system and cache control method
CN103150233B (zh) * 2013-03-18 2016-06-08 厦门市美亚柏科信息股份有限公司 一种raid-5的数据恢复方法
CN104347122B (zh) * 2013-07-31 2017-08-04 华为技术有限公司 一种消息式内存模组的访存方法和装置
US9317367B2 (en) * 2013-08-01 2016-04-19 Globalfoundries Inc. Re-distributing high usage data in a raid solid state drive array
US10067829B2 (en) * 2013-12-13 2018-09-04 Intel Corporation Managing redundancy information in a non-volatile memory
US9524236B1 (en) * 2014-01-09 2016-12-20 Marvell International Ltd. Systems and methods for performing memory management based on data access properties
CN105335299B (zh) * 2014-08-12 2018-10-02 群联电子股份有限公司 数据存储方法、存储器控制电路单元及存储器存储装置
US10007432B2 (en) * 2015-10-13 2018-06-26 Dell Products, L.P. System and method for replacing storage devices
US9921760B2 (en) 2015-10-22 2018-03-20 International Business Machines Corporation Shifting wearout of storage disks
US10528276B2 (en) * 2015-10-22 2020-01-07 International Business Machines Corporation Shifting wearout of storage disks
US9858002B1 (en) 2016-05-13 2018-01-02 Seagate Technology Llc Open block stability scanning
US10048863B1 (en) 2016-06-01 2018-08-14 Seagate Technology Llc Open block refresh management
US10089170B1 (en) 2016-06-15 2018-10-02 Seagate Technology Llc Open block management
CN107025066A (zh) 2016-09-14 2017-08-08 阿里巴巴集团控股有限公司 在基于闪存的存储介质中写入存储数据的方法和装置
US10152378B2 (en) * 2016-10-04 2018-12-11 Futurewei Technologies, Inc. Data protection for a cold storage system
US10430308B2 (en) * 2016-12-20 2019-10-01 Samsung Electronics Co., Ltd. Method of estimating remaining life of solid state drive device
CN106775492B (zh) * 2016-12-30 2020-06-26 华为技术有限公司 一种固态硬盘中写入数据的方法和存储系统
US10761743B1 (en) 2017-07-17 2020-09-01 EMC IP Holding Company LLC Establishing data reliability groups within a geographically distributed data storage environment
US11436203B2 (en) 2018-11-02 2022-09-06 EMC IP Holding Company LLC Scaling out geographically diverse storage
US11748004B2 (en) 2019-05-03 2023-09-05 EMC IP Holding Company LLC Data replication using active and passive data storage modes
US11449399B2 (en) 2019-07-30 2022-09-20 EMC IP Holding Company LLC Mitigating real node failure of a doubly mapped redundant array of independent nodes
US11449248B2 (en) 2019-09-26 2022-09-20 EMC IP Holding Company LLC Mapped redundant array of independent data storage regions
US11435910B2 (en) 2019-10-31 2022-09-06 EMC IP Holding Company LLC Heterogeneous mapped redundant array of independent nodes for data storage
US11435957B2 (en) 2019-11-27 2022-09-06 EMC IP Holding Company LLC Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes
US11507308B2 (en) 2020-03-30 2022-11-22 EMC IP Holding Company LLC Disk access event control for mapped nodes supported by a real cluster storage system
TWI754924B (zh) * 2020-04-29 2022-02-11 威聯通科技股份有限公司 提高固態硬碟陣列工作壽命的方法及利用其之儲存設備
US11693983B2 (en) 2020-10-28 2023-07-04 EMC IP Holding Company LLC Data protection via commutative erasure coding in a geographically diverse data storage system
US11847141B2 (en) 2021-01-19 2023-12-19 EMC IP Holding Company LLC Mapped redundant array of independent nodes employing mapped reliability groups for data storage
US11625174B2 (en) * 2021-01-20 2023-04-11 EMC IP Holding Company LLC Parity allocation for a virtual redundant array of independent disks
US11354191B1 (en) 2021-05-28 2022-06-07 EMC IP Holding Company LLC Erasure coding in a large geographically diverse data storage system
US11449234B1 (en) 2021-05-28 2022-09-20 EMC IP Holding Company LLC Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes
US11966608B2 (en) * 2021-11-15 2024-04-23 Samsung Electronics Co., Ltd. Memory controller with improved data reliability and memory system including the same

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341339A (en) * 1992-10-30 1994-08-23 Intel Corporation Method for wear leveling in a flash EEPROM memory
EP0612015A1 (de) * 1993-02-16 1994-08-24 International Business Machines Corporation Verbesserte Speicherplattenanordnung mit besonderen Paritätsgruppen für Datenblöcke mit hoher Aktualisierungsfrequenz
JP3135751B2 (ja) * 1993-07-16 2001-02-19 株式会社東芝 データ記憶装置
JP3358687B2 (ja) * 1995-03-13 2002-12-24 株式会社日立製作所 ディスクアレイ装置
US5889795A (en) * 1995-04-21 1999-03-30 International Business Machines Corporation Disk array system and method for storing data
US5671388A (en) * 1995-05-03 1997-09-23 Intel Corporation Method and apparatus for performing write operations in multi-level cell storage device
US5822782A (en) * 1995-10-27 1998-10-13 Symbios, Inc. Methods and structure to maintain raid configuration information on disks of the array
JP3641872B2 (ja) * 1996-04-08 2005-04-27 株式会社日立製作所 記憶装置システム
US5975738A (en) 1997-09-30 1999-11-02 Lsi Logic Corporation Method for detecting failure in redundant controllers using a private LUN
EP1031091A4 (de) 1997-11-14 2002-11-06 3Ware Inc Hochleistungsarchitektur für speicherplattenanordnungssteuerungsvorrichtung
US7660941B2 (en) * 2003-09-10 2010-02-09 Super Talent Electronics, Inc. Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories
US8078794B2 (en) * 2000-01-06 2011-12-13 Super Talent Electronics, Inc. Hybrid SSD using a combination of SLC and MLC flash memory arrays
US7024586B2 (en) * 2002-06-24 2006-04-04 Network Appliance, Inc. Using file system information in raid data reconstruction and migration
ATE372578T1 (de) * 2002-10-28 2007-09-15 Sandisk Corp Automatischer abnutzungsausgleich in einem nicht- flüchtigen speichersystem
JP4160817B2 (ja) * 2002-11-05 2008-10-08 株式会社日立製作所 ディスクサブシステム、計算機システム、それを管理するためのストレージ管理方法、および、管理プログラム
US7191207B2 (en) * 2003-06-11 2007-03-13 International Business Machines Corporation Apparatus and method to dynamically allocate bandwidth in a data storage and retrieval system
US7328305B2 (en) * 2003-11-03 2008-02-05 Network Appliance, Inc. Dynamic parity distribution technique
US7073010B2 (en) * 2003-12-02 2006-07-04 Super Talent Electronics, Inc. USB smart switch with packet re-ordering for interleaving among multiple flash-memory endpoints aggregated as a single virtual USB endpoint
US7188212B2 (en) * 2004-05-06 2007-03-06 International Business Machines Corporation Method and system for storing data in an array of storage devices with additional and autonomic protection
EP1772804B1 (de) 2004-08-12 2011-03-23 Hitachi, Ltd. Speichersystem
US7516354B2 (en) * 2004-08-25 2009-04-07 International Business Machines Corporation Storing parity information for data recovery
US7441067B2 (en) * 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US7444360B2 (en) * 2004-11-17 2008-10-28 International Business Machines Corporation Method, system, and program for storing and using metadata in multiple storage locations
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
JP4863749B2 (ja) * 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US7779426B2 (en) * 2006-03-30 2010-08-17 Microsoft Corporation Describing and querying discrete regions of flash storage
US7802064B2 (en) 2006-03-31 2010-09-21 Mosaid Technologies Incorporated Flash memory system control scheme
US7409490B2 (en) * 2006-04-15 2008-08-05 Yi-Chun Liu Method of flash memory management
US8015353B2 (en) * 2006-08-31 2011-09-06 Dell Products L.P. Method for automatic RAID configuration on data storage media
JP2008097053A (ja) * 2006-10-05 2008-04-24 Hitachi Global Storage Technologies Netherlands Bv ネットワークを介して接続された複数のデータ記憶装置を含むシステム及びそれに使用されるデータ記憶装置
JP4932427B2 (ja) * 2006-10-20 2012-05-16 株式会社日立製作所 記憶装置及び記憶方法
KR100833188B1 (ko) * 2006-11-03 2008-05-28 삼성전자주식회사 데이터의 특성에 따라 싱글 레벨 셀 또는 멀티 레벨 셀에데이터를 저장하는 불휘발성 메모리 시스템
US8074011B2 (en) * 2006-12-06 2011-12-06 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery after reaching a read count limit
US20080140918A1 (en) * 2006-12-11 2008-06-12 Pantas Sutardja Hybrid non-volatile solid state memory system
US7593263B2 (en) * 2006-12-17 2009-09-22 Anobit Technologies Ltd. Memory device with reduced reading latency
US7660911B2 (en) * 2006-12-20 2010-02-09 Smart Modular Technologies, Inc. Block-based data striping to flash memory
US8140737B2 (en) * 2007-01-30 2012-03-20 Skymedi Corporation Method for enhancing life cycle of memory
JP2008204041A (ja) * 2007-02-19 2008-09-04 Hitachi Ltd ストレージ装置及びデータ配置制御方法
US8006166B2 (en) * 2007-06-12 2011-08-23 Micron Technology, Inc. Programming error correction code into a solid state memory device with varying bits per cell
US20090172335A1 (en) * 2007-12-31 2009-07-02 Anand Krishnamurthi Kulkarni Flash devices with raid
US8055835B2 (en) * 2008-06-23 2011-11-08 International Business Machines Corporation Apparatus, system, and method for migrating wear spots
JP5242264B2 (ja) * 2008-07-07 2013-07-24 株式会社東芝 データ制御装置、ストレージシステムおよびプログラム
US20100125695A1 (en) * 2008-11-15 2010-05-20 Nanostar Corporation Non-volatile memory storage system
JP5192352B2 (ja) * 2008-10-30 2013-05-08 株式会社日立製作所 記憶装置及びデータ格納領域管理方法
US8386883B2 (en) * 2009-02-24 2013-02-26 International Business Machines Corporation Lengthening life of a limited life memory
US8639877B2 (en) 2009-06-30 2014-01-28 International Business Machines Corporation Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks

Also Published As

Publication number Publication date
US8510595B2 (en) 2013-08-13
US8234520B2 (en) 2012-07-31
US20110066882A1 (en) 2011-03-17
GB2485872A (en) 2012-05-30
US20120260029A1 (en) 2012-10-11
CN102498472A (zh) 2012-06-13
GB2485872B (en) 2013-11-13
GB201119403D0 (en) 2011-12-21
DE112010003662B4 (de) 2020-03-05
WO2011032816A1 (en) 2011-03-24
CN102498472B (zh) 2015-04-22
TW201131350A (en) 2011-09-16

Similar Documents

Publication Publication Date Title
DE112010003662T5 (de) Ausgleich nachlassender Funktionsfähigkeit von Halbleiterdatenträgern auf der Grundlage der von einer RAID-Steuereinheit empfangenen Daten- und Paritätsnutzungsinformationen
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE102011086098B4 (de) Parallele Speicherlese- und Speicherschreib-Operationen in einem Speicher mit serieller Schnittstelle
DE60313783T2 (de) Bewegen von daten zwischen speichereinheiten
DE102018105943A1 (de) Kontextbewusste dynamische Befehlsplanung für ein Datenspeichersystem
DE112013004400B4 (de) Herstellen einer Zeitpunktkopie-Beziehung zwischen logischen Quellenadressen und logischen Zieladressen
DE202010017667U1 (de) Datenspeichervorrichtung mit Flash-Speicherchips
DE112018004256T5 (de) Redundanzcodierstreifen basierend auf internen adressen von speichervorrichtungen
DE112013006655T5 (de) Speichervorrichtung und Verfahren zum Steuern der Speichervorrichtung
DE602004002674T2 (de) Speichersystem und Verfahren zur Erfassung und Verwendung von Schnappschüssen
DE112006004187T5 (de) Initativer Abnutzungsausgleich für einen nicht-flüchtigen Speicher
DE102018204427A1 (de) Simulieren mehrerer Speichergeräte mit einem einzelnen Speichergerät, das mit einem Rechengerät gekoppelt ist
DE102013215009A1 (de) Verfahren und System zur Optimierung der Datenübertragung
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
DE112020005787T5 (de) Verbesserte dateisystem-unterstützung für zonen-namespace-speicher
DE102014112943B4 (de) Modulares Computersystem und Servermodul
DE112012002452T5 (de) Anpassungsfähiges Zwischenspeichern von Datensätzen für Halbleiterplatten
DE60312527T2 (de) Verwalten von daten mittels einer mehrzahl von speicherattributen
DE102019102861A1 (de) Verfahren und Vorrichtung zur Abschätzung der Abnutzung eines nicht-flüchtigen Informationsspeichers
DE112018002500T5 (de) Speicherarray für Hybriddaten
DE112014000340T5 (de) Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern
DE10234138A1 (de) Verwalten einer Speicherkonkurrenz bei automatisierten Speichersystemen
DE112020005092T5 (de) Konstruktion einer blockvorrichtung
DE102012221814A1 (de) Neuanordnung von Software-Abbildern auf der Grundlage von deren vorhergesagter Verwendung
DE112011103299T5 (de) Systeme und Verfahren zum Verwalten einer virtuellen Bandarchiv-Domäne

Legal Events

Date Code Title Description
R163 Identified publications notified
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final