JP7484068B2 - 拡張モード(xm)バス上のデバイスへのxmモードバス変更、コンフィギュレーションレジスタアクセスおよびブロードキャスト/マルチキャストトランザクション - Google Patents

拡張モード(xm)バス上のデバイスへのxmモードバス変更、コンフィギュレーションレジスタアクセスおよびブロードキャスト/マルチキャストトランザクション Download PDF

Info

Publication number
JP7484068B2
JP7484068B2 JP2020003112A JP2020003112A JP7484068B2 JP 7484068 B2 JP7484068 B2 JP 7484068B2 JP 2020003112 A JP2020003112 A JP 2020003112A JP 2020003112 A JP2020003112 A JP 2020003112A JP 7484068 B2 JP7484068 B2 JP 7484068B2
Authority
JP
Japan
Prior art keywords
command
dimm
broadcast
register
byte
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020003112A
Other languages
English (en)
Other versions
JP2020135861A5 (ja
JP2020135861A (ja
Inventor
シー. ベンカトラマン ギリシュ
バスカー ラジェシュ
ヴェルギス ジョージ
アール. ゴールズ ジョン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2020135861A publication Critical patent/JP2020135861A/ja
Publication of JP2020135861A5 publication Critical patent/JP2020135861A5/ja
Application granted granted Critical
Publication of JP7484068B2 publication Critical patent/JP7484068B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0653Configuration or reconfiguration with centralised address assignment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0692Multiconfiguration, e.g. local and global addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)

Description

本発明は、コンピューティング、特にXMバス上に接続されるデバイスへのメモリモジュールレジスタの構成およびブロードキャストトランザクションまたはマルチキャストトランザクションに関する機器、コンピューター可読媒体および方法の技術分野に関する。
半導体技術協会(JEDEC)は現在、たとえばデュアルインラインメモリモジュール(DIMM)などのメモリモジュールに使われるXM仕様(XMS)を作成中である。XMSは、たとえばI2C/SMBUSインターフェイスなど、DIMMのシリアルプレゼンスディテクト(SPD)モジュールと通信するのに使われる既存のシリアル入力/出力インターフェイスに代わるものとしての12.5Mbpsインターフェイス(XMインターフェイス)について規定する。提案されるXMインターフェイスは、その帯域幅および低減された終端電圧レール(1ボルト)により最初にDDR5 DIMM上、にサーバー上で使われることが予測される。
XMSは、たとえばDIMM内のデバイスなどの、準拠した接続されるデバイスにより実装されるべきレジスタおよびコントロールフラグビットを規定する。一般的に、ホストコンピューターまたはプロセッサは、デバイス挙動を構成、制御および修正するべく、さまざまな接続デバイスにわたり同一オフセットのレジスタに繰り返しアクセスする必要がある。現在、ホストコンピューターはこれらのレジスタにアクセスして、バスレイテンシ、エリアおよび電力をかなり消費する。さらに、現在サポートされているブロードキャスト転送は、たとえ複数の受信デバイスのうち1つのデバイス上でわずか1ビットでも異なっていても、全てのデバイス少数のコントロールフラグを組み合わせることがあり、ホストのブロードキャストコマンドが使用不能となる。
さまざまな実施例にかかる、実施例としてのシステムを示す図である。
さまざまな実施例にかかる、実施例としてのアクセスフォーマットを示す図である。
さまざまな実施例にかかる、XMプロトコルレジスタへのフルブロードキャストに適合された、図2の実施例としてのアクセスフォーマットを示す図である。
さまざまな実施例にかかる、XMプロトコルレジスタへの選択的ブロードキャストに適合された、図2の実施例としてのアクセスフォーマットを示す図である。
さまざまな実施例にかかる、XMプロトコルレジスタへのグループアドレス指定のための実施例としてのフォーマットを示す図である。
さまざまな実施例にかかる、デバイスレジスタへのフルブロードキャストのための実施例としてのフォーマットを示す図である。
さまざまな実施例にかかる、デバイスレジスタへの選択的ブロードキャスト(マルチキャスト)のための実施例としてのフォーマットを示す図である。
さまざまな実施例にかかる、デバイスレジスタへのアドレス指定のための実施例としてのフォーマットを示す図である。
さまざまな実施例にかかる、コマンドにおいて転送される各ペイロードバイトのマスキングに使用するXMプロトコルレジスタへのフルブロードキャストのための別の実施例としての拡張フォーマットを示す図である。
さまざまな実施例にかかる、XMレジスタの読み取りのための実施例としてのプロセスを示す図である。
さまざまな実施例にかかる、ホスト識別子(HID)割り当てトランザクションのための実施例としてのフォーマットを示す図である。
さまざまな実施例にかかる、ホストコンピューターフルブロードキャストコマンドを介してDIMM上で提供されるデバイスのDIMM_IDデバイスレジスタへのフルブロードキャストのための実施例としてのフォーマットを示す図である。
さまざまな実施例にかかる、メモリモジュールのハブによるメモリモジュール識別子の取得の段階、ホストからのブロードキャストDIMM_ID伝搬コマンドの受信の段階、コマンドのDIMM_IDの修正の段階、およびメモリモジュール上の全てのデバイスへのコマンドの伝搬の段階の、実施例としてのプロセスの動作フローの概要を示す図である。
さまざまな実施例にかかる、本開示内容の実行に適したコンピューターデバイスの実施例としてのブロックダイヤグラムを示す図である。
さまざまな実施にかかる、図2から図12のプロセスの側面を実行するようにコンフィギュレーションされた命令を有する、実施例としてのコンピューター可読記憶媒体を示す図である。
実施例においては、デバイスは、ホストコンピューターからブロードキャストコマンドを受信する入力インターフェイスと、インターフェイスと連結された復号回路とを有し、ブロードキャストコマンドは、アクセスモード指示を含む復号回路は、受信したアクセスモード指示に少なくとも部分的に基づき、ブロードキャストコマンドが、1または複数のデバイスの1または複数の予め定義されたセットアップまたはコントロールレジスタにアクセスすること、または1または複数のデバイスの1または複数の内部レジスタにアクセスすることを命令すると決定し前記決定に応じてセットアップまたはコントロールレジスタへのアクセス、または1または複数の内部レジスタへのアクセスを実施する。実施例においては、デバイスはホストコンピューターに連結されるメモリモジュール上に配される。
実施例においては、1または複数の非一時的なコンピューター可読記憶媒体は、メモリモジュールに設けられるデバイスにより実行されると、デバイスに対し、ホストコンピューターからのブロードキャストコマンドを信させるセットの命令を含む。実施例においては、ブロードキャストコマンドは、または複数のデバイスの1または複数のレジスタへセットアップまたはコントロールデータを書き込むことを命令し且つ、デバイスアドレスとデバイスアドレスマスキングデータを含む。実行時、命令はさらに、デバイスに対し、デバイスアドレスマスキングデータを適用して、デバイスアドレスの一部をマスキングすること、デバイスアドレスのマスキングされていない部分がデバイスのアドレスの対応する部分とマッチングするかを判定すること、判定に応答して、バイスの1または複数のレジスタへデータ書き込みをオフセットで開始して行うことをさせる
実施例においては、方法は、DIMMにおいて、ロードキャストコマンドをホストコンピューターから受信する段階であって、ブロードキャストコマンドはアクセスモードインジケータとレジスタオフセット値とを含む、段階と、アクセスモードンジケータを復号して、プロトコルレジスタのアクセスモードが指示されたことを判定する段階を含む。方法はさらに、クセスモードンジケータとレジスタオフセット値とに少なくとも部分的に基づいて、コマンドが、オフセットにより指示されるプロトコルレジスタへDIMM識別子(DIMM_ID)値を書き込むように受信デバイスに対して指示するDIMM_ID伝搬コマンドであることを識別する段階と、識別に応答して、マンドを修正して、DIMM_IDの一部をローカルDIMM識別子と置き換える段階と、修正されたブロードキャストコマンドをローカルバス上でDIMM上の全てのデバイスへ伝搬する段階とを含む。
以下の説明では、当業者がその作業の内容を他の当業者に伝えるために当業者により共通して採用される用語を用いて、実装の実施例のさまざまな態様が記載される。しかしながら、本開示の実施例は、記載される態様のいくつかについてのみ実施され得ることは当業者にとっては明白であろう。説明を目的として、特定の番号、素材およびコンフィギュレーションは、実装の実施例の全体的な理解を提供するために記載されている。しかしながら、本開示の実施例は特定の詳細がなくとも実施され得ることは当業者にとって明白であろう。他の例においては、周知の特徴は、実装の実施例がわかりにくくならないよう、省略または簡略化されている。
以下の詳細な説明では、本明細書の一部を構成する添付の図面を参照しながら説明がなされるが、類似の符号は全体を通して類似の部品を指し示すものとし、本開示の主題事項を実施できるように実施例を図解する形で示される。他の実施例も利用され得るものであって構造またはロジックの変更は本開示の範囲から逸脱しない範囲においてなされ得るものであることは理解されるべきである。それゆえ、以下の詳細な説明は、範囲を狭める意味に解釈されるべきものではなく、実施例の範囲は本願の請求項およびその同等物により定義されるものである。
本開示の目的から、「Aおよび/またはB」というフレーズは、(A)、(B)、(A)または(B)、または(AおよびB)を意味してよい。本開示の目的から、「A、B、および/またはC」というフレーズは、(A)、(B)、(C)、(AおよびB)、(AおよびC)、(BおよびC)、または(A、BおよびC)を意味してよい。
説明においては頂/底、内/外、上/下、のような、俯瞰基準の説明が使用されることがある。そのような説明は単に議論を円滑に進めるためにのみ使用されるのであって、本明細書で説明される実施例の適用をいかなる特定の方向にも制限することを意図するものではない。
説明においては「ある実施例において」または「実施例において」というフレーズが使用されることがあるが、これらはそれぞれ、1または複数の同一または別の実施例について言及するものであってよい。さらに、本開示の実施例に関して使用される、「備える」、「含む」、「有する」等の語句は同義である。
「と連結される、」およびその派生表現的な語句が、本明細書において使用されてよい。「連結される」とは、以下の1または複数を意味してよい。「連結される」とは、2またはそれ以上の要素が直接的物理的接続または電気的接続状態にあることを意味してよい。しかし、「連結される」は間接的に接続されるが互いに協働または相互作用する2またはそれ以上の要素を意味することもあり、また、1または複数の他の要素が、互いに連結されるべき要素間で連結されるまたは接続されることを意味してよい。「直接連結される」という語は、2またはそれ以上の要素が直接接続させられることを意味してよい。
本明細書の中で使用される、「回路」という語は、説明される機能を提供する1または複数のソフトウェアプログラムまたはファームウェアプログラム、組み合わせ論理回路および/またはその他の適するコンポーネントを実行する、特定用途向け半導体集積回路(ASIC)、電子回路、プロセッサ(共有、専用、またはグループ)および/またはメモリ(共有、専用、またはグループ)を指す、またはその一部を成す、または含むことを意味してよい。
請求項を含めて本明細書の中で使用される、「チップ」という語は、コンピューター上の実際の集積回路(IC)を意味してよい。本文書の文脈におけるチップは、それゆえ、シングルコアまたはマルチコア技術であり得る実行ユニットを指してよい。
請求項を含め、本明細書の中で使用される、「プロセッサ」という語は、実際のチップ上の論理実行ユニットを指してよい。マルチコアチップはいくつかのコアを有してよい。請求項を含めて本明細書の中で使用される、「コア」という語は、L1(最下位)キャッシュおよび機能ユニットを含む論理実行ユニットを指してよい。コアは、プログラムまたはスレッドを独立して実行できるものとして理解される。
上述のとおり、XMSは、準拠した接続されるデバイスが実装すべきレジスタと、コントロールフラグビットとを規定する。現在、デバイス挙動の構成制御および修正を行うべくホストは、複数のデバイスにわたり同一のオフセットを有するレジスタにり返しアクセスしなければならない。たとえば、ホストが、システムメモリ内の16個のDIMMの各々で電圧レギュレータを構成する場合、これには、各電圧レギュレータ内で同一レジスタへの書き込みを必要とし、各電圧レギュレータにつき別々のアクセスが行われる必要がある。そこで、120個のデバイスへ接続することがある高負荷のバス上での構成時間を節約するため、および起動時間も節約するため、実施例においては、てのデバイスにわたり定義されるビットを更新または構成するブロードキャストケーパビリティが促進される。実施例においては、ブロードキャストケーパビリティは、とりわけ、後述の追加ヘッダを利用する。
実施例においては、ホストは故に、たとえばDIMMなどのメモリデバイスのアクセスの読み取りアクセスおよび書き取りアクセス構成チェーン化することができ、ホストは故に複数のアクセスにわたり、追加ヘッダのコストを償却することができる。さらに、同一デバイス上のシーケンシャルレジスタアクセスは追加のコストを招来しない。ここで、デバイスは各レジスタアクセスの後にレジスタオフセットを自動インクリメントする実施例においては、デバイスコントロール情報のブロードキャストは、ビットを制御するマスクを使用して、効率向上が図られており、その結果グループアドレス指定を促進する。実施例においては、メッセージフォーマットの例は一般的なものであり、デバイス上のいずれのレジスタに対してのブロードキャストにも使用されてよい。
さまざまな実施例において、現在のXMSによりサポートされる機能は、XMSコマンドバスにわたるブロードキャストメッセージングおよびマルチキャストメッセージングを容易化するために大幅に改良され得る。現在のXMSに対するこれらの改良をより良く理解するため、現在のXMS下でのデバイス構成とレジスタアドレス指定の概要を以下に説明する。
現在、XMSは、バス上の全てのデバイスへブロードキャストコマンドを送信することを意図したブロードキャストフォーマットを規定はするものの、当該フォーマットは書き込みのためのみであり、またデバイス上のビットセットに固有のものでもある。当該フォーマットは到達すべき各デバイスの当該固有のビットがに続くヘッダを使用する。ヘッダは、全てが0の1バイトを含み、当該1バイトには7ビットデバイスアドレス(000 0000)および1つのRnWビット(0)が含まれ、ここで0は書き込みアクセスを指示する現在のフォーマットは以下のとおりである:
<フォーマット1>
このブロードキャストフォーマットのフィールドは具体的に規定されており、張目的でのスケーリングおよび使用できない。固有ビットの数は4バイトに制限されており、さらに、具体的なビットまたはフィールドのマスキング機能はない。それゆえ、サブセットのデバイスをアドレス指定する方法はなく、またこれらの固有ビットのサブセットのみにアクセスする方法もない。さらに、現在のXMSフォーマットはメモリ読み取りのための機構を提供していない。ブロードキャストは書き込みアクセス使用され得るのみである。ホストがさまざまなメモリモジュールデバイス上のXMレジスタを読み取る必要がしばしばあり得るとする場合れが、ブロードキャストアドレスが指定され得る唯一の現在のトランザクションであるため、読み取りはできない。
XMSはまた、一般的な読み取り/書き込みフォーマットを提供し、当該フォーマットは、デバイスレジスタオフセットXMモードで指定されるレジスタアクセスを含むしかしながら、これらは1つのデバイスの1つのレジスタへのメモリアクセスのためのものであるのでXMバス上でのこれらの現在サポートされているランザクションは非効率的である。
一度に1つのデバイスへの構成書き込みは、少なくとも2バイトのヘッダを消費する。これらのバイトはそれぞれ、個々のデバイスアドレスおよび1デバイスレジスタオフセットついてのものであり、以下において太字で示される。
<フォーマット2>
同様に、1つのデバイスへの1構成読み取りは、以下に字で示されるように、書き込みアクセス(RTnW=0)の後にみ取り(RnW=1)が続き、少なくとも3バイトのヘッダを消費する。
<フォーマット3>
上記とおり、読み取りまたは書き込みは、特定のデバイスおよびそのデバイス上の特定のレジスタをアドレス指定しなければならいためス上の他の複数のXMデバイスの同レジスタへの同転送タイプのデバイスレジスタアクセスは、読み取りであれ書き込み(Rd/Wr)であれ、現在では組み合わせることチェーン化することきない。それゆえ、上示す2または3のヘッダは、この場合がそうであるように個別のデバイスアクセスについて繰り返されなければならず、結果としてパフォーマンスが非効率になる。さらに、上述のように、従来のブロードキャストアクセスはいかなるコントロールビットやセットアップビットのためのマスキングケーパビリティも有さない。その結果、コントロール値がバス上のたとえ1つのデバイスにおいてであれ異なって管理される場合、ブロードキャストアクセスは現状、いずれのデバイスについても全く使用することはできない。これは、当該ビットセットが全てのデバイスに共通に規定されビット位置ごとの機能が全てのデバイスについて一のままであるためである。これにより、サブセットの接続バイスコントロールビットのみがトグルされるべきであ場合の使用が制限される。
一般的に、サーバーは、れらのシステムオンチップ(SOC)に接続された複数のダブルデータレート(DDR)メモリモジュールを有してよい。XMSは、繰り返しの同一ジスタオフセットアクセスおよびコントロール変更またはセットアップ変更を必要とするSPDデバイスを含み、最大120個の接続デバイスを許容する。現在仕様化された、またコントロールのためのマスクビットを有さないXMS下で、レジスタアクセスをシリアル化することは、XMバス上のレジスタアクセスとブロードキャスト転送非効率にまた甚大なレイテンシ、エリアおよび電力も費する。
最後に、現在は、あらゆるDIMMにおけるあらゆる電源管理集積回路(PMIC)へ宛てられるグループキャストのようにサーバーまたはコンピューティングシステムのDIMMにわたり、例えばPMIC等の同一デバイスタイプのアクセス可能にする実効的な方法はない。
図1は、さまざまな実施例にかかる、実施例としてのシステムを示す図である。図1を参照すると、1または複数のプロセッサ102を含むホストコンピューター103がある。ホストコンピューター103は、上述のように、SOCであってよい。メモリモジュール104も示されており、たとえばこれはホストコンピューター103のマザーボードにインストールされる1セットのDIMMであってよい。実施例においては、ホストコンピューター103は、プロセッサ102を介して、ブロードキャストコマンドをコマンドバス141上でメモリモジュール104へ送信する。コマンドバス141は、プロセッサ103とメモリモジュール104との間のデータバス(図示せず)とは異なる。コマンドバス141は、構成レジスタクセスとブロードキャスト/マルチキャストトランザクションとを、コマンドバス141に接続された複数のデバイスへ転送する。コマンドバスは、上述のように、XMバスであってよい。実施例においては、コマンドバス141にわたり送信されるコマンドとトランザクションとがートウェイ130により受信および処理される。ゲートウェイ130は、たとえば、DIMMのハブであってよい。ゲートウェイ130は、マンドバス141に接続される入力インターフェイス134と復号回路133とを含む。コマンドバス141を通してコマンドが受信される。復号回路133は、ホストコンピューター103からの特定のコマンドを識別する。いくつかの場合においては、復号回路133は、コマンドに応答して、コマンドのビットを修正することを含むアクションを取るが、多くの場合において受信した通りのコマンドをメモリモジュール上接続バイス(ローカルバス143上で)に渡すアクションを取る故に、ゲートウェイ130は、DIMM上にまた設けられる、たとえば温度センサ、タイミングデータ付きの電圧レギュレータおよびフラッシュメモリユニット、SPD、またはレジスタクロックドライバ(RCD)などの、バイス120、121、122のセットに接続される。
実施例においては、1に示されるよりも多いまたは少ないDIMMがあってよく1に示されるよりも多いまたは少ないDIMM上のデバイスがあってよい。上述のとおり、ゲートウェイ130は、ローカルバス143上でバイスのセットに接続される。ローカルバスもXMに準拠したものでよく、その場合はXMバスとなる。デバイス120、121、122は、本明細書の中で「ハブの後ろ」または「ゲートウェイの後ろ」のデバイスと言及されることがあり、これらのデバイスのレジスタは「XMプロトコルの後ろ」のレジスタと言及されることがある。実施例においては、デバイス120、121、122はそれぞれ、ローカルバス143に接続される入力インターフェイス134と、最終的にホストコンピュータ103からゲートウェイ130を通って、入力インターフェイス134を介して、れぞれのデバイスにより受信されるロードキャストコマンドを復号およびする復号回路135とを含む。
次に説明される図2から図8は、さまざまな実施例による、デバイスにより受信されるコマンド、または当該コマンドの一部を表している。コマンドは、1または複数のデバイスの1または複数のXMプロトコルレジスタへ宛てられるか、または1または複数のデバイスの1または複数の内部デバイスレジスタへ宛てられてよい。上述のように、実施例においては、コマンドはデバイスの入力インターフェイスを介して受信され、当該デバイスの復号回路により復号される。
図2は、さまざまな実施例にかかる、ブロードキャストコマンドの実施例としてのアクセスフォーマットを示したものである。アクセスフォーマットは、上述のとおり、「S」でされる従来のXMS「スタート」バイト201に続く追加ヘッダバイト210を含む。本明細書では、追加ヘッダバイト210は、現在XM仕様において規定されておらず、かなり限定的な現在のブロードキャストコマンドフォーマットで使用されていないため、「追加」の語で表される。スタートバイト201は、0x00の標準ブロードキャストコールアドレス203、および0に設定され、書き込みコマンドを示す、read not writeビット「RnW」205を有する。追加ヘッダバイト210は、ここでは「SlaveAddrMask[2:0]」とラベル付けされた3ビットのスレーブアドレスマスクフィールド220を含む。この文脈では、「スレーブ」とは、ブロードキャスト(グループキャスト、またはマルチキャスト)コマンドが意図される先のデバイスを指す。実施例においては、スレーブアドレスマスクフィールド220は、受信デバイスが、そのアドレスがブロードキャストコマンド200内で提供されるデバイスアドレスにマッチングするか否かを判定するに先立って、後続の各トランザクションについて、スキングすべきスレーブアドレスのビット数を示す。故にこのマスキング能は、グループアドレス指定を可能にすることにあり、ここにおいては、ホストコンピューターが、単一のトランザクションにおいて、メモリ内の全てのDIMMにわたり、同じファミリーのデバイスたとえば、各DIMM上のPMICのように)にアクセスできる
スレーブアドレスマスクフィールド220の値は、バイス識別子の無視されるべき最下位ビット(LSB)の数を示す。たとえば、符号220のフィールドのSet SlaveAddrMask[2:0]が「011b」に設定される場合、これは、7ビットデバイス識別コード(DEV ID Code)250のうち最下位3ビットがマスキングされ、残る4ビットのIDコードで複数のデバイスで構成される1グループ全体識別することを意味し得る。これにより、最上位ビット(MSB)の4ビットが、たとえばDev ID Code[6:3]などの、ev ID Codeのマスキングされていない部分と一致するてのスレーブデバイスが単一のトランザクション内でアドレス指定されることを可能にする
ここで、8個のDIMMに限定される例示システムにおける実施例においては、デバイスのアドレスは、SDの4ビットがデバイスのタイプを指定し、LSBの3ビットが当該デバイスが設けられているDIMMの番号を指定するように構成されてよいことに留意されたい。このような実施例においては、これは同一タイプの全デバイス(図2に示すように、LSBの3ビットをマスキングすることにより、8個のDIMMすべてにわたり、MSBの4ビットにより識別される)について可能であり、符号220のSlaveAddrMask[2:0]が「011b」に設定されて符号250の7ビットのデバイス識別コード(Dev ID Code)のうち最下位3ビットをマスキングする
追加ヘッダバイト210は、たとえば「SlaveAddrMask[2:0]」と名付けられた3ビットのスレーブアドレスフィールド220と、たとえば「Offset[3:0]」と名付けられた4ビットのオフセットフィールド230と、たとえば「XM-REG-MODE」と名付けられたアクセスモードフィールド240とを含む。これらについては以下で説明する。
実施例においては、スレーブアドレスマスクフィールド220は、コマンドを受信するデバイスが、デバイスアドレスのうち何個の最下位ビット(LSB)を無視すべきかをために使用される。図2に示される、たとえば、符号250の「Dev ID Code[6:0]」等のデバイスアドレスのうち無視されるットが多ほど、当該デバイスアドレスのマスキングされていない部分にマッチングするデバイスの数は多くなり、ブロードキャストコマンドに対して応答する数が多くなる。実施例においては、図3A、図3B、図4、図5、図6、図7および図8を参照して以下で説明されるとおり、このマスキング機能が、フルブロードキャスト、選択的ブロードキャスト、またはグループアドレス指定を可能にするものである。
XMSに基づく図2から図10実施例においては、デバイスアドレスは7ビット長であるいう前提である。他の実施例においては、デバイスアドレスのビット長はそれよりも長くても短くてもよい。故に、スレーブアドレスマスクフィールド220は、そのアドレスの0ビットから7ビットの範囲内でマスキングすることをたとえば、SlaveAddrMask[2:0]='111'の場合、アドレスの全7ビットがマスキングされ、コマンドは全ての接続されるデバイスへブロードキャストされる。同様に、SlaveAddrMask[2:0]='000'の場合、コマンド提供されるデバイスアドレスの全てのビットが読み取られ、マスキングは行われない。さらに、SlaveAddrMask[2:0]='011'であって値「3」を有する場合、アドレスの最下位3ビットがマスキングされる。故に、単一のトランザクションにおいて、4個の最上位ビット(MSB)が一致する全てのスレーブデバイスがドレス指定され、コマンドに応答する。
引き続き図2を参照すると、さまざまな実施例により、図2において「Offset[3:0]」とされる4ビットのオフセットフィールド230は、用可能な2つの可能なアクセスモードのうち一方のみ使用される。ここで注目すべきは、実施例においては、第1のアクセスモードではブロードキャストコマンドはデバイスセットアップまたはコントロールコマンドであってよく、それゆえ当該ブロードキャストコマンドは、たとえばパケットエラー訂正イネーブル(PEC_EN)、PARITY_EN、IF_SELなどのXMプロトコルにより設けられることが必要とされるレジスタにアクセスすることを意図する(このアクセスモードは以下、「プロトコルレジスタ」アクセスとしてされる)。同様に、実施例においては、第2のアクセスモードでは、意図するのは、ブロードキャストコマンドが、Mプロトコルの後ろのデバイスレジスタにアクセスすることであ(このアクセスモードは以下、「デバイスレジスタ)アクセス」として称される)、これらは、SPD、RCD、PMIC等の異なるアクセスフォーマットを有してよい。実施例においては、第2のアクセスモードでは、XMS下での従来のトランザクションが、追加ヘッダバイト210の後に続く。このトランザクションは、図5から図7に関連して以下で説明されるとおり、「restart」(Sr)バイト245で開始する。実施例においては、オフセットフィールド230は第1のアクセスモードにおいてのみ使用され、第2のアクセスモードを指定するコマンド内では予約される。故に、図2で示される実施例では、符号230のOffset[3:0]は、コマンドが受信デバイス上のどのXMプロトコルレジスタに対して宛てられているかを指定するのに使用される。Offset[3:0]は4ビット長なので、デバイス上の15個のレジスタが、第1のアクセスモードを指定し、且つどのレジスタが最初に書き込みがわれるべきレジスタかをするフセット値をさらに指定するブロードキャストコマンドを使用してアクセスされてよい。
実施例においては、ブロードキャストコマンドのアクセスモードはアクセスモードフィールド240によりされる。図2の実施例では、これは「XM-REG-MODE」として示される1ビットフラグである。このでは、XM-REG-MODE=1は第1のアクセスモード(プロトコルレジスタアクセス)をし、XM-REG-MODE=0は第2のアクセスモード(デバイスレジスタアクセス)をす。
他の実施例においては、フィールドにはり多いまたはより少ない数のビットがあってよく、コマンドのヘッダおよび続ユニットは、1バイトより多いまたは少ないビットを有してよい。
引き続き図2を参照すると、追加ヘッダバイト210の後ろにはSrトランザクション211が続く。Srトランザクション211は、Srバイト245で開始し、Srバイト245は、図2で号250の「Dev ID Code[6:0]」と示されるように、7ビットのデバイスアドレスと1ビットのRead not Writeビット「RnW」であるメモリアクセスタイプインジケータと図2から図10で示される実施例においては、RnW=0はレジスタへの書き込みを意味し、RnW=1はレジスタへの読み取りを意味する。フルブロードキャスト、グループブロードキャストまたはのマルチデバイスコマンドについて単一のコマンドは同時に複数のデバイスを読み取ることはできないため、ブロードキャストコマンドは一般的に、RnW=0のき込みである。図2のSrトランザクション211示される残りのバイト、つまりByte0Byte n、図3A、図3Bまたは図4にされるように第1のアクセスモードを想定しておりこれについては、これらの図面を参照して後述する故にこれらのバイトは、符号230のOffset[3:0]で示される各デバイス上の位置にあるレジスタで開始して、各受信デバイスに書き込まれる。第2のアクセスモードでは、以下で説明されるように、少し異なるフォーマットがSrトランザクションに使用される。
実施例においては、図2のフォーマット200のブロードキャストコマンドを受信するデバイスは、スレーブアドレスマスクと、アクセスモード値と、オフセットがある場合はオフセット(存在する場合、第1のアクセスモード)とを復号し、コマンドで提供される後続のバイトをの実行に進む。実施例においては、ブロードキャストコマンドフォーマット200を使用することは、ホストコンピューターが複数のDIMMにわたり同等のレジスタにアクセスすることを助け、領域と電力の両方においてより効率を向上させるとともに、ブート時間をかなり削減することに寄与する。
図3A、図3Bおよび図4は、第1のアクセスモードを指定するコマンドの異なるバージョンをしたものであり、て図2のコマンドフォーマット200を実装するものである。これらの例示のコマンドにおいては、コマンドはプロトコルレジスタアクセスに宛てられ故にアクセスモードフラグはXM-REG-MODE=1である。次に、これらについて説明する。
図3Aでは、Mプロトロルレジスタ(図3A、図3Bおよび図4では単に「XMレジスタ」と記される)等のプロトコルレジスタへのフルブロードキャストのためのコマンド300Aが示される。例示コマンド300Aは、たとえば、PECイネーブル、またはパリティイネーブル等のオペレーションモードを更新するために使用されてよい。故に図3Aのヘッダ310では、スレーブアドレスマスク315は"111"でありこれはデバイスアドレスの全7ビットがマスキングされるべきであることをオフセットフィールド320は、4ビットオフセットffset[3:0]を定義これは当該コマンドに含まれる最初のバイトがデバイス書き込まれるべきことをヘッダ310はアクセスモードフラグ330も含む。これはプロトコルレジスタアクセス(たとえば第1アクセスモード)であるため、アクセスモードフラグ330は1に等しく、たとえばXM-REG-MODE=1となる。
引き続き図3Aを参照すると、ヘッダバイト310の下に単一のSrトランザクション311が示されており、ここではSrは「リスタート」を意味する。これは、フルブロードキャストコマンドであるので、1つのSrトランザクションのみが示されており、各デバイスは同様に更新される自己の複数のXMレジスタを有するSrトランザクション311は1つのヘッダバイトといくつかのコントロール情報バイトを含む。Srヘッダバイトは、デバイスアドレス、ここでは「Dev ID Code[6:0]=0x000_0000」を含みこれは、XMバス(最大120個のデバイスを許容)上に接続されるあらゆるデバイスがコマンド300Aを受信することを意味するSrトランザクション311ッダバイトまた、プロトコルレジスタアクセスが読み取り(RnW=1)であるか書き込み(RnW=0)であるかを示す、読み取りまたは書き込み(RnW)ビット313含む。このでは、ブロードキャストはMバス上で接続されたデバイス(例えば、コンピューターのメモリ内の全てのDIMM)上のいくつかのXMレジスタに対する書き込みアクセスであるので、RnW=0となる。図3Aに示されるように、Srトランザクション311はByte0からByte nまでのいくつかの追加バイトも含みこれらは、オフセット320で提供されるオフセット値にあるXMレジスタで開始して、各デバイス上の一連のシーケンシャルレジスタへそれぞれ書き込まれる。故に、図示のように、たとえば、Byte0はXM-Reg[offset]へByte1はXM-Reg[offset+1]へByte2はXM-Reg[offset+2]へそして最後にByte nはXM-Reg[offset+n]へと書き込まれる。
コラム350に示される符号は、従来のSMバスおよびXMプロトコルにおいてそれらの符号が持つのと同じ意味を持ち、これらは、マンド内で送信されるイトに対する1ビットの応答を表しており、当該応答は当該コマンドを受信するデバイスにより送信される。符号の意味は次のとおりである。Sはスタート、Srはリスタート、ACKは肯定応答、Tはトランジション、Pは終了。
図3BはXMプロトコルレジスタへの選択的ブロードキャストの例示コマンドを示。図3Bを参照すると、図3Bの例示コマンドは、2つの例外を除いては図3Aのマンドと全ての面で同一である。この例外とは、スレーブアドレスマスクフィールド315の値と、当該コマンドに含まれるSrトランザクションの数、つまりSrトランザクション311および312とである。図3Aの例コマンドに対するこれらの変形について、次に説明する。しかしながら、図3Bの例コマンドの他のすべての様相3Aの例示コマンドの対応する特徴と同様であるので、ここでは再度の説明を省略する。引き続き図3Bを参照すると、スレーブアドレスマスクフィールド315、つまりSlaveAddrMask[2:0]の値は「000」であり、これはコマンド300B内に含まれるデバイスアドレスのビットはマスキングされないことを意味する。その結果、Srトランザクション311および312で列挙されるデバイスアドレスアクセスされるが、他のドレスコマンド300Bによりアクセスされい。
引き続き図3Bを参照すると、前述のとおり、Srトランザクション311および312の各々は、次のことを除き、図3AのSrトランザクション311と同様である。すなわち、上記の通り、Srトランザクション311のDevice AおよびSrトランザクション312のDevice Bはマスキングされておらず他のデバイスではなく、それぞれ具体的にこれらのデバイスのみアクセスする
図4は、さまざまな実施例にかかる、XMプロトコルレジスタのグループアドレス指定のための例示のブロードキャストコマンド400を示。コマンドは、指定されるバイスグループと、そのグループ内のデバイス上の複数のXMレジスタへとブロードキャストするのに使用される。図4を参照すると、図4の例示コマンドは、1つの例外を除いては全ての面で図3Bのコマンドと同一である。この例外とは、スレーブアドレスマスクフィールド415の値である。スレーブアドレスマスクフィールド415は、コマンドで指定されるアドレス、つまりデバイスアドレス416および417の、3個のLSBがマスキングされるべきことを示す。これは、当該コマンドを受信するデバイス、送信されたデバイスアドレス416および417の4個のMSBが自己のアドレスと一致するか否かのみをチェックし、一致があれば、受信デバイスは、コマンド内で指示されるようにメモリアクセスを実行するということを意味する。故に、デバイスアドレス416および417の各々は、実際上、各デバイスアドレスの4個のMSBと一致するグループである、デバイスグループをターゲットとる。これは図4において、デバイスアドレス416を「Dev ID Code[6:0]=0xABCD_xxx」として、バイスアドレス417を「Dev ID Code[6:0]=0xEFGH_xxx」として示すことにより表されており、これは受信デバイスがアドレスの3個のLSBを単に無視することを
他の全ての面では、図4の例示コマンドは図3Bの例示コマンドの対応する特徴と同等であるため、ここでは再度の説明を省略する。
図5から図7は、第2のアクセスモード、つまりデバイスレジスタアクセスを指定する例示のブロードキャストコマンド示される。次に、これらについて説明する。
実施例においては、アドレスとオフセットとを含むレジスタアクセス定義は、フルブロードキャストまたはグループブロードキャストのよう、グループとして命令される全てのデバイスにわたり一様であることが保証されるべきである。実施例においては、デバイスレジスタアクセスのために発行されるブロードキャストコマンドは、ヘッダの下位バイトがデバイスレジスタオフセット情報を運ぶ。実施例においては、これはXMSの必須態様であるため、オフセットは全てのデバイスにわたり共通であることが保証される。故にマルチキャストまたはグループ書き込みのためにアドレスマスキング機能を利用すべくループは、一のアドレス/レジスタの定義を有する必要がある。
図5は、さまざまな実施例にかかる、デバイスレジスタへのフルブロードキャストコマンドのための例示フォーマットを示している。図5を参照すると、追加ヘッダバイト510は値が「111」のスレーブアドレスマスクフィールド515を含む。全てのデバイスアドレスビットがマスキングされているので、コマンドは「フルブロードキャスト」として動作し、それゆえ当該コマンドを受信するあらゆるデバイスが、当該コマンド実行することになる。追加ヘッダバイト510はまた、4ビットの予約フィールドと、1ビットのアクセスモードンジケータ530とを含む。図2、図3Aおよび図4の例示コマンドとは異なり、図5のアクセスモードンジケータ530は、この例では、XM-REG-MODE=0であり、これは第2のアクセスモード、つまりレジスタアクセスモードを示。上述のように、コマンドのアクセスモードがプロトコルレジスタアクセスである場合にレジスタオフセットフィールドとして使用される予約フィールド520は、デバイスレジスタアクセスモードでは使用されない。
追加ヘッダ510の後ろに続くのはSrトランザクション511である。引き続き図5を参照すると、Srトランザクション511は、全体ッダバイト514と、それに続く、ヘッダバイトのセットを含み、1つのヘッダバイトが、n個のデータバイトのうちの各々のデータバイトのための、固有のものである。このコマンドはフルブロードキャストコマンドであるので、Srトランザクションの全体ッダバイト514は、デバイスアドレスとして0x000_0000を提供し、そして上述のとおり、スレーブアドレスマスク515を「111」と付与すれば、当該コマンド500を受信するデバイスとにかく全てのアドレスビットを無視する。全体ッダバイト514は、ここでは値「0」を有し、各デバイス上の複数のデバイスレジスタへの書き込みを意味するRnWビットも有る。ヘッダバイトは、符号512のHeaderByte0で開始しeaderBytesによりされるアドレス/オフセットにおける受信デバイス書き込まれるべきデータバイトは、符号513のByte 0で開始する。
追加のヘッダバイトを理由として、第2のアクセスモードのSrトランザクション511は第1のアクセスモードにおけるSrトランザクションよりも長くなる。なぜならば、ペイロード/バイトに加えてアドレス/オフセット報が追加される必要があるためである。故に、たとえば、図5のSrトランザクション511は、図2のSrトランザクション211よりも長くなる。
図6は、さまざまな実施例にかかる、デバイスレジスタへの選択的ブロードキャストまたはマルチキャストのための例示コマンド600を示したものである。図6を参照すると、例示コマンド600は、図5の例示コマンド500、2つの点を除いては、ての面で同一である。2つの点は、スレーブアドレスマスクフィールド615の値と、当該例示コマンドに含まれるSrトランザクション、つまりSrトランザクション611および612であるが、の数である。図5の例示コマンドからの変形について、次に説明する。しかしながら、図6の例示コマンドの他の全ての態様は、5の例示コマンドの対応する特徴と同様のため、ここでは再度の説明を省略する。引き続き図6を参照すると、スレーブアドレスマスクフィールド615、つまりSlaveAddrMask[2:0]の値は「000」であり、これはマンド600に含まれるデバイスアドレスのビットはマスキングされないことを意味する。その結果、Srトランザクション611および612内で列挙されるデバイスアドレス、それぞれデバイスIDのDev_A 616とDev_B 617が、コマンド600によりアクセスされるが、他のドレスはコマンド600によりアクセスされない。故にデバイスDev_AおよびDev_Bの各々については、それらSrトランザクションは、ヘッダバイトのセットを含み、当該ヘッダバイトのセットは、Byte0Byte nの各々ためのアドレスおよびオフセットを供給し、その後にByte0Byte nの各対応するオフセットにおけるデバイスレジスタにそれぞれ書き込まれる実際のバイトが続く
図7は、さまざまな実施例にかかる、デバイスレジスタへのグループアドレス指定のための例示のブロードキャストコマンド700を示したものである。コマンドは、指定されるバイスのグループと、そのグループ内のデバイス上の複数のデバイスレジスタへとブロードキャストするのに使用される。図7を参照すると、例示コマンド700は、1つのを除いては全ての面で図6のコマンドと同一である。1つの点とは、スレーブアドレスマスクフィールド715の値である。スレーブアドレスマスクフィールド715は、コマンド700で指定されるアドレス、つまりデバイスアドレス716および717の、3個のLSBがマスキングされるべきことを指示している。アドレスの下位3個のLSBのこのマスキング、コマンド700を受信するデバイス、送信されたデバイスアドレス716および717の4個のMSBが自己のアドレスとマッチングするか否かチェックするだけでよいことを意味する。マッチングがあれば、受信デバイスは、コマンド内で指定されるようにメモリアクセスを実行する。故に、デバイスアドレス716および717の各々実際には各デバイスアドレスの4個のMSBがマッチングするグループのデバイスグループーゲットにする。これは図7において、デバイスアドレス716を「Dev ID Code[6:0]=0xABCD_xxx」として、バイスアドレス717を「Dev ID Code[6:0]=0xEFGH_xxx」として示すことにより表されており、これは受信デバイスがアドレスの3個のLSBを単に無視することを全ての面において図7の例示コマンド700は、図6の例示コマンド6の対応する面と同様であるので、これらの同様の態様について既に説明済みであるため、再度の説明を省略する。
別の実施例では、ブロードキャストトランザクションがデバイスのコントロールまたはセットアップのために発行され、故に第1のアクセスモードを使用する場合ブロードキャストコマンドの後ろには、全てのターゲットバイスへのコントロールデータが続く。いくつかの実施例においては、コントロールデータは、複数の2バイトペアで提供され、各バイトペア1個のマスクバイトと1個のデータバイトを含むこれらの実施例においては、マスバイトビットの値「1」は、デバイスがコントロールデータの対応するビットを処理すべきではないことを示し、マスクバイトのビット値「0」は、デバイスがコントロールデータの対応するビットを処理すべきであることを示す各コントロールデータに先行するマスクバイトを追加することで、1トランザクションあたりの送信バイト数増加させるが、これはまた、コマンドが、示される各オフセットにおけるプロトコルレジスタのフィールドを選択的に更新することを可能にし、かなりの柔軟性を提供する。
図8は、これらの別の実施例にかかるフルブロードキャストを示したものである。図8を参照すると、図8は、さまざまな実施例にかかる、コマンド内で送信されるペイロードバイトのマスキング使用した、XMプロトコルレジスタへのフルブロードキャストコマンドのための代替の拡張コマンドフォーマット800を示している。代替の拡張コマンドフォーマット800は、Srトランザクション811のデータバイトの前にマスキングバイトが提供されている点を除いては、全ての面で図3Aのブロードキャストコマンド300Aと同様である
引き続き図8を参照すると、このコマンドのフルブロードキャストという性質が前提であるので、追加ヘッダバイト810を参照すると、スレーブアドレスマスク815の値が「111」に設定されている。上記で説明したように、これは、当該コマンドを受信するあらゆるデバイスが、デバイスIDコードフィールド820に示されるx000_000指定されたデバイスアドレス内の全てのビットを無視することを意味する。上述のように、ブロードキャストコマンド800は、全てのデバイス上のXMプロトコルレジスタへ宛てられ故にアクセスモードンジケータ830XM-REG-MODE=1と示される。
引き続き図8を参照すると、追加ヘッダバイト810の後ろに、標準のSrトランザクション811がきて、Srトランザクション811は、Sヘッダバイト812で開始し、Srヘッダバイト812は、上述のように0x000_0000のブロードキャストデバイスアドレスを示ここで、スレーブアドレスマスク815が「111」に等しい場合、実際は後続のデバイスIDコード829は必要でないことに留意されたい。図8の実施例では、これは、コマンドの全般的フォーマット維持すべく保持されているが、代替の実施形態および実施例では、最適化としてこれ削除されてもよい。ブロードキャストコマンドは、RnWビット821で示されるとおり、書き込みコマンドである。
引き続き図8を参照すると、Srトランザクション811の残部においてデータバイトには、上述のとおりマスキングバイトである「バイトイネーブル」バイトが先行している。故に、図3Aに示されるコントロールバイトの実施例にの代わりに、この代替の実施例では、コマンドのバイトシーケンスは1オフセットあたり{Byte-Enable,Byte}のペアを含む。この特長は、複数のデバイスにわたり1オフセット内に非類似のビットフィールドがあり得るシナリオにおいて役立ってよく、またXMプロトコルレジスタアクセスは、すべてのXM準拠デバイスにより実装される共通のデバイスであるので、XMプロトコルデバイスには特に有用であってよい。図8では、2つの例示の{Byte-Enable,Byte}ペア示されており、第1のペア813は第1のコントロールバイトyte0のためのものありByte0は追加ヘッダバイト810で指示されるオフセットにおけるプロトコルレジスタへ書き込まれ、第2のペア817最後のコントロールバイトyte nのためのものでありByte nは追加ヘッダバイト810+nまたはXM-Reg[offset+n]で指示されるオフセットにおけるプロトコルレジスタへの書き込まれそれぞれのケースにおいて、それぞれのマスキングバイト「Byte enable 0」または「Byte enable n」により有効化されるコントロールバイトByte0」または「Byte n」のビットのみが、されるレジスタへ書き込まれる。
ここまで説明してきたコマンドにおいては、これらの全てがロトコルレジスタまたは内部デバイスレジスタを例えば更新するように受信デバイスへ命令する、書き込みアクセスであった。単一のデバイス上の1または複数のレジスタの内容に固有である読み取りとは対照的に、書き込みオペレーションのみが真に複数デバイスへのロードキャストとなり得ること理解されている。図9は、さまざまな実施例にかかる、特定のデバイスのn個のXMプロトコルレジスタの読み取りのための例示コマンド900を示すものである。コマンド900は図3Bのコマンド300Bの読み取りバージョンであり、ここでは、コマンド900は1つのデバイスのドレスのみを含む。故に、引き続き図9を参照すると、コマンド900は、30および921においてみ取りオペレーションを示すRnW=1を示す。さらに、追加ヘッダバイト910は、スレーブアドレスマスクフィールド915内にマスキングなし、つまりユニキャストオペレーションす値000」を提供しており、アクセスモードンジケータ916はプロトコルレジスタが読み取られるべきことを規定している。故に後続のSrトランザクション911、slaveAddr.XM-Reg[offset]slaveAddr.XM-Reg[offset+n]におけるそれぞれのプロトコルレジスタから、イトのデータが読み取られることを指定する。実施例においては、デバイスが読み取りコマンドに応答するときデバイスはこれらのデータバイトに「Byte0」から「Byte n」とラベル付けする。
実施例においては、120個のデバイスにわたる同一のレジスタオフセットへのXMレジスタ書き込みに加え、120個のデバイスにわたる同一のレジスタオフセットへのMプロトコルレジスタ読み取りアクセス、現在のXMS下のものより効率的となることに留意されたい。さらにブロードキャストアクセスが何倍か改善されている。というのは、実施例において、いくつかのデバイスが、指定されたコントロールフラグビットのいくつかにおいて非同一の値を有し得る場合であってもストコンピューターは、ブロードキャストコマンドを使用し続けることができるからである。これは、現在のプロトコル下では、不可能である
実施例においては、複数のDIMMにわたり同一のデバイスタイプへアドレス指定/マルチキャストする機能に加え、1バイスごとのXMプロトコルレジスタの特定のセットにアクセスする機能可能にされる。よって、この機能は、たとえば、PECイネーブル、IBIのオン/オフなどのプロトコル機能コントロールのための標準機構を可能にする。図9で示されるように、これらのデバイスへの読み取りは同じコマンドで扱われるが、ユニキャストモードでは、上述のように、SlaveAddrMask=000で扱われる。
次に図10から図12を参照しながら、ランタイム中に、メモリモジュール(たとえばDIMM)上の複数のデバイスへ一意のアドレスを割り当てる方法について説明する。デバイスは、ローカルハブにわたり、メモリモジュールのハブに接続されている。実施例においては、この方法は、3Aを参照して上説明した拡張ブロードキャストコマンドフォーマットを利用するものであり、そこではホストコンピュータによる、各デバイス上の特定のオフセットにおけるすべてのXMプロトコルレジスタに対するフルブロードキャストであった。しかしながら、実施例においては、方法、およびそれを実装するための示のブロードキャストコマンドフォーマットは、ブロードキャストコマンドを受信した後DIMMのハブまたはゲートウェイに対し、当該ブロードキャストコマンドをDIMM上の「ハブの後ろ」の全てのデバイスに転送する前に、当該ブロードキャストコマンド内に含まれるデバイスアドレスを、ホストコンピューターから受信したデバイスアドレスから、異なる値に修正するよう命令する
しかしながら、図10から図12の方法を説明する前に、DIMMの製造における背景をまず説明する。たとえばDIMMなどのメモリモジュール、マザーボードまたはコンピューティングデバイスの全てのスロットにわたり再使用可能かつ構成可能なものであることを保証すべく、全てのDIMMは同一に構築されひとたびメモリモジュールが挿入されると、たとえばSPDデバイス精密抵抗器を通して、メモリモジュールのハブによりストID(「HID」、または「DIMM_ID」)が検知される故にメモリモジュールが最終的に挿入されるスロットの実際のhost_id(たとえばDIMM_ID)にかかわらず、製造時にはDIMM上の全てのデバイスデフォルトアドレスは同一である
そのため、DIMM上の全てのデバイスがホストコンピューターによりシームレスにアドレス指定されることを保証すべく、ハブが、継続的にホストコンピューターから来るアドレスをーカルデバイスアドレスに変換する必要があるか、あるいは、DIMM上の「ハブの後ろ」のバイスが、それらの実際のhost_idを認識させられる必要がありその結果、デバイスが、ホストコンピューターにより、たとえば図2から図9で示される例示のコマンドの1つを介してアドレス指定された場合、デバイスは、コマンドに適切に応答できる
さらに、DIMMのハブは、PECまたはストアフォワードスキームの実装を要することなく、できるだけ安価に作られるのが望ましい。また、ハブは独立のクロックソースを有さないのでハブ自身ではデータの処理を行わない。よって、理想的なハブはパッシブパスゲートベースの実装でありそれは、1つのドメイン(たとえばコマンドバス)から別のドメイン(たとえばローカルデバイスバス)へトランザクションを転送し、バス負荷の低減とバランス調整に寄与し、その結果、可能な限り多くのデバイスがマンドバスに取り付けられ得る。
あるいは、製造に、ンタイムプログラマブルアドレスが各デバイスに割り当てられてもよい。しかしながら、これは製造コストが増える。また別の選択肢として、ハブが、継続ベース(on going basis)で、ホストコンピューターから受信するトランザクションまたはコマンドのアドレスを管理してもよい。たとえば、ハブは、トランザクションまたはコマンド内で使用されるデバイスアドレスをそれが接続されるスロットの実際のDIMM_IDに変換する。しかし、これはかなりの作業負荷がかかるとともに複雑さも増す。
したがって、実施例においては、上述の第1のアクセスモードのフルブロードキャストコマンドホストコンピューターにより使用されDIMM上のハブに、ハブのホスト識別子(たとえばDIMM_ID)をそのDIMM上の全てのローカルバスデバイスへプッシュさせる
実施例においては、この特定のDIMM_ID伝搬トランザクションにおいては、各DIMM上のハブがホストコンピューターからブロードキャストコマンドを受信すると、当該ブロードキャストコマンドをローカルバスへ転送する前に、当該ブロードキャストコマンドに含まれるデバイスアドレスの特定のビットを更する。具体的に、ハブは、ホストコンピューターから受信されたブロードキャストメッセージのペイロード内のHID/LIDビットを置き換える。さらに、実施例においては、PECをそのようなコンフィギュレーション/ブロードキャストHID伝搬トランザクションを可能にすることは、比較的簡素な8:1ルックアップテーブルを使用して実現される。これは、HID伝搬トランザクションの全てのビット値は事前に既知であるからであり、PECは挿入されるべきDIMM_IDに基づいて予め計算された値であってよい。
しかしながら、バイスアドレスが一意である限りにおいて、またはハブがつ1つのトランザクションについてデバイスアドレスを変更する限りにおいて、デバイスは、ハブのない環境において、そのデフォルトアドレスで依然動作可能であることに留意されたい故に、さまざまな実施例により、ブロードキャストDIMM_ID伝搬トランザクションは、デバイスそれなしでシームレスに動作できるので、必須事項ではない。しかしながら、このことは、ブのないケースにおいては、デバイスアドレスが一意であり、ブのあるケースにおいてこれがHID伝搬なしで動作するにはハブが1つ1つのトランザクション(pvt/direct)について、宛先アドレスを変更しなければならないいうことを前提とする。
実施例においては、上述のXMブロードキャストトランザクションは、XMレジスタと組み合わされて、ローカルバス上で接続されるデバイスHID/DIMMを更新する以下に詳細に説明されるように、実施例においては、ハブがこの特定のコマンドを検知し、当該コマンドのHID/LIDフィールドのみを置き換え、また有効化されている場合は、PECも同様に置き換える
実施例においては、ローカルバル上の全てのデバイスは、XMバス準拠であり且つ、以下の必須ケーパビリティを実施する必要がある:1.ブロードキャストトランザクションをサポートする(SlaveAddr=0x0000_000トランザクションを受け付け可能であること);2.プログラマブルHID/DIMM_IDを有すること:a.ログラマブル(リセット後1回書き込み)HID/DIMM_ID、スレーブデバイスID、具体的にビット[2:0]が「111」にデフォルト設定されているので、XM‐レジスタオフセットは0xFである。;3.特定のアドレス{4b DTI,3b HID(programmed)}を復号できること。
実施例においては、デバイスは、I2C準拠すべくデフォルトで、ピンストラップからデフォルトスレーブアドレスを導出してよい。その場合、デバイスはハブがある場合もない場合も、任意のホストに対し、このアドレスを、後で読み取るためにXMプロトコルレジスタ[0xF]のデフォルト値として供する。
実施例においては、DIMMのゲートウェイまたはハブは、上記の指定されブロードキャストトランザクションを受信すると、って来る値の下位3ビット(または、たとえば他の拡張アプリケーションではこれよりビット数が多い場合も少ない場合もある)を更新して、DIMM_ID/HIDの特定のアドレスに設定する。実施例においては、ホストはバス初期化中に、このブロードキャストコマンドをまさに第1のトランザクションとして信してよく、実施例においては、当該トランザクションは、各DIMM上に接続されるバイスセット全体にわたる単一のブロードキャスト書き込みして行われてよい。
図10は、次に説明するように、さまざまな実施例による、かかるホスト識別子(HID)割り当てトランザクションのための例示フォーマット示している。図10を参照すると、実施例においては、HIDコンフィギュレーショントランザクションはHID/DIMM_IDをDIMM上のそれぞれのデバイスのXM protocol register[15]へと更新する。図10の1010行のOffset[3:0]=1111により示されるように、XM protocol register[15]の使用は、特有の実装である。図10の1010(および全ての他の図の同様の列)はとしてされるものであり、他の実施例において、他の組み合わせが使用されてよい。たとえば、オフセットは2ビットに低減されてよい。
引き続き図10を参照すると、例ロードキャストコマンドの例示フォーマットは基本的に図3AのXMプロトコルレジスタのコマンドに対するのフルブロードキャストと同一だが、図10のコマンドでは、Srトランザクションにおいて個のみのコントロールバイトが更新される。そこで、図10で示されるように、最初のブロードキャストコールアドレスバイトの後に、追加ヘッダバイト1010が、スレーブアドレスマスクフィールド1020で、「111」のマスキングを提供する。上記のように、これは、バイスアドレスの全7ビットをマスキングし、これによりフルブロードキャストを保証する。追加ヘッダバイト1010また、オフセットフィールド1030に、register[15]である、レジスタオフセット0xFを提供する。このオフセット値は、復号されるアドレスモード値1040と共に、各ハブに対し、これがhost_id伝搬コマンドであること、および、ハブは、当該コマンド内で提供されたアドレスの一部を、ハブが取得したDIMM_ID置き換えることを。故に、追加ヘッダバイト1010は、アクセスモードインジケータ1040にXM-REG-MODE=1を提供し、これは第1のアクセスモードを示し、ここにおいてXMコントロールまたはプロトコルレジスタは更新される
引き続き図を参照すると、追加ヘッダバイト1010の後には、Srヘッダバイト1013、および「ペイロード」またはコントロールデータバイト1015を含むSrトランザクションが続く。Srヘッダバイト1013は、図3A同様に、000_0000というフルブロードキャストデバイスアドレスを有し、また、メモリアクセスが書き込みオペレーションであること、たとえばアドレスをレジスタ15に書き込むことをSrヘッダバイトに続くのはコントロールデータバイト1015である。上述のとおり、図3AのXMレジスタへのフルブロードキャストコマンドとは対照的に、図10の例示のコマンド1000は、1つコントロールデータバイトByte0のみが含まれ。これ2つのフィールドを有する。第1のフィールド1016は、Byte0の最初の4個のMSBであるByte0[7:4]をレジスタ15へ書き込むようにデバイスに対して命令し、第2のフィールド1017は、Byte0の最初の3個のLSBであるByte0[3:1]を同じレジスタへ書き込むようにデバイスに対して命令し、最後に、フィールド1017でByte0[0]=0で示されるように、そのレジスタの最後のLSBへ「0」を書き込むことを命令する故にハブがブロードキャストコマンド1000をそのDIMM上のデバイスへ渡す前に、3個のLSBの[3:1]ハブにより修正される。これらの3ビットは、DIMMが挿入されたスロットから、上述のように高精度レジスタから、ブにより取得される。故に、コマンドが各デバイスにより実行された後、Register[15]は次のビット値を持つことになる:Bit0はゼロ、Bits[3:1]はHUB/DIMM_IDで置き換えられる値、およびBits[7:4]は「0000」。
本明細書の中で示される特定の実施例において、その目的は8個のDIMMをアドレス指定することである。それゆえ、アドレスの3つのLSBはハブにより置き換えられる。上述のように、この実施例においては、4つのMSBはデバイスタイプを他の実施例においては、アドレス指定されるDIMMの数は減っても増えてもよく、それゆえ、ハブによりbranch-id(or HUB/DIMM_ID)置き換えられる必要のあるLSBが減っても増えてもよい。
実施例においては、これは、PECが有効にされる場合、これは、1015におけるコントロールバイトのByte0の後に、Srトランザクション内の追加コントロールバイトをコマンド1000に含めることにより行われる。
XMS準拠であって、コマンド1000を受信すると、ハブは、Byte0の割り当てられたアドレス(ABCD_HID)と、符号1013のブロードキャストアドレス(0000_000)とを渡す。
ハブは、Byte0[3:1]のそのHID/DIMM_ID(引き出された値からの静的置き換え)を、後述の特定のトランザクションの3ビットに更新/置き換えする必要があり同時にトランザクションはホストバスからローカルバスへと渡される
実施例においては、ハブは、入ってくるブロードキャストについて以下の全ての条件が満たされる場合のみ、host_idの更新を実行する:XM-MODE-REG1040が1;Offset[3:0]1030=1111;およびSlaveAddressMask[2:0]1020=111。これらが満たされる場合実施例において、ハブは、ローカルバス上で、Byte0のLSB3ビットを、割り当てられたDIMM_ID/hostIDで置き換える。
実施例においては、全てのローカルデバイスはマンド1000の修正フォームをXMブロードキャストトランザクションとして受け取り、それらのDIMM_ID/hostIDを更新する。の書き込まれた値は、デバイスへのすべての前の既知の/割り当てられたアドレスを上書きする。いくつかの実施例においては、オフセットxFにおけるレジスタは、安全な起動プロセスの後に悪意のあるエージェントがHIDを再プログラミングすることがないことを保証するよう、1回書き込みモードで実装されてよい。他の実施例では、上述のように、HIDを記憶するのに別のレジスタ使用されてよく、egister[15]は単なる例である。
実施例においては、ブロードキャスト用にPECが有効化されていても、第1のコマンドセグメント1010PECは保持される。第2のコマンドセグメント1013用のPECは基本的に、ハブにより容易に置き換え可能な、精密に1バイトのスレーブアドレスが0x0および1バイトのデータである。さらに単純化すると、実施例においては、Byte0[7:3]の値は0x0と定義されてよくその結果、PECがビットのDIMM_IDのみを持つすべてゼロのPECとなえに8つのエントリを有するストレートなルックアップテーブルとなる。入ってくるPEC値は常に0x0000(全てゼロの2バイト)の固定CRC-8である。
図11は、まざまな実施例にかかる、図10で示されるような、ホストコンピューターフルブロードキャストコマンドを介してDIMM上に設けられる複数デバイスのDIMM_IDする一例を示している。図11を参照すると、ホストコンピューター1110は、図10の1000のよう、アドレス割り当てコマンド1011をブロードキャストする。当該コマンドは、たとえば図10の符号1015のByte0のようなコントロールデータバイトを含み、受信デバイスに対してデバイスのレジスタ15のLSBにhost_idの「000」を書き込むように命令する。コマンドはコマンドバス1141で送信され、実施例においては、コマンドバス1141はXMS準拠のバスである。コマンド1111は、コマンドバス1141に接続されるそれぞれのDIMMのハブたとえば符号1125のDIMM Aのハブ1120および符号1135のDIMM Bのハブ1130で受信される。コマンドを受信すると、これらのハブはそれぞれコマンドの復号を行い、コマンドがhost_id伝搬コマンドであるか否かを決定する。その結果、図11で示されるように、ハブ1120とハブ1130は、それぞれのDIMMのローカルバスにわたりコマンドを転送する前に、ブロードキャストコマンド1111内の、3個のLSBを、ホストにより送信された値である「000」から、符号1125のDIMM Aのハブ1120の場合は「001」に、符号1135のDIMM Bのハブ1130の場合は「010」に変更する。3個のLSBについて修正されたこれらの値は、それぞれのDIMMが挿入されるスロットのファンクションであり、上述のとおり、精密抵抗器からハブにより取得される。ひとたびそれぞれのハブがコマンド1111への修正を行うと、コマンドはDIMM上の全てのデバイスへ送信される。たとえば、図で示されるように、ハブ1120はそ固有に修正されたコマンドを符号1125のDIMM A上のデバイス1127へ送信し、ハブ1130はそ固有に修正されたコマンドを符号1135のDIMM B上のデバイス1137へ、信する。
上述のように、図10のコマンド1000の特別なケースを除いては、一般的にハブは、受信したブロードキャストコマンドをハブ上のデバイスへ単に送信する。よって、アドレス指定されたDIMMについては、追加の処理なしで、全てのトランザクションクロックフェイズが透的にローカルバス間でみ取りクロックのために送される。
実施例においては、ひとたびHID伝搬が成功裏に完了して新しいコマンドが発行されると、ハブはそのブランチ/ローカルバスがアドレス指定されているかいないかを(アドレスのLSB3ビットに基づいて)識別し得る。アドレス指定されていない場合、ハブはNACKトランザクションを終了させる。
アドレス指定されていないたは選択されていないDIMMの場合、アドレス指定されていないハブは、そのローカルバス上のコマンドトランザクションをアボート/終了させる。
入ってくるDIMM_IDローカルバスのタイオフ3'b111マッチングする場合であっても、DIMM#8とアドレス指定される。れは、ローカルバスは3'b111を使用しているので、他のDIMMできる。しかし、上述のように、ブロードキャストコマンドを使用したHID/DIMM_IDの割り当てが実行される場合は、このシナリオは起きないことに留意されたい
にも関わらずID/DIMM_IDり当てがプログラミングステップとして行われなかった場合のエラーシナリオに対処すべく、アボートを実行るハブは、ホストバス上のバスコンテンション/マルチドライバを低減するのに役立つ。
図12は、さまざまな実施例にかかる、メモリモジュールのハブにより、メモリモジュール識別子を取得する段階、ホストからのブロードキャストhost_ID伝搬コマンドを受信する段階、受信したコマンドのhost_IDを修正する段階、およびメモリモジュール上の全てのデバイスへのコマンドを伝搬する段階、のプロセス1200の動作フローの概要を示している。よって、プロセス1200は、図11に関連して上述した、図10のコマンド1000のようなコマンドの受信に応答してDIMMのハブによりとられるアクションの詳細を説明するものである。
プロセス1200は、さまざまな実施例にかかる、たとえば、図1のゲートウェイ130、または、たとえば図13のゲートウェイ1328などの、メモリモジュールのゲートウェイまたはハブにより実行されてよい。プロセス1200は、たとえば、少なくとも部分的に、たとえば図1のゲートウェイ130の復号回路133などの、ハブ内の復号回路により実行されてよい。プロセス1200はブロック1210からブロック1250までを含んでよい。別の実施例では、プロセス1200はこれより多いまたは少ないオペレーションを有してよく、またいくつかのオペレーションが別の順序で実行されてよい。
図12を参照すると、プロセス1200はブロック1210で開始し、そこでは、メモリモジュールのハブが、メモリモジュールが挿入されるスロットに対応するメモリモジュール識別子を得するたとえば、DIMMのハブは、高精度抵抗器を介して、DIMMが挿入されるDIMMスロット番号にアクセスする。たとえば、8個のDIMMのあるメモリシステムの場合、メモリモジュール識別子は3ビットの数値であってよい。
ブロック1210から、プロセス1200は、ハブがホストコンピューターから、アクセスモードンジケータとレジスタオフセット値とを含むブロードキャストメッセージを受信する、ブロック1220へと進む。たとえば、ブロードキャストメッセージは、例示的な実装として、図10のコマンド1000と同等であってよくコマンド1000は、第1のアクセスモードおよびregister[15]を指すレジスタオフセット値1111」を示す。他の実施例では、他の例示的なコマンドを使用して、さまざまな他のレジスタが指し示されてよい。
プロセス1200はブロック1220からブロック1230へ移動し、そこでは、ハブがアクセスモードンジケータを復号して、ロトコルレジスタのアクセスモードがされていることを決定し、例えば、XMコントロールまたはプロトコルレジスタの第1のアクセスモードが値「1」を持つフラグで示されるシステムにおいては、XM-REG-MODEフラグが「1」である
プロセス1200はブロック1230からブロック1240へ移行し、そこでは、ハブは、コマンドがHost_ID値を含むホストID伝搬コマンドであることを識別する。たとえば、egister[15]を指すオフセットと、スレーブマスク値「111」と、RnW=0の「書き込み」をす値に設定されたread not writeフラグとの組み合わせが指定された図10のコマンドを使用するとハブ内の復号回路は、受信したコマンドが、ブがByte0で提供されるコントロールデータビットの一部を修正すべきである特別なホストID伝搬コマンドであることを識する。
最後に、プロセス1200はブロック1240からブロック1250へ移行し、そこでは、ハブはHost_ID値の一部を、検知されたメモリモジュール識別子と置き換え、修正されたコマンドをメモリモジュール上の全てのデバイスへ伝搬する。たとえば、図11で示されるように、コマンド1111の3個のLSBの修正に続き、ハブ1120および1130はそれぞれ、修正されたコマンド111を、IMM1125およびDIMM1135それぞれローカルバスで送信する。
そして図13を参照すると、さまざまな実施例にかかる、本開示内容の実行に適したコンピューターデバイスのブロックダイヤグラムが示されている。示されるように、コンピューターデバイス1300は、1または複数のプロセッサ1302と、システムメモリ1304とを含んでよい。それぞれのプロセッサ1302は、1または複数のプロセッサコアと、ハードウェアアクセラレータ1305とを含んでよい。ハードウェアアクセラレータ1305の実施例は、プログラムされたフィールドプログラマブルゲートアレイ(FPGAs)(図示せず)を含んでよいが、これに限られない。
コンピューターデバイス1300はまた、システムメモリ1304を含んでよい。実施例においては、システムメモリ1304は、DIMM1325などの、揮発性または非揮発性の任意の既知のメモリを含んでよい。DIMM1325はコマンドバス1341を介してプロセッサ1302に接続されてよい。さらに、コンピューターデバイス1300は、マスストレージデバイス1306、入力/出力デバイスインターフェイス1308(マウス、カーソルコントロール、ディスプレイデバイス(タッチ反応スクリーンを含む)などの、さまざまな入力/出力デバイスとインターフェイスするもの)、および通信インターフェイス1310(ネットワークインターフェイスカード、モデムなど)を含んでよい。実施例では、通信インターフェイス1310は、近接するフィールド通信を含めた有線または無線の通信をサポートしてよい。これらのエレメントは、1または複数のバスを表わし得るシステムバス1312を介して、互いに連結されてよい。複数のバスの場合、それらは1または複数のバスブリッジによりブリッジされてよい(図示せず)。
実施例においては、DIMM1325は、入力インターフェイス(図のサイズを考慮して図示しないが、図1を参照して上述されている)復号回路1327を含むゲートウェイ1328と、たとえばデバイス1329、デバイス1333およびデバイス1337などのデバイスのセットを含んでよくデバイスのセットは、それぞれが入力インターフェイス(図示せず)と復号回路1331、1335および1339を含んでよい。デバイス1329、1333および1337は、DIMM1325内に設けられたローカルバス1343にわたりートウェイ1328へ接続されてよい
実施例においては、オペレーティングシステム、1または複数のアプリケーション、および/またはゲートウェイ130の復号回路133、図1で示される「ゲートウェイ130の後ろ」に設けられる、デバイスA、BおよびCのそれぞれおける復号回路135またはゲートウェイ130内の復号回路1327と、図13に示されるように「ゲートウェイ1328の後ろ」に設けられる、デバイス1329、1333および1337のそれぞれの復号回路1331、1335および1339の様々なソフトウェア実装コンポーネントのプログラミング命令の実行可能なコード(これらを総称して演算ロジック1322という)の作業コピーと永久的コピーを記憶するために、システムメモリ1304とマスストレージデバイス1306が採用されてよい。演算ロジック1322を実装するプログラミング命令は、プロセッサ1302またはそのような命令にコンパイル可能なたとえばCなどの上位レベル言語によりサポートされるアセンブラ命令を備えてよい。実施例においては、ハードウェアアクセラレータ1305にいくつかの演算ロジックが実装されてよい。実施例においては、演算ロジック1322の一部、たとえばコンパイラのランタイム環境に関連付けられる演算ロジック1322の一部が、ハードウェアアクセラレータ1305で実装されてよい。
プログラミング命令の実行可能コードの永続コピーまたはハードウェアアクセラレータ1305を構成するためのビットストリーム、工場たは現場において、たとえばコンパクトディスク(CD)などの配布媒体(図示せず)を介して、または信インターフェイス1310介して(配信サーバー(図示せず)から)、永久的マスストレージデバイス1306および/またはハードウェアアクセラレータ1305に設置されてよい。
これらのエレメント1302からエレメント1333の数、ケーパビリティおよび/または容量は、実施例におけるコンピューターデバイス1300の使用目的、たとえば実施例におけるコンピューターデバイス1300がスマートフォン、タブレット、ウルトラブック、ラップトップ、サーバー、セットトップボックス、ゲームコンソール、カメラ、などのいずれであるかにより、変化してよい。エレメント1310からエレメント1343の具体的な構成は他にも知られているものがあるので、さらには説明しない。
さらに、本開示は、コンピュータープログラム製品またはコンピュータープログラムを作成するデータの形をとってよく、そのようなコンピュータープログラムまたはデータは、媒体に具現されるコンピューター使用可能なプログラムコード(またはコンピュータープログラムを作成するためのデータ)を有する任意の有形または非一時的な表現媒体に具現されてよい。図14は、実施例としての、機器による命令の実行に応答して本開示の選択された態様を機器に実施させる命令(または命令を作成するデータ)を記憶させるために使用するのに適し得る、コンピューター可読非一時的記憶媒体を示している。図に示されるように、非一時的コンピューター可読記憶媒体1402は、多数のプログラミング命令1404(またはプログラミング命令を作成するためのデータ)を含んでよい。プログラミング命令1404は、たとえばデバイス1300などのデバイスまたはそのコンポーネントが、プログラミング命令の実行に応答して、オペレーティングシステムファンクション、1または複数のアプリケーション、および/または本開示の態様と関連するさまざまなプログラミングオペレーションをできるように構成されてよい。
別の実施例では、代わりにプログラミング命令1404(または命令を作成するためのデータ)が複数のコンピューター可読非一時的記憶媒体1402上に配置されてよい。別の実施例では、ログラミング命令1404(または命令を作成するためのデータ)が、信号などの、コンピューター可読非一時的記憶媒体1402上に配置されてよい。1または複数のコンピューター使用可能媒体またはコンピューター可読媒体の任意の組み合わせが利用されてよい。コンピューター使用可能媒体またはコンピューター可読媒体は、たとえば1または複数の電子的、磁気的、光学的電磁的、赤外線または半導体のシステム、機器、デバイスまたは伝搬媒体であってよいが、これらに限られない。コンピューター可読媒体のより具体的な例(非網羅的列挙)としては以下のものが含まれる:1または複数の配線を有する電子的接続、ポータブルコンピューターディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能なプログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、光ファイバー、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、光学記憶デバイス、インターネットまたはイントラネットをサポートするもののような伝送媒体、または磁気記憶デバイス。注意すべきは、プログラム(またはプログラムを作成するためのデータ)はたとえば紙またはその他の媒体の光学スキャンなどを介して電子的にキャプチャされ、さらにコンパイル、解釈またはその他の処理が適した形で行われ、必要な場合はさらにコンピューターメモリに記憶させる(1または複数の中間記憶媒体の段階を有するか否かを問わない)ことが可能なので、コンピューター使用可能媒体またはコンピューター可読媒体は、プログラム(またはプログラムを作成するためのデータ)が印刷される紙または他の適した媒体であってもよいことである。本文書の文脈において、コンピューター使用可能媒体またはコンピューター可読媒体は、命令実行システム、機器またはデバイスによりまたはそれらと関連して使用されるためにプログラム(またはプログラムを作成するためのデータ)を保持、記憶、通信、伝搬または転送することができる任意の媒体であってもよい。コンピューター使用可能媒体は、コンピューター使用可能なプログラムコード(またはプログラムコードを作成するためのデータ)がベースバンドとしてまたは搬送波の一部として当該媒体に具現された、伝搬データ信号を含んでよい。コンピューター使用可能なプログラムコード(またはプログラムコードを作成するためのデータ)は、ワイヤレス、ワイヤライン、光ファイバーケーブル、RFなどを含むがこれらに限られない、任意の適切な媒体を使用して転送されてよい。
さまざまな実施例において、本明細書で説明されるプログラムコード(またはプログラムコードを作成するためのデータ)は、1または複数の圧縮フォーマット、暗号化されたフォーマット、断片化されたフォーマット、パッケージされたフォーマットなどに記憶されてよい。本明細書で説明されるプログラムコード(またはプログラムコードを作成するためのデータ)は、演算デバイスおよび/または他の機械により直接読み取りおよび/または実行可能にするために必要な、1または複数のインストール、修正、適応化、更新、組み合わせ、補充、コンフィギュレーション、復号、圧縮解除、開梱、配信、最割り当て等を要してよい。たとえば、プログラムコード(またはプログラムコードを作成するためのデータ)は、複数の部分に分けて別々の演算デバイスにおいて個別に圧縮、暗号化および記憶させられて、その部分が復号、圧縮解除および組み合わされた場合、そのプログラムコード(またはプログラムコードを作成するためのデータ)を本明細書の中で説明されるような形で実装する実行可能な1セットの命令を形成してよい。別の実施例では、プログラムコード(またはプログラムコードを作成するためのデータ)は、コンピューターで読み取り可能だが特定の演算デバイスまたは他のデバイス上での命令を実行するためにライブラリ(たとえばダイナミックリンクライブラリ)、ソフトウェア開発キット(SDK)、アプリケーションプログラミングインターフェイス(API)等の追加を要求する状態で記憶させられてよい。他の実施例ではプログラムコード(またはプログラムコードを作成するためのデータ)は、プログラムコード(またはプログラムコードを作成するためのデータ)が全体としてまたは部分的に実行/使用される前にコンフィギュレーション(たとえば設定記憶、データ入力、ネットワークアドレス記録など)が行われる必要があってよい。そして、開示されるプログラムコード(またはプログラムコードを作成するためのデータ)は、そのような機械可読な命令および/またはプログラム(またはそのような機械可読な命令を作成するためのデータおよび/またはプログラム)を、記憶される場合あるいは休止時または移送時の機械可読な命令および/またはプログラムの特定のフォーマットまたは状態にかかわらず、包含するよう意図されるものである。
本開示のオペレーションを実行するためのコンピュータープログラムコードは、Java(登録商標)、Smalltalk、C++などのオブジェクト指向のプログラミング言語、および「C」プログラミング言語またはそれに類似するプログラミング言語などの従来の手続き型プログラミング言語を含む、1または複数のプログラミング言語の任意の組み合わせで書かれてよい。プログラムコードは、完全にユーザーのコンピューター上で、部分的にリモートコンピューター上で、スタンドアローンソフトウェアパッケージとして、部分的にユーザーのコンピューター上でおよび部分的にリモートコンピューター上で、または完全にリモートコンピューター上またはサーバー上で、実行されてよい。後者のシナリオでは、リモートコンピューターは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを通してユーザーのコンピューターに接続されてよく、また、外部コンピューターに接続されてよい(たとえば、インターネットサービスプロバイダーを使用してインターネットを通して)。
図14は、まざまな実施例にかかるゲートウェイ130の復号回路133、1に示されるゲートウェイ130の後ろ」に設けられるデバイスA、BおよびCのそれぞれにおける復号回路135、または、ゲートウェイ130内の復号回路1327、および、図13に示される「ゲートウェイ1328の後ろ」に設けられるデバイス1329、1333および1337のそれぞれにおける復号回路1331、1335および1339のソフトウェア実装の全てまたは一部)を実装し、および/または、図2から図10のコマンド200コマンド1000の送信(その態様)を実施し、および/または上述の11のプロセス1100図12のプロセス1200を実施するように構成された命令を有する例示のコンピューター可読記憶媒体1400を示している。図で示されるように、コンピューター可読記憶媒体1402は、多数のプログラミング命令またはビットストリーム1404の実行可能コードを含んでよい。プログラミング命令(またはビットストリーム)1404の実行可能コードは、たとえばコンピューターデバイス1300などのデバイスが、実行可能コード/プログラミング命令(または暗号化されたハードウェアアクセラレータのオペレーション)に応答してゲートウェイ130の復号回路133、および、図1に示される「ゲートウェイ130の後ろ」に設けられるデバイスA、BおよびCのそれぞれにおける復号回路135、または、ゲートウェイ130内の復号回路1327、および、図13に示される「ゲートウェイ1328の後ろ」に設けられるデバイス1329、1333および1337のそれぞれにおける復号回路1331、1335および1339により実行されるプロセス(の態様)を実行すること、および/または、図2から図10のコマンド200からコマンド1000の送信と処理(の態様)を実施すること、および/または、11のプロセス1100図12のプロセス1200を実施することを可能にするよう構成されてよい。別の実施例においては、代わりに実行可能なコード/プログラミング命令/ビットストリーム1404が複数の非一時的なコンピューター可読記憶媒体1402に配されてよい。実施例においては、コンピューター可読記憶媒体1402は非一時的なものであってよい。さらに他の実施例においては、実行可能なコード/プログラミング命令1404は、信号などの一時的コンピューター可読媒体において復号されてよい。
図13に戻って参照すると、1つの実施例においては、ロセッサ1302のうち少なくとも1つが、図2から図12を参照して上述したオペレーションのすべてまたは選択されたものを実施するように構成された算ロジック1322の一部または全部有する(システムメモリ1304および/またはマスストレージデバイス1306に格納する代わりに)コンピューター可読記憶媒体とともにパッケージされてよい。1つの実施例においては、プロセッサ1302のうち少なくとも1つが、算ロジック1322の一部または全部を持つコンピューター可読記憶媒体とともにパッケージされてシステム・イン・パッケージ(SiP)を形成してよい。1つの実施例においては、プロセッサ1302のうち少なくとも1つが、いくつかまたは全ての演算ロジック1322を有するコンピューター可読記憶媒体とともに同じダイ上に一体化されてよい。1つの実施例においては、プロセッサ1302のうち少なくとも1つが、いくつかまたは全ての演算ロジック1322を有するコンピューター可読記憶媒体とともにパッケージされてシステム・オン・チップ(SoC)を形成してよい。少なくとも1つの実施例においては、SoCは、たとえばハイブリッド演算タブレット/ラップトップ(ただしこれに限られない)に利用されてよい。
本開示における技術の例示としての例を以下に提示する。技術の実施例には、以下で説明される1又は複数の、およびそれらの組み合わせの例が含まれる。
実施例
実施例1は、デバイスであって;ホストコンピューターからブロードキャストコマンドを受信するための入力インターフェイス前記入力インターフェイスと連結される復号回路とを備え、前記ブロードキャストコマンドは、アクセスモード指示を含み、復号回路は、受信した前記アクセスモード指示に少なくとも部分的に基づいて、前記ブロードキャストコマンドが、1または複数のデバイスの1または複数の予め定義されたセットアップまたはコントロールレジスタにアクセスすると、または、1または複数のデバイスの1または複数の内部レジスタにアクセスすることを命令すると決定し;前記決定に応じて、前記セットアップまたはコントロールレジスタへの前記アクセスまたは前記1または複数の内部レジスタへの前記アクセスを実行し、前記デバイスは、前記ホストコンピューターに連結されるメモリモジュール上に配置される。
実施例2は、前記ブロードキャストコマンドが、メモリモジュールのゲートウェイにより最初に受信され、次に前記メモリモジュール内でローカルバスを通して前記ゲートウェイから前記入力インターフェイスにより受信される、実施例1および/または本明細書の他のいずれかの実施例に記載のデバイスである。
実施例3は、コマンドバスおよび前記ローカルバスは半導体技術協会のXM仕様(XM仕様)に準拠している、実施例2および/または本明細書の他のいずれかの実施例に記載のデバイスである。
実施例4は、前記デバイスの1または複数の予め定義された前記セットアップまたはコントロールレジスタは前記XM仕様により規定されたレジスタである、実施例3および/または本明細書の他のいずれかの実施例に記載のデバイスである。
実施例5は、前記メモリモジュールはデュアルインラインメモリモジュール(DIMM)である、実施例1および/または本明細書の他のいずれかの実施例に記載のデバイスである。
実施例6は、前記デバイスは、電圧レギュレータ、温度センサ、タイミング情報を記憶するフラッシュメモリシリアルプレゼンスディテクト(SPD)デバイス、またはレジスタクロックドライバ(RCD)のつである、実施例1および/または本明細書の他のいずれかの実施例に記載のデバイスである。
実施例7は、前記デバイスの1または複数の内部レジスタは、XM仕様により規定された、予め定義されたオフセットでアクセス可能である、実施例1および/または本明細書の他のいずれかの実施例に記載のデバイスである。
実施例8は、前記ブロードキャストコマンドはさらに、1または複数のデバイスアドレスと、デバイスアドレスマスキングデータとを有し、前記復号回路はさらに;前記デバイスアドレスマスキングデータにより指示される前記1または複数のデバイスアドレスの一部を無視し;前記1または複数のデバイスアドレスの残りの部分が自己のアドレスの対応する部分とマッチングするか否かを判定する、実施例1および/または本明細書の他のいずれかの実施例に記載のデバイスである。
実施例9は、前記ブロードキャストコマンドに含まれる前記1または複数のデバイスアドレスは7ビット長であり、前記デバイスアドレスマスキングデータは、前記1または複数のデバイスアドレスの1つから7つの最下位ビット(最下位ビット=LSB)の間は無視されることを指示する、実施例8および/または本明細書の他のいずれかの実施例に記載のデバイスである。
実施例10は、前記ブロードキャストコマンドはさらに、記デバイスの最初の予め定義されたセットアップまたはコントロールレジスタ、または内部レジスタのロケーションを指定するオフセットを含み前記オフセットにおいて示されたアクセスを開始する、実施例1および/または本明細書の他のいずれかの実施例に記載のデバイスである。
実施例11は、1セットの命令を備える1または複数の非一時的なコンピューター可読記憶記録媒体であって、前記1セットの命令は、メモリモジュールに設けられるデバイスにより実行される場合に、前記デバイスに;ホストコンピューターからブロードキャストコマンドを受信することであって、前記ブロードキャストコマンドは、または複数のデバイスの1または複数のレジスタへのセットアップまたはコントロールデータの書き込みをオフセットで開始して行うように命令し且つデバイスアドレスおよびデバイスアドレスマスキングデータを含むことと;前記デバイスアドレスマスキングデータを適用して前記デバイスアドレスの一部をマスキングすることと;前記デバイスアドレスのマスキングされていない部分が前記デバイスのアドレスの対応する部分と一致するかどうかを判定することと;前記判定に応答して、記デバイスの前記1または複数のレジスタに前記オフセットで開始して前記データを書き込むことと;を実行させる、1または複数の非一時的なコンピューター可読記憶媒体である。
実施例12は、前記ブロードキャストコマンドが、前記ホストコンピューターを前記メモリモジュールへ接続するコマンドバス上でデバイスにより受信されるとともに、前記コマンドバスはXM仕様に準拠している、実施例11および/または本明細書の他のいずれかの実施例に記載の1または複数の非一時的なコンピューター可読記憶媒体である。
実施例13は、前記ブロードキャストコマンドがさらに、アクセスモードンジケータを含み、非一時的なコンピューター可読記憶媒体は、実行される、前記デバイスに前記アクセスモードインジケータを復号、アクセスモードが前記デバイスの1または複数の予め定義されたセットアップまたはコントロールレジスタに対するものであることを判定させる命令をさらに備える、実施例11および/または本明細書の他のいずれかの実施例の1または複数の非一時的なコンピューター可読記憶媒体である。
実施例14は、前記1または複数の予め定義されたセットアップまたはコントロールレジスタがXM仕様で規定されており、前記データは指定される前記1または複数の予め定義されたコントロールレジスタへ書き込まれるべきコントロールデータを含む、実施例13および/または本明細書の他のいずれかの実施例に記載の1または複数の非一時的なコンピューター可読記憶媒体である。
実施例15は、前記コントロールデータは複数の2バイトペアとなっており、前記複数の2バイトペアは、コントロールデータバイトと、対応するマスクバイトとを含み、前記対応するマスクバイトは、前記コントロールデータバイトのどのビットが前記デバイスの予め定義されたコントロールレジスタへ書き込まれるべきかと、前記コントロールデータバイトのどのビットが無視されるべきかとを指示する、実施例14および/または本明細書の他のいずれかの実施例に記載の1または複数の非一時的なコンピューター可読記憶媒体である。
実施例16は、前記デバイスアドレスマスキングデータは、前記データが前記コマンドバスを介して前記ホストコンピューターへ接続される複数のメモリモジュールにわたる同じタイプのデバイスへ書き込まれるように構成される、実施例12および/または本明細書の他のいずれかの実施例に記載の1または複数の非一時的なコンピューター可読記憶媒体である。
実施例17は、DIMMにおいてブロードキャストコマンドをホストコンピューターから受信する段階であって、前記ブロードキャストコマンドは、アクセスモードのインジケータとレジスタオフセット値とを含む、受信する段階と;前記アクセスモードのインジケータを復号して、プロトコルレジスタのアクセスモードが指示されたことを決定する段階と;クセスモードンジケータとレジスタオフセット値とに少なくとも部分的に基づいて、前記コマンドが、受信デバイスに対して、前記フセットにより指示される前記プロトコルレジスタへDIMM識別子(DIMM_ID)値を書き込むことを命令するDIMM_ID伝搬コマンドであることを識別する段階と;前記識別に応答して、前記ブロードキャストコマンドを修正して、DIMM_IDの一部をローカルDIMM識別子と置き換える段階と;修正された前記ブロードキャストコマンドをローカルバスにわたり前記DIMM上の全てのデバイスへ伝搬する段階と;を備える、方法である。
実施例18は、前記DIMMが挿入されるスロットから前記ローカルDIMM識別子を取得する段階をさらに備える、実施例17および/または本明細書の他のいずれかの実施例に記載の方法である。
実施例19は、前記DIMMが、前記ホストコンピューターに接続されるN個のDIMMのうちのいずれか1つであって、Kを整数として、N=2Kであり;前記ローカルDIMM識別子はK個のビットを含み、前記ブロードキャストコマンドを修正する段階はさらに、IMM_IDのK個の最下位ビット(LSB)をローカルDIMM識別子で置き換える段階を含む;実施例17および/または本明細書の他のいずれかの実施例に記載の方法である。
実施例20は、前記方法が、前記DIMMのゲートウェイあるいはその一部により実行され、また前記ローカルバスはXM仕様に準拠している、実施例17および/または本明細書の他のいずれかの実施例に記載の方法である。
実施例21は、ブロードキャストコマンドをホストコンピューターから受信する段階であって、前記ブロードキャストコマンドは、1または複数のデバイスの1または複数のレジスタへのセットアップまたはコントロールデータの書き込みをオフセットで開始して実行することを命令し、且つ、デバイスアドレスおよびデバイスアドレスマスキングデータを含む、段階と;前記デバイスアドレスマスキングデータを適用して前記デバイスアドレスの一部をマスキングする段階と;前記デバイスアドレスのマスキングされていない部分が前記デバイスのアドレスの対応する部分とマッチングするかどうかを判定する段階と;前記判定に応答して、記デバイスの前記1または複数のレジスタに前記オフセットで開始して前記データを書き込む段階と;を備える方法である。
実施例22は、前記方法が、さらにコマンドバス上で戦記ブロードキャストコマンドを受信する段階を備え、前記コマンドバスはXM仕様に準拠している、実施例21および/または本明細書の他のいずれかの実施例に記載の方法である。
実施例23は、前記ブロードキャストコマンドがさらにアクセスモードンジケータを有し、方法はさらに前記アクセスモードンジケータを復号して前記アクセスモードが前記デバイスの1または複数の予め定義されたセットアップまたはコントロールレジスタへのものであることを判定する段階を備える、実施例21および/または本明細書の他のいずれかの実施例に記載の方法である。
実施例24は、前記1または複数の予め定義されたセットアップまたはコントロールレジスタがXM仕様で規定されており、前記データは指定される前記1または複数の予め定義されたコントロールレジスタへ書き込まれるべきコントロールデータを含む、実施例23および/または本明細書の他のいずれかの実施例に記載の方法である。
実施例25は、前記コントロールデータは複数の2バイトペアとなっており、前記複数の2バイトペアは、コントロールデータバイトと、対応するマスクバイトとを含み、前記対応するマスクバイトは、前記コントロールデータバイトのどのビットが前記デバイスの予め規定されたコントロールレジスタへ書き込まれるべきかと、前記データバイトのどのビットが無視されるべきかとを指示する、実施例24および/または本明細書の他のいずれかの実施例に記載の方法である。
実施例26は、前記デバイスアドレスマスキングデータは、前記データが前記コマンドバスを介して前記ホストコンピューターへ接続される複数のメモリモジュールにわたる同じタイプのデバイスへ書き込まれるように構成される、実施例22および/または本明細書の他のいずれかの実施例に記載の方法である。
実施例27は、DIMMにおいてブロードキャストコマンドをホストコンピューターから受信する手段であって、前記ブロードキャストコマンドは、アクセスモードのインジケータとレジスタオフセット値とを含む、受信する手段と;前記アクセスモードンジケータを復号して、プロトコルレジスタのアクセスモードが指示されたことを判定する手段と;クセスモードのインジケータとレジスタオフセット値と少なくとも部分的に基づいて、前記コマンドが、受信デバイスに対して、前記フセットによりされる前記プロトコルレジスタへDIMM識別子(DIMM_ID)値を書き込むことを命令するDIMM_ID伝搬コマンドであることを識別する手段と;前記ブロードキャストコマンドを修正して、DIMM_IDの一部をローカルDIMM識別子と置き換える手段と;修正された前記ブロードキャストコマンドをローカルバスにわたり前記DIMM上の全てのデバイスへ伝搬する手段と;を備える、演算用装置である。
実施例28は、前記DIMMが挿入されるスロットから前記ローカルDIMM識別子を取得する手段をさらに備える、実施例27および/または本明細書の他のいずれかの実施例に記載の演算用装置である。
実施例29は、前記DIMMが、前記ホストコンピューターに接続されるN個のDIMMのうちのいずれか1つであって、Kを整数として、N=2Kであり;前記ローカルDIMM識別子はK個のビットを含み、前記ブロードキャストコマンドを修正する手段はさらに、IMM_IDのK個の最下位ビット(LSB)をローカルDIMM識別子で置き換える手段を含む;実施例27および/または本明細書の他のいずれかの実施例に記載の演算用装置である。
実施例30は、前記演算用装置が、前記DIMMのゲートウェイあるいはその一部であり、また前記ローカルバスはXM仕様に準拠している、実施例27および/または本明細書の他のいずれかの実施例に記載の装置である。
実施例31は、ロードキャストコマンドをホストコンピューターから受信する手段であって、ブロードキャストコマンドは、1または複数のデバイスの1または複数のレジスタに、セットアップまたはコンロトールデータをオフセットで開始して書き込むことを命令し、且つ、デバイスアドレスおよびデバイスアドレスマスキングデータを含む、手段と; 前記デバイスアドレスマスキングデータを適用して前記デバイスアドレスの一部をマスキングする手段と;前記デバイスアドレスのマスキングされていない部分が前記デバイスのアドレスの対応する部分とマッチングするかどうかを判定する手段と;記デバイスの前記1または複数のレジスタに前記データを前記オフセットで開始して書き込む手段と;を備える演算用装置である。
実施例32は、前記演算用装置が、さらにコマンドバス上で戦記ブロードキャストコマンドを受信する手段を備え、前記コマンドバスはXM仕様に準拠している、実施例31および/または本明細書の他のいずれかの実施例に記載の装置である。
実施例33は、前記ブロードキャストコマンドがさらにアクセスモードインジケータを有し、装置はさらに前記アクセスモードンジケータを復号して、前記アクセスモードが前記デバイスの1または複数の予め定義されたセットアップまたはコントロールレジスタへのものであることを決定する手段を有する、実施例31および/または本明細書の他のいずれかの実施例に記載の演算用装置である。
実施例34は、前記1または複数の予め定義されたセットアップまたはコントロールレジスタがXM仕様で規定されており、前記データは指定される前記1または複数の予め定義されたコントロールレジスタへ書き込まれるコントロールデータを含む、実施例33および/または本明細書の他のいずれかの実施例に記載の演算用装置である。
実施例35は、前記コントロールデータは複数の2バイトペアとなっており、前記複数の2バイトペアは、コントロールデータバイトと、対応するマスクバイトとを含み、前記対応するマスクバイトは、前記コントロールデータバイトのどのビットが前記デバイスの予め規定されたコントロールレジスタへ書き込まれるべきかと、前記データバイトのどのビットが無視されるべきかとを指示する、実施例34および/または本明細書の他のいずれかの実施例に記載の演算用装置である。
実施例36は、前記デバイスアドレスマスキングデータは、前記データが前記コマンドバスを介して前記ホストコンピューターへ接続される複数のメモリモジュールにわたる同じタイプのデバイスへ書き込まれるように構成される、実施例32および/または本明細書の他のいずれかの実施例に記載の演算用装置である。
[その他の考えられ得る請求項目]
(項目1)
デバイスであって、
ホストコンピューターからブロードキャストコマンドを受信するための入力インターフェイスあって、ブロードキャストコマンドは、アクセスモード指示を含む、入力インターフェイスと、
入力インタフェースに連結される復号回路とを備え、復号回路は、
受信した上記アクセスモード指示に少なくとも部分的に基づいて、上記ブロードキャストコマンドが、1または複数のデバイスの1または複数のセットアップまたはコントロールレジスタにアクセスすると、または1または複数のデバイスの1または複数の内部レジスタにアクセスすることを命令すと決定し、
上記決定に応じて、上記セットアップまたはコントロールレジスタへの上記アクセスまたは上記1または複数の内部レジスタへの上記アクセスを実行し、
上記デバイスは、上記ホストコンピューターに連結されるメモリモジュール上に配置される、デバイス。
(項目2)
上記ブロードキャストコマンドが、メモリモジュールのゲートウェイにより最初に受信され、次に上記メモリモジュール内でローカルバスを通して上記ゲートウェイから上記入力インターフェイスにより受信される、項目1に記載のデバイス。
(項目3)
コマンドバスおよび上記ローカルバスは半導体技術協会のXM仕様(XM仕様)に準拠している、項目2に記載のデバイス。
(項目4)
上記デバイスの1または複数の予め定義された上記セットアップまたはコントロールレジスタは上記XM仕様により規定されたレジスタである、項目3のデバイス。
(項目5)
上記メモリモジュールはデュアルインラインメモリモジュール(DIMM)である、項目1に記載のデバイス。
(項目6)
上記デバイスは、電圧レギュレータ、温度センサ、タイミング情報を記憶するフラッシュメモリシリアルプレゼンスディテクト(SPD)デバイス、またはレジスタクロックドライバ(RCD)のつである、項目1に記載のデバイス。
(項目7)
上記デバイスの1または複数の内部レジスタは、XM仕様により規定された、予め定義されたオフセットでアクセス可能である、項目1に記載のデバイス。
(項目8)
上記ブロードキャストコマンドはさらに、1または複数のデバイスアドレスと、デバイスアドレスマスキングデータとを有し、上記復号回路はさらに、
上記デバイスアドレスマスキングデータにより指示される上記1または複数のデバイスアドレスの一部を無視し、
上記1または複数のデバイスアドレスの残りの部分が自己のアドレスの対応する部分と一致するか否かを判定する、
項目1に記載のデバイス。
(項目9)
上記ブロードキャストコマンドに含まれる上記1または複数のデバイスアドレスは7ビット長であり、上記デバイスアドレスマスキングデータは、上記1または複数のデバイスアドレスの1最下位ビット(最下位ビット=LSB)の範囲が無視されることを、項目8に記載のデバイス。
(項目10)
上記ブロードキャストコマンドはさらに、記デバイスの、最初の予め定義されたセットアップまたはコントロールレジスタ、または内部レジスタのロケーションを指定するオフセットを含み上記オフセットにおいて、示されるアクセスを開始する、項目1に記載のデバイス。
(項目11)
1セットの命令を備える1または複数の非一時的なコンピューター可読記憶記録媒体であって、上記1セットの命令は、メモリモジュールに設けられるデバイスにより実行される場合に、上記デバイスに、
ホストコンピューターからブロードキャストコマンドを受信することであって、上記ブロードキャストコマンドは、または複数のデバイスの1または複数のレジスタへのセットアップまたはコントロールデータの書き込みをオフセットで開始して行うことを命令し且つデバイスアドレスおよびデバイスアドレスマスキングデータを含むことと、
上記デバイスアドレスマスキングデータを適用して上記デバイスアドレスの一部をマスキングすることと、
上記デバイスアドレスのマスキングされていない部分が上記デバイスのアドレスの対応する部分とマッチングするかどうかを判定することと、
上記判定に応答して、記デバイスの上記1または複数のレジスタに上記データを上記オフセットで開始して書き込むことと
を実行させる、1または複数の非一時的なコンピューター可読記憶媒体。
(項目12)
上記ブロードキャストコマンドが、上記ホストコンピューターを上記メモリモジュールへ接続するコマンドバス上でデバイスにより受信されるとともに、上記コマンドバスはXM仕様に準拠している、項目11に記載の1または複数の非一時的なコンピューター可読記憶媒体。
(項目13)
上記ブロードキャストコマンドがさらに、アクセスモードンジケータを含み、1または複数の非一時的なコンピューター可読記憶媒体は、実行される、上記デバイスに対し、上記アクセスモードンジケータを復号上記アクセスモードが上記デバイスの1または複数の予め定義されたセットアップまたはコントロールレジスタに対するものであることを決定させる命令をさらに備える、項目11の1または複数の非一時的なコンピューター可読記憶媒体。
(項目14)
上記1または複数の予め定義されたセットアップまたはコントロールレジスタがXM仕様で規定されており、上記データは指定される上記1または複数の予め規定されたコントロールレジスタへ書き込まれるコントロールデータを含む、項目13に記載の1または複数の非一時的なコンピューター可読記憶媒体。
(項目15)
上記コントロールデータは複数の2バイトペアとなっており、上記複数の2バイトペアは、コントロールデータバイトと、対応するマスクバイトとを含み、上記対応するマスクバイトは、上記コントロールデータバイトのどのビットが上記デバイスの予め規定されたコントロールレジスタへ書き込まれるべきかと、上記データバイトのどのビットが無視されるべきかとを指示する、項目14に記載の1または複数の非一時的なコンピューター可読記憶媒体。
(項目16)
上記デバイスアドレスマスキングデータは、上記データが上記コマンドバスを介して上記ホストコンピューターへ接続される複数のメモリモジュールにわたる同じタイプのデバイスへ書き込まれるように構成される、項目12に記載の1または複数の非一時的なコンピューター可読記憶媒体。
(項目17)
DIMMにおいてブロードキャストコマンドをホストコンピューターから受信する段階であって、上記ブロードキャストコマンドは、アクセスモードのインジケータとレジスタオフセット値とを含む、受信する段階と、
上記アクセスモードのインジケータを復号して、プロトコルレジスタのアクセスモードが指示されたことを決定する段階と、
クセスモードンジケータとレジスタオフセット値とに少なくとも部分的に基づいて、上記コマンドが受信デバイスに対して、オフセットにより示されるプロトコルレジスタにDIMM識別子(DIMM_ID)値を書き込むことを命令するDIMM_ID伝搬コマンドであることを識別する段階と、
上記識別に応答して、上記ブロードキャストコマンドを修正して、DIMM_IDの一部をローカルDIMM識別子と置き換える段階と、
修正された上記ブロードキャストコマンドをローカルバスにわたり上記DIMM上の全てのデバイスへ伝搬する段階と
を備える、方法。
(項目18)
上記DIMMが挿入されるスロットから上記ローカルDIMM識別子を取得する段階をさらに備える、項目17に記載の方法。
(項目19)
上記DIMMは、上記ホストコンピューターに接続されるN個のDIMMのうちのいずれか1つであって、Kを整数として、N=2Kであり、
上記ローカルDIMM識別子はK個のビットを含み、上記ブロードキャストコマンドを修正する段階はさらに、IMM_IDのK個の最下位ビット(LSB)を上記ローカルDIMM識別子で置き換える段階を含む、
請求項17に記載の方法。
(項目20)
上記方法は、上記DIMMのゲートウェイあるいはその一部により実行され、また上記ローカルバスはXM仕様に準拠している、請求項17に記載の方法。

Claims (16)

  1. デバイスであって、
    ホストコンピューターからブロードキャストコマンドを受信するための入力インターフェイスであって、前記ブロードキャストコマンドは、アクセスモード指示を含む入力インターフェイスと、
    前記入力インターフェイス連結される復号回路とを備え前記復号回路は、
    受信した前記アクセスモード指示に少なくとも部分的に基づいて、前記ブロードキャストコマンドが、1または複数のデバイスの1または複数の予め定義されたセットアップまたはコントロールレジスタにアクセスすると、または前記1または複数のデバイスの1または複数の内部レジスタにアクセスするとを命令すると決定し、
    前記決定に応じて、前記セットアップ若しくはコントロールレジスタへのたは前記1または複数の内部レジスタへの前記アクセスを実行し
    前記デバイスは、前記ホストコンピューターに連結されるメモリモジュール上に配置され
    前記ブロードキャストコマンドは、前記メモリモジュールのゲートウェイにより最初に受信され、次に前記入力インターフェイスにより、前記メモリモジュール内のローカルバスを通して前記ゲートウェイから受信され、
    コマンドバスおよび前記ローカルバスは、半導体技術協会のXM仕様(XM Specification)に準拠している、デバイス
  2. 前記デバイスの前記1または複数の予め定義されたセットアップまたはコントロールレジスタは前記XM仕様により規定されたレジスタである、請求項に記載のデバイス。
  3. 前記メモリモジュールはデュアルインラインメモリモジュール(DIMM)である、請求項1または2に記載のデバイス。
  4. 前記デバイスは、電圧レギュレータ、温度センサ、タイミング情報を記憶するフラッシュメモリシリアルプレゼンスディテクト(SPD)デバイス、またはレジスタクロックドライバ(RCD)のつである、請求項1から3のいずれか一項に記載のデバイス。
  5. 前記デバイスの前記1または複数の内部レジスタは、前記XM仕様により規定された、予め定義されたオフセットにおいてアクセス可能である、請求項1から4のいずれか一項に記載のデバイス。
  6. 前記ブロードキャストコマンドはさらに、1または複数のデバイスアドレスと、デバイスアドレスマスキングデータとを有し、前記復号回路はさらに、
    前記デバイスアドレスマスキングデータによりされる前記1または複数のデバイスアドレスの一部を無視し、
    前記1または複数のデバイスアドレスの残りの部分が自己のアドレスの対応する部分とマッチングするか否かを判定する、
    請求項1から5のいずれか一項に記載のデバイス。
  7. 前記ブロードキャストコマンドに含まれる前記1または複数のデバイスアドレスは7ビット長であり、前記デバイスアドレスマスキングデータは、前記1または複数のデバイスアドレスのうちら7個の範囲の最下位ビット(SB)無視されるべきであることを請求項に記載のデバイス。
  8. 前記ブロードキャストコマンドはさらに、記デバイスの、最初の予め定義されたセットアップ若しくはコントロールレジスタ、または内部レジスタのロケーションを指定するオフセットを含み前記オフセットにおいて、示された前記アクセスを開始する、請求項1からのいずれか1項に記載のデバイス。
  9. セットを備えるプログラムであって、前記セットは、メモリモジュールに設けられるデバイスにより実行される、前記デバイスに、
    ホストコンピューターからブロードキャストコマンドを受信することであって、前記ブロードキャストコマンドは、または複数のデバイスの1または複数のレジスタへのセットアップまたはコントロールデータの書き込みをオフセットで開始して行うように命令し且つデバイスアドレスおよびデバイスアドレスマスキングデータを含むことと、
    前記デバイスアドレスマスキングデータを適用して前記デバイスアドレスの一部をマスキングすることと、
    前記デバイスアドレスのマスキングされていない部分が前記デバイスのアドレスの対応する部分とマッチングするかどうかを判定することと、
    前記判定に応答して、記デバイスの前記1または複数のレジスタに前記セットアップまたはコントロールデータを前記オフセットで開始して書き込むことと
    を実行させる、プログラムであって、
    前記ブロードキャストコマンドは、前記ホストコンピューターを前記メモリモジュールへ接続するコマンドバス上で前記デバイスにより受信され、前記コマンドバスはXM仕様に準拠している、プログラム
  10. 前記ブロードキャストコマンドさらに、アクセスモードンジケータを含み、前記プログラムは、実行される、前記デバイスに前記アクセスモードンジケータを復号て、クセスモードが前記デバイスの1または複数の予め定義されたセットアップまたはコントロールレジスタに対するものであることを決定させる命令をさらに備える、請求項に記載のプログラム。
  11. 前記1または複数の予め定義されたセットアップまたはコントロールレジスタは、前記XM仕様で規定されており、前記セットアップまたはコントールデータは指定される前記1または複数の予め定義されたセットアップまたはコントロールレジスタへ書き込まれるべきコントロールデータを含む、請求項10に記載のプログラム。
  12. 前記コントロールデータは複数の2バイトペアとなっており、前記複数の2バイトペアは、1バイトのコントロールデータバイトと、1バイトの対応するマスクバイトとを含み、前記対応するマスクバイトは、前記コントロールデータバイトのうちどのビットが前記デバイスの予め定義されたセットアップまたはコントロールレジスタへ書き込まれるべきかと、前記コントロールデータバイトのうちどのビットが無視されるべきかとを示、請求項11に記載のプログラム。
  13. 前記デバイスアドレスマスキングデータは、前記セットアップまたはコントロールデータが前記コマンドバスを介して前記ホストコンピューターへ接続される複数のメモリモジュールにわた同じタイプのデバイスへ書き込まれるように構成される、請求項から12のいずれか1項に記載のプログラム。
  14. DIMMのゲートウェイまたはその一部により、前記DIMMにおいてブロードキャストコマンドをホストコンピューターから受信する段階であって、前記ブロードキャストコマンドは、アクセスモードンジケータとレジスタオフセットとを含む、階と、
    前記ゲートウェイまたはその一部により、前記アクセスモードンジケータを復号して、プロトコルレジスタクセスモードがされていることを決定する段階と、
    前記ゲートウェイまたはその一部により、前記クセスモードンジケータおよび前記レジスタオフセット少なくとも部分的に基づいて、前記ブロードキャストコマンドが、受信デバイスに対し、前記レジスタオフセットによりされるロトコルレジスタへDIMM識別子(DIMM_ID)値を書き込むことを命令するDIMM_ID伝搬コマンドであることを識別する段階と、
    前記ゲートウェイまたはその一部により、前記識別に応答して、前記DIMM_IDの一部をローカルDIMM識別子と置き換えるように前記ブロードキャストコマンドを修正する段階と、
    前記ゲートウェイまたはその一部により、前記修正されたロードキャストコマンドをローカルバスを通して前記DIMM上の全てのデバイスへ伝搬する段階と
    を備える、方法であって、
    前記ローカルバスはXM仕様に準拠している、方法
  15. 前記ゲートウェイまたはその一部により、前記DIMMが挿入されるスロットから前記ローカルDIMM識別子を取得する段階をさらに備える、請求項14に記載の方法。
  16. 前記DIMMは、前記ホストコンピューターに接続されるN個のDIMMのうちのつであ、Kを整数として、N=2Kであり、
    前記ローカルDIMM識別子はK個のビットを含み、前記ブロードキャストコマンドを修正する前記段階はさらに、前記IMM_IDのK個の最下位ビット(LSB)を前記ローカルDIMM識別子で置き換える段階を含む、
    請求項14または15に記載の方法。
JP2020003112A 2019-02-22 2020-01-10 拡張モード(xm)バス上のデバイスへのxmモードバス変更、コンフィギュレーションレジスタアクセスおよびブロードキャスト/マルチキャストトランザクション Active JP7484068B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/283,498 2019-02-22
US16/283,498 US20190188165A1 (en) 2019-02-22 2019-02-22 Extended mode (xm) bus mode change, configuration register accesses and broadcast / multi-cast transactions to devices on a xm bus

Publications (3)

Publication Number Publication Date
JP2020135861A JP2020135861A (ja) 2020-08-31
JP2020135861A5 JP2020135861A5 (ja) 2024-03-28
JP7484068B2 true JP7484068B2 (ja) 2024-05-16

Family

ID=66813899

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020003112A Active JP7484068B2 (ja) 2019-02-22 2020-01-10 拡張モード(xm)バス上のデバイスへのxmモードバス変更、コンフィギュレーションレジスタアクセスおよびブロードキャスト/マルチキャストトランザクション

Country Status (5)

Country Link
US (1) US20190188165A1 (ja)
EP (1) EP3699768A1 (ja)
JP (1) JP7484068B2 (ja)
KR (1) KR20200102951A (ja)
CN (1) CN111611184A (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11720159B2 (en) * 2019-07-01 2023-08-08 Texas Instruments Incorporated Unified bus architecture for a voltage regulator
CN114024920B (zh) * 2021-11-24 2023-10-27 苏州暴雪电子科技有限公司 一种用于片上消息网络的数据包路由方法
US11837304B2 (en) 2022-04-02 2023-12-05 Changxin Memory Technologies, Inc. Detection circuit
US11816361B2 (en) 2022-04-02 2023-11-14 Changxin Memory Technologies, Inc. Circuit and method for transmitting data to memory array, and storage apparatus
US11625198B1 (en) 2022-04-02 2023-04-11 Changxin Memory Technologies, Inc. Detection circuit, detection method and memory device
CN116935944A (zh) * 2022-04-02 2023-10-24 长鑫存储技术有限公司 检测电路、方法及存储装置
CN115543898B (zh) * 2022-09-26 2023-06-27 南京国电南自维美德自动化有限公司 一种通信总线扩展方法及装置
CN116126401B (zh) * 2023-04-12 2023-07-25 此芯科技(上海)有限公司 一种寄存器配置电路、方法及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011530734A (ja) 2008-08-08 2011-12-22 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. 標準メモリモジュールとピン互換性のあるメモリモジュール内における独立制御可能且つ再構成可能な仮想メモリデバイス
JP2011530760A (ja) 2008-08-13 2011-12-22 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. マルチコアメモリモジュール内のパワーダウンモードの動的利用

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5655113A (en) * 1994-07-05 1997-08-05 Monolithic System Technology, Inc. Resynchronization circuit for a memory system and method of operating same
US7356639B2 (en) * 2000-01-05 2008-04-08 Rambus Inc. Configurable width buffered module having a bypass circuit
DE102012200083A1 (de) * 2012-01-04 2013-07-04 Robert Bosch Gmbh Verfahren und Steuergerät zur Ermittlung eines Identifikationscodes für ein Audiodatenpaket

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011530734A (ja) 2008-08-08 2011-12-22 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. 標準メモリモジュールとピン互換性のあるメモリモジュール内における独立制御可能且つ再構成可能な仮想メモリデバイス
JP2011530760A (ja) 2008-08-13 2011-12-22 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. マルチコアメモリモジュール内のパワーダウンモードの動的利用

Also Published As

Publication number Publication date
KR20200102951A (ko) 2020-09-01
CN111611184A (zh) 2020-09-01
US20190188165A1 (en) 2019-06-20
EP3699768A1 (en) 2020-08-26
JP2020135861A (ja) 2020-08-31

Similar Documents

Publication Publication Date Title
JP7484068B2 (ja) 拡張モード(xm)バス上のデバイスへのxmモードバス変更、コンフィギュレーションレジスタアクセスおよびブロードキャスト/マルチキャストトランザクション
JP2020135861A5 (ja)
TWI679539B (zh) 主從式系統、指令執行方法與資料存取方法
US20240012759A1 (en) Shared buffered memory routing
EP3822803B1 (en) Phy recalibration using a message bus interface
US8028154B2 (en) Method and system for reducing instruction storage space for a processor integrated in a network adapter chip
US9356887B2 (en) Controlling shared memory
TWI582572B (zh) 半導體系統、半導體裝置及電子裝置初始化方法
US7523299B2 (en) Method and system for modifying operation of ROM based boot code of a network adapter chip
US20150199137A1 (en) Embedded multimedia card and method of operating the same
JP2017529599A (ja) メモリとホストシステムとの間のeccメタデータの交換
KR20210061921A (ko) 트랜잭션 계층 패킷 포맷
JP6435101B2 (ja) 揮発性シャドウメモリを介した不揮発性メモリへのアクセス
JP6452293B2 (ja) 異なるタイミング要件をもつコマンドそれぞれによる異なるタイプのメモリへのアクセス
US9395999B2 (en) Microcomputer having processor capable of changing endian based on endian information in memory
US20150049101A1 (en) Display adaptation system for mipi display serial interface applications
WO2021120674A1 (zh) 一种多总线设备融合访问的方法及装置
EP1962183B1 (en) Method and apparatus for fast ethernet controller operation using a virtual CPU
Tsirkin et al. Virtual i/o device (virtio) version 1.1
WO2019100704A1 (zh) 用于多模IoT设备的启动方法、多模IoT设备及存储介质
US11119775B2 (en) Methods, apparatus, and systems to replace values in a device
US9766971B2 (en) Physical layer device operation system and method
CN117312233B (zh) 现场可编程逻辑门阵列芯片、及其构建方法及加速器设备
US11487680B2 (en) Apparatus and method for burst mode data storage
US20220413822A1 (en) Delivering applications over-the-air while supporting original equipment manufacturer markers

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240109

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20240319

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240411

R150 Certificate of patent or registration of utility model

Ref document number: 7484068

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150