(57)【要約】      （修正有）【課題】システムコンポーネント間でデータパケット及びコマンドを転送することを可能とする。【解決手段】制御プロセッサと複数の周辺コンポーネントとの間でデータパケットを送信する方法は、ルータにおいて、第１のプロトコルでフォーマットされたコマンドデータパケット内に埋め込まれた情報を取得することと、ルータにおいて、再フォーマットされたコマンドデータパケットを形成することと、及びルータから前記再フォーマットされたコマンドデータパケットを送信すること、とからなる。再フォーマットされたコマンドデータパケットは、第２のプロトコルに従ってフォーマットされ、前記再フォーマットされたコマンドデータパケットは、前記取得したデータを含む。【選択図】図１
2008118630.tif 000002
【特許請求の範囲】
【請求項１】
制御プロセッサ（２０）と複数の周辺コンポーネント（５５）との間でデータパケット（１００）を送信する方法であって、
ルータ（１３０）において、第１のプロトコルでフォーマットされたコマンドデータパケット内に埋め込まれた情報を取得するステップと、
前記ルータにおいて、再フォーマットされたコマンドデータパケットを形成するステップと、
前記ルータから前記再フォーマットされたコマンドデータパケットを転送するステップと、
からなり、
前記再フォーマットされたコマンドデータパケットは、第２のプロトコルに従ってフォーマットされており、前記再フォーマットされたコマンドデータパケットは、前記取得した情報を含む方法。
【請求項２】
前記第１のプロトコルが、スペースワイヤプロトコル、ラピッドＩＯ、ＲＳ２３２Ｃデータパケットのうちの少なくとも１つであって、前記第２のプロトコルが、システム管理バス（ＳＭＢｕｓ）プロトコルであって、前記ルータにおける再フォーマットされたコマンドデータパケットの形成がさらに、
第１のＳＭＢｕｓブロック書き込み（１０１）として構造化されたデータパケット内のシステム書き込みコマンド内で制御プロセッサ（２０）へアドレスを転送するステップと、
第２のＳＭＢｕｓブロック書き込み（１０２）として構造化されたデータパケット内のシステム書き込みコマンド内で制御プロセッサ（２０）へデータを転送するステップと、
ＳＭＢｕｓブロック書き込み（１０３）として構造化されたデータパケット内のシステム読み出しコマンド内で制御プロセッサ（２０）へアドレスを転送するステップと、
ＳＭＢｕｓブロック読み出し（１０４）として構造化されたデータパケット内のシステム読み出しコマンド内で制御プロセッサ（２０）からデータを転送するステップと、
ＳＭＢｕｓブロック読み出し（１０７）として構造化されたデータパケット内の前記制御プロセッサの前回のトランザクションでアクセスされたアドレス情報及びデータバイト数を転送するステップ、とからなる請求項１記載の方法。
【請求項３】
ＳＭＢｕｓブロック読み出し（１０７）として構造化されたデータパケット内の前記制御プロセッサの前回のトランザクションでアクセスされたアドレス情報及びデータバイト数を転送するステップが、問い合わせのデータパケットを転送することからなり、前記方法がさらに、
最後のトランザクションで使用された制御プロセッサ（２０）のアドレスを埋め込むステップからなり、前記制御プロセッサの前記アドレスは、前記ＳＭＢｕｓブロック読み出しの少なくとも１つのアドレスオフセットフィールド（２４５）内に埋め込まれ、
前記ＳＭＢｕｓブロック読み出しのブロック長フィールド（２４８）内に最後のトランザクションで前記制御プロセッサに使用されたデータバイト数を埋め込むステップ、とからなる請求項２記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２００６年８月３１日に出願された、合衆国特許出願Ｎｏ．１１／４６９，１７６（代理人整理番号Ｎｏ．Ｈ００１１９４７．７２８５６）題名：「システム管理バスポートスイッチ」（また「１１／４６９，１７６出願」としてここでは参照する）に関連する。１１／４６９，１７６出願は、この参照により本願に取り入れる。本出願はまた、２００６年８月３１日に出願された、合衆国特許出願Ｎｏ．１１／４６９，２０７（代理人整理番号Ｎｏ．Ｈ００１２９２６−５８０２）題名：「システム管理バス実装のためのプロトコル埋め込み方法」（また「１１／４６９，２０７出願」としてここでは参照する）。１１／４６９，２０７出願は、この参照により本願に取り入れる。
【背景技術】
【０００２】
埋め込み（embedded）計算機システムは通常、システムのコンポーネント間でデータパケット及びコマンドを転送するために使用されるルータを含む。
周辺コンポーネントが、制御プロセッサ又は周辺コンポーネントのマスタへのアクセスを有することは有用である。例えば、システム設計者は、時々制御プロセッサのメモリ内部にあるバッファ内へ及び外に、周辺コンポーネントがデータを転送できることを望む。中には周辺コンポーネントが制御プロセッサへステータス及び構成情報を送信中の役割をアクティブに維持するように要求されるシステムもある。これは一般に、周辺コンポーネントそれぞれの調子及びステータスを決定するために、周辺コンポーネントを継続的又は周期的にポーリングするマスタ又は制御プロセッサによって実現される。
【０００３】
プライマリバスが中断されても周辺コンポーネント上でステータスチェックを維持することは有用である。
【特許文献１】ＵＳ特許出願  Ｎｏ．１１／４６９，１７６  題名：「Ａ  ＳＹＳＴＥＭ  ＭＡＮＡＧＥＭＥＮＴ  ＢＵＳ  ＰＯＲＴ  ＳＷＩＴＣＨ」
【特許文献２】ＵＳ特許出願  Ｎｏ．１１／４６９，２０７  題名：「Ａ  ＭＥＴＨＯＤ  ＴＯ  ＥＭＢＥＤ  ＰＲＯＴＯＣＯＬ  ＦＯＲ  ＳＹＳＴＥＭ  ＭＡＮＡＧＥＭＥＮＴ  ＢＵＳ  ＩＭＰＬＥＭＥＮＴＡＴＩＯＮ」
【発明の開示】
【課題を解決するための手段】
【０００４】
一実施形態において、制御プロセッサと複数の周辺コンポーネントとの間でデータパケットを送信する方法は、ルータにおいて、第１のプロトコルでフォーマットされたコマンドデータパケット内に埋め込まれた情報を取得することと、ルータにおいて、再フォーマットされたコマンドデータパケットを形成することと、及びルータから前記再フォーマットされたコマンドデータパケットを送信すること、とからなる。再フォーマットされたコマンドデータパケットは、第２のプロトコルに従ってフォーマットされ、前記再フォーマットされたコマンドデータパケットは、前記取得したデータを含む。
【発明を実施するための最良の形態】
【０００５】
一般的な習慣により、多様に記述された特徴は、一定の縮尺で記述されているのではなく、本発明に関係ある特徴を強調して描いている。参照の数字や符号といった文字は、図や文の始めから終わりまで、同様の構成要素を意味する。
【０００６】
後述する詳細部分では、明細書の一部をなす添付図面を参照している。図面では、本発明を実施できるように特定の実施形態を図によって示す。これらの実施形態は、当業者が本発明を実施できるように、十分に詳細に記述する。さらに本発明の趣旨及び範囲を逸脱することなく、他の実施形態も利用でき、また論理的、機械的、電気的変更も本発明の範囲から逸脱することなしに実施され得ることが理解できる。従って以下の詳細な記述は、限定を意図したものではないと言うことができる。
【０００７】
図１は、本発明によるルータ３０を実現するためのシステム１０の一実施形態のブロック図である。システム１０は、制御プロセッサ２０、ルータ３０及び番号５５で一般的に示される複数の周辺コンポーネントを含む。制御プロセッサ２０は、ルータ３０と通信可能に接続される。制御プロセッサ２０は、ルータ３０にデータパケットを送信し、複数のコンポーネント５５の周辺コンポーネントそれぞれは、制御プロセッサ２０へデータパケットを送信する。データパケットという語句はまた、ここで「コマンドデータパケット」としても参照され、マスタはスレーブが応答するように読み出しコマンド又は書込みコマンドを開始する。コマンドデータパケットは、スレーブアドレス、コマンドコード、バイトカウント、アドレスオフセット、ブロック長、データバイト及びパケットエラーコードのような埋め込まれた情報を含む。
【０００８】
ルータ３０は、コントローラインタフェース（Ｉ／Ｆ）３５、バスインタフェース（Ｉ／Ｆ）３６及びポート番号４０、４１及び４２によって一般的に示された複数のポートを含む。バスインタフェース３６は、（図１の状態機械３７のように表示される）マスタ／スレーブ状態機械３７を含む。ルータ３０はまた、ここで説明される方法を実行するためのソフトウェア、ファームウェア又は別のプログラムコードのような計算機実行可能命令３９を有する計算機可読メディア３８も含む。計算機可読メディア３８及び計算機実行可能命令３９が、バスインタフェース（Ｉ／Ｆ）３６及びマスタ／スレーブ状態機械３７とは別に示されるが、この実施形態の一実装においては、計算機可読メディア３８及び計算機実行可能命令３９が、バスインタフェース（Ｉ／Ｆ）３６及びマスタ／スレーブ状態機械３７と一体なものである。
【０００９】
制御インタフェース３５は、制御プロセッサ２０から第１のプロトコルに従ってフォーマットされたデータパケットを受信する。バスインタフェース３６は、受信したデータパケットを第１のプロトコルから第２のプロトコルへ再フォーマットする。制御プロセッサ２０から受信された各データパケットは、第２のプロトコルに従ってフォーマットされ、通信可能に接続されたポート４０、４１又は４２のうち１つを経由し、複数の周辺コンポーネント５５の１つ以上へ転送される。第２のプロトコルに従って再フォーマットされたデータパケットは、ここで「再フォーマットされたデータパケット」として参照される。同様に、通信可能に接続されたポート４０、４１又は４２のうちの１つを経由して複数の周辺コンポーネント５５のうちの１つから受信したそれぞれのデータパケットは、第２のプロトコルに従ってフォーマットされ、制御プロセッサ２０へ転送される。バスインタフェース３６内のマスタ／スレーブ状態機械３７は、データパケットの再フォーマットの間、バスインタフェース３６の機能を制御する。
【００１０】
複数の周辺コンポーネント５５は、複数の周辺コンポーネント５５のサブセット５０、５１及び５２からなる。複数の周辺コンポーネント５５のサブセット５０は、ルータ３０のポート４０に通信可能に接続される。サブセット５０は、周辺コンポーネント６０〜６２を含む。ポート４０を経由して転送されるデータパケットは、周辺コンポーネント６０〜６２へ送信される。
【００１１】
複数の周辺コンポーネント５５のサブセット５１は、ルータ３０のポート４１に通信可能に接続される。サブセット５１は、周辺コンポーネント６３〜６５を含む。ポート４１を経由して転送されるデータパケットは、周辺コンポーネント６３〜６５へ送信される。
【００１２】
同様に、複数の周辺コンポーネント５５のサブセット５２は、ルータ３０のポート４２に通信可能に接続される。サブセット５２は、周辺コンポーネント６６を含む。ポート４２を経由して転送されるデータパケットは、周辺コンポーネント６６へ送信される。この実施形態の一実装においては、サブセット５２は、１つ以上の周辺コンポーネントを含む。
【００１３】
この実施形態の一実装においては、ルータ３０は１２個のポートを含む。この実施形態の別の実装においては、ルータ３０は、１２個のポートを含み、各ポートは５つの周辺コンポーネントと通信可能に接続される。
【００１４】
複数の周辺コンポーネント５５のそれぞれは、メモリロケーション、ステータスレジスタ及び構成レジスタのような１つ以上の内部ロケーションを含む。例示した実施形態において、周辺コンポーネント６０は、内部ロケーション７０、７１及び７２を含み、周辺コンポーネント６３は、内部ロケーション８０、８１及び８２を含み、周辺コンポーネント６６は、内部ロケーション９０、９１及び９２を含む。周辺コンポーネント６１、６２、６４及び６５内の内部ロケーションは、図１中に示されていない。制御プロセッサ２０は、その内部ロケーションで機器構成及び制御レジスタにアクセスする。例えば、制御プロセッサ２０は、周辺コンポーネント６０、６３及び６６において、それぞれ内部ロケーション７０〜７２、８０〜８２、９０〜９２で機器構成及び制御レジスタにアクセスする。
【００１５】
ルータ３０のマスタ／スレーブ状態機械３７は、制御プロセッサ２０から受信したデータパケットを再フォーマットする。特にバスインタフェース３６は、ルータ３０から送信されたデータパケットが第２のプロトコルに従ってフォーマットされるように、第１のプロトコルに従ってフォーマットされる受信したデータパケットを修正する。このようにしてバスインタフェース３６及びルータ３０内のマスタ／スレーブ状態機械３７は、制御プロセッサ２０とその複数の周辺コンポーネント５５との間でコマンドを転送する。コントローラインタフェース３５は、周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６のアドレス及びアドレス指定された周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６に送信されるべきデータを受信する。アドレス指定された周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６は、ここで「ターゲットの周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６」として参照される。複数の周辺コンポーネント５５は、制御プロセッサ２０がデータパケットを開始し、複数の周辺コンポーネント５５のうちの１つがデータパケットを完了するとき、ルータ３０にとってスレーブ装置である。
【００１６】
同様に、複数の周辺コンポーネント５５のうちの１つがデータパケットを開始し、制御プロセッサ２０がデータパケットを完了するとき、ルータ３０から送信されたデータパケットが第１のプロトコルに従ってフォーマットされるように、バスインタフェースは、第２のプロトコルに従ってフォーマットされた受信したデータパケットを修正する。この場合、制御プロセッサ２０は、ルータ３０にとってスレーブ装置であり、周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６は、ルータ３０にとってマスタ装置である。
【００１７】
この実施形態の一実装においては、コントローラ２０から受信した第１のプロトコルデータパケットは、ＲＳ２３２データパケットである。この実施形態の別の実装においては、コントローラ２０から受信した第１のプロトコルデータパケットは、スペースワイヤプロトコル（宇宙機用ネットワーク規格）に従ってフォーマットされる。実施形態のさらに別の実装においては、コントローラ２０から受信した第１のプロトコルデータパケットは、ラピッドＩＯプロトコルに従ってフォーマットされる。実施形態のさらに別の実装においては、コントローラ２０から受信した第１のプロトコルデータパケットは、スペースワイヤプロトコルに従ってフォーマットされ、ルータ３０から送信された第２のプロトコルデータパケットは、システム管理バスプロトコルに従ってフォーマットされる。後者の実施形態を実装するシステムを図２に示す。
【００１８】
制御プロセッサ２０は、システム１０のルータ３０を経由して周辺コンポーネント６０〜６６へデータパケットを送信する。この実施形態の別の実装においては、制御プロセッサ２０は、システムステータス及び構成の問い合わせを実施するためにルータ３０を経由して周辺コンポーネント６０〜６６へデータパケットを送信する。この実施形態のさらに別の実装においては、制御プロセッサ２０は、プライマリバスの活動を中断せずにシステムステータス及び構成の問い合わせを実施するためにルータ３０を経由して周辺コンポーネント６０〜６６へデータパケットを送信する。この実施形態の一実装においては、制御プロセッサは、プライマリバスが多用による失敗又は速度低下のときに代替バスを経由してシステムステータス及び構成の問い合わせを実施する。この実施形態の別の実装においては、制御プロセッサ２０は、代替バスを経由し、システムステータス及び構成のすべての問い合わせを実施する。
【００１９】
この実施形態のさらに別の実装においては、周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６は、システム１０のルータ３０を経由し、制御プロセッサ２０へデータパケット送信を開始する。このような一実装では、ここで説明されるように周辺コンポーネント６０がデータパケットを送信開始するとき、周辺コンポーネントは、制御プロセッサへステータス及び／又は構成情報を報告している。このような別の実装では、ここで説明されるように周辺コンポーネント６０がデータパケットを送信開始するとき、周辺コンポーネントは、制御プロセッサによる問い合わせをリクエストしている。したがって、「開始する」という語句は、周辺コンポーネントに関して使用されるとき、「報告する」及び／又は「問い合わせをリクエストする」という語句と交換できる。この実施形態の例示的な実装においては、周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６は、制御プロセッサ２０へステータスデータ、例えばシステムステータス及び構成を送信するために、ルータ３０を経由して制御プロセッサ２０へデータパケットを送信することによって制御プロセッサ２０に報告する。この実施形態の別の例示的な実装においては、周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６は、プライマリバスの活動を中断せずに、制御プロセッサ２０へステータスデータを送信するためにルータ３０を経由して制御プロセッサ２０へデータパケットを送信することによって制御プロセッサ２０に報告する。この実施形態のさらに別の例示的な実装では、周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６は、プライマリバスが多用による失敗又は速度低下するときに代替バスを経由して周辺コンポーネントのシステムステータス及び構成について制御プロセッサによる問い合わせをリクエストする。この実施形態の別の例示的な実装においては、周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６は、すべての問い合わせリクエストを作成し、代替バスを経由して制御プロセッサによるすべての問い合わせに応答する。
【００２０】
図２は、本発明によるルータを実現するためのルータシステム１２の一実施形態のブロック図である。ルータシステム１２は、ルータ３０が、ここではまた「ＳＭＢｕｓルータ１３０」及び「ルータ１３０」として参照されるシステム管理バス（ＳＭＢｕｓ）ポートルータ１３０と置き換えられるシステム１０の実施形態である。ＳＭＢｕｓポートルータ１３０は、ＳＭＢｕｓコントローラインタフェース（Ｉ／Ｆ）１３５、ＳＭＢｕｓインタフェース（Ｉ／Ｆ）１３６及び複数のポート１４０〜１４２を含む。ＳＭＢｕｓインタフェース１３６は、（図２のＳＭＢｕｓ状態機械１３７のように示される）ＳＭＢｕｓマスタ／スレーブ状態機械１３７を含む。ルータ３０はまた、ここで説明される方法を実行するためのソフトウェア、ファームウェア又は別のプログラムコードのような計算機実行可能命令２３９を有する計算機可読メディア２３８も含む。計算機可読メディア２３８及び計算機実行可能命令２３９は、バスインタフェース（Ｉ／Ｆ）１３６及びＳＭＢｕｓマスタ／スレーブ状態機械１３７と別に示されるが、この実施形態の一実装では、計算機可読メディア２３８及び計算機実行可能命令２３９が、バスインタフェース（Ｉ／Ｆ）１３６及びＳＭＢｕｓマスタ／スレーブ状態機械１３７と一体なものである。
【００２１】
特にＳＭＢｕｓポートルータ１３０内部でバスインタフェース３６は、システム管理バスインタフェース１３６と置き換えられ、マスタ／スレーブ状態機械３７は、システム管理バスインタフェース１３６の機能を制御するシステム管理バスマスタ／スレーブ状態機械１３７に置き換えられる。このようにルータシステム１２は、制御プロセッサ２０、ＳＭＢｕｓポートルータ１３０及びＳＭＢｕｓポートルータ１３０のポート１４０、１４１又は１４２の１つと通信可能に接続された複数の周辺コンポーネント５５を含む。制御プロセッサ２０は、ＳＭＢｕｓポートルータ１３０と通信可能に接続されている。制御プロセッサ２０は、ＳＭＢｕｓポートルータ１３０にデータパケットを送信する。この実施形態の一実装においては、ルータシステム１２は、プライマリバスの失敗が検出されるときか又はシステムステータス及び構成の問い合わせがプライマリバスの活動を中断せずに実現されるときに実装される。
【００２２】
複数の周辺コンポーネント５５は、図１の参照して前述したように、サブセット５０、５１及び５２からなる。サブセット５０は、ルータ１３０のポート１４０と通信可能に接続されている。ポート１４０を経由して転送されたデータパケットは、周辺コンポーネント６０〜６２へ送信される。サブセット５１は、ルータ１３０のポート１４１と通信可能に接続されている。ポート１４１を経由して転送されたデータパケットは、周辺コンポーネント６３〜６５へ送信される。同様にして、サブセット５２は、ルータ１３０のポート１４２と通信可能に接続されている。ポート１４２を経由して転送されたデータパケットは、周辺コンポーネント６６へ送信される。
【００２３】
コントローラインタフェース１３５は、制御プロセッサ２０からの第１のプロトコルに従ってフォーマットされたデータパケットを受信する。この実施形態の一実装においては、その第１のプロトコルは、スペースワイヤプロトコルである。この実施形態の別の実装においては、その第１のプロトコルは、ラピッドＩＯである。この実施形態の別の実装においては、第１のプロトコルは、ＲＳ２３２データパケットである。バスインタフェース１３６は、受信したデータパケットを第１のプロトコルからシステム管理バス（ＳＭＢｕｓ）プロトコルへ再フォーマットする。ＳＭＢｕｓプロトコルに従ってフォーマットされたデータパケットは、各ポート１４０、１４１又は１４２を経由して複数の周辺コンポーネント５５のサブセット５０、５１又は５２へ転送される。ＳＭＢｕｓマスタ／スレーブ状態機械１３７は、そのデータパケットを再フォーマットする間、ＳＭＢｕｓインタフェース１３６の機能を制御する。
【００２４】
ルータ１３０のＳＭＢｕｓマスタ／スレーブ状態機械３７は、制御プロセッサ２０から受信したデータパケットを再フォーマットする。特にＳＭＢｕｓインタフェース１３６は、ルータ１３０から複数の周辺コンポーネント５５へ送信されたデータパケットが、第２のプロトコルに従ってフォーマットされるように、第１のプロトコルに従ってフォーマットされた受信したデータパケットを修正する。このようにしてルータ１３０内のＳＭＢｕｓインタフェース１３６及びマスタ／スレーブ状態機械１３７は、制御プロセッサ２０とその複数の周辺コンポーネント５５との間でコマンドを転送する。コントローラインタフェース１３５は、周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６のアドレス及びアドレス指定されたその周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６へ送信されるデータを受信する。アドレス指定された周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６は、ここで「ターゲットの周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６」として参照される。制御プロセッサ２０がデータパケットを開始し、周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６がデータパケットを完了するとき、複数の周辺コンポーネント５５は、ルータ１３０にとって、スレーブ装置である。
【００２５】
同様に、周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６がデータパケットを開始し、制御プロセッサ２０がデータパケットを完了するとき、ルータ１３０から送信されたデータパケットが第１のプロトコルに従ってフォーマットされるように、バスインタフェース１３６は、第２のプロトコルに従ってフォーマットされた受信データパケットを修正する。この場合、制御プロセッサ２０は、ルータ１３０にとってスレーブ装置であり、周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６は、ルータ１３０にとってマスタ装置である。
【００２６】
この実施形態の一実装においては、ルータシステム１２のプライマリバスは、制御プロセッサ２０と複数の周辺コンポーネント５５との間でコマンド及びデータを転送するための埋め込みシステムプライマリバスアーキテクチャを使用する。データパケット転送中に、プライマリバスがロックアップされるか、もしくは、エラーを発生しているとき、制御プロセッサ２０は、ルータ１３０を使用し、それは制御プロセッサ２０用の代替バスとして機能する。プライマリバスに対する代替バスとして機能するために、ルータ１３０におけるＳＭＢｕｓマスタ／スレーブ状態機械１３７は、データパケットを再フォーマットする。特にバスインタフェース１３６は、ルータ１３０から送信されたデータパケットが、ＳＭＢｕｓプロトコルに従ってフォーマットされるように、第１のプロトコルに従ってフォーマットされたデータパケットを受信する。このようにして、ＳＭＢｕｓインタフェース１３６及びＳＭＢｕｓポートルータ１３０内のＳＭＢｕｓマスタ／スレーブ状態機械１３７は、制御プロセッサ２０と複数の周辺コンポーネント５５との間でコマンドを送信するために埋め込みシステムプライマリバスアーキテクチャに代替バスを提供する。
【００２７】
図３〜５は、本発明によるルータ内で転送されるデータパケットの実施形態のブロック図である。ＳＭＢｕｓプロトコルに従って、ルータ３０又はＳＭＢｕｓポートルータ１３０によって再フォーマットされたデータパケットの構造が図３〜５中に示される。図３〜５中に示された例示的データパケットに関して、区分けはデータフィールドを示し、例えば図４中のデータバイトフィールド１５８は、データがスレーブからマスタへ送信されることを示すために網掛けされる。同様に、網掛けでない区分けの例えば図３中のスレーブアドレスフィールド１５０は、そのデータがマスタからスレーブへ送信されることを示す。
【００２８】
制御プロセッサ２０がデータパケットを開始する場合、制御プロセッサ２０は、マスタであり、ターゲットの周辺コンポーネントはスレーブである。複数の周辺コンポーネント５５のうちの１つが、データパケットを開始する場合、開始している周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６がマスタであり、制御プロセッサ２０はスレーブである。この後者の実施形態の一実装においては、スレーブアドレスは、制御プロセッサ２０のアドレスである。この後者の別の実施形態においてスレーブアドレスは、制御プロセッサ２０に通信可能に接続されたルータ１３０のアドレスである。
【００２９】
図３は、本発明によるシステム管理バスプロトコルに従ってフォーマットされた書込みコマンドデータパケット１００のブロック図である。ＳＭＢｕｓポートルータ１３０又は前記開始周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６の一方であるマスタが、第１のＳＭＢｕｓブロック書込み１０１及び第２のＳＭＢｕｓブロック書込み１０２として構造化されたデータパケット１００を使用し、システム書込みのための情報を転送する。ＳＭＢｕｓブロック書き込みはまた、ここでは「ＳＭＢｕｓブロック書き込みデータパケット」として参照され、ＳＭＢｕｓブロック読み出しはまた、ここでは「ＳＭＢｕｓブロック読み出しデータパケット」として参照される。特に書き込みコマンドデータパケット１００は、第２のＳＭＢｕｓブロック書き込み１０２があとに続く第１のＭＢｕｓブロック書き込み１０１を含む。
【００３０】
図３は、本発明による適合したシステム管理バスプロトコルに従って周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６の内部ロケーションへ又はからシステムデータを書き込むために使用されるＳＭＢｕｓデータブロック書き込みがあとに続くＳＭＢｕｓアドレスブロック書き込みである。ＳＭＢｕｓポートルータ１３０は、第１のＳＭＢｕｓブロック書き込み１０１及び第２のＳＭＢｕｓブロック書き込み１０２として構造化されたデータパケット１００を使用し、システム書き込みのための情報を転送する。ＳＭＢｕｓブロック書き込み１０１はまた、ここで「ＳＭＢｕｓブロック書き込みデータパケット１０１」として参照される。ＳＭＢｕｓブロック読み出し１０２はまた、ここで「ＳＭＢｕｓブロック読み出しデータパケット１０２」として参照される。具体的には、再フォーマットされた書込みコマンドデータパケット１００は、第２のＳＭＢｕｓブロック書込み１０２が後に続く第１のＳＭＢｕｓブロック書込み１０１を含む。
【００３１】
制御プロセッサ２０が、周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６のうちの１つに、第１のＳＭＢｕｓブロック書込み１０１及び第２のＳＭＢｕｓブロック書込み１０２として構造化されたデータパケット１００を使用してシステム書込みのための情報を転送している場合、そのデータパケット完了の間、制御プロセッサ２０は、マスタであり、周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６はスレーブである。この実装は１１／４６９，１７６出願で詳細に説明されており、そこではここで説明されるルータ機能がスイッチによって実行されていて、ここでは繰り返し言及しない。
【００３２】
複数のコンポーネント５５のうちの１つが、第１のＳＭＢｕｓブロック書込み１０１及び第２のＳＭＢｕｓブロック書込み１０２として構造化されたデータパケット１００を使用し、システム書込みのための情報を制御プロセッサ２０へ転送している場合、データパケット１００完了の間、周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６はマスタであり、制御プロセッサ２０はスレーブである。
【００３３】
複数のコンポーネント５５のうちの１つが、制御プロセッサ２０へ第１のＳＭＢｕｓブロック書込み１０１及び第２のＳＭＢｕｓブロック書込み１０２として構造化されたデータパケット１００を使用してシステム書込みのための情報を転送しているとき、ここで「アドレスブロック書込み１０１」としても参照されるＳＭＢｕｓブロック書込み１０１は、スレーブアドレスフィールド１５０内のルータ１３０又は制御プロセッサ２０のアドレスを転送する。ここで「データブロック書込み１０２」としても参照される第２のＳＭＢｕｓブロック書込み１０２は、データバイトフィールド１５５、１５６及び１５７内の制御プロセッサ２０へのデータを転送する。より多くの又はより少ないデータバイトフィールドが、必要に応じて使用され得る。ＳＭＢｕｓブロック書込み１０２内のスレーブアドレスフィールド１５２は、ＳＭＢｕｓブロック書込み１０１内のスレーブアドレスフィールド１５０と同様であり、ルータ１３０のアドレスか制御プロセッサ２０のアドレスの一方である。
【００３４】
周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６がマスタの場合、スレーブアドレスフィールド１５０及び１５２内の上位４バイナリビットのようなアドレスブロックの第１の部分は、制御プロセッサ２０がアドレス指定されていると決定するためにＳＭＢｕｓポートルータ１３０によってデコードされる。この実施形態の一実装では、周辺コンポーネント６０、６１、６２、６３、６４、６５及び／又は６６に通信可能に接続された１つ以上の制御プロセッサがある。この場合、スレーブアドレスフィールド１５０及び１５２内の上位４バイナリビットのようなアドレスブロックの第１の部分は、制御プロセッサ２０に通信可能に接続されている物のどれがアドレス指定されているかを決定するためにＳＭＢｕｓポートルータ１３０によってデコードされる。この実施形態の別の実装においては、スレーブアドレスフィールド１５０及び１５２内の上位４バイナリビットのようなアドレスブロックの第１の部分は、ＳＭＢｕｓポートルータ１３０のアドレスを含み、システム管理バスポートルータ１３０が、通信可能に接続されたどの制御プロセッサがデータパケット１００を完了し得るかを決定するために、ＳＭＢｕｓブロック書込み１０１のアドレスオフセットフィールド１４５をデコードする。
【００３５】
ブロック長は、ブロック長フィールド１４８内の第１のＳＭＢｕｓブロック書き込み１０１に埋め込まれたターゲットアドレスバイトに追加される。制御プロセッサ２０は、アクセスされているデータワード数を決定するために、そのブロック長フィールド１４８内のデータをデコードする。ＳＭＢｕｓブロック書き込み１０１に関するバイトカウントは常に４である。その制御プロセッサ２０は、その２つの転送が正当であると確認するために、アドレスブロック書き込み１０１内で受信されたブロック長を持つデータブロック書き込み１０２内のバイトカウントフィールド１６３内で受信したバイトカウントをチェックする。制御プロセッサ２０は、ＳＭＢｕｓブロック書き込み１０１及びＳＭＢｕｓブロック書き込み１０２内に送信されたデータの整合性を守るために、チェックサムとしてパケットエラーコード（ＰＥＣ）データフィールド１４９内にデータを受信する。
【００３６】
図４は、本発明による再フォーマットされた読み出しコマンドデータパケット１０５のブロック図である。ターゲットの周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６は、制御プロセッサ２０によって開始されるデータパケット１０５の受信に応答して、ＳＭＢｕｓポートルータ１３０へシステム読み出しのための情報を転送する。同様に、制御プロセッサ２０は、複数の周辺コンポーネント５５のうちの１つによって開始されるデータパケット１０５の受信に応答して、ＳＭＢｕｓポートルータ１３０へシステム読み出しのための情報を転送する。データパケット１０５は、ＳＭＢｕｓブロック読み出し１０４があとに続く１つのＳＭＢｕｓブロック書き込み１０３として構造化される。ＳＭＢｕｓブロック書込み１０３はまた、ここで「アドレスブロック書込み１０３」としても参照され、スレーブアドレスフィールド１５０内のスレーブのアドレスを転送する。複数の周辺コンポーネント５５のうちの１つがデータパケット１０５を開始する場合、制御プロセッサ２０は、データパケット１０５が完了される間、スレーブである。同様に、制御プロセッサ２０がデータパケット１０５を開始する場合、周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６は、データパケット１０５が完了される間、スレーブである。
【００３７】
ターゲットのアドレスは、ＭＢｕｓブロック書き込み１０３を使用して送信され、これはここで「アドレスブロック書き込み１０３」としても参照される。アドレス転送は、前述の方法でシステム書込みへの参照と共に実現される。システム読み出しの間リクエストされるデータは、ＳＭＢｕｓブロック読み出し１０４を使用してマスタへ逆に転送される。この転送は、「データブロック読み出し１０４」として参照される。
【００３８】
データパケット１０５の受信に応答し、ターゲット周辺コンポーネントがＳＭＢｕｓポートルータ１３０へシステム読出しのための情報を転送する仕方が１１／４６９，１７６出願で詳細に説明されており、そこではここで説明されているルータ機能がスイッチによって実行され、ここでは繰り返し言及しない。
【００３９】
周辺コンポーネント５５のうちの１つがマスタのとき、制御プロセッサ２０は、データパケット１０５の受信に応答してＳＭＢｕｓポートルータ１３０へシステム読出しのための情報を転送する。この場合、スレーブアドレスフィールド１５０及び１５２内の上位４バイナリビットのようなアドレスブロックの第１の部分は、制御プロセッサ２０がアドレス指定されていると決定するために、ＳＭＢｕｓポートルータ１３０によってデコードされる。この実施形態の一実装においては、周辺コンポーネント６０、６１、６２、６３、６４、６５及び／又は６６に通信可能に接続された１つ以上の制御プロセッサがある。この場合、スレーブアドレスフィールド１５０及び１５２内の上位４バイナリビットのようなアドレスブロックの第１の部分は、制御プロセッサ２０に通信可能に接続されている物のどれがアドレス指定されているかを決定するために、ＳＭＢｕｓポートルータ１３０によってデコードされる。この実施形態の別の実装においては、スレーブアドレスフィールド１５０及び１５２内の上位４バイナリビットのようなアドレスブロックの第１の部分は、ＳＭＢｕｓポートルータ１３０のアドレスを含み、通信可能に接続されたどの制御プロセッサがデータパケット１０５を完了し得るかを決定するために、システム管理バスポートルータ１３０が、ＳＭＢｕｓブロック書込み１０３のアドレスオフセットフィールド１４５、１４６及び／又は１４７をデコードする。
【００４０】
ＳＭＢｕｓブロック読み出し１０４は、制御プロセッサ２０から、データバイトフィールド１５８と１５９内のＳＭＢｕｓポートルータ１３０へデータを転送する。より多くの又はより少ないデータバイトフィールドが必要に応じて使用可能である。
【００４１】
周辺コンポーネントは、ＳＭＢｕｓブロック書き込みのアドレスオフセットフィールド１４５、１４６及び／又は１４７内に包含された内部ロケーションアドレスへ読み出すために要求されるワード数を決定するために、ＳＭＢｕｓブロック書き込み１０３のブロック長フィールド１４８内に送信されるブロック長を使用する。
【００４２】
制御プロセッサ２０が、ＳＭＢｕｓブロック読み出し１０４内のコマンドコード１６１の受信を確認するために、データフィールド１６９内で１つのアクノリッジメントを送信した後、ＳＭＢｕｓポートルータ１３０は、第２のスレーブアドレスフィールド１６２内のルータ１３０又は制御プロセッサ２０のアドレスを再送する。第２のスレーブアドレスフィールド１６２は、ＳＭＢｕｓブロック読み出し１０４が読み出しデータパケットであることをルータ１３０又は制御プロセッサ２０へ示す。
【００４３】
制御プロセッサ２０は、ＳＭＢｕｓブロック読み出し１０４内のバイトカウントフィールド１６３内にＳＭＢｕｓブロック書き込み１０３のブロック長フィールド１４８内に送信されたブロック長を埋め込む。そのあと制御プロセッサ２０は、制御プロセッサ２０からデータを転送する。データは、ＳＭＢｕｓポートルータ１３０へ、制御プロセッサ２０からデータバイトフィールド１５８及び１５９内で送信される。周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６は、データ転送が正当であると確認するために、ＳＭＢｕｓブロック読み出し１０４内で受信したバイトカウントフィールド１６３内のバイトカウントとＳＭＢｕｓブロック書き込み１０３内に送信されたブロック長フィールド１４８内のブロック長とを比較する。この方法で制御プロセッサ２０からの情報は、読み出しコマンドデータパケット１０５の転送に応答してルータ１３０に送信される。
【００４４】
ある例示的な場合において、ターゲットの周辺コンポーネント６３は、ポート１４１を経由してルータ１３０へ読み出しコマンドデータパケット１０５を送信する。周辺コンポーネント６３は、制御プロセッサ２０がＳＭＢｕｓブロック書き込み１０３のスレーブアドレスフィールド１５０内のターゲットであることを決定する。制御プロセッサ２０は、コマンドデータパケット１０５内のＳＭＢｕｓブロック読み出し１０４の部分としてデータバイトフィールド１５８及び１５９内のデータをルータ１３０ポート１４２経由でデータを要求した周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６へ送信することによって、第２のスレーブアドレスフィールド１５４の受信に応答する。制御プロセッサ２０は、ＳＭＢｕｓブロック書き込み１０３内に送信されたデータの整合性を守るために、チェックサムとしてＰＥＣデータフィールド１４９内のデータを受信する。制御プロセッサ２０は、ＳＭＢｕｓブロック読み出し１０４内に送信されたデータの整合性を守るために、チェックサムとしてＰＥＣデータフィールド２５０内のデータを送信する。この方法でプロトコルは、第１のシステム管理バスブロック書込みのブロック長フィールド内のデータと第２のシステム管理バスブロック書込みのバイトカウントフィールド内のデータとを比較することによってチェックされる。
【００４５】
このような方法で、ＳＭＢｕｓブロック読み出し１０４は、ルータ１３０を伴うトランザクションを完了する。この実施形態の一実装においては、このプロセスは、図１を参照した前述のルータ３０とともに実現される。
【００４６】
ＳＭＢｕｓプロトコルは、システム問い合わせが固有のコマンドコードと共にＳＭＢｕｓブロック読み出しを使用し、構造化されるように適合される。この問い合わせトランザクションは、ＳＭＢｕｓアドレスブロック読み出し内で実現される。この場合、ＳＭＢｕｓアドレスブロック読み出しのためのバイトカウントは常に４である。
【００４７】
図５は、本発明によるシステム問い合わせにおいて、ＳＭＢｕｓポートルータ１３０を経由して制御プロセッサ２０からコマンドコードを転送するために再フォーマットされた、読み出しコマンドデータパケット１１０のブロック図である。この実施形態の一実装においては、ＳＭＢｕｓポートルータ１３０は、制御プロセッサ２０が複数の周辺コンポーネント５５内のターゲットの周辺コンポーネントを問い合わせるために、ＳＭＢｕｓアドレスブロック読み出し１０７として構造化されたデータパケット１１０に読み出しコマンドを再フォーマットする。この実施形態の別の実装においては、ＳＭＢｕｓポートルータ１３０は、複数の周辺コンポーネント５５のうちの１つが制御プロセッサ２０を問い合わせするために、ＳＭＢｕｓアドレスブロック読み出し１０７として構造化されたデータパケット１１０に読み出しコマンドを再フォーマットする。
【００４８】
複数の周辺コンポーネント５５のうちの１つが読み出しコマンドデータパケット１１０で問い合わせられる場合、制御プロセッサ２０は、データパケット１１０が完了される間、マスタである。この実装は１１／４６９，１７６で詳細に説明され、そこではここで説明されるルータ機能がスイッチによって実行されており、ここでは繰り返し言及しない。
【００４９】
制御プロセッサ２０が読み出しコマンドデータパケット１１０で問い合わせられる場合、データパケット１１０を開始した複数の周辺コンポーネント５５のうちの周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６は、データパケット１１０が完了される間、マスタである。この実装において、ＳＭＢｕｓアドレスブロック読み出し１０７は、スレーブアドレスフィールド１６０内及びスレーブアドレスフィールド１６２内にルータ１３０又は制御プロセッサ２０のアドレスを含む。ＳＭＢｕｓアドレスブロック読み出し１０７は、コマンドコードフィールド１６１内に選択されたコマンドコードを含む。制御プロセッサ２０がコマンドコード１６１のアクノリッジ受信へデータフィールド１６９内のアクノリッジを送信した後、周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６は、ＳＭＢｕｓアドレスブロック読み出し１０７が読み出しデータパケットであることをスレーブに示すために、スレーブアドレスフィールド１６２内のルータ１３０又は制御プロセッサのアドレスを再送信する。
【００５０】
制御プロセッサ２０は、周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６それぞれの内部ロケーション７０、７１、７２、８０、８１、８２、９０、９１又は９２を用いる前回のＳＭＢｕｓトランザクションで、制御プロセッサ２０にアクセスされたデータバイト数を示すデータを転送する。この実施形態の一実装においては、制御プロセッサ２０は、データパケット１１０を開始する周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６を用いる前回のＳＭＢｕｓトランザクションで制御プロセッサ２０によってアクセスされたデータバイト数を示すデータを転送する。
【００５１】
前回のＳＭＢｕｓトランザクションで制御プロセッサ２０にアクセスされたデータバイト数を示すデータは、ＳＭＢｕｓアドレスブロック読み出し１０７のバイトカウントフィールド１６３内のＳＭＢｕｓルータ１３０を経由し、周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６へ制御プロセッサ２０から送信される。
【００５２】
このような方法で、データパケット１１０を開始した周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６が、前回のトランザクションが周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６のそれぞれ（図２）へＳＭＢｕｓルータ１３０を経由して転送される間、制御プロセッサ２０によってアクセスされたバイト数を示す情報を受信し、ＳＭＢｕｓアドレスブロック読み出し１０７は、ＳＭＢｕｓルータ１３０を伴うトランザクションを完了する。
【００５３】
ルータへの応答のデータのタイプは、コマンドコードフィールド１６１内のコマンドコードに依存する。いくつか選択された例示的なコマンドコードは、コマンドに割り当てられた関連するバイナリバイト及びコマンドに関連する説明と共に表１に示される。
【００５４】
【表１】
2008118630.tif 000003
【００５５】
例示的な場合において、制御プロセッサ２０は、ルータ１３０を介して複数の周辺コンポーネントのうちの１つからＳＭＢｕｓアドレスブロック読み出し１０７を受信する。ＳＭＢｕｓアドレスブロック読み出し１０７は、コマンドコードフィールド１６１内に（表１の行４に示す）選択されたコマンドコード「１００１１００１」及びスレーブアドレスフィールド１６０と１６２内に制御プロセッサ２０のアドレスを含む。この例示的な場合、制御プロセッサ２０は、制御プロセッサ２０からルータ１３０へ送信されているデータバイトの数を示すバイトカウントフィールド１６３内のデータを送信することによって、ＳＭＢｕｓアドレスブロック読み出し１０７内の第２のスレーブアドレスフィールド１６２に応答する。その後、制御プロセッサ２０は、前回のＳＭＢｕｓトランザクション内で使用された制御プロセッサ２０からデータを受け取るべき周辺コンポーネント６０の内部ロケーション９１を示すＳＭＢｕｓアドレスブロック読み出し１０７のアドレスオフセットフィールド２４５、２４６及び／又は２４７内のデータを送信する。この実施形態の一実装においては、制御プロセッサ２０は、以前のＳＭＢｕｓトランザクション中に制御プロセッサ２０からデータを受信した周辺コンポーネント６０の内部ロケーション９１を示すＳＭＢｕｓアドレスブロック読み出し１０７のアドレスオフセットフィールド２４５、２４６及び／又は２４７中のデータを送信する。制御プロセッサ２０は、その後、前回のＳＭＢｕｓトランザクションの間制御プロセッサ２０内でアクセスされたデータバイト数を示すために、ブロック長フィールド２４８内のデータを送信する。制御プロセッサ２０は、その後ＳＭＢｕｓアドレスブロック読み出し１０７内に送信されたデータの整合性を守るために使用されるチェックサムとしてルータ１３０へＰＥＣデータフィールド２５０を送信する。この実施形態の１つの実装においては、このプロセスは、図１を参照して前述したルータ３０と共に実現される。
【００５６】
図６は、本発明によるシステム管理バスインタフェース１３６の一実施形態のブロック図である。この例示的な場合、システム管理バスインタフェース（ＳＭＢｕｓ  ＩＦ）１３６は、ポート１４０〜１４２（図２）のような１２のポートを有するＳＭＢｕｓポートルータ１３０のためのものである。システム管理バスインタフェース１３６は、データパケット１００、１０５及び１１０を形成するデータパケットの再フォーマットの間、ＳＭＢｕｓインタフェース１３６の機能性を制御するためのＳＭＢｕｓマスタ／スレーブ状態機械１３７を含む。ＳＭＢｕｓマスタ／スレーブ状態機械１３７は、ＳＭＢｕｓインタフェース１３６が、データパケットを完了する間、マスタとして周辺コンポーネント又は処理プロセッサを認識するか否かを制御するために、ＳＭＢｕｓスレーブポートデマルチプレクサ１７０、ＳＭＢｕｓデータワードマルチプレクサ１７２、ＳＭＢｕｓ読み出しデータワードデマルチプレクサ１７３及びアービタ（ａｒｂｉｔｅｒ）１３８と通信可能に接続されている。こうしてアービタ１３８は、データパケットが完了される間、制御プロセッサ２０又は複数の周辺コンポーネント５５のうちの１つがＳＭＢｕｓマスタ／スレーブ状態機械１３７を制御する事を可能にする。ＳＭＢｕｓスレーブポートデマルチプレクサ１７０は、ポート１４０〜１４２（図２）のようなポートに通信可能に接続されている。
【００５７】
ＳＭＢｕｓインタフェース１３６中で実現されている信号名及び関連した説明の例示的なリストを表２に示す。表２の信号名の列は、図６で示された１２のポートに関するＳＭＢｕｓインタフェース１３６の実施形態の中で示される信号を含んでいる。説明の列は、各信号の機能の説明及び各信号に対して必要な有効バイト数を含む。
【００５８】
【表２】
2008118630.tif 000004
【００５９】
図７は、本発明によるシステム管理バスマスタ／スレーブ状態機械の一実施形態のフロー図７００である。フローは、ＳＭＢｕｓ状態機械の実現のために記述され、ＳＭＢｕｓ状態機械は図６のＳＭＢｕｓインタフェース１３６に示されるＳＭＢｕｓ状態機械１３７である。リセット（ブロック７１４）は、ＳＭＢｕｓマスタ／スレーブ状態機械をリセットモードにする。その後、ＳＭＢｕｓ状態機械は、リセット後又はトランザクション完了後、アイドル状態に入る。制御プロセッサ２０がデータパケットを開始する場合、ＳＭＢｕｓマスタ／スレーブ状態機械１３７のフローは、破線ボックス７４０内部に進む。この場合、データパケットが完了される間、制御プロセッサ２０はマスタである。複数の周辺コンポーネント５５の周辺コンポーネント６０、６１、６２、６３、６４、６５または６６のうちの１つがデータパケットを開始する場合、システム管理バスマスタ／スレーブ状態機械１３７のフローは、破線ボックス７５０の内部に進む。この場合、データパケットが完了される間、開始した周辺コンポーネント６０、６１、６２、６３、６４、６５または６６がマスタである。
【００６０】
ＳＭＢｕｓマスタ／スレーブ状態機械１３７がアイドル中（ブロック７０２）のとき、ＳＭＢｕｓマスタ／スレーブ状態機械１３７は、ＳＭＢｕｓマスタ／スレーブ状態機械１３７がアイドル状態中であることを示すために、信号例えばＳｍ＿ｂｕｓｙ＝０を出力する。ＳＭＢ＿ＲＤ＝１又はＳＭＢ＿ＷＲＴ＝１信号が、制御プロセッサ２０からＳＭＢｕｓマスタ／スレーブ状態機械１３７において受信されるとき、制御プロセッサ調停リクエストが受信される（ブロック７１６）。ポートは、ＳＭＢｕｓマスタ／スレーブ状態機械１３７によって選択される（ブロック７０４）。ＳＭＢｕｓマスタ／スレーブ状態機械１３７は、ビジーであることを示す信号（Ｓｍｂ＿ｂｕｓｙ＝１）を出力し、どのポートを選択するかを制御するための信号（Ｌｄ＿ｓｍｂ＿ａｄｄｒ＝１，Ｓｍ＿ｓｅｌ＿ｐｏｒｔ＝１）及びデータのフローの方向示すための信号（Ｓｍ＿ｍｓｔｒ＿ｒｌｓ＝１）を出力する。
【００６１】
アドレスブロック書き込みデータパケット１０１（図３）又はアドレスブロック書き込みデータパケット１０３（図４）が形成される（ブロック７０６）。読み出しコマンドＳＭＢ＿ＲＤ＝１がＳＭＢｕｓマスタ／スレーブ状態機械１３７において受信される場合、フローはブロック７０６からブロック７０８に進み、データブロック読み出しデータパケット１０４が、ブロック７０６で形成された書き込みデータパケット１０３に続いて形成される。アドレスブロック読み出しデータパケット１０５（図４）が周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６によって受信される。ＳＭＢｕｓマスタ／スレーブ状態機械１３７は、アドレスブロック読み出しデータパケット１０５の完了時、アイドル（ブロック７０２）に戻る。
【００６２】
書き込みコマンドＳＭＢ＿ＷＲＴ＝１がＳＭＢｕｓマスタ／スレーブ状態機械１３７で受信される場合、フローはブロック７０６からブロック７１０へ進み、第２のデータブロック書き込みデータパケット１０２（図３）が、ブロック７０６で形成された第１の書き込みデータパケット１０１のあとに続いて形成される。アドレスブロック読み出しデータパケット１００（図３）は、周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６によって受信される。ＳＭＢｕｓマスタ／スレーブ状態機械１３７は、アドレスブロック読み出しデータパケット１００の完了時、アイドル（ブロック７０２）に戻る。
【００６３】
アドレスブロック読み出しパケット１０７（図５）がＳＭＢｕｓマスタ／スレーブ状態機械１３７で開始される場合、フローはブロック７０４からブロック７１２に進み、ＳＭＢｕｓブロック読み出し１０７（図５）として構造化された再フォーマットされた読み出しコマンドデータパケット１１０が形成される。アドレスブロック読み出しデータパケット１０７（図５）は、周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６によって受信される。ＳＭＢｕｓマスタ／スレーブ状態機械１３７は、データブロック書き込みデータパケット完了時、アイドル（ブロック７０２）に戻る。
【００６４】
周辺コンポーネントの調停（ａｒｂｉｔｅｒ）リクエストが、受信され（ブロック７１８）、スレーブアドレスが、周辺コンポーネント６０、６１、６２、６３、６４、６５または６６のうちの１つからＳＭＢｕｓマスタ／スレーブ状態機械１３７において受信される。スレーブアドレスは、データパケット１００（図３）又は１０５（図４）のスレーブアドレスフィールド１５０内又はデータパケット１１０（図５）のスレーブアドレスフィールド１６０内の複数の周辺コンポーネント５５の周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６のうちの１つから受信し得る。そのあと、ＳＭＢｕｓブロック書き込み１０１（図３）又はＳＭＢｕｓブロック書き込み１０３（図４）又はＳＭＢｕｓアドレスブロック読み出し１０７（図５）のコマンドコードフィールド１５３、１５１又は１５１内で受信された周辺コンポーネントコマンドは、それぞれＳＭＢｕｓマスタ／スレーブ状態機械１３７によってデコード（ブロック７２０）される。
【００６５】
デコードされたコマンドコードフィールドがアドレスブロック書き込みデータパケット１０１（図３）又はアドレスブロック書き込みデータパケット１０３（図４）のいずれか一方が形成されるべきことを示す場合、フローは、ブロック７２２に進む。アドレスブロック書き込みデータパケット１０１及びアドレスブロック書き込みデータパケット１０３は同一に構造化される。ブロック７２２でデータパケット１０１（図３）又はデータパケット１０３（図４）が形成される。フローはブロック７２４へ進み、ＳＭＢｕｓマスタ／スレーブ状態機械１３７は、次の周辺コンポーネントコマンドの受信を待つ。（データパケット１０１（図３）又はデータパケット１０３（図４）の完了後）次のコマンドが受信されると、フローはブロック７２０へ進み、そこで周辺コンポーネントコマンドがデコードされる。コマンドコードがコマンドコードフィールド１６１である場合、フローはブロック７３０へ進み、ＳＭＢｕｓブロック読み出し１０４のような周辺コンポーネントデータブロック読み出しデータパケットが、ＳＭＢｕｓマスタ／スレーブ状態機械１３７によって形成される。ＳＭＢｕｓマスタ／スレーブ状態機械１３７は、ＳＭＢｕｓブロック読み出し１０４の完了時、アイドル（ブロック７０２）に戻る。
【００６６】
ブロック７２４で受信したコマンドコードが、コマンドコードフィールド１５３の場合、フローはブロック７２６へ進み、ＳＭＢｕｓブロック書き込み１０２のような周辺コンポーネントデータブロック読み出しデータパケットが、ＳＭＢｕｓマスタ／スレーブ状態機械１３７によって形成される。ＳＭＢｕｓマスタ／スレーブ状態機械１３７は、ＳＭＢｕｓブロック書き込み１０２の完了時、アイドル（ブロック７０２）に戻る。
【００６７】
デコードされたコマンドコードフィールドが、アドレスブロック読み出しデータパケット１０７（図５）が形成されるべきことを示す場合、ブロック７２０からフローは、ブロック７２８へ進む。ブロック７２８で、アドレスブロック読み出しデータパケット１０７（図５）が形成される。ＳＭＢｕｓマスタ／スレーブ状態機械１３７は、ＳＭＢｕｓブロック書き込み１０２の完了時、アイドル（ブロック７０２）に戻る。
【００６８】
図８は、本発明による制御プロセッサ２０と周辺コンポーネント６０〜６６との間でデータパケットを送信する方法８００の一実施形態のフロー図である。
ブロック８０２で第１のプロトコルでフォーマットされたコマンドデータパケット内に埋め込まれた情報がルータにおいて取得される。埋め込まれた情報は、アドレス、コマンドコード、バイトカウント及びアドレスオフセットのうち少なくとも１つを含む。この実施形態の一実装においては、ＳＭＢｕｓポートルータ１３０は、第１のプロトコルでフォーマットされたコマンドデータパケットを取得する。この実施形態の一実装においては、第１のプロトコルは、スペースワイヤプロトコル、ラピッドＩＯ又はＲＳ２３２データパケットである。
【００６９】
ブロック８０４で再フォーマットされたコマンドデータパケットは、第２のプロトコルに従って形成される。図３、４又は５にそれぞれ示すデータパケット１００、１０５又は１１０のように再フォーマットされたコマンドデータパケットは、前記取得した情報を含む。この実施形態の一実装においては、ＳＭＢｕｓポートルータ１３０は、第２のプロトコルに従って再フォーマットされたコマンドデータパケットを形成する。
【００７０】
ブロック８０６で再フォーマットされたコマンドデータパケットは、ＳＭＢｕｓポートルータ１３０のようなルータから転送される。
図９Ａ〜９Ｂは、本発明によるルータにおいて再フォーマットされたコマンドデータパケットを形成する方法９００の一実施形態のフロー図である。図９Aのブロック９０２〜９１０の後に図９Ｂのブロック９１２〜９２０が続く。ブロック９０２〜９１０は、周辺コンポーネントがマスタであるルータにおいて、再フォーマットされたコマンドデータパケットを形成する方法を説明する。ブロック９１２〜９２０は、制御プロセッサがマスタであるルータにおいて、再フォーマットされたコマンドデータパケットを形成する方法を説明する。方法９００のこの実装においては、第１のプロトコルは、スペースワイヤプロトコル、ラピッドＩＯ、ＲＳ２３２データパケットのうちの少なくとも１つであり、第２のプロトコルは、システム管理バスプロトコルである。
【００７１】
図９Ａのブロック９０２で示すように、アドレスは、第１のＳＭＢｕｓブロック書き込みとして構造化されたデータパケット内のシステム書き込みコマンド内で制御プロセッサへ転送される。この実施形態の一実装でＳＭＢｕｓポートルータ１３０は、第１のＳＭＢｕｓブロック書き込みとして構造化されたデータパケット１０１内のシステム書き込みコマンド内の制御プロセッサ２０へアドレスを転送する。
【００７２】
ブロック９０４でデータは、第２のＳＭＢｕｓブロック書き込みとして構造化されたデータパケット内のシステム書き込みコマンド内で制御プロセッサへ転送される。この実施形態の一実装においては、ＳＭＢｕｓポートルータ１３０は、第２のＳＭＢｕｓブロック書き込み１０２として構造化されたデータパケットを使用し、システム書き込みコマンド内で制御プロセッサ２０へデータを転送する。データパケット１００（図３）は、周辺コンポーネントがマスタである場合、ブロック９０２及び９０４の処理によって完了される。
【００７３】
ブロック９０６でアドレスは、ＳＭＢｕｓブロック書き込みとして構造化されたデータパケット内のシステム読み出しコマンド内で制御プロセッサへ転送される。この実施形態の一実装においては、ＳＭＢｕｓポートルータ１３０は、ＳＭＢｕｓブロック書き込み１０３として構造化されたデータパケットを使用し、システム読み出しコマンド内で制御プロセッサ２０へアドレスを転送する。
【００７４】
ブロック９０８でデータは、ＳＭＢｕｓブロック読み出しとして構造化されたデータパケット内のシステム読み出しコマンド内で制御プロセッサから転送される。この実施形態の一実装においては、ＳＭＢｕｓポートルータ１３０は、ＳＭＢｕｓブロック読み出し１０４として構造化されたデータパケットを使用し、システム読み出しコマンド内で制御プロセッサ２０からデータを転送する。データパケット１０５（図４）は、周辺コンポーネントがマスタである場合、ブロック９０６及び９０８の処理によって完了される。
【００７５】
図９Ｂのブロック９１０で示すように、制御プロセッサの前回のトランザクションでアクセスされたアドレス情報及びデータバイト数が、ＳＭＢｕｓブロック読み出しとして構造化されたデータパケット内で転送される。この実施形態の一実装においては、ＳＭＢｕｓポートルータ１３０は、制御プロセッサの前回のトランザクションでアクセスされたアドレス情報及びデータバイト数をＳＭＢｕｓブロック読み出し１０７として構造化されたデータパケット内で転送する。
【００７６】
ブロック９１２でアドレスは、第１のＳＭＢｕｓブロック書き込みとして構造化されたデータパケット内のシステム書き込みコマンド内で周辺コンポーネントへ転送される。この実施形態の一実装においては、ＳＭＢｕｓポートルータ１３０は、第１のＳＭＢｕｓブロック書き込みとして構造化されたデータパケット１０１内のシステム書き込みコマンド内で周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６へアドレスを転送する。
【００７７】
ブロック９１４でデータは、第２のＳＭＢｕｓブロック書き込みとして構造化されたデータパケット内のシステム書き込みコマンド内で周辺コンポーネントへ転送される。この実施形態の一実装においては、ＳＭＢｕｓポートルータ１３０は、第２のＳＭＢｕｓブロック書き込み１０２として構造化されたデータパケット内のシステム書き込みコマンド内で周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６へデータを転送する。データパケット１００（図３）は、周辺コンポーネントがスレーブである場合において、ブロック９１０及び９１２の処理によって完了される。
【００７８】
ブロック９１６でアドレスは、ＳＭＢｕｓブロック書き込みとして構造化されたデータパケット内のシステム読み出しコマンド内で周辺コンポーネントへ転送される。この実施形態の一実装においては、ＳＭＢｕｓポートルータ１３０は、ＳＭＢｕｓブロック書き込み１０３として構造化されたデータパケット内のシステム読み出しコマンド内で周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６へアドレスを転送する。
【００７９】
ブロック９１８でデータは、ＳＭＢｕｓブロック読み出しとして構造化されたデータパケット内のシステム読み出しコマンド内で周辺コンポーネントから転送される。この実施形態の一実装においては、ＳＭＢｕｓポートルータ１３０は、ＳＭＢｕｓブロック読み出し１０４として構造化されたデータパケットを使用し、システム読み出しコマンド内で周辺コンポーネント６０、６１、６２、６３、６４、６５又は６６からデータを転送する。データパケット１０５（図４）は、周辺コンポーネントがスレーブである場合において、ブロック９１６及び９１８の処理によって完了される。
【００８０】
ブロック９２０で周辺コンポーネントの前回のトランザクション内でアクセスされたアドレス情報及びデータバイト数が、ＳＭＢｕｓブロック読み出しとして構造化されたデータパケット内で転送される。この実施形態の一実装においては、ＳＭＢｕｓポートルータ１３０は、ＳＭＢｕｓブロック読み出し１０７として構造化されたデータパケット内で周辺コンポーネント６０の前回のトランザクションでアクセスされたアドレス情報及びデータバイト数を転送する。この実施形態の別の実装においては、ＳＭＢｕｓポートルータ１３０は、ＳＭＢｕｓブロック読み出し１０７として構造化されたデータパケット内で周辺コンポーネント６０のような周辺コンポーネントの内部ロケーション７０のような内部ロケーションの、前回のトランザクションでアクセスされたアドレス情報及びデータバイト数を転送する。
【００８１】
図１０は、本発明による周辺コンポーネントにおいて再フォーマットされたデータパケットを受信する方法１０００の一実施形態のフロー図である。
ブロック１００２でデータパケットは、アドレスブロックの第１の部分によってアドレス指定されたルータにおいて受信される。この実施形態の一実装においては、ＳＭＢｕｓポートルータ１３０は、スレーブアドレスフィールド１５０の第１の部分によってアドレス指定されたデータパケットを受信する。
【００８２】
ブロック１００４でデータパケット内のアドレスブロックの第２の部分が、ルータにおいてデコードされる。この実施形態の一実装においては、ＳＭＢｕｓポートルータ１３０は、データパケット１０１内のスレーブアドレスフィールド１５０の第２の部分をデコードする。この実施形態の一実装においては、アドレスブロックの第２の部分は、スレーブアドレスフィールド１５０内の最後の３ビットである。
【００８３】
ブロック１００６でルータは、データパケットが前記ルータにアドレス指定されていることを確認する。確認はブロック１００４の間にデコードされたアドレスブロックの第２の部分を基にする。
【００８４】
ブロック１００８でルータは、データパケットにアクセスされている制御プロセッサのアドレスを決定するために、アドレスオフセットバイトをデコードする。この実施形態の一実装においては、ＳＭＢｕｓポートルータ１３０は、データパケットにアクセスされている制御プロセッサのアドレスを決定するために、少なくとも１つのアドレスオフセットブロック１４５〜１４７をデコードする。
【００８５】
図１１は、本発明によるスレーブにおいて再フォーマットされたデータパケットを受信する方法１１００の一実施形態のフロー図である。
ブロック１１０２でデータパケットが、アドレスブロックの第１の部分によってアドレス指定された制御プロセッサにおいて受信される。この実施形態の一実装においては、制御プロセッサ２０は、ＳＭＢｕｓブロック書き込み１０１（図３）のスレーブアドレスフィールド１５０のような、アドレスブロックの第１の部分によってアドレス指定されたデータパケット１００のようなデータパケットを受信する。
【００８６】
ブロック１１０４でデータパケット内のアドレスブロックの第２の部分が、制御プロセッサにおいてデコードされる。この実施形態の一実装においては、制御プロセッサ２０は、ＳＭＢｕｓブロック書き込み１０１（図３）のスレーブアドレスフィールド１５０のようなアドレスブロックの第２の部分をデコードする。
【００８７】
ブロック１１０６で制御プロセッサは、データパケットが制御プロセッサへアドレス指定されていることを確認する。この実施形態の一実装においては、制御プロセッサ２０は、ＳＭＢｕｓブロック書込み１０１が制御プロセッサ２０へアドレス指定されていることを確認する。
【００８８】
ブロック１１０８でデータパケットは、アドレスブロックの第１の部分によってアドレス指定された周辺コンポーネントにおいて受信される。この実施形態の一実装においては、周辺コンポーネント６３のような周辺コンポーネントは、周辺コンポーネント６３がアドレスブロックの第１の部分によってアドレス指定されているのでデータパケット１００を受信する。
【００８９】
ブロック１１１０でデータパケット内のアドレスブロックの第２の部分は、周辺コンポーネントにおいてデコードされる。この実施形態の一実装においては、周辺コンポーネント６３のような周辺コンポーネントは、データパケット１００内のアドレスブロックの第２の部分をデコードする。
【００９０】
ブロック１１１２で周辺コンポーネントは、データパケットがそのデータパケットを受信している周辺コンポーネントへアドレス指定されることを確認する。この実施形態の一実装においては、周辺コンポーネント６３は、データパケット１００が周辺コンポーネント６３へアドレス指定されていることを確認する。
【００９１】
ブロック１１１４で、周辺コンポーネントは、データパケットによってアクセスされる周辺コンポーネントの少なくとも１つの内部ロケーションを決定するために、アドレスオフセットバイトをデコードする。この実施形態の一実装においては、周辺コンポーネント６３は、データパケット１００によってアクセスされる周辺コンポーネント６３の少なくとも１つの内部ロケーション８０〜８２を決定するために、アドレスオフセットバイト１４５〜１４７をデコードする。
【００９２】
図１２は、本発明によるアドレス情報を転送する方法１２００の一実施形態のフロー図である。方法１２００でＳＭＢｕｓブロック読み出しは、問い合わせデータパケットであり、そこでスレーブの前回のトランザクションでアクセスされたアドレス情報及びデータバイト数が、ＳＭＢｕｓブロック読み出しとして構造化されたデータパケット内で転送される。
【００９３】
ブロック１２０２で最後のトランザクション内で使用された制御プロセッサのアドレスが、ＳＭＢｕｓブロック読み出しの少なくとも１つのアドレスオフセットフィールド内に埋め込まれる。この実施形態の一実装においては、最後のトランザクションで使用された制御プロセッサ２０のアドレスは、ＳＭＢｕｓブロック読み出し１０７（図５）の少なくとも１つのアドレスオフセットフィールド２４５〜２４７内に埋め込まれる。
【００９４】
ブロック１２０４で最後のトランザクションで制御プロセッサによって使用されたデータバイト数が、ＳＭＢｕｓブロック読み出しのブロック長フィールド内に埋め込まれる。この実施形態の一実装においては、最後のトランザクションで制御プロセッサ２０によって使用されたデータバイト数は、ＳＭＢｕｓブロック読み出し１０７（図５）のブロック長フィールド２４８内に埋め込まれる。ブロック１２０２及び１２０４は、周辺コンポーネントがマスタであって制御プロセッサの問い合わせを開始するとき、実現される。
【００９５】
ブロック１２０６で最後のトランザクションにおいて使用された周辺コンポーネントの内部ロケーションのアドレスは、ＳＭＢｕｓブロック読み出しの少なくとも１つのアドレスオフセットフィールド内に埋め込まれる。この実施形態の一実装においては、最後のトランザクションで使用された周辺コンポーネント６３の内部ロケーション８０のアドレスは、ＳＭＢｕｓブロック読み出し１０７の少なくとも１つのアドレスオフセットフィールド２４５〜２４８内に埋め込まれる。
【００９６】
ブロック１２０８で最後のトランザクションで周辺コンポーネントによって使用されたデータバイト数は、ＳＭＢｕｓブロック読み出しのブロック長フィールド内に埋め込まれる。この実施例の一実装においては、最後のトランザクション内で周辺コンポーネント６３によって使用されたデータバイト数の埋め込みは、ＳＭＢｕｓブロック読み出し１０７のブロック長フィールド２４８内に埋め込まれる。ブロック１２０６及び１２０８は、制御プロセッサがマスタであって周辺コンポーネントの問い合わせを開始するとき、実現される。
【００９７】
こうして、システム１０（図１）及びシステム１１（図２）は、周辺コンポーネントにおける第１のシステム管理バスブロック書込み内の７ビットを上限とする長さを有するアドレスオフセットフィールド内に制御プロセッサのアドレスを埋め込むことと、システムトランザクションを完了するために周辺コンポーネントと制御プロセッサとの間でデータが送信されるように、第１のシステム管理バスブロック書込み及び第２のシステム管理バスブロック書込みを伴うシステムトランザクションを完了することと、データワードペイロードが制御プロセッサへ書き込まれるように、第２のシステム管理バスブロック書込み内の４データバイトフィールドから３２データバイトフィールドの範囲でデータワードペイロードを埋め込むことと、及び第１のシステム管理バスブロック書込みのブロック長フィールド内のデータと第２のシステム管理バスブロック書込みのバイトカウントフィールド内のデータとを比較することによってプロトコルをチェックすること、とからなる方法を実行するための計算機実行可能命令、例えば、ソフトウェア、ファームウェア又は別のプログラムコードを有する計算機可読メディアを使用できる。前記データワードペイロードは、３２バイトまでの長さを有する。この実装においては、マスタ（周辺コンポーネント）が、システム書き込みコマンドを開始する。
【００９８】
この実施形態の別の実装においては、システム１０（図１）及びシステム１１（図２）は、システム管理バスブロック書込み内の７ビットを上限とする長さを有するアドレスオフセットフィールド内に制御プロセッサのアドレスを埋め込むことと、システムトランザクションを完了するために、周辺コンポーネントと制御プロセッサとの間でデータが送信されるようにシステム管理バスブロック書込み及びシステム管理バスブロック読み出しを伴うシステムトランザクションを完了することと、システム管理バスブロック読み出しのコマンドコードフィールドに先行するスレーブアドレスフィールド内及びコマンドコードフィールドの後のスレーブアドレスフィールド内に制御プロセッサのアドレスを埋め込むことと、データワードペイロードがシステム管理バスブロック読み出し内の第２のアドレスに応答して制御プロセッサから送信されるように、システム管理バスブロック読み出し内の４データバイトフィールドから３２データバイトフィールドの範囲でデータワードペイロードを埋め込むことと、及び第１のシステム管理バスブロック書込みのブロック長フィールド内のデータと第２のシステム管理バスブロック書込みのバイトカウントフィールド内のデータとを比較することによってプロトコルをチェックすること、とからなる方法を実行するための命令、例えば、ソフトウェア、ファームウェア又は別のプログラムコードを使用できる。この実装においては、マスタ（周辺コンポーネント）が、システム読み出しコマンドを開始する。
【００９９】
この実施形態のさらに別の実装においては、システム１０（図１）及びシステム１１（図２）は、第１のシステム管理バスブロック書込み内の７ビットを上限とする長さを有するアドレスオフセットフィールド内に周辺コンポーネントの内部ロケーションのアドレスを埋め込むことと、システムトランザクションを完了させるために制御プロセッサと周辺コンポーネントとの間でデータが送信されるようにシステム管理バスブロック書込み及び第２のシステム管理バスブロック書込みを伴うシステムトランザクションを完了することと、データワードペイロードが周辺コンポーネントへ書き込まれるように、第２のシステム管理バスブロック書込み内の４データバイトフィールドから３２データバイトフィールドの範囲でデータワードペイロードを埋め込むことと、及び第１のシステム管理バスブロック書込み内のブロック長フィールド内のデータと第２のシステム管理バスブロック書込み内のバイトカウントフィールド内のデータとを比較することによってプロトコルをチェックすること、とからなる方法を実行する命令、例えば、ソフトウェア、ファームウェア又は別のプログラムコードを使用できる。この実装においては、マスタ（周辺コンポーネント）が、システム書き込みコマンドを開始する。
【０１００】
この実施形態のさらに別の実装においては、システム１０（図１）及びシステム１１（図２）は、システム管理バスブロック書込み内の７ビットを上限とする長さを有するアドレスオフセットフィールド内に周辺コンポーネントの内部ロケーションのアドレスを埋め込むことと、システムトランザクションを完了させるために、制御プロセッサと周辺コンポーネントとの間でデータが送信されるようにシステム管理バスブロック書込み及びシステム管理バスブロック読み出しを伴うシステムトランザクションを完了することと、システム管理バスブロック読み出しのコマンドコードフィールドに先行するスレーブアドレスフィールド内及びコマンドコードフィールドの後のスレーブアドレスフィールド内に周辺コンポーネントのアドレスを埋め込むことと、データワードペイロードがシステム管理バスブロック読み出し内の第２のアドレスに応答して、周辺コンポーネントから送信されるように、システム管理バスブロック読み出し内の４データバイトフィールドから３２データバイトフィールドの範囲でデータワードペイロードを埋め込むことと、及び第１のシステム管理バスブロック書込み内のブロック長フィールド内のデータと第２のシステム管理バスブロック書込み内のバイトカウントフィールド内のデータとを比較することによってプロトコルをチェックすること、とからなる方法を実行する命令、例えば、ソフトウェア、ファームウェア又は別のプログラムコードを使用できる。この実装においては、マスタ（周辺コンポーネント）が、システム読み出しコマンドを開始する。
【０１０１】
スイッチにおいてデータパケットを形成するように１１／４６９，２０７出願の中で説明されたプロトコルは、普通の当業者にとって理解されるように本発明のルータによるデータパケットの形成へと拡張できる。
【図面の簡単な説明】
【０１０２】
【図１】図１は、本発明によるルータを実現するためのシステムの一実施形態のブロック図である。
【図２】図２は、本発明によるルータを実現するためのシステムの一実施形態のブロック図である。
【図３】図３は、本発明によるルータの中で転送されるデータパケットの一実施形態のブロック図である。
【図４】図４は、本発明によるルータの中で転送されるデータパケットの一実施形態のブロック図である。
【図５】図５は、本発明によるルータの中で転送されるデータパケットの一実施形態のブロック図である。
【図６】図６は、本発明によるシステム管理バスインタフェースの一実施形態のブロック図である。
【図７】図７は、本発明によるシステム管理バス状態機械の一実施形態のフロー図である。
【図８】図８は、本発明による制御プロセッサと複数の周辺コンポーネントとの間でデータパケットを送信する一実施形態のフロー図である。
【図９Ａ】図９Ａは、本発明によるルータにおいて再フォーマットされたコマンドデータパケットを形成する方法の一実施形態のフロー図である。
【図９Ｂ】図９Ｂは、本発明によるルータにおいて再フォーマットされたコマンドデータパケットを形成する方法の一実施形態のフロー図である。
【図１０】図１０は、本発明による周辺コンポーネントにおいて再フォーマットされたデータパケットを受信する方法の一実施形態のフロー図である。
【図１１】図１１は、本発明による周辺コンポーネントにおいて再フォーマットされたデータパケットを受信する方法の一実施形態のフロー図である。
【図１２】図１２は、本発明によるアドレス情報を転送する方法の一実施形態のフロー図である。
【図１】
2008118630.tif 000005
【図２】
2008118630.tif 000006
【図３】
2008118630.tif 000007
【図４】
2008118630.tif 000008
【図５】
2008118630.tif 000009
【図６】
2008118630.tif 000010
【図７】
2008118630.tif 000011
【図８】
2008118630.tif 000012
【図９Ａ】
2008118630.tif 000013
【図９Ｂ】
2008118630.tif 000014
【図１０】
2008118630.tif 000015
【図１１】
2008118630.tif 000016
【図１２】
2008118630.tif 000017
【外国語明細書】
2008118630000001.pdf