-
TECHNISCHES GEBIET
-
Die
Erfindungen betreffen die Detektion von Cachespeicher-Disassoziierung
im Allgemeinen.
-
ALLGEMEINER STAND DER TECHNIK
-
Cachespeicher
ist typischerweise Direktzugriffsspeicher (Random Access Memory,
RAM), auf den ein Computerprozessor schneller als auf regulären RAM
zugreifen kann. Beispielsweise können
Daten, auf die vor kurzem zugegriffen wurde, und/oder Daten, auf
die häufig
zugegriffen wurde, im Cachespeicher gespeichert sein. Sowie der
Prozessor Daten verarbeitet und Daten aus dem regulären größeren RAM
braucht, sieht er zuerst im Cachespeicher nach, um zu ermitteln,
ob die Daten im Cachespeicher sind. Sind sie im Cachespeicher, braucht
der Prozessor keinen zeitaufwendigeren Lesevorgang auszuführen, um
auf Daten aus dem größeren Speicher
zuzugreifen. In ähnlicher
Weise kann Cachespeicher auch verwendet werden, um schnelleren Zugriff
auf Daten bereitzustellen, die auf einem Massenspeichergerät, wie z.
B. einem Plattenlaufwerk, einem optischen Laufwerk, einem Bandlaufwerk
usw. gespeichert sind. Beispielsweise ist vorgeschlagen worden,
Plattenlaufwerke mit Flash-Speicher
als Teil einer nichtflüchtigen
(non-volatile, NV-)Cachespeicher-Lösung in solch einer Art und
Weise zu ergänzen,
dass der Cachespeicher (beispielsweise nichtflüchtiger Flash-Speicher) im
Plattenlaufwerk selbst beinhaltet sein würde.
-
Man
nimmt an, dass es eine bessere Lösung als
das Bereitstellen eines Cachespeichers als Teil des Massenspeichergerätes (beispielsweise
eines Festplattenlaufwerkes) ist, einen nichtflüchtigen (NV-)Cachespeicher
bereitzustellen, der plattformbasierte Technologie verwendet. Ein
Beispiel einer plattformbasierten Cachespeicher-Lösung ist
es, einen Cachespeicher bereitzustellen, der nicht Teil des Massenspeichergerätes ist,
sondern auf der Host-Plattform beinhaltet ist. Das Konsolidieren
des Cachespeichers in der Plattform (statt beispielsweise viele
kleinere Cachespeicher auf jedem Speichergerät zu haben) erlaubt es dem
einen konsolidierten Cachespeicher, allen Speichergeräten zu Diensten zu
sein. Ferner kann dadurch, dass er enger in die Plattform integriert
ist, der Cachespeicher mit nichtflüchtiger Speicherung auch einfacher
für andere Plattformdienste
verwendet werden (beispielsweise gemeinsam mit dem BIOS genutzt
werden usw.). Ein früher
vorgebrachtes Argument, warum eine derartige plattformbasierte Lösung keine
attraktive Alternative sei, ist, weil der nichtflüchtige Cachespeicher vom
Massenspeichergerät
(beispielsweise einem Plattenlaufwerk) getrennt werden kann. Diese
Trennung zwischen dem Cachespeicher und dem Speichergerät wird als
Cachespeicher-Disassoziierung bezeichnet. Beispielsweise kann das
Speichergerät von
einer Plattform zu einer anderen Plattform und dann zur ursprünglichen
Plattform zurück
umgesetzt werden, oder es könnte
durch ein unterschiedliches Betriebssystem (Operating System, OS)
(beispielsweise Linux) auf einer Plattform auf das Speichergerät zugegriffen
werden und dann wieder durch das erste Betriebssystem (OS) (beispielsweise
Windows) zugegriffen werden. In einem derartigen Szenarium besteht
ein Potential beispielsweise für
Plattenlaufwerks-Korruption
und/oder inkohärente
Cachespeicher-Inhalte, wenn die Disassoziierung und/oder Neuassoziierung
zwischen dem Speichergerät
und der Plattform auftritt.
-
Eine
frühere
Lösung
für die
Detektion von Cachespeicher-Disassoziierung besteht für die Inhalte
des Plattenlaufwerks darin, in derartiger Weise gescramblet zu werden,
dass, würde
das Laufwerk zu einem unterschiedlichen System (einer unterschiedlichen
Plattform) verbracht werden, es ohne spezielle Hilfsmittel zum Entscramblen
der Inhalte nicht funktionieren würde. Disassoziierung wurde
detektiert, wenn die Laufwerksinhalte nicht wie erwartet gescramblet
waren. Diese Art von Lösung
schafft jedoch neue Behinderungen und erfordert spezielle Hilfsmittel
zum Handhaben typischer Wartungsverfahren der Informationstechnologie
(IT). Beispielsweise kann, wenn ein Laptop fehlerhaft ist, ein IT-Techniker
wünschen,
die Festplatte in ein neues Leihlaptop umzusetzen, während das
Originallaptop gewartet wird. Die zusätzlichen neuen Hilfsmittel
und Verfahren, welche durch die oben beschriebene frühere Lösung erforderlich
sind, machen ein derartiges Umsetzen zu einem viel mühsameren
Vorgang. Daher ist Bedarf entstanden, in einer Art und Weise zu detektieren,
ob Cachespeicher-Disassoziierung
aufgetreten ist, welche diese lästigen
Anforderungen beseitigt und beim Detektieren von Disassoziierung gleichermaßen zuverlässig ist.
Würde Cachespeicher-Disassoziierung detektiert
werden, dann könnten
Schritte unternommen werden, um die Cachespeicher-Kohärenz zweckentsprechend
wiederherzustellen.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die
Erfindungen werden vollständiger
anhand der unten angegebenen ausführlichen Beschreibung und der
beiliegenden Zeichnungen einiger Ausführungsformen der Erfindungen
verständlich,
die jedoch nicht genommen werden sollten, um die Erfindungen auf
die beschriebenen spezifischen Ausführungsformen zu begrenzen,
sondern nur der Erläuterung
und dem Verständnis
dienen.
-
1 stellt
ein System dar, das Cachespeicher-Disassoziierung detektiert, gemäß einigen
Ausführungsformen
der Erfindungen.
-
2 stellt
eine Erläuterung
eines Speichergerätes
dar, das zwischen Plattformen verbracht wird, gemäß einigen
Ausführungsformen
der Erfindungen.
-
3 stellt
ein Flussdiagramm dar, das die Detektion von Cachespeicher-Disassoziierung zeigt, gemäß einigen
Ausführungsformen
der Erfindungen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Einige
Ausführungsformen
der Erfindungen betreffen die Detektion von Cachespeicher-Disassoziierung.
-
In
einigen Ausführungsformen
wird ein erwarteter Wert mit einer Anzahl verglichen, wie oft ein Speichergerät eingeschaltet
und/oder hochgefahren worden ist. In Reaktion auf das Vergleichen
wird eine Cachespeicher-Disassoziierung detektiert.
-
In
einigen Ausführungsformen
beinhaltet ein System eine Plattform, die einen Cachespeicher, ein Speichergerät, das mit
der Plattform gekoppelt ist, einen Komparator zum Vergleichen einer
Anzahl, wie oft das Speichergerät
hochgefahren und/oder eingeschaltet worden ist, mit einem erwarteten
Wert und einen Detektor zum Detektieren einer Disassoziierung zwischen
dem Cachespeicher und dem Speichergerät in Reaktion auf eine Ausgabe
des Komparators beinhaltet.
-
In
einigen Ausführungsformen
beinhaltet eine Vorrichtung einen Komparator zum Vergleichen einer
Anzahl, wie oft ein Speichergerät
hochgefahren worden ist, und/oder einer Anzahl, wie oft das Speichergerät eingeschaltet
worden ist, mit einem erwarteten Wert und einen Detektor zum Detektieren
einer Cachespeicher-Disassoziierung
in Reaktion auf eine Ausgabe des Komparators.
-
In
einigen Ausführungsformen
beinhaltet ein Gegenstand ein computerlesbares Medium, das Befehle
darauf aufweist, die, wenn sie ausgeführt werden, einen Computer
veranlassen, eine Anzahl, wie oft ein Speichergerät eingeschaltet
und/oder hochgefahren worden ist, mit einem erwarteten Wert zu vergleichen
und in Reaktion auf den Vergleich eine Cachespeicher-Disassoziierung
zu detektieren.
-
Cachespeicher-Disassoziierung
kann gemäß einigen
Ausführungsformen
auftreten, wenn ein Speichergerät,
wie z. B. ein Plattenlaufwerk, in einer Umgebung gestartet wird,
in der der Cachespeicher (beispielsweise nichtflüchtiger Cachespeicher oder NV-Cachespeicher)
und das Speichergerät
(beispielsweise ein Plattenlaufwerk) physikalisch und/oder logisch
getrennt sind. Dies kann beispielsweise durch Starten unter einem
unterschiedlichen Betriebssystem (OS), das nicht cachespeicherbewusst
ist, auf derselben Plattform (logische Trennung) und/oder durch
Starten des Laufwerkes auf einer unterschiedlichen physikalischen
Plattform (physikalische Trennung) und/oder durch Starten unter demselben
OS, aber in einer Situation auftreten, in der der Cachespeicher-Gerätetreiber
aus irgendeinem Grunde nicht im OS geladen ist (logische Trennung).
In einer derartigen Situation wird das Speichergerät vom Cachespeicher
getrennt, beispielsweise durch eine physikalische Trennung zu einer unterschiedlichen
physikalischen Plattform und/oder durch eine logische Trennung zu
einer unterschiedlichen Betriebsumgebung, die den Cachespeicher
und das Speichergerät
nicht kohärent
hält.
-
Gemäß einigen
Ausführungsformen
kann ein Speichergerät
(beispielsweise ein Festplattenlaufwerk) nicht mit dem nichtflüchtigen
Cachespeicher inkohärent
gemacht werden, ohne dass das Speichergerät eingeschaltet und/oder hochgefahren
wird, da die Inhalte des Speichergerätes nicht geändert werden
können,
ohne dass zuerst ein Einschalten oder Hochfahren des Speichergerätes geschieht. Beispielsweise
könnte
gemäß einigen
Ausführungsformen,
wenn das Speichergerät
(beispielsweise ein Festplattenlaufwerk) zu unterschiedlichen Systemen umherverbracht
werden würde,
ohne das Speichergerät
zuerst einzuschalten, tatsächlich
keine Disassoziierung geschehen sein, da die Inhalte des Speichergerätes nicht
geändert
worden sein können.
-
Gemäß einigen
Ausführungsformen
ist es möglich,
da Cachespeicher-Disassoziierung
direkt im Zusammenhang mit Starten in einer unterschiedlichen Umgebung
steht, durch Ermitteln der Anzahl, wie oft die das Laufwerk gestartet
oder hochgefahren worden ist (beispielsweise der Anzahl, wie oft
das Laufwerk Start- und/oder
Stopzyklen hatte) und/oder der Anzahl, wie oft das Laufwerk eingeschaltet
worden ist (beispielsweise der Anzahl von Malen, in der Strom an
das Laufwerk gelegt worden ist) zu detektieren, wann dies aufgetreten
ist, und dann zu verifizieren, dass diese Anzahl mit der übereinstimmt,
die der Cachespeicher-Manager (beispielsweise der Cachespeicher-Gerätetreiber)
als Anzahl erwartet. Gemäß einigen
Ausführungsformen
ist es wichtig, dass dies in einer Weise erfolgt, die keine Zusammenarbeit
der anderen Betriebsumgebungen erfordert, da das detektierende Gerät wahrscheinlich
keine Kontrolle darüber
hat, was jene anderen Betriebsumgebungen tun könnten.
-
Gemäß einigen
Ausführungsformen
kann die Systemüberwachungs-
und Statusmeldungs-Technologie (System Monitoring and Reporting
Technology, SMART) verwendet werden. SMART ist eine Technologie,
die von ATA-Plattenlaufwerken (sowohl regulären parallelen ATA-Plattenlaufwerken
als auch modernen Serial-ATA-Plattenlaufwerken)
verwendet wird. Die SMART-Technologie wird typischerweise zu Zwecken
der prädiktiven
Fehleranalyse und Diagnose verwendet. Zu den Parameter, zu deren
Aufzeichnung innerhalb des Plattenlaufwerks die SMART-Technologie
verwendet werden kann, zählen die
Anzahl, wie oft das Laufwerk über
die Lebensdauer des Laufwerks hochgefahren und/oder eingeschaltet
worden ist. ATA-Plattenlaufwerke (reguläre parallele ATA-Plattenlaufwerke
und Serial-ATA-Plattenlaufwerke) führen üblicherweise einen SMART-Parameter,
der die Anzahl von Malen aufzeichnet, die das Plattenlaufwerksgerät über die
Lebensdauer des Plattenlaufwerks eingeschaltet und/oder hochgefahren
worden ist. Solang das Laufwerk dem Cachespeicher (beispielsweise
NV-Cachespeicher)
assoziiert bleibt, kann beispielsweise der Cachespeichertreiber
den Wert dieses SMART-Parameters bei jedem Einschalten und/oder Hochfahren
aufzeichnen und erwarten, dass jene Anzahl einen Wert aufweist,
der um eins größer als
der vorher aufgezeichnete Wert ist. Gemäß einigen Ausführungsformen
werden die Seriennummer des Laufwerkes und/oder ein GUID (Global
Unique Identfier, globaler eindeutiger Identifikator) und/oder andere Identifizierungsmerkmale
ebenfalls abgeglichen, um sicherzustellen, dass es sich um dasselbe
Laufwerk handelt. Gemäß einigen
Ausführungsformen
ist, wenn der SMART-Einschalt- und/oder -Hochfahrwert größer als
der um eins erhöhte
vorher aufgezeichnete Wert ist, das Laufwerk dann in einer Umgebung eingeschaltet
und/oder hochgefahren worden, in welcher der Treiber das Auftreten
des Einschaltens und/oder Hochfahrens nicht aufzeichnete. Der Cachespeichertreiber
(und/oder Cachespeicher-Manager) kann dann eine Annahme des schlechtesten
Falles treffen, dass das Laufwerk in einer unterschiedlichen Umgebung
eingeschaltet und/oder hochgefahren worden ist und möglicherweise
modifiziert worden ist, womit die Inhalte des Cachespeichers fehlerverdächtig gemacht
worden sind. Daher ist eine Detektion von Cachespeicher-Disassoziierung
erfolgt.
-
Gemäß einigen
Ausführungsformen
ist der Hochfahrwert und/oder der Einschaltwert hier als um „eins" größer usw.
beschrieben worden. Obgleich dies in einigen Ausführungsformen
wahr ist, ist es nicht bei allen Ausführungsformen wahr. Gemäß einigen
Ausführungsformen
kann die erwartete Anzahl (der erwartete Wert) jedweder Wert sein
(beispielsweise eine bekannte und feste Zahl oder ein bekannter
und fester Zunahmewert). Gemäß einigen
Ausführungsformen
kann beispielsweise das System im Prozess eines normalen Ausschaltens
eine Operation durchführen,
die beispielsweise das Erhöhen
der Hochfahr- und/oder Einschaltanzahl zur Folge hat, so dass der
erwartete Wert beim nächsten
Einschalten im Normalfall um zwei größer ist. Gemäß einigen Ausführungsformen
ist der erwartete Wert (und/oder Zunahmewert) irgendein vorgegebener
und bekannter fester Wert. Beispielsweise könnte gemäß einigen Ausführungsformen
ein fester Zunahmewert typischerweise eins sein, muss aber nicht
gezwungenermaßen
eins sein und könnte
in einigen vorgegebenen Fällen
(und/oder in einigen vorgegebenen Systemen) irgendein anderer Wert
sein.
-
Gemäß einigen
Ausführungsformen
erfolgt die Detektion (beispielsweise durch einen Cachespeicher-Manager
und/oder einen Cachespeicher-Gerätetreiber)
dahin gehend, ob ein Laufwerk in einer unterschiedlichen Umgebung
eingeschaltet und/oder hochgefahren worden ist (beispielsweise auf
einer unterschiedlichen Plattform oder auf derselben Plattform,
aber ohne geladenen Treiber). Gemäß einigen Ausführungsformen
erfolgt diese Detektion durch Prüfen
des SMART-Parameters, um zu ermitteln, wie viele Male das Speichergerät (beispielsweise
ein Plattenlaufwerk) hochgefahren (beispielsweise gestartet) worden
ist und/oder eingeschaltet worden ist und/oder eine Kombination
dessen, wie viele Male das Speichergerät hochgefahren und/oder eingeschaltet
worden ist. Steht die Anzahl von Malen nicht im Einklang mit einer
erwarteten Anzahl (beispielsweise der Anzahl, die durch einen Cachespeicher-Manager
und/oder einen Cachespeicher-Gerätetreiber
erwartet wird), dann erfolgt eine Detektion von Cachespeicher-Disassoziierung.
Beispielsweise weiß in
einigen Ausführungsformen,
wenn der Cachespeicher-Manager und/oder Cachespeicher-Gerätetreiber
ermittelt, dass die erwartete Anzahl von der Anzahl verschieden
ist, die vom Speichergerät bereitgestellt
wird (beispielsweise der SMART-Parameter), der Manager und/oder
Treiber dann, dass das Speichergerät in einer Umgebung gestartet,
eingeschaltet und/oder hochgefahren usw. worden ist, in welcher
der assoziierte Manager/Treiber nicht geladen war (beispielsweise
entweder physikalische Trennung oder logische Trennung), und kann
notwendige Schritte zum Wiederherstellen und Ungültigmachen jedweder inkohärenter Cachespeicherdaten unternehmen.
-
Gemäß einigen
Ausführungsformen
wird ein SMART-Parameter (beispielsweise eines ATA-Plattenlaufwerkes
wie z. B. eines parallelen ATA-Plattenlaufwerkes, eines Serial-ATA-Plattenlaufwerkes usw.)
verwendet, um einen erwarteten Zählwert und/oder
eine Zunahme eines erwarteten Zählwertes zu
erlangen. Jedoch ist gemäß einigen
Ausführungsformen
kein SMART-Parameter notwendig. Gemäß einigen Ausführungsformen
kann ein anderes Verfahren zum Erlangen eines erwarteten Wertes
als mit Hilfe eines SMART-Parameters verwendet werden. Gemäß einigen
Ausführungsformen
kann jedwede Art von Zählung
einer Anzahl von Speichergerät-Hochfahr- und/oder
-Einschaltvorgängen
verwendet werden.
-
Gemäß einigen
Ausführungsformen
ist es möglich,
sobald Disassoziierung detektiert worden ist, mit Schritten zu beginnen,
die notwendig sind, um zu garantieren, dass keine Korruption (beispielsweise
Laufwerkskorruption) in Bezug auf das Speichergerät auftritt.
Beispielsweise kann basierend auf einer Detektion, dass Disassoziierung
aufgetreten ist, ein Cachespeicher-Gerätetreiber die Möglichkeit
von Speichergerätekorruption
(beispielsweise Laufwerkskorruption) und/oder inkohärenten Cachespeicherinhalten
beseitigen, wenn Disassoziierung und/oder Neuassoziierung aufgetreten
sind. Gemäß einigen
Ausführungsformen
können,
sobald Disassoziierung detektiert worden ist, jedwede inkohärenten Cachespeicherdaten
wiederhergestellt und/oder ungültig
gemacht werden.
-
Gemäß einigen
Ausführungsformen
wird die Detektion von Cachespeicher-Disassoziierung teilweise oder vollständig in
Software durchgeführt.
Gemäß einigen
Ausführungsformen
wird die Detektion von Cachespeicher-Disassoziierung teilweise oder vollständig in
Firmware durchgeführt.
Gemäß einigen Ausführungsformen
wird die Detektion von Cachespeicher-Disassoziierung teilweise oder
vollständig in
Software und/oder in Firmware durchgeführt. Gemäß einigen Ausführungsformen
wird die Detektion von Cachespeicher-Disassoziierung teilweise oder vollständig in
Hardware (und/oder in Software und/oder Firmware) durchgeführt. Gemäß einigen Ausführungsformen
wird die Detektion von Cachespeicher-Disassoziierung teilweise oder
vollständig innerhalb
von Treiberalgorithmen durchgeführt,
die zum Verwalten eines plattformbasierten Cachespeichers (beispielsweise
eines nichtflüchtigen
Cachespeichers) verwendet werden.
-
Gemäß einigen
Ausführungsformen
wird die Detektion von Cachespeicher-Disassoziierung teilweise oder vollständig innerhalb
eines Cachespeicher-Managers durchgeführt. Gemäß einigen Ausführungsformen
wird die Detektion von Cachespeicher-Disassoziierung teilweise oder
vollständig
innerhalb eines Cachespeicher-Gerätetreibers durchgeführt (der
beispielsweise in ein Betriebssystem geladen ist). Gemäß einigen
Ausführungsformen
ist die Detektion von Cachespeicher-Disassoziierung als Teil der Tätigkeit
eines Betriebssystems (OS) integriert. Gemäß einigen Ausführungsformen
wird die Detektion von Cachespeicher-Disassoziierung teilweise oder
vollständig
innerhalb eines Chipsatzes durchgeführt. Gemäß einigen Ausführungsformen wird
die Detektion von Cachespeicher-Disassoziierung teilweise oder vollständig innerhalb
eines Prozessors durchgeführt.
-
1 stellt
ein System 100 dar, das Cachespeicher-Disassoziierung detektiert,
gemäß einigen Ausführungsformen.
System 100 beinhaltet ein Speichergerät 102, einen Cachespeicher 104 und
ein Betriebssystem (OS) 106. OS 106 beinhaltet
einen Cachespeicher-Gerätetreiber 108,
der verwendet werden kann, um Detektion von Disassoziierung zwischen
dem Speichergerät 102 und
dem Cachespeicher 104 durchzuführen, gemäß einigen Ausführungsformen.
Gemäß einigen
Ausführungsformen detektiert
Cachespeicher-Gerätetreiber 108,
ob ein Laufwerk in einer unterschiedlichen Umgebung eingeschaltet
und/oder hochgefahren worden ist (beispielsweise auf einer unterschiedlichen
Plattform oder auf derselben Plattform, aber ohne geladenen Treiber).
Gemäß einigen
Ausführungsformen
sind Cachespeicher 104 und OS 106 Teil einer Computerplattform
(oder eines Computersystems). Gemäß einigen Ausführungsformen
kann Cachespeicher 104 beispielsweise ein nichtflüchtiger
(NV-)Direktzugriffsspeicher (RAM) auf einer Hauptplatine sein. In
einigen Ausführungsformen
ist der Cachespeicher 104 nichtflüchtiger Cachespeicher. In einigen
Ausführungsformen
ist der Cachespeicher 104 nichtflüchtiger RAM. In einigen Ausführungsformen
ist der Cachespeicher 104 Flash-Speicher. Der Cachespeicher-Gerätetreiber 108 kann
detektieren, ob das Speichergerät 102 in
einer vom OS 106 verschiedenen Umgebung eingeschaltet (beispielsweise
gestartet) und/oder hochgefahren worden ist. Dies wird durch Ermitteln
der Anzahl, wie oft das Speichergerät 102 eingeschaltet
und/oder hochgefahren worden ist, und Verifizieren implementiert,
dass diese Zahl mit einem Wert übereinstimmt,
den der Cachespeicher-Manager erwartet, der im Cachespeicher-Gerätetreiber 108 beinhaltet
ist. Beispielsweise kann dies mit Hilfe von SMART-Technologie implementiert
werden, die typischerweise zu Zwecken der prädiktiven Fehleranalyse und
Diagnose für
das Speichergerät verwendet
wird. Auf diese Art und Weise kann der Cachespeicher-Gerätetreiber 108 beispielsweise
ermitteln, ob das Speichergerät
auf einer unterschiedlichen Plattform, auf einem unterschiedlichen
OS und/oder auf derselben Plattform, aber ohne geladenen Cachespeicher-Gerätetreiber
eingeschaltet und/oder hochgefahren worden ist. Obgleich der Cachespeicher-Gerätetreiber 108 in 1 als
in das OS 106 geladen dargestellt worden ist, ist er in
einigen Ausführungsformen
nicht auf ein OS begrenzt. Darüber
hinaus kann in einigen Ausführungsformen
die Funktionalität
des Cachespeicher-Gerätetreibers 108 auf
andere Weisen implementiert sein (beispielsweise in einem Cachespeicher-Manager,
der Teil eines Cachespeicher-Gerätetreibers
ist, in einem Cachespeicher-Manager, der kein Teil eines Cachespeicher-Gerätetreibers
ist, in Software, in Firmware und/oder in Hardware usw.).
-
2 stellt
eine bildhafte Erläuterung 200 eines
Speichergerätes 202 dar,
das zwischen Systemen 204 und 206 verbracht wird,
gemäß einigen Ausführungsformen
der Erfindungen. Die obere Reihe in 2 stellt
Speichergerät 202 dar,
das innerhalb von System 204 resident ist. Wenn System 204 eingeschaltet
und/oder hochgefahren wird, wird ein Wert inkrementiert. Beispielsweise
wird gemäß einigen
Ausführungsformen ein
Wert wie z. B. ein SMART-Parameter (beispielsweise eine SMART-Hochfahranzahl
und/oder eine SMART-Einschaltanzahl) inkrementiert (beispielsweise
auf „500", wenn dies das 500-ste
Mal ist, dass das Speichergerät 202 eingeschaltet
und/oder hochgefahren worden ist). Die zweite Reihe in 2 stellt
das Speichergerät 202 dar,
wie es aus System 204 entfernt und in System 206 eingesetzt
wird. Sobald das Speichergerät 202 in
System 206 eingeschaltet und/oder hochgefahren wird, wird
der SMART-Parameter (beispielsweise eine SMART-Hochfahranzahl und/oder eine
SMART-Einschaltanzahl) inkrementiert (beispielsweise auf „501", da es nun das 501-ste Mal ist, dass
das Speichergerät 202 eingeschaltet
und/oder hochgefahren worden ist). Die untere Reihe in 2 stellt
das Speichergerät 202 dar,
wie es aus System 206 entfernt und zurück in System 204 eingesetzt wird.
Sobald das Speichergerät 202 dann
in System 204 eingeschaltet und/oder hochgefahren wird,
wird der SMART-Parameter des Speichergerätes 202 (beispielsweise
eine SMART-Hochfahranzahl und/oder SMART-Einschaltanzahl) inkrementiert (beispielsweise
auf „502", da es nun das 502-te
Mal ist, dass das Speichergerät 202 eingeschaltet und/oder
hochgefahren worden ist). Gemäß einigen Ausführungsformen
wird ein Mechanismus zur Detektion von Cachespeicher-Disassoziierung
verwendet (der beispielsweise teilweise oder vollständig innerhalb
eines Cachespeicher-Gerätetreibers
wie z. B. des Cachespeicher-Gerätetreibers 108 implementiert
ist, der in 1 dargestellt ist), um den SMART-Parameter
(502) mit einem erwarteten Wert zu vergleichen (beispielsweise
einem Wert, der innerhalb der Plattform 204 gespeichert
ist). In dem Beispiel, das in 2 dargestellt
ist, wäre
beispielsweise der erwartete Wert gleich „501" (das heißt, um eins größer als
der SMART-Parameter von 500 vom letzten Mal, dass Speichergerät 202 innerhalb
der Plattform 204 eingeschaltet und/oder hochgefahren wurde).
Der Detektionsmechanismus (oder Detektor) würde einen Vergleichsmechanismus
(oder Komparator) beinhalten, um den SMART-Parameter von Speichergerät 202 (das
heißt,
die „502") mit dem erwarteten
Wert von „501" (beispielsweise
um eins größer als „500") zu vergleichen,
und der Detektor würde Cachespeicher-Disassoziierung
detektieren, da der erwartete Wert und der tatsächliche SMART-Parameter nicht übereinstimmen.
-
3 stellt
ein Flussdiagramm 300 dar, das die Detektion von Cachespeicher-Disassoziierung zeigt,
gemäß einigen
Ausführungsformen.
Bei 302 führt
das Flussdiagramm 300 eine Ermittlung durch, ob ein Speichergerät (wie z.
B. ein Plattenlaufwerk) eingeschaltet und/oder hochgefahren worden
ist. Falls nicht, dann kehrt der Fluss zu 302 zurück, um zu
warten, bis das Speichergerät
eingeschaltet und/oder hochgefahren worden ist. Sobald 302 ermittelt,
dass das Speichergerät
eingeschaltet und/oder hochgefahren worden ist, wird dann bei 304 eine
erwartete Anzahl inkrementiert. Bei 306 wird eine Ermittlung
dahingehend durchgeführt,
ob die inkrementierte erwartete Anzahl gleich einer SMART-Anzahl des
Speichergerätes
ist (beispielsweise einem SMART-Parameter oder irgendeiner anderen
Zahl, welche eine Anzahl von Malen identifiziert, die das Speichergerät eingeschaltet
und/oder hochgefahren worden ist) oder nicht. Ist bei 306 die
inkrementierte erwartete Anzahl gleich der Zahl, die mit der Anzahl von
Malen assoziiert ist, die der Speicher sich eingeschaltet hat und/oder
hochgefahren ist (beispielsweise dem SMART-Parameter), dann tritt
bei 308 normaler Betrieb des Speichergerätes auf.
Ist bei 306 die inkrementierte erwartete Anzahl nicht gleich
der Zahl, die mit dem Speichergerät assoziiert ist, dann wird
bei 310 eine Anzeige der Cachespeicher-Disassoziierung
bereitgestellt. Gemäß einigen
Ausführungsformen
werden, sobald eine Anzeige einer Cachespeicher-Disassoziierung
bereitgestellt worden ist (wie beispielsweise bei 310),
dann Operationen zum Beseitigen der Möglichkeit von Speichergerätekorruption
und inkohärenten
Cachespeicherinhalten durchgeführt
(beispielsweise, wenn Disassoziierung/Neuassoziierung auftritt).
In einigen Ausführungsformen
kann das Flussdiagramm 300 einen Schritt zum Vergleichen
einer identifizierenden Eigenschaft des Speichergerätes beinhalten
(beispielsweise einer Seriennummer des Speichergerätes und/oder
anderer Identifizierungsmerkmale des Speichergerätes), um sicherzustellen, dass
die richtigen Speichergeräteparameter
verglichen werden (das heißt,
beispielsweise der erwartete Wert und der SMART-Parameter, die beide
mit demselben Speichergerät
assoziiert sind). Dieser zusätzliche
Vergleich (oder Komparator), um zu identifizieren, dass auf dasselbe
und richtige Speichergerät
Bezug genommen wird, könnte
beispielsweise vor 302 in Flussdiagramm 300 beinhaltet
sein. In verschiedenen Ausführungsformen
kann der Arbeitsablauf des Flussdiagramms 300 teilweise
oder vollständig
in Software, Firmware und/oder Hardware implementiert sein. In einigen
Ausführungsformen
kann der Arbeitsablauf des Flussdiagramms 300 teilweise
oder vollständig
in einem Cachespeicher-Manager, in einem Cachespeicher-Gerätetreiber,
in einem Chipsatz, irgendwo in derselben Plattform, in welcher der Cachespeicher
resident ist, für
den die Cachespeicher-Disassoziierung detektiert wird, und/oder
in einem Prozessor implementiert sein. Gemäß einigen Ausführungsformen
wird der Arbeitsablauf des Flussdiagramms 300 teilweise
oder vollständig
durch Code durchgeführt,
der auf einem Flash-Speicher-Gerät
oder -Geräten
gespeichert ist.
-
Obgleich
einige Ausführungsformen
unter Bezug auf ein oder mehrere Festplattenlaufwerke, Plattenlaufwerke,
optische Laufwerke, Bandlaufwerke, Massenspeichergeräte usw.
beschrieben worden sind und einige dieser Begriffe sogar synonym
verwendet worden sein mögen,
ist zu beachten, dass verschiedene Ausführungsformen mit jedwedem Typ von
Speichergerät
oder Speichergeräten
implementiert sein können,
und die vorliegende Erfindung und/oder Ausführungsformen der vorliegenden
Erfindung sollten nicht auf einen bestimmten Typ von Speichergerät oder Speichergeraten
begrenzt sein.
-
Obgleich
einige Ausführungsformen
unter Bezug auf bestimmte Implementierungen beschrieben worden sind,
sind gemäß einigen
Ausführungsformen
andere Implementierungen möglich.
Darüber hinaus
brauchen die Anordnung und/oder die Reihenfolge von Schaltungselementen
oder anderen Merkmalen, die in den Zeichnungen dargestellt und/oder
hierin beschrieben sind, nicht in der bestimmten Weise angeordnet
sein, die dargestellt und beschrieben ist. Gemäß einigen Ausführungsformen sind
viele andere Anordnungen möglich.
-
In
jedem System, das in einer Figur gezeigt ist, können die Elemente in manchen
Fällen
ein jedes dasselbe Bezugszeichen oder ein unterschiedliches Bezugszeichen
aufweisen, um nahezulegen, dass die dargestellten Elemente unterschiedlich
und/oder ähnlich
sein könnten.
Jedoch kann ein Element flexibel genug sein, um unterschiedliche
Implementierungen aufzuweisen und mit einigen oder allen Systemen
zu arbeiten, die hierin gezeigt oder beschrieben sind. Die verschiedenen
Elemente, die in den Figuren gezeigt sind, können dieselben oder unterschiedlich sein.
Welches als ein erstes Element bezeichnet ist und was ein zweites
Element genannt wird, ist willkürlich.
-
In
der Beschreibung und den Ansprüchen können die
Begriffe „gekoppelt" und „verbunden" zusammen mit ihren
Ableitungen verwendet werden. Es sollte sich verstehen, dass diese
Begriffe nicht als Synonyme füreinander
gedacht sind. Vielmehr kann in bestimmten Ausführungsformen „verbunden" verwendet werden,
um anzuzeigen, dass zwei oder mehr Elemente in direktem physikalischen
oder elektrischen Kontakt miteinander sind. „Gekoppelt" kann bedeuten, dass zwei oder mehr
Elemente in direktem physikalischen oder elektrischen Kontakt sind.
Jedoch kann „gekoppelt" auch bedeuten, dass
zwei oder mehr Elemente nicht in direktem Kontakt miteinander sind,
aber dennoch miteinander kooperieren oder interagieren.
-
Ein
Algorithmus wird hier und im Allgemeinen als selbstkonsistente Abfolge
von Vorgängen oder
Operationen angesehen, die zu einem gewünschten Ergebnis führt. Diese
beinhalten physikalische Manipulationen physikalischer Größen. Üblicher-,
aber nicht notwendigerweise nehmen diese Größen die Form elektrischer oder
magnetischer Signale an, die in der Lage sind, gespeichert, übertragen,
kombiniert, verglichen und anderweitig manipuliert zu werden. Es
hat sich hin und wieder als zweckdienlich erwiesen, vornehmlich
aus Gründen
der üblichen
Verwendung, diese Signale als Bits, Werte, Elemente, Symbole Zeichen,
Terme, Zahlen oder dergleichen zu bezeichnen. Es sollte sich jedoch
verstehen, dass all diese und ähnliche
Begriffe den entsprechenden physikalischen Größen zuzuordnen sind und hauptsächlich praktische
Bezeichnungen sind, die auf diese Größen angewendet werden.
-
Einige
Ausführungsformen
können
als eines von oder eine Kombination aus Hardware, Firmware und Software
implementiert sein. Einige Ausführungsformen
können
auch als Befehle implementiert sein, die auf einem maschinenlesbaren
Medium gespeichert sind, die durch eine EDV-Plattform gelesen und
ausgeführt
werden können,
um die hierin beschriebenen Operationen durchzuführen. Ein maschinenlesbares Medium
kann jedweden Mechanismus zum Speichern oder Übertragen von Informationen
in einer Form beinhalten, die durch eine Maschine (z. B. einen Computer)
lesbar ist. Beispielsweise kann ein maschinenlesbares Medium Nur-Lese-Speicher
(Read Only Memory, ROM); Direktzugriffsspeicher (RAM); Magnetplatten-Speichermedien; optische
Speichermedien; Flash-Speicher-Geräte; elektrische, optische,
akustische oder eine andere Form sich ausbreitender Signale (z.
B. Trägerwellen, Infrarotsignale,
Digitalsignale, die Schnittstellen, die Signale senden und/oder
empfangen usw.) und andere beinhalten.
-
Eine
Ausführungsform
ist eine Implementierung oder ein Beispiel der Erfindungen. In der
Spezifikation bedeutet der Bezug auf „eine Ausführungsform" (englisch: „an embodiment" oder „one embodiment"), „einige
Ausführungsformen" oder „andere Ausführungsformen", dass ein(e) bestimmtes
Merkmal, Struktur oder Charakteristik, die in Verbindung mit den
Ausführungsformen
beschrieben ist, in mindestens einigen Ausführungsformen, aber nicht notwendigerweise
allen Ausführungsformen
der Erfindungen beinhaltet ist. Die verschiedenen Vorkommen von „einer
Ausführungsform" (englisch: „an embodiment" oder „one embodiment") oder „einigen Ausführungsformen" beziehen sich nicht
notwendigerweise alle auf dieselben Ausführungsformen.
-
Wenn
beispielsweise die Spezifikation darlegt, dass eine Komponente,
ein Merkmal, eine Struktur oder eine Charakteristik beinhaltet sein „kann" oder „könnte", ist es nicht erforderlich,
dass jene(s) bestimmte Komponente, Merkmal, Struktur oder Charakteristik
beinhaltet ist. Wenn sich die Spezifikation oder der Anspruch auf
ein Element bezieht, bedeutet dies nicht, dass es nur eines von
dem Element gibt. Wenn sich die Spezifikation oder die Ansprüche auf „ein zusätzliches" Element beziehen, schließt dies
nicht aus, dass es mehr als eines von dem zusätzlichen Element gibt.
-
Obgleich
Flussdiagramme und/oder Zustandsdiagramme hierin verwendet worden
sein können,
um Ausführungsformen
zu beschreiben, sind die Erfindungen nicht auf jene Diagramme oder
auf entsprechende Beschreibungen hierin begrenzt.
-
Beispielsweise
muss der Fluss nicht durch jedes dargestellte Feld oder jeden dargestellten
Zustand oder in exakt derselben Reihenfolge laufen, wie es hierin
dargestellt und beschrieben ist.
-
Die
Erfindungen sind nicht auf die hierin aufgeführten bestimmten Details beschränkt. Tatsächlich wird
der Fachmann auf dem Gebiet, der Nutzen aus dieser Beschreibung
zieht, verstehen, dass innerhalb des Umfangs der vorliegenden Erfindungen viele
andere Varianten aus der vorangehenden Beschreibung und den Zeichnungen
hergestellt werden können.
Dementsprechend sind es die folgenden Ansprüche einschließlich jedweder
Ergänzungen
derselben, die den Umfang der Erfindungen definieren.
-
ZUSAMMENFASSUNG
-
In
einigen Ausführungsformen
wird ein erwarteter Wert mit einer Anzahl verglichen, wie oft ein Speichergerät eingeschaltet
und/oder hochgefahren worden ist. In Reaktion auf das Vergleichen
wird eine Cachespeicher-Disassoziierung detektiert. Andere Ausführungsformen
werden beschrieben und beansprucht.