JPH11167516A - System and method for multiple memory access and recording medium where control method thereof it recorded - Google Patents

System and method for multiple memory access and recording medium where control method thereof it recorded

Info

Publication number
JPH11167516A
JPH11167516A JP33224997A JP33224997A JPH11167516A JP H11167516 A JPH11167516 A JP H11167516A JP 33224997 A JP33224997 A JP 33224997A JP 33224997 A JP33224997 A JP 33224997A JP H11167516 A JPH11167516 A JP H11167516A
Authority
JP
Japan
Prior art keywords
store
address
alias
entry
buffer
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
JP33224997A
Other languages
Japanese (ja)
Other versions
JP3360587B2 (en
Inventor
Toshiaki Inoue
俊明 井上
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 Corp
Original Assignee
NEC Corp
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 Corp filed Critical NEC Corp
Priority to JP33224997A priority Critical patent/JP3360587B2/en
Publication of JPH11167516A publication Critical patent/JPH11167516A/en
Application granted granted Critical
Publication of JP3360587B2 publication Critical patent/JP3360587B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To improve the processing performance of a processor which has load store units by reducing the hardware quantity of a store buffer and also eliminating false dependency relation generated between load instructions. SOLUTION: An address comparator 103 compares the store instruction 101 with the address stored in an effective entry of an alias table 102 and a matching entry is read out. The alias address of the read matching entry and the address of the instruction 101 are registered in a reorder buffer 106 and the store value of the instruction 101 is registered in a store buffer 107. Then one unused alias address is read out of a release table 105 and stored in the entry of the alias entry and the entry of the store buffer 107. When the store instruction 101 is completed, the alias address of the entry of the alias table 10s 102 is registered as an unused alias address in the release table 105.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は多重メモリアクセス
システム及びアクセス方法並びにその制御方法を記録し
た記録媒体に関し、特に複数のロードストアユニットを
備えたプロセッサの多重メモリアクセスシステム及びア
クセス方法並びにその制御方法を記録した記録媒体に関
するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a multiplex memory access system, an access method, and a recording medium on which a control method thereof is recorded, and more particularly to a multiplex memory access system of a processor having a plurality of load / store units, an access method, and a control method thereof. It relates to a recording medium on which is recorded.

【0002】[0002]

【従来の技術】現在のスーパースカラプロセッサでは、
主記憶を高速にアクセスするために、複数のロードスト
アユニットを搭載してロードストア処理を順不同(並
列)に実行するのが一般的となっている。この場合、命
令間でのメモリアドレスに関する依存関係(正依存、逆
依存及び出力依存)は、命令発行後アドレスが確定した
時点で検出が可能となる。
2. Description of the Related Art In a current super scalar processor,
In order to access the main memory at high speed, it is common to mount a plurality of load store units and execute load store processing in random order (parallel). In this case, the dependence relation (direct dependence, inverse dependence, and output dependence) on the memory address between the instructions can be detected when the address is determined after the instruction is issued.

【0003】ここで、正依存とは、プログラム順序で先
行するストア命令と後続するロード命令とが同一のメモ
リアドレスをアクセスした場合に生じる依存関係であ
る。また、逆依存とは、プログラム順序で先行するロー
ド命令と後続するストア命令とが順不同で同一のメモリ
アドレスをアクセスした場合に生じる依存関係である。
更に、出力依存とは、プログラム順序で先行するストア
命令と後続するストア命令とが順不同で同一のメモリア
ドレスをアクセスした場合に生じる依存関係である。
[0003] Here, the direct dependency is a dependency that occurs when a preceding store instruction and a subsequent load instruction in the program order access the same memory address. The reverse dependence is a dependence relationship that occurs when a preceding load instruction and a subsequent store instruction in the program order access the same memory address in any order.
Further, the output dependency is a dependency that occurs when a preceding store instruction and a subsequent store instruction in the program order access the same memory address in any order.

【0004】これ等の依存関係が存在する命令はプログ
ラム順序で実行されなければ正しい結果が得られないの
で、そのまま並列実行することはできない。但し、逆依
存と出力依存に関しては、依存関係にある先行命令と順
不同で実行しても、主記憶をアクセスせずにストアアド
レスとストア値とを一時的なバッファに保留しておき、
先行命令が主記憶へのアクセスを完了した後に、このバ
ッファからストアアドレスとストア値とを取り出して主
記憶をアクセスすることによって、プログラム順序での
主記憶アクセスが保証されることになる。すなわち、逆
依存または出力依存の関係にあるロードストア命令の並
列実行が可能になるのである。
[0004] Instructions having these dependencies cannot be executed in parallel because the correct result cannot be obtained unless they are executed in the program order. However, regarding the inverse dependence and the output dependence, even if the instructions are executed out of order with the preceding instruction having the dependence, the store address and the store value are held in a temporary buffer without accessing the main memory,
After the preceding instruction has completed the access to the main memory, the store address and the stored value are taken out from the buffer to access the main memory, thereby guaranteeing the main memory access in the program order. That is, parallel execution of load store instructions that are inversely dependent or output dependent is possible.

【0005】従来のプロセッサでは、この一時的なバッ
ファは図5に示す様なストアバッファとして実装されて
いる。ストアバッファ302はストアアドレス(AD
R)とストア値(VAL)とが確定したストア命令をプ
ログラム順序で保持するためのバッファである。アドレ
スが確定したロード命令またはストア命令301は、ス
トアアドレスとストア値とを格納する複数のエントリを
有するストアバッファ302の有効なエントリに格納さ
れたアドレスと、アドレス比較器303にて比較され、
一致エントリ検出器304にて依存関係の有無と、アド
レスが一致したエントリ番号とが検出される。
In a conventional processor, this temporary buffer is implemented as a store buffer as shown in FIG. The store buffer 302 stores a store address (AD
R) and a buffer for storing the store instruction in which the store value (VAL) is determined in the program order. The load instruction or the store instruction 301 whose address has been determined is compared by an address comparator 303 with an address stored in a valid entry of a store buffer 302 having a plurality of entries for storing a store address and a store value,
The matching entry detector 304 detects the presence or absence of a dependency and the entry number whose address matches.

【0006】命令301がストアバッファ302内に存
在する有効な全てのストア命令に後続するロード命令で
あり、かつ一致エントリが存在した場合(正依存関
係)、主記憶をアクセスせずに一致エントリのストアデ
ータ(VAL)をフォワーディングして(フォワーディ
ング値として)使用することが可能となる。
When the instruction 301 is a load instruction following all valid store instructions existing in the store buffer 302 and a matching entry exists (a direct dependency), the main memory is not accessed and the matching entry is deleted. The store data (VAL) can be forwarded (used as a forwarding value) and used.

【0007】また、命令301が先行するロード命令で
ある場合は、ストアバッファ302内にアドレスが一致
するエントリが存在しても(逆依存関係)、無視して主
記憶をアクセスすることによって、逆依存関係にある先
行ロード命令と後続ストア命令とを順不同で実行するこ
とが可能となる。
When the instruction 301 is a preceding load instruction, even if there is an entry having the same address in the store buffer 302 (an inverse dependency), the instruction is ignored and the main memory is accessed to access the main memory. The dependent load instruction and the subsequent store instruction can be executed out of order.

【0008】また、命令301がストア命令である場
合、順不同で実行されても、ストアバッファ302内で
プログラム順序で格納されるので、結果的に出力依存は
ストアバッファ302内で解消されることになる。
When the instruction 301 is a store instruction, even if it is executed in any order, it is stored in the store buffer 302 in the program order, so that the output dependency is eliminated in the store buffer 302 as a result. Become.

【0009】すなわち、メモリアクセスに関する逆依存
と出力依存とを、ストア命令のアドレスをストアバッフ
ァ302内で名前替えする(同一のストアアドレスを異
なるアドレスとしてプログラム順序で保持する)ことに
よって解消し、これ等を並列実行可能として、プロセッ
サの処理性能を向上する様にしている。
That is, the reverse dependence and the output dependence on the memory access are eliminated by renaming the address of the store instruction in the store buffer 302 (holding the same store address as a different address in the program order). And the like can be executed in parallel to improve the processing performance of the processor.

【0010】[0010]

【発明が解決しようとする課題】しかしながら、依存関
係の検出とストアアドレスの名前替えは、アドレスに関
してのみ行えば良く、ストア値に関しては必要はない。
また、メモリ空間はレジスタ空間(高々32個)に比較
して広大であり、広範囲に複数の依存関係が生じる可能
性があるので、ストアアドレスを格納するためのエント
リ数を多く必要とする。従って、ストアバッファを使用
すると、名前替えに不必要なストア値のフィールドが当
該ストアバッファに含まれているので、そのエントリ数
の増加に伴って不必要にハードウェア量が増大するとい
う問題がある。
However, the detection of the dependency and the renaming of the store address need only be performed on the address, and need not be performed on the store value.
Further, the memory space is larger than the register space (at most 32), and there is a possibility that a plurality of dependencies may occur in a wide range. Therefore, a large number of entries are required to store the store address. Therefore, when a store buffer is used, a field of a store value unnecessary for renaming is included in the store buffer, so that there is a problem that the amount of hardware is unnecessarily increased with an increase in the number of entries. .

【0011】また、ストアバッファのエントリ数は同時
命令発行数に関連しているので、過度にエントリ数を増
やしても性能向上に寄与しないという問題もある。例え
ば、4命令同時発行のスーパスカラ処理では、高々4エ
ントリで十分であり、それ以上のエントリ数を実装する
ようにしても性能向上には寄与しないのである。
In addition, since the number of entries in the store buffer is related to the number of simultaneous instructions issued, there is a problem that even if the number of entries is excessively increased, it does not contribute to performance improvement. For example, in superscalar processing in which four instructions are issued simultaneously, at most four entries are sufficient, and even if a larger number of entries are implemented, it does not contribute to performance improvement.

【0012】本発明の目的は、アドレスの名前替えを行
うハードウェアとストアバッファの機能とを分離するこ
とにより、アドレスの名前替え可能なストア命令数を増
やすことができ、かつストアバッファのハードウェア量
を節約可能とした多重メモリアクセスシステム及びその
方法並びにその制御方法を記録した記録媒体を提供する
ことである。
An object of the present invention is to separate the hardware for renaming addresses from the function of a store buffer, thereby increasing the number of store instructions capable of renaming addresses, and the hardware of the store buffer. It is an object of the present invention to provide a multiplex memory access system capable of saving an amount, a method thereof, and a recording medium recording the control method thereof.

【0013】[0013]

【課題を解決するための手段】本発明によれば、メモリ
に対するロードストア処理を順不同にて実行する複数の
ロードストア処理ユニットを備えたプロセッサにおける
多重メモリアクセスシステムであって、同一アドレスに
対する複数のストア命令に対して夫々異なる短いビット
長の別名アドレスを対応付けて管理するようにしたこと
を特徴とする多重メモリアクセスシステムが得られる。
According to the present invention, there is provided a multiplex memory access system in a processor having a plurality of load store processing units for executing load store processing to a memory in random order. A multiple memory access system is obtained in which different short bit length alias addresses are managed in association with store instructions.

【0014】そして、前記ストア命令がアクセスするス
トアアドレスと、このストアアドレスに対応付けられた
別名アドレスとの組を格納するエントリを複数有する別
名テーブルと、前記別名アドレスに対応して設けられ対
応別名アドレスが使用済みか否かを示す開放テーブル
と、最新の別名アドレスと前記ストア命令のストア値と
の組みを格納するエントリを複数有するストアバッファ
と、古い別名アドレスとストアアドレスとの組を格納す
るエントリを複数有するリオーダバッファとを有し、ア
ドレス計算後に確定したストア命令のストアアドレスを
前記別名テーブル及び前記リオーダバッファに夫々与
え、前記ストア命令のストア値を前記ストアバッファに
与え、前記別名テーブルの別名アドレスを前記リオーダ
バッファの古い別名アドレスに与え、前記開放テーブル
の未使用別名アドレスを前記別名テーブル及び前記スト
アバッファに夫々与え、前記ストアバッファのストア値
と前記リオーダバッファのストアアドレスとをメモリへ
送出するよう制御する手段とを含むことを特徴とする。
An alias table having a plurality of entries for storing a set of a store address accessed by the store instruction and an alias address associated with the store address, a corresponding alias provided corresponding to the alias address An open table indicating whether an address has been used, a store buffer having a plurality of entries for storing a set of the latest alias address and a store value of the store instruction, and a set of an old alias address and a store address are stored. A reorder buffer having a plurality of entries, a store address of a store instruction determined after address calculation is given to the alias table and the reorder buffer, and a store value of the store instruction is given to the store buffer. Replace the alias address with the old alias address in the reorder buffer. Means for giving an unused alias address of the release table to the alias table and the store buffer, respectively, and controlling to transmit a store value of the store buffer and a store address of the reorder buffer to a memory. It is characterized by the following.

【0015】また、本発明によれば、ストア命令がアク
セスするストアアドレスと、このストアアドレスに対応
付けられた別名アドレスとの組を格納するエントリを複
数有する別名テーブルと、前記別名アドレスに対応して
設けられ対応別名アドレスが使用済みか否かを示す開放
テーブルと、最新の別名アドレスと前記ストア命令のス
トア値との組みを格納するエントリを複数有するストア
バッファと、古い別名アドレスとストアアドレスとの組
を格納するエントリを複数有するリオーダバッファとを
含み、メモリに対するロードストア処理を順不同にて実
行する複数のロードストア処理ユニットを備えたプロセ
ッサにおける多重メモリアクセス方法であって、前記ス
トア命令のデコード時に前記リオーダバッファの未使用
エントリを割当てて有効エントリとし、アドレス計算に
より確定した前記ストアアドレスを前記有効エントリに
登録するステップと、前記ストアアドレスと前記別名テ
ーブルの全ての有効エントリに格納されているストアア
ドレスと比較して一致したエントリが存在した場合、そ
の一致エントリの別名アドレスを読出して前記リオーダ
バッファの前記有効エントリの古い別名アドレス部に登
録するステップと、前記開放テーブルから未使用の別名
アドレスを取得して前記別名テーブルの前記一致エント
リの別名アドレス部に登録すると共に、前記ストアバッ
ファの特定エントリの最新の別名アドレス部にも登録す
るステップと、前記ストア命令のストアデータが確定し
た時点で、前記ストアデータを前記ストアバッファの前
記エントリのストア値部に格納するステップとを含むこ
とを特徴とする多重メモリアクセス方法が得られる。
According to the present invention, there is provided an alias table having a plurality of entries for storing a set of a store address accessed by a store instruction and an alias address associated with the store address. An open table indicating whether the corresponding alias address has been used, a store buffer having a plurality of entries for storing a set of the latest alias address and the store value of the store instruction, an old alias address and a store address. And a reorder buffer having a plurality of entries for storing sets of data, and a multiple memory access method in a processor having a plurality of load store processing units for executing load store processing to a memory in random order, Assign unused entries in the reorder buffer at times Registering the store address determined by the address calculation as a valid entry in the valid entry; and comparing the store address with the store addresses stored in all the valid entries of the alias table, there is an entry that matches. Reading the alias address of the matching entry and registering it in the old alias address portion of the valid entry in the reorder buffer; and obtaining an unused alias address from the release table to obtain the matching entry in the alias table. Registering in the alias address portion of the storage buffer and also in the latest alias address portion of the specific entry of the store buffer; and when the store data of the store instruction is determined, the store data is stored in the entry of the store buffer. Store in the store value part of Multiple memory access method which comprises the step is obtained.

【0016】また、本発明によれば、ストア命令がアク
セスするストアアドレスと、このストアアドレスに対応
付けられた別名アドレスとの組を格納するエントリを複
数有する別名テーブルと、前記別名アドレスに対応して
設けられ対応別名アドレスが使用済みか否かを示す開放
テーブルと、最新の別名アドレスと前記ストア命令のス
トア値との組みを格納するエントリを複数有するストア
バッファと、古い別名アドレスとストアアドレスとの組
を格納するエントリを複数有するリオーダバッファとを
含み、メモリに対するロードストア処理を順不同にて実
行する複数のロードストア処理ユニットを備えたプロセ
ッサにおける多重メモリアクセス方法をコンピュータに
実行させるためのプログラムを記録した記録媒体であっ
て、前記ストア命令のデコード時に前記リオーダバッフ
ァの未使用エントリを割当てて有効エントリとし、アド
レス計算により確定した前記ストアアドレスを前記有効
エントリに登録するステップと、前記ストアアドレスと
前記別名テーブルの全ての有効エントリに格納されてい
るストアアドレスと比較して一致したエントリが存在し
た場合、その一致エントリの別名アドレスを読出して前
記リオーダバッファの前記有効エントリの古い別名アド
レス部に登録するステップと、前記開放テーブルから未
使用の別名アドレスを取得して前記別名テーブルの前記
一致エントリの別名アドレス部に登録すると共に、前記
ストアバッファの特定エントリの最新の別名アドレス部
にも登録するステップと、前記ストア命令のストアデー
タが確定した時点で、前記ストアデータを前記ストアバ
ッファの前記エントリのストア値部に格納するステップ
とを含むプログラムを記録した記録媒体が得られる。
According to the present invention, there is provided an alias table having a plurality of entries for storing a set of a store address accessed by a store instruction and an alias address associated with the store address. An open table indicating whether the corresponding alias address has been used, a store buffer having a plurality of entries for storing a set of the latest alias address and the store value of the store instruction, an old alias address and a store address. And a reorder buffer having a plurality of entries for storing a set of sets, and a program for causing a computer to execute a multiple memory access method in a processor having a plurality of load store processing units for executing load store processing on a memory in random order. A storage medium on which the storage order is stored. Assigning an unused entry in the reorder buffer as a valid entry at the time of decoding, and registering the store address determined by address calculation in the valid entry; and storing the store address and all the valid entries in the alias table in the alias table. If there is an entry that matches with the stored address, the alias address of the matching entry is read and registered in the old alias address portion of the valid entry in the reorder buffer; Acquiring the alias address and registering it in the alias address portion of the matching entry in the alias table, and also registering it in the latest alias address portion of the specific entry in the store buffer; and determining the store data of the store instruction. At this point, the store Recording medium for recording a program and storing the data in the store value of the entries of the store buffer is obtained.

【0017】本発明では、ストアアドレスの名前替えを
行うハードウェアをストアバッファとは分離して設ける
ことにより、ストアバッファのエントリ数とは無関係に
別名アドレスのエントリ数を、ハードウェアの増加なく
増やすことが可能となる。また、ストア値はアドレスの
名前替えに必要がないので、ストアバッファのエントリ
数を増やして複数のストア命令のアドレス名前替えを行
う場合に比較して、ハードウェア量を削減することがで
きる。
According to the present invention, the hardware for renaming the store address is provided separately from the store buffer, so that the number of entries of the alias address is increased without increasing the hardware regardless of the number of entries in the store buffer. It becomes possible. Further, since the store value is not necessary for renaming the address, the amount of hardware can be reduced as compared with the case where the number of entries in the store buffer is increased and the address renaming of a plurality of store instructions is performed.

【0018】[0018]

【発明の実施の形態】以下に図面を参照しつつ本発明の
実施例を詳述する。
Embodiments of the present invention will be described below in detail with reference to the drawings.

【0019】図1は本発明の実施例の全体構成を示すブ
ロック図である。図1を参照すると、ストア命令101
は図示せぬ命令発行機能部から生成され、その命令の内
容STOREと、ストアアドレスADRと、ストア値V
ALとを含む。別名テーブル102はストアアドレスA
DRとこれに対応する別名アドレスADR´とを組とし
て、複数組格納可能なエントリを備えている。解放テー
ブル105はこの別名テーブル102の各エントリの別
名アドレスADR´の使用(NOT FREE)/未使
用(FREE ADR´)の状態を記憶するものであ
る。別名アドレスはストア命令のストアアドレスADR
に比し短いビット長に設定されているものとする。
FIG. 1 is a block diagram showing the overall configuration of an embodiment of the present invention. Referring to FIG. 1, a store instruction 101
Is generated from an instruction issuing function unit (not shown), and the content STORE of the instruction, the store address ADR, and the store value V
AL. Alias table 102 has store address A
There is provided an entry which can store a plurality of sets of DR and a corresponding alias address ADR 'as a set. The release table 105 stores the status of use (NOT FREE) / unused (FREE ADR ') of the alias address ADR' of each entry of the alias table 102. Alias address is store address ADR of store instruction
It is assumed that the bit length is set shorter than.

