JP2004021338A - ディスク記憶領域割当方法およびディスク記憶領域割当装置 - Google Patents
ディスク記憶領域割当方法およびディスク記憶領域割当装置 Download PDFInfo
- Publication number
- JP2004021338A JP2004021338A JP2002171876A JP2002171876A JP2004021338A JP 2004021338 A JP2004021338 A JP 2004021338A JP 2002171876 A JP2002171876 A JP 2002171876A JP 2002171876 A JP2002171876 A JP 2002171876A JP 2004021338 A JP2004021338 A JP 2004021338A
- Authority
- JP
- Japan
- Prior art keywords
- block
- storage area
- blocks
- unused
- divided
- 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.)
- Withdrawn
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
【課題】ディスクの記憶領域の割当に関し、少ない管理情報でアクセスの向上が図れるディスク記憶領域割当方法およびディスク記憶領域割当装置を提供することを目的とする。
【解決手段】ディスクの記憶領域を各種記憶サイズのブロックに分割し、分割したブロックの記憶領域上の位置の設定および各ブロックの使用状態を表すフラグの設定を行う。ファイルを記憶するとき、フラグにより未使用のブロックを判断し、対応する未使用ブロックの記憶領域の位置に記憶するように構成する。
【選択図】 図1
【解決手段】ディスクの記憶領域を各種記憶サイズのブロックに分割し、分割したブロックの記憶領域上の位置の設定および各ブロックの使用状態を表すフラグの設定を行う。ファイルを記憶するとき、フラグにより未使用のブロックを判断し、対応する未使用ブロックの記憶領域の位置に記憶するように構成する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明はディスク装置に係わり、特に磁気ディスク装置の記憶領域を管理する管理情報を少なくしてアクセス時間の向上を図る記憶領域割当に関する。
【0002】
【従来の技術】
ディスクの記憶領域は一つ以上のセクタから構成するブロックを同一の記憶サイズで分割し、このブロックを単位にファイルの記憶を行う。ここでファイルとは、データセットやプログラム等を言う。ファイルの記憶サイズがブロックの記憶サイズの整数倍でない場合に余った領域ができ、この領域は何にも使われないので無駄なものとなる。従って、小さな記憶サイズのファイルを多数記憶すると、記憶領域の使用効率は著しく低下することになる。ブロックサイズを小さくするとこの問題は解決できるが、1回で記憶する量が小さいため記憶に要する時間が長くなるという問題が生ずる。そこでブロックサイズは数KB(キロバイト)程度とされているのが一般的である(16KB、32KB等もある)。図5の(a)はこのブロック分割の様子を模式的に示したもので、磁気ディスクの記憶領域を8×8の大きさに分割している。図中のB11〜B88は分割したブロックに付けた番号である。この分割した各ブロックに対応して記憶領域の位置情報をブロック位置テーブルにより管理している。図5(b)は、このテーブルを示すもので、ブロックの始点および終点のアドレスをシリンダ番号、トラック番号、セクタ番号により表している。更に、これらのブロックの使用状態を管理するために、各ブロックに対応して使用中を”1”、未使用を”0”としたフラグをビットマップで表す使用フラグテーブルを持つことが一般に行われている。図5(c)はこの使用フラグテーブルの例を示すもので、図5(a)の分割した各ブロックに対応している。ファイルを記憶領域に格納するとき、まず使用フラグテーブルにより未使用のブロックを見つけ、ブロック位置テーブルを用いてこのフラグに対応した記憶領域の位置にファイルを格納する。
【0003】
ブロック位置テーブルおよび使用フラグテーブルは磁気ディスクの記憶領域を管理する情報であり、これらは磁気ディスク上のVTOC(Volume Table Of Contents)領域に格納している。
【0004】
【発明が解決しようとする課題】
上記に示したように、従来の記憶領域は同一の記憶サイズに均等に区切られたブロックを単位にファイルの記憶を行っており、そのブロックの記憶領域における位置や使用状態を管理する管理情報はブロックの数だけ必要となる。近年の磁気ディスクの記憶容量の増大は目覚ましいものがあるが、パーソナル・コンピュータでも数十GB(ギガバイト)の記憶容量の磁気ディスクが使用されるようになると管理情報の記憶容量も無視できないものとなっている。また、管理情報が多くなればファイルの記憶および読み出しに要するアクセス時間も必然的に多くなる、と言う問題も生ずる。
【0005】
本発明は、少ない管理情報でアクセス時間の向上を図るディスク記憶領域割当方法およびディスク記憶領域割当装置を提供することを目的とする。
【0006】
【課題を解決するための手段】
本発明の請求項1の原理を図1および図2を用いて説明する。本発明は、ブロック分割手順1、ブロック位置設定手順2、使用フラグ設定手順3および記憶領域割当手順4から構成する。
ブロック分割手順1は、記憶領域を複数の記憶サイズのブロックに分割するものである。図2(a)は、その例を模式的に示すもので、例えば最小のブロックB1およびB2から最大のブロックB7まで整数倍の記憶容量で大きくなるよう7個のブロックに分割した例である。また、図2(b)は、最小のサイズのブロックを32個(B1〜B32)、最小サイズの2倍のサイズのブロックを8個(B33〜B40)、更にその2倍のサイズのブロックを4個(B41〜B44)の合計44個のブロックに分割した例である。
【0007】
ブロック位置設定手順2は、ブロック分割手順1で分割した各ブロックの記憶領域における位置、即ち始点、終点のアドレスを設定する。アドレスは、シリンダ番号、ヘッド番号、セクタ番号で表すことができ、図2(c)に示すブロック位置テーブルはその例である。図2(c)は、図2(a)のブロック分割を行ったときのブロック位置テーブルの例である。
【0008】
使用フラグ設定手順3は、ブロック分割手順1で分割したブロックの使用、未使用の状態をフラグにより設定するもので、全てのブロックに対して、例えば使用は”1”、未使用は”0”を設定する。磁気ディスクの初期状態では、全てのブロックは未使用の”0”が設定されることになる。図2(d)は、図2(a)のブロック分割を行ったときのブロックB1〜B7の各ブロックに対応したフラグの例を示している。
【0009】
記憶領域割当手順4は、ファイルを磁気ディスクの記憶領域に記憶する場合に、使用フラグテーブルを参照して未使用のフラグのブロックを見つけ、次にブロック位置テーブルを参照してそのブロックの位置に記憶を行う。
以上の構成により、従来の同一サイズのブロックに分割した方法の管理情報(即ち、ブロック位置テーブルおよび使用フラグテーブルの情報)に対し、最小サイズ(但し、従来のブロック分割と同じサイズとする)から最大サイズまで各種サイズのブロックに分割したときの分割方法の管理情報は少なくできるので(例えば、同じ記憶領域を持つ磁気ディスクを図5(a)と図2(a)で分割したとき、従来では64個の管理情報を必要としたが7個の管理情報の良いことになる)、ファイルの記憶、読み出しに要する時間の短縮が図れる。
【0010】
次に、請求項2の原理を図3および図4を用いて説明する。本発明は、第一のブロック分割手順5、第二のブロック分割手順6、ブロック位置設定手順2、使用フラグ設定手順3および記憶領域割当手順4から構成する。
第一のブロック分割手順5は、まず記憶領域を所定の同一サイズで分割を行う。図4(a)はこの状態を模式的に示すものである。
【0011】
第二のブロック分割手順6は、第一のブロック分割手順5で分割されたブロックに対して、更に複数の記憶サイズのブロックに分割を行う。図4(b)は、同一サイズに分割されたブロックを更に請求項1のブロック分割例で述べたように最小のブロックの記憶容量の整数倍のサイズで大きくなるように分割した状態の例を示すものである。
【0012】
ブロック位置設定手順2以降の使用フラグ設定手順3および記憶領域割当手順4は、前述と同一であるので説明を省略する。
以上の構成では、第二のブロック分割で行った各種サイズのブロックが記憶領域全体に繰り返されて分割されることになる。実際のファイルの記憶を行う場合には、大小のブロックを組み合わせて記憶することになるが、適切に未使用ブロックの割当を行うことによりヘッドの動きを少なくでき、短いアクセス時間で記憶または読み出しができる効果がある。例えば、請求項1のブロック分割例で示した図2(b)の方法において、最小サイズを数十万個、その2倍のサイズを数万個、さらにその2倍のサイズを数千個となるように分割してもよい。しかし、この場合ブロックの大小を組み合わせて記憶しようとすると、記憶したファイルの位置は離れた位置に記憶されることになり、ヘッドの移動に時間を取られる問題が生ずる。請求項2の構成では、この影響を少なくすることができる。
【0013】
【発明の実施の形態】
図6〜図10を用いて本発明の実施形態を説明をする。図6は、全体の構成を示すもので、コンピュータ10、磁気ディスク装置20より成り、コンピュータ10はブロック分割部11、ファイル記憶部12を、磁気ディスク装置20はVTOC領域21と記憶領域22を備える。さらに、VTOC領域にはブロック位置テーブル23と使用フラグテーブル24を備える。以下にそれぞれの内容を説明する。
【0014】
ブロック分割部11は、磁気ディスクの記憶領域22を各種サイズのブロックに分割し、分割したブロックに対応してブロック位置テーブル23と使用フラグテーブル24を作成し、磁気ディスク装置のVTOC領域21にこれらのテーブルを格納するものである。
ファイル記憶部12は、ファイルを磁気ディスク装置に記憶する際に、使用フラグテーブル24を参照して未使用のブロックを検索し、ブロック位置テーブル23を参照して該当する未使用ブロックの位置に記憶を行う。
【0015】
VTOC領域21は、磁気ディスク上の一部に記憶領域の管理情報を記憶して置く領域である。
記憶領域22は、ファイルを記憶する領域である。
ブロック位置テーブル23は、各種サイズに分割されたブロックの記憶領域の位置を示すテーブルである。ブロック分割したイメージおよび作成したブロック位置テーブル23の例を図7(a)と図7(b)に示す。図7(a)は、10GBの記憶領域を64KBの同一サイズに分割(ここでは、ジャイアントブロックと称する)したイメージを太線で示し、その中を1KBサイズから整数倍になるようにブロックに分割したイメージを細線で示している。図中のB1、B2・・・はブロックの番号である。即ち、最初の64KBのジャイアントブロック(ジャイアントブロック番号を0とする)は、B1〜B7の7つのブロックに分割されたことになる。図7(b)は、ブロック位置テーブル23を示すもので、B1から順番に記憶領域の始点と終点の位置をシリンダ番号、ヘッダ番号、セクタ番号で示している。更に、ジャイアントブロックの番号とブロックの記憶容量を示している。例えば、B1のブロックの始点と終点はそれぞれ(1,0,0)と(1,0,3)であり、ジャイアントブロック番号は「0」で「1KB」の記憶サイズを有するものである。
【0016】
使用フラグテーブル24は、各種サイズに分割されたブロックの使用状態をフラグによって示すテーブルである。図7(c)は、使用フラグテーブル24の例を示すもので、B1〜Bnの各ブロックの使用状態を”0(未使用)”と”1(使用)”のフラグで表している。本例では、ブロック分割を行った直後の状態で全ブロックが未使用の状態を示している。
【0017】
次に、ブロック分割部11の処理について図8のフローを用いて説明する。本フローでも前述した条件で分割(10GBの記憶領域を64KBの同一サイズに分割し、更に分割した領域を最小1KBのブロックから整数倍の大きさで増大するサイズになるように分割)を行うこととする。
図8のフローにおいて、まず記憶領域の開始位置を決める。ここでは、開始位置をシリンダ番号「1」、ヘッド番号「0」、セクタ番号「0」とする。次にジャイアントブロックの番号(NGB)をブロック位置テーブル23に記憶するため、初期値として「0」を与える。(S1、S2)。
【0018】
次に、1KB、2KB、4KB、8KB、16KB、32KBの記憶サイズを1ジャイアントブロックとし(但し、1KBのブロックは2個とする)、最小のサイズのブロックから順番にそれぞれの始点と終点の記憶領域の位置を求める。最初の1KBの始点と終点の記憶領域の位置はシリンダ番号、ヘッド番号、セクタ番号の順に(1,0,0)と(1,0,3)となる(始点位置はステップS1で定めたもの、終点は1セクタ256B(バイト)として、記憶サイズの1KBの4セクタ分を始点の位置に加えている)。次の1KBのブロックの位置は(1,0,4)(1,0,7)となる。このようにして1ジャイアントブロック分の位置を計算する。各ブロックの始点位置、終点位置、ジャイアントブロック番号、ブロックサイズ(KB単位)をブロック位置テーブルに記憶する(図7(b)参照)。続いてジャイアントブロック番号をカウントアップし、記憶領域の全域を終了するまで繰り返す。ここでジャイアントブロックの中で求めたブロックの最終の終点位置を記憶して置き、次のジャイアントブロックの中の最小のブロックの始点位置の計算は、この記憶した終点位置の次のセクタ位置を始点位置とする。(S3〜S6)。
【0019】
以上でブロック位置テーブルの作成は終了し、続いて使用フラグテーブル24の作成を行う。記憶領域はブロック分割を行って未使用の状態にあるので、全てのブロックに対応して未使用である”0”とした使用フラグテーブル24を作成する。S5のステップで作成したブロック位置テーブル23とS7のステップで作成した使用フラグテーブル24を磁気ディスク装置のVTOC領域21に格納する。(S7、S8)。
【0020】
次に、ファイル記憶部12の処理について図9のフローを用いて説明する。ここでは、記憶を行うファイルの記憶サイズを20.5KBとし、ジャイアントブロック番号「0」が全て未使用であったので、この中で記憶するものとする。まず、記憶するファイルの記憶容量(DSS)を求め(即ち、DSS=20.5KB)、次に使用フラグテーブル24を用いてジャイアントブロックの未使用のブロックを知り、ブロック位置テーブル23を用いてジャイアントブロックとしての未使用記憶容量を求める。(S11、S12)。
【0021】
ジャイアントブロック番号の若い順番に未使用記憶容量がDSSを収容できるか調べ、収容できればそのジャイアントブロックを記憶領域の割当の対象とする。収容できなければ複数のジャイアントブロックを選びその合計がDSSを収容できるジャイアントブロックを記憶領域割当の対象とする(即ち、記憶領域割当のジャイアントブロック番号は「0」で、未使用記憶容量64KBである)。(S13、S14)。
【0022】
記憶領域割当対象のジャイアントブロック内の小さな記憶サイズの未使用ブロック(即ち、1KBのB1)から順番に割当を行い、割当た合計の記憶サイズがDSSを上回ったら割当を終了する。このとき、割当たブロックを「割当候補ブロック」として記憶する。図10(a)に本実施形態の割当候補ブロックの例を示す。B1〜B7がジャイアントブロック番号「0」のブロックで、網点で示したブロック(B1〜B6)が割当候補ブロックである。(S15、S16)。
【0023】
割当候補ブロックの中から、DSSに最も内輪で大きいブロックを選ぶ。そのブロックを「割当決定ブロック」として記憶し、割当候補ブロックから除く。DSSから割当決定ブロックのサイズを除き、この中で内輪で最も大きいブロックを求める。これを、内輪で最も大きいブロックがなくなるまで繰り返す。(S17〜S20)。
【0024】
内輪で最も大きいブロックがなくなったら、割当候補ブロックの中から最小のブロックを割当決定ブロックとする。図10(b)は、割当決定ブロックを網点で示したものである(割当決定ブロックとなったB1、B4、B6の記憶サイズの合計は21KBである)。以上でファイルを記憶するブロックの決定を終了し、決定したブロックの位置をブロック位置テーブル23より求め、その位置にファイルの記憶を行う。そして、割当決定ブロックに対して、使用中であることを示すために使用フラグテーブル24のフラグを「1」とする。図10(c)は、このときの使用フラグテーブルの例を示している。(S21〜S23)。
【0025】
以上、本発明を実施形態において磁気ディスクで具体的に説明したが、この実施形態で示した例に限定されるものではない。
(付記1) ディスク媒体上の記憶領域を複数のサイズのブロックに分割するブロック分割手順と、
分割されたブロックの記憶領域の位置を設定するブロック位置設定手順と、
分割されたブロックに対応して使用と未使用との状態をフラグにより設定する使用フラグ設定手順と、
ファイルを記憶するとき、前記フラグに基づいて未使用のブロックを判断し、対応する未使用ブロックの位置に記憶する記憶領域割当手順と
を有することを特徴とするディスク記憶領域割当方法。
【0026】
(付記2) ディスク媒体上の記憶領域を所定のサイズのブロックに分割する第一のブロック分割手順と、
第一のブロック分割手段で分割した各ブロックを、複数のサイズのブロックに分割する第二のブロック分割手順と、
第二のブロック分割手段で分割した各ブロックの記憶領域の位置を設定するブロック位置設定手順と、
第二のブロック分割手段で分割した各ブロックに対応して使用と未使用との状態をフラグにより設定する使用フラグ設定手順と、
ファイルを記憶するとき、前記フラグに基づいて未使用のブロックを判断し、対応する未使用ブロックの位置に記憶する記憶領域割当手順と
を有することを特徴とするディスク記憶領域割当方法。
【0027】
(付記3) ディスク媒体上の記憶領域を所定のサイズのブロックに分割する第一のブロック分割手段と、
第一のブロック分割手段で分割した各ブロックを、複数のサイズのブロックに分割する第二のブロック分割手段と、
第二のブロック分割手段で分割した各ブロックの記憶領域の位置を設定するブロック位置設定手段と、
第二のブロック分割手段で分割した各ブロックに対応して使用と未使用との状態をフラグにより設定する使用フラグ設定手段と、
ファイルを記憶するとき、前記フラグに基づいて未使用のブロックを判断し、対応する未使用ブロックの位置に記憶する記憶領域割当手段と
を備えることを特徴とするディスク記憶領域割当装置。
【0028】
(付記4) ディスク媒体上の記憶領域を複数のサイズのブロックに分割するブロック分割手段と、
分割されたブロックの記憶領域の位置を設定するブロック位置設定手段と、
分割されたブロックに対応して使用と未使用との状態をフラグにより設定する使用フラグ設定手段と、
ファイルを記憶するとき、前記フラグに基づいて未使用のブロックを判断し、対応する未使用ブロックの位置に記憶する記憶領域割当手段と
を備えることを特徴とするディスク記憶領域割当装置。
【0029】
(付記5) ディスク媒体上の記憶領域を所定のサイズのブロックに分割する第一のブロック分割手順と、
第一のブロック分割手段で分割した各ブロックを、複数のサイズのブロックに分割する第二のブロック分割手順と、
第二のブロック分割手段で分割した各ブロックの記憶領域の位置を設定するブロック位置設定手順と、
第二のブロック分割手段で分割した各ブロックに対応して使用と未使用との状態をフラグにより設定する使用フラグ設定手順と、
ファイルを記憶するとき、前記フラグに基づいて未使用のブロックを判断し、対応する未使用ブロックの位置に記憶する記憶領域割当手順と
をコンピュータに実行させることを特徴とするディスク記憶領域割当プログラム。
【0030】
【発明の効果】
本発明のディスク記憶領域割当方法およびディスク記憶領域割当装置によれば、ディスク装置の記憶領域の管理情報を少なくでき、このためにファイルの記憶および呼び出しに要する時間(アクセス時間)の短縮を図ることができる。
【図面の簡単な説明】
【図1】請求項1の原理図である。
【図2】請求項1のブロック分割と管理情報(フラグテーブル、ブロック位置テーブル) である。
【図3】請求項2の原理図である。
【図4】請求項2のブロック分割である。
【図5】従来の記憶領域のブロック分割と管理情報である。
【図6】磁気ディスク記憶領域割当装置の実施例である。
【図7】ブロック分割の実施例である。
【図8】ブロック分割部の処理フロー例である。
【図9】ファイル記憶部の処理フロー例である。
【図10】本実施形態における割当候補ブロック、割当決定ブロックおよび使用フラグテーブル
【符号の説明】
1:ブロック分割手順
2:ブロック位置設定手順
3:使用フラグ設定手順
4:記憶領域割当手順
5:第一のブロック分割手順
6:第二のブロック分割手順
10:コンピュータ
11:ブロック分割部
12:ファイル記憶部
20:磁気ディスク装置
21:VTOC領域
22:記憶領域
23:ブロック位置テーブル
24:使用フラグテーブル
【発明の属する技術分野】
本発明はディスク装置に係わり、特に磁気ディスク装置の記憶領域を管理する管理情報を少なくしてアクセス時間の向上を図る記憶領域割当に関する。
【0002】
【従来の技術】
ディスクの記憶領域は一つ以上のセクタから構成するブロックを同一の記憶サイズで分割し、このブロックを単位にファイルの記憶を行う。ここでファイルとは、データセットやプログラム等を言う。ファイルの記憶サイズがブロックの記憶サイズの整数倍でない場合に余った領域ができ、この領域は何にも使われないので無駄なものとなる。従って、小さな記憶サイズのファイルを多数記憶すると、記憶領域の使用効率は著しく低下することになる。ブロックサイズを小さくするとこの問題は解決できるが、1回で記憶する量が小さいため記憶に要する時間が長くなるという問題が生ずる。そこでブロックサイズは数KB(キロバイト)程度とされているのが一般的である(16KB、32KB等もある)。図5の(a)はこのブロック分割の様子を模式的に示したもので、磁気ディスクの記憶領域を8×8の大きさに分割している。図中のB11〜B88は分割したブロックに付けた番号である。この分割した各ブロックに対応して記憶領域の位置情報をブロック位置テーブルにより管理している。図5(b)は、このテーブルを示すもので、ブロックの始点および終点のアドレスをシリンダ番号、トラック番号、セクタ番号により表している。更に、これらのブロックの使用状態を管理するために、各ブロックに対応して使用中を”1”、未使用を”0”としたフラグをビットマップで表す使用フラグテーブルを持つことが一般に行われている。図5(c)はこの使用フラグテーブルの例を示すもので、図5(a)の分割した各ブロックに対応している。ファイルを記憶領域に格納するとき、まず使用フラグテーブルにより未使用のブロックを見つけ、ブロック位置テーブルを用いてこのフラグに対応した記憶領域の位置にファイルを格納する。
【0003】
ブロック位置テーブルおよび使用フラグテーブルは磁気ディスクの記憶領域を管理する情報であり、これらは磁気ディスク上のVTOC(Volume Table Of Contents)領域に格納している。
【0004】
【発明が解決しようとする課題】
上記に示したように、従来の記憶領域は同一の記憶サイズに均等に区切られたブロックを単位にファイルの記憶を行っており、そのブロックの記憶領域における位置や使用状態を管理する管理情報はブロックの数だけ必要となる。近年の磁気ディスクの記憶容量の増大は目覚ましいものがあるが、パーソナル・コンピュータでも数十GB(ギガバイト)の記憶容量の磁気ディスクが使用されるようになると管理情報の記憶容量も無視できないものとなっている。また、管理情報が多くなればファイルの記憶および読み出しに要するアクセス時間も必然的に多くなる、と言う問題も生ずる。
【0005】
本発明は、少ない管理情報でアクセス時間の向上を図るディスク記憶領域割当方法およびディスク記憶領域割当装置を提供することを目的とする。
【0006】
【課題を解決するための手段】
本発明の請求項1の原理を図1および図2を用いて説明する。本発明は、ブロック分割手順1、ブロック位置設定手順2、使用フラグ設定手順3および記憶領域割当手順4から構成する。
ブロック分割手順1は、記憶領域を複数の記憶サイズのブロックに分割するものである。図2(a)は、その例を模式的に示すもので、例えば最小のブロックB1およびB2から最大のブロックB7まで整数倍の記憶容量で大きくなるよう7個のブロックに分割した例である。また、図2(b)は、最小のサイズのブロックを32個(B1〜B32)、最小サイズの2倍のサイズのブロックを8個(B33〜B40)、更にその2倍のサイズのブロックを4個(B41〜B44)の合計44個のブロックに分割した例である。
【0007】
ブロック位置設定手順2は、ブロック分割手順1で分割した各ブロックの記憶領域における位置、即ち始点、終点のアドレスを設定する。アドレスは、シリンダ番号、ヘッド番号、セクタ番号で表すことができ、図2(c)に示すブロック位置テーブルはその例である。図2(c)は、図2(a)のブロック分割を行ったときのブロック位置テーブルの例である。
【0008】
使用フラグ設定手順3は、ブロック分割手順1で分割したブロックの使用、未使用の状態をフラグにより設定するもので、全てのブロックに対して、例えば使用は”1”、未使用は”0”を設定する。磁気ディスクの初期状態では、全てのブロックは未使用の”0”が設定されることになる。図2(d)は、図2(a)のブロック分割を行ったときのブロックB1〜B7の各ブロックに対応したフラグの例を示している。
【0009】
記憶領域割当手順4は、ファイルを磁気ディスクの記憶領域に記憶する場合に、使用フラグテーブルを参照して未使用のフラグのブロックを見つけ、次にブロック位置テーブルを参照してそのブロックの位置に記憶を行う。
以上の構成により、従来の同一サイズのブロックに分割した方法の管理情報(即ち、ブロック位置テーブルおよび使用フラグテーブルの情報)に対し、最小サイズ(但し、従来のブロック分割と同じサイズとする)から最大サイズまで各種サイズのブロックに分割したときの分割方法の管理情報は少なくできるので(例えば、同じ記憶領域を持つ磁気ディスクを図5(a)と図2(a)で分割したとき、従来では64個の管理情報を必要としたが7個の管理情報の良いことになる)、ファイルの記憶、読み出しに要する時間の短縮が図れる。
【0010】
次に、請求項2の原理を図3および図4を用いて説明する。本発明は、第一のブロック分割手順5、第二のブロック分割手順6、ブロック位置設定手順2、使用フラグ設定手順3および記憶領域割当手順4から構成する。
第一のブロック分割手順5は、まず記憶領域を所定の同一サイズで分割を行う。図4(a)はこの状態を模式的に示すものである。
【0011】
第二のブロック分割手順6は、第一のブロック分割手順5で分割されたブロックに対して、更に複数の記憶サイズのブロックに分割を行う。図4(b)は、同一サイズに分割されたブロックを更に請求項1のブロック分割例で述べたように最小のブロックの記憶容量の整数倍のサイズで大きくなるように分割した状態の例を示すものである。
【0012】
ブロック位置設定手順2以降の使用フラグ設定手順3および記憶領域割当手順4は、前述と同一であるので説明を省略する。
以上の構成では、第二のブロック分割で行った各種サイズのブロックが記憶領域全体に繰り返されて分割されることになる。実際のファイルの記憶を行う場合には、大小のブロックを組み合わせて記憶することになるが、適切に未使用ブロックの割当を行うことによりヘッドの動きを少なくでき、短いアクセス時間で記憶または読み出しができる効果がある。例えば、請求項1のブロック分割例で示した図2(b)の方法において、最小サイズを数十万個、その2倍のサイズを数万個、さらにその2倍のサイズを数千個となるように分割してもよい。しかし、この場合ブロックの大小を組み合わせて記憶しようとすると、記憶したファイルの位置は離れた位置に記憶されることになり、ヘッドの移動に時間を取られる問題が生ずる。請求項2の構成では、この影響を少なくすることができる。
【0013】
【発明の実施の形態】
図6〜図10を用いて本発明の実施形態を説明をする。図6は、全体の構成を示すもので、コンピュータ10、磁気ディスク装置20より成り、コンピュータ10はブロック分割部11、ファイル記憶部12を、磁気ディスク装置20はVTOC領域21と記憶領域22を備える。さらに、VTOC領域にはブロック位置テーブル23と使用フラグテーブル24を備える。以下にそれぞれの内容を説明する。
【0014】
ブロック分割部11は、磁気ディスクの記憶領域22を各種サイズのブロックに分割し、分割したブロックに対応してブロック位置テーブル23と使用フラグテーブル24を作成し、磁気ディスク装置のVTOC領域21にこれらのテーブルを格納するものである。
ファイル記憶部12は、ファイルを磁気ディスク装置に記憶する際に、使用フラグテーブル24を参照して未使用のブロックを検索し、ブロック位置テーブル23を参照して該当する未使用ブロックの位置に記憶を行う。
【0015】
VTOC領域21は、磁気ディスク上の一部に記憶領域の管理情報を記憶して置く領域である。
記憶領域22は、ファイルを記憶する領域である。
ブロック位置テーブル23は、各種サイズに分割されたブロックの記憶領域の位置を示すテーブルである。ブロック分割したイメージおよび作成したブロック位置テーブル23の例を図7(a)と図7(b)に示す。図7(a)は、10GBの記憶領域を64KBの同一サイズに分割(ここでは、ジャイアントブロックと称する)したイメージを太線で示し、その中を1KBサイズから整数倍になるようにブロックに分割したイメージを細線で示している。図中のB1、B2・・・はブロックの番号である。即ち、最初の64KBのジャイアントブロック(ジャイアントブロック番号を0とする)は、B1〜B7の7つのブロックに分割されたことになる。図7(b)は、ブロック位置テーブル23を示すもので、B1から順番に記憶領域の始点と終点の位置をシリンダ番号、ヘッダ番号、セクタ番号で示している。更に、ジャイアントブロックの番号とブロックの記憶容量を示している。例えば、B1のブロックの始点と終点はそれぞれ(1,0,0)と(1,0,3)であり、ジャイアントブロック番号は「0」で「1KB」の記憶サイズを有するものである。
【0016】
使用フラグテーブル24は、各種サイズに分割されたブロックの使用状態をフラグによって示すテーブルである。図7(c)は、使用フラグテーブル24の例を示すもので、B1〜Bnの各ブロックの使用状態を”0(未使用)”と”1(使用)”のフラグで表している。本例では、ブロック分割を行った直後の状態で全ブロックが未使用の状態を示している。
【0017】
次に、ブロック分割部11の処理について図8のフローを用いて説明する。本フローでも前述した条件で分割(10GBの記憶領域を64KBの同一サイズに分割し、更に分割した領域を最小1KBのブロックから整数倍の大きさで増大するサイズになるように分割)を行うこととする。
図8のフローにおいて、まず記憶領域の開始位置を決める。ここでは、開始位置をシリンダ番号「1」、ヘッド番号「0」、セクタ番号「0」とする。次にジャイアントブロックの番号(NGB)をブロック位置テーブル23に記憶するため、初期値として「0」を与える。(S1、S2)。
【0018】
次に、1KB、2KB、4KB、8KB、16KB、32KBの記憶サイズを1ジャイアントブロックとし(但し、1KBのブロックは2個とする)、最小のサイズのブロックから順番にそれぞれの始点と終点の記憶領域の位置を求める。最初の1KBの始点と終点の記憶領域の位置はシリンダ番号、ヘッド番号、セクタ番号の順に(1,0,0)と(1,0,3)となる(始点位置はステップS1で定めたもの、終点は1セクタ256B(バイト)として、記憶サイズの1KBの4セクタ分を始点の位置に加えている)。次の1KBのブロックの位置は(1,0,4)(1,0,7)となる。このようにして1ジャイアントブロック分の位置を計算する。各ブロックの始点位置、終点位置、ジャイアントブロック番号、ブロックサイズ(KB単位)をブロック位置テーブルに記憶する(図7(b)参照)。続いてジャイアントブロック番号をカウントアップし、記憶領域の全域を終了するまで繰り返す。ここでジャイアントブロックの中で求めたブロックの最終の終点位置を記憶して置き、次のジャイアントブロックの中の最小のブロックの始点位置の計算は、この記憶した終点位置の次のセクタ位置を始点位置とする。(S3〜S6)。
【0019】
以上でブロック位置テーブルの作成は終了し、続いて使用フラグテーブル24の作成を行う。記憶領域はブロック分割を行って未使用の状態にあるので、全てのブロックに対応して未使用である”0”とした使用フラグテーブル24を作成する。S5のステップで作成したブロック位置テーブル23とS7のステップで作成した使用フラグテーブル24を磁気ディスク装置のVTOC領域21に格納する。(S7、S8)。
【0020】
次に、ファイル記憶部12の処理について図9のフローを用いて説明する。ここでは、記憶を行うファイルの記憶サイズを20.5KBとし、ジャイアントブロック番号「0」が全て未使用であったので、この中で記憶するものとする。まず、記憶するファイルの記憶容量(DSS)を求め(即ち、DSS=20.5KB)、次に使用フラグテーブル24を用いてジャイアントブロックの未使用のブロックを知り、ブロック位置テーブル23を用いてジャイアントブロックとしての未使用記憶容量を求める。(S11、S12)。
【0021】
ジャイアントブロック番号の若い順番に未使用記憶容量がDSSを収容できるか調べ、収容できればそのジャイアントブロックを記憶領域の割当の対象とする。収容できなければ複数のジャイアントブロックを選びその合計がDSSを収容できるジャイアントブロックを記憶領域割当の対象とする(即ち、記憶領域割当のジャイアントブロック番号は「0」で、未使用記憶容量64KBである)。(S13、S14)。
【0022】
記憶領域割当対象のジャイアントブロック内の小さな記憶サイズの未使用ブロック(即ち、1KBのB1)から順番に割当を行い、割当た合計の記憶サイズがDSSを上回ったら割当を終了する。このとき、割当たブロックを「割当候補ブロック」として記憶する。図10(a)に本実施形態の割当候補ブロックの例を示す。B1〜B7がジャイアントブロック番号「0」のブロックで、網点で示したブロック(B1〜B6)が割当候補ブロックである。(S15、S16)。
【0023】
割当候補ブロックの中から、DSSに最も内輪で大きいブロックを選ぶ。そのブロックを「割当決定ブロック」として記憶し、割当候補ブロックから除く。DSSから割当決定ブロックのサイズを除き、この中で内輪で最も大きいブロックを求める。これを、内輪で最も大きいブロックがなくなるまで繰り返す。(S17〜S20)。
【0024】
内輪で最も大きいブロックがなくなったら、割当候補ブロックの中から最小のブロックを割当決定ブロックとする。図10(b)は、割当決定ブロックを網点で示したものである(割当決定ブロックとなったB1、B4、B6の記憶サイズの合計は21KBである)。以上でファイルを記憶するブロックの決定を終了し、決定したブロックの位置をブロック位置テーブル23より求め、その位置にファイルの記憶を行う。そして、割当決定ブロックに対して、使用中であることを示すために使用フラグテーブル24のフラグを「1」とする。図10(c)は、このときの使用フラグテーブルの例を示している。(S21〜S23)。
【0025】
以上、本発明を実施形態において磁気ディスクで具体的に説明したが、この実施形態で示した例に限定されるものではない。
(付記1) ディスク媒体上の記憶領域を複数のサイズのブロックに分割するブロック分割手順と、
分割されたブロックの記憶領域の位置を設定するブロック位置設定手順と、
分割されたブロックに対応して使用と未使用との状態をフラグにより設定する使用フラグ設定手順と、
ファイルを記憶するとき、前記フラグに基づいて未使用のブロックを判断し、対応する未使用ブロックの位置に記憶する記憶領域割当手順と
を有することを特徴とするディスク記憶領域割当方法。
【0026】
(付記2) ディスク媒体上の記憶領域を所定のサイズのブロックに分割する第一のブロック分割手順と、
第一のブロック分割手段で分割した各ブロックを、複数のサイズのブロックに分割する第二のブロック分割手順と、
第二のブロック分割手段で分割した各ブロックの記憶領域の位置を設定するブロック位置設定手順と、
第二のブロック分割手段で分割した各ブロックに対応して使用と未使用との状態をフラグにより設定する使用フラグ設定手順と、
ファイルを記憶するとき、前記フラグに基づいて未使用のブロックを判断し、対応する未使用ブロックの位置に記憶する記憶領域割当手順と
を有することを特徴とするディスク記憶領域割当方法。
【0027】
(付記3) ディスク媒体上の記憶領域を所定のサイズのブロックに分割する第一のブロック分割手段と、
第一のブロック分割手段で分割した各ブロックを、複数のサイズのブロックに分割する第二のブロック分割手段と、
第二のブロック分割手段で分割した各ブロックの記憶領域の位置を設定するブロック位置設定手段と、
第二のブロック分割手段で分割した各ブロックに対応して使用と未使用との状態をフラグにより設定する使用フラグ設定手段と、
ファイルを記憶するとき、前記フラグに基づいて未使用のブロックを判断し、対応する未使用ブロックの位置に記憶する記憶領域割当手段と
を備えることを特徴とするディスク記憶領域割当装置。
【0028】
(付記4) ディスク媒体上の記憶領域を複数のサイズのブロックに分割するブロック分割手段と、
分割されたブロックの記憶領域の位置を設定するブロック位置設定手段と、
分割されたブロックに対応して使用と未使用との状態をフラグにより設定する使用フラグ設定手段と、
ファイルを記憶するとき、前記フラグに基づいて未使用のブロックを判断し、対応する未使用ブロックの位置に記憶する記憶領域割当手段と
を備えることを特徴とするディスク記憶領域割当装置。
【0029】
(付記5) ディスク媒体上の記憶領域を所定のサイズのブロックに分割する第一のブロック分割手順と、
第一のブロック分割手段で分割した各ブロックを、複数のサイズのブロックに分割する第二のブロック分割手順と、
第二のブロック分割手段で分割した各ブロックの記憶領域の位置を設定するブロック位置設定手順と、
第二のブロック分割手段で分割した各ブロックに対応して使用と未使用との状態をフラグにより設定する使用フラグ設定手順と、
ファイルを記憶するとき、前記フラグに基づいて未使用のブロックを判断し、対応する未使用ブロックの位置に記憶する記憶領域割当手順と
をコンピュータに実行させることを特徴とするディスク記憶領域割当プログラム。
【0030】
【発明の効果】
本発明のディスク記憶領域割当方法およびディスク記憶領域割当装置によれば、ディスク装置の記憶領域の管理情報を少なくでき、このためにファイルの記憶および呼び出しに要する時間(アクセス時間)の短縮を図ることができる。
【図面の簡単な説明】
【図1】請求項1の原理図である。
【図2】請求項1のブロック分割と管理情報(フラグテーブル、ブロック位置テーブル) である。
【図3】請求項2の原理図である。
【図4】請求項2のブロック分割である。
【図5】従来の記憶領域のブロック分割と管理情報である。
【図6】磁気ディスク記憶領域割当装置の実施例である。
【図7】ブロック分割の実施例である。
【図8】ブロック分割部の処理フロー例である。
【図9】ファイル記憶部の処理フロー例である。
【図10】本実施形態における割当候補ブロック、割当決定ブロックおよび使用フラグテーブル
【符号の説明】
1:ブロック分割手順
2:ブロック位置設定手順
3:使用フラグ設定手順
4:記憶領域割当手順
5:第一のブロック分割手順
6:第二のブロック分割手順
10:コンピュータ
11:ブロック分割部
12:ファイル記憶部
20:磁気ディスク装置
21:VTOC領域
22:記憶領域
23:ブロック位置テーブル
24:使用フラグテーブル
Claims (3)
- ディスク媒体上の記憶領域を複数のサイズのブロックに分割するブロック分割手順と、
分割されたブロックの記憶領域の位置を設定するブロック位置設定手順と、
分割されたブロックに対応して使用と未使用との状態をフラグにより設定する使用フラグ設定手順と、
ファイルを記憶するとき、前記フラグに基づいて未使用のブロックを判断し、対応する未使用ブロックの位置に記憶する記憶領域割当手順と
を有することを特徴とするディスク記憶領域割当方法。 - ディスク媒体上の記憶領域を所定のサイズのブロックに分割する第一のブロック分割手順と、
第一のブロック分割手段で分割した各ブロックを、複数のサイズのブロックに分割する第二のブロック分割手順と、
第二のブロック分割手段で分割した各ブロックの記憶領域の位置を設定するブロック位置設定手順と、
第二のブロック分割手段で分割した各ブロックに対応して使用と未使用との状態をフラグにより設定する使用フラグ設定手順と、
ファイルを記憶するとき、前記フラグに基づいて未使用のブロックを判断し、対応する未使用ブロックの位置に記憶する記憶領域割当手順と
を有することを特徴とするディスク記憶領域割当方法。 - ディスク媒体上の記憶領域を所定のサイズのブロックに分割する第一のブロック分割手段と、
第一のブロック分割手段で分割した各ブロックを、複数のサイズのブロックに分割する第二のブロック分割手段と、
第二のブロック分割手段で分割した各ブロックの記憶領域の位置を設定するブロック位置設定手段と、
第二のブロック分割手段で分割した各ブロックに対応して使用と未使用との状態をフラグにより設定する使用フラグ設定手段と、
ファイルを記憶するとき、前記フラグに基づいて未使用のブロックを判断し、対応する未使用ブロックの位置に記憶する記憶領域割当手段と
を備えることを特徴とするディスク記憶領域割当装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002171876A JP2004021338A (ja) | 2002-06-12 | 2002-06-12 | ディスク記憶領域割当方法およびディスク記憶領域割当装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002171876A JP2004021338A (ja) | 2002-06-12 | 2002-06-12 | ディスク記憶領域割当方法およびディスク記憶領域割当装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004021338A true JP2004021338A (ja) | 2004-01-22 |
Family
ID=31171621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002171876A Withdrawn JP2004021338A (ja) | 2002-06-12 | 2002-06-12 | ディスク記憶領域割当方法およびディスク記憶領域割当装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004021338A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005066942A1 (en) * | 2004-01-05 | 2005-07-21 | Samsung Electronics Co., Ltd. | Method and apparatus for recording and/or reproducing data and write-once information storage medium |
WO2005066954A1 (en) * | 2004-01-05 | 2005-07-21 | Samsung Electronics Co., Ltd. | Method and apparatus for recording and/or reproducing data and write-once information storage medium |
-
2002
- 2002-06-12 JP JP2002171876A patent/JP2004021338A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005066942A1 (en) * | 2004-01-05 | 2005-07-21 | Samsung Electronics Co., Ltd. | Method and apparatus for recording and/or reproducing data and write-once information storage medium |
WO2005066954A1 (en) * | 2004-01-05 | 2005-07-21 | Samsung Electronics Co., Ltd. | Method and apparatus for recording and/or reproducing data and write-once information storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4778942B2 (ja) | 不揮発性メモリを管理する装置及び方法 | |
RU2658886C1 (ru) | Способ управления файлами, распределенная система хранения и узел управления | |
JP4832521B2 (ja) | フラッシュメモリメディアにおけるデータ管理方法 | |
JP4921865B2 (ja) | アドレス関連テーブル構造を持つスキップ・リスト | |
JP5943096B2 (ja) | 複合不揮発性記憶装置のためのデータ移行 | |
JP3522250B2 (ja) | パーティション作成方法および削除方法、プログラムを記録した記録媒体、情報処理装置 | |
EP2626792A1 (en) | Wear leveling method, memory device, and information system | |
JP5842768B2 (ja) | 重複除去装置、重複除去方法及び重複除去プログラム | |
JP2005135116A (ja) | ストレージ装置及びそのアクセス制御方法 | |
EP1158428A2 (en) | Method and system for accessing spatially organized geographic data in blocks | |
JP5447523B2 (ja) | データ処理装置、データ記録方法、データ記録プログラム | |
US7062603B2 (en) | External storage device for selectively storing data between first and second recording media | |
JP2001265628A (ja) | ファイル記録管理システム | |
JPH08137754A (ja) | ディスクキャッシュ装置 | |
JP2005202942A (ja) | 情報記録媒体、データ処理装置及びデータ処理方法 | |
JP2004021338A (ja) | ディスク記憶領域割当方法およびディスク記憶領域割当装置 | |
JP2003256269A (ja) | 不揮発性記憶装置の制御方法及びメモリ装置 | |
JP3127796B2 (ja) | 情報記録再生装置 | |
JP2000285688A (ja) | 不揮発性半導体記憶装置 | |
JP2004013786A (ja) | データ記憶方法およびデータ記憶制御装置 | |
JP2010039676A (ja) | データ管理方法 | |
CN115563141A (zh) | 一种数据更新方法及装置 | |
CN115390758A (zh) | 一种提高raid卡的卷迁移效率的方法、装置、设备及介质 | |
JPH11316703A (ja) | 光ディスクのデ―タ貯蔵方法 | |
JP2005129173A (ja) | ファイル管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20040610 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040610 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041224 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20070105 |