-
HINTERGRUND
-
Gebiet
-
Ausführungsbeispiele
der Erfindung beziehen sich auf das Gebiet von Rechnersystemarchitektur.
Insbesondere betreffen Ausführungsbeispiele
der Erfindung das Gebiet der Aufgabenzuweisung in einer Rechnersystemarchitektur.
-
Hintergrundinformation
-
Verschiedene
Speichersysteme und Architekturen sind dem Fachmann bekannt. Beispielsweise
können
bestimmte große
Serial Attached SCSI (SAS) Speichersysteme Hunderte von Speichersystemen
aufweisen, die über
Expander derselben SAS-Domgin zugehörig sind.
-
Serial
Advanced Technology Attachment (SATA) übertragen Multiplier und dergleichen.
SAS ist, beispielsweise, in dem Dokument Serial Attached SCSI specification
1.0, veröffentlicht
November 2003, als auch in zugehörigen
Dokumenten beschrieben. SATA ist, beispielsweise in dem Dokument "Serial ATA: High
Speed Serialized AT Attachment",
Revision 1.0a, veröffentlicht
am 07. Januar 2003, als auch in zugehörigen Dokumenten beschrieben.
-
Die
Aufgabenzuweisung wird typischerweise in solchen Speichersystemen
ausgeführt,
um Aufgaben den zugehörigen
Speichereinheiten zuzuweisen. In Abhängigkeit zum Teil von der bestimmten
Architektur weisen repräsentative
Aufgaben, die zugewiesen werden können, Befehle, Frames, Daten,
Primitives und dergleichen, auf.
-
Insbesondere
in großen
Speichernetzwerken kann ein solches Aufgabenzuweisen erheblich die
Gesamteigenschaft berühren.
Das effektive Zuweisen von kann es erlauben, in dem Speichersystem
auszutauschende Daten in einer effizienten Weise auszutauschen,
während
ein Zuweisen von Aufgaben in einer ineffizienten Weise zu unnötigen Ineffizienzen
führt,
beispielsweise einem unnötigen Schließen und
erneuten Öffnen
von Verbindungen zu den zugehörigen
Speichereinheiten, was die gesamte Datenaustauschleistungsfähigkeit
reduzieren kann. Ein effizientes Zuweisen von Aufgaben zu Speichersystemen,
insbesondere großen
Speichersystemen, ist eine bleibende Herausforderung.
-
KURZE ERLÄUTERUNG DER VERSCHIEDENEN ANSICHTEN
DER ZEICHNUNGEN
-
Die
Erfindung kann am besten verstanden werden unter Bezugnahme auf
die nachfolgende Beschreibung und die beiliegenden Zeichnungen,
die zum Wiedergeben von Ausführungsbeispielen
der Erfindung verwendet werden. In den Zeichnungen ist bzw. zeigt:
-
1 ein
Blockdiagramm, das eine Rechnersystemarchitektur zeigt, mit einem
Aufgabenzuweiser, der zum Zuweisen von Aufgaben für Knoten mit
denselben oder unterschiedlichen Verbindungsadressen nach einem
oder mehreren Ausführungsbeispielen
der Erfindung verwendet werden kann.
-
2 ein
Flußdiagramm
eines Verfahrens zum Zuweisen von Aufgaben zu Knoten nach einem oder
mehreren Ausführungsbeispielen
der Erfindung.
-
3 ein
Blockdiagramm eines Aufgabenzuweisers nach einem oder mehreren Ausführungsbeispielen
der Erfindung.
-
4 eine
konzeptionelle Darstellung einer Aufgabenzuweisungsdatenstruktur
nach einem oder mehreren Ausführungsbeispielen
der Erfindung.
-
5A eine
Aufgabenzuweisungsdatenstruktur nach einem oder mehreren Ausführungsbeispielen
der Erfindung.
-
5B eine
Knotenelementinformation für eine
Aufgabenzuweisungsdatenstruktur nach einem oder mehreren Ausführungsbeispielen
der Erfindung.
-
5C eine
Aufgabeelementinformation für eine
Aufgabenzuweisungsdatenstruktur nach einem oder mehreren Ausführungsbeispielen
der Erfindung.
-
6 ein
Blockdiagramm einer ersten SAS-basierten Rechnersystemarchitektur,
bei dem ein oder mehrere Ausführungsbeispiele
der Erfindung implementiert werden können.
-
7 ein
Flußdiagramm
einer zweiten SAS-basierten Rechnersystemarchitektur, bei dem ein
oder mehrere Ausführungsbeispiele
der Erfindung implementiert werden können.
-
8 ein
Blockdiagramm einer Faserkanalsystemarchitektur, bei dem ein oder
mehrere Ausführungsbeispiele
der Erfindung implementiert werden können.
-
9 ist
ein Blockdiagramm einer Computersystemarchitektur, bei dem ein oder
mehrere Ausführungsbeispiele
der Erfindung implementiert werden können.
-
EINGEHENDE BESCHREIBUNG
-
In
der nachfolgenden Beschreibung sind verschiedene, besondere Einzelheiten
dargestellt. Es versteht sich jedoch, dass Ausführungsbeispiele der Erfindung
ohne diese besonderen Einzelheiten verwirklicht werden können. In
anderen Beispielen werden allgemein bekannte Schaltungen, Strukturen
und Techniken nicht in allen Einzelheiten gezeigt, um das Verständnis dieser
Beschreibung nicht zu beeinträchtigen.
-
1 ist
ein Blockdiagramm, das eine Rechnersystemarchitektur 100 nach
einem oder mehreren Ausführungsbeispielen
der Erfindung zeigt. Die dargestellte Rechnersystemarchitektur weist
einen Aufgabenzuweiser 105, einen ersten Knoten (A), der über eine
erste Verbindungsadresse 110 zugänglich ist, einen zweiten Knoten
(B1) und einen dritten Knoten (B2), die beide über eine zweite Verbindungsadresse 115 zugänglich sein
können,
und einen vierten Knoten (C), der über eine dritte Verbindungsadresse 120 zugänglich sein
kann, auf.
-
Der
erste Knoten kann gekoppelt sein mit oder anders in Verbindung sein
mit dem Aufgabenzuweiser über
einen ersten Kommunikationsweg zu der oder über die erste Verbindungsadresse.
Der zweite Knoten (B1) und der dritte Knoten (B2) können jeweils gekoppelt
sein mit oder anders in Verbindung sein mit dem Aufgabenzuweiser über einen
zweiten Kommunikationsweg zu oder über die zweite Verbindungsadresse.
Der vierte Knoten (C) kann gekoppelt sein mit oder anders in Verbindung
sein mit dem Aufgabenzuweiser über
einen dritten Kommunikationsweg zu oder über die dritte Verbindungsadresse.
-
Der
Aufgabenzuweiser kann Aufgaben den Knoten zuweisen. Typischerweise
kann der Aufgabenzuweiser durch die verschiedenen Knoten in einer
Reihenfolge oder Abfolge wechseln, die durch einen Algorithmus vorgegeben
wird, obwohl der Schutzbereich der Erfindung nicht diesbezüglich eingeschränkt ist.
Repräsentative
Algorithmen, die möglicherweise
von dem Aufgabenzuweiser verwendet werden können, weisen, ohne darauf beschränkt zu sein,
einen Ring, einen verdichteten Ring, eine feste Priorität oder andere,
dem Fachmann bekannte, Algorithmen auf. Der Schutz der Erfindung
ist nicht auf bestimmte Algorithmen beschränkt.
-
Da
einige Knoten wie, beispielsweise, Knoten B1 und B2 diesselbe Konnektionsadresse
teilen können,
wird die Reihenfolge, in der die Knoten während des Zuweisen der Aufgabe
durchlaufen werden, die Leistungsfähigkeit erheblich betreffen.
Wenn, beispielsweise, Knoten, die eine gemeinsame Konnektionsadresse
haben, mit einem Knoten mit einer unterschiedlichen Konnektionsadresse
verschachtelt werden, kann sich ein unnötiges Öffnen und Schließen der
Verbindungen zu den Knoten ergeben. So, beispielsweise, bei einem
Durchlaufen der Knoten in der Reihenfolge B1, dann C und sodann
B2. Es ist zu beachten, dass diese durchlaufenen Knoten B1 und B2, die
die gemeinsame Verbindungsadresse haben, mit dem Knoten C verschachtelt
werden, der eine unterschiedliche Konnektionsadresse hat. Eine solche
Situation kann zu einem unnötigen
Schließen
der Verbindung der Konnektionsadresse der Knoten B1 nach den Zuweisen
der Aufgaben zu B1 führen
und einem unnötigen
erneuten Öffnen
der Verbindung zu der Verbindungsadresse B2 (die dieselbe ist, wie
die Verbindungsadresse des Knotens B1) nachdem das Zuweisen der
Aufgaben für
C und vor dem Zuweisen der Aufgaben zu B2. Ein derartiges unnötiges Schließen und Öffnen der
Konvektionen kann zu einem unnötigen
Konnektionsaufwand führen
und kann die Leistungsfähigkeit
beeinträchtigen.
-
Ein
derartiges unnötiges Öffnen und
Schließen
der Verbindungen wird nicht benötigt
und kann bei verschiedenen Ausführungsbeispielen
der vorliegenden Erfindung vermieden oder wenigstens reduziert werden.
Bei einem oder mehreren Ausführungsbeispielen
der Erfindung können
Aufgaben Knoten zugewiesen werden, die während einer einzigen gemeinsamen
Verbindung zu der Konnektionsadresse dieselben oder übereinstimmende
Konnektionsadressen, haben. In einem oder mehreren nicht notwendigerweise
unterschiedlichen Ausführungsbeispielen
der Erfindung können
die Aufgaben zu Knoten mit derselben Konnektionsadresse nacheinander zugewiesen
werden, nicht also verschachtelt mit Aufgaben, die einem oder mehreren
Knoten mit einer oder mehreren unterschiedlichen Konnektionsadressen
zugewiesen werden.
-
2 ist
ein Flußdiagramm
eines Verfahrens 225 zum Zuweisen von Aufgaben zu Knoten entsprechend
einem oder mehreren Ausführungsbeispielen
in der Erfindung. Das Verfahren kann implementiert werden durch
eine Logik mit Hardware, Software oder einer Kombination aus Hardware
und Software.
-
Anfänglich kann
der Aufgabenzuweiser eine Verbindungsadresse eines ersten Knotens
mit Verbindungsadressen eines oder mehrerer zusätzlicher Knoten in dem Block 226 vergleichen.
Der Begriff "Konnektionsadresse", wie er hier verwendet
wird, wird allgemein verwendet unter Bezug auf eine Information,
die eine Adresse oder einen anderen Punkt, an dem ein Knoten zugänglich sein
kann. Ein besonderes Beispiel einer geeigneten Konnektionsadresse ist
eine SAS-Adresse. Andere Beispiele von geeigneten Konnektionsadressen
werden weiter unten offenbart.
-
Bei
einem oder mehreren Ausführungsbeispielen
der Erfindung kann der Aufgabenzuweiser den Vergleich während eines
Setups oder einem Initialisierungsvorgangs vor dem Zuweisen von
Aufgaben zu dem Knoten ausführen.
Zusätzlich
oder alternativ kann bei einem oder mehreren Ausführungsbeispielen
der Erfindung der Aufgabenzuweiser die Vergleichslaufzeit ausführen. Wenn,
beispielsweise, der Aufgabenzuweiser schon gegenwärtig die
Aufgaben für
einen oder mehrere "existierende" Knoten plant, die
schon in einer aktiven Knotenliste dargestellt sind, die für den Aufgabenzuweiser
zugänglich
sind, kann der Aufgabenzuweiser eine Angabe erhalten, dass ein "neuer" Knoten zur Verfügung steht
oder anders neu verfügbar
ist zum Empfangen von Aufgaben. Der Aufgabenzuweiser kann die Verbindungsadresse
des neuen Knotens empfangen und kann die Verbindungsadresse des
neuen Knotens mit den Verbindungsadressen von existierenden Knoten
vergleichen, um zu bestimmen, ob oder ob nicht eine passende Konnektionsadresse
vorhanden ist.
-
Nachfolgend
kann möglicherweise
eine Bestimmung erfolgen, basierend wenigstens teilweise auf den
Vergleich, dass die Verbindungsadresse des ersten oder neuen Knotens
mit einer Konnektionsadresse eines zweiten Knotens eines oder mehrerer zusätzlicher
oder existierender Knoten übereinstimmt,
und zwar in dem Block 227. Beispielsweise kann bei einem
oder mehreren Ausführungsbeispielen
der Erfindung der Aufgabenzuweiser bestimmen, dass der neue Knoten
und einer oder mehrere der existierenden Knoten dieselbe SAS-Adresse
haben. Bei einem besonderen Ausführungsbeispiel
kann der Aufgabemanager bestimmen, dass der neue Knoten eine SATA-Einheit
ist, die mit demselben SATA-Port-Multiplier als eine existierende
SATA-Einheit verbunden ist.
-
Sodann
können
Aufgaben für
wenigstens die ersten und die zweiten Knoten in dem Block 228 zugewiesen
werden, basierend auf, teilweise, der Bestimmung. Bei einem oder
mehreren Ausführungsbeispielen
der Erfindung können
die Aufgaben für
die ersten und die zweiten Knoten, die dieselbe Konnektionsadresse
haben, zugewiesen werden, während einer
einzigen gemeinsamen Verbindung zu der übereinstimmenden Konnektionsadresse.
Bei einem oder mehreren nicht notwendigerweise unterschiedlichen
Ausführungsbeispielen
der Erfindung können die
Aufgaben für
die ersten und die zweiten Knoten nacheinander zugewiesen werden,
nicht also unter Verschränkung
der Zuweisung der Aufgaben zu dem ersten und dem zweiten Knoten
mit Aufgaben, die zu einem Knoten mit einer unterschiedlichen Konnektionsadresse
zugewiesen sind.
-
Bei
einem oder mehreren Ausführungsbeispielen
der Erfindung kann der Aufgabenzuweiser eine Aufgabeplandatenstruktur
aufrecht erhalten, die er zum Zuweisen von Aufgaben verwenden kann.
Bei solchen Ausführungsbeispielen
der Erfindung kann der Aufgabenzuweiser die Aufgabeplandatenstruktur modifizieren,
basierend auf, wenigstens teilweise, einem Vergleich der Konnektionsadressen,
wie oben beschrieben.
-
3 ist
ein Blockdiagramm eines Aufgabenzuweisers 305 nach einem
oder mehreren Ausführungsbeispielen
der Erfindung. Weiter sind eine Firmwareschnittstelle 330,
eine Transportschicht 342 und eine Linkschicht 344 in
gestrichelten Linien gezeigt, um anzugeben, wie diese möglicherweise
mit dem Aufgabenzuweiser zusammenwirken, sie bilden jedoch keinen
Teil der vorliegenden Erfindung.
-
Der
Aufgabenzuweiser ist logisch oder kommunikativ zwischen der Firmwareschnittstelle
und den Transport- oder Linkschichten angeordnet. Der dargestellte
Aufgabenzuweiser weist einen Anforderungsprozessor 332,
eine Aufgabenzuweisungs- und Verwaltungslogik 336, einen
Aufgabenspeicher 334 und eine Knotenzuweisungs- und Verwaltungslogik 338 und
einen Knotenspeicher 340 auf.
-
Der
Anforderungsprozessor ist gekoppelt oder anders in Kommunikation
mit der Firmwareschnittstelle oder individuell gekoppelt oder anders
in Kommunikation mit sowohl der Aufgabenzuweisungs- und Managementlogik
und der Knotenzuweisungs- und
Verwaltungslogik. Die Aufgabenzuweisungs- und Verwaltungslogik ist
gekoppelt oder anders in Kommunikation mit dem Aufgabenspeicher. Die
Knotenzuweisungs- und Managementlogik ist gekoppelt oder anders
in Kommunikation mit, dem Knotenspeicher.
-
Der
Anforderungsprozessor kann Knotenanforderungen und Aufgabeanforderungen
empfangen, wie, beispielsweise, von einer Firmwareschnittstelle. Repräsentativ
kann die Firmwareschnittstelle eine Schnittstelle mit einem Operationssystem
und Anwendungen über
eine Befehlsschicht bilden.
-
Zunächst werden
Knotenanforderungen diskutiert, und sodann werden weiter unten Aufgabeanforderungen
diskutiert. Der Anforderungsprozessor kann die Knotenanforderungen
für die
Knotenzuweisungs- und Verwaltungslogik kommunizieren oder anders
beschaffen.
-
Die
Knotenzuweisungs- und Managementlogik kann die Knotenanforderungen
empfangen. Die Knotenanforderungen können Anforderungen beinhalten
zum Zufügen
neuer Knoten, wie, beispielsweise, wenn ein Knoten neu aktiviert
ist, zum Empfangen von Aufgaben oder zum Entfernen von vorhandenen
Knoten, beispielsweise wenn ein Knoten neu inaktiviert ist.
-
In Übereinstimmung
mit einem oder mehreren Ausführungsbeispielen
der Erfindung kann die Knotenzuweisungs- und Verwaltungslogik in
Antwort auf eine Anfrage zum Hinzufügen eines neuen Knotens eine
Logik aufweisen zum Vergleichen einer Konnektionsadresse des neuen
Knotens, der der Anforderung zugehörig ist, mit den Konnektionsadressen
eines oder mehrerer zusätzlicher
oder existierender Knoten und zum Bestimmen, dass die Konnektionsadresse
des neuen Knotens mit einer Konnektionsadresse wenigstens eines
Knotens des einen zusätzlichen
oder vorhandenen Knotens übereinstimmt.
-
Bei
einem oder mehreren Ausführungsbeispielen
der Erfindung kann der Knotenspeicher einen oder mehrere Knotendatenstrukturen 341 speichern, wie,
beispielsweise, die x-Listen und y-Listen, die weiter unten diskutiert
werden. Die eine oder die mehreren Knotendatenstrukturen können den
einen oder die mehreren existierenden oder zusätzlichen Knoten repräsentieren.
Die Knotenzuweisungs- und Verwaltungslogik kann auf den einen oder
den mehreren Knotendatenstrukturen zugreifen, um die Konnektionsadresse
des neuen Knotens mit einer oder mehrerer Konnektionsadressen des
einen oder der mehreren vorhandenen oder zusätzlichen Knoten zu vergleichen.
-
Die
Knotenzuweisungs- und Verwaltungslogik kann so den neuen Knoten
in der einen oder den mehreren Knotendatenstrukturen repräsentieren,
basierend auf, wenigstens zum Teil, der Bestimmung, dass die Konnektionsadresse
des neuen Knotens mit der Konnektionsadresse des vorhandenen Knotens übereinstimmt.
Es wird unten erläutert,
dass bei einem oder mehreren Ausführungsbeispielen der Erfindung
der neue Knoten mit einem oder mehreren vorhandenen Knoten gruppiert
werden kann, der diesselbe Konnektionsadresse hat.
-
Die
Knotenzuweisungs- und Verwaltungslogik kann eine Logik beinhalten
zum Kommunizieren und zum Kooperieren mit der Aufgabenzuweisungs- und
Verwaltungslogik zum Zuweisen einer Aufgabe zu den Knoten, basierend
auf einem oder mehreren Knotendatenstrukturen.
-
Zusätzlich kann
die Knotenzuweisungs- und Verwaltungslogik eine Logik einschließen zum
Kommunizieren mit der Linkschicht zur Anforderung von Konvektionen
zu den Knoten.
-
Als
nächstes
werden die Aufgabeanforderungen diskutiert. Der Anforderungsprozessor
kann mit der Zuweisungs- und Verwaltungslogik kommunizieren oder
anders Aufgabeanforderungen an diese stellen. Die Aufgabeplanungs-
und Verwaltungslogik kann die Aufgabeanforderungen empfangen. Die Aufgabeanforderungen
können
Anforderungen zum Hinzufügen
neuer Aufgaben einschließen
wie, beispielsweise, wann die nächste
Aufgabe auszugeben ist und alte Aufgaben entfernen wie, beispielweise, eine
alten Aufgabe, die als abgeschlossen berichtet ist.
-
Bei
einem oder mehreren Ausführungsbeispielen
der Erfindung kann der Aufgabenspeicher einen oder mehrere Aufgabedatenstrukturen 335 speichern
wie, beispielsweise, die y-Liste, die weiter unten diskutiert werden
wird. Die eine oder die mehreren Datenstrukturen können Aufgabenlisten
repräsentieren
einschließlich
einer oder mehrerer Aufgaben für
jeden der Knoten der einen oder den mehreren Knotendatenstrukturen,
die oben beschrieben sind.
-
Die
Aufgabenzuweisungs- und Verwaltungslogik kann auf die eine oder
die mehreren Aufgabendatenstrukturen zugreifen und kann Aufgaben hinzufügen oder
entfernen, die mit der Aufgabenanforderung konsistent sind. Die
Aufgabenzuweisungs- und Verwaltungslogik kann weiter kommunizieren
in Zusammenarbeit mit der Knotenzuweisungs- und Verwaltungslogik
zum Zuweisen von Aufgabe für
die Knoten, die von der Knotenzuweisungs- und Verwaltungslogik ausgewählt sind.
Die Aufgabenzuweisungs- und Verwaltungslogik kann eine Logik einschließen zum
Kommunizieren mit der Transportschicht zur Anforderung einer Aufgabeausführung.
-
4 zeigt
konzeptionell eine Aufgabenzuweisungsdatenstruktur, die der Aufgabenzuweiser verwenden
kann zum Zuweisen von Aufgaben zu Knoten entsprechend eines oder
mehrerer Ausführungsbeispiele
der Erfindung. Die Aufgabenzuweisungsdatenstruktur kann, wie gezeigt,
Knoten und Aufgabelisten für
die Knoten anordnen und arrangieren. Insbesondere kann die Aufgabenzuweisungsdatenstruktur
die Knoten sowohl in einer x-Liste als auch in einer z-Liste ordnen
und arrangieren und kann eine Aufgabeliste von Aufgaben für jeden
der Knoten in einer y-Liste ordnen. Oft kann die Datenstruktur Zeiger
beinhalten, um die Knoten und Aufgaben zu ordnen und zu arrangieren.
-
Die
x-Liste kann eine geordnete Liste beinhalten wie, beispielsweise,
eine zirkulargelinkte Liste von Knoten, die unterschiedliche Konnektionsadressen
haben. Beispielsweise weist in dem dargestellten Ausführungsbeispiel
die x-Liste Knoten A, B1 und C auf, die jeweils an einer unterschiedlichen
Position in der x-Liste sind, die miteinander verbunden sind und die
von links nach rechts angeordnet sind.
-
Die
z-Liste kann eine geordnete Liste oder Gruppe von Knoten sein wie,
beispielsweise, eine zirkulargelinkte Liste von Knoten, die dieselbe
Konnektionsadresse haben und die jeweils dieselbe Konnektionsadresse
als einem entsprechenden Knoten mit derselben Position auf der x-Liste
haben. In dem dargestellten Ausführungsbeispiel
weist z. B. die z-Liste einen Knoten B2 auf, der gelinkt oder anders
anders angeordnet ist relativ zu dem Knoten B1, der dieselbe Konnektionsadresse
hat. Da der Knoten B2 dieselbe Konnektionsadresse wie der Knoten
B1 hat, ist der Knoten B2 an demselben Ort auf der x-Liste angeordnet
wie der Knoten B1. Der Knoten B2 ist jedoch an einem unterschiedlichen
Ort auf der z-Liste als der Knoten B1 angeordnet. Insbesondere ist
der Knoten B2 hinter dem Knoten B1 an demselben Ort der x-Liste
vorgesehen, aber an einem unterschiedlichen Ort in der z-Liste.
-
Die
y-Liste weist eine geordnete Liste auf, wie, beispielsweise, eine
gelinkte Liste von Aufgaben für
jeden der Knoten in der x-Liste und der z-Liste. In dem dargestellten
Ausführungsbeispiel
weist die y-Liste den Aufgabe 0, den Aufgabe 1 und möglicherweise
andere Aufgaben auf, jeweils an einer unterschiedlichen Position
der y-Liste für den Knoten
A. Zusätzliche
Aufgabelisten sind für
jeden der anderen Knoten in der x-Liste und der z-Liste eingeschlossen.
-
Knoten
mit derselben Konnektionsadresse können, wie gezeigt, gruppiert,
gelinkt, geordnet, arrangiert, zugewiesen oder anders dargestellt
sein in der Datenstruktur in einer anderen Weise als Knoten mit
unterschiedlichen Konnektionsadressen. Beispielsweise können, wie
gezeigt, Knoten mit unterschiedlichen Konnektionsadressen, wie,
beispielsweise A und B1 in einer x-Liste repräsentiert sein, während Knoten
derselben Konnektionsadresse, wie, beispielsweise, B1 und B2 in
einer z-Liste repräsentiert
sein können.
Die z-Liste kann orthogonal zu der x-Liste sein.
-
Die
Verwendung unterschiedlicher Wege zum Repräsentieren von Knoten mit gemeinsamen und
unterschiedlichen Konnektionsadressen kann das Steuern der Reihenfolge,
in der die Knoten während
der Aufgabeplanung durchlaufen werden, erlauben. Beispielsweise
können
in einem oder mehreren Ausführungsbeispielen
der Erfindung Aufgaben zugewiesen werden für alle Knoten in einer z-Liste,
die eine gegebene Position auf der x-Liste hat, vor dem Zuweisen
von Aufgaben für
einen Knoten mit einer unterschiedlichen Position auf der x-Liste.
Das heißt, Aufgaben
können
zugewiesen werden für
alle Knoten innerhalb derselben Konnektionsadresse vor dem Zuweisen
von Aufgaben für
Knoten in unterschiedlichen Konnektionsadressen. Wenigstens konzeptionell
können
die Knoten der z-Liste betrachtet werden als in benachbarte Knoten
auf der x-Liste eingenistet. Die Aufgaben für die Knoten mit gemeinsamen
Konnektionsadressen können
optional in derselben Konnektion zu der Konnektionsadresse zugewiesen
sein.
-
5A zeigt
ein bestimmtes Ausführungsbeispiel
einer Aufgabenzuweisungsdatenstruktur entsprechend einem oder mehreren
Ausführungsbeispielen
der Erfindung. Die Datenstruktur weist Knotenelemente für die Knoten
A, B1, B2 und C auf, wobei nur Knoten B1 und B2 dieselbe Konnektionsadresse
und Aufgabeelemente für
jeden der Knoten haben.
-
5B zeigt
eine beispielhafte Information für
ein Knotenelement entsprechend einem oder mehreren Ausführungsbeispielen
der Erfindung. Die Information kann, wie gezeigt, x-Listenzeiger,
y-Listenzeiger und z-Listenzeiger und Knotenparameter einschließen. Die
x-Listenzeiger können
vorangehende und nachfolgende Zeiger aufweisen, die gelinkt sind
zum Bilden einer zirkulargelinkten x-Liste, die Knoten mit unterschiedlichen
Konnektionsadressen aufweisen kann. Die y-Listenzeiger können Kopf- und
Endzeiger zu der Aufgabeliste, die diesem bestimmten Knoten entspricht,
aufweisen. Optionale Subdivision in mehrere Listen, wie, beispielsweise, höhere und
niedrigere Prioritäten
der Aufgaben, können,
falls erwünscht,
verwendet werden. Die z-Listenzeiger
können
vorangehende und nachfolgende Zeiger aufweisen, die gelinkt sind
zur Bildung einer zirkulargelinkten z-Liste, die Knoten mit derselben Konnektionsadresse
aufweisen kann. Beispielhafte Knotenparameter können, ohne darauf begrenzt
zu sein, einen entfernten Knotenindex, Konnektionsadresse, Gerätewarteschlangentiefe,
Anzahl der ausstehenden Aufgaben, entfernte Knotenanschlussbreite
und dgl. aufweisen.
-
5C zeigt
eine beispielhafte Information für
ein Aufgabeelement nach einem oder mehreren Ausführungsbeispielen der Erfindung.
Die Information kann Aufgabenzeiger und Aufgabenparameter aufweisen,
wie gezeigt. Die Aufgabezeiger können vorangehende
und nachfolgende Zeiger einschließen, die gelinkt sein können zur
Bildung einer zirkulargelinkten y-Liste, die einen Satz von aktiven
Aufgaben für
einen bestimmten entsprechenden Knoten aufweisen. Beispielhafte
Aufgabenparameter können,
ohne darauf beschränkt
zu sein, den Aufgabentyp, den Aufgabenkontextindex, eine Transportschichtrückgewinnungskontrolle,
einen Index für
entfernte Knoten, eine Protokollsteuerung, ein Aufgabensteuerungswort,
eine Aufgabenauslaufzeit und dgl. beinhalten.
-
6 ist
ein Blockdiagramm einer ersten SAS-basierenden Computersystemarchitektur 600, bei
dem eines oder mehrere Ausführungsbeispiele der
Erfindung implementiert sein können.
Die dargestellte Architektur weist einen SAS Initiator 650,
einen SAS Expander 655, eine erste SAS Einheit (A), eine zweite
SAS Einheit (B) ein SATA Port Multiplier C, eine erste SATA Einheit
(C1) und eine zweite SATA Einheit (C2) auf.
-
Der
SAS Expander ist gekoppelt mit oder anders in Kommunikation mit
dem SAS Initiator. Die erste und die zweite SAS Einheit sind gekoppelt
mit oder anders in Kombination mit dem SAS Expander über eine
erste und eine zweite SAS Link oder andere Kommunikationswege. Der
SATA Port Multiplier ist gekoppelt mit oder anders in Kommunikation
mit dem SAS Expander über
ein Link oder einem Kommunikationsweg mit einer STP/SATA Brücke 660 des
SAS Expanders. Die erste und die zweite SATA Einheit sind gekoppelt
mit oder anders in Kommunikation mit dem SATA Port Multiplier über einen
ersten bzw. einen zweite SATA Link. Geeignete SATA Einheiten weisen,
ohne darauf begrenzt zu sein, Harddrives, magnetische Harddrives,
eine Mehrzahl von Harddrives, Felder von Harddrives, redundante
Felder von billigen Diskboxen, CD-ROM Einheiten, Tapedriver, Zipdriver,
Superdiskdrives und dgl. auf.
-
Die
erste und die zweite SAS Einheit haben unterschiedliche SAS Konnektionsadressen.
Im Gegensatz dazu haben die erste und die zweite SATA Einheit dieselben
oder übereinstimmende
SAS Konnektionsadressen. Das heißt, jede der SATA Einheiten
kann zu gegriffen werden durch die Verbindung für die Adresse der STP/SATA
Brücke.
-
Bei
dem dargestellten Ausführungsbeispiel weist
der SATA Initiator einen Aufgabenzuweiser 605 auf. Der
Aufgabenzuweiser kann auch oder alternativ in dem SAS Expander oder
anderswo in der Architektur vorgesehen sein. Aufgabenzuweiser können auch optional
in einer Zieleinheit eingeschlossen sein, beispielsweise einer SAS
Einheit und/oder einer SATA Einheit.
-
Der
Aufgabenzuweiser kann Aufgaben für die
SAS Einheiten und die SATA Einheiten Zuweisen. Repräsentative
Aufgaben für
eine solche Architektur kann, ohne darauf begrenzt zu sein, neue
Befehle, SFER_RDY Frames, Daten, Datensequenzen, Antwortframes,
Primitives und ähnliche
Signale aufweisen.
-
Entsprechend
einem oder mehreren Ausführungsbeispielen
der Erfindung kann der Aufgabenzuweiser jede der SAS Einheiten und
jede der SATA Einheiten als gesonderten Knoten mit einer gesonderten
Aufgabeliste behandeln. Da die SATA Einheiten eine gemeinsame Konnektionsadresse
haben, kann die Reihenfolge, in der die SAS Einheiten und die SATA
Einheiten während
des Aufgabenzuweisens durchlaufen werden, die Leistungsfähigkeit
betreffen. Wenn, beispielsweise, der Aufgabenzuweiser der SATA Einheiten
mit der Aufgabeplanung eines oder mehrerer der SAS Einheiten verschränkt ist, können sich
unnötige
Schließungen
und erneute Öffnungen
der Verbindungen ergeben. In manchen Fällen kann eine oder können mehrere
der SATA Einheiten in den SATA Port Multiplier heiß geplugged
werden, was zur Förderung
eines derartigen Verschränkens
führen
kann.
-
Bei
einem oder mehreren Ausführungsbeispielen
der Erfindung kann der Aufgabenzuweiser jedoch eine Verbindungsadresse
einer SATA Einheit, etwa, beispielsweise, der zweiten SATA Einheit
(C2), mit einer Konnektionsadresse einer anderen SATA Einheit, die,
beispielsweise, der ersten SATA Einheit (C1) vergleichen, kann bestimmen,
dass beide SATA Einheiten dieselbe Konnektionsadresse haben und kann
Aufgaben zu der SATA Einheit Zuweisen basierend auf, wenigstens
teilweise, der Bestimmung, dass die Konnektionsadressen zusammen
passen. Bei einem Aspekt kann der Aufgabenzuweiser Aufgaben für die SATA
Einheiten nacheinander Zuweisen, nicht also die Aufgaben mit einer
unterschiedlichen Konnektionsadresse verschränken. Nach einem anderen Aspekt
kann der Aufgabenzuweiser Aufgaben für die SATA Einheiten innerhalb
einer einzigen gemeinsamen Verbindung mit der STP SATA Brücke und/oder
dem SATA Port Multiplier zuweisen.
-
Bei
einem oder mehreren Ausführungsbeispielen
der Erfindung kann der Aufgabenzuweiser derartige Operationen während eines
initialen Setups ausführen,
bevor der Aufgabenzuweiser Aufgaben für die Einheiten zugewiesen
hat. Bei einem oder mehreren nicht notwendigerweise unterschiedlichen Ausführungsbeispielen
der Erfindung können
die Operationen eine Laufzeit ausführen, nachdem der Aufgabenzuweiser
bereits Aufgaben für
einen oder mehrere existierende Einheiten zugewiesen hat. Als ein
Beispiel können
die Operationen ausgeführt
werden, wenn, in Antwort oder anders danach, eine Einheit, beispielsweise
die zweite SATA Einheit, heiß geplugged
ist, oder in anderer Weise neu zum Aufnehmen von Aufgaben verfügbar wird.
-
7 ist
ein Blockdiagramm einer zweiten SAS basierten Computersystemarchitektur 700,
bei der eines oder mehrere Ausführungsbeispiele
der Erfindung implementiert sein können. Die dargestellte Architektur
weist einen SAS Initiator 750, einen SAS Expander 755,
eine erste SAS Einheit (A), eine zweite SAS Einheit (B) und eine
dritte SAS Einheit (C) auf. Die dritte SAS Einheit weist eine erste
logische Einheit (C1) und eine zweite logische Einheit (C2) auf.
-
Die
erste, die zweite und die dritte SAS Einheit haben unterschiedliche
SAS Konnektionsadressen. Die logischen Einheiten (C1, C2) der dritten
SAS Einheit haben jedoch dieselbe oder eine zusammenpassende SAS
Konnektionsadresse. Das heißt,
auf jede der logischen Einheiten kann durch Verbindung mit der SAS
Adresse der dritten SAS Einheit zugegriffen werden.
-
Bei
dem dargestellten Ausführungsbeispiel weist
der SAS Initiator einen Aufgabenzuweiser 705 auf, obwohl,
wie vorangehend beschrieben, der Aufgabenzuweiser optional woanders
in der Architektur angeordnet sein kann.
-
Nach
einem oder mehreren Ausführungsbeispielen
der Erfindung kann die erste SAS Einheit und die zweite SAS Einheit
behandelt werden als ein separater Knoten mit einer separaten Aufgabeliste
und jede logische Einheit (C1, C2) kann als ein separater Knoten
mit einer separaten Aufgabeliste behandelt werden.
-
Da
die logischen Einheiten eine gemeinsame Konnektionsadresse haben,
kann die Reihenfolge, in der die Knoten während des Aufgabenzuweisens
durchlaufen werden, die Leistungsfähigkeit betreffen.
-
Wenn,
zum Beispiel, das Aufgabenzuweisen der logischen Einheiten verschränkt wird
mit dem Aufgabenzuweisen einer oder mehrerer der ersten SAS Einheit
und der zweiten SAS Einheit, können sich
unnötige
Schließungen
und erneute Öffnungen von
Konvektionen mit der dritten SAS Einheit ergeben. In manchen Fällen wir
eine oder werden mehrere der logischen Einheiten neu aktiviert,
wie, beispielsweise, durch eine Managementsoftware, die für die dritte
SAS Einheit verwendet wird, was dazu führen kann, ein solches Verschränken zu
fördern.
Das Aktivieren und Inaktivieren der logischen Einheiten kann möglicherweise
die Reihenfolge, in der die Knoten während des Aufgabenzuweisens
durchlaufen werden, ändern
oder variieren.
-
Nach
einem oder mehreren Ausführungsbeispielen
der Erfindung kann der Aufgabenzuweiser eine Konnektionsadresse
einer logischen Einheit vergleichen, wie, beispielsweise, der zweiten
logischen Einheit (C2) mit einer Konnektionsadresse mit einer anderen
logischen Einheit, wie, beispielsweise, der ersten logischen Einheit
(C1), kann bestimmen, dass beide logischen Einheiten dieselbe Konnektionsadresse
haben und kann Aufgaben zu den logischen Einheiten Zuweisen basierend
wenigstens teilweise auf der Bestimmung, dass die Konnektionsadressen zusammenpassen.
Bei einem Aspekt, kann der Aufgabenzuweiser Aufgaben für die logischen
Einheiten nacheinander Zuweisen, nicht also die Aufgaben mit einem
Aufgabe für
eine Einheit verschränken,
die eine unterschiedliche Konnektionsadresse hat. Bei einem anderen
Aspekt kann der Aufgabenzuweiser Aufgaben für die logischen Einheiten mit
einer einzigen gemeinsamen Konvektion zu der dritten SAS Einheit
Zuweisen.
-
Der
Aufgabenzuweiser kann solche Operationen während des Betriebs oder aber
während
des initialen Setups oder aber zu beiden Zeitpunkten ausführen. Nach
einem Aspekt kann der Aufgabenzuweiser solche Operationen während des
Betriebs ausführen,
wenn eine logische Einheit neu aktiviert wird oder anders zum Empfangen
von Aufgaben neu verfügbar
wird.
-
Ein ähnlicher
Ansatz zu dem oben Beschriebenen für die logischen Einheiten kann
auch geeignet angepasst sein für
eine Massenspeicherung.
-
8 ist
ein Blockdiagramm einer Faserkanalcomputersystemarchitektur 800,
bei dem eines oder mehrere Ausführungsbeispiele
der Erfindung implementiert sein können. Das dargestellte Ausführungsbeispiel
weist eine individuelle Schleife 865 und öffentliche
Schleifen 870 auf.
-
Die
individuelle Schleife weist eine erste Mehrzahl von Einheiten 01,
02 auf. Die öffentlichen Schleifen
weise eine Mehrzahl von Schleifen auf mit einer zweiten Mehrzahl
von Einheiten 03, 04.
-
Jede
Einheit auf der individuellen Schleife kann auf andere Einheiten
auf der individuellen Schleife unter direkter Verwendung unterschiedlicher Konnektionsadressen
zugreifen. Jede Einheit auf der individuellen Schleife kann jedoch
auf alle Einheiten auf den zweiten Schleifen durch eine gemeinsame oder
zusammenfassende Verbindung über
einen Faserkanalschalter 875 und einen Port 00 zugreifen.
-
Das
heißt,
für eine
gegebene individuelle Schleifeneinheit haben alle öffentlichen
Schleifeneinheiten dieselbe oder zusammenpassende Konnektionsadressen über den
Faserkanalschalter und über den
Port 00. Der Faserkanalschalter und der Port 00 repräsentieren
beispielhaft Konnektionsadressen für die Faserkanalarchitektur.
-
Bei
einem oder mehreren Ausführungsbeispielen
der Erfindung können
einer oder mehrere oder alle der Einheiten auf der privaten Schleife
einen Aufgabenzuweiser aufweisen. Jedoch kann der Aufgabenzuweiser
auch oder alternativ woanders in der Architektur angeordnet sein.
-
Entsprechend
einer oder mehrerer Ausführungsbeispiele
der Erfindung kann jede der Einheiten der individuellen Schleife
behandelt werden als ein separater Knoten mit einer separaten Aufgabeliste und
jede der Einheiten der öffentlichen
Schleifen kann behandelt werden als ein separater Knoten mit einer
separaten Aufgabeliste.
-
Da
die Einheiten der öffentlichen
Schleifen alle eine gemeinsame Konnektionsadresse haben, kann die
Reihenfolge, in der die Knoten während
des Aufgabenzuweisens durchlaufen werden, die Leistungsfähigkeit
betreffen. Beispielsweise ist dann, wenn der Aufgabenzuweiser der
Einheiten der öffentlichen
Schleifen mit der Aufgabeplanung für eine oder mehrere Einheiten
der privaten Schleife verschränkt
ist, möglich,
dass unnötige
Schließungen und Öffnungen
der Verbindungen zu dem Faserkanalschalter und dem Port 00 sich
ergeben.
-
Nach
einem oder mehreren Ausführungsbeispielen
der Erfindung kann ein Aufgabenzuweiser jedoch eine Verbindungsadresse
der Einheit der öffentlichen
Schleifen, die, beispielsweise, der Einheit 03, mit einer Verbindungsadresse
einer anderen Einheit der öffentlichen
Schleife, wie, beispielsweise, der Einheiten 04 vergleichen, kann
bestimmen, dass beide Einheiten auf der öffentlichen Schleife dieselbe Konnektionsadresse
haben und kann Aufgaben zu den Einheiten auf den öffentlichen
Schleifen zuweisen basierend wenigstens teilweise auf dieser Bestimmung,
dass die Konnektionsadressen zusammenpassen. In einem Aspekt kann
der Aufgabenzuweiser Aufgaben für
die Einheiten auf den öffentlichen
Schleifen aufeinander folgend zuweisen, nicht also die Aufgaben
mit einem Aufgabe für
eine Einheit auf der privaten Schleife, die eine unterschiedliche Konnektionsadresse
hat, verschachteln. Nach einem anderen Aspekt kann der Aufgabenzuweiser
Aufgaben für
die Einheiten auf den öffentlichen
Schleifen mit einer einzigen gemeinsamen Verbindung zu dem Faserkanalschalter
und dem Port 00 zuweisen.
-
Der
Aufgabenzuweiser kann solche Operationen während des Betriebs ausführen, während eines
initialen Setups oder zu beiden Zeiten. Nach einem Aspekt kann der
Aufgabenzuweiser solchen Operationsbetrieb ausführen, wenn die Einheiten auf der
individuellen und/oder den öffentlichen
Schleifen neu aktiviert wird.
-
Es
wurden repräsentative
Ausführungsbeispiele
der Erfindung für
mehrere beispielhafte Architekturen illustriert, obwohl der Schutzbereich
der Erfindung nicht auf diese bestimmten Architekturen beschränkt ist.
Andere Ausführungsbeispiele
ergeben sich dem Fachmann und demjenigen, der die vorliegende Offenbarung
versteht.
-
9 ist
ein Blockdiagramm, das eine Rechnerarchitektur 900 zeigt,
bei der eines oder mehrere Ausführungsbeispiele
der Erfindung implementiert sein können. Die Architektur weist
ein Rechnersystem 980, ein Verwenderschnittstellensystem 985, eine
Mehrzahl von Speichereinheiten oder anderen Knoten 994 und
eine Computersystem/Knotenschnittstelle 987, das es dem
Computersystem und dem Knoten erlaubt, zusammenzuwirken, auf.
-
Der
Begriff „Computersystem", wie er hier verwendet
wird, kann eine Vorrichtung beinhalten, die eine Hardware hat und/oder
eine Software zum Verarbeiten von Daten. Das Rechnersystem kann, ohne
darauf beschränkt
zu sein, ein Portable, ein Laptop, ein Desktop, einen Server oder
einen Mainframecomputer aufweisen, um nur einige wenige Beispiele
zu nennen. Das Rechnersystem stellt ein mögliches Rechnersystem dar zum
Implementieren einer oder mehrerer Ausführungsbeispiele der Erfindung, es
können
jedoch auch andere Rechnersysteme und Variationen des Rechnersystems
verwendet werden.
-
Das
Rechnersystem weist einen Prozessor 981 auf zum Verarbeiten
von Information. Bei einem oder mehreren Ausführungsbeispielen kann der Computer
einen Prozessor in der Pentium® Familie von Prozessoren
aufweisen, wie, beispielsweise, einen Pentium® 4
Prozessor. Die Pentium® Familie von Prozessoren
sind käuflich
erhältlich
von der Intel Corporation, Santa Clara, Kalifornien. Alternativ
können andere
Prozessoren optional verwendet werden. Als ein Beispiel, kann ein
Prozessor mit mehreren Rechenkernen verwendet werden. Als anderes
Beispiel kann optional ein Prozessor, der hergestellt wird und/oder
kommerziell verfügbar
ist, von einer anderen Quelle als Intel Corporation, verwendet werden. Weiter
kann das Computersystem bei einem oder mehreren Ausführungsbeispielen
mehrere Prozessoren aufweisen.
-
Der
Prozessor ist über
eine Schnittstelle mit einem Chipset 982 gekoppelt. Ein
Systemspeicher 983, ein Schnittstellensystem 985 und
eine oder mehrere Eingangs/Ausgangs (I/O) Busse oder andere Verbindungen 984 sind
zusätzlich
gekoppelt mit oder anders in Kombination mit dem Chipset über jeweilige
Schnittstellen. Bei einem oder mehreren Ausführungsbeispielen der Erfindung
kann der Chipset einen oder mehrere integrierte Schaltungen oder
andere mikroelektronische Einheiten aufweisen, wie, beispielsweise,
solche, wie sie käuflich
von der Intel Corporation erhältlich
sind. Es können
jedoch auch, oder alternativ, andere mikroelektronische Einheiten verwendet
werden.
-
Bei
einem oder mehreren Ausführungsbeispielen
der Erfindung kann der Chipset eine erste Brücke/Hub (nicht gezeigt) aufweisen,
wie, zum Beispiel, eine Speichersteuerungs-Brücke/Hub, die von der Intel
Corporation verfügbar
ist, und eine zweite Brücke/Hub
(nicht gezeigt), wie, beispielsweise, eine Eingangs/Ausgangs (I/O)
Brücke/Hub,
die von der Intel Corporation erhältlich ist.
-
Bei
einer oder mehreren anderen Ausführungsbeispielen
kann wenigstens ein Abschnitt der Speichersteuerungsbrücke/Hub,
wie, zum Beispiel, dem Speichercontroller, in demselben Chip sein
wie der Prozessor. Die erste Brücke/Hub
kann mit der zweiten Brücke/Hub über eine
Hubschnittstelle gekoppelt sein. Der Schutzbereich dieser Erfindung
ist jedoch nicht auf derartige Chipsets beschränkt.
-
Der
Systemspeicher kann gekoppelt sein mit oder aber in Kommunikation
mit der Speichersteuerungs-Brücke/Hub.
Bei einem oder mehreren Ausführungsbeispielen
der Erfindung kann der Systemspeicher einen Hauptspeicher aufweisen,
wie, beispielsweise, einen Speicher mit wahlfreiem Zugriff (RAM)
oder einer anderen dynamischen Speichereinheit zum Speichern von
Information einschließlich Befehlen,
die von dem Prozessor auszuführen
sind. Unterschiedliche Arten von RAM Speichern, die bei einigen,
nicht aber bei allen Rechnersystemen vorhanden sind, weisen, ohne
darauf begrenzt zu sein, ein statisches RAM (SRAM) und ein dynamisches RAM
(DRAM) auf. Andere Arten von RAM, die nicht notwendigerweise dynamisch
sind und nicht aufgefrischt werden müssen, können auch optional verwendet
werden. Zusätzlich
kann bei einem oder mehreren Ausführungsbeispielen der Erfindung
der Systemspeicher einen Nur-Lese-Speicher (ROM) aufweisen zum Speichern
von statischer Information oder Befehlen für den Prozessor, wie, beispielsweise,
ein Basic Eingangs/Ausgangs-System (BIOS) unterschiedliche Arten
von Speichern sind in einigen, nicht aber in allen Rechnersystemen
einschließlich Flashspeicher,
programmierbaren ROM (PROM), löschbaren-
und programmierbaren ROM (EPROM) und elektrischen programmierbaren
ROM (EEPROM) eingeschlossen.
-
Die
einen oder mehreren I/O Verbindungen und das Verwenderschnittstellensystem
können
gekoppelt sein mit oder anders in Kombination sein mit der I/O Brücke/Hub.
Geeignete I/O Verbindungen weisen, ohne darauf begrenzt zu sein,
Peripheral Component Interconnekt (PCI) Familienbusse, Accelerated
Graphics Port (AGP) Busse, Universal Serial Bus (USB) Busse, Low
Pin Count (LPC) Busse, andere Arten von I/O Busse und Kombinationen
daraus auf. Bei einem besonderen Ausführungsbeispiel der Erfindung
können
die einen oder die mehreren I/O Verbindungen ein PCL, PCIX (PCI
extended), und/oder PCI-Express (PCI-E) Verbindung aufweisen. Der
Chipset und die I/O Brücke/Hub
kann entsprechend Standard I/O Operationen an einem oder mehreren
der I/O Verbindungen unterstützen.
-
Das
Verwenderschnittstellensystem kann repräsentative Einheiten aufweisen,
wie beispielsweise eine Displayeinheit, eine Tastatur, eine Cursersteuereinheit
und Kombinationen daraus, obwohl der Schutzbereich der Erfindung
diesbezüglich
nicht eingeschränkt
ist. Beispielsweise können
einige Rechnersysteme, wie etwa Server, optional vereinfachte Verwenderschnittstellensysteme
verwenden.
-
Wie
in dem dargestellten Ausführungsbeispiel
gezeigt, kann das Rechnersystem/Knoten-Schnittstelle 987 mit
einem oder mehreren I/O Verbindungen gekoppelt sein, wie, beispielsweise, dem
PCI/PCI-X Bus. Die eine oder die mehreren Verbindungen können zum
Kommunizieren von Information unter den Komponenten verwendet werden.
-
Das
dargestellte Rechnersystem/Knoten-Schnittstelle weist einen Kartenschlitz 988 und eine
Karte 991 auf, beispielsweise eine PCI konforme Karte,
obwohl der Schutzbereich der Erfindung diesbezüglich nicht eingeschränkt ist.
Der Kartenschlitz ist gekoppelt mit oder ansonsten in Kommunikation mit
der einen oder den mehreren I/O Verbindungen. Der Schlitz und die
Karte können
so konstruiert sein, dass es der Karte erlaubt ist, in den Schlitz
eingesetzt zu werden und elektrisch mit dem Kartenschlitz gekoppelt
zu sein, um es der Karte zu erlauben, gekoppelt zu sein oder anders
in Verbindung zu sein mit der einen oder den mehreren I/O Verbindungen.
Beispielsweise kann eine Schnittstelle 989 des Kartenschlitzes
einen Bus oder einen anderen Verbindungskonnektor 990 aufweisen,
der elektrisch oder mechanisch zusammenpasst mit einem Bus oder
einem Verbindungskonnektor 993, der in einem Expansionsschlitz
oder einer Schnittstelle 992 der Karte eingeschlossen ist.
Wenn die Karte richtig in den Schlitz eingesetzt ist, können die
zusammenpassenden Konnektoren mechanisch und/oder elektrisch miteinander
gekoppelt werden. Wenn die Konnektoren so miteinander gekoppelt
sind, kann die Karte elektrisch mit dem einen oder den mehreren I/O
Verbindungen elektrisch gekoppelt sein und kann Daten und/oder Befehle
mit dem Systemspeicher, dem Hostprozessor und/oder anderen Komponenten
des Computersystems austauschen.
-
Die
Karte kann eine System/Knoten-Schnittstellenbrückenlogik aufweisen, wie diese
typischerweise vorhanden ist in einem Hostbusadapter (HBA) für SAS oder
SATA, um es dem Rechnersystem und dem Knoten zu erlauben, miteinander
zu kommunizieren und/oder aufeinander zuzugreifen. Bei einer oder
mehreren Ausführungsbeispielen
der Erfindung kann die Karte weiter einen Aufgabenzuweiser aufweisen,
wie er hier offenbart ist.
-
Die
Knoten können
mit der Speichereinheitschnittstelle gekoppelt sein, beispielsweise
der Karte, über
gesonderte Kommunikationswege. Einige Kommunikationswege können durch
dieselbe Konnektionsadresse verlaufen und andere Kommunikationswege
können über unterschiedliche
Konnektionsadressen laufen.
-
Das
Rechnersystem kann Daten und/oder Befehle mit dem Knoten über die
Karte austauschen und verschiedene Kommunikationsprotokolle einschließlich, nicht
aber beschränkt
auf, diejenigen der SAS, SAS-STP, SATA, können optional verwendet werden.
-
Wie
in dem dargestellten Ausführungsbeispiel
wiedergegeben, können
der Prozessor, der Systemspeicher, der Chipset, eine oder mehrere
I/O Verbindungen und der Kartenschlitz optional eingeschlossen sein
auf oder ansonsten verbunden sein mit einer einzigen gedruckten
Schaltkarte 986, wie, beispielsweise, einer Motherboard
oder einer Backplane. Die Motherbord und die Komponenten, die damit
verbunden sind, werden häufig
von einem Chassis oder einem Primärgehäuse des Rechnersystems aufgenommen.
Komponenten des Verwenderschnittstellensystems und die Speichereinheit
kann bei einem oder mehreren Ausführungsbeispielen außerhalb
des Chassis oder des Primärgehäuses sein.
Der Schlitz kann eine Öffnung
in dem Chassis oder dem Gehäuse,
in das die Karte eingesetzt werden kann, repräsentiert sein.
-
Diese
besondere Ausgestaltung ist jedoch nicht erforderlich. Verschiedene
alternative Rechnersystemarchitekturausführungen sind auch zu bedenken.
Bei verschiedenen alternativen Ausführungsbeispielen der Erfindung
kann das Rechnersystem/Knoten-Schnittstelle
oder wenigstens deren Aufgabenzuweisungslogik entweder vollständig intern
oder extern zu dem Chassis oder Gehäuse des Rechnersystems sein.
Beispielsweise kann die Aufgabeplanungslogik auf der Motherboard
sein. Als weiteres Beispiel kann bei einem oder mehreren alternativen Ausführungsbeispielen
der Erfindung die Aufgabenzuweisungslogik auch oder alternativ in
dem Chipset angeordnet sein. Viele zusätzliche Modifikationen sind
zu berücksichtigen.
-
In
der Beschreibung und den Ansprüchen können die
Begriffe „gekoppelt" und „verbunden" gemeinsam mit ihren
Ableitungen verwendet werden. Es ist jedoch zu verstehen, dass diese
Ausdrücke nicht
als Synonyme füreinander
intendiert sind. Bei bestimmten Ausführungsbeispielen kann „verbunden" verwendet werden
um anzugeben, dass zwei oder mehrere Komponenten in direktem gegenständlichen
oder elektrischen Kontakt miteinander sind. „Gekoppelt" kann bedeuten, dass zwei oder mehrere Komponenten
in direktem gegenständlichen
oder elektrischen Kontakt miteinander sind. „Gekoppelt" kann jedoch auch bedeuten, dass zwei
oder mehr Komponenten nicht in direktem Kontakt miteinander sind,
jedoch noch miteinander zusammenwirken. Beispielsweise können zwei
oder mehr Komponenten miteinander gekoppelt sein über eine
oder zwei eingreifende Komponenten. Zusätzlich können ein oder zwei Komponenten
in Verbindung miteinander sein, wenn sie Daten oder Information
miteinander austauschen, unabhängig
davon, ob sie in direktem Kontakt sind oder nicht.
-
In
der obigen Beschreibung wurden zum Zwecke der Erläuterung
verschiedene bestimmte Einzelheiten dargestellt, um ein volles Verständnis der
Ausführungsbeispiele
der Erfindung zu ermöglichen.
Es versteht sich jedoch für
den Fachmann, dass eine oder mehrere andere Ausführungsbeispiele ohne einige
dieser bestimmten Einzelheiten verwirklicht werden können. Die
besonderen Ausführungsbeispiele
sind nicht dazu da, die Erfindung einzuschränken, sondern sie zu erläutern. Der
Schutzbereich dieser Erfindung ist nicht durch die bestimmten Ausführungsbeispiele,
die oben angegeben sind, bestimmt, sondern nur durch die nachfolgenden
Ansprüche.
In anderen Beispielen werden allgemein bekannte Schaltungen, Strukturen,
Einheiten und Operationen als Blockdiagramm oder ohne Einzelheiten dargestellt,
um das Verständnis
der Beschreibung nicht zu erschweren.
-
Verschiedene
Operationen und Verfahren wurden beschrieben. Einige dieser Methoden
wurden in einer grundsätzlichen
Form erläutert,
die Operationen können
optimal hinzu und/oder entfernt werden von den Methoden. Die Operationen
dieser Verfahren können
auch oft optional in einer unterschiedlichen Reihenfolge durchgeführt werden.
Viele Abwandlungen und Anpassungen können bei den Verfahren angewendet
werden und sind zu berücksichtigen.
-
Der
Begriff „Logik" wie er hier verwendet wird,
kann eine Hardware, wie, beispielsweise, Schaltung, Software, Firmware
und Kombinationen draus aufweisen. Operationen können durch Hardwarekomponenten
ausgeführt
werden oder können verwirklicht
werden in von einer Maschine ausführbaren Befehlen, die verwendet
werden können
um eine mit diesen Befehlen programmierte Schaltung zu veranlassen
oder zu führen
zu einer Ausführung
der Operationen. Die Schaltung kann einen Vielzweck- oder Einzweck-Prozessor
aufweisen oder eine logische Schaltung, um lediglich wenige Beispiele
zu nennen. Die Operationen können
optional durch eine Kombination von Hardware und Software ausgeführt werden.
Die hier beschriebenen Aufgabenzuweisungsoperationen können für eine Abladungs-Aufgabeplanung
von Firmware zu Hardware gut geeignet sein, obwohl der Schutzbereich
der Erfindung diesbezüglich
nicht beschränkt
ist.
-
Ein
oder mehrere Ausführungsbeispiele
der Erfindung können
als ein Programmprodukt oder ein anderer Herstellungsartikel sein,
der ein von einer Maschine zugreifbares und/oder lesbares Medium aufweist,
auf dem ein oder mehrere Befehle und/oder Datenstrukturen gespeichert
sind. Das Medium kann Befehle liefern, die bei einer Ausführung durch
eine Maschine, dazu führen
kann oder die Maschine verursachen kann zum Ausführen einer oder mehrerer Operationen
und Verfahren, die hier offenbart sind. Geeignete Maschinen weisen,
ohne darauf beschränkt
zu sein, Computersysteme, Netzwerkeinheiten, eine weite Vielzahl
anderer Einheiten mit einem oder mehreren Prozessoren auf, um lediglich
einige wenige Beispiele zu nennen.
-
Das
Medium kann einen Mechanismus aufweisen, der Information in einer
Form, die von der Maschine zugreifbar ist, liefert, beispielsweise
speichert und/oder überträgt. Zum
Beispiel kann das Medium optional beschreibbare und/oder nicht-beschreibbare
Medien, wie, beispielsweise eine Floppy Disk, ein optisches Speichermedium,
eine optische Disk, eine CD-ROM, eine magnetische Disk, eine Magneto-Optical
Disk, ein Read Only Memory (ROM), ein programmierbares ROM (PROM),
ein löschbares
und programmierbares ROM (EPROM), ein elektrisch löschbares
und programmierbares ROM (EEPROM), ein Speicher mit wahlfreiem Zugriff (RAM),
ein statisches RAM (SRAM), ein dynamisches RAM (DRAM), einen Flashspeicher
und Kombinationen daraus aufweisen.
-
Ein
Medium kann auch eine elektrisch, optisch, akustisch, elektromagnetisch
oder in einer anderen Form von programmierten Signalen aufweisen,
etwa als Trägerwellen, Infrarotsignalen,
digitalen Signalen. Ein oder mehrere Ausführungsbeispiele der Erfindung
können
als ein Computerprogramm heruntergeladen werden, wobei das Programm
von einer Maschine zu einer anderen Maschine mittels Datensignalen übertragen
werden können,
die in einer Trägerwelle
oder einem anderen fortschreitenden Signal oder Medium über ein
Kommunikationslink (beispielsweise einem Modem oder einer Netzwerkverbindung)
vorgesehen sind.
-
Zur
Verdeutlichtung ist in den Ansprüchen
jedes Element, das nicht explizit ausgedrückt ist als „Mittel
für" eine bestimmte Funktion
ausgeführt,
oder „Schritt
zum" eine bestimmte
Funktion ausführt,
nicht auszulegen als ein „Mittel" oder „Schritt" Vorschrift nach
35 U.S.C. Abschnitt 112, Absatz 6. Insbesondere soll jede mögliche Verwendung
von „Schritt" in den hier wiedergegebenen
Ansprüchen
nicht die Vorsehung von 35 U.S.C. Abschnitt 112, Absatz 6 hervorrufen.
-
Es
sollte anerkannt werden, dass die Bezugnahme in dieser Beschreibung
auf „ein
Ausführungsbeispiel", „das Ausführungsbeispiel" oder „eines
oder mehrere Ausführungsbeispiele" bedeutet, das ein
bestimmtes Merkmal zur Verwirklichung der Erfindung vorgesehen sein
kann. Solche Bezugnahmen gelten nicht notwendigerweise für dasselbe
Ausführungsbeispiel.
Entsprechend ist anzuerkennen, dass in der Beschreibung verschiedene
Merkmale manchmal gemeinsam in einem einzigen Ausführungsbeispiel, Figur
oder Beschreibung zum Zwecke der Gradlinigkeit der Offenbarung und
zur Unterstützung
des Verständnisses
der verschiedenen erfinderischen Aspekte gruppiert sein können. Dieses
Verfahren der Offenbarung ist jedoch nicht zu interpretieren als
mit der Absicht erfolgt, dass die Erfindung mehr Merkmale benötigt, als
diese in den Ansprüchen
angegeben sind. Vielmehr können
die erfinderischen Aspekte in allen Merkmalen eines einzigen offenbarten
Ausführungsbeispiels
liegen, wie dies sich aus den nachfolgenden Ansprüchen ergibt.
Die der eingehenden Beschreibung nachfolgenden Ansprüche werden
hiermit ausdrücklich
in diese eingehende Beschreibung einbezogen, wobei jeder Anspruch
selbständig
ist als ein gesondertes Ausführungsbeispiel
der Erfindung.
-
Obwohl
die Erfindung durchgehend beschrieben worden ist in den Ausdrücken verschiedener
Ausführungsbeispiele
wird der Fachmann erkennen, dass die Erfindung nicht auf die besonderen
beschriebenen Ausführungsbeispiele
beschränkt
ist, sondern mit Abwandlungen und Alternativen verwirklicht werden
kann innerhalb des Grundgedankens und Schutzbereiches der beiliegenden
Ansprüche. Die
Beschreibung ist daher als illustrativ nicht aber als beschränkend aufzufassen.
-
ZUSAMMENFASSUNG
-
Verfahren
zum Planen von Aufgaben in Computersystemenarchitekturen werden
offenbart. Nach einem Aspekt kann ein Verfahren das Vergleichen
einer Konnektionsadresse eines ersten Knotens mit einer Konnektionsadresse
eines zweiten Knotens, das Bestimmen, ob die Konnektionsadresse
des ersten Knotens mit der Konnektionsadresse des zweiten Knotens übereinstimmt
und Zuweisen von Aufgaben zu dem ersten Knoten zu dem zweiten Knoten
basierend, wenigstens teilweise, auf dieser Bestimmung. Es werden
weiter eine Vorrichtung zum Implementieren eines Aufgabenzuordnens
und Systeme mit einer solchen Vorrichtung offenbart.