-
ALLGEMEINER STAND DER TECHNIK
-
1. FACHGEBIET
-
Die
vorliegenden Ausführungsformen
betreffen ein Verfahren, ein System und ein Programm zum Unterstützen mehrerer
Schnittstellen in einem Speichergehäuse.
-
2. BESCHREIBUNG DES STANDES
DER TECHNIK
-
US 6,351,375 (Hsieh et al.)
offenbart ein Verfahren und eine Vorrichtung zum Unterbringen zweier
Arten von Festplatten, innerhalb eines Speichergehäuses, unter
Verwendung einer einzigen Zweizweck-Rückwandverdrahtungsplatte.
Diese Rückwandverdrahtungsplatte
weist mehrere Laufwerks-Einbauplätze auf,
von denen jeder einen ersten Verbinder und einen zweiten Verbinder
aufweist, wobei die Verbinder zum Ankoppeln an unterschiedliche
Festplattentypen verwendet werden. In einem externen Speichersystem
sind Festplatten seitwärts eingefügt, und
ein Verbindertyp ist an der Rückwandverdrahtungsplatte
befestigt, in einer Ausrichtung, gedreht um 180 Grad von dem anderen
Verbindertyp.
-
Ein
Adapter oder Mehrkanalprotokoll-Controller ermöglicht einem Gerät, welches
an den Adapter gekoppelt ist, mit einem oder mehreren verbundenen
Endgeräten
zu kommunizieren, entsprechend einer Speicherverbindungsarchitektur,
auch bekannt als eine Hardwareschnittstelle, wobei eine Speicherverbindungsarchitektur
eine Standard-Art-und-Weise definiert, zu kommunizieren und derartige
Kommunikationen zu erkennen, wie etwa Serial Attached Small Computer
System Interface (SCSI) (SAS), Serial Advanced Technology Attachment
(SATA), Fibre Channel usw. Diese Speicherverbindungsarchitekturen
erlauben einem Gerät,
eine oder mehrere Verbindungen zu einem weiteren Endgerät zu erhalten, über eine
Punkt-zu-Punkt-Verbindung, eine Arbitrated Loop von Geräten, einen
Expander, welcher eine Verbindung zu weiteren Endgeräten vorsieht,
oder ein Fabric, welches verbundene Switches umfasst, welche Verbindungen
zu mehreren Endgeräten
vorsehen. In der SAS/SATA-Architektur umfasst ein SAS-Port einen
oder mehrere SAS-PHYs, wobei jeder SAS-PHY an eine physikalische
Schicht ankoppelt, d. h. die physikalische Schnittstelle oder Verbindung,
und eine SAS-Linkschicht, welche mehrere Protokoll-Linkschichten
aufweist. Kommunikationen von den SAS-PHYs in einem Port werden
durch die Transportschichten für
diesen Port verarbeitet. Es gibt eine Transportschicht für jeden
SAS-Port, um an jede Art von Anwendungsschicht anzukoppeln, welche
von dem Port unterstützt
wird. Ein „PHY", wie in dem SAS-Protokoll
definiert, ist ein Geräteobjekt, welches
verwendet wird, um an andere Geräte
und eine physikalische Schnittstelle anzukoppeln. Weitere Details
zur SAS-Architektur für
Geräte
und Expander sind beschrieben in der Technologiespezifikation "Information Technology – Serial
Attached SCSI (SAS)",
Referenz-Nr. ISO/IEC 14776-150:200x und ANSI INCITS.***:200x PHY
layer (9. Juli 2003), veröffentlicht
durch ANSI; Details zur Fibre-Channel-Architektur sind beschrieben
in der Technologiespezifikation "Fibre
Channel Framing and Signaling Interface", Dokument-Nr. ISO/IEC AWI 14165-25;
Details zur SATA-Architektur sind beschrieben in der Technologiespezifikation "Serial ATA: High
Speed Serialized AT Attachment" Rev.
1.0A (Jan. 2003).
-
Innerhalb
eines Adapters führt
die PHY-Schicht die Seriell-Parallel-Umsetzung von Daten durch,
sodass parallele Daten zu den Schichten oberhalb der PHY-Schicht übertragen
werden, und serielle Daten von der PHY-Schicht durch die physikalische
Schnittstelle zu der PHY-Schicht eines empfangenden Geräts übertragen
werden. In der SAS-Spezifikation
gibt es einen Satz von Linkschichten für jede SAS-PHY-Schicht, sodass
effektiv jede Linkschicht-Protokollmaschine
mit einem Parallel-Seriell-Umsetzer in der PHY-Schicht gekoppelt
ist. Ein Verbindungspfad verbindet zu einem Port, welcher mit jeder
PHY-Schicht in dem Adapter gekoppelt ist, und schließt in einer
physikalischen Schnittstelle ab, innerhalb eines weiteren Geräts oder
eines Expandergeräts,
wobei der Verbindungspfad ein Kabel oder geätzte Pfade auf einer gedruckten
Leiterplatte umfassen kann.
-
Ein
Expander ist ein Gerät,
welches Kommunikation erleichtert und Routing vorsieht, zwischen mehreren
SAS-Geräten, wobei
mehrere SAS-Geräte und
zusätzliche
Expander zu den Ports auf dem Expander verbinden, wobei jeder Port
einen oder mehrere SAS-PHYs aufweist, sowie entsprechende physikalische
Schnittstellen. Der Expander erweitert auch die Entfernung der Verbindung
zwischen SAS-Geräten.
Der Expander kann Information routen, von einem Gerät, welches
zu einem SAS-PHY auf dem Expander verbindet, zu einem weiteren SAS-Gerät, welches
zu den Expander-PHYs verbindet. Bei SAS erfordert das Verwenden
des Expanders zusätzliche
Seriell-Parallel-Umsetzungen in den PHY-Schichten der Expander-Ports.
Bei Empfangen eines Rahmens setzt ein Seriell-Parallel-Umsetzer, welcher
ein Teil des PHYs sein kann, die empfangenen Daten seriell-parallel
um, um intern zu einem Ausgangs-SAS-PHY zu routen, welcher den Rahmen
parallel-seriell zu dem Targetgerät umsetzt. Der SAS-PHY kann
parallele Daten in serielle Daten umsetzen, durch einen oder mehrere
Encoder, und serielle Daten in parallele Daten, durch einen Parallel Data
Builder oder einen oder mehrere Decoder. Eine Phasenregelschleife
(PLL) kann verwendet werden, um eingehenden seriellen Daten zu folgen
und in die Frequenz und Phase des Signals einzurasten. Dieses Tracking
des Signals kann Rauschen und Fehler in das Signal bringen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Mit
Bezug auf die Zeichnungen, in welchen gleiche Bezugszeichen entsprechende
Teile an allen Stellen darstellen, zeigen:
-
1 und 2 ein
System und einen Adapter, gemäß Ausführungsformen;
-
3, 4 und 5 Operationen,
implementiert in dem Adapter in 1 und 2;
-
6 eine
perspektivische Ansicht eines Speichergehäuses, gemäß Ausführungsformen;
-
7 eine
Speichergehäuse-Rückwandverdrahtungsplatte
und einen angeschlossenen Speicherserver, gemäß Ausführungsformen;
-
8 einen
Expander-PHY, gemäß Ausführungsformen;
-
9 eine
Vorderansicht eines Racks, welches Speichergehäuse und Server, gemäß Ausführungsformen,
aufweist;
-
10 einen
Adapter, der mit dem Speicherserver in 7 verwendet
werden kann, gemäß Ausführungsformen;
und
-
11 Systemkomponenten,
welche mit den beschriebenen Ausführungsformen verwendet werden
können.
-
AUSFÜHRLICHE BESCHREIBUNG
-
In
der folgenden Beschreibung ist Bezug genommen auf die begleitenden
Zeichnungen, welche einen Teil dieser Schrift ausmachen, und welche
einige Ausführungsformen
illustrieren. Es versteht sich, dass andere Ausführungsformen benutzt und strukturelle
und operationale Änderungen
vorgenommen werden können.
-
Unterstützen mehrerer Speicherverbindungsarchitekturen
in einem Adapter
-
1 illustriert
eine Rechenumgebung, in welcher Ausführungsformen implementiert
sein können.
Ein Hostsystem 2 weist eine oder mehrere Zentraleinheiten
(CPU) 4 auf (nur eine ist gezeigt), einen flüchtigen
Speicher 6, einen nichtflüchtigen Speicher 8,
ein Betriebssystem 10, einen oder mehrere Adapter 12a, 12b,
welcher physikalische Schnittstellen hält, um mit anderen Endgeräten direkt
zu verbinden, in einer Punkt-zu-Punkt-Verbindung, oder indirekt, durch
einen oder mehrere Expander, einen oder mehrere Switches in einem
Fabric oder ein oder mehrere Geräte
in einem Arbitrated Loop. Ein Anwendungsprogramm 16 wird
ferner in einem Speicher 6 ausgeführt und ist in der Lage, Information
zu dem Targetgerät
zu übertragen
und von demselben zu empfangen, durch eine der physikalischen Schnittstellen
in den Adaptern 12a, 12b. Der Host 2 kann
jegliches Rechengerät
umfassen, welches im Fach bekannt ist, wie etwa einen Großrechner,
einen Server, einen Personal Computer, eine Arbeitsstation, einen
Laptop, einen Taschencomputer, ein Telephoniegerät, eine Netzwerkvorrichtung,
ein Virtualisierungsgerät,
einen Speichercontroller usw. Verschiedene CPUs 4 und Betriebssysteme 10,
welche im Fach bekannt sind, können
verwendet werden. Programme und Daten im Speicher 6 können in
den Speicher 8 ausgelagert werden, als ein Teil der Speicherverwaltungsoperationen.
-
Das
Betriebssystem 10 kann für jedes Protokoll, welches
in dem Adapter 12a, 12b unterstützt wird,
einen Gerätetreiber 20a, 20b, 20c laden,
um Kommunikation mit einem Gerät
zu ermöglichen, welches
unter Verwendung des unterstützten
Protokolls kommuniziert, und auch einen Bustreiber 24 laden,
wie etwa eine Peripheral-Component-Interconnect-(PCI-)Schnittstelle, um
Kommunikation mit einem Bus 26 zu ermöglichen. Weitere Details der PCI-Schnittstelle sind
beschrieben in der Veröffentlichung "PCI Local Bus, Rev.
2.3", veröffentlicht
durch die PCI-SIG. Das Betriebssystem 10 kann Gerätetreiber 20a, 20b, 20c laden,
welche durch die Adapter 12a, 12b unterstützt sind,
bei Erkennen des Vorhandenseins der Adapter 12a, 12b,
was während
der Initialisierung oder dynamisch geschehen kann, wie das der Fall
ist bei Plug-and-Play-Geräteinitialisierung.
In der Ausführungsform
in 1 lädt
das Betriebssystem 10 drei Protokollgerätetreiber 20a, 20b, 20c.
Zum Beispiel können
die Gerätetreiber 20a, 20b, 20c die
SAS-, SATA- und Fibre-Channel-Punkt-zu-Punkt-Speicherschnittstellen unterstützen, d.
h. die Verbindungsarchitekturen. Zusätzliche oder weniger Gerätetreiber
können
geladen werden, auf Basis der Anzahl an Gerätetreibern, welche der Adapter 12 unterstützt.
-
2 illustriert
eine Ausführungsform
des Adapters 12, welcher die Adapter 12a, 12b umfassen kann.
Jeder Adapter weist mehrere physikalische Schnittstellen 30a, 30b ... 30n auf,
welche Sender- und Empfängerschaltungen
aufweisen können,
sowie andere Verbindungshardware. Die physikalische Schnittstelle
kann zu einem anderen Gerät über Kabel
oder einen Pfad verbinden, welcher auf eine gedruckte Leiterplatte
geätzt
ist, sodass Geräte
auf der gedruckten Leiterplatte über
geätzte
Pfade kommunizieren. Die physikalischen Schnittstellen 30a, 30b ... 30n können unterschiedliche
physikalische Schnittstellen für
unterschiedliche Geräteverbindungen
vorsehen, wie etwa eine physikalische Schnittstelle 30a, 30b ... 30n,
zum Verbinden mit einem SAS/SATA-Gerät und eine weitere Schnittstelle
für ein
Fibre-Channel-Gerät.
Jede physikalische Schnittstelle 30a, 30b ... 30n kann
mit einer PHY-Schicht 32a, 32b ... 32n innerhalb
des Expanders 34 gekoppelt sein. Die PHY-Schicht 32a, 32b ... 32n sieht
ein Codierschema vor, wie etwa 8b10b, zum Übersetzen von Bits, und einen
Taktmechanismus, wie etwa eine Phasenregelschleife (PLL). Die PHY-Schicht 32a, 32b ... 32n würde einen
Seriell-Parallel-Umsetzer enthalten, zum Durchführen der Seriell-Parallel-Umsetzung,
sowie die PLL, um den eingehenden Daten zu folgen und den Datentakt
der eingehenden Daten für
den Seriell-Parallel-Umsetzer
vorzusehen, zu verwenden bei Durchführen der Umsetzung. Daten werden
an dem Adapter 12 in einem seriellen Format empfangen und an
der SAS-PHY-Schicht 32a, 32b ... 32n in
das parallele Format zur Übertragung
innerhalb des Adapters 12 umgesetzt. Die SAS-PHY-Schicht 32a, 32b ... 32n sieht
ferner Fehlererkennung vor, Bitverschiebung und Amplitudenreduktion,
sowie die Out-of-Band-(OOB-)Signalisierung,
um einen operationalen Link mit einem anderen SAS-PHY in einem anderen
Gerät herzustellen.
Die Benennung Schnittstelle kann sich auf die physikalische Schnittstelle
beziehen oder auf die Schnittstelle, welche Operationen an den empfangenen
Daten durchführt,
implementiert als Schaltungen, oder auf beide.
-
Die
PHY-Schicht 32a, 32b ... 32n führt ferner das
Aushandeln der Geschwindigkeit mit dem PHY durch, in dem externen
Gerät,
welches Daten zu dem Adapter 12 überträgt.
-
In
gewissen Ausführungsformen
kann die PHY-Schicht 32a, 32b ... 32n programmiert
sein, das Aushandeln der Geschwindigkeit und Erkennen unterschiedlicher
Protokolle zu erlauben, welche bei denselben oder unterschiedlichen Übertragungsgeschwindigkeiten übertragen.
Zum Beispiel können SATA-
und SAS-Übertragungen
erkannt werden, weil sie bei Geschwindigkeiten von 1,5 Gigahertz
(GHz) und 3 GHz übertragen
werden, und Fibre-Channel-Übertragungen
können
erkannt werden, weil sie bei 1,0625 GHz, 2,125 GHz und 4,25 GHz übertragen
werden. Da Link-Übertragungsgeschwindigkeiten
für gewisse
Speicherschnittstellen unterschiedlich sein können, kann die PHY-Schicht 32a, 32b ... 32n Speicherschnittstellen, welche
unterschiedliche Linkgeschwindigkeiten aufweisen, durch Halten von Information über Geschwindigkeiten
unterschiedlicher Speicherschnittstellen erkennen. Allerdings können gewisse
Speicherschnittstellen, wie etwa SAS und SATA, bei denselben Linkgeschwindigkeiten übertragen
und gemeinsame Transportprotokolle unterstützen. Wenn Speicherschnittstellen
bei einer gleichen Linkgeschwindigkeit übertragen, dann kann die PHY-Schicht 32a, 32b ... 32n zwischen
Speicherschnittstellen, welche in der Lage sind, mit derselben Linkgeschwindigkeit
zu übertragen,
durch Prüfen
des Übertragungsformats
unterscheiden, um die Speicherschnittstelle und das Protokoll zu
bestimmen, wobei das Linkprotokoll die Eigenschaften der Übertragung
definiert, welche Geschwindigkeit und Datenübertragungsformat enthalten.
-
Zum
Beispiel können
das SAS- und SATA-Protokoll nicht nur durch ihre Übertragungsgeschwindigkeiten
unterschieden werden, sondern auch durch ihre Verwendung des OOB-Signals.
Andere Protokolle, wie etwa Fibre Channel, verwenden das OOB-Signal
nicht. Fibre Channel, SAS und SATA weisen alle ein Vier-Byte-Primitive
auf. Das Primitive von SATA kann unterschieden werden, weil das
erste Byte des SATA-Primitives "K28.3" angibt, während das
erste Byte des SAS- und Fibre-Channel-Primitives "K28.5" angibt. Die SAS- und Fibre-Channel-Primitives
können
auf Basis des Inhalts der nächsten drei
Bytes ihrer Primitives unterschieden werden, welche sich unterscheiden.
So kann der Inhalt der Primitives verwendet werden, um zwischen
den SAS-, SATA- und
Fibre-Channel-Protokollen zu unterscheiden. Zusätzlich weisen unterschiedliche
der Protokolle, wie etwa SAS und Fibre Channel, unterschiedliche
Handshakeprotokolle auf. So können
die Handshakeprotokolle, welche von dem Gerät verwendet werden, welches
die Information überträgt, verwendet
werden, um die Speicherverbindungsschnittstelle zu unterscheiden,
welche verwendet wird.
-
Die
PHY-Schicht 32a, 32b ... 32n leitet den Rahmen
zu der Linkschicht 36 in dem Expander 34 weiter.
Die Linkschicht 36 kann einen Satz von Elementen für jedes
Protokoll halten, welches von einem Port unterstützt wird, wie etwa eine Serial-SCSI-Protocol-(SSP-)Linkschicht 38a,
zum Verarbeiten von SSP-Rahmen, eine Serial-Tunneling-Protocol-(STP-)Schicht 38b,
eine Serial-Management-Protocol-(SMP-)Schicht 38c und
eine Fibre-Channel-Linkschicht 38d,
zum Unterstützen
des Fibre-Channel-Protokolls
zum Transportieren der Rahmen. Innerhalb des Expanders 34 wird
Information von einem PHY zum anderen geroutet. Die übertragene
Information kann Primitives, Pakete, Rahmen usw. enthalten und kann
zum Herstellen der Verbindung und Öffnen des Adressrahmens verwendet werden.
Ein Router 40 routet Übertragungen
zwischen den Protokollmaschinen 42a, 42b und den PHY-Schichten 32a, 32b ... 32n.
Der Router 40 hält eine
Routertabelle 41, welche eine Zuordnung von PHY-Schichten 32a, 32b ... 32n zu
Protokollmaschinen 42a, 42b vorsieht, derart,
dass eine Übertragung von
einer PHY-Schicht oder einer Protokollmaschine jeweils zu der entsprechenden
Protokollmaschine oder PHY-Schicht geroutet wird, welche in der
Routertabelle 41 angegeben ist. Wenn die Protokollmaschinen 42a, 42b das
Transportprotokoll unterstützen,
z. B. SSP, STP, SMP, Fibre Channel Protocol usw., welches der Linkschicht 38a, 38b, 38c, 38d zugeordnet
ist, welche die Übertragung
weiterleitet, dann kann der Router 40 jegliche im Fach
bekannte Technik verwenden, um unter den mehreren Protokollmaschinen 42a, 42b auszuwählen, um
die Übertragung
zu verarbeiten, wie etwa Round-Robin, Lastausgleich auf Basis der
Ausnutzung der Protokollmaschinen 42a, 42b usw.
Das Fibre-Channel-Protokoll umfasst
die Transportschicht zum Handhaben von Information, welche auf einer
Fibre-Channel-Speicherschnittstelle übertragen
wird. Daten können
in Rahmen, Paketen, Primitives oder in jeglichem anderen im Fach
bekannten Datenübertragungsformat kommuniziert
werden.
-
Eine
Transportschicht umfasst jegliche Schaltungen, welche Software oder
Hardware enthalten, welche verwendet wird, um eine virtuelle, fehlerfreie
Punkt-zu-Punkt-Verbindung vorzusehen, um die Übertragung von Information
zwischen Geräten zu
erlauben, sodass übertragene
Information unversehrt und in der korrekten Reihenfolge ankommt.
Die Transportschicht stellt ferner Verbindungen zwischen Geräten her,
z. B. öffnet
und löst
dieselben.
-
Ein
Transportprotokoll sieht einen Satz von Regeln und Handshakeverfahren
vor, welche zum Implementieren einer Transportschicht verwendet werden,
häufig
definiert durch einen Industriestandard, wie etwa SAS, SATA, Fibre
Channel, usw. Die Transportschicht und das Transportprotokoll können jene
Transportprotokolle umfassen, welche in dieser Schrift beschrieben
sind, und andere, welche im Fach bekannt sind. Die Protokollmaschine 42a, 42b umfasst
die Hardware und/oder Software, welche unterschiedliche Transportprotokolle
implementiert, um Transportschichtfunktionalität für unterschiedliche Protokolle
vorzusehen.
-
Jede
Protokollmaschine 42a, 42b ist in der Lage, protokollbezogene
Operationen für
alle Protokolle, welche von dem Adapter 12 unterstützt werden,
durchzuführen.
Alternativ können
unterschiedliche Protokollmaschinen unterschiedliche Protokolle unterstützen. Zum
Beispiel kann Protokollmaschine 42b dieselben Transportschichten
unterstützen
wie Protokollmaschine 42a oder einen unterschiedlichen Satz
von Transportschichten. Jede Protokollmaschine 42a, 42b implementiert
eine Portschicht 44 und eine Transportschicht, wie etwa
eine SSP-Transportschicht 46a,
eine STP-Transportschicht 46b, eine SMP-Transportschicht 46c und
eine Fibre-Channel-Protocol-Transportschicht 46d.
Ferner können die
Protokollmaschinen 30a, 30b die transport- und netzwerkschichtbezogenen
Operationen für
die unterstützten
Protokolle unterstützen.
-
Die
Portschicht 44 koppelt zwischen den Linkschichten 38a, 38b, 38c, 38d, über den
Router 40, und den Transportschichten 46a, 46b, 46c, 46d an,
um Information zu der korrekten Transportschicht oder Linkschicht
zu übertragen.
Die PHYs 32a, 32b ... 32n und die entsprechenden
physikalischen Schnittstellen 30a, 30b ... 30n können in
einen oder mehrere Ports organisiert sein, wobei jeder SAS-Port eine
eindeutige SAS-Adresse aufweist. Der Port umfasst eine Komponente
oder Konstruktion, welcher Schnittstellen zugeteilt sind. Eine Adresse
umfasst jegliche Kennung, welche verwendet wird, um ein Gerät oder eine
Komponente zu identifizieren. Die Protokollmaschinen 42a, 42b können ferner
eine oder mehrere virtuelle PHY-Schichten
enthalten, um Kommunikation mit virtuellen PHY-Schichten in dem Router 40 zu
ermöglichen.
Ein virtueller PHY ist ein interner PHY, welcher mit einem weiteren
PHY innerhalb des Geräts
verbindet, und nicht mit einem externen PHY. Daten, welche zu dem
virtuellen PHY übertragen
werden, brauchen typischerweise keine Seriell-Parallel-Umsetzung zu durchlaufen.
-
Jede
Protokollmaschine 42a, 42b enthält ein Beispiel
der Protokolltransportschichten 46a, 46b, 46c, 46d,
wobei es eine Transportschicht zum Ankoppeln an jede Art von Anwendungsschicht 48a, 48b, 48c in
der Anwendungsschicht 50 gibt. Die Anwendungsschicht 50 kann
in dem Adapter 12 oder dem Hostsystem 2 unterstützt werden
und Netzwerkdienste für
die Endnutzer vorsehen. Zum Beispiel koppeln die SSP-Transportschicht 46a und
die Fibre-Channel-Protocol-(FCP-)Transportschicht 46b an eine
SCSI-Anwendungsschicht 48a an,
die STP-Transportschicht 46c koppelt an eine Advanced-Technology-Attachment-(ATA-)Anwendungsschicht 48b an,
und die SMP-Transportschicht 46d koppelt
an eine Verwaltungsanwendungsschicht 48c an. Weitere Details
der ATA-Technologie sind beschrieben in der Veröffentlichung "Information Technology – AT Attachment
with Packet Interface-6(ATA/ATAPI-6)", Referenz-Nr. ANSI INCITS 361-2002 (September 2002).
-
Alle
PHY-Schichten 32a, 32b ... 32n können dieselbe
Linkschicht und dieselben Protokoll-Linkschichten teilen, oder es
kann ein eigenes Beispiel jeder Linkschicht und jedes Linkschichtprotokolls 38a, 38b, 38c, 38d für jeden
PHY geben. Ferner kann jede Protokollmaschine 42a, 42b eine
Portschicht 44 für
alle Ports enthalten, welche die PHY-Schichten 32a, 32b ... 32n enthalten,
oder sie kann ein eigenes Beispiel der Portschicht 44 für jeden
Port, in welchem eine oder mehrere PHY-Schichten und die entsprechenden
physikalischen Schnittstellen organisiert sind, enthalten. Weitere
Details zu den Operationen der physikalischen Schicht, PHY-Schicht,
Linkschicht, Portschicht, Transportschicht und Anwendungsschicht
und zu Komponenten, welche derartige Schichten implementieren, wie
in dieser Schrift beschrieben, finden sich in der Technologiespezifikation "Information Technology – Serial
Attached SCSI (SAS)",
auf welche oben Bezug genommen wurde.
-
Der
Router 40 erlaubt, dass die Protokollmaschinen 42a, 42b zu
jeder der PHY-Schichten 32a, 32b ... 32n kommunizieren.
Die Protokollmaschinen 42a, 42b kommunizieren
parallele Daten zu den PHY-Schichten 32a, 32b ... 32n ,
welche Parallel-Seriell-Umsetzer zum Umsetzen der parallelen Daten
in serielle Daten enthalten, zur Übertragung durch die entsprechende
physikalische Schnittstelle 30a, 30b ... 30n.
Die Daten können
zu einem PHY auf dem Targetgerät
kommuniziert werden oder einem dazwischenliegenden externen Expander.
Ein Targetgerät ist
ein Gerät,
zu welchem Information von einer Quelle oder einem Initiatorgerät übertragen
wird, welche(s) versucht, mit dem Targetgerät zu kommunizieren.
-
Bei
den beschriebenen Ausführungsformen von 1 und 2 kann
eine Protokollmaschine 42a, 42b, welche die Port-
und Transportschichten aufweist, Übertragungen zu mehreren PHY-Schichten 32a, 32b ... 32n verwalten.
Die Transportschichten 46a, 46b, 46c, 46d der
Protokollmaschinen 42a, 42b können jedes Mal nur eine offene
Verbindung belegen. Wenn allerdings Verzögerungen von dem Target auf
einer offenen Verbindung festgestellt werden, kann die Protokollmaschine 42a, 42b die
Verbindung trennen und eine andere Verbindung herstellen, um I/O-Anforderungen von
dieser anderen Verbindung aus zu verarbeiten, um Latenzverzögerungen für jene Targetgeräte zu vermeiden,
welche versuchen, eine Verbindung herzustellen. Diese Ausführungsform
sieht größere Ausnutzung
der Protokollmaschinenbandbreite vor, durch Erlauben, dass jede Protokollmaschine
zwischen mehreren Targetgeräten
multiplext und zwischen Verbindungen schaltet. Die Protokollmaschinen 42a, 42b und
die physikalische Schnittstelle weisen eine größere Bandbreite auf als das
Targetgerät,
sodass der Durchsatz des Targetgeräts niedriger ist als der Durchsatz
der Protokollmaschine 42a, 42b. In gewissen Ausführungsformen
können
die Protokollmaschinen 42a, 42b zwischen unterschiedlichen
PHYs 32a, 32b ... 32n multiplexen, um
mehrere Targets zu verwalten.
-
Einer
Protokollmaschine zu erlauben, mehrere Targets zu handhaben, reduziert
ferner die Anzahl an Protokollmaschinen, welche in dem Adapter implementiert
sein müssen,
um alle Targets zu unterstützen.
-
3 illustriert
Operationen, welche durch die PHY-Schichten 32a, 32b ... 32n und
die Linkschicht 36 ausgeführt werden, um eine Verbindung mit
einem Initiatorgerät
zu öffnen,
wobei das Initiatorgerät
unter Verwendung von SAS, Fibre Channel oder einer anderen Speicherschnittstelle
(Speicherverbindungsarchitektur) übertragen kann. Die Operation
zum Herstellen der Verbindung kann geschehen, nachdem die Geräte während Identifizierung
und Linkinitialisierung festgestellt werden. Als Antwort auf eine
Reset- oder Power-on-Folge kann die PHY-Schicht 32a, 32b (in
Block 100) Linkinitialisierung durch Empfangen von Linkinitialisierungsinformation,
wie etwa Primitives, beginnen, von einem Initiatorgerät aus, an
einer physikalischen Schnittstelle 30a, 30b ... 30n (2).
Die PHY-Schicht 32a, 32b ... 32n, welche
mit der empfangenden physikalischen Schnittstelle 30a, 30b ... 30n gekoppelt
ist, führt
(in Block 102) ein Geschwindigkeitsaushandeln durch, um
sicher zu stellen, dass der Link bei der höchsten Frequenz arbeitet. In
gewissen Ausführungsformen weist
die PHY-Schicht 32a, 32b ... 32n die
Fähigkeit auf,
Geschwindigkeiten für
unterschiedliche Speicherschnittstellen zu erkennen und auszuhandeln, wobei
die unterschiedlichen Speicherschnittstellen unterschiedliche Übertragungscharakteristika
aufweisen, wie etwa unterschiedliche Übertragungsgeschwindigkeiten
und/oder Übertragungsinformation, wie
das bei SAS/SATA- und Fibre-Channel-Speicherschnittstellen der Fall
ist. Die PHY-Schicht 32a, 32b ... 32n bestimmt
dann (in Block 104) die Speicherschnittstelle, welche für die Übertragung
verwendet wird, um die Verbindung herzustellen, was aus der Übertragungsgeschwindigkeit
bestimmt werden kann, wenn eine eindeutige Übertragungsgeschwindigkeit
einer Speicherschnittstelle zugeordnet ist, oder aus Eigenschaften
der Übertragung,
wie etwa Information im Header der Übertragung, Format der Übertragung
usw. Die PHY-Schicht 32a, 32b leitet (in Block 106)
die Information zu der Linkschicht 36 weiter, welche angibt,
welche erkannte Speicherschnittstelle zu verwenden ist (SAS/SATA
oder Fibre Channel).
-
Wenn
(in Block 108) die bestimmte Speicherschnittstelle dem
SATA-Protokoll entspricht, dann wird die Verbindung hergestellt
(in Block 110), und keine weitere Aktion ist nötig. Wenn
(in Block 108) die Verbindung das SAS-Protokoll benutzt,
dann verarbeitet die Linkschicht 36 (in Block 112)
einen OPEN-Rahmen, um das zu verwendende SAS-Transportprotokoll
(z. B. SSP, STP, SMP, Fibre Channel Protocol) zu bestimmen. Der
OPEN-Rahmen wird dann weitergeleitet (in Block 114) zu
der bestimmten SAS-Protokoll-Linkschicht 38a, 38b, 38c, 38d (SSP,
STP, SMP, Fibre Channel Protocol), zum Verarbeiten. Die Protokoll-Linkschicht 38a, 38b, 38c, 38d stellt
danach (in Block 116) eine offene Verbindung für alle nachfolgenden
Rahmen her, welche als Teil dieser geöffneten Verbindung übertragen
werden. Die Verbindung muss unter Verwendung des OPEN-Rahmens zwischen
einem Initiator und einem Targetport geöffnet werden, bevor Kommunikation beginnen
kann. Eine Verbindung wird zwischen einem SAS-Initiator-PHY in dem
SAS-Initiatorport und einem SAS-Target-PHY in dem SAS-Targetport hergestellt.
Wenn (in Block 108 und 118) die Speicherschnittstelle
einem Punkt-zu-Punkt-Fibre-Channel-Protokoll entspricht, dann wird die
Verbindung hergestellt (in Block 120). Wenn, andernfalls,
(in Block 108 und 118) die Speicherschnittstelle
mit dem Fibre-Channel-Arbitrated-Loop-Protokoll übereinstimmt,
dann stellt die Fibre-Channel-Linkschicht 38d (in
Block 122) die offene Verbindung für alle nachfolgenden Rahmen
her, welche als Teil der Verbindung übertragen werden. Die Fibre-Channel-Linkschicht 38d kann
die Verbindung unter Verwendung von Fibre-Channel-OPEN-Primitives
herstellen. Weitere Details des Fibre-Channel-Arbitrated-Loop-Protokolls sind
beschrieben in der Veröffentlichung "Information Technology – Fibre
Channel Arbitrated Loop (FC-AL-2)", mit Dokument-Nr. ANSI INCITS 332-1999.
-
Bei
den beschriebenen Implementierungen ist die PHY-Schicht 32a, 32b ... 32n in
der Lage, die Speicherschnittstelle für unterschiedliche Speicherschnittstellen,
die bei unterschiedlichen Übertragungs-Linkgeschwindigkeiten übertragen
und/oder unterschiedliche Übertragungseigenschaften
aufweisen, zu bestimmen. Diese bestimmte Speicherschnittstellen-Information wird
dann zu der Linkschicht 36 weitergeleitet, zu verwenden,
um zu bestimmen, welches Linkschichtprotokoll und Transportprotokoll
zu verwenden ist, um die Verbindung herzustellen, wie etwa ein SAS-Linkschichtprotokoll, z.
B. 38a, 38b, 38c oder das Fibre-Channel-Linkschichtprotokoll 38d,
wobei die unterschiedlichen Protokolle, die verwendet werden können, ein
unterschiedliches Verarbeiten erfordern, um sie zu handhaben.
-
4 illustriert
Operationen, welche durch den Router 40 durchgeführt werden,
um eine Protokollmaschine 42a, 42b auszuwählen, um
den empfangenen Rahmen zu verarbeiten. Bei Empfangen (in Block 150)
einer Übertragung
von der Protokoll-Linkschicht 38a, 38b, 38c, 38d,
wie etwa eines Rahmens, eines Pakets, eines Primitives etc., leitet,
um eine Verbindung herzustellen, dann, wenn (in Block 152) eine
Routertabelle 41 eine Zuordnung einer Protokollmaschine 42a, 42b für den PHY 32a, 32b ... 32n vorsieht,
welcher die Übertragung
weiterleitet, der Router 40 (in Block 154) die Übertragung
zu der Protokollmaschine 42a, 42b weiter, welche
dem PHY zugeordnet ist, welcher in der Routertabelle 41 angegeben
ist. Wenn (in Block 152) die Routertabelle 41 keine
Zuordnung einer PHY-Schicht und einer Protokollmaschine vorsieht,
und wenn (in Block 156) das Protokoll der Übertragung
dem SATA- oder Fibre-Channel-Punkt-zu-Punkt-Protokoll
entspricht, dann wählt der
Router 40 (in Block 158), auf Basis eines Auswahlkriteriums,
wie etwa Lastausgleich, Round-Robin usw., eine zu verwendende Protokollmaschine aus.
Wenn (in Block 160) alle Protokollmaschinen 46a, 46b,
welche in der Lage sind, das bestimmte Protokoll zu handhaben, belegt
sind, dann wird (in Block 162) Fail an das Gerät, das eine Übertragung gesendet
hat, zurückgegeben.
Wenn andernfalls (in Block 160) eine Protokollmaschine 46a, 46b verfügbar ist,
dann wird eine für
die Übertragung
zu verwendende Protokollmaschine 46a, 46b (in
Block 164) ausgewählt,
und die Übertragung
wird zu der ausgewählten
Protokollmaschine weitergeleitet.
-
Wenn
(in Block 156) das Protokoll der Verbindungsanforderung
dem SAS- oder Fibre-Channel-Arbitrated-Loop-Protokoll
entspricht, dann wählt der
Router 40 (in Block 166) auf Basis eines Auswahlkriteriums
eine zu verwendende Protokollmaschine 46a, 46b aus.
Wenn (in Block 168) alle Protokollmaschinen 46a, 46b,
welche in der Lage sind, das bestimmte Protokoll zu handhaben, belegt
sind, dann wird dem PHY, welcher die Übertragung empfängt, signalisiert,
dass die Verbindungsanforderung fehlgeschlagen ist, und der PHY 32a, 32b ... 32n gibt
(in Block 170) einen OPEN-reject-Befehl zu dem übertragenden
Gerät zurück. Wenn,
andernfalls, (in Block 168) eine Protokollmaschine 46a, 46b verfügbar ist, dann
wird ein Eintrag (in Block 172) zu der Routertabelle 41 hinzugefügt, welche
den PHY 42a, 42b ... 42n, welcher die Übertragung
weiterleitet, einer Protokollmaschine 46a, 46b zuordnet.
Der Router 40 signalisiert (in Block 174) dem
PHY, dass die Verbindung hergestellt ist, und der PHY gibt OPEN-accept zurück. Der
Router 40 leitet (in Block 176) die Übertragung
zu der ausgewählten
Protokollmaschine 46a, 46b weiter.
-
Zusätzlich kann
die Anwendungsschicht 50 eine Verbindung öffnen, um
Information an ein Targetgerät
zu übertragen,
durch Kommunizieren der OPEN-Anforderungsrahmen zu einer Protokollmaschine 42a, 42b,
unter Verwendung von Lastausgleich oder einer anderen Auswahltechnik,
wobei die Transport- und Portschichten der Protokollmaschine 42a, 42b die
OPEN-Verbindungsrahmen zu dem Router 40 übertragen,
um die Linkinitialisierung an die geeignete Linkschicht und PHY-Schicht
zu richten.
-
5 illustriert
Operationen, welche in dem Adapter 12 durchgeführt werden,
um zu ermöglichen, dass
ein Gerätetreiber 20a, 20b, 20c Information
zu einem Targetgerät
durch einen Adapter 12a, 12b (1)
kommuniziert. In Block 200 überträgt ein Gerätetreiber 20a, 20b, 20c Information,
um Kommunikation mit einem verbundenen Gerät zu initiieren, durch Senden
(in Block 202) von Information zu einer Protokollmaschine 46a, 46b.
Ein Gerätetreiber 20a, 20b, 20c kann
jegliche Operation durchführen,
um eine zu verwendende Protokollmaschine auszuwählen. Die Protokollmaschine 46a, 46b,
welche die Übertragung
empfängt,
leitet (in Block 204) die Übertragung an den Router 40 weiter.
Wenn (in Block 206) das durch den Gerätetreiber 20a, 20b, 20c verwendete
Protokoll SATA- oder Fibre-Channel-Punkt-zu-Punkt-Protokoll ist,
dann wählt
der Router 40 (in Block 208) einen PHY 32a, 32b ... 32n,
welcher mit dem Targetgerät
(direkt oder indirekt durch einen oder mehrere Expander oder ein
Fabric) verbunden ist, für
die Übertragung
aus und sendet die Übertragung
zu dem ausgewählten
PHY. Wenn (in Block 206) das durch den Gerätetreiber 20a, 20b, 20c,
welcher die Übertragung
initiiert, verwendete Protokoll SAS oder Fibre-Channel-Arbitrated-Loop ist,
dann wählt
der Router 40 (in Block 210) einen zu verwendenden
PHY 32a, 32b ... 32n aus, um Kommunikation
mit dem Targetgerät
herzustellen und einen Eintrag zu der Routertabelle hinzuzufügen, welche
die Protokollmaschine 42a, 42b, welche die Übertragung
weiterleitet, dem ausgewählten
PHY zuordnet, sodass die angegebene Protokollmaschine und der angegebene
PHY für
Kommunikationen durch diese SAS- oder Fibre-Channel-Arbitrated-Loop-Verbindung
verwendet werden. Der Router 40 leitet dann (in Block 212)
die OPEN-Verbindungsanforderung durch den ausgewählten PHY 32a, 32b ... 32n zu
dem Targetgerät
weiter.
-
Beschriebene
Ausführungsformen
sehen Techniken zum Erlauben von Verbindungen vor, mit unterschiedlichen
Speicherschnittstellen, welche bei unterschiedlichen Übertragungsgeschwindigkeiten und/oder
mit unterschiedlichen Übertragungseigenschaften übertragen.
Auf diese Weise kann ein einziger Adapter 12 mehrere Verbindungen
für unterschiedliche
Speicherschnittstellen (Speicherverbindungsarchitekturen) vorsehen,
welche unter Verwendung von unterschiedlichen Übertragungseigenschaften kommunizieren,
wie etwa Übertragen
bei unterschiedlichen Linkgeschwindigkeiten oder Enthalten unterschiedlicher
Protokollinformation in den Übertragungen.
Zum Beispiel kann der Adapter 12 in einem Gehäuse enthalten
sein, welches mit mehreren Speichergeräten auf einem Rack verbunden
ist, oder er sieht die Verbindungen für Speichergeräte innerhalb
desselben Gehäuses
vor.
-
Noch
dazu kann es bei den beschriebenen Ausführungsformen sein, dass es
nur eine Seriell-Parallel-Umsetzung
zwischen den PHY-Schichten 32a, 32b ... 32n,
welche die Parallel-Seriell-Umsetzung durchführen, und den Protokollmaschinen 42a, 42b,
innerhalb des Adapters, gibt. In Implementierungen, in welchen sich
der Expander extern von dem Adapter befindet, können drei Parallel-Seriell-Umsetzungen durchgeführt werden,
um Daten von den Verbindungen zu dem Router zu kommunizieren (seriell-parallel), von dem
Router in dem Expander zu dem Adapter (parallel-seriell), und, beim
Adapter, von der Verbindung zu der Protokollmaschine (seriell-parallel).
Gewisse beschriebene Ausführungsformen
schaffen die Notwendigkeit zweier dieser Umsetzungen ab, durch Erlauben,
dass die parallelen Daten direkt von dem Router zu den Protokollmaschinen
in derselben Adapterkomponente übertragen werden.
Reduzieren der Anzahl an Parallel-Seriell-Umsetzungen und entsprechenden
PLL-Trackings reduziert Daten- und Bitfehler, welche durch die Frequenzänderungen,
welche durch die PLL in den Umsetzern herbeigeführt sind, gebracht werden können, und
kann durch derartige zusätzliche
Umsetzungen verursachte Latenzverzögerungen reduzieren.
-
Gehäusearchitektur,
welche mehrere Protokolle unterstützt
-
6 illustriert
ein Speichergehäuse 200, welches
mehrere Steckplätze 202a und 202b aufweist,
in welche Speichereinheiten 203 eingefügt werden können. Die Speichereinheit kann
eine Wechselplatte umfassen, so können etwa ein Magnet-Festplattenlaufwerk,
eine Bandkassette, eine optische Platte, Halbleiterplatte usw. eingefügt werden. Wenngleich
nur zwei Steckplätze
gezeigt sind, kann jede Anzahl an Steckplätzen in dem Speichergehäuse 200 enthalten
sein. Die Speichereinheit weist einen Verbinder 205 auf,
um mit einer der physikalischen Schnittstellen 204a, 206a und 204b, 206b auf einer
Rückwandverdrahtungsplatte 208 des
Gehäuses 200 zusammenzupassen,
jeweils durch einen der Steckplätze 202a, 202b.
Eine Rückwandverdrahtungsplatte
umfasst eine Leiterplatte, welche Verbinder aufweist, Schnittstellen,
Steckplätze,
in welche Komponenten eingesteckt werden. Der Steckplatz 252a, 252b, 252c umfasst
den Raum zum Aufnehmen der Speichereinheit 203 und kann
von einer physikalischen Struktur oder Abgrenzungen umgeben sein,
wie etwa Wänden,
Führungen
usw., oder kann einen Raum umfassen, welcher von der Speichereinheit 203 eingenommen
wird, der von keinerlei physikalischen Strukturen oder Abgrenzungen
definiert ist. Die physikalischen Schnittstellen 204a, 206a und 204b, 206b entsprechen
den physikalischen Schnittstellen 30a, 30b ... 30n in
dem Adapter. Wenn, zum Beispiel, die Speichereinheit 203 in
der Lage ist, mit der physikalischen Schnittstelle 204a, 204b zusammenzupassen,
dann kann der Nutzer die Speichereinheit 203 drehen, um
zu erlauben, dass die Speichereinheit 203 mit dieser konkreten
physikalischen Schnittstelle 204a, 204b zusammenpasst.
Wenn die Speichereinheit 203 in der Lage ist, mit der physikalischen
Schnittstelle 206a, 206b zusammenzupassen, dann
kann der Nutzer die Speichereinheitsanordnung 203 um 180
Grad drehen, um mit den physikalischen Schnittstellen 206a, 206b zusammenzupassen.
Auf diese Weise sieht ein einziger Steckplatz Schnittstellen für Speichereinheiten
vor, deren physikalische Schnittstellen unterschiedliche physikalische
Konfigurationen aufweisen, wie etwa unterschiedliche Größenabmessungen,
unterschiedliche Schnittstellengrößen und unterschiedliche Pin-Verbindungsanordnungen.
-
In
gewissen Ausführungsformen,
zum Beispiel, können
die physikalischen Schnittstellen 206a und 206b in
der Lage sein, mit einer physikalischen SATA/SAS-Schnittstelle zusammenzupassen, und die
physikalischen Schnittstellen 204a und 204b können in
der Lage sein, mit einer physikalischen Fibre-Channel-Schnittstelle
zusammenzupassen. Auf diese Weise erlaubt ein einziger Steckplatz 202a, 202b ein
Zusammenpassen mit der Speichereinheit, welche physikalische Schnittstellen
aufweist, welche unterschiedliche physikalische Konfigurationen
aufweisen. Wenn, zum Beispiel, die Schnittstelle der Speichereinheit 203 zum
Einstecken in eine SAS/SATA-Schnittstelle gestaltet worden ist,
dann würde
der Nutzer die Speichereinheit 203 drehen, um an die physikalische
Schnittstelle, z. B. 204a, anzukoppeln, welche diese Schnittstelle
unterstützt,
während, wenn
die Speicherschnittstelle zum Einstecken in eine Fibre-Channel-Schnittstelle gestaltet
worden ist, der Nutzer dann die Speichereinheit 203 drehen
würde,
um an die unterstützende
physikalische Schnittstelle, z. B. 206a, anzukoppeln.
-
In
gewissen Ausführungsformen
kann die Speichereinheit 203 nur eine physikalische Schnittstelle
umfassen, um mit einer physikalischen Schnittstelle, z. B. 204a, 206a in
einem Steckplatz zusammenzupassen, z. B. 202a.
-
7 illustriert
eine Ausführungsform
der Architektur der Rückwandverdrahtungsplatte 258 eines
Speichergehäuses 250,
wie etwa Gehäuse 200, welches
mehrere Steckplätze 252a, 252b, 252c aufweist
(drei sind gezeigt, jedoch können
mehr oder weniger vorgesehen sein), wobei jeder Steckplatz zwei
physikalische Schnittstellen 254a, 256a, 254b, 256b, 254c, 256c aufweist.
Die physikalischen Schnittstellen 254a, 254b, 254c und 256a, 256b und 256c können unterschiedliche
physikalische Konfigurationen aufweisen, z. B. Größenabmessungen
und Pinanordnungen, um unterschiedliche Speicherverbindungsarchitekturen
zu unterstützen,
z. B. SATA/SAS und Fibre Channel. Ein Expander 260 auf der
Rückwandverdrahtungsplatte 258 weist
mehrere Expander-PHYs 262a, 262b, 262c auf.
Die Expander-PHYs 262a, 262b, 262c können in
einen oder mehrere Ports organisiert sein, wobei jedem Port zugeteilt
ist, einen oder mehrere PHYs aufzuweisen. Ferner kann ein PHY 262a, 262b, 262c mit
jedem Paar physikalischer Schnittstellen 254a, 256a, 254b, 256b, 254c, 256c in
jedem Steckplatz 252a, 252b, 252c gekoppelt
sein. Eine Expanderfunktion 266 routet Information von
PHYs 262a, 262b, 262c zu Ziel-PHYs 264a, 264b, 264c,
von wo aus die Information direkt oder durch zusätzliche Expander zu einem Endgerät weitergeleitet
wird. 7 zeigt die Ziel-PHYs 264a, 264b, 264c,
welche direkt zu den physikalischen Schnittstellen auf einem Adapter 280 in
Server 282 verbinden.
-
In
gewissen Ausführungsformen
erstreckt sich ein Mehrpunktverbinder 266a, 266b, 266c von der
physikalischen Schnittstelle für
jeden PHY 262a, 262b, 262c zu einem der
Steckplätze 252a, 252b, 252c,
wobei jedes Ende auf dem Mehrpunktverbinder 266a, 266b, 266c jeweils
mit einer der Schnittstellen 254a, 256a; 254b, 256b;
und 254c, 256c gekoppelt ist, jeweils in den Steckplätzen 252a, 252b, 252c.
Ein Mehrpunktverbinder umfasst eine Kommunikationsleitung mit mehreren
Zugangspunkten, wobei die Zugangspunkte Kabelzugangspunkte, Zugangspunkte
geätzter
Pfade usw. umfassen können. Auf
diese Weise sieht ein Mehrpunktverbinder die physikalische Verbindung
zu unterschiedlichen physikalischen Schnittstellen in einem Steckplatz
vor, wobei die unterschiedlichen physikalischen Schnittstellen unterschiedliche
physikalische Abmessungen und Pinanordnungen aufweisen können. Um
unterschiedliche physikalische Schnittstellen unterzubringen, weisen
die Abschlüsse
der Mehrpunktverbinder 268a, 268b, 268c unterschiedliche
physikalische Verbinder auf, um mit den unterschiedlichen physikalischen
Speicherverbindungs-Schnittstellen
zusammenzupassen, z. B. SAS/SATA, Fibre Channel, welche auf der
Speichereinheit 203 sein können, z. B. ein Plattenlaufwerk,
eingefügt
in den Steckplatz 252a, 252b, 252c und
eingepasst in physikalische Schnittstelle 254a, 256a, 254b, 256b, 254c, 256c. Die
Mehrpunktverbinder 266a, 266b, 266c können Kabel
oder auf eine gedruckte Leiterplatte geätzte Pfade umfassen.
-
8 illustriert
Komponenten innerhalb eines Expander-PHYs 300, wie etwa
Expander-PHYs 262a, 262b, 262c, 264a, 264b, 264c.
Ein Expander-PHY 300 kann eine PHY-Schicht 302 enthalten, um PHY-Operationen
durchzuführen,
sowie eine PHY-Linkschicht 304. Zusätzlich kann die PHY-Schicht 302 die
mit Bezug auf die PHY-Schichten 32a, 32b ... 32n in 2 beschriebenen
Operationen durchführen,
wobei ihre Operationen in 3 beschrieben
sind. Die Expander-PHY-Schicht 302 kann die Fähigkeit
aufweisen, Übertragungscharakteristika
für unterschiedliche
Hardwareschnittstellen zu erkennen, d. h. Speicherverbindungsarchitekturen,
z. B. SAS/SATA, Fibre Channel usw., und Information über die
Hardware-Speicherschnittstelle
zu der Linkschicht 302 weiterleiten, wobei die Linkschicht 302 diese
Information verwendet, um auf die Adresse des Targetspeichergeräts der Übertragung zuzugreifen,
um den Expander-PHY auszuwählen, welcher
mit dem Targetgerät
verbunden ist. Diese Architektur für die Expander-PHYs erlaubt
dem Expander, Daten zu handhaben, welche von unterschiedlichen Speicherverbindungsarchitekturen,
welche unterschiedliche Übertragungseigenschaften
aufweisen, übertragen
sind.
-
Der
Expander kann ferner einen Router aufweisen, um eine Übertragung
von einem PHY zu einem anderen PHY zu routen, welcher zu dem Targetgerät oder Pfad
zu dem Targetgerät
verbindet. Der Expanderrouter kann ferner eine Routertabelle halten,
welche PHYs den Adressen der Geräte
zuordnet, an welche sie angeschlossen sind, so wird eine Übertragung,
welche auf einem PHY empfangen wird, welcher an ein Endgerät gerichtet
ist, zu dem PHY geroutet, welcher diesem Endgerät zugeordnet ist.
-
Mit
Bezug auf 7 kann der Adapter 280 in dem
Server 282 dieselbe Architektur aufweisen wie der Adapter 12 in 2,
welche den Expander 34 und die Architektur der Protokollmaschinen 42a, 42b aufweist,
welche arbeitet wie beschrieben mit Bezug auf die Ausführungsformen
in 1, 2, 3, 4 und 5.
Der Adapter 280 empfängt
Daten von dem Expander 260 in dem Speichergehäuse 250 über Verbindung 290 und
leitet dann die Übertragung zu
einer der Protokollmaschinen 288a, 288b auf die oben
beschriebene Weise weiter. Jede physikalische Schnittstelle 284a, 284b, 284c auf
dem Serveradapter 280 kann zu einem unterschiedlichen Speichergehäuse verbinden,
und jeder Ziel-PHY 264a, 264b, 264c auf
dem Expander 260 der Rückwandverdrahtungsplatte 258 kann
mit einem unterschiedlichen Server gekoppelt sein, wodurch erlaubt
wird, dass unterschiedliche Server zu mehreren Speichergehäusen verbinden
und ein Speichergehäuse
zu unterschiedlichen Servern verbindet.
-
Bei
den beschriebenen Ausführungsformen können Speichereinheiten,
wie etwa Plattenlaufwerke, welche unterschiedliche Verbindungsschnittstellen
aufweisen, innerhalb der Steckplätze 252a, 252b, 252c (7)
auf der Rückwandverdrahtungsplatte 258 durch
Drehen der Ausrichtung der Speichereinheitsanordnung bei Einfügen der
Speichereinheit in den Steckplatz eingefügt werden. Ferner kann der Adapter 280 Übertragungen
von dem Expander 260 der Rückwandverdrahtungsplatte 258 unterstützen, unter
Verwendung unterschiedlicher Speicherverbindungsarchitekturen, wie
etwa SAS/SATA oder Fibre Channel, durch Aufweisen der Komponenten
und Ausführen
der Operationen, wie oben mit Bezug auf 2, 3, 4 und 5 beschrieben.
Auf diese Weise kann ein einziges Speichergehäuse 250 Verwenden
von Speichereinheiten erlauben, wie etwa Plattenlaufwerken, welche
unterschiedliche Speicherschnittstellen aufweisen, d. h. Speicherverbindungsarchitekturen,
mit unterschiedlichen physikalischen Schnittstellenanordnungen,
z. B. unterschiedlichen Abmessungen und Pinanordnungen. Das Verwenden
des Adapters 280 und Expanders 260 auf der Gehäuse-Rückwandverdrahtungsplatte, wobei
beide Speicherverbindungsarchitekturen unterstützen, welche unterschiedliche Übertragungseigenschaften
aufweisen, z. B. Linkgeschwindigkeit und Datenformat, erlaubt Kommunikation
mit einem Gehäuse,
welches in der Lage ist, in seinen Steckplätzen physikalische Schnittstellen
für unterschiedliche
Speicherverbindungsarchitekturen, z. B. Fibre Channel, SAS/SATA
aufzuweisen.
-
9 illustriert
ein Speicherrack 310, welches befestigte Server 314a, 314b und
Speichergehäuse 312a und 312b aufweist.
Nur zwei von jedem sind gezeigt, jedoch kann jegliche Anzahl, welche von
dem Layout des Racks untergebracht werden kann, enthalten sein.
In diesem Beispiel ist jeder Server 314a, 314b mit
jedem Speichergehäuse 312a, 312b verbunden.
Die Speichergehäuse 312a, 312b können eine
Rückwandverdrahtungsplatte 258 aufweisen,
wie beschrieben mit Bezug auf 6 und 7,
und jeder Server 312a, 312b kann einen Adapter 280 aufweisen,
wie beschrieben mit Bezug auf 2 und 7,
um Speichereinheiten zu unterstützen,
welche unterschiedliche Speicherverbindungsarchitekturen verwenden,
welche unterschiedliche physikalische Schnittstellen erfordern und
unterschiedliche Übertragungseigenschaften
aufweisen. Jedes Speichergehäuse
und jeder Server können mehrere Adapterkarten
aufweisen, um zusätzliche Verbindungen
zu erlauben.
-
10 illustriert
eine alternative Ausführungsform
eines Adapters 320, welcher den Adapter 280 in 7 ersetzen
kann, verbunden zu dem Speichergehäuse 250. Adapter 320 enthält mehrere
Ports 322, wobei jeder Port einen oder mehrere PHYs 324 enthält, und
wobei jeder PHY 324 eine PHY-Schicht 326 aufweist,
eine Linkschicht 328 und unterschiedliche Protokoll-Linkschichten,
z. B. eine SSP-Linkschicht 330a, eine STP-Linkschicht 330b,
eine SMP-Linkschicht 330c und
eine Fibre-Channel-Protocol-Linkschicht 330d.
In einem Port 322 teilen alle PHYs in diesem Port eine
Linkschicht 332 und die Transportschichten, z. B. SSP-Transportschicht 334a,
Fibre-Channel-Protocol 334b,
STP-Transportschicht 334c und SMP-Transportschicht 334d. Die PHY-Schicht 326 und
die Linkschicht 328 in der Ausführungsform in 10 führt die
Operationen der PHY-Schichten 32a, 32b ... 32n und
der Linkschicht 36, wie mit Bezug auf 2, 3, 4 und 5 beschrieben,
durch, um die Übertragungseigenschaften
und die entsprechende Speicherverbindungsarchitektur daraus zu erkennen
und die erkannte Speicherverbindungsarchitektur zu verwenden, um
das Paket zu verarbeiten und das zu verwendende Linkschichtprotokoll
zu bestimmen, z. B. SSP, STP, SMP, Fibre Channel Protocol. Allerdings können in
der Ausführungsform
in 2 mehrere PHY-Schichten in mehreren Ports die
Linkschicht, die Portschicht und die Transportschichten teilen,
während
in der Ausführungsform
in 10 jeder PHY seine eigene Linkschicht aufweist
und jeder Port seine eigene Portschicht und seine eigenen Transportschichten
aufweist, wodurch größere Komponentenredundanz
geboten wird. Das STP-Protokoll kann auch SATA verwenden.
-
Beschriebene
Ausführungsformen
sehen Architekturen vor, um zu erlauben, dass eine einzige Adapterschnittstelle
verwendet wird, um an Geräte anzukoppeln,
welche unterschiedliche Speicherschnittstellen verwenden, d. h.
Speicherverbindungsarchitekturen, wobei einige der Speicherschnittstellen
unterschiedliche und nicht überlappende
Linkgeschwindigkeiten verwenden. Das überwindet die Situation, in
welcher es sein kann, dass ein einziger Adapter/Controller, wie
etwa ein SAS-Gerät,
Speicherverbindungsarchitekturen nicht unterstützt, welche unterschiedliche Übertragungseigenschaften
aufweisen, wie es der Fall ist, wo es sein kann, dass ein Adapter,
welcher SAS/SATA unterstützt,
die Fibre-Channel-Schnittstelle nicht unterstützt, da ein derartiger Adapter
Daten, welche unter Verwendung der Fibre-Channel-Schnittstelle (Speicherverbindungsarchitektur) übertragen
werden, nicht erkennen, und daher die nötigen Treiber, um Fibre Channel
zu unterstützen,
nicht in das Betriebssystem laden kann.
-
Zusätzliche Details der Ausführungsformen
-
Die
beschriebenen Ausführungsformen
können
als ein Verfahren, eine Vorrichtung oder ein Erzeugnis implementiert
sein, unter Verwendung von Techniken der Programmierung und Entwicklung,
um Software, Firmware, Hardware oder jegliche Kombination derselben
herzustellen. Die Benennungen "Erzeugnis" und "Schaltungen", wie in dieser Schrift
verwendet, beziehen sich auf einen Zustandsautomaten, einen Code
oder eine Logik, welche in Hardwarelogik implementiert sind (z.
B. ein Integrated Circuit Chip, ein Programmable Gate Array (PGA),
ein Application Specific Integrated Circuit (ASIC) usw.), oder auf
ein computerlesbares Medium, wie etwa ein Magnetspeichermedium (z.
B. Festplattenlaufwerke, Disketten, Bänder usw.), optische Speicher (CD-ROMs,
optische Platten usw.), flüchtige
und nicht flüchtige
Speichergeräte
(z. B. EEPROMs, ROMS, PROMs, RAMs, DRAMs, SRAMs, Firmware, programmierbare
Logik, usw.). Auf Code wird in dem computerlesbaren Medium durch
einen Prozessor zugegriffen, und er wird durch einen Prozessor ausgeführt. Wenn
der Code oder die Logik von einem Prozessor ausgeführt wird,
würde die
Schaltung das Medium enthalten, welches den Code oder die Logik enthält, sowie
den Prozessor, welcher den von dem Medium geladenen Code ausführt. Der
Code, in welchem bevorzugte Ausführungsformen
implementiert sind, kann ferner durch ein Übertragungsmedium zugänglich sein,
oder von einem File Server über
ein Netzwerk. In derartigen Fällen
kann das Erzeugnis, in welchem der Code implementiert ist, ein Übertragungsmedium
umfassen, wie etwa eine Netzwerkübertragungsleitung,
ein drahtloses Übertragungsmedium,
Signale, welche sich durch den Raum ausbreiten, Funkwellen, Infrarotsignale
usw. So kann das "Erzeugnis" das Medium umfassen,
in welchem der Code verkörpert
ist. Zusätzlich
kann das "Erzeugnis" eine Kombination
aus Hardware- und Softwarekomponenten umfassen, in welchen der Code
verkörpert, verarbeitet
und ausgeführt
ist. Selbstverständlich wird
in Fachkreisen zu erkennen sein, dass zahlreich Modifikationen an
dieser Konfiguration vorgenommen werden können, und dass das Erzeugnis
jegliches im Fach bekannte informationstragende Medium umfassen
kann.
-
Zusätzlich können die
Expander, PHYs und Protokollmaschinen in einer oder mehreren integrierten
Schaltungen auf dem Adapter oder in dem Motherboard implementiert
sein.
-
In
den beschriebenen Ausführungsformen wurden
Schichten gezeigt, wie sie innerhalb spezifischer Komponenten, wie
etwa des Expanders und der Protokollmaschinen, arbeiten. In alternativen
Implementierungen können
Schichten auf eine Weise, anders als gezeigt, implementiert sein.
Zum Beispiel können
die Linkschicht und die Linkschichtprotokolle mit den Protokollmaschinen
implementiert sein, oder die Portschicht kann in dem Expander implementiert sein.
-
In
den beschriebenen Ausführungsformen unterstützen die
Protokollmaschinen je mehrere Transportprotokolle. In alternativen
Ausführungsformen
können
die Protokollmaschinen unterschiedliche Transportprotokolle unterstützen, so
würde der Expander 40 Kommunikationen
für ein
konkretes Protokoll an dieses Protokoll richten, welches das bestimmte
Protokoll unterstützt.
-
In
den beschriebenen Ausführungsformen wird übertragene
Information an einer Adapterkarte empfangen, von einem entfernten
Gerät, über eine Verbindung.
In alternativen Ausführungsformen
kann die übertragene
und empfangene Information, welche durch den Transportprotokollschicht-
oder Gerätetreiber
verarbeitet wird, von einem getrennten Prozess empfangen werden,
welcher in demselben Computer ausgeführt wird, in welchem der Gerätetreiber
und der Transportprotokolltreiber ausgeführt werden.
-
In
gewissen Implementierungen können
die Gerätetreiber-
und Netzwerkadapter-Ausführungsformen
in einem Computersystem enthalten sein, welches einen Speichercontroller
aufweist, wie etwa einen SCSI-Controller,
einen Redundant-Array-of-Independent-Disk-(RAID-)Controller usw., welcher den Zugriff
auf ein nicht flüchtiges
oder flüchtiges
Speichergerät
verwaltet, wie etwa ein Magnetplattenlaufwerk, ein Bandmedium, eine
optische Platte usw. In alternativen Ausführungsformen können die
Netzwerkadapter-Ausführungsformen
in einem System enthalten sein, das keinen Speichercontroller aufweist,
wie etwa gewisse Hubs und Switches.
-
In
gewissen Ausführungsformen
kann der Adapter konfiguriert sein, Daten über ein Kabel zu übertragen,
welches zu einem Port auf dem Adapter verbunden ist. In weiteren
Ausführungsformen
kann der Adapter konfiguriert sein, Daten über geätzte Pfade auf einer gedruckten
Leiterplatte zu übertragen. Alternativ
können
die Adapter-Ausführungsformen konfiguriert
sein, Daten über
ein Funknetzwerk oder eine drahtlose Verbindung zu kommunizieren.
-
In
beschriebenen Ausführungsformen
umfasste die Speicherschnittstelle, welche von den Adaptern unterstützt wird,
SATA, SAS und Fibre Channel. In zusätzlichen Ausführungsformen
können
andere Speicherschnittstellen unterstützt werden. Zusätzlich wurde
der Adapter als gewisse Transportprotokolle unterstützend beschrieben,
z. B. SSP, Fibre Channel Protocol, STP und SMP. In weiteren Ausführungsformen
kann der Adapter zusätzliche
Transportprotokolle unterstützen,
welche für Übertragungen
mit den unterstützten
Speicherschnittstellen verwendet werden. Die unterstützten Speicherschnittstellen
können
unter Verwendung unterschiedlicher Übertragungseigenschaften übertragen,
z. B. unterschiedlicher Linkgeschwindigkeiten und unterschiedlicher
Protokollinformation, welche in der Übertragung enthalten ist. Ferner
können
die physikalischen Schnittstellen unterschiedliche physikalische
Konfigurationen aufweisen, d. h. Anzahl und Anordnung der Pins und
anderer physikalischer Verbinder, wenn die unterschiedlichen unterstützten Speicherverbindungsarchitekturen
unterschiedliche physikalische Konfigurationen verwenden.
-
Der
Adapter 12 kann auf einer Netzwerkkarte implementiert sein,
wie etwa einer Peripheral-Component-Interconnect-(PCI-)Karte oder auf einer
anderen I/O-Karte oder auf Integrated-Circuit-Komponenten, welche
auf einem System-Motherboard oder auf einer Rückwandverdrahtungsplatte befestigt sind.
-
In
beschriebenen Ausführungsformen
erstrecken sich die Schnittstellen in dem Steckplatz entlang der
vertikalen Läge
des Steckplatzes, und sie befinden sich in einer parallelen Ausrichtung
im Bezug zueinander. In alternativen Ausführungsformen können die
beiden Schnittstellen im Bezug zueinander und zu dem Steckplatz
auf unterschiedliche Arten ausgerichtet sein, abhängig von
der entsprechenden Schnittstelle auf der Speichereinheitsanordnung. Ferner
können
in zusätzlichen
Ausführungsformen mehr
als zwei physikalische Schnittstellen in dem Steckplatz für die unterschiedlichen
von dem Adapter unterstützten
Protokolle enthalten sein.
-
Die
in 3, 4 und 5 illustrierte
Logik zeigt gewisse Ereignisse, welche in einer gewissen Reihenfolge
auftreten. In alternativen Ausführungsformen
können
gewisse Operationen in einer unterschiedlichen Reihenfolge durchgeführt, modifiziert
oder weggelassen werden. Außerdem
können Operationen
zu der oben beschriebenen Logik hinzugefügt werden und immer noch den
oben beschriebenen Ausführungsformen
entsprechen. Ferner können in
dieser Schrift beschriebene Operationen sequentiell erfolgen, oder
gewisse Operationen können
parallel verarbeitet werden. Noch dazu können Operationen durch eine
einzige Verarbeitungseinheit ausgeführt werden oder durch verteilte
Verarbeitungseinheiten.
-
11 illustriert
eine Implementierung einer Rechnerarchitektur 400 der Speichergehäuse und Server
in 6 und 8. Die Architektur 400 kann einen
Prozessor 402 umfassen (z. B. einen Mikroprozessor), einen
Speicher 404 (z. B. ein flüchtiges Speichergerät), einen
Speicher 406 (z. B. einen nicht-flüchtigen Speicher, wie etwa
Magnetplattenlaufwerke, optische Plattenlaufwerke, Bandlaufwerke usw.).
Der Speicher 406 kann ein internes Speichergerät umfassen
oder einen angeschlossenen oder netzwerkzugänglichen Speicher. Programme
in dem Speicher 406 werden in den Speicher 404 geladen und
durch den Prozessor 402 ausgeführt, auf eine im Fach bekannte
Weise. Die Architektur weist ferner einen Adapter auf, wie oben
mit Bezug auf 1 bis 7 beschrieben,
um eine Punkt-zu-Punkt-Verbindung
mit einem Endgerät
zu ermöglichen,
wie etwa einer Plattenlaufwerksanordnung. Wie erörtert, können einige der Geräte mehrere
Netzwerkkarten aufweisen. Ein Eingabegerät 410 wird verwendet,
um Nutzereingabe an den Prozessor 402 vorzusehen, und es
kann eine Tastatur aufweisen, eine Maus, einen Tablettstift, ein
Mikrophon, einen Berührungsbildschirm
oder jeglichen anderen im Fach bekannten Aktivierungs- oder Eingabemechanismus.
Ein Ausgabegerät 412 ist
in der Lage, Information, welche von dem Prozessor 402 oder
einer anderen Komponente übertragen
wird, wiederzugeben, wie etwa ein Anzeigemonitor, ein Drucker, ein
Speicher usw.
-
Die
vorstehende Beschreibung verschiedener Ausführungsformen wurde zu Zwecken
der Illustration und Deskription dargelegt. Sie erhebt nicht den
Anspruch, vollständig
zu sein oder die Ausführungsformen
auf die präzise
offenbarte Form einzuschränken.
Zahlreiche Modifikationen und Variationen sind im Lichte der obigen
Lehre möglich.