-
Diese
Offenbarung betrifft einen integrierten Schaltkreis, der dazu in
der Lage ist, unter Benutzung unterschiedlicher Kommunikationsprotokolle
zu kommunizieren.
-
Bei
einer üblichen
Datenspeicheranordnung weist ein Computerknoten einen Hostbus-Adapter (HBA)
auf. Der HBA kommuniziert über
eine oder mehrere Kommunikationsverbindungen mit einem Datenspeichersystem,
wobei ein Kommunikationsprotokoll benutzt wird, das der oder den
Verbindungen zugeordnet ist. Typischerweise weist der HBA mehrere
Chips mit integrierten Schaltkreisen auf, um eine Kommunikation
zwischen dem HBA und dem Datenspeichersystem auszuführen, und
kann nur ein einzelnes, vorbestimmtes Kommunikationsprotokoll benutzen,
um mit dem Datenspeichersystem zu kommunizieren. Wenn also bei dieser üblichen
Anordnung beispielsweise das Datenspeichersystem nicht unter Benutzung
dieses vorbestimmten Protokolls mit dem HBA kommunizieren kann,
können
ein oder mehrere externe Kommunikationsprotokoll-Konverter, Übersetzer
und/oder Expander zwischen den HBA und das Datenspeichersystem gekoppelt
werden, um eine Kommunikation zwischen dem HBA und dem Datenspeichersystem
zu erlauben.
-
-
Das
Dokument
US2003033477 offenbart
ein Verfahren, das besonders bei eingebetteter RAID-Firmware für verschiedene
Speicherprotokolle wie SCSI-(Small Computer System Interface)-, FC-(Fibre
Channel)-, Serial-Advanced-Technology-Attachment-(SATA)-, Parallel-Advanced-Technology-Attachment-(PATA)
und Serial-Attached-Small-Computer-System-Interface-(SAS)-Steuerungen
nützlich
ist.
-
Die
vorliegende Erfindung stellt ein Verfahren bereit, wie es in Anspruch
1 aufgeführt
ist, ein computerlesbares Speichermedium, wie es in Anspruch 7 aufgeführt ist,
und eine Vorrichtung, wie sie in Anspruch 8 aufgeführt ist,
und ein System, wie es in Anspruch 18 aufgeführt ist.
-
Merkmale
und Vorteile von Ausführungsformen
des beanspruchten Gegenstands werden im Zuge der nachfolgenden detaillierten
Beschreibung sowie unter Bezugnahme auf die Figuren deutlich, wobei
gleiche Bezugszeichen gleiche Bauteile bezeichnen, und wobei:
-
1 eine
Darstellung ist, die eine Systemausführungsform zeigt.
-
2 ist
eine Darstellung, die einen integrierten Schaltkreis in der Systemausführungsform aus 1 detaillierter
zeigt.
-
3 ist
eine Darstellung, die eine Schnittstellenschaltung des integrierten
Schaltkreises aus 2 detaillierter zeigt.
-
4 ist
ein Ablaufdiagramm, das Vorgänge zeigt,
die gemäß der Ausführungsform
durchgeführt werden
können.
-
Obwohl
die nachfolgende detaillierte Beschreibung unter Bezugnahme auf
veranschaulichende Ausführungsformen
erfolgen soll, werden für Fachleute
viele Alternativen, Modifikationen und Variationen derselben auf
der Hand liegen. Der beanspruchte Gegenstand ist deshalb breit aufzufassen, und
ist nur durch die begleitenden Ansprüche definiert.
-
Detaillierte Beschreibung
-
1 zeigt
eine Systemausführungsform 100 des
beanspruchten Gegenstands. Das System 100 kann einen Host-Prozessor 12 aufweisen,
der an einen Chipsatz 14 gekoppelt ist. Der Host-Prozessor 12 kann
beispielsweise einen Intel®-Pen tium®-IV-Mikroprozessor
aufweisen, der vom Inhaber der vorliegenden Anmeldung erhältlich ist.
Natürlich
kann der Host-Prozessor 12 alternativ auch einen anderen
Typ Mikroprozessor umfassen, beispielsweise einen Mikroprozessor,
der von einer anderen Quelle als dem Inhaber der vorliegenden Anmeldung
erhältlich
ist, ohne von dieser Ausführungsform
abzuweichen.
-
Der
Chipsatz 14 kann ein Host-Brücke/Hub-System umfassen, das
den Host-Prozessor 12, einen Systemspeicher 21 und
ein Benutzerschnittstellensystem 16 aneinander und an ein
Bussystem 22 koppeln kann. Der Chipsatz 14 kann
auch ein Eingabe-/Ausgabe-(I/O)-Brücke/Hub-System (nicht dargestellt)
aufweisen, das das Host-Brücke/Bus-System
an den Bus 22 koppeln kann. Der Chipsatz 14 kann
Chips mit integrierten Schaltkreisen umfassen, z.B. solche, die
aus Chipsätzen
mit integrierten Schaltkreisen ausgewählt sind, welche von dem Inhaber
der vorliegenden Anmeldung erhältlich sind
(z.B. Grafikspeicher- und I/O-Steuerungshub-Chipsätze), obwohl auch oder alternativ
andere Chips mit integrierten Schaltkreisen benutzt werden können, ohne
von dieser Ausführungsform
abzuweichen. Das Benutzerschnittstellensystem 16 kann z.B. eine
Tastatur, eine Zeigeeinrichtung, und ein Anzeigesystem umfassen,
wodurch ein menschlicher Benutzer Kommandos in das System 100 eingeben
und dessen Betrieb überwachen
kann.
-
Der
Bus 22 kann einen Bus umfassen, der der Peripheral Component
Interconnect (PCI) ExpressTM Basisspezifikation,
Revision 1.0, veröffentlicht
am 22. Juli 2002, erhältlich
von der PCI Special Interest Group, Portland, Oregon, USA (im Folgenden
als „PCI-ExpressTM-Bus" bezeichnet)
entspricht. Alternativ kann der Bus 22 stattdessen einen
Bus umfassen, der der PCI-X-Spezifikation Rev. 1.0a, 24. Juli 2000,
erhältlich
von der genannten PCI Special Interest Group, Portland, Oregon,
USA (im Folgenden als „PCI-X-Bus" bezeichnet), entspricht.
Auch kann der Bus 22 alternativ andere Typen und Konfigurierungen
von Bussystemen umfassen, ohne von dieser Ausführungsform abzuweichen.
-
Eine
Steuerungskarte 20 kann an einen Massenspeicher 28 gekoppelt
sein und dessen Betrieb steuern. In dieser Ausführungsform kann der Massenspeicher 28 z.B.
ein oder mehrere redundante Arrays unabhängiger Platten (Redundant Array
of Independent Disks – RAID) 29 umfassen.
Die RAID-Ebene,
die von dem RAID 29 implementiert sein kann, kann 0, 1
oder größer als
1 sein. Das RAID 29 kann beispielsweise eine oder mehrere
Plattenmassenspeichereinrichtungen und/oder eine oder mehrere Peripherieeinrichtungen
(in 1 kollektiv oder einzeln durch den Block mit Bezugszeichen 52 gezeigt) umfassen,
die in einer Protokolldomäne 50 enthalten sind. „Protokolldomäne" im hier verwendeten
Sinne bezeichnet eine oder mehrere Vorrichtungen, die gemäß einem
Kommunikationsprotokoll kommunizieren können.
-
Der
Prozessor 12, der Systemspeicher 21, der Chipsatz 14,
der Bus 22 und ein Schaltkreiskartenschlitz 30 können in
einer Platine enthalten sein, z.B. einer Systemhauptplatine 32.
Der Massenspeicher 28 kann in einem oder mehreren jeweiligen
Gehäusen
enthalten sein, die von dem Gehäuse
getrennt sein können,
in dem die Hauptplatine 32 und die in der Hauptplatine 32 enthaltenen
Bauteile enthalten sind.
-
Die
Karte 20 kann über
eine oder mehrere Netzkommunikationsverbindungen 44 an
den Massenspeicher 28 gekoppelt sein. Wie im Folgenden
erörtert
werden soll, kann die Karte 20 unter Benutzung z.B. des
Serial-Advanced-Technology-Attachment-(S-ATA)-Protokolls und/oder
des Serial-Attached-Small-Computer-Systems-Interface-(SAS)-Protokolls über die
Verbindungen 44 Daten und/oder Kommandos mit dem Massenspeicher 28 austauschen.
Natürlich
kann die I/O-Steuerungskarte 20 mit dem Massenspeicher 28 Daten
und/oder Kommandos alternativ unter Benutzung anderer und/oder zusätzlicher Kommunikationsprotokolle austauschen,
ohne von dieser Ausführungsform
abzuweichen.
-
Gemäß dieser
Ausführungsform
kann, wenn die Steuerungskarte 20 ein S-ATA-Protokoll benutzt, um
Daten und/oder Kommandos mit dem Massenspeicher 28 auszutauschen,
dieses dem Protokoll entsprechen oder mit dem Protokoll kompatibel
sein, das in „Serial
ATA: High Speed Specialized AT Attachment", Revision 1.0, veröffentlicht am 29. August 2001
von der Serial ATA Working Group, beschrieben ist. Wenn die Steuerungskarte 20 ferner
alternativ ein SAS-Protokoll benutzt, um Daten und/oder Kommandos
mit dem Massenspeicher 28 auszutauschen, kann dieses mit
dem Protokoll übereinstimmen
oder kompatibel sein, das in „Information
Technology-Serial
Attached SCSI (SAS)",
Working Draft American National Standard of International Committee
For Information Technology Standards (INCITS) T10 Technical Committee,
Projekt T10/1562-D, Revision 2b, veröffentlicht am 19. Oktober 2002
vom American National Standards Institute, (im Folgenden als „SAS-Standard" bezeichnet) und/oder
später
veröffentlichten
Versionen des SAS-Standards beschrieben ist.
-
Abhängig beispielsweise
davon, ob der Bus 22 einen PCI-ExpressTM-Bus
oder einen PCI-X-Bus umfasst, kann der Schaltkreiskartenschlitz 30 beispielsweise
einen PCI-ExpressTM-Bus oder einen PCI-X-Bus umfassen, der
mit dem Erweiterungsschlitz oder einer Schnittstelle 36 kompatibel
ist oder dieser entspricht. Die Schnittstelle 36 kann eine
Bussteckverbindung 37 umfassen, die elektrisch und mechanisch
mit einer passenden Bussteckverbindung 34 verbunden sein
kann, die in einem Erweiterungsschlitz oder einer Schnittstelle 35 in
der Schaltkreiskarte 20 enthalten sein kann.
-
Die
Schaltkreiskarte 20 kann einen integrierten Schaltkreis 40,
eine Betriebsmoduswählerschaltung 42,
einen computer lesbaren Startcodespeicher 39, und einen
computerlesbaren Speicher 38 umfassen. Alternativ, wenngleich
nicht in den Figuren gezeigt, kann der integrierte Schaltkreis 40 einen
Speicher 38 und/oder einen Speicher 39 umfassen.
Im hier verwendeten Sinne bezeichnet ein „integrierter Schaltkreis" eine Halbleitereinrichtung
und/oder mikroelektronische Einrichtung, beispielsweise einen Halbleiterchip
mit integrierten Schaltkreisen. Die Speicher 38 und/oder 39 können einen
oder mehrere der folgenden Speichertypen umfassen: Halbleiter-Firmware-Speicher,
programmierbaren Speicher, nicht flüchtigen Speicher, Lesespeicher,
elektrisch programmierbaren Speicher, Schreib-/Lesespeicher, Flash-Speicher,
Magnetplattenspeicher, und/oder optischen Plattenspeicher. Entweder
zusätzlich
oder alternativ können
die Speicher 38 und/oder 39 jeweils andere und/oder
später
entwickelte Typen computerlesbarer Speicher umfassen.
-
Im
Speicher 38 können
maschinenlesbare Firmware-Programmbefehle gespeichert sein. Wie unten
beschrieben, kann der integrierte Schaltkreis 40 auf diese
Befehle zugreifen und sie ausführen.
Bei Ausführung
durch den integrierten Schaltkreis 40 können diese Befehle bewirken,
dass der integrierte Schaltkreis 40 die Vorgänge durchführt, die
hier als vom integrierten Schaltkreis 40 durchgeführt beschrieben
werden.
-
Der
Schlitz 30 und die Karte 20 sind so aufgebaut,
dass die Karte 20 in den Schlitz 30 einführbar ist.
Wenn die Karte 20 richtig in den Schlitz 30 eingeführt wird,
werden die Steckverbindungen 34 und 36 elektrisch
und mechanisch aneinander gekoppelt. Wenn die Steckverbindungen 34 und 36 derart
miteinander verbunden sind, ist die Karte 20 elektrisch an
den Bus 22 gekoppelt, und kann über den Bus 22 und
den Chipsatz 14 mit dem Systemspeicher 21, dem
Host-Prozessor 12, und/oder dem Benutzerschnittstellensystem 16 Daten
und/oder Kommandos austauschen.
-
Alternativ,
und ohne von dieser Ausführungsform
abzuweichen, kann die wirksame Schaltung der Karte 20 nicht
in der Karte 20 enthalten sein, sondern stattdessen in
anderen Strukturen, Systemen und/oder Einrichtungen enthalten sein.
Diese anderen Strukturen, Systeme und/oder Einrichtungen können beispielsweise
in der Hauptplatine 32 enthalten sein, die an den Bus 22 gekoppelt
ist, und können mit
anderen Bauteilen im System 100 Daten und/oder Kommandos
austauschen (beispielsweise mit dem Systemspeicher 21,
dem Host-Prozessor 12 und/oder dem Benutzerschnittstellensystem 16).
-
2 ist
eine Darstellung des integrierten Schaltkreises 40. In
dieser Ausführungsform
kann der integrierte Schaltkreis 40 eine Prozessorschaltung 202,
eine I/O-Schnittstellenschaltung 204, eine Speichersteuerungsschaltung 232,
eine Speichersteuerungsschaltung 230, einen Prozessorbus 206, und
eine Busbrückenschaltung 208 umfassen.
Die Prozessorschaltung 202, die I/O-Schnittstellenschaltung 204,
die Speichersteuerungsschaltung 232, die Speichersteuerungsschaltung 230,
der Prozessorbus 206, und die Busbrückenschaltung 208 können an
den Bus 206 gekoppelt sein und über diesen Daten und/oder Kommandos
austauschen. Die Busbrückenschaltung 208 kann
den Prozessorbus 206 an einen I/O-Bus 254 koppeln,
und kann erlauben, dass Einrichtungen, die an den Bus 206 gekoppelt
sind, mit Einrichtungen, die an den Bus 254 gekoppelt sind,
Daten und/oder Kommandos austauschen, wobei eine Isolation des jeweiligen
Adressraums der Busse 206 und 254 voneinander
erlaubt ist. Die Speichersteuerungsschaltung 230, eine Host-Bus-Schnittstellenschaltung 210,
eine Startcodespeicherschnittstelle 242, und eine Peripherieschnittstellenschaltung 244 können ebenfalls
an den Bus 254 gekoppelt sein, und können über den Bus 254 Daten
und/oder Kommandos untereinander austauschen. Die Speichersteuerungsschaltung 230 kann
an den Speicher 38 gekoppelt sein. Die Startcodespeicherschnittstelle 242 kann
an den Speicher 39 gekoppelt sein. Die Speichersteuerungsschaltung 230 kann
an einen computerlesbaren Speicher 228 gekoppelt sein.
Der Speicher 228 kann beispielsweise einen statischen Schreib-/Lesespeicher
(SRAM) mit mehreren Anschlüssen
umfassen, obwohl der Speicher 228 andere computerlesbare
Speichertypen umfassen kann, ohne von dieser Ausführungsform
abzuweichen. Die Host-Bus-Schnittstellenschaltung 210 kann
an die Host-Bus-Schnittstelle 35 gekoppelt
sein.
-
Die
Moduswählerschaltung 42 kann
an eine allgemein verwendbare I/O-Schnittstellenschaltung 248 gekoppelt
sein, die in einer Schnittstellenschaltung 246 enthalten
sein kann. Die Schnittstellenschaltung 246 kann andere
und/oder zusätzliche
Typen von Schnittstellenschaltungen (nicht dargestellt) umfassen,
ohne von dieser Ausführungsform
abzuweichen. Die Schnittstellenschaltung, die in der Schnittstelle 246 enthalten
ist, kann über
eine Peripherieschnittstellenschaltung 244 an den Bus 254 gekoppelt
sein, welche erlauben kann, dass die Schnittstellenschaltung in
der Schnittstelle 246 an den Peripheriebus in der Schaltung 246 gekoppelt sein
kann, um mit Einrichtungen, die an den Bus 254 gekoppelt
sein können,
Daten und/oder Kommandos auszutauschen.
-
Die
Startcodespeicherschnittstellenschaltung 242 kann erlauben,
dass Programmbefehle, die in Speicher 39 gespeichert sind,
von einer Prozessorschaltung 202 aus diesem abgerufen und
ausgeführt werden,
nachdem der integrierte Schaltkreis 40 beispielsweise zurückgesetzt
wurde. Genauer ausgedrückt,
kann die Prozessorschaltung 202 über den Bus 206, die
Brückenschaltung 208,
den Bus 254, und die Schnittstellenschaltung 242 ein
oder mehrere Kommandos an den Speicher 39 bereitstellen,
was bewirken kann, dass diese Programmbefehle aus dem Speicher 39 abgerufen
und über
die Schnittstelle 242, den Bus 254, die Brückenschaltung 208 und den
Bus 206 an die Schaltung 202 bereitgestellt werden.
-
Der
integrierte Schaltkreis 40 kann auch eine Leistungsüberwachungs-(Performance
Monitoring – PMON)-Schaltung 226 umfassen.
Die PMON-Schaltung 226 kann z.B. den Austausch von Daten und/oder
Kommandos überwachen,
der über
den Bus 206 und/oder den Bus 254 ausgeführt wird,
und oder andere und/oder zusätzliche
Vorgänge,
die von anderen Schaltungen im integrierten Schaltkreis 40 ausgeführt werden,
und kann wenigstens teilweise auf Grundlage einer solchen Überwachung
bestimmen, ob der integrierte Schaltkreis 40 fehlerfrei
arbeitet. Die PMON-Schaltung 226 kann die Resultate ihrer Überwachungsaktivitäten z.B.
der Prozessorschaltung 202 und/oder externen Einrichtungen
mitteilen, z.B. über
Schaltung 210 dem Host-Prozessor 12.
-
Die
Prozessorschaltung 202 kann eine Prozessorkernschaltung
aufweisen, die mehrere Prozessorkerne 216 und 218 umfassen
kann. Im hier verwendeten Sinne kann ein „Prozessorkern" festverdrahtete
Schaltungen, programmierbare Schaltungen, und/oder Zustandsautomatenschaltungen umfassen.
Außerdem
kann im hier verwendeten Sinne „Schaltung" beispielsweise einzeln oder in Kombination
festverdrahtete Schaltungen, programmierbare Schaltungen, und/oder
Zustandsautomatenschaltungen und/oder Firmware umfassen, welche
Befehle speichert, die von programmierbaren Schaltungen ausgeführt werden.
In dieser Ausführungsform
kann jeder Prozessorkern 216 und 218 eine jeweilige Schaltung
umfassen, die mit der Intel® XScaleTM Kern-Mikroarchitektur
kompatibel ist oder übereinstimmt,
die im „Intel® XScaleTM Core Developers Manual", veröffentlicht im Dezember 2000
vom Inhaber der vorliegenden Anmeldung, beschrieben ist. Natürlich kann,
wie oben erwähnt,
die Schaltung 202 auch andere Prozessorkernschaltungstypen
umfassen, ohne von dieser Ausführungsform
abzuweichen.
-
In
dieser Ausführungsform
können
die Prozessorkerne 216 und 218 beispielsweise
jeweils einen computerlesbaren Programm befehlsspeicher 220 bzw. 224 umfassen,
der jeweils einen Satz von Mikrocodeprogrammbefehlen enthält, die
die jeweiligen Prozessorkerne 216 und 218 ausführen können. Die
Ausführung
dieser jeweiligen Programmbefehlssätze durch die Prozessorkerne 216 und 218 kann beispielsweise
bewirken, dass die Schaltung 202, der Kern 216 und/oder
der Kern 218 Vorgänge
ausführen,
die hier als jeweils von der Schaltung 202, dem Kern 216 und/oder
dem Kern 218 ausgeführt
beschrieben werden. Wenigstens ein Teil dieser jeweiligen Programmbefehlssätze kann
z.B. aus dem Startcodespeicher 39 abgerufen werden, nachdem
beispielsweise der integrierte Schaltkreis 40 zurückgesetzt
wurde. Der Prozessorkern 216 kann auch einen Cache-Speicher
der Ebene 2 222 umfassen, der von dem Prozessorkern 216 beim
Ausführen
der Vorgänge
benutzt werden kann, die hier als vom Prozessorkern 216 ausgeführt beschrieben
werden.
-
Die
Schnittstellenschaltung 204 kann eine Protokollmaschinenschaltung 250A, 250B,
... 250N und eine physikalische Schichtschnittstellenschaltung 252A, 252B,
... 252N umfassen. Wie unten beschrieben, kann jede einzelne
Protokollmaschinenschaltung 250A, 250B, ... 250N einer
jeweiligen physikalischen Schichtschnittstellenschaltung 252A, 252B,
... 252N zugeordnet sein und Daten und/oder Kommandos mit
dieser austauschen. So kann beispielsweise die Protokollmaschinenschaltung 250A der
physikalischen Schichtschnittstellenschaltung 252A zugeordnet
sein und Daten und/oder Kommandos mit dieser austauschen, die Protokollmaschinenschaltung 250B der
physikalischen Schichtschnittstellenschaltung 252B zugeordnet
sein und Daten und/oder Kommandos mit dieser austauschen, und die
Protokollmaschinenschaltung 250N der physikalischen Schichtschnittstellenschaltung 252N zugeordnet
sein und Daten und/oder Kommandos mit dieser austauschen. In dieser
Ausführungsform
können
der jeweilige Aufbau und Betrieb der einzelnen Protokollmaschinenschaltungen 250A, 250B,
... 250N identisch sein. Außerdem können in dieser Ausführungsform
der jeweilige Aufbau und Betrieb der einzelnen Schnittstellen 252A, 252B,
... 252N identisch sein.
-
Ohne
von dieser Ausführungsform
abzuweichen, kann die jeweilige Anzahl von Protokollmaschinen 250A, 250B,
... 250N, der physikalischen Schichtschnittstellen 252A, 252B,
... 252N und Verbindungen 44 variieren. In dieser
Ausführungsform allerdings
entspricht die Anzahl der Protokollmaschinen 250A, 250B,
... 250N der Anzahl der physikalischen Schichtschnittstellen 252A, 252B,
... 252N. Auch kann in dieser Ausführungsform jede der physikalischen
Schichtschnittstellen 252A, 252B, ... 252N an
eine jeweilige Verbindung 44 gekoppelt sein; deshalb kann
in dieser Ausführungsform
die Anzahl der physikalischen Schichtschnittstellen 252A, 252B,
... 252N gleich der Anzahl von Verbindungen 44 sein.
-
Die
Hostbusschnittstellenschaltung 210 kann eine jeweilige
Schnittstellenschaltung umfassen, die dazu benutzt werden kann,
zu erlauben, dass der integrierte Schaltkreis 40 gemäß einem
von mehreren unterschiedlichen Hostbusprotokollen, mit denen der
Bus 22 übereinstimmen
oder kompatibel sein kann, Daten und/oder Kommandos mit anderen Einrichtungen
austauschen kann, die an den Bus 22 gekoppelt sein können. Beispielsweise
kann die Schaltung 210 in dieser Ausführungsform eine PCI-X-Busschnittstellenschaltung 212 und
eine PCI-ExpressTM-Busschnittstellenschaltung 214 umfassen.
Das heißt,
wie im Folgenden erörtert
werden soll, es kann wenigstens teilweise in Abhängigkeit von dem Busprotokoll,
mit dem der Bus 22 übereinstimmen
oder kompatibel sein kann, ein bestimmter Betriebsmodus des integrierten
Schaltkreises 40 ausgewählt
werden, in dem nur eine einzige, jeweils passende der jeweiligen
Schnittstellenschaltungen in Schaltung 210 dazu aktiviert
werden kann, Daten und/oder Kommandos mit Einrichtungen auszutauschen,
die an den Bus 22 gekoppelt sein können, während andere jeweilige Schnittstellenschaltungen in
der Schaltung 210 deaktiviert sein können.
-
Obwohl
nicht in den Figuren gezeigt, können in
dieser Ausführungsform
die Speichersteuerungsschaltung 232 und/oder eine DMA-Schaltung 234 an den
Bus 254 gekoppelt sein. In dieser Ausführungsform kann die Speichersteuerungsschaltung 232 eine
Speicherdirektzugriffs-(Direct Memory Access – DMA)-Schaltung 234 umfassen.
Die Speichersteuerungsschaltung 232 kann die Speicherung
von Daten in, und das Abrufen von Daten aus dem Speicher 228 steuern.
Beispielsweise kann die Speichersteuerungsschaltung 232 in
dieser Ausführungsform
Kommandos und/oder Daten mit z.B. der Prozessorschaltung 202,
der Schnittstellenschaltung 204, der Schnittstellenschaltung 210 und/oder
der Speichersteuerungsschaltung 230 austauschen. Wenigstens teilweise
auf Grundlage dieser Kommandos kann die Speichersteuerungsschaltung 232 Daten
und/oder Kommandos mit dem Speicher 228 austauschen. Dies
kann bewirken, dass der Speicher 228 entsprechend den Kommandos
und/oder Daten, die an die Speichersteuerungsschaltung 232 geliefert
werden, Daten speichert und/oder abruft. Außerdem kann abhängig von
dem ausgewählten
Betriebsmodus des integrierten Schaltkreises 40 die DMA-Schaltung 234 auf
Grundlage von Kommandos und/oder Daten, die von der Schaltung 234 von
anderen Schaltungen in dem integrierten Schaltkreis 40 empfangen
wurden, den Austausch von Daten und/oder Kommandos, die von der
I/O-Schnittstellenschaltung 204 empfangen werden oder gesendet
werden sollen, über
eine oder mehrere Verbindungen 44 zwischen der I/O-Schnittstelle 204 und
den anderen Schaltungen im integrierten Schaltkreis 40 steuern.
Ohne von dieser Ausführungsform
abzuweichen, kann die DMA-Schaltung 234 auch nicht in der
Schaltung 232 enthalten sein, sondern kann stattdessen
eine Schaltung umfassen, die separat von der Schaltung 232 ausgebildet
ist, und an die Schaltung 232 und den Bus 254 gekoppelt ist.
-
In
dieser Ausführungsform
kann die Speichersteuerungsschaltung 230 eine RAID-vorgangsbezogene
Schaltung 240 umfassen.
-
Die
Schaltung 240 kann beispielsweise eine DMA-Schaltung 238 und
eine RAID-Berechnungsschaltung 236 umfassen. Die Speichersteuerungsschaltung 230 kann
die Speicherung von Daten in dem externen Speicher 38 und
das Abrufen von Daten aus demselben steuern. In dieser Ausführungsform
beispielsweise kann die Speichersteuerungsschaltung 230 Kommandos
und/oder Daten z.B. mit der Prozessorschaltung 202, der
Schnittstellenschaltung 210 und/oder der Speichersteuerungsschaltung 232 austauschen.
Wenigstens teilweise auf Grundlage dieser Kommandos kann die Speichersteuerungsschaltung 230 Daten
und/oder Kommandos mit dem Speicher 38 austauschen. Dies
kann bewirken, dass der Speicher 38 gemäß den Kommandos und/oder Daten,
die an die Speichersteuerungsschaltung 232 geliefert werden,
Daten speichert und/oder abruft. Außerdem kann die DMA-Schaltung 238 abhängig von
dem ausgewählten
Betriebsmodus des integrierten Schaltkreises 40 auf Grundlage
der Kommandos und/oder Daten, die von der Schaltung 238 von
anderen Schaltungen im integrierten Schaltkreis 40 empfangen
wurden, den Austausch von RAID-bezogenen Daten zwischen diesen anderen
Schaltungen in dem integrierten Schaltkreis 40 steuern.
Im hier verwendeten Sinne bezeichnen „RAID-bezogene Daten" Daten, die an Vorgängen, welche
beim Implementieren und/oder Verwalten eines RAID, z.B. RAID 29,
beteiligt sind, als Resultat derselben erzeugt werden, als Eingabe
und/oder Operanden dabei benutzt werden, und/oder beim Ausführen und/oder
Unterstützen
derselben benutzt werden. Die RAID-Berechnungsschaltung 236 kann
eine arithmetische Beschleunigungsschaltung (nicht dargestellt)
umfassen, die dazu in der Lage sein kann, eine oder mehrere arithmetische
Operationen unter Benutzung und/oder Beteiligung RAID-bezogener
Daten durchzuführen,
wie z.B. logische Exklusiv-ODER-Operationen, die aus den ursprünglichen
Benutzerdaten RAID-Paritätsdaten
erzeugen können,
oder die ursprünglichen
Benutzerdaten aus solchen RAID-Paritätsdaten wiederherstellen können. Ohne
von dieser Ausführungsform
abzuweichen, können
die DMA-Schaltung 238 und/oder die RAID-Be rechnungsschaltung 236 auch
nicht in der Schaltung 230 enthalten sein, sondern können stattdessen
eine Schaltung umfassen, die separat von der Schaltung 230 ausgebildet
ist, und an die Schaltung 230 und den Bus 254 gekoppelt
ist. Ebenfalls ohne von dieser Ausführungsform abzuweichen, kann
der integrierte Schaltkreis 40 auch keine RAID-Berechnungsschaltung 236 umfassen,
und die arithmetischen und/oder logischen Operationen, die von der
Schaltung 236 durchgeführt
werden, können
stattdessen von dem Prozessorkern 216 durchgeführt werden.
-
Wie
zuvor erwähnt,
kann der jeweilige Aufbau der Protokollmaschinen 250A, 250B,
... 250N identisch sein. 3 ist eine
Darstellung, die die Protokollmaschine 250A illustriert.
Die Protokollmaschine 250A kann eine Schnittstellenschaltung 302,
eine Datentransportschichtschaltung 203, eine Anschlussschichtschaltung 306,
eine Verbindungssicherungsschichtschaltung 308, und eine
SAS-Verbindungsschichtschaltung 310 umfassen. Obwohl in den
Figuren nicht gezeigt, kann die Schaltung 302 die Schaltungen 304, 306, 308 und 310 an
den Bus 206 koppeln, damit die Schaltungen 304, 306, 308 und/oder 310 Daten
und/oder Kommandos mit dem Prozessorkern 218 austauschen
können.
Die SAS-Verbindungsschichtschaltung 310 kann an die physikalische
Schichtschaltung 252A gekoppelt sein und Daten/oder Kommandos
mit dieser austauschen. Die Transportschichtschaltung 304 kann
an die Anschlussschichtschaltung 306 gekoppelt sein und
Daten und/oder Kommandos mit dieser austauschen. Die Anschlussschichtschaltung 306 kann auch
an die Verbindungssicherungsschichtschaltung 308 gekoppelt
sein und Daten und/oder Kommandos mit dieser austauschen. Die SAS-Verbindungsschicht 310 kann
an die Verbindungssicherungsschichtschaltung 308 und die
Anschlussschichtschaltung 306 gekoppelt sein und Daten
und/oder Kommandos mit diesen austauschen.
-
In
dieser Ausführungsform
kann die Transportschichtschalturig 304 eine SMP-(Serial
Management Protocol)-Trans portschichtschaltung 312, eine ATA-(Serial
Advanced Technology Attachment)-STP-(Tunneled Protocol)-Transportschichtschaltung 314,
und eine SCSI-(Serial Small Computer System Interface)-SSP-(Simple
Signature Protocol)-Transportschichtschaltung 316 umfassen.
In dieser Ausführungsform
kann außerdem
die Anschlussschichtschaltung 306 eine Verbindungsverwaltungsschaltung 318 umfassen.
Des Weiteren kann die Verbindungssicherungsschichtschaltung 308 in
dieser Ausführungsform
eine SMP-Verbindungsschichtschaltung 320, eine STP-Verbindungsschichtschaltung 322,
und eine SSP-Verbindungsschichtschaltung 324 umfassen.
In dieser Ausführungsform
kann die SAS-Verbindungsschichtschaltung 310 eine Außerband-(Out
of Band – OOB)-Signalverwaltungsschaltung 326 und
eine S-ATA-Verbindungsgeschwindigkeits-Aushandlungssteuerschaltung 328 umfassen.
-
Soweit
nicht anders angegeben, versteht es sich, dass die Schaltungen 304, 306, 308 und 310 übliche SAS-Kommunikationsprozesse,
-abläufe
und -verfahren implementieren können.
Soweit nicht anders angegeben, versteht es sich beispielsweise, dass
die Schaltungen 312, 314 und 316 jeweils übliche SMP-Transportschicht-,
STP-Transportschicht- bzw. SSP-Transportschicht-Protokolle,
Prozesse, Abläufe
und Verfahren implementieren können,
und auch jeweilige Signalsätze
erzeugen können,
die das Ausführen
solcher Protokolle, Prozesse, Abläufe und Verfahren bewirken
können.
Auch kann die Schaltung 306 beispielsweise übliche SAS-Anschlusssteuerungsprotokolle,
-abläufe,
-prozesse und -verfahren implementieren, und kann auch jeweilige
Signale erzeugen, die das Ausführen
solcher Protokolle, Prozesse, Abläufe und Verfahren bewirken
können.
Ferner können
beispielsweise die Schaltungen 320, 322 und 324 übliche SMP-Verbindungsschicht-,
STP-Verbindungsschicht- und SSP-Verbindungsschicht-Protokolle, Abläufe, Prozesse
und Verfahren implementieren, und auch jeweilige Signalsätze erzeugen,
die das Ausführen
solcher Protokolle, Prozesse, Abläufe und Verfahren bewirken
können.
Außerdem
kann beispielsweise die Schaltung 310 übliche SAS-Verbindungssicherungsschichtprotokolle,
-abläufe,
-prozesse und -verfahren implementieren, um z.B. die Übertragungsschnittstelle 252A zu
steuern, und kann jeweilige Signalsätze erzeugen, die das Ausführen solcher
Protokolle, Prozesse, Abläufe
und Verfahren bewirken können.
Natürlich
sind abhängig
von den jeweiligen Protokollen, über
die der integrierte Schaltkreis 40 zu kommunizieren in
der Lage ist, viele Variationen, Modifikationen und Alternativen
möglich,
ohne von dieser Ausführungsform
abzuweichen.
-
In
dieser Ausführungsform
kann jede physikalische Schichtschnittstellenschaltung 252A, 252B, ... 252N eine
jeweilige analoge Front-End-(AFE)-Schaltung 253A, 253B,
... 253N umfassen, die Daten und/oder Steuerungssignale über eine
jeweilige Verbindung 44 von dem Massenspeicher 28 empfangen
und/oder an diesen senden kann. In dieser Ausführungsform kann die physikalische
Schichtschnittstellenschaltung 252A eine AFE-Schaltung 253A umfassen,
die über
eine der Verbindungen 44 Daten und/oder Steuerungssignale von
einem oder mehreren Massenspeichereinrichtungen, die in einer oder
mehreren Einrichtungen 52 enthalten sind, empfangen kann
und/oder an diese übertragen
kann.
-
Wie
zuvor erwähnt,
können
eine oder mehrere Einrichtungen 52 in einer Protokolldomäne 50 enthalten
sein. In dieser Ausführungsform
kann die Protokolldomäne 50 entweder
eine SAS-Domäne
oder eine S-ATA-Domäne
sein. Wenn die Protokolldomäne 50 eine
SAS-Domäne
ist, können
eine oder mehrere Einrichtungen 52 dazu in der Lage sein, über eine
der Verbindungen 44 unter Benutzung eines SAS-Protokolls
zu kommunizieren. Wenn umgekehrt die Protokolldomäne 50 eine
S-ATA-Domäne
ist, können
eine oder mehrere Einrichtungen 52 dazu in der Lage sein, über eine
der Verbindungen 44 unter Benutzung eines S-ATA-Protokolls
zu kommunizieren.
-
Wie
im Folgenden erörtert,
kann der integrierte Schaltkreis 40 in dieser Ausführungsform
wenigstens teilweise in Abhängigkeit
von dem ausgewählten
Betriebsmodus des integrierten Schaltkreises 40 dazu in
der Lage sein, zu erkennen, ob eine oder mehrere Einrichtungen 52 dazu
in der Lage sind, über
ein SAS-Kommunikationsprotokoll oder über ein S-ATA-Kommunikationsprotokoll
zu kommunizieren. Wenigstens teilweise auf Grundlage dieser Erkennung
durch den integrierten Schaltkreis 40 kann der integrierte
Schaltkreis 40 wenigstens teilweise auswählen, ob
mit einer oder mehreren Einrichtungen 52 unter Benutzung
eines SAS- oder eines S-ATA-Kommunikationsprotokolls
zu kommunizieren ist, um es dem integrierten Schaltkreis 40 zu ermöglichen,
mit einer oder mehreren Einrichtungen 52 zu kommunizieren.
-
Gemäß dem SAS-
und dem S-ATA-Protokoll kann beispielsweise während der Initialisierung der Kommunikationsverbindung
zwischen dem integrierten Schaltkreis 40 und dem Massenspeicher 28 z.B. nach
einem Zurücksetzen
des Systems 100 über eine
der Verbindungen 44 eine OOB-Signalfolge zwischen der AFE-Schaltung 253A und
einer oder mehreren Einrichtungen 52 ausgetauscht werden.
Entsprechend dem S-ATA-Protokoll kann für den Fall, dass eine oder
mehrere Einrichtungen 52 dazu in der Lage sind, unter Benutzung
des S-ATA-Protokolls
zu kommunizieren, und sie direkt über eine der Verbindungen 44 an
die AFE-Schaltung 253A gekoppelt sind (d.h. wenn eine oder
mehrere Einrichtungen 52 nicht über einen SAS-Expander an die
AFE-Schaltung 253A gekoppelt sind), erwartet werden, dass eine
oder mehrere Einrichtungen 52 während einer S-ATA-OOB-Signalfolge
eine vorbestimmte, spezielle primitive Signalfolge (in 1 durch
den Block mit Bezugszeichen 54 bezeichnet), die z.B. ein
vorbestimmtes Kommatextzeichen, wie z.B. ein K28,5-Textzeichen umfassen
kann, an die AFE-Schaltung 253A übertragen. Im hier verwendeten
Sinne umfasst eine „Signalfolge" ein oder mehrere
Signale. Gemäß dem SAS-Protokoll
kann umgekehrt für
den Fall, dass eine oder mehrere Einrichtungen 52 dazu
in der Lage sind, unter Benutzung des SAS-Protokolls zu kommunizieren,
erwartet werden, dass eine oder mehrere Einrichtungen 52 diese
spezielle Signalfolge 54 während einer SAS-OOB-Signalfolge
nicht an die AFE-Schaltung 253A übertragen, sondern stattdessen
während
dieser Signalfolge eine vorbestimmte COMSAS-Signalfolge 56 an
die AFE-Schaltung 253A übertragen.
Wenn also die AFE-Schaltung 253A während einer solchen OOB-Signalfolge
von einer oder mehreren Einrichtungen 52 die Signalfolge 54 empfängt, aber
nicht die vorbestimmte COMSAS-Signalfolge 56 empfängt, kann
dies anzeigen, dass die Protokolldomäne 50 eine S-ATA-Domäne ist,
eine oder mehrere Einrichtungen 52 direkt über eine
der Verbindungen 44 an die AFE-Schaltung 253A gekoppelt
sind, und eine oder mehrere Einrichtungen 52 dazu in der
Lage sind, über
ein S-ATA-Protokoll mit dem integrierten Schaltkreis 40 zu
kommunizieren. Wenn die AFE-Schaltung 253A umgekehrt
während
einer solchen OOB-Signalfolge von einer oder mehreren Einrichtungen 52 die
COMSAS-Signalfolge 56 empfängt, aber
nicht die Signalfolge 54, kann dies anzeigen, dass die
Protokolldomäne 50 eine
SAS-Domäne ist,
und eine oder mehrere Einrichtungen 52 dazu in der Lage
sind, über
ein SAS-Protokoll mit dem integrierten Schaltkreis 40 zu
kommunizieren.
-
Gemäß dieser
Ausführungsform
kann die physikalische Schichtschnittstellenschaltung 252A während der
Initialisierung der Kommunikationsverbindung Signale an die OOB-Verwaltungsschaltung 320 bereitstellen,
die die OOB-Signale anzeigen, die die AFE-Schaltung 253A von
einer oder mehreren Einrichtungen 52 empfangen hat. Die
OOB-Verwaltungsschaltung 320 kann die Signale prüfen, die
ihr von der Schnittstellenschaltung 252A bereitgestellt wurden,
um zu detektieren, ob die AFE-Schaltung 253A während einer
OOB-Signalfolge
von einer oder mehreren Einrichtungen 52 die Signalfolge 54 oder die
COMSAS-Signalfolge 56 empfangen hat. Sobald die OOB-Verwaltungsschaltung 320 detektiert
hat, dass die AFE-Schaltung 253A während einer OOB-Signal folge
die Signalfolge 54 oder die COMSAS-Signalfolge 56 empfangen
hat, kann die OOB-Verwaltungsschaltung 320 ein oder mehrere Signale
an den Prozessorkern 218 bereitstellen, das oder die anzeigen
können,
ob die AFE-Schaltung 253A die Signalfolge 54 oder
die COMSAS-Signalfolge 56 empfangen hat.
-
Nach
Abschluss dieser OOB-Signalfolge kann der Prozessorkern 218 wenigstens
teilweise auf Grundlage dessen, ob die OOB-Verwaltungsschaltung 320 detektiert
hat, dass die AFE-Schaltung 253A während der
OOB-Signalfolge die Signalfolge 54 und/oder die COMSAS-Signalfolge 56 empfangen hat
oder nicht empfangen hat, bestimmen, ob eine oder mehrere Einrichtungen 52 direkt über eine
der Verbindungen 44 an den integrierten Schaltkreis 40 gekoppelt
sind, und dazu in der Lage sind, mit dem integrierten Schaltkreis 40 über ein
SAS-Protokoll zu kommunizieren. Wenn die Schaltung 320 beispielsweise
detektiert hat, dass die AFE-Schaltung 253A während dieser
OOB-Signalfolge von einer oder mehreren Einrichtungen 52 die
Signalfolge 54 empfangen hat, aber nicht die COMSAS-Signalfolge 56, kann
der Prozessorkern 218 bestimmen, dass eine oder mehrere
Einrichtungen 52 direkt über eine der Verbindungen 44 an
den integrierten Schaltkreis 40 gekoppelt sind, und dazu
in der Lage sind, mit dem integrierten Schaltkreis 40 über ein
S-ATA-Protokoll zu kommunizieren. Wenn umgekehrt die Schaltung 320 detektiert
hat, dass die AFE-Schaltung 253A während dieser OOB-Signalfolge
die COMSAS-Signalfolge 56 empfangen hat, aber nicht die
Signalfolge 54, kann der Prozessorkern 218 bestimmen,
dass eine oder mehrere Einrichtungen 52 dazu in der Lage sind,
mit dem integrierten Schaltkreis 40 über ein SAS-Protokoll zu kommunizieren.
-
Abhängig von
den jeweiligen Kommunikationsprotokollen, über die der integrierte Schaltkreis 40 zu
kommunizieren in der Lage ist, können
natürlich
das Textzeichen 54 und/oder das Signal 56 variieren,
ohne von dieser Ausführungsform
abzu weichen. Abhängig
von den jeweiligen Kommunikationsprotokollen, über die der integrierte Schaltkreis 40 und/oder
eine oder mehreren Einrichtungen 52 zu kommunizieren in
der Lage sind, kann außerdem
die Art und Weise, wie der integrierte Schaltkreis 40 das oder
die Kommunikationsprotokolle bestimmt, über das oder die eine oder
mehrere Einrichtungen zu kommunizieren in der Lage sind, variieren,
ohne von dieser Ausführungsform
abzuweichen.
-
Wenn
der Prozessorkern 218 bestimmt, dass eine oder mehreren
Einrichtungen 52 direkt über eine der Verbindungen 44 an
die AFE-Schaltung 253A gekoppelt sind, und in der Lage
dazu sind, über
ein S-ATA-Protokoll mit dem integrierten Schaltkreis 40 zu
kommunizieren, kann der Prozessorkern 218 ein oder mehrere
jeweilige Signale an die Schaltungen 304, 306, 308, 310 und 252A ausgeben.
Dies kann bewirken, dass die Schaltungen 250A und 252A dazu
aktiviert werden, zu erlauben, dass der integrierte Schaltkreis 40 direkt über eine
der Verbindungen 44 mit einer oder mehreren Einrichtungen 52 unter
Benutzung des S-ATA-Protokolls kommuniziert. Genauer ausgedrückt, kann
dies bewirken, dass beispielsweise die Schaltungen 312, 316, 318, 320 und 324 für ihre Beteiligung
an der Kommunikation zwischen dem integrierten Schaltkreis 40 und
einer oder mehrerer Einrichtungen 52 deaktiviert werden,
und kann auch bewirken, dass die Schaltungen 314, 322 und 328 dafür aktiviert
werden, sich aktiv an der Ausführung
der Kommunikation zwischen dem integrierten Schaltkreis 40 und
einer oder mehrerer Einrichtungen 52 zu beteiligen. Alternativ
kann die Schaltung 310 wenigstens teilweise in Reaktion
auf die Signalisierung der Schaltung 310 durch den Prozessorkern 218 der
Schaltung 306 und/oder der Schaltung 318 signalisieren;
dies kann bewirken, dass die Schaltung 318 für ihre Beteiligung
an der Kommunikation zwischen dem integrierten Schaltkreis 40 und einer
oder mehrerer Einrichtungen 52 deaktiviert wird.
-
Das
Signalisieren der Schaltung 252A durch den Prozessorkern 218 kann
wenigstens teilweise bewirken, dass die Sende- und/oder Empfangssignalisierungspegel
der AFE-Schaltung 253A so eingestellt werden, dass sie
mit den S-ATA-Sende- und/oder
Empfangssignalisierungspegeln übereinstimmen
oder kompatibel sind. Das heißt,
dies kann bewirken, dass die AFE-Schaltung 253A die Spannungs-
und/oder Strompegel von Signalen, die von der AFE-Schaltung 253A an
eine oder mehrere Einrichtungen 52 übertragen werden, derart anpasst, dass
sie mit S-ATA-Sende- und/oder Empfangssignalisierungspegeln übereinstimmen
oder kompatibel sind, und/oder es kann bewirken, dass die AFE-Schaltung 253A Signale
detektiert, die von der AFE-Schaltung 253A empfangen werden,
deren Spannungs- und/oder Strompegel mit empfangenen S-ATA-Spannungs-
und/oder Strompegel übereinstimmen
oder kompatibel sind.
-
Das
Signalisieren der Schaltung 310 durch den Prozessorkern 218 kann
bewirken, dass die Schaltung 328 dafür aktiviert wird, übliche S-ATA-Kommunikationsverbindungsgeschwindigkeits-Aushandlungsprotokolle,
-abläufe,
-prozesse und -verfahren zu implementieren, um mit einer oder mehreren
Einrichtungen 52 die passende Geschwindigkeit für die Kommunikation
auszuhandeln, die über
eine der Verbindungen 44 zwischen einer oder mehreren Einrichtungen 52 und
dem integrierten Schaltkreis 40 ausgeführt werden soll. Die Schaltung 310 kann
ein oder mehrere Signale erzeugen und an die Schnittstelle 252A übertragen,
die das Ausführen solcher
Protokolle, Abläufe,
Prozesse und Verfahren bewirken können.
-
Wenn
im Betrieb des Systems 100 die Schaltung 318 dafür aktiviert
wird, aktiv an der Ausführung der
Kommunikation zwischen dem integrierten Schaltkreis 40 und
einer oder mehreren Einrichtungen 52 beteiligt zu sein,
kann die Schaltung 318 wenigstens teilweise Verbindungsverwaltungsfunktionen
implementieren, die wenigstens teilweise ein Timeout der Kommunikation
zwischen dem integrierten Schaltkreis 40 und einer oder
mehreren Einrichtungen 52 verhindern. Wenn im Betrieb des
Systems 100 umgekehrt die Schaltung dafür deaktiviert wird, sich aktiv
an der Ausführung
einer solchen Kommunikation zu beteiligen, kann der Prozessorkern 218 ein
oder mehrere Signale an die Schaltung 250A bereitstellen,
die bewirken können,
dass die Schaltung 250A eine S-ATA-Hostfunktion übernimmt,
was die Aufrechterhaltung dieser Kommunikation ohne Timeout bewirken
kann.
-
Wenn
umgekehrt der Prozessorkern 218 bestimmt, dass eine oder
mehrere Einrichtungen 52 dazu in der Lage sind, über ein
SAS-Protokoll mit dem integrierten Schaltkreis 40 zu kommunizieren, kann
der Prozessorkern 218 ein oder mehrere jeweilige Signale
an die Schaltungen 304, 306, 308, 310 und 252A ausgeben.
Dies kann bewirken, dass die Schaltung 250A und 252A dafür aktiviert
werden, zu erlauben, dass der integrierte Schaltkreis über eine der
Verbindungen 44 unter Benutzung eines SAS-Protokolls mit
einer oder mehreren Einrichtungen 52 kommuniziert. Genauer
ausgedrückt,
das Signalisieren der Schaltung 304, der Schaltung 306 und
der Schaltung 308 kann jeweils bewirken, dass die Schaltung 314 dafür deaktiviert
wird, sich aktiv an der Kommunikation zwischen dem integrierten Schaltkreis 40 und
einer oder mehreren Einrichtungen 52 zu beteiligen, die
Schaltung 318 dafür
aktiviert wird, sich aktiv an dieser Kommunikation zu beteiligen,
und die Schaltung 322 dafür deaktiviert wird, sich an
dieser Kommunikation zu beteiligen. Abhängig davon, ob die Kommunikation
zwischen einer oder mehreren Einrichtungen 52 und dem integrierten
Schaltkreis 40 über
ein SMP- oder ein SSP-SAS-Protokoll
ausgeführt
wird, kann das Signalisieren der Schaltung 304 durch den
Prozessorkern 218 außerdem
bewirken, dass die Schaltung 312 oder 316 jeweils
dafür aktiviert
wird, sich aktiv an dieser Kommunikation zu beteiligen. Außerdem kann das
Signalisieren der Schaltung 252A durch den Prozessorkern 218 wenigstens
teilweise bewirken, dass die Sende- und/oder Empfangssignalpegel
der AFE-Schaltung 253A so eingestellt werden, dass sie mit
den SAS-Sende- und/oder Empfangssignalpegeln übereinstimmen oder kompatibel
sind. Das heißt,
es kann bewirken, dass die AFE-Schaltung 235A die Spannungs-
und/oder Strompegel von Signalen, die von der AFE-Schaltung 253A an
eine oder mehrere Einrichtungen 52 übertragen werden, derart anpasst,
dass sie mit den SAS-Sende- und/oder Empfangssignalpegeln übereinstimmen
oder kompatibel sind, und/oder es kann auch bewirken, dass die AFE-Schaltung 253A Signale
detektiert, die von der AFE-Schaltung 253A empfangen werden,
und deren Spannungs- und/oder Strompegel mit empfangenen SAS-Sende- und/oder Empfangssignalpegeln übereinstimmen
oder kompatibel sind. Ferner kann das Signalisieren der Schaltung 310 durch
den Prozessorkern 218 bewirken, dass die Schaltung 328 dafür deaktiviert
wird, übliche
S-ATA-Kommunikationsverbindungsgeschwindigkeits-Aushandlungsprotokolle, -abläufe, -prozesse
und -verfahren zu implementieren, wie zuvor beschrieben.
-
In
dieser Ausführungsform
kann wenigstens teilweise auf Grundlage von und/oder als Resultat von
einem oder mehreren Signalen, die von einer Wählerschaltung 42 an
eine GPIO-Schnittstellenschaltung 248 bereitgestellt
werden, von einem oder mehreren Signalen, die von dem Hostprozessor 12 an
die Hostbusschnittstellenschaltung 210 bereitgestellt werden,
und/oder von einer Ausführung
durch die Prozessorschaltung 202 oder einer oder mehreren
Programmbefehlen, die in Speicher 39 gespeichert sind,
ein Betriebsmodus des integrierten Schaltkreises 40 ausgewählt werden.
Wenigstens teilweise in Abhängigkeit
von dem ausgewählten
Betriebsmodus des integrierten Schaltkreises 40 kann der
integrierte Schaltkreis 40 gemäß einer oder mehreren Betriebskenngrößen arbeiten,
die dem ausgewählten
Betriebsmodus entsprechen können.
Beispielsweise können
diese Betriebskenngrößen wenigstens
teilweise in Abhängigkeit
von dem ausgewählten
Betriebsmodus des integrierten Schaltkreises 40 beinhalten,
welche der Busschnittstellen 212 und 214 dafür aktiviert oder
deaktiviert wird, mit dem Bus 22 zu kommunizieren, und/oder
welche Protokollmaschinen 250A, 250B, ... 250N dafür aktiviert oder
deaktiviert wird, mit dem Massenspeicher 28 zu kommunizieren.
Außerdem
oder alternativ können diese
Betriebskenngrößen beispielsweise
umfassen, ob ein oder mehrere Kommunikationsprotokolle, die von
einer oder mehreren Protokollmaschinen 250A, 250B,
... 250N implementiert sind, wenigstens teilweise auf Grundlage
des Erkennens von einem oder mehreren Kommunikationsprotokollen
ausgewählt werden, über die
eine oder mehrere Einrichtungen (wie z.B. eine oder mehrere Einrichtungen 52)
im Massenspeicher 28 kommunizieren können, oder ob die Kommunikation
zwischen dem integrierten Schaltkreis und diesen Einrichtungen über ein
oder mehrere vorbestimmte Protokolle auszuführen ist. Auch können diese
Betriebskenngrößen zusätzlich oder
alternativ umfassen, ob die DMA-Schaltung 234 dafür aktiviert
wird, den Austausch von Daten und/oder Kommandos, die von der I/O-Schnittstelle 204 über eine
oder mehrere Verbindungen 44 empfangen werden oder über diese
gesendet werden sollen, zwischen der I/O-Schnittstelle 240 und
den anderen Schaltungen im integrierten Schaltkreis 40 zu steuern,
oder dafür
deaktiviert wird. Diese Betriebskenngrößen können auch beinhalten, ob der
Prozessorkern 216 und/oder die RAID-vorgangsbezogene Schaltung 240 dafür aktiviert
werden, einen oder mehrere Vorgänge
zum Implementieren und/oder Verwalten eines RAID, z.B. RAID 29,
durchzuführen, oder
dafür deaktiviert
werden.
-
Beispiele
solcher Operationen, die beim Implementieren und/oder Verwalten
eines RAID beteiligt sein können,
sind z.B. in der parallelen
US-Patentanmeldung,
Seriennummer 10/301,028 (Attorney Docket Nr. 42390.P14962),
namens „Integrated
Circuit Having Multiple Modes of Operation", eingereicht am 20. November 2002,
offenbart. Natürlich
sind viele Modifikationen, Variationen und Alternativen möglich, ohne
von dieser Ausführungsform
abzuweichen.
-
In
dieser Ausführungsform
kann die Wählerschaltung 42 eine
oder mehrere Drahtbrücken und/oder
einen oder mehrere DIP-(Dual
In-line Package)-Schalter 43 umfassen, die in mehreren
unterschiedlichen Konfigurierungen eingestellt werden können (z.B.
durch eine nicht dargestellte Bedienungsperson), um wenigstens teilweise
den ausgewählten
Betriebsmodus des integrierten Schaltkreises 40 auszuwählen. Das
heißt,
die mehreren unterschiedlichen Konfigurierungen der Drahtbrücke und/oder
der Schalter 43 können
einer oder mehreren unterschiedlichen Betriebskenngrößen des
oder der unterschiedlichen Betriebsmodi des integrierten Schaltkreises 40 entsprechen.
Wenn die Drahtbrücke(n)
und/oder der oder die DIP-Schalter 43 in einer bestimmten
Konfigurierung eingestellt werden, kann die Wählerschaltung 42 ein
oder mehrere Steuersignale erzeugen, die einer oder mehreren unterschiedlichen
Betriebskenngrößen integrierten
Schaltkreises 40 entsprechen können, die durch diese jeweilige Konfigurierung
eingestellt werden. Beispielsweise nach einem Zurücksetzen
des integrierten Schaltkreises 40 können das oder die Steuersignale
an die Prozessorkerne 216 und 218 geliefert werden.
In Reaktion darauf kann der Prozessorkern 216 gemäß dem ausgewählten Betriebsmodus
aktiviert oder deaktiviert werden; außerdem kann der Prozessorkern 218 entsprechend
geeigneten Steuersignalen arbeiten und/oder diese erzeugen und an
die Schnittstellenschaltungen 204, 210, 232 und/oder 236 liefern,
was bewirken kann, dass diese Schaltungen gemäß dem ausgewählten Betriebsmodus
arbeiten. Alternativ oder zusätzlich
können
das oder die Steuersignale von der Wählerschaltung 42 auch
an Schaltung 210, Schaltung 234 und/oder Schaltung 240 geliefert
werden. Dies kann bewirken, dass die Busschnittstellenschaltung 212,
die Busschnittstellenschaltung 214, die Schaltung 240 und/oder
die Schaltung 234 gemäß dem Betriebsmodus
des integrierten Schaltkreises 40 aktiviert oder deaktiviert
werden, der dem oder den Steuersignalen entspricht, oder von diesen
angezeigt wird.
-
Alternativ
oder zusätzlich
kann der ausgewählte
Betriebsmodus des integrierten Schaltkreises 40 wenigstens
teilweise auf Grundlage und/oder als Resultat von einem oder mehreren
Signalen ausgewählt
werden, die den ausgewählten
Betriebsmodus anzeigen, und die vom Hostprozessor 12 an
die Hostbusschnittstellenschaltung 210 bereitgestellt werden
können.
In Reaktion auf das oder die Signale kann der Prozessorkern 216 gemäß dem ausgewählten Betriebsmodus
aktiviert oder deaktiviert werden; außerdem kann der Prozessorkern 218 gemäß geeigneten
Steuersignalen arbeiten und/oder diese erzeugen und an die Schnittstellenschaltungen 204, 210, 232 und/oder 236 liefern,
was bewirken kann, dass diese Schaltungen gemäß dem ausgewählten Betriebsmodus
arbeiten.
-
Ebenfalls
kann alternativ oder zusätzlich
in dieser Ausführungsform
der ausgewählte
Betriebsmodus des integrierten Schaltkreises 40 wenigstens teilweise
auf Grundlage und/oder als Resultat der Ausführung eines oder mehrerer Programmbefehle, die
im Speicher 39, im Speicher 220 und/oder im Speicher 224 gespeichert
sind, durch die Prozessorschaltung 202 ausgewählt werden.
Das heißt,
gemäß dieser
Ausführungsform
können
jeweils unterschiedliche Betriebsmodi des integrierten Schaltkreises 40 jeweils
unterschiedlichen Firmware-Programmbefehlssatz-Images zugeordnet
sein, die, wenn sie wenigstens teilweise von dem Prozessorkern 216 und dem
Prozessorkern 218 ausgeführt werden, bewirken können, dass
die jeweiligen Betriebsmodi ausgewählt werden, die diesen jeweiligen
Images zugeordnet sind, und auch bewirken können, dass der integrierte
Schaltkreis 40 in den jeweiligen Betriebsmodi arbeitet.
In dieser Ausführungsform
kann nur ein einziges solches Firmware-Programmbefehlssatz-Image
in Speicher 39, Speicher 220 und/oder Speicher 224 gespeichert
sein. Das einzelne Firmware-Programmbefehlssatz-Image kann einen
oder mehrere Firmware-Programmbefehle umfassen, die beispielsweise
nach einem Zurücksetzen
des integrierten Schaltkreises 40 von den Prozessorkernen 216 und 218 ausgeführt werden
können.
Dies kann bewirken, dass der Prozessorkern gemäß dem ausgewählten Betriebsmodus
aktiviert oder deaktiviert wird. Außerdem kann es bewirken, dass
der Prozessorkern 218 gemäß geeigneten Steuersignalen
arbeitet und/oder diese erzeugt und an die Schnittstellenschaltungen 204, 210, 232 und/oder 236 liefert, was
bewirken kann, dass diese Schaltungen gemäß dem ausgewählten Betriebsmodus
arbeiten.
-
Der
Speicher 39, der Speicher 220 und/oder der Speicher 224 können Programmbefehle
umfassen, die bei Ausführung
durch den integrierten Schaltkreis 40 unter anderem bewirken
können,
dass der integrierte Schaltkreis 40 Vorgänge gemäß einer Ausführungsform
durchführt. 4 ist
ein Ablaufdiagramm, das diese und andere Vorgänge 400 zeigt, die
im System 100 ausgeführt
werden können,
gemäß einer
Ausführungsform.
In dieser Ausführungsform
können
die Vorgänge 400 im
System 100 ausgeführt
werden, nachdem ein Betriebsmodus des integrierten Schaltkreises 40 ausgewählt wurde,
wobei ein oder mehrere der Kommunikationsprotokolle, die von einer
oder mehreren der Protokollmaschinen 250A, 250B,
... 250N (z.B. von Protokollmaschine 250A) implementiert
werden, wenigstens teilweise auf Grundlage des Erkennens eines oder
mehrerer solcher Kommunikationsprotokolle, über die eine oder mehrere Einrichtungen
(z.B. eine oder mehrere Einrichtungen 52) im Massenspeicher 28 kommunizieren
können,
ausgewählt
wurden.
-
Die
Vorgänge 400 können damit
beginnen, dass der integrierte Schaltkreis 40 wenigstens
teilweise wenigstens ein Kommunikationsprotokoll erkennt, über das
wenigstens eine Einrichtung außerhalb
des integrierten Schaltkreises 40 (z.B. eine oder mehrere
Einrichtungen 52) zu kommunizieren in der Lage sein können, wie
durch Vorgang 402 in 4 gezeigt.
In dieser Ausführungsform
kann das Erkennen des wenigstens einen Kommunikationsprotokolls wenigstens
teilweise durch den integrierten Schaltkreis 40, über das wenigstens
eine Einrichtung außerhalb
des integrierten Schaltkreises 40 kommunizieren kann, als
Resultat von Vorgang 402, wenigstens teilweise auf einem
Bestimmen dessen, ob die OOB-Verwaltungsschaltung 320 detektiert
hat, dass die AFE-Schaltung 253A während der OOB-Signalfolge die
Signalfolge 54 und/oder die COMSAS-Signalfolge 56 empfangen
hat oder nicht, durch den Prozessorkern 218 beruhen, wie
zuvor beschrieben. Wenn beispielsweise, wie zuvor erwähnt, die
Schaltung 320 detektiert hat, dass die AFE-Schaltung 253A während der
OOB-Signalfolge von einer oder mehreren Einrichtungen 52 die
Signalfolge 54 empfangen hat, aber nicht die COMSAS-Signalfolge 56, kann
der Prozessorkern 218 bestimmen, dass eine oder mehrere
Einrichtungen 52 direkt über eine der Verbindungen 44 an
die AFE-Schaltung 253A gekoppelt sind, und dazu in der
Lage sind, über
ein S-ATA-Protokoll
mit dem integrierten Schaltkreis 40 zu kommunizieren; wenigstens
teilweise als Resultat dieser Bestimmung durch den Prozessorkern 218 kann
der integrierte Schaltkreis als Resultat von Vorgang 402 wenigstens
teilweise erkennen, dass eine oder mehrere Einrichtungen 52 dazu
in der Lage sind, über
ein S-ATA-Protokoll zu kommunizieren. Wenn umgekehrt die Schaltung 320 detektiert
hat, dass die AFE-Schaltung 253A während der OOB-Signalfolge von
einer oder mehreren Einrichtungen 52 die COMSAS-Signalfolge 56 empfangen
hat, aber nicht die Signalfolge 54, kann der Prozessorkern 218 bestimmen,
dass eine oder mehrere Einrichtungen 52 dazu in der Lage
sind, über
ein SAS-Protokoll mit dem integrierten Schaltkreis 40 zu
kommunizieren; wenigstens teilweise als Resultat dieser Bestimmung durch
den Prozessorkern 218 kann der integrierte Schaltkreis
als Resultat von Vorgang 402 wenigstens teilweise erkennen,
dass eine oder mehrere Einrichtungen 52 dazu in der Lage
sind, über
ein SAS-Protokoll zu kommunizieren.
-
Anschließend kann
der integrierte Schaltkreis 40 wenigstens teilweise das
wenigstens eine Kommunikationsprotokoll auswählen, das zum Kommunizieren
mit der wenigstens einen Einrichtung zu benutzen ist, wie durch
Vorgang 404 in 4 gezeigt. Nachdem beispielsweise
in dieser Ausführungsform
als Resultat von Vorgang 402 das wenigstens eine Kommunikationsprotokoll
erkannt wurde, über
das eine oder mehrere Einrichtungen 52 kommunizieren können, kann
der Prozessorkern 218 ein oder mehrere jeweilige Signale
an die Schaltungen 304, 306, 308, 310 und 252A ausgeben.
Wenn als Resultat des Vorgangs 402 der integrierte Schaltkreis 40 erkannt
hat, dass eine oder mehrere Einrichtungen 52 über ein
S-ATA-Protokoll kommunizieren können,
kann dies bewirken, dass die Schaltungen 250A und 252A dazu
aktiviert werden, zu erlauben, dass der integrierte Schaltkreis 40 direkt über eine
der Verbindungen 44 unter Benutzung eines S-ATA-Protokolls
mit einer oder mehreren Einrichtungen 52 kommuniziert.
Wenn der integrierte Schaltkreis 40 umgekehrt als Resultat
des Vorgangs 402 erkannt hat, dass eine oder mehrere Einrichtungen 52 über ein SAS-Protokoll
kommunizieren können,
kann dies bewirken, dass die Schaltungen 250A und 252A dafür aktiviert
werden, zu erlauben, dass der integrierte Schaltkreis 40 unter
Benutzung eines SAS-Protokolls mit einer oder mehreren Einrichtungen 52 kommuniziert.
-
Zusammengefasst
kann eine Systemausführungsform
also eine Schaltkarte mit einem integrierten Schaltkreis umfassen.
Die Schaltkarte kann an einen Bus koppelbar sein. Der integrierte
Schaltkreis kann dazu in der Lage sein, wenigstens teilweise wenigstens
ein Kommunikationsprotokoll zu erkennen, über das wenigstens eine Einrichtung
außerhalb
des integrierten Schaltkreises in der Lage zu kommunizieren ist.
Der integrierte Schaltkreis kann auch dazu in der Lage sein, gemäß mehreren
unterschiedlichen Kommunikationsprotokollen zu kommunizieren. Der integrierte
Schaltkreis kann ferner dazu in der Lage sein, wenigstens teilweise
das wenigstens eine Kommunikationsprotokoll auszuwählen, das
zum Kommunizieren mit der wenigstens einen Einrichtung zu benutzen
ist.
-
Eine
Vorrichtungsausführungsform
kann einen integrierten Schaltkreis aufweisen, der dazu in der Lage
ist, wenigstens teilweise ein Kommunikationsprotokoll zu erkennen, über das
wenigstens eine Einrichtung außerhalb
des integrierten Schaltkreises in der Lage zu kommunizieren ist.
Der integrierte Schaltkreis kann auch dazu in der Lage sein, gemäß mehreren
unterschiedlichen Kommunikationsprotokollen zu kommunizieren. Der
integrierte Schaltkreis kann ferner dazu in der Lage sein, wenigstens
teilweise das wenigstens eine Kommunikationsprotokoll auszuwählen, das
zum Kommunizieren mit der wenigstens einen Einrichtung zu benutzen
ist.
-
Vorteilhafterweise
kann der integrierte Schaltkreis dieser Ausführungsformen verbesserte Kommunikationsfähigkeiten
bieten, und kann unter Benutzung mehrerer Kommunikationsprotokolle kommunizieren.
Außerdem
können
vorteilhafterweise das oder die Kommunikationsprotokolle, die von diesem
integrierten Schaltkreis benutzt werden, wenigstens teilweise auf
Grundlage dessen, dass der integrierte Schaltkreis wenigstens teilweise
das oder die Kommunikationsprotokolle erkennt, über die eine oder mehrere externe
Einrichtungen in der Lage zu kommunizieren sind, wenigstens teilweise
von dem integrierten Schaltkreis ausgewählt werden. Ferner kann dies
vorteilhafterweise einem einzelnen integrierten Schaltkreis gemäß dieser
Ausführungsformen
erlauben, direkt unter Benutzung mehrerer unterschiedlicher Kommunikationsprotokolle
mit einem Datenspeichersystem zu kommunizieren. So kann es beispielsweise
möglich
sein, den integrierten Schaltkreis dieser Ausführungsformen zu benutzen, um
direkt über
eine oder mehrere Kommunikationsverbindungen mit einer oder mehreren
Einrichtungen in SAS- und/oder
S-ATA-Protokolldomänen
im Datenspeichersystem zu kommunizieren, ohne einen oder mehrerer
externe Kommunikationsprotokoll-Konverter, Übersetzer und/oder Expander
(wie z.B. einen oder mehrere SAS-Expander) zu benutzen, die zwischen
den integrierten Schaltkreis und das Datenspei chersystem gekoppelt
sind, obwohl solche Protokoll-Konverter, Übersetzer und/oder Expander
benutzt werden können,
ohne von diesen Ausführungsformen
abzuweichen. Vorteilhafterweise können diese Merkmale dem integrierten
Schaltkreis dieser Ausführungsformen
erlauben, im Vergleich zum Stand der Technik eine erhöhte Vielseitigkeit
und Nützlichkeit
aufzuweisen, und können
die Auslegungskosten beim Verwenden dieses integrierten Schaltkreises
gegenüber
dem Stand der Technik senken.
-
Ebenfalls
können
vorteilhafterweise zwecks Berücksichtigung
wenigstens einer der Funktionen von einer oder mehreren Ausführungsformen
die Schaltung 302 und die Schaltungen im integrierten Schaltkreis 40,
die außerhalb
der Schaltung 250A angeordnet sind, im konzeptuellen, verhaltensbezogenen
und/oder funktionalen Sinne wenigstens teilweise zusammen betrachtet
werden, indem sie wenigstens teilweise ein einzelnes Steuerelement
umfassen, um zu steuern, welches Kommunikationsprotokoll von dem
integrierten Schaltkreis 40 zu benutzen ist, um mit der
wenigstens einen Einrichtung zu kommunizieren. So kann vorteilhafterweise
in wenigstens dieser einen oder diesen Ausführungsformen dieses Steuerelement
beispielsweise einzeln oder in jeder beliebigen Kombination festverdrahtete Schaltungen,
programmierbare Schaltungen, Zustandsautomatenschaltungen, und/oder
Firmware umfassen, welche Befehle speichert, die von den programmierbaren
Schaltungen ausgeführt
werden.
-
Die
hier verwendeten Begriffe und Ausdrücke wurden als beschreibende
und nicht einschränkende
Begriffe benutzt, und es ist nicht vorgesehen, durch die Benutzung
dieser Begriffe und Ausdrücke etwaige Äquivalente
der gezeigten und beschriebenen Merkmale (oder Teile derselben)
auszuschließen,
und man wird erkennen, dass innerhalb des Umfangs der Ansprüche verschiedene
Modifikationen möglich
sind. Ohne also von dieser Ausführungsform
abzuweichen, kann das System 100 mehr oder weniger Elemente
aufweisen, als in den Figuren gezeigt wurden und als zuvor im System 100 enthalten beschrieben
wurden. Alternativ kann die Schaltung 204 außerdem eine
Protokollmaschinenschaltung umfassen, die den integrierten Schaltkreis
in die Lage versetzen kann, mit dem Massenspeicher 28 unter
Benutzung eines Fibre-Channel-Protokolls zu kommunizieren, das mit
der Schnittstelle/dem Protokoll übereinstimmt
oder kompatibel ist, die/das in der Spezifikation ANSI Standard
Fibre Channel (FC) Physical and Signaling Interface-3 X3.303:1998
beschrieben ist. Andere Modifikationen, Variationen und Alternativen
sind ebenfalls möglich.
Entsprechend ist vorgesehen, dass die Ansprüche alle diese Äquivalente
abdecken.