-
TECHNISCHES GEBIET
-
Die
Erfindungen betreffen allgemein die Verteilung von Speichervolumen
auf Laufwerksbereiche mit intelligenter Dateiablage und/oder -umordnung.
-
ALLGEMEINER STAND DER TECHNIK
-
Ein
Computersystem kann eine oder mehrere zentrale Verarbeitungseinheiten
(CPUs) oder einen oder mehrere Prozessoren enthalten. Die CPUs können – beispielsweise über einen
Bus – mit
einem Chipsatz gekoppelt sein. Der Chipsatz kann einen Speicher-Controller-Hub
(MCH) enthalten, der einen Speicher-Controller enthält, der
mit einem Systemspeicher gekoppelt ist. Der Systemspeicher speichert Daten
und reagiert auf den Speicher-Controller mit einer Abfolge von Instruktionen,
die durch die CPUs oder Verarbeitungsbausteine des Computersystems ausgeführt werden.
Der MCH kann außerdem
beispielsweise einen Anzeige-Controller enthalten, der mit einer
Anzeige gekoppelt ist. Der Chipsatz kann des Weiteren einen Eingabe/Ausgabe-Controlhub (ICH)
enthalten, der zum Beispiel über
eine Hub-Schnittstelle mit dem MCH gekoppelt ist. Der ICH kann beispielsweise
mit einem oder mehreren Eingabe/Ausgabe (E/A)-Geräten gekoppelt
sein. Der ICH kann außerdem
mit einem Peripheriebus (zum Beispiel einem Peripheral Component
Interconnect- oder PCI-Bus) gekoppelt sein. Eine PCI-Brücke kann mit
dem PCI-Bus gekoppelt sein, um einen Datenpfad zwischen den CPUs
und den Peripheriegeräten zu
bilden. Der ICH ist oft gekoppelt mit einer oder mehreren Speichervorrichtungen
gekoppelt, einschließlich
beispielsweise einem oder mehreren Festplattenlaufwerken.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die
Erfindungen werden anhand der folgenden detaillierten Beschreibung
und anhand der begleitenden Zeichnungen einiger Ausführungsformen der
Erfindungen besser verstanden.
-
Die
Beschreibung und die Zeichnungen dienen jedoch nicht der Beschränkung der
Erfindungen auf die konkret beschriebenen Ausführungsformen, sondern lediglich
der Erklärung
und dem besseren Verständnis.
-
1 veranschaulicht
ein System gemäß einigen
Ausführungsformen
der Erfindungen.
-
2 veranschaulicht
einen Verfahrensablauf gemäß einigen
Ausführungsformen
der Erfindungen.
-
3 veranschaulicht
ein System gemäß einigen
Ausführungsformen
der Erfindungen.
-
4 veranschaulicht
ein System gemäß einigen
Ausführungsformen
der Erfindungen.
-
DETAILLIERTE BESCHREIBUNG
-
Einige
Ausführungsformen
der Erfindungen betreffen die Verteilung von Speichervolumen auf Laufwerksbereiche
mit intelligenter Dateiablage und/oder -umordnung.
-
In
einigen Ausführungsformen
wird eine Bestimmung vorgenommen, ob eine Datei auf einem langsameren
Laufwerk eines logischen Speichervolumenbereichs oder auf einem
schnelleren Laufwerk des logischen Speichervolumenbereichs abgelegt werden
soll. Die Datei wird anhand der Bestimmung auf dem langsameren Laufwerk
oder auf dem schnelleren Laufwerk abgelegt, und ein Nutzer braucht
keine Kenntnis darüber
zu haben, ob die Datei auf dem langsameren Laufwerk oder auf dem
schnelleren Laufwerk abgelegt wurde.
-
In
einigen Ausführungsformen
enthält
ein System einen logischen Speichervolumenbereich, der ein schnelleres
Laufwerk und ein langsameres Laufwerk enthält. Ein Controller bestimmt,
ob eine Datei auf dem langsameren Laufwerk oder auf dem schnelleren
Laufwerk abzulegen ist, und legt die Datei auf dem langsameren Laufwerk
oder auf dem schnelleren Laufwerk ab. Ein Nutzer braucht sich nicht
darum zu kümmern,
ob die Datei auf dem langsameren Laufwerk oder auf dem schnelleren
Laufwerk abgelegt wurde.
-
In
einigen Ausführungsformen
enthält
ein Gegenstand ein computerlesbares Medium, auf dem sich Instruktionen
befinden, die, wenn sie ausgeführt werden,
einen Computer veranlassen zu bestimmen, ob eine Datei auf einem
langsameren Laufwerk eines logischen Speichervolumenbereichs oder
auf einem schnelleren Laufwerk des logischen Speichervolumenbereichs
abgelegt werden soll, und die Datei anhand der Bestimmung auf dem
langsameren Laufwerk oder auf dem schnelleren Laufwerk abzulegen. Ein
Nutzer braucht sich nicht darum zu kümmern, ob die Datei auf dem
langsameren Laufwerk oder auf dem schnelleren Laufwerk abgelegt
wurde.
-
1 veranschaulicht
ein System 100 gemäß einigen
Ausführungsformen.
In einigen Ausführungsformen
ist das System 100 ein Computersystem. In einigen Ausführungsformen
ist das System 100 ein Speichersystem. In einigen Ausführungsformen
enthält
das System 100 eine zentrale Verarbeitungseinheit (CPU)
oder einen Prozessor 102, einen Speicher-Controller-Hub (MCH) 104,
einen Eingabe/Ausgabe-Controller-Hub (ICH) 106, einen Speicher 108 und
eine Speichervorrichtung 110. Der MCH 104 enthält einen
Speicher-Controller,
der die Aktionen des Speichers 108 steuert (zum Beispiel Lesen,
Schreiben usw.) Die CPU 102 ist mit dem MCH 104 gekoppelt,
und der MCH 104 ist außerdem mit
dem ICH 106 und dem Speicher 108 gekoppelt, wie
in 1 veranschaulicht. Der ICH 106 ist mit
einer Speichervorrichtung 110 gekoppelt, die zum Beispiel
ein oder mehrere Festplattenlaufwerke und/oder ein oder mehrere
Festkörperlaufwerke
(SSDs) enthält.
In einigen Ausführungsformen
befinden sich alle oder einige der Elemente des Systems 100 auf
einer Hauptplatine. In einigen Ausführungsformen kann eine andere
Aufteilung zwischen den Blöcken
vorhanden sein; zum Beispiel kann der Speicher-Controller in dem
CPU-Block anstatt im MCH-Block enthalten sein.
-
In
einigen Ausführungsformen
enthält
das System 100 mehr als eine CPU und ist nicht auf eine CPU 102 beschränkt, wie
in 1 veranschaulicht. In einigen Ausführungsformen
können
die CPUs des Systems 100 mit einem Chipsatz gekoppelt sein (zum
Beispiel über
einen Bus für
jede CPU und/oder über
einen gemeinsamen Bus). Der Chipsatz kann einen Speicher-Controller-Hub
(MCH) 104 und einen Eingabe/Ausgabe-Controller-Hub (ICH) 106 enthalten.
In einigen Ausführungsformen
kann der Speicher 108 Daten und/oder Abfolgen von Instruktionen speichern,
die durch die CPUs oder Verarbeitungsbausteine des Computersystems
ausgeführt
werden. In einigen Ausführungsformen
kann der MCH 104 außerdem
zum Beispiel einen Anzeige-Controller enthalten, der mit einer Anzeige
gekoppelt ist. In einigen Ausführungsformen
kann der ICH 106 zum Beispiel über eine Hub-Schnittstelle mit
dem MCH 104 gekoppelt sein. In einigen Ausführungsformen
kann der ICH 106 außerdem
zum Beispiel mit einer oder mehreren Eingabe/Ausgabe (E/A)-Geräten (einschließlich beispielsweise
der Speichervorrichtung 110) gekoppelt sein. In einigen
Ausführungsformen
kann der ICH 106 außerdem
mit einem Peripherie-Bus (zum Beispiel einem Peripheral Component
Interconnect- oder PCI-Bus) gekoppelt sein. Eine PCI-Brücke kann mit
dem PCI-Bus gekoppelt sein, um einen Datenpfad zwischen der CPU 102 und
den Peripheriegeräten,
wie zum Beispiel einer Speichervorrichtung 110, zu bilden.
-
Wie
oben angesprochen, enthält
die Speichervorrichtung 110 in einigen Ausführungsformen ein
oder mehrere Festplattenlaufwerke. Jedoch hat die Leistungsentwicklung
von rotierenden (das heißt mechanischen)
Festplattenlaufwerken nicht mit dem Tempo Schritt gehalten, mit
dem sich der Rest des Computersystem oder der Computerplattform
entwickelt hat. Während
sich zum Beispiel die CPU-Leistung weiterhin proportional skaliert
hat, hat sich die Leistung von Festplattenlaufwerken lediglich logarithmisch
verbessert. Für
viele Prozesse ist der Leistungsengpass eindeutig die Festplatte.
Darum enthält
die Speichervorrichtung 110 in einigen Ausführungsformen
ein oder mehrere Festplattenlaufwerke und außerdem ein oder mehrere Festkörperlaufwerke
(SSDs). In einigen Ausführungsformen
enthält
die Speichervorrichtung 110 ein oder mehrere langsamere
(und/oder kapazitätsstärkere) Laufwerke
und ein oder mehrere schnellere (und/oder kapazitätsschwächere) Laufwerke.
-
Seit
kurzem weiß man,
dass neue Technologien zum Steigern der effektiven Festplattengeschwindigkeit
verwendet werden können
(zum Beispiel mittels nicht-flüchtiger
Festkörperspeicher
wie zum Beispiel Flash-Speicher, NAND-Speicher usw.) Eine Alternative
ist die Verwendung von Festkörperlaufwerken
(SSDs), die nicht den gleichen Leistungsbeschränkungen unterworfen sind wie
mechanische Plattenlaufwerke. Jedoch sind die Kosten pro Bit eines
nicht-flüchtigen
Festkörperspeichers
viel höher als
die von herkömmlichen
rotierenden Festplattenlaufwerken. Infolge dessen ist die Kapazität von nicht-flüchtigen
Festkörperspeichern
im Vergleich zu mechanischen Festplattenlaufwerken eher bescheiden.
-
In
einigen Ausführungsformen
wird eine Lösung
bereitgestellt, die eine Brücke
zwischen den Kapazitätsvorteilen
einer kapazitätsstärkeren,
aber langsameren mechanischen Festplatte und den Geschwindigkeitsvorteilen
der kapazitätsschwächeren, aber
schnelleren Festkörperlaufwerke
(SSDs) schlägt.
Das ist besonders bei Anwendungen vorteilhaft, in denen ein Nutzer
eine Speicherkapazität
benötigt,
die höher
ist als die, die eine kosteneffektive SSD bietet. In einigen Ausführungsformen
wird eine Volumenaufteilung von einem oder mehreren langsameren
(und/oder kapazitätsstärkeren)
Laufwerken (zum Beispiel einem mechanischen Festplattenlaufwerk
oder HDD, wie zum Beispiel einer rotierenden Festplatte) und einer
oder mehreren schnelleren (und/oder kapazitätsschwächeren) Laufwerken (zum Beispiel
einem Festkörperlaufwerk)
mit intelligenter Dateiablage und/oder -umordnung ausgeführt. In
einigen Ausführungsformen
basiert zum Beispiel die Dateiablage in einem Volumen auf dem Dateityp und/oder
der Dateigröße und/oder
auf einer Art des Zugriffs auf die Datei (zum Beispiel sequenzieller
Zugriff auf Dateien auf dem langsameren und/oder rotierenden Laufwerk
und/oder Direktzugriff auf Dateien auf dem schnelleren und/oder
Festkörperlaufwerk)
und/oder auf der Grundlage einer Heuristik.
-
In
einigen Ausführungsformen
können
Dateien anhand ihrer Dateigröße zu dem
schnelleren Laufwerk und/oder dem langsameren Laufwerk verschoben
werden. Dies kann relativ zur Dateigröße anstatt relativ zur Kapazität der schnelleren
und/oder langsameren Laufwerke erfolgen. Zum Beispiel kann in einigen
Ausführungsformen
eine kleinere Dateigröße – gegenüber einer
größeren Dateigröße – bevorzugt auf
dem kleineren und/oder schnelleren Laufwerk abgelegt werden, selbst
wenn sie heuristisch für
identisch befunden werden.
-
In
einigen Ausführungsformen
werden zum Beispiel ein oder mehrere Faktoren wie zum Beispiel Dateityp,
Dateigröße, Anzahl
der Dateizugriffe, Arten der Dateizugriffe (zum Beispiel direkt
und/oder sequenziell), verfügbarer
Platz auf dem schnelleren Laufwerk (und/oder SSD) und/oder verfügbarer Platz auf
dem langsameren Laufwerk (und/oder HDD) ganzheitlich in Betracht
gezogen, um den Ort der Dateiablage zu bestimmen, anstatt zum Beispiel
jede Datei isoliert zu betrachten und eine Bestimmung vorzunehmen.
-
In
einigen Ausführungsformen
kann die Heuristik beinhalten, zum Beispiel das Energiemanagement
zu berücksichtigen
und/oder neue Dateien (zum Beispiel neue temporäre Dateien) auf dem schnelleren
Laufwerk (zum Beispiel Festkörperlaufwerk)
abzulegen, um zum Beispiel das langsamere Laufwerk ausgeschaltet
zu lassen (um zum Beispiel zu verhindern, dass sich ein viel Energie
verbrauchendes Festplattenlaufwerk einschaltet). In einigen Ausführungsformen
kann die Heuristik auf der Entscheidung des Nutzers und/oder des
Herstellers basieren, welche Dateien auf jedem Medium abzulegen sind.
In einigen Ausführungsformen
können
Dateien zwischen einem schnelleren Laufwerk und einem langsameren
Laufwerk verschoben werden, ohne dass der Nutzer auch nur das Geringste davon
merkt. Das heißt,
dass zum Beispiel in einigen Ausführungsformen ein schnelleres
Laufwerk und ein langsameres Laufwerk ein logisches Disk-Array bilden,
wobei die Verschiebung von Dateien zwischen dem schnelleren Laufwerk
und dem langsameren Laufwerk in einer für den Nutzer transparenten
Weise erfolgen. In einigen Ausführungsformen
wird die Priorität
der Ablage von Dateien in einer Weise bestimmt, die sich nach einer
Größe des schnelleren
Laufwerks (zum Beispiel eines Festkörperlaufwerks) richtet. In
einigen Ausführungsformen
wird eine Systemkonfigurationsdatei verwendet, die den Dateien ihre
Ablageorte zuweist. In einigen Ausführungsformen gibt ein Hersteller
des Systems vor, wie die Priorisierung der Dateiablage zu implementieren
ist (zum Beispiel eine „Pinning”-Info eines
Erstausrüsters
oder OEM). In einigen Ausführungsformen
wird die Priorisierung der Dateiablage anhand einer Art des Zugriffs
auf die Datei implementiert. Zum Beispiel werden in einigen Ausführungsformen
Dateien mit sequenziellem Zugriff auf dem langsameren Laufwerk (und/oder
der rotierenden Festplatte) abgelegt, und/oder Dateien mit Direktzugriff
werden auf dem schnelleren Laufwerk (und/oder Festkörperlaufwerk)
abgelegt.
-
Um
sowohl die hohe Leistung eines schnelleren Laufwerks (zum Beispiel
eines Systems mit SSD) als auch die gewaltige Speicherkapazität eines langsameren
Laufwerks (zum Beispiel eines Systems mit mechanischem Laufwerk
und/oder eines Systems mit rotierendem Laufwerk) zu realisieren, wird
in einigen Ausführungsformen
ein System bereitgestellt, das sowohl ein schnelles Laufwerk als auch
ein langsameres (und/oder größeres) Laufwerk enthält. In einigen
Ausführungsformen
können
ein schnelleres Laufwerk und ein langsameres Laufwerk implementiert
werden, ohne dass einem Nutzer zwei separate Laufwerke (zum Beispiel
ein Laufwerk C: und ein Laufwerk D:) angezeigt werden müssen. In einigen
Ausführungsformen
kann ein Nutzer auf beide Laufwerke als separate Laufwerke zugreifen,
wobei Daten, die der Nutzer am häufigsten
braucht, auf dem schnelleren Laufwerk verwaltet werden und weniger
häufig
benötigte
Daten auf dem langsameren Laufwerk verwaltet werden. Jedoch würde dies
ein ständiges
Zutun des Nutzers und eine gewisse Fachkenntnis seitens des Nutzers
erfordern, der über
die Häufigkeit
der Dateinutzung und andere technische Fragen Bescheid wissen muss,
mit denen er sich möglicherweise
gar nicht auskennt. Darum ist es in einigen Ausführungsformen vorteilhaft, einen
logischen Volumenbereich mit intelligenter Dateiablage und/oder
-umordnung zu verwenden, der keine Mitwirkung des Nutzers erfordert.
-
2 veranschaulicht
einen Prozessablauf 200 gemäß einigen Ausführungsformen.
In einigen Ausführungsformen
kann der Prozessablauf 200 in Software implementiert werden.
In einigen Ausführungsformen
kann der Prozessablauf 200 in Hardware, Firmware, Software
und/oder Kombinationen davon implementiert werden.
-
Der
Prozessablauf 200 beginnt bei 202 mit der Durchführung eines
logischen Mappings des schnellen Laufwerkes. Dann wird bei 204 ein
Dateizugriff überwacht.
Bei 206 wird eine Bestimmung vorgenommen, ob die Datei
oft benutzt wird. Wenn bei 206 festgestellt wird, dass
die Datei nicht oft benutzt wird, so wird die Datei bei 208 auf
einem langsameren Laufwerk abgelegt. Wenn bei 206 festgestellt wird,
dass die Datei oft benutzt wird, so wird bei 210 eine Bestimmung
vorgenommen, ob die Datei besser auf einem langsameren Laufwerk
abgelegt werden sollte (zum Beispiel in einigen Ausführungsformen anhand
des Dateityps und/oder einer Zugriffsheuristik). Wenn bei 210 festgestellt
wird, dass die Datei besser auf einem langsameren Laufwerk abgelegt werden
sollte, so wird die Datei bei 208 auf einem langsameren
Laufwerk abgelegt. Wenn bei 210 festgestellt wird, dass
die Datei besser nicht auf einem langsameren Laufwerk abgelegt werden
sollte, so wird die Datei bei 212 auf einem schnelleren
Laufwerk abgelegt. In einigen Ausführungsformen berücksichtigt
die Heuristik eine Größe des schnelleren Laufwerks
(zum Beispiel eines Festkörperlaufwerks), um
zu bestimmen, wie viel auf das schnellere Laufwerk passt, und den
Dateien Vorrang einzuräumen, die
auf jenem Laufwerk abzulegen sind (zum Beispiel könnte in
einigen Ausführungsformen
50 kleineren Dateien eine höhere
Bedeutung zukommen als einer größeren Datei
von der gleichen Größe wie die
50 kleineren Dateien zusammen).
-
Um
sowohl die hohe Leistung eines schnelleren Laufwerks (zum Beispiel
eines Systems mit SSD) als auch die gewaltige Speicherkapazität eines langsameren
Laufwerks (zum Beispiel eines Systems mit mechanischem Laufwerk
und/oder eines Systems mit rotierendem Laufwerk) zu realisieren, wird
in einigen Ausführungsformen
ein System bereitgestellt, das sowohl ein schnelles Laufwerk als auch
ein langsameres (und/oder größeres) Laufwerk enthält.
-
In
einigen Ausführungsformen
kann ein Volumenaufteilungstreiber mit intelligenter Software verwendet
werden, der dem Nutzer eine schnellere Speichervorrichtung und eine
langsamere Speichervorrichtung als einen einzigen abrufbaren logischen Adressplatz
darstellt. Zum Beispiel erscheint der logische Adressplatz dem Nutzer
als eine einzelne Speichervorrichtung (zum Beispiel als das Laufwerk „C” oder als „C:\”). Da die
beiden Speichervorrichtungen dem Betriebssystem (OS) als ein einzelner
logischer Adressplatz dargestellt werden, kann Software auf höherer Ebene
verwendet werden, um auf Dateien dieses Verbundvolumens zuzugreifen,
ohne beachten zu müssen,
dass die Laufwerke verteilt wurden. Mittels eines Software-Dienstprogramms
können
Dateien zwischen dem schnellen Abschnitt und dem langsameren Abschnitt
des verteilten Volumens, das in dem logischen Adressplatz enthalten
ist, zum Beispiel auf der Basis der Zugriffsheuristik und/oder Dateityp
intelligent abgelegt und/oder verschoben werden. Auf diese Weise
scheint das System in den Augen des Nutzers eine große schnelle
Speichervorrichtung zu haben. Somit können die Vorteile der hohen
Leistung der schnelleren Speichervorrichtung (wie zum Beispiel eines
SSD) und die Vorteile der hohen Kapazität der langsameren Speichervorrichtung (wie
zum Beispiel eines mechanischen Laufwerks) gleichzeitig realisiert
werden. Es ist außerdem
anzumerken, dass das Software-Dienstprogramm in einigen Ausführungsformen
dem Nutzer die Dateiablageorte anzeigt (wenn es zum Beispiel durch
den Nutzer gewünscht
wird). Auf diese Weise kann das Software-Dienstprogramm vom Nutzer
Feedback zur Ablage erhalten.
-
3 veranschaulicht
ein System 300 gemäß einigen
Ausführungsformen.
Das System 300 enthält
einen logischen Volumenbereich 302. In einigen Ausführungsformen
kann der logische Volumenbereich 302 in einem System wie
zum Beispiel dem System 100 enthalten sein, wo das logische
Volumen 302 zum Beispiel einen Datenspeicher 110 umfasst. Der
logische Volumenbereich 302 enthält eine erste Speichervorrichtung 304 und
eine zweite Speichervorrichtung 306. Das heißt, in einigen
Ausführungsformen
ist der logische Volumenbereich 302 ein zwischen zwei Laufwerken 304 und 306 verteiltes
Volumen. In einigen Ausführungsformen
ist die erste Speichervorrichtung 304 eine schnellere Speichervorrichtung
(zum Beispiel ein SSD), und die zweite Speichervorrichtung 306 ist
eine langsamere Speichervorrichtung (zum Beispiel eine mechanische Festplatte
und/oder eine rotierende Festplatte). In 3 ist die
erste Speichervorrichtung 304 am Anfang des logischen Volumenbereichs
veranschaulicht (zum Beispiel an der logischen Adresse LBA 0 beginnend),
und die zweite Speichervorrichtung 306 ist am Ende des
logischen Volumenbereichs veranschaulicht (zum Beispiel am Ende
der logischen Adressierung an der logischen Adresse LBA X endend).
Es können
jedoch auch andere Ausführungsformen
implementiert werden, wo die logische Adressierung eine andere ist
(zum Beispiel wo die erste Speichervorrichtung 304 eine
langsamere Speichervorrichtung ist und die zweite Speichervorrichtung 306 eine schnellere
Speichervorrichtung ist). In einigen Ausführungsformen ist ein schnelleres
Laufwerk (zum Beispiel ein Festkörperlaufwerk)
am Anfang des logischen Volumenbereichs bevorzugt, da das Betriebssystem
und andere Schlüsseldateien
bei einem Installationsvorgang auf dem schnelleren Laufwerk abgelegt
werden.
-
4 veranschaulicht
ein System 400 gemäß einigen
Ausführungsformen.
Das System 400 enthält
einen logischen Volumenbereich 402. In einigen Ausführungsformen
kann der logische Volumenbereich 402 in einem System wie
zum Beispiel dem System 100 enthalten sein, wo das logische
Volumen 402 zum Beispiel einen Datenspeicher 110 umfasst. Der
logische Volumenbereich 402 enthält eine erste Speichervorrichtung 404 und
eine zweite Speichervorrichtung 406. Das heißt, in einigen
Ausführungsformen
ist der logische Volumenbereich 402 ein zwischen zwei Laufwerken 404 und 406 verteiltes
Volumen. In einigen Ausführungsformen
ist die erste Speichervorrichtung 404 eine schnellere Speichervorrichtung
(zum Beispiel ein SSD), und die zweite Speichervorrichtung 406 ist
eine langsamere Speichervorrichtung (zum Beispiel eine mechanische Festplatte
und/oder eine rotierende Festplatte). In 4 ist die
erste Speichervorrichtung 404 am Anfang des logischen Volumenbereichs
veranschaulicht (zum Beispiel an der logischen Adresse LBA 0 beginnend),
und die zweite Speichervorrichtung 406 ist am Ende des
logischen Volumenbereichs veranschaulicht (zum Beispiel am Ende
der logischen Adressierung an der logischen Adresse LBA X endend).
Es können
jedoch auch andere Ausführungsformen
implementiert werden, wo die logische Adressierung eine andere ist
(zum Beispiel wo die erste Speichervorrichtung 404 eine
langsamere Speichervorrichtung ist und wo die zweite Speichervorrichtung 406 eine
schnellere Speichervorrichtung ist).
-
Die
erste Speichervorrichtung 404 enthält die Abschnitte 414, 424, 434, 444 und 454.
Die zweite Speichervorrichtung 406 enthält die Abschnitte 416, 426, 436, 446 und 456.
Der Pfeil 462 in 4 veranschaulicht,
wie in einigen Ausführungsformen Dateien
im Abschnitt 444 der ersten (schnelleren) Speichervorrichtung 404,
die zum Beispiel nicht oft genutzt werden, zum Abschnitt 426 der
zweiten (langsameren) Speichervorrichtung 406 verschoben werden.
Gleichermaßen
veranschaulicht der Pfeil 464 in 4, wie in
einigen Ausführungsformen
Dateien im Abschnitt 446 der zweiten (langsameren) Speichervorrichtung 406,
auf die zum Beispiel oft zugegriffen wird, zum Abschnitt 424 der
ersten (schnelleren) Speichervorrichtung 404 verschoben
werden.
-
In
einigen Ausführungsformen
ist es kaum oder gar nicht von Vorteil, wenn sich Dateien, auf die selten
zugegriffen wird (zum Beispiel Hilfedateien), auf der schnelleren
Speichervorrichtung befinden. Sie würden auf der schnelleren Speichervorrichtung nur
Speicherplatz belegen, der für
nützlichere
Inhalte genutzt werden könnte
(zum Beispiel ausführbare Dateien
von Anwendungen und/oder Arbeitsdatensätze von Nutzern usw.). In einigen
Ausführungsformen
können
solche Dateien für
eine Verschiebung auf die langsamere Speichervorrichtung (den langsameren
Abschnitt des verteilten Volumens) vorgesehen werden.
-
In
einigen Ausführungsformen
erfolgen die Organisierung von anderen, und der Zugriff auf andere,
Dateitypen, wie zum Beispiel Mediendateien, in der Regel auf/von
einer Speichervorrichtung in sequenzieller Weise. Da mechanische
Festplattenlaufwerke für
sequenzielle Operationen (zum Beispiel mit höherem Durchsatz als NAND und/oder
mit einigen SSD-Laufwerken) gut geeignet sind, sind große Mediendateien
in einigen Ausführungsformen
gute Kandidaten für
die Verschiebung von der schnelleren Speichervorrichtung zu der
langsameren Speichervorrichtung. Andere Dateien, die oft modifiziert
werden (zum Beispiel Word-Dateien), werden in der Regel fragmentiert
und können
Teil des Arbeitsdatensatzes eines Nutzers sein und/oder werden zu
Beginn nicht-sequenziell
aufgerufen. Solche Dateien auf einer langsameren Speichervorrichtung
(wie zum Beispiel einem rotierenden Laufwerk) verringern die Leistung
noch mehr, da zusätzliche
Such- und Kopfbewegungen erforderlich sind. In einigen Ausführungsformen
mindert das Verschieben von Dateien zu der schnelleren Speichervorrichtung
(zum Beispiel einer nicht-flüchtigen
und/oder SSD-Speichervorrichtung) diese Leistungsverschlechterung
und hat außerdem
keine Auswirkung auf die Leistung der schnelleren Speichervorrichtung,
da schnellere Speichervorrichtungen wie zum Beispiel SSDs nicht durch
Fragmentierung beeinträchtigt
werden.
-
In
einigen Ausführungsformen
wird ein Software-Dienstprogramm darüber informiert, wo sich das
schnellere Laufwerk innerhalb des logischen Volumenbereichs befindet
(um das Mapping des Volumens zu kennen). In einigen Ausführungsformen weiß dieses
Dienstprogramm anhand der Zugriffsheuristik und/oder der Dateiattribute,
wohin Dateien zu verschieben sind (zum Beispiel entweder Verschieben
einer Datei zu dem schnelleren Laufwerk und/oder zu dem langsameren
Laufwerk). In einigen Ausführungsformen
verschiebt das Software-Dienstprogramm die ausgewählten Dateien
zwischen verschiedenen Regionen des verteilten Laufwerks unter Verwendung
von Operationen, die das logische Äquivalent zu Operationen sind,
die verwendet werden, um Dienstprogrammdefragmentierungsoperationen (Defrag-Operationen)
auszuführen.
In einigen Ausführungsformen
wählt und
verschiebt diese verteilte intelligente Operation Dateien mit Kenntnis
der Grenze des schnelleren Laufwerks (zum Beispiel des SSD-Laufwerk)
in dem logischen Adressplatz. Obgleich man sich diese Operation
als einer Defrag-Operation ähnelnd
vorstellen kann, ist in einigen Ausführungsformen der Zweck nicht
die Defragmentierung. Jedoch können
in einigen Ausführungsformen
Dateien als Teil der Verschiebung defragmentiert werden, so dass
die Defrag-Operation des Betriebssystems nicht benötigt wird,
um Dateien auf dem schnelleren Laufwerk (zum Beispiel einem Festkörperlaufwerk)
zu defragmentieren.
-
In
einigen Ausführungsformen
würde das verteilte
Anordnen eines schnelleren Laufwerks und eines langsameren Laufwerks
nur bei den Dateien Vorteile mit sich bringen, die sich auf dem
schnelleren Laufwerk befinden. Moderne Betriebssysteme (OSes) folgen
keiner bestimmten Anordnungsweise, wenn sie Dateien auf einer Vorrichtung
(das heißt, auf
einem Volumen) ablegen. Infolge dessen gibt es keine Garantie, auf
welcher Vorrichtung (der schnelleren oder der langsameren) die Datei
abgelegt wird. Wenn Dateien, die der Nutzer oft benutzt, auf einem langsameren
Laufwerk (zum Beispiel einem rotierenden Laufwerk) abgelegt werden,
so wird für
den Nutzer kein Vorteil erkennbar, der zeigt, dass sich der Kauf
und/oder die Nutzung des schnelleren Laufwerks gelohnt hätten. In
einigen Ausführungsformen hingegen
wird durch intelligentes Verschieben von Dateien, mit denen der
Nutzer öfter
arbeitet, auf das schnellere Laufwerk, und/oder durch intelligentes Verschieben
von Dateien, auf die der Nutzer seltener zugreift, auf das langsamere
Laufwerk, ein Leistungsgewinn für
den Nutzer erkennbar, unabhängig davon,
wo die Datei zunächst
abgelegt wurde, und ohne dass der Nutzer verschiedenen logische
Laufwerksbuchstaben für
die Dateien manuell auswählen muss
(das heißt,
in den Augen des Nutzers befinden sich alle Dateien auf demselben
logischen Laufwerk). In einigen Ausführungsformen bleibt ein Abschnitt des
schnelleren Laufwerks (zum Beispiel eines Festkörperlaufwerks) ungenutzt, so
dass dieser ungenutzte Platz für
das Anlegen temporärer
Dateien (zum Beispiel durch das Betriebssystem) genutzt werden kann,
um nicht das langsamere Laufwerk verwenden zu müssen. Dies gestattet zum Beispiel ein
schnelleres Anlegen und/oder Nutzen temporärer Dateien und/oder eine Energieeinsparung,
weil das langsamere Laufwerk (zum Beispiel ein rotierendes Spindel-Festplattenlaufwerk)
nicht genutzt werden muss.
-
In
einigen Ausführungsformen
kann eine nicht-flüchtige
SSD in einem System verwendet werden, um mehr Wert für einen
Kunden zu schöpfen (zum
Beispiel unter Verwendung von Software). Ohne Vorteile gemäß einigen
Ausführungsformen würden solche
Vorteile in der Regel lediglich auf den Platz der SSD-Vorrichtung
beschränkt
bleiben. In einigen Ausführungsformen
kann ein schnelleres Laufwerk (wie zum Beispiel ein Festkörperlaufwerk)
einem System hinzugefügt
werden, das bereits ein langsameres Laufwerk (wie zum Beispiel ein
rotierendes Festplattenlaufwerk) enthält, um das System schneller
zu machen. In einigen Systemen, in denen lediglich ein schnelleres
Festkörperlaufwerk
verwendet wird, kann ein langsameres Festplattenlaufwerk hinzugefügt (oder
dorthin verschoben) werden, wenn der Nutzer mehr Kapazität benötigt, indem – aus der Sicht
des Nutzers – das
Aussehen und das Empfinden eines Systems beibehalten wird, das lediglich
die SSD enthält.
-
In
einigen Ausführungsformen
merkt ein Nutzer nichts von dem Leistungsunterschied zwischen einer
langsameren größeren Speichervorrichtung und
einer schnelleren kleineren Speichervorrichtung. Das heißt, der
Nutzer weiß lediglich,
dass eine Zusammenlegung der Kapazität der zwei Geräte stattfindet
und dass die kleinere schnellere Vorrichtung einen Leistungsvorteil
besitzt.
-
In
einigen Ausführungsformen
erfährt
der Nutzer nicht, ob eine Datei auf dem langsameren Laufwerk oder
auf dem schnelleren Laufwerk abgelegt wurde. In einigen Ausführungsformen
kann dem Nutzer mitgeteilt werden, ob eine Datei auf dem langsameren
Laufwerk oder auf dem schnelleren Laufwerk abgelegt wurde (zum Beispiel,
wenn der Nutzer wünscht, über den
Ablageort informiert zu werden, indem der Nutzer seinen Wunsch angibt).
In einigen Ausführungsformen
tätigt
der Nutzer Eingaben für gewünschte Ablageorte
und/oder gibt Präferenzen für gewünschte Ablageorte
an (zum Beispiel Ablagepräferenzen
auf der Grundlage bestimmter Dateitypen, bestimmter Zugriffsarten
usw.).
-
In
einigen Ausführungsformen
wird die Dateiablage auf der Grundlage erhaltener Dateiablage-Priorisierungsinformationen
(zum Beispiel von einem Nutzer und/oder von einem Hersteller des
Systems) priorisiert. In einigen Ausführungsformen wird die Dateiablage
auf der Grundlage einer Dateiablage-Priorisierung priorisiert, die
ein Nutzer und/oder ein Hersteller des System (zum Beispiel ein
Erstausrüster
oder OEM) programmiert hat.
-
In
einigen Ausführungsformen
wird eine Bestimmung des Dateiablageortes auf der Grundlage von
Dateiablage-Priorisierungsinformationen vorgenommen. In einigen
Ausführungsformen
sind die Dateiablage-Priorisierungsinformationen zum Beispiel mit
Dateitypen und/oder der Dateigröße und/oder
Arten des Zugriffs auf Dateien und/oder der Nutzungshäufigkeit
von Dateien und/oder Nutzerpräferenzen und/oder
Energieverwaltungseinstellungen verknüpft.
-
Obgleich
einige Ausführungsformen
unter Bezug auf konkrete Implementierungen beschrieben wurden, sind
gemäß einigen
Ausführungsformen auch
andere Implementierungen möglich.
Außerdem brauchen
die Anordnung und/oder die Reihenfolge der Schaltkreiselemente oder
anderer Merkmale, die in den Zeichnungen veranschaulicht und/oder
im vorliegenden Text beschrieben sind, nicht der konkret veranschaulichten
und beschriebenen Art und Weise zu entsprechen. Gemäß einigen
Ausführungsformen sind
viele andere Anordnungen möglich.
-
In
jedem System, das in einer Figur gezeigt ist, können die Elemente in einigen
Fällen
jeweils die gleiche Bezugszahl oder eine andere Bezugszahl haben,
um anzuzeigen, dass die dargestellten Elemente verschieden und/oder ähnlich sein
könnten.
Jedoch kann ein Element auch so flexibel sein, dass verschiedene
Implementierungen möglich
sind und dass es mit einigen oder allen der im vorliegenden Text
gezeigten oder beschriebenen Systeme zusammenarbeiten kann. Die
in den Figuren gezeigten verschiedenen Elemente können gleich
oder voneinander verschieden sein. Welches als ein erstes Element bezeichnet
wird und welches als ein zweites, ist irrelevant.
-
In
der Beschreibung und in den Ansprüchen können die Begriffe „gekoppelt” und „verbunden” zusammen
mit ihren Ableitungen verwendet werden. Es ist zu beachten, dass
diese Begriffe nicht als Synonyme für einander gedacht sind. Vielmehr
kann in bestimmten Ausführungsformen „verbunden” verwendet
werden, um anzuzeigen, dass zwei oder mehr Elemente in direktem
physischem oder elektrischem Kontakt miteinander stehen. „Gekoppelt” kann bedeuten,
dass zwei oder mehr Elemente in direktem physischem oder elektrischem
Kontakt stehen. Jedoch kann „gekoppelt” außerdem bedeuten, dass
zwei oder mehr Elemente nicht in direktem Kontakt miteinander stehen,
aber trotzdem zusammenwirken oder miteinander interagieren.
-
Ein
Algorithmus gilt hier, und allgemein, als eine in sich geschlossene
Abfolge von Aktionen oder Operationen, die zu einem gewünschten
Ergebnis führen.
Dazu gehören
physikalische Manipulationen physikalischer Quantitäten. Gewöhnlich,
wenn auch nicht notwendigerweise, nehmen diese Quantitäten die
Form elektrischer oder magnetischer Signale an, die gespeichert, übertragen,
kombiniert, verglichen, und auf sonstige Weise manipuliert werden
können. Es
hat sich gelegentlich als zweckmäßig erwiesen, besonders
aus Gründen
des gemeinsamen Sprachgebrauchs, diese Signale als Bits, Werte,
Elemente, Symbole, Zeichen, Terme, Nummern oder dergleichen zu bezeichnen.
Es ist jedoch zu beachten, dass alle diese und ähnliche Termini nicht mit den
entsprechenden physikalischen Quantitäten zu assoziieren sind, sondern
lediglich zweckmäßige Bezeichner sind,
die diesen Quantitäten
beigegeben werden.
-
Einige
Ausführungsformen
können
in Hardware, Firmware oder Software oder in Kombinationen daraus
implementiert werden. Einige Ausführungsformen können auch
als Instruktionen implementiert werden, die auf einem maschinenlesbaren Medium
gespeichert sind und die durch eine Computerplattform gelesen und
ausgeführt
werden können, um
die im vorliegenden Text beschriebenen Operationen auszuführen. Ein
maschinenlesbares Medium kann einen beliebigen Mechanismus zum Speichern oder Übertragen
von Informationen in einer Form enthalten, die durch eine Maschine
(zum Beispiel einen Computer) gelesen werden kann. Zum Beispiel
kann ein maschinenlesbares Medium einen Nurlesespeicher (ROM), einen
Direktzugriffsspeicher (RAM), ein Magnetdiskettenspeichermedium,
ein optisches Speichermedium, Flash-Speicherbausteine, eine elektrische,
optische, akustische oder sonstige Form ausgebreiteter Signale (zum
Beispiel Trägerwellen, Infrarotsignale,
digitale Signale, die Schnittstellen, die Signale senden und/oder
empfangen usw.) und anderes enthalten.
-
Eine
Ausführungsform
ist eine Implementierung oder ein Beispiel der Erfindungen. Wenn
in der Spezifikation von „einer
Ausführungsform”, „einer
bestimmten Ausführungsform”, „einigen
Ausführungsformen” oder „anderen
Ausführungsformen” gesprochen
wird, so bedeutet das, dass ein bestimmtes Merkmal, eine bestimmte
Struktur oder eine bestimmte Eigenschaft, das bzw. die in Verbindung
mit den Ausführungsformen
beschrieben ist, mindestens in einigen Ausführungsformen, aber nicht unbedingt in
allen Ausführungsformen
der Erfindungen enthalten ist. Die verschiedenen Ausdrucksweisen „eine Ausführungsform”, „eine bestimmte
Ausführungsform” oder „einige
Ausführungsformen” beziehen sich
nicht unbedingt alle auf dieselben Ausführungsformen.
-
Nicht
alle Komponenten, Merkmale, Strukturen, Eigenschaften usw., die
im vorliegenden Text beschrieben und veranschaulicht sind, brauchen
in einer bestimmten Ausführungsform
oder in bestimmten Ausführungsformen
enthalten zu sein. Wenn die Spezifikation zum Beispiel besagt, dass
eine Komponente, ein Merkmal, eine Struktur oder eine Eigenschaft
enthalten sein „kann” oder „könnte”, so ist
es nicht erforderlich, dass die bestimmte Komponente, das bestimmte
Merkmal, die bestimmte Struktur oder die bestimmte Eigenschaft auch
tatsächlich
enthalten ist. Wenn in der Spezifikation oder einem Anspruch von „einem” Element
gesprochen wird, so bedeutet das nicht, dass es lediglich ein einziges
solches Element gibt. Wenn die Spezifikation oder die Ansprüche von „einem
zusätzlichen” Element
sprechen, so schließt
das nicht aus, dass auch mehrere der zusätzlichen Elemente vorhanden
sein können.
-
Obgleich
im vorliegenden Text Prozessablaufdiagramme und/oder Zustandsdiagramme
verwendet worden sein können,
um Ausführungsformen zu
beschreiben, sind die Erfindungen nicht auf diese Diagramme oder
auf entsprechende Beschreibungen im vorliegenden Text beschränkt. Zum
Beispiel braucht der Prozessablauf nicht durch jedes veranschaulichte
Kästchen
oder jeden veranschaulichten Zustand hindurch zu verlaufen, oder
braucht sich nicht in exakt der gleichen Reihenfolge zu vollziehen, wie
es im vorliegenden Text veranschaulicht und beschrieben ist.
-
Die
Erfindungen sind nicht auf die im vorliegenden Text genannten konkreten
Details beschränkt.
Der Fachmann, der in den Genuss der vorliegenden Offenbarung kommt,
erkennt natürlich, dass
viele weitere Variationen der vorangegangenen Beschreibung und der
Zeichnungen vorgenommen werden können,
ohne den Geltungsbereich der Erfindungen zu verlassen. Dementsprechend
sind es die folgenden Ansprüche
einschließlich
ihrer Änderungen,
die den Geltungsbereich der Erfindungen definieren.
-
ZUSAMMENFASSUNG
-
In
einigen Ausführungsformen
wird eine Bestimmung vorgenommen, ob eine Datei auf einem langsameren
Laufwerk eines logischen Speichervolumenbereichs oder auf einem
schnelleren Laufwerk des logischen Speichervolumenbereichs abgelegt werden
soll. Die Datei wird anhand der Bestimmung auf dem langsameren Laufwerk
oder auf dem schnelleren Laufwerk abgelegt, und ein Nutzer braucht
keine Kenntnis darüber
zu haben, ob die Datei auf dem langsameren Laufwerk oder auf dem
schnelleren Laufwerk abgelegt wurde. Weitere Ausführungsformen
werden beschrieben und beansprucht.