IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エスケーハイニックス株式会社の特許一覧 ▶ サピオン コリア インコーポレイテッドの特許一覧

特許7565699バッファメモリ、これを用いる演算装置及びシステム、並びにその動作方法
<>
  • 特許-バッファメモリ、これを用いる演算装置及びシステム、並びにその動作方法 図1
  • 特許-バッファメモリ、これを用いる演算装置及びシステム、並びにその動作方法 図2A
  • 特許-バッファメモリ、これを用いる演算装置及びシステム、並びにその動作方法 図2B
  • 特許-バッファメモリ、これを用いる演算装置及びシステム、並びにその動作方法 図3
  • 特許-バッファメモリ、これを用いる演算装置及びシステム、並びにその動作方法 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-03
(45)【発行日】2024-10-11
(54)【発明の名称】バッファメモリ、これを用いる演算装置及びシステム、並びにその動作方法
(51)【国際特許分類】
   G06F 13/38 20060101AFI20241004BHJP
   G06F 12/02 20060101ALI20241004BHJP
【FI】
G06F13/38 310A
G06F12/02 540
【請求項の数】 22
(21)【出願番号】P 2020051015
(22)【出願日】2020-03-23
(65)【公開番号】P2020170507
(43)【公開日】2020-10-15
【審査請求日】2023-03-06
(31)【優先権主張番号】10-2019-0037832
(32)【優先日】2019-04-01
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】310024033
【氏名又は名称】エスケーハイニックス株式会社
【氏名又は名称原語表記】SK hynix Inc.
【住所又は居所原語表記】2091, Gyeongchung-daero,Bubal-eub,Icheon-si,Gyeonggi-do,Korea
(73)【特許権者】
【識別番号】522059667
【氏名又は名称】サピオン コリア インコーポレイテッド
(74)【代理人】
【識別番号】110000796
【氏名又は名称】弁理士法人三枝国際特許事務所
(72)【発明者】
【氏名】パク ヨンサン
(72)【発明者】
【氏名】ファン ソクジュン
【審査官】田名網 忠雄
(56)【参考文献】
【文献】国際公開第2008/129900(WO,A1)
【文献】特開2006-171957(JP,A)
【文献】国際公開第2015/194172(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/38
G06F 12/02
(57)【特許請求の範囲】
【請求項1】
第1乃至第nのメモリを含み、複数のフィーチャを含む第1乃至第nの入力フィーチャセットを前記第1乃至第nのメモリに各々分けて保存させ、一つの入力フィーチャセットの複数のフィーチャを前記第1乃至第nのメモリに分けて保存させるが、前記第1乃至第nの入力フィーチャセットの同じ順番のフィーチャを前記第1乃至第nのメモリに一つずつ保存させ、nは2以上の整数であるバッファメモリ;及び、
前記バッファメモリに保存された第1乃至第nの入力フィーチャセットを受信し、受信された入力フィーチャセットに対する演算動作を遂行する演算ユニットを含むことを特徴とする、演算装置。
【請求項2】
前記バッファメモリは、第kの入力フィーチャセットの複数のフィーチャのうち、第1のフィーチャを第kのメモリに保存させ、kは1及びn間の整数であることを特徴とする、請求項1に記載の演算装置。
【請求項3】
前記バッファメモリは、第kの入力フィーチャセットの複数のフィーチャのうち、第n+1のフィーチャを前記第kのメモリに保存させることを特徴とする、請求項2に記載の演算装置。
【請求項4】
前記バッファメモリは、前記第1の入力フィーチャセットの第1乃至第lのフィーチャを前記第1乃至第lのメモリに各々同時に保存し、lは2及びn間の整数であることを特徴とする、請求項1に記載の演算装置。
【請求項5】
前記バッファメモリは、単一の読取り動作中に、前記第1乃至第nの入力フィーチャセットの前記同じ順番のフィーチャを同時に出力することを特徴とする、請求項1に記載の演算装置。
【請求項6】
第1乃至第4のメモリを含み、少なくとも第1乃至第4のフィーチャを有する第1乃至第4の入力フィーチャセットを前記第1乃至第4のメモリに保存させ、一つの入力フィーチャセットの第1乃至第4のフィーチャを前記第1乃至第4のメモリに分けて保存させるが、前記第1乃至第4の入力フィーチャセットの同じ順番のフィーチャを前記第1乃至第4のメモリに重複されないように分けて保存させるバッファメモリ;及び、
前記バッファメモリに保存された前記第1乃至第4の入力フィーチャセットを受信し、受信された入力フィーチャセットに対する演算動作を遂行する演算ユニットを含むことを特徴とする、演算装置。
【請求項7】
前記第1の入力フィーチャセットの第1のフィーチャは前記第1のメモリの第1の保存領域に保存され、前記第1の入力フィーチャセットの第2のフィーチャは前記第2のメモリの第1の保存領域に保存され、前記第1の入力フィーチャセットの第3のフィーチャは前記第3のメモリの第1の保存領域に保存され、前記第1の入力フィーチャセットの第4のフィーチャは前記第4のメモリの第1の保存領域に保存されることを特徴とする、請求項6に記載の演算装置。
【請求項8】
前記第2の入力フィーチャセットの第1のフィーチャは前記第2のメモリの第2の保存領域に保存され、前記第2の入力フィーチャセットの第2のフィーチャは前記第3のメモリの第2の保存領域に保存され、前記第2の入力フィーチャセットの第3のフィーチャは前記第4のメモリの第2の保存領域に保存され、前記第2の入力フィーチャセットの第4のフィーチャは前記第1のメモリの第2の保存領域に保存されることを特徴とする、請求項7に記載の演算装置。
【請求項9】
前記第3の入力フィーチャセットの第1のフィーチャは前記第3のメモリの第3の保存領域に保存され、前記第3の入力フィーチャセットの第2のフィーチャは前記第4のメモリの第3の保存領域に保存され、前記第3の入力フィーチャセットの第3のフィーチャは前記第1のメモリの第3の保存領域に保存され、前記第3の入力フィーチャセットの第4のフィーチャは前記第2のメモリの第3の保存領域に保存されることを特徴とする、請求項8に記載の演算装置。
【請求項10】
前記第4の入力フィーチャセットの第1のフィーチャは前記第4のメモリの第4の保存領域に保存され、前記第4の入力フィーチャセットの第2のフィーチャは前記第1のメモリの第4の保存領域に保存され、前記第4の入力フィーチャセットの第3のフィーチャは前記第2のメモリの第4の保存領域に保存され、前記第4の入力フィーチャセットの第4のフィーチャは前記第3のメモリの第4の保存領域に保存されることを特徴とする、請求項9に記載の演算装置。
【請求項11】
前記バッファメモリは、第1の読取り動作中に、前記第1乃至第4の入力フィーチャセットの第1のフィーチャを同時に出力することを特徴とする、請求項6に記載の演算装置。
【請求項12】
前記バッファメモリは、第2の読取り動作中に、前記第1乃至第4の入力フィーチャセットの第2のフィーチャを同時に出力することを特徴とする、請求項11に記載の演算装置。
【請求項13】
前記バッファメモリは、第3の読取り動作中に、前記第1乃至第4の入力フィーチャセットの第3のフィーチャを同時に出力することを特徴とする、請求項12に記載の演算装置。
【請求項14】
前記バッファメモリは、第4の読取り動作中に、前記第1乃至第4の入力フィーチャセットの第4のフィーチャを同時に出力することを特徴とする、請求項13に記載の演算装置。
【請求項15】
システムバスを介して第1の入力データを転送するホスト装置と、
前記第1の入力データを受信し、前記第1の入力データに対する演算動作を遂行する演算装置とを含み、
前記演算装置は、前記第1の入力データを各々少なくとも第1乃至第nのフィーチャを有する第1乃至第nの入力フィーチャセットに分類して保存し、nは2以上の整数であるバッファ;
第1乃至第nのメモリを含み、前記第1乃至第nの入力フィーチャセットの第1乃至第nのフィーチャを前記第1乃至第nのメモリに各々保存させ、前記第1乃至第nの入力フィーチャセットの同じ順番のフィーチャを前記第1乃至第nのメモリに重複されないように分けて保存させ、一つの入力フィーチャセットの第1乃至第nのフィーチャは前記第1乃至第nのメモリに分割保存されるバッファメモリ;及び、
前記バッファメモリに保存された前記第1乃至第nの入力フィーチャセットを受信し、前記第1乃至第nの入力フィーチャセットに対する演算動作を遂行する演算ユニットを含むことを特徴とする、システム。
【請求項16】
前記バッファは、第1乃至第nの入力フィーチャセットを各々保存するn個のFIFO(First-In First-Out)回路を含むことを特徴とする、請求項15に記載のシステム。
【請求項17】
前記第1乃至第nの入力フィーチャセットは、各々第n+1のフィーチャをさらに含み、
前記バッファメモリは、前記第1乃至第nの入力フィーチャセットの前記第n+1のフィーチャを前記第1乃至第nの入力フィーチャセットの前記第1のフィーチャが保存されたメモリに各々保存させることを特徴とする、請求項15に記載のシステム。
【請求項18】
前記バッファメモリは、単一の読取り動作中に、前記第1乃至第nの入力フィーチャセットの同じ順番のフィーチャを同時に出力することを特徴とする、請求項15に記載のシステム。
【請求項19】
前記ホスト装置は前記システムバスを介して第2の入力データをさらに転送し、
前記演算装置は、前記第2の入力データを保存し、前記演算ユニットに前記第2の入力データをウェイトデータとして出力するメモリをさらに含むことを特徴とする、請求項15に記載のシステム。
【請求項20】
ホスト装置から転送された第1の入力データを各々第1乃至第nのフィーチャを含む第1乃至第nの入力フィーチャに分類して、第1乃至第nの入力フィーチャセットを仮に保存し、nは2以上の整数であるステップ;
前記第1乃至第nの入力フィーチャセットの前記第1乃至第nのフィーチャを第1乃至第nのメモリに保存させ、一つの入力フィーチャセットの前記第1乃至第nのフィーチャは前記第1乃至第nのメモリに分けて保存され、前記第1乃至第nの入力フィーチャセットの同じ順番のフィーチャは前記第1乃至第nのメモリに一つずつ分けて保存されるステップ;
前記第1乃至第nの入力フィーチャセットの同じ順番のフィーチャを同時に出力するステップ;及び、
前記出力されたフィーチャに対して演算動作を遂行するステップを含むことを特徴とする、システムの動作方法。
【請求項21】
前記第1乃至第nのメモリの各々は、デュアルポートSRAM(Static Random Access Memory)を含み、
前記第1乃至第nの入力フィーチャセットを仮に保存するために、n個のFIFOが用いられることを特徴とする、請求項2に記載のシステムの動作方法。
【請求項22】
少なくとも第1及び第2のメモリを含み、少なくとも2つのフィーチャを含む第1及び第2の入力フィーチャセットを前記第1及び第2のメモリに各々分けて保存させ、前記第1の入力フィーチャセットの第1のフィーチャを前記第1のメモリに保存させ、前記第1の入力フィーチャセットの第2のフィーチャを前記第2のメモリに保存させ、前記第2の入力フィーチャセットの第1のフィーチャを前記第2のメモリに保存させ、前記第2の入力フィーチャセットの第2のフィーチャを前記第1のメモリに保存させるバッファメモリ;及び、
第1の読取り動作中に、前記第1及び第2のメモリから前記第1及び第2の入力フィーチャセットの前記第1のフィーチャを受信し、第2の読取り動作中に、前記第1及び第2のメモリから前記第1及び第2の入力フィーチャセットの前記第2のフィーチャを受信し、前記第1及び第2の入力フィーチャセットに対する演算動作を遂行する演算ユニットを含むことを特徴とする、演算装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、集積回路技術に関し、より詳細にはバッファメモリ、これを用いる演算装置及びシステムに関する。
【背景技術】
【0002】
4次産業革命の進行に伴い、モノのインターネット(Internet of Things)、モバイル(Mobile)、クラウド(Cloud)ストレージ、ビックデータ(Big Data)分析及び人工知能(Artificial Intelligence)に係る技術が持続的に発展している。人工知能を具現するために、マシンラーニング(machine Learning)やディープラーニング(Deep Learning)のような技術が開発されてきた。マシンラーニングやディープラーニングは受信された入力を演算又は分類して出力を生成する点において類似しているが、マシンラーニングは人間が入力したアルゴリズムを介してデータを分析及び推論するのに比べて、ディープラーニングは人工神経網(Deep Neural Network)を介してデータを分析及び推論できる。
【0003】
人工神経網(Deep Neural Network、DNN)回路は、受信された入力に対して演算を遂行して出力を生成する回路であって、受信された入力に対して乗算(Multiply)及び加算(Accumulation)(MAC演算)を遂行して出力を生成するマトリックス演算回路を含むことができる。前記マトリックス演算回路は、畳み込み(convolution)演算が可能な回路であって、シストリックアレイ(systolic array)を含むことができる。前記シストリックアレイは、活性化入力のような入力フィーチャセット(set of input feature)及びウェイト(weight)データに対する乗算及び加算を遂行して出力が生成できる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の実施例は、複数の入力フィーチャセットの各々のフィーチャを複数のメモリに分割して保存させ、前記複数の入力フィーチャセットの同じ順番のフィーチャを互いに異なるメモリに保存させることができるバッファメモリ、これを用いる演算装置及びシステム、並びにその動作方法が提供できる。
【課題を解決するための手段】
【0005】
本発明の実施例に係る演算装置は、第1乃至第nのメモリを含み、複数のフィーチャを含む第1乃至第nの入力フィーチャセットを前記第1乃至第nのメモリに各々分けて保存させ、一つの入力フィーチャセットの複数のフィーチャを前記第1乃至第nのメモリに分けて保存させるが、前記第1乃至第nの入力フィーチャセットの同じ順番のフィーチャを前記第1乃至第nのメモリに一つずつ保存させ、nは2以上の整数であるバッファメモリ;及び、前記バッファメモリに保存された第1乃至第nの入力フィーチャセットを受信し、受信された入力フィーチャセットに対する演算動作を遂行する演算ユニットを含むことができる。
【0006】
本発明の実施例に係る演算装置は、第1乃至第4のメモリを含み、少なくとも第1乃至第4のフィーチャを有する第1乃至第4の入力フィーチャセットを前記第1乃至第4のメモリに保存させ、一つの入力フィーチャセットの第1乃至第4のフィーチャを前記第1乃至第4のメモリに分けて保存させるが、前記第1乃至第4の入力フィーチャセットの同じ順番のフィーチャを前記第1乃至第4のメモリに重複されないように分けて保存させるバッファメモリ;及び、前記バッファメモリに保存された前記第1乃至第4の入力フィーチャセットを受信し、受信された入力フィーチャセットに対する演算動作を遂行する演算ユニットを含むことができる。
【0007】
本発明の実施例に係るシステムは、システムバスを介して第1の入力データを転送するホスト装置と、前記第1の入力データを受信し、前記第1の入力データに対する演算動作を遂行する演算装置とを含み、前記演算装置は、前記第1の入力データを各々少なくとも第1乃至第nのフィーチャを有する第1乃至第nの入力フィーチャセットに分類して保存し、nは2以上の整数であるバッファ;第1乃至第nのメモリを含み、前記第1乃至第nの入力フィーチャセットの第1乃至第nのフィーチャを前記第1乃至第nのメモリに各々保存させ、一つの入力フィーチャセットの第1乃至第nのフィーチャは前記第1乃至第nのメモリに分割保存されるバッファメモリ;及び、前記バッファメモリに保存された前記第1乃至第nの入力フィーチャセットを受信し、前記第1乃至第nの入力フィーチャセットに対する演算動作を遂行する演算ユニットを含むことができる。
【0008】
本発明の実施例に係るシステムの動作方法は、ホスト装置から転送された第1の入力データを各々第1乃至第nのフィーチャを含む第1乃至第nの入力フィーチャセットに分類して、前記第1乃至第nの入力フィーチャセットを仮に保存し、nは2以上の整数であるステップ;前記第1乃至第nの入力フィーチャセットの前記第1乃至第nのフィーチャを第1乃至第nのメモリに保存させ、一つの入力フィーチャセットの前記第1乃至第nのフィーチャは前記第1乃至第nのメモリに分けて保存され、前記第1乃至第nの入力フィーチャセットの同じ順番のフィーチャは前記第1乃至第nのメモリに均等に保存されるステップ;前記第1乃至第nの入力フィーチャセットの同じ順番のフィーチャを同時に出力するステップ;及び、前記出力されたフィーチャに対して演算動作を遂行するステップを含むことができる。
【発明の効果】
【0009】
本発明の実施例は、バッファメモリの使用効率の増加、及び演算装置の製造費用の減少を図ることができる。
【図面の簡単な説明】
【0010】
図1】本発明の実施例に係るシステムの構成を示す図である。
図2A】本発明の実施例に係る演算回路の構成及び演算動作を示す図である。
図2B】本発明の実施例に係る演算回路の構成及び演算動作を示す図である。
図3】本発明の実施例に係るシステムにおけるデータの流れを示す図である。
図4】本発明の実施例に係るバッファメモリの構成及び複数の入力フィーチャセットをバッファメモリに保存する方式を示す図である。
【発明を実施するための形態】
【0011】
以下、添付図面に基づき、本発明の好適な実施例を詳細に説明する。
【0012】
図1は、本発明の実施例に係るシステム1の構成を示す図である。図1に示すように、前記システム1は、ホスト装置101及び演算装置102を含むことができる。前記ホスト装置101は、前記演算装置102にデータを提供し、前記演算装置102から出力されたデータが受信できる。前記ホスト装置101は、システムバス103を介して前記演算装置と連結することができる。前記ホスト装置101は、前記システムバス103を介して前記演算装置102に入力データIND1、IND2が転送できる。前記ホスト装置101は、前記演算装置102が前記入力データIND1、IND2に対する演算動作を遂行して生成した出力データODを前記システムバスを介して受信できる。また、前記ホスト装置101は、前記演算装置102が演算動作を遂行できるように、多様な制御信号を前記システムバス103を介して前記演算装置102に提供できる。前記入力データは第1の入力データIND1及び第2の入力データIND2を含むことができる。例えば、前記第1の入力データIND1は、入力フィーチャセット(set of input feature)に係る情報を含むことができる。前記第2の入力データIND2は、ウェイト(weight)データに係る情報を含むことができる。
【0013】
前記演算装置102は、前記システムバス103を介して前記ホスト装置101と連結することができる。前記演算装置102は、前記システムバス103を介して前記ホスト装置101から転送された入力データIND1、IND2が受信できる。前記演算装置102は、前記入力データIND1、IND2を受信し、前記入力データIND1、IND2に対する演算動作が遂行できる。前記演算装置102は、前記演算動作を遂行して生成された出力データODを前記システムバス103を介して前記ホスト装置101に転送できる。前記演算装置102は、ニューラルネットワーク(neural network)演算装置であり得る。前記演算装置102は、前記ホスト装置101から第1及び第2の入力データIND1、IND2を受信し、入力フィーチャセット及びウェイトデータに対する演算動作が遂行できる。前記演算動作は、前記入力フィーチャセット及び前記ウェイトデータに対する畳込み(convolution)演算であり得、MAC(Multiply and Accumulation)演算であり得る。
【0014】
前記演算装置102は、ホストインターフェース110、バッファリング回路120、メモリ130及び演算ユニット140を含むことができる。前記ホストインターフェース110は、前記システムバス103と連結して、前記ホスト装置101から転送された前記入力データIND1、IND2を受信し、受信された入力データIND1、IND2を前記演算装置102の内部回路に提供できる。また、前記ホストインターフェース110は、前記演算装置102から生成された前記出力データODを前記システムバス103を介して前記ホスト装置101に転送できる。前記ホストインターフェース110は、前記システムバス103を介して前記第1及び第2の入力データIND1、IND2が受信できる。前記ホストインターフェース110は、受信された第1の入力データIND1を前記バッファリング回路120に提供し、受信された第2の入力データIND2を前記メモリ130に提供できる。前記ホストインターフェース110は、前記演算ユニット140から出力された演算結果データCRDを前記バッファリング回路120を介して受信できる。前記ホストインターフェース110は、前記演算ユニット140から生成された演算結果データCRDに基づき、前記システムバス103を駆動して前記ホスト装置101に前記出力データODが転送できる。
【0015】
前記バッファリング回路120は、前記ホストインターフェース110から第1の入力データIND1が受信できる。前記バッファリング回路120は、前記第1の入力データIND1を複数の入力フィーチャセットFDに分類して保存できる。複数の入力フィーチャセットFDは各々複数のフィーチャを含むことができる。前記フィーチャは任意のビット数が含まれる入力フィーチャセットFDの単位データであり得る。前記システムバス103のデータ帯域幅(data bandwidth)は、一つのフィーチャのサイズと異なることができる。前記システムバス103のデータ帯域幅は、一つのフィーチャのサイズより大きいことができる。前記第1の入力データIND1は、クロック信号に同期して前記システムバスを介して転送されることができ、前記システムバス103を介して一度に転送される第1の入力データIND1のビット数は一つのフィーチャのビット数より多いことができ、前記システムバス103を介して一度に転送される第1の入力データIND1は複数のフィーチャに関する情報を含むことができる。よって、前記バッファリング回路120は、前記第1の入力データIND1を複数の入力フィーチャセットFDに分類し、分類された各々の入力フィーチャセットFDが保存できる。前記バッファリング回路120は、前記複数の入力フィーチャセットFDを前記演算ユニット140に提供できる。前記バッファリング回路120は、前記演算ユニット140の演算効率を増加させるために、前記複数の入力フィーチャセットFDを前記演算ユニット140に同時に提供できるバッチ(batch)動作が遂行できる。前記バッファリング回路120は、前記演算ユニット140が演算動作を遂行して生成した前記演算結果データCRDを受信し、前記演算結果データCRDを前記ホストインターフェース110に提供できる。
【0016】
前記バッファリング回路120は、バッファ121及びバッファメモリ122を含むことができる。前記バッファ121は、前記第1の入力データIND1を受信して保存できる。前記バッファ121は、前記第1の入力データIND1を複数の入力フィーチャセットFDに分類して、前記複数の入力フィーチャセットFDを個別的に保存できる。前記バッファ121は、複数のFIFO(First-In First-Out)回路を含むことができる。少なくとも前記FIFO回路の個数は前記第1の入力データIND1に含まれる前記入力フィーチャセットFDの個数に対応し得る。前記複数のFIFO回路は、前記複数の入力フィーチャセットFDの複数のフィーチャが各々保存できる。
【0017】
前記バッファメモリ122は、前記バッファ121から出力された入力フィーチャセットFDを保存し、保存された入力フィーチャセットFDを前記演算ユニット140に出力できる。前記バッファメモリ122は、前記複数の入力フィーチャセットFDを保存し、前記複数の入力フィーチャセットFDの各々のフィーチャが同時に前記演算ユニット140に出力されるようにバッチ動作が遂行できる。前記バッファメモリ122は複数のメモリを含むことができる。前記バッファメモリ122が含むメモリの個数は、少なくとも前記入力フィーチャセットFDの個数に対応し得る。前記バッファメモリ122は、前記複数の入力フィーチャセットFDの各々のフィーチャを前記複数のメモリに分けて保存できる。前記複数のメモリは、各々前記複数の入力フィーチャセットFDの一つ以上のフィーチャが保存できる。前記複数のメモリに保存された複数の入力フィーチャセットFDのフィーチャ順番は互いに異なることができる。前記複数の入力フィーチャセットFDの同じ順番のフィーチャは同一のメモリに保存されないことができる。例えば、一つの入力フィーチャセットFDの第lのフィーチャを保存したメモリは、他の入力フィーチャセットFDの第lのフィーチャを保存しないことができる。前記lは1と一つの入力フィーチャセットに含まれるフィーチャの個数間の整数であり得る。前記バッファメモリ122は、前記複数の入力フィーチャセットFDの各々のフィーチャを同時に出力して前記演算ユニット140に提供できる。前記バッファメモリ122は、単一の読取り動作中に前記複数のフィーチャの同じ順番のフィーチャを同時に出力できる。例えば、前記バッファメモリ122は、単一の読取り動作中に前記複数の入力フィーチャセットの第lのフィーチャを同時に出力できる。前記バッファ121及びバッファメモリ122に関する詳細な説明は後述する。
【0018】
一実施例において、前記複数のメモリは、各々デュアルポートSRAM(Static Random Access Memory)であり得る。前記複数のメモリは、各々少なくとも一つのフィーチャが含むビット数に対応する保存深さ(depth)を有することができる。例えば、前記複数のメモリは複数の保存領域が具備でき、一つの保存領域は各々一つのフィーチャのビット数に対応する個数以上のビットが保存できる。前記複数の保存領域は互いに異なるアドレスに基づいて接近できる。
【0019】
前記メモリ130は、前記ホストインターフェース110から第2の入力データIND2が受信できる。前記メモリ130は、前記第2の入力データIND2を複数のウェイトデータWDに分類して保存できる。前記メモリ130は、前記複数のウェイトデータWDを前記演算ユニット140に提供できる。一つのウェイトデータWDは複数のウェイト信号を含むことができる。前記ウェイト信号は任意のビット数が含まれるウェイトデータWDの単位データであり得る。一実施例において、前記メモリ130は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)を含むことができる。
【0020】
前記演算ユニット140は、前記バッファリング回路120から出力された前記複数の入力フィーチャセットFDが受信できる。前記演算ユニット140は、前記メモリ130から出力された複数のウェイトデータWDが受信できる。前記演算ユニット140は、前記入力フィーチャセットFD及び前記ウェイトデータWDに対する演算動作が遂行できる。例えば、前記演算ユニット140は、前記入力フィーチャセットFD及び前記ウェイトデータWDに対する畳込み演算が遂行できる。前記演算ユニット140は複数の演算回路141、142、…、14nを含むことができる。前記複数の演算回路141、142、…、14nは互いに同一の構造を有するMAC演算回路であり得る。前記複数の演算回路141、142、…、14nは、各々前記入力フィーチャセットFD及び前記ウェイトデータWDに対する演算動作を遂行し、演算動作結果を前記ホストインターフェース110に出力できる。前記演算回路141、142、…、14nは、各々複数のプロセッシングエレメント(processing element)を含み、前記プロセッシングエレメントは、クロック信号に同期して前記入力フィーチャセットFD及び前記ウェイトデータWDを受信し、受信された入力フィーチャセットFD及び前記ウェイトデータWDに対するMAC演算が遂行できる。前記複数の演算回路141、142、…、14nは、各々入力フィーチャセットFD及びウェイトデータWDに対するMAC演算を遂行するシストリックアレイ(systolic array)を含むことができる。
【0021】
図2a及び図2bは、本発明の実施例に係る演算回路200の構成及び演算動作を示す図である。図2aに示すように、前記演算回路200は、複数のプロセッシングエレメント(processing element、PE)を含むシストリックアレイであり得る。前記演算回路200は、図1に示す前記複数の演算回路141、142、…、14nに各々適用され得る。図2aに示すように、前記演算回路200は、3つのフィーチャを含む3つの入力フィーチャセットを入力信号として受信し、3つのウェイト信号を含む3つのウェイトデータが受信できる。前記演算回路200は、3つのフィーチャを含む3つの入力フィーチャセット及び3つのウェイト信号を含む3つのウェイトデータに対するMAC演算が遂行できるように、9つのプロセッシングエレメントを備えるのを例示した。しかしながら、入力フィーチャセットの個数、1つの入力フィーチャセットが含むフィーチャの個数、ウェイトデータの個数、1つのウェイトデータが含むウェイト信号の個数は3つより少なかったり多かったりでき、これにより前記演算回路200に含まれる前記プロセッシングエレメントの個数も減少したり増加したりできる。
【0022】
前記演算回路200は、第1乃至第9のプロセッシングエレメントPE1~PE9を含むことができる。各々のプロセッシングエレメントは、単位サイクルを定義するクロック信号CLKに同期して前記入力フィーチャセット及びウェイトデータに含まれるフィーチャ及びウェイト信号を順次受信し、受信されたフィーチャ及びウェイト信号に対してMAC演算が遂行できる。前記第1乃至第9のプロセッシングエレメントPE1~PE9は、各々乗算ロジック(multiply logic)、加算ロジック(accumulation logic)及びレジスタを含むことができる。前記第1乃至第9のプロセッシングエレメントPE1~PE9は、前記乗算ロジックによる乗算及び前記加算ロジックによる加算を並列的に遂行できる。図2bは、入力フィーチャセットFD及びウェイトデータWDを行列に表現したものであり、前記入力フィーチャセットFD及びウェイトデータWDを畳込み演算した結果(FD × WD)を示す。図2a及び図2bを参照して前記演算回路200の動作を説明すれば、次の通りである。
【0023】
第一の単位サイクルの途中に第1のクロック信号CLK1がトグル(toggle)すれば、前記第1のプロセッシングエレメントPE1は、前記第1の入力フィーチャセットの第1のフィーチャF11及び前記第1のウェイトデータの第1のウェイト信号W11が受信できる。前記第1のプロセッシングエレメントPE1は、前記第1の入力フィーチャセットの第1のフィーチャF11及び前記第1のウェイトデータの第1のウェイト信号W11を乗算して、F11W11が生成できる。前記第1のクロック信号CLK1は、前記クロック信号CLKの第一のサイクルに同期されてトグルするパルス信号であり得る。同様に、第2乃至第9のクロック信号CLK2~CLK9は、前記クロック信号CLKの第二乃至第九のサイクルに各々同期されてトグルするパルス信号であり得る。
【0024】
第二の単位サイクルの途中に前記第2のクロック信号CLK2がトグルすれば、前記第1のプロセッシングエレメントPE1は、以前に演算されたF11W11及び0を加算して演算結果が保存できる。前記第1のプロセッシングエレメントPE1は、前記第1の入力フィーチャセットの第2のフィーチャF12を受信し、前記第2のウェイトデータの第1のウェイト信号W21が受信できる。前記第1のプロセッシングエレメントPE1は、前記第1の入力フィーチャセットの第1のフィーチャF11を第2のプロセッシングエレメントPE2に出力し、前記第1のウェイトデータの第1のウェイト信号W11を第3のプロセッシングエレメントPE3に出力できる。前記第1のプロセッシングエレメントPE1は、前記第1の入力フィーチャセットの第2のフィーチャF12及び前記第2のウェイトデータの第1のウェイト信号W21を乗算して、F12W21が生成できる。前記第2のプロセッシングエレメントPE2は、前記第2のクロック信号CLK2に同期して前記第1のウェイトデータの第2のウェイト信号W12を受信し、前記第1のプロセッシングエレメントPE1から前記第1の入力フィーチャセットの第1のフィーチャF11が受信できる。前記第2のプロセッシングエレメントPE2は、前記第1の入力フィーチャセットの第1のフィーチャF11及び前記第1のウェイトデータの第2のウェイト信号W12を乗算して、F11W12が生成できる。前記第3のプロセッシングエレメントPE3は、前記第2のクロック信号CLK2に同期して前記第2の入力フィーチャセットの第1のフィーチャF21を受信し、前記第1のプロセッシングエレメントPE1から前記第1のウェイトデータの第1のウェイト信号W11が受信できる。前記第3のプロセッシングエレメントPE3は、前記第2の入力フィーチャセットの第1のフィーチャF21及び前記第1のウェイトデータの第1のウェイト信号W11を乗算して、F21W11が生成できる。
【0025】
第三の単位サイクルの途中に前記第3のクロック信号CLK3がトグルすれば、前記第1のプロセッシングエレメントPE1は、以前に演算されたF11W11及びF12W21を加算して、演算結果(F11W11+F12W21)が保存できる。前記第1のプロセッシングエレメントPE1は、第1の入力フィーチャセットの第3のフィーチャF13及び第3のウェイトデータの第1のウェイト信号W31が受信できる。前記第1のプロセッシングエレメントPE1は、前記第1の入力フィーチャセットの第2のフィーチャF12を第2のプロセッシングエレメントPE2に出力し、前記第2のウェイトデータの第1のウェイト信号W21を前記第3のプロセッシングエレメントPE3に出力できる。前記第1のプロセッシングエレメントPE1は、前記第1の入力フィーチャセットの第3のフィーチャF13及び前記第3のウェイトデータの第1のウェイト信号W31を乗算して、F13W31が生成できる。前記第2のプロセッシングエレメントPE2は、以前に演算されたF11W12及び0を加算して演算結果が保存できる。前記第2のプロセッシングエレメントPE2は、前記第2のウェイトデータの第2のウェイト信号W22を受信し、前記第1のプロセッシングエレメントPE1から前記第1の入力フィーチャセットの第2のフィーチャF12が受信できる。前記第2のプロセッシングエレメントPE2は、前記第1の入力フィーチャセットの第1のフィーチャF11を第4のプロセッシングエレメントPE4に出力し、前記第1のウェイトデータの第2のウェイト信号W12を第5のプロセッシングエレメントPE5に出力できる。前記第2のプロセッシングエレメントPE2は、前記第1の入力フィーチャセットの第2のフィーチャF12及び前記第2のウェイトデータの第2のウェイト信号W22を乗算して、F12W22が生成できる。前記第3のプロセッシングエレメントPE3は、以前に演算されたF21W11及び0を加算して演算結果が保存できる。前記第3のプロセッシングエレメントPE3は、前記第2の入力フィーチャセットの第2のフィーチャF22を受信し、前記第1のプロセッシングエレメントPE1から前記第2のウェイトデータの第1のウェイト信号W21が受信できる。前記第3のプロセッシングエレメントPE3は、前記第2の入力フィーチャセットの第1のフィーチャF21を前記第5のプロセッシングエレメントPE5に出力し、前記第1のウェイトデータの第1のウェイト信号W11を第6のプロセッシングエレメントPE6に出力できる。前記第3のプロセッシングエレメントPE3は、前記第2の入力フィーチャセットの第2のフィーチャF22及び前記第2のウェイトデータの第1のウェイト信号W21を乗算して、F22W21が生成できる。前記第4のプロセッシングエレメントPE4は、前記第3のクロック信号CLK3に同期して前記第1のウェイトデータの第3のウェイト信号W13を受信し、前記第2のプロセッシングエレメントPE2から第1の入力フィーチャセットの第1のフィーチャF11が受信できる。前記第4のプロセッシングエレメントPE4は、前記第1の入力フィーチャセットの第1のフィーチャF11及び前記第1のウェイトデータの第3のウェイト信号W13を乗算して、F11W13が生成できる。前記第5のプロセッシングエレメントPE5は、前記第2のプロセッシングエレメントPE2から前記第1のウェイトデータの第2のウェイト信号W12を受信し、前記第3のプロセッシングエレメントPE3から第2の入力フィーチャセットの第1のフィーチャF21が受信できる。前記第5のプロセッシングエレメントPE5は、前記第2の入力フィーチャセットの第1のフィーチャF21及び前記第1のウェイトデータの第2のウェイト信号W12を乗算して、F21W12が生成できる。前記第6のプロセッシングエレメントPE6は、前記第3のクロック信号CLK3に同期して前記第3の入力フィーチャセットの第1のフィーチャF31を受信し、前記第3のプロセッシングエレメントPE3から前記第1のウェイトデータの第1のウェイト信号W11が受信できる。前記第6のプロセッシングエレメントPE6は、第3の入力フィーチャセットの第1のフィーチャF31及び前記第1のウェイトデータの第1のウェイト信号W11を乗算して、F31W11が生成できる。
【0026】
第四の単位サイクルの途中に前記第4のクロック信号CLK4がトグルすれば、前記第1のプロセッシングエレメントPE1は、以前に演算されたF11W11+F12W21及びF13W31を加算して、演算結果(F11W11+F12W21+F13W31)が保存できる。前記第1のプロセッシングエレメントPE1は、第1の入力フィーチャセットの第3のフィーチャF13を前記第2のプロセッシングエレメントPE2に出力し、前記第3のウェイトデータの第1のウェイト信号W31を前記第3のプロセッシングエレメントPE3に出力できる。前記第2のプロセッシングエレメントPE2は、以前に計算されたF11W12及びF12W22を加算して、演算結果(F11W12+F12W22)が保存できる。前記第2のプロセッシングエレメントPE2は、前記第3のウェイトデータの第2のウェイト信号W32を受信し、前記第1のプロセッシングエレメントPE1から前記第1の入力フィーチャセットの第3のフィーチャF13が受信できる。前記第2のプロセッシングエレメントPE2は、前記第1の入力フィーチャセットの第2のフィーチャF12を前記第4のプロセッシングエレメントPE4に出力し、前記第2のウェイトデータの第2のウェイト信号W22を前記第5のプロセッシングエレメントPE5に出力できる。前記第2のプロセッシングエレメントPE2は、前記第1の入力フィーチャセットの第3のフィーチャF13及び前記第3のウェイトデータの第2のウェイト信号W32を乗算して、F13W32が生成できる。前記第3のプロセッシングエレメントPE3は、以前に計算されたF21W11及びF22W21を加算して、演算結果(F21W11+F22W21)が保存できる。前記第3のプロセッシングエレメントPE3は、前記第2の入力フィーチャセットの第3のフィーチャF23を受信し、前記第1のプロセッシングエレメントPE1から前記第3のウェイトデータの第1のウェイト信号W31が受信できる。前記第3のプロセッシングエレメントPE3は、前記第2の入力フィーチャセットの第2のフィーチャF22を前記第5のプロセッシングエレメントPE5に出力し、前記第2のウェイトデータの第1のウェイト信号W21を前記第6のプロセッシングエレメントPE6に出力できる。前記第3のプロセッシングエレメントPE3は、前記第2の入力フィーチャセットの第3のフィーチャF23及び前記第3のウェイトデータの第1のウェイト信号W31を乗算して、F23W31が生成できる。前記第4のプロセッシングエレメントPE4は、前記第4のクロック信号CLK4に同期して前記第2のウェイトデータの第3のウェイト信号W23を受信し、前記第2のプロセッシングエレメントPE2から前記第1の入力フィーチャセットの第2のフィーチャF12が受信できる。前記第4のプロセッシングエレメントPE4は、以前に演算されたF11W13及び0を加算して演算結果が保存できる。前記第4のプロセッシングエレメントPE4は、前記第1のウェイトデータの第3のウェイト信号W13を第7のプロセッシングエレメントPE7に出力できる。前記第4のプロセッシングエレメントPE4は、前記第1の入力フィーチャセットの第2のフィーチャF12及び前記第2のウェイトデータの第3のウェイト信号W23を乗算して、F12W23が生成できる。前記第5のプロセッシングエレメントPE5は、以前に演算されたF21W12及び0を加算して演算結果が保存できる。前記第5のプロセッシングエレメントPE5は、前記第2のプロセッシングエレメントPE2から第2のウェイトデータの第2のウェイト信号W22を受信し、前記第3のプロセッシングエレメントPE3から第2の入力フィーチャセットの第2のフィーチャF22が受信できる。前記第5のプロセッシングエレメントPE5は、前記第2の入力フィーチャセットの第1のフィーチャF21を前記第7のプロセッシングエレメントPE7に出力し、前記第1のウェイトデータの第2のウェイト信号W12を第8のプロセッシングエレメントPE8に出力できる。前記第5のプロセッシングエレメントPE5は、前記第2の入力フィーチャセットの第2のフィーチャF22及び前記第2のウェイトデータの第2のウェイト信号W22を乗算して、F22W22が生成できる。前記第6のプロセッシングエレメントPE6は、以前に演算されたF31W11及び0を加算して演算結果が保存できる。前記第6のプロセッシングエレメントPE6は、前記第3の入力フィーチャセットの第2のフィーチャF32を受信し、前記第3のプロセッシングエレメントPE3から第2のウェイトデータの第1のウェイト信号W21が受信できる。前記第6のプロセッシングエレメントPE6は、前記第3の入力フィーチャセットの第1のフィーチャF31を前記第8のプロセッシングエレメントPE8に出力できる。前記第6のプロセッシングエレメントPE6は、前記第3の入力フィーチャセットの第2のフィーチャF32及び前記第2のウェイトデータの第1のウェイト信号W21を乗算して、F32W21が生成できる。前記第7のプロセッシングエレメントPE7は、前記第4のプロセッシングエレメントPE4から前記第1のウェイトデータの第3のウェイト信号W13を受信し、前記第5のプロセッシングエレメントPE5から第2の入力フィーチャセットの第1のフィーチャF21が受信できる。前記第7のプロセッシングエレメントPE7は、前記第2の入力フィーチャセットの第1のフィーチャF21及び前記第1のウェイターデータの第3のウェイト信号W13を乗算して、F21W13が生成できる。前記第8のプロセッシングエレメントPE8は、前記第5のプロセッシングエレメントPE5から第1のウェイトデータの第2のウェイト信号W12を受信し、第6のプロセッシングエレメントPE6から第3の入力フィーチャセットの第1のフィーチャF31が受信できる。前記第8のプロセッシングエレメントPE8は、前記第3の入力フィーチャセットの第1のフィーチャF31及び前記第1のウェイトデータの第2のウェイト信号W12を乗算して、F31W12が生成できる。
【0027】
第五の単位サイクルの途中に前記第5のクロック信号CLK5がトグルすれば、前記第2のプロセッシングエレメントPE2は、以前に計算されたF11W12+F12W22及びF13W32を加算して、演算結果(F11W12+F12W22+F13W32)が保存できる。前記第2のプロセッシングエレメントPE2は、前記第1の入力フィーチャセットの第3のフィーチャF13を前記第4のプロセッシングエレメントPE4に出力し、前記第3のウェイトデータの第2のウェイト信号W32を前記第5のプロセッシングエレメントPE5に出力できる。前記第3のプロセッシングエレメントPE3は、以前に計算されたF21W11+F22W21及びF23W31を加算して、演算結果(F21W11+F22W21+F23W31)が保存できる。前記第3のプロセッシングエレメントPE3は、前記第2の入力フィーチャセットの第3のフィーチャF23を前記第5のプロセッシングエレメントPE5に出力し、前記第3のウェイトデータの第1のウェイト信号W31を第6のプロセッシングエレメントPE6に出力できる。前記第4のプロセッシングエレメントPE4は、以前に計算されたF11W13及びF12W23を加算して、演算結果(F11W13+F12W23)が保存できる。前記第4のプロセッシングエレメントPE4は、前記第3のウェイトデータの第3のウェイト信号W33を受信し、前記第2のプロセッシングエレメントPE2から前記第1の入力フィーチャセットの第3のフィーチャF13が受信できる。前記第4のプロセッシングエレメントPE4は、前記第2のウェイトデータの第3のウェイト信号W23を前記第7のプロセッシングエレメントPE7に出力できる。前記第4のプロセッシングエレメントPE4は、前記第1の入力フィーチャセットの第3のフィーチャF13及び前記第3のウェイトデータの第3のウェイト信号W33を乗算して、F13W33が生成できる。前記第5のプロセッシングエレメントPE5は、以前に計算されたF21W12及びF22W22を加算して、演算結果(F21W12+F22W22)が保存できる。前記第5のプロセッシングエレメントPE5は、前記第2のプロセッシングエレメントPE2から前記第3のウェイトデータの第2のウェイト信号W32を受信し、前記第3のプロセッシングエレメントPE3から第2の入力フィーチャセットの第3のフィーチャF23が受信できる。前記第5のプロセッシングエレメントPE5は、前記第7のプロセッシングエレメントPE7に第2の入力フィーチャセットの第2のフィーチャF22を出力し、前記第8のプロセッシングエレメントPE8に第2のウェイトデータの第2のウェイト信号W22が出力できる。前記第5のプロセッシングエレメントPE5は、前記第2の入力フィーチャセットの第3のフィーチャF23及び前記第3のウェイトデータの第2のウェイト信号W32を乗算して、F23W32が生成できる。前記第6のプロセッシングエレメントPE6は、以前に計算されたF31W11及びF32W21を加算して、演算結果(F31W11+F32W21)が保存できる。前記第6のプロセッシングエレメントPE6は、前記第3の入力フィーチャセットの第3のフィーチャF33を受信し、前記第3のプロセッシングエレメントPE3から第3のウェイトデータの第1のウェイト信号W31が受信できる。前記第6のプロセッシングエレメントPE6は、前記第3の入力フィーチャセットの第2のフィーチャF32を前記第8のプロセッシングエレメントPE8に出力できる。前記第6のプロセッシングエレメントPE6は、前記第3の入力フィーチャセットの第3のフィーチャF33及び前記第3のウェイトデータの第1のウェイト信号W31を乗算して、F33W31が生成できる。前記第7のプロセッシングエレメントPE7は、以前に演算されたF21W13及び0を加算して演算結果が保存できる。前記第7のプロセッシングエレメントPE7は、前記第4のプロセッシングエレメントPE4から第2のウェイトデータの第3のウェイト信号W23を受信し、前記第5のプロセッシングエレメントPE5から第2の入力フィーチャセットの第2のフィーチャF22が受信できる。前記第7のプロセッシングエレメントPE7は、前記第1のウェイトデータの第3のウェイト信号W13を前記第9のプロセッシングエレメントPE9に出力できる。前記第7のプロセッシングエレメントPE7は、前記第2の入力フィーチャセットの第2のフィーチャF22及び前記第2のウェイトデータの第3のウェイト信号W23を乗算して、F22W23が生成できる。前記第8のプロセッシングエレメントPE8は、以前に演算されたF31W12及び0を加算して演算結果が保存できる。前記第8のプロセッシングエレメントPE8は、前記第5のプロセッシングエレメントPE5から第2のウェイトデータの第2のウェイト信号W22を受信し、前記第6のプロセッシングエレメントPE6から第3の入力フィーチャセットの第2のフィーチャF32が受信できる。前記第8のプロセッシングエレメントPE8は、前記第3の入力フィーチャセットの第1のフィーチャF31を前記第9のプロセッシングエレメントPE9に出力できる。前記第8のプロセッシングエレメントPE8は、前記第3の入力フィーチャセットの第2のフィーチャF32及び前記第2のウェイトデータの第2のウェイト信号W22を乗算して、F32W22が生成できる。前記第9のプロセッシングエレメントPE9は、前記第7のプロセッシングエレメントPE7から第1のウェイトデータの第3のウェイト信号W13を受信し、前記第8のプロセッシングエレメントPE8から第3の入力フィーチャセットの第1のフィーチャF31が受信できる。前記第9のプロセッシングエレメントPE9は、前記第3の入力フィーチャセットの第1のフィーチャF31及び前記第1のウェイトデータの第3のウェイト信号W13を乗算して、F31W13が生成できる。
【0028】
第六の単位サイクルの途中に前記第6のクロック信号がトグルすれば、前記第4のプロセッシングエレメントPE4は、以前に計算されたF11W13+F12W23及びF13W33を加算して、演算結果(F11W13+F12W23+F13W33)が保存できる。前記第4のプロセッシングエレメントPE4は、前記第3のウェイトデータの第3のウェイト信号W33を前記第7のプロセッシングエレメントPE7に出力できる。前記第5のプロセッシングエレメントPE5は、以前に演算されたF21W12+F22W22及びF23W32を加算して、演算結果(F21W12+F22W22+F23W32)が保存できる。前記第5のプロセッシングエレメントPE5は、前記第2の入力フィーチャセットの第3のフィーチャF23を第7のプロセッシングエレメントPE7に出力し、第3のウェイトデータの第2のウェイト信号W32を前記第8のプロセッシングエレメントPE8に出力できる。前記第6のプロセッシングエレメントPE6は、以前に演算されたF31W11+F32W21及びF33W31を加算して、演算結果(F31W11+F32W21+F33W31)が保存できる。前記第6のプロセッシングエレメントPE6は、前記第3の入力フィーチャセットの第3のフィーチャF33を前記第8のプロセッシングエレメントPE8に出力できる。前記第7のプロセッシングエレメントPE7は、以前に計算されたF21W13及びF22W23を加算して、演算結果(F21W13+F22W23)が保存できる。前記第7のプロセッシングエレメントPE7は、前記第4のプロセッシングエレメントPE4から第3のウェイトデータの第3のウェイト信号W33を受信し、前記第5のプロセッシングエレメントPE5から第2の入力フィーチャセットの第3のフィーチャF23が受信できる。前記第7のプロセッシングエレメントPE7は、前記第2のウェイトデータの第3のウェイト信号W23を前記第9のプロセッシングエレメントPE9に出力できる。前記第7のプロセッシングエレメントPE7は、前記第2の入力フィーチャセットの第3のフィーチャF23及び前記第3のウェイトデータの第3のウェイト信号W33を乗算して、F23W33が生成できる。前記第8のプロセッシングエレメントPE8は、以前に演算されたF31W12及びF32W22を加算して、演算結果(F31W12+F32W22)が保存できる。前記第8のプロセッシングエレメントPE8は、前記第5のプロセッシングエレメントPE5から前記第3のウェイトデータの第2のウェイト信号W32を受信し、前記第6のプロセッシングエレメントPE6から第3の入力フィーチャセットの第3のフィーチャF33が受信できる。前記第8のプロセッシングエレメントPE8は、前記第3の入力フィーチャセットの第2のフィーチャF32を前記第9のプロセッシングエレメントPE9に出力できる。前記第8のプロセッシングエレメントPE8は、前記第3の入力フィーチャセットの第3のフィーチャF33及び前記第3のウェイトデータの第2のウェイト信号W32を乗算して、F33W32が生成できる。前記第9のプロセッシングエレメントPE9は、以前に演算されたF31W13及び0を加算して演算結果が保存できる。前記第9のプロセッシングエレメントPE9は、前記第7のプロセッシングエレメントPE7から前記第2のウェイトデータの第3のウェイト信号W23を受信し、前記第8のプロセッシングエレメントPE8から第3の入力フィーチャセットの第2のフィーチャF32が受信できる。前記第9のプロセッシングエレメントPE9は、前記第3の入力フィーチャセットの第2のフィーチャF32及び前記第2のウェイトデータの第3のウェイト信号W23を乗算して、F32W23が生成できる。
【0029】
第七の単位サイクルの途中に前記第7のクロック信号がトグルすれば、前記第7のプロセッシングエレメントPE7は、以前に演算されたF21W13+F22W23及びF23W33を加算して、演算結果(F21W13+F22W23+F23W33)が保存できる。前記第3のウェイトデータの第3のウェイト信号W33を前記第9のプロセッシングエレメントPE9に出力し、前記第8のプロセッシングエレメントPE8は、以前に演算されたF31W12+F32W22及びF33W32を加算して、演算結果(F31W12+F32W22+F33W32)が保存できる。前記第8のプロセッシングエレメントPE8は、第3の入力フィーチャセットの第3のフィーチャF33を前記第9のプロセッシングエレメントPE9に出力できる。前記第9のプロセッシングエレメントPE9は、以前に演算されたF31W13及びF32W23を加算して、演算結果(F31W13+F32W23)が保存できる。前記第9のプロセッシングエレメントPE9は、前記第3の入力フィーチャセットの第3のフィーチャF33及び前記第3のウェイトデータの第3のウェイト信号W33を乗算して、F33W33が生成できる。
【0030】
第八の単位サイクルの途中に前記第8のクロック信号がトグルすれば、前記第9のプロセッシングエレメントPE9は、以前に演算されたF31W13+F32W23及びF33W33を加算して、演算結果(F31W13+F32W23+F33W33)が保存できる。第九の単位サイクルの途中に前記第9のクロック信号がトグルすれば、前記第1乃至第9のプロセッシングエレメントPE1~PE9に各々保存された演算結果が出力され得、図2bに示すように、第1乃至第3の入力フィーチャセットFD及び第1乃至第3のウェイトデータWDが畳込み演算された結果(FD × WD)が前記第1乃至第9のプロセッシングエレメントPE1~PE9から出力され得る。
【0031】
図3は、本発明の実施例に係るシステム1におけるデータの流れを示す図である。図1及び図3に示すように、前記ホスト装置101は、前記システムバス103を介して第1の入力データIND1が転送できる。前記第1の入力データIND1は複数の入力フィーチャセットを含むことができる。前記システムバス103のデータ帯域幅は一つのフィーチャのサイズより大きいことができ、前記システムバス103を介して一度に転送されるデータビットは複数のフィーチャを含むことができる。例えば、前記システムバス103のデータ帯域幅が32ビットであり、一つのフィーチャのサイズが8ビットである場合、前記システムバス103を介して4つのフィーチャが一度に転送され得る。前記第1の入力データIND1が256ビットである場合、前記第1の入力データIND1は各々8つのフィーチャを含む4つの入力フィーチャセットを含むことができる。図3に示すように、前記システムバス103のデータ帯域幅は32ビットであるのを例示したが、16ビット以下になることができ、64ビット以上になることもできる。また、一つのフィーチャのサイズは8ビットであるのを例示したが、4ビット以下になることができ、16ビット以上になることもできる。
【0032】
前記システムバス103は複数のバスを含むことができる。以下では、説明の明確性のために、前記システムバス103を介して4つのフィーチャが一度に転送される場合を仮定する。前記システムバス103は第1乃至第4のバスを含むことができる。前記第1乃至第4のバスは各々複数の信号転送ラインを含むことができる。一つの信号転送ラインは前記第1の入力データIND1の1ビットを転送するためのものであり得る。一つのバスは一つのフィーチャに対応する複数のビットが転送できる信号転送ラインを意味する。一つのバスは8つの信号転送ラインを含み、一つのフィーチャは8ビットを含むものと例示する。
【0033】
前記第1乃至第4のバスは、前記第1の入力データIND1のビットを直列に転送できる。前記第1の入力データIND1は、前記第1乃至第4のバスを介してクロック信号に同期して8回にかけて転送でき、合256ビットを含むことができる。第1のバスは、クロック信号に同期して順次第1の入力データの第1乃至第8のビットI11、第33乃至第40のビットI15、第65乃至第72のビットI21、第97乃至第104のビットI25、第129乃至第136のビットI31、第161乃至第168のビットI35、第193乃至第200のビットI41、第225乃至第232のビットI45が転送できる。前記第1の入力データIND1の第1乃至第8のビットI11は、前記第1の入力フィーチャセットFD1の第1のフィーチャF11に対応できる。前記第1の入力データIND1の第33乃至第40のビットI15は、前記第1の入力フィーチャセットFD1の第5のフィーチャF15に対応できる。前記第1の入力データIND1の第65乃至第72のビットI21は、第2の入力フィーチャセットFD2の第1のフィーチャF21に対応できる。前記第1の入力データIND1の第97乃至第104のビットI25は、第2の入力フィーチャセットFD2の第5のフィーチャF25に対応できる。前記第1の入力データIND1の第129乃至136のビットI31は、第3の入力フィーチャセットFD3の第1のフィーチャF31に対応できる。前記第1の入力データIND1の第161乃至第168のビットI35は、第3の入力フィーチャセットFD3の第5のフィーチャF35に対応できる。前記第1の入力データIND1の第193乃至第200のビットI41は、第4の入力フィーチャセットFD4の第1のフィーチャF41に対応できる。前記第1の入力データIND1の第225乃至第232のビットI45は、第4の入力フィーチャセットFD4の第5のフィーチャF45に対応できる。
【0034】
第2のバスは、クロック信号に同期して順次第1の入力データIND1の第9乃至第16のビットI12、第41乃至第48のビットI16、第73乃至第80のビットI22、第105乃至第112のビットI26、第137乃至第144のビットI32、第169乃至第176のビットI36、第201乃至第208のビットI42、第233乃至第240のビットI46が転送できる。前記第1の入力データIND1の第9乃至第16のビットI12は、前記第1の入力フィーチャセットFD1の第2のフィーチャF12に対応できる。前記第1の入力データIND1の第41乃至第48のビットI16は、前記第1の入力フィーチャセットFD1の第6のフィーチャF16に対応できる。前記第1の入力データIND1の第73乃至第80のビットI22は、第2の入力フィーチャセットFD2の第2のフィーチャF22に対応できる。前記第1の入力データIND1の第105乃至第112のビットI26は、第2の入力フィーチャセットFD2の第6のフィーチャF26に対応できる。前記第1の入力データIND1の第137乃至第144のビットI32は、第3の入力フィーチャセットFD3の第2のフィーチャF32に対応できる。前記第1の入力データIND1の第169乃至第176のビットI36は、第3の入力フィーチャセットFD3の第6のフィーチャF36に対応できる。前記第1の入力データIND1の第201乃至第208のビットI42は、第4の入力フィーチャセットFD4の第2のフィーチャF42に対応できる。前記第1の入力データIND1の第233乃至第240のビットI46は、第4の入力フィーチャセットFD4の第6のフィーチャF46に対応できる。
【0035】
第3のバスは、クロック信号に同期して順次第1の入力データIND1の第17乃至第24のビットI13、第49乃至第56のビットI17、第81乃至第88のビットI23、第113乃至第120のビットI27、第145乃至第152のビットI33、第177乃至第184のビットI37、第209乃至第216のビットI43、第241乃至第248のビットI47が転送できる。前記第1の入力データIND1の第17乃至第24のビットI13は、前記第1の入力フィーチャセットFD1の第3のフィーチャF13に対応できる。前記第1の入力データIND1の第49乃至第56のビットI17は、前記第1の入力フィーチャセットFD1の第7のフィーチャF17に対応できる。前記第1の入力データIND1の第81乃至第88のビットI23は、第2の入力フィーチャセットFD2の第3のフィーチャF23に対応できる。前記第1の入力データIND1の第113乃至第120のビットI27は、第2の入力フィーチャセットFD2の第7のフィーチャF27に対応できる。前記第1の入力データIND1の第145乃至第152のビットI33は、第3の入力フィーチャセットFD3の第3のフィーチャF33に対応できる。前記第1の入力データIND1の第177乃至第184のビットI37は、第3の入力フィーチャセットFD3の第7のフィーチャF37に対応できる。前記第1の入力データIND1の第209乃至第216のビットI43は、第4の入力フィーチャセットFD4の第3のフィーチャF43に対応できる。前記第1の入力データIND1の第241乃至第248のビットI47は、第4の入力フィーチャセットFD4の第7のフィーチャF47に対応できる。
【0036】
第4のバスは、クロック信号に同期して順次第1の入力データIND1の第25乃至第32のビットI14、第57乃至第64のビットI18、第89乃至第96のビットI24、第121乃至第128のビットI28、第153乃至第160のビットI34、第185乃至第192のビットI38、第217乃至第224のビットI44、第249乃至第256のビットI48が転送できる。前記第1の入力データIND1の第25乃至第32のビットI14は、前記第1の入力フィーチャセットFD1の第4のフィーチャF14に対応できる。前記第1の入力データIND1の第57乃至第64のビットI18は、前記第1の入力フィーチャセットFD1の第8のフィーチャF18に対応できる。前記第1の入力データIND1の第89乃至第96のビットI24は、第2の入力フィーチャセットFD2の第4のフィーチャF24に対応できる。前記第1の入力データIND1の第121乃至第128のビットI28は、第2の入力フィーチャセットFD2の第8のフィーチャF28に対応できる。前記第1の入力データIND1の第153乃至160のビットI34は、第3の入力フィーチャセットFD3の第4のフィーチャF34に対応できる。前記第1の入力データIND1の第185乃至192のビットI38は、第3の入力フィーチャセットFD3の第8のフィーチャF38に対応できる。前記第1の入力データIND1の第217乃至第224のビットI44は、第4の入力フィーチャセットFD4の第4のフィーチャF44に対応できる。前記第1の入力データIND1の第249乃至第256のビットI48は、第4の入力フィーチャセットFD4の第8のフィーチャF48に対応できる。
【0037】
前記演算装置102は、前記第1の入力データIND1を複数の入力フィーチャセットに分類し、前記演算ユニット140に前記複数の入力フィーチャセットFDを提供するために前記バッファリング回路120が備えられる。前記バッファリング回路120の前記バッファ121は複数のFIFO回路を含むことができる。第1のFIFO回路FIFO1は、前記第1の入力データIND1の第1乃至第64のビットI11~I18が保存でき、前記第1のFIFO回路FIFO1に保存された情報は第1の入力フィーチャセットFD1に対応できる。第2のFIFO回路FIFO2は、前記第1の入力データIND1の第65乃至第128のビットI21~I28が保存でき、前記第2のFIFO回路FIFO2に保存された情報は第2の入力フィーチャセットFD2に対応できる。第3のFIFO回路FIFO3は、前記第1の入力データIND1の第129乃至第192のビットI31~I38が保存でき、前記第3のFIFO回路FIFO3に保存された情報は第3の入力フィーチャセットFD3に対応できる。第4のFIFO回路FIFO4は、前記第1の入力データIND1の第193乃至第256のビットI41~I48が保存でき、前記第4のFIFO回路FIFO4に保存された情報は第4の入力フィーチャセットFD4に対応できる。
【0038】
前記バッファリング回路120の前記バッファメモリ122は、前記第1乃至第4の入力フィーチャセットFD1~FD4を前記演算ユニット140に同時に提供できるように前記バッチ動作が遂行できる。入力フィーチャセットの個数が4つであるため、前記バッファメモリ122は少なくとも4つのメモリを含むことができる。図3に示すように、前記バッファメモリ122は、第1乃至第4の入力フィーチャセットFD1~FD4の各フィーチャF11~F18、F21~F28、F31~F38、F41~F48が同時に出力できるように、前記第1乃至第4の入力フィーチャセットFD1~FD4の各フィーチャF11~F18、F21~F28、F31~F38、F41~F48を4つのメモリに分割保存させる必要がある。このとき、一つの入力フィーチャセットを一つのメモリに保存させる場合、前記バッチ動作が十分に遂行できる。ここで、前記入力フィーチャセットのサイズはデータの種類及び特性又はアプリケーションにより多様に変化し得る。しかしながら、前記メモリは固定のサイズ及び/又は深さ(depth)を有する。よって、小さすぎるサイズのメモリを用いる場合、多様なサイズの入力フィーチャセットが保存されない可能性があり、大きすぎるサイズのメモリを用いる場合、メモリの保存空間内に無駄な保存空間が多くなることができる。よって、最小限のサイズのメモリを用いて、前記入力フィーチャセットを保存する効率的な方式が必要になり得る。
【0039】
図4は、本発明の実施例に係るバッファメモリ400の構成及び複数の入力フィーチャセットをバッファメモリ400に保存する方式を示す図である。前記バッファメモリ400は、図1に示すバッファメモリ122に適用され得る。図4に示すように、前記バッファメモリ400は、第1乃至第4のメモリ410、420、430、440を含むことができる。前記第1乃至第4の入力フィーチャセットFD1~FD4の各フィーチャF11~F18、F21~F28、F31~F38、F41~F48は、前記第1乃至第4のメモリ410、420、430、440に分けて保存できる。前記第1乃至第4のメモリ410、420、430、440は、前記第1乃至第4の入力フィーチャセットFD1~FD4の同じ順番のフィーチャを保存しないことができる。一つの入力フィーチャセットの各フィーチャは、前記第1乃至第4のメモリ410、420、430、440に分けて保存できる。前記第1乃至第4の入力フィーチャセットFD1~FD4の同じ順番のフィーチャは、前記第1乃至第4のメモリ410、420、430、440に一つずつ分けて(又は均等に)保存できる。前記第1乃至第4の入力フィーチャセットFD1~FD4の同じ順番のフィーチャは、前記第1乃至第4のメモリ410、420、430、440に重複されないように分けて保存できる。
【0040】
前記第1乃至第4の入力フィーチャセットFD1~FD4の各フィーチャF11~F18、F21~F28、F31~F38、F41~F48が前記第1乃至第4のメモリ410、420、430、440に保存される順序は互いに異なることができる。前記第1乃至第4の入力フィーチャセットFD1~FD4の各フィーチャF11~F18、F21~F28、F31~F38、F41~F48は、互いにシフティングされた順序通りに前記第1乃至第4のメモリ410、420、430、440に分けて保存できる。例えば、第kの入力フィーチャセットの第1のフィーチャは第kのメモリに保存できる。kは1及び4間の整数であり得る。前記第1の入力フィーチャセットFD1の第1乃至第4のフィーチャF11、F12、F13、F14は、前記第1乃至第4のメモリ410、420、430、440に各々保存でき、前記第1の入力フィーチャセットFD1の第5乃至第8のフィーチャF15、F16、F17、F18は、前記第1乃至第4のメモリ410、420、430、440に各々保存できる。前記第2の入力フィーチャセットFD2の第1乃至第8のフィーチャF21~F28が保存されるメモリの順序はシフティングされ得る。前記第2の入力フィーチャセットFD2の第1乃至第3のフィーチャF21、F22、F23は前記第2乃至第4のメモリ420、430、440に各々保存され、前記第2の入力フィーチャセットFD2の第4のフィーチャF24は前記第1のメモリ410に保存できる。前記第2の入力フィーチャセットFD2の第5乃至第7のフィーチャF25、F26、F27は前記第2乃至第4のメモリ420、430、440に各々保存され、前記第2の入力フィーチャセットFD2の第8のフィーチャF28は前記第1のメモリ410に保存できる。前記第3の入力フィーチャセットFD3の第1乃至第8のフィーチャF31~F38が保存されるメモリの順序はシフティングされ得る。前記第3の入力フィーチャセットFD3の第1及び第2のフィーチャF31、F32は前記第3及び第4のメモリ430、440に各々保存され、前記第3の入力フィーチャセットFD3の第3及び第4のフィーチャF33、F34は前記第1及び第2のメモリ410、420に各々保存できる。前記第3の入力フィーチャセットFD3の第5及び第6のフィーチャF35、F36は前記第3及び第4のメモリ430、440に各々保存され、前記第3の入力フィーチャセットFD3の第7及び第8のフィーチャF37、F38は前記第1及び第2のメモリ410、420に各々保存できる。前記第4の入力フィーチャセットFD4の第1乃至第8のフィーチャF41~F48が保存されるメモリの順序はシフティングされ得る。前記第4の入力フィーチャセットFD4の第1のフィーチャF41は前記第4のメモリ440に保存され、前記第4の入力フィーチャセットFD4の第2乃至第4のフィーチャF42、F43、F44は前記第1乃至第3のメモリ410、420、430に各々保存できる。前記第4の入力フィーチャセットFD4の第5のフィーチャF45は前記第4のメモリ440に保存され、前記第4の入力フィーチャセットFD4の第6乃至第8のフィーチャF46、F47、F48は前記第1乃至第3のメモリ410、420、430に各々保存できる。
【0041】
前記第1乃至第4のメモリ410、420、430、440は各々複数の保存領域を含むことができる。前記複数の保存領域は各々一つのフィーチャが保存できる。前記複数の保存領域の個数は一つの入力フィーチャセットが含むフィーチャの個数以上であり得る。図4に示すように、前記第1乃至第4のメモリ410、420、430、440は各々8つの保存領域を含むのを例示したが、より多くの個数のフィーチャを含む入力フィーチャセットが保存できるように、より多くの個数の保存領域を含むことができる。前記複数の保存領域には、互いに異なるアドレスが割当及び/又はマッピング(mapping)され、割当及び/又はマッピングされたアドレスに基づいて接近できる。
【0042】
具体的に、前記第1乃至第4の入力フィーチャセットFD1~FD4が前記第1乃至第4のメモリ410、420、430、440に保存される方式を説明すれば次の通りである。前記第1乃至第4のメモリ410、420、430、440は、書込み動作を遂行して前記第1乃至第4の入力フィーチャセットFD1~FD4の各フィーチャF11~F18、F21~F28、F31~F38、F41~F48が保存できる。前記第1の入力フィーチャセットFD1の第1のフィーチャF11は、前記第1のメモリ410の第1の保存領域411に保存できる。前記第1の入力フィーチャセットFD1の第2乃至第4のフィーチャF12、F13、F14は、第2乃至第4のメモリ420、430、440の第1の保存領域421、431、441に各々保存できる。前記第1の入力フィーチャセットFD1の第5乃至第8のフィーチャF15、F16、F17、F18は、第1乃至第4のメモリ410、420、430、440の第2の保存領域412、422、432、442に各々保存できる。前記第2の入力フィーチャセットFD2の第1のフィーチャF21は、前記第2のメモリ420の第3の保存領域423に保存できる。前記第2の入力フィーチャセットFD2の第2及び第3のフィーチャF22、F23は、前記第3及び第4のメモリ430、440の第3の保存領域433、443に各々保存できる。前記第2の入力フィーチャセットFD2の第4のフィーチャF24は、前記第1のメモリ410の第3の保存領域413に保存できる。前記第2の入力フィーチャセットFD2の第5乃至第7のフィーチャF25、F26、F27は、前記第2乃至第4のメモリ420、430、440の第4の保存領域424、434、444に各々保存でき、前記第2の入力フィーチャセットFD2の第8のフィーチャF28は、前記第1のメモリ410の第4の保存領域414に保存できる。前記第3の入力フィーチャセットFD3の第1のフィーチャF31は、前記第3のメモリ430の第5の保存領域435に保存できる。前記第3の入力フィーチャセットFD3の第2のフィーチャF32は、前記第4のメモリ440の第5の保存領域445に保存でき、前記第3の入力フィーチャセットFD3の第3及び第4のフィーチャF33、F34は、前記第1及び第2のメモリ410、420の第5の保存領域415、425に各々保存できる。前記第3の入力フィーチャセットFD3の第5及び第6のフィーチャF35、F36は、前記第3及び第4のメモリ430、440の第6の保存領域436、446に各々保存でき、前記第3の入力フィーチャセットFD3の第7及び第8のフィーチャF37、F38は、前記第1及び第2のメモリ410、420の第6の保存領域416、626に各々保存できる。前記第4の入力フィーチャセットFD4の第1のフィーチャF41は、前記第4のメモリ440の第7の保存領域447に保存できる。前記第4の入力フィーチャセットFD4の第2乃至第4のフィーチャF42、F43、F44は、前記第1乃至第3のメモリ410、420、430の第7の保存領域417、427、437に各々保存できる。前記第4の入力フィーチャセットFD4の第5のフィーチャF45は、前記第4のメモリ440の第8の保存領域448に保存でき、前記第4の入力フィーチャセットFD4の第6乃至第8のフィーチャF46、F47、F48は、前記第1乃至第3のメモリ410、420、430の第8の保存領域418、428、438に各々保存できる。
【0043】
前記第1乃至第4のメモリ410、420、430、440は、第1のアドレスADD1に基づき、前記第1の入力フィーチャセットFD1の第1乃至第4のフィーチャF11、F12、F13、F14を前記第1乃至第4のメモリ410、420、430、440の第1の保存領域411、421、431、441に各々同時に保存できる。前記第1乃至第4のメモリ410、420、430、440は、第2のアドレスADD2に基づき、前記第1の入力フィーチャセットFD1の第5乃至第8のフィーチャF15、F16、F17、F18を前記第1乃至第4のメモリ410、420、430、440の第2の保存領域412、422、432、442に各々同時に保存できる。前記第1乃至第4のメモリ410、420、430、440は、第3のアドレスADD3に基づき、前記第2の入力フィーチャセットFD2の第1乃至第4のフィーチャF21、F22、F23、F24を前記第1乃至第4のメモリ410、420、430、440の第3の保存領域413、423、433、443に各々同時に保存できる。前記第1乃至第4のメモリ410、420、430、440は、第4のアドレスADD4に基づき、前記第2の入力フィーチャセットFD2の第5乃至第8のフィーチャF25、F26、F27、F28を前記第1乃至第4のメモリ410、420、430、440の第4の保存領域414、424、434、444に各々同時に保存できる。前記第1乃至第4のメモリ410、420、430、440は、第5のアドレスADD5に基づき、前記第3の入力フィーチャセットFD3の第1乃至第4のフィーチャF31、F32、F33、F34を前記第1乃至第4のメモリ410、420、430、440の第5の保存領域415、425、435、445に各々同時に保存できる。前記第1乃至第4のメモリ410、420、430、440は、第6のアドレスADD6に基づき、前記第3の入力フィーチャセットFD3の第5乃至第8のフィーチャF35、F36、F37、F38を前記第1乃至第4のメモリ410、420、430、440の第6の保存領域416、426、436、446に各々同時に保存できる。前記第1乃至第4のメモリ410、420、430、440は、第7のアドレスADD7に基づき、前記第4の入力フィーチャセットFD4の第1乃至第4のフィーチャF41、F42、F43、F44を前記第1乃至第4のメモリ410、420、430、440の第7の保存領域417、427、437、447に各々同時に保存できる。前記第1乃至第4のメモリ410、420、430、440は、第8のアドレスADD8に基づき、前記第4の入力フィーチャセットFD4の第5乃至第8のフィーチャF45、F46、F47、F48を前記第1乃至第4のメモリ410、420、430、440の第8の保存領域418、428、438、448に各々同時に保存できる。
【0044】
一実施例において、前記第1乃至第4の入力フィーチャセットFD1~FD4が8つより少ない個数のフィーチャを含む場合、前記第1乃至第4のメモリ410、420、430、440の一部の保存領域は用いられないことができる。例えば、前記第1乃至第4の入力フィーチャセットFD1~FD4が各々3つのフィーチャを含む場合、前記第1の入力フィーチャセットFD1の第1乃至第3のフィーチャF11、F12、F13は、前記第1乃至第3のメモリ410、420、430の第1の保存領域411、421、431に各々保存できる。前記第2の入力フィーチャセットFD2の第1乃至第3のフィーチャF21、F22、F23は、前記第2乃至第4のメモリ420、430、440の第2の保存領域422、432、442に各々保存できる。前記第3の入力フィーチャセットFD3の第1及び第2のフィーチャF31、F32は、前記第3及び第4のメモリ430、440の第3の保存領域433、443に各々保存され、前記第3の入力フィーチャセットFD3の第3のフィーチャF33は、前記第1のメモリ410の第3の保存領域413に保存できる。前記第4の入力フィーチャセットFD4の第1のフィーチャF41は、前記第4のメモリ440の第4の保存領域444に保存され、前記第4の入力フィーチャセットFD4の第2及び第3のフィーチャF42、F43は、前記第1及び第2のメモリ410、420の第4の保存領域414、424に各々保存できる。
【0045】
前記第1乃至第4のメモリ410、420、430、440は、単一の読取り動作中に、前記第1乃至第4の入力フィーチャセットFD1~FD4の同じ順番のフィーチャを同時に出力できる。第1の読取り動作中に、前記第1乃至第4のメモリ410、420、430、440は、第1のアドレスADD1、第3のアドレスADD3、第5のアドレスADD5及び第7のアドレスADD7に各々基づき、前記第1乃至第4の入力フィーチャセットFD1~FD4の第1のフィーチャF11、F21、F31、F41を同時に出力できる。前記第1乃至第4の入力フィーチャセットFD1~FD4の第1のフィーチャF11、F21、F31、F41は、前記演算ユニット140の4つの演算回路に各々提供できる。第2の読取り動作中に、前記第1乃至第4のメモリ410、420、430、440は、第7のアドレスADD7、第1のアドレスADD1、第3のアドレスADD3及び第5のアドレスADD5に各々基づき、前記第1乃至第4の入力フィーチャセットFD1~FD4の第2のフィーチャF12、F22、F32、F42を同時に出力できる。前記第1乃至第4の入力フィーチャセットFD1~FD4の第2のフィーチャF12、F22、F32、F42は、前記4つの演算回路に各々提供できる。第3の読取り動作中に、前記第1乃至第4のメモリ410、420、430、440は、第5のアドレスADD5、第7のアドレスADD7、第1のアドレスADD1及び第3のアドレスADD3に各々基づき、前記第1乃至第4の入力フィーチャセットFD1~FD4の第3のフィーチャF13、F23、F33、F43を同時に出力できる。前記第1乃至第4の入力フィーチャセットFD1~FD4の第3のフィーチャF13、F23、F33、F43は、前記演算ユニット140の4つの演算回路に各々提供できる。第4の読取り動作中に、前記第1乃至第4のメモリ410、420、430、440は、第3のアドレスADD3、第5のアドレスADD5、第7のアドレスADD7及び第1のアドレスADD1に各々基づき、前記第1乃至第4の入力フィーチャセットFD1~FD4の第4のフィーチャF14、F24、F34、F44を同時に出力できる。前記第1乃至第4の入力フィーチャセットFD1~FD4の第4のフィーチャF14、F24、F34、F44は、前記4つの演算回路に各々提供できる。第5の読取り動作中に、前記第1乃至第4のメモリ410、420、430、440は、第2のアドレスADD2、第4のアドレスADD4、第6のアドレスADD6及び第8のアドレスADD8に各々基づき、前記第1乃至第4の入力フィーチャセットFD1~FD4の第5のフィーチャF15、F25、F35、F45を同時に出力できる。前記第1乃至第4の入力フィーチャセットFD1~FD4の第5のフィーチャF15、F25、F35、F45は、前記4つの演算回路に各々提供できる。第6の読取り動作中に、前記第1乃至第4のメモリ410、420、430、440は、第8のアドレスADD8、第2のアドレスADD2、第4のアドレスADD4及び第6のアドレスADD6に各々基づき、前記第1乃至第4の入力フィーチャFD1~FD4の第6のフィーチャF16、F26、F36、F46を同時に出力できる。前記第1乃至第4の入力フィーチャセットFD1~FD4の第6のフィーチャF16、F26、F36、F46は前記4つの演算回路に各々提供できる。第7の読取り動作中に、前記第1乃至第4のメモリ410、420、430、440は、第6のアドレスADD6、第8のアドレスADD8、第2のアドレスADD2及び第4のアドレスADD4に各々基づき、前記第1乃至第4の入力フィーチャセットFD1~FD4の第7のフィーチャF17、F27、F37、F47を同時に出力できる。前記第1乃至第4の入力フィーチャセットFD1~FD4の第7のフィーチャF17、F27、F37、F47は、前記4つの演算回路に各々提供できる。第8の読取り動作中に、前記第1乃至第4のメモリ410、420、430、440は、第4のアドレスADD4、第6のアドレスADD6、第8のアドレスADD8及び第2のアドレスADD2に各々基づき、前記第1乃至第4の入力フィーチャセットFD1~FD4の第8のフィーチャF18、F28、F38、F48を同時に出力できる。前記第1乃至第4の入力フィーチャセットFD1~FD4の第8のフィーチャF18、F28、F38、F48は前記4つの演算回路に各々提供できる。前記演算ユニット140は、前記バッファメモリ122から前記第1乃至第4の入力フィーチャセットFD1~FD4の第1乃至第8のフィーチャF11~F18、F21~F28、F31~F38、F41~F48を順次受信し、前記第1乃至第4の入力フィーチャセットFD1~FD4に対する演算動作を同時に遂行できる。本発明の実施例は、小さなサイズのメモリを用いて、複数の入力フィーチャセットに対するバッチ動作が可能になることで、システムの動作効率の増加、及び演算装置の製造費用の減少を図ることができる。
【0046】
本発明の属する技術分野における通常の技術者は、本発明がその技術的思想や必須特徴から逸脱しない範囲内において、他の具体的な形態で実施できるので、前述した実施例は全ての面において例示的なものであり、限定的なものではないと理解しなければならない。本発明の範囲は前記詳細な説明よりも後述する特許請求の範囲により示され、特許請求の範囲の意味及び範囲、その等価概念から導出される全ての変更又は変形された形態が、本発明の範囲に含まれるものと解析しなければならない。
図1
図2A
図2B
図3
図4