JP5734469B2 - メモリ制御装置、メモリ制御方法、及びプログラム - Google Patents

メモリ制御装置、メモリ制御方法、及びプログラム Download PDF

Info

Publication number
JP5734469B2
JP5734469B2 JP2014004800A JP2014004800A JP5734469B2 JP 5734469 B2 JP5734469 B2 JP 5734469B2 JP 2014004800 A JP2014004800 A JP 2014004800A JP 2014004800 A JP2014004800 A JP 2014004800A JP 5734469 B2 JP5734469 B2 JP 5734469B2
Authority
JP
Japan
Prior art keywords
main
processing
background
unit
memory control
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.)
Active
Application number
JP2014004800A
Other languages
English (en)
Other versions
JP2014089757A (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.)
Canon Inc
Original Assignee
Canon 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 Canon Inc filed Critical Canon Inc
Priority to JP2014004800A priority Critical patent/JP5734469B2/ja
Publication of JP2014089757A publication Critical patent/JP2014089757A/ja
Application granted granted Critical
Publication of JP5734469B2 publication Critical patent/JP5734469B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、複数の記憶装置を制御するメモリ制御装置に関する。
従来、複数の記憶装置を備えて、一方の記憶装置の障害等に備えて、データを相互に共有するディスクアレイシステムが提案されている。また、このようなディスクアレイシステムを用いたデータ処理装置、画像処理装置等も提案されている。
このようなディスクアレイシステムを利用する装置が、例えば印刷装置である場合、印刷処理とそれ以外の目的でのバックグラウンド処理とが共通の記憶装置で処理される場合、メイン処理に影響を及ぼさない範囲内か、固定的な処理の割合でバックグラウンド処理を行っていた。
しかしながら、バックグラウンド処理の内容によっては、メイン処理より優先的に処理を行う場合や、メイン処理の効率を劣化させない範囲においてバックグラウンド処理を最短時間で完了させなければならない場合がある。
ここで、ディスクアレイシステムがデータ保護を目的としたミラーリング(RAID1)システムにおいて、片方のハードディスク装置に故障が発生する場合がある。この場合、故障したハードディスク装置を新しいものに交換して、正常なハードディスク装置の内容を交換したハードディスク装置にコピー処理を行う。このようなコピー処理は、通常バックグラウンドで処理される。
このようなバックグラウンド処理中に、正常なハードディスク装置が故障するとデータ保護機能が働かず、ハードディスク上に記憶されたデータを再現することができなくなる。この例のように、異常状態から正常状態への復帰に対するバックグラウンド処理には、一刻も早く処理を完了させる必要がある。
このような事態に備えて、メイン処理とバックグラウンド処理との優先度テーブルを作成すること、作成した優先度テーブルを用いてメイン処理とバックグラウンド処理との優先順位を決定することが特許文献1に記載されている。
特開2002−278704号公報
しかしながら、上記特許文献1に記載される処理では、バックグラウンド処理の数がさほど多くない場合にも優先度テーブルを作成し、記憶装置側に登録する煩雑な処理が必要となる。
さらに、優先度テーブルを記憶装置側に登録して優先度を制御することは、複数発行されたアクセス要求のどれを先に処理されたのかについて要求元で判断するための複雑な処理が必要となる。
このような課題は、記憶装置がハードディスクに限るものではなく、メモリ装置、アレイ接続可能なメモリ装置であれば同様に発生し得るものである。
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、比較的簡単な制御構成でシステムの主たるメイン処理の処理効率を劣化させることなく、バックグラウンド処理も最短時間で完了できる仕組みを提供することである。
上記目的を達成する本発明のメモリ制御装置は以下に示す構成を備える。
複数の記憶手段を制御するメモリ制御装置であって、
メイン装置から要求される前記記憶手段に対するメイン処理の状態に基づいて、前記複数の記憶手段の状態に基づくバックグラウンド処理の処理単位を可変にする制御手段を備え、
前記制御手段は、前記バックグラウンド処理の実行中に前記メイン装置から前記メイン処理が要求されると、前記バックグラウンド処理を中断して前記メイン処理を行い、
前記メイン処理の処理単位が完了すると、所定時間が経過するまで前記バックグラウンド処理を再開せずに前記メイン装置から前記メイン処理が要求されるか判定し、
前記メイン処理が要求されないまま前記所定時間が経過すると、第1の処理単位で前記バックグラウンド処理を再開し、
前記第1の処理単位での前記バックグラウンド処理が所定回数完了するまでに前記メイン装置から前記メイン処理が要求されなければ、前記バックグラウンド処理の処理単位を前記第1の処理単位よりも大きい第2の処理単位に変更し、前記バックグラウンド処理を継続することを特徴とする。
本発明によれば、比較的簡単な制御構成でシステムの主たるメイン処理の処理効率を劣化させることなく、バックグラウンド処理も最短時間で完了することが可能となり、システムの全体として処理最適化を行える。
画像形成装置の構成を説明するブロック図である。 HDDコントローラの内部構成を示すブロック図である。 ディスクアレイシステムの構成を説明する図である。 メモリ制御装置のシーケンスを示すタイミングチャートである。 画像形成装置のデータ処理手順を示すフローチャートである。 メモリ制御装置の処理手順を示すフローチャートである。 メモリ制御装置の処理手順を示すフローチャートである。
次に本発明を実施するための最良の形態について図面を参照して説明する。
<システム構成の説明>
〔第1実施形態〕
図1は、本実施形態を示すメモリ制御装置を適用可能な画像形成装置の構成を説明するブロック図である。本実施形態では、画像形成装置として、MFP(Multi Function Peripheral)の例を示すが、SFP(Single Function Peripheral:単一機能周辺機器)に適用してもよい。なお、本例は、複数のハードディスクをアレイ接続可能とするためのHDDコントローラが画像形成装置を制御するCPUとがシステムバス220を介して接続される。また、本実施形態では、メモリ装置をハードディスクとする例を説明するが、メモリ装置は、ハードディスクに限定されるものではなく、他の適用例については後述する。
図1において、200は画像形成装置全体を制御するメインコントローラで、システムバス220を介して接続される機器を制御するためのCPU201、ROM203、RAM204を備える。
ここで、CPU(中央処理演算器)201は、システム制御や演算処理を行う。メモリ制御部202は、各種メモリデバイスへの入出力制御やDMA(ダイレクト・メモリ・アクセス)制御を行う。ROM(リード・オンリー・メモリ)203は、不揮発性メモリで、起動プログラムやフォント等の変更しないデータを格納する。なお、Flash−ROMを用いれば書き換えも可能である。
RAM(ランダム・リード・メモリ)204は、SDRAMやDDRに代表される揮発性メモリである。プログラムの作業領域や印刷データの格納領域等の書き換えが必要な用途に用いられる。
LAN−IF部205は、印刷装置に接続されるローカル・エリア・ネットワーク206とのインタフェースを行う。一般的にはTCP/IPのプロトコルに対応する。本コントローラは、ネットワークケーブルを介して、外部HOST207などのネットワーク対応機器と接続され、ネットワーク経由でのプリントを行うことができる。
Reader−IF部208は、スキャナ装置209との通信制御を行う。なお、画像形成装置は、スキャナ装置209によってスキャンした画像データを入力することでコピー機能を実現する。
FAX−IF部210は、FAX装置211との通信制御を行う。FAX−IF部210は、電話回線に接続された前記FAX装置211に対して、FAXデータの送受信処理を実行する。
画像処理部212は、前記LAN−IF部205、Reader−IF部208、FAX−IF部210を介して取り込んだ画像データに対して、各種画像処理を行う。
パネル−IF部213は、パネル装置214との通信制御を行う。ユーザは、パネル装置214上の液晶表示やボタン等を操作して、画像形成装置の各種設定操作及び状態の確認などを行う。パネル装置214の液晶表示部には、図示しないUI(ユーザインタフェース)が表示される。
HDD−IF部215は、HDD(ハードディスク装置)メインコントローラ216に対するデータの入出力制御を行う。HDDコントローラ216には、ハードディスクを複数接続することが可能である。なお、ハードディスクは、例えばATA(AT Attachment)規格として、Parallel-ATAやSerial-ATAなどがあり、これらの規格に準拠してデータの入出力制御が実行される。
また、複数のハードディスクを接続してミラーリング処理などのRAID(Redundant Arrays of Inexpensive Disks)制御を行うことが可能である。HDD(ハードディスク)217は不揮発性の大容量記憶装置であり、ファイルの保存や印刷データの一時格納場所として使用する。
ビデオ制御部218は、印刷部219とのコマンド/ステータスの通信、メモリ上に生成された印刷データの転送を行う。印刷部219は、印刷装置本体であり、主に前記ビデオ制御部218からのコマンド情報に従い、印刷データを紙に印刷する。
システムバス220は、制御バス及びデータバスと任意ブロック間のローカルなバス及び信号線を便宜的にまとめて表現したものである。
本実施形態は、HDDコントローラ216に接続されるハードディスクに対するバックグラウンド処理を例として説明する。
なお、本実施形態では、メインコントローラ200の外部にHDDコントローラが別チップ又はボードとして接続される場合を想定して説明を行うが、当然ながら、1チップやオンボードとしてメインコントローラと一体化した構成でも構わない。また、本実施形態では、HDDコントローラ216からみて、メインコントローラ200はメイン装置とみなして、以下のメモリ制御を説明する。
図2は、図1に示したHDDコントローラ216の内部構成を示すブロック図である。
図2において、CPU301は、システム制御、RAID制御、演算処理及びATA規格のコマンド処理などを行う。メモリ制御部302は、各種メモリデバイスへの入出力制御やDMA(ダイレクト・メモリ・アクセス)制御を行う。ROM(リード・オンリー・メモリ)303は、不揮発性メモリで、起動プログラムや各種モード設定値等の頻繁に変更しないデータを格納する。なお、ROM303に替えて、Flash−ROMを用いれば、上記各情報の書き換えも可能である。
RAM(ランダム・リード・メモリ)304は、SRAMやDDRに代表される揮発性メモリである。プログラムの作業領域や一時的なデータの格納領域等の書き換えが必要な用途に用いられる。HDD−IF307は、メインコントローラ200に接続されるHDDコントローラ216に対する入出力部を表している。
Device−IF部305は、ATA規格のデバイス側コマンド及びデータの入出力制御を行う。Host−IF部308は、ATA規格のホスト側コマンド及びデータの入出力制御を行い、1つ以上のハードディスク装置と接続される。
なお、RAIDシステムを構築する場合には必要個数のハードディスク装置が接続(例えばミラーリング処理用に2個接続など)され、必要個数分のHost制御回路が前記Host−IF部308に含まれていてもよい。
割り込み制御部306は、各種割り込み信号のマスク及び出力制御を行う。システムバス309は、制御バス及びデータバスと任意ブロック間のローカルなバス及び信号線を便宜的にまとめて表現したものである。
図3は、本実施形態を示すディスクアレイシステムの構成を説明する図である。本例は、ハードディスク(HDD)を2個用いたミラーリング処理(RAID1)を行う構成例である。
ここで、ミラーリング処理とは、マスタHDDの内容を常にバックアップHDDにミラー(コピー)しておくことでマスタHDD故障時のデータ保証を確保する方法である。また、マスタHDD故障時には、バックアップHDDがマスタHDDに切り替わる事でシステムとしての機能が停止することはない。
図3において、HDDコントローラ402は、1つのDevice−IFと2つのHost−IFを搭載している。ここで、Device側にSATAケーブル405を介してメインコントローラ401が、Host側にSATAケーブル406,407を介して2個のHDD403及びHDD404を接続することでミラーリングシステムを構成している。
メインコントローラ401からHDDコントローラ402をみると1個のHDDとして認識され、通常アクセス時に、メインコントローラ401がミラーリング処理を意識することはない。
今、マスタとして機能するHDD403が故障した場合、バックアップであるHDD404がマスタに切り替わり、システム処理は正常動作として継続される場合を想定する。
このような状態に遷移した場合には、ミラーリング処理の正規シーケンスが崩れ、現在のマスタであるHDD404のみの片肺状態でディスクアクセス処理を継続している状態となる。この状態をデグレード状態と呼ぶ。
次に、故障したHDD403を新しいHDD408に交換することで、現在マスタであるHDD404の内容を新しいHDD408にコピー処理を行い、ミラーリングシステムとして正常状態に復旧する処理を行う。以下、この状態をリビルド状態と呼ぶ。このリビルド状態の期間中もミラーリングシステムとしては、まだ片肺状態(異常状態)である。
ここで、リビルド処理は、メインコントローラ401の意識しないバックグラウンド処理であって、マスタHDD404からリードしたデータをバックアップHDD408へライトするコピー処理410(破線矢印)を実行している。
従って、リビルド処理中は、メインコントローラ401からのメイン(通常)処理409(実線矢印)とリビルド処理のリードアクセス(破線矢印のコピー処理410に対応する)がマスタHDD404に対して競合する場合がある。この場合、システムとして、競合するそれぞれのアクセス処理を最適化しないと、メイン処理(印刷処理)のパフォーマンスが低下することを意味する。
本実施形態では、画像形成装置が要求するメイン処理のパフォーマンスを満たし、且つバックグラウンド処理のパフォーマンスも考慮し、システム全体として処理の最適化を可能とする処理を説明する。
図4は、本実施形態を示すメモリ制御装置のシーケンスを説明するタイミングチャートである。本例は、図3に示したHDDコントローラ402によるバックグラウンドで実行されるリビルト処理と、メイン処理との振り分ける一例を示している。なお、図4において、バックグラウンド処理をバック処理と略記している。また、本実施形態は、HDDコントローラ402がメイン処理と、バックグラウンド処理とに基づくHDDメモリアクセス要求を調停しながら、並列的にメモリアクセスを制御する例である。
また、黒矩形101はメイン処理の単位、斜線矩形102はバックグラウンド処理の単位を示す。本実施形態では、HDDに対するバックグランド処理を例としているため、各処理単位は1コマンド処理単位117となる。なお、ハードディスクの規格がSATAであれば、1コマンドの最大サイズは32MBとなる。
当然ながら、本発明において、処理単位とは、HDDの絡むシステムのみに限定するものではなく、処理一般における処理単位を含む。
図4の(a)に示すパターンP1は、バックグラウンド処理中にメイン処理が発生した状況で、且つ、バックグラウンド処理単位が最大効率で処理可能な値で実行しているパターンを示している。
すなわち、この場合メイン処理のパフォーマンスの事は考慮していない。従って、メイン処理がバックグラウンド処理にぶつかる箇所で妨害されて、斑点矩形108で示すロスタイムが発生してしまう。
ここで、バックグラウンド処理が最大効率で処理可能な単位を最速値単位と呼ぶ。
図4の(b)に示すパターンP2では、バックグラウンド処理がメイン処理を妨害するロスタイムを低減し、メイン処理の要求するパフォーマンスを満たすバックグラウンド処理の単位で実行しているパターンを示している。この場合の処理単位を最適値単位103と呼ぶ。この場合には、メイン処理の開始点T1で若干のロスタイムが発生しているが、バックグラウンド処理とぶつかっても短い時間でメイン処理にアクセス権が渡されるため、パターンP1と比較するとメイン処理は効率良く処理される。
一方、バックグラウンド処理は、最適値単位での処理であるため、1回の処理が細切れとなりなかなか処理が終わらない状況である事がわかる。すなわち、バックグラウンド処理の開始点T0とすると、図4の(a)に示すパターンP1では、タイミングT2で処理を完了しているが、図4の(b)パターンP2では、さらに時間を要していることを示している。
前述したようにリビルド処理の期間は、正常状態への修復処理中であり、まだ異常状態であることに変わりはない。すなわち、もしもこの期間にマスタHDD404が故障した場合には、もはや修復不能となる危険ゾーンでもある。
従って、リビルド処理はなるべく最短で処理を完了することが望ましい。最近のHDDサイズは1TB級である場合もあり、最適値単位(サイズ)が小さい値であると、リビルド処理完了までにかなりの時間を要する事になる。
さらに、図4の(c)に示すパターンP3では、バックスラウンド処理を最適値単位で処理を行い、メイン処理のアクセス間隔が開いた場合の例である。図4の(b)に示すパターンP2と比較して、メインコントローラ401からのアクセス間隔によっては、バックグラウンド処理とぶつかる箇所が増えてパフォーマンスが低下していることが分かる。
実際の処理では、メインコントローラ401側での処理の都合により、パターンP2やパターンP3のように規則的なアクセス間隔で来る事は稀で、ある程度のかたまりでのアクセス発生ではあるが、その間隔は不規則である事が一般的である。
以上の事を考慮して、本発明の特徴を示すのが図4の(d)に示すパターンP4である。
図4の(d)に示すパターンP4では、メイン処理を開始するタイミングT1からみると、先頭の部分でバックグラウンド処理との衝突があるだけで、後は最速で処理が完了している事が分かる。つまり、HDDコントローラ402は、メイン処理の状態を監視して処理単位を第1の処理単位と第2の処理単位に可変設定している。なお、メイン処理のアクセス間隔は、図4の(c)に示すパターンP3と同じにしている。
先頭のメイン処理アクセス109完了後、予め設定されているWait期間110だけバックグラウンド処理を遅延させる。その期間に再びメイン処理が来た場合には、Waitカウントをクリアして現在のメイン処理を行う。
以下同様に、図4の(d)に示すパターンP4ではメイン処理単位111の直前までWait期間内に次のメイン処理アクセスが発生しているため、バックグラウンド処理が割り込めない。
メインコントローラ401側での1つの処理区切りがメイン処理アクセス109〜111をアクセス群とする時、最後のメイン処理アクセス111の完了直後からのWait期間は、予め設定された所定の時間までカウントされる事になる。その後、遅延させられていたバックグラウンド処理が再開される。
ここで、再開されたバックグラウンド処理は、まず最適値単位112で処理が開始される。以後、予め設定されている最適値単位112での処理をN回カウントし、その後の処理は最速値単位114で処理を継続する。本実施形態では、最適値単位112を第1の処理単位とし、最速値単位114を第2の処理単位として説明を行う。
バックグラウンド処理の開始点のタイミングをT0とした場合、図4の(d)に示すパターンP4では、終了点のタイミングT3でバックグラウンド処理が完了しているが、図4の(c)に示すパターンP3では常に最適値単位での処理であるため、処理完了までにかなりの時間を要する。なお、開始点のタイミングT0のバックグラウンド処理は最適値単位112で処理を開始し、N回カウント116した後に最速値単位114で処理を継続するシーケンスとなる。
ここでは図示しないが、最適値単位112でのバックグラウンド処理カウント中にメイン処理が割り込んだ場合には、現在のバックグラウンド処理単位が完了した時点でメイン処理を開始し、再び前述のシーケンス(Wait→N回)を繰り返す事になる。
また、メイン処理単位のアクセス間隔がWait期間より長い場合には、最適値単位112及び最速値単位114でのバックグラウンド処理が割り込むケースも有りえる。
上述したように、メインコントローラ401からHDDコントローラ402は、ハードディスク装置としかみえず、逆にHDDコントローラ402側からはメインコントローラ401側の処理の都合、すなわち、処理の区切りを知ることはできない。
従って、HDDコントローラ402は、メイン処理のアクセス群が何時のタイミングで、且つどのような間隔でアクセスされるのかを予想することもできない。
本実施形態では、メイン処理のアクセス間に働くWait期間110によって、メインコントローラ401からのメイン処理アクセス群の妨げを最小限に抑え、アクセス群である各メイン処理アクセス間の間隔が広く空く場合(Wait期間以上)には、その間にバックグラウンド処理をN回の最適値単位112から最速値単位114の処理として挿入できる構成とすることで、メインコントローラ401の処理効率(要求されるパフォーマンス)を低下させることなく、且つバックグラウンド処理効率も最適化する事が可能となる。
ここで、Wait期間及び最適値単位112のカウント値Nにおいて、制御の必要がない場合には、Wait=0及びN=0の値を設定する事でシーケンスを一部省略又は削除することも可能である。
つまり、(Wait、N)=(0、0)と設定した場合には、図4の(a)に示すパターンP1に、(0、N)と設定した場合には、図4の(b)に示すパターンP2又は図4の(c)に示すパターンP3となる。なお、後者では、最適値単位112をN回カウントする間にメイン処理アクセスがない場合には、それ以後を最速値単位114で処理を継続することになる。
図5は、本実施形態を示すメイン装置におけるパラメータ設定手順の一例を示すフローチャートである。本例は、バックグラウンド処理に対する最適値、最速値、Wait期間、最適値のカウント値NのパラメータをHDDコントローラ216に設定する処理例である。なお、S701〜S705は各ステップを示し、各ステップは、CPU201がROM203からロードする制御プログラムを実行することで実現される。
S701で、CPU201は、RAM204上にディスク制御に必要なパラメータを準備したら、S702へ進む。ここで、パラメータとは、バックグラウンド処理に対する最適値、最速値、Wait期間、最適値のカウント値Nが含まれる。
そして、S702で、CPU201はHDDコントローラ402のCPU301に初期設定コマンドを発行する。ここで、HDDコントローラ402側のCPU301は発行された初期設定コマンドに従いRAM304で管理される各パラメータに初期値を設定する。
次に、S703で、CPU201は各パラメータのステータスを確認して、S704で、CPU201は各パラメータに設定された内容でOKかどうかを判断する。ここで、CPU201が設定値の確認の結果、期待値と異なると判断した場合は、S705へ進む。そして、S705で、リトライなど所定のエラー処理を実行して、本処理を終了する。
一方、S704で、各パラメータに対する設定値に問題がないとCPU201が判断した場合には、本処理を終了して、スタンバイ状態に移行してシステムの処理を開始する。
なお、各パラメータの設定は、バックグラウンド処理実行中以外は任意のタイミングで変更しても構わない。
以下、図6及び図7を用いて、本実施形態におけるメモリ制御処理を説明する。
図6は、本実施形態を示すメモリ制御装置における処理手順の一例を示すフローチャートである。本例は、HDDコントローラ216が実行するリビルド処理に代表されるバックグラウンド処理例であって、メインコントローラ200からのメイン処理アクセスがない状態での処理例である。なお、S801〜S807は各ステップを示し、各ステップはCPU301がROM303に記憶された制御プログラムをRAM304にロードして実行することで実現される。なお、以下の説明において、バックグラウンド処理を図中では、Back処理と記し、メイン処理をMain処理と記す場合がある。
まず、S801で、CPU301はRAM304で管理する最適値単位112での処理をカウントするためのカウンタnをn=0に初期化する。その後、S802において、CPU301は最適値単位112でバックグラウンド処理を開始する。
次に、S803で、CPU301はバックグラウンド処理の処理単位が完了する毎に、初期設定された処理回数値Nとカウンタnとを比較し、n=N回に達しているかどうかを判断する。ここで、n=N回に達していないとCPU301が判断した場合は、S804で、CPU301はカウンタnをn+1にカウントアップして、S803へ戻る。
一方、S803で、比較結果、n=N回に達しているとCPU301が判断した場合には、S805で、CPU301は処理単位を最適値単位112から最速値単位114に切り替え、S806で、バックグラウンドの処理を継続する。
そして、S807で、CPU301は最速値単位114でバックグラウンド処理を完了したら、本処理を終了する。なお、S806の(*)は、図7のメイン処理アクセスが発生するケースへと接続されることを示している。
図7は、本実施形態を示すメモリ制御装置における処理手順の一例を示すフローチャートである。本例は、HDDコントローラ216が実行するリビルド処理に代表されるバックグラウンド処理例であって、メインコントローラ200からのメイン処理アクセスが発生した状態での処理例である。なお、S901〜S919は各ステップを示し、各ステップはCPU301がROM303に記憶された制御プログラムをRAM304にロードして実行することで実現される。
S901で、図6に示したバックグラウンド処理中に、S902で、メイン処理アクセスが発生した場合、S903で、CPU301は、現在実行中のバックグラウンド処理単位が完了するのを待ち、バックグラウンド処理単位が完了した後に、S904へ進む。そして、S904で、CPU301は、メインコントローラ200のCPU201から要求されるメイン処理を開始する。
そして、S905で、メイン処理単位が完了したとCPU301が判断した後、S906で、CPU301はWait時間をt=0に初期化し、S907へ進む。そして、S907で、CPU301は予め設定されているWait時間Tまでの時間計測を図示しないカウンタにより開始する。
そして、S908で、Wait時間t=T(所定時間)の計測を完了したとCPU301が判断した場合、S910へ進み、Wait時間t=Tの計測を完了していないとCPU301が判断した場合は、S909へ進む。
そして、S909で、次のメイン処理アクセスが発生したかどうかをCPU301が判断する。ここで、次のメイン処理アクセスが発生したとCPU301が判断した場合は、S904へ戻り、S904〜S908までの一連のメイン処理を繰り返す。つまり、CPU301は、所定時間の経過を判定しながら、メイン処理を継続するか、バックグラウンド処理を再開するかを制御している。
一方、S909で、次のメイン処理アクセスが発生していないとCPU301が判断した場合は、S908へ戻る。
S908で、Wait時間t=Tまで測定を完了しているとCPU301が判断した場合は、S910へ進む。
そして、S910で、CPU301はバックグラウンド処理の最適値単位112の処理回数カウンタnを0に初期化し、S911で、CPU301は予め設定されている最適値単位112でバックグラウンド処理を継続する。継続されたバンクグラウンド処理は、S912で、バックグラウンド処理単位がN回完了したとCPU301が判断するまで、S913で、CPU301が最適値単位112毎に処理回数カウンタnがn+1に加算される。
そして、S914で、CPU301が予め設定している上限回数Nと比較して、カウンタnがN回未満の期間にメイン処理アクセスが発生しているかどうかを判断する。ここで、カウンタnがN回未満の期間にメイン処理アクセスが発生したとCPU301が判断した場合は、S904へ戻り、メイン処理を開始する。
一方、S914で、カウンタnがN回未満の期間にメイン処理アクセスが発生していないとCPU301が判断した場合は、S912へ戻る。
また、S912で、カウンタnがN回に達したとCPU301が判断した場合には、S915へ進み、予め設定されている最速値単位114に切り換えて、S916で、CPU301は残りのバックグラウンド処理を継続する。
以後、S917で、CPU301はメイン処理アクセスが発生しているかどうかを判断する。ここで、メイン処理アクセスが発生しているとCPU301が判断した場合は、S904へ戻り、メイン処理を開始する。
一方、S917で、メイン処理アクセスが発生していないとCPU301が判断した場合は、CPU301はバックグラウンド処理を最速値単位114で実行する。そして、S918で、最速値単位114でバックグラウンド処理を完了しているとCPU301が判断した場合は、S919へ進む。
そして、S919で、全バックグラウンド処理が完了しているかどうかをCPU301が判断する。ここで、全バックグラウンド処理が完了していないと判断した場合は、S917へ戻り、バックグランド処理が完了するまでの期間は、その処理単位毎にメイン処理アクセスの発生を監視する。そして、メイン処理アクセスが発生したとCPU301が判断した場合には、再び、S904に戻り、今までの処理シーケンスを繰り返す。
一方、S919で、全てのバックグラウンド処理が完了したとCPU301が判断した場合は、本処理を終了する。
以上、ハードディスク装置を備えるシステムについて本発明の最良の実施形態を説明したが、記憶装置としてハードディスクに限定するものではない。ハードディスク以外の他の記憶装置を備えたシステムにおいて、主たるメイン処理とバックグラウンド処理を行う任意のシステムにも本発明を適応するこが可能である。ここで、ハードディスク以外の記憶装置の適用例としては、Solid State Drive(SSD)が含まれる。
本発明の各工程は、ネットワーク又は各種記憶媒体を介して取得したソフトウエア(プログラム)をパソコン(コンピュータ)等の処理装置(CPU、プロセッサ)にて実行することでも実現できる。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。
1、2 画像処理装置

Claims (11)

  1. 複数の記憶手段を制御するメモリ制御装置であって、
    メイン装置から要求される前記記憶手段に対するメイン処理の状態に基づいて、前記複数の記憶手段の状態に基づくバックグラウンド処理の処理単位を可変する制御手段を備え、
    前記制御手段は、前記バックグラウンド処理の実行中に前記メイン装置から前記メイン処理が要求されると、前記バックグラウンド処理を中断して前記メイン処理を行い、
    前記メイン処理の処理単位が完了すると、所定時間が経過するまで前記バックグラウンド処理を再開せずに前記メイン装置から前記メイン処理が要求されるか判定し、
    前記メイン処理が要求されないまま前記所定時間が経過すると、第1の処理単位で前記バックグラウンド処理を再開し、
    前記第1の処理単位での前記バックグラウンド処理が所定回数完了するまでに前記メイン装置から前記メイン処理が要求されなければ前記バックグラウンド処理の処理単位を前記第1の処理単位よりも大きい第2の処理単位に変更し、前記バックグラウンド処理を継続することを特徴とするメモリ制御装置。
  2. 前記制御手段は、前記メイン処理と前記バックグラウンド処理とに基づく前記記憶手段へのアクセス要求を調停しながら前記メイン処理と前記バックグラウンド処理とを並列して実行することを特徴とする請求項1記載のメモリ制御装置。
  3. 前記所定の時間が経過する前に前記メイン処理が要求された場合、及び、前記第1の処理単位での前記バックグラウンド処理が所定回数完了するまでに前記メイン装置から前記メイン処理が要求された場合、前記バックグラウンド処理を中断して前記メイン処理を実行することを特徴とする請求項1又は2記載のメモリ制御装置。
  4. 前記制御手段は、前記第2の処理単位での前記バックグラウンド処理が完了する度に、前記メイン装置からの前記メイン処理の要求を監視し、全てのバックグラウンド処理が終了する前に前記メイン処理が要求された場合には、前記バックグラウンド処理を中断して前記メイン処理を実行することを特徴とする請求項1乃至3のいずれか1項に記載のメモリ制御装置。
  5. 前記処理単位は、1コマンド処理単位であることを特徴とする請求項1乃至4のいずれか1項に記載のメモリ制御装置。
  6. 複数の記憶手段を制御するメモリ制御装置におけるメモリ制御方法であって、
    メイン装置から要求される前記記憶手段に対するメイン処理の状態に基づいて、前記複数の記憶手段の状態に基づくバックグラウンド処理の処理単位を可変にする制御工程を備え、
    前記制御行程は、前記バックグラウンド処理の実行中に前記メイン装置から前記メイン処理が要求されると、前記バックグラウンド処理を中断して前記メイン処理を行い、
    前記メイン処理の処理単位が完了すると、所定時間が経過するまで前記バックグラウンド処理を再開せずに前記メイン装置から前記メイン処理が要求されるか判定し、
    前記メイン処理が要求されないまま前記所定時間が経過すると、第1の処理単位で前記バックグラウンド処理を再開し、
    前記第1の処理単位での前記バックグラウンド処理が所定回数完了するまでに前記メイン装置から前記メイン処理が要求されなければ前記バックグラウンド処理の処理単位を前記第1の処理単位よりも大きい第2の処理単位に変更し、前記バックグラウンド処理を継続することを特徴とするメモリ制御方法。
  7. 前記制御工程は、前記メイン処理と前記バックグラウンド処理とに基づく前記記憶手段へのアクセス要求を調停しながら前記メイン処理と前記バックグラウンド処理とを並列して実行することを特徴とする請求項6記載のメモリ制御方法。
  8. 前記所定の時間が経過する前に前記メイン処理が要求された場合、及び、前記第1の処理単位での前記バックグラウンド処理が所定回数完了するまでに前記メイン装置から前記メイン処理が要求された場合、前記バックグラウンド処理を中断して前記メイン処理を実行することを特徴とする請求項6又は7記載のメモリ制御方法。
  9. 前記制御工程は、前記第2の処理単位での前記バックグラウンド処理が完了する度に、前記メイン装置からの前記メイン処理の要求を監視し、全てのバックグラウンド処理が終了する前に前記メイン処理が要求された場合には、前記バックグラウンド処理を中断して前記メイン処理を実行することを特徴とする請求項6乃至8のいずれか1項に記載のメモリ制御方法。
  10. 前記処理単位は、1コマンド処理単位であることを特徴とする請求項6乃至9のいずれか1項に記載のメモリ制御方法。
  11. 請求項6乃至10のいずれか1項に記載のメモリ制御方法をコンピュータに実行させることを特徴とするプログラム。
JP2014004800A 2014-01-15 2014-01-15 メモリ制御装置、メモリ制御方法、及びプログラム Active JP5734469B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014004800A JP5734469B2 (ja) 2014-01-15 2014-01-15 メモリ制御装置、メモリ制御方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014004800A JP5734469B2 (ja) 2014-01-15 2014-01-15 メモリ制御装置、メモリ制御方法、及びプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009220830A Division JP2011070395A (ja) 2009-09-25 2009-09-25 メモリ制御装置、メモリ制御方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2014089757A JP2014089757A (ja) 2014-05-15
JP5734469B2 true JP5734469B2 (ja) 2015-06-17

Family

ID=50791540

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014004800A Active JP5734469B2 (ja) 2014-01-15 2014-01-15 メモリ制御装置、メモリ制御方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP5734469B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2548475B2 (ja) * 1991-12-17 1996-10-30 富士通株式会社 アレイディスク装置のデータ復元量制御方法
JP2001100923A (ja) * 1999-09-29 2001-04-13 Alps Electric Co Ltd Raid制御方法およびraid
JP2001184171A (ja) * 1999-12-24 2001-07-06 Seiko Epson Corp ハードディスクのアクセス制御装置及びハードディスクのアクセス制御タスク
JP4817783B2 (ja) * 2005-09-30 2011-11-16 富士通株式会社 Raidシステム及びそのリビルド/コピーバック処理方法
JP4472617B2 (ja) * 2005-10-28 2010-06-02 富士通株式会社 Raidシステム、raidコントローラ及びそのリビルド/コピーバック処理方法

Also Published As

Publication number Publication date
JP2014089757A (ja) 2014-05-15

Similar Documents

Publication Publication Date Title
US9952966B2 (en) Control apparatus and control method therefor
JP5953573B2 (ja) ペリフェラル・コンポーネント・インターコネクト・エクスプレス・エンドポイントデバイスにアクセスするためのコンピュータシステム、方法、および装置
JP4585463B2 (ja) 仮想計算機システムを機能させるためのプログラム
US8321622B2 (en) Storage system with multiple controllers and multiple processing paths
US8135983B2 (en) Information processing apparatus, control method of the information processing apparatus, and recording medium
JP2009251725A (ja) 記憶制御装置及び記憶制御装置を用いた重複データ検出方法。
KR101454146B1 (ko) 스토리지 장치, 제어 장치 및 기록 매체
JP2015013429A (ja) 画像処理装置及びその制御方法、並びにプログラム
JP6141240B2 (ja) 印刷装置、印刷装置に接続されたストレージの制御装置、印刷装置の制御方法及びプログラム
JP4719801B2 (ja) デバイス管理装置、デバイス初期化方法、デバイス初期化プログラムおよびデバイスシステム
JP5734469B2 (ja) メモリ制御装置、メモリ制御方法、及びプログラム
JP5080318B2 (ja) 画像処理装置及びアクセス制御方法
JP5775367B2 (ja) 情報処理装置及びその制御方法と、ミラーリングシステム及びraid制御装置
JP2011070395A (ja) メモリ制御装置、メモリ制御方法、及びプログラム
JP4148834B2 (ja) データ転送装置、画像形成装置、データ転送制御方法、コンピュータプログラム及び記録媒体
JP2014138265A (ja) 画像形成装置
US11687287B2 (en) Control apparatus and information processing system
JP7435521B2 (ja) コントローラ、制御方法及び制御プログラム
JP2018142274A (ja) 情報処理装置とその制御方法、及びプログラム
JP6415633B2 (ja) 情報処理装置及びその制御方法
JP2022057869A (ja) 制御装置及び情報処理システム
JP2008077389A (ja) データ処理装置
JP2021074974A (ja) 画像形成装置および画像形成装置の制御方法
JP2021092846A (ja) 情報処理装置、その制御方法、およびプログラム
JP2008310547A (ja) 画像形成装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140826

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150414

R151 Written notification of patent or utility model registration

Ref document number: 5734469

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151