JP2005025693A - ベクトル処理装置およびベクトルロード方法 - Google Patents

ベクトル処理装置およびベクトルロード方法 Download PDF

Info

Publication number
JP2005025693A
JP2005025693A JP2003270882A JP2003270882A JP2005025693A JP 2005025693 A JP2005025693 A JP 2005025693A JP 2003270882 A JP2003270882 A JP 2003270882A JP 2003270882 A JP2003270882 A JP 2003270882A JP 2005025693 A JP2005025693 A JP 2005025693A
Authority
JP
Japan
Prior art keywords
vector
instruction
load
register
unit
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
JP2003270882A
Other languages
English (en)
Other versions
JP3726092B2 (ja
Inventor
Hideyuki Sato
秀之 佐藤
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 JP2003270882A priority Critical patent/JP3726092B2/ja
Publication of JP2005025693A publication Critical patent/JP2005025693A/ja
Application granted granted Critical
Publication of JP3726092B2 publication Critical patent/JP3726092B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)
  • Complex Calculations (AREA)

Abstract

【課題】 ベクトル処理装置におけるベクトルロード命令の処理を高速化する。
【解決手段】 メモリアクセス処理部3は、主記憶装置7から読み出されたベクトルロード命令の解読時に主記憶装置7からロードバッファ64へのベクトルデータの読み出しを起動する。ベクトル処理部5のロード命令情報管理部5Cは、仕掛かり中のベクトルロード命令が使用するベクトルレジスタ63が先行するベクトル命令と競合しなくなったことを検出してベクトルロード管理部65に通知する。ベクトルロード管理部65は、主記憶装置7から読み出されたベクトルデータをロードバッファ64に格納し、ベクトルデータの全要素がロードバッファ64に格納され次第、命令発行部58からのベクトルロード命令の発行通知によらず、ベクトルロード管理部65から前記通知があることを条件にロードバッファ64からベクトルレジスタ63へのベクトルデータの転送を開始する。
【選択図】 図1

Description

本発明はベクトル処理装置に関し、特に主記憶装置からベクトルレジスタにベクトルデータをロードするベクトルロード命令の処理方法に関する。
一般にベクトル処理装置は、主記憶装置からロードしたベクトルデータやベクトル演算中の中間結果などを保持する複数のベクトルレジスタと、ベクトルレジスタに保持されたベクトルデータに対する演算を行うベクトル演算器とを備え、大量のデータを高速に演算することができるようになっている。また、主記憶装置のアクセス速度はベクトル演算の速度に比べて遅いため、ベクトルデータのベクトルレジスタへのロードを高速化するために、主記憶装置とベクトルレジスタとの間にベクトルデータを一時的に格納するロードバッファを備え、ベクトルロード命令の解読時に主記憶装置からロードバッファへのベクトルデータの読み出しを開始させ、ロードバッファからベクトルレジスタへの転送は命令発行順、つまりベクトルロード命令の発行ステージで実施する技術が提案されている(例えば特許文献1参照)。
特開平2−101576号公報
しかし、ロードバッファからベクトルレジスタへの転送をベクトルロード命令の発行ステージで起動する構成では、そのベクトルロード命令に先行するベクトル命令がリソースビジー等の理由で発行ステージに留まっている限り、ロードバッファからベクトルレジスタへの転送を起動することができず、ベクトルロード処理の高速化が図れない。また、ロードバッファからベクトルレジスタへの転送をベクトルロード命令の発行ステージで起動する構成では、複数のベクトルロード命令の処理は命令発行順になり、後続のベクトルロード命令を先行するベクトルロード命令よりも早く処理するといった命令の追越し制御は行えない。
そこで本発明の目的は、ロードバッファからベクトルレジスタへの転送を命令発行順でなく、ロードバッファに全要素が揃い且つ転送先のベクトルレジスタがビジー状態でないという条件が成立した順に実行することのできるベクトル処理装置を提供することにある。
本発明のベクトル処理装置は、主記憶装置とベクトルレジスタとの間に前記主記憶装置から読み出されたベクトルデータを一時的に格納するロードバッファを備え、前記主記憶装置から読み出されたベクトルロード命令の解読時に前記主記憶装置から前記ロードバッファへのベクトルデータの読み出しを起動し、前記ベクトルデータの全要素が前記ロードバッファに格納され次第、前記ベクトルロード命令で使用するベクトルレジスタが先行するベクトル命令で使用するベクトルレジスタと競合しないことを条件に、前記ロードバッファから前記ベクトルレジスタへのベクトルデータの転送を開始する。より具体的には、主記憶装置とこれに接続されたプロセッサとを備え、前記プロセッサは、前記主記憶装置から読み出されたベクトル命令がベクトルロード命令であった場合に前記主記憶装置からのベクトルデータの読み出しを起動するメモリアクセス処理部、前記主記憶装置から読み出されたベクトル命令を複数のステージで順次処理するベクトル制御部、複数のベクトルレジスタと1以上のベクトル演算器と複数のロードバッファとを備えるベクトル処理部を含み、前記ベクトル制御部は、仕掛かり中のベクトルロード命令が使用するベクトルレジスタが先行するベクトル命令と競合しなくなったことを検出して前記ベクトル処理部に通知するリソースチェック手段を備え、前記ベクトル処理部は、前記主記憶装置から読み出されたベクトルデータを前記メモリアクセス処理部で割り当てられた前記ロードバッファに格納し、ベクトルデータの全要素が前記ロードバッファに格納され次第、前記ベクトルロード命令で使用するベクトルレジスタが先行するベクトル命令で使用するベクトルレジスタと競合しないことが前記ベクトル制御部から通知されていることを条件に、前記ロードバッファから前記ベクトルレジスタへのベクトルデータの転送を開始するベクトルロード管理部を備えている。
また本発明のベクトルロード方法は、a)主記憶装置から読み出されたベクトルロード命令の解読時に、前記ベクトルロード命令によって前記主記憶装置から読み出すベクトルデータを一時的に格納するロードバッファを割り当てて、前記主記憶装置から前記ロードバッファへのベクトルデータの読み出しを起動する段階、b)前記ベクトルデータの全要素が前記ロードバッファに格納されたという第1の条件を検出する段階、c)前記ベクトルロード命令で使用するベクトルレジスタが先行するベクトル命令で使用するベクトルレジスタと競合しないという第2の条件を検出する段階、d)前記第1および第2の条件が成立次第、前記ロードバッファから前記ベクトルレジスタへのベクトルデータの転送を開始する段階、を含んで構成される。
本発明によれば、ロードバッファからベクトルレジスタへの転送を命令発行順ではなく、ロードバッファに全要素が揃い且つ転送先のベクトルレジスタがビジー状態でないという条件が成立した順に実行することができる。このため、ベクトルロード命令に先行するベクトル命令がリソースビジー等の理由で発行ステージに留まっていても、転送条件が成立次第、ロードバッファからベクトルレジスタへの転送を起動することができるため、ベクトルロード処理の高速化が可能となる。また、複数のベクトルロード命令の処理を命令発行順でなく、転送条件の成立順に行うことができ、後続のベクトルロード命令を先行するベクトルロード命令よりも早く処理するといった命令の追越し制御が可能となる。
図1を参照すると、本発明の実施の形態にかかるベクトル処理装置は、プロセッサ1と主記憶装置7とを含んで構成される。プロセッサ1と主記憶装置7とは、主記憶装置7に記憶された命令をプロセッサ1から読み出すための信号線101と、主記憶装置7に記憶されたベクトルデータ等をプロセッサ1から読み出し、逆にプロセッサ1で生成したベクトルデータ等を主記憶装置7に書き込むための信号線102によって相互に接続されている。信号線102は多重化されており、複数のベクトルロード命令にかかる主記憶装置7からのベクトルデータの読み出し等を並行して行うことができるようになっている。
プロセッサ1は、命令制御部2と、メモリアクセス処理部3と、プロセッサネットワーク部4と、ベクトル制御部5と、ベクトル処理部6とを含んで構成される。
命令制御部2は、主記憶装置7と信号線101で接続され、メモリアクセス処理部3と信号線103で接続され、ベクトル制御部5と信号線104で接続され、信号線101を通じて主記憶装置7から読み出した命令を解読する命令解読部21と、解読された命令がスカラ命令である場合にそのスカラ命令にかかる処理を実行するスカラ処理部22を有している。また、命令解読部21は、解読した命令がベクトル命令である場合にはそのベクトル命令を信号線104を通じてベクトル制御部5に出力し、更にそのベクトル命令がベクトルロード命令である場合は信号線103を通じてメモリアクセス処理部3に対して当該ベクトルロード命令を出力する。ベクトルロード命令には、ロードするベクトルデータの主記憶装置7のアドレスを特定する情報(例えば開始アドレスとベクトルデータの間隔)、ベクトルデータの要素数、ベクトルデータをロードするベクトルレジスタの番号が含まれている。
メモリアクセス処理部3は、主記憶装置7へのアクセスを制御する部分で、命令制御部2と信号線103で接続され、プロセッサネットワーク部4と信号線105で接続され、ベクトル制御部5と信号線106で接続され、ベクトル処理部6と信号線107で接続されている。メモリアクセス処理部3は、信号線103を通じて命令制御部2から送られてくるメモリアクセスにかかる命令を解読すると共にプロセッサネットワーク部4の状態を管理し、信号線105を通じてメモリアクセスリクエストを制御する信号をプロセッサネットワーク部4に送り、主記憶装置7との信号線102とベクトル処理部6との信号線108との間のデータの行き来を制御する。特にベクトルロード命令に関し、メモリアクセス処理部3は、ベクトル処理部6内に設けられている複数のロードバッファの空き管理を行っており、命令制御部2から信号線103を通じてベクトルロード命令を受信すると、このベクトルロード命令用に空き状態の1つのロードバッファを割り当ててそれを使用中状態として管理し、割り当てたロードバッファを一意に識別するバッファ番号を付随してメモリアクセスリクエストを信号線105を通じてプロセッサネットワーク部4に発行し、同時に、どのベクトルロード命令に対してどのバッファ番号のロードバッファを割り当てたかを信号線106を通じてベクトル制御部5に通知する。また、信号線107を通じてベクトル処理部6からバッファ番号を指定したバッファ解放通知を受けると、メモリアクセス処理部3はそのバッファ番号のロードバッファを再び空き状態として管理する。
プロセッサネットワーク部4は、主記憶装置7と信号線102で接続され、メモリアクセス処理部3と信号線105で接続され、ベクトル処理部6と信号線108で接続され、メモリアクセス処理部3から与えられるメモリアクセスリクエストに応じて主記憶装置7とベクトル処理部6との間でベクトルデータをやりとりする。ベクトルロード命令にかかるメモリアクセスリクエストに関し、プロセッサネットワーク部4は、主記憶装置7から読み出したベクトルデータを構成する各要素に、メモリアクセスリクエストに付随するバッファ番号を付随させ、信号線108を通じてベクトル処理部6に送出する。信号線108は多重化されており、複数のメモリアクセスリクエストにかかるベクトルデータを並行してベクトル処理部6に供給できるようになっている。
ベクトル処理部6は、メモリアクセス処理部3と信号線107で接続され、プロセッサネットワーク部4と信号線108で接続され、ベクトル制御部5と信号線109、110で接続され、ベクトルデータに対してベクトル演算を実行する機能を持つ。ベクトル処理部6は、少なくとも1つのベクトルパイプライン演算器61を備える。ベクトルパイプライン演算器61は、ベクトルデータを格納する複数のベクトルレジスタ62と、ベクトルレジスタ62に格納されたベクトルデータに対してベクトル演算を行う1つ以上のベクトル演算器63と、主記憶装置7から読み出されたベクトルデータを一時的に格納する複数のロードバッファ64と、ベクトルロード管理部65と、ベクトル演算器63およびロードバッファ64から出力されるベクトルデータをベクトルレジスタ62に振り分けるクロスバスイッチ回路66とを含んで構成される。なお、ベクトル演算されたベクトルデータを主記憶装置7にストアするストアバッファなど、ストアに関連する構成は本発明と直接関係しないため図示を省略している。
ベクトルロード管理部65は、メモリアクセス処理部3と信号線107で接続され、プロセッサネットワーク部4と信号線108で接続され、ベクトル制御部5と信号線109〜111で接続され、信号線108を通じて送られてきたベクトルデータの要素を、それに付随するバッファ番号のロードバッファ64に一旦格納し、その後、ロードバッファ64に格納されたベクトルデータをベクトルレジスタ62に転送する。図2にベクトルロード管理部65の構成例を示す。
図2を参照すると、ベクトルロード管理部65の一例は、レジスタ群651と、レジスタ設定部652と、ライト部653と、リード部654とを含んで構成される。
レジスタ群651は、ロードバッファ64に1対1に対応するレジスタ651−0〜651−nの集合で構成され、各レジスタ651−i(i=0〜n)は、ロードバッファ番号フィールド6511、ベクトルレジスタ(VAR)番号フィールド6512、リソースチェックフラグフィールド6513、ライト要素数フィールド6514およびリード要素数フィールド6515を有する。ロードバッファ番号フィールド6511には、ロードバッファ64のバッファ番号が固定的に設定されている。ベクトルレジスタ番号フィールド6512には、ベクトルロード命令でロードするベクトルデータを格納するベクトルレジスタ62の番号が設定される。リソースチェックフラグフィールド6513には、ベクトルロード命令で使用するベクトルレジスタ62が先行するベクトル命令と競合するか否かを示すリソースチェックフラグが設定される。ライト要素数フィールド6514およびリード要素数フィールド6515には、ベクトルロード命令でロードするベクトルデータの要素数が初期値として設定される。ライト要素数フィールド6514に設定されたライト要素数は、ロードバッファ64へのベクトルデータ要素の書き込みに応じて減算され、全要素のロードバッファ64への書き込みが完了すると0となる。リード要素数フィールド6515に設定されたリード要素数は、ロードバッファ64からベクトルレジスタ62への読み出しに応じて減算され、全要素のロードバッファ64からの読み出しが完了すると0となる。
レジスタ設定部652は、ベクトル制御部5と信号線109で接続され、レジスタ群651の初期設定等を行う。レジスタ設定部652は、信号線109を通じてベクトル制御部5から、ロードバッファ番号、ベクトルレジスタ番号および要素数を含むベクトルロード命令情報が伝達されると、そのロードバッファ番号をロードバッファ番号フィールド6511に持つレジスタ651−iのベクトルレジスタ番号フィールド6512にベクトルロード命令情報中のベクトルレジスタ番号を設定し、ライト要素数フィールド6514およびリード要素数フィールド6515にベクトルロード命令情報中の要素数を設定し、リソースチェックフラグフィールド6513には、リソースの競合有りを示すフラグ値1を設定する。また、レジスタ設定部652は、信号線109を通じてベクトル制御部5から、ロードバッファ番号を指定したリソースチェックOK信号が伝達されると、そのロードバッファ番号をロードバッファ番号フィールド6511に持つレジスタ651−iのリソースチェックフラグフィールド6513のフラグをリソース競合無しを示す値0に書き換える。
ライト部653は、プロセッサネットワーク部4と信号線108で接続され、ベクトルデータのロードバッファ64への書き込みを行う。ライト部653は、信号線108を通じてプロセッサネットワーク部4からベクトルデータの要素を受信すると、受信した要素に付随するロードバッファ番号を持つロードバッファ64にその要素を書き込み、そのロードバッファ番号をロードバッファ番号フィールド6511に持つレジスタ651−iのライト要素数フィールド6514の値を書き込んだ要素数分だけ減算する。
リード部654は、ベクトル制御部5と信号線109、110で接続され、ロードバッファ64からベクトルレジスタ62へのベクトルデータの転送を行う。リード部654は、レジスタ設定部652によってライト要素数フィールド6514が全要素数に初期設定されたレジスタ651−iについて、そのレジスタのロードバッファ番号フィールド6511に設定されたバッファ番号を持つロードバッファ64のデータを、そのレジスタのベクトルレジスタ番号フィールド6512に設定された番号のベクトルレジスタ62に転送する条件が満足されたかどうかを監視する。(1)ベクトルデータの全要素がロードバッファ64に格納済みである(ライト要素数フィールド6514の値が0である)、(2)先行するベクトル命令とベクトルレジスタが競合しない(リソースチェックフラグフィールド6513のフラグ値が0である)、の2つの要件が満たされた場合、転送可能と判断する。
リード部654は、或るレジスタ651−iについて転送可能と判断した場合、信号線110を通じてベクトル制御部5に対して、そのレジスタ651−iのロードバッファ番号フィールド6511に設定されたバッファ番号およびベクトルレジスタ番号フィールド6512に設定されたベクトルレジスタ番号を指定した転送開始通知を送出した後、ロードバッファ番号フィールド6511に設定されたバッファ番号を持つロードバッファ64に格納されているデータを順次に読み出して、ベクトルレジスタ番号フィールド6512に設定された番号のベクトルレジスタ62にクロスバスイッチ回路66を通じて書き込んでいく。このとき、ベクトルデータの1要素をロードバッファ64から読み出す毎に、リード要素数フィールド6515の値を1だけ減算する。リード要素数フィールド6515の値が0になると、転送完了となり、リード部654は、そのレジスタ651−iのロードバッファ番号フィールド6511に設定されたバッファ番号およびベクトルレジスタ番号フィールド6512に設定されたベクトルレジスタ番号を指定した転送終了通知を信号線110を通じてベクトル制御部5に送出すると同時に、そのレジスタ651−iのロードバッファ番号フィールド6511に設定されたバッファ番号を指定したバッファ解放通知を信号線107を通じてメモリアクセス処理部3に送出し、そのレジスタ651−iのフィールド6512〜6515を例えばNULLに初期化する。
再び図1を参照すると、ベクトル制御部5は、命令制御部2と信号線104で接続され、メモリアクセス処理部3と信号線106で接続され、ベクトル処理部6と信号線109〜111で接続され、ベクトル命令の発行制御を行う。このベクトル制御部5は、ベクトル命令の実行サイクルを、命令の解読、オペランドの計算と取り出し、命令の発行などと言った複数のステージに分割し、各ステージの処理を独立したハードウェアが行うことにより、複数のベクトル命令を並列に処理する。このため、ベクトル制御部5は、信号線104を通じて命令制御部2から入力されたベクトル命令を解読する命令デコード部51と、最終ステージである命令発行ステージ用のレジスタ52との間に、中間の各ステージに存在する命令のデコード情報等を保持する幾つかの命令レジスタ53、54、55と中間のステージにおける処理を実行するデコーダ56、57を備えている。なお、ステージの段数はプロセッサのアーキテクチャによって相違する。命令発行部58は、命令発行ステージのレジスタ52に格納された命令が発行可能かどうかをチェックし、発行可能でなければ発行可能になるまで待ち、発行可能であれば、信号線111を通じてベクトル処理部6に命令発行を通知し、同時に処理に必要な付随情報を通知する。レジスタ52に格納された命令が発行可能かどうかのチェックは、ベクトル処理部6のベクトルパイプライン演算器61におけるベクトルレジスタ62、ベクトル演算器63等の各リソース毎にそのリソースがビジー状態かどうかを保持するビジーフラグ群59のビジーフラグのうち、命令発行ステージのレジスタ52に格納された命令が使用するリソースのビジーフラグがビジー状態でないかどうかに基づいて行う。
本実施の形態においては、ベクトルロード命令については、主記憶装置7から読み出されたベクトルデータの全要素がロードバッファ64に格納され、且つ、そのベクトルロード命令が使用するリソースが先行するベクトル命令で使用するリソースと競合しなければ、そのベクトルロード命令が命令発行ステージのレジスタ52に到着するのを待たずに速やかに、ロードバッファ64からベクトルレジスタ62への転送を開始させる。ベクトル制御部5のライト・ロードカウンタ部5A、リードカウンタ部5Bおよびロード命令情報管理部5Cは、そのような制御のために設けられている。
ライト・ロードカウンタ部5Aは、ベクトル制御部5内で仕掛かり中のベクトル命令でライトまたはロードのために使用されるベクトルレジスタ62とその使用命令数を管理する。構成例を図3のライト・ロードカウンタ部5Aのブロックに示す。この例のライト・ロードカウンタ部5Aは、ベクトル処理部6に存在するベクトルレジスタ62と1対1に対応するカウント部5A−0〜5A−mから構成されるカウンタ5ACを有する。カウンタ5ACの全てのカウント部5A−0〜5A−mの初期値は0である。命令デコード部51で解読された命令がベクトルレジスタ62へライトする命令またはベクトルレジスタ62へデータをロードする命令であった場合、カウンタ5ACは、デコード部51から出力される当該命令が使用するベクトルレジスタ62の情報に基づいて、そのベクトルレジスタ62に対応するカウント部5A−j(jは0〜m)の値を+1する。また、命令発行部58は、命令発行ステージのレジスタ52の命令の処理が終了すると、その命令がベクトルレジスタ62へライトする命令またはベクトルレジスタ62へデータをロードする命令であった場合、その命令で使用したベクトルレジスタ62のビジーフラグをリセットするタイミングで、ベクトルレジスタ62の番号をライト・ロードカウンタ部5Aに通知するようになっており、カウンタ5ACは、通知されたベクトルレジスタ62に対応するカウント部5A−jの値を−1する。
リードカウンタ部5Bは、ベクトル制御部5内で仕掛かり中のベクトル命令でリードされるベクトルレジスタ62とその使用命令数を管理する。構成例を図3のリードカウンタ部5Bのブロックに示す。この例のリードカウンタ部5Bは、ベクトル処理部6に存在するベクトルレジスタ62と1対1に対応するカウント部5B−0〜5B−mから構成されるカウンタ5BCを有する。カウンタ5BCの全てのカウント部5B−0〜5B−mの初期値は0である。命令デコード部51で解読された命令がベクトルレジスタ62をリードする命令であった場合、カウンタ5BCは、デコード部51から出力される当該命令が使用するベクトルレジスタ62の情報に基づいて、そのベクトルレジスタ62に対応するカウント部5B−jの値を+1する。また、命令発行部58は、命令発行ステージのレジスタ52の命令の処理が終了すると、その命令がベクトルレジスタ62をリードする命令であった場合、その命令で使用したベクトルレジスタ62のビジーフラグをリセットするタイミングで、ベクトルレジスタ62の番号をリードカウンタ部5Bに通知するようになっており、カウンタ5BCは、通知されたベクトルレジスタ62に対応するカウント部5B−jの値を−1する。
ロード命令情報管理部5Cは、ベクトル制御部5内で仕掛かり中のベクトルロード命令を管理し、ベクトル処理部6のベクトルロード管理部65に対して必要な情報を通知する部分である。構成例を図3のロード命令情報管理部5Cのブロックに示す。この例のロード命令情報管理部5Cは、レジスタ群5C1、リソース情報登録部5C2およびリソース情報チェック部5C3を含んで構成される。
レジスタ群5C1は、ベクトル処理部6に存在するロードバッファ64に1対1に対応するレジスタ5C1−0〜5C1−nの集合で構成され、各レジスタ5C1−i(i=0〜n)は、ロードバッファ番号フィールド5C11、ベクトルレジスタ番号フィールド5C12、要素数フィールド5C13、ライト・ロードカウンタ値フィールド5C14およびリードカウンタ値フィールド5C15を有する。ロードバッファ番号フィールド5C11には、ロードバッファ64のバッファ番号が固定的に設定されている。ベクトルレジスタ番号フィールド5C12には、ベクトルロード命令でロードするベクトルデータを格納するベクトルレジスタ62の番号が設定される。要素数フィールド5C13には、ベクトルロード命令でロードされるベクトルデータの要素数が設定される。ライト・ロードカウンタ値フィールド5C14には、ベクトルレジスタ番号フィールド5C12に設定された番号のベクトルレジスタ62をライトおよびロードに使用するベクトル命令の数が設定される。リードカウンタ値フィールド5C15には、ベクトルレジスタ番号フィールド5C12に設定された番号のベクトルレジスタ62をリードに使用するベクトル命令の数が設定される。
リソース情報登録部5C2は、命令レジスタ53の出力と、ライト・ロードカウンタ部5Aの出力と、リードカウンタ部5Bの出力とを入力とする。命令レジスタ53には、命令デコード部51でデコードされたベクトル命令がベクトルロード命令であった場合に、命令デコード部51のデコード情報に加えて信号線106を通じてメモリアクセス処理部3から通知された当該ベクトルロード命令に割り当てられたロードバッファ64の番号が保持されている。リソース情報登録部5C2は、命令レジスタ53からロードバッファ番号を入力すると、そのロードバッファ番号をロードバッファ番号フィールド5C11に持つレジスタ5C1−iのベクトルレジスタ番号フィールド5C12および要素数フィールド5C13に、命令レジスタ53から出力されるベクトルレジスタ番号および要素数を設定する。また、ライト・ロードカウンタ部5Aのカウンタ5ACのカウント部5A−0〜5A−mのうち、ベクトルレジスタ番号フィールド5C12に設定したベクトルレジスタ番号に対応するカウント部の内容をライト・ロードカウンタ値フィールド5C14に設定し、リードカウンタ部5Bのカウンタ5BCのカウント部5B−0〜5B−mのうち、ベクトルレジスタ番号フィールド5C12に設定したベクトルレジスタ番号に対応するカウント部の内容をリードカウンタ値フィールド5C15に設定する。そして、ロードバッファ番号フィールド5C11のロードバッファ番号、ベクトルレジスタ番号フィールド5C12に設定したベクトルレジスタ番号、要素数フィールド5C13に設定した要素数を含むベクトルロード命令情報を、信号線109を通じてベクトルロード管理部65に出力する。
リソース情報チェック部5C3は、命令発行部58からの通知に応じてレジスタ群5C1のライト・ロードカウンタ値フィールド5C14およびリードカウンタ値フィールド5C15を更新し、先行するベクトル命令とベクトルレジスタの競合が生じなくなったタイミングで、信号線109を通じてベクトルロード管理部65に対して、ロードバッファ番号を指定したリソースチェックOK信号を送信する。具体的には、命令発行部58は、命令発行ステージのレジスタ52の命令の処理を終了すると、その命令がベクトルレジスタ62へライトする命令またはベクトルレジスタ62へデータをロードする命令であった場合、その命令で使用したベクトルレジスタ62のビジーフラグをリセットするタイミングで、そのベクトルレジスタ62の番号をロード命令情報管理部5Cに通知するようになっており、リソース情報チェック部5C3は、通知されたベクトルレジスタ番号をベクトルレジスタ番号フィールド5C12に持つレジスタのライト・ロードカウンタ値フィールド5C14の値を1だけ減算する。また、命令発行部58は、命令発行ステージのレジスタ52の命令の処理を終了すると、その命令がベクトルレジスタ62をリードする命令であった場合、その命令で使用したベクトルレジスタ62のビジーフラグをリセットするタイミングで、そのベクトルレジスタ62の番号をロード命令情報管理部5Cに通知するようになっており、リソース情報チェック部5C3は、通知されたベクトルレジスタ番号をベクトルレジスタ番号フィールド5C12に持つレジスタのリードカウンタ値フィールド5C15の値を1だけ減算する。そして、リソース情報チェック部5C3は、ライト・ロードカウンタ値フィールド5C14の値が1で、且つ、リードカウンタ値フィールド5C15の値が0となった場合に、そのレジスタのロードバッファ番号フィールド5C11に設定されているロードバッファ番号を指定したリソースチェックOK信号を信号線109を通じてベクトルロード管理部65に送信する。
再び図1を参照すると、ロードバッファ番号管理部5Dは、信号線110を通じてベクトルロード管理部65から転送開始通知を受けると、その通知に含まれるロードバッファ64の番号を保持する。このロードバッファ番号管理部5Dは、命令発行ステージの命令レジスタ52に格納されたベクトルロード命令を処理する際に命令発行部58によって参照される。なお、ロードバッファ番号管理部5Dに記憶されたロードバッファ番号は、そのロードバッファ番号のロードバッファを使うベクトルロード命令が命令発行ステージの命令レジスタ52に格納されたときに、命令発行部58によって削除される。
ビジーフラグ群59は、前述したように、ベクトル演算器63やベクトルレジスタ62等の各リソース毎にそのリソースがビジー中かどうかを保持しており、基本的には命令発行部58が命令発行ステージの命令レジスタ52に格納された命令を発行する際、その命令で使用するリソースをビジー状態に更新し、その命令の実行が終了した時点でビジー状態を解除する。但し、本実施の形態では、ベクトルロード管理部65側の判断でロードバッファ64の内容をベクトルレジスタ62に転送する動作を開始するため、信号線110を通じてベクトルロード管理部65から送られてくる転送開始通知および転送終了通知によってもビジーフラグ群59が更新される。具体的には、信号線110を通じてベクトルロード管理部65から転送開始通知を受けると、その通知に含まれるベクトルレジスタ62の番号で特定されるベクトルレジスタをビジー状態に更新し、信号線110を通じてベクトルロード管理部65から転送終了通知を受けると、その通知に含まれるベクトルレジスタ62の番号で特定されるベクトルレジスタのビジー状態を解除する。
次に本実施の形態にかかるベクトル処理装置の動作を、ベクトルロード命令の処理を中心に説明する。
命令制御部2の命令解読部21は、主記憶装置7から信号線101を通じて読み出した命令がベクトルロード命令であった場合、そのベクトルロード命令を信号線103を通じてメモリアクセス処理部3に送出すると同時に、信号線104を通じてベクトル制御部5に送出する。以下の説明の便宜上、上記ベクトルロード命令は、主記憶装置7の開始アドレスX、アクセスするベクトルデータの間隔D、要素数100、ベクトルデータをロードするベクトルレジスタの番号1をパラメータとして持つベクトルロード命令VLD1とする。
メモリアクセス処理部3は、複数存在するロードバッファ64の内から空き状態の1つのロードバッファを確保し、この確保したロードバッファの番号を指定して、命令制御部2から伝達されたベクトルロード命令VLD1にかかるメモリアクセスリクエストを信号線105を通じてプロセッサネットワーク部4に発行し、同時に前記確保したロードバッファの番号を信号線106を通じてベクトル制御部5へ通知する。今、確保されたロードバッファの番号は0であったものとする。
ベクトル制御部5の命令デコード部51は、ベクトルロード命令VLD1を解読し、ベクトルレジスタ番号1および要素数100などの解読情報と信号線106を通じてメモリアクセス処理部3から通知されたロードバッファ番号0の情報とを命令レジスタ53に格納する。また、ベクトルロード命令であるため、命令デコード部51は、ライト・ロードカウンタ部5Aのカウンタ5ACにおけるベクトルレジスタ番号1に対応するカウント部5A−1の値を+1する。次に、命令レジスタ53の内容は命令レジスタ54に格納されると同時にロード命令情報管理部5Cに出力される。ロード命令情報管理部5Cのリソース情報登録部5C2は、命令レジスタ53からロードバッファ番号0が出力されたため、そのロードバッファ番号0をロードバッファ番号フィールド5C11に持つレジスタ5C1−0のベクトルレジスタ番号フィールド5C12および要素数フィールド5C13に、命令レジスタ53から出力されたベクトルレジスタ番号1および要素数100を設定し、ライト・ロード命令カウンタ部5Aのカウンタ5ACにおけるベクトルレジスタ番号1に対応するカウント部5A−1の値をライト・ロードカウンタ値フィールド5C14に設定し、リード命令カウンタ部5Bのカウンタ5BCにおけるベクトルレジスタ番号1に対応するカウント部5B−1の値をリードカウンタ値フィールド5C15に設定する。そして、リソース情報登録部5C2は、ロードバッファ番号0、ベクトルレジスタ番号1、要素数100の情報を含むベクトルロード命令情報を信号線109を通じてベクトルロード管理部65に通知する。ベクトルロード管理部65のレジスタ設定部652は、ロードバッファ番号0がロードバッファ番号フィールド6511に設定されているレジスタ651−0におけるベクトルレジスタ番号フィールド6512にベクトルレジスタ番号1を設定し、ライト要素数フィールド6514およびリード要素数フィールド6515に要素数100を設定し、リソースチェックフラグフィールド6513のフラグは値1とする。
ここで、ロード命令情報管理部5Cのレジスタ5C1−0のライト・ロードカウンタ値フィールド5C14の値とリードカウンタ値フィールド5C15の値とがどのような値になるかは、ベクトルロード命令VLD1に先行する仕掛かり中のベクトル命令の種類や数によって決定され、大別すると以下のようなケースに分けられる。
(1)ケース1:ベクトルロード命令VLD1が使用するベクトルレジスタと先行命令が使用するベクトルレジスタとが競合しない場合。このときは、ライト・ロードカウンタ値フィールド5C14の値は1、リードカウンタ値フィールド5C15の値は0になる。
(2)ケース2:ベクトルロード命令VLD1が使用するベクトルレジスタと先行命令が使用するベクトルレジスタとが競合する場合。このときは、ベクトルロード命令VLD1が使用するベクトルレジスタをライトに使う仕掛かり中のベクトル命令の数をaとすると、ライト・ロードカウンタ値フィールド5C14の値はa+1であり、ベクトルロード命令VLD1が使用するベクトルレジスタをリードに使う仕掛かり中のベクトル命令の数をbとすると、リードカウンタ値フィールド5C15の値はbである。なお、メモリアクセス処理部3は同じロードバッファ64を複数のベクトルロード命令に同時に割り当てることがないので、ベクトルロード命令VLD1に先行するベクトルロード命令が仕掛かり中であっても、ライト・ロードカウンタ値フィールド5C14の値に影響はない。
ケース1の場合、ロード命令情報管理部5Cのリソース情報チェック部5C3は、リソース情報登録部5C2が登録したレジスタ5C1−0のライト・ロードカウンタ値フィールド5C14の値が1で、且つ、リードカウンタ値フィールド5C15の値が0なので、ベクトルロード命令VLD1のリソースは仕掛かり中の他のベクトル命令と競合しないと判定し、ロードバッファ番号0を指定したリソースチェックOK信号を信号線109を通じてベクトルロード管理部65に通知する。他方、ケース2の場合、リソース情報チェック部5C3は、リソース情報登録部5C2が登録したレジスタ5C1−0のライト・ロードカウンタ値フィールド5C14の値が1になり、且つ、リードカウンタ値フィールド5C15の値が0になるのを監視する。ベクトル制御部5においてベクトルロード命令VLD1に先行する仕掛かり中のベクトル命令の実行が終了する毎に、命令発行部58からの通知に応じてリソース情報チェック部5C3はライト・ロードカウンタ値フィールド5C14の値およびリードカウンタ値フィールド5C15の値を減算する。そして、レジスタ5C1−0のライト・ロードカウンタ値フィールド5C14の値が1になり、且つ、リードカウンタ値フィールド5C15の値が0になると、リソース情報チェック部5C3は、ベクトルロード命令VLD1のリソースは仕掛かり中の他のベクトル命令と競合しないと判定し、ロードバッファ番号0を指定したリソースチェックOK信号を信号線109を通じてベクトルロード管理部65に通知する。
ベクトルロード管理部65のレジスタ設定部652は、通知されたロードバッファ番号0をロードバッファ番号フィールド6511に持つレジスタ651−0のリソースチェックフラグフィールド6513のフラグ値を1から0に変更する。
プロセッサネットワーク部4は、メモリアクセス処理部3から発行されたメモリアクセスリクエストに応じて、主記憶装置7の開始アドレスXの要素、開始アドレス+距離Dのアドレスの要素、…、最後の要素を順次読み出し、ロードバッファ番号0を添えて信号線108経由でベクトルロード管理部65に送出する。ベクトルロード管理部65のライト部653は、受信した各要素をロードバッファ番号0のロードバッファ64に格納し、ロードバッファ番号0がロードバッファ番号フィールド6511に設定されているレジスタ651−0のライト要素数フィールド6514の値を順次減算していく。100要素全てのデータがロードバッファ番号0のロードバッファ64に格納された時点で、ライト要素数フィールド6514の値は0となる。
リード部654は、レジスタ651−0のライト要素数フィールド6514の値が0になったことで全要素がロードバッファ64に格納されたことを認識し、リソースチェックフラグフィールド6513のフラグの値が0か1かを判定する。1であれば0になるのを待ち、0であれば或いは0になれば、クロスバスイッチ回路66との間のパスが空いていれば直ちに、空いていなければ空き次第、ロードバッファ番号0およびベクトルレジスタ番号1を指定した転送開始通知を信号線110を通じてベクトル制御部5に送出する。ベクトル制御部5のロードバッファ番号管理部5Dは、ロードバッファ番号0を保持し、ビジーフラグ群59は、ベクトルレジスタ番号1のベクトルレジスタをビジー状態として管理する。リード部654は、転送開始通知を行うと同時にロードバッファ番号0のロードバッファ64の内容をクロスバスイッチ回路66を通じてベクトルレジスタ番号1のベクトルレジスタ62に転送する処理を開始する。
リード部654は、1要素を転送する毎に、レジスタ651−0のリード要素数フィールド6515の値を1だけ減算していき、リード要素数フィールド6515の値が0になった時点で転送を終了し、ロードバッファ番号0とベクトルレジスタ番号1を指定した転送終了通知を信号線110を通じてベクトル制御部5に送出すると同時に、ロードバッファ番号0を指定したバッファ解放通知を信号線107を通じてメモリアクセス処理部3に送出する。ベクトル制御部5のビジーフラグ群59は、ベクトルレジスタ番号1のベクトルレジスタのビジー状態を解除する。また、メモリアクセス処理部3は、通知されたロードバッファ番号0のロードバッファを空き状態として管理する。
ベクトル制御部5において、ベクトルロード命令VLD1は、命令レジスタ54に格納された後、以降の各ステージで処理され、最終的に命令発行ステージの命令レジスタ52に格納される。命令発行部58は、命令レジスタ52に格納されたベクトルロード命令VLD1が使用するロードバッファの番号0(これは命令レジスタ53から順次持ち回って命令レジスタ52に保持されている)とロードバッファ番号管理部5Dに記憶されているロードバッファ番号とを比較し、ロードバッファ番号管理部5Dにロードバッファ番号0が格納されていなければ格納されるのを待ち合わせ、既に格納されているか、待ち合わせ中に格納されたら、ベクトルロード命令VLD1の命令発行を行わずにその命令の処理を終了し、ロードバッファ番号0をロードバッファ番号管理部5Dから削除する。このように命令発行部58がベクトルロード命令VLD1の命令発行を行わない理由は、ベクトルロード命令VLD1が使用するリソースが先行命令のリソースと競合しなくなり、且つ、ベクトルデータの全要素がロードバッファに格納されると、ベクトルロード管理部65によってベクトルレジスタへの転送が起動されるため、ベクトルロード命令VLD1の命令発行処理をあえて命令発行部58が行う必要がないからである。
このように本実施の形態によれば、ベクトルロード命令VLD1が命令発行ステージの命令レジスタ52に到着するのを待たずに、バッファ番号0のロードバッファ64からレジスタ番号1のベクトルレジスタ62への転送を開始できるため、レジスタ番号1のベクトルレジスタ62を使用する後続のベクトル命令の処理を早めることができると共に、バッファ番号0のロードバッファ64の解放を早め、処理効率を高めることができる。
以上の説明では、1つのベクトルロード命令VLD1に着目したが、複数のベクトルロード命令が連続する場合でも同様の動作が行われる。この場合、本実施の形態では、ベクトルロード命令が命令発行ステージに到着した順でなく、ロードバッファに全要素が揃い且つリソースの競合がなくなった順にベクトルレジスタへの転送が起動されるため、先行するベクトルロード命令よりも先に後続のベクトルロード命令のベクトルデータをベクトルレジスタへ転送することも可能となる。例えば、先行するベクトルロード命令VLD1が、自命令で使用するベクトルレジスタを使用する仕掛かり中の先行ベクトル命令の終了を待ち合わせているか、或いは要素数が多いためにロードバッファに全要素が格納されるのを待ち合わせている間に、後続のベクトルロード命令VLD2の全要素がロードバッファに格納され且つベクトルロード命令VLD2が使用するベクトルレジスタが先行する仕掛かり中のベクトル命令のリソースと競合しない状況に至ると、ベクトルロード管理部65のリード部654は、ベクトルロード命令VLD1より先にベクトルロード命令VLD2について、ロードバッファからベクトルレジスタへの転送を開始する。
本発明の実施の形態のブロック図である。 ベクトルロード管理部の構成例を示すブロック図である。 ライト・ロードカウンタ部、リードカウンタ部およびロード命令情報管理部の構成例を示すブロック図である。
符号の説明
1…プロセッサ
2…命令制御部
3…メモリアクセス処理部
4…プロセッサネットワーク部
5…ベクトル制御部
6…ベクトル処理部
7…主記憶装置

