(57)【要約】【課題】シリアルアタッチドＳＣＳＩエキスパンダネットワークのトポロジサイズを増大すること、ならびにそのシステムトポロジに関するアドレス位置を格納するために使用される、コンテンツアドレス指定可能メモリ内のエントリーを限定することを可能にする技法を提供する。【解決手段】一方法によれば、ルックアップテーブルエントリーを削減するために、アドレスがそのＯＡＦ要求内に提供される。もう１つの実施形態によれば、アドレス範囲が前記ルックアップテーブル内に提供される。加えて、最近最も使用されたアドレスだけがそのルックアップテーブル内に格納されるように、ソフトウェア探索プロセスが使用され得るか、またはハードウェアプロセスが使用され得るように、仮想メモリ技法が使用される。【選択図】図１
2012141943.tif 000002
【特許請求の範囲】
【請求項１】
データに関するオープンアドレスフレーム要求に応答して、ルーティングアドレスを提供するために、シリアルアタッチドＳＣＳＩストレージシステム内で使用されるエキスパンダのルックアップテーブル内のエントリーの数を削減する方法であって、
発信源エキスパンダ識別情報と、
発信源物理アドレス情報と、
宛先エキスパンダ識別情報と、
宛先物理アドレス情報とを含むルーティング情報を、前記オープンアドレスフレーム要求内に提供し、
イニシエータとターゲットとの間でデータを経路指定するために、前記ルックアップテーブル内の前記ルーティング情報を使用する、ことを含む方法。
【請求項２】
前記発信源エキスパンダ識別情報が発信源エキスパンダ物理アドレスを含む、請求項１に記載の方法。
【請求項３】
前記宛先エキスパンダ識別情報が宛先エキスパンダ物理アドレスを含む、請求項２に記載の方法。
【請求項４】
イニシエータとターゲットとの間でデータを経路指定するために、前記ルックアップテーブル内の前記ルーティング情報を使用する前記プロセスが、
イニシエータとターゲットとの間でデータを経路指定するために、コンテンツアドレス指定可能メモリルックアップテーブル内のルーティング情報を使用することを含む、請求項３に記載の方法。
【請求項５】
ルーティング情報をオープンアドレスフレーム要求内に提供する前記プロセスが、
ルーティング情報を前記オープンアドレスフレーム要求のより互換性のある特徴フィールド内に提供することを含む、請求項１に記載の方法。
【請求項６】
データに関するオープンアドレスフレーム要求に応答して、ルーティングアドレスを提供するために、シリアルアタッチドＳＣＳＩストレージシステム内で使用されるエキスパンダのルックアップテーブル内のエントリーの数を削減する方法であって、
発信源エキスパンダアドレス情報と、
宛先エキスパンダアドレス情報と、を含むルーティング情報を前記オープンアドレスフレーム要求内に提供し、
イニシエータとターゲットとの間でデータを経路指定するために、前記ルックアップテーブル内の前記ルーティング情報を使用する、ことを含む方法。
【請求項７】
前記発信源エキスパンダアドレス情報が、発信源エキスパンダ物理アドレスを含む、請求項６に記載の方法。
【請求項８】
前記宛先エキスパンダ情報が、宛先エキスパンダ物理アドレスを含む、請求項７に記載の方法。
【請求項９】
イニシエータとターゲットとの間でデータを経路指定するために、前記ルックアップテーブル内の前記ルーティング情報を使用する前記プロセスが、
イニシエータとターゲットとの間でデータを経路指定するために、コンテンツアドレス指定可能メモリルックアップテーブル内のルーティング情報を使用する、ことを含む請求項８に記載の方法。
【請求項１０】
ルーティング情報をオープンアドレスフレーム要求内に提供する前記プロセスが、
ルーティング情報を前記オープンアドレスフレーム要求のより互換性のある特徴フィールド内に提供することを含む、請求項６に記載の方法。
【請求項１１】
データに関するオープンアドレスフレーム要求に応答して、ルーティングアドレスを提供するために、所与のトポロジを有するシリアルアタッチドＳＣＳＩストレージシステム内で使用されるエキスパンダのルックアップテーブル内のエントリーの数を削減するプロセスであって、
前記ストレージシステムの前記トポロジ内に存在するデバイスの物理アドレスに関するアドレス範囲を生成し、
前記アドレス範囲をルックアップテーブル内に格納し、
前記オープンアドレスフレーム要求の前記アドレスのアドレス範囲情報を決定するために、前記オープンアドレスフレーム要求のアドレスを検査し、
前記デバイスに経路指定するための物理層指標を取り出すために、前記オープンアドレスフレーム要求の前記アドレスの前記アドレス範囲情報を使用する、ことを含むプロセス。
【請求項１２】
前記アドレス範囲をルックアップテーブル内に格納する前記プロセスが、
前記アドレス範囲を３値コンテンツアドレス指定可能メモリ内に格納することを含む、請求項１１に記載のプロセス。
【請求項１３】
前記アドレス範囲を生成するために、前記エキスパンダ内でプロセスを使用することをさらに含む、請求項１２に記載のプロセス。
【請求項１４】
データに関するオープンアドレスフレーム要求に応答して、ルーティングアドレスを提供するために、所与のトポロジを有するシリアルアタッチドＳＣＳＩストレージシステム内で使用されるエキスパンダのルックアップテーブル内のエントリーの数を削減する方法であって、
前記ストレージシステムの前記トポロジに関する前記ルーティングアドレスを取得するために発見ルーチンを実行し、
前記ルーティングアドレスを追加のＲＡＭ内に格納し、
最近最も使用された前記ルーティングアドレスを用いてルックアップテーブルを設定し、
前記オープンアドレスフレーム要求を読み取り、
前記オープンアドレスフレーム要求内に含まれたアドレス情報を前記ルックアップテーブル内に格納された前記ルーティングアドレスと比較し、
前記ルックアップテーブル内に格納された前記ルーティングアドレスが前記オープンアドレスフレーム要求内に含まれた前記アドレス情報と整合するときには、前記オープンアドレスフレーム要求を経路指定するために、前記ルーティングアドレスを提供し、
前記ルックアップテーブル内に格納された前記ルーティングアドレスが前記オープンアドレスフレーム要求内に含まれた前記アドレス情報と整合しないときには、前記追加のＲＡＭにアクセスし、
前記オープンアドレスフレーム要求内に含まれた前記アドレス情報を前記追加のＲＡＭ内に格納された前記ルーティングアドレスと比較し、
前記追加のＲＡＭ内に格納された前記ルーティングアドレスが前記オープンアドレスフレーム要求内に含まれた前記アドレス情報と整合するときには、前記オープンアドレスフレーム要求を経路指定するために、前記ルーティングアドレスを提供する、ことを含む方法。
【請求項１５】
前記追加のＲＡＭ内に格納された前記ルーティングアドレスが前記オープンアドレスフレーム要求内に含まれた前記アドレス情報と整合するときには、前記ルーティングアドレスを提供する前記プロセスが、
前記ルックアップテーブル内で最近最も使用されなかったエントリーを決定し、
前記ルックアップテーブル内の前記最近最も使用されなかったエントリーを除去し、
前記ルーティングアドレスを前記ルックアップテーブル内に格納し、
前記ルーティングアドレスを前記ルックアップテーブル内に格納した後で、前記オープンアドレスフレーム要求内に含まれたアドレス情報を前記ルックアップテーブル内に格納された前記ルーティングアドレスと比較する、ことをさらに含む請求項１４に記載の方法。
【請求項１６】
最近最も使用された前記ルーティングアドレスを用いて、ルックアップテーブルを設定する前記プロセスが、
最近最も使用された前記ルーティングアドレスを用いて、コンテンツアドレス指定可能メモリを設定することを含む、請求項１４に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
シリアルアタッチドＳＣＳＩ（ＳＡＳ）は、ハードドライブおよびテープドライブなど、コンピュータストレージデバイス間でデータを移動させるために使用されるコンピュータバスである。ＳＡＳは、二地点間シリアルプロトコルに依存する。典型的なシリアルアタッチドＳＣＳＩシステムは、サービスを発生させて、ターゲットデバイスによる処理を要求し、ターゲットデバイスからこれらの要求に対する応答を受信するデバイスであるイニシエータを含む。イニシエータは、コントローラまたはホストデバイスを備え得る。ターゲットは、処理に関するデバイスサービスおよびタスク管理要求を受信して、同じ要求に関する応答をイニシエータデバイスに送信する、論理ユニットとターゲットポートとを含むデバイスである。ターゲットデバイスは、ハードディスクまたはディスクアレイを備え得る。エキスパンダは、ＳＡＳデバイス間の通信を円滑にして、複数のＳＡＳ終端デバイスの接続を円滑にするデバイスである。
【発明の概要】
【課題を解決するための手段】
【０００２】
本発明の一実施形態は、したがって、データに関するオープンアドレスフレーム要求に応答して、ルーティングアドレスを提供するために、シリアルアタッチドＳＣＳＩストレージシステム内で使用されるエキスパンダのルックアップテーブル内のエントリーの数を削減する方法であって、発信源エキスパンダ識別情報と、発信源物理アドレス情報と、宛先エキスパンダ識別情報と、宛先物理アドレス情報とを含むルーティング情報をオープンアドレス要求内に提供することと、イニシエータとターゲットとの間でデータを経路指定するために、ルックアップテーブル内のルーティング情報を使用することとを含む方法を含み得る。
【０００３】
本発明の一実施形態は、データに関するオープンアドレスフレーム要求に応答して、ルーティングアドレスを提供するために、シリアルアタッチドＳＣＳＩストレージシステム内で使用されるエキスパンダのルックアップテーブル内のエントリーの数を削減する方法であって、発信源エキスパンダアドレス情報と、宛先エキスパンダアドレス情報とを含むルーティング情報をオープンアドレスフレーム要求内に提供することと、イニシエータとターゲットとの間でデータを経路指定するために、ルックアップテーブル内のルーティング情報を使用することとを含む方法をさらに含み得る。
【０００４】
本発明の一実施形態は、データに関するオープンアドレスフレーム要求に応答して、ルーティングアドレスを提供するために、所与のトポロジを有するシリアルアタッチドＳＣＳＩストレージシステム内で使用されるエキスパンダのルックアップテーブル内のエントリーの数を削減するプロセスであって、ストレージシステムのトポロジ内に存在するデバイスの物理アドレスに関するＳＡＳアドレス範囲を生成することと、それらのＳＡＳアドレス範囲をルックアップテーブル内に格納することと、オープンアドレスフレーム要求のアドレスのアドレス範囲情報を決定するために、オープンアドレスフレーム要求の宛先ＳＡＳアドレスを検査することと、デバイスに経路指定するための物理層指標を取り出すために、オープンアドレスフレーム要求のアドレスのアドレス範囲情報を使用することとを含むプロセスをさらに含み得る。
【０００５】
本発明の一実施形態は、データに関するオープンアドレスフレーム要求に応答して、ルーティングアドレスを提供するために、所与のトポロジを有するシリアルアタッチドＳＣＳＩストレージシステム内で使用されるエキスパンダのルックアップテーブル内のエントリーの数を削減する方法であって、ストレージシステムのトポロジに関するルーティングアドレスを取得するために、発見ルーチンを実行することと、それらのルーティングアドレスを追加のＲＡＭ内に格納することと、最近最も使用されたルーティングアドレスを用いてルックアップテーブルを設定することと、オープンアドレスフレーム要求を読み取ることと、そのオープンアドレスフレーム要求内に含まれたアドレス情報をルックアップテーブル内に格納されたルーティングアドレスと比較することと、ルックアップテーブル内に格納されたルーティングアドレスがそのオープンアドレスフレーム要求内に含まれたアドレス情報と整合するとき、そのオープンアドレスフレーム要求を経路指定するために、ルーティングアドレスを提供することと、ルックアップテーブル内に格納されたルーティングアドレスがそのオープンアドレスフレーム要求内に含まれたアドレス情報と整合しないとき、追加のＲＡＭにアクセスすることと、そのオープンアドレスフレーム要求内に含まれたアドレス情報を追加のＲＡＭ内に格納されたルーティングアドレスと比較することと、その追加のＲＡＭ内に格納されたルーティングアドレスがそのオープンアドレスフレーム要求内に含まれたアドレス情報と整合するとき、そのオープンアドレスフレーム要求を経路指定するために、ルーティングアドレスを提供することとを含む方法をさらに含み得る。
【図面の簡単な説明】
【０００６】
【図１】ストレージシステムのトポロジの一実施形態を例示する概略ブロック図である。
【図２】接続要求に関する一実施形態のワークフロー図である。
【図３】接続要求に対する応答の一実施形態のワークフロー図である。
【図４】表エントリーの一実施形態の例である。
【図５】ルックアップテーブルアドレス範囲を使用するためのプロセスの一実施形態の流れ図である。
【図６】アドレス範囲を提供するためのルックアップテーブルのブロック図である。
【図７】仮想探索プロセスを実行するための流れ図である。
【発明を実施するための形態】
【０００７】
図１は、ストレージシステム１００の例示的なトポロジの一実施形態を例示する概略ブロック図である。図１に示すように、イニシエータ１０２は、オープンアドレスフレーム、すなわちＯＡＦと呼ばれる要求コマンドを使用して、ターゲット１０８、１１０、１１４、１１６、１２０、１２４からのデータに関する要求を開始することが可能である。このＯＡＦは、発信源アドレス、すなわち、イニシエータ１０２のアドレス、ならびにターゲットのアドレスである宛先ＳＡＳアドレスを含む。エキスパンダ１０４は、ＯＡＦ要求を受信して、表１２６など、通常、コンテンツアドレス指定可能メモリ（ｃｏｎｔｅｎｔ  ａｄｄｒｅｓｓａｂｌｅ  ｍｅｍｏｒｙ：ＣＡＭ）である、ルックアップテーブルを参照する。表１２６は、ターゲットからのデータにアクセスするためのルーティングアドレスを提供する。エキスパンダ１０４は、まず、ターゲットがエキスパンダ１０４に直接的に接続されているかどうかを検査する。ターゲットがエキスパンダ１０４に直接的に取り付けられていない場合、エキスパンダ１０４は、ターゲットに対するルーティングデータを取得するために、表１２６を参照する。先行技術デバイスでは、表１２６は、それぞれの宛先ＳＡＳアドレスに関して１つのルーティングエントリーを含む。エキスパンダ１０４は、最高で２５６個までの異なるポートを有することが可能であり、エキスパンダ１０６、１１２、１１８、１２２のそれぞれは、それぞれ、最高で２５６個までのポートを有することが可能であるため、ルックアップテーブル１２６は多数のエントリーを有し得る。表１２６内に情報を格納する際のアクセス時間、ならびにコストは、先行技術技法の欠点を含む。エキスパンダの追加のレイヤが、それぞれ最高で２５６個までのポートを有し得るエキスパンダ１０６、１１２、１１８、１２２に接続される場合、これは表エントリーを急激に増大させる。表１２６内のエントリーの数を削減することは、エキスパンダ１０４の処理チップ上に配置される必要があるＣＡＭメモリの量に関する処理時間および費用を有利に減少することが可能である。
【０００８】
接続が要求されているＳＡＳポートのポート識別子を指定する宛先ＳＡＳアドレスと、イニシエータ１０２など、オープンアドレスフレームを発生させたＳＡＳポートのポート識別子を指定する発信源ＳＡＳアドレスフィールドとを含むエントリーを有するのではなく、むしろＯＡＦ「宛先ＳＡＳアドレス」フィールドが修正され得る。例えば、イニシエータ１０２からのＯＡＦ要求は、発信源エキスパンダＩＤ、発信源物理アドレスＩＤ、宛先エキスパンダＩＤ、および宛先ポートＩＤなどのルーティング情報を含み得る。例えば、ＯＡＦ要求は、下記のように提示され得る。
ＤｅｓｔｉｎａｔｉｏｎＳａｓＡｄｄｒ＝＝｛ＳｒｃＥｘｐＩＤ，ＳｒｃＰｈｙＩＤ，ＤｅｓｔＥｘｐＩＤ，ＤｅｓｔＰｈｙＩＤ｝＝＝｛［バイト１１．．．バイト１０］，［バイト９．．．バイト８］，［バイト７．．．バイト６］，［バイト５．．．バイト４］｝
【０００９】
この場合、ＳｒｃＥｘｐＩＤのフィールドは、発信源ポートが直接的に取り付けられたエキスパンダに割り当てられた指標の値を含む。この場合、この発信源はイニシエータ１０２であり、このエキスパンダはエキスパンダ１０４である。ＳｒｃＰｈｙＩＤのフィールドは、発信源ポート、すなわち、ポート１２８のうちの１つが直接的に取り付けられた物理アドレスの値を有する。フィールドＤｅｓｔＥｘｐＩＤは、宛先ポートが直接的に取り付けられたエキスパンダに割り当てられた指標の値を含む。例えば、宛先がターゲット１１４（ターゲット３２）である場合、このエキスパンダはエキスパンダ１１２である。フィールドＤｅｓｔＰｈｙＩＤは、宛先が取り付けられたポート、すなわち、ポート１４２の値を有する。
【００１０】
既存のＯＡＦ内には宛先アドレス指定のために割り当てられた６４ビットが存在するため、８ビットを有するバイトが８個だけ、アドレス指定のためにＯＡＦ内で使用される。上で示すように、これらのバイトは、バイト１１〜４として示される。
【００１１】
図２は、イニシエータ１０２からのデータ要求に関するワークフロー図２００を例示する。図２に例示されるように、図１のイニシエータ１０２を備え得るコントローラ２０２は、ＯＡＦ要求２０４を開始する。このＯＡＦは、バイトのプレビューセット（ｐｒｅｖｉｅｗ  ｓｅｔ）ＳＯＡＦ２１１、ならびにブロック２１０のセクション２１２を形成する発信源コントローラアドレス２１６、およびブロック２１０のセクション２１４を形成する宛先アドレス２１８を含む、バイトのブロック２１０である。ＯＡＦ要求２０４は、ポート２０６を介してエキスパンダ２０８に送信される。例えば、エキスパンダ２０８は、図１に例示されたエキスパンダ１０４を備え得る。エキスパンダ２０８は、ポート２２２を介してＯＡＦ２０４を最後のエキスパンダ２２６に送信するために、２２４に示すように、宛先エキスパンダＩＤを使用する。最後のエキスパンダ２２６は、ポート２３０がドライブ２４２に接続されていることを示す、セクタ２１４からの宛先物理アドレスを利用する。最後のエキスパンダ２２６は、ＯＡＦ２０４がポート２３０上でドライブ２４２に送信される前に、ブロック２３２に示すようにＯＡＦ２０４を修正する。次いで、ドライブ２４２は、ドライブ２４２がデータをコントローラ２０２に戻すのに適切なアドレスを有するように、ＯＡＦ要求２０４を格納する。
【００１２】
図３は、ターゲットによる応答のワークフロー図３００である。図３に示すように、ドライブ２４２はＯＡＦ３０２を生成する。ＯＡＦ３０２はブロック３０４を含む。ターゲット宛先３１２は、発信源エキスパンダＩＤと、発信源物理ＩＤと、宛先エキスパンダＩＤと、宛先物理ＩＤとを提供する。ターゲット発信源データ３１４は、ターゲットドライブＳＡＳアドレスを含む。この情報は、コントローラ２０２が、その応答がドライブ２４２からであることを知ることを確実にするために、コントローラ２０２によって使用される。ＯＡＦ３０２は、ポート２３０を介して最後のエキスパンダ２２６に送信される。最後のエキスパンダ２２６は、ブロック３０６に示すように、ＯＡＦ３０２を修正し、次いで、ポート３２０を介してＯＡＦ３０２をエキスパンダ２０８に送信する。このＯＡＦは、宛先エキスパンダＩＤと、宛先物理ＩＤと、発信源エキスパンダＩＤと、発信源物理ＩＤアドレスとを含むターゲット宛先セクタ３１６を含むブロック３０６を含む。セクタ３１８は、ターゲット発信源ドライブＳＡＳアドレスを含む。エキスパンダ２０８は、ポート３２２を介してＯＡＦ３０２をコントローラ２０２に経路指定するために、発信源エキスパンダＩＤを利用する。図２および３に例示された方法を使用すると、表１２６内のエントリーの数は、１、０００個以上ものアドレスであり得る、終端デバイスＳＡＳアドレスの数から、所与のトポロジ内で、通常、およそ５０個以下であるエキスパンダ指標アドレスの数に削減される。これは、データがアクセスされ得る速度を高めると同様に、エキスパンダプロセッサチップ内に含まれるＣＡＭのコストを低減させる。
【００１３】
表１２６内の表エントリーを削減する代替の方法が図４に例示される。この実施形態によれば、２つの新しいフィールドが既存のＯＡＦフォーマットに追加される。これらの２つの新しいフィールドは、発信源エキスパンダＳＡＳアドレスおよび宛先エキスパンダＳＡＳアドレスである。発信源エキスパンダＳＡＳアドレスは、発信源ポートが直接的に接続されるエキスパンダを指定する。図１の実施形態では、発信源エキスパンダＳＡＳアドレスは、エキスパンダ１０４のアドレスである。宛先エキスパンダＳＡＳアドレスは、宛先ポートが直接的に接続されるエキスパンダを指定する。例えば、宛先がターゲット１１４である場合、宛先エキスパンダＳＡＳアドレスは、エキスパンダ１１２のアドレスである。当然、イニシエータ１０２が、宛先ターゲットに直接的に接続されたポート１２８を有する場合、これらのアドレスに関するフィールドは０である。エキスパンダ１０４は、まず、ＯＡＦ内の宛先ＳＡＳアドレスがいずれの直接取り付けられたターゲットのＳＡＳアドレスと整合するかどうかを検査する。それらのアドレスが整合する場合、その接続は指定された、取り付けられたターゲットポートに経路指定されるべきである。それらのアドレスが整合しない場合、エキスパンダ１０４は、ＣＡＭからの探索を実行するために、ＯＡＦ内で指定された宛先エキスパンダＳＡＳアドレスを使用することになる。
【００１４】
したがって、表エントリー内のアドレスのリストは、ターゲットではなく、むしろエキスパンダのアドレスである。例えば、ターゲットＳＡＳアドレスを有するのではなく、むしろ表は、宛先エキスパンダＳＡＳアドレスとして、そのターゲットが直接的に接続された最後のエキスパンダの物理アドレスと、イニシエータが接続されたエキスパンダのアドレスとを含むことになる。例えば、ターゲットがターゲット１１４であり、イニシエータがイニシエータ１０２である場合、図１に示すように、宛先エキスパンダＳＡＳアドレスとして、エキスパンダ１１２のアドレスが使用され、発信源エキスパンダＳＡＳアドレスとして、エキスパンダ１０４のアドレスが使用される。この方法を使用すると、これらのアドレスは、ターゲットの合計数ではなく、むしろ単に最後のエキスパンダの数に削減されるため、表１２６内のエントリーの数は大いに削減される。
【００１５】
表１２６内のエントリーを削減するためのもう１つの代替の方法は、ＯＡＦ内にアドレス情報を含めるために、バイト２４〜２７を備えるＯＡＦ「ＭＯＲＥＣＯＭＰＡＴＩＢＬＥＦＥＡＴＵＲＥ」のデータフィールドを使用することである。ＯＡＦを受信する物理層は「ＭＯＲＥＣＯＭＰＡＴＩＢＬＥＦＥＡＴＵＲＥ」フィールド（特徴フィールド）を無視する。より互換性のある特徴フィールドは、この標準のこれまでのバージョンと互換性のない追加の特徴を指定する。大部分のトポロジ内にはイニシエータおよびエキスパンダがほとんど存在せず、デバイスの大部分はターゲットドライブであるため、この事実を活かす目的で、追加の情報を提供するために、ＯＡＦの特徴フィールドが使用され得る。特徴フィールドが０に設定されているとき、ＳＡＳ−２仕様書で定義されるように、ＯＡＦは正常である。特徴フィールドが１に設定されているとき、ＭＯＲＥＣＯＭＰＡＴＩＢＬＥＦＥＡＴＵＲＥ［７：０］フィールド値は、Ｐｈｙ番号、またはその接続が経路指定されるべき宛先エキスパンダのポート番号を示す。特徴フィールドが１に設定され、ＯＡＦ内の宛先ＳＡＳアドレスが、エキスパンダ１１２など、エキスパンダのＳＡＳアドレスと整合する場合、エキスパンダ１１２は、その接続を、エキスパンダ１１２に対するターゲットの直接接続である、ＭＯＲＥＣＯＭＰＡＴＩＢＬＥＦＥＡＴＵＲＥ［７：０］フィールド内に示されたＰｈｙ番号に直接的に経路指定すべきであることを理解する。中間エキスパンダが存在する場合、表１２６内のエントリーは、最後のエキスパンダのＳＡＳアドレスである、指定された宛先アドレスの接続に経路指定されることになる。
【００１６】
この方法によれば、ルーティングテーブル１２６内のエントリーは、トポロジ全体に関して、イニシエータＳＡＳアドレスとエキスパンダＳＡＳアドレスとを含むことになる。この方法を使用すると、イニシエータの数およびエキスパンダの数は、多くのトポロジ内では、ターゲットまたは終端デバイスの数よりもかなり、少なくとも１桁だけ少ないため、ルーティングテーブル１２６内のエントリーの数は大いに削減されることになる。
【００１７】
第２および第３の開示された方法によれば、エキスパンダＳＡＳアドレス、および宛先Ｐｈｙ番号、またはポート番号は、宛先ターゲットＳＡＳアドレスを使用する代わりに、所与のトポロジを介して接続を経路指定するために使用され得る。その結果を達成するための一方法が示されているが、ＯＡＦ要求内の宛先ポート番号または宛先ＳＡＳアドレスと共に、エキスパンダＳＡＳアドレスを提供するいずれのプロセスも確かに本発明の範囲内である。
【００１８】
第１の方法によれば、宛先ターゲットＳＡＳアドレスを使用する代わりに、任意の所与のトポロジ内で接続を経路指定するために、宛先ポート番号と共に、エキスパンダ識別子が使用され得る。２つの方法が示されているが、宛先ポート番号と共にエキスパンダ識別子を提供するためのいずれの方法もこの発明の範囲内である。
【００１９】
上に示されたように、ＳＡＳエキスパンダに関する既存の表ベースのルーティング機構は、それぞれのＳＡＳアドレスごとに１つのルーティングエントリーを有する。オープンアドレスフレーム（ＯＡＦ）要求が、エキスパンダ１０４のポート１２８のうちの１つなど、指定されたアドレスを有する着信ポート上で受信されるときはいつでも、エキスパンダは、ＯＡＦが経路指定されるべき発信物理アドレスを見出すために、表１２６内でコンテンツアドレス指定可能メモリ探索、またはいくつかの類似のプロセスを実行する。これらの表はＳＡＳアドレスごとに１つのエントリーを有するため、ストレージアクセスシステムのトポロジをカバーするために必要とされる表１２６内の表エントリーの数は、トポロジのサイズと共に線形に増大する。
【００２０】
コンテンツアドレス指定可能メモリ表１２６内のエントリーの数を削減するもう１つの方法は、特定のＰｈｙに経路指定されるＳＡＳアドレスの範囲を指定することである。例えば、Ｐｈｙ０がＳＡＳアドレス範囲に達するように構成される場合、
5006 05b0 0002 72bf-PHY0 ROUTE SAS ADDRESS RANGE START
から
5006 05b0 0003 72bf-PHY0 ROUTE SAS ADDRESS RANGE END
であり、上に記載されたように、ＳＡＳアドレス範囲内の宛先をターゲットとするすべての着信ＯＡＦは、Ｐｈｙ０に経路指定されることになり、これは、ルーティングエントリーのかなりの数を削減することになる。表１２６内、または類似のデバイス内の静的探索時間は、表エントリーのサイズに比例するため、アドレス範囲は、エントリーの数をその範囲のサイズだけ削減する。
【００２１】
図５は、ルックアップテーブルアドレス範囲を使用するためのプロセス５００を例示する概略ブロック図である。ステップ５０２において、アドレス範囲が生成される。エキスパンダ内のプロセッサ１２５は、これらのアドレス範囲を生成することが可能である。ステップ５０４において、これらのアドレス範囲は、図１のルックアップテーブル１２６など、ルックアップテーブル内に格納される。ステップ５０６において、ＯＡＦのアドレスが何の範囲に該当するかを決定するために、着信ＯＡＦのアドレスがプロセッサ１２５によって検査される。ステップ５０８において、その特定のアドレス範囲に関する物理アドレスを取り出すためにルックアップテーブル１２６がアクセスされる。
【００２２】
範囲探索の実装は、いくつかの異なる形で達成され得る。アドレスの範囲に関する探索を実行する一様式は、ＳＡＳアドレス内の削減された数のビットに基づいて探索を実行するための機構を提供する３値（ｔｅｒｎａｒｙ）コンテンツアドレス指定可能メモリ６０２を使用することである。削減された数のビットは、アドレスの範囲を自動的に提供する。
【００２３】
図６は、アドレス範囲ルックアップテーブルデバイス６００を例示する概略ブロック図である。図６に例示するように、３値コンテンツアドレス指定可能メモリ６０２は、アドレス範囲の探索を実現するために使用される。ＯＡＦ６０６は、アドレス範囲を決定するために、ＯＡＦを処理するプロセッサ６０４によって受信される。アドレス範囲６０８が生成されて、３値コンテンツアドレス指定可能メモリ６０２に適用される。３値コンテンツアドレス指定可能メモリ６０２は、プロセッサ６０４に提供される物理アドレス６１０を生成する。
【００２４】
もう１つの手法は、標準コンテンツアドレス指定可能メモリと、ＳＡＳアドレス探索を実行するエキスパンダハードウェア論理とを使用することである。すなわち、コンテンツアドレス指定可能メモリ内でアドレス範囲探索を実行するために、論理がプロセッサチップに追加されることが可能であり、または静的機械が使用されることも可能である。さらに、ＳＡＳデバイスの製造会社は、ストレージアクセスシステムのトポロジ内のルーティング機構に基づいて、ＳＡＳアドレス範囲を効率的に使用することを可能にする機能をこれらのドライブおよびその他のデバイスに提供することが可能である。例えば、大量に購入されたとき、一部の製造会社からのＳＡＳデバイスには、連続的なＳＡＳアドレスが付けられている。このプロセスは、ＳＡＳエキスパンダ、ならびに複数の物理アドレスを有するＳＡＳイニシエータに対して等しく適用可能である。
【００２５】
上で説明されたように、ＳＡＳエキスパンダは、通常、終端デバイスのＳＡＳアドレスをＳＡＳトポロジ内に格納するために、コンテンツアドレス指定可能メモリを用いる。このコンテンツアドレス指定可能メモリは、着信オープンアドレスフレーム（ＯＡＦ）内の宛先のＳＡＳアドレス、およびＯＡＦが経路指定される必要がある物理アドレスを探索するために、エキスパンダハードウェアによって使用される。このコンテンツアドレス指定可能メモリ（図１の表１２６）は、通常、ＳＡＳ発見ルーチンを実行することによって、ソフトウェア制御の下で設定される。ＳＡＳトポロジ内で接続され得る終端デバイスの数は、したがって、エキスパンダのＣＡＭサイズによって限定される。ＣＡＭサイズ（表１２６）は、エキスパンダがサポートすることが可能なトポロジのサイズに関する限定要因ではもはやないため、ソフトウェアによって支援されるルックアップテーブルの使用は、終端デバイスの数を限定しないことになる。
【００２６】
本発明の一実施形態によれば、ハードウェア内で自動化されることも可能な、ソフトウェアによって支援されるＳＡＳアドレス探索の特徴が実装される。したがって、しばしばアクセスされるＳＡＳアドレスエントリーをコンテンツアドレス指定可能メモリ内に維持することが可能である。次いで、ソフトウェアは、ＳＡＳアドレスに関するコンテンツアドレス指定可能メモリ探索が失敗したとき、追加の探索データを提供するために使用され得る。このように、エキスパンダは、しばしば使用されるアドレスに応じることが可能であり、ソフトウェア探索ルーチンを使用することによって、コンテンツアドレス指定可能メモリによってサポートされ得る多数のＳＡＳアドレスに応じることが可能である。したがって、ストレージシステムのトポロジ内で接続され得る終端デバイスの数は、コンテンツアドレス指定可能メモリサイズによって限定されない。さらに、この技法を使用して、ソフトウェア内でより高いレベルのトポロジ確認および回復アルゴリズムを実装することが可能である。これらの技法のうちの少なくとも一部は、探索プロセスを加速させるために、ハードウェア内で自動化され得る。加えて、この特徴を使用して、エキスパンダの全体にわたる入出力機能のフローのプロファイルを描くことが可能である。また、本発明の様々な実施形態を使用して、仮想ターゲットおよびプロキシターゲットが確立され得る。
【００２７】
一実施形態によれば、発見プロセスの一環として、エキスパンダソフトウェアは、エキスパンダ１０４のルーティングテーブル、すなわちコンテンツアドレス指定可能メモリ１２６を設定する。一実施形態によれば、ルーティングテーブル１２６は終端デバイスに関するアドレスのすべてを保持することができないため、エキスパンダソフトウェア内の発見ルーチンは、トポロジ発見情報全体をＲＡＭ１２７内に維持する。その場合、アドレスの一部は、ルーティングテーブル（ＣＡＭ）１２６内に格納される。エキスパンダハードウェアが、オープンアドレスフレーム（ＯＡＦ）の宛先ＳＡＳアドレスに関するアドレス整合が存在しないことを検出するとき、エキスパンダハードウェアは、中断、またはソフトウェアにその状態を示すその他の制御機能を生成することが可能である。ソフトウェアに提供される状態情報は、コンテンツアドレス指定可能メモリ探索内で失敗した宛先ＳＡＳアドレスを含み得る。あるいは、ソフトウェアによる最新分析のために、オープンアドレスフレームのコンテンツ全体が提供され得る。
【００２８】
ソフトウェアは、中断、またはアドレス整合の失敗を示すその他の制御信号の受信時に、エキスパンダ１０４上の処理チップ１２５から遠隔的にＲＡＭ１２７内に格納された発見情報内のアドレスの探索または比較を実行することによって、アドレス整合の失敗を解決することを試みる。ソフトウェア探索技法を使用して整合が見出された場合、整合情報をエキスパンダハードウェアに提供するために、２つの異なる手法のうちの１つが使用され得る。第１の手法では、ソフトウェアは、ＯＡＦが経路指定される必要があるターゲットを示す物理アドレス情報を提供することが可能である。その中断の肯定応答時に、ハードウェアは、次いで、ＯＡＦを経路指定するために、そのソフトウェアによって提供された物理アドレス経路を利用することが可能である。第２の手法によれば、ソフトウェアは、表１２６内の既存のコンテンツアドレス指定可能メモリエントリーを、ソフトウェアによって提供された新しいアドレスと置き換えるために、最近最も使用されなかったプロセスを使用することが可能である。次いで、ハードウェアは、コンテンツアドレス指定可能メモリ１２６内のその最近最も使用されなかったタグを更新する。その中断の肯定応答時に、ハードウェアは、コンテンツアドレス指定可能メモリ探索を再開することが可能であり、ソフトウェアによってコンテンツアドレス指定可能メモリに新たに追加されたアドレス情報の結果として、整合が見出されることになる。次いで、ハードウェアは、示された送信物理アドレス上にＯＡＦを経路指定することが可能である。
【００２９】
図７は、追加のＲＡＭ１２７内のアドレスの仮想探索に関するプロセス７００の概略ブロック図である。ステップ７０２において、図１に例示されるストレージシステムなど、ストレージシステムのトポロジ全体に関するアドレス情報を取得するために、エキスパンダによって発見ルーチンが実行される。ステップ７０４において、発見ルーチンから取得されたアドレス指定情報は、図１のエキスパンダ１０４内の追加のＲＡＭ１２７内に格納される。ステップ７０６において、最も使用されたアドレスを用いて、ＣＡＭ１２６が設定される。すなわち、エキスパンダ１０４によって最近最も使用されたアドレスが図１の表１２６内に格納される。ステップ７０８において、エキスパンダ１０４は、ＯＡＦ要求を読み取る。ステップ７１０において、ＯＡＦアドレスが、ＣＡＭ表１２６内に格納されたアドレスと比較される。整合が存在する場合、ＣＡＭ１２６は、ステップ７１２において、ルーティングアドレスをエキスパンダ１０４に提供する。整合が存在しない場合、ステップ７１４において、エキスパンダ１０４によって中断が生成される。ステップ７１６において、追加のＲＡＭ１２７は、エキスパンダ１０４のプロセッサによってアクセスされる。ステップ７１８において、ルーティング情報がＲＡＭ１２７内に格納されているかどうかを決定するために、比較が実行される。この時点で、２つの異なる代替プロセスのうちの１つが使用され得る。一実施形態によれば、ステップ７２０において、ＯＡＦを適切な宛先に経路指定するために、ルーティングアドレスが提供される。もう１つの実施形態によれば、ステップ７２２において、ルーティングテーブル１２６内で最近最も使用されなかったエントリーが決定される。ステップ７２４において、ルーティングテーブル１２６内のこれらの最近最も使用されなかったエントリーはルーティングテーブルから除去される。ステップ７２６において、ＲＡＭ１２７から取り出された新しいアドレス情報がルーティングテーブル１２６内に格納される。エキスパンダ１０４のプロセッサ１２５は、次いで、アドレス情報を取得するために、ルックアップテーブル１２６のアクセスに進む。
【００３０】
上で説明された２つの異なる手法の組合せを実装することも可能である。かかる組合せでは、ソフトウェアは、同じ宛先終端デバイスに関する後続のＯＡＦのルーティングの実行を増大させるために、既存のコンテンツアドレス指定可能メモリエントリーをいつ置き換えるかを決定するための論理を含み得る。
【００３１】
より大きなトポロジ内の入出力要求の大部分は特定のイニシエータおよびターゲットに集中する傾向があるため、所与の時点で、ソフトウェア内に格納されたアドレスデータ内のソフトウェア探索（コンテンツアドレス指定可能メモリミスヒット）は、結果として、新しいＳＡＳアドレスをコンテンツアドレス指定可能メモリ内にキャッシュさせることになる。したがって、ソフトウェア探索を実行するための実行ペナルティは、結果として、本質的に反復的でない可能性がある。上で説明されたプロセスをさらに最適化するために、ソフトウェアアドレス探索が発生するとき、ソフトウェアは発信源ＳＡＳアドレスを提供することも可能である。発信源ＳＡＳアドレスがシリアル同期ポート（ＳＳＰ）イニシエータに属し、ＳＡＳアドレスがコンテンツアドレス指定可能メモリ内に格納されていない場合、ターゲットがイニシエータに対する接続を再度開放しようと試みるとき、追加のソフトウェア探索を回避する目的で、宛先ＳＡＳアドレスがコンテンツアドレス指定可能メモリ内にすでに存在していることを確実にするために、発信源ＳＡＳアドレスおよび宛先ＳＡＳアドレスは、両方ともコンテンツアドレス指定可能メモリ１２６内に格納されることが可能である。当然、これらのプロセスは、キャッシュコントローラと類似の形で、ハードウェア内で実装されることも可能である。
【００３２】
ハードウェア実装形態において発見ルーチンによって提供されたコンテンツアドレス指定可能メモリ情報のキャッシングは、上で説明されたような、ソフトウェア探索ルーチンに対するシステムの実行を改善することになる。この代替の実施形態によれば、ソフトウェア発見ルーチンは、トポロジ発見解析を実行して、ＲＡＭ内に格納される完全なルーティングテーブルを作成する。当然、ハードウェア実装形態における限定要因は、エキスパンダの処理チップ上のコンテンツアドレス指定可能メモリより１桁大きい可能性がある、ルーティングテーブル情報のすべてを格納するために必要なＲＡＭのサイズである。このハードウェア実装形態では、上で説明されたプロセスは、ソフトウェア探索と同じ形で実行され得る。加えて、ソフトウェア探索を用いると、ＯＡＦをエキスパンダの内部ＳＳＰターゲット仮想物理アドレスに経路指定することによって、エキスパンダ内の終端デバイスをプロキシすることが可能である。次いで、ソフトウェアは、サービスの一定の品質を確実にするために、一定のイニシエータおよびターゲットに帯域幅を提供することが可能である。
【００３３】
本発明の先の記述は、例示および説明のために提示されている。網羅的であること、または本発明を開示されたまさにその形態に限定することは意図されず、その他の修正形態および改変形態が上の教示に照らして可能であり得る。この実施形態は、それにより、当業者が、企図される特定の使用に適した様々な実施形態および様々な修正形態の形で本発明を最もよく利用することを可能にするために、本発明の原理とその実際的な用途を最もよく説明する目的で、選択され、説明された。添付の特許請求の範囲は、先行技術によって限定される範囲を除いて、本発明のその他の代替実施形態を含むと解釈されることが意図される。
【図１】
2012141943.tif 000003
【図２】
2012141943.tif 000004
【図３】
2012141943.tif 000005
【図４】
2012141943.tif 000006
【図５】
2012141943.tif 000007
【図６】
2012141943.tif 000008
【図７】
2012141943.tif 000009