IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インテル・コーポレーションの特許一覧

特許7593568双方向性の情報チャンネルのドリフトを監視するための単方向性の情報チャネル
<>
  • 特許-双方向性の情報チャンネルのドリフトを監視するための単方向性の情報チャネル 図1
  • 特許-双方向性の情報チャンネルのドリフトを監視するための単方向性の情報チャネル 図2
  • 特許-双方向性の情報チャンネルのドリフトを監視するための単方向性の情報チャネル 図3
  • 特許-双方向性の情報チャンネルのドリフトを監視するための単方向性の情報チャネル 図4A
  • 特許-双方向性の情報チャンネルのドリフトを監視するための単方向性の情報チャネル 図4B
  • 特許-双方向性の情報チャンネルのドリフトを監視するための単方向性の情報チャネル 図5
  • 特許-双方向性の情報チャンネルのドリフトを監視するための単方向性の情報チャネル 図6
  • 特許-双方向性の情報チャンネルのドリフトを監視するための単方向性の情報チャネル 図7
  • 特許-双方向性の情報チャンネルのドリフトを監視するための単方向性の情報チャネル 図8
  • 特許-双方向性の情報チャンネルのドリフトを監視するための単方向性の情報チャネル 図9
  • 特許-双方向性の情報チャンネルのドリフトを監視するための単方向性の情報チャネル 図10
  • 特許-双方向性の情報チャンネルのドリフトを監視するための単方向性の情報チャネル 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-25
(45)【発行日】2024-12-03
(54)【発明の名称】双方向性の情報チャンネルのドリフトを監視するための単方向性の情報チャネル
(51)【国際特許分類】
   G06F 13/36 20060101AFI20241126BHJP
   G06F 12/00 20060101ALI20241126BHJP
   G06F 13/42 20060101ALI20241126BHJP
【FI】
G06F13/36 530B
G06F12/00 564A
G06F13/36 310A
G06F13/42 310
【請求項の数】 12
【外国語出願】
(21)【出願番号】P 2020195302
(22)【出願日】2020-11-25
(65)【公開番号】P2021149931
(43)【公開日】2021-09-27
【審査請求日】2023-08-30
(31)【優先権主張番号】16/827,205
(32)【優先日】2020-03-23
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】アルヴィンド クマー
(72)【発明者】
【氏名】ディーン-デクスター アール.エウジェニオ
(72)【発明者】
【氏名】ジョン アール. ゴールズ
【審査官】豊田 真弓
(56)【参考文献】
【文献】特表2018-528640(JP,A)
【文献】特表2007-524166(JP,A)
【文献】米国特許出願公開第2005/0165970(US,A1)
【文献】国際公開第2010/080172(WO,A1)
【文献】国際公開第2020/055792(WO,A1)
【文献】米国特許出願公開第2019/0386859(US,A1)
【文献】特開2019-165433(JP,A)
【文献】特表2018-511108(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/36
G06F 12/00
G06F 13/42
(57)【特許請求の範囲】
【請求項1】
バスを通じて通信するデバイスであって、
第1の信号線に結合し、コンパニオンデバイスから信号を受信のみする単方向性の受信インタフェースと、
第2の信号線に結合し、前記コンパニオンデバイスに信号を送信のみする単方向性の送信インタフェースと、
前記第1の信号線及び前記第2の信号線から分離する(N-1)本の信号線に結合し、前記コンパニオンデバイスと信号を送受信する(N-1)個の双方向性のインタフェースと
を備え
前記単方向性の受信インタフェースは、前記(N-1)個の双方向性のインタフェースで前記コンパニオンデバイスに送信するときに、前記コンパニオンデバイスからメタデータを受信し、
前記受信インタフェースは、前記(N-1)個の双方向性のインタフェースで前記コンパニオンデバイスから信号を受信する準備をすべく、メタデータを受信し、マスタI/O(入力/出力)設定をトレーニングする、デバイス。
【請求項2】
前記受信インタフェースは、メタデータを受信し、I/O電力、I/O速度、I/O電圧、又はI/O位相をトレーニングする、請求項に記載のデバイス。
【請求項3】
前記受信インタフェースは、メタデータを受信し、前記(N-1)個の双方向性のインタフェースのデシジョンフィードバックイコライザ(DFE)回路をトレーニングする、請求項に記載のデバイス。
【請求項4】
全ての(N-1)個の双方向性のインタフェースは、前記マスタI/O設定を適用する、請求項に記載のデバイス。
【請求項5】
前記(N-1)個の双方向性のインタフェースは、最初に前記マスタI/O設定を適用し、特定の双方向性のインタフェースに前記マスタI/O設定を調整する、請求項に記載のデバイス。
【請求項6】
前記(N-1)個の双方向性のインタフェースは、スレーブオフセットで前記マスタI/O設定を適用する、請求項に記載のデバイス。
【請求項7】
前記バスはN+1ビットを備え、複数の前記コンパニオンデバイス間の各方向にNビットデータバスを実装する、請求項1からのいずれか一項に記載のデバイス。
【請求項8】
Nは、デバイスデータインタフェースの幅を含む、請求項1からのいずれか一項に記載のデバイス。
【請求項9】
前記コンパニオンデバイスは、メモリデバイスのメモリコントローラを含む、請求項1からのいずれか一項に記載のデバイス。
【請求項10】
前記コンパニオンデバイスは、メモリコントローラのメモリデバイスを含む、請求項1からのいずれか一項に記載のデバイス。
【請求項11】
メモリコントローラと、
データバスを通じて前記メモリコントローラに結合されるメモリデバイスと
を備え、
前記メモリデバイスは、
第1の信号線に結合し、前記メモリコントローラから信号を受信のみする単方向性の受信インタフェースと、
第2の信号線に結合し、前記メモリコントローラに信号を送信のみする単方向性の送信インタフェースと、
前記第1の信号線及び前記第2の信号線から分離する(N-1)本の信号線に結合し、前記メモリコントローラと信号を送受信する(N-1)個の双方向性のインタフェースと
を含み、
前記単方向性の受信インタフェースは、前記(N-1)個の双方向性のインタフェースで前記メモリコントローラに送信するときに、前記メモリコントローラからメタデータを受信し、
前記受信インタフェースは、前記(N-1)個の双方向性のインタフェースで前記メモリコントローラから信号を受信する準備をすべく、メタデータを受信し、マスタI/O(入力/出力)設定をトレーニングする、システム。
【請求項12】
前記メモリコントローラに結合されるホストプロセッサデバイス、
ホストプロセッサに通信可能に結合されるディスプレイ、
ホストプロセッサに通信可能に結合されるネットワークインタフェース、又は
前記システムに電力を供給するバッテリ
のうちの1又は複数をさらに備える、請求項11に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
説明は、概してI/O(入力/出力)に関連し、より詳細な説明は、双方向性のバスのI/Oパラメータを調整することに関連する。
【背景技術】
【0002】
双方向性のバスは、2つのデバイスが共有の信号線を通じてデータを交換することを可能にする。双方向性のバスは、2つのデバイスを接続する信号線の数を顕著に減らし得る。通信プロトコルは、通常、どのようにしてデバイスが共有の信号線を通じてデータを送信することを交代するかを制御する。双方向性のバスの共通の例は、双方向性のデータバスが、コントローラが書き込み動作の一部としてデータを送信し、メモリデバイスが読み取り動作の一部としてデータを送信することを可能にする、メモリデバイス及びコントローラシナリオにある。
【0003】
双方向性のバスが高速であるとき、例えば、メモリサブシステムにおいて、バスのI/O(入力/出力)信号線は、正確に調整された制御を有し、高速通信を可能にし得る。制御がなければ、バス上の信号は、顕著なノイズ、干渉、及びドリフトにさらされ得、高いエラー割合をもたらす。制御は、通常、環境状態(電圧ドリフト、熱変化、又は他の状態)に応じて変化し、I/Oドライバ及び受信機回路を変化した状態に適合させる。
【0004】
受信機が様々な制御を受信した信号に適用する場合、状態の変化が発生し得るがデータはバス上で一方向に流れることが理解されるだろう。バス方向が変化するとき、送信していたデバイスが受信機になり、高速シグナリングを受信ために適切に調整されない場合がある。このように、送信していたデバイスは、バスの現在の状態で適切に受信するために適切なI/O構成設定を有していない場合がある。バス上の通信のスピードが増加するにつれて、ドリフトの影響は、アイマージンのより大きな部分になり得る。ここで、アイマージンは、受信機が適切に信号を復号することを可能にするシグナリングにおける許容範囲を指す。
【0005】
双方向性の通信は、従来、バスの所与の状態に対するビットエラー割合を減らすI/O構成設定を発見することを指す、バスをトレーニングする能力を含む。高速バスを用いて、バス方向を反転させることは、一般的に、デバイスが他の方向に通信する準備するためにトレーニングを実行する必要性をもたらす。そのようなトレーニングがハンドシェーキングと称され得る。デバイスがアクティブデータを交換することの代わりに構成を設定するので、ハンドシェーキング又はI/Oトレーニングに従事する必要性は、通信遅延を増加させる。
【図面の簡単な説明】
【0006】
以下の説明は、実装の例として与えられた例示を有する図の議論を含む。図面は、例として理解されるべきであり、限定するものとして理解されるべきでない。本明細書で用いられる場合、1又は複数の例への言及は、本発明の少なくとも1つの実装に含まれる、特定の機能、構造、又は特性を説明するものとして理解されるべきである。本明細書に現れる「一例において」又は「代替例において」等の語句は、本発明の実装の例を提供し、必ずしも全てが同一の実装を指すわけではない。しかしながら、それらはまた、必ずしも相互に排他的ではない。
【0007】
図1】I/Oトラッキングに逆向きのデータ線を有するシステムの例のブロック図である。
【0008】
図2】I/Oトラッキングに逆向きのデータ線を有するシステムのデータアイの例の表示である。
【0009】
図3】I/Oトラッキングに逆向きのデータ線を有するデータインタフェースを通じた通信の例のタイミング図である。
【0010】
図4A】マスタ受信トラッキング回路を有するデータインタフェースに逆向きのデータ線を有するシステムの例のブロック図である。
【0011】
図4B】受信トラッキング回路を有する各受信機を含むデータインタフェースに逆向きのデータ線を有するシステムの例のブロック図である。
【0012】
図5】I/Oトラッキングに逆向きのデータ線を有するメモリサブシステムの例のブロック図である。
【0013】
図6】I/Oトラッキングを有するI/O受信機のブロック図である。
【0014】
図7】I/Oトラッキングに逆向きのデータ線を有するメモリデバイスを含むメモリモジュールの例のブロック図である。
【0015】
図8】逆向きのデータ線を有するシステムにおける双方向性のデータ転送の処理の例のフロー図である。
【0016】
図9】逆向きのデータ線を有する双方向性のデータ転送が実装され得るメモリサブシステムの例のブロック図である。
【0017】
図10】逆向きのデータ線を有する双方向性のデータ転送が実装され得るコンピューティングシステムの例のブロック図である。
【0018】
図11】逆向きのデータ線を有する双方向性のデータ転送が実装され得るモバイルデバイスの例のブロック図である。
【0019】
いくつか又は全の例、及び他の潜在的な実装を示し得る図の非限定的な説明を含む、特定の詳細及び実装の説明が続く。
【発明を実施するための形態】
【0020】
デバイスは、Nビットの双方向性のバスへのインタフェースを含む。Nビットバスは、(N-1)本の双方向性の信号線に結合する(N-1)個の双方向性のインタフェースを含み、複数のコンパニオンデバイス間の(送受信)信号を交換する。一例において、双方向性のバスは、シングルエンドバスである。バスは、2つの単方向性の信号線インタフェースを含む。第1のインタフェースは、単方向性の信号線に結合し、コンパニオンデバイスから信号を受信する単方向性の受信インタフェースである。第2のインタフェースは、単方向性の信号線に結合し、コンパニオンデバイスに信号を送信する単方向性の送信インタフェースである。信号線は、レーン又は情報チャンネルと称され得る。信号線、レーン、又は情報チャンネルと称されるかどうかにかかわらず、信号線は、コンパニオンデバイスへの情報信号の送信を可能にする。
【0021】
バスは、各方向におけるNビットバスに対するN本の信号線に追加の「後ろ向き」又は「逆向き」の信号線を提供する。追加の単方向性の信号線は、それが双方向性のバス上のデータの現在の流れとは反対方向に単方向性であるので、後ろ向き又は逆向きである。後ろ向きの信号線は、コンパニオンデバイスがバスの準備をして方向をスイッチすることを可能にする。逆方向のバスを監視することによって、デバイスがバスの現在の状態に対する構成設定を準備することを可能にし得る。このように、バスが方向をスイッチするとき、デバイスの構成設定が、バスの現在の状態に設定され得、バスが方向をスイッチするときに必要とされるトレーニングを減らす又は除去する。
【0022】
各方向に1つの単方向性のレーンが存在することで、バスは、従来のような各方向におけるNビットの情報にバスのレーンと反転する必要がない1つのレーンを提供し得る。例えば、10本のデータ信号線を有する10ビットバスを考える。10本の双方向性のレーンを有する従来のようなバスを実装する代わりに、9本の双方向性の信号線、一方向を指す1本の単方向性の信号線、及び他の方向を指す他の1本の単方向性の信号線を含む11本の信号線を有するバスが実装され得る。バスがどちらの方向を指しても、データを送信する10本の信号線及び逆方向を指す追加の信号線が存在するだろう。
【0023】
逆方向は、データの流れとは反対方向であることを指す。このように、流れの方向は送信機から受信機であり、逆方向は受信機から送信機である。双方向性のバスについて、コンパニオンデバイスのそれぞれが送信機として及び受信機として交代することが理解されるだろう。しかしながら、任意の所与のトランザクションについて、1つのデバイスがデータを送信する送信機であり、他のデバイスがデータを受信する受信機であるだろう。データの順方向はトランザクションの送信機から受信機であり、逆方向は同一のトランザクションの受信機から送信機である。役割が変化するとき、バス方向は変化する。
【0024】
他の例として、M個のメモリデバイスごとに4本の信号線を有し、合計でM×4本のDQ信号線を有するx4DQバス等の4ビットバスを考える。M個のメモリデバイスのそれぞれが、3本の双方向性の信号線、コントローラからメモリデバイスを指す1本の単方向性の信号線、及びメモリデバイスからコントローラを指す1本の単方向性の信号線を含む5ビットのインタフェースを有し得る。x4DQバスの例が提供されるが、同一の技術がx8DQバス、x16DQバス、又は他のバス幅若しくはデバイスデータインタフェース若しくはデバイスバスインタフェースの幅に適用され得ることが理解されるだろう。このように、追加の単方向性の信号線のオーバヘッドコストがより広いインタフェースで減り得ることが理解されるだろう。
【0025】
逆向きの単方向性の信号線は、送信機に逆のメタデータを送信し得る。一例において、メタデータは、単に、受信機によって提供されるダミー信号である。ダミー信号は、例えば、既知のビットパターン(1010…、11001100…、又はいくつかの他のパターン)であり得る。既知の信号パターンを用いて、送信機はどのデータを要求するかを知ることができ、バスを通じた通信の状態をトラッキングできる。
【0026】
一例において、ダミー信号である代わりに、メタデータがデータ信号であり得る。データ信号は、信号バス上の状態を具体的に示す任意のタイプの情報であり得る。一例において、メタデータ信号は、ハンドシェーキングルーティンに用いられるであろう1又は複数の信号であり得る。別個ハンドシェーキングルーティンに対するデータを送信する必要がある代わりに、逆向きの信号線は、バスが方向を変更するとすぐに適用される逆方向のハンドシェイクを提供し得る。
【0027】
一例において、メタデータ信号は、I/O構成の設定を示す受信信号からの情報を含む。このように、デバイスは、1又は複数のパラメータの構成情報を渡し、他のデバイスがバスの状態に対してほぼ正確であるべき構成から開始することを可能にし得る。
【0028】
従来、バスが方向を反転させたとき、受信機は、バスの状態の誤った構成設定を有する可能性が非常に高かった。逆方向の監視によって、デバイスは、バスが方向を反転するとすぐに訂正した構成設定を有し得、又は、バスが方向をスイッチした後に訂正した構成設定を非常に速く発見し得る。
【0029】
I/O構成設定は、I/O転送のための設定を構成するのに用いられる任意の1又は複数のタイプの情報を指し得る。I/O構成設定の例は、これらに限定されないが、スピード、電力、電圧、等化、デシジョンフィードバックイコライゼーション(DFE)、位相、又は他の構成設定を含み得る。概して、監視され得る情報は、シグナリングに用いられる任意のものである。より具体的には、逆方向の信号線が、時間の経過又は異なる状態でドリフト又は変化する任意のI/Oパラメータに対する情報に用いられ得る。
【0030】
逆向きのデータ線が本明細書で説明されるものを適用するシステムにおけるバスごとに追加の信号線をもたらすことが理解されるだろう。(複数の)追加の信号線のコストは、バスの方向をスイッチすることの影響を補償するために、予期される時間の減少と比較検討され得る。例えば、メモリサブシステムにおいて、追加の信号線を用いることは、温度及び電圧に起因する読み取りから書き込みまでのストローブシフト又は書き込みから読み取りまでのストローブシフトの影響を補償するために、時間の減少に対して考慮され得る。ストローブシフトは、DQS又はデータストローブ信号の位相にシフトすることを指す。
【0031】
DQS信号線の位相ドリフトをトラッキングすることへの従来のアプローチは、DQSクロックツリーオシレータを用いることである。しかしながら、DQSクロックツリーオシレータを用いることは、メモリデバイスをポーリングしてランタイムの間の遅延値を定期的に取得するためにメモリコントローラを要求し得る。そのような動作は、追加のコマンドをメモリに発行するためにコントローラを要求し、これはコントローラとメモリデバイスとの間の通信帯域幅を消費することが理解されるだろう。
【0032】
図1は、I/Oトラッキングに逆向きのデータ線を有するシステムの例のブロック図である。システム100は、双方向性のバスを表すバス102を含む。一例において、バス102は、シングルエンドバスである。シングルエンドバスは、各信号線が異なる信号を搬送するバスを指す。シングルエンドバスの代替は、信号に対する信号線及び相補信号(意図した信号の逆数又は補数)に対するコンパニオン信号線を含む差動バスである。バス102は、任意のタイプの双方向性のバスであり得る。
【0033】
デバイス110及びデバイス130は、バス102に対して送信機及び受信機を交代することになる。デバイス110は、バス102の情報チャンネルをインタフェースするボール、ピン、又は他のコネクタを表すインタフェース112を含む。デバイス130は、バス102とインタフェースする対応するコネクタを有するインタフェース132を含む。
【0034】
デバイス110は、TX/RX122として表される双方向性のインタフェースを含む。TX/RX122は、いずれかの方向で通信を提供する送受信機として表される。デバイス130は、デバイス130に対する対応する双方向性のインタフェースを表すTX/RX142を含む。
【0035】
デバイス110は、2個の単方向性のインタフェースを含む。デバイス130はまた、2個の単方向性のインタフェースを含む。TX(送信機)124は、デバイス110からデバイス130に流れる単方向性の情報チャネルへのインタフェースを表す。TX124は、デバイス110の送信専用インタフェースである。デバイス130は、デバイス110のTX124に対応するRX(受信機)144を含む。RX144は、バス102の単方向性の情報チャネル上のTX124によって送信される信号を受信するためのデバイス130の受信専用インタフェースである。
【0036】
同様に、TX146は、デバイス130からデバイス110に流れる単方向性の情報チャネルへのインタフェースを表す。TX146は、デバイス130の送信専用インタフェースである。デバイス110は、デバイス130のTX146に対応するRX126を含む。RX126は、バス102の単方向性の情報チャネル上のTX146によって送信される信号を受信するためのデバイス110の受信専用インタフェースである。情報チャンネルが逆方向で単方向性であるとき、一例において、トラッキングレーン又はトラッキング信号線と称され得る。
【0037】
デバイス110は、デバイス110のI/Oの構成パラメータに対する制御を表すパラメータ制御114を含む。一例において、パラメータ制御114は、デバイス110がTX/RX122及びTX124上で送信するときに、RX126を介して受信された信号に応答してI/Oパラメータに実行される制御を表す。デバイス110がデバイス130に送信するときのRX126上の信号は、メタデータ信号であるだろう。
【0038】
デバイス130は、デバイス130のI/Oの構成パラメータに対する制御を表すパラメータ制御134を含む。一例において、パラメータ制御134は、デバイス130がTX/RX142及びTX146上で送信するときに、RX144を介して受信した信号に応答してI/Oパラメータに実行される制御を表す。デバイス130がデバイス110に送信するときのRX144上の信号は、メタデータ信号であるだろう。
【0039】
一例において、メタデータ信号は、PI(比例・積分)若しくはPID(比例・積分・微分)設定、DFE設定、ゲイン設定、及び受信機の電圧エンベロープ設定のための情報等のトラッキングパラメータ情報又は他の情報に対する信号を表す。一例において、単方向性の後ろ向き信号線は、一旦バスが方向をスイッチすると、デバイス110のI/Oの設定に対するパラメータ制御114の情報を提供し得る。一例において、単方向性の後ろ向き信号線は、一旦バスが方向をスイッチすると、デバイス130のI/Oの設定に対するパラメータ制御134の情報を提供し得る。
【0040】
デバイスは、通常、信号を受信するときに受信I/OのI/Oパラメータを維持し得る。良好なシグナリングを維持するために、受信機が着信信号をトラッキングし、I/Oパラメータを調整するような動作が従来適用される。単方向性の信号線によって、デバイス110及びデバイス130は、常に受信信号線を有することが理解されるだろう。受信信号線を有することによって、デバイスは、受信デバイスのI/Oを維持することができ、構成を双方向性の信号線(例えば、TX/RX122及びTX/RX142)に適用するのにパラメータコントローラで情報を用いることができる。一例において、単方向性の線が、DQSドリフトの情報をトラッキングするのに用いられ得る。
【0041】
図2は、I/Oトラッキングに逆向きのデータ線を有するシステムのデータアイの例の表示である。図200は、双方向性のバスとインタフェースするデバイスのI/Oインタフェースのデータアイ図を表す。図200は、インタフェース112又はインタフェース132の1又は複数のインタフェースの例のデータアイ図の例を表す。
【0042】
図200は、信号平均220内のスペースの形状を表すデータアイ210を示す。信号平均220は、シグナリングの平均を表す。信号平均内のスペースは信号平均内の全てのエリアと見なされ得、灰色のひし形は、信号がないことを保持するためのターゲットエリアを示す。ひし形は、アイ幅EW及びアイ高さEHを有する。EW及びEHの外側では、データアイ210と信号平均220との間の余白によって表されるマージンが存在する。余白はマージンと称され得る。マージン230は、データアイ210と信号平均220との間の範囲であるマージンを示す。
【0043】
データアイ210は、I/Oの特定の設定に関連するデータアイである。図200は、データアイ210に対するシナリオとしての2つの信号を示す。信号222は破線である。信号222は全体に信号平均220内にあり、したがってI/O設定で適切に受信され得ることが観測され得る。信号224は実線である。信号224は右にシフトされた位相であることが観測され得る。シフトに起因して、信号224は、データアイ210内のマージン230の外側で立ち上がりエッジを有する。このように、信号224はデータアイ210に違反し、信号が確実に読み取られないだろう。
【0044】
図200は、監視及び調整され得る様々なパラメータの影響を示す。VDDは受信高電圧を表す。VSSは受信低電圧を表す。VTTはVDDとVSSとの間の中心電圧を表す。一例において、VDDとVSSとの間で揺れ動くI/O信号は、終端が用いられるとき、VTTに終端され得る。一例において、VDDとVSSとの間の揺れが調整され得る。
【0045】
期間250は、信号の立ち上がりエッジと立ち下がりエッジとの間の公称期間を表す。一例において、期間250が受信機の応答を変更することによって調整され得る。傾斜240は立ち上がりエッジの傾斜を表す。同様の傾斜が立ち下がりエッジに監視され得る。傾斜240は、スルーレート又は単位時間ごとの信号電圧の変化と称され得る。一例において、傾斜240は変更した環境状態に対応するために調整され得る。
【0046】
一例において、システム100のパラメータ制御114又はパラメータ制御134等のパラメータ制御は、全期間の一部だけパラメータを調整して、I/O回路が信号を正確にトラッキングすることを可能にし得る。例えば、I/O回路は、1又は複数のパラメータを調整することによってXピコ秒だけ位相を調整し得る。
【0047】
図3は、I/Oトラッキングに逆向きのデータ線を有するデータインタフェースを通じた通信の例のタイミング図である。図300は、Nビットの双方向性のバスを共有する2つのデバイスを有するシステムの様々な信号を表す。図300は、図1のシステム100に従って、システムのタイミング図の例を提供する。
【0048】
信号310は、クロック信号(CLK)を表し、単に参照用である。動作に対する特定の数のクロックサイクルは重要ではない。全信号を横切る破線は、ゼロ以上クロックサイクルの期間を示し得るブレイクタイムを表す。図300の例において、コマンドが完全なクロックサイクルにわたって発生し、データがクロックエッジ(立ち上がりエッジ及び立ち下がりエッジ、又はダブルデータレート)ごとに1つのビットとして送信される。一例において、コマンドは2つのクロックサイクルがかかる、又は、2つのコマンドが単一のコマンド動作で実行される必要がある。そのような例は、図300に具体的に示されていない。
【0049】
信号320は、コマンド(CMD)信号を表す。図300の例において、コマンドは、示されるコマンドに基づいて、メモリコントローラからメモリデバイスに送信され得る。他のデバイス対が双方向性のバスを通じて同様の交換を実行し得ることが理解されるだろう。データバスの追加の信号線を示す目的で、信号320は、書き込みコマンド(書き込み322)、続いて読み取りコマンド(読み取り324)、続いて書き込みコマンド(書き込み326)を示す。書き込みから読み取りへの移行(書き込み322から読み取り324)は、バス反転方向をもたらすだろう。読み取りから書き込みへの移行(読み取り324から書き込み326)は、バス反転が戻ることをもたらすだろう。コマンドは単にバスの移行を示し、他のコマンド及び信号は、バスの移行の間に(書き込みコマンドの後の複数の書き込み又は読み取りコマンドの後の複数の読み取りを含んで)送信され得ることが理解されるだろう。
【0050】
信号330は、コントローラからメモリへの(C->M)単方向性の信号の信号線を表す。信号342、信号344、及び信号346は、コントローラとメモリとの間の双方向性の信号(BIDIR)を表す。以下で説明するとおり、双方向性の信号は、バスが反転するときに方向を変更するだろう。信号350は、メモリからコントローラへの(M->C)単方向性の信号の信号線を表す。
【0051】
書き込み322の後、コントローラはメモリにデータを送信する。このように、信号330、信号342、信号344、及び信号346は、コントローラからメモリへの順方向データを提供する。データは、各線上で送信されるPビットのデータD0、D1、…、D[P-1]として表される。通常、変数「N」は、線を通じて送信されるビット数を示すのに用いられる。しかしながら、Nが信号線の数を示すのに先に用いられているので、ここではPが用いられる。異なる数の信号線及び異なる数のビットが実装に用いられ得ることを単に示すだけのために異なる変数を用いる。図300は、データD0、D1、…、D[N-1]を送信するものとして代替的に例示して説明され得る。ここで、Nは、必ずしもバスの信号線の数に等しいわけではない。信号350は、メモリ書き込みに対して逆方向に単方向性である。このように、信号350は、逆方向にメタデータ(MD)を提供する。
【0052】
読み取り324の後、メモリはコントローラにデータを送信する。このように、信号342、信号344、信号346、及び信号350は、メモリからコントローラへの順方向データを提供する。データは、各線上で送信されるPビットのデータD0、D1、…、D[P-1]として表される。信号330は、メモリ読み取りに対して逆方向に単方向性である。このように、信号330は、逆方向にメタデータ(MD)を提供する。
【0053】
書き込み326の後、コントローラは、再びメモリにデータを送信する。このように、信号330、信号342、信号344、及び信号346は、コントローラからメモリに順方向データを再び提供し、信号350は、逆方向にメタデータ(MD)を提供する。
【0054】
一例において、メタデータはランダムデータである。たとえランダムデータであっても、送信デバイスは、バスが方向を反転させるときに受信用のチャネルの構成を準備し得る。一例において、システムはデータを送信することになるので、システムは、ランダムデータの代わりに使用可能なメタデータを送信する。一例において、使用可能なメタデータは、1又は複数のI/O構成設定に関する情報を示すフィードバックビットを表す。一例において、メタデータ信号は、単一の構成設定のみに関する情報を含む。一例において、メタデータは、複数の構成設定に関する情報を含む。複数の構成設定に関する情報を送信するとき、異なる設定についてのデータは、順番に送信され得る。メタデータの送信機及び受信機が両方ともどんな情報が送信されているかを理解できるようにプロトコルが提供され得る。一例において、メタデータは、メタデータパケットのフィードバックインジケータ又はヘッダ、続いてメタデータパケットペイロードを含み得る。
【0055】
図4Aは、マスタ受信トラッキング回路を有するデータインタフェースに逆向きのデータ線を有するシステムの例のブロック図である。システム402は、図1のシステム100に従って、システムの例を提供する。システム402は、双方向性のバスを通じてお互いと通信するコンパニオンデバイスであるデバイス410及びデバイス440を含む。システム402は、実際のシステム実装の任意の幅であり得るバスのサイズを指定しない。
【0056】
デバイス410は、デバイス440のRXインタフェース442に対応する単方向性のインタフェースとしてTXインタフェース412を含む。デバイス410は、デバイス440の双方向性のインタフェースTX/RX444及びTX/RX446にそれぞれ対応する双方向性のインタフェースTX/RX414及びTX/RX416を含む。デバイス410は、デバイス440のTXインタフェース448に対応する単方向性のインタフェースとしてRXインタフェース418を含む。このように、バスはN-1個の双方向性のインタフェース及び2個の単方向性のインタフェースを含み、1個の単方向性のインタフェースが各方向を指す。
【0057】
一例において、デバイス410は、RXインタフェース418に結合されるマスタRXトラッキング432を含む。マスタRXトラッキング432は、デバイス410が送信機であるとき、RXチャンネルを通じて受信される逆のメタデータに基づいて適切なI/O設定をトラッキングする。一例において、マスタRXトラッキング432は、TX/RX416のスレーブ434及びTX/RX414のスレーブ436への制御を提供する。一例において、メタデータに応答して、マスタRXトラッキング432は、スレーブ434及びスレーブ436に送信する受信設定を生成する。一例において、スレーブ434及びスレーブ436は、スレーブオフセットでマスタ設定を適用する。スレーブオフセットは、例えば、マスタRXトラッキング432に関連してスレーブ434又はスレーブ436に知られているオフセットであり得る。そのようなオフセットは、マスタRXトラッキング432が以前の設定及び現在の設定の両方とも提供する、又は単にオフセットを提供する場合に知られ得る。
【0058】
一例において、スレーブ434及びスレーブ436は、RXインタフェース418に適用されるのと同じようにマスタ設定を適用する。その後、スレーブ434及びスレーブ436は、それぞれのTX/RX414及びTX/RX416をローカルに調整し、マスタ設定を特定のI/OインタフェースのローカルI/Oに調整し得る。このように、スレーブインタフェースは、最初にマスタI/O設定を適用し、そのインタフェースの動作に基づいて、特定の双方向性のインタフェースの設定をローカルに調整し得る。PLL426は、デバイス410の制御回路を表し、受信インタフェースのI/Oインタフェースを調整する。制御回路は、受信データ信号に対するストローブの位相を調整し、電圧、ゲイン、DFEタップ設定、クロック周波数、若しくは他設定、又は設定の組み合わせを調整し得る。
【0059】
一例において、PLL426は、マスタRXトラッキング432によってRX418で監視される構成に基づいて設定を調整する。同様に、デバイス440のPLL456は、デバイス440の同様の機能を実行し得る。一例において、PLL456は、マスタRXトラッキング462によってRX442で監視される構成に基づいて設定を調整する。デバイス440は、マスタRXトラッキング462、スレーブ464、及びスレーブ466を示し、デバイス410の同様のコンポーネントに対して前述のように説明され得る。一例において、PLL426は、デバイス410によってインタフェースされる全てのレーンのタイミング制御を提供する。一例において、PLL456は、デバイス440によってインタフェースされる全てのレーンのタイミング制御を提供する。
【0060】
デバイス410は、TX/RX414に結合されるTX422及びTX/RX416に結合されるTX424を示す。TX422及びTX424は、双方向性のインタフェースの送信ソースを表す。インタフェースのデータパスがシステム402に具体的に示されないが、デバイス410が送信機であるとき、TX422及びTX424はアクティブであり、TX/RX414及びTX/RX416上のデータをそれぞれ送信することが理解されるだろう。デバイス410が受信機であるとき、双方向性のインタフェースの構成がスレーブ434及びスレーブ436によって制御され、送信パスがアクティブでない。
【0061】
デバイス440は、TX/RX444に結合されるTX452及びTX/RX446に結合されるTX454を示す。TX452及びTX454は、双方向性のインタフェースの送信ソースを表す。インタフェースのデータパスがシステム402に具体的に示されないが、デバイス440が送信機であるとき、TX452及びTX454はアクティブであり、TX/RX444及びTX/RX446上のデータをそれぞれ送信することが理解されるだろう。デバイス440が受信機であるとき、双方向性のインタフェースの構成がスレーブ464及びスレーブ466によって制御され、送信パスがアクティブでない。
【0062】
パス428は、デバイス410のPLL426又は他のI/Oシグナリング制御回路によって提供されるタイミング又はシグナリング制御を表す。パス430は、マスタRXトラッキング432によるスレーブ434及びスレーブ436への通信を表す。パス458は、デバイス440のPLL456又は他I/Oシグナリング制御回路によって提供されるタイミング又はシグナリング制御を表す。パス460は、マスタRXトラッキング462によるスレーブ464及びスレーブ466への通信を表す。
【0063】
概して、単方向性の線は、デバイスが送信機であるときに、メタデータを受信するのに用いられ得る。一例において、メタデータは、マスタI/O(入力/出力)設定をトレーニングするのに用いられ得る。例えば、メタデータは、I/O電力、I/O速度、I/O電圧、若しくはI/O位相をトレーニングするのに、又はデシジョンフィードバックイコライザ(DFE)回路をトレーニングするのに用いられ得る。
【0064】
図4Bは、受信トラッキング回路を有する各受信機を含むデータインタフェースに逆向きのデータ線を有するシステムの例のブロック図である。システム404は、図1のシステム100に従って、システムの例を提供する。システム404は、システム402への代替例を提供する。システム402が全てのRXインタフェースにマスタトラッキング回路を提供する一方で、システム404は、別個の制御のために別個のRXインタフェーストラッキング回路にメタデータを提供する。
【0065】
システム404は、上述のデバイス410及びデバイス440を含む。システム402に存在するシステム404の全てのコンポーネントは、以下の代替手段を用いて、上述のものと同様に動作し得る。
【0066】
一例において、デバイス410は、RXインタフェース418のRXトラッキング472、TX/RX416のRXトラッキング474、及びTX/RX414のRXトラッキング476を含む。RXトラッキング472、RXトラッキング474、及びRXトラッキング476は、デバイス410が送信機であるとき、RXインタフェース418のRXチャンネルを通じて受信される逆のメタデータに基づいて、適切なI/O設定をトラッキングする。マスタトラッキング回路を有するのではなくて、各インタフェースは別個のトラッキング回路を有し得る。トラッキング回路は、バスが方向をスイッチするときに、その状態でバスのI/O構成を計算する。
【0067】
一例において、デバイス440は、RXインタフェース442のRXトラッキング482、TX/RX444のRXトラッキング484、及びTX/RX446のRXトラッキング486を含む。RXトラッキング482、RXトラッキング484、及びRXトラッキング486は、デバイス440が送信機であるとき、RXインタフェース442のRXチャンネルを通じて受信される逆のメタデータに基づいて、適切なI/O設定をトラッキングする。
【0068】
パス428は、デバイス410のPLL426又は他のI/Oシグナリング制御回路によって提供されるタイミング又はシグナリング制御を表す。パス470は、別個のI/Oインタフェースの別個のトラッキング回路へのメタデータのパスを表し、RXトラッキング472、RXトラッキング474、及びRXトラッキング476を含む。パス458は、デバイス440のPLL456又は他のI/Oシグナリング制御回路によって提供されるタイミング又はシグナリング制御を表す。パス480は、別個のI/Oインタフェースの別個のトラッキング回路へのメタデータのパスを表し、RXトラッキング482、RXトラッキング484、及びRXトラッキング486を含む。
【0069】
マスタオフセット及びスレーブオフセットによってであろうと、マスタトラッキング及びスレーブ調整によってであろうと、インタフェースごとの別個のトラッキング制御によってであろうと、概して、単方向性の線は、デバイスが送信機であるときに、メタデータを受信するのに用いられ得る。一例において、メタデータは、マスタI/O(入力/出力)設定をトレーニングするのに用いられ得る。例えば、メタデータは、I/O電力、I/O速度、I/O電圧、若しくはI/O位相をトレーニングするのに、又はデシジョンフィードバックイコライザ(DFE)回路をトレーニングするのに用いられ得る。
【0070】
図5は、I/Oトラッキングに逆向きのデータ線を有するメモリサブシステムの例のブロック図である。システム500は、高速でシングルエンドの双方向性のデータバスを通じて通信するコントローラ510及びメモリ530を含む。コントローラ510は、ホストシステム又はメモリ530が組み込まれるシステムを表す。メモリ530は、メインメモリ又は動作システムメモリである。
【0071】
メモリ530は、x4DQインタフェースを有するメモリデバイスを表す。メモリ530は、代替的にx5DQインタフェースとして解釈され得る5本の信号線へのインタフェースを有することが理解されるだろう。しかしながら、DQ信号線の数の目的で、メモリ530が4DQ信号DQ[0:3]に接続することが理解され得る。
【0072】
一例において、DQ信号線のうちの1つが、DQバスの順方向及び逆方向に分割されるだろう。システム500は、2つの単方向性の信号線の間で分割されるものとしてDQ0を示す。DQ信号のいずれかが、単方向性の信号線の間で分割され得ることが理解されるだろう。DQ0を単方向性の線上に置くことは、コントローラ510からメモリ530への信号が常に同一の方向であるので、より良好なDQ0リンクを提供し得、これは、構成を向上させ得る。そのような機能は、デバイスごとのアドレス指定能力(PDA)又はシグナリングのDQ0を利用する他の機能等の機能の利点であり得る。
【0073】
コントローラ510は、メモリ530に従って、複数のメモリデバイスに結合され得る。単一のメモリ530のみがシステム500に示される。コントローラ510は、通常、各メモリデバイスへの異なるDQリンクを有するだろう。
【0074】
一例において、コントローラ510は、メモリ530の接続534に接続するC->M(コントローラからメモリに)のDQ0への単方向性の接続514を含む。一例において、コントローラ510は、メモリ530の接続536に接続するDQ[1:3]への双方向性の接続516を含む。4DQ信号より多くについて、より多くの双方向性の信号線及び関連付けられた接続が存在することが理解されるだろう。一例において、コントローラ510は、メモリ530の接続538に接続するM->C(メモリからコントローラに)のDQ0への単方向性の接続518を含む。C->MのDQ0及びM->CのDQ0は共にDQ0の双方向性のDQリンクを提供する。
【0075】
一例において、PLL526は、コントローラ510の接続514、接続516、及び接続518の位相タイミング制御を提供する。一例において、PLL542は、メモリ530の接続534、接続536、及び接続538の位相タイミング制御を提供する。PLL526及びPLL542は、それぞれ、コントローラ510及びメモリ530の受信機のシグナリング構成を調整し得る。
【0076】
一例において、コントローラ510は、メモリ530からデータの要求を生成するホストプロセッサとのインタフェースを表すホストインタフェース522を含む。ホストプロセッサは、ホストオペレーティングシステム(OS)を実行するプライマリプロセッサ、又はグラフィックスプロセッサ、又は周辺プロセッサであり得る。コントローラ510のスケジューラ524は、ホストコマンドを送信し、書き込みコマンドのデータの送信をスケジュールするスケジューラを表す。一例において、受信されたデータが、リクエスタに返信するホストインタフェース522に提供され得る。一例において、接続518上で受信されたメタデータが、本明細書の任意の説明に従ってコントローラ510の受信インタフェースを構成するのにPLL526によって用いられ得る。
【0077】
メモリ530は、メモリ530のメモリアレイを表すアレイ544を含む。アレイ544は、高速メモリサブシステムをサポートするのに用いられる任意のメモリ技術であり得る。書き込みコマンドに応答して、メモリ530はアレイ544にデータを書き込む。読み取りコマンドに応答して、メモリ530は、アレイ544からデータを返す。書き込みコマンドを用いて、メモリ530は、DQ0を通じてコントローラ510にM->Cメタデータを提供し得る。読み取りコマンドを用いて、コントローラ510は、DQ0を通じてメモリ530にC->Mメタデータを提供し得る。
【0078】
図6は、I/Oトラッキングを有するI/O受信機のブロック図である。システム600は、システム100、システム402、システム404、又はシステム500に従って、受信機回路の例を提供する。一例において、システム600の回路は、受信機電圧エンベロープの検出を提供し得る。一例において、回路は各受信機に含まれ得る。一例において、DQS信号が異なるRX受信回路間で共有される。
【0079】
システム600は、データパスを表すパス602及びデータストローブパスを表すパス604を含む。パス602は、RXインタフェースを通るデータ(Dn)のパスである。データは、データアイのために処理及びチェックされ得る。パス604は、DQSインタフェースを通るデータストローブ(DQS)のパスである。DQSは、データ信号を復号するのに用いられるクロック信号である。
【0080】
一例において、パス604は、データ信号を受信するためにデータをサンプリングするサンプラ626にDQS信号を提供する。サンプラ626がDQS信号を誘発するラッチとして実装され得る。データ信号(Dn)は、サンプラ626の入力であり、出力は、バッファリングされ、その後、メモリアレイに書き込まれるQnである。一例において、RXインタフェースがメタデータを受信する単方向性のインタフェースである場合、出力Qnは、メタデータが有用なデータである場合にRXトラッキング640に送信され得、又は、メタデータがダミーデータである場合にドロップされ得る。
【0081】
一例において、パス604は、サンプラ622及びサンプラ624にDQS信号を提供する。サンプラ622及びサンプラ624がDQS信号を誘発するラッチとして実装され得る。データアイが維持されて、データが適切に復号され得ることを保証すべく、サンプラ622及びサンプラ624はデータ信号にエンベロープの検出を提供する。
【0082】
データ信号(Dn)が、正及び負の参照(それぞれVREF+及びVREF-)と比較される。コンパレーター612はDnを受信してVREF-と比較し、コンパレーター614はDnを受信してVREF+と比較する。コンパレーター612の出力が、入力としてサンプラ622に提供される。コンパレーター614の出力が、入力としてサンプラ624に提供される。一例において、サンプラ622及びサンプラ624の出力が、XOR(排他的OR)ゲート630と比較されエラー信号を生成する。エラー信号がRXトラッキング640に提供され得る。データ信号のサンプリングがデータアイに違反する場合、システム600は、RXトラッキング640がI/Oを向上させるためにI/O構成を調整するのに用い得るエラー信号を生成するべきである。
【0083】
一例において、機能650は、1又は複数の機能を表し、受信されたデータ信号に適用する。機能650は、1又は複数の回路要素又は回路を表し、着信信号に1又は複数の調整を実行し得る。機能650によって表され得る機能は、DFE、書き込みレベリング、内部書き込み信号、リフレッシュ同期、ODT、若しくは他の機能、又は組み合わせを含み得る。
【0084】
図7は、I/Oトラッキングの逆向きのデータ線を有するメモリデバイスを含むメモリモジュールの例のブロック図である。システム700は、システム100、システム402、システム404、システム500、又はシステム600に従って、システムの例を提供する。以前の説明は、1つのメモリデバイスをホストコントローラに接続することに焦点を合わせていたが、システム700は、複数のメモリデバイスに接続されたホストコントローラの例を提供する。
【0085】
システム700は、制御バス(C/A(コマンド/アドレス)バス742)並びにチャネル0(CH[0])のバス744及びチャネル1(CH[1])のバス746に分割されるものとして示されるデータバスを共有するメモリデバイスを有するシステムの一実施形態を示す。メモリデバイスは、DRAM(dynamic random access memory)デバイス730として表される。一例において、2つの別個のチャネルがC/Aバス742を共有する。一例において、別個のチャネルが別個のC/Aバスを有するだろう。DRAMデバイス730は、デバイス固有コマンドで個々にアクセスされ得、並列コマンドと並列にアクセスされ得る。
【0086】
RCD(registered clock driver又はregistering clock driver)720は、DIMM(dual inline memory module)710のコントローラを表す。RCD720によって表されるコントローラは、コントローラ740によって表されるホストコントローラ又はメモリコントローラとは異なることが理解されるだろう。同様に、RCD720は、DRAMデバイス上に含まれるオンチップ又はオンダイコントローラとは異なる。一例において、RCD720は、(コントローラ740等の)ホストから情報を受信し、コントローラ740から様々なDRAMデバイス730に信号をバッファリングする。全てのDRAMデバイス730がコントローラ740に直接接続される場合、信号線上の負荷は、高速シグナリング能力を低下させるだろう。コントローラ740から入力信号をバッファリングすることによって、コントローラRCD720の負荷のみを認識し、その後、タイミング及びDRAMデバイス730へのシグナリングを制御し得る。
【0087】
一例において、RCD720は、C/Aバス722[0]を通じてチャネル0のDRAMデバイスへの信号を制御し、C/Aバス722[0]を通じてチャネル1のDRAMデバイスへの信号を制御する。一例において、RCD720は、別個のチャネルの独立したコマンドポートを有する。一例において、データバスはまた、RCD720を通じてルーティングされ、これは具体的に示されていない。一例において、DIMM710は、DRAMデバイス730とコントローラ740との間のデータバス信号をバッファリングするデータバッファ(不図示)を含む。
【0088】
C/Aバス722[0]及びC/Aバス722[1](総じて、C/Aバス722)は、通常、コマンド及びコントローラ740からDRAMデバイス730へのアドレス情報を伝送する一方的なバス又は単方向性バスである。したがって、C/Aバス722は、マルチドロップバスであり得る。データバスは、従来、双方向性バス、ポイントツーポイントバスである。
【0089】
一例において、DRAMデバイス730は、コントローラ740からDRAMデバイスへの単方向性の信号線、DRAMデバイスからコントローラ740への他の単方向性の信号線、及びDRAMデバイスとコントローラ740との間の複数の双方向性の信号線を有するデータバスへのインタフェースを含む。そのようなインタフェースは、説明される任意の例に従うことができる。単方向性のデータバス信号線及び双方向性のデータバス信号線は、メモリデバイスとホストコントローラとの間に直接接続され得、RCD720を通じてルーティングされ得、又はデータバッファを通じてルーティングされ得る。
【0090】
本明細書の他の説明に従って、一例において、DRAMデバイス730及びコントローラ740は、逆のデータ方向にメタデータを交換し、データバスの方向をスイッチするための受信機の準備を可能にする。システム700において、たとえ、両方がコントローラ740とDIMM710との間で接続されても、データバス744の状態は、データバス746の状態と必ずしも同一ではないことが理解されるだろう。さらに、異なるバスは、異なるチャネルへの作業負荷の読み取りパターン及び書き込みパターンに応じて、異なる時間で異なる方向を指し得る。さらに、各DRAMデバイス730は、たとえ同一のチャネル内であっても、同一のデータバス内の別個のデータ又はDQ信号線に対する異なる状態を経験し得る。したがって、逆方向の信号線は、各チャネルがお互いに独立したものを異なる状態に調整し、各DRAMデバイス730がお互いに独立したものを異なる状態に調整することを可能にする。そのような制御は、各デバイスが個々のデバイスで最高のパフォーマンスにI/Oシグナリング構成を調整することを可能にする。
【0091】
2つの単方向性の信号線がチャネルごとのM個のDRAMデバイス730のそれぞれに接続することによって、チャネルごとに、コントローラ740とDIMM710との間のルーティングである追加のM本の信号線が存在し得ることが理解されるだろう。追加の信号線は、関連コストを有する。追加の信号線はまた、データバスが読み取りコマンドと書き込みコマンドとの間変化に応答して方向をスイッチするので、減少したシグナリング遅延という利点を提供した。
【0092】
一例において、DIMM710は、冗長なDRAMデバイス730を含み、ECC(error checking and correction)を実装する。そのような冗長なDRAMデバイスはまた、バス内の追加の信号線を実装し、より速いスイッチを可能にする。
【0093】
図8は、逆向きのデータ線を有するシステムにおける双方向性のデータ転送の処理の例のフロー図である。処理800は、メモリデバイス及びコントローラデバイスによって実行され得る処理の例を提供し、双方向性のインタフェース上のデータを交換する。処理800の代替的な実装は、書き込みコマンド又は読み取りコマンドの代わりのトリガに基づいて、データ方向のスワッピングに置き換え得る。したがって、当業者は、メモリ及びコントローラ以外のデバイスを有するシステム構成における双方向性のインタフェース上でデータを交換する実装処理800の仕方を理解するだろう。
【0094】
一例において、802において、メモリデバイス及びコントローラは、インタフェースを構成することによって設定されたI/Oインタフェース設定でデータを交換する。一例において、804において、ホストは、メモリデバイスに後続のコマンドを送信する。コマンドが現在送信されているものと同一の方向のデータを送信するコマンドである場合、データバス上の方向に変化が存在しない。コマンドがデータフローの方向を逆転するコマンドである場合、コマンドはデータバスをトリガして反転するだろう。
【0095】
806のNOの分岐において、コマンドがデータをスワッピングする(DQ)方向をトリガしない場合、802において、コントローラ及びメモリデバイスは、引き続きI/Oインタフェース設定でデータを交換し得る。一例において、モードが受信したデータに基づいて引き続き受信構成設定を更新し得るという点で、どちらかのデバイスが受信機である。一例において、806のYESの分岐において、コマンドは、データ方向をスワッピングすることをトリガする。例えば、メモリデバイスが1又は複数の読み取りコマンドに応答してコントローラにデータを送信する場合、コントローラは、コントローラによって駆動されるバスに書き込みのためにメモリデバイスへデータを送信させる書き込みコマンドを送信し得る。
【0096】
一例において、808において、データフローが方向をスワッピングするとき、デバイスは、逆のメタデータ信号送信から順方向のデータ信号に逆の単方向性の信号線の使用を変更する。810において、デバイスは、双方向性の信号線インタフェースのデータ方向を変更して、受信機をドライバに又はその逆に変更する。一例において、812において、送信機であったデバイスは、逆の単方向性のメタデータに基づいて、順方向のデータ信号のインタフェースの受信機を構成する。一例において、構成は、逆向きの単方向性のインタフェースに基づいて受信状態を監視することに基づいて適用される。
【0097】
814において、デバイスは、順方向データから逆のメタデータシグナリングに順方向の単方向性の信号線インタフェースの使用を変更する。したがって、単方向性の信号線上で順方向データを送信していたデバイスは、受信機デバイスに変化し、ここではユーザデータの代わりの逆のメタデータであるが、単方向性の信号線上で引き続き(コントローラが送信機から受信機に変化している場合、メモリアレイに書き込まれるデータ、又はメモリデバイスが送信機から受信機に変化している場合、メモリアレイからのデータを)送信する。一例において、816において、ここでは、ユーザデータの受信機であるデバイスは、逆の単方向性の信号線を通じて逆方向にメタデータを送信し、次のデータバス方向のスイッチで受信機になる現在送信機であるデバイスを準備すべく、受信インタフェースを監視する。
【0098】
図9は、逆向きのデータ線を有する双方向性のデータ転送が実装され得るメモリサブシステムの例のブロック図である。システム900は、コンピューティングデバイスにおけるプロセッサ及びメモリサブシステムの要素を含む。システム900は、システム100、システム402、システム404、システム500、システム600、又はシステム700に従って、システムの例を提供する。
【0099】
メモリコントローラ920のI/O922は、双方向性のデータ(BD DQ)線936へのインタフェースを含む。メモリデバイス940のI/O942は、BD DQ線936へのインタフェースを含む。一例において、I/O922は、単方向性のデータ(UD DQ)線982へのインタフェースを含む。一例において、I/O942は、UD DQ線982へのインタフェースを含む。単方向性の線は、一方向のみを指す矢印でシステム900に表される。単方向性の線は、送信デバイスの受信構成を監視するのに用いられ、これは、データバス方向が変化するとき、送信デバイスが受信デバイスに速く移行することを可能にする。動作は、説明される任意の例に従うことができる。
【0100】
一例において、メモリコントローラ920は、逆のメタデータに基づいて受信I/Oの構成を調整するコントローラでの回路を表す制御(CTRL)986を含む。一例において、制御986は、マスタ制御及びスレーブ制御を含む。一例において、制御986は、I/Oインタフェースごとの別個の構成制御を含む。一例において、メモリデバイス940は、逆のメタデータに基づいて受信I/Oの構成を調整するメモリの回路を表す制御(CTRL)984を含む。一例において、制御984は、マスタ制御及びスレーブ制御を含む。一例において、制御984は、I/Oインタフェースごとの別個の構成制御を含む。
【0101】
プロセッサ910は、オペレーティングシステム(OS)及びアプリケーションを実行し得るコンピューティングプラットフォームの処理ユニットを表し、メモリのホスト又はユーザと総称され得る。OS及びアプリケーションは、メモリアクセスをもたらす動作を実行する。プロセッサ910は、1又は複数の別個のプロセッサを含み得る。各別個のプロセッサは、単一処理ユニット、マルチコア処理ユニット、又はその組み合わせを含み得る。処理ユニットは、CPU(central processing unit)等のプライマリプロセッサ、GPU(graphics processing unit)等の周辺プロセッサ、又はその組み合わせであり得る。メモリアクセスはまた、ネットワークコントローラ又はハードディスクコントローラ等のデバイスによって開始され得る。そのようなデバイスは、いくつかのシステムにおけるプロセッサと統合され得、バス(例えば、PCIエクスプレス)を介してプロセッサに取り付けられ得、又は、それらの組み合わせであり得る。システム900は、SOC(system on a chip)として実行され得、又はスタンドアロンコンポーネントで実行され得る。
【0102】
メモリデバイスへの言及は、異なメモリタイプに適用し得る。メモリデバイスは、しばしば、揮発性メモリ技術を指す。揮発性メモリは、デバイスへの電力が遮断された場合に、その状態(及びその上に記憶されるデータ)が不定となるメモリである。不揮発性メモリは、たとえ、デバイスへの電力が遮断された場合でもその状態が確定しているメモリを指す。ダイナミック揮発性メモリは、状態を維持するためにデバイスに記憶されたデータをリフレッシュすることを要求する。ダイナミック揮発性メモリの一例は、DRAM(dynamic random access memory)又はシンクロナスDRAM(SDRAM)等のいくつかの派生形を含む。本明細書で説明されるようなメモリサブシステムは、DDR4(DDRバージョン4、JESD79-4、JEDECによって2012年9月に最初に公開される)、LPDDR4(低電力DDRバージョン4、JESD209-4、2014年8月にJEDECによって最初に公開される)、WIO2(WideI/O2(WideIO2)、JESD229-2、2014年8月にJEDECによって最初に公開される)、HBM(高帯域幅メモリDRAM、JESD235A、2015年11月にJEDECによって最初に公開される)、DDR5(DDRバージョン5、JEDECによって議論中)、LPDDR5(LPDDRバージョン5、JESD209-5、2019年2月にJEDECによって最初に公開される)、HBM2((HBMバージョン2)、JEDECによって議論中)、若しくはその他のメモリ技術、又はメモリ技術の組み合わせ、及びそのような仕様の派生物若しくは拡張に基づく技術等の多くのメモリ技術と互換性があり得る。
【0103】
一例において、揮発性メモリに加えて、又は代替的に、メモリデバイスへの言及は、たとえデバイスへの電力が遮断された場合でも、その状態が確定している不揮発性メモリデバイスを指し得る。一例において、不揮発性メモリデバイスは、NAND又はNOR技術等のブロックアドレス可能なメモリデバイスである。したがって、メモリデバイスはまた、3次元のクロスポイントメモリデバイス、他のバイトアドレス可能な不揮発性メモリデバイス等の将来世代の不揮発性デバイスを含み得る。メモリデバイスは、メモリセルの抵抗状態又はメモリセルの位相に基づいてデータを記憶する、不揮発性のバイトアドレス可能な媒体を含み得る。一例において、メモリデバイスは、カルコゲニド相変化材料(例えば、カルコゲニドガラス)を用い得る。一例において、メモリデバイスは、多重閾値レベルNANDフラッシュメモリ、NORフラッシュメモリ、シングルレベル若しくはマルチレベル相変化メモリ(PCM)若しくはスイッチを有する相変化メモリ(PCM)、抵抗メモリ、ナノワイヤメモリ、強誘電体トランジスタランダムアクセスメモリ(FeTRAM)、メモリスタ技術を組み込む磁気抵抗ランダムアクセスメモリ(MRAM)メモリ、又はスピントランスファトルク(STT)-MRAM、又は上記のいずれかの組み合わせ、又は他のメモリであり得る、又はそれらを含み得る。
【0104】
メモリコントローラ920は、システム900の1又は複数のメモリコントローラ回路又はデバイスを表す。メモリコントローラ920は、プロセッサ910による動作の実行に応答してメモリアクセスコマンドを生成する制御ロジックを表す。メモリコントローラ920は、1又は複数のメモリデバイス940にアクセスする。メモリデバイス940は、上記で言及された任意のものに従うDRAMデバイスであり得る。一例において、メモリデバイス940が異なるチャネルとして編成及び管理される。ここで、各チャネルは、複数のメモリデバイスに並列に結合するバス及び信号線に結合する。各チャネルは独立に動作可能である。したがって、各チャネルが独立してアクセス及び制御され、タイミング、データ転送、コマンド及びアドレス交換、並びに他の動作はチャネルごとに別個である。結合とは、電気的結合、通信結合、物理的結合、又はこれらの組み合わせを指し得る。物理的結合は、直接接触を含み得る。電気的結合は、コンポーネント間の電気的な流れを可能にする、若しくはコンポーネント間のシグナリングを可能にする、若しくは両方を可能にする、インタフェース又は相互接続を含む。通信結合は、コンポーネントがデータを交換することを可能にする有線又は無線を含む接続を含む。
【0105】
一例において、チャネルごとの設定は、別個のモードレジスタ又は他のレジスタ設定によって制御される。一例において、各メモリコントローラ920は別個のメモリチャネルを管理するが、システム900は、単一のコントローラによって管理される複数のチャネルを有するように、又は単一のチャネル上に複数のコントローラを有するように構成され得る。一例において、メモリコントローラ920は、同一のダイ上で実装される又はプロセッサとして同一のパッケージスペースに実装されるロジック等のホストプロセッサ910の一部である。
【0106】
メモリコントローラ920は、上記で参照したメモリチャネル等のメモリバスに結合するI/Oインタフェースロジック922を含む。I/Oインタフェースロジック922(及びメモリデバイス940のI/Oインタフェースロジック942)は、ピン、パッド、コネクタ、信号線、トレース、若しくはワイヤ、若しくはデバイスを接続する他のハードウェア、又はこれらの組み合わせを含み得る。I/Oインタフェースロジック922は、ハードウェアインタフェースを含み得る。示されるように、I/Oインタフェースロジック922は、少なくとも信号線用のドライバ/送受信機を含む。一般的に、集積回路インタフェース内のワイヤは、パッド、ピン、又はコネクタと結合して、デバイス間の信号線又はトレース又は他のワイヤをインタフェースする。I/Oインタフェースロジック922は、ドライバ、受信機、送受信機、若しくは終端部、若しくは他の回路、又は回路の組み合わせを含み、デバイス間の信号線上の信号を交換し得る。信号の交換は、送信又は受信のうちの少なくとも1つを含む。メモリコントローラ920からメモリデバイス940のI/O942にI/O922を結合するように示されるが、メモリデバイス940のグループが並列にアクセスされるシステム900の実装では、複数のメモリデバイスがメモリコントローラ920の同一のインタフェースへのI/Oインタフェースを含み得ることが理解されるだろう。1又は複数のメモリモジュール970を含むシステム900の実装において、I/O942は、メモリデバイス自身上のインタフェースハードウェアに加えて、メモリモジュールのインタフェースハードウェアを含み得る。他のメモリコントローラ920は、他のメモリデバイス940への別個のインタフェースを含むだろう。
【0107】
メモリコントローラ920とメモリデバイス940との間のバスは、メモリコントローラ920をメモリデバイス940に結合する複数の信号線として実装され得る。バスは、通常、少なくともクロック(CLK)932、コマンド/アドレス(CMD)934、及び書き込みデータ(DQ)及び読み取りデータ(DQ)、及びゼロ以上の他の信号線938を含み得る。一例において、メモリコントローラ920とメモリとの間のバス又は接続は、メモリバスと称され得る。一例において、メモリバスは、マルチドロップバスである。CMDの信号線は、「C/Aバス」(又はADD/CMDバス、又はコマンド(C又はCMD)及びアドレス(A又はADD)情報の転送を示すいくつかの他の名称)と称され得、書き込み及び読み取りDQの信号線は、「データバス」と称され得る。一例において、独立したチャネルは、異なるクロック信号、C/Aバス、データバス、及び他の信号線を有する。このように、システム900は、独立したインタフェースパスが別個のバスと見なされ得るという意味で複数の「バス」を有すると見なされ得る。明示的に示された線に加えて、バスは、ストローブシグナリング線、アラート線、補助線、若しくは他の信号線、又はそれらの組み合わせのうちの少なくとも1つを含み得ることが理解されるだろう。シリアルバス技術がメモリコントローラ920とメモリデバイス940との間の接続のために用いられ得ることもまた理解されるだろう。シリアルバス技術の例は、8B10B符号化及び各方向における信号の単一の差動ペアを介して組み込みクロックを用いた高速データの送信である。一例において、CMD934は、複数のメモリデバイスと並列に共有される信号線を表す。一例において、複数のメモリデバイスは、CMD934の符号化コマンド信号線を共有し、それぞれが個々のメモリデバイスを選択するための別個のチップ選択(CS_n)信号線を有する。
【0108】
システム900の例において、メモリコントローラ920とメモリデバイス940との間のバスは、補助コマンドバスCMD934並びに書き込み及び読み取りデータDQを伝送する補助バスを含むことが理解されるだろう。一例において、データバスは、読み取りデータのための及び書き込み/コマンドデータのための双方向性のデータ(BD DQ)線936を含み得る。他の例において、補助バスは、ホストからメモリへの書き込み及びデータのための単方向性の書き込み信号線を含み得、メモリからホストへの読み取りデータのための単方向性の線を含み得る。単方向性の線がUD DQ982で表され、BD DQ936の双方向性の線加えて逆向きの単方向性の線を含み得る。選択されたメモリ技術及びシステムデザインに従って、他の信号938は、ストローブ線DQS等のバス又はサブバスに付随し得る。システム900のデザイン、又はデザインが複数の実装をサポートする場合の実装に基づいてデータバスは、メモリデバイス940ごとの多少の帯域幅を有し得る。例えば、データバスは、x4インタフェース、x8インタフェース、x16インタフェース、又は他のインタフェースのいずれかを有するメモリデバイスをサポートし得る。規定「xW」のWは、インタフェースサイズ又はメモリデバイス940のインタフェースの幅を指す整数であり、これは、メモリコントローラ920とデータを交換するための信号線の数を表す。メモリデバイスのインタフェースサイズは、いくつのメモリデバイスがシステム900内のチャネルごとに同時に用いられ得るか又は同一の信号線へ並列に結合され得るかに対する制御要因である。一例において,高帯域幅メモリデバイス、ワイドインタフェースデバイス、若しくは積層メモリ構成、又はそれらの組み合わせは、x128インタフェース、x256インタフェース、x512インタフェース、x1024インタフェース、又は他のデータバスインタフェース幅等のより広いインタフェースを使用可能にし得る。
【0109】
一例において、メモリデバイス940及びメモリコントローラ920は、バーストで、又は一連の連続的なデータ転送で、データバスを通じてデータを交換する。バーストは、バス周波数に関連する転送サイクルの数に対応する。一例において、転送サイクルは、同一のクロック又はストローブ信号エッジ(例えば、立ち上がりエッジ)で発生する転送の全クロックサイクルであり得る。一例において、システムクロックのサイクルを参照する全てのクロックサイクルが複数の単位間隔(UI)に分割される。ここで、各UIは、転送サイクルである。例えば、ダブルデータレート転送は、クロック信号の両方のエッジ(例えば、立ち上がり及び立ち下がり)でトリガする。バーストは、構成されたUI数の間持続し得、これは、レジスタに記憶される又はオンザフライでトリガされる構成であり得る。例えば、一連の8個の連続的な転送期間は、バースト長8(BL8)と見なされ得、各メモリデバイス940が各UIでデータを転送し得る。このように、BL8で動作するx8メモリデバイスは、64ビットのデータを転送し得る(8本のデータ信号線×バーストを通じて線ごとに転送される8データビット)。この単純な例は単に例示であり、限定的なものではないことが理解されるだろう。
【0110】
メモリデバイス940は、システム900のメモリリソースを表す。一例において、各メモリデバイス940は、別個のメモリダイである。一例において、各メモリデバイス940は、デバイスごと又はダイごとに複数の(例えば2個の)チャネルを有するインタフェースであり得る。各メモリデバイス940は、デバイスの実装によって決定される帯域幅(例えば、x16又はx8又はいくつかの他のインタフェース帯域幅)を有するI/Oインタフェースロジック942を含む。I/Oインタフェースロジック942は、メモリデバイスがメモリコントローラ920とインタフェースすることを可能にする。I/Oインタフェースロジック942は、ハードウェアインタフェースを含み得、メモリコントローラのI/O922に従うことができるが、メモリデバイス端においてである。一例において、複数のメモリデバイス940は、同一のコマンドバス及びデータバスに並列に接続される。他の例において、複数のメモリデバイス940は、同一のコマンドバスに並列に接続されるが、異なデータバスに接続される。例えば、システム900は、並列に結合された複数のメモリデバイス940で構成され得、各メモリデバイスはコマンドに応答し、各内部のメモリリソース960にアクセスする。書き込み動作の場合、個々のメモリデバイス940は、データワード全体の一部を書き込み得、読み取り動作の場合、個々のメモリデバイス940は、データワード全体の一部をフェッチし得る。ワードの残りのビットが、他のメモリデバイスによって並列に提供又は受信されるだろう。
【0111】
一例において、メモリデバイス940がコンピューティングデバイスのマザーボード又はホストシステムプラットフォーム(例えば、プロセッサ910が配置されるPCB(プリント回路基板))上に直接配置される。一例において、メモリデバイス940は、メモリモジュール970に編成され得る。一例において、メモリモジュール970は、デュアルインラインメモリモジュール(DIMM)を表す。一例において、メモリモジュール970は、ホストシステムプラットフォームからの別個の回路、別個のデバイス、又は別個の基板であり得る、アクセス又は制御回路の少なくとも一部を共有する複数のメモリデバイスの他の編成を表す。メモリモジュール970は複数のメモリデバイス940を含み得、メモリモジュールはそれらに配置された包含済みのメモリデバイスへの複数の別個のチャネルのサポートを含み得る。他の例において、メモリデバイス940は、マルチチップモジュール(MCM)、パッケージオンパッケージ、スルーシリコンビア(TSV)、若しくは他の技術、又はそれらの組み合わせ等の技術によって、メモリコントローラ920と同一のパッケージに組み込まれ得る。同様に一例において、複数のメモリデバイス940は、それら自身がメモリコントローラ920と同一のパッケージに組み込まれ得る、メモリモジュール970に組み込まれ得る。これらの実装及び他の実装の場合、メモリコントローラ920がホストプロセッサ910の一部であり得ることが理解されるだろう。
【0112】
メモリデバイス940はそれぞれ、1又は複数のメモリアレイ960を含む。メモリアレイ960は、アドレス可能なメモリ位置又はデータの記憶位置を表す。通常、メモリアレイ960は、データの行として管理され、ワード線(行)及びビット線(行内の個々のビット)制御を介してアクセスされる。メモリアレイ960は、別個のチャネル、ランク、及びメモリのバンクとして編成され得る。チャネルは、メモリデバイス940内の記憶位置への独立した制御パスを指し得る。ランクは、並列に並んだ複数のメモリデバイスにわたる共通の位置(例えば、異なデバイス内の同一の行アドレス)を指し得る。バンクは、メモリデバイス940内のメモリ位置のサブアレイを指し得る。一例において、メモリのバンクは、サブバンク用の共有回路(例えば、ドライバ、信号線、制御ロジック)の少なくとも一部を有するサブバンクに分割され、別個のアドレス指定及びアクセスを可能にする。チャネル、ランク、バンク、サブバンク、バンクグループ、又はメモリ位置の他の編成、及び編成の組み合わせが、物理リソースへのそれらの適用において重複し得ることが理解されるだろう。例えば、同一の物理メモリ位置は、ランクに属することもあり得る、特定のバンクとして特定のチャネルを通じてアクセスされ得る。このように、メモリリソースの編成が、排他的な手法ではなくて、包括的な方法で理解されるだろう。
【0113】
一例において、メモリデバイス940は、1又は複数のレジスタ944を含む。レジスタ944は、メモリデバイスの動作用の構成又は設定を提供する1又は複数の記憶デバイス又は記憶位置を表す。一例において、レジスタ944は、制御又は管理動作の一部として、メモリコントローラ920によるアクセスのためのデータを記憶するメモリデバイス940の記憶位置を提供し得る。一例において、レジスタ944は、1又は複数のモードレジスタを含む。一例において、レジスタ944は、1又は複数の多目的レジスタを含む。レジスタ944内の位置の構成は、異なる「モード」で動作するようメモリデバイス940を構成し得る。ここで、コマンド情報は、モードに基づいてメモリデバイス940内の異なる動作をトリガし得る。さらに、又は代替的に、異なるモードはまた、モードに応じてアドレス情報又は他の信号線とは異なる動作をトリガし得る。レジスタ944の設定は、I/O設定(例えば、タイミング、終端若しくはODT(オンダイ終端)946、ドライバ構成、又は他のI/O設定)の構成を示し得る。
【0114】
一例において、メモリデバイス940は、I/O942に関連付けられたインタフェースハードウェアの一部としてODT946を含む。ODT946は、上述したように構成され得、指定された信号線へのインタフェースに適用されるインピーダンスの設定を提供し得る。一例において、ODT946はDQ信号線に適用される。一例において、ODT946はコマンド信号線に適用される。一例において、ODT946はアドレス信号線に適用される。一例において、ODT946は前述の任意の組み合わせに適用され得る。ODTの設定は、メモリデバイスがアクセス動作の選択さえたターゲットであるか、非ターゲットデバイスであるかに基づいて変更され得る。ODT946の設定は、終端線上シグナリングのタイミング及び反射に影響を与え得る。ODT946の慎重な制御により、適用されるインピーダンス及び負荷の整合性を向上させ、より高速な動作を可能にし得る。ODT946は、I/Oインタフェース942、922(例えば、DQ線用のODT又はCA線用のODT)の特定の信号線に適用され得るが、必ずしも全ての信号線に適用されない。
【0115】
メモリデバイス940は、メモリデバイス内の内部動作を制御するためのメモリデバイス内の制御ロジックを表すコントローラ950を含む。例えば、コントローラ950は、メモリコントローラ920によって送信されたコマンドを復号し、コマンドを実行又は満たすための内部動作を生成する。コントローラ950は、内部コントローラと称され得、ホストのメモリコントローラ920から分離している。コントローラ950は、レジスタ944に基づいてどのモードが選択されるかを決定し得、選択されるモードに基づいて、メモリリソース960にアクセスのための動作又は他の動作の内部実行を構成し得る。コントローラ950は、メモリデバイス940内のビットのルーティングを制御する制御信号を生成し、選択されるモードに適切なインタフェースを提供し、適切なメモリ位置又はアドレスにコマンドを送る。コントローラ950は、コマンド及びアドレス信号線上で受信したコマンド符号化を復号し得るコマンドロジック952を含む。このように、コマンドロジック952は、コマンド復号器であり得、又はコマンド復号器を含み得る。コマンドロジック952を用いると、メモリデバイスは、コマンドを識別し得、要求されたコマンドを実行するための内部動作を生成し得る。
【0116】
メモリコントローラ920を再び参照すると、メモリコントローラ920は、メモリデバイス940に送信すべきコマンドを生成するためのロジック又は回路を表すコマンド(CMD)ロジック924を含む。コマンドの生成は、スケジューリング前のコマンド又は送信される準備ができているキューに入れられたコマンドの準備を指し得る。概して、メモリサブシステムにおけるシグナリングは、メモリデバイスがコマンドを実行すべき1又は複数のメモリ位置を示す又は選択するためのコマンド内の又はコマンドに付随したアドレス情報を含む。メモリデバイス940のトランザクションのスケジューリングに応答して、メモリコントローラ920は、I/O922を介してコマンドを発行し、メモリデバイス940にコマンドを実行させ得る。一例において、メモリデバイス940のコントローラ950は、メモリコントローラ920からI/O942を介して受信したコマンド及びアドレス情報を受信及び復号する。受信したコマンド及びアドレス情報に基づいて、コントローラ950は、メモリデバイス940内のロジック及び回路の動作のタイミングを制御し、コマンドを実行し得る。コントローラ950は、タイミング及びシグナリング要求等、メモリデバイス940内の規格又は仕様への準拠を担う。メモリコントローラ920は、アクセスのスケジューリング及び制御によって、規格又は仕様への準拠を実装し得る。
【0117】
メモリコントローラ920は、メモリデバイス940に送信するトランザクションを生成及び命令するためのロジック回路を表すスケジューラ930を含む。1つの観点から、メモリコントローラ920の主な機能は、メモリデバイス940へのメモリアクセス及び他のトランザクションをスケジュールすると言え得る。そのようなスケジューリングは、プロセッサ910によるデータの要求を実装するため、及び(例えば、リフレッシュに関するコマンド等で)データの完全性を維持するため、トランザクション自身を生成することを含み得る。トランザクションは、1又は複数のコマンドを含み得、クロックサイクル又は単位間隔等の1又は複数のタイミングサイクルにわたってコマンド若しくはデータ又はその両方の転送をもたらし得る。トランザクションは読み取り若しくは書き込み若しくは関連コマンド又はそれらの組み合わせ等のアクセス用であり得、他のトランザクションは構成、設定、データ完全性のメモリ管理コマンド、若しくは他のコマンド、又はそれらの組み合わせを含み得る。
【0118】
メモリコントローラ920は、通常、スケジューラ930等のロジックを含み、システム900のパフォーマンスを向上させるためのトランザクションの選択及び順序付けを可能にする。このように、メモリコントローラ920は、未処理のトランザクションのうちのどれがどの順序でメモリデバイス940に送信されるべきかを選択し得、これは、通常、単純な先入れ先出しアルゴリズムよりはるかに複雑なロジックで実現される。メモリコントローラ920は、メモリデバイス940へのトランザクションの送信を管理し、トランザクションと関連したタイミングを管理する。一例において、トランザクションは、メモリコントローラ920によって管理され得、スケジューラ930を用いてトランザクションをスケジュールする方法を決定するのに用いられ得る、決定論的なタイミングを有する。
【0119】
一例において、メモリコントローラ920は、リフレッシュ(REF)ロジック926を含む。リフレッシュロジック926は、揮発性であり、決定状態を保持するためにリフレッシュされる必要があるメモリリソースに用いられ得る。一例において、リフレッシュロジック926は、リフレッシュの位置、及び実行するリフレッシュのタイプを示す。リフレッシュロジック926は、メモリデバイス940内のセルフリフレッシュをトリガし得、又はリフレッシュコマンドを送信することによって自動リフレッシュコマンドと称され得る外部リフレッシュ又はそれらの組み合わせを実行し得る。一例において、メモリデバイス940内のコントローラ950は、メモリデバイス940内でリフレッシュを適用するためのリフレッシュロジック954を含む。一例において、リフレッシュロジック954は、メモリコントローラ920から受信した外部リフレッシュに従ってリフレッシュを実行するための内部動作を生成する。リフレッシュロジック954は、リフレッシュがメモリデバイス940に向けられているか否か、及び、どのメモリリソース960がコマンドに応答してリフレッシュするかを決定し得る。
【0120】
図10は、逆向きのデータ線を有する双方向性のデータ転送が実装され得るコンピューティングシステムの例のブロック図である。システム1000は、本明細書の任意の例に従うコンピューティングデバイスを表し、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、サーバ、ゲーム若しくはエンタテインメント制御システム、組み込みコンピューティングデバイス、又は他の電子デバイスであり得る。システム1000は、システム100、システム402、システム404、システム500、システム600、又はシステム700に従って、システムの例を提供する。
【0121】
一例において、メモリサブシステム1020は、メタデータ(MD)インタフェース1090を含む。メタデータインタフェース1090は、説明された任意の例に従って、高速で、双方向性のデータインタフェースを表す。メタデータインタフェース1090は、N-1個の双方向性のデータインタフェース、メモリコントローラ1022からメモリ1030への単方向性のインタフェース、及びメモリ1030からメモリコントローラ1022への単方向性のインタフェースを含む。単方向性のインタフェースは、順方向のNビットデータバスにN番目のビットを提供しつつ、受信構成を監視する逆向きのメタデータ線も維持する。メタデータインタフェース1090の動作は、説明された双方向性のレーン及び単方向性のレーンを有するバスの任意の動作に従うことができる。
【0122】
システム1000は、システム1000の命令を処理又は実行を提供するための任意のタイプマイクロプロセッサ、中央処理装置(CPU)、グラフィックス処理装置(GPU)、処理コア、若しくは他のプロセッシングハードウェア、プロセッサデバイス、又はそれらの組み合わせを含み得るプロセッサ1010を含む。プロセッサ1010は、システム1000の全体的な動作を制御し、1又は複数のプログラマブル汎用マイクロプロセッサ若しくはプログラマブル特定用途マイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、プログラマブルコントローラ、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、又はそのようなデバイスの組み合わせであり得る、又はそれらを含む。プロセッサ1010は、システム1000のホストプロセッサデバイスと見なされ得る。
【0123】
一例において、システム1000は、プロセッサ1010に結合されたインタフェース1012を含む。インタフェース1012は、メモリサブシステム1020又はグラフィックインタフェースコンポーネント1040等のより高帯域幅の接続を必要とするシステムコンポーネントのより高速なインタフェース又は高いスループットインタフェースを表し得る。インタフェース1012は、スタンドアロンコンポーネントであり得る、又はプロセッサダイに統合され得るインタフェース回路を表す。インタフェース1012は、プロセッサダイ上の回路として統合され得、又は、システムオンチップ上のコンポーネントとして統合され得る。存在する場合、グラフィックスインタフェース1040は、システム1000のユーザに視覚表示を提供するためのグラフィックコンポーネントにインタフェースする。グラフィックスインタフェース1040は、スタンドアロンコンポーネントであり得、又はプロセッサダイ若しくはシステムオンチップに統合され得る。一例において、グラフィックスインタフェース1040は、ユーザに出力を提供する高解像度(HD)ディスプレイ又は超高解像度(UHD)ディスプレイを駆動し得る。一例において、ディスプレイは、タッチスクリーンディスプレイを含み得る。一例において、グラフィックスインタフェース1040は、メモリ1030に記憶されているデータに基づいて、又はプロセッサ1010によって実行される動作に基づいて、又は両方に基づいて表示を生成する。
【0124】
メモリサブシステム1020は、システム1000のメインメモリを表し、プロセッサ1010によって実行されるコード又はルーティンを実行するときに用いられるデータ値のための記憶装置を提供する。メモリサブシステム1020は、リードオンリメモリ(ROM)、フラッシュメモリ、DRAM等の1又は複数の種類のランダムアクセスメモリ(RAM)、3DXP(3次元のクロスポイント)、若しくは他のメモリデバイス、又はそのようなデバイスの組み合わせ等の1又は複数のメモリデバイス1030を含み得る。メモリ1030は、とりわけ、システム1000で命令を実行するためのソフトウェアプラットフォームを提供するためのオペレーティングシステム(OS)1032を記憶及びホストする。さらに、アプリケーション1034は、メモリ1030からOS1032のソフトウェアプラットフォーム上で実行し得る。アプリケーション1034は、1又は複数の機能を実行するためのそれら自身の動作ロジックを有するプログラムを表す。プロセス1036は、OS1032、又は1又は複数のアプリケーション1034、又はそれらの組み合わせに補助機能を提供するエージェント又はルーティンを表す。OS1032、アプリケーション1034、及びプロセス1036は、システム1000に機能を提供するためのソフトウェアロジックを提供する。一例において、メモリサブシステム1020は、コマンドを生成してメモリ1030にコマンドを発行するためのメモリコントローラであるメモリコントローラ1022を含む。メモリコントローラ1022がプロセッサ1010の物理的部分又はインタフェース1012の物理的部分であり得ることが理解されるだろう。例えば、メモリコントローラ1022は、プロセッサダイ又はシステムオンチップに統合される等、プロセッサ1010と共に回路に統合される統合メモリコントローラであり得る。
【0125】
具体的に示されていないが、システム1000は、メモリバス、グラフィックバス、インタフェースバス、又は他のバス等、デバイス間に1又は複数のバス又はバスシステムを含み得ることが理解されるだろう。バス又は他の信号線は、コンポーネントを互いに通信可能に又は電気的に結合し得る、又はコンポーネントを通信可能にも電気的にも結合し得る。バスは、物理通信線、ポイントツーポイント接続、ブリッジ、アダプタ、コントローラ、若しくは他の回路、又はそれらの組み合わせを含み得る。バスは、例えば、システムバス、ペリフェラルコンポーネントインターコネクト(PCI)バス、ハイパートランスポート若しくはインダストリスタンダードアーキテクチャ(ISA)バス、スモールコンピュータシステムインタフェース(SCSI)バス、ユニバーサルシリアルバス(USB)、若しくは他のバス、又はそれらの組み合わせの1又は複数を含み得る。
【0126】
一例において、システム1000は、インタフェース1012に結合され得るインタフェース1014を含む。インタフェース1014は、インタフェース1012より低速のインタフェースであり得る。一例において、インタフェース1014は、スタンドアロンコンポーネント及び集積回路を含み得るインタフェース回路を表す。一例において、複数のユーザインタフェースコンポーネント、若しくはペリフェラルコンポーネント、又は両方が、インタフェース1014に結合する。ネットワークインタフェース1050は、1又は複数のネットワークを通じてリモートデバイス(例えば、サーバ又は他のコンピューティングデバイス)と通信する能力をシステム1000に提供する。ネットワークインタフェース1050は、イーサネット(登録商標)アダプタ、無線相互接続コンポーネント、セルラネットワーク相互接続コンポーネント、USB(ユニバーサルシリアルバス)、又は他の有線規格若しくは無線規格ベースインタフェース若しくはプロプライエタリインタフェースを含み得る。ネットワークインタフェース1050は、メモリに記憶されたデータを送信すること又はメモリに記憶されたデータを受信することを含み得るリモートデバイスとデータを交換し得る。
【0127】
一例において、システム1000は、1又は複数の入力/出力(I/O)インタフェース1060を含む。I/Oインタフェース1060は、ユーザがシステム1000とインタラクトする1又は複数のインタフェースコンポーネント(例えば、オーディオ、英数字、触覚/タッチ、又は他のインタフェース)を含み得る。周辺機器インタフェース1070は、上記で具体的に言及されていない任意ハードウェアインタフェースを含み得る。周辺機器は、概して、システム1000に従属的に接続するデバイスを指す。従属的な接続は、システム1000が、動作を実行し、ユーザがインタラクトする、ソフトウェアプラットフォーム若しくはハードウェアプラットフォーム又は両方を提供する接続である。
【0128】
一例において、システム1000は、不揮発性方式でデータを記憶する記憶装置サブシステム1080を含む。一例において、特定のシステム実装では、記憶装置1080の少なくとも特定のコンポーネントは、メモリサブシステム1020のコンポーネントと重複し得る。記憶装置サブシステム1080は、1又は複数の磁気ディスク、ソリッドステートディスク、3DXPディスク、若しくは光ベースディスク、又はそれらの組み合わせ等の不揮発性方式で大量のデータを記憶するための任意の従来の媒体であり得る、又はそれらを含み得る記憶デバイス1084を含む。記憶装置1084は、コード又は命令及びデータ1086を永続的な状態で保持する(すなわち、システム1000への電力が遮断されても値が保持される)。記憶装置1084は、概して、「メモリ」であると見なされ得るが、メモリ1030は、通常、プロセッサ1010に命令を提供するための実行メモリ又は動作メモリである。記憶装置1084は不揮発性であるが、メモリ1030は、揮発性メモリを含み得る(すなわち、データの値又は状態は、システム1000への電力が遮断された場合に不定である)。一例において、記憶装置サブシステム1080は、記憶装置1084とインタフェースするコントローラ1082を含む。一例において、コントローラ1082は、インタフェース1014若しくはプロセッサ1010の物理的部分である、又は、プロセッサ1010及びインタフェース1014の両方に回路若しくはロジックを含み得る。
【0129】
電源1002は、システム1000のコンポーネントに電力を提供する。より具体的には、電源1002は、通常、システム1000における1又は複数の電力供給装置1004にインタフェースして、システム1000のコンポーネントに電力を提供する。一例において、電力供給装置1004は、壁のコンセントに差し込むためのAC-DC(交流-直流)アダプタを含む。そのようなAC電力は、再生可能エネルギー(例えば、太陽光発電)電源1002であり得る。一例において、電源1002は、外部AC-DCコンバータ等のDC電源を含む。一例において、電源1002又は電力供給装置1004は、充電磁場への近接を介して充電するための無線充電ハードウェアを含む。一例において、電源1002は、内部バッテリ又は燃料電池ソースを含み得る。
【0130】
図11は、逆向きのデータ線を有する双方向性のデータ転送が実装され得るモバイルデバイスの例のブロック図である。システム1100は、コンピューティングタブレット、携帯電話若しくはスマートフォン、ウェアラブルコンピューティングデバイス、又は、他モバイルデバイス、又は、組み込みコンピューティングデバイス等のモバイルコンピューティングデバイスを表す。特定のコンポーネントが概して示されているが、そのようなデバイスの全てのコンポーネントがシステム1100に示されているわけではないことが理解されるだろう。システム1100は、システム100、システム402、システム404、システム500、システム600、及びシステム700に従って、システムの例を提供する。
【0131】
一例において、メモリサブシステム1160は、メタデータ(MD)インタフェース1190を含む。メタデータインタフェース1190は、説明された任意の例に従って、高速で、双方向性のデータインタフェースを表す。メタデータインタフェース1190は、N-1個の双方向性のデータインタフェース、メモリコントローラ1164からメモリ1162への単方向性のインタフェース、及びメモリ1162からメモリコントローラ1164への単方向性のインタフェースを含む。単方向性のインタフェースは、順方向のNビットデータバスにN番目のビットを提供しつつ、受信構成を監視する逆向きのメタデータ線も維持する。メタデータインタフェース1190の動作は、説明された双方向性のレーン及び単方向性のレーンを有するバスの任意の動作に従うことができる。
【0132】
システム1100は、システム1100の主な処理動作を実行するプロセッサ1110を含む。プロセッサ1110は、マイクロプロセッサ、アプリケーションプロセッサ、マイクロコントローラ、プログラマブルロジックデバイス、又は他のプロセッシング手段若しくはプロセッサデバイス等の1又は複数の物理デバイスを含み得る。プロセッサ1110は、システム1100のホストプロセッサデバイスと見なされ得る。プロセッサ1110によって実行される処理動作は、アプリケーション及びデバイス機能が実行されるオペレーティングプラットフォーム又はオペレーティングシステムの実行を含む。処理動作は、人間のユーザ又は他のデバイスとのI/O(入力/出力)に関する動作、電力管理に関する動作、システム1100を他のデバイスに接続することに関する動作、又はそれらの組み合わせを含む。処理動作はまた、オーディオI/O、ディスプレイI/O、若しくは他のインタフェース、又はそれらの組み合わせに関する動作を含み得る。プロセッサ1110は、メモリに記憶されたデータを実行し得る。プロセッサ1110は、メモリに記憶されたデータを書き込み得、又は編集し得る。
【0133】
一例において、システム1100は、1又は複数のセンサ1112を含む。センサ1112は、組み込まれたセンサ若しくは外部センサへのインタフェース、又はそれらの組み合わせを表す。センサ1112は、システム1100が実装される環境又はデバイスの1又は複数の状態を、システム1100が監視又は検出することを可能にする。センサ1112は、環境センサ(温度センサ、動作検出器、光検出器、カメラ、化学センサ(例えば、一酸化炭素、二酸化炭素、又は他の化学センサ)等)、圧力センサ、加速度計、ジャイロスコープ、医学若しくは生理学センサ(例えば、バイオセンサ、心拍数モニタ、又は生理学的属性を検出するための他のセンサ)、若しくは他のセンサ又はそれらの組み合わせを含み得る。センサ1112はまた、指紋認識システム、顔検出若しくは認識システム、又はユーザの特徴を検出若しくは認識する他のシステム等の生体認証システムのためのセンサを含み得る。センサ1112は広範に理解されるべきであり、システム1100と共に実装され得る多くの異なるタイプのセンサに対する限定として理解されるべきではない。一例において、1又は複数のセンサ1112は、プロセッサ1110に統合されたフロントエンド回路を介してプロセッサ1110に結合する。一例において、1又は複数のセンサ1112は、システム1100の他のコンポーネントを介してプロセッサ1110に結合する。
【0134】
一例において、システム1100は、コンピューティングデバイスにオーディオ機能を提供することに関連するハードウェア(例えば、オーディオハードウェア及びオーディオ回路)及びソフトウェア(例えば、ドライバ、コーデック)コンポーネントを表すオーディオサブシステム1120を含む。オーディオ機能は、スピーカ又はヘッドフォン出力、及びマイクロホン入力を含み得る。そのような機能のためのデバイスは、システム1100に統合され得る、又はシステム1100に接続され得る。一例において、ユーザは、プロセッサ1110によって受信及び処理されるオーディオコマンドを提供することによって、システム1100とインタラクトする。
【0135】
ディスプレイサブシステム1130は、ユーザに提示するための視覚表示を提供するハードウェア(例えば、ディスプレイデバイス)及びソフトウェアコンポーネント(例えば、ドライバ)を表す。一例において、ディスプレイは、ユーザがコンピューティングデバイスとインタラクトするための触覚コンポーネント又はタッチスクリーン要素を含む。ディスプレイサブシステム1130は、ユーザに表示を提供するために用いられる特定のスクリーン又はハードウェアデバイスを含むディスプレイインタフェース1132を含む。一例において、ディスプレイインタフェース1132は、表示に関する少なくともいくつかの処理を実行するための、プロセッサ1110(グラフィックスプロセッサ等)から分離したロジックを含む。一例において、ディスプレイサブシステム1130は、ユーザに出力及び入力の両方を提供するタッチスクリーンデバイスを含む。一例において、ディスプレイサブシステム1130は、ユーザに出力を提供する高解像度(HD)又は超高解像度(UHD)ディスプレイを含む。一例において、ディスプレイサブシステムは、タッチスクリーンディスプレイを含む、又はタッチスクリーンディスプレイを駆動する。一例において、ディスプレイサブシステム1130は、メモリに記憶されているデータに基づいて、又はプロセッサ1110によって実行される動作に基づいて、又は両方に基づいて、ディスプレイ情報を生成する。
【0136】
I/Oコントローラ1140は、ユーザとのインタラクションに関連するハードウェアデバイス及びソフトウェアコンポーネントを表す。I/Oコントローラ1140は、オーディオサブシステム1120、若しくはディスプレイサブシステム1130、又はそれらの両方の一部であるハードウェアを管理するために動作し得る。さらに、I/Oコントローラ1140は、ユーザがシステムとインタラクトし得るシステム1100に接続する追加のデバイスのための接続ポイントを示す。例えば、システム1100に取り付けられ得るデバイスは、マイクロホンデバイス、スピーカ若しくはステレオシステム、ビデオシステム若しくは他のディスプレイデバイス、キーボード若しくはキーパッドデバイス、ボタン/スイッチ、又は、カードリーダ若しくは他のデバイス等の特定の応用品と共に用いるための他のI/Oデバイスを含み得る。
【0137】
上述したように、I/Oコントローラ1140は、オーディオサブシステム1120若しくはディスプレイサブシステム1130、又はそれらの両方とインタラクトし得る。例えば、マイクロホン又は他のオーディオデバイスを通じた入力は、システム1100の1又は複数のアプリケーション又は機能についての入力又はコマンドを提供し得る。さらに、オーディオ出力が、ディスプレイ出力の代わりに又はディスプレイ出力に加えて提供され得る。他の例において、ディスプレイサブシステムがタッチスクリーンを含む場合、ディスプレイデバイスはまた、I/Oコントローラ1140によって少なくとも部分的に管理され得る入力デバイスとしての機能を果たす。I/Oコントローラ1140によって管理されるI/O機能を提供するための追加のボタン又はスイッチもシステム1100上に存在し得る。
【0138】
一例において、I/Oコントローラ1140は、加速度計、カメラ、光センサ若しくは他環境センサ、ジャイロスコープ、グローバルポジショニングシステム(GPS)、又は、システム1100に含まれ得る他のハードウェア、又はセンサ1112等のデバイスを管理する。入力は、直接的なユーザインタラクションの一部であり得、及び、その動作(ノイズのフィルタリング、輝度検出のためのディスプレイの調整、カメラのフラッシュの適用、又は他の機能等)に影響を与えるシステムへの環境入力を提供する。
【0139】
一例において、システム1100は、バッテリの電力使用量、バッテリの充電、及び省電力動作に関連する機能を管理する電力管理1150を含む。電力管理1150は、システム1100のコンポーネントに電力を提供する電源1152からの電力を管理する。一例において、電源1152は、壁のコンセントに差し込むためのAC-DC(交流-直流)アダプタを含む。そのようなAC電力は、再生可能エネルギー(例えば、太陽光発電、動きベースの電力)であり得る。一例において、電源1152は、外部AC-DCコンバータ等のDC電源によって提供され得るDC電力のみを含む。一例において、電源1152は、充電磁場への近接を介して充電するための無線充電ハードウェアを含む。一例において電源1152は、内部バッテリ又は燃料電池ソースを含み得る。
【0140】
メモリサブシステム1160は、情報をシステム1100に記憶するためのメモリデバイス1162を含む。メモリサブシステム1160は、不揮発性(メモリデバイスへの電力が遮断された場合に状態が変化しない)メモリデバイス、若しくは揮発性(メモリデバイスへの電力が遮断された場合に状態が不定である)メモリデバイス、又はそれらの組み合わせを含み得る。メモリ1160は、アプリケーションデータ、ユーザデータ、音楽、写真、文書、又は他のデータ、及びシステム1100のアプリケーション及び機能の実行に関連するシステムデータ(長期間のものであるか一時的なものであるかに関係なく)を記憶し得る。一例において、メモリサブシステム1160は、メモリコントローラ1164(システム1100の制御の一部とも見なされ、プロセッサ1110の一部と潜在的に見なされ得る)を含む。メモリコントローラ1164は、メモリデバイス1162へのアクセスを制御するコマンドを生成及び発行するためのスケジューラを含む。
【0141】
接続機能1170は、システム1100が外部デバイスと通信することを可能にするためのハードウェアデバイス(例えば、無線コネクタ若しくは有線コネクタ及び通信ハードウェア、又は有線ハードウェア及び無線のハードウェアの組み合わせ)及びソフトウェアコンポーネント(例えば、ドライバ、プロトコルスタック)を含む。外部デバイスは、他のコンピューティングデバイス、無線アクセスポイント、又は基地局等の別個のデバイス、及びヘッドセット、プリンタ、又は他のデバイス等の周辺機器であり得る。一例において、システム1100は、メモリに記憶するために、又はディスプレイデバイスに表示するために、外部デバイスとデータを交換する。交換されるデータは、データを読み取り、書き込み、又は編集するために、メモリに記憶されるべきデータ、又はすでにメモリに記憶されているデータを含み得る。
【0142】
接続機能1170は、複数の異なるタイプの接続機能を含み得る。概して、システム1100は、セルラ接続1172及び無線接続1174と共に示される。セルラ接続1172は、概して、GSM(登録商標)(グローバルシステムフォーモバイルコミュニケーションズ)若しくはその改変形態若しくは均等物、CDMA(符号分割多元接続)若しくはその改変形態若しくは均等物、TDM(時分割多重)若しくはその改変形態若しくは均等物、LTE(ロングタームエボリューション-「4G」とも称される)、5G、又は他のセルラサービス規格を介して提供されるもの等、無線キャリアによって提供されるセルラネットワーク接続を指す。無線接続1174は、セルラではなく、且つ、パーソナルエリアネットワーク(Bluetooth(登録商標)等)、ローカルエリアネットワーク(WiFi等)、若しくはワイドエリアネットワーク(WiMAX等)、若しくは他の無線通信、又はそれらの組み合わせを含み得る無線接続を指す。無線通信は、変調電波放射を用いることによって、非固体媒体を通じてデータを転送することを指す。有線通信は、固体通信媒体を通じて行われる。
【0143】
周辺接続1180は、ハードウェアインタフェース及びコネクタ、並びに周辺接続を行うためのソフトウェアコンポーネント(例えば、ドライバ、プロトコルスタック)を含む。システム1100は、他のコンピューティングデバイスへの周辺デバイス(「外に(to)」1182)であり得るとともに、システム1100に接続される周辺デバイス(「外から(from)」1184)を有し得ることが理解されるだろう。システム1100は、一般的に、システム1100上のコンテンツの管理(例えば、ダウンロード、アップロード、変更、同期)等の目的で他のコンピューティングデバイスに接続する「ドッキング(docking)」コネクタを有する。さらに、ドッキングコネクタは、例えば、オーディオビジュアル又は他のシステムに出力されるコンテンツをシステム1100が制御することを可能にする特定の周辺機器にシステム1100が接続することを可能にし得る。
【0144】
プロプライエタリドッキングコネクタ又は他のプロプライエタリ接続ハードウェアに加えて、システム1100は、共通コネクタ又は規格ベースコネクタを介して周辺接続1180を行い得る。共通タイプは、ユニバーサルシリアルバス(USB)コネクタ(複数の異なるハードウェアインタフェースのいずれかを含み得る)、ミニディスプレイポート(MDP)含むディスプレイポート、高解像度マルチメディアインタフェース(HDMI(登録商標))、又は他タイプを含み得る。
【0145】
概して、本明細書の説明に対して、一例において、Nビットバスを通じて通信するデバイスであって、単方向性の信号線に結合し、コンパニオンデバイスから信号を受信する単方向性の受信インタフェースと、単方向性の信号線に結合し、コンパニオンデバイスに信号を送信する単方向性の送信インタフェースと、(N-1)本の双方向性の信号線に結合し、コンパニオンデバイスと信号を送受信する(N-1)個の双方向性のインタフェースを含む、デバイス。
【0146】
一例において、単方向性の受信インタフェースは、(N-1)個の双方向性のインタフェースでコンパニオンデバイスに送信するときに、コンパニオンデバイスからメタデータを受信する。一例において、受信インタフェースは、(N-1)個の双方向性のインタフェースで(N-1)本の双方向性の信号線を通じてコンパニオンデバイスから信号を受信する準備をすべく、メタデータを受信し、マスタI/O(入力/出力)設定をトレーニングする。一例において、受信インタフェースは、メタデータを受信し、I/O電力、I/O速度、I/O電圧、又はI/O位相をトレーニングする。一例において、受信インタフェースは、メタデータを受信し、(N-1)個の双方向性のインタフェースのデシジョンフィードバックイコライザ(DFE)回路をトレーニングする。一例において、全ての(N-1)個の双方向性のインタフェースは、マスタI/O設定を適用する。一例において、(N-1)個の双方向性のインタフェースは、最初にマスタI/O設定を適用し、特定の双方向性のインタフェースにI/O設定を調整する。一例において、(N-1)個の双方向性のインタフェースは、スレーブオフセットでマスタI/O設定を適用する。一例において、Nビットバスは、データバスを備える。一例において、Nは、デバイスデータインタフェースの幅を備える。一例において、コンパニオンデバイスは、メモリデバイスのメモリコントローラを備える。一例において、コンパニオンデバイスは、メモリコントローラのメモリデバイスを備える。
【0147】
概して、本明細書の説明に対して、一例において、メモリコントローラとNビットデータバスを通じてメモリコントローラに結合されるメモリデバイスとを含み、メモリデバイスは、単方向性の信号線に結合し、メモリコントローラから信号を受信する単方向性の受信インタフェースと、単方向性の信号線に結合し、メモリコントローラに信号を送信する単方向性の送信インタフェースと、(N-1)本の双方向性の信号線に結合し、メモリコントローラと信号を送受信する(N-1)個の双方向性のインタフェースとを含む、システム。
【0148】
一例において、単方向性の受信インタフェースは、(N-1)個の双方向性のインタフェースでメモリコントローラに送信するときに、メモリコントローラからメタデータを受信する。一例において、受信インタフェースは、(N-1)個の双方向性のインタフェースで(N-1)本の双方向性の信号線を通じてメモリコントローラから信号を受信する準備をすべく、メタデータを受信し、マスタI/O(入力/出力)設定をトレーニングする。一例において、受信インタフェースは、メタデータを受信し、I/O電力、I/O速度、I/O電圧、I/O位相、又は(N-1)個の双方向性のインタフェースのデシジョンフィードバックイコライザ(DFE)回路をトレーニングする。一例において、全ての(N-1)個の双方向性のインタフェースは、マスタI/O設定を適用する。一例において、(N-1)個の双方向性のインタフェースは、最初にマスタI/O設定を適用し、特定の双方向性のインタフェースにI/O設定を調整する。一例において、(N-1)個の双方向性のインタフェースは、スレーブオフセットでマスタI/O設定を適用する。一例において、システムは、メモリコントローラに結合されるホストプロセッサデバイス、ホストプロセッサに通信可能に結合されるディスプレイ、ホストプロセッサに通信可能に結合されるネットワークインタフェース、又はシステムに電力を供給するバッテリのうちの1又は複数をさらに含む。
【0149】
概して、本明細書の説明に対して、一例において、バスを通じて通信するデバイスであって、第1の信号線に結合し、コンパニオンデバイスから信号を受信のみする単方向性の受信インタフェースと、第2の信号線に結合し、コンパニオンデバイスに信号を送信のみする単方向性の送信インタフェースと、第1の信号線及び第2の信号線から分離する(N-1)本の信号線に結合し、コンパニオンデバイスと信号を送受信する(N-1)個の双方向性のインタフェースとを含むデバイス。
【0150】
一例において、単方向性の受信インタフェースは、(N-1)個の双方向性のインタフェースでコンパニオンデバイスに送信するときに、コンパニオンデバイスからメタデータを受信する。一例において、受信インタフェースは、(N-1)個の双方向性のインタフェースでコンパニオンデバイスから信号を受信する準備をすべく、メタデータを受信し、マスタI/O(入力/出力)設定をトレーニングする。一例において、受信インタフェースは、メタデータを受信し、I/O電力、I/O速度、I/O電圧、又はI/O位相をトレーニングする。一例において、受信インタフェースは、メタデータを受信し、(N-1)個の双方向性のインタフェースのデシジョンフィードバックイコライザ(DFE)回路をトレーニングする。一例において、全ての(N-1)個の双方向性のインタフェースは、マスタI/O設定を適用する。一例において、(N-1)個の双方向性のインタフェースは、最初にマスタI/O設定を適用し、特定の双方向性のインタフェースにI/O設定を調整する。一例において、(N-1)個の双方向性のインタフェースは、スレーブオフセットでマスタI/O設定を適用する。一例において、バスはN+1ビットを備え、複数のコンパニオンデバイス間の各方向にNビットデータバスを実装する。一例において、Nは、デバイスデータインタフェースの幅を備える。一例において、コンパニオンデバイスは、メモリデバイスのメモリコントローラを備える。一例において、コンパニオンデバイスは、メモリコントローラのメモリデバイスを備える。
【0151】
概して、本明細書の説明に対して、一例において、メモリコントローラとデータバスを通じてメモリコントローラに結合されるメモリデバイスとを含み、メモリデバイスは、第1の信号線に結合し、メモリコントローラから信号を受信のみする単方向性の受信インタフェースと、第2の信号線に結合し、メモリコントローラに信号を送信のみする単方向性の送信インタフェースと、第1の信号線及び第2の信号線から分離する(N-1)本の信号線に結合し、メモリコントローラと信号を送受信する(N-1)個の双方向性のインタフェースとを含む、システム。
【0152】
一例において、単方向性の受信インタフェースは、(N-1)個の双方向性のインタフェースでメモリコントローラに送信するときに、メモリコントローラからメタデータを受信する。一例において、受信インタフェースは、(N-1)個の双方向性のインタフェースでメモリコントローラから信号を受信する準備をすべく、メタデータを受信し、マスタI/O(入力/出力)設定をトレーニングする。一例において、受信インタフェースは、メタデータを受信し、I/O電力、I/O速度、I/O電圧、I/O位相、又は(N-1)個の双方向性のインタフェースのデシジョンフィードバックイコライザ(DFE)回路をトレーニングする。一例において、全ての(N-1)個の双方向性のインタフェースは、マスタI/O設定を適用する。一例において、(N-1)個の双方向性のインタフェースは、最初にマスタI/O設定を適用し、特定の双方向性のインタフェースにI/O設定に調整する。一例において、(N-1)個の双方向性のインタフェースは、スレーブオフセットでマスタI/O設定を適用する。一例において、システムは、メモリコントローラに結合されるホストプロセッサデバイス、ホストプロセッサに通信可能に結合されるディスプレイ、ホストプロセッサに通信可能に結合されるネットワークインタフェース、又はシステムに電力を供給するバッテリをさらに含む。
【0153】
本明細書で示されるフロー図は、様々な処理動作のシーケンスの例を提供する。フロー図は、ソフトウェア又はファームウェアルーティン、及び物理的動作によって実行される動作を示し得る。フロー図は、ハードウェア及び/又はソフトウェアで実装され得る有限状態機械(FSM)の状態の実装の例を示し得る。特定のシーケンス又は順序で示されているが、別段の定めがない限り、動作の順序が変更され得る。このように、図示された図表は、例としてのみ理解されるべきであり、処理が異なる順序で実行され得、いくつかの動作が並列で実行され得る。さらに、1又は複数の動作が省略され得、このように、全ての実装が全ての動作を実行するわけではない。
【0154】
様々な動作又は機能が本明細書で説明される限り、それらは、ソフトウェアコード、命令、構成、及び/又はデータとして説明又は定義され得る。コンテンツは、直接実行可能なもの(「オブジェクト」又は「実行可能な」形式)、ソースコード、又は差分コード(「デルタ」又は「パッチ」コード)であり得る。本明細書で説明されるもののソフトウェアコンテンツは、コンテンツが記憶された製造品を介して、又は、通信インタフェースを動作させて通信インタフェースを介してデータを送信する方法を介して、提供され得る。機械可読記憶媒体は、説明された機能又は動作を機械に実行させることができ、記録可能/記録不可能な媒体(例えば、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス等)等の機械(例えば、コンピューティングデバイス、電子システム等)によってアクセス可能な形式で情報を記憶する任意の機構を含む。通信インタフェースは、メモリバスインタフェース、プロセッサバスインタフェース、インターネット接続、ディスクコントローラ等の他のデバイスと通信するためのハードワイヤード、無線、光等の媒体のいずれかとインタフェースする任意の機構を含む。通信インタフェースは、ソフトウェアコンテンツを記述するデータ信号を提供するために、構成パラメータを提供して及び/又は信号を送信して、通信インタフェースを準備することによって構成され得る。通信インタフェースは、通信インタフェースに送信された1又は複数のコマンド又は信号を介してアクセスされ得る。
【0155】
本明細書で説明される様々なコンポーネントは、説明された動作又は機能を実行するための手段であり得る。本明細書で説明される各コンポーネントは、ソフトウェア、ハードウェア、又はこれらの組み合わせを含む。コンポーネントが、ソフトウェアモジュール、ハードウェアモジュール、専用ハードウェア(例えば、特定用途向けハードウェア、特定用途向け集積回路(ASIC)、デジタルシグナルプロセッサ(DSP)等)、組み込みコントローラ、ハードワイヤード回路等として実装され得る。
【0156】
本明細書で説明されたことに加えて、それらの範囲を逸脱することなく、開示されたこと及び本発明の実装に対して様々な変更が行われ得る。したがって、本明細書における例示及び例は、限定的な意味ではなく、例示的な意味として解釈されるべきである。本発明の範囲は、以下の特許請求の範囲を参照することによってのみ画定されるべきである。
[他の可能な請求項]
[項目1]
バスを通じて通信するデバイスであって、
第1の信号線に結合し、コンパニオンデバイスから信号を受信のみする単方向性の受信インタフェースと、
第2の信号線に結合し、上記コンパニオンデバイスに信号を送信のみする単方向性の送信インタフェースと、
上記第1の信号線及び上記第2の信号線から分離する(N-1)本の信号線に結合し、上記コンパニオンデバイスと信号を送受信する(N-1)個の双方向性のインタフェースと
を備える、デバイス。
[項目2]
上記単方向性の受信インタフェースは、上記(N-1)個の双方向性のインタフェースで上記コンパニオンデバイスに送信するときに、上記コンパニオンデバイスからメタデータを受信する、項目1に記載のデバイス。
[項目3]
上記受信インタフェースは、上記(N-1)個の双方向性のインタフェースで上記コンパニオンデバイスから信号を受信する準備をすべく、メタデータを受信し、マスタI/O(入力/出力)設定をトレーニングする、項目2に記載のデバイス。
[項目4]
上記受信インタフェースは、メタデータを受信し、I/O電力、I/O速度、I/O電圧、又はI/O位相をトレーニングする、項目3に記載のデバイス。
[項目5]
上記受信インタフェースは、メタデータを受信し、上記(N-1)個の双方向性のインタフェースのデシジョンフィードバックイコライザ(DFE)回路をトレーニングする、項目3に記載のデバイス。
[項目6]
全ての(N-1)個の双方向性のインタフェースは、上記マスタI/O設定を適用する、項目3に記載のデバイス。
[項目7]
上記(N-1)個の双方向性のインタフェースは、最初に上記マスタI/O設定を適用し、特定の双方向性のインタフェースに上記I/O設定を調整する、項目3に記載のデバイス。
[項目8]
上記(N-1)個の双方向性のインタフェースは、スレーブオフセットで上記マスタI/O設定を適用する、項目3に記載のデバイス。
[項目9]
上記バスはN+1ビットを備え、複数の上記コンパニオンデバイス間の各方向にNビットデータバスを実装する、項目1に記載のデバイス。
[項目10]
Nは、デバイスデータインタフェースの幅を含む、項目1に記載のデバイス。
[項目11]
上記コンパニオンデバイスは、メモリデバイスのメモリコントローラを含む、項目1に記載のデバイス。
[項目12]
上記コンパニオンデバイスは、メモリコントローラのメモリデバイスを含む、項目1に記載のデバイス。
[項目13]
メモリコントローラと、
データバスを通じて上記メモリコントローラに結合するメモリデバイスと
を備え、
上記メモリデバイスは、
第1の信号線に結合し、上記メモリコントローラから信号を受信のみする単方向性の受信インタフェースと、
第2の信号線に結合し、上記メモリコントローラに信号を送信のみする単方向性の送信インタフェースと、
上記第1の信号線及び上記第2の信号線から分離する(N-1)本の信号線に結合し、上記メモリコントローラと信号を送受信する(N-1)個の双方向性のインタフェースと
を含む、システム。
[項目14]
上記単方向性の受信インタフェースは、上記(N-1)個の双方向性のインタフェースで上記メモリコントローラに送信するときに、上記メモリコントローラからメタデータを受信する、項目13に記載のシステム。
[項目15]
上記受信インタフェースは、上記(N-1)個の双方向性のインタフェースで上記メモリコントローラから信号を受信する準備をすべく、メタデータを受信し、マスタI/O(入力/出力)設定をトレーニングする、項目14に記載のシステム。
[項目16]
上記受信インタフェースは、メタデータを受信し、I/O電力、I/O速度、I/O電圧、I/O位相、又は上記(N-1)個の双方向性のインタフェースのデシジョンフィードバックイコライザ(DFE)回路をトレーニングする、項目15に記載のシステム。
[項目17]
全ての(N-1)個の双方向性のインタフェースは、上記マスタI/O設定を適用する、項目15に記載のシステム。
[項目18]
上記(N-1)個の双方向性のインタフェースは、最初に上記マスタI/O設定を適用し、特定の双方向性のインタフェースに上記I/O設定を調整する、項目15に記載のシステム。
[項目19]
上記(N-1)個の双方向性のインタフェースは、スレーブオフセットで上記マスタI/O設定を適用する、項目15に記載のシステム。
[項目20]
上記メモリコントローラに結合されるホストプロセッサデバイス、
ホストプロセッサに通信可能に結合されるディスプレイ、
ホストプロセッサに通信可能に結合されるネットワークインタフェース、又は
上記システムに電力を供給するバッテリ
のうちの1又は複数をさらに備える、項目13に記載のシステム。
図1
図2
図3
図4A
図4B
図5
図6
図7
図8
図9
図10
図11