JP2006502490A - アドレス範囲に依存した命令並行処理を行うデータ処理装置 - Google Patents

アドレス範囲に依存した命令並行処理を行うデータ処理装置 Download PDF

Info

Publication number
JP2006502490A
JP2006502490A JP2004542722A JP2004542722A JP2006502490A JP 2006502490 A JP2006502490 A JP 2006502490A JP 2004542722 A JP2004542722 A JP 2004542722A JP 2004542722 A JP2004542722 A JP 2004542722A JP 2006502490 A JP2006502490 A JP 2006502490A
Authority
JP
Japan
Prior art keywords
instruction
address
memory
unit
range
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.)
Granted
Application number
JP2004542722A
Other languages
English (en)
Other versions
JP4283226B2 (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 JP2006502490A publication Critical patent/JP2006502490A/ja
Application granted granted Critical
Publication of JP4283226B2 publication Critical patent/JP4283226B2/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/30003Arrangements for executing specific machine 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/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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • 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
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions

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)

Abstract

データ処理装置は、命令アドレスによってアドレス指定される命令ワードを出力するようになっている命令メモリシステムを有している。命令実行ユニットは、命令ワードからの複数の命令を並行して処理する。検出ユニットは、複数の範囲のうちのどの範囲に命令アドレスが存在するかを検出する。検出ユニットは、命令実行ユニットおよび/または命令メモリシステムに結合され、検出された範囲に応じて命令ワードからの複数の命令を命令実行ユニットが並行して処理する方法を制御する。一実施形態において、命令実行ユニットおよび/または命令メモリシステムは、検出された範囲に応じて、並行に処理される命令ワードからの命令の数を決定する命令ワードの幅を調整する。

Description

本発明は、命令ワードからの複数の命令を並行して実行することができるVLIW(超長命令語)プロセッサ等のデータ処理装置に関する。
VLIWプロセッサによれば、高い命令並行度をもってプログラムを実行することができる。従来、各命令サイクルにおいて、VLIWプロセッサは、複数の所定の数の命令(多くの場合、操作(動作)と呼ばれる)を含む命令ワードをフェッチする。VLIWプロセッサは、これらの操作を同じ命令サイクル(または複数のサイクル)内で並行して実行する。この目的のため、VLIWプロセッサは複数の機能ユニットを有しており、各機能ユニットは命令ワードからの操作のうちの1つを同時に実行することができる。ALU(演算論理回路)、乗算器、ブランチ制御ユニット、メモリアクセスユニット等の様々な種類の機能ユニットが一般的に設けられる。多くの場合、特定のアプリケーション用のプログラムの速度を上げるように形成された専用の機能ユニットも含まれる。したがって、例えばMPEGエンコーディングまたはデコーディングの一部を実行するための機能ユニットが加えられても良い。
しかしながら、プログラムの大部分においては、全ての命令サイクルで全ての機能ユニットに対して操作を供給することができない。これは、例えば全ての機能ユニット内で操作を開始するために不十分なデータしか利用できない場合に生じる。この場合、命令が利用できない機能ユニットのために命令ワード中に「ノーオペレーション」命令が含まれていなければならない。そのような命令ワードを命令メモリ内に維持しなければならない場合には、それによりメモリが過度に使用される。
このようなメモリの過度の使用を減らすために、幾つかの手段が提案されてきた。例えば、他の命令よりも効率的にノーオペレーション命令をエンコードすることにより命令が圧縮されても良い。しかしながら、これでは、依然として、メモリオーバーヘッドを伴い、プロセッサの速度が低下する可能性がある。他の開発においては、複数の機能ユニットから成るクラスタのために命令ワード中の領域を使用することにより、クラスタ中の任意の1つの機能ユニットが命令サイクル毎に上記領域から命令を取得できるようにすることが知られている。このようにすると、複数の機能ユニットのために命令ワードが1つの領域しか含まないため、命令ワードのサイズが減少するが、並行性の最大レベルも下がってしまう。
米国特許第5,774,737号は、1つのVILWプロセッサが長さの異なる複数の命令を使用できることについて記載している。命令は、その長さを示すための長さコードを含んでいても良い。または、現在の長さを示す命令長レジスタが使用されても良い。機能ユニットは、命令長レジスタ内の長さの値によって表わされる数の命令を実行する。現在の長さを設定することにより、プログラムの様々な部分で許容される並行レベルに命令の長さを適合させることができる。しかしながら、現在の長さを設定することは、更なる命令の実行を伴う。
特に、本発明の目的は、命令ワードからの複数の命令を並行して実行することができるプロセッサの記憶効率を向上させることである。
特に、本発明の更なる目的は、メモリを過度に使用することなく専用の機能ユニットの使用を容易にすることである。
本発明に係る処理装置は請求項1に記載されている。本発明において、命令ワードがフェッチされるアドレス範囲の検出は、命令実行ユニットが命令ワードからの命令を並行して処理する方法を決定するために使用される。
一実施形態において、例えば、命令ワードの長さは、そのアドレスが属する範囲によって決まる。したがって、命令実行ユニットは、プログラムの内側ループからの命令を示すアドレス範囲から命令ワードがくる場合には、比較的多くの命令を含む比較的長い命令ワードとして命令メモリからの情報を処理することができ、また、命令ワードが他のアドレス範囲からくる場合には、比較的少ない命令を含む比較的短い命令ワードとして情報を処理することができる。そのため、内側ループにおいて高い並行性を実現することができるとともに、内側ループの外側で高い記憶効率を実現することができ、命令ワードが内側ループ内に送られ或いは内側ループから送出される際に命令ワード長を変更するための明示的な命令を必要としない。
更なる実施形態において、命令メモリシステムは、フェッチされた命令ワードの幅をアドレス範囲に応じて調整するようになっている。異なるタイプのメモリ、例えば速度が異なるメモリが、異なる範囲において使用されても良い。命令メモリの一部に対するクロック信号の供給は、命令アドレスが命令メモリの上記一部に対してマッピングする範囲内にない場合に無効にされることが好ましい。
他の実施形態において、命令実行ユニットは、命令ワードからの異なる命令を実行するための複数の機能ユニットを有している。この実施形態においては、命令ワードが読み取られるアドレス範囲に応じて、機能ユニットのうちの異なる幾つかが選択され、命令ワードからの命令が実行される。したがって、命令ワードからの命令は、一方のアドレス範囲の専用の機能ユニットのための命令として処理されても良く、また、他方のアドレス範囲の他の機能ユニットのための命令として処理されても良い。例えば、MPEGデコーディングおよびエンコーディングは典型的にプログラムの特定の部分に制限されるため、そのようなデコーディングおよびエンコーディングの目的に専用の機能ユニットはプログラムのその特定の部分においてのみ必要とされる。アドレス範囲に基づいてこれらの機能ユニットを選択することにより、どの機能ユニットが命令を処理すべきかを選択するために命令ワードの幅を増大する必要がなくなる。
更なる実施形態において、機能ユニットは、幅が異なる命令を使用しても良い。したがって、ALU機能ユニットのための命令は、操作指示、2つのオペランドレジスタの指示、結果レジスタの指示を含んでいても良い。これに対し、専用の機能ユニットのための命令は、4つのオペランドレジスタおよび2つの結果レジスタの指示を含んでいても良い。アドレス範囲に応じて命令ワード中の命令の幅が適合されても良い。
以下、図面を使用しながら、本発明に係る装置および方法のこれらの目的および他の目的並びに有利な態様について更に詳細に説明する。
図1は、命令アドレスユニット10と、命令メモリシステム12と、命令実行ユニット14と、アドレス範囲検出器16とを有するデータ処理装置を示している。命令アドレスユニット10は、命令メモリシステム12に結合されたアドレス出力部を有している。命令メモリシステム12は命令実行ユニット14に結合された命令出力部を有している。命令実行ユニットは命令アドレスユニットに結合された出力部を有している。アドレス範囲検出器16は、命令アドレスユニット10のアドレス出力部に結合された入力部と、命令メモリシステム12および命令実行ユニット14の制御入力部11に結合された出力部とを有している。
命令実行ユニット14は、入力部140と、複数の機能ユニット142と、レジスタファイル144とを有している。入力部140は、命令メモリシステム12と機能ユニット142との間に結合されている。アドレス範囲検出器16は入力部140に結合されている。また、入力部140はレジスタファイル144に結合された選択出力部を有している。機能ユニット142は、レジスタファイル144に結合された入力部および出力部を有している。機能ユニットのうちの少なくとも1つは、命令アドレスユニット10に結合された出力部を有するブランチ制御ユニットである。
動作時、装置は一連の命令サイクルで動作する。各命令サイクルにおいて、命令アドレスユニット10は命令アドレスを命令メモリシステム12に供給する。応答時、命令メモリシステム12は、命令アドレスによってアドレス指定された命令ワードを検索するとともに、検索された命令ワードを命令実行ユニット14に対して供給する。入力部140は、命令ワードからの演算選択コードを機能ユニット142に送るとともに、命令ワードからのレジスタ選択コードをレジスタファイル144の選択入力部に送る。レジスタファイル144は、レジスタ選択コードに応じて、レジスタファイル144内のレジスタからオペランドを検索するとともに、このデータを機能ユニット142に供給する。機能ユニット142は、演算選択コードに応じて、入力データとしてオペランドを使用することにより、選択された処理演算を行なうとともに、これらの演算結果をレジスタファイル144に供給する。レジスタファイル144は、これらの結果を、命令ワードからのレジスタ選択コードによって選択されたレジスタ内に記憶する。一般に、演算はパイプライン処理される。すなわち、命令アドレスに応じた様々な動作(命令の検索、オペランドの検索、処理、結果の記憶)が異なる命令サイクル中に実行され、この時、これらの動作のうちの他の動作が前の命令アドレスおよび/または後の命令アドレスのために行なわれる。
命令ワードの処理方法は、命令ワードの命令アドレスが存在するアドレス範囲によって決まる。1つの実施形態において、命令ワードの幅がアドレス範囲によって決まる。命令アドレスが第1の範囲にある場合、命令ワードからの第1の数の命令が機能ユニット142によって実行され、命令アドレスが第2の範囲にある場合、命令ワードからの第2の数の命令が機能ユニット142によって実行される。したがって、入力部140は、命令アドレスが存在する範囲を示す検出信号をアドレス範囲検出器16から受け(必要に応じて、命令のアドレス指定と命令の供給との間でのパイプライン遅延に適するように多くの命令サイクルによって遅延される)、入力部140が取り出す範囲に応じて、命令ワードからの多数または少数の演算選択コードが信号と共に機能ユニットに対して供給され命令が実行される。
図2は、様々な長さの命令と共に使用するための命令メモリシステム12の一実施形態を示している。命令メモリシステム12は、複数のメモリユニット20,22と、マルチプレクサ24と、クロックユニット26と、クロックゲート回路28a,28bとを有している。命令メモリシステム12のアドレス入力部23は、メモリユニット20,22をアドレス指定するために少なくとも部分的に結合されている。第1のメモリユニット20は、第2のメモリユニット22のワードサイズよりも大きいワードサイズを有している(象徴的に、第1のメモリユニット20は、その幅広い命令ワードサイズを表わすために第2のメモリユニット22よりも幅広く示されており、一方、第2のメモリユニット22は、それが多数の命令ワードのための記憶場所を有していることを表わすために第1のメモリユニット20よりも高さが高くなるように示されている)。メモリユニット20,22の命令出力部はマルチプレクサ24の入力部に結合されている。この場合、第2のメモリユニット22の命令出力部は、デフォルト入力部29(例えばノーオペレーション命令を供給する)と組み合わせてマルチプレクサ24の入力部に結合されている。マルチプレクサ24の出力部は命令実行ユニット14(図示せず)に結合されている。クロックユニット26は、対応するクロックゲート回路28a,28bをそれぞれ介して、メモリユニット20,22のクロック入力部に結合されている。アドレス範囲検出器16の出力部は、マルチプレクサ24の制御入力部とクロックゲート回路28a,28bの無効(disable)入力部とに結合された命令メモリシステム12の入力部11に結合されている。
動作時、命令メモリシステム12は、命令アドレスに応じて、命令ワードを命令実行ユニット14に対して出力する。命令アドレスが第1の範囲にあることを検出器16が示すと、マルチプレクサ24は第1のメモリユニット22から命令ワードを命令実行ユニット14に対して出力する。命令アドレスが第2の範囲にあることを検出器16が示すと、マルチプレクサ24は第2のメモリユニット22から命令ワードを命令実行ユニット14に対して出力する。
典型的に、第1のメモリユニット22は、プログラムの内側ループすなわち最も多い回数繰り返して実行されるプログラムの部分からの命令ワードを含んでいる。通常、そのような内側ループの命令ワードは、命令実行ユニット14による並列実行を最も多く行なうことができるように最適化される。そのため、内側ループからの各命令ワードは、殆ど、比較的多くの数の機能ユニットのための命令を含んでいる。第2のメモリユニット22は、あまり頻繁に実行されない内側ループの外側からの命令ワードを出力する。これらの命令ワードは、比較的少ない機能ユニットのための命令を含んでいる。したがって、第2のメモリユニット22は、第1のメモリユニット20よりも小さい命令ワードサイズを有しており、命令アドレスに応じて第1のメモリユニット20よりも少ないビットを出力する。そのため、メモリ空間を非常に効率良く使用することができる。第1のメモリユニット20は幅広い命令ワードを記憶し、これにより、内側ループ内での実行効率が高くなる。また、内側ループでの命令サイクルをより短くすることができるように、第1のメモリユニット20が第2のメモリユニット22よりも高速であっても良い。
基本的には、各メモリユニット20,22は、複数あるアドレス範囲のうちの対応する1つからのアドレスに対してだけ応答すれば済む。他のメモリユニットが応答する範囲のアドレスのためのメモリ空間が存在している必要はない。しかしながら、実際には、第2のメモリユニット22も第1のメモリユニット20の範囲のアドレスに対して応答しても良い。この範囲だけが内側ループを含んでいる場合には、これにより、メモリオーバーヘッドが殆ど生じず、第1のメモリユニット20のアドレス範囲を第2のメモリユニット22のメモリ空間の任意の場所に割り当てることができ、その結果、第2のメモリユニット22は、このアドレス範囲の前後の両方にあるアドレスを簡単に与えることができるようになる。
命令アドレスがメモリユニット20,22の一方によってサポートされた範囲内にない場合、このメモリユニット20,22へのクロック供給が無効になることが好ましい。このようにすれば、電力消費量が減少する。一方で、内側ループからの命令ワードを実行している最中は、第2のメモリユニット22に対してクロックを供給する必要はない。他方で、内側ループの外側からの命令を実行している最中は、第1のメモリユニット20に対してクロックを供給する必要はない。対応するメモリユニット20,22が必要とされていない時にそのクロックを無効にするための回路をメモリユニット20,22の一方または両方に設けると、電力消費量を減少させることができる。
図2は2つのメモリを示しており、各メモリは命令アドレスによってアドレス指定される複数の記憶場所を有するとともに、これらの記憶場所はメモリに応じて異なる幅を有している。2つのメモリ20,22だけしか示されていないが、それ自体の幅およびそれ自体のアドレス範囲を有する更に多くの数のメモリを使用できることは言うまでもない。このようにすると、記憶場所の幅を、プログラムの様々な部分の要求に対して更に厳密に適合させることができる。
命令ワード中の命令の数を変えることこそが、アドレス範囲の検出を利用できる唯一の方法である。本発明の他の態様においては、入力部140が検出された範囲を使用していずれかの機能ユニット142を選択し、あるいは、一群の機能ユニットが命令ワードからの命令を実行する。最も基本的なVLIWプロセッサにおいて、命令ワードからの各命令は、機能ユニット142のうちの対応する1つへと送られる。これにより、高い並行性が得られるが、メモリ使用量が多くなってしまう。更に高性能なVLIWプロセッサにおいて、命令ワードからの各命令領域は、機能ユニット142の対応するグループのうちのプログラム可能な1つのための命令を含んでいても良い。この場合、命令ワード内のコードは、従来と同様に、グループの中のどの機能ユニットが命令を実行すべきかを決定する。この場合も、入力部140は、命令を実行しなければならない選択された機能ユニット142に対して信号を送る。他の更に高性能なVLIWプロセッサには、命令ワードの複数の領域からの情報を含む命令によってプログラムされる、いわゆる超機能ユニットが設けられる。この場合、これらの領域のそれぞれは、通常、別個の命令のために使用でき或いは使用されるようになっている。したがって、例えば異常に多くの数のオペランドを有する命令を伝えることができる。
図2Aは、命令ワードメモリシステム204を有するデータプロセッサの一部を示している。命令ワードメモリシステム204は、アドレス入力部206と、機能ユニット200(あるいは、更に一般的には、機能ユニットのグループ200)と、アドレス範囲検出器208とを有している。命令メモリシステム204は、アドレス指定された命令ワードからの各命令のための複数の出力部を有している。これらの出力部は、機能ユニット(または、機能ユニットの各グループ)200とレジスタファイル(図示せず)とに対して結合されている。アドレス範囲検出器208は、命令ワードアドレスを受けるとともに、命令アドレスが属していると検出された、アドレス指定された命令の範囲に応じて、多数ある機能ユニット(または、機能ユニットの各グループ)200のうちのどれが命令ワードからの命令を実行するのかを選択する。機能ユニット(または、機能ユニットの各グループ)200の選択は命令ワードのうちの1つに関して例示されているが、選択が命令ワードからの任意の数の命令に対して適用されても良いことは言うまでもない。したがって、第1の実施形態において、アドレス範囲検出器208は、命令アドレスが特定の範囲内にあることが検出される場合には、命令を実行するために他の機能ユニットではなく特定の機能ユニット(または、機能ユニットの各グループ)200を選択し、他の機能ユニットは、命令アドレスがその特定の範囲内にない場合に選択される。そのため、更に少ない命令ワードで十分である。したがって、命令メモリシステム204が特定のメモリユニットを無効にしても良く、あるいは、連続する命令アドレス間のアドレスステップサイズが減少されても良い。いずれの場合も、命令ワードのために必要とされるメモリの量が減少する。
他の実施形態において、命令メモリシステム204は、命令アドレスが特定の範囲内にある場合、命令ワードから全ての機能ユニット(または、機能ユニットの各グループ)に対して命令を供給する。この実施形態において、アドレス範囲検出器208は、命令アドレスがその特定の範囲内にあったという検出に応じて、命令を実行するために全ての機能ユニットを選択する。命令アドレスがその特定の範囲から外れている場合、アドレス範囲検出器208は機能ユニットの一部だけを選択する。
図2Bは、アドレス範囲検出器208によって制御されるマルチプレクサ202を命令メモリシステム204と特定の機能ユニット(または、機能ユニットの各サブグループ)200との間に更に有する実施形態を示している。各マルチプレクサ202の1つの入力部は、一群の機能ユニット200によって共有される命令メモリシステム204の共通の命令出力部に結合されている。明確にするため、機能ユニット200およびレジスタファイルへの接続を象徴するように命令メモリシステム204からの出力部が1つだけ示されている。各マルチプレクサ202は、命令メモリシステム204の対応する異なる命令出力部に結合された他の入力部を有している。
命令アドレスが特定の範囲内にあることをアドレス範囲検出器208が検出すると、アドレス範囲検出器208は、例えばグループを2つ以上のサブグループに分割することにより、命令ワードからの命令を実行するために、機能ユニットが選択される機能ユニット200のグループの数を増大しても良い。命令アドレスが特定の範囲内にある場合、アドレス範囲検出器208は、命令ワードからの命令のうちの対応する異なる命令を異なる機能ユニット200または機能ユニット200の1つのグループのサブグループへ供給するためにマルチプレクサ202を選択する。命令アドレスがその特定の範囲から外れている場合、アドレス範囲検出器208は、命令ワードからの同じ命令をグループの中の全ての機能ユニットに対して供給する。この場合、更に小さい命令ワードが必要とされる。したがって、命令メモリシステム204が特定のメモリユニットを無効にしても良く、あるいは、連続する命令アドレス間のアドレスステップサイズが減少されても良い。いずれの場合も、命令ワードのために必要とされるメモリの量が減少する。
無論、更に複雑な形態の再グループ化が使用されても良い。すなわち、機能ユニット200(のサブグループ)が1つの範囲で1つのグループの一部であり、他の範囲で他のグループの一部であり、および/または、更なる範囲においてそれ単独で1つのグループを形成する。また、図2Aの実施形態が図2Bの実施形態と組み合わされても良く、それにより、命令アドレスの範囲に応じて命令ワードからの1つの命令を実行するために異なる機能ユニット200が選択されても良い。この場合、各機能ユニット200は、他の範囲で並行してそれ自体の命令ワ−ドを受ける。
無論、図2,2A,2Bの実施形態が組み合わされても良い。この場合、メモリユニットは、これらのメモリユニットからの命令が必要とされるアドレス範囲においてのみ設けられる。
また、入力部は、範囲に応じてグループに機能ユニットを加え或いはグループから機能ユニットを除去しても良い。
図3はアドレス範囲検出器16の一実施形態を示している。アドレス範囲検出器は、下限ソース30と、上限ソース32と、下限コンパレータ34と、上限コンパレータ36と、ANDゲート38とを有している。下限ソース30は下限コンパレータ34の第1の入力部に結合されており、上限ソース32は上限コンパレータ36の第1の入力部に結合されている。命令アドレスのための入力部は、上限コンパレータ36および下限コンパレータ34の第2の入力部に結合されている。上限コンパレータ36および下限コンパレータ34の出力部はANDゲート38の入力部に結合されており、ANDゲート38の出力部がアドレス範囲検出器16の出力部となっている。
動作時、コンパレータ34,36は、命令アドレスとソース30,32からの上限および下限とを比較する。命令アドレスがこれらの限界の間にある場合には、ANDゲード38は一方の信号値を出力し、そうでない場合には、ANDゲード38は他方の信号値を出力する。どのアドレス範囲内でプログラムが内側ループ内の命令を含んでいるかが分かっている場合には、ソース30,32がハードウェアに組み込まれていても良い。また、ソース30,32は、その内容が上限値および下限値を決定する(上限値および下限値の両方を設定することにより、あるいは、下限のみを設定し、上限が下限に対して所定のオフセットを有するようにすることにより)1または複数のレジスタを含んでいても良い。これらのレジスタには、プログラムがメモリユニット20,22内にロードされる際に、適当な値がロードされても良い。また、これらの値は、命令の実行の結果として設定されても良い。
第1のメモリユニット20が比較的幅広い命令を記憶するアドレス範囲も調整できることが好ましい。これは、命令アドレスのほんの僅かな部分を使用して第1のメモリユニット20をアドレス指定することにより実現されても良い。この場合、アドレス範囲検出は、第1のメモリユニット20を作動させるために使用される。また、下限は、命令アドレスから差し引かれても良く、また、この場合は第1のメモリユニット20のためのアドレスとして使用されても良い。限界を与えるために1または複数のレジスタが使用される場合には、これらのレジスタをロードすることにより、関連するアドレス範囲を設定することができる。したがって、関連するプログラムに応じて、幅広い命令を伴うアドレス範囲を設定できる。内側ループへ入ることおよび内側ループから出ることを含むプログラムの一部の実行に備えて、限界をロードすることができる。
無論、アドレス範囲検出器16は、2つ以上の範囲同士を区別できるように、あるいは、互いに交わらない部分を有する範囲で命令アドレスを検出できるように、容易に拡張することができる。この場合、各範囲からの命令に対して異なる処理が行なわれても良く、また、各範囲毎にメモリユニット20,22が設けられても良い。
より一般的には、どの物理メモリがどの論理命令アドレスによってアドレス指定されるかをランタイム(実行)時に選択するために、メモリマッピングユニット(MMU)が使用されても良い。この場合、本発明の一態様において、異なる物理メモリの幅は異なっている。プログラムがロードされると、内側ループからの命令ワードが幅広いメモリ内に記憶される。MMUは、これらの命令ワードの論理命令アドレスを幅広い物理命令メモリ内の物理アドレスに対してマッピングするように設定されている。したがって、実行中において、MMUは論理命令アドレスをマッピングし、メモリは、MMUによって物理的にアドレス指定された物理メモリによって決まる幅を有する命令ワードを戻す。
図4は、命令実行ユニット14に対して供給されても良い機能的な命令ワード40,42の実施例を示している。第1のタイプの命令ワード40は、命令アドレスが一方の範囲内にある時に使用され、また、第2のタイプの命令ワード42は、命令アドレスが他方の範囲内にある時に使用される。第1のタイプの命令ワードは、第2のタイプの命令ワード42よりも幅が広く、第2のタイプの命令ワード42(命令46a,46bと、機能ユニット142のうちのどれが命令を実行するべきかを選択するためのコード47とを有している)よりも多い命令44a〜44fを含んでいる。
受けられた命令ワードからの命令の機能ユニットへの経路指定がアドレス範囲によって決まる入力部の構成により、命令ワードの異なる処理が行なわれても良い。あるいは、圧縮された命令ワードの従来の処理を使用して、異なる処理が行なわれても良い。この場合、装置は、命令ワードの解凍を誘導するために与えられたコードを加え或いは変更する。この場合、コードは、命令のアドレス範囲に依存するように構成される。コードは命令実行ユニット14内で供給され、これにより、命令実行ユニットは、加えられ或いは変更されたコードの結果としてアドレス範囲に応じて命令ワードを処理する。例えば、命令アドレスが第1の範囲内にある場合には、機能ユニットの全てのグループが命令を処理しなければならないことを示すコードが加えられても良く、一方、命令アドレスが第2の範囲内にある場合には、機能ユニットの一部の選択を示す命令メモリからのコードが供給されても良く、あるいは、命令アドレスが第2の範囲内にある時に同じ機能ユニットを常に使用しなければならない場合には、後者のコードが形成されても良い。
機能ユニットは、専用の機能ユニット、例えばMPEGデコーディングまたはエンコーディングの速度を上げる機能を果たすユニットを含んでいても良い。一般に、プログラムの特定の部分だけが、そのような特定の機能ユニットのための命令を伴う命令ワードを含んでいる。命令アドレスが特定の範囲内にある時にだけこれらの機能ユニットのための命令を受け入れることにより、その特定の範囲から外れるアドレスを有する命令のための命令空間をそのような機能ユニットに設けなくて済む。この場合、両方の範囲にある命令ワードは、同じ幅を有していても良い。命令アドレスが特定の範囲から外れている場合には、機能ユニットの一部のための命令が命令ワード中でエンコードされないため、その特定の範囲外で記憶された命令ワード中の他の機能ユニットのための命令をエンコードするために、より多くの空間を利用できる。
図5は、図1の処理装置をプログラミングするためのフローチャートを示している。フローチャートの第1のステップ51においては、プログラムがコンパイルされ、プログラムを実行するために命令が形成される。第2のステップ52においては、プログラム内での内側ループ(またはループ)の位置が決定される。これは、プロファイリング(すなわち、典型的な入力データに対する試験的な実行中に異なる命令が実行された回数を計数する)による自動コード検査によって行なわれても良い。第3のステップ53においては、命令ワードが形成される。この場合、例えば(部分)ループ展開等の既知の技術を使用することにより、あるいは、特定目的の機能ユニットに命令を与えることにより、内側ループにおける命令ワードが最適化される。第4のステップ54においては、命令ワードが命令メモリシステム12内にロードされ、これにより、内側ループにおける命令ワードは、命令メモリシステムが幅広い命令ワードを記憶する範囲または命令実行ユニットが命令ワードからの多くの命令を並行に(同時に)実行するために選択する範囲における、命令アドレスをもつ記憶場所に記憶される。あるいは内側ループの命令ワードがロードされた記憶場所にしたがって、範囲の限界が設定される。
図6は、本発明の態様を実施するための更なる命令メモリシステム60を示している。命令メモリシステム60は、1つの命令アドレス入力部64と、コントローラ66と、複数のメモリユニット62a〜62dとを有している。命令アドレス入力部64の少なくとも一部は各メモリユニット62a〜62dのアドレス入力部に結合されている。命令アドレス入力部の少なくとも一部はコントローラ66に結合されている。コントローラ66は、各メモリユニット62a〜62dをメモリに特有の各アドレス範囲の命令アドレスに応答させるために、各メモリユニット62a〜62dに個別に結合されている。この場合、異なるメモリユニット62a〜62dのアドレス範囲が重なり合っていても良く、また、これらが互いに異なる数の命令アドレスを含んでいても良い(これは、図中において、メモリユニット62a〜62dの垂直方向の高さ範囲が異なっているという事実により象徴される)。同様に、各メモリユニット62a〜62dがそれ自体の幅を有していても良い。すなわち、命令アドレスを用いてアドレス指定される命令データの幅がメモリ毎に異なっていても良い(これは、図中において、メモリユニット62a〜62dの水平方向の幅が異なっているという事実により象徴される)。
動作時、処理ユニット(図示せず)は、一連の命令アドレスを命令メモリシステム60に対して供給する。コントローラ66は、命令アドレスの値に応じて、1または複数のメモリユニット62a〜62dに信号を送って応答する。選択されたメモリユニット62a〜62dはそれぞれ、メモリユニット62a〜62dからの命令の一部(1つのメモリユニット62a〜62dだけが選択される場合には、全ての命令ワード)を検索する。異なるメモリユニット62a〜62dからの命令の一部は、処理ユニット(図示せず)への命令ワードとして組み合わせて供給される。1または複数の命令ユニット62a〜62dのクロック信号は、当該メモリユニットが選択されない場合には無効にされることが好ましい。
図7は、図6のメモリシステム60を使用するプロセッサを示している。プロセッサは、複数の機能ユニット群70a〜70gと、レジスタファイル72と、プログラムカウンタ74とを有している。各機能ユニット群は1または複数の機能ユニット(図示せず)を有していても良い。メモリシステム60のコントローラ66の選択出力部は、機能ユニット群70a〜70gのクロックイネーブル入力部に結合されている。命令メモリシステム60のメモリユニット(明確のため図示せず)の命令出力部は、機能ユニット群70a〜70gの命令選択入力部と、レジスタファイル72のオペランドレジスタ選択入力部および結果レジスタ選択入力部とに対して結合されている。機能ユニット群70a〜70gは、レジスタファイル72に結合された結果出力部とオペランド入力部とを有している(明確にするため、これらの接続部の全てが1つの線で示されているが、実際には、独立した接続部が使用される)。
動作時、命令メモリシステム60の各メモリユニットは、1または複数のグループ(群)の機能ユニット70a〜70gに専用のものとなる。機能ユニット70a〜70gのグループの対応するメモリユニットが選択されていないことをコントローラ66からの選択信号が示している場合には、1または複数のグループの機能ユニット70a〜70gのクロック信号が無効にされる。したがって、そのグループの機能ユニットはクロック信号を受けず、電力消費量が更に減少される。
しかしながら、図7の実施形態とは無関係に図6の命令メモリシステムを使用できることは言うまでもない。すなわち、機能ユニット群のクロック信号を無効にする必要はない。また、メモリユニットと機能ユニット群との間に所定の関係が存在する必要もない(しかしながら、そのような所定の関係により、処理が促進されるとともに、回路が簡略化される)。
データ処理装置を示している。 命令メモリシステムの一実施形態を示している。 データ処理装置の一部を示している。 データ処理装置の一部を示している。 アドレス範囲検出器を示している。 処理装置のための命令ワードを示している。 データ処理装置をプログラミングするフローチャートを示している。 命令メモリシステムの一実施形態を示している。 データプロセッサ装置を示している。

