JP3609552B2 - キャッシュ不可能な反復オペレーション命令を有する中央処理装置及びコンピュータ・システム - Google Patents
キャッシュ不可能な反復オペレーション命令を有する中央処理装置及びコンピュータ・システム Download PDFInfo
- Publication number
- JP3609552B2 JP3609552B2 JP23440796A JP23440796A JP3609552B2 JP 3609552 B2 JP3609552 B2 JP 3609552B2 JP 23440796 A JP23440796 A JP 23440796A JP 23440796 A JP23440796 A JP 23440796A JP 3609552 B2 JP3609552 B2 JP 3609552B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- instruction
- data
- string
- cacheable
- 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 - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30065—Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3824—Operand accessing
- G06F9/383—Operand prefetching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Description
【発明の属する技術分野】
本発明は中央処理装置(以下、CPUと称す)の分野に関し、特にCPU支援キャッシュに関する。
【0002】
【従来の技術】
高性能のコンピュータ・システムの需要が増大するにつれ、そうしたコンピュータ・システムに組み込まれたCPUの設計はますます洗練されてきている。高い性能を得るために、CPUは、システム・メモリに比べてCPUに近接するように構成された内部キャッシュ(L1)あるいは外部キャッシュ(L2)を利用する。キャッシュはCPUとシステム・メモリ間にある高速記憶装置である。通常、初めにデータあるいは命令が主メモリからアクセスされ、コピーがキャッシュに入れられる。このデータあるいは命令を再度アクセスすれば、キャッシュが主メモリよりも高速なので迅速に検索することが可能である。しかし、通常、キャッシュの記憶容量は主メモリに代表されるメモリの記憶容量よりはるかに小さい。それゆえ、キャッシュの統一技術が、データおよび命令をキャッシュ内でどのように維持するか決定するため存在する。これらの技術は「高い瞬断率」を維持すること(できるかぎり頻繁にキャッシュから命令やデータを得ること)に依存する。
【0003】
スタティック等速呼出しメモリ(以後、SRAMと称す)である高速装置から成るキャッシュは、CPUが前回使用したデータを記憶することによりCPUの性能を向上する。CPUに近接していることと、高速であることで、キャッシュはシステム・メモリからデータを得るための長いメモリ・サイクルを起動することなく、CPUがかなり速く必要なデータにアクセスすることを可能とする。
【0004】
SRAM装置を組み込むコストのため、キャッシュはサイズが限られる。今日の、通常のL1キャッシュのサイズは8Kバイトから64Kバイトであり、L2キャッシュのサイズは128Kバイトから1Mバイトである。一般的に、コンピュータ・システムやCPUは、新たなキャッシュ・データの転送がキャッシュの容量の限界を越えることになると、古いキャッシュ・データを封殺、つまり追放するように設計されている。一般的に使用されているCPUプラットフォームの1つはIntel X86(商標)グループのプロセッサであり、そのいくつかのものがL1キャッシュを有するCPUを提供する。例えば、Intel 486 プロセッサは8Kバイトの内部キャッシュL1を含む。ところが、Intel Pentium Processor(商標)は16KバイトのL1キャッシュと512KバイトのL2キャッシュを有する。
【0005】
【発明が解決しようとする課題】
しかし、X86グループのプロセッサに有効なソフトウェアの多くは、反復(REP)命令のような特定の命令のタイプを使用し、不要なデータが有用なキャッシュ・データを追い出すことになる。この有用なCPUデータの追放は、こうしたデータはCPUにより作られた長いシステム・メモリ・サイクルにより再度満たされなくてはならないので、CPUの性能を低下させる。REP命令はデータ・ブロックを操作するために使用される。この操作の目的は、メモリのある領域から他の領域へデータを移動させ、特定のパターンあるいは類似のオペレーションを有するデータ・ブロックを探索するために、あるデータ・ブロックを別のデータ・ブロックと比較させることである。REP命令の長所は、データ・ブロックが単一の命令で操作可能なことであるが、REP命令はキャッシュを追い出す傾向がある。すなわち、反復オペレーションがデータ・ブロックを移動させていると、そのデータ・ブロックもそのキャッシュ内に入ってしまい、既にそのキャッシュ内にあるデータ・ブロックを除去してしまう。多くの場合、データはキャッシュにあるが、CPUはそれをもう必要としない。しかし、CPUが必要としていたデータが除去され、そのデータは付随の低機能でメモリからアクセスしなければならない。それゆえ、反復ストリング探索命令が、有用なキャッシュ・データの損失を犠牲にしても不要なストリング・データでL1キャッシュを満たすようにしている。従って、ある命令がCPUで実行される時のCPU性能を改良する必要がある。
【0006】
【課題を解決するための手段】
本発明による中央処理装置(CPU)は、所定の幅を有するデータ・バスを介してキャッシュ装置に接続されている。このCPUは、命令タイプ・フィールドを持つCPU命令を処理するための命令処理ユニットを有する。この命令処理ユニットはキャッシュ記憶可能命令タイプあるいはキャッシュ記憶不可能命令タイプを検出する命令タイプ検出装置を有する。CPUはその命令を実行するための実行ユニットも有する。その実行ユニットは、命令タイプ検出装置により検出された命令タイプに応じて、検出した命令タイプに付随したデータがキャッシュ記憶可能かどうかを示すCPU出力信号を提供する。
【0007】
【発明の実施の形態】
図1は本発明のCPUを組み込んだコンピュータ・システムの一例を示すブロック図を示す。コンピュータ・システム100は、IBM PC(商標)あるいはそれと互換性のあるシステムのようなパーソナル・コンピュータ・システムから成る。このコンピュータ・システム100は、独立型デスクトップ・ワークステーションとして操作可能、あるいはクライアント・ステーションかサーバ・ステーションのどちらかとして操作する大型コンピュータ・ネットワークの一部としても可能である。
【0008】
このコンピュータ・システム100は2つの処理系統を有し、その一方はホスト処理系統110で、オペレーティング・システムやアプリケーションにより特定されるような、高レベルの処理機能を実行し、他方はローカル処理系統120で、このコンピュータ・システム100用の記憶媒体インターフェースや通信インターフェースを提供するような周辺機能を実行する。ホスト処理系統110とローカル処理系統120は入力/出力(I/O)拡張バス130を介して互いに接続されている。I/O拡張バス130は多くの適切なI/O拡張バス・プロトコルの1つに従い、データ・ブロックをそのI/O拡張バス130を通って転送するような、特定の機能を実行するためローカル・インターフェース制御装置がバスの制御をおこなうことを可能とする。
【0009】
ホスト処理系統110はコンピュータ・システム100の全体的な機能を制御するために単一の中央処理装置103、あるいは多重処理システムにおいては、複数の中央処理装置を有する。中央処理装置103は多数の市販されている物の1つであり、例えば、Intel社製のPentium Processor(商標)やIBM社製のPowerPC(商標)などがある。周知のように、中央処理装置103は読取り専用記憶装置(ROM)101に記憶されたファームウェア命令を実行することにより初めて操作を行う。ファームウェア命令はBasic I/O System(基本入出力ルーチン)あるいは BIOSとしても知られており、付属装置を検知するための命令およびパワーオン自己試験(POST)の命令を含む。一般的に、ファームウェア命令の完了の時に、中央処理装置103はローカル処理系統の記憶装置114からオペレーティング・システムをシステム・メモリ107にロードすることによりオペレーティング・システム命令を実行する。中央処理装置103、ROM101およびシステム・メモリ107間でのデータ転送はメモリ制御装置109により制御される。ところが、ホスト処理系統110とI/O拡張バス130間のデータの転送はI/Oブリッジ・インターフェース111により制御される。プロセッサの性能を向上させるために、中央処理装置103は内部キャッシュ(L1キャッシュ)104とオプションの外部キャッシュ(L2キャッシュ)105を有し、直前に使用したデータおよび命令を記憶し、長いシステム・メモリのアクセス・サイクルを起動する必要は回避できる。キャッシュは一般的に高速のスタティック等速呼出しメモリ(SRAM)から成り、中央処理装置103に近接した位置に配置されている。L1、L2キャッシュからのデータ転送、およびL1、L2キャッシュへのデータ転送は公知のキャッシュ制御装置106により制御される。そのキャッシュ制御装置は、キャッシュ・ラインと呼ばれる複数のデータ・バス幅でデータを記憶したりフェッチする。I/Oブリッジ・インターフェース111は、メモリ制御装置109と中央処理装置103間を外部キャッシュ制御装置106とI/O拡張バス130を介してインターフェースするように設計されている。この中央処理装置103は適切なバス・ブリッジI/Oブリッジ・インターフェース111を介してI/O拡張バス130、続いてローカル処理系統120とインターフェースを行う。
【0010】
後に詳細に説明するように、記憶装置114はローカル・インターフェース制御装置113を介してI/O拡張バス130とインターフェースを行う。図示のホスト処理系統110は単に一例を示したものであり、アプリケーションにより様々なシステム構成(単一処理あるいは多重処理)がホスト処理系統110の機能上の要求を履行実行するように設計可能である。
【0011】
ローカル処理系統120では、コンピュータ・システム100が複数のローカル・インターフェース制御装置113を有する。この制御装置113は、例えばSCSIインターフェース(小型コンピュータ・システム・インターフェース)であり、様々な周辺装置115と接続されている。このように、記憶装置、通信装置、印刷装置、ネットワーク接続装置、画像読取り装置等が加えられシステムの機能や特徴を実行する。例えば、コンピュータ・システム100は、記憶装置として安価なドライバの冗長配列(RAID)を備えた高速ワイドSCSIローカル・インターフェース制御装置を有するサーバ・ステーションとして利用することができる。
【0012】
図2には、中央処理装置(CPU)200の一例のブロック図が示されている。CPU200は、内部L1命令キャッシュ装置205からの命令を受け取る命令処理装置201を含む。L1命令キャッシュ装置205は複数の命令を記憶する。その命令は、処理のために命令フェッチ制御装置203によりフェッチされる。
【0013】
公知のように、L1命令キャッシュ装置205は、データ・バス235、アドレス・バス237、制御バス239から成るCPUバス230を通じて命令を受け取り、かつ記憶する。CPUローカル・バスは、図1に示したL2外部キャッシュおよびシステム・メモリのような外部構成要素とCPUをインターフェースを行うためのCPUインターフェース装置223と接続され、かつインターフェースを行う。データ・バス235とアドレス・バス237は、所定のビット数から成る所定の幅を有する。データおよびアドレス・バスの幅はデータ転送能力およびCPUによりアドレス可能なシステム・メモリの領域のサイズを特徴づける。従って、例えばデータ・バス235は16ビット、32ビット、あるいは64ビットのデータ幅を持ち、またアドレス・バスは16から64ビットの幅を持つ。特に命令処理装置は命令のタイプを判定し、それを1以上の実行ユニット221に適切に送る。公知のように、超スカラCPUは複数のタスクを同時に実行するための複数の実行ユニットを有する。実行ユニットは、例えば、命令によって提供されたオペランド・データについて数学的オペレーションあるいは論理オペレーションを行う。この実行ユニットは、CPUバスを通じて受け取ったデータあるいは実行ユニット217から受け取ったデータを記憶するL1命令キャッシュと同様のL1データ・キャッシュ207から必要なデータを受け取る。また、CPUは、命令300により指図された命令オペランド、一時的なデータ、インデックスを公知の方法で記憶するための、AXからEXで識別した一組の汎用レジスタを有する。命令300を受け取った時の命令処理装置は、その命令を処理して、復号化により命令タイプを判定する。命令の復号化は命令復号装置209により行われる。その命令を実行する際、実行ユニットはCPUインターフェース装置223を通じてデータ・バス235、アドレス・バス237、および/あるいは制御バス239に信号を出力する。
【0014】
図3には、命令300の例を図解したものを示す。図示の命令300は、Intel社により提供されたX86プロセッサのプラットホームに使用された複雑命令セット・コマンド(CISC)命令フォーマットと互換性のあるCISCフォーマットを有する命令である。命令300は、プレフィックス部301、実行ユニット221により行われるべき論理コマンドあるいは数学的コマンドを定義するOPコード部303、アドレス指定モード特定フィールド305、アドレス置換フィールド307、および即時データ・フィールド309を有する。公知のように、CISC命令は変化可能の長さを有し、いくつかのOPコードは命令フィールドの全てを利用しないことがある。Intel社のCISC命令フォーマットおよびプログラミングは当業界では公知となっている。
【0015】
本発明によれば、命令処理装置201はOPコードより先の命令のタイプが反復可能なタイプかどうか判定するための命令タイプ検出装置211を有する。例えば、プレフィックス部301が反復オペレーションを示していれば、この命令タイプ検出装置211はこの反復命令タイプを検出するようになっている。実行ユニット217は、この命令タイプ検出装置211の反復可能命令タイプの検出に応じて、検出した命令に組み合わされたデータがキャッシュに入れられないことを示す信号を生成する。Does Not Cache (DNC)(キャッシュ非作動)指示信号215がバス・インターフェース装置223を経由してCPUから出力される。CPU103はさらに1組のバッファ219を有しており、それらのバッファは検出された反復命令に関連したデータについてのオペレーションを行うために一時的な記憶域として使用される。望ましい実施例では、1組のバッファ219は2個のバッファから成り、各々が2つのキャッシュ・ライン幅を持つ。すなわち、このバッファ組219の各バッファの幅はキャッシュ・ラインのサイズの2倍に等しい。このバッファのサイズは反復移動命令による全てのデータが適切に記憶されることを保証する。
【0016】
DNC信号は、キャッシュ可能な(メモリにマップされないI/O等)データあるいは命令のフェッチ操作あるいは記憶操作と共に用いられ、以下に示す方法でデータを取り扱うための全てのキャッシュを単純に示している。
【0017】
(プログラム・リスト中の英文はコマンドなどを表す記号であり、翻訳できない)
IFデータをプロセッサ内にロードすべき AND DNC信号がセットされている
THEN
IFデータがキャッシュ内に現在ある
THENプロセッサにそのデータを含むキャッシュ・ラインをgive
ELSEデータがキャッシュ内に現在ない
DO
データのキャッシュ・ラインをfetch
プロセッサにそのデータを含んだキャッシュ・ラインをgive
キャッシュにキャッシュ・ラインをstoreしない
END
IFプロセッサからデータを記憶すべき AND DNC信号がセットされている
THEN
IFデータがキャッシュ内に現在ある
THENプロセッサからのデータでキャッシュをupdate
ELSEデータがキャッシュ内に現在ない
DO
データを含むキャッシュ・ラインをoutput
キャッシュにキャッシュ・ラインをstoreせず、またキャッシュ・メモリをupdateすることもせず
END
IF DNC信号がセットされてない
THENデータはREP命令と関連してない
【0018】
反復(REP)命令は命令の1クラスであり、その命令は所定回数だけ自動的に反復させられる。命令を再実行する回数は、その命令がCPU内の特定の汎用レジスタ(GPR)の内容により実行させられる時に決定する。この汎用レジスタは計数レジスタ(CREG)と称される。
【0019】
反復可能な命令は以下に示す。
【0020】
比較ストリング(CMPS)
ソース・レジスタにより指摘されたメモリ・アドレスでスタートするストリングと宛先レジスタにより指摘されたメモリ・アドレスでスタートするストリングを比較する。命令の特定のOPコードに応じて、比較はバイト、ワード、あるいはダブルワードを基本に行うことができる。REPオペレーションにたいし、ソースおよび宛先アドレスが増加され、次に続くバイト、ワード、あるいはダブルワードが比較される。このオペレーションはCREGにより指定された回数繰り返す。
【0021】
スキャン・ストリング(SCAS)
ソース・レジスタの内容と宛先レジスタにより指摘されたメモリ・アドレスでスタートするストリングを比較する。命令の特定のOPコードに応じて、比較はバイト、ワード、あるいはダブルワードを基本に行うことができる。REPオペレーションにたいし、宛先アドレスが増加され、次に続くバイト、ワード、あるいはダブルワードが比較される。このオペレーションはCREGにより指定された回数繰り返す。
【0022】
ロード・ストリング(LODS)
ソース・レジスタにより指摘されたメモリ・アドレスでスタートするストリングで宛先レジスタをロードする。命令の特定のOPコードに応じて、ロードはバイト、ワード、あるいはダブルワードを基本に行うことができる。REPオペレーションにたいし、ソース・アドレスが増加され、次に続くバイト、ワード、あるいはダブルワードがロードされる。このオペレーションはCREGにより指定された回数繰り返す。
【0023】
記憶ストリング(STDS)
宛先レジスタにより指摘されたメモリ・アドレスでソース・レジスタの内容を記憶させる。命令の特定のOPコードに応じて、記憶はバイト、ワード、あるいはダブルワードを基本に行うことができる。REPオペレーションにたいし、宛先アドレスが増加され、ソース・レジスタの内容がメモリの次に続くバイト、ワード、あるいはダブルワード・アドレスに記憶される。このオペレーションはCREGにより指定された回数繰り返す。
【0024】
OUTストリング(OUTS)
宛先レジスタにより指摘されたI/Oポート・アドレスに、ソース・レジスタにより指摘されたメモリ位置の内容を記憶させる。命令の特定のOPコードに応じて、記憶はバイト、ワード、あるいはダブルワードを基本に行うことができる。REPオペレーションにたいし、ソース・アドレスが増加され、メモリの次に続くバイト、ワード、あるいはダブルワードが宛先レジスタにより指摘されたI/Oポート・アドレスに記憶される。このオペレーションはCREGにより指定された回数繰り返す。
【0025】
INストリング(INS)
ソース・レジスタにより指摘されたI/Oポート・アドレスからのデータを宛先レジスタにより指摘されたメモリ位置にロードさせる。命令の特定のOPコードに応じて、ロードはバイト、ワード、あるいはダブルワードを基本に行うことができる。REPオペレーションにたいし、宛先アドレスが増加される。このオペレーションはCREGにより指定された回数繰り返す。
【0026】
移動ストリング(MOVS)
ソースの内容により指摘されたメモリ位置のデータを宛先位置により指摘されたメモリ位置に移動させる。命令の特定のOPコードに応じて、記憶はバイト、ワード、あるいはダブルワードを基本に行うことができる。REPオペレーションにたいし、ソースおよび宛先アドレスが増加され、メモリの次に続くバイト、ワード、あるいはダブルワードが移動させられる。このオペレーションはCREGにより指定された回数繰り返す。
【0027】
上記定義のREP命令の各々に対する本発明の擬似コードの履行実行を説明する。
まず第一に、以下のオペレーションの全てに対し、反復すべき命令の実行の前に実行すべき反復オペレーションの回数をCREGにロードさせておく。以下のオペレーション全てに対し、2つのバッファ219はAバッファとBバッファと称する。
【0028】
REP CMPS
実行ユニットのバッファをCHECK。
IF必要なデータが現在これらバッファにある
THEN
キャッシュをアクセスする必要なし。
ELSE
DO
実行ユニットによりデータ読取り要求をISSUE。
DNC信号がSETされる。
データのキャッシュ・ライン量がAバッファにLOADされる
WHENロードが完了する、
DNC信号がRESETされる。
第2データ読取り要求が実行ユニットによりISSUEされる。
DNC信号がSETされる。
データのキャッシュ・ライン量がBバッファにLOADされる。
WHENロードが完了する、
DNC信号がRESETされる。
END
比較オペレーションがEXECUTEされる。
CREGをDECREMENTし、かつIFゼロでない、オペレーションをREPEAT。
【0029】
REP SCAS
実行ユニットのバッファをCHECK。
IF要求のデータが現在バッファにある
THENキャッシュにアクセスする必要なし
ELSE
DO
データ読取り要求が実行ユニットによりISSUEされる。
DNC信号がSETされる。
データのキャッシュ・ライン量がAバッファにLOADされる。
WHENロードが完了する、
THEN DNC信号がRESETされる。
END
スキャン・オペレーションがEXECUTEされる。
CREGをDECREMENTし、かつIFゼロでない、オペレーションをREPEAT。
【0030】
REP LODS
実行ユニットのAバッファをCHECK。
IF必要なデータが現在このバッファにある
THENキャッシュをアクセスする必要なし。
ELSE
DO
データ読取り要求が実行ユニットによりISSUEされる。
DNC信号がSETされる。
データのキャッシュ・ライン量がAバッファにLOADされる。
WHENロードが完了する
DNC信号がRESETされる。
END
ロード・オペレーションがEXECUTEされる。
CREGをDECREMENTし、かつIFゼロでない、オペレーションをREPEAT。
【0031】
REP STDS
データ記憶が実行ユニットによりISSUEされる。
DNC信号がSETされる。
WHEN記憶が完了する、
DNC信号がRESETされる。
CREGをDECREMENTし、かつIFゼロでない、オペレーションをREPEAT。
【0032】
REP OUTS
IF要求のデータがAバッファに現在ない
THEN
DO
データ読取り要求が実行ユニットによりISSUEされる。
DNC信号がSETされる。
WHEN記憶が完了する
DNC信号がRESETされる。
END
ポートにデータをSEND
CREGをDECREMENTし、かつIFゼロでない、オペレーションをREPEAT。
【0033】
REP INS
IFこれまでにREPオペレーションの中で初めて、
THEN
DO
実行ユニットによりデータ要求がISSUEされた
DNC信号がSETされる。
データのキャッシュ・ライン量をAバッファにRECEIVE
WHENロードが完了
DNC信号をRESET
END
ELSEこれがREPオペレーションの中で初めてではない
THEN
DO
IF要求のデータ位置がAバッファ内に現在ない
THEN
DO
Aバッファのデータ記憶をISSUE
DNC信号をSET
WHENデータ記憶が完了した
DNC信号をRESET
実行ユニットによりデータ要求がISSUEされる。
DNC信号がSETされる。
データのキャッシュ・ライン量をAバッファにRECEIVE
WHENロードが完了
DNC信号をRESET
END
AバッファからBバッファへデータをMOVE
END
CREGをDECREMENTし、かつIFゼロでない、オペレーションをREPEAT
WHEN CREGがゼロに等しい、REP INがその時点でCOMPLETEされる
Aバッファのデータ記憶が実行ユニットによりISSUEされる。
同時に、DNC信号がSETされる。
WHENその記憶が完了する、DNC信号がRESETされる。
ポートからそのデータをAバッファにLOAD。
【0034】
REP MOVS
実行ユニットのAバッファをCHECK。
IF要求のデータが現在そのバッファにある
THENキャッシュにアクセスする必要はない。
ELSE
DO
データ要求が実行ユニットによりISSUEされる。
DNC信号がSETされる。
データのキャッシュ・ライン量をAバッファにRECEIVE
WHENロードが完了、
DNC信号をRESET
実行ユニットのBバッファをCHECK。
END
IF要求の記憶位置が現在Bバッファにある
THEN
DO
キャッシュにアクセスする必要はない。
AバッファからBバッファへデータをMOVE
END
ELSE
IFこれがREPオペレーションの中で初めて、
THEN
DO
データ要求が実行ユニットによりISSUEされる。
DNC信号がSETされる。
データのキャッシュ・ライン量をAバッファにRECEIVE
WHENロードが完了
THEN DNC信号をRESET
END
ELSEこれがREPオペレーションの中で初めてではない
DO
Bバッファのデータ記憶をISSUE
DNC信号がSETされる。
WHENデータ記憶が完了
DNC信号をRESET
実行ユニットによりデータ要求がISSUEされる。
DNC信号がSETされる。
データのキャッシュ・ライン量をBバッファにRECEIVE
WHENロードが完了
THEN
DO
DNC信号をRESET
AバッファからBバッファへデータをMOVE
END
END
CREGをDECREMENT
IFゼロでない、オペレーションをREPEAT
WHEN CREGがゼロに等しい
REP MOVSがその時点でCOMPLETEされる。
Bバッファのデータ記憶が実行ユニットによりISSUEされる。
同時に、DNC信号がSETされる。
WHENその記憶が完了する、DNC信号がRESETされる。
【0035】
本発明は、反復命令をキャッシュ(あるいは多重レベルのCPUキャッシュを有するシステム用のキャッシュ)への影響から保護することによりキャッシュの反復命令時の追放の問題を無くすことが分かる。DNC信号は、データが転送される時にそのデータがキャッシュ可能であるように処理すべき際に固有のものである。データは一回に一本のキャッシュ・ラインで転送される。しかしDNC信号がセットされると、キャッシュはシステム内のデータの一貫性を維持するように矛盾なくデータをそのキャッシュにロードあるいは記憶しなくなる。
【0036】
上記のように、本発明はDNC(キャッシュ非作動)と称する新しい信号を使用することによりこれを達成する。DNCはキャッシュにたいするインディケータであり、この要求に関連したデータをキャッシュに入れる必要がない時を除いて、この基準は通常のキャッシュ・アクセスとして取り扱われるべきである。これはキャッシュ不可能な要求とは異なる。キャッシュ不可能なデータとはキャッシュに入れないデータである。メモリ・マップした入出力がこうしたデータの一例である。キャッシュ不可能データは通常、このシステムにより別に扱われる。通常、キャッシュ不可能データがフェッチされると、それはキャッシュ・ラインとしてフェッチされない。また、キャッシュ不可能データは通常、キャッシュ探索に関するものとは別に扱われる。本発明によれば、反復命令の全てのタイプはキャッシュ不可能として示されている。つまり、この命令のタイプに関連したデータはキャッシュ不可能である。この指示は反復移動命令において生じる価値のあるキャッシュ・データを放り出し、使用しないデータと入れ替わることを避けるために作られた。代わりに、一組のバッファ219を反復コマンドのタイプに関連したデータを記憶するための仮記憶スペースとして使用する。このように、各バッファはCPUバスのデータ幅の倍数に等しい幅を有するように考えられている。
【0037】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0038】
(1)所定のデータ・バス幅を有するデータ・バスを介して中央処理装置に接続したキャッシュ装置を有するコンピュータ・システムの中央処理装置(CPU)において、命令のタイプを判定するため、該命令を復号化する命令復号装置を有し、CPU命令を処理する命令処理装置と、キャッシュ可能命令タイプあるいはキャッシュ不可能命令タイプを検出する命令タイプ検出装置と、前記命令を実行する実行ユニットとを有し、該実行ユニットは前記命令タイプ検出装置に反応し、検出した命令タイプに関連したデータがキャッシュ可能かどうか示すキャッシュ能力インディケータ信号を出力することを特徴とする中央処理装置。
(2)前記命令タイプ検出装置は反復タイプ命令を検出し、前記実行ユニットは該反復タイプ命令の検出に反応し、キャッシュ不可能である反復タイプ命令に関連したデータを示す前記キャッシュ能力インディケータ信号を出力することを特徴とする上記(1)に記載の中央処理装置。
(3)前記反復命令タイプに関連したデータを記憶するための記憶バッファをさらに有することを特徴とする上記(2)に記載の中央処理装置。
(4)前記記憶バッファは2つのレジスタを有することを特徴とする上記(3)に記載の中央処理装置。
(5)前記レジスタはデータ・バス幅の整数倍にほぼ匹敵するレジスタ幅を有することを特徴とする上記(4)に記載の中央処理装置。
(6)前記レジスタ幅はデータ・バス幅の2倍にほぼ等しいことを特徴とする上記(5)に記載の中央処理装置。
(7)さらに内部キャッシュ制御装置を有し、該制御装置は前記キャッシュ能力インディケータ信号に反応し、前記内部キャッシュへの命令タイプに関連したデータのキャッシュ能力を判定することを特徴とする、上記(1)に記載の中央処理装置。
(8)A.システム・メモリと、B.オプションの外部キャッシュと、C.前記システム・メモリを制御するメモリ制御装置と、D.命令を処理する中央処理装置とを有し、前記中央処理装置は、a.命令タイプを判定する前記命令を復号化する命令復号装置と、b.キャッシュ可能命令タイプあるいはキャッシュ不可能命令タイプを検出する命令タイプ検出装置と、c.前記命令タイプ検出装置に反応し、検出した命令タイプに関連したデータがキャッシュ可能かどうかを示すキャッシュ能力インディケータ信号を出力する、前記命令を実行する実行ユニットとを有する、ことを特徴とするコンピュータ・システム。
(9)前記命令タイプ検出装置は反復タイプ命令を検出し、前記実行ユニットは該反復タイプ命令の検出に反応し、キャッシュ可能ではない反復タイプ命令に関連したデータを示す前記キャッシュ能力インディケータ信号を出力することを特徴とする、上記(8)に記載のコンピュータ・システム。
(10)前記反復命令タイプに関連したデータを記憶するための記憶バッファを、さらに有することを特徴とする上記(9)に記載のコンピュータ・システム。
(11)前記記憶バッファは2つのレジスタを有することを特徴とする上記(10)に記載のコンピュータ・システム。
(12)前記レジスタはデータ・バス幅の整数倍にほぼ匹敵するレジスタ幅を有することを特徴とする上記(11)に記載のコンピュータ・システム。
(13)前記レジスタ幅はデータ・バス幅の2倍にほぼ等しいことを特徴とする上記(12)に記載のコンピュータ・システム。
(14)さらに内部キャッシュ制御装置を有し、該制御装置は前記キャッシュ能力インディケータ信号に反応し、前記内部キャッシュへの命令タイプに関連したデータのキャッシュ能力を判定することを特徴とする、上記(8)に記載のコンピュータ・システム。
(15)前記メモリ制御装置は前記キャッシュ能力インディケータ信号に反応し、前記内部キャッシュへの命令タイプに関連したデータのキャッシュ能力を判定することを特徴とする、上記(8)に記載のコンピュータ・システム。
【0039】
【発明の効果】
本発明は、反復命令をキャッシュへの影響から保護することによりキャッシュの反復命令時の必要な記憶データ追放の問題を無くすことができる。
【図面の簡単な説明】
【図1】本発明のCPUを組み込んだコンピュータ・システムの一例を示すブロック図である。
【図2】本発明によるCPUのブロック図である。
【図3】図1のCPUにより実行される命令フォーマットの図である。
【符号の説明】
100 コンピュータ・システム
101 読取り専用記憶装置(ROM)
103 中央処理装置
104 L1キャッシュ
105 L2キャッシュ
106 キャッシュ制御装置
107 システム・メモリ(ホスト・メモリ)
109 メモリ制御装置
110 ホスト処理系統
111 I/Oブリッジ・インターフェース
113 ローカル・インターフェース制御装置
114 記憶装置
115 ローカル装置
120 ローカル処理系統
130 入力/出力(I/O)拡張バス
200 中央処理装置
201 命令処理装置
203 命令フェッチ
205 L1命令キャッシュ装置
207 L1データ・キャッシュ
209 命令復号装置
211 命令タイプ検出装置
217 実行ユニット
219 バッファ
223 CPUバス・インターフェース装置
230 CPUバス
235 データ・バス
237 アドレス・バス
239 制御バス
300 命令
301 プレフィックス・フィールド
303 OPコード・フィールド
305 アドレス指定モード特定フィールド
307 アドレス置換フィールド
309 即時データ・フィールド
Claims (8)
- 命令とその命令に関連したデータとを記憶するキャッシュと、
キャッシュ記憶可能な反復命令を検出する命令タイプ検出装置と、
キャッシュ記憶可能な反復命令を前記命令タイプ検出装置が検出したのに応じて、計数レジスタの内容により決定する所定回数だけキャッシュ非動作指示信号を出力する実行ユニットと、
少なくとも1つのキャッシュ・ライン幅を記憶可能な、少なくとも1つの記憶バッファと、
を備え、
前記キャッシュ非動作指示信号が出力された場合に、
前記実行ユニットが、前記キャッシュ記憶可能な反復命令に関連したデータを、前記キャッシュに記憶させずに前記記憶バッファに記憶させて使用する、ことを特徴とする処理装置。 - 前記キャッシュ記憶可能な反復命令は、
比較ストリング、スキャン・ストリング、ロード・ストリング、記憶ストリング、OUTストリング、INストリング、移動ストリング、
の中から選ばれた少なくとも1つの命令タイプを含む、ことを特徴とする請求項1に記載の処理装置。 - 前記記憶バッファは2つのレジスタを有する、ことを特徴とする請求項1または2に記載の処理装置。
- 前記レジスタは、キャッシュ・ライン幅の2倍のレジスタ幅を有することを特徴とする請求項3に記載の処理装置。
- 命令とその命令に関連したデータとを記憶する第1キャッシュおよび第2キャッシュと、
キャッシュ記憶可能な反復命令を検出する命令タイプ検出装置と、
キャッシュ記憶可能な反復命令を前記命令タイプ検出装置が検出したのに応じて、計数レジスタの内容により決定する所定回数だけキャッシュ非動作指示信号を出力する実行ユニットと、
少なくとも1つのキャッシュ・ライン幅を記憶可能な、少なくとも1つの記憶バッファと、
前記キャッシュ非動作指示信号を受け取り、命令及びその命令に関連したデータの前記第2キャッシュへの記憶を制御するキャッシュ制御部と、
を備え、
前記キャッシュ非動作指示信号が出力された場合に、
前記実行ユニットが、前記キャッシュ記憶可能な反復命令に関連したデータを、前記第2キャッシュに記憶させずに前記記憶バッファに記憶させて使用する、ことを特徴とする情報処理システム。 - 前記キャッシュ記憶可能な反復命令は、
比較ストリング、スキャン・ストリング、ロード・ストリング、記憶ストリング、OUTストリング、INストリング、移動ストリング、
の中から選ばれた少なくとも1つの命令タイプを含む、ことを特徴とする請求項5に記載の情報処理システム。 - 前記記憶バッファは2つのレジスタを有する、ことを特徴とする請求項5または6に記載の情報処理システム。
- 前記レジスタは、キャッシュ・ライン幅の2倍のレジスタ幅を有することを特徴とする請求項7に記載の情報処理システム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/572,233 US5745728A (en) | 1995-12-13 | 1995-12-13 | Process or renders repeat operation instructions non-cacheable |
| US08/572233 | 1995-12-13 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH09179782A JPH09179782A (ja) | 1997-07-11 |
| JP3609552B2 true JP3609552B2 (ja) | 2005-01-12 |
Family
ID=24286921
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP23440796A Expired - Fee Related JP3609552B2 (ja) | 1995-12-13 | 1996-09-04 | キャッシュ不可能な反復オペレーション命令を有する中央処理装置及びコンピュータ・システム |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5745728A (ja) |
| EP (1) | EP0779581B1 (ja) |
| JP (1) | JP3609552B2 (ja) |
| KR (1) | KR100266886B1 (ja) |
| DE (1) | DE69611510T2 (ja) |
Families Citing this family (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6173368B1 (en) * | 1995-12-18 | 2001-01-09 | Texas Instruments Incorporated | Class categorized storage circuit for storing non-cacheable data until receipt of a corresponding terminate signal |
| US5905857A (en) * | 1996-12-03 | 1999-05-18 | Bull Hn Information Systems Inc. | Safestore procedure for efficient recovery following a fault during execution of an iterative execution instruction |
| US6041351A (en) * | 1997-04-17 | 2000-03-21 | Newmoon.Com | Network traffic by instruction packet size reduction |
| US6151662A (en) * | 1997-12-02 | 2000-11-21 | Advanced Micro Devices, Inc. | Data transaction typing for improved caching and prefetching characteristics |
| US6275904B1 (en) * | 1998-03-31 | 2001-08-14 | Intel Corporation | Cache pollution avoidance instructions |
| US6272599B1 (en) * | 1998-10-30 | 2001-08-07 | Lucent Technologies Inc. | Cache structure and method for improving worst case execution time |
| US6877025B2 (en) * | 2000-12-18 | 2005-04-05 | International Business Machines Corp. | Integrated JSP and command cache for web applications with dynamic content |
| US6823360B2 (en) * | 2000-12-18 | 2004-11-23 | International Business Machines Corp. | Cofetching in a command cache |
| US20020111992A1 (en) * | 2000-12-18 | 2002-08-15 | Copeland George P. | JSP composition in a cache for web applications with dynamic content |
| US6807606B2 (en) | 2000-12-18 | 2004-10-19 | International Business Machines Corp. | Distributed execution coordination for web caching with dynamic content |
| US7702800B2 (en) | 2000-12-18 | 2010-04-20 | International Business Machines Corporation | Detecting and handling affinity breaks in web applications |
| JP4822598B2 (ja) * | 2001-03-21 | 2011-11-24 | ルネサスエレクトロニクス株式会社 | キャッシュメモリ装置およびそれを含むデータ処理装置 |
| US6954826B2 (en) * | 2003-05-21 | 2005-10-11 | Freescale Semiconductor, Inc. | Read access and storage circuitry read allocation applicable to a cache |
| US7930484B2 (en) * | 2005-02-07 | 2011-04-19 | Advanced Micro Devices, Inc. | System for restricted cache access during data transfers and method thereof |
| US8230175B1 (en) * | 2005-08-09 | 2012-07-24 | Hewlett-Packard Development Company, L.P. | Data throughput optimization of a storage device having sequential data access |
| JP5025726B2 (ja) | 2006-06-06 | 2012-09-12 | クック・インコーポレイテッド | 耐破砕区域を備えたステント |
| US8606998B2 (en) | 2006-08-24 | 2013-12-10 | Advanced Micro Devices, Inc. | System and method for instruction-based cache allocation policies |
| WO2008057557A2 (en) * | 2006-11-06 | 2008-05-15 | Rambus Inc. | Memory system supporting nonvolatile physical memory |
| JP2009093559A (ja) * | 2007-10-11 | 2009-04-30 | Nec Corp | プロセッサ、情報処理装置、プロセッサのキャッシュ制御方法 |
| WO2012137339A1 (ja) | 2011-04-07 | 2012-10-11 | 富士通株式会社 | 情報処理装置、並列計算機システムおよび演算処理装置の制御方法 |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4437149A (en) * | 1980-11-17 | 1984-03-13 | International Business Machines Corporation | Cache memory architecture with decoding |
| JPH0630075B2 (ja) * | 1984-08-31 | 1994-04-20 | 株式会社日立製作所 | キャッシュメモリを有するデータ処理装置 |
| US5058006A (en) * | 1988-06-27 | 1991-10-15 | Digital Equipment Corporation | Method and apparatus for filtering invalidate requests |
| JP2679363B2 (ja) * | 1989-06-20 | 1997-11-19 | 日本電気株式会社 | マイクロプロセッサ |
| EP0466550B1 (en) * | 1990-06-29 | 1998-11-18 | Digital Equipment Corporation | Conversion of internal processor register commands to I/O space address |
| CA2045756C (en) * | 1990-06-29 | 1996-08-20 | Gregg Bouchard | Combined queue for invalidates and return data in multiprocessor system |
| US5226138A (en) * | 1990-11-27 | 1993-07-06 | Sun Microsystems, Inc. | Method for selectively transferring data instructions to a cache memory |
| US5301295A (en) * | 1991-05-22 | 1994-04-05 | Analog Devices, Inc. | Data processor apparatus and method with selective caching of instructions |
-
1995
- 1995-12-13 US US08/572,233 patent/US5745728A/en not_active Expired - Lifetime
-
1996
- 1996-09-04 JP JP23440796A patent/JP3609552B2/ja not_active Expired - Fee Related
- 1996-10-05 KR KR1019960044102A patent/KR100266886B1/ko not_active Expired - Fee Related
- 1996-11-08 DE DE69611510T patent/DE69611510T2/de not_active Expired - Lifetime
- 1996-11-08 EP EP96308106A patent/EP0779581B1/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| US5745728A (en) | 1998-04-28 |
| KR100266886B1 (ko) | 2000-09-15 |
| DE69611510D1 (de) | 2001-02-15 |
| JPH09179782A (ja) | 1997-07-11 |
| EP0779581A3 (en) | 1997-07-02 |
| DE69611510T2 (de) | 2001-06-13 |
| EP0779581A2 (en) | 1997-06-18 |
| EP0779581B1 (en) | 2001-01-10 |
| KR970049498A (ko) | 1997-07-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3609552B2 (ja) | キャッシュ不可能な反復オペレーション命令を有する中央処理装置及びコンピュータ・システム | |
| EP0803817B1 (en) | A computer system having cache prefetching capability based on CPU request types | |
| US6145049A (en) | Method and apparatus for providing fast switching between floating point and multimedia instructions using any combination of a first register file set and a second register file set | |
| JP3285644B2 (ja) | キャッシュメモリを有するデータプロセッサ | |
| US10042814B2 (en) | System and method for using a mask register to track progress of gathering and scattering elements between data registers and memory | |
| US5600801A (en) | Multiple function interface device for option card | |
| US6456891B1 (en) | System and method for transparent handling of extended register states | |
| US6230259B1 (en) | Transparent extended state save | |
| EP1363189A2 (en) | Apparatus and method for implementing a rom patch using a lockable cache | |
| US5671231A (en) | Method and apparatus for performing cache snoop testing on a cache system | |
| US20130103915A1 (en) | Secure memory access system and method | |
| US6938127B2 (en) | Reconfiguring memory to reduce boot time | |
| JPH0997230A (ja) | データ転送方法及びシステム | |
| US6272453B1 (en) | Concurrent legacy and native code execution techniques | |
| JP2737820B2 (ja) | メモリアクセス方法およびシステム | |
| US5161219A (en) | Computer system with input/output cache | |
| US5361389A (en) | Apparatus and method for emulation routine instruction issue | |
| KR100373576B1 (ko) | 변환 장치의 엔트리를 무효로 하는 시스템 및 방법 | |
| JP7349437B2 (ja) | メモリ・アクセスにおける保護タグ・チェックの制御 | |
| EP0156307A2 (en) | Pipelined processor having dual cache memories | |
| US6336160B1 (en) | Method and system for dividing a computer processor register into sectors and storing frequently used values therein | |
| KR20050028752A (ko) | 플래쉬 메모리를 이용한 시스템 부팅 장치 및 그 방법 | |
| JP2535086B2 (ja) | リング削減ロジック装置 | |
| JPH10293684A (ja) | コンピュータシステムおよびその立ち上げ制御方法 | |
| EP0915416B1 (en) | System for allowing a two word instruction to be executed in a single cycle and method therefor |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20041012 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041014 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071022 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081022 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081022 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091022 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091022 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101022 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101022 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111022 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121022 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121022 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131022 Year of fee payment: 9 |
|
| LAPS | Cancellation because of no payment of annual fees |