(57)【要約】      （修正有）【課題】コンピュータシステムに対する任意の動作負荷を軽減するために、メモリに対する読出し及び書込みをより効率的にする方法、装置、及びシステムを提供する。【解決手段】方法は、命令一式を自律的メモリデバイスにおいて受信すること１２０１と、命令一式をメモリデバイスにおいて実行すること１２０５と、命令一式を、命令一式に応答してメモリデバイスから取出した任意のデータと併せて、パケットを生成すること１２０７と、パケットをメモリデバイスから送信すること１２０９と、を含む。【選択図】図１２
2018139118.tif 000002
【特許請求の範囲】
【請求項１】
命令一式を自律的メモリデバイスにおいて受信することと、
前記命令一式を前記メモリデバイスにおいて実行することと、
前記命令一式を、前記命令一式に応答して前記メモリデバイスから取出した任意のデータと併せて、パケットを生成することと、
前記パケットを前記メモリデバイスから送信することと
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［優先出願］
本出願は、２０１３年１２月２日に出願された米国特許出願第１４／０９４，２７３号に対する優先権の利益を主張し、その全体が本明細書に参考により組み込まれる。
【背景技術】
【０００２】
一般にメモリデバイスは、コンピュータまたは他の電子デバイスにおける内部半導体集積回路として提供される。ランダムアクセスメモリ（ＲＡＭ）、読出専用メモリ（ＲＯＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、同期式ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、及び不揮発性メモリ（例えばフラッシュメモリ）を含む、数多くの異なる種類のメモリが存在する。
【０００３】
いくつかの不揮発性メモリデバイスを組み合わせて、コンピュータシステムにおいて機械的に作動するハードディスクドライブをエミュレートし得るソリッドステートドライブ（ＳＳＤ）を作ることが可能である。ソリッドステートドライブは、可動部品がないので、機械的ハードドライブよりもより速く、より信頼性のあるアクセスを提供可能である。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
コンピュータシステムの高性能化に少なくとも一部起因して、メモリ及びソリッドステートドライブの製造業者には、コンピュータシステムの高性能化に遅れをとらないように自社製品のメモリを高性能化するという継続的な圧力がかかり得る。コンピュータシステムに対する任意の動作負荷を軽減するために、メモリに対する読出し及び書込みをより効率的にするという一般的ニーズがある。
【課題を解決するための手段】
【０００５】
上記の課題を解決するために、本発明の方法は、命令一式を自律的メモリデバイスにおいて受信することと、前記命令一式を前記メモリデバイスにおいて実行することと、前記命令一式を、前記命令一式に応答して前記メモリデバイスから取出した任意のデータと併せて、パケットを生成することと、前記パケットを前記メモリデバイスから送信することと、を含むことを特徴とする。
【図面の簡単な説明】
【０００６】
【図１】自律的メモリ処理装置の実施形態の機能的ブロック図を例示する。
【図２】図１の実施形態による、パケットパーサの実施形態のブロック図を例示する。
【図３】図１の実施形態による、プログラムカウンタの実施形態のブロック図を例示する。
【図４】図１の実施形態による、命令メモリの実施形態のブロック図を例示する。
【図５】図１の実施形態による、デコードロジックの実施形態のブロック図を例示する。
【図６】図１の実施形態による、レジスタファイルの実施形態のブロック図を例示する。
【図７Ａ】図１の実施形態による、実行ユニットの実施形態のブロック図を例示する。
【図７Ｂ】図１の実施形態による、プログラムカウンタ実行ユニットの実施形態のブロック図を例示する。
【図８】図１の実施形態による、パーサの実施形態のブロック図を例示する。
【図９】図１の実施形態による、パケットジェネレータの実施形態のブロック図を例示する。
【図１０】図１の実施形態による、命令実行フォーマットの実施形態の図解を例示する。
【図１１】メモリシステムの実施形態のブロック図を例示する。
【図１２】自律的メモリデバイスにおける自律的メモリ処理装置の作動の実施形態のフローチャートを例示する。
【発明を実施するための形態】
【０００７】
以下の詳細説明において、本明細書の一部を形成し、例示のために特定の実施形態が示される添付図面を参照する。図面において同じ番号は、いくつかの図を通して実質的に同様の構成要素を説明する。他の実施形態が使用可能であり、そして本開示の範囲から逸脱することなく構造的、論理的、及び電気的変更を行うことが可能である。従って、以下の詳細説明は、限定的な意味で解釈されるべきではない。
【０００８】
本開示は、いかなる１つの種類のメモリにも限定されない。自律的メモリ処理装置は、任意の種類のメモリデバイス、メモリデバイス群、または半導体メモリ、光学メモリ、磁気メモリを含むメモリ技術に対応付けることが可能である。例えば、メモリは、不揮発性（例えばＮＡＮＤフラッシュ、ＮＯＲフラッシュ、相変化メモリ（ＰＣＭ））、または揮発性（例えばＤＲＡＭ、ＳＲＡＭ）を含み得る。
【０００９】
本明細書で使用される場合、ノードは、受信パケットを構文解析するパケットパーサと、ノードからネットワークへ送信されるパケットを生成するパケットジェネレータと、任意のネットワークにノードをインターフェイス接続可能なネットワークポートとを備え得る。ノードはその上、ノードの作動を制御する処理要素と、並びにデータを記憶するメモリとを備え得る。別の実施形態において、ノードは、追加機能のための追加ハードウェア及び／またはソフトウェア／ファームウェアを備え得る。自律的処理装置を有する自律的メモリデバイスは、ノードとみなされ得る。
【００１０】
図１は、自律的メモリ処理装置の実施形態の機能的ブロック図を例示する。このような装置は、メモリ１００に対応付けられ、中央処理装置（ＣＰＵ）ベースのコンピューティングシステムにおけるボトルネックメモリ帯域幅の渋滞を軽減するのに使用され得る。自律的メモリ処理装置は、自律的メモリデバイス内に配置され得る。
【００１１】
自律的メモリ処理装置は、パケットパーサ１０１と、プログラムカウンタ１０７と、命令メモリ１０５と、デコードロジック１０３と、レジスタファイル１０９と、パーサ１１５と、パケットジェネレータ１１１と、１つまたは複数の実行ユニット（ＥＵ）１１３と、ページバッファ１１７とを備え得る。図１の構成要素及び構成は、他の実施形態が他の構成要素及び他の構成を使用することができるので、例示のみを目的とする。
【００１２】
図２は、パケットパーサ１０１のブロック図を例示する。パケットパーサ１０１はネットワークに接続され、ネットワークから（例えば外部ネットワークからメモリ１００へ）のデータパケットを受け入れ得る。パケットパーサ１０１がネットワークからのパケットにおいて受信したプログラムカウント（例えば命令メモリ位置）をプログラムカウンタ１０７にロードできるように、パケットパーサ１０１はプログラムカウンタ１０７の入力にも接続され得る。プログラムカウンタ１０７が現在のプログラムカウント（例えば命令メモリ位置）をパケットパーサ１０１にロードできるように、パケットパーサ１０１はプログラムカウンタ１０７の出力にも接続され得る。パケットパーサ１０１はさらに、ネットワークからのパケットにおいて受信したデータ（例えば命令）を命令メモリ１０５及びレジスタファイル１０９へロードできるように、命令メモリ１０５及びレジスタファイル１０９の入力にも接続され得る。
【００１３】
図３は、プログラムカウンタ１０７のブロック図を例示する。例示のため、プログラムカウンタ１０７は、３２ビットカウンタとして示される。しかしながら、他の実施形態は、他のプログラムカウンタサイズを使用可能である。
【００１４】
プログラムカウンタ１０７は、パケットパーサ１０１と、１つまたは複数の実行ユニット１１３から成る部であり得るプログラムカウンタ実行ユニット（ＰＣＥＵ）１１４とからの入力を有し得る。プログラムカウンタ１０７は、命令メモリ１０５に接続された出力を有し得る。
【００１５】
プログラムカウンタ１０７は、プログラム（例えば実行可能命令）を含み得る命令メモリ１０５における特定の命令位置へアクセスするプログラムカウント値（例えば命令メモリ位置）を含み得る。プログラムカウント値は、パケットパーサ１０１により特定されパケットパーサから受信された、受信パケット内の特定のデータフィールドにより、またはプログラムカウンタ実行ユニット１１４からの計算値により、設定され得る。そしてプログラムカウンタ１０７は、プログラムカウント値（例えば３２ビットレジスタ）を命令メモリ１０５に出力し得る。
【００１６】
図４は、命令メモリ１０５のブロック図を例示する。命令メモリ１０５は、プログラム（例えば実行可能命令）を記憶するいくつかのレジスタを備え得る。パケットパーサ１０１は、命令メモリ１０５の書込ポートに接続され得る。命令メモリ１０５はパケットパーサ１０１により書込可能であり、それによってパケットパーサ１０１により特定される受信パケット内の受信命令は、当該パケットから命令メモリ１０５へロードされ得る。
【００１７】
命令メモリ１０５は、命令メモリ１０５内の特定位置にアクセスするためのアドレスを各自受入可能な２つのアドレスポートを備え得る。１つのアドレスは、プログラムカウンタ１０７から送られ得る。他方のアドレスは、パケットジェネレータ１１１から送られ得る。
【００１８】
１つの動作中に、命令メモリ１０５は、プログラムカウンタ１０７のアドレスが示す位置から、命令（例えばデータポート）を出力し得る。行う演算に関して実行ユニット１１３に指示するために、この命令は実行ユニット１１３により解読及び実行され得る。この命令は、実行ユニット１１３にオペランドを与え、並びに処理のため何のデータを実行ユニット１１３に出力するかに関してレジスタファイル１０９に指示するために、レジスタファイル１０９にインデックスを与え得る。
【００１９】
図５は、デコードロジック１０３のブロック図を例示する。デコードロジック１０３は、実行ユニットデコードロジック５０１と、パーサデコードロジック５０２と、多重分離機能５０３（例えばデマルチプレクサ）とを備え得る。
【００２０】
多重分離機能５０３への入力は、命令メモリ１０５の出力からの命令ストリームに接続され得る。命令ストリーム内の１つまたは複数の制御ビットは、命令ストリーム内の特定命令の行先（例えＥＵデコードロジック５０１、パーサデコードロジック５０２）を選択するのに使用され得る。
【００２１】
命令がＥＵデコードロジック５０１へ送られた場合、ＥＵデコードロジック５０１は、命令を実行ユニット１１３のうちの１つに送るため命令を処理し得る。命令は、何の種類の演算を行うのかに関して、並びに命令の実行中に使用するオペランドを実行ユニット１１３のうちの１つに与えるように、実行ユニット１１３のうちの１つに指示し得る。オペランドは、レジスタファイル１０９のレジスタに対し指標を付け、実行ユニット１１３のうちの１つがデータを処理できるように何のデータを出力するかに関してそのレジスタに指示し得る。
【００２２】
多重分離機能５０３はまた、命令をパーサ１１５に接続されたパーサデコードロジック５０２へ送信し得る。命令はパーサデコードロジック５０２を制御し、今度はパーサデコードロジック５０２が、処理のためにページバッファ１１７の特定セグメントからのデータを実行ユニット１１３のうちの１つへ読込むために、ページバッファ１１７のどのセグメントにアクセスするかパーサに指示する。
【００２３】
図６は、レジスタファイル１０９のブロック図を例示する。レジスタファイル１０９は、パケットパーサ１０１、パケットジェネレータ１１１、実行ユニット１１３のうちの１つまたは複数、及びメモリ読出指示からの入力を備え得る。メモリ読出指示は、パーサ１１５により生成される、メモリ動作が完了したことを示す信号であり得る。レジスタファイル１０９は、パケットジェネレータ１１１、実行ユニット１１３、及びパーサ１１５への出力を備え得る。
【００２４】
レジスタファイル１０９は、実行ユニット１１３による処理が起こっている間に変数を記憶するメモリ（例えば複数のレジスタ）を備え得る。これらの変数は、１つまたは複数の命令に応答してメモリから取得されたデータを含み得る。レジスタファイル１０９は、レジスタに初期条件を設定するためパケットパーサ１０１により書込まれ、パケットジェネレータ１１１により読出され得る。それぞれの実行ユニット１１３は、多重化機能を介してレジスタファイル１０９から引数を受信し得る。パケットジェネレータ１１１への出力は、レジスタファイル１０９のレジスタに記憶されているデータを、ネットワークへ送信するためのパケットにまとめるのに使用され得る。
【００２５】
図７Ａは、一般の実行ユニット１１３（例えば実行ユニット（０−Ｎ））の実施形態のブロック図を例示する一方、図７Ｂは、特にプログラムカウンタ実行ユニット１１４の実施形態のブロック図を例示する。ＰＣＥＵ１１４は、実行ユニット１１３群の一部とみなされ得るが、他の実行ユニット１１３とは異なる構成を有し得る。
【００２６】
特定の自律的メモリ処理装置に、特定の数の実行ユニット１１３が含まれ得る必要はない。１つの装置は単一の実行ユニット１１３を有し得る一方、別の装置は複数（例えば１００個）の実行ユニットを有し得る。
【００２７】
図７Ａは、実行ユニット１１３が４つの演算論理装置（ＡＬＵ）７０１〜７０４を備え得ることを例示する。ＡＬＵ１７０３及びＡＬＵ２７０４の出力は、多重化機能７０６に対する入力であり得る。ＡＬＵ７０３、７０４の出力のうちどちらを選ぶかは、ＣｏｍｐＡＬＵ７０２の出力により決定され得る。ＣｏｍｐＡＬＵ７０２の出力は、多重化機能７０６に対する選択信号として使用され得る。４番目のＡＬＵであるＡＬＵＯｕｔ７０１は、実行ユニット１１３により行われた演算の結果を記憶する場所をレジスタファイル１０９に指示し得る、レジスタファイル１０９に対するレジスタアドレスＲｄとしての出力を有し得る。
【００２８】
下の３つのＡＬＵ７０２〜７０４及び多重化機能７０６は、ｉｆ−ｔｈｅｎ−ｅｌｓｅ演算を行い得る。多重化機能７０６は、ＣｏｍｐＡＬＵ７０２により決定される条件の「ある条件の時」を提供し得る。従って、条件が真である場合、１つのＡＬＵ（例えばＡＬＵ１７０３）の出力がＣｏｍｐＡＬＵ７０２の出力により選択される、それ以外の場合、別のＡＬＵ（例えばＡＬＵ２７０４）の出力がＣｏｍｐＡＬＵ７０２の出力により選択される。
【００２９】
例えば、ＡＬＵ１７０３がオペランド入力のＯＰＥＲＡＮＤ１（Ｒ１）及びＯＰＥＲＡＮＤ２（Ｒ２）とコマンド入力のＯＰＥＲＡＴＯＲ１を有し、ＡＬＵ２７０４がオペランド入力のＯＰＥＲＡＮＤ３（Ｒ３）及びＯＰＥＲＡＮＤ４（Ｒ４）とコマンド入力のＯＰＥＲＡＴＯＲ２を有すると仮定する場合、ｉｆ−ｔｈｅｎ−ｅｌｓｅ文は以下のように表され得、
ｉｆ（条件）
ｔｈｅｎ
Ｏｐｅｒａｎｄ１  ＯＰＥＲＡＴＯＲ１  Ｏｐｅｒａｎｄ２
ｅｌｓｅ
Ｏｐｅｒａｎｄ３  ＯＰＥＲＡＴＯＲ２  Ｏｐｅｒａｎｄ４
ここで「Ｏｐｅｒａｎｄ１  ＯＰＥＲＡＴＯＲ１  Ｏｐｅｒａｎｄ２」はＡＬＵ１７０３により提供され、「Ｏｐｅｒａｎｄ３  ＯＰＥＲＡＴＯＲ２  Ｏｐｅｒａｎｄ４」はＡＬＵ２７０４により提供され、そして「ｉｆ（条件）」はＣｏｍｐＡＬＵ７０２及び多重化機能７０６より提供され得る。
【００３０】
図１０の命令フォーマットに関連して後述されるように、オペランドと演算子は、命令により提供され得るか、命令がどのレジスタにオペランド値が配置されているかを示し得る。例えば、ＯＰＥＲＡＮＤ１（Ｒ１）はレジスタＲ１に配置され、ＯＰＥＲＡＮＤ（Ｒ２）はレジスタＲ２に配置され、ＯＰＥＲＡＮＤ（Ｒ３）はレジスタＲ３に配置され、ＯＰＥＲＡＮＤ（Ｒ４）はレジスタＲ４に配置され得る。
【００３１】
ＡＬＵ１７０３及びＡＬＵ２７０４は、同一の演算または異なる演算を行い得る。言い換えると、ＯＰＥＲＡＴＯＲ１はＯＰＥＲＡＴＯＲ２と同じであり得る、またはＯＰＥＲＡＴＯＲ１はＯＰＥＲＡＴＯＲ２とは異なり得る。
【００３２】
ＡＬＵ Ｏｕｔ７０１は、オペランド入力Ｒ５、及びＲ６（例えばレジスタＲ５、Ｒ６）とコマンド入力ＯＰＥＲＡＴＯＲ３を有し得る。ＡＬＵＯｕｔ７０１がＲ５とＲ６の値に対しコマンドＯＰＥＲＡＴＯＲ３を行うことにより生成される結果Ｒｄは、実行ユニット１１３の結果がどこに記憶されるかを決定する。
【００３３】
ＣｏｍｐＡＬＵ７０２は、オペランド入力Ｒ７、Ｒ８（例えばレジスタＲ７、Ｒ８）とコマンド入力ＯＰＥＲＡＴＯＲ４を有し得る。前述のように、Ｒ７とＲ８の値に対しコマンドＯＰＥＲＡＴＯＲ４を行うことにより得られる結果が、多重化機能１０６の選択を決定する。
【００３４】
前述のＡＬＵ７０１〜７０４におけるコマンド（例えばＯＰＥＲＡＴＯＲ１、ＯＰＥＲＡＴＯＲ２、ＯＰＥＲＡＴＯＲ３、ＯＰＥＲＡＴＯＲ４）として使用され得る一般演算には、加算、減算、論理ＡＮＤ、論理ＯＲ、論理ＮＯＴ、論理ＮＯＲ、〜と等しい、〜以下、〜未満、〜以外、〜以上、または〜より大きいが含まれ得る。これらの演算は、他の実施形態が他の演算を使用可能であるので、例示のみを目的とする。
【００３５】
図７Ｂは、プログラムカウンタ実行ユニット（ＰＣＥＵ）１１４の構成を例示する。この構成は、実行ユニット０〜ｎ１１３と同様であり得るが、ＡＬＵＯｕｔ７０１を有さない。ＰＣＥＵ１１４はプログラムカウンタ１０７に対する新たなアドレスを特定することを専門とし、ＰＣＥＵ１１４の演算の結果を記憶する場所はプログラムカウンタ１０７であるため、ＡＬＵＯｕｔ７０１は含まれない。
【００３６】
ＰＣＥＵ１１４は、オペランド入力Ｒ９、Ｒ１０とコマンド入力ＯＰＥＲＡＴＯＲ５を有するＣｏｍｐＡＬＵ７１０を備え得る。ＡＬＵ１７１１は、オペランド入力Ｒ１１、Ｒ１２とコマンド入力ＯＰＥＲＡＴＯＲ６を含み得る。ＡＬＵ２７１２は、オペランド入力Ｒ１３、Ｒ１４とコマンド入力ＯＰＥＲＡＴＯＲ７を含み得る。
【００３７】
ＡＬＵ１７１１及びＡＬＵ２７１２の出力は、多重化機能７１４に対する入力であり得る。ＣｏｍｐＡＬＵ７１０の出力は、多重化機能７１４に対する選択信号を提供し得る。従って、前述の実行ユニット１１３の場合と同様に、ＰＣＥＵ１１４は、ＣｏｍｐＡＬＵ７１０により決定される条件の「ある条件の時」を多重化機能７１４が提供する、ｉｆ−ｔｈｅｎ−ｅｌｓｅ文を提供し得る。従って、条件が真である場合、１つのＡＬＵ（例えばＡＬＵ１７１１）の出力がＣｏｍｐＡＬＵ７１０の出力により選択される、それ以外の場合、別のＡＬＵ（例えばＡＬＵ２７１２）の出力がＣｏｍｐＡＬＵ７１０の出力により選択される。結果は、プログラムカウンタ１０７へロードされ得る。
【００３８】
前述の実行ユニット１１３の場合と同様に、ＰＣＥＵ１１４において使用される演算子及びコマンドは、命令メモリの命令からロードされ得るか、命令がどのレジスタが値を含み得るかを示し得る。
【００３９】
図８は、パーサ１１５のブロック図を例示する。パーサ１１５は、書込むアドレス並びにデータを含むメモリ書込ポートを備え得る。メモリ読出アドレスポートは、読出すアドレスをメモリに提供し、それによって読出されたデータは、メモリ読出データポートに読込まれ得る。パーサ１１５はまた、メモリ読出動作が完了すると、メモリ読出完了指示信号を出力し得る。パーサ１１５はさらに、実行ユニット１１３への出力と、レジスタファイル１０９からの入力と、及びパーサデコードロジック５０２からの設定入力とを備え得る。
【００４０】
パーサ１１５は、メモリ１００のページバッファ１１７からの直接読出し、またはページバッファ１１７への直接書込みができるように、メモリ１００への直接アクセスを有し得る。パーサ１１５は、ページバッファ１１７の全長に対しアクセス権を有するので、処理をより管理しやすいように、ページバッファ１１７をより小さいセグメント（例えば規則正しく定義されたセグメント）に細分化し得る。例えば、パーサ１１５は、ページバッファの最初の１００バイトに対し作動し、それから次の１００バイトに対し作動し、そしてページバッファ１１７全体の読出し／書込みが完了するまで、これを続け得る。これを達成するために、ページバッファ１１７のどのセグメントを読出すかを特定する、パケットパーサ１０１からのアドレスがパーサ１１５に与えられ得る。
【００４１】
パーサ１１５は、ページバッファ１１７の内容をどのように構文解析するかパーサ１１５に指示し得る設定入力をレジスタファイル１０９から受信し得る。パーサ１１５は、新たな内容がレジスタファイル１０９において利用可能であることを実行プログラムに指示するメモリ読出完了指示信号を生成し得る。
【００４２】
図９は、パケットジェネレータ１１１の実施形態のブロック図を例示する。パケットジェネレータは、命令メモリ１０５及びレジスタファイル１０９からの入力と、命令メモリ１０５及びレジスタファイル１０９への出力とを備え得る。パケットジェネレータ１１１はその上、任意の生成パケットを出力するために、ネットワークへの出力を有する。
【００４３】
パケットジェネレータ１１１は、命令メモリ１０５及びレジスタファイル１０９からデータを読出すために、命令メモリ１０５に対するアドレスと、レジスタファイル１０９に対するアドレスを生成し得る。そしてパケットジェネレータ１１１は、レジスタファイル１０９から読出されたデータ（例えば命令メモリ１０５からの命令及びコンテキスト（例えばデータ、メモリ読出しの結果、行われた演算の結果））を使用して、このデータをまとめ、ネットワーク上に送信するパケットを生成する。
【００４４】
図１０は、図１の実施形態による、命令実行フォーマットの実施形態を例示する。各命令１００１〜１００３は、実行ユニット１１３により実行されるために、命令メモリに記憶され得る。
【００４５】
命令の例示された実施形態には、４つの命令１０００〜１００３が含まれる。各命令は、実行ユニット１１３の異なるＡＬＵに対応付けられ得る。従って、実行ユニット１１３が異なる数のＡＬＵを含む場合、実行フォーマットは異なる数の命令１０００〜１００３を含み得る。以下の論述においては、図１０と図７ＡのＡＬＵの両方を参照する。
【００４６】
第１命令１０００（例えば命令Ｄ）は、実行ユニット１１３のうちの１つによる演算の結果の行先レジスタ（例えばＲｄ）を示し得る。前述のように、ＡＬＵＯｕｔ７０１は、実行ユニット１１３の結果を記憶するための行先レジスタＲｄのアドレスを生成し得る。従って、ＡＬＵＯｕｔ７０１は、レジスタＲｄを生成するために、第１命令１０００に対応付けられ得る。
【００４７】
第２命令１００１（例えば命令Ｃ）は、実行ユニット１１３により実行されるｉｆ−ｔｈｅｎ−ｅｌｓｅ文の条件を示し得る。例示された実施形態において、条件は比較値Ｖｃにより表される。前述のように、ＣｏｍｐＡＬＵ７０２は、多重化機能７０６に対する選択信号として使用される条件を生成し得る。従って、ＣｏｍｐＡＬＵ７０２は、Ｖｃが真か否かを比較するために、第２命令１００１に対応付けられ得る。
【００４８】
第３命令１００２（例えば命令Ｔ）は、実行ユニット１１３により実行されるｉｆ−ｔｈｅｎ−ｅｌｓｅ文の「ｔｈｅｎ」（真の場合）の結果を示し得る。例示された実施形態において、「ｔｈｅｎ」の結果はＶｔ、すなわち真の場合の値により表される。前述のように、ＡＬＵ１７０３は、「ｔｈｅｎ」の結果を生成し得る。従って、ＡＬＵ１７０３は、Ｖｔである「ｔｈｅｎ」の結果のための第３命令１００２に対応付けられ得る。
【００４９】
第４命令１００３（例えば命令Ｆ）は、実行ユニット１１３により実行されるｉｆ−ｔｈｅｎ−ｅｌｓｅ文の「ｅｌｓｅ」（偽の場合）の結果を示し得る。例示された実施形態において、ｅｌｓｅの結果はＶｆ、すなわち偽の場合の値により表される。前述のように、ＡＬＵ２７０４は、「ｅｌｓｅ」の結果を生成し得る。従って、ＡＬＵ２７０４は、「ｅｌｓｅ」の結果Ｖｆのため、第４命令１００３に対応付けられ得る。
【００５０】
条件のＶｃ、ｔｈｅｎの結果のＶｔ、ｅｌｓｅの結果のＶｆ、及び結果レジスタのＲｄを使用すると、ｉｆ−ｔｈｅｎ−ｅｌｓｅ文は以下のように表され得る。
ｉｆ（Ｖｃ＝＝ＴＲＵＥ）
ｔｈｅｎ
Ｒｅｇ［Ｒｄ］：＝Ｖｔ
ｅｌｓｅ
Ｒｅｇ［Ｒｄ］：＝Ｖｆ
【００５１】
図１１は、図１の自律的メモリ処理装置１３０を組み込み得るメモリシステムの実施形態のブロック図を例示する。メモリシステムは、ネットワーク１１２０を介して１つまたは複数のメモリデバイス（例えばＳＳＤ）１１０１、１１０２と通信し得るコントローラ１１００（例えばＣＰＵ）を備え得る。ネットワーク１１２０は、有線バス、または無線通信（例えばＷｉＦｉ）であり得る。
【００５２】
メモリデバイス１１０１は、メモリデバイス１１０１のストレージ部を構成するローカルメモリ１００（例えばＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、ＮＡＮＤフラッシュ、ＮＯＲフラッシュ、相変化メモリ（ＰＣＭ））と、並びに図１の自律的メモリ処理装置１３０とを備え得る。自律的メモリ処理装置１３０は、メモリ１００に相対的に近い所（例えば同じダイ、同じダイスタック、同じメモリモジュール）に配置され得る。例えば、自律的メモリ処理装置１３０は、メモリ１００のバンクレベルの回路に含まれ得る。各バンクが異なる自律的メモリ処理装置１３０を含み得、そのために１つのメモリチップは、ほぼ同時に作動する自律的メモリ処理装置１３０の複数のインスタンスを有し得る。本明細書において使用される場合、ローカルメモリ１００は、ネットワークを介さずに自律的メモリ処理装置１３０に接続されるメモリであり得る。
【００５３】
図１１のシステムのそれぞれのデバイスは、ノードとみなされ得る。各ノードは他のノードとネットワーク１１２０を介して通信し得る。それぞれのノードは実質的に同様であり得る、またはノードのうちの１つまたは複数は異なる構成を有し得る。例えば、第１メモリデバイス１１０１は、プログラムカウンタ実行ユニット１１４に加えて単一実行ユニット１１３のみを有し得る一方、第２メモリデバイス１１０２は、プログラムカウンタ実行ユニット１１４に加えて複数の実行ユニット１１３を有し得る。
【００５４】
従って、後述のように、コントローラ１１００（例えばソースノード）は、命令及びソースノードの現在の処理状態を含むメッセージ（例えばパケット）を、メモリデバイス１１０１（例えば目標ノード）へ送信し得る。別の実施形態において、第１メモリデバイス１１０１がソースノードであり得る一方、第２メモリデバイス１１０２が目標ノードであり得る。
【００５５】
命令は、メモリデバイス１１０１に対するコマンド（例えば、検索、ソート、比較）を含み得る。メモリデバイス１１０１は、コントローラの介在なしに、コマンドにより指示されたタスクを行い得る。自律的メモリ処理装置１３０は、他のノード１１００、１１０２へメッセージの送信、他のノード１１００、１１０２からメッセージの受信、他のノード１１００、１１０２へ処理命令及び処理状態の送信、他のノード１１００、１１０２から処理命令及び処理状態の受信、プログラム状態の復元及び保存、処理命令の実行、ローカルメモリの読出し及び書込み、及び／または単一ノードにおける多重処理コンテキストの支援を行い得る。
【００５６】
自律的メモリ処理装置１３０の構成により、動的で滞りがなく柔軟性のある実行ユニット１１３（例えばＡＬＵを含む）の追加及び削除が可能となり、従ってノードは必要に応じて追加の処理能力が与えられる。自律的メモリ処理装置１３０における実行ユニット１１３の動的な追加及び削除は、以下の作動実施例において例示され得る。
【００５７】
標準的な先行技術のプログラムは、以下のように生成され得る。
命令１（ＡＤＤレジスタ１、レジスタ２、レジスタ３）
命令２（ＳＵＢレジスタ２、レジスタ３、レジスタ４）
【００５８】
標準的な先行技術のＣＰＵシステムの場合のように、これらの命令には暗黙の従属性が含まれる。例えば、命令１が実行機会を有する前に、レジスタ２の値が書換えられ得るので、命令２は命令１の前に（または命令１と同じサイクルにおいて）実行不可能であり得る。
【００５９】
プログラムを実行するのに必要なサイクル数を削減するために、自律的メモリ処理装置構成において、より複雑な実行ユニット（ＥＵ）構成が使用され得る。各ＥＵは、それぞれが別個のタスクを行ういくつかの異なるＡＬＵ（例えば４つのＡＬＵ）を含み得る。従って、自律的メモリ処理装置のために書かれたプログラムは、以下のように生成され得る（１つのＥＵに加えＰＣＥＵを有する構成と仮定した場合）。
［ＰＣＥＵ命令１］［ＥＵ１命令１］
［ＰＣＥＵ命令２］［ＥＵ１命令２］
【００６０】
各［ＥＵ＃命令＃］は、図１０に例示されるように、以下のように現れる。
［行先命令］［比較命令］［Ｉｆ−ｔｒｕｅ命令］［Ｉｆ−ｆａｌｓｅ命令］
【００６１】
また、自律的メモリ処理装置の構成の一部として、プロセッサはその内部に、異なる数のＥＵを組み込み得る。これにより４つのＥＵと１つのＰＣＥＵを有する構成は、例えば以下のことが可能になり得る。
［ＰＣＥＵ命令１］［ＥＵ１命令１］［ＥＵ２命令１］［ＥＵ３命令１］［ＥＵ４命令１］
［ＰＣＥＵ命令２］［ＥＵ１命令２］［ＥＵ２命令２］［ＥＵ３命令２］［ＥＵ４命令２］
【００６２】
当サイクルにおいて実行する追加作業は存在し得ないという事実に基づいて、これらのＥＵ命令のうちのいずれか１つは空であり得る。これは、プログラムの特定の段階において、並列処理がないことに起因し得る。
【００６３】
自律的メモリ処理装置の構成により、システムにおける異種の自律的メモリ処理装置エンジン（例えば１つの装置「Ａ」は１つのＥＵに加えＰＣＥＵを有し得る一方、同じ相互接続システムにおける別の装置「Ｂ」は４つのＥＵに加えＰＣＥＵを有し得る）一式内の対話が可能になり得る。当シナリオにおいて、装置Ａが装置「Ｂ」に対しコンテキストを送る必要があると仮定した場合、プログラムは命令の連続ストリーム内に装入され、装置「Ｂ」へ送り出され得る。装置「Ｂ」は、そこで、それ自体のハードウェア上にそれら命令を以下同様にスケジュールし得る。
［ＰＣＥＵ命令１］［ＥＵ１命令１］［空］［空］［空］
［ＰＣＥＵ命令２］［ＥＵ１命令２］［空］［空］［空］
．．．
【００６４】
全てのプログラムは最終的に、最も精密な自律的メモリ処理装置の並列処理に臨み得るため、これはシステムにおいて非効率性を生じる無駄な並列処理へと導き得る。
【００６５】
命令間に従属性が何もないことを確かめずに、命令を並列ＥＵへまとめて渡すことはあり得ない。標準的な先行技術のシステムにおいて、このような種類の比較は計算上コストが高くあり得るため、自律的メモリ処理装置は、「フェンス」フラグという命令の概念を使用し得る。「フェンス」フラグにより、アプリケーションの作者またはアプリケーションの作成者は、命令ストリームがそのストリームにおける前の命令に対する従属性をもう有さないということを示すことが可能になる。当情報により、命令ストリームは、重要処理のオーバーヘッドなしで、異種プロセッサ一式上で回され、スケジュールされることが可能になり得る。
【００６６】
例えば、以下の命令ストリーム［ＰＣＥＵ命令］［ＥＵ命令１］［ＥＵ命令２］［ＥＵ命令３］［フェンスマーカ／命令］［ＥＵ命令４］［ＥＵ命令５］［ＥＵ命令６］［ＥＵ命令７］［フェンスフラグ／命令］は、自律的メモリ処理装置「Ａ」上において［ＰＣＥＵ］［１］［ＰＣＥＵ］［２］［Ｆ］［ＰＣＥＵ］［３］［ＰＣＥＵ］［４］［ＰＣＥＵ］［５］［ＰＣＥＵ］［６］［Ｆ］［ＰＣＥＵ］［７］のようにスケジュールされ（［Ｆ］は「フェンス」マーカを示す）、そして自律的メモリ処理装置「Ｂ」において［ＰＣＥＵ］［１］［２］［３］［Ｘ］［Ｆ］［ＰＣＥＵ］［４］［５］［６］［７］としてスケジュールされ得る。
【００６７】
「フェンス」命令は、所定の自律的メモリ処理装置（例えば「Ａ」または「Ｂ」）の命令メモリへロードされている間に、パケット内論理により処理され得る。「フェンス」フラグの存在は、命令メモリに記憶され得るが、スケジューリングコンテキスト外では意味がない場合がある。しかしながら、これは命令メモリにおいてフラグとして記憶され、そのためパケット送信論理により元のストリームが再構成され得る。
【００６８】
自律的メモリ処理装置の作動実施例として（例えばメモリ検索）、パケットは、ネットワーク（例えばメモリネットワーク）からパケットパーサ１０１により受信され得る。パケットパーサ１０１は、パケットをセグメントに分解し得る。いくつかのセグメントは、パケットが前のノードから送られた時の前のノードの状態を表すレジスタ内容を含み得るため、コンテキストであり得る。
【００６９】
パケットは、プログラムが実行される、命令メモリ１０５における開始位置を含み得る。この開始点は、プログラムカウンタ１０７へロードされ得る。パケットはまた、命令メモリ１０５へロードされる命令一式と、レジスタファイル１０９へロードされ得る初期条件一式とを含み得る。初期条件は、前のノードからの命令により送られた変数であり得る。初期条件はまた、現行の実行プログラムにより使用される定数でもあり得る。
【００７０】
プログラムカウンタ１０７の値は、どの命令を実行のために命令メモリ１０５から読出すかを決定する。プログラムカウンタ１０７の次の値は、前の値より増加した値であり得る、またはプログラムカウンタ実行ユニット１１４により決定される計算値であり得る。
【００７１】
命令は、パーサ１１５の構成を設定し得る。パーサ１１５は、命令の実行を通して、変数をページバッファ１１７から取出し、最終的にメモリ読出動作を行うように構成され得る。
【００７２】
メモリ読出動作が起こると、変数はページバッファ１１７の内容からリアルタイムに取り出され、実行ユニット１１３に対し入力として提供され得る。プログラム命令により決定されるように、別の可能入力がレジスタファイルから読出され、処理のため実行ユニット１１３へ提供され得る。前述のように、「フェンス」により、いくつかの連続命令を並行して実行することが可能になり得る。並列実行不可能な命令は、延期され、次のサイクル中に実行され得る。
【００７３】
実行ユニット１１３は、これらの入力引数を、各セットが並列処理される複数の入力引数セットとして処理し得る。従って、複数の実行ユニット１１３が、レジスタファイルへ戻され得る、あるいは１つまたは複数のメモリ書込動作のためのデータとして最終的にページバッファ１１７へ書込まれるようにパーサ１１５へ移動され得る、出力変数を生成し得る。すなわち出力変数は、ある特定の活動を生み出すためにレジスタファイルへ入り得る。動作は、パケットジェネレータ１１１によりパケットを生成する、あるいは新たなメモリ読出動作またはメモリ書込動作を開始するためのものであり得る。
【００７４】
ページバッファ１１７の内容（例えば検索コマンドの結果）は、ネットワークを介して要求ノードへ送信されるパケットに含まれるように、パケットジェネレータ１１１に提供され得る。パケットには、タスク（例えば検索）が完了したこと、及びその結果がパケットに含まれていることを示す要求ノードに対するメッセージが含まれ得る。
【００７５】
作動に関するより広範な実施例として、ネットワークは、それぞれが少なくとも１つの自律的メモリ処理装置を備える複数の自律的メモリデバイスから成る機構を含み得る。データ群はメモリデバイス機構の至る所に記憶され得る。特定のデータリストについてデータ群全体の検索が望まれる時、検索プログラムが１つの自律的メモリデバイスにプッシュされ、当該デバイスにおいて特定のデータリストが検索され得る。その特定の自律的メモリデバイスに記憶されているデータが検索され、リストの全てのデータは存在しないことがプログラムにより判定されると、プログラムは１つまたは複数のパケットにまとめられ、別の自律的メモリデバイスに転送され、この別のデバイスの自律的メモリ処理装置が検索を継続し得る。このプログラムをまとめる動作は、自律的メモリデバイスの機構全体が検索されるまで、またはデータリストが完了するまで、続けられ得る。いくつかの実施形態において、特定の自律的メモリデバイスにおいて見つかったデータもまた、転送するプログラムと一緒にパケット（複数可）にまとめられ得る。
【００７６】
そのような実施形態が、図１２のフローチャートにおいて例示される。例示された方法は、図１１のシステムにおいて、自律的メモリデバイス１１０１内の自律的メモリ処理装置１３０により実行され得る。
【００７７】
メモリデバイス１１０１は、自律的メモリ処理装置１３０に提供されるパケットを受信し得る１２０１。装置１３０は、前述のように、命令、プログラムカウンタ、データを取り出すために、パケットを構文解析し得る１２０３。そしてメモリ１００に記憶されているデータに対し所望のタスクを行うために、命令が実行され得る１２０５。そして命令と命令により生成された任意のデータが、ネットワーク上で送信するために１２０９、パケットにまとめられ得る１２０７。
【００７８】
装置は回路、集積回路ダイ、メモリデバイス、メモリアレイ、またはシステムとして定義され得る。
【００７９】
［結論］
自律的メモリデバイス内の自律的メモリ処理装置の１つまたは複数の実施形態は、従来のＣＰＵベースのコンピューティングシステムにおけるメモリ帯域幅のボトルネックを軽減するために、命令の処理を行い得る。命令（例えばプログラム）一式及び／またはデータを含むパケットはノード間で転送され得、そのためにこれらのノード内のメモリに記憶されたデータは、ソースノードまたはＣＰＵによる制御とは独立した命令により処理され得る。
【００８０】
特定の実施形態が本明細書において例示され説明されたが、同じ目的を達成する意図の任意の配置が、示された特定の実施形態と置換えられ得ることを、当業者は理解するであろう。当業者にとって、数多くの適応形態が明らかであろう。従って、本出願は、任意の適応形態または変形を含めることが意図される。
【図１】
2018139118.tif 000003
【図２】
2018139118.tif 000004
【図３】
2018139118.tif 000005
【図４】
2018139118.tif 000006
【図５】
2018139118.tif 000007
【図６】
2018139118.tif 000008
【図７Ａ】
2018139118.tif 000009
【図７Ｂ】
2018139118.tif 000010
【図８】
2018139118.tif 000011
【図９】
2018139118.tif 000012
【図１０】
2018139118.tif 000013
【図１１】
2018139118.tif 000014
【図１２】
2018139118.tif 000015
【手続補正書】
【提出日】平成30年4月20日(2018.4.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
記憶メモリ及びメモリ処理装置を含むメモリデバイスで実行される方法であって、前記メモリ処理装置は、少なくとも１つの実行ユニットと、パケットパーサと、パケットジェネレータとを含み、前記方法は、
前記メモリ処理装置で、前記パケットパーサを用いて命令一式を受信し且つ構文解析することと、
前記少なくとも１つの実行ユニットを用いて前記命令一式を実行して、前記メモリデバイスの前記記憶メモリからデータを取り出すことを試みることと、
前記パケットジェネレータを用いて、前記命令一式を、前記少なくとも１つの実行ユニットによる前記命令一式の前記実行に応じて前記メモリデバイスの前記記憶メモリから取り出された任意のデータと組み合わせて、パケットを生成することと、
前記パケットジェネレータを用いて前記パケットを送信することであって、前記パケットは、前記メモリ処理装置から、前記メモリデバイスに接続されたメモリコントローラへ転送される、ことと、
を含み、
前記メモリ処理装置の、前記少なくとも１つの実行ユニット、前記パケットパーサ、及び前記パケットジェネレータは、前記記憶メモリと同一のハードウェアコンポーネント内に配置されている、方法。
【請求項２】
前記命令一式を受信し且つ構文解析することは、前記メモリデバイスに結合されたネットワークから前記命令一式を受信することを含み、前記パケットを送信することは、前記パケットを前記ネットワークへ送信することを含む、請求項１に記載の方法。
【請求項３】
前記命令一式を受信し且つ構文解析することは、
前記受信された命令一式に関連付けられた初期プログラムカウンタ値をプログラムカウンタにロードすることと、
前記命令一式を命令メモリにロードすることと、
前記命令一式に関連付けられた初期条件一式をレジスタファイルにロードすることと、
によって、前記命令一式を含むパケットを受信し且つ構文解析することを含む、請求項１に記載の方法。
【請求項４】
前記命令一式を実行することは、
前記命令一式のうちの第１の命令を実行した後に、新たなプログラムカウンタ値を計算することと、
前記新たなプログラムカウンタ値を前記プログラムカウンタに記憶させることと、
を含む、請求項３に記載の方法。
【請求項５】
前記命令一式を実行することは、第１の実行ユニットで第１の命令を実行することと、第２の実行ユニットで第２の命令を実行することとを含み、前記第１及び第２の命令の前記実行は実質的に並列である、請求項１に記載の方法。
【請求項６】
前記メモリデバイスは、複数のメモリデバイスノードのうちの第１のノードであり、前記メモリデバイスから前記パケットを送信することは、前記パケットを、前記複数のメモリデバイスノードのうちの第２のノードへ送信することを含む、請求項１に記載の方法。
【請求項７】
前記複数のメモリデバイスノードのうちの第３のノードから初期条件を受信することと、
前記初期条件をファイルレジスタに記憶させることと、
を更に含む、請求項６に記載の方法。
【請求項８】
前記命令一式はフェンスフラグを含み、前記命令一式を記憶させることは、前記フェンスフラグよりも前の１つ以上の命令を命令メモリに記憶させ、前記フェンスフラグよりも後の１つ以上の命令を前記命令メモリに記憶させることを含む、請求項１に記載の方法。
【請求項９】
第１の実行ユニットで、前記フェンスフラグよりも前の前記１つ以上の命令を実行することと、
第２の実行ユニットで、前記フェンスフラグよりも後の前記１つ以上の命令を実行することと、
を更に含む、請求項８に記載の方法。
【請求項１０】
前記フェンスフラグよりも前の前記１つ以上の命令を実行することは、前記フェンスフラグよりも後の前記１つ以上の命令を実行することと実質的に同時に行われる、請求項９に記載の方法。
【請求項１１】
前記実行ユニットを用いて前記命令一式を実行することは、
複数のオペランドをプログラムカウンタ実行ユニットに提供することと、
演算子を前記プログラムカウンタ実行ユニットに提供することと、
前記複数のオペランドに対して前記演算子を実行した結果に応じて、更新されたプログラムカウンタ値を生成することと、
を含む、請求項１に記載の方法。
【請求項１２】
前記メモリ処理装置及び前記記憶メモリは、同一のダイ、同一のダイスタック、又は同一のメモリモジュールのうちの１つに含まれており、
前記記憶メモリは、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、同期式ランダムアクセスメモリ（ＳＲＡＭ）、ＮＡＮＤフラッシュ、ＮＯＲフラッシュ、又は相変化メモリ（ＰＣＭ）を含む、請求項１に記載の方法。
【請求項１３】
前記メモリ処理装置は、前記メモリデバイス内に配置された複数のメモリ処理装置のうちの１つである、請求項１に記載の方法。
【請求項１４】
記憶メモリとメモリ処理装置とを備えるメモリデバイス装置であって、
前記メモリ処理装置は、
命令一式と開始位置とを含むパケットを受信するように構成されたパケットパーサと、
前記パケットパーサに結合され、前記命令一式を受信するように構成された命令メモリと、
前記命令メモリ及び前記パケットパーサに結合されたプログラムカウンタであって、初めに前記パケットパーサから前記開始位置を受信し、前記命令メモリにおける前記開始位置から命令を取り出すように構成されたプログラムカウンタと、
前記命令メモリに結合された、前記命令一式を実行するための複数の実行ユニットと、
前記複数の実行ユニットに結合されたパーサであって、ローカルメモリからのデータの読み出しを制御するように構成されたパーサと、
前記パーサ及び前記命令メモリに結合され、前記パーサ及び前記パケットパーサからのデータを記憶するように構成されたレジスタと、
前記命令メモリ及び前記レジスタに結合されたパケットジェネレータであって、前記命令一式及び前記データを含む送信用パケットを生成するように構成されたパケットジェネレータと、
を備え、
前記メモリ処理装置の、前記パケットパーサ、前記命令メモリ、前記プログラムカウンタ、前記複数の実行ユニット、前記パーサ、前記レジスタ、及び前記パケットジェネレータは、前記記憶メモリと同一のハードウェアコンポーネント内に配置されている、メモリデバイス装置。
【請求項１５】
前記複数の実行ユニットの各々は、
複数の演算論理ユニット（ＡＬＵ）と、
前記複数の演算論理ユニットのうちの少なくとも２つの出力の間に結合された多重化機能と、
を備える、請求項１４に記載のメモリデバイス装置。
【請求項１６】
前記複数のＡＬＵは、前記命令一式の各命令に関連付けられたＡＬＵを含む、請求項１５に記載のメモリデバイス装置。
【請求項１７】
前記複数の実行ユニットの各々はｉｆ−ｔｈｅｎ−ｅｌｓｅ文を実施する、請求項１５に記載のメモリデバイス装置。
【請求項１８】
前記メモリ処理装置及び前記記憶メモリは、同一のダイ、同一のダイスタック、又は同一のメモリモジュールのうちの１つに含まれており、
前記記憶メモリは、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、同期式ランダムアクセスメモリ（ＳＲＡＭ）、ＮＡＮＤフラッシュ、ＮＯＲフラッシュ、又は相変化メモリ（ＰＣＭ）を含む、請求項１４に記載のメモリデバイス装置。
【請求項１９】
前記メモリ処理装置は、前記メモリデバイス装置内に配置された複数のメモリ処理装置のうちの１つである、請求項１４に記載のメモリデバイス装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
上記の課題を解決するために、本発明の方法は、記憶メモリ及びメモリ処理装置を含むメモリデバイスで実行される方法であって、前記メモリ処理装置は、少なくとも１つの実行ユニットと、パケットパーサと、パケットジェネレータとを含み、前記方法は、
前記メモリ処理装置で、前記パケットパーサを用いて命令一式を受信し且つ構文解析することと、
前記少なくとも１つの実行ユニットを用いて前記命令一式を実行して、前記メモリデバイスの前記記憶メモリからデータを取り出すことを試みることと、
前記パケットジェネレータを用いて、前記命令一式を、前記少なくとも１つの実行ユニットによる前記命令一式の前記実行に応じて前記メモリデバイスの前記記憶メモリから取り出された任意のデータと組み合わせて、パケットを生成することと、
前記パケットジェネレータを用いて前記パケットを送信することであって、前記パケットは、前記メモリ処理装置から、前記メモリデバイスに接続されたメモリコントローラへ転送される、ことと、
を含み、
前記メモリ処理装置の、前記少なくとも１つの実行ユニット、前記パケットパーサ、及び前記パケットジェネレータは、前記記憶メモリと同一のハードウェアコンポーネント内に配置されている、ことを特徴とする。