JP5478068B2 - 改善されたパイプライン化デジタル信号プロセッサ - Google Patents

改善されたパイプライン化デジタル信号プロセッサ Download PDF

Info

Publication number
JP5478068B2
JP5478068B2 JP2008537767A JP2008537767A JP5478068B2 JP 5478068 B2 JP5478068 B2 JP 5478068B2 JP 2008537767 A JP2008537767 A JP 2008537767A JP 2008537767 A JP2008537767 A JP 2008537767A JP 5478068 B2 JP5478068 B2 JP 5478068B2
Authority
JP
Japan
Prior art keywords
random access
access memory
memory array
local
spill
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.)
Expired - Fee Related
Application number
JP2008537767A
Other languages
English (en)
Other versions
JP2009514097A (ja
Inventor
ジェームス・ウィルソン
ジョシュア・エー・カブロツキー
ヨゼフ・ステイン
コルム・ジェイ・プランダガスト
グレゴリー・エム・ヤンカ
クリストファー・エム・メイヤー
Original Assignee
アナログ デバイシーズ インク
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 アナログ デバイシーズ インク filed Critical アナログ デバイシーズ インク
Publication of JP2009514097A publication Critical patent/JP2009514097A/ja
Application granted granted Critical
Publication of JP5478068B2 publication Critical patent/JP5478068B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

この発明は、計算ユニット及びアドレスユニットの間のパイプラインストールを回避するパイプライン化されたデジタル信号プロセッサに関する。
コンピュータのスピードが33MHzから1.2GHz及びそれ以上に増加し、コンピュータ動作は、1サイクルでは完了できなくなった。結果として、より高いプロセッサのより高いパフォーマンスの効率的な使用をする、及びそれらのスループットを改善するために、パイプライン化技術が採用された。目下、深いパイプライン化は、25又はより多くのステージを使用する。一般的な、パイプライン化された計算システムでは、各ブロックが全体の処理の異なる部分を処理している、いくつかの並列構築ブロックが同時に動作している。例えば、計算をする計算ユニットであり、アドレスユニットは、選択されたアドレスモードによりメモリ内のデータをフェッチ及び格納するデータアドレス生成器(DAG)と、命令をデコード及び配布するシーケンサ又は制御回路とを具備するものがある。DAGは、前記メモリをアドレスすることが可能である唯一つの構成要素である。このように、深くパイプライン化されたシステムでは、もし命令が他の1つの結果に依存するならば、前記パイプラインが停止し、動作状態に復帰する前に、邪魔な命令が終了するのを待機するパイプラインストールが発生する。例えば、もし計算の後に、次のデータフェッチのために、計算ユニットの出力がDAGに必要であるならば、前記出力は、データフェッチの準備をするDAGに直接に配送することはできない。前記出力は、次のデータフェッチ及び計算を行うように前記DAGによって処理されうる前に、前記パイプラインを通って伝播しなければならない。前記DAGのみがメモリへのアクセスを具備するとともに、所望のデータを位置指定するためのアドレスポインタに計算結果を変換しうるためである。マルチタスク化された汎用コンピュータでは、このストールは、重大ではないかもしれないが、例えば携帯電話、デジタルカメラ内で使用されるような、リアルタイムコンピュータシステム内では、これらのストールは問題である。
それ故、計算ユニット及びアドレスユニットの間のパイプラインストールを最小化するための改善されたパイプライン化されたデジタル信号プロセッサを提供するのが、この発明の目的である。
ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーを採用する計算ユニット及びアドレスユニットの間のパイプラインストールを最小化するような改善されたパイプライン化されたデジタル信号プロセッサを提供するのが、この発明のさらなる目的である。
増加されたパフォーマンス効率を具備する、計算ユニット及びアドレスユニットの間のパイプラインストールを最小化するような改善されたパイプライン化されたデジタル信号プロセッサを提供するのが、この発明のさらなる目的である。
並列(parallel)及び直列に(serially)フィル及びスピルされうる、計算ユニット及びアドレスユニットの間のパイプラインストールを最小化するような改善されたパイプライン化されたデジタル信号プロセッサを提供するのが、この発明のさらなる目的である。
関数セット内に格納された前記1つ又は複数の値が更新されたときに、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーが、選択的、条件的にスピルされる、計算ユニット及びアドレスユニットの間のパイプラインストールを最小化するような改善されたパイプライン化されたデジタル信号プロセッサを提供するのが、この発明のさらなる目的である。
各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内で、1対1ベースで、結果を関数にマッピングするように、又は、結果入力を、各単一のローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーによって表される関数の部分によって構成される1つの混成出力関数にマッピングするように、複数のローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの間で共有される入出力レジスタを採用する、計算ユニット及びアドレスユニットの間のパイプラインストールを最小化するような改善されたパイプライン化されたデジタル信号プロセッサを提供するのが、この発明のさらなる目的である。
前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーは、通常の計算ユニット内に適合するのに充分小さく、かつ、1サイクルでアクセス可能であり、それでもなお前記計算ユニットの殆どのアプリケーションを内部的にサポートするのに充分大きいような、計算ユニット及びアドレスユニットの間のパイプラインストールを最小化するような改善されたパイプライン化されたデジタル信号プロセッサを提供するのが、この発明のさらなる目的である。
前記計算ユニットの結果を、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内に格納されている関連関数に直接にマッピングすることによって、パイプラインストールのペナルティを回避する、計算ユニット及びアドレスユニットの間のパイプラインストールを最小化するような改善されたパイプライン化されたデジタル信号プロセッサを提供するのが、この発明のさらなる目的である。
計算ユニット及びアドレスユニットの間のパイプラインストールを最小化するための新規である改善されたパイプライン化されたデジタル信号プロセッサは、アルゴリズムからの命令に応答して結果を計算するとともに、計算結果の関連関数への前記計算ユニット内部での直接マッピングを提供するために、前記アルゴリズムの所定の命令セットに対する前記計算結果に関連付けられた所定の関数セットを格納するローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーを、各計算ユニットに具備する、1つ又は複数の計算ユニットを伴って達成されることの具現化に、本発明は由来する。
しかしながら、対象発明は、他の構成では、全てのこれらの目的を達成する必要はなく、かつ、本明細書の特許請求の範囲は、これらの目的を達成可能な構成又は方法に限定されるべきではない。
この発明は、アルゴリズムの命令に応答して結果を計算する少なくとも1つの計算ユニットを具備する、計算ユニット及びアドレスユニットの間のパイプラインストールを低減するための装置を具備するプロセッサを特徴づける。各計算ユニットは、所定の関数値のセットを格納するローカルランダムアクセスメモリアレーを具備する。計算結果の関連関数への直接マッピングを前記計算ユニット内部で提供するために、前記アルゴリズムの所定の命令セットの前記計算結果に関連付けられる。
好ましい構成では、前記計算ユニットによって共有されるレジスタファイルがあっても良い。全ての前記計算ユニットのローカルランダムアクセスメモリアレーは、前記レジスタファイルからの同一の値で並列にフィルされても良い。ローカルランダムアクセスメモリアレーは、前記レジスタファイルからの異なる値で並列にフィルされても良い。前記ローカルランダムアクセスメモリアレーは、前記レジスタファイルに並列にスピルされても良い。前記計算回路は、前記ランダムアクセスメモリアレーのセクション内に格納された1つ又は複数の関数値が更新されたときに指示するステータスデバイスを具備しても良い。前記ステータスデバイスは、前記ランダムアクセスメモリアレー内の関数値をスピルすべきか維持すべきかを決定するのに使用してもよい。前記計算結果の関連関数へのマッピングは、以前の計算結果のマッピングから独立であっても良い。前記計算結果前記関連関数へのマッピングは、1つの計算ユニットから他まで独立であっても良い。前記レジスタファイルからのレジスタは、複数の計算ユニット内の前記ランダムアクセスメモリアレーのインデックスとして使用しても良い。複数の計算ユニット内の前記ランダムアクセスメモリアレーの出力は、前記レジスタファイル内の単一のレジスタで組み合わされても良い。前記レジスタファイルからの異なるレジスタを、各計算ユニット内の前記ランダムアクセスメモリアレーへのインデックスとして使用しても良い。各計算ユニット内の各ランダムアクセスメモリアレーの出力は、前記レジスタファイル内の異なるレジスタ内に配置されても良い。前記ローカルランダムアクセスメモリアレーは、ルックアップテーブルを具備しても良い。前記計算ユニット内部で計算結果の関連関数への直接マッピングを提供するように、所定の関数値セットを前記ローカルランダムアクセスメモリアレー内に格納する制御ユニットがあっても良い。前記計算ユニットは、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内で、関連するデータセットを独立のアドレスに格納可能にするために、各ローカルランダムアクセスメモリアレーに関連付けられたテーブルベースレジスタを具備しても良い。
この発明は、また、アルゴリズムの命令に応答して、結果を計算する少なくとも1つの計算ユニットを具備する、計算ユニット及びアドレスユニットの間のパイプラインストールを低減するためのパイプライン化されたデジタル信号プロセッサを特徴づける。各計算ユニットは、計算結果の関連関数への直接マッピングを前記計算ユニット内部で提供するように、前記アルゴリズムの所定の命令セットの前記計算結果に関連付けて、所定の関数セットを格納するローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーを具備する。
好ましい構成では、前記計算ユニットによって共有されるレジスタファイルがあっても良い。前記レジスタファイルは、全ての計算ユニットのローカルに再構成可能なフィルに亘って並列に同一の値をフィルする入力レジスタを具備しても良い。スピルランダムアクセスメモリアレー前記レジスタファイルは、各前記計算ユニットのローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内に直列に異なる値をフィルする入力レジスタを具備しても良い。前記レジスタファイルは、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーから格納された値を並列にスピルする出力レジスタを具備しても良い。前記レジスタファイルは、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーから格納された値を直列にスピルする出力レジスタを具備しても良い。前記計算ユニットは、前記セクション内に格納された1つ又は複数の前記値が更新されたときに、前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの少なくとも1つのセクションから値をスピル可能にするステータスデバイスを具備しても良い。前記計算結果の関連関数へのマッピングは、以前の計算結果マッピングから独立であっても良い。前記レジスタファイルは、前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーによって共有される入力レジスタと、前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーによって共有される出力レジスタとを具備しても良い。前記入力レジスタは、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの異なる計算結果を受信しても良く、かつ前記出力レジスタは、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーからの異なる関数を表しても良い。前記入力レジスタは、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの同一の計算結果を受信しても良く、かつ前記出力レジスタファイルは、各前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーによって表された関数の部分によって構成される単一の関数を表しても良い。前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーは、ルックアップテーブルを具備しても良い。前記計算ユニット内部で、計算結果の関連関数への直接マッピングを提供するために、前記アルゴリズム内で所定の命令セットの前記計算結果に関連付けられた所定の関数セットを、前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内に格納する制御ユニットがあっても良い。
本発明は、アルゴリズムの命令に応答して、計算ユニット内で結果を計算する段階と、前記アルゴリズムの所定の命令セットの前記計算結果に関連付けて、所定の関数セットを、計算ユニット内のローカルランダムアクセスメモリアレーに格納する段階及び、前記計算ユニット内部で計算結果の関連関数への直接マッピングを提供する段階とを具備する、プロセッサ内の計算ユニット及びアドレスユニットの間のパイプラインストールを低減するための方法を特徴づける。
好ましい構成では、前記プロセッサは、前記計算ユニットによって共有されたレジスタファイルを具備しても良い。前記方法は、全ての前記計算ユニットのローカルランダムアクセスメモリアレーを前記レジスタファイルからの同一の値で並列にフィルする段階を具備しても良い。前記方法は、ローカルランダムアクセスメモリアレーを前記レジスタファイルからの異なる値で並列にフィルする段階を具備しても良い。前記方法は、前記ローカルランダムアクセスメモリアレーを前記レジスタファイルへ並列にスピルする段階を具備しても良い。前記方法は、前記ランダムアクセスメモリアレーのセクション内に格納された1つ又は複数の値が更新されたときに、前記計算回路内のステータスデバイス内で指示する段階をさらに具備しても良い。前記方法は、前記ランダムアクセスメモリアレー内の値をスピルすべきか維持すべきかを前記ステータスデバイス内で決定する段階をさらに具備しても良い。前記方法は、前記計算結果を関連関数へ、以前の計算結果マッピングから独立にマッピングする段階をさらに具備しても良い。前記方法は、前記計算結果を前記関連関数に、1つの計算ユニットから他まで独立にマッピングする段階をさらに具備する。前記レジスタファイルからのレジスタは、複数の計算ユニット内の前記ランダムアクセスメモリアレーへのインデックスとして使用しても良い。前記方法は、複数の計算ユニット内の前記ランダムアクセスメモリアレーの出力を、前記レジスタファイル内の単一のレジスタに組み合わせる段階をさらに具備しても良い。前記方法は、前記レジスタファイルからの異なるレジスタを、各計算ユニット内の前記ランダムアクセスメモリアレーへのインデックスとして使用する段階をさらに具備しても良い。前記方法は、前記レジスタファイル内の異なるレジスタ内の各計算ユニット内の各ランダムアクセスメモリアレーの出力を配置する段階をさらに具備しても良い。前記ローカルランダムアクセスメモリアレーは、ルックアップテーブルを具備しても良い。前記方法は、前記計算ユニット内部で、計算結果の関連関数への直接マッピングを提供するために、前記ローカルランダムアクセスメモリアレー内に、前記アルゴリズムの命令の所定のセットを格納する段階をさらに具備しても良い。各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内の独立のアドレスに、関連するデータセットを、前記計算ユニット内の各ローカルランダムアクセスメモリアレーに関連付けられたテーブルベースレジスタを使用して格納しても良い。
他の目的、次の特徴及び利点は、好ましい実施形態の説明及び添付図面から、当業者に想到可能である。
好ましい実施形態又は以下に開示された実施形態とは別に、この発明は、他の実施形態が可能であるとともに、種々の仕方で実施又は実行されても良い。このように、本発明は、次の説明で説明される、又は図面内で説明される構成要素の構成及び配置の詳細に、その応用例が限定されないことを理解すべきである。もし一実施形態のみが本明細書で説明されているならば、特許請求の範囲は、当該実施形態に限定されない。さらに、特定の除外、限定、又は放棄を体現する明確及び説得力のある証拠がない限りは、本明細書の特許請求の範囲は、限定的に読むべきではない。
図1には、1つ又は複数のデジタルアドレス生成器14,16を具備するアドレスユニット12と、プログラムシーケンサ18のような制御ユニットと、各々が、演算論理ユニット22、乗算/アキュムレータ24、シフタ26のような多くの回路を具備する、1つ又は複数の計算ユニット20を具備するデジタル信号プロセッサ10が示されている。詳細には、デジタル信号プロセッサ内に2,4、又はより多くの計算ユニットがある。デジタル信号プロセッサは、メモリバス28上で、プログラムメモリ32及びデータメモリ34又は追加のメモリ36を具備する、レベル1(L1)メモリ30のような1つ又は複数のメモリに接続されている。詳細には、メモリ30は、非常に高速及び非常に高価なレベル1メモリであっても良い。メモリ36は、あまり高価でなく、かつより遅いレベル3(L3)メモリであっても良い。DSP10は1GHz及びそれ以上で動作しているので、動作のサイクルは、非常に高速であり、前記アドレスユニット及び前記計算ユニットは、それらの動作を完了するのに複数のサイクルを必要とする。DSP10のスループットを改善するとともに、そのパフォーマンスを向上するために、それは、通常は、深くパイプライン化される。
パイプライン化された動作では、以前の命令の結果と、全てのプロセッサの並列構築ブロックに亘る後続の結果との間の依存関係がないときは、パイプライン効率は、維持される。しかしながら、もしそのような依存関係があるならば、前記パイプラインは、動作状態に復帰する前に、邪魔な命令が終了するのを停止及び待機する、パイプラインストールが発生しうる。例えば、もし、計算結果が直接に格納されることができず、当該計算結果の関連関数が発見されうるメモリ内のアドレスを生成するのに使用されなければならないならば、前記計算ユニット結果及び前記DAGの間に依存関係があり、それによって、前記パイプラインの滑らかな動作が破壊される。例で十分に説明される。
計算ユニットが、角度αの結果を計算するが、後続動作の実行で使用すべきなのは、その角度の関数、Sin(α)であると仮定する。すると、前記計算ユニットは、メモリ30又は36からその角度の正弦関数をフェッチするために、適切なアドレスをDAG14又は16が生成するアドレスユニット12に、計算結果を配送するとともに、その角度を取り戻すとともに、それを前記計算ユニットに提出しなければならない。この前記パイプライン内でのストール又は破壊は、時間を無駄にする。DSP10の1つの特徴は、アドレスユニット12及びアドレスユニット12のみが、メモリ30及び36をアドレス指定しうることである。このような、計算ユニットが動作するためにL1メモリ30又はL3メモリ36から情報を必要とするときはいつでも、DAG12レジスタがロードされるときよりも後に、前記計算ユニット結果がステージで有効になるという事実のために、パイプライン動作がストールする。
このことは、例えば、前記命令フェッチは4つのマシンサイクル、IF1,IF2, IF3,IF4を取ることがわかる、図2内のチャートに関してより良く理解されうる。デジタルアドレス生成は、2つのマシンサイクルDAGl、DAG2を必要とするとともに、前記データフェッチは、より多くの4つのマシンサイクルDFl,DF2,DF3,DF4を必要とする。前記計算動作は、計算結果Clを取得するのに、3サイクル、CFl,CF2,CF3を必要とする。このように、もしステージClからの計算ユニット結果が、次の命令の前記DAGによって必要とされるならば、それは、前記DAGレジスタがロードされる前に、前記パイプラインを「浮上(swim up)」するとともに、ステージDが実行されるのを待機しなければならない。これは、パイプラインストールのグラフィックによる例示である。
この発明に従って、この発明によるDSP10a内では、各計算ユニット20a,20b,20c,20d(図3)に、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー、例えば、ルックアップテーブル(LUT)50aが構成されている。計算ユニット28は、詳細には、特に、乗算器52と、多くの選択回路54及び56と、ガロア拡大体動作のような多項式乗算器58と、バレルシフタ60と、演算論理ユニット62と、アキュムレータ64、及び多重化器66とを具備しても良い。また、各計算ユニットは、レジスタファイル68を具備する。詳細には、複数の計算ユニット、例えば、図3内のように、計算ユニット20a,20b,20c,及び20dがあるならば、それらは、全て同一のレジスタファイル68を共有しても良い。各計算ユニットは、また、それ自身のローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー、LUT50a、50b、50c、及び50dを具備する。これらのローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーは、通常の計算ユニット内に適合するとともに、1サイクルでアクセス可能であるほど充分小さく、それにもかかわらず、それらは、外部メモリに行くとともにパイプラインストールをもたらすことなく、殆どのアプリケーションを前記計算ユニットで内部的にサポートするのには充分大きい。
DSP10aは、携帯電話を実施するのに使用しても良く、そのような場合には、全体の全体的携帯電話アルゴリズム(図4)は、多くのアプリケーションを具備しても良く、各々は、1つ又は複数の特定のアルゴリズムを具備しても良い。例えば、図4内に示された携帯電話アルゴリズムは、モデムアプリケーションに続けて、例えば、Advanced Encryption Standard(AES)を具備しても良い暗号化アプリケーションに続けて、例えば、可変長デコード(VLD)を使用しても良いMPEG−2、MPEG−4又はWMVのようなビデオ圧縮装置を具備しても良い。また、グラフィクスアプリケーション及び音声があっても良い。
この発明の、図4内で示されるような、一般的なアルゴリズムを実行するときの効果が、構造的な形式で、図5内で図説されている。前記レジスタファイル68a内の値が、バッファステージ70、乗算アレー72、他のパイプラインバッファステージ74、選択及び圧縮回路76、さらに他のパイプラインバッファステージ78、加算器80、多重化及び選択回路82及び最後に、そこから値がレジスタファイル68aにロードして戻されるアキュムレータ84を通って移動することが理解される。もし、レジスタファイル68a内に格納されたアキュムレータ84の前記出力の形式が、後続の命令の実行に適しているならば、前記計算ユニットは、外部メモリへのアクセスを必要としない。しかしながら、CFで、乗算器86及び88、及び、CF2で乗算器90及び92を使用して乗算が発生すると仮定するとともに、さらに、乗算器90及び92の前記出力は、後続の命令実行のためにLUTを使用してマップされる必要があると仮定する。次いで、前記計算ユニット結果が、データアドレス生成器レジスタがロードされるときよりも後のステージで有効であるという事実によりパイプラインストールを発生しうる、外部フェッチが実行される必要がある。しかしながら、この発明に従うと、乗算器90及び92の前記出力は、格納関数が乗算器90及び92からの前記計算結果に関連づけられているサイクルCF3の間に、前記計算ユニット内部でLUT94に案内されうる。これによって、結果96は、レジスタファイル68a内にあるときに、後続命令内での実行に適している正しい形式で、アキュムレータ84に出現し、このようにして、外部フェッチに必要とされる余計なサイクル時間の全てを節約するとともに、パイプラインストールを回避することを可能にする。
本発明の柔軟性は、入力レジスタ100を具備するレジスタファイル68bと、出力レジスタ102とが、多くの、この場合4つの、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー50a,50b,50c、及び50dによって共有され、各々が、少なくとも64個の8ビット値を具備する、図6内で理解される。DES暗号化アプリケーション内のそのような構成は、4つの異なる6−bitの計算値b,b,b,bを受信するとともに、4つの異なる値Sbox0,Sboxl,Sbox2、及びSbox3を出力レジスタ102で提供することが可能である。
その代わりに、通信タイプのアプリケーション、図7では、同一の計算結果bαが、1つの値の4つの部分を特定するように、入力レジスタ100cの各部分106,108,110,112内に配置されても良い。例えば、αの正弦の4つの部分が組み合わされたときに、それらがこのSin(α)の32ビット精度値を生成するように、各一部は、出力レジスタ102cの一部114,116,118,120内にあるとともに、8ビットである。各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー50a,50b、50c、50dは256の8ビット値を具備しても良く、それらのデータ構造は、多くの異なる仕方で配置されても良い。例えば、図8Aでは、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー50aは、8つの8ビット値130を提供し、又は、各々は、132,134,136,138のように、DES暗号化のための異なるS−box値を提供しても良い。140で、VLDデコードのように32ビット値を提供するように、前記データは、前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの全てに亘って構成されても良い。又はちょうど2つのローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー50a,50bが、16ビット精度の正弦値にアクセスするために142で採用されても良い。このように、データ構造は、非常に器用である。さらに、図8A内に示された一列の構成に限定される必要はない。それは、図8Bで示されているように、16ビット幅までの512個の位置を提供するように、2×2の構成であっても良い。図8Aでは、S−box値132,134,136,138のセットは、各メモリアレーLUT50a−dに亘って、同一の位置「63」内に格納されているが、これは、本発明に必要な限定ではない。テーブルベースレジスタ51a−dに、各アレーLUT50a−dを加算することによって、それらは、各アレー内の任意の異なる、利用可能な位置に格納されても良い。例えば、S−box23及び4、64個のエントリLUT134,136,138は、位置「0」で開始して格納されても良く、又はS−box2は、位置「0」で開始して格納されても良い一方で、S−box3,4及び136,138、は、位置「191」で開始して格納されても良い。このように、関連するデータセット、例えば、S−box1−4、l/GF(x1−4)は、全てのメモリアレー50a−dに亘って同一の位置に格納される必要はなく、各アレー内で独立のアドレスに格納されても良い。
256個に過ぎない8ビット値を伴うローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーが、パイプラインストールの回避に重要な効果をもたらしうるという事実は、図9−12を参照して説明される可変長デコード(VLD)アプリケーションに関して説明される。そのようなアプリケーションでは、可変長符号は、特定の符号値が、他のより多く度々発生するという事実を利用する。もし頻繁に発生する値に、短い長さの符号語が割り当てるとともに、頻度の低いものが、より長い符号語を使用して送信されるならば、効果的なビットレート低減が達成される。アナロジーとして、もし、英語テキストが送信されるならば、「a」、「e」、「i」は、短い符号語をもって送信される一方で、「z」は、長い符号語を使用して送信される。例えば、a,b,c,d,e,f…は、図9内のグラフィックによる図説によって示されるように、可変長キーで符号化される。シンボルaは0で、シンボルbは01で、シンボルcは100で、シンボルdは101で、シンボルeは110で、シンボルfは1110で、シンボルgは11110、等で表される。VLD入力ビットストリームの受信時に、ビットFIFOレジスタ140(図10)によって、nビットの検査が150(図11)でなされる。ここで、nは8に等しい。検査された8ビットフィールドは、前記計算ユニット内の、256個のVLD−LUTエントリへのアドレスとして使用される。前記LUTエントリは、(MSBが「1」にセットされる)特定済みシンボル152としてマークされても良く、又は、(MSBが「0」にセットされる)より多くのビットが、シンボル166を特定するのに必要であることをマークしても良い。シンボルが特定された場合は、前記LUTエントリは、デコードされたシンボルの値156と、次のシンボルの検査を開始するために、どれだけ多くのビット154を前記ビットストリームから除去(抽出)するかを保持する。より多くのビットが必要である場合166には、前記LUTエントリは、どれだけ多くの追加のビットストリームビットが、特定168を完了するのに必要であるかの指示と、8ビットより長い全てのシンボルの特定の役割を持つ他のL1−LUTへのポインタ176とを保持する。この処理は、LUTエントリが特定シンボル170としてマークされたときに停止する。図11内の最初の2つの実施例では、前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーは、内部的に全ての要求を満足し、外部メモリは必要なく、それ故パイプラインストールは回避されたことに留意する。しかしながら、第3例では、前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーは、要求を満足することができず、かつパイプラインストールを発生して外部メモリを参照しなければならない。
しかしながら、興味深い場合では、本発明は非常に成功する。例えば、図12内に示されるような、最大符号語サイズが16ビットであるMPEG−2VLDデコード処理では、可変長符号語特定処理は、第1が、8又はより少ないビットの最も起こりうる符号語(度々発生するシンボル)からなるグループである、3つの検査グループ(8,5,3)に分解しても良い。第2は、12より少ないとともに8つより大きいビットの符号語の全てからなるグループであり、最後は、12ビットより多くの他の頻度の低い符号語の全てからなるものである。前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーは、97.2%の確率で、最も起こりうる25個の符号語の第1グループを特定する。1つの計算ユニットLUT参照内で発生する追加の5ビットLl−LUT参照は、1.3+%の確率で発生する40個の符号語からなる第2グループを特定するとともに、第3の3ビットLl−LUT参照は、0.17+%の確率で発生する頻度の低い48個の符号語からなる第3グループを特定する。8 4 4検査列に対しては、類似の結果が出現する。このように、8 5 3又は8 4 4のどの仕方でそれがなされても、97%以上の時間で、前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーは、1回のLUT参照で前記符号語を特定可能である。さらに、任意のMPEG−2 VLD符号語を特定するのに必要とされる平均メモリアクセスは、前記8 5 3検査列に対しては、(1*0.97+2*0.013+3*0.0013)=1.005127であるとともに、前記8 4 4検査列に対しては、1.00708である。このことは、256個の8ビット構成の小ささのメモリを使用してこの発明を採用すると、内部及び外部メモリフェッチを組み合わせた平均ルックアップ時間は、1サイクルタイムより僅かに多くなるに過ぎないことを意味する。本発明は、このような、パイプライン化されたデジタル信号プロセッサで、際立った利点を与える。256個の8ビット又はそれより少ない構成が、この発明の利点を与えるのに充分な方で、いくつかの場合では、少しだけ多くすると、なお一層より多くの状況に対応可能となる。例えば、図13の、AES暗号化でのガロア拡大体乗算動作に対しては、ガロア拡大体の乗算値に128個の8ビット構成50a−dが必要とされるとともに、S−box値に他の256個の50a−dが対して必要とされ、全部でローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー当たり384個の8ビット構成のみが必要とされる。リードソロモンの実施に対しては、50a−dは、l/GF(x)値を具備する。
前記1つ又は複数のローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーは、入力レジスタ68e(図14)からの値を、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー50a,b,c,d…の全てに同時に同報通信することによって、並列にフィルされても良い。又は、それは、入力レジスタ68d(図15)から直列に、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー50a,b,c,d…へ別々になされても良い。そして、同様に、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー50a,b,c,d…のスピルは、それらの各々から、並列に出力レジスタ102e(図16)にされても良く、又は、一度に1つずつ、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー50a,b,c,d…から直列に出力レジスタ102d(図17)にされても良い。
フィル及びスピル動作は、全体のローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー50a,b,c,d上で処理する必要はなく、必要ならば、さらに時間及びリソースを節約するために、その一部に限って処理すれば良い。即ち、当該スピル動作は、条件的及び選択的であっても良い。例えば、計算ユニット20a(図18)では、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの各セクション200,202,204…は、異なる関数グループを具備しても良い。一般的アルゴリズムの全体(図4)が実行されると、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー50a(図18)のセクションは、必要ならば、一度に1セクションずつ、新しい情報で選択的にオーバーライトされる。しかしながら、もしそれらのセクションの1つ、例えば、202が、演算論理ユニット22aによって更新されたならば、ステータス回路206は、当該更新を検出するとともに、ベースレジスタ位置を記憶するとともに、当該セクション202の値は、それが必要とされるまで格納される、何らかの外部メモリ30又は36にスピルされる。もし、前記値のどれもが更新されていないならば、次いで、それは、単にオーバーライトされているとともに、やがて、元の値セットが、メモリ30又は36から通常のように回収される。
この発明による方法の簡単化された図説は、図19に示されている。プロセッサ内の計算ユニット内で、アルゴリズム300に従い結果の計算を開始する。次いで、前記アルゴリズムの所定の命令セットからの計算結果に関連付けられた所定の関数セットは、計算ユニット内のローカルランダムアクセスメモリアレー内に格納される(302)。前記計算結果は、次いで、304で、関連関数に直接にマップされる。
より詳細には、前記プロセッサは、前記計算ユニットによって共有されるレジスタファイルを具備する。全ての前記計算ユニットのローカルランダムアクセスメモリアレーは、前記レジスタファイルからの値で並列にフィルされる。前記値は、同一の値又は異なる値であっても良い。前記ローカルランダムアクセスメモリアレーは、同様に、並列に、前記レジスタファイルにスピルされても良い。前記ランダムアクセスメモリアレーの前記セクション内に格納された1つ又は複数の値が更新されたときに、計算ユニット内のステータスデバイス内で指示が生成される。次いで、前記ランダムアクセスメモリアレー内の値が、スピルされるべきか、維持されるべきかについての決定が、前記ステータスデバイスでなされても良い。前記計算結果の関連関数へのマッピングは、以前の計算結果マッピング又は1つの計算ユニットから他まで独立になされる。前記レジスタファイルからのレジスタは、前記ランダムアクセスメモリアレー及び複数の計算ユニットへのインデックスとして使用される。前記ランダムアクセスメモリアレー及び複数の計算ユニットの出力は、前記レジスタファイルの単一のレジスタに組み合わされても良い。前記レジスタファイルからの異なるレジスタが、各計算ユニット内の前記ランダムアクセスメモリアレーのインデックスとして使用されても良い。各計算ユニット内の各ランダムアクセスメモリアレーの出力は、前記レジスタファイル内の異なるレジスタ内に配置されても良い。前記ローカルランダムアクセスメモリアレーは、ルックアップテーブルを具備しても良い。前記計算ユニット内部の、前記計算結果の関連関数への直接マッピングを提供するために、前記アルゴリズムの所定の命令セットが、前記ローカルランダムアクセスメモリアレー内に格納されても良い。次いで、関連するデータセットは、前記計算ユニット内の各ローカルランダムアクセスメモリアレーに関連づけられるテーブルレジスタを使用して、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内の独立のアドレスに格納されても良い。
本発明の特定の特徴が、いくつかの図内で示され、及び他では示されていないが、これは便宜上のことに過ぎず、各特徴は、任意の又は全ての、本発明に従う他の特徴と組み合わされても良い。本明細書で使用されている語「含む」、「具備する」、「有する」及び「伴う」は、広範にかつ包括的に解釈されるべきであるとともに、いかなる物理的相互接続によっても限定されない。さらに、本出願で開示されたいかなる実施形態も、考えられる唯一の実施形態としてとらえるべきではない。
それに加えて、この特許出願の係属中に示されたいかなる補正も、出願された出願内に示された任意の請求項構成要素の放棄ではない。当業者は、全ての考えられる均等物を文言的に包摂する請求項を起草することを当然には期待できず、多くの均等物は補正時に予見不能であるとともに、(あるとすれば)何が放棄されるべきかについての適切な解釈の範囲外である。補正の基礎となる理由は、多くの均等物に対して、殆ど無関係であるに過ぎない。及び/又は、出願人には、補正されたいかなる請求項構成要素の特定の些細な代替物を説明するようには期待され得ない他の多くの理由がある。
他の実施形態は、当業者が想到可能であるとともに、特許請求の範囲内である。
図1は、外部メモリ及びメモリバスを伴う、従来技術のデジタル信号プロセッサ(DSP)の簡単化されたブロック図である。 図2は、DSP内での、命令フェッチ、データアドレス生成、データフェッチ、計算及びコミット動作を実施するのに必要とされるマルチサイクル段階を示す構造的チャートである。 図3は、この発明によるルックアップテーブル(LUT)として埋め込まれるローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーを具備する4つの計算ユニットの構造図であり、その1つをいくらか詳細に示している。 図4は、全体的アルゴリズム、及び、この発明によって実行可能な1つ又は複数の特定のアルゴリズムを各々が具備する、その構成アプリケーションの説明である。 図5は、計算結果の選択関数への計算ユニット内部での直接マッピングによってパイプラインストールを最小化する、この発明による計算ユニットの構造図である。 図6は、データ暗号化規格(DES/3DES)暗号化を実施する、共有レジスタファイルを伴う4つのローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの構造図である。 図7は、可変長デコード(VLD)を実施する、共有レジスタファイルを伴う4つのローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの構造図である。 図8Aは、4つのローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーのデータ構成がこの発明により配置される、多くのアレーの2,3個を説明する。 図8Bは、512個の16ビット値を取得する、4つのローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの他の配置の仕方を説明する。 図9は、シンボルa,b,c,…のVLD値を説明するチャートである。 図10は、VLD入力ストリームのnビットの検査のためのビットFIFOレジスタの図である。 図11は、VLDデコード動作内の2,3の段階を説明する図である。 図12は、MPEG−2で、VLDに対する動作の97%以上が、この発明によるパイプラインストールを最小化するローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内の、それ自体の256個の8ビット値を使用して、計算ユニット内部で達成しうることを示す表である。 図13は、Advanced Encryption Standard(AES)暗号化又はリードソロモン前方誤り訂正(FEC)のためのガロア拡大体乗算に使用されうる384個の8ビット値のみからなる、4つのローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの図である。 図14は、この発明によるローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内の並列及び直列、フィル及びスピル動作の図式説明である。 図15は、この発明によるローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内の並列及び直列、フィル及びスピル動作の図式説明である。 図16は、この発明によるローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内の並列及び直列、フィル及びスピル動作の図式説明である。 図17は、この発明によるローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内の並列及び直列、フィル及びスピル動作の図式説明である。 図18は、この発明によるローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内の条件的、選択的なスピルの図式説明である。 図19は、この発明の方法の簡単化されたフローチャートである。
符号の説明
10a DSP
20a 計算ユニット0
20b 計算ユニット1
20c 計算ユニット2
20d 計算ユニット3
50a LUT0
50b LUT1
50c LUT2
50d LUT3
52 乗算器
54 選択回路
56 選択回路
58 多項式乗算器
60 バレルシフタ
62 演算論理ユニット
64 アキュムレータ
66 多重化器

Claims (41)

  1. アルゴリズムの命令に応答して結果を計算する少なくとも1つの計算ユニットを具備し、
    前記計算ユニットは、
    (1)パイプラインの第1ステージ内の第1計算ユニットブロックと、
    (2)前記パイプラインの第2ステージ内の第2計算ユニットブロックと、
    (3)前記パイプラインの第2ステージ内部のローカルランダムアクセスメモリアレーとを具備し、前記アレーは、計算結果の1つ又は複数の関連関数への直接マッピングを前記計算ユニットのパイプライン内部で提供するように、前記アルゴリズムの所定の命令セットに対して前記計算結果に関連付けられる、所定の関数値セットを格納することによって、前記命令の実行中に該所定の関数値セットを取得することを目的とした外部フェッチを行うことを不要とし、該外部フェッチに起因したパイプラインストールの発生を回避し、
    前記計算ユニットは、前記ローカルランダムアクセスメモリアレーのセクション内に格納された1つ又は複数の関数値が更新されたことを示すステータスデバイスをさらに具備し、前記ステータスデバイスは、前記ローカルランダムアクセスメモリアレー内の関数値をスピルすべきか維持すべきか決定するとともに、前記ステータスデバイスは、セクション内に格納された1つ又は複数の値が更新されたときに、前記ローカルランダムアクセスメモリアレーの少なくとも1つの前記セクションからの前記値をスピル可能にする、ことを特徴とするプロセッサ。
  2. 前記計算ユニットによって共有されるレジスタファイルを具備することを特徴とする請求項1に記載のプロセッサ。
  3. 全ての前記計算ユニットのローカルランダムアクセスメモリアレーは、前記レジスタファイルからの同一の値で並列にフィル(Fill)されることを特徴とする請求項2に記載のプロセッサ。
  4. ローカルランダムアクセスメモリアレーは、前記レジスタファイルからの異なる値で並列にフィルされることを特徴とする請求項2に記載のプロセッサ。
  5. 前記ローカルランダムアクセスメモリアレーは、前記レジスタファイルに並列にスピル(Spill)されることを特徴とする請求項2に記載のプロセッサ。
  6. 前記計算結果の関連関数への前記マッピングは、他の計算結果マッピングから独立であることを特徴とする請求項1に記載の前記プロセッサ。
  7. 前記計算結果の前記関連関数への前記マッピングは、各計算ユニット間で独立であることを特徴とする請求項1に記載のプロセッサ。
  8. 前記レジスタファイル内のレジスタは、複数の計算ユニット内の前記ローカルランダムアクセスメモリアレーへのインデックスとして使用しうることを特徴とする請求項2に記載のプロセッサ。
  9. 複数の計算ユニット内の前記ローカルランダムアクセスメモリアレーの出力は、前記レジスタファイル内の単一のレジスタ内で合算されることを特徴とする請求項2に記載のプロセッサ。
  10. レジスタファイル内の異なるレジスタが、各計算ユニット内の前記ローカルランダムアクセスメモリアレーへのインデックスとして使用されることを特徴とする請求項7に記載のプロセッサ。
  11. 各計算ユニット内の各ローカルランダムアクセスメモリアレーの出力は、レジスタファイル内の異なるレジスタに配置されることを特徴とする請求項7に記載のプロセッサ。
  12. 前記ローカルランダムアクセスメモリアレーは、ルックアップテーブルを具備することを特徴とする請求項1に記載のプロセッサ。
  13. 前記計算ユニット内で計算結果の関連関数への直接マッピングを提供するように、所定の前記関数値セットを前記ローカルランダムアクセスメモリアレー内に格納する制御ユニットをさらに具備することを特徴とする請求項1に記載のプロセッサ。
  14. 前記計算ユニットは、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内で、関連するデータセットを独立のアドレスに格納可能にするように、各ローカルランダムアクセスメモリアレーに関連付けられたテーブルベースレジスタを具備することを特徴とする請求項1に記載のプロセッサ。
  15. アルゴリズムの命令に応答して結果を計算する少なくとも1つの計算ユニットを具備し、
    前記計算ユニットは、
    パイプラインの第1ステージ内の第1計算ユニットブロックと、
    前記パイプラインの第2ステージ内の第2計算ユニットブロックと、
    前記パイプラインの第2ステージ内部のローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーを具備し、前記アレーは、計算結果の1つ又は複数の関連関数への直接マッピングを前記計算ユニットのパイプライン内部で提供するように、前記アルゴリズムの所定の命令セットの前記計算結果に関連付けられた所定の値セットを格納することによって、前記命令の実行中に該所定の関数値セットを取得することを目的とした外部フェッチを行うことを不要とし、該外部フェッチに起因したパイプラインストールの発生を回避し、
    前記計算ユニットは、前記ランダムアクセスメモリアレーのセクション内に格納された1つ又は複数の関数値が更新されたことを示すステータスデバイスをさらに具備し、前記ステータスデバイスは、前記ランダムアクセスメモリアレー内の関数値をスピルすべきか維持すべきか決定するとともに、前記ステータスデバイスは、セクション内に格納された1つ又は複数の値が更新されたときに、前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの少なくとも1つの前記セクションからの前記値をスピル可能にする、ことを特徴とするパイプライン化されたデジタル信号プロセッサ。
  16. 前記計算ユニットによって共有されるレジスタファイルを具備することを特徴とする請求項15に記載のパイプライン化されたデジタル信号プロセッサ。
  17. 前記レジスタファイルは、全ての前記計算ユニットのローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーに亘って並列に同一の値をフィルする入力レジスタを具備することを特徴とする請求項16に記載のパイプライン化されたデジタル信号プロセッサ。
  18. 前記レジスタファイルは、各前記計算ユニットのローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内で、直列に異なる値をフィルする入力レジスタを具備することを特徴とする請求項16に記載のパイプライン化されたデジタル信号プロセッサ。
  19. 前記レジスタファイルは、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーから格納された値を並列にスピルする出力レジスタを具備することを特徴とする請求項16に記載のパイプライン化されたデジタル信号プロセッサ。
  20. 前記レジスタファイルは、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーから格納された値を直列にスピルする出力レジスタを具備することを特徴とする請求項16に記載のパイプライン化されたデジタル信号プロセッサ。
  21. 前記計算結果の関連関数値への前記マッピングは、他の計算結果マッピングから独立であることを特徴とする請求項15に記載のパイプライン化されたデジタル信号プロセッサ。
  22. 前記レジスタファイルは、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーによって共有される入力レジスタと、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーによって共有される出力レジスタとを具備することを特徴とする請求項16に記載のパイプライン化されたデジタル信号プロセッサ。
  23. 前記入力レジスタは、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの異なる計算結果を受信するとともに、前記出力レジスタは、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーからの異なる関数値を表すことを特徴とする請求項22に記載のパイプライン化されたデジタル信号プロセッサ。
  24. 前記入力レジスタは、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの同一の計算結果を受信するとともに、前記出力レジスタは、各前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーによって表される関数の部分によって構成される単一の関数値を表すことを特徴とする請求項22に記載のパイプライン化されたデジタル信号プロセッサ。
  25. 前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーは、ルックアップテーブルを具備することを特徴とする請求項15に記載のパイプライン化されたデジタル信号プロセッサ。
  26. 計算結果の関連関数への直接マッピングを、前記計算ユニット内で提供するように、前記アルゴリズム内の所定の命令セットの前記計算結果に関連付けられた所定の関数値セットを、前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内に格納する制御ユニットをさらに具備することを特徴とする請求項15に記載のパイプライン化されたデジタル信号プロセッサ。
  27. 前記計算ユニットは、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内で、関連するデータセットを独立のアドレスに格納可能にするために、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーに関連付けられたテーブルベースレジスタを具備することを特徴とする請求項15に記載のパイプライン化されたデジタル信号プロセッサ。
  28. アルゴリズムの命令に応答して、第1及び第2パイプラインステージを有する計算ユニット内で結果を計算する段階と、
    前記アルゴリズムの所定の命令セットの計算結果に関連付けられた所定の関数セットを、前記計算ユニット内の第2ステージ内のローカルランダムアクセスメモリアレーに格納する段階と、
    前記命令の実行中に該所定の関数値セットを取得することを目的とした外部フェッチを行うことを不要とし、該外部フェッチに起因したパイプラインストールの発生を回避するように、計算結果の1つ又は複数の関連関数への直接マッピングを前記計算ユニットの内部で提供する段階と、
    を具備する方法であって、
    前記方法は、
    前記ローカルランダムアクセスメモリアレーのセクション内に格納された1つ又は複数の値が更新されたことを、前記計算ユニット内のステータスデバイスにおいて示す段階と、
    前記ローカルランダムアクセスメモリアレー内の値をスピルすべきか維持すべきかを、前記ステータスデバイス内で決定する段階とをさらに具備し、前記ステータスデバイスは、セクション内に格納された1つ又は複数の値が更新されたときに、前記ローカルランダムアクセスメモリアレーの少なくとも1つの前記セクションからの前記値をスピル可能にする、ことを特徴とするプロセッサ内の計算ユニット及びアドレスユニットの間のパイプラインストールを低減する方法。
  29. 前記プロセッサは、前記計算ユニットによって共有されるレジスタファイルを具備することを特徴とする請求項28に記載の方法。
  30. 全ての前記計算ユニットのローカルランダムアクセスメモリアレーを、前記レジスタファイルからの同一の値で、並列にフィルする段階を具備することを特徴とする請求項29に記載の方法。
  31. ローカルランダムアクセスメモリアレーを、前記レジスタファイルからの異なる値で並列にフィルする段階を具備することを特徴とする請求項29に記載の方法。
  32. 前記ローカルランダムアクセスメモリアレーを前記レジスタファイルに並列にスピルする段階を具備することを特徴とする請求項29に記載の方法。
  33. 前記計算結果を関連関数へ、他の計算結果のマッピングとは独立にマッピングする段階をさらに具備することを特徴とする請求項28に記載の方法。
  34. 前記計算結果を、前記関連関数の値へ、各計算ユニット間で独立にマッピングする段階をさらに具備することを特徴とする請求項28に記載の方法。
  35. 前記レジスタファイル内のレジスタを、複数の計算ユニット内の前記ローカルランダムアクセスメモリアレーへのインデックスとして使用することを特徴とする請求項29に記載の方法。
  36. 複数の計算ユニット内の前記ローカルランダムアクセスメモリアレーの出力を、前記レジスタファイル内の単一のレジスタ内で合算する段階をさらに具備することを特徴とする請求項29に記載の方法。
  37. レジスタファイルからの異なるレジスタを、各計算ユニット内の前記ローカルランダムアクセスメモリアレーへのインデックスとして使用する段階をさらに具備することを特徴とする請求項34に記載の方法。
  38. レジスタファイル内の異なるレジスタ内の各計算ユニット内に各ローカルランダムアクセスメモリアレーの出力を配置する段階をさらに具備することを特徴とする請求項34に記載の方法。
  39. 前記ローカルランダムアクセスメモリアレーは、ルックアップテーブルを具備することを特徴とする請求項28に記載の方法。
  40. 前記計算ユニット内で、計算結果の関連関数値への直接マッピングを提供するために、前記ローカルランダムアクセスメモリアレー内に、前記アルゴリズムの命令の所定のセットを格納する段階をさらに具備することを特徴とする請求項28に記載の方法。
  41. 関連するデータセットは、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内の独立のアドレスに、前記計算ユニット内の各ローカルランダムアクセスメモリアレーに関連付けられたテーブルベースレジスタを使用して格納されることを特徴とする請求項28に記載の方法。
JP2008537767A 2005-10-26 2006-10-17 改善されたパイプライン化デジタル信号プロセッサ Expired - Fee Related JP5478068B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/258,801 US8024551B2 (en) 2005-10-26 2005-10-26 Pipelined digital signal processor
US11/258,801 2005-10-26
PCT/US2006/040510 WO2007050361A2 (en) 2005-10-26 2006-10-17 Improved pipelined digital signal processor

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013195215A Division JP2014038640A (ja) 2005-10-26 2013-09-20 改善されたパイプライン化デジタル信号プロセッサ

Publications (2)

Publication Number Publication Date
JP2009514097A JP2009514097A (ja) 2009-04-02
JP5478068B2 true JP5478068B2 (ja) 2014-04-23

Family

ID=37968363

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2008537767A Expired - Fee Related JP5478068B2 (ja) 2005-10-26 2006-10-17 改善されたパイプライン化デジタル信号プロセッサ
JP2013195215A Pending JP2014038640A (ja) 2005-10-26 2013-09-20 改善されたパイプライン化デジタル信号プロセッサ

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2013195215A Pending JP2014038640A (ja) 2005-10-26 2013-09-20 改善されたパイプライン化デジタル信号プロセッサ

Country Status (6)

Country Link
US (2) US8024551B2 (ja)
EP (1) EP1941378A4 (ja)
JP (2) JP5478068B2 (ja)
CN (1) CN101297279B (ja)
TW (1) TWI350479B (ja)
WO (1) WO2007050361A2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8285972B2 (en) * 2005-10-26 2012-10-09 Analog Devices, Inc. Lookup table addressing system and method
US7728744B2 (en) * 2005-10-26 2010-06-01 Analog Devices, Inc. Variable length decoder system and method
US8024551B2 (en) 2005-10-26 2011-09-20 Analog Devices, Inc. Pipelined digital signal processor
US8301990B2 (en) * 2007-09-27 2012-10-30 Analog Devices, Inc. Programmable compute unit with internal register and bit FIFO for executing Viterbi code
US8099655B1 (en) * 2007-12-20 2012-01-17 Pmc-Sierra Us, Inc. Galois field multiplier system and method
TW201123732A (en) * 2009-12-31 2011-07-01 Ind Tech Res Inst Processing devices
US9501285B2 (en) * 2010-05-27 2016-11-22 International Business Machines Corporation Register allocation to threads
CN101957743B (zh) * 2010-10-12 2012-08-29 中国电子科技集团公司第三十八研究所 并行数字信号处理器
US10261939B2 (en) * 2014-08-20 2019-04-16 Nxp Usa, Inc. Performing lookup table operations on a single-instruction multiple data processor
CN105356996B (zh) * 2015-12-14 2018-11-09 联想(北京)有限公司 一种密文处理方法、电子设备及密文处理装置
US20170315812A1 (en) * 2016-04-28 2017-11-02 Microsoft Technology Licensing, Llc Parallel instruction scheduler for block isa processor
US10453427B2 (en) 2017-04-01 2019-10-22 Intel Corporation Register spill/fill using shared local memory space
CN108052347B (zh) * 2017-12-06 2021-07-20 北京中科睿芯智能计算产业研究院有限公司 一种执行指令选择的装置、方法及指令映射方法

Family Cites Families (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1181461B (de) 1963-10-08 1964-11-12 Telefunken Patent Adressenaddierwerk einer programm-gesteuerten Rechenmaschine
US3805037A (en) 1972-02-22 1974-04-16 J Ellison N{40 th power galois linear gate
DE2407241A1 (de) 1974-02-15 1975-08-21 Ibm Deutschland Verfahren und anordnung zur erhoehung der verfuegbarkeit eines digitalrechners
DE3600905A1 (de) 1986-01-15 1987-07-16 Ant Nachrichtentech Verfahren zum dekodieren von binaersignalen sowie viterbi-dekoder und anwendungen
JPH01116730A (ja) * 1987-10-30 1989-05-09 Mitsubishi Electric Corp デイジタル信号処理プロセツサ
DE68925840T2 (de) 1988-04-27 1996-09-12 Nippon Electric Co Speicherzugriffssteuerungsvorrichtung, die aus einer verringerten Anzahl von LSI-Schaltungen bestehen kann
US5287511A (en) 1988-07-11 1994-02-15 Star Semiconductor Corporation Architectures and methods for dividing processing tasks into tasks for a programmable real time signal processor and tasks for a decision making microprocessor interfacing therewith
US5031131A (en) * 1988-11-14 1991-07-09 Eaton Corporation Direct digital synthesizer
US5062057A (en) 1988-12-09 1991-10-29 E-Machines Incorporated Computer display controller with reconfigurable frame buffer memory
DE3909996A1 (de) 1989-03-25 1990-10-04 Forschungszentrum Juelich Gmbh Rekuperativer keramischer waermeuebertrager
JPH03144694A (ja) * 1989-10-31 1991-06-20 Nippondenso Co Ltd デジタル画像表示用アドレス生成装置
JPH0492921A (ja) * 1990-08-03 1992-03-25 Fujitsu Ltd 指数関数演算器
CA2074769C (en) 1991-08-09 2001-03-20 International Business Machines Corporation Formula processor
US5386523A (en) 1992-01-10 1995-01-31 Digital Equipment Corporation Addressing scheme for accessing a portion of a large memory space
US5260898A (en) * 1992-03-13 1993-11-09 Sun Microsystems, Inc. Result cache for complex arithmetic units
US5351047A (en) 1992-09-21 1994-09-27 Laboratory Automation, Inc. Data decoding method and apparatus
JPH06110852A (ja) * 1992-09-29 1994-04-22 Hitachi Ltd ブロック状並列分散演算アレイプロセッサ
JP3124648B2 (ja) * 1993-03-19 2001-01-15 富士通株式会社 色データ管理方法及び装置
JPH06324658A (ja) * 1993-05-17 1994-11-25 Fuji Xerox Co Ltd 画像表示装置
KR0135846B1 (ko) 1994-02-02 1998-06-15 김광호 룩-업-테이블장치
US5530825A (en) * 1994-04-15 1996-06-25 Motorola, Inc. Data processor with branch target address cache and method of operation
US5832290A (en) 1994-06-13 1998-11-03 Hewlett-Packard Co. Apparatus, systems and method for improving memory bandwidth utilization in vector processing systems
US5507000A (en) * 1994-09-26 1996-04-09 Bull Hn Information Systems Inc. Sharing of register stack by two execution units in a central processor
US5689452A (en) 1994-10-31 1997-11-18 University Of New Mexico Method and apparatus for performing arithmetic in large galois field GF(2n)
US5710939A (en) 1995-05-26 1998-01-20 National Semiconductor Corporation Bidirectional parallel data port having multiple data transfer rates, master, and slave operation modes, and selective data transfer termination
US6029242A (en) 1995-08-16 2000-02-22 Sharp Electronics Corporation Data processing system using a shared register bank and a plurality of processors
CN101794212B (zh) * 1995-08-31 2015-01-07 英特尔公司 控制移位分组数据的位校正的装置
US5666116A (en) 1995-12-01 1997-09-09 U.S. Philips Corporation High speed variable-length decoder arrangement
JPH09270971A (ja) * 1996-04-01 1997-10-14 Matsushita Electric Ind Co Ltd テレビジョン受信機
JP3634379B2 (ja) 1996-01-24 2005-03-30 サン・マイクロシステムズ・インコーポレイテッド スタックキャッシングのための方法及び装置
US5675332A (en) 1996-02-01 1997-10-07 Samsung Electronics Co., Ltd. Plural-step chunk-at-a-time decoder for variable-length codes of Huffman type
US5996066A (en) * 1996-10-10 1999-11-30 Sun Microsystems, Inc. Partitioned multiply and add/subtract instruction for CPU with integrated graphics functions
US6009499A (en) 1997-03-31 1999-12-28 Sun Microsystems, Inc Pipelined stack caching circuit
GB9707861D0 (en) 1997-04-18 1997-06-04 Certicom Corp Arithmetic processor
US5961640A (en) 1997-04-22 1999-10-05 Vlsi Technology, Inc. Virtual contiguous FIFO having the provision of packet-driven automatic endian conversion
US6674536B2 (en) 1997-04-30 2004-01-06 Canon Kabushiki Kaisha Multi-instruction stream processor
US5790827A (en) * 1997-06-20 1998-08-04 Sun Microsystems, Inc. Method for dependency checking using a scoreboard for a pair of register sets having different precisions
US5937438A (en) 1997-06-30 1999-08-10 Lucent Technologies Inc. Sine/cosine lookup table
US6263420B1 (en) 1997-09-17 2001-07-17 Sony Corporation Digital signal processor particularly suited for decoding digital audio
US6151705A (en) 1997-10-30 2000-11-21 Hewlett-Packard Company Efficient use of the base register auto-increment feature of memory access instructions
US5970241A (en) 1997-11-19 1999-10-19 Texas Instruments Incorporated Maintaining synchronism between a processor pipeline and subsystem pipelines during debugging of a data processing system
US6094726A (en) 1998-02-05 2000-07-25 George S. Sheng Digital signal processor using a reconfigurable array of macrocells
US6223320B1 (en) 1998-02-10 2001-04-24 International Business Machines Corporation Efficient CRC generation utilizing parallel table lookup operations
GB9806687D0 (en) 1998-03-27 1998-05-27 Memory Corp Plc Memory system
US6272452B1 (en) 1998-04-02 2001-08-07 Ati Technologies, Inc. Universal asynchronous receiver transmitter (UART) emulation stage for modem communication
US6067609A (en) 1998-04-09 2000-05-23 Teranex, Inc. Pattern generation and shift plane operations for a mesh connected computer
US6138208A (en) 1998-04-13 2000-10-24 International Business Machines Corporation Multiple level cache memory with overlapped L1 and L2 memory access
US5996057A (en) 1998-04-17 1999-11-30 Apple Data processing system and method of permutation with replication within a vector register file
US6134676A (en) 1998-04-30 2000-10-17 International Business Machines Corporation Programmable hardware event monitoring method
US6332188B1 (en) 1998-11-06 2001-12-18 Analog Devices, Inc. Digital signal processor with bit FIFO
JP3983394B2 (ja) * 1998-11-09 2007-09-26 株式会社ルネサステクノロジ 幾何学処理プロセッサ
JP2001010119A (ja) * 1999-06-28 2001-01-16 Canon Inc データベース及びそれを用いた画像処理装置
US6829695B1 (en) 1999-09-03 2004-12-07 Nexql, L.L.C. Enhanced boolean processor with parallel input
US6771196B2 (en) 1999-12-14 2004-08-03 Broadcom Corporation Programmable variable-length decoder
JP2001210357A (ja) 2000-01-28 2001-08-03 Hitachi Maxell Ltd アルカリ蓄電池
US6539477B1 (en) 2000-03-03 2003-03-25 Chameleon Systems, Inc. System and method for control synthesis using a reachable states look-up table
US6480845B1 (en) 2000-06-14 2002-11-12 Bull Hn Information Systems Inc. Method and data processing system for emulating virtual memory working spaces
US6430672B1 (en) 2000-07-17 2002-08-06 International Business Machines Corporation Method for performing address mapping using two lookup tables
JP2002290494A (ja) * 2001-03-22 2002-10-04 Ricoh Co Ltd モデム
ATE403974T1 (de) 2001-05-16 2008-08-15 Nxp Bv Rekonfigurierbare logik-vorrichtung
US6587057B2 (en) 2001-07-25 2003-07-01 Quicksilver Technology, Inc. High performance memory efficient variable-length coding decoder
KR100437609B1 (ko) 2001-09-20 2004-06-30 주식회사 하이닉스반도체 반도체 메모리 장치의 어드레스 변환 방법 및 그 장치
US6976152B2 (en) * 2001-09-24 2005-12-13 Broadcom Corporation Comparing operands of instructions against a replay scoreboard to detect an instruction replay and copying a replay scoreboard to an issue scoreboard
US7283628B2 (en) 2001-11-30 2007-10-16 Analog Devices, Inc. Programmable data encryption engine
US6587864B2 (en) 2001-11-30 2003-07-01 Analog Devices, Inc. Galois field linear transformer
US7508937B2 (en) 2001-12-18 2009-03-24 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
EP1456994B1 (en) * 2001-12-18 2018-02-07 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
US6829694B2 (en) 2002-02-07 2004-12-07 Analog Devices, Inc. Reconfigurable parallel look up table system
JP2003264467A (ja) 2002-03-08 2003-09-19 Matsushita Electric Ind Co Ltd ビタビ復号回路
US20030196072A1 (en) 2002-04-11 2003-10-16 Chinnakonda Murali S. Digital signal processor architecture for high computation speed
US7127667B2 (en) 2002-04-15 2006-10-24 Mediatek Inc. ACS circuit and viterbi decoder with the circuit
US6865659B2 (en) 2002-06-07 2005-03-08 Sun Microsystems, Inc. Using short references to access program elements in a large address space
US7173985B1 (en) 2002-08-05 2007-02-06 Altera Corporation Method and apparatus for implementing a Viterbi decoder
US7424597B2 (en) 2003-03-31 2008-09-09 Hewlett-Packard Development Company, L.P. Variable reordering (Mux) instructions for parallel table lookups from registers
US7693928B2 (en) 2003-04-08 2010-04-06 Analog Devices, Inc. Galois field linear transformer trellis system
US20050228966A1 (en) * 2004-03-16 2005-10-13 Kabushiki Kaisha Toshiba Processor system and data processing method
US7509484B1 (en) * 2004-06-30 2009-03-24 Sun Microsystems, Inc. Handling cache misses by selectively flushing the pipeline
US7302527B2 (en) * 2004-11-12 2007-11-27 International Business Machines Corporation Systems and methods for executing load instructions that avoid order violations
US7506239B2 (en) 2004-12-23 2009-03-17 Raghavan Sudhakar Scalable traceback technique for channel decoder
US7243210B2 (en) 2005-05-31 2007-07-10 Atmel Corporation Extracted-index addressing of byte-addressable memories
US7765459B2 (en) 2005-09-28 2010-07-27 Samsung Electronics Co., Ltd. Viterbi decoder and viterbi decoding method
US8285972B2 (en) 2005-10-26 2012-10-09 Analog Devices, Inc. Lookup table addressing system and method
US8024551B2 (en) 2005-10-26 2011-09-20 Analog Devices, Inc. Pipelined digital signal processor
US7728744B2 (en) 2005-10-26 2010-06-01 Analog Devices, Inc. Variable length decoder system and method
US7882284B2 (en) 2007-03-26 2011-02-01 Analog Devices, Inc. Compute unit with an internal bit FIFO circuit
US8301990B2 (en) 2007-09-27 2012-10-30 Analog Devices, Inc. Programmable compute unit with internal register and bit FIFO for executing Viterbi code

Also Published As

Publication number Publication date
WO2007050361A3 (en) 2007-12-13
JP2009514097A (ja) 2009-04-02
TWI350479B (en) 2011-10-11
WO2007050361A2 (en) 2007-05-03
CN101297279B (zh) 2011-02-09
JP2014038640A (ja) 2014-02-27
TW200802086A (en) 2008-01-01
EP1941378A2 (en) 2008-07-09
US20070094483A1 (en) 2007-04-26
US8458445B2 (en) 2013-06-04
US8024551B2 (en) 2011-09-20
EP1941378A4 (en) 2008-12-17
US20110296145A1 (en) 2011-12-01
CN101297279A (zh) 2008-10-29

Similar Documents

Publication Publication Date Title
JP5478068B2 (ja) 改善されたパイプライン化デジタル信号プロセッサ
JP6449349B2 (ja) 複数の128ビットデータパスにおけるsha1ラウンド処理のための命令セット
JP3358996B2 (ja) 自動ビタビトレースバックビット格納機能を有する並列算術論理プロセッサ
CN108009126B (zh) 一种计算方法及相关产品
US20160019064A1 (en) Run-Length Encoding Decompression
JPH11154114A (ja) 複数データ・フェッチのアーキテクチャを使ってテーブル・ルックアップを実行するためのシステムおよび方法
US20100211761A1 (en) Digital signal processor (dsp) with vector math instruction
CN108108190B (zh) 一种计算方法及相关产品
US7873819B2 (en) Branch target buffer addressing in a data processor
TWI408600B (zh) 具有內部位元先進先出電路之計算單元
WO2006029152A2 (en) Multiply instructions for modular exponentiation
KR101934760B1 (ko) 단일 명령어에 응답하여 회전 및 xor을 수행하기 위한 시스템들, 장치들, 및 방법들
CN107957977B (zh) 一种计算方法及相关产品
US20100138630A1 (en) Data-Processing Unit
US10162633B2 (en) Shift instruction
JP2000172520A (ja) ガロア体演算プロセッサ
US20180307488A1 (en) Multiply-and-accumulate-products instruction
EP4278256B1 (en) Parallel decode instruction set computer architecture with variable-length instructions
CN111814093A (zh) 一种乘累加指令的处理方法和处理装置
CN113485751B (zh) 执行伽罗瓦域乘法的方法、运算单元和电子装置
JP4355410B2 (ja) 線形ベクトル計算
CN109960486B (zh) 二进制数据处理方法及其装置、介质和系统
WO2023141933A1 (en) Techniques, devices, and instruction set architecture for efficient modular division and inversion
CN118057308A (zh) 指令处理优化方法及相关装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110705

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110802

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111102

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111110

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120828

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121128

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130226

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130521

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130920

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20131101

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: 20140114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140210

R150 Certificate of patent or registration of utility model

Ref document number: 5478068

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees