-
Die vorliegende Offenlegung bezieht sich auf Fehlerverwaltungstopologien.
-
Ein gewöhnliches Computersystem kann einen Host-Prozessor umfassen, der ein oder mehrere Betriebssysteme und Anwendungen ausführt, und kann zu Lese- und Schreibtransaktionen zu einem Zielspeichersystem im Stande sein. In dem gewöhnlichen Computersystem kann ein Schreibvorgang zur Zielspeichervorrichtung auf einen Fehler stoßen. Das gewöhnliche System ist nicht im Stande, basierend auf Systemrichtlinieninformationen einen Schreibfehler aufzulösen. Des Weiteren kann das Host-System Systemspeicher umfassen und das Host-System kann auf einen kritischen Fehler stoßen. Das gewöhnliche System ist außer Stande, den kritischen Fehler aufzulösen, um die Inhalte des Systemspeichers abzurufen.
-
Der Wikipedia-Artikel „Backup” mit Stand vom 17.03.2006, im Internet auffindbar unter http://en.wikipedia.org/w/index.php?title=Backup&oldid=44266486 offenbart Verfahren zur Sicherung von Daten. Unter anderem wird beschrieben, dass im Rahmen eines Backups auf einem entfernten Medium eine Kopie von Originaldaten angelegt wird. Im Falle eines Verlusts der Originaldaten können die Daten sodann wiedergewonnen werden.
-
Es ist die Aufgabe der vorliegenden Erfindung, eine Verwaltung von derartigen kritischen Fehlern bereitzustellen und es einem System zu ermöglichen, den kritischen Fehler aufzulösen.
-
Diese Aufgabe wird durch eine Vorrichtung gemäß Anspruch 1, ein System gemäß Anspruch 3, einen Speicherdatenträger gemäß Anspruch 6 sowie ein Verfahren gemäß Anspruch 9 gelöst. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche.
-
Merkmale und Vorteile von Ausführungsformen des beanspruchten Gegenstands werden klar, wenn die folgende detaillierte Beschreibung fortschreitet, und durch Bezug auf die Zeichnungen, in denen gleiche Bezugszeichen gleiche Teile wiedergeben, und in denen:
-
1 ein Diagramm ist, das eine Systemausführungsform darstellt;
-
2 ein Diagramm ist, das einen Plattformverwaltungscontroller entsprechend einer Ausführungsform darstellt;
-
3 ein Diagramm ist, das eine weitere Systemausführungsform darstellt;
-
4 ein Diagramm ist, das beispielhafte Operationen entsprechend einer Ausführungsform darstellt;
-
5 ein Diagramm ist, das eine weitere Systemausführungsform darstellt;
-
6 ein Diagramm ist, das beispielhafte Operationen entsprechend einer weiteren Ausführungsform darstellt;
-
7 ein Diagramm ist, das eine weitere Systemausführungsform darstellt;
-
8 ein Diagramm ist, das beispielhafte Operationen entsprechend einer weiteren Ausführungsform darstellt;
-
9 ein Diagramm ist, das eine weitere Systemausführungsform darstellt;
-
10 eine weitere Systemausführungsform des beanspruchten Gegenstands darstellt;
-
11 ein Diagramm ist, das beispielhafte Operationen entsprechend einer weiteren Ausführungsform darstellt; und
-
12 ein Diagramm ist, das beispielhafte Operationen entsprechend einer weiteren Ausführungsform darstellt.
-
Obwohl die folgende detaillierte Beschreibung im Verlauf Bezug auf darstellende Ausführungsformen nimmt, sind dem Fachmann zahlreiche Alternativen, Modifikationen und Variationen davon verständlich. Entsprechend ist beabsichtigt, dass der beanspruchte Gegenstand breitgefächert betrachtet und nur so definiert wird, wie in den begleitenden Ansprüchen dargelegt ist.
-
1 stellt eine Systemausführungsform 100 des beanspruchten Gegenstands dar. Das System 100 kann allgemein einen Host-Prozessor 112, einen ersten Bus 122, einen zweiten Bus 126, ein Benutzerschnittstellensystem 116, einen Chipsatz 114, Systemspeicher 121, Plattformverwaltungscontrollerschaltung 110 und Flash-Speicher 106 umfassen. Diese Ausführungsform kann ebenfalls eine Speichervorrichtung 118 umfassen. Die Speichervorrichtung 118 kann z. B. einen magnetischen, optischen und/oder Halbleiterdatenträger, z. B. eine Festplattenvorrichtung, umfassen. Der Host-Prozessor 112 kann eine Vielzahl von im Stand der Technik bekannten Prozessoren, wie z. B. einen Intel® Pentium® IV-Prozessor, der vom Abtretungsempfänger der vorliegenden Anmeldung kommerziell verfügbar ist, umfassen. Die Busse 122, 126 können unterschiedliche Bustypen umfassen, um Daten und Anweisungen zu übertragen. So kann z. B. Bus 122 die Peripheral Component Interconnect (PCI) ExpressTM Basisspezifikation, Revision 1.0, veröffentlicht am 22. Juli 2002, verfügbar von der PCI Special Interest Group, Portland, Oregan, U.S.A. (nachfolgend als ein „PCI-ExpressTM-Bus” bezeichnet), erfüllen. Der Bus 126 kann eine Serial Peripheral Interface (SPI) Spezifikation (nachfolgend als ein „SPI-Bus” bezeichnet) umfassen/erfüllen. Prozessor 112, Systemspeicher 121, Chipsatz 114, Busse 122 und 126, Flash-Speicher 106 und Plattformverwaltungscontrollerschaltung 110 können auf einer einzigen Platine enthalten sein, wie z. B. einem Motherboard 132, und diese Komponenten können kollektiv oder einzeln ein Host-System formen.
-
Die Benutzerschnittstelle 116 kann eine Vielzahl von Vorrichtungen für menschliche Benutzer zur Eingabe von Anweisungen und/oder Daten und zum Überwachen des System, wie z. B. eine Tastatur, eine Zeigevorrichtung und eine Videoanzeige, umfassen. Der Chipsatz 114 kann ein Host-Bridge/Hub-System (nicht gezeigt) umfassen, das den Prozessor 112. Systemspeicher 121, Benutzerschnittstellensystem 116, Speichervorrichtung 118 und Plattformverwaltungscontrollerschaltung 110 miteinander und an den Bus 122 koppelt. Der Chipsatz 114 kann ebenfalls im Stande sein, Flash-Speicher 106, Host-Prozessor 112, Systemspeicher 121 und Plattformverwaltungscontrollerschaltung 110 miteinander und an den Bus 126 zu koppeln. Der Chipsatz 114 kann integrierte Schaltungschips, wie z. B. die, die aus den integrierten Schaltungschipsätzen, die vom Abtretungsempfänger der vorliegenden Anmeldung kommerziell verfügbar sind, ausgewählt wurden (z. B. graphische Speicher- und I/O-Controller-Hub-Chipsätze), umfassen, auch wenn andere integrierte Schaltungschips ebenfalls oder alternativ genutzt werden können.
-
Der Systemspeicher 121 kann einen oder mehrere der folgenden Speichertypen umfassen: Halbleiter-Firmware-Speicher, programmierbaren Speicher, nicht tüchtigen Speicher, Festwertspeicher, elektrisch programmierbaren Speicher, Direktzugriffsspeicher, Flash-Speicher (der z. B. NAND- oder NOR-Typ-Speicherstrukturen umfassen kann), Magnetplattenspeicher und/oder optischen Plattenspeicher. In dieser Ausführungsform kann der Speicher 106 einen Flash-Speicher umfassen. Entweder zusätzlich oder alternativ können die Speicher 121 und/oder 106 andere und/oder später entwickelte computerlesbare Speichertypen umfassen. Maschinenlesbare Firmware-Programminstruktionen können in Speichern 121 und/oder 106 gespeichert sein. Wie unten beschrieben, kann auf/können diese Instruktionen durch den Host-Prozessor 112 und/oder Plattformverwaltungscontroller 110 zugegriffen und ausgeführt werden. Diese Instruktionen können, wenn sie von dem Host-Prozessor 112 und/oder Plattformverwaltungscontroller 110 ausgeführt werden, darin resultieren, dass der Host-Prozessor 112 und/oder Plattformverwaltungscontroller 110 die Operationen durchführt, die hier, als würden sie durch den Host-Prozessor 112 und/oder die Plattformverwaltungscontrollerschaltung 110 durchgeführt, beschrieben werden.
-
Der Host-Prozessor 112 kann neben anderen Dingen im Stande sein, einen oder mehrere Eingabe-/Ausgabe(I/O)-Vorgänge zum Lesen und/oder Schreiben von Daten auf die der von der Zielspeichervorrichtung 118 zu generieren. Die Zielspeichervorrichtung kann z. B. eine lokale Speichervorrichtung (z. B. eine an das Host-System 100 gekoppelte lokale Vorrichtung) und/oder eine entfernte Speichervorrichtung umfassen. Alternativ oder zusätzliche kann die Speichervorrichtung 118 ein oder mehrere Redundant Array of Independent Disks (RAID) und/oder periphere Vorrichtungen aufweisen. Der Host-Prozessor 112 kann diese I/O-Vorgänge als Antwort auf z. B. Boot-Operationen des Host-Systems, Betriebssystem (OS)-Operationen und/oder Anwendungen (z. B. Softwareanwendungen, die eine oder mehrere Instruktionen auf dem Host-Prozessor 112 ausführen und/oder Firmware-Instruktionen, die auf dem Host-System laufen) generieren. Alternativ oder zusätzlich können Zusatzvorrichtungen, wie z. B. an das Host-System 132 gekoppelte Zusatzkarten (nicht gezeigt) und/oder entfernte Anwendungen (nicht gezeigt), im Stande sein, einen oder mehrere Eingabe-/Ausgabc(I/O)-Vorgänge zum Lesen und/oder Schreiben von Daten auf die oder von der Speichervorrichtung 118 zu generieren.
-
Die Plattformverwaltungscontrollerschaltung 110 kann im Stande sein, den Lese- und/oder Schreibzugriff auf die Speichervorrichtung 118 über den Bus 122 zu kontrollieren. Wie hier in jeder Ausführungsform verwendet, kann „Schaltung” z. B. eine selbstständig oder in jeder Kombination festverdrahtete Schaltung, programmierbare Schaltung, Zustandsautomatenschaltung und/oder Firmware, die auf programmierbarer Schaltung ausgeführte Instruktionen speichert, aufweisen. Ebenfalls kann hier in jeder Ausführungsform die Schaltung 110 als eine oder mehrere integrierte Schaltungen ausgeführt sein und/oder einen Teil davon bilden. Wie hier in beliebigen Ausführungsformen verwendet, meint „integrierte Schaltung” eine Halbleitervorrichtung und/oder mikroelektronische Vorrichtung, wie z. B. einen integrierten Halbleiterschaltungschip. Wie hier detaillierter beschrieben wird, kann Schaltung 110 ebenfalls im Stande sein, einen Schreibfehler auf Speichervorrichtung 118 aufzufinden und erneut ein Datenschreiben auf einen anderen Bereich der Speichervorrichtung 118 abzubilden. Als Antwort auf eine Leseanfrage kann Schaltung 110 im Stande sein, die Datenleseanfrage auf den anderen Bereich auf der Speichervorrichtung, in dem die Daten als ein Resultat der Operation des erneuten Abbildens, die von der Schaltung 110 durchgeführt wird, angesiedelt sein können, umzuleiten.
-
Die Plattformverwaltungscontrollerschaltung 110 kann ebenfalls im Stande sein, mit einem oder mehreren entfernten Systemen 140 über ein Netzwerk 124 und eine Nachrichtenverbindung 125 zu kommunizieren. Das entfernte System 140 kann z. B. ein entferntes Server-System oder eine entfernte Workstation (die ähnlich zum Host-System 132 sein kann) aufweisen, die eine oder mehrere Speichervorrichtungen und/oder ein Speicher-Array (das z. B. ein Speicher-Array aufweisen kann, das an ein oder mehrere entfernte Systeme gekoppelt ist und von diesen kontrolliert wird) aufweisen kann. In dieser Ausführungsform kann das entfernte System 140 im Stande sein, Daten, die auf der Speichervorrichtung 118 gespeichert sind, zumindest teilweise zu speichern. Wie später detaillierter beschrieben wird, kann die Plattformverwaltungsschaltung 110 im Stande sein, den Lese- und/oder Schreibzugriff auf ein oder mehrere entfernte Systeme 140 zumindest teilweise basierend auf einem Lese- und/oder Schreibzugriff auf die Speichervorrichtung 118 zu kontrollieren. In dieser Ausführungsform kann Schaltung 110 z. B. im Stande sein, einen Schreibfehler auf Speichervorrichtung 118 aufzufinden. Die Schaltung 110 kann ebenfalls im Stande sein, festzustellen, oh sich die dem Schreibfehler zugeordneten Daten auf einem oder mehreren entfernten Systemen 140 befinden, und, falls dem so ist, eine Abbildung auf die Daten auf dem entfernten System 140 zu erzeugen. Als Antwort auf eine Leseanfrage kann Schaltung 110 im Stande sein, die Daten von dem entfernten System 140 abzurufen.
-
Die Plattformverwaltungscontrollerschaltung 110 kann im Stande sein, den Lese- und/oder Schreibzugriff auf den Systemspeicher 121 über den Bus 122 und den Chipsatz 114 zu kontrollieren. Die Schaltung 110 kann ebenfalls im Stande sein, mindestens einen kritischen Fehler auf dem Host-System zu detektieren und die Inhalte des Systemspeichers 121 zu lesen. Ein „kritischer Fehler”, wie hier in jeder Ausführungsform verwendet wird, kann eine Bedingung aufweisen, die den Host-Prozessor 112 und/oder ein auf dem Host-Prozessor laufendes OS oder Anwendung und/oder Boot-Instruktionen (die im Flash-Speicher 106 gespeichert sein können) dazu veranlassen, die beabsichtigte Durchführung zu stoppen (und die das Host-System 132 inoperabel machen kann). Die Schaltung 110 kann ebenfalls im Stande sein, die Inhalte des Systemspeichers 121 auf die Speichervorrichtung 118 und/oder auf ein oder mehrere entfernte Systeme 140 zu schreiben.
-
Die Plattformverwaltungscontrollerschaltung 110 kann ebenfalls im Stande sein, Out-of-Band (OOB)-Lese- und/oder Schreiboperationen auf 106 und/oder Speichervorrichtung 118 zu generieren. OOB-Lese- und/oder Schreiboperationen können z. B. eine oder mehrere Lese- und/oder Schreiboperationen aufweisen, die unabhängig von einem OS, das durch den Host-Prozessor im Host-System 132 ausgeführt wird, durchgeführt werden.
-
2 ist ein Diagramm, das detaillierter die Plattformverwaltungscontrollerschaltung 110 darstellt. In 2 wurden bestimmte Teile des in 1 dargestellten System 100 um der Klarheit willen ausgelassen (z. B. Platine 132), es ist aber verständlich, dass gleiche Teile aus 2 in einer Weise, die mit einer in 1 dargestellten Ausführungsform konsistent ist, oder alternativ in anderen Systemimplementierungen implementiert werden können, ohne von dieser Ausführungsform abzuweichen. Die Schaltung 110 kann eine Prozessorschaltung 204 umfassen, die im Stande sein kann, Operationen durchzuführen, die hier als zugehörig zur Plattformschaltung 110 beschrieben werden. Die Prozessorschaltung 204 kann eine entsprechende Schaltung aufweisen, die mit der Intel® XScaleTM Core-Mikroarchitektur, die in „Intel® XScaleTM Core Developers Manual”, veröffentlicht Dezember 2000 durch den Abtretungsempfänger der vorliegenden Anmeldung, beschrieben wurde, kompatibel ist oder diese erfüllt. Natürlich kann die Prozessorschaltung 204 andere Prozessorkernschaltungstypen aufweisen, ohne von dieser Ausführungsform abzuweichen. Die Schaltung 110 kann ebenfalls Speicher 210 umfassen. Der Speicher 210 kann z. B. computerlesharen Programminstruktionsspeicher aufweisen, der entsprechende Sätze von Micro-Code-Programminstruktionen enthalten kann, die von der Prozessorschaltung 204 ausgeführt werden können. Die Ausführung dieser entsprechenden Sätze von Programminstruktionen durch die Prozessorschaltung 204 kann im Abwickeln von Operationen resultieren, die hier als durch die Prozessorschaltung 204 ausgeführt beschrieben werden.
-
Der Speicher 210 kann eine oder mehrere Plattformrichtlinieninstruktionen aufweisen, die eine Regel oder einen Satz von Regeln definieren können, die z. B. die Verwaltung der Speichervorrichtung 118 und Richtlinienregeln für den Lese- und/oder Schreibzugriff auf den Flash-Speicher 106 vorschreiben können. Beispielhafte Plattformrichtlinieninstruktionen können die Größe des reservierten Abschnitts 204. Aktivieren oder Deaktivieren des Verbergens des reservierten Abschnitts 204, Aktivieren und/oder Deaktivieren des Lese- und/oder Schreibzugriffs auf den Flash-Speicher 106, Datenschreib- und/oder Lesevorgängen auf den Flash-Speicher 106 zugeordneten Prioritätsregeln und/oder andere Plattformrichtlinieninstruktionen umfassen. Die Prozessorschaltung 204 kann Plattformrichtlinieninstruktionen während des Betriebs der Plattformverwaltungscontrollerschaltung 110 ausführen. Natürlich sind dies nur beispielhafte Instruktionen und andere Plattformrichtlinieninstruktionen sind hier ebenso vorgesehen.
-
In dieser Ausführungsform kann die Schaltung 110 ebenfalls eine PCI-Express (PCIe)-Schnittstellenschaltung 202 umfassen, die der Prozessorschaltung 204 erlauben kann, Anweisungen und Daten mit dem Chipsatz 114 und/oder der Speichervorrichtung 118 über den PCIe-Bus 122 auszutauschen. Die Schaltung 110 kann ebenfalls eine SPI-Schnittstellenschaltung 208 umfassen, die der Prozessorschaltung 204 erlauben kann. Anweisungen und Daten mit dem Flash-Speicher 106 über den SPI-Bus 126 auszutauschen. Allerdings sind eine andere Bustechnologie und eine einem Bus entsprechende Busschnittstellenschaltung ebenso in dieser Ausführungsform vorgesehen. Die Schaltung 110 kann des Weiteren eine Netzwerkschnittstellenschaltung 206 umfassen, die der Prozessorschaltung 204 erlauben kann, Anweisungen und Daten mit einem oder mehreren entfernten Systemen über das Netzwerk 124 und die Nachrichtenverbindung 125 auszutauschen.
-
Das Netzwerk 124 kann das Ethernet-Kommunikationsprotokoll erfüllen oder mit diesem kompatibel sein, das im Stande ist, Kommunikation mittels eines Transmission Control Protocol/Internet Protocol (TCP/IP) zu erlauben. Das Ethernet-Protokoll kann den Ethernet-Standard, der von dem Institute of Electrical and Electronics Engineers (IEEE) veröffentlicht wurde, betitelt „IEEE 802.3 Standard”, veröffentlicht März 2002, und/oder spätere Versionen dieses Standards erfüllen oder mit diesen kompatibel sein. Alternativ oder zusätzlich kann das Netzwerk 124 im Stande sein, mittels eines X.25-Kommunikationsprotokolls zu kommunizieren. Das X-25-Kommunikationsprotokoll kann einen von der International Telecommunication Union-Telecommunication Standardization Sector (ITU-T) veröffentlichten Standard erfüllen oder mit diesem kompatibel sein. Alternativ oder zusätzlich kann das Netzwerk 124 im Stande sein, mittels eines Frame-Relay-Kommunikationsprotokolls zu kommunizieren. Das Frame-Relay-Kommunikationsprotokoll kann mit einem von dem Consultative Committee for International Telegraph and Telephone (CCITT) und/oder dem American National Standards Instituts (ANSI) veröffentlichten Standard erfüllen oder mit diesem kompatibel sein. Alternativ oder zusätzlich kann das Netzwerk 124 im Stande sein, mittels eines Asynchronous Transfer Mode (ATM)-Kommunikationsprotokolls zu kommunizieren. Das ATM-Kommunikationsprotokoll kann einen ATM-Standard, der von dem ATM-Forum veröffentlicht wurde, betitelt „ATM-MPLS Network Interworking 1.0”, veröffentlicht August 2001, und/oder spätere Versionen dieses Standards erfüllen oder mit diesen kompatibel sein. Natürlich sind verschiedene und/oder nachentwickelte Kommunikationsprotokolle ebenso hier vorgesehen.
-
3 ist ein Diagramm, das eine weitere Systemausführungsform 300 darstellt. In 3 wurden bestimmte Teile des in 1 dargestellten Systems 100 und der in 2 dargestellten Plattformverwaltungscontrollerschaltung 110 um der Klarheit willen ausgelassen (z. B. Platine 132, Netzwerk 124 und entferntes System 140), es ist aber verständlich, dass gleiche Teile aus 3 in einer Weise, die mit einer in 1 und/oder 2 dargestellten Ausführungsform konsistent ist, oder alternativ in anderen Systemimplementierungen implementiert werden können, ohne von dieser Ausführungsform abzuweichen.
-
In dieser Ausführungsform kann die Speichervorrichtung 118 einen Datenbereich 302 und einen reservierten Bereich 304 umfassen. Der Datenbereich 302 kann eine Vielzahl von Sektoren 1 ... n aufweisen, auf die der Host-Prozessor 112, die Schaltung 110 und/oder der Chipsatz 114 zugreifen können, um darauf Daten zu lesen und/oder zu schreiben. In dieser Ausführungsform kann die Plattformverwaltungscontrollerschaltung 110 im Stande sein, die Speichervorrichtung 118 zu kontrollieren, um den reservierten Bereich 304 zu reservieren. Reservierter Bereich”, wie hier mit Verweis auf die Speichervorrichtung 118 verwendet wird, kann einen Abschnitt der Speichervorrichtung 118 umfassen, der allgemein für die Controllerschaltung 110 zugänglich und für ein auf dem Host-System 132 ausgeführtes OS unzugänglich sein kann. Abhängig von dem Datenträgertyp der Speichervorrichtung 118 kann die Größe des reservierten Bereichs 304 durch z. B. einen ausgewählten LBA-Adressenbereich und/oder eine ausgewählte Anzahl von Sektoren (z. B. Sektoren 1 ... m) definiert werden. Die Plattformverwaltungscontrollerschaltung 110 kann ebenfalls im Stande sein, den reservierten Bereich 304 vor einem Zugriff durch eine andere Schaltung zu verbergen, wie z. B. Verbergen des reservierten Abschnitts 304 vor dem Host-Prozessor 112 und/oder einem OS oder einer Anwendung, das/die auf dem Host-System 132 und/oder dem Chipsatz 114 und/oder einem oder mehreren entfernten Systemen (nicht gezeigt) ausgeführt wird, um den Host-Prozessor 112 und/oder ein OS oder eine Anwendung, das/die auf dem Host-System 132 und/oder dem Chipsatz 114 und/oder einem oder mehreren entfernten Systemen ausgeführt wird, daran zu hindern, auf den reservierten Bereich 304 der Speichervorrichtung 118 zuzugreifen. In dieser Ausführungsform kann die Schaltung 110 im Stande sein, eine Anfrage zum Schreiben von Daten in den Datenbereich 302 der Speichervorrichtung 118 zu empfangen. Die Schreibanfrage kann z. B. durch den Host-Prozessor 112 und/oder den Chipsatz 114 generiert werden.
-
Falls ein Fehler während eines Datenschreibversuchs angetroffen wird, kann die Speichervorrichtung 118 im Stande sein, zu signalisieren, dass ein Fehler aufgetreten ist. Als Antwort auf ein Signal von der Speichervorrichtung 118, dass ein Schreibfehler aufgetreten ist, kann die Schaltung 110 ebenfalls im Stande sein, einen Schreibfehler in der Speichervorrichtung 118 zu detektieren, der während einer Datenschreiboperation entstehen kann. Der Fehler kann z. B. einen fehlgeschlagenen Datenschreibversuch auf einen oder mehrere Sektoren der Speichervorrichtung 118, die in 3 als ein „X” bezeichnet werden, umfassen.
-
Als Antwort auf den Schreibfehler kann Schaltung 110 im Stande sein, die Daten erneut auf den reservierten Bereich 304 der Speichervorrichtung 118 abzubilden. „Erneutes Abbilden” oder „erneut abbilden”, wie hier verwendet, kann als ein Wechseln der physikalischen Speicherstelle der Daten von einem Sektor zu einem anderen Sektor definiert werden. „Erneutes Abbilden” kann ebenfalls ein Aktualisieren und/oder Ändern einer Allocation-Table umfassen, die definieren kann, wo die Daten auf der Speichervorrichtung 118 angesiedelt sind. Somit kann z. B., wie in 3 dargestellt, ein Sektor „X” ein fehlerhafter Sektor und die Schaltung 110 im Stande sein, Datenschreibversuche auf einen Sektor „Y” des reservierten Bereichs 304 erneut abzubilden. Die Schaltung 110 kann ebenfalls im Stande sein, eine Abbildung zu erzeugen, die die Speicherstelle der „Y”-Daten im reservierten Bereich 304 auf den „X”-Sektor des Datenbereichs 302 verweist. Die Schaltung 110 kann ebenfalls im Stande sein, eine Leseanfrage zu empfangen und die Leseanfrage mit der Abbildung zu vergleichen und, falls die Leseanfrage Daten betrifft, die sich im Sektor „X” im Datenbereich 302 befunden haben könnten, kann die Schaltung 110 im Stande sein, die Leseanfrage auf die erneut abgebildeten Daten im Sektor „Y” des reservierten Bereichs 304 umzuleiten.
-
Die Plattformverwaltungscontrollerschaltung 110 kann ebenfalls im Stande sein, bei dem Schreib- und/oder Lesezugriff auf die Speichervorrichtung 118 zu vermitteln, um den reservierten Bereich 304 vor einem Zugriff zu schützen. Somit kann z. B., falls der Host-Prozessor 112 einen I/O-Vorgang zum Lesen oder Schreiben von Daten auf die Speichervorrichtung 118 generiert, die Plattformverwaltungscontrollerschaltung 110 diese Anfrage (über den Bus 120) empfangen und die Lese- und/oder Schreibanfrage verweigern, falls die Daten in dem reservierten Bereich 304 der Speichervorrichtung 118 gespeichert sind (oder in diesen geschrieben werden sollen), und/oder die Lese- und/oder Schreibanfrage gestatten, falls die Daten in dem Datenbereich 302 der Speichervorrichtung 118 gespeichert sind (oder in diesen geschrieben werden sollen).
-
4 ist ein Flussdiagramm 400, das beispielhafte Operationen darstellt, die gemäß einer Ausführungsform durchgeführt werden können. Die Operationen können ein Reservieren eines reservierten Bereichs in einer Speichervorrichtung umfassen 402. Die Operationen können ebenfalls ein Empfangen einer Schreibanfrage zum Schreiben von Daten in die Speichervorrichtung umfassen 404. Die Operationen können ebenfalls ein Detektieren eines Schreibfehlers in der Speichervorrichtung umfassen 406. Die Operationen können weiterhin ein erneutes Abbilden der Daten auf den reservierten Bereich in der Speichervorrichtung umfassen 408. Die Operationen können ebenfalls ein Empfangen einer Leseanfrage für Daten in der Speichervorrichtung umfassen 410. Falls die der Leseanfrage zugeordneten Daten erneut auf den reservierten Bereich der Speichervorrichtung abgebildet wurden, können die Operationen weiterhin ein Umleiten der Leseanfrage auf die erneut abgebildeten Daten in dem reservierten Bereich der Speichervorrichtung umfassen 412.
-
5 ist ein Diagramm, das eine weitere Systemausführungsform 500 darstellt. In 5 wurden bestimmte Teile des in 1 dargestellten Systems 100 und der in 2 dargestellten Plattformverwaltungscontrollerschaltung 110 um der Klarheit willen ausgelassen (z. B. Platine 132), es ist aber verständlich, dass gleiche Teile aus 5 in einer Weise, die mit einer in 1 und/oder 2 dargestellten Ausführungsform konsistent ist, oder alternativ in anderen Systemimplementierungen implementiert werden können, ohne von dieser Ausführungsform abzuweichen.
-
In dieser Ausführungsform kann die Speichervorrichtung 118 einen Datenbereich 302 umfassen. Der Datenbereich 302 kann eine Vielzahl von Sektoren 1 ... n aufweisen, auf die der Host-Prozessor 112, der Chipsatz 114, das entfernte System 140 und/oder die Schaltung 110 zugreifen können, um darauf Daten zu lesen und/oder zu schreiben. Die Schaltung 110 kann im Stande sein, mit einem oder mehreren entfernen Systemen 140 über ein Netzwerk 142 zu kommunizieren. Wie angegeben, kann ein oder mehrere entfernte Systeme 140 im Stande sein, die Daten als Ganzes oder in Teilen auf der Speichervorrichtung 118 redundant zu speichern. In dieser Ausführungsform kann die Schaltung 110 im Stande sein, eine Anfrage zum Schreiben von Daten in den Datenbereich 302 der Speichervorrichtung 118 zu empfangen. Die Schreibanfrage kann z. B. durch den Host-Prozessor 112 und/oder den Chipsatz 114 generiert werden. In dieser Ausführungsform kann die Schaltung 110 im Stande sein, einen Datenlese- und/oder Schreibzugriff, der auf die Speichervorrichtung 118 gerichtet ist, durchzuführen, als Antwort auf eine Datenlese- und/oder Schreibanfrage von z. B. Host-Prozessor 112 und/oder Chipsatz 114 (die eine US-Lese- und/oder Schreibanfrage umfassen kann). Falls ein Fehler während eines Datenschreibversuchs angetroffen wird, kann die Speichervorrichtung 118 im Stande sein, zu signalisieren, dass ein Fehler aufgetreten ist. Als Antwort auf ein Signal von der Speichervorrichtung 118, dass ein Schreibfehler aufgetreten ist, kann Schaltung 110 ebenfalls im Stande sein, einen Schreibfehler in der Speichervorrichtung 118 zu detektieren, der während einer Datenschreiboperation entstehen kann. Der Fehler kann z. B. einen Datenschreibversuch auf einen oder mehrere fehlerhafte Sektoren der Speichervorrichtung 118, die in 5 als eine Vielzahl von „X”s bezeichnet werden, umfassen.
-
Als Antwort auf den Schreibfehler kann Schaltung 110 im Stande sein, mit einem oder mehreren entfernten Systemen 140 (über das Netzwerk 124) zu kommunizieren, um festzustellen, ob die der Schreibanfrage zugeordneten Daten auf einem oder mehreren entfernten Systemen 140 existieren. Dies wird in 5 als die Vielzahl von „Y”s dargestellt, die die auf dem entfernten System 140 verfügbaren Daten repräsentieren. Falls die Daten entfernt existieren, kann die Schaltung 110 im Stande sein, eine Abbildung zu erzeugen, die die Speicherstelle der „Y”-Daten auf dem entfernten System auf den entsprechenden „X”-Sektor im Datenbereich 302 der Speichervorrichtung 119 verweist. Die Schaltung 110 kann ebenfalls im Stande sein, eine Leseanfrage zu empfangen und die Leseanfrage mit der Abbildung zu vergleichen und, falls die Leseanfrage Daten betrifft, die sich auf einem oder mehreren „X”-Sektoren im Datenbereich 302 befunden haben könnten, kann die Schaltung 110 im Stande sein, die Leseanfrage auf die erneut abgebildeten Daten in den entsprechenden „Y”-Sektoren des entfernten Systems 140 umzuleiten und die Daten von dem entfernten System 140 abzurufen.
-
Falls das entfernte System nicht verfügbar ist oder die „Y”-Daten (die den für die „X”-Sektoren der Speichervorrichtung 118 bestimmten Daten entsprechen) nicht enthält, kann die Schaltung 110 alternativ oder zusätzlich erneut die Daten auf den reservierten Bereich 304 der Speichervorrichtung 118 in einer oben mit Bezug auf die Ausführungsform aus 3 beschriebenen Weise abbilden. Die Schaltung 110 kann ebenfalls im Stande sein, eine Abbildung zu erzeugen, die die Speicherstelle der „Y”-Daten im reservierten Bereich 304 auf den „X”-Sektor im Datenbereich 302 verweist, und in einer oben mit Bezug auf 3 beschriebenen Weise Leseanfragen für diese Daten erneut auf den reservierten Bereich 304 abzubilden. Falls das entfernte System 140 keine „Y”-Daten (die den für die „X”-Sektoren der Speichervorrichtung 118 bestimmten Daten entsprechen) enthält, kann die Schaltung 110 alternativ oder zusätzlich im Stande sein, die Daten auf das entfernte System 140 erneut abzubilden und somit die Daten entfernt zu speichern.
-
6 ist ein Flussdiagramm, das beispielhafte Operationen 600 darstellt, die gemäß einer weiteren Ausführungsform durchgeführt werden können. Die Operationen können ein Kommunizieren mit einem entfernten System umfassen 602. Die Operationen können weiterhin ein Empfangen einer Schreibanfrage zum Schreiben von Daten auf eine Zielspeichervorrichtung umfassen 604. Die Operationen können ebenfalls ein Detektieren eines Schreibfehlers in der Zielspeichervorrichtung umfassen 606. Die Operationen können ebenfalls ein Auffinden der der Schreibanfrage zugeordneten Daten auf dem entfernten System umfassen 608. Falls sich die Daten entfernt befinden, können die Operationen ebenfalls ein Erzeugen einer Abbildung auf die Daten auf dem entfernten System umfassen 610. Die Operationen können ebenfalls ein Empfangen einer Leseanfrage für Daten auf der Zielspeichervorrichtung umfassen 612. Falls die der Leseanfrage zugeordneten Daten auf das entfernte System erneut abgebildet wurden, können die Operationen weiterhin ein Abrufen der Daten von dem entfernten System umfassen 612.
-
7 ist ein Diagramm, das eine weitere Systemausführungsform 700 darstellt. In 7 wurden bestimmte Teile des in 1 dargestellten Systems 100 und der in 2 dargestellten Plattformverwaltungscontrollerschaltung 110 um der Klarheit willen ausgelassen (z. B. Platine 132), es ist aber verständlich, dass gleiche Teile aus 7 in einer Weise, die mit einer in 1 und/oder 2 dargestellten Ausführungsform konsistent ist, oder alternativ in anderen Systemimplementierungen implementiert werden können, ohne von dieser Ausführungsform abzuweichen.
-
In dieser Ausführungsform kann die Plattformverwaltungscontrollerschaltung 110 im Stande sein, die Speicherinhalte 702 des Systemspeichers 121 zu lesen. Die Schaltung 110 kann ebenfalls im Stande sein, die Speicherinhalte 720 des Systemspeichers 721 auf die Speichervorrichtung 118 zu schreiben (und diese Operation kann in einer Weise durchgeführt werden, die der mit Bezug auf 3 oben beschriebenen Ausführungsform ähnlich ist). Alternativ oder zusätzlich kann die Schaltung 110 ebenfalls im Stande sein, die Speicherinhalte 720 des Systemspeichers 121 auf einen oder mehrere entfernte Systeme 140 über das Netzwerk 124 zu schreiben (und diese Operation kann in einer Weise durchgeführt werden, die der mit Bezug auf 5 oben beschriebenen Ausführungsform ähnlich ist). So kann z. B. ein kritischer Fehler auftreten, der ein auf einem Host-System ausgeführtes OS und/oder eine Applikation daran hindern kann, auf den Speicher zuzugreifen. Falls ein kritischer Fehler auftritt, kann der Speicherprozessor 112 und/oder der Chipsatz 114 im Stande sein, zu signalisieren, dass ein Fehler aufgetreten ist. Als Antwort auf ein Signal von dem Prozessor 112 und/oder dem Chipsatz 114, dass ein kritischer Fehler aufgetreten ist, kann die Schaltung 110 im Stande sein, einen kritischen Fehler zu detektieren und die Speicherinhalte 121 auf die Speichervorrichtung 118 oder das entfernte System 140 (oder auf beiden) zu speichern. Dies kann z. B. eine Prüfung der Daten im Systemspeicher 121 zum Zeitpunkt des kritischen Fehlers ermöglichen.
-
8 ist ein Flussdiagramm, das beispielhafte Operationen 800 darstellt, die gemäß einer weiteren Ausführungsform durchgeführt werden können. Die Operationen können ein Detektieren eines kritischen Fehlers umfassen 802. Die Operationen können weiterhin ein Lesen der Speicherinhalte des Systemspeichers umfassen 804. Die Operationen können ebenfalls ein Schreiben der Speicherinhalte auf eine Zielspeichervorrichtung umfassen 806. Alternativ oder zusätzlich können die Operationen ein Kommunizieren mit einem entfernten System 808 und Schreiben der Speicherinhalte auf das entfernte System umfassen 810.
-
9 stellt eine weitere Systemausführungsform 900 des beanspruchten Gegenstands dar. In dieser Ausführungsform kann die Plattformverwaltungscontrollerschaltung 110' in einer Schaltungskarte 120 enthalten sein, die an den Bus 122 gekoppelt sein kann. Wie bei der Ausführungsform aus 1 kann die Plattformverwaltungscontrollerschaltung 110' in einem oder mehreren integrierten Schaltungschips enthalten sein oder einen Teil von diesen formen. Diese Ausführungsform kann einen Schaltungskarteneinschub 130 umfassen. Die Schaltungskarte 120 kann so konstruiert sein, dass es möglich ist, sie in den Einschub 130 einzustecken. Wenn die Schaltungskarte 120 ordnungsgemäß im Einschub 130 eingesteckt ist, können Verbinder 134 und 137 elektrisch und mechanisch miteinander gekuppelt sein. Wenn die Verbinder 134 und 137 so miteinander gekoppelt sind, kann die Karte 120 elektrisch an den Bus 122 gekoppelt werden und kann Daten und/oder Anweisungen mit dem Systemspeicher 121, dem Host-Prozessor 112, dem Benutzerschnittstellensystem 116 und/oder dem Flash-Speicher 106 über den Bus 122 und/oder den Bus 126 und den Chipsatz 114 austauschen. Alternativ oder zusätzlich kann die Plattformverwaltungscontrollerschaltung 110' Anweisungen und Daten mit dem Host-System 132' und einem oder mehreren an das Netzwerk 124' gekoppelten entfernten Systemen über die Nachrichtenverbindung 125' austauschen. Der Betrieb der Plattformverwaltungscontrollerschaltung 110 in dieser Ausführungsform kann mit dem mit Bezug auf 1–8 oben beschriebenen Betrieb identisch sein, außer dass die SPI-Busschnittstellenschaltung 308 weggelassen werden kann und stattdessen Anweisungen und Daten zwischen der Schaltungskarte 120 und dem Flash-Speicher 106 über den Chipsatz 114 ausgetauscht werden können.
-
10 stellt eine weitere Systemausführungsform 1000 des beanspruchten Gegenstands dar. Das System 1000 kann generell einen Mehrfachkern(Multi-Core)-Host-Prozessor 112', einen Chipsatz 114, Systemspeicher 121', In-Band-Netzwerkschnittstellenschaltung 1006, Speichervorrichtung 118 und Out-of-Band (OOB)-Netzwerkschnittstellenschaltung 1008 umfassen, die im Stande ist, mit einem oder mehreren entfernten Systemen 140 über das Netzwerk 124 über die Nachrichtenverbindung 125 zu kommunizieren. Der Multi-Core-Host-Prozessor 112' kann jede Auswahl von im Stand der Technik bekannten Prozessoren mit einer Vielzahl von Kernen, wie z. B. einen Intel® Pentium® D Dual Core-Prozessor, der von dem Abtretungsempfänger des Gegenstands der Ameldung kommerziell verfügbar ist, umfassen.
-
In dieser Ausführungsform kann der Multi-Core-Prozessor 112' eine Vielzahl von Kern-CPUs umfassen, wie z. B. CPU1, CPU2, CPU3 und CPU4. Natürlich können zusätzliche oder weniger Kerne in dieser Ausführungsform benutzt werden. Der Multi-Core-Prozessor 112' kann logisch und/oder physikalisch in eine Vielzahl von Partitionen unterteilt werden. So kann z. B. in dieser Ausführungsform der Prozessor 112' in eine Hauptpartition 1004, die CPU1 und CPU2 umfasst, und eine eingebettete Partition 1002, die CPU3 und CPU4 umfasst, aufgeteilt werden. Die Hauptpartition 1004 kann im Stande sein, ein Betriebssystem (wie z. B. Windows, Linux, usw.) auszuführen. Die eingebettete Partition 1002 kann im Stande sein, I/O-Vorgänge mit der Speichervorrichtung 118 und/oder der OOB-Netzwerkschnittstelle 1008 auszuführen, wie detaillierter nachfolgend beschrieben wird.
-
In dieser Ausführungsform kann der Speicher 121' logisch und/oder physikalisch in Systemspeicher 1, der im Stande ist, Anweisungen, Instruktionen und/oder Daten für Operationen auf der Hauptpartition 1004 zu speichern, und Systemspeicher 2, der im Stande ist, Anweisungen, Instruktionen und/oder Daten für Operationen auf der eingebetteten Partition 1002 zu speichern, partitioniert werden. Die OOB-Netzwerkschnittstelle 1008 und/oder die In-Band-Netzwerkschnittstelle 1006 können eine Netzwerkschnittstellenschaltung auf einer Karte umfassen, die im Stande ist, an einen Bus gekoppelt zu werden (ähnlich zur Karte 120 aus 9). In dieser Ausführungsform kann die OOB-Netzwerkschnittstelle 1008 im Stande sein, mit dem entfernten System 140 als Antwort auf OOB-Anweisungen aus der eingebetteten Partition 1002 zum Lesen und/oder Schreiben von Daten von dem/auf das entfernte System 140 zu kommunizieren. Die In-Band-Netzwerkschnittstelle 1006 kann im Stande sein, mit einem entfernten System (nicht gezeigt) als Antwort auf Anweisungen aus der Hauptpartition 1004 zu kommunizieren.
-
Die Betriebsmerkmale dieser Ausführungsform können denen, die mit Bezug auf 1–9 oben beschrieben wurden, ähnlich sein. Allerdings kann in dieser Ausführungsform die eingebettete Partition 1002 im Stande sein, die dem Plattformverwaltungscontroller 110 (wie oben detailliert beschrieben) zugeschriebenen Operationen durchzuführen. Während die Hauptpartition 1004 im Stande sein kann, ein OS sowie I/O-Vorgänge auf der Zielspeichervorrichtung 118 auszuführen, kann die eingebettete Partition 1002 im Stande sein, Out-of-Band in Bezug auf die Hauptpartition zu betreiben, was bedeutet, dass die einbebettete Partition im Stande sein kann, unabhängig von dem OS, das auf der Hauptpartition 1004 ausgeführt wird, zu arbeiten. Im Hinblick darauf kann die eingebettete Partition 1002 als ein Zielvorrichtungs-Proxy-Agent arbeiten, um I/O-Vorgänge auf der Zielvorrichtung 118 für die Hauptpartition 1004 und unabhängig von dem OS, das auf der Hauptpartition ausgeführt wird, zu behandeln.
-
In dieser Ausführungsform kann die eingebettete Partition 1002 im Stande sein, Schreibanweisungen zum Schreiben von Daten auf die Zielspeichervorrichtung 118 zu empfangen. Die Schreibanweisungen können z. B. von der Hauptpartition 1004 erzeugt werden. Als Antwort auf eine anhängige Schreibanfrage, die an die Zielvorrichtung 118 gerichtet ist, kann die eingebettete Partition 1002 die Schreibanfrage aufteilen, um die Daten auf die Speichervorrichtung 118 und/oder das entfernte System 140 zu schreiben. Falls dort eine anhängige Schreibanfrage vorhanden ist und ein Fehler auftritt (z. B. ein Schreibfehler, ein kritischer Systemfehler, der verursacht, dass die Hauptpartition abstürzt und zurückgesetzt wird, ein Watchdog-Timeout-Fehler, usw.), können dort unbestätigte (uncommitted) Daten (und/oder partiell bestätigte (partially committed) Daten) vorhanden sein, die nicht auf die Zielvorrichtung 118 geschrieben werden. In diesem Fall kann die eingebettete Partition 1002 im Stande sein, den Fehler in der Verarbeitung zu detektieren, so dass ein Vervollständigen einer anhängigen Schreibanfrage an die Zielvorrichtung 118 nicht stattfindet, und die der anhängigen Schreibanfrage entsprechenden unbestätigten Daten auf das entfernte System 140 zu schreiben. Nach einem Zurücksetzen der Hauptpartition 1004 kann die eingebettete Partition 1002 im Stande sein, eine Anfrage an das entfernte System 140 (über die OOB-Netzwerkschnittstelle 1008) zu senden, um die unbestätigten Daten abzurufen und die unbestätigten Daten auf die Zielvorrichtung 118 zu schreiben.
-
Zu diesem Zweck und bei der Initialisierung nach einem Zurücksetzen des Prozessors 112' kann die eingebettete Partition 1002 eine ”Mailbox” im Systemspeicher 2 erzeugen. Die Mailbox kann zum Beispiel eine Speicherallozierung für eine oder mehrere vorgegebene Vorrichtungen im System 1000 aufweisen. Somit kann zum Beispiel die eingebettete Partition 1002 eine Mailbox für die OOB-Netzwerkschnittstelle 1008 erzeugen. Die eingebettete Partition 1002 kann in die Mailbox für die OOB-Netzwerkschnittstelle 1008 zum Beispiel Instruktionen einfügen, auf die die OOB-Netzwerkschnittstelle 1008 zugreifen kann, um mit dem entfernten System 140 zu kommunizieren, um die unbestätigten Daten abzurufen. Die Mailbox kann ebenfalls LBA (z. B. Sektoren, Cluster, usw.) und/oder der Speicherstelle der unbestätigten Daten auf dem entfernten System 140 zugeordnete Zeigerinformationen umfassen.
-
11 ist ein Flussdiagramm, das beispielhafte Operationen 1100 darstellt, die gemäß einer weiteren Ausführungsform durchgeführt werden können. Die Operationen können ein Erzeugen einer Hauptpartition, aufweisend mindestens einen Kern, und einer eingebetteten Partition, aufweisend mindestens einen anderen Kern, in einem Multi-Core-Prozessor umfassen 1102. Die Operationen können weiterhin ein Ausführen eines Betriebssystems mittels der Hauptpartition umfassen 1104. Die Operationen können zusätzlich ein Leiten von Zielvorrichtungs-I/O-Verkehr durch die eingebettete Partition umfassen 1106. Die Operationen können weiterhin Schreib- und Lesefehleroperationen, die oben mit Bezug auf 4 beschrieben wurden, entfernte Datenwiederherstellungs-, die oben mit Bezug auf 6 beschrieben wurden, Systemfehlerwiederherstellungsoperationen, die oben mit Bezug auf 8 beschrieben wurden, und/oder Operationen, die nachfolgend mit Bezug auf 12 beschrieben werden, umfassen.
-
12 ist ein Flussdiagramm, das beispielhafte Operationen 1200 darstellt, die gemäß einer weiteren Ausführungsform durchgeführt werden können. Die Operationen können ein Empfangen einer Anfrage zum Schreiben von Daten auf eine Zielvorrichtung umfassen 1202. Die Operationen können weiterhin ein Kommunizieren mit einem entfernten System und ein erneutes Abbilden der der Schreibanfrage zugehörigen Daten auf das entfernte System umfassen 1204. Die Operationen können ebenfalls ein Detektieren eines Fehlers beim Schreiben auf die Zielvorrichtung, wie z. B. dass dort unbestätigte Daten existieren können, umfassen 1206. Die Operationen können zusätzlich ein Kommunizieren mit dem entfernten System, um die unbestätigten Daten abzurufen und die unbestätigten Daten auf die Zielvorrichtung zu schreiben, umfassen 1208.
-
Zusammenfassend kann hier somit mindestens eine Ausführungsform eine integrierte Schaltung (IC) umfassen, aufweisend einen Prozessor mit einer Vielzahl von Prozessorkernen. Die IC kann eine Hauptpartition, aufweisend mindestens einen Prozessorkern, der im Stande ist, ein Betriebssystem auszuführen, und eine eingebettete Partition, aufweisend mindestens einen anderen Prozessorkern, umfassen. Die eingebettete Partition kann zu den folgenden Operationen im Stande sein: Empfangen einer Schreibanfrage zum Schreiben von Daten auf eine Zielspeichervorrichtung, Kommunizieren mit einem entfernten System, das an die eingebettete Partition gekoppelt ist, und erneutes Abbilden von der Schreibanfrage zugehörigen Daten auf das entfernte System; Detektieren eines Fehlers beim Versuch, die Daten auf die Speichervorrichtung zu schreiben, wobei unbestätigte Daten, die an die Zielspeichervorrichtung gerichtet sind, hinterlassen werden; und Kommunizieren mit dem entfernten System, um die der Schreibanfrage zugehörigen unbestätigten Daten abzurufen, und Schreiben der unbestätigten Daten auf die Zielspeichervorrichtung. Die eingebettete Partition kann ebenfalls im Stande sein, diese Operationen zumindest teilweise unabhängig von dem auf der Hauptpartition ausgeführten Betriebssystem durchzuführen.
-
Die integrierte Schaltung dieser Ausführungsform kann vorteilhaft ein Speichern von Event-Logs und Daten in dem reservierten Abschnitt der Speichervorrichtung ermöglichen, die für Systemüberprüfungen genutzt werden können. Des Weiteren kann die integrierte Schaltung dieser Ausführungsform vorteilhaft in der Lage sein, Daten in einem sicheren (verborgenen) reservierten Abschnitt der Speichervorrichtung zu speichern, der unzugänglich für Lese-/Schreiboperationen des Betriebssystems sein kann. Die integrierte Schaltung dieser Ausführungsform kann ebenfalls im Stande sein, Host-System-Speicherinhalte in dem reservierten Abschnitt der Speichervorrichtung und/oder auf ein entferntes System zu speichern, um zum eine Beispiel Prüfung und Wiederherstellung von Speicherinhalten zu ermöglichen, wenn ein kritischer Fehler des Host-Systems auftritt. Die integrierte Schaltung dieser Ausführungsform kann ebenfalls im Stande sein, eine oder mehrere Operationen unabhängig von einem Betriebssystem durchzuführen. In einer alternativen Ausführungsform kann ein Softwareplattformtreiber verwendet werden, der der Zielspeichervorrichtung zugeordnete Schreib- und/oder Lesefehler empfängt und solche Fehler an die eingebettete Partition kommuniziert. Ein solcher Treiber kann zum Beispiel eine oder mehrere Fehlerwiederherstellungsstrategien, die hier vorgelegt werden, ermöglichen, falls der Fehler in der auf der Hauptpartition laufenden Software auftritt (d. h., bevor eine Lese- oder Schreibinstruktion an die eingebettete Partition weitergeleitet wird).
-
Die Begriffe und Ausdrücke, die hier verwendet wurden, werden als beschreibende und nicht als limitierende Begriffe verwendet und es besteht keinerlei Intention bei der Verwendung solcher Begriffe und Ausdrücke, dass irgendwelche Entsprechungen der gezeigten und beschriebenen Merkmale (oder ihrer Teile) ausgeschlossen wären, und es wird erkannt, dass unterschiedliche Modifikationen im Rahmen der Ansprüche möglich sind. Andere Modifikationen, Variationen und Alternativen sind ebenfalls möglich. Dementsprechend ist beabsichtigt, dass die Ansprüche alle solche Entsprechungen abdecken.