(57)【要約】      （修正有）【課題】ホストコンピューターのデバイスのレジスタアクセスによるバスレイテンシ、エリアおよび電力の消費を低減する。【解決手段】システムにおいて、デバイスは、ホストコンピューターからのアクセスモード識別を含むブロードキャストコマンドを受信するインターフェイスと連結された復号回路とを有する。復号回路は、受信したアクセスモード指示に少なくとも一部において基づき、ブロードキャストコマンドが、１または複数のデバイスの１または複数の予め規定された設定またはコントロールにアクセスするように指示されるか又は１または複数のデバイスの１または複数の内部レジスタにアクセスするよう指示され、判定に応じて設定またはコントロールレジスタへのアクセス又は１または複数の内部レジスタへアクセスする。デバイスは、ホストコンピューターに連結されるメモリモジュール上に配置される。【選択図】図１
2020135861.tif 000002
【特許請求の範囲】
【請求項１】
デバイスであって、
ホストコンピューターからブロードキャストコマンドを受信するための入力インターフェイスを備え、前記ブロードキャストコマンドは、アクセスモード指示と、
前記入力インターフェイスと連結される復号回路であって、
受信した前記アクセスモード指示に少なくとも部分的に基づいて、前記ブロードキャストコマンドが、１または複数のデバイスの１または複数の予め規定された設定またはコントロールレジスタにアクセスするように指示されること、または１または複数のデバイスの１または複数の内部レジスタにアクセスするよう指示されることを判定し、
前記判定に応じて、前記設定またはコントロールレジスタへの前記アクセスまたは前記１または複数の内部レジスタへのアクセスを実装する復号回路と
を有し、
前記デバイスは、前記ホストコンピューターに連結されるメモリモジュール上に配置される、デバイス。
【請求項２】
前記ブロードキャストコマンドが、メモリモジュールのゲートウェイにより最初に受信され、次に前記メモリモジュール内でローカルバス上の前記ゲートウェイから前記入力インターフェイスにより受信される、請求項１に記載のデバイス。
【請求項３】
コマンドバスおよび前記ローカルバスは半導体技術協会のＸＭ仕様（ＸＭ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）に準拠している、請求項２に記載のデバイス。
【請求項４】
前記デバイスの１または複数の予め規定された前記設定またはコントロールレジスタは前記ＸＭ仕様により規定されたレジスタである、請求項３に記載のデバイス。
【請求項５】
前記メモリモジュールはデュアルインラインメモリモジュール（ＤＩＭＭ）である、請求項１に記載のデバイス。
【請求項６】
前記デバイスは、電圧レギュレータ、温度センサ、フラッシュメモリ記憶タイミング情報、シリアルプレゼンスディテクト（ＳＰＤ）デバイス、またはレジスタクロックドライバ（ＲＣＤ）のいずれか１つである、請求項１に記載のデバイス。
【請求項７】
前記デバイスの１または複数の内部レジスタは、ＸＭ仕様により規定された、予め規定されたオフセットでアクセス可能な、請求項１に記載のデバイス。
【請求項８】
前記ブロードキャストコマンドはさらに、１または複数のデバイスアドレスと、デバイスアドレスマスキングデータとを有し、前記復号回路はさらに、
前記デバイスアドレスマスキングデータにより指示される前記１または複数のデバイスアドレスの一部を無視し、
前記１または複数のデバイスアドレスの残りの部分が自己のアドレスの対応する部分と一致するか否かを判定する、
請求項１に記載のデバイス。
【請求項９】
前記ブロードキャストコマンドに含まれる前記１または複数のデバイスアドレスは７ビット長であり、前記デバイスアドレスマスキングデータは、前記１または複数のデバイスアドレスの１つから７つの最下位ビット（最下位ビット＝ＬＳＢ）の間は無視されることを指示する、請求項８に記載のデバイス。
【請求項１０】
前記ブロードキャストコマンドはさらに、指示されるアクセスを開始する前記デバイスの、初期の予め規定された設定またはコントロールレジスタ、または内部レジスタのロケーションを指定するオフセットを有する、請求項１から９のいずれか１項に記載のデバイス。
【請求項１１】
１セットの命令を備えるプログラムであって、前記１セットの命令は、メモリモジュールに設けられるデバイスにより実行される場合に、前記デバイスに、
ホストコンピューターからブロードキャストコマンドを受信することであって、前記ブロードキャストコマンドは、オフセットで開始する１または複数のデバイスの１または複数のレジスタへの設定またはコントロールデータの書き込みを行うように指示され、デバイスアドレスおよびデバイスアドレスマスキングデータを含むことと、
前記デバイスアドレスマスキングデータを適用して前記デバイスアドレスの一部をマスキングすることと、
前記デバイスアドレスのマスキングされていない部分が前記デバイスのアドレスの対応する部分と一致するかどうかを判定することと、
前記判定に応答して、前記オフセットで開始する前記デバイスの前記１または複数のレジスタに前記データを書き込むことと
を実行させる、プログラム。
【請求項１２】
前記ブロードキャストコマンドが、前記ホストコンピューターを前記メモリモジュールへ接続するコマンドバス上でデバイスにより受信されるとともに、前記コマンドバスはＸＭ仕様に準拠している、請求項１１に記載のプログラム。
【請求項１３】
前記ブロードキャストコマンドがさらに、アクセスモードのインジケータを含み、実行される場合は、前記デバイスに前記アクセスモードのインジケータを復号させて前記アクセスモードが前記デバイスの１または複数の予め規定された設定またはコントロールレジスタに対するものであることを判定させる命令をさらに備える、請求項１１に記載のプログラム。
【請求項１４】
前記１または複数の予め規定された設定またはコントロールレジスタがＸＭ仕様で規定されており、前記データは指定される前記１または複数の予め規定されたコントロールレジスタへ書き込まれるコントロールデータを含む、請求項１３に記載のプログラム。
【請求項１５】
前記コントロールデータは複数の２バイトペアとなっており、前記複数の２バイトペアは、コントロールデータバイトと、対応するマスクバイトとを含み、前記対応するマスクバイトは、前記コントロールデータバイトのどのビットが前記デバイスの予め規定されたコントロールレジスタへ書き込まれるべきかと、前記コントロールデータバイトのどのビットが無視されるべきかとを指示する、請求項１４に記載のプログラム。
【請求項１６】
前記デバイスアドレスマスキングデータは、前記データが前記コマンドバスを介して前記ホストコンピューターへ接続される複数のメモリモジュールにわたる同じタイプのデバイスへ書き込まれるように構成される、請求項１２から１５のいずれか１項に記載のプログラム。
【請求項１７】
ＤＩＭＭにおいてブロードキャストコマンドをホストコンピューターから受信する段階であって、前記ブロードキャストコマンドは、アクセスモードのインジケータとレジスタオフセットの値とを含む、受信する段階と、
前記アクセスモードのインジケータを復号して、プロトコルレジスタのアクセスモードが指示されたことを判定する段階と、
前記ブロードキャストコマンドが、少なくとも一部においてアクセスモードのインジケータとレジスタオフセットの値とに基づいて、前記レジスタオフセットにより指示される前記プロトコルレジスタへＤＩＭＭ識別子（ＤＩＭＭ＿ＩＤ）値を書き込むように受信デバイスに対して指示するＤＩＭＭ＿ＩＤ伝搬コマンドであることを識別する段階と、
前記識別に応答して、前記ブロードキャストコマンドを修正して、ＤＩＭＭ＿ＩＤの一部をローカルＤＩＭＭ識別子と置き換える段階と、
修正された前記ブロードキャストコマンドをローカルバスにわたり前記ＤＩＭＭ上の全てのデバイスへ伝搬する段階と
を備える、方法。
【請求項１８】
前記ＤＩＭＭが挿入されるスロットから前記ローカルＤＩＭＭ識別子を取得する段階をさらに備える、請求項１７に記載の方法。
【請求項１９】
前記ＤＩＭＭは、前記ホストコンピューターに接続されるＮ個のＤＩＭＭのうちのいずれか１つであって、Ｋを整数として、Ｎ＝２Ｋであり、
前記ローカルＤＩＭＭ識別子はＫ個のビットを含み、前記ブロードキャストコマンドを修正する段階はさらに、前記ローカルＤＩＭＭ識別子を有するＤＩＭＭ＿ＩＤのＫ個の最下位ビット（ＬＳＢ）を置き換える段階を含む、
請求項１７に記載の方法。
【請求項２０】
前記方法は、前記ＤＩＭＭのゲートウェイあるいはその一部により実行され、また前記ローカルバスはＸＭ仕様に準拠している、請求項１７から１９のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算、特にＸＭバス上に接続されるデバイスへのメモリモジュールレジスタおよびブロードキャストトランザクションあるいはマルチキャストトランザクションに関する機器、コンピューター可読媒体および方法の技術分野に関する。
【背景技術】
【０００２】
半導体技術協会（ＪＥＤＥＣ）は現在、たとえばデュアルインラインメモリモジュール（ＤＩＭＭ）などのメモリモジュールに使われるＸＭ仕様（ＸＭＳ）を作成中である。ＸＭＳは、たとえばＩ２Ｃ／ＳＭＢＵＳインターフェイスなどのＤＩＭＭのシリアルプレゼンスディテクト（ＳＰＤ）モジュールと通信するのに使われる既存のシリアル入力／出力インターフェイスに代わるものとしての１２．５Ｍｂｐｓインターフェイス（ＸＭインターフェイス）を説明するものである。提案されるＸＭインターフェイスは、その帯域が高くエンド電圧レール（１ボルト）が低減されているため、基本的にＤＤＲ５  ＤＩＭＭ上、および特にサーバー上で使われることが期待される。
【０００３】
ＸＭＳは、たとえばＤＩＭＭ内のデバイスなどの、準拠した接続されるデバイスにより実装されるべきレジスタおよびコントロールフラグビットを規定する。一般的に、ホストコンピューターまたはプロセッサは、デバイス挙動をコンフィギュレーション、コントロールおよび修正するために接続されるさまざまなデバイスにわたり同一オフセットで繰り返しレジスタにアクセスする必要がある。現在、ホストコンピューターはこれらのレジスタにアクセスして、バスレイテンシ、エリアおよび電力をかなり消費する。さらに、現在サポートされているブロードキャスト転送は、受信デバイスの１つのわずか１ビットでも違っていると、全てのデバイス用の少数のコントロールフラグを組み合わせることがあり、ホストのブロードキャストコマンドが使用不能となる。
【図面の簡単な説明】
【０００４】
【図１】さまざまな実施例にかかる、実施例としてのシステムを示す図である。
【０００５】
【図２】さまざまな実施例にかかる、実施例としてのアクセスフォーマットを示す図である。
【０００６】
【図３Ａ】さまざまな実施例にかかる、ＸＭプロトコルレジスタへのフルブロードキャストに適合された、図２の実施例としてのアクセスフォーマットを示す図である。
【０００７】
【図３Ｂ】さまざまな実施例にかかる、ＸＭプロトコルレジスタへの選択的ブロードキャストに適合された、図２の実施例としてのアクセスフォーマットを示す図である。
【０００８】
【図４】さまざまな実施例にかかる、ＸＭプロトコルレジスタへのグループアドレス指定のための実施例としてのフォーマットを示す図である。
【０００９】
【図５】さまざまな実施例にかかる、デバイスレジスタへのフルブロードキャストのための実施例としてのフォーマットを示す図である。
【００１０】
【図６】さまざまな実施例にかかる、デバイスレジスタへの選択的ブロードキャスト（マルチキャスト）のための実施例としてのフォーマットを示す図である。
【００１１】
【図７】さまざまな実施例にかかる、デバイスレジスタへのアドレス指定のための実施例としてのフォーマットを示す図である。
【００１２】
【図８】さまざまな実施例にかかる、コマンドにおいて転送される各ペイロードバイトのマスキングに使用するＸＭプロトコルレジスタへのフルブロードキャストのための別の実施例としての拡張フォーマットを示す図である。
【００１３】
【図９】さまざまな実施例にかかる、ＸＭレジスタの読み取りのための実施例としてのプロセスを示す図である。
【００１４】
【図１０】さまざまな実施例にかかる、ホスト識別子（ＨＩＤ）割り当てトランザクションのための実施例としてのフォーマットを示す図である。
【００１５】
【図１１】さまざまな実施例にかかる、ホストコンピューターフルブロードキャストコマンドを介してＤＩＭＭ上で提供されるデバイスのＤＩＭＭ＿ＩＤデバイスレジスタへのフルブロードキャストのための実施例としてのフォーマットを示す図である。
【００１６】
【図１２】さまざまな実施例にかかる、メモリモジュールのハブによるメモリモジュール識別子の取得の段階、ホストからのブロードキャストＤＩＭＭ＿ＩＤ伝搬コマンドの受信の段階、コマンドのＤＩＭＭ＿ＩＤの修正の段階、およびメモリモジュール上の全てのデバイスへのコマンドの伝搬の段階の、実施例としてのプロセスの動作フローの概要を示す図である。
【００１７】
【図１３】さまざまな実施例にかかる、本開示内容の実行に適したコンピューターデバイスの実施例としてのブロックダイヤグラムを示す図である。
【００１８】
【図１４】さまざまな実施にかかる、図２から図１２のプロセスの側面を実行するようにコンフィギュレーションされた命令を有する、実施例としてのコンピューター可読記憶媒体を示す図である。
【発明を実施するための形態】
【００１９】
実施例においては、デバイスは、ホストコンピューターからブロードキャストコマンドを受信する入力インターフェイスと、アクセスモード指示を含むブロードキャストコマンドと、インターフェイスと連結された複合回路とを有する。復号回路は、受信したアクセスモード指示に少なくとも一部において基づき、ブロードキャストコマンドが、１または複数のデバイスの１または複数の予め規定された設定またはコントロールレジスタにアクセスするように指示されるか、または１または複数のデバイスの１または複数の内部レジスタにアクセスするよう指示され、判定に応じて設定またはコントロールレジスタへのアクセス、または１または複数の内部レジスタへのアクセスを実装する。実施例においては、デバイスはホストコンピューターに連結されるメモリモジュール上に配される。
【００２０】
実施例においては、１または複数の非一時的なコンピューター可読記憶媒体は、メモリモジュールに設けられるデバイスにより実行されるときに、ホストコンピューターからのブロードキャストコマンドをデバイスに受信させるようにさせる１セットの命令を含む。実施例においては、ブロードキャストコマンドは、オフセットで開始する１または複数のデバイスの１または複数のレジスタへ設定またはコントロールデータを書き込むよう指示され、デバイスアドレスとデバイスアドレスマスキングデータを含む。実行時、命令はさらに、デバイスがデバイスアドレスマスキングデータを適用して、デバイスアドレスの一部をマスキングするとともにデバイスアドレスのマスキングされていない部分がデバイスのアドレスの対応する部分と一致するかを判定させ、判定に応答して、オフセットで開始するデバイスの１または複数のレジスタへデータを書き込む。
【００２１】
実施例においては、方法は、ＤＩＭＭにおいて、ブロードキャストコマンドがアクセスモードのインジケータとレジスタオフセット値とを含むブロードキャストコマンドをホストコンピューターから受信する段階と、アクセスモードのインジケータを復号して、プロトコルレジスタのアクセスモードが指示されたことを判定する段階を含む。方法はさらに、コマンドが、少なくとも一部においてアクセスモードのインジケータとレジスタオフセット値とに基づいて、レジスタオフセットにより指示されるプロトコルレジスタへＤＩＭＭ識別子（ＤＩＭＭ＿ＩＤ）値を書き込むように受信デバイスに対して指示するＤＩＭＭ＿ＩＤ伝搬コマンドであることを識別する段階と、識別に応答して、ブロードキャストコマンドを修正して、ＤＩＭＭ＿ＩＤの一部をローカルＤＩＭＭ識別子と置き換える段階と、修正されたブロードキャストコマンドをローカルバスにわたりＤＩＭＭ上の全てのデバイスへ伝搬する段階とを含む。
【００２２】
以下の説明では、当業者がその作業の内容を他の当業者に伝えるために当業者により共通して採用される用語を用いて、実装の実施例のさまざまな態様が記載される。しかしながら、本開示の実施例は、記載される態様のいくつかについてのみ実施され得ることは当業者にとっては明白であろう。説明を目的として、特定の番号、素材およびコンフィギュレーションは、実装の実施例の全体的な理解を提供するために記載されている。しかしながら、本開示の実施例は特定の詳細がなくとも実施され得ることは当業者にとって明白であろう。他の例においては、周知の特徴は、実装の実施例がわかりにくくならないよう、省略または簡略化されている。
【００２３】
以下の詳細な説明では、本明細書の一部を構成する添付の図面を参照しながら説明がなされるが、類似の符号は全体を通して類似の部品を指し示すものとし、本開示の主題事項を実施できるように実施例を図解する形で示される。他の実施例も利用され得るものであって構造またはロジックの変更は本開示の範囲から逸脱しない範囲においてなされ得るものであることは理解されるべきである。それゆえ、以下の詳細な説明は、範囲を狭める意味に解釈されるべきものではなく、実施例の範囲は本願の請求項およびその同等物により定義されるものである。
【００２４】
本開示の目的から、「Ａおよび／またはＢ」というフレーズは、（Ａ）、（Ｂ）、（Ａ）または（Ｂ）、または（ＡおよびＢ）を意味してよい。本開示の目的から、「Ａ、Ｂ、および／またはＣ」というフレーズは、（Ａ）、（Ｂ）、（Ｃ）、（ＡおよびＢ）、（ＡおよびＣ）、（ＢおよびＣ）、または（Ａ、ＢおよびＣ）を意味してよい。
【００２５】
説明においては頂／底、内／外、上／下、のような、俯瞰基準の説明が使用されることがある。そのような説明は単に議論を円滑に進めるためにのみ使用されるのであって、本明細書で説明される実施例の適用をいかなる特定の方向にも制限することを意図するものではない。
【００２６】
説明においては「ある実施例において」または「実施例において」というフレーズが使用されることがあるが、これらはそれぞれ、１または複数の同一または別の実施例について言及するものであってよい。さらに、本開示の実施例に関して使用される、「備える」、「含む」、「有する」等の語句は同義である。
【００２７】
「と連結される、」およびその派生表現的な語句が、本明細書において使用されてよい。「連結される」とは、以下の１または複数を意味してよい。「連結される」とは、２またはそれ以上の要素が直接的物理的接続または電気的接続状態にあることを意味してよい。しかし、「連結される」は間接的に接続されるが互いに協働または相互作用する２またはそれ以上の要素を意味することもあり、また、１または複数の他の要素が、互いに連結されるべき要素間で連結されるまたは接続されることを意味してよい。「直接連結される」という語は、２またはそれ以上の要素が直接接続させられることを意味してよい。
【００２８】
本明細書の中で使用される、「回路」という語は、説明される機能を提供する１または複数のソフトウェアプログラムまたはファームウェアプログラム、組み合わせ論理回路および／またはその他の適するコンポーネントを実行する、特定用途向け半導体集積回路（ＡＳＩＣ）、電子回路、プロセッサ（共有、専用、またはグループ）および／またはメモリ（共有、専用、またはグループ）を指す、またはその一部を成す、または含むことを意味してよい。
【００２９】
請求項を含めて本明細書の中で使用される、「チップ」という語は、コンピューター上の実際の集積回路（ＩＣ）を意味してよい。本文書の文脈におけるチップは、それゆえ、シングルコアまたはマルチコア技術であり得る実行ユニットを指してよい。
【００３０】
請求項を含め、本明細書の中で使用される、「プロセッサ」という語は、実際のチップ上の論理実行ユニットを指してよい。マルチコアチップはいくつかのコアを有してよい。請求項を含めて本明細書の中で使用される、「コア」という語は、Ｌ１（最下位）キャッシュおよび機能ユニットを含む論理実行ユニットを指してよい。コアは、プログラムまたはスレッドを独立して実行できるものとして理解される。
【００３１】
上述のとおり、ＸＭＳは、準拠した接続されるデバイスが実装すべきレジスタと、コントロールフラグビットとを規定する。現在、デバイス挙動のコンフィギュレーション、コントロールおよび修正を行うには、デバイスにわたり同一のオフセットを有するレジスタに、ホストが繰り返しアクセスしなければならない。たとえば、各電圧レギュレータの同じレジスタへの書き込みを必要とするシステムメモリにおける１６のＤＩＭＭのそれぞれの上での電圧レギュレータをホストがコンフィギュレーションしようとする場合は、それぞれの電圧レギュレータにつき別々のアクセスが生じる必要がある。そこで、負荷の重い、約１２０個のデバイスへ接続することがあるバス上でのコンフィギュレーション時間を節約するため、および起動時間も節約するため、実施例においては、規定されるビットを全てのデバイスにわたり更新またはコンフィギュレーションするブロードキャストケーパビリティが促進される。実施例においては、ブロードキャストケーパビリティは、とりわけ、以下に詳細が説明される追加ヘッダを利用する。
【００３２】
実施例においては、そのようにして、たとえばＤＩＭＭなどのメモリデバイスのアクセスの読み取りおよび書き取りのコンフィギュレーションをホストが連鎖付けることができ、さらに複数のアクセスにわたる追加ヘッダのコストを償却することができる。さらに、デバイスがそれぞれのレジスタアクセスの後にレジスタオフセットを自動インクリメントする場合は、同じデバイス上のシーケンシャルレジスタは追加のコストを生じさせない。実施例においては、デバイスコントロール情報のブロードキャストは、グループアドレス指定を容易化するためにコントロールビットへのマスクを使用して効率向上が図られている。実施例においては、メッセージフォーマットの例は一般的なものであり、デバイス上のいずれのレジスタに対してのブロードキャストにも使用されてよい。
【００３３】
さまざまな実施例において、現在のＸＭＳによりサポートされる機能は、ＸＭＳコマンドバスにわたるブロードキャストメッセージングおよびマルチキャストメッセージングを容易化するために大幅に改良され得る。現在のＸＭＳに対するこれらの改良をより良く理解するため、現在のＸＭＳに基づくデバイスコンフィギュレーションとレジスタアドレス指定の概要を以下に説明する。
【００３４】
現在、ＸＭＳは、バス上の全てのデバイスへブロードキャストコマンドを送るよう意図されるブロードキャストフォーマットを規定はするものの、フォーマットは書き込みについてのみであり、またデバイス上の１セットのビットに固有のものでもある。フォーマットはヘッダを使用しそれぞれのデバイスへ到達すべき固有のビットがその後に続く。ヘッダは、７ビットデバイスアドレス（０００  ００００）およびＲｎＷビット（０）を有する、全てが０のバイトを含む（ここで０は書き込みアクセスを指示する）。現在のフォーマットは以下のとおりである：
＜フォーマット１＞
【００３５】
このブロードキャストフォーマットのフィールドは固有に規定されており、スケールされたり拡張目的で使用されたりはできない。固有ビットの数は４バイトに制限されており、さらに、固有のビットマスキングケーパビリティやフィールドマスキングケーパビリティはない。それゆえ、アドレス指定されるべきデバイスのサブセットの方法はなく、またこれらの固有ビットのサブセットのみにアクセスする方法もない。さらに、現在のＸＭＳフォーマットはメモリ読み取りの機構を規定していない。ブロードキャストは書き込みアクセスについて使用され得るのみである。ホストはさまざまなメモリモジュールデバイス上のＸＭレジスタを読み取る必要がしばしばあり得るという前提から、またこれが、ブロードキャストアドレスが指定され得る唯一の現在のトランザクションであるため、読み取りはできない。
【００３６】
ＸＭＳはまた、デバイスレジスタオフセットＸＭモードで指定されるレジスタアクセスを含む、一般的な読み取り／書き込みフォーマットを提供するものでもある。しかしながら、これらは１つのデバイスの１つのレジスタへのメモリアクセスのためのものであり、これらの現在サポートされているＸＭバス上のトランザクションは非効率的である。
【００３７】
１つのデバイスへの１回のコンフィギュレーションの書き込みは、少なくとも２バイトのヘッダを消費する。これらのバイトは個々のデバイスアドレスおよびデバイスレジスタオフセットのそれぞれについてのものであり、以下において太字で示される。
＜フォーマット２＞
【００３８】
同様に、１つのデバイスへの１回のコンフィギュレーション読み取りは、以下において太字で示されるように、書き込みアクセス（ＲＴｎＷ＝０）の後に続き読み取り（ＲｎＷ＝１）が続き、少なくとも３バイトのヘッダを消費する。
＜フォーマット３＞
【００３９】
上記に示すとおり、読み取りまたは書き込みは、固有のデバイスをアドレス指定しなければならず、またそのデバイス上の固有レジスタと、バス上の他のＸＭデバイスの同じレジスタへの読み取りか書き込み（Ｒｄ／Ｗｒ）とのいずれかの同じ転送タイプのデバイスレジスタアクセスは、現在では組み合わせも連鎖もさせることもできない。それゆえ、上記に示す２または３のヘッダは、場合によっては、別々のデバイスアクセスについて繰り返されなければならず、結果としてパフォーマンスが非効率になる。さらに、上述のように、従来のブロードキャストアクセスはいかなるコントロールビットやセットアップビットのためのマスキングケーパビリティも有さない。その結果、コントロール値がバス上のたとえ１つのデバイスのためにでも別々に管理される場合、ブロードキャストアクセスは現在はいかなるデバイスについても全く使用することはできない。これは、１セットのビットが全てのデバイスに共通に規定されるため、１ビットあたりの機能が全てのデバイスにとって同じとなるためである。これにより、接続されるデバイスのサブセットのみの上のコントロールビットのみがトグルされるべきであった場合の使用が制限される。
【００４０】
一般的に、サーバーは、複数のダブルデータレート（ＤＤＲ）メモリモジュールを有する場合があり、当該ＤＤＲメモリモジュールはそれらのシステムオンチップ（ＳＯＣ）に接続されている。ＸＭＳは、繰り返しの同一のレジスタオフセットアクセスおよびコントロール変更または設定変更を必要とするＳＰＤデバイス等の接続されるデバイスを１２０個まで接続可能にする。現在の仕様による、コントロール用マスクビットを有さないことに加えてさらにＸＭＳに基づいてレジスタアクセスをシリアル化することは、ＸＭバス上のレジスタアクセスとブロードキャスト転送が非効率になるのに加え、レイテンシ、エリアおよび電力もかなり消費する。
【００４１】
最後に、現在は、あらゆるＤＩＭＭにおいてあらゆる電源管理集積回路（ＰＭＩＣ）へ指示されるグループキャストにおける、同じデバイスタイプ、たとえばサーバーまたは演算システムのあらゆるＤＩＭＭにわたるＰＭＩＣのアクセスをイネーブルする実効的な方法はない。
【００４２】
図１は、さまざまな実施例にかかる、実施例としてのシステムを示す図である。図１を参照すると、１または複数のプロセッサ１０２を含むホストコンピューター１０３がある。ホストコンピューター１０３は、上述のように、ＳＯＣであってよい。メモリモジュール１０４も示されており、たとえばこれはホストコンピューター１０３のマザーボードにインストールされる１セットのＤＩＭＭであってよい。実施例においては、ホストコンピューター１０３は、プロセッサ１０２を介して、ブロードキャストコマンドをコマンドバス１４１上でメモリモジュール１０４へ送信する。コマンドバス１４１は、プロセッサ１０３とメモリモジュール１０４との間のデータバス（図示せず）とは異なる。コマンドバス１４１は、コンフィギュレーションレジスタのアクセスとブロードキャスト／マルチキャストトランザクションとを、コマンドバス１４１に接続されたデバイスへ転送する。コマンドバスは、上述のように、ＸＭバスであってよい。実施例においては、コマンドバス１４１にわたり送信されるコマンドとトランザクションとが受信され、ゲートウェイ１３０により処理される。ゲートウェイ１３０は、たとえば、ＤＩＭＭのハブであってよい。ゲートウェイ１３０は、コマンドが受信される経路となるコマンドバス１４１に接続される入力インターフェイス１３４と、ホストコンピューター１０３からの固有のコマンドを識別する、およびいくつかのケースにおいてはコマンドのビットを修正するが多くのケースでは受信したコマンドをメモリモジュール上で接続されるデバイス（ローカルバス１４３上で）に渡すことを含めた、反応のアクションをとる、復号回路１３３とを含む。そして、ゲートウェイ１３０は、ＤＩＭＭ上にも設けられる、たとえば温度センサ、タイミングデータ付きの電圧レギュレータおよびフラッシュメモリユニット、ＳＰＤ、またはレジスタクロックドライバ（ＲＣＤ）などの、１セットのデバイス１２０、１２１、１２２に接続される。
【００４３】
実施例においては、ＤＩＭＭは図１に示されるよりも多い場合も少ない場合があってよく、ＤＩＭＭ上のデバイスは図１に示されるよりも多い場合も少ない場合もあってよい。上述のとおり、ゲートウェイ１３０は、ローカルバス１４３上で一連のデバイスに接続される。ローカルバスもＸＭに準拠したものでよく、その場合はＸＭバスとなる。デバイス１２０、１２１、１２２は、本明細書の中で「ハブの後ろ」または「ゲートウェイの後ろ」のデバイスとして参照されることがあり、これらのデバイスのレジスタは「ＸＭプロトコルの後ろ」のレジスタとして参照されることがある。実施例においては、デバイス１２０、１２１、１２２はそれぞれ、ローカルバス１４３に接続される入力インターフェイス１３４と、入力インターフェイス１３４を介して、ゲートウェイ１３０を通して、そして最後にホストコンピューター１０３から受信するそれぞれのデバイスにより受信される実装ブロードキャストコマンドを復号して実装する復号回路１３５とを含む。
【００４４】
次に説明される図２から図８は、さまざまな実施例にかかるデバイスにより受信されるコマンド、またはコマンドの部分を表している。コマンドは、１または複数のＸＭプロトコルレジスタへ指示されるか、または１または複数のデバイスの１または複数の内部デバイスレジスタへ指示される。上述のように、実施例においては、コマンドはデバイスの入力インターフェイスを介して受信され、デバイスの復号回路により復号される。
【００４５】
図２は、さまざまな実施例にかかる、ブロードキャストコマンドの実施例としてのアクセスフォーマットを示したものである。アクセスフォーマットは、上述のとおり、「Ｓ」で指示される従来のＸＭＳ「スタート」バイト２０１に続く追加ヘッダバイト２１０を含む。本明細書では、追加ヘッダバイト２１０は、現在ＸＭ仕様において規定されておらず、かなり限定的な現在のブロードキャストコマンドフォーマットでも使用されていないため、「追加」の語で表される。スタートバイト２０１は、０ｘ００の標準ブロードキャストコールアドレス２０３、および０に設定された、書き込みではなく読み取りの「ＲｎＷ」２０５を有する。追加ヘッダバイト２１０は、ここでは「ＳｌａｖｅＡｄｄｒＭａｓｋ［２:０］」とラベル付けされた３ビットのスレーブアドレスマスクフィールド２２０を含む。この文脈では、「スレーブ」とは、ブロードキャスト（グループキャスト、またはマルチキャスト）コマンドが意図されるデバイスを意味する。実施例においては、スレーブアドレスマスクフィールド２２０は、後に続くそれぞれのトランザクションについて、そのアドレスがブロードキャストコマンド２００の中で規定されるデバイスアドレスと一致するか否かを判定する前に、受信デバイスがそれらをマスキングすべきスレーブアドレスの数を指示する。そして、マスキングの機能は、ホストコンピューターが、メモリ内の全てのＤＩＭＭにわたる同じファミリーのデバイス、たとえばそれぞれのＤＩＭＭ上のＰＭＩＣにわたり、単一のトランザクション内でグループアドレス指定をイネーブルする。
【００４６】
スレーブアドレスマスクフィールド２２０の値は、無視されるべきデバイス識別子の最下位ビット（ＬＳＢ）の数を与える。たとえば、符号２２０のフィールドのＳｅｔ  ＳｌａｖｅＡｄｄｒＭａｓｋ［２：０］が「０１１ｂ」に設定される場合、７ビットデバイス識別コード（ＤＥＶ  ＩＤ  Ｃｏｄｅ）２５０の最下位３ビットがマスキングされ得、デバイスの全体グループを特定し得る４ビットＩＤを残すことを意味し得る。これにより、最上位ビット（ＭＳＢ）の４ビットが、たとえばＤｅｖ  ＩＤ  Ｃｏｄｅ［６:３］などの、単一トランザクションでアドレス指定されるべきＤｅｖ  ＩＤ  Ｃｏｄｅのマスキングされていない部分と一致する、全てのスレーブデバイスがイネーブルされる。
【００４７】
ここで、８ＤＩＭＭに限定される実施例としてのシステムにおける実施例においては、デバイスのアドレスは、デバイスがその上に提供される、ＭＳＤの４ビットがデバイスのタイプを指定するとともにＬＳＢの３ビットがＤＩＭＭの数を指定するように構成されてよい。このような実施例においては、符号２２０のＳｌａｖｅＡｄｄｒＭａｓｋ［２:０］が「０１１ｂ」に設定されて符号２５０の７ビットデバイス識別コード（Ｄｅｖ  ＩＤ  Ｃｏｄｅ）の最下位３ビットをマスキングする場合、同じタイプの全てのデバイス（図２で示されるように、ＬＳＢの３ビットをマスキングすることにより、８個の全てのＭＳＢにわたり、ＭＳＢの４ビットにより識別されるもの）についてこれが可能である。
【００４８】
追加ヘッダバイト２１０は、たとえば「ＳｌａｖｅＡｄｄｒＭａｓｋ［２:０］」と名付けられた３ビットのスレーブアドレスフィールド２２０と、たとえば「Ｏｆｆｓｅｔ［３:０］」と名付けられた４ビットのオフセットフィールド２３０と、たとえば「ＸＭ−ＲＥＧ−ＭＯＤＥ」と名付けられたアクセスモードフィールド２４０とを含む。これらについては以下で説明する。
【００４９】
実施例においては、スレーブアドレスマスクフィールド２２０は、コマンドを受信するデバイスがデバイスアドレスのうち何個の最下位ビット（ＬＳＢ）を無視すべきかを指示するのに使用される。図２に示される、たとえば、符号２５０の「Ｄｅｖ  ＩＤ  Ｃｏｄｅ［６:０］」などの、無視されるデバイスアドレスのビットが多ければ多いほど、アドレスのマスキングされていない部分と一致するデバイスの数は多くなり、ブロードキャストコマンドに対して応答する数が多くなる。実施例においては、図３Ａ、図３Ｂ、図４、図５、図６、図７および図８を参照して以下で説明されるとおり、このマスキングの特徴は、フルブロードキャスト、選択的ブロードキャスト、またはグループアドレス指定を可能にするものである。
【００５０】
ＸＭＳに基づく図２から図１０実施例においては、デバイスアドレスは７ビット長であるいう前提である。他の実施例においては、デバイスアドレスのビット長はそれよりも長くても短くてもよい。そして、スレーブアドレスマスクフィールド２２０は、そのアドレスの０ビットから７ビットまでをマスキングすることを指示する。たとえば、ＳｌａｖｅＡｄｄｒＭａｓｋ［２:０］＝'１１１'のときは、アドレスの全７ビットがマスキングされ、コマンドは全ての接続されるデバイスへブロードキャストされる。同様に、ＳｌａｖｅＡｄｄｒＭａｓｋ［２:０］＝'０００'のときは、コマンドで規定されるそれぞれのデバイスアドレスの全てのビットが読み取られ、マスキングは行われない。さらに、ＳｌａｖｅＡｄｄｒＭａｓｋ［２:０］＝'０１１'であって値「３」を有するときは、アドレスの最下位３ビットがマスキングされる。そして、４個の最上位ビット（ＭＳＢ）が一致する全てのスレーブデバイスが単一のトランザクションにおいてアドレス指定され、コマンドに応答する。
【００５１】
引き続き図２を参照すると、図２において「Ｏｆｆｓｅｔ［３:０］」とされる４ビットのオフセットフィールド２３０は、さまざまな実施例にかかる利用可能な１または複数の可能なアクセスモードにおいてのみ使用される。ここで注目すべきは、実施例においては、第１のアクセスモードではブロードキャストコマンドはデバイス設定またはコントロールコマンドであってよく、それゆえコマンドは、たとえばパケットエラー訂正イネーブル（ＰＥＣ＿ＥＮ）、ＰＡＲＩＴＹ＿ＥＮ、ＩＦ＿ＳＥＬなどのＸＭプロトコルにより規定されることが要求されるレジスタにアクセスしようとする（このアクセスモードは以下、「プロトコルレジスタ」アクセスとして言及される）。同様に、実施例においては、第２のアクセスモードでは、意図するのは、ブロードキャストコマンドが、たとえばＳＰＤ、ＲＣＤ、ＰＭＩＣのような異なるアクセスフォーマットを有し得るＸＭプロトコルの後ろのデバイスレジスタにアクセスすることであって、（このアクセスモードは以下、「デバイスレジスタ）アクセス」として言及される）。実施例においては、第２のアクセスモードでは、ＸＭＳに基づく従来のトランザクションの後ろには追加ヘッダバイト２１０が続く。このトランザクションは、図５から図７に関連して以下で説明されるとおり、「ｒｅｓｔａｒｔ」（Ｓｒ）バイト２４５で開始する。実施例においては、オフセットフィールド２３０は第１のアクセスモードにおいてのみ使用され、第２のアクセスモードを指定するコマンド内にリザーブされる。そして、図２で示される実施例では、符号２３０のＯｆｆｓｅｔ［３：０］は、コマンドが受信デバイス上のどのＸＭプロトコルレジスタに対して指示されるかを指定するのに使用される。Ｏｆｆｓｅｔ［３：０］は４ビット長なので、それぞれのデバイス上の１５個のレジスタが、第１のアクセスモードを指定するとともにさらにどのレジスタが書き込みが最初に行われるべきレジスタかを指示するためのオフセット値を指定するブロードキャストコマンドを使用してアクセスされてよい。
【００５２】
実施例においては、ブロードキャストコマンドのアクセスモードはアクセスモードフィールド２４０により指示される。図２の実施例では、これは「ＸＭ−ＲＥＧ−ＭＯＤＥ」として示される１ビットフラグである。この実施例では、ＸＭ−ＲＥＧ−ＭＯＤＥ＝１は第１のアクセスモード（プロトコルレジスタアクセス）を指示し、ＸＭ−ＲＥＧ−ＭＯＤＥ＝０は第２のアクセスモード（デバイスレジスタアクセス）を指示する。
【００５３】
他の実施例においては、それぞれのフィールドにはそれより多いまたは少ない数のビットがあってよく、ヘッダおよび、コマンドの後続ユニットは、１バイトより多いまたは少ないビットを有してよい。
【００５４】
引き続き図２を参照すると、追加ヘッダバイト２１０の後ろにはＳｒトランザクション２１１が続く。Ｓｒトランザクション２１１は、図２で示される符号２５０の「Ｄｅｖ  ＩＤ  Ｃｏｄｅ［６:０］」と、ここでは書き込みではなく読み取りビットの「ＲｎＷ」である１ビットメモリアクセスタイプのインジケータ２５１とを指示する、７ビット長デバイスアドレスおよびを指示するＳｒバイト２４５で開始する。図２から図１０で示される実施例においては、ＲｎＷ＝０はレジスタへの書き込みを意味し、ＲｎＷ＝１はレジスタへの読み取りを意味する。フルブロードキャスト、グループブロードキャストまたはその他のマルチデバイスコマンドについては、単一のコマンドは同時に複数のデバイスを読み取ることはできないため、ブロードキャストコマンドは、ＲｎＷ＝０の場合は一般的には書き込みである。図２のＳｒトランザクション２１１で示される残りのバイト、つまりＢｙｔｅ０からＢｙｔｅ  ｎまでは、図３Ａ、図３Ｂまたは図４においても示され、当該図を参照して以下にその詳細が説明されるとおり、第１のアクセスモードを表す。これらのバイトは、符号２３０のＯｆｆｓｅｔ［３:０］で指示されるそれぞれのデバイス上のロケーションでレジスタで開始するそれぞれの受信デバイスに書き込まれる。第２のアクセスモードでは、以下で説明されるように、少し異なるフォーマットがＳｒトランザクションに使用される。
【００５５】
実施例においては、図２のフォーマット２００のブロードキャストコマンドを受信するデバイスは、スレーブアドレスマスクと、アクセスモード値と、オフセットがある場合はオフセット（第１のアクセスモード）とを復号し、コマンドで規定される後続のバイトを実装させる。実施例においては、ブロードキャストコマンドフォーマット２００を使用することは、ホストコンピューターが複数のＤＩＭＭにわたる同等のレジスタにアクセスして領域と電力の両方における効率を向上させるとともに起動時間をかなり削減することに寄与する。
【００５６】
図３Ａ、図３Ｂおよび図４は、第１のアクセスモードを指定するコマンドのいろいろなバージョンを図示したものであり、当該図は全て図２のコマンドフォーマット２００を実装するものである。これらの実施例としてのコマンドにおいては、コマンドはプロトコルレジスタアクセスに指示され、この場合、アクセスモードフラグはＸＭ−ＲＥＧ−ＭＯＤＥ＝１である。次に、これらについて説明する。
【００５７】
図３Ａでは、たとえばＸＭプロトロルレジスタ（図３Ａ、図３Ｂおよび図４では単に「ＸＭレジスタ」と記される）などの、フルブロードキャストレジスタについての実施例としてのコマンド３００Ａが示される。実施例としてのコマンド３００Ａは、たとえば、ＰＥＣイネーブル、またはパリティイネーブルなどの、オペレーションモードを更新するものに使用されてよい。そして、図３Ａのヘッダ３１０では、スレーブアドレスマスク３１５は、デバイスアドレスの全７ビットがマスキングされるべきであることを指示する「１１１」となっている。オフセットフィールド３２０は、４ビットオフセットであるＯｆｆｓｅｔ［３:０］を規定しており、これはコマンドに含まれる最初のバイトがそれぞれのデバイス上に書き込まれることを指示するものである。ヘッダ３１０はアクセスモードフラグ３３０も含む。これはプロトコルレジスタアクセス（たとえば第１アクセスモード）であるため、アクセスモードフラグ３３０は１となり、たとえばＸＭ−ＲＥＧ−ＭＯＤＥ＝１となる。
【００５８】
引き続き図３Ａを参照すると、ヘッダバイト３１０の下に単一のＳｒトランザクション３１１が示されており、ここではＳｒは「リスタート」を意味する。それぞれのデバイスは同様に更新される自己のＸＭレジスタを有するフルブロードキャストコマンドであるため、ただ１つのＳｒトランザクションが示されている。Ｓｒトランザクション３１１は１つのヘッダバイトといくつかのコントロール情報バイトを含む。Ｓｒヘッダバイトは、デバイスアドレス、ここでは、ＸＭバス（デバイスを１２０個まで接続できるもの）上に接続される全ての各デバイスがコマンド３００Ａを受信することを意味する、「Ｄｅｖ  ＩＤ  Ｃｏｄｅ［６:０］＝０ｘ０００＿００００」を含む。Ｓｒトランザクション３１１のヘッダバイトもまた、プロトコルレジスタアクセスが読み取り（ＲｎＷ＝１）であるか書き込み（ＲｎＷ＝０）であるかを指示する、読み取りまたは書き込み（ＲｎＷ）ビット３１３を含む。この実施例では、ブロードキャストは全ての各ＸＭバスに接続されたデバイス（たとえば、コンピューターのメモリ内の全てのＤＩＭＭ）上でのいくつかのＸＭレジスタの書き込みアクセスであるため、ＲｎＷ＝０となる。図３Ａに示されるように、Ｓｒトランザクション３１１は、オフセット３２０で規定されるオフセット値でのＸＭレジスタで開始するそれぞれのデバイス上の一連のシーケンシャルレジスタへそれぞれ書き込まれる、Ｂｙｔｅ０からＢｙｔｅ  ｎまでのいくつかの追加バイトも含む。そして、図示のように、たとえば、Ｂｙｔｅ０はＸＭ−Ｒｅｇ［ｏｆｆｓｅｔ］へと、Ｂｙｔｅ１はＸＭ−Ｒｅｇ［ｏｆｆｓｅｔ＋１］へと、Ｂｙｔｅ２はＸＭ−Ｒｅｇ［ｏｆｆｓｅｔ＋２］へと、そして最後にＢｙｔｅ  ｎはＸＭ−Ｒｅｇ［ｏｆｆｓｅｔ＋ｎ］へと書き込まれる。
【００５９】
コラム３５０に示される符号は、従来のＳＭバスおよびＸＭプロトコルにおいてそれらの符号が持つのと同じ意味を持ち、これらは、コマンドを受信するデバイスにより応答が送信される、コマンド内の各送信バイトに応答する１ビット応答を表している。符号の意味は次のとおりである。Ｓはスタート、Ｓｒはリスタート、ＡＣＫは肯定応答、Ｔはトランジション、Ｐは終了。
【００６０】
図３ＢはＸＭプロトコルレジスタへの選択的ブロードキャストの実施例としてのコマンドを示したものである。図３Ｂを参照すると、図３Ｂの実施例としてのコマンドは、２つの例外を除いては図３Ａの実施例としてのコマンドと全ての面で同一である。この例外とは、スレーブアドレスマスクフィールド３１５の値と、実施例としてのコマンドに含まれるＳｒトランザクションの数、つまりＳｒトランザクション３１１および３１２とを指す。図３Ａの実施例としてのコマンドからのこれらの変数について、次に説明する。しかしながら、図３Ｂの実施例としてのコマンドは、全ての面で図３Ａの実施例としてのコマンドの対応する特徴に類似しているため、ここでは再度の説明を省略する。引き続き図３Ｂを参照すると、スレーブアドレスマスクフィールド３１５、つまりＳｌａｖｅＡｄｄｒＭａｓｋ［２:０］の値は「０００」であり、これはマスキングされるべきコマンド３００Ｂに含まれるデバイスアドレスのビットはないことを意味する。その結果、Ｓｒトランザクション３１１および３１２で列挙されるそれぞれのデバイスアドレスへはアクセスされるが、他のいかなるアドレスもコマンド３００Ｂによりアクセスされることはない。
【００６１】
引き続き図３Ｂを参照すると、Ｓｒトランザクション３１１および３１２は、前述のとおり、Ｓｒトランザクション３１１のＤｅｖｉｃｅ  ＡおよびＳｒトランザクション３１２のＤｅｖｉｃｅ  Ｂはマスキングされていないという例外を除いては、図３ＡのＳｒトランザクション３１１と類似しているので、それぞれそれらの特定のデバイスにのみアクセスし、他のデバイスにアクセスすることはない。
【００６２】
図４は、さまざまな実施例にかかる、ＸＭプロトコルレジスタのグループアドレス指定のための実施例としてのブロードキャストコマンド４００を示したものである。コマンドは、指定されるグループのデバイスと、そのグループ内のそれぞれのデバイス上の複数のＸＭレジスタへとブロードキャストするのに使用される。図４を参照すると、図４の実施例としてのコマンドは、１つの例外を除いては全ての面で図３Ｂのコマンドと同一である。この例外とは、スレーブアドレスマスクフィールド４１５の値である。スレーブアドレスマスクフィールド４１５は、コマンドの中で指定されるそれぞれのアドレス、つまりデバイスアドレス４１６および４１７の、３個のＬＳＢがマスキングされることを指示している。これは、コマンドを受信するデバイスが、送信されたデバイスアドレス４１６および４１７の４個のＭＳＢが自己のアドレスと一致するか否かのみをチェックし、一致があれば受信デバイスがメモリアクセスをコマンド内で指示されるものとして実装するということを意味する。そして、デバイスアドレス４１６および４１７はそれぞれ、それぞれのデバイスアドレスの４個のＭＳＢが一致する、デバイスのグループを実際のターゲットにする。これは図４において、デバイスアドレス４１６を「Ｄｅｖ  ＩＤ  Ｃｏｄｅ［６：０］＝０ｘＡＢＣＤ＿ｘｘｘ」として、そしてデバイスアドレス４１７を「Ｄｅｖ  ＩＤ  Ｃｏｄｅ［６：０］＝０ｘＥＦＧＨ＿ｘｘｘ」として示すことにより表されており、これは受信デバイスがそれぞれのアドレスの３個のＬＳＢを単に無視することを指示するものである。
【００６３】
他の全ての面では、図４の実施例としてのコマンドは図３Ｂの実施例としてのコマンドの対応する特徴と同等であるため、ここでは再度の説明を省略する。
【００６４】
図５から図７は、第２のアクセスモード、つまりデバイスレジスタアクセスを指定するブロードキャストコマンドの実施例が示される。次に、これらについて説明する。
【００６５】
実施例においては、アドレスとオフセットとを含むレジスタアクセスの規定は、フルブロードキャストまたはグループブロードキャストのような、グループとしてコマンドが実行される全てのデバイスにわたり同一であることが保証されるべきである。実施例においては、デバイスレジスタアクセスのために発行されるブロードキャストコマンドは、ヘッダの下位バイトがデバイスレジスタオフセット情報を運ぶ。実施例においては、これはＸＭＳの必須態様であるため、オフセットは全てのデバイスにわたり共通に保証される。そして、アドレスマスキング機能を利用するため、マルチキャストまたはグループキャストについては、グループが同じアドレス／レジスタの規定を有する必要がある。
【００６６】
図５は、さまざまな実施例にかかる、デバイスレジスタへのフルブロードキャストコマンドのための実施例としてのフォーマットを示している。図５を参照すると、追加ヘッダバイト５１０は値が「１１１」のスレーブアドレスマスクフィールド５１５を含む。全てのデバイスアドレスビットがマスキングされているため、コマンドは「フルブロードキャスト」として作動し、それゆえコマンドを受信するそれぞれのデバイスがそれを実装するものとなる。追加ヘッダバイト５１０も、４ビットの予約フィールドと、１ビットのアクセスモードのインジケータ５３０とを含む。図２、図３Ａおよび図４の実施例としてのコマンドとは異なり、図５のアクセスモードのインジケータ５３０は、この例では、ＸＭ−ＲＥＧ−ＭＯＤＥ＝０であり、これは第２のアクセスモード、つまりレジスタアクセスモードを指示するものである。上述のように、コマンドのアクセスモードがプロトコルレジスタアクセスである場合にレジスタオフセットフィールドとして使用される予約フィールド５２０は、デバイスレジスタアクセスモードでは使用されない。
【００６７】
追加ヘッダ５１０の後ろに続くのはＳｒトランザクション５１１である。引き続き図５を参照すると、Ｓｒトランザクション５１１は、全体のヘッダバイト５１４と、それに続く、ｎ個のデータバイトのそれぞれに固有の１セットのヘッダバイトとを含む。このコマンドはフルブロードキャストコマンドであるため、Ｓｒトランザクションの全体のヘッダバイト５１４は、デバイスアドレスとして０ｘ０００＿００００を規定し、そして上述のとおり、スレーブアドレスマスク５１５を「１１１」とするそれぞれのデバイス受信コマンド５００を規定し、全てのアドレスビットを無視する。全体のヘッダバイト５１４は、ここでは値「０」を有するＲｎＷビットも有し、それぞれのデバイス上のデバイスレジスタへの書き込みを意味する。ヘッダバイトは、符号５１２のＨｅａｄｅｒＢｙｔｅ０と、符号５１３のＢｙｔｅ０で開始するＨｅａｄｅｒＢｙｔｅｓにより指示されるそれぞれのアドレス／オフセットでのそれぞれの受信デバイスで書き込みが行われるデータバイトとで開始する。
【００６８】
ヘッダバイトが余計にあるため、第２のアクセスモードのＳｒトランザクション５１１は第１のアクセスモードにおけるＳｒトランザクションよりも長くなる。これはペイロード／バイトに加えてアドレス／オフセットの情報が追加される必要があるためである。そこで、たとえば、図５のＳｒトランザクション５１１は、図２のＳｒトランザクション２１１よりも長くなる。
【００６９】
図６は、さまざまな実施例にかかる、ＸＭプロトコルレジスタへの選択的ブロードキャストまたはマルチキャストに適合された、実施例としてのコマンド６００を示したものである。図６を参照すると、図５の実施例としてのコマンド５００は、２つの例外を除いては図３Ａの実施例としてのコマンドと全ての面で同一である。この例外とは、スレーブアドレスマスクフィールド６１５の値と、実施例としてのコマンドに含まれるＳｒトランザクションの数、つまりＳｒトランザクション６１１および６１２とを指す。図５の実施例としてのコマンドからのこれらの変数について、次に説明する。しかしながら、図６の実施例としてのコマンドは、全ての面で図５の実施例としてのコマンドの対応する特徴に類似しているため、ここでは再度の説明を省略する。引き続き図６を参照すると、スレーブアドレスマスクフィールド６１５、つまりＳｌａｖｅＡｄｄｒＭａｓｋ［２：０］の値は「０００」であり、これはマスキングされるべきコマンド６００に含まれるデバイスアドレスのビットはないことを意味する。その結果、Ｓｒトランザクション６１１および６１２で列挙されるそれぞれのデバイスアドレス、つまりＤｅｖ＿Ａ  ６１６とＤｅｖ＿Ｂ  ６１７のそれぞれのデバイスＩＤはコマンド６００によりアクセスされるが、他の一切のアドレスはアクセスされない。そして、Ｄｅｖ＿ＡとＤｅｖ＿Ｂのそれぞれのデバイスについては、そのそれぞれのＳｒトランザクションが１セットのヘッダバイトを含み、Ｂｙｔｅ０からＢｙｔｅ  ｎまでのそれぞれについてのアドレスおよびオフセットと、それに続いて実際のバイト、つまり対応するそれぞれのオフセットでのデバイスレジスタにそれぞれ書き込まれるＢｙｔｅ０からＢｙｔｅ  ｎまでとが供給される。
【００７０】
図７は、さまざまな実施例にかかる、デバイスレジスタへのグループアドレス指定のための実施例としてのブロードキャストコマンド７００を示したものである。コマンドは、指定されるグループのデバイスと、そのグループ内のそれぞれのデバイス上の複数のデバイスレジスタへとブロードキャストするのに使用される。図７を参照すると、実施例としてのコマンド７００は、１つの例外を除いては全ての面で図６のコマンドと同一である。この例外とは、スレーブアドレスマスクフィールド７１５の値である。スレーブアドレスマスクフィールド７１５は、コマンド７００の中で指定されるそれぞれのアドレス、つまりデバイスアドレス７１６および７１７の、３個のＬＳＢがマスキングされることを指示している。この、それぞれのアドレスの下位３個のＬＳＢをマスキングするということは、コマンド７００を受信するデバイスが、送信されたデバイスアドレス７１６および７１７の４個のＭＳＢが自己のアドレスと一致するか否かのみをチェックすることを意味する。一致があれば、受信デバイスはメモリアクセスをコマンド内で指示されるものとして実装する。そして、デバイスアドレス７１６および７１７はそれぞれ、それぞれのデバイスアドレスの４個のＭＳＢが一致する、デバイスのグループを実際のターゲットにする。これは図７において、デバイスアドレス７１６を「Ｄｅｖ  ＩＤ  Ｃｏｄｅ［６：０］＝０ｘＡＢＣＤ＿ｘｘｘ」として、そしてデバイスアドレス７１７を「Ｄｅｖ  ＩＤ  Ｃｏｄｅ［６：０］＝０ｘＥＦＧＨ＿ｘｘｘ」として示すことにより表されており、これは受信デバイスがそれぞれのアドレスの３個のＬＳＢを単に無視することを指示するものである。全ての面において図７の実施例としてのコマンド７００は図６の実施例としてのコマンド６の対応する面で類似しており、これらの類似する面は上記で説明されているため、再度の説明を省略する。
【００７１】
別の実施例では、ブロードキャストトランザクションがデバイスのコントロールまたは設定のために発行されるので、第１のアクセスモードを使用し、その後ろに全てのターゲットとなるデバイスへのコントロールデータが続く。いくつかの実施例においては、コントロールデータは、それぞれのバイトペアが１個のマスクバイトと１個のデータバイトを含む、複数の２バイトペアで規定される。これらの実施例においては、マスバイトビットの値「１」は、デバイスがコントロールデータの対応するビットを処理すべきではないことを指示するものであり、マスクバイトビット値「０」は、デバイスがコントロールデータの対応するビットを処理すべきであることを指示するものである。それぞれのコントロールデータに先立つマスクバイトを追加することは１トランザクションあたり転送されるバイト数の増加につながるが、これにより、コマンドが、指示されるオフセットでのプロトコルレジスタのフィールドを選択的に更新できるようになり、かなりの柔軟性を提供する。
【００７２】
図８は、これらの別の実施例にかかるフルブロードキャストを示したものである。これを参照すると、図８は、さまざまな実施例にかかる、コマンドにおいて転送されるそれぞれのペイロードバイトのマスキングに使用するＸＭプロトコルレジスタへのフルブロードキャストコマンドのための別の拡張コマンドフォーマット８００を示している。別の拡張コマンドフォーマット８００は、Ｓｒトランザクション８１１のそれぞれのデータバイトの前に規定される追加マスキングバイトを除いては、全ての面で図３Ａのブロードキャストコマンド３００Ａに類似している。
【００７３】
引き続き図８を参照すると、このコマンドのフルブロードキャストという性質により、追加ヘッダバイト８１０を参照して、スレーブアドレスマスク８１５の値が「１１１」に設定される。上記で説明したように、これはコマンドを受信するあらゆるデバイスが、デバイスＩＤコードフィールド８２０で示されるように０ｘ０００＿０００となる、指名されたデバイスアドレス内の全てのビットを無視することを意味する。上述のように、ブロードキャストコマンド８００は全てのデバイス上のＸＭプロトコルレジスタへ指示され、それゆえアクセスモードのインジケータ８３０で示されるとおり、ＸＭ−ＲＥＧ−ＭＯＤＥ＝１も指示される。
【００７４】
引き続き図８を参照すると、追加ヘッダバイト８１０の後ろに、Ｓｒヘッダバイト８１２で開始する標準Ｓｒトランザクション８１１が続く。これは前述のとおり、０ｘ０００＿００００のブロードキャストデバイスアドレスを指示している。スレーブアドレスマスク８１５が「１１１」のときには後続のデバイスＩＤコード８２９は事実上要求されないこともわかる。図８の実施例では、コマンドの全般的フォーマットが維持されているが、別の実施例では、最適化のためにそれが削除されてもよい。ブロードキャストコマンドは、ＲｎＷビット８２１で示されるとおり、書き込みコマンドである。
【００７５】
引き続き図８を参照すると、Ｓｒトランザクション８１１の残りのうち、それぞれのデータバイトには、上述のとおりマスキングバイトである「バイトイネーブル」バイトが先行している。そして、図３Ａに示されるコントロールバイトの実施例に代えて、この別の実施例では、コマンドのバイトシーケンスは１オフセットあたり｛Ｂｙｔｅ−Ｅｎａｂｌｅ,Ｂｙｔｅ｝のペアを含む。この特長は、複数のデバイスにわたり１つのオフセットにおいて非類似なビットフィールドがある場合に有益となり得、またＸＭプロトコルレジスタアクセスの場合も、全てのＸＭ準拠デバイスにより実装される共通のレジスタであるため、有益となり得る。図８では、｛Ｂｙｔｅ−Ｅｎａｂｌｅ，Ｂｙｔｅ｝ペアの２つの例が示されており、１例目の符号８１３は第１のコントロールバイトのＢｙｔｅ０で、追加ヘッダバイト８１０で指示されるオフセットプロトコルレジスタへ書き込まれるものであり、符号８１７の第２のペアは最後のコントロールバイトのＢｙｔｅ  ｎのためのもので、追加ヘッダバイト８１０＋ｎまたはＸＭ−Ｒｅｇ［ｏｆｆｓｅｔ＋ｎ］で指示される、オフセットでプロトコルレジスタへの書き込まれるものある。それぞれのケースにおいて、それぞれのマスキングバイト「Ｂｙｔｅ  ｅｎａｂｌｅ  ０」または「Ｂｙｔｅ  ｅｎａｂｌｅ  ｎ」によりイネーブルされるコントロールバイトである「Ｂｙｔｅ０」または「Ｂｙｔｅ  ｎ」のバイトのみが、指示されるレジスタへ書き込まれる。
【００７６】
議論される実施例としてのコマンドについては、その全てが、コマンドが、たとえばプロトコルレジスタまたは内部デバイスレジスタを更新するように受信デバイスへ指示する、書き込みアクセスである。単一のデバイス上の１または複数のレジスタの内容に固有である読み取りとは対照的に、書き込みオペレーションのみが複数デバイスへの真のブロードキャストとなり得ることは理解されている。図９は、さまざまな実施例にかかる、特定のデバイスのＸＭプロトコルレジスタの読み取りのための実施例としてのコマンド９００を示すものである。コマンド９００は図３Ｂのコマンド３００Ｂの読み取りバージョンであり、コマンド９００は１つのデバイスのためのアドレスのみを含む。そこで、引き続き図９を参照すると、コマンド９００は、符号９３０と符号９２１で指示、つまり読み取り処理を指示するＲｎＷ＝１を指示している。さらに、追加ヘッダバイト９１０は、スレーブアドレスマスクフィールド９１５において、マスキングなし、つまりユニキャスト処理を指示する値の「０００」を規定しており、アクセスモードのインジケータ９１６はプロトコルレジスタが読み取られることを規定している。そして続くＳｒトランザクション９１１が、ｓｌａｖｅＡｄｄｒ.ＸＭ−Ｒｅｇ［ｏｆｆｓｅｔ］からｓｌａｖｅＡｄｄｒ.ＸＭ−Ｒｅｇ［ｏｆｆｓｅｔ＋ｎ］までの、データのそのｎ個目のバイトを指定する。実施例においては、デバイスが読み取りコマンドに応答するときは、デバイスはこれらのそれぞれのデータバイトに「Ｂｙｔｅ０」から「Ｂｙｔｅ  ｎ」とラベル付けする。
【００７７】
実施例においては、１２０個のデバイスにわたる同じレジスタオフセットへの同じＸＭプロトコルレジスタ読み取りアクセス、および１２０個のデバイスにわたる同じレジスタオフセットへのＸＭレジスタ書き込みは、現在のＸＭＳに基づくものより効率的となることは知られている。さらに、実施例においては、ブロードキャストアクセスが何倍か改善され、いくつかのデバイスが特定のコントロールフラグビットのいくつかにおいて非同一の値を有し得るという、現在のプロトコルではあり得ないことが起きたとしても、ホストコンピューターがブロードキャストコマンドを使用し続けることができる。
【００７８】
実施例においては、複数のＤＩＭＭにわたり同じデバイスタイプへアドレス指定／マルチキャストするケーパビリティがイネーブルされるとともに、１つのデバイスあたりのＸＭプロトコルレジスタの特定のセットにアクセスするケーパビリティもイネーブルされる。よって、この機能は、たとえば、ＰＥＣイネーブル、ＩＢＩのオン／オフなどのプロトコル機能コントロールのための標準機構をイネーブルする。図９で示されるように、これらのデバイスへの読み取りは同じコマンドで扱われるが、ユニキャストモードでは、上述のように、ＳｌａｖｅＡｄｄｒＭａｓｋ＝０００で扱われる。
【００７９】
次に図１０から図１２を参照しながら、ランタイム中に、メモリモジュール（たとえばＤＩＭＭ）上の、ローカルバスにわたりメモリモジュールのハブに接続されるデバイスへ、ユニークアドレスを割り当てる方法について説明する。実施例においては、この方法は、それぞれのデバイス上の所定のオフセットでの全てのＸＭプロトコルレジスタへのフルブロードキャストについて図３Ａを参照して上記で説明される、ホストコンピューターによる拡張ブロードキャストコマンドフォーマットが改善される。しかしながら、実施例においては、方法、およびそれを実装するための実施例としてのブロードキャストコマンドフォーマットは、ブロードキャストコマンドを受信した後に、ＤＩＭＭのハブまたはゲートウェイに指示して、ホストコンピューターから受信したものからコマンドに含まれるデバイスアドレスを、ＤＩＭＭ上の「ハブの後ろ」の全てのデバイスへコマンドを転送する前に、別の値に修正する。
【００８０】
しかしながら、図１０から図１２の方法を説明する前に、ＤＩＭＭの製造における背景をまず説明する。たとえばＤＩＭＭなどのメモリモジュールを、マザーボードまたは演算デバイスの全てのスロットにわたり再使用可能かつコンフィギュレーション可能なものとするには、全てのＤＩＭＭが、それが挿入されたときに、たとえばＳＰＤデバイスなどの、メモリモジュールのハブにより精密抵抗器を通して検知されるホストＩＤ（「ＨＩＤ」、または「ＤＩＭＭ＿ＩＤ」）を有する同一なものとして組み立てられる。そして、製造時にはＤＩＭＭ上の全てのデバイス用のデフォルトアドレスはメモリモジュールが最終的に挿入されるスロットの実際のｈｏｓｔ＿ｉｄ（たとえばＤＩＭＭ＿ＩＤ）にかかわらず同じである。
【００８１】
そのため、ＤＩＭＭ上の全てのデバイスがホストコンピューターによりシームレスにアドレス指定されるようにするには、ハブはホストコンピューターから来るアドレスを連続してローカルデバイスアドレスに変換するか、あるいは、「ハブの後ろ」のＤＩＭＭ上のデバイスが、それらの実際のｈｏｓｔ＿ｉｄを認識するように作られ、デバイスがホストコンピューターによりアドレス指定された場合、たとえば図２から図９で示され上記で説明される実施例としてのコマンドの１つを介して、コマンドに適切に応答できるものとする必要がある。
【００８２】
さらに、ＤＩＭＭのハブは、ＰＥＣまたはストアフォワード方式の実装を要せずにできるだけ安価に作られるのが望ましい。また、ハブは独立のクロックソースを有さないため、それ自体ではデータの処理を行わない。よって、理想的なハブは、１つのドメイン（たとえばコマンドバス）から別のドメイン（たとえばローカルデバイスバス）へトランザクションを転送し、バス負荷の低減とバランス調整を支援することでデバイスができるだけ多くのコマンドバスに取り付けられるようにする、受動パスゲートをベースとする実装である。
【００８３】
あるいは、製造時にそれぞれのデバイスにワンタイムプログラマブルアドレスが割り当てられてもよい。しかしながら、これは製造コストが増える。また別の選択肢として、ハブが、継続ベースで、ホストコンピューターから受信するそれぞれのトランザクションまたはコマンド用のアドレスを管理する、たとえばトランザクションまたはコマンドにおいて使用されるデバイスアドレスをそれが接続されるスロットの実際のＤＩＭＭ＿ＩＤに変換するのでもよいが、これはかなりの作業負荷がかかるとともに複雑さも増す。
【００８４】
したがって、実施例においては、上述の第１のアクセスモードのフルブロードキャストコマンドは、ホストコンピューターによりそれぞれのＤＩＭＭ上のそれぞれのハブがそのハブのホスト識別子（たとえばＤＩＭＭ＿ＩＤ）をそのＤＩＭＭ上の全てのローカルバスデバイスへプッシュするようにさせるのに使用される。
【００８５】
実施例においては、この固有ＤＩＭＭ＿ＩＤ伝搬トランザクションにおいては、ホストコンピューターからブロードキャストコマンドを受信すると、それぞれのＤＩＭＭ上のハブがブロードキャストコマンドに含まれるデバイスアドレスの特定のビットを、ブロードキャストコマンドをローカルバスへ転送する前に変更する。とりわけ、ハブは、ホストコンピューターから受信されたブロードキャストメッセージのペイロードにおけるＨＩＤ／ＬＩＤビットを置き換える。さらに、実施例においては、ＰＥＣをそのようなコンフィギュレーション／ブロードキャストＨＩＤ伝搬トランザクション用にイネーブルすることは、比較的簡素な８：１ルックアップテーブルを使用して実現される。これは、ＨＩＤ伝搬トランザクションの全てのビット値は事前に既知であるので、ＰＥＣは挿入されるＤＩＭＭ＿ＩＤに基づいて予め計算された値であってよい。
【００８６】
しかしながら、デバイスは、デバイスアドレスが固有である限りにおいて、またはハブがデバイスアドレスを１つ１つのトランザクション用に変更する限りにおいて、無ハブ環境ではデバイスのデフォルトアドレスで作動可能であることは理解されている。そして、さまざまな実施例にかかるブロードキャストＤＩＭＭ＿ＩＤ伝搬トランザクションは、デバイスがそれなしでシームレスに作動できるなら、必須ではない。しかしながら、これは、無ハブの場合、デバイスアドレスは固有であり、有ハブの場合はこれがＨＩＤ伝搬なしで作動するにはハブが１つ１つのトランザクション用の宛先アドレスを変更しなければならない（ｐｖｔ／ｄｉｒｅｃｔ）ということを想定する。
【００８７】
実施例においては、上述のＸＭブロードキャストトランザクションは、ローカルバス上で接続されるデバイス上のＨＩＤ／ＤＩＭＭを更新するためにアクセスするＸＭレジスタと組み合わされている。以下に詳細に説明されるように、実施例においては、ハブがこの固有のコマンドを検知し、コマンドのＨＩＤ／ＬＩＤフィールドのみを置き換え、イネーブルされたら、ＰＥＣも同様に行う。
【００８８】
実施例においては、ローカルバル上の全てのデバイスは、ＸＭバス準拠であって以下の必須ケーパビリティを実装するものでなければならない：１．ブロードキャストトランザクションをサポートしていること（ＳｌａｖｅＡｄｄｒ＝０ｘ００００＿０００を含むトランザクションを受け入れられること）；２．プログラマブルＨＩＤ/ＤＩＭＭ＿ＩＤを有すること：ａ．ＳｌａｖｅデバイスＩＤとしての０ｘＦのＸＭ−Ｒｅｇｉｓｔｅｒオフセット−特にビット［２：０］、これはプログラマブル（リセット後１回書き込み）ＨＩＤ/ＤＩＭＭ＿ＩＤが「１１１」にデフォルト設定されているためである；そして３．それに固有のアドレス｛４ｂ  ＤＴＩ,３ｂ  ＨＩＤ（ｐｒｏｇｒａｍｍｅｄ）｝を復号できること。
【００８９】
実施例においては、デバイスをＩ２Ｃ準拠とするために、ピンストラップからのデフォルトスレーブアドレスをデフォルトとして派生させてよい。その場合、デバイスは次にこのアドレスを、任意のホスト用にＸＭプロトコルレジスタ［０ｘＦ］のデフォルト値として、有ハブまたは無ハブで、後で読み取るために提供する。
【００９０】
実施例においては、上記で指定されるブロードキャストトランザクションを受信すると、ＤＩＭＭのゲートウェイまたはハブが、入って来る値の下位３ビット（または、たとえば他の拡張アプリケーションではこれよりビット数が多い場合も少ない場合もある）をＤＩＭＭ＿ＩＤ／ＨＩＤ固有アドレスに更新する。実施例においては、ホストはバス初期化中の一番最初のトランザクションとしてこのブロードキャストコマンドを送信してよく、実施例においては、トランザクションはそれぞれのＤＩＭＭ上に接続される全セットのデバイスにわたる単一のブロードキャスト書き込みトランザクションとして行われてよい。
【００９１】
図１０は、次に説明するように、さまざまな実施例にかかるそのようなホスト識別子（ＨＩＤ）割り当てトランザクションのためのフォーマットの実施例を示している。図１０を参照すると、実施例においては、ＨＩＤコンフィギュレーショントランザクションはＨＩＤ／ＤＩＭＭ＿ＩＤをＤＩＭＭ上のそれぞれのデバイスのＸＭ  ｐｒｏｔｏｃｏｌ  ｒｅｇｉｓｔｅｒ［１５］へと更新する。ＸＭ  ｐｒｏｔｏｃｏｌ  ｒｅｇｉｓｔｅｒ［１５］は、図１０の１０１０列のＯｆｆｓｅｔ［３：０］＝１１１１により指示されるとおり、固有の実装である。図１０の１０１０列（および全ての他の図の同様の列）は実施例として表されるものであり、他の実施例において、他の組み合わせが使用されてよい。たとえば、オフセットは２ビットに低減されてよい。
【００９２】
引き続き図１０を参照すると、実施例としてのブロードキャストコマンドのフォーマットは基本的に図３ＡのＸＭプロトコルレジスタのコマンドへの実施例としてのフルブロードキャストと同一だが、図１０のコマンドでは、Ｓｒトランザクションにおいて更新されるコントロールバイトは１個のみである。そこで、図１０で示されるように、最初のブロードキャストコールアドレスバイトに続き、追加ヘッダバイト１０１０が、スレーブアドレスマスクフィールド１０２０の中で、「１１１」のマスキングを規定する。上記のように、これは、フルブロードキャストを保証するデバイスアドレスの全７ビットをマスキングするものである。追加ヘッダバイト１０１０もまた、オフセットフィールド１０３０において、レジスタオフセット０ｘＦ、つまりｒｅｇｉｓｔｅｒ［１５］を規定する。復号される場合、これがｈｏｓｔ＿ｉｄ伝搬コマンドであることと、ハブはハブが取得したＤＩＭＭ＿ＩＤ付きのコマンドの中で規定されるアドレスの一部を置き換えることとを、アクセスモード値１０４０とともにそれぞれのハブに指示するのが、このオフセット値である。そして、追加ヘッダバイト１０１０は、ＸＭコントロールレジスタまたはプロトコルレジスタが更新されるとき、第１のアクセスモードを指示するＸＭ−ＲＥＧ−ＭＯＤＥ＝１というアクセスモードのインジケータ１０４０を規定する。
【００９３】
引き続き図を参照すると、追加ヘッダバイト１０１０の後には、Ｓｒヘッダバイト１０１３、および「ペイロード」またはコントロールデータバイト１０１５を含むＳｒトランザクションが続く。Ｓｒヘッダバイト１０１３は、図３Ａで示されるように、０００＿００００というフルブロードキャストデバイスアドレスを有し、また、メモリアクセスが書き込みオペレーションであること、たとえばアドレスをレジスタ１５に書き込むことを指示する。Ｓｒヘッダバイトに続くのはコントロールデータバイト１０１５である。上述のとおり、図３ＡのＸＭレジスタへのフルブロードキャストコマンドとは対照的に、図１０の実施例としてのコマンド１０００には、１つだけのコントロールデータバイトが含まれ、コントロールデータバイトはＢｙｔｅ０である。これには２つのフィールドがある。第１のフィールド１０１６は、Ｂｙｔｅ０の最初の４個のＭＳＢであるＢｙｔｅ０［７：４］をレジスタ１５へ書き込むようにデバイスに対して指示し、第２のフィールド１０１７は、Ｂｙｔｅ０の最初の３個のＬＳＢであるＢｙｔｅ０［３：１］を同じレジスタへ書き込むようにデバイスに対して指示し、最後に、Ｂｙｔｅ０［０］＝０によりフィールド１０１７で指示される、そのレジスタの最後のＬＳＢへ「０」を書き込むものである。そして３個のＬＳＢの［３：１］は、ハブがブロードキャストコマンド１０００をそのＤＩＭＭ上のデバイスへ渡す前に、ハブにより修正される。これらの３ビットは、上述のように、高精度レジスタから、ＤＩＭＭが挿入されたスロットからハブにより取得される。こうしてコマンドがそれぞれのデバイスで実装された後、Ｒｅｇｉｓｔｅｒ［１５］は次のビット値を持つことになる：Ｂｉｔ０はゼロ、Ｂｉｔｓ［３：１］はＨＵＢ／ＤＩＭＭ＿ＩＤで置き換えられる値、そしてＢｉｔｓ［７：４］は「００００」。
【００９４】
本明細書の中で示される特定の実施例において、その意図は８ＤＩＭＭをアドレス指定することである。それゆえ、アドレスの３つのＬＳＢはハブにより置き換えられる。上述のように、この実施例における４つのＭＳＢはデバイスタイプを指示するものである。他の実施例においては、アドレス指定されるＤＩＭＭの数は減っても増えてもよく、それゆえ、ハブによりｂｒａｎｃｈ−ｉｄ（ｏｒ  ＨＵＢ／ＤＩＭＭ_ＩＤ）とともに置き換えられる必要のあるＬＳＢが減っても増えてもよい。
【００９５】
実施例においては、これは、ＰＥＣがイネーブルされる場合、符号１０１５のコントロールバイトのＢｙｔｅ０に続けてＳｒトランザクション内の追加コントロールバイトをコマンド１０００に含めることにより行われる。
【００９６】
ＸＭＳ準拠であって、コマンド１０００を受信すると、ハブは、Ｂｙｔｅ０の割り当てられたアドレス（ＡＢＣＤ＿ＨＩＤ）と、符号１０１３のブロードキャストアドレス（００００＿０００）とを渡す。
【００９７】
ハブは、Ｂｙｔｅ０［３：１］のＨＩＤ／ＤＩＭＭ＿ＩＤ（引き出された値からの静的置き換え）を、以下で説明するように特定のトランザクションの３ビットに更新／置き換えするとともに、トランザクションはホストバスからローカルバスへと渡されることが可能でなければならない。
【００９８】
実施例においては、ハブは、入ってくるブロードキャストについて以下の全ての条件が満たされる場合のみ、ｈｏｓｔ＿ｉｄの更新を実行する：ＸＭ−ＭＯＤＥ−ＲＥＧ１０４０が１；Ｏｆｆｓｅｔ［３：０］１０３０＝１１１１；ＳｌａｖｅＡｄｄｒｅｓｓＭａｓｋ［２：０］１０２０＝１１１。その場合、実施例ではその後に、ハブは、ローカルバス上で、Ｂｙｔｅ０のＬＳＢ３ビットを、割り当てられたＤＩＭＭ＿ＩＤ／ｈｏｓｔＩＤで置き換える。
【００９９】
実施例においては、全てのローカルデバイスはＸＭブロードキャストトランザクションとしてのコマンド１０００の修正フォームを受け取り、それらのＤＩＭＭ＿ＩＤ／ｈｏｓｔＩＤを更新する。そしてこの書き込み値はそれまでの全ての既知の／割り当て済みのデバイスへのアドレスを上書きする。いくつかの実施例においては、オフセットが０ｘＦでのレジスタは、安全な起動プロセスの後に悪意のあるエージェントがＨＩＤを再プログラミングすることがないことを保証するよう、１回書き込みモードで実装されてよい。他の実施例では、ＨＩＤを記憶するのに別のレジスタ、が使用されてよく、上述のように、Ｒｅｇｉｓｔｅｒ［１５］は単なる例である。
【０１００】
実施例においては、ブロードキャスト用にＰＥＣがイネーブルされていても、第１のコマンドセグメント１０１０用のＰＥＣは保持される。第２のコマンドセグメント１０１３用のＰＥＣは基本的に、ハブにより容易に置き換え可能な、精密に１バイトのスレーブアドレスが０ｘ０および１バイトのデータである。さらに単純化すると、実施例においては、Ｂｙｔｅ０［７：３］の値は、ＰＥＣが全て０であり、ちょうど３ビットのＤＩＭＭ＿ＩＤを持つＰＥＣとなるよう、０ｘ０と規定されてよく、それゆえ８つのエントリーを有するストレートなルックアップテーブルであってよい。入ってくるＰＥＣ値は常に０ｘ００００（全てゼロの２バイト）の固定ＣＲＣ-８である。
【０１０１】
図１１は、図１０で示されるように、さまざまな実施例にかかる、ホストコンピューターフルブロードキャストコマンドを介してＤＩＭＭ上で提供されるデバイスのＤＩＭＭ＿ＩＤの実施例としての更新を示している。図１１を参照すると、ホストコンピューター１１１０は、図１０の符号１０００のように、アドレス割り当てコマンド１０１１をブロードキャストする。コマンドは、たとえば図１０の符号１０１５のＢｙｔｅ０のようなコントロールデータバイトを含み、受信デバイスに対してデバイスのレジスタ１５のＬＳＢにｈｏｓｔ＿ｉｄの「０００」を書き込むように命令する。コマンドはコマンドバス１１４１で送信され、実施例においては、これはＸＭＳ準拠のバスである。コマンド１１１１は、コマンドバス１１４１に接続されるそれぞれのＤＩＭＭのハブ内、たとえば符号１１２５のＤＩＭＭ  Ａのハブ１１２０および符号１１３５のＤＩＭＭ  Ｂのハブ１１３０で受信される。コマンドを受信すると、ハブはそれぞれ復号を行い、コマンドがｈｏｓｔ＿ｉｄ伝搬コマンドであるか否かを決定する。その結果、図１１で示されるように、ハブ１１２０とハブ１１３０は、それぞれのＤＩＭＭのローカルバスにわたり転送する前にブロードキャストコマンド１１１１において、３個のＬＳＢを、ホストにより元々送信された値である「０００」から、符号１１２５のＤＩＭＭ  Ａのハブ１１２０では「００１」に、符号１１３５のＤＩＭＭ  Ｂのハブ１１３０では「０１０」に変更する。３個のＬＳＢについて修正された値は、それぞれのＤＩＭＭが挿入されるスロットのファンクションであり、上述のとおり、精密抵抗器からハブにより取得される。それぞれのハブがコマンド１１１１への修正を行うと、コマンドはＤＩＭＭ上の全てのデバイスへ送信される。たとえば、ハブ１１２０はそれに固有に修正されたコマンドを符号１１２５のＤＩＭＭ  Ａ上のデバイス１１２７へ送信し、ハブ１１３０はそれに固有に修正されたコマンドを符号１１３５のＤＩＭＭ  Ｂ上のデバイス１１３７へ、図で示されるように送信する。
【０１０２】
上述のように、図１０のコマンド１０００の特別なケースを除いては、一般的にハブは、受信したブロードキャストコマンドをハブ上のデバイスへ単に送信する。よって、アドレス指定されたＤＩＭＭについては、全てのトランザクションクロックフェイズが透明的にローカルバスとバックとへ（クロックを読み取るために）追加の処理なしで転送される。
【０１０３】
実施例においては、ＨＩＤ伝搬が成功裏に完了して新しいコマンドが発行されると、ハブはそのブランチ／ローカルバスがアドレス指定されているかいないかを（アドレスのＬＳＢ３ビットに基づいて）識別し得る。アドレス指定されていない場合、ハブはＮＡＣＫを有するトランザクションを終了させる。
【０１０４】
アドレス指定されていない場合または選択されていないＤＩＭＭの場合、アドレス指定されていないハブは、ローカルバス上のコマンドトランザクションをアボート／終了させる。
【０１０５】
入ってくるＤＩＭＭ＿ＩＤの３'ｂ１１１がローカルバスのタイオフと一致する場合であっても、ＤＩＭＭ＃８とアドレス指定される。しかしながら、ローカルバスは３'ｂ１１１を使用しているので、これは他のＤＩＭＭでも起きる。しかし、上述のような、ブロードキャストコマンドを使用したＨＩＤ／ＤＩＭＭ＿ＩＤの割り当てが実行されると、このシナリオは起きない。
【０１０６】
いずれにせよ、プログラミングの段階でＨＩＤ／ＤＩＭＭ＿ＩＤの割り当てが行われなかった場合においてエラーシナリオをアドレス指定することは、アボートを実行しているハブがホストバス上のバスコンテンション／マルチドライバを低減するのに役立つ。
【０１０７】
図１２は、さまざまな実施例にかかる、メモリモジュールのハブによるメモリモジュール識別子を取得する段階、ホストからのブロードキャストｈｏｓｔ＿ＩＤ伝搬コマンドを受信する段階、受信したコマンドのｈｏｓｔ＿ＩＤを修正する段階、およびメモリモジュール上の全てのデバイスへのコマンドを伝搬する段階、のプロセス１２００の動作フローの概要を示している。よって、プロセス１２００は、図１１に関連して上述のとおり、図１０のコマンド１０００のようなコマンドの受信に応答してＤＩＭＭのハブによりとられるアクションの詳細を説明するものである。
【０１０８】
プロセス１２００は、さまざまな実施例にかかる、たとえば、図１のゲートウェイ１３０、または、たとえば図１３のゲートウェイ１３２８などの、メモリモジュールのゲートウェイまたはハブにより実行されてよい。プロセス１２００は、たとえば、少なくとも部分的に、たとえば図１のゲートウェイ１３０の復号回路１３３などの、ハブ内の復号回路により実行されてよい。プロセス１２００はブロック１２１０からブロック１２５０までを含んでよい。別の実施例では、プロセス１２００はこれより多いまたは少ないオペレーションを有してよく、またいくつかのオペレーションが別の順序で実行されてよい。
【０１０９】
図１２を参照すると、プロセス１２００は、メモリモジュールが挿入されるスロットに対応するメモリモジュール識別子をメモリモジュールのハブが取得するブロック１２１０で開始する。たとえば、ＤＩＭＭのハブは、高精度レジスタを介して、ＤＩＭＭが挿入されるＤＩＭＭスロット番号にアクセスする。たとえば、８個のＤＩＭＭのあるメモリシステムの場合、メモリモジュール識別子は３ビットの番号であってよい。
【０１１０】
ブロック１２１０から、プロセス１２００は、ハブがホストコンピューターから、アクセスモードのインジケータとレジスタオフセット値とを含むブロードキャストメッセージを受信する、ブロック１２２０へと処理を進める。たとえば、ブロードキャストメッセージは、例示的な実装として、図１０の、第１のアクセスモードを指示するコマンド１０００と同等のコマンドであって、レジスタオフセット値の「１１１１」はｒｅｇｉｓｔｅｒ［１５］を指していてよい。他の実施例では、他の例示的なコマンドを使用して、さまざまな他のレジスタが指されてよい。
【０１１１】
プロセス１２００はブロック１２２０からブロック１２３０へ移動し、ハブがアクセスモードのインジケータを復号して、たとえばＸＭコントロールまたはプロトコルレジスタの第１のアクセスモードが値「１」を持つフラグで指示されるシステムにおいて、ＸＭ-ＲＥＧ-ＭＯＤＥフラグが「１」であるなどのプロトコルレジスタのアクセスモードが指示されていることを決定する。
【０１１２】
プロセス１２００はブロック１２３０からブロック１２４０へ移行し、ここて、ハブは、コマンドがＨｏｓｔ＿ＩＤ値を含むホストＩＤ伝搬コマンドであることを識別する。たとえば、図１０のコマンドを使用して、ｒｅｇｉｓｔｅｒ［１５］を指すオフセットと、スレーブマスク値「１１１」と、「書き込み」を指示する値、たとえばＲｎＷ＝０に設定された、書き込みではなく読み取りのフラグとの組み合わせを前提として、受信したコマンドが、Ｂｙｔｅ０で規定されるコントロールデータビットの一部をハブが修正すべきである特別なホストＩＤ伝搬コマンドであることを、ハブ内の復号回路が認識する。
【０１１３】
最後に、プロセス１２００はブロック１２４０からブロック１２５０へ移行し、ハブはＨｏｓｔ＿ＩＤ値の一部を、検知されたメモリモジュール識別子と置き換え、そこで修正されたコマンドをメモリモジュール上の全てのデバイスへ伝搬する。たとえば、図１１で示されるように、コマンド１１１１の３個のＬＳＢの修正に続き、ハブ１１２０および１１３０はそれぞれ、修正されたコマンド１１１を、それぞれＤＩＭＭ１１２５および１１３５内のそれぞれのローカルバスで送信する。
【０１１４】
そして図１３を参照すると、さまざまな実施例にかかる、本開示内容の実行に適したコンピューターデバイスのブロックダイヤグラムが示されている。示されるように、コンピューターデバイス１３００は、１または複数のプロセッサ１３０２と、システムメモリ１３０４とを含んでよい。それぞれのプロセッサ１３０２は、１または複数のプロセッサコアと、ハードウェアアクセラレータ１３０５とを含んでよい。ハードウェアアクセラレータ１３０５の実施例は、プログラムされたフィールドプログラマブルゲートアレイ（ＦＰＧＡｓ）（図示せず）を含んでよいが、これに限られない。
【０１１５】
コンピューターデバイス１３００はまた、システムメモリ１３０４を含んでよい。実施例においては、システムメモリ１３０４は、ＤＩＭＭ１３２５などの、揮発性または非揮発性の任意の既知のメモリを含んでよい。ＤＩＭＭ１３２５はコマンドバス１３４１を介してプロセッサ１３０２に接続されてよい。さらに、コンピューターデバイス１３００は、マスストレージデバイス１３０６、入力／出力デバイスインターフェイス１３０８（マウス、カーソルコントロール、ディスプレイデバイス（タッチ反応スクリーンを含む）などの、さまざまな入力／出力デバイスとインターフェイスするもの）、および通信インターフェイス１３１０（ネットワークインターフェイスカード、モデムなど）を含んでよい。実施例では、通信インターフェイス１３１０は、近接するフィールド通信を含めた有線または無線の通信をサポートしてよい。エレメントは、１または複数のバスを含んでよく、システムバス１３１２を介して、互いに連結されてよい。複数のバスの場合、１または複数のバスブリッジによりブリッジされてよい（図示せず）。
【０１１６】
実施例においては、ＤＩＭＭ１３２５は、入力インターフェイス（図のサイズを考慮して図示しないが、図１を参照して上述されている）復号回路１３２７と、たとえばデバイス１３２９、デバイス１３３３およびデバイス１３３７などの、それぞれが入力インターフェイス（図示せず）と復号回路１３３１、１３３５および１３３９を復号する、１セットのデバイスと含むゲートウェイ１３２８を含んでよい。デバイス１３２９、１３３３および１３３７は、ローカルバス１３４３にわたり接続されてよいが、ＤＩＭＭ１３２５内で、ゲートウェイ１３２８への接続に限られる。
【０１１７】
実施例においては、オペレーティングシステム、１または複数のアプリケーション、および／またはゲートウェイ１３０の復号回路１３３のさまざまなソフトウェア実装コンポーネントと、図１で示される「ゲートウェイ１３０の後ろ」と規定される、デバイスＡ、ＢおよびＣのそれぞれの復号回路における復号回路１３５またはゲートウェイ１３０内の復号回路１３２７と、図１３に示されるように「ゲートウェイ１３２８の後ろ」と規定される、デバイス１３２９、１３３３および１３３７のそれぞれの復号回路１３３１、１３３５および１３３９（これらを総称して演算ロジック１３２２という）における復号回路１３３１、１３３５、１３３９とのプログラミング命令の実行可能なコードの作業コピーと永久的コピーを記憶するために、システムメモリ１３０４とマスストレージデバイス１３０６が採用されてよい。演算ロジック１３２２を実装するプログラミング命令は、プロセッサ１３０２またはそのような命令にコンパイル可能なたとえばＣなどの上位レベル言語によりサポートされるアセンブラ命令を備えてよい。実施例においては、ハードウェアアクセラレータ１３０５にいくつかの演算ロジックが実装されてよい。実施例においては、演算ロジック１３２２の一部、たとえばコンパイラのランタイム環境と対応する演算ロジック１３２２の一部が、ハードウェアアクセラレータ１３０５で実装されてよい。
【０１１８】
ハードウェアアクセラレータ１３０５のコンフィギュレーション用のプログラミング命令またはビットストリームの実行可能なコードの永久的コピーが、工場、またはフィールドにおいて、たとえばコンパクトディスク（ＣＤ）などの配布媒体（図示せず）を介して、または（配信サーバー（図示せず）通信インターフェイス１３１０からの）を介して、永久的マスストレージデバイス１３０６および／またはハードウェアアクセラレータ１３０５に設置されてよい。
【０１１９】
これらのエレメント１３０２からエレメント１３３３の数、ケーパビリティおよび／または容量は、実施例におけるコンピューターデバイス１３００の使用目的、たとえば実施例におけるコンピューターデバイス１３００がスマートフォン、タブレット、ウルトラブック、ラップトップ、サーバー、セットトップボックス、ゲームコンソール、カメラ、などのいずれであるかにより、変化してよい。エレメント１３１０からエレメント１３４３の具体的な構成は他にも知られているものがあるので、さらには説明しない。
【０１２０】
さらに、本開示は、コンピュータープログラム製品またはコンピュータープログラムを作成するデータの形をとってよく、そのようなコンピュータープログラムまたはデータは、媒体に具現されるコンピューター使用可能なプログラムコード（またはコンピュータープログラムを作成するためのデータ）を有する任意の有形または非一時的な表現媒体に具現されてよい。図１４は、実施例としての、機器による命令の実行に応答して本開示の選択された態様を機器に実施させる命令（または命令を作成するデータ）を記憶させるために使用するのに適し得る、コンピューター可読非一時的記憶媒体を示している。図に示されるように、非一時的コンピューター可読記憶媒体１４０２は、多数のプログラミング命令１４０４（またはプログラミング命令を作成するためのデータ）を含んでよい。プログラミング命令１４０４は、たとえばオペレーションシステムファンクション、１または複数のアプリケーション、および／または本開示の態様と関連するさまざまなプログラミングオペレーションを行うためのプログラミング命令の実行に応答して、たとえばデバイス１３００などのデバイス、またはそのコンポーネントをイネーブルするようにコンフィギュレーションされてよい。
【０１２１】
別の実施例では、代わりにプログラミング命令１４０４（または命令を作成するためのデータ）が複数のコンピューター可読非一時的記憶媒体１４０２上に配置されてよい。別の実施例では、信号などの、プログラミング命令１４０４（または命令を作成するためのデータ）が複数のコンピューター可読非一時的記憶媒体１４０２上に配置されてよい。１または複数のコンピューター使用可能媒体またはコンピューター可読媒体の任意の組み合わせが利用されてよい。コンピューター使用可能媒体またはコンピューター可読媒体は、たとえば１または複数の電子的、磁気的、光学的電磁的、赤外線または半導体のシステム、機器、デバイスまたは伝搬媒体であってよいが、これらに限られない。コンピューター可読媒体のより具体的な例（非網羅的列挙）としては以下のものが含まれる：１または複数の配線を有する電子的接続、ポータブルコンピューターディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、消去可能なプログラマブルリードオンリメモリ（ＥＰＲＯＭまたはフラッシュメモリ）、光ファイバー、ポータブルコンパクトディスクリードオンリメモリ（ＣＤ−ＲＯＭ）、光学記憶デバイス、インターネットまたはイントラネットをサポートするのに使用されるような伝送媒体、または磁気記憶デバイス。注意すべきは、プログラム（またはプログラムを作成するためのデータ）はたとえば紙またはその他の媒体の光学スキャンなどを介して電子的にキャプチャされ、さらにコンパイル、解釈またはその他の処理が適した形で行われ、必要な場合はさらにコンピューターメモリに記憶させる（１または複数の中間記憶媒体の段階を有するか否かを問わない）ことが可能なので、コンピューター使用可能媒体またはコンピューター可読媒体は、プログラム（またはプログラムを作成するためのデータ）が印刷される紙または他の適した媒体であってもよいことである。本文書の文脈において、コンピューター使用可能媒体またはコンピューター可読媒体は、命令実行システム、機器またはデバイスによりまたはそれらと関連して使用されるためにプログラム（またはプログラムを作成するためのデータ）を保持、記憶、通信、伝搬または転送することができる任意の媒体であってもよい。コンピューター使用可能媒体は、コンピューター使用可能なプログラムコード（またはプログラムコードを作成するためのデータ）がベースバンドとしてまたは搬送波の一部として当該媒体に具現された、伝搬データ信号を含んでよい。コンピューター使用可能なプログラムコード（またはプログラムコードを作成するためのデータ）は、ワイヤレス、ワイヤライン、光ファイバーケーブル、ＲＦなどを含むがこれらに限られない、任意の適切な媒体を使用して転送されてよい。
【０１２２】
さまざまな実施例において、本明細書で説明されるプログラムコード（またはプログラムコードを作成するためのデータ）は、１または複数の圧縮フォーマット、暗号化されたフォーマット、断片化されたフォーマット、パッケージされたフォーマットなどに記憶されてよい。本明細書で説明されるプログラムコード（またはプログラムコードを作成するためのデータ）は、演算デバイスおよび／または他の機械により直接読み取りおよび／または実行可能にするために必要な、１または複数のインストール、修正、適応化、更新、組み合わせ、補充、コンフィギュレーション、復号、圧縮解除、開梱、配信、最割り当て等を要してよい。たとえば、プログラムコード（またはプログラムコードを作成するためのデータ）は、複数の部分に分けて別々の演算デバイスにおいて個別に圧縮、暗号化および記憶させられて、その部分が復号、圧縮解除および組み合わされた場合、そのプログラムコード（またはプログラムコードを作成するためのデータ）を本明細書の中で説明されるような形で実装する実行可能な１セットの命令を形成してよい。別の実施例では、プログラムコード（またはプログラムコードを作成するためのデータ）は、コンピューターで読み取り可能だが特定の演算デバイスまたは他のデバイス上での命令を実行するためにライブラリ（たとえばダイナミックリンクライブラリ）、ソフトウェア開発キット（ＳＤＫ）、アプリケーションプログラミングインターフェイス（ＡＰＩ）等の追加を要求する状態で記憶させられてよい。他の実施例ではプログラムコード（またはプログラムコードを作成するためのデータ）は、プログラムコード（またはプログラムコードを作成するためのデータ）が全体としてまたは部分的に実行／使用される前にコンフィギュレーション（たとえば設定記憶、データ入力、ネットワークアドレス記録など）が行われる必要があってよい。そして、開示されるプログラムコード（またはプログラムコードを作成するためのデータ）は、そのような機械可読な命令および／またはプログラム（またはそのような機械可読な命令を作成するためのデータおよび／またはプログラム）を、記憶される場合あるいは休止時または移送時の機械可読な命令および／またはプログラムの特定のフォーマットまたは状態にかかわらず、包含するよう意図されるものである。
【０１２３】
本開示のオペレーションを実行するためのコンピュータープログラムコードは、Ｊａｖａ（登録商標）、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向のプログラミング言語、および「Ｃ」プログラミング言語またはそれに類似するプログラミング言語などの従来の手続き型プログラミング言語を含む、１または複数のプログラミング言語の任意の組み合わせで書かれてよい。プログラムコードは、完全にユーザーのコンピューター上で、部分的にリモートコンピューター上で、スタンドアローンソフトウェアパッケージとして、部分的にユーザーのコンピューター上でおよび部分的にリモートコンピューター上で、または完全にリモートコンピューター上またはサーバー上で、実行されてよい。後者のシナリオでは、リモートコンピューターは、ローカルエリアネットワーク（ＬＡＮ）またはワイドエリアネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを通してユーザーのコンピューターに接続されてよく、また、外部コンピューターに接続されてよい（たとえば、インターネットサービスプロバイダーを使用してインターネットを通して）。
【０１２４】
図１４は、上述され且つさまざまな実施例にかかる実施例に係る、ゲートウェイ１３０の復号回路１３３、および、図１に示されるように「ゲートウェイ１３０の後ろ」と規定されるデバイスＡ、ＢおよびＣのそれぞれにおける復号回路１３５、または、ゲートウェイ１３０内の復号回路１３２７、および、図１３に示される「ゲートウェイ１３２８の後ろ」と規定されるデバイス１３２９、１３３３および１３３７のそれぞれにおける復号回路１３３１、１３３５および１３３９の全ての（または一部の）ソフトウェア実装を実装し、および／または図２から図１０のコマンド２００からコマンド１０００の送信と処理（の態様）を実施し、および／または上述のように図１１のプロセス１１００および図１２のプロセス１２００を実施するようにコンフィギュレーションされた命令を有する、コンピューター可読記憶媒体１４００を示している。図で示されるように、コンピューター可読記憶媒体１４０２は、多数のプログラミング命令またはビットストリーム１４０４の実行可能コードを含んでよい。プログラミング命令（またはビットストリーム）１４０４の実行可能コードは、たとえばコンピューターデバイス１３００などのデバイスを、実行可能コード／プログラミング命令（または暗号化されたハードウェアアクセラレータのオペレーション）に応答して復号し、ゲートウェイ１３０の復号回路１３３、および、図１に示される「ゲートウェイ１３０の後ろ」と規定されるデバイスＡ、ＢおよびＣのそれぞれにおける復号回路１３５、または、ゲートウェイ１３０内の復号回路１３２７、および、図１３に示される「ゲートウェイ１３２８の後ろ」と規定されるデバイス１３２９、１３３３および１３３７のそれぞれにおける復号回路１３３１、１３３５および１３３９により実行されるプロセス（の態様）を実行し、および／または図２から図１０のコマンド２００からコマンド１０００の送信と処理（の態様）を実施し、および／または前述のように図１１のプロセス１１００および図１２のプロセス１２００を実施するようにコンフィギュレーションされてよい。別の実施例においては、代わりに実行可能なコード／プログラミング命令／ビットストリーム１４０４が複数の非一時的なコンピューター可読記憶媒体１４０２に配されてよい。実施例においては、コンピューター可読記憶媒体１４０２は非一時的なものであってよい。さらに他の実施例においては、実行可能なコード／プログラミング命令１４０４は、信号などの一時的コンピューター可読媒体において復号されてよい。
【０１２５】
図１３に戻って参照すると、１つの実施例においては、少なくとも１または複数のプロセッサ１３０２が、図２から図１２を参照して上述される全てのまたは選択されたオペレーションを実施するようにコンフィギュレーションされたいくつかまたは全ての演算ロジック１３２２（システムメモリ１３０４および／またはマスストレージデバイス１３０６の代わりに）を持つコンピューター可読記憶媒体とともにパッケージされてよい。１つの実施例においては、プロセッサ１３０２のうち少なくとも１つが、いくつかまたは全ての演算ロジック１３２２を持つコンピューター可読記憶媒体とともにパッケージされてシステム・イン・パッケージ（ＳｉＰ）を形成してよい。１つの実施例においては、プロセッサ１３０２のうち少なくとも１つが、いくつかまたは全ての演算ロジック１３２２を有するコンピューター可読記憶媒体とともに同じ型の上に組み込まれてよい。１つの実施例においては、プロセッサ１３０２のうち少なくとも１つが、いくつかまたは全ての演算ロジック１３２２を有するコンピューター可読記憶媒体とともにパッケージされてシステム・オン・チップ（ＳｏＣ）を形成してよい。少なくとも１つの実施例においては、ＳｏＣは、たとえばハイブリッド演算タブレット／ラップトップ（ただしこれに限られない）に利用されてよい。
【０１２６】
本開示における技術の例示としての例を以下に提示する。技術の実施例には、以下で説明される１又は複数の、およびそれらの組み合わせの例が含まれる。実施例
【０１２７】
実施例１は、デバイスであって；ホストコンピューターからブロードキャストコマンドを受信するための入力インターフェイスを備え、前記ブロードキャストコマンドは、アクセスモード指示と；前記入力インターフェイスと連結される復号回路であって；受信した前記アクセスモード指示に少なくとも部分的に基づいて、前記ブロードキャストコマンドが、１または複数のデバイスの１または複数の予め規定された設定またはコントロールレジスタにアクセスするように指示されること、または１または複数のデバイスの１または複数の内部レジスタにアクセスするよう指示されることを判定し；前記判定に応じて、前記設定またはコントロールレジスタへの前記アクセスまたは前記１または複数の内部レジスタへのアクセスを実装する復号回路を有し；前記デバイスは、前記ホストコンピューターに連結されるメモリモジュール上に配置される。
【０１２８】
実施例２は、前記ブロードキャストコマンドが、メモリモジュールのゲートウェイにより最初に受信され、次に前記メモリモジュール内でローカルバス上の前記ゲートウェイから前記入力インターフェイスにより受信される、実施例１および／または本明細書の他のいずれかの実施例に記載のデバイスである。
【０１２９】
実施例３は、コマンドバスおよび前記ローカルバスは半導体技術協会のＸＭ仕様（ＸＭ仕様）に準拠している、実施例２および／または本明細書の他のいずれかの実施例に記載のデバイスである。
【０１３０】
実施例４は、前記デバイスの１または複数の予め規定された前記設定またはコントロールレジスタは前記ＸＭ仕様により規定されたレジスタである、実施例３および／または本明細書の他のいずれかの実施例に記載のデバイスである。
【０１３１】
実施例５は、前記メモリモジュールはデュアルインラインメモリモジュール（ＤＩＭＭ）である、実施例１および／または本明細書の他のいずれかの実施例に記載のデバイスである。
【０１３２】
実施例６は、前記デバイスは、電圧レギュレータ、温度センサ、フラッシュメモリ記憶タイミング情報、シリアルプレゼンスディテクト（ＳＰＤ）デバイス、またはレジスタクロックドライバ（ＲＣＤ）のいずれか１つである、実施例１および／または本明細書の他のいずれかの実施例に記載のデバイスである。
【０１３３】
実施例７は、前記デバイスの１または複数の内部レジスタは、ＸＭ仕様により規定された、予め規定されたオフセットでアクセス可能な、請実施例１および／または本明細書の他のいずれかの実施例に記載のデバイスである。
【０１３４】
実施例８は、前記ブロードキャストコマンドはさらに、１または複数のデバイスアドレスと、デバイスアドレスマスキングデータとを有し、前記復号回路はさらに；前記デバイスアドレスマスキングデータにより指示される前記１または複数のデバイスアドレスの一部を無視し；前記１または複数のデバイスアドレスの残りの部分が自己のアドレスの対応する部分と一致するか否かを判定する、実施例１および／または本明細書の他のいずれかの実施例に記載のデバイスである。
【０１３５】
実施例９は、前記ブロードキャストコマンドに含まれる前記１または複数のデバイスアドレスは７ビット長であり、前記デバイスアドレスマスキングデータは、前記１または複数のデバイスアドレスの１つから７つの最下位ビット（最下位ビット＝ＬＳＢ）の間は無視されることを指示する、請求項８および／または本明細書の他のいずれかの実施例に記載のデバイスである。
【０１３６】
実施例１０は、前記ブロードキャストコマンドはさらに、指示されるアクセスを開始する前記デバイスの、初期の予め規定された設定またはコントロールレジスタ、または内部レジスタのロケーションを指定するオフセットを有する、実施例１および／または本明細書の他のいずれかの実施例に記載のデバイスである。
【０１３７】
実施例１１は、１セットの命令を備える１または複数の非一時的なコンピューター可読記憶記録媒体であって、前記１セットの命令は、メモリモジュールに設けられるデバイスにより実行される場合に、前記デバイスに；ホストコンピューターからブロードキャストコマンドを受信することであって、前記ブロードキャストコマンドは、オフセットで開始する１または複数のデバイスの１または複数のレジスタへの設定またはコントロールデータの書き込みを行うように指示され、デバイスアドレスおよびデバイスアドレスマスキングデータを含むことと；前記デバイスアドレスマスキングデータを適用して前記デバイスアドレスの一部をマスキングすることと；前記デバイスアドレスのマスキングされていない部分が前記デバイスのアドレスの対応する部分と一致するかどうかを判定することと；前記判定に応答して、前記オフセットで開始する前記デバイスの前記１または複数のレジスタに前記データを書き込むことと；を実行させる、１または複数の非一時的なコンピューター可読記憶媒体である。
【０１３８】
実施例１２は、前記ブロードキャストコマンドが、前記ホストコンピューターを前記メモリモジュールへ接続するコマンドバス上でデバイスにより受信されるとともに、前記コマンドバスはＸＭ仕様に準拠している、実施例１１および／または本明細書の他のいずれかの実施例に記載の１または複数の非一時的なコンピューター可読記憶媒体である。
【０１３９】
実施例１３は、前記ブロードキャストコマンドがさらに、アクセスモードのインジケータを含み、実行される場合は、前記デバイスに前記アクセスモードのインジケータを復号させて前記アクセスモードが前記デバイスの１または複数の予め規定された設定またはコントロールレジスタに対するものであることを判定させる命令をさらに備える、実施例１１および／または本明細書の他のいずれかの実施例の１または複数の非一時的なコンピューター可読記憶媒体である。
【０１４０】
実施例１４は、前記１または複数の予め規定された設定またはコントロールレジスタがＸＭ仕様で規定されており、前記データは指定される前記１または複数の予め規定されたコントロールレジスタへ書き込まれるコントロールデータを含む、実施例１３および／または本明細書の他のいずれかの実施例に記載の１または複数の非一時的なコンピューター可読記憶媒体である。
【０１４１】
実施例１５は、前記コントロールデータは複数の２バイトペアとなっており、前記複数の２バイトペアは、コントロールデータバイトと、対応するマスクバイトとを含み、前記対応するマスクバイトは、前記コントロールデータバイトのどのビットが前記デバイスの予め規定されたコントロールレジスタへ書き込まれるべきかと、前記コントロールデータバイトのどのビットが無視されるべきかとを指示する、実施例１４および／または本明細書の他のいずれかの実施例に記載の１または複数の非一時的なコンピューター可読記憶媒体である。
【０１４２】
実施例１６は、前記デバイスアドレスマスキングデータは、前記データが前記コマンドバスを介して前記ホストコンピューターへ接続される複数のメモリモジュールにわたる同じタイプのデバイスへ書き込まれるように構成される、実施例１２および／または本明細書の他のいずれかの実施例に記載の１または複数の非一時的なコンピューター可読記憶媒体である。
【０１４３】
実施例１７は、ＤＩＭＭにおいてブロードキャストコマンドをホストコンピューターから受信する段階であって、前記ブロードキャストコマンドは、アクセスモードのインジケータとレジスタオフセット値とを含む、受信する段階と；前記アクセスモードのインジケータを復号して、プロトコルレジスタのアクセスモードが指示されたことを判定する段階と；前記ブロードキャストコマンドが、少なくとも一部においてアクセスモードのインジケータとレジスタオフセット値とに基づいて、前記レジスタオフセットにより指示される前記プロトコルレジスタへＤＩＭＭ識別子（ＤＩＭＭ＿ＩＤ）値を書き込むように受信デバイスに対して指示するＤＩＭＭ＿ＩＤ伝搬コマンドであることを識別する段階と；前記識別に応答して、前記ブロードキャストコマンドを修正して、ＤＩＭＭ＿ＩＤの一部をローカルＤＩＭＭ識別子と置き換える段階と；修正された前記ブロードキャストコマンドをローカルバスにわたり前記ＤＩＭＭ上の全てのデバイスへ伝搬する段階と；を備える、方法である。
【０１４４】
実施例１８は、前記ＤＩＭＭが挿入されるスロットから前記ローカルＤＩＭＭ識別子を取得する段階をさらに備える、実施例１７および／または本明細書の他のいずれかの実施例に記載の方法である。
【０１４５】
実施例１９は、前記ＤＩＭＭが、前記ホストコンピューターに接続されるＮ個のＤＩＭＭのうちのいずれか１つであって、Ｋを整数として、Ｎ＝２Ｋであり；前記ローカルＤＩＭＭ識別子はＫ個のビットを含み、前記ブロードキャストコマンドを修正する段階はさらに、前記ローカルＤＩＭＭ識別子を有するＤＩＭＭ＿ＩＤのＫ個の最下位ビット（ＬＳＢ）を置き換える段階を含む；実施例１７および／または本明細書の他のいずれかの実施例に記載の方法である。
【０１４６】
実施例２０は、前記方法が、前記ＤＩＭＭのゲートウェイあるいはその一部により実行され、また前記ローカルバスはＸＭ仕様に準拠している、実施例１７および／または本明細書の他のいずれかの実施例に記載の方法である。
【０１４７】
実施例２１は、オフセットで開始する１または複数のデバイスの１または複数のレジスタへ書き込みの設定またはコントロールデータが指示されるブロードキャストコマンドをホストコンピューターから受信し、バイスアドレスおよびデバイスアドレスマスキングデータを含める段階と；前記デバイスアドレスマスキングデータを適用して前記デバイスアドレスの一部をマスキングする段階と；前記デバイスアドレスのマスキングされていない部分が前記デバイスのアドレスの対応する部分と一致するかどうかを判定する段階と；前記判定に応答して、前記オフセットで開始する前記デバイスの前記１または複数のレジスタに前記データを書き込む段階と；を備える方法である。
【０１４８】
実施例２２は、前記方法が、さらにコマンドバス上で戦記ブロードキャストコマンドを受信する段階を備え、前記コマンドバスはＸＭ仕様に準拠している、実施例２１および／または本明細書の他のいずれかの実施例に記載の方法である。
【０１４９】
実施例２３は、前記ブロードキャストコマンドがさらにアクセスモードのインジケータを有し、さらに前記アクセスモードのインジケータを復号して前記アクセスモードが前記デバイスの１または複数の予め規定された設定またはコントロールレジスタを判定する、実施例２１および／または本明細書の他のいずれかの実施例に記載の方法である。
【０１５０】
実施例２４は、前記１または複数の予め規定された設定またはコントロールレジスタがＸＭ仕様で規定されており、前記データは指定される前記１または複数の予め規定されたコントロールレジスタへ書き込まれるコントロールデータを含む、実施例２３および／または本明細書の他のいずれかの実施例に記載の方法である。
【０１５１】
実施例２５は、前記コントロールデータは複数の２バイトペアとなっており、前記複数の２バイトペアは、コントロールデータバイトと、対応するマスクバイトとを含み、前記対応するマスクバイトは、前記コントロールデータバイトのどのビットが前記デバイスの予め規定されたコントロールレジスタへ書き込まれるべきかと、前記データバイトのどのビットが無視されるべきかとを指示する、実施例２４および／または本明細書の他のいずれかの実施例に記載の方法である。
【０１５２】
実施例２６は、前記デバイスアドレスマスキングデータは、前記データが前記コマンドバスを介して前記ホストコンピューターへ接続される複数のメモリモジュールにわたる同じタイプのデバイスへ書き込まれるように構成される、実施例２２および／または本明細書の他のいずれかの実施例に記載の方法である。
【０１５３】
実施例２７は、ＤＩＭＭにおいてブロードキャストコマンドをホストコンピューターから受信する手段であって、前記ブロードキャストコマンドは、アクセスモードのインジケータとレジスタオフセット値とを含む、受信する手段と；前記アクセスモードのインジケータを復号する手段と、プロトコルレジスタのアクセスモードが指示されたことを判定する手段と；前記コマンドが、少なくとも一部においてアクセスモードのインジケータとレジスタオフセット値とに基づいて、前記レジスタオフセットにより指示される前記プロトコルレジスタへＤＩＭＭ識別子（ＤＩＭＭ＿ＩＤ）値を書き込むように受信デバイスに対して指示するＤＩＭＭ＿ＩＤ伝搬コマンドであることを識別する手段と；前記ブロードキャストコマンドを修正して、ＤＩＭＭ＿ＩＤの一部をローカルＤＩＭＭ識別子と置き換える手段と；修正された前記ブロードキャストコマンドをローカルバスにわたり前記ＤＩＭＭ上の全てのデバイスへ伝搬する手段と；を備える、演算用装置である。
【０１５４】
実施例２８は、前記ＤＩＭＭが挿入されるスロットから前記ローカルＤＩＭＭ識別子を取得する段階をさらに備える、実施例２７および／または本明細書の他のいずれかの実施例に記載の演算用装置である。
【０１５５】
実施例２９は、前記ＤＩＭＭが、前記ホストコンピューターに接続されるＮ個のＤＩＭＭのうちのいずれか１つであって、Ｋを整数として、Ｎ＝２Ｋであり；前記ローカルＤＩＭＭ識別子はＫ個のビットを含み、前記ブロードキャストコマンドを修正する手段はさらに、前記ローカルＤＩＭＭ識別子を有するＤＩＭＭ＿ＩＤのＫ個の最下位ビット（ＬＳＢ）を置き換える手段を含む；実施例２７および／または本明細書の他のいずれかの実施例に記載の演算用装置である。
【０１５６】
実施例３０は、前記演算用装置が、前記ＤＩＭＭのゲートウェイあるいはその一部であり、また前記ローカルバスはＸＭ仕様に準拠している、実施例２７および／または本明細書の他のいずれかの実施例に記載の装置である。
【０１５７】
実施例３１は、オフセットで開始する１または複数のデバイスの１または複数のレジスタへ書き込みの設定またはコントロールデータが指示されるブロードキャストコマンドをホストコンピューターから受信し、バイスアドレスおよびデバイスアドレスマスキングデータを含める手段と； 前記デバイスアドレスマスキングデータを適用して前記デバイスアドレスの一部をマスキングする手段と；前記デバイスアドレスのマスキングされていない部分が前記デバイスのアドレスの対応する部分と一致するかどうかを判定する手段と；前記オフセットで開始する前記デバイスの前記１または複数のレジスタに前記データを書き込む手段と；を備える演算用装置である。
【０１５８】
実施例３２は、前記演算用装置が、さらにコマンドバス上で戦記ブロードキャストコマンドを受信する手段を備え、前記コマンドバスはＸＭ仕様に準拠している、実施例３１および／または本明細書の他のいずれかの実施例に記載の装置である。
【０１５９】
実施例３３は、前記ブロードキャストコマンドがさらにアクセスモードのインジケータを有し、さらに前記アクセスモードのインジケータを復号して前記アクセスモードが前記デバイスの１または複数の予め規定された設定またはコントロールレジスタを判定する手段を有する、実施例３１および／または本明細書の他のいずれかの実施例に記載の演算用装置である。
【０１６０】
実施例３４は、前記１または複数の予め規定された設定またはコントロールレジスタがＸＭ仕様で規定されており、前記データは指定される前記１または複数の予め規定されたコントロールレジスタへ書き込まれるコントロールデータを含む、実施例３３および／または本明細書の他のいずれかの実施例に記載の演算用装置である。
【０１６１】
実施例３５は、前記コントロールデータは複数の２バイトペアとなっており、前記複数の２バイトペアは、コントロールデータバイトと、対応するマスクバイトとを含み、前記対応するマスクバイトは、前記コントロールデータバイトのどのビットが前記デバイスの予め規定されたコントロールレジスタへ書き込まれるべきかと、前記データバイトのどのビットが無視されるべきかとを指示する、実施例３４および／または本明細書の他のいずれかの実施例に記載の演算用装置である。
【０１６２】
実施例３６は、前記デバイスアドレスマスキングデータは、前記データが前記コマンドバスを介して前記ホストコンピューターへ接続される複数のメモリモジュールにわたる同じタイプのデバイスへ書き込まれるように構成される、実施例３２および／または本明細書の他のいずれかの実施例に記載の演算用装置である。
［その他の考えられ得る請求項目］
（項目１）
デバイスであって、
ホストコンピューターからブロードキャストコマンドを受信するための入力インターフェイスを備え、上記ブロードキャストコマンドは、アクセスモード指示と、
上記入力インターフェイスと連結される復号回路であって、
受信した上記アクセスモード指示に少なくとも部分的に基づいて、上記ブロードキャストコマンドが、１または複数のデバイスの１または複数の設定またはコントロールレジスタにアクセスするように指示されること、または１または複数のデバイスの１または複数の内部レジスタにアクセスするよう指示されることを判定し、
上記判定に応じて、上記設定またはコントロールレジスタへの上記アクセスまたは上記１または複数の内部レジスタへのアクセスを実装する復号回路と
を有し、
上記デバイスは、上記ホストコンピューターに連結されるメモリモジュール上に配置される、デバイス。
（項目２）
上記ブロードキャストコマンドが、メモリモジュールのゲートウェイにより最初に受信され、次に上記メモリモジュール内でローカルバス上の上記ゲートウェイから上記入力インターフェイスにより受信される、請求項１に記載のデバイス。
（項目３）
コマンドバスおよび上記ローカルバスは半導体技術協会のＸＭ仕様（ＸＭ仕様）に準拠している、請求項２に記載のデバイス。
（項目４）
上記デバイスの１または複数の予め規定された上記設定またはコントロールレジスタは上記ＸＭ仕様により規定されたレジスタである、請求項３のデバイス。
（項目５）
上記メモリモジュールはデュアルインラインメモリモジュール（ＤＩＭＭ）である、請求項１に記載のデバイス。
（項目６）
上記デバイスは、電圧レギュレータ、温度センサ、フラッシュメモリ記憶タイミング情報、シリアルプレゼンスディテクト（ＳＰＤ）デバイス、またはレジスタクロックドライバ（ＲＣＤ）のいずれか１つである、請求項１に記載のデバイス。
（項目７）
上記デバイスの１または複数の内部レジスタは、ＸＭ仕様により規定された、予め規定されたオフセットでアクセス可能な、請求項１に記載のデバイス。
（項目８）
上記ブロードキャストコマンドはさらに、１または複数のデバイスアドレスと、デバイスアドレスマスキングデータとを有し、上記復号回路はさらに、
上記デバイスアドレスマスキングデータにより指示される上記１または複数のデバイスアドレスの一部を無視し、
上記１または複数のデバイスアドレスの残りの部分が自己のアドレスの対応する部分と一致するか否かを判定する、
請求項１に記載のデバイス。
（項目９）
上記ブロードキャストコマンドに含まれる上記１または複数のデバイスアドレスは７ビット長であり、上記デバイスアドレスマスキングデータは、上記１または複数のデバイスアドレスの１つから７つの最下位ビット（最下位ビット＝ＬＳＢ）の間は無視されることを指示する、請求項８に記載のデバイス。
（項目１０）
上記ブロードキャストコマンドはさらに、指示されるアクセスを開始する上記デバイスの、初期の予め規定された設定またはコントロールレジスタ、または内部レジスタのロケーションを指定するオフセットを有する、請求項１に記載のデバイス。
（項目１１）
１セットの命令を備える１または複数の非一時的なコンピューター可読記憶記録媒体であって、上記１セットの命令は、メモリモジュールに設けられるデバイスにより実行される場合に、上記デバイスに、
ホストコンピューターからブロードキャストコマンドを受信することであって、上記ブロードキャストコマンドは、オフセットで開始する１または複数のデバイスの１または複数のレジスタへの設定またはコントロールデータの書き込みを行うように指示され、デバイスアドレスおよびデバイスアドレスマスキングデータを含むことと、
上記デバイスアドレスマスキングデータを適用して上記デバイスアドレスの一部をマスキングすることと、
上記デバイスアドレスのマスキングされていない部分が上記デバイスのアドレスの対応する部分と一致するかどうかを判定することと、
上記判定に応答して、上記オフセットで開始する上記デバイスの上記１または複数のレジスタに上記データを書き込むことと
を実行させる、１または複数の非一時的なコンピューター可読記憶媒体。
（項目１２）
上記ブロードキャストコマンドが、上記ホストコンピューターを上記メモリモジュールへ接続するコマンドバス上でデバイスにより受信されるとともに、上記コマンドバスはＸＭ仕様に準拠している、請求項１１に記載の１または複数の非一時的なコンピューター可読記憶媒体。
（項目１３）
上記ブロードキャストコマンドがさらに、アクセスモードのインジケータを含み、実行される場合は、上記デバイスに上記アクセスモードのインジケータを復号させて上記アクセスモードが上記デバイスの１または複数の予め規定された設定またはコントロールレジスタに対するものであることを判定させる命令をさらに備える、請求項１１の１または複数の非一時的なコンピューター可読記憶媒体。
（項目１４）
上記１または複数の予め規定された設定またはコントロールレジスタがＸＭ仕様で規定されており、上記データは指定される上記１または複数の予め規定されたコントロールレジスタへ書き込まれるコントロールデータを含む、請求項１３に記載の１または複数の非一時的なコンピューター可読記憶媒体。
（項目１５）
上記コントロールデータは複数の２バイトペアとなっており、上記複数の２バイトペアは、コントロールデータバイトと、対応するマスクバイトとを含み、上記対応するマスクバイトは、上記コントロールデータバイトのどのビットが上記デバイスの予め規定されたコントロールレジスタへ書き込まれるべきかと、上記データバイトのどのビットが無視されるべきかとを指示する、請求項１４に記載の１または複数の非一時的なコンピューター可読記憶媒体。
（項目１６）
上記デバイスアドレスマスキングデータは、上記データが上記コマンドバスを介して上記ホストコンピューターへ接続される複数のメモリモジュールにわたる同じタイプのデバイスへ書き込まれるように構成される、請求項１２に記載の１または複数の非一時的なコンピューター可読記憶媒体。
（項目１７）
ＤＩＭＭにおいてブロードキャストコマンドをホストコンピューターから受信する段階であって、上記ブロードキャストコマンドは、アクセスモードのインジケータとレジスタオフセット値とを含む、受信する段階と、
上記アクセスモードのインジケータを復号して、プロトコルレジスタのアクセスモードが指示されたことを判定する段階と、
上記コマンドが、少なくとも一部においてアクセスモードのインジケータとレジスタオフセット値とに基づいて、上記レジスタオフセットにより指示される上記プロトコルレジスタへＤＩＭＭ識別子（ＤＩＭＭ＿ＩＤ）値を書き込むように受信デバイスに対して指示するＤＩＭＭ＿ＩＤ伝搬コマンドであることを識別する段階と、
上記識別に応答して、上記ブロードキャストコマンドを修正して、ＤＩＭＭ＿ＩＤの一部をローカルＤＩＭＭ識別子と置き換える段階と、
修正された上記ブロードキャストコマンドをローカルバスにわたり上記ＤＩＭＭ上の全てのデバイスへ伝搬する段階と
を備える、方法。
（項目１８）
上記ＤＩＭＭが挿入されるスロットから上記ローカルＤＩＭＭ識別子を取得する段階をさらに備える、請求項１７に記載の方法。
（項目１９）
上記ＤＩＭＭは、上記ホストコンピューターに接続されるＮ個のＤＩＭＭのうちのいずれか１つであって、Ｋを整数として、Ｎ＝２Ｋであり、
上記ローカルＤＩＭＭ識別子はＫ個のビットを含み、上記ブロードキャストコマンドを修正する段階はさらに、上記ローカルＤＩＭＭ識別子を有するＤＩＭＭ＿ＩＤのＫ個の最下位ビット（ＬＳＢ）を置き換える段階を含む、
請求項１７に記載の方法。
（項目２０）
上記方法は、上記ＤＩＭＭのゲートウェイあるいはその一部により実行され、また上記ローカルバスはＸＭ仕様に準拠している、請求項１７に記載の方法。
【図１】
2020135861.tif 000003
【図２】
2020135861.tif 000004
【図３Ａ】
2020135861.tif 000005
【図３Ｂ】
2020135861.tif 000006
【図４】
2020135861.tif 000007
【図５】
2020135861.tif 000008
【図６】
2020135861.tif 000009
【図７】
2020135861.tif 000010
【図８】
2020135861.tif 000011
【図９】
2020135861.tif 000012
【図１０】
2020135861.tif 000013
【図１１】
2020135861.tif 000014
【図１２】
2020135861.tif 000015
【図１３】
2020135861.tif 000016
【図１４】
2020135861.tif 000017
【外国語明細書】
2020135861000001.pdf