JP6468100B2 - Memory system, memory control method, and program - Google Patents
Memory system, memory control method, and program Download PDFInfo
- Publication number
- JP6468100B2 JP6468100B2 JP2015134560A JP2015134560A JP6468100B2 JP 6468100 B2 JP6468100 B2 JP 6468100B2 JP 2015134560 A JP2015134560 A JP 2015134560A JP 2015134560 A JP2015134560 A JP 2015134560A JP 6468100 B2 JP6468100 B2 JP 6468100B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- address
- learning
- learning model
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims description 169
- 238000000034 method Methods 0.000 title claims description 19
- 230000006870 function Effects 0.000 claims description 9
- 239000013598 vector Substances 0.000 claims description 5
- 239000007787 solid Substances 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 6
- 238000004088 simulation Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Description
本発明は、メモリシステム、メモリ制御方法及びプログラムに関する。 The present invention relates to a memory system, a memory control method, and a program.
オペランドデータの先読み成功率を高く保つことができる情報処理装置が知られている(特許文献1参照)。キャッシュ制御装置は、局所的にオペランドデータにアクセスする命令についてはオペランドデータのアドレスをオペランドキャッシュに格納し、オペランドデータを非局所的にアクセスするロード命令については次回アクセスされるオペランドデータのロードアドレスを先読みする。ロードアドレスの先読み方式としては、「固定間隔アドレス予測方式」と「アドレス組予測方式」とが用いられる。先読みされたロードアドレスは先読みオペランドバッファに格納され、キャッシュ制御装置はロード命令が再び実行された際に先読みオペランドバッファを索引する。 There is known an information processing apparatus capable of maintaining a high prefetch success rate of operand data (see Patent Document 1). The cache controller stores the operand data address in the operand cache for an instruction that accesses operand data locally, and the load address of the operand data that is accessed next time for a load instruction that accesses operand data non-locally. Read ahead. As the load address prefetching method, a “fixed interval address prediction method” and an “address set prediction method” are used. The prefetched load address is stored in a prefetch operand buffer, and the cache controller indexes the prefetch operand buffer when the load instruction is executed again.
メモリへのアクセスが空間的局所性を持つことを利用して、過去にアクセスしたアドレスに対して連続したアドレスのデータを先読みするシーケンシャル先読み技術が知られている。しかし、シーケンシャル先読み技術は、メモリへのアクセスが空間的局所性を持つことを前提とした技術であり、空間的局所性がない場合には次にアクセスするアドレスの予測が困難になるという課題がある。 A sequential read-ahead technique for prefetching data at consecutive addresses with respect to addresses accessed in the past by using the fact that access to the memory has spatial locality is known. However, sequential read-ahead technology is based on the premise that access to memory has spatial locality, and if there is no spatial locality, there is a problem that it is difficult to predict the next address to be accessed. is there.
本発明の目的は、次に読み出すアドレスの予測の成功率を向上させることができるメモリシステム、メモリ制御方法及びプログラムを提供することである。 An object of the present invention is to provide a memory system, a memory control method, and a program capable of improving the success rate of predicting an address to be read next.
メモリシステムは、アドレス毎に情報を記憶するメモリと、複数の学習モデルのうちの1個の学習モデルを選択する学習モデル選択部と、アドレスを入力し、前記学習モデル選択部により選択された学習モデルを用いて、前記入力したアドレスの履歴を基に次のアドレスを予測し、前記予測したアドレスを前記メモリに出力することにより、前記メモリに記憶されている情報を読み出すメモリコントローラと、入力されるアドレスの履歴を基に、前記学習モデルのパラメータを学習し、前記学習モデル選択部により選択された学習モデルのパラメータを出力する学習部とを有し、前記メモリコントローラは、前記学習部により出力されたパラメータを、前記学習モデル選択部により選択された学習モデルに適用して、前記次のアドレスを予測する。 The memory system receives a memory for storing information for each address, a learning model selection unit that selects one of the learning models of the plurality of learning models, the address, is selected by the learning model selection unit learning A memory controller that predicts a next address based on a history of the input address using a model and outputs the predicted address to the memory, thereby reading information stored in the memory; that on the basis of the history of the address to learn the parameters of the learning model, said output parameters of the selected learning model by learning model selection unit and a learning portion, the memory controller is outputted by the learning unit been parameters, by applying the learning model selected by said learning model selection unit, predicts the next address That.
学習モデルを用いることにより、次に読み出すアドレスの予測の成功率を向上させることができる。 By using the learning model, it is possible to improve the success rate of predicting the address to be read next.
(第1の実施形態)
図1は、第1の実施形態によるメモリシステムの構成例を示す図である。メモリシステムは、コンピュータシステム101及び学習システム102を有する。コンピュータシステム101は、中央処理ユニット(CPU)111、メモリバス112、メモリコントローラ113及びメモリ115を有する。メモリコントローラ113は、第1の学習モデル114a及び第2の学習モデル114bを有する。第1の学習モデル114aは、例えば、サポートベクター(SV:Support Vector)回帰モデルである。第2の学習モデル114bは、例えば、確率的勾配降下法(SGD:Stochastic Gradient Descent)回帰モデルである。メモリ115は、インターリーブ形式の複数のメモリバンク(メモリ部)116a〜116dを有し、アドレス毎に情報を記憶する。
(First embodiment)
FIG. 1 is a diagram illustrating a configuration example of a memory system according to the first embodiment. The memory system includes a
メモリバンク116a〜116dは、DRAM(Dynamic Random Access Memory)の他、次世代のメモリデバイスとして期待されているMRAM(Magnetoresistive Random Access Memory)、ReRAM(Resistive Random Access Memory)、PCM(Phase Change Random Access Memory)でもよい。
The
学習システム102は、アドレス取得部121、学習モデル選択部122及び学習部123を有する。学習部123は、第1の学習部124a及び第2の学習部124bを有し、統計的機械学習を行う。第1の学習部124aは、第1の学習モデル114aのための学習部であり、第1の学習モデル114aに用いるパラメータを学習する。第2の学習部124bは、第2の学習モデル114bのための学習部であり、第2の学習モデル114bに用いるパラメータを学習する。
The
学習部123の学習方法には、事前学習タイプ及びリアルタイム学習タイプの2種類がある。まず、事前学習タイプについて説明する。まず、学習モードにおいて、CPU111は、メモリ115にアクセス(読み出し)を行うためのアドレスをメモリバス112に出力する。メモリバス112には、時系列順に、アクセスされるアドレスが順に出力される。アドレス取得部121は、メモリバス112のアドレスA1を取得し、アドレスの履歴A2を学習部123に出力する。アドレス取得部121は、アドレス履歴A2を記憶をする記憶部を有する。アドレスの履歴A2は、図2に示すように、時系列順にアクセスされるアドレスの履歴である。第1の学習部124aは、アドレスの履歴A2を基に、第1の学習モデル114aのためのパラメータを学習する。第2の学習部124bは、アドレスの履歴A2を基に、第2の学習モデル114bのためのパラメータを学習する。学習のパラメータが収束すると、学習モードが終了し、パラメータが決定する。
There are two learning methods of the learning unit 123: a pre-learning type and a real-time learning type. First, the pre-learning type will be described. First, in the learning mode, the
次に、通常モードにおいて、CPU111は、メモリ115にアクセス(読み出し)を行うためのアドレスをメモリバス112に出力する。アドレス取得部121は、メモリバス112のアドレスA1を取得し、アドレス履歴情報A3を学習モデル選択部122に出力する。学習モデル選択部122は、アドレス履歴情報A3を基に、第1の学習モデル114a及び第2の学習モデル114bのうちから最適なものを選択する。学習モデル選択部122は、第1の学習モデル114aを選択する場合には、選択信号A4によりメモリコントローラ113内の第1の学習モデル114aを選択し、選択信号A5により学習部123内の第1の学習部124aを選択する。また、学習モデル選択部122は、第2の学習モデル114bを選択する場合には、選択信号A4によりメモリコントローラ113内の第2の学習モデル114bを選択し、選択信号A5により学習部123内の第2の学習部124bを選択する。学習部123は、第1の学習部124aが選択された場合には、第1の学習部124aが学習したパラメータA6をメモリコントローラ113に出力する。また、学習部123は、第2の学習部124bが選択された場合には、第2の学習部124bが学習したパラメータA6をメモリコントローラ113に出力する。メモリコントローラ113は、学習モデル選択部122により選択された第1の学習モデル114a又は第2の学習モデル114bを用いて、メモリバス112から入力したアドレスの履歴を基に次のアドレスを予測し、予測したアドレスをメモリ115に出力することにより、メモリ115に記憶されている情報を読み出す。具体的には、学習モデル選択部122が第1の学習モデル114aを選択した場合、メモリコントローラ113は、第1の学習部124aが学習したパラメータA6を第1の学習モデル114aに適用して、メモリバス112から入力したアドレスの履歴を基に次のアドレスを予測する。また、学習モデル選択部122が第2の学習モデル114bを選択した場合、メモリコントローラ113は、第2の学習部124bが学習したパラメータA6を第2の学習モデル114bに適用して、メモリバス112から入力したアドレスの履歴を基に次のアドレスを予測する。
Next, in the normal mode, the
メモリコントローラ113は、メモリバス112から次に入力されたアドレスと上記の予測したアドレスとが同じ場合には、予測成功として、上記の予測したアドレスに基づき読み出された情報をすぐにCPU111に出力する。これに対し、メモリコントローラ113は、メモリバス112から次に入力されたアドレスと上記の予測したアドレスとが異なる場合には、予測失敗として、上記の予測したアドレスに基づき読み出された情報を捨て、上記の次に入力されたアドレスをメモリ115に出力することにより、メモリ115に記憶されている情報を読み出す。そして、メモリコントローラ113は、その読み出した情報をCPU111に出力する。上記の処理は、投機的な読み出しである。これにより、メモリコントローラ113は、CPU111から読み出し要求(アドレスを含む)を入力すると、即時にメモリ115から読み出した情報をCPU111に出力することが可能になり、読み出し速度を向上させることができる。
When the next input address from the
以上のように、事前学習タイプでは、メモリコントローラ113は、学習部123の学習の終了後に、第1の学習部124a又は第2の学習部124bが学習したパラメータA6を第1の学習モデル114a又は第2の学習部114bに適用して、次のアドレスを予測する。
As described above, in the prior learning type, the
次に、リアルタイム学習タイプについて説明する。以下、リアルタイム学習タイプが上記の事前学習タイプと異なる点を説明する。CPU111は、メモリ115にアクセス(読み出し)を行うためのアドレスをメモリバス112に出力する。アドレス取得部121は、メモリバス112のアドレスA1を取得し、アドレスの履歴A2を学習部123に出力し、アドレス履歴情報A3を学習モデル選択部122に出力する。第1の学習部124aは、アドレスの履歴A2を基に、第1の学習モデル114aのためのパラメータを学習する。第2の学習部124bは、アドレスの履歴A2を基に、第2の学習モデル114bのためのパラメータを学習する。学習モデル選択部122は、アドレス履歴情報A3を基に、第1の学習モデル114a及び第2の学習モデル114bのいずれかを選択する。学習部123は、第1の学習モデル114aが選択された場合には、第1の学習部124aが学習したパラメータA6をメモリコントローラ113に出力する。また、学習部123は、第2の学習モデル114bが選択された場合には、第2の学習部124bが学習したパラメータA6をメモリコントローラ113に出力する。メモリコントローラ113は、学習部123が出力したパラメータA6を、学習モデル選択部122により選択された第1の学習モデル114a又は第2の学習モデル114bに適用し、メモリバス112から入力したアドレスの履歴を基に次のアドレスを予測し、予測したアドレスをメモリ115に出力することにより、メモリ115に記憶されている情報を読み出す。
Next, the real-time learning type will be described. Hereinafter, the point that the real-time learning type is different from the above prior learning type will be described. The
以上のように、リアルタイム学習タイプでは、学習部123の学習は、メモリコントローラ113の予測と並列して行われる。これにより、学習部123の事前学習が不要になる。
As described above, in the real-time learning type, learning by the
メモリ115は、複数のメモリバンク116a〜116dが並列処理することにより、アクセス速度を向上させることができる。メモリ115へのアクセスは空間的局所性を有するので、メモリ115は連続したアドレス順にアクセスされることが多い。メモリバンク116a〜116dは、インターリーブ形式でアドレスが割り当てられている。例えば、100番地のアドレスはメモリバンク116aに割り当てられ、101番地のアドレスはメモリバンク116bに割り当てられ、102番地のアドレスはメモリバンク116cに割り当てられ、103番地のアドレスはメモリバンク116dに割り当てられ、104番地のアドレスはメモリバンク116aに割り当てられ、105番地のアドレスはメモリバンク116bに割り当てられる。メモリコントローラ113は、過去の複数サイクルのアドレスの履歴を基に、例えば100番地のアドレス117aを予測する。そして、メモリコントローラ113は、過去の複数サイクルのアドレスの履歴及び予測したアドレス117aを基に、例えば101番地のアドレス117bを予測する。そして、メモリコントローラ113は、過去の複数サイクルのアドレスの履歴及び予測したアドレス117a,117bを基に、例えば102番地のアドレス117cを予測する。そして、メモリコントローラ113は、過去の複数サイクルのアドレスの履歴及び予測したアドレス117a,117b,117cを基に、例えば103番地のアドレス117dを予測する。その後、メモリコントローラ113は、予測したアドレス117aをメモリバンク116aに、予測したアドレス117bをメモリバンク116bに、予測したアドレス117cをメモリバンク116cに、予測したアドレス117dをメモリバンク116dに、並列に出力する。すると、メモリバンク116a〜116dは、それぞれ、アドレス117a〜117dの4個の情報を並列に読み出し、その読み出した4個の情報をメモリコントローラ113に並列に出力する。この並列処理により、読み出し速度を高速化することができる。
The
なお、メモリコントローラ113は、2個の学習モデル114a及び114bを有する場合に限定されず、1個又は3個以上の学習モデルを有していてもよい。同様に、学習部123も、1個又は3個以上の学習部を有していてもよい。統計的機械学習における学習モデルは様々な種類があり、メモリコントローラ113が全ての学習モデルを有することができるが、それが困難である場合には、メモリコントローラ113は、代表的な複数の学習モデルを保持することができる。その場合、学習モデル選択部122は、それぞれの学習モデルの長所及び短所を基に、アドレス履歴情報A3に応じて最適な学習モデルを選択する。
The
第1の学習モデル114aがSV回帰モデルである例を説明する。SV回帰モデルの関数f(x)は、次式(1)で表される。
f(x)=xTw+b ・・・(1)
An example in which the
f (x) = x T w + b (1)
ここで、xは、過去の複数サイクル(例えば4サイクル)のアドレス履歴の行列である。xTは、行列xの転置行列である。w及びbは、パラメータである。wは、列ベクトルの行列である。bは、スカラーである。f(x)は、学習したい関数であり、アドレス履歴xの次のアドレスを表す。メモリコントローラ113は、アドレス履歴xを入力し、第1の学習モデル114aの関数f(x)を演算し、f(x)の値を次のアドレスとして予測し、予測されたアドレスf(x)をメモリ115に出力する。
Here, x is a matrix of address history of a plurality of past cycles (for example, 4 cycles). x T is a transposed matrix of the matrix x. w and b are parameters. w is a matrix of column vectors. b is a scalar. f (x) is a function to be learned and represents the next address of the address history x. The
第1の学習部124aは、次式(2)の最適化問題を最小二乗法などにより解くことにより、SV回帰モデルのパラメータw及びbを学習により決定する。
The
ここで、xi及びyiは、図1のアドレスA2に対応する。xiは、例えば4サイクル分のアドレス履歴である。yiは、アドレス履歴xiの次のアドレスである。Nは、学習するアドレス履歴数である。||w||は、列ベクトルwのノルムを表す。λは、過学習を防ぐための正則化項である。関数ξは、許容誤差εの関数である。ξ(r)は、|r|<εである場合には「ξ(r)=0」であり、それ以外の場合には「ξ(r)=|r|−ε」である。rは、yi−f(xi)である。f(xi)は、x=xiの場合のf(x)の値である。 Here, x i and y i correspond to the address A2 in FIG. x i is, for example, an address history for four cycles. y i is the next address of the address history x i . N is the number of address histories to be learned. || w || represents the norm of the column vector w. λ is a regularization term for preventing overlearning. The function ξ is a function of the tolerance ε. ξ (r) is “ξ (r) = 0” when | r | <ε, and “ξ (r) = | r | −ε” otherwise. r is y i −f (x i ). f (x i ) is a value of f (x) when x = x i .
第1の学習部124aは、式(2)の値が最小になるようなパラメータw及びbを決定し、パラメータw及びbをパラメータA6としてメモリコントローラ113に出力する。すなわち、第1の学習部124aは、図3に示すように、第1の学習モデル114aの関数f(x)により予測される次のアドレスf(xi)と、次に入力されたアドレスyiとの誤差が小さくなるようにパラメータw及びbを学習する。学習部123は、多量の行列演算を行うので、行列演算に特化したハードウエアが好ましい。メモリコントローラ113は、第1の学習部124aが決定したパラメータw及びbを、式(1)の第1の学習モデル114aの関数f(x)に適用し、次のアドレスを予測する。
The
メモリコントローラ113は、読み出し要求があった場合に、次に入力されるであろうアドレスを予測し、そのアドレスに対して投機的に読み出しを行う。また、この先読みは、メモリバンク116a〜116dの並列数分だけ行うことが望ましい。もし、予測したアドレスのメモリバンクが、既にアクセス中のメモリバンクである場合は、先読みは行えないため、読み出しを保留し、先行していたアクセスが完了次第、先読みを再開する。
When there is a read request, the
例えば、第1の学習モデル114aがSV回帰モデルであり、第2の学習モデル114bがSGD回帰モデルである例を説明する。SV回帰モデルは、少ない学習アドレス履歴数でも高い汎化能力がある。これに対し、SGD回帰モデルは、大規模なアドレス履歴数に向いていて、数学的に最適解が得られることが証明されている。学習モデル選択部122は、学習部123が学習したアドレス履歴数が閾値(例えば100K)以上である場合にはSGD回帰モデルを選択し、学習部123が学習したアドレス履歴数が閾値(例えば100K)未満である場合にはSV回帰モデルを選択する。
For example, an example will be described in which the
図4は、メモリシステムのメモリ制御方法を示すフローチャートである。ステップS401では、CPU111は、ワークロードを実行することにより、メモリ115に対するアクセス処理を開始する。ワークロードは、例えば、データベースアクセス処理又はウェブ(Web)サーバ処理等である。CPU111は、アドレスを含む読み出し要求をメモリバス112に出力する。
FIG. 4 is a flowchart showing a memory control method of the memory system. In step S401, the
次に、ステップS402では、アドレス取得部121は、メモリバス112を介して、CPU111が出力するアドレスA1を取得し、アドレス履歴情報A3を学習モデル選択部122に出力する。
Next, in step S <b> 402, the
次に、ステップS403では、学習モデル選択部122は、アドレス履歴情報A3を基に、複数の学習モデルのうちの最適な1個の学習モデルを選択する。
Next, in step S403, the learning
図5は、図4のステップS403の処理の詳細を示すフローチャートである。ステップS501では、学習モデル選択部122は、アドレス履歴情報A3を基に、学習部123が学習したアドレス履歴数が閾値(例えば100K)以上であるか否かを判定する。学習部123が学習したアドレス履歴数が閾値(例えば100K)以上である場合には、ステップS502に進み、学習部123が学習したアドレス履歴数が閾値(例えば100K)未満である場合には、ステップS503に進む。ステップS502では、学習モデル選択部122は、第2の学習モデル(SGD回帰モデル)114bを選択する。ステップS503では、学習モデル選択部122は、第1の学習モデル(SV回帰モデル)114aを選択する。
FIG. 5 is a flowchart showing details of the process in step S403 of FIG. In step S501, the learning
なお、リアルタイム学習タイプの場合、学習モデル選択部122は、アドレス履歴数が閾値未満である場合には、SV回帰モデルを選択し、アドレス履歴数が閾値以上になった後、SGD回帰モデルを選択する。すなわち、学習モデル選択部122は、最初はSV回帰モデルを選択し、学習量が閾値を超えた後はSGD回帰モデルを選択する。
In the case of the real-time learning type, the learning
その後、図4に戻り、ステップS404では、学習モデル選択部122が第1の学習モデル114aを選択した場合、第1の学習部124aが第1の学習モデル114aのパラメータを決定する。また、学習モデル選択部122が第2の学習モデル114bを選択した場合、第2の学習部124bが第2の学習モデル114bのパラメータを決定する。
Thereafter, returning to FIG. 4, in step S404, when the learning
次に、ステップS405では、学習モデル選択部122は、ステップS403で選択した学習モデルの選択信号A4をメモリコントローラ113に出力する。学習部123は、ステップS404で決定したパラメータA6をメモリコントローラ113に出力する。
Next, in step S <b> 405, the learning
次に、ステップS406では、メモリコントローラ113は、学習部123から入力したパラメータA6を、学習モデル選択部122により選択された学習モデル114a又は114bに適用して、次のアドレスを予測し、その予測したアドレスをメモリ115内のメモリバンク116a〜116dに出力することにより、メモリ115内のメモリバンク116a〜116dに記憶されている情報を読み出す。
Next, in step S406, the
図6は、シーケンシャル割合に対する実行時間のシミュレーション結果を示す図である。シーケンシャル割合は、メモリアクセスアドレスのシーケンシャル割合を示す。実行時間は、メモリアクセスの実行時間を示す。このシミュレーションにおいて、学習数は512であり、メモリバンクの並列数は8である。 FIG. 6 is a diagram illustrating a simulation result of the execution time with respect to the sequential ratio. The sequential ratio indicates the sequential ratio of the memory access address. The execution time indicates the execution time of memory access. In this simulation, the learning number is 512, and the parallel number of the memory banks is eight.
特性線601は、すべてのアドレス入力を予め知っている場合の理想の特性を示す。特性線602は、本実施形態によるアドレス予測の特性を示す。特性線603は、シーケンシャル予測による特性を示す。本実施形態の特性線602は、特性線601及び603の間の特性を示し、シーケンシャル予測の特性線603より予測の成功率が高いことがわかる。
A characteristic line 601 indicates an ideal characteristic when all address inputs are known in advance. A
本実施形態によれば、学習部123がアドレス履歴の規則性を抽出するので、人手による予測が不要になる。また、空間的局所性がある場合にはシーケンシャル予測が可能であるが、空間的局所性がない場合にはシーケンシャル予測が困難である。本実施形態では、学習モデルを用いることにより、空間的局所性の有無にかかわらず、次に読み出すアドレスの予測の成功率を向上させることができる。その結果、メモリ115へのアクセスを高速化することができる。
According to the present embodiment, the
(第2の実施形態)
図7は、第2の実施形態によるメモリシステムの構成例を示す図である。本実施形態のメモリシステムは、ソリッドステートドライブ(SSD)のメモリシステムである。以下、本実施形態が第1の実施形態と異なる点を説明する。図7のストレージバス712は、図1のメモリバス112の代わりに設けられる。図7のSSDコントローラ713は、図1のメモリコントローラ113の代わりに設けられる。図7のメモリ715は、図1のメモリ115の代わりに設けられる。図7のNANDフラッシュメモリ部716a〜716dは、メモリ715内に設けられ、図1のメモリバンク116a〜116dの代わりに設けれる。
(Second Embodiment)
FIG. 7 is a diagram illustrating a configuration example of the memory system according to the second embodiment. The memory system of the present embodiment is a solid state drive (SSD) memory system. Hereinafter, the points of the present embodiment different from the first embodiment will be described. The
ストレージバス712は、SATA(Serial ATA)やSAS(Serial Attached SCSI)などのストレージ向けのバス、又はPCI−Expressなどの汎用的なバス等である。また、学習システム102は、メモリアクセスと比べて低速なため、リアルタイム学習タイプの場合、学習に長時間かかる学習モデルのアルゴリズムを採用することができる。また、メモリ715は、一般的なSSDで使われているNANDフラッシュメモリ部716a〜716dの他に、次世代不揮発メモリとして期待されているReRAM(Resistive Random Access Memory)、PCM(Phase Change Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)などを有するものでもよい。
The
第1及び第2の実施形態では、メモリコントローラ113,713、アドレス取得部121、学習モデル選択部122及び学習部123は、コンピュータがプログラムを実行することによって実現することもできる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体及び上記のプログラム等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
In the first and second embodiments, the
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。 The above-described embodiments are merely examples of implementation in carrying out the present invention, and the technical scope of the present invention should not be construed in a limited manner. That is, the present invention can be implemented in various forms without departing from the technical idea or the main features thereof.
101 コンピュータシステム
102 学習システム
111 中央処理ユニット(CPU)
112 メモリバス
113 メモリコントローラ
114a 第1の学習モデル
114b 第2の学習モデル
115 メモリ
116a〜116d メモリバンク
121 アドレス取得部
122 学習モデル選択部
123 学習部
124a 第1の学習部
124b 第2の学習部
112
Claims (12)
複数の学習モデルのうちの1個の学習モデルを選択する学習モデル選択部と、
アドレスを入力し、前記学習モデル選択部により選択された学習モデルを用いて、前記入力したアドレスの履歴を基に次のアドレスを予測し、前記予測したアドレスを前記メモリに出力することにより、前記メモリに記憶されている情報を読み出すメモリコントローラと、
入力されるアドレスの履歴を基に、前記学習モデルのパラメータを学習し、前記学習モデル選択部により選択された学習モデルのパラメータを出力する学習部とを有し、
前記メモリコントローラは、前記学習部により出力されたパラメータを、前記学習モデル選択部により選択された学習モデルに適用して、前記次のアドレスを予測することを特徴とするメモリシステム。 A memory for storing information for each address;
A learning model selection unit for selecting one learning model among a plurality of learning models;
By inputting an address, using the learning model selected by the learning model selection unit , predicting the next address based on the history of the input address, and outputting the predicted address to the memory, A memory controller that reads information stored in the memory;
A learning unit that learns parameters of the learning model based on a history of input addresses, and outputs the parameters of the learning model selected by the learning model selection unit ;
The memory controller, a memory system, wherein the parameters output by the learning section, by applying the learning model selected by said learning model selection unit predicts the next address.
前記学習部は、前記学習モデルの関数により予測される次のアドレスと、次に入力されたアドレスとの誤差が小さくなるように前記パラメータを学習することを特徴とする請求項1記載のメモリシステム。 The learning model is a function using a parameter learned by the learning unit,
The memory system according to claim 1, wherein the learning unit learns the parameter so that an error between a next address predicted by a function of the learning model and a next input address becomes small. .
前記メモリコントローラは、前記複数のメモリ部に複数のアドレスを並列に出力することにより、前記複数のメモリ部の情報を並列に読み出すことを特徴とする請求項1〜8のいずれか1項に記載のメモリシステム。 The memory has a plurality of memory units,
The memory controller, by outputting a plurality of addresses in parallel to said plurality of memory units, according to any one of claims 1 to 8, wherein reading the information of the plurality of memory portions in parallel Memory system.
前記メモリコントローラは、ソリッドステートドライブコントローラであることを特徴とする請求項1〜9のいずれか1項に記載のメモリシステム。 The memory is a flash memory;
The memory controller, the memory system according to any one of claims 1 to 9, characterized in that it is a solid state drive controller.
学習部により、入力されるアドレスの履歴を基に、前記学習モデルのパラメータを学習し、前記選択された学習モデルのパラメータを出力し、
メモリコントローラにより、アドレスを入力し、前記出力されたパラメータを、前記選択された学習モデルに適用して、前記入力したアドレスの履歴を基に次のアドレスを予測し、前記予測したアドレスをメモリに出力することにより、前記メモリに記憶されている情報を読み出すことを特徴とするメモリ制御方法。 The learning model selection unit selects one learning model from a plurality of learning models,
The learning unit, based on the address of the history of the input, to learn the parameters of the learning model, and outputs the parameters of the selected learning model,
The memory controller inputs an address, applies the output parameter to the selected learning model, predicts the next address based on the history of the input address, and stores the predicted address in the memory. A memory control method comprising: reading out information stored in the memory by outputting.
入力されるアドレスの履歴を基に、前記学習モデルのパラメータを学習し、前記選択された学習モデルのパラメータを出力し、
アドレスを入力し、前記出力されたパラメータを、前記選択された学習モデルに適用して、前記入力したアドレスの履歴を基に次のアドレスを予測し、前記予測したアドレスをメモリに出力することにより、前記メモリに記憶されている情報を読み出す、
処理をコンピュータに実行させるプログラム。 Select one of the learning models,
Based on the address of the history of the input, to learn the parameters of the learning model, and outputs the parameters of the selected learning model,
By inputting an address, applying the output parameter to the selected learning model, predicting the next address based on the history of the input address, and outputting the predicted address to a memory Reading out the information stored in the memory,
A program that causes a computer to execute processing.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015134560A JP6468100B2 (en) | 2015-07-03 | 2015-07-03 | Memory system, memory control method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015134560A JP6468100B2 (en) | 2015-07-03 | 2015-07-03 | Memory system, memory control method, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017016524A JP2017016524A (en) | 2017-01-19 |
JP6468100B2 true JP6468100B2 (en) | 2019-02-13 |
Family
ID=57828141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015134560A Active JP6468100B2 (en) | 2015-07-03 | 2015-07-03 | Memory system, memory control method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6468100B2 (en) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10171653A (en) * | 1996-10-09 | 1998-06-26 | Nkk Corp | Branch estimation method for information processor and device using the method |
JP3085267B2 (en) * | 1997-11-27 | 2000-09-04 | 日本電気株式会社 | Memory access acceleration device |
JP2006048422A (en) * | 2004-08-05 | 2006-02-16 | Matsushita Electric Ind Co Ltd | Loading apparatus, loading method, loading program, and computer readable recording medium for recording loading program |
JP2012064158A (en) * | 2010-09-17 | 2012-03-29 | Toshiba Corp | Memory management device and memory management method |
-
2015
- 2015-07-03 JP JP2015134560A patent/JP6468100B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017016524A (en) | 2017-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102457071B1 (en) | Predictive data orchestration in multi-tier memory systems | |
US11468324B2 (en) | Method and apparatus with model training and/or sequence recognition | |
US9256371B2 (en) | Implementing reinforcement learning based flash control | |
CN108475349B (en) | System and method for robust large-scale machine learning | |
KR102416956B1 (en) | Flushing CPU cache into persistent memory | |
KR20210019576A (en) | Predictive paging to accelerate memory access | |
CN113692579A (en) | Predictive data prefetching in a data store | |
CN104572026B (en) | Data processing method and device for being prefetched | |
US11868657B2 (en) | Memory controller, method of operating the memory controller, and electronic device including the memory controller | |
US20200117400A1 (en) | Parallel Memory Access and Computation in Memory Devices | |
JP2020531959A5 (en) | ||
US20200117449A1 (en) | Accelerated Access to Computations Results Generated from Data Stored in Memory Devices | |
JP6468100B2 (en) | Memory system, memory control method, and program | |
CN114154615A (en) | Neural architecture searching method and device based on hardware performance | |
US20230205700A1 (en) | Selective speculative prefetch requests for a last-level cache | |
US20220223201A1 (en) | Caching Techniques for Deep Learning Accelerator | |
JP2016042322A (en) | Data analysis device, analysis method, and program thereof | |
JP6443125B2 (en) | Compiler program, computer program, and compiler apparatus | |
US11694076B2 (en) | Memory sub-system with internal logic to perform a machine learning operation | |
US11681909B2 (en) | Memory component with a bus to transmit data for a machine learning operation and another bus to transmit host data | |
US11769076B2 (en) | Memory sub-system with a virtualized bus and internal logic to perform a machine learning operation | |
KR20210138497A (en) | Management of peak current of memory dies in a memory sub-system | |
JPWO2017082323A1 (en) | Distributed processing system, distributed processing apparatus, distributed processing method and program | |
US11630594B2 (en) | Storing data based on a probability of a data graph | |
US20240220407A1 (en) | Method and apparatus for managing unified virtual memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180413 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180919 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181002 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181130 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20181218 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181231 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6468100 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |