JP2005038185A - ベクトル処理装置 - Google Patents

ベクトル処理装置 Download PDF

Info

Publication number
JP2005038185A
JP2005038185A JP2003274673A JP2003274673A JP2005038185A JP 2005038185 A JP2005038185 A JP 2005038185A JP 2003274673 A JP2003274673 A JP 2003274673A JP 2003274673 A JP2003274673 A JP 2003274673A JP 2005038185 A JP2005038185 A JP 2005038185A
Authority
JP
Japan
Prior art keywords
vector
data
instruction
complex
complex number
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
JP2003274673A
Other languages
English (en)
Other versions
JP3961461B2 (ja
Inventor
Yoko Isobe
洋子 磯部
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.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno Ltd
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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2003274673A priority Critical patent/JP3961461B2/ja
Publication of JP2005038185A publication Critical patent/JP2005038185A/ja
Application granted granted Critical
Publication of JP3961461B2 publication Critical patent/JP3961461B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Abstract

【課題】複素数データのベクトルロード命令、ベクトルストア命令のディスタンスは2要素飛びアクセスになる為、データ転送時間が連続要素アクセス時の2倍になり、さらに実部と虚部データをアクセスする必要があるため転送時間が遅いという問題がある。
【解決手段】本発明は、複数のベクトルレジスタと複数の入出力ポートを有する中央処理装置と、複数の入出力ポートと複数のバンクから構成される主記憶部とを備えるベクトル処理装置において、命令語中に複素数データであることを示す複素数ビットを設け、コンパイラによって命令語を生成する際にベクトルロード、又はベクトルストアで取り扱うデータが複素数データであるかどうかを判断し、複素数データの場合は複素数ビットを1にセット、他のデータ形式の場合は0をセットし、複素数ビットが1の場合はベクトルデータとして実部と虚部データを1命令で扱うことによって、連続要素アクセスで処理する。
【選択図】 図1


Description

本発明は、複素数データに対するベクトルロード命令、ベクトルストア命令の高速化を図るベクトル処理装置に関する。
ベクトルプロセッサによる複素数データを含む主記憶部の配列に対する加減乗除の演算は、その演算実行の並列性を確保するため、ベクトルレジスタにその配列情報を格納する際に、各複素数データの実数部、虚数部を実数部を格納する第1のレジスタ(群)、虚数部を格納する第2のレジスタ(群)に分けて格納されるのが普通である。特に、乗除算においては2つの複素数の実数部と虚数部間の演算を伴うため、このようにレジスタ(群)に分けることで並列演算が実行し易くなる。
ところで、このように配列上の複数の複素数データを演算実行のためにレジスタに格納するには主記憶上の各複素数の実数部をロードする命令と、虚数部をロードする命令とに分けて実行することになる。また逆のストア命令においても同様である。
特許文献1においては、複素数の加減算のみを含むループのベクトル化において、複素数型配列をその2倍の大きさを持つ実数型配列として扱うことでループ長が2倍となり、連続処理要素数を増やすとともに、ベクトルレジスタと主記憶間のロード、ストア時の主記憶上へのアクセスを連続アクセスにして効率化を図る記載がある。
特開平1−191266(ページ3−4、図1)
一般に、図3に示すように、Fortran言語で記述されたプログラムにおいて複素数データを使用する際には実部データと虚部データを隣接させて主記憶部にマッピングするようにFortran言語仕様で規定されている。
2つの複素数の演算を実施する際には実部同士、虚部同士、あるいは乗除算の場合、実部虚部同士の演算を行う必要がある為、主記憶部からのデータロードを行う際には実部データと虚部データの2つのベクトルロード命令を実行する必要がある。また、演算結果を主記憶部にストアする際にも実部データと虚部データとの2つのベクトルストア命令を実行する必要がある。
この時、ベクトルロード命令、及び、ベクトルストア命令は必然的に2要素飛びアクセスになる。ここで、2要素飛びアクセスとはデータ長が8Bの場合はディスタンスが16Bになることを示す。
ベクトル計算機は、1マシンクロック毎に複数のデータを同時に処理する為にベクトルパイプラインを複数有している。複数のベクトルパイプラインは1つのベクトル命令をそれぞれのベクトルパイプラインに分割して処理するが、ベクトルパイプラインの手法に関しては本発明の本質ではないため説明を割愛する。
1マシンクロック毎に複数データを処理するという意味ではロード命令やストア命令などのメモリアクセス命令も同様であり、メモリアクセス命令において1マシンクロック毎に複数データを中央処理装置と主記憶部間でやりとりする手法は様々であるが、一般的には中央処理装置にポートと呼ばれる主記憶部とのインタフェースを複数設定し、複数ポートは1マシンクロックで同時に動作させることが可能であり、1マシンクロック毎に主記憶部へ複数個のデータを転送したり、或いは主記憶部から複数個のデータを受け取ったりすることが可能である。
従来技術におけるベクトル処理装置の構成例を図6に、従来技術における命令語の一構成例を図7に示す。
図7(a)はベクトルロード命令語の例を示すものであり、OPフィールド101にはベクトルロード命令を示す命令コードを、VRフィールド103にはロードしたデータを格納するベクトルレジスタ番号を、DISTフィールド104は主記憶部をアクセスする際の要素間距離であるストライド(ディスタンス)を示し、ADDRESSフィールド105では1要素目の主記憶部上のアドレスを示す。
図7(b)はベクトルストア命令語の例を示すものであり、OPフィールド101にはベクトルストア命令を示す命令コードを、VRフィールド103では主記憶部にストアするデータが格納されているベクトルレジスタ番号を指定し、DISTフィールド104とADDRESSフィールド105は前記ベクトルロード命令語と同じである。
図6は従来技術における中央処理装置の構造を例示していて、命令発行制御部2と、ベクトル処理部3と、アドレス生成部10と、CPU入出力ポート11と、を有しており、主記憶部4はMMU入出力ポート12と、データを格納するRAM0 13−1〜RAM3 13−4を有している。
命令発行制御部2は、処理すべきベクトル要素長(VL)を保持するVL保持手段5を有しており、命令発行時には命令語100とVL保持手段5で保持されているベクトル要素長情報をベクトル処理部3、及びアドレス生成部10に送出する。
ベクトル処理部3は、複数のベクトルレジスタVR1 7−1〜VRn 7−nとクロスバ8を備えており、ベクトルレジスタVR1 7−1は複数のベクトルパイプラインに分割(本説明では、ベクトルパイプラインは4本と仮定)されている。
要素0はレジスタ7−11、要素1はレジスタ7−12、要素2はレジスタ7−13、要素3はレジスタ7−14、要素4はレジスタ7−11・・・というように各要素は分割され、各レジスタ7−11〜7−14は同時マシンクロックで読み出し、及び書き込みができる。
前記命令発行制御部2からベクトル命令を受け取ると命令語中で指定されるベクトルレジスタに起動をかける。また、各々のレジスタ7−11〜7−14はクロスバ8を介して各CPU入出力ポート11とデータの受け渡しを行う。
アドレス生成部10は、命令発行制御部2からベクトルロード命令、及びベクトルストア命令を受け取ると命令語100中のDISTフィールド104で指定される要素間ストライド情報とADDRESSフィールド105で指定される開始アドレス情報と、前記VL保持手段5から送られてきたVL情報から主記憶部4上の各要素のアドレス情報を算出し、CPU出力ポートCOP0〜COP3に各アドレス情報を送出する。
CPU入出力ポート11は、入力ポート(CIP)と出力ポート(COP)で構成されており、説明上、CPU入出力ポートは各々4つと仮定し、CPU入力ポートとCPU出力ポートをCIP0〜CIP3、COP0〜COP3とする。
CIP0〜CIP3、及びCOP0〜COP3は同じマシンクロックで動作が可能であり、主記憶部のMMU出力ポートMOP0〜MOP3、及びMMU入力ポートMIP0からMIP3とデータの受け渡しを行う。
MMU出力ポートMOP0〜MOP3、及びMMU入力ポートMIP0も同じマシンクロックで同時動作が可能であり、各MMUポート12には、複数バンクで構成されているデータを保持するRAM0 13−1〜RAM3 13−4が接続されている。
例えば、図3のような主記憶部に格納された連続する複素数データにおいて、要素0の実部データはRAM0 13−1のB0に、要素0の虚部データはRAM1 13−2のB1に、要素1の実部データはRAM2 13−3のB2に、要素1の虚部データはRAM3 13−4のB3に、要素2の実部データはRAM0 13−1のB4に格納されているとする。
次に、従来技術のベクトル装置におけるベクトルロード命令の動作について具体的に説明する。
まず、連続要素アクセスの場合の動作を図8を用いて説明する。ロードすべきデータは要素順にRAM0 13−1〜RAM3 13−4にインタリーブされて格納されているものとする。最初のマシンクロック(0t:マシンクロックをtと記す)では4つのCPU出力ポート COP0〜COP3から要素0〜要素3のアドレスが主記憶部のMMU入力ポートMIP0〜MIP3に対して出力される。転送時間を仮に3tとすると3t目にMMU入力ポートMIP0〜MIP3にアドレスが到着し、4t(仮にMIP−RAM間は1tとする)目にRAM0 13−1のB0、RAM1 13−2のB1、RAM2
13−3のB2、及びRAM3 13−4のB3に格納されている要素0:e0、要素1:e1、要素2:e3、要素3:e4を読み出す。
各RAMから読み出されたデータは5t(仮にRAM−MOP間は1tとする)目に各RAMに接続されているMMU出力ポートMOP0〜MOP3にロードデータが転送される。その後3t後、つまり8t目にCPU入力ポートCIP0〜CIP3にロードデータが到着し、9t(仮にCIP−ベクトルレジスタ間は1tとする)目に命令によって指定されたベクトルレジスタ 7−1(VR1)の各ベクトルパイプライン内のレジスタ7−11〜7−14にロードデータが格納される。
以上の処理はパイプラインで処理される為、図8に示すように連続要素アクセスの場合は、1マシンクロック毎に4つの要素を連続して処理できることがわかる。
次に、複素数データを取り扱う場合の2要素飛びアクセス時の動作を図9を用いて説明する。
ロードすべきデータは前述したように要素0の実部データ:R0はRAM0 13−1のB0に、要素0の虚部データ:I0はRAM1 13−2のB1に、要素1の実部データ:R1はRAM2 13−3のB2に、要素1の虚部データ:I1はRAM3 13−4のB3に、要素2の実部データ:R2はRAM0 13−1のB4に格納されており、最初のベクトルロード命令にて実部データのみロードし、次のベクトルロード命令にて実部データがロードされるが、それぞれのベクトルロード命令は2要素飛びでアクセスされる。
実部データを2要素飛びアクセスのベクトルロード命令で処理する場合、最初の0t目では2つのCPU出力ポートCOP0とCOP2から要素0の実部データ:R0と要素1の実部データ:R1の格納されているアドレス情報が主記憶部のMMU入力ポートMIP0とMIP2に対して出力される。3t目にMMU入力ポートMIP0とMIP2にアドレスが到着し、4t目にRAM0 13−1のB0とRAM2 13−3のB2に格納されている要素0の実部データ:R0と要素1の実部データ:R1を読み出す。
各RAMから読み出されたデータは5t目に各RAMに接続されているMMU出力ポートMOP0とMOP2にロードデータが転送される。その後3t後、つまり8t目にCPU入力ポートCIP0とCOP2にロードデータが到着し、9t目に命令によって指定されたベクトルレジスタ 7−1(VR1)のベクトルパイプライン内のレジスタ7−11と7−12にロードデータが格納される。
また、要素2の実部データ:R2と要素3の実部データ:R3をアクセスする際には、先行の要素0の実部データ:R0と要素1の実部データ:R1の処理で使用する各ポートと同じポートを使用する為、先行要素の処理が終了するまで処理が待たされる。つまり2要素飛びアクセスの場合は各4つのポートのうち半分しか使用しない為、図9に示すように中央処理装置−主記憶部間のデータ転送時間は連続要素アクセス時に比べて2倍の時間を要する。
次に、実部データのベクトル要素長分(ここでは16要素)の処理が終了した後に、虚部データのロード(I0〜I15)用の2要素飛びアクセスのベクトルロード命令が開始され、実部データ処理では使用しないポートを使用する。(図9参照)
また、ベクトルストア命令においてもベクトルロード命令と同様に、連続要素アクセスの場合は1t間に全ポート(4ポート)が動作し同時に4要素を処理することが可能であるが、2要素飛びアクセスでは1t間に半分のポート(2ポート)しか動作しない為2要素しか処理をすることができず2倍の実行時間を要する。
以上のように、従来のこの種のベクトル処理装置の課題は、複素数データの場合はベクトルロード命令、およびベクトルストア命令のディスタンスは2要素飛びアクセスになる為、データ転送時間が連続要素アクセス時の2倍になり、さらに実部データと虚部データの2データをアクセスする必要があり処理時間が遅いということである。
また、複素数データ処理時の性能を重視して最初からCPUポートとMMUポートを2倍実装しておくことによって複素数データ処理の高速化を図るケースもあるが、HW量が激増するという欠点がある。
本発明の目的は、命令語中に複素数データであることを示すビットを設け、複素数データの場合はベクトルデータとして実部データと虚部データを1要素として取り扱い、ベクトルロード命令、またはベクトルストア命令を連続要素アクセスとして処理することによって、前述した特許文献1のように加減算データに限定することなく、ベクトルロード命令、またはベクトルストア命令に要する時間を短縮することができる機能を有するベクトル処理装置を提供することである。
本発明の第1のベクトル処理装置は、命令語中に複素数データであることを示すビットを設け、複素数データの場合はベクトルデータとして実部データと虚部データを1要素として取り扱い、ベクトルロード命令、またはベクトルストア命令を連続要素アクセスとしてロード/ストア処理することを備える。
本発明の第2のベクトル処理装置は、ベクトルロード命令、またはベクトルストア命令の処理において、命令語中の複素数ビットを判定し、ロードあるいはストアの対象データが複素数データの場合は、主記憶部での配置が連続する1又は複数の複素数データを1つのベクトルロード命令、あるいはベクトルストア命令で処理することを備える。
本発明の第3のベクトル処理装置は、命令発行制御部と、ベクトル処理部と、データ整列手段と、アドレス生成部と、主記憶部とのデータの入出力を制御する入出力ポートと、を有してベクトル命令を実行する中央処理装置と、主記憶部と、を備えたベクトル処理装置であって、
前記命令発行制御部は、処理すべきデータのベクトル要素長(以降、VLと称す)を保持するVL保持手段と、ベクトルレジスタ番号と要素間ストライドと主記憶部のデータの開始アドレスを含むベクトル命令語中の命令の対象データが複素数か否かを表す複素数ビットを確認し複素数の場合はVL保持手段に保持されているVLを2倍に補正し、複素数でない場合はVLの補正を行わないVL補正手段と、を備え、ベクトル命令語と補正されたVLをベクトル処理部およびアドレス生成部に送出し、
前記ベクトル処理部は、複数のベクトルパイプラインに分割された複数のベクトルレジスタと、ベクトルレジスタとデータ整列手段との間にあって双方向にデータの受け渡しを行うクロスバと、を備え、
前記データ整列手段は、ベクトル命令語中の複素数ビットを確認し、ベクトルロード命令時には主記憶部からロードしたデータを実部データと虚部データに分割し命令語中で指定されたベクトルレジスタと連続する次の番号をもつ2つのベクトルレジスタに転送するように制御し、ベクトルストア命令時には2つのベクトルレジスタから読み出された主記憶部にストアすべき実部データと虚部データを交互に連続するように整列し、CPU出力ポートにデータを送出し、
前記アドレス生成部は、前記命令発行制御部からベクトルロード命令、及びベクトルストア命令を受け取ると命令語中の要素間ストライド情報と開始アドレス情報と、VL情報から主記憶部上の各要素のアドレス情報を算出し入出力ポートにアドレス情報を送出することを備える。
本発明の第4のベクトル処理装置は、第3の発明において、前記命令発行制御部は、命令コード、当該命令コードの対象データが複素数か否かを表す複素数ビット、ロード時のデータを格納するまたはストア時のデータを格納したベクトルレジスタ番号、要素間ストライド、開始アドレスを含むベクトルロード命令、及びベクトルストア命令を処理することを備える。
本発明の第5のベクトル処理装置は、第3の発明において、前記ベクトル処理部は、命令語中で指定されたベクトルレジスタ番号に実数部、前記命令語で指定されたベクトルレジスタ番号の次のレジスタ番号に虚数部を格納する又は虚数部が格納されているとして処理することを備える。
本発明の第6のベクトル処理装置は、第3の発明において、前記ベクトル処理部は、ベクトルロード命令、及びベクトルストア命令語中の複素数ビットが複素数を示している場合、命令語中で指定された実数部のロード、ストアを行うベクトルレジスタと、虚数部のロード、ストアを行う連続した次の番号をもつベクトルレジスタとの2つのベクトルレジスタを対象として連続要素アクセスによりロード/ストア処理することを備える。
本発明においては、以下に記載するような効果を奏する。
第1の効果は、ソフトウェアで取り扱うデータの種類をチェックし、複素数データの場合は命令語中に複素数ビットを有効にし、その情報を元に複素数データの場合はVL補正手段によって1命令で処理する要素長を2倍にし、データ整列手段において連続するデータを実部データと虚部データに分割、あるいは、実部データと虚部データに分かれているものを連続するデータに整列することによって、1つのベクトルロード命令、あるいは1つのベクトルストア命令で実部データと虚部データを扱うことが可能となり、更に、連続データとして主記憶部をアクセスするので、ストライドは連続要素アクセスになり中央処理装置と主記憶部間のデータ転送が最高速で処理することができる為、複素数データ処理を高速化できることである。
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
図1は、本発明のベクトル処理装置の一構成例であり、図2は本発明の命令語の一構成例である。
図2の(a)、図2の(b)において、ベクトルロード命令、及びベクトルストア命令は、命令語中に複素数ビット102を設けており、取り扱うデータが複素数か否かを設定することができ、複素数データ使用時には要素間のストライド(ディスタンス)を示すDISTフィールド104は連続要素飛びであることを指定する。
例えば、倍精度での複素数データの場合は8バイト(以後、バイトはBと記す)が指定される。また、ADDRESSフィールド105にはスタートアドレスが格納されている。(本実施例では、倍精度での複素数データであると仮定して説明を行う。)
図1において、命令発行制御部2は、処理すべきベクトル要素長(VL)を保持するVL保持手段5と、命令語100中の複素数ビット102情報に従ってVL保持手段5に保持されているベクトル要素長を変更するVL補正手段6を有している。
VL補正手段6は、前記複素数ビット102が“1”の場合はVL保持手段5に保持されているベクトル要素長を2倍に補正し(2*VL)、前記複素数ビット102が“0”の場合にはベクトル要素長は補正しない(VL)。
命令発行制御部2は、命令語と前記VL補正手段6で補正されたベクトル要素長をベクトル処理部3、及びアドレス生成部10に送出する。ベクトルロード命令、及びベクトルストア命令語中の複素数ビット102が複素数を示している場合、ベクトル処理部3では2つのベクトルレジスタに起動をかける。例えば、ベクトルロード命令の場合は主記憶部4からロードしたデータを後述するデータ整列手段9を介して実部データと虚部データに分割して2つのベクトルレジスタに格納し、ベクトルストア命令の場合は、実部データと虚部データが格納されている2つのベクトルレジスタを読み出して後述するデータ整列手段9を介して主記憶部4に格納する。
データ整列手段9は、命令語中の前記複素数ビット102を判断し、ベクトルロード命令時には主記憶部からロードしたデータを実部データと虚部データに分割して命令語で指定された2つのベクトルレジスタに転送するように制御し、またベクトルストア命令時には2つのベクトルレジスタから読み出された主記憶部にストアすべき実部データと虚部データを交互に連続するように整列し、CPU出力ポート11にデータを送出する。
アドレス生成部10は、命令発行部2からベクトルロード命令、及びベクトルストア命令を受け取ると命令語中100のDISTフィールド104で指定される要素間ストライド(ディスタンス)情報とADDRESSフィールド105で指定される開始アドレス情報と、VL補正手段6から送られたVL情報から、主記憶部4上の各要素のアドレス情報を算出し、CPU入出力ポート11にアドレス情報を送出する。複素数データの場合は、DISTフィールドには8Bが指定されており、かつVL情報は2*VLに補正されている為、ベクトルロード命令やベクトルストア命令は連続要素アクセスで2*VL分処理することになり、1命令で実部データと虚部データを処理することが可能となる。
このようにして、本願発明では、ソフトウェアで処理すべきデータが複素数データか否かを命令語中の複素数ビットで指定し、ハードウェアではベクトルロード命令、あるいはベクトルストア命令を処理する際には該複素数ビットを判定し、複素数データの場合は、実部データと虚部データを1つの命令で処理を行い、更に中央処理装置と主記憶部間のデータ転送を連続要素アクセスで処理ができる為、複素数データ時の処理を高速に処理することができる。
以降、さらに詳細に本発明の実施例について説明をする。
図2には、本発明の命令語100の一実施例が示されている。
図2(a)はベクトルロード命令語の例を示すものであり、OPフィールド101にはベクトルロード命令を示す命令コードを示し、複素数ビット102は取り扱うデータが複素数か否かを示す。本説明では、複素数ビット102が“1”の時は複素数データであることを示すと仮定する。VRフィールド103にはロードしたデータを格納するベクトルレジスタ番号を指定する。複素数データの場合は実部データと虚部データを格納する2つのベクトルレジスタを指定する必要があるが、本説明では、VRフィールド103で指定されたベクトルレジスタ番号に実部データを、連続する次のベクトルレジスタ番号に虚部データを格納するものとし、VRフィールド103には1つのベクトルレジスタ番号のみ指定するものとする。尚、ベクトルレジスターには複数の要素を格納することが可能である。
DISTフィールド104は主記憶部をアクセスする際の要素間距離であるストライド(ディスタンス)を示し、ADDRESSフィールド105では1要素目の主記憶部上のアドレスを示す。
図2の(b)はベクトルストア命令語の例を示すものであり、OPフィールド101にはベクトルストア命令を示す命令コードを示し、複素数ビット102は取り扱うデータが複素数か否かを示す。またVRフィールド103では主記憶部にストアするデータが格納されているベクトルレジスタ番号を指定する。
従来、複素数データの場合は実部データが格納されているベクトルレジスタと虚部データが格納されているベクトルレジスタの2つを指定する必要があるが、本発明ではVRフォールド103で指定されたベクトルレジスタに実部データが格納されていて、その連続する次のベクトルレジスタには虚部データが格納されているものとする。DISTフィールド104とADDRESSフィールド105は前記ベクトルロード命令語と同じである。
図1に、本発明のベクトル処理装置の一実施例の構成を示す。
図において中央処理装置1は命令発行制御部2と、ベクトル処理部3と、データ整列手段9と、アドレス生成部10と、CPU入出力ポート11と、を有している。
主記憶部4は、MMU入出力ポート12と、データを格納するRAM0 13−0〜RAM3 13−3と、を有している。
中央処理装置1の命令発行制御部2には処理すべきベクトル要素長(ここではVLという)を保持するVL保持手段5と、命令語100中の複素数ビット102情報に従ってVL保持手段5に保持されているベクトル要素長を変更するVL補正手段6と、を有している。VL補正手段では複素数ビット102が“1”の場合はVL保持手段5に保持されているベクトル長を2倍に補正し(2*VL)、複素数ビット102が“0”の場合にはベクトル要素長は補正しない(VL)。
命令発行制御部2は命令語100と前記VL補正手段6で補正されたベクトル要素長をベクトル処理部3、およびアドレス生成部10に送出する。
ベクトル処理部3は、複数のベクトルレジスタVR1 7−1〜VRn 7−nと、クロスバ8と、を備えており、各ベクトルレジスタ7−1〜7−nは、複数のベクトルパイプラインに分割(本発明ではベクトルパイプラインは4本と仮定)されており、要素0はレジスタ7−11、要素1はレジスタ7−12、要素2はレジスタ7−13、要素3はレジスタ7−14、要素4はレジスタ7−11というように各要素は分割されている。
各レジスタ7−11〜7−14は1マシンクロックで同時に読み出しや書き込みが行われる。前記命令発行制御部2からベクトル命令語100を受け取ると命令語中のVRレジスタ103で指定されたベクトルレジスタに起動をかける。また各々のレジスタ7−11〜7−14はクロスバ8を介してデータ整列手段9に対してデータの受け渡しができる。
データ整列手段9は、命令語中の複素数ビット102を判断し、ベクトルロード命令時には主記憶部からロードしたデータを実部データと虚部データに分割して2つのベクトルレジスタに転送するように制御し、またベクトルストア命令時には2つのベクトルレジスタから読み出された主記憶部にストアすべき実部データと虚部データを交互に連続するように整列し、CPU出力ポート11にデータを送出する。
アドレス生成部10は前記命令発行制御部2からベクトルロード命令、及びベクトルストア命令を受け取ると命令語中100のDISTフィールド104で指定される要素間ストライド情報とADDRESSフィールド105で指定される開始アドレス情報と、前記VL補正手段6から送られたVL情報から主記憶部4上の各要素のアドレス情報を算出しCPU出力ポートCOP0〜COP3に各アドレス情報を送出する。本説明では開始アドレスは0であると仮定する。複素数データの場合、DISTフィールド104には連続要素アクセスであることを示す8Bが指定されており、要素0のアドレス情報は0となり、CPU出力ポートCOP0にアドレス情報が送られる。また、要素1のアドレス情報は8となりCPU出力ポートCOP1に、要素2のアドレス情報は16となりCPU出力ポートCOP2に送られ、2*VL分のアドレスを生成しCPU出力ポートCOP0〜COP3に送られる。
CPU入出力ポート11は入力ポート(CIP)と出力ポート(COP)で構成されており、説明上、入力CPUポートと出力CPUポートはそれぞれ4つと仮定し、CPU入力ポートとCPU出力ポートをCIP0〜CIP3、COP0〜COP3とする。
CPU入出力ポート11は、主記憶部4内のMMU入出力ポート12と接続されており、アクセスするRAM0 13−1〜RAM3 13−4のアドレス情報によって使用するCPU入出力ポート11とMMU入出力ポート12が決定される。例えば、RAM0 13−1のB0をアクセスする場合は、CIP0/COP0とMIP0/MOP0を経由し、アドレス情報が0の場合は、RAM013−1のB0をアクセスするものとする。
最初に、ベクトルロード命令を処理する場合の動作について具体的に説明する。
図3に示すように、要素0,要素1,・・・等の複素数データは、Fortran言語仕様によれば、メモリ上は要素0の実部データ、要素0の虚部データ、要素1の実部データ、要素1の虚部データというように一つの複素数データの実部と虚部は連続して配置されなければならない。
ここで、要素0の実部データのアドレス情報を0とすると、要素0の実部データはRAM0 13−1のB0に、要素0の虚部データはRAM113−2のB1に、要素1の実部データはRAM213−3のB2に、要素1の虚部データはRAM313−4のB3に、要素2の実部データはRAM0 13−1のB4に格納されている。
また、主記憶部4からロードしたデータはベクトルレジスタのVR1 7−1とVR2 7−2に格納し、ベクトル要素長はVLであると仮定する。まず、複素数データのベクトルロード命令を示す命令語100中では、複素数ビット102は“1”にセットされ、VRフィールド103にはVR1、DISTフィールド104には連続要素アクセスであることを示す8B、ADDRESSフィールド105には要素0の実部データが格納されているアドレス情報である0が指定される。
VL補正手段6では命令語100中の複素数ビット102が“1”となっているので、VL保持手段5に格納されているベクトル要素長(VL)を2倍に補正する。命令発行制御部2は命令語100とVL補正手段6で補正したベクトル要素長情報(2*VL)をアドレス生成部10に送出し、アドレス生成部10では要素番号とDISTフィールドの値から各要素のアドレス情報を生成する。
例えば、要素0の実部データのアドレスは0、要素0の虚部データのアドレスは8,要素1の実部データは16、…と言うように各要素のアドレス情報を算出した後、1マシンクロック毎に4データ分のアドレス情報をCPU出力ポートCOP0〜COP3に送出し、最終的には2*VL分のデータに対するアドレス情報をCPU出力ポートCOP0〜COP3に送出する。
各アドレス情報はCPU出力ポートCOP0〜COP3からMMU入力ポートMIP0〜MIP3を経由して、RAM13−1〜RAM13−4に格納されているデータを読み出す。
最初の1マシンクロック目には、B0に格納されている要素0の実部データ、B1に格納されている要素0の虚部データ、B2に格納されている要素1の実部データ、およびB3に格納されている要素1の虚部データが読み出される。
次のマシンクロックでは、B0に格納されている要素2の実部データ、B1に格納されている要素2の虚部データ、B2に格納されている要素3の実部データ、B3に格納されている要素3の虚部データが読み出される。RAM0 13−1〜RAM3 13−4から読み出されたデータは、MMU出力ポートMOP0〜MOP3とCPU入力ポートCIP0〜CIP3を経由して、データ整列手段9に送出される。
データ整列手段9では、ロードデータを受け取ると1データ目は実部データ、2データ目は虚部データ、3データ目は実部データ…である為、奇数番目のデータ、つまり実部データはベクトルレジスタVR1 7−1に、偶数番目のデータ、つまり虚部データは連続するベクトルレジスタVR2 7−2に分けて転送する。
ベクトルレジスタVR1 7−1、及びVR2 7−2では、データ整列手段9からロードデータを受け取ると1データ目はベクトルパイプライン0のVR1 7−11、及びVR2 7−21に、2データ目はベクトルパイプライン1のVR1 7−12、及びVR2 7−22に格納する。このようにして、複素数データのロードであっても、連続要素アクセスのベクトルロード命令1命令で処理を行うことが可能となる。
上記実施例では、データ整列手段9はCPU入力ポートCIP0〜CIP3から1マシンクロック毎に4つのデータを受け取り、この4つのデータを2つのベクトルレジスタVR1,VR2に分けて格納するため、各ベクトルレジスタには1マシンクロック毎に2つのデータを書き込むと説明したが、データ整列手段9では2マシンクロック間に受け取る8つのデータを4つの実部データと4つの虚部データに分割することによって、2つのベクトルレジスタには1マシンクロック毎に4つのでデータを書き込むことも可能である。この場合はデータ整列手段9内にバッファなどの調整手段が必要となる。
次に、ベクトルストア命令を処理する場合の動作について具体的に説明する。
主記憶部にストアすべきデータのうち実部データはVR1に、虚部データはVR2に格納されているものとし、要素0の実部データは主記憶部上のアドレス0であるRAM0
13−1のB0に格納されるものとする。
ストアの際にもFortran言語仕様を守る必要がある為、要素0の実部データをRAM0 13−1のB0に格納する場合は、要素0の虚部データをRAM1 13−2のB1に格納する必要がある。複素数データのベクトルストア命令を示す命令語100中では、複素数ビット102は“1”にセットされ、VRフィールド103にはVR1、DISTフィールド104には連続要素アクセスであることを示す8B、ADDRESSフィールド105には要素0の実部データの格納先のアドレス情報である0が指定される。VL補正手段6では命令語100中の複素数ビット102が“1”となっているので、VL保持手段5に格納されているベクトル要素長(VL)を2倍に補正する。
命令発行制御部2は命令語100とVL補正手段6で補正したベクトル要素長情報(2*VL)をアドレス生成部10に送出する。アドレス生成部10ではベクトルロード命令時と同様に要素番号とDISTフィールドの値から各要素のアドレス情報を算出し、1マシンクロック毎に4データ分のアドレス情報をCPU出力ポートCOP0〜COP3に送出し、最終的には2*VL分のデータに対するアドレス情報をCPU出力ポートCOP0〜COP3に送出する。
ベクトル処理部3は命令発行制御部2から複素数のベクトルストア命令を受け取ると命令語中のVRフィールドで指定されたベクトルレジスタVR1 7−1とそれに連続するベクトルレジスタVR2 7−2の2つのベクトルレジスタに起動をかけ、1マシンクロック毎に各ベクトルレジスタVR1、VR2からそれぞれ2つのデータを読み出し、データ整列手段9にデータを送出する。
データ整列手段9では、VR1から送出された実部データとVR2から送出された虚部データを、要素0の実部データ、要素0の虚部データ、要素1の実部データ、要素1の虚部データというように実部データと虚部データが交互になるように整列し、整列後のデータ列はCPU出力ポートCOP0〜COP3に送出される。
CPU出力ポートCOP0〜COP3ではアドレス生成手段10から受け取ったアドレス情報と、データ整列手段9から受け取ったストアデータをペアにしてMMU入力ポートMIP0〜MIP3に送出し、各MMU入力ポートに接続されているRAM0 13−1〜RAM3 13−4にストアデータを格納する。このようにして、複素数データのストアであっても、連続要素アクセスのベクトルストア命令1命令で処理を行うことが可能となる。
上記実施例では、データ整列手段9はベクトル処理部3内の2つのベクトルレジスタから1マシンクロック毎に2つのデータを受け取り、この各2つのデータを実部データと虚部データが交互になるよう4つのデータに整列したのちCPU出力ポートCOP0〜COP3に送出すると説明したが、各ベクトルレジスタからは1マシンクロック毎に4つのデータを読み出し、データ整列手段9内にバッファを設けそのバッファに一旦格納したのち、2つの実部データと2つの虚部データを交互に整列し4つのデータにした後CPU出力ポートCOP0〜COP3に送出することも可能である。
次に、本発明を実施するための最良の形態の動作について図面を参照して説明する。
図4のタイミングチャートを用いて、ベクトルロード命令処理時の動作を説明する。
アドレス生成手段10によってアドレス情報が生成されCPU出力ポートにアドレス情報が送出される(図示せず)。それを受け取ったCPU入出力ポート11は、最初のマシンクロック(0t:マシンクロックをtと記す)では4つのCPU出力ポートCOP0〜COP3から要素0の実部データ:R0と要素0の虚部データ:I0と要素1の実部データ:R1と要素1の虚部データ:I0をアクセスする為のアドレス情報をMMU入力ポートMIP0〜MIP3に対して出力する。
CPU出力ポートとMMU入力ポート間の転送時間を仮に3tとすると、3t目にMMU入力ポートMIP0〜MIP3にアドレス情報が到着し、4t目(仮にMIP−RAM間は1tとする)にはRAM0 13−1のB0、RAM1 13−2のB1、RAM2 13−3のB2、RAM3 13−4のB3に格納されている要素0の実部データ:R0と要素0の虚部データ:I0と要素1の実部データ:R1と要素1の虚部データ:I0を読み出す。
各RAMから読み出されたデータは5t目(仮にRAM−MOP間は1tとする)に各RAMが接続されているMMU出力ポートMOP0〜MOP3に転送され、その3t後、つまり8t目にCPU入力ポートCIP0〜CIP3に4つのロードデータが到着し、9t目にはデータ整列手段9で実部データと虚部データへの分割が行われる(図示せず)。
このとき、要素0の実部データ:R0と要素0の虚部データ:I0と要素1の実部データ:R1と要素1の虚部データ:I1がデータ整列手段9に到着している為、データ整列手段9はベクトルレジスタVR1には要素0の実部データ:R0と要素1の実部データ:R1を、ベクトルレジスタVR2には要素0の虚部データ:I0と要素1の虚部データ:I1を転送し、10t目にベクトルレジスタVR1、及びVR2に2つのデータが書き込まれる。
以上の処理はパイプラインで処理される為、1t後には次の4つのデータが主記憶部から送付され、11t目には、要素2の実部データ:R2と要素3の実部データ:R3が、また要素2の虚部データ:I2と要素3の虚部データ:I3がベクトルレジスタVR1とVR2に書き込まれる。
以上のように、複素数データのベクトルロード命令を処理する場合でも1命令で実部データと虚部データをロードすることができ、またCPU入出力ポート11とMMU入出力ポート12も隙間無く使用することができるため、複素数データのデータロードを高速に処理することが可能となる。
次に図5のタイミングチャートを用いて、ベクトルストア命令処理時の動作を説明する。
命令発行制御部2から複素数データのベクトルストア命令が発行されると、ベクトル処理部3内の命令語で指定されたVR1とVR2の2つのベクトルレジスタに起動がかかるように制御されている。0t目にベクトルレジスタVR1とベクトルレジスタVR2に起動がかかり、VR1から要素0の実部データ:R0と要素1の実部データ:R1を、VR2から要素0の虚部データ:I0と要素1の虚部データ:I1が読み出され、データ整列手段9にデータが送られる。
データ整列手段で9では、2つのベクトルレジスタから送出された4つのデータを要素0の実部データ:R0、要素0の虚部データ:I0、要素1の実部データ:R1、要素1の虚部データ:I1のように実部データと虚部データを交互に整列しCPU出力ポートCOP0〜COP3に送出する。
同じタイミングでアドレス生成手段10から各データに対応するアドレス情報がCPU出力ポートCOP0〜COP3に送付されるよう、アドレス生成手段10は制御されている。2t目にCPU出力ポートCOP0〜COP3からストアデータとアドレス情報を揃えて送出され、3t後の5t目にはMMU入力ポートMIP0〜MIP3にストアデータとアドレス情報が到着する。
更に、その1t後にはMMU入力ポートMIP0〜MIP3に接続されているRAM0 13−1〜RAM3 13−4に、要素0の実部データ:R0、要素0の虚部データ:I0、要素1の実部データ:R1、要素1の虚部データ:I1が書き込まれる。以上の処理はパイプラインで処理される為、RAM0 13−1〜RAM3 13−4には1t毎に4つのデータが書き込まれることになる。
以上のように、複素数データのベクトルストア命令を処理する場合でも1命令で実部データと虚部データをストアすることができ、また、CPU出力ポートやMMU入力ポートも隙間無く使用することができる為、複素数データのデータストアを高速に処理することが可能となる。
本発明は、例えば画像の拡大縮小等の画像変換処理における離散フーリエ変換時の複素数データ計算の高速化に使用することができる。
本発明の実施例における中央処理装置と主記憶装置の構成を表すブロック図である。 本発明の実施例におけるベクトルロード命令語とベクトルストア命令語の構成の説明図である。 本発明の実施例で使用する複素数データの主記憶上での配置状態を表す説明図である。 本発明の実施例におけるベクトルロード命令のタイミングチャートである。 本発明の実施例におけるベクトルストア命令のタイミングチャートである。 従来技術の中央処理装置と主記憶装置の構成を表すブロック図である。 従来技術のベクトルロード命令語とベクトルストア命令語の構成の説明図である。 従来技術におけるベクトルロード命令の連続要素アクセス時のタイミングチャートである。 従来技術におけるベクトルロード命令の2要素とびアクセス時のタイミングチャートである。
符号の説明
1 中央処理装置
2 命令発行制御部
3 ベクトル処理部
4 主記憶部
5 VL保持手段
6 VL補正手段
7−1〜7−n ベクトルレジスタ
8 クロスバ
9 データ整列手段
10 アドレス生成部
11 CPU入出力ポート
12 MMU入出力ポート
13−1 RAM0
13−2 RAM1
13−3 RAM2
13−4 RAM3
100 命令語
101 OPフィールド
102 複素数ビット
103 VRフィールド
104 DISTフィールド
105 ADDRESSフィールド

Claims (6)

  1. 命令語中に複素数データであることを示すビットを設け、複素数データの場合はベクトルデータとして実部データと虚部データを1要素として取り扱い、ベクトルロード命令、またはベクトルストア命令を連続要素アクセスとしてロード/ストア処理することを特徴とするベクトル処理装置。
  2. ベクトルロード命令、またはベクトルストア命令の処理において、命令語中の複素数ビットを判定し、ロードあるいはストアの対象データが複素数データの場合は、主記憶部での配置が連続する1又は複数の複素数データを1つのベクトルロード命令、あるいはベクトルストア命令で処理することを特徴とするベクトル処理装置。
  3. 命令発行制御部と、ベクトル処理部と、データ整列手段と、アドレス生成部と、主記憶部とのデータの入出力を制御する入出力ポートと、を有してベクトル命令を実行する中央処理装置と、主記憶部と、を備えたベクトル処理装置であって、
    前記命令発行制御部は、処理すべきデータのベクトル要素長(以降、VLと称す)を保持するVL保持手段と、ベクトルレジスタ番号と要素間ストライドと主記憶部のデータの開始アドレスを含むベクトル命令語中の命令の対象データが複素数か否かを表す複素数ビットを確認し複素数の場合はVL保持手段に保持されているVLを2倍に補正し、複素数でない場合はVLの補正を行わないVL補正手段と、を備え、ベクトル命令語と補正されたVLをベクトル処理部およびアドレス生成部に送出し、
    前記ベクトル処理部は、複数のベクトルパイプラインに分割された複数のベクトルレジスタと、ベクトルレジスタとデータ整列手段との間にあって双方向にデータの受け渡しを行うクロスバと、を備え、
    前記データ整列手段は、ベクトル命令語中の複素数ビットを確認し、ベクトルロード命令時には主記憶部からロードしたデータを実部データと虚部データに分割し命令語中で指定されたベクトルレジスタと連続する次の番号をもつ2つのベクトルレジスタに転送するように制御し、ベクトルストア命令時には2つのベクトルレジスタから読み出された主記憶部にストアすべき実部データと虚部データを交互に連続するように整列し、CPU出力ポートにデータを送出し、
    前記アドレス生成部は、前記命令発行制御部からベクトルロード命令、及びベクトルストア命令を受け取ると命令語中の要素間ストライド情報と開始アドレス情報と、VL情報から主記憶部上の各要素のアドレス情報を算出し入出力ポートにアドレス情報を送出することを特徴とするベクトル処理装置。
  4. 請求項3において、前記命令発行制御部は、命令コード、当該命令コードの対象データが複素数か否かを表す複素数ビット、ロード時のデータを格納するまたはストア時のデータを格納したベクトルレジスタ番号、要素間ストライド、開始アドレスを含むベクトルロード命令、及びベクトルストア命令を処理することを特徴とするベクトル処理装置。
  5. 請求項3において、前記ベクトル処理部は、命令語中で指定されたベクトルレジスタ番号に実数部、前記命令語で指定されたベクトルレジスタ番号の次のレジスタ番号に虚数部を格納する又は虚数部が格納されているとして処理することを特徴とするベクトル処理装置。
  6. 請求項3において、前記ベクトル処理部は、ベクトルロード命令、及びベクトルストア命令語中の複素数ビットが複素数を示している場合、命令語中で指定された実数部のロード、ストアを行うベクトルレジスタと、虚数部のロード、ストアを行う連続した次の番号をもつベクトルレジスタとの2つのベクトルレジスタを対象として連続要素アクセスによりロード/ストア処理することを特徴とするベクトル処理装置。
JP2003274673A 2003-07-15 2003-07-15 ベクトル処理装置、および、ベクトル処理方法 Expired - Fee Related JP3961461B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003274673A JP3961461B2 (ja) 2003-07-15 2003-07-15 ベクトル処理装置、および、ベクトル処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003274673A JP3961461B2 (ja) 2003-07-15 2003-07-15 ベクトル処理装置、および、ベクトル処理方法

Publications (2)

Publication Number Publication Date
JP2005038185A true JP2005038185A (ja) 2005-02-10
JP3961461B2 JP3961461B2 (ja) 2007-08-22

Family

ID=34211569

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003274673A Expired - Fee Related JP3961461B2 (ja) 2003-07-15 2003-07-15 ベクトル処理装置、および、ベクトル処理方法

Country Status (1)

Country Link
JP (1) JP3961461B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008111500A1 (ja) * 2007-03-08 2008-09-18 Nec Corporation ベクトル処理装置
JP2014513340A (ja) * 2011-04-01 2014-05-29 インテル・コーポレーション データ要素のストライドパターンギャザーおよびデータ要素のストライドパターンスキャッタのためのシステム、装置、および方法
CN107851014A (zh) * 2015-07-31 2018-03-27 Arm 有限公司 用于转换存储器与多个向量寄存器之间的多个数据结构的设备及方法
JP2020173609A (ja) * 2019-04-10 2020-10-22 日本電気株式会社 ベクトルプロセッサ装置、生成方法及びプログラム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008111500A1 (ja) * 2007-03-08 2008-09-18 Nec Corporation ベクトル処理装置
US8316215B2 (en) 2007-03-08 2012-11-20 Nec Corporation Vector processor with plural arithmetic units for processing a vector data string divided into plural register banks accessed by read pointers starting at different positions
JP5182284B2 (ja) * 2007-03-08 2013-04-17 日本電気株式会社 ベクトル処理装置
JP2014513340A (ja) * 2011-04-01 2014-05-29 インテル・コーポレーション データ要素のストライドパターンギャザーおよびデータ要素のストライドパターンスキャッタのためのシステム、装置、および方法
JP2016040737A (ja) * 2011-04-01 2016-03-24 インテル・コーポレーション 装置および方法
CN107851014A (zh) * 2015-07-31 2018-03-27 Arm 有限公司 用于转换存储器与多个向量寄存器之间的多个数据结构的设备及方法
JP2018523238A (ja) * 2015-07-31 2018-08-16 エイアールエム リミテッド メモリと複数のベクトルレジスタ間の複数のデータ構造を転送する装置および方法
JP2020173609A (ja) * 2019-04-10 2020-10-22 日本電気株式会社 ベクトルプロセッサ装置、生成方法及びプログラム

Also Published As

Publication number Publication date
JP3961461B2 (ja) 2007-08-22

Similar Documents

Publication Publication Date Title
US6061779A (en) Digital signal processor having data alignment buffer for performing unaligned data accesses
US7620797B2 (en) Instructions for efficiently accessing unaligned vectors
WO2008103885A2 (en) Parallel architecture for matrix transposition
TW200404205A (en) An address generation unit for a processor
US8024549B2 (en) Two-dimensional processor array of processing elements
TW201802669A (zh) 用於執行重新排列操作的設備及方法
JP3961461B2 (ja) ベクトル処理装置、および、ベクトル処理方法
JP2008090455A (ja) マルチプロセッサ信号処理装置
US20180232207A1 (en) Arithmetic processing apparatus and control method for arithmetic processing apparatus
US8316215B2 (en) Vector processor with plural arithmetic units for processing a vector data string divided into plural register banks accessed by read pointers starting at different positions
JP2008102599A (ja) プロセッサ
JP3771682B2 (ja) ベクトル処理装置
JP2001167084A (ja) ベクトル演算処理装置及びベクトルデータ移送方法
JP7346883B2 (ja) ベクトルプロセッサ装置及び生成方法
JP5369669B2 (ja) Simd型マイクロプロセッサ
JP2009104521A (ja) 並列処理装置
JP5505963B2 (ja) ベクトル処理装置及びベクトル演算処理方法
WO2013137459A1 (ja) データ供給装置及びデータ処理装置
JP2010079361A (ja) プロセッサ、プロセッサのデータ処理方法、情報処理装置
JP2020144449A (ja) ベクトル処理装置
JP2011103025A (ja) データ入出力装置およびそれを用いたデータ処理装置
JP3668643B2 (ja) 情報処理装置
JP2009104494A (ja) ベクトル処理装置
JPH03259340A (ja) データ処理装置
JP2004334306A (ja) 演算処理回路及び演算処理方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050314

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060921

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061102

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070126

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070516

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3961461

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110525

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110525

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120525

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120525

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130525

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20140525

Year of fee payment: 7

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees