JP3323212B2 - データプレフェッチの方法およびその装置 - Google Patents
データプレフェッチの方法およびその装置Info
- Publication number
- JP3323212B2 JP3323212B2 JP21662191A JP21662191A JP3323212B2 JP 3323212 B2 JP3323212 B2 JP 3323212B2 JP 21662191 A JP21662191 A JP 21662191A JP 21662191 A JP21662191 A JP 21662191A JP 3323212 B2 JP3323212 B2 JP 3323212B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- address
- bus
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 17
- 230000015654 memory Effects 0.000 claims description 119
- 230000003111 delayed effect Effects 0.000 claims description 4
- 238000007726 management method Methods 0.000 claims description 4
- 230000001360 synchronised effect Effects 0.000 claims description 4
- 238000013500 data storage Methods 0.000 claims 1
- 108091029480 NONCODE Proteins 0.000 description 11
- 239000000872 buffer Substances 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000012546 transfer Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000000593 degrading effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000013518 transcription Methods 0.000 description 1
- 230000035897 transcription Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6022—Using a prefetch buffer or dedicated prefetch cache
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
Description
ステムに関し、特にコンピューターメモリシステムから
のデータのプレフェッチを行なうための方法と装置に関
する。
用することによって強化できる。例えば、三段のメモリ
は低速、中速、および高速メモリで構成できる。低速メ
モリは廉価で多量のデータ格納のための磁気ディスクで
よい。中速メモリはコンピュータの主メモリとして使用
するDRAMで構成できる。高速メモリはプロセッサキ
ャッシュメモリとして使用できるSRAMが使用でき
る。メモリの階層を利用するのは、最高速メモリ内でシ
ステムプロセッサにより実行されるコード(命令)およ
び他のデータをグループ化するためである。そのような
高速メモリは通例、入手できる最も高価なメモリが使用
されるので、経済性を考慮して比較的小さい。DRAM
から構成される主メモリは、SRAMを用いたキャッシ
ュメモリよりもより高密度かつより廉価であり、従って
キャッシュメモリよりも著しく大きい。
行中の変数に迅速にアクセスできるようにするため、命
令その他のデータはシステムメモリからキャッシュメモ
リに転送される。キャッシュにない追加的データが必要
とされるときは、そのデータをメモリから転送し、これ
でキャッシュ内の選択したデータを置換する。いずれの
データを置換するかを決定するにはいろいろのアルゴリ
ズムが使用される。
キテクチャーは高い「ヒット(当たり)」率持つもので
ある。「ヒット」はキャッシュ内に要求されたデータが
あるときに起こる。ヒット率には多数の要因が影響す
る。主な因子は実行されるコードの引合いの局所性であ
る。言い換えると、もしも当該コードがメモリ内で近接
した物理的ロケーションにあると、メモリ内に広く当該
コードが分散しているときよりヒット率は高くなる。キ
ャッシュのヒット率に影響するもう一つの因子はそのメ
モリにアクセスするデバイスの数である。もしも唯一つ
のバス主、例えばシステムプロセッサ、がメモリにアク
セスするのであれば、ヒット率がかなり高くなるように
キャッシュに格納されるデータを制御できる。しかしな
がら、同一のキャッシュを通して当該メモリに一つ以上
のバス主がアクセスするときは、キャッシュはこれらバ
ス主からの要求の間を何度も往復することがありうる。
その結果ヒット率は大きく低下する。換言すると、キャ
ッシュは非差別的なものであって、システムプロセッサ
および他のバス主の要求がキャッシュに等しく影響す
る。一つのオペレーションがキャッシュのデータ編成に
著しく影響を与えることがありうる。例えば、非ホスト
CPUバス主からのメモリアクセス要求に応答してキャ
ッシュに入れられたデータはホストプロセッサが必要と
するデータを上書きしてしまう。
ドデータおよび非コードデータの両方がキャッシュ化さ
れるという事情に関係する。システムメモリ内のデータ
ブロックはキャッシュ内でいろいろの物理的ロケーショ
ンに転写(mappinng)される。もしもシステムメモリ内
の各データブロックが単一のロケーションに転写される
のであれば、キャッシュは直接転写キャッシュ(direct
mapped cache)と言われる。これに対してセット関連
転写キャッシュと呼ばれるものは各データブロックが複
数のロケーションに転写されるものである。例えば、も
しも各データブロックが二つのロケーションのいずれか
に転写されるとき、これは二通り-セット関連転写(two
-way set associative mapping)と呼ばれている。シス
テムメモリブロックが利用できるロケーションの数に関
係なく、コードデータおよび非コードデータの両方がキ
ャッシュ化されるときはそれぞれの転写が重複すること
になる。従って、コードデータおよび非コードデータの
両方がキャッシュ化されるときは、メモリへのアクセス
に応答してデータが置換されるにともない著しいスラッ
シング(thrashing、データ処理の低下)が起こりえ
る。
改善できる技術の一つはプレフェッチキューを使用する
ことである。プレフェッチキューとは、プレフェッチア
ルゴリズムに基づいて選択される高速メモリ内のデータ
エレメントの集合である。例えば、システムプロセッサ
が使用することを予測してシステムメモリからコードデ
ータエレメントをプレフェッチ(予めの取り寄せ)を行
なうことができる。従来、このようなプレフェッチキュ
ーはシステムプロセッサに密接に関連していた。複数の
バス主を有するシステムにおいてはシステムプロセッサ
からデータを求めるためのプレフェッチ要求は他のバス
主とメモリアクセスに関して競争することが必要であっ
た。もしもそのプレフェッチ要求が優先されると他のメ
モリ要求は遅延されることになる。これは他のバス主に
待機状態を強いることから、システムの性能に幾分かの
影響を及ぼす。さらに、このプレフェッチ要求は単なる
予測であるので、プレフェッチデータの一部またはほと
んどがプロセッサにより使用されないことがある。その
ようなデータエレメントの不使用が他のバス主のメモリ
アクセス要求を遅延させることにより、さらにシステム
性能が劣化する。
ムメモリからのデータのプレフェッチを行なうための新
規かつ改良された方法を与えることを課題とする。
の応答時間を改善する方法を与えることである。
システムの性能を改善する方法を与えることである。
れたメモリシステムを与えることである。
レフェッチキューを与えることである。
メモリシステム内のコードデータをアクセスするための
方法とシステムを与えることである。
1のメモリとアドレス指定可能な高速動作のキャッシュ
メモリである第2のメモリとを有するメモリシステムに
おいて、前記第1のメモリと前記第2のメモリは、前記
メモリシステムに対してバスによって接続された複数の
バス・マスタによってアクセス可能であり、読み取られ
るべきデータ・エレメントを予測する工程と、前記複数
のバス・マスタからのメモリシステムへのアクセス要求
があった時に、前記第2のメモリにおける前記読み取ら
れるべきデータ・エレメントの読み取りにかかる2サイ
クルのうち、第一サイクルにおいてプリフェッチ用のデ
ータを前記バス上に置くことによりプリフェッチを行
い、第二サイクルにおいて前記キャッシュメモリ内の前
記データ・エレメントを前記バス上に置くことにより、
前記予測されたデータ・エレメントを前記第1のメモリ
から前記第2のメモリへ転送する工程と、を有すること
を特徴とするメモリシステムにおけるデータ・エレメン
トの管理方法を提供するものである。
他の少なくとも一つのバス・マスタのよってバスを介し
てアクセス可能なメモリシステムにおいて、前記ホスト
・プロセッサにより最初のコード・エレメントへのリー
ド要求がなされた後に、読み出されるべきコード・エレ
メントを予想する工程と、前記バス・マスタからのメモ
リシステムへのアクセス要求が遅延しない時のみに、前
記予測されたコード・エレメントを前記メモリシステム
内の低速メモリから所定数のデータ・エレメントを格納
するサイズを有する高速キャッシュメモリへ転送する工
程と、を有し、前記予想する工程は、前記最初のコード
・エレメントのアドレス・コードを格納する工程と、前
記高速キャッシュメモリ内に格納されたデータ・エレメ
ントが前記所定数よりも少ない限りにおいて、前記高速
キャッシュメモリにおける格納スペースを表す信号を供
給する工程と、格納されているアドレス・データに後続
するデータ・エレメントのアドレス・データを加える工
程と、を含み、前記メモリシステムはクロックに同期
し、該クロックは複数のクロック・サイクルを規定し、
前記転送する工程は、前記バスをモニターし、前記メモ
リシステムが如何なるバス・マスタからもアクセスされ
ていないオープン・サイクル中に、前記高速キャッシュ
メモリにおける前記読み出されるべきコード・エレメン
トの読み取りにかかる2サイクルのうち、第一サイクル
においてプリフェッチ用のコードを前記バス上に置くこ
とによりプリフェッチを行い、第二サイクルにおいて前
記キャッシュメモリ内の前記コード・エレメントを前記
バス上に置くことにより次の後続するコード・エレメン
トを転送する、各工程を有することを特徴とするメモリ
システムにおけるデータ・エレメントの管理方法を提供
するものである。
ブロック線図を示す。メモリシステム10はシステムメ
モリ12を含む。メモリ12は好ましい実施例では動的
ランダムアクセスメモリ(DRAM)チップからなる。
メモリ12に格納されるデータは一般にコードデータ
(命令)と非コードデータとに分割することができる。
ここに使用する「データ」という用語は情報を指し、コ
ードデータ(命令)および非コードデータを含む。メモ
リ12はバス14でコンピューターシステム(図示して
なし)の他の部分に接続されている。メモリシステム1
0は二つ以上のバス主に使用できるように設計されてい
るが、単一のバス主に使うこともできる。特にメモリシ
ステム10は他のバス主またはメモリシステム10への
アクセスに関してホストプロセッサと競合する装置と組
み合わせたインテル社のホストプロセッサ386、38
6sx、486等に使用することができるように設計さ
れている。メモリ12へのアクセスはバス14内に設け
られたDRAM制御装置22で制御される。
続された内部キャッシュ16、プレフェッチキャッシュ
18、および書き込みバッファキャッシュ20を含む。
好ましい実施例では内部キャッシュ16は4Kバイトの
4通り-セット関連キャッシュで、プレフェッチキャッ
シュ18は128バイトの直接転写キャッシュで、書き
込みバッファキャッシュ20は128バイトの2通り-
セット関連キャッシュである。
ロセッサの形式(386、386sx、486)に応じ
てこれらキャッシュの機能が変更できることである。し
かし、キャッシュのいくつかの特徴は変更できない。例
えば内部キャッシュ16はホストプロセッサによるメモ
リアクセスに基づいてのみ選択できるデータを保持す
る。言い換えると、内部キャッシュ16はホストプロセ
ッサ専用であり、他のバス主によるメモリアクセスによ
って影響されない。任意のバス主が各キャッシュを読み
取りできることを認識されたい。従って内部キャッシュ
16はその中にシステムプロセッサ以外の他のプロセッ
サによるメモリアクセスに基づくデータ書き込みは許さ
ないが、他のバス主も、要求しているデータがその中に
ある限りデータの読み取りはできる。各キャッシュは検
分(記録内容を検分すること)でヒットした記録内容を
無効にするため、当該キャッシュで意図されていないデ
ータ書き込みもすべて検分し、これによって動作の一貫
性を確保することを認識されたい。
レフェッチキャッシュ18がDRAM12から取り寄せ
たコードデータのみを収容することである。後で詳述す
るように、プレフェッチキャッシュ18はホストプロセ
ッサのメモリアクセスに基づくコードのみを取り寄せ
る。動作上、システムプロセッサがプレフェッチキャシ
ュ内に用意されていないコードデータを要求するとき
は、次のコード要求を予期して次順の128バイトコー
ドがプレフェッチキャッシュ18内に予め取り寄せ(プ
レフェッチ)される。
M12内に書き込まれるデータのバッファのみを行な
う。このキャッシュは単に書き込みバッファを行なうの
みならず、上述したように任意のバス主による読み取り
も許すキャッシュである。しかしこのバッファはDRA
M12からのデータのキャッシュはしない。
と、およびプロセッサの形式に基づいてこれらの機能を
選択的に定義できることは本キャッシュの重要な特徴で
ある。この性能により、本システムはキャッシュを総和
的に使用するものよりも何倍も大きなキャッシュを使用
するシステムの性能を達成し、またはこれをしのぐこと
ができる。プロセッサの形式に基づいて選択的に機能を
定義できる点に関していうと、486プロセッサを使用
するシステムの場合、書き込みバッファキャッシュ20
はシステム以外のすべてのバス主が行なうデータ書き込
みのバッファを行なう。386、386sxシステムプ
ロセッサを使用するシステムの場合、内部キャッシュ1
6はコードデータのみを保持し、システムプロセッサの
ための読み取り専用キャッシュであり、書き込みバッフ
ァキャッシュ20はシステムプロセッサを含めた任意の
バス主によるデータ書き込みのバッファを行なう。これ
らキャッシュの動作特性は、存在するホストプロセッサ
の形式情報に基づいて、電力投入時の自己形成条件に従
って定義される。
アクセスのための高速ページモードを支持する。高速ペ
ージモードはメモリページ内の行ラインをアクティブと
した後、列ラインを順次ストロボ作動させてデータをD
RAMの中にまたはDRAMの外に転送することにより
DRAMへのアクセスを高速化する良く知られた方法で
ある。加えて、DRAM12はコードデータか非コード
データのいずれかを含むページに分割されている。DR
AM12に関連されたレジスタはDRAM12内または
DRAM制御装置22内に配置され、最も最近にアクセ
スされたページのページアドレスを保持する。実際、本
システムは本システムに接続されたプロセッサの形式に
応じてコードページまたは非コードページに指向するバ
イアスを与える。例えばもしもシステムプロセッサが4
86であると、もっとも最近にアクセスされたコードア
ドレスページのアドレスがレジスタ内に保持される。動
作上、DRAM12内のコードデータページおよび非コ
ードデータページは共にランダムアクセスができる。も
しもコードページがある一サイクルでアクセスされ、次
のサイクルで非コードページがアクセスされると、非コ
ードページがアクセスされる間、コードページのアドレ
スはレジスタ内に保持される。非コードページがアクセ
スされた直後、再びコードページを開くのにレジスタ内
のそのアドレスが使用される。これと対照的に、もしも
システムプロセッサが386または386sxである
と、最も最近にアクセスされた非コードアドレスページ
のアドレスがレジスタ内に保持される。オープンページ
バイアス、高速ページモードアクセスおよび多重キャッ
シュを選択的になしうるこの組み合わせがシステム性能
を高める。
-セット関連キャッシュである。メモリの非コードデー
タ領域は、リスト、ヒープ(heap)、およびスタック
(stack)として知られる三つの領域に分割できる。メ
モリ内のデータブロックはリスト、ヒープ、およびスタ
ックように準備され、それぞれ、各自の組織と目的を有
する。例えばスタックは一組のデータエレメントで、そ
の内の一エレメントのみが一度にアクセスできる。リス
トデータは主として読み取り用であり、一般的に書き込
み用ではない。構造を有するプログラムではスタックへ
の書き込みが高い頻度で起こり、次に頻度の高い書き込
みはヒープに対して起きる。DRAM内にヒープ用のデ
ータブロックとスタック用のデータブロックを適切に指
定し、かつこれらブロックを2通り-セット関連キャッ
シュ内の対向するセットに転写することにより、動作効
率を高めることができる。さらに非コードデータに対す
るDRAM内のオープンページバイアスは実効上、リス
トデータに対するオープンページバイアスとなる。この
ようにして動作特性がさらに高められる。
レフェッチキューキャッシュ18の線図である。キャッ
シュ18はシステムメモリ12からコードデータエレメ
ント(ダブル語)を受信し、外部バス主は読み取りのみ
が可能であり、書き込みはできない。キャッシュ18は
アドレスラインおよびデータラインの両方を含むトラン
ザクションバス14に接続されている。キャッシュ18
は両者あいまって最大32個のダブル語(32x4バイ
ト)を保持するコードデータRAM202および20
4、RAM202、204、タグRAM206、妥当性
アレー208、および関連制御論理回路を含む。キャッ
シュ18は直接転写キャッシュで、RAM206内のア
ドレスタグがデータRAM202、204内の4個のダ
ブル語の各ラインに対応する。キャッシュヒットは、
(前進アドレスバス210またはトランザクションバス
14の何れかからの)現アドレスに対して選択されたビ
ットをタグRAM206からのアドレスに比較すること
により決定される。この比較はもしも現データがキャッ
シュ18内にあれば「ヒット」信号を発生するヒット検
出論理回路214でなされる。
利用可能性を示唆する「推定」信号を与えるための、キ
ャッシュ18に密接に関連した構造体の線図である。プ
レフェッチポインタ216はキャッシュ18に転送され
た最も最近のデータエレメントのアドレスを格納するレ
ジスタである。現アドレスポインタ218はキャッシュ
18から読み込まれた最も最近のデータエレメントのア
ドレスを格納するレジスタである。これら各レジスタに
格納されるアドレスはそれぞれのデータエレメントの完
全なアドレスの本の一部である。現アドレスポインタに
体して選択されたビット数はタグ206内に用意される
ロケーション数に依存する。例えばもしも各データエレ
メントにタグアドレスがあり、また32個のデータエレ
メントがあるなら、現アドレスビット数は5(325の
5)。図示した実施例では各データラインにタグアドレ
スがあり、各データラインは複数のデータエレメント
(4x32ビット、すなわち4個のダブル語)を保持す
る。従って、現アドレスポインタ218は8本のライン
の一つを指すアドレスビット4、5、および6を含む。
pレフェッチポインタ216はキャッシュ18尚の32
個のデータエレメントの一つを指すアドレスビット2、
3、4、5、および6を保持する。プレフェッチポイン
タ216は、プレフェッチポインタ216のアドレスを
1だけ増大させる加算器220に接続されている。加算
器220および現アドレスポインタ218のの出力は比
較器222の入力として接続される。比較器222の出
力は、二つの値が等しくない限りアクティブな推定信号
となる。しかし、プレフェッチポインタ216内のアド
レスが現アドレスポインタ218内のアドレスよりも1
少ないときは、「推定」は無効にされる。
があり、現アドレスポインタ218が個々のエレメント
を特定するなら、プレフェッチポインタ216内の当該
アドレスは現アドレスポインタ218のm番目毎のアド
レスの値よりも1だけ小さくなる。ここにmはプレフェ
ッチキャッシュ18内のデータエレメント(ダブル語)
の数である。推定信号は、プレフェッチポインタ216
が現アドレスポインタ218より一アドレスだけ後でな
いときは必ずキャッシュ18内の格納スペースが利用可
能であるか否かを示す。もしも各データラインに対して
タグアドレスがあり、現アドレスポインタ218が個々
のラインを特定するなら、プレフェッチポインタ216
内のアドレスは現アドレスポインタ218のn番目毎の
アドレスの値よりも1だけ小さくなる。ここにnはプレ
フェッチキャッシュ18内のデータライン数である。以
下の議論では各データラインに対してタグアドレスがあ
り、現アドレスポインタ218が個々のラインを特定す
ることを仮定している。しかし当業者は図4に示すよう
なポインタ構成にもこの議論が適用できることが了解で
きよう。
2から転送される各データエレメントのアドレスが入力
される。現アドレスポインタ218はキャッシュ18か
ら読み込まれるデータエレメント各々のアドレスが入力
される。もしもキャッシュ18が完全に予測されたデー
タエレメントで一杯であると、推定信号は無効にされ
る。もしもバス主により読み込まれた次のコードデータ
エレメントが前に読み込まれたアドレスの次順のアドレ
スであると、現アドレスポインタ218はその次のアド
レスが入れられる。プレフェッチポインタ216は次い
で現アドレスポインタ218を二つだけ遅らせ、キャッ
シュ18から読み見込まれたばかりのデータエレメント
を新しいデータエレメントで置換することを要求するた
め、推定信号が再び発せられる。従って、キャッシュ1
8は循環キューメモリである。言い換えると、バス主が
要求したコードデータエレメントに対してキャッシュ1
8内でヒットがある限り、キャッシュ18は連続的に再
入力される。
られる。第一に、読み込まれるべきコードデータエレメ
ントが予測される。第二に、該予測されたコードデータ
エレメントが、いかなるバス主のデータに対するメモリ
アクセス要求をも遅延することなくシステムメモリ12
からキャッシュ18へ転送される。しかしながら、以下
の説明から了解されようが、これら二つのステップは幾
分重複しており、一般的に言うと、本コンピューターシ
ステムがバス主からの各後続のコードデータ読み取り要
求を処理する期間中、反復される。
び現アドレスポインタ218はアクティブ推定信号を与
える値を入力される。バス主の一つ、好ましくはホスト
プロセッサは、メモリシステムからコードデータエレメ
ントの読み取りを要求する。キャッシュヒットは起こら
ないので、要求されたデータエレメントはDRAM12
から読み込まれる。次順のデータエレメントを同定する
ために、要求されたデータエレメントのアドレスはDR
AM制御装置22内のレジスタに格納される。DRAM
制御装置22はここで推定信号を受信し、格納されてい
たアドレスを次順のデータエレメントのアドレスに増大
する。トランザクションバス14が自由であるときは常
に、この次順のデータエレメントはキャッシュ18へ転
送される。
し、自由サイクルすなわちオープンサイクル時に次のデ
ータエレメントを送信するのに使用されるいろいろの技
術がある。好ましい実施例では本メモリシステムはクロ
ックサイクルに同期されている。最も高速のデータ読み
取りは2サイクルかかる(キャッシュヒットがあった場
合)。バスインタフェースに要求が到来すると、メモリ
アクセスを開始するため前進アドレスバス210を介し
て予定のアドレスビットがキャッシュに直接に送られ
る。これはトランザクションバス14がアイドル状態に
なる最初の期間に起こる。もしもキャッシュヒットがあ
ると、当該データエレメントは第二サイクルの間、トラ
ンザクションバス14上に置かれる。第一サイクル期間
中はバス14が開かれている(不使用となる)ので、こ
のコードデータエレメントは第一サイクル期間内にキャ
ッシュ18に転送される。オープンサイクル期間にDR
AM12からキャッシュ18へ予測されたデータエレメ
ントを転送することにより、バス主のメモリアクセス要
求は遅延されない。このことは本発明の重要な特徴であ
る。その理由はキャッシュ18内のすべてのデータエレ
メントは単に推定されたものに過ぎず、もしもサイクル
時間がデータエレメントをキャッシュ化するのに失われ
るなら、キャッシュ中にコードデータをプレフェッチし
ておくことによる性能の向上は一部的なものであるから
である。
ータエレメントのアドレスに増大させる先行プロセス、
推定信号の観察、バス14の監視、およびDRAM12
からキャッシュ18へのデータエレメントの転送はキャ
ッシュ18内に空きがあるかぎり反復される。キャッシ
ュ18内の利用可能な空きとは、キャッシュ18内にm
個より少ない予測データエレメントがあることを言う。
ここにmはキャッシュ18のデータエレメント容量であ
る。エレメントはもしもそれが読み取られることが予期
されるデータエレメントの集合内にあると、特定の時点
に「予測できる」。例えばもしもキャッシュ18が先行
の読み取り時に次のm個の順次的データエレメントで一
杯であることが解かると、空きは全くない。もしも次の
読み取り要求がキャッシュ18内にないコードデータエ
レメントを求めるものであればキャッシュ18内のm個
のデータエレメントはその場合「予測される」ものでは
ないので、キャッシュ18内のすべての空間が空きであ
り、「利用可能」である。コードデータエレメントがキ
ャッシュ18内にあると否とにかかわらずバス主により
読み取られるときは、キャッシュ18内の各データエレ
メントに対してタグアドレスがある限り、常に予測され
る順次的コードデータエレメントが一つ以上あり、これ
らデータエレメントがDRAM12からキャッシュ18
中に転送される。しかし現アドレスポインタ218が同
一のラインアドレスで満たされていると、各データライ
ンに対するタグアドレスがあってもバス主のコード読み
取りによってはDRAM12からの転送が起こらない。
述言語であるCDLで行なわれる。CDLはデジタル論
理システム用のハードウェアを曖昧さなしに定義するソ
フトウェアツールである。CDLリストは完全にシステ
ム10の好ましい実施例を確定する。このリストはこれ
をコンパイルすると「C」ソースコードを与え、このソ
ースコードは次いでCコンパイラでコンパイルされて標
準化されたCオブジェクトファイルフォーマット(CO
FF)を与える。次いでこのCオブジェクトファイルフ
ォーマットを論理合成プログラムに入力すると詳細な論
理構造体が得られる。この目的に使用される論理合成プ
ログラムはカルフォルニア州マウンテンビュー市のシノ
プシス社から販売されているSYNOPSYSである。
す。
ブロック線図である。
部の線図である
に使用する推定信号発生装置の線図である。
を示すブロック線図である。
Claims (13)
- 【請求項1】 第1のメモリとアドレス指定可能な高速
動作のキャッシュメモリである第2のメモリとを有する
メモリシステムにおいて、前記第1のメモリと前記第2
のメモリは、前記メモリシステムに対してバスによって
接続された複数のバス・マスタによってアクセス可能で
あり、 読み取られるべきデータ・エレメントを予測する工程
と、 前記複数のバス・マスタからのメモリシステムへのアク
セス要求があった時に、前記第2のメモリにおける前記
読み取られるべきデータ・エレメントの読み取りにかか
る2サイクルのうち、第一サイクルにおいてプリフェッ
チ用のデータを前記バス上に置くことによりプリフェッ
チを行い、第二サイクルにおいて前記キャッシュメモリ
内の前記データ・エレメントを前記バス上に置くことに
より、前記予測されたデータ・エレメントを前記第1の
メモリから前記第2のメモリへ転送する工程と、 を有することを特徴とするメモリシステムにおけるデー
タ・エレメントの管理方法。 - 【請求項2】 前記予想する工程は、第1のバス・マス
タからのメモリシステムへのリード要求がなされた後に
行われる、請求項1に記載のデータ・エレメントの管理
方法。 - 【請求項3】 前記第1のバス・マスタは、ホスト・プ
ロセッサである、請求項2に記載のデータ・エレメント
の管理方法。 - 【請求項4】 前記管理方法は、さらに、前記第1のバ
ス・マスタが引き続いてデータ・リード要求を行う工程
と、前記第1のバス・マスタからの前記リード要求に基
づいて読み出されるデータ・エレメントを予測する工程
と、を含む請求項2に記載のデータ・エレメントの管理
方法。 - 【請求項5】 前記予測する工程は、最初のデータ・エ
レメントへのリード要求がなされた後に、後続するデー
タ・エレメントを識別する、請求項1に記載のデータ・
エレメントの管理方法。 - 【請求項6】 前記最初のデータ・エレメントはアドレ
ス・データを有し、前記識別するための工程は、当該デ
ータ・エレメントのアドレス・データを格納する工程を
含む、請求項5に記載のデータ・エレメントの管理方
法。 - 【請求項7】 前記識別するための工程は、さらに、前
記第2のメモリにおける格納スペースを表す信号を供給
する工程を含む、請求項6に記載のデータ・エレメント
の管理方法。 - 【請求項8】 前記第2のメモリは、所定数のデータ・
エレメントを格納するサイズを有し、当該第2のメモリ
内に格納されたデータ・エレメントが前記所定数よりも
少ない限りにおいて前記格納スペースを表す信号が供給
される、請求項7に記載のデータ・エレメントの管理方
法。 - 【請求項9】 前記識別するための工程は、さらに、格
納されているアドレス・データに後続するデータ・エレ
メントのアドレス・データを加える工程を含む、請求項
7に記載のデータ・エレメントの管理方法。 - 【請求項10】 前記メモリシステムはクロックに同期
し、該クロックは複数のクロック・サイクルを規定し、
前記転送する工程は、前記バスをモニターし、前記メモ
リシステムが如何なるバス・マスタからもアクセスされ
ていないオープン・サイクル中に次の後続するデータ・
エレメントを転送する、請求項9に記載のデータ・エレ
メントの管理方法。 - 【請求項11】 前記メモリシステムは、前記第2のメ
モリから読み出される最新のアドレス・データを格納す
るためのアドレス・ポインタと、前記第2のメモリから
転送される最新のアドレス・データを格納するためのプ
リフェッチ・ポインタとを含み、前記アドレス・ポイン
タと前記プリフェッチ・ポインタの内容を比較し、前記
プリフェッチ・ポインタの内容が前記アドレス・ポイン
タの後のアドレスの内容と一致しない限り、第2のメモ
リにおける格納スペースを表す信号を供給する、請求項
1に記載のデータ・エレメントの管理方法。 - 【請求項12】 ホスト・プロセッサと他の少なくとも
一つのバス・マスタのよってバスを介してアクセス可能
なメモリシステムにおいて、 前記ホスト・プロセッサにより最初のコード・エレメン
トへのリード要求がなされた後に、読み出されるべきコ
ード・エレメントを予想する工程と、 前記バス・マスタからのメモリシステムへのアクセス要
求が遅延しない時のみに、前記予測されたコード・エレ
メントを前記メモリシステム内の低速メモリから所定数
のデータ・エレメントを格納するサイズを有する高速キ
ャッシュメモリへ転送する工程と、を有し、 前記予想する工程は、 前記最初のコード・エレメントのアドレス・コードを格
納する工程と、 前記高速キャッシュメモリ内に格納されたデータ・エレ
メントが前記所定数よりも少ない限りにおいて、前記高
速キャッシュメモリにおける格納スペースを表す信号を
供給する工程と、 格納されているアドレス・データに後続するデータ・エ
レメントのアドレス・データを加える工程と、を含み、 前記メモリシステムはクロックに同期し、該クロックは
複数のクロック・サイクルを規定し、 前記転送する工程は、前記バスをモニターし、前記メモ
リシステムが如何なるバス・マスタからもアクセスされ
ていないオープン・サイクル中に、前記高速キャッシュ
メモリにおける前記読み出されるべきコード・エレメン
トの読み取りにかかる2サイクルのうち、第一サイクル
においてプリフェッチ用のコードを前記バス上に置くこ
とによりプリフェッチを行い、第二サイクルにおいて前
記キャッシュメモリ内の前記コード・エレメントを前記
バス上に置くことにより次の後続するコード・エレメン
トを転送する、 各工程を有することを特徴とするメモリシステムにおけ
るデータ・エレメントの管理方法。 - 【請求項13】 前記メモリシステムは、前記高速キャ
ッシュメモリから読み出される最新のアドレス・データ
を格納するためのアドレス・ポインタと、前記高速キャ
ッシュメモリから転送される最新のアドレス・データを
格納するためのプリフェッチ・ポインタとを含み、前記
アドレス・ポインタと前記プリフェッチ・ポインタの内
容を比較し、前記プリフェッチ・ポインタの内容が前記
アドレス・ポインタの後ろのアドレスの内容と一致しな
い限り、前記高速キャッシュメモリにおける格納スペー
スを表す信号を供給する、請求項12に記載のデータ・
エレメントの管理方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US563215 | 1990-08-06 | ||
US07/563,215 US5530941A (en) | 1990-08-06 | 1990-08-06 | System and method for prefetching data from a main computer memory into a cache memory |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04233641A JPH04233641A (ja) | 1992-08-21 |
JP3323212B2 true JP3323212B2 (ja) | 2002-09-09 |
Family
ID=24249573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP21662191A Expired - Lifetime JP3323212B2 (ja) | 1990-08-06 | 1991-08-02 | データプレフェッチの方法およびその装置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US5530941A (ja) |
EP (1) | EP0470734B1 (ja) |
JP (1) | JP3323212B2 (ja) |
DE (1) | DE69132186T2 (ja) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU634354B2 (en) * | 1990-08-31 | 1993-02-18 | Sun Microsystems, Inc. | Method and apparatus for predictive caching |
JP3451099B2 (ja) * | 1991-12-06 | 2003-09-29 | 株式会社日立製作所 | 外部記憶サブシステム |
EP0795820B1 (en) * | 1993-01-21 | 2000-03-01 | Advanced Micro Devices Inc. | Combined prefetch buffer and instructions cache memory system and method for providing instructions to a central processing unit utilizing said system. |
TW228580B (en) * | 1993-10-01 | 1994-08-21 | Ibm | Information processing system and method of operation |
US5778436A (en) * | 1995-03-06 | 1998-07-07 | Duke University | Predictive caching system and method based on memory access which previously followed a cache miss |
US5680640A (en) * | 1995-09-01 | 1997-10-21 | Emc Corporation | System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state |
US6385710B1 (en) * | 1996-02-23 | 2002-05-07 | Sun Microsystems, Inc. | Multiple-mode external cache subsystem |
US5781916A (en) * | 1996-03-25 | 1998-07-14 | Motorola, Inc. | Cache control circuitry and method therefor |
US6446149B1 (en) * | 1998-03-03 | 2002-09-03 | Compaq Information Technologies Group, L.P. | Self-modifying synchronization memory address space and protocol for communication between multiple busmasters of a computer system |
US6295583B1 (en) * | 1998-06-18 | 2001-09-25 | Compaq Information Technologies Group, L.P. | Method and apparatus for resolving probes in multi-processor systems which do not use external duplicate tags for probe filtering |
US6449697B1 (en) | 1999-04-23 | 2002-09-10 | International Business Machines Corporation | Prestaging data into cache in preparation for data transfer operations |
US6496921B1 (en) | 1999-06-30 | 2002-12-17 | International Business Machines Corporation | Layered speculative request unit with instruction optimized and storage hierarchy optimized partitions |
US6393528B1 (en) * | 1999-06-30 | 2002-05-21 | International Business Machines Corporation | Optimized cache allocation algorithm for multiple speculative requests |
US6360299B1 (en) * | 1999-06-30 | 2002-03-19 | International Business Machines Corporation | Extended cache state with prefetched stream ID information |
US6421762B1 (en) | 1999-06-30 | 2002-07-16 | International Business Machines Corporation | Cache allocation policy based on speculative request history |
US6510494B1 (en) | 1999-06-30 | 2003-01-21 | International Business Machines Corporation | Time based mechanism for cached speculative data deallocation |
US6421763B1 (en) | 1999-06-30 | 2002-07-16 | International Business Machines Corporation | Method for instruction extensions for a tightly coupled speculative request unit |
US6532521B1 (en) | 1999-06-30 | 2003-03-11 | International Business Machines Corporation | Mechanism for high performance transfer of speculative request data between levels of cache hierarchy |
US6754779B1 (en) * | 1999-08-23 | 2004-06-22 | Advanced Micro Devices | SDRAM read prefetch from multiple master devices |
US6658505B2 (en) * | 2001-06-05 | 2003-12-02 | Hewlett-Packard Development Company, L.P. | System and method for checking bits in a buffer with multiple entries |
US6970978B1 (en) * | 2002-04-03 | 2005-11-29 | Advanced Micro Devices, Inc. | System and method for providing a pre-fetch memory controller |
US7051162B2 (en) * | 2003-04-07 | 2006-05-23 | Hewlett-Packard Development Company, L.P. | Methods and apparatus used to retrieve data from memory before such data is requested |
US7055005B2 (en) * | 2003-04-07 | 2006-05-30 | Hewlett-Packard Development Company, L.P. | Methods and apparatus used to retrieve data from memory into a RAM controller before such data is requested |
US7346716B2 (en) | 2003-11-25 | 2008-03-18 | Intel Corporation | Tracking progress of data streamer |
US20050143843A1 (en) * | 2003-11-25 | 2005-06-30 | Zohar Bogin | Command pacing |
US7370125B2 (en) * | 2003-11-25 | 2008-05-06 | Intel Corporation | Stream under-run/over-run recovery |
US7238218B2 (en) * | 2004-04-06 | 2007-07-03 | International Business Machines Corporation | Memory prefetch method and system |
US20050246500A1 (en) * | 2004-04-28 | 2005-11-03 | Ravishankar Iyer | Method, apparatus and system for an application-aware cache push agent |
US7296129B2 (en) | 2004-07-30 | 2007-11-13 | International Business Machines Corporation | System, method and storage medium for providing a serialized memory interface with a bus repeater |
US7331010B2 (en) | 2004-10-29 | 2008-02-12 | International Business Machines Corporation | System, method and storage medium for providing fault detection and correction in a memory subsystem |
US7299313B2 (en) | 2004-10-29 | 2007-11-20 | International Business Machines Corporation | System, method and storage medium for a memory subsystem command interface |
US7512762B2 (en) | 2004-10-29 | 2009-03-31 | International Business Machines Corporation | System, method and storage medium for a memory subsystem with positional read data latency |
US7610497B2 (en) * | 2005-02-01 | 2009-10-27 | Via Technologies, Inc. | Power management system with a bridge logic having analyzers for monitoring data quantity to modify operating clock and voltage of the processor and main memory |
US7478259B2 (en) | 2005-10-31 | 2009-01-13 | International Business Machines Corporation | System, method and storage medium for deriving clocks in a memory system |
US7685392B2 (en) | 2005-11-28 | 2010-03-23 | International Business Machines Corporation | Providing indeterminate read data latency in a memory system |
US7636813B2 (en) * | 2006-05-22 | 2009-12-22 | International Business Machines Corporation | Systems and methods for providing remote pre-fetch buffers |
US7874032B2 (en) * | 2008-06-24 | 2011-01-25 | Vaughn North | Method and device for maintaining a side sleeping position |
US8720447B2 (en) * | 2006-07-28 | 2014-05-13 | Family Concepts Tjh, Llc | Suspended back pillow for sustaining a side sleeping position |
US7669086B2 (en) | 2006-08-02 | 2010-02-23 | International Business Machines Corporation | Systems and methods for providing collision detection in a memory system |
US7870459B2 (en) | 2006-10-23 | 2011-01-11 | International Business Machines Corporation | High density high reliability memory module with power gating and a fault tolerant address and command bus |
US7721140B2 (en) | 2007-01-02 | 2010-05-18 | International Business Machines Corporation | Systems and methods for improving serviceability of a memory system |
US8429775B2 (en) * | 2009-06-23 | 2013-04-30 | Vaughn W. North | Suspended back pillow for sustaining a side sleeping position |
CN104520808A (zh) * | 2012-07-12 | 2015-04-15 | 惠普发展公司,有限责任合伙企业 | 提供待检索的数据 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1354827A (en) * | 1971-08-25 | 1974-06-05 | Ibm | Data processing systems |
US4527237A (en) * | 1979-10-11 | 1985-07-02 | Nanodata Computer Corporation | Data processing system |
US4442488A (en) * | 1980-05-05 | 1984-04-10 | Floating Point Systems, Inc. | Instruction cache memory system |
US4442484A (en) * | 1980-10-14 | 1984-04-10 | Intel Corporation | Microprocessor memory management and protection mechanism |
US4490782A (en) * | 1981-06-05 | 1984-12-25 | International Business Machines Corporation | I/O Storage controller cache system with prefetch determined by requested record's position within data block |
EP0109655B1 (en) * | 1982-11-17 | 1991-07-24 | Nec Corporation | Instruction prefetching device with prediction of a branch destination address |
US4719568A (en) * | 1982-12-30 | 1988-01-12 | International Business Machines Corporation | Hierarchical memory system including separate cache memories for storing data and instructions |
US4622631B1 (en) * | 1983-12-30 | 1996-04-09 | Recognition Int Inc | Data processing system having a data coherence solution |
US4823259A (en) * | 1984-06-29 | 1989-04-18 | International Business Machines Corporation | High speed buffer store arrangement for quick wide transfer of data |
US4884197A (en) * | 1985-02-22 | 1989-11-28 | Intergraph Corporation | Method and apparatus for addressing a cache memory |
DE3785897T2 (de) * | 1986-02-28 | 1993-09-30 | Nippon Electric Co | Steuervorrichtung zum vorabruf von befehlen. |
US4991080A (en) * | 1986-03-13 | 1991-02-05 | International Business Machines Corporation | Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions |
US4914577A (en) * | 1987-07-16 | 1990-04-03 | Icon International, Inc. | Dynamic memory management system and method |
US4926317A (en) * | 1987-07-24 | 1990-05-15 | Convex Computer Corporation | Hierarchical memory system with logical cache, physical cache, and address translation unit for generating a sequence of physical addresses |
US5055999A (en) * | 1987-12-22 | 1991-10-08 | Kendall Square Research Corporation | Multiprocessor digital data processing system |
US5025366A (en) * | 1988-01-20 | 1991-06-18 | Advanced Micro Devices, Inc. | Organization of an integrated cache unit for flexible usage in cache system design |
US5023776A (en) * | 1988-02-22 | 1991-06-11 | International Business Machines Corp. | Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage |
US5247649A (en) * | 1988-05-06 | 1993-09-21 | Hitachi, Ltd. | Multi-processor system having a multi-port cache memory |
US4987529A (en) * | 1988-08-11 | 1991-01-22 | Ast Research, Inc. | Shared memory bus system for arbitrating access control among contending memory refresh circuits, peripheral controllers, and bus masters |
US5113515A (en) * | 1989-02-03 | 1992-05-12 | Digital Equipment Corporation | Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer |
US5136697A (en) * | 1989-06-06 | 1992-08-04 | Advanced Micro Devices, Inc. | System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache |
US5230068A (en) * | 1990-02-26 | 1993-07-20 | Nexgen Microsystems | Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence |
US5226130A (en) * | 1990-02-26 | 1993-07-06 | Nexgen Microsystems | Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency |
US5283873A (en) * | 1990-06-29 | 1994-02-01 | Digital Equipment Corporation | Next line prediction apparatus for a pipelined computed system |
-
1990
- 1990-08-06 US US07/563,215 patent/US5530941A/en not_active Expired - Lifetime
-
1991
- 1991-07-26 DE DE69132186T patent/DE69132186T2/de not_active Expired - Lifetime
- 1991-07-26 EP EP91306841A patent/EP0470734B1/en not_active Expired - Lifetime
- 1991-08-02 JP JP21662191A patent/JP3323212B2/ja not_active Expired - Lifetime
-
1997
- 1997-02-10 US US08/795,262 patent/US5751994A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0470734B1 (en) | 2000-05-10 |
US5530941A (en) | 1996-06-25 |
DE69132186T2 (de) | 2001-01-18 |
EP0470734A1 (en) | 1992-02-12 |
US5751994A (en) | 1998-05-12 |
DE69132186D1 (de) | 2000-06-15 |
JPH04233641A (ja) | 1992-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3323212B2 (ja) | データプレフェッチの方法およびその装置 | |
US5958040A (en) | Adaptive stream buffers | |
US5371870A (en) | Stream buffer memory having a multiple-entry address history buffer for detecting sequential reads to initiate prefetching | |
US5388247A (en) | History buffer control to reduce unnecessary allocations in a memory stream buffer | |
US6782454B1 (en) | System and method for pre-fetching for pointer linked data structures | |
US5555392A (en) | Method and apparatus for a line based non-blocking data cache | |
US5265236A (en) | Method and apparatus for increasing the speed of memory access in a virtual memory system having fast page mode | |
US5461718A (en) | System for sequential read of memory stream buffer detecting page mode cycles availability fetching data into a selected FIFO, and sending data without aceessing memory | |
EP1605360B1 (en) | Cache coherency maintenance for DMA, task termination and synchronisation operations | |
US5420994A (en) | Method for reading a multiple byte data element in a memory system with at least one cache and a main memory | |
JP3326189B2 (ja) | コンピューターメモリシステムおよびデータエレメント清浄化法 | |
JP2004199677A (ja) | キャッシュを動作させるためのシステム及び方法 | |
US6240487B1 (en) | Integrated cache buffers | |
US6801982B2 (en) | Read prediction algorithm to provide low latency reads with SDRAM cache | |
EP0741356A1 (en) | Cache architecture and method of operation | |
US5835945A (en) | Memory system with write buffer, prefetch and internal caches | |
US5434990A (en) | Method for serially or concurrently addressing n individually addressable memories each having an address latch and data latch | |
US5953740A (en) | Computer memory system having programmable operational characteristics based on characteristics of a central processor | |
JP3187465B2 (ja) | コンピューターメモリオープンページバイアス法とその装置 | |
CN114637467A (zh) | 一种基于三维dram内存控制器的访存性能提升方法 | |
GB2454811A (en) | Cache memory which pre-fetches data when an address register is written | |
GB2454808A (en) | Cache which prefetches data at a second address when an access matches a first address | |
EP0470737A1 (en) | Cache memory operating method and structure | |
JPH06195263A (ja) | キャッシュ・メモリ・システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080628 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090628 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090628 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100628 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100628 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110628 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120628 Year of fee payment: 10 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120628 Year of fee payment: 10 |