DE202010017644U1 - Hybridspeichervorrichtung - Google Patents

Hybridspeichervorrichtung Download PDF

Info

Publication number
DE202010017644U1
DE202010017644U1 DE202010017644U DE202010017644U DE202010017644U1 DE 202010017644 U1 DE202010017644 U1 DE 202010017644U1 DE 202010017644 U DE202010017644 U DE 202010017644U DE 202010017644 U DE202010017644 U DE 202010017644U DE 202010017644 U1 DE202010017644 U1 DE 202010017644U1
Authority
DE
Germany
Prior art keywords
storage device
host computer
processor
information
information set
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.)
Expired - Lifetime
Application number
DE202010017644U
Other languages
English (en)
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of DE202010017644U1 publication Critical patent/DE202010017644U1/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems

Abstract

Hybridspeichervorrichtung mit: einer Permanentspeichervorrichtung, einer flüchtigen Speichervorrichtung, einem Prozessor, wobei die Permanentspeichervorrichtung und die flüchtige Speichervorrichtung mit dem Prozessor verbunden sind, einem Speicherlademodul, das es dem Prozessor ermöglicht, einen ersten Informationssatz von der Permanentspeichervorrichtung zu laden und den ersten Informationssatz entsprechend einem vorgegebenen Format in der flüchtigen Speichervorrichtung zu organisieren, und einem Speicherlaufwerk-Schnittstellensteuermodul, das es dem Prozessor ermöglicht, Informationszugriffsanforderungen von einem mit der Hybridspeichervorrichtung verbundenen Host-Computer zu empfangen, auf die Informationszugriffsanforderungen unter Verwendung des ersten Informationssatzes in der flüchtigen Speichervorrichtung zu antworten und dem Host-Computer Metadaten bereitzustellen, welche den ersten Informationssatz beschreiben, wobei der Host-Computer in die Lage versetzt ist, auf den ersten Informationssatz unter Verwendung der Metadaten zuzugreifen, ohne dass sich der erste Informationssatz in einem lokalen Speicher des Host-Computers befindet, und wobei die Zeit, die der Host-Computer benötigt, um auf den ersten Informationssatz zuzugreifen, dadurch verringert wird, dass der erste Informationssatz in...

