JP4025493B2 - 適切な発行先に命令を発行する命令発行装置 - Google Patents
適切な発行先に命令を発行する命令発行装置 Download PDFInfo
- Publication number
- JP4025493B2 JP4025493B2 JP2000239667A JP2000239667A JP4025493B2 JP 4025493 B2 JP4025493 B2 JP 4025493B2 JP 2000239667 A JP2000239667 A JP 2000239667A JP 2000239667 A JP2000239667 A JP 2000239667A JP 4025493 B2 JP4025493 B2 JP 4025493B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- issue
- issuing
- arithmetic
- issued
- 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
- 238000010586 diagram Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 7
- 230000007423 decrease Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
Description
【発明の属する技術分野】
本発明は、異なる種類の複数の演算装置に対する命令の発行を制御し、適切な発行先に命令を発行する命令発行装置に関する。
【0002】
【従来の技術】
実行可能な演算の種類が異なる複数の演算装置を有するプロセッサにおいては、特定の種類の演算装置に対してのみ発行可能な命令と、いくつかの種類の演算装置に対して発行可能な命令とが混在する場合がある。このようなアーキテクチャを有するプロセッサでは、発行制御回路(Issue 制御回路)により命令の発行先が決定される。
【0003】
図12は、従来の発行制御回路による発行制御を示している。ここでは、簡単のため、4命令同時発行可能であり、種類Aの演算を行う演算装置と種類Bの演算を行う演算装置がある場合を考える。
【0004】
図12において、発行ラッチ1は、フェッチされた命令を保持する4つの命令スロットを有し、発行制御回路2は、発行ラッチ1に保持された命令の発行をイン・オーダー(in-order)で制御する。リザベーションステーション3、4は、処理待ちの命令のエントリを保持する複数の命令スロットを有し、アウト・オブ・オーダー(out-of-order)でエントリを演算装置5、6に渡す。
【0005】
ここで、イン・オーダーとは、プログラムにより指示された順序で処理することを意味し、アウト・オブ・オーダーとは、プログラムにより指示された順序とは異なる順序で処理することを意味する。
【0006】
演算装置5は、種類Aの演算を実行し、リザベーションステーション3は、演算装置5により実行可能な命令のエントリを保持する。一方、演算装置6は、種類Bの演算を実行し、リザベーションステーション4は、演算装置6により実行可能な命令のエントリを保持する。
【0007】
発行制御回路2は、命令の発行先として、種類Aの演算装置を優先的に選択する制御を行い、種類AおよびBのどちらに対しても発行可能な命令(any命令)は、可能な限り演算装置5に対して発行する。
【0008】
このような制御によれば、発行ラッチ1の第1命令(Slot0)〜第2命令(Slot1)にany命令がある場合、その命令は固定的に種類Aの演算装置5に対して発行される。また、any命令が第3命令(Slot2)以降にあり、種類Aのリザベーションステーション3の空き量(空きスロットの数)が“0”の場合、その命令は種類Bの演算装置6に対して発行される。
【0009】
図12では、リザベーションステーション3、4の空き量は、それぞれ“1”、“2”であり、発行ラッチ11のSlot0、Slot1、Slot2、およびSlot3に、それぞれ、any命令、A命令、B命令、およびその他の命令が保持されている。A命令は、種類Aの演算装置に対してのみ発行可能な命令であり、B命令は、種類Bの演算装置に対してのみ発行可能な命令である。
【0010】
このとき、1番目のany命令は、演算装置5に対して固定的に発行されるので、リザベーションステーション3の空き量は“0”になる。そこで、発行制御回路2は、リザベーションステーション3のスロットが空くのを待って、2番目のA命令を演算装置5に対して発行する。
【0011】
図13は、命令のパイプライン処理における発行ステージを示している。この発行ステージは、T1とT2の2つの期間からなり、発行制御回路2は、期間T1において、優先発行先を考慮して命令の発行先を決定し、期間T2において、決定後の後処理を行う。
【0012】
【発明が解決しようとする課題】
しかしながら、上述した従来の発行制御には、以下のような問題がある。
図12の発行制御回路2は、イン・オーダーで命令を発行するため、種類Bのリザベーションステーション4に空きスロットがあるにもかかわらず、2番目のA命令が発行されない限り、3番目以降のB命令とその他の命令を発行することができない。
【0013】
このように、あらかじめ優先発行先が決められている発行制御回路を用いた場合、優先発行先の演算装置用の空きスロットが少なくなると、同時発行可能な命令の数が少なくなるという欠点がある。
【0014】
そこで、あらかじめ優先発行先を決めずに、複数の演算装置の中からany命令の発行先を選択する方法が考えられる。この場合、any命令の最適な発行先を決定するには、複数の演算装置のスロットの空き量を計算し、同時発行可能な命令の数が最大となるような発行先を選択しなければならない。
【0015】
図14は、このような制御を行う発行ステージを示している。この発行ステージは、図13の期間T1とT2に加えて、新たに付加された判定回路に対応する期間T3を含んでいる。この判定回路は、期間T3において、複数の演算装置のスロットの空き量を計算し、その時点において最適な優先発行先を決定する。そして、発行制御回路は、決定された優先発行先に基づいて、期間T1とT2の処理を行う。
【0016】
しかしながら、複数のリザベーションステーションの空き量や命令の種類を考慮すると、それらの組合せの数は膨大であり、1パイプライン・ステージの中で、高速に最適解を求めることは困難である。厳密に命令毎の発行先を決定する場合は、期間T3とT1の処理はさらに複雑になり、1ステージの時間が長くなって、処理速度が低下してしまう。
【0017】
本発明の課題は、同時発行可能な命令の数が多くなるような発行先を、比較的短時間で決定することのできる命令発行装置を提供することである。
【0018】
【課題を解決するための手段】
図1は、本発明の命令発行装置の原理図である。本発明の命令発行装置は、複数の発行制御手段11、比較手段12、学習手段13、レジスタ手段14、選択手段15、および発行手段16を備える。
【0019】
発行制御手段11は、種類の異なる演算を行う複数の演算装置のうちのいずれに対しても発行可能な命令(any命令)を、それらの演算装置のうちの1つに対して優先的に発行するための制御を行い、発行先演算装置を互いに並列に決定する。特に、与えられた命令がany命令の場合は、各発行制御手段11は、優先発行先の演算装置を発行先として指定する。これにより、与えられた1つの命令に対して、複数の発行先が互いに独立に決定される。
【0020】
本発明の第1の局面において、比較手段12は、複数の演算装置用の命令スロットの空き量を比較し、比較結果を出力する。選択手段15は、その比較結果に基づいて、複数の発行制御手段11のうちの1つを選択する。そして、発行手段16は、選択された発行制御手段11が指定する発行先演算装置に対して、命令を発行する。
【0021】
比較手段12は、命令スロットの空き量の大小関係の比較結果を、選択手段15に出力する。選択手段15は、空き量の大小関係に基づいて発行制御手段11を選択し、その発行制御手段11が指定する発行先を、発行手段16に渡す。これにより、発行手段16からその発行先の演算装置に対して、命令が発行される。
【0022】
このような命令発行装置によれば、複数の演算装置のうち命令スロットの空き量が最大の演算装置を優先発行先とする発行制御手段11を、選択することが可能となる。これにより、any命令は、命令スロットの空き量が最大の演算装置に対して発行されるようになり、同時発行可能な命令の数が増加する。発行制御手段11は互いに並列に動作するため、発行先の決定に要する時間は、従来とほとんど変わらない。
【0023】
また、本発明の第2の局面において、学習手段13は、発行すべき命令列のパターンに応じた優先発行先を学習し、その優先発行先を表す学習情報を格納する。選択手段15は、その学習情報に基づいて、複数の発行制御手段11のうちの1つを選択する。そして、発行手段16は、選択された発行制御手段11が指定する発行先演算装置に対して、上記命令列に含まれる命令を発行する。
【0024】
学習手段13は、与えられた命令列のパターンに対応して、どの演算装置に対して命令を優先的に発行すればよいかを学習し、優先発行先の演算装置を指定する学習情報を選択手段15に出力する。選択手段15は、その優先発行先に基づいて発行制御手段11を選択し、その発行制御手段11が指定する発行先を、発行手段16に渡す。
【0025】
このような命令発行装置によれば、学習手段13は、適切な優先発行先を学習することができ、選択手段15は、そのような優先発行先を有する発行制御手段11を、選択することが可能となる。これにより、any命令は、適切な演算装置に対して発行されるようになり、同時発行可能な命令の数が増加する。
【0026】
また、本発明の第3の局面において、レジスタ手段14は、レジスタライト命令により指定された優先発行先情報を格納する。選択手段15は、その優先発行先情報に基づいて、複数の発行制御手段11のうちの1つを選択する。そして、発行手段16は、選択された発行制御手段11が指定する発行先演算装置に対して、命令を発行する。
【0027】
レジスタライト命令は、どの演算装置に対して命令を優先的に発行すればよいかを指定する。レジスタ手段14は、指定された優先発行先情報を格納し、その情報を選択手段15に出力する。選択手段15は、その優先発行先に基づいて発行制御手段11を選択し、その発行制御手段11が指定する発行先を、発行手段16に渡す。
【0028】
このような命令発行装置によれば、レジスタ手段14は、常に適切な優先発行先を指定することができ、選択手段15は、そのような優先発行先を有する発行制御手段11を、選択することが可能となる。これにより、any命令は、適切な演算装置に対して発行されるようになり、同時発行可能な命令の数が増加する。
【0029】
例えば、図1の発行制御手段11は、後述する図3の発行制御回路52、53に対応し、比較手段12は、図3の比較回路54に対応する。また、図1の学習手段13は、後述する図6のエンコーダ71、学習回路72、および比較回路73に対応し、レジスタ手段14は、後述する図10の制御レジスタ91、エンコーダ92、およびマルチプレクサ93に対応する。また、図1の選択手段15および発行手段16は、図3のマルチプレクサ55に対応する。
【0030】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態を詳細に説明する。
図2は、本実施形態の命令発行装置を備えるプロセッサの構成図である。図2のプロセッサは、ブランチヒストリテーブル(BHT)21、フェッチ/分岐予測部22、レベル0命令キャッシュ(I0 Cache)23、リコード部24、レベル1命令キャッシュ(I1 Cache)25、レベル2キャッシュ(U2 Cache)26、インタフェース27、レベル1データキャッシュ(D1 Cache)28、発行部29、レジスタファイル30、31、32、リザベーションステーション33、34、35、36、および実行部37、38、39、40を備える。
【0031】
インタフェース27は、レベル2キャッシュ26とUPA(UltraSPARC Port Architecture)バス41に対する情報の入出力を制御し、レベル1命令キャッシュ25に命令を供給する。UPAバス41は、不図示のシステムコントローラを介してメモリに接続されている。
【0032】
リコード部24は、レベル1命令キャッシュ25に保持された命令をデコードして、レベル0命令キャッシュ23に渡し、フェッチ/分岐予測部22は、レベル0命令キャッシュ23の命令をフェッチして発行部29に渡すとともに、ブランチヒストリテーブル21を参照して、分岐命令の分岐先を予測する。
【0033】
発行部29は、フェッチされた命令をリザベーションステーション33、34、35、36にディスパッチし、レジスタファイル30、31、32は、レジスタの名前替え(Renaming)に用いられる。FXレジスタファイル30、FPレジスタファイル31、およびCCレジスタファイル32は、それぞれ、固定小数点演算用データ、浮動小数点演算用データ、および条件コードのレジスタファイルである。
【0034】
リザベーションステーション33、34、35、36は、それぞれ、複数のスロットを有し、実行部37、38、39、40が実行する命令のエントリを保持する。ロード/ストア部37は、レベル1データキャッシュ28を介して、データのロード/ストアを実行する。
【0035】
AGEN実行部38は、ロード/ストアアドレスを生成する演算装置を含み、FX&FXVIS実行部39は、固定小数点演算を実行する演算装置を含み、FP&FPVIS実行部40は、浮動小数点演算を実行する演算装置を含む。このうち、AGEN実行部38とFX&FXVIS実行部39は、ともに整数演算を実行することができ、どちらの実行部に対しても発行可能な命令はany命令となる。
【0036】
発行部29は、互いに並列に動作する複数の発行制御回路と、それらの発行制御回路の出力を切り替える選択回路を備える。各発行制御回路は、実行可能な演算の種類が異なる複数の演算装置のそれぞれに対して、命令を優先的に発行する制御を行う。また、選択回路は、各演算装置用の命令スロットの空き量や過去に発行された命令数の学習結果に応じて、複数の発行制御回路のうちの最適なものを選択し、その発行制御回路の出力に基づいて発行先を決定する。
【0037】
このように、異なる優先発行先を有する複数の発行制御回路を設け、命令の発行時に、いずれかの発行制御回路の出力を動的に選択することで、発行先が1つの演算装置に偏る可能性が低くなる。したがって、同時発行可能な命令の数が増加し、命令の処理速度が向上する。
【0038】
次に、図3から図10までを参照しながら、発行部29の構成についてより詳細に説明する。
図3は、図2の発行部29の第1の構成例を示している。この例では、発行部29は、発行ラッチ51、発行制御回路52、53、比較回路54、およびマルチプレクサ55を含む。また、リザベーションステーション57、58は、例えば、図2のリザベーションステーション34、35に対応し、演算装置60、61は、例えば、図2の実行部38、39に対応する。
【0039】
発行ラッチ51は、フェッチ/分岐予測部22によりフェッチされた命令を保持する4つのスロットを有し、発行制御回路52、53は、発行ラッチ51に対して並列に配置され、発行ラッチ51に保持された命令の発行をイン・オーダーで制御する。
【0040】
演算装置60、61は、それぞれ、種類A、Bの演算を実行し、リザベーションステーション57、58は、それぞれ、演算装置60、61により実行可能な命令のエントリを保持する。ここでは、各リザベーションステーションに対して1つの演算装置が示されているが、一般には、各リザベーションステーションに対して1つ以上の演算装置が設けられる。
【0041】
発行制御回路52、53は、それぞれ、種類A、Bの演算装置を優先発行先として選択する制御を行い、種類AおよびBのどちらに対しても発行可能なany命令は、可能な限り優先発行先に対して発行する。
【0042】
モニタ回路56、59は、それぞれ、リザベーションステーション57、58の命令スロットの空き量をモニタする。比較回路54は、モニタ回路56、59から出力される信号に基づいて、リザベーションステーション57、58の空き量を比較し、比較結果を選択信号としてマルチプレクサ55に出力する。マルチプレクサ55は、受け取った選択信号に応じて、発行制御回路52、53の出力を選択して、指定された発行先に命令を発行する。
【0043】
このとき、比較回路54は、リザベーションステーション57の空き量がリザベーションステーション58の空き量より大きければ、発行制御回路52の出力を選択する選択信号を出力する。また、リザベーションステーション58の空き量がリザベーションステーション57の空き量より大きければ、発行制御回路53の出力を選択する選択信号を出力する。また、両方の空き量が同じ場合は、いずれかの出力を選択する選択信号を出力する。
【0044】
このような構成によれば、命令の発行時に2つのリザベーションステーションの空き量が比較され、空き量の多い方の演算装置を優先発行先とする発行制御回路が自動的に選択される。これにより、any命令は、空き量の多い方の演算装置に対して優先的に発行されるようになるので、全般的に発行可能な命令の数が増加する。
【0045】
図3では、リザベーションステーション57、58の空き量は、それぞれ“1”、“2”であるので、発行制御回路53の出力が選択される。したがって、発行ラッチ51の1番目のany命令は、演算装置61に対して発行され、2番目のA命令、3番目のB命令は、それぞれ、演算装置60、61に対して発行される。したがって、図12の場合のように、A命令やB命令の発行が遅れることはない。
【0046】
また、発行制御回路52、53を並列に配置し、その後段にマルチプレクサ55を配置することにより、回路の追加による発行制御の複雑化および遅延増加を最小限(マルチプレクサ1段分)に抑えることができる。
【0047】
モニタ回路56、59は、例えば、リザベーションステーション57、58の空き量を表す4ビットのバリッド信号slot_avail[3:0]を生成し、その信号を比較回路54に出力する。この信号により、スロットの空き量は、以下のように表される。
空き量“0”:slot_avail[3:0]=0000
空き量“1”:slot_avail[3:0]=0001
空き量“2”:slot_avail[3:0]=0011
空き量“3”:slot_avail[3:0]=0111
空き量“4”:slot_avail[3:0]=1111
モニタ回路56、59が出力する信号を、それぞれ、a_slot_avail[3:0]、b_slot_avail[3:0]とすると、比較回路54は、例えば、以下のような論理演算により、選択信号a_greater_than_bを生成する。
このような論理演算によれば、リザベーションステーション57の空き量がリザベーションステーション58の空き量より大きいとき、a_greater_than_bは論理“1”となり、リザベーションステーション57の空き量がリザベーションステーション58の空き量以下のとき、a_greater_than_bは論理“0”となる。したがって、この選択信号を用いて、マルチプレクサ55を制御することができる。
【0048】
図4は、図3の発行制御回路52の具体例を示している。4ビットの入力信号a[3:0]は、発行ラッチ51の各スロットについて、演算装置60に対してしか発行できない命令の有無(論理“1”または“0”)を表し、入力信号b[3:0]は、同様に、演算装置61に対してしか発行できない命令の有無を表す。また、入力信号any[3:0]は、演算装置60、61のいずれに対しても発行可能なany命令の有無を表す。
【0049】
2ビットの入力信号a_slot_avail[1:0]、b_slot_avail[1:0]は、それぞれ、リザベーションステーション57、58の空き量を表す。発行先を決めるにあたっては、各演算装置に対して同時に発行可能な命令数の制約の範囲内で、リザベーションステーションの空き量が認識できればよい。その数を越える空き量を認識しても、制約により、空き量に対応する数の命令を同時に発行できないので、意味がない。
【0050】
ここでは、各演算装置に対する同時発行可能な命令の最大数が2であるという制約の下で、信号a_slot_availおよびb_slot_availのビット[1:0]が発行制御回路52に入力されている。これらの2ビットの信号を参照することで、空き量が“0”、“1”、“2”以上のいずれであるかを認識することができる。
【0051】
また、出力信号a0[3:0]は、演算装置60用のライトポート0に割り当てられる命令の発行ラッチ51上のスロット位置を表し、出力信号a1[3:1]は、演算装置60用のライトポート1に割り当てられる命令の発行ラッチ51上のスロット位置を表す。同様に、出力信号b0[3:0]、b1[3:1]は、それぞれ、演算装置61用のライトポート0、ライトポート1に割り当てられる命令の発行ラッチ51上のスロット位置を表す。
【0052】
これらのライトポートは、リザベーションステーション57、58の入力側に設けられ、発行制御回路52の出力信号は、各演算装置の各ライトポートに割り当てられる命令を選択するために用いられる。したがって、これらの出力信号により、命令の発行先となる演算装置が確定し、対応するライトポートに命令が割り当てられる。例えば、図3の状態では、以下のような信号が発行制御回路52に入力される。
a[3:0]=0010
b[3:0]=0100
any[3:0]=0001
a_slot_avail[1:0]=01
b_slot_avail[1:0]=11
そして、発行制御回路52は、any命令の発行先をA優先で決定し、以下のような出力信号を生成する。
a0[3:0]=0001
a1[3:1]=001
b0[3:0]=0100
b1[3:1]=000
図5は、図3の発行制御回路53の具体例を示している。発行制御回路53は、A優先の発行制御回路52の入出力信号を図5に示すように入れ替えることで、実現される。上述のような入力信号が与えられたとき、発行制御回路53は、any命令の発行先をB優先で決定し、以下のような出力信号を生成する。
a0[3:0]=0010
a1[3:1]=000
b0[3:0]=0001
b1[3:1]=010
次に、図6は、図2の発行部29の第2の構成例を示している。この例では、発行部29は、発行ラッチ51、発行制御回路52、53、マルチプレクサ55、エンコーダ71、学習回路72、および比較回路73を含む。
【0053】
エンコーダ71は、発行ラッチ51に保持された各命令をエンコードし、学習回路72のリードアドレスraまたはライトアドレスwaとして出力する。比較回路73は、発行制御回路52、53から出力される信号に基づいて、これらの発行制御回路の発行可能な命令の数を比較し、比較結果をライトデータwdとして学習回路72に出力する。
【0054】
学習回路72は、メモリ回路により構成され、アドレスwaにデータwdを書き込み、アドレスraから読み出したリードデータrdを、選択信号としてマルチプレクサ55に出力する。マルチプレクサ55は、受け取った選択信号に応じて、発行制御回路52、53の出力を選択する。
【0055】
このとき、比較回路73は、発行制御回路52の発行可能な命令の数が発行制御回路53のそれより大きければ、発行制御回路52の出力を選択する選択信号の値を、データwdとして出力する。また、発行制御回路53の発行可能な命令の数が発行制御回路52のそれより大きければ、発行制御回路53の出力を選択する選択信号の値を、データwdとして出力する。また、両方の命令の数が同じ場合は、いずれかの出力を選択する選択信号の値を出力する。
【0056】
このような構成によれば、発行ラッチ51に保持された命令列のパターンに応じて、より多くの命令を同時に発行するための選択信号の値が、学習情報として学習回路72に格納される。また、発行ラッチ51の命令列と同じパターンに対応する過去の学習情報が、学習回路72から取り出され、選択信号としてマルチプレクサ55に出力される。これにより、any命令の発行先は、過去の学習結果に応じて選択されるようになる。
【0057】
同じパターンの命令列に対して、各発行制御回路の発行可能な命令の数があまり変化しない場合、学習結果を利用することで、全般的に発行可能な命令の数が増加する。また、発行制御の遅延も、図3の場合と同様に、マルチプレクサ1段分に抑えることができる。
【0058】
図6では、発行ラッチ51に、any命令、A命令、B命令、その他の命令といった命令列が保持されている。この場合、エンコーダ71は、それぞれの命令を、例えば、以下のようにエンコードする。
その他の命令:“00”
A命令 :“01”
B命令 :“10”
any命令 :“11”
そして、発行ラッチ51の命令列に対応するエンコーダ71の出力を、Slot3、Slot2、Slot1、Slot0の順に並べて、アドレスraを生成すると、“00100111”となる。そこで、学習回路72の対応するエントリに格納されている学習情報が取り出され、その情報に基づいて発行制御回路の出力が選択される。その結果、any命令は、選択された発行制御回路の優先発行先に対して発行される。
【0059】
このとき、発行制御回路52、53のうち、発行可能な命令の数が多い方の出力を選択する選択信号の値が、“00100111”をアドレスwaとして、学習回路72の対応するエントリに格納される。これにより、この命令列のパターンに対応する学習情報が更新される。
【0060】
発行制御回路52、53は、例えば、発行可能な命令の数を表す4ビットのバリッド信号issue_valid[3:0]を生成し、その信号を比較回路73に出力する。この信号により、発行可能な命令の数は、以下のように表される。
命令数“0”:issue_valid[3:0]=0000
命令数“1”:issue_valid[3:0]=0001
命令数“2”:issue_valid[3:0]=0011
命令数“3”:issue_valid[3:0]=0111
命令数“4”:issue_valid[3:0]=1111
発行制御回路52、53が出力する信号を、それぞれ、n1_issue_valid[3:0]、n2_issue_valid[3:0]とすると、比較回路73は、例えば、以下のような論理演算により、学習情報n1_greater_than_n2を生成する。
このような論理演算によれば、発行制御回路52の発行可能な命令の数が発行制御回路53のそれより大きいとき、n1_greater_than_n2は論理“1”となり、発行制御回路52の発行可能な命令の数が発行制御回路53のそれ以下のとき、n1_greater_than_n2は論理“0”となる。したがって、この学習情報を選択信号として用いて、マルチプレクサ55を制御することができる。
【0061】
次に、図7は、図2の発行部29の第3の構成例を示している。この例では、発行部29は、図3および図6の回路を組み合わせて構成され、発行ラッチ51、発行制御回路52、53、マルチプレクサ55、比較回路54、73、エンコーダ71、および学習回路72を含む。
【0062】
この場合、エンコーダ71が出力する命令列のパターンに関する情報と、比較回路54が出力する空き量の比較結果の組合せが、学習回路72のアドレスraおよびwaとして用いられる。また、学習情報としては、図6の場合と同様に、比較回路73が出力する比較結果が用いられる。
【0063】
ここでは、リザベーションステーション58の空き量の方がリザベーションステーション57の空き量より大きいので、比較回路54が出力する信号a_greater_than_bは論理“0”となる。この信号値を図6のアドレス“00100111”のMSB(Most Significant Bit)側に追加すると、“000100111”となる。そこで、このアドレス“000100111”が、アドレスraおよびwaとして、学習情報の取り出しおよび更新に用いられる。
【0064】
このような構成によれば、命令列のパターンが同じでも、リザベーションステーションの空き量の大小関係が異なる場合は、異なるアドレスに学習情報が格納される。したがって、空き量の大小関係をも考慮した学習が可能となり、図6の構成より、発行可能な命令の数が増加すると考えられる。発行制御の遅延については、図6の場合と同様である。
【0065】
次に、図8は、図2の発行部29の第4の構成例を示している。この例では、発行部29は、図7の構成から比較回路54を除いた構成を有する。この場合、エンコーダ71が出力する命令列のパターンに関する情報と、モニタ回路56、59が出力する空き量の情報の組合せが、学習回路72のアドレスraおよびwaとして用いられる。
【0066】
ここでは、モニタ回路56、59が出力する信号a_slot_avail[3:0]、b_slot_avail[3:0]が、そのまま図6のアドレス“00100111”に追加される。したがって、アドレスraおよびwaは、16ビットで表されることになる。
【0067】
このような構成によれば、リザベーションステーションの空き量の比較結果が同じでも、空き量そのものが異なる場合は、異なるアドレスに学習情報が格納される。したがって、図7の構成より詳細な学習が可能となり、発行可能な命令の数が増加すると考えられる。
【0068】
ところで、図6から図8までの学習回路72では、マルチプレクサ55の選択信号に対応する1ビットの学習情報を用いているが、これに1ビット以上の強度情報を付加して、より詳細な学習情報を保持することもできる。
【0069】
図9は、このような強度情報を用いた発行部29の第5の構成例を示している。この例では、図6の構成に、マルチプレクサ81、減算器82、および加算器83が追加されている。学習回路72は、1ビットの優先発行先情報と1ビットの強度情報からなる2ビットの学習情報を保持する。優先発行先情報をMSBとし、強度情報をLSB(Least Significant Bit )とすると、この学習情報の意味は、以下のようにアサインされる。
“11”:種類Aの演算装置に対して、命令を強く優先的に発行する。
【0070】
“10”:種類Aの演算装置に対して、命令を弱く優先的に発行する。
“01”:種類Bの演算装置に対して、命令を弱く優先的に発行する。
“00”:種類Bの演算装置に対して、命令を強く優先的に発行する。
2つのビットのうち、MSBの優先発行先情報のみがマルチプレクサ55の選択信号として用いられ、優先発行先情報が論理“1”、“0”のとき、それぞれ、発行制御回路52、53の出力が選択される。そして、学習情報の更新には、両方のビットが用いられる。
【0071】
比較回路73は、例えば、発行制御回路52の発行可能な命令の数が発行制御回路53のそれより大きいとき、論理“1”を出力し、発行制御回路52の発行可能な命令の数が発行制御回路53のそれ以下のとき、論理“0”を出力する。この出力は、マルチプレクサ81の選択信号として用いられる。
【0072】
減算器82/加算器83は、学習回路72から出力される2ビットのデータrdを、それぞれ1だけデクリメント/インクリメントして、マルチプレクサ81に出力する。ただし、デクリメントまたはインクリメントによって、学習情報が“00”を下回ったり、“11”を超えたりする場合は、それぞれ、“00”または“11”にクリップされる。
【0073】
マルチプレクサ81は、比較回路73が出力する選択信号が論理“1”のとき、加算器83の出力を選択し、データwdとして学習回路72に出力する。また、選択信号が論理“0”のとき、減算器82の出力を選択し、データwdとして出力する。
【0074】
このような構成によれば、発行制御回路52の方がより多くの命令を発行可能な場合は、発行ラッチ51の命令列のパターンに応じて選択されたエントリの学習情報がインクリメントされる。また、それ以外の場合は、そのエントリの学習情報がデクリメントされる。したがって、発行可能な命令の数が増加するように、過去の学習情報が強度加算的に更新される。これにより、2つの発行制御回路52、53のうち、発行可能な命令の数が最大となるものが選択されやすくなる。
【0075】
この場合、図6の構成とは異なり、過去の学習情報を段階的に修正して、再び学習情報として利用することができる。ここでは、図6の構成に強度情報を付加した例を示したが、図7および図8の構成についても、同様にして、強度情報を生成する回路を付加することができる。
【0076】
次に、図10は、図2の発行部29の第6の構成例を示している。この例では、発行部29は、発行ラッチ51、発行制御回路52、53、マルチプレクサ55、制御レジスタ91、エンコーダ92、およびマルチプレクサ93を含む。
【0077】
制御レジスタ91は、any命令毎に優先発行先情報を保持し、マルチプレクサ55の動作を制御するために用いられる。エンコーダ92は、発行ラッチ51の命令列のパターンをエンコードして、マルチプレクサ93に出力する。マルチプレクサ93は、エンコーダ92の出力を選択信号として用いて、対応する制御レジスタ91の優先発行先情報を選択し、その情報をマルチプレクサ55の選択信号として出力する。
【0078】
この場合、コンパイラは、最適化された命令列のスケジューリング結果に基づいて、同時発行可能な命令の数が最大になるように、適宜、制御レジスタ91の情報を書き換える命令コード(レジスタライト命令)を生成する。このレジスタライト命令からライトイネーブル信号weとライトデータが生成され、信号weにより指定された優先発行先情報がライトデータにより上書きされる。
【0079】
このような構成によれば、優先発行先の切り替えは、実行されるプログラムの命令列のパターンに応じてソフトウェア的に行われる。これにより、any命令の発行先が最適化され、全般的に発行可能な命令の数が増加する。発行制御の遅延については、他の構成例と同様である。また、複数のany命令を任意の種類毎にグループ化しておき、優先発行先情報をグループ毎に制御レジスタ91に格納してもよい。
【0080】
図11は、本発明における命令の発行ステージを示している。この発行ステージは、図13の発行ステージの期間T1とT2に加えて、期間T4とT5を含んでいる。発行制御回路52、53は、期間T1において、優先発行先を考慮しながら命令の発行先を並列に決定する。
【0081】
また、これと並行する期間T5において、発行制御回路52、53のうちのどちらを選択するかが決定され、期間T4において、マルチプレクサ55が選択信号に従って出力を選択する。期間T4は期間T1とT2に比べて短いため、1パイプライン・ステージの長さは、図13の場合とほとんど変わらない。
【0082】
以上説明した実施形態では、2種類の演算装置で実行可能なany命令の発行制御について説明したが、より多くの種類の演算装置で実行可能なany命令の場合も、同様の制御を適用することができる。
【0083】
この場合、3種類以上の演算装置のそれぞれを優先発行先とする3つ以上の発行制御回路を並列に設けて、それらの出力のうちの1つをマルチプレクサ55により選択すればよい。マルチプレクサ55の選択信号としては、複数ビットの信号が用いられ、比較回路54、73は、3つ以上の入力値を比較して最も大きな値に対応する信号を出力する。
(付記1) 種類の異なる演算を行う複数の演算装置のうちのいずれに対しても発行可能な命令を、該複数の演算装置のうちの1つに対して優先的に発行するための制御を行い、発行先演算装置を互いに並列に決定する複数の発行制御手段と、
前記複数の演算装置用の命令スロットの空き量を比較し、比較結果を出力する比較手段と、
前記比較結果に基づいて、前記複数の発行制御手段のうちの1つを選択する選択手段と、
選択された発行制御手段が指定する発行先演算装置に対して、命令を発行する発行手段と
を備えることを特徴とする命令発行装置。
(付記2) 種類の異なる演算を行う複数の演算装置のうちのいずれに対しても発行可能な命令を、該複数の演算装置のうちの1つに対して優先的に発行するための制御を行い、発行先演算装置を互いに並列に決定する複数の発行制御手段と、
発行すべき命令列のパターンに応じた優先発行先を学習し、該優先発行先を表す学習情報を格納する学習手段と、
前記学習情報に基づいて、前記複数の発行制御手段のうちの1つを選択する選択手段と、
選択された発行制御手段が指定する発行先演算装置に対して、前記命令列に含まれる命令を発行する発行手段と
を備えることを特徴とする命令発行装置。
(付記3) 前記複数の演算装置用の命令スロットの空き量を比較し、比較結果を出力する比較手段をさらに備え、前記学習手段は、前記命令列のパターンと前記比較結果の組合せに応じた優先発行先を学習することを特徴とする付記2記載の命令発行装置。
(付記4) 前記学習手段は、前記命令列のパターンと前記複数の演算装置用の命令スロットの空き量との組合せに応じた優先発行先を学習することを特徴とする付記2記載の命令発行装置。
(付記5) 前記学習手段は、前記優先発行先の強度情報を含む学習情報を格納し、前記複数の発行制御手段のうち、発行可能な命令の数が最大となる発行制御手段が選択されやすくなるように、該学習情報を更新することを特徴とする付記2記載の命令発行装置。
(付記6) 種類の異なる演算を行う複数の演算装置のうちのいずれに対しても発行可能な命令を、該複数の演算装置のうちの1つに対して優先的に発行するための制御を行い、発行先演算装置を互いに並列に決定する複数の発行制御手段と、
レジスタライト命令により指定された優先発行先情報を格納するレジスタ手段と、
前記優先発行先情報に基づいて、前記複数の発行制御手段のうちの1つを選択する選択手段と、
選択された発行制御手段が指定する発行先演算装置に対して、命令を発行する発行手段と
を備えることを特徴とする命令発行装置。
(付記7) 前記優先発行先情報を、同時発行可能な命令の数が最大となるように書き換えるレジスタライト命令を生成する生成手段をさらに備えることを特徴とする付記6記載の命令発行装置。
【0084】
【発明の効果】
本発明によれば、異なる種類の複数の演算装置のいずれに対しても発行可能な命令の優先発行先が、各演算装置用の命令スロットの空き量や学習結果に基づいて自動的に選択される。これにより、同時発行可能な命令の数が多くなるような命令の発行先を、短時間で決定することができる。
【図面の簡単な説明】
【図1】本発明の命令発行装置の原理図である。
【図2】プロセッサの構成図である。
【図3】第1の発行部を示す図である。
【図4】第1の発行制御回路を示す図である。
【図5】第2の発行制御回路を示す図である。
【図6】第2の発行部を示す図である。
【図7】第3の発行部を示す図である。
【図8】第4の発行部を示す図である。
【図9】第5の発行部を示す図である。
【図10】第6の発行部を示す図である。
【図11】本発明の発行ステージを示す図である。
【図12】従来の発行制御を示す図である。
【図13】従来の発行ステージを示す図である。
【図14】変更された発行ステージを示す図である。
【符号の説明】
1、51 発行ラッチ
2、52、53 発行制御回路
3、4、57、58 リザベーションステーション
5、6、60、61 演算装置
11 発行制御手段
12 比較手段
13 学習手段
14 レジスタ手段
15 選択手段
16 発行手段
21 ブランチヒストリテーブル
22 フェッチ/分岐予測部
23 レベル0命令キャッシュ
24 リコード部
25 レベル1命令キャッシュ
26 レベル2キャッシュ
27 インタフェース
28 レベル1データキャッシュ
29 発行部
30 FXレジスタファイル
31 FPレジスタファイル
32 CCレジスタファイル
33、34、35、36 リザベーションステーション
37 ロード/ストア部
38 AGEN実行部
39 FX&FXVIS実行部
40 FP&FPVIS実行部
41 UPAバス
54、73 比較回路
55、81、93 マルチプレクサ
56、59 モニタ回路
71、92 エンコーダ
72 学習回路
82 減算器
83 加算器
91 制御レジスタ
Claims (7)
- 種類の異なる演算を行う複数の演算装置のうちのいずれに対しても発行可能な命令を、該複数の演算装置のうちの1つに対して優先的に発行するための制御を行い、発行先演算装置を互いに並列に決定する複数の発行制御手段と、
前記複数の演算装置用の命令スロットの空き量を比較し、比較結果を出力する比較手段と、
前記比較結果に基づいて、前記複数の発行制御手段のうちの1つを選択する選択手段と、
選択された発行制御手段が指定する発行先演算装置に対して、命令を発行する発行手段と
を備えることを特徴とする命令発行装置。 - 前記選択手段は、前記複数の演算装置のうちのいずれに対しても発行可能な命令を、空き量が最大の命令スロットに対応する演算装置に対して優先的に発行するための制御を行う、発行制御手段を選択することを特徴とする請求項1記載の命令発行装置。
- 種類の異なる演算を行う複数の演算装置のうちのいずれに対しても発行可能な命令を、該複数の演算装置のうちの1つに対して優先的に発行するための制御を行い、発行先演算装置を互いに並列に決定する複数の発行制御手段と、
発行すべき命令列のパターンに応じた優先発行先を学習し、該優先発行先を表す学習情報を格納する学習手段と、
前記学習情報に基づいて、前記複数の発行制御手段のうちの1つを選択する選択手段と、
選択された発行制御手段が指定する発行先演算装置に対して、前記命令列に含まれる命令を発行する発行手段と
を備えることを特徴とする命令発行装置。 - 前記複数の演算装置用の命令スロットの空き量を比較し、比較結果を出力する比較手段をさらに備え、前記学習手段は、前記命令列のパターンと前記比較結果の組合せに応じた優先発行先を学習することを特徴とする請求項3記載の命令発行装置。
- 前記学習手段は、前記命令列のパターンと前記複数の演算装置用の命令スロットの空き量との組合せに応じた優先発行先を学習することを特徴とする請求項3記載の命令発行装置。
- 種類の異なる演算を行う複数の演算装置のうちのいずれに対しても発行可能な命令を、該複数の演算装置のうちの1つに対して優先的に発行するための制御を行い、発行先演算装置を互いに並列に決定する複数の発行制御手段と、
レジスタライト命令により指定された優先発行先情報を格納するレジスタ手段と、
前記優先発行先情報に基づいて、前記複数の発行制御手段のうちの1つを選択する選択手段と、
選択された発行制御手段が指定する発行先演算装置に対して、命令を発行する発行手段と
を備えることを特徴とする命令発行装置。 - 前記優先発行先情報を、同時発行可能な命令の数が最大となるように書き換えるレジスタライト命令を生成する生成手段をさらに備えることを特徴とする請求項6記載の命令発行装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000239667A JP4025493B2 (ja) | 2000-08-08 | 2000-08-08 | 適切な発行先に命令を発行する命令発行装置 |
US09/797,734 US6760836B2 (en) | 2000-08-08 | 2001-03-05 | Apparatus for issuing an instruction to a suitable issue destination |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000239667A JP4025493B2 (ja) | 2000-08-08 | 2000-08-08 | 適切な発行先に命令を発行する命令発行装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002055814A JP2002055814A (ja) | 2002-02-20 |
JP4025493B2 true JP4025493B2 (ja) | 2007-12-19 |
Family
ID=18731166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000239667A Expired - Fee Related JP4025493B2 (ja) | 2000-08-08 | 2000-08-08 | 適切な発行先に命令を発行する命令発行装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6760836B2 (ja) |
JP (1) | JP4025493B2 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6886091B1 (en) * | 2001-06-29 | 2005-04-26 | Koninklijke Philips Electronics N.V. | Replacing VLIW operation with equivalent operation requiring fewer issue slots |
JP3816844B2 (ja) | 2002-07-05 | 2006-08-30 | 富士通株式会社 | プロセッサ及び命令制御方法 |
US7587332B2 (en) | 2005-03-23 | 2009-09-08 | Cubic Corporation | Directed autoload of contactless stored value card within a transportation system |
WO2006114874A1 (ja) * | 2005-04-21 | 2006-11-02 | Fujitsu Limited | プロセッサ装置 |
JP2011008732A (ja) * | 2009-06-29 | 2011-01-13 | Fujitsu Ltd | プライオリティ回路、演算処理装置及び演算処理方法 |
JP2014002555A (ja) * | 2012-06-18 | 2014-01-09 | Fujitsu Ltd | プロセッサ |
US9047092B2 (en) * | 2012-12-21 | 2015-06-02 | Arm Limited | Resource management within a load store unit |
CN105988952B (zh) * | 2015-02-28 | 2019-03-08 | 华为技术有限公司 | 为内存控制器分配硬件加速指令的方法和装置 |
US10417152B2 (en) * | 2016-06-03 | 2019-09-17 | International Business Machines Corporation | Operation of a multi-slice processor implementing datapath steering |
JP7032647B2 (ja) * | 2018-04-17 | 2022-03-09 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US11294678B2 (en) * | 2018-05-29 | 2022-04-05 | Advanced Micro Devices, Inc. | Scheduler queue assignment |
US11334384B2 (en) * | 2019-12-10 | 2022-05-17 | Advanced Micro Devices, Inc. | Scheduler queue assignment burst mode |
US11948000B2 (en) | 2020-10-27 | 2024-04-02 | Advanced Micro Devices, Inc. | Gang scheduling for low-latency task synchronization |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5487156A (en) * | 1989-12-15 | 1996-01-23 | Popescu; Valeri | Processor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched |
GB9027853D0 (en) | 1990-12-21 | 1991-02-13 | Inmos Ltd | Multiple instruction issue |
GB9123271D0 (en) * | 1991-11-02 | 1991-12-18 | Int Computers Ltd | Data processing system |
KR100248903B1 (ko) * | 1992-09-29 | 2000-03-15 | 야스카와 히데아키 | 수퍼스칼라마이크로프로세서에서의 적재 및 저장연산처리방법 및 시스템 |
JP3547482B2 (ja) | 1994-04-15 | 2004-07-28 | 株式会社日立製作所 | 情報処理装置 |
CA2192237A1 (en) | 1995-11-30 | 1997-05-31 | James L. Moskos | Method of transferring files from one computer to another |
US5790822A (en) * | 1996-03-21 | 1998-08-04 | Intel Corporation | Method and apparatus for providing a re-ordered instruction cache in a pipelined microprocessor |
US5864341A (en) * | 1996-12-09 | 1999-01-26 | International Business Machines Corporation | Instruction dispatch unit and method for dynamically classifying and issuing instructions to execution units with non-uniform forwarding |
US5819308A (en) * | 1997-02-27 | 1998-10-06 | Industrial Technology Research Institute | Method for buffering and issuing instructions for use in high-performance superscalar microprocessors |
US6092114A (en) | 1998-04-17 | 2000-07-18 | Siemens Information And Communication Networks, Inc. | Method and system for determining the location for performing file-format conversions of electronics message attachments |
SE521114C2 (sv) | 1998-10-20 | 2003-09-30 | Corus Technologies Ab | Anordning och förfarande för integrering av ett antal datoriserade väsentligen godtyckliga klientsystem |
KR20000063801A (ko) | 2000-08-04 | 2000-11-06 | 김대원 | 무선 단말기를 이용한 이메일 접속 및 서비스 장치 및 방법 |
-
2000
- 2000-08-08 JP JP2000239667A patent/JP4025493B2/ja not_active Expired - Fee Related
-
2001
- 2001-03-05 US US09/797,734 patent/US6760836B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2002055814A (ja) | 2002-02-20 |
US20020019927A1 (en) | 2002-02-14 |
US6760836B2 (en) | 2004-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6289433B1 (en) | Superscalar RISC instruction scheduling | |
US5404552A (en) | Pipeline risc processing unit with improved efficiency when handling data dependency | |
JP2750311B2 (ja) | データ処理装置内のデータ・オペレーションの実行を制御する装置及び方法 | |
US6408377B2 (en) | Dynamic allocation of resources in multiple microprocessor pipelines | |
JP4025493B2 (ja) | 適切な発行先に命令を発行する命令発行装置 | |
US5461722A (en) | Parallel processing apparatus suitable for executing in parallel a plurality of instructions including at least two branch instructions | |
US5537561A (en) | Processor | |
KR19980069854A (ko) | 슈퍼스칼라 프로세서에서 간단한 비의존성 파이프라인 인터록 제어로서 판독되는 지연된 저장 데이타 | |
JPH11282677A (ja) | マイクロプロセッサの分岐命令予測方法 | |
US6266763B1 (en) | Physical rename register for efficiently storing floating point, integer, condition code, and multimedia values | |
EP0093430A2 (en) | Pipeline data processing system | |
JPH1165844A (ja) | パイプラインバイパス機能を有するデータ処理装置 | |
US5274777A (en) | Digital data processor executing a conditional instruction within a single machine cycle | |
JP5130757B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP2580396B2 (ja) | パイプラインにおける分岐命令制御方式 | |
JP3779012B2 (ja) | 分岐による中断のないパイプライン化されたマイクロプロセッサ及びその動作方法 | |
JPH08221273A (ja) | 命令レベルの並列処理制御方法およびプロセッサ | |
US7010670B2 (en) | Data processing device that controls an overriding of a subsequent instruction in accordance with a conditional execution status updated by a sequencer | |
US20030212881A1 (en) | Method and apparatus to enhance performance in a multi-threaded microprocessor with predication | |
US20040193845A1 (en) | Stall technique to facilitate atomicity in processor execution of helper set | |
US6789185B1 (en) | Instruction control apparatus and method using micro program | |
JP3454393B2 (ja) | データ処理装置 | |
US7219218B2 (en) | Vector technique for addressing helper instruction groups associated with complex instructions | |
US7783692B1 (en) | Fast flag generation | |
JP2000181707A (ja) | 命令制御装置及びその方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060410 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070130 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070316 |
|
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: 20071002 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071005 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101012 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101012 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111012 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111012 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121012 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121012 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131012 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |