JP3964821B2 - プロセッサ、キャッシュシステム及びキャッシュメモリ - Google Patents
プロセッサ、キャッシュシステム及びキャッシュメモリ Download PDFInfo
- Publication number
- JP3964821B2 JP3964821B2 JP2003115975A JP2003115975A JP3964821B2 JP 3964821 B2 JP3964821 B2 JP 3964821B2 JP 2003115975 A JP2003115975 A JP 2003115975A JP 2003115975 A JP2003115975 A JP 2003115975A JP 3964821 B2 JP3964821 B2 JP 3964821B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- tag information
- data
- task
- determination
- 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】
【従来の技術】
プロセッサは、メインメモリに格納されているプログラムを読み出して、プログラムに記述されている処理を行う。メインメモリはDRAMで構成されるのが一般的であり、プロセッサの動作速度より遅い速度で動作する。また、プログラムが求めるメインメモリのメモリ容量は年々増える傾向にあるため、メインメモリをプロセッサに近接して配置できるとは限らず、プロセッサとは別の基板にメインメモリを実装することも多い。このため、プロセッサがメインメモリにアクセスするのにはかなりの時間を要し、プロセッサの処理性能が低下する要因になる。
【0003】
このような不具合を解消するために、プロセッサとメインメモリとの間に高速アクセスが可能なキャッシュメモリを設け、プロセッサがメインメモリにアクセスする頻度を少なくして、プロセッサの全体的な処理性能を上げる技術が一般的に用いられている。キャッシュメモリを用いることにより、プロセッサが同一アドレスに対するアクセスを複数回行った場合に、2回目以降のアクセスについてはメインメモリへのアクセスを不要となる。
【0004】
キャッシュメモリは、DRAMよりも価格の高い高速SRAMで構成されるのが一般的であり、価格的にもメモリ容量をあまり増やせない。このため、必要に応じて、キャッシュメモリ内のデータを更新する必要がある。
【0005】
例えば、リアルタイム処理等のタスクを頻繁に切り替える必要のある処理の場合、処理を切り替えるたびにタスクの情報をメインメモリから読み出してキャッシュメモリに書き込まなければならない。キャッシュメモリはメモリ容量が大きくないため、次々に異なるタスクの情報を書き込むと、古いデータがどんどん上書きされて消去されてしまう(特許文献1参照)。
【0006】
また、繰り返し処理することが予想されるタスクに専用のキャッシュを割り当てる方法も提案されているが、他のタスクに対するキャッシュメモリの汎用性を損ないかねない(特許文献2参照)。
【0007】
【特許文献1】
特表2000-509528公報
【特許文献2】
特開2001-256107公報
【0008】
【発明が解決しようとする課題】
キャッシュメモリは、プロセッサが同一アドレスに対するアクセスを何回も行う場合に、高速アクセスの効果を発揮する。ところが、プロセッサが頻繁にタスクを切り替えて、その切り替えのたびにキャッシュメモリ内のデータを更新する場合、プロセッサが発行したアドレスに対応するデータがキャッシュメモリに格納されていないことが多くなり、キャッシュメモリのアクセス速度が低下してしまう。
【0009】
本発明は、このような点に鑑みてなされたものであり、その目的は、タスクを時分割で実行する場合に、キャッシュメモリの利用効率を向上させることができるプロセッサ、キャッシュシステム及びキャッシュメモリを提供することにある。
【0010】
【課題を解決するための手段】
本発明の一態様によれば、メインメモリとは別に、前記メインメモリに記憶すべきデータを、前記メインメモリに記憶するデータとの一貫性を保証するように一時的に記憶するキャッシュメモリを備え、複数のタスクを時分割で処理するプロセッサにおいて、
次に実行すべきタスクを決定する実行タスク決定手段を備え、
前記キャッシュメモリは、
次に実行すべきタスクで使用されるデータと該データに対応するタグ情報とを格納するキャッシュ手段と、
実行予定の複数のタスクのそれぞれごとに、対応するタスクで使用されるデータに対応するタグ情報を格納するタグ情報格納手段と、
前記実行タスク決定手段の決定に応じて、前記キャッシュ手段と前記タグ情報格納手段との間で前記タグ情報の入れ替えを行う第1転送手段と、
前記実行タスク決定手段の決定に応じて、次に実行すべきタスクで使用されるデータを前記メインメモリから前記キャッシュ手段に転送する第2転送手段と、
前記キャッシュ手段を利用してタスクを実行する際、発行されたアドレスに対応するデータが前記キャッシュ手段に存在するか否かを判定する判定手段と、を有することを特徴とするプロセッサが提供される。
【0012】
また、メインメモリとは別に、前記メインメモリに記憶すべきデータを、前記メインメモリに記憶するデータとの一貫性を保証するように一時的に記憶するキャッシュメモリを備え、複数のタスクを時分割で処理するプロセッサにおいて、次に実行すべきタスクを決定する実行タスク決定手段を備え、前記キャッシュメモリは、実行すべきタスクで使用されるデータと該データに対応するタグ情報とを格納する第1及び第2キャッシュ手段と、実行予定の複数のタスクのそれぞれに対応するタグ情報を格納する複数のタグ保存部を有するタグ情報格納手段と、前記実行タスク決定手段の決定に応じて、前記第1または第2キャッシュ手段と、前記タグ情報格納手段と、の間でタグ情報の入れ替えを行う第1転送手段と、前記メインメモリと、前記第1転送手段がタグ情報を入れ替えた前記第1または第2キャッシュ手段との間で、前記入れ替えたタグ情報に対応するデータの入れ替えを行う第2転送手段と、前記第1キャッシュ手段を利用してタスクを実行する際、発行されたアドレスに対応するデータが前記第1キャッシュ手段に存在するか否かを判定する第1判定手段と、前記第2キャッシュ手段を利用してタスクを実行する際、発行されたアドレスに対応するデータが前記第2キャッシュ手段に存在するか否かを判定する第2判定手段と、前記第1及び第2判定手段の判定結果のいずれか一方を選択して出力する判定選択手段と、を備える。
【0013】
【発明の実施の形態】
以下、本発明に係るプロセッサ、キャッシュシステム及びキャッシュメモリについて、図面を参照しながら具体的に説明する。
【0014】
(第1の実施形態)
図1は本発明に係るプロセッサの第1の実施形態のブロック図、図2は図1の詳細ブロック図である。
【0015】
図1及び図2に示すように、本実施形態のプロセッサは、実行タスク決定部1と、プロセッサコア2と、キャッシュメモリ3とを備えている。実行タスク決定部1は、実行中のタスク、実行予定のタスク、及び実行待機状態のタスクのうち最も優先順位の低いタスクを決定し、決定したタスクに関する情報(以下、タスク情報)をキャッシュメモリ3に通知する。プロセッサコア2は、実行タスク決定部1からのタスク情報に基づいてタスクの処理を行う。
【0016】
キャッシュメモリ3は、データ保存部4とエントリ選択部5とを有する。データ保存部4は、図2に示すように、複数のタスク情報格納領域6を有する。これら各タスク情報格納領域6はそれぞれ別個のタスクに対応して設けられ、対応するタスクで使用するデータと該データに対応するタグ情報とを格納する。図2の例では、データ保存部4は、タスクA,B,E,Dのそれぞれについてのタスク情報格納領域6を有する。
【0017】
ここで、タグ情報とは、対応するデータにアクセスするためのアドレス情報と、該データが有効か否かを示す有効フラグとを含んでいる。アドレス情報は、物理アドレスでもよいし、仮想アドレスでもよい。
【0018】
タスク情報格納領域6の数は、キャッシュメモリ3の容量やプロセッサで実行されるタスクの特性などに応じて定めるのが望ましい。本実施形態では、一例として、プロセッサが持つレジスタセットの数だけタスク情報格納領域6を設けるものとする。
【0019】
エントリ選択部5は、図2に示すように、領域管理テーブル7と、領域選択部8と、キャッシュヒット判定部9とを有する。領域管理テーブル7は、各タスク情報格納領域6にどのタスクのデータ及びタグ情報を格納するかを管理する。
【0020】
プロセッサがメモリアクセスを行う場合、領域選択部8は、現在プロセッサが実行しているタスクIDを実行タスク決定部1から取得し、そのタスクIDのデータやタグ情報がどのタスク情報格納領域6に格納されているかを領域管理テーブル7に基づいて検出し、アクセスすべきタスク情報格納領域6を選択する。
【0021】
プロセッサの実行タスクが切り替わると、領域選択部8により選択されるタスク情報格納領域6も切り替わる。領域選択部8は、実行タスク決定部1からのタスク情報に基づいて、いずれかのタスク情報格納領域6を選択する。
【0022】
タスク情報格納領域6内のデータ構成は特に問わないが、図2の例では、ダイレクト・マッピング(direct mapping)と呼ばれる方式を採用している。この他、セット・アソシアティブ(set associative)方式やフル・アソシアティブ(full associative)方式を採用してもよいし、それ以外の方式を採用してもよい。
【0023】
タスク情報格納領域6のデータサイズは、プロセッサの種類や、プロセッサが実行するタスクの性質に応じて適宜定めるのが望ましい。対応するデータとタグ情報の1組をエントリと呼び、各タスク情報格納領域6は、複数のエントリを有する。エントリはキャッシュラインとも呼ばれる。
【0024】
図2はデータ保存部4内にタスクA,B,E,Dの4つのタスク情報格納領域6を設ける例を示しているが、タスク情報格納領域6の数には特に制限はない。また、各タスク情報格納領域6内に格納する情報の種類にも特に制限はない。
【0025】
プロセッサが実行したタスクが新規のタスクで、その新規のタスクに対応する領域がデータ保存部4に存在しない場合、領域選択部8は、その新規のタスクに対していずれかのタスク情報格納領域6を割当てる。このとき、すべてのタスク情報格納領域6が使用中の場合、起動される可能性が最も低い(すなわち最も優先順位が低い)タスクに割当てられていたタスク情報格納領域6を、その新規のタスクに対して割当てる。
【0026】
実行タスク決定部1は、次に実行すべきタスクを決定するだけでなく、実行待機中の各タスクの優先順位も管理している。領域管理テーブル7は、実行タスク決定部1からのタスク情報に基づいて、各タスクの実行優先順位を保持する。この保持内容に基づいて、領域選択部8は、最も優先順位の低いタスクを特定する。
【0027】
エントリ選択部5内のキャッシュヒット判定部9は、メモリアクセスで要求されるアドレスと、領域選択部8で選択された領域の該当エントリのタグ情報とを比較する。両者が一致すれば、メモリアクセスで要求されたアドレスに対応するデータがキャッシュメモリ3内に存在すると判断して、キャッシュヒットしたことをプロセッサコア2に伝達する。両者が一致しなければ、キャッシュミスしたことをプロセッサコア2に伝達するとともに、メインメモリ10に対して要求データを送信するよう指示する。
【0028】
キャッシュメモリ3にデータの書き込みがあった場合の管理手法には、キャッシュへの書き込みがあった場合にすぐにメインメモリ10にデータを書き戻すライトスルー手法と、すぐには書き込まずに後に必要が生じたときのみ書き戻すライトバック手法とがある。
【0029】
ライトスルー手法を利用する場合は特に問題は生じないが、ライトバック手法を用いる場合、タスク間で共有するデータがあった場合にデータの一貫性に関する問題が生じる。
【0030】
そこで、ライトバック手法を用いる場合、キャッシュメモリ3内のデータをメインメモリ10に書き戻す場合以外に、タスクの切替に伴ってデータの更新を行う必要のあるタスク情報格納領域6のデータを書き戻す必要がある。
【0031】
このように、第1の実施形態では、複数のタスクに関するタスク情報をデータ保存部4に保存しておき、新しいタスクを実行する予定がある場合には、そのタスク情報を最も優先順位の低いタスクのタスク情報と入れ替えるようにしたため、タスク切替時にデータ保存部4のデータを入れ替えるのに時間がかからなくなり、タスクの切替を短時間で行うことができる。また、どのタスクを実行する場合でも、そのタスクで使用されるデータやタグ情報を予めデータ保存部4に保存しておくため、キャッシュミスを低減でき、メモリアクセスの高速化が図れる。
【0032】
(第2の実施形態)
第2の実施形態は、キャッシュデータとは別に、複数のタスクについてのタグ情報だけを格納する領域を設けるものである。
【0033】
図3は本発明に係るプロセッサの第2の実施形態のブロック図である。図3では、図2と共通する構成部分には同一符号を付しており、以下では相違点を中心に説明する。
【0034】
図3のプロセッサは、実行中または実行すべきタスクで使用するデータと該データに対応するタグ情報とを格納するキャッシュ部11と、実行予定の複数のタスクそれぞれに対応するタグ情報を格納するタグ保存部12と、キャッシュ部11とタグ保存部12との間でタグ情報の入れ替えを行うタグ転送部13と、キャッシュ部11とメインメモリ10との間でデータの入れ替えを行うデータ転送部14と、キャッシュヒットしたか否かを判定するキャッシュヒット判定部9とを備えている。
【0035】
図3に示すように、プロセッサコア2から出力されるアドレス2aは3つの部分に分かれており、上位ビット列はキャッシュビット判定部9に供給され、中位ビット列はインデックスアドレスとしてキャッシュ部11に供給される。
【0036】
タグ保存部12は、複数のタスクのそれぞれごとに、キャッシュ部11のエントリ数と同じ数だけタグ情報を格納する。タグ情報は、データに対応するアドレス情報と、該データが有効か否かを示す有効フラグとを含む。
【0037】
図3では、キャッシュ部11がダイレクトマップ方式で構成される例を示しているが、セット・アソシアティブ方式やフル・アソシアティブ方式で構成されていてもよい。
【0038】
例えば、図4は、キャッシュ部11とタグ保存部12を4ウェイway1〜way4のセット・アソシアティブ方式で構成する場合のブロック図である。この場合、キャッシュ部11は、4つのウェイway1〜way4それぞれについてのデータ及びタグ情報を格納する。
【0039】
タグ転送部13は、実行タスク決定部1にて新たなタスクの実行が決定されると、キャッシュ部11に格納されているタグ情報をタグ保存部12に転送するとともに、新たなタスクに対応するタグ情報をタグ保存部12からキャッシュ部11に転送する。
【0040】
また、データ転送部14は、実行タスク決定部1にて新たなタスクの実行が決定されると、キャッシュ部11に格納されているデータを必要に応じてメインメモリ10に転送するとともに、新たなタスクに対応するデータをメインメモリ10からキャッシュ部11に転送する。より具体的には、キャッシュ部11がライトバックで動作している場合、メインメモリ10にまだ書き戻していないキャッシュ部11のデータをメインメモリ10に書き戻す。
【0041】
以下、図3のプロセッサの動作を説明する。実行タスク決定部1が新たなタスクの実行を決定すると、プロセッサコア2は現在実行中のタスクを停止する。タグ転送部13は、キャッシュ部11のタグ情報をタグ保存部12に転送する。このとき、タグ保存部12に空きがない場合には、最も優先順位の低いタスクのタグ情報を削除して、その領域に、キャッシュ部11のタグ情報を格納する。また、データ転送部14は、キャッシュ部11のデータを必要に応じてメインメモリ10に転送する。
【0042】
次に、タグ転送部13は、次に実行すべきタスクのタグ情報をタグ保存部12から読み出してキャッシュ部11に転送する。転送完了後、タグ転送部13は、データ転送部14に対して開始信号を通知する。データ転送部14は、キャッシュ部11のタグ情報を読み出し、そのタグ情報に対応するデータをメインメモリ10から読み出して、タグ情報と対応づけてキャッシュ部11に格納する。
【0043】
キャッシュ部11には、エントリの数分だけタグ情報とデータを格納でき、インデックスの値によりキャッシュ部11の特定のエントリを指定できる。すなわち、プロセッサコア2は、タグ情報とインデックスの値を指定することで、キャッシュ部11内の特定のデータにアクセスできる。
【0044】
データ転送部14は、タグ情報の一部である有効フラグが「0」であれば、メインメモリ10からのデータ転送を行わない。これにより、データ転送量を削減できる。
【0045】
キャッシュ部11のすべてのエントリについてのデータ転送が完了すると、データ転送部14は完了信号を送出する。この信号を受けて、プロセッサコア2は新たなタスクの実行を開始する。
【0046】
上述した実施形態において、タグ転送部13は、有効フラグを確認し、「1」であるタグ情報のみをキャッシュ部11からタグ保存部12に転送してもよい。また、タグ転送部13がキャッシュ部11にタグ情報を転送した後、キャッシュ部11内のすべての有効フラグをリセット(「1」に設定)してもよい。
【0047】
このように、第2の実施形態では、実行予定の複数のタスクのタグ情報だけをタグ保存部12に保存しておき、タスクの切替を行う際には、タグ転送部13を用いてキャッシュ部11とタグ保存部12との間でタグ情報の入れ替えを行い、かつデータ転送部14を用いてキャッシュ部11とメインメモリ10との間でデータの入れ替えを行うため、タスクの切替を迅速に行うことができ、タスクを切り替えた直後でもキャッシュメモリ3のキャッシュヒット率が低下しなくなる。
【0048】
また、タグ転送部13やデータ転送部14でタグ情報やデータの転送を行う際には、有効フラグを確認して必要なものだけ転送を行うため、転送時間を短縮できることから、タスクの切替を迅速化できる。
【0049】
(第3の実施形態)
第3の実施形態は、第2の実施形態の変形例であり、キャッシュ部11のすべてのエントリに対応して書き換えフラグを設けるものである。
【0050】
図5は本発明に係るプロセッサの第3の実施形態の概略構成の一例を示すブロック図である。図5のプロセッサは、キャッシュ部11の構成のみが図3と異なっている。図5のキャッシュ部11は、データ及びタグ情報の他に、各エントリごとに書き換えフラグf1を有する。この書き換えフラグf1は、タグ転送部13がキャッシュ部11内のタグ情報を書き換えたか否かを表すものであり、例えば「1」が書き換えられたことを示し、「0」が書き換えられなかったことを示す。書き換えフラグf1は、キャッシュ部11の各エントリごとに設けられる。
【0051】
実行タスク決定部1が実行タスクの変更を決定すると、プロセッサコア2はタスクの実行を停止する。タグ転送部13は、キャッシュ部11内で有効フラグが「1」であるタグ情報の内容を、タグ保存部12内の対応領域に格納する。また、キャッシュがライトバックで動作している場合には、キャッシュ内でメインメモリ10に書き戻していないデータをメインメモリ10に書き戻す。その後、キャッシュ部11のすべての書き換えフラグf1をリセット(「0」に設定)する。
【0052】
次に、タグ転送部13は、次に実行予定のタスクのタグ情報のうち、有効フラグが「1」であるタグ情報をタグ保存部12からキャッシュ部11に転送する。このとき、転送を行ったタグ情報に対応するエントリの書き込みフラグを「1」にセットする。
【0053】
転送完了後、タグ転送部13はデータ転送部14に開始信号を送信する。データ転送部14は、キャッシュ部11内のタグ情報を読み取り、そのタグ情報に対応する書き込みフラグが「1」の場合のみ、対応するデータをメインメモリ10から読み出して、キャッシュ部11内の対応領域に格納する。
【0054】
データ転送部14が、キャッシュ部11内の書き換えフラグf1が「1」であるすべてのタグ情報に対応するデータの転送を終了すると、データ転送部14は完了信号を出力する。これにより、プロセッサコア2は新たなタスクの実行を開始する。
【0055】
このように、第3の実施形態では、キャッシュ部11の各エントリごとに、タグ転送部13がタグ情報の書き換えを行ったか否かを示す書き換えフラグf1を設けるため、データ転送部14は、タグ情報の書き換えを行ったエントリだけ、データを転送すればよくなり、データの転送量を大幅に削減でき、タスクの切替を迅速化できる。
【0056】
(第4の実施形態)
第4の実施形態は、第2の実施形態の変形例であり、書き換えフラグf1を設けることなく、第3の実施形態と同様に、書き換えを行ったエントリだけデータ転送部14がデータの転送を行うものである。
【0057】
図6は本発明に係るプロセッサの第4の実施形態の概略構成の一例を示すブロック図である。図6のプロセッサは、タグ転送部13の機能が異なる他は、図3と同様に構成されている。
【0058】
タグ転送部13は、タグ保存部12からキャッシュ部11への転送を行った場合、転送したキャッシュ部11のエントリと転送したタグ情報に対応するメインメモリ10のアドレスとをデータ転送部14に通知する。データ転送部14は、通知されたアドレスのデータをメインメモリ10から読み出し、そのデータを通知されたキャッシュ部11のエントリに転送する。
【0059】
次に、第4の実施形態のプロセッサの動作を説明する。実行タスク決定部1が実行タスクの変更を決定すると、プロセッサコア2はタスクの実行を停止する。タグ転送部13は、キャッシュ部11の中から有効フラグが「1」のタグ情報を読み出して、タグ保存部12に転送する。
【0060】
また、データ転送部14は、キャッシュ部11がライトバックで動作している場合には、まだメインメモリ10に書き戻していないキャッシュ部11のデータをメインメモリ10に書き戻す。
【0061】
次に、タグ転送部13は、キャッシュ部11の全エントリの中から有効フラグが「1」のタグ情報とエントリを抽出する。そして、抽出したエントリとそのタグ情報に対応するメインメモリ10のアドレスとをデータ転送部14に通知する。
【0062】
データ転送部14は、通知されたアドレスのデータをメインメモリ10から読み出して、通知されたエントリに転送する。
【0063】
データ転送部14がすべてのエントリについてのデータ転送を終えると、タグ転送部13は完了信号を出力し、これにより、プロセッサコア2は新たなタスクの実行を開始する。
【0064】
このように、第4の実施形態では、タグ転送部13がデータ転送部14に対して、データ転送を行うべきエントリとアドレスを通知するため、データ転送部14は、必要最小限のデータ転送だけを行えばよくなり、データの転送効率が向上し、タスクの切替を迅速化できる。
【0065】
(第5の実施形態)
第5の実施形態は、複数のキャッシュ部11を備えたものである。
【0066】
図7は本発明に係るプロセッサの第5の実施形態の概略構成の一例を示すブロック図である。図7のプロセッサは、2つのキャッシュ部11a,11bと、各キャッシュ部11a,11bに専用のキャッシュヒット判定部9a,9bと、これらキャッシュヒット判定部9a,9bの判定結果のいずれか一方を選択するキャッシュ選択部15とを備えている。その他の構成は図3と同様である。
【0067】
キャッシュ部11のうちいずれか一方が有効であり、他方は無効である。プロセッサコア2は、有効であるキャッシュ部11aまたは11bを用いてタスクを実行する。2つのキャッシュ部11a,11bのどちらが有効かは、タグ転送部13が決定する。キャッシュ選択部15は、有効なキャッシュ部に対応するキャッシュヒット判定部9a,9bの判定結果を選択する。
【0068】
実行タスク決定部1が実行タスクの切替を決定しても、プロセッサコア2はタスクの切替を行わず、切替前のタスクの実行を継続する。
【0069】
タグ転送部13は、次に実行すべきタスクのタグ情報を、タグ保存部12から読み出して、現在有効でないキャッシュ部11aまたは11bに転送する。転送完了後、タグ転送部13は、データ転送部14に開始信号を通知する。
【0070】
データ転送部14は、有効でないキャッシュ部11aまたは11bのタグ情報を読み出し、そのタグ情報に対応するアドレスのデータをメインメモリ10から読み出して、そのタグ情報に対応するキャッシュ部11aまたは11bの特定インデックスに書き込む。
【0071】
このとき、タグ情報の一部である有効フラグが「0」のデータについてはデータ転送を省いてもよい。データ転送部14によるデータ転送が終了すると、データ転送部14は完了信号を出力する。
【0072】
次に、タグ転送部13は、今まで有効でなかったキャッシュ部11aまたは11bを有効であるとし、今まで有効であったキャッシュ部11aまたは11bを有効でないとする。この切替と同時に、プロセッサコア2は実行タスクの切替を行い、新たなタスクを実行する。
【0073】
上述した実施形態では、2つのキャッシュ部11a,11bを設ける例を説明したが、3つ以上設けてもよい。この場合、各キャッシュ部を順に有効にすればよい。キャッシュ部を3つ以上設けることにより、頻繁にタスクが切り替わる場合でも、タスク切替時にキャッシュ部内のデータやタグ情報の入れ替えが間に合わないおそれがなくなる。
【0074】
このように、第5の実施形態では、キャッシュ部を複数設け、いずれかのキャッシュ部を有効にしてタスクの処理を行っている間に、他のキャッシュ部に実行予定のタスクで利用するデータやタグ情報を格納する準備を行うため、タスクの切替時に要する時間を大幅に削減でき、プロセッサの処理効率を向上できる。
【0075】
(第6の実施形態)
第6の実施形態は、第5の実施形態で説明した複数のキャッシュ部にそれぞれ書き込みフラグを設けたものである。
【0076】
図8は本発明に係るプロセッサの第6の実施形態の概略構成を示すブロック図である。図8に示す2つのキャッシュ部11a,11bはそれぞれ、エントリごとに書き込みフラグf1を有する。この書き込みフラグf1は、図5と同様に、タグ転送部13がタグ保存部12からのタグ情報の転送を行った場合に「1」に設定される。
【0077】
タグ転送部13は、データ転送部14に対して、タグ情報の転送を行ったキャッシュ部11aまたは11bのエントリとメインメモリ10の対応アドレスとを通知する。データ転送部14は、通知されたメインメモリ10の対応アドレスのデータを読み出して、そのデータを通知されたエントリに転送する。
【0078】
実行タスク決定部1は、実行するタスクの切替を決定しても、プロセッサコア2はタスクの切替を行わずに、切替前のタスクの実行を継続する。タグ転送部13は、タグ保存部12内の実行予定タスクで使用するデータに対応するタグ情報を、現在有効でないキャッシュ部11aまたは11bに転送する。転送を行ったタグ情報に対応するエントリの書き込みフラグf1を「1」にセットする。
【0079】
転送完了後、タグ転送部13は、データ転送部14に対して開始信号を通知する。データ転送部14は、有効でないキャッシュ部11aまたは11b内の書き込みフラグf1が「1」でないタグ情報に対応するデータをメインメモリ10から読み出して、そのキャッシュ部内の対応するエントリに格納する。
【0080】
キャッシュ部の全エントリについてのデータ転送が完了すると、データ転送部14は完了信号を出力する。タグ転送部13は、今まで有効でなかったキャッシュ部11aまたは11bを有効にし、今まで有効であったキャッシュ部11aまたは11bを無効とする。この切替と同時に、プロセッサコア2は、実行タスクの切替を行う。
【0081】
このように、第6の実施形態は、各キャッシュ部がエントリごとに書き換えフラグf1を有するため、書き換えフラグf1が「1」のエントリのみ、データ転送部14がデータ転送を行えばよくなり、データ転送量を削減できる。
【0082】
(第7の実施形態)
第7の実施形態は、第5の実施形態の変形例であり、書き換えフラグf1の代わりに、タグ情報の書き換えを行ったキャッシュメモリ3のエントリと書き換えるべきデータのアドレスとをデータ転送部14に通知するものである。
【0083】
図9は本発明に係るプロセッサの第7の実施形態の概略構成の一例を示すブロック図である。図9のプロセッサは、タグ転送部13の機能が異なる他は、図7と同様に構成されている。
【0084】
タグ転送部13は、現在有効でないキャッシュ部11aまたは11bに対して、次に実行予定のタスクで使用するデータのタグ情報をタグ保存部12から転送する。そして、タグ情報の中の有効フラグが「1」であるタグ情報のエントリと対応データのアドレスとをデータ転送部14に通知する。
【0085】
データ転送部14は、通知されたアドレスのデータをメインメモリ10から読み出し、そのキャッシュ部の通知されたエントリに転送する。キャッシュ部の全エントリ分のデータ転送が終了すると、データ転送部14はタグ転送部13に完了信号を送信する。
【0086】
この完了信号を受けて、タグ転送部13は、有効なキャッシュ部11aまたは11bを切り替える。これにより、プロセッサコア2は、有効なキャッシュ部11aまたは11b内のデータを利用して新たなタスクを起動する。
【0087】
このように、第7の実施形態では、タグ転送部13からデータ転送部14に、書き換えを行ったタグ情報の対応アドレスと対応エントリを通知するため、データ転送部14は必要なデータだけを転送することになり、データの転送量を減らすことができる。
【0088】
(第8の実施形態)
上述した第1〜第7の実施形態において、オペレーティングシステムなしでタスクのスケジューリングができるような機能を追加してもよい。この場合のプロセッサの概略構成は図10のようなブロック図で表される。なお、図10では、上述した図1〜図9に示すキャッシュメモリは省略している。
【0089】
図10のプロセッサは、複数のタスクそれぞれが起動可能か否かを判断するタスク起動部21と、タスク起動部21の判断結果に基づいて起動すべきタスクを決定する実行タスク決定部1と、実行タスク決定部1で決定されたタスクを実行するプロセッサコア2とを備えている。
【0090】
タスク起動部21には、複数のFIFO22が接続されている。タスク起動部21は各FIFO22間でデータの受け渡しを行う。より具体的には、タスク起動部21は、タスクに入力されるべきFIFO22の出力データを保持するとともに、タスクの処理結果を格納すべき他のFIFO22に空き領域が存在するか否かを確認する。そして、タスクに入力されるべきFIFO22の出力データが存在し、かつタスクの処理結果を格納すべき他のFIFO22に空き領域が存在する場合に限り、タスクを起動すべきと判断する。
【0091】
実行タスク決定部1は、起動可能なタスクが複数存在する場合には、その中からいずれか1つのタスクを選択する。例えば、各タスクを識別するためのタスクIDが最小のタスクを実行する。
【0092】
プロセッサコア2は、例えば、命令取得部、命令解釈部、命令実行部、命令実行結果を格納する命令実行結果格納部、及び命令の実行状態を格納する命令実行状態格納部を有する。
【0093】
このように、タスクに入力されるべきデータをFIFO22が保持し、かつタスクの実行結果を格納すべき他のFIFO22に空き領域が存在するか否かをタスク起動部21で判断し、その判断結果に基づいて実行タスク決定部1が起動すべきタスクを決定するようにすれば、オペレーティングシステムなしでタスクのスケジューリングを行うことができ、オペレーティングシステムのオーバーヘッドの影響を受けなくなり、タスクのリアルタイム処理が可能になる。
【0094】
【発明の効果】
以上詳細に説明したように、本発明によれば、複数のタスクで使用するデータやタグ情報を予め保存しておき、タスクの切替時にこれらデータやタグ情報をキャッシュメモリ上で入れ替えるようにしたため、タスクの切替に要する時間を短縮できるとともに、どのタスクを実行する場合でもキャッシュヒット率を向上でき、メモリアクセスの高速化が図れる。
【図面の簡単な説明】
【図1】本発明に係るプロセッサの第1の実施形態のブロック図。
【図2】図1の詳細ブロック図。
【図3】本発明に係るプロセッサの第2の実施形態のブロック図。
【図4】キャッシュ部11とタグ保存部12を4ウェイway1〜way4のセット・アソシアティブ方式で構成する場合のブロック図。
【図5】本発明に係るプロセッサの第3の実施形態の概略構成の一例を示すブロック図。
【図6】本発明に係るプロセッサの第4の実施形態の概略構成の一例を示すブロック図。
【図7】本発明に係るプロセッサの第5の実施形態の概略構成の一例を示すブロック図。
【図8】本発明に係るプロセッサの第6の実施形態の概略構成を示すブロック図。
【図9】本発明に係るプロセッサの第7の実施形態の概略構成の一例を示すブロック図。
【図10】 FIFOを備えたプロセッサの概略構成の一例を示すブロック図。
【符号の説明】
1 実行タスク決定部
2 プロセッサコア
3 キャッシュメモリ
4 データ保存部
5 エントリ選択部
6 タスク情報格納領域
7 領域管理テーブル
8 領域選択部
9 キャッシュヒット判定部
10 メインメモリ
11 キャッシュ部
12 タグ保存部
13 タグ転送部
14 データ転送部
Claims (14)
- メインメモリとは別に、前記メインメモリに記憶すべきデータを、前記メインメモリに記憶するデータとの一貫性を保証するように一時的に記憶するキャッシュメモリを備え、複数のタスクを時分割で処理するプロセッサにおいて、
次に実行すべきタスクを決定する実行タスク決定手段を備え、
前記キャッシュメモリは、
次に実行すべきタスクで使用されるデータと該データに対応するタグ情報とを格納するキャッシュ手段と、
実行予定の複数のタスクのそれぞれごとに、対応するタスクで使用されるデータに対応するタグ情報を格納するタグ情報格納手段と、
前記実行タスク決定手段の決定に応じて、前記キャッシュ手段と前記タグ情報格納手段との間で前記タグ情報の入れ替えを行う第1転送手段と、
前記実行タスク決定手段の決定に応じて、次に実行すべきタスクで使用されるデータを前記メインメモリから前記キャッシュ手段に転送する第2転送手段と、
前記キャッシュ手段を利用してタスクを実行する際、発行されたアドレスに対応するデータが前記キャッシュ手段に存在するか否かを判定する判定手段と、を有することを特徴とするプロセッサ。 - 前記第1転送手段は、前記実行タスク決定手段の決定に応じて、実行すべきタスクに対応するタグ情報を前記タグ情報格納手段から読み出して前記キャッシュ手段に格納し、かつ前記キャッシュ手段に格納されていたタグ情報を前記タグ情報格納手段に格納することを特徴とする請求項1に記載のプロセッサ。
- 前記第2転送手段は、前記実行タスク決定手段の決定に応じて、実行すべきタスクに対応するデータを前記メインメモリから読み出して前記キャッシュ手段に格納し、かつ前記キャッシュ手段に格納されていたデータのうち前記メインメモリに書き戻していないデータを前記メインメモリに格納することを特徴とする請求項1または2に記載のプロセッサ。
- 前記キャッシュ手段は、複数のエントリのそれぞれごとに、データと、該データに対応するタグ情報と、前記第1転送手段が前記タグ情報格納手段から読み出したタグ情報を前記キャッシュ手段に書き込む動作であるタグ情報の書き換えを行ったか否かを示す書き換え判別情報とを格納し、
前記第2転送手段は、前記書き換え判別情報により、前記第1転送手段が前記タグ情報格納手段から読み出したタグ情報を前記キャッシュ手段に書き込む動作であるタグ情報の書き換えを行ったエントリのデータのみ、前記メインメモリから前記キャッシュ手段に転送することを特徴とする請求項1乃至3のいずれかに記載のプロセッサ。 - 前記キャッシュ手段は、複数のエントリのそれぞれごとに、データと、該データに対応するタグ情報と、を格納し、
前記第1転送手段は、前記第1転送手段が前記タグ情報格納手段から読み出したタグ情報を前記キャッシュ手段に書き込む動作であるタグ情報の書き換えを行ったエントリと、該エントリに格納されるべきデータに対応する前記メインメモリのアドレス情報とを前記第2転送手段に通知し、
前記第2転送手段は、前記第1転送手段から通知されたアドレス情報に対応するデータを前記メインメモリから読み出して、該データを前記第1転送手段から通知されたエントリに転送することを特徴とする請求項1乃至3のいずれかに記載のプロセッサ。 - メインメモリとは別に、前記メインメモリに記憶すべきデータを、前記メインメモリに記憶するデータとの一貫性を保証するように一時的に記憶するキャッシュメモリを備え、複数のタスクを時分割で処理するプロセッサにおいて、
次に実行すべきタスクを決定する実行タスク決定手段を備え、
前記キャッシュメモリは、
実行すべきタスクで使用されるデータと該データに対応するタグ情報とを格納する第1及び第2キャッシュ手段と、
実行予定の複数のタスクのそれぞれに対応するタグ情報を格納する複数のタグ保存部を有するタグ情報格納手段と、
前記実行タスク決定手段の決定に応じて、前記第1または第2キャッシュ手段と、前記タグ情報格納手段と、の間でタグ情報の入れ替えを行う第1転送手段と、
前記メインメモリと、前記第1転送手段がタグ情報を入れ替えた前記第1または第2キャッシュ手段との間で、前記入れ替えたタグ情報に対応するデータの入れ替えを行う第2転送手段と、
前記第1キャッシュ手段を利用してタスクを実行する際、発行されたアドレスに対応するデータが前記第1キャッシュ手段に存在するか否かを判定する第1判定手段と、
前記第2キャッシュ手段を利用してタスクを実行する際、発行されたアドレスに対応するデータが前記第2キャッシュ手段に存在するか否かを判定する第2判定手段と、
前記第1及び第2判定手段の判定結果のいずれか一方を選択して出力する判定選択手段と、を備えることを特徴とするプロセッサ。 - 前記判定選択手段は、前記第1及び第2キャッシュ手段のうち、タスクの実行に用いられた方に対応する前記第1または第2の判定手段の判定結果を選択して出力することを特徴とする請求項6に記載のプロセッサ。
- 前記第1転送手段は、前記第1及び第2キャッシュ手段のうち一方がタスクの実行に使用されている間に、他方と前記タグ情報格納手段との間でタグ情報の入れ替えを行うことを特徴とする請求項6または7に記載のプロセッサ。
- 前記第1及び第2キャッシュ手段は、複数のエントリのそれぞれごとに、データと、該データに対応するタグ情報と、前記第1転送手段が前記タグ情報格納手段から読み出したタグ情報を前記第1または第2キャッシュ手段に書き込む動作であるタグ情報の書き換えを行ったか否かを示す書き換え判別情報とを格納し、
前記第2転送手段は、前記書き換え判別情報により、前記第1転送手段が前記タグ情報格納手段から読み出したタグ情報を前記第1または第2キャッシュ手段に書き込む動作であるタグ情報の書き換えを行ったエントリのデータのみ、前記メインメモリから前記第1または第2キャッシュ手段に転送することを特徴とする請求項6乃至8のいずれかに記載のプロセッサ。 - 前記第1及び第2キャッシュ手段は、複数のエントリのそれぞれごとに、データと、該データに対応するタグ情報と、を格納し、
前記第1転送手段は、前記第1転送手段が前記タグ情報格納手段から読み出したタグ情報を前記第1または第2キャッシュ手段に書き込む動作であるタグ情報の書き換えを行ったエントリと、該エントリに格納されるべきデータに対応する前記メインメモリのアドレス情報とを前記第2転送手段に通知し、
前記第2転送手段は、前記第1転送手段から通知されたアドレス情報に対応するデータを前記メインメモリから読み出して、該データを前記第1転送手段から通知されたエントリに転送することを特徴とする請求項6乃至8のいずれかに記載のプロセッサ。 - メインメモリに記憶すべきデータを、前記メインメモリに記憶するデータとの一貫性を保証するように一時的に記憶するキャッシュシステムにおいて、
プロセッサが次に実行すべきタスクを決定する実行タスク決定手段と、
前記プロセッサが次に実行すべきタスクで使用されるデータと該データに対応するタグ情報とを格納するキャッシュ手段と、
実行予定の複数のタスクのそれぞれごとに、対応するタスクで使用されるデータに対応するタグ情報を含むタスク情報格納領域を有するタグ情報格納手段と、
前記実行タスク決定手段の決定に応じて、前記キャッシュ手段及びタグ情報格納手段の間で前記タグ情報の入れ替えを行う第1転送手段と、
前記実行タスク決定手段の決定に応じて、次に実行すべきタスクで使用されるデータを前記メインメモリから前記キャッシュ手段に転送する第2転送手段と、
前記キャッシュ手段を利用してタスクを実行する際、発行されたアドレスに対応するデータが前記キャッシュ手段に存在するか否かを判定する判定手段と、を有することを特徴とするキャッシュシステム。 - メインメモリとは別に、前記メインメモリに記憶すべきデータを、前記メインメモリに記憶するデータとの一貫性を保証するように一時的に記憶するキャッシュメモリにおいて、
プロセッサが次に実行すべきタスクで使用されるデータと該データに対応するタグ情報とを格納するキャッシュ手段と、
実行予定の複数のタスクのそれぞれごとに、対応するタスクで使用されるデータに対応するタグ情報を含むタスク情報格納領域を有するタグ情報格納手段と、
前記プロセッサの決定に応じて、前記キャッシュ手段及びタグ情報格納手段の間で前記タグ情報の入れ替えを行う第1転送手段と、
前記プロセッサの決定に応じて、次に実行すべきタスクで使用されるデータを前記メインメモリから前記キャッシュ手段に転送する第2転送手段と、
前記キャッシュ手段を利用してタスクを実行する際、発行されたアドレスに対応するデータが前記キャッシュ手段に存在するか否かを判定する判定手段と、を有することを特徴とするキャッシュメモリ。 - メインメモリに記憶すべきデータを、前記メインメモリに記憶するデータとの一貫性を保証するように一時的に記憶するキャッシュシステムにおいて、
プロセッサが次に実行すべきタスクを決定する実行タスク決定手段と、
前記プロセッサが実行すべきタスクで使用されるデータと該データに対応するタグ情報とを格納する第1キャッシュ手段と、
前記プロセッサが実行すべきタスクで使用するデータと該データのタグ情報とを格納する第2キャッシュ手段と、
前記プロセッサが実行予定の複数のタスクのそれぞれに対応するタグ情報を格納する複数のタグ保存部を有するタグ情報格納手段と、
前記実行タスク決定手段の決定に応じて、前記第1または第2キャッシュ手段と、前記タグ情報格納手段と、の間でタグ情報の入れ替えを行う第1転送手段と、
前記メインメモリと、前記第1転送手段がタグ情報を入れ替えた前記第1または第2キャッシュ手段との間で、前記入れ替えたタグ情報に対応するデータの入れ替えを行う第2転送手段と、
前記第1キャッシュ手段を利用してタスクを実行する際、発行されたアドレスに対応するデータが前記第1キャッシュ手段に存在するか否かを判定する第1判定手段と、
前記第2キャッシュ手段を利用してタスクを実行する際、発行されたアドレスに対応するデータが前記第2キャッシュ手段に存在するか否かを判定する第2判定手段と、
前記第1及び第2判定手段の判定結果のいずれか一方を選択して出力する判定選択手段と、を備えることを特徴とするキャッシュシステム。 - メインメモリとは別に、前記メインメモリに記憶すべきデータを、前記メインメモリに記憶するデータとの一貫性を保証するように一時的に記憶するキャッシュメモリにおいて、
プロセッサが実行すべきタスクで使用されるデータと該データに対応するタグ情報とを格納する第1キャッシュ手段と、
前記プロセッサが実行すべきタスクで使用するデータと該データのタグ情報とを格納する第2キャッシュ手段と、
前記プロセッサが実行予定の複数のタスクのそれぞれに対応するタグ情報を格納する複数のタグ保存部を有するタグ情報格納手段と、
前記プロセッサの決定に応じて、前記第1または第2キャッシュ手段と、前記タグ情報格納手段と、の間でタグ情報の入れ替えを行う第1転送手段と、
前記メインメモリと、前記第1転送手段がタグ情報を入れ替えた前記第1または第2キャッシュ手段との間で、前記入れ替えたタグ情報に対応するデータの入れ替えを行う第2転送手段と、
前記第1キャッシュ手段を利用してタスクを実行する際、発行されたアドレスに対応するデータが前記第1キャッシュ手段に存在するか否かを判定する第1判定手段と、
前記第2キャッシュ手段を利用してタスクを実行する際、発行されたアドレスに対応するデータが前記第2キャッシュ手段に存在するか否かを判定する第2判定手段と、
前記第1及び第2判定手段の判定結果のいずれか一方を選択して出力する判定選択手段と、を備えることを特徴とするキャッシュメモリ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003115975A JP3964821B2 (ja) | 2003-04-21 | 2003-04-21 | プロセッサ、キャッシュシステム及びキャッシュメモリ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003115975A JP3964821B2 (ja) | 2003-04-21 | 2003-04-21 | プロセッサ、キャッシュシステム及びキャッシュメモリ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004326175A JP2004326175A (ja) | 2004-11-18 |
JP3964821B2 true JP3964821B2 (ja) | 2007-08-22 |
Family
ID=33496371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003115975A Expired - Fee Related JP3964821B2 (ja) | 2003-04-21 | 2003-04-21 | プロセッサ、キャッシュシステム及びキャッシュメモリ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3964821B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110066830A1 (en) * | 2009-09-11 | 2011-03-17 | Andrew Wolfe | Cache prefill on thread migration |
US8881157B2 (en) | 2009-09-11 | 2014-11-04 | Empire Technology Development Llc | Allocating threads to cores based on threads falling behind thread completion target deadline |
US9189282B2 (en) | 2009-04-21 | 2015-11-17 | Empire Technology Development Llc | Thread-to-core mapping based on thread deadline, thread demand, and hardware characteristics data collected by a performance counter |
US9569270B2 (en) | 2009-04-21 | 2017-02-14 | Empire Technology Development Llc | Mapping thread phases onto heterogeneous cores based on execution characteristics and cache line eviction counts |
KR101901587B1 (ko) * | 2011-12-13 | 2018-10-01 | 삼성전자주식회사 | 연성 실시간 운영체제의 실시간성을 확보하는 방법 및 장치 |
JP5776813B2 (ja) * | 2014-04-03 | 2015-09-09 | 富士通株式会社 | マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法および制御プログラム |
CN104915256B (zh) * | 2015-06-05 | 2019-03-26 | 惠州Tcl移动通信有限公司 | 一种任务的实时调度实现方法及其系统 |
-
2003
- 2003-04-21 JP JP2003115975A patent/JP3964821B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004326175A (ja) | 2004-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5417879B2 (ja) | キャッシュ装置 | |
JP5536658B2 (ja) | バッファメモリ装置、メモリシステム及びデータ転送方法 | |
US5974438A (en) | Scoreboard for cached multi-thread processes | |
CN101446923B (zh) | 一种响应于指令而清洗高速缓冲存储器线的装置和方法 | |
US6023747A (en) | Method and system for handling conflicts between cache operation requests in a data processing system | |
US20070094450A1 (en) | Multi-level cache architecture having a selective victim cache | |
JPH11509356A (ja) | キャッシュシステム | |
JPH10232839A (ja) | キャッシュシステムおよびキャッシュメモリの作動方法 | |
CN113641596B (zh) | 缓存管理方法、缓存管理装置、处理器 | |
CN103076992B (zh) | 一种内存数据缓冲方法及装置 | |
JPH0340046A (ja) | キャッシュメモリ制御方式および情報処理装置 | |
WO2024045586A1 (zh) | 支持simt架构的高速缓冲存储器及相应处理器 | |
US7356650B1 (en) | Cache apparatus and method for accesses lacking locality | |
KR20170029594A (ko) | 메모리 관리 방법 및 장치, 및 메모리 컨트롤러 | |
WO2024045817A1 (zh) | 用于调度simt架构处理器的返回数据的方法及相应处理器 | |
US20110167223A1 (en) | Buffer memory device, memory system, and data reading method | |
CN115617542A (zh) | 内存交换方法、装置、计算机设备及存储介质 | |
JP3964821B2 (ja) | プロセッサ、キャッシュシステム及びキャッシュメモリ | |
JP5157424B2 (ja) | キャッシュメモリシステム及びキャッシュメモリの制御方法 | |
JP3973129B2 (ja) | キャッシュメモリ装置及びそれを用いた中央演算処理装置 | |
JP2007272681A (ja) | キャッシュメモリ装置及びそのキャッシュラインの入れ替え方法 | |
JP2013041414A (ja) | 記憶制御システムおよび方法、置換方式および方法 | |
JP2002041358A (ja) | プロセッサシステム | |
US20090164732A1 (en) | Cache memory system and cache memory control method | |
JP2001222467A (ja) | キャッシュ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040902 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070219 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070302 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070501 |
|
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: 20070515 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070524 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100601 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110601 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |