JP3801987B2 - ディジタル信号処理装置 - Google Patents

ディジタル信号処理装置 Download PDF

Info

Publication number
JP3801987B2
JP3801987B2 JP2002536888A JP2002536888A JP3801987B2 JP 3801987 B2 JP3801987 B2 JP 3801987B2 JP 2002536888 A JP2002536888 A JP 2002536888A JP 2002536888 A JP2002536888 A JP 2002536888A JP 3801987 B2 JP3801987 B2 JP 3801987B2
Authority
JP
Japan
Prior art keywords
hardware resource
instruction set
interrupt
resource means
shadow
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
JP2002536888A
Other languages
English (en)
Other versions
JP2004512599A (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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of JP2004512599A publication Critical patent/JP2004512599A/ja
Application granted granted Critical
Publication of JP3801987B2 publication Critical patent/JP3801987B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30116Shadow registers, e.g. coupled registers, not forming part of the register space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • G06F9/38585Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Communication Control (AREA)
  • Complex Calculations (AREA)
  • Multi Processors (AREA)

Description

【0001】
本発明は、複数の利用可能なハードウェア資源手段と、前記利用可能なハードウェア資源手段にアクセスする第1命令セット手段とを備えることにより、前記利用可能なハードウェア資源手段の少なくとも一部が第1命令セット手段の制御による動作を実行するディジタル信号処理装置、ならびに、そのようなディジタル信号処理装置におけるディジタル信号を処理する方法に関するものである。
【0002】
外部イベントに高速で応答するために、ディジタル信号プロセッサ(DSP)は割込みを利用する。ディジタル信号プロセッサで必要なリアルタイム性能に対し、短い予測割込み待ち時間が基本的に重要である。これを達成するために、理論的にプロセッサは常に割込み可能でなければならない。割込みは外部イベントであり、割込みにより、一時的にプログラム実行を中断して、割込みサービス・ルーチン(ISR)として実行される優先度の高いタスクを実行し、その後にオリジナル・プログラムを続行できる。
【0003】
割込みによりプロセッサは現在のプログラムトレースのそれ以上の実行を一時的に延期し、それに代わり別のプログラムを実行する。延期トレイの状態を保存して、割込みが実行されたとき、プロセッサがオリジナル状態を復元でき、かつオリジナルトレースを正しく続行できるようにする必要がある。保存する必要がある状態の量、したがって状態を保存する必要があるプロセッサ・サイクル数は、プロセッサを中断させるプログラム中のポイントに依存する。
【0004】
状況(context)保存の影響を限定するために、多くの市販の利用可能なディジタル信号プロセッサの限定条件が、プロセッサの割込み機能に対し課される。
【0005】
Philips社により開発されたVLIW(大規模命令語)メディア・プロセッサである「TriMedia」プロセッサでは、割込みにおいて保存する必要がある状態の量を最小化するために、そのようなプロセッサだけがプログラムの流れ内の特定ポイントで割込みを実行する。これらのポイントだけが判断ツリー間で発生し、そこでは広域変数だけが有効になる。アーキテクチャはいわゆる割込みジャンプを通してこれらのポイントを認識する。不利な点は、良好な並列コードを得るために、例えばif−変換・接合(graffing)・推測(speculation)を通して、コンパイル・プロセスが可能な限り大きい基本ブロックを作成するために、コンパイル・プロセスが良好な割込み待ち時間を妨害することである。良好な割込み待ち時間を得るために、割込みジャンプが頻繁に発生し、それによりコンパイラ目標と衝突する。結果的に、「TriMedia」プロセッサ割込み待ち時間は、コンパイラがコード内の正規のポイントで割込みジャンプを備えるように明確に強化されない限り、コード依存性が高くなり、予測可能性が低下し、通常は時間が長くなる。
【0006】
Texas Instruments社の「VelociTi」アーキテクチャは、ブランチの間またはブランチのシャドウ(shadow)内では割込みを許可しない。不利な点は、このアーキテクチャは5サイクルの相対的に長いブランチ遅れを有することである。さらに、このアーキテクチャによりブランチをブランチ遅れスロット内でスケジュール設定でき、それにより全体ブランチ・シャドウを効果的に拡張する。大部分のアルゴリズムでは、多数のブランチが発生するため、割込みはほとんど発生しない。
【0007】
第1世代の「R.E.A.L.」コア・プロセッサは、「繰り返し」命令を使用する単一命令ループが実行されている時を除いて、常に割込み可能である。十分短い割込み待ち時間を保証するために、必要に応じて、大きい繰返しループを複数の小さい繰返しループに分割することにより、ループ繰返し数を十分小さく保つ必要がある。繰返し命令の割込み不可能性のために、このような命令は第2世代の「R.E.A.L.」コア・プロセッサではサポートされない。
【0008】
米国特許5,987,601Aは、コンピュータ・アーキテクチャの割込み待ち時間およびタスク切換え処理オーバヘッド遅れを減少または除去する、特有のハードウェアのゼロ・オーバヘッド割込みおよびタスク・チェンジ・システムを記載している。時間損失なしに、この従来のシステムは、ソフトウェアの介在なしに、1つのサイクルと次のサイクル間の完全なタスク状態保存および復元を実行する。各中央処理ユニットのレジスタに対し、このシステムは1つまたは複数の予備ラッチを使用し、この場合、1つのラッチを「実行」ラッチおよび予備ラッチの1つをタスク格納メモリに取り付ける。このシステムは、別のタスクをタスク格納メモリとの間で転送すると同時に、代替「実行」レジスタおよび予備レジスタ間でコネクションを交換する。さらにこのシステムはタスク・リンク・システムを提供して、タスクのリンクまたはリンクされたタスクの必須の連続的実行を可能にする。最後に、このシステムは優先度「待機(impatience)」カウンタ・システムを備えて、タスクがそれらのタスクのデッドラインに近付くに伴ない、種々のタスクの相対的優先度を増加する。
【0009】
米国特許5,860,014Aは、命令を処理するために、レジスタを使用するプロセッサのレジスタの内容を維持する方法と装置とを開示している。入力はバッファに格納されて、割込み可能命令による割込みに応答してレジスタ内容を復元する。入力は復元するのに選択される入力数を低減するための情報を含む。バッファ入力のセットは、割込みおよび情報に応答して選択されて、レジスタ内容を復元する。このセットには、割込みの応答して内容を復元するのに必要な入力だけを含むため、複数入力が最初の1つのレジスタに対し格納される場合および複数入力が2番目の一つのレジスタに対し格納される場合であっても、プロセッサのレジスタ内容は単一プロセッサ・サイクルで再現できる。
【0010】
米国特許5,115,506Aでは、通常動作において使用する副レジスタと、割込みに使用する主レジスタと、割込みに使用する標準レジスタ・セットと、通常動作および従来の割込み動作において使用する標準レジスタ・セットと、高速割込み動作に使用する代替レジスタ・セットと、メモリ・スタックとを含むマイクロプロセッサをさらに開示している。3つのステータス・ビットを使用して、1つまたは複数の高速割込みが起動されたが完了していないことと、1つの高速割込みが発生したが他の高速割込みは処理されないことと、CPUが現在1つの高速割込みを処理中であることとを表わす。これらのステータス・ビットは反復危険が存在するかどうかを表わし、またそれらを使用して標準および代替レジスタ・セットと、メモリ・スタックとの間の情報の流れを制御して、反復を防止する。
【0011】
米国特許5,003,462Aでは、複数の機能ユニットを持つパイプライン・プロセッサにおいて、詳細な割込みレポートのシステム・アーキテクチャ要件を実現する装置と方法とを開示している。割込みパイプラインの費用は、割込みが頻繁に発生する―特に、それらが仮想メモリ管理から発生する―場合だけ是認されるため、装置は、頻繁に発生する割込みに対し割込みパイプラインを利用し、残りの割込みの詳細なレポートに対しては、低速ではあるが費用のかからないソフトウェア・ベースのシステムを利用する。ソフトウェア・ベースのシステムは命令番号付けおよび追跡手法により支援され、その結果、実行命令に関連する適切な情報は、プロセッサのパイプラインを通過する命令パスおよび場合によっては別の機能ユニットに対する情報としてレポートされる。ソフトウェア割込みハンドラはこの情報を使用して、割込みを分離し、詳細にレポートできる。
【0012】
予測可能および短い割込み待ち時間を得るためには、必要な時は、プロセッサに割込みできることが常に可能である。プログラム中の任意のポイントでプロセッサに割込むことは、十分な量の状態が保存されている必要があることを意味する。状態の一部分だけが、レジスタ・ファイル中の変数として有効であり、またプログラマがそれを利用して、標準的読込み/記憶動作を介して保存または復元できる。状態の残りは、プログラマには見えない通常動作状態にあり、例えば機能ユニットのパイプライン・ステージ内に隠されている。この状態にアクセスして保存および復元を実現するには、ハードウェアの特殊な手段が必要である。
【0013】
効率的なコードを得るため、高性能なVLIWコンパイラはいわゆる「NUAL−EQ(Non−Unit−Assumed−Latency with Equal)」意味論に基づいて操作をスケジュール設定される。これにより、ハードウェアに特別な注意を必要とせずに割込みにより任意の位置を切断できない、誤ったプロセッサ動作を防止できるスケジュールの準備ができる。スケジュールを切断する問題を扱う最も直接的は方法は、シャドウ・バッファを使用して状態を保存することである。シャドウ・バッファの実現は、プロセッサのすべての状態レジスタを複写することを意味する。シャドウ・バッファを使用して、割込み処理におけるプロセッサ状態のコピーを取り、このコピーを維持して、それを、割込み処理が完了しかつ保存されたコピーが状態レジスタに復元するか、または割込みが優先度の高い割込みにより再度中断されるかのどちらかまで維持し続ける。後者の場合、シャドウ・バッファ内容はデータ・メモリのソフトウェア・スタックに保存され、プロセッサ状態の新しいコピーが取られる。しかし、これは費用のかかる解決法である。
【0014】
本発明の目的は、小さいハードウェア・オーバヘッドしか必要としない解決法を提供することである。
【0015】
この目的および他の目的を達成するため、本発明の第1の観点によれば、複数の利用可能なハードウェア資源手段と、前記利用可能なハードウェア資源手段にアクセスする第1命令セット手段とを備えることにより、前記利用可能なハードウェア資源手段の少なくとも一部が前記第1命令セット手段の制御により動作を実行するディジタル信号処理装置であって、第2命令セット手段が前記複数の利用可能なハードウェア資源手段の所定の限定されたサブセットだけにアクセスすることにより、前記ハードウェア資源手段の前記所定の限定されたサブセットの少なくとも一部が前記第2命令セット手段の制御により動作を実行することを特徴とする、ディジタル信号処理装置が提供される。
【0016】
本発明の第2の観点によれば、複数の利用可能なハードウェア資源手段を備え、前記ハードウェア資源手段の少なくとも一部が第1命令セットの制御により動作を実行するディジタル信号処理装置においてディジタル信号を処理する方法であって、複数の使用可能な前記ハードウェア資源手段の前記所定の限定されたサブセットの少なくとも一部が、前記ハードウェア資源手段の前記所定の限定されたサブセットだけにアクセスする、第2命令セットの制御により動作を実行することを特徴とする方法が提供される。
【0017】
本発明によれば、ディジタル信号処理装置は、すべての利用可能なハードウェア資源にアクセスできる、したがって標準命令セットである第1命令セットと、ハードウェア資源の限定されたサブセットだけにアクセスできる、したがってコンパクト命令セットと呼ぶことができる第2命令セットとの両方をサポートする。したがって、本発明によれば、2重命令セットを持つディジタル信号処理装置を提供され、その命令セットの1つ、いわゆるコンパクト第2命令セットは、すべてのハードウェア資源の小さいサブセットを必要とするだけである。コンパクト第2命令セットを使用する利点は、厳格な性能上の要件を持たないプログラム部分内のコード・サイズを節減することである。コンパクト第2命令セットはハードウェア資源に関しては制限点を持つため、このような命令セットの命令は、標準第1命令セットの命令に比べてかなり少ないビットを用いて符号化できる。したがって、性能はコード・サイズとの引き換えになる。標準第1命令セットは、高性能(例えばDSPコード内の時間的クリティカル・ループ)を要求されるプログラム部分に使用され、その結果、通常、標準第1命令セットは多数のプログラム・ビットから構成される大きいVLIW命令を含む。
【0018】
本発明の概念の別の利点は、割込み時に保存する必要がある状態の量を低減することである。標準第1命令セットを割込みサービス・ルーチン(ISR)で使用するとき、この命令により使用されるすべてのハードウェア資源の状態、すなわち処理装置全体の状態を保存しなければならない。「軽量」割込みサービス・ルーチンで、コンパクト第2命令セットだけを使用する場合、すべての他の資源の状態を単に凍結しながらコンパクト第2命令セットで使用されるハードウェア資源の限定されたサブセットだけの状態を保存するだけで十分である。これは文脈切換えの間の、多くの時間を節減する。したがって、ハードウェア資源のコンパクトな形態を利用して、割込み発生時における文脈切換えのオーバヘッドを低減できる。多くの割込みは非常に単純なハンドラ、すなわち割込みサービス・ルーチンを必要とするため、通常、これらハンドラは本発明によるコンパクト第2命令セットだけを使用する。
【0019】
結局、本発明のソリューションは小さいハードウェア・オーバヘッドを必要とするだけである。
【0020】
一般に、前記利用可能なハードウェア資源手段は、プロセッサ資源手段である。
【0021】
本発明の好ましい実施形態は、割込み発生時におけるハードウェア資源手段の現在の状態を格納する第1状態バッファ手段を備え、割込み発生時に、前記第1状態バッファ手段が、前記ハードウェア資源手段の前記所定の限定されたサブセットに含まれない、ハードウェア資源手段の少なくとも一部分の現在の状態を格納する。このような第1状態バッファ手段は、例えば別個のバッファ・ハードウェア・デバイスとして提供されるか、またはディジタル信号処理装置に含まれるデータ・メモリ内に論理バッファを定義する。
【0022】
さらに、割込み発生時に、前記ハードウェア資源手段の前記所定の制限されたサブセットの少なくとも一部分の現在の状態を格納するために、第2状態バッファ手段を備えることができ、第2状態バッファ手段は前記第1状態バッファ手段に比べて小さいサイズを有する。この第2状態バッファ手段は、例えば別個のバッファ・ハードウェア・デバイスとして提供されるか、またはディジタル信号処理装置に含まれるデータ・メモリ内に別の論理バッファを定義する。したがって、本発明の好ましい実施形態による第2状態バッファ手段は、小さいシャドウ・バッファ手段と考えることができる。コンパクト第2命令セットがハードウェア資源手段に関して限定された形態を有する場合、従来技術フルサイズ・シャドウ・バッファとは対照的に、シャドウ・バッファの必要サイズを制限することにより、コストの大幅な削減が達成される。言いかえると、割り込み要求に対し、コンパクト第2命令セットを使用して、すべてのハードウェア資源手段に対し全シャドウ・バッファを実現するハードウェア・オーバヘッドを低減できる。
【0023】
通常、第2状態バッファ手段にパワーを供給する手段が提供され、本発明の好ましい実施形態では、前記パワー供給手段は基本的に、割込み処理の間、前記第2状態バッファ手段だけにパワーを供給し、その結果第2状態バッファ手段はその時間中その状態を維持する。一般に、「パワー」手段は、電圧とクロックの両方を供給する。割込みの発生しない通常動作では、第2状態バッファ手段のパワーは完全に遮断され、パワーを節減する。割込み処理の全期間中、供給電圧を供給して、第2状態バッファ手段がその状態を維持するようにする。クロックは、状態コピーを実行して第2状態バッファ手段内に格納するときに、割込みサービス・ルーチンの最初に第2状態バッファ手段に供給されることだけが必要であるのに対し、割込み処理の残りの間は、第2状態バッファ手段がフリップ−フロップから形成される場合はクロックを供給する必要がなく、この場合には、割込みサービス・ルーチンの最後に第2状態バッファ手段の内容をクロックを必要とせずに読み込むことができる。
【0024】
さらに、直接アクセスできないおよび前記ハードウェア資源手段の前記所定の限定されたサブセットに含まれない、ハードウェア資源手段の少なくとも一部分は、第1スキャン・チェーンに一緒にチェーン結合され、また、直接アクセスできないおよび前記ハードウェア資源手段の前記所定の限定されたサブセットに含まれる、ハードウェア資源手段の少なくとも一部分は、第2スキャン・チェーンに一緒にチェーン結合される。この手法の利点は、第2状態バッファ手段をアドレス指定するのに必要ビット数を低減することである。詳細には、ハードウェア資源手段の限定されたサブセットに含まれないハードウェア資源手段に属するフリップ−フロップと、ハードウェア資源手段の限定されたサブセットに含まれるハードウェア資源手段のシャドウ・レジスタとは、スキャン・チェーンに一緒にチェーン結合される。スキャン・チェーンは、1つのハードウェア内に状態情報を保持する全フリップ−フロップをチェーンに接続することにより構成される。この場合、保存と再現のために、チェーンの最初または最後だけをアドレス指定する必要がある。スキャン・チェーンの読出しおよび書込みにより、チェーン内容のシフト・インおよびシフト・アウトが発生する必要がある。これらスキャン・チェーンはICテスト目的にあらかじめ要求されているスキャン・チェーンに結合でき、後者の種類のスキャン・チェーンは対応するハードウェア・エレメントの標準機能の一部ではなく、このようなハードウェア・エレメントの正しい機能のテストの間に使用されるものであり、この場合、任意の所定の時点で対応するハードウェア・エレメントの内部状態が予測される性能に対して確認できるように、状態の読出しまたは書込みが可能になる。状態の一部分だけを保存可能にするため、スキャン・チェーンのグループを構成でき、この場合のスキャン・チェーンの各グループは第2状態バッファ手段レジスタ・ファイルに個々にアドレスできる。
【0025】
本発明の別の好ましい実施形態によれば、前記第2命令セット手段は並列動作を実行できない。コンパクト第2命令セットが並列動作を実行できないことから、ハードウェア資源手段の使用が減少する。いわゆる、標準第1命令セットは一般に、VLIW命令セットであり、命令が同時実行可能ないくつかの動作から構成される。同時動作の実行は、並列で使用される複数のハードウェア資源を必要とする。前述のように、コンパクト第2命令セットがハードウェア資源に関し限定された形態を有するため、完全な並列形態でないすべての限定された形態がコンパクト第2命令セットにより使用を制限する。
【0026】
好ましくは本発明は「COCOON」組込みDSPコア・アーキテクチャ・テンプレートで使用される。このアーキテクチャ・テンプレートから第3世代「R.E.A.L.」コア・ファミリが導き出された。これらコアは、要求の厳しいオーディオ用途(例えば圧縮オーディオ)および第3世代の移動体通信用途(UMTS)に向けられている。本発明の用途はまた、短い、予測可能な割込み待ち時間が重要であり、かつ内部状態の保存が「ボトルネック」となるような、すべてのタイプのプログラマブル・プロセッサで有効である。
【0027】
本発明の前述およびその他の目的および特徴は、添付図面による好ましい実施形態に関連する以下の説明から明らかになるであろう。
【0028】
(実施形態)
図1はVLIWデータパスの一部分の概略ブロック図であり、シャドウ・フリップ−フロップおよびフリップ−フロップ・スキャン・チェーンを、シャドウ・バッファ・レジスタ・ファイルを通して結合して、単一アドレス・マップを形成している。図では、「RF」はレジスタ・ファイルを意味し、「FU」は機能ユニットを、「ACU」はメモリ・アドレスを計算するアドレス計算ユニットを意味している。図1に示す構成は2重命令セットを持つプロセッサで実現され、この場合、コンパクト命令セット(CIS)と呼ばれる命令セットの1つだけが、全プロセッサ資源の(小さい)サブセットを必要とする。命令セットの他の1つはVLIW命令セットから構成される標準命令セットであり、この標準命令セットは、命令が、同時実行できるいくつかの動作から構成されていることを意味する。動作の同時実行は、並列で使用される複数のハードウェア資源を必要とする。これに反して、コンパクト命令セットがはプロセッサ・ハードウェア資源に関し限定された形態を有し、並列動作を実行できない。したがって、完全並列形態でないすべての限定された特性がコンパクト命令セットにより使用を制限する。
【0029】
コンパクト・セット(CIS)に属し、またCIS資源とも呼ばれる資源は、(小さい)シャドウ・バッファのシャドウ・レジスタとして複写されたすべての資源の状態を有する。これら資源は通常、シーケンサの状態を含む。割込み時には、すべてのCIS状態のコピーがシャドウ・バッファに格納される。これは単一クロック・サイクルだけでなされる。同時に、コンパクト命令セットで使用されない、非CIS資源と呼ばれるすべての資源は、例えばクロック・ゲートにより、それらの状態が凍結される。割込み時のプロセッサ状態の保存は、割込みサービスがなされる直前に、その状態の「スナップショット」を取ることにより可能になる。このようなスナップショットは割込みサービス・ルーチンに実行中に保存され、割込みサービス・ルーチンが完了したときに復元される必要があり、それによりプロセッサは、プロセッサが割込みを受けたときにそれから離れた、正確な同一状態および正確なプログラム位置から続行できる。このようなスナップショットが取られ、残りのすべての状態が凍結された後、割込みサービス・ルーチンの実行を開始できる。したがって、割り込み待ち時間は1サイクルだけである。
【0030】
この割込みサービス・ルーチンの第1部分の命令は、コンパクト命令セット内で発生しなければならない。非CIS資源の状態が保存されるかまたは復元される限り、コンパクト命令セットだけを使用でき、他のすべてのハードウェア資源は凍結される。CIS状態を保存後、残りの状態は、機能ユニットFUに含まれるフリップ−フロップを直接読み出すことにより保存できる。この目的のために、このようなフリップ−フロップはメモリ・ワードにグループ化され、調整可能なレジスタ・ファイル・マップ内、例えばショドウ・バッファのレジスタ・ファイル・マップ内(図1参照)に配置される。
【0031】
シャドウ・バッファをアドレス指定するのに必要なビット数を減少させるため、非CIS資源に属するフリップ−フロップとCIS資源のシャドウ・レジスタとは、一緒にチェーン結合できる。この場合、チェーンの最初または最後だけを保存と再現のためにアドレス指定する必要がある。スキャン・チェーンの読出しおよび書込みにより、チェーン内容のシフト・インおよびシフト・アウトが発生する必要がある。これらスキャン・チェーンはICテスト目的にあらかじめ要求されているスキャン・チェーンに結合できる。状態の一部分だけを保存可能にするため、スキャン・チェーンのグループを構成でき、この場合のスキャン・チェーンの各グループはシャドウ・レジスタ・ファイルに個々にアドレスできる。
【0032】
非CIS資源を再度有効にする前に、非CIS機能ユニットの全状態を無効にし、それにより、非CIS機能ユニットが再度起動されるときに、非無効データがすべてのレジスタ・ファイルに書込まれるか、または読込み/記憶動作が実行されるようにする。有効になった瞬間から、全命令セットは再度使用可能になり、すべての必要な標準変数レジスタを、読込み/記憶動作を使用して標準レジスタ・ファイルに保存できる。必要なレジスタの状態のすべてが保存されると、全割込みは再度有効になり、割込みネスティングを可能にする。割込みネスティングは、1つの割込みが、別の割込みの割込みサービス・ルーチンに割込みできる状態を指す。
【0033】
Mスキャンは、ソフトウェアを介して直接アクセスできるレジスタを除き、非CIS資源およびCIS資源のショドウ・レジスタを介して動作する。ここのMはデータ・メモリに並列に書き込まれるビット数に等しい。この数値はデータ・メモリ・ワード幅と、並列に使用して状態を保存および復元できる読込み/記憶ユニットとの積に等しい。スキャン・チェーンを使用して、割込みサービス・ルーチンの開始および終了時に、スキャンして現在の状態を資源内に読込みおよび資源から外に読出しする。ソフトウェアを介して直接アクセスできるレジスタを除き、全資源はこれらMスキャン・チェーンを介して一緒にチェーン結合される。機能ユニットのような資源内部では、平衡チェーンが得られるような方法で、フリップ−フロップをスキャン・チェーン内に配置する。例えば代表的な機能ユニットでは、チェーンは複数のフリップ−フロップを介して動作し、それによりチェーンの全体長さが、長くても、他のすべてのチェーンの全体長さに比べほぼ1つのフリップ−フロップになるようにする。これは、機能ユニット内のN個のフリップ−フロップの全体について、各スキャン・チェーンに対し、[N/M]フリップ−フロップを加える必要がある。残りのN−M[N/M]フリップ−フロップは、機能ユニットに入力する際に、最小数のフリップ−フロップを通過したチェーンに、最初に加える必要がある。図2には例を示しており、図2(a)は3つのパイプライン・ステージの24、16、20ビットを持つ機能ユニットを示し、図2(b)は32スキャン・チェーンへのパイプライン・レジスタの対応する状態スキャン構造を示す。
【0034】
図3はCIS資源に対するシャドウ・フリップ−フロップ(a)と、非CIS資源に対するフリップ−フロップ・スキャン(b)とを示す。しかし、この図は状態を凍結し、同時にパワー節減するのに使用されるクロック・ゲートを示していない。
【0035】
割込みの発生しない通常動作では、シャドウ・バッファのパワーを完全に遮断して、供給電圧およびクロックの両方が存在しないようにできる。割込み処理の期間中だけ、供給電圧を供給して、シャドウ・バッファを有効にして、その状態を維持するようにする。クロックは、状態コピーを実行してシャドウ・バッファ内に格納するときに、割込みサービス・ルーチンの最初にシャドウ・バッファに供給されるだけである。割込み処理の残りの間は、シャドウ・バッファがフリップ−フロップから構成される場合はクロックを供給する必要がなく、この場合には、割込みサービス・ルーチンの最後にシャドウ・バッファの内容を(バッファ)クロックを必要とせずに読み込むことができる。
【0036】
機能ユニット・クラスタUCの出力のFIFOバッファを使用して、パイプライン構成の機能ユニットの内部状態のスナップショットを得ることができる。
【0037】
スキャン・チェーンはテストに必要なスキャン・チェーンを共有できる。
【0038】
パイプライン機能ユニットに対しては、スナップショット・バッフア格納は、ユニット内の各フリップ−フロップに対するシャドウ・フリップ−フロップを必要とせず、または各フリップ−フロップがスキャン・チェーンの一部であることを必要とせずに、実行できる。機能ユニット・クラスタ出力ポートには、FIFOバッファを配置できる(図4参照)。FIFOバッファのサイズは、バッファに接続された出力ポートの最大待ち時間に等しい。割込みを検出すると、文脈の保存が開始される。このプロセス中、新しい動作は開始されない。しかし、パイプライン機能ユニットで進行中の動作は完了する、つまり、これら動作を実行している機能ユニットは、NOP動作でそれらパイプラインを満たすことにより、出力される。機能ユニット・パイプラインの出力動作中は、機能ユニット・クラスタ出力ポートに現れるデータおよびレジスタ・インデックスは、レジスタ・ファイルRFの代わりにFIFOバッファに書き込まれる。このプロセスは、FIFOバッファが満たされると終了する。
【0039】
割込みサービス・ルーチンが終了すると、レジスタ・ファイルRFのデータおよびレジスタ・インデックスが、機能ユニット・サービス・ポートからの代わりに、FIFOバッファから得られる。FIFOバッファが空になると、通常動作への切換えが発生して、データおよびレジスタ・インデックスが出力ポートから取られる。
【0040】
割込みネスティングはこの方法に複雑性を追加する。ネスティングが許可されると、FIFOバッファの内容をソフトウェア・スタックに保存できる。この目的のためには、これらFIFOに格納された状態にアクセス可能でなけれがならない。この目的に対し、FIFOバッファをスキャン・チェーンのグループの一部分にして、前述のように、読込み/記憶ユニットからアクセス可能にする。
【0041】
パイプラインCIS機能ユニットにFIFOバッファを使用する利点は、シャドウ・フリップ−フロップが機能ユニット・クラスタの異なるCIS機能ユニット間で共用できることである。これにより、必要なシャドウ・フリップ−フロップの数を大幅に低減できる。この方法wパイプライン非CIS機能ユニットに使用すると、これら機能ユニット内部のスキャン・チェーンの必要がなくなる。しかし、これは、スキャン・チェーンだけを使用した場合には必要でない、FIFOバッファに対する余分なシャドウ・フリップ−フロップの費用を要する。
【0042】
通常プログラム流れが割込みを受けるときに必要な動作の例は、ISRが全プロセッサ資源を使用でき、かつ別の割込みにより割込み可能である(ネスティング)と仮定して以下に示す。
【0043】
−プロセッサは通常プログラム手順を実行中である。
−ハードウェアがIRQを検出する。
−ハードウェアは非CIS資源を凍結し、全体に割込みを無効にし、CIS資源の状態をシャドウ・バッファにコピーする。
−プログラム制御がISRを入力する。
−ISRが非CISの状態をソフトウェア・スタックに保存する。
−ISRがシャドウ・バッファ内容をソフトウェア・スタックにコピーする。
−ISRが必要なレジスタをソフトウェア・スタックに保存する。
−ISRが全体に割込みを有効にし、ネスティングを可能にする。
−ISRが必要動作を実行する、すなわち実際に割込みを処理する。
−ISRが全体に割込みを無効にする。
−ISRが使用されたレジスタをソフトウェア・スタックから復元する。
−ISRがシャドウ・バッフアをソフトウェア・スタックから復元する。
−ISRが非CIS資源を凍結する。
−ISRが非CIS資源に関する状態をソフトウェア・スタックから復元する。
−プログラム制御がISRの終了に達する。
−ハードウェアがシャドウ・バッフア内容をCIS資源にコピーし、非CIS資源を解凍し、割込みを全体に再度有効する。
−プロセッサが通常プログラム手順を進行する。
【図面の簡単な説明】
【図1】 VLIWデータパスの一部分の概略ブロック図である。
【図2a】 3つのパイプライン・ステージを持つ機能ユニットを示す概略ブロック図である。
【図2b】 パイプライン・レジスタの対応する状態スキャン構造を示す。
【図3】 コンパクト命令セット(CIS)資源(a)および非CIS資源(b)に対するフリップ−フロップ構成の概略ブロック図である。
【図4】 機能ユニット・クラスタの出力におけるFIFOバッファを示す概略ブロック図である。

Claims (7)

  1. 複数の利用可能なハードウェア資源手段と、
    前記利用可能なハードウェア資源手段にアクセスして、前記ハードウェア資源手段の少なくとも一部の動作を制御する第1命令セット手段と、
    前記複数の利用可能なハードウェア資源手段の所定の限定されたサブセットのみにアクセスして、前記ハードウェア資源手段の所定の限られたサブセットの少なくとも一部の動作を制御する第2命令セット手段と、
    割込みに応答して、前記限定されたサブセットのみの状態を複製するシャドウ・バッファと、
    前記限定されたサブセットに属しない前記ハードウェア資源手段内のフリップ−フロップと前記シャドウ・バッファ内のシャドウ・レジスタとが互いにチェーン結合される少なくとも一つのスキャン・チェーンと、を備え、
    割込みサービス・ルーチンは、保存(セーブ)と復元(リストア)のために前記スキャン・チェーンの開始アドレスまたは終了アドレスのみを必要とすることを特徴とするディジタル信号処理装置。
  2. 前記利用可能なハードウェア資源手段がプロセッサ資源手段であることを特徴とする、請求項1に記載の装置。
  3. 前記シャドウ・バッファにパワーを供給する手段を備え、
    前記パワー供給手段が基本的に、割込み処理中だけ前記シャドウ・バッファにパワーを供給することを特徴とする、請求項1に記載の装置。
  4. 前記第2命令セット手段は、並列動作を許容しないことを特徴とする、請求項1から3の少なくともいずれか一項に記載の装置。
  5. 複数の利用可能なハードウェア資源手段を備え、前記複数のハードウェア資源手段の少なくとも一部が第1命令セットの制御により動作を実行し、
    前記複数の利用可能なハードウェア資源手段の所定の限定されたサブセットの少なくとも一部が前記複数のハードウェア資源手段の所定の限定されたサブセットのみにアクセスする第2命令セットの制御により動作を実行するディジタル信号処理装置におけるディジタル信号を処理する方法であって、
    前記限定されたサブセットのみの状態をシャドウ・バッファに複製し、
    前記第2の命令セットのみを使用する命令により割込みサービス・ルーチンを実行し、前記割込みサービス・ルーチンは、前記限定されたサブセットに属しないハードウェア資源手段内のフリップ−フロップと前記シャドウ・レジスタのシャドウ・レジスタとがともにチェーン結合される少なくとも一つのスキャン・チェーンの開始または終了のみをアドレス指定することにより、前記シャドウ・バッファ内のシャドウ・レジスタと前記限定されたサブセットに属しないリソースとを保存(セーブ)と復元(リストア)することにより割込みに応答することを特徴とする方法。
  6. パワーが基本的に、割込み処理中だけ前記シャドウ・バッファに供給されることを特徴とする、請求項5に記載の方法。
  7. 前記第2命令セットは、並列動作を許容しないことを特徴とする、請求項5または6に記載の方法。
JP2002536888A 2000-10-18 2001-10-10 ディジタル信号処理装置 Expired - Fee Related JP3801987B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP00203591 2000-10-18
PCT/EP2001/011720 WO2002033570A2 (en) 2000-10-18 2001-10-10 Digital signal processing apparatus

Publications (2)

Publication Number Publication Date
JP2004512599A JP2004512599A (ja) 2004-04-22
JP3801987B2 true JP3801987B2 (ja) 2006-07-26

Family

ID=8172144

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002536888A Expired - Fee Related JP3801987B2 (ja) 2000-10-18 2001-10-10 ディジタル信号処理装置

Country Status (8)

Country Link
US (1) US7082518B2 (ja)
EP (1) EP1368732B1 (ja)
JP (1) JP3801987B2 (ja)
KR (1) KR100852563B1 (ja)
CN (1) CN1230740C (ja)
AT (1) ATE384992T1 (ja)
DE (1) DE60132633T2 (ja)
WO (1) WO2002033570A2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001022600A (ja) * 1999-07-06 2001-01-26 Matsushita Electric Ind Co Ltd ディジタル信号処理装置
CN1678999A (zh) * 2002-09-03 2005-10-05 皇家飞利浦电子股份有限公司 用于处理嵌套中断的方法和设备
US7493478B2 (en) * 2002-12-05 2009-02-17 International Business Machines Corporation Enhanced processor virtualization mechanism via saving and restoring soft processor/system states
WO2005020065A2 (en) * 2003-08-25 2005-03-03 Koninklijke Philips Electronics, N.V. Dynamic retention of hardware register content in a computer system
DE60321010D1 (de) * 2003-11-26 2008-06-26 Texas Instruments Inc Scan-testbarer FIFO-Speicher
JP2008500627A (ja) * 2004-05-27 2008-01-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 信号処理装置
US20060294344A1 (en) * 2005-06-28 2006-12-28 Universal Network Machines, Inc. Computer processor pipeline with shadow registers for context switching, and method
US7433986B2 (en) * 2005-11-14 2008-10-07 Fujitsu Limited Minimizing ISR latency and overhead
US7832601B2 (en) * 2005-12-21 2010-11-16 The Ritedose Corporation Dispensing container with nipple dispensing head
US7979684B2 (en) * 2006-08-07 2011-07-12 Qualcomm Incorporated Method and context switch device for implementing design-for-testability functionality of latch-based register files
TWI386814B (zh) * 2007-12-31 2013-02-21 Ind Tech Res Inst 具動態工作管理能力之多處理器界面及其程式載卸方法
GB0810205D0 (en) * 2008-06-04 2008-07-09 Advanced Risc Mach Ltd Graphics processing systems
US9459867B2 (en) 2012-03-15 2016-10-04 International Business Machines Corporation Instruction to load data up to a specified memory boundary indicated by the instruction
US9715383B2 (en) 2012-03-15 2017-07-25 International Business Machines Corporation Vector find element equal instruction
US9588762B2 (en) 2012-03-15 2017-03-07 International Business Machines Corporation Vector find element not equal instruction
US9280347B2 (en) 2012-03-15 2016-03-08 International Business Machines Corporation Transforming non-contiguous instruction specifiers to contiguous instruction specifiers
US9459868B2 (en) 2012-03-15 2016-10-04 International Business Machines Corporation Instruction to load data up to a dynamically determined memory boundary
US9454367B2 (en) 2012-03-15 2016-09-27 International Business Machines Corporation Finding the length of a set of character data having a termination character
US9459864B2 (en) 2012-03-15 2016-10-04 International Business Machines Corporation Vector string range compare
US9268566B2 (en) 2012-03-15 2016-02-23 International Business Machines Corporation Character data match determination by loading registers at most up to memory block boundary and comparing
US9454366B2 (en) 2012-03-15 2016-09-27 International Business Machines Corporation Copying character data having a termination character from one memory location to another
US9710266B2 (en) 2012-03-15 2017-07-18 International Business Machines Corporation Instruction to compute the distance to a specified memory boundary
GB2505183A (en) * 2012-08-21 2014-02-26 Ibm Discovering composite keys
US9170968B2 (en) * 2012-09-27 2015-10-27 Intel Corporation Device, system and method of multi-channel processing
US11029997B2 (en) * 2013-07-15 2021-06-08 Texas Instruments Incorporated Entering protected pipeline mode without annulling pending instructions
GB2516864A (en) * 2013-08-02 2015-02-11 Ibm Increased instruction issue rate and latency reduction for out-of-order processing by instruction chaining and collision avoidance
US9535846B2 (en) * 2014-07-28 2017-01-03 International Business Machines Corporation Using a decrementer interrupt to start long-running hardware operations before the end of a shared processor dispatch cycle
CN105306658A (zh) * 2014-07-28 2016-02-03 中国电信股份有限公司 基于黑名单的来电处理方法和来电处理系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5003462A (en) 1988-05-31 1991-03-26 International Business Machines Corporation Apparatus and method for implementing precise interrupts on a pipelined processor with multiple functional units with separate address translation interrupt means
US5280616A (en) * 1989-02-27 1994-01-18 International Business Machines Corporation Logic circuit for task processing
US5115506A (en) 1990-01-05 1992-05-19 Motorola, Inc. Method and apparatus for preventing recursion jeopardy
DE69423376T2 (de) * 1993-04-23 2000-10-12 Advanced Micro Devices Inc Unterbrechungsverarbeitung
US5860014A (en) 1996-10-15 1999-01-12 International Business Machines Corporation Method and apparatus for improved recovery of processor state using history buffer
US5844422A (en) * 1996-11-13 1998-12-01 Xilinx, Inc. State saving and restoration in reprogrammable FPGAs
US5987601A (en) 1997-02-14 1999-11-16 Xyron Corporation Zero overhead computer interrupts with task switching
US6128728A (en) * 1997-08-01 2000-10-03 Micron Technology, Inc. Virtual shadow registers and virtual register windows
US6026479A (en) * 1998-04-22 2000-02-15 Hewlett-Packard Company Apparatus and method for efficient switching of CPU mode between regions of high instruction level parallism and low instruction level parallism in computer programs

Also Published As

Publication number Publication date
DE60132633T2 (de) 2009-01-15
EP1368732B1 (en) 2008-01-23
KR100852563B1 (ko) 2008-08-18
JP2004512599A (ja) 2004-04-22
CN1230740C (zh) 2005-12-07
WO2002033570A2 (en) 2002-04-25
KR20020091056A (ko) 2002-12-05
WO2002033570A3 (en) 2003-10-16
ATE384992T1 (de) 2008-02-15
US7082518B2 (en) 2006-07-25
CN1494677A (zh) 2004-05-05
DE60132633D1 (de) 2008-03-13
EP1368732A2 (en) 2003-12-10
US20020083253A1 (en) 2002-06-27

Similar Documents

Publication Publication Date Title
JP3801987B2 (ja) ディジタル信号処理装置
US9158547B2 (en) Methods and apparatus for scalable array processor interrupt detection and response
US6185668B1 (en) Method and apparatus for speculative execution of instructions
TW200403588A (en) Suspending execution of a thread in a multi-threaded processor
JP2003029986A (ja) プロセッサ間レジスタ継承方法及びその装置
JP2004171573A (ja) 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ
US20020169947A1 (en) Scalable processer
US6581120B1 (en) Interrupt controller
JPH1097423A (ja) ループ処理の並列実行制御に適したレジスタ構成を有するプロセッサ
JP2000353092A (ja) 情報処理装置及びそのレジスタファイル切替方法
EP1537480B1 (en) Method and apparatus for handling nested interrupts
JPH1049373A (ja) パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置
CN108834427B (zh) 处理向量指令
JPH09274567A (ja) プログラムの実行制御方法及びそのためのプロセッサ
JPH04506878A (ja) データ処理装置
JP2001249805A (ja) マイクロプロセッサ内の命令取出ユニット
CN116841614B (zh) 乱序访存机制下的顺序向量调度方法
US20020124163A1 (en) System and method for supporting precise exceptions in a data processor having a clustered architecture
Tanaka Parallel Inference Engine: PIE
JPH0744404A (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041008

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050906

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20051202

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20051209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060306

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060426

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110512

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110512

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20120512

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120512

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130512

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130512

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130512

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130512

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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