説明

SASエキスパンダ接続ルーティング技法

【課題】シリアルアタッチドSCSIエキスパンダネットワークのトポロジサイズを増大すること、ならびにそのシステムトポロジに関するアドレス位置を格納するために使用される、コンテンツアドレス指定可能メモリ内のエントリーを限定することを可能にする技法を提供する。
【解決手段】一方法によれば、ルックアップテーブルエントリーを削減するために、アドレスがそのOAF要求内に提供される。もう1つの実施形態によれば、アドレス範囲が前記ルックアップテーブル内に提供される。加えて、最近最も使用されたアドレスだけがそのルックアップテーブル内に格納されるように、ソフトウェア探索プロセスが使用され得るか、またはハードウェアプロセスが使用され得るように、仮想メモリ技法が使用される。

【発明の詳細な説明】
【背景技術】
【0001】
シリアルアタッチドSCSI(SAS)は、ハードドライブおよびテープドライブなど、コンピュータストレージデバイス間でデータを移動させるために使用されるコンピュータバスである。SASは、二地点間シリアルプロトコルに依存する。典型的なシリアルアタッチドSCSIシステムは、サービスを発生させて、ターゲットデバイスによる処理を要求し、ターゲットデバイスからこれらの要求に対する応答を受信するデバイスであるイニシエータを含む。イニシエータは、コントローラまたはホストデバイスを備え得る。ターゲットは、処理に関するデバイスサービスおよびタスク管理要求を受信して、同じ要求に関する応答をイニシエータデバイスに送信する、論理ユニットとターゲットポートとを含むデバイスである。ターゲットデバイスは、ハードディスクまたはディスクアレイを備え得る。エキスパンダは、SASデバイス間の通信を円滑にして、複数のSAS終端デバイスの接続を円滑にするデバイスである。
【発明の概要】
【課題を解決するための手段】
【0002】
本発明の一実施形態は、したがって、データに関するオープンアドレスフレーム要求に応答して、ルーティングアドレスを提供するために、シリアルアタッチドSCSIストレージシステム内で使用されるエキスパンダのルックアップテーブル内のエントリーの数を削減する方法であって、発信源エキスパンダ識別情報と、発信源物理アドレス情報と、宛先エキスパンダ識別情報と、宛先物理アドレス情報とを含むルーティング情報をオープンアドレス要求内に提供することと、イニシエータとターゲットとの間でデータを経路指定するために、ルックアップテーブル内のルーティング情報を使用することとを含む方法を含み得る。
【0003】
本発明の一実施形態は、データに関するオープンアドレスフレーム要求に応答して、ルーティングアドレスを提供するために、シリアルアタッチドSCSIストレージシステム内で使用されるエキスパンダのルックアップテーブル内のエントリーの数を削減する方法であって、発信源エキスパンダアドレス情報と、宛先エキスパンダアドレス情報とを含むルーティング情報をオープンアドレスフレーム要求内に提供することと、イニシエータとターゲットとの間でデータを経路指定するために、ルックアップテーブル内のルーティング情報を使用することとを含む方法をさらに含み得る。
【0004】
本発明の一実施形態は、データに関するオープンアドレスフレーム要求に応答して、ルーティングアドレスを提供するために、所与のトポロジを有するシリアルアタッチドSCSIストレージシステム内で使用されるエキスパンダのルックアップテーブル内のエントリーの数を削減するプロセスであって、ストレージシステムのトポロジ内に存在するデバイスの物理アドレスに関するSASアドレス範囲を生成することと、それらのSASアドレス範囲をルックアップテーブル内に格納することと、オープンアドレスフレーム要求のアドレスのアドレス範囲情報を決定するために、オープンアドレスフレーム要求の宛先SASアドレスを検査することと、デバイスに経路指定するための物理層指標を取り出すために、オープンアドレスフレーム要求のアドレスのアドレス範囲情報を使用することとを含むプロセスをさらに含み得る。
【0005】
本発明の一実施形態は、データに関するオープンアドレスフレーム要求に応答して、ルーティングアドレスを提供するために、所与のトポロジを有するシリアルアタッチドSCSIストレージシステム内で使用されるエキスパンダのルックアップテーブル内のエントリーの数を削減する方法であって、ストレージシステムのトポロジに関するルーティングアドレスを取得するために、発見ルーチンを実行することと、それらのルーティングアドレスを追加のRAM内に格納することと、最近最も使用されたルーティングアドレスを用いてルックアップテーブルを設定することと、オープンアドレスフレーム要求を読み取ることと、そのオープンアドレスフレーム要求内に含まれたアドレス情報をルックアップテーブル内に格納されたルーティングアドレスと比較することと、ルックアップテーブル内に格納されたルーティングアドレスがそのオープンアドレスフレーム要求内に含まれたアドレス情報と整合するとき、そのオープンアドレスフレーム要求を経路指定するために、ルーティングアドレスを提供することと、ルックアップテーブル内に格納されたルーティングアドレスがそのオープンアドレスフレーム要求内に含まれたアドレス情報と整合しないとき、追加のRAMにアクセスすることと、そのオープンアドレスフレーム要求内に含まれたアドレス情報を追加のRAM内に格納されたルーティングアドレスと比較することと、その追加のRAM内に格納されたルーティングアドレスがそのオープンアドレスフレーム要求内に含まれたアドレス情報と整合するとき、そのオープンアドレスフレーム要求を経路指定するために、ルーティングアドレスを提供することとを含む方法をさらに含み得る。
【図面の簡単な説明】
【0006】
【図1】ストレージシステムのトポロジの一実施形態を例示する概略ブロック図である。
【図2】接続要求に関する一実施形態のワークフロー図である。
【図3】接続要求に対する応答の一実施形態のワークフロー図である。
【図4】表エントリーの一実施形態の例である。
【図5】ルックアップテーブルアドレス範囲を使用するためのプロセスの一実施形態の流れ図である。
【図6】アドレス範囲を提供するためのルックアップテーブルのブロック図である。
【図7】仮想探索プロセスを実行するための流れ図である。
【発明を実施するための形態】
【0007】
図1は、ストレージシステム100の例示的なトポロジの一実施形態を例示する概略ブロック図である。図1に示すように、イニシエータ102は、オープンアドレスフレーム、すなわちOAFと呼ばれる要求コマンドを使用して、ターゲット108、110、114、116、120、124からのデータに関する要求を開始することが可能である。このOAFは、発信源アドレス、すなわち、イニシエータ102のアドレス、ならびにターゲットのアドレスである宛先SASアドレスを含む。エキスパンダ104は、OAF要求を受信して、表126など、通常、コンテンツアドレス指定可能メモリ(content addressable memory:CAM)である、ルックアップテーブルを参照する。表126は、ターゲットからのデータにアクセスするためのルーティングアドレスを提供する。エキスパンダ104は、まず、ターゲットがエキスパンダ104に直接的に接続されているかどうかを検査する。ターゲットがエキスパンダ104に直接的に取り付けられていない場合、エキスパンダ104は、ターゲットに対するルーティングデータを取得するために、表126を参照する。先行技術デバイスでは、表126は、それぞれの宛先SASアドレスに関して1つのルーティングエントリーを含む。エキスパンダ104は、最高で256個までの異なるポートを有することが可能であり、エキスパンダ106、112、118、122のそれぞれは、それぞれ、最高で256個までのポートを有することが可能であるため、ルックアップテーブル126は多数のエントリーを有し得る。表126内に情報を格納する際のアクセス時間、ならびにコストは、先行技術技法の欠点を含む。エキスパンダの追加のレイヤが、それぞれ最高で256個までのポートを有し得るエキスパンダ106、112、118、122に接続される場合、これは表エントリーを急激に増大させる。表126内のエントリーの数を削減することは、エキスパンダ104の処理チップ上に配置される必要があるCAMメモリの量に関する処理時間および費用を有利に減少することが可能である。
【0008】
接続が要求されているSASポートのポート識別子を指定する宛先SASアドレスと、イニシエータ102など、オープンアドレスフレームを発生させたSASポートのポート識別子を指定する発信源SASアドレスフィールドとを含むエントリーを有するのではなく、むしろOAF「宛先SASアドレス」フィールドが修正され得る。例えば、イニシエータ102からのOAF要求は、発信源エキスパンダID、発信源物理アドレスID、宛先エキスパンダID、および宛先ポートIDなどのルーティング情報を含み得る。例えば、OAF要求は、下記のように提示され得る。
DestinationSasAddr=={SrcExpID,SrcPhyID,DestExpID,DestPhyID}=={[バイト11...バイト10],[バイト9...バイト8],[バイト7...バイト6],[バイト5...バイト4]}
【0009】
この場合、SrcExpIDのフィールドは、発信源ポートが直接的に取り付けられたエキスパンダに割り当てられた指標の値を含む。この場合、この発信源はイニシエータ102であり、このエキスパンダはエキスパンダ104である。SrcPhyIDのフィールドは、発信源ポート、すなわち、ポート128のうちの1つが直接的に取り付けられた物理アドレスの値を有する。フィールドDestExpIDは、宛先ポートが直接的に取り付けられたエキスパンダに割り当てられた指標の値を含む。例えば、宛先がターゲット114(ターゲット32)である場合、このエキスパンダはエキスパンダ112である。フィールドDestPhyIDは、宛先が取り付けられたポート、すなわち、ポート142の値を有する。
【0010】
既存のOAF内には宛先アドレス指定のために割り当てられた64ビットが存在するため、8ビットを有するバイトが8個だけ、アドレス指定のためにOAF内で使用される。上で示すように、これらのバイトは、バイト11〜4として示される。
【0011】
図2は、イニシエータ102からのデータ要求に関するワークフロー図200を例示する。図2に例示されるように、図1のイニシエータ102を備え得るコントローラ202は、OAF要求204を開始する。このOAFは、バイトのプレビューセット(preview set)SOAF211、ならびにブロック210のセクション212を形成する発信源コントローラアドレス216、およびブロック210のセクション214を形成する宛先アドレス218を含む、バイトのブロック210である。OAF要求204は、ポート206を介してエキスパンダ208に送信される。例えば、エキスパンダ208は、図1に例示されたエキスパンダ104を備え得る。エキスパンダ208は、ポート222を介してOAF204を最後のエキスパンダ226に送信するために、224に示すように、宛先エキスパンダIDを使用する。最後のエキスパンダ226は、ポート230がドライブ242に接続されていることを示す、セクタ214からの宛先物理アドレスを利用する。最後のエキスパンダ226は、OAF204がポート230上でドライブ242に送信される前に、ブロック232に示すようにOAF204を修正する。次いで、ドライブ242は、ドライブ242がデータをコントローラ202に戻すのに適切なアドレスを有するように、OAF要求204を格納する。
【0012】
図3は、ターゲットによる応答のワークフロー図300である。図3に示すように、ドライブ242はOAF302を生成する。OAF302はブロック304を含む。ターゲット宛先312は、発信源エキスパンダIDと、発信源物理IDと、宛先エキスパンダIDと、宛先物理IDとを提供する。ターゲット発信源データ314は、ターゲットドライブSASアドレスを含む。この情報は、コントローラ202が、その応答がドライブ242からであることを知ることを確実にするために、コントローラ202によって使用される。OAF302は、ポート230を介して最後のエキスパンダ226に送信される。最後のエキスパンダ226は、ブロック306に示すように、OAF302を修正し、次いで、ポート320を介してOAF302をエキスパンダ208に送信する。このOAFは、宛先エキスパンダIDと、宛先物理IDと、発信源エキスパンダIDと、発信源物理IDアドレスとを含むターゲット宛先セクタ316を含むブロック306を含む。セクタ318は、ターゲット発信源ドライブSASアドレスを含む。エキスパンダ208は、ポート322を介してOAF302をコントローラ202に経路指定するために、発信源エキスパンダIDを利用する。図2および3に例示された方法を使用すると、表126内のエントリーの数は、1、000個以上ものアドレスであり得る、終端デバイスSASアドレスの数から、所与のトポロジ内で、通常、およそ50個以下であるエキスパンダ指標アドレスの数に削減される。これは、データがアクセスされ得る速度を高めると同様に、エキスパンダプロセッサチップ内に含まれるCAMのコストを低減させる。
【0013】
表126内の表エントリーを削減する代替の方法が図4に例示される。この実施形態によれば、2つの新しいフィールドが既存のOAFフォーマットに追加される。これらの2つの新しいフィールドは、発信源エキスパンダSASアドレスおよび宛先エキスパンダSASアドレスである。発信源エキスパンダSASアドレスは、発信源ポートが直接的に接続されるエキスパンダを指定する。図1の実施形態では、発信源エキスパンダSASアドレスは、エキスパンダ104のアドレスである。宛先エキスパンダSASアドレスは、宛先ポートが直接的に接続されるエキスパンダを指定する。例えば、宛先がターゲット114である場合、宛先エキスパンダSASアドレスは、エキスパンダ112のアドレスである。当然、イニシエータ102が、宛先ターゲットに直接的に接続されたポート128を有する場合、これらのアドレスに関するフィールドは0である。エキスパンダ104は、まず、OAF内の宛先SASアドレスがいずれの直接取り付けられたターゲットのSASアドレスと整合するかどうかを検査する。それらのアドレスが整合する場合、その接続は指定された、取り付けられたターゲットポートに経路指定されるべきである。それらのアドレスが整合しない場合、エキスパンダ104は、CAMからの探索を実行するために、OAF内で指定された宛先エキスパンダSASアドレスを使用することになる。
【0014】
したがって、表エントリー内のアドレスのリストは、ターゲットではなく、むしろエキスパンダのアドレスである。例えば、ターゲットSASアドレスを有するのではなく、むしろ表は、宛先エキスパンダSASアドレスとして、そのターゲットが直接的に接続された最後のエキスパンダの物理アドレスと、イニシエータが接続されたエキスパンダのアドレスとを含むことになる。例えば、ターゲットがターゲット114であり、イニシエータがイニシエータ102である場合、図1に示すように、宛先エキスパンダSASアドレスとして、エキスパンダ112のアドレスが使用され、発信源エキスパンダSASアドレスとして、エキスパンダ104のアドレスが使用される。この方法を使用すると、これらのアドレスは、ターゲットの合計数ではなく、むしろ単に最後のエキスパンダの数に削減されるため、表126内のエントリーの数は大いに削減される。
【0015】
表126内のエントリーを削減するためのもう1つの代替の方法は、OAF内にアドレス情報を含めるために、バイト24〜27を備えるOAF「MORECOMPATIBLEFEATURE」のデータフィールドを使用することである。OAFを受信する物理層は「MORECOMPATIBLEFEATURE」フィールド(特徴フィールド)を無視する。より互換性のある特徴フィールドは、この標準のこれまでのバージョンと互換性のない追加の特徴を指定する。大部分のトポロジ内にはイニシエータおよびエキスパンダがほとんど存在せず、デバイスの大部分はターゲットドライブであるため、この事実を活かす目的で、追加の情報を提供するために、OAFの特徴フィールドが使用され得る。特徴フィールドが0に設定されているとき、SAS−2仕様書で定義されるように、OAFは正常である。特徴フィールドが1に設定されているとき、MORECOMPATIBLEFEATURE[7:0]フィールド値は、Phy番号、またはその接続が経路指定されるべき宛先エキスパンダのポート番号を示す。特徴フィールドが1に設定され、OAF内の宛先SASアドレスが、エキスパンダ112など、エキスパンダのSASアドレスと整合する場合、エキスパンダ112は、その接続を、エキスパンダ112に対するターゲットの直接接続である、MORECOMPATIBLEFEATURE[7:0]フィールド内に示されたPhy番号に直接的に経路指定すべきであることを理解する。中間エキスパンダが存在する場合、表126内のエントリーは、最後のエキスパンダのSASアドレスである、指定された宛先アドレスの接続に経路指定されることになる。
【0016】
この方法によれば、ルーティングテーブル126内のエントリーは、トポロジ全体に関して、イニシエータSASアドレスとエキスパンダSASアドレスとを含むことになる。この方法を使用すると、イニシエータの数およびエキスパンダの数は、多くのトポロジ内では、ターゲットまたは終端デバイスの数よりもかなり、少なくとも1桁だけ少ないため、ルーティングテーブル126内のエントリーの数は大いに削減されることになる。
【0017】
第2および第3の開示された方法によれば、エキスパンダSASアドレス、および宛先Phy番号、またはポート番号は、宛先ターゲットSASアドレスを使用する代わりに、所与のトポロジを介して接続を経路指定するために使用され得る。その結果を達成するための一方法が示されているが、OAF要求内の宛先ポート番号または宛先SASアドレスと共に、エキスパンダSASアドレスを提供するいずれのプロセスも確かに本発明の範囲内である。
【0018】
第1の方法によれば、宛先ターゲットSASアドレスを使用する代わりに、任意の所与のトポロジ内で接続を経路指定するために、宛先ポート番号と共に、エキスパンダ識別子が使用され得る。2つの方法が示されているが、宛先ポート番号と共にエキスパンダ識別子を提供するためのいずれの方法もこの発明の範囲内である。
【0019】
上に示されたように、SASエキスパンダに関する既存の表ベースのルーティング機構は、それぞれのSASアドレスごとに1つのルーティングエントリーを有する。オープンアドレスフレーム(OAF)要求が、エキスパンダ104のポート128のうちの1つなど、指定されたアドレスを有する着信ポート上で受信されるときはいつでも、エキスパンダは、OAFが経路指定されるべき発信物理アドレスを見出すために、表126内でコンテンツアドレス指定可能メモリ探索、またはいくつかの類似のプロセスを実行する。これらの表はSASアドレスごとに1つのエントリーを有するため、ストレージアクセスシステムのトポロジをカバーするために必要とされる表126内の表エントリーの数は、トポロジのサイズと共に線形に増大する。
【0020】
コンテンツアドレス指定可能メモリ表126内のエントリーの数を削減するもう1つの方法は、特定のPhyに経路指定されるSASアドレスの範囲を指定することである。例えば、Phy0がSASアドレス範囲に達するように構成される場合、
5006 05b0 0002 72bf-PHY0 ROUTE SAS ADDRESS RANGE START
から
5006 05b0 0003 72bf-PHY0 ROUTE SAS ADDRESS RANGE END
であり、上に記載されたように、SASアドレス範囲内の宛先をターゲットとするすべての着信OAFは、Phy0に経路指定されることになり、これは、ルーティングエントリーのかなりの数を削減することになる。表126内、または類似のデバイス内の静的探索時間は、表エントリーのサイズに比例するため、アドレス範囲は、エントリーの数をその範囲のサイズだけ削減する。
【0021】
図5は、ルックアップテーブルアドレス範囲を使用するためのプロセス500を例示する概略ブロック図である。ステップ502において、アドレス範囲が生成される。エキスパンダ内のプロセッサ125は、これらのアドレス範囲を生成することが可能である。ステップ504において、これらのアドレス範囲は、図1のルックアップテーブル126など、ルックアップテーブル内に格納される。ステップ506において、OAFのアドレスが何の範囲に該当するかを決定するために、着信OAFのアドレスがプロセッサ125によって検査される。ステップ508において、その特定のアドレス範囲に関する物理アドレスを取り出すためにルックアップテーブル126がアクセスされる。
【0022】
範囲探索の実装は、いくつかの異なる形で達成され得る。アドレスの範囲に関する探索を実行する一様式は、SASアドレス内の削減された数のビットに基づいて探索を実行するための機構を提供する3値(ternary)コンテンツアドレス指定可能メモリ602を使用することである。削減された数のビットは、アドレスの範囲を自動的に提供する。
【0023】
図6は、アドレス範囲ルックアップテーブルデバイス600を例示する概略ブロック図である。図6に例示するように、3値コンテンツアドレス指定可能メモリ602は、アドレス範囲の探索を実現するために使用される。OAF606は、アドレス範囲を決定するために、OAFを処理するプロセッサ604によって受信される。アドレス範囲608が生成されて、3値コンテンツアドレス指定可能メモリ602に適用される。3値コンテンツアドレス指定可能メモリ602は、プロセッサ604に提供される物理アドレス610を生成する。
【0024】
もう1つの手法は、標準コンテンツアドレス指定可能メモリと、SASアドレス探索を実行するエキスパンダハードウェア論理とを使用することである。すなわち、コンテンツアドレス指定可能メモリ内でアドレス範囲探索を実行するために、論理がプロセッサチップに追加されることが可能であり、または静的機械が使用されることも可能である。さらに、SASデバイスの製造会社は、ストレージアクセスシステムのトポロジ内のルーティング機構に基づいて、SASアドレス範囲を効率的に使用することを可能にする機能をこれらのドライブおよびその他のデバイスに提供することが可能である。例えば、大量に購入されたとき、一部の製造会社からのSASデバイスには、連続的なSASアドレスが付けられている。このプロセスは、SASエキスパンダ、ならびに複数の物理アドレスを有するSASイニシエータに対して等しく適用可能である。
【0025】
上で説明されたように、SASエキスパンダは、通常、終端デバイスのSASアドレスをSASトポロジ内に格納するために、コンテンツアドレス指定可能メモリを用いる。このコンテンツアドレス指定可能メモリは、着信オープンアドレスフレーム(OAF)内の宛先のSASアドレス、およびOAFが経路指定される必要がある物理アドレスを探索するために、エキスパンダハードウェアによって使用される。このコンテンツアドレス指定可能メモリ(図1の表126)は、通常、SAS発見ルーチンを実行することによって、ソフトウェア制御の下で設定される。SASトポロジ内で接続され得る終端デバイスの数は、したがって、エキスパンダのCAMサイズによって限定される。CAMサイズ(表126)は、エキスパンダがサポートすることが可能なトポロジのサイズに関する限定要因ではもはやないため、ソフトウェアによって支援されるルックアップテーブルの使用は、終端デバイスの数を限定しないことになる。
【0026】
本発明の一実施形態によれば、ハードウェア内で自動化されることも可能な、ソフトウェアによって支援されるSASアドレス探索の特徴が実装される。したがって、しばしばアクセスされるSASアドレスエントリーをコンテンツアドレス指定可能メモリ内に維持することが可能である。次いで、ソフトウェアは、SASアドレスに関するコンテンツアドレス指定可能メモリ探索が失敗したとき、追加の探索データを提供するために使用され得る。このように、エキスパンダは、しばしば使用されるアドレスに応じることが可能であり、ソフトウェア探索ルーチンを使用することによって、コンテンツアドレス指定可能メモリによってサポートされ得る多数のSASアドレスに応じることが可能である。したがって、ストレージシステムのトポロジ内で接続され得る終端デバイスの数は、コンテンツアドレス指定可能メモリサイズによって限定されない。さらに、この技法を使用して、ソフトウェア内でより高いレベルのトポロジ確認および回復アルゴリズムを実装することが可能である。これらの技法のうちの少なくとも一部は、探索プロセスを加速させるために、ハードウェア内で自動化され得る。加えて、この特徴を使用して、エキスパンダの全体にわたる入出力機能のフローのプロファイルを描くことが可能である。また、本発明の様々な実施形態を使用して、仮想ターゲットおよびプロキシターゲットが確立され得る。
【0027】
一実施形態によれば、発見プロセスの一環として、エキスパンダソフトウェアは、エキスパンダ104のルーティングテーブル、すなわちコンテンツアドレス指定可能メモリ126を設定する。一実施形態によれば、ルーティングテーブル126は終端デバイスに関するアドレスのすべてを保持することができないため、エキスパンダソフトウェア内の発見ルーチンは、トポロジ発見情報全体をRAM127内に維持する。その場合、アドレスの一部は、ルーティングテーブル(CAM)126内に格納される。エキスパンダハードウェアが、オープンアドレスフレーム(OAF)の宛先SASアドレスに関するアドレス整合が存在しないことを検出するとき、エキスパンダハードウェアは、中断、またはソフトウェアにその状態を示すその他の制御機能を生成することが可能である。ソフトウェアに提供される状態情報は、コンテンツアドレス指定可能メモリ探索内で失敗した宛先SASアドレスを含み得る。あるいは、ソフトウェアによる最新分析のために、オープンアドレスフレームのコンテンツ全体が提供され得る。
【0028】
ソフトウェアは、中断、またはアドレス整合の失敗を示すその他の制御信号の受信時に、エキスパンダ104上の処理チップ125から遠隔的にRAM127内に格納された発見情報内のアドレスの探索または比較を実行することによって、アドレス整合の失敗を解決することを試みる。ソフトウェア探索技法を使用して整合が見出された場合、整合情報をエキスパンダハードウェアに提供するために、2つの異なる手法のうちの1つが使用され得る。第1の手法では、ソフトウェアは、OAFが経路指定される必要があるターゲットを示す物理アドレス情報を提供することが可能である。その中断の肯定応答時に、ハードウェアは、次いで、OAFを経路指定するために、そのソフトウェアによって提供された物理アドレス経路を利用することが可能である。第2の手法によれば、ソフトウェアは、表126内の既存のコンテンツアドレス指定可能メモリエントリーを、ソフトウェアによって提供された新しいアドレスと置き換えるために、最近最も使用されなかったプロセスを使用することが可能である。次いで、ハードウェアは、コンテンツアドレス指定可能メモリ126内のその最近最も使用されなかったタグを更新する。その中断の肯定応答時に、ハードウェアは、コンテンツアドレス指定可能メモリ探索を再開することが可能であり、ソフトウェアによってコンテンツアドレス指定可能メモリに新たに追加されたアドレス情報の結果として、整合が見出されることになる。次いで、ハードウェアは、示された送信物理アドレス上にOAFを経路指定することが可能である。
【0029】
図7は、追加のRAM127内のアドレスの仮想探索に関するプロセス700の概略ブロック図である。ステップ702において、図1に例示されるストレージシステムなど、ストレージシステムのトポロジ全体に関するアドレス情報を取得するために、エキスパンダによって発見ルーチンが実行される。ステップ704において、発見ルーチンから取得されたアドレス指定情報は、図1のエキスパンダ104内の追加のRAM127内に格納される。ステップ706において、最も使用されたアドレスを用いて、CAM126が設定される。すなわち、エキスパンダ104によって最近最も使用されたアドレスが図1の表126内に格納される。ステップ708において、エキスパンダ104は、OAF要求を読み取る。ステップ710において、OAFアドレスが、CAM表126内に格納されたアドレスと比較される。整合が存在する場合、CAM126は、ステップ712において、ルーティングアドレスをエキスパンダ104に提供する。整合が存在しない場合、ステップ714において、エキスパンダ104によって中断が生成される。ステップ716において、追加のRAM127は、エキスパンダ104のプロセッサによってアクセスされる。ステップ718において、ルーティング情報がRAM127内に格納されているかどうかを決定するために、比較が実行される。この時点で、2つの異なる代替プロセスのうちの1つが使用され得る。一実施形態によれば、ステップ720において、OAFを適切な宛先に経路指定するために、ルーティングアドレスが提供される。もう1つの実施形態によれば、ステップ722において、ルーティングテーブル126内で最近最も使用されなかったエントリーが決定される。ステップ724において、ルーティングテーブル126内のこれらの最近最も使用されなかったエントリーはルーティングテーブルから除去される。ステップ726において、RAM127から取り出された新しいアドレス情報がルーティングテーブル126内に格納される。エキスパンダ104のプロセッサ125は、次いで、アドレス情報を取得するために、ルックアップテーブル126のアクセスに進む。
【0030】
上で説明された2つの異なる手法の組合せを実装することも可能である。かかる組合せでは、ソフトウェアは、同じ宛先終端デバイスに関する後続のOAFのルーティングの実行を増大させるために、既存のコンテンツアドレス指定可能メモリエントリーをいつ置き換えるかを決定するための論理を含み得る。
【0031】
より大きなトポロジ内の入出力要求の大部分は特定のイニシエータおよびターゲットに集中する傾向があるため、所与の時点で、ソフトウェア内に格納されたアドレスデータ内のソフトウェア探索(コンテンツアドレス指定可能メモリミスヒット)は、結果として、新しいSASアドレスをコンテンツアドレス指定可能メモリ内にキャッシュさせることになる。したがって、ソフトウェア探索を実行するための実行ペナルティは、結果として、本質的に反復的でない可能性がある。上で説明されたプロセスをさらに最適化するために、ソフトウェアアドレス探索が発生するとき、ソフトウェアは発信源SASアドレスを提供することも可能である。発信源SASアドレスがシリアル同期ポート(SSP)イニシエータに属し、SASアドレスがコンテンツアドレス指定可能メモリ内に格納されていない場合、ターゲットがイニシエータに対する接続を再度開放しようと試みるとき、追加のソフトウェア探索を回避する目的で、宛先SASアドレスがコンテンツアドレス指定可能メモリ内にすでに存在していることを確実にするために、発信源SASアドレスおよび宛先SASアドレスは、両方ともコンテンツアドレス指定可能メモリ126内に格納されることが可能である。当然、これらのプロセスは、キャッシュコントローラと類似の形で、ハードウェア内で実装されることも可能である。
【0032】
ハードウェア実装形態において発見ルーチンによって提供されたコンテンツアドレス指定可能メモリ情報のキャッシングは、上で説明されたような、ソフトウェア探索ルーチンに対するシステムの実行を改善することになる。この代替の実施形態によれば、ソフトウェア発見ルーチンは、トポロジ発見解析を実行して、RAM内に格納される完全なルーティングテーブルを作成する。当然、ハードウェア実装形態における限定要因は、エキスパンダの処理チップ上のコンテンツアドレス指定可能メモリより1桁大きい可能性がある、ルーティングテーブル情報のすべてを格納するために必要なRAMのサイズである。このハードウェア実装形態では、上で説明されたプロセスは、ソフトウェア探索と同じ形で実行され得る。加えて、ソフトウェア探索を用いると、OAFをエキスパンダの内部SSPターゲット仮想物理アドレスに経路指定することによって、エキスパンダ内の終端デバイスをプロキシすることが可能である。次いで、ソフトウェアは、サービスの一定の品質を確実にするために、一定のイニシエータおよびターゲットに帯域幅を提供することが可能である。
【0033】
本発明の先の記述は、例示および説明のために提示されている。網羅的であること、または本発明を開示されたまさにその形態に限定することは意図されず、その他の修正形態および改変形態が上の教示に照らして可能であり得る。この実施形態は、それにより、当業者が、企図される特定の使用に適した様々な実施形態および様々な修正形態の形で本発明を最もよく利用することを可能にするために、本発明の原理とその実際的な用途を最もよく説明する目的で、選択され、説明された。添付の特許請求の範囲は、先行技術によって限定される範囲を除いて、本発明のその他の代替実施形態を含むと解釈されることが意図される。

【特許請求の範囲】
【請求項1】
データに関するオープンアドレスフレーム要求に応答して、ルーティングアドレスを提供するために、シリアルアタッチドSCSIストレージシステム内で使用されるエキスパンダのルックアップテーブル内のエントリーの数を削減する方法であって、
発信源エキスパンダ識別情報と、
発信源物理アドレス情報と、
宛先エキスパンダ識別情報と、
宛先物理アドレス情報とを含むルーティング情報を、前記オープンアドレスフレーム要求内に提供し、
イニシエータとターゲットとの間でデータを経路指定するために、前記ルックアップテーブル内の前記ルーティング情報を使用する、ことを含む方法。
【請求項2】
前記発信源エキスパンダ識別情報が発信源エキスパンダ物理アドレスを含む、請求項1に記載の方法。
【請求項3】
前記宛先エキスパンダ識別情報が宛先エキスパンダ物理アドレスを含む、請求項2に記載の方法。
【請求項4】
イニシエータとターゲットとの間でデータを経路指定するために、前記ルックアップテーブル内の前記ルーティング情報を使用する前記プロセスが、
イニシエータとターゲットとの間でデータを経路指定するために、コンテンツアドレス指定可能メモリルックアップテーブル内のルーティング情報を使用することを含む、請求項3に記載の方法。
【請求項5】
ルーティング情報をオープンアドレスフレーム要求内に提供する前記プロセスが、
ルーティング情報を前記オープンアドレスフレーム要求のより互換性のある特徴フィールド内に提供することを含む、請求項1に記載の方法。
【請求項6】
データに関するオープンアドレスフレーム要求に応答して、ルーティングアドレスを提供するために、シリアルアタッチドSCSIストレージシステム内で使用されるエキスパンダのルックアップテーブル内のエントリーの数を削減する方法であって、
発信源エキスパンダアドレス情報と、
宛先エキスパンダアドレス情報と、を含むルーティング情報を前記オープンアドレスフレーム要求内に提供し、
イニシエータとターゲットとの間でデータを経路指定するために、前記ルックアップテーブル内の前記ルーティング情報を使用する、ことを含む方法。
【請求項7】
前記発信源エキスパンダアドレス情報が、発信源エキスパンダ物理アドレスを含む、請求項6に記載の方法。
【請求項8】
前記宛先エキスパンダ情報が、宛先エキスパンダ物理アドレスを含む、請求項7に記載の方法。
【請求項9】
イニシエータとターゲットとの間でデータを経路指定するために、前記ルックアップテーブル内の前記ルーティング情報を使用する前記プロセスが、
イニシエータとターゲットとの間でデータを経路指定するために、コンテンツアドレス指定可能メモリルックアップテーブル内のルーティング情報を使用する、ことを含む請求項8に記載の方法。
【請求項10】
ルーティング情報をオープンアドレスフレーム要求内に提供する前記プロセスが、
ルーティング情報を前記オープンアドレスフレーム要求のより互換性のある特徴フィールド内に提供することを含む、請求項6に記載の方法。
【請求項11】
データに関するオープンアドレスフレーム要求に応答して、ルーティングアドレスを提供するために、所与のトポロジを有するシリアルアタッチドSCSIストレージシステム内で使用されるエキスパンダのルックアップテーブル内のエントリーの数を削減するプロセスであって、
前記ストレージシステムの前記トポロジ内に存在するデバイスの物理アドレスに関するアドレス範囲を生成し、
前記アドレス範囲をルックアップテーブル内に格納し、
前記オープンアドレスフレーム要求の前記アドレスのアドレス範囲情報を決定するために、前記オープンアドレスフレーム要求のアドレスを検査し、
前記デバイスに経路指定するための物理層指標を取り出すために、前記オープンアドレスフレーム要求の前記アドレスの前記アドレス範囲情報を使用する、ことを含むプロセス。
【請求項12】
前記アドレス範囲をルックアップテーブル内に格納する前記プロセスが、
前記アドレス範囲を3値コンテンツアドレス指定可能メモリ内に格納することを含む、請求項11に記載のプロセス。
【請求項13】
前記アドレス範囲を生成するために、前記エキスパンダ内でプロセスを使用することをさらに含む、請求項12に記載のプロセス。
【請求項14】
データに関するオープンアドレスフレーム要求に応答して、ルーティングアドレスを提供するために、所与のトポロジを有するシリアルアタッチドSCSIストレージシステム内で使用されるエキスパンダのルックアップテーブル内のエントリーの数を削減する方法であって、
前記ストレージシステムの前記トポロジに関する前記ルーティングアドレスを取得するために発見ルーチンを実行し、
前記ルーティングアドレスを追加のRAM内に格納し、
最近最も使用された前記ルーティングアドレスを用いてルックアップテーブルを設定し、
前記オープンアドレスフレーム要求を読み取り、
前記オープンアドレスフレーム要求内に含まれたアドレス情報を前記ルックアップテーブル内に格納された前記ルーティングアドレスと比較し、
前記ルックアップテーブル内に格納された前記ルーティングアドレスが前記オープンアドレスフレーム要求内に含まれた前記アドレス情報と整合するときには、前記オープンアドレスフレーム要求を経路指定するために、前記ルーティングアドレスを提供し、
前記ルックアップテーブル内に格納された前記ルーティングアドレスが前記オープンアドレスフレーム要求内に含まれた前記アドレス情報と整合しないときには、前記追加のRAMにアクセスし、
前記オープンアドレスフレーム要求内に含まれた前記アドレス情報を前記追加のRAM内に格納された前記ルーティングアドレスと比較し、
前記追加のRAM内に格納された前記ルーティングアドレスが前記オープンアドレスフレーム要求内に含まれた前記アドレス情報と整合するときには、前記オープンアドレスフレーム要求を経路指定するために、前記ルーティングアドレスを提供する、ことを含む方法。
【請求項15】
前記追加のRAM内に格納された前記ルーティングアドレスが前記オープンアドレスフレーム要求内に含まれた前記アドレス情報と整合するときには、前記ルーティングアドレスを提供する前記プロセスが、
前記ルックアップテーブル内で最近最も使用されなかったエントリーを決定し、
前記ルックアップテーブル内の前記最近最も使用されなかったエントリーを除去し、
前記ルーティングアドレスを前記ルックアップテーブル内に格納し、
前記ルーティングアドレスを前記ルックアップテーブル内に格納した後で、前記オープンアドレスフレーム要求内に含まれたアドレス情報を前記ルックアップテーブル内に格納された前記ルーティングアドレスと比較する、ことをさらに含む請求項14に記載の方法。
【請求項16】
最近最も使用された前記ルーティングアドレスを用いて、ルックアップテーブルを設定する前記プロセスが、
最近最も使用された前記ルーティングアドレスを用いて、コンテンツアドレス指定可能メモリを設定することを含む、請求項14に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate