JP2011034566A - マルチmacアーキテクチャにおける低電力firフィルタ - Google Patents

マルチmacアーキテクチャにおける低電力firフィルタ Download PDF

Info

Publication number
JP2011034566A
JP2011034566A JP2010173110A JP2010173110A JP2011034566A JP 2011034566 A JP2011034566 A JP 2011034566A JP 2010173110 A JP2010173110 A JP 2010173110A JP 2010173110 A JP2010173110 A JP 2010173110A JP 2011034566 A JP2011034566 A JP 2011034566A
Authority
JP
Japan
Prior art keywords
adder
multiplier
mac
output
mac unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010173110A
Other languages
English (en)
Other versions
JP2011034566A5 (ja
JP5544240B2 (ja
Inventor
Jeffrey Allan Yaakov
アラン ヤーコブ ジェフリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ceva DSP Ltd
Original Assignee
Ceva DSP Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ceva DSP Ltd filed Critical Ceva DSP Ltd
Publication of JP2011034566A publication Critical patent/JP2011034566A/ja
Publication of JP2011034566A5 publication Critical patent/JP2011034566A5/ja
Application granted granted Critical
Publication of JP5544240B2 publication Critical patent/JP5544240B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

【課題】性能を犠牲にせずに低電力を実現するためのマルチMACアーキテクチャを提供する。
【解決手段】本発明の実施形態は、チェーンの第1の乗加算器の出力結果をチェーンの第2の後続乗加算器への入力として供給することによって、2つ以上の乗加算器ユニット(210、220、230、240)の乗加算器チェーンの演算をスケジュールして、比較的低いワット損を可能にするシステムおよび方法を対象とする。
【選択図】図2

Description

本発明は、マルチMACアーキテクチャに関し、詳しくは、性能を犠牲にせずに低電力を実現するためのマルチMACアーキテクチャに関する。
多くのディジタル信号プロセッサ(DSP)アーキテクチャなどのハードウェア・アクセラレータ・アプリケーションでは、一連の乗算および/または累算を含み得る。したがって、高性能を実現するために、複数のハイスループット乗加算(MAC)ユニットが採用され得る。
エイ.ティ.エルドーアン(A.T Erdogan)、外1名,「係数順序付けアルゴリズムに基づく低電力FIRフィルタの実施(Low Power FIR Filter Implementations Based on Coefficient Ordering Algorithm)」,VLSIシステム設計(ISVLSI’04)におけるVLSIの新たな動向に関するIEEEコンピュータ学会年次シンポジウムの会議録,2004年
複数のMACユニットを同時に使用することによって性能を最大化すると、高いワット損をもたらし得る。しかし、たとえば、携帯用電子機器市場における今日の多くのアプリケーションでは、低い消費電力が求められる。それ故に、性能を犠牲にせずに低電力を実現するためのマルチMACアーキテクチャが必要である。
本発明の実施形態に従う例示的なデバイスの高レベルブロック図である。 本発明の実施形態に従う例示的なマルチMAC構成のブロック図である。 本発明の実施形態に従う例示的なマルチMAC構成のブロック図である。 本発明の実施形態に従う例示的なマルチMAC構成のブロック図である。 本発明の例証的な実施形態に従うMAC演算をスケジュールする方法のフローチャートである。
本発明と見なされる主題は、本明細書の結びの部分で具体的に指摘されて明確に主張される。しかし、本発明の実施形態は、これらの目的、特徴および利点とともに、編成および動作方法の両方に関して、添付図面を読解するときに以下の詳細な説明を参照することにより最もよく理解され得る。
説明を簡単かつ明瞭にするために、図に示される素子は必ずしも一定の縮尺で描かれていないことは理解されよう。たとえば、素子のいくつかの寸法は、分かりやすくするために他の素子に比べて誇張され得る。さらに、適当であると考えられる場合、参照番号は対応する素子または類似の素子を示すために図の中で繰り返され得る。
以下の詳細な説明において、本発明の完全な理解を与えるために多くの具体的詳細が記述される。しかし、本発明はこれら具体的詳細がなくても実施され得ることを当業者は理解されよう。他の例においては、本発明が曖昧にならないように、周知の方法、手順、および構成部品は詳しく記載されていない。
本発明の実施形態はこの点に関して限定されないが、たとえば、「処理する」、「計算する」、「決定する」、「確立する」、「解析する」、「チェックする」などの用語を利用する説明では、コンピュータのレジスタおよび/またはメモリ内で物理(たとえば、電子的)量として表されたデータを操作し、および/またはこれらのデータを演算および/または処理を実行するための命令を記憶する場合のコンピュータのレジスタおよび/またはメモリまたは情報記憶媒体内で物理量として同様に表された他のデータに変換するコンピュータ、計算プラットフォーム、コンピューティングシステムなどの電子計算装置の演算および/または処理に言及され得る。
本発明の実施形態はこの点に関して限定されないが、本明細書において使用される「複数という用語は、たとえば、「多数の」または「2つ以上の」を含み得る。「複数」)という用語は、本明細書を通じて、2つ以上の構成部品、デバイス、素子、ユニット、パラメータなどを示すために使用され得る。
本発明の実施形態は、オーディオおよび音声信号処理、ソナーおよびレーダー信号処理、センサーアレイ処理、スペクトル推定、統計的信号処理、ディジタル画像処理、通信用信号処理、生体信号処理、地震データ処理など、様々な分野における信号処理に使用され得る。本発明の実施形態は、たとえば、有限インパルス応答(FIR)フィルタ処理およびハードウェアアクセラレータにおけるディジタル信号プロセッサ(DSP)で実施され得る。説明を簡単にするために、本発明の一部の実施形態はFIRフィルタに関して記載されるが、本発明はFIRフィルタに限定されるものではなく、任意の乗算および累算(マルチMAC)アーキテクチャに適用可能である。
本発明の実施形態は、各々が乗算器および加算器を備える2つ以上の乗加算器のチェーンを含んでいてもよい。乗加算器は、チェーンの第1の乗加算器の出力結果がチェーンの第2の後続乗加算器の加算器への入力として供給され、チェーンの最後の乗加算器の出力結果がチェーンの第1の乗加算器の加算器への入力として提供されるように配置されてもよい。
ここで、本発明の実施形態に従ってプロセッサを含む例示的なデバイスのブロック図である図1を参照する。例示的なデバイス100は、プロセッサ101と、データ・メモリ・ユニット102と、プログラム・メモリ・ユニット103とを備える。デバイス100は、コンピュータデバイス、携帯デバイス、家電製品デバイスなど、任意のディジタルデバイスであってもよい。プロセッサ101は、ディジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)であってもよく、任意の他のハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組合せで実施されてもよい。プロセッサ101は、データ・メモリ・バス104を介してデータ・メモリ・ユニット102に結合され、プログラム・メモリ・バス105を介してプログラム・メモリ・ユニット103に結合される。データ・メモリ102およびプログラムメモリ103は、2つの別々のメモリとして実施されてもよく、単一のメモリユニット内に集積されてもよい。
図1に関して、プロセッサ101に対する例示的なアーキテクチャが記載されるが、他のアーキテクチャも可能であることを当業者は理解されたい。プロセッサ101は、プログラム制御ユニット108、ロード/記憶ユニット107、算術論理ユニット(ALU)111、およびメモリコントローラ109を含む。メモリコントローラ109は、データ・メモリ・バス104に結合されたデータ・メモリ・コントローラ(図示せず)と、プログラム・メモリ・バス105に結合されたプログラム・メモリ・コントローラ(図示せず)とを含む。ロード/記憶ユニット107は、データ・メモリ・ユニット102からのロード動作およびデータ・メモリ・ユニット102への記憶動作を実行する。プログラム制御ユニット108は、プログラム・メモリ・ユニット103から機械語命令を検索、デコード、およびディスパッチし、一般に、プログラムの流れを管理する。
ALU111は、2つ以上の乗加算(MAC)ユニットまたは構造体と算術論理演算を備えるマルチ乗加算(MAC)ユニットまたはマルチ乗加算器110と、機能ユニット112とを含む。機能ユニット112は、加算機能、減算機能、ビット操作、算術論理演算および/または他の一般演算、ならびにこれらの任意の組合せを含む1つまたは複数の機能性を実行してもよい。図1の例示的な説明においては、単一のマルチMACユニットおよび単一の機能ユニットが示されるが、本発明はこの点において限定されるものではなく、本発明の実施形態に従っていかなる数のマルチMACユニットおよび機能ユニットが使用されてもよいことを当業者は理解されたい。
マルチMACユニット110は、複数のMACユニットを同時に使用することによってプロセッサの性能を最大にする。マルチMACユニット110は、低いワット損を有する複数のMACユニットでのMAC演算のスケージューリングを可能にするように構成される。
デバイス100は、処理機能または演算を実行し得るか、あるいは処理機能または演算の実行に関与し得る他のブロック、モジュール、演算、およびユニットをさらに含んでいてもよいことに留意されたい。図1の例示的な説明において、プロセッサ101は、プログラム制御ユニット108、ロード/記憶ユニット107、ALU111、およびメモリコントローラ109を含むが、本発明は、この点に関して限定されず、本発明の実施形態に従って、任意の数の任意の種類のブロック、ユニット、および/またはモジュールがプロセッサ101およびデバイス100に含まれてもよいことを当業者は理解されたい。
ここで、本発明の例証的な実施形態に従って例示的なマルチMACユニットのブロック図である図2を参照する。マルチMACユニット200などのマルチMACユニットは、図1のプロセッサ101などのプロセッサの一部であってもよい。マルチMACユニット200は、複数のMACユニットまたは構造体、たとえば、MACユニット210、MACユニット220、MACユニット230、およびMACユニット240を含む。図2の例示的な説明には4つのMACユニットが示されるが、本発明はこの点に関して限定されず、本発明の実施形態に従って、2つ以上のMACユニットが使用されてもよいことを当業者は理解されたい。
MACユニットの各々は、乗算器、加算器、およびメモリ素子またはユニットを含んでいてもよい、たとえば、MACユニット210は、乗算器211、加算器212、およびメモリユニットまたは素子213を含み、MACユニット220は、乗算器221、加算器222、およびメモリ素子223を含み、MACユニット230は、乗算器231、加算器232、およびメモリ素子233を含み、MACユニット240は、乗算器241、加算器242、およびメモリ素子243を含む。メモリ素子213、223、233、および243は、クロック信号201によって動作されるクロックドメモリ素子であり、各メモリ素子は、クロック信号によって決定される所定期間、それぞれの加算器から受け取られた値を記憶してもよい。
MACユニット210、220、230、および240の各々は、入力オペランドを受け取るための2つの入力信号を含む。入力オペランドは、たとえば、図1のロード/記憶ユニット107を介してデータ・メモリ102から受け取られる。たとえば、MACユニット210の乗算器211は、入力信号214を介して係数値と入力信号215を介してデータ値とを受け取り、MACユニット220の乗算器221は入力信号224を介して係数値と入力信号225を介してデータ値とを受け取り、MACユニット230の乗算器231は入力信号234を介して係数値と入力信号235を介してデータ値とを受け取り、MACユニット240の乗算器241は入力信号244を介して係数値と入力信号245を介してデータ値とを受け取る。
本発明の例示的な実施形態に従って、マルチMACユニット200は、FIRフィルタ処理に使用される。有限インパルス応答(FIR)フィルタは、入力信号を出力信号に関係付ける次式によって規定される。
y[n]=Σc[i]・x[n−i]
ここで、x[n]は入力信号のデータ値を表し、c[i]は係数値を表し、y[n]は出力信号を表し、和はフィルタ次数Nに従ってゼロに等しいiからNに等しいiまでのすべてのi係数にわたって取られ、ここで、N次フィルタは式の右辺に(n+1)項を有する。
単一のMAC構成において、MACユニットは、入力信号の係数値とデータ値とを入力オペランドとして受け取り、単一のMAC演算をクロックサイクルごとに実行する。係数値c[i]にはデータ値x[n−i]が乗じられ、結果は単一の累算器にy[n]出力信号として累算される。次のサイクルで、係数c[i+1]にはデータ値x[n−i−1]が乗じられ、結果は同じy[n]出力に累算される。
マルチMACアーキテクチャにおいて、演算は並列処理されてもよい。たとえば、4−MACアーキテクチャでは、各々が次式に従って異なる出力信号y[n]〜y[n+3]に対応する4つのMAC演算がサイクルごとに行なわれてもよい。
y[n]=Σc[i]・x[n−i]
y[n+1]=Σc[i]・x[n+1−i]
y[n+2]=Σc[i]・x[n+2−i]
y[n+3]=Σc[i]・x[n+3−i]
本発明の実施形態に従って、ワット損を低減しうる効率的な方法でユニット210〜240などの4つの有効なMACユニットで4並列演算がスケジュールされてもよい。各MACユニットに対して、出力の計算に必要なすべてのサイクルに対して乗算器への入力オペランドとして単一の係数値を使用することによって、比較的低いワット損が実現され得る。
表1および2は、8サイクル間に同じ係数入力を使用すると同時にデータ被乗数入力がサイクルごとに次のデータインデックスで置き換えられる、4並列MACユニットに対するスケジュールを示す。これらの8サイクル中、11の異なる出力信号が4つのMACユニット(y[n+k−7]〜y[n+k+3])によって処理されている。
Figure 2011034566
Figure 2011034566
本発明の例示的な実施形態に従って表1および2に示されるように、サイクルごとに、4つのMAC演算が行なわれる。たとえば、サイクル1は、以下の演算を含む。すなわち、(1)MACユニット210の乗算器211の入力ノード214で受け取られた係数c[1]は被乗数x[n]を乗じられて、MACユニット210の加算器または累算器212で出力信号y[n+1]に累算され、(2)MACユニット220の乗算器221の入力ノード224で受け取られた係数c[2]は被乗数x[n]を乗じられて、MACユニット220の加算器または累算器222で出力信号y[n+2]に累算され、(3)MACユニット230の乗算器231の入力ノード234で受け取られた係数c[3]は被乗数x[n]を乗じられて、MACユニット230の加算器または累算器232で出力信号y[n+3]に累算され、(4)MACユニット240の乗算器241の入力ノード244で受け取られた係数c[4]は被乗数x[n]を乗じられて、MACユニット240の加算器または累算器242で出力信号y[n+4]に累算される。結果は、信号線246を介してメモリ素子243からシフトアウトされ(shifted out)、必要に応じて、バッファー(図示せず)に記憶されて、その後のサイクルで、たとえば、係数c[1]の結果を累算するためにMACユニット210に戻される。
本発明の例示的な実施形態に従って、MACユニット210、220、230、および240の各々はすべてのサイクルで同じ係数入力を受け取り、すなわち、MACユニット210、220、230、および240の乗算器は、たとえば、所定の時間、一定または不変である、有限インパルス応答フィルタの係数を受け取る。たとえば、同じ係数値c[k]は、表1の列2に示されるように、指定されたk〜k+7すべてのサイクル間にMACユニット210の乗算器211の入力信号214で受け取られる。同様に、係数c[k+1]は、表1の列5に示されるように、8サイクル間にMACユニット220の乗算器221の入力ノード224で受け取られ、係数c[k+2]は、表2の列2に示されるように、すべてのサイクル間にMACユニット230の乗算器231の入力234で受け取られ、係数c[k+3]は、表2の列5に示されるように、8サイクル間にMACユニット240の乗算器241の入力244で受け取られる。
一部の例では、MACユニットの数は、各出力信号y[n]の計算に使用される係数の数より少なくてもよい。たとえば、各出力信号y[n]には8つのc[i]係数を使用してもよい。したがって、各出力信号に対する最初の4つの係数に基づいて累算を終了した後、累算は次の組の係数c[5]〜c[8]に対する各11の出力信号に対して続いてもよい。たとえば、MACユニット210は次のサイクル間に係数c[5]を受け取ってもよく、MACユニット220は次のサイクル間に係数c[6]を受け取ってもよく、MACユニット230は次のサイクル間に係数c[7]を受け取ってもよく、MACユニット240は次のサイクル間に係数c[8]を受け取ってもよい。
サイクルごとのデータ被乗数入力は、次のデータインデックスで置き換えられる。たとえば、サイクルkの後のMACユニット210において、データx[n]はデータx[n−1]で置き換えられ、サイクルk+mの後、データx[n−m]はデータx[n−m−1]で置き換えられる。したがって、サイクル2は、以下の演算を含む。すなわち、(1)MACユニット210の乗算器211の入力信号214で受け取られる係数c[1]は、被乗数x[n−1]を乗じられて、MACユニット210の加算器または累算器212で出力信号y[n]に累算され、(2)MACユニット220の乗算器221の入力信号224で受け取られる係数c[2]は、被乗数x[n−1]を乗じられて、MACユニット220の加算器222で出力信号y[n+1]に累算され、(3)MACユニット230の乗算器231の入力信号234で受け取られる係数c[3]は、被乗数x[n−1]を乗じられて、MACユニット230の加算器または累算器232で出力信号y[n+2]に累算され、(4)MACユニット240の乗算器241の入力信号244で受け取られる係数c[4]は、被乗数x[n−1]を乗じられて、MACユニット240の加算器242で出力信号y[n+3]に累算される。結果は、信号線246を介してメモリ素子243からシフトアウトされてもよく、必要に応じて、バッファ(図示せず)に記憶されて、その後のサイクルで、たとえば、係数c[1]の結果を累算するためにMACユニット210に戻されてもよい。
本発明の実施形態に従って、表1および2に示されるように、たとえば、8つの乗算項を有する所与の出力信号の場合、各乗算の出力結果は、異なる累算器あるいは加算器212、222、232、または242に累算され、ここで、各サイクルに対して別のMACユニットが使用される。最後のMACユニットでは、結果がマルチMACユニット200からシフトアウトされて、スケジュールの後の段階で新たな係数を累積するために使用される。
これは、累算器の出力結果を次のサイクルのために隣接するMACユニットにシフトすることによって実施される。たとえば、MACユニット210の加算器212のサイクルkにおける出力結果は、メモリ素子213および出力線216を介して次のサイクル用にMACユニット220の加算器222に移動、シフト、またはマッピングされる。表1で示されるように、MACユニット210の累算器212はサイクルkで出力信号y[n+k]を保持し、MACユニット220の累算器222は次のサイクルk+1で出力信号y[n+k]を保持する。さらに、MACユニット220の累算器222のサイクルk+1における出力結果は、メモリ素子223および出力線226を介して次のサイクル用にMACユニット230の加算器または累算器232に移動、シフト、またはマッピングされる。表2で示されるように、MACユニット230の累算器または加算器232は、サイクルk+2で出力信号y[n+k]を保持する。さらに、MACユニット230の累算器232のサイクルk+2における出力結果は、メモリ素子233および信号線236を介して次のサイクル用にMACユニット240の加算器242に移動、シフト、またはマッピングされる。表2で示されるように、MACユニット240の累算器または加算器242は、サイクルk+3で出力信号y[n+k]を保持する。出力信号y[n+k]に対するMACユニット240の累算器242の出力結果は、メモリ素子243および信号線246を介してマルチMACユニット200の最終結果としてシフトアウトされる。
表1および2で示されるように、図2によって実施されるスケジュールは、4つの「スタンドアロン」MACユニットを使用することに関連してワット損が減少し、各MACユニットは、4つすべての乗算器への入力としての同じ係数c[i]と、異なるデータ被乗数x[n−i]〜x[n+3−i]とを用いて異なる出力信号y[n]を累算する。「スタンドアロン」構成の次のサイクルで、係数c[i+1]は4つすべての乗算器への入力として使用され、各乗算器は次のデータ被乗数x[n−i−1]〜x[n+3−i−1]を使用する。表1および2で示されるスケジュールは、マルチMACアーキテクチャにおいて有用なMACユニットの数が出力信号における係数の数を超えないときには、最適であるかもしれないが、係数の数が有用なMACユニットあるいは同時に処理するMACユニットの数よりも多い場合には、出力の各々を記憶および再ロードするという点ではコスト高であるかもしれない。
図2には4つのMACユニットが図示さているが、マルチMACアーキテクチャは任意数のMACユニットに一般化されてもよいことを当業者は理解されたい。MACユニットの数がPであれば、出力信号y[n]はシフトアウトされる前にP回演算される。MACユニットの数がi係数の数よりも多いかi係数の数に等しいとき、表1〜2で示されるスケジュールは、ワット損および帯域幅の両方の点から効率的な最適スケジュールである。しかし、出力信号iの計算に使用される係数の数がMACユニットの数Pよりも多ければ、各出力信号y[n]の部分的な出力結果はマルチMACユニットに再ロードして戻される必要がある。部分的な出力信号結果の記憶および再ロード操作は、一定の条件において、記憶、帯域幅、およびワット損の点で効率を低下させ得る。
ここで、本発明の一部の実施形態に従って例示的なマルチMACユニットのブロック図である図3を参照する。マルチMACユニットなどのマルチMACユニットは、図1のプロセッサ101などのプロセッサなどの一部であってもよい。マルチMACユニット300は、複数のMACユニットまたは構造体、たとえば、MACユニット310、MACユニット320、MACユニット330、およびMACユニット340を含む。各マルチMACユニット310〜340は、それぞれ乗算器、加算器、および累算器を含む。マルチMACユニット300は、図2のマルチMACユニット200に類似しており、類似した素子は類似した数字で参照される。図3の例示的な説明では4つのMACユニットが示されているが、本発明は、この点に関して限定されず、本発明の実施形態に従って2つ以上のMACユニットが使用されてもよいことを当業者は理解されたい。
本発明の実施形態に従って、マルチMACユニット340のメモリ素子243は、信号線246を介してマルチMACユニット310の加算器212に結合される。マルチMACユニット300のアーキテクチャは、表3および4で示されるスケジュールの使用を可能にする。このようなスケジュールは、出力信号の計算に使用される係数の数がマルチMACユニットにおけるMAC構造体の数よりも多いとき適切である。
本発明の実施形態に従って、スケジュールは、4つのMACユニットを有するマルチMACユニット300によって実施される。各MACユニットは、4つのサイクル間に同じ係数オペランドを入力として受け取る。このとき、係数インデックスは、4だけインクリメントされる。一般に、P個のMACユニットを有するアーキテクチャは、係数インデックスを新しいインデックスk+Pで置き換える前に、Pサイクルの間、すべての乗算器への係数入力の係数インデックスkを維持する。このようなスケジュールは、結果を記憶する前に、すべてのi係数に対して出力y[n]で動作する間、乗算器のワット損を最適化し得る。
表3および4は、4サイクル間、同じ係数入力を使用し、この後、係数インデックスを4だけインクリメントし、別のサイクル間、新しい係数入力を使用する4並列のMACユニットに対するスケジュールを示す。このスケジュールでは、データ被乗数入力はサイクルごとに次のデータインデックスで置き換えられる。これら8サイクルの間、4つの出力信号が4つのMACユニット(y[n+k−3]〜y[n+k])によって処理されている。
Figure 2011034566
Figure 2011034566
表3および4で示されるように、係数c[k]は4サイクル間(サイクルk〜サイクルk+3)にMACユニット310の乗算器211の入力214で受け取られ、4サイクル後、係数c[k+4]は別の4サイクル間(サイクルk+4〜サイクルk+7)に同じ入力で受け取られる。表3および4でさらに示されるように、データ被乗数入力は、サイクルごとに次のデータインデックスで置き換えられる。たとえば、MACユニット310において、サイクルk後に、データx[n]はデータx[n−1]で置き換えられ、サイクルk+m後に、データx[n−m]はデータx[n−m−1]で置き換えられる。
これは、次のサイクル用に累算器の出力結果を隣接するMACユニットにシフトすることによって実施される。各乗算の出力は、サイクルごとに異なる累算器に累算される。たとえば、8つの乗算項を有する所与の出力信号では、各乗算の出力結果は、異なる累算器212、222、232、または242に累算され、この場合、各サイクルの間に別のMACユニットが使用される。4サイクル後、結果はチェーン240についてMACユニットからチェーン210の第1のMACユニットに移動される。
これは、次のサイクルのために累算器出力の各々を隣接するMACユニットにシフトすることによって実施される。最後のMACユニットの出力は、第1のMACユニットの加算器にシフトバックされる(shifted back)。
たとえば、MACユニット310の加算器212の出力216はMACユニット320の加算器222に移動され、MACユニット320の加算器222の出力226はMACユニット330の加算器232に移動され、MACユニット330の加算器232の出力236はMACユニット340の加算器242に移動され、出力246はMACユニット310の加算器212への入力としてシフトバックされる。
たとえば、MACユニット310の累算器212のサイクルkにおける出力結果は、次のサイクル用にMACユニット320の加算器222に信号線216を介して移動、シフト、またはマッピングされる。表3で示されるように、MAC310の累算器212は、サイクルkにおいて出力信号y[n+k]を保持し、MACユニット320の累算器222は次のサイクルk+1において出力信号y[n+k]を保持する。さらに、MACユニット320の累算器222のサイクルk+1における出力結果は、次のサイクル用にMACユニット330の加算器232に信号線226を介して移動、シフト、またはマッピングされる。表4で示されるように、MACユニット330の累算器232は、サイクルk+2において出力信号y[n+k]を保持する。さらに、MACユニット330の累算器232のサイクルk+2における出力結果は、次のサイクル用にMACユニット340の加算器242に信号線236を介して移動、シフト、またはマッピングされる。表4で示されるように、MACユニット340の累算器242は、サイクルk+3において出力信号y[n+k]を保持する。出力信号y[n+k]に対するMACユニット340の累算器242のサイクルk+3における出力結果は、信号線246を介してMACユニット310の累算器または加算器212にシフトバックされる。
スケジュールは別の4サイクル間続き、出力信号y[n+k]に対するマルチMACユニットの最終出力結果は、8つのすべての係数に対するすべての乗算を含む。
4つのMACユニットを有する図3に示されるマルチMACアーキテクチャにおいて、加算器の各出力y[n]は、4回演算され、第1の加算器212にシフトバックされる前に4つの乗算器の4つの乗算の結果が累算される。このアーキテクチャはP個のMACユニットを有するアーキテクチャに一般化されてもよく、この場合、各出力はシフトバックされる前にP回演算されてもよいことを当業者は理解されたい。
図3で示されるシステムおよび方法の実際の実験結果から、このようなアーキテクチャは、各々が「スタンドアロン」MACとして働く複数のMACユニットを有するシステムと比較して、およそ23%の省電力を実現し得ることを証明した。23%の省電力は、ランダム係数入力およびランダムデータ入力を用いて測定された。多くのアプリケーションで見られるランダム係数入力および緩慢に変化するデータ入力を採用したところ、各々が「スタンドアロン」MACとして動作する複数のMACユニットを有するシステムと比較して、およそ50%の省電力が得られた。
ここで、本発明の実施形態に従って例示的なマルチMACユニットのブロック図である図4を参照する。たとえば、マルチMACユニット400は、たとえば、図1のマルチMACユニット110として実施される。本発明の実施形態に従って、マルチMACユニット400のアーキテクチャは、2つ以上のスケジュールの実施を可能にする。マルチMACユニット400は、複数のMACユニットまたはMAC構造体、たとえば、MACユニット410、MACユニット420、MACユニット430、およびMACユニット440を含む。図4の例示的な説明では4つのMACユニットが示されているが、本発明はこの点に関して限定されず、本発明の実施形態に従って2つ以上のMACユニットが使用されてもよいことを当業者は理解されたい。
MACユニット410〜440の各々は、MACユニット200および300と同様に、乗算器、加算器、およびメモリ素子を含み、さらにマルチプレクサを含む。たとえば、MACユニット410はマルチプレクサ419を含み、MACユニット420はマルチプレクサ429を含み、MACユニット430はマルチプレクサ439を含み、MACユニット440はマルチプレクサ449を含む。
累算器の出力は別のMACユニットにシフトされてサイクルごとに異なる累算器に累算されるか、あるいは、同じ加算器に累算される。MACユニット410、420、430、および440の各々において、加算器の出力を同じ加算器への入力として使用するか、それとも加算器の出力を隣接するMACユニットの加算器への入力としてシフトするかどうかに関して選択がなされる。このような論理は、図4で示されるマルチプレクサ419、429、439、および449によって実施される。マルチプレクサ429は、加算器212の出力と加算器222の出力から選択し、出力の一方を加算器222の入力に移動する。マルチプレクサ439は、加算器222の出力と加算器232の出力から選択し、出力の一方を加算器232の入力に移動する。マルチプレクサ449は、加算器232の出力と加算器242の出力から選択し、出力の一方を加算器242の入力に移動する。マルチプレクサ419は、加算器212の出力と加算器242の出力から選択し、出力の一方を加算器212の入力に移動する。
図4に示されるアーキテクチャは任意数のMACユニットを備えるアーキテクチャに一般化されてもよいことを当業者は理解されたい。2つのMACユニット、すなわち、第1および第2のMACユニットを備えるアーキテクチャを有する本発明の実施形態は、第1の加算器の出力または第2の加算器の出力のいずれかを第1の加算器への入力として選択するための第1のマルチプレクサと、第2の加算器の出力または第1の加算器の出力のいずれかを第2の加算器への入力として選択するための第2のマルチプレクサとを含む。
ここで、本発明の実施形態に従って多数のMACユニットでのMAC演算をスケジュールする方法のフローチャートである図5を参照する。方法の演算は、たとえば、図1のマルチMACユニット110、図2のマルチMACユニット200、図3のマルチMACユニット300、および/または他の適切なユニット、デバイス、および/またはシステムによって実施される。
ボックス500で示されるように、方法は、2つ以上の乗加算器またはMACユニットのチェーンの各乗加算器によってオペランドを受け取るステップを含む。各MACユニットは、少なくとも1つの乗算器および加算器を含む。たとえば、2−MACユニットの実施は、第1のMACユニット「A」および第2のMACユニット「B」を含む。MACユニット[A]は第1の乗算器「A」および第1の加算器「A」を含み、MACユニット[B]は第2の乗算器「B」および第2の加算器「B」を含む。
ボックス510で示されるように、方法は、MACユニットの各々の乗算器によって、受け取られたオペランドを乗じることを含む。たとえば、方法は、第1の乗算器「A」によって2つのオペランドを乗じること、第2の乗算器「B」によって他の2つのオペランドを乗じることを含む。乗算は同時に実行されてもよく、たとえば、乗算プロセスはクロック信号によって同期化されてもよい。本発明の実施形態に従って、第1の乗算器によって乗じられる2つのオペランドの一方は、所定期間、たとえば、所定クロックサイクル間一定であり、第2の乗算器によって乗じられる2つのオペランドの一方は、所定期間、たとえば、所定クロックサイクル間一定である。
ボックス520で示されるように、方法は、第2の乗算器「B」の積を第2の加算器「B」によって第1の加算器「A」の出力に加算することを含む。第1の乗算器「A」の積が、たとえば、図2で示されるように、第1の加算器「A」への唯一の入力である場合、第1の加算器「A」の出力は、第1の乗算器「A」の積と同じである。一部の実施形態において、加算器「A」は、別の入力、たとえば、図3で示され、さらにボックス530で示されるように、第2の加算器「B」から出力される記憶された結果を受け取るので、第1の加算器「A」の出力は第1の乗算器「A」の積とは異なる。加算器「A」および加算器「B」の加算結果の各々は、専用のクロックメモリ素子、たとえば、D型フリップフロップ素子に移動されて記憶される。たとえば、第2の乗算器「B」の積と第1のMACユニットの第1の加算器「A」の出力との和は、所定期間、たとえば、1クロックサイクル間、第1の加算器「A」に結合された第1のメモリ素子に保存される。
本発明の一部の実施形態に従って、ボックス530で示されるように、方法は、オプションとして、第2の加算器「B」の出力を第1の加算器「A」によって第1の乗算器「A」の積に加算することを含む。第2の加算器「B」の累算された出力結果は次のクロックサイクルにおいて第1の乗算器「A」の結果に加算されていること、すなわち、第2の加算器「B」の累算された出力結果は乗算器「A」によって2つの新しいオペランドを乗じる結果に加算されていることを当業者は理解されたい。
図5の方法の例示的なフローチャートには2つのMACユニットが示されているが、本発明はこの点に関して限定されず、本発明の実施形態に従って、MACユニットのチェーンが2つ以上のMACユニットを含んでいてもよいことを当業者は理解されたい。2つ以上のMACユニットを有する任意の実施において、MACユニットの各々の各加算器はその出力を連続的に後続または隣接するMACユニットの加算器に移動してもよいが、第1のMACユニットの第1の加算器は最後の加算器の出力を受け取ってもよく、この出力を次のサイクルで第1のMACの第1の乗算器の積、すなわち、第1の乗算器によって乗じられる次の2つのオペランドの積に加算してもよい。本発明の実施形態に従って、他の演算または何組かの演算が使用されてもよい。
本発明の実施形態は、コンピュータまたはプロセッサ可読媒体、あるいは、コード化命令または記憶命令、たとえば、プロセッサまたはコントローラによって実行されるとき本明細書で開示された方法を実行するコンピュータ実行可能命令を含む、たとえば、メモリ、ディスクドライブ、またはUSBフラッシュメモリなどのコンピュータまたはプロセッサ記憶媒体などの品目を含んでいてもよい。
本発明の実施形態は、複数の中央処理装置(CPU)またはその他の適切な多目的または特定のプロセッサまたはコントローラ、複数の入力ユニット、複数の出力ユニット、複数のメモリユニット、複数の記憶ユニットなどの構成要素を含んでいてもよいが、これらに限定されない。このようなシステムは、さらに、他の適切なハードウェア構成要素および/またはソフトウェア構成要素を含んでいてもよい。一部の実施形態において、このようなシステムは、たとえば、パーソナルコンピュータ、デスクトップコンピュータ、モバイルコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、端末、ワークステーション、サーバーコンピュータ、携帯端末(PDA)デバイス、タブレットコンピュータ、ネットワークデバイスなど適切なコンピュータデバイスを含んでいてもよく、あるいはこれらのデバイスであってもよい。
本発明のいくつかの特徴が本明細書において図示され説明されてきたが、ここで多くの修正形態、代替形態、変更形態、および等効物が当業者に思い浮かぶであろう。したがって、添付の特許請求の範囲は本発明の真の趣旨の範囲内に入るようなすべての修正形態および変更形態を網羅することが意図されていることを理解されたい。
本発明の実施形態に従って、最小値の「P」を有するアーキテクチャは、2つのMACユニットに等しく、すなわち、第1および第2のMACユニットを含んでいてもよく、第1のMACユニットは第1の乗算器および第1の加算器を備えていてもよく、第1の乗算器は2つのオペランドを受け取って乗じてもよく、第2のMACユニットは第2の乗算器および第2の加算器を備えていてもよく、第2の乗算器は2つのオペランドを受け取って乗じてもよく、第2の加算器は第2の乗算器の積を受け取って第1の加算器の出力に加算してもよい。第1の加算器は、オプションとして、第1の乗算器の積を受け取って第2の加算器(図3で示される)の出力に加算してもよく、あるいは、第1の加算器は、オプションとして、第1の乗算器の積を受け取って事前に記憶された出力に加算してもよい。別の実施形態は、第3の乗算器および第3の加算器を備える第3のMACユニットをさらに備えていてもよく、第3の乗算器は2つのオペランドを受け取って乗じてもよく、第3の加算器は第3の乗算器の積を受け取って第2の加算器の出力に加算してもよい。第1の加算器は、オプションとして、第1の乗算器の積を受け取って第3の加算器(図3で示される)の出力に加算してもよい。
本発明の実施形態に従って、第1の乗算器によって受け取られる2つのオペランドの一方は、所定期間、たとえば、所定数のクロックサイクル間に同じであってもよく、第2の乗算器によって受け取られる2つのオペランドの一方は、所定期間、たとえば、所定数のクロックサイクル間同じであってもよい。第1のMACユニットは、所定期間、たとえば、所定数のクロックサイクル間第1の加算器の出力を保持するための第1のメモリ素子をさらに備えていてもよく、第2のMACユニットは、所定期間、たとえば、所定数のクロックサイクル間第2の加算器の出力を保持するための第2のメモリ素子を備えていてもよい。
100 デバイス
101 プロセッサ
102 データ・メモリ・ユニット
103 プログラム・メモリ・ユニット
104 データ・メモリ・バス
105 プログラム・メモリ・バス
107 ロード/記憶ユニット
108 プログラム制御ユニット
109 メモリコントローラ
110 マルチMACユニット
111 算術論理ユニット(ALU)
112 機能ユニット
200、300、400 マルチMACユニット
201 クロック信号
210、220、230、240、310、320、330、340、410、420、410、420、430、440 MACユニット
211、221、231、241 乗算器
212、222、232、242 加算器
213、223、233、243 メモリユニットまたは素子
214、215、224、225、234、235、244、255 入力信号
216、226、236、246 出力線
226、236、246 信号線
419、429、439、449 マルチプレクサ
500、510、520、530 ボックス

