(57)【要約】【課題】簡易な構成により、複数の記憶媒体の記憶領域を結合するとともに、結合後の記憶領域に対するデータの入出力処理を円滑に行うことが可能な記憶媒体結合装置を提供する。【解決手段】ハードディスク２０ａの記憶領域の後端部に所定サイズのバッファ領域を設け、ハードディスク２０ｂの記憶領域の先端部にバッファ領域と同サイズのオルタネイト領域を設け、バッファ領域とオルタネイト領域とを重複させてハードディスク２０ａの記憶領域とハードディスク２０ｂの記憶領域を結合する。このとき、原則としてデータ書込開始位置がバッファ領域に属している場合には、当該データをハードディスク２０ｂに書き込む。また、バッファ領域またはオルタネイト領域の一方の内容が更新されるたびに他方にその内容を複写する。【選択図】図１
2004062793.tif 000002
【特許請求の範囲】
【請求項１】
本体に接続されている一の記憶媒体の記憶領域の後端部に所定サイズの第１の結合領域を設けるとともに、本体に接続されている別の記憶媒体の記憶領域の先端部に前記第１の結合領域と同じサイズの第２の結合領域を設け、第１の結合領域と第２の結合領域とを重複させて、異なる記憶媒体の記憶領域を結合し、一連の記憶領域として管理する記憶領域管理手段と、
外部機器から、本体に接続されている記憶媒体に対するデータの書込要求が入力されたとき、データの書込開始位置が前記第１の結合領域と前記第２の結合領域とを重複させた重複領域でなければ、この書込開始位置が存在する記憶媒体に前記外部機器から転送されてきたデータを書き込み、データの書込開始位置が前記重複領域であれば、第２の結合領域を有する側の記憶媒体に前記外部機器から転送されてきたデータを書き込むデータ書込手段と、
前記データ書込手段により、前記第１の結合領域、または前記第２の結合領域にデータの書き込みが行われたとき、重複している第１の結合領域に記憶されているデータと、第２の結合領域に記憶されているデータと、を同一のデータに保持する記憶データ保持手段と、を備え、
前記第１の結合領域、および前記第２の結合領域のサイズは、前記外部機器が一度に転送できるデータの最大転送長以上である記憶媒体結合装置。
【請求項２】
外部機器から、本体に接続されている記憶媒体に対するデータの読出要求が入力されたとき、データの読出開始位置が前記重複領域でなければ、この読出開始位置が存在する記憶媒体からデータを読み出して前記外部機器に転送し、データの読出開始位置が前記重複領域であれば、第２の結合領域を有する側の記憶媒体からデータを読み出して前記外部機器に転送するデータ読出手段を備えた請求項１に記載の記憶媒体結合装置。
【請求項３】
前記記憶データ書込手段は、前記外部機器から前記重複領域内に収まるデータの書込要求が入力されたとき、両方の記憶媒体に前記外部機器から転送されてきたデータを書き込む請求項１または２に記載の記憶媒体結合装置。
【請求項４】
本体に接続されている一の記憶媒体の記憶領域の後端部に所定サイズの第１の結合領域を設けるとともに、本体に接続されている別の記憶媒体の記憶領域の先端部に前記第１の結合領域と同じサイズの第２の結合領域を設け、第１の結合領域と第２の結合領域とを重複させて、異なる記憶媒体の記憶領域を結合し、一連の記憶領域として管理する記憶領域管理手段と、
外部機器から、本体に接続されている記憶媒体に対するデータの書込要求が入力されたとき、データの書込開始位置が前記第１の結合領域と前記第２の結合領域とを重複させた重複領域でなければ、この書込開始位置が存在する記憶媒体に前記外部機器から転送されてきたデータを書き込み、データの書込開始位置、およびデータの書込終了位置が前記重複領域であれば、前記第１の結合領域を有する側の記憶媒体と第２の結合領域を有する側の記憶媒体の両方に前記外部機器から転送されてきたデータを書き込み、その他の場合に第２の結合領域を有する側の記憶媒体に前記外部機器から転送されてきたデータを書き込むデータ書込手段と、を備え、
前記第１の結合領域、および前記第２の結合領域のサイズは、前記外部機器が一度に転送できるデータの最大転送長の３倍以上である記憶媒体結合装置。
【請求項５】
外部機器から、本体に接続されている記憶媒体に対するデータの読出要求が入力されたとき、データの読出開始位置が前記重複領域でなければ、この読出開始位置が存在する記憶媒体からデータを読み出して前記外部機器に転送し、データの読出開始位置が前記重複領域であり、且つ重複領域の先頭から前記外部機器が一度に転送できるデータの最大転送長内であれば第１の結合領域を有する側の記憶媒体からデータを読み出して前記外部機器に転送し、その他の場合に第２の結合領域を有する側の記憶媒体からデータを読み出して前記外部機器に転送するデータ読出手段を備えた請求項４に記載の記憶媒体結合装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、複数のハードディスク等の記憶媒体の記憶領域を結合して管理する記憶媒体結合装置に関する。
【０００２】
【従来の技術】
近年、ハードディスク等の記憶媒体において、トラック幅を縮小する技術等の向上により、数十ギガバイトから百数ギガバイトの記憶容量を持つものが登場している。このため、通常の使用態様では、ハードディスクの容量が不足することがほとんどなく、ハードディスクの容量を増加させる必要に迫られるケースは極めて少ないといえる。
【０００３】
ところが、現在のようにパーソナルコンピュータによってテレビ番組をディジタル録画したり、パーソナルコンピュータ上でビデオ編集を実行するようなケースが増えると、数十ギガバイト以上の記憶容量を持つハードディスクでも記憶容量が不足する事態が生じることがある。
【０００４】
例えば、テレビ番組をハードディスクにディジタル録画する場合、通常、１ギガバイトあたり４〜５分程度の量しか番組の録画ができないことを考えると、数十ギガバイト程度の記憶容量では十分とはいえない。また、ビデオ編集を行う場合でも、上述のテレビ番組のディジタル録画の場合と同様に莫大な記憶容量が必要となる。このため、主としてテレビ番組のディジタル録画やビデオ編集をするといった使用態様では、ハードディスクの記憶容量を必要に応じて増加させる必要に迫られることがあった。
【０００５】
そこで、ハードディスクの記憶容量を必要に応じて適宜増加させる技術の１つとして、複数台のハードディスクの記憶領域を論理的に結合するスパンニング（ＪＢＯＤ［Ｊｕｓｔ　ａ　Ｂｕｎｃｈ　ｏｆ　Ｄｒｉｖｅｓ］）という手法によりハードディスクの容量を見かけ上増加させる技術が用いられていた。ここで、スパンニングとは、ハードディスクコントローラ等の記憶媒体結合装置を用いて複数のディスクから論理上１つのハードディスクを作成するものであり、単純に複数のハードディスクの記憶領域を連続して貼り合わせることをいう。
【０００６】
よって、このスパンニングを用いれば、例えば、１２０ギガバイトのハードディスクと８０ギガバイトのハードディスクから論理上２００ギガバイトの容量を持つ１台のハードディスクを構築できることになるため、上述のように、主としてテレビ番組のディジタル録画やビデオ編集をするといった使用態様において、ハードディスクの記憶容量を必要に応じて増加させることが可能になった。
【０００７】
【発明が解決しようとする課題】
しかしながら、上述のようにハードディスクコントローラにより複数のハードディスクをスパンニングする場合において、結合された複数のハードディスクの記憶領域の境界をまたぐようなデータ転送が発生したときには、１度の転送処理の最中にハードディスクコントローラがそのデータの転送先を切り替えなければならないという不都合があった。
【０００８】
このため、ハードディスクコントローラは、実行中のデータ転送処理を一時的に中断させる必要が生じることがあるが、例えばＩＤＥデバイスのＰＩＯ転送のような方式で転送をしていると、ホストとしてのパーソナルコンピュータが実行中のデータ転送処理を一時的に停止させることが困難であり、１度の転送処理の最中にハードディスクコントローラがそのデータの転送先を切り替えることが極めて困難になった。
【０００９】
このような場合、ハードディスクコントローラ等の記憶媒体結合装置に、転送されるデータを格納できるバッファメモリを搭載して、パーソナルコンピュータからのデータをこのバッファメモリに一旦格納する手順を行うことで問題を解決することも可能であるが、通常、転送されるデータを中継する方式では、バッファメモリを追加するためにコストが高くなったり、転送処理速度が低下するといった不都合が生じる。
【００１０】
また、同じ問題を解決する別の手法として、複数のハードディスクをまたぐデータ転送があった場合に、一方のハードディスクに格納されるべきデータと、他方のハードディスクに格納されるべきデータと、を分割した上でそれぞれのハードディスクに格納することも可能であるが、このときには各ハードディスクに転送すべきデータの転送数を調整等するためのプロセッサが別途必要になるという不都合があった。
【００１１】
この発明の目的は、簡易な構成により、複数の記憶媒体の記憶領域を結合するとともに、結合後の記憶領域に対するデータの入出力処理を円滑に行うことが可能な記憶媒体結合装置を提供することである。
【００１２】
【課題を解決するための手段】
この発明は以下の構成を備えている。
【００１３】
（１）本体に接続されている一の記憶媒体の記憶領域の後端部に所定サイズの第１の結合領域を設けるとともに、本体に接続されている別の記憶媒体の記憶領域の先端部に前記第１の結合領域と同じサイズの第２の結合領域を設け、第１の結合領域と第２の結合領域とを重複させて、異なる記憶媒体の記憶領域を結合し、一連の記憶領域として管理する記憶領域管理手段と、
外部機器から、本体に接続されている記憶媒体に対するデータの書込要求が入力されたとき、データの書込開始位置が前記第１の結合領域と前記第２の結合領域とを重複させた重複領域でなければ、この書込開始位置が存在する記憶媒体に前記外部機器から転送されてきたデータを書き込み、データの書込開始位置が前記重複領域であれば、第２の結合領域を有する側の記憶媒体に前記外部機器から転送されてきたデータを書き込むデータ書込手段と、
前記データ書込手段により、前記第１の結合領域、または前記第２の結合領域にデータの書き込みが行われたとき、重複している第１の結合領域に記憶されているデータと、第２の結合領域に記憶されているデータと、を同一のデータに保持する記憶データ保持手段と、を備え、
前記第１の結合領域、および前記第２の結合領域のサイズは、前記外部機器が一度に転送できるデータの最大転送長以上であることを特徴とする。
【００１４】
この構成においては、記憶媒体結合装置本体に接続される複数の記憶媒体の記憶領域を結合して１つの記憶領域を構築する際に、記憶領域管理手段により、結合される各記憶領域の境界に前記記憶媒体結合装置本体を経由して転送されるデータの最大転送長以上の重複領域を形成して記憶領域が管理されるとともに、データの書込開始位置が前記重複領域に属している場合には、データ書込手段により、原則として前記第２の結合領域を有する側にデータが書き込まれる。
【００１５】
したがって、１度のデータ書込処理は、常にデータが書き込まれる記憶媒体の記憶領域における後端部に書込位置が達するまでに完了するため、１度のデータ書込処理の途中でデータを転送する記憶媒体を切り替える必要が生じ、当該データ書込処理を一時中断等することを余儀なくされることがない。
【００１６】
さらに、記憶データ保持手段により、前記重複領域を挟んで結合されるそれぞれの記憶媒体における前記結合領域の内容の同一性が保持される。したがって、読出開始位置と前記重複領域との位置関係に基づいて、任意に読出処理の対象となる記憶媒体が選択される場合でも、１度のデータ読出処理の途中において、読出処理の対象となるデータが記憶媒体内に存在しないという不都合が防止される。
【００１７】
（２）外部機器から、本体に接続されている記憶媒体に対するデータの読出要求が入力されたとき、データの読出開始位置が前記重複領域でなければ、この読出開始位置が存在する記憶媒体からデータを読み出して前記外部機器に転送し、データの読出開始位置が前記重複領域であれば、第２の結合領域を有する側の記憶媒体からデータを読み出して前記外部機器に転送するデータ読出手段を備えたことを特徴とする。
【００１８】
この構成においては、記憶データ保持手段により、前記重複領域を挟んで結合されるそれぞれの記憶媒体における前記結合領域の内容の同一性が保持された状態で、データの読出開始位置と前記重複領域との位置関係に基づいて読出処理の対象となるべき記憶媒体が選択される。
【００１９】
したがって、１度のデータ読出処理の途中において読出位置が読出処理の対象となる記憶媒体の記憶領域の後端部に達して当該データ読出処理を一時中断等することが必要になることがない。
【００２０】
（３）前記記憶データ書込手段は、前記外部機器から前記重複領域内に収まるデータの書込要求が入力されたとき、両方の記憶媒体に前記外部機器から転送されてきたデータを書き込むことを特徴とする。
【００２１】
この構成においては、あるデータ書込処理のデータ書込位置が重複領域に属する場合であっても、第１の結合領域を有する側の記憶媒体の記憶領域における後端部に書込位置が達する虞がないときには、当該データを第２の結合領域を有する記憶媒体のみに書込処理がされるのではなく、当該記憶媒体とともに第１の結合領域を有する記憶媒体に対しても同時にデータ書込処理が実行される。
【００２２】
したがって、データ書込手段による書込処理の後に記憶データ保持手段により前記第１の結合領域と第２の結合領域との内容を一致させる必要がなくなるため、処理時間の短縮化が図られる。
【００２３】
（４）本体に接続されている一の記憶媒体の記憶領域の後端部に所定サイズの第１の結合領域を設けるとともに、本体に接続されている別の記憶媒体の記憶領域の先端部に前記第１の結合領域と同じサイズの第２の結合領域を設け、第１の結合領域と第２の結合領域とを重複させて、異なる記憶媒体の記憶領域を結合し、一連の記憶領域として管理する記憶領域管理手段と、
外部機器から、本体に接続されている記憶媒体に対するデータの書込要求が入力されたとき、データの書込開始位置が前記第１の結合領域と前記第２の結合領域とを重複させた重複領域でなければ、この書込開始位置が存在する記憶媒体に前記外部機器から転送されてきたデータを書き込み、データの書込開始位置、およびデータの書込終了位置が前記重複領域であれば、前記第１の結合領域を有する側の記憶媒体と第２の結合領域を有する側の記憶媒体の両方に前記外部機器から転送されてきたデータを書き込み、その他の場合に第２の結合領域を有する側の記憶媒体に前記外部機器から転送されてきたデータを書き込むデータ書込手段と、を備え、
前記第１の結合領域、および前記第２の結合領域のサイズは、前記外部機器が一度に転送できるデータの最大転送長の３倍以上であることを特徴とする。
【００２４】
この構成においては、記憶媒体結合装置本体に接続される複数の記憶媒体の記憶領域を結合して１つの記憶領域を構築する際に、記憶領域管理手段により、結合される各記憶領域の境界に前記記憶媒体結合装置本体を経由して転送されるデータの最大転送長の３倍以上の重複領域を形成して記憶領域が管理されるとともに、データの書込開始位置が前記重複領域に属している場合には、データ書込手段により、前記第２の結合領域を有する側にデータが書き込まれ、特に、データの書込開始位置と書込終了位置とが共に前記重複領域に属しているときには、前記第１の結合領域を有する記憶媒体および前記第２の結合領域を有する記憶媒体の両方に同時に当該データが書き込まれる。
【００２５】
したがって、１度のデータ書込処理は、常にデータが書き込まれる記憶媒体の記憶領域における後端部に書込位置が達するまでに完了するため、１度のデータ書込処理の途中でデータを転送する記憶媒体を切り替える必要が生じ、当該データ書込処理を一時中断等することを余儀なくされることがない。
【００２６】
さらに、データ書込手段以外に特段の手段を設けることなく、データ書込処理を実行後の前記第１の結合領域の内容と前記第２の結合領域の内容の同一性が保持される。したがって、データの書込および読出を円滑に行うという前記記憶媒体結合装置本体の本来の目的を達成しつつ、その構成の簡略化および処理の高速化が図られる。
【００２７】
（５）外部機器から、本体に接続されている記憶媒体に対するデータの読出要求が入力されたとき、データの読出開始位置が前記重複領域でなければ、この読出開始位置が存在する記憶媒体からデータを読み出して前記外部機器に転送し、データの読出開始位置が前記重複領域であり、且つ重複領域の先頭から前記外部機器が一度に転送できるデータの最大転送長内であれば第１の結合領域を有する側の記憶媒体からデータを読み出して前記外部機器に転送し、その他の場合に第２の結合領域を有する側の記憶媒体からデータを読み出して前記外部機器に転送するデータ読出手段を備えたことを特徴とする。
【００２８】
この構成においては、データの読出開始位置と前記重複領域との位置関係、およびデータの読出開始位置が前記重複領域内のときにはデータの読出開始位置が前記重複領域におけるどの範囲に位置するかに基づいて読出処理の対象となるべき記憶媒体が選択される。
【００２９】
したがって、１度のデータ読出処理の途中において読出位置が読出処理の対象となる記憶媒体の記憶領域の後端部に達して当該データ読出処理を一時中断等することが必要になることがない。
【００３０】
【発明の実施の形態】
以下、図を用いて本発明の記憶媒体結合装置の実施形態であるＩＤＥコントローラを説明する。本発明は、複数の記憶媒体の記憶領域を結合して全体としての記憶媒体の記憶容量を増加させる記憶媒体結合装置に関するものであり、特に、結合された記憶領域に対してデータの転送を行う際に、記憶媒体結合装置側からパーソナルコンピュータ等にデータ転送の一時停止をさせる必要が生じることがないように、記憶媒体の記憶領域の管理および結合した記憶媒体とパーソナルコンピュータとの間の通信制御をする点に特徴を有している。なお、以下の実施形態では、ＩＤＥインタフェースが用いられているが、これに限定されることはなく、ＳＣＳＩ、ＵＳＢ２．０、またはＩＥＥＥ１３９４等のＩＤＥ以外のインタフェースを用いることも可能である。
【００３１】
図１は、ＩＤＥコントローラ１の使用状態を示している。同図に示すように、ＩＤＥコントローラ１は、パーソナルコンピュータ１０とハードディスク２０（２０ａ、２０ｂ）との間に配置される。
【００３２】
パーソナルコンピュータ１０は、ある入力に対して所定の処理をして、その処理結果を出力するものであり、必要に応じてその処理結果をハードディスク２０に書き込む。また、処理対象をハードディスク２０から読み出したり、処理を行う際のプログラムをハードディスク２０から読み出す。本発明に適用されるパーソナルコンピュータ１０の仕様等については、特に限定はなく、上述の入力、処理、出力、書込および読出等の通常の処理を行い得るものであれば、本発明の実施に用いることができる。
【００３３】
ハードディスク２０ａおよび２０ｂは、それぞれ８０ギガバイトおよび６０ギガバイトの容量を有するものであるが、その記憶容量はこれらに限定されることはなく、また、ハードディスク２０ａおよび２０ｂが異なる記憶容量であっても、同一の記憶容量であってもよい。このため、旧式の低容量のハードディスク２０と最新式のハードディスク２０とをＩＤＥコントローラ１により結合する際に本発明を適用することも可能である。
【００３４】
ＩＤＥコントローラ１は、一端側がパーソナルコンピュータ１０に接続され、他端側がハードディスク２０に接続される。同図では、ＩＤＥコントローラ１に２台のハードディスク２０ａおよび２０ｂが接続される構成を示しているが、後述するように、ＩＤＥコントローラ１に接続されるハードディスク２０の台数は特に２台に限定されることはない。また、ＩＤＥコントローラ１がパーソナルコンピュータ１０に内蔵される構成であってもよいのはいうまでもない。
【００３５】
同図に示すように、ＩＤＥコントローラ１は、内部にＣＰＵ２を備えている。ＣＰＵ２は、パーソナルコンピュータ１０からのコマンドを受信および解析し、ハードディスク２０ａ、ハードディスク２０ｂ、またはハードディスク２０ａおよびハードディスク２０ｂの両方に対して所定の命令を行う。つまり、パーソナルコンピュータ１０とハードディスク２０との間でのデータ転送の制御は、前記コマンドに基づいて行われる。
【００３６】
また、データの転送の高速化が図るため、上述のデータ転送に係るデータ自体は、パーソナルコンピュータ１０とハードディスク２０とが直接通信を行っており、ＩＤＥコントローラ１はこのデータを単にスルーさせているにすぎない。なお、以下の実施形態では、ＣＰＵ２が、本発明の記憶領域管理手段、データ書込手段、および記憶データ保持手段を構成する。
【００３７】
図２は、記録領域管理手段としてのＣＰＵ２による、ハードディスク２０ａおよび２０ｂの記憶領域の管理状況を示している。ハードディスク２０ａとハードディスク２０ｂをスパンニングする場合、通常、ハードディスク２０ａの記憶領域の後端にそのまま、ハードディスク２０ｂの記憶領域の前端を結合させて、全体として８０ＭＢ＋６０ＭＢ＝１４０ＭＢの記憶容量のハードディスク２０を、論理上、構成させている。
【００３８】
ところが、同図に示すように、ＣＰＵ２は、ハードディスク２０ａおよびハードディスク２０ｂの記憶領域を管理する際に、ハードディスク２０ａの記憶領域の後端部に第１の結合領域としてのバッファ領域を仮想的に形成するとともに、ハードディスク２０ｂの記憶領域の前端部に第２の結合領域としてのオルタネイト領域を仮想的に形成して管理している。すなわち、ＣＰＵ２によって、ハードディスク２０の記憶領域の大部分を占めるメイン領域の後端部側の一部にバッファ領域、また、前端部側の一部にオルタネイト領域が論理上形成されている。
【００３９】
このとき、バッファ領域およびオルタネイト領域は共に、パーソナルコンピュータ１０とハードディスク２０との間で一度に転送できるデータの最大転送長（以下、１転送分のサイズという。）と同じサイズにされている。なお、１転送分のサイズは、通常、パーソナルコンピュータ１０のＯＳがスパンニングをしたハードディスク２０の全記憶容量を認識した後、インタフェースの規格に準拠して設定される。
【００４０】
例えば、ＩＤＥインタフェースを使用している本実施形態では、ＯＳがハードディスク２０の全記憶容量を１２８ギガバイト未満であると認識したときは、ＩＤＥ規格に準拠して、１転送分のサイズが６４キロバイトに設定される。また、同様に、ＯＳがハードディスク２０の全記憶容量を１２８ギガバイト以上であると認識したときは、１転送分のサイズが３２メガバイトに設定される。よって、本実施形態では、ハードディスク２０ａおよびハードディスク２０ｂのスパンニング後の全記憶容量が１４０ギガバイトであるため、バッファ領域およびオルタネイト領域は共に３２メガバイトに設定されている。なお、ＳＣＳＩ、ＵＳＢ２．０、またはＩＥＥＥ１３９４等のＩＤＥ以外のインタフェースが使用される場合には、１転送分のサイズはそれぞれのインタフェースの規格に準拠した値に設定される。
【００４１】
本実施形態では、ＣＰＵ２は、ハードディスク２０ａおよびハードディスク２０ｂをスパンニングする際に、ハードディスク２０ａおよびハードディスク２０ｂにおけるバッファ領域およびオルタネイト領域を重複させた状態でスパンニング後のハードディスク２０の領域を管理している。
【００４２】
ここで、バッファ領域およびオルタネイト領域を重複させるとは、バッファ領域の全部とオルタネイト領域の全部とを重複させることをいう。また、ハードディスク２０ａのバッファ領域およびハードディスク２０ｂのオルタネイト領域の重複部分を重複領域といい、本実施形態では重複領域のサイズは３２メガバイトとなる。
【００４３】
そして、パーソナルコンピュータ１０とハードディスク２０との間でデータの転送がされる場合、ＣＰＵ２は、ハードディスク２０ａのバッファ領域およびハードディスク２０ｂのオルタネイト領域に、論理上、同一アドレスが設定されているものとして取り扱っている。
【００４４】
さらに、ＣＰＵ２は、パーソナルコンピュータ１０からのコマンドに含まれる書込開始領域または読出開始領域、および転送されるデータの長さ等の情報に基づいてアクセスすべきハードディスク２０を決定するとともに、ハードディスク２０ａのバッファ領域とハードディスク２０ｂのオルタネイト領域とに格納されるそれぞれのデータの同一性を保つ役割を果たす。
【００４５】
図３は、データ書込手段および記録データ保持手段としてのＣＰＵ２の動作手順を示すフローチャートである。なお、このフローチャートによる説明においては、便宜上、図４に示すように、ハードディスク２０ａをＨＤＤ１、ハードディスク２０ｂをＨＤＤ２、ハードディスク２０ａのメイン領域を領域Ａ、ハードディスク２０ａのバッファ領域およびハードディスク２０ｂのオルタネイト領域の重複領域を領域Ｂ、ハードディスク２０ｂのメイン領域を領域Ｃとする。
【００４６】
パーソナルコンピュータ１０からのコマンドをＩＤＥコントローラ１が受信すると（ｓ１）、ＣＰＵ２は、このコマンドが書込命令であるのか、それとも読出命令であるのかを判断する（ｓ２）。
【００４７】
ｓ２の判断工程において、パーソナルコンピュータ１０からのコマンドが読出命令であるときは、ＣＰＵ２は、読出命令に付加されている読出開始アドレスや読出データの長さに関する情報に基づいて、データ読出開始アドレスと読出終了アドレスとを算出する（ｓ３）。
【００４８】
このとき、ＣＰＵ２は、図４に示すようなハードディスク２０の記憶領域のエリアマップを参照しつつ、読出開始位置が領域Ａ、領域Ｂ、領域Ｃのいずれに属しているかを判断する。具体的には、ＣＰＵ２は、まず、このコマンドに係る読出開始アドレスが領域Ａに属しているか否かを判断する（ｓ５）。
【００４９】
ｓ５の判断工程において、読出開始アドレスが領域Ａに属する場合には、ＣＰＵ２は、ハードディスク２０ａから当該コマンドに対応した所定のデータを読み出す（ｓ１０）。これに対して、ｓ５の判断工程において、読出開始アドレスが領域Ｂまたは領域Ｃに属する場合には、ＣＰＵ２は、ハードディスク２０ｂから当該コマンドに対応した所定のデータを読み出す（ｓ１１）。
【００５０】
ＣＰＵ２は、上述の読出処理が開始されると、データ転送処理が完了するまで待機する（ｓ１９）。そして、データ転送処理が完了するとＣＰＵ２は、動作を終了する。
【００５１】
一方、ｓ２の判断工程において、パーソナルコンピュータ１０からのコマンドが書込命令であるときは、ＣＰＵ２は、書込命令に付加されている書込開始アドレスや書込データの長さに関する情報に基づいて、データ書込開始アドレスと書込終了アドレスとを算出する（ｓ４）。
【００５２】
そして、ＣＰＵ２は、まず書込開始アドレスと書込終了アドレスとが共に領域Ａに属しているか否かを判断する（ｓ６）。このとき、書込開始アドレスおよび書込終了アドレスが共に領域Ａに属していれば、ＣＰＵ２は、当該コマンドに係るデータをハードディスク２０ａの前記アドレスで特定される所定の領域に書き込む（ｓ１２）。
【００５３】
ｓ６の判断工程において、書込開始アドレスが領域Ａに属しているが、書込終了アドレスが領域Ａに属していない場合には、ＣＰＵ２は、書込開始アドレスが領域Ａに属しており、かつ、書込終了アドレスが領域Ｂに属しているか否かを判断する（ｓ７）。
【００５４】
ｓ７の判断工程において、書込開始アドレスが領域Ａに属しており、書込終了アドレスが領域Ｂに属している場合には、ＣＰＵ２は、当該データをハードディスク２０ａの前記アドレスで特定される所定の領域に書き込む（ｓ１３）。ただし、このときＣＰＵ２は、ハードディスク２０ａのバッファ領域に書き込まれたデータの内容をハードディスク２０ｂのオルタネイト領域に反映させて両者の同一性を保つために、ハードディスク２０ａのバッファ領域の内容をハードディスク２０ｂのオルタネイト領域にコピーする（ｓ１４）。
【００５５】
ｓ７の判断工程において、書込開始アドレスが領域Ａに属していない場合にはＣＰＵ２は、書込開始アドレスおよび書込終了アドレスが共に領域Ｂに属しているか否かを判断する（ｓ８）。
【００５６】
ｓ８の判断工程において、書込開始アドレスおよび書込終了アドレスが共に領域Ｂに属している場合には、ＣＰＵ２は、当該データをハードディスク２０ａおよびハードディスク２０ｂの双方に転送し、当該コマンドに対応する所定の領域に同時に書き込む（ｓ１５）。
【００５７】
また、ｓ８の判断工程において、書込開始アドレスまたは書込終了アドレスのいずれかが領域Ｂに属していない場合には、ＣＰＵ２は、書込開始アドレスが領域Ｂに属しており、かつ、書込終了アドレスが領域Ｃに属しているか否かを判断する（ｓ９）。
【００５８】
ｓ９の判断工程において、書込開始アドレスが領域Ｂに属しており、書込終了アドレスが領域Ｃに属している場合には、ＣＰＵ２は、まず当該データをハードディスク２０ｂの当該コマンドに対応する所定の領域に書き込む（ｓ１６）。そして、ＣＰＵ２は、今回更新されたハードディスク２０ｂのオルタネイト領域の内容をハードディスク２０ａのバッファ領域にコピーする。
【００５９】
ｓ９の判断工程において、書込開始アドレスが領域Ｂに属しており、かつ、書込終了アドレスが領域Ｃに属しているという条件を満たさない場合は、ＣＰＵ２は、書込開始アドレスが領域Ｃに属しているものとして、当該データをハードディスク２０ｂのメイン領域の当該コマンドに対応した所定のアドレスに書き込む（ｓ１８）。
【００６０】
上述の読出処理と同様に書込処理時においても、それぞれの書込処理が開始されると、ＣＰＵ２は、データ転送処理が完了するまで待機する（ｓ１９）。そしてデータ転送処理が完了すると、ＣＰＵ２は当該動作を終了する。
【００６１】
以上のＣＰＵ２の動作によれば、２台のハードディスク２０をスパンニングしてパーソナルコンピュータ１０に接続しているときでも、一度の転送処理の最中にデータ転送を行うハードディスク２０を切り替える必要が生じないため、ＩＤＥコントローラ１側においてデータ転送を一時中断することを余儀なくされるされることがなくなる。
【００６２】
これは、重複領域（領域Ｂ）は１転送分のサイズよりも大きくなるようにされているところ、ＣＰＵ２は、データの読出開始アドレスまたはデータの書込開始アドレスが重複領域（領域Ｂ）に属している場合には、原則として、ハードディスク２０ｂにアクセスするように決定しているため、一度のデータ転送の最中にハードディスク２０ａの記憶領域における後端に達してしまい、アクセス先をハードディスク２０ｂに切り替える必要が生じるような事態が起こりえないからである。
【００６３】
また、ＣＰＵ２は、ハードディスク２０ａのバッファ領域の内容またはハードディスク２０ｂのオルタネイト領域の内容が更新される度に、ハードディスク２０ａのバッファ領域の内容とハードディスク２０ｂのオルタネイト領域の内容との同一性が保たれるように処理しているため、読出開始アドレスがどこであるかにかかわらず、常に円滑な読出処理を行うことができる。
【００６４】
特に、ＣＰＵ２は、書込開始アドレスと書込終了アドレスが共に重複領域（領域Ｂ）に属している場合には、当該データをミラーリングしてハードディスク２０ａおよびハードディスク２０ｂに同時に書き込んで、処理時間の短縮化を図っている。
【００６５】
なお、ＣＰＵ２は、読出開始アドレスが重複領域（領域Ｂ）に属しているときには、その読出終了アドレスにかかわらず、原則的にハードディスク２０ｂのオルタネイト領域から読出処理を行っているが、これは、単に、ハードディスク２０は、先頭セクタに近い程読出速度が速いというハードウェアの特性を考慮したものにすぎない。
【００６６】
したがって、読出開始アドレスと読出終了アドレスとが共に重複領域（領域Ｂ）に属しているときに、ハードディスク２０ａのバッファ領域から読み出しを行っても、特に動作上支障を来たすことはない。
【００６７】
また、本実施形態では、図１に示すようにＩＤＥコントローラ１に２台のハードディスク２０を接続する使用状態であったが、接続されるハードディスク２０が３台以上であってもＣＰＵ２は、上述と同様の動作手順を実行することが可能である。つまり、ハードディスク２０が３台以上接続される場合でも、それぞれのハードディスク２０の境界において上述の動作手順を実行することにより、ハードディスク２０の数にかかわりなく本発明のＩＤＥコントローラ１を動作させることが可能である。なお、ｎ台のハードディスク２０をスパンニングしたときにおける、ＣＰＵ２によるハードディスク２０の領域管理状態を図５に示す。
【００６８】
図６は、本発明の第２の実施形態におけるハードディスク２０の記憶領域の管理状態を示している。同図が示すように本実施形態では、重複領域のサイズが第１の実施形態の重複領域の３倍である。すなわち、第２の実施形態は、ハードディスク２０ａのバッファ領域に、それぞれが１転送分のサイズである第１〜３のバッファ領域が論理上設定されており、ハードディスク２０ｂのオルタネイト領域に、それぞれが１転送分のサイズである第１〜３のオルタネイト領域が設定されている点が第１の実施形態と相違している。
【００６９】
図７は、第２の実施形態におけるＣＰＵ２の動作手順を示すフローチャートである。なお、フローチャートによる説明の便宜上、図８に示すように、ハードディスク２０ａのメイン領域を領域Ａ、第１のバッファ領域および第１のオルタネイト領域の重複領域を領域Ｂ、第２のバッファ領域および第２のオルタネイト領域の重複領域を領域Ｃ、第３のバッファ領域および第３のオルタネイト領域の重複領域を領域Ｄ、ハードディスク２０ｂのメイン領域を領域Ｅとする。
【００７０】
パーソナルコンピュータ１０からのコマンドをＩＤＥコントローラ１が受信すると（ｓ２１）、ＣＰＵ２は、このコマンドが書込命令であるのか、それとも読出命令であるのかを判断する（ｓ２２）。
【００７１】
ｓ２２の判断工程において、パーソナルコンピュータ１０からのコマンドが読出命令であるときは、ＣＰＵ２は、読出命令に付加されている読出開始アドレスに関する情報に基づいて、データ読出開始アドレスを算出する（ｓ２３）。
【００７２】
このとき、ＣＰＵ２は、図８に示すような接続されているハードディスク２０のエリアマップを参照しつつ、読出開始位置を決定する。具体的には、ＣＰＵ２は、このコマンドに係る読出開始アドレスが領域Ａ〜Ｂの範囲に属しているか否かを判断する（ｓ２５）。
【００７３】
ｓ２５の判断工程において、読出開始アドレスが領域Ａ〜Ｂに属する場合には、ＣＰＵ２は、ハードディスク２０ａから当該コマンドに対応した所定のデータを読み出す（ｓ２６）。なお、領域Ｂ、Ｃ、およびＤが共に１転送分のサイズであることを考えると、当該データの読出開始アドレスが領域Ａ〜Ｂに属するケースには、読出開始アドレスが領域Ａで読出終了アドレスが領域Ａに属する場合、読出開始アドレスが領域Ａで読出終了アドレスが領域Ｂに属する場合、読出開始アドレスと読出終了アドレスとが共に領域Ｂに属する場合、読出開始アドレスが領域Ｂで読出終了アドレスが領域Ｃに属する場合の４つのパターンがある。
【００７４】
これに対して、ｓ２５の判断工程において、読出開始アドレスが領域Ａ〜Ｂでない場合には、ＣＰＵ２は、ハードディスク２０ｂから当該コマンドに対応した所定のデータを読み出す（ｓ２７）。なお、当該データの読出開始アドレスが領域Ａ〜Ｂでない場合であるケースとしては、読出開始アドレスと読出終了アドレスとが共に領域Ｃに属する場合、読出開始アドレスが領域Ｃで読出終了アドレスが領域Ｄである場合、領域読出開始アドレスが領域Ｄで読出終了アドレスが領域Ｄである場合、領域読出開始アドレスが領域Ｄで読出終了アドレスが領域Ｅである場合、領域読出開始アドレスと読出終了アドレスとが共に領域Ｅである場合の５つのパターンがある。
【００７５】
ＣＰＵ２は、上述の読出処理が開始されると、データ転送処理が完了するまで待機する（ｓ３３）。そして、データ転送処理が完了すると、ＣＰＵ２は動作を終了する。
【００７６】
一方、ｓ２２の判断工程において、パーソナルコンピュータ１０からのコマンドが書込命令であるときは、ＣＰＵ２は、書込命令に付加されている書込開始アドレスに関する情報に基づいて、データ書込開始アドレスを算出する（ｓ２４）。
【００７７】
そして、ＣＰＵ２は、まず書込開始アドレスが領域Ａに属しているか否かを判断する（ｓ２８）。このとき、書込開始アドレスが領域Ａに属していれば、ＣＰＵ２は、当該コマンドに係るデータをハードディスク２０ａの前記アドレスで特定される所定の領域に書き込む（ｓ３０）。ここで、当該データの書込開始アドレスが領域Ａに属しているケースの具体例としては、書込開始アドレスと書込終了アドレスとが共に領域Ａ、書込開始アドレスが領域Ａで書込終了アドレスが領域Ｂに属する場合の２つのケースが挙げられる。
【００７８】
ｓ２８の判断工程において、書込開始アドレスが領域Ａに属していない場合には、ＣＰＵ２は、書込開始アドレスが領域Ｂ〜領域Ｃに属しているか否かを判断する（ｓ２９）。
【００７９】
ｓ２９の判断工程において、書込開始アドレスが領域Ｂ〜領域Ｃに属している場合には、ＣＰＵ２は、当該データをハードディスク２０ａとハードディスク２０ｂの両方に同時に書き込む。なお、当該データの書込開始アドレスが領域Ｂ〜領域Ｃに属しているケースの具体例としては、書込開始アドレスと書込終了アドレスとが共に領域Ｂに属する場合、書込開始アドレスが領域Ｂで書込終了アドレスが領域Ｃに属する場合、書込開始アドレスと書込終了アドレスとが共に領域Ｃに属する場合、書込開始アドレスが領域Ｃで書込終了アドレスが領域Ｄである場合の４つのケースが考えられる。
【００８０】
ｓ２９の判断工程において、書込開始アドレスが領域Ｂ〜領域Ｃに属していない場合には、すなわち、書込開始アドレスが領域Ｄ〜領域Ｅに属している場合には、ＣＰＵ２は、当該データをハードディスク２０ｂの当該コマンドに対応する所定の領域に書き込む（ｓ３２）。
【００８１】
なお、書込開始アドレスが領域Ｄ〜領域Ｅに属しているケースの具体例としては、書込開始アドレスと書込終了アドレスとが共に領域Ｄである場合、書込開始アドレスが領域Ｄで書き込み終了アドレスが領域Ｅである場合、書込開始アドレスと書き込み終了とが共に領域Ｅである場合の３つのケースが挙げられる。
【００８２】
ＣＰＵ２は、それぞれの書込処理が開始されるとデータ転送処理が完了するまで待機する（ｓ３３）。そして、データ転送処理が完了するとＣＰＵ２は、当該動作を終了する。
【００８３】
以上のＣＰＵ２の動作によれば、第１の実施形態と同様に、２台のハードディスク２０をスパンニングしてパーソナルコンピュータ１０に接続しているときでも、ハードディスク２０ａの記憶領域とハードディスク２０ｂの記憶領域とにまたがった状態でデータ転送処理を行う必要がなく、ＩＤＥコントローラ１からパーソナルコンピュータ１０に対してデータ転送を一時中止する旨の要求をすることが必要になることもない。また、第１の実施形態による効果に加えて、第２の実施形態においては、バッファ領域の内容をオルタネイト領域に複写したりオルタネイト領域バッファ領域の内容をオルタネイト領域に複写したりする等の処理が不要になるため処理内容が単純化するとともに作業時間が短縮される。
【００８４】
さらに、第２の実施形態では、転送されるデータの終了アドレスの算出が不要になることから、すなわち、転送されるデータの開始アドレスのみに基づいてアクセスすべきハードディスク２０の選択が可能になるため、よりいっそう処理の高速化を図ることが可能になる。
【００８５】
なお、第２の実施形態では、バッファ領域およびオルタネイト領域が第１の実施形態の３倍のサイズであるためハードディスク２０の記憶領域に無駄が生じるとも考えられるが、重複領域のサイズ（９６メガバイト）はスパンニング後のハードディスク２０の全容量（１４０ギガバイト）に対して極めて微小であるため、特段の問題を生じることはない。
【００８６】
また、本実施形態でも、ＩＤＥコントローラ１に接続されるハードディスク２０は２台に限定されることはない。
【００８７】
本実施形態で接続されるハードディスク２０が３台以上であってもＣＰＵ２は、上述と同様の動作手順を実行することが可能である。つまり、ハードディスク２０が３台以上接続される場合でも、それぞれのハードディスク２０の境界において上述の動作手順を実行することにより、ハードディスク２０の数にかかわりなく本発明のＩＤＥコントローラ１を動作させることが可能である。なお、ｎ台のハードディスク２０をスパンニングしたときにおける、ＣＰＵ２によるハードディスク２０の領域管理状態を図９に示す。
【００８８】
【発明の効果】
以上のように、この発明によれば、以下の効果を奏することができる。
【００８９】
（１）記憶媒体結合装置本体に接続される複数の記憶媒体の記憶領域を結合して１つの記憶領域を構築する際に、記憶領域管理手段が、結合される各記憶領域の境界に前記記憶媒体結合装置本体を経由して転送されるデータの最大転送長以上の重複領域を形成して記憶領域を管理するとともに、データの書込開始位置が前記重複領域に属している場合には、データ書込手段が、前記第２の結合領域を有する側にデータを書き込むため、１度のデータ書込処理を、常にデータが書き込まれる記憶媒体の記憶領域における後端部に書込位置が達するまでに完了させることが可能になり、１度のデータ書込処理の途中でデータを転送する記憶媒体を切り替える必要が生じ当該データ書込処理を一時中断等することを余儀なくされることを防止することができる。
【００９０】
さらに、記憶データ保持手段が、前記重複領域を挟んで結合されるそれぞれの記憶媒体における前記結合領域の内容の同一性を保持しているため、読出開始位置と前記重複領域との位置関係に基づいて、任意に読出処理の対象となる記憶媒体を選択する場合でも、１度のデータ読出処理の途中において、読出処理の対象となるデータが記憶媒体内に存在しないという不都合を防止することができる。
【００９１】
（２）記憶データ保持手段により、前記重複領域を挟んで結合されるそれぞれの記憶媒体における前記結合領域の内容の同一性を保持した上で、データの読出開始位置と前記重複領域との位置関係から読出処理の対象となるべき記憶媒体を選択するため、１度のデータ読出処理の途中において読出位置が読出処理の対象となる記憶媒体の記憶領域の後端部に達して、当該データ読出処理を一時中断等することが必要になることを防止できる。
【００９２】
（３）あるデータ書込処理のデータ書込位置が重複領域に属する場合であっても、第１の結合領域を有する側の記憶媒体の記憶領域における後端部に書込位置が達する虞がないときには、当該データを第２の結合領域を有する記憶媒体のみに書き込むのではなく、当該記憶媒体とともに第１の結合領域を有する記憶媒体に対しても同時にデータ書込処理を実行するため、データ書込手段による書込処理の後に記憶データ保持手段により前記第１の結合領域と第２の結合領域との内容を一致させることを不要にし、処理時間の短縮化を図ることができる。
【００９３】
（４）記憶媒体結合装置本体に接続される複数の記憶媒体の記憶領域を結合して１つの記憶領域を構築する際に、記憶領域管理手段が、結合される各記憶領域の境界に前記記憶媒体結合装置本体を経由して転送されるデータの最大転送長の３倍以上の重複領域を形成して記憶領域を管理するとともに、データの書込開始位置が前記重複領域に属している場合には、データ書込手段が、前記第２の結合領域を有する側にデータを書き込み、特に、データの書込開始位置と書込終了位置とが共に前記重複領域に属しているときには、前記第１の結合領域を有する記憶媒体および前記第２の結合領域を有する記憶媒体の両方に同時に当該データを書き込むため、１度のデータ書込処理を、常にデータが書き込まれる記憶媒体の記憶領域における後端部に書込位置が達するまでに完了させることができ、１度のデータ書込処理の途中でデータを転送する記憶媒体を切り替える必要が生じ、当該データ書込処理を一時中断等することを余儀なくされるを防止できる。
【００９４】
さらに、データ書込手段以外に特段の手段を設けることなく、データ書込処理を実行後の前記第１の結合領域の内容と前記第２の結合領域の内容の同一性を保持するため、データの書込および読出を円滑に行うという前記記憶媒体結合装置本体の本来の目的を達成しつつ、その構成の簡略化および処理の高速化を図ることができる。
【００９５】
（５）データの読出開始位置と前記重複領域との位置関係、およびデータの読出開始位置が前記重複領域内のときにはデータの読出開始位置が前記重複領域におけるどの範囲に位置するかに基づいて読出処理の対象となるべき記憶媒体を選択するため、１度のデータ読出処理の途中において読出位置が読出処理の対象となる記憶媒体の記憶領域の後端部に達して当該データ読出処理を一時中断等することが必要になることを防止できる。
【００９６】
よって、簡易な構成により、複数の記憶媒体の記憶領域を結合するとともに、結合後の記憶領域に対するデータの入出力処理を円滑に行うことが可能な記憶媒体結合装置を提供することができる。
【図面の簡単な説明】
【図１】ＩＤＥコントローラの使用状態を示す図である。
【図２】第１の実施形態における記憶領域管理手段によるハードディスクの記憶領域の管理状況を示す図である。
【図３】第１の実施形態におけるデータ書込手段および記録データ保持手段の動作手順を示すフローチャートである。
【図４】第１の実施形態におけるハードディスクの記憶領域の構成を示す図である。
【図５】第１の実施形態におけるｎ台のハードディスクの領域管理状態を示す図である。
【図６】第２の実施形態における記憶領域管理手段によるハードディスクの記憶領域の管理状況を示す図である。
【図７】第２の実施形態におけるデータ書込手段および記録データ保持手段の動作手順を示すフローチャートである。
【図８】第２の実施形態におけるハードディスクの記憶領域の構成を示す図である。
【図９】第２の実施形態におけるｎ台のハードディスクの領域管理状態を示す図である。
【符号の説明】
１−ＩＤＥコントローラ
２−ＣＰＵ
１０−パーソナルコンピュータ
２０−ハードディスク
【図１】
2004062793.tif 000003
【図２】
2004062793.tif 000004
【図３】
2004062793.tif 000005
【図４】
2004062793.tif 000006
【図５】
2004062793.tif 000007
【図６】
2004062793.tif 000008
【図７】
2004062793.tif 000009
【図８】
2004062793.tif 000010
【図９】
2004062793.tif 000011