(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-31
(45)【発行日】2024-06-10
(54)【発明の名称】計算機能を備えたメモリモジュール
(51)【国際特許分類】
G06F 13/16 20060101AFI20240603BHJP
G06F 12/00 20060101ALI20240603BHJP
【FI】
G06F13/16 510D
G06F12/00 560F
(21)【出願番号】P 2022535425
(86)(22)【出願日】2020-12-03
(86)【国際出願番号】 US2020062980
(87)【国際公開番号】W WO2021118848
(87)【国際公開日】2021-06-17
【審査請求日】2022-08-08
(32)【優先日】2019-12-13
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】595168543
【氏名又は名称】マイクロン テクノロジー,インク.
(74)【代理人】
【識別番号】100121083
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100074099
【氏名又は名称】大菅 義之
(72)【発明者】
【氏名】ユダノフ ドミトリー
【審査官】北村 学
(56)【参考文献】
【文献】特表2015-531091(JP,A)
【文献】米国特許出願公開第2002/0194442(US,A1)
【文献】特開2015-201233(JP,A)
【文献】米国特許出願公開第2019/0182956(US,A1)
【文献】特開2003-256273(JP,A)
【文献】特開2019-185661(JP,A)
【文献】特表2013-512529(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
IPC G06F 12/00 - 12/06
G06F 13/16 - 13/18
(57)【特許請求の範囲】
【請求項1】
装置であって、
複数のメモリチップと、
グラフィックスプロセッシングユニット(GPU)、人工知能(AI)アクセラレータ、及びメモリ内処理(PIM)ユニットのうちの少なくとも1つを有する、少なくとも1つの専用コントローラと、
前記装置の入出力データを通信するように構成された少なくとも1つのインターフェースデバイス
と、
を備え、
前記少なくとも1つのインターフェースデバイスは、前記装置がインストールされているシステム内の
、少なくとも1つのプロセッサと前記装置以外のメモリモジュールとの間に配置されたバスを経由せずに、前記システムにインストールされている
前記メモリモジュールに接続され
るように構成され、
前記入出力データが、前記少なくとも1つのインターフェースデバイスによって、前記システムの
前記少なくとも1つのプロセッサをバイパスして前記
メモリモジュールに通信される
、前記装置。
【請求項2】
複数の電気接点と、
マザーボードの少なくとも1つのメモリスロットヘの挿入のために構成されたプリント回路基板(PCB)と、
を備え、
前記複数のメモリチップが、前記PCBに結合され、
前記複数の電気接点が、前記PCBの両側にあり、
前記少なくとも1つの専用コントローラが、前記PCBに結合され、
前記少なくとも1つのインターフェースデバイスが、前記PCBに結合される、
請求項1に記載の装置。
【請求項3】
前記少なくとも1つの専用コントローラが、少なくとも1つのグラフィックスプロセッシングユニット(GPU)を備える、請求項1に記載の装置。
【請求項4】
前記少なくとも1つのインターフェースデバイスが、少なくとも部分的に無線で通信する少なくとも1つのワイヤレスインターフェースデバイスを備える、請求項1に記載の装置。
【請求項5】
前記入出力データが、前記装置がインストールされている前記システムの少なくとも1つのデータバスをバイパスする、請求項1に記載の装置。
【請求項6】
前記少なくとも1つの専用コントローラが前記複数のメモリチップにアクセスしている間に、前記少なくとも1つのプロセッサが前記複数のメモリチップのデータにアクセスしようとするとき、競合を解決するように構成された少なくとも1つのアービターを備える、請求項1に記載の装置。
【請求項7】
複数のデュアルインラインメモリモジュール(DIMM)を備えるシステムであって、
前記複数のDIMMの各DIMMが、
プリント基板(PCB)であって、前記複数のDIMMとは別個である追加のPCBの少なくとも1つのメモリスロットへの挿入のために構成された前記プリント基板(PCB)と、
前記PCBに結合された複数のメモリチップと、
前記PCBの両側にある複数の電気接点と、
前記PCBに結合された少なくとも1つの専用コントローラと、
前記DIMMの入出力データを通信するように構成された少なくとも1つのインターフェースデバイスと、
を備え、
前記入出力データが、前記システムがインストールされているコンピューティングデバイスの少なくとも1つのプロセッサをバイパスする、
前記システム。
【請求項8】
前記少なくとも1つのインターフェースデバイスが、前記入出力データを前記複数のDIMMのうちの少なくとも1つの他のDIMMに通信するように構成される、請求項
7に記載のシステム。
【請求項9】
前記複数のDIMMとは別個である少なくとも1つの外部コントローラであって、
前記複数のDIMMの前記専用コントローラによる計算を調整し、
前記複数のDIMMの前記インターフェースデバイスによる通信を調整する
ように構成された前記少なくとも1つの外部コントローラと、
前記追加のPCBと、
を備え、
前記追加のPCBが、前記複数のDIMMとは別個であり、前記複数のDIMMを受け入れるように構成された複数のメモリスロットを備え、
前記少なくとも1つの外部コントローラが前記追加のPCBに結合され、前記追加のPCBがマザーボードであり、前記少なくとも1つの外部コントローラが少なくとも1つの中央処理装置(CPU)を備える、請求項
7に記載のシステム。
【請求項10】
前記複数のDIMMのうちの少なくとも1つのDIMMの前記少なくとも1つの専用コントローラが、少なくとも1つのグラフィックスプロセッシングユニット(GPU)を備える、請求項
7に記載のシステム。
【請求項11】
前記複数のDIMMのうちの少なくとも1つのDIMMの前記少なくとも1つのインターフェースデバイスが、チップ内光相互接続を備える、請求項
7に記載のシステム。
【請求項12】
前記複数のDIMMの各DIMMについて、前記DIMMの前記少なくとも1つのインターフェースデバイスが、前記少なくとも1つの専用コントローラの入力データを受信し、前記少なくとも1つの専用コントローラの出力データを、前記システムがインストールされている前記コンピューティングデバイスの前記少なくとも1つのプロセッサをバイパスする1つまたは複数の無線通信リンクを介して1つまたは複数のユーザーインターフェースに通信するように構成される、請求項
11に記載のシステム。
【請求項13】
メモリモジュールであって、
複数のメモリチップと、
グラフィックスプロセッシングユニット(GPU)、人工知能(AI)アクセラレータ、及びメモリ内処理(PIM)ユニットのうちの少なくとも1つを有する、少なくとも1つの専用コントローラと、
前記メモリモジュールの入出力データを通信するように構成された少なくとも1つのインターフェースデバイス
と、
を備え、
前記少なくとも1つのインターフェースデバイスは、前記メモリモジュールがインストールされているコンピューティングデバイス内
における少なくとも1つのプロセッサと前記メモリモジュール以外のデバイスとの間に配置されたバスを経由せずに、前記コンピューティングデバイスにインストールされている
前記デバイスに接続され
るように構成され、
前記入出力データが、前記少なくとも1つのインターフェースデバイスによって、前記コンピューティングデバイスの
前記少なくとも1つのプロセッサをバイパスして前記
デバイスに通信される
、前記メモリモジュール。
【請求項14】
前記少なくとも1つのインターフェースデバイスが、1つまたは複数の通信ネットワークを介して前記少なくとも1つの専用コントローラの入出力データを通信するように構成されたネットワークインターフェースデバイスである、請求項
13に記載のメモリモジュール。
【請求項15】
前記少なくとも1つの専用コントローラが、少なくとも1つのグラフィックスプロセッシングユニット(GPU)を備える、請求項
13に記載のメモリモジュール。
【請求項16】
前記少なくとも1つの専用コントローラが、少なくとも1つの人工知能(AI)アクセラレータを備える、請求項
13に記載のメモリモジュール。
【請求項17】
前記少なくとも1つの専用コントローラが、少なくとも1つのメモリ内処理(PIM)ユニットを備える、請求項
13に記載のメモリモジュール。
【請求項18】
前記少なくとも1つのインターフェースデバイスが、1つまたは複数の無線通信ネットワークを介して少なくとも部分的には無線で通信するように構成された少なくとも1つのワイヤレスインターフェースデバイスを備え、前記1つまたは複数の無線通信ネットワークが、前記メモリモジュールがインストールされている前記コンピューティングデバイスの少なくとも1つのデータバスをバイパスする、請求項
13に記載のメモリモジュール。
【請求項19】
前記少なくとも1つの専用コントローラが前記メモリモジュールの前記複数のメモリチップにアクセスしている間に、前記少なくとも1つのプロセッサが前記複数のメモリチップのデータにアクセスしようとするとき、競合を解決するように構成された少なくとも1つのアービターを備える、請求項
13に記載のメモリモジュール。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本出願は、2019年12月13日に出願され、「MEMORY MODULE WITH COMPUTATION CAPABILITY」と題され、その開示全体が参照により本明細書に組み込まれる米国特許出願第16/713,989号に対する優先権を主張する。
【0002】
[技術分野]
本明細書に開示される少なくともいくつかの実施形態は、計算能力を備えたメモリモジュールに関する。そして、本明細書に開示される少なくともいくつかの実施形態は、複数のそのようなメモリモジュールを有するシステムに関する。
【背景技術】
【0003】
一般に、コンピュータハードウェアコンポーネントは、プリント基板(PCB)に取り付けることができる。また、コンピュータハードウェアコンポーネントは、集積回路に統合することができる。そして、そのような集積回路は、PCBに取り付けることができる。PCBは、導電性トラック、導電性パッド、及び他の特徴を使用して、電子部品を機械的に支持し、電気的に接続することができる。
【0004】
メモリモジュールは、複数のメモリコンポーネントがPCBに取り付けられたPCBを含むことができる。そのようなメモリモジュールの例は、シングルインラインメモリモジュール(SIMM)及びデュアルインラインメモリモジュール(DIMM)を含む。シングルインラインメモリモジュール(SIMM)は、ランダムアクセスメモリを含むメモリモジュールのタイプである。SIMMは、SIMM上の接点がモジュールの両側で冗長であるという点で、デュアルインラインメモリモジュール(DIMM)とは異なる。これは、DIMMでは当てはまらない。DIMMは、モジュールの両側に別々の電気接点を有する。もう1つの違いは、SIMMは通常32ビットのデータパスを有し、一方、DIMMは、通常64ビットのデータパスを有する点である。DIMMは、一般的に、1つまたは複数のDIMMを含むほど十分に大きい現在のコンピュータで使用されており、DIMMは、複数のダイナミックランダムアクセスメモリ(DRAM)集積回路を含むことができる。ラップトップコンピュータなどのより小型のコンピュータの場合、多くの場合、スモールアウトラインデュアルインラインメモリモジュール(SO-DIMM)が使用される。
【0005】
また、メモリコンポーネントは、システムオンチップ(SoC)に統合することができる。SoCは、コンピュータコンポーネントをシングルチップに集積する集積回路(IC)である。SoCにおける一般的なコンピュータコンポーネントは、中央処理装置(CPU)、メモリ、入出力ポート、及びセカンダリストレージを含む。SoCは、そのすべてのコンポーネントを単一の基板またはマイクロチップ上に含むことができ、一部のチップは25セント硬貨よりも小さい場合がある。SoCは、様々な信号処理機能を有することができ、グラフィックスプロセッシングユニット(GPU)など、専用のプロセッサまたはコプロセッサを含むことができる。密接に統合されることにより、SoCは、同等の機能を有する従来のマルチチップシステムよりも電力の消費をはるかに少なくすることができる。これにより、SoCは、モバイルコンピューティングデバイス(スマートフォン及びタブレット内でなどの)の統合に有益になる。また、SoCは、組み込みシステム及びモノのインターネット(特にスマートデバイスが小さい場合)に有用である場合がある。
【0006】
本開示は、以下に示す詳細な説明及び本開示の様々な実施形態の添付図面から、より十分に理解される。
【図面の簡単な説明】
【0007】
【
図1】本開示のいくつかの実施形態による、例示的なメモリモジュールを示す。
【
図2】本開示のいくつかの実施形態による、例示的なメモリモジュールを示す。
【
図3】本開示のいくつかの実施形態による、例示的なメモリモジュールシステムを示す。
【
図4】本開示のいくつかの実施形態による、例示的なメモリモジュールシステムを示す。
【
図5】本開示のいくつかの実施形態による、コンピューティングデバイスを含む例示的なネットワーク化されたシステムを示す。
【発明を実施するための形態】
【0008】
本明細書に開示される少なくともいくつかの実施形態は、計算能力を備えたメモリモジュールを含む。そして、本明細書に開示される少なくともいくつかの実施形態は、複数のそのようなメモリモジュールを有するシステムを含む。より具体的には、本明細書に開示される少なくともいくつかの実施形態は、複数のメモリチップを有するメモリモジュール、少なくとも1つのコントローラ(例えば、中央処理装置または専用コントローラ)、及びメモリモジュールの入出力データを通信するように構成された少なくとも1つのインターフェースデバイスを含む。入出力データは、メモリモジュールがインストールされているコンピューティングデバイスの少なくとも1つのプロセッサ(例えば、中央処理装置)をバイパスする。そして、少なくとも1つのインターフェースデバイスは、コンピューティングデバイスの少なくとも1つの他のメモリモジュールに入出力データを通信するように構成することができる。また、メモリモジュールは、メモリモジュールシステムの複数のメモリモジュールの1つのモジュールである場合がある。
【0009】
いくつかの実施形態では、メモリモジュールは、DIMM、SO-DIMM、レジスタードDIMM(RDIMM)、ミニRDIMM、ソケット付きメモリスタック、またはメモリ用のパッケージ上のソケット付きシステム、もしくは他のタイプのパッケージオンパッケージ(PoP)であるか、またはそれらを含む場合がある。そして、いくつかの実施形態では、メモリモジュールは、GPU、人工知能(AI)アクセラレータ、及び/またはメモリ内処理(PIM)ユニットなどの専用チップを含むように構成することができる。また、いくつかの実施形態では、メモリモジュールは、プロセッサとメモリモジュールとの間のメモリバスを経由することなく、有線接続、無線接続、またはその組み合わせを介して周辺機器(例えば、ディスプレイまたは他のタイプのユーザーインターフェース)に結果を出力することができる。例えば、いくつかの実施形態では、メモリモジュールは、メモリモジュールとメモリモジュールをホストするコンピューティングデバイスのメインプロセッサとの間のメモリバスを経由することなく、有線接続または無線接続を介して周辺機器に結果を出力することができる。本明細書に開示されるそのようなメモリモジュール及び他のメモリモジュールは、グラフィックスパイプラインの処理(例えば、ジオメトリ、投影、照明、クリッピング、ラスタ化、陰影付け、画面ストリーミングなどのためのデータ処理)を高速化することができる。また、互いと通信する複数のそのようなメモリモジュールを有するシステムは、グラフィックスパイプラインの処理をさらに高速化することができる。
【0010】
図1及び
図2は、本開示のいくつかの実施形態による、それぞれ例示的なメモリモジュール102及び202を示す。メモリモジュール102または202のどちらかは、装置及び/またはシステムであるか、それを含むか、またはその一部である場合がある。
【0011】
図1は、複数のメモリチップ(例えば、メモリチップ104a、104b、及び104cを参照)を有するメモリモジュール102を示す。メモリモジュール102はまた、少なくとも1つのコントローラ(例えば、コントローラ106a及び106bを参照)を有する。示されるように、メモリモジュール102の異なる実施形態は、1つのコントローラ(例えば、コントローラ106a)、2つのコントローラ(例えば、コントローラ106a及び106b)、または2つより多いコントローラを有する場合がある。破線のボックスが任意選択のコンポーネントを表すことを理解されたい。また、メモリモジュール102の実施形態は、2つのメモリチップまたは2つより多いメモリチップを有する場合があることも理解されたい。
【0012】
メモリモジュールのメモリなどの本明細書に説明されるメモリは、様々なタイプのメモリを含むことができる。例えば、そのようなメモリは、フラッシュメモリセルを有するフラッシュメモリを含むことができる。また、例えば、そのようなメモリは、DRAMセルを含むダイナミックランダムアクセスメモリ(DRAM)を含むことができる。また、例えば、そのようなメモリはまた、NVRAMセルを含む不揮発性ランダムアクセスメモリ(NVRAM)を含むことができる。NVRAMセルは、3D XPointメモリセルを含むことができる。
【0013】
メモリモジュール102はまた、少なくとも1つのインターフェースデバイス(例えば、インターフェースデバイス108a及び108bを参照)を有して示されている。示されるように、メモリモジュール102の異なる実施形態は、1つのインターフェースデバイス(例えば、インターフェースデバイス108a)、2つのインターフェースデバイス(例えば、インターフェースデバイス108a及び108b)、または2つより多いインターフェースデバイスを有することができる。そして、上述のように、破線のボックスが任意選択のコンポーネントを表すことを理解されたい。少なくとも1つのインターフェースデバイス(例えば、インターフェースデバイス108a及び108bを参照)は、メモリモジュール102の入出力データを通信するように構成することができる。入出力データは、メモリモジュール102がインストールされているシステムのプロセッサ(例えば、メインプロセッサ)をバイパスすることができる(例えば、メモリモジュール102がインストールされているシステムの他のデバイス114に接続されており、接続118a及び118bを介して、メモリモジュールがインストールされているシステムの1つまたは複数のプロセッサ112をバイパスするインターフェース108a及び108bを参照)。いくつかの実施形態では、
図1に示すように、入出力データは、メモリモジュール102がインストールされているシステムのデータバス(メインデータバスなど)をバイパスする(例えば、メモリモジュールがインストールされているシステムの他のデバイス114に接続されており、接続118a及び118bを介して、メモリモジュールがインストールされているシステムの1つまたは複数のバス116をバイパスするインターフェース108a及び108bを参照)。破線の接続が任意選択の接続を表すことを理解されたい。
【0014】
メモリモジュール102はまた、複数のメモリチップ(例えば、メモリチップ104a、104b、及び104cを参照)、コントローラ(複数可)(例えば、コントローラ106a及び106bを参照)、及びインターフェースデバイス(複数可)(例えば、インターフェースデバイス108a及び108bを参照)を接続するバス110(多重バスを含むことができる)を有して示されている。バス110は、メモリモジュールがインストールされているシステムのバスの一部である場合があり(例えば、バス116を参照)、バスはメモリモジュール102を、それがインストールされているシステムの残りに接続する。メモリモジュールを1つまたは複数のバス116及びシステムの残りの部分に接続するバス110の破線部分によって示されるように、バス110は、いくつかの実施形態ではバス116とは別個であってよく、他の実施形態では1つまたは複数のバス116に接続されてよい。破線の接続が任意選択の接続を表すことを理解されたい。メモリモジュール102のコントローラの1つまたは複数(例えば、コントローラ106a及び106bを参照)は、バス110、及び1つまたは複数のバス116をバイパスする接続(例えば、接続118a及び118bを参照)を介して通信されるデータを調停することができる。
【0015】
本明細書で言及されるインターフェースデバイス及び他のインターフェースデバイスは、1つまたは複数のネットワークインターフェースデバイス、1つまたは複数のリンク、1つまたは複数のバス、1つまたは複数のポート、1つまたは複数のピアツーピアリンク、またはそれらの任意の組み合わせを含むことができる。
【0016】
いくつかの実施形態では、メモリモジュール102は、グローバル共有コンテキストを実装することができる。一般に、グローバル共有コンテキストは、それらのインターフェースデバイスを介して互いと通信するメモリモジュール102または202の複数のインスタンスを含む。大量のメモリが有用であり、メモリに近接するデータ処理によってグラフィック処理を改善することができるので、グローバル共有コンテキストは、図形処理及びグラフィックスアプリケーションにとって有益である可能性がある。そのような実施形態及び他の実施形態では、インターフェースデバイス(複数可)(例えば、インターフェースデバイス108a及び108bを参照)は、通信するメモリモジュールがインストールされているシステムにインストールされた他のメモリモジュールの少なくとも1つのインスタンスに入出力データを通信するように構成することができる。
【0017】
いくつかの実施形態では、本明細書に説明されるメモリモジュール102または他のメモリモジュール、本明細書に説明されるコントローラ106aまたは他のコントローラ、本明細書に説明されるインターフェースデバイス108aまたは他のインターフェースデバイス、本明細書に説明されるメモリチップ104a、104b、及び104cもしくは他のメモリチップ、またはそれらの任意の組み合わせは、システムオンチップ(SoC)、介在チップレットシステムなどのシステムオンパッケージ(SoP)、または異種ダイスタックなどの一部である場合がある。これらの実施形態のすべては、互いと及びシステムの残りと結合するためのPCBを必ずしも含まない密接に統合されたIPブロック及びチップを表す。SoCを含むまたはその一部である実施形態、または他の実施形態は、1つまたは複数のGPU、または1つまたは複数の他のタイプの特殊プロセッサ、及び/または1つまたは複数のPIMユニットを含むことができる。SoCを含むまたはその一部である実施形態、または他の実施形態は、メモリコントローラ、ディスプレイシンク(例えば、HDMIまたはDisplayPort)、ワイヤレスインターフェースもしくはネットワーク用の無線機、AIエンジンもしくはアクセラレータ、神経形態学的プロセッサ、スケーラ型プロセッサ、ベクトル型プロセッサ、CPUコアなどを含むことができるか、またはそれらに接続されるプロセッサを含むことができる。
【0018】
図1に示していないが、メモリモジュール102はまた、複数の電気接点を含むことができる。メモリモジュール102はまた、マザーボードの少なくとも1つのメモリスロットへの挿入のために構成されたPCBを含むことができる。そのような実施形態では、複数のメモリチップ(例えば、メモリチップ104a、104b、及び104cを参照)は、PCBに結合することができ、複数の電気接点は、PCBの両側にある場合がある。また、コントローラ(複数可)(例えば、コントローラ106a及び106bを参照)は、PCBに結合することができ、インターフェースデバイス(複数可)(例えば、インターフェースデバイス108a及び108bを参照)は、PCBに結合することができる。
【0019】
いくつかの実施形態では、コントローラ(複数可)(例えば、コントローラ106a及び106bを参照)は、少なくとも1つの専用コントローラであるか、それを含むか、またはその一部である場合がある。専用コントローラ(複数可)は、GPU、AIアクセラレータ、ニューラル処理ユニット(NPU)、他のタイプの専用コントローラ、PIMユニット、またはそれらの任意の組み合わせであるか、それらを含むか、またはそれらの一部である場合がある。
【0020】
いくつかの実施形態では、インターフェースデバイス(複数可)(例えば、インターフェースデバイス108a及び108b)は、少なくとも部分的に無線で通信する少なくとも1つのワイヤレスインターフェースデバイスを含む場合もあれば、チップ間に光通信を提供するチップ内光相互接続を含む場合もある。インターフェースデバイス(複数可)の他の部分は、ワイヤを介して通信できる。インターフェースデバイスはまた、複数の機能及び/またはチャネル及びチャネルタイプを備えたハイブリッドインターフェースデバイスである場合がある。インターフェースデバイス(複数可)は、ネットワークインターフェースデバイス(ワイヤレスネットワークインターフェースデバイスなど)であるか、それを含むか、またはその一部である場合がある。インターフェースデバイス(複数可)は、少なくとも1つのワイヤレスインターフェースデバイスを含むことができ、及び/または有線リンクは、1つまたは複数の有線ネットワーク及び/またはワイヤレスネットワーク、ピアツーピアリンク、ポート、バスなどを介して通信するように構成することができる。
【0021】
いくつかの実施形態では、メモリモジュール102は、複数のメモリチップ(例えば、メモリチップ104a、104b、及び104c)を、複数の電気接点の少なくともいくつかに接続して、複数のメモリチップの入出力データを、メモリモジュール102がインストールされているコンピューティングデバイスのプロセッサ(コンピューティングデバイスのメインプロセッサなど)に通信するように構成された第1の接続部を含むことができる。メモリモジュール102はまた、複数のメモリチップをコントローラ(複数可)(例えば、コントローラ106a及び106bを参照)に接続するように構成された第2の接続部を含むことができる。メモリモジュール102はまた、コントローラ(複数可)をインターフェースデバイス(複数可)(例えば、インターフェースデバイス108a及び108bを参照)に接続するように構成された1つまたは複数の第3の接続部を含むことができ、その結果、インターフェースデバイス(複数可)は、メモリモジュール102がインストールされているコンピューティングデバイスのプロセッサをバイパスする通信経路を介して、他のデバイスからコントローラ(複数可)の入力データを受信し、他のデバイスにコントローラ(複数可)の出力データを通信する。
【0022】
図2は、メモリモジュール102にいくらか類似したメモリモジュール202を示す。しかしながら、メモリモジュール202は、少なくとも1つのアービター(例えば、アービター204a及び204bを参照)有して示されている。
図2は、
図1に示すチップと類似した複数のメモリチップ(例えば、メモリチップ104a、104b、及び104cを参照)を有するメモリモジュール202を示す。メモリモジュール202はまた、
図1に示す少なくとも1つのコントローラ(例えば、コントローラ106a及び106bを参照)に類似した少なくとも1つのコントローラを有する。
図2にも示すように、メモリモジュール102の異なる実施形態は、1つのコントローラ(例えば、コントローラ106a)、2つのコントローラ(例えば、コントローラ106a及び106b)、または2つより多いコントローラを有することができる。破線のボックスが任意選択のコンポーネントを表すことを理解されたい。また、メモリモジュール202の実施形態は、2つのメモリチップまたは2つより多いメモリチップを有する場合があることも理解されたい。
【0023】
また、
図2に示すように、メモリモジュール202は、
図1に示す少なくとも1つのインターフェースデバイス(例えば、インターフェースデバイス108a及び108bを参照)に類似した少なくとも1つのインターフェースデバイスを有して図示されている。示されるように、メモリモジュール202の異なる実施形態は、1つのインターフェースデバイス(例えば、インターフェースデバイス108a)、2つのインターフェースデバイス(例えば、インターフェースデバイス108a及び108b)、または2つより多いインターフェースデバイスを有することができる。そして、上述のように、破線のボックスが任意選択のコンポーネントを表すことを理解されたい。少なくとも1つのインターフェースデバイス(例えば、インターフェースデバイス108a及び108bを参照)は、メモリモジュール202の入出力データを通信するように構成することができる。入出力データは、メモリモジュール202がインストールされているシステムのプロセッサ(例えば、メインプロセッサ)をバイパスすることができる。いくつかの実施形態では、入出力データは、メモリモジュール202がインストールされているシステムのデータバス(メインデータバスなど)をバイパスする。
【0024】
さらに、上述のように、及び
図2に示すように、メモリモジュール202は、少なくとも1つのアービター(例えば、アービター204a及び204b)を含む。アービター(複数可)は、コントローラ(複数可)(例えば、コントローラ106a及び106bを参照)が複数のメモリチップにアクセスしている間に、ホストするコンピューティングデバイスのプロセッサが複数のメモリチップ(例えば、メモリチップ104a及び104bを参照)のデータにアクセスしようとするとき、競合を解決するように構成することができる。示されるように、メモリモジュール202の異なる実施形態は、1つのアービター(例えば、アービター204a)、2つのアービター(例えば、204a及び204b)、または2つより多いアービターを有することができる。そして、上述のように、破線のボックス及び接続が任意選択のコンポーネントを表すことを理解されたい。
【0025】
いくつかの実施形態では、アービターは、各コントローラが、これらのチップ及び外部デバイス(メインプロセッサ及びシステム)にアクセスするすべてのデバイス間でメモリチップへのアクセスを調停するための1つのアービターを有するように、コントローラの一部である場合がある。他の実施形態では、アービターは、各アービターが処理の順序でそれぞれのチップへのメモリ要求を待ち行列に入れ、メモリチップ内の同じアドレスへの要求と関連する競合を解決できるように、メモリチップの一部である場合がある。また、いくつかの実施形態では、メモリモジュール202のアービターの1つまたは複数(例えば、アービター204a及び204bを参照)は、バス110、及びメモリモジュール202がインストールされているシステムの1つまたは複数のバス116をバイパスする接続(例えば、接続118a及び118bを参照)を介して通信されるデータを調停することができる。
【0026】
上述され、
図1及び
図2に示すように、メモリモジュール102及びメモリモジュール202は、複数のメモリチップ、少なくとも1つのコントローラ(例えば、専用コントローラ)、及びメモリモジュールの入出力データを通信するように構成された少なくとも1つのインターフェースデバイスを含む。モジュールデータへの入出力データは、メモリモジュール102または202がインストールされているコンピューティングデバイスのプロセッサをバイパスする。そして、インターフェースデバイス(複数可)は、コンピューティングデバイス(
図1及び
図2に図示せず)の少なくとも1つの他のメモリモジュールに入出力データを通信するように構成することができる。いくつかの実施形態では、入出力データまたはその一部は、(メモリモジュールの状態を登録するためになど)メインプロセッサを介して通信され、メインプロセッサによって処理される。
【0027】
メモリモジュール102または202のインターフェースデバイスはそれぞれ、1つまたは複数の通信ネットワークを介してコントローラ(複数可)の入出力データを通信するように構成することができる少なくとも1つのネットワークインターフェースデバイスを含むことができる。コントローラ(複数可)は、少なくともGPU、AIアクセラレータ、NPU、他のタイプの専用コントローラ、PIMユニット、またはそれらの任意の組み合わせを含むことができる。メモリモジュール102または202のインターフェースデバイスはそれぞれ、1つまたは複数の無線通信ネットワークを介して少なくとも部分的には無線で通信するように構成された少なくとも1つのワイヤレスインターフェースデバイスを含むことができ、1つまたは複数の無線通信ネットワークは、メモリモジュール102または202がインストールされているコンピューティングデバイスのデータバス(メインデータバスなど)をバイパスすることができる。いくつかの実施形態では、無線通信は、システムにインストールされている複数のメモリモジュール間で発生する可能性がある。例えば、無線受信機は、(PC基板にインストールされたDIMMのような)近接した空間に整列している(aligned-in-space)モジュール間のデータ通信を可能にすることができる。これにより、そのような通信の速度を上げることができる。具体的には、いくつかの実施形態では、テラヘルツ無線通信(THz)は、100Gb/秒の速度を可能にすることができる。したがって、そのような例では、チップ内またはモジュール内のTHz放射は、本明細書に開示されるメモリモジュール間の大量のデータ交換をサポートすることができる。
【0028】
そして、具体的に
図2に示すように、メモリモジュール202は、メモリモジュールのコントローラ(複数可)がメモリモジュールの複数のメモリチップにアクセスしている間に、メモリモジュールを有するコンピューティングデバイスのプロセッサが複数のメモリチップのデータにアクセスしようとするとき、競合を解決するように構成された1つのアービターを含む。
【0029】
図3及び
図4は、本開示のいくつかの実施形態による、それぞれ例示的なメモリモジュール302及び402を示す。
図4は、
図3に図示するメモリモジュールシステム302にいくらか類似したメモリモジュールシステム402を示す。しかしながら、メモリモジュールシステム402は、少なくとも1つのアービター(例えば、アービター404a及び404bを参照)を有して示されている。メモリモジュールシステム402に含まれるとして示されるアービターは、メモリモジュールシステム内のコントローラがメモリチップにアクセスしている間に、メモリモジュールシステム402を有するまたはホストするコンピューティングデバイスのプロセッサがメモリモジュールシステムの1つまたは複数のメモリチップのデータにアクセスしようとするとき、競合を解決するように構成することができる。
【0030】
図示されたメモリモジュールシステム302と402の両方とも、複数のメモリモジュール(例えば、メモリモジュール304a、304b、及び304cを参照)を含む。そして、メモリモジュールのそれぞれは複数のメモリチップを含む。複数のメモリモジュール(例えば、メモリモジュール304a、304b、及び304cを参照)の各メモリモジュールは、メモリモジュール102またはメモリモジュール202である場合がある。メモリモジュールシステム302及び402はまた、それぞれ、少なくとも1つの外部コントローラ(例えば、外部コントローラ306a及び306bを参照)及び少なくとも1つのインターフェースデバイス(例えば、インターフェースデバイス308a及び308bを参照)を含む。
【0031】
メモリモジュールシステム302及び402はそれぞれ、複数のメモリモジュール(例えば、メモリモジュール304a、304b、及び304cを参照)、外部コントローラ(複数可)(例えば、外部コントローラ306a及び306bを参照)、及びインターフェースデバイス(複数可)(例えば、インターフェースデバイス308a及び308bを参照)を接続するバス310(多重バスを含むことができる)を有して示されている。
【0032】
メモリモジュールシステム302及び402はまた、それぞれ、インターフェースデバイス(例えば、インターフェースデバイス308a及び308bを参照)を有して示されている。示されるように、メモリモジュール302及び402の異なる実施形態は、1つのインターフェースデバイス(例えば、インターフェースデバイス308a)、2つのインターフェースデバイス(例えば、インターフェースデバイス308a及び308b)、または2つより多いインターフェースデバイスを有することができる。そして、上述のように、破線のボックスが任意選択のコンポーネントを表すことを理解されたい。インターフェースデバイス(例えば、インターフェースデバイス308a及び308bを参照)は、メモリモジュールシステム302及び402のそれぞれの入出力データを通信するように構成することができる。入出力データは、メモリモジュールシステム302及び402の一方がインストールされているそれぞれのシステムのプロセッサ(例えば、メインプロセッサ)をバイパスすることができる(例えば、メモリモジュールシステム302及び402の一方がインストールされているシステムの他のデバイス314に接続されており、接続318a及び318bを介して、システムのプロセッサ312をバイパスするインターフェース308a及び308bを参照)。いくつかの実施形態では、
図3に示すように、入出力データは、メモリモジュールシステム302及び402の一方がインストールされているシステムのデータバス(メインデータバスなど)をバイパスする(システムの他のデバイス314に接続されており、接続318a及び318bを介して、システムのバス316(多重バスを含むことができる)をバイパスするインターフェース308a及び308bを参照)。破線の接続が任意選択の接続を表すことを理解されたい。
【0033】
また、バス310は、メモリモジュールシステム302及び402の一方がインストールされているシステムのバス(例えば、バス316を参照)の一部である場合があり、バスは、メモリモジュールシステム302及び402の一方を、それがインストールされているシステムの残りに接続する。メモリモジュールシステムをバス316及びシステムの残りの部分に接続するバス310の破線部分によって示されるように、バス310は、いくつかの実施形態ではバス316とは別個であってよく、他の実施形態ではバス316に接続されてよい。破線の接続が任意選択の接続を表すことを理解されたい。メモリモジュールシステム302及び402のコントローラの1つまたは複数(例えば、コントローラ306a及び306bを参照)は、バス310、及びバス316をバイパスする接続(例えば、接続318a及び318bを参照)を介して通信されるデータを調停することができる。
【0034】
示されるように、外部コントローラ(複数可)(例えば、外部コントローラ306a及び306bを参照)は、メモリモジュールシステム302及び402のそれぞれの複数のメモリモジュール(例えば、メモリモジュール304a、304b、及び304cを参照)とは別個である。メモリモジュールシステム302及び402のいくつかの実施形態では、少なくとも1つの外部コントローラは、複数のメモリモジュールのコントローラによる計算を調整するように構成することができる(例えば、コントローラ106a及び106bならびにメモリモジュール102、202、及び304a~304cを参照)。また、外部コントローラ(複数可)は、複数のメモリモジュールのインターフェースデバイス(例えば、インターフェースデバイス108a及び108b、ならびにメモリモジュール102、202、及び304a~304cを参照)による通信を調整するように構成することができる。
【0035】
また、示されるように、インターフェースデバイス(例えば、インターフェースデバイス308a及び308bを参照)は、メモリモジュールシステム302及402のそれぞれの複数のメモリモジュール(例えば、メモリモジュール304a、304b、及び304c)とは別個である場合がある。メモリモジュールシステム302及び402のインターフェースデバイス(例えば、インターフェースデバイス308a及び308bを参照)はそれぞれ、少なくとも部分的に無線で通信するワイヤレスインターフェースデバイスを含む場合もあれば、チップ間に光通信を提供するチップ内光相互接続を含む場合もある。メモリモジュールシステム302及び402のインターフェースデバイスの他の部分は、ワイヤを介して通信することができる。メモリモジュールシステム302及び402のインターフェースデバイスはまた、それぞれ、複数の機能及び/またはチャネル及びチャネルタイプを備えたハイブリッドインターフェースデバイスである場合がある。メモリモジュールシステム302及び402のインターフェースデバイスは、それぞれネットワークインターフェースデバイス(ワイヤレスネットワークインターフェースデバイスなど)であるか、それを含むか、またはその一部である場合がある。メモリモジュールシステム302及び402のインターフェースデバイスはそれぞれ、ワイヤレスインターフェースデバイスを含むことができ、及び/または有線リンクは、1つまたは複数の有線ネットワーク及び/またはワイヤレスネットワーク、ピアツーピアリンク、ポート、バスなどを介して通信するように構成することができる。
【0036】
また、複数のメモリモジュール(例えば、メモリモジュール304a、304b、及び304cを参照)は、複数の異なるタイプのメモリ構造である場合がある。例えば、複数のメモリモジュールは、1つまたは複数のDIMM、1つまたは複数のSO-DIMM、1つまたは複数のRDIMM、1つまたは複数のmini-RDIMM、1つまたは複数のソケット付きメモリスタック、1つまたは複数のパッケージ上の複数のソケットシステム、またはメモリ用の他のタイプのPoP、異なるタイプのメモリ構造またはモジュールの1つまたは複数、またはそれらの任意の組み合わせ1つであるか、それらの一部であるか、またはそれらを含む場合がある。
【0037】
また、本明細書に説明される各メモリモジュールは、異なるタイプのメモリ構造である場合がある。例えば、本明細書に説明するメモリモジュールは、DIMM、SO-DIMM、RDIMM、mini-RDIMM、ソケット付きメモリスタック、またはパッケージ上のソケット付きシステムまたはメモリ用の他のタイプのPoPであるか、それらの一部であるか、またはそれらを含む場合がある。
【0038】
例えば、メモリモジュールシステム302または402のいくつかの実施形態では、システムは、複数のDIMMを含むことができる。そして、複数のDIMMの各DIMMは、複数のDIMMとは別個である追加のPCBのメモリスロットへの挿入のために構成されたPCBを含むことができる。また、複数のDIMMの各DIMMは、PCBに結合された複数のメモリチップ、PCBの両側にある複数の電気接点、PCBに結合された少なくとも1つのコントローラ(少なくとも1つの専用コントローラなど)、及びDIMMの入出力データを通信するように構成された少なくとも1つのインターフェースデバイスを含むことができる。入出力データは、DIMM及びシステムがインストールされているコンピューティングデバイスのプロセッサをバイパスする。そして、DIMMを有するシステム302及び402のそのような実施形態では、少なくとも1つのインターフェースデバイスは、入出力データを複数のDIMMの少なくとも1つの他のDIMMに通信するように構成することができる。
【0039】
また、DIMMを有するシステム302及び402のそのような実施形態では、少なくとも1つの外部コントローラは、複数のDIMMとは別個であり、複数のDIMMの専用コントローラによる計算を調整するように構成することができる。少なくとも1つの外部コントローラはまた、複数のDIMMのインターフェースデバイスによる通信を調整するように構成することができる。そして、そのような実施形態では、追加のPCBは、複数のDIMMとは別個であり、複数のDIMMを受け入れるように構成された複数のメモリスロットを含むことができる。また、外部コントローラ(複数可)は、追加のPCBに結合することができ、追加のPCBはマザーボードである場合があり、外部コントローラ(複数可)は、中央処理装置(CPU)または専用コントローラなどの他のタイプのプロセッサを含むことができる。
【0040】
いくつかの実施形態では、複数のDIMMの各DIMMの少なくとも1つのコントローラは、専用のコントローラである場合がある。例えば、コントローラは、他のタイプの専用コントローラのGPU、AIアクセラレータ、NPU、PIMユニット、またはそれらの任意の組み合わせであるか、それらの一部であるか、またはそれらを含む場合がある。
【0041】
いくつかの実施形態では、複数のDIMMのDIMMの1つのインターフェースデバイス(複数可)は、少なくとも部分的に無線で通信するように構成されたワイヤレスインターフェースデバイスを含む場合もあれば、チップ間に光通信を提供するチップ内光相互接続を含む場合もある。そして、そのような例では、複数のDIMMの各DIMMについて、DIMMのワイヤレスインターフェースデバイスは、コントローラの入力データを受信し、システムがインストールされているシステム302または402をホストするコンピューティングデバイスのプロセッサをバイパスする1つまたは複数の無線通信リンクを介して1つまたは複数のユーザーインターフェースにコントローラの出力データを通信するように構成することができる。1つまたは複数のユーザーインターフェースは、触覚UI(接触)、視覚UI(視野)、例えばGUI(グラフィックディスプレイまたはモニタを介して)、聴覚UI(音)、嗅覚UI(匂い)、平衡UI(バランス)、及び味覚UI(味)、またはそれらの任意の組み合わせを含む任意のタイプのユーザーインターフェース(UI)の1つまたは複数を含むことができる。
【0042】
いくつかの実施形態では、DIMMは、1つまたは複数の高速ワイヤレスインターフェースを介して互いと通信することができる。DIMMはインストールし、位置合わせし、互いに近くある場合があるので、DIMMの間でデータを送信するために近接した送信機を備えた高速ワイヤレスインターフェースを使用することができる。また、ワイヤは、メモリスロットに挿入されたときにDIMMをPCBに接続する側以外の各DIMMの側を介してDIMMを接続することができる。
【0043】
いくつかの実施形態は、複数のメモリチップ、複数の電気接点、及び1つまたは複数の専用コントローラを有する装置を含むことができる。そして、そのような装置は、装置が設置されているコンピューティングデバイスのメインプロセッサをバイパスする1つまたは複数の通信ネットワークを介して、専用コントローラの入出力データを通信するように構成されたネットワークインターフェースデバイスを含むことができる。
【0044】
いくつかの実施形態では、そのような装置は、マザーボードのメモリスロットへの挿入のために構成されたプリント基板(PCB)を含むことができる。また、複数のメモリチップはPCBに結合することができる。また、複数の電気接点は、PCBの両側にある場合がある。また、専用コントローラ(複数可)はPCBに結合することができる。そして、ネットワークインターフェースデバイスは、PCBに結合することができる。そのような例及び他の例では、専用コントローラ(複数可)は、グラフィックスプロセッシングユニット(GPU)、及び/またはAIアクセラレータなどの他のタイプの専用コントローラを含むことができる。そのような例及び他の例では、1つのネットワークインターフェースデバイスは、1つまたは複数のワイヤレスネットワークを介して通信するように構成されたワイヤレスネットワークインターフェースを含むことができる。そして、1つまたは複数の通信ネットワークは、装置が設置されているコンピューティングデバイスのメインデータバスをバイパスすることができる。
【0045】
装置はまた、複数のメモリチップを複数の電気接点の少なくともいくつかに接続して、複数のメモリチップの入出力データを、システムがインストールされているコンピューティングデバイスのメインプロセッサに通信するように構成された第1の接続部を含むことができる。装置はまた、複数のメモリチップを専用コントローラに接続するように構成された第2の接続部を含むことができる。そして、ネットワークインターフェースデバイスが、装置が設置されているコンピューティングデバイスのメインプロセッサをバイパスする通信経路を介して、他のデバイスから専用コントローラの入力データを受信し、他のデバイスに専用コントローラの出力データを通信するように、装置は、専用コントローラをネットワークインターフェースに接続するように構成された第3の接続部を含むことができる。
【0046】
装置はまた、専用コントローラが複数のメモリチップにアクセスしている間に、メインプロセッサが複数のメモリチップのデータにアクセスしようとするとき、競合を解決するように構成されたアービターを含むことができる。
【0047】
いくつかの実施形態は、複数のデュアルインラインメモリモジュール(DIMM)を有するシステムを含む場合がある。複数のDIMMの各DIMMは、複数のDIMMとは別個である追加のPCBのメモリスロットへの挿入のために構成されたPCBを含むことができる。複数のDIMMの各DIMMは、PCBに結合された複数のメモリチップ、及びPCBの両側にある複数の電気接点を含むことができる。複数のDIMMの各DIMMは、PCBに結合された専用コントローラを含むことができる。そして、複数のDIMMの各DIMMは、PCBに結合され、システムがインストールされているコンピューティングデバイスのメインプロセッサをバイパスする1つまたは複数の通信ネットワークを介して通信するように構成されたネットワークインターフェースデバイスを含むことができる。
【0048】
いくつかの実施形態では、そのようなシステムは、複数のDIMMとは別個であり、複数のDIMMの専用コントローラによって計算を調整するように構成された外部コントローラを含むことができる。そして、そのような実施形態では、システムは、複数のDIMMとは別個であり、複数のDIMMを受け入れるように構成された複数のメモリスロットを含む追加のPCBを有することができる。そして、外部コントローラは、追加のPCBに結合することができる。また、そのような実施形態では、追加のPCBは、マザーボードである場合があり、外部コントローラは中央処理装置(CPU)を含む場合がある。
【0049】
そのような例及び他の例では、専用コントローラは、GPU、及び/またはAIアクセラレータなどの他のタイプの専用コントローラを含むことができる。そして、そのような例及び他の例では、複数のDIMMの各DIMMのネットワークインターフェースデバイスは、ワイヤレスネットワークを介して通信するように構成されたワイヤレスネットワークインターフェースデバイスを含むことができる。
【0050】
いくつかの実施形態では、複数のDIMMの各DIMMについて、DIMMのワイヤレスネットワークインターフェースは、専用コントローラの入力データを受信し、専用コントローラの出力データを、システムがインストールされているコンピューティングデバイスのメインプロセッサをバイパスする1つまたは複数の無線通信リンクを介して1つまたは複数のディスプレイに通信するように構成される。
【0051】
いくつかの実施形態は、DIMMを含むことができる。DIMMには、マザーボードのメモリスロットヘの挿入のために構成されたプリント回路基板(PCB)を含むことができる。DIMMはまた、PCBに結合された複数のメモリチップ、及びPCBの両側にある複数の電気接点を含むことができる。DIMMはまた、PCBに結合された専用コントローラを含むことができる。DIMMはまた、PCBに結合され、DIMMがコンピューティングデバイスのメインプロセッサをバイパスする1つまたは複数の通信ネットワークを介して、専用コントローラの入出力データを通信するように構成されたネットワークインターフェースデバイスを含むことができる。そのような実施形態及び他の実施形態では、ならびにDIMMがモバイルデバイス内にある場合、DIMMはスモールアウトラインデュアルインラインメモリモジュール(SO-DIMM)である場合がある。また、そのような例及び他の例では、専用コントローラは、グラフィックスプロセッシングユニット(GPU)、及び/またはAIアクセラレータなどの他のタイプの専用コントローラを含む。そして、そのような例及び他の例では、ネットワークインターフェースデバイスは、1つまたは複数のワイヤレスネットワークを介して通信するように構成されたワイヤレスネットワークインターフェースを含むことができる。
【0052】
さらに、そのような例及び他の例では、DIMMは、複数のメモリチップを電気接点の少なくともいくつかに接続して、複数のメモリチップの入出力データを、システムがインストールされているコンピューティングデバイスのメインプロセッサに通信するように構成された第1の接続部を含むことができる。DIMMはまた、複数のメモリチップをGPUに接続するように構成された第2の接続部を含むことができる。そして、DIMMは、ネットワークインターフェースデバイスが、他のデバイスからGPUの入力データを受信し、GPUの出力データを、DIMMがインストールされているコンピューティングデバイスのメインプロセッサをバイパスする通信経路を介して他のデバイスに通信するように、GPUをネットワークインターフェースデバイスに接続するように構成された第3の接続部を含むことができる。
【0053】
さらに、そのような例及び他の例では、1つまたは複数の通信ネットワークは、DIMMがインストールされているコンピューティングデバイスのメインデータバスをバイパスする。
【0054】
そして、DIMMは、専用コントローラがDIMMの複数のメモリチップにアクセスしている間に、メインプロセッサが複数のメモリチップのデータにアクセスしようとするとき、競合を解決するように構成されたアービターを含むことができる。
【0055】
図5は、本開示のいくつかの実施形態による、少なくともコンピューティングデバイス502、522a、522b、522c、及び522dを含む例示的なネットワーク化されたシステム500を示す。また、
図5は、ネットワーク化されたシステム500の一部分である例示的なコンピューティングデバイス502の例示的な部分を示す。そして、
図5は、そのようなコンピューティングデバイスを、IoTデバイス、モバイルデバイス、通信ネットワークデバイス、及び装置(例えば、基地局530を参照)、アプライアンス(例えば、アプライアンス540を参照)、及び車両(例えば、車両550を参照)などの様々なマシン、装置、及びシステムにどのように統合できるのかを示す。
【0056】
ネットワーク化されたシステム500のコンピューティングデバイス502及び他のコンピューティングデバイス(例えば、コンピューティングデバイス522a、522b、522c、及び522dを参照)は、1つまたは複数の通信ネットワーク520に通信可能に結合することができる。コンピューティングデバイス502は、少なくともバス506、コントローラ508(CPUなど)、第1のメモリ510、ネットワークインターフェース512、データストレージシステム514、他のコンポーネント516(GPSコンポーネント、様々なタイプのユーザーインターフェースコンポーネントなどのI/Oコンポーネント、及びセンサとカメラなどのモバイルデバイスまたはコンピューティングデバイスに見られる任意のタイプのコンポーネントである場合がある)、及び第2のメモリ518(メモリモジュール102もしくは202またはメモリモジュールシステム302もしくは402を含むことができる)を含む。他のコンポーネント516は、1つまたは複数のユーザーインターフェース(例えば、GUI、聴覚ユーザーインターフェース、触覚ユーザーインターフェースなど)、ディスプレイ、異なるタイプのセンサ、触覚入出力デバイス、音声入出力デバイス、及び/または視覚入出力デバイス、追加のアプリケーション特有のメモリ、1つまたは複数の追加のコントローラ(例えば、GPU)、またはそれらの任意の組み合わせを含むことができる。バス506は、コントローラ508、第1のメモリ510、ネットワークインターフェース512、データストレージシステム514、及び他のコンポーネント516を通信可能に結合し、いくつかの実施形態ではそのようなコンポーネントを第2のメモリ512に結合することができる。上述のように、破線のボックス及び接続が任意選択のコンポーネントを表すことを理解されたい。
【0057】
コンピューティングデバイス502は、少なくともコントローラ508、第1のメモリ510及び第2のメモリ518(例えば、読み出し専用メモリ(ROM)、フラッシュメモリ、ダイナミックランダムアクセスメモリ(DRAM)(例えばシンクロナスDRAM(SDRAM)またはラムバスDRAM(RDRAM)など)、スタティックランダムアクセスメモリ(SRAM)、クロスポイントメモリまたはクロスバーメモリ、クロスバーメモリなど)、及びデータストレージシステム514を含むコンピュータシステムを含んでおり、これらはバス506(多重バスを含むことができる)を介して互いと通信する。いくつかの実施形態では、第2のメモリ518は、バス506を介して通信しない場合がある。
【0058】
別の言い方をすると、
図5は、本開示の実施形態が作用することができるコンピュータシステムを有するコンピューティングデバイス502のブロック図を含む。いくつかの実施形態では、コンピュータシステムは、実行時に、本明細書に説明される方法の少なくともいずれか1つまたは複数をマシンに実行させるための命令セットを含むことができる。そのような実施形態では、マシンを、LAN、イントラネット、エクストラネット、及び/またはインターネット(例えば、ネットワーク(複数可)520)内の他のマシンに接続する(例えば、ネットワークインターフェース512を介してネットワーク接続する)ことができる。マシンは、クライアントサーバネットワーク環境内のサーバまたはクライアントマシンの機能で、ピアツーピア(または分散)ネットワーク環境内のピアマシンとして、またはクラウドコンピューティングインフラストラクチャもしくは環境内のサーバもしくはクライアントマシンとして動作することができる。
【0059】
コントローラ508は、マイクロプロセッサ、中央処理装置などの1つまたは複数の汎用処理装置を表す。より詳細には、処理装置は、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、単一命令複数データ(SIMD)、複数命令複数データ(MIMD)、または他の命令セットを実装するプロセッサ、または命令セットの組み合わせを実装するプロセッサとすることができる。コントローラ508はまた、ASICなどの1つまたは複数の特殊用途処理装置、FPGAなどのプログラマブルロジック、デジタルシグナルプロセッサ(DSP)、ネットワークプロセッサなどとすることができる。コントローラ508は、本明細書に説明する動作及びステップを実行するための命令を実行するように構成されている。コントローラ508はさらに、1つまたは複数の通信ネットワーク(ネットワーク(複数可)520など)を介して通信するために、ネットワークインターフェース512などのネットワークインターフェースデバイスを含むことができる。
【0060】
データストレージシステム514は、本明細書に説明される方法または機能のいずれか1つまたは複数を具現化する1つまたは複数の命令セットまたはソフトウェアが格納されたマシン可読記憶媒体(コンピュータ可読媒体としても知られている)を含むことができる。データストレージシステム514は、それが、データストレージシステムに常駐する命令を少なくとも部分的に実行することができるなど、実行能力を有することができる。命令はまた、コンピュータシステムがそれを実行する間に、第1のメモリ510及び第2のメモリ518の少なくとも1つの中に、及び/またはコントローラ508内に完全にまたは少なくとも部分的に常駐することができ、第1のメモリ510及び第2のメモリ518の少なくとも1つ、ならびにコントローラ508はまた、マシン可読記憶媒体を構成する。第1のメモリ510は、コンピューティングデバイス502のメインメモリである、またはそれを含む場合がある。第1のメモリ510及び第2のメモリ518は、それが、メモリに常駐する命令を少なくとも部分的に実行することができるなど、実行能力を有することができる。
【0061】
上述のように、ネットワーク化されたシステム500はコンピューティングデバイスを含み、コンピューティングデバイスのそれぞれは、1つまたは複数のバス、コントローラ、メモリ、ネットワークインターフェース、ストレージシステム、及び他のコンポーネントを含むことができる。また、
図5に示され、本明細書に説明されるコンピューティングデバイスのそれぞれは、例えば、スマートフォン、タブレットコンピュータ、IoTデバイス、スマートテレビ、スマートウォッチ、眼鏡もしくは他のスマート家庭用電化製品、車載情報システム、ウェアラブルスマートデバイス、ゲーム機、PC、デジタルカメラ、またはそれらの任意の組み合わせなど、モバイルデバイスなどを含むか、またはそれらの一部である場合がある。示されるように、コンピューティングデバイスは、少なくとも、Bluetoothなどのローカルからデバイスへのネットワーク、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、イントラネット、4Gもしくは5Gなどのモバイルワイヤレスネットワーク、エクストラネット、インターネット、及び/またはそれらの任意の組み合わせを含むネットワーク(複数可)520に接続することができる。いくつかの実施形態では、破線接続519で示されるように、第2のメモリ518は、それが通信ネットワーク(複数可)520を介して他のデバイスと別々に通信できるように、少なくとも1つのネットワークインターフェースを含むことができる。例えば、第2のメモリ518のメモリモジュールまたはメモリモジュールシステム(例えば、メモリモジュール102及び202、ならびにメモリモジュールシステム302及び402を参照)は、そのようなコンポーネントが通信ネットワーク(複数可)520を介して他のデバイスと別々に通信できるように、独自のネットワークインターフェースを有することができる。
【0062】
本明細書に説明されるコンピューティングデバイスのそれぞれは、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、ウェブアプライアンス、サーバ、ネットワークルータ、スイッチもしくはブリッジ、または任意のマシンであって、そのマシンによって行われるアクションを指定する命令のセットを(連続してまたは他の方法で)実行できるマシンであるか、またはそれらに置き換えられる場合がある。
【0063】
また、単一のマシンが
図5に示すデバイス502について示されるが、用語「マシン」はまた、本明細書に説明される方法または動作の1つまたは複数を実行するために、個々でまたは共同で命令の1つのセット(または複数のセット)を実行するマシンの任意の集まりを含むと解釈されるものとする。そして、示されたコンピューティングデバイス及びコンピューティングシステムのそれぞれは、それぞれ、少なくともバス及び/またはマザーボード、1つまたは複数のコントローラ(1つまたは複数のCPUなど)、一時データストレージを含むことができるメインメモリ、少なくとも1つのタイプのネットワークインターフェース、永続的なデータストレージを含むことができるストレージシステム、及び/またはそれらの任意の組み合わせを含むことができる。いくつかのマルチデバイス実施形態では、あるデバイスは本明細書に説明される方法のいくつかの部分を完了し、次に、他のデバイスが本明細書に説明される方法の他のステップを続行することができるように、ネットワークを介して他のデバイスに完了の結果を送信することができる。
【0064】
メモリ、コントローラ、及びデータ記憶装置部分を、実施形態例においてそれぞれ単一部分であると示しているが、各部分は、命令を格納してその対応する動作を行うことができる単一部分または複数部分を含むと解釈すべきである。「マシン可読記憶媒体」という用語はまた、マシンによって実行するための命令のセットを記憶またはエンコードすることが可能であり、マシンに本開示の方法の任意の1つまたは複数を実行させる任意の媒体を含むと解釈されるべきである。したがって、用語「マシン可読記憶媒体」は、ソリッドステートメモリ、光媒体、及び磁気媒体を含むが、これらに限定されないと解釈されるものとする。
【0065】
先行する詳細な説明の一部は、アルゴリズム及びコンピュータメモリ内のデータビットに対する操作の記号表現の観点から提示されている。このようなアルゴリズムの説明及び表現は、その働きの趣旨を当業者に最も効果的に伝えるためにデータ処理技術において当業者が用いる方法である。アルゴリズムはここでは、及び全般的に、望ましい結果に至る自己矛盾のない動作順序であると考えられる。動作は、物理量の物理的な操作を必要とするものである。通常、必ずしもではないが、これらの量は格納し、組み合わせ、比較し、及び他の方法で操作することができる電気または磁気信号という形を取る。主に共通使用の理由により、これらの信号をビット、値、要素、シンボル、文字、用語、数などと称することが、時によって好都合であることが分かっている。
【0066】
しかし、これら及び同様の用語はすべて、適切な物理量に対応付けられるべきであり、これらの量に適用される好都合な標示にすぎないことを認識しておくべきである。本開示は、コンピュータシステムのレジスタ及びメモリ内で物理(電子的)量として表されるデータを操作し、コンピュータシステムのメモリまたはレジスタまたはそのような情報ストレージシステム内で同様に物理量として表される他のデータに変換する、コンピュータシステム、または類似した電子コンピューティングデバイスの動作及びプロセスを参照することができる。
【0067】
本開示は、本明細書における動作を実行するための装置にも関する。この装置は、使用目的に対して特別に構成することもできるし、またはコンピュータに格納されたコンピュータプログラムによって選択的にアクティブ化または再構成される汎用コンピュータを含むこともできる。このようなコンピュータプログラムは、任意のタイプのディスク、例えば、フロッピーディスク、光ディスク、CD-ROM、及び光磁気ディスク、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気もしくは光カード、または電子命令の格納に適した任意のタイプの媒体などのコンピュータ可読記憶媒体に格納することができ、それぞれコンピュータシステムバスに結合される。
【0068】
本明細書で示したアルゴリズム及びディスプレイは、何らかの特定のコンピュータまたは他の装置に本来的に関係していない。様々な汎用システムを、本明細書での教示に従ってプログラムによって用いることもできるし、または本方法を行うためにより専用の装置を構築することが好都合であることが分かる可能性もある。種々のこれらのシステムの構造は、以下の説明で述べるように現れる。加えて、本開示は何らかの特定のプログラミング言語に関して説明されていない。本明細書に説明したような本開示の教示を実施するために、種々のプログラミング言語を使用できることを理解されたい。
【0069】
本開示を、本開示に従ってプロセスを実行するようにコンピュータシステム(または他の電子装置)をプログラミングするために使用できる命令が格納されたマシン可読媒体を含むことができる、コンピュータプログラム製品またはソフトウェアとして示すことができる。マシン可読媒体は、マシン(例えば、コンピュータ)によって可読形式で情報を格納するための任意のメカニズムを含む。いくつかの実施形態では、マシン可読(例えば、コンピュータ可読)媒体は、読み取り専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリコンポーネントなどのマシン(例えば、コンピュータ)可読記憶媒体を含む。
【0070】
前述の明細書では、本開示の実施形態は、その特定の例示的な実施形態を参照して説明されてきた。以下の特許請求の範囲に述べる本開示の実施形態のより広い趣旨及び範囲から逸脱することなく、様々な変更を加えることができることが明らかである。したがって、明細書及び図面は限定的な意味ではなく例示的な意味で考慮されるべきである。