(57)【要約】【課題】  メモリ装置を提供する。【解決手段】  前記メモリ装置は、加重値データが保存されるメモリセル、メモリセルから加重値データをリードするバッファメモリ、入力データの提供を受ける入出力パッド、およびバッファメモリから加重値データの提供を受け、入出力パッドから入力データの提供を受けて加重値データと入力データのコンボリューション（Ｃｏｎｖｏｌｕｔｉｏｎ）演算を行うＭＡＣ演算器を含み、入力データは第１区間の間にＭＡＣ演算器に提供され、ＭＡＣ演算器は第１区間とオーバーラップする第２区間の間に加重値データと入力データのコンボリューション演算を行う。【選択図】      図３
2020129373.tif 000002
【特許請求の範囲】
【請求項１】
加重値データが保存されるメモリセルと、
前記メモリセルから前記加重値データをリードするバッファメモリと、
入力データの提供を受ける入出力パッドと、
前記バッファメモリから前記加重値データの提供を受け、前記入出力パッドから前記入力データの提供を受け、前記加重値データと前記入力データのコンボリューション（Ｃｏｎｖｏｌｕｔｉｏｎ）演算を行うＭＡＣ演算器とを含み、
前記入力データは、第１区間の間に前記ＭＡＣ演算器に提供され、
前記ＭＡＣ演算器は、前記第１区間とオーバーラップする第２区間の間に前記加重値データと前記入力データのコンボリューション演算を行う、メモリ装置。
【請求項２】
前記加重値データは、前記第１区間とオーバーラップする第３区間の間に前記ＭＡＣ演算器に提供される、請求項１に記載のメモリ装置。
【請求項３】
前記ＭＡＣ演算器に前記入力データが提供される前に、前記バッファメモリは前記メモリセルから前記加重値データをリードする、請求項１に記載のメモリ装置。
【請求項４】
前記入力データは、第１および第２入力データを含み、
前記加重値データは、第１および第２加重値データを含み、
前記第１および第２入力データは、それぞれ第１および第２サブ区間の間に前記ＭＡＣ演算器に提供され、
前記第１および第２加重値データは、それぞれ第３および第４サブ区間の間に前記ＭＡＣ演算器に提供され、
前記第１サブ区間は、前記第３サブ区間とオーバーラップし、前記第２サブ区間は、前記第４サブ区間とオーバーラップする、請求項１に記載のメモリ装置。
【請求項５】
前記加重値データは、第１および第２加重値ビットを含み、
前記入力データは、第１および第２入力ビットを含み、
前記ＭＡＣ演算器は、第１乗算器および第１累算器〜第３累算器を含み、
前記ＭＡＣ演算器が前記コンボリューション演算を行うことは、前記第１乗算器が前記加重値データと前記入力データの乗算を行うことを含み、
前記第１乗算器が前記乗算を行うことは、前記第１乗算器が、
前記第１加重値ビットと前記第１入力ビットを乗算して前記第１累算器に提供し、
前記第２加重値ビットと前記第１入力ビットを乗算して前記第２累算器に提供し、
前記第１加重値ビットと前記第２入力ビットを乗算して前記第２累算器に提供し、
前記第２加重値ビットと前記第２入力ビットを乗算して前記第３累算器に提供することを含む、請求項１に記載のメモリ装置。
【請求項６】
前記第１累算器の出力は、前記加重値データと前記入力データの乗算のＬＳＢ（Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）である、請求項５に記載のメモリ装置。
【請求項７】
前記第２累算器は、前記第２加重値ビットと前記第１入力ビットの乗算結果と、前記第１加重値ビットと前記第２入力ビットの乗算結果を合計して出力する、請求項５に記載のメモリ装置。
【請求項８】
前記加重値データと前記入力データのコンボリューション演算結果が保存される、結果出力バッファをさらに含む、請求項１に記載のメモリ装置。
【請求項９】
前記結果出力バッファに保存された前記コンボリューション演算結果は、前記入出力パッドを介して出力される、請求項８に記載のメモリ装置。
【請求項１０】
前記加重値データと前記入力データのコンボリューション演算結果が出力される、前記入出力パッドと異なる結果出力パッドをさらに含む、請求項１に記載のメモリ装置。
【請求項１１】
前記ＭＡＣ演算器は、前記第２区間とオーバーラップする第４区間の間に、前記コンボリューション演算結果を前記結果出力パッドに提供する、請求項１０に記載のメモリ装置。
【請求項１２】
第１および第２加重値ビットを含む加重値データが保存されるバッファメモリと、
第１および第２入力ビットを含む入力データを受信する入出力パッドと、
第１累算器〜第３累算器を含み、前記加重値データと前記入力データの提供を受け、前記加重値データと前記入力データのコンボリューション（Ｃｏｎｖｏｌｕｔｉｏｎ）演算を行うＭＡＣ演算器とを含み、
前記ＭＡＣ演算器が前記加重値データと前記入力データのコンボリューション演算を行うことは、
前記第１加重値ビットと前記第１入力ビットを乗算して前記第１累算器に提供し、
前記第２加重値ビットと前記第１入力ビットを乗算して前記第２累算器に提供し、
前記第１加重値ビットと前記第２入力ビットを乗算して前記第２累算器に提供し、
前記第２加重値ビットと前記第２入力ビットを乗算して前記第３累算器に提供することを含む、メモリ装置。
【請求項１３】
前記第１加重値ビットと前記第１入力ビットの乗算と前記第２加重値ビットと前記第１入力ビットの乗算は、並列的に行われ、
前記第１加重値ビットと前記第２入力ビットの乗算と前記第２加重値ビットと前記第２入力ビットの乗算は、並列的に行われる、請求項１２に記載のメモリ装置。
【請求項１４】
前記ＭＡＣ演算器が前記コンボリューション演算を行うことは、前記ＭＡＣ演算器が前記加重値データと前記入力データの乗算を行うことを含み、
前記第１累算器の出力は、前記乗算のＬＳＢ（Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）である、請求項１２に記載のメモリ装置。
【請求項１５】
前記入力データは、第１区間の間に前記ＭＡＣ演算器に提供され、
前記ＭＡＣ演算器は、前記第１区間とオーバーラップする第２区間の間に前記コンボリューション演算を行う、請求項１２に記載のメモリ装置。
【請求項１６】
前記入力データは、第１区間の間に前記ＭＡＣ演算器に提供され、
前記加重値データは、前記第１区間とオーバーラップする第３区間の間に前記ＭＡＣ演算器に提供される、請求項１２に記載のメモリ装置。
【請求項１７】
前記加重値データが保存されるメモリセルをさらに含み、
前記加重値データは、前記メモリセルからリードされて前記バッファメモリに保存される、請求項１２に記載のメモリ装置。
【請求項１８】
前記ＭＡＣ演算器が前記入力データの提供を受ける前に、前記メモリセルから前記バッファメモリに前記加重値データがリードされる、請求項１７に記載のメモリ装置。
【請求項１９】
前記加重値データと前記入力データのコンボリューション演算結果が保存される、結果出力バッファをさらに含む、請求項１２に記載のメモリ装置。
【請求項２０】
加重値データが保存されるメモリセルと、
前記メモリセルから前記加重値データをリードするバッファメモリと、
入力データの提供を受ける入出力パッドと、
前記加重値データと前記入力データのコンボリューション（Ｃｏｎｖｏｌｕｔｉｏｎ）演算を行うＭＡＣ演算器を含み、
前記入力データが前記入出力パッドに提供される前に、前記バッファメモリは前記メモリセルから前記加重値データをリードし、
前記入力データは、第１区間の間に前記入出力パッドから前記ＭＡＣ演算器に提供され、
前記加重値データは、前記第１区間とオーバーラップする第２区間の間に前記バッファメモリから前記ＭＡＣ演算器に提供される、メモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ装置およびそれを用いたコンピューティング装置に関する。
【背景技術】
【０００２】
ニューラルネットワーク（ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ）の基本的なアルゴリズムは、入力マトリックスとコンボリューションフィルタの演算により出力マトリックスを導き出すことである。具体的には、入力マトリックスとコンボリューションフィルタをコンボリューション演算により出力マトリックスを決めることができる。
【０００３】
コンボリューション演算は、数多くの乗算と加算の組み合わせからなっており、最近ニューラルネットワークの爆発的な成長により、高帯域／低遅延のニューラルネットワークエンジンが求められる。これにより、コンボリューションフィルタの大きさが増加し、コンボリューションフィルタに含まれた加重値データの量が幾何級数的に増加している。また、入力マトリックスに含まれた入力データの量も同様に幾何級数的に増加し、出力マトリックスを生成するために非常に多量の乗算と加算が行われることが求められる。
【０００４】
現在のシステムで増加した要求事項を満足させるためには多くの時間が必要とされ、その活用度が低い。したがって、高帯域を維持し、かつ低遅延を満足するニューラルネットワークエンジンの開発が必要である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする技術的課題は、メモリ装置内でコンボリューション演算が行われ、簡単で効果的な演算を行うメモリ装置およびそれを用いたコンピューティング装置を提供することにある。
【０００６】
本発明が解決しようとする他の技術的課題は、メモリ装置内でコンボリューション演算が行われ、低遅延を満足するメモリ装置およびそれを用いたコンピューティング装置を提供することにある。
【０００７】
本発明が解決しようとするまた他の技術的課題は、入力データと出力データが同時にＩｎ／ＯｕｔされるＭＡＣ（乗累算）演算器を含むメモリ装置、およびそれを用いたコンピューティング装置を提供することにある。
【０００８】
本発明の技術的課題は、以上で言及した技術的課題に制限されず、言及されていないまた他の技術的課題は、以下の記載から当業者に明確に理解されるであろう。
【課題を解決するための手段】
【０００９】
前記技術的課題を達成するための本発明のいくつかの実施形態によるメモリ装置は、加重値データが保存されるメモリセル、メモリセルから加重値データをリードするバッファメモリ、入力データの提供を受ける入出力パッド、およびバッファメモリから加重値データの提供を受け、入出力パッドから入力データの提供を受けて加重値データと入力データのコンボリューション（Ｃｏｎｖｏｌｕｔｉｏｎ）演算を行うＭＡＣ演算器を含み、入力データは第１区間の間にＭＡＣ演算器に提供され、ＭＡＣ演算器は第１区間とオーバーラップする第２区間の間に加重値データと入力データのコンボリューション演算を行う。
【００１０】
前記技術的課題を達成するための本発明のいくつかの実施形態によるメモリ装置は、第１および第２加重値ビットを含む加重値データが保存されるバッファメモリ、第１および第２入力ビットを含む入力データを受信する入出力パッド、および第１累算器〜第３累算器を含み、加重値データと入力データの提供を受けて加重値データと入力データのコンボリューション（Ｃｏｎｖｏｌｕｔｉｏｎ）演算を行うＭＡＣ演算器を含み、ＭＡＣ演算器が加重値データと入力データのコンボリューション演算を行うことは、第１加重値ビットと第１入力ビットを乗算して第１累算器に提供し、第２加重値ビットと第１入力ビットを乗算して第２累算器に提供し、第１加重値ビットと第２入力ビットを乗算して第２累算器に提供し、第２加重値ビットと第２入力ビットを乗算して第３累算器に提供することを含む。
【００１１】
前記技術的課題を達成するための本発明のいくつかの実施形態によるメモリ装置は、加重値データが保存されるメモリセル、メモリセルから加重値データをリードするバッファメモリ、入力データの提供を受ける入出力パッド、および加重値データと入力データのコンボリューション（Ｃｏｎｖｏｌｕｔｉｏｎ）演算を行うＭＡＣ演算器を含み、入力データが入出力パッドに提供される前に、バッファメモリはメモリセルから加重値データをリードし、入力データは第１区間の間に入出力パッドからＭＡＣ演算器に提供され、加重値データは第１区間とオーバーラップする第２区間の間にバッファメモリからＭＡＣ演算器に提供される。
【００１２】
前記技術的課題を達成するための本発明のいくつかの実施形態によるコンピューティング装置は、ＭＡＣ演算器を含み、加重値データが保存されるメモリ装置、およびメモリ装置に入力データを提供するプロセッサを含み、ＭＡＣ演算器は、入力データと加重値データの提供を受け、入力データと加重値データのコンボリューション演算を行い、入力データがＭＡＣ演算器に提供される第１区間と、加重値データがＭＡＣ演算器に提供される第２区間はオーバーラップする。
【００１３】
その他実施形態の具体的な事項は詳細な説明および図面に含まれている。
【図面の簡単な説明】
【００１４】
【図１】コンボリューション演算を説明するための例示的な図である。
【図２】いくつかの実施形態によるコンピューティング装置を説明するための例示的なブロック図である。
【図３】いくつかの実施形態による不揮発性メモリを説明するための例示的なブロック図である。
【図４】いくつかの実施形態によるコンピューティング装置の動作を説明するための例示的な図である。
【図５】いくつかの実施形態による加重値データがメモリセルからバッファメモリに提供される動作を説明するための例示的な図である。
【図６】いくつかの実施形態による入力データと加重値データがＭＡＣ演算器に提供される動作を説明するための例示的な図である。
【図７】いくつかの実施形態によるＭＡＣ演算器の演算結果が出力データとして提供される動作を説明するための例示的な図である。
【図８】いくつかの実施形態によるデータが入力／出力されるタイミングを説明するための例示的な図である。
【図９】いくつかの実施形態によるＭＡＣ演算器が入力データと加重値データを受信する区間を説明するための例示的な図である。
【図１０】いくつかの実施形態による入力データと出力データの乗算を説明するための例示的な図である。
【図１１】いくつかの実施形態による入力データと出力データの乗算を説明するための例示的な図である。
【図１２】いくつかの実施形態による入力データと出力データの乗算を説明するための例示的な図である。
【図１３】いくつかの実施形態による不揮発性メモリを説明するための例示的なブロック図である。
【図１４】いくつかの実施形態によるデータが入力／出力されるタイミングを説明するための例示的な図である。
【発明を実施するための形態】
【００１５】
図１はコンボリューション演算を説明するための例示的な図である。図１を参照すると、出力マトリックス（３，ｏｕｔｐｕｔ  ｍａｔｒｉｘ）は、入力マトリックス（１，ｉｎｐｕｔ  ｍａｔｒｉｘ）とコンボリューションフィルタ（２，ｃｏｎｖｏｌｕｔｉｏｎ  ｆｉｌｔｅｒまたはカーネル（ｋｅｒｎｅｌ））をコンボリューション演算（ｃｏｎｖｏｌｕｔｉｏｎ  ｏｐｅｒａｔｉｏｎ）して生成される。例えば、入力マトリックス１は第１入力データ（Ｘ０）〜第２０入力データ（Ｘ１９）を含み得る。また、例えば、コンボリューションフィルタ２は、第１加重値データ（Ｗ０）〜第４加重値データ（Ｗ３）を含み得る。また、例えば、出力マトリックス３は、第１出力データ（Ｓ０）〜第１２出力データ（Ｓ１１）を含み得る。本発明のいくつかの実施形態がこのような用語に限定されるものではなく、本発明の技術分野における通常の知識を有する者は以下で説明しようとする内容を明確に理解できるであろう。また、説明の便宜上、図１は入力マトリックス１が４×５のマトリックスを構成し、コンボリューションフィルタ２が２×２のマトリックスを構成し、出力マトリックス３が３×４のマトリックスを構成する場合を説明するが、これは説明の便宜のためのものであり、実施形態はこれに制限されるものではない。入力マトリックス１およびコンボリューションフィルタ２は、さらに多いか少ないデータを含み得、出力マトリックス３は、入力マトリックス１とコンボリューションフィルタ２の構成によって決定され得る。
【００１６】
出力マトリックス３は、入力データＩ＿Ｄａｔａと加重値データＷ＿Ｄａｔａの乗算と加算によって決定され得る。すなわち、コンボリューション演算は乗算と加算の組み合わせであり得る。例えば、第１出力データ（Ｓ０）および第２出力データ（Ｓ１）は、下記数学式１および数学式２により決定される。
（数学式１）
Ｓ０＝Ｘ０Ｗ０＋Ｘ１Ｗ１＋Ｘ５Ｗ２＋Ｘ６Ｗ３
（数学式２）
Ｓ１＝Ｘ１Ｗ０＋Ｘ２Ｗ１＋Ｘ６Ｗ２＋Ｘ７Ｗ３
数学式１に説明したように、第１出力データ（Ｓ０）は、第１入力データ（Ｘ０）と第１加重値データ（Ｗ０）の積、第２入力データ（Ｘ１）と第２加重値データ（Ｗ１）の積、第６入力データ（Ｘ５）と第３加重値データ（Ｗ２）の積および第７入力データ（Ｘ６）と第４加重値データ（Ｗ３）の積をすべて合計して決定される。同様に、数学式２に説明したように、第２出力データ（Ｓ１）は、第２入力データ（Ｘ１）と第１加重値データ（Ｗ０）の積、第３入力データ（Ｘ２）と第２加重値データ（Ｗ１）の積、第７入力データ（Ｘ６）と第３加重値データ（Ｗ２）の積および第８入力データ（Ｘ７）と第４加重値データ（Ｗ３）の積をすべて合計して決定される。
【００１７】
これと同様に、第１入力データ（Ｘ０）〜第２０入力データ（Ｘ１９）と第１加重値データ（Ｗ０）〜第４加重値データ（Ｗ３）に対して、乗算および加算を行って、第３出力データ（Ｓ２）〜第１２出力データ（Ｓ１１）を決定する。以下では、出力マトリックス３を生成するコンピューティング装置（Ｃｏｍｐｕｔｉｎｇ  Ｄｅｖｉｃｅ）１０００、すなわち入力データＩ＿Ｄａｔａと加重値データＷ＿Ｄａｔａのコンボリューション演算を行うコンピューティング装置１０００について説明する。
【００１８】
図２はいくつかの実施形態によるコンピューティング装置を説明するための例示的なブロック図である。図２を参照すると、いくつかの実施形態によるコンピューティング装置１０００は、インターフェース（Ｉ／Ｆ）２００、プロセッサ（Ｐｒｏｃｅｓｓｏｒ）３００、キャッシュメモリ４００（Ｃａｃｈｅ）およびメモリ装置１００を含み得る。
【００１９】
いくつかの実施形態によるコンピューティング装置１０００は、デスクトップをはじめとするパーソナルコンピュータ、サーバーコンピュータ、ノートブックをはじめとする携帯用コンピュータおよび携帯電話（ｃｅｌｌｕｌａｒ  ｐｈｏｎｅ）、スマートフォン（Ｓｍａｒｔ  ｐｈｏｎｅ）、タブレット（ｔａｂｌｅｔ）、ＭＰ３、ＰＭＰ（Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｍｅｄｉａ  Ｐｌａｙｅｒ）、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、デジタルカメラ（ｄｉｇｉｔａｌ  ｃａｍｅｒａ）、デジタルビデオカメラ（ｄｉｇｉｔａｌ  ｃａｍｃｏｒｄｅｒ）等をはじめとする携帯用装置を含み得る。また、いくつかの実施形態によるコンピューティング装置１０００は、ニューラルネットワーク（ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ）基盤の処理装置であり得る。例えば、いくつかの実施形態によるコンピューティング装置１０００は、コンボリューションニューラルネットワーク（ＣＮＮ：ｃｏｎｖｏｌｕｔｉｏｎ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ）基盤の映像処理（ｉｍａｇｅ  ｐｒｏｃｅｓｓｉｎｇ）装置、自動操向装置または走行補助装置などに用いられる。のみならず、いくつかの実施形態によるコンピューティング装置１０００は、デジタル信号処理（ＤＳＰ：Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ）の遂行に用いられる。ただし、本発明の技術的思想は、コンピューティング装置１０００が用いられる用途に限定されず、本発明の技術分野における通常の知識を有する者は必要に応じて多様な分野に本発明のいくつかの実施形態によるコンピューティング装置１０００を用いることができる。
【００２０】
インターフェース２００は、コンピューティング装置１０００へのデータの入力または出力に用いられる。例えば、図１で説明した第１入力データ（Ｘ０）〜第２０入力データ（Ｘ１９）は、インターフェース２００を介してコンピューティング装置１０００に提供されるが、実施形態はこれに限定されるものではない。例えば、第１入力データ（Ｘ０）〜第２０入力データ（Ｘ１９）は、コンピューティング装置１０００内に含まれた特定の構成要素によって生成されることもできる。
【００２１】
プロセッサ３００は、コンピューティング装置１０００を制御するためのプログラムコードを実行する。いくつかの実施形態によるプロセッサ３００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＧＰＵ（Ｇｒａｐｈｉｃ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＡＰ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｃｅｓｓｏｒ）およびＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）等を含み得るが、実施形態はこれに制限されるものではない。
【００２２】
キャッシュメモリ４００は、データに高速でアクセス（ａｃｃｅｓｓ）できるように未来の要請に備えてデータを一時的に保存できるメモリであり得る。キャッシュメモリ４００に保存されたデータは以前行った演算の結果であり得る。キャッシュメモリ４００は、スタティックランダムアクセスメモリ（ＳＲＡＭ：Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、高速ＳＲＡＭ（Ｆａｓｔ−ＳＲＡＭ）、および／またはダイナミックランダムアクセスメモリ（ＤＲＡＭ：Ｄｙｎａｍｉｃ  ＲＡＭ）等で実現されるが、実施形態はこれに制限されるものではない。また、図１はキャッシュメモリ４００がプロセッサ３００と分離した場合を図示するが、実施形態はこれに制限されるものではない。例えば、キャッシュメモリ４００は、プロセッサ３００内部のＴＣＭ（Ｔｉｇｈｔｌｙ  Ｃｏｕｐｌｅｄ  Ｍｅｍｏｒｙ）であり得る。
【００２３】
メモリ装置１００は、不揮発性メモリ（Ｎｏｎｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ）１０およびメモリコントローラ（Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ）２０を含み得る。メモリコントローラ２０は、プロセッサ３００からの要請に応答して不揮発性メモリ１０に保存されたデータをリード（ｒｅａｄ）またはイレーズ（ｅｒａｓｅ）するか、不揮発性メモリ１０にデータをライト（Ｗｒｉｔｅ）し得る。また、いくつかの実施形態によれば、メモリコントローラ２０は、ＭＡＣ（乗累算）コマンド（ＭＡＣ  ＣＭＤ）を受信して不揮発性メモリ１０がコンボリューション演算を行うように制御することができる。
【００２４】
不揮発性メモリ１０は、データを非一時的に保存し得る。例えば、不揮発性メモリ１０は、第１加重値データ（Ｗ０）〜第４加重値データ（Ｗ３）を保存し得る。いくつかの実施形態による不揮発性メモリ１０は、メモリコントローラ２０の要請に応じてコンボリューション演算を行い得る。
【００２５】
不揮発性メモリ１０は、フラッシュメモリ（ｆｌａｓｈ  ｍｅｍｏｒｙ）のシングルレベルセル（ＳＬＣ）またはマルチレベルセル（ＭＬＣ：Ｍｕｌｔｉ  Ｌｅｖｅｌ  Ｃｅｌｌ）であり得るが、実施形態はこれに制限されるものではない。例えば、不揮発性メモリ１０は、ＰＣカード（ＰＣＭＣＩＡ：ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ  ｍｅｍｏｒｙ  ｃａｒｄ  ｉｎｔｅｒｎａｔｉｏｎａｌ  ａｓｓｏｃｉａｔｉｏｎ）、コンパクトフラッシュ（登録商標）カード（ＣＦ）、スマートメディアカード（ＳＭ，ＳＭＣ）、メモリスティック、マルチメディアカード（ＭＭＣ，ＲＳ−ＭＭＣ，ＭＭＣｍｉｃｒｏ）、ＳＤカード（ＳＤ，ｍｉｎｉＳＤ，ｍｉｃｒｏＳＤ，ＳＤＨＣ）、ユニバーサルフラッシュストレージ（ＵＦＳ）、エンベディッドマルチメディアカード（ｅＭＭＣ）、ＮＡＮＤフラッシュメモリ（ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ）、ＮＯＲフラッシュメモリ（ＮＯＲ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ）、垂直型ＮＡＮＤフラッシュメモリ（Ｖｅｒｔｉｃａｌ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ）等を含み得る。
【００２６】
図面に示していないが、メモリコントローラ２０および／または不揮発性メモリ１０は、ＰｏＰ（Ｐａｃｋａｇｅ  ｏｎ  Ｐａｃｋａｇｅ）、Ｂａｌｌ  ｇｒｉｄ  ａｒｒａｙｓ（ＢＧＡｓ）、Ｃｈｉｐ  ｓｃａｌｅ  ｐａｃｋａｇｅｓ（ＣＳＰｓ）、Ｐｌａｓｔｉｃ  Ｌｅａｄｅｄ  Ｃｈｉｐ  Ｃａｒｒｉｅｒ（ＰＬＣＣ）、Ｐｌａｓｔｉｃ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｐａｃｋａｇｅ（ＰＤＩＰ）、Ｄｉｅ  ｉｎ  Ｗａｆｆｌｅ  Ｐａｃｋ、Ｄｉｅ  ｉｎ  Ｗａｆｅｒ  Ｆｏｒｍ、Ｃｈｉｐ  Ｏｎ  Ｂｏａｒｄ（ＣＯＢ）、Ｃｅｒａｍｉｃ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｐａｃｋａｇｅ（ＣＥＲＤＩＰ）、Ｐｌａｓｔｉｃ  Ｍｅｔｒｉｃ  Ｑｕａｄ  Ｆｌａｔ  Ｐａｃｋ（ＭＱＦＰ）、Ｔｈｉｎ  Ｑｕａｄ  Ｆｌａｔｐａｃｋ（ＴＱＦＰ）、Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ（ＳＯＩＣ）、Ｓｈｒｉｎｋ  Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ  Ｐａｃｋａｇｅ（ＳＳＯＰ）、Ｔｈｉｎ  Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ（ＴＳＯＰ）、Ｓｙｓｔｅｍ  Ｉｎ  Ｐａｃｋａｇｅ（ＳＩＰ）、Ｍｕｌｔｉ  Ｃｈｉｐ  Ｐａｃｋａｇｅ（ＭＣＰ）、Ｗａｆｅｒ−ｌｅｖｅｌ  Ｆａｂｒｉｃａｔｅｄ  Ｐａｃｋａｇｅ（ＷＦＰ）、Ｗａｆｅｒ−Ｌｅｖｅｌ  Ｐｒｏｃｅｓｓｅｄ  Ｓｔａｃｋ  Ｐａｃｋａｇｅ（ＷＳＰ）等のようなパッケージを用いて実装されるが、実施形態はこれに制限されるものではない。不揮発性メモリ１０に対する具体的な説明のために、図３を参照する。
【００２７】
図３はいくつかの実施形態による不揮発性メモリを説明するための例示的なブロック図である。図３を参照すると、不揮発性メモリ１０は保存領域（Ｓｔｏｒａｇｅ  Ｒｅｇｉｏｎ）１０＿Ｓと周辺領域（Ｐｅｒｉｐｈｅｒａｌ  Ｒｅｇｉｏｎ）１０＿Ｐを含み得る。いくつかの実施形態によれば、保存領域１０＿Ｓには複数のメモリセル（Ｍｅｍｏｒｙ  Ｃｅｌｌ）１１が配置される。メモリセル１１それぞれはデータを保存する。例えば、メモリセル１１は、第１加重値データ（Ｗ０）〜第４加重値データ（Ｗ３）を保存する。説明の便宜上、メモリセル１１が配置される保存領域１０＿Ｓ以外の他の領域を周辺領域１０＿Ｐと定義する。
【００２８】
いくつかの実施形態によれば、不揮発性メモリ１０の周辺領域１０＿Ｐにはバッファメモリ（Ｂｕｆｆｅｒ  Ｍｅｍｏｒｙ）１２、ＭＡＣ（乗累算）演算器（１３，ＭＡＣ  ｏｐｅｒａｔｏｒ：Ｍｕｌｔｉｐｌｙ  ａｎｄ  Ａｃｃｕｍｕｌａｔｅ  ｏｐｅｒａｔｏｒ）、結果出力バッファ（Ｒｅｓｕｌｔ  Ｏｕｔｐｕｔ  Ｂｕｆｆｅｒ）１４および入出力パッド１５（Ｉ／Ｏ  ＰＡＤ）が配置される。
【００２９】
バッファメモリ１２と入出力パッド１５は、それぞれＭＡＣ演算器１３にデータを提供する。例えば、バッファメモリ１２はＭＡＣ演算器１３に加重値データＷ＿Ｄａｔａを提供し、入出力パッド１５はＭＡＣ演算器１３に入力データＩ＿Ｄａｔａを提供し得る。
【００３０】
ＭＡＣ演算器１３は提供された加重値データＷ＿Ｄａｔａと入力データＩ＿Ｄａｔａをコンボリューション演算する。ＭＡＣ演算器１３は加重値データＷ＿Ｄａｔａと入力データＩ＿Ｄａｔａのコンボリューション演算の結果を、結果出力バッファ１４に提供する。結果出力バッファ１４に提供されるデータを説明の便宜上結果データＲ＿Ｄａｔａと定義する。いくつかの実施形態において、結果データＲ＿Ｄａｔａは、加重値データＷ＿Ｄａｔａと入力データＩ＿Ｄａｔａのコンボリューション演算の中間結果データであり得る。例えば、結果データＲ＿Ｄａｔａは、第１出力データ（Ｓ０）〜第１２出力データ（Ｓ１１）それぞれであり得る。他の例として、結果データＲ＿Ｄａｔａは、第１加重値データ（Ｗ０）と第１入力データ（Ｘ０）の積（Ｗ０Ｘ０）〜第４加重値データ（Ｗ３）と第２０入力データ（Ｘ１９）の積（Ｗ３Ｘ１９）それぞれであり得る。しかし、実施形態はこれに制限されず、本発明の技術分野における通常の知識を有する者は、加重値データＷ＿Ｄａｔａと入力データＩ＿Ｄａｔａのコンボリューション演算の中間結果を結果データＲ＿Ｄａｔａと設定することができる。
【００３１】
結果出力バッファ１４は、結果データＲ＿Ｄａｔａを保存する。例えば、第１出力データ（Ｓ０）〜第１２出力データ（Ｓ１１）それぞれが結果出力バッファ１４に一時的に保存され得る。第１出力データ（Ｓ０）〜第１２出力データ（Ｓ１１）が結果出力バッファ１４にすべて保存されると、結果出力バッファ１４は入出力パッド１５に第１出力データ（Ｓ０）〜第１２出力データ（Ｓ１１）を提供する。
【００３２】
入出力パッド１５は、不揮発性メモリ１０の外部から入力データＩ＿Ｄａｔａを受信する。入出力パッド１５は、受信した入力データＩ＿ＤａｔａをＭＡＣ演算器１３に提供する。また、入出力パッド１５は、結果出力バッファ１４に保存されたデータを受信し、これを出力データＯ＿Ｄａｔａとして不揮発性メモリ１０の外部に提供する。いくつかの実施形態において、出力データＯ＿Ｄａｔａは、加重値データＷ＿Ｄａｔａと入力データＩ＿Ｄａｔａのコンボリューション演算に対する中間結果または最終結果データであり得る。例えば、出力データＯ＿Ｄａｔａは、第１出力データ（Ｓ０）〜第１２出力データ（Ｓ１１）であり得る。他の例として、出力データＯ＿Ｄａｔａは、第１加重値データ（Ｗ０）と第１入力データ（Ｘ０）の積（Ｗ０Ｘ０）〜第４加重値データ（Ｗ３）と第２０入力データ（Ｘ１９）の積（Ｗ３Ｘ１９）であり得る。
【００３３】
図４はいくつかの実施形態によるコンピューティング装置の動作を説明するための例示的な図である。図４を参照すると、プロセッサ３００は、ＭＡＣ演算に対する要請を受信する。プロセッサ３００は、メモリコントローラ２０に入力データＩ＿Ｄａｔａとともに、ＭＡＣコマンド（ＭＡＣ  ＣＭＤ）を提供する。
【００３４】
メモリコントローラ２０は、受信したＭＡＣコマンド（ＭＡＣ  ＣＭＤ）に応答して不揮発性メモリ１０に加重値データＷ＿Ｄａｔａに対するリードコマンド（Ｒｅａｄ  ＣＭＤ）を提供する。不揮発性メモリ１０は、加重値データＷ＿Ｄａｔａに対するリードコマンド（Ｒｅａｄ  ＣＭＤ）に応答して不揮発性メモリ１０の保存領域１０＿Ｓ内に保存された（例えば、メモリセル１１に保存された）加重値データＷ＿Ｄａｔａをリードする（Ｓ１１０）。リードした加重値データＷ＿Ｄａｔａは、バッファメモリ１２に提供される。例示的な説明のために、図５〜図７を参照する。
【００３５】
図５はいくつかの実施形態による加重値データがメモリセルからバッファメモリに提供される動作を説明するための例示的な図である。図６はいくつかの実施形態による入力データと加重値データがＭＡＣ演算器に提供される動作を説明するための例示的な図である。図７はいくつかの実施形態によるＭＡＣ演算器の演算結果が出力データとして提供される動作を説明するための例示的な図である。
【００３６】
図４および図５を参照すると、加重値データＷ＿Ｄａｔａは、複数のメモリセル１１のうち少なくとも一部に保存されている。加重値データＷ＿Ｄａｔａは、例えば、第１加重値データ（Ｗ０）〜第４加重値データ（Ｗ３）を含み得る。メモリコントローラ２０は、不揮発性メモリ１０に加重値データＷ＿Ｄａｔａのリードコマンド（Ｒｅａｄ  ＣＭＤ）を提供し、メモリセル１１に保存された加重値データＷ＿Ｄａｔａをバッファメモリ１２に提供する。すなわち、メモリコントローラ２０の命令に従い、加重値データＷ＿Ｄａｔａがメモリセル１１からバッファメモリ１２にラッチ（ｌａｔｃｈ）される。
【００３７】
すなわち、メモリコントローラ２０は、ＭＡＣコマンド（ＭＡＣ  ＣＭＤ）に応答してまず加重値データＷ＿Ｄａｔａがメモリセル１１からバッファメモリ１２にリードされるように制御する。加重値データＷ＿Ｄａｔａのバッファメモリ１２へのリードが完了すると、不揮発性メモリ１０はメモリコントローラ２０にリード完了応答を提供し得る。
【００３８】
図４および図６を参照すると、メモリコントローラ２０はリード完了応答を受信する。メモリコントローラ２０にリード完了応答が受信されると、メモリコントローラ２０は、不揮発性メモリ１０に入力データＩ＿Ｄａｔａを提供する。例えば、メモリコントローラ２０は、入力データＩ＿Ｄａｔａを入出力パッド１５に提供し得る。
【００３９】
ＭＡＣ演算器１３は、入出力パッド１５を介して入力データＩ＿Ｄａｔａの提供を受ける。例えば、ＭＡＣ演算器１３は、第１入力データ（Ｘ０）〜第２０入力データ（Ｘ１９）を入出力パッド１５を介して提供される。
【００４０】
ＭＡＣ演算器１３が入力データＩ＿Ｄａｔａの提供を受ける間、バッファメモリ１２にラッチされた加重値データＷ＿ＤａｔａもＭＡＣ演算器１３に提供され得る。例えば、ＭＡＣ演算器１３が入出力パッド１５を介して第１入力データ（Ｘ０）〜第２０入力データ（Ｘ１９）の提供を受ける間、バッファメモリ１２にラッチされた第１加重値データ（Ｗ０）〜第４加重値データ（Ｗ３）もＭＡＣ演算器１３に提供され得る。
【００４１】
いくつかの実施形態によれば、加重値データＷ＿Ｄａｔａがメモリセル１１からバッファメモリ１２にリードされた後、ＭＡＣ演算器１３は、入力データＩ＿Ｄａｔａを入出力パッド１５を介して提供を受け得る。例えば、ＭＡＣ演算器１３が第１入力データ（Ｘ０）〜第２０入力データ（Ｘ１９）の提供を受ける前に、メモリセル１１に保存された第１加重値データ（Ｗ０）〜第４加重値データ（Ｗ３）はバッファメモリ１２にリードされ得る。
【００４２】
図４および図７を参照すると、ＭＡＣ演算器１３は、入力データＩ＿Ｄａｔａと加重値データＷ＿Ｄａｔａの提供を受け、入力データＩ＿Ｄａｔａと加重値データＷ＿Ｄａｔａのコンボリューション演算を行う（Ｓ１２０）。ＭＡＣ演算器１３は、入力データＩ＿Ｄａｔａと加重値データＷ＿Ｄａｔａのコンボリューション演算結果を、結果出力バッファ１４に提供する。すなわち、ＭＡＣ演算器１３で生成された結果データＲ＿Ｄａｔａが結果出力バッファ１４に提供され得る。前述したように、結果データＲ＿Ｄａｔａは、加重値データＷ＿Ｄａｔａと入力データＩ＿Ｄａｔａのコンボリューション演算の中間結果データであり得る。例えば、結果データＲ＿Ｄａｔａは、第１出力データ（Ｓ０）〜第１２出力データ（Ｓ１１）それぞれであり得る。他の例として、結果データＲ＿Ｄａｔａは、第１加重値データ（Ｗ０）と第１入力データ（Ｘ０）の積（Ｗ０Ｘ０）〜第４加重値データ（Ｗ３）と第２０入力データ（Ｘ１９）の積（Ｗ３Ｘ１９）それぞれであり得る。いくつかの実施形態によれば、結果出力バッファ１４に保存された結果データＲ＿Ｄａｔａは、入出力パッド１５を介して出力データＯ＿Ｄａｔａとして不揮発性メモリ１０の外部に提供され得る。
【００４３】
図８はいくつかの実施形態によるデータが入力／出力されるタイミングを説明するための例示的な図である。
【００４４】
図５〜図８を参照して、データが入力／出力されるタイミングについて説明する。
【００４５】
第１区間Ｐ１の間にバッファメモリ１２に加重値データＷ＿Ｄａｔａがラッチされ得る。すなわち、不揮発性メモリ１０のメモリセル１１に保存された加重値データＷ＿Ｄａｔａは、第１区間Ｐ１の間にバッファメモリ１２に提供される。すなわち、バッファメモリ１２は、第１区間Ｐ１の間にメモリセル１１から加重値データＷ＿Ｄａｔａの提供を受け、これを保存する。
【００４６】
第２区間Ｐ２の間に、バッファメモリ１２はラッチされた加重値データＷ＿ＤａｔａをＭＡＣ演算器１３に提供する。すなわち、ＭＡＣ演算器１３は、第２区間Ｐ２の間にバッファメモリ１２から加重値データＷ＿Ｄａｔａの提供を受ける。
【００４７】
第３区間Ｐ３の間に、入出力パッド１５は、入力データＩ＿ＤａｔａをＭＡＣ演算器１３に提供する。すなわち、ＭＡＣ演算器１３は、第３区間Ｐ３の間に入出力パッド１５を介して入力データＩ＿Ｄａｔａの提供を受ける。いくつかの実施形態によれば、第１区間Ｐ１は第３区間Ｐ３より先に行い得る。すなわち、ＭＡＣ演算器１３が入力データＩ＿Ｄａｔａの提供を受ける前に、加重値データＷ＿Ｄａｔａは、メモリセル１１からバッファメモリ１２にリードされ得る。
【００４８】
いくつかの実施形態によれば、第２区間Ｐ２と第３区間Ｐ３はオーバーラップする。すなわち、ＭＡＣ演算器１３は、加重値データＷ＿Ｄａｔａと入力データＩ＿Ｄａｔａの提供を同時に受け得る。本明細書における「同時」という用語は、完ぺきな同一時点を意味しない。「同時」という用語は、互いに異なる二つのイベントが同じ区間内で発生することを意味する。すなわち、「同時」という用語は、二つのイベントが順に発生することではなく、二つのイベントが共に並列的に発生することを意味する。例えば、同一区間内で入力データＩ＿Ｄａｔａと加重値データＷ＿Ｄａｔａが受信される場合、入力データＩ＿Ｄａｔａと加重値データＷ＿Ｄａｔａは「同時」に受信されると見ることができる。他の例としては、入力データＩ＿Ｄａｔａが提供される区間で、ＭＡＣ演算が行われる場合、ＭＡＣ演算は入力データＩ＿Ｄａｔａが提供されるのと「同時」に行われると見ることができる。本発明の技術分野における通常の知識を有する者は、本明細書で使われた「同時」の意味を明確に理解できるであろう。図９を参照して、ＭＡＣ演算器１３が入力データＩ＿Ｄａｔａと加重値データＷ＿Ｄａｔａを受信する区間についてさらに具体的に説明する。
【００４９】
図９はいくつかの実施形態によるＭＡＣ演算器が入力データと加重値データを受信する区間を説明するための例示的な図である。説明の便宜上、重複または類似の内容は省略または簡単に説明する。
【００５０】
図８および図９を参照すると、第２区間Ｐ２の間に、ＭＡＣ演算器１３はバッファメモリ１２から加重値データＷ＿Ｄａｔａの提供を受ける。いくつかの実施形態によれば、第２区間Ｐ２は、第１サブ区間ＳＰ１および第２サブ区間ＳＰ２を含み得る。
【００５１】
第１サブ区間ＳＰ１の間に、バッファメモリ１２はＭＡＣ演算器１３に第１加重値データ（Ｗ０）を提供する。すなわち、ＭＡＣ演算器１３は第１サブ区間ＳＰ１の間にバッファメモリ１２から第１加重値データ（Ｗ０）の提供を受け得る。
【００５２】
第２サブ区間ＳＰ２の間に、バッファメモリ１２はＭＡＣ演算器１３に第２加重値データ（Ｗ１）を提供する。すなわち、ＭＡＣ演算器１３は第２サブ区間ＳＰ２の間にバッファメモリ１２から第２加重値データ（Ｗ１）の提供を受ける。いくつかの実施形態によれば、第２サブ区間ＳＰ２は、第１サブ区間ＳＰ１以後に配置されるが、実施形態はこれに制限されるものではない。
【００５３】
第３区間Ｐ３の間に、ＭＡＣ演算器１３は入出力パッド１５を介して入力データＩ＿Ｄａｔａの提供を受ける。いくつかの実施形態によれば、第３区間Ｐ３は第３サブ区間ＳＰ３および第４サブ区間ＳＰ４を含み得る。
【００５４】
第３サブ区間ＳＰ３の間に、入出力パッド１５はＭＡＣ演算器１３に第１入力データ（Ｘ０）を提供する。すなわち、ＭＡＣ演算器１３は第３サブ区間ＳＰ３の間に、入出力パッド１５を介して第１入力データ（Ｘ０）の提供を受け得る。
【００５５】
第４サブ区間ＳＰ４の間に、入出力パッド１５はＭＡＣ演算器１３に第２入力データ（Ｘ１）を提供する。すなわち、ＭＡＣ演算器１３は第４サブ区間ＳＰ４の間に、入出力パッド１５を介して第２入力データ（Ｘ１）の提供を受ける。いくつかの実施形態によれば、第４サブ区間ＳＰ４は、第３サブ区間ＳＰ３以後に配置されるが、実施形態はこれに制限されるものではない。
【００５６】
いくつかの実施形態によれば、第１サブ区間ＳＰ１と第３サブ区間ＳＰ３はオーバーラップする。また、第２サブ区間ＳＰ２と第４サブ区間ＳＰ４はオーバーラップする。すなわち、いくつかの実施形態によれば、ＭＡＣ演算器１３は、第１加重値データ（Ｗ０）と第１入力データ（Ｘ０）を同時に提供を受け得る。また、ＭＡＣ演算器１３は第２加重値データ（Ｗ１）と第２入力データ（Ｘ１）の提供を同時に受け得る。
【００５７】
再び図５〜図８を参照すると、第４区間Ｐ４の間に、ＭＡＣ演算器１３は入力データＩ＿Ｄａｔａと加重値データＷ＿Ｄａｔａのコンボリューション演算を行う。いくつかの実施形態によれば、第４区間Ｐ４と第２区間Ｐ２はオーバーラップする。また、いくつかの実施形態によれば、第４区間Ｐ４と第３区間Ｐ３はオーバーラップする。すなわち、ＭＡＣ演算器１３は入力データＩ＿Ｄａｔａと加重値データＷ＿Ｄａｔａの提供を受けるのと同時に、入力データＩ＿Ｄａｔａと加重値データＷ＿Ｄａｔａのコンボリューション演算を行い得る。
【００５８】
図面に示していないが、第４区間Ｐ４の間に、ＭＡＣ演算器１３は入力データＩ＿Ｄａｔａと加重値データＷ＿Ｄａｔａのコンボリューション演算の中間結果を、結果出力バッファ１４に提供する。すなわち、第４区間Ｐ４の間に、結果出力バッファ１４は結果データＲ＿Ｄａｔａの提供を受け得る。
【００５９】
第５区間Ｐ５の間に、結果出力バッファ１４は出力データＯ＿Ｄａｔａを入出力パッド１５を介して不揮発性メモリ１０の外部に提供する。前述したように、出力データＯ＿Ｄａｔａは、例えば、第１出力データ（Ｓ０）〜第１２出力データ（Ｓ１１）、または第１加重値データ（Ｗ０）と第１入力データ（Ｘ０）の積（Ｗ０Ｘ０）〜第４加重値データ（Ｗ３）と第２０入力データ（Ｘ１９）の積（Ｗ３Ｘ１９）であり得る。
【００６０】
いくつかの実施形態によれば、不揮発性メモリ１０は、メモリセル１１からバッファメモリ１２に加重値データＷ＿Ｄａｔａをラッチするときから、ＭＡＣ演算器１３の動作が終了するときまでビジー（ｂｕｓｙ）状態を維持し得る。すなわち、不揮発性メモリ１０の内部動作が行われる間、ビジー状態信号（ＲｎＢＸ）は論理ローレベル（０）であり得る。
【００６１】
いくつかの実施形態によれば、入力データＩ＿Ｄａｔａと加重値データＷ＿Ｄａｔａのコンボリューション演算は乗算と加算の組み合わせであり得る。例えば、前述した数学式１を参照すると、第１出力データ（Ｓ０）は、第１入力データ（Ｘ０）と第１加重値データ（Ｗ０）の積、第２入力データ（Ｘ１）と第２加重値データ（Ｗ１）の積、第６入力データ（Ｘ５）と第３加重値データ（Ｗ２）の積および第７入力データ（Ｘ６）と第４加重値データ（Ｗ３）の積をすべて合計した結果と同じである。入力データＩ＿Ｄａｔａと加重値データＷ＿Ｄａｔａの効果的な乗算過程を説明するために、図１０〜図１２を参照する。
【００６２】
図１０〜図１２はいくつかの実施形態による入力データと加重値データの乗算を説明するための例示的な図である。図１０〜図１２は説明の便宜上、第１入力データ（Ｘ０）と第１加重値データ（Ｗ０）の乗算を例にあげて説明するが、実施形態はこれに制限されない。また、説明の便宜上、第１入力データ（Ｘ０）は、３ビットデータであり、第１加重値データ（Ｗ０）も３ビットデータであると仮定して説明するが、実施形態はこれに制限されるものではない。図１０〜図１２において、第１加重値データ（Ｗ０）は、ＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）がｗｂ２であり、２番目ビットがｗｂ１であり、ＬＳＢ（Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）がｗｂ０であるデータであると定義する。また、第１入力データ（Ｘ０）は、ＭＳＢがｘｂ２であり、２番目ビットがｘｂ１であり、ＬＳＢがｘｂ０であるデータであると定義する。
【００６３】
図９〜図１２を参照すると、ＭＡＣ演算器１３は、第１乗算器（Ｍｕｌｔｉｐｌｉｅｒ）Ｍ＿１、第１累算器（Ａｃｃｕｍｕｌａｔｏｒ）ＡＣ＿１、第２累算器ＡＣ＿２、第３累算器ＡＣ＿３、第４累算器ＡＣ＿４および第５累算器ＡＣ＿５を含み得る。
【００６４】
ＭＡＣ演算器１３は、第１サブ区間ＳＰ１の間に第１加重値データ（Ｗ０）の提供を受け、第３サブ区間ＳＰ３の間に第１入力データ（Ｘ０）の提供を受ける。いくつかの実施形態によれば、第１サブ区間ＳＰ１の間に、第１加重値データ（Ｗ０）のすべてのビットが第１乗算器Ｍ＿１に同時に提供されてラッチされ得る。すなわち、第１加重値データ（Ｗ０）は、第１乗算器Ｍ＿１の被乗数（ｍｕｌｔｉｐｌｉｃａｎｄ）であり得る。例えば、第１サブ区間ＳＰ１の間に、ｗｂ２、ｗｂ１およびｗｂ０が第１乗算器Ｍ＿１に同時に提供されてラッチされる。これに対し、第３サブ区間ＳＰ３の間に、第１入力データ（Ｘ０）は、第１乗算器Ｍ＿１に順次提供される。すなわち、第１入力データ（Ｘ０）は、第１乗算器Ｍ＿１の乗数（ｍｕｌｔｉｐｌｉｅｒ）であり得る。例えば、第３サブ区間ＳＰ３の間に、ｘｂ２、ｘｂ１およびｘｂ０が順次提供され得る。
【００６５】
先に、第１乗算器Ｍ＿１にｘｂ０が提供される。この時、第１乗算器Ｍ＿１はｗｂ０ｘｂ０、ｗｂ１ｘｂ０、ｗｂ２ｘｂ０を演算する。ｗｂ０ｘｂ０、ｗｂ１ｘｂ０、ｗｂ２ｘｂ０の演算は、第１乗算器Ｍ＿１で並列的に行われる。第１乗算器Ｍ＿１は、ｗｂ０ｘｂ０を第１累算器ＡＣ＿１に提供し、ｗｂ１ｘｂ０を第２累算器ＡＣ＿２に提供し、ｗｂ２ｘｂ０を第３累算器ＡＣ＿３に提供する。
【００６６】
次に、第１乗算器Ｍ＿１にｘｂ１が提供される。この時、第１乗算器Ｍ＿１はｗｂ０ｘｂ１、ｗｂ１ｘｂ１、ｗｂ２ｘｂ１を演算する。ｗｂ０ｘｂ１、ｗｂ１ｘｂ１、ｗｂ２ｘｂ１の演算は第１乗算器Ｍ＿１で並列的に行われる。第１乗算器Ｍ＿１はｗｂ０ｘｂ１を第２累算器ＡＣ＿２に提供し、ｗｂ１ｘｂ１を第３累算器ＡＣ＿３に提供し、ｗｂ２ｘｂ１を第４累算器ＡＣ＿４に提供する。
【００６７】
次に、第１乗算器Ｍ＿１にｘｂ２が提供される。この時、第１乗算器Ｍ＿１はｗｂ０ｘｂ２、ｗｂ１ｘｂ２、ｗｂ２ｘｂ２を演算する。ｗｂ０ｘｂ２、ｗｂ１ｘｂ２、ｗｂ２ｘｂ２の演算は、１乗算器Ｍ＿１で並列的に行われる。第１乗算器Ｍ＿１はｗｂ０ｘｂ２を第３累算器ＡＣ＿３に提供し、ｗｂ１ｘｂ２を第４累算器ＡＣ＿４に提供し、ｗｂ２ｘｂ２を第５累算器ＡＣ＿５に提供する。
【００６８】
いくつかの実施形態によれば、第１累算器ＡＣ＿１〜第５累算器ＡＣ＿５の出力それぞれは、第１加重値データ（Ｗ０）と第１入力データ（Ｘ０）の積（Ｗ０Ｘ０）の各桁に該当するビットであり得る。いくつかの実施形態によれば、第１累算器ＡＣ＿１の出力は、第１加重値データ（Ｗ０）と第１入力データ（Ｘ０）の積（Ｗ０Ｘ０）のＬＳＢであり、第５累算器ＡＣ＿５の出力は、第１加重値データ（Ｗ０）と第１入力データ（Ｘ０）の積（Ｗ０Ｘ０）のＭＳＢであり得る。いくつかの実施形態によるＭＡＣ演算器１３は、簡単で効果的な方法により加重値データＷ＿Ｄａｔａと入力データＩ＿Ｄａｔａの乗算を行い得る。
【００６９】
図１０〜図１２は第１乗算器Ｍ＿１を一つの構成要素として示すが、実施形態はこれに制限されるものではない。本発明の技術分野における通常の知識を有する者は、複数の乗算器を用いて過度な実験なしに本発明の実施形態を実現することができる。
【００７０】
図１３はいくつかの実施形態による不揮発性メモリを説明するための例示的なブロック図である。説明の便宜上、重複または類似の内容は省略または簡単に説明する。
【００７１】
図１３を参照すると、不揮発性メモリ１０は保存領域１０＿Ｓにはメモリセル１１が配置される。また、不揮発性メモリ１０の周辺領域１０＿Ｐにはバッファメモリ１２、ＭＡＣ演算器１３、結果出力パッド（Ｒｅｓｕｌｔ  Ｏｕｔｐｕｔ  ＰＡＤ）１６および入出力パッド１５が配置される。すなわち、いくつかの実施形態による不揮発性メモリ１０は、図３を用いて説明した不揮発性メモリ１０において、結果出力バッファ１４の代わりに結果出力パッド１６をさらに含む不揮発性メモリ１０であり得る。
【００７２】
ＭＡＣ演算器１３は、加重値データＷ＿Ｄａｔａと入力データＩ＿Ｄａｔａをコンボリューション演算し、結果データＲ＿Ｄａｔａを生成する。ＭＡＣ演算器１３で生成された結果データＲ＿Ｄａｔａは結果出力パッド１６に提供される。前述したように、結果データＲ＿Ｄａｔａは、加重値データＷ＿Ｄａｔａと入力データＩ＿Ｄａｔａのコンボリューション演算の中間結果データであり得る。例えば、結果データＲ＿Ｄａｔａは、第１出力データ（Ｓ０）〜第１２出力データ（Ｓ１１）それぞれであり得る。他の例として、結果データＲ＿Ｄａｔａは、第１加重値データ（Ｗ０）と第１入力データ（Ｘ０）の積（Ｗ０Ｘ０）〜第４加重値データ（Ｗ３）と第２０入力データ（Ｘ１９）の積（Ｗ３Ｘ１９）それぞれであり得る。
【００７３】
結果出力パッド１６に提供された結果データＲ＿Ｄａｔａは、出力データＯ＿Ｄａｔａとして不揮発性メモリ１０の外部に提供される。いくつかの実施形態によれば、出力データＯ＿Ｄａｔａは、結果データＲ＿Ｄａｔａと同じデータであり得る。
【００７４】
いくつかの実施形態によれば、結果出力パッド１６は、入力データＩ＿Ｄａｔａの提供を受ける入出力パッド１５とは別に構成される。したがって、入力データＩ＿Ｄａｔａが入出力パッド１５を介してＭＡＣ演算器１３に提供される間に、出力データＯ＿Ｄａｔａが結果出力パッド１６を介して不揮発性メモリ１０の外部に提供される。例示的説明のために図１４を参照する。
【００７５】
図１４はいくつかの実施形態によるデータが入力／出力されるタイミングを説明するための例示的な図である。説明の便宜上、重複または類似の内容は省略または簡単に説明する。
【００７６】
図１３および図１４を参照すると、第１区間Ｐ１の間に、バッファメモリ１２は加重値データＷ＿Ｄａｔａをラッチする。すなわち、不揮発性メモリ１０のメモリセル１１に保存された加重値データＷ＿Ｄａｔａが第１区間Ｐ１の間にバッファメモリ１２に提供され得る。
【００７７】
第２区間Ｐ２の間に、バッファメモリ１２はラッチされた加重値データＷ＿ＤａｔａをＭＡＣ演算器１３に提供する。
【００７８】
第３区間Ｐ３の間に、入出力パッド１５は入力データＩ＿ＤａｔａをＭＡＣ演算器１３に提供する。いくつかの実施形態によれば、第２区間Ｐ２と第３区間Ｐ３はオーバーラップする。すなわち、ＭＡＣ演算器１３は加重値データＷ＿Ｄａｔａと入力データＩ＿Ｄａｔａの提供を同時に受け得る。いくつかの実施形態で、第１区間Ｐ１は第３区間Ｐ３より先に行い得る。
【００７９】
第４区間Ｐ４の間に、ＭＡＣ演算器１３は入力データＩ＿Ｄａｔａと加重値データＷ＿Ｄａｔａのコンボリューション演算を行う。いくつかの実施形態によれば、第４区間Ｐ４と第２区間Ｐ２はオーバーラップする。また、いくつかの実施形態によれば、第４区間Ｐ４と第３区間Ｐ３はオーバーラップする。すなわち、ＭＡＣ演算器１３は入力データＩ＿Ｄａｔａと加重値データＷ＿Ｄａｔａの提供を受けるのと同時に、入力データＩ＿Ｄａｔａと加重値データＷ＿Ｄａｔａのコンボリューション演算を行い得る。
【００８０】
第５区間Ｐ５の間に、ＭＡＣ演算器１３は結果データＲ＿Ｄａｔａを結果出力パッド１６に提供する。結果データＲ＿Ｄａｔａの提供を受けた結果出力パッド１６はこれを出力データＯ＿Ｄａｔａとして不揮発性メモリ１０の外部に提供する。いくつかの実施形態によれば、第５区間Ｐ５は第２区間Ｐ２と少なくとも一部オーバーラップする。また、第５区間Ｐ５は第３区間Ｐ３と少なくとも一部オーバーラップする。また、第５区間Ｐ５は第４区間Ｐ４と少なくとも一部オーバーラップする。すなわち、ＭＡＣ演算器１３は少なくとも一部の区間において、入出力パッド１５を介して入力データＩ＿Ｄａｔａの提供を受けるのと同時に、結果出力パッド１６を介して出力データＯ＿Ｄａｔａを不揮発性メモリ１０の外部に提供し得る。例えば、出力データＯ＿Ｄａｔａは、第１出力データ（Ｓ０）〜第１２出力データ（Ｓ１１）それぞれ、または第１加重値データ（Ｗ０）と第１入力データ（Ｘ０）の積（Ｗ０Ｘ０）〜第４加重値データ（Ｗ３）と第２０入力データ（Ｘ１９）の積（Ｗ３Ｘ１９）それぞれであり得る。
【００８１】
以上、添付した図面を参照して本発明の実施形態を説明したが、本発明は前記実施形態に限定されるものではなく、互いに異なる多様な形態で製造され、本発明が属する技術分野における通常の知識を有する者は本発明の技術的思想や必須の特徴を変更せず他の具体的な形態で実施できることを理解することができる。したがって、以上で記述した実施形態はすべての面で例示的なものであり、限定的なものではないと理解しなければならない。
【符号の説明】
【００８２】
１０      不揮発性メモリ
１１      メモリセル
１２      バッファメモリ
１３      ＭＡＣ演算器
１４      結果出力バッファ
１５      入出力パッド
１６      結果出力パッド
２０      メモリコントローラ
１００    メモリ装置
３００    プロセッサ
１０００  コンピューティング装置
【図１】
2020129373.tif 000003
【図２】
2020129373.tif 000004
【図３】
2020129373.tif 000005
【図４】
2020129373.tif 000006
【図５】
2020129373.tif 000007
【図６】
2020129373.tif 000008
【図７】
2020129373.tif 000009
【図８】
2020129373.tif 000010
【図９】
2020129373.tif 000011
【図１０】
2020129373.tif 000012
【図１１】
2020129373.tif 000013
【図１２】
2020129373.tif 000014
【図１３】
2020129373.tif 000015
【図１４】
2020129373.tif 000016