(58)【調査した分野】(Int.Cl.,DB名)
それぞれが複数の信号セットのうち一の異なる信号セットに対応する複数のメモリデバイスのいずれかにプリント配線基板(PCB)を結合する第1のハードウェアインターフェース(第1のHWインターフェース)と、
プロセッサデバイスに前記PCBを結合する第2のHWインターフェースと、
前記PCBの内部または上部に配設され、前記メモリデバイスの前記第1のHWインターフェースへの接続性を示す信号を生成して前記プロセッサデバイスに送信可能な検出ロジックと、
前記第1のHWインターフェースに結合されている電圧レギュレータ(VR)と、
前記PCBの内部または上部に配設されているインターコネクトであって、xが前記複数の信号セットを含むスーパーセットの信号総数に等しい整数であるとして、それぞれが前記第1のHWインターフェースのそれぞれの入出力コンタクト(I/Oコンタクト)を前記第2のHWインターフェースのそれぞれのI/Oコンタクトに結合しているx個の信号ラインを有するインターコネクトと
を備え、
前記プロセッサデバイスは、前記メモリデバイスの前記第1のHWインターフェースへの接続性を検出するためのベーシック・インプット/アウトプット・システム(BIOS)プロセスを実行可能であり、前記検出ロジックおよび前記BIOSプロセスのいずれを利用すべきかを判断し、前記接続性の検出結果に基づいて前記メモリデバイスのメモリタイプを特定し、前記メモリデバイスの特定された前記メモリタイプに基づいて、それぞれが前記複数の信号セットのうち一の異なる信号セットに対応する複数のインターフェースモードのうち第1のインターフェースモードを設定し、
前記VRは、前記メモリタイプに基づいて、それぞれが複数の前記メモリデバイスのうち一の異なるメモリデバイスに対応する複数のVRモードのうち第1のVRモードにプログラミングされ、前記第1のVRモードに基づき前記第1のHWインターフェースに1または複数の電圧を供給する、デバイス。
前記プロセッサデバイスに含まれるかまたは前記プロセッサデバイスへのアクセス可能なステートマシンロジックは、前記メモリデバイスの前記第1のHWインターフェースへの前記接続性を示す前記信号に応じて、前記メモリデバイスの前記メモリタイプを特定する
請求項1から4のいずれか1項に記載のデバイス。
前記プロセッサデバイスに含まれるかまたは前記プロセッサデバイスへのアクセス可能なステートマシンロジックは、前記メモリデバイスの前記第1のHWインターフェースへの前記接続性を示す前記信号に応じて、前記メモリデバイスの前記メモリタイプを特定する
請求項8から11のいずれか1項に記載のシステム。
プリント配線基板(PCB)の内部または上部に配設される検出ロジックおよびプロセッサデバイスが実行可能なBIOSプロセスのいずれを利用すべきかを、前記プロセッサデバイスによって、判断する段階と、
前記PCBの内部または上部に配設されている第1のハードウェアインターフェースへのメモリデバイスの接続性を、前記判断する段階において判断された前記検出ロジックまたは前記BIOSプロセスを利用して、検出する段階と、
前記接続性を検出することに応じて、前記メモリデバイスのメモリタイプを特定する段階であって、前記メモリタイプに基づいて、プロセッサデバイスは前記プロセッサデバイスの複数のインターフェースモードのうち第1のインターフェースモードを設定し、前記複数のインターフェースモードはそれぞれが、複数の信号セットのうちの一の異なる信号セットに対応し、前記プロセッサデバイスは、前記PCBの内部または上部に配設されている第2のハードウェアインターフェースを介して前記PCBに結合されている、特定する段階と、
前記メモリタイプに基づいて、電圧レギュレータ(VR)の複数のVRモードのうち第1のVRモードをプログラミングする段階であって、前記複数のVRモードはそれぞれ、複数のメモリタイプのうち一の異なるメモリタイプに対応し、前記VRは、前記第1のVRモードに基づき前記第1のハードウェアインターフェースに1または複数の電圧を供給する、プログラミングする段階と、
前記1または複数の電圧に基づき前記メモリデバイスが動作している間、xが前記複数の信号セットを含むスーパーセットの信号総数に等しい整数であるとして、前記PCBの内部または上部に配設されているインターコネクトのx個の信号ラインを介して、前記メモリデバイスと前記プロセッサデバイスとの間で複数の信号をやり取りする段階と
を備える方法。
【図面の簡単な説明】
【0006】
本発明のさまざまな実施形態は、添付図面において限定ではなく例示を目的として図示されている。図面は以下の通りである。
【
図1】一実施形態に係る、複数のメモリ技術のいずれをもサポートするシステムの構成要素を示す上位ブロック図である。
【
図2】一実施形態に係る、複数のメモリ技術のいずれをもサポートするシステムの構成要素を示す図である。
【
図3】一実施形態に係る、メモリデバイスにアクセスするための方法の構成要素を示すフローチャートである。
【
図4】一実施形態に係る、一のメモリ技術に準拠するようプラットフォームを設定するための方法の構成要素を示すフローチャートである。
【
図5】一連のテーブルを示し、各テーブルは、それぞれの実施形態に係るプラットフォームによってサポートされている対応するメモリ技術の信号を説明するためのテーブルである。
【
図6A】一実施形態に係るプラットフォームがサポートしている対応するメモリ技術によって特定されているさまざまな信号の種類および電圧を列挙している一連のテーブルを示す。
【
図6B】一実施形態に係るプラットフォームがサポートしている対応するメモリ技術によって特定されているさまざまな信号の種類および電圧を列挙している一連のテーブルを示す。
【
図7A】一実施形態に係るプラットフォームの複数の異なるインターフェースモードにおける信号のマッピングを説明するテーブルである。
【
図7B】一実施形態に係るプラットフォームの複数の異なるインターフェースモードにおける信号のマッピングを説明するテーブルである。
【
図7C】一実施形態に係るプラットフォームの複数の異なるインターフェースモードにおける信号のマッピングを説明するテーブルである。
【
図7D】一実施形態に係るプラットフォームの複数の異なるインターフェースモードにおける信号のマッピングを説明するテーブルである。
【
図7E】一実施形態に係るプラットフォームの複数の異なるインターフェースモードにおける信号のマッピングを説明するテーブルである。
【
図7F】一実施形態に係るプラットフォームの複数の異なるインターフェースモードにおける信号のマッピングを説明するテーブルである。
【
図8A】対応する実施形態に係るメモリ技術に準拠するためのピンアウトの構成要素を示すテーブルである。
【
図8B】対応する実施形態に係るメモリ技術に準拠するためのピンアウトの構成要素を示すテーブルである。
【
図8C】対応する実施形態に係るメモリ技術に準拠するためのピンアウトの構成要素を示すテーブルである。
【
図8D】対応する実施形態に係るメモリ技術に準拠するためのピンアウトの構成要素を示すテーブルである。
【
図8E】対応する実施形態に係るメモリ技術に準拠するためのピンアウトの構成要素を示すテーブルである。
【
図8F】対応する実施形態に係るメモリ技術に準拠するためのピンアウトの構成要素を示すテーブルである。
【
図8G】対応する実施形態に係るメモリ技術に準拠するためのピンアウトの構成要素を示すテーブルである。
【
図8H】対応する実施形態に係るメモリ技術に準拠するためのピンアウトの構成要素を示すテーブルである。
【
図9A】対応する実施形態に係るメモリ技術に準拠するためのピンアウトの構成要素を示すテーブルである。
【
図9B】対応する実施形態に係るメモリ技術に準拠するためのピンアウトの構成要素を示すテーブルである。
【
図9C】対応する実施形態に係るメモリ技術に準拠するためのピンアウトの構成要素を示すテーブルである。
【
図9D】対応する実施形態に係るメモリ技術に準拠するためのピンアウトの構成要素を示すテーブルである。
【
図9E】対応する実施形態に係るメモリ技術に準拠するためのピンアウトの構成要素を示すテーブルである。
【
図9F】対応する実施形態に係るメモリ技術に準拠するためのピンアウトの構成要素を示すテーブルである。
【
図10】一実施形態に係る、複数のメモリ技術のいずれをもサポートするためのコンピュータシステムの構成要素を示す上位ブロック図である。
【
図11】一実施形態に係る、複数のメモリ技術のいずれをもサポートするためのモバイルデバイスの構成要素を示す上位ブロック図である。
【発明を実施するための形態】
【0007】
本明細書で説明する実施形態は、複数の異なるメモリ技術のいずれにも基づくメモリデバイスと共に動作することをサポートするためのプラットフォーム用のさまざまな技術および/またはメカニズムを提供する。一実施形態において、マザーボード等のプリント配線基板(PCB)は、内部および/または上部に、当該PCBの内部または上部に配設されているハードウェアインターフェースを介した、メモリデバイスへの当該PCBの接続性を示す1または複数の信号をやり取りするための回路が配設されている。そのような回路は、メモリデバイスのメモリタイプを特定する1または複数の信号をやり取りするよう構成されているとしてよい。一部の実施形態において、電圧レギュレータ(VR)がPCBに結合されており、VRの複数のプログラミング可能なモードはそれぞれ、複数のメモリ技術のいずれか1つに対応する。メモリデバイスのメモリタイプ、例えば、メモリデバイスが利用する特定のメモリ技術に基づき、VRのモードをプログラミングして、ハードウェアインターフェースに、対応するメモリ技術が指定する1または複数の電圧を提供するとよい。メモリデバイスは、PCBの内部または上部に配設されている別のハードウェアインターフェースを介してPCBに結合されているプロセッサデバイスと信号をやり取りするとしてよい。インターコネクトは、プロセッサデバイスの複数のインターフェースモードのいずれにも準拠可能に構成されている信号ラインを含むとしてよい。例えば、複数のインターフェースモードはそれぞれ、複数のメモリ技術のうちいずれか1つに対応する。
【0008】
本明細書で用いる場合、「ハードウェアインターフェース」という用語は、一のデバイスを別のデバイスに結合するための一連の入出力(I/O)コンタクトを意味し、例えば、ピン、パッド、ボールまたはその他の導電性構造等を意味する。例えば、ハードウェアインターフェースは、PCB上に配設され、パッケージングされた集積回路(IC)デバイス、メモリモジュールおよび/または他のデバイスをPCBに結合可能とするとしてよい。ハードウェアインターフェースは、例えば、プラグ接続可能なメモリモジュールを挿入可能な機械式コネクタを含むとしてよい。これに代えて、ハードウェアインターフェースは、デバイスのボールグリッドアレイ(BGA)にはんだ付け可能なパッドアレイを含むとしてもよい。ハードウェアインターフェースを介してPCBに結合すべきデバイスは、1または複数のプロセッサコアを含むプロセッサ(例えば、中央演算処理装置)を含むとしてよい。これに代えて、このようなデバイスは、DIMM、または、1または複数のパッケージングされたメモリデバイスを含むその他のメモリモジュールを含むとしてもよい。
【0009】
特定の例示的な実施形態は、デュアルデータレート(DDR)規格等のさまざまなメモリ規格に関連付けて、本明細書で説明する。このような規格の例には、これらに限定されないが、DDR3シンクロナスダイナミックランダムアクセスメモリ(SDRAM)規格JESD79−3(JEDECソリッド・ステート・テクノロジ・アソシエーションによって2007年6月に公開)、DDR3L SDRAM規格JESD79−3−1(JEDECソリッド・ステート・テクノロジ・アソシエーションによって2010年7月26日に公開)およびDDR4 SDRAM規格JESD79−4(JEDECソリッド・ステート・テクノロジ・アソシエーションによって2012年9月25日に公開)が含まれる。他の例としては、LPDDR3 JESD209−3 LPDDR3低電力メモリデバイス規格(JEDECソリッド・ステート・テクノロジ・アソシエーションによって2012年5月17日に公開)、LPDDR4低電力メモリデバイス規格JESD209−4(JEDECソリッド・ステート・テクノロジ・アソシエーションによって2014年8月に公開)、および、グラフィクス・ダブル・データ・レート(GDDR5)シンクロナス・グラフィクス・ランダム・アクセス・メモリ(SGRAM)規格JESD212B.01(JEDECソリッド・ステート・テクノロジ・アソシエーションによって2013年12月に公開)が挙げられる。しかし、本発明の説明は、これに加えて、または、これに代えて、さまざまなDDR規格および/またはその他のメモリ規格のいずれにも適用するべく拡張されるとしてよい。特に明記されていない限り、「メモリ技術」および「メモリタイプ」は、本明細書でさまざまな意味で用いられ、メモリデバイスに含まれるか、または、利用される特定の一連の信号および/または1または複数の電圧を意味する。このような一連の信号および1または複数の電圧は、例えば、特定のメモリ規格の要件に基づいて決まるとしてよい。例えば、そのような要件によって指定されるとしてもよいし、または、そのような要件を満たすとしてよい。
【0010】
本明細書で説明する特定の実施形態は、それぞれが異なるメモリ技術に対応する複数の異なるモードをサポートするよう設定可能なプロセッサデバイスの動作をサポートするプラットフォームにさまざまな点で関連する。これらのモードはそれぞれ、当該プロセッサデバイスに設定されているピンアウト(pinout)が異なるとしてよい。特に明記されていない限り、「インターフェースモード」という用語は本明細書において、デバイス、例えば、プロセッサデバイスのモードであって、当該デバイスの特定のピンアウトを提供するモードを意味する。デバイスの一のインターフェースモードは、当該デバイスの異なるピンアウトを提供する当該デバイスの1または複数の他のインターフェースモードと区別されるとしてよい。プロセッサデバイスは、例えば、プロセッサが同じハードウェアインターフェースを介してPCBに結合されている間、その時々において異なるインターフェースモードで動作するとしてよい。デバイスがあるインターフェースモードに移行することは、例えば、複数の異なるインターフェースモード間での移行は、本明細書において当該インターフェースモードへの多重化(またはMUX化)と呼ぶ。
【0011】
図1は、一実施形態に係る、それぞれ異なる信号セットに対応する複数のメモリデバイスのいずれをも有するプロセッサの動作を円滑化するシステム100の構成要素を示す図である。例えば、複数の信号セットはそれぞれ、異なるメモリ規格に基づく。本明細書に記載する技術は、1または複数の電子デバイスで実装するとしてよい。本明細書に記載する技術を利用し得る電子デバイスの例は、これらに限定されないが、任意の種類の携帯型デバイスおよび/または固定式デバイス、例えば、カメラ、携帯電話、コンピュータ端末、デスクトップコンピュータ、電子読み取り機、ファクシミリ機、自動発券機、ネットブックコンピュータ、ノートブックコンピュータ、インターネットデバイス、支払端末、携帯情報端末(PDA)、メディアプレーヤおよび/またはメディアレコーダ、サーバ(例えば、ブレードサーバ、ラックマウントサーバ、これらの組み合わせ等)、セットトップボックス、スマートフォン、タブレット型パーソナルコンピュータ、ウルトラモバイルパーソナルコンピュータ、有線電話、これらの組み合わせ等が挙げられる。これらのデバイスは、携帯型であってもよいし、または、固定型であってもよい。一部の実施形態において、本明細書に記載する技術は、デスクトップコンピュータ、ラップトップコンピュータ、スマートフォン、タブレットコンピュータ、ネットブックコンピュータ、ノートブックコンピュータ、携帯情報端末(PDA)、サーバ、これらの組み合わせ等で採用されるとしてよい。より一般的には、本明細書に記載する技術は、プロセッサデバイスおよびメモリデバイスの一方または両方が結合および/または装着される任意の電子デバイスで採用されるとしてよい。
【0012】
一実施形態において、システム100は、プリント配線基板(PCB)102およびその内部またはその上にさまざまに配設されている構成要素を備える。これらの構成要素は、PCB102に共に結合されているプロセッサデバイス120とメモリデバイスとの間の通信を円滑化するためのものである。このような構成要素は、例として、ハードウェア(HW)インターフェース104、HWインターフェース106、インターコネクト108、存在検出部PD110およびプログラミング可能な電圧レギュレータ(VR)112を含むものとして提示されている。しかし、システム100は、本明細書で説明するような機能を実現するべく、上記に加えて、または、上記に代えて、さまざまな構成要素のいずれかを備えるとしてよい。システム100は、HWインターフェース104を介してプロセッサデバイス120に結合されているPCB102を備えるものとして図示されている。PCB102は、HWインターフェース106を介して複数の異なるメモリデバイスのいずれかに更に結合されるよう利用可能である。しかし、システム100の一部の実施形態は単に、PCB102と、その内部および/またはその上に配設されている構成要素を備える。つまり、当該実施形態は、プロセッサデバイス120に結合されるべく利用可能であり、プロセッサデバイス120を含むものではない。複数の異なるメモリデバイスの例には、それぞれ、例として挙げるDDR3モジュール130、DDR4モジュール132、LPDDR3モジュール134およびLPDDR4モジュール136等の異なるメモリ規格に基づいたメモリモジュール、例えば、そのようなメモリ規格の要件にしたがった、または、1または複数の点でそのようなメモリ規格の要件と少なくとも互換性を持つメモリモジュールが含まれる。しかし、システム100は、複数の異なる実施形態に応じて、サポートするメモリ技術の数は増減し、および/または、異なるメモリ技術をサポートするとしてよい。
【0013】
プロセッサデバイスは、1または複数のプロセッサコアを含むとしてよく、一実施形態において、このような1または複数のプロセッサコアのためにメモリデバイスにアクセスするためのメモリコントローラロジックを含むとしてよい。プロセッサデバイス120は、ピンアウト設定可能なデバイスの一例であり、例えば、プロセッサデバイス120は、HWインターフェース104に対する接続箇所において複数の異なるピンアウト候補のいずれかを実現するべく信号MUX回路122を備える。本明細書で用いる場合、「ピンアウト」という用語は、I/Oコンタクト(例えば、ピン、パッド、ボール等)のそれぞれと、インターフェースの対応する信号または電圧とのマッピングを意味する。信号MUX回路122は、複数の異なるタイミングにおいて複数の異なるインターフェースモードのいずれかに設定されるとしてよい。それぞれのインターフェースモードは、異なるメモリ技術に対応し、各インターフェースモードには、対応するメモリ技術に準拠するためのピンアウトが存在する。信号MUX回路122の一部または全体は、ピンアウトを設定可能とするように従来のメカニズムから適宜変更されているとしてよい。このような従来のメカニズムの具体的な詳細は、特定の実施形態で限定されず、これらの実施形態の特徴をあいまいにしないよう本明細書では詳細を省略する。
【0014】
現在までのところ、プラットフォーム設計者は、1つのPCB設計(または1つのクラスのPCB設計)を利用して所与のピンアウト設定可能なプロセッサデバイスを1つのメモリ技術で動作させ、別の1つのPCB設計(または1つのクラスのPCB設計)を利用してこのピンアウト設定可能なプロセッサデバイスを1つの別のメモリ技術のメモリデバイスと共に動作させてきた。特定の実施形態は、PCB設計はピンアウト設定可能なプロセッサデバイスの機能に基づいて構築されるように適応化されているとの認識の結果であり、一の共通プラットフォームの一部として、当該プロセッサデバイスが複数の異なるメモリ技術候補のいずれとも動作できるようにする。
【0015】
一実施形態において、プリント配線基板102は、プラットフォーム用のマザーボードとして機能する。例えば、システム100がプラットフォームであるか、または、プラットフォームの一構成要素である。ハードウェアインターフェース104、106はそれぞれ、対応する複数のI/Oコンタクトを有するとしてよい。例えば、インターコネクト108が複数の信号ラインを含み、各信号ラインがHWインターフェース104の各I/OコンタクトとHWインターフェース106の対応するI/Oコンタクトとを結合する。限定ではなく例示として、インターコネクト108のこのような信号ラインは、データ信号、アドレス信号、クロック信号、オンダイ終端信号、クロックイネーブル信号、チップ選択信号、および/または、各メモリ規格がそれぞれさまざまに定義するさまざまなその他の信号のいずれかの通信をさまざまにサポートするとしてよい。
【0016】
プロセッサデバイス120は、中央演算処理装置(CPU)として動作する1または複数のプロセッサコアまたはシステム100用のその他のプロセッサを含むパッケージングされたデバイスを有するとしてよい。例えば、プロセッサデバイス120は、ホストオペレーティングシステム(OS)、ベーシック・インプット/アウトプット・システム(BIOS)および/または1または複数のその他のソフトウェアプロセスを実行する。特定の実施形態はこの点に関して限定されないが、プロセッサデバイス120は、HWインターフェース106に結合されているメモリデバイスの特定のメモリ技術タイプを特定するべく、ステートマシンロジックを有するか、または、ステートマシンロジックへのアクセスを持つ(例えば、ハードウェア、ファームウェアを含むか、および/または、ソフトウェアを実行する)としてよい。一部の実施形態において、システム100は、HWインターフェース106に結合する予定のメモリデバイスおよびプロセッサデバイス120の一方または両方に結合されるが、含まないとしてよい。
【0017】
システム100は、PCB102の内部または上部に配設される存在検出回路PD110を備えるとしてよい。PD110の回路は、HWインターフェース106へのメモリデバイスの接続性を検出するための回路である。このようなメモリデバイスとしては、一の特定のメモリ規格に基づく1または複数のパッケージングされたメモリデバイスを有するメモリモジュール、例えば、DIMMを含むとしてよい。特定の実施形態はこの点に関して限定されないが、このような接続性の検出は、従来の存在検出技術、例えば、シリアルプレゼンスディテクト(SPD)規格に基づく存在検出技術から適宜変更された1または複数の処理をPD110が実行することを含むとしてよい。このような規格の一例として、DDR3 SDRAMモジュール用のSPD規格(リリース6)、SPD4_01_02_11:SPD Annex K(JEDECソリッド・ステート・テクノロジ・アソシエーション、2014年2月公開)が挙げられる。このような従来の存在検出技術の具体的な内容については、本明細書では詳細を省略し、特定の実施形態において限定されるものではない。
【0018】
PD110は、HWインターフェース106を介したPCB102へのメモリデバイスの接続性があるという検出結果を示す信号114を生成するとしてよい。信号114は、メモリデバイスの具体的なメモリタイプを特定するとしてもよく、または、これに代えて、単に一般的に接続性があることをシグナリングするとしてもよい。信号114は、システム100の1または複数の他の構成要素に、メモリデバイスの複数のメモリタイプ候補のうち特定の1つを決定させ、および/または、当該決定結果に基づき動作させるとしてよい。
【0019】
例えば、PCB102の内部または上部に配設されているプログラミング可能な電圧レギュレータ(VR)112は、それぞれ異なるメモリ技術に対応する1または複数の信号から成る信号セットの複数のうちいずれかの信号セットをHWインターフェース106に提供するよう、プログラミング可能であるとしてよい。信号114に基づき、プログラミング可能なVR112は、HWインターフェース106に結合されているメモリデバイスのメモリタイプ(この場合は、メモリ技術)に対応する1または複数の電圧から成る特定の電圧セットを供給するようプログラミングされるとしてよい。これは、1または複数の電圧118の例で図示している。1または複数の電圧118はそれぞれ、VR112によって、ハードウェアインターフェース106の対応するI/Oコンタクトに、直接的または間接的にさまざまに供給されるとしてよい。例えば、これらのI/Oコンタクトは、例えば、インターコネクト108に結合されているHWインターフェース106のI/Oコンタクトとは区別される。別の実施形態において、1または複数の電圧118は、VR112からHWインターフェース106に、プロセッサ120およびインターコネクト108および/またはシステム100の1または複数の他の中間構成要素を介して、供給されるとしてよい。1または複数の電圧118は、これらに限定されないが、基準電圧(例えば、グラウンド電圧)、電源電圧(例えば、VDD電圧)、および/または、さまざまなその他の電圧のいずれかを含むとしてよい。
【0020】
信号114は、プログラミング可能なVR112に直接供給されるものとして図示されている。しかし、別の実施形態において、信号114は、これに加えて、または、これに代えて、HWインターフェース106に結合されているメモリデバイスのメモリ技術を特定する100の他のロジックに供給されるとしてよい。例えば、信号114は、これに代えて、プロセッサデバイス120のステートマシンロジックに通信されるとしてもよい。このようなステートマシンロジックは、信号114に応じて、メモリデバイスのメモリタイプを特定するとしてよい。同様に、このようなステートマシンロジックは、信号MUX回路122の対応するインターフェースモードの設定を円滑化するべく、および/または、プログラミング可能なVR112のプログラミングを円滑化するべく、メモリタイプを通信するとしてよい。
【0021】
ここで
図2を参照すると、一実施形態例に係るシステム200の組立図が図示されている。システム200は、例えば、システム100の特徴の一部または全てを含むとしてよい。一実施形態において、システム200は、PCB202と、プロセッサデバイス220とメモリデバイス22との間の通信を円滑化するべくPCB202の内部または上部にさまざまに配設されている構成要素と備える。プロセッサデバイス220およびメモリデバイス22はそれぞれPCB202に結合されている。このような構成要素は、一例としてHWインターフェース204、206、インターコネクト208、検出部210およびVR212を含むものとして示されている。
【0022】
図2において、PCB202は、HWインターフェース204を介してプロセッサデバイス220に結合される準備が整っているものとして、また、HWインターフェース206を介してメモリデバイス222に結合される準備が整っているものとして図示されている。システム200の一部の実施形態は単に、PCB202と、その内部および/またはその上に配設されている構成要素を備える。つまり、当該実施形態は、プロセッサデバイス220またはメモリデバイス222に結合されるべく利用可能であり、プロセッサデバイス220またはメモリデバイス222を含むものではない。
【0023】
システム200の実施形態例において、HWインターフェース204は、プロセッサデバイス220のボールグリッドアレイの対応するボールにそれぞれさまざまにはんだ付けされるI/Oパッドアレイである。これとは対照的に、HWインターフェース206は、メモリデバイス222の対応するI/Oコンタクトに差し込まれる、または、その他の方法で接続されるI/Oコンタクトを含む機械式コネクタであってよい。限定ではなく例示を目的として、HWインターフェース206は、スモールアウトラインDIMM(SO−DIMM)コネクタまたはその他のさまざまな種類の従来のメモリモジュールコネクタのいずれかと互換性のあるコネクタ等のメモリモジュールコネクタを有するとしてよい。HWインターフェース206は、ユーザ切り替え、または、メモリデバイス222と、少なくとも1つの別のメモリデバイスとの間でのその他の選択を円滑化させるとしてよい。例えば、これら2つのメモリデバイスは異なるメモリ規格に基づいている。
【0024】
PCB202は、プロセッサデバイス220およびメモリデバイス222による通信を円滑化するとしてよい。同様に、別のタイミングでは、HWインターフェース206を介してPCB202に結合され得る別のメモリデバイス(不図示)による通信を円滑化するとしてよい。インターコネクト208は、複数の信号ラインを含むとしてよく、各信号ラインがHWインターフェース204のI/OコンタクトとHWインターフェース206の対応するI/Oコンタクトとを結合する。このような複数の信号ラインの総数は、それぞれが対応するメモリ規格でさまざまに定義されている複数の信号ラインセットを含む信号ラインスーパーセットに対応するとしてよい。限定ではなく例示を目的として、複数の信号ラインセットは、第1のメモリ規格が定義する信号を含む第1のセットと、第2のメモリ規格が定義する信号を含む第2のセットとを含むとしてよい。このような実施形態において、インターコネクト208の複数の信号ラインは、少なくとも部分的に、複数の信号ラインの総数が第1のセットの総数よりも多く、第1のセットおよび第2のセットの信号の総数よりも少ないことに基づいて、スーパーセットに対応するとしてよい。
【0025】
本明細書で説明するように、検出部210は、HWインターフェース206へのメモリデバイス222の接続性を検出し、PCB202を介してこのような接続性を示す信号をやり取りするとしてよい。このような接続性を示す情報は、メモリデバイス222のメモリタイプを決定する、および/または、このようなメモリタイプに基づいて構成されている1または複数の構成要素、例えば、HWインターフェース204および/またはVR212等に、直接的または間接的に通信されるとしてよい。例えば、プロセッサデバイス220は、メモリタイプを決定して、当該メモリタイプに準拠しているHWインターフェース204を介して信号をやり取りするべく、プロセッサデバイス220の複数のインターフェースモード候補のうち一の特定のインターフェースモードを設定するとしてよい。プロセッサデバイス220の複数のインターフェースモード候補はそれぞれ、異なるメモリ技術に対応するとしてよい。各インターフェースモードは、対応するメモリ技術に準拠するべく異なるピンアウトを提供する。これに代えて、または、これに加えて、VR212は、HWインターフェース204を介してメモリデバイス222に1または複数の電圧を供給するべく、VR212の複数のVRモード候補のうち一の特定のVRモードを設定するとしてよい。複数のVRモード候補はそれぞれ、異なるメモリデバイスタイプに対応するとしてよい。各VRモードは、対応するメモリ技術が特定する1または複数の電圧を供給する。
【0026】
図3は、一実施形態に係る、メモリデバイスとプロセッサとの間で通信をやり取りするための方法300の構成要素を示す図である。方法300は、例えば、プラットフォーム、システム、または、システム100の特徴の一部または全てを含む他のハードウェアによって実行されるとしてよい。一実施形態において、方法300は、310において、プリント配線基板の内部または上部に配設されている第1のハードウェアインターフェースへのメモリデバイスの接続性を検出する段階を含む。310の検出する段階は、PCBの内部または上部に配設されている検出ロジックで実行されるとしてよい。検出ロジックは、接続性を示す信号を生成してプロセッサデバイスに送信する。このような検出ロジックは、例えば、シリアルプレゼンスディテクト(SPD)規格にしたがっているか、または、当該規格に基づいているとしてよい。
【0027】
310での検出に応じて、方法300は、320において、メモリデバイスのメモリタイプを特定する段階を備えるとしてよい。320の特定する段階は、メモリデバイスが順守しているメモリ規格を特定すること、および/または、メモリデバイスに含まれている信号セット(例えば、ピンアウト)、または、メモリデバイスに対応する信号セットを特定することを含むとしてよい。プロセッサデバイスは、メモリタイプに基づき、プロセッサデバイスの複数のインターフェースモードのうち第1のインターフェースモードを設定するとしてよい。プロセッサは、例えば、PCBの内部または上部に配設されている第2のハードウェアインターフェースを介してPCBに結合されるとしてよい。プロセッサデバイスに含まれているステートマシンロジックまたはプロセッサデバイスがアクセス可能なステートマシンロジックは、PCB上の検出ロジックおよび/またはメモリデバイス自体との1または複数のやり取りに基づいて、複数のメモリタイプ候補の中からメモリデバイスのメモリタイプを特定するとしてよい。このようなステートマシンロジックは、例えば、プロセッサデバイスのステートマシン回路またはプロセッサデバイスが実行するベーシック・インプット/アウトプット・システム(BIOS)プロセスを含むとしてよい。プロセッサデバイスの複数のインターフェースモードはそれぞれ、複数の信号セットのうち異なる信号セットに対応するとしてよい。このような複数の信号セットは、それぞれ異なるメモリ規格が特定する1または複数の信号セットを含むとしてよい。
【0028】
方法300はさらに、330において、特定されたメモリタイプに基づき第1のハードウェアインターフェースに1または複数の電圧を供給する段階を備えるとしてよい。例えば、VRは、メモリタイプの指定を生成または受信するとしてよく、これに応じて、電圧レギュレータ(VR)の複数のVRモードのうち第1のVRモードをプログラミングするとしてよい。複数のVRモードはそれぞれ、複数のメモリデバイスタイプのうち異なるメモリデバイスタイプに対応するとしてよい。複数のメモリタイプはそれぞれ、一のメモリ規格に対応するとしてよい。例えば、1または複数のVRモードはそれぞれ、対応するメモリ規格が特定する1または複数の電圧を供給する。VRは、プログラミングされた第1のVRモードに基づいて330において1または複数の電圧を供給するとしてよい。
【0029】
1または複数の電圧に基づくメモリデバイスの動作中において、方法300は、340において、メモリデバイスとプロセッサデバイスとの間で信号をやり取りするとしてよい。例えば、このような信号は、PCBの内部または上部に配設されているインターコネクトのx個の信号ラインを介してやり取りされるとしてよい。xは、複数のメモリタイプのうち異なるメモリタイプにそれぞれが対応する複数の信号セットを含むスーパーセットの信号総数に等しい整数である。
【0030】
図4は、一実施形態に係る、メモリデバイスのメモリタイプを特定する方法400の構成要素を示す図である。方法400は、メモリデバイスとの通信用に設定されるべきピンアウトを決定するべく、システム100または200の一の構成要素によって実行されるとしてよい。例えば、方法400は、プロセッサデバイス120またはプロセッサデバイス220のBIOSプロセスによって実行されるとしてよい。
【0031】
402において、方法400は、システム100、200のうち一方等のシステムの電源をオンに制御する処理を開始するとしてよい。電源をオンに制御する処理の間、または、その後、例えば、PCBの内部または上部に配設されているHWインターフェースを介したメモリデバイスの接続性を検出する検出ロジックに電力を供給するべく、PCBの1または複数のメインレールの電源をオンに制御するとしてよい。限定ではなく例示を目的として、406において、PCB上のシリアルプレゼンスディテクト(SPD)ロジックは、ステートマシンロジックによってポーリングされて、HWインターフェースに結合されている任意のメモリデバイスのメモリタイプを決定するとしてよい。406におけるポーリングがメモリデバイスの存在が検出されたことを示すと、その後、方法400は、408において、PCBに結合されているプロセッサがメモリデバイスのメモリタイプをサポートするか否かを判断するとしてよい。
【0032】
メモリタイプがサポートされていない場合、方法400は、エラーメッセージを生成する段階を備えるとしてよい。例えば、一例として、BIOSパワーオンセルフテスト(POST)コードが410で発行され、システムブート失敗が412で発行される。しかし、決定されたメモリタイプがサポートされていると408において判断されると、方法400は、414において、電圧レギュレータレールをプログラミングして、メモリタイプに対応するメモリ規格が特定する電圧レベルを供給するとしてよい。電圧レベルは、電圧レギュレータからPCBおよびHWインターフェースを介してメモリデバイスに、メモリデバイスを動作させるべく、さまざまな方法で供給されるとしてよい。
【0033】
特定の実施形態は、メモリデバイスの接続性を検出する手段として、PCBに存在するシリアルプレゼンスディテクション(SPD)ロジックに限定されない。例えば、一部の実施形態は、存在検出機能を提供するべく、プロセッサデバイスで実行されるBIOSプロセスを実現するとしてよい。このような実施形態においては、方法400は、どの存在検出メカニズムが利用可能かを決定するための1または複数のさらなる処理(不図示)を追加で含むとしてよい。プロセッサデバイスは、PCB上のSPDロジックがアクセス可能か否か、または、例えば、BIOSの仮想SPDプロセスを代わりに利用すべきか否かを判断するべく、このような処理を実行するとしてよい。このような判断は、406におけるポーリングの前に、当該ポーリングの対象を決定するべく行われるとしてよい。
【0034】
ここで
図5を参照すると、さまざまなテーブルは、各リストを示し、対応するメモリ規格が特定する少なくとも一部の信号を説明するためのものである。より具体的には、テーブル500は、DDR4規格に基づくメモリデバイスがやり取りする信号を説明しており、テーブル510は、LPDDR3規格に基づくメモリデバイスがやり取りする信号を説明しており、テーブル520は、LPDDR4規格に基づくメモリデバイスがやり取りする信号を説明している。これらのメモリ規格の具体的且つ詳細な説明および信号は、特定の実施形態の特徴をあいまいにしないよう、本明細書では説明を省略する。
【0035】
本明細書でより詳細に説明するが、インターコネクト108、208のうち一方等のインターコネクトは、PCB上に配設されているハードウェアインターフェース間で信号をやり取りするための信号ラインを少なくとも複数含むとしてよい。複数の信号ラインは、それぞれ異なるメモリ規格で特定される複数の信号セットのいずれかに準拠し得るスーパーセットとして機能するとしてよい。テーブル500、510、520は、このような複数の異なるメモリ規格およびそれらの信号の一例を表す。しかし、インターコネクトがサポートするメモリ規格は、これより少なくてもよいし、追加されてもよいし、および/または、他のメモリ規格であってもよい。これに加えて、または、これに代えて、スーパーセットがサポートしている信号であって、このようなメモリ規格の一部または全てが特定する信号は、これより少なくともよいし、追加されてもよいし、および/または、その他の信号であってよい。
【0036】
ここで
図6Aおよび
図6Bを参照すると、図示されているさまざまなテーブルはそれぞれ、対応するメモリ技術が定義している信号セットを説明している。より具体的には、テーブル600はDDR4規格が特定する信号セットを説明しており、テーブル610はLPDDR3規格が特定する信号セットを説明しており、テーブル620はLPDDR4規格が特定する信号セットを説明している。テーブル610、620、630は、信号タイプにしたがって、例えば、データ(DQ)、データマスク(DM*)、差動データストローブ(DQS)等にしたがって、さまざまに整理されており、対応するメモリ規格が特定する信号タイプの複数の信号をリスト化している。
図5に関して言及したように、DDR4規格、LPDDR3規格およびLPDDR4規格は単に、一実施形態において準拠する複数の異なるメモリ規格の一例である。他の実施形態が準拠するメモリ規格は、これより少なくともよいし、多くてもよく、および/または、他のメモリ規格であってもよい。
【0037】
テーブル630は、テーブル600、610、620が表す信号のスーパーセットを示す。スーパーセットは、一実施形態において、インターコネクト108、208のうち一方等のインターコネクトの信号ラインに準拠するとしてよい。テーブル600、610、620、630を行をそろえて並べることでスーパーセットを信号タイプで分類した結果が分かる。例えば、所与の信号タイプについて、当該信号タイプの信号として最大数を特定しているメモリ規格によって、当該スーパーセットにおいて当該信号タイプをサポートする信号ライン数が決まる。
【0038】
テーブル640は、一実施形態において、プログラミング可能な電圧レギュレータ112およびVR212の一方等のVRがサポートし得る電圧のテーブルを示す。テーブル640は、DDR4規格、LPDDR3規格およびLPDDR4規格がさまざまに特定する電圧、および、これらの電圧のスーパーセットをリスト化している。一実施形態に係るVRは、テーブル640で特定されているスーパーセットの電圧のいずれかを、PCB上のHWインターフェースを介してメモリデバイスに供給するようプログラミングが可能であるとしてよい。
【0039】
ここで、
図7A、
図7B、
図7C、
図7D、
図7E、
図7Fを参照すると、テーブル700a、700b、700cは、CPUと、それぞれ異なるメモリ規格に基づいている複数のメモリデバイスのいずれかとの間でやり取りされるべき信号のマッピングをさまざまにリスト化している。そのようなCPUは、このような複数のメモリ規格の1つにそれぞれが対応する複数の異なるインターフェースモードのいずれかを実現し得るピンアウト設定可能なインターフェース回路を含むとしてもよいし、または、当該ピンアウト設定可能なインターフェース回路と協働するとしてもよい。テーブル700a、700b、700cはそれぞれ、CPUがやり取り可能な信号のリストを列方向に示す。複数の異なるメモリ規格、本例では、DDR3、DDR4、LPDDR3(2つの異なる設定を含む)およびLPDDR4のメモリデバイスについて、テーブル700a、700b、700cは、CPU側の信号識別子をそれぞれ、図示しているメモリ規格の対応する信号識別子に対してさまざまにマッピングしている。テーブル700cでは、「NC」は「接続なし」を意味する。一の特定のCPU側の信号識別子は、CPUの特定の入力モードに応じて、複数の異なるタイミングにおいて、CPUの複数の異なるI/Oコンタクトに対応付けられ得ると理解されたい。
【0040】
ここで
図8A、
図8B、
図8C、
図8D、
図8E、
図8F、
図8G、
図8Hを参照すると、テーブル810、820、830、840はそれぞれ、一実施形態に係る、PCBを介してピンアウト設定可能なプロセッサデバイスと通信する対応するメモリデバイスのピンアウトをリスト化している。より具体的には、テーブル800は、PCB上の260ピンのコネクタに結合されるDDR3Lデバイスのピンアウトをリスト化し、テーブル810は、そのような260ピンのコネクタに結合されるDDR4デバイスのピンアウトをリスト化している。テーブル820は、このような260ピンのコネクタに結合されるLPDDR3デバイスのピンアウトをリスト化し、テーブル830は、このような260ピンのコネクタに結合されるLPDDR4デバイスのピンアウトをリスト化する。
【0041】
特定の実施形態は、PCBに結合されているメモリデバイスのメモリタイプをさまざまな方法で特定する。例えば、テーブル800、810、820、830で示すさまざまなピンアウトのうち特定の1つを特定することを含む。これに応じて、対応するメモリ規格が特定するピンアウトおよび電圧レベルの両方に準拠するように、プロセッサデバイスのインターフェースモードが設定され、電圧レギュレータのVRモードがプログラミングされるとしてよい。
【0042】
ここで
図9A、
図9B、
図9C、
図9D、
図9E、
図9Fを参照すると、テーブル900、910、920はそれぞれ、別の実施形態に係る、PCBを介してピンアウト設定可能なプロセッサデバイスと通信する対応するメモリデバイスのピンアウトをリスト化する。より具体的には、テーブル900は、PCB上の242ピンのコネクタと結合されるDDR4メモリデバイスのピンアウトをリスト化しており、テーブル910はこのような242ピンのコネクタに結合されるLPDDR3メモリデバイスのピンアウトをリスト化し、テーブル920は、このような242ピンのコネクタに結合されるLPDDR4メモリデバイスのピンアウトをリスト化している。特定の実施形態は、テーブル900、910、920にさまざまに表すピンアウトのうち特定の1つを、PCBに結合されているメモリデバイスに対応するものとして、さまざまな方法で特定する。これに応じて、対応するメモリ規格が特定するピンアウトおよび電圧レベルの両方に準拠するよう、プロセッサデバイスのインターフェースモードが設定され、電圧レギュレータのVRモードがプログラミングされるとしてよい。
【0043】
図10は、メモリデバイスへのアクセスが実現されるコンピューティングシステムの実施形態を示すブロック図である。システム1000は、本明細書で説明する任意の実施形態に応じたコンピューティングデバイスを示し、ラップトップコンピュータ、デスクトップコンピュータ、サーバ、ゲームコントロールシステムまたは娯楽用コントロールシステム、スキャナ、コピー機、プリンタまたはその他の電子デバイスであってよい。システム1000は、プロセッサ1020を含むとしてよい。プロセッサ1020は、処理、動作管理およびシステム1000のための命令の実行を担当する。プロセッサ1020は、任意の種類のマイクロプロセッサ、中央演算処理装置(CPU)、プロセッシングコア、または、システム1000のための処理を実行するその他の処理ハードウェアを含むとしてよい。プロセッサ1020は、システム1000全体の動作を制御し、1または複数のプログラミング可能な汎用マイクロプロセッサまたは特定用途向けマイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、プログラミング可能なコントローラ、特定用途向け集積回路(ASIC)、プログラミング可能なロジックデバイス(PLD)等、または、このようなデバイスの組み合わせであってもよいし、または、これらを含むとしてもよい。
【0044】
メモリサブシステム1030は、システム1000のメインメモリを表し、プロセッサ1020が実行すべきコード、または、ルーチンを実行する際に用いられるデータ値を一時的に格納する。メモリサブシステム1030は、リードオンリーメモリ(ROM)、フラッシュメモリ、1または複数の多様なランダムアクセスメモリ(RAM)、または、その他のメモリデバイス、または、このようなデバイスの組み合わせ等の1または複数のメモリデバイスを含むとしてよい。メモリサブシステム1030は、何よりも、システム1000において命令を実行するためのソフトウェアプラットフォームを提供するべく、オペレーティングシステム(OS)1036を格納しホストとなる。これに加えて、他の命令1038が、メモリサブシステム1030に格納され、メモリサブシステム1030から実行されて、システム1000の処理およびロジックを実現する。OS1036および命令1038は、プロセッサ1020によって実行される。
【0045】
メモリサブシステム1030は、メモリデバイス1032を含むとしてよく、メモリデバイス1032においてデータ、命令、プログラム等を格納する。一実施形態において、メモリサブシステムはメモリコントローラ1034を含み、メモリコントローラ1034は、例えばプロセッサ1020のために、メモリ1032にアクセスする。メモリコントローラ1034は、プロセッサ1020を含むパッケージングされたデバイスに組み込まれるとしてよい。例えば、プロセッサ1020は、本明細書に記載したような機能を提供する構成要素を内部または上部に配設しているPCB(不図示)を介してメモリ1032にアクセスする。
【0046】
プロセッサ1020およびメモリサブシステム1030は、バス/バスシステム1010に結合されるとしてよい。バス1010は、適切なブリッジ、アダプタおよび/またはコントローラで接続されている、任意の1または複数の別個の物理バス、通信ライン/インターフェース、および/または、ポイント・ツー・ポイント接続を表す抽象化である。このため、バス1010は、例えば、システムバス、ぺリフェラル・コンポーネント・インターコネクト(PCI)バス、ハイパートランスポートバスまたは業界標準アーキテクチャ(ISA)バス、小型計算機システムインターフェース(SCSI)バス、ユニバーサルシリアルバス(USB)、または、米国電気電子学会(IEEE)規格1394バス(一般的には「ファイヤワイヤ」と呼ばれる)のうち1または複数を含むとしてよい。バス1010の複数のバスはさらに、ネットワークインターフェース1050内の複数のインターフェースに対応するとしてよい。
【0047】
システム1000はさらに、バス1010に結合されている、1または複数の入出力(I/O)インターフェース1040、ネットワークインターフェース1050、1または複数の内部大容量記憶デバイス1060および周辺機器インターフェース1070を備えるとしてよい。I/Oインターフェース1040は、ユーザとシステム1000との間のやり取り(例えば、ビデオ、オーディオおよび/または英数字によるやり取り)を仲介する1または複数のインターフェースコンポーネントを含むとしてよい。ネットワークインターフェース1050は、システム1000がリモートデバイス(例えば、サーバ、他のコンピューティングデバイス)と1または複数のネットワークを介して通信できるようにする。ネットワークインターフェース1050は、イーサネット(登録商標)アダプタ、無線相互接続コンポーネント、USB(ユニバーサルシリアルバス)、または、その他の有線または無線方式の規格に基づくインターフェースまたは専用インターフェースを含むとしてよい。
【0048】
ストレージ1060は、大量のデータを不揮発に格納する任意の従来の媒体であってもよいし、または、そのような媒体を含むとしてもよい。例えば、1または複数の磁気ディスク、ソリッドステートディスクあるいは光ディスク、または、これらの組み合わせが挙げられる。ストレージ1060は、コードまたは命令およびデータ1062を永続的に保持する(つまり、システム1000に対する電力供給が中断されても値は保持される)。ストレージ1060は一般的に「メモリ」と見なされるとしてよいが、メモリ1030はプロセッサ1020に命令を提供するための実行メモリまたは動作メモリである。ストレージ1060は不揮発性であるが、メモリ1030は揮発性メモリを含むとしてよい(つまり、値またはデータの状態は、システム1000に対する電力供給が中断されると、不正確になる)。
【0049】
周辺機器インターフェース1070は、特に具体的に上述していない任意のハードウェアインターフェースを含むとしてよい。 周辺機器とは一般的に、システム1000に対して従属的に接続されているデバイスを意味する。従属的接続とは、システム1000が、処理が実行されユーザのやり取りの対象となるソフトウェアプラットフォームおよび/またはハードウェアプラットフォームを提供する接続である。
【0050】
図11は、メモリデバイスへのアクセスが実装されるモバイルデバイスの実施形態を示すブロック図である。デバイス1100は、モバイルコンピューティングデバイスを表す。例えば、コンピューティングタブレット、携帯電話またはスマートフォン、無線で起動される電子リーダー、または、その他のモバイルデバイスである。構成要素のうち特定のものを一般的に図示したものであり、このようなデバイスの全ての構成要素をデバイス1100に図示しているわけではないと理解されたい。デバイス1100は、デバイス1100の主要な処理動作を実行するプロセッサ1110を含むとしてよい。プロセッサ1110は、1または複数の物理デバイス、例えば、マイクロプロセッサ、アプリケーションプロセッサ、マイクロコントローラ、プログラミング可能なロジックデバイス、または、その他の処理手段を含むとしてよい。プロセッサ1110が実行する処理動作は、アプリケーションおよび/またはデバイス機能が実行されるオペレーティングプラットフォームまたはオペレーティングシステムの実行を含む。処理動作は、人間であるユーザまたは他のデバイスとの間のI/O(入出力)に関する処理、電力管理に関する処理、および/または、デバイス1100を別のデバイスに接続することに関する処理を含む。処理動作はさらに、オーディオ入出力および/またはディスプレイ入出力に関する処理も含むとしてよい。
【0051】
一実施形態において、デバイス1100は、オーディオサブシステム1120を含む。オーディオサブシステム1120は、コンピューティングデバイスにオーディオ機能を付与することに対応付けられるハードウェアコンポーネント(例えば、オーディオハードウェアおよびオーディオ回路)およびソフトウェアコンポーネント(例えば、ドライバ、コーデック)を表す。オーディオ機能は、スピーカおよび/またはヘッドフォン出力、および、マイクロフォン入力を含むとしてよい。そのような機能のためのデバイスは、デバイス1100に一体化されているとしてもよいし、または、デバイス1100に接続されるとしてもよい。一実施形態において、ユーザは、プロセッサ1110が受信して処理するオーディオコマンドを供給することによって、デバイス1100とやり取りを行う。
【0052】
ディスプレイサブシステム1130は、ユーザがコンピューティングデバイスとやり取りするための視覚的ディスプレイおよび/または接触性ディスプレイを提供するハードウェアコンポーネント(例えば、ディスプレイデバイス)およびソフトウェアコンポーネント(例えば、ドライバ)を表す。ディスプレイサブシステム1130は、ユーザに表示を行うべく用いられる特定のスクリーンまたはハードウェアデバイスを含み得るディスプレイインターフェース1132を含むとしてよい。一実施形態において、ディスプレイインターフェース1132は、ディスプレイに関連する少なくとも一部の処理を実行するためのロジックをプロセッサ1110とは別個に含む。一実施形態において、ディスプレイサブシステム1130は、ユーザに対して出力および入力の両方を可能とするタッチスクリーンデバイスを含む。
【0053】
I/Oコントローラ1140は、ユーザとのやり取りに関連するハードウェアデバイスおよびソフトウェアコンポーネントを表す。I/Oコントローラ1140は、オーディオサブシステム1120および/またはディスプレイサブシステム1130の一部であるハードウェアを管理するよう動作するとしてよい。さらに、I/Oコントローラ1140は、ユーザがシステムとのやり取りできるようにするためのデバイス1100に接続される追加デバイスのための接続ポイントを示す。例えば、デバイス1100に取着され得るデバイスには、マイクロフォンデバイス、スピーカシステムまたはステレオシステム、ビデオシステムまたはその他のディスプレイデバイス、キーボードまたはキーパッドデバイス、または、カードリーダまたはその他のデバイス等の特定用途で利用する他のI/Oデバイスが含まれるとしてよい。
【0054】
上述したように、I/Oコントローラ1140は、オーディオサブシステム1120および/またはディスプレイサブシステム1130とやり取りするとしてよい。例えば、マイクロフォンまたはその他のオーディオデバイスを介した入力は、デバイス1100の1または複数のアプリケーションまたは機能についての入力またはコマンドを提供するとしてよい。また、オーディオ出力が、ディスプレイ出力に代えて、または、ディスプレイ出力に加えて提供されるとしてよい。別の例を挙げると、ディスプレイサブシステムがタッチスクリーンを含む場合、ディスプレイデバイスはさらに、少なくとも一部分がI/Oコントローラ1140によって管理され得る入力デバイスとして動作する。さらに、デバイス1100には、I/Oコントローラ1140が管理するI/O機能を提供するボタンまたはスイッチが追加で設けられるとしてよい。
【0055】
一実施形態によると、I/Oコントローラ1140は、加速度計、カメラ、光センサまたはその他の環境センサ、ジャイロスコープ、グローバルポジショニングシステム(GPS)、または、デバイス1100に含まれるその他のハードウェア等のデバイスを管理する。入力は直接的なユーザとのやり取りの一部であってよく、同時に、システムの動作に影響を与える当該システムへの環境入力が提供されるとしてよい(例えば、ノイズ用のフィルタリング、輝度検出のためのディスプレイの調整、カメラ用にフラッシュの使用、または、その他の機能)。
【0056】
一実施形態によると、デバイス1100は、電池電力使用率、電池の充電および省電力動作に関する機能を管理する電力管理部1150を含む。メモリサブシステム1160は、デバイス1100に情報を格納するべくメモリデバイス1162を含むとしてよい。メモリサブシステム1160は、不揮発性(メモリデバイスへの電力供給が中断されても状態が変化しない)および/または揮発性(メモリデバイスへの電力供給が中断されると状態が不確定)のメモリデバイスを含むとしてよい。メモリ1160は、アプリケーションデータ、ユーザデータ、音楽、写真、ドキュメントまたはその他のデータを格納するとしてよく、同様に、システム1100のアプリケーションおよび機能の実行に関するシステムデータ(長期データまたは一時データのいずれも)を格納する。
【0057】
一実施形態によると、メモリサブシステム1160は、メモリコントローラ1164(同様にシステム1100の制御部の一部と見なされ得ると共に、プロセッサ1100の一部と見なされる可能性もある)を含む。メモリコントローラ1164は、例えば、プロセッサ1110のために、メモリ1162へのアクセスを提供するべくシグナリングを通信するとしてよい。メモリコントローラ1164は、プロセッサ1110を含むパッケージングされたデバイスに組み込まれるとしてよい。例えば、プロセッサ1110が、本明細書で説明したような機能を実現するコンポーネントを内部または上部に配設しているPCB(不図示)を介してメモリ1162にアクセスする。
【0058】
接続1170は、デバイス1100が外部デバイスと通信できるように、ハードウェアデバイス(例えば、無線および/または有線方式のコネクタおよび通信ハードウェア)およびソフトウェアコンポーネント(例えば、ドライバ、プロトコルスタック)を含むとしてよい。デバイスは、他のコンピューティングデバイス、無線アクセスポイントまたは基地局等の別個のデバイスであってよく、同様に、ヘッドセット、プリンタまたはその他のデバイス等の周辺機器であってもよい。
【0059】
接続1170は、複数の異なる種類の接続を含むとしてよい。一般化すると、デバイス1100は、セルラー方式接続1172および無線接続1174を含むものとして図示されている。セルラー方式接続1172は一般的に、無線キャリアが提供するセルラー方式ネットワーク接続を意味し、例えば、グローバルシステムフォーモバイルコミュニケーション(GSM(登録商標))またはその変形規格または派生規格、CDMA(符号分割多重アクセス)またはその変形規格または派生規格、TDM(時分割多重)またはその変形規格または派生規格、LTE(ロングタームエボリューション、「4G」とも呼ばれる)またはその他のセルラー方式サービス規格を介して提供される。無線接続1174は、セルラー方式でない無線接続を意味し、パーソナルエリアネットワーク(Bluetooth(登録商標)等)、ローカルエリアネットワーク(WiFi(登録商標)等)、および/または、ワイドエリアネットワーク(WiMAX(登録商標)等)またはその他の無線通信を含むとしてよい。無線通信は、固体でない媒体を通過する電磁放射波の変調を利用したデータの転送を意味する。有線通信は、固体の通信媒体を介して行われる。
【0060】
周辺機器接続1180は、ハードウェアインターフェースおよびコネクタを含み、同様に周辺機器接続を実現するためのソフトウェアコンポーネント(例えば、ドライバ、プロトコルスタック)を含む。デバイス1100は、他のコンピューティングデバイスに対する周辺機器(「接続先」1182)であってもよいし、同様に、周辺機器が接続されている(「接続元」1184)としてもよいと理解されたい。デバイス1100は一般的に、デバイス1100上でコンテンツを管理する(例えば、ダウンロード、および/またはアップロード、変更、同期)等の目的のために他のコンピューティングデバイスに接続するべく「ドッキング」コネクタを持つ。さらに、ドッキングコネクタによって、デバイス1100は、例えば、オーディオビジュアルシステムまたはその他のシステムへのコンテンツ出力をデバイス1100が制御できるようにする特定の周辺機器に接続することが可能となるとしてよい。
【0061】
専用ドッキングコネクタまたはその他の専用接続ハードウェアに加えて、デバイス1100は、一般的なコネクタまたは標準規格に基づいたコネクタを介して、周辺機器接続1180を実現するとしてよい。一般的な種類としては、ユニバーサルシリアルバス(USB)コネクタ(複数の異なるハードウェアインターフェースのいずれかを含むとしてよい)、MiniDisplayPort(MDP)を含むDisplayPort、高精細マルチメディアインターフェース(HDMI(登録商標))、ファイヤワイヤまたはその他の種類が含まれるとしてよい。
【0062】
一実施例において、デバイスは、それぞれが複数の信号セットのうち一の異なる信号セットに対応する複数のメモリデバイスのいずれかにプリント配線基板(PCB)を結合する第1のハードウェアインターフェース(第1のHWインターフェース)と、プロセッサデバイスにPCBを結合する第2のHWインターフェースであって、プロセッサデバイスは、第1のHWインターフェースへのメモリデバイスの接続性を検出して、メモリデバイスのメモリタイプに基づいて、それぞれが複数の信号セットのうち一の異なる信号セットに対応する複数のインターフェースモードのうち第1のインターフェースモードを設定する第2のHWインターフェースとを備える。当該デバイスはさらに、第1のHWインターフェースに結合されている電圧レギュレータ(VR)であって、メモリタイプに基づいて、それぞれが複数のメモリデバイスのうち一の異なるメモリデバイスに対応する複数のVRモードのうち第1のVRモードにプログラミングされ、第1のVRモードに基づき第1のHWインターフェースに1または複数の電圧を供給するVRと、PCBの内部または上部に配設されているインターコネクトであって、xが複数の信号セットを含むスーパーセットの信号総数に等しい整数であるとして、それぞれが第1のHWインターフェースのそれぞれの入出力コンタクト(I/Oコンタクト)を第2のHWインターフェースのそれぞれのI/Oコンタクトに結合しているx個の信号ラインを有するインターコネクトとを備える。
【0063】
一実施形態において、複数の信号セットはそれぞれ、複数のメモリ規格のうちの一の異なるメモリ規格によって特定されている。別の実施形態において、複数のメモリ規格は、1または複数のデュアルデータレートメモリ規格を含む。別の実施形態において、1または複数のデュアルデータレートメモリ規格は、DDR3規格またはDDR4規格を含む。別の実施形態において、1または複数のデュアルデータレートメモリ規格は、低電力デュアルデータレートメモリ規格を含む。別の実施形態において、1または複数のデュアルデータレートメモリ規格は、LPDDR3規格またはLPDDR4規格を含む。
【0064】
別の実施形態において、当該デバイスは、PCBの内部または上部に配設されている検出ロジックをさらに備え、検出ロジックは、メモリデバイスの第1のHWインターフェースへの接続性を示す信号を生成してプロセッサデバイスに送信する。別の実施形態において、検出ロジックは、シリアルプレゼンスディテクト規格に基づいている。別の実施形態において、ステートマシンロジックは、メモリデバイスの第1のHWインターフェースへの接続性を示す信号に応じて、メモリデバイスのメモリタイプを特定する。別の実施形態において、ステートマシンロジックは、プロセッサデバイスのステートマシン回路を有する。別の実施形態において、プロセッサデバイスは、ステートマシンロジックを含むベーシック・インプット/アウトプット・システム(BIOS)プロセスを実行する。別の実施形態において、第1のHWインターフェースは機械式コネクタを含む。別の実施形態において、第2のHWインターフェースはパッドアレイを含む。別の実施形態において、複数のメモリデバイスは、1または複数のデュアルインラインメモリモジュールを含む。
【0065】
別の実施例において、システムは、プリント配線基板(PCB)と、PCBの内部または上部に配設されている第1のハードウェアインターフェース(第1のHWインターフェース)であって、それぞれが複数の信号セットのうち一の異なる信号セットに対応する複数のメモリデバイスのいずれかに結合する第1のHWインターフェースと、PCBの内部または上部に配設されている第2のHWインターフェースと、第2のHWインターフェースを介してPCBに結合されているプロセッサデバイスであって、第1のHWインターフェースへのメモリデバイスの接続性を検出して、メモリデバイスのメモリタイプに基づいて、それぞれが複数の信号セットのうち一の異なる信号セットに対応する複数のインターフェースモードのうち第1のインターフェースモードを設定するプロセッサデバイスとを備える。当該システムはさらに、第1のHWインターフェースに結合されている電圧レギュレータ(VR)であって、メモリタイプに基づいて、それぞれが複数のメモリデバイスのうち一の異なるメモリデバイスに対応する複数のVRモードのうち第1のVRモードにプログラミングされ、第1のVRモードに基づき第1のHWインターフェースに1または複数の電圧を供給するVRと、PCBの内部または上部に配設されているインターコネクトであって、xが複数の信号セットを含むスーパーセットの信号総数に等しい整数であるとして、それぞれが第1のHWインターフェースのそれぞれの入出力コンタクト(I/Oコンタクト)を第2のHWインターフェースのそれぞれのI/Oコンタクトに結合しているx個の信号ラインを有するインターコネクトとを備える。
【0066】
一実施形態において、複数の信号セットはそれぞれ、複数のメモリ規格のうちの一の異なるメモリ規格によって特定されている。別の実施形態において、複数のメモリ規格は、1または複数のデュアルデータレートメモリ規格を含む。別の実施形態において、1または複数のデュアルデータレートメモリ規格は、DDR3規格またはDDR4規格を含む。別の実施形態において、1または複数のデュアルデータレートメモリ規格は、低電力デュアルデータレートメモリ規格を含む。別の実施形態において、1または複数のデュアルデータレートメモリ規格は、LPDDR3規格またはLPDDR4規格を含む。
【0067】
別の実施形態において、当該システムは、PCBの内部または上部に配設されている検出ロジックをさらに備え、検出ロジックは、メモリデバイスの第1のHWインターフェースへの接続性を示す信号を生成してプロセッサデバイスに送信する。別の実施形態において、検出ロジックは、シリアルプレゼンスディテクト規格に基づいている。別の実施形態において、ステートマシンロジックは、メモリデバイスの第1のHWインターフェースへの接続性を示す信号に応じて、メモリデバイスのメモリタイプを特定する。別の実施形態において、ステートマシンロジックは、プロセッサデバイスのステートマシン回路を有する。別の実施形態において、プロセッサデバイスは、ステートマシンロジックを含むベーシック・インプット/アウトプット・システム(BIOS)プロセスを実行する。別の実施形態において、第1のHWインターフェースは機械式コネクタを含む。別の実施形態において、第2のHWインターフェースはパッドアレイを含む。別の実施形態において、複数のメモリデバイスは、1または複数のデュアルインラインメモリモジュールを含む。
【0068】
別の実施例において、方法は、プリント配線基板(PCB)の内部または上部に配設されている第1のハードウェアインターフェースへのメモリデバイスの接続性を検出する段階と、接続性を検出することに応じて、メモリデバイスのメモリタイプを特定する段階であって、メモリタイプに基づいて、プロセッサデバイスはプロセッサデバイスの複数のインターフェースモードのうち第1のインターフェースモードを設定し、複数のインターフェースモードはそれぞれが、複数の信号セットのうちの一の異なる信号セットに対応し、プロセッサデバイスは、PCBの内部または上部に配設されている第2のハードウェアインターフェースを介してPCBに結合されている、特定する段階とを備える。当該方法はさらに、メモリタイプに基づいて、電圧レギュレータ(VR)の複数のVRモードのうち第1のVRモードをプログラミングする段階であって、複数のVRモードはそれぞれ、複数のメモリタイプのうち一の異なるメモリタイプに対応し、VRは、第1のVRモードに基づき第1のハードウェアインターフェースに1または複数の電圧を供給する、プログラミングする段階と、1または複数の電圧に基づきメモリデバイスが動作している間、xが複数の信号セットを含むスーパーセットの信号総数に等しい整数であるとして、PCBの内部または上部に配設されているインターコネクトのx個の信号ラインを介して、メモリデバイスとプロセッサデバイスとの間で複数の信号をやり取りする段階とを備える。
【0069】
一実施形態において、複数の信号セットはそれぞれ、複数のメモリ規格のうちの一の異なるメモリ規格によって特定されている。別の実施形態において、複数のメモリ規格は、1または複数のデュアルデータレートメモリ規格を含む。別の実施形態において、1または複数のデュアルデータレートメモリ規格は、DDR3規格またはDDR4規格を含む。別の実施形態において、1または複数のデュアルデータレートメモリ規格は、低電力デュアルデータレートメモリ規格を含む。別の実施形態において、1または複数のデュアルデータレートメモリ規格は、LPDDR3規格またはLPDDR4規格を含む。
【0070】
別の実施形態において、当該方法は、PCBの内部または上部に配設されている検出ロジックで、メモリデバイスの第1のハードウェアインターフェースへの接続性を示す信号を生成してプロセッサデバイスに送信する段階をさらに備える。別の実施形態において、検出ロジックは、シリアルプレゼンスディテクト規格に基づいている。別の実施形態において、ステートマシンロジックは、メモリデバイスの第1のハードウェアインターフェースへの接続性を示す信号に応じて、メモリデバイスのメモリタイプを特定する。別の実施形態において、ステートマシンロジックは、プロセッサデバイスのステートマシン回路を有する。別の実施形態において、プロセッサデバイスは、ステートマシンロジックを含むベーシック・インプット/アウトプット・システム(BIOS)プロセスを実行する。別の実施形態において、第1のハードウェアインターフェースは機械式コネクタを含む。別の実施形態において、第2のハードウェアインターフェースはパッドアレイを含む。別の実施形態において、複数のメモリデバイスは、1または複数のデュアルインラインメモリモジュールを含む。
【0071】
別の実施例において、コンピュータ可読記憶媒体は、1または複数の処理ユニットによって実行されると、1または複数の処理ユニットに方法を実行させる複数の命令を格納している。当該方法は、プリント配線基板(PCB)の内部または上部に配設されている第1のハードウェアインターフェースへのメモリデバイスの接続性を検出する段階と、接続性を検出することに応じて、メモリデバイスのメモリタイプを特定する段階であって、メモリタイプに基づいて、プロセッサデバイスはプロセッサデバイスの複数のインターフェースモードのうち第1のインターフェースモードを設定し、複数のインターフェースモードはそれぞれが、複数の信号セットのうちの一の異なる信号セットに対応し、プロセッサデバイスは、PCBの内部または上部に配設されている第2のハードウェアインターフェースを介してPCBに結合されている、特定する段階とを備える。当該方法はさらに、メモリタイプに基づいて、電圧レギュレータ(VR)の複数のVRモードのうち第1のVRモードをプログラミングする段階であって、複数のVRモードはそれぞれ、複数のメモリタイプのうち一の異なるメモリタイプに対応し、VRは、第1のVRモードに基づき第1のハードウェアインターフェースに1または複数の電圧を供給する、プログラミングする段階と、1または複数の電圧に基づきメモリデバイスが動作している間、xが複数の信号セットを含むスーパーセットの信号総数に等しい整数であるとして、PCBの内部または上部に配設されているインターコネクトのx個の信号ラインを介して、メモリデバイスとプロセッサデバイスとの間で複数の信号をやり取りする段階とを備える。
【0072】
一実施形態において、複数の信号セットはそれぞれ、複数のメモリ規格のうちの一の異なるメモリ規格によって特定されている。別の実施形態において、複数のメモリ規格は、1または複数のデュアルデータレートメモリ規格を含む。別の実施形態において、1または複数のデュアルデータレートメモリ規格は、DDR3規格またはDDR4規格を含む。別の実施形態において、1または複数のデュアルデータレートメモリ規格は、低電力デュアルデータレートメモリ規格を含む。別の実施形態において、1または複数のデュアルデータレートメモリ規格は、LPDDR3規格またはLPDDR4規格を含む。
【0073】
別の実施形態において、当該方法は、PCBの内部または上部に配設されている検出ロジックで、メモリデバイスの第1のハードウェアインターフェースへの接続性を示す信号を生成してプロセッサデバイスに送信する段階をさらに備える。別の実施形態において、検出ロジックは、シリアルプレゼンスディテクト規格に基づいている。別の実施形態において、ステートマシンロジックは、メモリデバイスの第1のハードウェアインターフェースへの接続性を示す信号に応じて、メモリデバイスのメモリタイプを特定する。別の実施形態において、ステートマシンロジックは、プロセッサデバイスのステートマシン回路を有する。別の実施形態において、プロセッサデバイスは、ステートマシンロジックを含むベーシック・インプット/アウトプット・システム(BIOS)プロセスを実行する。別の実施形態において、第1のハードウェアインターフェースは機械式コネクタを含む。別の実施形態において、第2のハードウェアインターフェースはパッドアレイを含む。別の実施形態において、複数のメモリデバイスは、1または複数のデュアルインラインメモリモジュールを含む。
【0074】
本明細書ではメモリデバイスを動作させるための技術およびアーキテクチャを説明する。上記の記載では、説明を目的として、特定の実施形態を徹底的に理解していただくべく数多く具体的且つ詳細な内容を記載している。しかし、特定の実施形態は記載した具体的且つ詳細な内容を採用することなく実施し得ることが当業者には明らかであろう。また、構造およびデバイスは、説明をあいまいにしないよう、ブロック図形式で図示している。
【0075】
本明細書において「一実施形態」または「実施形態」という場合、当該実施形態に関連付けて説明している特定の特徴、構造または特性が本発明の少なくとも1つの実施形態に含まれていることを意味している。「一実施形態において」という表現は本明細書において繰り返し使用されるが、必ずしも全てが同じ実施形態を指しているものではない。
【0076】
本明細書に記載する詳細な説明の一部は、コンピュータメモリ内のデータビットに対する演算のシンボル表記およびアルゴリズムの形式で提示する。このようなアルゴリズムによる説明および表記は、コンピューティング分野の当業者が自分の研究の内容を他の当業者に最も効果的に伝えるために用いられる手段である。ここで、アルゴリズムは、一般的に、所望の結果を導き出す自己矛盾しない一連のステップであるとみなされる。ステップは、物理的な量の物理的な操作を必要とするものである。通常は、必ずしも必要ではないが、これらの量は、電気信号または磁気信号として存在し、格納、転送、結合、比較およびその他の操作が可能である。主に一般的に用いられていることを理由として、これらの信号をビット、値、要素、シンボル、文字、項、数等と呼ぶことが場合によっては利便性が高いことが分かっている。
【0077】
しかし、上記および同様の用語はすべて適切な物理量に対応付けられるべきであり、単にこれらの量に付与された便利な名称に過ぎないことに留意されたい。本明細書の記載内容から明らかなように、特に明記されていない限り、明細書全体にわたって「プロセッシング(processing)」または「コンピューティング(computing)」または「算出(calculating)」または「決定(determining)」または「表示(displaying)」等の用語を利用して説明している場合、コンピュータシステムのレジスタおよびメモリにおける物理(電子)量として表されるデータを操作して、コンピュータシステムのメモリまたはレジスタ、または、情報を格納、送信または表示するその他の同様のデバイスにおいて同様に物理量として表される他のデータに変換するコンピュータシステムまたは同様の電子コンピューティングデバイスの動作およびプロセスまたは同様と考えられる。
【0078】
特定の実施形態はさらに、本明細書で説明する処理を実行する装置に関連する。当該装置は、必要な目的に応じて特別に構築されているとしてもよいし、または、汎用コンピュータを含み、当該コンピュータに格納されているコンピュータプログラムによって選択的にアクティブ化または再設定されるとしてもよい。そのようなコンピュータプログラムは、これらに限定されないが、フロッピー(登録商標)ディスク、光ディスク、CD−ROMおよび光磁気ディスク等の任意の種類のディスク、リードオンリーメモリ(ROM)、ダイナミックRAM(DRAM)等のランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気カードまたは光カード、または、電子命令を格納するのに適しておりコンピュータシステムバスに結合される任意の種類の媒体等のコンピュータ可読記憶媒体に格納されているとしてもよい。
【0079】
本明細書で提示するアルゴリズムおよびディスプレイは、任意の特定のコンピュータまたはその他の装置に本質的に関連するものではない。さまざまな汎用システムが本明細書に記載の教示内容にしたがったプログラムと共に利用されるとしてよく、または、必要な方法ステップを実行するべく特別な用途により限定した装置を構築する方が便利と判明する場合もあるとしてよい。さまざまなこのようなシステムについて必要な構造は、本明細書の記載から明らかである。さらに、特定の実施形態の説明は、任意の特定のプログラミング言語に基づいたものではない。さまざまなプログラミング言語を用いて本明細書に記載した実施形態の教示内容を実装し得ると考えられたい。
【0080】
本明細書に記載した内容に加えて、開示した実施形態およびそれらの実施例については、範囲から逸脱することなく、さまざまな変形例が実現されるとしてよい。このため、本明細書の説明および例は、限定ではなく例示を目的としたものと解釈されるべきである。本発明の範囲は、以下に記載する請求項にのみ基づいて決定されるべきである。