JP4066833B2 - ディスクアレイ制御装置及び方法並びにディスクアレイ制御プログラム - Google Patents

ディスクアレイ制御装置及び方法並びにディスクアレイ制御プログラム Download PDF

Info

Publication number
JP4066833B2
JP4066833B2 JP2003039185A JP2003039185A JP4066833B2 JP 4066833 B2 JP4066833 B2 JP 4066833B2 JP 2003039185 A JP2003039185 A JP 2003039185A JP 2003039185 A JP2003039185 A JP 2003039185A JP 4066833 B2 JP4066833 B2 JP 4066833B2
Authority
JP
Japan
Prior art keywords
priority
task
tasks
processing
executed
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
JP2003039185A
Other languages
English (en)
Other versions
JP2004252526A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2003039185A priority Critical patent/JP4066833B2/ja
Priority to US10/750,954 priority patent/US7512753B2/en
Publication of JP2004252526A publication Critical patent/JP2004252526A/ja
Application granted granted Critical
Publication of JP4066833B2 publication Critical patent/JP4066833B2/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ディスク装置を複数台並列に接続し、全体をまとめて制御することにより、データ転送速度の高速化及びデータ障害の耐久性の向上を図るディスクアレイに関し、詳しくはディスクアレイに用いられる制御装置等に関する。
【0002】
【従来の技術】
従来、ディスクアレイでは、ホストコンピュータからの書き込み/読み出し要求に対する処理能力を向上させるため、多数の書き込み/読み出し処理(以下「I/O処理」という。)を同時に実行している。これを実現するために、ディスクアレイは、ファームウェアにリアルタイムOS等を使用することにより、マルチタスク処理を行う場合がある(例えば、下記特許文献1,2参照。)。このマルチタスク処理によれば、それぞれのタスクが1つのI/O処理を実行し、また複数のタスクが同時に処理を実行できるため、単位時間あたりのI/O処理能力が向上する。一般にリアルタイムOSのマルチタスク処理では、タスク毎にそれぞれ制御用のメモリ領域をローカルメモリに持つことにより、複数のタスクを同時に実行できるようになっている。
【0003】
一方、近年のディスクアレイでは、マイクロプロセッサにプロセッサキャッシュを搭載することにより、性能の向上を図っている。つまり、ローカルメモリの同じメモリ領域を何度もアクセスする場合に、アクセス速度の速いプロセッサキャッシュ上にデータ(プログラムや制御情報など)を保持しておき、2回目のアクセス以降ではプロセッサキャッシュ上のデータを使用する。これにより、ローカルメモリへのアクセス回数が減るので、処理速度が向上する。プロセッサキャッシュへのデータ格納方式としては、一般にLRU(Least Recently Used)方式が使用されている。このLRU方式とは、プロセッサキャッシュにデータを格納するブロックがない場合に、プロセッサキャッシュ上で最後に参照されてから現在までの経過時間が最も長いデータブロックを追い出す方式である。
【0004】
なお、「キャッシュメモリ」とは、ホストコンピュータからディスク装置に対して書き込み/読み出しされたデータの中でよく使うデータを保持しておくものである。これに対して、「プロセッサキャッシュ」とは、プロセッサが動作するためのマイクロプログラムや制御情報を格納しておくプロセッサ用のメモリ(ローカルメモリ)に格納されたデータの中でよく使うデータを保持しておくものである。また、ここでいう「I/O処理」とは、書き込み処理又は読み出し処理のことである。
【0005】
【特許文献1】
特開平2−287849号公報
【特許文献2】
特開平5−298122号公報
【0006】
【発明が解決しようとする課題】
マルチタスク処理では、タスク毎にメモリ領域を割り当てている(タスクメモリ)。そのため、タスク数が少ない場合には、全てのタスクメモリをプロセッサキャッシュ内に格納できることにより、プロセッサキャッシュのみにアクセスすればよいので、高速に処理することができる。しかし、タスク数が多くなると、全てのタスクメモリをプロセッサキャッシュ内に格納できなくなるため、プロセッサキャッシュのデータに対して追い出しや再読み込みが発生することにより、処理速度が低下してしまう。一方、ディスクアレイにおいては、ホストコンピュータからのI/O処理要求を多重で実行する必要があるため、多数のタスクによって処理しなければ、十分な処理速度を得ることができない。
【0007】
【発明の目的】
そこで、本発明の目的は、ディスクアレイの処理速度を向上できるディスクアレイ制御装置等を提供することにある。
【0008】
【課題を解決するための手段】
ホストコンピュータからの読み出し要求時にディスクアレイのキャッシュメモリ内にデータが存在する場合(キャッシュヒット時)は、ディスク装置にアクセスする必要がないので、高速に処理を実行できる。そのため、タスク数は少ない方がプロセッサキャッシュを有効に利用できる。なぜなら、タスク数が少なければ全てのタスクメモリをプロセッサキャッシュ内に格納できるため、プロセッサキャッシュのみにアクセスすればよいので、高速に処理できるからである。
【0009】
一方、読み出し要求時にディスクアレイのキャッシュメモリ内にデータが存在しないためディスク装置からデータを読み出すような場合(キャッシュミス時)は、一つの処理に時間がかかるため、タスク数が十分にないと全体としての処理速度が低下してしまう。つまり、プロセッサキャッシュが有効に利用されていない時にタスク数を減らしても、プロセッサキャッシュによる処理速度の向上が望めないばかりか、却って処理速度が低下してしまう。
【0010】
このように、キャッシュヒット時の処理速度を向上させようとしてタスク数を少なくするとキャッシュミス時に処理速度が低下し、逆にキャッシュミス時の処理速度を向上させようとしてタスク数を多くするとキャッシュヒット時に処理速度が低下してしまう。なお、ここでいう「キャッシュヒット時及びキャッシュミス時」は、キャッシュメモリに対するものであり、プロセッサキャッシュに対するものではない。
【0011】
そこで、本発明に係るディスクアレイ制御装置では、ディスクアレイのキャッシュヒット時及びキャッシュミス時の双方での処理速度を向上できる構成としている。以下に詳しく説明する。
【0012】
本発明に係るディスクアレイ制御装置は、ホストコンピュータから出力されたI/O処理要求に基づき、キャッシュメモリを有するディスクアレイに対してマルチタスク処理を実行する手段と、各タスク処理の実行に必要なプログラムや制御情報を使用頻度の高いものに入れ換えつつ保持する記憶部とを備えたものである。そして、本発明に係るディスクアレイ制御装置は、ホストI/O受信手段、低優先度I/O処理実行手段、高優先度I/O処理実行手段、実行タスク選択手段を備えたことを特徴とする。ホストI/O受信手段は、ホストコンピュータからのI/O処理要求を受信する。高優先度I/O処理実行手段は、所定の優先度を持つX個の高優先タスクを生成する。低優先度I/O処理実行手段は、タスクの総数をYとしたとき、(Y−X)個の高優先タスクより低い優先度をもつ低優先タスクを生成する。実行タスク選択手段は、ホストI/O受信手段で受信されたI/O処理を、実行中の高優先タスクの数がXである場合は高優先度I/O処理実行手段に渡して高優先タスクにより実行させ、実行中の高優先タスクの数がXに一致する場合は低優先度I/O処理実行手段に渡して低優先タスクにより実行させる。
低優先度I/O処理実行手段が実行するI/O処理を「低優先タスク処理」、高優先度I/O処理実行手段が実行するI/O処理を「高優先タスク処理」とそれぞれ呼ぶこととする。
【0013】
実行中の高優先タスク処理の数が一定数未満の場合、ホストI/O受信手段で受信されたI/O処理は、実行タスク選択手段によって高優先タスク処理とされる。一方、実行中の高優先タスク処理の数が一定数に一致する場合、ホストI/O受信手段で受信されたI/O処理は、実行タスク選択手段によって低優先タスク処理とされる。これらの高優先タスク処理及び低優先タスク処理はそれぞれ高優先度I/O処理実行手段及び低優先度I/O処理実行手段で実行されるが、高優先タスク処理は低優先タスク処理よりも優先的に実行される。
【0014】
従来技術では、タスクに優先度を設けていないので、キャッシュヒット時でも多数のタスクが順次動作する。このため、タスクの実行に必要な制御情報を保持する記憶部において、データの追い出しが発生する。したがって、次に同じタスクが処理を実行しようとしたときに、記憶部にヒットしないのでアクセスに時間がかかる。
【0015】
これに対し、本発明では、一定数の高優先タスクを優先的に実行する。したがって、少数のタスクのみが優先的に実行されることにより、キャッシュヒット時に記憶部においてデータの追い出しが発生しにくいので、処理速度が向上する。一方、キャッシュミス時は、一つの処理に長時間かかるため、実行中のタスク数が多くなる。なぜなら、高優先タスクの占める一定数を越えたタスクは、低優先タスクとして実行させるからである。そのため、キャッシュミス時に実行するタスク数を制限する場合に比べて、多くのタスクが実行されるので、処理速度が向上する。
【0016】
また、低優先タスクのタスク優先度を処理実行開始直後に動的に高優先タスクと同じ優先度に変更し、処理実行完了時に元の優先度に戻す、タスク優先度変更手段を更に備えている。換言すると、低優先タスク処理の実行直後に当該低優先タスク処理を高優先タスク処理に変更するタスク優先度変更手段を更に備えている。
【0017】
タスクの優先度は、複数のタスクが実行中の場合のタスクの実行順序に影響する。つまり、優先度の高いタスクと優先度の低いタスクとが同時に処理を実行していた場合、優先度の高いタスクばかりが処理を実行し、優先度の低いタスクがいつまでたっても処理を実行できないという現象が発生することがある。これを回避するために、本発明では、低優先タスクの処理実行中はその優先度を高優先タスクと同じにする。
【0018】
ここで、リアルタイムOS等によるマルチタスク処理について簡単に説明しておく(ただし、本発明をリアルタイムOSに限定する主旨ではない。)。ある処理を実行するタスクは、最初は通常「実行待ち状態」にあり、他のあるタスクからの起動指示を待っている。複数のタスクが実行待ち状態にある場合はタスクの「実行待ち行列」が生成され、タスクの起動指示を受けたときにその待ち行列の先頭に並んでいるタスクが処理を引き受け実行する。本発明での「実行待ち行列」では、待ちに入った順番に関係なくタスクの優先度順に、タスクが待ち行列に並ぶ(優先度が同じ場合は待ちに入った順番となる)。
【0019】
このようなマルチタスク処理において、タスクの優先度は、通常、プログラムの初期化時に固定で設定されるため、動作中に変化することはない。そこで、本発明では、低優先タスクが処理を実行開始直後にその優先度を変更し、処理実行を終了して待ち行列に並ぶ直前に優先度を元に戻す。これが「動的」に優先度を変更するという意味である。
【0020】
また、タスクの優先度は待ち行列の並び順に影響するだけでなく、複数のタスクが実行中の場合のタスクの実行順序にも影響する。つまり、優先度の高いタスクと優先度の低いタスクとが同時に処理を実行していた場合、優先度の高いタスクばかりが処理を実行し、優先度の低いタスクがいつまでたっても処理を実行できないという現象が発生することがある。これを回避するために、本発明では、低優先タスクの処理実行中はその優先度を高優先タスクと同じにする。
【0021】
更にまた、実行されたタスク処理がキャシュメモリに対するものである場合にキャッシュヒットと判定するキャッシュヒット判定手段と、一定時間内に実行されたタスク処理の総数に占めるキャッシュヒットの数をキャッシュヒット率とし、このキャッシュヒット率が高ければ実行するタスク処理数を少なくしキャッシュヒット率が低ければ実行するタスク処理数を多くするキャッシュヒット率監視手段とを更に備えた、としてもよい。
【0022】
キャッシュヒット率が高い場合にタスク処理数を少なくすることにより、実行されるタスク数を確実に少なくできるので、キャッシュヒット時に記憶部においてデータの追い出しがより発生しにくくなり、これにより処理速度がより向上する。一方、キャッシュヒット率が低い場合はタスク処理数を多くすることにより、実行されるタスク数を確実に多くできるので、処理速度がより向上する。
【0023】
本発明に係るディスクアレイ制御方法(請求項4乃至6)は、本発明に係るディスクアレイ制御装置に用いられるものであり、それぞれ請求項1乃至3記載の構成に対応する。本発明に係るディスクアレイ制御プログラム(請求項7乃至9)は、本発明に係るディスクアレイ制御装置に用いられるものであり、それぞれ請求項1乃至3記載の構成に対応する。
【0024】
換言すると、本発明は次の(1)〜(3)ような特徴点を有する。(1)マルチタスク処理において、高優先タスクと低優先タスクとの2種類を用意することにより、プロセッサキャッシュを効率的に使用する点。(2)タスク優先度を動的に変更することにより、低優先タスクの処理遅延を防止する点。(3)キャッシュヒット率を監視することにより、タスクの起動数を調整してプロセッサキャッシュを効率的に使用する点。すなわち、本発明は、マルチタスク処理を行うディスクアレイにおいて、ホストI/O受信手段、実行タスク選択手段、高優先度I/O処理実行手段(高優先タスク)、低優先度I/O処理実行手段(低優先タスク)、タスク優先度変更手段、キャッシュヒット判定手段、キャッシュヒット率監視手段等を備えることにより、プロセッサキャッシュを効率的に使用し、I/O処理(書き込み/読み出し処理)の高速化を図ることを特徴とする。
【0025】
【発明の実施の形態】
以下、本発明に係るディスクアレイ制御装置の実施形態について、図面を参照しつつ説明する。ただし、特許請求の範囲における「ディスクアレイ制御装置」及び「記憶部」は、それぞれ「ホストI/F(インタフェース)制御部」及び「プロセッサキャッシュ」と具体化して言い換えるものとする。なお、本発明に係るディスクアレイ制御方法及びディスクアレイ制御プログラムについては、本発明に係るディスクアレイ制御装置に使用されるものであるので、本発明に係るディスクアレイ制御装置の実施形態を説明する中で同時に説明する。
【0026】
図1は、本発明に係るディスクアレイ制御装置のハードウェア構成の一例を示すブロック図である。図2は、本発明に係るディスクアレイ制御装置の第一実施形態を示す機能ブロック図である。以下、これらの図面に基づき説明する。
【0027】
まず、概略的に説明する。図1に示すように、ディスクアレイ20は、ホストI/F制御部21、キャッシュメモリ22、ディスクI/F制御部23、複数のディスク装置24等から構成されている。ホストI/F制御部23は、マイクロプロセッサ31、プロセッサキャッシュ32及びローカルメモリ33を含んで構成され、ホストコンピュータ10から出力されたI/O処理要求に基づきディスクアレイ20に対してマルチタスク処理を実行する。プロセッサキャッシュ32は、各タスク処理の実行に必要なプログラムや制御情報を、使用頻度の高いものに入れ換えつつ保持する。
【0028】
図2に示すように、ホストI/F制御部21は、ホストコンピュータ10からのI/O処理要求を受信するホストI/O受信手段40と、低優先タスク処理を実行する低優先度I/O処理実行手段43と、低優先タスク処理よりも優先的に高優先タスク処理を実行する高優先度I/O処理実行手段42と、実行タスク選択手段41とを備えている。実行タスク選択手段41は、ホストI/O受信手段40で受信されたI/O処理を、実行中の高優先タスク処理の数が一定数未満の場合は高優先タスク処理とし、実行中の高優先タスク処理の数が一定数に一致する場合は低優先タスク処理とする。また、本実施形態のホストI/F制御部21は、低優先タスク処理の実行直後に当該低優先タスク処理を高優先タスク処理に変更するタスク優先度変更手段44を更に備えている。
【0029】
更に詳しく説明する。ディスクアレイ20は、ホストコンピュータ10からのI/O(書き込み/読み出し)要求をホストI/F制御部21で処理する。ホストI/F制御部21は、マルチタスク処理によりI/O処理を実行する。マルチタスク処理とは、複数のタスク(ある一連の処理を実行するモジュール)がそれぞれ独立に動作し、同時に多数のタスクが動作することにより、処理能力を向上させるものである。一般にマルチタスク処理においては、それぞれのタスクが個別にメモリ(タスクメモリ)を必要とするため、プロセッサキャッシュ32を搭載して処理の高速化を図っている。この場合、多数のタスクが動作すると、プロセッサキャッシュ32内でのデータの追い出しや再読み込みが発生することにより、最適な性能(処理速度)が得られない場合がある。
【0030】
ディスクアレイ20がホストコンピュータ10から書き込み要求を受けると、ホストI/F制御部21は、キャッシュメモリ22にデータを書き込んだ後、ホストコンピュータ10に対して完了報告を行う。また、ディスクI/F制御部23は、ホストコンピュータ10からの要求と非同期に、キャッシュメモリ22に格納された書き込みデータをディスク装置24に書き込む。また、ディスクアレイ20がホストコンピュータ10から読み出し要求を受けると、ホストI/F制御部21は、キャッシュメモリ22内に有効なデータが存在するか否かを調査し、存在する場合(キャッシュヒット)にキャッシュメモリ22内のデータをホストコンピュータ10に送信する。一方、読み出し要求時にキャッシュメモリ22内に有効なデータが存在しない場合(キャッシュミス)、ホストI/F制御部21は、ディスクI/F制御部23に対してディスク装置24からのデータ読み出し指示を通知する。通知を受けたディスクI/F制御部23は、要求されたデータをディスク装置24からデータを読み出してキャッシュメモリ22内に書き込み、ホストI/F制御部21に完了報告を行う。ディスクI/F制御部23から完了報告を受けたホストI/F制御部21は、キャッシュメモリ22に格納されたデータをホストコンピュータ10に送信して完了報告を行う。
【0031】
ホストI/F制御部21は、ローカルメモリ33を有しており、マイクロプロセッサ31を動作させるためのマイクロコードとI/O処理を実行するための制御情報とを保持している。また、マイクロプロセッサ31には、処理の高速化を図るためにプロセッサキャッシュ32が接続されている。つまり、ローカルメモリ33内の同じメモリ領域を何度もアクセスする場合はアクセス速度の速いプロセッサキャッシュ32上にデータを移し、2回目のアクセス以降ではプロセッサキャッシュ32上のデータを使用することにより、ローカルメモリ33へのアクセス回数を減らして性能を向上させている。プロセッサキャッシュ32へのデータ格納方式としては、LRU(Least Recently Used)方式が使用されている。LRU方式とは、プロセッサキャッシュ32にデータを格納するブロックがない場合に、プロセッサキャッシュ32上で最後に参照されてから現在までの経過時間がもっとも長いデータブロックを追い出す方式である。
【0032】
次に、言葉を換えてもう一度説明する。
【0033】
ホストI/F制御部21を機能毎にブロック化したものが図2である。図2に示すように、ホストI/F制御部21は、ホストI/O受信手段40、実行タスク選択手段41、高優先度I/O処理実行手段(複数の高優先タスクA)42、低優先度I/O処理実行手段(複数の低優先タスクB)43、及びタスク優先度変更手段44を備えている。ホストI/O受信手段40は、ホストコンピュータ10からのI/O要求を受信して解析する。高優先タスクA及び低優先タスクBはそれぞれ複数存在し、それぞれのタスクが独立にI/O処理を実行する。ここで、低優先タスクBについては、高優先タスクAよりもタスク優先度が1つ低くなるように設定しておく。タスクの優先度が異なる場合、優先度の高いタスクの方が優先度の低いタスクよりも優先して処理される。実行タスク選択手段41は、ホストI/O受信手段40が解析したI/O処理要求を、高優先度I/O処理実行手段42又は低優先度I/O処理実行手段43に送信する。タスク優先度変更手段44は、低優先タスクBのタスク優先度を動的に変更する。
【0034】
ホストI/O受信手段40はホストコンピュータ10からのI/O要求を受信して内容を解析し、I/O処理要求を実行タスク選択手段41に送信する。I/O処理要求を受信した実行タスク選択手段41は、タスク優先度の高い順に高優先度I/O処理実行手段42及び低優先度I/O処理実行手段43に処理を渡していく。つまり、I/O処理を実行していない高優先タスクAが存在する場合は高優先度I/O処理実行手段42に処理を渡し、全ての高優先タスクAがI/O処理を実行中の場合は低優先度I/O処理実行手段43に処理を渡す。ここで、低優先タスク42はタスクの優先度を高優先タスク43よりも1つ低く設定してある。高優先タスクA及び低優先タスクBはそれぞれ独立にデータ転送等のI/O処理を実行する。
【0035】
これにより、I/O処理が短い時間で実行できるような場合(キャッシュヒット時)は、高優先タスクAのみで処理可能であるので、I/O処理を実行するタスク数が限られる。そのため、常にプロセッサキャッシュ32にヒットする状態で処理を実行できるので、処理速度が向上する。また、I/O処理に長い時間を要するような場合(キャッシュミス時)は、低優先タスクBも含めた多数のタスクが動作する。そのため、プロセッサキャッシュ32にヒットしない状態となるものの、多数のタスクが多重に動作することにより処理速度が向上する。
【0036】
ただし、高優先タスクAと低優先タスクBとが同時に処理を実行している場合、タスクの優先度が低いために低優先タスクBの処理が遅延することにより、低優先タスクBが実行しているI/O処理に対するホストコンピュータ10への応答が遅くなるという問題が発生する。場合によってはI/Oエラーに至る可能性がある。これを回避するために、低優先度I/O処理実行手段43は、タスク優先度変更手段44によって自タスクの優先度を動的に変更させる。すなわち、タスク優先度変更手段44は、低優先タスクBの動作開始時にタスクの優先度を1つ上げて高優先タスクAと同じタスク優先度に変更し、低優先タスクBがI/O処理を完了した時にタスクの優先度を1つ下げて元の優先度に戻しておく。これにより、低優先タスクBのI/O処理が遅延することを回避することができる。
【0037】
図3は、図2のホストI/F制御部におけるI/O処理実行タスクの生成処理を示すフローチャートである。図4は、図2のホストI/F制御部におけるタスク優先度変更手段の動作を示すフローチャートである。以下、図1乃至図4に基づき、ホストI/F制御部21の動作を説明する。
【0038】
最初に、I/O処理実行タスクの生成処理について、図4のフローチャートを参照して説明する。まず、タスク番号を0とする(S12)。続いて、タスク優先度をNとしてタスクを生成し(S13)、タスク番号をインクリメントする(S14)。これを高優先タスクAの一定数分繰り返して高優先タスクAを生成する(S15)。続いて、タスク優先度をN−1としてタスクを生成し(S16)、タスク番号をインクリメントする(S17)。これをタスク番号が全タスク数と一致するまで繰り返して、低優先タスクBを生成する(S18)。これにより、優先度がNの高優先タスクAと優先度がN−1の低優先タスクBとが、それぞれ複数生成される。
【0039】
次に、ホストコンピュータ10からのI/O処理要求を受信した時の動作について、図1及び図2を参照して説明する。ホストコンピュータ10からのI/O処理要求を受信したホストI/O受信手段40は、I/O処理内容を解析して実行タスク選択手段41に送信する。I/O処理要求を受信した実行タスク選択手段41は、タスク優先度の高い順に高優先度I/O処理実行手段42及び低優先度I/O処理実行手段43に処理を渡していく。つまり、I/O処理を実行していない高優先タスクAが存在する場合は高優先度I/O処理実行手段42にタスク処理を渡し、一定数全ての高優先タスクAがI/O処理を実行中の場合は低優先度I/O処理実行手段43にタスク処理を渡す。これにより、I/O処理が短い時間で実行できるような場合(キャッシュヒット時)は、高優先タスクAのみで処理可能である。そのため、I/O処理を実行するタスク数が限られるため、常にプロセッサキャッシュ32にヒットする状態で処理を実行できるので、処理速度が向上する。また、I/O処理に長い時間を要するような場合(キャッシュミス時)は、低優先タスクBも含めた多数のタスクが動作する。そのため、プロセッサキャッシュ32にヒットしない状態となるものの、多数のタスクが多重に動作することにより処理速度が向上する。
【0040】
ただし、高優先タスクAと低優先タスクBとが同時に処理を実行している場合、タスクの優先度が低いために低優先タスクBの処理が遅延し、低優先タスクBが実行しているI/O処理に対するホストコンピュータ10への応答が遅くなるという問題が発生する。場合によってはI/Oエラーに至る可能性がある。これを回避するため、タスク優先度変更手段44により低優先タスクBのタスク優先度を動的に変更する。そのフローチャートを図3に示す。
【0041】
図3において、実行タスク選択手段41からI/O処理要求を受信した高優先度I/O処理実行手段42及び低優先度I/O処理実行手段43は(S01)、自タスクのタスク番号を調査して低優先タスクBか高優先タスクAかを判定する(S02)。自タスクが低優先タスクBの場合は、自タスクの優先度をNに変更する(S03)。続いて、データ転送等のI/O処理を実行し(S04)、自タスクが低優先タスクBの場合はタスクの優先度をN−1に戻す(S05,S06)。最後に、I/O処理を終了して再度I/O処理要求待ち状態に入る(S07)。これにより、タスクの優先度が低いことにより、低優先タスクBが実行するI/O処理が遅延することは、回避される。このようにして、ディスクアレイ20のキャッシュヒット性能及びキャッシュミス性能の双方を向上できる。
【0042】
図5は、本発明に係るディスクアレイ制御装置の第二実施形態を示す機能ブロック図である。以下、図1及び図5に基づき説明する。ただし、図5において図2と同じ部分は、同じ符号を付すことにより説明を省略する。
【0043】
本実施形態のホストI/F制御部30は、ホストI/O受信手段40、実行タスク選択手段41、複数の高優先度I/O処理実行手段(高優先タスクA)42、複数の低優先度I/O処理実行手段(低優先タスクB)43、タスク優先度変更手段44、キャッシュヒット判定手段45、キャッシュヒット率監視手段46等を備えている。
【0044】
ホストI/O受信手段40は、ホストコンピュータ10からのI/O要求を受信し解析する。高優先タスクA及び低優先タスクBはそれぞれ複数存在し、それぞれのタスクが独立にI/O処理を実行する。ここで、低優先タスクBについては、高優先タスクAよりもタスク優先度を1つ低く設定しておく。タスクの優先度が異なる場合、優先度の高いタスクの方が優先度の低いタスクよりも優先して処理される。実行タスク選択手段41は、ホストI/O受信手段40から受信したI/O処理要求を高優先度I/O処理実行手段42又は低優先度I/O処理実行手段43に送信する。タスク優先度変更手段44は、低優先タスクBのタスク優先度を動的に変更する。キャッシュヒット判定手段45は、ホストI/Oがキャッシュヒットしているか否かを判定する。キャッシュヒット率監視手段46は、ある一定時間内のキャッシュヒット率(キャッシュヒットしたI/O数÷全体のI/O処理数)を監視する。
【0045】
次に、ホストI/F制御部30の動作について説明する。ホストコンピュータ10からのI/O処理要求を受信したホストI/O受信手段40は、I/O処理内容を解析して実行タスク選択手段41に送信する。一方、キャッシュヒット判定手段45は、ホストI/O受信手段40で受信したホストI/Oがキャッシュヒットしているか否かを判定する。キャッシュヒットとは、ホストI/Oに該当するアドレスのデータがキャッシュメモリ22上に存在することを示す。キャッシュヒットしている場合には、ディスク装置24へのアクセスを行う必要がないため、短時間でI/O処理を実行することができる。キャッシュヒット率監視手段46は、キャッシュヒット判定手段45の判定結果を使用してある一定時間内のキャッシュヒット率(キャッシュヒットしたI/O数÷全体のI/O処理数)を監視し、そのキャッシュヒット率を実行タスク選択手段41に通知する。
【0046】
ホストI/O受信手段40からI/O処理要求を受信した実行タスク選択手段41は、キャッシュヒット率監視手段43から通知されたキャッシュヒット率の値に応じて、高優先度I/O処理実行手段42及び低優先度I/O処理実行手段43の起動数を調整する。つまり、通知されたキャッシュヒット率がある規定値以上の場合(I/O処理を短時間で処理することができる場合)は高優先タスクAのみで動作するように、高優先タスクAの一定数を越えてI/O処理を起動しないように制限する。キャッシュヒット率がある規定値未満の場合(I/O処理に時間を要する場合)は、低優先タスクBも動作するように全てのI/O処理を起動する。
【0047】
これにより、キャッシュヒット時は、高優先タスクAのみで処理可能であり、I/O処理を実行するタスク数が限られる。そのため、常にプロセッサキャッシュ32にヒットする状態で処理を実行できるので、処理速度が向上する。また、キャッシュミス時は低優先タスクBも含めた多数のタスクが動作するのでプロセッサキャッシュ32にヒットしない状態となるものの、多数のタスクが多重に動作することにより処理速度が向上する。このようにして、ディスクアレイ20のキャッシュヒット性能及びキャッシュミス性能の双方を向上できる。
【0048】
【発明の効果】
本発明に係るディスクアレイ制御装置等によれば、実行中の高優先タスク処理の数が一定数未満の場合はホストコンピュータから受信したI/O処理を高優先タスク処理とし、実行中の高優先タスク処理の数が一定数に一致する場合はホストコンピュータから受信したI/O処理を低優先タスク処理とすることにより、少数のタスクのみが優先的に実行されるので、キャッシュヒット時に記憶部においてデータの追い出しが発生しにくくなり、これにより処理速度を向上できる。一方、キャッシュミス時は低優先タスクも含めて実行中のタスク数が多くなることにより、キャッシュミス時に実行するタスク数を制限する場合に比べて、処理速度を向上できる。
【0049】
また、低優先タスク処理を実行直後に高優先タスク処理に変更することにより、低優先タスク処理の遅延を回避できるので、全体としての処理速度を向上できる。
【0050】
更に、キャッシュヒット率が高い場合にタスク処理数を少なくすることにより、実行されるタスク数を確実に少なくできるので、キャッシュヒット時に記憶部においてデータの追い出しがより発生しにくくなり、これにより処理速度をより向上できる。一方、キャッシュヒット率が低い場合はタスク処理数を多くすることにより、実行されるタスク数を確実に多くできるので、処理速度をより向上できる。
【0051】
換言すると、本発明によれば次の効果を奏する。
【0052】
第1の効果は、I/O処理が短い時間で実行できるような場合(キャッシュヒット時)のディスクアレイの性能を向上できることにある。その理由は、I/O処理が短い時間で実行できるような場合は、高優先タスクのみで処理可能であるため、常にプロセッサキャッシュにヒットする状態で処理を実行できるからである。
【0053】
第2の効果は、I/O処理に長い時間を要するような場合(キャッシュミス時)のディスクアレイの性能を向上できることにある。その理由は、I/O処理に長い時間を要するような場合は、低優先タスクも含めた多数のタスクが動作するので、十分な数のタスクを用意しておけば多数のタスクが多重に動作できるからである。
【0054】
第3の効果は、キャッシュヒット性能及びキャッシュミス性能の双方を向上した上で、ホストコンピュータに対する完了報告を遅延させることなく、各I/O処理の処理時間を均等にできることにある。その理由は、タスクの優先度を動的に変更することにより、I/O処理実行中に全タスクの優先度が同一になるように制御しているからである。
【図面の簡単な説明】
【図1】本発明に係るディスクアレイ制御装置のハードウェア構成の一例を示すブロック図である。
【図2】本発明に係るディスクアレイ制御装置の第一実施形態を示す機能ブロック図である。
【図3】図2のホストI/F制御部におけるI/O処理実行タスクの生成処理を示すフローチャートである。
【図4】図2のホストI/F制御部におけるタスク優先度変更手段の動作を示すフローチャートである。
【図5】本発明に係るディスクアレイ制御装置の第二実施形態を示す機能ブロック図である。
【符号の説明】
10 ホストコンピュータ
20 ディスクアレイ
21,30 ホストI/F制御部(ディスクアレイ制御装置)
22 キャッシュメモリ
23 ディスクI/F制御部
24 ディスク装置
31 マイクロプロセッサ
32 プロセッサキャッシュ(記憶部)
33 ローカルメモリ
40 ホストI/O受信手段
41 実行タスク選択手段
42 高優先度I/O処理実行手段
43 低優先度I/O処理実行手段
44 タスク優先度変更手段
45 キャッシュヒット判定手段
46 キャッシュヒット率監視手段

Claims (6)

  1. ホストコンピュータから出力されたI/O処理要求に基づき、キャッシュメモリを有するディスクアレイに対してマルチタスク処理を実行する手段と、各タスクの実行に必要なプログラムや制御情報を使用頻度の高いものに入れ換えつつ保持する記憶部とを備えたディスクアレイ制御装置において、
    前記ホストコンピュータからのI/O処理要求を受信するホストI/O受信手段と、
    所定の優先度を持つX個の高優先タスクを生成する高優先度I/O処理実行手段と、
    タスクの総数をYとしたとき、(Y−X)個の前記高優先タスクより低い優先度をもつ低優先タスクを生成する低優先度I/O処理実行手段と、
    前記ホストI/O受信手段で受信されたI/O処理を、実行中の前記高優先タスクの数がX未満である場合は前記高優先度I/O処理実行手段に渡して前記高優先タスクにより実行させ、実行中の前記高優先タスクの数がXに一致する場合は前記低優先度I/O処理実行手段に渡して前記低優先タスクにより実行させる実行タスク選択手段と、
    前記低優先タスクの実行直後に当該低優先タスクを前記高優先タスクに変更するタスク優先度変更手段と、
    を備えたことを特徴とするディスクアレイ制御装置。
  2. 実行されたタスクが前記キャシュメモリに対するものである場合にキャッシュヒットと判定するキャッシュヒット判定手段と、
    一定時間内に実行されたタスクの総数に占める前記キャッシュヒットの数をキャッシュヒット率とし、このキャッシュヒット率が高ければ実行するタスク数を少なくし当該キャッシュヒット率が低ければ実行するタスク数を多くするキャッシュヒット率監視手段と、
    を更に備えた請求項記載のディスクアレイ制御装置。
  3. ホストコンピュータから出力されたI/O処理要求に基づき、キャッシュメモリを有するディスクアレイに対してマルチタスク処理を実行する手段と、各タスクの実行に必要なプログラムや制御情報を使用頻度の高いものに入れ換えつつ保持する記憶部とを備えたディスクアレイ制御装置に用いられ、
    所定の優先度を持つX個の高優先タスクと、タスクの総数をYとしたとき、(Y−X)個の前記高優先タスクより低い優先度をもつ低優先タスクを生成し、
    前記ホストコンピュータからI/O処理要求を受信し、
    このI/O処理を、実行中の前記高優先タスクの数がX未満の場合は高優先タスクとし、実行中の前記高優先タスク処理の数がXである場合は前記低優先タスクとして実行し、
    前記低優先タスクの実行直後に当該低優先タスクを前記高優先タスクに変更する、
    ディスクアレイ制御方法。
  4. 実行されたタスクが前記キャシュメモリに対するものである場合にキャッシュヒットと判定し、
    一定時間内に実行されたタスクの総数に占める前記キャッシュヒットの数をキャッシュヒット率とし、このキャッシュヒット率が高ければ実行するタスク数を少なくし当該キャッシュヒット率が低ければ実行するタスク数を多くする、
    請求項記載のディスクアレイ制御方法。
  5. ホストコンピュータから出力されたI/O処理要求に基づき、キャッシュメモリを有するディスクアレイに対してマルチタスク処理を実行するマイクロプロセッサと、各タスクの実行に必要なプログラムや制御情報を使用頻度の高いものに入れ換えつつ保持する記憶部とを備えたディスクアレイ制御装置に用いられ、
    前記ホストコンピュータからのI/O処理要求を受信するホストI/O受信手段、
    所定の優先度を持つX個の高優先タスクを生成する高優先度I/O処理実行手段と、
    タスクの総数をYとしたとき、(Y−X)個の前記高優先タスクより低い優先度をもつ低優先タスクを生成する低優先度I/O処理実行手段
    前記ホストI/O受信手段で受信されたI/O処理を、実行中の前記高優先タスクの数がX未満である場合は前記高優先度I/O処理実行手段に渡して前記高優先タスクにより実行させ、実行中の前記高優先タスクの数がXに一致する場合は前記低優先度I/O処理実行手段に渡して前記低優先タスクにより実行させる実行タスク選択手段、及び、
    前記低優先タスクの実行直後に当該低優先タスクを前記高優先タスクに変更するタスク優先度変更手段、
    として前記マイクロプロセッサを機能させるディスクアレイ制御プログラム。
  6. 実行されたタスクが前記キャシュメモリに対するものである場合にキャッシュヒットと判定するキャッシュヒット判定手段、及び
    一定時間内に実行されたタスクの総数に占める前記キャッシュヒットの数をキャッシュヒット率とし、このキャッシュヒット率が高ければ実行するタスク数を少なくし当該キャッシュヒット率が低ければ実行するタスク数を多くするキャッシュヒット率監視手段、
    として前記マイクロプロセッサを更に機能させる請求項記載のディスクアレイ制御プログラム。
JP2003039185A 2003-02-18 2003-02-18 ディスクアレイ制御装置及び方法並びにディスクアレイ制御プログラム Expired - Fee Related JP4066833B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003039185A JP4066833B2 (ja) 2003-02-18 2003-02-18 ディスクアレイ制御装置及び方法並びにディスクアレイ制御プログラム
US10/750,954 US7512753B2 (en) 2003-02-18 2004-01-05 Disk array control apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003039185A JP4066833B2 (ja) 2003-02-18 2003-02-18 ディスクアレイ制御装置及び方法並びにディスクアレイ制御プログラム

Publications (2)

Publication Number Publication Date
JP2004252526A JP2004252526A (ja) 2004-09-09
JP4066833B2 true JP4066833B2 (ja) 2008-03-26

Family

ID=32844463

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003039185A Expired - Fee Related JP4066833B2 (ja) 2003-02-18 2003-02-18 ディスクアレイ制御装置及び方法並びにディスクアレイ制御プログラム

Country Status (2)

Country Link
US (1) US7512753B2 (ja)
JP (1) JP4066833B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4705051B2 (ja) 2007-01-29 2011-06-22 株式会社日立製作所 計算機システム
US8583700B2 (en) * 2009-01-02 2013-11-12 International Business Machines Corporation Creation of date window for record selection
US9218211B2 (en) * 2009-01-02 2015-12-22 International Business Machines Corporation Priority promotion for service requests
JP5870213B2 (ja) * 2012-05-16 2016-02-24 株式会社日立製作所 ストレージシステム及びストレージシステムにおけるデータ転送制御方法
US9563574B2 (en) 2013-02-12 2017-02-07 Hitachi, Ltd. Storage control device and method of controlling storage control device
US10176097B2 (en) 2014-12-16 2019-01-08 Samsung Electronics Co., Ltd. Adaptable data caching mechanism for in-memory cluster computing
US10198192B2 (en) * 2015-03-31 2019-02-05 Veritas Technologies Llc Systems and methods for improving quality of service within hybrid storage systems

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5394531A (en) * 1989-04-03 1995-02-28 International Business Machines Corporation Dynamic storage allocation system for a prioritized cache
JPH02311932A (ja) * 1989-05-29 1990-12-27 Oki Electric Ind Co Ltd 優先制御方式
JPH04137046A (ja) 1990-09-28 1992-05-12 Toshiba Corp 電子計算機のオペレーティングシステム
JPH0571948A (ja) 1991-09-10 1993-03-23 Kawasaki Steel Corp 帯板の形状測定方法
US5367656A (en) * 1992-03-13 1994-11-22 Bull Hn Information Systems Inc. Controlling cache predictive prefetching based on cache hit ratio trend
JPH0612395A (ja) 1992-06-29 1994-01-21 Canon Inc マルチプロセサシステムにおけるタスク割り付け方法
US5608890A (en) * 1992-07-02 1997-03-04 International Business Machines Corporation Data set level cache optimization
JP3169511B2 (ja) * 1994-03-10 2001-05-28 三菱電機株式会社 メモリ装置及びメモリ管理方法
US5542088A (en) * 1994-04-29 1996-07-30 Intergraph Corporation Method and apparatus for enabling control of task execution
JPH0877025A (ja) 1994-09-01 1996-03-22 Kokusai Electric Co Ltd タスクの優先度制御方法、タスクの優先度制御装置
JPH08263376A (ja) * 1995-03-22 1996-10-11 Nec Ibaraki Ltd キャッシュ制御装置
US5737547A (en) * 1995-06-07 1998-04-07 Microunity Systems Engineering, Inc. System for placing entries of an outstanding processor request into a free pool after the request is accepted by a corresponding peripheral device
JP3707854B2 (ja) * 1996-03-01 2005-10-19 株式会社東芝 キャッシュ機能を有するコンピュータ及びキャッシュメモリ制御方法
JPH1063576A (ja) 1996-08-27 1998-03-06 Hitachi Ltd 階層ディスク装置およびその制御方法
WO1999034356A2 (en) * 1997-12-30 1999-07-08 Genesis One Technologies, Inc. Disk cache enhancer with dynamically sized read request based upon current cache hit rate
US6128672A (en) * 1998-03-10 2000-10-03 Motorola, Inc. Data transfer using software interrupt service routine between host processor and external device with queue of host processor and hardware queue pointers on external device
US6411982B2 (en) * 1998-05-28 2002-06-25 Hewlett-Packard Company Thread based governor for time scheduled process execution
US6351844B1 (en) * 1998-11-05 2002-02-26 Hewlett-Packard Company Method for selecting active code traces for translation in a caching dynamic translator
US6308245B1 (en) * 1999-05-13 2001-10-23 International Business Machines Corporation Adaptive, time-based synchronization mechanism for an integrated posix file system
US6557079B1 (en) * 1999-12-20 2003-04-29 Emc Corporation Remote data facility prefetch
US6604174B1 (en) * 2000-11-10 2003-08-05 International Business Machines Corporation Performance based system and method for dynamic allocation of a unified multiport cache
US7155716B2 (en) * 2002-03-08 2006-12-26 Intel Corporation Weighted and prioritized task scheduler
JP3828444B2 (ja) * 2002-03-26 2006-10-04 株式会社日立製作所 データ通信中継装置及びシステム
US20040117791A1 (en) * 2002-12-17 2004-06-17 Ajith Prasad Apparatus, system and method for limiting latency

Also Published As

Publication number Publication date
JP2004252526A (ja) 2004-09-09
US7512753B2 (en) 2009-03-31
US20040162941A1 (en) 2004-08-19

Similar Documents

Publication Publication Date Title
US6665740B1 (en) Logical volume selection in a probability-based job scheduler
JP4322068B2 (ja) ストレージシステム及びそのデイスク負荷バランス制御方法
US7051172B2 (en) Memory arbiter with intelligent page gathering logic
JP4788528B2 (ja) ディスク制御装置、ディスク制御方法、ディスク制御プログラム
US20050114559A1 (en) Method for efficiently processing DMA transactions
JP6111575B2 (ja) ストレージ装置、内部処理制御方法および内部処理制御プログラム
US20040205297A1 (en) Method of cache collision avoidance in the presence of a periodic cache aging algorithm
JP4715801B2 (ja) メモリアクセス制御装置
JPH0315957A (ja) コンピュータ・システム
JP2015111334A (ja) ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
US8166339B2 (en) Information processing apparatus, information processing method, and computer program
US10515671B2 (en) Method and apparatus for reducing memory access latency
US10521371B2 (en) Cache system and associated method
JP4066833B2 (ja) ディスクアレイ制御装置及び方法並びにディスクアレイ制御プログラム
US6279027B1 (en) Scheduler reducing cache failures after check points in a computer system having check-point restart functions
US20210263668A1 (en) Information processing device and computer-readable recording medium recording storage control program
US6678794B1 (en) Smoothing bursts of disk load in a file system
JP5911548B1 (ja) 共有メモリへのアクセス要求をスケジューリングするための装置、方法およびコンピュータプログラム
US20050144379A1 (en) Ordering disk cache requests
GB2361557A (en) Data storage device with data transfer before write instruction
US6016531A (en) Apparatus for performing real time caching utilizing an execution quantization timer and an interrupt controller
JP2006268753A (ja) Dma回路及びコンピュータシステム
US6968437B2 (en) Read priority caching system and method
CN105612505A (zh) Cpu调度的方法和装置
US8151028B2 (en) Information processing apparatus and control method thereof

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061013

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071126

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071231

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

Free format text: PAYMENT UNTIL: 20110118

Year of fee payment: 3

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120118

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130118

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130118

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees