-
ERFINDUNGSGEBIET
-
Die Erfindung betrifft im allgemeinen
das Gebiet des heißen
Steckens von Vorrichtungen. Insbesondere betrifft die Erfindung
ein Verfahren und eine Vorrichtung zur Aufzählung von Prozessoren während des
heißen
Steckens eines Rechenknotens.
-
STAND DER
TECHNIK
-
Die Entwicklung von Server-Chipsätzen und Server-Produkten, die für Serversysteme
der Unternehmensklasse der oberen Preislage bestimmt sind, erfordert
sorgfältige
Berücksichtigung
von sowohl Erfordernissen der Zuverlässigkeit, Verfügbarkeit
und Funktionstüchtigkeit
(RAS – reliability,
availability and serviceability) als auch Merkmalen. Solche Produkte können zur
Verwendung als Back-end-Server (wie beispielsweise in einem Datenzentrum)
bestimmt sein, wo RAS-Merkmale und -Erfordernisse so bedeutsam wie Systemleistung
sind. Die Fähigkeit,
Module in einem Computersystem auszutauschen, ohne einen Computer
ab- oder auszuschalten, ist vorteilhaft. Dieses "Austauschen" ist unter verschiedenen Bezeichnungen,
wie beispielsweise heißer
Anschluß, heißes Austauschen,
heißes
Zufügen,
heißes
Herausnehmen, Fähigkeit
des heißen
Steckens usw., bekannt.
-
Infolgedessen ist die Implementierung
einer Fähigkeit
des heißen
Steckens (hot plug) in Systemen der Unternehmensserverklasse ein
entscheidendes RAS-Merkmal. Die Fähigkeit des heißen Steckens
ermöglicht
Aufrüstungen
und Reparatur von Knoten in einem System ohne Abschalten oder Neuladen
des Systems. Die Fähigkeit
des heißen Steckens
von verschiedenen Teilen eines Computersystems, wie beispielsweise
Prozessoren, Speicher, E/A-(Ein-Ausgabe-)Platinen,
Modulen usw., ist infolgedessen nützlich zum Austauschen von
fehlerhaften Teilen, Durchführen
von Systemaktualisierungen und dergleichen.
-
Das heiße Stecken von CPU-Speicher
bezieht sich auf die Fähigkeit,
einen Prozessor/Speicherknoten hinzuzufügen/herauszunehmen/auszutauschen,
während
das Betriebssystem (OS – operating
system) weiter auf der Plattform abläuft. Auf ähnliche Weise ist das heiße Stecken
eines E/A-Knotens die Fähigkeit,
einen aus mehreren PCI-Grundbrücken
(peripheral component interconnect) und Bussegmenten bestehenden
E/A-Knoten hinzuzufügen, herauszunehmen,
auszutauschen, während
das OS weiter abläuft.
Der Fachmann wird erkennen, daß das
heiße
Stecken von CPU/Speicher, E/A-Knoten (heißes Stecken von E/A-Knoten
im Unterschied zu heißem
PCI-Stecken, dadurch,
daß mehrere
Grundbrücken
heiß gesteckt
werden) ein Merkmal ist, das nicht durch gegenwärtige Systemarchitekturen und Betriebssysteme
unterstützt
wird.
-
Bis jetzt ist das heiße Stecken
von Vorrichtungen auf PCI-Vorrichtungen beschränkt gewesen. Die Möglichkeit,
PCI-Vorrichtungen heiß zu
stecken, wird durch die PCI-Busdefinition
geboten. Demnach bietet die PCI-Busdefinition
zwei Eigenschaften, die das heiße
Stecken von PCI-Vorrichtungen ermöglichen. Die PCI-Busdefinition bietet
einen Mechanismus zum Aufzählen
von Vorrichtungen an einem PCI-Bus über PCI-Konfigurationsmechanismen. Darüber hinaus
bietet die PCI-Busdefinition einen Mechanismus zum Aufzählen der
von einer PCI-Vorrichtung benötigten
Ressourcen über
die PCI-Basisadreßregister
(BAR) in dem PCI-Konfigurationsraum für die Vorrichtung.
-
Wie oben beschrieben, bezieht sich
heißes Stecken
auf die Fähigkeit
einer Vorrichtung, zu einem Computer system hinzugefügt/aus ihm
herausgenommen zu werden, während
das System eingeschaltet ist, und ein Betriebssystem fährt, ohne
daß die
gegenwärtig
auf dem System ablaufenden Aufgaben bedeutsam beeinflußt werden.
Auf Grundlage der oben beschriebenen Eigenschaften der PCI-Busdefinition werden
von einem Betriebssystem zwei Eigenschaften zum heißen Stecken
einer Vorrichtung benötigt.
Als erstes muß die
Vorrichtung aufzählbar sein.
Zweitens müssen
die Vorrichtungsressourcen aufzählbar
sein.
-
Anders gesagt, ist ein Softwaremechanismus
erforderlich, der vom Betriebssystem dazu benutzt werden kann, zu
erkennen, wenn die Vorrichtung heiß zugefügt wird, oder zu erkennen,
wenn eine Vorrichtung herausgenommen wird. Weiterhin müssen die
Ressourcen der Vorrichtung aufzählbar sein,
ehe die Vorrichtung irgendeine der Ressourcen (Speicherraum, E/A,
Konfigurations-ID) decodiert, über
die das gegenwärtig
ablaufende Betriebssystem Bescheid weiß. Gleicherweise kann die Vorrichtung zum
heißen
Stecken keine der Ressourcen benutzen, die das ablaufende System
benutzt, bis das Betriebssystem weiß, welche Vorrichtung heiß gesteckt wird.
Sobald ein heißes
Stecken erkannt wird, ist Aufzählung
der Ressourcen, die die heiß gesteckte
Vorrichtung benutzen wird, erforderlich.
-
Leider wird das heiße Stecken
von Prozessor/Speicher-Knoten
nicht von gegenwärtigen
Betriebssystemen unterstützt.
Das beruht darauf, daß keine
Mechanismen für
die Aufzählung
von Prozessor-Speicher/Knoten zur Verfügung stehen/definiert sind.
Zusätzlich
sind keine standardmäßigen Mechanismen
zur Aufzählung
der von Prozessor/Speicherknoten erforderten Ressourcen verfügbar. Da
die oben beschriebenen Eigenschaften zum Ermöglichen des heißen Steckens
einer Vorrichtung nicht von Prozessor/Speicherknoten bereitgestellt
werden, würde
die Implementierung eines Mechanismus zum Unterstützen des
heißen
Steckens von Prozessoren und Speicherknoten mög licherweise die Definition
einer neuen Busschnittstelle zur Aufzählung von Prozessoren erfordern.
-
Es besteht daher weiterhin ein Erfordernis, eine
oder mehrere der im oben beschriebenen bestehenden Begrenzungen
zu überwinden.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Die vorliegende Erfindung wird beispielhafterweise
und nicht begrenzend in den Figuren der beiliegenden Zeichnungen
dargestellt. In den Zeichnungen zeigt:
-
1 ein
Blockdiagramm einer Netzcomputerumgebung nach dem Stand der Technik.
-
2 ein
Blockdiagramm eines herkömmlichen
Computersystems.
-
3 ein
Blockdiagramm des heißen
Steckens einer PCI-Vorrichtung
nach dem Stand der Technik.
-
4 ein
Blockdiagramm eines Systems, bei dem die vorliegende Erfindung ausgeübt werden kann,
gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
5A und 5B weiterhin einen Rechenknoten
nach der Darstellung in 4 gemäß einer
weiteren Ausführungsform
der vorliegenden Erfindung.
-
6 ein
Blockdiagramm einer weiteren Ausführungsform eines Systems, in
dem die vorliegende Erfindung ausgeübt werden kann.
-
7 ein
Blockdiagramm einer Bushierarchie einer Systemkonfiguration gemäß einer
weiteren Ausführungsform
der vorliegenden Erfindung.
-
8 ein
Flußdiagramm
eines Verfahrens zur Aufzählung
von Prozessoren während
des heißen
Steckens eines Rechenknotens gemäß einer Ausführungsform
der vorliegenden Erfindung.
-
9 ein
Flußdiagramm
eines zusätzlichen Verfahrens
zur aufzählenden
Erkennung eines oder mehrerer Prozessoren gemäß einer weiteren Ausführungsform
der vorliegenden Erfindung.
-
10 ein
Flußdiagramm
eines zusätzlichen
Verfahrens zum Setzen einer Prozessor-ID eines erkannten Prozessors
gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
11 ein
Flußdiagramm
eines zusätzlichen Verfahrens
zum Einleiten eines Quittungsaustauschs mit einem ablaufenden Betriebssystem
gemäß einer weiteren
Ausführungsform
der vorliegenden Erfindung.
-
12 ein
Flußdiagramm
eines zusätzlichen
Verfahrens zum Einleiten eines Quittungsaustauschs mit einem ablaufenden
Betriebssystem gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung.
-
13 ein
Flußdiagramm
eines zusätzlichen
Verfahrens zum Erkennen von einem oder mehreren Prozessoren gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung.
-
14 ein
Flußdiagramm
eines zusätzlichen
Verfahrens zum Setzen einer Prozessor-ID eines erkannten Prozessors
gemäß einer
weiteren Ausführungsform
der vorliegenden Erfindung.
-
15 ein
Flußdiagramm
eines Verfahrens zur Aufzählung
von Prozessorressourcen nach dem heißen Stecken eines Rechenknotens
gemäß einer Ausführungsform
der vorliegenden Erfindung.
-
16 ein
Flußdiagramm
eines zusätzlichen
Verfahrens zum Erkennen einer Benachrichtigung des heißen Steckens
gemäß einer
weiteren Ausführungsform
der vorliegenden Erfindung.
-
17 ein
Flußdiagramm
eines zusätzlichen
Verfahrens zur Aufzählung
von Prozessorressourcen gemäß der weiteren
Ausführungsform
der vorliegenden Erfindung.
-
18 ein
Flußdiagramm
eines zusätzlichen
Verfahrens zum Erkennen von einem oder mehreren Prozessoren nach
dem heißen
Stecken eines Rechenknotens gemäß einer
weiteren Ausführungsform
der vorliegenden Erfindung.
-
19 ein
Flußdiagramm
eines zusätzlichen
Verfahrens zur Bestimmung einer Prozessor-ID von jedem von einem
oder mehreren erkannten Prozessoren gemäß einer beispielhaften Ausführungsform
der vorliegenden Erfindung.
-
AUSFÜHRLICHE
BESCHREIBUNG
-
Es werden ein Verfahren und eine
Vorrichtung zur Aufzählung
von Prozessoren während
des heißen
Steckens eines Rechenknotens beschrieben. Das Verfahren umfaßt die Aufzählung von
einem oder mehreren Prozessoren als Reaktion auf eine Rücksetzung
bei heißem
Stecken (hot-plug
reset). Die Aufzählung
wird von dem Betriebssystem durchgeführt, das auf einem System abläuft, in
dem ein Prozessor/Speicherknoten heiß gesteckt wird. Sobald die
Aufzählung
abgeschlossen ist, wird der Prozessor/Speicherknoten als Reaktion
auf eine Betriebssystem-Aktivierungsanforderung gestartet. Dementsprechend
werden, sobald die Vorrichtungsaufzählung, wie auch die Ressourcenaufzählung abgeschlossen
sind, der eine oder die mehreren Prozessoren des Prozessor/Speicherknotens
aktiviert, so daß das
Betriebssystem beginnen kann, die Prozessoren des heiß gesteckten
Prozessor/Speicherknotens zu benutzen.
-
In der nachfolgenden Beschreibung
werden für
Erläuterungszwecke
zahlreiche bestimmte Einzelheiten aufgeführt, um ein gründliches
Verständnis der
vorliegenden Erfindung zu bieten. Es wird dem Fachmann jedoch offenbar
sein, daß die
vorliegende Erfindung ohne einige dieser spezifischen Einzelheiten
ausgeübt
werden kann. Zusätzlich
bietet die nachfolgende Beschreibung Beispiele und die beiliegenden
Zeichnungen zeigen für
Erläuterungszwecke verschiedene
Beispiele. Diese Beispiele sind jedoch nicht als begrenzend auszulegen,
da sie nur Beispiele der vorliegenden Erfindung und nicht eine erschöpfende Liste
aller möglichen
Ausführungen
der vorliegenden Erfindung bieten sollen. In anderen Fällen sind
wohlbekannte Strukturen und Vorrichtungen in Blockdiagrammform dargestellt,
um zu vermeiden, daß die
Einzelheiten der vorliegenden Erfindung verdeckt werden.
-
Teile der nachfolgenden ausführlichen
Beschreibung können
als Algorithmen und symbolische Darstellungen von Operationen an
Datenbit dargestellt sein. Diese algorithmischen Beschreibungen und
Darstellungen werden vom Fachmann der Technik der Datenverarbeitung
dazu benutzt, die Substanz seiner Arbeit anderen Fachmännern in
dieser Technik zu vermitteln. Ein Algorithmus, so wie er hier beschrieben
ist, bezieht sich auf eine konsequente Folge von Handlungen, die
zu einem gewünschten Ergebnis
führen.
Die Handlungen sind solche, die physikalische Manipulationen von
physikalischen Größen erfordern.
Diese Größen können die
Form von elektrischen oder magnetischen Signalen annehmen, die gespeichert, übertragen,
kombiniert, verglichen und sonstwie manipuliert werden können. Weiterhin
werden diese Signale hauptsächlich
aus Gründen
des normalen Gebrauchs als Bit, Werte, Elemente, Symbole, Zeichen,
Glieder, Nummern oder dergleichen bezeichnet.
-
Diese und ähnliche Begriffe sollen jedoch den
entsprechenden physikalischen Größen zugeordnet
werden und sind nur auf diese Größen angewandte
zweckdienliche "Etikette". Wenn nicht besonders
anders angegeben, wird man erkennen, daß Erörterungen, bei denen Begriffe
wie "Verarbeitung" oder "Berechnung" oder "Rechnung" oder "Bestimmung" oder "Anzeige" oder dergleichen
verwendet werden, die Funktion und Prozesse eines Computersystems
oder einer ähnlichen
elektronischen Rechenvorrichtung betreffen, die Daten manipuliert,
die als physikalische (elektronische) Größen in den Vorrichtungen des
Computersystems dargestellt sind, und in andere Daten umformt, die
auf ähnliche
Weise als physikalische Größen in den
Vorrichtungen des Computersystems, wie beispielsweise Speichern, Registern
oder anderen derartigen Informationsspeicherungs-, Übertragungs-,
Anzeigevorrichtungen oder dergleichen dargestellt sind.
-
Die hier dargestellten Algorithmen
und Anzeigen beziehen sich nicht inhärent auf irgendeinen bestimmten
Computer oder sonstige Vorrichtung. Verschiedene Mehrzwecksysteme
können
mit Programmen gemäß der hiesigen
Lehre benutzt werden, oder es kann sich als zweckdienlich erweisen,
spezialisiertere Vorrichtungen zur Durchführung des erforderlichen Verfahrens
zu konstruieren. Beispielsweise können beliebige Verfahren gemäß der vorliegenden Erfindung
in festverdrahteten Schaltungen, durch Programmierung eines Mehrzweckprozessors
oder durch eine beliebige Kombination von Hardware und Software
implementiert werden.
-
Der Fachmann wird sofort erkennen,
daß die Erfindung
mit anderen Computersystemkonfigurationen als den unten beschriebenen,
einschließlich
von Handgeräten,
Mehrprozessorsystemen, mikroprozessorbasierender oder programmierbarer
Unterhaltungselektronik, DSP-Vorrichtungen (digital signal processing),
Netz-PC, Minicomputern, Mainframes und dergleichen ausgeübt werden
kann. Die Erfindung kann auch in verteilten Rechenumgebungen aus geübt werden,
wo Aufgaben durch Fernverarbeitungsvorrichtungen durchgeführt werden,
die über ein
Kommunikationsnetz miteinander verknüpft sind. Die erforderliche
Struktur für
verschiedene dieser Systeme wird aus der untenstehenden Beschreibung offenbar
werden.
-
Es versteht sich, daß vom Fachmann
verschiedene Begriffe und Verfahren zur Beschreibung von Kommunikationen,
Protokollen, Anwendungen, Implementierungen, Mechanismen usw. benutzt
werden. Ein derartiges Verfahren ist die Beschreibung einer Implementierung
eines Verfahrens als ein Algorithmus oder ein mathematischer Ausdruck.
Das heißt,
während
das Verfahren beispielsweise als Ausführung von Code auf einem Computer
implementiert werden kann, kann der Ausdruck dieses Verfahrens zutreffender
und prägnanter
als Formel, Algorithmus oder mathematischer Ausdruck vermittelt
und kommuniziert werden.
-
So würde ein Fachmann einen Block
mit der Bezeichnung A + B = C als Additionsfunktion erkennen, deren
Implementierung in Hardware und/oder Software zwei Eingaben (A und
B) erfordern und eine Summierungsausgabe (C) erzeugen würde. So
soll die Verwendung einer Formel, eines Algorithmus oder eines mathematischen
Ausdrucks in Beschreibungen so verstanden werden, daß sie eine
physikalische Ausführungsform
in zumindest Hardware und/oder Software aufweist (wie beispielsweise
ein Computersystem, in dem die Verfahren der vorliegenden Erfindung
sowohl ausgeübt
werden als auch als Ausführungsform
implementiert sein können).
-
Bei einer Ausführungsform sind die Verfahren
der vorliegenden Erfindung in maschinenablauffähigen Anweisungen verwirklicht.
Die Anweisungen können
dazu benutzt werden, einen Mehrzweck- oder Spezialprozessor, der
mit den Anweisungen programmiert ist, zu veranlassen, die Schritte
der vorliegenden Erfindung durchzuführen. Als Alternative könnten die
Schritte der vorliegenden Er findung durch spezifische Hardwareelemente
durchgeführt werden,
die fest verdrahtete Logik zur Durchführung der Schritte enthalten,
oder durch irgendeine Kombination von programmierten Computerelementen
und anwendungsspezifischen Hardwareelementen.
-
Bei einer Ausführungsform kann die vorliegende
Erfindung als Computerprogrammprodukt bereitgestellt werden, das
ein maschinen- oder computer-lesbares Medium enthalten kann, auf
dem Anweisungen gespeichert sind, die zur Programmierung eines Computers
(oder sonstiger Elektronikvorrichtungen) zur Durchführung eine
Verfahrens gemäß der vorliegenden
Erfindung benutzt werden können.
Das computerlesbare Medium kann Disketten, optische Platten, CD
ROM (Compact Disc Read-Only Memory) und magnetooptische Platten,
ROM (Read-Only Memory), RAM (Random Access Memory), EPROM (Erasable
Programmable Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only
Memory), magnetische oder optische Karten, Flash-Speicher oder dergleichen
umfassen, ist aber nicht darauf beschränkt.
-
Dementsprechend enthält das computerlesbare
Medium irgendeine Art von medien-/maschinenlesbarem Medium, das
zum Speichern von elektronischen Anweisungen geeignet ist. Darüber hinaus kann
die vorliegende Erfindung auch als Computerprogrammprodukt heruntergeladen
werden. Dabei kann das Programm von einem entfernten Computer (z.B.
einem Server) zu einem anfordernden Computer (z.B. einem Clienten) übertragen
werden. Die Übertragung
des Programms kann über
in einer Trägerwelle
oder einem sonstigen Ausbreitungsmedium verwirklichte Datensignale über eine
Kommunikationsstrecke (z.B. ein Modem, eine Netzverbindung oder
dergleichen) stattfinden.
-
Systemarchitektur
-
Nunmehr auf 1 Bezug nehmend, zeigt die 1 eine Netzumgebung 100,
in der die Verfahren der vorliegenden Erfindung implementiert werden können. Nach
der Darstellung enthält
die Netzumgebung mehrere Computersysteme, wie beispielsweise eine
Mehrzahl von Servern 104 (104-1, ..., 104-M) und
eine Mehrzahl von Clienten 108 (108-1, ..., 108-M),
die miteinander über
ein Netz 102 verbunden sind. Das Netz 102 kann
beispielsweise das Internet sein. Man beachte, daß als Alternative
das Netz 102 eines oder mehrere der folgenden sein oder
umfassen kann: ein lokales Netz (LAN – Local Area Network), ein
Weitverkehrsnetz (WAN – Wide
Area Network), eine Satellitenstrecke, ein Fasernetz, ein Kabelnetz
oder eine Kombination von diesen und/oder anderen. Das hier beschriebene
Verfahren und die Vorrichtung können
im wesentlichen auf eine beliebige Art von Kommunikationsmittel
oder -vorrichtung angewandt werden, ob örtlich oder abgesetzt, wie beispielsweise
ein LAN, ein WAN, einen Systembus, ein Plattenlaufwerk, Speicherung
usw.
-
Bezug nehmend auf 2 zeigt die 2 einen herkömmlichen Personal Computer 200 in Blockdiagrammform,
der für
einen beliebigen der in 1 gezeigten
Clienten 108 und Server 104 repräsentativ
sein kann. Das Blockdiagramm ist eine konzeptmäßige Darstellung auf hoher
Ebene und kann auf verschiedene Weisen durch verschiedene Architekturen
implementiert werden. Der Computer 200 enthält ein Bussystem 202,
das eine Zentraleinheit (CPU – Central
Processing Unit) 204, einen Nurlesespeicher (ROM – Read Only
Memory) 206, einen Direktzugriffsspeicher (RAM – Random
Access Memory) 208, einen Speicher 210, eine Anzeige 220,
eine Tonausgabe 222, eine Tastatur 224, einen
Zeiger 226, verschiedene Ein-Ausgabe-(E/A-)Vorrichtung 228 und
Kommunikationseinheit 230 miteinander verbindet.
-
Das Bussystem 202 kann beispielsweise
ein oder mehrere Busse vom Typ Systembus, PCI-Bus (Peripheral Component
Interconnect), AGP-Bus (Advanced Graphics Port), SCSI-Bus (Small Computer System
Interface), Fire Wire-Bus usw. sein. Die CPU 204 kann eine
einzelne, mehrfache oder auch verteilte Rechenressource sein. Der
ROM 206 kann eine beliebige Art von nichtflüchtigem
Speicher sein, der programmierbar sein kann, wie beispielsweise
maskenprogrammierbar, flash usw.
-
Zusätzlich kann der RAM 208 beispielsweise ein
statischer, dynamischer, synchroner, asynchroner Speicher oder eine
beliebige Kombination dieser sein. Der Speicher 210 kann
eine CD (Compact Disc), DVD (Digital Versatile Disk), Festplatte
(HD – Hard
Disc), optische Platte, Band, Flash-Speicher, Speicherstab, Videorekorder
usw. sein. Während
die Anzeige 220 beispielsweise eine Kathodenstrahlröhre (CRT – Cathode
Ray Tube), Flüssigkristallanzeige (LCD – Liquid
Crystal Display), ein Projektionssystem, ein Fernseher (TV – Television)
usw. sein kann, kann Audio 222 eine monophone, stereophone,
dreidimensionale Sound-Karte usw. sein.
-
Die Tastatur 224 kann eine
Tastatur, eine Elektrophontastatur, ein Tastenblock, eine Reihe
von Schaltern usw. sein. Der Zeiger 226 kann beispielsweise
eine Maus, ein Sensor-Eingabefeld, ein Trackball, ein Joystick usw.
sein. Die E/A-Vorrichtungen 228 können eine Sprachbefehleingabevorrichtung, eine
Daumenabdruckeingabevorrichtung, ein Chipkartenplatz, eine PC-Kartenschnittstelle
(Personal Computer Card-Schnittstelle), Zubehör für Virtual Reality sein, die
wahlweise über
einen Ein-Ausgangsanschluß 229 mit
anderen Vorrichtungen und Systemen verbunden sein können. Ein
Beispiel einer Universal-E/A-Vorrichtung 228 wäre eine
MIDI-Karte (Musical Instrument Digital Interface), bei der der E/A-Anschluß 229 mit
dem (den) Musikinstrumenten) verbunden ist.
-
Die Kommunikationsvorrichtung 230 könnte beispielsweise
ein Ethernet-Adapter für
LAN-Verbindungen (Local Area Network), eine Satellitenverbindung,
ein Set-Top-Box-Adapter,
ein xDSL-Adapter (Digital Subscriber Line), ein Funkmodem, ein herkömmliches
Telefonmodem, eine direkte Telefonverbindung, eine HFC-Verbindung
(Hybrid Fiber Coax), ein Kabelmodem usw. sein. Der externe Verbindungsanschluß 232 kann
nach Bedarf jede beliebige Zusammenschaltung zwischen einer abgesetzten Vorrichtung
und dem Bussystem 202 über
die Kommunikationsvorrichtung 230 ermöglichen.
-
Beispielsweise könnte die Kommunikationsvorrichtung 230 ein
Ethernet-Adapter sein, der über den
Verbindungsanschluß 232 beispielsweise
mit einem externen DSL-Modem
verbunden ist. Man beachte, daß je
nach der eigentlichen Implementierung eines Computersystems das
Computersystem einige, alle, mehr, oder eine Umordnung der Elemente
im Blockdiagramm umfassen kann. Beispielsweise könnte ein "dünner" Client (Thin Client)
aus einer drahtlosen Handvorrichtung bestehen, die beispielsweise
keine herkömmliche
Tastatur aufweist. So sind viele Variationen des Systems der 2 möglich.
-
Wieder auf 1 Bezug nehmend ist die Mehrzahl von
Clienten 108 effektiv mit Web-Seiten, Anwendungsdiensteanbietern,
Suchmaschinen und/oder Datenbankressourcen verbunden, die durch
Server, wie beispielsweise die Server 104, über das
Netz 102 dargestellt werden. Der Web-Browser und/oder andere
Anwendungen laufen allgemein auf der Mehrzahl von Clienten 108 ab, während Informationen
im allgemeinen auf den Servern 104 residieren. Zur Erleichterung
der Erläuterung
soll ein einziger Server 104 bzw. ein einziger Client 108-1 eine
Ausführungsform
der vorliegenden Verfahren darstellen. Es ist leicht ersichtlich,
daß diese
Verfahren leicht auf mehrere Clienten, Server oder dergleichen anwendbar
sind.
-
Nunmehr Bezug nehmend auf 3 zeigt die 3 ein Blockdiagramm des heißen Steckens einer
PCI-Vorrichtung,
beispielsweise im Computer 200 nach der Darstellung in 2. Wie oben beschrieben,
ist das herkömmliche
heiße
Stecken von Vorrichtungen auf PCI-Vorrichtungen beschränkt gewesen. Um ein heißes PCI-Stecken zu ermöglichen, sieht
die PCI-Bus-Definition zwei Eigenschaften vor, die für das heiße Stecken
einer Vorrichtung erforderlich sind: (1) die PCI-Bus-Definition sieht
einen Mechanismus zum Auflisten von Vorrichtungen an einem PCI-Bus über die
PCI-Konfigurationsmechanismen vor; und (2) die PCI-Bus-Definition
bietet einem Mechanismus zum Aufzählen oder Auflisten der durch
eine PCI-Vorrichtung benötigten
Ressourcen über
die PCI-Basisadreßregister
(BAR) und den Geräte-PCI-Konfigurationsraum.
-
Dementsprechend kann, wie in 3 dargestellt, ein PCI-Adapter 302 in
einen PCI-Steckplatz 312 eingesteckt werden. Bei der beschriebenen
Ausführungsform
signalisiert das mechanische Schließen des Schalters 314 des
PCI-Steckplatzes eine Unterbrechung (Interrupt) zu einer Hot-Plug-Steuerung 330 (Steuerung
für heißes Stecken).
Sobald dabei die Hot-Plug-Steuerung 330 eine Unterbrechung, beispielsweise über den
Schalter 332, empfängt,
liefert ein Benachrichtigungsblock der Hot-Plug-Steuerung 334 eine Unterbrechung
(Interrupt) zu einer CPU 340. Nach der Darstellung enthält die Hot-Plug-Steuerung 334 ein
Register 336, das sowohl die PC-Busnummer wie auch die Vorrichtungsnummer
der heiß gesteckten
Vorrichtung anzeigt. Diese Informationen werden über den Interrupt 338 für die CPU 340 bereitgestellt.
Zusätzlich
wird der Interrupt auch für
die Software 350 zur Verfügung gestellt, die den PCI-Konfigurationsraum 320 zur
Untersuchung der Basisadreßregister 326 im
PCI-Konfigurationsraum 320 nutzt.
-
Auf Grundlage der Analyse der BAR 326 ist demnach
die Software 350 in der Lage, die erforderlichen Ressourcen
der PCI-Vorrichtung aufzulisten und auch der heiß gesteckten Vorrichtung Zugang
zu den vom Computer 200 verfügbaren Ressourcen zu gewähren. Wie
in 3 dargestellt, wird
infolgedessen die Vorrichtungsauflistung durch die Hot-Plug-Steuerung 334 geliefert,
während
die Ressourcenauflistung durch die Basisadreßregister 326 bereitgestellt
wird, die beide durch die PCI-Bus-Definition aktiviert werden. Leider
wird das heiße
Stecken von Nicht-PCI-Vorrichtungen, wie beispielsweise Prozessorknoten,
nicht durch herkömmliche
Systeme unterstützt.
-
Nunmehr auf 4 Bezug nehmend zeigt die 4 eine Ausführungsform
eines Systems 400, bei der die vorliegende Erfindung angewandt
werden kann. 4 ist eine
Blockdiagrammdarstellung einer 8-Wege-Server-Architektur. Der Rechenknoten 402 enthält eine
Mehrzahl von mit einer skalierbaren Knotensteuerung (Scalable Node
Controller) (SNC0) 420 verbundenen Prozessoren (P) 410 (410-1,
..., 410-N) und eine Mehrzahl von anderen, mit SNC1 470 verbundenen
Prozessoren (P) 460 (460-1, ..., 460-N). Die
SNC0 420 steuert die Schnittstellen zu den Schaltern SPS0 430 und
SPS1 480 und ist auch eine an den Speicher 406 angeschlossene
Speichersteuerung. Auf gleiche Weise steuert die SNC1 470 die Schnittstellen
zu den Schaltern SPS1 480 und ist auch eine an den Speicher 454 angeschlossene Speichersteuerung.
Die Schalter SPS0 730 und SPS1 780 sind skalierbaren
Anschlußschalter
(SPS – Scalability
Port Switches) und wirken als Schalter zwischen Rechen-(Prozessor/Speicher-)Knoten 402 und 450 und
E/A-Knoten (SIOH0 432 und SIOH1 482).
-
Die Server-E/A-Hubs (SIOH – Server
I/O Hubs), SIOH0 432 und SIOH1 482 können als Grund-PCI-Brücken dienen.
SIOH0 432 und SIOH1 482 sind mit E/A-Steuerung
Hub 2 (ICH2) 434 bzw. 484 verbunden,
ICH2 434 ist über 436 und
ICH2 484 über 486 verbunden.
Bei einer Ausführungsform
sind SIOH0 432 und SIOH1 482 mit beispielsweise
verschiedenen Legacy-Vorrichtungen, wie beispielsweise USB-Vorrichtungen,
AC'97-Vorrichtungen
usw. verbunden. ICH2 434 und ICH2 484 können auch
Power-Management-Schnittstellen
steuern.
-
SIOH0 432 und SIOH1 482 sind
auch mit PCI-IBA (Infiniband-)Brücken,
IVXB 442 und 492 und über Verbindungen 444 und 494 mit
Vorrichtungen verbunden. Ebenfalls in dieser Ausführungsform
dargestellt sind SIOH0 432 und SIOH1 482 auch
mit PCI 64 Hub2-Vorrichtungen (P64H2) 438, 446 und 488, 496 verbunden.
P64H2 weist zwei PCI-PCI-Brücken, zwei
PCI-Hot-Plug-Steuerungen und zwei E/A-API-Steuerungen (Advanced
Programmable Interrupt Controllers) auf. So ist P64H2 446 über Verbindungen 448 an
Vorrichtungen, P64H2 438 über Verbindungen 440 an
Vorrichtungen, P64H2 496 über Verbindungen 498 an
Vorrichtungen und P64H2 488 über Verbindungen 490 an
Vorrichtungen angeschlossen.
-
Es ist in Betracht zu ziehen, daß in einem System,
wie dem in 4 dargestellten
das heiße Stecken
von Rechenknoten 402/450 nicht unterstützt wird.
In einem voll funktionsfähigen
System würde beispielsweise
der Ausfall eines Rechenknotens 402/450 das Abschalten
des gesamten Systems 400 erfordern, um den fehlerhaften
Knoten auszutauschen. Weiterhin erfordern Systemaufrüstungen
und Reparaturen von Rechenknoten ein Abschalten des Systems, es
sei denn das heiße
Stecken von Rechenknoten wird unterstützt. Leider würde das
heiße Stecken
von Rechenknoten eine neue Busdefinition erfordern, um die für das heiße Stecken
von Vorrichtungen erforderliche Vorrichtungs- und Ressourcenaufzählung bereitzustellen.
-
Nunmehr auf 5A Bezug nehmend, zeigt die 5A weiterhin den Rechenknoten 402 als
das Computersystem 400 nach der Darstellung in 4. Aus den oben beschriebenen
Gründen
wird das heiße
Stecken des Rechenknotens 402 im Computersystem 400 nach
der Darstellung in 4 gegenwärtig nicht
durch herkömmliche
Systeme unterstützt. Auf
Grundlage der für
ein heißes
PCI-Stecken erforderlichen
Eigenschaften werden jedoch die folgenden Eigenschaften bereitgestellt,
um das heiße Stecken
eines Rechenknotens zu unterstützen.
Als erstes bietet die vorliegende Erfindung einen Mechanismus zur
Vorrichtungsaufzählung.
Bei einer Ausführungsform
wird ein Softwaremechanismus bereitgestellt, der vom Betriebssystem
des Rechensystems 400 benutzt werden kann, um zu erkennen,
wenn ein Rechenknoten heiß gesteckt
oder heiß zugefügt wird oder
zu erkennen, wenn der Rechenknoten entfernt wird.
-
Zusätzlich beschreibt die vorliegende
Erfindung einen Mechanismus zur Aufzählung von Rechenknotenressourcen.
Wie oben beschrieben, müssen
Ressourcen aufzählbar
sein, ehe eine Vorrichtung irgendeine der Ressourcen (Speicherraum, E/A-Raum
usw.) decodiert, über
die das gegenwärtig ablaufende
Betriebssystem Bescheid weiß.
Anders gesagt kann die heiß gesteckte
Vorrichtung die vom ablaufenden System benutzten Ressourcen erst
benutzen, wenn das Betriebssystem weiß, welche Vorrichtung heiß gesteckt
wird und welche Ressourcen die heiß gesteckte Vorrichtung benutzen
wird.
-
Dementsprechend sind die Verfahren
zur Vorrichtungsaufzählung
und Ressourcenaufzählung gemäß einer
Ausführungsform
der vorliegenden Erfindung wie folgt. Bei einer Ausführungsform
wird der Konfigurationsraum einer einem heiß gesteckten Rechenknoten zugeordneten
PCI-Vorrichtung
zum Registrieren der Gegenwart/Abwesenheit eines an den Rechenknoten
angekoppelten Prozessors benutzt. Bei einer Ausführungsform wird dies durch
Offenbarung der Gegenwart und Abwesenheit der Vorrichtung über eine
zutreffende Power-Management-Spezifikation, wie beispielsweise die
ACPI-Mechanismen (Advanced Configuration and Power Management Interface)
durchgeführt.
-
Wie oben angedeutet, ist die PCI-Vorrichtung
für einen
Rechenknoten die skalierbare Knotensteuerung (SNC0) 420,
und der verfügbare
Raum bezieht sich auf beispielsweise CPUKILL-Bit eines CPUKILL-Registers 426, die
in einem Systemrücksetzregister 425 des
PCI-Konfigurationsraums SNC0 420 enthalten sind. Bei der
beschriebenen Ausführungsform
werden die CPUKILL-Bit dazu benutzt, die Gegenwart von Prozessoren
im Rechenknoten widerzuspiegeln. Dementsprechend ist bei einer Ausführungsform
das auf SNC0 420 ablaufende BIOS vor seiner Teilnahme am
ablaufenden System für
die Erkennung der Gegenwart von Prozessoren über die bestehenden residenten
Architekturmechanismen (herkömmliche
Verfahren) und Widerspiegelung dieser Gegenwart/Abwesenheit in den
CPUKILL-Bit verantwortlich.
-
Zusätzlich wird ein dynamischer
Mechanismus zum Identifizieren der Prozessorressourcen bereitgestellt.
Bei einer Ausführungsform
werden die Prozessorressourcen über
Informationen im Konfigurationsraum einer dem Rechenknoten zugeordneten PCI-Vorrichtung
identifiziert. Wie oben angedeutet, ist die entsprechende PCI-Vorrichtung die skalierbare
Knotensteuerung (SNC0 420/SNC1 470). Bei der beschriebenen
Ausführungsform
ist die sichtbare Prozessorressource des Betriebssystems die APIC-Identifikation
(Advanced Programmable Interrupt Controller) (APIC ID) des Prozessors.
-
Wie in 5B gezeigt,
enthält
dementsprechend der Prozessor 410 einen APIC-Bereich 412, der
ein APIC-ID-Register 414 enthält. Dabei
wird ein dynamischer Mechanismus zum Rücksetzen einer APIC-ID jedes
heiß gesteckten
Prozessors mit einer eindeutigen ID, die als Reaktion auf eine Hot-Plug-Rücksetzung
erzeugt wird, vorgesehen. Bei einer Ausführungsform benutzt die eindeutige APIC-ID
die Knoten-ID 424 von SNC0 420 und eine CPUKILL-Bit-Nummer,
die den jeweiligen Prozessor darstellt. Dabei umfaßt die APIC-ID
in der beschriebenen Ausführungsform
8 Bit und wird durch Verketten der 5-Bit-Knoten-ID 424 mit den 3
Bit der dem Prozessor entsprechenden CPUKILL-Bit gebildet.
-
Dabei ergibt die Kombination die
systemweite, eindeutige APIC-ID für jeden entsprechenden heiß gesteckten
Prozessor aufgrund der Tatsache, daß die Knoten-ID 424 der
SNC im gesamten System eindeutig ist. Bei einer alternativen Ausführungsform kann
jedoch anstatt der Knoten-ID die Kombination der PCI-Bus-Nummer
und einer Vorrichtungsnummer benutzt werden, aufgrund der Tatsache,
daß die Kombination
im gesamten gegebenen PCI-Segment eindeutig
sein wird. Zusätzlich
benutzt der standardmäßige ACPI-Mechanismus
zum Melden von Vorrichtungsressourcen diesen dynamischen Mechanismus
zum Melden von APIC-ID der Vorrichtung an das Betriebssystem.
-
Wieder Bezug nehmend auf 5A wird der Rechenknoten 402 zum
Ausführen
des System-BIOS als Reaktion auf eine Hot-Plug-Rücksetzanweisung aktiviert.
Bei einer Ausführungsform
wird die Erkennung des heißen
Steckens eines Prozessorspeicherknotens durch einen intelligenten
Agenten durchgeführt,
der beispielsweise das Verriegeln eines (nicht gezeigten) Schalters
erkennt, wenn der Rechenknoten beispielsweise in SPS1 480 nach
der Darstellung in 4 eingesteckt
wird. Dabei gibt nach der Erkennung der Agent das Hot-Plug-Rücksetzen
aus, damit das BIOS einen oder mehrere an den Rechenknoten angekoppelte
Prozessoren erkennt.
-
Dementsprechend wird in der beschriebenen Ausführungsform
das BIOS das CPUKILL-Register für
jeden erkannten Prozessor setzen. Nach der Erkennung sind die verschiedenen
APIC-ID jedes Prozessors gesetzt und sind eine Kombination der Knoten-ID 424 und
der den entsprechenden Prozessor darstellenden CPUKILL-Bit. Nach
der Durchführung kann
das BIOS einen Quittungsaustausch mit einem ablaufenden System der
Systemarchitektur einleiten, in der der Rechenknoten heiß gesteckt
wird, beispielsweise wie in 4 dargestellt.
-
Bei einer Ausführungsform setzt das BIOS ein
SPINCO-Registerbit
(Scalability Port Interface Control) zur Freigabe einer Verbindung 404 zu
einem skalierbaren Anschlußschalter,
wie beispielsweise SPS0 430 oder SPS1 480. Als
Reaktion auf das Setzen des SPINCO-Registers kann dementsprechend der
Rechenknoten 402 eine Unterbrechung ausgeben. Bei einer
Ausführungsform
wird eine Systemsteuerungsunterbrechung (SCI – System Control Interrupt)
zum ablaufenden Betriebssystem ausgegeben. Als Reaktion auf die
SCI kann das Betriebssystem ein Plattform-Teilsystem, wie beispielsweise
ein ACPI-Teilsystem starten. Nach dem Starten kann für das ACPI-Teilsystem
eine ACPI-Ereignisbenachrichtigung bereitgestellt werden, um ein
Aufzählungsverfahren
einzuleiten.
-
Bei einer Ausführungsform liest dieses Aufzählungsverfahren
dann die entsprechenden CBC-Register 422 (Chipset Boot
Configuration) und CPUKILL-Register 426, um jeden der an
den heiß gesteckten
Rechenknoten 402 angekoppelten Prozessoren aufzuzählen und
eine Vorrichtungsstruktur zu aktualisieren. Bei einer Ausführungsform
wird die Vorrichtungsstruktur durch das Betriebssystem gelesen,
um die Aufzählung
der heiß gesteckten
Prozessoren und auch der von den heiß gesteckten Prozessoren benutzten
Ressourcen zu empfangen. Bei einer Ausführungsform ist die Vorrichtungsstruktur
ein vom BIOS in den ACPI-Tabellen des Systems bereitgestellter MAT-Eintrag
(Multiple APIC Table). Einzelheiten des MAT-Verfahrens sind aus
der Spezifikation ACPI 2.0 ersichtlich.
-
Dabei kann das ablaufende Betriebssystem die
Datenstruktur der Vorrichtung benutzen und sobald die entsprechende
Vorrichtung und auch die Ressourcen festgestellt worden sind, kann
es eine Systeminitialisierungsanforderung an den Rechenknoten ausgeben,
um zu beginnen, den einen oder die mehreren daran angekoppelten
Prozessoren 410 zu betreiben. Dabei offenbart die vorliegende
Erfindung die Gegenwart und Abwesenheit der Vorrichtung über die
entsprechenden ACPI-Mechanismen und bedient sich eines dynamischen
Mechanismus zur Identifizierung von Prozessorressourcen über Informationen
im Konfigurationsraum einer skalierbaren Knotensteuerung. Daher
wird durch die vorliegende Erfindung das heiße Stecken von Rechenknoten,
wie beispielsweise in 4 und 5A dargestellt, ermöglicht.
-
6 zeigt
eine weitere Ausführungsform
eines Systems 500, wo die vorliegende Erfindung ausgeübt werden
kann. 6 ist eine Blockdiagrammdarstellung
einer 8-Wege-Serversystemarchitektur mit
vier, vier Prozessorknoten. Die vier Prozessorknoten sind 510 (510-1,
..., 510-4). Der Knoten 510-1 ist ausführlicher
dargestellt, wo vier Prozessoren (P) 502 (502-1,
..., 502-4) mit einer skalierbaren Knotensteuerung (SNC – Scalable
Node Controller) 504 sowie einem Speicher 506 und
einem LPC-Flash-BIOS 508 (Low
Pin Count) verbunden sind. Man beachte, daß die Prozessoren (P) auch über einen örtlichen Speicher
für ihre
eigene Verwendung, wie beispielsweise einen Cache-Speicher der Ebene 2 verfügen können. Die
SNC 504 ist an die Schalter SPS0 512 und SPS1 520 angeschlossen.
-
Gleicherweise weisen die anderen
Knoten 510-2–510-4 SNC
auf, die an die Schalter SPS0 512 und SPS1 520 angeschlossen
sind, und auch die Prozessoren P, Speicher und ein LPC-Flash-BIOS. Die
Schalter SPS0 512 und SPS1 520 sind skalierbare
Anschlußschalter
(SPS – Scalability
Port Switches) und wirken als Schalter zwischen Rechen-(Prozessor/Speicher-)Knoten
(510) und E/A-Knoten (SIOH0 514 und SIOH1 530).
Die Server-E/A-Hubs (SIOH – Server
I/O Hubs) SIOH0 514 und SIOH1 530 dienen als Grund-PCI-Brücken. SIOH0 514 und
SIOH1 520 sind mit E/A-Steuerungs-Hub 2 (ICH2) 518 bzw. 532 verbunden.
-
ICH2 518 weist Verbindungen
zu verschiedenen möglichen
Vorrichtungen und/oder Bussen auf. Beispiele sind Festplattenlaufwerke
(HDD – Hard Disk
Drive) 518-1, USB 518-2, IDE CD-ROM 518-3, PCI-Steckplätze 518-4,
Super-E/A 518-5 und
Firmware-Hub FWH 518-6. Man beachte, daß an diese Vorrichtungen und/oder
Busse andere Vorrichtungen und/oder Busse angeschlossen sein können. Beispielsweise
ist mit Super E/A 518-5 eine Tastatur-Steuerung KBC 518-6 (Keyboard
Controller) und verschiedene (Misc – Miscellaneous) Vorrichtungen 518-7 angeschlossen.
Diese verschiedenen Vorrichtungen können beispielsweise verschiedene
Legacy-Vorrichtungen, wie beispielsweise AC'97-Vorrichtungen, Power-Management-Vorrichtungen usw. sein.
Auf gleiche Weise kann ICH2 532 über Verbindung 533 an
verschiedene Vorrichtungen und/oder Busse angeschaltet sein.
-
Nach der Darstellung ist SIOH1 530 mit
Verbindungen 535 mit einer Brücke VXB 534 verbunden. Die
VXB 534 kann beispielsweise eine NGIO-Brücke (Next
Generation I/O – E/A
der nächsten
Generation) sein, wobei Verbindungen 535 NGIO-Kanäle darstellen.
Wie ebenfalls in dieser Ausführungsform
dargestellt, sind SIOH0 514 und SIOH1 530 mit
PCI 64 Hub2-Vorrichtungen (P64H2) 516-1 bis 516-N und 536 verbunden.
Die P64H2 weist zwei PCI-PCI-Brücken, zwei
PCI-Hot-Plug-Steuerungen und zwei E/A-APIC-Steuerungen (Advanced Programmable Interrupt
Controllers) auf. So würden
P64H2 516-1 bis 516-N jeweils über Verbindungen 517-1 bis 517-N an
Vorrichtungen angeschaltet sein.
-
7 zeigt
eine Bushierarchie 600 für eine Ausführungsform einer Systemkonfiguration.
Hier sind vier Knoten-SNC als SNC0 602, SNC1 604, SNC2 606 und
SNC3 608 bezeichnet. Zwei SPS sind als SPS0 610 und
SPS1 612 bezeichnet. Jede SNC (601–608) ist mit jedem SPS 610 und 612 verbunden. Als
nächstes
ist jeder SPS 610 und 612 mit jedem IOH (E/A-Hub)
IOH0 614 und IOH1 616 verbunden. Hier können SNC,
SPS und IOH jeweils Register enthalten, um Informationen, wie beispielsweise
Knoten-ID, Bustyp
usw. aufzubewahren. Zusätzlich
können
die IOH mit anderen Bussen, wie beispielsweise als Reihe von PCI-Bussen über solche
Vorrichtungen, wie Brücken,
Hub-Verbindungen usw., verbunden sein.
-
Was aus der Darstellung der 7 ersichtlich sein sollte,
ist die Fähigkeit,
durch Verwendung von von der SNC oder dem Prozessor aus zugänglichen
Informationen (siehe 5)
Rechenknoten-Hot-Plug-Erkennungs- wie auch Ressourceninformationen,
wie oben beschrieben, aufzuzählen. Diese
Vorrichtungsinformationen können
dynamisch erhalten werden, wodurch dem Betriebssystem und/oder der
Software ermöglicht
wird, heißes
Stecken von Rechenknoten, wie auch Prozessorressourcen aufzuzählen, um
mit der Nutzung der heiß gesteckten
Rechenknoten durch das Betriebssystem zu beginnen.
-
Dementsprechend beschreibt die vorliegende
Erfindung Verfahren zur Aufzählung
von an einen heiß gesteckten
Rechenknoten angekoppelten Prozessoren. Zusätzlich wird eine eindeutige
ID als eine Prozessor-ID jedes erkannten Prozessors gesetzt. Dieser
Mechanismus zur Einstellung der Prozessor-ID jedes erkannten Prozessors
ermöglicht
Vorrichtungsaufzählung
durch ein Aufzählungsverfahren,
das von einem ACPI-Teilsystem bereitgestellt wird. Dementsprechend
bestimmt das Aufzählungsverfahren
jeden erkannten Prozessor und die ID des erkannten Prozessors über verschiedene,
im Rechenknoten enthaltene Konfigurationsregister.
-
Nach der Bestimmung wird durch das
Aufzählungsverfahren
eine Vorrichtungsstruktur aktualisiert, um Vorrichtungsaufzählung und
Ressourcenaufzählung
der Prozessoren des heiß gesteckten
Rechenknotens für
das ablaufende Betriebssystem bereitzustellen. Durch Bereitstellung
dieser Informationen kann das ablaufende Betriebssystem beginnen, die
Prozessoren zu betreiben und zu nutzen, um ihnen Aufgaben zuzuweisen.
Dabei wird durch die hier beschriebenen Verfahren die Implementierung
einer neuen PCI-Definition zum Unterstützen des heißen Steckens
von Prozessor/Speicher-Knoten vermieden. Es werden nunmehr Verfahren
zur Implementierung der Lehren der vorliegenden Erfindung beschrieben.
-
Funktionsweise
-
Nunmehr Bezug nehmend auf 8 zeigt die 8 ein Flußdiagramm eines Verfahrens 700 zur
Durchführung
von Vorrichtungsaufzählung
von einem oder mehreren, an einen heiß gesteckten Prozessor/Speicher-Knoten 402/450 angekoppelten Prozessoren,
wie beispielsweise in 4-6 dargestellt. Im Verfahrensblock 702 wird
bestimmt, ob eine Hot-Plug-Rücksetzanweisung
empfangen worden ist. Nach ihrem Empfang wird der Verfahrensblock 704 durchgeführt. Im
Verfahrensblock 704 wird die Aufzählung eines oder mehrerer Prozessoren
durch das Betriebssystem durchgeführt, in das ein Rechenknoten
(z.B. 402) heiß gesteckt
wird.
-
Bei der beschriebenen Ausführungsform wird
die Aufzählung
im wesentlichen für
ein Aufzählungsverfahren
eines Power-Management-Teilsystems, wie beispielsweise die ACPI-Spezifikation,
vorgesehen, die die verschiedenen PCI-Konfigurationsregister des
heiß gesteckten
Rechenknotens abfragen kann. Unter Verwendung der Konfigurationsregister
kann das Verfahren die ID (Identifications – Kennzeichnungen) jedes erkannten
Prozessors bestimmen und diese Informationen wie auch die Prozessorressourcen
für ein
ablaufendes Betriebssystem aufzählen.
Sobald die Vorrichtungs- wie auch Ressourcenaufzählung für das Betriebssystem erstellt
worden ist, kann demnach die Nutzung des oder der heiß gesteckten
Prozessoren durch das laufende Betriebssystem beginnen.
-
Als nächstes wird im Verfahrensblock 720 bestimmt,
ob eine Betriebssystem-Aktivierungsanforderung empfangen worden
ist. Sobald die Aktivierungsanforderung empfangen wird, wird der
Verarbeitungsblock 780 durchgeführt. Im Verarbeitungsblock 780 wird
der eine oder die mehreren Prozessoren des heiß gesteckten Rechenknotens
gestartet. Dabei zeigt der Empfang der Aktivierungsanforderung an,
daß Aufzählung der
erkannten oder heiß ge steckten
Vorrichtungen wie auch der entsprechenden Ressourcen der Vorrichtungen
durch das Betriebssystem abgeschlossen worden ist. Dabei hat das
Betriebssystem in einer Ausführungsform
eine Vorrichtungsstruktur abgefragt, die mit entsprechenden Vorrichtungs-
und Ressourceninformationen belegt ist, die dem ablaufenden Betriebssystem
ermöglichen, zu
beginnen, die Prozessoren zu nutzen und ihnen Aufgaben zuzuweisen.
-
Nunmehr Bezug nehmend auf 9 zeigt die 9 ein Flußdiagramm eines Verfahrens 706 zum
Aufzählen
der Erkennung von einem oder mehreren Prozessoren des Verfahrensblocks 704 nach der
Darstellung in 8. Im
Verfahrensblock 708 wird ein oder mehrere an den heiß gesteckten
Rechenknoten angekoppelte Prozessoren erkannt. Nach der Erkennung
wird im Verfahrensblock 710 eine entsprechende Prozessor-ID
jedes des einen oder der mehreren erkannten Prozessoren auf einen jeweiligen
eindeutigen Wert gesetzt. Als nächstes
leitet der Rechenknoten im Verfahrensblock 750 einen Quittungsaustausch
mit dem ablaufenden Betriebssystem einer Architekturplattform ein,
auf der der Rechenknoten heiß gesteckt
wird. Bei einer Ausführungsform
wird durch Einleitung des Quittungsaustauschs eine Benachrichtigung
heiß gesteckt
für das Betriebssystem
bereitgestellt.
-
Nunmehr auf 10 Bezug nehmend zeigt die 10 ein Flußdiagramm
eines zusätzlichen Verfahrens 712 zum
Setzen einer entsprechenden Prozessor-ID des Verfahrensblocks 710,
wie in 9 dargestellt.
Im Verfahrensblock 714 wird ein Prozessor aus dem einen
oder den mehreren erkannten Prozessoren ausgewählt. Nach der Auswahl wird
im Verfahrensblock 730 eine eindeutige ID für den ausgewählten Prozessor
entsprechend einer dem Prozessor zugeordneten Prozessornummer und
einer Knoten-ID des Rechenknotens erzeugt. Dementsprechend ist in
der beschriebenen Ausführungsform die
Prozessornummer ein dem entsprechenden Prozessor zugeordneter CPUKILL-Registerwert,
während
sich die Knoten-ID auf eine im CBC-Register 422 der skalierbaren
Knotensteuerung (SNC0 420), nach der Darstellung in 5A, enthaltene Knoten-ID 424 bezieht.
-
Sobald eine eindeutige ID für den ausgewählten Prozessor
erzeugt ist, wird der Verfahrensblock 734 durchgeführt. Im
Verfahrensblock 734 wird eine Prozessor-ID in dem jeweiligen
Prozessor entsprechend der erzeugten eindeutigen ID aktualisiert. Dabei
wird in der beschriebenen Ausführungsform eine
APIC-ID des entsprechenden Prozessors auf die erzeugte eindeutige
ID gesetzt, beispielsweise durch das System-BIOS. Abschließend werden
im Verfahrensblock 736 die Verfahrensblöcke 714–734 für jeden erkannten Prozessor
wiederholt.
-
Nunmehr Bezug nehmend auf 11 zeigt die 11 ein Flußdiagramm
eines Verfahrens 752 zum Einleiten eines Quittungsaustauschs
mit dem ablaufenden Betriebssystem des Verfahrensblocks 750 nach
der Darstellung in 9.
Im Verfahrensblock 754 wird eine Knotenverbindung des Rechenknotens
freigegeben, um Kommunikation mit dem Systemarchitekturanschluß einzuleiten
(siehe 4). Dementsprechend
wird in der beschriebenen Ausführungsform
eine Verbindung einer skalierbaren Knotensteuerung aktiviert, um
Kommunikation mit einem skalierbaren Anschlußschalter, wie beispielsweise
dem SPS1 430 einzuleiten. Nach der Freigabe wird im Verfahrensblock 756 der
Rechenknoten zur Ausgabe einer Unterbrechung angewiesen. Abschließend gibt
der Rechenknoten im Verfahrensblock 758 eine Unterbrechung über den
skalierbaren Anschlußschalter
an das Betriebssystem aus.
-
Nunmehr Bezug nehmend auf 12 zeigt die 12 ein Flußdiagramm
eines zusätzlichen Verfahrens 760 zum
Einleiten eines Quittungsaustauschs mit dem ablaufenden Betriebssystem
des Verfahrensblocks 750 nach der Darstellung in 9. Im Verfahrensblock 762 wird
bestimmt, ob eine Systemunterbrechung vom ablaufenden Be triebssystem erkannt
wird. Nach der Erkennung leitet das ablaufende Betriebssystem im
Verfahrensblock 764 ein Plattform-Teilsystem ein. Bei einer
Ausführungsform bezieht
sich das Plattform-Teilsystem auf ein ACPI-Teilsystem. Als nächstes wird im Verfahrensblock 766 die
Benachrichtigung des Hot-Plug-Ereignisses für das Plattform-Teilsystem
bereitgestellt. Bei einer Ausführungsform
wird dies durch Erkennung eines zwischengespeicherten Bits durch
das Plattform-Teilsystem durchgeführt. Nach Bereitstellung der
Benachrichtigung arbeitet das Plattform-Teilsystem im Verfahrensblock 768 ein
Aufzählungsverfahren
ab, das Vorrichtungs- wie auch Ressourceninformationen des heiß gesteckten
Rechenknotens durchführt.
-
Nunmehr Bezug nehmend auf 13 zeigt die 13 ein zusätzliches
Verfahren 716 zur Erkennung des einen oder der mehreren
erkannten Prozessoren des Verfahrensblocks 714. Im Verfahrensblock 718 wird
ein Knotenprozessorregister des heiß gesteckten Rechenknotens
abgefragt, um einen Prozessorkapazitätswert des Rechenknotens zu
bestimmen. Bei einer Ausführungsform
wird dies durch Analyse des Systemrücksetzregisters des Rechenknotens
durchgeführt.
Im Rücksetzregister
enthält
ein Register mit CPUKILL-Bit eine jedem Prozessoranschluß des Rechenknotens
zugeordnete Prozessornummer und ein oder mehrere Bit zur Anzeige,
ob ein Prozessor an den Prozessoranschluß des Rechenknotens angekoppelt
ist (siehe 5A).
-
Nach Bestimmung des Kapazitätswertes wird
im Verfahrensblock 720 ein entsprechender Prozessoranschluß des Rechenknotens
ausgewählt. Nach
der Auswahl wird im Verfahrensblock 722 bestimmt, ob ein
Prozessor in einem ausgewählten
Anschluß geladen
ist. Erkennung des Prozessors wird entsprechend dem Fachmann bekannten
Prozessorerkennungsverfahren durchgeführt. Wenn ein Prozessor in
dem ausgewählten
Anschluß geladen
ist, wird der Verfahrensblock 724 durchgeführt. Im
Verfahrens block 724 wird ein Prozessorknoten-Registerwert
gesetzt, um die Gegenwart des erkannten Prozessors anzuzeigen. Abschließend werden
im Verfahrensblock 726, Verfahrensblöcke 720–724 für jeden der Prozessoranschlüsse wiederholt.
-
Nunmehr Bezug nehmend auf 14 zeigt die 14 ein zusätzliches
Verfahren 740 zum Setzen einer Prozessor-ID jedes erkannten
Prozessors. Im Verfahrensblock 742 wird eine entsprechende Prozessorknotenregister-Prozessornummer des
jeweiligen erkannten Prozessors ausgewählt. Nach der Auswahl wird
im Verfahrensblock 744 die ausgewählte Prozessornummer mit einem
Knotenregister-ID-Wert verkettet, um eine eindeutige ID zu bilden.
Nach ihrer Bildung wird im Verfahrensblock 746 eine Prozessor-ID
des entsprechenden Prozessors durch diese eindeutige ID ersetzt.
Abschließend
werden im Verfahrensblock 748 die Verfahrensblöcke 742-746 für jeden
erkannten Prozessor wiederholt. Dementsprechend bietet nach dem
Abschluß das Setzen
jeder Prozessor-ID Vorrichtungsaufzählung für das ablaufende Betriebssystem,
die in einer Ausführungsform über ein
von einem Plattform-Teilsystem eingeleitetes Aufzählungsverfahren
bereitgestellt wird.
-
Nunmehr Bezug nehmend auf 15 zeigt die 15 ein Flußdiagramm
eines Verfahrens 800 zur Durchführung von Vorrichtungs- wie
auch Ressourcenaufzählung
für ein
ablaufendes Betriebssystem als Reaktion auf das heiße Stecken
eines Rechenknotens in einem System, wie beispielsweise in 4–7 dargestellt.
Im Verfahrensblock 802 wird bestimmt, ob Benachrichtigung
des heißen
Steckens erkannt wird. Nach der Erkennung wird im Verfahrensblock 820 Aufzählung von
einem oder mehreren erkannten Prozessoren und Ressourcen jedes der erkannten
Prozessoren für
ein Betriebssystem der Systemarchitektur bereitgestellt, in dem
der Rechenknoten heiß gesteckt
ist.
-
Sobald Aufzählung der heiß gesteckten
Vorrichtungen, wie auch der Ressourcen der heiß gesteckten Vorrichtungen
für das
Betriebssystem bereitgestellt sind, wird der Verfahrensblock 860 durchgeführt. Im
Verfahrensblock 860 wird eine Aktivierungsanforderung zu
dem einen oder den mehreren Prozessoren des Rechenknotens übertragen,
um den Rechenknoten anzuweisen, jeden der an den Rechenknoten angekoppelten
Prozessoren zu starten. Nachdem sie gestartet worden sind, kann
das Betriebssystem beginnen, jedem einen oder mehreren erkannten
Prozessoren Aufgaben zuzuweisen, um mit der vollen Nutzung des heiß gesteckten
Rechenknotens zu beginnen.
-
Nunmehr Bezug nehmend auf 16 zeigt die 16 ein zusätzliches
Verfahren 806 zur Erkennung von Benachrichtigung eines
heißen
Steckens. Im Verfahrensblock 808 wird bestimmt, ob eine
Unterbrechung erkannt wird. Bei einer Ausführungsform ist die Unterbrechung
eine Systemsteuerungsunterbrechung, die durch den heiß gesteckten
Rechenknoten ausgegeben wird. Nach der Erkennung wird im Verfahrensblock 810 eine
Systemsteuerungsunterbrechung eingeleitet, um das ablaufende Betriebssystem
anzuweisen, ein Plattform-Teilsystem, beispielsweise ein ACPI-Plattform-Teilsystem,
wie oben beschrieben, zu starten. Als nächstes wird im Verfahrensblock 812 bestimmt,
ob das Plattform-Teilsystem gestartet worden ist. Nach dem Start
wird im Verfahrensblock 814 eine Benachrichtigung des Aufzählungsereignisses
an das Plattform-Teilsystem ausgegeben.
-
Nunmehr auf 17 Bezug nehmend, zeigt die 17 ein zusätzliches
Verfahren 822 zur Durchführung von Vorrichtungs- wie
auch Ressourceninformationen des Verfahrensblocks 820 nach
der Darstellung in 15.
Im Verfahrensblock 824 wird Erkennung eines oder mehrerer
an den heiß gesteckten
Rechenknoten angekoppelten Prozessoren durchgeführt. Nach der Durchführung werden auch eine
oder mehrere Ressourcen jedes der erkannten Prozessoren erkannt.
Im Verfahrensblock 840 wird eine Prozessor-Vorrichtungsstruktur
mit jeder Prozessor-ID jedes erkannten Prozessors und jeder der entsprechenden
Prozessorressourcen aktualisiert. Dementsprechend wird, wie oben
beschrieben, durch Aktualisierung der Prozessor-Vorrichtungsstruktur
Vorrichtungsaufzählung,
wie auch Ressourcenaufzählung,
für das
ablaufende Betriebssystem bereitgestellt, sobald das ablaufende
Betriebssystem die Vorrichtungsstruktur abfragt. Dabei wird das
ablaufende Betriebssystem durch Verwendung dieser Informationen
in der Lage sein, Aufgaben an die Prozessoren des heiß gesteckten
Rechenknotens auszugeben.
-
Nunmehr auf 18 Bezug nehmend, zeigt die 18 ein Flußdiagramm
eines zusätzlichen Verfahrens
zur Erkennung des einen oder der mehreren Prozessoren des Verfahrensblocks 824.
Im Verfahrensblock 828 wird ein entsprechender Prozessoranschluß des Rechenknotens
entsprechend beispielsweise den CPUKILL-Bit des Systemrücksetzregisters
ausgewählt.
Nach der Auswahl wird im Verfahrensblock 830 bestimmt,
ob ein Prozessor in dem Prozessoranschluß des Rechenknotens geladen
ist. Wie oben beschrieben, wird dieses Verfahren durch herkömmliche
Verfahren nach dem Stand der Technik durchgeführt. Als nächstes wird im Verfahrensblock 832 eine
ID des erkannten Prozessors bestimmt. Abschließend werden im Verfahrensblock 834 die
Verfahrensblöcke 828–832 für jeden
der Prozessoranschlüsse
des heiß gesteckten
Rechenknotens wiederholt, um jeden an den heiß gesteckten Rechenknoten angekoppelten
Prozessor zu erkennen.
-
Nunmehr auf 19 Bezug nehmend, zeigt die 19 ein Flußdiagramm
eines zusätzlichen Verfahrens 836 zum
Erkennen einer Prozessor-ID des einen oder der mehreren erkannten
Prozessoren, beispielsweise des Verfahrensblocks 824 nach der
Darstellung in 17. Im
Verfahrensblock 838 wird Auswahl einer Prozessornummer
für einen
entsprechenden erkannten Prozessor aus einem ent sprechenden Prozessorknotenregister
durchgeführt. Als
nächstes
wird im Verfahrensblock 840 die ausgewählte Prozessornummer mit einer
Knoten-ID des Rechenknotens verkettet, um eine ID des Prozessors zu
bestimmen. Abschließend
werden im Verfahrensblock 842 die Verfahrenblöcke 838–840 für jeden
des einen oder der mehreren erkannten Prozessoren des heiß gesteckten
Rechenknotens wiederholt, um eine Prozessor-ID für jeden der erkannten Prozessoren zu
bestimmen.
-
Dementsprechend beschreibt die vorliegende
Erfindung Verfahren zur Aufzählung
von an einen heiß gesteckten
Rechenknoten angekoppelten Prozessoren. Zusätzlich wird eine eindeutige
ID als eine Prozessor-ID jedes erkannten Prozessors gesetzt. Durch
diesen Mechanismus zum Setzen der Prozessor-ID jedes erkannten Prozessors
wird Vorrichtungsaufzählung
für ein
Aufzählungsverfahren
ermöglicht,
das von einem ACPI-Teilsystem bereitgestellt wird. Dementsprechend
bestimmt das Aufzählungsverfahren
jeden erkannten Prozessor und die ID des erkannten Prozessors über verschiedene,
im Rechenknoten enthaltene Konfigurationsregister.
-
Nach der Bestimmung aktualisiert
das Aufzählungsverfahren
eine Vorrichtungsstruktur, um Vorrichtungsaufzählung und Ressourcenaufzählung der
Prozessoren des heiß gesteckten
Rechenknotens für
das ablaufende Betriebssystem bereitzustellen. Durch Bereitstellung
dieser Informationen kann das ablaufende Betriebssystem damit beginnen,
die Prozessoren zu betreiben und zu nutzen, um ihnen Aufgaben zuzuweisen.
Dabei wird durch die hier beschriebenen Verfahren die Implementierung
einer neuen PCI-Definition zum Unterstützen des heißen Steckens
von Prozessor-Speicher-Knoten vermieden.
-
Alternative
Ausführungsformen
-
Es sind mehrere Aspekte einer Implementierung
einer Systemarchitektur zur Bereitstellung des Ermöglichens
ei nes heißen
Steckens eines Rechenknotens beschrieben worden. Jedoch bieten verschiedene
Implementierungen der Systemarchitektur zahlreiche Merkmale einschließlich des
Vervollständigens,
des Ergänzens
und/oder des Ersetzens der oben beschriebenen Merkmale. Merkmale
können als
Teil des System-Mikrocodes, der Softwareverfahren oder als Teil
des Rechenknotens in verschiedenen Implementierungen implementiert
werden. Zusätzlich
wurde bei der obigen Beschreibung zu Erläuterungszwecken ein bestimmtes
Vokabular benutzt, um ein gründliches
Verständnis
der Erfindung zu bieten. Dem Fachmann wird jedoch offenbar sein,
daß die
spezifischen Einzelheiten nicht zur Ausführung der Erfindung erforderlich
sind.
-
Obwohl darüber hinaus eine hier beschriebene
Ausführungsform
auf ein Verfahren und eine Vorrichtung zur Prozessoraufzählung eines
heiß gesteckten
Rechenknotens gerichtet ist, wird der Fachmann erkennen, daß die Lehre
der vorliegenden Erfindung auf andere Systeme anwendbar ist. In
der Tat liegen Systeme zum heißen
Stecken (aller Nicht-PCI-Vorrichtungen) in den Lehren der vorliegenden
Erfindung, ohne aus dem Rahmen und Sinn der vorliegenden Erfindung
zu weichen. Die oben beschriebenen Ausführungsformen wurden gewählt und
beschrieben, um die Grundsätze
der Erfindung und ihre praktischen Anwendungen am besten zu erläutern. Diese
Ausführungsformen
wurden gewählt, um
anderen Fachmännern
dieser Technik die beste Nutzung der Erfindung und verschiedener
Ausführungsformen
mit verschiedenen Abänderungen,
die sich für
den bestimmten in Betracht gezogenen Verwendungszweck eignen, zu
ermöglichen.
-
Es versteht sich, daß, selbst
wenn zahlreiche Eigenschaften und Vorteile verschiedener Ausführungsformen
der vorliegenden Erfindung in der obigen Beschreibung aufgeführt worden
sind, zusammen mit Einzelheiten der Struktur und Funktion verschiedener
Ausführungsformen
der Erfindung, diese Offenbarung nur beispielhaft ist.
-
In manchen Fällen werden gewisse Teilbaugruppen
nur bei einer derartigen Ausführungsform ausführlich beschrieben.
Trotzdem wird erkannt und ist beabsichtigt, daß diese Teilbaugruppen in anderen
Ausführungsformen
der Erfindung benutzt werden können.
Es können Änderungen
in Einzelheiten durchgeführt
werden, besonders Angelegenheiten der Struktur und des Managements
von Teilen innerhalb der Grundsätze
der vorliegenden Erfindung, zu dem vollen, durch die breite allgemeine
Bedeutung der Begriffe angedeuteten Ausmaß, in dem die beiliegenden
Ansprüche
ausgedrückt
sind.
-
Die vorliegende Erfindung bietet
viele Vorteile gegenüber
bekannten Verfahren. Dementsprechend beschreibt die vorliegende
Erfindung Verfahren zur Aufzählung
von an einen heiß gesteckten
Rechenknoten angekoppelten Prozessoren. Zusätzlich wird eine eindeutige
ID als eine Prozessor-ID jedes erkannten Prozessors gesetzt. Durch
diesen Mechanismus zum Setzen der Prozessor-ID jedes erkannten Prozessors
wird Vorrichtungsaufzählung
für ein Aufzählungsverfahren
ermöglicht,
das von einem ACPI-Teilsystem bereitgestellt wird. Dementsprechend
wird durch das Aufzählungsverfahren
jeder erkannter Prozessor und die ID des erkannten Prozessors über verschiedene,
im Rechenknoten enthaltene Konfigurationsregister bestimmt.
-
Nach der Bestimmung aktualisiert
das Aufzählungsverfahren
eine Vorrichtungsstruktur zur Bereitstellung von Vorrichtungsaufzählung und
Ressourcenaufzählung
der Prozessoren des heiß gesteckten
Rechenknotens für
das ablaufende Betriebssystem. Durch Bereitstellung dieser Informationen
kann das ablaufende Betriebssystem beginnen, die Prozessoren zu
betreiben und sie zu nutzen, um ihnen Aufgaben zuzuweisen. Dabei
wird durch die hier beschriebenen Verfahren die Implementierung einer
neuen PCI-Definition zum Unterstützen
des heißen
Steckens von Prozessor-Speicher-Knoten vermieden.
-
Nach der Offenbarung von beispielhaften Ausführungsformen
und der besten Betriebsweise können
Abänderungen
und Änderungen
an den offenbarten Ausführungsformen
durchgeführt
werden und dabei im Rahmen der durch die nachfolgenden Ansprüche definierten
Erfindung verblieben werden.
-
ZUSAMMENFASSUNG
-
Es werden eine Vorrichtung und ein
Verfahren zur Aufzählung
von Prozessoren während
des heißen
Steckens eines Rechenknotens beschrieben. Das Verfahren umfaßt das Aufzählen von
einem oder mehreren Prozessoren als Reaktion auf ein Hot-Plug-Rücksetzen.
Die Aufzählung
wird für
ein Systemarchitektur-Betriebssystem bereitgestellt, in dem ein
Rechenknoten heiß gesteckt
wird. Nach Abschluß der
Aufzählung
wird der Rechenknoten als Reaktion auf eine Betriebssystem-Aktivierungsanforderung
gestartet. Dementsprechend werden nach Abschluß der Vorrichtungsaufzählung wie
auch der Ressourcenaufzählung
der eine oder die mehreren Prozessoren des Prozessor-Speicher-Knotens
aktiviert, so daß das
Betriebssystem beginnen kann, die Prozessoren des heiß gesteckten
Rechenknotens zu nutzen.