JP7292039B2 - マシンラーニング装置、及びそれを利用したマシンラーニングシステム - Google Patents

マシンラーニング装置、及びそれを利用したマシンラーニングシステム Download PDF

Info

Publication number
JP7292039B2
JP7292039B2 JP2019005632A JP2019005632A JP7292039B2 JP 7292039 B2 JP7292039 B2 JP 7292039B2 JP 2019005632 A JP2019005632 A JP 2019005632A JP 2019005632 A JP2019005632 A JP 2019005632A JP 7292039 B2 JP7292039 B2 JP 7292039B2
Authority
JP
Japan
Prior art keywords
machine learning
data
storage unit
raw
data storage
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
JP2019005632A
Other languages
English (en)
Other versions
JP2019204485A (ja
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.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
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 SK Hynix Inc filed Critical SK Hynix Inc
Publication of JP2019204485A publication Critical patent/JP2019204485A/ja
Application granted granted Critical
Publication of JP7292039B2 publication Critical patent/JP7292039B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1004Compatibility, e.g. with legacy hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Logic Circuits (AREA)
  • Memory System (AREA)
  • Stored Programmes (AREA)

Description

本発明は、マシンラーニング装置に関し、より詳しくは、汎用のメモリモジュールインタフェースを有するマシンラーニング装置に関する。
マシンラーニングシステム(machine learning system)は、外部から与えられるデータを介して学習し、学習の結果を踏まえて入力に応じた出力を予測するシステムであって、マシンラーニングシステムの開発は活発に行われている。
このようなマシンラーニングシステムは、マシンラーニングのための別途の専用ボードまたはUSBタイプの装置でなるか、GPU(Graphic Process Unit)を用いるグラフィックカード形態の構成を有する場合が大部分である。
マシンラーニングを活用した技術がなおさら日常生活に染み込んでいる状況で、より多様な形態のマシンラーニング装置の開発が求められている実情である。
本実施形態は、既存のコンピュータシステムに容易に適用することができる汎用のメモリモジュールインタフェースを有するマシンラーニング装置を提供する。
本発明の一実施形態に係るマシンラーニング装置は、メモリモジュールインタフェースを介してホスト装置から提供されたローデータ及びコマンドデータ、前記ローデータがマシンラーニングされたマシンラーニングデータ、並びに前記マシンラーニングデータに対する位置データを格納するデータ格納部と、既にプログラミングされたマシンラーニングロジックに従って前記ローデータを処理することで前記マシンラーニングデータを生成するマシンラーニングロジック部と、前記コマンドデータに基づき、前記データ格納部から前記ローデータを読み取って前記マシンラーニングロジック部に提供し、前記マシンラーニングデータを前記位置データとともに前記データ格納部に書き込むマシンラーニングコントローラとを備えることができる。
本発明の一実施形態に係るマシンラーニングシステムは、一つ以上のプロセッサを含むホスト装置と、前記ホスト装置からの書込みコマンドに従って提供されたローデータを、既にプログラミングされたマシンラーニングロジックに従って処理することでマシンラーニングデータを生成し、前記ホスト装置からの読取りコマンドに従って前記マシンラーニングデータを前記ホスト装置に提供するマシンラーニング装置と備え、該マシンラーニング装置が、コンピュータマザーボード(motherboard)との連結を可能にするチップピン(chip pins)を備えるメモリモジュールの形態を有することができる。
本発明の一実施形態に係るデータ格納装置は、メモリに格納されたデータを演算し、演算された値をメモリに格納するように求めるメモリコマンドを出力するホストと、前記ホストからのメモリコマンドに従いメモリに格納された演算対象データを読み取って演算し、演算の結果をメモリの目的地アドレスに格納するメモリ制御装置とを備えることができる。
本実施形態では、マシンラーニング装置を汎用のメモリモジュールの形態に形成することにより、通常のコンピュータにマシンラーニング機能を容易に適用することができる。
本発明の一実施形態に係るマシンラーニングシステムの構成を示す図である。 図1の構成において、ホスト装置とマシンラーニング装置の関係をより詳しく示した図である。 本発明の一実施形態に係る図2のマシンラーニング装置の構成をより詳しく示した図である。 メモリ素子において各データが格納される領域が物理的に区分されていることを示す図である。 図3におけるマシンラーニングロジック部の各FPGAの構成をより詳しく示した図である。 本発明の一実施形態に係るホスト装置とマシンラーニング装置の動作を説明するためのタイミング図である。 本発明の他の実施形態に係るマシンラーニング装置の構成を示す図である。 本発明のまた他の実施形態に係るマシンラーニング装置300の構成を示す図である。
以下、図を参照しつつ、本発明の多様な実施形態について詳しく説明する。本文書において図上の同一の構成要素に対しては同一の参照符号を使用し、同一の構成要素について重複された説明は省略する。
本文書に開示されている本発明の多様な実施形態について、特定の構造的ないし機能的な説明は、ただ本発明の実施形態を説明するための目的に例示されたもので、本発明の多様な実施形態は幾多の形態に実施されてよく、本文書に説明された実施形態に限定されるものとして解釈されてはならない。
多様な実施形態で用いられた『第1』または『第2』などの表現は、多様な構成要素を、順序及び/または重要度に係わりなく修飾することができ、当該構成要素を限定しない。例えば、本発明の権利範囲を外れないつつ第1構成要素は第2構成要素に命名されてよく、同様に第2構成要素も第1構成要素に変えて命名されてよい。
本文書で用いられた用語等は、ただ特定の実施形態を説明するために用いられたもので、他の実施形態の範囲を限定しようとする意図ではないことがある。単数の表現は、文脈上明らかに異なる意味を有しない限り、複数の表現を含むことができる。
技術的や科学的な用語を含めてここで用いられる全ての用語は、本発明の技術分野で通常の知識を有する者によって一般に理解されるものと同一の意味を有してよい。一般に用いられる辞書に定義されている用語等は、関連技術の文脈上有する意味と同一または類似の意味を有するものとして解釈されてよく、本文書で明らかに定義されない限り、理想的や過度に形式的な意味に解釈されない。場合によって、本文書で定義されている用語であっても、本発明の実施形態等を排除するように解釈され得ない。
図1は、本発明の一実施形態に係るマシンラーニングシステムの構成を示す図である。
図1に示したマシンラーニングシステムは、ホスト装置100、メモリ装置200及びマシンラーニング装置300を含むことができる。
図1に示す通り、ホスト装置100は、一つ以上のプロセッサを含む中央処理装置(CPU)またはグラフィック処理装置(Graphic Processing Unit、GPU)などのような演算装置を含むことができる。ホスト装置100は、メモリ装置200と通信することで演算動作に必要なデータの提供をメモリ装置200から受けて演算の結果をメモリ装置200に格納する。また、ホスト装置100は、マシンラーニング装置300にマシンラーニング遂行の命令及びマシンラーニングに必要なデータを提供し、マシンラーニング装置300からマシンラーニングの結果の提供を受ける。このとき、ホスト装置100は、ホスト装置100内に備えられているメモリコントローラ(MC)を介してメモリ装置200及びマシンラーニング装置300と通信することができる。
メモリ装置200は、ホスト装置100から提供されたデータ、またはホスト装置100に提供されるデータを格納し、ホスト装置100の演算動作を補助する動作を行うことができる。メモリ装置200は、揮発性メモリを含む如何なる格納媒体にも具現されてよい。このようなメモリ装置200は、DIMM(Dual-Inline Memory Module)標準によるモジュールの形態に形成されてよい。例えば、メモリ装置200は、UDIMM(Unbuffered Dual In-Line Memory Module)、RDIMM(Registered DIMM)、LRDIMM(Load Reduced DIMM)、NVDIMM(Non Volatile DIMM)などを含むことができる。
マシンラーニング装置300は、ホスト装置100からの書込み命令とともに提供されたロー(raw)データを、既にプログラミングされたマシンラーニングロジックに従って処理することでマシンラーニングデータを生成し、ホスト装置100からの読取り命令に従ってマシンラーニングデータをホスト装置100に提供する。マシンラーニング装置300は、コンピュータマザーボード(motherboard)10との連結を可能にするチップピン(chip pins)を含む回路基板(circuit board)上に多重DRAMチップ等を含むメモリモジュールの形態に形成されてよい。例えば、マシンラーニング装置300は、メモリ装置200と同様にDIMM(Dual-Inline Memory Module)標準によるメモリモジュールの形態に形成されてよい。すなわち、ホスト装置100の観点では、マシンラーニング装置300もメモリ装置200と同様にDIMMに取り扱われる。
図1におけるホスト装置100、メモリ装置200及びマシンラーニング装置300は、データセンター内サーバ(図示省略)のマザーボード10に取り付けられた形態に形成されてよい。
図2は、図1の構成において、ホスト装置100とマシンラーニング装置300の関係をより詳しく示した図である。
図2に示す通り、ホスト装置100は、マシンラーニングが必要な場合、メモリコントローラ(MC)を介してマシンラーニングのために必要なデータ(DATA_CMD、DATA_RAW)をマシンラーニング装置300に提供し、マシンラーニングされたデータ(マシンラーニングデータ)(DATA_ML)の提供をマシンラーニング装置300から受ける。このとき、ホスト装置100は、メモリ装置200にデータを書き込むか読み取る時と同じ方法で、メモリコントローラ(MC)を利用したDIMMインタフェースを介してマシンラーニング装置300にデータを書き込むか読み取ることによりマシンラーニング装置300と通信する。すなわち、ホスト装置100は、メモリ装置200にデータを書き込む時と同じ方法でマシンラーニング装置300にマシンラーニングのためのデータ(DATA_CMD、DATA_RAW)を提供し、メモリ装置200のデータを読み取る時と同じ方法でマシンラーニング装置300からマシンラーニングデータ(DATA_ML)の提供を受ける。
例えば、ホスト装置100は、マシンラーニング装置300にマシンラーニングを行わせようとする場合、クロック信号(CLK)、書込みコマンド(CMD_W)及びアドレス情報(ADDR)を利用し、コマンドデータ(DATA_CMD)、及びマシンラーニングに用いられる原データであるローデータ(DATA_RAW)を、マシンラーニング装置300内のメモリ素子等(例えば、DRAM)に書き込む。以後、ホスト装置100は、クロック信号(CLK)、読取りコマンド(CMD_R)及びアドレス情報(ADDR)を利用してマシンラーニング装置300内のメモリ素子等に格納されたデータを読み取ることによりマシンラーニングデータ(DATA_ML)の提供を受ける。すなわち、ホスト装置100は、マシンラーニング装置300をDIMMのように取り扱ってデータを書き込むか読み取る。マシンラーニングされたデータ(DATA_ML)を読み取る時、ホスト装置100は、マシンラーニング装置300のメモリ素子の特定の位置を周期的にモニタリングすることで、マシンラーニングされたデータ(DATA_ML)が格納されたのか否かを先ず確認することができる。
マシンラーニング装置300は、既にプログラミングされたマシンラーニングロジックに従ってホスト装置100から提供されたローデータ(DATA_RAW)を処理することでマシンラーニングを行い、マシンラーニングされたマシンラーニングデータ(DATA_ML)をホスト装置100に提供する。例えば、マシンラーニング装置300は、ホスト装置100がメモリ素子に書き込んだコマンドデータ(DATA_CMD)及びローデータ(DATA_RAW)を利用してマシンラーニングを行い、マシンラーニングを介して得られた結果データ(DATA_ML)をメモリ素子に格納する。このようなマシンラーニング装置300は、マシンラーニングロジックがプログラミングされた複数のFPGA(Field Programmable Gate Array)等を備えることができる。
図3は、本発明の一実施形態に係る図2のマシンラーニング装置300の構成をより詳しく示した図である。
図3に示す通り、マシンラーニング装置300は、データ格納部310、マシンラーニングロジック部320及びマシンラーニングコントローラ330を備えることができる。
データ格納部310は、ホスト装置100から提供されたデータ(DATA_CMD、DATA_RAW)、マシンラーニング装置300で生成されたマシンラーニングデータ(DATA_ML)、及びマシンラーニングデータ(DATA_ML)に対する格納位置を知らせる位置データ(DATA_LOC)を格納する。データ格納部310は、従来のDIMMと同様に、ホスト装置100とはマザーモード10の信号ライン等を通じたDIMMインタフェースにデータの送信/受信を行う。また、データ格納部310は、マシンラーニングコントローラ330とはマシンラーニング装置300内の信号ライン等を通じてデータを送信/受信する。
このようなデータ格納部310の各メモリ素子は、図4に示す通り、ホスト装置100とのデータの送信/受信のためのデータ(DATA_CMD、DATA_LOC)が格納される領域、及び実際に送信/受信の対象となるデータ(DATA_RAW、DATA_ML)が格納される領域を含み、各領域は予め物理的に区分されるように定められてよい。
したがって、ホスト装置100は、指定された位置にコマンドデータ(DATA_CMD)を書き込み、指定された位置にアクセスして位置データ(DATA_LOC)を読み取ることができる。特に、ホスト装置100との通信のためのデータ(DATA_CMD、DATA_LOC)が格納される位置(アドレス)が予め指定されることにより、ホスト装置100は、指定された位置にアクセスしてコマンドデータ(DATA_CMD)を書き込み、指定された位置にアクセスして位置データ(DATA_LOC)を読み取ることができる。このようなデータ格納部310のメモリ素子等は、揮発性メモリ素子、例えば、DRAMを備えることができる。
マシンラーニングロジック部320は、マシンラーニングコントローラ330からローデータ(DATA_RAW)の提供を受けると、既にプログラミングされたマシンロジックに従ってローデータ(DATA_RAW)を処理することでマシンラーニングを行い、マシンラーニングされたデータ(DATA_ML)をマシンラーニングコントローラ330に提供する。マシンラーニングロジック部320は、マシンラーニングロジックがプログラミングされたFPGA(Field Programmable Gate Array)(FPGA 1~FPGA n)を備えることができる。
このとき、FPGA(FPGA 1~FPGA n)は、それぞれ独立してマシンラーニングコントローラ330からローデータ(DATA_RAW)の提供を受けてマシンラーニングを行った後、マシンラーニングされたマシンラーニングデータ(DATA_ML)をマシンラーニングコントローラ330に提供することができる。もしくは、FPGA(FPGA 1~FPGA n)は、マシンラーニングロジックを順次行うことができる。例えば、FPGA 1は、提供されたローデータを利用し、既にプログラミングされたロジックに従ってマシンラーニングを行った後、その結果データをFPGA 2に提供し、FPGA 2は、FPGA 1で処理されたデータを利用し、既にプログラミングされたロジックに従ってマシンラーニングを行った後、その結果データをFPGA 3に提供することができる。このような方法でFPGA nまで順次マシンラーニングを行った後、最終のFPGA nがマシンラーニングコントローラ330に完了したマシンラーニングデータ(DATA_ML)を提供することができる。
マシンラーニングコントローラ330は、データ格納部310に格納されたローデータ(DATA_RAW)をマシンラーニングロジック部320に提供し、マシンラーニングロジック部320によってマシンラーニングされたデータ(DATA_ML)をデータ格納部310に格納する。例えば、マシンラーニングコントローラ330は、データ格納部310の特定の領域にコマンドデータ(DATA_CMD)が格納されたのか否かを周期的にモニタリングし、コマンドデータ(DATA_CMD)に基づいてデータ格納部310からローデータ(DATA_RAW)を読み取った後、これをマシンラーニングロジック部320に提供する。
マシンラーニングコントローラ330は、マシンラーニングロジック部320でマシンラーニングを行う間にはデータ格納部310との連結を遮断することができる。マシンラーニングが完了すれば、マシンラーニングコントローラ330は、マシンラーニングされたデータ(DATA_ML)の提供をマシンラーニングロジック部320から受けてデータ格納部310に書き込む。次いで、マシンラーニングコントローラ330は、マシンラーニングされたデータ(DATA_ML)の格納位置を知らせる位置データ(DATA_LOC)を予め設定された位置に書き込む。
図5は、図3におけるマシンラーニングロジック部320の各FPGAの構成をより詳しく示した図である。図5では、説明の便宜のため、隣接した二つのFPGA(FPGA 1、FPGA 2)の構成、及びこれらとマシンラーニングコントローラ330の関係のみを例示的に示している。
図5に示す通り、各FPGAは、ロジック部322、入力バッファ324及び出力バッファ326を備えることができる。
ロジック部322は、マシンラーニングロジックがプログラミングされ、プログラミングされたロジックに従って入力バッファ324に格納されたローデータ(DATA_RAW)を処理することでマシンラーニングデータ(DATA_ML)を生成し、生成されたマシンラーニングデータ(DATA_ML)を出力バッファ326に出力する。
入力バッファ324は、マシンラーニングコントローラ330と連結され、マシンラーニングコントローラ330から提供されたローデータ(DATA_RAW)を一時格納する。
出力バッファ326は、マシンラーニングコントローラ330または次のFPGAの入力バッファと連結され、ロジック部322で処理されたデータ(DATA_ML)を一時格納する。最後のFPGA(FPGA n)の出力バッファ326は、マシンラーニングコントローラ330と連結される。
図6は、本発明の一実施形態に係るホスト装置とマシンラーニング装置の動作を説明するためのタイミング図である。
図6に示す通り、マシンラーニング装置300のマシンラーニングコントローラ330は、データ格納部310で予め指定された特定の格納位置を周期的にアクセスし、当該位置にホスト装置100からのコマンドデータ(DATA_CMD)が格納されたのか否かをモニタリングする(ステップ(1))。
ホスト装置100は、マシンラーニングが必要な場合、DIMMインタフェースを介しマシンラーニング装置300のデータ格納部310にアクセスしてローデータ(DATA_RAW)を書き込み、マシンラーニングの開始を指示するコマンド、及びローデータ(DATA_RAW)が格納された位置を知らせる情報を含むコマンドデータ(DATA_CMD)を指定された位置に書き込む(ステップ(2))。
ホスト装置100がコマンドデータ(DATA_CMD)及びローデータ(DATA_RAW)を書き込むと、マシンラーニングコントローラ330は、ステップ(1)のような周期的なモニタリングを介し、データ格納部310にコマンドデータ(DATA_CMD)が格納されたことが分かるようになる。
コマンドデータ(DATA_CMD)が格納されたことを確認したマシンラーニングコントローラ330は、コマンドデータ(DATA_CMD)が知らせる格納位置にアクセスしてローデータ(DATA_RAW)を読み取った(ステップ(3))後、読み取ったローデータ(DATA_RAW)をマシンラーニングロジック部320の入力バッファ324に伝送する(ステップ(4))。
マシンラーニングロジック部320は、提供されたローデータ(DATA_RAW)を既にプログラミングされたマシンラーニングロジックに従って処理することでマシンラーニング動作を行う(ステップ(5))。
このとき、マシンラーニングロジック部320のFPGA(FPGA 1~FPGA n)は、それぞれ独立してマシンラーニングコントローラ330から提供されたローデータ(DATA_RAW)を処理した後、そのマシンラーニングデータ(DATA_ML)をマシンラーニングコントローラ330に提供することができる。
マシンラーニングプログラムのサイズが大きいため、一つのFPGAだけで処理が不可能な場合は、FPGA(FPGA 1~FPGA n)は、順次マシンラーニングを行うことができる。例えば、FPGA 1は、提供されたローデータを利用し、既にプログラミングされたロジックに従ってマシンラーニングを行った後、その結果データをFPGA 2に提供する。FPGA 2は、FPGA 1から提供されたデータ(または、FPGA 1から提供されたデータと自分の入力バッファのデータ)を利用し、既にプログラミングされたロジックに従ってマシンラーニングを行った後、その結果データをFPGA 3に提供する。このような方法で、FPGA nまで順次マシンラーニングが行われる。
マシンラーニングが完了したデータ(DATA_ML)は、マシンラーニングコントローラ330に伝送される(ステップ(6))。
マシンラーニングコントローラ330は、データ格納部310にアクセスしてマシンラーニングされたデータ(DATA_ML)を書き込み、既に指定された特定の位置にマシンラーニングされたデータ(DATA_ML)が格納された位置を知らせる位置データ(DATA_LOC)を書き込む(ステップ(7))。
ホスト装置100は、ローデータ(DATA_RAW)を書き込んだ後、データ格納部310で予め指定された特定の格納位置を周期的にアクセスし、当該位置に位置データ(DATA_LOC)が格納されているのかをモニタリングする(ステップ(8))。
位置データ(DATA_LOC)が格納されたことを確認したホスト装置100は、位置データ(DATA_LOC)が知らせる格納位置にアクセスしてマシンラーニングデータ(DATA_ML)を読み取る(ステップ(9))。
図7は、本発明の他の実施形態に係るマシンラーニング装置300の構成を示す図である。
図3のマシンラーニング装置では、マシンラーニングロジック部320のFPGA(FPGA 1~FPGA n)が、図5に示す通り、その内部にバッファ324、326を含み、バッファ324、326を介してマシンラーニングコントローラ330と、ローデータ(DATA_RAW)及びマシンラーニングされたデータ(DATA_ML)の送信/受信を行った。
一方、図7のマシンラーニング装置300におけるマシンラーニングロジック部340は、FPGA(FPGA 1’~FPGA n’)の外部に別に形成されたメモリ素子340を備えることができる。すなわち、FPGA(FPGA 1’~FPGA n’)とマシンラーニングコントローラ350は、メモリ素子340を介してローデータ(DATA_RAW)及びマシンラーニングされたデータ(DATA_ML)を送信/受信することができる。
図7に示す通り、マシンラーニング装置300は、データ格納部310、マシンラーニングロジック部340及びマシンラーニングコントローラ350を備えることができる。
データ格納部310は、図3におけるデータ格納部310とその構造及び機能が同一である。よって、これに対する説明は省略する。
マシンラーニングロジック部340は、マシンラーニングコントローラ330から提供されたローデータ(DATA_RAW)を、既にプログラミングされたマシンロジックに従って処理することでマシンラーニングデータ(DATA_ML)を生成し、生成されたマシンラーニングデータ(DATA_ML)をマシンラーニングコントローラ330に提供する。マシンラーニングロジック部340は、マシンラーニングロジックがプログラミングされたFPGA(FPGA 1’~FPGA n’)、及びFPGA(FPGA 1’~FPGA n’)と一対一に対応されるように形成される複数のメモリ素子342を備えることができる。
FPGA(FPGA 1’~FPGA n’)は、メモリ素子342に格納されたローデータ(DATA_RAW)を読み取り、マシンラーニングロジックに従って処理し、マシンラーニングされたデータ(DATA_ML)をメモリ素子342に書き込む。FPGA(FPGA 1’~FPGA n’)のマシンラーニングロジックは、図3のFPGA(FPGA 1~FPGA n)のマシンラーニングロジックと同様にプログラミングされてよい。ただし、FPGA(FPGA 1’~FPGA n’)は、内部のバッファを介してデータを入力/出力することなく、外部のメモリ素子342にデータを書き込むか、メモリ素子342に格納されたデータを読み取る方式でデータを入力/出力するという点で、図3のFPGA(FPGA 1~FPGA n)と違いがある。
FPGA(FPGA 1’~FPGA n’)は、それぞれ独立してローデータ(DATA_RAW)を処理することでマシンラーニングデータ(DATA_ML)を生成するか、順次マシンラーニングを行うことで最終のFPGA(FPGA n’)がマシンラーニングデータ(DATA_ML)を生成することができる。
メモリ素子342は、図5において、各FPGA(FPGA 1~FPGA n)に内蔵された入力バッファ及び出力バッファの役割を担う。メモリ素子342は、データ格納部310のメモリ素子と同様に、各データ(DATA_CMD、DATA_LOC、DATA_RAW、DATA_ML)が格納される領域が予め物理的に区分されて定められてよい。
マシンラーニングコントローラ350は、データ格納部310に格納されたローデータ(DATA_RAW)をメモリ素子342に伝達し、メモリ素子342に格納されたマシンラーニングデータ(DATA_ML)をデータ格納部310に伝達する。すなわち、マシンラーニングコントローラ350は、ホスト装置100がデータ格納部310に書き込んだローデータ(DATA_RAW)を読み取ってメモリ素子342に書き込み、FPGA(FPGA 1’~FPGA n’)がメモリ素子342に書き込んだマシンラーニングデータ(DATA_ML)を読み取ってデータ格納部310に書き込む。
このとき、マシンラーニングコントローラ350がデータ格納部310を介してホスト装置100とデータ(DATA_RAW、DATA_ML)の送信/受信を行う方法は、図3において、マシンラーニングコントローラ330がデータ格納部310を介してホスト装置100とデータ(DATA_RAW、DATA_ML)の送信/受信を行う方法と同一であってよい。また、マシンラーニングコントローラ350がメモリ素子342を介してFPGA(FPGA 1’~FPGA n’)とデータ(DATA_RAW、DATA_ML)の送信/受信を行う方法も、図3において、マシンラーニングコントローラ330がデータ格納部310を介してホスト装置100とデータ(DATA_RAW、DATA_ML)の送信/受信を行う方法と同一であってよい。よって、本実施形態ではこれに対する説明は省略する。
図8は、本発明のまた他の実施形態に係るマシンラーニング装置300の構成を示す図である。
本実施形態を図3の実施形態と比べると、本実施形態では、図3のデータ格納部310に対応されるメモリ素子362が、マシンラーニングコントローラ360内に内蔵される形態に形成されるという点で違いがある。メモリ素子362の構造及び機能は、図3のデータ格納部310に含まれるメモリ素子等と同一である。
図8は、図3の構造を変形した形態でのみ説明したが、図7の構造でもデータ格納部310のメモリ素子等は、マシンラーニングコントローラ350に内蔵される形態に形成されてよい。
以上の説明は、本発明の技術思想を例示的に説明したことに過ぎないものであって、本発明の属する技術分野で通常の知識を有する者であれば、本発明の本質的な特性から外れない範囲で多様な修正及び変形が可能なはずである。
したがって、本発明に開示されている実施形態等は、本発明の技術思想を限定するためではなく説明するためのものであり、このような実施形態によって本発明の技術思想の範囲が限定されるものではない。本発明の保護範囲は、特許請求の範囲によって解釈されなければならず、それと同等な範囲内にある全ての技術思想は、本発明の権利範囲に含まれるものとして解釈されなければならないはずである。
100 ホスト装置
200 メモリ装置
300 マシンラーニング装置
310 データ格納部、第1データ格納部
320、350 マシンラーニングロジック部
322 ロジック部
324 入力バッファ
326 出力バッファ
330、360、370 マシンラーニングコントローラ
340 第2データ格納部

Claims (20)

  1. メモリモジュールインタフェースを介してホスト装置から提供されたローデータ及びコマンドデータ、前記ローデータがマシンラーニングされたマシンラーニングデータ、並びに前記マシンラーニングデータに対する位置データを格納するデータ格納部と、
    既にプログラミングされたマシンラーニングロジックに従って前記ローデータを処理することで前記マシンラーニングデータを生成するマシンラーニングロジック部と、
    前記コマンドデータに基づき、前記データ格納部から前記ローデータを読み取って前記マシンラーニングロジック部に提供し、前記マシンラーニングデータを前記位置データとともに前記データ格納部に書き込むマシンラーニングコントローラと、
    を備えるマシンラーニング装置。
  2. 前記データ格納部が、DIMM(Dual-Inline Memory Module)インタフェースを介して前記ホスト装置とデータの送信/受信を行う請求項1に記載のマシンラーニング装置。
  3. 前記データ格納部は複数のメモリ素子を備え、各メモリ素子が、前記ローデータ、前記コマンドデータ、前記マシンラーニングデータ及び前記位置データが格納される領域が予め設定されるように構成される請求項1に記載のマシンラーニング装置。
  4. 前記マシンラーニングロジック部が、前記マシンラーニングロジックがプログラミングされた複数のFPGA(Field Programmable Gate Array)を備える請求項1に記載のマシンラーニング装置。
  5. 前記複数のFPGAが、それぞれ独立して前記マシンラーニングコントローラから前記ローデータの提供を受けてマシンラーニングを行い、前記マシンラーニングデータを前記マシンラーニングコントローラに提供する請求項4に記載のマシンラーニング装置。
  6. 前記複数のFPGAが、前記マシンラーニングロジックを順次行うことで、最終のFPGAが前記マシンラーニングデータを前記マシンラーニングコントローラに提供する請求項4に記載のマシンラーニング装置。
  7. 前記複数のFPGAが、それぞれ、
    前記マシンラーニングコントローラから提供された前記ローデータを格納する入力バッファと、
    マシンラーニングデータを格納する出力バッファと、
    前記マシンラーニングロジックがプログラミングされ、プログラミングロジックに従い前記入力バッファに格納された前記ローデータを処理して前記出力バッファに出力するロジック部と、
    を備える請求項4に記載のマシンラーニング装置。
  8. 前記マシンラーニングロジック部が、前記複数のFPGAと一対一に対応され、前記複数のFPGAと前記マシンラーニングコントローラの間に伝送される前記ローデータと前記マシンラーニングデータを一時格納する複数のメモリ素子をさらに備える請求項4に記載のマシンラーニング装置。
  9. 前記マシンラーニングコントローラが、前記データ格納部の既に設定された領域に前記コマンドデータが格納されたのかを周期的にモニタリングし、前記コマンドデータに基づいて前記データ格納部から前記ローデータを読み取った後、読み取った前記ローデータを前記マシンラーニングロジック部に提供する請求項1に記載のマシンラーニング装置。
  10. 前記マシンラーニングコントローラが、前記マシンラーニングデータを前記データ格納部に格納した後、前記データ格納部の既に設定された領域に前記マシンラーニングデータが格納された位置を知らせる前記位置データを格納する請求項9に記載のマシンラーニング装置。
  11. 前記マシンラーニングコントローラが、前記マシンラーニングデータを前記データ格納部に格納した後、前記データ格納部の既に設定された領域に前記マシンラーニングデータが格納された位置を知らせる前記位置データを格納する請求項1に記載のマシンラーニング装置。
  12. 前記データ格納部が、前記マシンラーニングコントローラに内蔵される請求項1に記載のマシンラーニング装置。
  13. 一つ以上のプロセッサを備えるホスト装置と、
    前記ホスト装置からの書込みコマンドに従って提供されたローデータを、既にプログラミングされたマシンラーニングロジックに従って処理することでマシンラーニングデータを生成し、前記ホスト装置からの読取りコマンドに従って前記マシンラーニングデータを前記ホスト装置に提供するマシンラーニング装置と、
    を備え、
    前記マシンラーニング装置が、コンピュータマザーボード(motherboard)との連結を可能にするチップピン(chip pins)、該チップピンと連結され、前記ローデータ及び前記マシンラーニングデータを格納するデータ格納部と、該データ格納部に格納された前記ローデータを処理して前記マシンラーニングデータを生成するマシンラーニングロジック部とを備えるメモリモジュールの形態を有し、
    前記データ格納部が、前記チップピンを介して前記ホスト装置から直接前記ローデータの提供を受け、前記チップピンを介して前記ホスト装置に直接前記マシンラーニングデータを提供するマシンラーニングシステム。
  14. 前記マシンラーニング装置が、DIMM(Dual-Inline Memory Module)標準によるメモリモジュールの形態を有する請求項13に記載のマシンラーニングシステム。
  15. 前記マシンラーニング装置が、前記データ格納部から前記ローデータを読み取って前記マシンラーニングロジック部に提供し、前記マシンラーニングロジック部で生成された前記マシンラーニングデータを前記データ格納部に書き込むマシンラーニングコントローラ備える請求項13に記載のマシンラーニングシステム。
  16. 前記ホスト装置が、書込みコマンド及び第1アドレス情報を利用して前記ローデータとともにコマンドデータを前記データ格納部に書き込み、読取りコマンド及び第2アドレス情報を利用して前記データ格納部に格納されたマシンラーニングデータを読み取るように構成される請求項15に記載のマシンラーニングシステム。
  17. 前記ホスト装置が、前記データ格納部の既に指定された領域を周期的にモニタリングすることで、前記データ格納部に前記マシンラーニングデータが格納されたのか否かを確認するように構成される請求項15に記載のマシンラーニングシステム。
  18. 前記マシンラーニングロジック部が、前記マシンラーニングロジックがプログラミングされた複数のFPGA(Field Programmable Gate Array)を備える請求項15に記載のマシンラーニングシステム。
  19. 前記複数のFPGAが、それぞれ、
    前記マシンラーニングコントローラから提供された前記ローデータを格納する入力バッファと、
    マシンラーニングデータを格納する出力バッファと、
    前記マシンラーニングロジックがプログラミングされ、プログラミングロジックに従い前記入力バッファに格納された前記ローデータを処理して前記出力バッファに出力するロジック部と、
    を備える請求項18に記載のマシンラーニングシステム。
  20. 前記データ格納部が、前記マシンラーニングコントローラに内蔵される請求項15に記載のマシンラーニングシステム。
JP2019005632A 2018-05-25 2019-01-17 マシンラーニング装置、及びそれを利用したマシンラーニングシステム Active JP7292039B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180059754A KR102615443B1 (ko) 2018-05-25 2018-05-25 머신 러닝 장치 및 이를 이용한 머신 러닝 시스템
KR10-2018-0059754 2018-05-25

Publications (2)

Publication Number Publication Date
JP2019204485A JP2019204485A (ja) 2019-11-28
JP7292039B2 true JP7292039B2 (ja) 2023-06-16

Family

ID=68614695

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019005632A Active JP7292039B2 (ja) 2018-05-25 2019-01-17 マシンラーニング装置、及びそれを利用したマシンラーニングシステム

Country Status (4)

Country Link
US (1) US11972328B2 (ja)
JP (1) JP7292039B2 (ja)
KR (1) KR102615443B1 (ja)
CN (1) CN110533188A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220051089A1 (en) * 2020-08-17 2022-02-17 Google Llc Neural Network Accelerator in DIMM Form Factor
US11592984B2 (en) 2020-09-11 2023-02-28 Seagate Technology Llc Onboard machine learning for storage device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002207713A (ja) 2001-01-11 2002-07-26 Matsushita Electric Ind Co Ltd Cpu間データ通信方法および装置
WO2017171769A1 (en) 2016-03-31 2017-10-05 Hewlett Packard Enterprise Development Lp Logical operations
JP2018028910A (ja) 2016-08-15 2018-02-22 三星電子株式会社Samsung Electronics Co.,Ltd. Ddr sdramインタフェイスのためのdram支援エラー訂正メカニズム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3005141B2 (ja) * 1993-06-07 2000-01-31 株式会社日立製作所 気象予測システムおよびニューロコンピュータ制御システム
JPH0736699A (ja) 1993-07-15 1995-02-07 Omron Corp ファジィ・コンピュータ・システムおよびその動作方法、ファジィ推論回路および方法、ならびにディバイス・ドライバおよびその動作方法
JPH1115773A (ja) 1997-06-24 1999-01-22 Matsushita Electron Corp 半導体集積回路、コンピュータシステム、データ処理装置及びデータ処理方法
US6028447A (en) 1997-07-24 2000-02-22 Lucent Technologies Inc. FPGA having predictable open-drain drive mode
US10572824B2 (en) 2003-05-23 2020-02-25 Ip Reservoir, Llc System and method for low latency multi-functional pipeline with correlation logic and selectively activated/deactivated pipelined data processing engines
US8015433B2 (en) 2006-09-13 2011-09-06 Hitachi Global Storage Technologies Netherlands B.V. Disk drive with nonvolatile memory for storage of failure-related data
US9766818B2 (en) * 2014-12-31 2017-09-19 Samsung Electronics Co., Ltd. Electronic system with learning mechanism and method of operation thereof
US10013212B2 (en) * 2015-11-30 2018-07-03 Samsung Electronics Co., Ltd. System architecture with memory channel DRAM FPGA module
US20170169358A1 (en) * 2015-12-09 2017-06-15 Samsung Electronics Co., Ltd. In-storage computing apparatus and method for decentralized machine learning
KR20170100416A (ko) 2016-02-25 2017-09-04 에스케이하이닉스 주식회사 집적 회로 시스템
JP6320439B2 (ja) * 2016-03-10 2018-05-09 株式会社東芝 メモリ制御装置、ストレージ装置、ストレージ装置の制御プログラム、及び、ストレージ装置の制御方法
US20180025268A1 (en) 2016-07-21 2018-01-25 Tessera Advanced Technologies, Inc. Configurable machine learning assemblies for autonomous operation in personal devices
US11694066B2 (en) * 2017-10-17 2023-07-04 Xilinx, Inc. Machine learning runtime library for neural network acceleration
US10394706B2 (en) * 2017-11-02 2019-08-27 Western Digital Technologies, Inc. Non-volatile storage with adaptive command prediction
US11373088B2 (en) * 2017-12-30 2022-06-28 Intel Corporation Machine learning accelerator mechanism

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002207713A (ja) 2001-01-11 2002-07-26 Matsushita Electric Ind Co Ltd Cpu間データ通信方法および装置
WO2017171769A1 (en) 2016-03-31 2017-10-05 Hewlett Packard Enterprise Development Lp Logical operations
JP2018028910A (ja) 2016-08-15 2018-02-22 三星電子株式会社Samsung Electronics Co.,Ltd. Ddr sdramインタフェイスのためのdram支援エラー訂正メカニズム

Also Published As

Publication number Publication date
CN110533188A (zh) 2019-12-03
JP2019204485A (ja) 2019-11-28
KR20190134293A (ko) 2019-12-04
US11972328B2 (en) 2024-04-30
KR102615443B1 (ko) 2023-12-20
US20190362261A1 (en) 2019-11-28

Similar Documents

Publication Publication Date Title
CN108320764B (zh) 半导体设备、存储器模块及其操作方法
US9805802B2 (en) Memory device, memory module, and memory system
EP2324431B1 (en) Input-output module, processing platform and method for extending a memory interface for input-output operations
US9824004B2 (en) Methods and apparatuses for requesting ready status information from a memory
CN102084428B (zh) 多模式存储器装置和方法
US11226766B2 (en) Buffer circuit with data bit inversion
CN109661654B (zh) 存储器中的差错校验和纠正码的扩展应用
US9026870B2 (en) Memory module and a memory test system for testing the same
US9792978B2 (en) Semiconductor memory device and memory system including the same
US10599206B2 (en) Techniques to change a mode of operation for a memory device
TW201519237A (zh) 用於組態用於混合記憶體模組之記憶體之輸入/輸出之裝置及方法
JP7292039B2 (ja) マシンラーニング装置、及びそれを利用したマシンラーニングシステム
US9792230B2 (en) Data input circuit of semiconductor apparatus
WO2007116483A1 (ja) メモリ装置、その制御方法、その制御プログラム、メモリ・カード、回路基板及び電子機器
JP5107776B2 (ja) メモリコントローラ、メモリシステム、及びメモリデバイスへのデータの書込方法
TWI757300B (zh) 用於執行內部程序之記憶體裝置及其操作方法
US8635418B2 (en) Memory system and method for passing configuration commands
EP3958138A1 (en) Neural network accelerator in dimm form factor
WO2015181933A1 (ja) メモリモジュールとメモリバスシステム及び計算機システム
TW201619849A (zh) 應用於x86系統之訊號讀取之控制與切換模組
TW201517049A (zh) 儲存裝置及其記憶體控制方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230317

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: 20230516

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230606

R150 Certificate of patent or registration of utility model

Ref document number: 7292039

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150