Claims (17)

  1. 命令アドレスを出力するための命令アドレス生成回路と、
    前記命令アドレスによってアドレス指定された命令ワードを出力する命令メモリシステムと、
    前記命令ワードからの複数の命令を並行して処理する命令実行ユニットと、
    複数の範囲のうちのどの範囲に前記命令アドレスが存在するかを検出する検出ユニットであって、前記命令実行ユニットおよび/または前記命令メモリシステムに結合され、検出された範囲に応じて前記命令ワードからの複数の命令を前記命令実行ユニットが並行して処理する方法を制御する検出ユニットと、
    を備えた、データ処理装置。
  2. 前記命令実行ユニットおよび/または前記命令メモリシステムは、前記検出された範囲に応じて、並行に処理される前記命令ワードからの命令の数を決定する命令ワードの幅を調整する、請求項1に記載のデータ処理装置。
  3. 前記命令実行ユニットが複数の機能ユニットを備え、前記命令実行ユニットは、前記検出された範囲に応じて、前記命令を処理するために利用できる機能ユニットの一部を選択する、請求項1に記載のデータ処理装置。
  4. 前記命令実行ユニットが複数の機能ユニットを備え、前記命令実行ユニットは、前記検出された範囲に応じて、複数の機能ユニットまたは機能ユニットのセットから成る複数の機能ユニット群がそれぞれ前記命令ワードからの対応する命令を受けたかどうか、或いは前記命令ワードからの共有の命令を受けたかどうかを選択する、請求項1に記載のデータ処理装置。
  5. 前記命令メモリシステムは第1のメモリユニットおよび第2のメモリユニットを備え、これらのメモリユニットは、長さが異なる命令ワードのために第1および第2の幅単位のアドレス可能な記憶場所を有する記憶域に、第1および第2の範囲におけるアドレスをそれぞれ与え、前記第1および第2の幅単位が互いに異なっている、請求項2に記載のデータ処理装置。
  6. プログラムを実行するようにプログラミングされ、前記第1のメモリユニット内には前記プログラムの内側ループからの比較的長い命令ワードが記憶され、前記第2のメモリユニット内には前記内側ループの外側にある前記プログラムの大部分からの比較的短い命令ワードが記憶され、前記第1の幅単位が前記第2の幅単位よりも長い、請求項5に記載のデータ処理装置。
  7. 前記検出された範囲に応じて前記命令アドレスを前記第1のメモリユニット上または前記第2のメモリユニット上にマッピングするメモリマッピングユニットを備えている、請求項5に記載のデータ処理装置。
  8. 前記命令メモリシステムは、前記第2の範囲にあるアドレスが検出されると、前記第1のメモリユニットに対するクロック信号の供給を無効にする、請求項5に記載のデータ処理装置。
  9. 前記命令メモリシステムは、アドレス範囲からアドレスが検出されるメモリユニットを除く全てのメモリユニットに対するクロック信号の供給を無効にする、請求項5に記載のデータ処理装置。
  10. 前記命令メモリシステムが複数のメモリユニットを備え、各メモリユニットは対応する範囲の命令アドレスに応答し、前記命令メモリシステムが各範囲の部分的な重なり合いを許容し、前記命令メモリシステムは、対応する範囲内に命令アドレスが存在するメモリユニットの命令ワードからの命令の組み合わせとして命令ワードを供給する、請求項2に記載のデータ処理装置。
  11. 前記命令メモリシステムは、前記命令アドレスが前記メモリユニットのうちの少なくとも1つの対応する範囲内にない場合には、当該少なくとも1つのメモリユニットへのクロック信号の供給を無効にする、請求項10に記載のデータ処理装置。
  12. 前記命令実行ユニットが1または複数の機能ユニットから成る複数のグループを備え、各グループは、対応する所定のメモリユニットに結合されることにより、当該グループが結合される対応する所定のメモリユニットの対応する範囲内に命令アドレスがある時に前記命令ワードから命令を受ける、請求項10に記載のデータ処理装置。
  13. 前記命令実行ユニットは、第1の長さを有する命令または第1の長さと異なる第2の長さを有する命令を選択的に処理することができ、前記第1および第2の命令は少なくとも部分的に命令ワードの同じ場所から得られ、前記第1または第2の命令の実行は、前記命令ワードがフェッチされる命令アドレスの検出された範囲に応じて選択される、請求項3に記載のデータ処理装置。
  14. 請求項1に記載のデータ処理装置をプログラミングする方法であって、
    − 前記装置のための機械語命令から成るプログラムを形成し、
    − 前記プログラムの内側ループを特定し、
    − 前記命令メモリシステム内に前記プログラムをロードすることにより、前記内側ループからの命令を、前記装置が他のアドレス範囲よりも高い並行度を与えるアドレス範囲にある命令アドレスをもつ記憶場所にロードする、方法。
  15. データ処理装置を用いてプログラムを実行する方法であって、
    命令アドレスを使用して命令ワードをフェッチし、
    フェッチされた命令ワードからの命令を実行し、
    複数ある範囲のうちのどの範囲内に前記命令アドレスが存在しているかを検出し、
    命令の実行が並行して成される方法を、検出された範囲に応じて制御する、方法。
  16. 前記フェッチされた命令ワードの幅を前記検出された範囲に応じて適合させることを含む、請求項15に記載の方法。
  17. 前記命令を実行するために使用される装置の機能ユニットの選択を前記検出された範囲に応じて変更することを含む、請求項15に記載の方法。
