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