【0020】アドレス比較器103はアドレスが確定し
たストア命令101のアドレス部(ADR)と別名テー
ブル102の全ての有効なエントリのアドレス部(AD
R)とを比較するものである。一致エントリ検出器10
4は、このアドレス比較器103の結果からストアアド
レスが一致したエントリを検出するものである。
The address comparator 103 has an address part (ADR) of the store instruction 101 whose address has been determined and an address part (AD) of all valid entries of the alias table 102.
R). Match entry detector 10
Reference numeral 4 denotes an entry whose store address matches from the result of the address comparator 103.

【0021】リオーダバッファ106は古い別名アドレ
ス(OLD ADR´)と対応するストアアドレスとの
組をプログラ順序で格納するものである。ストアバッフ
ァ107は最新の別名アドレス(NEW ADR´)と
ストア値(VAL)との組をプログラ順序で格納するも
のである。
The reorder buffer 106 stores a set of an old alias address (OLD ADR ') and a corresponding store address in a program order. The store buffer 107 stores a set of the latest alias address (NEW ADR ') and a store value (VAL) in a program order.

【0022】ストア命令101はプロセッサ内でデコー
ドされた時点でリオーダバッファ106及びストアバッ
ファ107内に夫々エントリが確保される。その後、ア
ドレス計算が完了したストア命令101は別名テーブル
102の中の全ての有効なエントリに格納されたアドレ
スと、エントリ毎に設けられた比較器103にて比較さ
れる。この比較結果は一致エントリ検出器104に供給
されてストア命令101のアドレスと一致するエントリ
が検出される。
When the store instruction 101 is decoded in the processor, entries are secured in the reorder buffer 106 and the store buffer 107, respectively. After that, the store instruction 101 whose address calculation is completed is compared with the addresses stored in all valid entries in the alias table 102 by the comparator 103 provided for each entry. The comparison result is supplied to the matching entry detector 104, and an entry matching the address of the store instruction 101 is detected.

【0023】次に、一致エントリの別名アドレスが別名
テーブル102より読出されて、リオーダバッファ10
6に既に確保されているストア命令101のエントリに
古い別名アドレスとして登録される。登録完了後、解放
テーブル105から未使用の別名アドレスが一つ読出さ
れ、別名テーブル102の一致エントリ内の別名アドレ
スとストアバッファ107の別名アドレスとに、新しい
別名アドレスとして登録される。
Next, the alias address of the matching entry is read from the alias table 102, and is read from the reorder buffer 10.
6 is registered as the old alias address in the entry of the store instruction 101 already reserved in the storage unit 6. After the registration is completed, one unused alias address is read from the release table 105 and registered as a new alias address in the alias address in the matching entry of the alias table 102 and the alias address of the store buffer 107.

【0024】命令101のストア値(VAL)は、その
値が確定した後ストアバッファ107に既に割当てられ
ているエントリに格納される。また、命令101のスト
アアドレスは、値が確定した後リオーダバッファ106
に予め割当てられているエントリに格納される。先行す
る全ての命令が完了後、ストア命令101はリオーダバ
ッファ106の該当エントリのアドレスとストアバッフ
ァ107の該当エントリのストア値とをキャッシュまた
は主記憶へ送出することによって、処理が完了すること
になる。
The store value (VAL) of the instruction 101 is stored in an entry already allocated to the store buffer 107 after the value is determined. The store address of the instruction 101 is stored in the reorder buffer 106 after the value is determined.
Is stored in an entry assigned in advance. After all the preceding instructions have been completed, the store instruction 101 sends the address of the corresponding entry in the reorder buffer 106 and the store value of the corresponding entry in the store buffer 107 to the cache or main storage, thereby completing the processing. .

【0025】図2は図1のブロックの動作を説明するた
めの機能図であり、図1と同等部分は同一符号により示
している。また、図3及び図4は本発明の実施例の動作
の詳細を示すフロー図であり、これ等各図を参照しつつ
本発明の実施例の動作を説明する。
FIG. 2 is a functional diagram for explaining the operation of the block in FIG. 1, and the same parts as those in FIG. 1 are denoted by the same reference numerals. FIGS. 3 and 4 are flowcharts showing details of the operation of the embodiment of the present invention. The operation of the embodiment of the present invention will be described with reference to these drawings.

【0026】先ず、各部の初期状態につき述べる。別名
テーブル102は、初期時全てのエントリが不定であ
り、ストア命令のアドレス計算が完了する毎にエントリ
への追加登録が行われる。解放テーブル105は、初期
時全てのエントリが未使用状態(FREE ADR´)
であり、別名テーブル102への割当てにより使用中
(NOT FREE)の状態になり、命令実行終了(リ
オーダバッファ106からこのストア命令が取り除かれ
る)により解放状態(FREE ADR´)に戻る。
First, the initial state of each unit will be described. In the alias table 102, all entries are undefined at the initial stage, and each time the address calculation of the store instruction is completed, additional registration to the entry is performed. In the release table 105, all entries are unused (FREE ADR ') at the initial stage.
When the instruction execution ends (the store instruction is removed from the reorder buffer 106), the state returns to the free state (FREE ADR ').

【0027】リオーダバッファ106は、初期時全ての
エントリが不定であり、ストア命令がデコードされる毎
に追加登録される。またストアバッファ107の全ての
エントリも初期時不定であり、ストア命令の別名アドレ
ス(ADR´)と値(VAL)が確定する毎に追加登録
される。
In the reorder buffer 106, all entries are initially undefined, and are additionally registered each time a store instruction is decoded. All entries of the store buffer 107 are also undefined at the initial stage, and are additionally registered each time the alias address (ADR ') and the value (VAL) of the store instruction are determined.

【0028】図3を参照すると、メモリアドレスの名前
替えの方法の手順が示されている。先ず、アドレスが未
確定のストア命令101が発行されると(ステップS
1)、リオーダバッファ106とストアバッファ107
内に夫々エントリが割当てられる。このとき、リオーダ
バッファ106の当該エントリには、このストア命令を
識別する番号(ID)が付加される(ステップS2)。
これ等のエントリの割当ては命令のデコード時に行われ
るので、例えば、順不同で並列に実行されるスーパスカ
ラプロセッサにおいても、プログラム順序で割当てが行
われる。
Referring to FIG. 3, there is shown a procedure of a method of renaming a memory address. First, when a store instruction 101 whose address is undetermined is issued (step S
1), reorder buffer 106 and store buffer 107
Each entry is allocated within. At this time, a number (ID) for identifying the store instruction is added to the entry in the reorder buffer 106 (step S2).
Since these entries are assigned at the time of decoding the instruction, for example, even in a superscalar processor which is executed in parallel in any order, the assignment is made in the program order.

【0029】命令101の未確定アドレス(ADR)は
アドレス加算器202にて計算されて確定すると(ステ
ップS3,S4)、リオーダバッファ106で同一命令
識別番号ID(ID比較器203で同一IDが検出され
る)を有するエントリに格納される(ステップS5)と
共に、別名テーブル102内の有効な全てのエントリの
アドレスと比較される(ステップS6)。
When the undetermined address (ADR) of the instruction 101 is calculated and determined by the address adder 202 (steps S3 and S4), the same instruction identification number ID is detected by the reorder buffer 106 (the same ID is detected by the ID comparator 203). (Step S5), and is compared with the addresses of all valid entries in the alias table 102 (step S6).

【0030】この比較により、一致するエントリが存在
すると(ステップS7)、そのエントリの別名アドレス
(ADR´)が読出され、リオーダバッファ106内の
そのエントリに、古い別名アドレス(OLD ADR)
として格納される(ステップS8)。
As a result of this comparison, if a matching entry exists (step S7), the alias address (ADR ') of the entry is read, and the old alias address (OLD ADR) is stored in the entry in the reorder buffer 106.
(Step S8).

【0031】その後、解放テーブル105から未使用の
別名アドレス(FREE ADR´)が一つ読出され
(ステップS10)、別名アドレステーブル102の対
応エントリの別名アドレスを置換えると共に(ステップ
S11)、ストアバッファ107に新しい別名アドレス
(NEW ADR´)として格納される(ステップS1
2)。このとき、ストア命令101のストア値(VA
L)は命令発行後ストアバッファ107の当該エントリ
に格納される。
Thereafter, one unused alias address (FREE ADR ') is read from the release table 105 (step S10), the alias address of the corresponding entry of the alias address table 102 is replaced (step S11), and the store buffer is stored. 107 is stored as a new alias address (NEW ADR ') (step S1).
2). At this time, the store value of the store instruction 101 (VA
L) is stored in the relevant entry of the store buffer 107 after the instruction is issued.

【0032】尚、ステップS7において、一致エントリ
が存在しないと、別名テーブル102の未使用エントリ
に命令101のアドレス(ADR)が格納され(ステッ
プS8)、以後の動作は一致エントリの場合と同様にス
テップS10〜S12と進むことになる。
If there is no matching entry in step S7, the address (ADR) of the instruction 101 is stored in the unused entry of the alias table 102 (step S8), and the subsequent operations are the same as in the case of the matching entry. The process proceeds to steps S10 to S12.

【0033】図4は図3の名前替え処理に基づくメモリ
アクセス命令の実行方法を示すフローである。図3の処
理が終了して、最後に、ストア命令101に先行する全
ての命令が完了し、ストア命令101が完了可能になる
と、リオーダバッファ106内の前記エントリ(最下
端)のストアアドレスと、ストアバッファ107の前記
エントリ(最下端)のストア値とが導出され(ステップ
S21)、キャッシュまたは主記憶へ送出される(ステ
ップS22)。そして、リオーダバッファ106内の前
記エントリの古い別名アドレスが未使用アドレスとして
解放テーブル105に登録される(ステップS23)。
以上の処理により、ストア命令101が完了するのであ
る。
FIG. 4 is a flowchart showing a method of executing a memory access instruction based on the renaming process of FIG. When the processing of FIG. 3 is completed, and finally, all instructions preceding the store instruction 101 are completed and the store instruction 101 can be completed, the store address of the entry (the lowermost end) in the reorder buffer 106 and The store value of the entry (the lowermost end) of the store buffer 107 is derived (step S21) and sent to the cache or the main memory (step S22). Then, the old alias address of the entry in the reorder buffer 106 is registered in the release table 105 as an unused address (step S23).
With the above processing, the store instruction 101 is completed.

【0034】ここで、例えば、32ビットのマイクロプ
ロセッサに本発明を適用した場合、通常のアドレス長は
32ビットである。従来の図5の例では、ストアバッフ
ァ302はこの32ビットのアドレスADRとストア値
VALとを格納する構成のために、エントリ数の増加に
伴ってハードウェア量も増大する。
Here, for example, when the present invention is applied to a 32-bit microprocessor, the normal address length is 32 bits. In the conventional example of FIG. 5, since the store buffer 302 stores the 32-bit address ADR and the store value VAL, the amount of hardware increases as the number of entries increases.

【0035】一方、本発明では、別名アドレスADR´
のビット長は、別名テーブル102のエントリ数で決ま
るが、例えば、一例としてそのエントリ数を16とする
と4ビットとなり、エントリ数を32とすると5ビット
となって、従来例に比してストアバッファ107の容量
が少なくなる。逆に言えば、アドレスの名前替え可能な
ストア命令の数を増大してもハードウェア量の増大は従
来に比し小となり、よって同時命令発行数を増やすこと
ができるのである。
On the other hand, in the present invention, the alias address ADR '
Is determined by the number of entries in the alias table 102. For example, assuming that the number of entries is 16, the length is 4 bits, and the number of entries is 32, the length is 5 bits. The capacity of 107 decreases. Conversely, even if the number of store instructions whose addresses can be renamed is increased, the increase in the amount of hardware is smaller than in the past, so that the number of simultaneous instructions issued can be increased.

【0036】以上の図3,4に示した処理手順に従う制
御動作は、特に図示しないが、予めプログラム手順とし
て記録した記録媒体から当該記録プログラムをコンピュ
ータにより読出して実行せしめることにより実現可能で
あることは明白である。
Although not shown, the control operation according to the processing procedure shown in FIGS. 3 and 4 can be realized by reading out the recording program from a recording medium recorded as a program procedure in advance by a computer and executing the program. Is obvious.

【0037】本発明が適用可能なプロセッサは、現在の
技術では、スーパースカラプロセッサであるが、今後L
SIの集積度が更に向上して複数のプロセッサ要素をL
SI内に搭載して複数の命令を並列に実行するプロセッ
サに対しても、同様に適用可能である。
The processor to which the present invention can be applied is a superscalar processor in the current technology, but will be
As the integration degree of SI is further improved, a plurality of
The present invention is similarly applicable to a processor mounted in an SI and executing a plurality of instructions in parallel.

【0038】[0038]

【発明の効果】以上述べた様に、本発明によれば、スト
アバッファにストア命令で指定されるアドレスそのもの
を格納するのではなく、よりビット長の短い別名アドレ
スを格納することにより、ストアバッファのハードウェ
ア量を削減することが可能となるという効果がある。
As described above, according to the present invention, an alias address having a shorter bit length is stored in the store buffer instead of storing the address itself specified by the store instruction in the store buffer. This has the effect that the amount of hardware can be reduced.

【0039】また、ストアバッファのハードウェア量を
増加させることなく、複数のロードストア命令間の依存
関係を解消できると言う効果がある。そのために、同一
アドレスに依存関係を有するストア命令が多数存在して
も、容易にこれを解消して複数のロードストア命令を並
列実行可能となる。その理由は、ストアバッファからア
ドレス名前替えの機能を分離して別名テーブルを設ける
ことにより、ストアバッファのエントリ数とは無関係に
別名テーブルのエントリ数を増やせば、同一のアドレス
に対して多くの別名アドレスを割当てることができるか
らである。
Further, there is an effect that the dependency between a plurality of load store instructions can be eliminated without increasing the amount of hardware of the store buffer. Therefore, even if there are many store instructions having a dependency on the same address, this can be easily resolved and a plurality of load store instructions can be executed in parallel. The reason is that by providing an alias table by separating the address renaming function from the store buffer, if the number of entries in the alias table is increased regardless of the number of entries in the store buffer, many aliases can be assigned to the same address. This is because addresses can be assigned.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の実施例のブロック図である。FIG. 1 is a block diagram of an embodiment of the present invention.

【図2】図1のブロックの動作を説明するための図であ
る。
FIG. 2 is a diagram for explaining the operation of the block in FIG. 1;

【図3】本発明の実施例の動作を示すフローチャートで
あり、メモリアドレスの名前替えの方法を説明する手順
である。
FIG. 3 is a flowchart showing an operation of the embodiment of the present invention, which is a procedure for explaining a method of renaming a memory address.

【図4】本発明の実施例の動作を示すフローチャートで
あり、図3のメモリアドレスの名前替えに基づくメモリ
アクセス命令の実行方法を説明する手順である。
FIG. 4 is a flowchart showing the operation of the embodiment of the present invention, which is a procedure for explaining a method of executing a memory access instruction based on the renaming of the memory address in FIG. 3;

【図5】従来のメモリアクセス方式の例を示すブロック
図である。
FIG. 5 is a block diagram showing an example of a conventional memory access method.

【符号の説明】[Explanation of symbols]

101 命令 102 別名テーブル 103 アドレス比較器 104 一致エントリ検出器 105 解放テーブル 106 リオーダバッファ 107 ストアバッファ 202 アドレス加算器 101 Instruction 102 Alias Table 103 Address Comparator 104 Match Entry Detector 105 Release Table 106 Reorder Buffer 107 Store Buffer 202 Address Adder

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】 メモリに対するロードストア処理を順不
同にて実行する複数のロードストア処理ユニットを備え
たプロセッサにおける多重メモリアクセスシステムであ
って、同一アドレスに対する複数のストア命令に対して
夫々異なる短いビット長の別名アドレスを対応付けて管
理するようにしたことを特徴とする多重メモリアクセス
システム。
1. A multiple memory access system in a processor having a plurality of load store processing units for executing load store processing in a memory in random order, wherein different short bit lengths are different for a plurality of store instructions for the same address. A multi-memory access system wherein the alias addresses are managed in association with each other.
【請求項2】 前記ストア命令がアクセスするストアア
ドレスと、このストアアドレスに対応付けられた別名ア
ドレスとの組を格納するエントリを複数有する別名テー
ブルと、 前記別名アドレスに対応して設けられ対応別名アドレス
が使用済みか否かを示す開放テーブルと、 最新の別名アドレスと前記ストア命令のストア値との組
みを格納するエントリを複数有するストアバッファと、 古い別名アドレスとストアアドレスとの組を格納するエ
ントリを複数有するリオーダバッファと、 アドレス計算後に確定したストア命令のストアアドレス
を前記別名テーブル及び前記リオーダバッファに夫々与
え、前記ストア命令のストア値を前記ストアバッファに
与え、前記別名テーブルの別名アドレスを前記リオーダ
バッファの古い別名アドレスに与え、前記開放テーブル
の未使用別名アドレスを前記別名テーブル及び前記スト
アバッファに夫々与え、前記ストアバッファのストア値
と前記リオーダバッファのストアアドレスとをメモリへ
送出するよう制御する手段と、を含むことを特徴とする
請求項1記載の多重メモリアクセスシステム。
2. An alias table having a plurality of entries for storing a set of a store address accessed by the store instruction and an alias address associated with the store address, and a corresponding alias provided corresponding to the alias address. An open table indicating whether the address has been used, a store buffer having a plurality of entries for storing a set of the latest alias address and a store value of the store instruction, and a set of an old alias address and a store address are stored. A reorder buffer having a plurality of entries, a store address of a store instruction determined after calculating the address is given to the alias table and the reorder buffer, respectively, and a store value of the store instruction is given to the store buffer. To the old alias address in the reorder buffer Means for giving an unused alias address of the release table to the alias table and the store buffer, respectively, and controlling the store value of the store buffer and the store address of the reorder buffer to be sent to the memory. 2. The multiple memory access system according to claim 1, wherein:
【請求項3】 ストア命令がアクセスするストアアドレ
スと、このストアアドレスに対応付けられた別名アドレ
スとの組を格納するエントリを複数有する別名テーブル
と、前記別名アドレスに対応して設けられ対応別名アド
レスが使用済みか否かを示す開放テーブルと、最新の別
名アドレスと前記ストア命令のストア値との組みを格納
するエントリを複数有するストアバッファと、古い別名
アドレスとストアアドレスとの組を格納するエントリを
複数有するリオーダバッファとを含み、メモリに対する
ロードストア処理を順不同にて実行する複数のロードス
トア処理ユニットを備えたプロセッサにおける多重メモ
リアクセス方法であって、 前記ストア命令のデコード時に前記リオーダバッファの
未使用エントリを割当てて有効エントリとし、アドレス
計算により確定した前記ストアアドレスを前記有効エン
トリに登録するステップと、 前記ストアアドレスと前記別名テーブルの全ての有効エ
ントリに格納されているストアアドレスと比較して一致
したエントリが存在した場合、その一致エントリの別名
アドレスを読出して前記リオーダバッファの前記有効エ
ントリの古い別名アドレス部に登録するステップと、 前記開放テーブルから未使用の別名アドレスを取得して
前記別名テーブルの前記一致エントリの別名アドレス部
に登録すると共に、前記ストアバッファの特定エントリ
の最新の別名アドレス部にも登録するステップと、 前記ストア命令のストアデータが確定した時点で、前記
ストアデータを前記ストアバッファの前記エントリのス
トア値部に格納するステップと、を含むことを特徴とす
る多重メモリアクセス方法。
3. An alias table having a plurality of entries for storing a set of a store address accessed by a store instruction and an alias address associated with the store address, and a corresponding alias address provided corresponding to the alias address. Table that indicates whether or not is used, a store buffer having a plurality of entries for storing pairs of the latest alias address and the store value of the store instruction, and an entry for storing a pair of old alias addresses and store addresses And a reorder buffer having a plurality of reorder buffers, and a multiple memory access method in a processor having a plurality of load store processing units for executing load store processing to a memory in random order, wherein the reorder buffer is not decoded when the store instruction is decoded. Assign a use entry to make it a valid entry, Registering the store address determined by the dress calculation in the valid entry; and if there is an entry that matches the store address and the store address stored in all the valid entries of the alias table, Reading the alias address of the matching entry and registering it in the old alias address portion of the valid entry in the reorder buffer; acquiring an unused alias address from the release table to obtain the alias address portion of the matching entry in the alias table And registering in the latest alias address portion of the specific entry of the store buffer. When the store data of the store instruction is determined, the store data is stored in the store value portion of the entry of the store buffer. Storing in the And a multiple memory access method.
【請求項4】 前記ストア命令に対応して前記ストアバ
ッファのエントリに格納されたストア値と前記リオーダ
バッファに格納されたストアアドレスとを用いて、メモ
リをアクセスした後、前記ストアアドレスに対応する古
い別名アドレスを未使用の別名アドレスとして前記開放
テーブルに登録するステップを更に含むことを特徴とす
る請求項3記載の多重メモリアクセス方法。
4. Accessing a memory using a store value stored in an entry of the store buffer in response to the store instruction and a store address stored in the reorder buffer, and then accessing the memory. 4. The method according to claim 3, further comprising the step of registering an old alias address as an unused alias address in the release table.
【請求項5】 ストア命令がアクセスするストアアドレ
スと、このストアアドレスに対応付けられた別名アドレ
スとの組を格納するエントリを複数有する別名テーブル
と、前記別名アドレスに対応して設けられ対応別名アド
レスが使用済みか否かを示す開放テーブルと、最新の別
名アドレスと前記ストア命令のストア値との組みを格納
するエントリを複数有するストアバッファと、古い別名
アドレスとストアアドレスとの組を格納するエントリを
複数有するリオーダバッファとを含み、メモリに対する
ロードストア処理を順不同にて実行する複数のロードス
トア処理ユニットを備えたプロセッサにおける多重メモ
リアクセス方法をコンピュータに実行させるためのプロ
グラムを記録した記録媒体であって、 前記ストア命令のデコード時に前記リオーダバッファの
未使用エントリを割当てて有効エントリとし、アドレス
計算により確定した前記ストアアドレスを前記有効エン
トリに登録するステップと、 前記ストアアドレスと前記別名テーブルの全ての有効エ
ントリに格納されているストアアドレスと比較して一致
したエントリが存在した場合、その一致エントリの別名
アドレスを読出して前記リオーダバッファの前記有効エ
ントリの古い別名アドレス部に登録するステップと、 前記開放テーブルから未使用の別名アドレスを取得して
前記別名テーブルの前記一致エントリの別名アドレス部
に登録すると共に、前記ストアバッファの特定エントリ
の最新の別名アドレス部にも登録するステップと、 前記ストア命令のストアデータが確定した時点で、前記
ストアデータを前記ストアバッファの前記エントリのス
トア値部に格納するステップと、を含むプログラムを記
録した記録媒体。
5. An alias table having a plurality of entries for storing a set of a store address accessed by a store instruction and an alias address associated with the store address, and a corresponding alias address provided corresponding to the alias address. Table that indicates whether or not is used, a store buffer having a plurality of entries for storing pairs of the latest alias address and the store value of the store instruction, and an entry for storing a pair of old alias addresses and store addresses A reorder buffer having a plurality of memory units, and a recording medium for recording a program for causing a computer to execute a multiple memory access method in a processor having a plurality of load store processing units for executing load store processing on a memory in random order. When decoding the store instruction, Allocating an unused entry in the order buffer as a valid entry, and registering the store address determined by address calculation in the valid entry; and a store address stored in the valid address of the store address and the alias table. Reading an alias address of the matching entry and registering the same in the old alias address portion of the valid entry in the reorder buffer; and obtaining an unused alias address from the release table. Registering in the alias address portion of the matching entry in the alias table and also registering the same in the latest alias address portion of the specific entry in the store buffer. Store data in the store Storing the program in a store value portion of the entry.
【請求項6】 前記ストア命令に対応して前記ストアバ
ッファのエントリに格納されたストア値と前記リオーダ
バッファに格納されたストアアドレスとを用いて、メモ
リをアクセスした後、前記ストアアドレスに対応する古
い別名アドレスを未使用の別名アドレスとして前記開放
テーブルに登録するステップを更に含むプログラムを記
録した請求項5記載の記録媒体。
6. Accessing a memory using a store value stored in an entry of the store buffer and a store address stored in the reorder buffer in response to the store instruction, and then accessing the memory. 6. The recording medium according to claim 5, further comprising a step of registering an old alias address as an unused alias address in the release table.
JP33224997A 1997-12-03 1997-12-03 Multiple memory access system, method therefor, and recording medium recording control method therefor Expired - Fee Related JP3360587B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP33224997A JP3360587B2 (en) 1997-12-03 1997-12-03 Multiple memory access system, method therefor, and recording medium recording control method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP33224997A JP3360587B2 (en) 1997-12-03 1997-12-03 Multiple memory access system, method therefor, and recording medium recording control method therefor

Publications (2)

Publication Number Publication Date
JPH11167516A true JPH11167516A (en) 1999-06-22
JP3360587B2 JP3360587B2 (en) 2002-12-24

Family

ID=18252849

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33224997A Expired - Fee Related JP3360587B2 (en) 1997-12-03 1997-12-03 Multiple memory access system, method therefor, and recording medium recording control method therefor

Country Status (1)

Country Link
JP (1) JP3360587B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10740107B2 (en) 2016-06-01 2020-08-11 International Business Machines Corporation Operation of a multi-slice processor implementing load-hit-store handling
US10929142B2 (en) * 2019-03-20 2021-02-23 International Business Machines Corporation Making precise operand-store-compare predictions to avoid false dependencies
US11243774B2 (en) 2019-03-20 2022-02-08 International Business Machines Corporation Dynamic selection of OSC hazard avoidance mechanism

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10740107B2 (en) 2016-06-01 2020-08-11 International Business Machines Corporation Operation of a multi-slice processor implementing load-hit-store handling
US10929142B2 (en) * 2019-03-20 2021-02-23 International Business Machines Corporation Making precise operand-store-compare predictions to avoid false dependencies
US11243774B2 (en) 2019-03-20 2022-02-08 International Business Machines Corporation Dynamic selection of OSC hazard avoidance mechanism

Also Published As

Publication number Publication date
JP3360587B2 (en) 2002-12-24

Similar Documents

Publication Publication Date Title
US7174428B2 (en) Method and system for transforming memory location references in instructions
US6009509A (en) Method and system for the temporary designation and utilization of a plurality of physical registers as a stack
JPS63231550A (en) Multiple virtual space control system
JPS6341100B2 (en)
US7093100B2 (en) Translation look aside buffer (TLB) with increased translational capacity for multi-threaded computer processes
US5129071A (en) Address translation apparatus in virtual machine system using a space identifier field for discriminating datoff (dynamic address translation off) virtual machines
US7260674B2 (en) Programmable parallel lookup memory
US20060143405A1 (en) Data processing device
JP3360587B2 (en) Multiple memory access system, method therefor, and recording medium recording control method therefor
US20040230780A1 (en) Dynamically adaptive associativity of a branch target buffer (BTB)
US7539850B2 (en) Enhanced virtual renaming scheme and deadlock prevention therefor
EP1505490A1 (en) Method and computer system for accessing thread private data
US6829693B2 (en) Auxiliary storage slot scavenger
FI90805B (en) A method and apparatus for replacing a side frame in a data processing system
JP4122968B2 (en) Common resource access method, common resource access method, and program
JP3645671B2 (en) Processor device having instruction buffer
JPH05143330A (en) Stack cache and control system thereof
US7660908B2 (en) Implementing virtual packet storage via packet work area
JP3490006B2 (en) Instruction control apparatus and method
JP2000181715A (en) Instruction controller and its method
JP2540959B2 (en) Information processing device
JP2853736B2 (en) Cluster number conversion circuit
JPH0991199A (en) Device access method in hierarchical storage system
CN114924793A (en) Processing unit, computing device, and instruction processing method
JPH0334014A (en) Management reference method for screen format data

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071018

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20081018

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20091018

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20091018

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20101018

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20111018

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20121018

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20131018

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees