(57)【要約】【課題】本発明は、パワー消耗を低減し、且つ、演算効率が向上したメモリ装置及びこれを含むメモリシステムを提供する。【解決手段】本発明の実施例によるメモリ装置は、データを保存するように構成されるメモリ；前記メモリに保存されたデータに対するスコアを演算し、演算したスコアのうち、臨界値以上のスコアを持つ少なくとも一つ以上のデータを出力するスコア演算ブロック；前記スコア演算ブロックから出力された前記少なくとも一つ以上のデータに基づき、アクセスする最終位置情報を生成して出力するアドレス生成ブロック；及び、前記メモリから前記最終位置情報にマッチングされるデータに対する読み出し及び書き込みを遂行するデータ読み出し/書き込みブロックを含む。【選択図】図１
2020129376.tif 000002
【特許請求の範囲】
【請求項１】
データを保存するように構成されるメモリ；
前記メモリに保存されたデータに対するスコアを演算し、演算したスコアのうち、臨界値以上のスコアを持つ少なくとも一つ以上のデータを出力するスコア演算ブロック；
前記スコア演算ブロックから出力された前記少なくとも一つ以上のデータに基づき、アクセスする最終位置情報を生成して出力するアドレス生成ブロック；及び、
前記メモリから前記最終位置情報にマッチングされるデータに対する読み出し及び書き込みを遂行するデータ読み出し/書き込みブロックを含むことを特徴とする、メモリ装置。
【請求項２】
前記アドレス生成ブロックは、
ホストから提供される少なくとも一つ以上のキーベクトルを臨時保存するように構成されるキーバッファ；及び、
前記臨界値以上のスコアを持つ前記少なくとも一つ以上のデータと、前記キーバッファに保存された前記少なくとも一つ以上のキーベクトルのうち、メインキーベクトルを除いた残りのキーベクトルとを用いて、前記最終位置情報を生成して出力するアドレス生成器を含むことを特徴とする、請求項１に記載のメモリ装置。
【請求項３】
前記アドレス生成ブロックは、前記メインキーベクトルを前記スコア演算ブロックに提供することを特徴とする、請求項２に記載のメモリ装置。
【請求項４】
前記スコア演算ブロックは、
前記アドレス生成ブロックから提供される前記メインキーベクトルを臨時保存するように構成されるメインキーバッファ；
前記メモリから読み出したデータを臨時保存するように構成されるデータバッファ；及び、
前記メインキーベクトル及び前記データ間のスコアを前記臨界値と比較するように構成される比較器を含むことを特徴とする、請求項３に記載のメモリ装置。
【請求項５】
前記メモリ装置は、行列乗算(matrix multiplication)を遂行する乗算器をさらに含むことを特徴とする、請求項４に記載のメモリ装置。
【請求項６】
前記スコア演算ブロックは、前記乗算器を用いて、前記メインキーベクトル及び前記データ間のスコアを演算して前記比較器に提供することを特徴とする、請求項５に記載のメモリ装置。
【請求項７】
前記データ読み出し/書き込みブロックは、
前記読み出しを遂行するように構成されるデータ読み出しブロック；及び、
前記書き込みを遂行するように構成されるデータ書き込みブロックを含むことを特徴とする、請求項１に記載のメモリ装置。
【請求項８】
前記データ読み出しブロックは、
前記メモリから読み出したデータを臨時保存するように構成されるデータバッファ；及び、
前記アドレス生成ブロックから提供される前記最終位置情報を臨時保存するように構成される最適スコアデータバッファを含むことを特徴とする、請求項７に記載のメモリ装置。
【請求項９】
前記データ読み出しブロックは、乗算器を用いて、前記データバッファに保存されたデータから前記最終位置情報にマッチングされるデータを検索し、検索のデータをホストに提供するように構成されることを特徴とする、請求項８に記載のメモリ装置。
【請求項１０】
前記データ書き込みブロックは、
前記メモリから読み出したデータを臨時保存するように構成されるデータバッファ；
前記アドレス生成ブロックから提供される前記最終位置情報を臨時保存するように構成される最適スコアデータバッファ；及び、
ホストから提供されるデータを臨時保存するように構成されるホストデータバッファを含むことを特徴とする、請求項７に記載のメモリ装置。
【請求項１１】
前記データ書き込みブロックは、乗算器を用いて、前記データバッファに保存されたデータから前記最終位置情報にマッチングされるデータを検索し、前記検索のデータの保存位置に前記ホストから提供されるデータを書き込むように構成されることを特徴とする、請求項１０に記載のメモリ装置。
【請求項１２】
外部から入力された要請に基づき、少なくとも一つ以上のキーベクトルを生成して出力するホスト；及び、
前記ホストから出力された前記少なくとも一つ以上のキーベクトルを用いて、メモリに保存されたデータに対するスコアを演算し、演算したスコアのうち、臨界値以上のスコアを持つ少なくとも一つ以上のデータを検索し、前記検索された少なくとも一つ以上のデータに基づいてアクセスする最終位置情報を生成し、前記メモリから前記生成された最終位置情報にマッチングされるデータに対する読み出し及び書き込みを遂行するように構成されるメモリ装置を含むことを特徴とする、メモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子装置に関し、より詳しくは、神経網アルゴリズムを用いたアドレス生成器を有するメモリ装置及びこれを含むメモリシステムに関する。
【背景技術】
【０００２】
人工知能(Artificial  Intelligence；AI)システムは、人間水準の知能を具現化するコンピュータシステムであり、既存の規則に基づいたスマートシステムとは異なり、機械が自ら学習及び判断してスマートになるシステムである。人工知能システムは、使用するほど認識率が向上し、使用者の好みをより正確に理解するようになることで、既存の規則に基づいたスマートシステムが徐々にディープラーニング基盤の人工知能システムに代替されている。人工知能技術は、ディープラーニング(機械学習)及びディープラーニングを活用する要素技術等から構成される。
【０００３】
ディープラーニングは入力データの特徴を自ら分類/学習するアルゴリズム技術であり、要素技術はディープラーニングアルゴリズムを活用する技術であって、言語的理解、視覚的理解、推論/予測、知識表現及び動作制御などのような技術分野から構成される。
【０００４】
ディープラーニングは、大別すれば、畳み込み神経網(CNN. Convolutional neural network)、循環神経網(RNN. Recurrent Neural Network)、ＬＳＴＭ(Long Short Term Memory)及びメモリネットワーク(memory network)、例えば、ＮＴＭ(Neural Turing Machine)やＭＡＮＮ(Memory Augmented Neural Network)などを含む。
【０００５】
その中、メモリネットワークは、他のディープラーニングアルゴリズムに比べ、シーケンシャルデータ(sequential data)処理性能は優れるが、1回の読み出し/書き込みを遂行する毎にメモリ装置内に保存された全てのデータを外部に転送しなければならない。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の実施例は、パワー消耗を低減し、且つ、演算効率が向上したメモリ装置及びこれを含むメモリシステムを提供する。
【課題を解決するための手段】
【０００７】
本発明の実施例によるメモリ装置は、データを保存するように構成されるメモリ；前記メモリに保存されたデータに対するスコアを演算し、演算したスコアのうち、臨界値以上のスコアを持つ少なくとも一つ以上のデータを出力するスコア演算ブロック；前記スコア演算ブロックから出力された前記少なくとも一つ以上のデータに基づき、アクセスする最終位置情報を生成して出力するアドレス生成ブロック；及び、前記メモリから前記最終位置情報にマッチングされるデータに対する読み出し及び書き込みを遂行するデータ読み出し/書き込みブロックを含む。
【０００８】
本発明の実施例によるメモリシステムは、外部から入力された要請に基づき、少なくとも一つ以上のキーベクトルを生成して出力するホスト；及び、前記ホストから出力された前記少なくとも一つ以上のキーベクトルを用いて、メモリに保存されたデータに対するスコアを演算し、演算したスコアのうち、臨界値以上のスコアを持つ少なくとも一つ以上のデータを検索し、前記検索された少なくとも一つ以上のデータに基づいてアクセスする最終位置情報を生成し、前記メモリから前記生成された最終位置情報にマッチングされるデータに対する読み出し及び書き込みを遂行するように構成されるメモリ装置を含む。
【発明の効果】
【０００９】
本発明の実施例によれば、メモリ参照のためのアドレス生成動作及びメモリに対するデータ読み出し/書き込みがメモリ装置内で遂行されることで、メモリに保存された全てのデータを外部に転送する必要がないので、データの転送に消耗されるパワーを低減し、動作遂行のための演算効率が向上できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例によるメモリシステムの構成を示すブロック図である。
【図２】図１のスコア演算ブロックの構成を示すブロック図である。
【図３】図１のアドレス生成ブロックの構成を示すブロック図である。
【図４】図１のデータ読み出し/書き込みブロックの構成を示すブロック図である。
【発明を実施するための形態】
【００１１】
本発明の多数の実施例は、低減した電力消費及び改善された演算効率を持つメモリ装置に関する。追加の実施例は、低減した電力消費及び改善された演算効率を持つメモリ装置を統合するメモリシステムを含む。一部の実施例によれば、メモリ参照のためのアドレス生成動作及びメモリに対するデータ読み出し/書き込みがメモリ装置内で遂行されるので、メモリに保存された全てのデータをメモリの外部、例えば、ホスト装置に転送する必要がない。これにより、データ転送のための消費電力が低減され、動作を遂行するための演算効率が改善される。
【００１２】
以下、神経網アルゴリズムを用いたアドレス生成装置及びこれを含むメモリシステムを、添付図面に基づいて多様な実施例により詳細に説明する。
【００１３】
図１は本発明の実施例によるメモリシステム１０の構成を示すブロック図、図２は図１のスコア演算ブロック１２０の構成を示すブロック図、図３は図１のアドレス生成ブロック１３０の構成を示すブロック図、図４は図１のデータ読み出し/書き込みブロック１５０の構成を示すブロック図である。
【００１４】
図１を参照すれば、メモリシステム１０は、メモリ装置１００及びホスト２００を含むことができる。
【００１５】
ホスト２００は、ＧＰＵ(graphic processing unit)、ＣＰＵ(central processing unit)及びＮＰＵ(neural processing unit)等を含むことができるが、これに限定されるものではない。ホスト２００は、外部から入力された要請に基づき、メモリ装置１００のメモリ１１０内に含まれたメモリセルのうち、アクセスする少なくとも一つ以上のメモリセルの位置情報を生成するために用いられるキーベクトル(key vector)(ＫＶ)を生成し、生成されたキーベクトル(ＫＶ)をメモリ装置１００に提供できる。
【００１６】
メモリ装置１００は、ホスト２００から提供されるキーベクトル(ＫＶ)に基づき、メモリ１１０内に含まれたメモリセルのうち、アクセスする少なくとも一つ以上のメモリセルの位置情報が生成できる。また、メモリ装置１００は、生成された位置情報に対応する少なくとも一つ以上のメモリセルからデータを読み出し、読み出したデータ(ＤＡＴＡ＿ｒ)をホスト２００に提供したり、或いは、少なくとも一つ以上のメモリセルにホスト２００から提供されたデータ(ＤＡＴＡ＿ｗ)を書き込むことができる。
【００１７】
メモリ装置１００は、ＤＲＡＭ(dynamic random access memory)チップ、ＤＤＲ４(double rate data 4)パッケージ、ＨＢＭ(high bandwidth memory)、ＨＭＣ(hybrid memory cube)等のようなメモリパッケージ及びＤＩＭＭ(dual in-line memory module)等を含むことができるが、これに限定されるものではない。
【００１８】
メモリ装置１００は、メモリ１１０、スコア演算ブロック１２０、アドレス生成ブロック１３０、乗算器１４０及びデータ読み出し/書き込みブロック１５０を含むことができる。
【００１９】
メモリ１１０はデータを保存するように構成できる。メモリ１１０は、複数のワードライン(図示せず)及び複数のワードラインに対して垂直方向に配置された複数のビットライン(図示せず)を含むことができる。また、メモリ１１０は、複数のワードライン及び複数のビットラインの交差領域に配置された複数のメモリセル(図示せず)を含むことができる。メモリ１１０は、揮発性メモリ又は非揮発性メモリであり得る。例えば、メモリ１１０は、ＤＲＡＭ(dynamic RAM)、ＳＲＡＭ(static RAM)、ＰＣＲＡＭ(phase change RAM)、ＲｅＲＡＭ(Resistive RAM)、ＭＲＡＭ(magnetic RAM)及びＳＴＴＭＲＡＭ(spin-transfer torque MRAM)などを含むことができるが、これに限定されるものではない。
【００２０】
スコア演算ブロック１２０は、アドレス生成ブロック１３０から提供される少なくとも一つ以上のメインキーベクトル(main key vector)(ＭＫＶ)と、メモリ１１０から読み出したデータとを用いて、最適スコア(best score)を持つデータが検索できる。
【００２１】
図２を参照すれば、スコア演算ブロック１２０は、メインキーバッファ１２１、データバッファ１２２及び比較器１２３を含むことができる。
【００２２】
メインキーバッファ１２１は、アドレス生成ブロック１３０から提供される少なくとも一つ以上のメインキーベクトル(ＭＫＶ)を臨時保存するように構成できる。
【００２３】
データバッファ１２２は、メモリ１１０から読み出したデータを保存するように構成できる。例えば、データバッファ１２２の大きさはメモリ１１０の大きさよりも小さいことがある。したがって、スコア演算ブロック１２０は、メモリ１１０からデータバッファ１２２の大きさだけのデータを順次読み出して、データバッファ１２２に臨時保存できる。
【００２４】
スコア演算ブロック１２０は、乗算器１４０を用いて、メインキーバッファ１２１に保存されたメインキーベクトル(ＭＫＶ)及びデータバッファ１２２に保存されたデータ(Ｄ)間のスコアが演算できる。例えば、スコア演算ブロック１２０は、相似関数(similarity function)を用いて、メモリ１１０に保存されたデータのうち、最適スコア(best score)を持つデータが検索できるが、スコア演算ブロック１２０が最適スコアを持つデータを検索する方法が特別にこれに限定されるものではない。
【００２５】
比較器１２３は、乗算器１４０により演算されたスコアを臨界スコアと比較して、最適スコア(best score)を持つデータが保存された位置情報(ＢＳ)を検索して、アドレス生成ブロック１３０に提供できる。ここで、最適スコア(best score)を持つデータはメインキーベクトル(ＭＫＶ)との類似度が臨界値以上のデータを意味し、メモリ１１０にはメインキーベクトル(ＭＫＶ)との類似度が臨界値以上の多数のデータが存在し得る。これにより、スコア演算ブロック１２０からアドレス生成ブロック１３０に提供される最適スコア(best score)を持つデータの位置情報(ＢＳ)は複数個であり得る。例えば、シングルデータセットが最適スコアを持つデータを示したり、或いは、マルチデータセット(本明細書において多数のデータでも記載される)が最適スコアを持つデータを示したりできる。データセットは、データム(datum)又は他の量子データ(quantum of data)を示すことができる。
【００２６】
図３を参照すれば、アドレス生成ブロック１３０は、ホスト２００から提供される少なくとも一つ以上のキーベクトル(ＫＶ)のうち、メインキーベクトル(ＭＫＶ)をスコア演算ブロック１２０に提供できる。アドレス生成ブロック１３０は、ホスト２００から提供される少なくとも一つ以上のキーベクトル(ＫＶ)を臨時保存するように構成されたキーバッファ１３１を含むことができる。
【００２７】
アドレス生成ブロック１３０は、スコア演算ブロック１２０に提供されるメインキーベクトル(ＭＫＶ)を除いた残りのキーベクトル(ＫＶ)をキーバッファ１３１から削除せずに維持できる。
【００２８】
アドレス生成ブロック１３０はアドレス生成器１３３を含むことができる。アドレス生成器１３３は、キーバッファ１３１に保存された残りのキーベクトル(ＫＶ)を用いて、スコア演算ブロック１２０から提供される複数の位置情報(ＢＳ)、すなわち、最適スコア(best score)を持つ多数のデータの位置情報(ＢＳ)のうち、最終位置情報(ＬＩ)を決定し、決定された最終位置情報(ＬＩ)をデータ読み出し/書き込みブロック１５０に提供できる。
【００２９】
データ読み出し/書き込みブロック１５０は、アドレス生成ブロック１３０から提供される最終位置情報(ＬＩ)を用いてメモリ１１０内の参照領域を選定し、選定の参照領域に保存されたデータを読み出したり、或いは、参照領域にデータを書き込んだりできる。ここで、参照領域は一つ又はその以上のメモリセルを含む領域であり得る。
【００３０】
図４を参照すれば、データ読み出し/書き込みブロック１５０は、データ読み出しブロック１５１及びデータ書き込みブロック１５３を含むことができる。
【００３１】
データ読み出しブロック１５１は、データバッファ１５１ａ及び最適スコアデータバッファ１５１ｂを含むことができる。データ読み出しブロック１５１は、メモリ１１０からデータ(Ｄ)を読み出し、データバッファ１５１ａに保存できる。データ読み出しブロック１５１は、アドレス生成ブロック１３０から提供される最終位置情報(ＬＩ)を最適スコアデータバッファ１５１ｂに保存できる。
【００３２】
データ読み出しブロック１５１は、乗算器１４０を用いて、データバッファ１５１ａに保存されたデータ(Ｄ)から、最適スコアデータバッファ１５１ｂに保存された最終位置情報(ＬＩ)にマッチングされるデータを検索し、最終位置情報(ＬＩ)にマッチングされるデータをホスト２００に提供できる。
【００３３】
データ書き込みブロック１５３は、データバッファ１５３ａ、最適スコアデータバッファ１５３ｂ及びホストデータバッファ１５３ｃを含むことができる。データ書き込みブロック１５３は、メモリ１１０からデータ(Ｄ)を読み出し、データバッファ１５３ａに保存できる。データ書き込みブロック１５３は、アドレス生成ブロック１３０から提供される最終位置情報(ＬＩ)を最適スコアデータバッファ１５３ｂに保存できる。
【００３４】
データ書き込みブロック１５３は、乗算器１４０を用いて、データバッファ１５３ａに保存されたデータ(Ｄ)から、最適スコアデータバッファ１５３ｂに保存された最終位置情報(ＬＩ)にマッチングされるデータを検索し、検索のデータが保存された位置にホスト２００から提供されるデータ(ＤＡＴＡ＿ｗ)を書き込むことができる。
【００３５】
このように、メモリ１１０の特定領域に対するアクセスのためのアドレス生成動作及びメモリ１１０の特定領域に対するデータ読み出し/書き込みがメモリ装置１００内で遂行されることで、メモリ１１０に保存されたデータをメモリ１１０の外部、すなわち、ホスト２００に転送する必要がないので、メモリ装置１００及びホスト２００間のインターフェーシングに消耗されるパワーが低減できる。
【００３６】
また、メモリ１１０からデータを読んだり書き込むための特定領域を検索するのに用いられる神経網アルゴリズムが、メモリ装置１００内で遂行できる。
【００３７】
また、メモリ１１０に保存されたデータを外部、すなわち、ホスト２００に提供する必要がなく、メモリ装置１００内でアクセスする最終位置情報を決定するためのスコア演算及び乗算などのような全ての演算が遂行されることで、演算効率の向上を図ることができる。
【００３８】
本発明は、具体的な実施例により説明しているが、発明の要旨を逸脱しない範囲内において多様に変更可能である。したがって、本発明の範囲は前述の実施例に限定されず、後述する特許請求の範囲及びその等価概念により定められなければならない。本発明の範囲又は技術的思想から逸脱せず、本発明の構造が多様に修正又は変更可能であるものと理解しなければならない。
【符号の説明】
【００３９】
１０  メモリシステム
１００  メモリ装置
１１０  メモリ
１２０  スコア演算ブロック
１３０  アドレス生成ブロック
１４０  乗算器
１５０  データ読み出し/書き込みブロック
２００  ホスト
【図１】
2020129376.tif 000003
【図２】
2020129376.tif 000004
【図３】
2020129376.tif 000005
【図４】
2020129376.tif 000006