(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5661701
(24)【登録日】2014年12月12日
(45)【発行日】2015年1月28日
(54)【発明の名称】SASドメインを通してSATAホストとSATAターゲット・デバイスとの間で通信するための方法および構造
(51)【国際特許分類】
G06F 3/06 20060101AFI20150108BHJP
【FI】
G06F3/06 301A
【請求項の数】12
【全頁数】15
(21)【出願番号】特願2012-183772(P2012-183772)
(22)【出願日】2012年8月23日
(65)【公開番号】特開2013-137737(P2013-137737A)
(43)【公開日】2013年7月11日
【審査請求日】2012年8月23日
(31)【優先権主張番号】13/337,648
(32)【優先日】2011年12月27日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】508243639
【氏名又は名称】エルエスアイ コーポレーション
(74)【代理人】
【識別番号】100087642
【弁理士】
【氏名又は名称】古谷 聡
(74)【代理人】
【識別番号】100082946
【弁理士】
【氏名又は名称】大西 昭広
(74)【代理人】
【識別番号】100121061
【弁理士】
【氏名又は名称】西山 清春
(74)【代理人】
【識別番号】100195693
【弁理士】
【氏名又は名称】細井 玲
(72)【発明者】
【氏名】ルク イー.マッケイ
(72)【発明者】
【氏名】チャールズ デー.ヘンリー
【審査官】
稲葉 崇
(56)【参考文献】
【文献】
特開2008−041050(JP,A)
【文献】
特表2010−519617(JP,A)
【文献】
特開2011−028723(JP,A)
【文献】
特表2010−514063(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06−3/08
G06F 13/10−13/14
G06F 13/38−13/42
G06F 13/20−13/378
(57)【特許請求の範囲】
【請求項1】
拡張された、「SAS」として知られているシリアル・アタッチドSCSIのエキスパンダ(108)であって、
「SATA」として知られているシリアル・アドバンスド・テクノロジー・アタッチメントのホスト(102.1)と前記SASエキスパンダを結合するための、「PHY」として知られている第1の物理的リンク(110.1)であって、前記SATAホストは、SATAプロトコルを使用して前記エキスパンダと情報を交換し、前記PHYは、SATAターゲット・デバイス(104.1)に方向づけられる前記SATAホストからの「FIS」として知られている第1のフレーム情報構造を受信する、第1の物理的リンク(110.1)と、
前記第1のFISの受信に応じて、前記エキスパンダを通して、前記SATAホストと、前記SATAターゲット・デバイスとの間のSTP接続をオープンにし、またクローズにするように動作可能な、「STP」として知られているSATAトンネリング・プロトコルの接続回路(112)と
を備え、
前記STP接続回路のSATAプロトコル・ロジック(200)は、前記STP接続回路が前記SATAターゲット・デバイスとのSTP受入れを確立するまで、SATAホールド・プリミティブを前記SATAホストへ送信して前記SATAホストからのさらなる伝送を遅延させることを特徴とするエキスパンダ。
【請求項2】
前記接続回路は、さらに、前記STP接続の前記オープンにすることの完了を待ちながら、1つまたは複数のSATAホールド・プリミティブを前記SATAホストへと送信するように動作可能であり、また
前記接続回路は、さらに、前記STP接続の前記オープンにすることの完了に応じて前記第1のFISを前記SATAターゲット・デバイスへと送信するように動作可能である、請求項1に記載のエキスパンダ。
【請求項3】
前記接続回路は、さらに、その間に情報が、前記SATAホストと、前記SATAターゲット・デバイスとの間で交換されないあらかじめ決定されたタイムアウトの期限切れに応じて、前記SATAホストと、前記SATAターゲット・デバイスとの間のオープンなSTP接続をクローズにするように動作可能である、請求項1に記載のエキスパンダ。
【請求項4】
前記接続回路は、さらに、前記SATAホストに戻されるべき、前記SATAターゲット・デバイスからの情報の受信に応じて、前記SATAホストと、前記SATAターゲット・デバイスとの間の以前にクローズにされたSTP接続を再びオープンにするように動作可能である、請求項3に記載のエキスパンダ。
【請求項5】
それぞれのエントリが、対応するSATAターゲット・デバイスについてのSAS識別子を備える1つまたは複数のエントリを有するマッピング・テーブルを記憶するためのメモリ(208)
をさらに備え、前記接続回路は、さらに、前記第1のFISの受信に応じて、前記第1のFISの中の宛先として識別される前記SATAターゲット・デバイスについてのSAS識別子を決定するために、前記マッピング・テーブルの中のエントリにアクセスするように動作可能である、請求項1に記載のエキスパンダ。
【請求項6】
前記マッピング・テーブルの各エントリは、前記SATAホストが、前記第1のFISの中で識別される前記SATAターゲット・デバイスに対するアクセスを許可されるかどうかを示す許可情報を備える、請求項5に記載のエキスパンダ。
【請求項7】
拡張された、「SAS」として知られているシリアル・アタッチドSCSIのエキスパンダにおいて動作可能な方法であって、前記エキスパンダは、前記拡張されたSASエキスパンダの「PHY」として知られている第1の物理的リンク(110.1)を通して、「SATA」として知られているシリアル・アドバンスド・テクノロジー・アタッチメントのホスト(102.1)と結合され、前記拡張されたSASエキスパンダは、SATAターゲット・デバイス(104.1)と結合され、前記方法は、
前記SATAターゲット・デバイスに方向づけられた、「FIS」として知られている第1のフレーム情報構造を前記SATAホストから前記第1のPHYを通して受信すること、
前記エキスパンダのSTP接続回路(112)が前記SATAターゲット・デバイスとのSTP受入れを確立するまで、前記STP接続回路のSATAプロトコル・ロジック(200)を通して前記SATAホストにSATAホールド・プリミティブを送信することによって前記SATAホストからのさらなる伝送を遅延させること、
前記第1のFISの受信に応じて、前記STP接続回路を通して、「STP」として知られているSATAトンネリング・プロトコルを使用して前記SATAターゲット・デバイスに対するSAS接続をオープンにすること、および
前記オープンにされたSAS接続を通して前記第1のFISを送信すること
を備えていることを特徴とする方法。
【請求項8】
前記SATAホストからさらなるSATA情報を受信すること、および
前記オープンにされたSAS接続を通して前記さらなるSATA情報を前記SATAターゲット・デバイスへと送信すること
をさらに備える、請求項7に記載の方法。
【請求項9】
前記オープンにされたSAS接続を通してさらなるSAS情報を前記SATAターゲット・デバイスから受信すること、および
前記オープンにされたSAS接続を通して前記さらなるSATA情報を前記SATAホストへと送信すること
をさらに備える、請求項7に記載の方法。
【請求項10】
前記拡張されたSASエキスパンダのメモリに記憶されるテーブルの中で、前記SATAホストに対応し、また前記SATAターゲット・デバイスに対応するエントリを見出すこと、および
STPを使用して前記1つまたは複数の他のSASエキスパンダを通して前記SATAターゲット・デバイスにアクセスするルーティング情報を前記見出されたエントリから決定すること
をさらに備える、請求項7に記載の方法。
【請求項11】
前記SATAホストが前記SATAターゲット・デバイスにアクセスする許可を示す許可情報を前記見出されたエントリから決定すること、および
前記SATAホストが前記SATAターゲット・デバイスに対するアクセスを拒否されることを決定することに応じて前記第1のSATA FISを拒絶すること
をさらに備える、請求項10に記載の方法。
【請求項12】
その間に情報が、前記SATAホストと、前記SATAターゲット・デバイスとの間で交換されないあらかじめ決定されたタイムアウトの期限切れに応じて、前記SATAホストと、前記SATAターゲット・デバイスとの間の前記オープンな接続をクローズにすること
をさらに備える、請求項7に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、シリアル・アドバンスド・テクノロジー・アタッチメント(Serial Advanced Technology Attachment)(SATA)ストレージ・システムに関し、より詳細には、シリアル・アタッチドSCSI(Serial Attached SCSI)(SAS)スイッチ型ファブリック・ドメイン(switched fabric domain)を通してSATAホスト/イニシエータをSATAターゲット・デバイスに結合するための方法および構造に関する。
【背景技術】
【0002】
ストレージ・システムは、多くの場合に、ホスト・システムと、ストレージ・デバイスとを相互接続する高速シリアル通信を使用して、より長い相互接続ケーブル布線とより高い信頼性(より良い電気的雑音余裕度(electrical noise immunity))とを達成する。SATAは、特に、限られた数のホスト(SATAイニシエータ(SATA initiators))とストレージ・デバイス(SATAターゲット・デバイス)とを有する、より低コストでより小規模のストレージ・システムにおいては、そのような相互接続のための一般的な通信のプロトコルおよび媒体(medium)である。一般に、SATAホストは、単一のSATAターゲット・デバイス(例えば、単一のSATAディスク・ドライブまたは単一のSATAストレージ・システム)と直接に結合される。SATAポート乗算器は、このアーキテクチャの何らかの拡張により、単一のSATAホストが、少数のSATAターゲット・デバイス(すなわち、16個までのデバイス)と結合することができるようになることを可能にする。SATAポート・マルチプレクサは、さらに、複数のSATAホストが、単一のSATAターゲット・デバイスと結合することを可能にするように、そのアーキテクチャを拡張する。SATAプロトコルは、本質的にはSATAストレージ・アーキテクチャのそのような拡張を提供してはおらず、またポート乗算器/マルチプレクサは、基本的なSATAアーキテクチャに対する限られた拡張だけを提供している。
【0003】
SAS通信の媒体およびプロトコルは、本質的に、ホスト(SASイニシエータ)とストレージ・デバイス(SASターゲット・デバイス)とのトポロジを構成する際に、ずっと多くの柔軟性を可能にする。SASアーキテクチャは、動的スイッチング(スイッチ型ファブリック)が、いくつかのSASイニシエータのうちのどれかをいくつかのSASターゲット・デバイスのうちのどれかと結合することを可能にするSASエキスパンダ(SAS expander)を提供する。したがって、SASは、より大規模なストレージ・システムの場合に改善された柔軟性とスケーラビリティ(scalability)とを提供する。
【0004】
SASはまた、SATAターゲット・デバイスのSASスイッチ型ファブリックに対する接続を可能にする特定のプロトコル(SATAトンネリング・プロトコル(SATA Tunneling Protocol)−STP)を提供する。STP(本明細書においてはSTPイニシエータとも称される)をサポートするSASイニシエータは、次いで、SASファブリックを通して(すなわち、1つまたは複数のSASエキスパンダを通して)SATAターゲット・デバイスと接続することができる。STPは、本質的に、STPイニシエータが、SASファブリックを通して識別されたSATAターゲットに接続することを可能にする。STPイニシエータと直接に結合されたエキスパンダは、STPを使用して、識別されたSATAターゲット・デバイスに対する接続(すなわち、ルート(route))を確立するSASプロトコルに従う。SASファブリックを通してルートを確立して、次いで、SATA情報は、標準のSATAプロトコルを使用してSTPイニシエータとアドレス指定されたSATAターゲット・デバイスとの間で交換される。これは、SASアーキテクチャ・ストレージ・システムにおいて、あまりコストのかからないSATAストレージ・デバイスの使用を可能にする。しかしながら、STPイニシエータ(例えば、ストレージ・コントローラ)は、SATAイニシエータに比べてより複雑でコストがかかる可能性がある。しかし、現在のSASアーキテクチャは、SATAイニシエータ(SATAホスト)が、SASファブリックと直接に結合することを可能にすることはなく、STPイニシエータだけが、SATAターゲット・デバイスと情報を交換するようにSASファブリックと結合されることが可能である。
【発明の概要】
【発明が解決しようとする課題】
【0005】
したがって、完全なSASアーキテクチャのコンフィギュレーションとスケーラビリティとの柔軟性を含む、低コストで高性能のストレージ・システムを提供することが、進行中の課題である。
【課題を解決するための手段】
【0006】
本発明は、上記および他の問題を解決し、それによって、SATAホスト(SATAイニシエータ)をSASファブリックと直接に結合するための方法および構造をそのような直接の結合をサポートする拡張されたSASエキスパンダを通して提供することにより、有用な最先端技術を進展させる。拡張されたSASエキスパンダは、SATAホストと直接に結合し、またそれによってSASファブリックを通してSATAホストとSATAターゲット・デバイスとの間のSATAプロトコル交換を可能にするSATA/STPロジックを備える。それゆえに、より簡単であまりコストのかからないSATAホストとSATAターゲット・デバイスとが、コンフィギュレーションとスケーラビリティとにおけるSASアーキテクチャの柔軟性の利点を獲得しながら、利用されることが可能である。さらに、SATAホストが、より大きな数のSATAターゲット・デバイスと、SASファブリックを通して結合されることも可能であり、また複数のSATAホストが、(ポート乗算器とポート・マルチプレクサとを含むSATA規格と比べることにより)SASファブリックと結合されることも可能である。
【0007】
本発明の一態様においては、SASエキスパンダをSATAホストと結合するための第1の物理的リンク(PHY)を備える拡張されたSASエキスパンダが、提供される。SATAホストは、SATAプロトコルを使用してエキスパンダと情報を交換する。エキスパンダは、SATAホストと、SATAターゲット・デバイスとの間のSTP接続を確立するように、また管理するように動作可能なSTP接続回路をさらに備える。
【0008】
本発明の別の態様は、SATAホストと、1つまたは複数のSATAターゲット・デバイスと、SATAホストをその1つまたは複数のSATAターゲット・デバイスと結合するSASスイッチ型ファブリックとを備えるシステムを提供する。SASスイッチ型ファブリックは、SATAホストに結合される第1の物理的リンク(PHY)を有する少なくとも第1のSASエキスパンダを備える。第1のSASエキスパンダは、SATAホストと、1つまたは複数のSATAターゲット・デバイスのそれぞれとの間のSTP接続を確立するように、また管理するように動作可能なSTP接続回路を備える。
【0009】
本発明のさらに別の態様は、拡張されたSASエキスパンダにおいて動作可能な方法を提供する。エキスパンダは、拡張されたSASエキスパンダの第1の物理的リンク(PHY)を通してSATAホストと結合される。拡張されたSASエキスパンダは、物理的リンク(PHY−また0個以上の他のエキスパンダのPHYを通して)を通してSATAターゲット・デバイスと結合される。本方法は、SATAホストから第1のフレーム情報構造(Frame Information Structure)(FIS)を受信することを備える。FISは、SATAターゲット・デバイスを対象としている。本方法は、第1のFISの受信に応じてSATAトンネリング・プロトコル(STP)を使用してSATAターゲット・デバイスに対するSAS接続をオープンにすること(opening)、およびオープンにされたSAS接続を通して第1のFISをSATAターゲット・デバイスへと送信することをさらに備える。
【図面の簡単な説明】
【0010】
【
図1】本発明の特徴および態様に従ってSATAホストと直接に結合するための拡張されたSASエキスパンダを備える例示のストレージ・システムのブロック図である。
【
図2】本発明の特徴および態様に従って請求項1の拡張されたSASエキスパンダのSATA/STP接続回路の例示の追加の詳細を提供するブロック図である。
【
図3】本発明の特徴および態様に従って、拡張されたSASエキスパンダを通してSATAホストをSASファブリックに直接に結合するための例示の方法を説明するフローチャートである。
【
図4】本発明の特徴および態様に従って、拡張されたSASエキスパンダを通してSATAホストをSASファブリックに直接に結合するための例示の方法を説明するフローチャートである。
【
図5】本発明の特徴および態様に従って、拡張されたSASエキスパンダを通してSATAホストをSASファブリックに直接に結合するための例示の方法を説明するフローチャートである。
【発明を実施するための形態】
【0011】
図1は、少なくとも拡張されたSASエキスパンダ108を備えるSASスイッチ型ファブリックを含む例示のシステム100のブロック図である。エキスパンダ108は、1つまたは複数のSATAホスト102.1および102.2(すなわち、SATAプロトコルを使用して動作するSATAイニシエータ)と結合される。各SATAホスト102.1および102.2は、SATA通信経路150.1および150.2をそれぞれ通して対応する物理的リンク(PHY)110.1および110.2をそれぞれ通してエキスパンダ108と直接に結合される。エキスパンダ108は、1つまたは複数のSATAターゲット・デバイス104.1および104.2に結合される。1つまたは複数のSATAターゲット・デバイス(104.1および104.2)は、エキスパンダ108の1つまたは複数のPHY114.1および114.2と通信経路156.1および156.2をそれぞれ経由してエキスパンダ108と結合されることが可能である。ファブリック160は、0個以上の他のエキスパンダ106を備えることができる。ファブリック(例えば、108または106)のうちの何らかのSASエキスパンダは、各SATAターゲット・デバイス(104.1および104.2)と直接に結合される。例えば、SATAターゲット・デバイス104.1は、SATA通信経路158.1を経由してファブリック160の他のエキスパンダ106と結合され、またターゲット・デバイス104.2は、SATA通信経路158.2を経由してファブリック160の拡張されたエキスパンダ108と直接に結合される。
【0012】
当業者は、任意の数のSATAターゲット・デバイスが、拡張されたエキスパンダ108と結合されることが可能であること、およびファブリック160が、適切な任意の数のSASエキスパンダ(少なくとも拡張されたエキスパンダ108を含む)を備えることができることを簡単に認識するであろう。さらに、任意の数のSATAホストは、それぞれエキスパンダ108の対応するPHYを通してエキスパンダ108と直接に結合されることが可能である。
【0013】
エキスパンダ108は、SATAトンネリング・プロトコル(STP)を利用してSATAターゲット・デバイス104.1および104.2との接続を確立し、またそのようなSTP接続を確立した後に、SATAホスト(102)と、SATAターゲット・デバイス(104)との間でSASファブリック160を通してSATA情報を交換する。ファブリック160の拡張されたエキスパンダ108と、他のエキスパンダ106とは、STPプロトコルを使用してSAS/STP接続を確立して望ましい接続を確立する。当業者は、拡張されたSASエキスパンダ108が、SATAターゲット・デバイス(例えば、104.2)と直接に結合される場合に、エキスパンダ108が、同様にその内部のSTPプロトコル・ロジックを利用して、望ましいオープンな接続を確立することができ、またはロジックのいくつかのSASレイヤをバイパスし、また接続が、拡張されたエキスパンダの内部のカスタマイズされたロジックによって確立され得ることを決定することができることを認識するであろう。
【0014】
本発明の特徴および態様に従って、SATAホスト102.1および102.2は、拡張されたSASエキスパンダ108と直接に結合される。SATA/STP接続回路112は、SATAについての接続を確立するように動作可能である。そのような接続が確立されて、標準のSATAプロトコルを使用して、SASスイッチ型ファブリック160を通してSATAホスト102と、SATAターゲット・デバイス104との間で情報を交換する。SATAプロトコルは、SASプロトコルと違って、SASファブリック160を通してSATAホストと、SATAターゲットとの間の論理的接続を特にオープンにし、クローズにする(close)ようにプロトコル交換を定義してはいない。それゆえに、動作中に、接続回路112は、直接に結合されたSATAホスト102.1または102.2からの第1のフレーム情報構造(FIS)の受信に応じてエキスパンダ108と、1つまたは複数のSATAターゲット・デバイス104.1および104.2のうちのどちらかとの間でファブリック160を通してSAS(STP)接続をオープンにする。ひとたびSAS(STP)接続が、接続回路112のオペレーションによってオープンにされた後に、受信された第1のFISは、識別されたSATAターゲット・デバイス(第1の受信されたFISのフィールドによって識別される)に対して転送されることになる。直接に結合されたSATAホスト102.1または102.2から受信される後続のSATA FISまたはSATAプリミティブ(SATA primitives)はまた、標準のSATAプロトコルを使用して回路112によりファブリック160を通して、識別されたSATAターゲット・デバイスに対して送信され/転送される。
【0015】
SATAプロトコルが、接続の明示的なクローズすることを提供しないので、接続回路112は、さらなる情報が、以前にオープンにされたSAS接続を通してSATAホストと、SATAターゲット・デバイスとの間で交換されないアイドル期間を測定するタイマーを維持することができる。タイマーのあらかじめ決定されたタイムアウトの期限切れのすぐ後に、接続回路112は、SAS(STP)接続が、クローズするように強制することができ、このようにして、他の接続がオープンにされるようにエキスパンダ108(およびファブリック160)のリソースを自由にする。
【0016】
いくつかの交換を処理する際に、SATAホストは、識別されたSATAターゲット・デバイスに対する要求(読取り要求など)を開始し、また次いで、識別されたSATAターゲット・デバイスから要求されたデータの受信を待つことができる。そのような場合には、あらかじめ決定されたタイムアウト期間の期限切れの後に、接続回路112は、以前にオープンにされたSAS(STP)接続をクローズにする。要求されたデータを供給するSATAターゲット・デバイスが、そのようなデータを戻す準備ができると、接続回路112は、ターゲット・デバイスからSATA情報を受信することになり、また拡張されたエキスパンダ108と直接に結合される要求しているSATAホストとの以前にクローズにされたSAS(STP)接続を再びオープンにすることになる。SAS(STP)接続を再びオープンにするために、拡張されたエキスパンダ108は、必要なSAS オープン_受入れ(SAS OPEN_ACCEPT)プリミティブをSASファブリック160へと戻す(SATAホスト102は、そのようなSASプロトコル・ロジックを提供しないので)。ひとたびクローズにされたSAS接続が、再びオープンにされた後に、SATAターゲット・デバイスから戻されるデータは、次いで、1つまたは複数の対応するFISとして、ファブリック160を通してSATAホストへと転送されることになる。
【0017】
拡張されたSASエキスパンダ108のオペレーションのさらなる詳細は、他の図を参照して本明細書において以下で考察される。当業者は、エキスパンダ108の拡張された特徴が、各SATAホスト102と、SASファブリック160との間に結合される別個のデバイスとして実装され得ることを認識するであろう。そのような別個のデバイスは、例えば、拡張された特徴を提供する、各SATAホスト102と結合される「ドーター・ボード(daughter board)」として設計されることが可能である。そのような別個のデバイスは、実際に、2つのポート−SASTホストと直接に結合するための第1のポート/PHYと、SASファブリックの残りと結合するための第2のポート/PHY−だけを有する特殊化されたSASエキスパンダとして実装されることが可能である。さらに当業者は、SATA/STP接続回路112が、拡張されたSASエキスパンダの他の機能的回路と一体化されたロジック回路として実装され得ること、またはエキスパンダを有する別個の回路として実装され得ることを認識するであろう。これらおよび他の設計の選択は、当業者には簡単に明らかになるであろう。非常に多くの追加の、また同等な要素は、拡張されたSASエキスパンダ108など完全な機能的なエキスパンダの中に存在することができる。そのような追加の、また同等な要素は、当業者によく知られており、またこの考察を簡単にまた簡潔にするために、本明細書において省略される。
【0018】
図2は、例示の一実施形態による、接続回路112の構造の例示の追加の詳細を提供するブロック図である。回路112は、リンク・レイヤ接続(および/またはSASプロトコルとSATAプロトコルという他のより高いレイヤのプロトコル)を実装するための拡張されたエキスパンダのロジック回路と強固に、または緩くのいずれかで統合されるロジック回路を備えることができる。接続回路112は、SASエキスパンダの適切なPHY(すなわち、
図1のエキスパンダ108のPHY110)を通してSATAホスト・デバイスと直接にインターフェースするための適切な任意のロジック/回路を表すSATAプロトコル・ロジック200を備えることができる。いくつかの例示の実施形態において、ロジック200は、対応するPHYのロジックと一体化されることが可能である。一般に、ロジック200は、経路152の上でSATAプロトコルを使用してアタッチされたSATAイニシエータと相互作用するように任意の処理を実行することができる。STPロジック210は、直接にアタッチされたSATAターゲット・デバイス、またはSASスイッチ型ファブリックの1つまたは複数の他のSASエキスパンダのいずれかとの接続を確立するための適切な任意のロジック/回路を表す。いくつかの例示の実施形態においては、ロジック210は、対応するPHYのロジックと一体化されることが可能である。一般に、ロジック210は、SAS/STPプロトコルを使用してオープンな接続を確立するように動作可能である(SATAターゲット・デバイスと経路154を経由して、またはSASファブリックの1つまたは複数の他のSASエキスパンダを通して結合されるSATAターゲット・デバイスと経路154を経由してのいずれかで直接に結合されて)。SATA/STP接続ロジック206は、拡張されたエキスパンダと直接に結合されるSATAホストのために、ロジック210と協調してSAS(STP)接続をオープンにし、またクローズにするための適切な任意のロジック/回路を表す。ひとたびSAS(STP)接続が、確立された後に、SATAプロトコル・ロジック200を通してSATAホストから受信されるSATA情報は、(破線の矢印によって示されるように)それに結合されるSASスイッチ型ファブリックを通して識別されたSATAターゲット・デバイスへと転送される。SASスイッチ型ファブリックを通してSATAターゲット・デバイスから受信される情報は、同様な方法で、(やはり破線の矢印によって示されるように)SATAプロトコルを使用してロジック200を通してSATAホストへと転送される。以前にオープンにされた接続が、(すなわち、アイドル期間タイムアウトまでに)クローズにされるときに、SATA情報は、もはや転送されないが、むしろクローズにされた接続について再びオープンにすることを引き起こす可能性がある。
【0019】
ロジック200を通してのSATAホストからの第1のSATA FISの受信に応答して、ルーティング情報ロジック202は、マッピング・メモリ208の中の情報にアクセスして、識別されたSATAターゲットの宛先に到達すべき適切なルートをSASファブリックを通して決定する。ロジック202はまた、マッピング・メモリ208の中に位置している許可情報が、要求しているSATAホストが識別されたSATAターゲット・デバイスにアクセスする許可を有することを示すかどうかを決定することもできる。ロジック202が、アクセスが拒否されることを決定する場合、FISの適切な拒絶が、ロジック200を通して要求しているSATAホストに戻される。ロジック202が、要求されたアクセスが、許可されることを決定する場合、マッピング・メモリ208の中のルーティング情報は、STPを使用して、SATAホストからの情報をSASファブリック(少なくとも拡張されたエキスパンダを含む)を通して、識別されたSATAターゲット・デバイスへと方向づけるための適切なSASルートを識別する。ルーティング情報は、SATAホストと、SATAターゲット・デバイスとの間のSATA情報の交換を可能にするように適切な接続をオープンにする際に、接続ロジック206によって利用されることが可能である。
【0020】
当業者は、完全に動作可能な接続回路112の中に存在する可能性のある非常に多数の追加の同等な要素を簡単に認識するであろう。そのような追加の同等な要素は、この考察を簡単に、また簡潔にするために本明細書においては省略される。さらに、回路112はロジック回路として示され、また説明されているが、回路112の機能の一部または全部は、拡張されたSASエキスパンダ108の汎用または専用のコンピュータによって実行される適切にプログラムされた命令として同等に実装されることも可能である。
【0021】
図3は、本発明の特徴および態様による、拡張されたSASエキスパンダの内部で動作可能な例示の一方法を説明するフローチャートである。
図3の方法は、例えば、
図1および2に関して上記に説明される拡張されたSASエキスパンダの中で動作可能とすることができる。当業者は、
図3の方法ステップが、拡張されたSASエキスパンダの内部の適切な任意のロジック回路によって実行され得ることを認識するであろう。それゆえに、
図1または2の特定のロジック・コンポーネントの上で、または内部で動作可能であるとして
図3のステップについて以下で説明することは、単に1つの可能性のある、例示の実施形態を教示するように意図される。
図3のステップは、他の設計の選択が、別の方法で様々な機能を分解する場合に、拡張されたSASエキスパンダの他のロジック回路および/またはプログラムされた命令によって実行されることが可能である。
【0022】
ステップ300において、拡張されたエキスパンダは、直接にアタッチされたSATAホストから第1のFISを受信する。例えば、
図1および2のSATA/STP接続回路112、またはより詳細には回路112のSATAプロトコル・ロジック200は、直接にアタッチされたSATAホストからFISを受信することができる。FISが、現在存在していない接続についての第1の受信されたFISであることを認識して、ステップ302は、次に、識別されたSATAターゲット・デバイスに対するSAS(STP)接続をオープンにする。例えば、
図1および2の回路112、またはより詳細には、
図2のロジック/メモリ回路200から210は、拡張されたエキスパンダを通して望ましい接続のための適切なルートを決定するように、また適切なオープン・アドレス・フレーム(Open Address Frame)(OAF)を送信することによってそのように決定されるルートについオープンにすることを要求するように協力する。接続は、SATAホストと、SATAターゲット・デバイスとの両方が、それに直接に結合される場合のコンフィギュレーションの中の拡張されたSASエキスパンダの内部で完全に確立されることが可能であり、またはやはりSASファブリックを備える、任意の数の介在する他のSASエキスパンダを通して確立されることが可能である。SATAホストと、SATAターゲット・デバイスとの両方が、拡張されたSASエキスパンダと直接に結合される場合に、OAFの生成および伝送は、任意の伝送媒体を通してSAS OAFを方向づけようと試みることなしに同じ機能を実行するように、内部ロジックを支持してバイパスされることが可能である。望ましいSASのオープンな接続の正常な完了を待ちながら、拡張されたSASエキスパンダは、接続が確立されるまでSATAホストからのさらなる伝送を遅延させるSATAホールド・プリミティブ(SATA HOLD primitive)をSATAホストへと戻すことができる。例えば、ロジック206は、SATAホールド・プリミティブを生成し、またSATAホールド・プリミティブをロジック200および経路152を経由してSATAホストへと送信して戻すことができるが、ロジック206と、ロジック210とは、要求されたオープンな接続の受入れ(例えば、SATAのホストと、ターゲットとの両方がエキスパンダと直接に結合される場合の、SASドメインからのオープン_受入れ(OPEN_ACCEPT)、または拡張されたエキスパンダの内部ロジックからの同等な受入れについてのリターン)を待つように協力する。オープンな接続が確立されるべきSASターゲット・デバイスは、SAS接続についてオープンにすることを許可する適切なSASルーティング/アドレス指定の情報を決定するために使用される、FISの内部の情報によって識別されることが可能である。次いでステップ304は、オープンにされたSAS(STP)接続の上で、SATAの第1のFISをSATAターゲット・デバイスに対して(例えば、SASファブリックの、もしあれば他のSASエキスパンダを通して)送信する。例えば、いったんロジック206が、要求されたオープンな接続(STP接続)が確立されていることを決定すると、ロジック200は、破線によって示されるように標準のSAS伝送を使用して(すなわち、SASファブリックを通して確立される(または、拡張されたSASエキスパンダの内部でその他の形で確立される)「トンネル(tunnel)」STP接続を使用して)SATAホストから受信される第1のFISを識別されたSATAターゲット・デバイスへと転送することができる。
【0023】
図4は、本発明の特徴および態様による、SATAホストと、拡張されたSASエキスパンダとの間の直接通信のための別の例示の方法を説明するフローチャートである。
図4の方法は、例えば、
図1および2に説明される拡張されたSASエキスパンダなど、拡張されたSASエキスパンダの中で動作可能とすることができる。当業者は、(
図3の方法ステップと同様な)
図4の方法ステップは、拡張されたSASエキスパンダの内部の適切な任意のロジック回路によって実行され得ることを認識するであろう。それゆえに、
図1または2の特定のロジック・コンポーネントの上で、または内部で動作可能なような
図4のステップについて以下で説明することは、単に1つの可能性のある、例示の実施形態を教示するだけのように意図される。
図4のステップは、他の設計の選択が、別の方法で様々な機能を分解する場合の、拡張されたSASエキスパンダの他のロジック回路および/またはプログラムされた命令によって実行されることが可能である。
【0024】
図4の方法は、
図3において説明される方法に類似しているが、本方法の特定の例示の一実施形態についての追加の例示の詳細を提供するものである。ステップ400において、拡張されたSASエキスパンダは、最初に、SATAホストと、拡張されたSASエキスパンダの対応するPHYとの間で直接にSATA接続を確立する。例えば、
図2のロジック206および200は、通信についての適切な速度などを決定するように協力することができる。そのようなSATA接続の確立は、最初にSATAホストの存在を(例えば、SAS「発見」プロセスを通して)発見するための、また標準のSATA通信技法を使用して、それらの間の通信のための適切な相互にサポートされる速度をネゴシエートして、SASエキスパンダのPHYと直接に結合するためのSASプロトコルと、SATAプロトコルとの両方についてのよく知られている特徴を備えることができる。とりわけ、SATAトンネリング・プロトコル処理の一部分として、拡張されたSASエキスパンダは、SASファブリックに結合される各SATAターゲット・デバイスから「初期のFIS」を受信する。直接に結合されたSATAホストは、拡張されたSASエキスパンダから何らかの初期のFISを受信する必要がある。したがって、拡張されたSASエキスパンダ(例えば、拡張されたSASエキスパンダの内部の他の標準ロジックと組み合わされた
図2のロジック206およびロジック210)は、(例えば、SATAポート乗算器の存在を示す)初期のFISを生成し、また生成された初期のFISを直接に結合されたSATAホストへと送信することができる。別の例示の実施形態においては、拡張されたSASエキスパンダは、SATAターゲット・デバイスのうちの1つから受信される初期のFISのうちの1つをSATAホストに対して簡単に転送することができる。ステップ400の処理は、エキスパンダをリセットするように、または全体のSASドメインを再構成するように、拡張されたSASエキスパンダの(またはその基礎にあるシステムの)「1日の開始」の初期化の一態様として、あるいは様々な場合において実行されることが可能である。
【0025】
ステップ402において、拡張されたSASエキスパンダは、識別されたSATAターゲット・デバイスを目的地とする直接にアタッチされたSATAホストから、またはターゲットに以前に接続されたSATAホストへと戻されるべきSATAターゲット・デバイスからFISを受信する。例えば、
図2のロジック200は、経路152を経由してアタッチされたSATAホストからそのような第1のFISを受信することができる。このFISは、SATAのホストと、ターゲット・デバイスとの間のSASファブリックを通してのオープンな現在の接続が存在しない間に、受信される。FISが、SATAホストから受信されるときに、FISは、FISが方向づけられる特定のSATAターゲット・デバイスを識別するSATAプロトコルに従うアドレス指定情報を含んでいる。SATAターゲット・デバイスから受信される(例えば、ターゲットと以前に接続されたSATAホストに戻されるべきデータを読み取る)ときに、拡張されたエキスパンダの内部の記憶された情報は、以前に情報を戻すようにターゲットに要求しているSATAホストを示すことができる。ステップ404(例えば、
図2のロジック202と使用するメモリ208と)は、拡張されたSASエキスパンダのメモリに記憶されるマッピング/許可テーブルの中の対応するエントリの所在を見出す。見出されたエントリは、直接にアタッチされたSATAホストと、SATAターゲット・デバイスとに関連づけられる。FISが、SATAホストから受信される場合に、見出されたエントリは、直接にアタッチされたSATAホストが、識別されたSATAターゲット・デバイスに対するアクセスを許可されるかどうかを示す許可情報を含んでいる。見出されたエントリはまた、(STPを使用するSASファブリックを通しての対応するSTP情報のような)識別されたSATAターゲット・デバイスに対するSATA情報の伝送のための特定のSASアドレスと関連するルートとを識別するルーティング情報を含んでいる。受信されたFISが、SATAターゲット・デバイスからの戻されたデータである場合に、見出されたエントリは、SATAホストが、ターゲット・デバイスからの情報のリターンを要求したように以前に接続されたSATAターゲット・デバイスとSATAホストとを識別するエントリとすることができる。
【0026】
FISがSATAホストからのものである場合、ステップ406は、見出されたエントリが、そのアクセスがこのSATAホストによって識別されたSATAターゲット・デバイスに対して(メモリ208の中の情報を使用して
図2のロジック202によって決定されるように)許可されることを示すかどうかを決定する。FISが、SATAターゲット・デバイスから受信される場合、許可は、SATAホストが、(すなわち、ターゲット・デバイスとの通信を開始するSATAホストからの初期の/第1のFISの受信によって暗に示されるように)以前に要求しており、またターゲット・デバイスにアクセスする許可を認可された理由のためであることが仮定されることが可能である。許可が許可されない場合に、ステップ408は、(例えば、
図2のロジック200、202、および206のオペレーションにより)要求しているSATAホストに対して適切なステータス・インジケータを戻すことにより、受信されたSATA FISを拒絶する。
【0027】
SATAホストによる、識別されたSATAターゲット・デバイスに対するアクセスが、許可される場合、ステップ410は、位置が見出されたマッピング・テーブル・エントリによって決定されるように、SASルートを通してSATAホストと、識別されたSATAターゲット・デバイスとの間のSAS(STP)接続をオープンにする(または再びオープンにする)。例えば、ロジック206および210は、識別されたSATAターゲット・デバイスに対するSTP接続をオープンにするように(または再びオープンにするように)協力することができる。オープンな接続は、SASファブリックの1つまたは複数のSASエキスパンダを通して方向づけられる標準のSAS(STP)プロトコル(例えば、オープン・アドレス・フレーム−OAF)を利用して確立される。上記で指摘されるように、設計選択の問題として、拡張されたエキスパンダが、SATAホストと、SATAターゲットとの両方と直接に結合される場合には、SAS接続についてオープンにすることは、SAS(STP)のオープンな接続の交換を生成すること、および処理することと完全に準拠するのではなくて、エキスパンダの内部のカスタム・ロジック(例えば、
図2のロジック206)によって実行されることが可能である。SATAホストからの第1のFISの受信によって開始される望ましいSASのオープンな接続の正常な完了を待ちながら、拡張されたSASエキスパンダ(例えば、
図2のロジック206からロジック200)は、接続が確立されるまで、SATAホストからのさらなる伝送を遅延させるようにSATAホストに対してSATAホールド・プリミティブを戻すことができる。ステップ414において、受信されたFISは、SASファブリックを通してSATAターゲット・デバイス(またはターゲット・デバイスから受信される場合のSATAホスト)へと転送される。例えば、ロジック200は、SATAホストのために、破線の矢印によって示されるように経路154を経由して、識別されたSATAターゲット・デバイスと直接に通信することができる。
【0028】
次いで、ステップ416および418は、(例えば、
図2のロジック200および206によって実質的に並列に)SASスイッチ型ファブリックを通してオープンにされたSAS(STP)接続の上で、SATAホストと、SATAターゲット・デバイスとの間で情報を交換することを継続するように動作可能である。ステップ418は、オープンにされたSAS(STP)接続を通して、SATAホストと、識別されたSATAターゲット・デバイスとの間で情報を交換するアクティビティが、その間に起こっていないあらかじめ決定されたタイムアウトしきい値が超過されているかどうかを決定する。SATAプロトコルは、接続を明示的にオープンにするための、かつ/または明示的にクローズにするためのメカニズムを提供しないので、あらかじめ決定されたタイムアウト期間を利用して、アイドル状態のときに、オープンな接続の閉鎖を強制することができ、それによって他の接続を許可するために、拡張されたSASエキスパンダの内部のリソース(およびより一般的にはSASファブリックのリソース)を解放している。ステップ418が、あらかじめ決定されたしきい値期間が、期限切れしていることを決定するときに、ステップ420は、拡張されたSASエキスパンダおよびSASファブリックを通して、SATAホストと、SATAターゲット・デバイスとの間の以前にオープンにされた接続をクローズにする。別のFISが、アドレス指定されるSATAホストから識別されたSATAターゲット・デバイス(同じまたは別のターゲット・デバイス)へと受信されるときに、あるいはSATAターゲット・デバイスが、要求しているSATAホストに対して要求された情報を戻す準備ができているときに、本方法は、ステップ402(ラベル「A」)において開始して再び反復されることが可能である。
【0029】
図5は、オープンな接続の上での情報の交換を継続する、
図4のステップ416の処理の例示の追加の詳細を説明するフローチャートである。ステップ500において、SATAのFISまたはプリミティブは、ターゲットのためにバインドされるホストから、またはホストのためにバインドされるSATAターゲットから受信される。ステップ502において、接続は、それが(例えば、タイムアウトまたは他の状態に起因して)以前にクローズにされている場合に、再びオープンにされる。次いで、ステップ504は、依然としてオープンな接続(または今や再びオープンにされた接続)の上で、受信された情報をその意図された宛先へと転送する。次いで、ステップ520は、SATAデバイスの間の非アクティビティに起因してオープンな/再びオープンにされた接続を自動的にクローズにするために使用される「非アクティビティ」タイマー(上記で論じられる)をリセットする。ステップ416の処理は、基本的に、(
図4において上記で論じられるように)タイムアウトが、接続の閉鎖を強制するように起こるまで、続く。
【0030】
当業者は、
図3から5の方法など、完全に機能的な方法の内部の非常に多数の追加のステップおよび同等のステップを簡単に認識するであろう。そのような追加のステップおよび同等のステップは、この考察を簡単に、また簡潔にするために本明細書において省略される。
【0031】
本発明は、図面と上記の説明とにおいて示され、また説明されているが、そのような例証および説明は、例示的なものであり、その特性が限定的でないものとして考えられるべきである。本発明の一実施形態と、その小さな変形とが、示され、また説明されてきている。特に、例示のソフトウェアまたはファームウェアの実施形態として示され、また説明される特徴は、等価的に、カスタマイズされたロジック回路として実装されることが可能であり、また逆もまた同様である。本発明の精神に含まれるすべての変更および修正についての保護が、望ましい。当業者は、本発明の範囲に含まれる上記に説明される実施形態の変形を理解するであろう。結果として、本発明は、上記で論じられる特定の例および例証だけには限定されないが、添付の特許請求の範囲とそれらの均等物とによって限定されるにすぎないものである。