JP5027515B2 - 任意のアルゴリズムを並列計算するための再構成可能な論理回路装置 - Google Patents

任意のアルゴリズムを並列計算するための再構成可能な論理回路装置 Download PDF

Info

Publication number
JP5027515B2
JP5027515B2 JP2006552599A JP2006552599A JP5027515B2 JP 5027515 B2 JP5027515 B2 JP 5027515B2 JP 2006552599 A JP2006552599 A JP 2006552599A JP 2006552599 A JP2006552599 A JP 2006552599A JP 5027515 B2 JP5027515 B2 JP 5027515B2
Authority
JP
Japan
Prior art keywords
stage
output
logic
basic structure
input
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
JP2006552599A
Other languages
English (en)
Other versions
JP2007522571A (ja
JP2007522571A5 (ja
Inventor
ヴィーガント、クリスチアン
ジーメルス、クリスチアン
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Publication of JP2007522571A publication Critical patent/JP2007522571A/ja
Publication of JP2007522571A5 publication Critical patent/JP2007522571A5/ja
Application granted granted Critical
Publication of JP5027515B2 publication Critical patent/JP5027515B2/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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)

Description

1.技術分野
本発明は、少なくとも1つの論理回路装置を有する、アルゴリズムを並列計算するための計算機構のアーキテクチャ(基本構造)に関する。
2.公知技術
2.1 公知の計算機モデル
図1の原理図から明らかとなるようないわゆる「フォンノイマン型アーキテクチャ」は一般に汎用計算機と見做される。ここでは、計算機の助けを借りて、コンポーネント中央処理装置[CPU、その中に制御装置(CU)と演算論理ユニット(ALU)が含まれる]、メモリ(記憶装置)、インプット/アウトプット(入力/出力)およびバス方式を有するこのアーキテクチャに基づいて、あらゆるアルゴリズム可能な問題は基本的に計算することができるということが理解できる。このような計算機をその都度の問題に調整することは、プログラムによって、すなわち例えばプログラム言語C、C++またはJava(登録商標)でアルゴリズムをテキスト記述することによって行われる。このプログラムは、それ自体プログラムである翻訳系(コンパイラ)によって機械読取可能なプログラムに変換される。
プログラムの処理が行われる計算機は図1によるフォンノイマン型アーキテクチャおよび類似のアーキテクチャ(例えばハーヴァード・アーキテクチャまたは修正ハーヴァード・アーキテクチャ)に基づいており、基本的に逐次型である。これは、大量の機械命令からなるアルゴリズムが、第1命令が既知であることによって処理されると理解される。或る命令に続く命令は記憶装置内で次のアドレスにある命令(正規プログラムフロー)であるか、または最後に実行された命令が、実際のプログラム位置を別の個所にずらす飛越し命令であったかのいずれかである。実際のプログラム位置を記憶する内部レジスタは「プログラムカウンタ」(PC)と称される。
この逐次処理原理は、或る時点に厳密に1つの命令が処理中であることを意味する。これがフォンノイマン原理と称される。RISC(Reduced Instruction-Set Computing)、スーパースカラまたはVLIW(Very Long Instruction Word)と称される最新のアーキテクチャは確かに或る時点に1つ以上の命令を実行するのではあるが、しかし逐次性の原理は維持される。全体としてこの実行原理は「時間逐次型」(Computing in Time)と称され、これはアルゴリズムが時間を必要とすることを意味する。
まったく別のプログラム処理原理がプログラム可能型論理モジュール[PLD(Programmable Logic Devices)、図2に相当]もしくはその最も知られたインプリメンテーション、FPGA(Field-Programmable Gate Arrays)に設けられている。このアーキテクチャも汎用であり、すなわちあらゆるアルゴリズム可能な問題に利用可能である。その際、大抵はビット平面で定義され、それゆえに論理素子と称される要素演算ユニットがネットワーク内で相互接続されるように、プログラミングは行われる。このプログラミング形式は大抵、「構成(Configration)」と称される。
PLD内でのプログラム処理は、フォンノイマン原理とは異なり最大並列性で行われる。1つのモジュールの構成全体は単一の命令として(しかしながらフォンノイマン原理とは異なり固定定義されるのでなく合成されて)把握することができ、この命令が1サイクル内で完全に処理される。しばしば外部クロックと結び付けられるサイクル時間はこの合成の複雑性に依存している。これにより、プロセッサと比較して低いクロックが使用されるが、しかしこのクロックは実行の並列性によって十分に補償される。この実行原理は「Computing in Space」と称される。
2.2 決定的有限オートマトン
問題をアルゴリズム化するための主要モデルの1つが決定的有限オートマトン[DEA、またDFA(deterministic finite automata)]である。これらは技術において「Finite State Machines」(図3の原理図によるFSM)とも称される。このモデルは問題を、入力値に依存してそれらの間の定義された伝達関数を有する状態の系列と見做す(Next State Decoder)。DEAのモデルは理論上、フォンノイマンモデルほどに強力ではないが、実務において任意の問題を、場合によってはモデル内の付加物で、解決することができる。
このDEAの最大の問題は、その関数が状態の数に伴って指数的に増加し、半導体材料(特にシリコン)の面積需要に関係してくることにある。この理由から、互いに通信する多数のオートマトンからなるモデルが好んで選択される。このような計算機モデルは「複雑な協力するオートマトン」と称される。
2.3 ブール関数の表現
ブール関数または論理関数は、B={0、1}とした写像(以下「マップ」)f:Bm→Bnであり、これはf=(f1、f2、…fn)の形で、つまり関数fk:Bm→Bのベクトルとして表現することができる。それゆえに以下では、出力値を有する関数fkのみから出発する。これらは一般にfと称される。
さらに、fが論理和標準形または論理積標準形の形式で表現できることが知られている。論理和標準形にとってこれは、
f=z1+z2…+zk;k=1、2、…2m、'+'を論理和演算子(論理OR)として(1)
zi=y1*y2*…yn;i=1、2、…k、'*'を論理積演算子(論理AND)として(2)
が妥当することを意味する。もちろん、記述されるべき関数が値TRUEまたは'1'を受け取るようなziのみが使用される。記号yjは、入力ベクトルx=(i1、i2、…ik)からどのように入力ビットikが選ばれるべきかを決定する。入力ビットには量{0、1}からなる値のみ許容されているのに対して、yjについてこれは変更されねばならない。これらの値には3つの属性{0、1、−}のうちの1つが割り当てられる。yj用の属性'1'は、ikがそのまま取られることを意味し、'0'は、ikが反転して選択されねばならないことを意味し(/ikとして表記)、'−'はドントケア、すなわちikは使用されない。yjに値{0、1}のみが属性として使用される場合、「標準論理和標準形」と呼ばれる。
この表現が重要であるのは、これにより、入力ビットの順番が既知である場合、「項(ターム)」とも呼ばれる前記式(2)による部分式ziが、いわゆる「ストリングターム」として表現可能となるからである。順番がi1、i2、i3の場合、"111"はz1=i1*i2*i3であることを意味し、"0−1"はz2=/i1*i3等である。
3つの入力ビットの場合、可能なすべての入力ベクトルの量はv={000、001、010、011、100、101、110、111}である。例示的に関数fが入力ベクトル{001、011、111}でのみ値TRUEを受け取る場合、これらのみを明示する必要もありまたは明示することができる。ストリングタームの形式でこれは111と0−1によって行うことができる。これは与えられた関数を完全に特徴付け、論理和標準形f=/i1*i3+i1*i2*i3と同形である。
2.4 内容アドレス記憶装置(CAM)
読出し書込み記憶素子[RAM(Random Addressable Read/Write Memory)]はふつうデータおよびプログラムを記憶するのに利用される。その場合、アドレスがアドレスバスに印加され、読出し過程のときモジュール固有の待ち時間の経過後、記憶されたデータがデータバスに印加され、継続使用することができる。書込み過程は上記と同様に作動する。
データを得たいとするインスタンス(例えばプロセッサ)の視点からアドレスは既知であり、記憶された内容は事前には既知でない。しかし、状況がまったく逆のアプリケーションが存在する。記憶された内容が既知であり、この内容がどのアドレスに記憶されているかに関心があり、答えが「存在しない」であることもある。この種の問合せを支援する記憶素子が内容アドレス記憶素子[CAM(Content- Addressable Memories)]と称される。
CAMと称されかつこの行動を直接支援する記憶素子は特殊なモジュールと見做され、決して頻繁に見られるものではない。しかし実際的応用のためCAMの機能性は通常のRAMモジュールによってエミュレートすることができる。しかしこのためには、CAM内に直接記憶されることになるすべてのデータについて、問合せ時に、値ではなく記憶アドレスが明らかとなり、対応するアドレスが事前に計算され、データに対応したRAMアドレスに記憶されねばならない。
2.5 セルオートマトン
セルオートマトン[CA(cellular automaton)は、1フィールド内に固定トポロジーで配置されかつその他の性質を有する大量の有限オートマトンである(非特許文献1、4参照)。これら大量のFSMはn次元アレイ(大抵はn=2)として配置されており、各場所に固定座標が与えられている。各FSMが明確に近傍系を有し、それらと通信することができる。n=2の場合、大抵、4つの周辺FSM(「天空方向」においてN、E、W、S、それゆえに「NEWS近傍系」とも称される)が近傍系と見做される。
近傍系との通信は、直接的近傍系の状態が読出し可能、従って評価可能であるように行われる。各時間ステップですべてのセルの状態が並列に計算される。新たな状態を計算するのに遠く離れたセルからのデータが利用されねばならない場合、これらのデータはセルからセルへと歩進的にトランスポートされねばならない。こうして古典的セルオートマトンは、高いデータ局在性をもって問題提起を計算するのに十分適している。
CAは、先に論じたアーキテクチャと同様に汎用計算機と見做され、しかもそれらは完全に並列に作動する。CAのネットワークがハードウェアに、例えばASICに、またはPLDにも、マップされねばならない場合、結の数はオートマトンの数に伴って線形に増加する。結線自体は、選択されるトポロジーに応じて比較的短く、固定布設されている。つまりCA相互の通信コストは比較的少ない。論理関数をRAMにマップするのに必要な所要メモリ量がこの論理関数の計算量と見做される場合、1つのセルの挙動に相応する論理関数の最大の計算量は入力変数の数に伴って指数的に増加し、また関数の出力変数の数に伴って線形に増加する。入力変数の数はこの場合、セルに接続されたすべてのCAの状態をセル自体の状態も含めて符号化するのに必要なすべてのビットの合計である。こうしてセルの最大の計算量は各オートマトンの結線の数によって実質的に限定されている。
グローバルセルオートマトン[GCA(global cellular automata)]の構想は、1つのセルを最も近い近傍系だけでなくフィールド全体内の任意のセルへと結線することを可能とすることによって、CAの制約を克服する。従ってGCAはもはや固定トポロジーを有するのでなく、問題提起に適合され場合によっては計算の伝搬時間に対して変化しさえするトロポジーを使用することさえ可能である。これは問題処理に著しい加速をもたらすことがある。単一のオートマトンの結線の数は場合によっては上限によって確定されている。単一の結線のみが許容されている場合、単アームGCA、一般的にはkアームGCAと呼ばれる。
その結果、GCAの1フィールドを実現するときセル相互の通信に必要なコストはセルの数に伴って著しく増加する。個々のオートマトン間で可能な結線の数はオートマトンの数に2乗して増加する。
個々のオートマトン自体もしくは基礎となる論理関数の計算量は、従来のCAにおけると同様に各セルの結線の数に実質的に依存している。再構成可能な回路(PLD)にGCAがマップされねばならない場合、任意の論理関数を実現することのできる個々のセルは最大可能な計算量を可能としなければならない。
ローカルメモリを有する各1つの演算装置に個々のオートマトンがマップされる場合、各セルは複雑な論理関数を実現することもできる。すべてのセルの任意の通信のためのコストはセルの数に2乗して増加する。その場合回路の粒度(Koernigkeit)は、セルの数もしくはセル間の結線のビット幅によって決まる。このような回路は、FSMの数およびビット幅の点で回路の設定に一致したGCAをごく良好に実現することができる。複雑な論理関数を個々のセルに実現することも可能である。しかし、結線の数と所要のビット幅の点で所定の粒度と一致しないGCAは、これを回路にマップするのが困難であるという不利がある。
個々のセルが組合せ論理回路として実施される場合、各セルは自己の状態も含めて別のすべてのセルのデータを処理可能でなければならない。この理由から各組合せ論理回路は、すべてのセルのすべての2進化状態を入力変数として含むことのできる論理関数を実現できなければならない。論理関数の出力変数の数は、単一のセルのすべての状態を2進化することを可能としなければならないだけである。その際不利な点として、論理関数の計算量は入力変数の数に伴って指数的に増加する。セル相互の通信コストが多項式的に増加することもやはり不利である。
つまりGCAを格納するのに適した(再)構成可能なアーキテクチャ(PLD)はFSMごとに任意の計算量を格納可能でなければならない。これは、(FSMがPLDの1つのセルに直接マップされねばならない場合)セルが任意のあらゆる関数を格納しなければならないことを意味する。そのことからセル寸法の指数的増大が生じることは知られている。それに加えて、PLD内の構成可能なネットワークは完全に実施されていなければならない。すなわち、各セル出力はあらゆる別のセルと接続可能でなければならない。こうしてネットワークが2乗的に増大し、ネットワークの構成も同様である。
両方の要件を満たすPLDアーキテクチャは現在市場になく、または知られていない。完全な設計空間を有する大きなセルは存在しない。あるのは、完全な設計空間を有する小さなセル[いわゆるルックアップテーブル構造(LUT)]、または任意の関数をマップするための不完全な可能性を有する大きなセルのみである。すべてのセルの完全接続性はセルが大きい場合にのみ可能である。従って、存在するPLDへのGCAのマップは困難であり、はるかに不可能でさえある。
3.本願発明の課題
本発明の課題は、上記諸問題が少なくとも減少するように、冒頭に述べた計算機構のアーキテクチャを構成することである。特に、アルゴリズム内に隠れた並列性を実際に利用することのできる優れたモデルと判断されるGCAをPLD等のプログラマブルハードウェアにマップできる可能性が示されねばならない。すなわち、任意のGCAの格納を可能とするPLDアーキテクチャが明示されねばならない。
4.本願発明の解決策
前記課題は、本発明によれば、請求項1に明示した措置で解決される。それによれば、冒頭に指摘した特徴を有するアーキテクチャは少なくとも1つの個々に構成可能および/または再構成可能な論理回路装置を含み、この論理回路装置が、入力を備えたステージと出力を備えたステージとを有し、出力のうち少なくとも幾つかの出力の出力変数が、時点tn-1に、時点tnにおける論理回路装置の付属する入力に入力変数を形成し、時点tn-1とtnとの間における論理回路装置の出力変数を記憶するための手段が設けられている。その際、すべての入力が(記憶された)出力によって占有されている必要はなく、自由入力も存在し得る。さらに、連結されていない出力、つまり例えば再使用されることのない最終結果のみを表す出力も設けておくことができる。
論理関数の直接に連続する評価が時点tn-1、tnで表される。技術的に好ましい実現態様においてこれらの時点はクロック時間Tを有する印加クロックから導き出すことができ、k=1、2、3、…としてtn−tn-1=k・Tが成り立つ。その際、与えられたアプリケーションについてkは一定であり、さまざまなアプリケーションについてそれは異なるように選択することができる。
論理関数の計算量が入力変数の数に伴って指数的に、また出力変数の数もしくはマップされるべきGCAのフィールド内のセル数に伴って直線的に増加し、GCA相互の通信コストがセル数に伴って少なくとも2乗で増加することが確定しているので、本発明に係る(再)構成可能なアーキテクチャはGCAを格納するのに適している。このためそれは少なくとも1つの個々に構成可能な論理回路装置からなり、この論理回路装置の出力変数は、時点tn-1に、時点tnにおける論理回路装置の入力変数を形成する。時点tn-1とtnとの間に論理回路装置の出力は記憶装置、特にレジスタに記憶され、こうして複雑な論理回路装置もしくはFSMが生じる。構成内の個々のステージはやはり論理回路装置を意味する。この構成のみが各ステージの個々の組合せ論理回路内にあり、各ステージは構成可能な組合せ論理回路と記憶素子とからなる。
従って本発明に係るアーキテクチャでは、組合せ論理回路は、それらの各出力がアーキテクチャ入力の実際の値に依存したブール論理関数ユニットとして設けられているのに対して、前記少なくとも1つの論理回路装置は、それらの出力がこの時点および有限数の先行時点における入力の実際の値に依存したブール論理関数ユニットであると理解することができる。従って、論理回路装置は組合せ論理回路と少なくともクロックエッジトリガ記憶素子とから構成される。
本発明に係るアーキテクチャの有利な諸構成は請求項1に従属する請求項から明らかとなる。請求項1による実施形態は複数のうちの1つの従属請求項の1つの特徴と、または主に複数の従属請求項の特徴とも、組合せることができる。従って、アーキテクチャは、なお以下の箇条書きの如くに構成しておくことができる。
・記憶手段としてレジスタ記憶素子を設けておくことができ、ここでは一般にクロックエッジトリガフリップフロップ素子である。
・好ましくは、論理回路装置は3ステージ式に構成されており、3つのステージは前後に接続されている。複数の入力を有するステージと複数の出力を有するステードとの間に配置される記憶素子を有する第2ステージは第1ステージで生成されるデータを処理しかつ処理されたデータを第3ステージに転送するのに役立つ。
・その際有利には、第1ステージは複数の並列に接続された記憶素子を含むことができ、これらの記憶素子は入力線路を介してアドレス指定可能であり、付属する求められたインプリカント(implicant)内で結合された入力変数の部分量は各記憶素子に供給することができ、
・第1ステージの後方に、個々のインプリカントの識別子によってアドレス指定可能な記憶素子を有する第2ステージが配置されており、
・第2ステージの後方に配置される第3ステージは、第2ステージの記憶素子から個々のインプリカントの出力値を論理和演算するための手段を備えている。
・その際、好ましくは最小化法によって個々のインプリカントを求めることができる。
・さらに、少なくとも1つのクロスバースイッチを介して第1ステージは第2ステージと結合しておくことができる。
・記憶素子として有利にはCAMおよび/またはRAMを設けておくことができる。
・特別有利には、少なくとも1つのGCAを統合することができる。
・記憶素子として、特にTMR型の磁気抵抗部品を設けておくことができる。相応するトンネル磁気抵抗素子はそれ自体公知である。
記憶素子として理解されるのは、一般に若干数のトランジスタまたは匹敵するモジュールと例えば前記磁気抵抗素子等の記憶機能を可能とする本来の素子(記憶ユニットごとに)とから構成されるあらゆる内部素子のアーキテクチャである。
本発明に係るアーキテクチャの前記他の諸構成の根底には特に以下に示す論述がある。
選択された論理回路装置内の論理関数の計算量が確かに出力変数の数に伴って線形に増加するが、しかしセル相互の通信コスト全体が省かれる。そのような論理関数に、若干数の出力変数を有する多くの個々のオートマトン、または多くの出力変数を有する若干数のGCA、またはさまざまなセルの混合物はマップすることができる。従って、粒度(Granularitaet)は設けられておらず、FSM相互の通信は基本的に完全に可能である。しかし、組合せ論理回路を格納することのできる論理関数の最大計算量によって限界が与えられている。
大量の入力を有する1つの論理回路装置の利用‐これは一般的事例において、若干数のFSMを有するGCAがマップされる場合に発生する‐は、いわば所要面積が入力の数に指数的に依存し得ることを意味する。各状態が1ビットで符号化されるとき面積の指数的(状態数)増加が上限と見做される。一般的事例において所要面積は小さくなる。しかし汎用回路は最大事例を含まねばならないので、指数的増大法則を適用すべきであろう。
ここで特別有利であると見做すことができるのは、論理回路装置を格納する回路を3つの特殊な区域/ステップに分割することである。このため以下に示す(再)構成可能な回路は、大量の入力変数と大量の出力変数とを有する論理関数を論理回路装置として実現することができる。
論理関数用の再構成可能な論理回路装置を構想するために、起点となる考えとして2つの可能性を検討する。
一方で、1つの論理関数を完全に1つのRAM記憶装置にファイルすることが可能である。論理関数の入力変数はアドレスビットを形成し、入力変数の可能なあらゆる組合せについて記憶セルをアドレス指定する。その場合、この記憶セルの内容は論理関数の値に一致し、記憶素子のデータ線路は関数の出力変数を形成する。この構想の利点は単純な回路構造と、簡単な再構成可能性と、記憶素子の高い集積密度と、論理関数の評価を必要とする固定時間にある。しかしながら、所要の記憶セルの数、つまり所要の記憶素子の大きさは、入力変数の数に伴って指数的に増加する。この理由から、小さな論理関数のみをこうしてマップすることができる。
これは、PLDにおける技術の現状であり、Look-Up-Table-StructurとしてFPGAにおいて利用され、大抵は4つの2値入力変数と1つの2値出力とを有する。
論理関数を組合せ論理回路にマップする第2の可能性は、2ステージまたは多ステージネットワークにゲートを構成可能に配置することにある。従って、最小のゲート使用で論理関数を組合せ論理回路にマップすることが可能である。論理回路理論はここでは例えばリード‐マラー形式等の論理関数の好ましい表現形式を提供し、または論理式を簡素化するための高性能アルゴリズムも提供する。この式の利点はゲートの使用が最小となり、高性能方法およびアルゴリズムを簡素化に利用する可能性とにある(非特許文献2、非特許文献3参照)。この方法は、例えばROM実現の固定論理関数を表現するのに十分利用することができる。例えばクロスバースイッチ等のハードウェアモジュールを介して個々のゲートは再構成可能に接続することができるが、しかしここでは再構成可能性のためのコスト論理関数の入力変数の数に伴って指数的に増加する。
5.具体的実施例に基づく発明の説明
第1可能性の諸利点、高い集積度、再構成可能性、回路の簡素化と、第2変更態様の諸利点、ゲート関数の僅かな使用、最新方法の応用可能性とを結び付けることができるようにするために、本発明によれば以下のようなことが行われている。
仮定された実施形態の基本的考えは、高い集積密度の諸利点を利用するためにRAMモジュール内に極力多くの論理機能性を具現する再構成可能な論理回路装置の開発である。このRAMモジュールは、論理関数一式を記憶する必要のないように、1つの多ステージ回路内で再構成可能に互いに接続されねばならない。
第1ステージ:
論理関数の入力変数は組合せ論理回路の入力線路によって現される。回路の第1ステージは、入力線路によってアドレス指定される多数の並列に接続された記憶素子からなる。入力線路従って論理関数の入力変数の部分量が各記憶素子に割り当てられている。最小化法によって求められる論理関数のインプリカント(式(2)の最小化されたziもしくはそのストリングターム表現)は、入力ステージの記憶素子に記憶される。このため、インプリカント内で結合された入力変数が割り当てられている各記憶素子内に、インプリカント内での入力変数の使用と、このインプリカントに対するユニークな識別子が記憶される。各モジュールには入力変数の一部が割り当てられているだけなので、それぞれ部分インプリカントのみが記憶される。インプリカント内で結合された変数が割り当てられていない記憶素子内には、同様にインプリカントの一部は記憶されない。組合せ論理回路の入力線路に1つのビット組合せが印加されると、このビット組合せに適合したすべての記憶素子はその識別子を、データ線路を介して回路の第2ステージに転送する。
第2ステージ:
(部分)インプリカントの識別子は第2ステージ内の1つの記憶装置をアドレス指定する。この記憶装置には、各インプリカントに付属する識別子ビットパターンと、論理関数の出力値が記憶されている。第1ステージから提供される識別子のビットパターンが記憶されたインプリカントのビットパターンに一致する場合、このインプリカントは回路の入力線路に印加される。次に回路の第2ステージは入力線路に印加されるすべてのインプリカントの出力値を、データ線路を介して第3ステージに転送する。
第3ステージ:
第3ステージでは個々のインプリカントの出力値が論理和(OR)演算され、こうして論理関数の結果を形成する。
以下、以上の論述を考慮して図面を参考に具体的実施例に基づいて本発明がなお説明される。図面は以下の部分を含み、そのうち図1〜図3は背景技術に記載の技術の現状について既に言及したものである。
図中、対応する部品には同じ符号が付けてある。
図4〜図9による実施例について仮定する本発明に係るアーキテクチャは先に言及したように3つのステージを有し、詳細には1つの論理関数用に12の入力変数と10のインプリカントと8つの出力変数とを有する。表1はこのため1つの例示関数についてすべてのインプリカント(「極小項」とも称される)を示す。ストリングタームの表現は、その際3つの4群が生じるように選択されている。
Figure 0005027515
ところでこの表を列ごとに検討すると、ごく少数の異なる組合せがストリングターム内に現れることが確認される。2値表現の場合、列ごとにここでは 4 =16の異なる組合せが、3値表現の場合相応に 4 =81の組合せが存在し得よう。この例ではそのうち列1〜3用に5、3、4のみが現れ、入力組合せはそれぞれ完全に「‐」である。
論理関数のパラメータとして1つのビット組合せが入力に印加されると、印加されたビット組合せを有する1つの部分インプリカントを記憶する1つの記憶素子は付属するインプリカントの識別子を送り返す。第1ステージのこの記憶素子が図4では3値CAMとして実施されている。すなわち、2値情報としてアドレスバスに実際に印加される入力ベクトルは記憶された3値情報と比較される。目的について記憶されたやはり3値の識別子が出力として出力される。
全識別子が全体でインプリカント組合せの識別子を形成し、この識別子が組合せ論理回路の入力に印加される。このインプリカント組合せは複数のインプリカントを十分に含むことができる。図示例において例えばインプリカント3、4、8、またはインプリカント4、5、8の組合せを印加することができる。最初の事例ではビット組合せ100001が、第2の事例では組合せ110001が、第2ステージに印加される。
インプリカント組合せの識別子は回路の第2ステージで検知され、関与する各インプリカントについて論理関数の付属する出力値を提供する。ところでこの第2ステージは1つの3値RAMのみからなる。すなわち、このステージのアドレスバス情報では3値であるが、しかしながら記憶されたデータは2値である。
回路の第3ステージでは、印加されるインプリカントの出力値は論理和演算され、全体で論理関数の関数値を形成する。
5.1 第1ステージの記憶素子
部分インプリカントを格納するための記憶素子として既に触れたようにごく特殊なモジュールもしくはごく特殊なアーキテクチャを利用することができ、ここでは図4により3値CAMで表される。その際、多重一致の問題もなお基本的に論議されねばならないが、しかしこれは別の実現可能性に関連して行うことにする。
完全連想キャッシュも第1ステージ用に利用することが可能である。ここでは部分インプリカントはいわゆるタグとして記憶することができ、キャッシュドデータは検知されたインプリカントの識別子として役立つ。しかし部分インプリカントが未結合変数を含み、これらの変数が、印加されるビット組合せと比較してドントケア(DC)桁と表現される場合、DCとの比較を満たすこのインプリカントのすべての占有について1つのタグがタグRAMに印加されねばならない。さらに、DCとの比較によって部分インプリカントの重なりが生じる。例えば上記例の第1部分インプリカント記憶装置内のビット組合せ0011はインプリカント1にもインプリカント3にも付属する。つまりインプリカントの組合せだけでなく部分インプリカントの組合せも可能である。
この理由から、部分インプリカント記憶装置として実現するのに通常の、すなわち2値RAMモジュールもしくはアーキテクチャが使用される。これらRAMのそれぞれは組合せ論理回路の入力線路の一部によってアドレス指定される。DC桁を有する同じ部分インプリカントに一致したビット組合せのアドレスでは(ストリングターム中の各DC桁は、ヒット桁の数が2進符号化のとき2だけ高められることを意味する)、それぞれ同じ識別子が記憶装置に蓄えられる。使用されるRAMの出力幅が、識別子を表現するのに不可欠なビット幅よりも大きい場合、他のビットをコンテキスト値として利用することができる。このコンテキストは例えば論理関数の入力変数の無効占有を表示することができる。
通常のRAMは、例えばそのキャッシュ‐ミス出力にタグRAM等の存在しないデータ用の状態表示を持たないので、第2ステージでビット組合せの比較に使用されるデータ線路上で1つのビット組合せは印加されていない部分インプリカント用の標識として使用されねばならない。そのことが図5c)に識別子8で与えられている。
5.2 第2ステージの記憶素子
部分インプリカントを記憶するための第1ステージのRAMにおけると同様に、回路の第2ステージでインプリカント組合せを比較するときにもDCは考慮されねばならない。それゆえにここでも通常のRAMが使用される。このRAMはインプリカント組合せの識別子でアドレス指定される。
再び複数のアドレスが同じインプリカント組合せに一致することがあるので、第2ステージの記憶装置は分割されねばならない。第1ステージのビット組合せが第2ステージの1つのRAMをアドレス指定する。そこでは有効な各インプリカント組合せについて1つのインデックスが蓄えられており、このインデックスは関与するインプリカントの出力変数をそれ自身含むRAMをやはりアドレス指定する。こうして、ドントケア桁を有するインプリカント組合せによって生じるさまざまなアドレスは論理関数の出力値の同じインデックスにマップすることができる。
図6は第2ステージのRAM組合せに対する第1ステージの結果の相応するマップを示す。
5.3 図7による最終的アーキテクチャ
1つのRAMは単一のインデックスを提供できるにすぎないので、論理回路装置の第1ステージにおいて出力値記憶装置内に、検知された組合せに関与した全インプリカントの論理和演算された出力値が格納されねばならない。従ってこのステージにおける出力RAMは論理関数の可能なあらゆる関数値を記憶できなければならない。可能な関数値の数は論理関数の出力変数の数に伴って指数的に増加するので、論理回路装置の第2ステージの複数の組合せ・出力記憶装置は並列に使用され、それらの出力組合せは論理和演算される。こうして1つの論理関数のすべての関数値を生成することができる。
個々の組合せ記憶装置の容量を一層良好に利用できるようにするために、組合せ記憶装置のすべてのデータ線路は1つのクロスバースイッチを介して組合せ記憶装置のすべてのアドレス線路と接続される。こうして任意のデータ線路が組合せRAMのアドレス指定を引き受けることができる。使用されないデータ線路はクロスバースイッチを介してコンテキスト情報として転送することができる。
最終ステップとして論理回路装置の第3ステージでは、個々の出力変数を反転することができるようにするために、そして場合によっては小さな論理式簡単化を得るために、生成された出力値はビットごとに排他的論理和関数を介してレジスタコンテントと演算される。従って回路の第3ステージは出力組合せの論理和演算と引き続き可能な個々の出力ビットの反転とからなる。
全体として、本発明に係る論理回路装置について図7の基本回路図が得られる。
5.4 アーキテクチャの論議
本発明の意図は、大きな組合せ論理回路を実装するためのRAMベースアーキテクチャを提供し、またこのアーキテクチャを‐いわば汎用機を格納するためのアプリケーションとして‐GCAを格納するために提供することである。RAM内に任意の関数を格納するために記憶装置内の記憶場所は入力の数に伴って指数的に(そして出力の数に伴って線形に)増加しなければならない。上記事例においてこれは、12の入力と12の出力を有する任意の関数は4096*12ビットに相当する6144バイトの記憶場所を持つであろうことを意味する。32の入力と8の出力の場合、これは既に4ギガバイトの記憶容量となろう。
多ステージネットワークの提案されたアーキテクチャは単に211.5バイトのRAMを含み、つまり:
3×インプリカント‐RAM 16×4 24バイト
3×組合せ‐RAM 64×4 96バイト
3×出力‐RAM 16×12 72バイト
クロスバースイッチ構成 18バイト
反転 12×1 1.5バイト
合計 211.5バイト
従って主要な利点は、このアーキテクチャがLUTベースアーキテクチャよりもかなりスペース節約的であることにある。その際考慮しなければならない点として、あらゆる関数がこうして表現可能であるのではない。
1つのアプリケーションをこのアーキテクチャにマップできるようにするために、複数の不可欠な実施形態を満たしておかねばならない。第1条件は、1つの列に存在するさまざまな部分ストリングタームの数が第1ステージのRAMにマップできることである。これは、これらのRAMがすべての組合せを格納することによって自動的に満たされている(なぜならば、それらがCAMをエミュレートするので)。回路の入力幅だけはアプリケーションにとって十分でなければならない。
第2条件がこれに続く。簡単化後にアプリケーション内に含まれているさまざまな部分ストリングターム組合せの数が符号化可能でなければならない。これは、記憶桁の数が提供されねばならないことを意味する。効率性を推定するためにmを組合せ論理回路の入力幅とする。これは、完全関数を表現するために2mの記憶セルが必要であろうことを意味しよう。
ところでkがモジュールの並列性(モジュールの数)、2sが1モルの容量である場合、アプリケーションの一層効率的な記憶のために不等式
k*s≦m−1 (3)
が妥当しなければならない。アンダフローが一層明確になればなるほど、実装は一層効率的となる。
条件3は、出力幅が好適に選択されていなければならないことを意味する。
6. GCAのアーキテクチャへのマップ
GCAを本発明に係るアーキテクチャにマップするために、クロック制御で計算の進展を記憶する記憶素子をなお導入しなければならない。これは、GCAがFSMのアレイとして定義されていることにその原因があり、それらは一般に同期化されている。ここでは、同期化のためグローバルクロックが受入れられると仮定されている。非グローバルの、特に相互関係のないクロックのすべての実装は本質的問題を生じるであろうが、しかし実際に該当することは希である。
図8は提案された種類の構成可能なアーキテクチャの他の例を示しており、いまや状態を記憶するためのレジスタを装備している。付加的に他の1つのクロスバースイッチが介装されており、このスイッチはここではなかんずく計算機用に入出力インタフェースを用意するのに役立つ。これは確かにアーキテクチャの基礎的理解にとって些細なことであるが、しかし実際の動作では不可欠である。なぜならば、計算機が外部端子を備えていなければならないからである。
この例示的アーキテクチャの記憶需要は次のように計算される
8×最小項‐RAM 256×8 2キロバイト
8×組合せ‐RAM 64K×8 512キロバイト
8×出力ベクトル‐RAM 256×64 16キロバイト
2×クロスバースイッチ構成 1キロバイト
反転レジスタ 64×1 8バイト
合計 531キロバイト
従って、記憶装置の要求条件がいかに少ないかが明らかとなる。264*64ビット(=267バイト)を有するRAMはいずれにしても製造可能でない。このアーキテクチャにアプリケーションして第1ステージのRAMによって線路が利用されないままとなる場合、これらはコンテキスト情報として利用することができる。1つの応用は、第2ステージのRAM用に付加的に可能とすることができるようなコンテキスト切換にある。つまり例えば1つのRAMで単に14のアドレスビットが必要である場合、これらの14ビットについての情報は4倍記憶することができ、つまり4つの異なるコンテキストにある。
図9からは、GCAを格納するのに適した本発明に係る再構成可能なアーキテクチャの基本構造を読み取ることができる。この構造は図8による構造の一般化である。特にRAMステージ1、2が破線で明確にされている。
参考文献
Rolf Hoffmann, Klaus-Peter Volkmann, Wolfgang Heenes: "Globaler Zellularautomat (GCA): Ein neues massivparallelles Berechnungsmodell", Mitteilungen-Gesellschaft fur Informatik e. V., Parallel-Algorithmen und Rechnerstrukturen, ISSN 0177-0454 Nr. 18, 2001, Seiten 21 - 28
R. K. Brayton et. Al.: ≪Logic Minimization Algorithms for VLSI Synthesis≫, Kluwer Academic Publishers, USA 1984
Mike Trapp: "PLD-design methods migrate existing designs to high-capacity devices", EDN Access, Febr. 1994; http://www.reed-electronics.com/ednmag/archives/1994/021794/04dfl.htm
Wolfgang Heenes, Rolf Hoffmann, Klaus-Peter Volkmann,: "Architekturen fur den globalen Zellularautomaten". 19th PARS Workshop, March 19-21, 2003 Basel; http://www.ra.informatik.tu-darmstadt.de/publikationen/pars03.pdf
技術の現状によるフォンノイマン型アーキテクチャの基本構造を示す。 技術の現状によるPLDの全般的構造を示す。 技術の現状によるミーリー‐オートマトンの形式のFSMの基本構造を示す。 本発明に係るアーキテクチャの記憶装置構造の1実施例を示す。 RAMへのストリングタームのマップを示し、部分図a)は並列ストリングターム、部分図b)はタグRAMへのマップ、部分図c)は従来のRAMへのマップである。 本発明に係るアーキテクチャの第1ステージの結果を第2ステージのRAM組合せにマップしたものである。 例[(0、1)12→(0、1)12‐関数]についての最終的アーキテクチャを示す。 GCAを格納するための大きな組合せ論理回路を有する論理回路装置についての本発明に係るアーキテクチャを示す。 CGAを格納するための本発明に係る再構成可能なアーキテクチャを示す。

Claims (7)

  1. 少なくとも1つの構成可能または再構成可能な論理回路装置を有し、
    この論理回路装置が、縦続接続された3つのステージから成り、その際第2ステージは第1ステージで生成されるデータを処理しかつ処理されたデータを第3ステージに転送し、
    第1ステージは、複数の入力を備えかつ複数の並列に接続された記憶素子を有し、これらの記憶素子が入力線路を介してアドレス指定可能であり、インプリカント内で結合される入力変数の部分量が各記憶素子に供給され、
    第1ステージに後続接続された第2ステージが、個々のインプリカントの識別子によってアドレス指定可能な記憶素子を有し、
    第2ステージに後続接続された第3ステージが、出力と、第2ステージの記憶素子からの個々のインプリカントの出力値を論理和演算するための手段を備えており、
    時点t n-1 における出力のうち少なくとも幾つかの出力の出力変数が、時点t n における論理回路装置の付属する入力の入力変数を形成し、時点t n-1 とt n との間における論理回路装置の出力変数を記憶するためのクロック制御される手段が設けられていることを特徴とする計算機構の再構成可能な基本構造
  2. 出力変数を記憶するためのクロック制御される記憶手段がレジスタ記憶素子を有することを特徴とする請求項1記載の基本構造
  3. 最小化法によってインプリカントが求められることを特徴とする請求項1または2記載の基本構造
  4. 少なくとも1つのクロスバースイッチを介して第1ステージが第2ステージと結合されていることを特徴とする請求項1ないし3のいずれか1つに記載の基本構造
  5. 記憶素子としてCAMおよび/またはRAMが備えられることを特徴とする請求項1ないし4のいずれか1つに記載の基本構造
  6. 少なくとも1つのGCAがインプリメントされることを特徴とする請求項1ないしのいずれか1つに記載の基本構造
  7. 記憶素子としてTMR型の磁気抵抗記憶素子が備えられることを特徴とする請求項1ないしのいずれか1つに記載の基本構造
JP2006552599A 2004-02-13 2005-02-07 任意のアルゴリズムを並列計算するための再構成可能な論理回路装置 Expired - Fee Related JP5027515B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102004007232 2004-02-13
DE102004007232.9 2004-02-13
PCT/EP2005/050500 WO2005078599A1 (de) 2004-02-13 2005-02-07 Rekonfigurierbares schaltwerk zur parallelen berechung beliebiger algorithmen

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011241298A Division JP2012074051A (ja) 2004-02-13 2011-11-02 任意のアルゴリズムを並列計算するための再構成可能な論理回路装置

Publications (3)

Publication Number Publication Date
JP2007522571A JP2007522571A (ja) 2007-08-09
JP2007522571A5 JP2007522571A5 (ja) 2012-01-05
JP5027515B2 true JP5027515B2 (ja) 2012-09-19

Family

ID=34832667

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2006552599A Expired - Fee Related JP5027515B2 (ja) 2004-02-13 2005-02-07 任意のアルゴリズムを並列計算するための再構成可能な論理回路装置
JP2011241298A Pending JP2012074051A (ja) 2004-02-13 2011-11-02 任意のアルゴリズムを並列計算するための再構成可能な論理回路装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2011241298A Pending JP2012074051A (ja) 2004-02-13 2011-11-02 任意のアルゴリズムを並列計算するための再構成可能な論理回路装置

Country Status (5)

Country Link
US (1) US7352205B2 (ja)
JP (2) JP5027515B2 (ja)
CN (1) CN100388264C (ja)
DE (1) DE102005005073B4 (ja)
WO (1) WO2005078599A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7509479B2 (en) * 2004-09-16 2009-03-24 Siemens Aktiengesellschaft Reconfigurable global cellular automaton with RAM blocks coupled to input and output feedback crossbar switches receiving clock counter value from sequence control unit
US7801835B2 (en) * 2005-06-15 2010-09-21 International Business Machines Corporation Method for constructing autonomic advisors and learning procedural knowledge from scored examples
CN101325559B (zh) * 2008-07-28 2010-08-18 腾讯科技(深圳)有限公司 一种推荐游戏房间的方法、系统和游戏服务器
KR101274115B1 (ko) * 2009-10-06 2013-06-13 한국전자통신연구원 스크램블 장치 및 이의 동작 방법
US11113176B2 (en) 2019-01-14 2021-09-07 Microsoft Technology Licensing, Llc Generating a debugging network for a synchronous digital circuit during compilation of program source code
US11144286B2 (en) 2019-01-14 2021-10-12 Microsoft Technology Licensing, Llc Generating synchronous digital circuits from source code constructs that map to circuit implementations
US11093682B2 (en) 2019-01-14 2021-08-17 Microsoft Technology Licensing, Llc Language and compiler that generate synchronous digital circuits that maintain thread execution order
US11106437B2 (en) * 2019-01-14 2021-08-31 Microsoft Technology Licensing, Llc Lookup table optimization for programming languages that target synchronous digital circuits
US11275568B2 (en) 2019-01-14 2022-03-15 Microsoft Technology Licensing, Llc Generating a synchronous digital circuit from a source code construct defining a function call
US11923009B2 (en) * 2022-06-15 2024-03-05 Hewlett Packard Enterprise Development Lp Compact K-SAT verification with TCAMS

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996034346A1 (en) * 1995-04-28 1996-10-31 Xilinx, Inc. Microprocessor with distributed registers accessible by programmable logic device
US6247036B1 (en) * 1996-01-22 2001-06-12 Infinite Technology Corp. Processor with reconfigurable arithmetic data path
DE19843640A1 (de) 1998-09-23 2000-03-30 Siemens Ag Verfahren zum Konfigurieren eines konfigurierbaren Hardware-Blocks
JP4285877B2 (ja) * 1999-02-23 2009-06-24 株式会社リコー 動的再構成計算のためのメタアドレス指定アーキテクチャ及び動的再構成計算のためのメタアドレス指定方法
JP4558879B2 (ja) * 2000-02-15 2010-10-06 富士通株式会社 テーブルを用いたデータ処理装置および処理システム
JP2002026721A (ja) * 2000-07-10 2002-01-25 Fuji Xerox Co Ltd 情報処理装置
CA2458199A1 (en) * 2001-08-16 2003-02-27 Pact Xpp Technologies Ag Method for the translation of programs for reconfigurable architectures
DE10347975B4 (de) 2002-10-24 2008-10-09 Siemens Ag Einrichtung der programmierbaren Logik
JP4011007B2 (ja) * 2003-01-15 2007-11-21 三洋電機株式会社 リコンフィギュラブル回路を備えた集積回路装置および処理装置
DE102004044976A1 (de) * 2004-09-16 2006-03-30 Siemens Ag Rechnereinrichtung mit rekonfigurierbarer Architektur

Also Published As

Publication number Publication date
WO2005078599A1 (de) 2005-08-25
CN100388264C (zh) 2008-05-14
JP2007522571A (ja) 2007-08-09
US20070171101A1 (en) 2007-07-26
CN1918560A (zh) 2007-02-21
US7352205B2 (en) 2008-04-01
JP2012074051A (ja) 2012-04-12
DE102005005073A1 (de) 2005-09-08
DE102005005073B4 (de) 2009-05-07

Similar Documents

Publication Publication Date Title
JP5027515B2 (ja) 任意のアルゴリズムを並列計算するための再構成可能な論理回路装置
JP2007522571A5 (ja)
US11928590B2 (en) Methods and systems for power management in a pattern recognition processing system
KR101551045B1 (ko) 요소 이용을 위한 상태 그룹화
CN107609644B (zh) 用于状态机中的数据分析的方法及系统
US9304968B2 (en) Methods and devices for programming a state machine engine
US10114795B2 (en) Processor in non-volatile storage memory
WO2014035699A1 (en) Results generation for state machine engines
JP2008537268A (ja) 可変精度相互接続を具えたデータ処理エレメントの配列
CN111433758A (zh) 可编程运算与控制芯片、设计方法及其装置
US11947979B2 (en) Systems and devices for accessing a state machine
US20230176999A1 (en) Devices for time division multiplexing of state machine engine signals
CN102262611B (zh) 一种16位的risc cpu系统结构
US7509479B2 (en) Reconfigurable global cellular automaton with RAM blocks coupled to input and output feedback crossbar switches receiving clock counter value from sequence control unit
JP4468452B2 (ja) グローバルセルオートマトンを組み込むためのリコンフィギュアラブルなアーキテクチャをもつコンピュータ装置
TWI784845B (zh) 對可重配置處理器之資料流功能卸載
JP5532050B2 (ja) データ処理装置
Wiegand et al. Definition of a configurable architecture for implementation of global cellular automaton
Lázaro et al. Fast and efficient address search in System-on-a-Programmable-Chip using binary trees
Bunyk et al. Design of an RSFQ microprocessor
Fujioka et al. Configuration memory size reduction of a dynamically reconfigurable processor based on a register-transfer-level packet data transfer scheme
EP4011051B1 (en) A network packet processor for processing a data packet
ES2697693B2 (es) Nucleo ip, arquitectura que comprende un nucleo ip y procedimiento de diseno de un nucleo ip
JPWO2007113964A1 (ja) 多段論理回路の再構成装置及び再構成方法、論理回路修正装置、並びに再構成可能な多段論理回路
JPH113209A (ja) 動的な資源利用機能を備えたデータ処理システム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080205

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100511

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100730

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100730

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100806

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100910

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100917

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101008

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101018

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101111

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110705

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111102

A524 Written submission of copy of amendment under section 19 (pct)

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20111102

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20111220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120410

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120416

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120502

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120622

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150629

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

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

LAPS Cancellation because of no payment of annual fees