(57)【要約】【課題】  （１）AMを共有しない複数のCPUから同一のハードディスクへアクセスを行った場合に、ハードディスクのパフォーマンスを生かしながら、異なるCPU間で競合が起こった場合でもリアルタイム性を保証する。  （２）複数のハードディスクを搭載した場合に、それぞれのハードディスクに対してDMA転送が行われている場合に、異なるCPU間で競合が起こってもハードディスクのパフォーマンスを保証する。【解決手段】  複数記憶媒体に接続されるデータ転送制御装置であって、メモリと前記複数の記憶媒体との間での複数のデータ転送を行う複数の転送手段と、複数のCPUが前記転送手段を個別に設定する設定手段と、複数の前記転送手段による複数のデータ転送に競合が生じる場合に、所定の優先順情報に基づき、前記複数のデータ転送を制御する制御手段と、を有する構成とする。【選択図】  図１
2007264751.tif 000002
【特許請求の範囲】
【請求項１】
複数記憶媒体に接続されるデータ転送制御装置であって、
メモリと前記複数の記憶媒体との間での複数のデータ転送を行う複数の転送手段と、
複数のCPUが前記転送手段を個別に設定する設定手段と、
複数の前記転送手段による複数のデータ転送に競合が生じる場合に、優先順位情報に基づき、前記複数のデータ転送を制御する制御手段と、
を有することを特徴とするデータ転送制御装置。
【請求項２】
前記制御手段は、第１の転送手段による第１のデータ転送を行っているときに、前記第１の転送手段よりも優先順位の高い第2のデータ転送手段による第２のデータ転送が起動した場合、前記第１のデータ転送を一時中断し、前記第２のデータ転送を開始し、優先順位がもっとも高い第３の転送手段による第３のデータ転送を行っているときに、第３の転送手段と同じ優先順位の第４のデータ転送手段による第４のデータ転送が起動した場合には、前記第３のデータ転送と前記第４のデータ転送を交互にデータ転送を行うことを特徴とする請求項１に記載のデータ転送制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送制御装置およびその制御方法に関する。
【背景技術】
【０００２】
多くのパーソナルコンピュータやワークステーション、または複写機などの画像処理装置では、データをハードディスクなどの不揮発性記憶媒体を装置内部に格納し、データを一時的に記憶することができる。装置のCPUがデータを必要とする場合には、不揮発性記憶媒体からデータを読み取り、SDRAMやRDRAMなど高速アクセス可能な揮発性メモリに転送し、CPUは揮発性メモリ上でデータの読み書きを行う。
【０００３】
通常、ハードディスクなどの不揮発性記憶媒体とＳＤＲＡＭやＲＤＲＡＭなどの揮発性記憶媒体間でデータ転送を行う場合は、まず、ＣＰＵからの指示により、ハードディスク内部に取り付けてあるＤＭＡコントローラに設定が行われ、その後、ＤＭＡコントローラが、ハードディスクとＳＤＲＡＭ、ＲＤＲＡＭ間でのＤＭＡ転送を行うようにしている。
【０００４】
ＰＣや複写機などの上記各装置では、画像などのデータや、ＣＰＵが動作するためのプログラム、システム動作中の演算結果などサイズの異なる様々なデータを、頻繁に不揮発性記憶媒体へ書き込んだり、または、読み出したりしている。不揮発性媒体は一般的にランダムなアクセスを行った場合、ヘッド部の位置を変更するためシーク時間が発生しハードディスクの性能を引き出すことができない。またデータを書き込む、または読み込むデータ転送の要求が複数あると、あるデータ転送を行っている最中に別のデータ転送が割り込まれることがある。この割り込みが生じると、不揮発性記憶媒体からデータを読み取る際に、ヘッド部の位置を変更するために時間がかかり、この時間がデータ転送のオーバーヘッドとなってデータ転送速度が低下する。
【０００５】
このようなデータの頻繁な書き込み、または読み出しが発生する場合、メモリと不揮発性記憶媒体との間でのデータ転送に競合が生じた時に、所定の優先順位情報に基づき複数のデータ転送を制御することにより、記憶媒体へのアクセス時にヘッド位置の移動を少なくする方法が考えられる（例えば特許文献１）。
【特許文献１】特開２００３−２５６３５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した優先順位に基づき複数のデータ転送を制御するような仕組みを適用した場合には、優先順位の最も高いデータ転送が行われると、他のデータ転送が完全に止まってしまうという問題点があった。リアルタイム制御を行うシステムにおいて、タイミングによってはハードディスクからのデータ転送時間が大幅に伸びてしまうことは致命的である。また、処理を高速化させるためにすでにあるシステムに、別のＣＰＵを有するシステムを接続した場合に、同一のハードディスクを制御するために、他方のデータ転送を考慮に入れないと自システムのリアルタイム制御が行えなくなる可能性があった。
【課題を解決するための手段】
【０００７】
上記従来例の問題点を解決するため本発明の請求項１記載のデータ転送制御装置は、
複数記憶媒体に接続されるデータ転送制御装置であって、
メモリと前記複数の記憶媒体との間での複数のデータ転送を行う複数の転送手段と、
複数のCPUが前記転送手段を個別に設定する設定手段と、
複数の前記転送手段による複数のデータ転送に競合が生じる場合に、所定の優先順位情報に基づき、前記複数のデータ転送を制御する制御手段と、
を有することを特徴とする。
【０００８】
また上記従来例の問題点を解決するため本発明の請求項２記載のデータ転送制御装置は、前記制御手段は、第１の転送手段による第１のデータ転送を行っているときに、前記第１の転送手段よりも優先順位の高い第2のデータ転送手段による第２のデータ転送が起動した場合、前記第１のデータ転送を一時中断し、前記第２のデータ転送を開始し、優先順位がもっとも高い第３の転送手段による第３のデータ転送を行っているときに、同じ優先順位の第４のデータ転送手段による第４のデータ転送が起動した場合には、前記第３のデータ転送と前記第４のデータ転送を交互にデータ転送を行うことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、RAMを共有しない複数のCPUから同一のハードディスクへアクセスを行った場合に、ハードディスクのパフォーマンスを生かしながらも、異なるCPU間で競合が起こった場合でもリアルタイム性を保証することが可能になる。
【００１０】
また本発明によれば、複数のハードディスクを搭載した場合に、それぞれのハードディスクに対してDMA転送が行われている場合に、異なるCPU間で競合が起こってもハードディスクのパフォーマンスを活かすことができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して本発明の実施の形態を説明する。
【実施例１】
【００１２】
図１は本発明の第１の実施例におけるシステムの概要を示すブロック図である。
【００１３】
図１に示すシステムは、複写機等の画像処理装置のコントローラユニットであり、図示しないスキャナユニット、プリンタユニットと接続し、様々な画像処理機能を実行することができる。したがって、本実施例で扱うデータは、主に画像データである。なお、本発明が適用可能な装置は、画像処理装置に限るものではなく、汎用のパーソナルコンピュータやワークステーションでもよいことは言うまでもない。
【００１４】
図１において１０１および１１１はCPUであり、異なるOSあるいは同一のOSが別々に動作しており、本装置の制御を行う。１０３、１１３はメインメモリでSDRAMやRDRAMのようにシステムによって様々な形態が用いられ、CPU１０１およびCPU１１１で扱うデータを一時的に記憶させておくためのものである。１０２および１１２はROMで、CPU１０１およびCPU１１１が動作するためのプログラムやデータが格納されており、CPU１０１、CPU１１１は電源が投入された直後にそれぞれのバスに接続されているＲＯＭ１０２およびＲＯＭ１１２からプログラムを読み出し、実行する。またフラッシュROMなどを使用することにより、CPU１０１またはCPU１１１からデータを書き換えることも可能である。
【００１５】
１０５および１１５はローカルバスであり、それぞれCPU、RAM、ROMおよび後述するバスブリッジが接続されている。１１７はローカルバス１０５および１１５と独立したIOバスであり、後述するＨＤＤコントローラが接続されるバスである。１０４および１１４のブリッジはローカルバス１０５、１１５とIOバス１１７を接続するためのものであり、バスのプロトコル変換を行う。バスブリッジ２０６は双方向へのアクセスが可能であり、ローカルバス１０５および１１５からIOバス１１７への読み書き、またはIOバス１１７からローカルバス１０５あるいは１１５への読み書きが可能である。
【００１６】
１４０および１５０は不揮発性記憶媒体であるハードディスクである。UltraATAやSerialATAあるいは独自のATA規格に沿ったI/Fを有する様々な形態のものなどが用いられる。
【００１７】
１２０はハードディスク１４０および１５０を制御するためのハードディスクコントローラである。１２１および１２５はDMAコントローラであり、それぞれのＤＭＡコントローラがＤＭＡ転送を行うための情報をＣＰＵ１０１およびＣＰＵ１１１それぞれが書き込むためのレジスタをＤＭＡコントローラ１２１用に１２２、１２３、ＤＭＡコントローラ１２５用に１２５、１２６を有している。DMAコントローラ１２１、１２５は、ハードディスクのブロック単位の倍数分ずつ転送を行うためのバッファを内部に有し、ブロック単位の倍数分の転送が終了するたびに、後述するアービターによってどのDMAコントローラを起動するかが決定される。
【００１８】
１２４および１２８は、それぞれのＤＭＡコントローラの有するレジスタで設定された値の調停を行うアービターである。レジスタの一方のみが設定されていた場合にはその値が設定される。また、ふたつのレジスタに値が設定された場合でかつ、DMAコントローラが起動されていない状態の場合には、CPU１０１で設定した値が優先されるものとする。もしすでに片方の値でDMAコントローラが起動されており、次のDMAコントローラを起動するアービトレーションを行う場合には、動作していなかったレジスタの値がDMAコントローラに設定されるものとする。
【００１９】
１２９は、１２４および１２８のアービターで調停された値を元に、ＤＭＡコントローラ１２１および１２５に対して動作の許可、不許可を指示するためのものであり、ＤＭＡ１２１、１２５は、アービターの許可信号がアサートされない限り、動作は開始できないものとする。
【００２０】
１３０はセレクタであり、ＤＭＡコントローラ１２１、１２５が転送するデータを、アービター１２９の指示により、ハードディスク１４０，１４１のどれに転送するかを振り分けるためのものである。
【００２１】
１３１、１３２はＡＴＡＩ／Ｆコントローラであり、ハードディスク１４０，１４１がＩＤＥのハードディスクであった場合に、ＡＴＡ規格に沿ってＩＤＥバス上をドライブし、ハードディスク１４０，１４１とデータの送受信を行うためのものである。
【００２２】
本実施例では、ＣＰＵ１０１がレジスタ１２２、１２６、ＣＰＵ１１１がレジスタ１２３、１２７を用いるものとし、ＤＭＡコントローラ１２１よりもＤＭＡ１２５の優先度が高いものとするが、どのＣＰＵがどのレジスタに設定するかはＣＰＵ間で通信を行い動的に決定したり、ＤＭＡコントローラの優先度も接続された機器等によって変更することも考えられるが、そのような動的な変更を行った場合にも本特許に含まれることはいうまでもない。
【００２３】
図２は、本実施例において、ＣＰＵがハードディスクへのアクセスを行う動作を表したフローチャート図である。ここでは、ＣＰＵ１０１がハードディスク１４０への読み書きを行う場合について説明を行う。
【００２４】
まず、Ｓ１００１においてタスクからデータ転送要求があるまで待機する。ここで、データ転送要求には、少なくともデータをＲｅａｄするかＷｒｉｔｅするか、データのやりとりを行うハードディスクの先頭アドレス、ＲＡＭ１０３の先頭アドレスおよび転送データサイズ、どのＤＭＡコントローラを使うかが含まれる。次に、Ｓ１００２においてデータ転送要求のあったＤＭＡコントローラが自ＣＰＵの要求によって動作中かどうかを調べる。もし、すでに動作している場合には、Ｓ１００３において動作が終了するまで要求のあったタスクをサスペンドさせる。
【００２５】
Ｓ１００２で動作中のＤＭＡコントローラではないコントローラに要求があった場合には、Ｓ１００４において、ＤＭＡコントローラのレジスタ１２２にハードディスクの先頭アドレスを設定する。次にＳ１００５、Ｓ１００６においても同様にレジスタ１２２にデータサイズと転送するＲＡＭ１０３の先頭アドレス、データ転送方向をＤＭＡコントローラに設定し、Ｓ１００７においてＤＭＡコントローラを起動する。
【００２６】
Ｓ１００８において、ＤＭＡコントローラの終了割り込みを受信するまで待機し、終了割り込みを受信したら、Ｓ１００９において、レジスタ１２２の初期化などのＤＭＡコントローラの終了処理を行い、タスクに終了したことを通知して終了する。
【００２７】
本実施例では、タスクからＤＭＡコントローラの指示を行ったが、この指示はタスクの優先順位から自動的に決めてもよいし、セクタごとに決めてもよい。
【００２８】
図３は本実施例におけるハードディスクコントローラ１２０の動作を表したフローチャート図である。
【００２９】
まず、S1101においてCPU１０１あるいは１１１がDMAコントローラを起動するまで待つ。DMAコントローラが起動されたら、S1102において転送要求のある中で優先度の高いDMAコントローラを選択する。本実施例において、レジスタ１２１とレジスタ１２６に値が設定された場合には、より優先度の高いDMAコントローラ１２５が選択される。
【００３０】
S1103において、選択されたDMAコントローラにおいて複数の値がセットされたかどうかを確認する。
【００３１】
もし、単一のレジスタにのみ値が設定された場合には、S1104において動作中のDMAコントローラがあるか否かを判定し、ない場合には、S1107において選択したDMAコントローラへ転送許可信号をアービター１２９が出力し、DMA転送が開始される。
【００３２】
もし、S1104において動作中のDMAコントローラがなかった場合には、動作中のDMAコントローラと選択したDMAコントローラが等しいかどうか、すなわち優先度の高いDMAコントローラが動作しているかどうかをアービター１２９が判断する。もし、優先度の高いDMAコントローラが動作している場合には、S1106において動作中のDMAコントローラを停止した後に、S1107に移る。
【００３３】
次にS1108においてDMAコントローラがDMAにおける１ブロック転送が終了する。もし転送終了後に動作中のDMAコントローラのデータ転送が終了した場合には、S1110において要求されたCPUに割り込みをあげ、CPUはS１００９に動作を行う。もしデータ転送が終了していない場合には、S1102に戻り再度どのDMAコントローラを起動するかを決定する。
【００３４】
S1103において選択したDMAコントローラの設定が複数のCPUによってなされていた場合には、S1111において、優先度が最大かどうかを確認する。優先度が最大の場合にはS1104に移行し、通常の場合と同じ処理によって起動するDMAコントローラが決定される。
【００３５】
もし、優先度が最大の場合には、S1112において動作中のDMAコントローラがあるかを確認し、なければ、S１１０７に移る。ここでは上述したようにCPU１０１の設定した値が優先される。もし、動作中のDMAが存在した場合には、S1113において動作中のDMAコントローラが停止され、S1114において動作していなかったレジスタ設定値が設定され、S1107に移る。
【００３６】
本実施例では、優先度が最大の場合にCPU１０１のレジスタ設定を優先させたが、CPU１１１のレジスタ設定を優先させてもよいし、動的に切り替えた場合も本特許に含まれることは言うまでもない。
【実施例２】
【００３７】
本発明の第２の実施形態を図４に基づいて説明する。なお、前述した第一の実施例と同一部分については説明を省略し、同一の番号を付与する。
【００３８】
図３のフローチャートと同様に図４は、ハードディスクコントローラ１２０がDMAデータ転送要求を受けてデータ転送を行う場合の動作を表したフローチャート図である。
【００３９】
本実施例で実施例１と異なるのは、まずS1201において同一ハードディスクへの転送要求における優先度の高いDMAコントローラを選択する。
【００４０】
また、S1111において優先度が最大かどうかを確認した後にS1202およびS1203において同一のハードディスクへの動作中のDMAコントローラがあるかどうかを確認することによって、異なるハードディスクへのDMA転送を停止させないようにする。
【００４１】
S1204においては、選択したDMAコントローラを起動させる前に、選択したDMAコントローラの設定値からどのハードディスクへの読み書きを行うかをセレクタ１３０が決定する。
【００４２】
上述した実施例１との差異によって、複数のハードディスクを搭載した場合に異なるハードディスクへのDMAコントローラのアクセスを行うことが可能となる。
【００４３】
本実施例ではハードディスクがふたつの場合を想定して記述されているが、ハードディスクを３つ以上搭載した場合でも同様のシーケンスで同等の効果を得ることができる。
【図面の簡単な説明】
【００４４】
【図１】本実施例におけるデータ転送制御装置を含むシステム構成を示すブロック図である。
【図２】本実施例におけるCＰＵからハードディスクへのアクセス手順を示すフローチャート図である。
【図３】本実施例におけるデータ転送制御装置の動作を示すフローチャート図である。
【図４】本実施例におけるハードディスクが複数つけられた場合のデータ転送制御装置の動作を示すローチャート図である。
【図１】
2007264751.tif 000003
【図２】
2007264751.tif 000004
【図３】
2007264751.tif 000005
【図４】
2007264751.tif 000006