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
Application number
JP21662191A
Other languages
English (en)
Other versions
JPH04233641A (ja
Inventor
エル. ヴァイサ ピルミン
ヴィ. ヴァーミア フールプス
シー. キング エドワード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JPH04233641A publication Critical patent/JPH04233641A/ja
Application granted granted Critical
Publication of JP3323212B2 publication Critical patent/JP3323212B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using 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

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピューターメモリシ
ステムに関し、特にコンピューターメモリシステムから
のデータのプレフェッチを行なうための方法と装置に関
する。
【0002】
【従来の技術】コンピュータの性能はメモリの階層を使
用することによって強化できる。例えば、三段のメモリ
は低速、中速、および高速メモリで構成できる。低速メ
モリは廉価で多量のデータ格納のための磁気ディスクで
よい。中速メモリはコンピュータの主メモリとして使用
するDRAMで構成できる。高速メモリはプロセッサキ
ャッシュメモリとして使用できるSRAMが使用でき
る。メモリの階層を利用するのは、最高速メモリ内でシ
ステムプロセッサにより実行されるコード(命令)およ
び他のデータをグループ化するためである。そのような
高速メモリは通例、入手できる最も高価なメモリが使用
されるので、経済性を考慮して比較的小さい。DRAM
から構成される主メモリは、SRAMを用いたキャッシ
ュメモリよりもより高密度かつより廉価であり、従って
キャッシュメモリよりも著しく大きい。
【0003】作動期間中、システムプロセッサが現に実
行中の変数に迅速にアクセスできるようにするため、命
令その他のデータはシステムメモリからキャッシュメモ
リに転送される。キャッシュにない追加的データが必要
とされるときは、そのデータをメモリから転送し、これ
でキャッシュ内の選択したデータを置換する。いずれの
データを置換するかを決定するにはいろいろのアルゴリ
ズムが使用される。
【0004】定義により、高効率動作キャッシュのアー
キテクチャーは高い「ヒット(当たり)」率持つもので
ある。「ヒット」はキャッシュ内に要求されたデータが
あるときに起こる。ヒット率には多数の要因が影響す
る。主な因子は実行されるコードの引合いの局所性であ
る。言い換えると、もしも当該コードがメモリ内で近接
した物理的ロケーションにあると、メモリ内に広く当該
コードが分散しているときよりヒット率は高くなる。キ
ャッシュのヒット率に影響するもう一つの因子はそのメ
モリにアクセスするデバイスの数である。もしも唯一つ
のバス主、例えばシステムプロセッサ、がメモリにアク
セスするのであれば、ヒット率がかなり高くなるように
キャッシュに格納されるデータを制御できる。しかしな
がら、同一のキャッシュを通して当該メモリに一つ以上
のバス主がアクセスするときは、キャッシュはこれらバ
ス主からの要求の間を何度も往復することがありうる。
その結果ヒット率は大きく低下する。換言すると、キャ
ッシュは非差別的なものであって、システムプロセッサ
および他のバス主の要求がキャッシュに等しく影響す
る。一つのオペレーションがキャッシュのデータ編成に
著しく影響を与えることがありうる。例えば、非ホスト
CPUバス主からのメモリアクセス要求に応答してキャ
ッシュに入れられたデータはホストプロセッサが必要と
するデータを上書きしてしまう。
【0005】ヒット率に影響するもう一つの因子はコー
ドデータおよび非コードデータの両方がキャッシュ化さ
れるという事情に関係する。システムメモリ内のデータ
ブロックはキャッシュ内でいろいろの物理的ロケーショ
ンに転写(mappinng)される。もしもシステムメモリ内
の各データブロックが単一のロケーションに転写される
のであれば、キャッシュは直接転写キャッシュ(direct
mapped cache)と言われる。これに対してセット関連
転写キャッシュと呼ばれるものは各データブロックが複
数のロケーションに転写されるものである。例えば、も
しも各データブロックが二つのロケーションのいずれか
に転写されるとき、これは二通り-セット関連転写(two
-way set associative mapping)と呼ばれている。シス
テムメモリブロックが利用できるロケーションの数に関
係なく、コードデータおよび非コードデータの両方がキ
ャッシュ化されるときはそれぞれの転写が重複すること
になる。従って、コードデータおよび非コードデータの
両方がキャッシュ化されるときは、メモリへのアクセス
に応答してデータが置換されるにともない著しいスラッ
シング(thrashing、データ処理の低下)が起こりえ
る。
【0006】ヒット率に影響を及ぼしてシステム性能を
改善できる技術の一つはプレフェッチキューを使用する
ことである。プレフェッチキューとは、プレフェッチア
ルゴリズムに基づいて選択される高速メモリ内のデータ
エレメントの集合である。例えば、システムプロセッサ
が使用することを予測してシステムメモリからコードデ
ータエレメントをプレフェッチ(予めの取り寄せ)を行
なうことができる。従来、このようなプレフェッチキュ
ーはシステムプロセッサに密接に関連していた。複数の
バス主を有するシステムにおいてはシステムプロセッサ
からデータを求めるためのプレフェッチ要求は他のバス
主とメモリアクセスに関して競争することが必要であっ
た。もしもそのプレフェッチ要求が優先されると他のメ
モリ要求は遅延されることになる。これは他のバス主に
待機状態を強いることから、システムの性能に幾分かの
影響を及ぼす。さらに、このプレフェッチ要求は単なる
予測であるので、プレフェッチデータの一部またはほと
んどがプロセッサにより使用されないことがある。その
ようなデータエレメントの不使用が他のバス主のメモリ
アクセス要求を遅延させることにより、さらにシステム
性能が劣化する。
【0007】
【発明が解決しようとする課題】従って本発明はシステ
ムメモリからのデータのプレフェッチを行なうための新
規かつ改良された方法を与えることを課題とする。
【0008】本発明のもう一つの課題はメモリシステム
の応答時間を改善する方法を与えることである。
【0009】本発明のさらに別の課題はコンピューター
システムの性能を改善する方法を与えることである。
【0010】本発明のさらに別の課題は新規かつ改良さ
れたメモリシステムを与えることである。
【0011】本発明のさらに別の課題は一層効率的なプ
レフェッチキューを与えることである。
【0012】本発明のさらに別の課題はコンピューター
メモリシステム内のコードデータをアクセスするための
方法とシステムを与えることである。
【0013】
【課題を解決するための手段】このため、本発明は、第
1のメモリとアドレス指定可能な高速動作のキャッシュ
メモリである第2のメモリとを有するメモリシステムに
おいて、前記第1のメモリと前記第2のメモリは、前記
メモリシステムに対してバスによって接続された複数の
バス・マスタによってアクセス可能であり、読み取られ
るべきデータ・エレメントを予測する工程と、前記複数
のバス・マスタからのメモリシステムへのアクセス要求
があった時に、前記第2のメモリにおける前記読み取ら
れるべきデータ・エレメントの読み取りにかかる2サイ
クルのうち、第一サイクルにおいてプリフェッチ用のデ
ータを前記バス上に置くことによりプリフェッチを行
い、第二サイクルにおいて前記キャッシュメモリ内の前
記データ・エレメントを前記バス上に置くことにより、
前記予測されたデータ・エレメントを前記第1のメモリ
から前記第2のメモリへ転送する工程と、を有すること
を特徴とするメモリシステムにおけるデータ・エレメン
トの管理方法を提供するものである。
【0014】本発明は、さらに、ホスト・プロセッサと
他の少なくとも一つのバス・マスタのよってバスを介し
てアクセス可能なメモリシステムにおいて、前記ホスト
・プロセッサにより最初のコード・エレメントへのリー
ド要求がなされた後に、読み出されるべきコード・エレ
メントを予想する工程と、前記バス・マスタからのメモ
リシステムへのアクセス要求が遅延しない時のみに、前
記予測されたコード・エレメントを前記メモリシステム
内の低速メモリから所定数のデータ・エレメントを格納
するサイズを有する高速キャッシュメモリへ転送する工
程と、を有し、前記予想する工程は、前記最初のコード
・エレメントのアドレス・コードを格納する工程と、前
記高速キャッシュメモリ内に格納されたデータ・エレメ
ントが前記所定数よりも少ない限りにおいて、前記高速
キャッシュメモリにおける格納スペースを表す信号を供
給する工程と、格納されているアドレス・データに後続
するデータ・エレメントのアドレス・データを加える工
程と、を含み、前記メモリシステムはクロックに同期
し、該クロックは複数のクロック・サイクルを規定し、
前記転送する工程は、前記バスをモニターし、前記メモ
リシステムが如何なるバス・マスタからもアクセスされ
ていないオープン・サイクル中に、前記高速キャッシュ
メモリにおける前記読み出されるべきコード・エレメン
トの読み取りにかかる2サイクルのうち、第一サイクル
においてプリフェッチ用のコードを前記バス上に置くこ
とによりプリフェッチを行い、第二サイクルにおいて前
記キャッシュメモリ内の前記コード・エレメントを前記
バス上に置くことにより次の後続するコード・エレメン
トを転送する、各工程を有することを特徴とするメモリ
システムにおけるデータ・エレメントの管理方法を提供
するものである。
【0015】
【実施例】図1はコンピューターメモリシステム10の
ブロック線図を示す。メモリシステム10はシステムメ
モリ12を含む。メモリ12は好ましい実施例では動的
ランダムアクセスメモリ(DRAM)チップからなる。
メモリ12に格納されるデータは一般にコードデータ
(命令)と非コードデータとに分割することができる。
ここに使用する「データ」という用語は情報を指し、コ
ードデータ(命令)および非コードデータを含む。メモ
リ12はバス14でコンピューターシステム(図示して
なし)の他の部分に接続されている。メモリシステム1
0は二つ以上のバス主に使用できるように設計されてい
るが、単一のバス主に使うこともできる。特にメモリシ
ステム10は他のバス主またはメモリシステム10への
アクセスに関してホストプロセッサと競合する装置と組
み合わせたインテル社のホストプロセッサ386、38
6sx、486等に使用することができるように設計さ
れている。メモリ12へのアクセスはバス14内に設け
られたDRAM制御装置22で制御される。
【0016】システム10はまたバス14にそれぞれ接
続された内部キャッシュ16、プレフェッチキャッシュ
18、および書き込みバッファキャッシュ20を含む。
好ましい実施例では内部キャッシュ16は4Kバイトの
4通り-セット関連キャッシュで、プレフェッチキャッ
シュ18は128バイトの直接転写キャッシュで、書き
込みバッファキャッシュ20は128バイトの2通り-
セット関連キャッシュである。
【0017】本キャッシュの特徴は使用されるホストプ
ロセッサの形式(386、386sx、486)に応じ
てこれらキャッシュの機能が変更できることである。し
かし、キャッシュのいくつかの特徴は変更できない。例
えば内部キャッシュ16はホストプロセッサによるメモ
リアクセスに基づいてのみ選択できるデータを保持す
る。言い換えると、内部キャッシュ16はホストプロセ
ッサ専用であり、他のバス主によるメモリアクセスによ
って影響されない。任意のバス主が各キャッシュを読み
取りできることを認識されたい。従って内部キャッシュ
16はその中にシステムプロセッサ以外の他のプロセッ
サによるメモリアクセスに基づくデータ書き込みは許さ
ないが、他のバス主も、要求しているデータがその中に
ある限りデータの読み取りはできる。各キャッシュは検
分(記録内容を検分すること)でヒットした記録内容を
無効にするため、当該キャッシュで意図されていないデ
ータ書き込みもすべて検分し、これによって動作の一貫
性を確保することを認識されたい。
【0018】キャッシュに関し不変な特徴の一つは、プ
レフェッチキャッシュ18がDRAM12から取り寄せ
たコードデータのみを収容することである。後で詳述す
るように、プレフェッチキャッシュ18はホストプロセ
ッサのメモリアクセスに基づくコードのみを取り寄せ
る。動作上、システムプロセッサがプレフェッチキャシ
ュ内に用意されていないコードデータを要求するとき
は、次のコード要求を予期して次順の128バイトコー
ドがプレフェッチキャッシュ18内に予め取り寄せ(プ
レフェッチ)される。
【0019】書き込みバッファキャッシュ20はDRA
M12内に書き込まれるデータのバッファのみを行な
う。このキャッシュは単に書き込みバッファを行なうの
みならず、上述したように任意のバス主による読み取り
も許すキャッシュである。しかしこのバッファはDRA
M12からのデータのキャッシュはしない。
【0020】各キャッシュの機能が分離されているこ
と、およびプロセッサの形式に基づいてこれらの機能を
選択的に定義できることは本キャッシュの重要な特徴で
ある。この性能により、本システムはキャッシュを総和
的に使用するものよりも何倍も大きなキャッシュを使用
するシステムの性能を達成し、またはこれをしのぐこと
ができる。プロセッサの形式に基づいて選択的に機能を
定義できる点に関していうと、486プロセッサを使用
するシステムの場合、書き込みバッファキャッシュ20
はシステム以外のすべてのバス主が行なうデータ書き込
みのバッファを行なう。386、386sxシステムプ
ロセッサを使用するシステムの場合、内部キャッシュ1
6はコードデータのみを保持し、システムプロセッサの
ための読み取り専用キャッシュであり、書き込みバッフ
ァキャッシュ20はシステムプロセッサを含めた任意の
バス主によるデータ書き込みのバッファを行なう。これ
らキャッシュの動作特性は、存在するホストプロセッサ
の形式情報に基づいて、電力投入時の自己形成条件に従
って定義される。
【0021】DRAM制御装置22はDRAM12への
アクセスのための高速ページモードを支持する。高速ペ
ージモードはメモリページ内の行ラインをアクティブと
した後、列ラインを順次ストロボ作動させてデータをD
RAMの中にまたはDRAMの外に転送することにより
DRAMへのアクセスを高速化する良く知られた方法で
ある。加えて、DRAM12はコードデータか非コード
データのいずれかを含むページに分割されている。DR
AM12に関連されたレジスタはDRAM12内または
DRAM制御装置22内に配置され、最も最近にアクセ
スされたページのページアドレスを保持する。実際、本
システムは本システムに接続されたプロセッサの形式に
応じてコードページまたは非コードページに指向するバ
イアスを与える。例えばもしもシステムプロセッサが4
86であると、もっとも最近にアクセスされたコードア
ドレスページのアドレスがレジスタ内に保持される。動
作上、DRAM12内のコードデータページおよび非コ
ードデータページは共にランダムアクセスができる。も
しもコードページがある一サイクルでアクセスされ、次
のサイクルで非コードページがアクセスされると、非コ
ードページがアクセスされる間、コードページのアドレ
スはレジスタ内に保持される。非コードページがアクセ
スされた直後、再びコードページを開くのにレジスタ内
のそのアドレスが使用される。これと対照的に、もしも
システムプロセッサが386または386sxである
と、最も最近にアクセスされた非コードアドレスページ
のアドレスがレジスタ内に保持される。オープンページ
バイアス、高速ページモードアクセスおよび多重キャッ
シュを選択的になしうるこの組み合わせがシステム性能
を高める。
【0022】書き込みバッファキャッシュ20は2通り
-セット関連キャッシュである。メモリの非コードデー
タ領域は、リスト、ヒープ(heap)、およびスタック
(stack)として知られる三つの領域に分割できる。メ
モリ内のデータブロックはリスト、ヒープ、およびスタ
ックように準備され、それぞれ、各自の組織と目的を有
する。例えばスタックは一組のデータエレメントで、そ
の内の一エレメントのみが一度にアクセスできる。リス
トデータは主として読み取り用であり、一般的に書き込
み用ではない。構造を有するプログラムではスタックへ
の書き込みが高い頻度で起こり、次に頻度の高い書き込
みはヒープに対して起きる。DRAM内にヒープ用のデ
ータブロックとスタック用のデータブロックを適切に指
定し、かつこれらブロックを2通り-セット関連キャッ
シュ内の対向するセットに転写することにより、動作効
率を高めることができる。さらに非コードデータに対す
るDRAM内のオープンページバイアスは実効上、リス
トデータに対するオープンページバイアスとなる。この
ようにして動作特性がさらに高められる。
【0023】図2および図3は本発明の一形態であるプ
レフェッチキューキャッシュ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でなされる。
【0024】図4はキャッシュ18内の格納スペースの
利用可能性を示唆する「推定」信号を与えるための、キ
ャッシュ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
少ないときは、「推定」は無効にされる。
【0025】各データエレメントに対してタグアドレス
があり、現アドレスポインタ218が個々のエレメント
を特定するなら、プレフェッチポインタ216内の当該
アドレスは現アドレスポインタ218のm番目毎のアド
レスの値よりも1だけ小さくなる。ここにmはプレフェ
ッチキャッシュ18内のデータエレメント(ダブル語)
の数である。推定信号は、プレフェッチポインタ216
が現アドレスポインタ218より一アドレスだけ後でな
いときは必ずキャッシュ18内の格納スペースが利用可
能であるか否かを示す。もしも各データラインに対して
タグアドレスがあり、現アドレスポインタ218が個々
のラインを特定するなら、プレフェッチポインタ216
内のアドレスは現アドレスポインタ218のn番目毎の
アドレスの値よりも1だけ小さくなる。ここにnはプレ
フェッチキャッシュ18内のデータライン数である。以
下の議論では各データラインに対してタグアドレスがあ
り、現アドレスポインタ218が個々のラインを特定す
ることを仮定している。しかし当業者は図4に示すよう
なポインタ構成にもこの議論が適用できることが了解で
きよう。
【0026】プレフェッチポインタ216はDRAM1
2から転送される各データエレメントのアドレスが入力
される。現アドレスポインタ218はキャッシュ18か
ら読み込まれるデータエレメント各々のアドレスが入力
される。もしもキャッシュ18が完全に予測されたデー
タエレメントで一杯であると、推定信号は無効にされ
る。もしもバス主により読み込まれた次のコードデータ
エレメントが前に読み込まれたアドレスの次順のアドレ
スであると、現アドレスポインタ218はその次のアド
レスが入れられる。プレフェッチポインタ216は次い
で現アドレスポインタ218を二つだけ遅らせ、キャッ
シュ18から読み見込まれたばかりのデータエレメント
を新しいデータエレメントで置換することを要求するた
め、推定信号が再び発せられる。従って、キャッシュ1
8は循環キューメモリである。言い換えると、バス主が
要求したコードデータエレメントに対してキャッシュ1
8内でヒットがある限り、キャッシュ18は連続的に再
入力される。
【0027】作動上、本発明の方法は大きく二つに分け
られる。第一に、読み込まれるべきコードデータエレメ
ントが予測される。第二に、該予測されたコードデータ
エレメントが、いかなるバス主のデータに対するメモリ
アクセス要求をも遅延することなくシステムメモリ12
からキャッシュ18へ転送される。しかしながら、以下
の説明から了解されようが、これら二つのステップは幾
分重複しており、一般的に言うと、本コンピューターシ
ステムがバス主からの各後続のコードデータ読み取り要
求を処理する期間中、反復される。
【0028】初めに、プレフェッチポインタ216およ
び現アドレスポインタ218はアクティブ推定信号を与
える値を入力される。バス主の一つ、好ましくはホスト
プロセッサは、メモリシステムからコードデータエレメ
ントの読み取りを要求する。キャッシュヒットは起こら
ないので、要求されたデータエレメントはDRAM12
から読み込まれる。次順のデータエレメントを同定する
ために、要求されたデータエレメントのアドレスはDR
AM制御装置22内のレジスタに格納される。DRAM
制御装置22はここで推定信号を受信し、格納されてい
たアドレスを次順のデータエレメントのアドレスに増大
する。トランザクションバス14が自由であるときは常
に、この次順のデータエレメントはキャッシュ18へ転
送される。
【0029】DRAM制御装置22がバス14を検分
し、自由サイクルすなわちオープンサイクル時に次のデ
ータエレメントを送信するのに使用されるいろいろの技
術がある。好ましい実施例では本メモリシステムはクロ
ックサイクルに同期されている。最も高速のデータ読み
取りは2サイクルかかる(キャッシュヒットがあった場
合)。バスインタフェースに要求が到来すると、メモリ
アクセスを開始するため前進アドレスバス210を介し
て予定のアドレスビットがキャッシュに直接に送られ
る。これはトランザクションバス14がアイドル状態に
なる最初の期間に起こる。もしもキャッシュヒットがあ
ると、当該データエレメントは第二サイクルの間、トラ
ンザクションバス14上に置かれる。第一サイクル期間
中はバス14が開かれている(不使用となる)ので、こ
のコードデータエレメントは第一サイクル期間内にキャ
ッシュ18に転送される。オープンサイクル期間にDR
AM12からキャッシュ18へ予測されたデータエレメ
ントを転送することにより、バス主のメモリアクセス要
求は遅延されない。このことは本発明の重要な特徴であ
る。その理由はキャッシュ18内のすべてのデータエレ
メントは単に推定されたものに過ぎず、もしもサイクル
時間がデータエレメントをキャッシュ化するのに失われ
るなら、キャッシュ中にコードデータをプレフェッチし
ておくことによる性能の向上は一部的なものであるから
である。
【0030】DRAM制御装置内のアドレスを次順のデ
ータエレメントのアドレスに増大させる先行プロセス、
推定信号の観察、バス14の監視、およびDRAM12
からキャッシュ18へのデータエレメントの転送はキャ
ッシュ18内に空きがあるかぎり反復される。キャッシ
ュ18内の利用可能な空きとは、キャッシュ18内にm
個より少ない予測データエレメントがあることを言う。
ここにmはキャッシュ18のデータエレメント容量であ
る。エレメントはもしもそれが読み取られることが予期
されるデータエレメントの集合内にあると、特定の時点
に「予測できる」。例えばもしもキャッシュ18が先行
の読み取り時に次のm個の順次的データエレメントで一
杯であることが解かると、空きは全くない。もしも次の
読み取り要求がキャッシュ18内にないコードデータエ
レメントを求めるものであればキャッシュ18内のm個
のデータエレメントはその場合「予測される」ものでは
ないので、キャッシュ18内のすべての空間が空きであ
り、「利用可能」である。コードデータエレメントがキ
ャッシュ18内にあると否とにかかわらずバス主により
読み取られるときは、キャッシュ18内の各データエレ
メントに対してタグアドレスがある限り、常に予測され
る順次的コードデータエレメントが一つ以上あり、これ
らデータエレメントがDRAM12からキャッシュ18
中に転送される。しかし現アドレスポインタ218が同
一のラインアドレスで満たされていると、各データライ
ンに対するタグアドレスがあってもバス主のコード読み
取りによってはDRAM12からの転送が起こらない。
【0031】本発明の詳細な設計は高度ハードウェア記
述言語であるCDLで行なわれる。CDLはデジタル論
理システム用のハードウェアを曖昧さなしに定義するソ
フトウェアツールである。CDLリストは完全にシステ
ム10の好ましい実施例を確定する。このリストはこれ
をコンパイルすると「C」ソースコードを与え、このソ
ースコードは次いでCコンパイラでコンパイルされて標
準化されたCオブジェクトファイルフォーマット(CO
FF)を与える。次いでこのCオブジェクトファイルフ
ォーマットを論理合成プログラムに入力すると詳細な論
理構造体が得られる。この目的に使用される論理合成プ
ログラムはカルフォルニア州マウンテンビュー市のシノ
プシス社から販売されているSYNOPSYSである。
【0032】図5は本発明のモジュール間の関係を示
す。
【0033】
【図面の簡単な説明】
【図1】図1は高性能コンピューターメモリシステムの
ブロック線図である。
【図2】図2は本発明に基づくプレフェッチキューの一
部の線図である
【図3】図3は図2に続く残りの線図である。
【図4】図4は図2、および図3のプレフェッチキュー
に使用する推定信号発生装置の線図である。
【図5】図5は本メモリシステムのモジュール間の関係
を示すブロック線図である。
【符号の説明】
10 コンピューターメモリシステム 14 バス 18 プレフェッチキャッシュ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI G06F 13/28 310 G06F 13/28 310L (72)発明者 エドワード シー. キング アメリカ合衆国 94536 カリフォルニ ア、フリーモント、ノリス ロード 4945 (56)参考文献 特開 昭59−225427(JP,A) 特開 昭63−228333(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 G06F 13/28 310

Claims (13)

    (57)【特許請求の範囲】
  1. 【請求項1】 第1のメモリとアドレス指定可能な高速
    動作のキャッシュメモリである第2のメモリとを有する
    メモリシステムにおいて、前記第1のメモリと前記第2
    のメモリは、前記メモリシステムに対してバスによって
    接続された複数のバス・マスタによってアクセス可能で
    あり、 読み取られるべきデータ・エレメントを予測する工程
    と、 前記複数のバス・マスタからのメモリシステムへのアク
    セス要求があった時に、前記第2のメモリにおける前記
    読み取られるべきデータ・エレメントの読み取りにかか
    る2サイクルのうち、第一サイクルにおいてプリフェッ
    チ用のデータを前記バス上に置くことによりプリフェッ
    チを行い、第二サイクルにおいて前記キャッシュメモリ
    内の前記データ・エレメントを前記バス上に置くことに
    より、前記予測されたデータ・エレメントを前記第1の
    メモリから前記第2のメモリへ転送する工程と、 を有することを特徴とするメモリシステムにおけるデー
    タ・エレメントの管理方法。
  2. 【請求項2】 前記予想する工程は、第1のバス・マス
    タからのメモリシステムへのリード要求がなされた後に
    行われる、請求項1に記載のデータ・エレメントの管理
    方法。
  3. 【請求項3】 前記第1のバス・マスタは、ホスト・プ
    ロセッサである、請求項2に記載のデータ・エレメント
    の管理方法。
  4. 【請求項4】 前記管理方法は、さらに、前記第1のバ
    ス・マスタが引き続いてデータ・リード要求を行う工程
    と、前記第1のバス・マスタからの前記リード要求に基
    づいて読み出されるデータ・エレメントを予測する工程
    と、を含む請求項2に記載のデータ・エレメントの管理
    方法。
  5. 【請求項5】 前記予測する工程は、最初のデータ・エ
    レメントへのリード要求がなされた後に、後続するデー
    タ・エレメントを識別する、請求項1に記載のデータ・
    エレメントの管理方法。
  6. 【請求項6】 前記最初のデータ・エレメントはアドレ
    ス・データを有し、前記識別するための工程は、当該デ
    ータ・エレメントのアドレス・データを格納する工程を
    含む、請求項5に記載のデータ・エレメントの管理方
    法。
  7. 【請求項7】 前記識別するための工程は、さらに、前
    記第2のメモリにおける格納スペースを表す信号を供給
    する工程を含む、請求項6に記載のデータ・エレメント
    の管理方法。
  8. 【請求項8】 前記第2のメモリは、所定数のデータ・
    エレメントを格納するサイズを有し、当該第2のメモリ
    内に格納されたデータ・エレメントが前記所定数よりも
    少ない限りにおいて前記格納スペースを表す信号が供給
    される、請求項7に記載のデータ・エレメントの管理方
    法。
  9. 【請求項9】 前記識別するための工程は、さらに、格
    納されているアドレス・データに後続するデータ・エレ
    メントのアドレス・データを加える工程を含む、請求項
    7に記載のデータ・エレメントの管理方法。
  10. 【請求項10】 前記メモリシステムはクロックに同期
    し、該クロックは複数のクロック・サイクルを規定し、
    前記転送する工程は、前記バスをモニターし、前記メモ
    リシステムが如何なるバス・マスタからもアクセスされ
    ていないオープン・サイクル中に次の後続するデータ・
    エレメントを転送する、請求項9に記載のデータ・エレ
    メントの管理方法。
  11. 【請求項11】 前記メモリシステムは、前記第2のメ
    モリから読み出される最新のアドレス・データを格納す
    るためのアドレス・ポインタと、前記第2のメモリから
    転送される最新のアドレス・データを格納するためのプ
    リフェッチ・ポインタとを含み、前記アドレス・ポイン
    タと前記プリフェッチ・ポインタの内容を比較し、前記
    プリフェッチ・ポインタの内容が前記アドレス・ポイン
    タの後のアドレスの内容と一致しない限り、第2のメモ
    リにおける格納スペースを表す信号を供給する、請求項
    1に記載のデータ・エレメントの管理方法。
  12. 【請求項12】 ホスト・プロセッサと他の少なくとも
    一つのバス・マスタのよってバスを介してアクセス可能
    なメモリシステムにおいて、 前記ホスト・プロセッサにより最初のコード・エレメン
    トへのリード要求がなされた後に、読み出されるべきコ
    ード・エレメントを予想する工程と、 前記バス・マスタからのメモリシステムへのアクセス要
    求が遅延しない時のみに、前記予測されたコード・エレ
    メントを前記メモリシステム内の低速メモリから所定数
    のデータ・エレメントを格納するサイズを有する高速キ
    ャッシュメモリへ転送する工程と、を有し、 前記予想する工程は、 前記最初のコード・エレメントのアドレス・コードを格
    納する工程と、 前記高速キャッシュメモリ内に格納されたデータ・エレ
    メントが前記所定数よりも少ない限りにおいて、前記高
    速キャッシュメモリにおける格納スペースを表す信号を
    供給する工程と、 格納されているアドレス・データに後続するデータ・エ
    レメントのアドレス・データを加える工程と、を含み、 前記メモリシステムはクロックに同期し、該クロックは
    複数のクロック・サイクルを規定し、 前記転送する工程は、前記バスをモニターし、前記メモ
    リシステムが如何なるバス・マスタからもアクセスされ
    ていないオープン・サイクル中に、前記高速キャッシュ
    メモリにおける前記読み出されるべきコード・エレメン
    トの読み取りにかかる2サイクルのうち、第一サイクル
    においてプリフェッチ用のコードを前記バス上に置くこ
    とによりプリフェッチを行い、第二サイクルにおいて前
    記キャッシュメモリ内の前記コード・エレメントを前記
    バス上に置くことにより次の後続するコード・エレメン
    を転送する、 各工程を有することを特徴とするメモリシステムにおけ
    るデータ・エレメントの管理方法。
  13. 【請求項13】 前記メモリシステムは、前記高速キャ
    ッシュメモリから読み出される最新のアドレス・データ
    を格納するためのアドレス・ポインタと、前記高速キャ
    ッシュメモリから転送される最新のアドレス・データを
    格納するためのプリフェッチ・ポインタとを含み、前記
    アドレス・ポインタと前記プリフェッチ・ポインタの内
    容を比較し、前記プリフェッチ・ポインタの内容が前記
    アドレス・ポインタの後ろのアドレスの内容と一致しな
    い限り、前記高速キャッシュメモリにおける格納スペー
    スを表す信号を供給する、請求項12に記載のデータ・
    エレメントの管理方法。
JP21662191A 1990-08-06 1991-08-02 データプレフェッチの方法およびその装置 Expired - Lifetime JP3323212B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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