Description

  • HINTERGRUND
  • Diese Erfindung betrifft allgemein Datenspeichervorrichtungen.
  • Stand der Technik
  • Die Zeit, die erforderlich ist, um nach einem normalen Einschalten oder einem Rücksetzen des Systems den Hochfahrprozess abzuschließen und einen betriebsfähigen Zustand zu erreichen, das Maß, in dem ein System Sicherheitsgefährdungen, insbesondere durch unberechtigte Modifikationen an den Bootkonfigurationen des Systems ausgesetzt ist, und die Fähigkeit, sich von Systemausfällen zu erholen, sind häufig Schlüssel-Leistungsfähigkeitsfaktoren in Computersystemen, welche Verarbeitungsserver, Speicherserver und verschiedene eingebettete Computersysteme einschließen. Der Bootprozess und der Dateizugriff sind Aspekte, welche diese Leistungsfähigkeitsfaktoren beeinflussen.
  • Wenn ein Computer eingeschaltet wird, beginnt im Allgemeinen die Ausführung eines BIOS-(Basic Input Output System)-Programms, das sich in einem Nurlesespeicher (ROM) befindet. Das BIOS führt seine zahlreichen Initialisierungsaktivitäten, einschließlich der Hardwareerkennung und Verifikationstests, aus und versucht, ein Programm aufzurufen, das sich in einem bekannten Bereich, beispielsweise im Master-Boot-Record (MBR) der Boot-Vorrichtung, befindet, und die Kontrolle an dieses Programm zu übergeben. Die Boot-Vorrichtung ist eine lokale oder über ein Netzwerk angeschlossene Speichervorrichtung, die als bootfähig konfiguriert ist und durch den Computer als solche bemerkt wird. Das sich im MBR befindende Programm kann beispielsweise ein Boot-Ladeprogramm sein, welches das Laden verschiedener Betriebssysteme ermöglicht. Einige Computerbetriebssysteme, wie beispielsweise das Linux-Betriebssystem und viele andere Varianten des UNIX-Betriebssystems, können einen Boot-Prozess aufweisen, bei dem nach dem Einschalten ein verhältnismäßig kleiner Betriebssystem-Kernel (Anfangs-Kernel) hochgefahren wird und dann ein Root-Dateisystem installiert wird, bevor der Computer voll betriebsfähig wird. Das Anfangs-Kernel-Abbild wird typischerweise von einem vordefinierten Speicherort durch einen Boot-Lader, wie beispielsweise die Boot-Lader GRUB oder LILO, die üblicherweise in Linux-Systemen verwendet werden, in den Speicher geladen. Das Anfangs-Kernel-Abbild kann dann ein Root-Dateisystem von einem von vielen Orten, einschließlich einer lokalen Platte, einer an den Computer angeschlossenen entfernbaren oder Wechsel-Speichervorrichtung oder eines Netzwerkorts, laden. Es ist häufig der Fall, dass sich das Root-Dateisystem auf der Boot-Vorrichtung befindet. Das Root-Dateisystem weist die meisten Softwaremodule auf, die für den Nutzbetrieb des Computers benötigt werden, einschließlich Vorrichtungstreibern für verschiedene Hardwarekomponenten, Benutzerzugangsinformationen sowie Software und Konfigurationen zum Installieren von und zum Zugreifen auf Dateien. Wenngleich das für jeden Computertyp erforderliche Root-Dateisystem verschieden sein kann, ist dieser mehrere Schritte aufweisende Bootprozess im Allgemeinen einer der langsameren Aspekte des Betriebs vieler Computer, und es wird häufig angestrebt, ihn zu optimieren. Der Begriff ”Computer” umfasst hier jede beliebige Rechenvorrichtung, die mindestens einen Prozessor aufweist und die Fähigkeit hat, auf Dateien in einer Speichervorrichtung zuzugreifen.
  • Das Root-Dateisystem kann eine erhebliche Größe aufweisen, und das Laden eines erheblichen Teils eines Root-Dateisystems kann zeitaufwändig sein. Aus diesem und anderen Gründen ist das Laden des Root-Dateisystems von einer lokalen Platte oder einer angeschlossenen entfernbaren Speichervorrichtung im Allgemeinen gegenüber dem Laden des Root-Dateisystems über ein Netzwerk bevorzugt.
  • Bei vielen Computern ist es jedoch nicht notwendig, dass ein vollständiges Root-Dateisystem funktioniert. Beispielsweise benötigen viele eingebettete Vorrichtungen nicht die Funktionalität eines vollständigen Root-Dateisystems, weil diese Vorrichtungen im Allgemeinen für einen begrenzten Satz von Verarbeitungsfunktionen vorgesehen sind. Mobiltelefone, Set-Top-Boxen (beispielsweise Kabelboxen), Spielkonsolen, Router usw. sind einige Beispiele eingebetteter Vorrichtungen, die möglicherweise nicht die Funktionalität eines vollständigen Dateisystems benötigen. In vielen Fallen können andere Computer als eingebettete Vorrichtungen, wie Personalcomputer und Speicherserver, auch ein vollständiges Root-Dateisystem nicht benötigen.
  • Viele Computer, insbesondere solche, die ein schnelles Booten und einen schnellen Zugriff auf Daten benötigen, verwenden eine Festkörperspeichervorrichtung in der Art einer Flash-Platte, worauf ein komprimiertes Abbild des Root-Dateisystems, manchmal einschließlich eines Betriebssystemabbilds, gespeichert ist. Wenngleich Festkörperlaufwerke eine erheblich höhere Zuverlässigkeit bieten als entsprechende Magnetplattenvarianten und andere Permanentspeichervorrichtungen, wird häufig festgestellt, dass die Lese- und Schreibgeschwindigkeiten die Arbeitsgeschwindigkeit dieser eingebetteten Systeme verlangsamen.
  • Viele Computer, insbesondere solche, die Linux oder eine andere UNIX-Variante verwenden, können das gesamte Dateisystem von einer Permanentspeichervorrichtung in der Art einer Magnetplatte oder einer Festkörperplatte in den lokalen Direktzugriffsspeicher (lokalen RAM) des Computers und in eine virtuelle Platte im RAM, d. h. eine RAM-Disk, laden. Sobald sich das Dateisystem in einer RAM-Disk befindet, kann das Betriebssystem auf dieses in der gleichen Weise zugreifen, wie es auf eine beliebige lokale Platte zugreift. Durch das Erzeugen einer RAM-Disk und dadurch, dass der Computer auf die RAM-Disk in der gleichen oder einer ähnlichen Weise zugreifen kann, in der er auf ein beliebiges Plattenlaufwerk zugreift, kann die Arbeitsgeschwindigkeit des Computers verbessert werden. Die RAM-Disk ermöglicht einen schnellen Zugriff auf Dateien, weil auf die Dateien im flüchtigen Speicher zugegriffen wird und die Notwendigkeit verhältnismäßig langsamer Plattenzugriffe für das Abrufen von Dateien erheblich reduziert ist. Weil das gesamte Dateisystem in den lokalen RAM eingebracht wird, wird Anwendungen und anderen Prozessen, die diesen RAM-Platz benötigen, jedoch wertvolle RAM-Kapazität vorenthalten.
  • Daher gibt es seit langem einen Bedarf, mit einer erhöhten Geschwindigkeit, Wirksamkeit und Zuverlässigkeit Speicherkapazität bereitzustellen und auf gespeicherte Informationen zuzugreifen. Insbesondere sind Systeme und Verfahren erforderlich, um einen Zugriff auf Speicher bereitzustellen, wodurch das Initialisieren von Computersystemen mit einer erhöhten Geschwindigkeit, Zuverlässigkeit und Wartbarkeit ermöglicht werden kann.
  • ÜBERBLICK
  • Gemäß einer Ausführungsform weist eine Hybridspeichervorrichtung auf: einen Permanentspeicher, einen flüchtigen Speicher, einen Prozessor, ein Speicherlademodul, das es dem Prozessor ermöglicht, einen ersten Informationssatz, beispielsweise ein Dateisystem, von der Permanentspeichervorrichtung zu laden und den ersten Informationssatz entsprechend einem vorgegebenen Format in der flüchtigen Speichervorrichtung zu organisieren, und eine Speicherlaufwerk-Schnittstellensteuereinrichtung. Die Speicherlaufwerk-Schnittstellensteuereinrichtung ermöglicht es dem Prozessor, Informationszugriffsanforderungen von einem mit der Hybridspeichervorrichtung verbundenen Host-Computer zu empfangen, auf die Informationszugriffsanforderungen unter Verwendung des ersten Informationssatzes in der flüchtigen Speichervorrichtung anzusprechen und dem Host-Computer Metadaten bereitzustellen, welche den ersten Informationssatz beschreiben. Bei dieser Ausführungsform ist der Host-Computer in der Lage, unter Verwendung der Metadaten mit dem Zugriff auf den ersten Informationssatz zu beginnen, ohne dass sich der erste Informationssatz in einem lokalen Speicher des Host-Computers befindet, und die Zeit, die erforderlich ist, um auf den ersten Informationssatz zuzugreifen, wird dadurch verringert, dass sich der erste Informationssatz im flüchtigen Speicher befindet.
  • Bei einer anderen Ausführungsform weist ein System einen Host-Computer und eine mit dem Host-Computer verbundene Hybridspeichervorrichtung auf. Die Hybridspeichervorrichtung weist auf: einen Permanentspeicher, einen flüchtigen Speicher, einen Prozessor, ein Speicherlademodul, das es dem Prozessor ermöglicht, einen ersten Informationssatz von der Permanentspeichervorrichtung in die flüchtige Speichervorrichtung zu laden und den ersten Informationssatz entsprechend einem vorgegebenen Format in der flüchtigen Speichervorrichtung zu organisieren, und eine Speicherlaufwerk-Schnittstellensteuereinrichtung. Die Speicherlaufwerk-Schnittstellensteuereinrichtung ermöglicht es dem Prozessor, Informationszugriffsanforderungen von einem Host-Computer zu empfangen und auf die Informationszugriffsanforderungen unter Verwendung des ersten Informationssatzes im flüchtigen Speicher zu antworten.
  • Bei einer weiteren Ausführungsform weist ein Verfahren folgende Schritte auf: Verbinden einer Hybridspeichervorrichtung mit einem Host-Computer, Laden eines ersten Informationssatzes von einer Permanentspeichervorrichtung in eine flüchtige Speichervorrichtung, die sich in der Hybridspeichervorrichtung befindet, und Organisieren des ersten Informationssatzes entsprechend einem vorgegebenen Format in der flüchtigen Speichervorrichtung, Laden von Zugriffsinformationen von der flüchtigen Speichervorrichtung in einen lokalen Direktzugriffsspeicher (lokalen RAM), der sich in dem Host-Computer befindet, und Zugreifen auf einen zweiten Informationssatz unter Verwendung der Zugriffsinformationen, die sich in dem. lokalen RAM befinden, wobei der erste Informationssatz den zweiten Informationssatz aufweist.
  • Weitere Merkmale und Vorteile der vorliegenden Erfindung sowie die Struktur und die Arbeitsweise verschiedener Ausführungsformen davon werden nachstehend mit Bezug auf die anliegende Zeichnung detailliert beschrieben. Es sei bemerkt, dass die Erfindung nicht auf die hier beschriebenen spezifischen Ausführungsformen beschränkt ist. Diese Ausführungsformen werden hier nur zu Erläuterungszwecken präsentiert. Zusätzliche Ausführungsformen werden Fachleuten in der relevanten Technik anhand der hier enthaltenen Lehren verständlich werden.
  • KURZBESCHREIBUNG DER ZEICHNUNG/FIGUREN
  • Es wird auf die Ausführungsformen der Erfindung Bezug genommen, von denen Beispiele in den anliegenden Figuren erläutert werden. Diese Figuren dienen der Erläuterung und sollten nicht als einschränkend angesehen werden. Wenngleich die Erfindung generell in Zusammenhang mit diesen Ausführungsformen beschrieben wird, ist zu verstehen, dass der Schutzumfang der Erfindung nicht auf diese speziellen Ausführungsformen beschränkt sein soll.
  • Es zeigen:
  • 1 ein System, das gemäß einer Ausführungsform der vorliegenden Erfindung einen Host-Computer und eine Hybridspeichervorrichtung aufweist,
  • 2 Komponenten der Hybridspeichervorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung,
  • 3 ein Flussdiagramm hoher Ebene eines Verfahrens zur Verwendung einer Hybridspeichervorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung,
  • 4 ein detaillierteres Flussdiagramm der Ereignisse, die auftreten, wenn die Hybridspeichervorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung entsprechend 3 eingeschaltet wird,
  • 5 ein detaillierteres Flussdiagramm des in 3 dargestellten Schritts ”Zugreifen auf das Dateisystem” gemäß einer Ausführungsform der vorliegenden Erfindung und
  • 6 ein detailliertes Flussdiagramm, das den Verarbeitungsablauf zeigt, wenn ein Datenblock gemäß einer Ausführungsform der vorliegenden Erfindung von der Hybridspeichervorrichtung in den lokalen Speicher des Host-Computers eingebracht wird.
  • DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Wenngleich die vorliegende Erfindung hier mit Bezug auf erläuternde Ausführungsformen für bestimmte Anwendungen beschrieben wird, ist zu verstehen, dass die Erfindung nicht darauf beschränkt ist. Fachleuten mit Zugang zu den hier angegebenen Lehren werden zusätzliche Modifikationen, Anwendungen und Ausführungsformen innerhalb ihres Schutzumfangs und zusätzliche Gebiete, auf denen die Erfindung eine erhebliche Nützlichkeit hätte, einfallen.
  • Die vorliegende Erfindung ermöglicht es einem Host-Computer gemäß einer Ausführungsform, von der Fähigkeit zum Zugriff auf ein Dateisystem in einem flüchtigen Speicher zu profitieren, ohne dass der Nachteil auftritt, dass ein erheblicher Anteil seines lokalen Speichers (beispielsweise seines Direktzugriffsspeichers oder RAMs, der lokal mit der CPU verbunden ist und im Allgemeinen der kostspieligste Speicher in dem System ist) dem Dateisystem zugeordnet wird. Gemäß einer Ausführungsform der vorliegenden Erfindung wird eine Hybridspeichervorrichtung (HSD) mit einer Permanentspeichervorrichtung in der. Art einer Festkörperspeichervorrichtung (beispielsweise eines Flash-Speichers) beschrieben. Die HSD umfasst ihren eigenen Prozessor und einen flüchtigen Speicher, in den ein sich in der Permanentspeichervorrichtung befindendes Dateisystem geladen werden kann. Eine Plattenschnittstelle und eine Plattensteuereinrichtung in der HSD erlauben es Prozessen in einer externen Vorrichtung, beispielsweise in der Art eines Host-Computers, der mit der HSD verbunden ist, auf Dateien in dem flüchtigen Speicher der HSD zuzugreifen. Bei einigen Ausführungsformen der vorliegenden Erfindung kann die HSD eine mit dem Host-Computer gekoppelte entfernbare Vorrichtung sein, und gemäß anderen Ausführungsformen kann die HSD eine in den Host-Computer integrierte Vorrichtung sein.
  • Eine als Beispiel dienende Anwendung und Verwendung einer Ausführungsform der vorliegenden Erfindung besteht darin, eine HSD zu verwenden, um es einem Server zu ermöglichen, unter Verwendung eines Root-Dateisystems zu booten, das auf einer Flash-Speichervorrichtung an einer angeschlossenen HSD gespeichert ist. Beispielsweise kann ein komprimiertes LINUX®-Root-Dateisystem auf einer Permanentspeichervorrichtung in der HSD gespeichert sein. Wenn die HSD mit dem Server verbunden wird, wird das LINUX-Root-Dateisystem unter der Anleitung des lokalen Prozessors der HSD in einen flüchtigen Speicher dekomprimiert. Für den Host-Computer erscheint das Dateisystem in dem flüchtigen Speicher der HSD als ein Dateisystem in einer Permanentspeichervorrichtung. Beispielsweise kann bei einer als eine Boot-Vorrichtung konfigurierten HSD das Dateisystem in dem flüchtigen Speicher der HSD einen Bereich aufweisen, der dem ersten Sektor einer bootfähigen Platte entspricht, worin ein MBR enthalten ist. Metadaten, einschließlich Inode-Informationen, des Dateisystems können durch die HSD zum lokalen Speicher des Host-Computers exportiert werden. Der Host-Computer kann dann auf das gesamte Dateisystem in dem flüchtigen Speicher der HSD unter Verwendung irgendeiner Form einer Plattenschnittstelle zugreifen. Der Host-Computer würde in einer Art, die gleich oder ähnlich jener ist, in der er auf ein direkt angeschlossenes Plattenlaufwerk zugreift, auf den flüchtigen Speicher der HSD zugreifen.
  • Indem ermöglicht wird, dass Prozesse in einem Host-Computer ohne die beim Hochladen des Dateisystems von einer Flash-Vorrichtung in einen flüchtigen Speicher auftretende Latenz, und ohne große Mengen des lokalen RAMs zu belegen, um eine RAM-Disk zu unterhalten, welche das Dateisystem aufnimmt, auf ein Root-Dateisystem zugreifen, wird eine wirksame Speichervorrichtung mit einem zuverlässigen Speicher bereitgestellt, wodurch Fehler reduziert werden können und die für eine Wiederherstellung nach Fehlern erforderliche Zeit reduziert werden kann. Weil auch, wie im Fall der Verwendung einer Ausführungsform der vorliegenden Erfindung für das Zugreifen auf das Root-Dateisystem, jegliche Änderungen an den Dateien im flüchtigen Speicher der HSD auftreten würden, ist der Server in geringerem Maße Sicherheitsbedrohungen, wie Trojaner-Programmen, Viren und unberechtigten Modifikationen an beeinträchtigten Boot-Konfigurationsdateien, ausgesetzt. Selbst wenn es Schadcode beispielsweise gelingt, eine Benutzervorrechtsdatei zu ändern, ist das System nur bis zum nächsten Einschaltzyklus den Änderungen an der geänderten Benutzervorrechtsdatei ausgesetzt, weil die Änderungen nur an der Datei im flüchtigen Speicher vorgenommen werden, es sei denn, dass ein spezifischer Befehl gegeben wird, den Inhalt des flüchtigen Speichers in einen Permanentspeicher zu schreiben, oder er konfiguriert wurde, um dies auszuführen.
  • Weil bei vielen Ausführungsformen der vorliegenden Erfindung die HSD-Schnittstellen zum Host-Computer eine Standardplattenschnittstelle, beispielsweise Serial Advanced Technology Attachment (SATA), verwenden, ist in dem Host-Computer nur eine geringe oder keine Softwaremodifikation erforderlich, um es Prozessen im Host-Computer zu ermöglichen, den flüchtigen Speicher in der HSD als eine Platte zu betrachten. Die Permanentspeichervorrichtung in der HSD bleibt für die meisten Prozesse im Host-Computer transparent. Indem der flüchtige Speicher in der HSD dem Host-Computer als eine Standardplatte präsentiert wird, kann die HSD auch für solche Aufgaben wie die allgemeine Dateispeicherung, das Paging und als virtueller Speicher verwendet werden.
  • In dieser Offenbarung betrifft der Begriff ”Host-Computer” eine beliebige Verarbeitungsvorrichtung, mit der eine HSD verbunden werden kann. Im Rest dieser Offenbarung wird die Zusammensetzung der vorliegenden Erfindung in manchen ihrer Ausführungsformen, gefolgt von einer Beschreibung der daran beteiligten Verarbeitungsstufen, beschrieben.
  • Systemkomponenten
  • 1 zeigt ein übliches Verwendungsszenario 100 gemäß einer Ausführungsform der vorliegenden Erfindung. Eine HSD 120 ist mit einem Host-Computer 110 verbunden. Die HSD 120 wird nachstehend mit Bezug auf 2 beschrieben. Der Host-Computer 110 kann eine beliebige Verarbeitungsvorrichtung einschließlich eines im Handel erhältlichen Computers (beispielsweise eines Personalcomputers), eines PDAs, eines Mobiltelefons oder einer anderen mobilen elektronischen Vorrichtung mit einem Prozessor, eines digitalen Videorecorders, eines Netzwerk-Rooters, einer Spielkonsole, einer Set-Top-Box, einer Kiosk-Plattform oder einer anderen eingebetteten Verarbeitungsplattform, sein, ist jedoch nicht darauf beschränkt. Der Host-Computer 110 weist mehrere Komponenten auf, einschließlich eines Host-Prozessors 111, eines Host-Speichers (lokalen RAMs) 113, eines Host-Speichers 114, Host-Eingabe- und Anzeigeschnittstellen 115, einer Host-Plattenschnittstellensteuereinrichtung 112 und eines Host-Kommunikationsbusses 116, der die Komponenten 111, 112, 113, 114 und 115 miteinander verbindet. Der Host-Prozessor 111 kann ein beliebiger im Handel erhältlicher Prozessor oder ein Prozessor für spezielle Zwecke sein. Der Host-Speicher 113 weist einen Direktzugriffsspeicher (RAM) auf. Im Rest dieses Dokuments kann der Host-Speicher 113 als lokaler RAM bezeichnet werden, um ihn von anderen flüchtigen Speichervorrichtungen, insbesondere einem in der HSD 120 vorhandenen RAM, zu unterscheiden. Der Host-Speicher 114 kann eine Form eines nichtflüchtigen Speichers in der Art einer Magnetplatte oder einer Flash-Platte, aufweisen. Die Host-Eingabe- und Anzeigeschnittstellen 115 können eines oder mehrere von einer Tastatur, einer Maus, einer Anzeigevorrichtung und einer anderen Ein-/Ausgabevorrichtung aufweisen. Die Host-Plattenschnittstellensteuereinrichtung 112 kann eine beliebige Schnittstellensteuereinrichtung sein, die in der Lage ist, sich mit der HSD 120 auszutauschen. Beispielsweise kann die Host-Plattenschnittstellensteuereinrichtung 112 eine Schnittstellensteuereinrichtung sein, die einem Plattenschnittstellenstandard entspricht, wie Serial Advanced Technology Attachment (SATA) oder eine seiner Varianten, Small Computer System Interface (SCSI), Integrated Drive Electronics (IDE), Internet Small Computer Interface (iSCSI), Fiber Channel, oder ein anderer Standard oder ein anderes Plattenlaufwerk-Schnittstellenprotokoll für spezielle Zwecke. Der Host-Kommunikationsbus 116 kann eine oder mehrere Standard-Vorrichtungsverbindungen oder Vorrichtungsverbindungen für spezielle Zwecke, wie Peripheral Component Interconnect (PCI) oder eine Variante, Industry Standards Architecture (ISA), Extended Industry Standards Architecture (EISA), umfassen. Der Host-Computer 110 verbindet sich unter Verwendung eines Schnittstellenverbinders 130 mit der HSD 120. Wenngleich die HSD 120 in 1 als eine mit dem Host-Computer 110 direkt verbundene Peripherievorrichtung dargestellt ist, kann sie bei anderen Ausführungsformen in den Host-Computer 110 integriert sein oder durch ein Netzwerk mit dem Host-Computer 110 verbunden sein.
  • 2 zeigt Komponenten der HSD 120 gemäß einer Ausführungsform der vorliegenden Erfindung. Gemäß dieser Ausführungsform umfasst die HSD 120 einen Prozessor 201, der mit einer Permanentspeichervorrichtung (beispielsweise einer Festkörperspeichervorrichtung) 203, einer flüchtigen Speichervorrichtung 202, einer statischen RAM-Speichervorrichtung 205, einer Speicherlaufwerk-Schnittstellensteuereinrichtung 208 und einer Konfigurationsvorrichtung 214 gekoppelt ist. Zusätzlich ist der Prozessor 201 auch mit einem Speicherlademodul 209 gekoppelt. Der Prozessor 201 kann einen beliebigen im Handel erhältlichen Prozessor, einen Prozessor für spezielle Zwecke oder ein Feld-programmierbares Gate-Array (FPGA) in der Art eines Altera Cyclone®-II- oder eines Xilinx-Spartan®-Chips umfassen. Die Permanentspeichervorrichtung 203 kann eine Festkörperspeichervorrichtung in der Art einer sicheren digitalen Flash-Karte der zweiten Generation oder einer CompactFlash®-Karte und ein entsprechendes Laufwerk umfassen, ist jedoch nicht darauf beschränkt. Die flüchtige Speichervorrichtung 202 kann einen dynamischen RAM (DRAM) in der Art eines DDR2-DRAMs (Double Data Rate Two Dynamic Random Access Memory) umfassen. Die flüchtige Speichervorrichtung 202 (auch einfach als ”flüchtiger Speicher” bezeichnet) kann ihre eigene Reserve-Stromquellenvorrichtung 213 aufweisen, die während einer begrenzten Dauer Strom bereitstellen kann, wenn die HSD 120 keinen Strom vom Host-Computer 110 empfängt. Eine Reserve-Stromquellenvorrichtung 213 kann eine wiederaufladbare Batterie aufweisen, die dabei helfen kann, die Zuverlässigkeit der HSD 120 zu erhöhen, indem sie Strom liefert, um die Daten in dem flüchtigen Speicher 202 während Zeiten eines Stromausfalls an der HSD 120 zu erhalten. Die Speicherlaufwerk-Schnittstellensteuereinrichtung 208 kann eine beliebige Plattenschnittstelle sein, die einem der Plattenschnittstellentypen entspricht, die von der externen Vorrichtung (beispielsweise dem Host-Computer 110) unterstützt werden, womit die HSD 120 zu verbinden ist, einschließlich Standardplattenschnittstellen, wie SATA, SCSI und IDE.
  • Eines oder beide der Module 208 und 209 können in Software, Firmware, Hardware oder einer Kombination davon implementiert werden. Beispielsweise können Computerprogramme, die die gesamte Funktionalität der Module 208 und 209 oder einen Teil davon erreichen, in einer beliebigen Computerprogrammiersprache, einschließlich C, C++, Java, Assembly, oder als eine Hardware-spezifische Logikdefinition mit einer Sprache, wie Hardware Definition Language (HDL), geschrieben werden.
  • Die Programmlogik der Module 208 und 209 kann dann durch den Prozessor 201 ausgeführt werden. Das Speicherlademodul 209 weist eine Programmlogik auf, die den Prozessor 201 in die Lage versetzt, ein Dateisystem von der Permanentspeichervorrichtung 203 in den flüchtigen Speicher 202 zu laden und dieses Dateisystem im flüchtigen Speicher 202 anderen mit dem Prozessor 201 gekoppelten Vorrichtungen zugänglich zu machen. Das Speicherlaufwerk-Schnittstellensteuermodul 208 weist eine Programmlogik auf, um es dem Prozessor 201 zu ermöglichen, durch die Speicherlaufwerkschnittstelle 206 auf das Dateisystem im flüchtigen Speicher 202 zuzugreifen. Das Speicherlaufwerk-Schnittstellensteuermodul 208 ermöglicht in Kombination mit der Speicherlaufwerk-Schnittstellenvorrichtung 206 einer externen Vorrichtung, beispielsweise in der Art des Host-Computers 110, die durch einen Verbinder 211 mit der HSD 120 verbunden ist, in ähnlicher Weise, in der sie auf ein lokales Dateisystem am Host-Computer 110 zugreift, auf ein im flüchtigen Speicher 202 gespeichertes Dateisystem zuzugreifen. Falls die Speicherlaufwerk-Schnittstellensteuereinrichtung 208 beispielsweise mit dem SATA-Plattenschnittstellenstandard kompatibel ist, kann sie eine Programmlogik zum Implementieren einer entsprechenden SATA-Verarbeitungszustandsmaschine unter Verwendung des Prozessors 201 aufweisen. Nachstehend wird mit Bezug auf die 3 bis 5 detailliert erklärt, wie diese Funktionalität erreicht wird.
  • Bei einigen Ausführungsformen kann die Konfigurationsvorrichtung 214 verwendet werden, um verschiedene Aspekte der HSD 120 zu konfigurieren und zu initialisieren. Beispielsweise kann die Konfigurationsvorrichtung 214 die Funktionalität für das Initialisieren und Formatieren der Permanentspeichervorrichtung 203 aufweisen. Die Konfigurationsvorrichtung 214 kann eine Schnittstelle aufweisen, die mit einer externen Ein-/Ausgabevorrichtung verbindet, um den Empfang von Hand und/oder durch ein Programm gegebener Konfigurationsbefehle zu ermöglichen. Die Konfigurationsvorrichtung 214 kann eine Verbindung mit einem Prozessor 201 aufweisen, der mit dem JTAG-Standard (d. h. dem IEEE-1149.1-Standard mit dem Titel ”Standard Test Access Port and Boundary-Scan Architecture”) kompatibel ist, welcher es ermöglicht, dass Standard-Konfigurations- und -Analysevorrichtungen mit der HSD 120 verbunden werden.
  • Eine Stromverteilungsvorrichtung 210 kann der HSD 120 Strom zuführen. Bei manchen Ausführungsformen kann die Stromverteilungsvorrichtung 210 eine Batterieladung aufweisen. Bei manchen Ausführungsformen kann die Stromverteilungsvorrichtung 210 von einer externen Vorrichtung in der Art eines Host-Computers 110 durch einen Stromverbinder 212 Strom erhalten. Beispielsweise spezifiziert der SATA-Plattenschnittstellenstandard eine Kommunikationsschnittstelle sowie eine Stromschnittstelle.
  • Wenn die HSD 120 mit dem Host-Computer 110 verbunden wird, kann ein komprimiertes Dateisystem in der Permanentspeichervorrichtung 203 in den flüchtigen Speicher 202 geladen und dekomprimiert werden. Bei manchen Ausführungsformen kann die HSD 120 ein Dateisystem in eine RAM-Disk im flüchtigen Speicher 202 geladen haben, bevor sie mit dem Host-Computer 110 verbunden wird. Anschließend können auf dem Host-Computer 110 ausgeführte Prozesse in ähnlicher Weise, in der auf ein lokales Dateisystem am Host-Computer 110 zugegriffen wird, auf das Dateisystem im flüchtigen Speicher 202 zugreifen. Der Zugriff wird durch die Plattenschnittstellensteuereinrichtung 208 und eine entsprechende Plattenschnittstelle (beispielsweise die Plattenschnittstellensteuereinrichtung 112) am Host-Computer 110 erleichtert. Die Verarbeitungsstufen, in denen diese und andere Funktionalitäten erreicht werden, werden nachstehend beschrieben.
  • Andere als Beispiel dienende Ausführungsformen
  • Gemäß einer Ausführungsform fährt der Host-Computer nach dem Einschalten und der Grundinitialisierung damit fort, den lokal angeschlossenen Speicher zu identifizieren. Zum Identifizieren lokal angeschlossener Vorrichtungen gibt der Host-Computer typischerweise an seinen Schnittstellen Prüfbefehle aus. Beispielsweise initialisiert der Host-Computer 110 nach dem Einschalten und der Grundinitialisierung die Host-Plattensteuereinrichtung 112 und fährt damit fort, Prüfbefehle an Schnittstellen, einschließlich der Schnittstelle 130, auszugeben. Auf der Grundlage der auf die Prüfbefehle empfangenen Antworten kann der Host-Computer 110 Speichervorrichtungen, wie beispielsweise die HSD 120, identifizieren. Anschließend identifiziert der Host-Computer eine Boot-Vorrichtung, und ein Kernel wird gelesen und gestartet. Nachdem der Kernel gestartet wurde, kann der Host-Computer jeglichen angeschlossenen Speicher, einschließlich der HSD 120, installieren. Nach dem Installieren (Mounten) der RS 120 kann der Host-Computer 110 durch Ausgeben von Speicherbefehlen auf jedes Dateisystem zugreifen, das sich auf der HSD 120 befindet.
  • 3 zeigt eine Routine 300, welche es einer externen Vorrichtung, beispielsweise in der Art des Host-Computers 110, ermöglicht, auf ein Dateisystem zuzugreifen, das in einem flüchtigen Speicher in einer HSD, beispielsweise der HSD 120, enthalten ist (Schritte 301 bis 303). In Schritt 301 kann mit dem Initialisieren der HSD begonnen werden. Beispielsweise kann mit dem Initialisieren der HSD begonnen werden, wenn die HSD an einen Host-Computer angeschlossen wird, der bereits eingeschaltet ist, oder wenn ein Host-Computer eingeschaltet wird, der bereits an eine HSD angeschlossen ist. Eine Zerlegung von Schritt 301 kann weiter unten mit Bezug auf 4 gefunden werden. Ein erster Informationssatz (in der Art eines Dateisystems), der zuvor in einer Permanentspeichervorrichtung, beispielsweise in der Art der Permanentspeichervorrichtung 203, gespeichert war, wird in den flüchtigen Speicher der HSD, beispielsweise in der Art des flüchtigen Speichers 202, geladen. Der erste Informationssatz kann ein vollständiges Dateisystem, wie beispielsweise ein Root-Dateisystem, sein, das mit einem Dateisystemformat in der Art des Second Extended Filesystem (EXT2) kompatibel ist, jedoch nicht auf dieses beschränkt ist. Das Dateisystemformat definiert, wie die Daten in den Speichermedien organisiert sind. Das Laden kann bewirken, dass die Daten des Dateisystems in den flüchtigen Speicher gebracht und dekomprimiert werden. In Schritt 302 kann eine RAM-Disk im flüchtigen Speicher erzeugt werden, und die RAM-Disk kann mit dem von der Permanentspeichervorrichtung importierten Dateisystem belegt werden. Der flüchtige Speicher kann groß genug sein, um das gesamte dekomprimierte Dateisystem in einer RAM-Disk zu halten. Gemäß einer Ausführungsform kann die RAM-Disk in dem flüchtigen Speicher der HSD ein Root-Dateisystem, das entsprechend einem Dateisystemformat, wie EXT2, organisiert ist, und Datenstrukturen, die angeben, dass das durch diese RAM-Disk repräsentierte Speichervolumen eine bootfähige Speichervorrichtung ist, enthalten. Beispielsweise kann der Host-Computer erwarten, dass der erste Sektor einer bootfähigen Speichervorrichtung ein bestimmtes Daten-Flag aufweist, um anzugeben, dass die Vorrichtung bootfähig ist.
  • In Schritt 302 kann ein zweiter Informationssatz, typischerweise eine verhältnismäßig kleine Datenmenge aus dem ersten Informationssatz, aus dem flüchtigen Speicher in der HSD in den dynamischen Speicher im Host-Computer in der Art des lokalen RAMs 113 im Host-Computer 110 exportiert werden. Beispielsweise kann ein Teil einer Inode-Tabelle eines Dateisystems, d. h. Metadaten, welche das Dateisystem beschreiben, zum Host-Computer exportiert werden. Die Inode-Tabelle eines Dateisystems enthält Grundinformationen, die notwendig sind, um Dateien in dem Dateisystem zu identifizieren und auf diese zuzugreifen. Die Übertragung der Metadaten kann durch die HSD oder durch den Host-Computer eingeleitet werden. Die Übertragung nur der Metadaten zum lokalen RAM des Host-Computers ist infolge der Verringerung des zu übertragenden Datenvolumens im Allgemeinen viel schneller als das Übertragen von Dateien des Dateisystems.
  • Nach dem Empfang der Metadaten kann der Host-Computer in Schritt 303 auf das Dateisystem zugreifen. Beispielsweise kann der Kernel bei Linux-Systemen, sobald das anfängliche Kernel-Abbild die das Root-Dateisystem beschreibende Inode-Tabelle in der RAM-Disk empfängt, damit fortfahren, das Root-Dateisystem zu installieren. Nachdem das Root-Dateisystem installiert wurde, können Prozesse, die auf dem Host-Computer ausgeführt werden, damit beginnen, auf verschiedene Dateien im Root-Dateisystem zuzugreifen. Der Zugriff auf das Root-Dateisystem kann von dem Host-Computer ausgeführt werden, der Lese- und Schreibbefehle an die HSD ausgibt. Die Lese- und Schreibbefehle werden beispielsweise durch die Speicherschnittstellensteuereinrichtung 208 entsprechend dem gewählten Schnittstellenprotokoll verarbeitet.
  • Gemäß einer Ausführungsform, bei der das Linux-Betriebssystem verwendet wird, lokalisiert der Kernel nach dem Mounten der anfänglich benötigten Teile des Root-Dateisystems im Allgemeinen eine oder mehrere Dateien in dem Root-Dateisystem (beispielsweise/sbin/finit), die dann ausgeführt werden, um die Dienste und Benutzerprozesse zu initialisieren, welche einen großen Teil der Funktionalität des Host-Computers implementieren. Eine init-Datei wird entweder auf der Grundlage eines während des Bootens dem Kernel zugeführten Parameters oder dadurch, dass der Kernel an einer Reihe vorgegebener Stellen sucht, lokalisiert. Die durch die init-Datei eingeleiteten Prozesse können dann auf andere Dateien (beispielsweise/etc/rc.d bei manchen Linux- und Unix-Systemen) in dem Root-Dateisystem zugreifen, um andere Benutzerprozesse aufzurufen.
  • Jedes Mal dann, wenn der Kernel auf ein Verzeichnis zugreift, um eine Datei zu finden, zu lesen oder zu schreiben, werden die diese Datei (oder einen Teil dieser Datei) enthaltenden Speicherblöcke im Allgemeinen in den lokalen RAM gebracht. Wenn die Verarbeitung fortschreitet und der lokale RAM voll zu werden beginnt, kann ein Paging-System implementiert werden, das einige Datenblöcke aus dem lokalen RAM umlagert, um für von dem Dateisystem hereinkommende neue Datenblöcke Platz zu machen. Bei manchen Ausführungsformen der vorliegenden Erfindung können die Datenblöcke, die seitenweise aus dem lokalen Speicher ausgelagert werden, selektiv in einen Bereich im flüchtigen Speicher in der HSD geschrieben werden, falls dieser Block beispielsweise irgendwelche Aktualisierungen enthält. Das seitenweise Auslagern von Datenblöcken in den flüchtigen Speicher statt aus dem Plattenspeicher kann die Geschwindigkeit der Ausführung von Prozessen verbessern, indem die Häufigkeit verringert wird, mit der auf nichtflüchtige Speichermedien zugegriffen wird.
  • Bei Ausführungsformen der vorliegenden Erfindung befindet sich die gesamte Dateisystemverzeichnisstruktur (oder die notwendigen Teile davon), einschließlich der eigentlichen Dateien, zu der Zeit, zu der sie vom Kernel im Host-Computer benötigt werden, im Allgemeinen bereits im flüchtigen Speicher der HSD. Das sich im flüchtigen Speicher der HSD befindende Dateisystem erscheint dem Kernel als eine direkt angeschlossene Platte mit dem Root-Dateisystem. Daher kann der lokale RAM nur die Metadaten und nur Datenblöcke enthalten, die jenen entsprechen, auf die durch den Kernel oder verwandte Anwendungen tatsächlich zugegriffen wird. Dadurch, dass es nicht notwendig ist, das gesamte Root-Dateisystem oder erhebliche Teile davon im lokalen RAM zu halten, wird es möglich, dass der lokale RAM für zahlreiche andere Verarbeitungsaufgaben verwendet wird.
  • 4 zeigt Schritt 301 in weiteren Einzelheiten gemäß einigen Ausführungsformen der Erfindung. Nachdem die HSD Strom empfängt, wird der Prozessor der HSD in Schritt 401 initialisiert. Das Initialisieren des Prozessors wird im Allgemeinen durch Code eingeleitet, der sich in dem einfach als BIOS (Basic Input/Output System) bekannten Nurlesespeicher (ROM) befindet, und es kann standardmäßige Prozessoreinschaltschritte, wie beispielsweise und ohne Einschränkung einen Einschalt-Selbsttest, ein Initialisieren anderer Hardwarekomponenten, ein Initialisieren von Systemroutinen niederer Ebene, die das Betriebssystem (sobald geladen) verwenden kann, um auf verschiedene Vorrichtungen und Dienste, die durch den Prozessor bereitgestellt werden, zuzugreifen, und auch das Initialisieren von flüchtigem Onboard-Speicher und RAM der HSD einschließen. Beispielsweise kann die statische RAM-Vorrichtung 205 in der HSD 120 die BIOS-Befehle für den Beginn der Initialisierung der HSD speichern.
  • Die Schritte 402 und 403 können in jeder beliebigen Reihenfolge oder parallel ausgeführt werden. In Schritt 402 initialisiert der Prozessor der HSD die Speicherlaufwerk-Schnittstellensteuereinrichtung. Beispielsweise sei auf 2 zurück verweisend bemerkt, dass der Prozessor 201 Befehle für das Initialisieren der Speicherlaufwerk-Schnittstellensteuereinrichtung 208, die dafür vorgesehen ist, mit einer entsprechenden Plattensteuereinrichtung am Host-Computer 110 zu interagieren, ausführen kann. Die Speichervorrichtungs-Schnittstellensteuereinrichtung kann auf Prüfbefehle und Identifikationsbefehle, die vom Host-Computer empfangen werden, ansprechen, um den Host-Computer in die Lage zu versetzen, die HSD zu erkennen. Der Prozessor an der HSD kann auch den Typ und die Integrität der Permanentspeichervorrichtung feststellen und verwandte Funktionsfähigkeitsprüfungen ausführen. Beispielsweise kann der Prozessor sicherstellen, dass ein ladbares Dateisystem mit einer überprüfbaren Prüfsumme in der Permanentspeichervorrichtung verfügbar ist. Bei einer Ausführungsform kann diese Initialisierung beispielsweise und ohne Einschränkung das Initialisieren einer SATA-Steuereinrichtungs-Zustandsmaschine einschließen.
  • In Schritt 403 kann der Prozessor in der HSD ein Signal zum Kopieren eines Dateisystems von der Permanentspeichervorrichtung in den flüchtigen Speicher der HSD auslösen. Ein solches Signal kann auch vom Host-Computer ausgehen. Das Signal zum Laden des Dateisystems kann den Prozessor veranlassen, Befehle zum Laden des Dateisystems von der Permanentspeichervorrichtung in den flüchtigen Speicher und zum Dekomprimieren des Dateisystems im flüchtigen Speicher aufzurufen und auszuführen. Auf 2 zurück verweisend sei beispielsweise bemerkt, dass das Signal zum Kopieren des Dateisystems den Prozessor 201 veranlassen kann, die Programmlogik des Speicherlademoduls 209 auszuführen, um ein komprimiertes Dateisystem vollständig oder teilweise in den flüchtigen Speicher 202 zu laden und es darin zu entkomprimieren. Anschließend kann das im flüchtigen Speicher 202 vorhandene entkomprimierte Dateisystem für den Host-Computer 110 als ein anderes Plattenlaufwerk sichtbar sein, wobei der Zugriff auf dieses durch die Speicherlaufwerk-Schnittstellensteuereinrichtung 208 koordiniert wird. Gemäß einer Ausführungsform der vorliegenden Erfindung kann der erste Informationssatz ein im flüchtigen Speicher der HSD entkomprimiertes Root-Dateisystem, das entsprechend einem Dateisystemformat organisiert ist, zusammen mit Datenstrukturen im flüchtigen Speicher, um es dem Host-Computer zu ermöglichen, das Dateisystem im flüchtigen Speicher beispielsweise als ein bootfähiges Plattenspeichervolumen zu erkennen, aufweisen. Beispielsweise kann der Host-Computer erwarten, dass der erste Plattensektor eines bootfähigen Plattenvolumens einen Boot-Vorrichtungsindikator enthält, falls es bootfähig ist. Auf der Grundlage des Dateisystemformats und des Plattenschnittstellenprotokolls kann ein Boot-Vorrichtungsindikator geschrieben werden, beispielsweise in den Bereich in dem flüchtigen Speicher, der dem letzten Wort im ersten Sektor eines Plattenspeichermediums entspricht.
  • In Schritt 404 führt die HSD vom Host-Computer empfangene Speicherbefehle aus. Beispielsweise kann eine in Schritt 402 in der Speichervorrichtungs-Steuereinrichtung 208 initialisierte SATA-Steuereinrichtungs-Zustandsmaschine verwendet werden, um vom Host-Computer empfangene Lese- und Schreibbefehle zu empfangen und zu verarbeiten.
  • 5 ist eine Aufgliederung von Schritt 303 gemäß einer Ausführungsform der vorliegenden Erfindung. Nachdem die das Dateisystem betreffenden Metadaten in den lokalen RAM des Host-Computers übertragen worden sind, können die Prozesse des Host-Computers damit fortfahren, auf Dateien und Verzeichnisse des Dateisystems zuzugreifen. Beispielsweise kann in Schritt 501 ein auf dem Prozessor des Host-Computers ausgeführter Prozess einen Lese- oder Schreibvorgang an einer Datei in dem Dateisystem anfordern. In Schritt 502 wird die Inode-Tabelle geprüft, um festzustellen, ob der lokale RAM der HSD des Host-Computers bereits die erforderliche Datei oder einen Teil der Datei in seinem Speicher enthält. Falls sich die erforderliche Datei oder der Teil der Datei nicht im lokalen RAM befindet, würde die Inode-Tabelle auf das Vorhandensein der Daten in der entfernbaren Speichervorrichtung hinweisen.
  • In Schritt 503 stellt der Prozessor fest, dass sich die erforderlichen Daten in dem Dateisystem im flüchtigen Speicher der HSD befinden, und er leitet den Prozess des Übertragens der relevanten Datenblöcke in den lokalen RAM des Host-Computers ein. Es sei bemerkt, dass bei manchen Ausführungsformen das Dateisystem und die Verzeichnisstruktur, die im flüchtigen Speicher der HSD vorhanden sind, dem Host-Computer als eine Standard-Platten- und Verzeichnisstruktur erscheinen können. Beispielsweise können dem Host-Computer die HSD und ihre RAM-Disk als eine Platte erscheinen, auf die unter Verwendung einer SATA-Schnittstelle zugegriffen werden kann. Der in Schritt 503 enthaltene Übertragungsprozess wird nachstehend mit Bezug auf 6 weiter beschrieben. Sobald die erforderlichen Datenblöcke in Schritt 503 in den lokalen RAM des Host-Computers übertragen worden sind, wird das Lesen/Schreiben der Blöcke entsprechend den Vorrechten des aufrufenden Prozesses in Schritt 504 ermöglicht. Falls in Schritt 504 der aufrufende Prozess Schreibvorgänge an den Datenblöcken ausführt, werden bei manchen Ausführungsformen Aktualisierungen in Schritt 505 direkt in die entsprechenden Blöcke im flüchtigen Speicher der HSD geschrieben. Bei manchen anderen Ausführungsformen können in Schritt 504 vorgenommene Aktualisierungen nicht in einer kontinuierlichen direkten Weise ausgeführt werden und stattdessen in Zeitintervallen oder nach Empfang eines Befehls zum Sichern von Aktualisierungen von dem Benutzer ausgeführt werden.
  • Es sei bemerkt, dass die an dem flüchtigen Speicher in der HSD, beispielsweise in Schritt 505, vorgenommenen Aktualisierungen im flüchtigen Speicher verbleiben können, bis der Benutzer bei manchen Ausführungsformen einen Befehl zum Speichern der Aktualisierungen überträgt. Zum Speichern der Aktualisierungen werden die Inhalte des flüchtigen Speichers in dem geeigneten Format in die Permanentspeichervorrichtung geschrieben. Falls in der HSD ein Stromausfall auftritt (sie beispielsweise vorübergehend vom Host-Computer entkoppelt wird), kann eine Stromquelle, die mit dem flüchtigen Speicher der HSD verbunden ist, die Daten und Aktualisierungen bewahren, bis der Strom wiederhergestellt wurde oder bis die Aktualisierungen in die Permanentspeichervorrichtung geschrieben worden sind, falls sie dafür konfiguriert ist, dies auszuführen. Falls die Daten im flüchtigen Speicher in der HSD nicht durch eine Stromquelle an der HSD bewahrt worden sind, kann ein sauberes Dateisystem an der angeschlossenen HSD verfügbar sein, wenn der Host-Computer wieder initialisiert wird.
  • 6 zeigt eine Aufgliederung von Schritt 503, in dem Daten von dem flüchtigen Speicher der HSD in den lokalen RAM des Host-Computers geladen werden, gemäß einer Ausführungsform der vorliegenden Erfindung. Nach dem Empfang beispielsweise eines Schreibbefehls von einem Benutzerprozess zum Zugriff auf irgendwelche Daten und nach der Bestimmung, dass die Daten gegenwärtig nicht im lokalen RAM des Host-Computers vorhanden sind, ruft der im Prozessor des Host-Computers ausführende Kernel in Schritt 601 die Plattensteuereinrichtung auf, die für den Austausch mit der HSD verantwortlich ist. Die Host-Plattensteuereinrichtung erzeugt in Schritt 602 entsprechend dem für den Austausch mit der HSD verwendeten Protokoll einen Befehl. In Schritt 603 wird ein Befehl zum Abrufen der entsprechenden Datei durch die entsprechende Plattensteuereinrichtung in der HSD empfangen. In Schritt 604 kann der Prozessor der HSD den empfangenen Befehl verarbeiten, um ihn zu prüfen und in ein Format umzusetzen, das von den Programmen und Vorrichtungen in der HSD verstanden wird. Unter Verwendung des umgesetzten Befehls werden die geeigneten Daten in Schritt 605 von dem flüchtigen Speicher der HSD abgerufen. Die Daten werden dann in Schritt 606 durch den Prozessor in der HSD der Plattensteuerungsschnittstelle in der HSD zugeführt, um sie zum anfordernden Host-Computer zu übertragen. Die übertragenen Daten werden dann in Schritt 607 von der Plattensteuereinrichtung im Host-Computer empfangen und in den lokalen RAM im Host-Computer geladen. Der anfordernde Prozess kann nun auf die relevanten Daten im lokalen RAM des Host-Computers zugreifen.
  • Die HSD kann gemäß einer anderen Ausführungsform der vorliegenden Erfindung als ein Ort für einen virtuellen Speicher und/oder einen Paging-Speicher verwendet werden. Weil der flüchtige Speicher der HSD dem Host-Computer beispielsweise als ein Standardplattenlaufwerk präsentiert wird, kann der Host-Computer einen Teil seines virtuellen Speicherplatzes oder seinen gesamten virtuellen Speicherplatz in den flüchtigen Speicher der HSD abbilden. Ebenso kann der Host-Computer den flüchtigen Speicher der HSD verwenden, um Speicherseiten in seinen lokalen RAM oder aus diesem heraus umzulagern. Die Verwendung des flüchtigen Speichers der HSD kann zu einer verbesserten Leistungsfähigkeit gegenüber den herkömmlichen Ansätzen führen, bei denen eine lokale Permanentspeichervorrichtung als Ort für den virtuellen Speicher und den Paging-Speicher verwendet wird, weil Plattenzugriffe (oder allgemeiner Zugriffe auf Permanentspeichervorrichtungen) reduziert sind. Die Permanentspeichervorrichtung in der HSD bleibt bei diesen Anwendungen für den Host-Computer im Allgemeinen transparent.
  • In diesem Dokument ist eine HSD offenbart, die bei manchen Ausführungsformen ein komprimiertes Abbild eines Dateisystems aufweist, das schnell in einen flüchtigen Onboard-Speicher entkomprimiert werden kann, so dass auf das Dateisystem im flüchtigen Speicher im Wesentlichen in der gleichen Weise durch einen Host-Computer zugegriffen werden kann, in der er auf ein Plattenlaufwerk zugreifen würde. Wie vorstehend erwähnt wurde, kann eine Ausführungsform der Erfindung eine HSD sein, welche ein Root-Dateisystem enthält. Dadurch, dass sich das Root-Dateisystem in einem verhältnismäßig schnellen flüchtigen Speicher statt in einem verhältnismäßig langsamen Flash-Speicher befindet, werden die Zugriffslatenzen verbessert. Dadurch wird auch die Widerstandsfähigkeit des Systems für Sicherheitskompromisse verbessert, weil die Änderungen an dem Dateisystem im flüchtigen Speicher bleiben, bis eine spezifische Anweisung gegeben wird, sie im Permanentspeicher zu speichern. Dadurch werden die Einrichtungszeit und die Zeit für das Reparieren von Vorrichtungen, die konfigurierbare Root-Dateisysteme verwenden, verbessert. Ein weiterer Aspekt von Ausführungsformen der vorliegenden Erfindung besteht darin, dass nur eine geringe oder keine Modifikation des Programmcodes vieler Betriebssysteme erforderlich ist. Beispielsweise wird bei vielen Varianten von Linux eine gemäß den Lehren in dieser Offenbarung aufgebaute HSD vom Prozessor des Host-Computers als eine externe Platte erkannt und kann nur erfordern, dass die Schnittstelle, welche die HSD anschließt, beim Hochfahren als ein Parameter für den Kernel spezifiziert wird.
  • Zusätzlich kann der entfernbare Speicher verwendet werden, um andere Dateisysteme als Root-Dateisysteme zu speichern und auf diese zuzugreifen. Die HSD kann auch als eine schnelle Cache-Vorrichtung oder ein virtueller Speicher verwendet werden, um den lokalen Speicher eines Host-Computers zu ergänzen.
  • Im Folgenden wird ein Verfahren anhand von Ausführungsbeispielen erläutert.
  • Verfahren mit den folgenden Schritten:
    Verbinden einer Hybridspeichervorrichtung mit einem Host-Computer,
    Laden eines ersten Informationssatzes von einer Permanentspeichervorrichtung in eine flüchtige Speichervorrichtung und Organisieren des ersten Informationssatzes entsprechend einem vorgegebenen Format in der flüchtigen Speichervorrichtung, wobei sich die Permanentspeichervorrichtung und die flüchtige Speichervorrichtung in der Hybridspeichervorrichtung befinden,
    Bereitstellen von Metadaten, welche den ersten Informationssatz in der flüchtigen Speichervorrichtung beschreiben, für einen lokalen Direktzugriffsspeicher (lokalen RAM), wobei sich der lokale RAM im Host-Computer befindet, und
    Zugreifen auf einen zweiten Informationssatz unter Verwendung der Metadaten, die sich in dem lokalen RAM befinden, wobei der erste Informationssatz, der sich in der flüchtigen Speichervorrichtung befindet, den zweiten Informationssatz aufweist.
  • In diesem Verfahren kann das Laden eines ersten Informationssatzes aufweisen:
    Zugreifen auf ein komprimiertes Datenabbild, das sich in der Permanentspeichervorrichtung befindet, und
    Erzeugen eines entkomprimierten Datenabbilds anhand des komprimierten Datenabbilds, wobei sich das entkomprimierte Datenabbild in der flüchtigen Speichervorrichtung befindet.
  • Bei diesem Verfahren kann der erste Informationssatz ein Root-Dateisystem weiterhin aufweisen.
  • Bei diesem Verfahren kann das Zugreifen auf einen zweiten Informationssatz weiterhin aufweisen:
    Prüfen des Vorhandenseins eines Zieldatenblocks im lokalen RAM, wobei der Zieldatenblock den zweiten Informationssatz aufweist,
    Laden des Zieldatenblocks von der flüchtigen Speichervorrichtung in den lokalen RAM,
    Schreiben in den Zielblock in dem lokalen RAM und
    Aktualisieren des Zielblocks in der flüchtigen Speichervorrichtung.
  • Ferner kann das Verfahren folgende Schritte aufweisen:
    Verbinden einer Hybridspeichervorrichtung mit einem Host-Computer,
    Laden eines ersten Informationssatzes von einer Permanentspeichervorrichtung in eine flüchtige Speichervorrichtung und organisieren des ersten Informationssatzes entsprechend einem vorgegebenen Format, wobei sich die Permanentspeichervorrichtung und die flüchtige Speichervorrichtung in der Hybridspeichervorrichtung befinden,
    Laden von Zugriffsinformationen in einen lokalen Direktzugriffsspeicher (lokalen RAM), wobei sich der lokale RAM in dem Host-Computer befindet, und wobei die Zugriffsinformationen Informationen aufweisen, die erforderlich sind, um auf den ersten Informationssatz im flüchtigen Speicher zuzugreifen, und
    Schreiben eines zweiten Informationssatzes von dem lokalen RAM unter Verwendung der sich im lokalen RAM befindenden Zugriffsinformationen in die flüchtige Speichervorrichtung.
  • Die Abschnitte Überblick und Zusammenfassung können eine oder mehrere, jedoch nicht alle als Beispiel dienenden Ausführungsformen der vorliegenden Erfindung, die von den Erfindern vorgesehen sind, darlegen, und sie sollen die vorliegende Erfindung und die anliegenden Ansprüche daher in keiner Weise einschränken.
  • Die vorliegende Erfindung wurde vorstehend mit Hilfe von Funktionsblöcken beschrieben, welche die Implementation spezifischer Funktionen und Beziehungen davon erläutern. Die Grenzen dieser Funktionsblöcke wurden hier zur Vereinfachung der Beschreibung beliebig definiert. Alternative Grenzen können definiert werden, solange ihre spezifizierten Funktionen und Beziehungen geeignet ausgeführt werden.
  • Die vorstehende Beschreibung der spezifischen Ausführungsformen offenbart die allgemeine Natur der Erfindung so weit, dass andere durch Anwenden durchschnittlicher Kenntnisse auf dem Fachgebiet sie ohne erhebliches Ausprobieren leicht für verschiedene Anwendungen dieser spezifischen Ausführungsformen modifizieren und/oder anpassen können, ohne vom allgemeinen Konzept der vorliegenden Erfindung abzuweichen. Daher sollen diese Anpassungen und Modifikationen auf der Grundlage der hier vorgestellten Lehren und Anleitungen innerhalb der Bedeutung und des Bereichs gleichwertiger Ausgestaltungen der offenbarten Ausführungsformen liegen. Es sei bemerkt, dass die Phraseologie oder die Terminologie, die hier verwendet wird, der Beschreibung dient und nicht als einschränkend anzusehen ist, so dass die Terminologie oder Phraseologie der vorliegenden Beschreibung durch Fachleute unter Betrachtung der Lehren und Anleitungen zu interpretieren ist.
  • Der Geltungsbereich und der Schutzumfang der vorliegenden Erfindung sollen nicht durch irgendwelche der vorstehend beschriebenen als Beispiel dienenden Ausführungsformen sondern nur durch die folgenden Ansprüche und ihre Entsprechungen beschränkt sein.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • IEEE-1149.1-Standard [0031]