Claims (3)

  1. 主記憶装置とベクトルレジスタとの間に前記主記憶装置から読み出されたベクトルデータを一時的に格納するロードバッファを備え、前記主記憶装置から読み出されたベクトルロード命令の解読時に前記主記憶装置から前記ロードバッファへのベクトルデータの読み出しを起動し、前記ベクトルデータの全要素が前記ロードバッファに格納され次第、前記ベクトルロード命令で使用するベクトルレジスタが先行するベクトル命令で使用するベクトルレジスタと競合しないことを条件に、前記ロードバッファから前記ベクトルレジスタへのベクトルデータの転送を開始するベクトル処理装置。
  2. 主記憶装置とこれに接続されたプロセッサとを備え、前記プロセッサは、前記主記憶装置から読み出されたベクトル命令がベクトルロード命令であった場合に前記主記憶装置からのベクトルデータの読み出しを起動するメモリアクセス処理部、前記主記憶装置から読み出されたベクトル命令を複数のステージで順次処理するベクトル制御部、複数のベクトルレジスタと1以上のベクトル演算器と複数のロードバッファとを備えるベクトル処理部を含み、前記ベクトル制御部は、仕掛かり中のベクトルロード命令が使用するベクトルレジスタが先行するベクトル命令と競合しなくなったことを検出して前記ベクトル処理部に通知するリソースチェック手段を備え、前記ベクトル処理部は、前記主記憶装置から読み出されたベクトルデータを前記メモリアクセス処理部で割り当てられた前記ロードバッファに格納し、ベクトルデータの全要素が前記ロードバッファに格納され次第、前記ベクトルロード命令で使用するベクトルレジスタが先行するベクトル命令で使用するベクトルレジスタと競合しないことが前記ベクトル制御部から通知されていることを条件に、前記ロードバッファから前記ベクトルレジスタへのベクトルデータの転送を開始するベクトルロード管理部を備えることを特徴とするベクトル処理装置。
  3. a)主記憶装置から読み出されたベクトルロード命令の解読時に、前記ベクトルロード命令によって前記主記憶装置から読み出すベクトルデータを一時的に格納するロードバッファを割り当てて、前記主記憶装置から前記ロードバッファへのベクトルデータの読み出しを起動する段階、b)前記ベクトルデータの全要素が前記ロードバッファに格納されたという第1の条件を検出する段階、c)前記ベクトルロード命令で使用するベクトルレジスタが先行するベクトル命令で使用するベクトルレジスタと競合しないという第2の条件を検出する段階、d)前記第1および第2の条件が成立次第、前記ロードバッファから前記ベクトルレジスタへのベクトルデータの転送を開始する段階、を含むことを特徴とするベクトルロード方法。
JP2003270882A 2003-07-04 2003-07-04 ベクトル処理装置およびベクトルロード方法 Expired - Fee Related JP3726092B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003270882A JP3726092B2 (ja) 2003-07-04 2003-07-04 ベクトル処理装置およびベクトルロード方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003270882A JP3726092B2 (ja) 2003-07-04 2003-07-04 ベクトル処理装置およびベクトルロード方法

Publications (2)

Publication Number Publication Date
JP2005025693A true JP2005025693A (ja) 2005-01-27
JP3726092B2 JP3726092B2 (ja) 2005-12-14

Family

ID=34190714

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003270882A Expired - Fee Related JP3726092B2 (ja) 2003-07-04 2003-07-04 ベクトル処理装置およびベクトルロード方法

Country Status (1)

Country Link
JP (1) JP3726092B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009211368A (ja) * 2008-03-04 2009-09-17 Nec Corp キャッシュメモリ及びベクトル処理装置並びにベクトルデータ整列方法
JP2009252133A (ja) * 2008-04-10 2009-10-29 Nec Computertechno Ltd ベクトル処理装置及びベクトル処理方法
JP2012083937A (ja) * 2010-10-12 2012-04-26 Nec Corp プロセッサ及びベクトルロード命令の実行方法
JP2012093944A (ja) * 2010-10-27 2012-05-17 Nec Computertechno Ltd 情報処理装置及び情報処理方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009211368A (ja) * 2008-03-04 2009-09-17 Nec Corp キャッシュメモリ及びベクトル処理装置並びにベクトルデータ整列方法
JP4687729B2 (ja) * 2008-03-04 2011-05-25 日本電気株式会社 キャッシュメモリ及びベクトル処理装置並びにベクトルデータ整列方法
JP2009252133A (ja) * 2008-04-10 2009-10-29 Nec Computertechno Ltd ベクトル処理装置及びベクトル処理方法
JP2012083937A (ja) * 2010-10-12 2012-04-26 Nec Corp プロセッサ及びベクトルロード命令の実行方法
US8850167B2 (en) 2010-10-12 2014-09-30 Nec Corporation Loading/discarding acquired data for vector load instruction upon determination of prediction success of multiple preceding branch instructions
JP2012093944A (ja) * 2010-10-27 2012-05-17 Nec Computertechno Ltd 情報処理装置及び情報処理方法

Also Published As

Publication number Publication date
JP3726092B2 (ja) 2005-12-14

Similar Documents

Publication Publication Date Title
US5185868A (en) Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy
US8850167B2 (en) Loading/discarding acquired data for vector load instruction upon determination of prediction success of multiple preceding branch instructions
JPS61107434A (ja) デ−タ処理装置
JPH08171494A (ja) マルチスレッドプロセッサ
JPH06103494B2 (ja) ベクトル処理装置の制御方式
JP2019169081A (ja) 情報処理装置、情報処理方法、プログラム
JP2531760B2 (ja) ベクトル処理装置
JP3726092B2 (ja) ベクトル処理装置およびベクトルロード方法
CN116414541B (zh) 兼容多种任务工作模式的任务执行方法和装置
JP2002287957A (ja) キャッシュのような構造を使用してcpu設計におけるオペランド・アクセス・ステージを高速化するための方法及び装置
JP4789269B2 (ja) ベクトル処理装置及びベクトル処理方法
JP2006313479A (ja) 半導体集積回路装置及びデータ転送方法
EP3591518B1 (en) Processor and instruction scheduling method
JP4631442B2 (ja) プロセッサ
JP2012128656A (ja) ベクトル演算処理装置、ベクトル演算処理方法およびベクトル演算処理プログラム
JP3982077B2 (ja) マルチプロセッサシステム
US20040128476A1 (en) Scheme to simplify instruction buffer logic supporting multiple strands
CN117407181B (zh) 一种基于屏障指令的异构计算进程同步方法及系统
US20220107807A1 (en) Processing of instructions fetched from memory
JP6926681B2 (ja) 演算処理装置及び演算処理装置の制御方法
US7779083B2 (en) Message transmitting queue and associated method
JPWO2008155839A1 (ja) 命令処理装置
JPH0962633A (ja) ネットワーク制御装置
JP2013182507A (ja) ベクトル処理装置、ベクトルロード命令実行方法、及びベクトルロード命令実行プログラム
JP6413605B2 (ja) ベクトル演算装置、制御方法とそのプログラム、及び、ベクトル処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050628

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050811

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050926

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees