JP3925854B2 - マルチ・プロセッサ・システムにおけるプログラム - Google Patents
マルチ・プロセッサ・システムにおけるプログラム Download PDFInfo
- Publication number
- JP3925854B2 JP3925854B2 JP2002298685A JP2002298685A JP3925854B2 JP 3925854 B2 JP3925854 B2 JP 3925854B2 JP 2002298685 A JP2002298685 A JP 2002298685A JP 2002298685 A JP2002298685 A JP 2002298685A JP 3925854 B2 JP3925854 B2 JP 3925854B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- data
- program
- cache coherency
- executed
- 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
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の属する技術分野】
本発明は、マルチ・プロセッサ・システムで複数のプロセス(またはプログラムと言う)のスレッドをディスパッチするためのプログラムに関する。
【0002】
【従来の技術】
従来、マルチ・スレッド・プログラムの実行環境として、マルチ・プロセッサ・システムはWEBサーバの応用で特に成功を収めている。この場合、システムで実行されるプロセスは、プロキシやファイアーウォールなどのサーバ・プログラムである。分散処理をおこなう場合、1つのシステムで1つのサーバ・プログラムが実行されることもしばしばである。
【0003】
WEBサーバのマルチ・スレッド・プログラムは、非同期な複数のクライアントからのリクエストに応じて、ジョブの生成・消滅を繰り返す。これに対してCPU(central processing unit)サーバあるいはCPU Farmと呼ばれるサーバ用途では、性質の異なる複数のプログラム、例えば計算やCAD(computer aided design)などが実行される。
【0004】
マルチ・スレッド・プログラムを含むプロセスを1つ実行する場合、割り当て可能なプロセッサにプロセスのスレッドを全て割り当てることが最もプロセスの実行速度を高める。しかし、複数のプロセスが存在する場合、システムのスループットを最適化する方法でスレッドの割り当てをおこなう必要がある。
【0005】
例えば、8個のプロセスを同時に処理できるマルチ・プロセッサ・システムで、独立な8個のプロセスを実行する場合、1個のプロセスを処理するシングル・プロセッサ8台で実行したときと比較してスループットが著しく劣ることがある。これは、ユーザ空間の共有の結果生じた競合が効率を落とす原因と考えられている。
【0006】
マルチ・スレッド・プログラムは、スレッドの切り替えがプログラムの切り替えと比較して高速である。さらに異なるスレッド間で同じユーザ空間を共有しているため、スレッド間でのデータの受け渡しがポインタ渡しにできる。したがって、スレッド間のデータの受け渡しはコピー操作の必要なプログラム間のデータの受け渡しに比べて高速である。マルチ・スレッド・プログラムをマルチ・プロセッサ・システムで実行する場合、システムはキャッシュ・コヒーレントな共有メモリを有することが望ましい。なぜなら、異なるプロセッサで実行中のスレッド同士でデータの受け渡しをポインタ渡しでおこなうとき、ハードウェア・レベルでコピー操作が発生しないからである。
【0007】
マルチ・プロセッサ・システムは、マルチ・スレッド・プログラムの実行に最適化された結果、ハードウェア・レベルでのキャッシュ・コヒーレンシなサポートを加えられている。キャッシュ・コヒーレンシをハードウェアでサポートすることは、頻繁に起きるスレッド間のデータの受け渡し、すなわちスレッド間の通信に適している。
【0008】
しかし、スレッド間通信の頻度の低い独立したプログラム間でのデータの受け渡しに備えて、常にキャッシュ・コヒーレンシ・プロトコルを用いたデータ・アクセスを用いると、速度面で不要な処理が多くなる。CC−NUMA(cache coherence-non uniform memory access)型マルチ・プロセッサ・システムの例では、L2(レベル2)キャッシュ・ミスをした場合、ソフトウェアの介在なしに、データの所属するメモリを管理するホーム・ノードに属するタグ・メモリがアクセスされ、最新のデータを保持しているオーナ・ノードが自動的に照会される。また、スヌープ・キャッシュを用いた場合、常にアドレスを全キャッシュにブロードキャストする必要があるため、アドレスバスが1セットしかないと、スヌープを必要とするメモリ・アクセスを同時に複数発生させることができない。なお、タグ・メモリは、データをキャッシュしている状態を管理するメモリである。スヌープ・キャッシュは、コヒーレンシをハードウェアで自動管理するために使用するメモリである。L2キャッシュ・ミスは、キャッシュ・メモリが2層構造であり、1層に次いで2層でもキャッシュ・ミスをすることを言う。
【0009】
したがって、キャッシュ・コヒーレンシのハードウェアでのサポートは、マルチ・スレッド・プログラムを効率よくサポートするために適しているが、独立した複数のプログラムを実行する場合には却って不要なサポートである。
【0010】
【発明が解決しようとする課題】
本発明の目的は、マルチ・プロセッサ・システムで複数のプログラムを実行する場合、システムのスループットを最大化するように制御するプログラムを提供することにある。
【0011】
【課題を解決するための手段】
本発明のプログラムの要旨は、複数のプロセッサを含むマルチ・プロセッサ・システムで実行されるプロセスのスレッドをディスパッチするプログラムであって、前記マルチ・プロセッサ・システムを、前記複数のプロセッサにそれぞれプロセスのスレッドを割り当てるときの該プロセスの処理効率を判定するために、前記プロセスの実行時間の内のプロセッサでの処理時間とI/O待ちの時間との長さを比較する手段と、前記プロセッサでの処理時間またはI/O待ちの時間のいずれが長いかによって、前記プロセスを1つのプロセッサまたは複数のプロセッサで実行させることを選択する手段、として機能させるためのプログラムである。
【0012】
複数のプロセッサを含むマルチ・プロセッサ・システムで実行されるプロセスのスレッドをディスパッチする方法は、前記複数のプロセッサにそれぞれプロセスのスレッドを割り当てたときの該プロセスの処理効率を判定するステップと、前記プロセスを1つのプロセッサまたは複数のプロセッサで実行させるかを選択するステップと、を含む。
【0013】
【発明の実施の形態】
本発明のプログラムの実施の形態について図面を用いて説明する。なお、本明細書、図面1、2および4において、符号38は、符号38a,38b,P1,P2,P3を総括的に示す。
【0014】
本発明のプログラムは、図1に示すスレッドのディスパッチをおこなうプログラムである。言い換えると、本発明は、マルチ・プロセッサ・システムにおけるオペレーティング・システムのスケジューラの発明である。先ず、システムのスループットを最大化するための方法を説明する。
【0015】
図2は、オペレーティング・システム32とプロセス38を表したものである。T0からT4はプロセス38のスレッドを示し、これらのスレッドT0,T1,T2,T3,T4の位置がマルチ・プロセッサ・システム40における実行ポイントを示す。図2の例では、スレッドT0はスレッドT1,T2,T3,T4と同時実行可能なユーザ空間36のスレッドである。スレッドT1はシステム・コールによってスレッドT2,T3へとサービスを受けた後、スレッドT4にリターンする。
【0016】
なお、本明細書において、例えば図2のスレッドT0,T2,T3を異なるプロセッサに割り当てれば、最大3の並行度が得られるプロセス38であっても、1つのプロセッサ(シングル・プロセッサ)に割り当てることを、シングル・プロセッサ実行状態にすると言う。
【0017】
従来、例えばスレッドT0,T2,T3を異なるプロセッサにて並列実行する場合、データが共有されるため、キャッシュ・コヒーレンシ・プロトコルが必要である。スレッドT0からT4をシングル・プロセッサ実行する場合は、キャッシュ・コヒーレンシ・プロトコルは不要である。そこで、ユーザ空間36のデータは、対応するページテーブルにてコヒーレンシ不要とマークする。なお、ページテーブルは、メモリの記憶域をページ単位で管理するための表であり、仮想アドレスと物理アドレスの対応関係が格納される。この表を用いてキャッシュ制御、キャッシュ・コヒーレンシ制御を管理することができる。また、ページは、プログラムを等しい長さに分割した場合の分割された各部分である。
【0018】
キャッシュ・コヒーレンシ不要とマークする場合、例えば、図3のページテーブル42では、WIMビット・フィールドにて指定する。マルチ・プロセッサ・システム40に含まれるMMU(memory management unit)の機能が働いて、このユーザ空間36へのデータ・アクセスに関してハードウェア30はキャッシュ・コヒーレンシ・プロトコルを発生しない。
【0019】
ただし、このままでは他のプロセッサで実行されたプログラムとのデータ受け渡しの時に、キャッシュ・コヒーレンシが保たれない可能性がある。例えば、図2のスレッドT5が、図4のプロセッサuP2にて実行されている場合に、スレッドT5がキャッシュ・コヒーレンシ不要としたプロセスを有するユーザ空間36aを参照した場合、キャッシュ・コヒーレンシが保たれなくなる。
【0020】
上記の場合に、プロセッサへのディスパッチを変更して、スレッドT5も加えてシングル・プロセッサ実行状態にして、キャッシュ・コヒーレンシを保つ。ディスパッチを変更するイベントを発生するために、MMUのアシストを利用する。ページテーブル42において、このユーザ空間36を実行中の唯一のプロセッサからのみ読み書き可能とし、他のプロセッサからは読み書き不可能とする。スレッドT5に対しキャッシュ・コヒーレンシを破るデータの参照をおこなう前に割り込が発生し、スレッドT0,T1,T2,T3,T4と同じプロセッサへディスパッチさせる。
【0021】
ページに対する読み書きの属性は、図3のページテーブル42の例では、PPビット・フィールドで指定することによって、キャッシュ・コヒーレンシ・プロトコルを省略することが可能となる。
【0022】
ページテーブル42に記録された読み書きの属性の内容が、プロセッサによって異なって見えるが、これは、DSM(distributed shared memory)にてソフトウェア・キャッシュを実装する場合にも用いられる技術である。DSMのソフトウェア・キャッシュでは、ページ・フォルトを起こしたページをノード間で移動させることによってキャッシュ効果を得るのに対して、本発明では、ページ・フォルトを起こしたスレッドをノード間で移動させる点が異なる。なお、ページ・フォルトは、メモリに存在しないページに対するアクセスが起こったときに発生する割り込みである。
【0023】
全てのプロセス38をシングル・プロセッサ実行状態にしてしまうと、マルチ・プロセッサ・システム40の意味が失われる。そこで、本発明のプログラムは、下記のような構成にし、シングル・プロセッサ実行状態にすべきプロセス38を選択する。
【0024】
図1に示す本発明のプログラム10は、マルチ・プロセッサ・システム40を、複数のプロセッサ(マルチ・プロセッサ)28にそれぞれプロセス38a,38bのスレッドを割り当てたときのプロセス38a,38bの処理効率を判定する判定手段12、判定手段12の結果に基づいて、プロセス38a,38bをシングル・プロセッサ26またはマルチ・プロセッサ28で実行させるかを選択する選択手段14、として機能させるためのプログラムである。
【0025】
判定手段12は、プロセス38a,38bの実行状態を観測する観測部16と、プロセス38a,38bの処理効率を判定する判定部18とを含む。観測部16は、プロセス38a,38bの実行時間をプロセッサ26,28での処理の時間およびI/O(input/output)待ちの時間とに分割する分割手段(図示せず)と、処理の時間とI/O待ちの時間とを比較する比較手段(図示せず)と、を含む。比較手段の比較結果を用いて、判定部18がプロセス38a,38bの処理効率を判定する。
【0026】
選択手段14は、メモリ管理部20とタスク・ディスパッチャ22とを含む。メモリ管理部20は、メモリ24にあるプロセス38a,38bに対して、キャッシュ・コヒーレンシをオンにするかオフにするかをおこなう。タスク・ディスパッチャ22は、マルチ・プロセッサ実行かシングル・プロセッサ実行を選択する。
【0027】
本発明は、判定手段12と選択手段14によって、シングル・プロセッサ26で実行されているプロセス38aが処理するデータに他のプロセッサからのアクセスするとき、そのアクセスを中止し、そのアクセスを上記シングル・プロセッサ26に変更する。すなわち、他のプロセッサからのアクセスに対して割り込みを発生させ、シングル・プロセッサ26にそのアクセスを変更する。
【0028】
本発明は、判定手段12と選択手段14によって、シングル・プロセッサ26で実行されているプロセス38aが処理するデータに対して、シングル・プロセッサ26がデータの読み書きをおこない、他のプロセッサに対してデータの読み書きを禁止する。
【0029】
次に、上記のプログラム10によるディスパッチ方法について説明する。プログラム10は、マルチ・プロセッサ28にそれぞれプロセス38a,38bのスレッドを割り当てたときの処理効率を判定し、シングル・プロセッサ実行またはマルチ・プロセッサ実行を選択する。
【0030】
判定をおこなうとき、▲1▼I/Oバウンドが発生する処理の場合、CPUで消費されるわずかな時間でプロセスを並列処理したとしても、その効果は限られている。そこで、プロセス38a,38bの実行時間をプロセッサ28での処理時間とI/O待ちの時間とに分割し、処理時間とI/O待ちの時間とを比較する。比較の結果、I/O待ちの時間の方が長い場合、シングル・プロセッサ実行する。図1ではプロセス38aがシングル・プロセッサ実行となっている。I/Oバウンドは、データの処理おいてハードディスク上の仮想記憶領域を使用すること、すなわちスワップファイルを生成することをいう。
【0031】
▲2▼プログラム10を含むオペレーティング・システム42上で動作するアプリケーション・プログラムがシングル・スレッド・プログラムである場合もシングル・プロセッサ実行の候補となる。この場合は、オペレーティング・システム32がマルチ・スレッド・プログラムであれば、アプリケーション・プログラムはマルチ・スレッド・プログラムのように振る舞う。しかし、I/Oバウンドの発生が予想されるため、オペレーティング・システム32は、アプリケーション・プログラムがプロセス処理の並行性を持たない場合は、シングル・プロセッサ実行の候補とする。すなわち、本発明のプログラムは、上記の場合に、選択手段14がシングル・プロセッサ実行を選択する。
【0032】
▲3▼単独で実行されるときにマルチ・プロセッサ実行に適しているプロセス38でも、複数のプロセス38が実行される場合には処理効率が悪いという場合がある。この様な処理もシングル・プロセッサ実行の候補とする。すなわち、本発明のプログラム10は、判定手段12が個々のプロセス38a,38bにおけるマルチ・プロセッサ実行の処理効率を判定し、判定の結果が上記のような場合に、選択手段14がシングル・プロセッサ実行を選択する。例えば、図1でプロセス38aがマルチ・プロセッサ実行に適していても、選択手段14によってシングル・プロセッサ実行となる。
【0033】
本発明のプログラム10を有するマルチ・プロセッサ・システム40において、マルチ・プロセッサ実行に適したマルチ・スレッド・プログラムを持つプロセス38は、ハードウェア・レベルでのキャッシュ・コヒーレンシ・サポートを与えられたマルチ・プロセッサ28にて並行処理する。
【0034】
図4において、プロセスP3は2つのプロセッサuP3,uP4で処理される。プロセッサuP3,uP4で発生するデータ・アクセスは、キャッシュ・コヒーレンシ・プロトコルを発生する。
【0035】
マルチ・プロセッサ実行に適さないプロセス38は、シングル・プロセッサ実行され、他のプロセッサとのキャッシュ・コヒーレンシは、MMUのアシストなどを使ったソフトウェア制御方法のみ保たれる。図4のプロセスP1,P2をそれぞれ実行するプロセッサuP1,uP2の発生するユーザ空間36a,36bに対するデータ・アクセスはキャッシュ・コヒーレンシ・プロトコルを発生しない。この結果、キャッシュ・コヒーレンシ・プロトコルのバンド幅は緩和され、システム40のスループットは向上する。
【0036】
キャッシュ・コヒーレンシ・プロトコルを発生しないため、プロセスP1に対して、プロセッサuP2からのアクセスをおこなうとき、上記の割り込み手段がそのアクセスに対して割り込みを発生させる。そして、割り込みの発生後、プロセッサuP2からプロセッサuP1にスレッドを割り当てて、アクセスをおこなう。
【0037】
また、MMUによって、あるプロセッサで実行されているプロセス38が処理するデータに対して、そのプロセッサがデータの読み書きをおこない、他のプロセッサに対してデータの読み書きを禁止するようにシステム40を制御する。
【0038】
以上、本発明の実施の形態を説明したが、本発明は上記の形態に限定されることはない。上記の説明はキャッシュをL1(レベル1)キャッシュを前提に説明をおこなっており、シングル・プロセッサ実行状態とは、シングル・プロセッサでスレッドを実行することであった。同じアイデアをL2キャッシュに応用することができる。この場合、シングル・プロセッサ・ノード実行状態にする。シングル・プロセッサ・ノード実行状態とは、同じノードに属する複数のプロセッサが1つのプロセスに属する複数のタスクを処理する状態を言う。
【0039】
キャッシュ・コヒーレンシ・プロトコルを省略する空間を、実装が容易で、効果の高いユーザ空間としたが、システム空間の一部に応用することは可能である。すなわち、システム空間の用途を分類し、分類された中でキャッシュ・コヒーレンシ・プロトコルを省略できる部分に適用する。
【0040】
その他、本発明は、主旨を逸脱しない範囲で当業者の知識に基づき種々の改良、修正、変更を加えた態様で実施できるものである。
【0041】
【発明の効果】
本発明によると、マルチ・プロセッサ・システムにおいて、プロセスのディスパッチを最適におこなうため、システムのスループットを下げることなく、全てのプロセスを処理することができる。
【図面の簡単な説明】
【図1】本発明のプログラムの構成およびディスパッチの様子を示す図である。
【図2】プロセスのスレッドの実行状態を示す図である。
【図3】キャッシュ・コヒーレンシを保つためのページテーブルの例を示す図である。
【図4】マルチ・プロセッサ・システムの例を示す図である。
【符号の説明】
10:プログラム
12:判定手段
14:選択手段
16:観測部
18:判定部
20:メモリ管理部
22:タスク・ディスパッチャ
24:メモリ
26:シングル・プロセッサ
28:マルチ・プロセッサ
30:ハードウェア
32:オペレーティング・システム
34,34a,34b,34c:システム空間
36,36a,36b,36c:ユーザ空間
38:プロセス
40:マルチ・プロセッサ・システム
42:ページテーブル
Claims (3)
- 複数のプロセッサを含むマルチ・プロセッサ・システムで実行されるプロセスのスレッドをディスパッチするプログラムであって、
前記マルチ・プロセッサ・システムを、
前記複数のプロセッサにそれぞれプロセスのスレッドを割り当てるときの該プロセスの処理効率を判定するために、前記プロセスの実行時間の内のプロセッサでの処理時間とI/O待ちの時間との長さを比較する手段、
前記プロセッサでの処理時間またはI/O待ちの時間のいずれが長いかによって、前記プロセスを1つのプロセッサまたは複数のプロセッサで実行させることを選択する手段、
前記1つのプロセッサで実行されるプロセスで処理されるデータに対してキャッシュ・コヒーレンシの不要をマークするページテーブル、
前記ページテーブルにおいてキャッシュ・コヒーレンシが不要とマークされているデータが、前記1つのプロセッサで実行されているプロセスで処理されており、該データに他のプロセッサからアクセスするとき、該アクセスに対して割り込みを発生させる手段、
前記割り込みの後、前記他のプロセッサから前記プロセスを実行している1つのプロセッサにプロセスのスレッドを割り当てる手段、
前記1つのプロセッサで実行されているプロセスが処理するデータに対して、該1つのプロセッサが該データの読み書きをおこない、前記他のプロセッサに対して該データの読み書きを禁止し、且つ前記キャッシュ・コヒーレンシの不要のマークによってキャッシュ・コヒーレンシ・プロトコルを発生しないようにするMMU( memory management unit )、
として機能させるためのプログラム。 - 前記選択する手段が、前記I/O待ちの時間が長い場合に1つのプロセッサでのプロセスの実行を選択する請求項1に記載のプログラム。
- 前記プロセスがシングル・スレッド・プロセスである場合、前記選択する手段が1つのプロセッサでのプロセスの実行を選択する請求項1または2に記載のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002298685A JP3925854B2 (ja) | 2002-10-11 | 2002-10-11 | マルチ・プロセッサ・システムにおけるプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002298685A JP3925854B2 (ja) | 2002-10-11 | 2002-10-11 | マルチ・プロセッサ・システムにおけるプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004133753A JP2004133753A (ja) | 2004-04-30 |
JP3925854B2 true JP3925854B2 (ja) | 2007-06-06 |
Family
ID=32288016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002298685A Expired - Fee Related JP3925854B2 (ja) | 2002-10-11 | 2002-10-11 | マルチ・プロセッサ・システムにおけるプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3925854B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5035299B2 (ja) * | 2009-06-15 | 2012-09-26 | 株式会社日立製作所 | マルチコアプロセッサ制御方法、その計算機システム、及び管理計算機のプログラム |
EP2581834A4 (en) | 2010-06-14 | 2014-12-31 | Fujitsu Ltd | MULTICULTURAL PROCESSOR SYSTEM, INTERMEDIATE COHERENCE CONTROL PROCEDURE, AND INTERMEDIATE COHERENCE CONTROL PROGRAM |
-
2002
- 2002-10-11 JP JP2002298685A patent/JP3925854B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004133753A (ja) | 2004-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6871219B2 (en) | Dynamic memory placement policies for NUMA architecture | |
JP4085389B2 (ja) | マルチプロセッサシステム、マルチプロセッサシステムにおける一貫性制御装置及び一貫性制御方法 | |
US7143412B2 (en) | Method and apparatus for optimizing performance in a multi-processing system | |
JP4082612B2 (ja) | 複数のコヒーレンシ領域およびキャッシュ・パージのないコヒーレンシ領域間ソフトウェア・プロセス移行を備えるマルチプロセッサ・コンピュータ・システム | |
US6526481B1 (en) | Adaptive cache coherence protocols | |
US6816947B1 (en) | System and method for memory arbitration | |
US5761729A (en) | Validation checking of shared memory accesses | |
US20060206635A1 (en) | DMA engine for protocol processing | |
US10169087B2 (en) | Technique for preserving memory affinity in a non-uniform memory access data processing system | |
JPH10143483A (ja) | ミグラトリ・データ・アクセス・パターンを検出し、効果的に提供するように構成されたマルチプロセスシステム | |
JPH03217963A (ja) | マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法 | |
Kaushik et al. | Designing predictable cache coherence protocols for multi-core real-time systems | |
US20060294319A1 (en) | Managing snoop operations in a data processing apparatus | |
US6457107B1 (en) | Method and apparatus for reducing false sharing in a distributed computing environment | |
CN115981833A (zh) | 一种任务处理方法及装置 | |
US20090083496A1 (en) | Method for Improved Performance With New Buffers on NUMA Systems | |
CN116762068A (zh) | 地址映射感知任务分配机制 | |
JP3925854B2 (ja) | マルチ・プロセッサ・システムにおけるプログラム | |
CN108845969B (zh) | 适用于不完全对称多处理微控制器的操作控制方法及操作*** | |
JPWO2008114415A1 (ja) | マルチプロセッシングシステム | |
Mallya et al. | Simulation based performance study of cache coherence protocols | |
JP2002202960A (ja) | データ処理方法および装置 | |
García-Guirado et al. | Energy-efficient cache coherence protocols in chip-multiprocessors for server consolidation | |
Unrau | Scalable memory management through hierarchical symmetric multiprocessing. | |
JP5847313B2 (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060221 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060419 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061107 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061211 |
|
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: 20070213 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20070215 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070223 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |