JP2949857B2 - パイプライン型データプロセッサにおける命令キューを満たす方法 - Google Patents

パイプライン型データプロセッサにおける命令キューを満たす方法

Info

Publication number
JP2949857B2
JP2949857B2 JP2418553A JP41855390A JP2949857B2 JP 2949857 B2 JP2949857 B2 JP 2949857B2 JP 2418553 A JP2418553 A JP 2418553A JP 41855390 A JP41855390 A JP 41855390A JP 2949857 B2 JP2949857 B2 JP 2949857B2
Authority
JP
Japan
Prior art keywords
instruction
queue
pipeline
predetermined number
words
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
Application number
JP2418553A
Other languages
English (en)
Other versions
JPH05324317A (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.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Publication of JPH05324317A publication Critical patent/JPH05324317A/ja
Application granted granted Critical
Publication of JP2949857B2 publication Critical patent/JP2949857B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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, look ahead
    • 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, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L11/00Machines for cleaning floors, carpets, furniture, walls, or wall coverings
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • 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, look ahead
    • G06F9/3802Instruction prefetching
    • 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, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3816Instruction alignment, e.g. cache line crossing

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般的にデータ処理装
置に関する。さらに詳しくは命令パイプラインを有する
データ処理装置に関する。
【0002】
【従来の技術】今日の高性能データ処理装置は、各命令
が一連の単純な機械操作から構成されている、複雑な組
合せの命令を実行する。特にこれらのデータ処理装置は
長さの可変する(複数の機械操作)命令と、実行時間
(命令毎に複数のクロック・サイクル)とを有してい
る。これらの可変長命令は、さまざまなアドレス・モー
ドで動作する多くの命令によってなされるメモリ・アク
セスを容易にする。
【0003】従来のパイプラインを持たないデータ処理
装置では、各命令は、次の命令が始まる前に最後まで実
行される。全体の性能を高めながら、機械操作の効率を
向上させるためには、従来のデータ処理装置設計にパイ
プラインを有するデータ処理装置が実現された。これら
のパイプラインを有するデータ処理装置は、継続する命
令のサブ操作を重ね合わせることにより、いくつかの命
令を平行に実行することができる。パイプラインを有す
るデータ処理装置が1つの新しい命令を取り出し、クロ
ック・サイクル毎に他の命令の実行を完了させることが
最適である。このため、複雑な命令に必要な実際の実行
時間は変化するが、全体的な実行速度はクロック・サイ
クル毎の1個の命令に近づくことになる。その結果、パ
イプラインを有する処理装置を用いることにより、デー
タ処理装置の全体的な性能が著しく向上する。
【0004】1個のサイクル命令実行を行うためには、
命令先取り(プリフェッチ)ユニット(IPU:Ins
truction Prefetch Unit)は、
クロック・サイクル毎に必要な数の命令を命令パイプラ
イン(IP:Instruction Pipelin
e)にロードすることのできる命令の流れを保たなけれ
ばならない。もしIPUが、必要な命令の流れを維持す
ることができなければ、そしてIPに必要な数の命令語
がロードされなければ、パイプラインの機能停止が起こ
る。従来の技術では、一時的に複数の命令(たとえば4
ないし8個の命令)を記憶する命令キュー(所定数のバ
ッファ)を持つIPUもある。命令キューは、ディスパ
ッチャとして機能し、IPに対して一連の命令を発す
る。プログラム実行中は、命令キューのバッファは、定
期的に空にされる。そのため、バッファを再び満たす機
構が必要である。通常は、追加の論理回路が先取り命令
キューに付加されて、その中に記憶されている各命令か
ら必要な情報を引き出し、命令キューが空になるとそれ
を再び満たす。このような追加の論理回路を導入するこ
とにより、チップ・エリアの有効利用が図られる。
【0005】
【発明が解決しようとする課題】再び満たすための機構
は、任意の組合せの1,2または3語の命令をクロック
・サイクル毎にIPにロードできるように、命令の流れ
を維持しなければならない。そのうえ、再び満たすため
の機構は、フロー変化命令(たとえば分岐点など)に対
処して、命令キューが必要な命令の流れによって満たさ
れているようにしなければならない。
【0006】従って、本発明の目的は、改良されたデー
タ処理装置先取り機構を提供することである。
【0007】本発明の他の目的は、格納装置内の命令の
もっとも早い廃棄点を検出することのできる、改良され
たデータ処理装置先取り機構を提供することである。
【0008】本発明のさらに他の目的は、命令順序決定
装置によって、命令の使用率に基づき、命令キューを再
び満たすことのできる、改良されたデータ処理装置先取
り機構を提供することである。
【0009】本発明の上記およびその他の目的は、以下
に説明する方法を行うことにより達成される。その方法
は、メモリから命令シーケンスを先取りする先取りコン
トローラを有するデータ・プロセッサにおいて、パイプ
ライン命令ユニットが調べる命令語数に基づき命令キュ
ーを満たす方法であって、各命令は1以上の命令語から
成り、先取りコントローラはメモリに結合され命令キュ
ーに所定数の命令語をロードし、命令キューは所定数の
バッファを有し、バッファは所定の命令語境界を有しメ
モリから取り出された整数個の命令語を格納し、当該方
法は:マシン・サイクルの所定の第1期間において先取
りコントローラ内のキュー・ポインタ(queue p
ointer)により命令キューに与えられる第1制御
信号に応答して、命令シーケンスに含まれる1以上の命
令語から成る第1命令をパイプライン命令ユニットにロ
ードする段階;パイプライン命令ユニットにおいて第1
命令をデコードして第1命令の命令語数を調べる段階で
あって、命令語数は、第1命令がロードされた後パイプ
ライン命令ユニットが調べるパイプ移動量の値に対応す
る、段階;パイプライン命令ユニットにより、マシンサ
イクルの所定の第2期間において第2制御信号を先取り
コントローラに与える段階であって、第2制御信号は第
1命令の命令語数を指示する、段階;先取りコントロー
ラが第2制御信号を受信したことに応答して、キュー・
ポインタの現在値をパイプライン命令ユニットのパイプ
移動量の値に対応する量だけインクリメントする段階で
あって、キュー・ポインタはパイプライン命令ユニット
にロードされる第2命令を指示し、第2命令は命令キュ
ーに格納される1以上の命令語から成る、段階;および
メモリから次の命令シーケンスを取り出して命令キュー
を満たす取出段階から構成され、取出段階は:キュー・
ポインタの現在値と第1命令がロードされた後パイプラ
イン命令ユニットが調べるパイプ移動量とを結合したも
のが、命令キュー内の所定数のバッファ内の1つにおい
て、格納された命令シーケンスにおける最後の命令語を
示す場合又は命令語境界を越えたことを示す場合にメモ
リから次の命令シーケンスを取り出して命令キューを満
たす段階から構成される。
【0010】
【実施例】図1は、本発明の好適な実施例による、デー
タ処理装置10の構造を図解したブロック図である。デ
ータ処理装置10は、整数ユニット12,命令メモリユ
ニット14,データ・メモリ・ユニット16.バス・イ
ンターフェース・ユニット(BIU:Bus Inte
rface Unit)18,システム・バス20.メ
モリ22.内部命令データバス24,内部ワードデータ
バス26およびバッファ28,30とから構成されてい
る。本発明の好適な実施例においては、整数ユニット1
2は、命令ユニット32と命令先取りユニット(IP
U)34とから構成されている。命令メモリ・ユニット
14は、命令キャッシュコントローラ36.命令キャッ
シュ38および命令変換ルックアサイド・バッファ(I
TLB:Instruction Translati
on Look−aside Buffer)40とか
ら構成されている。同様に、データ・メモリ・ユニット
16は、データ・キャッシュ・コントローラ42.デー
タ変換ルックアサイド・バッファ(DTLB:Data
Translation Look−asideBu
ffer)44およびデータ・キャッシュ46とから構
成されている。命令キャッシュ・コントローラ36は、
ITLB40と、命令キャッシュ38とを管理する。同
様に、データ・メモリ・コントローラ22はDTLB4
4とデータ・キャッシュ46とを管理する。好適な実施
例においては、命令キャッシュ38とデータ・キャッシ
ュ46とは、4種セット連想キャッシュで、それぞれ4
KBのキャッシュ記憶容量に対し、4個の16バイトラ
インからなる64セットを有している。
【0011】図2に示すのは、本発明によるデータ処理
装置10の命令先取りユニット(IPU)34の内部構
造を図解したブロック図である。IPU34は、バッフ
ァ・デマルチプレクサ(BDEMUX)48,命令キュ
ー50,バッファ54および先取りコントローラ56と
から構成されている。好適な実施例においては、命令キ
ュー50は8個の命令語(128ビット)を持ち、2個
の4語キューバッファQUEUE ZERO,QUEU
E ONE 51a,51bおよび命令マルチプレクサ
(IMUX)52とから構成されている。従って、QU
EUE ZERO51aとQUEUE ONE 51b
とは、それぞれ64ビットの広さで、それぞれ4個の命
令語を記憶する。
【0012】動作中は、INU32は、バッファ54を
介してIMUX52から命令を受け取る。INU32
は、受け取った命令の長さ(パイプ移動量)と、その命
令が実行操作すべき内容を解読する。先取りコントロー
ラ56内のプログラム・カウンタ(PC)は、現在の命
令語を指し示し、キュー・ポインタとして機能する。命
令の解読が終了すると、INU32は命令パイプライン
移動を先取りコントローラ56に転送し、先取りコント
ローラ56はそのパイプ移動を現在のPCに追加する。
先取りコントローラ56は、PCの下位のnビット(た
とえばn=3)を用いてIMUX52から新しい命令語
を選択する。本発明においては、8個のキュー・ポイン
タのうちの1つがラッピング・ファンネル・シフタ(w
rapping funnel shifter −
図3参照)を通じて、IMUX52のキューから3個の
命令語を選択し、その3個の命令語はバッファ54に転
送される。先取りコントローラ56からCONTROL
(制御)信号を受信するとすぐに、バッファ54はIN
U32に新しい命令をロードする。この命令の長さは
1,2または3語である。INU32は再び命令を解読
して実行操作および命令長を割り出し、パイプライン移
動(0ないし3語)を先取りコントローラ56に転送す
る。先取りコントローラ56はPIPE移動の量だけ、
PCを進めて、キュー・ポインタがPCの下位3ビット
を用いてIMUX52から新しい命令を選択する。
【0013】命令パイプラインの移動が、QUEUE
ZERO 51aまたはQUEUEONE 51bのい
ずれかに記憶されていた命令語を排出すると、先取りコ
ントローラ56はメモリからの命令語読み取りリクエス
トを起動させて、排出されたキュー・バッファ51aま
たは51bを満たす。好適な実施例においては、先取り
コントローラ56は、次の命令語のためのREAD R
EQUEST(リクエスト読み取り)信号を命令メモリ
ユニツト14に発する。命令メモリユニット14は、リ
クエストされた命令が命令キヤツシユ38内にあるかど
うかを判定する。要求された一連の命令語が命令キヤツ
シユ38内にある場合は、キャッシュの「ヒット」が起
こり、命令メモリユニツト14は適当な半直線(64ビ
ット)を、命令キャッシュ38からBDEMUX48に
転送する。半直線とは後述するように1つのキャッシュ
・ラインに含まれるものの半分のものを意味する。先取
りコントローラ56は、LOAD(ロード)信号をB
EMUX48に転送し、それによってQUEUE ZE
RO51aとQUEUE ONE 51bのローディン
グを交互に行う。たとえば(図3Bに示されるよう
に)、BDEMUX48は、現在の命令サイクル中に、
キャッシュ・ラインnの後半の部分をQUEUE ON
E 51b にロードして、次の命令サイクル中に、キ
ャッシュ・ラインn+1の前半部分をQUEUE ON
E 51bにロードする。このように、命令キュー50
に対する書き込みが、QUEUE ZERO51aとQ
UEUEONE51bとの間で、メモリアクセスに無関
係に、交互に行われる。
【0014】通常、命令キャッシュ38は1回の命令サ
イクル中に、命令キュー50をロードする。もし必要な
命令が命令キャッシュ38内にないときは、命令キャッ
シュコントローラ36が、命令の先取り中にキャッシュ
「ミス」の発生を判定して、(BIU20を介して)メ
モリ22に対しBURST REQUEST (リクエ
ストのバースト)信号を発する。BURST REQU
EST 信号に応答して、BIU20はメモリ22から
リクエストされたキャッシュ・ライン全体を検索して、
そのキャッシュ・ラインを命令キャッシュ38にロード
する。次に命令メモリユニット14が適当なキャッシュ
半直線をBDEMUX48に転送して、命令キュー50
内に転送させる。
【0015】本発明においては、最適化された命令(た
とえば、移動、シフトおよび演算/論理命令など)は、
最大3語の長さを有している。与えられた合令の長さは
INU32が命令を解読するまでは未知であるので、
NUX52はINU32に対して(バッファ54を介
し)、クロック・サイクル毎に3個の命令語をロードす
る。従って先取りコントローラ56は、命令キュー50
内に、INU32にクロック・サイクル毎に3語の最適
化された命令をロードするのに十分な情報を維持してい
る。このタスクを実行するためには、先取りコントロー
ラ56はQUEUE ZERO 51aまたはQUEU
E ONE 51bのデータがいつ排出されるのかを判
定して、それにしたがって、空になったキュー・バッフ
ァQUEUE ZERO 51aまたはQUEUE O
NE 51bを満たさなければならない。本発明では、
命令キュー50にロードするために用いられる方法は、
プログラム・カウンタ(キュー・ポインタ)と、命令解
読または命令実行により指定される、命令の流れ(キュ
ー)の移動とに基づいている。特に、命令キュー50
は、現在のキュー・ポインタと命令パイプライン(PI
PE)移動が、(1)QUEUE ZERO 51aま
たはQUEUE ONE 51bの最後のワードである
か、(2)4語のバッファ境界を越えて、現在のポイン
タによってアクセスされたキュー・バッファ(QUEU
E ZERO 51aまたはQUEUEONE 51
b)を排出させたときに、再び満たされる。
【0016】図3Aおよび図3Bは、10個の命令サイ
クル期間に渡る、QUEUE ZERO51aとQUE
UE ONE 51bのローディングと、命令キャッシ
ュ38の内容とを図解している。10個の命令サイクル
中には、INU32には命令キュー50から、IMUX
66を介して、各サイクル毎に3語がロードされる。図
3Aは、命令キャッシュ38のキャッシュ・ラインnか
らn+3までのメモリ内容を図示したものである。たと
えばラインnは、8個の命令語「AAAB BBCC」
を含んでいる。図3Bに示すのは、命令キュー50(Q
UEUE ZERO51aおよびQUEUE ONE
51b)のローディングと、命令キャッシュ38の内容
および命令ユニット32のパイプライン(PIPE)の
ローディングである。図3Bでは、アスタリスクは、命
令サイクル中に、QUEUE ZERO51aとQUE
UE ONE 51bのいずれのキュー・バッファがキ
ャッシュ半直線を受け取ったかを表す。
【0017】本発明においては、先取りコントローラ5
6は2つのモード、すなわち、逐次モードと、フロー変
化モードで操作することができる。逐次モードでの操作
中は、先取りコントローラ56は、前述したようにQU
EUE ZERO51aとQUEUE ONE 51b
とのローディングを交替に行う。特に逐次モードの操作
では、先取りコントローラ56は、INU32のローデ
ィング後、命令キュー50に残っているワード数に基づ
いて、メモリREAD REQUREST(読み取りリ
クエスト)信号を発する。逆に、フロー変化モードの操
作中は、先取りコントローラ56は、命令キュー50内
に残っているワード数とは関わりなく、QUEUE Z
ERO51aとQUEUE ONE 51bとの両方
に、命令キャッシュ38(または外部メモリ22)から
ロードする。このため、INU32が現在ある命令がフ
ロー変化(COF)命令であると判定すると、INU3
2は先取りコントローラ56に対してCOF信号を送
る。COF信号に応答して、先取りコントローラ56は
たとえばQUEUE ZERO51aをロードして、Q
UEUE ZERO51aのローディング後ただちに、
QUEUE ONE 51bをロードする。このような
先取りによって、命令キュー50は、あたかも、ターゲ
ット命令(たとえば分岐点)にインライン命令実行を通
じて到達した場合と同じ状態になる。
【0018】図解の目的のみのために描かれた図3Bに
示すように、先取りコントローラ56は命令メモリユニ
ット14に対してREAD REQUEST信号を発し
て、それにより、命令メモリユニット14はQUEUE
ZERO51aおよびQUEUE ONE 51b
に、キャッシュ・ラインnの内容をロードする。したが
って、READ REQUEST信号に応答して、命令
メモリユニット14は、アスタリスクで示されるよう
に、QUEUE ZERO51aに命令語「AAAB」
をロードし、QUEUE ONE 51bには語「BB
CC」をロードする。最初の命令サイクルの前半で、I
NU32はPIPE内にある現在の命令を解読して(現
在の命令は図3Bには示されていない)、0ないし3語
のPIPE移動を先取りコントローラ56に転送する。
つぎにINU32は、命令の実行を従来の方法で進め
る。最初の命令サイクルの後半で、先取りコントローラ
56は所定のPIPE移動に基づきPCを進めて、IM
UX66から次のセットの語を選択する。従ってキュー
・ポインタはIMUX66から3語を選択し(「AA
A」)、それはINU32(PIPE)にロードされ
る。
【0019】第2命令サイクルの前半で、INU32は
「AAA」命令を解読して、先取りコントローラ56に
応答し、命令語長が3であることを知らせる。先取りコ
ントローラ56は、PIPE移動によって現在のキュー
・ポインタを増分させてから、QUEUE ZERO
51a内には(PIPEのロード後は)1語しか残って
いないことを判定する。この判定の結果に基づいて先取
りコントローラ56は第2命令サイクルの前半におい
て、キャッシュ・ラインn+1の前半部分(「CDD
D」)をQUEUE ZERO 51aにロードするた
め(矢印で示されるように)、READ REQUES
T信号を命令メモリ・ユニット14に発する。上記に説
明したように、先取りコントローラ56は命令キャッシ
ュ38のアクセスにかかわらず、QUEUE ZERO
51aとQUEUEONE 51bのローディングを
交互に行う。第2の命令サイクルの後半で、先取りコン
トローラ56はPCを3だけ進めて、命令キュー50か
ら他のセットの語を選択する。したがって、キュー・ポ
インタはIMUX66から3語を選択し(「BB
B」)、それは第2命令サイクルの後半でPIPEにロ
ードされる。
【0020】第3の命令サイクルの前半で、INU32
は「BBB」命令を解読して、上述のように、先取りコ
ントローラ56に再び応答する。第3命令サイクルの後
半で、先取りコントローラ56はPCを進めて、IMU
X66から次の命令語のセット(「CCC」)を選択し
て、それがPIPEにロードされる。第4命令サイクル
の前半で、INU32は「CCC」命令を解読して、先
取りコントローラ56に対して命令語長が3であること
を応答する。先取りコントローラ56は、PIPE移動
が4語バッファ境界を越えていることを確認して、それ
によってQUEUE ONE 51bに格納されている
データを排出する。その結果、先取りコントローラ56
はREAD REQUEST信号を命令メモリ・ユニッ
ト14に発して、キャッシュ・ラインn+1の後半
(「EEEF」)を、矢印で示されるように、次のサイ
クル中(第5命令サイクルの前半)にQUEUE ON
E 51bにロードする。第4命令サイクルの後半で
は、先取りコントローラ56はPCを進めて、IMUX
66から次のセットの語(「DDD」)を選択して、そ
れがPIPEにロードされる。この逐次の先取り方法
は、INU32がフロー変化命令を検出するまで継続さ
れる。
【0021】本発明では、先取りコントローラ56は、
フロー変化命令(たとえば分岐点命令)に応答して、2
回または3回の4語先取りを行う。前述したように、I
NU32は各命令の命令長および/またはパイプ移動と
を解読して実行操作を行う。フロー変化命令を検出する
と、INU32は、フロー変化(COF)信号と、命令
アドレスとを先取りコントローラ56に転送する。CO
F信号に応答して、先取りコントローラ56は必要な数
の命令先取りサイクル(2回または3回の4語先取り)
を、命令の一部として開始する。
【0022】本発明においては、INU32はクロック
・サイクルの前半で、PIPE移動の量(たとえば0な
いし3語)を先取りコントローラ56に応答する。先取
りコントローラ56は、クロック・サイクルの後半を使
って、プログラム・カウンタ(キュー・ポインタ)を進
めて、命令キュー50から他のセットの語を選択する。
命令キュー50を満たす方法は、プログラム・カウンタ
と、命令解読または命令実行の後にINU32によって
指定される命令ストリーム移動とに基づいている。キュ
ーを満たす方法のモデルを以下に図解する。
【0023】
【0024】したがって、本発明においては、キューを
満たす方法は、3語の最適化された命令がINUE32
(PIPE)にロードされた後、および命令キュー50
が命令キャッシュ38からロードされる前に、命令キュ
ー50内に残っている語数によって決まる。上記のケー
ス1および2に示したように、PIPEロード後に命令
キュー内に3語以上が残っていると、先取りコントロー
ラ56は命令メモリ・ユニット14に対して、READ
REQUESTを発しない。同様に、すべてのケース
で説明したように、PIPE移動がゼロの場合は、先取
りコントローラ56はREAD REQUEST信号を
発しない。そのため、命令の先取りは起こらない。キュ
ー・ポインタ(PC)と、PIPE移動(MOVE)
が、4語バッファ境界を越えると、次の命令サイクル中
に必要な命令語が先取りされる(ケース3および4)。
ケース4では、キュー・ポインタはまず命令キューバッ
ファQUEUE ZERO51aおよびQUEUE O
NE 51bの最後の語を指し示す。その結果、先取り
コントローラ56は、PIPE移動の量に関わらずRE
AD REQUEST信号を発しない。これは、命令キ
ャッシュ38からの必要な半直線がすでに検索されてい
るからである(図3B参照)。
【0025】好適な実施例において本発明を解説してき
たが、開示された発明は、多くの方法に改変することが
でき、上記に特定されたもの以外のさまざまな実施例を
前提とするものであることは、当業者には明白であろ
う。たとえば、キューを満たす方法を改変して、3語よ
り大きい最適化された命令を、クロック・サイクル毎に
命令PIPEにロードすることもできる。特に、命令キ
ュー50を、たとえば16命令語(256ビット)まで
対応できるような大きさにすると、PIPEからの全キ
ャッシュ・ラインのアクセスが可能となる。さらに、I
MUX66を改変して、3語より大きいセットの語をク
ロック・サイクル毎に命令PIPE内にロードできるよ
うにすることもできる。同様に、IPU34はINU3
2に対して、一語長の複数の命令をディスパッチするこ
ともできる。このように、IPU34は、クロック・サ
イクル毎にさまざまな長さの命令を与えたり、さまざま
な数の命令を与えることができ、さらに、INU32に
よる命令の使用数に応じて、命令キューを満たすことが
できる。したがって、添付された請求項は、本発明の信
念と範囲内に当てはまる全ての修正を含むものとする。
【図面の簡単な説明】
【図1】本発明によるデータ処理装置システムのブロッ
ク図である。
【図2】図1のデータ処理装置の命令先取りユニットの
ブロック図である。
【図3A】命令キューをロードする図1の命令キャッシ
ュの4本のラインのメモリ内容を、命令形式で図解した
ものである。
【図3B】図2の命令先取りユニットの命令キューのロ
ーディングを図解した表である。
【符号の説明】
10 データ処理装置 12 整数ユニット 14 命令メモリ・ユニット 16 データ・メモリ・ユニット 18 バス・インターフェース・ユニット 20 システム・バス 22 メモリ 24 内部命令データ・バス 26 内部ワードデータ・バス 28・30 バッファ 32 命令ユニット 34 命令先取りユニット 36 命令キャッシュ・コントローラ 38 命令キャッシュ 40 命令変換ルックアサイド・バッファ 42 データ・キャッシュ・コントローラ 44 データ変換ルックアサイド・バッファ
フロントページの続き (56)参考文献 特開 昭61−214029(JP,A) 特開 昭63−24327(JP,A) 特開 昭56−27455(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 9/38 G06F 9/32

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 メモリから命令シーケンスを先取りする
    先取りコントローラを有するデータ・プロセッサにおい
    て、パイプライン命令ユニットが調べる命令語数に基づ
    き命令キューを満たす方法であって、各命令は1以上の
    命令語から成り、前記先取りコントローラは前記メモリ
    に結合され命令キューに所定数の命令語をロードし、前
    記命令キューは所定数のバッファを有し、前記バッファ
    は所定の命令語境界を有し前記メモリから取り出された
    整数個の命令語を格納し、当該方法は: マシン・サイクルの所定の第1期間において前記先取り
    コントローラ内のキュー・ポインタにより前記命令キュ
    ーに与えられる第1制御信号に応答して、前記命令シー
    ケンスに含まれる1以上の命令語から成る第1命令を前
    記パイプライン命令ユニットにロードする段階; 前記パイプライン命令ユニットにおいて前記第1命令を
    デコードして前記第1命令の命令語数を調べる段階であ
    って、前記命令語数は、前記第1命令がロードされた後
    パイプライン命令ユニットが調べるパイプ移動量の値に
    対応する、段階; 前記パイプライン命令ユニットにより、前記マシンサイ
    クルの所定の第2期間において第2制御信号を前記先取
    りコントローラに与える段階であって、前記第2制御信
    号は前記第1命令の命令語数を指示する、段階; 前記先取りコントローラが前記第2制御信号を受信した
    ことに応答して、前記キュー・ポインタの現在値を前記
    パイプライン命令ユニットの前記パイプ移動量の値に対
    応する量だけインクリメントする段階であって、前記キ
    ュー・ポインタは前記パイプライン命令ユニットにロー
    ドされる第2命令を指示し、前記第2命令は前記命令キ
    ューに格納される1以上の命令語から成る、段階;およ
    び前記メモリから次の命令シーケンスを取り出して前記
    命令キューを満たす取出段階から構成され、前記取出段
    階は: 前記キュー・ポインタの現在値と前記第1命令がロード
    された後前記パイプライン命令ユニットが調べるパイプ
    移動量とを結合したものが、前記命令キュー内の前記所
    定数のバッファ内の1つにおいて、格納された命令シー
    ケンスにおける最後の命令語を示す場合、又は前記キュ
    ー・ポインタの現在値と前記第1命令がロードされた後
    前記パイプライン命令ユニットが調べるパイプ移動量と
    を結合したものが、前記命令キュー内の前記所定数の
    ッファ内の1つにおいて、命令語境界を越えたことを示
    す場合に前記メモリから次の命令シーケンスを取り出し
    て前記命令キューを満たす段階から構成される方法。
  2. 【請求項2】 メモリから所定数の命令語を先取りして
    命令キューに格納させる先取りコントローラを有するデ
    ータ・プロセッサにおいて、所定数の命令語をロードし
    た後パイプライン命令ユニットが調べるパイプ移動量に
    基づき前記命令キューを満たす方法であって、前記命令
    キューは所定数のバッファを有し、前記バッファは所定
    の命令語境界を有し前記メモリから取り出された整数個
    の命令語を格納し、各命令は1以上の命令語から成り、
    前記先取りコントローラは前記命令キューから前記パイ
    プライン命令ユニットに所定数の命令語を提供し、当該
    方法は: 前記パイプライン命令ユニットにおいて所定数の命令語
    から成る第1命令をデコードして前記パイプライン命令
    ユニットのパイプ移動量を調べる段階であって、前記パ
    イプ移動量は、マシンサイクルの所定の第1期間におい
    て前記パイプライン命令ユニットで使用される前記第1
    命令の命令語数に対応する、段階; 前記先取りコントローラが、マシンサイクルの所定の第
    2期間において前記パイプライン命令ユニットから第1
    制御信号を受信したことに応答して、前記先取りコント
    ローラにおけるキュー・ポインタの現在値を前記パイプ
    ライン命令ユニットのパイプ移動量に対応する量だけイ
    ンクリメントする段階であって、前記第1制御信号は、
    前記パイプライン命令ユニットのパイプ移動量を示す、
    段階;および前記メモリから次の所定数の命令語を取り
    出して前記命令キューを満たす取出段階から構成され、
    前記取出段階は: 前記キュー・ポインタの現在値と前記第1命令がロード
    された後前記パイプライン命令ユニットが調べるパイプ
    移動量とを結合したものが、前記命令キュー内の前記所
    定数のバッファ内の1つにおいて、格納された命令シー
    ケンスにおける最後の命令語を示す場合、又は前記キュ
    ー・ポインタの現在値と前記第1命令がロードされた後
    前記パイプライン命令ユニットが調べるパイプ移動量と
    を結合したものが、前記命令キュー内の前記所定数の
    ッファ内の1つにおいて、命令語境界を越えたことを示
    す場合に前記メモリから次の所定数の命令語を取り出し
    て前記命令キューを満たす段階から構成される方法。
  3. 【請求項3】 メモリから命令シーケンスを先取りする
    先取りコントローラを有するデータ・プロセッサにおい
    て、前記パイプライン命令ユニットが使用する命令語数
    に応じて前記パイプライン命令ユニットが調べるパイプ
    移動量に基づき命令キューを満たす方法であって、前記
    命令シーケンスは長さが可変である命令から成り、各命
    令は1以上の命令語から成り、前記命令キューは所定数
    のバッファを有し前記メモリから取り出された整数個の
    命令語を格納し、当該方法は: マシン・サイクルの所定の第1期間において前記パイプ
    ライン命令ユニットが所定数の命令語をデコードし、命
    令の長さと、該命令を前記パイプライン命令ユニットが
    実行した結果生じるパイプライン命令ユニットのパイプ
    移動量とを調べる段階; 前記パイプライン命令ユニットが、前記パイプ移動量を
    示す第1制御信号を前記先取りコントローラに与える段
    階であって、前記パイプ移動量は実行される命令の長さ
    の値に対応する、段階; マシンサイクルの所定の第2期間において前記パイプ移
    動量に基づいて前記命令キューから次の所定数の命令語
    を特定するため、前記先取りコントローラにおいてキュ
    ー・ポインタの現在値を進める段階;および前記メモリ
    から次の命令シーケンスを取り出して前記命令キューを
    満たす取出段階から構成され、前記取出段階は: 前記キュー・ポインタの現在値と所定数の命令語がロー
    ドされた後前記パイプライン命令ユニットが調べるパイ
    プ移動量とを結合したものが、前記命令キュー内の前記
    所定数のバッファ内の1つにおいて、格納された命令シ
    ーケンスにおける最後の命令語を示す場合、又は前記キ
    ュー・ポインタの現在値と所定数の命令語がロードされ
    た後前記パイプライン命令ユニットが調べるパイプ移動
    量とを結合したものが、前記命令キュー内の前記所定数
    バッファ内の1つにおいて、命令語境界を越えたこと
    を示す場合に前記メモリから次の命令シーケンスを取り
    出して前記命令キューを満たす段階から構成される方
    法。
  4. 【請求項4】 メモリから所定数の命令語を先取りして
    命令キューに格納させる先取りコントローラを有するデ
    ータ・プロセッサにおいて、所定数の命令語をロードし
    た後パイプライン命令ユニットが調べる命令語数に基づ
    き命令キューを満たす方法であって、各命令は1以上の
    命令語から成り、前記命令キューは所定数のバッファを
    有し、前記バッファは所定の命令語境界を有し、前記先
    取りコントローラは前記命令キューからパイプライン命
    令ユニットに所定数の命令語を提供させ、当該方法は: 前記パイプライン命令ユニットにおいて所定数の命令語
    から成る第1命令をデコードして前記パイプライン命令
    ユニットのパイプ移動量を調べる段階であって、前記パ
    イプ移動量は、マシンサイクルの所定の第1期間におい
    て前記パイプライン命令ユニットで調べられた第1命令
    の命令語数に対応する、段階; 前記マシンサイクルの所定の第2期間において前記パイ
    プライン命令ユニットから第1制御信号を受信したこと
    に応答して、前記先取りコントローラにおけるキュー・
    ポインタの現在値を前記パイプライン命令ユニットのパ
    イプ移動量だけインクリメントする段階であって、前記
    第1制御信号は前記パイプライン命令ユニットのパイプ
    移動量に対応する、段階; 前記キュー・ポインタによりインクリメントした値に基
    づき前記マシンサイクルの次のマシンサイクルにおい
    て、前記命令キューから次の所定数の命令語を選択して
    前記パイプライン命令ユニットにロードする段階;およ
    び前記メモリから次の所定数の命令語を取り出して前記
    命令キューを満たす取出段階から構成され、前記取出段
    階は: 前記キュー・ポインタの現在値と前記第1命令がロード
    された後前記パイプライン命令ユニットが調べるパイプ
    移動量とを結合したものが、前記命令キュー内の前記所
    定数のバッファ内の1つにおいて、格納された命令シー
    ケンスにおける最後の命令語を示す場合、又は前記キュ
    ー・ポインタの現在値と前記第1命令がロードされた後
    前記パイプライン命令ユニットが調べるパイプ移動量と
    を結合したものが、前記命令キュー内の前記所定数の
    ッファ内の1つにおいて、命令語境界を越えたことを示
    す場合に前記メモリから次の所定数の命令語を取り出し
    て前記命令キューを満たす段階から構成される方法。
JP2418553A 1990-01-02 1990-12-28 パイプライン型データプロセッサにおける命令キューを満たす方法 Expired - Fee Related JP2949857B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US45960290A 1990-01-02 1990-01-02
US459.602 1990-01-02

Publications (2)

Publication Number Publication Date
JPH05324317A JPH05324317A (ja) 1993-12-07
JP2949857B2 true JP2949857B2 (ja) 1999-09-20

Family

ID=23825441

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2418553A Expired - Fee Related JP2949857B2 (ja) 1990-01-02 1990-12-28 パイプライン型データプロセッサにおける命令キューを満たす方法

Country Status (5)

Country Link
US (1) US5317701A (ja)
EP (1) EP0436341B1 (ja)
JP (1) JP2949857B2 (ja)
KR (1) KR910014804A (ja)
DE (1) DE69030648T2 (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590294A (en) * 1991-03-19 1996-12-31 Silicon Graphics, Inc. Method and apparatus for retarting pipeline processing
US5572682A (en) * 1992-04-03 1996-11-05 Cyrix Corporation Control logic for a sequential data buffer using byte read-enable lines to define and shift the access window
JP2744882B2 (ja) * 1993-01-15 1998-04-28 インターナショナル・ビジネス・マシーンズ・コーポレイション キューにより命令の実行を制御する装置及び方法
US5511174A (en) * 1993-03-31 1996-04-23 Vlsi Technology, Inc. Method for controlling the operation of a computer implemented apparatus to selectively execute instructions of different bit lengths
US5604909A (en) 1993-12-15 1997-02-18 Silicon Graphics Computer Systems, Inc. Apparatus for processing instructions in a computing system
US5600806A (en) * 1994-03-01 1997-02-04 Intel Corporation Method and apparatus for aligning an instruction boundary in variable length macroinstructions with an instruction buffer
US5758116A (en) * 1994-09-30 1998-05-26 Intel Corporation Instruction length decoder for generating output length indicia to identity boundaries between variable length instructions
US5809529A (en) * 1995-08-23 1998-09-15 International Business Machines Corporation Prefetching of committed instructions from a memory to an instruction cache
US5781789A (en) * 1995-08-31 1998-07-14 Advanced Micro Devices, Inc. Superscaler microprocessor employing a parallel mask decoder
US5748855A (en) * 1995-10-02 1998-05-05 Iinternational Business Machines Corporation Method and system for performance monitoring of misaligned memory accesses in a processing system
US5949971A (en) * 1995-10-02 1999-09-07 International Business Machines Corporation Method and system for performance monitoring through identification of frequency and length of time of execution of serialization instructions in a processing system
US5797019A (en) * 1995-10-02 1998-08-18 International Business Machines Corporation Method and system for performance monitoring time lengths of disabled interrupts in a processing system
US5729726A (en) * 1995-10-02 1998-03-17 International Business Machines Corporation Method and system for performance monitoring efficiency of branch unit operation in a processing system
US5751945A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring stalls to identify pipeline bottlenecks and stalls in a processing system
US5752062A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring through monitoring an order of processor events during execution in a processing system
US5691920A (en) * 1995-10-02 1997-11-25 International Business Machines Corporation Method and system for performance monitoring of dispatch unit efficiency in a processing system
US5809272A (en) * 1995-11-29 1998-09-15 Exponential Technology Inc. Early instruction-length pre-decode of variable-length instructions in a superscalar processor
US5619667A (en) * 1996-03-29 1997-04-08 Integrated Device Technology, Inc. Method and apparatus for fast fill of translator instruction queue
US5983344A (en) * 1997-03-19 1999-11-09 Integrated Device Technology, Inc. Combining ALU and memory storage micro instructions by using an address latch to maintain an address calculated by a first micro instruction
AU2986099A (en) * 1998-03-18 1999-10-11 Qualcomm Incorporated A digital signal processor
US6275924B1 (en) * 1998-09-15 2001-08-14 Texas Instruments Incorporated System for buffering instructions in a processor by reissuing instruction fetches during decoder stall time
KR100638935B1 (ko) * 1998-06-08 2006-10-25 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 데이터 프로세서
DE69935066D1 (de) 1999-05-03 2007-03-22 St Microelectronics Sa Befehlsvorausholeinheit
AU2597401A (en) * 1999-12-22 2001-07-03 Ubicom, Inc. System and method for instruction level multithreading in an embedded processor using zero-time context switching
US7308686B1 (en) * 1999-12-22 2007-12-11 Ubicom Inc. Software input/output using hard real time threads
US7047396B1 (en) 2000-06-22 2006-05-16 Ubicom, Inc. Fixed length memory to memory arithmetic and architecture for a communications embedded processor system
JP3973129B2 (ja) * 2000-07-19 2007-09-12 株式会社日立製作所 キャッシュメモリ装置及びそれを用いた中央演算処理装置
US7082516B1 (en) 2000-09-28 2006-07-25 Intel Corporation Aligning instructions using a variable width alignment engine having an intelligent buffer refill mechanism
US6738792B1 (en) 2001-03-09 2004-05-18 Advanced Micro Devices, Inc. Parallel mask generator
US6898694B2 (en) * 2001-06-28 2005-05-24 Intel Corporation High instruction fetch bandwidth in multithread processor using temporary instruction cache to deliver portion of cache line in subsequent clock cycle
JP4073721B2 (ja) * 2002-06-28 2008-04-09 株式会社ルネサステクノロジ データ処理装置
US7822950B1 (en) 2003-01-22 2010-10-26 Ubicom, Inc. Thread cancellation and recirculation in a computer processor for avoiding pipeline stalls
US7469334B1 (en) * 2004-03-30 2008-12-23 Sun Microsystems, Inc. Method and apparatus for facilitating a fast restart after speculative execution
US20050278517A1 (en) * 2004-05-19 2005-12-15 Kar-Lik Wong Systems and methods for performing branch prediction in a variable length instruction set microprocessor
US20060212658A1 (en) * 2005-03-18 2006-09-21 International Business Machines Corporation. Prefetch performance of index access by look-ahead prefetch
US20070073925A1 (en) * 2005-09-28 2007-03-29 Arc International (Uk) Limited Systems and methods for synchronizing multiple processing engines of a microprocessor
US7454585B2 (en) * 2005-12-22 2008-11-18 International Business Machines Corporation Efficient and flexible memory copy operation
US8725991B2 (en) * 2007-09-12 2014-05-13 Qualcomm Incorporated Register file system and method for pipelined processing
WO2012101761A1 (ja) * 2011-01-25 2012-08-02 富士通株式会社 システム、およびデータロード方法
US10216520B2 (en) * 2014-10-06 2019-02-26 Via Technologies, Inc. Compressing instruction queue for a microprocessor
JP6457836B2 (ja) 2015-02-26 2019-01-23 ルネサスエレクトロニクス株式会社 プロセッサおよび命令コード生成装置
CN106227507B (zh) * 2016-07-11 2019-10-18 北京深鉴智能科技有限公司 计算系统及其控制器

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2298139A1 (fr) * 1975-01-16 1976-08-13 Int Computers Ltd Dispositif de recherche et d'execution des instructions dans un process
US4200927A (en) * 1978-01-03 1980-04-29 International Business Machines Corporation Multi-instruction stream branch processing mechanism
US4516199A (en) * 1979-10-11 1985-05-07 Nanodata Computer Corporation Data processing system
JPS619734A (ja) * 1984-06-26 1986-01-17 Nec Corp プロセツサ制御方式
US4847759A (en) * 1985-03-18 1989-07-11 International Business Machines Corp. Register selection mechanism and organization of an instruction prefetch buffer
CA1233270A (en) * 1985-03-18 1988-02-23 Vojin G. Oklobdzija Register selection mechanism and organization of an instruction prefetch buffer
US4714994A (en) * 1985-04-30 1987-12-22 International Business Machines Corp. Instruction prefetch buffer control
US4791557A (en) * 1985-07-31 1988-12-13 Wang Laboratories, Inc. Apparatus and method for monitoring and controlling the prefetching of instructions by an information processing system
JPS6356731A (ja) * 1986-08-27 1988-03-11 Mitsubishi Electric Corp デ−タ処理装置
JPS6398737A (ja) * 1986-10-15 1988-04-30 Mitsubishi Electric Corp デ−タ処理装置
JPH0772863B2 (ja) * 1986-10-30 1995-08-02 日本電気株式会社 プログラムカウンタ相対アドレス計算方式
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

Also Published As

Publication number Publication date
EP0436341B1 (en) 1997-05-07
US5317701A (en) 1994-05-31
EP0436341A2 (en) 1991-07-10
DE69030648T2 (de) 1997-11-13
EP0436341A3 (en) 1993-03-17
KR910014804A (ko) 1991-08-31
DE69030648D1 (de) 1997-06-12
JPH05324317A (ja) 1993-12-07

Similar Documents

Publication Publication Date Title
JP2949857B2 (ja) パイプライン型データプロセッサにおける命令キューを満たす方法
EP0380854B1 (en) Instruction buffer system for a digital computer
JP3800383B2 (ja) コンピュータのランダムアクセスメモリシステム
US5907702A (en) Method and apparatus for decreasing thread switch latency in a multithread processor
US6253287B1 (en) Using three-dimensional storage to make variable-length instructions appear uniform in two dimensions
US4873629A (en) Instruction processing unit for computer
EP0391517A2 (en) Method and apparatus for ordering and queueing multiple memory access requests
IE990754A1 (en) An apparatus for software initiated prefetch and method therefor
TW200842703A (en) Branch predictor directed prefetch
US20080140934A1 (en) Store-Through L2 Cache Mode
US6658534B1 (en) Mechanism to reduce instruction cache miss penalties and methods therefor
KR100638935B1 (ko) 데이터 프로세서
US6275903B1 (en) Stack cache miss handling
US5752263A (en) Apparatus and method for reducing read miss latency by predicting sequential instruction read-aheads
JP3732555B2 (ja) 非逐次アクセスの実効待ち時間が短いパイプライン・キャッシュシステム
EP1413953A2 (en) Instruction prefetch method and apparatus for conditional branch instructions
US5897654A (en) Method and system for efficiently fetching from cache during a cache fill operation
US7430657B2 (en) System, method and device for queuing branch predictions
US6654872B1 (en) Variable length instruction alignment device and method
KR19990003937A (ko) 프리페치 장치
EP0116600B1 (en) Pre-execution next address calculating mechanism
JPH02242429A (ja) パイプライン浮動小数点ロード・インストラクシヨン回路
US7996655B2 (en) Multiport execution target delay queue FIFO array
US7769987B2 (en) Single hot forward interconnect scheme for delayed execution pipelines
JPH0331933A (ja) データ処理装置

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20080709

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20080709

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090709

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees