(57)【要約】【課題】  ＳＡＴＡリンクまたはＡＴＡリンクを介してスイッチのデバイスポートに接続された単一ポート方式の格納ユニットへの２つのホストポートからの同時のアクセスを可能にする電子スイッチが必要である。【解決手段】  本発明によるスイッチは、第１のホストユニットに接続される第１のシリアルアドバンスドテクノロジーアタッチメント（ＡＴＡ）ポートと、第２のホストユニットに接続される第２のシリアルＡＴＡポートとデバイスに接続される第３のシリアルＡＴＡポートと、ｄ）該第１のホストユニットまたは第２のホストユニットのどちらか一方が、該デバイスによって実行されるコマンドを送信する場合はいつでも、該スイッチを介して、該第１のホストユニットまたは該第２のホストユニットの該デバイスに接続されるべき一方を選択するアービトレーションおよびコントロール回路とを備える。【選択図】  図５
2005327230.tif 000002
【特許請求の範囲】
【請求項１】
複数のホストユニットと該ホストユニット間で通信するデバイスとの間に接続されるスイッチであって、
ａ）第１のホストユニットに接続される第１のシリアルアドバンスドテクノロジーアタッチメント（ＡＴＡ）ポートと、
ｂ）第２のホストユニットに接続される第２のシリアルＡＴＡポートと、
ｃ）デバイスに接続される第３のシリアルＡＴＡポートと、
ｄ）該第１のホストユニットまたは第２のホストユニットのどちらか一方が、該デバイスによって実行されるコマンドを送信する場合はいつでも、該スイッチを介して、該第１のホストユニットまたは該第２のホストユニットの該デバイスに接続されるべき一方を選択するアービトレーションおよびコントロール回路と
を備える、スイッチ。
【請求項２】
前記第１のシリアルＡＴＡポートは、第１のホストタスクファイルを含む、請求項１に記載のスイッチ。
【請求項３】
前記第２のシリアルＡＴＡポートは、第２のホストタスクファイルを含む、請求項１に記載のスイッチ。
【請求項４】
前記第３のシリアルＡＴＡポートは、デバイスタスクファイルを含む、請求項３に記載のスイッチ。
【請求項５】
前記第１、第２、および第３のポートは、レベル４ポートである、請求項３に記載のスイッチ。
【請求項６】
前記デバイスは、ストレージユニットである、請求項１に記載のスイッチ。
【請求項７】
前記スイッチは、企業システムで利用される、請求項１に記載のスイッチ。
【請求項８】
前記アービトレーションおよびコントロール回路は、前記第１のおよび第２のホストユニットによる前記デバイスの同時アクセスを生じさせる、請求項１に記載のスイッチ。
【請求項９】
データ、コマンド、またはセットアップの形式の情報が、前記デバイスから前記スイッチを介して前記第１または第２のホストユニットへ転送され、該情報は、該第１または第２のホストユニットによって受信される前に、該スイッチによって修正されることにより、該情報ではなく修正された情報が、該第１または第２のホストユニットによって受信される、請求項１に記載のスイッチ。
【請求項１０】
前記情報は、「ｉｄｅｎｔｉｆｙ  ｄｒｉｖｅ  ｒｅｓｐｏｎｓｅ」と呼ばれる、請求項９に記載のスイッチ。
【請求項１１】
前記情報は、「Ｔａｇ」と呼ばれる、請求項９に記載のスイッチ。
【請求項１２】
データ、コマンド、またはセットアップの形式の情報が、前記第１または第２のホストユニットから前記スイッチを介して前記デバイスへ転送され、該情報は、該デバイスによって受信される前に、該スイッチによって修正されることにより、該情報ではなく修正された情報が、該デバイスによって受信される、請求項１に記載のスイッチ。
【請求項１３】
前記情報は、「Ｔａｇ」と呼ばれる、請求項１２に記載のスイッチ。
【請求項１４】
前記アービトレーションおよびコントロール回路は、ホストを識別するために、ホストタグをデバイスタグにマッピングし、かつ、逆マッピングを行うためのＴａｇ／Ｓａｃｔｉｖｅ  Ｍａｐｐｉｎｇ  Ｃｉｒｃｕｉｔを含む、請求項１２に記載のスイッチ。
【請求項１５】
前記第１または前記第２のホストのどちらか一方は、前記デバイスが待ち行列を作るレガシーキューコマンドを送信する、請求項１に記載のスイッチ。
【請求項１６】
前記第１または第２のホストは、前記デバイスによる実行のために、ネイティブキューコマンドを送信する、請求項１に記載のスイッチ。
【請求項１７】
前記ネイティブキューコマンドのＴａｇは、前記デバイスに送信する前に修正され、両ホスト用に同じＴａｇを利用することを避け、最大可能なＴａｇの値を超えさせない、請求項１６に記載のスイッチ。
【請求項１８】
デバイスからのＦＩＳに受信されたＴａｇは、ホストに送信する前にそのオリジナルの値に修正される、請求項１７に記載のスイッチ。
【請求項１９】
前記第１、第２、および第３のポートは、レベル３シリアルＡＴＡポートであり、データＦＩＳ  ＦＩＦＯおよび関連するＦＩＦＯコントロールは、該第１、第２、および第３のポートに接続され、外部から位置づけられる、請求項１に記載のスイッチ。
【請求項２０】
ａ）第１のホストユニットに接続される第１のシリアルアドバンスドテクノロジーアタッチメント（ＡＴＡ）ポートと、
ｂ）第２のホストユニットに接続される第２のシリアルＡＴＡポートと、
ｃ）デバイスに接続される第３のシリアルＡＴＡポートと、
ｄ）該第１のホストユニットと該第２のホストユニットのどちらか一方が、該デバイスによって実行されるコマンドを送信する場合に、該スイッチを介して、該第１のホストユニットまたは該第２のホストユニットの該デバイスに接続されるべき一方を選択するアービトレーションおよびコントロール回路と
を備え、該第１または第２のホストユニットの一方が、該スイッチを介して該デバイスに接続される一方で、該第１または第２のホストユニットの他方が、該デバイスによって実行するためのコマンドを該スイッチに送信する、スイッチ。
【請求項２１】
前記スイッチは、シリアルＡＴＡスイッチである、請求項２０に記載のスイッチ。
【請求項２２】
前記第１のシリアルＡＴＡポートは、第１のホストタスクファイルを含む、請求項２０に記載のスイッチ。
【請求項２３】
前記第２のシリアルＡＴＡポートは、第２のホストタスクファイルを含む、請求項２２に記載のスイッチ。
【請求項２４】
前記第３のシリアルＡＴＡポートは、デバイスタスクファイルを含む、請求項２３に記載のスイッチ。
【請求項２５】
前記デバイスは、ストレージユニットである、請求項２０に記載のスイッチ。
【請求項２６】
前記スイッチは、企業システムで利用される、請求項２０に記載のスイッチ。
【請求項２７】
前記アービトレーションおよびコントロールは、前記第１および第２のホストユニットによる前記デバイスの同時アクセスを生じさせる、請求項２０に記載のスイッチ。
【請求項２８】
データ、コマンド、またはセットアップの形式の情報が、前記デバイスから前記スイッチを介して前記第１または第２のホストユニットへ転送され、該情報は、該第１または第２のホストユニットによって受信される前に、該スイッチによって修正されることにより、該情報ではなく修正された情報が、該第１または第２のホストユニットによって受信される、請求項２０に記載のスイッチ。
【請求項２９】
前記情報は、「Ｔａｇ」と呼ばれる、請求項２８に記載のスイッチ。
【請求項３０】
前記情報は、「ｉｄｅｎｔｉｆｙ  ｄｒｉｖｅ  ｒｅｓｐｏｎｓｅ」と呼ばれる、請求項２８に記載のスイッチ。
【請求項３１】
データ、コマンド、またはセットアップの形式の情報が、前記第１または第２のホストユニットから前記スイッチを介して前記デバイスへ転送され、該情報は、該デバイスによって受信される前に、該スイッチによって修正されることにより、該情報ではなく修正された情報が、該デバイスによって受信される、請求項２０に記載のスイッチ。
【請求項３２】
前記情報は、「Ｔａｇ」と呼ばれる、請求項３１に記載のスイッチ。
【請求項３３】
複数のホストユニットと該ホストユニット間で通信するデバイスとの間に接続されるスイッチであって、
ａ）第１のホストユニットに接続される第１のシリアルアドバンスドテクノロジーアタッチメント（ＡＴＡ）ポートであって、第１のホストを含む、ポートと、
ｂ）第２のホストユニットに接続される第２のシリアルＡＴＡポートと、
ｃ）デバイスに接続される第３のパラレルＡＴＡポートと、
ｄ）該第１のホストユニットまたは該第２のホストユニットのどちらか一方が、該デバイスによって実行されるコマンドを送信する場合はいつでも、該スイッチを介して、該第１のホストユニットまたは該第２のホストユニットの該デバイスに接続されるべき一方を選択するアービトレーションおよびコントロール回路と
を備える、スイッチ。
【請求項３４】
前記第１のシリアルＡＴＡポートは、第１のホストタスクファイルを含む、請求項３３に記載のスイッチ。
【請求項３５】
前記第２のシリアルＡＴＡポートは、第２のホストタスクファイルを含む、請求項３４に記載のスイッチ。
【請求項３６】
前記第３のパラレルＡＴＡポートは、デバイスタスクファイルを含む、請求項３５に記載のスイッチ。
【請求項３７】
前記第１、第２、および第３のポートは、レベル４ポートである、請求項３６に記載のスイッチ。
【請求項３８】
前記デバイスは、ストレージユニットである、請求項３３に記載のスイッチ。
【請求項３９】
前記スイッチは、企業システムで利用される、請求項３３に記載のスイッチ。
【請求項４０】
前記アービトレーションおよびコントロール回路は、前記第１のおよび第２のホストユニットによる前記デバイスの同時アクセスを生じさせる、請求項３３に記載のスイッチ。
【請求項４１】
データ、コマンド、またはセットアップの形式の情報が、前記デバイスから前記スイッチを介して前記第１または第２のホストユニットへ転送され、該情報は、該第１または第２のホストユニットによって受信される前に、該スイッチによって修正されることにより、該情報ではなく修正された情報が、該第１または第２のホストユニットによって受信される、請求項３３に記載のスイッチ。
【請求項４２】
前記情報は、「ｉｄｅｎｔｉｆｙ  ｄｒｉｖｅ  ｒｅｓｐｏｎｓｅ」と呼ばれる、請求項４１に記載のスイッチ。
【請求項４３】
前記情報は、「Ｔａｇ」と呼ばれる、請求項４１に記載のスイッチ。
【請求項４４】
データ、コマンド、またはセットアップの形式の情報が、前記第１または第２のホストユニットから前記スイッチを介して前記デバイスへ転送され、該情報は、該デバイスによって受信される前に、該スイッチによって修正されることにより、該情報ではなく修正された情報が、該デバイスによって受信される、請求項３３に記載のスイッチ。
【請求項４５】
前記情報は、「Ｔａｇ」と呼ばれる、請求項４４に記載のスイッチ。
【請求項４６】
前記アービトレーションおよびコントロール回路は、ホストを識別するために、ホストタグをデバイスタグにマッピングし、かつ、逆マッピングを行うためのＴａｇ／Ｓａｃｔｉｖｅ  Ｍａｐｐｉｎｇ  Ｃｉｒｃｕｉｔを含む、請求項４５に記載のスイッチ。
【請求項４７】
前記第１または前記第２のホストのどちらか一方は、前記デバイスが待ち行列を作るレガシーキューコマンドを送信する、請求項３３に記載のスイッチ。
【請求項４８】
前記第１および第２のホストは、前記デバイスによる実行のために、ネイティブキューコマンドを送信する、請求項３３に記載のスイッチ。
【請求項４９】
前記第１、第２、および第３のポートは、レベル３ポートであり、データフレームインフォメーションシステム（ＦＩＳ）ファーストインファーストアウト（ＦＩＦＯ）および関連するＦＩＦＯコントロールは、該第１、第２、および第３のポートに接続され、外部から位置づけられる、請求項３３に記載のスイッチ。
【請求項５０】
ａ．第１のホストユニットに接続する第１のシリアルアドバンスドテクノロジーアタッチメント（ＡＴＡ）ポートと、
ｂ．第２のホストユニットに接続する第２のシリアルＡＴＡポートと、
ｃ．デバイスに接続する第３のパラレルＡＴＡポートと、
ｄ．該第１のホストユニットまたは該第２のホストユニットのどちらか一方が、該デバイスによって実行されるコマンドを送信する場合に、該スイッチを介して、該第１のホストユニットまたは該第２のホストユニットの該デバイスに接続されるべき一方を選択するアービトレーションおよびコントロール回路と
を備え、該第１または第２のホストユニットの一方が、該スイッチを介して該デバイスに接続される一方で、該第１または第２のホストユニットの他方が、該デバイスによって実行するためのＡＴＡコマンドを該スイッチに送信する、スイッチ。
【請求項５１】
前記スイッチは、シリアルＡＴＡスイッチである、請求項５０に記載のスイッチ。
【請求項５２】
前記第１のシリアルＡＴＡポートは、第１のホストタスクファイルを含む、請求項５０に記載のスイッチ。
【請求項５３】
前記第２のシリアルＡＴＡポートは、第２のホストタスクファイルを含む、請求項５２に記載のスイッチ。
【請求項５４】
前記第３のパラレルＡＴＡポートは、デバイスタスクファイルを含む、請求項５３に記載のスイッチ。
【請求項５５】
前記デバイスは、ストレージユニットである、請求項５０に記載のスイッチ。
【請求項５６】
前記スイッチは、企業システムで利用される、請求項５０に記載のスイッチ。
【請求項５７】
前記アービトレーション回路は、前記第１および第２のホストユニットによる前記デバイスの同時アクセスを生じさせる、請求項５０に記載のスイッチ。
【請求項５８】
データ、コマンド、またはセットアップの形式の情報が、前記デバイスから前記スイッチを介して前記第１または第２のホストユニットへ転送され、該情報は、該第１または第２のホストユニットによって受信される前に、該スイッチによって修正されることにより、該情報ではなく修正された情報が、該第１または第２のホストユニットによって受信される、請求項５０に記載のスイッチ。
【請求項５９】
前記情報は、「ｉｄｅｎｔｉｆｙ  ｄｒｉｖｅ  ｒｅｓｐｏｎｓｅ」と呼ばれる、請求項５８に記載のスイッチ。
【請求項６０】
前記情報は、「Ｔａｇ」と呼ばれる、請求項５８に記載のスイッチ。
【請求項６１】
データ、コマンド、またはセットアップの形式の情報が、前記第１または第２のホストユニットから前記スイッチを介して前記デバイスへ転送され、該情報は、該デバイスによって受信される前に、該スイッチによって修正されることにより、該情報ではなく修正された情報が該デバイスによって受信される、請求項５０に記載のスイッチ。
【請求項６２】
前記情報は、「Ｔａｇ」と呼ばれる、請求項６０に記載のスイッチ。
【請求項６３】
シリアルアドバンスドテクノロジーアタッチメント（ＡＴＡ）リンクを介して、第１のホストユニット、第２のホストユニット、およびデバイスに接続可能なスイッチであって、該スイッチは、
ａ．第１のホストユニットに接続する第１のシリアルＡＴＡポートと、
ｂ．第２のホストユニットに接続する第２のシリアルＡＴＡポートと、
ｃ．デバイスに接続する第３のパラレルＡＴＡポートと、
ｄ．該第１または第２のホストユニットのどちらか一方が、該デバイスによって実行されるコマンドを送信する場合に、該スイッチを介して、該第１のホストユニットまたは該第２のホストユニットの該デバイスに接続されるべき一方を選択するアービトレーションおよびコントロール回路と
を備え、該第１または第２のホストユニットの一方が、該デバイスに接続される一方で、該第１または第２のホストユニットの他方が、該デバイスによって実行するためのＡＴＡコマンドを該スイッチに送信する、スイッチ。
【請求項６４】
前記スイッチは、シリアルＡＴＡスイッチである、請求項６３に記載のスイッチ。
【請求項６５】
前記第１のシリアルＡＴＡポートは、第１のホストタスクファイルを含む、請求項６３に記載のスイッチ。
【請求項６６】
前記第２のシリアルＡＴＡポートは、第２のホストタスクファイルを含む、請求項６５に記載のスイッチ。
【請求項６７】
前記第３のパラレルＡＴＡポートは、デバイスタスクファイルを含む、請求項６６に記載のスイッチ。
【請求項６８】
前記デバイスは、ストレージユニットである、請求項６３に記載のスイッチ。
【請求項６９】
前記スイッチは、企業システムで利用される、請求項６３に記載のスイッチ。
【請求項７０】
前記アービトレーションおよびコントロール回路は、前記第１および第２のホストユニットによる前記デバイスの同時アクセスを生じさせる、請求項６３に記載のスイッチ。
【請求項７１】
データ、コマンド、またはセットアップの形式の情報が、前記デバイスから前記スイッチを介して前記第１または第２のホストユニットへ転送され、該情報は、該第１または第２のホストユニットによって受信される前に、該スイッチによって修正されることにより、該情報ではなく修正された情報が、該第１または第２のホストユニットによって受信される、請求項６３に記載のスイッチ。
【請求項７２】
前記情報は、「ｉｄｅｎｔｉｆｙ  ｄｒｉｖｅ  ｒｅｓｐｏｎｓｅ」と呼ばれる、請求項７１に記載のスイッチ。
【請求項７３】
前記情報は、「Ｔａｇ」と呼ばれる、請求項７１に記載のスイッチ。
【請求項７４】
データ、コマンド、またはセットアップの形式の情報が、前記第１または第２のホストユニットから前記スイッチを介して前記デバイスへ転送され、該情報は、該デバイスによって受信される前に、該スイッチによって修正されることにより、該情報ではなく修正された情報が該デバイスによって受信される、請求項６３に記載のスイッチ。
【請求項７５】
前記情報は、「Ｔａｇ」と呼ばれる、請求項７４に記載のスイッチ。
【請求項７６】
複数のホストユニットと該ホストユニット間でフレーム情報をルーティングするデバイスとの間に接続されるスイッチであって、
ａ．第１のシリアルアドバンスドテクノロジーアタッチメント（ＡＴＡ）ポートであって、第１のホストユニットに接続され、ルートアウェアフレームインフォメーションストラクチャ（ＦＩＳ）を含む、ポートと、
ｂ．第２のホストユニットに接続され、ルートアウェアＦＩＳを含む、第２のシリアルＡＴＡポートと、
ｃ．デバイスに接続され、ルートアウェアＦＩＳを含む、第３のシリアルＡＴＡポートと、
ｄ．該第１のホストユニットまたは第２のホストユニットのどちらか一方が、該デバイスにＦＩＳを送信する場合はいつでも、該スイッチを介して、該第１のホストユニットまたは該第２のホストユニットの該デバイスに接続されるべき一方を選択するアービトレーションおよびコントロール回路であって、さらに、該第１および第２のホストユニットならびに該デバイスのＦＩＳは、該第１または第２のホストユニットのどちらがオリジンおよび／またはデスティネーションホストであるかを識別することにより、ＦＩＳのルーティングは、該スイッチに対してトランスペアレントであり、それにより、製造を安価にする該スイッチの設計の複雑性を低減させる、アービトレーションおよびコントロール回路と
を備える、スイッチ。
【請求項７７】
前記デバイスは、ストレージユニットである、請求項７６に記載のスイッチ。
【請求項７８】
前記スイッチは、企業システムで利用される、請求項７６に記載のスイッチ。
【請求項７９】
前記アービトレーションおよびコントロール回路は、前記第１のおよび第２のホストユニットによる前記デバイスの同時アクセスを生じさせる、請求項７６に記載のスイッチ。
【請求項８０】
１ビットが、どちらのホストが前記ＦＩＳのオリジンまたはデスティネーションであるかを示すために利用される、請求項７６に記載のスイッチ。
【請求項８１】
前記第１、第２、および第３のポートは、レイヤ２ポートである、請求項７６に記載のスイッチ。
【請求項８２】
前記スイッチは、「ｒｏｕｔｅ  ａｗａｒｅ」ルーティングを提供する、請求項７６に記載のスイッチ。
【請求項８３】
前記スイッチは、レイヤ２の間で切り替わり、デュアルポートファーストインファーストアウト（ＦＩＦＯ）を含む、請求項７６に記載のスイッチ。
【請求項８４】
スイッチであって、
ａ．第１のシリアルアドバンスドテクノロジーアタッチメント（ＡＴＡ）ポートであって、第１のホストユニットに接続され、ルートアウェアフレームインフォメーションストラクチャ（ＦＩＳ）を含む、ポートと、
ｂ．第２のホストユニットに接続され、ルートアウェアＦＩＳを含む、第２のシリアルＡＴＡポートと、
ｃ．デバイスに接続され、ルートアウェアＦＩＳを含む、第３のシリアルＡＴＡポートであって、該スイッチは、該第１および第２のホストユニットならびに該デバイスの間のフレーム情報をルーティングする、ポートと、
ｄ．該第１のホストユニットまたは第２のホストユニットのどちらか一方が、該デバイスにＦＩＳを送信する場合、該スイッチを介して、該第１のホストユニットまたは該第２のホストユニットの該デバイスに接続されるべき一方を選択するアービトレーションおよびコントロール回路と
を備え、該第１または第２のホストユニットの一方が、該スイッチを介して、該デバイスに接続される一方、該第１または第２のホストユニットの他方が、該デバイスまでルーティングする該スイッチにＦＩＳを送信し、さらに、該第１および第２のホストユニットならびに該デバイスのＦＩＳは、該第１または第２のホストユニットのどちらがオリジンおよび／またはデスティネーションホストであるかを識別することにより、ＦＩＳのルーティングは、該スイッチに対してトランスペアレントであり、それにより、製造を安価にする該スイッチの設計の複雑性を低減させる、スイッチ。
【請求項８５】
前記スイッチは、シリアルＡＴＡスイッチである、請求項８４に記載のスイッチ。
【請求項８６】
前記デバイスは、格納ユニットである、請求項８４に記載のスイッチ。
【請求項８７】
前記スイッチは、企業システムで利用される、請求項８４に記載のスイッチ。
【請求項８８】
前記アービトレーションおよび制御は、前記第１および前記第２のホストユニットによるデバイスの同時アクセスを生じさせる、請求項７６に記載のスイッチ。
【請求項８９】
第１のホストユニットと第２のホストユニットとデバイスとの間でフレーム情報をルーティングするために、シリアルアドバンスドテクノロジーアタッチメント（ＡＴＡ）リンクを介して、第１のホストユニット、第２のホストユニット、およびデバイスに接続可能なスイッチであって、該スイッチは、
ａ．第１のホストユニットとの接続のために、ルートアウェアフレームインフォメーションストラクチャ（ＦＩＳ）を含む第１のシリアルＡＴＡポートと、
ｂ．第２のホストユニットとの接続のために、ルートアウェアＦＩＳを含む第２のシリアルＡＴＡポートと、
ｃ．デバイスとの接続のために、ルートアウェアＦＩＳを含む第３のシリアルＡＴＡポートと、
ｄ．該第１または第２ののホストユニットが該デバイスにＦＩＳを送信した場合に該スイッチを通じて該デバイスに結合されるべき該第１および第２のホストユニットの１つを選択するアービトレーションおよび制御回路と
を備え、該第１または第２のホストユニットの一方が、該デバイスに接続される一方で、該第１または第２のホストユニットの他方が、該デバイスにルーティングするための該スイッチにＦＩＳを送信し、さらに、該第１および第２のホストユニットならびにデバイスのＦＩＳは、該第１または第２のホストユニットのどちらの一方が、オリジンおよび／またはデスティネーションホストであるかを識別することにより、ＦＩＳのルーティングは、該スイッチに対してトランスペアレントであり、それにより、製造を安価にする該スイッチの設計の複雑性を低減させる、スイッチ。
【請求項９０】
前記スイッチは、シリアルＡＴＡスイッチである、請求項８９に記載のスイッチ。
【請求項９１】
前記デバイスは、ストレージユニットである、請求項８９に記載のスイッチ。
【請求項９２】
前記スイッチは、企業システムで利用される、請求項８９に記載のスイッチ。
【請求項９３】
前記アービトレーションおよびコントロール回路は、前記第１のおよび第２のホストユニットによる前記デバイスの同時アクセスを生じさせる、請求項８９に記載のスイッチ。
【請求項９４】
シリアルアドバンスドテクノロジーアタッチメント（ＡＴＡ）スイッチを介して、複数のホストユニットとデバイスとの間で通信する方法であって、該スイッチは、フレーム情報をルーティングするシリアルＡＴＡリンクを利用して、該複数のホストユニットおよび該デバイスに接続され、該方法は、
ａ．該スイッチとの接続のために、ルートアウェアフレームインフォメーションストラクチャ（ＦＩＳ）を含む第１のシリアルＡＴＡポートを、第１のホストユニットに接続するステップと、
ｂ．該スイッチとの接続のために、ルートアウェアＦＩＳを含む第２のシリアルＡＴＡポートを、第２のホストユニットに接続するステップと、
ｃ．デバイスとの接続のために、ルートアウェアＦＩＳを含む第３のシリアルＡＴＡポートを接続するステップと、
ｄ．該第１および第２のホストユニットならびに該デバイスの間でアービトレーションするステップと、
ｅ．該第１または第２のホストユニットのどちらか一方が、該デバイスによって実行されるコマンドを送信する場合、該スイッチを介して該デバイスに接続するために、該第１または第２のホストユニットの一方を選択するステップと、
ｆ．該第１または第２のホストユニットの該選択された一方に該デバイスを接続するステップと、
ｇ．該第１または第２のホストユニットの該選択された一方が、該デバイスに接続されている間に、該第１または第２のホストユニットの他方が、該デバイスまでルーティングするために、該スイッチにＦＩＳを送信するステップと
を包含し、送信するステップｇ．の間、該第１および第２のホストユニットならびにデバイスのＦＩＳは、該第１または第２のホストユニットのどちらの一方が、オリジンおよび／またはデスティネーションホストであるかを識別することにより、ＦＩＳのルーティングは、該スイッチに対してトランスペアレントであり、それにより、製造を安価にする該スイッチの設計の複雑性を低減させる、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本出願は、「Ｓｅｒｉａｌ  ＡＴＡ  Ｓｗｉｔｃｈ」と称される米国仮特許出願第６０／４７７，８５７号（２００３年６月１１日出願）の利益を主張し、「Ｓｗｉｔｃｈｉｎｇ  Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ（ＳＡＴＡ）  Ｔｏ  Ａ  Ｐａｒａｌｌｅｌ  Ｉｎｔｅｒｆａｃｅ」と称される米国特許出願第      号（２００４年２月９日出願）の一部継続出願であり、かつ、「Ｒｏｕｔｅ  Ａｗａｒｅ  Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ（ＳＡＴＡ）Ｓｗｉｔｃｈ」と称される米国特許出願第      号（２００４年２月９日出願）の一部継続出願である。
【０００２】
（発明の分野）
本発明は、概して、ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）スイッチに関し、特に、２つのホストポート、および両方のホストポートによって同時にデバイスポートにアクセスすることを可能にする１つのデバイスポートとを有するスイッチに関する。
【背景技術】
【０００３】
（発明の背景）
（ＳＡＴＡプロトコルの概観）
本明細書中で用いられる「デバイス」は、業界が採用する任意の公知の標準規格に準拠する周辺機器のことである。ＳＡＴＡは、大容量格納デバイスの並列のＡＴＡ（Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）アタッチメントに代わる高速シリアルリンクである。用いられるシリアルリンクは、当業者に公知のギガビット技術および８ｂ／１０ｂエンコーディングを利用するポイントツーポイント高速差分リンクである。ＳＡＴＡプロトコルは、（ＯＳＩ）Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）参照モデルと類似の階層通信モデルに基づく。概観が以下に提供される。さらに詳細に知りたい場合、読者は、参考のため本明細書中に援用されるＳＡＴＡ標準規格を参照されたい。ＳＡＴＡ仕様は、「Ｓｅｒｉａｌ  ＡＴＡ：Ｈｉｇｈ  Ｓｐｅｅｄ  Ｓｅｒｉａｌｉｚｅｄ  ＡＴＡ  Ａｔｔａｃｈｍｅｎｔ」Ｒｅｖｉｓｉｏｎｓ１．０（２００１年８月２９日）と称される刊行物、および、「Ｓｅｒｉａｌ  ＡＴＡ  ＩＩ：Ｅｘｔｅｎｓｉｏｎｓ  ｔｏ  Ｓｅｒｉａｌ  ＡＴＡ  １．０」Ｒｅｖｉｓｉｏｎ１．０（２００２年１０月１６日）と称される刊行物に提供される（これらの両方は、Ｓｅｒｉａｌ  ＡＴＡワークグループのウェブサイトｗｗｗ．ｓｅｒｉａｌａｔａ．ｃｏｍにて現在利用可能である。
【０００４】
ＳＡＴＡプロトコルにおいて、プロトコルの各層は、その対応側と直接または間接的に通信する。図１ａは、ＳＡＴＡプロトコル通信層２０を示す。物理（Ｐｈｙ）層（ＰＬ）２１は、ＳＡＴＡユニット間の物理的な通信を管理する。ＰＬのサービスは、
リンク層（ＬＬ）２２からのパラレル入力をシリアル化すること、および、差動ＮＲＺ（Ｎｏｎ−Ｒｅｔｕｒｎ  ｔｏ  Ｚｅｒｏ）シリアルストリームを送信すること、
差動ＮＲＺシリアルストリームを受信すること、シリアルビットストリームからデータ（選択的に、クロック）を抽出すること、シリアルストリームを非シリアル化すること、ならびに、ビットおよびワードアライメントパラレル出力をＬＬ２２に提供すること、
パワーオンシーケンスを実行すること、および、スピードネゴシエーションを実行すること、
規定の帯域外（ＯＯＢ）信号検出および生成を実行すること
を含む。
【０００５】
シリアルＡＴＡリンクは、公知の標準規格に従うプロトコルによって規定されており、４つの通信の層、すなわち、物理レベルで通信を実行するための物理層、リンク層、トランスポート層、およびアプリケーション層（コマンド層と呼ばれることもある）を有する。送信器および受信器は、直接相互に後の層と通信させることはできず、これらの層は、他の対応する層に到達する前に、システムの他の層を通り抜けなければならない。例えば、送信器の物理層が受信器のトランスポート層と通信するためには、最初にリンクを通って送信器のトランスポート層およびアプリケーション層、その後、シリアルＡＴＡリンクを通って受信器のアプリケーション層に進み、最後に、受信器のトランスポート層に到達しなければならない。
【０００６】
通信または交換の基本単位はフレームである。フレームは、ＳＯＦ（フレーム開始部：ｓｔａｒｔ  ｏｆ  ｆｒａｍｅ）プリミティブ、ＦＩＳ（フレーム情報構造：ｆｒａｍｅ  ｉｎｆｏｒｍａｔｉｏｎ  ｓｔｒｕｃｔｕｒｅ）、ＦＩＳのコンテンツにわたって計算されるＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋｓｕｍ）、およびＥＯＦ（フレーム終了部：ｅｎｄ  ｏｆ  ｆｒａｍｅ）プリミティブから構成される。シリアルＡＴＡ機関は、ある仕様を定義した。このフレームの定義は、提供され、かつ、このドキュメント全体にわたって用いられることが意図される仕様を定義している。プリミティブは、シリアルラインのステータスを制御および提供するために用いられるダブルワード（Ｄｗｏｒｄ）エンティティである。シリアルＡＴＡ機関は、許可されるプリミティブの定義が提供され、かつ、このドキュメント全体にわたって用いられるように意図される。
【０００７】
図１ｂは、フレーム３０の例を示す。このフレームは、図１ｂにおいて、ＳＯＦプリミティブ３０ａで開始し、次に、第１のＦＩＳコンテンツ３０ｂ、次に、送信器が利用可能なデータを有しないことを示すＨＯＬＤプリミティブ３０ｃ、次に、第２のＦＩＳコンテンツ３０ｄ、次に、受信器バッファが状態でない「実行可能（ｎｏｔ  ｒｅａｄｙ）」ことを示すＨＯＬＤプリミティブの受取りを通知するために送信されるＨＯＬＤＡプリミティブ３０ｅが続き、次にＣＲＣ３０ｆ、およびＥＯＦプリミティブ３０ｇが続く。
【０００８】
フレームは、図１ｂにおいて、フロー制御のために用いられる２つのプリミティブＨＯＬＤおよびＨＯＬＤＡプリミティブを含む。ＨＯＬＤプリミティブは、ＦＩＳコンテンツを送信または受信できないことを示す。ＨＯＬＤＡプリミティブは、ＨＯＬＤプリミティブの受取りを通知するために送信される。例えば、そのバッファがほぼ一杯であることを検出した場合、受信ノードは、ＨＯＬＤプリミティブを送信ノードに送信し、送信器ノードがストップするようリクエストし、バッファがさらなるデータを受信するように実行可能である（ｒｅａｄｙ）場合、受信ノードは、ＨＯＬＤプリミティブの送信をストップする。送信ノードは、ＨＯＬＤプリミティブの受取りを通知するためにＨＯＬＤＡプリミティブを送信する。ＨＯＬＤＡプリミティブが受信されるまで、受信ノードは、データの受信を継続する。バッファのオーバーランを避けるために、ＳＡＴＡプロトコルは、ＨＯＬＤプリミティブを送信するノードとＨＯＬＤＡプリミティブを受信するノードとの間に２０Ｄｗｏｒｄｓの最大遅延を必要とする。
【０００９】
図１ｄに示されるように、多数の異なったフレームタイプがある。例えば、データをＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）を介して送信するために、ＤＭＡセットアップＦＩＳとして公知のフレームが利用され、次に、ＤＭＡデータＦＩＳが続く。通常、３つのタイプのＦＩＳ構造があり、１つはコマンド用、１つは、転送のセットアップ用、および、もう１つは、転送に関連するデータ用である。各フレーム構造は、異なった目的で用いられる。コマンドタイプのフレームは、コマンドを実行するために送信され、セットアップフレームは、コマンドのデータ転送フェーズを準備するために用いられ、データフレームは、データを転送するために用いられる。コマンド層において、システムは、上述の、および図１ｃに示されるタスクファイルを通じてコマンド層と通信する。コマンド層は、２つの別個のバスを通信のために用いる。これらの一方はデータＦＩＳを転送するためのもの、他方は、非データＦＩＳを転送するためのものである。本明細書中では２つのバスが記載されるが、単一バスを用いてもよい。
【００１０】
リンク層（ＬＬ）２２は、フレームを送信および受信し、ＰＬ２１からの制御信号に基づいてプリミティブを送信し、トランスポート層（ＴＬ）２３への制御信号に変換されたプリミティブを物理層（ＰＬ）２１から受信する。
【００１１】
トランスポート層（ＴＬ）２３は、フレームが送信および受信される態様を認識する必要がない。ＴＬ２３は、送信のためのフレーム情報構造（ＦＩＳ）を単に構成し、受信されたＦＩＳを分解する。
【００１２】
図１ｄは、ＦＩＳタイプを示す。ＦＩＳタイプは、まとめると
レジスタＦＩＳ−ホストからデバイスへ  ４０（ｉ）
レジスタＦＩＳ−デバイスからホストへ  ４０（ｉｉ）
ＤＭＡ  アクティベート  ＦＩＳ  ４０（ｉｉｉ）
ＤＭＡ  セットアップ  ＦＩＳ  ４０（ｉｖ）
セットデバイスビット  ＦＩＳ  ４０（ｖ）
ＰＩＯ  セットアップ  ＦＩＳ  ４０（ｖ）
データ  ＦＩＳ  ４０（ｖｉｉ）
ＢＩＳＴ  アクティベート  ＦＩＳ  ４０（ｖｉｉｉ）
のようになる。
【００１３】
シリアルＡＴＡリンクのアプリケーション層において、ホストは、ＡＴＡレジスタ、データポート、エラー、フィーチャ、セクタ、シリンダ  ロー、シリンダ  ハイ、ステータスおよびコマンドであるレジスタのセットにアクセスする。従って、アプリケーション層は、コマンド層におけるＡＴＡ標準規格と同じ言語で通信する。従って、コマンド層は、ＡＴＡリンクと同じレジスタセットを用いる。レジスタセットは、タスクファイルレジスタとして知られる。
【００１４】
コマンド層（ＣＬ）またはアプリケーション層（ＡＬ）２４は、コマンド、データ、およびステータスを送受信するためにＴＬ２３と双方向通信する。ＣＬ２４は、コマンドを送達するか、または、従来のパラレルＡＴＡによって提供される状態と等しい状態を通知する（ｐｏｓｔｉｎｇ）ために用いられるレジスタブロックレジスタ（タスクファイル（ＴＦ）としても知られる）を備える。
【００１５】
図１ｃは、パラレルＡＴＡのシャドーレジスタブロック（Ｓｈａｄｏｗ  Ｒｅｇｉｓｔｅｒ  Ｂｌｏｃｋ）組織の簡略化されたバージョンを示す。シャドーレジスタブロックは、
データポート  ３１ｄｐと、
エラーレジスタ  ３１ｅと、
フィーチャレジスタ  ３１ｆと、
セクタカウント  ３１ｓｃと、
セクタナンバー  ３１ｓｎと、
シリンダ  ロー  ３１ｃｌと、
シリンダ  ハイ  ３１ｃｈと、
デバイス／ヘッド  ３１ｄｅｖと、
ステータス  ３１ｓと、
コマンド  ３１ｃと、
代替ステータス  ３１ａｓと、
デバイスコントロール  ３１ｄｃと
を備える。
【００１６】
層１の機能の１部分またはすべてを含むＳＡＴＡポートは、本明細書中でＳＡＴＡレベル１ポートと呼ばれる。層１および層２の機能の１部分またはすべてを含むＳＡＴＡポートは、本明細書中でＳＡＴＡレベル２ポートと呼ばれる。層１、層２および層３の機能の１部分またはすべてを含むＳＡＴＡポートは、ＳＡＴＡレベル３ポートと呼ばれる。層１、層２、層３および層４の機能の１部分またはすべてを含むＳＡＴＡポートは、本明細書中でＳＡＴＡレベル４ポートと呼ばれる。ＳＡＴＡポートという用語は、レベル１、レベル２、レベル３またはレベル４を含む総称的ポートのことである。ＳＡＴＡ層は、ホストまたはデバイスと接続するためのものである。ＳＡＴＡホストポートという用語は、ホストに接続されたＳＡＴＡポートのことである。ＳＡＴＡデバイスポートという用語は、デバイスに接続されたＳＡＴＡポートのことである。例えば、図２ａのアウトバウンド高速差動送信信号５１ｔｘおよびインバウンド差動受信信号５１ｒｘがホストに接続された場合、ＳＡＴＡポートは、ＳＡＴＡホストポートである。同様に、図２ａのアウトバウンド高速差動送信信号５１ｔｘおよびインバウンド差動受信信号５１ｒｘがデバイスに接続された場合、ＳＡＴＡポートはＳＡＴＡデバイスポートである。
【００１７】
図２ａおよび図２ｂは、ＳＡＴＡポート５０のブロック図を示す。ＳＡＴＡポート５０は、ＰＬ回路５１、ＬＬ回路５２、ＴＬ回路５３およびＣＬ回路５４を備える。ＰＬ回路５１は、アウトバウンド高速差動送信信号５１ｔｘおよびインバウンド差動受信信号５１ｒｘに接続され、ＰＬ回路５１は、リンク送信バス５２ｔおよびリンク受信バス５２ｒを介してＬＬ回路５２に接続される。ＰＬ回路５１は、アナログフロントエンド（ＡＦＥ）５１ａ、ｐｈｙ初期化状態マシン（Ｐｈｙ  ＩＳＭ）５１ｂ、帯域外（ＯＯＢ）検出器５１ｃ、Ｐｈｙ／Ｌｉｎｋインターフェース５１ｅを備える。Ｐｈｙ／Ｌｉｎｋインターフェースブロックは、弾性ＦＩＦＯ（ｆｉｒｓｔ−ｉｎ−ｆｉｒｓｔ−ｏｕｔ）５１ｅｆおよび送信ＦＩＦＯ５１ｔｆを選択的に備える。Ｐｈｙ／Ｌｉｎｋインターフェース５１ｅは、リンク送信バス５２ｔおよびリンク受信バス５２ｒを介するＰＬ回路５１のＬＬ回路５２への接続を提供する。Ｐｈｙ  ＩＳＭ５１ｂによって制御されるマルチプレクサ５１ｄは、Ｐｈｙ  ＩＳＭ５１ｂからリンク送信データ５１ｔまたは初期化シーケンス５１ｓを選択する。ＡＦＥ５１ａは、Ｐｈｙ受信器およびＰｈｙ送信器を備える。ＡＦＥ５１ａは、差動送信信号５１ｔｘおよび差動受信信号５１ｒｘを受信データ５１ｒおよび送信データ５１ｔｄに結合する。Ｐｈｙ送信器は、Ｐｈｙ送信器イネーブル（ＰｈｙＴｘＥｎ）信号５１ｔｅによってイネーブルされる。Ｐｈｙ送信器がディセーブルされた場合、Ｐｈｙ出力は、アイドルバス状態にある（Ｔｘ差動信号はゼロに減衰する）。ＯＯＢ検出器５１ｃは、帯域外（ＯＯＢ）信号５１ｏを検出する。ＯＯＢ信号５１ｏは、ＣＯＭＲＥＳＥＴ、ＣＯＭＷＡＫＥを含む。
【００１８】
ＬＬ回路５２は、リンク送信バス５２ｔおよびリンク受信バス５２ｒを介してＰＬ回路５１に接続される。ＬＬ回路５２は、トランスポート送信バス５３ｔ、トランスポート受信バス５３ｒ、およびトランスポートコントロール／ステータスバス５３ｃを介してＴＬ回路５３に接続される。ＴＬ回路５３は、送信中にデータＦＩＳを保持するためのデータＦＩＳ  Ｆｉｒｓｔ−Ｉｎ−Ｆｉｒｓｔ−Ｏｕｔ（ＦＩＦＯ）回路５３ａ、非データＦＩＳを保持するための非データＦＩＳレジスタ５３ｂのブロック、およびマルチプレクサ５３ｄを備える。データＦＩＳ  ＦＩＦＯ５３ａは、デュアルポートＦＩＦＯであり、各ポートは、別々の入力および出力を有する。ＦＩＦＯ５３ａは、第１のＦＩＦＯポート５３ａ（１）および第２のポート５３ａ（２）を備え、第１のポートは、第１の入力ポート５３ａ（ｉ１）および第１のＦＩＦＯ出力ポート５３ａ（ｏ１）をさらに備え、第２のポートは、第２のＦＩＦＯ入力ポート５３ａ（ｉ２）および第２の出力ポート５３ａ（ｏ２）をさらに備える。
【００１９】
第１のＦＩＦＯポート５３ａ（１）は、トランスポート送信バス５３ｔ、トランスポート受信バス５３ｒ、およびトランスポートコントロール／ステータスバス５３ｃを介してＬＬ回路５２に結合される。第２のＦＩＦＯポート５３ａ（２）は、データＦＩＳ受信バス５４ｒおよびデータＦＩＳ送信バス５４ｔを介してＣＬ回路５４に結合される。ＴＬ回路５３は、タスクファイル入力バス５４ｉおよびタスクファイル出力バス５４ｏを介してＣＬ回路５４に結合される。マルチプレクサ５３ｄは、第１のＦＩＦＯ出力ポート５３ａ（ｏ１）とタスクファイル入力バス５４ｉとの間で選択する。ＣＬ回路５４は、タスクファイル５４ａを備える。タスクファイル５４ａは、タスクファイル入力バス５４ｉおよびタスクファイル出力バス５４を介してＴＬ回路５３に結合される。タスクファイル５４ａは、ポートタスクファイル入力バス５６ｉおよびポートタスクファイル出力バス５６０を介してシステムバス５７に結合され、ＣＬ回路５４は、データＦＩＳ受信バス５４ｒおよびデータＦＩＳ送信バス５４ｔを、データ入力バス５５ｉおよびデータ出力バス５５ｏを介してシステムバス５７にさらに結合する。コンフィギュレーション信号は、ホストまたはデバイスの動作のためのＳＡＴＡポートの動作を構成し、ＣＬ回路５４は、データポートおよびタスクファイルアクセスのために単一バスを介してシステムバス５７に結合され得る。
【００２０】
従来技術のＳＡＴＡスイッチは、２つの異なったホストが同じデバイスに接続することを可能にするが、一方のホストがデバイスに接続された場合、もう一方のホストはデバイスにアクセスできない。従来技術のシステムのこのような限界がさらに説明される。従来技術のＳＡＴＡスイッチでは、２つのホストがデバイスに同時にアクセスすることができない。
【００２１】
図３ａは、従来技術のＳＡＴＡスイッチ１４を用いるシステム１０を示す。システム１０は、ＳＡＴＡホストバスアダプタ（ＳＡＴＡ  ＨＢＡ）１１ａに結合されたホスト１１を備えることが示され、ＳＡＴＡ  ＨＢＡ１１ａは、ＳＡＴＡリンク１１ｂを介してＳＡＴＡスイッチ１４のホストポート１４ａに結合されることが示され、ホスト１２は、ＳＡＴＡ  ＨＢＡ１２ａに結合されることが示され、ＳＡＴＡＨＢＡ１２ａは、ＳＡＴＡリンク１２ｂを介してＳＡＴＡスイッチ１４のホストポート１４ｂに結合される。ＳＡＴＡスイッチ１４のデバイスポート１４ｃは、ＳＡＴＡリンク１６ａを介してハードディスクドライブ（ＨＤＤ）またはテープドライブまたは光学ドライブ等の格納ユニット１６に結合されることが示される。格納ユニット１６は、デバイスの例である。
【００２２】
選択信号１５は、ＳＡＴＡスイッチ１４のホストポート１４ａまたはホストポート１４ｂを選択する。ＳＡＴＡスイッチの現在選択されているホストに結合されるポートは、アクティブポートと考えられ、これに対して、現在選択されているホストに結合されていないポートは、インアクティブポートと考えられる。本明細書中で用いられるアクティブホストは、現在選択されているホストを示す。
【００２３】
アクティブポートを選択するために２つの方法（サイドバンドポート選択およびプロトコルベースのポート選択）が用いられる。サイドバンドポート選択法において、ＳＡＴＡスイッチ１４は、ホスト１１またはホスト１２を、選択信号１５の状態に基づいてデバイス１６に実行可能に結合する。選択信号１５を生成するメカニズムは、システムに依存する。プロトコルベースのポート選択は、インアクティブホストポートのＳＡＴＡプロトコルを用いて、スイッチを駆動させる。プロトコルベースのポート選択は、ＳＡＴＡ  ＯＯＢ信号のシーケンスを用いて、アクティブポートを選択する。上述の方法は、任意の所与の時間に単一のホストによって格納ユニットにアクセスすることを可能にするにすぎない。このタイプのＳＡＴＡスイッチは、簡単なフェイルオーバースイッチと呼ばれる。
【００２４】
図３ｂは、ＳＡＴＡ−ＡＴＡスイッチ６４のシステムアプリケーションを示す。ＳＡＴＡ−ＡＴＡスイッチ６４は、ホスト１１に結合されたＳＡＴＡポート６４ａ、ホスト１２に結合されたＳＡＴＡポート６４ｂ、および格納ユニット６６に結合されたＡＴＡポート６４ｃから構成される。システム６０において、格納ユニット６６は、ＡＴＡリンクを有し、ＡＴＡポート６４ｃがＡＴＡリンク６６ａを介して格納ユニット６６に結合される。
【発明の開示】
【発明が解決しようとする課題】
【００２５】
簡単なフェイルオーバースイッチは、１次ホストが故障した場合、システムは、予備の２次ホスト、従って、名前が簡単なフェイルオーバースイッチにスイッチングする応用例において用いられる。これらのタイプのシステムにおいて、システムの動作は中断され、「グリッチ（ｇｌｉｔｃｈ）」が生じる。明らかに、故障が許されないミッションクリティカルシステムは、故障が生じた場合に中断しないシステム動作を必要とする。従って、ミッションクリティカルシステムは、２つのホストが格納ユニットに同時にアクセスすることを必要とし、従って、ミッションクリティカルシステムは、簡単なフェイルオーバースイッチを用いることができず、その代わりに、デュアルポート格納ユニットを用い、ここで、格納ユニットは、両方のポートから同時にアクセスされ得る。ファイバーチャネル（ＦＣ）ハードディスクドライブ（ＨＤＤ）は、通常、デュアルポート方式であり、通常、ミッションクリティカルシステムにおいて用いられる。ＦＣ  ＨＤＤは、通常、ＳＡＴＡ  ＨＤＤよりも１桁高価である。しかしながら、ミッションクリティカルシステムの格納ユニットにおけるあまり高価でないＡＴＡまたはＳＡＴＡ  ＨＤＤを用いることが経済的に必要とされる。しかしながら、ＡＴＡまたはＳＡＴＡ  ＨＤＤは、単一ポート方式であり、簡単なフェイルオーバースイッチは、複数のホストが格納ユニットに同時にアクセスすることを可能にしない。
【００２６】
従って、格納ユニット等のデバイスにホストがアクセスすることを可能にする電気スイッチが必要であり、ここで、同時アクセスは、ＳＡＴＡリンクまたはＡＴＡリンクを介して、２つ以上のホストポートから、スイッチのデバイスポートに接続された単一ポート方式の格納ユニットへの同時アクセスが可能になる。
【００２７】
ＳＡＴＡスイッチは、故障を引き起こし得る単一パスにおいて、さらなる遅延を引き起こし、信号パスのＳＡＴＡプロトコルタイミング要件のタイミング要件を満たし得るようにする。ここで、ＳＡＴＡスイッチに必要とされるのは、スイッチのさらなる遅延で、ＳＡＴＡプロトコルのタイミング要件が満たされることである。本明細書中で用いられる「ホスト」は、図３ａおよび図３ｂのホスト１１またはホスト１２のことであり、記載の意味合いに依存する。同様に、本明細書中で後述される「デバイス」は、図３ａおよび図３ｂのデバイス１６のことである。
【００２８】
（従来技術のＳＡＴＡスイッチ）
従来技術のシステムの簡単なフェイルオーバースイッチは、層１内でスイッチングを実行する。図４は、層１内でスイッチングする従来技術の簡単なフェイルオーバースイッチ（ＳＦＸ）１００のブロック図を示す。スイッチ１００は、ＰＬ回路１１１、ＰＬ回路１２１、ＰＬ回路１３１、アクティブホスト選択回路１４１、マルチプレクサ１４２、およびスイッチ初期化回路１４４を備えることが示される。ＰＬ回路１１１、１２１および１３１は、ＯＯＢ信号および制御信号１１１ｉ、１２１ｉおよび１３１ｉを提供する改変されたバージョンのＰＬ回路５１（図２ｂに示される）であり、信号のうちの制御信号１１１ｉ、１２１ｉおよび１３１ｉは、それらの１３１の制御信号をそれぞれＰＬ回路１１１、１２１および１３１として提供する。ＰＬ回路１１１は、ホストに接続するように構成され、かつ、アウトバウンド高速差動送信信号１１１ｔｘおよびインバウンド差動受信信号１１１ｒｘに接続される。ＰＬ回路１１１のリンク受信バス１１２ｒは、マルチプレクサ１４２に接続される。
【００２９】
ＰＬ回路１１１のリンク送信バス１１２ｔは、ＰＬ回路１３１のリンク受信バス１３２ｒに接続され、ＰＬ回路１１１のＯＯＢ信号１１１ｏは、スイッチ初期化回路１４４およびアクティブホスト選択回路１４１に接続され、ＰＬ回路１１１のＰｈｙ  ＩＳＭ制御信号１１１ｉは、スイッチ初期化回路１４４に接続される。ＰＬ回路１１１のＰｈｙＴｘＥｎ１１１ｅｎ信号は、アクティブホスト選択回路１４１に接続される。ＰＬ回路１２１は、ホストに接続するように構成され、アウトバウンド高速差動送信信号１２１ｘｔおよびインバウンド差動受信信号１２１ｒｘに接続され、ＰＬ１２１のリンク受信バス１２２ｒは、マルチプレクサ１４２に接続され、ＰＬ回路１２１のリンク送信バス１２２ｔは、ＰＬ回路１３１のリンク受信バス１３２ｒに接続され、ＰＬ回路１２１のＯＯＢ信号１２１ｏは、スイッチ初期化回路１４４およびアクティブホスト選択回路１４１に接続される。ＰＬ回路１２１のＰｈｙ  ＩＳＭ制御信号１２１ｉは、スイッチ初期化回路１４４に接続される。ＰＬ回路１２１のＰｈｙＴｘＥｎ信号１２１ｅｎは、アクティブホスト選択回路１４１に接続される。ＰＬ回路１３１は、デバイスに接続するように構成され、アウトバウンド高速差動送信信号１３１ｔｘおよびインバウンド差動受信信号１３１ｒｘに接続され、ＰＬ回路１３１のリンク受信バス１３２ｒは、ＰＬ回路１１１のリンク送信バス１１２ｔおよびＰＬ回路１２１のリンク送信バス１２２ｔに接続される。ＰＬ回路１３１のリンク送信バス１３２ｔは、マルチプレクサ１４２の出力に接続され、ＰＬ１３１のＯＯＢ信号１３１ｏは、スイッチ初期化回路１４４に接続され、ＰＬ回路１３１のＰｈｙ  ＩＳＭ制御信号１３１ｉは、スイッチ初期化回路１４４に接続される。ＰＬ回路１３１のＰｈｙＴｘＥｎ信号１３１ｅｎは、アクティブホスト選択回路１４１に接続されるか、あるいは、ＰＬ回路１３１送信器の送信器を（図４に図示せず）イネーブルするレベルにセットされる。
【００３０】
アクティブホスト選択回路１４１は、ＳＦＸポート選択検出回路１４１ａおよびＳＦＸポート選択検出回路１４１ｂを備える。ＳＦＸポート選択検出回路１４１ａは、ポート選択シーケンスの出現のためのＣＯＭＲＥＳＥＴをモニタリングし、ポート選択シーケンスが検出された場合、回路１４１ａは、インジケーション信号を生成する。ＳＡＴＡプロトコルは、あるＣＯＭＲＥＳＥＴ信号のアサーションから次のＣＯＭＲＥＳＥＴ信号のアサーションまでの指定されたタイミング要件で、ポート選択シーケンスを一連のＣＯＭＲＥＳＥＴ信号として規定する。
【００３１】
パワーアップに対して選択されるアクティブホストポートはない。ホストポートから受信された第１のＣＯＭＲＥＳＥＴまたはＣＯＭＷＡＫＥは、これがアクティブホストとして受信されたホストポートを選択する。インアクティブホストポート上でプロトコルベースのポート選択信号が受信されると、アクティブホスト選択回路１４１が現在のアクティブホストポートを最初に選択解除し、次に、選択信号が受信されるホストポートを選択する。インアクティブホストは、インアクティブポートのＰｈｙＴｘＥｎ信号を事前に規定されたレベルにセットすることによって静止パワー状態（ｑｕｉｅｓｃｅｎｔ  ｐｏｗｅｒ）に置かれる。
【００３２】
アクティブホスト選択回路１４１は、マルチプレクサ１４２の出力に方向付けられるべき２つの入力信号のうちの１つをその出力として選択するためにマルチプレクサ選択信号１４１ｓを生成する。アクティブホスト選択回路１４１は、「ハイ」または論理値１の状態である場合に、ＰＬ回路１１１に接続されるホストがアクティブホストであることを示す第１のホストアクティブ信号１４１ｈ１をさらに生成する。アクティブホスト選択回路１４１は、さらに、「ハイ」または論理値１レベルである場合に、ＰＬ回路１２１に接続されるホストがアクティブホストであることを示すホストアクティブ信号１４１ｈ２をさらに生成する。
【００３３】
スイッチ初期化回路１４４は、ＰＬ回路１１１からのＯＯＢ信号１１１ｏ、ＰＬ回路１２１からのＯＯＢ信号１２１ｏ、およびＰＬ回路１３１からのＯＯＢ信号１３１ｏを受信する。スイッチ初期化信号１４１は、ＰＬ回路１１１のＰｈｙ  ＩＳＭ制御信号１１１ｉと、ＰＬ回路１２１のＰｈｙ  ＩＳＭ制御信号１２１ｉと、Ｐｈｙ  ＩＳＭ制御信号１３１ｉとを生成し、以下の機能
アクティブホストからデバイスポートへのＣＯＭＲＥＳＥＴのリレー（受信して、その後、送信）
デバイスポートからアクティブホストポートへのＣＯＭＩＮＩＴのリレー
デバイスポートからアクティブホストポートへのＣＯＭＷＡＫＥのリレー
デバイスポートからアクティブホストポートへのＡＬＩＧＮプリミティブ検出のリレー
アクティブホストポートからデバイスポートへのホストＡＬＩＧＮプリミティブ検出のリレー
アクティブホストポートへのデバイスポートＰＨＹ＿ＲＤＹのリレー
デバイスポートからアクティブホストポートへのＳＹＮＣプリミティブのリレー
を実行する。
【００３４】
明瞭にするために、信号１３１ｒｘおよび１３１ｔｘがデバイスに接続される場合、デバイスポートの例は回路１３１である。同様に、信号１１１ｔｘおよび１１１ｒｘがホストに接続される場合、ホストポートの例は回路１１１である。明らかに、信号１２１ｔｘおよび１２１ｒｘがホストに接続される場合、ホストポートの別の例は回路１２１である。
【００３５】
本明細書中に示されるもののような従来システムの問題の１つは、スイッチ１００がアクティブホストポートとデバイスポートとの間の信号パスに遅延を引き起こし、これにより、ＳＡＴＡプロトコルのタイミング要件が満たされないことである。特に、ＳＡＴＡプロトコル標準規格に従って、ＨＯＬＤ／  ＨＯＬＤ−ＡＣＫＮＯＷＬＥＤＧＥ  （ＨＯＬＤ／ＨＯＬＤＡ）ハンドシェイク（フロー制御のために用いられる）は、２０ＤＷＯＲＤＳの最大遅延を明確にする。アクティブホストポートとデバイスポートとの間の信号パスにおけるスイッチ１００の追加により、２０ＤＷＯＲＤＳタイミング要件の最大遅延が満たされない。
【００３６】
従って、スイッチ１００は、信号経路のさらなる遅延を引き起こす。これにより、信号経路のタイミングがＳＡＴＡプロトコルタイミング要件を満たし得ず、特に、ＨＯＬＤ／ＨＯＬＤＡハンドシェイクの遅延は、２０ＤＷＯＲＤＳを超過すべきでない。
【００３７】
複数のホストユニット間に結合されたスイッチ、およびこれらの間の通信をアービトレーション通信するデバイスが必要とされ、このスイッチは、これらと関連した時間の遅延を有し、スイッチが遅延するにもかかわらず、ＳＡＴＡプロトコルのタイミング要件が満たされる。
【００３８】
ＳＡＴＡスイッチ１００は、インアクティブホストがデバイスにアクセスすることを可能にしない。ＳＡＴＡリンクまたはＡＴＡリンクを介してスイッチのデバイスポートに接続された単一ポート方式の格納ユニットへの２つのホストポートからの同時のアクセスを可能にする電子スイッチが必要である。
【課題を解決するための手段】
【００３９】
（発明の要旨）
簡単にいうと、本発明の実施形態は、第１のホストユニットに結合された第１のシリアルＡＴＡポートを備えるスイッチを含み、第１のポートは、第１のホストタスクファイルを含む。スイッチは、第２のホストユニットに結合された第２のシリアルＡＴＡポートを備えるスイッチをさらに含み、第２のポートは、第２のホストタスクファイルを含む。スイッチは、格納ユニットに結合された第３のシリアルＡＴＡポートをさらに備え、第３のポートは、デバイスタスクファイルを含む。スイッチは、複数のホストユニットの１つからの少なくとも１つの待ち状態のコマンドのインジケーションがある場合、スイッチを通じて格納ユニットに結合されるべき複数のホストユニットの１つを選択するアービターをさらに含み、ここで、複数のホストユニットの１つは格納ユニットに結合されるが、複数のホストユニットの別の１つは、格納ユニットによって実行するためにＡＴＡコマンドをスイッチに送信する。
【００４０】
本発明によるスイッチは、複数のホストユニットと該ホストユニット間で通信するデバイスとの間に接続されるスイッチであって、ａ）第１のホストユニットに接続される第１のシリアルアドバンスドテクノロジーアタッチメント（ＡＴＡ）ポートと、ｂ）第２のホストユニットに接続される第２のシリアルＡＴＡポートと、ｃ）デバイスに接続される第３のシリアルＡＴＡポートと、ｄ）該第１のホストユニットまたは第２のホストユニットのどちらか一方が、該デバイスによって実行されるコマンドを送信する場合はいつでも、該スイッチを介して、該第１のホストユニットまたは該第２のホストユニットの該デバイスに接続されるべき一方を選択するアービトレーションおよびコントロール回路とを備え、これにより上記目的を達成する。
【００４１】
前記第１のシリアルＡＴＡポートは、第１のホストタスクファイルを含んでもよい。
【００４２】
前記第２のシリアルＡＴＡポートは、第２のホストタスクファイルを含んでもよい。
【００４３】
前記第３のシリアルＡＴＡポートは、デバイスタスクファイルを含んでもよい。
【００４４】
前記第１、第２、および第３のポートは、レベル４ポートであってもよい。
【００４５】
前記デバイスは、ストレージユニットであってもよい。
【００４６】
前記スイッチは、企業システムで利用されてもよい。
【００４７】
前記アービトレーションおよびコントロール回路は、前記第１のおよび第２のホストユニットによる前記デバイスの同時アクセスを生じさせてもよい。
【００４８】
データ、コマンド、またはセットアップの形式の情報が、前記デバイスから前記スイッチを介して前記第１または第２のホストユニットへ転送され、該情報は、該第１または第２のホストユニットによって受信される前に、該スイッチによって修正されることにより、該情報ではなく修正された情報が、該第１または第２のホストユニットによって受信されてもよい。
【００４９】
前記情報は、「ｉｄｅｎｔｉｆｙ  ｄｒｉｖｅ  ｒｅｓｐｏｎｓｅ」と呼ばれてもよい。
【００５０】
前記情報は、「Ｔａｇ」と呼ばれてもよい。
【００５１】
データ、コマンド、またはセットアップの形式の情報が、前記第１または第２のホストユニットから前記スイッチを介して前記デバイスへ転送され、該情報は、該デバイスによって受信される前に、該スイッチによって修正されることにより、該情報ではなく修正された情報が、該デバイスによって受信されてもよい。
【００５２】
前記情報は、「Ｔａｇ」と呼ばれてもよい。
【００５３】
前記アービトレーションおよびコントロール回路は、ホストを識別するために、ホストタグをデバイスタグにマッピングし、かつ、逆マッピングを行うためのＴａｇ／Ｓａｃｔｉｖｅ  Ｍａｐｐｉｎｇ  Ｃｉｒｃｕｉｔを含んでもよい。
【００５４】
前記第１または前記第２のホストのどちらか一方は、前記デバイスが待ち行列を作るレガシーキューコマンドを送信してもよい。
【００５５】
前記第１または第２のホストは、前記デバイスによる実行のために、ネイティブキューコマンドを送信してもよい。
【００５６】
前記ネイティブキューコマンドのＴａｇは、前記デバイスに送信する前に修正され、両ホスト用に同じＴａｇを利用することを避け、最大可能なＴａｇの値を超えさせなくてもよい。
【００５７】
デバイスからのＦＩＳに受信されたＴａｇは、ホストに送信する前にそのオリジナルの値に修正されてもよい。
【００５８】
前記第１、第２、および第３のポートは、レベル３シリアルＡＴＡポートであり、データＦＩＳ  ＦＩＦＯおよび関連するＦＩＦＯコントロールは、該第１、第２、および第３のポートに接続され、外部から位置づけられてもよい。
【００５９】
本発明によるスイッチは、ａ）第１のホストユニットに接続される第１のシリアルアドバンスドテクノロジーアタッチメント（ＡＴＡ）ポートと、ｂ）第２のホストユニットに接続される第２のシリアルＡＴＡポートと、ｃ）デバイスに接続される第３のシリアルＡＴＡポートと、ｄ）該第１のホストユニットと該第２のホストユニットのどちらか一方が、該デバイスによって実行されるコマンドを送信する場合に、該スイッチを介して、該第１のホストユニットまたは該第２のホストユニットの該デバイスに接続されるべき一方を選択するアービトレーションおよびコントロール回路とを備え、該第１または第２のホストユニットの一方が、該スイッチを介して該デバイスに接続される一方で、該第１または第２のホストユニットの他方が、該デバイスによって実行するためのコマンドを該スイッチに送信し、これにより上記目的を達成する。
【００６０】
前記スイッチは、シリアルＡＴＡスイッチであってもよい。
【００６１】
前記第１のシリアルＡＴＡポートは、第１のホストタスクファイルを含んでもよい。
【００６２】
前記第２のシリアルＡＴＡポートは、第２のホストタスクファイルを含んでもよい。
【００６３】
前記第３のシリアルＡＴＡポートは、デバイスタスクファイルを含んでもよい。
【００６４】
前記デバイスは、ストレージユニットであってもよい。
【００６５】
前記スイッチは、企業システムで利用されてもよい。
【００６６】
前記アービトレーションおよびコントロールは、前記第１および第２のホストユニットによる前記デバイスの同時アクセスを生じさせてもよい。
【００６７】
データ、コマンド、またはセットアップの形式の情報が、前記デバイスから前記スイッチを介して前記第１または第２のホストユニットへ転送され、該情報は、該第１または第２のホストユニットによって受信される前に、該スイッチによって修正されることにより、該情報ではなく修正された情報が、該第１または第２のホストユニットによって受信されてもよい。
【００６８】
前記情報は、「Ｔａｇ」と呼ばれてもよい。
【００６９】
前記情報は、「ｉｄｅｎｔｉｆｙ  ｄｒｉｖｅ  ｒｅｓｐｏｎｓｅ」と呼ばれてもよい。
【００７０】
データ、コマンド、またはセットアップの形式の情報が、前記第１または第２のホストユニットから前記スイッチを介して前記デバイスへ転送され、該情報は、該デバイスによって受信される前に、該スイッチによって修正されることにより、該情報ではなく修正された情報が、該デバイスによって受信されてもよい。
【００７１】
前記情報は、「Ｔａｇ」と呼ばれてもよい。
【００７２】
本発明によるスイッチは、複数のホストユニットと該ホストユニット間で通信するデバイスとの間に接続されるスイッチであって、ａ）第１のホストユニットに接続される第１のシリアルアドバンスドテクノロジーアタッチメント（ＡＴＡ）ポートであって、第１のホストを含む、ポートと、ｂ）第２のホストユニットに接続される第２のシリアルＡＴＡポートと、ｃ）デバイスに接続される第３のパラレルＡＴＡポートと、ｄ）該第１のホストユニットまたは該第２のホストユニットのどちらか一方が、該デバイスによって実行されるコマンドを送信する場合はいつでも、該スイッチを介して、該第１のホストユニットまたは該第２のホストユニットの該デバイスに接続されるべき一方を選択するアービトレーションおよびコントロール回路とを備え、これにより上記目的を達成する。
【００７３】
前記第１のシリアルＡＴＡポートは、第１のホストタスクファイルを含んでもよい。
【００７４】
前記第２のシリアルＡＴＡポートは、第２のホストタスクファイルを含んでもよい。
【００７５】
前記第３のパラレルＡＴＡポートは、デバイスタスクファイルを含んでもよい。
【００７６】
前記第１、第２、および第３のポートは、レベル４ポートであってもよい。
【００７７】
前記デバイスは、ストレージユニットであってもよい。
【００７８】
前記スイッチは、企業システムで利用されてもよい。
【００７９】
前記アービトレーションおよびコントロール回路は、前記第１のおよび第２のホストユニットによる前記デバイスの同時アクセスを生じさせれてもよい。
【００８０】
データ、コマンド、またはセットアップの形式の情報が、前記デバイスから前記スイッチを介して前記第１または第２のホストユニットへ転送され、該情報は、該第１または第２のホストユニットによって受信される前に、該スイッチによって修正されることにより、該情報ではなく修正された情報が、該第１または第２のホストユニットによって受信されてもよい。
【００８１】
前記情報は、「ｉｄｅｎｔｉｆｙ  ｄｒｉｖｅ  ｒｅｓｐｏｎｓｅ」と呼ばれてもよい。
【００８２】
前記情報は、「Ｔａｇ」と呼ばれてもよい。
【００８３】
データ、コマンド、またはセットアップの形式の情報が、前記第１または第２のホストユニットから前記スイッチを介して前記デバイスへ転送され、該情報は、該デバイスによって受信される前に、該スイッチによって修正されることにより、該情報ではなく修正された情報が、該デバイスによって受信されてもよい。
【００８４】
前記情報は、「Ｔａｇ」と呼ばれてもよい。
【００８５】
前記アービトレーションおよびコントロール回路は、ホストを識別するために、ホストタグをデバイスタグにマッピングし、かつ、逆マッピングを行うためのＴａｇ／Ｓａｃｔｉｖｅ  Ｍａｐｐｉｎｇ  Ｃｉｒｃｕｉｔを含んでもよい。
【００８６】
前記第１または前記第２のホストのどちらか一方は、前記デバイスが待ち行列を作るレガシーキューコマンドを送信してもよい。
【００８７】
前記第１および第２のホストは、前記デバイスによる実行のために、ネイティブキューコマンドを送信してもよい。
【００８８】
前記第１、第２、および第３のポートは、レベル３ポートであり、データフレームインフォメーションシステム（ＦＩＳ）ファーストインファーストアウト（ＦＩＦＯ）および関連するＦＩＦＯコントロールは、該第１、第２、および第３のポートに接続され、外部から位置づけられてもよい。
【００８９】
本発明によるスイッチは、ａ．第１のホストユニットに接続する第１のシリアルアドバンスドテクノロジーアタッチメント（ＡＴＡ）ポートと、ｂ．第２のホストユニットに接続する第２のシリアルＡＴＡポートと、ｃ．デバイスに接続する第３のパラレルＡＴＡポートと、ｄ．該第１のホストユニットまたは該第２のホストユニットのどちらか一方が、該デバイスによって実行されるコマンドを送信する場合に、該スイッチを介して、該第１のホストユニットまたは該第２のホストユニットの該デバイスに接続されるべき一方を選択するアービトレーションおよびコントロール回路とを備え、該第１または第２のホストユニットの一方が、該スイッチを介して該デバイスに接続される一方で、該第１または第２のホストユニットの他方が、該デバイスによって実行するためのＡＴＡコマンドを該スイッチに送信し、これにより上記目的を達成する。
【００９０】
前記スイッチは、シリアルＡＴＡスイッチであってもよい。
【００９１】
前記第１のシリアルＡＴＡポートは、第１のホストタスクファイルを含んでもよい。
【００９２】
前記第２のシリアルＡＴＡポートは、第２のホストタスクファイルを含んでもよい。
【００９３】
前記第３のパラレルＡＴＡポートは、デバイスタスクファイルを含んでもよい。
【００９４】
前記デバイスは、ストレージユニットであってもよい。
【００９５】
前記スイッチは、企業システムで利用されてもよい。
【００９６】
前記アービトレーション回路は、前記第１および第２のホストユニットによる前記デバイスの同時アクセスを生じさせてもよい。
【００９７】
データ、コマンド、またはセットアップの形式の情報が、前記デバイスから前記スイッチを介して前記第１または第２のホストユニットへ転送され、該情報は、該第１または第２のホストユニットによって受信される前に、該スイッチによって修正されることにより、該情報ではなく修正された情報が、該第１または第２のホストユニットによって受信されてもよい。
【００９８】
前記情報は、「ｉｄｅｎｔｉｆｙ  ｄｒｉｖｅ  ｒｅｓｐｏｎｓｅ」と呼ばれてもよい。
【００９９】
前記情報は、「Ｔａｇ」と呼ばれてもよい。
【０１００】
データ、コマンド、またはセットアップの形式の情報が、前記第１または第２のホストユニットから前記スイッチを介して前記デバイスへ転送され、該情報は、該デバイスによって受信される前に、該スイッチによって修正されることにより、該情報ではなく修正された情報が該デバイスによって受信されてもよい。
【０１０１】
前記情報は、「Ｔａｇ」と呼ばれてもよい。
【０１０２】
本発明によるスイッチは、シリアルアドバンスドテクノロジーアタッチメント（ＡＴＡ）リンクを介して、第１のホストユニット、第２のホストユニット、およびデバイスに接続可能なスイッチであって、該スイッチは、ａ．第１のホストユニットに接続する第１のシリアルＡＴＡポートと、ｂ．第２のホストユニットに接続する第２のシリアルＡＴＡポートと、ｃ．デバイスに接続する第３のパラレルＡＴＡポートと、ｄ．該第１または第２のホストユニットのどちらか一方が、該デバイスによって実行されるコマンドを送信する場合に、該スイッチを介して、該第１のホストユニットまたは該第２のホストユニットの該デバイスに接続されるべき一方を選択するアービトレーションおよびコントロール回路とを備え、該第１または第２のホストユニットの一方が、該デバイスに接続される一方で、該第１または第２のホストユニットの他方が、該デバイスによって実行するためのＡＴＡコマンドを該スイッチに送信し、これにより上記目的を達成する。
【０１０３】
前記スイッチは、シリアルＡＴＡスイッチであってもよい。
【０１０４】
前記第１のシリアルＡＴＡポートは、第１のホストタスクファイルを含んでもよい。
【０１０５】
前記第２のシリアルＡＴＡポートは、第２のホストタスクファイルを含んでもよい。
【０１０６】
前記第３のパラレルＡＴＡポートは、デバイスタスクファイルを含んでもよい。
【０１０７】
前記デバイスは、ストレージユニットであってもよい。
【０１０８】
前記スイッチは、企業システムで利用されてもよい。
【０１０９】
前記アービトレーションおよびコントロール回路は、前記第１および第２のホストユニットによる前記デバイスの同時アクセスを生じさせてもよい。
【０１１０】
データ、コマンド、またはセットアップの形式の情報が、前記デバイスから前記スイッチを介して前記第１または第２のホストユニットへ転送され、該情報は、該第１または第２のホストユニットによって受信される前に、該スイッチによって修正されることにより、該情報ではなく修正された情報が、該第１または第２のホストユニットによって受信されてもよい。
【０１１１】
前記情報は、「ｉｄｅｎｔｉｆｙ  ｄｒｉｖｅ  ｒｅｓｐｏｎｓｅ」と呼ばれてもよい。
【０１１２】
前記情報は、「Ｔａｇ」と呼ばれる、請求項７１に記載のスイッチ。
【０１１３】
データ、コマンド、またはセットアップの形式の情報が、前記第１または第２のホストユニットから前記スイッチを介して前記デバイスへ転送され、該情報は、該デバイスによって受信される前に、該スイッチによって修正されることにより、該情報ではなく修正された情報が該デバイスによって受信されてもよい。
【０１１４】
前記情報は、「Ｔａｇ」と呼ばれてもよい。
【０１１５】
本発明によるスイッチは、複数のホストユニットと該ホストユニット間でフレーム情報をルーティングするデバイスとの間に接続されるスイッチであって、ａ．第１のシリアルアドバンスドテクノロジーアタッチメント（ＡＴＡ）ポートであって、第１のホストユニットに接続され、ルートアウェアフレームインフォメーションストラクチャ（ＦＩＳ）を含む、ポートと、ｂ．第２のホストユニットに接続され、ルートアウェアＦＩＳを含む、第２のシリアルＡＴＡポートと、ｃ．デバイスに接続され、ルートアウェアＦＩＳを含む、第３のシリアルＡＴＡポートと、ｄ．該第１のホストユニットまたは第２のホストユニットのどちらか一方が、該デバイスにＦＩＳを送信する場合はいつでも、該スイッチを介して、該第１のホストユニットまたは該第２のホストユニットの該デバイスに接続されるべき一方を選択するアービトレーションおよびコントロール回路であって、さらに、該第１および第２のホストユニットならびに該デバイスのＦＩＳは、該第１または第２のホストユニットのどちらがオリジンおよび／またはデスティネーションホストであるかを識別することにより、ＦＩＳのルーティングは、該スイッチに対してトランスペアレントであり、それにより、製造を安価にする該スイッチの設計の複雑性を低減させる、アービトレーションおよびコントロール回路とを備え、これにより上記目的を達成する。
【０１１６】
前記デバイスは、ストレージユニットであってもよい。
【０１１７】
前記スイッチは、企業システムで利用されてもよい。
【０１１８】
前記アービトレーションおよびコントロール回路は、前記第１のおよび第２のホストユニットによる前記デバイスの同時アクセスを生じさせてもよい。
【０１１９】
１ビットが、どちらのホストが前記ＦＩＳのオリジンまたはデスティネーションであるかを示すために利用されてもよい。
【０１２０】
前記第１、第２、および第３のポートは、レイヤ２ポートであってもよい。
【０１２１】
前記スイッチは、「ｒｏｕｔｅ  ａｗａｒｅ」ルーティングを提供してもよい。
【０１２２】
前記スイッチは、レイヤ２の間で切り替わり、デュアルポートファーストインファーストアウト（ＦＩＦＯ）を含んでもよい。
【０１２３】
本発明によるスイッチは、ａ．第１のシリアルアドバンスドテクノロジーアタッチメント（ＡＴＡ）ポートであって、第１のホストユニットに接続され、ルートアウェアフレームインフォメーションストラクチャ（ＦＩＳ）を含む、ポートと、ｂ．第２のホストユニットに接続され、ルートアウェアＦＩＳを含む、第２のシリアルＡＴＡポートと、ｃ．デバイスに接続され、ルートアウェアＦＩＳを含む、第３のシリアルＡＴＡポートであって、該スイッチは、該第１および第２のホストユニットならびに該デバイスの間のフレーム情報をルーティングする、ポートと、ｄ．該第１のホストユニットまたは第２のホストユニットのどちらか一方が、該デバイスにＦＩＳを送信する場合、該スイッチを介して、該第１のホストユニットまたは該第２のホストユニットの該デバイスに接続されるべき一方を選択するアービトレーションおよびコントロール回路とを備え、該第１または第２のホストユニットの一方が、該スイッチを介して、該デバイスに接続される一方、該第１または第２のホストユニットの他方が、該デバイスまでルーティングする該スイッチにＦＩＳを送信し、さらに、該第１および第２のホストユニットならびに該デバイスのＦＩＳは、該第１または第２のホストユニットのどちらがオリジンおよび／またはデスティネーションホストであるかを識別することにより、ＦＩＳのルーティングは、該スイッチに対してトランスペアレントであり、それにより、製造を安価にする該スイッチの設計の複雑性を低減させ、これにより上記目的を達成する。
【０１２４】
前記スイッチは、シリアルＡＴＡスイッチであってもよい。
【０１２５】
前記デバイスは、格納ユニットであってもよい。
【０１２６】
前記スイッチは、企業システムで利用されてもよい。
【０１２７】
前記アービトレーションおよび制御は、前記第１および前記第２のホストユニットによるデバイスの同時アクセスを生じさせてもよい。
【０１２８】
本発明によるスイッチは、第１のホストユニットと第２のホストユニットとデバイスとの間でフレーム情報をルーティングするために、シリアルアドバンスドテクノロジーアタッチメント（ＡＴＡ）リンクを介して、第１のホストユニット、第２のホストユニット、およびデバイスに接続可能なスイッチであって、該スイッチは、ａ．第１のホストユニットとの接続のために、ルートアウェアフレームインフォメーションストラクチャ（ＦＩＳ）を含む第１のシリアルＡＴＡポートと、ｂ．第２のホストユニットとの接続のために、ルートアウェアＦＩＳを含む第２のシリアルＡＴＡポートと、ｃ．デバイスとの接続のために、ルートアウェアＦＩＳを含む第３のシリアルＡＴＡポートと、ｄ．該第１または第２ののホストユニットが該デバイスにＦＩＳを送信した場合に該スイッチを通じて該デバイスに結合されるべき該第１および第２のホストユニットの１つを選択するアービトレーションおよび制御回路とを備え、該第１または第２のホストユニットの一方が、該デバイスに接続される一方で、該第１または第２のホストユニットの他方が、該デバイスにルーティングするための該スイッチにＦＩＳを送信し、さらに、該第１および第２のホストユニットならびにデバイスのＦＩＳは、該第１または第２のホストユニットのどちらの一方が、オリジンおよび／またはデスティネーションホストであるかを識別することにより、ＦＩＳのルーティングは、該スイッチに対してトランスペアレントであり、それにより、製造を安価にする該スイッチの設計の複雑性を低減させ、これにより上記目的を達成する。
【０１２９】
前記スイッチは、シリアルＡＴＡスイッチであってもよい。
【０１３０】
前記デバイスは、ストレージユニットであってもよい。
【０１３１】
前記スイッチは、企業システムで利用されてもよい。
【０１３２】
前記アービトレーションおよびコントロール回路は、前記第１のおよび第２のホストユニットによる前記デバイスの同時アクセスを生じさせてもよい。
【０１３３】
本発明による方法は、シリアルアドバンスドテクノロジーアタッチメント（ＡＴＡ）スイッチを介して、複数のホストユニットとデバイスとの間で通信する方法であって、該スイッチは、フレーム情報をルーティングするシリアルＡＴＡリンクを利用して、該複数のホストユニットおよび該デバイスに接続され、該方法は、ａ．該スイッチとの接続のために、ルートアウェアフレームインフォメーションストラクチャ（ＦＩＳ）を含む第１のシリアルＡＴＡポートを、第１のホストユニットに接続するステップと、ｂ．該スイッチとの接続のために、ルートアウェアＦＩＳを含む第２のシリアルＡＴＡポートを、第２のホストユニットに接続するステップと、ｃ．デバイスとの接続のために、ルートアウェアＦＩＳを含む第３のシリアルＡＴＡポートを接続するステップと、ｄ．該第１および第２のホストユニットならびに該デバイスの間でアービトレーションするステップと、ｅ．該第１または第２のホストユニットのどちらか一方が、該デバイスによって実行されるコマンドを送信する場合、該スイッチを介して該デバイスに接続するために、該第１または第２のホストユニットの一方を選択するステップと、ｆ．該第１または第２のホストユニットの該選択された一方に該デバイスを接続するステップと、ｇ．該第１または第２のホストユニットの該選択された一方が、該デバイスに接続されている間に、該第１または第２のホストユニットの他方が、該デバイスまでルーティングするために、該スイッチにＦＩＳを送信するステップとを包含し、送信するステップｇ．の間、該第１および第２のホストユニットならびにデバイスのＦＩＳは、該第１または第２のホストユニットのどちらの一方が、オリジンおよび／またはデスティネーションホストであるかを識別することにより、ＦＩＳのルーティングは、該スイッチに対してトランスペアレントであり、それにより、製造を安価にする該スイッチの設計の複雑性を低減させ、これにより上記目的を達成する。
【発明の効果】
【０１３４】
本発明による電子スイッチは、ＳＡＴＡリンクまたはＡＴＡリンクを介してスイッチのデバイスポートに接続された単一ポート方式の格納ユニットへの２つのホストポートからの同時のアクセスを可能にする。
【発明を実施するための最良の形態】
【０１３５】
（好ましい実施形態の詳細な説明）
ここで、図を参照して、本発明の実施形態の１つにおいて用いられる方法は、いずれかのデータがなくなることを避けるために、ホストおよびデバイスポート用のレベル２ＳＡＴＡポートと、ホストポートとデバイスポートとの間のＦＩＳ  ＦＩＦＯを用いる。レベル２ＳＡＴＡポートは、プリミティブリレーしたり他のポートからの応答を待つのではなく、ＨＯＬＤ／ＨＯＬＤＡに直ちに応答する。図５は、層２内でスイッチングし、かつ本発明の実施形態によるスイッチ２００のハイレベルブロック図を示す。スイッチ２００は、ＳＡＴＡレベル２ホストポート２１０、ＳＡＴＡレベル２ホストポート２２０、ＳＡＴＡレベル２デバイスポート２３０、ＦＩＳペイロードＦＩＦＯ２４５、マルチプレクサ２４２ａ、マルチプレクサ２４２ｂ、デマルチプレクサ２４３、アクティブホスト選択回路２４１、およびスイッチ初期化回路２４４を備えることが示される。
【０１３６】
ＦＩＳ  ＦＩＦＯ２４５は、ＦＩＳ  ＦＩＦＯ入力ポート２４５（ｉ１）、ＦＩＳ  ＦＩＦＯ出力ポート２４５（ｏ１）、ＦＩＳ  ＦＩＦＯ入力ポート２４５（ｉ２）およびＦＩＳ  ＦＩＦＯ出力ポート２４５（ｏ２）を含むデュアルポートのＦＩＦＯを備える。
【０１３７】
ＳＡＴＡレベル２ホストポート２１０はＰＬ回路２１１およびＬＬ回路２１２を備え、アウトバウンド高速差動送信信号２１１ｔｘおよびインバウンド差動受信信号２１１ｒｘに接続され、トランスポート受信バス２１３ｒ、トランスポート送信バス２１３ｔ、リンク層２１２から生成されたトランスポートコントロール／ステータスバス２１３ｃｏ、およびリンク層２１２に送信されるコントロール／ステータスバス２１３ｃｉを備える。トランスポート受信バス２１３ｒは、マルチプレクサ２４２ａに接続される。マルチプレクサ２４２ｂに接続されるコントロール／ステータスバス２１３ｃｏが示され、ＦＩＳ  ＦＩＦＯ出力ポート２４５（ｏ１）に接続されるトランスポート送信バス２１３ｔが示され、スイッチ初期化回路２４４およびアクティブホスト選択回路２４１に接続されるＯＯＢ信号２１１ｏが示される。スイッチ初期化回路２４４は、Ｐｈｙ  ＩＳＭ制御信号２１１ｉを生成する。
【０１３８】
ＳＡＴＡレベル２ホストポート２２０は、ＰＬ回路２２１およびＬＬ回路２２２を含み、アウトバウンド高速差動送信信号２２１ｔｘおよびインバウンド差動受信信号２２１ｒｘに接続されることが示される。ポート２２０は、トランスポート受信バス２２３ｒ、トランスポート送信バス２２３ｔ、リンク層２２２から生成されるトランスポートコントロール／ステータスバス２２３ｃｏ、およびリンク層２２２に送信されるコントロール／ステータスバス２２３ｃｉを含むことが示される。トランスポート受信バス２２３ｒは、マルチプレクサ２４２ａに接続され、コントロール／ステータスバス２１３ｃｏはマルチプレクサ２４２ｂに接続され、トランスポート送信バス２２３ｔはＦＩＳ、ＦＩＦＯ出力ポート２４５（ｏ２１）に接続され、スイッチ初期化回路２４４およびアクティブホスト選択回路２４１に接続されるＯＯＢ信号２２１ｏが示される。スイッチ初期化回路２４４は、Ｐｈｙ  ＩＳＭ制御信号２２１ｉを生成する。
【０１３９】
ＳＡＴＡレベル２デバイスポート２３０は、ＰＬ回路２３１およびＬＬ回路２３２を備え、アウトバウンド高速差動送信信号２３ｔｘおよびインバウンド差動受信信号２３１ｒｘに接続される。ポート２３０は、トランスポート受信バス２３３ｒ、トランスポート送信バス２３３ｔ、リンク層２３２から生成されたトランスポートコントロール／ステータスバス２３３ｃｏ、ならびに、リンク層２３２に接続されたコントロール／ステータスバス２３３ｃｉを備えることが示される。トランスポート受信バス２３３ｒは、ＦＩＳ  ＦＩＦＯ入力ポート２４５（ｉ２）に接続され、コントロール／ステータスバス２３３ｃｉは、マルチプレクサ２４２ｂ出力に接続され、トランスポート送信バス２３３ｔは、ＦＩＳ  ＦＩＦＯ出力ポート２４５（ｏ２）に接続される。コントロール／ステータスバス２３３ｃｏは、入力としてデマルチプレクサ２４３に接続され、ＯＯＢ信号２３１ｏは、スイッチ初期化回路２４４およびアクティブホスト選択回路２４１に接続される。スイッチ初期化回路２４４は、Ｐｈｙ  ＩＳＭ制御信号２３１ｉを生成する。
【０１４０】
アクティブホスト選択回路２４１は、図４のアクティブホスト選択回路１４１と同じである。図５のＳＦＸポート選択検出回路２４１ａおよび２４１ｂは、ポート選択検出回路１４１ａおよび１４１ｂとそれぞれ同じである。アクティブホスト選択回路２４１は、マルチプレクサ２４２ａおよびマルチプレクサ２４２ｂに出力される入力を選択するマルチプレクサ選択信号２４１ｓを生成する。アクティブホスト選択回路２４１は、アクティブか、または論理状態「１」である場合、ホストポート２１０がアクティブであることを示すホストアクティブ信号１４１ｈ１をさらに生成する。ホスト選択回路２４１は、アクティブか、または論理状態「１」である場合、ホストポート２２０がアクティブであることを示すホストアクティブ信号１４１ｈ２をさらに生成する。ホストアクティブ信号１４１ｈ１および１４２ｈ２は、デマルチプレクサ２４３への入力として利用され、コントロール／ステータスバス２３３ｃｏをアクティブホストにルーティングする。
【０１４１】
スイッチ初期化回路２４４は、図４のスイッチ初期化回路１４４と同じである。スイッチ初期化回路２４４によって実行される機能は、ＰＬ回路２１１、２２１および２３１に分散され得る。同様に、ＳＦＸポート選択検出回路２４１ａおよび２４１ｂは、ＰＬ回路２１１および２２１にそれぞれ分散され得る。スイッチ初期化回路２４４の機能をＰＬ回路２１１、２２１および２３１に分散させるか、またはＳＦＸポート選択検出回路の機能をＰＬ回路２１１および２２１に分散させる代替的実施形態は、本発明の範囲に含まれる。
【０１４２】
図５の層２スイッチ２００は、スイッチ２００遅延によって引き起こされるタイミングの問題を解消するが、スイッチ２００は、標準規格ＦＩＳ機関を用いて、ＳＡＴＡリンクを介して２つのホストが単一ポートデバイスにアクセスすることを可能にすることができない。
【０１４３】
２つのホストが単一ポートデバイスにアクセスすることを可能にするために、多重化方法は、本発明の代替的実施形態により用いられなければならない。従来の多重化方法は、時間多重化である。時間多重化において、（等しいか、または異なった時間の）交互周期のために、一方のホストまたは他のホストにアクセスが認められる。このような従来の時間多重化方法は、格納ユニットとともに用いられ得ない。なぜなら、進行中のコマンドが中断すると、性能の低下またはデータの損失がもたらされるからである。
【０１４４】
本発明において用いられる多重化方法は、コマンドベースの多重化と呼ばれる。コマンドベースの多重化において、スイッチは、アイドル状態（進行中のコマンドがない）、進行中のコマンド、コマンド補完、および待ち状態のコマンド（コマンドは、進行中であり、デバイスはビジーであるため、受信および保存されるが、デバイスに送信されないコマンド）のトラックを保持し、この情報を用いて、スイッチは、両方のホストによるデバイスへのアクセスを提供するためにアルゴリズムを実現し得る。
【０１４５】
コマンドベースの多重化は、層４での処理を必要とする。層１でスイッチングを実行する従来技術のＳＡＴＡスイッチと対照的に、コマンドベースの多重化を用いる本発明のＳＡＴＡスイッチは、層４でスイッチングを実行する（「層４スイッチング」）。本発明のＳＡＴＡスイッチにおいて、回転する優先順位（ｒｏｔａｔｉｎｇ  ｐｒｉｏｒｉｔｙ）に基づいたアービトレーションアルゴリズムは、コマンドをデバイスに送信し得るホストを選択するために用いられる。両方のホストからの待ち状態のコマンドがある場合、優先順位が最も高いホストのコマンドがデバイスに送信される。
【０１４６】
パワーアップ初期化の動作において、優先順位は、ホスト１１または１２の一方に任意に与えられる。本発明の種々の実施形態のＳＡＴＡスイッチは、優先順位のトラックを保持し、かつ、デバイスにコマンドを送信し得るホストを選択するようにアービトレーションを実行する。デバイスが別のコマンドを受け取る状態に入った場合、本発明の種々の実施形態のスイッチは、他のホストへ優先順位を変更する。
【０１４７】
図６は、本発明の代替的実施形態により、アクティブスイッチ３００のブロック図を示す。スイッチ３００は、ＳＡＴＡレベル４ホストポート３１０、ＳＡＴＡレベル４ホストポート３２０、ＳＡＴＡレベル４デバイスポート３３０、アービトレーションおよび制御回路３４０、マルチプレクサ３５１、マルチプレクサ３５２、ｍｕｘ−ｄｅｍｕｘ３５３ならびにｍｕｘ−ｄｅｍｕｘ３５４を備えることが示される。ＳＡＴＡレベル４ホストポート３１０は、アウトバウンド高速差動送信信号３１１ｔｘおよびインバウンド差動受信信号３１１ｒｘに接続されることが示され、ホスト１１コマンド層入力バス３１５ｉ、ホスト１１コマンド層出力バス３１５ｏ、ホスト１１コマンド層入力バス３１５ｉ、ホスト１１コマンド層出力バス３１５ｏ、ホスト１１タスクファイル入力バス３１６ｉならびにホスト１１タスクファイル出力バス３１６ｏを備える。ＳＡＴＡレベル４ホストポート３２０は、アウトバウンド高速差動送信信号３２１ｔｘおよびインバウンド差動受信信号３２１ｒｘに接続されることが示され、ホスト１２コマンド層入力バス３２５ｉ、ホスト１２コマンド層出力バス３２５ｏ、ホスト１２タスクファイル入力バス３２６ｉおよびホスト１２タスクファイル出力バス３２６ｏを備える。ＳＡＴＡレベル４デバイスポート３３０は、アウトバウンド高速差動送信信号３３１ｔｘおよびインバウンド差動受信信号３３１ｒｘに接続されることが示され、デバイスコマンド層入力バス３３５ｉ、デバイスコマンド層出力バス３３５ｏ、デバイスタスクファイル入力バス３３６ｉおよびデバイスタスクファイル出力３３６ｏを備える。
【０１４８】
ホスト１１コマンド層出力バス３１５ｏは、マルチプレクサ３５１の第１の入力に接続されることが示される。ホスト１２コマンド層出力バス３２５ｏは、マルチプレクサ３５１の第２の入力に接続されることが示され、マルチプレクサ３５１の出力は、デバイスコマンド層入力バス３３５ｉに接続されることが示される。ホスト１１タスクファイル出力バス３１６ｏは、マルチプレクサ３５２の入力に接続されることが示され、ホスト１２タスクファイル出力バス３２６ｏは、マルチプレクサ３５２の入力に接続されることが示される。アービトレーションおよび制御回路３４０は、デバイス制御タスクファイル出力バス３５２ｉを生成し、その後、図５に示されるように、マルチプレクサ３５２の入力の１つに接続され、さらに、マルチプレクサ３５２の制御信号である制御信号３５２ｓを生成する。マルチプレクサ３５２出力は、デバイスタスクファイル入力バス３３６ｉに接続されることが示される。バス３５２ｉの機能は、特定の場合においてホストからのデータを置換することであり、これは、本明細書中で後述される。
【０１４９】
デバイスコマンド層出力バス３３５ｏは、ｍｕｘ−ｄｅｍｕｘ３５３の入力に接続されることが示される。デバイスタスクファイル出力バス３３６ｏは、ｍｕｘ−ｄｅｍｕｘ３５４の入力に接続されることが示される。アービトレーションおよび制御回路３４０は、ホスト１１タスクファイル出力バス３１６ｏ、ホスト１２タスクファイル出力バス３２６ｏおよびデバイスタスクファイル出力バス３３６ｏを収容する。アービトレーションおよび制御回路３４０は、マルチプレクサ３５１の動作を制御する選択信号３５１ｓを生成する。アービトレーションおよび制御回路３４０は、ｍｕｘ−ｄｅｍｕｘ３５３の入力に接続される制御コマンド層出力バス３５３ｉを生成する。回路３４０は、ｍｕｘ−ｄｅｍｕｘ３５３の制御信号である制御信号をさらに生成する。バス３５３ｉの機能は、特定の場合にデバイスからのデータを置換することである（本明細書中で後述される）。
【０１５０】
アービトレーションおよび制御回路３４０は、ｍｕｘ−ｄｅｍｕｘ３５４の入力の１つに接続される制御タスクファイル出力バス３５４ｉを生成し、示されるように、制御信号３５４ｃは、ｍｕｘ−ｄｅｍｕｘ３５４の動作を制御する。バス３５４ｉの機能は、特定の場合にデバイスタスクファイル出力バス３３６ｏを置換することである（本明細書中で後述される）。
【０１５１】
ここで、図７ｃを参照して、ｍｕｘ−ｄｅｍｕｘ３５３は、２つの入力３３５ｏ、３５３ｉと２つの出力３１５ｉ、３２５ｉを有する。ｍｕｘ−ｄｅｍｕｘ３５３は、２つの機能を実行し、第１の機能は、２つの入力の１つを選択することであり（多重化）、第２の機能は、２つの入力の選択した１つをｍｕｘ−ｄｅｍｕｘ３５３の出力の選択した１つにルーティングし、ｍｕｘ−ｄｅｍｕｘ３５３の選択されない出力をインアクティブ電圧レベルにセット（多重分離（ｄｅｍｕｌｔｉｐｌｅｘｉｎｇ））することである。制御信号３５３ｃは、ｍｕｘ−ｄｅｍｕｘ３５３の多重化および多重分離機能を制御するためのものである。
【０１５２】
ｍｕｘ−ｄｅｍｕｘ３５４は２つの入力３３６ｏ、３５４ｉおよび２つの出力３１６ｉおよび３２６ｉを有する。ｍｕｘ−ｄｅｍｕｘ３５４は、２つの機能を実行し、第１の機能は、２つの入力の１つを選択することであり（多重化）、その第２の機能は、２つの入力の選択した１つをｍｕｘ−ｄｅｍｕｘ３５４の出力の選択した１つに送信し、ｍｕｘ−ｄｅｍｕｘ３５４の選択されない出力をインアクティブ電圧レベルにセット（多重分離）することである。制御信号３５４ｃは、多重化および多重分離機能を制御するためのものである。
スイッチ３００の動作は、スイッチ３００が進行中のコマンドを認識すること、特定のコマンドを他のコマンドとは異なる態様で処理することを必要とする。アービトレーションおよび制御回路３４０は、ホスト１１タスクファイル出力バス３１６ｏを介してホスト１１タスクファイル１を受信する。回路３４０は、ホスト１２タスクファイル出力バス３２６ｏを介してホスト１２タスクファイルをさらに受信し、かつ、デバイスタスクファイル出力バス３３６ｏを介してデバイスタスクファイルをさらに受信し、デバイスコマンド層出力バス３３５ｏをさらに受信する。
【０１５３】
アービトレーションに加えて、アービトレーションおよび制御回路３４０は、進行中のコマンドおよび待ち状態のコマンドのトラックを追跡し、データペイロードまたはＦＩＳを特定の場合に改変する。特定の場合に、データペイロードが変更されなければならない場合、アービトレーションおよび制御回路３４０は、置換データを生成し、出力バス３５３ｉを選択する制御信号３５３ｃの値を提供すると共に、ｍｕｘ−ｄｅｍｕｘ３５３の入力信号の１つに接続される制御コマンド層出力バス３５３ｉで置換データを提供する。特定の場合、非データＦＩＳが変更されなければならないとき、または、完全に新しい非データＦＩＳが送信されなければならないときに、アービトレーションおよび制御回路３４０は、対応する置換タスクファイルを生成し、出力バス３５４ｉを選択する制御信号３５４ｃの値を提供すると共に、ｍｕｘ−ｄｅｍｕｘ３５４の入力信号の１つに接続される制御タスクファイル出力バス３５４ｉで置換タスクファイルを提供する。
【０１５４】
デバイスからのデータペイロードを変更することを必要とする特定の場合は、ホストからの識別ドライブコマンドに応答して生成される識別ドライブ応答の場合を含む。識別ドライブ応答は、所定のデバイス特性を提供する５１２バイト（２５６ワード）のデータを含む。
【０１５５】
特に、識別ドライブ応答は、キューイングおよびキュー深さをサポートするデバイス能力を含む。例えば、識別ドライブ応答のワード８３のビット１は、読み出し／書き込みＤＭＡキューコマンド（当業者に公知である）がサポートされるかどうかを示し、識別ドライブ応答のワード７６のビット８は、ネイティブキューコマンド（当業者に公知である）がサポートされているかどうかを示し、識別ドライブ応答のビット０〜ビット４のワード７５は、キュー深さから１を引いた値を含む。
【０１５６】
あるアプリケーションにおいて、コマンドキューイングは、識別ドライブ応答を阻止し、キュー深さ値をゼロと置換し、かつ、ワード７６のビット８をリセットすることによってディセーブルされ得る。キューイングをサポートするアクティブスイッチアプリケーションにおいて、各ホストに通知されるキュー深さは、デバイスがサポートし得るよりも多くのコマンドをホストが送信しないように変更しなければならない。
【０１５７】
図５の実施形態において、アービトレーションおよび制御回路３４０は、デバイスから送信された識別ドライブ応答を阻止し、ワード７５のビット０〜ビット４の元の値を、もとのキュー深さ値の２分の１であるキュー深さ値を表す新しく生成された値と置換する。
【０１５８】
元の値がキュー深さとして奇数の値を表す場合、新しい値は、１を引いた後の元のキュー深さ値の２分の１であるキュー深さ値を表す。上述のように、ビット４〜０のワード７５の値（７５［４：０」）（この表記は、１６ビットワード７５のビット０〜ビット４を表す）は、キュー深さ値から１を引いた値を表す。７５［４：０］の新しい値を生成する動作は、７５［４：０］の元の値をビットづつシフトすることによって実行され、その後、７５［４：０］の元の値が偶数値（少なくとも最下位ビット（７５［０］）はゼロ）を表す場合、条件付で１を引く。アービトレーションおよび制御回路３４０は、制御コマンド層出力バス３５３ｉで新しい値を生成し、バス３５３ｉの選択により、その値を制御信号３５３ｃにセットし、この信号は、多重分離され、その後、入力としてｍｕｘ−ｄｅｍｕｘ３５３に提供される。
【０１５９】
識別ドライブ応答のワード２５５は、インテグリティワードである。このワードを用いることは選択的である。ワード２５５のビット７〜０（２５５［７：０］）（この表記は、１６ビットワードのビット０〜ビット７を表す）が値Ａ５（１６進表記の）を含む場合、ワード２５５のビット１５〜８は、ワード０〜２５４におけるすべてのバイトと、ワード２５５のビット０〜７からなるバイトとの和の２の補数であるチェックサムを含む。チェックサムが用いられ、アービトレーションおよび制御回路が識別ドライブ応答の一部分を改変した場合、アービトレーションおよび制御回路は、チェックサムをさらに改変して、正しい値を反映させ、その後、新しいチェックサムを生成し、これを制御コマンド層出力バス３５３ｉに提供し、制御信号３５３ｃの値をセットしてバス３５３ｉを選択する。
【０１６０】
ＳＡＴＡプロトコルのレガシーおよびネイティブコマンドキューイングをサポートするアクティブスイッチの動作がここで記載される。しかしながら、ホストとデバイスとの間のレガシーおよびネイティブコマンドキューイングの簡単な記載が最初に提供される。
【０１６１】
レガシー読み出し／書き込みＤＭＡキューコマンド（ＬＱ  ＣＭＤ）は、キュー深さに関係なく、１０進整数０と３１との間の値を有するホストタグを含む。目だったレガシー読み出し／書き込みＤＭＡ  キューコマンドの数は、キュー深さを超過し得ない。ホストが、無効ホストタグ値を有するＬＱ  ＣＭＤコマンドを送信した場合、デバイスはエラー状態で応答する。このような場合の例は、キュー深さが超過した場合である。ホストがＬＱ  ＣＭＤコマンドを送信した後、ホストは、デバイスからのこれに対する応答を待つ。デバイスからの応答は、以下の場合を含む。
【０１６２】
デバイスは、レジスタＦＩＳ４０（ｉｉ）を送信し、ここで、レジスタＦＩＳ４０（ｉｉ）におけるＲＥＬビットがセットされ（論理値１に等しい）レジスタＦＩＳ４０（ｉｉ）におけるＳＥＲＶはリセットされ（論理値０に等しい）、デバイスは、コマンドをキューに入れ、コマンドが「リリースされた」ことを示す。「リリースされた」は、後続の処理のコマンドをキューに入れた後、デバイスは切断し（「切断」、「接続」、および「再接続」は、本明細書中で参考のためすでに述べられた、シリアルＡＴＡ仕様において定義されるとおりである）かつ、後の時間に再接続してコマンドを完了する。コマンドがリリースされた場合、ホストは、キュー深さが超過しない限り、別のレガシー読み出し／書き込みＤＭＡキューコマンドを送信することができ、
デバイスはレジスタＦＩＳ４０（ｉｉ）を送信し、レジスタＦＩＳ４０（ｉｉ）におけるＲＥＬビットおよびＳＥＲＶビットの両方がセットされて、デバイスは、コマンドをキューに入れ、かつキューコマンドをサービスするように実行可能であることを示し、
デバイスは、データＦＩＳ４０（ｖｉｉ）またはＤＭＡアクティベートＦＩＳ４０（ｉｉｉ）を送信して、デバイスがコマンドを実行していることを示し、
デバイスは、レジスタＦＩＳ４０（ｉｉ）を送信し、ここで、レジスタＦＩＳ４０（ｉｉ）におけるＢＳＹビットがリセットされ、レジスタＦＩＳ４０（ｉｉ）におけるＥＲＲビットがセットされて、エラーが生じたことを示すか、あるいは、
デバイスがホストに再接続するように実行可能である場合、デバイスは、セットデバイスビットＦＩＳ４０（ｖ）またはレジスタＦＩＳ４０（ｉｉ）をホストに送信し、ここで、セットデバイスビットＦＩＳ４０（ｖ）におけるＳＥＲＶビットまたはレジスタＦＩＳ４０（ｉｉ）がセットされる。ホストは、これに、ＳＥＲＶＩＣＥコマンドで応答して、デバイスは、レジスタＦＩＳ４０（ｉｉ）を、ホストタグ値を含むホストに戻す。この時点で、ホストおよびデバイスは再接続され、コマンドの実行を再開する。デバイスがレガシーキューコマンドの非空キューを有するときに、ホストが非キューコマンドまたはネイティブキューコマンドを送信した場合、キューコマンドが中止される。
【０１６３】
ネイティブキューコマンドの場合（ＮＱ  ＣＭＤ）、ホストタグ値は、０とキュー深さから１を引いた値（ｑｕｅｕｅ＿ｄｅｐｔｈ＿ｍｉｎｕｓ＿ｏｎｅ）との間の値に制限される。ホストがネイティブキューコマンドを送信した後、ホストは、デバイスからのレジスタＦＩＳ４０（ｉｉ）を待つ。レジスタＦＩＳ４０（ｉｉ）におけるＢＳＹビットおよびＤＲＱがリセットされた場合、デバイスからのレジスタＦＩＳは、コマンドがキューに入れられ、コマンドがリリースされたことを示す。レジスタＦＩＳ４０（ｉｉ）におけるＢＳＹビットはリセットされ、レジスタＦＩＳ４０（ｉｉ）におけるＥＲＲビットがセットされた場合、デバイスからのレジスタＦＩＳ４０（ｉｉ）は、エラーが生じたことを示す。コマンドがリリースされた場合、ホストは、キュー深さが超過しない限り別のネイティブキューコマンドを送信し得る。デバイスがホストに再接続するように実行可能である場合、デバイスは、ホストタグ値を含むＤＭＡセットアップＦＩＳ４０（ｉｖ）を送信する。
【０１６４】
この時点で、ホストおよびデバイスは、再接続され、コマンドの実行を再開する。デバイスは、セットデバイスビットＦＩＳ４０（ｖ）を介して補完ステータスを送信する。セットデバイスビットＦＩＳ４０（ｖ）のＳａｃｔｉｖｅフィールド４０（ｖ）（ｉｉ）は、３２ビットを有し、各ビットは、タグに対応する（ビット０はタグ値０に対応し、ビット１はタグ値１に対応する等である）。セットデバイスビットＦＩＳ４０（ｖ）のＳａｃｔｉｖｅフィールド４０（ｖ）（ｉｉ）におけるビットセットは、補完された対応するキューコマンドに対応することを示す。セットデバイスビットＦＩＳ４０（ｖ）ビットにおけるＥＲＲがセットされない場合、コマンドは、エラーなく首尾よく補完される。デバイスがネイティブキューコマンドの非空キューを有するときにホストが非キューコマンドまたはレガシーキューコマンドを送信する場合、キューコマンドが中止される。
【０１６５】
両方のホストは同じタグ値を用い得るので、スイッチは、ホストタグ値を異なった値にマッピングして、デバイスが再接続するときにホスト間を区別できるようにする。本発明の実施形態の１つのスイッチがキューコマンドを受信した場合、ホストタグは、一意的デバイスタグにマッピングされ、これにより、ホストおよび元のホストタグは、デバイスが再接続しているときに識別される。
【０１６６】
レガシーキューコマンドの場合、スイッチ３００がデバイスからセットデバイスビットＦＩＳ４０（ｖ）（ここで、セットデバイスビットＦＩＳ４０（ｖ）におけるＳＥＲＶビットがセットされる）またはレジスタＦＩＳ４０（ｉｉ）（ここで、レジスタＦＩＳ４０（ｉｉ）におけるＳＥＲＶビットがセットされる）を受信したときに、スイッチ３００は、セットデバイスビットＦＩＳ４０（ｖ）を転送し得ない。デバイスがサービスすることを必要とするコマンドのタグ値がまだ利用可能でないからである。タグ値を取得するために、スイッチ３００は、ＳＡＲＶＩＣＥコマンドをデバイスに送信し、デバイスは、タグを含むレジスタＦＩＳ４０（ｉｉ）で応答する。スイッチ３００は、その後、タグを再マッピングして、ホストおよび元のホストのタグ値を識別する。スイッチ３００におけるホストからのレガシーキューコマンドの待ち状態がない場合、スイッチは、セットデバイスビットＦＩＳ４０（ｖ）を、ＳＥＲＶビットセットを有するホストに送信する。スイッチにおけるレガシーキューコマンド待ち状態がある場合、スイッチ３００は、内部ストレージ３４４にコマンドを格納し、デバイスが待ち状態レガシーキューコマンドをリリースするように実行可能である場合、デバイスは、レジスタＦＩＳ４０（ｉｉ）で応答し、ここで、レジスタＦＩＳ４０（ｉｉ）におけるＲＥＬビットおよびＳＥＲＶビットがセットされる。ホストは、ＳＥＲＶＩＣＥコマンドで応答する場合、スイッチ３００は、元のホストタグ値を含むレジスタＦＩＳ４０（ｉｉ）で応答する。
【０１６７】
ネイティブキューコマンドの場合、スイッチ３００が、デバイスからＤＭＡセットアップＦＩＳ４０（ｖｉ）を受信した場合、スイッチ３００は、最初にＤＭＡセットアップＦＩＳ４０（ｖｉｉ）内のタグを再マッピングし、ホストおよび元のホストタグ値を識別し、その後、ＤＭＡセットアップＦＩＳ４０（ｖｉ）（ｉｉ）を識別したホストに転送する（タグは、元のホストタグと置換される）。
【０１６８】
ネイティブキューコマンドの場合、スイッチ３００は、ネイティブキューコマンド補完のステータスを示すＳａｃｔｉｖｅフィールド４１（図１ｄ（ｖ）に示される）セットデバイスビットを含むＦＩＳ４０（ｖ）をデバイスから受信した場合、スイッチ３００は、ホスト１１ＳＡｃｔｉｖｅフィールドおよびホスト１２Ｓａｃｔｉｖｅフィールドを生成して、これにより、ホスト１１Ｓａｃｔｉｖｅフィールドは、ホスト１１（図３ａに示される）に属するＳａｃｔｉｖｅフィールド４１におけるタグのみを含み、ホスト１２Ｓａｃｔｉｖｅフィールドは、ホスト１２（図３ａに示される）に属するＳａｃｔｉｖｅフィールド４１におけるタグのみを含む。スイッチ３００は、セットデバイスビットＦＩＳ４０（ｖ）をホスト１１（図３ａに示される）に転送し（Ｓａｃｔｉｖｅフィールドは、ホスト１１Ｓａｃｔｉｖｅフィールドと置換される）、同時に、セットデバイスビットＦＩＳ４０（ｖ）をホスト１２（図３ａに示される）に転送する（Ｓａｃｔｉｖｅフィールド４１は、ホスト１２Ｓａｃｔｉｖｅフィールドと置換される）。
【０１６９】
図８ａは、レガシーキューコマンドの図６のスイッチ３００の動作のフローチャートを示す。
【０１７０】
アイドル状態３６１において、レガシーキューコマンドがどちらかのホストから受信されるか、または、待ち状態タスクファイル３６２において待ち状態のレガシーキューコマンドがある場合、スイッチ３００は、ホスト選択状態３６３に状態を変更する。そうでない場合、セットデバイスビットＦＩＳ４０（ｖ）、またはＳＥＲＶビットセットを有するレジスタＦＩＳ４０（ｉｉ）がデバイス３７２から受信された場合、スイッチ３００は、状態をサービス送信状態３７３（ｓｅｎｄ−ｔｈｅ−ｓｅｒｖｉｃｅ）に変更する。そうでない場合、スイッチは、アイドル状態３６１に留まる。
【０１７１】
ホスト選択状態３６３において、スイッチ３００は、ホスト間をアービトレーションし、待ち状態コマンドが実質的にデバイスに転送されるホストを選択する。待ち状態コマンドは、選択されたホストタグを含む。スイッチ３００は、その後、状態をＬＱ  ＣＭＤ送信状態３６４（ｓｅｎｄ−ＬＱ  ＣＭＤ）に変更する。
【０１７２】
ＬＱ  ＣＭＤ送信状態３６４において、スイッチ３００は、選択されたＬＱホストタグを最初に送信デバイスタグにマッピングし、選択されたＬＱホストタグを送信デバイスタグと置換し、その後、待ち状態コマンドをデバイスに転送する。スイッチ３００は、その後、状態を変更して、デバイス応答状態３６５を待つ。送信デバイスタグは、スイッチ３００によってデバイスに送信されるタグのことである。
【０１７３】
デバイス応答待ち（ｗａｉｔ−ｆｏｒ−ｔｈｅ−ｄｅｖｉｃｅ−ｒｅｓｐｏｎｓｅ）状態３６５において、デバイス応答が受信された場合、スイッチ３００は、状態をデバイス応答チェック（ｃｈｅｃｋ−ｄｅｖｉｃｅ−ｒｅｓｐｏｎｓｅ）状態３６６に変更する。そうでない場合、スイッチ３００は、デバイス応答待ち状態３６５に留まる。デバイス応答チェック状態３６６において、デバイス応答が、ＲＥＬビットセット、およびレジスタＦＩＳ４０（ｉｉ）におけるＳＥＲＶビットセットである場合、スイッチ３００は、状態を切断／再接続状態３６６ｂに変更する。そうでない場合、デバイス応答がＲＥＬビットセットおよびＳＥＲＶビットリセットを有するレジスタＦＩＳ４０（ｉｉ）である場合、スイッチ３００は、状態を切断状態３６６ｄに変更する。さらにそうでない場合、デバイス応答は、データＦＩＳ４０（ｖｉｉ）またはＤＭＡアクティベートＦＩＳ４０（ｉｉｉ）である場合、スイッチ３００は、状態を実行状態３６６ｆに変更する。さらにそうでない場合、デバイス応答は、ＥＲＲビットセットを有するレジスタＦＩＳ４０（ｉｉ）である場合、スイッチ３００は、状態をエラー状態３６６ｈに変更する。さらにそうでない場合、スイッチは、状態を廃棄状態３６６ｊに変更し、受信されたＦＩＳを廃棄して、状態をアイドル状態３６１に変更する。
【０１７４】
切断／再接続状態３６６ｂにおいて、スイッチ３００は、ＲＥＬビットセットおよび
ＳＥＲＶビットリセットを有するレジスタＦＩＳ４０（ｉｉｉ）を送信して、ホストを選択し、その後、状態をサービス送信ＣＭＤ（ｓｅｎｄ−ｓｅｒｖｉｃｅ−ＣＭＤ）状態３７３に変更する。切断状態３６６ｄにおいて、スイッチ３００は、ＲＥＬビットセットおよびＳＥＲＶビットリセットを有するレジスタＦＩＳを選択したホストに送信し、その後、状態をサービス送信ＣＭＤ状態３７３に変更する。切断状態３６６ｄにおいて、スイッチ３００は、ＲＥＬビットセットおよびＳＥＲＶビットリセットを有するレジスタＦＩＳを選択したホストに送信し、その後、状態をアイドル状態３６１に変更する。
【０１７５】
実行状態３６６ｆにおいて、スイッチ３００は、現在のコマンドが補完されるのを待ち受け、現在のコマンドは、送信ＬＱ  ＣＭＤ状態３６４に送信されたコマンドである。現在のコマンドが首尾よく補完された後で、スイッチ３００は、状態をアイドル状態３６１に変更する。そうでない場合、現在のコマンドはエラーで終了し、その後、スイッチ３００は、状態をエラー状態３６６ｈに変更する。エラー状態３６６ｈにおいて、スイッチ３００はエラー処理を実行し、エラー処理が完了した後で、状態をアイドル状態３６１に変更する。
【０１７６】
サービス送信ＣＭＤ状態３７３において、スイッチ３００は、サービスＣＭＤをデバイスに送信し、状態をデバイスタグ待ち（ｗａｉｔ−ｆｏｒ−ｔｈｅ−ｄｅｖｉｃｅ−ｔａｇ）状態３７４に変更する。
【０１７７】
デバイスタグ待ち状態３７４にある間にデバイス応答が受信された場合、スイッチ３００は、状態を再マッピング状態３７５に変更し、そうでない場合、スイッチ３００は、デバイスタグ待ち状態３７４に留まる。再マッピング状態３７５において、スイッチ３００は受信デバイスタグ、すなわち、スイッチ３００によってデバイスから受信されたタグを再マッピングして、ホストおよび元のホストタグを識別し、さらに、スイッチ３００は、受信デバイスタグを元のホストタグと置換する。識別されたホストタスクファイル内に待ち状態キューＣＭＤがある場合、スイッチ３００は、状態を保存状態３７６ｂに変更し、そうでない場合、スイッチ３００は、状態をホストに再接続（ｒｅｃｏｎｎｅｃｔ−ｔｏ−ｔｈｅ−ｈｏｓｔ）状態３７６ａに変更する。ホストへの再接続状態３７６ｂにおいて、スイッチ３００は、ＳＥＲＶビットセットを有するセットデバイスビットＦＩＳ４０（ｖ）を識別されたホスト（再マッピング状態３７５において識別されたホスト）に送信し、その後、状態をホスト応答待ち状態３７７に変更する。
【０１７８】
ホスト応答待ち状態３７７において、識別されたホストの応答が受信された場合、スイッチ３００は、状態をホスト応答チェック状態３７８に変更し、そうでない場合、スイッチ３００は、ホスト応答待ち状態３７７に留まる。ホスト応答チェック状態３７８において、ホスト応答がサービスコマンドである場合、スイッチ３００は、状態をホストにタグを送信（ｓｅｎｄ−ｔａｇ−ｔｏ−ｈｏｓｔ）状態３７８ｂに変更し、そうでない場合、ホスト応答が別のＬＱＣＭＤである場合、スイッチ３００は、状態をセット待ち（ｓｅｔ−ｐｅｎｄｉｎｇ）状態３７８ｅに変更し、そうでない場合、スイッチ３００は、状態をエラー２状態３７８ｄに変更する。
【０１７９】
ホストへのタグを送信状態３７８ｂにおいて、スイッチ３００は、レジスタＦＩＳを元のホストタグと共に識別されたホストに送信し、状態を再接続された状態３７９に変更する。セット待ち状態３７８ｅにおいて、スイッチ３００は、ホストが別のレガシーキューコマンドを送信することを示すように待ちキューＣＭＤフラグをセットする。保存状態３７６ｂにおいて、スイッチ３００は、識別されたホストのタスクファイルを待ち状態タスクファイル内に保存し、その後、レジスタＦＩＳ４０（ｖ）をＳＥＲＶビットセットおよびＲＥＬビットセットと共に識別されたホストに送信する。
【０１８０】
切断／再接続状態３６６ｂにおいて、ホスト状態３７６ａ、保存状態３７６ｂ、およびホストへのタグを送信状態３７８ｂ、改変されたＦＩＳまたは新しいＦＩＳへの再接続がホストに送信される。アービトレーションおよび制御回路３４０は、改変されたＦＩＳ（または新しいＦＩＳ）に対応するタスクファイルを生成し、これを、ｍｕｘ−ｄｅｍｕｘ３５４の入力に接続された制御タスクファイル出力バス３５４ｉに送信する。回路３４０は、制御信号３５４ｃの値をさらにセットして、バス３５４ｉを選択し、これを多重分離して、ｍｕｘ−ｄｅｍｕｘ３５４の出力として利用する。
【０１８１】
ＬＱ  ＣＭＤ送信状態３６４において、サービス送信ＣＭＤ３７３、改変されたＦＩＳ（または新しいＦＩＳ）がデバイスに送信される。アービトレーションおよび制御回路３４０は、改変されたＦＩＳまたは新しいＦＩＳに対応するタスクファイルをデバイスコントロールタスクファイル出力バス３５２ｉ上に生成し、このバスは、次に、図５に示されるように、マルチプレクサ３５２の入力の１つに接続され、選択信号３５２ｓの値をセットして、マルチプレクサ３５２の出力としてバス３５２ｉを選択し、このバスは、デバイスタスクファイル入力バス３３６ｉに接続される。
【０１８２】
図８ｂは、ネイティブキューコマンド（ＮＱ  ＣＭＤ）のスイッチ３００の動作のフローチャートを示す。アイドル状態３８１において、３８２〜３８６に示されるように、多数の決定が下され得る。３８２において、ネイティブキューコマンドがホストのどちらかから受信され、デバイスが前のＮＱ  ＣＭＤに応答した場合、スイッチ３００は、状態をホスト選択状態３８２ａに変更し、そうでない場合、３８３において、レジスタＦＩＳがＥＲＲビットリセットと共に、デバイスから受信された場合、スイッチ３００は、状態をＮＱ切断状態３８３ａに変更する。そうでない場合、３８４において、ＤＭＡセットアップＦＩＳ４０（ｉｖ）がデバイスから受信された場合、スイッチ３００は、状態をＮＱ再マッピング状態３８４ａに変更する。さらにそうでない場合、３８５において、セットデバイスビットＦＩＳ４０（ｖ）が受信され、３８５ａにおいて、セットデバイスビットＦＩＳにおけるＥＲＲビットがリセットされた場合、スイッチは、状態をＮＱステータス状態３８５ｂに変更し、そうでない場合、ＥＲＲビットがセットされた場合、スイッチ３００は、状態をＮＱエラー状態３８６ａに変更する。３８５において、セットデバイスビットＦＩＳが補完ステータスを示さず、３８６において、デバイスレジスタＦＩＳがＥＲＲビットセットと共に受信された場合、スイッチ３００は、状態をＮＱエラー状態３８６ａに変更し、そうでない場合、スイッチ３００は、アイドル状態３８１に留まる。
【０１８３】
ホスト選択状態３８２ａにおいて、スイッチ３００は、ホスト間でアービトレーションし、待ち状態コマンドが、次にＮＱ  ＣＭＤ送信状態３８２ｂのデバイスに転送されるホストを選択する。スイッチ３００は、その後、状態をＮＱ  ＣＭＤ状態３８２ｂに変更する。
【０１８４】
ＮＱ  ＣＭＤ送信状態３８２ｂにおいて、スイッチ３００は、選択されたＮＱホストタグを送信デバイスタグに最初にマッピングし、選択されたＮＱホストタグを送信デバイスタグと置換し、送信ＮＱ  ＣＭＤ状態３８２ｂで送信されたコマンドをデバイスに転送し、フラグ「ｄｅｖｉｃｅ＿ｎｏｔ＿ｒｅｓｐｏｎｄｅｄ」をセットし、状態をアイドル状態３８１に変更する。フラグ「ｄｅｖｉｃｅ＿ｎｏｔ＿ｒｅｓｐｏｎｄｅｄ」は、デバイスが、ネイティブキューコマンドにまだ応答していないことを示す。
【０１８５】
ＮＱ切断状態３８３ａにおいて、スイッチ３００は、レジスタＦＩＳが選択されたホストに転送されるようにし、フラグ「ｄｅｖｉｃｅ＿ｎｏｔ＿ｒｅｓｐｏｎｄｅｄ」をリセットし、その後、状態をアイドル状態３８１に変更する。ＮＱ再マッピング状態３８４ａにおいて、スイッチ３００は、受信デバイスタグを再マッピングしてホストおよび元のホストタグを識別し、受信デバイスタグをＤＭＡセットアップＦＩＳにおける元のホストタグと置換して、ＤＭＡセットアップＦＩＳを識別されたホストに送信し、状態をＮＱ再接続状態３８４ｂに変更する。ＮＱ再接続状態３８４ｂにおいて、識別されたホストはデバイスに再接続され、データＦＩＳは、再接続されたホストとデバイスとの間で転送される。ＮＱ再接続状態３８４ｂにおいて、スイッチ３００は、３８４ｃにおいてＤＭＡ転送カウントが完了したかどうかに関してチェックする。ＤＭＡ転送カウントが完了していない場合、スイッチ３００は、再接続された状態３８４ｂに留まり、そうでない場合、スイッチ３００は、状態をアイドル状態３８１に変更する。ＮＱステータス状態３８５ｂにおいて、スイッチ３００は、首尾よく完了したＮＱ  ＣＭＤのステータスを処理し、これは、セットデバイスビットＦＩＳ４０（ｖ）のＳａｃｔｉｖｅフィールド４１におけるデバイスによって通知される。
【０１８６】
スイッチ３００は、ホスト１１Ｓａｃｔｉｖｅフィールドおよびホスト１２ＳａｃｔｉｖｅフィールドをＳａｃｔｉｖｅフィールド４１から生成し、これにより、ホスト１１Ｓａｃｔｉｖｅフィールドは、ホスト１１に属するＳａｃｔｉｖｅフィールド４１におけるタグのみを含み、ホスト１２Ｓａｃｔｉｖｅフィールドは、ホスト１２に属するＳａｃｔｉｖｅフィールド４１におけるタグのみを含む。スイッチ３００は、セットデバイスビットＦＩＳをホスト１１に転送し、Ｓａｃｔｉｖｅフィールド４１はホスト１１Ｓａｃｔｉｖｅフィールドと置換され、スイッチは、その後、セットデバイスビットＦＩＳをホスト１２に転送し、Ｓａｃｔｉｖｅフィールド４１はホスト１２Ｓａｃｔｉｖｅフィールドと置換される。スイッチ３００は、その後、状態をアイドル状態３８１に変更する。ＮＱエラー状態３８６において、スイッチ３００は、エラー処理を実行し、かつ、エラー処理が完了した後に、状態をアイドル状態３８１に変更する。
【０１８７】
ＮＱ再マッピング状態３８４ａおよびＮＱステータス状態３８５ｂにおいて、改変されたＦＩＳはホストに送信される。アービトレーションおよび制御回路３４０は、改変されたＦＩＳまたは新しいＦＩＳに対応するタスクファイルを生成し、制御タスクファイル出力バス３５４に送信し、すなわち、ｍｕｘ−ｄｅｍｕｘ３５４の第２の入力に接続され、値を制御信号３５４ｃにセットして、バス３５４ｉを選択し、選択されたホストに多重分離する。
【０１８８】
ＮＱ  ＣＭＤ送信状態３６４において、改変されたＦＩＳがデバイスに送信される。アービトレーションおよび制御回路３４０は、改変されたＦＩＳに対応するタスクファイルを生成し、マルチプレクサ３５２の入力の１つに接続されたデバイスコントロールタスクファイル出力バス３５２ｉに送信し、値を選択信号３５２ｓにセットして、マルチプレクサ３５２の出力としてバス３５２ｉを選択し、このバスは、デバイスタスクファイル入力バス３３６ｉに接続される。
【０１８９】
本発明の実施形態の１つにおいて、デバイスタグ（送信デバイスタグおよび受信デバイスタグ）値は、２つの範囲、すなわち、ホスト１１範囲とホスト１２範囲とに分割される。本発明のある実施形態において、ホスト１１範囲は、最小ホスト１１タグ値から最大ホスト１１タグ値までのタグを含み、ホスト１２範囲は、最小ホスト１２タグ値から最大ホスト１２タグ値までのタグを含み、ここで、最小ホスト１１タグ値は０であり、最大ホスト１１タグ値はホストキュー深さから１を引いた値に等しい。最小ホスト１２タグ値は、ホストキュー深さに等しく、最大ホスト１２タグ値は、２＊ｈｏｓｔ＿ｑｕｅｕｅ＿ｄｅｐｔｈ−１に等しく、ホストキュー深さは、識別ドライブコマンドに応答して、ホスト１１およびホスト１２に通知された値であり、これはすでに記載された。
【０１９０】
例えば、デバイスが３２のキュー深さをサポートする場合、識別ドライブコマンドに応答して通知されるホストキュー深さが１６であり、ホスト１１範囲は、０〜１５のタグであり、ホスト１２範囲は１６〜３１である。別の例において、デバイスが３１のキュー深さをサポートする場合、ドライブコマンドを識別することに応答して通知されたホストキュー深さは、１５であり、ホスト１１範囲は０〜１４のタグであり、ホスト１２範囲は１５〜３０のタグである。ホスト１１およびホスト１２のキュー深さが異なる代替的実施形態は、本発明の範囲に含まれる。
【０１９１】
図７ａを参照して、アービトレーションおよび制御回路３４０は、ホストアービトレーション回路３４３、タグ／Ｓａｃｔｉｖｅマッピング回路３４１、および制御回路３４２を備える。タグ／Ｓａｃｔｉｖｅマッピング回路３４１によって実行される機能は、
ホストタグを送信デバイスタグにマッピングし、レガシーキュータグの場合、マッピングの結果をタグメモリに保存し、かつ、有効キュータグのリストを保持することと、
受信デバイスタグを逆マッピングしてホストを識別し、かつ元のホストタグを取得し、ＬＱ  ＣＭＤの場合、制御回路３４２によってコマンドの補完に方向付けられた場合、キュータグを無効にすることと、
ホスト１１およびホスト１２にそれぞれ対応するＳａｃｔｉｖｅフィールド４１をホスト１１Ｓａｃｔｉｖｅフィールドおよびホスト１２Ｓａｃｔｉｖｅフィールドにマッピングすることと
を包含する。
【０１９２】
ホスト１１タスクファイル出力バス３１６ｏは、ホスト１１ＦＩＳリクエスト３１８を含み、このリクエストは、ホスト１１ＦＩＳリクエストインジケーションおよびキューコマンドインジケーションを含む。ホスト１１ＦＩＳリクエストインジケーションは、書き込みをホスト１１タスクファイルコマンドまたはデバイスコントロールレジスタに復号化することによって生成される。ホスト１１キューコマンドインジケーションは、レガシーまたはネイティブキューコマンドのホスト１１タスクファイルコマンドレジスタへの書き込みを復号化することによって生成される。
【０１９３】
ホスト１２タスクファイル出力バス３２６ｏは、ホスト１２ＦＩＳリクエスト信号およびキューコマンド信号を含むホスト１２ＦＩＳリクエスト３２８を含む。ホスト１２ＦＩＳリクエスト信号は、書き込みをホスト１２タスクファイルコマンドまたはデバイスコントロールレジスタに復号化することによって生成される。ホスト１２キューコマンド信号は、レガシーまたはネイティブキューコマンドのホスト１２タスクファイルコマンドレジスタへの書き込みを復号化することによって生成される。
【０１９４】
ホストアービトレーション回路３４３は、ホスト１１ＦＩＳリクエスト３１８、ホスト１２ＦＩＳリクエスト３２８、制御回路３４２からの制御信号３４３ｃ、およびタグ／Ｓａｃｔｉｖｅマッピング回路３４１からのキューステータス信号３４１ｑを受信する。制御回路３４２からの制御信号３４３ｃに応答して、ホストアービトレーション回路３４３は、制御回路３４２への入力として利用されるホスト選択信号３４３ｈｓを生成する。ホスト選択信号３４３ｈｓ上の論理値ゼロは、ホスト１１がデバイスにコマンドを送信し得ることを示し、論理値１は、ホスト１２がデバイスにコマンドを送信し得ることを示す。ホストアービトレーション３４３の動作は、表１に記載される。
【０１９５】
制御回路３４２によって実行される機能は、
マルチプレクサ３５１の動作を制御する選択信号３５１ｓを生成することと、
マルチプレクサ３５２の入力と、マルチプレクサ３５２の動作を制御する選択信号３５２ｓとに接続されるデバイスコントロールタスクファイル出力バス３５２ｉを生成することと、
ｍｕｘ−ｄｅｍｕｘ３５３の入力に接続される制御コマンド層出力バス３５３ｉと、ｍｕｘ−ｄｅｍｕｘ３５３の制御信号である制御信号３５３ｃとを生成することと、
ｍｕｘ−ｄｅｍｕｘ３５４の入力に接続される制御タスクファイル出力バス３５４ｉと、ｍｕｘ−ｄｅｍｕｘ３５４の動作を制御する制御信号３５４ｃとを生成することと、
ホストアービトレーション回路３４３の制御信号３４２ｃを生成することと、
タグ／Ｓａｃｔｉｖｅマッピング回路３４１の制御信号３４１ｃｔｌを生成することと、
制御信号を生成して、識別されたホストタスクファイルを待ち状態タスクファイル３４４に保存し、かつ、マルチプレクサ３５４の動作を制御することと
を包含する。
【０１９６】
図７ｂは、本発明の実施形態の１つにおいて用いられるタグ／Ｓａｃｔｉｖｅマッピング回路を示す。タグ／Ｓａｃｔｉｖｅマッピング回路３４１は、タグメモリ３４１ｄと、対応するＬＱＴが有効であるかそうでないことを示す有効ＬＱＴレジスタ３４１ａと、ＬＱＴマップ３４１ｂと、ＮＱＴマップ３４１ｇと、ＮＱＴ逆マップ３４１ｆと、デバイスタグマルチプレクサ３４１ｍ１と、ホストタグマルチプレクサ３４１ｍ２とを備える。タグ／Ｓａｃｔｉｖｅマッピング回路３４１入力は、デバイスタグ入力３４１ｊ、ホストタグ入力３４１ｉ、Ｓａｃｔｉｖｅ入力３４１ｋ、ホストキュー深さ入力３４１ｑｄ、および制御バス３４１ｃｔｌを備える。タグ／Ｓａｃｔｉｖｅマッピング回路３４１は、マッピングされたホストタグ３４１ｄｔ、取り出されたホストタグ３４１ｈｔ、ホスト１１Ｓａｃｔｉｖｅ出力バス３４１ｓｌおよびホスト１２Ｓａｃｔｉｖｅ出力バス３４１ｓ２を含む特定の出力を生成する。
【０１９７】
ネイティブキューコマンドの場合、ホストタグ値は、０とｈｏｓｔ＿ｑｕｅｕｅ＿ｄｅｐｔｈ＿ｍｉｎｕｓ＿ｏｎｅとの間に制限される。マッピングおよび逆マッピングは、加算器／減算器を用いて達成される。ホスト１１タグに対応するデバイスタグは、ホスト１１タグと同じであり、ホスト１２タグに対応するデバイスタグは、ホスト１２タグ値にホストキュー深さを加えたものである。
【０１９８】
ＮＱタグをマッピングする動作は、ＮＱＴマップ３４１ｇによって実行される。ＮＱＴマップ３４１ｇは、選択されたホストタグ入力３４１ｉおよびホストキュー深さ３４１ｑｄを受信し、その出力は、デバイスタグマルチプレクサ３４１ｍ１の入力に接続される。選択されたホストタグ入力３４１ｉがホスト１１からのものである場合（信号３４１ｈは、論理値ゼロ）、ＮＱＴマップの出力は、選択されたホストタグ入力３４１ｉに等しく、そうでない場合、ホストタグ入力３４１ｉは、ホスト１２からのものである場合（信号３４１ｈは、論理値１）、ＮＱＴマップの出力は、選択されたホストタグ入力３４１ｉにホストキュー深さを加えたものである。
【０１９９】
ＮＱタグの逆マッピングは、ＮＱＴ逆マップ３４１ｆによって実行される。ＮＱＴ逆マップ３４１ｆは、受信デバイスタグ入力３４１ｊ、ホストキュー深さ３４１ｑｄを受信し、その出力３４１ｉｎｔは、対応する元のホストタグ値と連結したホストを識別する（論理値ゼロは、ホスト１１が識別されたことを示し、論理値１は、ホスト１２が識別されたことを示す）バイナリ値の信号を含む。出力３４１ｉｎｔは、ホストタグマルチプレクサ３４１ｍ２の入力に接続される。受信デバイスタグ入力３４１ｊがホストキュー深さ３４１ｑｄよりも少ない場合、出力は、デバイスタグ入力３４１ｊと連結した論理値ゼロ信号（ホスト１１を示す）に等しく、そうでない場合、出力３４１ｉｎｔは、受信デバイスタグ３４１ｊからホストキュー深さ３４１ｑｄを引いたものと連結した論理値１信号（ホスト１２を示す）に等しい。
【０２００】
レガシーキューコマンドの場合、ホストキュー深さに関係無く、ホストタグ値は０と３１との間である。上述のように、０〜ｈｏｓｔ＿ｑｕｅｕｅ＿ｄｅｐｔｈ＿ｍｉｎｕｓ＿ｏｎｅのデバイスタグは、ホスト１１範囲に割り当てられ、ｈｏｓｔ＿ｑｕｅｕｅ＿ｄｅｐｔｈ〜（２＊ｈｏｓｔ＿ｑｕｅｕｅ＿ｄｅｐｔｈ−１）のデバイスタグは、ホスト１２範囲に割り当てられる。タグメモリユニット３４１ｄは、デバイスタグに対応するホストタグ値を格納するために用いられる。これにより、タグメモリユニット３４１ｄが受信デバイスタグに対応するアドレスでアクセスされるという点で、逆転マッピングによって実行される機能と関連した複雑さが低減される。
【０２０１】
タグメモリ３４１ｄは、デバイスタグに対応するホストタグを格納する。本発明の実施形態の１つにおいて、タグメモリ３４１ｄは３２個のエントリを有し、エントリ０（アドレス０）は、デバイスタグ値０に対応するホストタグを格納し、エントリ１（アドレス１）は、デバイスタグ値１に対応するホストタグを格納する、等である。タグメモリ内のすべてのエントリが有効であるわけではない。タグメモリ３４１ｄは、別個の読み出しおよび書き込みアクセスポートを有する従来のメモリである。タグメモリ３４１ｄ読み出しアクセスポートは、読み出シャドーレスポート、読み出しストローブポート、および読み出し出力ポートを備える。タグメモリ３４１ｄ書き込みアクセスポートは、書き込み入力ポート、書き込みアドレスポート、および書き込みストローブポートを備える。タグメモリ３４１ｄ読み出しアドレスポートは、受信デバイスタグ入力３４１ｊに接続され、読み出しストローブは、制御信号３４１ｒｄに接続され、読み出し出力は、タグメモリ出力バス３４１ｉｌｔに接続される。タグメモリ３４１ｄ書き込みアドレスポートは、ＬＱＴマップ３４１ｔと、信号３４１ｗｒを制御するように接続された書き込みストローブポートと、制御信号３４１ｈおよび選択されたホストタグ入力３４１ｉを連結することによって形成されるバスに接続される書き込み入力バスとに接続される。有効ＬＱＴエントリ３４１ａは、デバイスタグ値ごとにｖａｌｉｄ＿ｌｑｔ＿ｂｉｔを含む。ｖａｌｉｄ＿ｌｑｔ＿ｂｉｔの値が論理値１である場合、これは、対応するデバイスタグ値が用いられることを示し、これに対して、論理値０は、対応するデバイスタグ値が用いられないことを示す。ｖａｌｉｄ＿ｌｑｔ＿ｂｕｓ３４１ｖがすべてのｖａｌｉｄ＿ｌｑｔ＿ｂｉｔを含むバスである。ｖａｌｉｄ＿ｌｑｔ＿ｂｕｓ３４１ｖが入力としてＬＱＴマップ３４１ｂに提供される。制御信号３４１ｈが論理値０にある場合、ＬＱＴマップ３４１ｂは、用いられないホスト１１範囲における第１のタグ値を見出し、これをＬＱＴマップ出力３４１ｌｔに配置する。制御信号３４１ｈが論理値１にある場合、ＬＱＴマップ３４１ｂは、用いられないホスト１２範囲における第１のタグ値を見出し、これをＬＱＴマップ出力３４１ｌｔに配置する。ＬＱＴマップ出力３４１ｌｔは、デバイスタグマルチプレクサ３４１ｍ１の入力に接続される。制御信号３４１は、デバイスタグマルチプレクサ出力３４１ｄｔに配置されるホストタグマルチプレクサ３４１ｍ１の入力を選択する。制御信号３４１ｗｒがアサートされた場合、選択されたホストタグ入力３４１ｉ上の値および制御信号３４１ｈがＬＱＴマップ出力３４１ｌｔに対応するエントリにてタグメモリ３４１ｄに書き込まれ、ＬＱＴマップ出力３４１ｌｔに対応するｖａｌｉｄ＿ｌｑｔ＿ｂｉｔは論理値１にセットされる。
【０２０２】
ＬＱタグの逆マッピングは、受信デバイスタグ入力３４１ｊに等シャドーレスを有するエントリのタグメモリ３４１ｄにアクセスすることによって実行される。受信デバイスタグ入力３４１ｊは、タグメモリ３４１ｄの読み出シャドーレスポートに接続されることが示され、制御信号３４１ｒｄがアサートされた場合、タグメモリ３４１ｄがアクセスされ、受信デバイスタグ入力３４１ｊに対応するアドレスのエントリは、出力に配置される。タグメモリ出力３４１ｉｌｔは、ホストタグマルチプレクサ３４１ｍ２の入力に接続される。制御信号３４１ｎは、マルチプレクサ３４１ｍ２の出力に配置されるホストタグマルチプレクサ３４１ｍ２の入力を選択する。ホストタグマルチプレクサ３４１ｍ２の出力は、ｒｅｔｒｉｅｖｅ＿ｔａｇ＿ｒｅｇｉｓｔｅｒ３４１ｅに保存される。ｒｅｔｒｉｅｖｅ＿ｔａｇ＿ｒｅｇｉｓｔｅｒ出力３４１ｈｔは、どのホストが元のホストおよび対応するホストタグ値であるのかを示す信号を含む。
【０２０３】
Ｓａｃｔｉｖｅマップ３４１ｓは、Ｓａｃｔｉｖｅ入力３４１ｋおよびホストキュー深さ３４１ｑｄを受信し、ホスト１１Ｓａｃｔｉｖｅ出力バス３４１ｓ１およびホスト１２Ｓａｃｔｉｖｅ出力バス３４１ｓ２を生成する。Ｓａｃｔｉｖｅ入力３４１ｋのビット０〜ｈｏｓｔ＿ｑｕｅｕｅ＿ｄｅｐｔｈ＿ｍｉｎｕｓ＿ｏｎｅは、対応するビットのホスト１１Ｓａｃｔｉｖｅ出力バス３４１ｓ１に配置され、残りのビットのホスト１１Ｓａｃｔｉｖｅ出力バス３４１ｓｌはリセットされる（論理値０）。Ｓａｃｔｉｖｅ入力３４１ｋのビットｈｏｓｔ＿ｑｕｅｕｅ＿ｄｅｐｔｈ〜（２＊ｈｏｓｔ＿ｑｕｅｕｅ＿ｄｅｐｔｈ−１）は、ホスト１２Ｓａｃｔｉｖｅ出力バス３４１ｓ２のビット０〜ｈｏｓｔ＿ｑｕｅｕｅ＿ｄｅｐｔｈ＿ｍｉｎｕｓ＿ｏｎｅに配置され、残りのビットのホスト１２Ｓａｃｔｉｖｅ出力バス３４１ｓ２はリセットされる（論理値０）。
【０２０４】
ホストアービトレーション３４３の動作は以下の表１に記載される。上述のように、ホストアービトレーション３４３は、デバイスにコマンドを送信し得るホストを選択するために優先順位を用いる。最初、優先順位はホスト１１に任意に割り当てられる。アービトレーション回路は優先順位のトラックを保持し、アービトレーションを実行して、デバイスにコマンド（ＦＩＳ）を送信し得るホストを選択する。デバイスが別のコマンドを受け取る状態に入った場合、アービトレーション回路に通知され、このアービトレーション回路は優先順位を他のホストに変更する。
【０２０５】
アービトレーション回路の動作を記載する表１における信号は、
セットされた場合、ホスト１１がＦＩＳリクエストを有することを示す、Ｈ１＿ｆｉｓ＿ｒｅｑと、
セットされた場合、ホスト１２がＦＩＳリクエストを有することを示す、Ｈ２＿ｆｉｓ＿ｒｅｑと、
セットされた場合、ホスト１１がＱｕｅｕｅコマンドを発行したことを示し、リセットされた場合、非キューコマンドを発行したことを示す、Ｈ１＿Ｑｃｍｄと、
セットされた場合、ホスト１２がキューコマンドを発行したことを示し、リセットされた場合、非キューコマンドを発行したことを示す、Ｈ２＿Ｑｃｍｄと、
セットされた場合、ホスト１１が空キューを有することを示し、リセットされた場合、非空キューを有することを示す、Ｈ１＿Ｑｅｍｐｔｙと、
セットされた場合、ホスト１１が空キューを有することを示し、リセットされた場合、非空キューを有することを示す、Ｈ１＿Ｑｅｍｐｔｙと
である。
【０２０６】
【表１】
2005327230.tif 000003
注記：
（１）ホスト１１は、非キューコマンドを発行する一方で、非空キューを有する。スイッチは、コマンドをデバイスに転送する。非空キューを有する非キューコマンドの受信に応答して、デバイスは、エラー（ＥＲＲ）をセットする。非空キューを有するエラーの受信により、スイッチが非空キューコマンドをフラッシュし、ＥＲＲステータスを、非空キューを有するホストに送信する。
（２）ホスト１１は、非キューコマンドを発行する一方で、非空キューを有する。スイッチは、コマンドをデバイスに転送する。非空キューを有する非キューコマンドの受信に応答して、デバイスは、エラー（ＥＲＲ）をセットする。非空キューを有するエラーの受信により、スイッチが非空キューコマンドをフラッシュし、ＥＲＲステータスを、非空キューを有するホストに送信する。
（３）非キューコマンドを送信するホストは空キューを有し、もう一方のホストは非空キューを有するので、非キューコマンドを送信することによって、デバイスが、エラーをセットし、これにより、キューがフラッシュされ、従って、送信する場合、ホストは空キューを有し、かつ非キューコマンドを送信する一方で、もう一方のホストは、非空キューを有し、コマンドは、もう一方のホストキューが空になるまで保持される。
（４）上述のように、空キューを有するホストが非キューコマンドを発行する一方で、もう一方のホストが非空キューを有する場合、非キューコマンドは、キューが空になるまで保持される。この場合、キューが空になることを可能にするために、非空キューを有するホストが別のキューコマンドを送信する場合、キューが空になり、非キューコマンドが送信されるまで新規に受信されたキューコマンドを保持することが望ましい。レガシーキューコマンドの場合、新規に受信されたレガシーキューコマンドを保持することは実用的でない。なぜなら、スイッチは、デバイスが再接続されているときにこれをリリースする必要があるからである。しかしながら、この制限は、ネイティブキューコマンドには当てはまらない。
【０２０７】
図６のアクティブスイッチ３００は、回転する優先順位に基づいてアービトレーションアルゴリズムを用いることがすでに記載された。異なったアービトレーションアルゴリズムを用いる代替的実施形態は、本発明の主旨および範囲に含まれる。このような代替的アービトレーションアルゴリズムは、静的または動的重み（重みは、「ホストに割り当てられた帯域幅」対「利用可能な全帯域幅」の比である）に基づいて帯域幅を各ホストに提供するアービトレーションアルゴリズムを含むが、これに限定されない。このようなアービトレーションアルゴリズムは、アービトレーションアルゴリズムにおけるコマンドごとの平均転送カウント（ユーザデータの数）等であるが、これに限定されない帯域幅を測定する方法を用いる。
【０２０８】
層４において、受信されたフレームをスイッチングすることによって、第１のプロトコルスタックの層１〜層４が処理され、その後、第２のプロトコルスタックの層４に渡され、その後、第２のプロトコルスタックの層４〜層１へと下方に向かって処理される。スイッチ３００と関連した回路を低減し、かつスイッチ３００にわたる遅延を低減するために、本発明の実施形態によりいくつかの変更が導入される。これらの変更は、以下においてより詳細に概要が述べられ、かつ記載される。
【０２０９】
ホストプロトコルスタックおよびデバイスプロトコルスタックは同じデータＦＩＳ  ＦＩＦＯを共有し、
ＦＩＳを層３から層３に送信し、これによりスイッチにわたる遅延を低減することによって、タスクファイルフォーム層４を別の層４に送信することを回避する。
【０２１０】
図９は、アクティブスイッチ５００（図１０ａ）の実施形態において用いられるＳＡＴＡレベル３ポート４１０を示す。ＳＡＴＡレベル３ポート４１０は、ＰＬ回路４１１、ＬＬ回路４１２、およびＴＬ回路４１３を備える。ＰＬ回路４１１は、アナログフロントエンド回路（ＡＦＥ）４１１ａ、Ｐｈｙ／Ｌｉｎｋインターフェース回路４１１ｅ、Ｐｈｙ初期化状態マシン（Ｐｈｙ  ＩＳＭ）４１１ｂおよびＯＯＢ検出器４１１ｃを備える。ＰＬ回路４１１は、アウトバウンド高速差動送信信号４１１ｔｘおよびインバウンド差動受信信号４１１ｒｘに接続されることが示される。ＰＬ回路４１１は、リンク送信バス４１２ｔおよびリンク受信バス４１２ｒを介してＬＬ回路４１２に接続されることが示される。ＯＯＢ検出器４１１ｃは、ＯＯＢ信号を検出し、検出された信号を４１１ｏに送信する。Ｐｈｙ  ＩＳＭ４１１ｂによって制御されるマルチプレクサ４１１ｄは、送信データ４１１ｔまたはＰｈｙ  ＩＳＭ出力４１１ｓを送信するために選択する。Ｐｈｙ  ＩＳＭ４１１ｂ制御信号は、信号４１１ｉを含む。ＬＬ回路４１２は、リンク送信データバス４１２ｔおよびリンク受信データバス４１２ｒを介してＰＬ回路４１１に接続されることが示される。ＬＬ回路４１２は、パワーダウン状態およびパワーダウンリクエストを信号４１２ｐで提供する。ＬＬ回路４１２は、トランスポート送信バス４１３ｔ、トランスポート受信バス４１３ｒ、およびトランスポート制御／ステータスバス４１３ｃを介してＴＬ回路４１３に接続されることが示される。ＴＬ回路４１３は、ＦＩＳホールディングレジスタ４１３ａおよびマルチプレクサ４１３ｂからなる。ＴＬ回路４１３は、データＦＩＳ  ＦＩＦＯを含まない。データＦＩＳ  ＦＩＦＯ４１５ａおよび関連したＦＩＦＯ  制御４１５ｂは、ＴＬ回路４１３から外へ移動され、一般に、外部に、ＳＡＴＡレベル３ポート４１０に配置される。ＴＬ回路の改変、すなわち、ＦＩＦＯおよびＦＩＦＯ制御を物理的に外部にＴＬ回路に移動することは、ＦＩＦＯの数を低減すること、および、アクティブスイッチと関連した遅延を低減する際に重要である。ＳＡＴＡレベル３ポート４１０は、ＦＩＦＯ入力バス４１５ｉおよびＦＩＦＯ出力バス４１５ｏを介して外部データＦＩＳ  ＦＩＦＯ４１５ａに接続されることが示される。ＳＡＴＡレベル３  ４１０ポートは、ＦＩＦＯ制御バス４１５ｃおよびＦＩＦＯステータスバス４１５ｓを介して外部ＦＩＦＯ制御４１５ｂに接続されることが示される。ＳＡＴＡレベル３ポート４１０のＦＩＳ入力バス４１６ｉおよびホールディングＦＩＳ出力バス４１６ｏ（集合的に「ＦＩＳバス構造」）がさらなる入力および出力インターフェースを外部に提供する。図９の実施形態において、データＦＩＳ  ＦＩＦＯは、データＦＩＳのペイロードのみを備え、データＦＩＳの第１のＤｗｏｒｄは、ＦＩＳ入力または出力バス上である。ＦＩＳバス構造は、ＦＩＳを層４に通過させることなく、層３のＳＡＴＡポート間で非データＦＩＳ、およびデータＦＩＳの第１の送信されたＤｗｏｒｄをやり取りすることを可能にする。外部ＦＩＦＯアーキテクチャは、データＦＩＳのペイロードを層４に通過させることなく、ＳＡＴＡポート間でデータＦＩＳの���イロードをやり取りすることを可能にする。これに代わる実施形態において、データＦＩＳ  ＦＩＦＯは、データＦＩＳの第１のＤｗｏｒｄを含む完全なデータＦＩＳを含む。ＦＩＳ入力バスおよびホールディングＦＩＳ出力バスは、通常、非データＦＩＳを含む。
【０２１１】
図１０ａおよび図１０ｂは、本発明のアクティブスイッチ５００の別の実施形態のブロック図を示す。アクティブスイッチ５００のアーキテクチャの特徴の１つは、データを層４に通過させることなく、ＳＡＴＡ間でデータＦＩＳのペイロードをやり取りするために共通のＦＩＦＯを使用することであり、従って、スイッチと関連した遅延およびＦＩＦＯの数を低減する。アクティブスイッチ５００の別の特徴は、ＦＩＳを層４に通過させることなく、層３のＳＡＴＡポート間で非データＦＩＳおよびデータＦＩＳの第１のＤｗｏｒｄをやり取りすることを可能にし、これにより、アクティブスイッチ５００にわたる遅延を低減することである。
【０２１２】
図１０ａを参照して、アクティブスイッチ５００は、ＳＡＴＡレベル３ホストポート５１０、ＳＡＴＡレベル３ホストポート５２０、ＳＡＴＡレベル３デバイスポート５３０、データＦＩＳＦＩＦＯ５５５ａ、ＦＩＦＯ制御５５５ｂ、データマルチプレクサ５５１ａ、制御マルチプレクサ５５１ｂ、データマルチプレクサ５５３、ホストＦＩＳ回路５４２、デバイスＦＩＳ回路５４３、およびアービトレーションおよび制御回路５４１を備える。ＳＡＴＡレベル３ポート５１０、５２０および５３０アーキテクチャは、上述の、かつ図９に示されたＳＡＴＡレベル３ポート４１０のアーキテクチャと同じである。ホストＦＩＳ回路５４２は、ホストＦＩＳレジスタ５１４ａ、ホストＦＩＳレジスタ５２４ａ、待ち状態ホストＦＩＳレジスタ５４２ｂおよびホストＦＩＳマルチプレクサ５４２ａを備える。ホストＦＩＳ出力５１７ｏ、ホストＦＩＳ出力５２７ｏ、および待ち状態ホストＦＩＳ出力５４２ｐは、マルチプレクサ５４２ａの入力に接続されることが示される。ホストＦＩＳマルチプレクサ５４２ａの出力は、ホストＦＩＳ出力バス５４２ｏに接続されることが示される。デバイスＦＩＳ回路５４３は、デバイスＦＩＳレジスタ５３４ａ、デバイスＦＩＳｍｕｘ−ｄｅｍｕｘ５４３ａおよびデバイスＦＩＳマルチプレクサ５４３ｂを備える。デバイスＦＩＳ出力５３７ｏ、ＦＩＳバス５４３ｉおよびサブＦＩＳバス５４３ｊは、デバイスＦＩＳｍｕｘ−ｄｅｍｕｘ５４３ａの入力に接続されることが示される。ｍｕｘ−ｄｅｍｕｘ５４３ａの第１の出力は、ホストＦＩＳ入力バス５１６ｉであり、ｍｕｘ−ｄｅｍｕｘ５４３ａの第２の出力は、ホストＦＩＳ入力バス５２６ｉである。制御信号５４３ｋは、デバイスＦＩＳｍｕｘ−ｄｅｍｕｘ５４３ａの動作を制御する。ホストＦＩＳ出力バス５４２ｏ、ＦＩＳバス５４３ｍおよびサブＦＩＳバス５４３ｎは、デバイスＦＩＳマルチプレクサ５４３ｂの入力に接続されることが示される。デバイスＦＩＳマルチプレクサ出力５４３ｄは、デバイスＦＩＳ入力バス５３６ｉに接続されることが示される。デバイスＦＩＳマルチプレクサ選択信号５４３ｓは、マルチプレクサ５４３ｂの動作を制御する。
【０２１３】
図１０ｃを参照して、ｍｕｘ−ｄｅｍｕｘ５４３ａ動作は２レベルの多重化であり、多重分離が続く。第１のレベルの多重化において、制御信号５４３ｋによって示されるようにデバイスＦＩＳ出力バス５３７ｏまたはＦＩＳバス５４３ｉが選択され、第２のレベルの多重化に渡され、ここで、制御信号５４３ｋによって示される場合、第１のレベルの多重化の出力の１部がサブＦＩＳバス５４３ｊで代用され、第２のレベルの多重化の結果がｍｕｘ−ｄｅｍｕｘ５４３ａの２つの出力に多重分離される。制御信号５４３ｋは、機能を多重化および多重分離する制御信号を含む。多重分離機能は、第２のレベルの多重化の結果を選択された出力に渡し、ｍｕｘ−ｄｅｍｕｘ５４３ａのもう一方の出力をインアクティブレベルにセットする。マルチプレクサ５４３ｂ動作は２レベルの多重化であり、第１のレベルで、制御信号５４３ｓによって示されるように、ホストＦＩＳ出力バス５４２ｏまたはＦＩＳバス５４３ｍが選択され、多重化の第２のレベルに渡され、ここで、これは出力５４３ｄに配置され、そうでない場合、制御信号５４３ｓによって示されるように、第１のレベルの多重化の出力の１部分がサブＦＩＳバス５４３ｎで代用され、その後、出力５４３ｄに配置される。
【０２１４】
図１０ａを参照して、データＦＩＳ  ＦＩＦＯ５５５ａは、デュアルポート方式のＦＩＦＯであり、データＦＩＦＯ入力５５５ａ（ｉ１）、データＦＩＦＯ出力５５５ａ（ｏ１）、データＦＩＦＯ入力５５５ａ（ｉ２）およびデータＦＩＦＯ出力５４５ａ（ｏ２）を含む。ＦＩＦＯ制御５５５ｂは、ＦＩＦＯ制御入力５５５ｂ（ｉ１）、データＦＩＦＯポート５５５ａの制御およびステータスを提供するＦＩＦＯステータス出力５５５ｂ（ｏ１）、制御入力５５５ｂ（ｉ２）、ならびにデータＦＩＦＯポート５５５ｂの制御およびステータスを提供するＦＩＦＯステータス出力５５５ｂ（ｏ２）を備える。ＳＡＴＡレベル３ホストポート５１０は、アウトバウンド高速差動送信信号５１１ｔｘおよびインバウンド差動受信信号５１１ｒｘに接続されることが示される。ホストＦＩＦＯ出力バス５１５ｏは、マルチプレクサ５５１ａに接続されることが示される。ホストＦＩＦＯ入力バス５１５ｉは、データＦＩＦＯ出力ポート５５５ａ（ｏ１）に接続されることが示される。ホストＦＩＦＯ制御バス５１５ｃおよびＦＩＦＯステータスバス５１５ｓは、マルチプレクサ５５１ｂおよびＦＩＦＯステータスポート５５５ｂ（ｏ１）にそれぞれ接続されることが示される。
【０２１５】
ホストホールディングＦＩＳ出力バス５１６ｏは、ホストＦＩＳレジスタ５１４ａの入力に接続されることが示される。ｍｕｘ−ｄｅｍｕｘ５４３ａの出力は、ホストＦＩＳ入力バス５１６ｉに接続されることが示される。ＳＡＴＡレベル３ホストポート５２０は、アウトバウンド高速差動送信信号５２１ｔｘおよびインバウンド差動受信信号５２１ｒｘに接続されることが示される。ホストＦＩＦＯ出力バス５２５ｏは、マルチプレクサ５５１ａに接続されることが示される。ホストＦＩＦＯ入力バス５２５ｉは、データＦＩＦＯ出力ポート５５５ａ（ｏ１）に接続されることが示される。ホストＦＩＦＯ制御バス５２５ｃおよびＦＩＦＯステータスバス５２５ｓは、マルチプレクサ５５１ｂおよびＦＩＦＯステータスポート５５５ｂ（ｏ１）それぞれに接続されることが示される。ホストホールディングＦＩＳ出力バス５２６ｏは、ホストＦＩＳレジスタ５２４ａの入力に接続されることが示される。ホストＦＩＳ入力バス５２６ｉは、ｍｕｘ−ｄｅｍｕｘ５４３ａの出力に接続されることが示される。
【０２１６】
ＳＡＴＡレベル３デバイスポート５３０は、アウトバウンド高速差動送信信号５３１ｔｘおよびインバウンド差動受信信号５３１ｒｘに接続されることが示される。デバイスＦＩＦＯ出力バス５３５ｏがマルチプレクサ５５３に接続されることが示される。デバイスＦＩＦＯ入力バス５３５ｉは、データＦＩＦＯ出力ポート５５５ａ（ｏ２）に接続されることが示される。デバイスＦＩＦＯ制御バス５３５ｃおよびデバイスＦＩＦＯステータスバス５３５ｓがＦＩＦＯ制御ポート５５５ｂ（ｉ２）およびＦＩＦＯステータスポート５５５ｂ（ｏ２）にそれぞれ接続されることが示される。デバイスホールディングＦＩＳ出力バス５３６ｏは、デバイスＦＩＳレジスタ５３４ａの入力に接続されることが示される。デバイスＦＩＳ入力バス５３６ｉは、デバイスＦＩＳマルチプレクサ出力５４３ｄに接続されることが示される。
【０２１７】
アービトレーションおよび制御回路５４１は、ホスト１１ＦＩＳ出力バス５１７ｏ、ホスト１２ＦＩＳ出力バス５２７ｏ、ホストＦＩＳ出力バス５４２ｏ、およびデバイスＦＩＳ出力バス５３７ｏを収容する。アービトレーションおよび制御回路５４１は、選択信号５５１ｓを生成して、マルチプレクサ５５１ａ、および５５１ｂの制御信号であるアクティブホストを選択する。アービトレーションおよび制御回路５４１は、マルチプレクサ５５３の入力に接続された制御コマンド層出力バス５５３ｉ、およびマルチプレクサ５５３の制御信号である選択信号５５３ｓを生成する。バス５５３ｉの機能は、前に記載された特定の場合において、デバイスからのデータを置換することである。
【０２１８】
アービトレーションおよび制御回路５４１は、マルチプレクサ５４２ａの動作を制御して、マルチプレクサ５４２ａの入力の１つを選択し、選択された入力を出力５４２ｏに配置するホストＦＩＳマルチプレクサ制御信号５４２ｓを生成する。アービトレーションおよび制御回路５４１は、デバイスＦＩＳｍｕｘ−ｄｅｍｕｘ５４３ａの入力に接続されるＦＩＳバス５４３ｉおよびサブＦＩＳバス５４３ｊを生成する。回路５４１は、ｍｕｘ−ｄｅｍｕｘ５４３ａの動作を制御するデバイスＦＩＳ制御信号５４３ｋをさらに生成する。アービトレーションおよび制御回路５４１は、デバイスＦＩＳマルチプレクサ５４３ｂの入力に接続されるＦＩＳバス５４３ｍ、サブＦＩＳバス５４３ｎ、ならびにマルチプレクサ５４３ｂの動作を制御するデバイスＦＩＳ選択信号５４３ｓを生成する。
【０２１９】
上述のように、図８ａおよび図８ｂは、レガシーキューコマンドおよびネイティブキューコマンド（ＮＱ  ＣＭＤ）それぞれの本発明のスイッチの動作のフローチャートを示す。図８ａおよび図８ｂは、本発明のスイッチ５００の図１０ａおよび図１０ｂの実施形態に該当する。
【０２２０】
切断／再接続状態３６６ｂ、保存状態３７６ｂ、ｓｅｎｄ−ｔａｇ−ｔｏ−ｈｏｓｔ状態３７８ｂ、ＮＱ再マッピング状態３８４ａ、およびＮＱステータス状態３８５ｂにおいて、改変されたＦＩＳは、ホストに送信される。アービトレーションおよび制御回路５４１は、改変されたＦＩＳを送信し、これをデバイスＦＩＳｍｕｘ−ｄｅｍｕｘ５４３ａの入力に接続されたサブＦＩＳバス５４３ｊに配置する。回路５４１は、さらに、値を選択信号５４３ｋにセットし、デバイスＦＩＳ出力５３７ｏの１部分をサブＦＩＳバス５４３ｊで代用し、その後、ホストＦＩＳ入力バスに接続されたｍｕｘ−ｄｅｍｕｘ５４３ａの出力に多重分離する。
【０２２１】
ホストへの再接続（ｒｅｃｏｎｎｅｃｔ−ｔｏ−ｈｏｓｔ）状態３７６ａにおいて、新しいＦＩＳは、ホストに送信される。アービトレーションおよび制御回路５４１は、新しいＦＩＳをデバイスＦＩＳｍｕｘ−ｄｅｍｕｘ５４３ａの入力に接続されたＦＩＳバス５４３ｉに送信し、値を選択信号５４３ｋにセットし、バス５４３ｉを選択し、その後、ホストＦＩＳ入力バスに接続されたｍｕｘ−ｄｅｍｕｘ５４３ａの出力に多重分離する。
【０２２２】
送信ＬＱ  ＣＭＤ状態３６４および送信ＮＱ  ＣＭＤ状態３８２ｂにおいて、改変されたＦＩＳは、デバイスに送信される。アービトレーションおよび制御回路５４１は、改変されたＦＩＳを生成し、これをデバイスＦＩＳマルチプレクサ５４３ｂの入力に接続されたサブＦＩＳバス５４３ｎ上に配置し、値を選択信号５４３ｓにセットし、ホストＦＩＳ出力６４２ｏをマルチプレクサ５４３ｂの出力としてサブＦＩＳバス５４３ｎで代用する。マルチプレクサ５４３ｂの出力は、デバイスＦＩＳ入力バス５３６ｉに接続される。
【０２２３】
サービス送信ＣＭＤ状態３７３において、新しいＦＩＳがデバイスに送信される。アービトレーションおよび制御回路５４１は、新しいＦＩＳをデバイスＦＩＳマルチプレクサ５４３ｂの入力に接続されるＦＩＳバス５４３ｍに送信し、値を選択信号５４３ｓにセットし、マルチプレクサ５４３ｂの出力としてバス５４３ｍを選択する。マルチプレクサ５４３ｂの出力は、デバイスＦＩＳ入力バス５３６ｉに接続される。
【０２２４】
図１０ｂを参照して、アービトレーションおよび制御回路５４１は、ホストアービトレーション回路５４４、タグ／Ｓａｃｔｉｖｅマッピング回路５４６、および制御回路５４５を備える。
【０２２５】
タグ／Ｓａｃｔｉｖｅマッピング回路５４６は、図７ｂに示されるものと同じであり、タグ／Ｓａｃｔｉｖｅマッピング回路５４６によって実行される機能は、
送信デバイスタグに選択されたホストキュータグをマッピングし、レガシーキュータグの場合、結果をタグメモリ３４１ｄに保存し、有効キュータグのリストを保持することと、
ホストを識別するために受信デバイスキュータグを逆マッピングし、元のホストタグを取得し、レガシーキュータグの場合、コマンド補完において制御回路によって支持された場合にキューを無効にすることと、
ホスト１１およびホスト２にそれぞれ対応するホスト１１Ｓａｃｔｉｖｅフィールドおよびホスト１２ＳａｃｔｉｖｅフィールドにＳａｃｔｉｖｅフィールドをマッピングすることとを包含する。
【０２２６】
ホスト１１ＦＩＳ出力バス５１７ｏは、ホスト１１ＦＩＳリクエスト信号およびＦＩＳタイプを含むホスト１１ＦＩＳリクエスト５１８を含む。ホスト１２ＦＩＳ出力バス５２７ｏは、ホスト１２ＦＩＳリクエスト信号およびＦＩＳタイプを含むホスト１２ＦＩＳリクエスト５２８を含む。ホストアービトレーション回路５４４は、ホスト１１ＦＩＳリクエスト５１８、ホスト１２ＦＩＳリクエスト５２８、制御回路５４５からの制御信号５４４ｃ、およびタグ／Ｓａｃｔｉｖｅマッピング回路５４６からのキューステータス信号５４６ｑを収容する。制御回路５４５からの制御信号５４４ｃに応答して、ホストアービトレーション回路５４４は、制御回路５４５への入力として利用されるホスト選択信号５４４ｈｓを生成する。ホストアービトレーション５４４の動作は、表１に関してすでに記載された。
【０２２７】
制御回路５４５によって実行される機能は、
マルチプレクサ５５１ａおよび５５１ｂの動作を制御する選択信号５５１ｓを生成することと、
マルチプレクサ５５３に接続された制御コマンド層出力バス５３３ｉ、およびマルチプレクサ５５３の制御信号である選択信号５５３ｓを生成することと、
ＦＩＳバス５４３ｉ、デバイスＦＩＳｍｕｘ−ｄｅｍｕｘ５４３ａの入力に接続されたサブＦＩＳバス、およびｍｕｘ−ｄｅｍｕｘ５４３ａの動作を制御するデバイスコントロール信号５４３ｋを生成することと、
ＦＩＳバス６４３ｍ、デバイスＦＩＳマルチプレクサ５４３ｂの入力に接続されたサブＦＩＳバス、およびマルチプレクサ５４３ｂの動作を制御するデバイスＦＩＳマルチプレクサ選択信号５４３ｓを生成することと、
タグ／Ｓａｃｔｉｖｅマッピング回路５４６の制御信号を生成することと、
ホストアービトレーション５４４の制御信号を生成することと
を含む。
【０２２８】
図１０ｂの実施形態は、スイッチ初期化回路５４９、ＳＡＴＡポートからの、パワーダウン状態およびリクエスト信号をさらに含む。
【０２２９】
ＳＡＴＡレベル３ポート５１０からの、パワーダウン状態およびリクエスト信号５１２ｐが、制御回路５４５に接続されるところが示される。ＳＡＴＡレベル３ポート５１０のＯＯＢ検出器信号５１１ｏが、スイッチ初期化回路５４９に接続されるところが示される。ＳＡＴＡレベル３ポート５１０のＰｈｙ  ＩＳＭ制御信号５１１ｉがスイッチ初期化回路５４９に接続されるところが示される。
【０２３０】
ＳＡＴＡレベル３ポート５２０のパワーダウン状態およびリクエスト信号５２２ｐが制御回路５４５に接続されるところが示される。ＳＡＴＡレベル３ポート５２０のＯＯＢ検出器信号５２１ｏがスイッチ初期化回路５４９に接続されるところが示される。ＳＡＴＡレベル３ポート５２０のＰｈｙ  ＩＳＭ  制御信号５２１ｉがスイッチ初期化回路５４９に接続されるところが示される。
【０２３１】
ＳＡＴＡレベル３ポート５３０からの、パワーダウン状態およびリクエスト信号５３２ｐが、制御回路５４５に接続されるところが示される。ＳＡＴＡレベル３ポート５３０のＯＯＢ検出器信号５３１ｏが、スイッチ初期化回路５４９に接続されるところが示される。ＳＡＴＡレベル３ポート５３０のＰｈｙ  ＩＳＭ  制御信号５３１ｉがスイッチ初期化回路５４９に接続されるところが示される。スイッチ初期化回路５４９は、図５のスイッチ初期化回路２４４と同じである。スイッチ初期化回路５４９によって実行される機能は、ＳＡＴＡポート５１０、５２０および５３０内のＳＡＴＡ  ＰＬ回路に分配され得る。スイッチ初期化回路５４９の機能をＳＡＴＡポート５１０、５２０および５３０内のＳＡＴＡ  ＰＬ回路に分配する別の実施形態は、本発明の範囲に含まれる。
【０２３２】
本発明のＳＡＴＡアクティブスイッチの実施形態を、ＳＡＴＡ  ＡＴＡアクティブスイッチに拡張することは、当業者には明らかである。図１１ａおよび図１１ｂはそのようなＳＡＴＡ  ＡＴＡアクティブスイッチの実施形態を示す。そのようなＳＡＴＡ  ＡＴＡアクティブスイッチは、ＳＡＴＡリンクを介してスイッチに接続される２つのホストによる、ＡＴＡリンクを介してスイッチに接続される格納ユニットへの同時アクセスを可能にする。
【０２３３】
図１１ａは、本発明による、ＳＡＴＡ  ＡＴＡスイッチ６００の実施形態を示す。スイッチ６００は、図６のスイッチ３００と、以下の点を除いて同じである。
【０２３４】
・スイッチ３００のＳＡＴＡレベル４デバイスポート３３０がＳＡＴＡ層４ＡＴＡブリッジ６３０と置き換えられる。
【０２３５】
・スイッチ３００のＳＡＴＡリンク３３１ｔｘおよび３３１ｒｘがＡＴＡリンク６３６と置き換えられる。
【０２３６】
ＳＡＴＡ層４ＡＴＡブリッジ６３０が、ＳＡＴＡコマンド層６３４、ＡＴＡトランスポート層６３３、およびＡＴＡインターフェースブリッジ６３２を含む。ＡＴＡインターフェースブリッジ６３２がＡＴＡリンク６３６に接続され、ＡＴＡバス６３６上の活動をトランスポート層インターフェース６３３ｉｏの活動にコンバートし（ブリッジし）、かつその逆も行うところが示される。ＳＡＴＡコマンド層６３４およびトランスポート層６３３は図２ｂのコマンド層５４およびトランスポート層５３と同様である。
【０２３７】
図１１ａは、本発明の実施形態による、ＳＡＴＡ  ＡＴＡスイッチ７００に対する別の実施形態を示す。スイッチ７００は以下を除いて図１０ａのスイッチ５００と同じである。
【０２３８】
・スイッチ５００のＳＡＴＡレベル３デバイスポート５３０がＳＡＴＡ層３ＡＴＡブリッジ７３０に置き換えられる。
【０２３９】
・スイッチ５００のＳＡＴＡリンク５３１ｔｘおよび５３１ｒｘがＡＴＡリンク７３６と置き換えられる。
【０２４０】
ＳＡＴＡ層３ＡＴＡブリッジ７３０はＡＴＡトランスポート層７３３およびＡＴＡインターフェースブリッジ７３２を含む。ＡＴＡインターフェースブリッジ７３２はＡＴＡリンク７３６に接続され、ＡＴＡバス７３６上の活動をトランスポート層インターフェース７３３ｉｏにコンバートし（ブリッジし）、かつその逆も行う。トランスポート層７３３は図９のトランスポート層４１３と同じである。
【０２４１】
図１１ａおよび１１ｂの実施形態は、パラレルなＡＴＡバスを用いて説明されてきた。当業者には、本発明が他のパラレルバスの使用に広げられ得ることが明らかである。本発明の範囲は、パラレルＡＴＡバスに加え、その他のパラレルバスの使用を含む。
【０２４２】
図１２は、ルーティング情報を提供するための、ＳＡＴＡ  ＦＩＳ組織の改変例を示す。つまり、本発明のさらに別の実施形態によると、ＳＡＴＡポートが、どのホストが始まり（ｏｒｉｇｉｎ）でどれが目的地なのかを識別するための、ルートアウェア（ａｗａｒｅ）フレーム情報構造を含む。図１ｄに示すように、ＳＡＴＡ  ＦＩＳ組織は、ＦＩＳの第１のＤｗｏｒｄ（Ｄｗｏｒｄ  ０）の中に、蓄積されるビットをほとんど有さず、具体的にはＤｗｏｒｄ  ０のビット８からビット１２である。これらの、蓄積されるビットの１つを用いて、どのホストがＦＩＳの始まりかまたは目的地かを示すことによって、スイッチの中のルーティングが非常に簡略化される。このルーティングのビットは、Ｈビット（９１（ｉ）、９１（ｉｉ）、９１（ｉｉｉ）、９１（ｉｖ）、９１（ｖ）、９１（ｖｉ）、９１（ｖｉｉ）、９１（ｖｉｉｉ）と呼ばれ、ＦＩＳの指示に応じて、０の論理値はホスト１１が、論理値１はホスト１２がＦＩＳの始まりまたは目的地であることを示す。したがって、このデバイスは、ホストの中のどれが始まりか、および／または目的地かを識別し、ＦＩＳのルーティングがスイッチに対してトランスペアレントとなり、それによって、その製造をより廉価にしつつスイッチの設計の複雑さを減らし、このように、スイッチを介する「ルート認識」のルーティングを提供する。
【０２４３】
スイッチがＦＩＳをデバイスに送っているとき、ＦＩＳがホスト１１から始まる場合はスイッチがＨビットを論理値ゼロにリセットし、ＦＩＳがホスト１２から始まる場合は論理値１に設定する。このデバイスは、Ｈビットを保存し、かつそれを、ホストに送られるどんなＦＩＳの中にも挿入しなければならない。ルートアウェアＦＩＳ構造を有して、アクティブなスイッチの複雑さが層２スイッチに減少される。図５の層２スイッチはルートアウェアＦＩＳ構造を有して、アクティブスイッチとして動作するように改変し得る。そのような１つの改変例では、スイッチ２００のアクティブホスト選択回路１４１が、デバイスから入ってくるＦＩＳのＨビットを検証し、入ってくるＦＩＳのＨビットに基きパス選択のための制御信号を生成することによって、それを適切なホストへルートするように、改変される。
【０２４４】
本発明の実施形態が、デュアルポートＦＩＦＯを用いて説明されてきた。当業者には、シングルポートＦＩＦＯがデュアルポートの代わりに追加の回路を有して使用され得ることが明らかである。さらに、実施形態の中の、入力または出力であるいくつかのバスは、１つの、２方向入力／出力バスとなるように、組み合わせられ得る。さらに、１つの機能に専用の複数のバスは、組み合わされて１つのバスにされ得る。
【０２４５】
要約すると、本発明の１つの実施形態では、そこへ情報を書き込みおよび読み出すための格納ユニットに接続される、例えば図３ａのホスト１１およびホスト１２などの、２つのホスト、ホスト１およびホスト２が、例えば、それぞれ図６のスイッチ３００および図１０ａのスイッチ５００を介して、（例えば、図３ａに示される格納ユニット１６のような）格納ユニットへの同時アクセスを求める。これが、従来技術システムとの重要な差である。なぜなら、従来技術では、２つのホストが格納ユニットへのアクセスを有するが、同時にその格納ユニットにアクセスし得ない。従来技術では、ホストの内の１つと格納ユニットとの間の接続がなんらかの理由で失敗する場合、もう一方のホストがその格納ユニットへのアクセスを続け得る。しかし、失敗を検出した後にもう一方のホストへ切り替えることでグリッチが発生し、もう一方のホストと格納ユニットとの通信に先立ち、システムがリセットされる必要がある。
【０２４６】
フォールトトレラント（ｆａｕｌｔ−ｔｏｌｅｒａｎｔ）システムなどの従来技術の別のシステムにおいて、１つのホストが別のホストを密かに追いかける（ｓｈａｄｏｗ）、つまり、アクティブなホストがしていることはなんでも、インアクティブなホストによって模倣される試みがなされる。この概念は「ハートビート（ｈｅａｒｔｂｅａｔ）」と呼ばれ、２つのホスト間の連結性が、両ホストが互いの存在に気付き、他のホストが、操作できる状態になっている、という程度の状態を示す。つまり、１つのホストが他のホストによる動作の不具合（ｆａｉｌｕｒｅ）を認識するのは、検出を行っているホストが格納ユニットへのアクセスを乗っ取り、他のホストなしに操作を続けるとき、もはやこの「ハートビート」が検出されないときである。それでも、そのような従来技術のシステムは、デュアルポート格納ユニットを使用することを要求し、かつ、シングルポート格納ユニットは使用不可能である。それは、それらのホストが本発明で行われるように、同時に格納ユニットへアクセスすることが不可能だからである。
【０２４７】
企業システム内では、複数のホストは、シングルポート格納ユニットに同時にアクセスすることを要求されるので、本発明による実施形態への非常に大きい要求がある。本発明では、他の種類の情報が伝送されると同時に、コマンドがホストから格納ユニットに伝送される。本発明は、先に説明した、いくつかの従来技術システムによって経験されたような、アクティブからインアクティブなホストへの切り替えによって引き起こされる任意の突然の不調を排除する。実際、本発明において、２つのホスト間の切り替えは連続的でスムーズな方法で行われる。
【０２４８】
ハードウェアは、基本的にＳＡＴＡの層に従うように構成される。このＳＡＴＡの物理層は、高速信号の送信および受信のためのアナログのフロントエンドを含む。初期化状態の機械がまた、帯域外検出器およびリンク層とのインターフェースのためのインターフェースブロックと共に含まれる。選択デバイスが初期化情報を送るか、または物理層からデータを送るかを選択する。リンク層は、トランスポート層と通信を行い、このトランスポート層は、通常、データ伝送に使用されるＦＩＦＯおよび非データのＦＩＳ交換に使用される１組のレジスタを含む。レジスタは一般的に非データのＦＩＳの格納に使用されるが、ＦＩＦＯは一般的にデータＦＩＳの格納に使用される。
【０２４９】
図４に示すように、従来技術の１つのシステムでは、１つのホストのための物理層、他のホストのための別の物理層、および、ホストとデバイスとの間を接続するスイッチによって使用される、デバイスまたは格納ユニットのための物理層がある。その他のどの層も、ホストおよび／またはデバイスとの通信は行わない。デバイスと通信を行うために、ホストの１つが物理層を介して、マルチプレクサによって選択され、その後、デバイスがそのアクティブなホストにデータを送る。アクティブホスト選択回路が、初期化回路と共に、どのホストが最初に選ばれるのかを決定または選択する。したがって、この従来技術スイッチは、層１、または通信をおこなうための物理層を必要とするだけで、他の層はどれも通信のために必要とされない。しかし、先に言及されたように、そのような従来技術の問題の１つは、スイッチを介する遅れである。別の問題は、所与の時間にただ１つのホストのみしか通信できないことである。
【０２５０】
図５に示すように、本発明の１つの実施形態は、スイッチを介する遅れの問題の解決を探る。ＳＡＴＡリンクの第２の層が第１の層に対してのみ対向に使用されるので、スイッチを介する遅れは問題ではない。このスイッチは、実際は、層２のスイッチであり、したがって、物理層だけではなくリンク層内でも通信が可能である。ホストリンク層からのデータは多重化されるが、デバイスに送られる前に多重化されるので、スイッチを介する遅れが、シリアルＡＴＡ基準によって許容される以上に長い場合にバッファされるように、それらのデータはＦＩＦＯに格納される。この場合、従来技術のシステムでは、長い遅れのためにデータが失われ得る。しかし、図５の実施形態では、ＦＩＦＯをバッファとして使用することによって、たとえスイッチを介する遅れが基準の要求よりも長い場合でも、どのようなデータの消失も防ぐ。その後、デバイスからのデータは、デマルチプレクサ２４３（図５）によってアクティブホストへルートされる。従って、図５の実施形態では、ただ１つのホストが任意の所定のときに、デバイスと通信をする間、スイッチ２００を介する遅れが、システムの性能を妨げず、かつ基準の要求に従う。
【０２５１】
あるいは、（ただ層１だけというよりも）層１または物理層が、ＦＩＦＯによって使用され得る。このＦＩＦＯは、上で説明した、追加の層２によって行われるのと同様に、スイッチを介する遅れを無視し得るようにするために使用される。
【０２５２】
図６では、２つのホストによる１つのデバイスへの同時アクセスが示される。本明細書において用いられる、同時性は、格納ユニットのようなデバイスがアイドリング状態にないときを含む任意の所与のときに、２つのホストかそれ以上のホストのいずれかからのコマンドを受け取ることを示す。アイドリング状態は、デバイスが他のコマンドを処理していないときである。従来、同時性は、所与の時間を細分して各ホストを多重化すること、つまり、通常ＴＤＭ（時分割多重化）と呼ばれるものによって達成される。しかし、これは格納デバイスにとってはうまく機能しない。なぜなら、新規の時間細分（ｔｉｍｅ  ｓｌｉｃｅ）、またはスロット（ｓｌｏｔ）によって、別のホストへのサービスのために伝送の中断が突然起きるとき、使用者がデータの送信の最中であり得るからであり、これはシステム性能にとって破壊的であり、データの消失をもたらし得る。
【０２５３】
したがって、コマンドベースのスイッチまたは多重化が、図６の実施形態では使用される。つまり、１つのホストからのコマンドが処理されていると、他のホストからのどのようなコマンドもバッファされ、その後、現在のコマンドが完了などした後で、デバイスに送られる。このことは２つのホストのコマンド間にピンポン効果を引き起こす。
【０２５４】
コマンドベースの多重化を実行するために、デバイスだけでなく２つのホストに対しても、層４の中のタスクファイルが使用される。図６では、これはポートとして示され、ホストのポートもデバイスのポートもすべて層４（またはコマンド層）のポートである。アービトレーションおよび制御回路３４０（図６）がタスクファイルをモニターして、送られてくる可能性のあるどのようなコマンドもチェックし、その後コマンドは優先順位をつけられ、最優先のコマンドがデバイスに送られる。ホストのポートがコマンドを受け、かつ優先権を有するとき、ホストのポートはコマンドをデバイスのポートに送る。とかくするうち、別のコマンドが別のホストから受け取られると、それはタスクファイルに格納され、アービトレーションおよび制御回路３４０に送られ、いったん、前のコマンドがサービスを受けると、待ち状態の（ｐｅｎｄｉｎｇ）コマンドがデバイスにリレーされ、ピンポン効果が続く。なお、スイッチのタイミングの要求が図６の実施形態では満たされる。なぜなら、情報の伝送がＦＩＦＯを含む層１から４を使用して起きるからである。さらに、２つのホストとデバイスの間の同時伝送を見越して、コマンドが同時に送られ得る。
【０２５５】
図６のさらに詳細なアービトレーションおよび制御回路３４０が、本明細書の残りの図に提供され、本明細書の全体を通して説明される。
【０２５６】
デバイスが「ドライブ識別コマンド（Ｉｄｅｎｔｉｆｙ  Ｄｒｉｖｅ  Ｃｏｍｍａｎｄ）」に答えてその能力に関する情報を送り、デバイスによって示されるいくつかのパラメータがスイッチによって変更され得る。例えば、デバイスがコマンドの待ち行列をサポートするとき、それはいくつのコマンドを待ち行列に入れ得るかを示す、待ち行列の深さを有し、その後この情報がホストにとって重要になる。例えば、待ち行列の深さが、単に、３２のコマンドを待ち行列に入れられ得ることを示す場合、この数を超えるかなりの数のコマンドが、両方のホストによって、オーバーランし、コマンドの消失をもたらす。なぜなら１つのホストに対して１６のコマンドのみしか待ち行例に入れられ得ないからである。したがって、待ち行列の深さの情報が、３２よりも１６を示すように変えられ、各ホストが１６コマンドのみを待ち行列に入れるようにする。
【０２５７】
このことが実際に行われる方法は、デバイスからのＱ深さ（ＤＥＰＴＨ）情報を途中で遮り、その値を３２から１６に変更する。さらに、ホストのタグのマッピングおよびデバイスタグのリマッピングのための待ち行列タグ回路が使用される。
【０２５８】
本明細書を通して、ｍｕｘ−ｄｅｍｕｘ回路が使用されるか説明されるとき、それは２つ以上の信号からまず選択を行い、例えば、ｍｕｘｉｎｇ機能を実行し、その後、選択された信号をアクティブホストにルーティグし、例えば、ｄｅｍｕｘｉｎｇ機能を実行することを言う。
【０２５９】
図６の実施形態では、３つのＦＩＦＯが使用され、それらは各ホストに１つずつと、デバイスに３つめのＦＩＦＯが使用される。これが遅れを招く。
【０２６０】
図９および１０に示すように、別の実施形態では、ただ１つのＦＩＦＯのみが使用され、ここではＦＩＦＯがトランスポート層から除外されている。むしろ、ＦＩＳインターフェースが層３に使用され、それがより簡単な設計、およびＦＩＦＯによるより少ない遅れとを生み出す。ＦＩＦＯは、（２つの）ホストポートおよびデバイスポートの、３つすべてのポートによって共有される。
【０２６１】
図１１では、層１および２がＡＴＡポートなどの非シリアルＡＴＡポートによって置き換えられ、それにより、非シリアルＡＴＡ基準を使用する格納ユニットの使用を可能とし、より廉価な格納ユニットを使用してシステムのコストの改善を可能とする。
【０２６２】
本発明のさらに別の実施形態では、ＦＩＳ構造が、ルートをアウェアするＦＩＳ構造に置き換えられ、かつ層２スイッチが使用されており、それによって、処理を行う層を切り離す。
【０２６３】
以上のように、４つの異なる実施形態が示され説明されるが、１つは、層４のスイッチを使用する形態、別の１つは、異なる層（層３）に通信を下ろし、そのような通信を格納するためにＦＩＦＯを導入する形態、さらに別のものは、シリアルＡＴＡをＡＴＡインターフェースと置き換える形態、第４のものは、切り替えのためのルートアウェアＦＩＳ構造であり、ここでＦＩＳ構造が、異なるホストへの情報のルートを認識する、ＦＩＳ構造の形態である。
【０２６４】
なお、本明細書全体を通して、特定の極性、または、信号のアクティブまたは非アクティブを示すロジック状態「１」または「０」などの信号のロジック状態が参照されたが、この反対の極性が、本発明の範囲および意図から逸脱することなく、実際は使用され得る。さらに、任意の他の種類の公知の信号の状態が、本発明の範囲および意図から逸脱することなく使用され得る。
【０２６５】
本明細書を通して使用されたように、信号、状態、デバイスなどの名称のいくつかの文字が大文字で使用されるのは、Ｓｅｒｉａｌ  ＡＴＡワークグループｗｗｗ．ｓｅｒｉａｌａｔａ．ｃｏｍによって刊行された「Ｓｅｒｉａｌ  ＡＴＡ：Ｈｉｇｈ  Ｓｐｅｅｄ  Ｓｅｒｉａｌｉｚｅｄ  Ａｔ  Ａｔｔａｃｈｍｅｎｔ」に開示される信号、状態、デバイスなどに対応する名称との整合性を維持するためであり、その内容は、本明細書において、その全体を参照のために援用する。
【０２６６】
本発明は特定の実施形態に関して説明がなされてきたが、それらの変更および改変が疑いなく当業者には明らかとなることが予想され得る。したがって、それらの変更および改変が本発明の真の意図および範囲内に含まれるとして、上記の請求項は理解されることが意図される。本発明と従来技術とを組み合わせての、本発明の教示を含む複数の機能を実行するデバイスおよび方法の開発は、当業者には明らかである。そのようなデバイスおよび方法は本発明の範囲内に含まれる。
【０２６７】
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。
【０２６８】
（要約）
ＳＡＴＡリンクまたはＡＴＡリンクを介してスイッチのデバイスポートに接続された単一ポート方式の格納ユニットへの２つのホストポートからの同時のアクセスを可能にする電子スイッチが必要である。本発明によるスイッチは、第１のホストユニットに接続される第１のシリアルアドバンスドテクノロジーアタッチメント（ＡＴＡ）ポートと、第２のホストユニットに接続される第２のシリアルＡＴＡポートとデバイスに接続される第３のシリアルＡＴＡポートと、ｄ）該第１のホストユニットまたは第２のホストユニットのどちらか一方が、該デバイスによって実行されるコマンドを送信する場合はいつでも、該スイッチを介して、該第１のホストユニットまたは該第２のホストユニットの該デバイスに接続されるべき一方を選択するアービトレーションおよびコントロール回路とを備える。
【図面の簡単な説明】
【０２６９】
【図１ａ】図１ａは、従来技術のＳＡＴＡプロトコル通信層を示す。
【図１ｂ】図１ｂは、従来技術のＳＡＴＡフレーム構造の例を示す。
【図１ｃ】図１ｃは、従来技術のＳＡＴＡのシャドーレジスタブロックの例を示す。
【図１ｄ（ｉ）】図１ｄ（ｉ）は、従来技術のＳＡＴＡプロトコルのＦＩＳ構造を示す。
【図１ｄ（ｉｉ）】図１ｄ（ｉｉ）は、従来技術のＳＡＴＡプロトコルのＦＩＳ構造を示す。
【図１ｄ（ｉｉｉ）】図１ｄ（ｉｉｉ）は、従来技術のＳＡＴＡプロトコルのＦＩＳ構造を示す。
【図１ｄ（ｉｖ）】図１ｄ（ｉｖ）は、従来技術のＳＡＴＡプロトコルのＦＩＳ構造を示す。
【図１ｄ（ｖ）】図１ｄ（ｖ）は、従来技術のＳＡＴＡプロトコルのＦＩＳ構造を示す。
【図１ｄ（ｖｉ）】図１ｄ（ｖｉ）は、従来技術のＳＡＴＡプロトコルのＦＩＳ構造を示す。
【図１ｄ（ｖｉｉ）】図１ｄ（ｖｉｉ）は、従来技術のＳＡＴＡプロトコルのＦＩＳ構造を示す。
【図１ｄ（ｖｉｉｉ）】図１ｄ（ｖｉｉｉ）は、従来技術のＳＡＴＡプロトコルのＦＩＳ構造を示す。
【図２ａ】図２ａは、プロトコル層１〜４を含む従来技術のＳＡＴＡポートのブロック図を示す。
【図２ｂ（ｉ）】図２ｂ（ｉ）は、各プロトコル層内にいくつかの回路を含む従来技術のＳＡＴＡポートのブロック図を示す。
【図２ｂ（ｉｉ）】図２ｂ（ｉｉ）は、各プロトコル層内にいくつかの回路を含む従来技術のＳＡＴＡポートのブロック図を示す。
【図２ｂ】図２ｂは、各プロトコル層内にいくつかの回路を含む従来技術のＳＡＴＡポートのブロック図を示す。
【図３ａ】図３ａは、従来技術のＳＡＴＡスイッチのシステムアプリケーションを示す。
【図３ｂ】図３ｂは、従来技術のＳＡＴＡ−ＡＴＡスイッチのシステムアプリケーションを示す。
【図４ａ】図４ａは、層１でスイッチングする、従来技術の簡単なフェイルオーバースイッチの例を示す。
【図４ｂ】図４ｂは、層１でスイッチングする、従来技術の簡単なフェイルオーバースイッチの例を示す。
【図４】図４は、層１でスイッチングする、従来技術の簡単なフェイルオーバースイッチの例を示す。
【図５ａ】図５ａは、本発明の実施形態による、層２でスイッチングする、簡単なフェイルオーバースイッチを示す。
【図５ｂ】図５ｂは、本発明の実施形態による、層２でスイッチングする、簡単なフェイルオーバースイッチを示す。
【図５ｃ】図５ｃは、本発明の実施形態による、層２でスイッチングする、簡単なフェイルオーバースイッチを示す。
【図５】図５は、本発明の実施形態による、層２でスイッチングする、簡単なフェイルオーバースイッチを示す。
【図６ａ】図６ａは、本発明の実施形態による、スイッチのブロック図を示す。
【図６ｂ】図６ｂは、本発明の実施形態による、スイッチのブロック図を示す。
【図６】図６は、本発明の実施形態による、スイッチのブロック図を示す。
【図７ａ】図７ａは、図６のスイッチのアービトレーションおよび制御回路のブロック図を示す。
【図７ｂ】図７ｂは、図７ａのＴａｇ／Ｓａｃｔｉｖｅ  Ｍａｐｐｉｎｇ  Ｃｉｒｃｕｉｔ３４１のブロック図を示す。
【図７ｃ】図７ｃは、図６のスイッチのｍｕｘ−ｄｅｍｕｘ３５３およびｍｕｘ−ｄｅｍｕｘ３５４を示す。
【図８ａ（ｉ）】図８ａ（ｉ）は、レガシーキューコマンドに関する図６のスイッチ３００の動作のフローチャートを示す。
【図８ａ（ｉｉ）】図８ａ（ｉｉ）は、レガシーキューコマンドに関する図６のスイッチ３００の動作のフローチャートを示す。
【図８ａ（ｉｉｉ）】図８ａ（ｉｉｉ）は、レガシーキューコマンドに関する図６のスイッチ３００の動作のフローチャートを示す。
【図８ａ】図８ａは、レガシーキューコマンドに関する図６のスイッチ３００の動作のフローチャートを示す。
【図８ｂ】図８ｂは、ネイティブキューコマンドに関する図６のスイッチの動作のフローチャートを示す。
【図９】図９は、本発明による、アクティブスイッチの実施形態において用いられるＳＡＴＡレベル３ポートのブロック図を示す。
【図１０ａ（ｉ）】図１０ａ（ｉ）は、本発明の代替的実施形態による、アクティブスイッチを示す。
【図１０ａ（ｉｉ）】図１０ａ（ｉｉ）は、本発明の代替的実施形態による、アクティブスイッチを示す。
【図１０ａ（ｉｉｉ）】図１０ａ（ｉｉｉ）は、本発明の代替的実施形態による、アクティブスイッチを示す。
【図１０ａ】図１０ａは、本発明の代替的実施形態による、アクティブスイッチを示す。
【図１０ｂ（ｉ）】図１０ｂ（ｉ）は、本発明の代替的実施形態による、アクティブスイッチを示す。
【図１０ｂ（ｉｉ）】図１０ｂ（ｉｉ）は、本発明の代替的実施形態による、アクティブスイッチを示す。
【図１０ｂ（ｉｉｉ）】図１０ｂ（ｉｉｉ）は、本発明の代替的実施形態による、アクティブスイッチを示す。
【図１０ｂ】図１０ｂは、本発明の代替的実施形態による、アクティブスイッチを示す。
【図１０ｃ】図１０ｃは、図１０ａおよび図１０ｂのスイッチのｍｕｘ−ｄｅｍｕｘ５４３ａおよびマルチプレクサ５４３ｂの実施形態を示す。
【図１１ａ（ｉ）】図１１ａ（ｉ）は、本発明の実施形態による、アクティブＳＡＴＡ−ＡＴＡスイッチの実施形態を示す。
【図１１ａ（ｉｉ）】図１１ａ（ｉｉ）は、本発明の実施形態による、アクティブＳＡＴＡ−ＡＴＡスイッチの実施形態を示す。
【図１１ａ】図１１ａは、本発明の実施形態による、アクティブＳＡＴＡ−ＡＴＡスイッチの実施形態を示す。
【図１１ｂ（ｉ）】図１１ｂ（ｉ）は、本発明の実施形態による、アクティブＳＡＴＡ−ＡＴＡスイッチの実施形態を示す。
【図１１ｂ（ｉｉ）】図１１ｂ（ｉｉ）は、本発明の実施形態による、アクティブＳＡＴＡ−ＡＴＡスイッチの実施形態を示す。
【図１１ｂ（ｉｉｉ）】図１１ｂ（ｉｉｉ）は、本発明の実施形態による、アクティブＳＡＴＡ−ＡＴＡスイッチの実施形態を示す。
【図１１ｂ】図１１ｂは、本発明の実施形態による、アクティブＳＡＴＡ−ＡＴＡスイッチの実施形態を示す。
【図１２（ｉ）】図１２（ｉ）は、本スイッチのさらに別の実施形態で用いられるルートアウェアＦＩＳ構造の実施形態を示す。
【図１２（ｉｉ）】図１２（ｉｉ）は、本スイッチのさらに別の実施形態で用いられるルートアウェアＦＩＳ構造の実施形態を示す。
【図１２（ｉｉｉ）】図１２（ｉｉｉ）は、本スイッチのさらに別の実施形態で用いられるルートアウェアＦＩＳ構造の実施形態を示す。
【図１２（ｉｖ）】図１２（ｉｖ）は、本スイッチのさらに別の実施形態で用いられるルートアウェアＦＩＳ構造の実施形態を示す。
【図１２（ｖ）】図１２（ｖ）は、本スイッチのさらに別の実施形態で用いられるルートアウェアＦＩＳ構造の実施形態を示す。
【図１２（ｖｉ）】図１２（ｖｉ）は、本スイッチのさらに別の実施形態で用いられるルートアウェアＦＩＳ構造の実施形態を示す。
【図１２（ｖｉｉ）】図１２（ｖｉｉ）は、本スイッチのさらに別の実施形態で用いられるルートアウェアＦＩＳ構造の実施形態を示す。
【図１２（ｖｉｉｉ）】図１２（ｖｉｉｉ）は、本スイッチのさらに別の実施形態で用いられるルートアウェアＦＩＳ構造の実施形態を示す。
【符号の説明】
【０２７０】
２００  スイッチ
２１０  ＳＡＴＡレベル２ホストポート
２１１  ＰＬ回路
２１２  ＬＬ回路
２３０  ＳＡＴＡレベル２デバイスポート
２３１  物理層
２４２ａ  マルチプレクサ
２４２ｂ  マルチプレクサ
２４５  ＦＩＳ  ＦＩＦＯ
【図１ａ】
2005327230.tif 000004
【図１ｂ】
2005327230.tif 000005
【図１ｃ】
2005327230.tif 000006
【図１ｄ（ｉ）】
2005327230.tif 000007
【図１ｄ（ｉｉ）】
2005327230.tif 000008
【図１ｄ（ｉｉｉ）】
2005327230.tif 000009
【図１ｄ（ｉｖ）】
2005327230.tif 000010
【図１ｄ（ｖ）】
2005327230.tif 000011
【図１ｄ（ｖｉ）】
2005327230.tif 000012
【図１ｄ（ｖｉｉ）】
2005327230.tif 000013
【図１ｄ（ｖｉｉｉ）】
2005327230.tif 000014
【図２ａ】
2005327230.tif 000015
【図２ｂ（ｉ）】
2005327230.tif 000016
【図２ｂ（ｉｉ）】
2005327230.tif 000017
【図２ｂ】
2005327230.tif 000018
【図３ａ】
2005327230.tif 000019
【図３ｂ】
2005327230.tif 000020
【図４ａ】
2005327230.tif 000021
【図４ｂ】
2005327230.tif 000022
【図４】
2005327230.tif 000023
【図５ａ】
2005327230.tif 000024
【図５ｂ】
2005327230.tif 000025
【図５ｃ】
2005327230.tif 000026
【図５】
2005327230.tif 000027
【図６ａ】
2005327230.tif 000028
【図６ｂ】
2005327230.tif 000029
【図６】
2005327230.tif 000030
【図７ａ】
2005327230.tif 000031
【図７ｂ】
2005327230.tif 000032
【図７ｃ】
2005327230.tif 000033
【図８ａ（ｉ）】
2005327230.tif 000034
【図８ａ（ｉｉ）】
2005327230.tif 000035
【図８ａ（ｉｉｉ）】
2005327230.tif 000036
【図８ａ】
2005327230.tif 000037
【図８ｂ】
2005327230.tif 000038
【図９】
2005327230.tif 000039
【図１０ａ（ｉ）】
2005327230.tif 000040
【図１０ａ（ｉｉ）】
2005327230.tif 000041
【図１０ａ（ｉｉｉ）】
2005327230.tif 000042
【図１０ａ】
2005327230.tif 000043
【図１０ｂ（ｉ）】
2005327230.tif 000044
【図１０ｂ（ｉｉ）】
2005327230.tif 000045
【図１０ｂ（ｉｉｉ）】
2005327230.tif 000046
【図１０ｂ】
2005327230.tif 000047
【図１０ｃ】
2005327230.tif 000048
【図１１ａ（ｉ）】
2005327230.tif 000049
【図１１ａ（ｉｉ）】
2005327230.tif 000050
【図１１ａ】
2005327230.tif 000051
【図１１ｂ（ｉ）】
2005327230.tif 000052
【図１１ｂ（ｉｉ）】
2005327230.tif 000053
【図１１ｂ（ｉｉｉ）】
2005327230.tif 000054
【図１１ｂ】
2005327230.tif 000055
【図１２（ｉ）】
2005327230.tif 000056
【図１２（ｉｉ）】
2005327230.tif 000057
【図１２（ｉｉｉ）】
2005327230.tif 000058
【図１２（ｉｖ）】
2005327230.tif 000059
【図１２（ｖ）】
2005327230.tif 000060
【図１２（ｖｉ）】
2005327230.tif 000061
【図１２（ｖｉｉ）】
2005327230.tif 000062
【図１２（ｖｉｉｉ）】
2005327230.tif 000063