(57)【要約】【課題】バッファメモリの使用効率の増加、及び演算装置の製造費用の減少を図る。【解決手段】演算装置１０２は、演算ユニット１４０に第１乃至第ｎの入力フィーチャセットを提供するバッファメモリ１２２を含む。バッファメモリ１２２は、第１乃至第ｎのメモリを含み、複数のフィーチャを有する第１乃至第ｎの入力フィーチャセットＦＤを第１乃至第ｎのメモリに保存させる。一つの入力フィーチャセットＦＤに含まれる複数のフィーチャは、第１乃至第ｎのメモリに分けて保存でき、第１乃至第ｎの入力フィーチャセットの同じ順番のフィーチャは、互いに異なるメモリに各々保存できる。【選択図】図１
2020170507.tif 000002
【特許請求の範囲】
【請求項１】
第１乃至第ｎのメモリを含み、複数のフィーチャを含む第１乃至第ｎの入力フィーチャセットを前記第１乃至第ｎのメモリに各々分けて保存させ、一つの入力フィーチャセットの複数のフィーチャを前記第１乃至第ｎのメモリに分けて保存させるが、前記第１乃至第ｎの入力フィーチャセットの同じ順番のフィーチャを前記第１乃至第ｎのメモリに一つずつ保存させ、ｎは２以上の整数であるバッファメモリ；及び、
前記バッファメモリに保存された第１乃至第ｎの入力フィーチャセットを受信し、受信された入力フィーチャセットに対する演算動作を遂行する演算ユニットを含むことを特徴とする、演算装置。
【請求項２】
前記バッファメモリは、第ｋの入力フィーチャセットの複数のフィーチャのうち、第１のフィーチャを第ｋのメモリに保存させ、ｋは１及びｎ間の整数であることを特徴とする、請求項１に記載の演算装置。
【請求項３】
前記バッファメモリは、第ｋの入力フィーチャセットの複数のフィーチャのうち、第ｎ＋１のフィーチャを前記第ｋのメモリに保存させることを特徴とする、請求項２に記載の演算装置。
【請求項４】
前記バッファメモリは、前記第１の入力フィーチャセットの第１乃至第ｌのフィーチャを前記第１乃至第ｌのメモリに各々同時に保存し、ｌは２及びｎ間の整数であることを特徴とする、請求項１に記載の演算装置。
【請求項５】
前記バッファメモリは、単一の読取り動作中に、前記第１乃至第ｎの入力フィーチャセットの前記同じ順番のフィーチャを同時に出力することを特徴とする、請求項１に記載の演算装置。
【請求項６】
第１乃至第４のメモリを含み、少なくとも第１乃至第４のフィーチャを有する第１乃至第４の入力フィーチャセットを前記第１乃至第４のメモリに保存させ、一つの入力フィーチャセットの第１乃至第４のフィーチャを前記第１乃至第４のメモリに分けて保存させるが、前記第１乃至第４の入力フィーチャセットの同じ順番のフィーチャを前記第１乃至第４のメモリに重複されないように分けて保存させるバッファメモリ；及び、
前記バッファメモリに保存された前記第１乃至第４の入力フィーチャセットを受信し、受信された入力フィーチャセットに対する演算動作を遂行する演算ユニットを含むことを特徴とする、演算装置。
【請求項７】
前記第１の入力フィーチャセットの第１のフィーチャは前記第１のメモリの第１の保存領域に保存され、前記第１の入力フィーチャセットの第２のフィーチャは前記第２のメモリの第１の保存領域に保存され、前記第１の入力フィーチャセットの第３のフィーチャは前記第３のメモリの第１の保存領域に保存され、前記第１の入力フィーチャセットの第４のフィーチャは前記第４のメモリの第１の保存領域に保存されることを特徴とする、請求項６に記載の演算装置。
【請求項８】
前記第２の入力フィーチャセットの第１のフィーチャは前記第２のメモリの第２の保存領域に保存され、前記第２の入力フィーチャセットの第２のフィーチャは前記第３のメモリの第２の保存領域に保存され、前記第２の入力フィーチャセットの第３のフィーチャは前記第４のメモリの第２の保存領域に保存され、前記第２の入力フィーチャセットの第４のフィーチャは前記第１のメモリの第２の保存領域に保存されることを特徴とする、請求項７に記載の演算装置。
【請求項９】
前記第３の入力フィーチャセットの第１のフィーチャは前記第３のメモリの第３の保存領域に保存され、前記第３の入力フィーチャセットの第２のフィーチャは前記第４のメモリの第３の保存領域に保存され、前記第３の入力フィーチャセットの第３のフィーチャは前記第１のメモリの第３の保存領域に保存され、前記第３の入力フィーチャセットの第４のフィーチャは前記第２のメモリの第３の保存領域に保存されることを特徴とする、請求項８に記載の演算装置。
【請求項１０】
前記第４の入力フィーチャセットの第１のフィーチャは前記第４のメモリの第４の保存領域に保存され、前記第４の入力フィーチャセットの第２のフィーチャは前記第１のメモリの第４の保存領域に保存され、前記第４の入力フィーチャセットの第３のフィーチャは前記第２のメモリの第４の保存領域に保存され、前記第４の入力フィーチャセットの第４のフィーチャは前記第３のメモリの第４の保存領域に保存されることを特徴とする、請求項９に記載の演算装置。
【請求項１１】
前記バッファメモリは、第１の読取り動作中に、前記第１乃至第４の入力フィーチャセットの第１のフィーチャを同時に出力することを特徴とする、請求項６に記載の演算装置。
【請求項１２】
前記バッファメモリは、第２の読取り動作中に、前記第１乃至第４の入力フィーチャセットの第２のフィーチャを同時に出力することを特徴とする、請求項１１に記載の演算装置。
【請求項１３】
前記バッファメモリは、第３の読取り動作中に、前記第１乃至第４の入力フィーチャセットの第３のフィーチャを同時に出力することを特徴とする、請求項１２に記載の演算装置。
【請求項１４】
前記バッファメモリは、第４の読取り動作中に、前記第１乃至第４の入力フィーチャセットの第４のフィーチャを同時に出力することを特徴とする、請求項１３に記載の演算装置。
【請求項１５】
システムバスを介して第１の入力データを転送するホスト装置と、
前記第１の入力データを受信し、前記第１の入力データに対する演算動作を遂行する演算装置とを含み、
前記演算装置は、前記第１の入力データを各々少なくとも第１乃至第ｎのフィーチャを有する第１乃至第ｎの入力フィーチャセットに分類して保存し、ｎは２以上の整数であるバッファ；
第１乃至第ｎのメモリを含み、前記第１乃至第ｎの入力フィーチャセットの第１乃至第ｎのフィーチャを前記第１乃至第ｎのメモリに各々保存させ、一つの入力フィーチャセットの第１乃至第ｎのフィーチャは前記第１乃至第ｎのメモリに分割保存されるバッファメモリ；及び、
前記バッファメモリに保存された前記第１乃至第ｎの入力フィーチャセットを受信し、前記第１乃至第ｎの入力フィーチャセットに対する演算動作を遂行する演算ユニットを含むことを特徴とする、システム。
【請求項１６】
前記バッファは、第１乃至第ｎの入力フィーチャセットを各々保存するｎ個のＦＩＦＯ(First-In First-Out)回路を含むことを特徴とする、請求項１５に記載のシステム。
【請求項１７】
前記バッファメモリは、前記第１乃至第ｎの入力フィーチャセットの同じ順番のフィーチャを前記第１乃至第ｎのメモリに均等に保存させることを特徴とする、請求項１５に記載のシステム。
【請求項１８】
前記第１乃至第ｎの入力フィーチャセットは、各々第ｎ＋１のフィーチャをさらに含み、
前記バッファメモリは、前記第１乃至第ｎの入力フィーチャセットの前記第ｎ＋１のフィーチャを前記第１乃至第ｎの入力フィーチャセットの前記第１のフィーチャが保存されたメモリに各々保存させることを特徴とする、請求項１５に記載のシステム。
【請求項１９】
前記バッファメモリは、単一の読取り動作中に、前記第１乃至第ｎの入力フィーチャセットの同じ順番のフィーチャを同時に出力することを特徴とする、請求項１５に記載のシステム。
【請求項２０】
前記ホスト装置は前記システムバスを介して第２の入力データをさらに転送し、
前記演算装置は、前記第２の入力データを保存し、前記演算ユニットに前記第２の入力データをウェイトデータとして出力するメモリをさらに含むことを特徴とする、請求項１５に記載のシステム。
【請求項２１】
ホスト装置から転送された第１の入力データを各々第１乃至第ｎのフィーチャを含む第１乃至第ｎの入力フィーチャに分類して、前記第１乃至第ｎの入力フィーチャセットを仮に保存し、ｎは２以上の整数であるステップ；
前記第１乃至第ｎの入力フィーチャセットの前記第１乃至第ｎのフィーチャを第１乃至第ｎのメモリに保存させ、一つの入力フィーチャセットの前記第１乃至第ｎのフィーチャは前記第１乃至第ｎのメモリに分けて保存され、前記第１乃至第ｎの入力フィーチャセットの同じ順番のフィーチャは前記第１乃至第ｎのメモリに均等に保存されるステップ；
前記第１乃至第ｎの入力フィーチャセットの同じ順番のフィーチャを同時に出力するステップ；及び、
前記出力されたフィーチャに対して演算動作を遂行するステップを含むことを特徴とする、システムの動作方法。
【請求項２２】
前記第１乃至第ｎのメモリの各々は、デュアルポートＳＲＡＭ(Static Random Access Memory)を含み、
前記第１乃至第ｎの入力フィーチャセットを仮に保存するために、ｎ個のＦＩＦＯが用いられることを特徴とする、請求項２１に記載のシステムの動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路技術に関し、より詳細にはバッファメモリ、これを用いる演算装置及びシステムに関する。
【背景技術】
【０００２】
４次産業革命の進行に伴い、モノのインターネット(Internet of Things)、モバイル(Mobile)、クラウド(Cloud)ストレージ、ビックデータ(Big Data)分析及び人工知能(Artificial Intelligence)に係る技術が持続的に発展している。人工知能を具現するために、マシンラーニング(machine Learning)やディープラーニング(Deep Learning)のような技術が開発されてきた。マシンラーニングやディープラーニングは受信された入力を演算又は分類して出力を生成する点において類似しているが、マシンラーニングは人間が入力したアルゴリズムを介してデータを分析及び推論するのに比べて、ディープラーニングは人工神経網(Deep Neural Network)を介してデータを分析及び推論できる。
【０００３】
人工神経網(Deep Neural Network、DNN)回路は、受信された入力に対して演算を遂行して出力を生成する回路であって、受信された入力に対して乗算(Multiply)及び加算(Accumulation)(ＭＡＣ演算)を遂行して出力を生成するマトリックス演算回路を含むことができる。前記マトリックス演算回路は、畳み込み(convolution)演算が可能な回路であって、シストリックアレイ(systolic array)を含むことができる。前記シストリックアレイは、活性化入力のような入力フィーチャセット(set of input feature)及びウェイト(weight)データに対する乗算及び加算を遂行して出力が生成できる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の実施例は、複数の入力フィーチャセットの各々のフィーチャを複数のメモリに分割して保存させ、前記複数の入力フィーチャセットの同じ順番のフィーチャを互いに異なるメモリに保存させることができるバッファメモリ、これを用いる演算装置及びシステム、並びにその動作方法が提供できる。
【課題を解決するための手段】
【０００５】
本発明の実施例に係る演算装置は、第１乃至第ｎのメモリを含み、複数のフィーチャを含む第１乃至第ｎの入力フィーチャセットを前記第１乃至第ｎのメモリに各々分けて保存させ、一つの入力フィーチャセットの複数のフィーチャを前記第１乃至第ｎのメモリに分けて保存させるが、前記第１乃至第ｎの入力フィーチャセットの同じ順番のフィーチャを前記第１乃至第ｎのメモリに一つずつ保存させ、ｎは２以上の整数であるバッファメモリ；及び、前記バッファメモリに保存された第１乃至第ｎの入力フィーチャセットを受信し、受信された入力フィーチャセットに対する演算動作を遂行する演算ユニットを含むことができる。
【０００６】
本発明の実施例に係る演算装置は、第１乃至第４のメモリを含み、少なくとも第１乃至第４のフィーチャを有する第１乃至第４の入力フィーチャセットを前記第１乃至第４のメモリに保存させ、一つの入力フィーチャセットの第１乃至第４のフィーチャを前記第１乃至第４のメモリに分けて保存させるが、前記第１乃至第４の入力フィーチャセットの同じ順番のフィーチャを前記第１乃至第４のメモリに重複されないように分けて保存させるバッファメモリ；及び、前記バッファメモリに保存された前記第１乃至第４の入力フィーチャセットを受信し、受信された入力フィーチャセットに対する演算動作を遂行する演算ユニットを含むことができる。
【０００７】
本発明の実施例に係るシステムは、システムバスを介して第１の入力データを転送するホスト装置と、前記第１の入力データを受信し、前記第１の入力データに対する演算動作を遂行する演算装置とを含み、前記演算装置は、前記第１の入力データを各々少なくとも第１乃至第ｎのフィーチャを有する第１乃至第ｎの入力フィーチャセットに分類して保存し、ｎは２以上の整数であるバッファ；第１乃至第ｎのメモリを含み、前記第１乃至第ｎの入力フィーチャセットの第１乃至第ｎのフィーチャを前記第１乃至第ｎのメモリに各々保存させ、一つの入力フィーチャセットの第１乃至第ｎのフィーチャは前記第１乃至第ｎのメモリに分割保存されるバッファメモリ；及び、前記バッファメモリに保存された前記第１乃至第ｎの入力フィーチャセットを受信し、前記第１乃至第ｎの入力フィーチャセットに対する演算動作を遂行する演算ユニットを含むことができる。
【０００８】
本発明の実施例に係るシステムの動作方法は、ホスト装置から転送された第１の入力データを各々第１乃至第ｎのフィーチャを含む第１乃至第ｎの入力フィーチャセットに分類して、前記第１乃至第ｎの入力フィーチャセットを仮に保存し、ｎは２以上の整数であるステップ；前記第１乃至第ｎの入力フィーチャセットの前記第１乃至第ｎのフィーチャを第１乃至第ｎのメモリに保存させ、一つの入力フィーチャセットの前記第１乃至第ｎのフィーチャは前記第１乃至第ｎのメモリに分けて保存され、前記第１乃至第ｎの入力フィーチャセットの同じ順番のフィーチャは前記第１乃至第ｎのメモリに均等に保存されるステップ；前記第１乃至第ｎの入力フィーチャセットの同じ順番のフィーチャを同時に出力するステップ；及び、前記出力されたフィーチャに対して演算動作を遂行するステップを含むことができる。
【発明の効果】
【０００９】
本発明の実施例は、バッファメモリの使用効率の増加、及び演算装置の製造費用の減少を図ることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例に係るシステムの構成を示す図である。
【図２Ａ】本発明の実施例に係る演算回路の構成及び演算動作を示す図である。
【図２Ｂ】本発明の実施例に係る演算回路の構成及び演算動作を示す図である。
【図３】本発明の実施例に係るシステムにおけるデータの流れを示す図である。
【図４】本発明の実施例に係るバッファメモリの構成及び複数の入力フィーチャセットをバッファメモリに保存する方式を示す図である。
【発明を実施するための形態】
【００１１】
以下、添付図面に基づき、本発明の好適な実施例を詳細に説明する。
【００１２】
図１は、本発明の実施例に係るシステム１の構成を示す図である。図１に示すように、前記システム１は、ホスト装置１０１及び演算装置１０２を含むことができる。前記ホスト装置１０１は、前記演算装置１０２にデータを提供し、前記演算装置１０２から出力されたデータが受信できる。前記ホスト装置１０１は、システムバス１０３を介して前記演算装置と連結することができる。前記ホスト装置１０１は、前記システムバス１０３を介して前記演算装置１０２に入力データＩＮＤ１、ＩＮＤ２が転送できる。前記ホスト装置１０１は、前記演算装置１０２が前記入力データＩＮＤ１、ＩＮＤ２に対する演算動作を遂行して生成した出力データＯＤを前記システムバスを介して受信できる。また、前記ホスト装置１０１は、前記演算装置１０２が演算動作を遂行できるように、多様な制御信号を前記システムバス１０３を介して前記演算装置１０２に提供できる。前記入力データは第１の入力データＩＮＤ１及び第２の入力データＩＮＤ２を含むことができる。例えば、前記第１の入力データＩＮＤ１は、入力フィーチャセット(set of input feature)に係る情報を含むことができる。前記第２の入力データＩＮＤ２は、ウェイト(weight)データに係る情報を含むことができる。
【００１３】
前記演算装置１０２は、前記システムバス１０３を介して前記ホスト装置１０１と連結することができる。前記演算装置１０２は、前記システムバス１０３を介して前記ホスト装置１０１から転送された入力データＩＮＤ１、ＩＮＤ２が受信できる。前記演算装置１０２は、前記入力データＩＮＤ１、ＩＮＤ２を受信し、前記入力データＩＮＤ１、ＩＮＤ２に対する演算動作が遂行できる。前記演算装置１０２は、前記演算動作を遂行して生成された出力データＯＤを前記システムバス１０３を介して前記ホスト装置１０１に転送できる。前記演算装置１０２は、ニューラルネットワーク(neural network)演算装置であり得る。前記演算装置１０２は、前記ホスト装置１０１から第１及び第２の入力データＩＮＤ１、ＩＮＤ２を受信し、入力フィーチャセット及びウェイトデータに対する演算動作が遂行できる。前記演算動作は、前記入力フィーチャセット及び前記ウェイトデータに対する畳込み(convolution)演算であり得、ＭＡＣ(Multiply and Accumulation)演算であり得る。
【００１４】
前記演算装置１０２は、ホストインターフェース１１０、バッファリング回路１２０、メモリ１３０及び演算ユニット１４０を含むことができる。前記ホストインターフェース１１０は、前記システムバス１０３と連結して、前記ホスト装置１０１から転送された前記入力データＩＮＤ１、ＩＮＤ２を受信し、受信された入力データＩＮＤ１、ＩＮＤ２を前記演算装置１０２の内部回路に提供できる。また、前記ホストインターフェース１１０は、前記演算装置１０２から生成された前記出力データＯＤを前記システムバス１０３を介して前記ホスト装置１０１に転送できる。前記ホストインターフェース１１０は、前記システムバス１０３を介して前記第１及び第２の入力データＩＮＤ１、ＩＮＤ２が受信できる。前記ホストインターフェース１１０は、受信された第１の入力データＩＮＤ１を前記バッファリング回路１２０に提供し、受信された第２の入力データＩＮＤ２を前記メモリ１３０に提供できる。前記ホストインターフェース１１０は、前記演算ユニット１４０から出力された演算結果データＣＲＤを前記バッファリング回路１２０を介して受信できる。前記ホストインターフェース１１０は、前記演算ユニット１４０から生成された演算結果データＣＲＤに基づき、前記システムバス１０３を駆動して前記ホスト装置１０１に前記出力データＯＤが転送できる。
【００１５】
前記バッファリング回路１２０は、前記ホストインターフェース１１０から第１の入力データＩＮＤ１が受信できる。前記バッファリング回路１２０は、前記第１の入力データＩＮＤ１を複数の入力フィーチャセットＦＤに分類して保存できる。複数の入力フィーチャセットＦＤは各々複数のフィーチャを含むことができる。前記フィーチャは任意のビット数が含まれる入力フィーチャセットＦＤの単位データであり得る。前記システムバス１０３のデータ帯域幅(data bandwidth)は、一つのフィーチャのサイズと異なることができる。前記システムバス１０３のデータ帯域幅は、一つのフィーチャのサイズより大きいことができる。前記第１の入力データＩＮＤ１は、クロック信号に同期して前記システムバスを介して転送されることができ、前記システムバス１０３を介して一度に転送される第１の入力データＩＮＤ１のビット数は一つのフィーチャのビット数より多いことができ、前記システムバス１０３を介して一度に転送される第１の入力データＩＮＤ１は複数のフィーチャに関する情報を含むことができる。よって、前記バッファリング回路１２０は、前記第１の入力データＩＮＤ１を複数の入力フィーチャセットＦＤに分類し、分類された各々の入力フィーチャセットＦＤが保存できる。前記バッファリング回路１２０は、前記複数の入力フィーチャセットＦＤを前記演算ユニット１４０に提供できる。前記バッファリング回路１２０は、前記演算ユニット１４０の演算効率を増加させるために、前記複数の入力フィーチャセットＦＤを前記演算ユニット１４０に同時に提供できるバッチ(batch)動作が遂行できる。前記バッファリング回路１２０は、前記演算ユニット１４０が演算動作を遂行して生成した前記演算結果データＣＲＤを受信し、前記演算結果データＣＲＤを前記ホストインターフェース１１０に提供できる。
【００１６】
前記バッファリング回路１２０は、バッファ１２１及びバッファメモリ１２２を含むことができる。前記バッファ１２１は、前記第１の入力データＩＮＤ１を受信して保存できる。前記バッファ１２１は、前記第１の入力データＩＮＤ１を複数の入力フィーチャセットＦＤに分類して、前記複数の入力フィーチャセットＦＤを個別的に保存できる。前記バッファ１２１は、複数のＦＩＦＯ(First-In First-Out)回路を含むことができる。少なくとも前記ＦＩＦＯ回路の個数は前記第１の入力データＩＮＤ１に含まれる前記入力フィーチャセットＦＤの個数に対応し得る。前記複数のＦＩＦＯ回路は、前記複数の入力フィーチャセットＦＤの複数のフィーチャが各々保存できる。
【００１７】
前記バッファメモリ１２２は、前記バッファ１２１から出力された入力フィーチャセットＦＤを保存し、保存された入力フィーチャセットＦＤを前記演算ユニット１４０に出力できる。前記バッファメモリ１２２は、前記複数の入力フィーチャセットＦＤを保存し、前記複数の入力フィーチャセットＦＤの各々のフィーチャが同時に前記演算ユニット１４０に出力されるようにバッチ動作が遂行できる。前記バッファメモリ１２２は複数のメモリを含むことができる。前記バッファメモリ１２２が含むメモリの個数は、少なくとも前記入力フィーチャセットＦＤの個数に対応し得る。前記バッファメモリ１２２は、前記複数の入力フィーチャセットＦＤの各々のフィーチャを前記複数のメモリに分けて保存できる。前記複数のメモリは、各々前記複数の入力フィーチャセットＦＤの一つ以上のフィーチャが保存できる。前記複数のメモリに保存された複数の入力フィーチャセットＦＤのフィーチャ順番は互いに異なることができる。前記複数の入力フィーチャセットＦＤの同じ順番のフィーチャは同一のメモリに保存されないことができる。例えば、一つの入力フィーチャセットＦＤの第ｌのフィーチャを保存したメモリは、他の入力フィーチャセットＦＤの第ｌのフィーチャを保存しないことができる。前記ｌは１と一つの入力フィーチャセットに含まれるフィーチャの個数間の整数であり得る。前記バッファメモリ１２２は、前記複数の入力フィーチャセットＦＤの各々のフィーチャを同時に出力して前記演算ユニット１４０に提供できる。前記バッファメモリ１２２は、単一の読取り動作中に前記複数のフィーチャの同じ順番のフィーチャを同時に出力できる。例えば、前記バッファメモリ１２２は、単一の読取り動作中に前記複数の入力フィーチャセットの第ｌのフィーチャを同時に出力できる。前記バッファ１２１及びバッファメモリ１２２に関する詳細な説明は後述する。
【００１８】
一実施例において、前記複数のメモリは、各々デュアルポートＳＲＡＭ(Static Random Access Memory)であり得る。前記複数のメモリは、各々少なくとも一つのフィーチャが含むビット数に対応する保存深さ(depth)を有することができる。例えば、前記複数のメモリは複数の保存領域が具備でき、一つの保存領域は各々一つのフィーチャのビット数に対応する個数以上のビットが保存できる。前記複数の保存領域は互いに異なるアドレスに基づいて接近できる。
【００１９】
前記メモリ１３０は、前記ホストインターフェース１１０から第２の入力データＩＮＤ２が受信できる。前記メモリ１３０は、前記第２の入力データＩＮＤ２を複数のウェイトデータＷＤに分類して保存できる。前記メモリ１３０は、前記複数のウェイトデータＷＤを前記演算ユニット１４０に提供できる。一つのウェイトデータＷＤは複数のウェイト信号を含むことができる。前記ウェイト信号は任意のビット数が含まれるウェイトデータＷＤの単位データであり得る。一実施例において、前記メモリ１３０は、ＤＲＡＭ(Dynamic Random Access Memory)やＳＲＡＭ(Static Random Access Memory)を含むことができる。
【００２０】
前記演算ユニット１４０は、前記バッファリング回路１２０から出力された前記複数の入力フィーチャセットＦＤが受信できる。前記演算ユニット１４０は、前記メモリ１３０から出力された複数のウェイトデータＷＤが受信できる。前記演算ユニット１４０は、前記入力フィーチャセットＦＤ及び前記ウェイトデータＷＤに対する演算動作が遂行できる。例えば、前記演算ユニット１４０は、前記入力フィーチャセットＦＤ及び前記ウェイトデータＷＤに対する畳込み演算が遂行できる。前記演算ユニット１４０は複数の演算回路１４１、１４２、…、１４ｎを含むことができる。前記複数の演算回路１４１、１４２、…、１４ｎは互いに同一の構造を有するＭＡＣ演算回路であり得る。前記複数の演算回路１４１、１４２、…、１４ｎは、各々前記入力フィーチャセットＦＤ及び前記ウェイトデータＷＤに対する演算動作を遂行し、演算動作結果を前記ホストインターフェース１１０に出力できる。前記演算回路１４１、１４２、…、１４ｎは、各々複数のプロセッシングエレメント(processing element)を含み、前記プロセッシングエレメントは、クロック信号に同期して前記入力フィーチャセットＦＤ及び前記ウェイトデータＷＤを受信し、受信された入力フィーチャセットＦＤ及び前記ウェイトデータＷＤに対するＭＡＣ演算が遂行できる。前記複数の演算回路１４１、１４２、…、１４ｎは、各々入力フィーチャセットＦＤ及びウェイトデータＷＤに対するＭＡＣ演算を遂行するシストリックアレイ(systolic array)を含むことができる。
【００２１】
図２ａ及び図２ｂは、本発明の実施例に係る演算回路２００の構成及び演算動作を示す図である。図２ａに示すように、前記演算回路２００は、複数のプロセッシングエレメント(processing element、PE)を含むシストリックアレイであり得る。前記演算回路２００は、図１に示す前記複数の演算回路１４１、１４２、…、１４ｎに各々適用され得る。図２ａに示すように、前記演算回路２００は、３つのフィーチャを含む３つの入力フィーチャセットを入力信号として受信し、３つのウェイト信号を含む３つのウェイトデータが受信できる。前記演算回路２００は、３つのフィーチャを含む３つの入力フィーチャセット及び３つのウェイト信号を含む３つのウェイトデータに対するＭＡＣ演算が遂行できるように、９つのプロセッシングエレメントを備えるのを例示した。しかしながら、入力フィーチャセットの個数、１つの入力フィーチャセットが含むフィーチャの個数、ウェイトデータの個数、１つのウェイトデータが含むウェイト信号の個数は３つより少なかったり多かったりでき、これにより前記演算回路２００に含まれる前記プロセッシングエレメントの個数も減少したり増加したりできる。
【００２２】
前記演算回路２００は、第１乃至第９のプロセッシングエレメントＰＥ１〜ＰＥ９を含むことができる。各々のプロセッシングエレメントは、単位サイクルを定義するクロック信号ＣＬＫに同期して前記入力フィーチャセット及びウェイトデータに含まれるフィーチャ及びウェイト信号を順次受信し、受信されたフィーチャ及びウェイト信号に対してＭＡＣ演算が遂行できる。前記第１乃至第９のプロセッシングエレメントＰＥ１〜ＰＥ９は、各々乗算ロジック(multiply logic)、加算ロジック(accumulation logic)及びレジスタを含むことができる。前記第１乃至第９のプロセッシングエレメントＰＥ１〜ＰＥ９は、前記乗算ロジックによる乗算及び前記加算ロジックによる加算を並列的に遂行できる。図２ｂは、入力フィーチャセットＦＤ及びウェイトデータＷＤを行列に表現したものであり、前記入力フィーチャセットＦＤ及びウェイトデータＷＤを畳込み演算した結果(ＦＤ × ＷＤ)を示す。図２ａ及び図２ｂを参照して前記演算回路２００の動作を説明すれば、次の通りである。
【００２３】
第一の単位サイクルの途中に第１のクロック信号ＣＬＫ１がトグル(toggle)すれば、前記第１のプロセッシングエレメントＰＥ１は、前記第１の入力フィーチャセットの第１のフィーチャＦ１１及び前記第１のウェイトデータの第１のウェイト信号Ｗ１１が受信できる。前記第１のプロセッシングエレメントＰＥ１は、前記第１の入力フィーチャセットの第１のフィーチャＦ１１及び前記第１のウェイトデータの第１のウェイト信号Ｗ１１を乗算して、Ｆ１１Ｗ１１が生成できる。前記第１のクロック信号ＣＬＫ１は、前記クロック信号ＣＬＫの第一のサイクルに同期されてトグルするパルス信号であり得る。同様に、第２乃至第９のクロック信号ＣＬＫ２〜ＣＬＫ９は、前記クロック信号ＣＬＫの第二乃至第九のサイクルに各々同期されてトグルするパルス信号であり得る。
【００２４】
第二の単位サイクルの途中に前記第２のクロック信号ＣＬＫ２がトグルすれば、前記第１のプロセッシングエレメントＰＥ１は、以前に演算されたＦ１１Ｗ１１及び０を加算して演算結果が保存できる。前記第１のプロセッシングエレメントＰＥ１は、前記第１の入力フィーチャセットの第２のフィーチャＦ１２を受信し、前記第２のウェイトデータの第１のウェイト信号Ｗ２１が受信できる。前記第１のプロセッシングエレメントＰＥ１は、前記第１の入力フィーチャセットの第１のフィーチャＦ１１を第２のプロセッシングエレメントＰＥ２に出力し、前記第１のウェイトデータの第１のウェイト信号Ｗ１１を第３のプロセッシングエレメントＰＥ３に出力できる。前記第１のプロセッシングエレメントＰＥ１は、前記第１の入力フィーチャセットの第２のフィーチャＦ１２及び前記第２のウェイトデータの第１のウェイト信号Ｗ２１を乗算して、Ｆ１２Ｗ２１が生成できる。前記第２のプロセッシングエレメントＰＥ２は、前記第２のクロック信号ＣＬＫ２に同期して前記第１のウェイトデータの第２のウェイト信号Ｗ１２を受信し、前記第１のプロセッシングエレメントＰＥ１から前記第１の入力フィーチャセットの第１のフィーチャＦ１１が受信できる。前記第２のプロセッシングエレメントＰＥ２は、前記第１の入力フィーチャセットの第１のフィーチャＦ１１及び前記第１のウェイトデータの第２のウェイト信号Ｗ１２を乗算して、Ｆ１１Ｗ１２が生成できる。前記第３のプロセッシングエレメントＰＥ３は、前記第２のクロック信号ＣＬＫ２に同期して前記第２の入力フィーチャセットの第１のフィーチャＦ２１を受信し、前記第１のプロセッシングエレメントＰＥ１から前記第１のウェイトデータの第１のウェイト信号Ｗ１１が受信できる。前記第３のプロセッシングエレメントＰＥ３は、前記第２の入力フィーチャセットの第１のフィーチャＦ２１及び前記第１のウェイトデータの第１のウェイト信号Ｗ１１を乗算して、Ｆ２１Ｗ１１が生成できる。
【００２５】
第三の単位サイクルの途中に前記第３のクロック信号ＣＬＫ３がトグルすれば、前記第１のプロセッシングエレメントＰＥ１は、以前に演算されたＦ１１Ｗ１１及びＦ１２Ｗ２１を加算して、演算結果(Ｆ１１Ｗ１１＋Ｆ１２Ｗ２１)が保存できる。前記第１のプロセッシングエレメントＰＥ１は、第１の入力フィーチャセットの第３のフィーチャＦ１３及び第３のウェイトデータの第１のウェイト信号Ｗ３１が受信できる。前記第１のプロセッシングエレメントＰＥ１は、前記第１の入力フィーチャセットの第２のフィーチャＦ１２を第２のプロセッシングエレメントＰＥ２に出力し、前記第２のウェイトデータの第１のウェイト信号Ｗ２１を前記第３のプロセッシングエレメントＰＥ３に出力できる。前記第１のプロセッシングエレメントＰＥ１は、前記第１の入力フィーチャセットの第３のフィーチャＦ１３及び前記第３のウェイトデータの第１のウェイト信号Ｗ３１を乗算して、Ｆ１３Ｗ３１が生成できる。前記第２のプロセッシングエレメントＰＥ２は、以前に演算されたＦ１１Ｗ１２及び０を加算して演算結果が保存できる。前記第２のプロセッシングエレメントＰＥ２は、前記第２のウェイトデータの第２のウェイト信号Ｗ２２を受信し、前記第１のプロセッシングエレメントＰＥ１から前記第１の入力フィーチャセットの第２のフィーチャＦ１２が受信できる。前記第２のプロセッシングエレメントＰＥ２は、前記第１の入力フィーチャセットの第１のフィーチャＦ１１を第４のプロセッシングエレメントＰＥ４に出力し、前記第１のウェイトデータの第２のウェイト信号Ｗ１２を第５のプロセッシングエレメントＰＥ５に出力できる。前記第２のプロセッシングエレメントＰＥ２は、前記第１の入力フィーチャセットの第２のフィーチャＦ１２及び前記第２のウェイトデータの第２のウェイト信号Ｗ２２を乗算して、Ｆ１２Ｗ２２が生成できる。前記第３のプロセッシングエレメントＰＥ３は、以前に演算されたＦ２１Ｗ１１及び０を加算して演算結果が保存できる。前記第３のプロセッシングエレメントＰＥ３は、前記第２の入力フィーチャセットの第２のフィーチャＦ２２を受信し、前記第１のプロセッシングエレメントＰＥ１から前記第２のウェイトデータの第１のウェイト信号Ｗ２１が受信できる。前記第３のプロセッシングエレメントＰＥ３は、前記第２の入力フィーチャセットの第１のフィーチャＦ２１を前記第５のプロセッシングエレメントＰＥ５に出力し、前記第１のウェイトデータの第１のウェイト信号Ｗ１１を第６のプロセッシングエレメントＰＥ６に出力できる。前記第３のプロセッシングエレメントＰＥ３は、前記第２の入力フィーチャセットの第２のフィーチャＦ２２及び前記第２のウェイトデータの第１のウェイト信号Ｗ２１を乗算して、Ｆ２２Ｗ２１が生成できる。前記第４のプロセッシングエレメントＰＥ４は、前記第３のクロック信号ＣＬＫ３に同期して前記第１のウェイトデータの第３のウェイト信号Ｗ１３を受信し、前記第２のプロセッシングエレメントＰＥ２から第１の入力フィーチャセットの第１のフィーチャＦ１１が受信できる。前記第４のプロセッシングエレメントＰＥ４は、前記第１の入力フィーチャセットの第１のフィーチャＦ１１及び前記第１のウェイトデー���の第３のウェイト信号Ｗ１３を乗算して、Ｆ１１Ｗ１３が生成できる。前記第５のプロセッシングエレメントＰＥ５は、前記第２のプロセッシングエレメントＰＥ２から前記第１のウェイトデータの第２のウェイト信号Ｗ１２を受信し、前記第３のプロセッシングエレメントＰＥ３から第２の入力フィーチャセットの第１のフィーチャＦ２１が受信できる。前記第５のプロセッシングエレメントＰＥ５は、前記第２の入力フィーチャセットの第１のフィーチャＦ２１及び前記第１のウェイトデータの第２のウェイト信号Ｗ１２を乗算して、Ｆ２１Ｗ１２が生成できる。前記第６のプロセッシングエレメントＰＥ６は、前記第３のクロック信号ＣＬＫ３に同期して前記第３の入力フィーチャセットの第１のフィーチャＦ３１を受信し、前記第３のプロセッシングエレメントＰＥ３から前記第１のウェイトデータの第１のウェイト信号Ｗ１１が受信できる。前記第６のプロセッシングエレメントＰＥ６は、第３の入力フィーチャセットの第１のフィーチャＦ３１及び前記第１のウェイトデータの第１のウェイト信号Ｗ１１を乗算して、Ｆ３１Ｗ１１が生成できる。
【００２６】
第四の単位サイクルの途中に前記第４のクロック信号ＣＬＫ４がトグルすれば、前記第１のプロセッシングエレメントＰＥ１は、以前に演算されたＦ１１Ｗ１１＋Ｆ１２Ｗ２１及びＦ１３Ｗ３１を加算して、演算結果(Ｆ１１Ｗ１１＋Ｆ１２Ｗ２１＋Ｆ１３Ｗ３１)が保存できる。前記第１のプロセッシングエレメントＰＥ１は、第１の入力フィーチャセットの第３のフィーチャＦ１３を前記第２のプロセッシングエレメントＰＥ２に出力し、前記第３のウェイトデータの第１のウェイト信号Ｗ３１を前記第３のプロセッシングエレメントＰＥ３に出力できる。前記第２のプロセッシングエレメントＰＥ２は、以前に計算されたＦ１１Ｗ１２及びＦ１２Ｗ２２を加算して、演算結果(Ｆ１１Ｗ１２＋Ｆ１２Ｗ２２)が保存できる。前記第２のプロセッシングエレメントＰＥ２は、前記第３のウェイトデータの第２のウェイト信号Ｗ３２を受信し、前記第１のプロセッシングエレメントＰＥ１から前記第１の入力フィーチャセットの第３のフィーチャＦ１３が受信できる。前記第２のプロセッシングエレメントＰＥ２は、前記第１の入力フィーチャセットの第２のフィーチャＦ１２を前記第４のプロセッシングエレメントＰＥ４に出力し、前記第２のウェイトデータの第２のウェイト信号Ｗ２２を前記第５のプロセッシングエレメントＰＥ５に出力できる。前記第２のプロセッシングエレメントＰＥ２は、前記第１の入力フィーチャセットの第３のフィーチャＦ１３及び前記第３のウェイトデータの第２のウェイト信号Ｗ３２を乗算して、Ｆ１３Ｗ３２が生成できる。前記第３のプロセッシングエレメントＰＥ３は、以前に計算されたＦ２１Ｗ１１及びＦ２２Ｗ２１を加算して、演算結果(Ｆ２１Ｗ１１＋Ｆ２２Ｗ２１)が保存できる。前記第３のプロセッシングエレメントＰＥ３は、前記第２の入力フィーチャセットの第３のフィーチャＦ２３を受信し、前記第１のプロセッシングエレメントＰＥ１から前記第３のウェイトデータの第１のウェイト信号Ｗ３１が受信できる。前記第３のプロセッシングエレメントＰＥ３は、前記第２の入力フィーチャセットの第２のフィーチャＦ２２を前記第５のプロセッシングエレメントＰＥ５に出力し、前記第２のウェイトデータの第１のウェイト信号Ｗ２１を前記第６のプロセッシングエレメントＰＥ６に出力できる。前記第３のプロセッシングエレメントＰＥ３は、前記第２の入力フィーチャセットの第３のフィーチャＦ２３及び前記第３のウェイトデータの第１のウェイト信号Ｗ３１を乗算して、Ｆ２３Ｗ３１が生成できる。前記第４のプロセッシングエレメントＰＥ４は、前記第４のクロック信号ＣＬＫ４に同期して前記第２のウェイトデータの第３のウェイト信号Ｗ２３を受信し、前記第２のプロセッシングエレメントＰＥ２から前記第１の入力フィーチャセットの第２のフィーチャＦ１２が受信できる。前記第４のプロセッシングエレメントＰＥ４は、以前に演算されたＦ１１Ｗ１３及び０を加算して演算結果が保存できる。前記第４のプロセッシングエレメントＰＥ４は、前記第１のウェイトデータの第３のウェイト信号Ｗ１３を第７のプロセッシングエレメントＰＥ７に出力できる。前記第４のプロセッシングエレメントＰＥ４は、前記第１の入力フィーチャセットの第２のフィーチャＦ１２及び前記第２のウェイトデータの第３のウェイト信号Ｗ２３を乗算して、Ｆ１２Ｗ２３が生成できる。前記第５のプロセッシングエレメントＰＥ５は、以前に演算されたＦ２１Ｗ１２及び０を加算して演算結果が保存できる。前記第５のプロセッシングエレメントＰＥ５は、前記第２のプロセッシングエレメントＰＥ２から第２のウェイトデータの第２のウェイト信号Ｗ２２を受信し、前記第３のプロセッシングエレメントＰＥ３から第２の入力フィーチャセットの第２のフィーチャＦ２２が受信できる。前記第５のプロセッシングエレメントＰＥ５は、前記第２の入力フィーチャセットの第１のフィーチャＦ２１を前記第７のプロセッシングエレメントＰＥ７に出力し、前記第１のウェイトデータの第２のウェイト信号Ｗ１２を第８のプロセッシングエレメントＰＥ８に出力できる。前記第５のプロセッシングエレメントＰＥ５は、前記第２の入力フィーチャセットの第２のフィーチャＦ２２及び前記第２のウェイトデータの第２のウェイト信号Ｗ２２を乗算して、Ｆ２２Ｗ２２が生成できる。前記第６のプロセッシングエレメントＰＥ６は、以前に演算されたＦ３１Ｗ１１及び０を加算して演算結果が保存できる。前記第６のプロセッシングエレメントＰＥ６は、前記第３の入力フィーチャセットの第２のフィーチャＦ３２を受信し、前記第３のプロセッシングエレメントＰＥ３から第２のウェイトデータの第１のウェイト信号Ｗ２１が受信できる。前記第６のプロセッシングエレメントＰＥ６は、前記第３の入力フィーチャセットの第１のフィーチャＦ３１を前記第８のプロセッシングエレメントＰＥ８に出力できる。前記第６のプロセッシングエレメントＰＥ６は、前記第３の入力フィーチャセットの第２のフィーチャＦ３２及び前記第２のウェイトデータの第１のウェイト信号Ｗ２１を乗算して、Ｆ３２Ｗ２１が生成できる。前記第７のプロセッシングエレメントＰＥ７は、前記第４のプロセッシングエレメントＰＥ４から前記第１のウェイトデータの第３のウェイト信号Ｗ１３を受信し、前記第５のプロセッシングエレメントＰＥ５から第２の入力フィーチャセットの第１のフィーチャＦ２１が受信できる。前記第７のプロセッシングエレメントＰＥ７は、前記第２の入力フィーチャセットの第１のフィーチャＦ２１及び前記第１のウェイターデータの第３のウェイト信号Ｗ１３を乗算して、Ｆ２１Ｗ１３が生成できる。前記第８のプロセッシングエレメントＰＥ８は、前記第５のプロセッシングエレメントＰＥ５から第１のウェイトデータの第２のウェイト信号Ｗ１２を受信し、第６のプロセッシングエレメントＰＥ６から第３の入力フィーチャセットの第１のフィーチャＦ３１が受信できる。前記第８のプロセッシングエレメントＰＥ８は、前記第３の入力フィーチャセットの第１のフィーチャＦ３１及び前記第１のウェイトデータの第２のウェイト信号Ｗ１２を乗算して、Ｆ３１Ｗ１２が生成できる。
【００２７】
第五の単位サイクルの途中に前記第５のクロック信号ＣＬＫ５がトグルすれば、前記第２のプロセッシングエレメントＰＥ２は、以前に計算されたＦ１１Ｗ１２＋Ｆ１２Ｗ２２及びＦ１３Ｗ３２を加算して、演算結果(Ｆ１１Ｗ１２＋Ｆ１２Ｗ２２＋Ｆ１３Ｗ３２)が保存できる。前記第２のプロセッシングエレメントＰＥ２は、前記第１の入力フィーチャセットの第３のフィーチャＦ１３を前記第４のプロセッシングエレメントＰＥ４に出力し、前記第３のウェイトデータの第２のウェイト信号Ｗ３２を前記第５のプロセッシングエレメントＰＥ５に出力できる。前記第３のプロセッシングエレメントＰＥ３は、以前に計算されたＦ２１Ｗ１１＋Ｆ２２Ｗ２１及びＦ２３Ｗ３１を加算して、演算結果(Ｆ２１Ｗ１１＋Ｆ２２Ｗ２１＋Ｆ２３Ｗ３１)が保存できる。前記第３のプロセッシングエレメントＰＥ３は、前記第２の入力フィーチャセットの第３のフィーチャＦ２３を前記第５のプロセッシングエレメントＰＥ５に出力し、前記第３のウェイトデータの第１のウェイト信号Ｗ３１を第６のプロセッシングエレメントＰＥ６に出力できる。前記第４のプロセッシングエレメントＰＥ４は、以前に計算されたＦ１１Ｗ１３及びＦ１２Ｗ２３を加算して、演算結果(Ｆ１１Ｗ１３＋Ｆ１２Ｗ２３)が保存できる。前記第４のプロセッシングエレメントＰＥ４は、前記第３のウェイトデータの第３のウェイト信号Ｗ３３を受信し、前記第２のプロセッシングエレメントＰＥ２から前記第１の入力フィーチャセットの第３のフィーチャＦ１３が受信できる。前記第４のプロセッシングエレメントＰＥ４は、前記第２のウェイトデータの第３のウェイト信号Ｗ２３を前記第７のプロセッシングエレメントＰＥ７に出力できる。前記第４のプロセッシングエレメントＰＥ４は、前記第１の入力フィーチャセットの第３のフィーチャＦ１３及び前記第３のウェイトデータの第３のウェイト信号Ｗ３３を乗算して、Ｆ１３Ｗ３３が生成できる。前記第５のプロセッシングエレメントＰＥ５は、以前に計算されたＦ２１Ｗ１２及びＦ２２Ｗ２２を加算して、演算結果(Ｆ２１Ｗ１２＋Ｆ２２Ｗ２２)が保存できる。前記第５のプロセッシングエレメントＰＥ５は、前記第２のプロセッシングエレメントＰＥ２から前記第３のウェイトデータの第２のウェイト信号Ｗ３２を受信し、前記第３のプロセッシングエレメントＰＥ３から第２の入力フィーチャセットの第３のフィーチャＦ２３が受信できる。前記第５のプロセッシングエレメントＰＥ５は、前記第７のプロセッシングエレメントＰＥ７に第２の入力フィーチャセットの第２のフィーチャＦ２２を出力し、前記第８のプロセッシングエレメントＰＥ８に第２のウェイトデータの第２のウェイト信号Ｗ２２が出力できる。前記第５のプロセッシングエレメントＰＥ５は、前記第２の入力フィーチャセットの第３のフィーチャＦ２３及び前記第３のウェイトデータの第２のウェイト信号Ｗ３２を乗算して、Ｆ２３Ｗ３２が生成できる。前記第６のプロセッシングエレメントＰＥ６は、以前に計算されたＦ３１Ｗ１１及びＦ３２Ｗ２１を加算して、演算結果(Ｆ３１Ｗ１１＋Ｆ３２Ｗ２１)が保存できる。前記第６のプロセッシングエレメントＰＥ６は、前記第３の入力フィーチャセットの第３のフィーチャＦ３��を受信し、前記第３のプロセッシングエレメントＰＥ３から第３のウェイトデータの第１のウェイト信号Ｗ３１が受信できる。前記第６のプロセッシングエレメントＰＥ６は、前記第３の入力フィーチャセットの第２のフィーチャＦ３２を前記第８のプロセッシングエレメントＰＥ８に出力できる。前記第６のプロセッシングエレメントＰＥ６は、前記第３の入力フィーチャセットの第３のフィーチャＦ３３及び前記第３のウェイトデータの第１のウェイト信号Ｗ３１を乗算して、Ｆ３３Ｗ３１が生成できる。前記第７のプロセッシングエレメントＰＥ７は、以前に演算されたＦ２１Ｗ１３及び０を加算して演算結果が保存できる。前記第７のプロセッシングエレメントＰＥ７は、前記第４のプロセッシングエレメントＰＥ４から第２のウェイトデータの第３のウェイト信号Ｗ２３を受信し、前記第５のプロセッシングエレメントＰＥ５から第２の入力フィーチャセットの第２のフィーチャＦ２２が受信できる。前記第７のプロセッシングエレメントＰＥ７は、前記第１のウェイトデータの第３のウェイト信号Ｗ１３を前記第９のプロセッシングエレメントＰＥ９に出力できる。前記第７のプロセッシングエレメントＰＥ７は、前記第２の入力フィーチャセットの第２のフィーチャＦ２２及び前記第２のウェイトデータの第３のウェイト信号Ｗ２３を乗算して、Ｆ２２Ｗ２３が生成できる。前記第８のプロセッシングエレメントＰＥ８は、以前に演算されたＦ３１Ｗ１２及び０を加算して演算結果が保存できる。前記第８のプロセッシングエレメントＰＥ８は、前記第５のプロセッシングエレメントＰＥ５から第２のウェイトデータの第２のウェイト信号Ｗ２２を受信し、前記第６のプロセッシングエレメントＰＥ６から第３の入力フィーチャセットの第２のフィーチャＦ３２が受信できる。前記第８のプロセッシングエレメントＰＥ８は、前記第３の入力フィーチャセットの第１のフィーチャＦ３１を前記第９のプロセッシングエレメントＰＥ９に出力できる。前記第８のプロセッシングエレメントＰＥ８は、前記第３の入力フィーチャセットの第２のフィーチャＦ３２及び前記第２のウェイトデータの第２のウェイト信号Ｗ２２を乗算して、Ｆ３２Ｗ２２が生成できる。前記第９のプロセッシングエレメントＰＥ９は、前記第７のプロセッシングエレメントＰＥ７から第１のウェイトデータの第３のウェイト信号Ｗ１３を受信し、前記第８のプロセッシングエレメントＰＥ８から第３の入力フィーチャセットの第１のフィーチャＦ３１が受信できる。前記第９のプロセッシングエレメントＰＥ９は、前記第３の入力フィーチャセットの第１のフィーチャＦ３１及び前記第１のウェイトデータの第３のウェイト信号Ｗ１３を乗算して、Ｆ３１Ｗ１３が生成できる。
【００２８】
第六の単位サイクルの途中に前記第６のクロック信号がトグルすれば、前記第４のプロセッシングエレメントＰＥ４は、以前に計算されたＦ１１Ｗ１３＋Ｆ１２Ｗ２３及びＦ１３Ｗ３３を加算して、演算結果(Ｆ１１Ｗ１３＋Ｆ１２Ｗ２３＋Ｆ１３Ｗ３３)が保存できる。前記第４のプロセッシングエレメントＰＥ４は、前記第３のウェイトデータの第３のウェイト信号Ｗ３３を前記第７のプロセッシングエレメントＰＥ７に出力できる。前記第５のプロセッシングエレメントＰＥ５は、以前に演算されたＦ２１Ｗ１２＋Ｆ２２Ｗ２２及びＦ２３Ｗ３２を加算して、演算結果(Ｆ２１Ｗ１２＋Ｆ２２Ｗ２２＋Ｆ２３Ｗ３２)が保存できる。前記第５のプロセッシングエレメントＰＥ５は、前記第２の入力フィーチャセットの第３のフィーチャＦ２３を第７のプロセッシングエレメントＰＥ７に出力し、第３のウェイトデータの第２のウェイト信号Ｗ３２を前記第８のプロセッシングエレメントＰＥ８に出力できる。前記第６のプロセッシングエレメントＰＥ６は、以前に演算されたＦ３１Ｗ１１＋Ｆ３２Ｗ２１及びＦ３３Ｗ３１を加算して、演算結果(Ｆ３１Ｗ１１＋Ｆ３２Ｗ２１＋Ｆ３３Ｗ３１)が保存できる。前記第６のプロセッシングエレメントＰＥ６は、前記第３の入力フィーチャセットの第３のフィーチャＦ３３を前記第８のプロセッシングエレメントＰＥ８に出力できる。前記第７のプロセッシングエレメントＰＥ７は、以前に計算されたＦ２１Ｗ１３及びＦ２２Ｗ２３を加算して、演算結果(Ｆ２１Ｗ１３＋Ｆ２２Ｗ２３)が保存できる。前記第７のプロセッシングエレメントＰＥ７は、前記第４のプロセッシングエレメントＰＥ４から第３のウェイトデータの第３のウェイト信号Ｗ３３を受信し、前記第５のプロセッシングエレメントＰＥ５から第２の入力フィーチャセットの第３のフィーチャＦ２３が受信できる。前記第７のプロセッシングエレメントＰＥ７は、前記第２のウェイトデータの第３のウェイト信号Ｗ２３を前記第９のプロセッシングエレメントＰＥ９に出力できる。前記第７のプロセッシングエレメントＰＥ７は、前記第２の入力フィーチャセットの第３のフィーチャＦ２３及び前記第３のウェイトデータの第３のウェイト信号Ｗ３３を乗算して、Ｆ２３Ｗ３３が生成できる。前記第８のプロセッシングエレメントＰＥ８は、以前に演算されたＦ３１Ｗ１２及びＦ３２Ｗ２２を加算して、演算結果(Ｆ３１Ｗ１２＋Ｆ３２Ｗ２２)が保存できる。前記第８のプロセッシングエレメントＰＥ８は、前記第５のプロセッシングエレメントＰＥ５から前記第３のウェイトデータの第２のウェイト信号Ｗ３２を受信し、前記第６のプロセッシングエレメントＰＥ６から第３の入力フィーチャセットの第３のフィーチャＦ３３が受信できる。前記第８のプロセッシングエレメントＰＥ８は、前記第３の入力フィーチャセットの第２のフィーチャＦ３２を前記第９のプロセッシングエレメントＰＥ９に出力できる。前記第８のプロセッシングエレメントＰＥ８は、前記第３の入力フィーチャセットの第３のフィーチャＦ３３及び前記第３のウェイトデータの第２のウェイト信号Ｗ３２を乗算して、Ｆ３３Ｗ３２が生成できる。前記第９のプロセッシングエレメントＰＥ９は、以前に演算されたＦ３１Ｗ１３及び０を加算して演��結果が保存できる。前記第９のプロセッシングエレメントＰＥ９は、前記第７のプロセッシングエレメントＰＥ７から前記第２のウェイトデータの第３のウェイト信号Ｗ２３を受信し、前記第８のプロセッシングエレメントＰＥ８から第３の入力フィーチャセットの第２のフィーチャＦ３２が受信できる。前記第９のプロセッシングエレメントＰＥ９は、前記第３の入力フィーチャセットの第２のフィーチャＦ３２及び前記第２のウェイトデータの第３のウェイト信号Ｗ２３を乗算して、Ｆ３２Ｗ２３が生成できる。
【００２９】
第七の単位サイクルの途中に前記第７のクロック信号がトグルすれば、前記第７のプロセッシングエレメントＰＥ７は、以前に演算されたＦ２１Ｗ１３＋Ｆ２２Ｗ２３及びＦ２３Ｗ３３を加算して、演算結果(Ｆ２１Ｗ１３＋Ｆ２２Ｗ２３＋Ｆ２３Ｗ３３)が保存できる。前記第３のウェイトデータの第３のウェイト信号Ｗ３３を前記第９のプロセッシングエレメントＰＥ９に出力し、前記第８のプロセッシングエレメントＰＥ８は、以前に演算されたＦ３１Ｗ１２＋Ｆ３２Ｗ２２及びＦ３３Ｗ３２を加算して、演算結果(Ｆ３１Ｗ１２＋Ｆ３２Ｗ２２＋Ｆ３３Ｗ３２)が保存できる。前記第８のプロセッシングエレメントＰＥ８は、第３の入力フィーチャセットの第３のフィーチャＦ３３を前記第９のプロセッシングエレメントＰＥ９に出力できる。前記第９のプロセッシングエレメントＰＥ９は、以前に演算されたＦ３１Ｗ１３及びＦ３２Ｗ２３を加算して、演算結果(Ｆ３１Ｗ１３＋Ｆ３２Ｗ２３)が保存できる。前記第９のプロセッシングエレメントＰＥ９は、前記第３の入力フィーチャセットの第３のフィーチャＦ３３及び前記第３のウェイトデータの第３のウェイト信号Ｗ３３を乗算して、Ｆ３３Ｗ３３が生成できる。
【００３０】
第八の単位サイクルの途中に前記第８のクロック信号がトグルすれば、前記第９のプロセッシングエレメントＰＥ９は、以前に演算されたＦ３１Ｗ１３＋Ｆ３２Ｗ２３及びＦ３３Ｗ３３を加算して、演算結果(Ｆ３１Ｗ１３＋Ｆ３２Ｗ２３＋Ｆ３３Ｗ３３)が保存できる。第九の単位サイクルの途中に前記第９のクロック信号がトグルすれば、前記第１乃至第９のプロセッシングエレメントＰＥ１〜ＰＥ９に各々保存された演算結果が出力され得、図２ｂに示すように、第１乃至第３の入力フィーチャセットＦＤ及び第１乃至第３のウェイトデータＷＤが畳込み演算された結果(ＦＤ × ＷＤ)が前記第１乃至第９のプロセッシングエレメントＰＥ１〜ＰＥ９から出力され得る。
【００３１】
図３は、本発明の実施例に係るシステム１におけるデータの流れを示す図である。図１及び図３に示すように、前記ホスト装置１０１は、前記システムバス１０３を介して第１の入力データＩＮＤ１が転送できる。前記第１の入力データＩＮＤ１は複数の入力フィーチャセットを含むことができる。前記システムバス１０３のデータ帯域幅は一つのフィーチャのサイズより大きいことができ、前記システムバス１０３を介して一度に転送されるデータビットは複数のフィーチャを含むことができる。例えば、前記システムバス１０３のデータ帯域幅が３２ビットであり、一つのフィーチャのサイズが８ビットである場合、前記システムバス１０３を介して４つのフィーチャが一度に転送され得る。前記第１の入力データＩＮＤ１が２５６ビットである場合、前記第１の入力データＩＮＤ１は各々８つのフィーチャを含む４つの入力フィーチャセットを含むことができる。図３に示すように、前記システムバス１０３のデータ帯域幅は３２ビットであるのを例示したが、１６ビット以下になることができ、６４ビット以上になることもできる。また、一つのフィーチャのサイズは８ビットであるのを例示したが、４ビット以下になることができ、１６ビット以上になることもできる。
【００３２】
前記システムバス１０３は複数のバスを含むことができる。以下では、説明の明確性のために、前記システムバス１０３を介して４つのフィーチャが一度に転送される場合を仮定する。前記システムバス１０３は第１乃至第４のバスを含むことができる。前記第１乃至第４のバスは各々複数の信号転送ラインを含むことができる。一つの信号転送ラインは前記第１の入力データＩＮＤ１の1ビットを転送するためのものであり得る。一つのバスは一つのフィーチャに対応する複数のビットが転送できる信号転送ラインを意味する。一つのバスは８つの信号転送ラインを含み、一つのフィーチャは８ビットを含むものと例示する。
【００３３】
前記第１乃至第４のバスは、前記第１の入力データＩＮＤ１のビットを直列に転送できる。前記第１の入力データＩＮＤ１は、前記第１乃至第４のバスを介してクロック信号に同期して８回にかけて転送でき、合２５６ビットを含むことができる。第１のバスは、クロック信号に同期して順次第１の入力データの第１乃至第８のビットＩ１１、第３３乃至第４０のビットＩ１５、第６５乃至第７２のビットＩ２１、第９７乃至第１０４のビットＩ２５、第１２９乃至第１３６のビットＩ３１、第１６１乃至第１６８のビットＩ３５、第１９３乃至第２００のビットＩ４１、第２２５乃至第２３２のビットＩ４５が転送できる。前記第１の入力データＩＮＤ１の第１乃至第８のビットＩ１１は、前記第１の入力フィーチャセットＦＤ１の第１のフィーチャＦ１１に対応できる。前記第１の入力データＩＮＤ１の第３３乃至第４０のビットＩ１５は、前記第１の入力フィーチャセットＦＤ１の第５のフィーチャＦ１５に対応できる。前記第１の入力データＩＮＤ１の第６５乃至第７２のビットＩ２１は、第２の入力フィーチャセットＦＤ２の第１のフィーチャＦ２１に対応できる。前記第１の入力データＩＮＤ１の第９７乃至第１０４のビットＩ２５は、第２の入力フィーチャセットＦＤ２の第５のフィーチャＦ２５に対応できる。前記第１の入力データＩＮＤ１の第１２９乃至１３６のビットＩ３１は、第３の入力フィーチャセットＦＤ３の第１のフィーチャＦ３１に対応できる。前記第１の入力データＩＮＤ１の第１６１乃至第１６８のビットＩ３５は、第３の入力フィーチャセットＦＤ３の第５のフィーチャＦ３５に対応できる。前記第１の入力データＩＮＤ１の第１９３乃至第２００のビットＩ４１は、第４の入力フィーチャセットＦＤ４の第１のフィーチャＦ４１に対応できる。前記第１の入力データＩＮＤ１の第２２５乃至第２３２のビットＩ４５は、第４の入力フィーチャセットＦＤ４の第５のフィーチャＦ４５に対応できる。
【００３４】
第２のバスは、クロック信号に同期して順次第１の入力データＩＮＤ１の第９乃至第１６のビットＩ１２、第４１乃至第４８のビットＩ１６、第７３乃至第８０のビットＩ２２、第１０５乃至第１１２のビットＩ２６、第１３７乃至第１４４のビットＩ３２、第１６９乃至第１７６のビットＩ３６、第２０１乃至第２０８のビットＩ４２、第２３３乃至第２４０のビットＩ４６が転送できる。前記第１の入力データＩＮＤ１の第９乃至第１６のビットＩ１２は、前記第１の入力フィーチャセットＦＤ１の第２のフィーチャＦ１２に対応できる。前記第１の入力データＩＮＤ１の第４１乃至第４８のビットＩ１６は、前記第１の入力フィーチャセットＦＤ１の第６のフィーチャＦ１６に対応できる。前記第１の入力データＩＮＤ１の第７３乃至第８０のビットＩ２２は、第２の入力フィーチャセットＦＤ２の第２のフィーチャＦ２２に対応できる。前記第１の入力データＩＮＤ１の第１０５乃至第１１２のビットＩ２６は、第２の入力フィーチャセットＦＤ２の第６のフィーチャＦ２６に対応できる。前記第１の入力データＩＮＤ１の第１３７乃至第１４４のビットＩ３２は、第３の入力フィーチャセットＦＤ３の第２のフィーチャＦ３２に対応できる。前記第１の入力データＩＮＤ１の第１６９乃至第１７６のビットＩ３６は、第３の入力フィーチャセットＦＤ３の第６のフィーチャＦ３６に対応できる。前記第１の入力データＩＮＤ１の第２０１乃至第２０８のビットＩ４２は、第４の入力フィーチャセットＦＤ４の第２のフィーチャＦ４２に対応できる。前記第１の入力データＩＮＤ１の第２３３乃至第２４０のビットＩ４６は、第４の入力フィーチャセットＦＤ４の第６のフィーチャＦ４６に対応できる。
【００３５】
第３のバスは、クロック信号に同期して順次第１の入力データＩＮＤ１の第１７乃至第２４のビットＩ１３、第４９乃至第５６のビットＩ１７、第８１乃至第８８のビットＩ２３、第１１３乃至第１２０のビットＩ２７、第１４５乃至第１５２のビットＩ３３、第１７７乃至第１８４のビットＩ３７、第２０９乃至第２１６のビットＩ４３、第２４１乃至第２４８のビットＩ４７が転送できる。前記第１の入力データＩＮＤ１の第１７乃至第２４のビットＩ１３は、前記第１の入力フィーチャセットＦＤ１の第３のフィーチャＦ１３に対応できる。前記第１の入力データＩＮＤ１の第４９乃至第５６のビットＩ１７は、前記第１の入力フィーチャセットＦＤ１の第７のフィーチャＦ１７に対応できる。前記第１の入力データＩＮＤ１の第８１乃至第８８のビットＩ２３は、第２の入力フィーチャセットＦＤ２の第３のフィーチャＦ２３に対応できる。前記第１の入力データＩＮＤ１の第１１３乃至第１２０のビットＩ２７は、第２の入力フィーチャセットＦＤ２の第７のフィーチャＦ２７に対応できる。前記第１の入力データＩＮＤ１の第１４５乃至第１５２のビットＩ３３は、第３の入力フィーチャセットＦＤ３の第３のフィーチャＦ３３に対応できる。前記第１の入力データＩＮＤ１の第１７７乃至第１８４のビットＩ３７は、第３の入力フィーチャセットＦＤ３の第７のフィーチャＦ３７に対応できる。前記第１の入力データＩＮＤ１の第２０９乃至第２１６のビットＩ４３は、第４の入力フィーチャセットＦＤ４の第３のフィーチャＦ４３に対応できる。前記第１の入力データＩＮＤ１の第２４１乃至第２４８のビットＩ４７は、第４の入力フィーチャセットＦＤ４の第７のフィーチャＦ４７に対応できる。
【００３６】
第４のバスは、クロック信号に同期して順次第１の入力データＩＮＤ１の第２５乃至第３２のビットＩ１４、第５７乃至第６４のビットＩ１８、第８９乃至第９６のビットＩ２４、第１２１乃至第１２８のビットＩ２８、第１５３乃至第１６０のビットＩ３４、第１８５乃至第１９２のビットＩ３８、第２１７乃至第２２４のビットＩ４４、第２４９乃至第２５６のビットＩ４８が転送できる。前記第１の入力データＩＮＤ１の第２５乃至第３２のビットＩ１４は、前記第１の入力フィーチャセットＦＤ１の第４のフィーチャＦ１４に対応できる。前記第１の入力データＩＮＤ１の第５７乃至第６４のビットＩ１８は、前記第１の入力フィーチャセットＦＤ１の第８のフィーチャＦ１８に対応できる。前記第１の入力データＩＮＤ１の第８９乃至第９６のビットＩ２４は、第２の入力フィーチャセットＦＤ２の第４のフィーチャＦ２４に対応できる。前記第１の入力データＩＮＤ１の第１２１乃至第１２８のビットＩ２８は、第２の入力フィーチャセットＦＤ２の第８のフィーチャＦ２８に対応できる。前記第１の入力データＩＮＤ１の第１５３乃至１６０のビットＩ３４は、第３の入力フィーチャセットＦＤ３の第４のフィーチャＦ３４に対応できる。前記第１の入力データＩＮＤ１の第１８５乃至１９２のビットＩ３８は、第３の入力フィーチャセットＦＤ３の第８のフィーチャＦ３８に対応できる。前記第１の入力データＩＮＤ１の第２１７乃至第２２４のビットＩ４４は、第４の入力フィーチャセットＦＤ４の第４のフィーチャＦ４４に対応できる。前記第１の入力データＩＮＤ１の第２４９乃至第２５６のビットＩ４８は、第４の入力フィーチャセットＦＤ４の第８のフィーチャＦ４８に対応できる。
【００３７】
前記演算装置１０２は、前記第１の入力データＩＮＤ１を複数の入力フィーチャセットに分類し、前記演算ユニット１４０に前記複数の入力フィーチャセットＦＤを提供するために前記バッファリング回路１２０が備えられる。前記バッファリング回路１２０の前記バッファ１２１は複数のＦＩＦＯ回路を含むことができる。第１のＦＩＦＯ回路ＦＩＦＯ１は、前記第１の入力データＩＮＤ１の第１乃至第６４のビットＩ１１〜Ｉ１８が保存でき、前記第１のＦＩＦＯ回路ＦＩＦＯ１に保存された情報は第１の入力フィーチャセットＦＤ１に対応できる。第２のＦＩＦＯ回路ＦＩＦＯ２は、前記第１の入力データＩＮＤ１の第６５乃至第１２８のビットＩ２１〜Ｉ２８が保存でき、前記第２のＦＩＦＯ回路ＦＩＦＯ２に保存された情報は第２の入力フィーチャセットＦＤ２に対応できる。第３のＦＩＦＯ回路ＦＩＦＯ３は、前記第１の入力データＩＮＤ１の第１２９乃至第１９２のビットＩ３１〜Ｉ３８が保存でき、前記第３のＦＩＦＯ回路ＦＩＦＯ３に保存された情報は第３の入力フィーチャセットＦＤ３に対応できる。第４のＦＩＦＯ回路ＦＩＦＯ４は、前記第１の入力データＩＮＤ１の第１９３乃至第２５６のビットＩ４１〜Ｉ４８が保存でき、前記第４のＦＩＦＯ回路ＦＩＦＯ４に保存された情報は第４の入力フィーチャセットＦＤ４に対応できる。
【００３８】
前記バッファリング回路１２０の前記バッファメモリ１２２は、前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４を前記演算ユニット１４０に同時に提供できるように前記バッチ動作が遂行できる。入力フィーチャセットの個数が４つであるため、前記バッファメモリ１２２は少なくとも４つのメモリを含むことができる。図３に示すように、前記バッファメモリ１２２は、第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の各フィーチャＦ１１〜Ｆ１８、Ｆ２１〜Ｆ２８、Ｆ３１〜Ｆ３８、Ｆ４１〜Ｆ４８が同時に出力できるように、前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の各フィーチャＦ１１〜Ｆ１８、Ｆ２１〜Ｆ２８、Ｆ３１〜Ｆ３８、Ｆ４１〜Ｆ４８を４つのメモリに分割保存させる必要がある。このとき、一つの入力フィーチャセットを一つのメモリに保存させる場合、前記バッチ動作が十分に遂行できる。ここで、前記入力フィーチャセットのサイズはデータの種類及び特性又はアプリケーションにより多様に変化し得る。しかしながら、前記メモリは固定のサイズ及び/又は深さ(depth)を有する。よって、小さすぎるサイズのメモリを用いる場合、多様なサイズの入力フィーチャセットが保存されない可能性があり、大きすぎるサイズのメモリを用いる場合、メモリの保存空間内に無駄な保存空間が多くなることができる。よって、最小限のサイズのメモリを用いて、前記入力フィーチャセットを保存する効率的な方式が必要になり得る。
【００３９】
図４は、本発明の実施例に係るバッファメモリ４００の構成及び複数の入力フィーチャセットをバッファメモリ４００に保存する方式を示す図である。前記バッファメモリ４００は、図１に示すバッファメモリ１２２に適用され得る。図４に示すように、前記バッファメモリ４００は、第１乃至第４のメモリ４１０、４２０、４３０、４４０を含むことができる。前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の各フィーチャＦ１１〜Ｆ１８、Ｆ２１〜Ｆ２８、Ｆ３１〜Ｆ３８、Ｆ４１〜Ｆ４８は、前記第１乃至第４のメモリ４１０、４２０、４３０、４４０に分けて保存できる。前記第１乃至第４のメモリ４１０、４２０、４３０、４４０は、前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の同じ順番のフィーチャを保存しないことができる。一つの入力フィーチャセットの各フィーチャは、前記第１乃至第４のメモリ４１０、４２０、４３０、４４０に分けて保存できる。前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の同じ順番のフィーチャは、前記第１乃至第４のメモリ４１０、４２０、４３０、４４０に一つずつ分けて(又は均等に)保存できる。前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の同じ順番のフィーチャは、前記第１乃至第４のメモリ４１０、４２０、４３０、４４０に重複されないように分けて保存できる。
【００４０】
前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の各フィーチャＦ１１〜Ｆ１８、Ｆ２１〜Ｆ２８、Ｆ３１〜Ｆ３８、Ｆ４１〜Ｆ４８が前記第１乃至第４のメモリ４１０、４２０、４３０、４４０に保存される順序は互いに異なることができる。前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の各フィーチャＦ１１〜Ｆ１８、Ｆ２１〜Ｆ２８、Ｆ３１〜Ｆ３８、Ｆ４１〜Ｆ４８は、互いにシフティングされた順序通りに前記第１乃至第４のメモリ４１０、４２０、４３０、４４０に分けて保存できる。例えば、第ｋの入力フィーチャセットの第１のフィーチャは第ｋのメモリに保存できる。ｋは１及び４間の整数であり得る。前記第１の入力フィーチャセットＦＤ１の第１乃至第４のフィーチャＦ１１、Ｆ１２、Ｆ１３、Ｆ１４は、前記第１乃至第４のメモリ４１０、４２０、４３０、４４０に各々保存でき、前記第１の入力フィーチャセットＦＤ１の第５乃至第８のフィーチャＦ１５、Ｆ１６、Ｆ１７、Ｆ１８は、前記第１乃至第４のメモリ４１０、４２０、４３０、４４０に各々保存できる。前記第２の入力フィーチャセットＦＤ２の第１乃至第８のフィーチャＦ２１〜Ｆ２８が保存されるメモリの順序はシフティングされ得る。前記第２の入力フィーチャセットＦＤ２の第１乃至第３のフィーチャＦ２１、Ｆ２２、Ｆ２３は前記第２乃至第４のメモリ４２０、４３０、４４０に各々保存され、前記第２の入力フィーチャセットＦＤ２の第４のフィーチャＦ２４は前記第１のメモリ４１０に保存できる。前記第２の入力フィーチャセットＦＤ２の第５乃至第７のフィーチャＦ２５、Ｆ２６、Ｆ２７は前記第２乃至第４のメモリ４２０、４３０、４４０に各々保存され、前記第２の入力フィーチャセットＦＤ２の第８のフィーチャＦ２８は前記第１のメモリ４１０に保存できる。前記第３の入力フィーチャセットＦＤ３の第１乃至第８のフィーチャＦ３１〜Ｆ３８が保存されるメモリの順序はシフティングされ得る。前記第３の入力フィーチャセットＦＤ３の第１及び第２のフィーチャＦ３１、Ｆ３２は前記第３及び第４のメモリ４３０、４４０に各々保存され、前記第３の入力フィーチャセットＦＤ３の第３及び第４のフィーチャＦ３３、Ｆ３４は前記第１及び第２のメモリ４１０、４２０に各々保存できる。前記第３の入力フィーチャセットＦＤ３の第５及び第６のフィーチャＦ３５、Ｆ３６は前記第３及び第４のメモリ４３０、４４０に各々保存され、前記第３の入力フィーチャセットＦＤ３の第７及び第８のフィーチャＦ３７、Ｆ３８は前記第１及び第２のメモリ４１０、４２０に各々保存できる。前記第４の入力フィーチャセットＦＤ４の第１乃至第８のフィーチャＦ４１〜Ｆ４８が保存されるメモリの順序はシフティングされ得る。前記第４の入力フィーチャセットＦＤ４の第１のフィーチャＦ４１は前記第４のメモリ４４０に保存され、前記第４の入力フィーチャセットＦＤ４の第２乃至第４のフィーチャＦ４２、Ｆ４３、Ｆ４４は前記第１乃至第３のメモリ４１０、４２０、４３０に各々保存できる。前記第４の入力フィーチャセットＦＤ４の第５のフィーチャＦ４５は前記第４のメモリ４４０に保存され、前記第４の入力フィーチャセットＦＤ４の第６乃至第８のフィーチャＦ４６、Ｆ４７、Ｆ４８は前記第１乃至第３のメモリ４１０、４２０、４３０に各々保存できる。
【００４１】
前記第１乃至第４のメモリ４１０、４２０、４３０、４４０は各々複数の保存領域を含むことができる。前記複数の保存領域は各々一つのフィーチャが保存できる。前記複数の保存領域の個数は一つの入力フィーチャセットが含むフィーチャの個数以上であり得る。図４に示すように、前記第１乃至第４のメモリ４１０、４２０、４３０、４４０は各々８つの保存領域を含むのを例示したが、より多くの個数のフィーチャを含む入力フィーチャセットが保存できるように、より多くの個数の保存領域を含むことができる。前記複数の保存領域には、互いに異なるアドレスが割当及び/又はマッピング(mapping)され、割当及び/又はマッピングされたアドレスに基づいて接近できる。
【００４２】
具体的に、前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４が前記第１乃至第４のメモリ４１０、４２０、４３０、４４０に保存される方式を説明すれば次の通りである。前記第１乃至第４のメモリ４１０、４２０、４３０、４４０は、書込み動作を遂行して前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の各フィーチャＦ１１〜Ｆ１８、Ｆ２１〜Ｆ２８、Ｆ３１〜Ｆ３８、Ｆ４１〜Ｆ４８が保存できる。前記第１の入力フィーチャセットＦＤ１の第１のフィーチャＦ１１は、前記第１のメモリ４１０の第１の保存領域４１１に保存できる。前記第１の入力フィーチャセットＦＤ１の第２乃至第４のフィーチャＦ１２、Ｆ１３、Ｆ１４は、第２乃至第４のメモリ４２０、４３０、４４０の第１の保存領域４２１、４３１、４４１に各々保存できる。前記第１の入力フィーチャセットＦＤ１の第５乃至第８のフィーチャＦ１５、Ｆ１６、Ｆ１７、Ｆ１８は、第１乃至第４のメモリ４１０、４２０、４３０、４４０の第２の保存領域４１２、４２２、４３２、４４２に各々保存できる。前記第２の入力フィーチャセットＦＤ２の第１のフィーチャＦ２１は、前記第２のメモリ４２０の第３の保存領域４２３に保存できる。前記第２の入力フィーチャセットＦＤ２の第２及び第３のフィーチャＦ２２、Ｆ２３は、前記第３及び第４のメモリ４３０、４４０の第３の保存領域４３３、４４３に各々保存できる。前記第２の入力フィーチャセットＦＤ２の第４のフィーチャＦ２４は、前記第１のメモリ４１０の第３の保存領域４１３に保存できる。前記第２の入力フィーチャセットＦＤ２の第５乃至第７のフィーチャＦ２５、Ｆ２６、Ｆ２７は、前記第２乃至第４のメモリ４２０、４３０、４４０の第４の保存領域４２４、４３４、４４４に各々保存でき、前記第２の入力フィーチャセットＦＤ２の第８のフィーチャＦ２８は、前記第１のメモリ４１０の第４の保存領域４１４に保存できる。前記第３の入力フィーチャセットＦＤ３の第１のフィーチャＦ３１は、前記第３のメモリ４３０の第５の保存領域４３５に保存できる。前記第３の入力フィーチャセットＦＤ３の第２のフィーチャＦ３２は、前記第４のメモリ４４０の第５の保存領域４４５に保存でき、前記第３の入力フィーチャセットＦＤ３の第３及び第４のフィーチャＦ３３、Ｆ３４は、前記第１及び第２のメモリ４１０、４２０の第５の保存領域４１５、４２５に各々保存できる。前記第３の入力フィーチャセットＦＤ３の第５及び第６のフィーチャＦ３５、Ｆ３６は、前記第３及び第４のメモリ４３０、４４０の第６の保存領域４３６、４４６に各々保存でき、前記第３の入力フィーチャセットＦＤ３の第７及び第８のフィーチャＦ３７、Ｆ３８は、前記第１及び第２のメモリ４１０、４２０の第６の保存領域４１６、６２６に各々保存できる。前記第４の入力フィーチャセットＦＤ４の第１のフィーチャＦ４１は、前記第４のメモリ４４０の第７の保存領域４４７に保存できる。前記第４の入力フィーチャセットＦＤ４の第２乃至第４のフィーチャＦ４２、Ｆ４３、Ｆ４４は、前記第１乃至第３のメモリ４１０、４２０、４３０の第７の保存領域４１７、４２７、４３７に各々保存できる。前記第４の入力フィーチャセットＦＤ４の第５のフィーチャＦ４５は、前記第４のメモリ４４０の第８の保存領域４４８に保存でき、前記第４の入力フィーチャセットＦＤ４の第６乃至第８のフィーチャＦ４６、Ｆ４７、Ｆ４８は、前記第１乃至第３のメモリ４１０、４２０、４３０の第８の保存領域４１８、４２８、４３８に各々保存できる。
【００４３】
前記第１乃至第４のメモリ４１０、４２０、４３０、４４０は、第１のアドレスＡＤＤ１に基づき、前記第１の入力フィーチャセットＦＤ１の第１乃至第４のフィーチャＦ１１、Ｆ１２、Ｆ１３、Ｆ１４を前記第１乃至第４のメモリ４１０、４２０、４３０、４４０の第１の保存領域４１１、４２１、４３１、４４１に各々同時に保存できる。前記第１乃至第４のメモリ４１０、４２０、４３０、４４０は、第２のアドレスＡＤＤ２に基づき、前記第１の入力フィーチャセットＦＤ１の第５乃至第８のフィーチャＦ１５、Ｆ１６、Ｆ１７、Ｆ１８を前記第１乃至第４のメモリ４１０、４２０、４３０、４４０の第２の保存領域４１２、４２２、４３２、４４２に各々同時に保存できる。前記第１乃至第４のメモリ４１０、４２０、４３０、４４０は、第３のアドレスＡＤＤ３に基づき、前記第２の入力フィーチャセットＦＤ２の第１乃至第４のフィーチャＦ２１、Ｆ２２、Ｆ２３、Ｆ２４を前記第１乃至第４のメモリ４１０、４２０、４３０、４４０の第３の保存領域４１３、４２３、４３３、４４３に各々同時に保存できる。前記第１乃至第４のメモリ４１０、４２０、４３０、４４０は、第４のアドレスＡＤＤ４に基づき、前記第２の入力フィーチャセットＦＤ２の第５乃至第８のフィーチャＦ２５、Ｆ２６、Ｆ２７、Ｆ２８を前記第１乃至第４のメモリ４１０、４２０、４３０、４４０の第４の保存領域４１４、４２４、４３４、４４４に各々同時に保存できる。前記第１乃至第４のメモリ４１０、４２０、４３０、４４０は、第５のアドレスＡＤＤ５に基づき、前記第３の入力フィーチャセットＦＤ３の第１乃至第４のフィーチャＦ３１、Ｆ３２、Ｆ３３、Ｆ３４を前記第１乃至第４のメモリ４１０、４２０、４３０、４４０の第５の保存領域４１５、４２５、４３５、４４５に各々同時に保存できる。前記第１乃至第４のメモリ４１０、４２０、４３０、４４０は、第６のアドレスＡＤＤ６に基づき、前記第３の入力フィーチャセットＦＤ３の第５乃至第８のフィーチャＦ３５、Ｆ３６、Ｆ３７、Ｆ３８を前記第１乃至第４のメモリ４１０、４２０、４３０、４４０の第６の保存領域４１６、４２６、４３６、４４６に各々同時に保存できる。前記第１乃至第４のメモリ４１０、４２０、４３０、４４０は、第７のアドレスＡＤＤ７に基づき、前記第４の入力フィーチャセットＦＤ４の第１乃至第４のフィーチャＦ４１、Ｆ４２、Ｆ４３、Ｆ４４を前記第１乃至第４のメモリ４１０、４２０、４３０、４４０の第７の保存領域４１７、４２７、４３７、４４７に各々同時に保存できる。前記第１乃至第４のメモリ４１０、４２０、４３０、４４０は、第８のアドレスＡＤＤ８に基づき、前記第４の入力フィーチャセットＦＤ４の第５乃至第８のフィーチャＦ４５、Ｆ４６、Ｆ４７、Ｆ４８を前記第１乃至第４のメモリ４１０、４２０、４３０、４４０の第８の保存領域４１８、４２８、４３８、４４８に各々同時に保存できる。
【００４４】
一実施例において、前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４が８つより少ない個数のフィーチャを含む場合、前記第１乃至第４のメモリ４１０、４２０、４３０、４４０の一部の保存領域は用いられないことができる。例えば、前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４が各々３つのフィーチャを含む場合、前記第１の入力フィーチャセットＦＤ１の第１乃至第３のフィーチャＦ１１、Ｆ１２、Ｆ１３は、前記第１乃至第３のメモリ４１０、４２０、４３０の第１の保存領域４１１、４２１、４３１に各々保存できる。前記第２の入力フィーチャセットＦＤ２の第１乃至第３のフィーチャＦ２１、Ｆ２２、Ｆ２３は、前記第２乃至第４のメモリ４２０、４３０、４４０の第２の保存領域４２２、４３２、４４２に各々保存できる。前記第３の入力フィーチャセットＦＤ３の第１及び第２のフィーチャＦ３１、Ｆ３２は、前記第３及び第４のメモリ４３０、４４０の第３の保存領域４３３、４４３に各々保存され、前記第３の入力フィーチャセットＦＤ３の第３のフィーチャＦ３３は、前記第１のメモリ４１０の第３の保存領域４１３に保存できる。前記第４の入力フィーチャセットＦＤ４の第１のフィーチャＦ４１は、前記第４のメモリ４４０の第４の保存領域４４４に保存され、前記第４の入力フィーチャセットＦＤ４の第２及び第３のフィーチャＦ４２、Ｆ４３は、前記第１及び第２のメモリ４１０、４２０の第４の保存領域４１４、４２４に各々保存できる。
【００４５】
前記第１乃至第４のメモリ４１０、４２０、４３０、４４０は、単一の読取り動作中に、前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の同じ順番のフィーチャを同時に出力できる。第１の読取り動作中に、前記第１乃至第４のメモリ４１０、４２０、４３０、４４０は、第１のアドレスＡＤＤ１、第３のアドレスＡＤＤ３、第５のアドレスＡＤＤ５及び第７のアドレスＡＤＤ７に各々基づき、前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の第１のフィーチャＦ１１、Ｆ２１、Ｆ３１、Ｆ４１を同時に出力できる。前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の第１のフィーチャＦ１１、Ｆ２１、Ｆ３１、Ｆ４１は、前記演算ユニット１４０の４つの演算回路に各々提供できる。第２の読取り動作中に、前記第１乃至第４のメモリ４１０、４２０、４３０、４４０は、第７のアドレスＡＤＤ７、第１のアドレスＡＤＤ１、第３のアドレスＡＤＤ３及び第５のアドレスＡＤＤ５に各々基づき、前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の第２のフィーチャＦ１２、Ｆ２２、Ｆ３２、Ｆ４２を同時に出力できる。前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の第２のフィーチャＦ１２、Ｆ２２、Ｆ３２、Ｆ４２は、前記４つの演算回路に各々提供できる。第３の読取り動作中に、前記第１乃至第４のメモリ４１０、４２０、４３０、４４０は、第５のアドレスＡＤＤ５、第７のアドレスＡＤＤ７、第１のアドレスＡＤＤ１及び第３のアドレスＡＤＤ３に各々基づき、前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の第３のフィーチャＦ１３、Ｆ２３、Ｆ３３、Ｆ４３を同時に出力できる。前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の第３のフィーチャＦ１３、Ｆ２３、Ｆ３３、Ｆ４３は、前記演算ユニット１４０の４つの演算回路に各々提供できる。第４の読取り動作中に、前記第１乃至第４のメモリ４１０、４２０、４３０、４４０は、第３のアドレスＡＤＤ３、第５のアドレスＡＤＤ５、第７のアドレスＡＤＤ７及び第１のアドレスＡＤＤ１に各々基づき、前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の第４のフィーチャＦ１４、Ｆ２４、Ｆ３４、Ｆ４４を同時に出力できる。前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の第４のフィーチャＦ１４、Ｆ２４、Ｆ３４、Ｆ４４は、前記４つの演算回路に各々提供できる。第５の読取り動作中に、前記第１乃至第４のメモリ４１０、４２０、４３０、４４０は、第２のアドレスＡＤＤ２、第４のアドレスＡＤＤ４、第６のアドレスＡＤＤ６及び第８のアドレスＡＤＤ８に各々基づき、前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の第５のフィーチャＦ１５、Ｆ２５、Ｆ３５、Ｆ４５を同時に出力できる。前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の第５のフィーチャＦ１５、Ｆ２５、Ｆ３５、Ｆ４５は、前記４つの演算回路に各々提供できる。第６の読取り動作中に、前記第１乃至第４のメモリ４１０、４２０、４３０、４４０は、第８のアドレスＡＤＤ８、第２のアドレスＡＤＤ２、第４のアドレスＡＤＤ４及び第６のアドレスＡＤＤ６に各々基づき、前記第１乃至第４の入力フィーチャＦＤ１〜ＦＤ４の第６のフィーチャＦ１６、Ｆ２６、Ｆ３６、Ｆ４６を同時に出力できる。前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の第６のフィーチャＦ１６、Ｆ２６、Ｆ３６、Ｆ４６は前記４つの演算回路に各々提供できる。第７の読取り動作中に、前記第１乃至第４のメモリ４１０、４２０、４３０、４４０は、第６のアドレスＡＤＤ６、第８のアドレスＡＤＤ８、第２のアドレスＡＤＤ２及び第４のアドレスＡＤＤ４に各々基づき、前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の第７のフィーチャＦ１７、Ｆ２７、Ｆ３７、Ｆ４７を同時に出力できる。前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の第７のフィーチャＦ１７、Ｆ２７、Ｆ３７、Ｆ４７は、前記４つの演算回路に各々提供できる。第８の読取り動作中に、前記第１乃至第４のメモリ４１０、４２０、４３０、４４０は、第４のアドレスＡＤＤ４、第６のアドレスＡＤＤ６、第８のアドレスＡＤＤ８及び第２のアドレスＡＤＤ２に各々基づき、前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の第８のフィーチャＦ１８、Ｆ２８、Ｆ３８、Ｆ４８を同時に出力できる。前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の第８のフィーチャＦ１８、Ｆ２８、Ｆ３８、Ｆ４８は前記４つの演算回路に各々提供できる。前記演算ユニット１４０は、前記バッファメモリ１２２から前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４の第１乃至第８のフィーチャＦ１１〜Ｆ１８、Ｆ２１〜Ｆ２８、Ｆ３１〜Ｆ３８、Ｆ４１〜Ｆ４８を順次受信し、前記第１乃至第４の入力フィーチャセットＦＤ１〜ＦＤ４に対する演算動作を同時に遂行できる。本発明の実施例は、小さなサイズのメモリを用いて、複数の入力フィーチャセットに対するバッチ動作が可能になることで、システムの動作効率の増加、及び演算装置の製造費用の減少を図ることができる。
【００４６】
本発明の属する技術分野における通常の技術者は、本発明がその技術的思想や必須特徴から逸脱しない範囲内において、他の具体的な形態で実施できるので、前述した実施例は全ての面において例示的なものであり、限定的なものではないと理解しなければならない。本発明の範囲は前記詳細な説明よりも後述する特許請求の範囲により示され、特許請求の範囲の意味及び範囲、その等価概念から導出される全ての変更又は変形された形態が、本発明の範囲に含まれるものと解析しなければならない。
【図１】
2020170507.tif 000003
【図２Ａ】
2020170507.tif 000004
【図２Ｂ】
2020170507.tif 000005
【図３】
2020170507.tif 000006
【図４】
2020170507.tif 000007