Claims (14)

  1. Hybridspeichervorrichtung mit: einer Permanentspeichervorrichtung, einer flüchtigen Speichervorrichtung, einem Prozessor, wobei die Permanentspeichervorrichtung und die flüchtige Speichervorrichtung mit dem Prozessor verbunden sind, einem Speicherlademodul, das es dem Prozessor ermöglicht, einen ersten Informationssatz von der Permanentspeichervorrichtung zu laden und den ersten Informationssatz entsprechend einem vorgegebenen Format in der flüchtigen Speichervorrichtung zu organisieren, und einem Speicherlaufwerk-Schnittstellensteuermodul, das es dem Prozessor ermöglicht, Informationszugriffsanforderungen von einem mit der Hybridspeichervorrichtung verbundenen Host-Computer zu empfangen, auf die Informationszugriffsanforderungen unter Verwendung des ersten Informationssatzes in der flüchtigen Speichervorrichtung zu antworten und dem Host-Computer Metadaten bereitzustellen, welche den ersten Informationssatz beschreiben, wobei der Host-Computer in die Lage versetzt ist, auf den ersten Informationssatz unter Verwendung der Metadaten zuzugreifen, ohne dass sich der erste Informationssatz in einem lokalen Speicher des Host-Computers befindet, und wobei die Zeit, die der Host-Computer benötigt, um auf den ersten Informationssatz zuzugreifen, dadurch verringert wird, dass der erste Informationssatz in der flüchtigen Speichervorrichtung gespeichert ist.
  2. Hybridspeichervorrichtung nach Anspruch 1, wobei der erste Informationssatz ein Dateisystem aufweist und wobei das vorgegebene Format ein Dateisystemformat ist.
  3. Hybridspeichervorrichtung nach Anspruch 2, wobei das Dateisystem ein Root-Dateisystem ist.
  4. Hybridspeichervorrichtung nach Anspruch 2, wobei der erste Informationssatz ferner einen dem Dateisystemformat entsprechenden Boot-Vorrichtungsindikator aufweist.
  5. Hybridspeichervorrichtung nach Anspruch 1, wobei Informationszugriffsanforderungen Speicherdienstbefehle aufweisen.
  6. Vorrichtung nach Anspruch 1, wobei die Permanentspeichervorrichtung ein Festkörperspeichermedium aufweist.
  7. Hybridspeichervorrichtung nach Anspruch 1, wobei der Prozessor ein Feld-programmierbares Gate-Array (FPGA) aufweist.
  8. Hybridspeichervorrichtung nach Anspruch 1 ferner mit: einer statischen Direktzugriffsspeichervorrichtung (statischen RAM-Vorrichtung), wobei die statische RAM-Vorrichtung mit dem Prozessor verbunden ist.
  9. Hybridspeichervorrichtung nach Anspruch 1 ferner mit: einer Konfigurationsvorrichtung, wobei die Konfigurationsvorrichtung mit dem Prozessor verbunden ist und wobei die Konfigurationsvorrichtung verwendet wird, um die Permanentspeichervorrichtung zu konfigurieren.
  10. Hybridspeichervorrichtung nach Anspruch 1 ferner mit: einer Stromverteilungsvorrichtung, welche der Vorrichtung Strom zuführt.
  11. Hybridspeichervorrichtung nach Anspruch 10, wobei die Stromverteilungsvorrichtung eine Batterieladung aufweist und wobei die Vorrichtung von der Batterieladung mit Strom versorgt wird.
  12. Hybridspeichervorrichtung nach Anspruch 1 ferner mit: einer Reservestromquelle, die mit der flüchtigen Speichervorrichtung verbunden ist, wobei die Reservestromquelle im Fall eines Stromausfalls in der Vorrichtung der flüchtigen Speichervorrichtung Strom zuführt, wodurch der erste Informationssatz in der flüchtigen Speichervorrichtung bewahrt wird, so dass die Zeit verringert wird, die erforderlich ist, um die ersten Informationen dem Host-Computer zur Verfügung zu stellen.
  13. Hybridspeichervorrichtung nach Anspruch 1 ferner mit einer Statusüberwachungsvorrichtung, wobei die Statusüberwachungsvorrichtung einen oder mehrere von dem Prozessor, der Permanentspeichervorrichtung, der flüchtigen Speichervorrichtung, dem Speicherlademodul und der Speicherlaufwerk-Schnittstellensteuereinrichtung überwacht.
  14. System mit: einem Host-Computer und einer Hybridspeichervorrichtung, die mit dem Host-Computer verbunden ist, wobei die Hybridspeichervorrichtung aufweist: eine Permanentspeichervorrichtung, eine flüchtige Speichervorrichtung, einen Prozessor, wobei die Permanentspeichervorrichtung und die flüchtige Speichervorrichtung mit dem Prozessor verbunden sind, ein Speicherlademodul, das es dem Prozessor ermöglicht, einen ersten Informationssatz von der Permanentspeichervorrichtung zu laden und den ersten Informationssatz entsprechend einem vorgegebenen Format in der flüchtigen Speichervorrichtung zu organisieren, und eine Speicherlaufwerk-Schnittstellensteuereinrichtung, die es dem Prozessor ermöglicht, Informationszugriffsanforderungen von dem Host-Computer zu empfangen, auf die Informationszugriffsanforderungen unter Verwendung des ersten Informationssatzes in dem flüchtigen Speicher zu antworten und dem Host-Computer Metadaten bereitzustellen, welche den ersten Informationssatz beschreiben, wobei der Host-Computer in die Lage versetzt ist, auf den ersten Informationssatz unter Verwendung der Metadaten zuzugreifen, ohne dass sich der erste Informationssatz in einem lokalen Speicher des Host-Computers befindet, und wobei die Zeit, die der Host-Computer benötigt, um auf den ersten Informationssatz zuzugreifen, dadurch verringert wird, dass sich der erste Informationssatz in dem flüchtigen Speicher befindet.
DE202010017644U 2009-03-20 2010-03-19 Hybridspeichervorrichtung Expired - Lifetime DE202010017644U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US408036 1989-09-15
US12/408,036 US20100241815A1 (en) 2009-03-20 2009-03-20 Hybrid Storage Device

Publications (1)

Publication Number Publication Date
DE202010017644U1 true DE202010017644U1 (de) 2012-03-23

Family

ID=42173321

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202010017644U Expired - Lifetime DE202010017644U1 (de) 2009-03-20 2010-03-19 Hybridspeichervorrichtung

Country Status (6)

Country Link
US (1) US20100241815A1 (de)
EP (1) EP2409216A1 (de)
CN (1) CN102439557A (de)
AU (1) AU2010226518A1 (de)
DE (1) DE202010017644U1 (de)
WO (1) WO2010108102A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120079313A1 (en) * 2010-09-24 2012-03-29 Honeywell International Inc. Distributed memory array supporting random access and file storage operations
TWI450194B (zh) * 2011-11-10 2014-08-21 Inst Information Industry 作業系統處理方法以及系統、以及儲存其之電腦可讀取記錄媒體
CN102523270B (zh) * 2011-12-09 2015-05-13 成都东方盛行电子有限责任公司 一种实现云存储的方法
US9329931B2 (en) * 2013-07-24 2016-05-03 Seagate Technology Llc Solid state drive emergency pre-boot application providing expanded data recovery function
CN103811051B (zh) * 2014-02-17 2017-01-11 上海新储集成电路有限公司 一种分层存储器阵列及其工作方法
US9715453B2 (en) * 2014-12-11 2017-07-25 Intel Corporation Computing method and apparatus with persistent memory
CN106933494B (zh) * 2015-12-31 2019-10-18 伊姆西公司 混合存储设备的操作方法和装置
KR102466412B1 (ko) * 2016-01-14 2022-11-15 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
EP3433751A4 (de) * 2016-08-22 2019-12-11 Hewlett-Packard Development Company, L.P. Informationen aus angeschlossenen vorrichtungen
US10936045B2 (en) * 2016-09-26 2021-03-02 Hewlett-Packard Development Company, L.P. Update memory management information to boot an electronic device from a reduced power mode
CN111880846B (zh) * 2020-06-04 2023-12-15 普联国际有限公司 嵌入式系统快速启动方法、装置及设备

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7047356B2 (en) * 2000-10-30 2006-05-16 Jack Yajie Chen Storage controller with the disk drive and the RAM in a hybrid architecture
US20030061352A1 (en) * 2001-09-27 2003-03-27 International Business Machines Corporation Optimized file cache organization in a network server
CN1304942C (zh) * 2002-04-30 2007-03-14 陈冠豪 硬性介质与随机存储器混合式驱动器以及存储器
JP2005166155A (ja) * 2003-12-02 2005-06-23 Hitachi-Lg Data Storage Inc 光ディスクドライブ装置
US7984316B2 (en) * 2004-02-24 2011-07-19 Paul Kaler Solid state disk with hot-swappable components
US20110145489A1 (en) * 2004-04-05 2011-06-16 Super Talent Electronics, Inc. Hybrid storage device
US7451303B2 (en) * 2004-11-18 2008-11-11 Ford Motor Company Method and system for booting remote computing systems from an operating system image and creating symbolic links for data files
FI119664B (fi) * 2004-12-08 2009-01-30 Open Invention Network Llc Menetelmä elektronisissa laitteissa oleviin tiedostoihin pääsemiseksi
TW200739349A (en) * 2006-04-12 2007-10-16 Giga Byte Tech Co Ltd Volatile storage device and serial connection type mixed storage device having the same
US7424587B2 (en) * 2006-05-23 2008-09-09 Dataram, Inc. Methods for managing data writes and reads to a hybrid solid-state disk drive
US7865679B2 (en) * 2007-07-25 2011-01-04 AgigA Tech Inc., 12700 Power interrupt recovery in a hybrid memory subsystem
US8074034B2 (en) * 2007-07-25 2011-12-06 Agiga Tech Inc. Hybrid nonvolatile ram
US9727452B2 (en) * 2007-12-14 2017-08-08 Virident Systems, Llc Distributing metadata across multiple different disruption regions within an asymmetric memory system
US8032689B2 (en) * 2007-12-18 2011-10-04 Hitachi Global Storage Technologies Netherlands, B.V. Techniques for data storage device virtualization
US9354857B2 (en) * 2008-03-19 2016-05-31 Lenovo (Singapore) Pte. Ltd. System and method to update firmware on a hybrid drive
US8239613B2 (en) * 2008-12-30 2012-08-07 Intel Corporation Hybrid memory device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IEEE-1149.1-Standard

Also Published As

Publication number Publication date
WO2010108102A1 (en) 2010-09-23
US20100241815A1 (en) 2010-09-23
CN102439557A (zh) 2012-05-02
AU2010226518A1 (en) 2011-11-03
EP2409216A1 (de) 2012-01-25

Similar Documents

Publication Publication Date Title
DE202010017644U1 (de) Hybridspeichervorrichtung
DE112011104356B4 (de) Aktualisieren von Software-Images auf der Grundlage von Streaming-Technik
DE60037606T2 (de) Rechner mit urladungsfähigem sicherem Programm
DE10297281B4 (de) Verfahren zum elementaren Aktualisieren einer Vielzahl von Dateien
DE112012004893B4 (de) Implementieren eines Software-Abbildes auf mehreren Zielen unter Verwendung einer Datenstromtechnik
DE112013000900B4 (de) Bewahren von Redundanz in Datendeduplizierungssystemen unter Verwendung eines Anzeigers
DE102006006046A1 (de) Verwenden einer USB-Speichervorrichtung, um ein Betriebssystem wiederherzustellen
DE112011103880T5 (de) Direktes Migrieren von Software-Abbildern mit Streaming-Technik
DE10393859B4 (de) Entkoppelter Hardwarekonfigurationsmanager
DE112009000612T5 (de) Multi-Betriebssystem-Booteinrichtung (OS), Multi-OS-Boot-Programm, Aufzeichnungsmedium und Multi-OS-Bootverfahren
DE112012005118T5 (de) Sichern von Firmware während der Initialisierung einer Einheit
DE102005037855A1 (de) System und Verfahren zum Speichern von Benutzerdaten in einer Partitionsdatei oder zum Verwenden einer Partitionsdatei, die Benutzerdaten enthält
DE102016010277A1 (de) Verfahren und systeme zum verbessern von speicher-journaling
DE112011101929T5 (de) Aktivieren der Steuerung eines Hypervisor in einer Cloud-Datenverarbeitungsumgebung
DE202015101633U1 (de) Computersystem und Speichervorrichtung
DE112009002207T5 (de) Aktualisieren einer Firmware mit mehreren Prozessoren
EP2807558A1 (de) Speichercontroller zur bereitstellung mehrerer definierter bereiche eines massenspeichermediums als unabhängige massenspeicher an einen master-betriebssystem - kern zur exklusiven bereitstellung an virutelle maschinen
DE112011105687T5 (de) Verwendung eines Option-ROM-Speichers
DE202015009482U1 (de) System einer Festplattenvollverschlüsselung mit Prüfung der Kompatibilität der Boot-Platte
DE102014003687A1 (de) Vorrichtung und verfahren zum schutz von digitalem inhalt
DE102010006148A1 (de) Verfahren zum Reagieren auf einen Befehl zum Löschen einer Datei und Datenspeichervorrichtung
DE112019000399T5 (de) Schnelle wiederherstellung nach ausfällen in einem chronologisch geordneten log-strukturierten schlüssel-wert-speichersystem
DE60019364T2 (de) Speicherdefragmentierung in Chipkarten
DE102008059352A1 (de) Speicherzugriff auf einen portablen Datenträger
DE102008015272A1 (de) Speichervorrichtung und Verfahren zum Schützen ihrer Partition

Legal Events

Date Code Title Description
R123 Application deemed withdrawn due to non-payment of filing fee
R409 Internal rectification of the legal status completed
R409 Internal rectification of the legal status completed
R207 Utility model specification

Effective date: 20121004

R150 Term of protection extended to 6 years

Effective date: 20130227

R157 Lapse of ip right after 6 years