(57)【要約】【課題】ディスクの記憶領域の割当に関し、少ない管理情報でアクセスの向上が図れるディスク記憶領域割当方法およびディスク記憶領域割当装置を提供することを目的とする。【解決手段】ディスクの記憶領域を各種記憶サイズのブロックに分割し、分割したブロックの記憶領域上の位置の設定および各ブロックの使用状態を表すフラグの設定を行う。ファイルを記憶するとき、フラグにより未使用のブロックを判断し、対応する未使用ブロックの記憶領域の位置に記憶するように構成する。【選択図】　　図１
2004021338.tif 000002
【特許請求の範囲】
【請求項１】
ディスク媒体上の記憶領域を複数のサイズのブロックに分割するブロック分割手順と、
分割されたブロックの記憶領域の位置を設定するブロック位置設定手順と、
分割されたブロックに対応して使用と未使用との状態をフラグにより設定する使用フラグ設定手順と、
ファイルを記憶するとき、前記フラグに基づいて未使用のブロックを判断し、対応する未使用ブロックの位置に記憶する記憶領域割当手順と
を有することを特徴とするディスク記憶領域割当方法。
【請求項２】
ディスク媒体上の記憶領域を所定のサイズのブロックに分割する第一のブロック分割手順と、
第一のブロック分割手段で分割した各ブロックを、複数のサイズのブロックに分割する第二のブロック分割手順と、
第二のブロック分割手段で分割した各ブロックの記憶領域の位置を設定するブロック位置設定手順と、
第二のブロック分割手段で分割した各ブロックに対応して使用と未使用との状態をフラグにより設定する使用フラグ設定手順と、
ファイルを記憶するとき、前記フラグに基づいて未使用のブロックを判断し、対応する未使用ブロックの位置に記憶する記憶領域割当手順と
を有することを特徴とするディスク記憶領域割当方法。
【請求項３】
ディスク媒体上の記憶領域を所定のサイズのブロックに分割する第一のブロック分割手段と、
第一のブロック分割手段で分割した各ブロックを、複数のサイズのブロックに分割する第二のブロック分割手段と、
第二のブロック分割手段で分割した各ブロックの記憶領域の位置を設定するブロック位置設定手段と、
第二のブロック分割手段で分割した各ブロックに対応して使用と未使用との状態をフラグにより設定する使用フラグ設定手段と、
ファイルを記憶するとき、前記フラグに基づいて未使用のブロックを判断し、対応する未使用ブロックの位置に記憶する記憶領域割当手段と
を備えることを特徴とするディスク記憶領域割当装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はディスク装置に係わり、特に磁気ディスク装置の記憶領域を管理する管理情報を少なくしてアクセス時間の向上を図る記憶領域割当に関する。
【０００２】
【従来の技術】
ディスクの記憶領域は一つ以上のセクタから構成するブロックを同一の記憶サイズで分割し、このブロックを単位にファイルの記憶を行う。ここでファイルとは、データセットやプログラム等を言う。ファイルの記憶サイズがブロックの記憶サイズの整数倍でない場合に余った領域ができ、この領域は何にも使われないので無駄なものとなる。従って、小さな記憶サイズのファイルを多数記憶すると、記憶領域の使用効率は著しく低下することになる。ブロックサイズを小さくするとこの問題は解決できるが、１回で記憶する量が小さいため記憶に要する時間が長くなるという問題が生ずる。そこでブロックサイズは数ＫＢ（キロバイト）程度とされているのが一般的である（１６ＫＢ、３２ＫＢ等もある）。図５の（ａ）はこのブロック分割の様子を模式的に示したもので、磁気ディスクの記憶領域を８×８の大きさに分割している。図中のＢ１１〜Ｂ８８は分割したブロックに付けた番号である。この分割した各ブロックに対応して記憶領域の位置情報をブロック位置テーブルにより管理している。図５（ｂ）は、このテーブルを示すもので、ブロックの始点および終点のアドレスをシリンダ番号、トラック番号、セクタ番号により表している。更に、これらのブロックの使用状態を管理するために、各ブロックに対応して使用中を”１”、未使用を”０”としたフラグをビットマップで表す使用フラグテーブルを持つことが一般に行われている。図５（ｃ）はこの使用フラグテーブルの例を示すもので、図５（ａ）の分割した各ブロックに対応している。ファイルを記憶領域に格納するとき、まず使用フラグテーブルにより未使用のブロックを見つけ、ブロック位置テーブルを用いてこのフラグに対応した記憶領域の位置にファイルを格納する。
【０００３】
ブロック位置テーブルおよび使用フラグテーブルは磁気ディスクの記憶領域を管理する情報であり、これらは磁気ディスク上のＶＴＯＣ（Ｖｏｌｕｍｅ　Ｔａｂｌｅ　Ｏｆ　Ｃｏｎｔｅｎｔｓ）領域に格納している。
【０００４】
【発明が解決しようとする課題】
上記に示したように、従来の記憶領域は同一の記憶サイズに均等に区切られたブロックを単位にファイルの記憶を行っており、そのブロックの記憶領域における位置や使用状態を管理する管理情報はブロックの数だけ必要となる。近年の磁気ディスクの記憶容量の増大は目覚ましいものがあるが、パーソナル・コンピュータでも数十ＧＢ（ギガバイト）の記憶容量の磁気ディスクが使用されるようになると管理情報の記憶容量も無視できないものとなっている。また、管理情報が多くなればファイルの記憶および読み出しに要するアクセス時間も必然的に多くなる、と言う問題も生ずる。
【０００５】
本発明は、少ない管理情報でアクセス時間の向上を図るディスク記憶領域割当方法およびディスク記憶領域割当装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
本発明の請求項１の原理を図１および図２を用いて説明する。本発明は、ブロック分割手順１、ブロック位置設定手順２、使用フラグ設定手順３および記憶領域割当手順４から構成する。
ブロック分割手順１は、記憶領域を複数の記憶サイズのブロックに分割するものである。図２（ａ）は、その例を模式的に示すもので、例えば最小のブロックＢ１およびＢ２から最大のブロックＢ７まで整数倍の記憶容量で大きくなるよう７個のブロックに分割した例である。また、図２（ｂ）は、最小のサイズのブロックを３２個（Ｂ１〜Ｂ３２）、最小サイズの２倍のサイズのブロックを８個（Ｂ３３〜Ｂ４０）、更にその２倍のサイズのブロックを４個（Ｂ４１〜Ｂ４４）の合計４４個のブロックに分割した例である。
【０００７】
ブロック位置設定手順２は、ブロック分割手順１で分割した各ブロックの記憶領域における位置、即ち始点、終点のアドレスを設定する。アドレスは、シリンダ番号、ヘッド番号、セクタ番号で表すことができ、図２（ｃ）に示すブロック位置テーブルはその例である。図２（ｃ）は、図２（ａ）のブロック分割を行ったときのブロック位置テーブルの例である。
【０００８】
使用フラグ設定手順３は、ブロック分割手順１で分割したブロックの使用、未使用の状態をフラグにより設定するもので、全てのブロックに対して、例えば使用は”１”、未使用は”０”を設定する。磁気ディスクの初期状態では、全てのブロックは未使用の”０”が設定されることになる。図２（ｄ）は、図２（ａ）のブロック分割を行ったときのブロックＢ１〜Ｂ７の各ブロックに対応したフラグの例を示している。
【０００９】
記憶領域割当手順４は、ファイルを磁気ディスクの記憶領域に記憶する場合に、使用フラグテーブルを参照して未使用のフラグのブロックを見つけ、次にブロック位置テーブルを参照してそのブロックの位置に記憶を行う。
以上の構成により、従来の同一サイズのブロックに分割した方法の管理情報（即ち、ブロック位置テーブルおよび使用フラグテーブルの情報）に対し、最小サイズ（但し、従来のブロック分割と同じサイズとする）から最大サイズまで各種サイズのブロックに分割したときの分割方法の管理情報は少なくできるので（例えば、同じ記憶領域を持つ磁気ディスクを図５（ａ）と図２（ａ）で分割したとき、従来では６４個の管理情報を必要としたが７個の管理情報の良いことになる）、ファイルの記憶、読み出しに要する時間の短縮が図れる。
【００１０】
次に、請求項２の原理を図３および図４を用いて説明する。本発明は、第一のブロック分割手順５、第二のブロック分割手順６、ブロック位置設定手順２、使用フラグ設定手順３および記憶領域割当手順４から構成する。
第一のブロック分割手順５は、まず記憶領域を所定の同一サイズで分割を行う。図４（ａ）はこの状態を模式的に示すものである。
【００１１】
第二のブロック分割手順６は、第一のブロック分割手順５で分割されたブロックに対して、更に複数の記憶サイズのブロックに分割を行う。図４（ｂ）は、同一サイズに分割されたブロックを更に請求項１のブロック分割例で述べたように最小のブロックの記憶容量の整数倍のサイズで大きくなるように分割した状態の例を示すものである。
【００１２】
ブロック位置設定手順２以降の使用フラグ設定手順３および記憶領域割当手順４は、前述と同一であるので説明を省略する。
以上の構成では、第二のブロック分割で行った各種サイズのブロックが記憶領域全体に繰り返されて分割されることになる。実際のファイルの記憶を行う場合には、大小のブロックを組み合わせて記憶することになるが、適切に未使用ブロックの割当を行うことによりヘッドの動きを少なくでき、短いアクセス時間で記憶または読み出しができる効果がある。例えば、請求項１のブロック分割例で示した図２（ｂ）の方法において、最小サイズを数十万個、その２倍のサイズを数万個、さらにその２倍のサイズを数千個となるように分割してもよい。しかし、この場合ブロックの大小を組み合わせて記憶しようとすると、記憶したファイルの位置は離れた位置に記憶されることになり、ヘッドの移動に時間を取られる問題が生ずる。請求項２の構成では、この影響を少なくすることができる。
【００１３】
【発明の実施の形態】
図６〜図１０を用いて本発明の実施形態を説明をする。図６は、全体の構成を示すもので、コンピュータ１０、磁気ディスク装置２０より成り、コンピュータ１０はブロック分割部１１、ファイル記憶部１２を、磁気ディスク装置２０はＶＴＯＣ領域２１と記憶領域２２を備える。さらに、ＶＴＯＣ領域にはブロック位置テーブル２３と使用フラグテーブル２４を備える。以下にそれぞれの内容を説明する。
【００１４】
ブロック分割部１１は、磁気ディスクの記憶領域２２を各種サイズのブロックに分割し、分割したブロックに対応してブロック位置テーブル２３と使用フラグテーブル２４を作成し、磁気ディスク装置のＶＴＯＣ領域２１にこれらのテーブルを格納するものである。
ファイル記憶部１２は、ファイルを磁気ディスク装置に記憶する際に、使用フラグテーブル２４を参照して未使用のブロックを検索し、ブロック位置テーブル２３を参照して該当する未使用ブロックの位置に記憶を行う。
【００１５】
ＶＴＯＣ領域２１は、磁気ディスク上の一部に記憶領域の管理情報を記憶して置く領域である。
記憶領域２２は、ファイルを記憶する領域である。
ブロック位置テーブル２３は、各種サイズに分割されたブロックの記憶領域の位置を示すテーブルである。ブロック分割したイメージおよび作成したブロック位置テーブル２３の例を図７（ａ）と図７（ｂ）に示す。図７（ａ）は、１０ＧＢの記憶領域を６４ＫＢの同一サイズに分割（ここでは、ジャイアントブロックと称する）したイメージを太線で示し、その中を１ＫＢサイズから整数倍になるようにブロックに分割したイメージを細線で示している。図中のＢ１、Ｂ２・・・はブロックの番号である。即ち、最初の６４ＫＢのジャイアントブロック（ジャイアントブロック番号を０とする）は、Ｂ１〜Ｂ７の７つのブロックに分割されたことになる。図７（ｂ）は、ブロック位置テーブル２３を示すもので、Ｂ１から順番に記憶領域の始点と終点の位置をシリンダ番号、ヘッダ番号、セクタ番号で示している。更に、ジャイアントブロックの番号とブロックの記憶容量を示している。例えば、Ｂ１のブロックの始点と終点はそれぞれ（１，０，０）と（１，０，３）であり、ジャイアントブロック番号は「０」で「１ＫＢ」の記憶サイズを有するものである。
【００１６】
使用フラグテーブル２４は、各種サイズに分割されたブロックの使用状態をフラグによって示すテーブルである。図７（ｃ）は、使用フラグテーブル２４の例を示すもので、Ｂ１〜Ｂｎの各ブロックの使用状態を”０（未使用）”と”１（使用）”のフラグで表している。本例では、ブロック分割を行った直後の状態で全ブロックが未使用の状態を示している。
【００１７】
次に、ブロック分割部１１の処理について図８のフローを用いて説明する。本フローでも前述した条件で分割（１０ＧＢの記憶領域を６４ＫＢの同一サイズに分割し、更に分割した領域を最小１ＫＢのブロックから整数倍の大きさで増大するサイズになるように分割）を行うこととする。
図８のフローにおいて、まず記憶領域の開始位置を決める。ここでは、開始位置をシリンダ番号「１」、ヘッド番号「０」、セクタ番号「０」とする。次にジャイアントブロックの番号（ＮＧＢ）をブロック位置テーブル２３に記憶するため、初期値として「０」を与える。（Ｓ１、Ｓ２）。
【００１８】
次に、１ＫＢ、２ＫＢ、４ＫＢ、８ＫＢ、１６ＫＢ、３２ＫＢの記憶サイズを１ジャイアントブロックとし（但し、１ＫＢのブロックは２個とする）、最小のサイズのブロックから順番にそれぞれの始点と終点の記憶領域の位置を求める。最初の１ＫＢの始点と終点の記憶領域の位置はシリンダ番号、ヘッド番号、セクタ番号の順に（１，０，０）と（１，０，３）となる（始点位置はステップＳ１で定めたもの、終点は１セクタ２５６Ｂ（バイト）として、記憶サイズの１ＫＢの４セクタ分を始点の位置に加えている）。次の１ＫＢのブロックの位置は（１，０，４）（１，０，７）となる。このようにして１ジャイアントブロック分の位置を計算する。各ブロックの始点位置、終点位置、ジャイアントブロック番号、ブロックサイズ（ＫＢ単位）をブロック位置テーブルに記憶する（図７（ｂ）参照）。続いてジャイアントブロック番号をカウントアップし、記憶領域の全域を終了するまで繰り返す。ここでジャイアントブロックの中で求めたブロックの最終の終点位置を記憶して置き、次のジャイアントブロックの中の最小のブロックの始点位置の計算は、この記憶した終点位置の次のセクタ位置を始点位置とする。（Ｓ３〜Ｓ６）。
【００１９】
以上でブロック位置テーブルの作成は終了し、続いて使用フラグテーブル２４の作成を行う。記憶領域はブロック分割を行って未使用の状態にあるので、全てのブロックに対応して未使用である”０”とした使用フラグテーブル２４を作成する。Ｓ５のステップで作成したブロック位置テーブル２３とＳ７のステップで作成した使用フラグテーブル２４を磁気ディスク装置のＶＴＯＣ領域２１に格納する。（Ｓ７、Ｓ８）。
【００２０】
次に、ファイル記憶部１２の処理について図９のフローを用いて説明する。ここでは、記憶を行うファイルの記憶サイズを２０．５ＫＢとし、ジャイアントブロック番号「０」が全て未使用であったので、この中で記憶するものとする。まず、記憶するファイルの記憶容量（ＤＳＳ）を求め（即ち、ＤＳＳ＝２０．５ＫＢ）、次に使用フラグテーブル２４を用いてジャイアントブロックの未使用のブロックを知り、ブロック位置テーブル２３を用いてジャイアントブロックとしての未使用記憶容量を求める。（Ｓ１１、Ｓ１２）。
【００２１】
ジャイアントブロック番号の若い順番に未使用記憶容量がＤＳＳを収容できるか調べ、収容できればそのジャイアントブロックを記憶領域の割当の対象とする。収容できなければ複数のジャイアントブロックを選びその合計がＤＳＳを収容できるジャイアントブロックを記憶領域割当の対象とする（即ち、記憶領域割当のジャイアントブロック番号は「０」で、未使用記憶容量６４ＫＢである）。（Ｓ１３、Ｓ１４）。
【００２２】
記憶領域割当対象のジャイアントブロック内の小さな記憶サイズの未使用ブロック（即ち、１ＫＢのＢ１）から順番に割当を行い、割当た合計の記憶サイズがＤＳＳを上回ったら割当を終了する。このとき、割当たブロックを「割当候補ブロック」として記憶する。図１０（ａ）に本実施形態の割当候補ブロックの例を示す。Ｂ１〜Ｂ７がジャイアントブロック番号「０」のブロックで、網点で示したブロック（Ｂ１〜Ｂ６）が割当候補ブロックである。（Ｓ１５、Ｓ１６）。
【００２３】
割当候補ブロックの中から、ＤＳＳに最も内輪で大きいブロックを選ぶ。そのブロックを「割当決定ブロック」として記憶し、割当候補ブロックから除く。ＤＳＳから割当決定ブロックのサイズを除き、この中で内輪で最も大きいブロックを求める。これを、内輪で最も大きいブロックがなくなるまで繰り返す。（Ｓ１７〜Ｓ２０）。
【００２４】
内輪で最も大きいブロックがなくなったら、割当候補ブロックの中から最小のブロックを割当決定ブロックとする。図１０（ｂ）は、割当決定ブロックを網点で示したものである（割当決定ブロックとなったＢ１、Ｂ４、Ｂ６の記憶サイズの合計は２１ＫＢである）。以上でファイルを記憶するブロックの決定を終了し、決定したブロックの位置をブロック位置テーブル２３より求め、その位置にファイルの記憶を行う。そして、割当決定ブロックに対して、使用中であることを示すために使用フラグテーブル２４のフラグを「１」とする。図１０（ｃ）は、このときの使用フラグテーブルの例を示している。（Ｓ２１〜Ｓ２３）。
【００２５】
以上、本発明を実施形態において磁気ディスクで具体的に説明したが、この実施形態で示した例に限定されるものではない。
（付記１）　ディスク媒体上の記憶領域を複数のサイズのブロックに分割するブロック分割手順と、
分割されたブロックの記憶領域の位置を設定するブロック位置設定手順と、
分割されたブロックに対応して使用と未使用との状態をフラグにより設定する使用フラグ設定手順と、
ファイルを記憶するとき、前記フラグに基づいて未使用のブロックを判断し、対応する未使用ブロックの位置に記憶する記憶領域割当手順と
を有することを特徴とするディスク記憶領域割当方法。
【００２６】
（付記２）　ディスク媒体上の記憶領域を所定のサイズのブロックに分割する第一のブロック分割手順と、
第一のブロック分割手段で分割した各ブロックを、複数のサイズのブロックに分割する第二のブロック分割手順と、
第二のブロック分割手段で分割した各ブロックの記憶領域の位置を設定するブロック位置設定手順と、
第二のブロック分割手段で分割した各ブロックに対応して使用と未使用との状態をフラグにより設定する使用フラグ設定手順と、
ファイルを記憶するとき、前記フラグに基づいて未使用のブロックを判断し、対応する未使用ブロックの位置に記憶する記憶領域割当手順と
を有することを特徴とするディスク記憶領域割当方法。
【００２７】
（付記３）　ディスク媒体上の記憶領域を所定のサイズのブロックに分割する第一のブロック分割手段と、
第一のブロック分割手段で分割した各ブロックを、複数のサイズのブロックに分割する第二のブロック分割手段と、
第二のブロック分割手段で分割した各ブロックの記憶領域の位置を設定するブロック位置設定手段と、
第二のブロック分割手段で分割した各ブロックに対応して使用と未使用との状態をフラグにより設定する使用フラグ設定手段と、
ファイルを記憶するとき、前記フラグに基づいて未使用のブロックを判断し、対応する未使用ブロックの位置に記憶する記憶領域割当手段と
を備えることを特徴とするディスク記憶領域割当装置。
【００２８】
（付記４）　ディスク媒体上の記憶領域を複数のサイズのブロックに分割するブロック分割手段と、
分割されたブロックの記憶領域の位置を設定するブロック位置設定手段と、
分割されたブロックに対応して使用と未使用との状態をフラグにより設定する使用フラグ設定手段と、
ファイルを記憶するとき、前記フラグに基づいて未使用のブロックを判断し、対応する未使用ブロックの位置に記憶する記憶領域割当手段と
を備えることを特徴とするディスク記憶領域割当装置。
【００２９】
（付記５）　ディスク媒体上の記憶領域を所定のサイズのブロックに分割する第一のブロック分割手順と、
第一のブロック分割手段で分割した各ブロックを、複数のサイズのブロックに分割する第二のブロック分割手順と、
第二のブロック分割手段で分割した各ブロックの記憶領域の位置を設定するブロック位置設定手順と、
第二のブロック分割手段で分割した各ブロックに対応して使用と未使用との状態をフラグにより設定する使用フラグ設定手順と、
ファイルを記憶するとき、前記フラグに基づいて未使用のブロックを判断し、対応する未使用ブロックの位置に記憶する記憶領域割当手順と
をコンピュータに実行させることを特徴とするディスク記憶領域割当プログラム。
【００３０】
【発明の効果】
本発明のディスク記憶領域割当方法およびディスク記憶領域割当装置によれば、ディスク装置の記憶領域の管理情報を少なくでき、このためにファイルの記憶および呼び出しに要する時間（アクセス時間）の短縮を図ることができる。
【図面の簡単な説明】
【図１】請求項１の原理図である。
【図２】請求項１のブロック分割と管理情報（フラグテーブル、ブロック位置テーブル）　である。
【図３】請求項２の原理図である。
【図４】請求項２のブロック分割である。
【図５】従来の記憶領域のブロック分割と管理情報である。
【図６】磁気ディスク記憶領域割当装置の実施例である。
【図７】ブロック分割の実施例である。
【図８】ブロック分割部の処理フロー例である。
【図９】ファイル記憶部の処理フロー例である。
【図１０】本実施形態における割当候補ブロック、割当決定ブロックおよび使用フラグテーブル
【符号の説明】
１：ブロック分割手順
２：ブロック位置設定手順
３：使用フラグ設定手順
４：記憶領域割当手順
５：第一のブロック分割手順
６：第二のブロック分割手順
１０：コンピュータ
１１：ブロック分割部
１２：ファイル記憶部
２０：磁気ディスク装置
２１：ＶＴＯＣ領域
２２：記憶領域
２３：ブロック位置テーブル
２４：使用フラグテーブル
【図１】
2004021338.tif 000003
【図２】
2004021338.tif 000004
【図３】
2004021338.tif 000005
【図４】
2004021338.tif 000006
【図５】
2004021338.tif 000007
【図６】
2004021338.tif 000008
【図７】
2004021338.tif 000009
【図８】
2004021338.tif 000010
【図９】
2004021338.tif 000011
【図１０】
2004021338.tif 000012