-
Querverweis zu verwandten
Anmeldungen
-
Diese
Anmeldung ist eine Teilanmeldung von und beansprucht die Priorität der U.S.-Patentanmeldung
mit der Serien-Nr. 11/830,909, eingereicht am 31. Juli 2007, die
hierin durch Bezugnahme aufgenommen ist. Alle Ansprüche dieser
Teilanmeldung haben Anspruch auf das Prioritätsdatum der Anmeldung mit der
Serien-Nr. 11/830,909.
-
Beschreibung
-
Zumindest
einige partitionierbare Computersysteme umfassen CM-Code (CM = complex
management = komplexe Verwaltung), der das System auf einer hohen
Ebene verwaltet. Der CM-Code unterstützt das Partitionieren des
Systems. Beispielsweise wird der CM-Code verwendet, um verschiedene
Partitionen in dem System hervorzubringen. Viren, Fehler oder verbrecherische
Anwendungen könnten
die Integrität
und Funktionsfähigkeit
des Systems beeinträchtigen,
falls solche Anwendungen Zugriff auf den CM-Code hätten.
-
Es
ist die Aufgabe der vorliegenden Erfindung, ein System und ein Verfahren
mit verbesserten Charakteristika zu schaffen.
-
Diese
Aufgabe wird durch ein System gemäß Anspruch 1 sowie ein Verfahren
gemäß Anspruch
6 gelöst.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1 ein
System gemäß verschiedenen Ausführungsbeispielen;
-
2 eine
Softwarehierarchiebeschreibung des Systems gemäß verschiedenen Ausführungsbeispielen;
-
3 einen
Partitionsspeicher und CM-Speicher, der durch CM-Code „besetzt" ist, der darin enthalten
ist, gemäß verschiedenen
Ausführungsbeispielen;
und
-
4 ein
Verfahren gemäß verschiedenen Ausführungsbeispielen.
-
Bestimmte
Begriffe werden in der folgenden Beschreibung und den Ansprüchen verwendet,
um bestimmte Systemkomponenten zu bezeichnen. Wie es für einen
Fachmann auf diesem Gebiet klar ist, können Computerfirmen eine Komponente
mit unterschiedlichen Namen bezeichnen. Dieses Dokument beabsichtigt
nicht, zwischen Komponenten zu unterscheiden, die sich zwar im Namen
aber nicht in der Funktion unterscheiden. In der folgenden Beschreibung
und in den Ansprüchen
sind die Begriffe „enthalten" und „umfassen" auf offene Weise
verwendet, und sollten somit so interpretiert werden, dass dieselben
bedeuten „umfasst,
ist aber nicht beschränkt
auf ...". Außerdem soll
der Begriff „koppeln" oder „koppelt" entweder eine indirekte,
eine direkte, eine optische oder drahtlose elektrische Verbindung
bedeuten. Falls somit ein erstes Bauelement mit einem zweiten Bauelement
koppelt, kann diese Verbindung durch eine direkte elektrische Verbindung,
durch eine indirekte elektrische Verbindung, über andere Bauelemente und
Verbindungen, durch eine optische elektrische Verbindung oder durch
eine drahtlose elektrische Verbindung sein.
-
1 stellt
ein System 10 gemäß verschiedenen
Ausführungsbeispielen
dar. Wie es gezeigt ist, umfasst das System 10 einen oder
mehrere Berechnungsknoten 12, 14 und 16,
die durch einen Netzagenten (fabric agent) 40 gekoppelt
sind. Jede Anzahl von Rechenknoten kann vorgesehen sein. Jeder Rechenknoten
umfasst, wie mit Bezug auf den Rechenknoten 14 dargestellt
ist, einen oder mehrere Prozessorskerne 20, einen oder
mehrere Speichersteuerungen 22 und ein Speicherbauelement 24.
Das Speicherbauelement kann mehrere Doppelreihenspeichermodule (DIMMs;
DIMM = dual in-line memory module) umfassen.
-
Jeder
Prozessorkern 20 führt
ein oder mehrere Betriebssysteme. und Anwendungen aus, die unter
den jeweiligen Betriebssystemen laufen. Über die Speichersteuerungen 22 geben
die Kerne 20 Speicheranforderungen (z. B. Lesevorgänge, Schreibvorgänge) für einen
Zugriff auf den Speicher 24 aus. Die Speichersteuerungen 22 entscheiden zwischen
mehreren anhängigen
Speicheranforderungen für
einen Zugriff auf den Speicher 24. Das System 10 kann
auch I/O-Vorrichtungen und Teilsysteme 39 umfassen, die
beispielsweise für
den Netzagent 40 zugreifbar sind. Die hierin erörterten
Speicheranforderungen können
auch von solchen I/O-Vorrichtungen und Teilsystemen stammen.
-
Der
Speicher 24, der in jedem Rechenknoten enthalten ist, ist
zumindest bei einigen Ausführungsbeispielen
als „Partitionsspeicher" konfiguriert, was bedeutet,
dass die Speicheranforderungen für
einen solchen Speicher über
den Speicher von mehreren Rechenknoten verschachtelt sind. Durch
Verschachteln von Speicheranforderungen über alle Speichersteuerungen
in der Partition muss eine Anwendung sich nicht der NUMA-Charakteristika
(NUMA = non-uniform memory access = uneinheitlicher Speicherzugriff)
des Systems bewusst sein, um eine zufrieden stellende Leistung eines
SMP-Systems (SMP = symmetric multi-processing = symmetrische Mehrfachverarbeitung)
zu erreichen.
-
Bei
verschiedenen Ausführungsbeispielen ist
das System 10 „partitionierbar", was bedeutet, dass
die verschiedenen Rechenknoten 12 bis 16 konfiguriert
sind, um in einer oder mehreren Partitionen zu arbeiten. Eine Partition
umfasst mehrere Hardwareressourcen (z. B. Kern 20, Speichersteuerung 22,
Speicher 24 und Eingabe-/Ausgabe-(I/O-)Ressourcen) und
Softwareressourcen (Betriebssystem und Anwendungen). Unterschiedliche Partitionen
können
das gleiche oder unterschiedliche Betriebssysteme ausführen und
können
die gleiche oder unterschiedliche Anwendungen ausführen.
-
1 zeigt
auch einen Netzagenten 40. Der Netzagent 40 empfängt oder
koordiniert anderweitig Partitionsspeicheranforderungen von den
verschiedenen Rechenknoten 12–16 und I/O-Vorrichtungen und
Teilsystemen 39 und übersetzt
die Partitionsspeicheradressen in „Netz"-Adressen. Auf den Partitionsspeicher
wird durch Netzadressen zugegriffen. Die Verwendung von Netzadressen
ermöglicht
es, dass DIMMs in den Rechenknoten nach Wunsch entfernt und ersetzt
werden können,
ohne die Berechnung der Partitionsspeicheradressen durch die Rechenkerne
zu beeinträchtigen.
Nach dem Übersetzen
einer Partitionsspeicheradresse in eine Netzadresse erlaubt es der
Netzagent 40, dass die entsprechenden Speicheranforderungen
durch die entsprechenden Speichersteuerungen 22 abgearbeitet werden.
Bei einigen Ausführungsbeispielen
ist ein einzelner Netzagent 40 vorgesehen, während bei
anderen Ausführungsbeispielen
mehrere Netzagenten 40 vorgesehen sind (z. B. ein Netzagent
für jeden
Rechenknoten).
-
Ausführbarer
Code, der als CM-Code bezeichnet wird, wird durch einen oder mehrere
der Kerne 20 ausgeführt,
um die verschiedenen Partitionen zu koordinieren, die auf dem System 10 implementiert
sind. Der CM-Code bringt die verschiedenen Partitionen hervor und
rekonfiguriert die Partitionen nach Bedarf auf die heiße Hinzufügung oder
Löschung
von Hardwareressourcen hin (z. B. Speicher 24).
-
2 zeigt
eine Softwarehierarchie 50 gemäß verschiedenen Ausführungsbeispielen.
Eine oder mehrere Anwendungen 56 in einer Partition laufen
unter einem jeweiligen Betriebssys tem 54 dieser Partition.
Das Betriebssystem 54 ist dem CM-Code 52 untergeordnet. Somit
läuft der
CM-Code außerhalb
der Steuerung des Betriebssystems. Bei verschiedenen Ausführungsbeispielen
ist der CM-Code 52 in dem Partitionsspeicher gespeichert
und wird von dort ausgeführt.
-
Der
CM-Code 52 wird auf eine effiziente Weise ausgeführt. Falls
der CM-Code in dem Systemspeicher gespeichert ist, sollte ein solcher
Code schnell zugreifbar sein. Außerdem erfordert der CM-Code
Datenspeicher in dem Systemspeicher, auf die schnell und beinahe
einheitlich zugegriffen werden kann. Die Speicherregion, die den
CM-Code und die Datenspeicher, die durch den CM-Code verwendet werden,
beherbergt, wird als CMI (CMI = „Complex Management Interleaved" = Komplexverwaltungs-verschachtelt)
bezeichnet, da die verschachtelte Art der Region die Leistungsanforderungen adressiert.
-
Weil
der CM-Code 52 außerhalb
der Steuerung der Betriebssysteme 54 in den verschiedenen Partitionen
läuft,
sind Sicherheitsmechanismen, die die Betriebssysteme implementieren
können,
allgemein nicht effektiv, um die Sicherheit des CM-Codes 52 zu
schützen.
Weil die CMI-Region verschachtelte Speicherunterstützung erfordert,
verwendet die CMI-Region
allgemein die Infrastruktur, die für Partitionsspeicher vorgesehen
ist. Somit beherbergt ein Abschnitt des Partitionsspeichers gemäß verschiedenen
Ausführungsbeispielen
auch die CMI-Speicherregion. Auf den Abschnitt des Partitionsspeichers,
in dem sich die CMI-Region befindet, haben Betriebssysteme 54,
die in den unterschiedlichen Partitionen laufen, keinen Zugriff.
-
3 stellt
ein Ausführungsbeispiel
eines Partitionsspeichers 60 dar. Ein Abschnitt 62 des
Partitionsspeichers ist für
die Verwendung durch den CM-Code 52 reserviert und wird
als CMI-Speicher bezeichnet. Bei dem in 3 dargestellten
Ausführungsbeispiel
ist der CMI-spezifische Abschnitt 62 des Partitionsspeichers 60 am
Anfang des Partitionsspei chers 60 reserviert. Der Partitionsspeicher 60 umfasst
beispielsweise 1 GB Speicher und der Abschnitt 62, der
für die
exklusive Verwendung durch den CM-Code 52 reserviert ist,
umfasst die oberen 64 MB des Partitionsspeichers. Der Abschnitt 62 kann sich
jedoch an einer anderen Position als an der oberen Position des
Partitionsspeichers 60 befinden.
-
Bei
dem Ausführungsbeispiel
von 3 ist der Partitionsspeicher 60 in einen
erlaubten Partitionsspeicheradressraum 64 und einen CMI-Speicheradressraum 66 unterteilt.
Der erlaubte Partitionsspeicheradressraum 64 umfasst einen
Bereich von Adressen von beispielsweise 0 bis 0 + t, wie es gezeigt
ist. Der CMI-Speicheradressraum umfasst einen Bereich von Adressen
von beispielsweise V bis V + n. Die Adressen des erlaubten Partitionsspeicheradressraums 64 und
des CMI-Speicheradressraums 66 sind unterschiedlich und überlappen
daher nicht. Der Netzagent 40 übersetzt Adressen von dem erlaubten
Partitionsspeicheradressraum 64 und von dem CMI-Speicheradressraum 66 in
Netzadressen, um es zu ermöglichen,
dass solche Speicheranforderungen abgearbeitet werden.
-
Bei
zumindest einigen Ausführungsbeispielen
ist der CMI-Speicheradressraum 66 kleiner
als das kleinste Körnchen
von Speicher, das den verschiedenen Partitionen zugewiesen werden
kann. Jeder Speicher, der CMI zugewiesen ist, ist für Betriebssysteme
oder Anwendungen nicht verfügbar. Ein
anderer Schutzmechanismus, der eine kleinere Granularität als der
Mechanismus verwendet, der verwendet wird, um Speicher von anderen
Partitionen zu schützen,
kann nach Wunsch implementiert werden.
-
In
dem Partitionsspeicheradressraum stellt der Bereich von Adressen
genau über
dem erlaubten Partitionsspeicheradressraum 64 Partitionsspeicheradressen
dar, die nicht erlaubt sind (unerlaubter Partitionsspeicheradressraum 68).
Der unerlaubte Partitionsspeicheradressraum 68 würde auf
die gleiche CMI-Region 62 abbilden wie der CMI- Speicheradressraum 66 (d.
h. durch Übersetzung
solcher Adressen in Netzadressen). Die Adressen des unerlaubten
Partitionsspeicheradressraums 68 und der CMI-Speicheradressraum 66 sind
unterschiedlich und überlappen
somit nicht, bilden aber auf die gleiche CMI-Region 62 ab.
-
Wie
der Name vermuten lässt,
ist der unerlaubte Partitionsspeicheradressraum nicht als Teil des
Partitionsspeicheradressraums erlaubt. Solche Adressen werden den
verschiedenen Partitionen und Betriebssystemen, die darin laufen,
nicht als verfügbar
berichtet. Der CMI-Speicheradressraum 66 umfasst Adressen,
die auf die CMI-Region 62 abbilden, die durch einen Prozessorkern 20 für die Ausführung des
CM-Codes 52 verfügbar sind,
oder für
Zugriff auf andere CMI-geschützte Daten,
aber nur wenn der Prozessorkern 20 in einem Komplexverwaltungs-(CM-)Betriebsmodus
ist. Der Prozessorkern 20 wird veranlasst, in den CM-Modus überzugehen, gemäß jeder
geeigneten Technik. Wenn ein Prozessorkern 20 in dem CM-Modus
ist, wird es diesem Kern erlaubt, CMI-Adressen zum Ausführen des CM-Codes 52 und
zum Zugreifen auf den Rest der CMI-Region 62 zu erzeugen,
für einen
Zugriff auf CM-Daten. Wenn der Netzagent 40 eine Adresse empfängt, die
in dem CMI-Speicheradressraum 66 ist, erlaubt es der Netzagent 40 einer
solchen Adresse und zugeordneten Speicheranforderung, abgearbeitet
zu werden. Diesbezüglich übersetzt
der Netzagent 40 die empfangene CMI-Speicheradresse in einen Netzagenten.
-
Wie
es oben erklärt
ist, sind unerlaubte Partitionsspeicheradressraumadressen anders
als CMI-Speicheradressraumadressen, und können somit, beispielsweise
durch den Netzagenten 40, ohne weiteres erfasst werden
und unterschieden werden, von CMI-Speicheradressen in dem CMI-Speicheradressraum 66.
Partitionsspeicheradressen in dem unerlaubten Partitionsspeicheradressraum 68 wurden
durch einen Prozessorkern 20 erzeugt, der nicht in dem
CM-Modus war. Solchen. Adressverweisen kann nicht vertraut werden.
Somit ist jede Partitionsspeicheradressraumadresse, die der Netzagent 40 empfängt, die
auf die CMI-Region 52 abbilden würde, auf das Übersetztwerden
in eine Netzadresse hin, nicht erlaubt, und der Netzagent blockiert
solche Speicheranforderungen von der Abarbeitung. Bei zumindest
einigen Ausführungsbeispielen
blockiert der Netzagent 40 solche Anforderungen, indem
er es nicht erlaubt, dass die Anforderungen abgearbeitet werden
und indem er ein Signal oder eine Mitteilung erzeugt, die das Auftreten
einer Adresse in dem unerlaubten Partitionsspeicheradressraum 68 anzeigt. Ein
solches auftreten kann einen Virus, einen Fehler oder eine andere
Art von Vergehen oder unbeabsichtigten Fehler anzeigen.
-
4 stellt
ein Verfahren 100 gemäß verschiedenen
Ausführungsbeispielen
dar. Bei 102 umfasst das Verfahren 100 den Netzagenten 40,
der eine Speicheranforderung empfängt, die eine Adresse in dem
Partitionsspeicheradressraum oder in der CMI-Speicheradresse enthalten
kann. Falls die Adresse in der Partitionsspeicheradresse ist, kann die
Adresse in dem erlaubten oder unerlaubten Partitionsspeicheradressraum 64 bzw. 68 sein.
In 4 wird eine Partitionsspeicheradresse in dem erlaubten Partitionsspeicheradressraum 64 als „P: 64" bezeichnet, während eine
Partitionsspeicheradresse in dem unerlaubten Partitionsspeicheradressraum 68 als „P: 68" bezeichnet wird.
Eine Adresse in dem CMI-Speicheradressraum 66 wird
in 4 als „P:
CMI" bezeichnet.
-
Bei 104 umfasst
das Verfahren 100 das Bestimmen, ob die Adresse in der
Speicheranforderung eine Adresse in dem erlaubten Partitionsspeicheradressraum 64 (P: 64),
dem unerlaubten Partitionsspeicheradressraum 68 (P: 68)
oder dem CMI-Speicheradressraum 66 (P: CMI) ist. Der Speicheranforderung
wird es bei 106 erlaubt, abzuarbeiten, falls die Adresse,
die das Ziel der Speicheranforderung ist, P: CMI oder P: 64 ist.
Eine Speicheranforderung, die eine P: 68 Adresse enthält (d. h.
eine Adresse in dem unerlaubten Partitionsspeicheradressraum 68)
wird bei 108 von der Abarbeitung blockiert.
-
Die
obige Beschreibung soll die Prinzipien und verschiedenen Ausführungsbeispiele
der vorliegenden Erfindung darstellen. Für Fachleute auf diesem Gebiet
sind zahlreiche Variationen und Modifikationen offensichtlich, sobald
die obige Offenbarung vollständig
klar ist. Die folgenden Ansprüche
umfassen alle solchen Variationen und Modifikationen.