JP2004542722A 2002-10-11 2003-10-01 アドレス範囲に依存した命令並行処理を行うデータ処理装置 Expired - Fee Related JP4283226B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP02079219 2002-10-11
PCT/IB2003/004327 WO2004034253A2 (en) 2002-10-11 2003-10-01 Vliw processor with variable, address range dependent issue-width

Publications (2)

Publication Number Publication Date
JP2006502490A true JP2006502490A (ja) 2006-01-19
JP4283226B2 JP4283226B2 (ja) 2009-06-24

Family

ID=32088027

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004542722A Expired - Fee Related JP4283226B2 (ja) 2002-10-11 2003-10-01 アドレス範囲に依存した命令並行処理を行うデータ処理装置

Country Status (6)

Country Link
US (2) US8364935B2 (ja)
EP (1) EP1554649A2 (ja)
JP (1) JP4283226B2 (ja)
CN (1) CN1703670B (ja)
AU (1) AU2003263548A1 (ja)
WO (1) WO2004034253A2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10296464B2 (en) 2016-12-09 2019-05-21 Intel Corporation System, apparatus and method for dynamic profiling in a processor
US10713750B2 (en) * 2017-04-01 2020-07-14 Intel Corporation Cache replacement mechanism

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2845433B2 (ja) * 1987-09-07 1999-01-13 日本電気株式会社 集積回路装置
US5115500A (en) 1988-01-11 1992-05-19 International Business Machines Corporation Plural incompatible instruction format decode method and apparatus
JP2974577B2 (ja) * 1994-02-28 1999-11-10 株式会社東芝 コンピュータシステム
US5774737A (en) * 1995-10-13 1998-06-30 Matsushita Electric Industrial Co., Ltd. Variable word length very long instruction word instruction processor with word length register or instruction number register
US5963739A (en) * 1996-04-26 1999-10-05 Peter V. Homeier Method for verifying the total correctness of a program with mutually recursive procedures
US6026486A (en) * 1996-05-23 2000-02-15 Matsushita Electric Industrial Co., Ltd. General purpose processor having a variable bitwidth
US5941980A (en) * 1996-08-05 1999-08-24 Industrial Technology Research Institute Apparatus and method for parallel decoding of variable-length instructions in a superscalar pipelined data processing system
US5937193A (en) * 1996-11-27 1999-08-10 Vlsi Technology, Inc. Circuit arrangement for translating platform-independent instructions for execution on a hardware platform and method thereof
JP3790607B2 (ja) * 1997-06-16 2006-06-28 松下電器産業株式会社 Vliwプロセッサ
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
US6735690B1 (en) * 1999-06-21 2004-05-11 Pts Corporation Specifying different type generalized event and action pair in a processor
WO2000079400A1 (en) * 1999-06-21 2000-12-28 Bops Incorporated Methods and apparatus for generalized event detection and action specification in a processor
FR2812417A1 (fr) * 2000-07-27 2002-02-01 St Microelectronics Sa Processeur dsp a architecture parallele
US7149878B1 (en) * 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
US6845432B2 (en) * 2000-12-28 2005-01-18 Intel Corporation Low power cache architecture
JP2002229779A (ja) * 2001-02-02 2002-08-16 Mitsubishi Electric Corp 情報処理装置
JP3656587B2 (ja) * 2001-10-01 2005-06-08 日本電気株式会社 並列演算プロセッサ、その演算制御方法及びプログラム

Also Published As

Publication number Publication date
CN1703670A (zh) 2005-11-30
CN1703670B (zh) 2010-12-08
JP4283226B2 (ja) 2009-06-24
WO2004034253A3 (en) 2004-10-28
US20060004986A1 (en) 2006-01-05
EP1554649A2 (en) 2005-07-20
US8364935B2 (en) 2013-01-29
US20130138927A1 (en) 2013-05-30
AU2003263548A8 (en) 2004-05-04
AU2003263548A1 (en) 2004-05-04
WO2004034253A2 (en) 2004-04-22

Similar Documents

Publication Publication Date Title
JP5638108B2 (ja) 処理スケジューリング方法、コンピュータおよびコンピュータプログラム
US5461722A (en) Parallel processing apparatus suitable for executing in parallel a plurality of instructions including at least two branch instructions
US7457970B2 (en) VLIW processor with power saving
JP2005182825A5 (ja)
KR100266424B1 (ko) 롬(rom)용량을 저감한 데이타 프로세서
US7620804B2 (en) Central processing unit architecture with multiple pipelines which decodes but does not execute both branch paths
KR101849110B1 (ko) 다음-명령-타입 필드
US5335330A (en) Information processing apparatus with optimization programming
US5951678A (en) Method and apparatus for controlling conditional branch execution in a data processor
JP2005182659A (ja) Vliw型dsp,及びその動作方法
JP3749233B2 (ja) パイプラインでの命令実行方法及び装置
JP2006522398A (ja) パイプライン型命令プロセッサにおけるバイパスの使用
US20060095746A1 (en) Branch predictor, processor and branch prediction method
US5274776A (en) Information processing system having mode signal holding means and selecting operand access mode based on mode signal indicating type of currently executed instruction
US20050149931A1 (en) Multithread processor architecture for triggered thread switching without any cycle time loss, and without any switching program command
US20230359385A1 (en) Quick clearing of registers
US10437598B2 (en) Method and apparatus for selecting among a plurality of instruction sets to a microprocessor
GB2540944A (en) Vector operand bitsize control
KR20200090103A (ko) 분기 예측기
JP4283226B2 (ja) アドレス範囲に依存した命令並行処理を行うデータ処理装置
JP2005038203A (ja) メモリ制御方法及び装置
JP4151497B2 (ja) パイプライン処理装置
KR100515039B1 (ko) 조건부 명령어를 고려한 파이프라인 상태 표시 회로
KR100240590B1 (ko) 슈퍼스칼라 마이크로프로세서를 위한 명령어 디코딩 장치 및 그 방법
JP2629479B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061002

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080507

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080619

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081105

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081110

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090318

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120327

Year of fee payment: 3

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

Year of fee payment: 3

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

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

Free format text: PAYMENT UNTIL: 20120327

Year of fee payment: 3

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

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

Free format text: PAYMENT UNTIL: 20120327

Year of fee payment: 3

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

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

Free format text: PAYMENT UNTIL: 20130327

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130327

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140327

Year of fee payment: 5

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