JP3954992B2 - メモリインタフェース回路 - Google Patents

メモリインタフェース回路 Download PDF

Info

Publication number
JP3954992B2
JP3954992B2 JP2003184366A JP2003184366A JP3954992B2 JP 3954992 B2 JP3954992 B2 JP 3954992B2 JP 2003184366 A JP2003184366 A JP 2003184366A JP 2003184366 A JP2003184366 A JP 2003184366A JP 3954992 B2 JP3954992 B2 JP 3954992B2
Authority
JP
Japan
Prior art keywords
address
branch
prefetch buffer
register
prefetch
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
JP2003184366A
Other languages
English (en)
Other versions
JP2005018553A (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 JP2003184366A priority Critical patent/JP3954992B2/ja
Priority to US10/797,104 priority patent/US7073045B2/en
Publication of JP2005018553A publication Critical patent/JP2005018553A/ja
Application granted granted Critical
Publication of JP3954992B2 publication Critical patent/JP3954992B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • 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
    • 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
    • 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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、マイクロプロセッサ等の中央処理装置によりメモリからフェッチされる命令データのフェッチ効率を向上するためのプリフェッチバッファを有するメモリインタフェース回路に関する。
【0002】
【従来の技術】
一般に、命令データのフェッチ効率を向上するため、キャッシュメモリがマイクロプロセッサと主記憶の間に配置される。近時、キャッシュメモリのフェッチ効率をさらに向上するために、様々な手法が提案されている。
例えば、マイクロプロセッサが割り込み要求を受けてから割り込み処理を開始するまでの期間に、割り込みの先頭アドレスおよびそれ以降のアドレスに対応する複数の命令データをキャッシュメモリに転送することで、割り込み処理時にキャッシュヒットさせる手法が提案されている(例えば、特許文献1参照)。
【0003】
また、割り込み処理から復帰したときのキャッシュヒット効率を向上するために、割り込み専用のキャッシュメモリを通常のキャッシュメモリとは別に設ける手法が提案されている(例えば、特許文献2参照)。
さらに、マイクロプロセッサの割り込み要求回路に関し、割り込み要求源の検索時間を短縮するために、割り込み要求源に対応する先頭アドレスを予めメモリに格納する手法が提案されている(例えば、特許文献3参照)。
【0004】
一方、キャッシュメモリの代わりに記憶容量の小さいプリフェッチバッファを配置することで、命令のフェッチ効率を下げることなくコストを削減できるメモリインタフェース回路が提案されている。この技術では、プリフェッチバッファには、分岐アドレスのみが格納される。メモリインタフェース回路は、マイクロプロセッサから出力されるアドレスが分岐アドレス以外のとき、前回のアドレスを1だけ増加したアドレスにより命令データをプリフェッチする。このため、連続するアドレスに対応する命令データは、キャッシュヒットに相当する短いアクセス時間で読み出すことができる。さらに、分岐アドレスに対応する命令データがプリフェッチバッファに存在する場合、キャッシュヒットに相当する短いアクセス時間で読み出すことができる。
【0005】
【特許文献1】
特開2000−347931号公報
【特許文献2】
特開平6−28258号公報
【特許文献3】
昭62−259158号公報
【0006】
【発明が解決しようとする課題】
しかしながら、従来のプリフェッチバッファ方式では、分岐アドレスが頻繁に発生する場合、フェッチ効率は低下する。例えば、分岐アドレスが頻繁に発生し、かつ規則的に特定の割り込みが発生するシステムでは、プリフェッチバッファに保持された割り込みの先頭アドレスに対応する命令データは、分岐アドレスの発生によって順次書き換えられてしまう。
なお、割り込みが頻繁に発生するシステムに特許文献1の手法を適用する場合、キャッシュメモリに保持されてるデータは、書き換えられてしまい、フェッチ効率は低下する。また、命令データは割り込み要求が発生した後、割り込み要求が開始されるまでの間にキャッシュメモリに転送する必要がある。このため、このキャッシュメモリは、割り込み要求を受け付けない命令の実行中に割り込み要求が発生した場合のみ効果を有する。割り込み要求を受け付け可能な命令の実行中に割り込み要求が発生した場合、命令データをキャッシュメモリに転送する余裕はない。
【0007】
割り込みが頻繁に発生するシステムに特許文献2の手法を適用する場合、割り込み専用のキャッシュメモリに保持されてるデータは、書き換えられてしまい、フェッチ効率は低下する。
特許文献3は、割り込みベクタアドレスを短時間で検索する技術に関するものであり、割り込みベクタアドレスが示す記憶領域に保持されている命令データのフェッチ効率は改善できない。換言すれば、割り込みの発生頻繁にかかわらず、フェッチ効率は低い。
【0008】
本発明の目的は、マイクロプロセッサ等の中央処理装置によりフェッチされる命令データのフェッチ効率を向上することにある。特に、アドレスの分岐が頻繁に発生するシステムにおいて、命令データのフェッチ効率を向上することにある。
【0009】
【課題を解決するための手段】
請求項1のメモリインタフェース回路では、アドレス生成部は、中央処理装置から受ける内部アドレスが分岐アドレスのときに、その分岐アドレスをアクセスアドレスとして外部メモリに出力する。アドレス生成部は、次の分岐アドレスを受けるまでアクセスサイクル毎にアドレスを1ずつ増加させ、外部メモリに格納される命令データをプリフェッチするためのアクセスアドレスとして出力する。このため、内部アドレスが連続するときに、アドレス生成部が生成するアクセスアドレスにより、外部メモリに記憶されている命令データをプリフェッチできる。したがって、命令データのフェッチ効率を向上できる。また、連続する内部アドレスに対応する命令データは、プリフェッチバッファに保持する必要はない。このため、プリフェッチバッファの個数を最小限にできる。
【0010】
複数のプリフェッチバッファは、分岐アドレスを格納するタグレジスタおよびこの分岐アドレスが示す外部メモリ内の領域に格納されている命令データを格納するデータレジスタを有する。プリフェッチバッファは、通常動作期間に書き換え可能な複数の第1プリフェッチバッファと、指定された分岐アドレスおよびこの分岐アドレスが示す外部メモリ内の領域に格納されている命令データが予め格納され、通常動作期間に書き換えが禁止される少なくとも1つの第2プリフェッチバッファとで構成される。このため、通常動作期間に、中央処理装置が出力する分岐アドレスとこの分岐アドレスに対応する命令データとにより、第1プリフェッチバッファのみが書き換えられる。全体制御部は、中央処理装置が内部アドレスを順次出力する通常動作期間に、アドレス生成部、第1アドレス比較部およびデータ選択部の動作を制御する。
【0011】
通常動作期間において、第1アドレス比較部は、中央処理装置から出力される内部アドレスがタグレジスタに保持されている分岐アドレスと一致するときに、タグヒット信号を活性化する。データ選択部は、タグヒット信号の活性化時に、ヒットした分岐アドレスが格納されているタグレジスタに対応するデータレジスタから読み出される命令データを中央処理装置に出力する。すなわち、中央処理装置は、命令データを、外部メモリから待つことなくフェッチできる。データ選択部は、タグヒット信号の非活性化時に、外部メモリから読み出される分岐アドレスに対応する命令データを中央処理装置に出力する。
【0012】
プリフェッチバッファの所定数は、書き換えが禁止される第2プリフェッチバッファに割り当てられる。このため、中央処理装置から分岐アドレスが頻繁に出力される場合にも、第2プリフェッチバッファに保持される特定の分岐アドレスおよび命令データが書き換えられることを防止できる。この結果、中央処理装置の命令フェッチ効率を向上でき、システム全体のパフォーマンスを向上できる。特に、分岐アドレスが頻繁に発生し、そのうち特定の分岐アドレスが繰り返し発生するシステムで、フェッチ効率を向上できる。
【0013】
また、プリフェッチバッファのうち第1プリフェッチバッファとして使用する数または第2プリフェッチバッファとして使用する数が、スプリットレジスタに登録される。各プリフェッチバッファは、通常動作期間前の初期設定期間に、スプリットレジスタの値に応じて、第1プリフェッチバッファまたは第2プリフェッチバッファに割り当てられる。システムの特性に応じてスプリットレジスタを設定することで、第2プリフェッチバッファを所望の数に設定できる。換言すれば、そのシステムに最適なメモリインタフェース回路を提供できる。
【0014】
請求項2のメモリインタフェース回路では、全体制御部は、通常動作期間前の初期設定期間に、中央処理装置に接続されるデータバスを介して分岐アドレスを受け、受けた分岐アドレスを第2プリフェッチバッファのタグレジスタに格納する。全体制御部は、この分岐アドレスが示す外部メモリ内の領域に格納されている命令データを第2プリフェッチバッファのタグレジスタに対応するデータレジスタに格納する。このため、中央処理装置は、第2プリフェッチバッファのデータレジスタに命令データを格納する必要はない。この結果、中央処理装置の初期設定期間のパフォーマンスを向上できる。
【0015】
請求項3および請求項4のメモリインタフェース回路では、全体制御部は、初期設定期間に、データバスを介して受けた分岐アドレスを第2プリフェッチバッファのタグレジスタに格納する。この後、全体制御部は、中央処理装置からの書き込みによりセットされるスタートレジスタに応答して、第2プリフェッチバッファのタグレジスタに保持されている分岐アドレスをアドレス生成部を介して外部メモリに出力し、外部メモリから読み出される命令データを第2プリフェッチバッファのタグレジスタに対応するデータレジスタに格納する。専用のスタートレジスタを設けることで、中央処理装置は、全体制御部を容易に制御し、任意のタイミングで第2プリフェッチバッファのデータレジスタに命令データを格納させることができる。
【0016】
請求項5のメモリインタフェース回路では、データバッファは、アクセスアドレスに応じて外部メモリからプリフェッチされる命令データを一時的に保持する。第2アドレス比較部は、内部アドレスが外部メモリからプリフェッチするためのアクセスアドレスと一致するときに、プリフェッチヒット信号を出力する。データ選択部は、プリフェッチヒット信号の活性化時に、データバッファに保持されている命令データを中央処理装置に出力する。データ選択部は、プリフェッチヒット信号の非活性化時に、外部メモリから読み出される分岐アドレスに対応する命令データを中央処理装置に出力する。データバッファを設けることで、中央処理装置から出力される内部アドレスが連続するときに、外部メモリからプリフェッチした命令データを失うことなく中央処理装置に出力できる。
【0017】
請求項6のメモリインタフェース回路では、分岐カウンタは、通常動作期間に、中央処理装置からの分岐アドレスの出力回数を計数する。全体制御回路は、分岐カウンタのカウンタ値に基づいて、通常動作期間に、第1プリフェッチバッファのタグレジスタに保持される分岐アドレスの出現頻度が所定比率を超えると判断したときに、この第1プリフェッチバッファを第2プリフェッチバッファに変更する。出現頻度の高い分岐アドレスを保持している第1プリフェッチバッファを、書き換えが禁止される第2プリフェッチバッファに変更することで、実際のシステムの動作状態に合わせて、命令のフェッチ効率を向上できる。
【0018】
請求項7および請求項9のメモリインタフェース回路では、全体制御回路は、分岐カウンタのカウンタ値に基づいて、通常動作期間に、第2プリフェッチバッファのタグレジスタに保持される分岐アドレスの出現頻度が所定比率以下と判断したときに、この第2プリフェッチバッファを第1プリフェッチバッファに変更する。出現頻度の低い分岐アドレスを保持している第2プリフェッチバッファを、書き換え可能な第1プリフェッチバッファに変更することで、実際のシステムの動作状態に合わせて、命令のフェッチ効率を向上できる。
【0019】
請求項8のメモリインタフェース回路では、アドレス生成部は、中央処理装置から受ける内部アドレスが分岐アドレスのときに、その分岐アドレスをアクセスアドレスとして外部メモリに出力する。アドレス生成部は、次の分岐アドレスを受けるまでアクセスサイクル毎にアドレスを1ずつ増加させ、外部メモリに格納される命令データをプリフェッチするためのアクセスアドレスとして出力する。このため、内部アドレスが連続するときに、アドレス生成部が生成するアクセスアドレスにより、外部メモリに記憶されている命令データをプリフェッチできる。したがって、命令データのフェッチ効率を向上できる。また、連続する内部アドレスに対応する命令データは、プリフェッチバッファに保持する必要はない。このため、プリフェッチバッファの個数を最小限にできる。
【0020】
複数のプリフェッチバッファは、分岐アドレスを格納するタグレジスタおよびこの分岐アドレスが示す外部メモリ内の領域に格納されている命令データを格納するデータレジスタを有する。各プリフェッチバッファは、通常動作期間に書き換え可能な第1プリフェッチバッファ、または指定された分岐アドレスおよびこの分岐アドレスが示す外部メモリ内の領域に格納されている命令データが格納され、通常動作期間に書き換えが禁止される第2プリフェッチバッファのいずれかに設定される。このため、通常動作期間に、中央処理装置が出力する分岐アドレスとこの分岐アドレスに対応する命令データとにより、第1プリフェッチバッファのみが書き換えられる。
【0021】
分岐カウンタは、通常動作期間に、中央処理装置からの分岐アドレスの出力回数を計数する。全体制御部は、中央処理装置が内部アドレスを順次出力する通常動作期間に、アドレス生成部、第1アドレス比較部、データ選択部および分岐カウンタの動作を制御する。
通常動作期間において、第1アドレス比較部は、中央処理装置から出力される内部アドレスがタグレジスタに保持されている分岐アドレスと一致するときに、タグヒット信号を活性化する。データ選択部は、タグヒット信号の活性化時に、ヒットした分岐アドレスが格納されているタグレジスタに対応するデータレジスタから読み出される命令データを中央処理装置に出力する。すなわち、中央処理装置は、命令データを、外部メモリから待つことなくフェッチできる。データ選択部は、タグヒット信号の非活性化時に、外部メモリから読み出される分岐アドレスに対応する命令データを中央処理装置に出力する。
【0022】
全体制御回路は、分岐カウンタのカウンタ値に基づいて、通常動作期間に、中央処理装置から出力される内部アドレスの中で第1プリフェッチバッファのタグレジスタに保持される分岐アドレスの出現頻度が所定比率を超えるときに、この第1プリフェッチバッファを第2プリフェッチバッファに変更する。分岐アドレスの出現頻度が高いときに、対応する第1プリフェッチバッファを書き換えが禁止される第2プリフェッチバッファに変更することで、中央処理装置の命令フェッチ効率を向上でき、システム全体のパフォーマンスを向上できる。特に、分岐アドレスが頻繁に発生し、そのうち特定の分岐アドレスが繰り返し発生するシステムで、フェッチ効率を向上できる。
【0023】
プリフェッチバッファの所定数を第1または第2プリフェッチバッファに割り当てる初期設定が不要なため、全体制御回路を簡易に構成できる。
請求項10のメモリインタフェース回路では、各プリフェッチバッファは、第1または第2プリフェッチバッファとして使用されていることを示す識別フラグをそれぞれ有している。全体制御回路は、識別フラグにより、プリフェッチバッファが第1および第2プリフェッチバッファの何れに割り当てられているかを容易に認識できる。この結果、全体制御回路を簡易に構成できる。
【0024】
【発明の実施の形態】
以下、本発明の実施形態を図面を用いて説明する。図中、太線で示した信号線は、複数本で構成されている。また、太線が接続されているブロックの一部は、複数の回路で構成されている。信号が伝達される信号線には、信号名と同じ符号を使用する。
図1は、本発明のメモリインタフェース回路の第1の実施形態を示している。このメモリインタフェース回路は、シングルチップマイクロコンピュータに搭載されている。
【0025】
シングルチップマイクロコンピュータは、CPUコア100(中央処理装置、マイクロプロセッサ)と内蔵メモリ200(外部メモリ)との間に、本発明のメモリインタフェース回路300を接続して構成されている。シングルチップマイクロコンピュータは、例えば、一眼レフカメラ、ディジタルカメラなどのステッピングモータを制御するための制御チップとして使用される。この種の用途では、カメラの操作スイッチを常時モニタし、ステッピングモータを正確に駆動するために、頻繁に割り込み処理をする必要がある。
【0026】
この実施形態では、CPUコア100からの内部アドレスIADを伝達する命令アドレスバスIADおよび、命令データを伝達する命令データバスIDTは、それぞれ32ビットで構成されている。1つの命令データは、16ビットで構成される。CPUコア100は、クロックCLKの2サイクル毎に2つの命令データを一度にフェッチする。このため、CPUコア100は、1命令当たり1クロックサイクルを要する。
【0027】
内蔵メモリ200のアクセスサイクルは、3クロックサイクルである。このため、内蔵メモリ200をアクセスする場合、メモリインタフェース回路300は、CPUコア100にウエイト信号IWAITを出力し、バスサイクルを1クロックサイクル引き延ばす必要がある。なお、クロックCLKがCPUコア100内で分周される場合、クロックサイクルは、分周クロックのサイクルになる。
【0028】
メモリインタフェース回路300は、ステートマシーン10、アドレス生成部12、アドレス比較部14、レジスタ16、データ選択部18、データバッファ20およびプリフェッチバッファ部22を有している。
プリフェッチバッファ部22は、8つのプリフェッチバッファPF1-PF8を有している。各プリフェッチバッファPF1-PF8は、1ビットで構成されるバリッドフラグVLD(識別フラグ)、32ビットで構成されるタグレジスタTAGおよび32ビットで構成されるデータレジスタDATAを有している。プリフェッチバッファPF1-PF8の所定数は、CPUコア100がプログラムカウンタに応じて内部アドレスIADを順次出力する通常動作期間に書き換え可能な通常プリフェッチバッファ(第1プリフェッチバッファ)として機能し、残りのプリフェッチバッファは、通常動作期間に、書き換えが禁止される割り込みプリフェッチバッファ(第2プリフェッチバッファ)として機能する。
【0029】
バリッドフラグVLDは、プリフェッチバッファPF1-PF8が通常プリフェッチバッファまたは割り込みプリフェッチバッファのいずれかで機能させるかを識別するビットである。パワーオンリセット後の初期化期間において、バリッドフラグVLDが"0"にリセットされたプリフェッチバッファは、通常プリフェッチバッファとして機能し、バリッドフラグVLDが"1"にセットされたプリフェッチバッファは、割り込みプリフェッチバッファとして機能する。バリッドフラグVLDを設けることで、ステートマシーン10は、プリフェッチバッファPF1-8が通常プリフェッチバッファまたは割り込みプリフェッチバッファのいずれに割り当てられているかを容易に認識できる。この結果、ステートマシン10の回路構成は、簡易になる。
【0030】
通常プリフェッチバッファのタグレジスタTAGは、内蔵メモリ200をアクセスするためにCPUコア100が出力する分岐アドレスを保持する。割り込みプリフェッチバッファのタグレジスタTAGは、初期設定期間にシステム(ユーザ)が設定する割り込みベクタの先頭アドレス(分岐アドレスの一種;以下分岐アドレスまたは割り込みベクタアドレスとも称する)を保持する。
【0031】
データレジスタDATAは、タグレジスタTAGに保持される分岐アドレスまたは割り込みベクタアドレスが示す内蔵メモリ200の領域に格納されている命令データを保持する。
ステートマシーン10は、アドレス生成部12、アドレス比較部14(第1および第2アドレス比較部)、レジスタ16、データ選択部18、データバッファ20およびプリフェッチバッファ部22の動作を制御するための制御信号を出力する全体制御部として動作する。
【0032】
具体的には、ステートマシーン10は、CPUコア100から高レベルの分岐信号IJMPを受けたときに、内部アドレスIADが分岐アドレスであると判断する。ステートマシーン10は、この分岐アドレスがプリフェッチバッファ部22に保持されていないことを低レベルのタグヒット信号THITにより認識し、この分岐アドレスに対応する命令データを内蔵メモリ200から読み出すために、ウエイト信号IWAITを1クロックサイクルの期間CPUコア100に出力する。
【0033】
ステートマシーン10は、低レベルの分岐信号IJMPを受け、内部アドレスIADが分岐アドレスでないと判断したとき、すなわち、内部アドレスIADがアクセスサイクル毎に順次1ずつ増加されるときに、アドレス生成部12に内部アドレスIADに1を加えたアドレス(次アドレス)をメモリアクセス信号MADとして出力させるために、高レベルのインクリメント信号INCを出力する。
【0034】
また、ステートマシーン10は、パワーオンリセット後の初期設定期間に、CPUコア100からデータバスDBを介して出力される分岐アドレス(タグアドレス)をプリフェッチバッファ部22に転送する。ステートマシーン10は、初期設定期間に、CPUコア100からデータバスDBを介してレジスタ16に書き込まれる情報に基づいてバリッドフラグVLDを設定する。
【0035】
アドレス生成部12は、ステートマシーン10からのインクリメント信号INCが低レベルのとき、CPUコア100から受ける内部アドレスIADが分岐アドレスであると判断し、その分岐アドレスをメモリアクセスアドレスMADとして内蔵メモリ200に出力する。
アドレス生成部12は、インクリメント信号INCが高レベルのとき、アクセスサイクル毎にアドレスを1ずつ増加させ、生成したアドレスをメモリアクセスアドレスMADとして内蔵メモリ200に出力する。すなわち、分岐アドレスを受けた後、次の分岐アドレスを受けるまでの間、アクセスアドレスMADはアドレス生成部12により生成される。
【0036】
アドレス生成部12内で生成されたアドレスは、内蔵メモリ200に格納される命令データをプリフェッチするためのプリフェッチアドレスとして使用される。内部アドレスIADが連続する期間、アドレス生成部12がプリフェッチアドレスを生成することで、命令データのプリフェッチが可能になる。プリフェッチバッファ部22は、連続するアドレスに対応する命令データを保持する必要がなくなるため、その構成を最小限にできる。
【0037】
アドレス比較部14は、内部アドレスIADとタグレジスタTAGに保持されているタグアドレスTAD(分岐アドレスまたは割り込みベクタアドレス)とが一致するときに、タグヒット信号THITを高レベルに活性化する。アドレス比較部14は、アドレス生成部12が生成するプリフェッチアドレス(メモリアクセスアドレスMAD)と、CPUコア100から出力される内部アドレスIADとが一致するときに、プリフェッチヒット信号PHITを出力する。このとき、プリフェッチされた命令データが内部データIDTとしてCPUコア100に出力される。
【0038】
レジスタ16は、スプリットレジスタ16aおよびスタートレジスタ16bを有している。スプリットレジスタ16aは、3ビット(図2に示すSPLIT[2:0])で構成され、プリフェッチバッファPF1-PF8のうち割り込みプリフェッチバッファとして使用するバッファを示すスプリット情報を保持する。スプリット情報は、初期設定期間に、CPUコア100からデータバスDBを介して書き込まれる。そして、初期設定期間に、スプリット情報に基づいて割り込みプリフェッチバッファとして動作するプリフェッチバッファ(PF1-PF8の少なくとも一つ)のバリッドフラグVLDに"1"がセットされる。スプリットレジスタ16aにより割り込みプリフェッチバッファを所望の数に設定することで、そのシステムに最適なメモリインタフェース回路を提供できる。
【0039】
スタートレジスタ16bは、1ビットで構成される。スタートレジスタ16bは、初期設定期間に、データバスDBを介して受けた割り込みベクタアドレスが割り込みプリフェッチバッファ(PF1-PF8の少なくとも一つ)のタグレジスタTAGに格納された後、データバスDBを介してCPUコア100により高レベル(論理"1")にセットされる。
【0040】
スタートレジスタ16bのセットに応答して、ステートマシーン10が動作し、割り込みプリフェッチバッファのタグレジスタTAGに保持されているタグアドレスTAD(割り込みベクタアドレス)は、アドレス生成部12を介して内蔵メモリ200に出力される。そして、内蔵メモリ200から読み出される命令データは、その割り込みベクタアドレスが保持されているタグレジスタTAGに対応するデータレジスタDATAに格納される。このように、スタートレジスタ16bは、割り込みプリフェッチバッファのデータレジスタDATAに命令データを書き込むためのトリガとして使用される。
【0041】
データバッファ20は、内蔵メモリ200からプリフェッチされた命令データを一時的に保持する。
データ選択部18は、タグヒット信号THITの活性化時に、ヒットした分岐アドレスまたは割り込みベクタアドレスが格納されているタグレジスタTAGに対応するデータレジスタDATAから読み出される命令データHDTを、内部データIDTとしてCPUコア100に出力する。データ選択部18は、プリフェッチヒット信号PHITの活性化時に、データバッファ20に保持されている命令データPDTを、内部データIDTとしてCPUコア100に出力する。また、データ選択部18は、タグヒット信号THITおよびプリフェッチヒット信号PHITの非活性化時に、内蔵メモリ200から直接読み出される分岐アドレスまたは割り込みベクタアドレスに対応する命令データMDTを、内部データIDTとしてCPUコア100に出力する。
【0042】
図2は、第1の実施形態における初期設定期間のインタフェース回路300の動作を示している。
CPUコア100は、1番目のクロックCLKの立ち上がりエッジに同期して、スプリットレジスタ16aにスプリット情報(例えば、SPLIT[2:0]="011")を書き込む(図2(a))。ステートマシーン10は、スプリットレジスタ16aの内容に基づいて、2番目のクロックCLKの立ち上がりエッジに同期して、プリフェッチバッファPF1-PF3のバリッドフラグVLDを"1"にセットする(図2(b、c、d))。すなわち、スプリットレジスタ16aに2進数の"011"が書き込まれることで、初期設定期間後に、プリフェッチバッファPF1-PF3は、割り込みプリフェッチバッファとして機能し、プリフェッチバッファPF4-PF8は、通常プリフェッチバッファとして機能する。
【0043】
CPUコア100は、3番目のクロックCLKの立ち上がりエッジに同期して、データバスDBに1つ目の割り込みベクタアドレスIVCTAD1を出力する。ステートマシーン10は、3番目のクロックCLKの立ち下がりエッジに同期して、割り込みベクタアドレスIVCTAD1をプリフェッチバッファPF1のタグレジスタTAGに書き込む(図2(e))。同様にして、4番目および5番目のクロックCLKに同期して、割り込みベクタアドレスIVCTAD2-3がプリフェッチバッファPF2、PF3のタグレジスタTAGにそれぞれ書き込まれる(図2(f、g))。プリフェッチバッファPF4-8のバリッドフラグVLDは、低レベルを保持し、タグレジスタTAGおよびデータレジスタDATAには無効なデータが保持されている(図2(h))。
【0044】
次に、CPUコア100は、6番目のクロックCLKの立ち上がりエッジに同期して、スタートレジスタ16bに"1"を書き込む(図2(i))。ステートマシーン10(図中のSM10)は、スタートレジスタ16bのセットに応答して、ウエイト信号IWAITをCPUコア100に出力する(図2(j))。CPUコア100は、ウエイト信号IWAITを受けている間ウエイト状態になり、内部アドレスIADの更新を停止する(READ状態)。
【0045】
ステートマシーン10は、プリフェッチバッファ部22およびアドレス生成部12を制御し、8、10、12番目のクロックCLKに同期して、プリフェッチバッファPF1-3のタグレジスタTAGに保持された割り込みベクタアドレスIVCTAD1-3を順次読み出し(PF1-3)、読み出した割り込みベクタアドレスIVCTAD1-3をメモリアクセスアドレスMADとして内蔵メモリ200に出力する(図2(k、l、m))。
【0046】
そして、ステートマシーン10は、内蔵メモリ200から読み出される割り込みベクタアドレスIVCTAD1-3が示す領域に格納されている命令データIVCTDT1-3を、プリフェッチバッファPF1-3のデータレジスタDATAにそれぞれ書き込む(図2(n、o、p))。専用のスタートレジスタ16bを設けることで、CPUコア100は、所望のタイミングで割り込みプリフェッチバッファへの命令データの格納処理を開始できる。また、スタートレジスタ16bへの書き込みにより、ステートマシン10が格納処理を自動的に実行するため、CPUコア100は、格納処理の間、別の処理を実行できる。
【0047】
ステートマシーン10は、プリフェッチバッファPF1-3への命令データIVCTDT1-3の書き込み後、14番目のクロックCLKの立ち上がりエッジに同期して、ウエイト信号IWAITを低レベルに変化させる(図2(q))。CPUコア100は、低レベルのウエイト信号IWAITに応答してスタートレジスタ16bを"0"にリセットする(図2(r))。この後、CPUコア100は、16番目のクロックサイクル以降、通常の命令フェッチを再開する。
【0048】
図2に示した割り込みプリフェッチバッファへのタグアドレスおよび命令データの書き込みは、パワーオンリセット後の初期設定期間(スタートアップルーチン)で1回実施すればよい。このため、システム全体のパフォーマンスは低下しない。
図3は、第1の実施形態における通常動作期間のインタフェース回路300の動作を示している。
【0049】
この例では、図2に示した初期設定動作が予め実行され、プリフェッチバッファPF1-3は、割り込みプリフェッチバッファとして割り当てられている。例えば、プリフェッチバッファPF1は、割り込みベクタアドレスIVCTAD1および命令データIVCTDT1を保持しており、そのバリッドフラグVLDは高レベルにセットされている(図3(a))。通常プリフェッチバッファとして割り当てられたプリフェッチバッファPF4-8のバリッドフラグVLDは、低レベルにリセットされている(図3(b))。
【0050】
まず、最初のアクセスサイクル1stで通常分岐が発生し、CPUコア100は、内部アドレスIAD(AD1)および分岐信号IJMPを出力する(図3(c))。アドレスAD1は、プリフェッチバッファPF1-8のタグレジスタTAGに保持されていないため、タグヒット信号THITは出力されない(図3(d))。図1に示したステートマシーン10は、低レベルのプリフェッチヒット信号PHITおよびタグヒット信号THITを受け、CPUコア100にウエイト信号IWAITを出力する(図3(e))。CPUコア100は、ウエイト信号IWAITを受けている間、そのアクセスサイクルを引き延ばす。
【0051】
アドレス生成回路12は、分岐信号IJMPに応答してステートマシン10から出力されるインクリメント信号INCを受け、メモリアクセスアドレスMAD(AD1)を出力する(図3(f))。内蔵メモリ200のアドレスAD1に対応する領域から命令データバスMDTに命令データDT1が読み出される(図3(g))。命令データDT1は、データ選択部18を介して命令データバスIDTに転送され、CPUコア100によりフェッチされる。アクセスサイクルは、内蔵メモリ200から命令データDT1を直接読み出す必要があるため、3クロックサイクルになる。
【0052】
ステートマシン10は、空いているプリフェッチバッファPF4のタグレジスタTAGおよびデータレジスタDATAにアドレスAD1および命令データDT1を書き込む(図3(h))。空いているプリフェッチバッファPF4に、アドレスAD1および命令データDT1が書き込まれることで、タグレジスタTAGがヒットする確立が上がるため、命令データのフェッチ効率は向上する。この結果、CPUコア100のパフォーマンスは向上する。なお、空いているプリフェッチバッファがない場合、ステートマシン10は、最古に書き込まれたプリフェッチバッファのタグレジスタTAGおよびデータレジスタDATAの内容を、アドレスAD1および命令データDT1に書き換える。
【0053】
2番目のアクセスサイクル2ndにおいて、CPUコア100は、アドレスAD1に連続する内部アドレスIAD(AD2)を出力する(図3(i))。アドレス生成回路12は、CPUコア100からアドレスAD1を受ける前に、アドレスAD1に応じて生成したアドレスAD2をメモリアクセスアドレスMADとして内蔵メモリ200に出力する(図3(j))。アドレス比較部14は、CPUコア100からの内部アドレスIAD(AD2)とアドレス生成回路12が生成したメモリアクセスアドレスMAD(AD2)とが一致するため、プリフェッチヒット信号PHITを出力する(図3(k))。
【0054】
データバッファ20は、内蔵メモリ200から読み出される命令データMDT(DT2)をプリフェッチする(図3(l))。データ選択回路18は、プリフェッチヒット信号PHITに応じて、データバッファ20からの命令データDT2を命令データバスIDTに転送する(図3(m))。アドレスAD2に対応する命令データDT2がデータバッファ20にプリフェッチされるため、アクセスサイクルは、最短の2クロックサイクルになる。すなわち、命令データのフェッチ効率は向上する。
【0055】
次のアクセスサイクル3rdでは、メモリインタフェース回路300は、アクセスサイクル2ndと同様に動作し、2クロックサイクルで命令データDT3をCPUコア100に出力する(図3(n))。
アクセスサイクル4thにおいて、CPUコア100は、アドレスAD3に連続しないアドレスAD1(分岐アドレス)を内部アドレスIADとして出力し、同時に分岐信号IJMPを出力する(図3(o))。アドレス比較部14は、プリフェッチバッファ部22からのタグアドレスTAD(AD1)を受け、アドレスAD1がプリフェッチバッファPF4に保持されていることを認識し、タグヒット信号THITを出力する(図3(p))。
【0056】
データ選択部18は、タグヒット信号THITに応じて、プリフェッチバッファPF4のデータレジスタDATAからの命令データDT1を命令データバスIDTに転送する(図3(q))。アドレスAD1に対応する命令データDT1がプリフェッチバッファPF4から読み出されるため、デアクセスサイクルは、最短の2クロックサイクルになる。
【0057】
この後、アクセスサイクル5th、6thでは、メモリインタフェース回路300は、アクセスサイクル2ndと同様に動作し、2クロックサイクルで命令データDT2、DT3をCPUコア100にそれぞれ出力する(図3(r))。
アクセスサイクル7thにおいて、CPUコア100は、アドレスAD3に連続しないアドレスAD10(分岐アドレス)を内部アドレスIADとして出力し、同時に分岐信号IJMPを出力する(図3(s))。メモリインタフェース回路300は、アクセスサイクル1stと同様に動作し、3クロックサイクルでアドレスAD10に対応する命令データDT10をCPUコア100に出力する(図3(t))。ステートマシン10は、空いているプリフェッチバッファPF5のタグレジスタTAGおよびデータレジスタDATAにアドレスAD10および命令データDT10を書き込む(図3(u))。
【0058】
アクセスサイクル8th、9thは、アクセスサイクル2nd、3rdと同様に実施され、プリフェッチされた命令データDT11、DT12は、CPUコア100に出力される(図3(v))。
アクセスサイクル10thにおいて、プリフェッチバッファPF1に設定した割り込みベクタアドレスIVCTAD1の割り込みが発生する。タグヒットとなるため、メモリインタフェース回路300は、アクセスサイクル4thと同様に動作し、2クロックサイクルで命令データIVCTDT1をCPUコア100に出力する(図3(w))。
【0059】
アクセスサイクル11th、12thは、アクセスサイクル2nd、3rdと同様に実施され、アドレス生成回路12が生成したアドレスIVA2、IVA3に対応してプリフェッチされた命令データIVD2、IVD3がCPUコア100に出力される(図3(x))。以上、本実施形態では、プリフェッチバッファPF1-8の所定数は、通常動作期間の前に予め書き換えが禁止される割り込みプリフェッチバッファに割り当てられる。このため、通常動作期間にCPUコア100から分岐アドレスまたは割り込みベクタアドレスが頻繁に出力される場合にも、割り込みプリフェッチバッファの内容が書き換えられることを防止できる。この結果、CPUコア100の命令フェッチ効率を向上でき、システム全体のパフォーマンスを向上できる。特に、分岐アドレスまたは割り込みベクタアドレスが頻繁に発生し、そのうち特定のアドレスが繰り返し発生するシステムで、フェッチ効率を向上できる。
【0060】
スプリットレジスタ16aを設定することで、割り込みプリフェッチバッファを所望の数に設定できる。換言すれば、割り込みプリフェッチバッファの割り当て数を可変にすることで、そのシステムに最適なメモリインタフェース回路を提供できる。
初期設定期間において、CPUコア100がスタートレジスタ16bをセットするだけで、割り込みプリフェッチバッファのデータレジスタDATAへの命令データの格納は、ステートマシン10により自動的に実施される。このため、CPUコア100の初期設定期間のパフォーマンスを向上できる。
【0061】
CPUコア100が発生する内部アドレスIADが連続するときに、アドレス生成部12が生成するメモリアクセスアドレスMADにより、内蔵メモリ200に記憶されている命令データをプリフェッチできる。したがって、命令データのフェッチ効率を向上できる。また、連続する内部アドレスIADに対応する命令データは、プリフェッチバッファ部22に保持する必要はない。このため、プリフェッチバッファPF1-8の個数を最小限にできる。メモリインタフェース回路300にデータバッファ20を形成することで、プリフェッチした命令データは、失われることなくCPUコア100に出力できる。
【0062】
バリッドフラグVLDにより、プリフェッチバッファPF1-8が通常プリフェッチバッファおよび割り込みプリフェッチバッファの何れに割り当てられているかを容易に認識できる。この結果、ステートマシン10の動作を簡素にできる。
図4は、本発明のメモリインタフェース回路の第2の実施形態を示している。第1の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【0063】
メモリインタフェース回路300Aは、第1の実施形態のステートマシーン10およびプリフェッチバッファ部22に代えてステートマシン10Aおよびプリフェッチバッファ部22Aを有している。また、メモリインタフェース回路300Aは、新たにアクセス監視部24を有している。
この実施形態は、プリフェッチバッファ部22Aが保持する分岐アドレス(割り込みベクタアドレスを含む)のCPUコア100からの発生頻度に応じて、プリフェッチバッファPF1-8が割り込みプリフェッチバッファまたは通常プリフェッチバッファに変更されることを特徴としている。発生頻度は、アクセス監視部24により調べられ、プリフェッチバッファの用途の変更は、ステートマシン10Aにより実施される。
【0064】
プリフェッチバッファ部22Aの各プリフェッチバッファPF1-8は、バリッドフラグVLD、タグレジスタTAGおよびデータレジスタDATAに加えて1ビットで構成されるロックフラグLOCKを有している。ロックフラグLOCKは、割り込みプリフェッチバッファから通常プリフェッチバッファへの変更を禁止するビットである。
【0065】
アクセス監視部24は、分岐信号IJMPの発生回数をカウントする分岐カウンタ24a、プリフェッチバッファPF1-8のヒット回数をそれぞれカウントす8つのヒットカウンタ24bを有している。分岐カウンタ24aは、例えば、分岐信号IJMPが100回発生する毎にリセットされる。すなわち、分岐カウンタ24aのカウンタ値は、"0"〜"100"が繰り返される。ヒットカウンタ24bは、分岐カウンタ24aとともに"0"にリセットされる。
【0066】
ステートマシン10Aは、分岐カウンタ24aのカウンタ値が"100"になったときに、プリフェッチバッファPF1-8にそれぞれ対応するヒットカウンタ24bのカウンタ値を読み込む。そして、ステートマシン10Aは、カウンタ値が"10"を超えるヒットカウンタ24bに対応する通常プリフェッチバッファ(PF1-8の何れでも可)のロックフラグLOCKおよびバリッドフラグVLDに"1"をセットし、この通常プリフェッチバッファを割り込みプリフェッチバッファに変更する。また、ステートマシン10Aは、カウンタ値が"10"以下のヒットカウンタ24bに対応する割り込みプリフェッチバッファ(PF1-8の何れでも可)のロックフラグLOCKおよびバリッドフラグVLDに"0"をリセットし、この割り込みプリフェッチバッファを通常プリフェッチバッファに変更する。
【0067】
図5は、第2の実施形態の通常動作期間の動作を示している。基本的な動作は、第1の実施形態(図3)と同じである。このため、第1の実施形態と同じ動作については、詳細な説明を省略する。なお、初期設定期間の動作は、ロックフラグLOCKが"0"にリセットされることを除き、第1の実施形態(図2)と同じである。
【0068】
図の左側の波形の始まりにおいて、図4に示したアクセス監視部24の分岐カウンタ24aのカウンタ値IJCNTは"99"を示している(図5(a))。プリフェッチバッファPF1、PF2に対応するヒットカウンタ24bのカウンタ値HCNTは、それぞれ"15"、"0"を示している(図5(b、c))。
図の左側の波形では、プリフェッチバッファPF1に設定された割り込みベクタアドレスIVCTAD1の割り込みが発生し、分岐信号IJMPが出力される(図5(d))。アクセス監視部24は、分岐信号IJMPに応答して分岐カウンタ24aをカウントアップし、カウンタ値IJCNTを"100"に設定する(図5(e))。プリフェッチバッファPF1が割り込みベクタアドレスIVCTAD1を保持しているため、アドレス比較部14は、タグヒット信号THITを出力する(図5(f))。アクセス監視部24は、タグヒット信号THITに応答してプリフェッチバッファPF1に対応するヒットカウンタ24bのカウンタ値HCNTをインクリメントする(図5(g))。
【0069】
アクセス監視部24は、プリフェッチバッファPF1に対応するヒットカウンタ24bのカウンタ値が"10"を超えているため、プリフェッチバッファPF1のロックフラグLOCKを"1"にセットする(図5(h))。すなわち、プリフェッチバッファPF1は、引き続き割り込みプリフェッチバッファとして機能する。
アクセス監視部24は、プリフェッチバッファPF2に対応するヒットカウンタ24bのカウンタ値が"10"以下であるため、プリフェッチバッファPF2のバリッドフラグVLDを"0"にリセットする(図5(i)。すなわち、プリフェッチバッファPF2は、割り込みプリフェッチバッファから通常プリフェッチバッファに変更される。
【0070】
この後、図の中央の波形に示すように、CPUコア100は、分岐アドレスAD10を内部アドレスIADとして出力し、同時に分岐信号IJMPを出力する(図5(j))。アクセス監視部24は、分岐信号IJMPに応答して分岐カウンタ24aをカウントアップし、カウンタ値IJCNTを"1"に設定する(図5(k))。分岐アドレスは、プリフェッチバッファPF1-PF8のいずれにも保持されていないため、ステートマシン10は、CPUコア100にウエイト信号IWAITを出力し(図5(l))、内蔵メモリ200から命令データDT10を読み出す(図5(m))。
【0071】
プリフェッチバッファPF2は、通常プリフェッチバッファに変更されている。このため、分岐アドレスAD10および分岐アドレスAD10に対応する命令データDT10は、プリフェッチバッファPF2に保持される(図5(n))。
CPUコア100のフェッチ動作が続き、図の右側の波形に示すように、分岐カウンタ24aのカウンタ値IJCNTは、"99"までカウントアップされる。CPUコア100は、分岐信号IJMPとともに、分岐アドレスAD10を再び出力する(図5(o))。アクセス監視部24は、分岐信号IJMPに応答して分岐カウンタ24aをカウントアップし、カウンタ値IJCNTを"100"に設定する(図5(p))。プリフェッチバッファPF2が分岐アドレスAD10を保持しているため、アドレス比較部14は、タグヒット信号THITを出力する(図5(q))。アクセス監視部24は、タグヒット信号THITに応答してプリフェッチバッファPF2に対応するヒットカウンタ24bのカウンタ値HCNTをインクリメントする(図5(r))。
【0072】
アクセス監視部24は、プリフェッチバッファPF2に対応するヒットカウンタ24bのカウンタ値が"10"を超えているため、プリフェッチバッファPF2のロックフラグLOCKおよびバリッドフラグVLDを"1"にセットする(図5(s))。また、アクセス監視部24は、プリフェッチバッファPF1に対応するヒットカウンタ24bのカウンタ値が"10"以下であるため、プリフェッチバッファPF1のロックフラグLOCKおよびバリッドフラグVLDを"0"にリセットする(図5(t))。すなわち、プリフェッチバッファPF2は、通常プリフェッチバッファから割り込みプリフェッチバッファに変更され、プリフェッチバッファPF1は、割り込みプリフェッチバッファから通常プリフェッチバッファに変更される。
【0073】
この実施形態においても、上述した第1の実施形態と同様の効果を得ることができる。さらに、この実施形態では、出現頻度の高い分岐アドレスまたは割り込みベクタアドレスを保持している通常プリフェッチバッファを、書き換えが禁止される割り込みプリフェッチバッファに変更することで、実際のシステムの動作状態に合わせて、命令のフェッチ効率を向上できる。また、出現頻度の低い分岐アドレスを保持している割り込みプリフェッチバッファを、書き換え可能な通常プリフェッチバッファに変更することで、実際のシステムの動作状態に合わせて、命令のフェッチ効率を向上できる。
【0074】
図6は、本発明のメモリインタフェース回路の第3の実施形態を示している。第1および第2の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
メモリインタフェース回路300Bは、第2の実施形態のステートマシーン10Aに代えてステートマシン10Bを有している。また、メモリインタフェース回路300Bは、レジスタ16を有していない。その他の構成は、第2の実施形態とほほ同じである。
【0075】
ステートマシン10Bは、第2の実施形態のステートマシン10Aから初期設定機能(図4のレジスタ16)を削除して構成されている。このため、プリフェッチバッファ部22Aは、初期設定されない。プリフェッチバッファPF1-8は、パワーオンリセット後において、全て通常プリフェッチバッファに一旦割り当てられる。パワーオンリセット後の通常動作期間では、第2の実施形態(図5)で示したように、プリフェッチバッファPF1-8は、タグヒット回数に応じて、割り込みプリフェッチバッファまたは通常プリフェッチバッファに変更される。
【0076】
この実施形態においても、上述した第1および第2の実施形態と同様の効果を得ることができる。さらに、この実施形態では、初期設定期間において、プリフェッチバッファPF1-8の所定数を割り込みプリフェッチバッファに割り当てる必要がない。このため、第1の実施形態のレジスタ16が不要になり、ステートマシン10Bの制御回路を簡易に構成できる。この結果、メモリインタフェース回路300Aのレイアウトサイズを小さくできる。
【0077】
なお、上述した第1の実施形態は、プリフェッチバッファPF1-3に割り込みベクタアドレスIVCTAD1-3を保持した例について述べた。本発明はかかる実施形態に限定されるものではない。例えば、プリフェッチバッファPF1-3に頻繁に発生する分岐アドレスを保持してもよい。
上述した第2の実施形態では、各プリフェッチバッファPF1-8にロックフラグLOCKを形成した例について述べた。本発明はかかる実施形態に限定されるものではない。例えば、バリッドフラグVLDにロックフラグLOCKの機能を持たせてもよい。この場合、図3に示した初期設定動作において、バリッドフラグVLDが"1"にセットされるプリフェッチバッファPF1-3は、通常動作期間の初めからロックされる。
【0078】
上述した実施形態では、本発明をシングルチップマイクロコンピュータに形成される内蔵メモリ200をアクセスするためのメモリインタフェース回路に適用した例について述べた。本発明はかかる実施形態に限定されるものではない。例えば、本発明をCPUコアが形成されるチップと別のメモリチップをアクセスするためのメモリインタフェース回路に適用してもよい。このとき、メモリインタフェース回路は、CPUコアと同じチップに形成れてもよく、CPUコアと別のチップに形成されてもよい。
【0079】
以上、本発明について詳細に説明してきたが、上記の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【0080】
【発明の効果】
請求項1のメモリインタフェース回路では、中央処理装置から分岐アドレスが頻繁に出力される場合にも、第2プリフェッチバッファに保持される分岐アドレスおよび命令データが書き換えられることを防止できる。この結果、中央処理装置の命令フェッチ効率を向上でき、システム全体のパフォーマンスを向上できる。特に、分岐アドレスが頻繁に発生し、そのうち特定の分岐アドレスが繰り返し発生するシステムで、フェッチ効率を向上できる。
【0081】
また、システムの特性に応じて第2プリフェッチバッファを所望の数に設定できる。換言すれば、そのシステムに最適なメモリインタフェース回路を提供できる。
請求項2のメモリインタフェース回路では、中央処理装置は、第2プリフェッチバッファのデータレジスタに命令データを格納する必要はないため、中央処理装置の初期設定期間のパフォーマンスを向上できる。
【0082】
請求項3および請求項4のメモリインタフェース回路では、専用のスタートレジスタを設けることで、中央処理装置は、全体制御部を容易に制御し、任意のタイミングで第2プリフェッチバッファのデータレジスタに命令データを格納させることができる。
請求項5のメモリインタフェース回路では、データバッファを設けることで、中央処理装置から出力される内部アドレスが連続するときに、外部メモリからプリフェッチした命令データを失うことなく中央処理装置に出力できる。
【0083】
請求項6のメモリインタフェース回路では、出現頻度の高い分岐アドレスを保持している第1プリフェッチバッファを、書き換えが禁止される第2プリフェッチバッファに変更することで、実際のシステムの動作状態に合わせて、命令のフェッチ効率を向上できる。
請求項7および請求項9のメモリインタフェース回路では、出現頻度の低い分岐アドレスを保持している第2プリフェッチバッファを、書き換え可能な第1プリフェッチバッファに変更することで、実際のシステムの動作状態に合わせて、命令のフェッチ効率を向上できる。
【0084】
請求項8のメモリインタフェース回路では、分岐アドレスの出現頻度が高いときに、対応する第1プリフェッチバッファを書き換えが禁止される第2プリフェッチバッファに変更することで、中央処理装置の命令フェッチ効率を向上でき、システム全体のパフォーマンスを向上できる。特に、分岐アドレスが頻繁に発生し、そのうち特定の分岐アドレスが繰り返し発生するシステムで、フェッチ効率を向上できる。
【0085】
プリフェッチバッファの所定数を第2プリフェッチバッファに割り当てる初期設定が不要なため、全体制御回路を簡易に構成できる。
請求項10のメモリインタフェース回路では、識別フラグにより、プリフェッチバッファが第1および第2プリフェッチバッファの何れに割り当てられているかを容易に認識できる。この結果、全体制御回路を簡易に構成できる。
【図面の簡単な説明】
【図1】本発明のメモリインタフェース回路の第1の実施形態を示すブロック図である。
【図2】第1の実施形態の初期化期間の動作を示すタイミング図である。
【図3】第1の実施形態の通常動作期間の動作を示すタイミング図である。
【図4】本発明のメモリインタフェース回路の第2の実施形態を示すブロック図である。
【図5】第2の実施形態の通常動作期間の動作を示すタイミング図である。
【図6】本発明のメモリインタフェース回路の第3の実施形態を示すブロック図である。
【符号の説明】
10、10A、10B ステートマシーン
12 アドレス生成部
14 アドレス比較部
16 レジスタ
16a スプリットレジスタ
16b スタートレジスタ
18 データ選択部
20 データバッファ
22、22A プリフェッチバッファ部
24 アクセス監視部
24a 分岐カウンタ
24b ヒットカウンタ
100 CPUコア
200 内蔵メモリ
300、300A、300b メモリインタフェース回路
DATA データレジスタ
DB データバス
HDT 命令データ
IAD 内部アドレス
IDT 命令データバス
IJMP 分岐信号
INC インクリメント信号
IVCTAD1-3 割り込みベクタアドレス
IVCTDT1-3 命令データ
IWAIT ウエイト信号
MAD メモリアクセス信号
MDT 命令データ
PDT 命令データ
PF1-PF8 プリフェッチバッファ
PHIT プリフェッチヒット信号
TAD タグアドレス
TAG タグレジスタ
THIT タグヒット信号
VLD バリッドフラグ

Claims (10)

  1. 中央処理装置から受ける内部アドレスが分岐アドレスのときに、その分岐アドレスをアクセスアドレスとして外部メモリに出力するとともに、次の分岐アドレスを受けるまでアクセスサイクル毎にアドレスを1ずつ増加させ、外部メモリに格納される命令データをプリフェッチするための前記アクセスアドレスとして出力するアドレス生成部と、
    分岐アドレスを格納するタグレジスタおよびこの分岐アドレスが示す前記外部メモリ内の領域に格納されている命令データを格納するデータレジスタを有する複数のプリフェッチバッファと、
    前記内部アドレスが前記タグレジスタに保持されている分岐アドレスと一致するときに、タグヒット信号を活性化する第1アドレス比較部と、
    前記タグヒット信号の活性化時に、ヒットした分岐アドレスが格納されている前記タグレジスタに対応する前記データレジスタから読み出される命令データを前記中央処理装置に出力し、前記タグヒット信号の非活性化時に、前記外部メモリから読み出される前記分岐アドレスに対応する命令データを前記中央処理装置に出力するデータ選択部と、
    前記中央処理装置が前記内部アドレスを順次出力する通常動作期間に、前記アドレス生成部、前記第1アドレス比較部および前記データ選択部の動作を制御する全体制御部とを備え、
    前記プリフェッチバッファは、前記通常動作期間に書き換え可能な複数の第1プリフェッチバッファと、指定された分岐アドレスおよびこの分岐アドレスが示す前記外部メモリ内の領域に格納されている命令データが予め格納され、前記通常動作期間に書き換えが禁止される少なくとも1つの第2プリフェッチバッファとで構成され
    前記プリフェッチバッファのうち前記第1プリフェッチバッファとして使用する数または前記第2プリフェッチバッファとして使用する数を登録するスプリットレジスタを備え、
    前記各プリフェッチバッファは、前記通常動作期間前の初期設定期間に、前記スプリットレジスタの値に応じて、前記第1プリフェッチバッファまたは第2プリフェッチバッファに割り当てられることを特徴とするメモリインタフェース回路。
  2. 請求項1記載のメモリインタフェース回路において、
    前記全体制御部は、前記通常動作期間前の初期設定期間に、前記中央処理装置に接続されるデータバスを介して分岐アドレスを受け、受けた分岐アドレスを前記第2プリフェッチバッファの前記タグレジスタに格納するとともに、この分岐アドレスが示す前記外部メモリ内の領域に格納されている命令データを前記第2プリフェッチバッファの前記タグレジスタに対応する前記データレジスタに格納することを特徴とするメモリインタフェース回路。
  3. 請求項2記載のメモリインタフェース回路において、
    前記中央処理装置からの書き込みによりセットされるスタートレジスタを備え、
    前記全体制御部は、前記初期設定期間に、前記データバスを介して受けた分岐アドレスを前記第2プリフェッチバッファの前記タグレジスタに格納した後、前記スタートレジスタのセットに応答して、前記第2プリフェッチバッファの前記タグレジスタに保持されている分岐アドレスを前記アドレス生成部を介して前記外部メモリに出力し、前記外部メモリから読み出される命令データを前記第2プリフェッチバッファの前記タグレジスタに対応するデータレジスタに格納することを特徴とするメモリインタフェース回路。
  4. 中央処理装置から受ける内部アドレスが分岐アドレスのときに、その分岐アドレスをアクセスアドレスとして外部メモリに出力するとともに、次の分岐アドレスを受けるまでアクセスサイクル毎にアドレスを1ずつ増加させ、外部メモリに格納される命令データをプリフェッチするための前記アクセスアドレスとして出力するアドレス生成部と、
    分岐アドレスを格納するタグレジスタおよびこの分岐アドレスが示す前記外部メモリ内の領域に格納されている命令データを格納するデータレジスタを有する複数のプリフェッ チバッファと、
    前記内部アドレスが前記タグレジスタに保持されている分岐アドレスと一致するときに、タグヒット信号を活性化する第1アドレス比較部と、
    前記タグヒット信号の活性化時に、ヒットした分岐アドレスが格納されている前記タグレジスタに対応する前記データレジスタから読み出される命令データを前記中央処理装置に出力し、前記タグヒット信号の非活性化時に、前記外部メモリから読み出される前記分岐アドレスに対応する命令データを前記中央処理装置に出力するデータ選択部と、
    前記中央処理装置が前記内部アドレスを順次出力する通常動作期間に、前記アドレス生成部、前記第1アドレス比較部および前記データ選択部の動作を制御する全体制御部と、
    前記中央処理装置からの書き込みによりセットされるスタートレジスタとを備え、
    前記プリフェッチバッファは、前記通常動作期間に書き換え可能な複数の第1プリフェッチバッファと、指定された分岐アドレスおよびこの分岐アドレスが示す前記外部メモリ内の領域に格納されている命令データが予め格納され、前記通常動作期間に書き換えが禁止される少なくとも1つの第2プリフェッチバッファとで構成され、
    前記全体制御部は、前記通常動作期間前の初期設定期間に、前記中央処理装置に接続されるデータバスを介して分岐アドレスを受け、受けた分岐アドレスを前記第2プリフェッチバッファの前記タグレジスタに格納した後、前記スタートレジスタのセットに応答して、前記第2プリフェッチバッファの前記タグレジスタに保持されている分岐アドレスを前記アドレス生成部を介して前記外部メモリに出力し、前記外部メモリから読み出される命令データを前記第2プリフェッチバッファの前記タグレジスタに対応するデータレジスタに格納することを特徴とするメモリインタフェース回路。
  5. 請求項1記載のメモリインタフェース回路において、
    前記アクセスアドレスに応じて前記外部メモリからプリフェッチされる命令データを一時的に格納するデータバッファと、
    前記内部アドレスが前記外部メモリからプリフェッチするための前記アクセスアドレスと一致するときに、プリフェッチヒット信号を出力する第2アドレス比較部とを備え、
    前記データ選択部は、前記プリフェッチヒット信号の活性化時に、前記データバッファに保持されている命令データを前記中央処理装置に出力し、前記プリフェッチヒット信号の非活性化時に、前記外部メモリから読み出される前記分岐アドレスに対応する命令データを前記中央処理装置に出力することを特徴とするメモリインタフェース回路。
  6. 中央処理装置から受ける内部アドレスが分岐アドレスのときに、その分岐アドレスをアクセスアドレスとして外部メモリに出力するとともに、次の分岐アドレスを受けるまでアクセスサイクル毎にアドレスを1ずつ増加させ、外部メモリに格納される命令データをプリフェッチするための前記アクセスアドレスとして出力するアドレス生成部と、
    分岐アドレスを格納するタグレジスタおよびこの分岐アドレスが示す前記外部メモリ内の領域に格納されている命令データを格納するデータレジスタを有する複数のプリフェッチバッファと、
    前記内部アドレスが前記タグレジスタに保持されている分岐アドレスと一致するときに、タグヒット信号を活性化する第1アドレス比較部と、
    前記タグヒット信号の活性化時に、ヒットした分岐アドレスが格納されている前記タグレジスタに対応する前記データレジスタから読み出される命令データを前記中央処理装置に出力し、前記タグヒット信号の非活性化時に、前記外部メモリから読み出される前記分岐アドレスに対応する命令データを前記中央処理装置に出力するデータ選択部と、
    前記中央処理装置が前記内部アドレスを順次出力する通常動作期間に、前記アドレス生成部、前記第1アドレス比較部および前記データ選択部の動作を制御する全体制御部と、
    前記通常動作期間に、前記中央処理装置からの分岐アドレスの出力回数を計数する分岐カウンタとを備え、
    前記プリフェッチバッファは、前記通常動作期間に書き換え可能な複数の第1プリフェッチバッファと、指定された分岐アドレスおよびこの分岐アドレスが示す前記外部メモリ 内の領域に格納されている命令データが予め格納され、前記通常動作期間に書き換えが禁止される少なくとも1つの第2プリフェッチバッファとで構成され、
    前記全体制御回路は、前記分岐カウンタのカウンタ値に基づいて、前記通常動作期間に、前記第1プリフェッチバッファのタグレジスタに保持される分岐アドレスの出現頻度が所定比率を超えると判断したときに、この第1プリフェッチバッファを前記第2プリフェッチバッファに変更することを特徴とするメモリインタフェース回路。
  7. 請求項6記載のメモリインタフェース回路において、
    前記全体制御回路は、前記分岐カウンタのカウンタ値に基づいて、前記通常動作期間に、前記第2プリフェッチバッファのタグレジスタに保持される分岐アドレスの出現頻度が所定比率以下と判断したときに、この第2プリフェッチバッファを前記第1プリフェッチバッファに変更することを特徴とするメモリインタフェース回路。
  8. 中央処理装置から受ける内部アドレスが分岐アドレスのときに、その分岐アドレスをアクセスアドレスとして外部メモリに出力し、次の分岐アドレスを受けるまでアクセスサイクル毎にアドレスを1ずつ増加させ、外部メモリに格納される命令データをプリフェッチするための前記アクセスアドレスとして出力するアドレス生成部と、
    分岐アドレスを格納するタグレジスタおよびこの分岐アドレスが示す前記外部メモリ内の領域に格納されている命令データを格納するデータレジスタを有する複数のプリフェッチバッファと、
    前記内部アドレスが前記タグレジスタに保持されている分岐アドレスと一致するときに、タグヒット信号を活性化する第1アドレス比較部と、
    前記タグヒット信号の活性化時に、ヒットした分岐アドレスが格納されている前記タグレジスタに対応する前記データレジスタから読み出される命令データを前記中央処理装置に出力し、前記タグヒット信号の非活性化時に、前記外部メモリから読み出される前記分岐アドレスに対応する命令データを前記中央処理装置に出力するデータ選択部と、
    前記通常動作期間に、前記中央処理装置からの分岐アドレスの出力回数を計数する分岐カウンタと
    前記中央処理装置が前記内部アドレスを順次出力する通常動作期間に、前記アドレス生成部、前記第1アドレス比較部、前記データ選択部および分岐カウンタの動作を制御する全体制御部とを備え、
    前記各プリフェッチバッファは、前記通常動作期間に書き換え可能な第1プリフェッチバッファと、指定された分岐アドレスおよびこの分岐アドレスが示す前記外部メモリ内の領域に格納されている命令データが格納され、前記通常動作期間に書き換えが禁止される第2プリフェッチバッファとのいずれかに設定され、
    前記全体制御回路は、前記分岐カウンタのカウンタ値に基づいて、前記通常動作期間に、前記中央処理装置から出力される前記内部アドレスの中で前記第1プリフェッチバッファのタグレジスタに保持される分岐アドレスの出現頻度が所定比率を超えるときに、この第1プリフェッチバッファを前記第2プリフェッチバッファに変更することを特徴とするメモリインタフェース回路。
  9. 請求項8記載のメモリインタフェース回路において、
    前記全体制御回路は、前記分岐カウンタのカウンタ値に基づいて、前記通常動作期間に、前記中央処理装置から出力される前記内部アドレスの中で前記第2プリフェッチバッファのタグレジスタに保持される分岐アドレスの出現頻度が所定比率以下のときに、この第2プリフェッチバッファを前記第1プリフェッチバッファに変更することを特徴とするメモリインタフェース回路。
  10. 請求項6、請求項7および請求項9のいずれか1項記載のメモリインタフェース回路において、
    前記各プリフェッチバッファは、第1または第2プリフェッチバッファとして使用されていることを示す識別フラグをそれぞれ備えていることを特徴とするメモリインタフェース回路。
JP2003184366A 2003-06-27 2003-06-27 メモリインタフェース回路 Expired - Fee Related JP3954992B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003184366A JP3954992B2 (ja) 2003-06-27 2003-06-27 メモリインタフェース回路
US10/797,104 US7073045B2 (en) 2003-06-27 2004-03-11 Memory interface circuit having plurality of prefetch buffers, each assigned to either first prefetch buffer enabled for rewrite or second prefetch buffer disabled for rewrite during normal operation period

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003184366A JP3954992B2 (ja) 2003-06-27 2003-06-27 メモリインタフェース回路

Publications (2)

Publication Number Publication Date
JP2005018553A JP2005018553A (ja) 2005-01-20
JP3954992B2 true JP3954992B2 (ja) 2007-08-08

Family

ID=33535374

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003184366A Expired - Fee Related JP3954992B2 (ja) 2003-06-27 2003-06-27 メモリインタフェース回路

Country Status (2)

Country Link
US (1) US7073045B2 (ja)
JP (1) JP3954992B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7681188B1 (en) * 2005-04-29 2010-03-16 Sun Microsystems, Inc. Locked prefetch scheduling in general cyclic regions
JP5233078B2 (ja) * 2006-03-23 2013-07-10 富士通セミコンダクター株式会社 プロセッサ及びその処理方法
DE112006003976A5 (de) * 2006-05-30 2009-04-30 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur Beschleunigung von Prozessor-Zugriffen
JP2008052518A (ja) * 2006-08-24 2008-03-06 Digital Electronics Corp Cpuシステム
WO2008097710A2 (en) * 2007-02-02 2008-08-14 Tarari, Inc. Systems and methods for processing access control lists (acls) in network switches using regular expression matching logic
JP5205777B2 (ja) 2007-03-14 2013-06-05 富士通株式会社 プリフェッチ処理装置、プリフェッチ処理プログラムおよびプリフェッチ処理方法
CN102479239B (zh) * 2010-11-29 2016-03-09 国际商业机器公司 预存储rdf三元数据的方法和装置
US10346173B2 (en) * 2011-03-07 2019-07-09 Oracle International Corporation Multi-threaded instruction buffer design
US8824295B2 (en) 2011-12-30 2014-09-02 Qualcomm Technologies, Inc. Link between chips using virtual channels and credit based flow control
US11645207B2 (en) * 2020-09-25 2023-05-09 Advanced Micro Devices, Inc. Prefetch disable of memory requests targeting data lacking locality

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62259158A (ja) 1986-05-06 1987-11-11 Hitachi Ltd 割込み要求回路
JPH0628258A (ja) 1992-07-09 1994-02-04 Nec Corp マイクロプロセッサ
US5680564A (en) * 1995-05-26 1997-10-21 National Semiconductor Corporation Pipelined processor with two tier prefetch buffer structure and method with bypass
JP2000347931A (ja) 1999-06-03 2000-12-15 Matsushita Electric Ind Co Ltd キャッシュメモリおよびキャッシュメモリ制御方法
US7139878B2 (en) * 2003-06-20 2006-11-21 Freescale Semiconductor, Inc. Method and apparatus for dynamic prefetch buffer configuration and replacement

Also Published As

Publication number Publication date
US20040268085A1 (en) 2004-12-30
US7073045B2 (en) 2006-07-04
JP2005018553A (ja) 2005-01-20

Similar Documents

Publication Publication Date Title
JP3577331B2 (ja) キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法
US6665749B1 (en) Bus protocol for efficiently transferring vector data
US6813701B1 (en) Method and apparatus for transferring vector data between memory and a register file
JP4813485B2 (ja) バーストリードライト動作による処理装置
US5515521A (en) Circuit and method for reducing delays associated with contention interference between code fetches and operand accesses of a microprocessor
JP3954992B2 (ja) メモリインタフェース回路
JPS6297036A (ja) 計算機システム
JP2000148590A (ja) キャッシュロック装置及びキャッシュロック方法
US5386519A (en) Information processing apparatus incorporating buffer storing a plurality of branch target instructions for branch instructions and interrupt requests
JP4071942B2 (ja) データ処理装置及びデータプロセッサ
WO2001038970A2 (en) Buffer memories, methods and systems for buffering having seperate buffer memories for each of a plurality of tasks
JP2001290702A (ja) 記憶装置
US6862670B2 (en) Tagged address stack and microprocessor using same
JP4024247B2 (ja) 半導体データプロセッサ
US5463737A (en) Instruction buffer controller in processor enabling direct refetching of an instruction
US6880066B2 (en) Central processing unit and system having a prefetch queue and a command cache to perform an efficient information reading operation
JPH0644295B2 (ja) タイマ装置及びタイマ方法
JP6016689B2 (ja) 半導体装置
TWI774474B (zh) 處理器電路以及資料處理方法
US5926840A (en) Out-of-order fetching
JP2003030046A (ja) 命令キャッシュのプリフェッチ機構を備えたキャッシュ制御装置
JP2000148584A (ja) プリフェッチ方法および装置
JP3039391B2 (ja) メモリシステム
US20040103267A1 (en) Data processor having cache memory
WO2006016298A1 (en) Controller and a method of for controlling the communication between a processor and an external peripheral device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070123

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070323

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070424

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070427

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20100511

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20100511

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110511

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110511

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20110511

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120511

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120511

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130511

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20140511

Year of fee payment: 7

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees