本明細書に説明されるように、メモリデバイスI/O(入力/出力)インターフェースは、プログラム可能ドライバを含む。プログラム可能ドライバは、メモリデバイスがI/Oインターフェース用に出力電圧スイングを制御するのを可能にする。I/Oインターフェースは、メモリデバイスと、関連メモリコントローラとの間に結合される複数の信号線を含む。メモリデバイスのI/Oインターフェースは、I/O信号線ごとにドライバを含む。ドライバは、I/Oインターフェースを経由する送信用に出力電圧スイングを動的に調整するプログラム可能ドライバである。
1つの実施形態において、メモリデバイスのI/Oインターフェースは、関連メモリコントローラによって制御される送信ドライバを含む。このように、メモリコントローラは、メモリデバイスの送信ドライバの出力電圧スイングを制御し得る。メモリコントローラは、メモリデバイスが可変出力電圧スイングで出力信号を送信するのを可能にすべく、出力電圧スイングを動的に設定またはプログラムし得る。可変出力電圧スイングによって、いくつかの条件において、メモリデバイスが、従来のI/Oインターフェースよりも低い電力で送信し得る。そのような動的な出力電圧のスイング制御は、電力および性能の最適化を提供しつつ、メモリI/Oインターフェースの帯域幅用のスケーリングを提供する。1つの実施形態において、送信ドライバは、電圧モードドライバである。電圧モードドライバは、電圧信号を出力し、典型的には、その実効インピーダンスを信号線に適合させる。電圧モードドライバは、電流を出力する電流モードドライバとは異なるように理解される。1つの実施形態において、送信ドライバはシングルエンドされ、信号線の信号を低電圧レールに参照する。差動ドライバは、信号が2本の信号線間の差である信号線対で動作する。
I/Oドライバ抵抗の調整に関連して出力電圧スイングを制御する従来の方法とは対照的に、動的な出力電圧のスイング制御に対する言及は、出力信号を生成するために使用される電圧レベルを通じた制御を指すことが理解されよう。本明細書に説明される出力電圧のスイング制御は、I/Oドライバ抵抗の調整に加えて達成され得るが、I/O用に出力電圧スイングを調整するためにI/Oドライバ抵抗の調整のみに依存しない。I/Oドライバ抵抗の調整により、ドライバをチャネルの送信線インピーダンスに適合する効率を減少させる場合があることは理解されよう。このように、低電力の達成と良好なシグナル伝達との間には、従来矛盾がある(すなわち、消費電力を低減すべくドライバ抵抗を調整することにより、従来シグナル伝達はより不十分になる)。I/Oドライバ抵抗から独立してI/O出力電圧スイングを調整することにより、本明細書に説明される出力電圧スイングへの調整は、シグナル伝達品質にほとんど影響なくないし全く影響なしで消費電力を低減し得る。
1つの実施形態において、動的なI/Oインターフェース制御は、オンダイ調整がメモリコントローラによって制御されながら、メモリデバイス上のオンダイ調整によって提供され得る。1つの実施形態において、動的なI/Oインターフェース制御は、メモリコントローラからメモリデバイスに送信出力段を供給することによって提供され得る。そのような実施形態は、メモリコントローラが、メモリコントローラにて電圧スイング制御を直接制御し、それをメモリデバイスに供給するのを可能にする。
例えば、動的な出力電圧のスイング制御は、クロック速度をスケーリングするための潜在的な電力をオフセットし得るより高い周波数でのデータ送信用に電力低減を可能にし得る。1つの実施形態において、メモリデバイス用に動的な出力電圧のスイング制御を用いるシステムは、独立した出力電圧スイング(Vスイング)およびオンダイターミネーション(Rオン)制御を可能にし得、それにより、既存のメモリI/Oインターフェースと比較して改善された電力および性能の最適化をもたらす。
メモリデバイスのI/Oインターフェース上の従来のI/Oインターフェース制御において、メモリI/Oインターフェースは、複数の設定ケース用に1つまたは2つの設定を有し、それにより、制限された調整機能を提供する。メモリI/Oインターフェース用に全ての動作モードに及ぶことが必要とされる1つまたは2つの設定の代わりに、動的な出力電圧制御はより多くの設定ケースを可能にし、それにより、メモリI/Oインターフェースの異なる動作モードにわたりより大きな可変性を可能にする。このように、単一のI/Oインターフェース設計が、異なる設定に動的に変更され得、送信トランザクションの複数の異なるセグメントに対して調整された使用ケースを可能にする。動的な出力電圧制御メモリI/Oインターフェースは、終端設定および出力電圧スイングの両方に対して調整を可能にすることによって、より広範な電力および性能の最適化を可能にする。
上記のように、動的な出力電圧スイングは、メモリコントローラによって制御され得、メモリデバイスまたはメモリコントローラにて実装され得る。1つの実施形態において、メモリデバイスは、ダイ上または回路上にプログラム可能または調整可能な電圧調整器を含む。このように、メモリデバイスそれ自体が電源電圧を受け取り得、異なる出力電圧スイングを生成すべく異なる出力電圧レベルを生成し得る。1つの実施形態において、メモリコントローラは、出力信号を送信するための電圧レールとして使用すべく、メモリコントローラに提供する調整電圧を生成する。このように、メモリコントローラでの調整電圧の制御により、メモリデバイスでの電圧スイングを制御し得る。1つの実施形態において、メモリコントローラおよびメモリデバイスの外部の電圧調整器は、信号の送信のために出力段のメモリコントローラによる使用のために調整電圧を生成しメモリコントローラに供給する。1つの実施形態において、メモリコントローラは、メモリデバイスへのコマンドによってメモリデバイスの出力電圧スイングを制御する。1つの実施形態において、メモリコントローラは、モードレジスタの設定によってメモリデバイスの出力電圧スイングを制御する。メモリデバイスのドライバは、それが制御可能な電圧で動作する点でプログラム可能である。
1つの実施形態において、出力電圧スイングレベルは、異なるシステムごとに最適化され得る。例えば、出力電圧制御は、ファームウェアによって構成可能となり得る。ファームウェア内の構成設定を調整することによって、ファームウェアは、出力電圧制御が組み込まれるシステムごとに異なって出力スイングを調整し得る。1つの実施形態において、出力電圧制御は、直接構成される変数に応答してその制御を調整し得る。1つの実施形態において、出力電圧制御はBIOS(基本的な入力/出力システム)での構成設定または他の変数、あるいは他のシステム構成ストレージに応答してその制御を調整し得る。1つの実施形態において、出力電圧制御はI/Oスイングを制御する1または複数の電圧調整器の動作を調整する。1つの実施形態において、出力電圧制御は、効率性を改善する、および/または供給ノイズを減少すべく電圧調整器の性能を更に調整し得る。例えば、出力電圧制御は、フィルタ設定、自己消費電流、非線形制御、低負荷電力管理または他の調整器の性能パラメータ、あるいはパラメータの組み合わせを調整し得る。
メモリデバイスへの言及は、異なるメモリの種類に適用し得る。メモリデバイスは、概して、揮発性メモリ技術を指す。揮発性メモリは、電源がデバイスに遮断されるならば、その状態(ひいては、その上に格納されたデータ)が不定であるメモリである。動的な揮発性メモリは、状態を維持するためにデバイス内に格納されたデータを復元することを要求する。動的な揮発性メモリの1つの例としては、DRAM(ダイナミックランダムアクセスメモリ)、または同期DRAM(SDRAM)等のなんらかの変形が挙げられる。本明細書に説明されるようなメモリサブシステムは、DDR3(2007年6月27日にJEDEC(Joint Electronic Device Engineering Council:電子機器技術評議会)によって元々リリースされ、現在リリース21である、二重データ速度(dual data rate)バージョン3)、DDR4(DDRバージョン4、JEDECによって2012年9月に公表された初期の仕様)、LPDDR3(JEDECによる2013年8月の低電力DDRバージョン3、JESD209−3B)、LPDDR4(2014年8月に元々JEDECによって公表されたLPDDR(LOW POWER DOUBLE DATA RATE(低電力二重データ速度)バージョン4(JESD209−4))、WIO2(2014年8月に元々JEDECによって公表されたワイドI/O2(ワイドIO2)、JESD229−2)、HBM(2013年10月に元々JEDECによって公表されたHIGH BANDWIDTH MEMORY DRAM(高帯域メモリDRAM)(JESD235))、DDR5(DDRバージョン5、JEDECによって目下検討中)、LPDDR5(JEDECによって目下検討中)、WIO3(ワイドI/O3、JEDECによって目下検討中)、HBM2(HBMバージョン2、JEDECによって目下検討中)、および/またはその他、ならびにそのような仕様の派生物もしくは拡張に基づく技術等の複数のメモリ技術と互換性を有し得る。揮発性メモリに加えて、または、それの代わりに、1つの実施形態において、メモリデバイスへの言及は、たとえ不揮発性メモリデバイスへの電力が遮断されたとしても、その状態が確定する不揮発性メモリデバイスを指し得る。このように、メモリデバイスはまた、3次元クロスポイントメモリデバイスまたは他の不揮発性メモリデバイス等の将来世代の不揮発性デバイスを含み得る。
図1は、メモリデバイスにてI/Oスイング制御を実装するシステムの実施形態のブロック図である。システム100は、メモリデバイスを含むシステムを表す。1つの実施形態において、システム100は、メモリサブシステムとなるべく検討され得る。ホスト110は、コンピューティングデバイスの制御を実装するホストシステムを表す。1つの実施形態において、ホスト110は、1または複数のプロセッサデバイスおよび/またはプロセッサコアを含み得るプロセッサまたは処理ユニットを含む。ホスト110は、メモリコントローラ、またはメモリコントローラのロジック的等価物または代替物を含む。メモリコントローラは、メモリデバイス120へのメモリアクセスを制御する。
ホスト110は、1または複数のメモリデバイス120に結合され得る。複数のメモリデバイスは、ホスト110に並列に結合され得る。ホスト110およびメモリデバイス120間のI/Oインターフェースは、1または複数のチャネル、バンク、ランク、バス、または他のグループ分けへと分離され得る。典型的には、インターフェースの信号線のグループ分けは、クロック信号または他の制御信号の共有化等のシグナル伝達の共有化として理解され得る。ホスト110およびメモリデバイス120間のインターフェースが信号線のグループへと分離される実施形態において、特定の信号線グループはアクティブとなり得るが、他のグループは選択されない。そのような信号線はまだ接続されているが、コマンドは、どのデバイスまたは信号線がコマンドを受信し、コマンドで動作すべきか、どちらがコマンドを退けるべきかをシグナル伝達し得る。
メモリデバイス120は、システム100のメモリリソースを表す。メモリデバイス120は、明示されないが、ストレージアレイまたは他のストレージアーキテクチャを含む。メモリデバイス120は、ストレージアレイにデータを格納する。1つの実施形態において、メモリデバイス120は、デバイスに対する電力が遮断された場合、その状態が不定となるメモリを指す揮発性メモリデバイスである。1つの実施形態において、メモリデバイス120は、たとえデバイスに対する電力が遮断されたとしても、その状態が確定するメモリを指す不揮発性メモリデバイスとなり得る。1つの実施形態において、メモリデバイス120は、3次元(3D)クロスポイント不揮発性メモリデバイスとなり得る。1つの実施形態において、メモリデバイス120は、ホスト110が実行するデータおよび/またはコードを格納するメインメモリリソースを表す。
メモリデバイス120は、信号線140を経由してホスト110のI/O112とインターフェースで接続するI/O122を含む。I/O122およびI/O112は、それぞれのデバイスを外部デバイスに相互接続または結合するハードウェアロジックを表す。単一信号線140を用いる単一ブロックとしてのみ示されるが、ホスト110およびメモリデバイス120は、複数のI/Oポート、ピンまたはコネクタを含むことが理解されよう。このように、I/O112およびI/O122は、ホスト110およびメモリデバイス120間の任意のサイズのI/Oインターフェースを表し得る。メモリデバイス120のI/O122は、I/Oとの1または複数の接続によって制御される。メモリデバイス120は、I/O122を経由した通信用の理想的な信号アイの表示を含む。
信号アイは、I/O122を経由した通信用のレールごとの電圧スイングを表す。レールは、VDDと呼ばれ得る、高電圧レールまたは高電圧電位と、VSSと呼ばれ得る、低電圧レールまたは低電圧電位とを指す。参考のため、信号アイはまた、VTTとラベルを付けられる第3の電圧電位を表し、VDDおよびVSS間のどこかの電圧レールを指す。1つの実施形態において、VTTは、VDDおよびVSS間の中間レールである。1つの実施形態において、VTTは、I/O線のコモンモード、または平均電圧である。VTTは、プルアップおよびプルダウン電流が等しい電圧となり得る。1つの実施形態において、VTTは、VDDおよびVSS間には直接ない電圧電位となり得る。1つの実施形態において、VSSおよびVDDのどちらか、または両方が動的に調整可能であり、VTTは、VSSおよび/またはVDDの代わりに電源電圧に対して固定され得、これにより、VTTは、極端な電圧レールの一方または他方の動的な移動に起因して、VSSおよびVDD間の中間以外の電圧となり得る。
従来、メモリデバイス120は、通信が他の信号線および/または他のデバイスを用いて存在する間に、1または複数の信号線または1または複数のデバイスを終端するODT(オンダイターミネーション)126を含む。ODT126は、信号線140をVDD、VSSまたはVTTに終端し得る。1つの実施形態において、ODT126は、異なる動作モード下で異なる信号線を異なるレベルに終端する複数の異なる設定またはモードを含む。1つの実施形態において、ホスト110は、メモリデバイス120にてODT126によって適用されるべき終端を制御する。
メモリデバイス120は、信号線140を通じてどのビットが表されるべきかに応じて、I/O122をロジックハイまたはロジックローに駆動する回路を表すドライバ124を含む。ドライバ124は、I/O122の一部であることが理解されよう。ドライバ124は、信号線140を通じて信号を出力する回路の一部である。このように、I/O122を駆動するドライバ124に言及する本明細書の表現は、ホストまたは関連メモリコントローラに情報を送るべく、出力信号線を駆動するドライバを指す。1つの実施形態において、ドライバ124は、プログラム可能である。1つの実施形態において、駆動強度および/または電圧スイングは制御され、調整可能である。駆動強度は、ドライバの出力を調べる抵抗を指し得る。電圧スイングは、出力信号がVDDおよびVSS間でどのように完全にスイングするかを指す。例えば、プログラム可能ドライバ124は、信号線をロジックハイを表すVDDにずっと駆動する代わりに、ロジックハイを表すVDDより小さいなんらかの電圧値に信号線を駆動するように構成され得る。
1つの実施形態において、ドライバ124はシングルエンドドライバであり、低電圧レールに対する信号を出力する。1つの実施形態において、ドライバ124は、電圧モードドライバである。電圧モードドライバは、電圧源としてモデル化され、電圧信号を出力する。電圧モードドライバ・インピーダンスは、接続された信号線からの回路に戻ってくる等価なインピーダンスに基づいて整合する。電流モードドライバは、電流源としてモデル化され、電流信号を出力する。
1つの実施形態において、メモリデバイス120は、I/O122の構成および動作を制御するロジックを表すI/O制御装置132を含む。1つの実施形態において、I/O制御装置132は、ハードウェアロジックを含む。1つの実施形態において、I/O制御装置132は、ソフトウェアロジックを含む。1つの実施形態において、I/O制御装置132は、ハードウェアロジックおよびソフトウェアロジックの組み合わせを含む。ハードウェアロジックは、例えば、ドライバ124、ODT126およびI/O122のハードウェアロジックのタイミングおよびシグナル伝達動作を制御するオンダイコントローラまたはプロセッサデバイスを含み得る。1つの実施形態において、そのようなコントローラは、動作の仕方の決定を行うプログラムロジック(ファームウェアコードなど)を含み得る。
1つの実施形態において、ホスト110は、メモリデバイス120のI/O122の構成および動作を制御するロジックを表すI/O制御装置134を含む。1つの実施形態において、I/O制御装置134は、ホスト110のI/O112の動作を制御するロジックから独立している。1つの実施形態において、I/O制御装置134は、ハードウェアロジックを含む。1つの実施形態において、I/O制御装置134は、ソフトウェアロジックを含む。1つの実施形態において、I/O制御装置134は、ハードウェアおよびソフトウェアロジックの組み合わせを含む。ハードウェアロジックは、ドライバ124、ODT126およびI/O122のハードウェアロジックのタイミングおよびシグナル伝達動作を制御するコマンドを生成する、例えば、オンダイコントローラまたはプロセッサデバイスを含み得る。1つの実施形態において、そのようなコントローラは、動作の仕方についての決定を行うべく、プログラムロジック(ファームウェアコードなど)を含み得る。I/O制御装置134は、I/O112、信号線140、およびI/O122のインターフェース、または別のインターフェース(図示せず)を通じてあり得る、ホスト110およびメモリデバイス120間の通信を引き起こし得る。
1つの実施形態において、ドライバ124は、メモリデバイス120にて自己制御される。そのような実施形態において、I/O制御装置132は、内部でドライバ124の制御を操作する。このように、I/O制御装置132は、ドライバ124の動作を調整することによりI/O122の動的な電圧スイングを制御する。1つの実施形態において、I/O制御装置は、ドライバ124用に低減されたスイング基準電圧を生成する可変電圧調整器を含む。1つの実施形態において、ドライバ124は、I/O制御装置132によって制御される可変電圧調整器を含むように検討され得る。
1つの実施形態において、ホスト110は、ドライバ124の可変動作を少なくとも部分的に制御する。そのような実施形態において、I/O制御装置134は、特定の動作モード用にドライバを構成すべく、ドライバ124を直接制御し得、またはI/O制御装置132にシグナル伝達し得る。1つの実施形態において、I/O制御装置132は、ドライバ124の動作を制御するモードレジスタまたは他のレジスタまたは参照テーブルを含む。1つの実施形態において、I/O制御装置134は、低減された電圧スイングを含み得るI/O122を通じて信号を送信するドライバ124用の電圧基準レールを生成する。
ホスト110は、1または複数のメモリコントローラまたは同等な回路を含み得ることが理解されよう。各メモリコントローラは、1または複数のメモリリソースと関連し得る。各メモリコントローラは、他のメモリコントローラから独立してその関連メモリリソースを制御する。ホスト110がメモリコントローラを有する、またはメモリコントローラと見なされる実施形態において、I/O制御装置134は、メモリデバイス120と関連メモリコントローラの一部となり得る。関連メモリコントローラは、メモリデバイス120のストレージリソースへのアクセスを制御する。
1つの実施形態において、ホスト110またはメモリコントローラは、ドライバ124のプログラム可能スイングを制御する場合、電圧スイングの変動性を超えた制御粒度が、チャネル、ランクまたはデバイスレベルにて可能性が高い。1つの実施形態において、より繊細なレベルの制御粒度が、ホスト110またはメモリコントローラによって管理され得るが、そのような実装は、実装するために作動不能な量のハードウェアおよび/またはソフトウェアロジックを含むかもしれない。このように、1つの実施形態において、例えば、バイト、ビットまたはバスレベル等のより細かいレベルの制御粒度が、I/O制御装置132を経由した内部制御によって少なくとも一部に提供される。I/O制御装置134は、I/O制御装置132によって実行されるメモリデバイス120用の動作をシグナル伝達し得ることが理解されよう。
1つの実施形態において、メモリデバイス120は、複数の異なる動作モードを有する。動作モードは、電力節約向けに、性能向けに、特定のデータタイプ、または、モード用の他の指定に向けて指定され得る。1つの実施形態において、異なる動作モードは、メモリデバイス120からの異なるI/O周波数を適用する。1つの実施形態において、メモリデバイス120は、異なる動作モード(例えば、周波数調整、出力電力、および/または他のパラメータ)用に別々にI/O122を構成する。このように、1つの実施形態において、I/O制御装置132は、メモリデバイスの動作モードに基づいてI/O122および/またはドライバ124の構成を制御し得る。1つの実施形態において、メモリデバイスの動作モードは、メモリデバイス用の構成および動作情報を格納するメモリデバイス120でのモードレジスタ(具体的に図示せず)によって設定される。このように、1つの実施形態において、プログラム可能ドライバ124は、モードレジスタに設定される動作モードに基づいて出力電圧スイングを動的に調整する。1つの実施形態において、ホスト110またはメモリコントローラは、コマンドまたはコマンドシーケンスによって動作モードを設定する。このように、1つの実施形態において、プログラム可能ドライバ124は、メモリコントローラからのメモリデバイスによって受信されるコマンドによって設定される動作モードに基づいて出力電圧スイングを動的に調整する。
図2は、メモリデバイス用に調整可能な出力電圧スイングの実施形態を示す曲線表示である。図表200は、本明細書に説明される任意の実施形態によるメモリデバイスの出力ドライバ用の標準および低減された電圧スイングを示す。図表200は、メモリデバイスの調整可能な出力ドライバ用の高電圧レールおよび低電圧レールを表す電圧レール210および220を示す。
Vスイング_大は、電圧がレール210からレール220にスイングする場合に、ドライバからの出力の従来の実装を表す。1つの実施形態において、メモリデバイスの出力ドライバは、レール210およびレール220の代わりにレール210およびV230間でスイングするように構成され得る。Vスイング_小は、メモリデバイスドライバからの低減されたスイング出力を表す。1つの実施形態において、メモリデバイスは、レール210およびV230によって表される電圧レベルを生成する。1つの実施形態において、1つまたは両方の電圧レベルが、関連メモリコントローラによって供給される。
出力ドライバがレール210からレール220にスイングする場合、レール210およびレール220間のおよそ中間に示されるVスイング_大向けの基準電圧となり得る。出力ドライバがレール210からV230にスイングする場合、レール210およびV230間のおよそ中間に示されるVスイング_小向けの基準電圧となり得る。V230がレール210に対して示されるが、電圧は、レール220および別の電圧間でスイングし得ることが理解されよう。レール210は、高電圧レールまたは低電圧レールとなり得ることが理解されよう。1つの実施形態において、調整可能メモリデバイスの出力ドライバは、図示される2つの出力ドライバよりも大きな電圧スイングを選択してプログラムされ得る。このように、出力電圧スイングの調整は、2つより多い異なる電圧スイングを可能にすべく、より粒度が細かくなり得る。
図3は、I/O送信スイングが減少したI/Oインターフェースを有するシステムの実施形態のブロック図である。システム300は、メモリデバイス側でのI/Oインターフェースを表す。具体的には、メモリデバイス302は、N本の信号線320に結合されるN個のパッド314を含む。パッド314は、信号線320のメモリデバイス302とのハードウェア相互接続を表す。パッド314は、それを通じてメモリデバイス302が信号線320の通信インターフェースとインターフェースで接続するハードウェアである。
1つの実施形態において、各パッド314は、関連I/O回路310を含む。I/O回路310は、信号線320上の出力を生成するためのドライバ回路の簡易表示である。I/O回路310はそれぞれ、各信号線320上に異なるビットを生成すべく個別に制御され得ることは理解されよう。各I/O回路310の構造は、基本的に同一となり得、従って、I/O回路310−0のみが説明され、そのような説明は全てのI/O回路およびそれらの構成要素に等しく適用され得ることは理解されよう。
ドライバ312は、本明細書に説明される任意の実施形態によるプログラム可能ドライバを表す。1つの実施形態において、ドライバ312は、パッド314用のドライバの最終出力段を表す。ドライバ312は、関連パッドおよび信号線を2つの電圧レールのうちの1つにプルするように動作し得る。名目上、電圧レールは、高電圧用のVDDと、低電圧用のVSSとなり得る。1つの実施形態において、I/O回路310は、高電圧調整器(VRH)か、低電圧調整器(VRL)のどちらか、または両方を含む。VRHは、VDD−V(VRH)と等しい値、すなわちシステム高電圧レール(VDD)マイナスVRHの電圧降下の、VDDより低い電圧を生成する電圧調整器を表す。同様に、VRLは、VSS−V(VRL)と等しい値、すなわちシステム低電圧レール(VSS)プラスVRLの電圧の、VSSより高い電圧を生成する電圧調整器を表す。VRHによって提供されるステップダウンの大きさは、VRHおよびVRLの両方が存在する実施形態においても、VRLによって提供されるステップアップの大きさと必ずしも同じではないことは理解されよう。
出力電圧スイングの減少により、レールごとにスイングする設計と比較してI/O回路310の電力節約をもたらし得る。VRHはI/O回路310に含まれ、VDD−V(VRH)の出力電圧を提供すると仮定する。VRHが、線形電圧調整器である場合、システム300の設計は、VRHによって提供される電圧低下と線形関係にある送信電力を減少する。VRHは、スイッチング電圧調整器またはスイッチド回路調整器(例えば、スイッチドキャパシタ調整器、スイッチドインダクタ調整器)として設計された場合、システム300の設計は、VRHによって提供される電圧低下に対してほぼ二次関数にて送信電力を減少し得る。
1つの実施形態において、VRHは、非常に低いエリアオーバヘッドでI/O回路310と同じ半導体ダイまたは集積回路上に局所的に統合され得る。例えば、デバイス設計は多くの場合、I/O回路310の電圧調整器の実装に適応するのに十分な余白を有する。1つの実施形態において、VRHは、同じ半導体基板に必ずしも統合されないで、I/O回路310と同じパッケージ中、または同じボード上に統合される。同様に、VRLは、I/O回路310と同じ半導体基板に、または、I/O回路310と同じパッケージに統合され得る。
1つの実施形態(明示されず)において、1または両方の電圧調整器VRHおよびVRLは、バイパス経路によって選択的にバイパスされ得る。バイパス経路は、電圧調整器を介した電圧レールへの接続、または、電圧レールへの直接接続をスイッチすべく、選択的にアクティブにされ得る。このように、例えば、調整器への入力および調整器の出力は、アクティブにされた場合、調整器をバイパスする選択的な(例えば、切り替えられた)低インピーダンス経路を介して結合され得る。そのような設計は、異なるタイプのシステム(例えば、フルスイングモードおよび別個のロースイングモード)とインターフェースで接続するために使用し得る。なお、電圧調整器は、信号送信を駆動する代わりに、信号を受信するためなどで、必要とされない場合、スイッチを切られ得る。このように、低電力状態にて、電圧調整器は、電力ゲートの代わりになり得、使用していない場合にドライバへの電力を遮断し得、それにより回路リークを減少し得る。
個別の信号線320ごとに別個のI/O回路310を用いて、メモリデバイス302は、出力スイングのプログラム可能な状態で多くの粒度レベルを提供し得ることが理解されよう。1つの実施形態において、各ビットは、電圧スイング用に個別にプログラムまたは構成され得、出力スイングを通じてビットレベル制御を提供する。1つの実施形態において、各I/O回路310は、出力スイング制御に対して、独立しているが、並行または並列ビットグループにて制御され、それにより、バイトレベルまたはデバイスレベルの粒度、または他の粒度を提供し得る。各ビットまたは他のグループ分けは、システム300の構成に応じて、異なる出力電圧スイングを使用し得る。1つの実施形態において、各バスは、電圧スイング用に個別にプログラムまたは構成され得、出力スイングを通じてバスレベル制御を提供する。例えば、データバスおよびコマンド/アドレスバスは、個別に制御され得る。1つの実施形態において、メモリサブシステムは、異なるランクへと分離され、各ランクは、電圧スイング用に個別にプログラムまたは構成され得、出力スイングを通じてランクレベル制御を提供する。
図4A−4Dは、メモリデバイスの実装用にスイング制御を用いるI/Oドライバの実施形態を示す。図4Aを参照すると、回路402は、VoutをVDDの方に引くプルアップ(PU)410と、VoutをVSSの方に引くプルダウン(PD)420とを有するドライバアーキテクチャを表す。回路402は、本明細書のドライバの任意の実施形態によるドライバを表し得る。1つの実施形態において、回路402は、プルアップ410が、1または複数のトランジスタで実装され得、プルダウン420が同様に、1または複数のトランジスタで実装され得るCMOS回路である。1つの実施形態において、回路402は、VDDの電圧レベルを制御するスイング制御によって構成可能である。VDDを下方に調整することによって、Voutでの出力スイングは低減され得る。VDDを上方に調整することによって、Voutでの出力スイングは増加され得る。1つの実施形態において、別のVSSのスイング制御が存在し得る。
典型的には、プルアップ410か、プルダウン420のどちらかが、一度にアクティブになるが、両方が同時にアクティブにはならない。両方のデバイスが、移行の間にアクティブとなる何かの重なりがあり得るが、概して、回路402
は典型的には、他方が非アクティブである間、1つのレッグをアクティブにすべく動作する。このように、アクティブレッグは、電流を伝導し、レッグ(プルアップ410用のVDDおよびプルダウン420用のVSS)に結合されるレールと、Voutとの間の電圧電位を等しくする。
図4Bを参照すると、回路404は、VoutをVDDの方に引くp型プルアップP432と、VoutをVSSの方に引くn型プルダウンN434とを有するドライバアーキテクチャを表す。回路404は、レッグの一方がn型であり、他方がp型であると仮定すると、n型−p型ドライバまたはp型−n型ドライバと呼ばれ得る。CMOS実装において、回路402は、NMOS−PMOSまたはPMOS−NMOSドライバと呼ばれ得る。p型材料は、正孔移動度を増大すべくドープされるドープ半導体であり、正孔を自由にして電流を伝導することが理解されよう。n型材料は、電子移動度を増大すべくドープされるドープ半導体であり、電子を自由にして電流を伝導する。それぞれのトランジスタデバイスが少なくとも閾値(Vt)にバイアスされた場合、デバイスは電流を伝導する。1つの実施形態において、回路404用のスイング制御は、VDDを通じて、従ってVout用の電圧スイングを通じて制御を提供し得る。
図4Cを参照すると、回路406は、VoutをVDDの方に引くn型プルアップN442と、VoutをVSSの方に引くn型プルダウンN444とを有するドライバアーキテクチャを表す。回路406は、両方のレッグがn型であると仮定すると、n型−n型ドライバと呼ばれ得る。CMOS実装において、回路406は、NMOS−NMOSドライバと呼ばれ得る。p型−p型ドライバを作成することも可能となり得るが、そのようなアーキテクチャは、電流回路設計において、一般的に実際的ではない。1つの実施形態において、回路406用のスイング制御は、VDDを通じて、従ってVout用の電圧スイングを通じて制御を提供し得る。図4Dを参照すると、回路408は、VoutをVDDの方に引くn型プルアップN452と、VoutをVSSの方に引くn型プルダウンN454とを有するドライバアーキテクチャを表す。1つの実施形態において、回路408用のスイング制御は、N452ゲートに対する制御を提供し得、従ってVoutに対する電圧スイングを制御し得る。代わりに、または、加えて、スイング制御は、N454のゲートで提供され得る。
説明されるアーキテクチャ(例えば、n型−n型、n型−p型、p型−p型またはp型−n型)は、メモリコントローラおよびメモリデバイス間のインターフェースの任意のドライバ用に使用され得る。ドライバアーキテクチャのいずれかは、任意の形式の終端(例えば、VDD、VSSまたはVTT終端)と組み合わせられ得る。このように、出力スイング制御は、ドライバの終端タイプおよび抵抗から独立する。
図5は、I/Oスイング制御用にメモリデバイスにて可変電圧調整器を有するシステムの実施形態のブロック図である。システム500は、メモリデバイス520に結合するメモリコントローラまたは他のホスト回路を表すホスト510を含む。システム500は、図1のシステム100によるシステムの1つの例となり得る。システム500は、メモリデバイス520のプログラム可能ドライバが出力電圧スイングを内部生成する、またはプログラムする実施形態を表す。ホスト510は、メモリデバイス520内で内部制御されるスイングをプログラムする。
1つの実施形態において、ホスト510は、PMOSプルアップおよびNMOSプルダウンを含み得るそのドライバ回路を制御すべくVR(電圧調整器)512を含む。ドライバは、示されているアーキテクチャとは異なるアーキテクチャを有し得ることが理解されよう。VR512は、信号線530を駆動すべくホスト510による出力スイング制御用に使用される電圧を設定し得る。メモリコントローラまたは他のホストデバイスは従来、出力電圧のスイング制御を含んでいた。システム500は、メモリデバイス520用のスイング制御を含む。具体的には、メモリデバイス520は、可変電圧調整器522を有する出力ドライバを含む。メモリデバイス520は、NMOSプルアップおよびNMOSプルダウン、または他のドライバアーキテクチャを有するドライバ回路を有し得る。VR522は、ドライバの出力電圧スイングを制御し得る。
1つの実施形態において、VR512および/またはVR522によって提供される出力電圧のスイング制御は、1または複数の他の形式の出力ドライバ制御に加えて存在し得る。1つの実施形態において、システム500は、メモリデバイス520の出力ドライバの抵抗、デューティ周期、エッジ速度、および/または等化制御、および/または他の特性または動作パラメータを制御し得る。1つの実施形態において、出力ドライバの出力電圧のスイング制御に対する調整を生成する制御は、代わりに、または、加えて、調整器の帯域幅、調整器の効率、非線形制御または低負荷電力管理を含む1または複数の電圧調整器特性または動作パラメータを調整し得る。このように、本明細書に説明されるプログラム可能ドライバは、出力電圧スイング(例えば、VR522)を制御する電圧調整器の1または複数の特徴に加えて、出力電圧スイングを制御すると言える。
1つの実施形態において、VR522は、ホスト510からの制御またはコマンド信号に応答し、メモリデバイスドライバの動作をより大きい、またはより小さい出力スイングを有するように構成することができる。ホスト510による制御に対する応答にもかかわらず、VR522およびドライバは、内部で制御されることが理解されよう。このように、ホスト510は単に、特定の電力節約モードを使用するために、または特に送信電力を減少するために、単にメモリデバイス520にシグナル伝達することができる。そのようなコマンド(またはより明示的ななコマンド)に応答して、メモリデバイス520のコントローラ(具体的に示さず)は、VR522用に制御信号を生成し得、出力ドライバの出力スイングを調整し得る。1つの実施形態において、メモリデバイスドライバは、低、中間および大電圧スイングなどの複数のスイングレベルをサポートする。他の実装が可能であり、任意の合理的な数のスイングレベルがメモリデバイス520に適用され得る。
図6は、ホストがメモリデバイスにてスイング制御を与えるためにI/O電圧源を提供するシステムの実施形態のブロック図である。システム600は、信号線630を通じてメモリデバイス620に結合するメモリコントローラまたは他のホスト回路を表すホスト610を含む。システム600は、図1のシステム100によるシステムの1つの例と、図5のシステム500に対する代替手段となり得る。システム600は、メモリデバイス620のプログラム可能ドライバが、ホスト610によって生成される出力スイング制御によってプログラム可能である実施形態を表す。より具体的には、ホスト610は、メモリデバイスの出力ドライバによる使用のために電圧をメモリデバイス620に供給する。このように、ホスト610は、VR612の制御によってメモリデバイス620の出力電圧スイングを最適化し得る。
システム500を参照して上記に説明されることと同様に、ホスト610は、PMOSプルアップドライバアーキテクチャおよびNMOSプルダウンドライバアーキテクチャを含み得る一方、メモリデバイス620は、NMOSプルアップドライバアーキテクチャおよびNMOSプルダウンドライバアーキテクチャを含み得る。これらのアーキテクチャは、例示に過ぎず、他のアーキテクチャが使用され得ることが理解されよう。電圧源640は、出力ドライバ用にホスト610からメモリデバイス620に供給された電圧を表す。1つの実施形態において、電圧源640は、特にメモリデバイス620の出力ドライバ用に、ホスト610によって生成される電圧レベルとなり得る。1つの実施形態において、電圧源640は、それ自身の出力ドライバ用にホスト610によって生成される同じ電圧である。このように、メモリデバイス620のプログラム可能な出力電圧スイングは、関連メモリコントローラによって使用される可変出力電圧レベルを追跡し得る。電圧源640は、メモリデバイスドライバによって使用される高電圧レールとして示されるが、ホスト610は、高電圧レールに加えて、またはそれの代わりにメモリデバイスドライバ用に低電圧レールを生成し得ることが理解されよう。
図7は、メモリデバイスにてスイング制御を与えるべく、I/O電圧源を提供する外部調整器を有するシステムの実施形態のブロック図である。システム700は、信号線730を通じてメモリデバイス720に結合するメモリコントローラまたは他のホスト回路を表すホスト710を含む。システム700は、図1のシステム100によるシステムの1つの例、および図5のシステム500または図6のシステム600に対する代替物となり得る。システム700は、メモリデバイス720のプログラム可能ドライバが、メモリデバイスおよび関連メモリコントローラの両方から独立した電圧調整器によって生成される出力スイング制御によってプログラム可能である実施形態を表す。1つの実施形態において、電圧調整器750は、システム700に既に存在し使用される調整器であり、メモリデバイス720用に出力電圧スイングを制御するために再利用され得る。1つの実施形態において、電圧調整器750は、メモリデバイス720用の出力電圧スイングを制御し、システム700の1または複数の他の部分(例えば、具体的に図示されていない他の部分)によって再利用され得る。
1つの実施形態において、電圧調整器750は、ホスト710のドライバと、メモリデバイス720のドライバとの両方に出力電圧レベルを供給する。メモリデバイス720に関して、電圧調整器750は、電圧源740をメモリデバイスドライバに提供し得る。1つの実施形態において、ホスト710はやはり、電圧調整器750によって提供される電圧を調整すべく、電圧調整器712を含む。1つの実施形態において、電圧調整器750の使用により、内部電圧調整器からの電圧レベルの直接供給とは対照的に、ホスト710にメモリデバイスドライバの出力電圧を間接的に供給させるように見なされ得る。直接供給のケース(例えば、システム600など)か、間接供給のケースのどちらかにおいて、ホスト710にメモリデバイスの出力ドライバに対する電圧を供給させることは、独立した出力スイングを可能にし得、ホスト側でのより良好な受信に起因してはるかに低い読み取りスイングを可能にする。1つの実施形態において、電圧源740は、ホスト710の出力ドライバに印加される同じ電圧レベルである。1つの実施形態において、電圧源740は、ホスト710の出力ドライバに印加される電圧とは異なる。
上記に説明されたことと同様に、ホスト710は、PMOSプルアップドライバアーキテクチャおよびNMOSプルダウンドライバアーキテクチャを含み得る一方、メモリデバイス720は、NMOSプルアップドライバアーキテクチャおよびNMOSプルダウンドライバアーキテクチャを含み得る。これらのアーキテクチャは例示に過ぎず、他のアーキテクチャが使用され得ることは、理解されよう。また、電圧源740は、メモリデバイスドライバによって使用される高電圧レールとして示されるが、ホスト710は、高電圧レールに加えて、またはそれの代わりに、メモリデバイスドライバ用の低電圧レールを生成し得ることが理解されよう。
図8は、メモリデバイスにてI/Oスイングを内部制御するためのプロセスの実施形態のフロー図である。1つの実施形態において、メモリデバイスは、メモリデバイスの出力ドライバの出力電圧スイングを制御すべく、プログラム可能な電圧レベルを内部生成する。メモリデバイスは、関連メモリコントローラからの制御信号に応答して電圧レベルを生成し得る。メモリデバイスは、フロー800に従って、および本明細書に説明される任意の実施形態に従ってI/Oスイングを制御し得る。1つの実施形態において、メモリデバイスは、ホストまたは関連メモリコントローラからのメモリアクセスコマンドを受信する(802)。具体的には、本明細書に説明される出力スイング制御を参照して、関心のあるメモリアクセスコマンドは、ホストに提供すべく、メモリデバイスに出力ビットまたは信号を生成させる任意のコマンドである。
メモリデバイスは、コマンドをデコードおよび実行する(804)。メモリデバイスは、ソフトウェア制御ロジックも実行し得るハードウェア制御ロジックを含み、ハードウェア制御ロジックは、ホストに送信すべく、メモリデバイスがコマンドをデコードするのを可能にし、データビットまたはビットにアクセスするために必要な信号を生成するのを可能にする。このように、メモリデバイスは、ホストに出力するビットを生成する(806)。制御ロジックはまた、出力データを送信するように出力ドライバのハードウェアを構成し得る。1つの実施形態において、メモリデバイスは、メモリデバイスの動作モードに基づいてホストに出力を送信する。ホストは、例えば、コマンドで、または構成設定でメモリデバイスの動作モードを制御し得る。1つの実施形態において、メモリデバイス制御ロジックは、メモリデバイスの動作モードに対応する出力電圧スイングを特定する(808)。ドライバまたはドライバサブシステムは、モードに従って、または送信トランザクション用に所望される出力スイングに従って出力電圧スイングを調整し得る(810)。メモリデバイスドライバは、調整または構成された出力電圧スイングで出力された信号線を駆動し得る(812)。
図9は、メモリデバイスのI/Oスイングを外部制御するプロセスの実施形態のフロー図である。1つの実施形態において、メモリデバイスに関連メモリコントローラは、メモリデバイスの出力電圧スイングを制御すべく様々な動作を実行する。制御は、出力電圧スイングを制御すべく、メモリデバイスにプログラム可能な電圧レベルを内部生成させるように(例えば、電源電圧の提供、または、1または複数の信号の送信などによって)出力電圧スイングを直接構成または設定し得る。ホストは、フロー900に従って、および本明細書に説明される任意の実施形態に従って、I/Oスイングを制御し得る。1つの実施形態において、ホストはメモリデバイス向けに所望されるI/Oスイングを特定する(902)。所望されるI/Oスイングは、メモリデバイス用のI/Oモードに従い得る。1つの実施形態において、出力スイングモードへの言及は、メモリデバイスに所望の電圧スイング特性で出力信号を生成させる構成を指すだけである。
1つの実施形態において、ホストはメモリデバイス用のモードを設定する(904)。モードの設定は、所望のスイングをメモリデバイスに指示するレジスタの設定、またはコマンドの生成を含み得る。1つの実施形態において、モードの設定は、メモリデバイスに供給する出力電圧の生成を含み得る。1つの実施形態において、出力電圧は、インターフェースの信号線(複数可)に結合されるドライバ用にホストにて内部使用されるのと同じである。1つの実施形態において、出力電圧は、ホストドライバに印加される電圧とは異なる。1つの実施形態において、ホストは、ホストに既知の送信条件または他の条件に基づいてモードを設定する。1つの実施形態において、ホストは、メモリデバイスドライバ用に低減された電圧レールを生成および出力する(906)。
出力スイング特性が設定された状態で、ホストは、メモリアクセスコマンドをメモリデバイスに送信する(908)。メモリデバイスは、コマンドを受信および実行し、メモリデバイスからホストに受信されるべき出力信号を生成する。このように、ホストは、トランザクション用のメモリデバイスドライバ向けに構成されたI/Oスイングに従ってメモリデバイスから戻ったビット(複数可)を受信し得る。異なるトランザクション(ホストおよびメモリデバイス間のI/Oのやり取り)は、異なるメモリデバイスドライバモード設定または構成を有し得る。このように、出力電圧スイングは、異なるトランザクション用に異なり得る。
図10は、メモリデバイスのI/Oスイング制御装置が実装され得るコンピューティングシステムの実施形態のブロック図である。システム1000は、本明細書に説明される任意の実施形態によるコンピューティングデバイスを表し、ラップトップコンピュータ、デスクトップコンピュータ、サーバ、ゲームもしくはエンタテインメント制御システム、スキャナ、コピー機、プリンタ、ルーティングもしくはスイッチングデバイス、または他の電子デバイスであり得る。システム1000は、処理、工程管理、およびシステム1000に対する命令の実行を提供するプロセッサ1020を含む。プロセッサ1020は、システム1000用の処理を提供するための任意のタイプのマイクロプロセッサ、中央処理装置(CPU)、処理コア、または他の処理ハードウェアを含み得る。プロセッサ1020は、システム1000の動作全体を制御し、1または複数のプログラム可能な汎用もしくは専用マイクロプロセッサ、デジタル信号プロセッサ(DSP)、プログラム可能なコントローラ、特定用途向け集積回路(ASIC)、プログラム可能ロジックデバイス(PLD)等、またはそのような複数のデバイスの組み合わせであるか、またはこれらを含み得る。
メモリサブシステム1030は、システム1000のメインメモリを表し、プロセッサ1020により実行されるべきコード、またはルーチンを実行するときに用いられるべき複数のデータ値のための一時的なストレージを提供する。メモリサブシステム1030は、リードオンリメモリ(ROM)、フラッシュメモリ等の1または複数のメモリデバイス、1または複数の様々なランダムアクセスメモリ(RAM)、もしくは他のメモリデバイス、またはそのようなデバイスの組み合わせを含み得る。メモリサブシステム1030は、特に、システム1000において命令を実行するためのソフトウェアプラットフォームを提供するためのオペレーティングシステム(OS)1036を格納してホスティングする。更に、他の命令1038は、システム1000のロジックおよび処理を提供するべく、メモリサブシステム1030から格納され、実行される。OS1036および命令1038は、プロセッサ1020により実行される。メモリサブシステム1030は、データ、命令、プログラム、または他のアイテムを格納するメモリデバイス1032を含む。1つの実施形態において、メモリサブシステムは、メモリコントローラ1034を含み、これは、メモリデバイス1032にコマンドを生成して発行するメモリコントローラである。メモリコントローラ1034がプロセッサ1020の物理的な一部であり得ることが理解されよう。
プロセッサ1020およびメモリサブシステム1030は、バス/バスシステム1010に結合される。バス1010は、適切なブリッジ、アダプタ、および/またはコントローラにより接続された任意の1または複数の別個の物理的バス、通信ライン/インターフェース、および/またはポイントツーポイント接続を表す抽象物である。従って、バス1010は、システムバス、周辺構成要素相互接続(PCI)バス、ハイパートランスポートもしくは業界標準アーキテクチャ(ISA)バス、小型コンピュータシステムインターフェース(SCSI)バス、ユニバーサルシリアルバス(USB)、または米国電気電子学会(IEEE)規格1394バス(一般に「ファイヤワイヤ」と呼ばれる)のうちの1または複数を、例えば、含み得る。バス1010におけるバスは、ネットワークインターフェース1050におけるインターフェースにも対応し得る。
また、システム1000は、バス1010に結合された1または複数の入力/出力(I/O)インターフェース(複数可)1040、ネットワークインターフェース1050、1または複数の内部大容量ストレージデバイス(複数可)1060、および周辺インターフェース1070も含む。I/Oインターフェース1040は1または複数のインターフェースコンポーネントを含み得、ユーザはこれを介してシステム1000とインタラクトする(例えば、ビデオ、オーディオ、および/または英数字のインターフェース)。ネットワークインターフェース1050は、1または複数のネットワークを通じて複数のリモートデバイス(例えば、複数のサーバ、他のコンピューティングデバイス)と通信する能力をシステム1000に提供する。ネットワークインターフェース1050は、イーサネット(登録商標)アダプタ、無線相互接続コンポーネント、USB(ユニバーサルシリアルバス)、または他の有線もしくは無線規格ベースのインターフェースまたは独自のインターフェースを含み得る。
ストレージ1060は、1または複数の磁気、ソリッドステートもしくは光学ベースのディスク、または組み合わせ等の不揮発性の態様で大量のデータを格納する任意の従来媒体であるか、またはこれらを含み得る。ストレージ1060は、コードまたは命令およびデータ1062を永続的状態に保つ(すなわち、値はシステム1000への電力の遮断にもかかわらず保持される)。ストレージ1060は一般的には「メモリ」と見なされ得るが、メモリ1030は命令をプロセッサ1020に提供する実行メモリまたは動作メモリである。ストレージ1060は不揮発性であるが、メモリ1030は揮発性メモリ(すなわち、システム1000への電力が遮断されると、データの値または状態が不定になる)を含み得る。
周辺インターフェース1070は、具体的に上述されない任意のハードウェアインターフェースを含み得る。一般に、周辺機器は、従属的にシステム1000を接続するデバイスを指す。従属的接続は、動作が実行され、ユーザがインタラクトするソフトウェアおよび/またはハードウェアプラットフォームを、システム1000が提供する接続である。
1つの実施形態において、メモリサブシステム1030は、プログラム可能な出力ドライバを有するメモリデバイス1032を含む。プログラム可能な出力ドライバは、メモリデバイス1032が、出力ドライバの構成に応じて、異なる電圧スイングで出力を生成するのを可能にする。1つの実施形態において、メモリデバイス1032は、スイング制御として使用する出力電圧を生成する。1つの実施形態において、メモリコントローラ1034は、メモリデバイスドライバと共に使用されるメモリデバイス1032に出力電圧を供給する。メモリデバイスの出力ドライバ用の制御は、I/Oスイング制御装置1080によって表される。I/Oスイング制御装置1080は、メモリデバイス1032でのロジックを含み得る。I/Oスイング制御装置1080は、メモリコントローラ1034でのロジックを含み得る。I/Oスイング制御装置1080は、本明細書に説明される任意の実施形態に従ってメモリデバイスドライバ用の出力スイング制御を提供し得る。
図11は、メモリデバイスのI/Oスイング制御装置が実装され得るモバイルデバイスの実施形態のブロック図である。デバイス1100は、コンピューティングタブレット、携帯電話もしくはスマートフォン、無線機能付き電子書籍リーダ、ウェアラブルコンピューティングデバイス、または他のモバイルデバイス等のモバイルコンピューティングデバイスを表す。コンポーネントのうちの特定のものが全体として示され、そのようなデバイスの全てのコンポーネントがデバイス1100に示されているわけではないことが理解されよう。
デバイス1100はプロセッサ1110を含み、プロセッサ1110は、デバイス1100の主要な処理動作を実行する。プロセッサ1110は、マイクロプロセッサ、アプリケーションプロセッサ、マイクロコントローラ、プログラム可能ロジックデバイス、または他の処理手段等の1または複数の物理的デバイスを含み得る。プロセッサ1110により実行される処理動作は、アプリケーションおよび/またはデバイスの機能が実行されるオペレーティングプラットフォームまたはオペレーティングシステムの実行を含む。処理動作は、人間ユーザまたは他のデバイスとのI/O(入力/出力)に関連する動作、電力管理に関連する動作、および/またはデバイス1100を別のデバイスに接続することに関連する動作を含む。処理動作はまた、オーディオI/Oおよび/またはディスプレイI/Oに関連する動作も含み得る。
1つの実施形態において、デバイス1100は、オーディオサブシステム1120を含み、オーディオサブシステム1120は、オーディオ機能をコンピューティングデバイスに提供することに関連したハードウェア(例えば、オーディオハードウェアおよびオーディオ回路)およびソフトウェア(例えば、ドライバ、コーデック)のコンポーネントを表す。オーディオ機能は、スピーカおよび/またはヘッドフォン出力、ならびにマイク入力を含み得る。そのような機能のためのデバイスは、デバイス1100へ統合され、またはデバイス1100に接続され得る。1つの実施形態において、ユーザは、プロセッサ1110によって受信および処理されるオーディオコマンドを提供することによって、デバイス1100とインタラクトする。
ディスプレイサブシステム1130は、ユーザがコンピューティングデバイスとインタラクトする視覚および/または触覚ディスプレイを提供する、ハードウェア(例えば、ディスプレイデバイス)およびソフトウェア(例えば、ドライバ)のコンポーネントを表す。ディスプレイサブシステム1130は、ディスプレイインターフェース1132を含み、ディスプレイインターフェース1132は、ディスプレイをユーザに提供するために用いられる特定のスクリーンまたはハードウェアデバイスを含む。1つの実施形態において、ディスプレイインターフェース1132は、ディスプレイに関連する少なくともいくつかの処理を実行する、プロセッサ1110と別個のロジックを含む。1つの実施形態において、ディスプレイサブシステム1130は、ユーザに対して出力および入力の両方を提供するタッチスクリーンデバイスを含む。1つの実施形態において、ディスプレイサブシステム1130は、出力をユーザに提供する高解像度(HD)ディスプレイを含む。高解像度とは、およそ100PPI(ピクセル・パー・インチ)またはそれより大きな画素密度を有する表示を指し得、フルHD(例えば、1080p)、網膜ディスプレイ、4K(超高解像度もしくはUHD)、または他のもののようなフォーマットを含み得る。
I/Oコントローラ1140は、ユーザとのインタラクションに関連するハードウェアデバイスおよびソフトウェアコンポーネントを表す。I/Oコントローラ1140は、オーディオサブシステム1120および/またはディスプレイサブシステム1130の一部であるハードウェアを管理するように動作し得る。更に、I/Oコントローラ1140は、デバイス1100に接続する追加のデバイスに対する接続ポイントを図示し、ユーザはデバイス1100を介してシステムとインタラクトし得る。例えば、デバイス1100に取り付けられ得るデバイスとしては、マイクデバイス、スピーカもしくはステレオシステム、ビデオシステムもしくは他のディスプレイデバイス、キーボードもしくはキーパッドデバイス、またはカードリーダもしくは他のデバイス等の特定のアプリケーションと共に使用するための他のI/Oデバイスを含み得る。
上記のように、I/Oコントローラ1140は、オーディオサブシステム1120および/またはディスプレイサブシステム1130とインタラクトし得る。例えば、マイクまたは他のオーディオデバイスを介した入力は、デバイス1100の1または複数のアプリケーションまたは機能に対する入力またはコマンドを提供し得る。更に、ディスプレイ出力の代わりに、またはこれに加えてオーディオ出力が提供され得る。別の例において、ディスプレイサブシステムがタッチスクリーンを含む場合、ディスプレイデバイスは、I/Oコントローラ1140によって少なくとも部分的に管理され得る入力デバイスとしても機能する。I/Oコントローラ1140によって管理されるI/O機能を提供すべく、デバイス1100上に追加のボタンまたはスイッチも存在し得る。
1つの実施形態において、I/Oコントローラ1140は、デバイス1100に含まれ得る加速度計、カメラ、光センサもしくは他の環境センサ、ジャイロスコープ、全地球測位システム(GPS)、または他のハードウェア等のデバイスを管理する。入力は、直接のユーザインタラクションの一部であると共に、システムの動作に影響する、システムへの環境入力(ノイズに対するフィルタリング、輝度検出のためのディスプレイの調整、カメラのフラッシュの適用、または他の機能等)を提供することの一部であり得る。1つの実施形態において、デバイス1100は、バッテリ電力使用量、バッテリの充電、および省電力動作に関する機能を管理する電力管理1150を含む。
メモリサブシステム1160は、デバイス1100に情報を格納するためのメモリデバイス(複数可)1162を含む。メモリサブシステム1160は、不揮発性(メモリデバイスへの電力が遮断されても状態が変化しない)および/または揮発性(メモリデバイスへの電力が遮断されると、状態が不定になる)メモリデバイスを含み得る。メモリ1160は、システム1100のアプリケーションおよび機能の実行に関連するアプリケーションデータ、ユーザデータ、音楽、写真、文書、または他のデータ、ならびにシステムデータ(長期的または一時的であるかに関係なく)を格納し得る。1つの実施形態において、メモリサブシステム1160は、メモリコントローラ1164(システム1100の制御部の一部とも見なされ得ると共に、潜在的にプロセッサ1110の一部と見なされる得る)を含む。メモリコントローラ1164は、メモリデバイス1162にコマンドを生成して発行するスケジューラを含む。
接続1170は、デバイス1100が外部デバイスと通信することを可能にするハードウェアデバイス(例えば、無線および/または有線コネクタ、ならびに通信ハードウェア)およびソフトウェアコンポーネント(例えば、ドライバ、プロトコルスタック)を含む。外部デバイスは、他のコンピューティングデバイス、無線アクセスポイントまたは基地局等の別個のデバイス、ならびにヘッドセット、プリンタ、または他のデバイス等の周辺機器であり得る。
接続1170は、複数の異なるタイプの接続を含み得る。一般化すると、デバイス1100は、セルラー接続1172および無線接続1174と共に図示されている。セルラー接続1172は一般に、無線キャリアが提供するセルラーネットワーク接続を指し、例えば、GSM(登録商標)(グローバルシステム・フォー・モバイルコミュニケーション)またはその変形規格または派生規格、CDMA(符号分割多重アクセス)またはその変形規格または派生規格、TDM(時分割多重)またはその変形規格または派生規格、LTE(ロングタームエボリューション、「4G」とも呼ばれる)またはその他のセルラー方式サービス規格を介して提供される。無線接続1174は、セルラーでない無線接続を指し、パーソナルエリアネットワーク(Bluetooth(登録商標)など)、ローカルエリアネットワーク(WiFi(登録商標)など)、および/またはワイドエリアネットワーク(WiMax(登録商標)など)、または他の無線通信を含み得る。無線通信は、非固体媒体を介して変調電磁放射の使用によるデータ転送を指す。有線通信は、固体通信媒体を介して存在する。
複数の周辺接続1180は、周辺接続を行うべく、ハードウェアインターフェースおよびコネクタ、ならびにソフトウェアコンポーネント(例えば、ドライバ、プロトコルスタック)を含む。デバイス1100は、他のコンピューティングデバイスに対する周辺機器(「to」1182)であり得ると共に、それに接続された周辺機器を有するもの(「from」1184)でもあり得ることが理解されよう。一般に、デバイス1100は、デバイス1100上のコンテンツの管理(例えば、ダウンロードおよび/またはアップロード、変更、同期)などを目的として他のコンピューティングデバイスに接続する「ドッキング」コネクタを有する。更に、ドッキングコネクタは、デバイス1100がコンテンツの出力を制御することを可能にする特定の周辺機器、例えば、オーディオビジュアルシステムまたは他のシステムに、デバイス1100が接続することを可能にし得る。
独自のドッキングコネクタまたは他の独自の接続ハードウェアに加えて、デバイス1100は一般的または規格ベースのコネクタにより周辺接続1180を行い得る。一般的なタイプは、(複数の異なるハードウェアインターフェースのうちのいずれかを含み得る)ユニバーサルシリアルバス(USB)コネクタ、MiniDisplayPort(MDP)を含むDisplayPort、高解像度マルチメディアインターフェース(HDMI(登録商標))、ファイヤワイヤ、または他のタイプを含み得る。
1つの実施形態において、メモリサブシステム1160は、プログラム可能な出力ドライバを有するメモリデバイス1162を含む。プログラム可能な出力ドライバは、メモリデバイス1162が、出力ドライバの構成に応じて、異なる電圧スイングで出力を生成するのを可能にする。1つの実施形態において、メモリデバイス1162は、スイング制御として使用する出力電圧を生成する。1つの実施形態において、メモリコントローラ1164は、メモリデバイスドライバと共に使用するメモリデバイス1162に出力電圧を供給する。メモリデバイスの出力ドライバ用の制御は、I/Oスイング制御装置1166によって表される。I/Oスイング制御装置1166は、メモリデバイス1162にロジックを含み得る。I/Oスイング制御装置1166は、メモリコントローラ1164にロジックを含み得る。I/Oスイング制御装置1166は、本明細書に説明される任意の実施形態によるメモリデバイスドライバ用の出力スイング制御を提供し得る。
1つの態様において、ホストシステムとインターフェースで接続するメモリデバイスは、
メモリデバイスと、関連メモリコントローラとの間に結合される入力/出力(I/O)信号線用のI/O信号線インターフェースと、
メモリデバイスからI/O信号線を通じてメモリコントローラへのI/O信号線インターフェースを経由した送信用に出力電圧スイングを動的に調整するプログラム可能ドライバと
を含み、調整された出力電圧スイングは、プログラム可能ドライバの抵抗から独立する。
1つの実施形態において、I/O信号線インターフェースはさらに、I/O信号線を高電圧レールに終端する。1つの実施形態において、I/O信号線インターフェースはさらに、I/O信号線を低電圧レールに終端する。1つの実施形態において、I/O信号線インターフェースはさらに、I/O信号線を中間レール電圧に終端する。1つの実施形態において、I/O信号線インターフェースは、複数の異なるI/O信号線用の複数のI/O信号線インターフェースのうちの1つを備え、I/O信号線インターフェースごとにプログラム可能ドライバをさらに備え、各プログラム可能ドライバは、独立したI/O信号線インターフェースを経由する送信用の出力電圧スイングを個別に調整する。1つの実施形態において、プログラム可能ドライバは、内部可変電圧スイングをさらに生成する。1つの実施形態において、プログラム可能ドライバはさらに、メモリコントローラから可変電圧レールを受信する。1つの実施形態において、メモリコントローラから受信される可変電圧レールは、メモリコントローラのドライバに適用される同じ電圧レールを備える。1つの実施形態において、メモリコントローラから受信される可変電圧レールは、メモリコントローラのドライバに適用される電圧レールとは異なる電圧レールを備える。1つの実施形態において、プログラム可能ドライバは、出力電圧スイングを1ビットの粒度にて制御スイングに動的に調整する。1つの実施形態において、プログラム可能ドライバは、出力電圧スイングを1バイトの粒度にて制御スイングに動的に調整する。1つの実施形態において、プログラム可能ドライバは、出力電圧スイングを1つのデバイスの粒度にて制御スイングに動的に調整する。1つの実施形態において、プログラム可能ドライバは、出力電圧スイングを1つのバスの粒度にて制御スイングに動的に調整する。1つの実施形態において、プログラム可能ドライバは、出力電圧スイングを1つのチャネルの粒度にて制御スイングに動的に調整する。1つの実施形態において、プログラム可能ドライバはn型−n型ドライバアーキテクチャを有する。1つの実施形態において、プログラム可能ドライバはn型−p型ドライバアーキテクチャを有する。1つの実施形態において、プログラム可能ドライバは、p型−p型ドライバアーキテクチャを有する。1つの実施形態において、プログラム可能ドライバは、p型−n型ドライバアーキテクチャを有する。1つの実施形態において、プログラム可能ドライバは、メモリデバイスの動作モードに基づいて出力電圧スイングを動的に調整し、動作モードはメモリデバイスのモードレジスタによって設定される。1つの実施形態において、プログラム可能ドライバは、メモリデバイスの動作モードに基づいて出力電圧スイングを動的に調整し、動作モードはメモリコントローラからメモリデバイスによって受信されるコマンドによって設定される。1つの実施形態において、プログラム可能ドライバは、メモリデバイスによってI/O用に使用される周波数に基づいて出力電圧スイングを動的に調整する。1つの実施形態において、プログラム可能ドライバはさらに、1または複数の電圧調整器特性を動的に調整する。1つの実施形態において、1または複数の電圧調整器特性は、調整器の帯域幅を含む。1つの実施形態において、1または複数の電圧調整器特性は、調整器の効率を含む。1つの実施形態において、1または複数の電圧調整器特性は、非線形制御を含む。1つの実施形態において、1または複数の電圧調整器特性は、低負荷電力管理を含む。1つの実施形態において、ドライバは、電圧モードドライバである。
1つの態様において、メモリサブシステムを有する電子デバイスは、
メモリデバイスであって、メモリデバイスと、関連メモリコントローラとの間に結合される入力/出力(I/O)信号線用のI/O信号線インターフェース、およびメモリデバイスからI/O信号線を通じてメモリコントローラへのI/O信号線インターフェースを経由した送信用に出力電圧スイングを動的に調整するプログラム可能ドライバであって、調整された出力電圧スイングは、プログラム可能ドライバの抵抗から独立するプログラム可能ドライバを含むメモリデバイスと、
メモリデバイスからアクセスされたデータに基づいて表示を生成するように結合されるタッチスクリーンディスプレイと
を備える。ホストシステムとインターフェースで接続するためのメモリデバイスに関して説明される任意の実施形態はまた、電子デバイスに適用され得る。
1つの態様において、メモリサブシステムにインターフェースで接続するための方法は、メモリデバイスと、関連メモリコントローラとの間に結合される入力/出力(I/O)信号線用のI/O信号線インターフェースを経由して出力するビットを生成する工程と、電源電圧に基づいてI/O信号線インターフェースを経由するビットの送信のために出力電圧スイングを動的に調整する工程と、動的に調整される出力電圧スイングとのI/O信号線インターフェースを駆動する工程とを含む。
1つの実施形態において、I/O信号線インターフェースはさらに、高電圧レール、低電圧レールおよび中間レール電圧のうちの1つに終端される。1つの実施形態において、出力電圧スイングを動的に調整する工程は、メモリデバイスの異なるI/O信号線インターフェースの電圧スイングとは異なる出力電圧スイングに出力電圧スイングを調整する工程を含む。1つの実施形態において、電源電圧に基づいた出力電圧スイングを動的に調整する工程は、電源電圧を低減された電圧スイングに内部調整する工程を含む。1つの実施形態において、電源電圧に基づいた出力電圧スイングを動的に調整する工程は、メモリコントローラから可変電圧レールを受信する工程を含む。1つの実施形態において、電源電圧に基づいた出力電圧スイングを動的に調整する工程はさらに、メモリコントローラの信号線のドライバに適用される同じ電圧源信号である低減された電圧スイング電源電圧を受信する工程を含む。1つの実施形態において、電源電圧に基づいた出力電圧スイングを動的に調整する工程はさらに、メモリコントローラの信号線のドライバに適用される信号とは異なる電圧源信号である低減された電圧スイング電源電圧を受信する工程を含む。1つの実施形態において、出力電圧スイングを動的に調整する工程は、出力電圧スイングをビット、バイト、デバイス、バスおよびチャネルのうちの1つの制御粒度用の制御出力スイングに動的に調整する工程を含む。1つの実施形態において、プログラム可能ドライバは、n型−n型ドライバ、n型−p型ドライバ、p型−p型ドライバまたはp型−n型ドライバのうちの1つから選択されるドライバアーキテクチャを有する。1つの実施形態において、出力電圧スイングを動的に調整する工程は、メモリデバイスの動作モードに基づいて出力電圧スイングを動的に調整する工程を含み、動作モードはメモリデバイスのモードレジスタによって設定される。1つの実施形態において、出力電圧スイングを動的に調整する工程は、メモリデバイスの動作モードに基づいて出力電圧スイングを動的に調整する工程を含み、動作モードはメモリコントローラからメモリデバイスによって受信されるコマンドによって設定される。1つの実施形態において、出力電圧スイングを動的に調整する工程は、メモリデバイスによってI/O用に使用される周波数に基づいて出力電圧スイングを動的に調整する工程を含む。1つの実施形態において、出力電圧スイングを動的に調整する工程はさらに、調整器の帯域幅、調整器の効率、非線形制御または低負荷電力管理を含む、1または複数の電圧調整器特性を動的に調整する工程を含む。
1つの態様において、機械によって実行される場合、メモリサブシステムにインターフェースで接続するための方法を実行すべく動作を実行する、その上に格納されるコンテンツを有するコンピュータ可読記憶媒体を備える製造物品であって、その方法は、メモリデバイスと、関連メモリコントローラとの間に結合される入力/出力(I/O)信号線用のI/O信号線インターフェースを経由して出力するビットを生成する工程と、電源電圧に基づいてI/O信号線インターフェースを経由するビットの送信のために出力電圧スイングを動的に調整する工程と、動的に調整される出力電圧スイングとのI/O信号線インターフェースを駆動する工程とを含む。ホストシステムとインターフェースで接続するための方法に関して説明される任意の実施形態はまた、製造物品に適用され得る。
1つの態様において、メモリサブシステムにインターフェースで接続するための装置は、メモリデバイスと、関連メモリコントローラとの間に結合される入力/出力(I/O)信号線用のI/O信号線インターフェースを経由して出力するビットを生成するための手段と、電源電圧に基づいてI/O信号線インターフェースを経由するビットの送信のために出力電圧スイングを動的に調整する手段と、動的に調整される出力電圧スイングとのI/O信号線インターフェースを駆動するための手段とを含む。ホストシステムとインターフェースで接続するための方法に関して説明される任意の実施形態はまた、装置に適用され得る。
本明細書において図示される複数のフロー図は、一連の様々なプロセス動作の例を提供する。フロー図は、ソフトウェアまたはファームウェアルーチンにより実行されるべき動作、ならびに物理的動作を示し得る。1つの実施形態において、フロー図は、ハードウェアおよび/またはソフトウェアの形で実装され得る有限ステートマシン(FSM)の状態を示し得る。特定のシーケンスまたは順序で示されているが、別途指定されない限り、動作の順序は変更され得る。このように、図示される実施形態は、例としてのみ理解されるべきであり、プロセスは異なる順序で実行され得、いくつかの動作は並行して実行され得る。更に、1または複数の動作は、様々な実施形態において省略され得る。従って各実施形態において、全ての動作が必要とされるわけではない。他のプロセスフローも可能である。
様々な動作または機能が本明細書に説明される限りにおいて、動作または機能は、ソフトウェア、コード、命令、構成、および/またはデータとして説明され、または定義され得る。コンテンツは、直接に実行可能なもの(「オブジェクト」または「実行可能な」形式)、ソースコード、または差分コード(「デルタ」または「パッチ」コード)であり得る。本明細書に説明される実施形態におけるソフトウェアコンテンツは、コンテンツがその上に格納された製造物品、または通信インターフェースを介してデータを送信するように通信インターフェースを動作させる方法により提供され得る。機械可読記憶媒体は、説明される機械に機能または動作を実行させ得、記録可能/記録不可能な媒体(例えば、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスクストレージ媒体、光記憶媒体、フラッシュメモリデバイスなど)のような機械(例えば、コンピューティングデバイス、電子システムなど)によりアクセス可能な形態で情報を格納する任意の機構を含む。通信インターフェースは、メモリバスインターフェース、プロセッサバスインターフェース、インターネット接続、ディスクコントローラなどのような別のデバイスに通信するハードワイヤード、無線、光などの媒体のいずれかにインターフェースで接続する任意の機構を含む。通信インターフェースは、構成パラメータを提供し、および/または信号を送信して、通信インターフェースがソフトウェアコンテンツを記述するデータ信号を提供するように準備することにより構成され得る。通信インターフェースは、通信インターフェースに送信される1または複数のコマンドまたは信号によりアクセスされ得る。
本明細書に説明される様々なコンポーネントは、説明される動作または機能を実行するための手段であり得る。本明細書に説明される各コンポーネントは、ソフトウェア、ハードウェア、またはこれらの組み合わせを含む。これらのコンポーネントは、ソフトウェアモジュール、ハードウェアモジュール、専用ハードウェア(例えば、特定用途向けハードウェア、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)など)、エンベデッドコントローラ、ハードワイヤード回路などとして実装され得る。
本明細書において説明されるもの以外にも、本発明において開示される実施形態および実装に対して、それらの範囲を逸脱することなく様々な変更が行われ得る。従って、本明細書における図示および例は、限定的な意味ではなく例示の意味に解釈されるべきである。本発明の範囲は、以下の特許請求の範囲を参照することのみにより評価されるべきである。