JP3522135B2 - 複数のウェイを持つブランチヒストリを備える情報処理装置 - Google Patents

複数のウェイを持つブランチヒストリを備える情報処理装置

Info

Publication number
JP3522135B2
JP3522135B2 JP35092598A JP35092598A JP3522135B2 JP 3522135 B2 JP3522135 B2 JP 3522135B2 JP 35092598 A JP35092598 A JP 35092598A JP 35092598 A JP35092598 A JP 35092598A JP 3522135 B2 JP3522135 B2 JP 3522135B2
Authority
JP
Japan
Prior art keywords
instruction
way
branch history
entry
branch
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
JP35092598A
Other languages
English (en)
Other versions
JP2000172503A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP35092598A priority Critical patent/JP3522135B2/ja
Priority to US09/456,918 priority patent/US6532534B1/en
Publication of JP2000172503A publication Critical patent/JP2000172503A/ja
Application granted granted Critical
Publication of JP3522135B2 publication Critical patent/JP3522135B2/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 or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は情報処理装置に係
り、更に詳しくは過去に実行された分岐命令自身の命令
アドレスと、分岐先の命令アドレスとが登録されるブラ
ンチヒストリが複数のウェイを持つ場合に、データ処理
の対象となるエントリが存在するウェイを自動的に指定
することを可能として処理を高速化することができる、
複数のウェイを持つブランチヒストリを備える情報処理
装置に関する。
【0002】
【従来の技術】情報処理装置の処理効率向上のための1
つの方式として、アウトオブオーダ処理方式がある。ア
ウトオブオーダ処理方式を採用した情報処理装置におい
ては、1つの命令実行の完了を待たずに後続の命令列が
順次複数のパイプラインに投入され、命令の並列実行を
行わせることにより、性能の向上が図られている。
【0003】しかしながら、このアウトオブオーダ処理
方式を採用した情報処理装置においても、先行する命令
の実行結果が後続の命令の実行に影響を与える場合に
は、先行する命令の実行が完了しなければ後続の命令を
実行開始することができない。先行する命令の処理が遅
ければ後続の命令を実行することはできず、先行命令の
完了を待ち続けることになり、パイプラインに乱れが生
じ、性能の低下が引き起こされる。
【0004】このような命令の代表例として分岐命令が
ある。分岐命令においては、その実行が完了するまで分
岐が成立するか否かが分からず、また分岐が成立する場
合にも分岐先のターゲットアドレスが分からないため、
先行する命令が分岐命令の場合には、後続の命令は待ち
状態となり、パイプラインに乱れが生ずる。このためブ
ランチヒストリを使用することによって、分岐命令に対
する処理の高速化が図られる。
【0005】ブランチヒストリは、すでに実行が終了し
た分岐命令において分岐が成立した場合に、その分岐命
令自身の命令アドレスと分岐先の命令の命令アドレス、
すなわちターゲットアドレスとを組にして登録しておく
ものである。そして主記憶装置等からフェッチされた命
令が分岐命令である場合にブランチヒストリの内容が検
索され、その命令のアドレスがすでに登録されている時
には、登録されているターゲットアドレスを予測分岐先
アドレスとして、実際に分岐が成立するか否かの判定に
先立って、その分岐命令の処理が開始される。
【0006】ブランチヒストリに登録されていない分岐
命令で分岐が成立したものについては、新たにブランチ
ヒストリにその命令の命令アドレスと分岐先アドレスと
を登録する必要がある。また何らかの原因で分岐先命令
アドレス、すなわちターゲットアドレスが変更されてい
る場合には、ブランチヒストリ検索結果としての予測分
岐先アドレスは無効となり、場合によってはその登録さ
れているターゲットアドレスを更新したり、分岐命令の
命令アドレスと分岐先の命令アドレスとが組として登録
されているエントリの削除を行う必要がある。更に分岐
成立の予測が外れた時、あるいは分岐先としてのターゲ
ットアドレスが誤っていた時には、それらを示す情報を
エントリ別に保有しておくことも必要である。
【0007】
【発明が解決しようとする課題】従来においてブランチ
ヒストリが複数個のウェイを持つ場合には、新たに分岐
命令自身の命令アドレスとターゲットアドレスとを登録
すべきエントリがどのウェイに存在するか、また更新す
べきエントリや削除すべきエントリがどのウェイに存在
するかについては、その情報を別のメモリに記憶してお
くか、あるいはエントリの新規登録、更新、または削除
が必要となるたびに、ブランチヒストリの直接検索を行
う必要があった。
【0008】別にメモリを用意する場合には、情報処理
装置全体としての回路面積が大きくなり、またウェイを
指定する情報を引き出すための待ち時間が生ずるという
問題点があった。
【0009】またブランチヒストリを直接検索する場合
には、その検索の間、主記憶装置等からフェッチされた
分岐命令に対する予測分岐先アドレス、すなわちターゲ
ットアドレスの検索処理を実行することができないた
め、全体の処理が一時的に停止し、著しい性能の低下が
引き起こされ、ブランチヒストリを有効に活用すること
ができないという問題点があった。
【0010】本発明は、複数のウェイを持つブランチヒ
ストリにおいて新規登録が行われるべきエントリ、デー
タ更新や削除が行われるべきエントリが存在するウェイ
を、別のメモリを用意することなく、かつブランチヒス
トリの直接検索を行う必要もなく、自動的に指定可能と
して、ブランチヒストリの有効活用を図ることを目的と
する。
【0011】
【課題を解決するための手段】図1は本発明における情
報処理装置の原理構成ブロック図である。同図は、複数
のウェイを持つブランチヒストリを有する情報処理装置
の原理構成を示す。
【0012】図1において、情報処理装置1は複数のウ
ェイを持つブランチヒストリ2を備えている。命令フェ
ッチ手段3は、例えば命令フェッチ部であり、記憶装置
からフェッチされた命令が分岐命令であり、かつその分
岐命令に対応してブランチヒストリに対するデータ処理
が必要となる場合に備えて、そのデータ処理対象となる
べきエントリが存在するウェイを指定するウェイ指定情
報を、フェッチされた命令のアドレスに添付して、情報
処理装置1の内部で命令を実行する命令実行部4に与え
るものである。
【0013】本発明の実施の形態においては、ブランチ
ヒストリ2に対するデータ処理が分岐命令の実行によっ
て分岐成立が判明した時、その分岐命令自身の命令アド
レスと分岐先の命令アドレスとを組にしてブランチヒス
トリに登録する新規登録であり、前記ウェイ指定情報が
その新規登録の対象となるべきエントリが存在するウェ
イを指定するようにすることもできる。
【0014】またこの時、ウェイ指定情報が新たにエン
トリが作成されるべきウェイを示すフラグ、例えばリプ
レースフラグであるようにすることもでき、またブラン
チヒストリ2に対して、このフラグを更新するフラグ更
新手段を備え、ブランチヒストリ2上に新しいエントリ
が作成された時、そのフラグ更新手段が新しく作成され
たエントリが存在しないウェイを指定するようにフラグ
を更新して、前述の命令アドレスに添付されるべきウェ
イ指定情報として、命令フェッチ手段3に与えることも
できる。
【0015】更に命令フェッチ手段3が、ブランチヒス
トリ2にフェッチされた命令のアドレスがすでに登録さ
れているエントリが存在するか否かの検索が完了する前
に、前述の新規登録の対象とすべきエントリが存在する
ウェイを指定するウェイ指定情報を命令のアドレスに添
付することもできる。
【0016】次に本発明の実施の形態においては、前述
のブランチヒストリに対するデータ処理がすでにブラン
チヒストリ2に登録されているデータの更新であり、ウ
ェイ指定情報がデータ更新の対象となるべきエントリが
存在するウェイを指定するものであるようにすることも
できる。
【0017】この場合、ウェイ指定情報がデータ更新の
対象となるエントリが存在するウェイを指定するフラ
グ、例えばヒットウェイフラグであるようにすること
も、また命令フェッチ手段3が、ブランチヒストリ2上
にフェッチされた命令のアドレスが登録されているエン
トリが検出された時に、その検出されたエントリが存在
するウェイを指定するフラグを命令アドレスに添付する
こともできる。
【0018】更に本発明の実施の形態においては、前述
のブランチヒストリに対するデータ処理がすでにブラン
チヒストリに登録されているデータの削除であり、ウェ
イ指定情報がそのデータ削除の対象となるべきエントリ
が存在するウェイを指定するようにすることもできる。
【0019】この場合ウェイ指定情報が、データ削除の
対象となるべきエントリが存在するウェイを指定するフ
ラグ、例えばヒットウェイフラグであるようにすること
も、また命令フェッチ手段3が、ブランチヒストリ2上
でフェッチされた命令のアドレスが登録されているエン
トリが検出された時に、その検出されたエントリが存在
するウェイを指定するフラグを命令アドレスに添付する
こともできる。
【0020】また本発明の情報処理装置においては、分
岐命令の実行によってブランチヒストリに対するデータ
処理が必要となった時、そのデータ処理に必要な情報と
命令のアドレスに添付されたウェイ指定情報とをブラン
チヒストリ2に与える分岐命令制御手段を更に備えるこ
ともできる。
【0021】またこの場合、ブランチヒストリ2に対し
て、分岐命令制御手段によって与えられたデータ処理に
必要な情報とウェイ指定情報とに対応して、対象エント
リに対するデータ処理を実行するデータ処理手段を備え
ることもできる。
【0022】更にこの場合、データ処理手段が対象エン
トリに対するデータ処理、例えばエントリの新規登録、
すでに存在するエントリに対するデータ更新、またはデ
ータ削除を、情報処理装置の1サイクルタイムで実行す
ることもできる。
【0023】以上のように本発明によれば、主記憶装置
等からフェッチされた命令に対応してブランチヒストリ
に対するデータ処理が必要となった時に、その対象とな
るべきエントリが存在するウェイを指定するウェイ指定
情報が命令アドレスに添付されて、命令実行部に与えら
れることによって、実際にブランチヒストリに対するデ
ータ処理、例えばエントリの新規登録、すでに存在する
エントリのデータ更新、またはデータ削除が必要となっ
た時に、データ処理対象のエントリが存在するウェイを
自動的に判別することが可能となる。
【0024】
【発明の実施の形態】図2は本発明の情報処理装置の実
施形態、すなわち一般的に複数個のウェイを持つブラン
チヒストリを備える情報処理装置の全体構成ブロック図
である。同図においては、情報処理装置の中で本発明に
直接関係のある部分だけが示されている。
【0025】図2において命令アドレスレジスタ11、
命令アドレス生成回路12、およびキャッシュ13は命
令フェッチパイプラインの動作を行うものである。命令
フェッチパイプラインは命令フェッチのリクエスト発行
サイクルI、タグとTLBへのアクセスサイクルIT、
バッファへのアクセスサイクルIB、および結果の出力
サイクルIRからなる。
【0026】命令フェッチのパイプライン処理に続い
て、命令実行のパイプライン処理が行われる。命令実行
パイプラインは命令のデコードサイクルD、アドレス計
算サイクルA、アドレス変換サイクルT、バッファへの
アドレスサイクルB、実行サイクルE、チェックのサイ
クルC、および結果の書き込みサイクルWからなるが、
図2にはTおよびAのサイクルのみが示されている。
【0027】デコードサイクルDにおいて命令バッファ
14からデコーダ15に命令が与えられ、命令のデコー
ドが実行される。そして与えられた命令が例えば分岐命
令である場合には、アドレス計算サイクルにおいて分岐
先の命令アドレス、すなわちターゲットアドレスの正し
い値が計算され、その結果は分岐命令制御部16に与え
られる。
【0028】分岐命令制御部16からは、エントリの新
規登録が必要な場合には分岐命令自身の命令アドレスと
分岐先の命令アドレスが、またエントリの更新や削除が
必要な場合にはその処理に必要なデータがブランチヒス
トリ17に与えられ、また例えばアドレス計算サイクル
において計算された正しい分岐先アドレスが、命令アド
レスレジスタ11やキャッシュ13に与えられる。また
ブランチヒストリ17からは、後述するように命令アド
レスとリプレースフラグ、およびヒットウェイフラグが
命令フェッチ部、例えば命令フェッチ制御回路18に与
えられる。
【0029】本発明の実施の形態においては複数個のウ
ェイ、例えば2個のウェイを持つブランチヒストリにお
いて、新しいエントリの登録、エントリのデータ更新、
エントリ削除の実行に際して、新しいエントリが作成さ
れるべきウェイや、更新、削除の対象となるエントリが
存在するウェイを指定するために、命令アドレスにタグ
として添付されるフラグが使用される。
【0030】このようなフラグとして本実施形態におい
てはリプレースフラグとヒットウェイフラグとが使用さ
れる。リプレースフラグは、フェッチされた命令のアド
レスが命令バッファに投入される時、全ての命令アドレ
スにタグとして添付される。このリプレースフラグは新
しいエントリが登録されるべきウェイを指定するもので
ある。
【0031】このリプレースフラグは実際にその命令が
分岐命令であり、分岐が成立することが判明し、かつ分
岐先アドレス、すなわちターゲットアドレスがアドレス
計算サイクルにおいて求められた後に、分岐命令制御部
16からブランチヒストリ17に与えられ、実際にエン
トリの新規登録が行われるまで変更されないため、命令
フェッチ時にアドレスに添付されたリプレースフラグに
よって指定されたウェイにエントリの新規登録が行われ
る。
【0032】ヒットウェイフラグは、命令フェッチ時に
ブランチヒストリ17の検索が行われ、その命令に対す
る命令アドレスがブランチヒストリ17から検出された
時、検出された命令アドレスが登録されているエントリ
が存在するウェイを示す情報として、リプレースフラグ
と同様に命令アドレスにタグとして添付され、命令バッ
ファ14に投入されることになる。
【0033】ブランチヒストリ17に登録されているデ
ータの更新や削除が必要となった時、すなわち分岐命令
の実行が完了した後に、分岐命令制御部16からブラン
チヒストリ17に与えられるデータ更新や削除のための
情報と、このヒットウェイフラグとを用いてエントリの
更新や削除が行われることになる。なおここでいうエン
トリの削除とは、ブランチヒストリに登録されている情
報そのものの消去ではなく、そのエントリが有効か無効
かを表す情報、例えばバリッドビットの内容を更新する
ことである。
【0034】このように本実施形態においてはエントリ
の新規登録、更新、削除が実行される時点では、リプレ
ースフラグ、またはヒットウェイフラグによってそのエ
ントリが存在するウェイが既に指定されているため、別
のメモリやブランチヒストリの直接検索を行う必要はな
く、直ちにブランチヒストリに必要なデータの書き込み
を行うことができる。従って主記憶装置からフェッチさ
れた命令に対する分岐予測のためのブランチヒストリ検
索処理を阻害する時間は極めて短くなり、例えばブラン
チヒストリ17へのデータ書き込みを1サイクルタイム
で実行できるものとすれば、分岐命令予測のためのブラ
ンチヒストリ検索を阻害する時間は1サイクルタイムの
みとなる。
【0035】図3は本実施形態におけるブランチヒスト
リの構成図である。同図に示すように、本実施形態にお
いてはブランチヒストリはウェイ0、およびウェイ1と
いう2つのウェイを持っており、情報処理装置はアウト
オブオーダ処理方式を採用しているものとして、実施形
態を説明する。
【0036】図4はブランチヒストリに登録されている
エントリのデータ構造の例を示す。同図に示すように、
1つのエントリには分岐命令自身の命令アドレスIA
R、分岐先の命令アドレス、すなわちターゲットアドレ
スTIARに加えて、タグ情報としてのリプレースフラ
グが登録されている。
【0037】図5は本発明における全体処理のフローチ
ャートである。同図に示すように、まずステップS1で
命令フェッチ制御部による処理が実行される。この処理
は図6で後述するが、その結果としてリプレースフラグ
とヒットウェイフラグが、タグとして命令アドレスに添
付される。
【0038】なおリプレースフラグとヒットウェイフラ
グに加えて、バリッド、ディジィ、ギディ、およびブラ
ンチヒストリヒットというタグを添付することもでき
る。バリッドビットは、ブランチヒストリに登録されて
いるエントリが有効であることを示すものであり、その
初期値は0である。ディジィビットは、エントリに登録
されている命令アドレスによって示される分岐命令の前
回の実行時に分岐が成立しなかったことを示すものであ
り、その初期値は0である。
【0039】ギディビットは、エントリに登録されてい
るターゲットアドレスが前回の分岐命令の実行時に何ら
かの原因で間違っていたことを示すものであり、その初
期値は0である。更にブランチヒストリヒットは、フェ
ッチされた命令のアドレスがブランチヒストリにヒット
したか否か、すなわちそのアドレスがブランチヒストリ
17に登録されているかいないかを示すものであり、そ
の初期値も0である。予測分岐先アドレスを用いて分岐
命令を実行しようとする目的でブランチヒストリ17の
検索が行われた結果、ヒットした場合には、その値は1
になる。
【0040】続いてステップS2で分岐命令制御部によ
る処理が実行される。この処理では、図7で説明するよ
うにブランチヒストリに対するエントリの新規登録、更
新、または削除が必要か否かが判定され、必要な場合に
はブランチヒストリに必要な情報が渡される。
【0041】次にステップS3でブランチヒストリによ
る処理が実行される。この処理では、図8で説明するよ
うにエントリの新規登録、更新、または削除が実行さ
れ、命令フェッチ部に対してリプレースフラグとヒット
ウェイフラグとが渡される。
【0042】ここでブランチヒストリにおけるエントリ
の新規登録、更新、削除について更に説明する。ブラン
チヒストリに対してエントリの新規登録、更新、削除が
行われるのは、分岐命令が実行された後であり、このエ
ントリ新規登録、更新、削除に際しては、ブランチヒス
トリの検索は行われない。この検索が行われない点に本
発明の重要な特徴がある。
【0043】エントリの新規登録は、ブランチヒストリ
ヒットビットの値が0であり、命令アドレスによって示
される命令が分岐命令であって、分岐が成立した時に実
行される。どのウェイに新しいエントリが登録されるか
は、リプレースフラグによって指定される。この時ヒッ
トウェイフラグの値は0、1のいずれでもよい。
【0044】エントリの更新が行われるのは、ブランチ
ヒストリヒットビットの値が1であり、例えばディジィ
ビットや、ギディビットの変更が必要な場合である。エ
ントリ更新に際しては、ヒットウェイフラグの値が有効
であり、この値によって指定されるウェイにおいてエン
トリ更新が行われる。
【0045】エントリの削除は、前述のようにバリッド
ビットの値を1から0に変更することであり、これを実
行する条件として、例えば第1に2回連続で分岐成立の
予測がはずれた時、第2の分岐が成立するという予測が
はずれ、かつターゲットアドレスが間違っていた時、第
3に実際には分岐命令ではないにもかかわらず、ブラン
チヒストリに間違ってその命令のアドレスが登録されて
いた時がある。
【0046】図6は命令フェッチ部による処理の詳細フ
ローチャートである。同図において、ステップS11で
主記憶装置等から取り出され、次に実行されるべき命令
のアドレスが計算され、ステップS12でリプレースフ
ラグとヒットウェイフラグがブランチヒストリから受け
取られ、ステップS13で2つのフラグが命令アドレス
にタグとして添付され、ステップS14でリプレースフ
ラグとヒットウェイフラグの内容が命令アドレスのタグ
として、例えば図2のデコーダ15を介して、分岐命令
制御部16に渡される。
【0047】本実施形態においては、リプレースグルー
プとヒットウェイフラグとはフェッチされた命令のアド
レスが命令バッファ14に与えられる時、すなわち命令
フェッチパイプラインのIRステートにおいてタグとし
て管理れる。この時点ではフェッチされた命令が分岐命
令であるか否か、また分岐命令である場合にも、その分
岐が成立するか否かについては判定できない。そこで全
ての命令のアドレスにリプレースフラグとヒットウェイ
フラグが添付される。
【0048】図7は分岐命令制御部16による処理の詳
細フローチャートである。同図においてステップS16
で、例えば命令バッファ14、デコーダ15を介して、
命令フェッチ部からリプレースフラグとヒットウェイフ
ラグの内容が命令アドレスのタグとして受け取られ、ス
テップS17でこの2つのフラグに対応する命令に関連
してブランチヒストリに対してエントリの新規登録、更
新、または削除が必要か否かが判定され、必要な場合に
限ってステップS18でリプレースフラグとヒットウェ
イフラグとの内容がエントリ新規登録、更新、または削
除に必要なデータと共に、ブランチヒストリ17に渡さ
れる。
【0049】分岐命令制御部16は分岐命令に関する制
御を行うものである。リプレースフラグとヒットウェイ
フラグの内容を用いた処理が必要となるのは、すでに実
行完了した分岐命令が存在する場合であり、またその分
岐命令に関してブランチヒストリに対するデータ処理と
してエントリの新規登録、情報の更新、または削除の必
要がある時である。従ってそのようなデータ処理の必要
がある場合に限って、分岐命令制御部16からその命令
の命令アドレス、リプレースフラグ、およびヒットウェ
イフラグの内容、データ処理のために必要な情報がブラ
ンチヒストリ17に渡されることになる。
【0050】ブランチヒストリ17では、分岐命令制御
部16から渡された命令アドレス、リプレースフラグ、
およびヒットウェイフラグの内容、データ処理のための
情報によってエントリの新規登録、データの更新、また
は削除のいずれが必要かを判定し、2つのフラグによっ
て指定されるウェイ内のエントリに対して新規登録、更
新、または削除の処理を実行し、その後リプレースフラ
グの更新を行って、それを命令フェッチ部に渡すことに
なる。
【0051】図8のブランチヒストリによる処理の詳細
フローチャートにおいて、まずステップS20において
エントリの新規登録の必要があるか否かが判定され、必
要がある場合にはステップS21でリプレースフラグの
内容によってエントリが新規登録されるべきウェイが決
定され、ステップS22でエントリの新規登録が行わ
れ、ステップS23の処理に移行する。
【0052】ステップS20でエントリの新規登録の必
要がない場合には、ステップS24でヒットウェイフラ
グの内容によってデータの更新、たまは削除を行うべき
エントリが存在するウェイが決定され、ステップS25
でエントリの更新、または削除が行われた後に、ステッ
プS23の処理に移行する。
【0053】ステップS23では、次にフェッチされる
命令に添付するためにリプレースフラグの更新が行わ
れ、ステップS26で次にフェッチされた命令がブラン
チヒストリにヒットしたか否かが判定され、ヒットした
場合にはステップS27でヒットウェイフラグの内容が
ヒットしたウェイの番号を示すように更新された後に、
ヒットしない場合には何らの処理を行うことなく、ステ
ップS28でリプレースフラグとヒットウェイフラグの
内容が、命令アドレスに添付されるべきタグとして、命
令フェッチ部に渡される。
【0054】続いて本発明の実施形態におけるリプレー
スフラグの内容によるウェイの指定(選択)などについ
て説明する。図9はリプレースフラグの内容による新規
エントリ作成時におけるウェイ指定などの説明図であ
る。同図においてウェイ0のリプレースフラグは2ビッ
トのリプレースフラグの0ビット目を、ウェイ1のリプ
レースフラグが1ビット目を表すものと考えることもで
きる。すなわちリプレースフラグが00の時はウェイ
0、10の時はウェイ1、11の時はウェイ0、01の
時にはウェイ1がエントリの新規登録時に指定されるこ
とになる。
【0055】図10,図11はリプレースフラグの内容
によるウェイの選択(指定)を実現するためのウェイ選
択回路の例である。図10の回路では、分岐命令制御部
16からブランチヒストリ17に送られるリプレースフ
ラグの0ビット目と1ビット目がBR COMP RP
FLAG〈0〉,〈1〉という信号としてそれぞれ
EXオアゲート20に入力され、0ビット目と1ビット
目の値が異なる時、すなわちリプレースフラグが01、
または10の時にはバッファ22からBR COMP
RPL 00 11という信号が出力され、また0ビッ
ト目と1ビット目の値が同じである時、すなわちリプレ
ースフラグが00、または11である時にはインバータ
21からBR COMP 00 11という信号が出力
される。
【0056】図11(a) において、アンドゲート23に
対して図10のインバータ21の出力と、新規エントリ
が作成されるべきことを示すクリエイトニューエントリ
という信号が入力されると、オアゲート25から新しい
エントリが作成されるべきウェイがウェイ0であること
を示すWRITE BRHIS WAY0という信号が
出力される。またアンドゲート24に対して、エントリ
のデータの更新、または削除の必要を示すアップデート
オールドエントリという信号と、ヒットウェイフラグの
内容としてのブランチヒストリ検索時にヒットしたウェ
イが0であることを示すBR COMP HIT WA
YがLとして入力されると、同様にオアゲート25から
ウェイ0を指定する信号が出力される。
【0057】また図11(b) において、アンドゲート2
6に対してバッファ22の出力と、新規エントリを作成
すべきことを示すクリエイトニューエントリの信号が入
力されと、オアゲート28から新規エントリが作成され
るべきウェイがウェイ1であることを指定する信号が出
力される。
【0058】またアンドゲート27に対して、アップデ
ートオールドエントリの信号と、ヒットウェイフラグの
内容が1であることを示す信号としてのHが入力される
と、同様にオアゲート28からウェイ1を指定する信号
が出力される。
【0059】次にリプレースフラグの更新について図
9,図12、および図13を用いて説明する。図9に示
されるようにエントリの新規登録が行われた場合には、
次にエントリの新規登録が行われるときには、直前にエ
ントリが登録されたウェイとは異なるウェイが指定され
るようにリプレースフラグの更新が行われる。すなわち
リプレースフラグが00で新規に登録されたエントリが
存在するウェイがウェイ0である場合には、次にはウェ
イ1が指定されるようにウェイ0のリプレースフラグ、
すなわちビット0が0から1に更新され、リプレースフ
ラグの更新結果は10となる。
【0060】リプレースフラグが10であった時には、
次にウェイ0が選択されるようにウェイ1のリプレース
フラグが1に更新され、リプレースフラグの更新結果は
11となる。リプレースフラグが11であった時には、
ウェイ0のリプレースフラグが0に更新され、更新結果
は01となり、次にエントリが登録されるウェイはウェ
イ1となる。リプレースフラグが01の時にはウェイ1
のリプレースフラグが0に更新され、リプレースフラグ
の更新結果は00となり、次の新規登録エントリはウェ
イ0に作成される。
【0061】このようにウェイ0に新規のエントリが作
成された場合には、次に作成されるエントリはウェイ
1、ウェイ1に新規エントリが作成された場合には次の
新規エントリはウェイ0に作成されるようにリプレース
フラグの更新が行われ、2つのウェイが交互に選択され
て新規のエントリの登録が行われる。
【0062】エントリの削除が行われた場合のリプレー
スフラグの更新でも、同様にウェイ0とウェイ1とが交
互に指定されるようにリプレースフラグの更新が行われ
るが、その更新ではエントリの新規作成時とは逆の順序
にリプレースフラグが更新されるように行われる。すな
わちリプレースフラグが00の時には更新結果は01
に、10である時には00に、11である時には10
に、また01である時には11となるようにリプレース
フラグの更新が行われる。
【0063】図12,図13はリプレースフラグ更新回
路の具体例の構成図である。まず図12においてアンド
ゲート30への入力としてのヒットウェイフラグBR
COMP HIT WAYの内容がL、すなわち0であ
り、リプレースフラグの1ビット目BR COMP
PL FLAG〈1〉がH、すなわち1であればオアゲ
ート32の出力はHとなり、その出力がブランチヒスト
リでエントリの削除が行われたことを示すイレーズオー
ルドエントリ信号と共にアンドゲート33に入力される
ことによって、オアゲート36からリプレースフラグの
更新データとしてのWRITE BRHIS RPL
FLAGが出力される。
【0064】アンドゲート31への入力としてのヒット
ウェイフラグの内容がH、すなわち1であり、リプレー
スフラグの0ビット目がL、すなわち0である場合に
は、同様にオアゲート36からリプレースフラグの更新
データとしての信号が出力される。
【0065】次にブランチヒストリでエントリの新規登
録が行われたことを示すクリエイトニューエントリとい
う信号と、リプレースフラグの1ビット目がL、すなわ
ち0であることを示す信号がアンドゲート34に入力さ
れると、オアゲート36からリプレースフラグの更新デ
ータを示す信号が出力される。
【0066】更にアンドゲート37にヒットウェイフラ
グがL、すなわち0であることを示す信号と、リプレー
スフラグの0ビット目がH、すなわち1であることを示
す信号が入力されると、オアゲート39の出力がHとな
り、その出力がブランチヒストリでエントリ更新が行わ
れたことを示すアップデートエントリ信号と共にアンド
ゲート35に入力されることによって、オアゲート36
からリプレースフラグの更新データを示す信号が出力さ
れる。同様にアンドゲート38に対してヒットウェイフ
ラグの内容がH、すなわち1であり、リプレースフラグ
の1ビット目がL、すなわち0であることを示す信号が
入力されると、オアゲート36からリプレースフラグの
更新データとしての信号が出力される。
【0067】図13(a) はウェイ0に対するリプレース
フラグ更新データ出力回路の例である。同図においてラ
ンダムアクセスメモリ(RAM)40に対して図12の
オアゲート36の出力が入力され、ライトイネーブル信
号が与えられることによって、その内容はRAM40に
書き込まれる。そしてその出力はウェイ0のリプレース
フラグに対する更新データとして出力される。
【0068】図13(b) においても同様にRAM41に
対してオアゲート36の出力が与えられ、ライトイネー
ブル信号の入力時点でその内容が書き込まれ、その内容
はウェイ1のリプレースフラグに対する更新データとし
て出力される。
【0069】ここで図10,図11の回路はリプレース
フラグ、またはヒットウェイフラグによるウェイ指定
(選択)のための回路を示し、図12および図13にお
けるリプレースフラグの更新回路とは無関係である。図
13においてRAM40,41のライトイネーブル端子
に与えられる信号は、図11のオアゲート25,28の
出力と同じ名称が用いられているが、全く別のものであ
る。
【0070】図12および図13の回路において、RA
M40,41に対するライトイネーブル信号を制御する
ことによって、図9で説明したエントリ新規登録時のリ
プレースフラグの更新、およびエントリ削除時のリプレ
ースフラグの更新が行われる。これによってエントリの
削除が行われた時、その削除によってエントリが無効に
なったウェイに対して、例えば次に新しいエントリを登
録することが可能となる。またエントリの更新が行われ
た場合には、そのエントリへの上書きを防ぐことも可能
となる。
【0071】なお図10,図11の回路と図12,図1
3の回路とは全く別のものであるとしたが、例えば図1
0,図11のオアゲート25,28の出力を、図13の
RAM40,41に対するライトイネーブル信号として
使用することも可能である。これについて、エントリの
新規登録時のリプレースフラグの更新を例にとって、説
明する。
【0072】図9において、リプレースフラグが00の
時には、図11のアンドゲート23、アンドゲート25
の出力がHとなり、図13のRAM40に対するライト
イネーブル信号が入力される。この時図12のアンドゲ
ート34、オアゲート36の出力はHとなり、その結果
図9に示すようにウェイ0のリプレースフラグが1とな
り、更新後のリプレースフラグの値は10となる。
【0073】これに対して図9でリプレースフラグの値
が10である時には、図11のアンドゲート26、オア
ゲート28の出力がHとなり、図13のRAM41に対
するライトイネーブル信号が入力される。この時図12
のアンドゲート34、オアゲート36の出力がHとな
り、その結果ウェイ1のリプレースフラグが1に更新さ
れ、更新後のリプレースフラグは11となる。
【0074】リプレースフラグが11、または01の場
合には、図12のアンドゲート34、オアゲート36の
出力はLとなり、それぞれオアゲート25、または28
の出力するライトイネーブル信号によって、RAM4
0、または41に書き込まれるデータは0となり、その
結果ウェイ0、またはウェイ1のリプレースフラグが0
に更新され、更新後のリプレースフラグの値は01、ま
たは00となる。
【0075】
【発明の効果】以上詳細に説明したように、本発明によ
れば、従来のように例えば別のメモリにウェイ指定情報
を記憶する必要もなくなり、情報処理装置としての全体
の回路面積を削減することができる。またブランチヒス
トリにおけるエントリの新規登録、エントリデータの更
新、または削除に必要とする時間を必要最小限、例えば
1サイクルタイムに限定することが可能となり、分岐命
令に対応する分岐先アドレス予測のために行われるブラ
ンチヒストリの検索を阻害する時間を最小限とすること
ができ、ブランチヒストリをより有効に活用することが
可能となり、ブランチヒストリを備える情報処理装置の
処理効率向上に寄与するところが大きい。
【図面の簡単な説明】
【図1】本発明の原理構成ブロック図である。
【図2】本発明における情報処理装置の全体構成を示す
ブロック図である。
【図3】ブランチヒストリにおける複数のウェイを示す
図である。
【図4】ブランチヒストリにおけるエントリの格納内容
の例を示す図である。
【図5】本発明の実施形態における処理の全体フローチ
ャートである。
【図6】命令フェッチ部による処理の詳細フローチャー
トである。
【図7】分岐命令制御部による処理の詳細フローチャー
トである。
【図8】ブランチヒストリによる処理の詳細フローチャ
ートである。
【図9】リプレースフラグによるウェイの指定およびリ
プレースフラグの更新を説明する図である。
【図10】リプレースフラグによるウェイ選択回路の一
部の構成を示す図(その1)である。
【図11】リプレースフラグによるウェイ選択回路の一
部の構成を示す図(その2)である。
【図12】リプレースグループ更新回路の一部の構成を
示す図(その1)である。
【図13】リプレースグループ更新回路の一部の構成を
示す図(その2)である。
【符号の説明】
1 情報処理装置 2,17 ブランチヒストリ 3 命令フェッチ手段 4 命令実行部 11 命令アドレスレジスタ 12 命令アドレス生成回路 13 キャッシュ 14 命令バッファ 15 デコーダ 16 分岐命令制御部 18 命令フェッチ制御回路
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平1−286031(JP,A) 特開 平2−71328(JP,A) 特開 平4−175825(JP,A) 特開 平6−67880(JP,A) 特開 平8−110857(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/38

Claims (14)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数のウェイを持つブランチヒストリを
    備える情報処理装置において、 記憶装置等からフェッチされた命令が分岐命令であり、
    かつ該分岐命令に対応してブランチヒストリに対するデ
    ータ処理が必要となる場合に備えて、該データ処理対象
    となるべきエントリが存在するウェイを指定するウェイ
    指定情報を該命令のアドレスに添付して、該情報処理装
    置内で命令を実行する命令実行部に与える命令フェッチ
    手段を備えることを特徴とする複数のウェイを持つブラ
    ンチヒストリを備える情報処理装置。
  2. 【請求項2】 前記ブランチヒストリに対するデータ処
    理が、分岐命令の実行によって分岐成立が判明した時、
    該分岐命令自身の命令アドレスと分岐先の命令アドレス
    とをブランチヒストリに登録する新規登録であり、前記
    ウェイ指定情報が該新規登録の対象となるべきエントリ
    が存在するウェイを指定するものであることを特徴とす
    る請求項1記載の複数のウェイを持つブランチヒストリ
    を備える情報処理装置。
  3. 【請求項3】 前記ウェイ指定情報が、新たに作成され
    るべきエントリが存在するウェイを示すフラグであるこ
    とを特徴とする請求項2記載の複数のウェイを持つブラ
    ンチヒストリを備える情報処理装置。
  4. 【請求項4】 前記ブランチヒストリが前記ウェイ指定
    情報としてのフラグを更新するフラグ更新手段を備え、 該ブランチヒストリ上に新しいエントリが作成された
    時、該フラグ更新手段が該新しいエントリが存在しない
    ウェイを指定するように該フラグを更新して、前記命令
    アドレスに添付されるべきウェイ指定情報として前記命
    令フェッチ手段に与えることを特徴とする請求項3記載
    の複数のウェイを持つブランチヒストリを備える情報処
    理装置。
  5. 【請求項5】 前記ブランチヒストリが前記ウェイ指定
    情報としてのフラグを更新するフラグ更新手段を備え、 該ブランチヒストリ上でエントリの削除が行われたと
    き、該フラグ更新手段が該削除されたエントリが存在し
    たウェイを指定するように該フラグを更新して、前記命
    令アドレスに添付されるべきウェイ指定情報として前記
    命令フェッチ手段に与えることを特徴とする請求項3記
    載の複数のウェイを持つブランチヒストリを備える情報
    処理装置。
  6. 【請求項6】 前記命令フェッチ手段が、前記ブランチ
    ヒストリ上に前記フェッチされた命令のアドレスがすで
    に登録されているエントリが存在するか否かの検索が完
    了する前に、前記新規登録の対象とすべきエントリが存
    在するウェイを指定するウェイ指定情報を前記命令のア
    ドレスに添付することを特徴とする請求項2記載の複数
    のウェイを持つブランチヒストリを備える情報処理装
    置。
  7. 【請求項7】 前記ブランチヒストリに対するデータ処
    理が、すでに該ブランチヒストリに登録されているデー
    タの更新であり、前記ウェイ指定情報が該データ更新の
    対象とすべきエントリが存在するウェイを指定するもの
    であることを特徴とする請求項1記載の複数のウェイを
    持つブランチヒストリを備える情報処理装置。
  8. 【請求項8】 前記ウェイ指定情報がデータ更新の対象
    とすべきエントリが存在するウェイを指定するフラグで
    あり、 前記ブランチヒストリに対して、前記フェッチされた命
    令の実行に先立って、該フェッチされた命令のアドレス
    がブランチヒストリにすでに登録されているか否かを検
    索する命令アドレス検索手段を備え、 該フェッチされた命令のアドレスが登録されているエン
    トリが検出された時、該命令アドレス検索手段が該検出
    されたエントリが存在するウェイを指定するフラグを前
    記命令アドレスに添付されるべきウェイ指定情報として
    前記命令フェッチ手段に与えることを特徴とする請求項
    7記載の複数のウェイを持つブランチヒストリを備える
    情報処理装置。
  9. 【請求項9】 前記ブランチヒストリに対するデータ処
    理が、すでに該ブランチヒストリに登録されているデー
    タの削除であり、前記ウェイ指定情報が該データ削除の
    対象とすべきエントリが存在するウェイを指定するもの
    であることを特徴とする請求項1記載の複数のウェイを
    持つブランチヒストリを備える情報処理装置。
  10. 【請求項10】 前記ウェイ指定情報がデータ削除の対
    象となるエントリが存在するウェイを指定するフラグで
    あり、 前記ブランチヒストリに対して、前記フェッチされた命
    令の実行に先立って、該フェッチされた命令のアドレス
    がブランチヒストリにすでに登録されているか否かを検
    索する命令アドレス検索手段を備え、 該フェッチされた命令のアドレスが登録されているエン
    トリが検出された時、該命令アドレス検索手段が該検出
    されたエントリが存在するウェイを指定するフラグを前
    記命令アドレスに添付されるべきウェイ指定情報として
    前記命令フェッチ手段に与えることを特徴とする請求項
    9記載の複数のウェイを持つブランチヒストリを備える
    情報処理装置。
  11. 【請求項11】 前記情報処理装置が、分岐命令の実行
    によって前記ブランチヒストリに対するデータ処理が必
    要となった時、該データ処理に必要な情報と前記命令の
    アドレスに添付されたウェイ指定情報とを前記ブランチ
    ヒストリに与える分岐命令制御手段を更に備えることを
    特徴とする請求項1記載の複数のウェイを持つブランチ
    ヒストリを備える情報処理装置。
  12. 【請求項12】 前記ブランチヒストリに対して、前記
    分岐命令制御手段によって与えられたデータ処理に必要
    な情報とウェイ指定情報とに対応して、対象エントリに
    対するデータ処理を実行するデータ処理手段を備えるこ
    とを特徴とする請求項11記載の複数のウェイを持つブ
    ランチヒストリを備える情報処理装置。
  13. 【請求項13】 前記対象エントリに対するデータ処理
    がデータの新規登録、更新、または削除であることを特
    徴とする請求項12記載の複数のウェイを持つブランチ
    ヒストリを備える情報処理装置。
  14. 【請求項14】 前記データ処理手段が、前記対象エン
    トリに対するデータ処理を、前記情報処理装置の1サイ
    クルタイムで実行することを特徴とする請求項13記載
    の複数のウェイを持つブランチヒストリを備える情報処
    理装置。
JP35092598A 1998-12-10 1998-12-10 複数のウェイを持つブランチヒストリを備える情報処理装置 Expired - Fee Related JP3522135B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP35092598A JP3522135B2 (ja) 1998-12-10 1998-12-10 複数のウェイを持つブランチヒストリを備える情報処理装置
US09/456,918 US6532534B1 (en) 1998-12-10 1999-12-07 Information processing apparatus provided with branch history with plurality of designation ways

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP35092598A JP3522135B2 (ja) 1998-12-10 1998-12-10 複数のウェイを持つブランチヒストリを備える情報処理装置

Publications (2)

Publication Number Publication Date
JP2000172503A JP2000172503A (ja) 2000-06-23
JP3522135B2 true JP3522135B2 (ja) 2004-04-26

Family

ID=18413849

Family Applications (1)

Application Number Title Priority Date Filing Date
JP35092598A Expired - Fee Related JP3522135B2 (ja) 1998-12-10 1998-12-10 複数のウェイを持つブランチヒストリを備える情報処理装置

Country Status (2)

Country Link
US (1) US6532534B1 (ja)
JP (1) JP3522135B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7783871B2 (en) * 2003-06-30 2010-08-24 Intel Corporation Method to remove stale branch predictions for an instruction prior to execution within a microprocessor
JP4327008B2 (ja) * 2004-04-21 2009-09-09 富士通株式会社 演算処理装置及び演算処理装置の制御方法
JP4362096B2 (ja) * 2004-09-30 2009-11-11 富士通株式会社 情報処理装置,リプレース方法,リプレースプログラム及びリプレースプログラムを記録したコンピュータ読取可能な記録媒体
EP1990713B1 (en) * 2006-02-28 2013-04-10 Fujitsu Ltd. Branch predicting device for computer
JP5633169B2 (ja) * 2010-03-25 2014-12-03 富士通株式会社 分岐予測方法及びその方法を実行する分岐予測回路
JP2011209774A (ja) * 2010-03-26 2011-10-20 Fujitsu Ltd 分岐予測方法及びその方法を実行する分岐予測回路
JP2013131036A (ja) 2011-12-21 2013-07-04 Fujitsu Ltd 演算処理装置及び演算処理装置の制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01286031A (ja) 1988-05-13 1989-11-17 Nec Corp 情報処理装置
JPH0271328A (ja) 1988-09-07 1990-03-09 Nec Corp 分岐ヒストリーテーブル制御方式
JPH04175825A (ja) 1990-11-07 1992-06-23 Nec Corp 分岐履歴テーブルを備えた情報処理装置
JP2982506B2 (ja) 1992-08-18 1999-11-22 日本電気株式会社 分岐ヒストリテーブル制御回路
US5978906A (en) * 1996-11-19 1999-11-02 Advanced Micro Devices, Inc. Branch selectors associated with byte ranges within an instruction cache for rapidly identifying branch predictions

Also Published As

Publication number Publication date
JP2000172503A (ja) 2000-06-23
US6532534B1 (en) 2003-03-11

Similar Documents

Publication Publication Date Title
US4827402A (en) Branch advanced control apparatus for advanced control of a branch instruction in a data processing system
JP2504830Y2 (ja) デ―タ処理装置
JPH0644071A (ja) 一サイクルレジスタマッピング
JP2003005956A (ja) 分岐予測装置、プロセッサ、及び分岐予測方法
JPH0557616B2 (ja)
JP2001243069A (ja) 分岐予測装置及び分岐予測方法
US5146570A (en) System executing branch-with-execute instruction resulting in next successive instruction being execute while specified target instruction is prefetched for following execution
JP3522135B2 (ja) 複数のウェイを持つブランチヒストリを備える情報処理装置
JP2596712B2 (ja) 近接した分岐命令を含む命令の実行を管理するシステム及び方法
JPH03129432A (ja) 分岐制御回路
JP3469469B2 (ja) 情報処理装置
EP0969358A2 (en) Information processing device and method for performing parallel processing
JPH0689173A (ja) ブランチ・ヒストリーを持つ命令実行処理装置
JP3532835B2 (ja) データ処理装置およびプログラム変換装置
WO1998011484A1 (fr) Processeur de commande a memoire d'historique
JP2534662B2 (ja) 命令キヤツシユ制御方法
JPS6284340A (ja) 命令実行方法およびデータ処理装置
JP2943772B2 (ja) 分岐予測方式
US6360310B1 (en) Apparatus and method for instruction cache access
JPH06124206A (ja) 分岐命令予測処理装置及びその処理方法
JP2817524B2 (ja) 命令キャッシュ制御方式
JP2778610B2 (ja) パイプライン演算制御方法およびシステム
JP2001014162A (ja) 分岐予測方法およびデータ処理装置
JP2001154845A (ja) キャッシュミスした後のメモリバスアクセス制御方式
JP4049490B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040120

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040203

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

Free format text: PAYMENT UNTIL: 20080220

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090220

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090220

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100220

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110220

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110220

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130220

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130220

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20140220

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees