(57)【要約】【課題】物理ディスクに対するアクセス要求の競合を適切に調停する。【解決手段】ＲＡＩＤドライバ２１は、論理ディスクＬＤ１〜ＬＤ４のそれぞれに対応した第１段のキュー３０〜３３と、第２段のキュー３４と、論理ディスクＬＤ１〜ＬＤ４のそれぞれの優先度が設定された優先度情報３５と、調停制御を行うアクセス要求調停部３６とを備えている。アクセス要求調停部３６は、キュー３４が空になったタイミングで、キュー３０〜３３のそれぞれに格納されている要求の数Ｎと優先度情報３５とに基づいて、取込順決定値ＧＯ＝(アクセス要求数Ｎ)/（優先度Ｐ）の比を求め、この比で、キュー３０〜３３から、１回で取出すアクセス要求の数を決定する。但し、キュー３０〜３３から取出すアクセス要求の全数を６とする。取出す順番は、この比の値が大きいほど先とする。【選択図】図１
2010152571.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムからのアクセス要求に係るアクセス情報に含まれる論理ディスクアクセス情報を、物理ディスクアクセス情報に変換し、該物理ディスクアクセス情報を含むアクセス情報をＲＡＩＤ（Redundant Arrays of Independent Disks）コントローラに供給するＲＡＩＤドライバにおいて、
アクセス要求キューと、
プロセッサに対し、該オペレーティングシステムからの、論理ディスクに対するアクセス要求を、取込順決定情報に基づき順に該アクセス要求キューに格納させ、該アクセス要求キューからアクセス要求を順次取り出すアクセス要求調停手段と、
を有することを特徴とするＲＡＩＤドライバ。
【請求項２】
該取込順決定情報は、
ＲＡＩＤに構成された複数の論理ディスクのそれぞれの優先度と、それぞれの論理ディスクに対するアクセス要求の数とを含み、
該アクセス要求調停手段は、該プロセッサに対し、アクセス要求に係る論理ディスクの優先度が高いほど且つ該アクセス要求に係る論理ディスクに対するアクセス要求の数が多いほど、優先的に、該数のアクセス要求の一部又は全部を該アクセス要求キューに格納させる、
ことを特徴とする請求項１に記載のＲＡＩＤドライバ。
【請求項３】
該アクセス要求キューは、該複数の論理ディスクのそれぞれに対応した第１段のアクセス要求キュー群と、第２段のアクセス要求キューとを有し、
該アクセス要求調停手段は、
該プロセッサに対し、該オペレーティングシステムからのアクセス要求を、該第１段のアクセス要求キュー群のうちアクセス要求に係る論理ディスクに対応したアクセス要求キューに順に格納させる第１手段と、
該プロセッサに対し、所定のタイミングで、該第１段のアクセス要求キュー群のそれぞれのアクセス要求キューに格納されているアクセス要求の数が多いほど且つこのアクセス要求キューに対応した優先度が高いほど、優先的に、対応するアクセス要求キューから該数のアクセス要求の一部又は全部を取り出して該第２段のアクセス要求キューに格納させる第２手段と、
を有することを特徴とする請求項２に記載のＲＡＩＤドライバ。
【請求項４】
該第２手段は、該プロセッサに対し、実質的に、該複数の論理ディスクのそれぞれに対応した（アクセス要求数）／（優先度）の値の比に基づいて、１回で該第１段のアクセス要求キュー群のそれぞれから取り出すアクセス要求の数を決定させる、
ことを特徴とする請求項３に記載のＲＡＩＤドライバ。
【請求項５】
該第２手段は、該プロセッサに対し、実質的に、該第１段のアクセス要求キュー群のうち該アクセス要求キュー群のそれぞれに対応した（アクセス要求数）／（優先度）の値が最大のものから１つ取り出す処理を繰り返させる、
ことを特徴とする請求項３に記載のＲＡＩＤドライバ。
【請求項６】
該所定のタイミングは、該第２段のアクセス要求キューが閾値になったことを検出した時点である、
ことを特徴とする請求項３乃至５のいずれか１つに記載のＲＡＩＤドライバ。
【請求項７】
請求項１乃至６のいずれか１つに記載のＲＡＩＤドライバが記憶手段に格納されているコンピュータを有することを特徴とする電子機器。
【請求項８】
記憶手段を備えたコンピュータがＲＡＩＤに対するアクセス競合を調停するアクセス調停方法において、該記憶手段には、アクセス要求キューと、ＲＡＩＤに構成された複数の論理ディスクのそれぞれの優先度とが格納され、該コンピュータが、
論理ディスクに対するアクセス要求を、該論理ディスクの優先度を含む取込順決定情報に基づき順に該アクセス要求キューに格納し、
該アクセス要求キューからアクセス要求を順次取り出し、取り出されたアクセス要求に係る論理ディスクアクセス情報を物理ディスクアクセス情報に変換し、該物理ディスクアクセス情報を含むアクセス情報をＲＡＩＤコントローラに供給する、
ことを特徴とする、ＲＡＩＤに対するアクセス調停方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オペレーティングシステムとＲＡＩＤ（Redundant Arrays of Independent Disks）コントローラとの間のインターフェイスとして機能するＲＡＩＤドライバ及びこれを備えた電子機器並びにＲＡＩＤに対するアクセス要求調停方法に関する。
【背景技術】
【０００２】
ＲＡＩＤによれば、複数台のハードディスクドライブ（HDD）をオペレーティングシステム側で単一ドライブとみなして取り扱うことができる（下記特許文献１）。この仮想的な単一ドライブには、複数の論理ドライブを構成することができる。例えば、下記非特許文献１に示されるように、複数台のハードディスクドライブでＲＡＩＤを構成し、これに、高速アクセスが可能なストライピング（ＲＡＩＤ０）モードの論理ディスクと、高信頼性のミラーリング（ＲＡＩＤ１）モードの論理ディスクとを構成することができる。
【特許文献１】特開２００２−２５９０６２号公報
【非特許文献１】http://www.intel.com/jp/support/chipsets/imsm/sb/CS-020681.htm
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、例えば２台のハードディスクドライブでストライピングモードとミラーリングモードの論理ディスクを構成した場合、これらいずれのモードでも２台のハードディスクドライブを並列に同時アクセスするので、同時に２モードを実行することはできず、一方、オペレーティングシステムは複数の論理ディスクとして認識するので、アクセス要求の競合が生ずる。従来では、このようなアクセス競合に対し調停が行われていなかったので、競合するアクセス要求が拒否されたり、高速アクセスが可能なストライピングモードのアクセス要求が後回しになることがあった。
【０００４】
本発明の目的は、このような問題点に鑑み、物理ディスクに対するアクセス要求の競合を適切に調停することが可能なＲＡＩＤドライバ及びこれを備えた電子機器並びにＲＡＩＤに対するアクセス要求調停方法を提供することにある。
【課題を解決するための手段】
【０００５】
本発明によるＲＡＩＤドライバの第１態様では、オペレーティングシステムからのアクセス要求に係るアクセス情報に含まれる論理ディスクアクセス情報を、物理ディスクアクセス情報に変換し、該物理ディスクアクセス情報を含むアクセス情報をＲＡＩＤコントローラに供給するＲＡＩＤドライバにおいて、
アクセス要求キューと、
プロセッサに対し、該オペレーティングシステムからの、論理ディスクに対するアクセス要求を、取込順決定情報に基づき順に該アクセス要求キューに格納させ、該アクセス要求キューからアクセス要求を順次取り出すアクセス要求調停手段とを有する。
【０００６】
本発明によるＲＡＩＤドライバの第２態様では、第１態様において、該取込順決定情報は、ＲＡＩＤに構成された複数の論理ディスクのそれぞれの優先度と、それぞれの論理ディスクに対するアクセス要求の数とを含み、
該アクセス要求調停手段は、該プロセッサに対し、アクセス要求に係る論理ディスクの優先度が高いほど且つ該アクセス要求に係る論理ディスクに対するアクセス要求の数が多いほど、優先的に、該数のアクセス要求の一部又は全部を該アクセス要求キューに格納させる。
【０００７】
本発明によるＲＡＩＤドライバの第３態様では、第２態様において、該アクセス要求キューは、該複数の論理ディスクのそれぞれに対応した第１段のアクセス要求キュー群と、第２段のアクセス要求キューとを有し、
該アクセス要求調停手段は、
該プロセッサに対し、該オペレーティングシステムからのアクセス要求を、該第１段のアクセス要求キュー群のうちアクセス要求に係る論理ディスクに対応したアクセス要求キューに順に格納させる第１手段と、
該プロセッサに対し、所定のタイミングで、該第１段のアクセス要求キュー群のそれぞれのアクセス要求キューに格納されているアクセス要求の数が多いほど且つこのアクセス要求キューに対応した優先度が高いほど、優先的に、対応するアクセス要求キューから該数のアクセス要求の一部又は全部を取り出して該第２段のアクセス要求キューに格納させる第２手段とを有する。
【０００８】
本発明によるＲＡＩＤドライバの第４態様では、第３態様において、該第２手段は、該プロセッサに対し、実質的に、該複数の論理ディスクのそれぞれに対応した（アクセス要求数）／（優先度）の値の比に基づいて、１回で該第１段のアクセス要求キュー群のそれぞれから取り出すアクセス要求の数を決定させる。
【０００９】
ここに「実質的」とは、例えば優先度の値が大きいほど優先度が高いと定義して、（アクセス要求数）・（優先度）の値の比を用いる場合を含む意味である。
【００１０】
本発明によるＲＡＩＤドライバの第５態様では、第３態様において、該第２手段は、該プロセッサに対し、実質的に、該第１段のアクセス要求キュー群のうち該アクセス要求キュー群のそれぞれに対応した（アクセス要求数）／（優先度）の値が最大のものから１つ取り出す処理を繰り返させる。
【００１１】
本発明によるＲＡＩＤドライバの第６態様では、第３乃至５態様のいずれか１つにおいて、該所定のタイミングは、該第２段のアクセス要求キューが閾値になったことを検出した時点である。
【発明の効果】
【００１２】
上記第１態様の構成によれば、オペレーティングシステムからの、論理ディスクに対するアクセス要求を、アクセス要求調停手段により、取込順決定情報に基づき順にアクセス要求キューに格納し、該アクセス要求キューからアクセス要求を順次取り出し、この要求に基づいて、ＲＡＩＤコントローラを介し物理ディスクに対するアクセスを行うので、アクセス要求の競合が生じても、アクセス要求が拒否されたり、高速アクセスが可能なストライピングモードのアクセス要求が後回しになったりするのを防止でき、これにより、物理ディスクに対するアクセス要求の競合を適切に調停することが可能となるという効果を奏する。
【００１３】
上記第２態様の構成によれば、アクセス要求に係る論理ディスクの優先度が高いほど且つ該アクセス要求に係る論理ディスクに対するアクセス要求の数が多いほど、優先的に、該数のアクセス要求の一部又は全部を該アクセス要求キューに格納するので、アクセス要求の競合をより適切に調停することが可能となるという効果を奏する。
【００１４】
上記第３態様の構成によれば、オペレーティングシステムからのアクセス要求を、第１段のアクセス要求キュー群のうちアクセス要求に係る論理ディスクに対応したアクセス要求キューに順に格納し、所定のタイミングで、該第１段のアクセス要求キュー群のそれぞれのアクセス要求キューに格納されているアクセス要求の数が多いほど且つこのアクセス要求キューに対応した優先度が高いほど、優先的に、対応するアクセス要求キューから該数のアクセス要求の一部又は全部を取り出して第２段のアクセス要求キューに格納するので、複雑なアクセス要求の調停処理を簡単化することができるという効果を奏する。
【００１５】
上記第４態様の構成によれば、実質的に、複数の論理ディスクのそれぞれに対応した（アクセス要求数）／（優先度）の値の比に基づいて、１回で該第１段のアクセス要求キュー群のそれぞれから取り出すアクセス要求の数を決定するので、一括処理が可能となるという効果を奏する。
【００１６】
上記第５態様の構成によれば、実質的に、該第１段のアクセス要求キュー群のうち該アクセス要求キュー群のそれぞれに対応した（アクセス要求数）／（優先度）の値が最大のものから１つ取り出す処理を繰り返すので、処理を単純化できるという効果を奏する。
【００１７】
上記第６態様の構成によれば、上記所定のタイミングが、該第２段のアクセス要求キューが閾値になったことを検出した時点であるので、第１アクセス要求キュー群から第２アクセス要求キューへのアクセス要求の移動が早くなり過ぎるのを防止でき、これにより、より適切に調停することが可能となるという効果を奏する。
【００１８】
本発明の他の目的、構成及び効果は以下の説明から明らかになる。
【実施例１】
【００１９】
図８は、本発明の実施例１に係る画像形成装置のハードウェア構成を示す概略ブロック図である。
【００２０】
画像形成装置１０では、ＭＰＵ１１にインターフェイス１２を介して、ＥＥＰＲＯＭ１３、ＤＲＡＭ１４、ＲＡＩＤコントローラ１５、ＮＩＣ１６、印刷部１７及び操作パネル１８が結合されている。図８では、簡単化のため、複数のインターフェイスを１つのブロックで示している。
【００２１】
ＥＥＰＲＯＭ１３は、例えばフラッシュメモリである。ＥＥＰＲＯＭ１３には、仮想記憶方式のオペレーティングシステム（ＯＳ）、例えばＬｉｎｕｘ（登録商標）オペレーティングシステム、このＯＳの上層で動作する複数のアプリケーション及びＯＳの下層で操作するＲＡＩＤドライバを含む各種ドライバが格納されている。
【００２２】
ＤＲＡＭ１４は、主メモリとして用いられる。
【００２３】
印刷部１７は、プリントエンジン並びに用紙の給紙部、搬送部及び排紙部を備え、供給されるビットマップデータに基づいてプリントエンジンの感光ドラムに静電潜像を形成し、これをトナーで現像し、用紙に転写し定着させた後に排紙する。
【００２４】
図１は、本実施例１の特徴部分であるＲＡＩＤドライバ２１に関係した構成を示す概略ブロック図である。図１において、ハードディスクドライブ１９、２０及びＲＡＩＤコントローラ２３はハードウェア構成であり、その他は、ソフトウェア構成であって、実行時にはＤＲＡＭ１４内に構成される。
【００２５】
ハードディスクドライブ１９及び２０には、論理ディスクＬＤ１、ＬＤ２、ＬＤ３及びＬＤ４が構成されている。論理ディスクＬＤ１及びＬＤ２はいずれも、ハードディスクドライブ１９と２０の対応する領域に作成され、それぞれＲＡＩＤ０モード及びＲＡＩＤ１モードで、ハードディスクドライブ１９と２０とが同時にアクセスされる。論理ディスクＬＤ３及びＬＤ４はいずれも、通常モード(シングルモード)でアクセスされ、それぞれハードディスクドライブ２０及びハードディスクドライブ１９のみに作成されている。
【００２６】
ＲＡＩＤドライバ２１は、オペレーティングシステム２２とＲＡＩＤコントローラ２３との間のインターフェイスとして機能する。
【００２７】
オペレーティングシステム２２は、カーネル２２０と、ファイルシステム２２１とを備えている。プロセス２４がファイルをアクセスする場合、まず、プロセス２４からカーネル２２０に対しファイルのパスとリード又はライト等のアクセスモードとを指定したファイルオープンのシステムコールが行われる。カーネル２２０は、これに応答して、カーネル用メモリ領域にストリームバッファ領域２２２を確保し、その識別子をプロセス２４に返す。プロセス２４はこの後、この識別子及びバイト数を指定してカーネル２２０を介しこのストリームバッファ領域２２２をアクセスすることにより、間接的にファイルをアクセスすることができる。
【００２８】
これを可能にするために、カーネル２２０は、ファイルシステム２２１を参照して、上記パスで指定されるファイルの先頭ＬＢＡ（論理ブロックアドレス）の値を取得し、パスに含まれる論理ディスク名と、このＬＢＡと、必要なブロック数と、ストリームバッファ２２２内のアクセス先頭アドレス（ストリームバッファアドレス）とを含むアクセス情報を指定して、ＲＡＩＤドライバ２１に対し、ファイルアクセスを要求する。１ブロックサイズは、例えば１セクタサイズに等しく、例えば５１２バイトである。ＲＡＩＤドライバ２１は、上記アクセス情報を、図６（Ｂ）に示すようなコントロールブロックＣＢに転記し、このコントロールブロックＣＢの先頭アドレス（コントロールブロックＣＢを指し示すポインタの内容＊ＣＢ）をアクセス要求識別子（以下、単に「アクセス要求」と称す。）としてキューに入れる。
【００２９】
ここで、オペレーティングシステム２２は、プロセス２４からの要求に応じ、論理ディスクＬＤ１〜ＬＤ４の物理的構成を考慮せずに、ＲＡＩＤドライバ２１に対し、論理ディスクＬＤ１〜ＬＤ４のアクセスを要求する。
【００３０】
しかし、実際には、論理ディスクＬＤ１〜ＬＤ４は同時に１つしかアクセスすることができず、オペレーティングシステム２２からＲＡＩＤドライバ２１へのアクセス要求が競合することになる。
【００３１】
そこで、ＲＡＩＤドライバ２１は、アクセス順決定部２１０を備えてこの調停を後述のように適切に行っている。
【００３２】
ＲＡＩＤドライバ２１において、論理／物理ディスクアクセス情報変換部２１１は、調停されたアクセス要求をアクセス順決定部２１０から受け取り、アドレス変換情報２１２を参照して、この要求に係る上記アクセス情報のうち論理ディスク情報である論理ディスク名及びＬＢＡをそれぞれ物理ディスク情報である物理ディスク名及び物理ブロックアドレス（ＰＢＡ）に変換し、また、アドレス変換情報２１２に記述された論理ディスクとモード（本実施例ではＲＡＩＤ０モード、ＲＡＩＤ１モード又はシングルモード）との対応関係から、物理ディスク情報の一部であるモードを決定し、変換及び決定された物理ディスク情報を、図６（Ｂ）に示すアクセス情報２１３内の対応するコントロールブロックＣＢに書き込む。ＬＢＡとＰＢＡとの差は、論理ディスク毎に定まる定数である。
【００３３】
論理／物理ディスクアクセス情報変換部２１１は、このコントロールブロックＣＢの先頭アドレス＊ＣＢを指定して、転送部２１４にデータ転送要求（サブルーチンコール）する。転送部２１４はこれに応答して、このコントロールブロックＣＢに含まれる物理ディスク名、ＰＢＡ、モード、ブロック数及びストリームバッファ２２２内のアクセス先頭アドレスを、ＲＡＩＤコントローラ２３に転送する。
【００３４】
ＲＡＩＤコントローラ２３はこれに応答して、この物理ディスクアクセス情報に基づきそのモードを実行するように、ハードディスクドライブ１９又は／及びハードディスクドライブ２０に対し、アクセス要求する。ＲＡＩＤコントローラ２３は、ＤＭＡ（Direct Memory Access）コントローラ２３０を備えており、リードの場合には、ハードディスクドライブ１９又は／及びハードディスクドライブ２０から読み出されたデータを、ＤＭＡによりストリームバッファ領域２２２内へ、そのアクセス先頭アドレスから（ブロック数）＊５１２バイトだけ転送し、ライトの場合には、このストリームバッファ領域２２２からＤＭＡによりデータをハードディスクドライブ１９又は／及びハードディスクドライブ２０へ同様に転送する。ハードディスクドライブ１９及び２０はいずれも、内部にハードディスクコントローラ及びバッファメモリを備えており、ＲＡＩＤコントローラ２３とのデータ転送は、このハードディスクコントローラを介しこのバッファメモリとの間で行われる。
【００３５】
ＲＡＩＤドライバ２１は、論理ディスクＬＤ１〜ＬＤ４のそれぞれに対応した第１段のキュー３０〜３３と、第２段のキュー３４と、論理ディスクＬＤ１〜ＬＤ４のそれぞれの優先度が設定された優先度情報３５と、調停制御を行うアクセス要求調停部３６とを備えている。アクセス要求調停部３６は、所定のタイミングで、キュー３０〜３３のそれぞれに格納されている要求（上記＊ＣＢ、すなわち図６（Ｂ）中のＡｄｒ１〜Ａｄｒ５、Ａｄｒ９）の数と優先度情報３５とに基づいて、次の１つの要求をキュー３０〜３３のいずれから取り出すかを決定し、決定された要求を取り出してキュー３４へ入れる。
【００３６】
次に、アクセス要求調停部３６の動作を具体的に説明する。
【００３７】
図４に示すように、論理ディスクＬＤ１〜ＬＤ４の優先度がユーザによりそれぞれ１、３、３、３（値が小さいほど優先度が高い）と予め設定され、キュー３０〜３３にそれぞれ４つのアクセス要求が格納されて待ち状態となっている場合を考える。図４中のキュー３０〜３３内の数値は、オペレーティングシステム２２からＲＡＩＤドライバ２１へのアクセス要求順を示している。
【００３８】
アクセス要求調停部３６は、取込順決定値ＧＯ＝(アクセス要求数Ｎ)/（優先度Ｐ）の値が最大のアクセス要求を、キュー３０〜３３から１つだけ選択して取り出し、キュー３４へ入れる。
【００３９】
図５(Ａ)〜（Ｆ）は、アクセス要求調停部３６がこの取出規則に従ってキュー３３から３４へアクセス要求を移動させた場合の状態遷移を示している。
【００４０】
まず、図４の状態では、キュー３０〜３３の取込順決定値ＧＯはそれぞれ４/１、４/３、４/３、４/３であるので、キュー３０内の要求１が選択されて、キュー３４に入れられ、図５（Ａ）に示す状態になる。
【００４１】
この状態では、キュー３０〜３３の取込順決定値ＧＯがそれぞれ３/１、４/３、４/３、４/３であるので、キュー３０内の要求５が選択されて、キュー３４に入れられ、図５（Ｂ）に示す状態になる。
【００４２】
この状態では、キュー３０〜３３の取込順決定値ＧＯがそれぞれ２/１、４/３、４/３、４/３であるので、キュー３０内の要求９が選択されて、キュー３４に入れられ、図５（Ｃ）に示す状態になる。
【００４３】
この状態では、キュー３０〜３３の取込順決定値ＧＯがそれぞれ１/１、４/３、４/３、４/３であるので、キュー３１内の要求２が選択されて、キュー３４に入れられ、図５（Ｄ）に示す状態になる。
【００４４】
この状態では、キュー３０〜３３の取込順決定値ＧＯがそれぞれ１/１、３/３、４/３、４/３であるので、キュー３２内の要求３が選択されて、キュー３４に入れられ、図５（Ｅ）に示す状態になる。
【００４５】
この状態では、キュー３０〜３３の取込順決定値ＧＯがそれぞれ２/１、３/３、３/３、４/３であるので、キュー３３内の要求４が選択されて、キュー３４に入れられ、図５（Ｆ）に示す状態になる。
【００４６】
この状態から、ＲＡＩＤコントローラ２３がレディ状態になる毎に、キュー３４から要求が取り出され、キュー３４が空になると、上記同様にしてキュー３０〜３３から３４への要求移動処理がアクセス要求調停部３６により行われる。
【００４７】
ここでキュー３０は、図６（Ａ）に示すように、１次元配列３００と、配列３００の要素を指定する読出ポインタ３０１及び書込ポインタ３０２とを備えている。読出ポインタ３０１及び書込ポインタ３０２の内容は、配列３００の要素の使用順が論理的にループ状になるように更新される。
【００４８】
すなわち、書込ポインタ３０２で示される書込ポインタ３０２でポイントされる配列３００の要素にコントロールブロックＣＢの先頭アドレスが格納されると、書込ポインタ３０２の内容がデクリメントされ、読出ポインタ３０１でポイントされる配列３００の要素の内容が取り出されると、読出ポインタ３０１の内容がデクリメントされる。読出ポインタ３０１又は書込ポインタ３０２でポイントされる配列３００の要素が先頭要素である場合には、このデクリメントの替わりに、配列３００の最後の要素のアドレスが読出ポインタ３０１又は書込ポインタ３０２に書き込まれる。これら読出ポインタ３０１の内容と書込ポインタ３０２の内容とに基づいて、キュー３０に格納されているアクセス要求の数が求められる。
【００４９】
キュー３１〜３４についてもキュー３０と同様である。
【００５０】
図２(Ａ)及び（Ｂ）はいずれも、アクセス要求調停部３６による処理を示すフローチャートである。図２(Ａ)の処理は、カーネル２２０からＲＡＩＤドライバ２１へのアクセス要求に応答して開始される。以下、括弧内は図中のステップ識別符号である。
【００５１】
（Ｓ０）このアクセス要求が論理ディスクＬＤ１に対するものであれば、そのコントロールブロックＣＢの先頭アドレス（コントロールブロックＣＢのポインタの内容）をキュー３０に入れ、論理ディスクＬＤ２に対するものであれば、そのコントロールブロックＣＢの先頭アドレスをキュー３１に入れ、論理ディスクＬＤ３に対するものであれば、そのコントロールブロックＣＢの先頭アドレスをキュー３２に入れ、論理ディスクＬＤ４に対するものであれば、そのコントロールブロックＣＢの先頭アドレスをキュー３３に入れる。
【００５２】
図２（Ｂ）の処理は、図２(Ａ)の処理を終了した後、及び、ＲＡＩＤコントローラ２３がレディ状態へ遷移したときの割込により、開始される。
【００５３】
（Ｓ１０）キュー３４が空でなければステップＳ１１へ進み、空であればステップＳ１４へ進む。
【００５４】
（Ｓ１１）キュー３４からアクセス要求を１つ取り出す。
【００５５】
（Ｓ１２）上述のように、この要求に係る論理ディスクアクセス情報を物理ディスクアクセス情報に変換し、これをそのコントロールブロックＣＢに書き込む。
【００５６】
（Ｓ１３）ＲＡＩＤコントローラ２３がレディ状態であれば、転送部２１４を介して、このコントロールブロックＣＢに含まれる上記内容を、ＲＡＩＤコントローラ２３へ転送し、図２の処理を終了する。
【００５７】
（Ｓ１４）上述のようなキュー３０〜３３からキュー３４へのアクセス要求移動処理を行い、次いでステップＳ１１へ進む。
【００５８】
図３は、このステップＳ１４の処理を示す詳細フローチャートである。
【００５９】
（Ｓ２０）キュー３４内のアクセス要求数を示す変数ｉに初期値０を代入する。
【００６０】
（Ｓ２１）キュー３０〜３３のいずれかが空でなければステップＳ２２へ進み、全てが空であれば図３の処理を終了する。
【００６１】
（Ｓ２２）キュー３０〜３３の取込順決定値ＧＯを上述のようにして算出する。
【００６２】
（Ｓ２３）キュー３０〜３３のうち、算出した取込順決定値ＧＯの比の最大値に対応するものから、要求を１つ取り出して、キュー３４に入れる。
【００６３】
（Ｓ２４）ｉの値を１だけインクリメントする。
【００６４】
（Ｓ２５）ｉ≦ｉｍａｘであればステップＳ２１へ戻り、そうでなければ図３の処理を終了する。ｉｍａｘは、例えば６である。
【００６５】
このような処理により、図４の状態から図５の(Ａ)〜（Ｆ）に示す状態へ順次遷移し、キュー３４からアクセス要求が取出されて、ハードディスクドライブ１９又は／及びハードディスクドライブ２０に対するアクセスが行われる。
【００６６】
ステップＳ１０からステップＳ１４へ移った時に、すなわち、キュー３４が空になったタイミングで、キュー３０〜３３のいずれかに複数の要求が含まれていれば、キュー３０〜３３のそれぞれの優先度のみならず、それぞれの要求数に比例して取込順決定値ＧＯが決定されるので、前記要求移動処理を行うことにより、要求順を適切に入れ替えてその結果に基づきハードディスクドライブ１９及び２０をアクセスすることができる。
【００６７】
これにより、例えば、高速処理が可能なストライピングモードによるアクセスが後回しになるのを防止でき、期待された動作が行われる。また、信頼性向上のためにミラーリングモードを選択したがアクセス遅延を防止したい場合に、その優先度を高くすることにより、アクセスが競合してもアクセス遅延を防止可能となる。
【実施例２】
【００６８】
上述の規則に基づく図２のステップＳ１４の処理は、図３のものに限定されず、この規則に基づく他の処理を、本発明の実施例２として次に説明する。
【００６９】
図９は、図３の代替処理のフローチャートである。
【００７０】
（Ｓ３０）図３のステップＳ２２と同様に、キュー３０〜３３のそれぞれの取込順決定値ＧＯを算出する。
【００７１】
（Ｓ３１）これら取込順決定値ＧＯの比、図４の場合は４/１：４/３：４/３：４/３＝３：１：１：１で、キュー３０〜３３から、１回で取出すアクセス要求の数を決定する。但し、キュー３０〜３３から取出すアクセス要求の全数を６とする。図４の場合、キュー３０〜３３からそれぞれ３個、１個、１個、１個取出すことになる。取出す順番は、上記比の値が大きいほど先とし、同一値の場合には、図４の左側の方が先とする。これにより、図４に示す状態から図５(Ｆ)に示す状態となり、図３の処理結果と同一となる。
【００７２】
他の点は、実施例１と同じである。
【００７３】
なお、本発明には外にも種々の変形例が含まれる。
【００７４】
例えば、優先度情報３５は、ユーザが手動で設定しても、プログラムで、その処理内容に応じて動的に設定変更してもよい。
【００７５】
また、ＲＡＩＤコントローラ２３は、ソフトウェアによる構成であってもよい。
【００７６】
さらに、取込順決定値ＧＯの式には、好ましくは少なくとも優先度と要求数とが実質的に含まれて、アクセス要求に係る論理ディスクの優先度が高いほど且つ該アクセス要求に係る論理ディスクに対するアクセス要求の数が多いほど、優先的に、該数のアクセス要求の一部又は全部をアクセス要求キューに格納させるものであればよく、上述の式に限定されない。
【００７７】
また、図２のステップＳ１０からステップＳ１４へ進む判定基準は、第２キュー内のアクセス要求数が閾値以下であればよく、閾値が０に限定されないことは勿論である。さらに、キューには、ポインタの内容＊ＣＢの替わりに、例えば、＊ＣＢ＝（オフセット値）＋整数＊（１ブロックのワード数又はバイト数）における整数を入れる構成であってもよい。また、コントロールブロックＣＢ
【図面の簡単な説明】
【００７８】
【図１】本発明の実施例１の特徴部分であるＲＡＩＤドライバに関係した構成を示す概略ブロック図である。
【図２】(Ａ)及び（Ｂ）はいずれも、アクセス要求調停部による処理を示すフローチャートであり、(Ａ)は、カーネルからＲＡＩＤドライバへのアクセス要求に応答して開始されものであり、（Ｂ）は、図２(Ａ)の処理を終了した後、及び、ＲＡＩＤコントローラがレディ状態へ遷移したときの割込により開始されるものである。
【図３】図２（Ｂ）中のステップＳ１４の処理を示す詳細フローチャートである。
【図４】アクセス要求調停部の具体的な動作説明に供する、図２のステップＳ１０からステップＳ１４へ移った直後の状態説明図である。
【図５】（Ａ）〜（Ｆ）は図３の処理の説明図である。
【図６】（Ａ）はソフトウェアキューの構成説明図、（Ｂ）はアクセス情報の項目及びこの情報とキューとの関係を示す説明図である。
【図７】論理ブロックアドレスＬＢＡと物理ブロックアドレスＰＢＡとの関係を示す概略説明図である。
【図８】本発明の実施例１に係る画像形成装置のハードウェア構成を示す概略ブロック図である。
【図９】本発明の実施例２に係る、図３の代替処理のフローチャートである。
【符号の説明】
【００７９】
１０  画像形成装置
１１  ＭＰＵ
１２  インターフェイス
１３  ＥＥＰＲＯＭ
１４  ＤＲＡＭ
１５  ＲＡＩＤコントローラ
１６  ネットワークアダプタ
１７  印刷部
１８  操作パネル
１９、２０  ハードディスクドライブ
２１  ＲＡＩＤドライバ
２１０  アクセス順決定部
２１１  論理／物理ディスクアクセス情報変換部
２１２  アドレス変換情報
２１３  アクセス情報
２１４  転送部
２２  オペレーティングシステム
２２０  カーネル
２２１  ファイルシステム
２２２  ストリームバッファ領域
２３  ＲＡＩＤコントローラ
２３０  ＤＭＡコントローラ
２４  プロセス
３０〜３４  キュー
３０１  配列
３０２  読出ポインタ
３０３  書込ポインタ
３５  優先度情報
３６  アクセス要求調停部
ＬＤ１〜ＬＤ４  論理ディスク
ＣＢ、ＣＢ１  コントロールブロック
ＧＯ  取込順決定値
【図１】
2010152571.tif 000003
【図２】
2010152571.tif 000004
【図３】
2010152571.tif 000005
【図４】
2010152571.tif 000006
【図５】
2010152571.tif 000007
【図６】
2010152571.tif 000008
【図７】
2010152571.tif 000009
【図８】
2010152571.tif 000010
【図９】
2010152571.tif 000011