Claims (15)

  1. 信号処理用装置であって、
    2つ以上の乗加算器のチェーンを備え、各乗加算器が乗算器および加算器を含み、前記チェーンの第1の乗加算器の出力結果が前記チェーンの第2の後続乗加算器の加算器への入力として供給されるように前記2つ以上の乗加算器が配置されている、信号処理用装置。
  2. 前記第2の乗加算器の前記乗算器は、2つのオペランドを受け取って乗じ、前記第2の乗加算器の前記加算器は、前記第2の乗加算器の前記乗算器からの出力結果と前記第1の乗加算器の出力とを受け取って加算する、請求項1に記載の装置。
  3. 前記チェーンの最後の乗加算器の出力結果が、前記チェーンの前記第1の乗加算器の加算器への入力として供給される、請求項1に記載の装置。
  4. 前記第1の乗加算器の前記加算器は、前記第1の乗加算器の前記乗算器の積と前記最後の乗加算器の前記出力結果とを加算すること、及び前記チェーンの前記最後の乗加算器の乗算器の積と事前に記憶された値とを加算することのうちの少なくとも一方を行う、請求項3に記載の装置。
  5. 前記チェーンの前記第1の乗加算器は、前記第1の乗加算器の前記加算器の前記出力または前記第1の乗加算器の前記加算器への入力としての前記最後の乗加算器の前記加算器の出力のいずれかを選択するマルチプレクサを備える、請求項3に記載の装置。
  6. 前記チェーンの乗加算器の乗算器は、有限インパルス応答フィルタの係数およびデータを受け取り、前記係数は所定の時間一定である、請求項1に記載の装置。
  7. 前記乗加算器の各々は、それぞれの加算器の出力を所定の時間保持するためのメモリ素子を備える、請求項1に記載の装置。
  8. 前記チェーンの前記乗加算器の少なくとも1つは、前記乗加算器の前記加算器の前記出力または先行する乗加算器の前記加算器の出力のいずれかを前記乗加算器の前記加算器への入力として選択するマルチプレクサを備える、請求項1に記載の装置。
  9. 信号を処理するための方法であって、
    2つ以上の乗加算器のチェーンの第1の乗加算器の出力結果を、前記チェーンの第2の後続乗加算器への入力として供給することを備え、前記乗加算器の各々は乗算器および加算器を含む、方法。
  10. 前記第2の乗加算器の前記乗算器によって2つのオペランドを乗じること、
    前記第2の乗加算器の加算器によって、前記第2の乗加算器の前記乗算器からの出力結果と前記チェーンの前記第1の乗加算器の加算器の出力とを加算すること
    をさらに備える、請求項9に記載の方法。
  11. 前記チェーンの最後の乗加算器の出力結果を、前記第1の乗加算器の加算器への入力として供給することをさらに備える、請求項9に記載の方法。
  12. 前記第1の乗加算器の前記加算器によって、前記第1の乗加算器の前記乗算器の積を前記最後の乗加算器の前記出力結果に加算することをさらに備える、請求項11に記載の方法。
  13. 前記チェーンの前記乗加算器の少なくとも1つのマルチプレクサによって、前記乗加算器の前記加算器の前記出力または先行する乗加算器の加算器の出力のいずれかを前記乗加算器の前記加算器への入力として選択することをさらに備える、請求項11に記載の方法。
  14. 前記第1の乗加算器の前記加算器によって、前記最後の乗加算器の乗算器の積を事前に記憶された値に加算することをさらに備える、請求項11に記載の方法。
  15. 前記チェーンの乗加算器の乗算器によって、有限インパルス応答フィルタの係数およびデータを受け取って前記係数を所定の時間一定に保つことをさらに備える、請求項9に記載の方法。
JP2010173110A 2009-07-30 2010-07-30 マルチmacアーキテクチャにおける低電力firフィルタ Active JP5544240B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/512,032 US8706791B2 (en) 2009-07-30 2009-07-30 Low power fir filter in multi-MAC architecture
US12/512,032 2009-07-30

Publications (3)

Publication Number Publication Date
JP2011034566A true JP2011034566A (ja) 2011-02-17
JP2011034566A5 JP2011034566A5 (ja) 2013-09-12
JP5544240B2 JP5544240B2 (ja) 2014-07-09

Family

ID=43216926

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010173110A Active JP5544240B2 (ja) 2009-07-30 2010-07-30 マルチmacアーキテクチャにおける低電力firフィルタ

Country Status (4)

Country Link
US (1) US8706791B2 (ja)
EP (1) EP2280341B1 (ja)
JP (1) JP5544240B2 (ja)
CA (1) CA2711027C (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020046642A1 (en) * 2018-08-31 2020-03-05 Flex Logix Technologies, Inc. Multiplier-accumulator circuit, logic tile architecture for multiply-accumulate and ic including logic tile array
JP7165018B2 (ja) * 2018-10-03 2022-11-02 キヤノン株式会社 情報処理装置、情報処理方法
US11194585B2 (en) 2019-03-25 2021-12-07 Flex Logix Technologies, Inc. Multiplier-accumulator circuitry having processing pipelines and methods of operating same
US11314504B2 (en) 2019-04-09 2022-04-26 Flex Logix Technologies, Inc. Multiplier-accumulator processing pipelines and processing component, and methods of operating same
US11288076B2 (en) 2019-09-13 2022-03-29 Flex Logix Technologies, Inc. IC including logic tile, having reconfigurable MAC pipeline, and reconfigurable memory
US11455368B2 (en) 2019-10-02 2022-09-27 Flex Logix Technologies, Inc. MAC processing pipeline having conversion circuitry, and methods of operating same
US11693625B2 (en) 2019-12-04 2023-07-04 Flex Logix Technologies, Inc. Logarithmic addition-accumulator circuitry, processing pipeline including same, and methods of operation
US11960856B1 (en) 2020-01-15 2024-04-16 Flex Logix Technologies, Inc. Multiplier-accumulator processing pipeline using filter weights having gaussian floating point data format
US11442881B2 (en) 2020-04-18 2022-09-13 Flex Logix Technologies, Inc. MAC processing pipelines, circuitry to control and configure same, and methods of operating same
US11604645B2 (en) 2020-07-22 2023-03-14 Flex Logix Technologies, Inc. MAC processing pipelines having programmable granularity, and methods of operating same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0844703A (ja) * 1994-07-28 1996-02-16 Fujitsu Ltd 積和演算器
JPH1196136A (ja) * 1997-09-24 1999-04-09 Fujitsu Ltd 積和演算モジュール
JP2002073586A (ja) * 2000-08-28 2002-03-12 Matsushita Electric Ind Co Ltd 演算処理装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5931892A (en) * 1996-12-20 1999-08-03 Compaq Computer Corporation Enhanced adaptive filtering technique
US5862063A (en) * 1996-12-20 1999-01-19 Compaq Computer Corporation Enhanced wavetable processing technique on a vector processor having operand routing and slot selectable operations
US6978287B1 (en) * 2001-04-04 2005-12-20 Altera Corporation DSP processor architecture with write datapath word conditioning and analysis
US7570704B2 (en) * 2005-11-30 2009-08-04 Intel Corporation Transmitter architecture for high-speed communications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0844703A (ja) * 1994-07-28 1996-02-16 Fujitsu Ltd 積和演算器
JPH1196136A (ja) * 1997-09-24 1999-04-09 Fujitsu Ltd 積和演算モジュール
JP2002073586A (ja) * 2000-08-28 2002-03-12 Matsushita Electric Ind Co Ltd 演算処理装置

Also Published As

Publication number Publication date
US8706791B2 (en) 2014-04-22
JP5544240B2 (ja) 2014-07-09
CA2711027C (en) 2016-05-10
EP2280341B1 (en) 2013-06-05
EP2280341A1 (en) 2011-02-02
CA2711027A1 (en) 2011-01-30
US20110029589A1 (en) 2011-02-03

Similar Documents

Publication Publication Date Title
JP5544240B2 (ja) マルチmacアーキテクチャにおける低電力firフィルタ
US8271571B2 (en) Microprocessor
KR100715770B1 (ko) 연산을 수행하는 방법 및 시스템 및 장치
US8443170B2 (en) Apparatus and method for performing SIMD multiply-accumulate operations
Meher Hardware-efficient systolization of DA-based calculation of finite digital convolution
Shieh et al. Word-based Montgomery modular multiplication algorithm for low-latency scalable architectures
US8239442B2 (en) Computing module for efficient FFT and FIR hardware accelerator
KR20050065673A (ko) 연산을 수행하기 위한 방법, 시스템 및 장치
JPH10187438A (ja) 乗算器の入力に対する遷移を減少させる方法
JPS6125188B2 (ja)
Meher Systolic designs for DCT using a low-complexity concurrent convolutional formulation
CN113853601A (zh) 用于矩阵运算的装置和方法
Lin et al. Scalable montgomery modular multiplication architecture with low-latency and low-memory bandwidth requirement
Meher New approach to LUT implementation and accumulation for memory-based multiplication
US9632752B2 (en) System and method for implementing a multiplication
EP2851786A1 (en) Instruction class for digital signal processors
US20100146024A1 (en) Digital filter, its synthesizing device, synthesizing program and synthesizing program recording medium
CN112074810B (zh) 并行处理设备
Sakellariou et al. Application-specific low-power multipliers
Kumar et al. Analysis of low power, area and high speed multipliers for DSP applications
EP1936492A1 (en) SIMD processor with reduction unit
JP2009245296A (ja) 積和演算回路
Shahid et al. A generic approach to the development of coprocessors for elliptic curve cryptosystems
KR100386979B1 (ko) 갈로아체상에서 비트 직렬 승산기의 병렬화 방법 및 이를이용한 직병렬 승산기
CN108140017B (zh) 用于线性相位有限脉冲响应抽取滤波器的方法和装置

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130726

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130726

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20130726

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20130814

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130820

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131113

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140212

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140415

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140512

R150 Certificate of patent or registration of utility model

Ref document number: 5544240

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250