JP6468100B2 - Memory system, memory control method, and program - Google Patents

Memory system, memory control method, and program Download PDF

Info

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
Application number
JP2015134560A
Other languages
Japanese (ja)
Other versions
JP2017016524A (en
Inventor
駿 五木田
駿 五木田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015134560A priority Critical patent/JP6468100B2/en
Publication of JP2017016524A publication Critical patent/JP2017016524A/en
Application granted granted Critical
Publication of JP6468100B2 publication Critical patent/JP6468100B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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.

特開2002−215456号公報JP 2002-215456 A

メモリへのアクセスが空間的局所性を持つことを利用して、過去にアクセスしたアドレスに対して連続したアドレスのデータを先読みするシーケンシャル先読み技術が知られている。しかし、シーケンシャル先読み技術は、メモリへのアクセスが空間的局所性を持つことを前提とした技術であり、空間的局所性がない場合には次にアクセスするアドレスの予測が困難になるという課題がある。   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の実施形態によるメモリシステムの構成例を示す図である。FIG. 1 is a diagram illustrating a configuration example of a memory system according to the first embodiment. 図2は、アドレスの履歴を示す図である。FIG. 2 is a diagram showing an address history. 図3は、学習部の学習を示す図である。FIG. 3 is a diagram illustrating learning by the learning unit. 図4は、メモリシステムのメモリ制御方法を示すフローチャートである。FIG. 4 is a flowchart showing a memory control method of the memory system. 図5は、図4のステップS403の処理の詳細を示すフローチャートである。FIG. 5 is a flowchart showing details of the process in step S403 of FIG. 図6は、シーケンシャル割合に対する実行時間のシミュレーション結果を示す図である。FIG. 6 is a diagram illustrating a simulation result of the execution time with respect to the sequential ratio. 図7は、第2の実施形態によるメモリシステムの構成例を示す図である。FIG. 7 is a diagram illustrating a configuration example of the memory system according to the second embodiment.

(第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 computer system 101 and a learning system 102. The computer system 101 includes a central processing unit (CPU) 111, a memory bus 112, a memory controller 113, and a memory 115. The memory controller 113 has a first learning model 114a and a second learning model 114b. The first learning model 114a is, for example, a support vector (SV) regression model. The second learning model 114b is, for example, a stochastic gradient descent (SGD) regression model. The memory 115 includes a plurality of interleaved memory banks (memory units) 116a to 116d, and stores information for each address.

メモリバンク116a〜116dは、DRAM(Dynamic Random Access Memory)の他、次世代のメモリデバイスとして期待されているMRAM(Magnetoresistive Random Access Memory)、ReRAM(Resistive Random Access Memory)、PCM(Phase Change Random Access Memory)でもよい。   The memory banks 116a to 116d include DRAM (Dynamic Random Access Memory), MRAM (Magnetoresistive Random Access Memory), ReRAM (Resistive Random Access Memory), and PCM (Phase Change Random Access Memory), which are expected as next-generation memory devices. )

学習システム102は、アドレス取得部121、学習モデル選択部122及び学習部123を有する。学習部123は、第1の学習部124a及び第2の学習部124bを有し、統計的機械学習を行う。第1の学習部124aは、第1の学習モデル114aのための学習部であり、第1の学習モデル114aに用いるパラメータを学習する。第2の学習部124bは、第2の学習モデル114bのための学習部であり、第2の学習モデル114bに用いるパラメータを学習する。   The learning system 102 includes an address acquisition unit 121, a learning model selection unit 122, and a learning unit 123. The learning unit 123 includes a first learning unit 124a and a second learning unit 124b, and performs statistical machine learning. The first learning unit 124a is a learning unit for the first learning model 114a, and learns parameters used for the first learning model 114a. The second learning unit 124b is a learning unit for the second learning model 114b, and learns parameters used for the second learning model 114b.

学習部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 CPU 111 outputs an address for accessing (reading) the memory 115 to the memory bus 112. Accessed addresses are sequentially output to the memory bus 112 in chronological order. The address acquisition unit 121 acquires the address A 1 of the memory bus 112 and outputs the address history A 2 to the learning unit 123. The address acquisition unit 121 includes a storage unit that stores the address history A2. As shown in FIG. 2, the address history A2 is a history of addresses accessed in chronological order. The first learning unit 124a learns parameters for the first learning model 114a based on the address history A2. The second learning unit 124b learns parameters for the second learning model 114b based on the address history A2. When the learning parameters converge, the learning mode ends and the parameters are determined.

次に、通常モードにおいて、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 CPU 111 outputs an address for accessing (reading) the memory 115 to the memory bus 112. The address acquisition unit 121 acquires the address A1 of the memory bus 112 and outputs the address history information A3 to the learning model selection unit 122. The learning model selection unit 122 selects an optimal one from the first learning model 114a and the second learning model 114b based on the address history information A3. When the learning model selection unit 122 selects the first learning model 114a, the learning model selection unit 122 selects the first learning model 114a in the memory controller 113 by the selection signal A4, and the first signal in the learning unit 123 by the selection signal A5. Learning unit 124a is selected. Further, when selecting the second learning model 114b, the learning model selection unit 122 selects the second learning model 114b in the memory controller 113 by the selection signal A4, and selects the second learning model 114b in the learning unit 123 by the selection signal A5. The second learning unit 124b is selected. The learning unit 123 outputs the parameter A6 learned by the first learning unit 124a to the memory controller 113 when the first learning unit 124a is selected. In addition, when the second learning unit 124b is selected, the learning unit 123 outputs the parameter A6 learned by the second learning unit 124b to the memory controller 113. The memory controller 113 uses the first learning model 114a or the second learning model 114b selected by the learning model selection unit 122 to predict the next address based on the history of addresses input from the memory bus 112, By outputting the predicted address to the memory 115, information stored in the memory 115 is read. Specifically, when the learning model selection unit 122 selects the first learning model 114a, the memory controller 113 applies the parameter A6 learned by the first learning unit 124a to the first learning model 114a, The next address is predicted based on the history of addresses input from the memory bus 112. Further, when the learning model selection unit 122 selects the second learning model 114b, the memory controller 113 applies the parameter A6 learned by the second learning unit 124b to the second learning model 114b, and the memory bus 112 The next address is predicted based on the address history input from.

メモリコントローラ113は、メモリバス112から次に入力されたアドレスと上記の予測したアドレスとが同じ場合には、予測成功として、上記の予測したアドレスに基づき読み出された情報をすぐにCPU111に出力する。これに対し、メモリコントローラ113は、メモリバス112から次に入力されたアドレスと上記の予測したアドレスとが異なる場合には、予測失敗として、上記の予測したアドレスに基づき読み出された情報を捨て、上記の次に入力されたアドレスをメモリ115に出力することにより、メモリ115に記憶されている情報を読み出す。そして、メモリコントローラ113は、その読み出した情報をCPU111に出力する。上記の処理は、投機的な読み出しである。これにより、メモリコントローラ113は、CPU111から読み出し要求(アドレスを含む)を入力すると、即時にメモリ115から読み出した情報をCPU111に出力することが可能になり、読み出し速度を向上させることができる。   When the next input address from the memory bus 112 is the same as the predicted address, the memory controller 113 immediately outputs the information read based on the predicted address to the CPU 111 as the prediction success. To do. In contrast, if the next input address from the memory bus 112 is different from the predicted address, the memory controller 113 discards the information read based on the predicted address as a prediction failure. Then, the information stored in the memory 115 is read by outputting the next input address to the memory 115. Then, the memory controller 113 outputs the read information to the CPU 111. The above processing is speculative reading. As a result, when the memory controller 113 receives a read request (including an address) from the CPU 111, it is possible to immediately output the information read from the memory 115 to the CPU 111, thereby improving the reading speed.

以上のように、事前学習タイプでは、メモリコントローラ113は、学習部123の学習の終了後に、第1の学習部124a又は第2の学習部124bが学習したパラメータA6を第1の学習モデル114a又は第2の学習部114bに適用して、次のアドレスを予測する。   As described above, in the prior learning type, the memory controller 113 uses the first learning model 114a or the parameter A6 learned by the first learning unit 124a or the second learning unit 124b after the learning of the learning unit 123 is completed. Applying to the second learning unit 114b, the next address is predicted.

次に、リアルタイム学習タイプについて説明する。以下、リアルタイム学習タイプが上記の事前学習タイプと異なる点を説明する。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 CPU 111 outputs an address for accessing (reading) the memory 115 to the memory bus 112. The address acquisition unit 121 acquires the address A1 of the memory bus 112, outputs the address history A2 to the learning unit 123, and outputs the address history information A3 to the learning model selection unit 122. The first learning unit 124a learns parameters for the first learning model 114a based on the address history A2. The second learning unit 124b learns parameters for the second learning model 114b based on the address history A2. The learning model selection unit 122 selects one of the first learning model 114a and the second learning model 114b based on the address history information A3. When the first learning model 114a is selected, the learning unit 123 outputs the parameter A6 learned by the first learning unit 124a to the memory controller 113. In addition, when the second learning model 114b is selected, the learning unit 123 outputs the parameter A6 learned by the second learning unit 124b to the memory controller 113. The memory controller 113 applies the parameter A6 output from the learning unit 123 to the first learning model 114a or the second learning model 114b selected by the learning model selection unit 122, and the history of addresses input from the memory bus 112 Next, the next address is predicted, and the predicted address is output to the memory 115, thereby reading the information stored in the memory 115.

以上のように、リアルタイム学習タイプでは、学習部123の学習は、メモリコントローラ113の予測と並列して行われる。これにより、学習部123の事前学習が不要になる。   As described above, in the real-time learning type, learning by the learning unit 123 is performed in parallel with prediction by the memory controller 113. Thereby, the prior learning of the learning part 123 becomes unnecessary.

メモリ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 memory 115 can improve the access speed by the plurality of memory banks 116a to 116d performing parallel processing. Since access to the memory 115 has spatial locality, the memory 115 is often accessed in the order of consecutive addresses. Addresses are assigned to the memory banks 116a to 116d in an interleaved format. For example, address 100 is assigned to memory bank 116a, address 101 is assigned to memory bank 116b, address 102 is assigned to memory bank 116c, address 103 is assigned to memory bank 116d, The address at address 104 is assigned to the memory bank 116a, and the address at address 105 is assigned to the memory bank 116b. The memory controller 113 predicts, for example, the address 117a at the address 100 based on the past history of addresses in a plurality of cycles. Then, the memory controller 113 predicts, for example, the address 117b at address 101 based on the past history of addresses in a plurality of cycles and the predicted address 117a. Then, the memory controller 113 predicts, for example, the address 117c at address 102 based on the past history of addresses in a plurality of cycles and the predicted addresses 117a and 117b. Then, the memory controller 113 predicts, for example, the address 117d at address 103 based on the history of addresses in the past plural cycles and the predicted addresses 117a, 117b, and 117c. Thereafter, the memory controller 113 outputs the predicted address 117a to the memory bank 116a, the predicted address 117b to the memory bank 116b, the predicted address 117c to the memory bank 116c, and the predicted address 117d to the memory bank 116d in parallel. To do. Then, each of the memory banks 116a to 116d reads the four pieces of information at the addresses 117a to 117d in parallel, and outputs the four pieces of read information to the memory controller 113 in parallel. This parallel processing can increase the reading speed.

なお、メモリコントローラ113は、2個の学習モデル114a及び114bを有する場合に限定されず、1個又は3個以上の学習モデルを有していてもよい。同様に、学習部123も、1個又は3個以上の学習部を有していてもよい。統計的機械学習における学習モデルは様々な種類があり、メモリコントローラ113が全ての学習モデルを有することができるが、それが困難である場合には、メモリコントローラ113は、代表的な複数の学習モデルを保持することができる。その場合、学習モデル選択部122は、それぞれの学習モデルの長所及び短所を基に、アドレス履歴情報A3に応じて最適な学習モデルを選択する。   The memory controller 113 is not limited to having two learning models 114a and 114b, and may have one or three or more learning models. Similarly, the learning unit 123 may include one or more learning units. There are various types of learning models in statistical machine learning, and the memory controller 113 can have all of the learning models, but if that is difficult, the memory controller 113 may have a plurality of representative learning models. Can be held. In this case, the learning model selection unit 122 selects an optimal learning model according to the address history information A3 based on the advantages and disadvantages of each learning model.

第1の学習モデル114aがSV回帰モデルである例を説明する。SV回帰モデルの関数f(x)は、次式(1)で表される。
f(x)=xTw+b ・・・(1)
An example in which the first learning model 114a is an SV regression model will be described. The function f (x) of the SV regression model is expressed by the following equation (1).
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 memory controller 113 inputs the address history x, calculates the function f (x) of the first learning model 114a, predicts the value of f (x) as the next address, and predicts the address f (x) Is output to the memory 115.

第1の学習部124aは、次式(2)の最適化問題を最小二乗法などにより解くことにより、SV回帰モデルのパラメータw及びbを学習により決定する。   The first learning unit 124a determines parameters w and b of the SV regression model by learning by solving the optimization problem of the following equation (2) by the least square method or the like.

Figure 0006468100
Figure 0006468100

ここで、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 first learning unit 124a determines parameters w and b that minimize the value of Expression (2), and outputs the parameters w and b as the parameter A6 to the memory controller 113. That is, as shown in FIG. 3, the first learning unit 124a performs the next address f (x i ) predicted by the function f (x) of the first learning model 114a and the next input address y. The parameters w and b are learned so that the error from i becomes small. Since the learning unit 123 performs a large amount of matrix operations, hardware specialized for matrix operations is preferable. The memory controller 113 applies the parameters w and b determined by the first learning unit 124a to the function f (x) of the first learning model 114a in Expression (1), and predicts the next address.

メモリコントローラ113は、読み出し要求があった場合に、次に入力されるであろうアドレスを予測し、そのアドレスに対して投機的に読み出しを行う。また、この先読みは、メモリバンク116a〜116dの並列数分だけ行うことが望ましい。もし、予測したアドレスのメモリバンクが、既にアクセス中のメモリバンクである場合は、先読みは行えないため、読み出しを保留し、先行していたアクセスが完了次第、先読みを再開する。   When there is a read request, the memory controller 113 predicts an address that will be input next, and speculatively reads the address. Further, it is desirable to perform this prefetching by the number of parallel memory banks 116a to 116d. If the memory bank at the predicted address is a memory bank that is already being accessed, read-ahead is not possible, so read-out is suspended and read-ahead is resumed as soon as the preceding access is completed.

例えば、第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 first learning model 114a is an SV regression model and the second learning model 114b is an SGD regression model. The SV regression model has a high generalization ability even with a small number of learning address histories. In contrast, the SGD regression model is suitable for a large number of address histories, and it has been proved that an optimal solution can be obtained mathematically. The learning model selection unit 122 selects the SGD regression model when the number of address histories learned by the learning unit 123 is greater than or equal to a threshold (for example, 100K), and the number of address histories learned by the learning unit 123 is the threshold (for example, 100K). If not, an SV regression model is selected.

図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 CPU 111 starts an access process to the memory 115 by executing a workload. The workload is, for example, a database access process or a web (Web) server process. The CPU 111 outputs a read request including an address to the memory bus 112.

次に、ステップS402では、アドレス取得部121は、メモリバス112を介して、CPU111が出力するアドレスA1を取得し、アドレス履歴情報A3を学習モデル選択部122に出力する。   Next, in step S <b> 402, the address acquisition unit 121 acquires the address A <b> 1 output by the CPU 111 via the memory bus 112 and outputs the address history information A <b> 3 to the learning model selection unit 122.

次に、ステップS403では、学習モデル選択部122は、アドレス履歴情報A3を基に、複数の学習モデルのうちの最適な1個の学習モデルを選択する。   Next, in step S403, the learning model selection unit 122 selects an optimal one learning model from the plurality of learning models based on the address history information A3.

図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 model selection unit 122 determines whether or not the number of address histories learned by the learning unit 123 is greater than or equal to a threshold (for example, 100K) based on the address history information A3. If the number of address histories learned by the learning unit 123 is greater than or equal to a threshold (eg, 100K), the process proceeds to step S502. If the number of address histories learned by the learning unit 123 is less than the threshold (eg, 100K), step The process proceeds to S503. In step S502, the learning model selection unit 122 selects the second learning model (SGD regression model) 114b. In step S503, the learning model selection unit 122 selects the first learning model (SV regression model) 114a.

なお、リアルタイム学習タイプの場合、学習モデル選択部122は、アドレス履歴数が閾値未満である場合には、SV回帰モデルを選択し、アドレス履歴数が閾値以上になった後、SGD回帰モデルを選択する。すなわち、学習モデル選択部122は、最初はSV回帰モデルを選択し、学習量が閾値を超えた後はSGD回帰モデルを選択する。   In the case of the real-time learning type, the learning model selection unit 122 selects the SV regression model when the number of address histories is less than the threshold, and selects the SGD regression model after the number of address histories exceeds the threshold. To do. That is, the learning model selection unit 122 first selects the SV regression model, and selects the SGD regression model after the learning amount exceeds the threshold.

その後、図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 model selection unit 122 selects the first learning model 114a, the first learning unit 124a determines the parameters of the first learning model 114a. When the learning model selection unit 122 selects the second learning model 114b, the second learning unit 124b determines the parameters of the second learning model 114b.

次に、ステップS405では、学習モデル選択部122は、ステップS403で選択した学習モデルの選択信号A4をメモリコントローラ113に出力する。学習部123は、ステップS404で決定したパラメータA6をメモリコントローラ113に出力する。   Next, in step S <b> 405, the learning model selection unit 122 outputs the learning model selection signal A <b> 4 selected in step S <b> 403 to the memory controller 113. The learning unit 123 outputs the parameter A6 determined in step S404 to the memory controller 113.

次に、ステップS406では、メモリコントローラ113は、学習部123から入力したパラメータA6を、学習モデル選択部122により選択された学習モデル114a又は114bに適用して、次のアドレスを予測し、その予測したアドレスをメモリ115内のメモリバンク116a〜116dに出力することにより、メモリ115内のメモリバンク116a〜116dに記憶されている情報を読み出す。   Next, in step S406, the memory controller 113 applies the parameter A6 input from the learning unit 123 to the learning model 114a or 114b selected by the learning model selection unit 122 to predict the next address, and the prediction The stored addresses are output to the memory banks 116 a to 116 d in the memory 115, thereby reading information stored in the memory banks 116 a to 116 d in the memory 115.

図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 characteristic line 602 indicates an address prediction characteristic according to the present embodiment. A characteristic line 603 indicates a characteristic based on sequential prediction. The characteristic line 602 of this embodiment shows the characteristic between the characteristic lines 601 and 603, and it can be seen that the success rate of prediction is higher than the characteristic line 603 of sequential prediction.

本実施形態によれば、学習部123がアドレス履歴の規則性を抽出するので、人手による予測が不要になる。また、空間的局所性がある場合にはシーケンシャル予測が可能であるが、空間的局所性がない場合にはシーケンシャル予測が困難である。本実施形態では、学習モデルを用いることにより、空間的局所性の有無にかかわらず、次に読み出すアドレスの予測の成功率を向上させることができる。その結果、メモリ115へのアクセスを高速化することができる。   According to the present embodiment, the learning unit 123 extracts the regularity of the address history, so that manual prediction is unnecessary. In addition, sequential prediction is possible when there is spatial locality, but sequential prediction is difficult when there is no spatial locality. In this embodiment, by using a learning model, it is possible to improve the success rate of predicting the address to be read next regardless of the presence or absence of spatial locality. As a result, the access to the memory 115 can be speeded up.

(第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 storage bus 712 in FIG. 7 is provided instead of the memory bus 112 in FIG. The SSD controller 713 in FIG. 7 is provided instead of the memory controller 113 in FIG. A memory 715 in FIG. 7 is provided instead of the memory 115 in FIG. The NAND flash memory units 716a to 716d in FIG. 7 are provided in the memory 715, and are provided instead of the memory banks 116a to 116d in FIG.

ストレージバス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 storage bus 712 is a storage bus such as SATA (Serial ATA) or SAS (Serial Attached SCSI), or a general-purpose bus such as PCI-Express. Further, since the learning system 102 is slower than the memory access, in the case of the real-time learning type, it is possible to employ a learning model algorithm that takes a long time for learning. The memory 715 includes, in addition to NAND flash memory units 716a to 716d used in general SSDs, ReRAM (Resistive Random Access Memory) and PCM (Phase Change Random Access Memory) that are expected as next-generation nonvolatile memories. ), MRAM (Magnetoresistive Random Access Memory), or the like.

第1及び第2の実施形態では、メモリコントローラ113,713、アドレス取得部121、学習モデル選択部122及び学習部123は、コンピュータがプログラムを実行することによって実現することもできる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体及び上記のプログラム等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。   In the first and second embodiments, the memory controllers 113 and 713, the address acquisition unit 121, the learning model selection unit 122, and the learning unit 123 can also be realized by a computer executing a program. Further, a computer-readable recording medium in which the above program is recorded and a computer program product such as the above program can also be applied as an embodiment of the present invention. As the recording medium, for example, a flexible disk, a hard disk, an optical disk, a magneto-optical disk, a CD-ROM, a magnetic tape, a nonvolatile memory card, a ROM, or the like can be used.

なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。   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の学習部
101 Computer System 102 Learning System 111 Central Processing Unit (CPU)
112 memory bus 113 memory controller 114a first learning model 114b second learning model 115 memory 116a to 116d memory bank 121 address acquisition unit 122 learning model selection unit 123 learning unit 124a first learning unit 124b second learning unit

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又は2記載のメモリシステム。   The memory system according to claim 1, wherein the learning model is a support vector regression model or a stochastic gradient descent regression model. 前記メモリコントローラは、次に入力されたアドレスと前記予測したアドレスとが異なる場合には、前記予測したアドレスに基づき読み出された情報を捨て、前記次に入力されたアドレスを前記メモリに出力することにより、前記メモリに記憶されている情報を読み出すことを特徴とする請求項1〜3のいずれか1項に記載のメモリシステム。   When the next input address is different from the predicted address, the memory controller discards the information read based on the predicted address and outputs the next input address to the memory. The memory system according to claim 1, wherein the information stored in the memory is read out. 前記学習モデル選択部は、前記学習部が学習した前記アドレスの履歴数に応じて選択することを特徴とする請求項1〜4のいずれか1項に記載のメモリシステム。 The memory system according to claim 1, wherein the learning model selection unit selects the learning model according to the number of histories of the address learned by the learning unit. 前記学習モデル選択部は、前記学習部が学習した前記アドレスの履歴数が閾値以上である場合には、確率的勾配降下法回帰モデルを選択し、前記学習部が学習した前記アドレスの履歴数が前記閾値未満である場合には、サポートベクター回帰モデルを選択することを特徴とする請求項1〜5のいずれか1項に記載のメモリシステム。 The learning model selection unit selects a stochastic gradient descent regression model when the number of history of the address learned by the learning unit is greater than or equal to a threshold, and the number of history of the address learned by the learning unit is The memory system according to claim 1, wherein a support vector regression model is selected when the threshold is less than the threshold. 前記メモリコントローラは、前記学習部の学習の終了後に、前記学習部が学習したパラメータを前記学習モデルに適用して、前記次のアドレスを予測することを特徴とする請求項1〜のいずれか1項に記載のメモリシステム。 The memory controller, after completion of learning of the learning unit, by applying the parameters the learning section learns the learning model, claim 1-6, characterized in that predicting the next address 2. The memory system according to item 1. 前記学習部の学習は、前記メモリコントローラの予測と並列して行われることを特徴とする請求項1〜のいずれか1項に記載のメモリシステム。 The learning of the learning, memory system according to any one of claims 1 to 6, characterized in that, taken in parallel with the prediction of the memory controller. 前記メモリは、複数のメモリ部を有し、
前記メモリコントローラは、前記複数のメモリ部に複数のアドレスを並列に出力することにより、前記複数のメモリ部の情報を並列に読み出すことを特徴とする請求項1〜のいずれか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〜のいずれか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.
学習モデル選択部により、複数の学習モデルのうちの1個の学習モデルを選択し、
学習部により、入力されるアドレスの履歴を基に、前記学習モデルのパラメータを学習し、前記選択された学習モデルのパラメータを出力し、
メモリコントローラにより、アドレスを入力し、前記出力されたパラメータを前記選択された学習モデルに適用して、前記入力したアドレスの履歴を基に次のアドレスを予測し、前記予測したアドレスをメモリに出力することにより、前記メモリに記憶されている情報を読み出すことを特徴とするメモリ制御方法。
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.
複数の学習モデルのうちの1個の学習モデルを選択し、
入力されるアドレスの履歴を基に、前記学習モデルのパラメータを学習し、前記選択された学習モデルのパラメータを出力し、
アドレスを入力し、前記出力されたパラメータを前記選択された学習モデルに適用して、前記入力したアドレスの履歴を基に次のアドレスを予測し、前記予測したアドレスをメモリに出力することにより、前記メモリに記憶されている情報を読み出す、
処理をコンピュータに実行させるプログラム。
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.
JP2015134560A 2015-07-03 2015-07-03 Memory system, memory control method, and program Active JP6468100B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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