JP3698358B2 - 高速プロセッサシステム、これを使用する方法及び記録媒体 - Google Patents

高速プロセッサシステム、これを使用する方法及び記録媒体 Download PDF

Info

Publication number
JP3698358B2
JP3698358B2 JP2000595256A JP2000595256A JP3698358B2 JP 3698358 B2 JP3698358 B2 JP 3698358B2 JP 2000595256 A JP2000595256 A JP 2000595256A JP 2000595256 A JP2000595256 A JP 2000595256A JP 3698358 B2 JP3698358 B2 JP 3698358B2
Authority
JP
Japan
Prior art keywords
processor system
speed processor
mpu
cpu
high speed
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
JP2000595256A
Other languages
English (en)
Other versions
JP2002535777A (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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment 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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Publication of JP2002535777A publication Critical patent/JP2002535777A/ja
Application granted granted Critical
Publication of JP3698358B2 publication Critical patent/JP3698358B2/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
    • 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
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Multi Processors (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、階層的に構成された並列コンピュータシステムにあって、今までのプログラミングスタイルのままで高速にて並列処理を行う高速プロセッサシステム、これを使用する方法及び記録媒体に関する。
【0002】
【発明の背景】
現在、大量のデータを高速に処理する方式としては、例えば、CPUと、キャッシュメモリを有する低速大容量のDRAMとを備えた高速プロセッサシステムが知られている。この高速プロセッサシステムにおいては、図1に示すように、1次キャッシュを内蔵したCPU1に対して、共通バスラインを介して接続された複数個の並列配置のDRAM2が設けられ、そしてDRAM2の処理速度をCPU1に近づけるために、各DRAM2には2次キャッシュ3が備えられている。
【0003】
このような図1の回路構成において、CPU1からの命令によってDRAM2の内容が読み出されて処理されまた書き込まれる。このとき、DRAM2の所望の内容がキャッシュ3に存在すればヒットとなって、CPU10は2次キャッシュ3に対してアクセスができて高速データ処理が可能となる。しかし、所望の内容がキャッシュ3に存在しないミスヒットの場合には、キャッシュ3は改めてDRAM2からその内容を読み出すことになる。
【0004】
そして、上述の例に示されプロセッサ、DRAM、キャッシュを組み合わせた高速プロセッサシステムの構成自体は、通常のプログラミングスタイルで制御できるという特徴を有して現在の主流となっている。
【0005】
しかしながら、このキャッシュを階層的に組み合わせた高速プロセッサシステムでは、CPUは1つであり並列処理をすることができない。また、1つのCPUを用いた通常のプログラミングは、元々、並列処理を前提に作られていないので、そのままで並列プロセッッシングシステムを実行しようとするのは難しく、実用上ネックとなっている。
【0006】
【課題を解決するための手段】
本発明は、上述の問題に鑑み、新規な高速プロセッサシステム、該高速プロセッサシステムを使用する方法及びコンピュータ可読・実行可能なプログラムを記録した記録媒体を提供することを目的とする。
【0007】
本発明は、上述の問題に鑑み、今までのプログラミングスタイルを維持したままで、並列プロセッサを得る高速プロセッサシステム、該高速プロセッサシステムを使用する方法及びコンピュータ可読・実行可能なプログラムを記録した記録媒体を提供することを目的とする。
【0008】
本発明に係る高速プロセッサシステムは、1次キャッシュメモリを有するCPUと、前記CPUの下層に配置され、第1のMPUを有する2次キャッシュと、前記2次キャッシュメモリに対して相互に並列に配置され、各々が、第2のMPUを持つ3次キャッシュを有する複数個のメインメモリとを備えた高速プロセッサシステムであって、前記第1及び第2のMPUは、キャッシュロジック機能とプロセッサ機能とを夫々有し、前記第1のMPUのプロセッサ機能は、前記CPUの制御プロトコルにより、複数個の前記メインメモリに記録されたデータ及びプログラムを用いた処理を実行し、前記第2のMPUのプロセッサ機能は、前記CPUの制御プロトコルにより、該MPUが付設する単一の前記メインメモリに記録されたデータ及びプログラムを用いた処理を実行し、こうして分散並列処理を可能とする。
【0009】
更に、上記高速プロセッサシステムでは、前記1次、2次及び3次キャッシュメモリは、順に、相対的に長いラインサイズをもつようにできる。
更に、上記高速プロセッサシステムでは、前記CPU、前記第1のMPU及び第2のMPUは、相互にバイナリ互換性を有していてもよい。
更に、上記高速プロセッサシステムでは、前記2次キャッシュメモリ及び3次キャッシュメモリは、ユニファイド・キャッシュ・メモリであってもよい。
更に、上記高速プロセッサシステムでは、前記2次キャッシュメモリは、前記CPUからは2次キャッシュメモリとしてアクセスされ、また、前記第1のMPUからは1次キャッシュメモリとしてアクセスされてもよい。
【0010】
更に、上記高速プロセッサシステムでは、前記3次キャッシュメモリは、前記CPUからは3次キャッシュメモリとしてアクセスされ、前記第1のMPUからは2次キャッシュメモリとしてアクセスされ、また、前記第2のMPUからは1次キャッシュメモリとしてアクセスされてもよい。
更に、上記高速プロセッサシステムでは、前記第1及び第2のMPUのデータ処理は、前記CPUからのプリフェッチ命令又は該MPUにプロセッサ機能を奏させるインテリジェントプリフェッチ命令による制御プロトコルに従って実行されてもよい。
更に、上記高速プロセッサシステムでは、 前記第1のMPUは、大量データの大域転送のような大きな転送粒度の低演算高転送処理を実行し、
前記第2のMPUは、ローカルオブジェクト処理を実行してもよい。
更に、上記高速プロセッサシステムでは、 前記ローカルオブジェクト処理は、インクリメント演算、最大値を求める演算を含んでもよい。
【0011】
更に、上記高速プロセッサシステムでは、前記第1のMPUは、複数個の前記メインメモリに記録されたデータ及びプログラムを用いて、主として、大域転送又は低演算高転送処理を実行することもできる。
更に、上記高速プロセッサシステムでは、前記第2のMPUは、該MPUが付設する単一の前記メインメモリに記録されたデータ及びプログラムを用いて、主として、ローカルオブジェクトの処理を実行することもできる。
更に、上記高速プロセッサシステムでは、前記メインメモリはDRAMからなり、
前記1次及び2次キャッシュメモリはSRAMからなってもよい。
更に、上記高速プロセッサシステムでは、前記高速プロセッサシステムは、ワンチップ内に形成されることもできる。
【0012】
更に、本発明に係る高速プロセッサシステムを使用する方法は、1次キャッシュメモリを有するCPUと、前記の下層に配置され、第1のMPUを有する2次キャッシュと、前記2次キャッシュメモリに対して相互に並列配置され、各々が第2のMPUを持つ3次キャッシュを有する複数個のメインメモリとを備えた高速プロセッサシステムを使用する方法であって、前記CPUによって、主として、高度な演算処理を実行し、前記第1のMPUは、前記CPUの制御プロトコルにより、複数個の前記メインメモリに記録されたデータ及びプログラムを用いた処理を実行し、前記第2のMPUは、前記CPUの制御プロトコルにより、該MPUが付設する単一の前記メインメモリに記録されたデータ及びプログラムを用いた処理を実行し、こうして分散並列処理を可能としている。
【0013】
更に、上述の高速プロセッサシステムを使用する方法では、前記第1及び第2のMPUの処理は、前記CPUからのプリフェッチ命令又は該MPUにプロセッサ機能を奏させるインテリジェントプリフェッチ命令による制御プロトコルに従って実行してもよい。
更に、上述の高速プロセッサシステムを使用する方法では、前記高速プロセッサは、通常のプログラミングスタイルで制御されていいてもよい。
【0014】
更に、上述の高速プロセッサシステムを使用する方法では、前記第1及び第2のMPUの双方又はいずれか一方がプロセッサ機能を発揮してデータ処理を行っているときは、該MPUのブロックからの前記1次キャッシュのデータは消去されてもよい。
【0015】
更に、本発明に係る高速プロセッサシステムは、1次キャッシュメモリを有するCPUと、前記CPUに対して相互いに並列配置され、各々が、MPUを持つ2次キャッシュメモリを有する複数個のメインメモリとを備えた高速プロセッサシステムであって、前記MPUは、キャッシュロジック機能とプロセッサ機能とを夫々有し、前記MPUのプロセッサ機能は、前記CPUの制御プロトコルにより、該MPUが付設する単一の前記メインメモリに記録されたデータ及びプログラムを用いた処理を実行し、こうして分散並列処理を可能とする。
【0016】
更に、上記高速プロセッサシステムでは、前記2次キャッシュメモリは、ユニファイド・キャッシュ・メモリとすることもできる。
更に、上記高速プロセッサシステムでは、前記2次キャッシュメモリは、前記CPUからは2次キャッシュメモリとしてアクセスされ、また、前記MPUからは1次キャッシュメモリとしてアクセスされるようにすることもできる。
更に、上記高速プロセッサシステムでは、前記MPUのデータ処理は、前記CPUからのプリフェッチ命令又は該MPUにプロセッサ機能を奏させるインテリジェントプリフェッチ命令による制御プロトコルに従って実行されるようにすることもできる。
【0017】
更に、上記高速プロセッサシステムでは、前記MPUは、前記CPUと比較して、相対的に大きな転送粒度の転送処理及び相対的に低い演算能力の処理を選択的に実行するようにすることもできる。
更に、上記高速プロセッサシステムでは、前記1次キャッシュメモリはSRAMからなるようにすることもできる。
更に、上記高速プロセッサシステムでは、前記2次キャッシュメモリはSRAMからなるようにすることもできる。
更に、上記高速プロセッサシステムでは、前記高速プロセッサシステムは、ワンチップ内に形成されているようにすることもできる。
【0018】
【発明の実施の形態】
ここで、図2〜図9を参照して本発明による実施の形態の一例を説明する。図2に示す高速プロセッサシステムの構成は、1次キャッシュであるIキャッシュ(インストラクション・キャッシュ)10a、Dキャッシュ(データ・キャッシュ)10b及びスクラッチパッド・メモリ10c(以上を「1次キャッシュ」とも称する。)を有するCPU10と、その接続されたユニファイド・キャッシュ・メモリ(「2次キャッシュ」とも称する。)11と、更に最下層にバスラインを介して相互に並列接続された複数個のユニファイド・キャッシュ・メモリ(「3次キャッシュ」とも称する。)12と、DRAM13-1〜13-3とを備えている。また、2次キャッシュ及び3次キャッシュには、キャッシュロジックとして、MPU(Micro processing Unit)14及び16が、夫々内蔵されている
【0019】
このように、各層にキャッシュを備えるのは、高速処理のためである。これらキャッシュメモリは、下層に行く程キャッシュメモリの容量単位であるラインサイズ、即ちバーストread/write長(一括読み出し/書き込み長)が長くなっている。なお、図2に示す構成では、2次キャッシュ11の存在は必須なものでなく、1次キャッシュを有するCPU10と、各々がユニファイド・キャッシュ・メモリ12を有する複数個のDRAM13とからなる構成も採ることができる。
【0020】
図2に示す構成では、2次キャッシュ11及び3次キャッシュ12のキャッシュロジックとして内蔵されているMPU14及び16と、CPU10とは、相互にバイナリ互換性を有している。これらMPU14、16は二つの機能、即ち、キャッシュロジックとしての機能とプロセッサとしての機能とを有する。キャッシュロジック機能とは、CPU10の制御によりキャッシュメモリを制御するための機能であり、また、プロセッサ機能とは、CPU10に対して分散並列システム用サブCPUとして果たす機能である。
【0021】
図3は、図2に示す高速プロセッサ構造を、具体的に半導体チップ15に具現化したものである。このチップ15には、DRAM13として主要部を構成するDRAMアレイ13aと、センスアンプ13bと、ロー・アドレス13cと、カラム・アドレス13dと、制御回路13eと、データ入出力回路13fとが形成されている。この図3に示すチップ15では、キャッシュメモリとしてはSRAM12が備えられ、このSRAM12は、DRAMアレイ13aのデータの入出力をつかさどるセンスアンプ13bと直結され、かつデータ入出力回路13fとの間でデータのやりとりがされる。
【0022】
このSRAM12であるキャッシュメモリは、キャッシュ・ロジック機能とプロセッサ機能とを有するMPU14によって制御される。キャッシュ・ロジック機能の面に関しては、MPU14の制御のもと、SRAM12はシンプルなユニファイド・キャッシュとして働き、このSRAM12を介してDRAMアレイ13aに対してRead/Writeを行う。また、プロセッサ機能の面に関しては、図2の例では、CPU10から見てSRAM12は3次キャッシュメモリとなり、CPU10からMPU14へ送られる制御信号のもと、MPU14は、DRAM13a内のプログラムとデータとからなるオブジェクトを実行したり、所定のプリフェッチ命令によりデータの先読みを行ったりする。
【0023】
ここで、MPU14は、CPU10からのプリフェッチ命令により駆動される。一般に、CPUとメモリとの間に配置された高速メモリとしてのキャッシュによって、プロセッサシステムのスピードが左右されるので、最近では、キャッシュを積極的に利用する傾向があり、具体的には、CPUは、プリフェッチ命令を用いてデータの先読みを行っている。本発明では、このキャッシュ制御のためのプリフェッチ命令をMPU14に対しても適用して、MPU14によってプロセッシングまで行っている。
【0024】
ここで、MPU14としては、具体的には、ARM(Advanced RISC Machines)やMIPS(Microprocessor without interlocked Pipe Stage)のような比較的小さなコアでも構成でき、かつハイパフォーマンスなCPUも構成できるスケーラブルなRISC(Restricted Instruction Set Computer)―CPUコアを採用してシステム内のキャッシュメモリに内蔵することができる。
【0025】
図4は、図2に示すCPU10と2次キャッシュ11との具体的構成を示したものである。2次キャッシュ11は、基本的にはユニファイド・キャッシュ11aを内蔵したプロセッサとして把握できる。このプロセッサ機能を果たすMPU16は、CPU10に対して2次キャッシュメモリとなり、2次キャッシュとして働くことができる。2次キャッシュ内部のユニファイド・キャッシュ11aはSRAMにより構成され、CPU10に対しては2次キャッシュ、MPU16からは1次キャッシュとしてアクセスされる。なお、図4に示す符号17は、DRAM13に接続されるメモリインタフェースを示している。
【0026】
この2次キャッシュ11は、前述の通り、1次キャッシュ(Iキャッシュ,Dキャッシュ,スクラッチパッド)と比較して、相対的に長いバーストRead/Write長を持っている。2次キャッシュ11は、CPU10からの制御プロトコルにより2次キャッシュとして動作したり、3次キャッシュやメインメモリ内のプログラムとデータからなるオブジェクトの処理(主として、高度な演算処理ではなく、DRAM13-1〜13-3相互間のデータ転送回数が多い処理)を実行する。また、CPU10からの命令により、3次キャッシュ12に内蔵されたMPU14が実行するプリフェッチ命令よりも一層広い、例えば複数のDRAM相互間に跨るような範囲の一層高度なプリフェッチ命令を実行する。
【0027】
図5は、図2に示す回路構成にあって通常のキャッシュモードによるデータの流れ、即ち、MPU14,16がキャッシュロジック機能のみを果たし、プロセッサ機能を果たしていない場合を示している。DRAM13のデータがCPU10によって処理される場合、DRAM13のデータの読み込みは、転送粒度(一度に転送されるデータ量)が比較的大きく且つ転送頻度が比較的少ない最下位の3次キャッシュ12から、その上位の2次キャッシュ11に転送され、更に最上位の1次キャッシュへと転送されて、CPU10に送られる。反対に、DRAM13へのデータの書き込みは、その逆の道筋を辿ることになる。
【0028】
この結果、データのアクセスは何度も行われることになり、現在のCPU10のスタック機能(例えば、後入れ先出し記憶方式)によれば、このようなアクセスは一見有効である。しかし、例えば、画像処理とか大量のデータの探索等のような、CPU10より1回しかアクセスしないデータによって、何度もアクセスしなけばならないデータがキャッシュアウトされる事態が発生し、その結果、アクセス回数が増大し非常に無駄が多いことになる。このような無駄の存在は、今まで説明した本発明のキャッシュ・コントロールを行う発想につながるものである。
【0029】
しかしながら、現時点では、図5のように何回もアクセスするパスがあることを前提として、プロセッサシステムの設計がされている。しかし、このようなメモリアーキテクチャを用い、通常のプログラミングで動作させることに対しても図5の如く適用が可能であることは現実に非常に有用なことである。
【0030】
図6は、3次キャッシュ12内のMPU14が、プロセッサ機能を発揮する場合を示し、ここでは、MPU14は、ローカルオブジェクトの分散処理を実行している。即ち、CPU10にて処理する必要がないローカルオブジェクトに関しては、CPU10からのプリフェッチ命令の制御プロトコルによって、MPU14がこのようなローカルオブジェクトの処理を実行している。ローカルオブジェクトとしては、単一のDRAMブロックに記録されたプログラムとデータとがあり、ローカルオブジェクトの処理としては、例えば、単なるインクリメント演算や最大値を求める演算のような処理が挙げられる。このように、MPU14において分散並列処理を実行することができる。なお、ローカルオブジェクト処理が実行されるDRAMブロックは、分散処理の際には上位キャッシュからブロック単位でキャッシュアウトされる。
【0031】
図7は、2次キャッシュ11内のMPU16が、プロセッサ機能を発揮する場合を示し、ここでは、MPU16は、一定の範囲でオブジェクトの分散処理を実行している。即ち、CPU10にて処理する必要がない処理に関しては、CPU10からの制御プロトコルによって、MPU16がこのような処理を実行している。このような分散処理としては、例えば大域転送処理や低演算高転送処理が挙げられ、例えばDRAM13-1から別のDRAM13-2に転送処理する場合がある。
【0032】
MPU16は、基本的には全メモリにアクセスすることができるので、MPU16は、マルチプロセッサシステムとして、CPU10の実行する処理を代行することができる。しかし、CPU10に比較して、MPU16は演算能力が相対的に低いので、大量データの大域転送のような大きな転送粒度の転送が適しており、CPU10の高い演算能力や上位キャッシュの機能が必要でない処理を選択的に実行することができる。このMPU16による処理も、CPU10からの制御プロトコルによって実行される。
【0033】
図8はインテリジェントプリフェッチ命令の具体的説明を示すものである。従来のプログラミングスタイルを維持したまま、CPU10からみて下位のMPU16,14等に対する制御の方法として、インテリジェントプリフェッチ命令(IPREF)が用いられる。図8においては、CPU10内において、10aはIキャッシュを、10bはDキャッシュを、夫々示している。ここで、MPU16がプロセッサ機能を果たすに際し、キャッシュ・コヒーレンスの問題があり、即ちMPU16によるプログラムの実行の結果によりデータが変わった場合、CPU10のDキャッシュ10bのデータと整合がとれなくなる。この問題を回避するため、CPU10がMPU16に仕事をさせるに際しては、CPU10のDキャッシュ10bのデータをキャッシュアウトして、Dキャッシュ10bの内容をMPU16によるプログラムの実行に基づく新たなデータ(指定データ)によって更新することとする。
【0034】
MPU16はキャッシュであるので、キャッシュとして制御をしようとするもので、キャッシュに対する制御命令として、通常のキャッシュに対するプリフェッチ命令と同様に、IPREFによりMPU16に仕事をさせている。即ち、IPREFにてキャッシュに対する制御とMPU16に対する制御とを同時に行うことができる。因に、MPU16に対するプリフェッチ命令ではMPU16はキャッシュとして働くことになるが、IPREFではプログラムにより仕事をすることになる。
【0035】
つまり、図8において、IPREFはCPU10の拡張命令であり、実行されることによりDキャッシュ10bの対象領域をキャッシュアウトして、下位のMPU付きキャッシュに制御プロトコルを送る。下位の指定MPUではこの制御プロトコルを受け取り指定プログラムを実行し、DRAMや下位のメモリブロックにアクセスし、所定のデータをキャッシュメモリ上にセットする。
【0036】
以下は最大値データの検索例を示している。
【数1】
Figure 0003698358
この例において、DRAM0〜3には予め図8に示す指定データが登録されているものとし、ここにいうIPREF DRAM0〜3は予め指定されたプログラムを実行するものである。そして、予め登録されたプログラムはIPREF命令によりDキャッシュ10bの指定領域をキャッシュアウトしてから実行される。ここではDRAM0〜3に対してIPREFを実行させて行き、CPU10にはDRAM1〜3に対して制御プロトコルを送り、最大値がキャッシュに入った状態でLoad命令を実行する。DRAMの粒度にもよるがIPREFとLoadの計8命令で4つの最大値を求めることができ、最大値相互間のチェックにより真の最大値を得る。
【0037】
以上説明したように本発明によれば、キャッシュメモリにMPUを内蔵し、このMPUをキャッシュロジックとしてあるいはその層以下のプロセッサとして働かせることにより、今までのプログラミングスタイルのままで高速で無駄のない並列処理を行うことができる。
【図面の簡単な説明】
【図1】 図1は、従来の並列プロセッサの一例のブロック図を示す図である。
【図2】 図2は、本発明の実施の形態の一例のブロック図を示す図である。
【図3】 図3は、DRAM、MPU、キャッシュのチップ配置の具体例を示すブロック図である。
【図4】 図4は、2次キャッシュ及びMPUの内部構成を示すブロック図である。
【図5】 図5は、通常のキャッシュモードを示すデータ流れ図を示す図である。
【図6】 図6は、ローカルオブジェクト分散実行のデータ流れ図を示す図である。
【図7】 図7は、2次キャッシュによる転送処理に伝わるデータ流れ図を示す図である。
【図8】 図8は、インテリジェントプリフェッチ命令に伝わる具体的説明図を示す図である。
【図9】 図9は、ASIC DRAMのチップシステムを示す図を示す図である。
【符号の説明】
10:CPU、
11:2次キャッシュ、
12:3次キャッシュ、
13:DRAM、
14,16:MPU

Claims (25)

  1. 1次キャッシュメモリを有するCPUと、
    前記CPUの下層に配置され、第1のMPUを有する2次キャッシュと、
    前記2次キャッシュメモリに対して相互に並列に配置され、各々が、第2のMPUを持つ3次キャッシュを有する複数個のメインメモリとを備えた高速プロセッサシステムにおいて、
    前記第1及び第2のMPUは、キャッシュロジック機能とプロセッサ機能とを夫々有し、
    前記第1のMPUのプロセッサ機能は、前記CPUの制御プロトコルにより、複数個の前記メインメモリに記録されたデータ及びプログラムを用いた処理を実行し、
    前記第2のMPUのプロセッサ機能は、前記CPUの制御プロトコルにより、該MPUが付設する単一の前記メインメモリに記録されたデータ及びプログラムを用いた処理を実行し、こうして分散並列処理を可能とすることを特徴とする、高速プロセッサシステム。
  2. 請求の範囲1に記載の高速プロセッサシステムにおいて、
    前記1次、2次及び3次キャッシュメモリは、順に、相対的に長いラインサイズをもっている、高速プロセッサシステム。
  3. 請求の範囲1に記載の高速プロセッサシステムにおいて、
    前記CPU、前記第1のMPU及び第2のMPUは、相互にバイナリ互換性を有している、高速プロセッサシステム。
  4. 請求の範囲1に記載の高速プロセッサシステムにおいて、
    前記2次キャッシュメモリ及び3次キャッシュメモリは、ユニファイド・キャッシュ・メモリからなる、高速プロセッサシステム。
  5. 請求の範囲1に記載の高速プロセッサシステムにおいて、
    前記2次キャッシュメモリは、前記CPUからは2次キャッシュメモリとしてアクセスされ、また、前記第1のMPUからは1次キャッシュメモリとしてアクセスされる、高速プロセッサシステム。
  6. 請求の範囲1に記載の高速プロセッサシステムにおいて、
    前記3次キャッシュメモリは、前記CPUからは3次キャッシュメモリとしてアクセスされ、前記第1のMPUからは2次キャッシュメモリとしてアクセスされ、また、前記第2のMPUからは1次キャッシュメモリとしてアクセスされる、高速プロセッサシステム。
  7. 請求の範囲1に記載の高速プロセッサシステムにおいて、
    前記第1及び第2のMPUのデータ処理は、前記CPUからのプリフェッチ命令又は該MPUにプロセッサ機能を奏させるインテリジェントプリフェッチ命令による制御プロトコルに従って実行される、高速プロセッサシステム。
  8. 請求の範囲1に記載の高速プロセッサシステムにおいて、
    前記第1のMPUは、大量データの大域転送のような大きな転送粒度の低演算高転送処理を実行し、
    前記第2のMPUは、ローカルオブジェクト処理を実行している、高速プロセッサシステム。
  9. 請求の範囲1に記載の高速プロセッサシステムにおいて、
    前記ローカルオブジェクト処理は、インクリメント演算、最大値を求める演算を含む、高速プロセッサシステム。
  10. 請求の範囲1に記載の高速プロセッサシステムにおいて、
    前記第1のMPUは、複数個の前記メインメモリに記録されたデータ及びプログラムを用いて、主として、大域転送又は低演算高転送処理を実行する、高速プロセッサシステム。
  11. 請求の範囲1に記載の高速プロセッサシステムにおいて、
    前記第2のMPUは、該MPUが付設する単一の前記メインメモリに記録されたデータ及びプログラムを用いて、主として、ローカルオブジェクトの処理を実行する、高速プロセッサシステム。
  12. 請求の範囲1に記載の高速プロセッサシステムにおいて、
    前記メインメモリはDRAMからなり、
    前記1次及び2次キャッシュメモリはSRAMからなる、高速プロセッサシステム。
  13. 請求の範囲1乃至12のいずれか一項に記載の高速プロセッサシステムにおいて、
    前記高速プロセッサシステムは、ワンチップ内に形成されている、高速プロセッサシステム。
  14. 1次キャッシュメモリを有するCPUと、前記の下層に配置され、第1のMPUを有する2次キャッシュと、前記2次キャッシュメモリに対して相互に並列配置され、各々が第2のMPUを持つ3次キャッシュを有する複数個のメインメモリとを備えた高速プロセッサシステムを使用する方法において、
    前記CPUによって、主として、高度な演算処理を実行し、
    前記第1のMPUは、前記CPUの制御プロトコルにより、複数個の前記メインメモリに記録されたデータ及びプログラムを用いた処理を実行し、
    前記第2のMPUは、前記CPUの制御プロトコルにより、該MPUが付設する単一の前記メインメモリに記録されたデータ及びプログラムを用いた処理を実行し、こうして分散並列処理を可能としている、高速プロセッサシステムを使用する方法。
  15. 請求の範囲14に記載の高速プロセッサシステムを使用する方法において、
    前記第1及び第2のMPUの処理は、前記CPUからのプリフェッチ命令又は該MPUにプロセッサ機能を奏させるインテリジェントプリフェッチ命令による制御プロトコルに従って実行される、高速プロセッサシステムを使用する方法。
  16. 請求の範囲14に記載の高速プロセッサシステムを使用する方法において、
    前記高速プロセッサは、通常のプログラミングスタイルで制御されている、高速プロセッサシステムを使用する方法。
  17. 請求の範囲14に記載の高速プロセッサシステムを使用する方法において、
    前記第1及び第2のMPUの双方又はいずれか一方がプロセッサ機能を発揮してデータ処理を行っているときは、該MPUのブロックからの前記1次キャッシュのデータは消去される、高速プロセッサシステムを使用する方法。
  18. 1次キャッシュメモリを有するCPUと、
    前記CPUに対して相互いに並列配置され、各々が、MPUを持つ2次キャッシュメモリを有する複数個のメインメモリとを備えた高速プロセッサシステムにおいて、
    前記MPUは、キャッシュロジック機能とプロセッサ機能とを夫々有し、
    前記MPUのプロセッサ機能は、前記CPUの制御プロトコルにより、該MPUが付設する単一の前記メインメモリに記録されたデータ及びプログラムを用いた処理を実行し、こうして分散並列処理を可能とすることを特徴とする、高速プロセッサシステム。
  19. 請求の範囲18に記載の高速プロセッサシステムにおいて、
    前記2次キャッシュメモリは、ユニファイド・キャッシュ・メモリからなる、高速プロセッサシステム。
  20. 請求の範囲18に記載の高速プロセッサシステムにおいて、
    前記2次キャッシュメモリは、前記CPUからは2次キャッシュメモリとしてアクセスされ、また、前記MPUからは1次キャッシュメモリとしてアクセスされる、高速プロセッサシステム。
  21. 請求の範囲18に記載の高速プロセッサシステムにおいて、
    前記MPUのデータ処理は、前記CPUからのプリフェッチ命令又は該MPUにプロセッサ機能を奏させるインテリジェントプリフェッチ命令による制御プロトコルに従って実行される、高速プロセッサシステム。
  22. 請求の範囲18に記載の高速プロセッサシステムにおいて、
    前記MPUは、前記CPUと比較して、相対的に大きな転送粒度の転送処理及び相対的に低い演算能力の処理を選択的に実行する、高速プロセッサシステム。
  23. 請求の範囲18に記載の高速プロセッサシステムにおいて
    前記1次キャッシュメモリはSRAMからなる、高速プロセッサシステム。
  24. 請求の範囲18に記載の高速プロセッサシステムにおいて、
    前記2次キャッシュメモリはSRAMからなる、高速プロセッサシステム。
  25. 請求の範囲18乃至24のいずれか一項に記載の高速プロセッサシステムにおいて、
    前記高速プロセッサシステムは、ワンチップ内に形成されている、高速プセッサシステム。
JP2000595256A 1999-01-21 2000-01-21 高速プロセッサシステム、これを使用する方法及び記録媒体 Expired - Fee Related JP3698358B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP11-13486 1999-01-21
JP1348699 1999-01-21
PCT/JP2000/000278 WO2000043902A1 (en) 1999-01-21 2000-01-21 High-speed processor system, method of using the same, and recording medium

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2005029278A Division JP4656565B2 (ja) 1999-01-21 2005-02-04 高速プロセッサシステム、これを使用する方法及び記録媒体

Publications (2)

Publication Number Publication Date
JP2002535777A JP2002535777A (ja) 2002-10-22
JP3698358B2 true JP3698358B2 (ja) 2005-09-21

Family

ID=11834461

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000595256A Expired - Fee Related JP3698358B2 (ja) 1999-01-21 2000-01-21 高速プロセッサシステム、これを使用する方法及び記録媒体

Country Status (15)

Country Link
US (3) US6578110B1 (ja)
EP (2) EP1161729B1 (ja)
JP (1) JP3698358B2 (ja)
KR (1) KR100678372B1 (ja)
CN (1) CN100483389C (ja)
AT (1) ATE266884T1 (ja)
AU (1) AU3075600A (ja)
BR (1) BR0008905A (ja)
CA (1) CA2364338A1 (ja)
DE (1) DE60010674T2 (ja)
ES (1) ES2220386T3 (ja)
HK (1) HK1039809A1 (ja)
RU (1) RU2001122104A (ja)
TW (1) TW472197B (ja)
WO (1) WO2000043902A1 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0125711D0 (en) * 2001-10-26 2001-12-19 Ibm In-memory arithmetic
US7133972B2 (en) * 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US7117316B2 (en) 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US6820181B2 (en) 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7330992B2 (en) 2003-12-29 2008-02-12 Micron Technology, Inc. System and method for read synchronization of memory modules
US8301788B2 (en) * 2004-09-10 2012-10-30 Cavium, Inc. Deterministic finite automata (DFA) instruction
US8560475B2 (en) 2004-09-10 2013-10-15 Cavium, Inc. Content search mechanism that uses a deterministic finite automata (DFA) graph, a DFA state machine, and a walker process
US8392590B2 (en) * 2004-09-10 2013-03-05 Cavium, Inc. Deterministic finite automata (DFA) processing
US20070005902A1 (en) * 2004-12-07 2007-01-04 Ocz Technology Group, Inc. Integrated sram cache for a memory module and method therefor
US7653785B2 (en) * 2005-06-22 2010-01-26 Lexmark International, Inc. Reconfigurable cache controller utilizing multiple ASIC SRAMS
US8819217B2 (en) * 2007-11-01 2014-08-26 Cavium, Inc. Intelligent graph walking
US7949683B2 (en) * 2007-11-27 2011-05-24 Cavium Networks, Inc. Method and apparatus for traversing a compressed deterministic finite automata (DFA) graph
US8180803B2 (en) * 2007-11-27 2012-05-15 Cavium, Inc. Deterministic finite automata (DFA) graph compression
JP2010015233A (ja) * 2008-07-01 2010-01-21 Panasonic Corp 集積回路及び電子機器
US8473523B2 (en) 2008-10-31 2013-06-25 Cavium, Inc. Deterministic finite automata graph traversal with nodal bit mapping
US9274950B2 (en) * 2009-08-26 2016-03-01 Hewlett Packard Enterprise Development Lp Data restructuring in multi-level memory hierarchies
US8331123B2 (en) * 2009-09-21 2012-12-11 Ocz Technology Group, Inc. High performance solid-state drives and methods therefor
US20130318269A1 (en) * 2012-05-22 2013-11-28 Xockets IP, LLC Processing structured and unstructured data using offload processors
US9747052B2 (en) * 2013-02-05 2017-08-29 Arm Limited Virtualisation supporting guest operating systems using memory protection units to determine permission of a memory access operation for a physical address
JP6228523B2 (ja) * 2014-09-19 2017-11-08 東芝メモリ株式会社 メモリ制御回路および半導体記憶装置
CN105740946B (zh) * 2015-07-29 2019-02-12 上海磁宇信息科技有限公司 一种应用细胞阵列计算系统实现神经网络计算的方法
CN105718995B (zh) * 2015-07-29 2019-02-01 上海磁宇信息科技有限公司 细胞阵列计算系统及其调试方法
CN105718990B (zh) * 2015-07-29 2019-01-29 上海磁宇信息科技有限公司 细胞阵列计算系统以及其中细胞之间的通信方法
CN105718380B (zh) * 2015-07-29 2019-06-04 上海磁宇信息科技有限公司 细胞阵列计算系统
CN105718992B (zh) * 2015-07-29 2019-02-19 上海磁宇信息科技有限公司 细胞阵列计算系统
CN105718993B (zh) * 2015-07-29 2019-02-19 上海磁宇信息科技有限公司 细胞阵列计算系统以及其中的通信方法
CN105608490B (zh) * 2015-07-29 2018-10-26 上海磁宇信息科技有限公司 细胞阵列计算系统以及其中的通信方法
CN105718994B (zh) * 2015-07-29 2019-02-19 上海磁宇信息科技有限公司 细胞阵列计算系统
CN105718991B (zh) * 2015-07-29 2019-02-19 上海磁宇信息科技有限公司 细胞阵列计算系统
CN105718996B (zh) * 2015-07-29 2019-02-19 上海磁宇信息科技有限公司 细胞阵列计算系统以及其中的通信方法
CN105718379B (zh) * 2015-07-29 2018-09-14 上海磁宇信息科技有限公司 细胞阵列计算系统以及其中细胞间群发通信方法
CN105718392B (zh) * 2016-01-15 2019-01-29 上海磁宇信息科技有限公司 细胞阵列文件存储系统及其文件存储设备与文件存储方法
GB2542646B (en) * 2016-03-18 2017-11-15 Imagination Tech Ltd Non-linear cache logic
CN107291209B (zh) * 2016-04-01 2021-02-09 上海磁宇信息科技有限公司 细胞阵列计算系统
US10409754B2 (en) * 2016-04-28 2019-09-10 Smart Modular Technologies, Inc. Interconnected memory system and method of operation thereof
CN107341129B (zh) * 2016-04-29 2021-06-29 上海磁宇信息科技有限公司 细胞阵列计算系统及其测试方法
JP6493318B2 (ja) * 2016-06-24 2019-04-03 株式会社デンソー データ処理システム
GB2553102B (en) * 2016-08-19 2020-05-20 Advanced Risc Mach Ltd A memory unit and method of operation of a memory unit to handle operation requests
KR102631380B1 (ko) * 2018-05-17 2024-02-01 에스케이하이닉스 주식회사 데이터 연산을 수행할 수 있는 다양한 메모리 장치를 포함하는 반도체 시스템

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2539385B2 (ja) * 1986-08-08 1996-10-02 株式会社日立製作所 情報処理装置
AU2278688A (en) 1988-02-16 1989-08-17 Sun Microsystems, Inc. Distributed cache architecture
JPH0239339A (ja) 1988-07-29 1990-02-08 Hitachi Ltd キヤツシユメモリ装置
US5226169A (en) * 1988-12-30 1993-07-06 International Business Machines Corp. System for execution of storage-immediate and storage-storage instructions within cache buffer storage
EP0375883A3 (en) 1988-12-30 1991-05-29 International Business Machines Corporation Cache storage system
JPH033047A (ja) 1989-05-31 1991-01-09 Nec Corp 演算機能付きメモリ
DE69132495T2 (de) * 1990-03-16 2001-06-13 Texas Instruments Inc., Dallas Verteilter Verarbeitungsspeicher
US5617577A (en) * 1990-11-13 1997-04-01 International Business Machines Corporation Advanced parallel array processor I/O connection
US5260898A (en) 1992-03-13 1993-11-09 Sun Microsystems, Inc. Result cache for complex arithmetic units
US6000027A (en) * 1992-08-25 1999-12-07 Texas Instruments Incorporated Method and apparatus for improved graphics/image processing using a processor and a memory
KR940004434A (ko) * 1992-08-25 1994-03-15 윌리엄 이. 힐러 스마트 다이나믹 랜덤 억세스 메모리 및 그 처리방법
JP3207591B2 (ja) 1993-03-19 2001-09-10 株式会社日立製作所 キャッシュメモリを有する計算機の改良
US6226722B1 (en) * 1994-05-19 2001-05-01 International Business Machines Corporation Integrated level two cache and controller with multiple ports, L1 bypass and concurrent accessing
DE19540915A1 (de) * 1994-11-10 1996-05-15 Raymond Engineering Redundante Anordnung von Festkörper-Speicherbausteinen
US5778436A (en) * 1995-03-06 1998-07-07 Duke University Predictive caching system and method based on memory access which previously followed a cache miss
US5900011A (en) 1996-07-01 1999-05-04 Sun Microsystems, Inc. Integrated processor/memory device with victim data cache
US5848254A (en) 1996-07-01 1998-12-08 Sun Microsystems, Inc. Multiprocessing system using an access to a second memory space to initiate software controlled data prefetch into a first address space
JP3075183B2 (ja) 1996-07-17 2000-08-07 日本電気株式会社 キャッシュメモリシステム
US5895487A (en) * 1996-11-13 1999-04-20 International Business Machines Corporation Integrated processing and L2 DRAM cache
JPH10214223A (ja) 1997-01-29 1998-08-11 Hitachi Ltd 情報処理システム
US5987577A (en) * 1997-04-24 1999-11-16 International Business Machines Dual word enable method and apparatus for memory arrays
US6192451B1 (en) * 1998-02-17 2001-02-20 International Business Machines Corporation Cache coherency protocol for a data processing system including a multi-level memory hierarchy
US6453398B1 (en) * 1999-04-07 2002-09-17 Mitsubishi Electric Research Laboratories, Inc. Multiple access self-testing memory

Also Published As

Publication number Publication date
EP1445701A3 (en) 2009-03-25
JP2002535777A (ja) 2002-10-22
BR0008905A (pt) 2001-11-06
EP1161729A1 (en) 2001-12-12
US6578110B1 (en) 2003-06-10
KR100678372B1 (ko) 2007-02-05
TW472197B (en) 2002-01-11
HK1039809A1 (zh) 2002-05-10
US7028141B2 (en) 2006-04-11
ES2220386T3 (es) 2004-12-16
CN100483389C (zh) 2009-04-29
US20040215881A1 (en) 2004-10-28
CN1341242A (zh) 2002-03-20
US20030217228A1 (en) 2003-11-20
ATE266884T1 (de) 2004-05-15
RU2001122104A (ru) 2003-06-27
KR20010101628A (ko) 2001-11-14
EP1445701A2 (en) 2004-08-11
EP1161729B1 (en) 2004-05-12
CA2364338A1 (en) 2000-07-27
DE60010674D1 (de) 2004-06-17
DE60010674T2 (de) 2005-06-16
WO2000043902A1 (en) 2000-07-27
AU3075600A (en) 2000-08-07
US6745290B2 (en) 2004-06-01

Similar Documents

Publication Publication Date Title
JP3698358B2 (ja) 高速プロセッサシステム、これを使用する方法及び記録媒体
CN112558889B (zh) 一种基于SEDRAM的堆叠式Cache系统、控制方法和Cache装置
US20120254523A1 (en) Storage system which utilizes two kinds of memory devices as its cache memory and method of controlling the storage system
JPH04233641A (ja) データプレフェッチの方法およびその装置
JP2021034052A (ja) 異種メモリを有するメモリシステム、これを含むコンピュータシステム及びそのデータ管理方法
JP2002007373A (ja) 半導体装置
JP4656565B2 (ja) 高速プロセッサシステム、これを使用する方法及び記録媒体
JPH04250542A (ja) コンピューターメモリシステム
JP3701409B2 (ja) メモリシステム
JP2580263B2 (ja) バッファ記憶装置
JP2000047942A (ja) キャッシュメモリ制御装置及びその制御方法
JP3204157B2 (ja) 計算機のデータ供給方式
JP2964504B2 (ja) 文書処理装置
JPH10320278A (ja) メモリコントローラ及びコンピュータシステム
JPH0644139A (ja) ディスクキャッシュシステムおよびそのページ置き換え制御方法
JPH11203198A (ja) メモリアクセス制御装置
US8230173B2 (en) Cache memory system, data processing apparatus, and storage apparatus
JPH0573420A (ja) キヤツシユメモリを持つコンピユータ
MXPA01007416A (en) High-speed processor system, method of using the same, and recording medium
JPH04291642A (ja) キャッシュ制御方式
JPH02226447A (ja) コンピユータ・システムおよびその記憶装置アクセス方法
JPH1055308A (ja) キャッシュメモリ
JPH04340143A (ja) ディジタル計算機
JPH0415495B2 (ja)
JPS6158061A (ja) バツフアメモリの制御方式

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050207

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

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050624

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050628

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050701

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080715

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090715

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090715

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100715

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110715

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110715

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120715

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120715

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130715

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees