JP3517940B2 - 圧縮データの読出・書込方法および装置 - Google Patents

圧縮データの読出・書込方法および装置

Info

Publication number
JP3517940B2
JP3517940B2 JP07937294A JP7937294A JP3517940B2 JP 3517940 B2 JP3517940 B2 JP 3517940B2 JP 07937294 A JP07937294 A JP 07937294A JP 7937294 A JP7937294 A JP 7937294A JP 3517940 B2 JP3517940 B2 JP 3517940B2
Authority
JP
Japan
Prior art keywords
data
compressed data
virtual
sector
sectors
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.)
Expired - Fee Related
Application number
JP07937294A
Other languages
English (en)
Other versions
JPH07261937A (ja
Inventor
昇 北沢
稔明 岡山
Original Assignee
エー・アイ・ソフト株式会社
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 エー・アイ・ソフト株式会社 filed Critical エー・アイ・ソフト株式会社
Priority to JP07937294A priority Critical patent/JP3517940B2/ja
Publication of JPH07261937A publication Critical patent/JPH07261937A/ja
Application granted granted Critical
Publication of JP3517940B2 publication Critical patent/JP3517940B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、データ格納媒体から
の圧縮データの読出しと書込みを行なう方法および装置
に関する。
【0002】
【従来の技術】磁気ディスクなどのデータ格納媒体は複
数の物理セクタに分割されており、各物理セクタごとに
データの書込みと読出しがおこなわれる。
【0003】
【発明が解決しようとする課題】このように物理セクタ
単位でデータの書込みと読出しを行なうと、データのサ
イズが小さな場合にも1物理セクタを占有してしまう。
従って、従来は、データ格納媒体に無効な部分がかなり
の割合で生じてしまうという問題があった。
【0004】ところで、データ圧縮方法には、圧縮率が
高く圧縮・伸長の速度が遅いモードや、逆に圧縮率は低
いが圧縮・伸長の速度が速いモードなどの種々の圧縮モ
ードが用意されているものがある。データファイルの種
類によって好ましい圧縮モードは異なり、例えば辞書フ
ァイルでは圧縮・伸長の速度が速い方が望ましく、使用
頻度の少ないテキストデータでは圧縮率が高いが好まし
い。そこで、データファイルの種類によって圧縮モード
を変更したいという要望があった。
【0005】しかし、データを格納するたびに圧縮モー
ドを指定するようにすると、ユーザにとって、各ファイ
ル毎に圧縮モードを指定する手間がわずらわしく感じら
れるという問題があった。
【0006】この発明は従来技術における上述の課題を
解決するためになされたものであり、データ格納媒体内
にデータをより有効に格納できる方法および装置を提供
することを第1の目的とする。
【0007】また、データファイルの種類に応じて好ま
しい圧縮モードを容易に設定できる方法および装置を提
供することを第2の目的とする。
【0008】
【課題を解決するための手段および作用】上述の課題を
解決するために、この発明の請求項1に記載された圧縮
データの読出・書込方法は、コンピュータに接続されて
複数の物理セクタに分割されたデータ格納媒体からの圧
縮データの読出しと書込みを行なう方法であって、前記
データ格納媒体における各物理セクタを複数の仮想セク
タに仮想的に分割し、前記オペレーティングシステムに
おいて前記データ格納媒体からのデータファイルの読出
しや書込みを行う単位として使用されるクラスタであっ
て所定の個数の物理セクタ分のデータサイズを有するク
ラスタを単位としてデータファイルを圧縮し、1クラス
タ分の圧縮データの前記データ格納媒体への書込みを前
記物理セクタを単位として実行するとともに、前記1ク
ラスタ分の圧縮データの書込み位置を前記仮想セクタの
単位で管理し、前記データ格納媒体からの1クラスタ分
圧縮データの読出しを前記物理セクタを単位として実
行するとともに、前記1クラスタ分の圧縮データの読み
出し位置を前記仮想セクタの単位で管理し、圧縮データ
の仮想セクタ単位の読出しと書込みの管理は、前記デー
タ格納媒体に記憶されている各データファイルのファイ
ル名と各データファイルを構成するクラスタとを示すテ
ーブルと、各クラスタの仮想セクタ数と先頭の仮想セク
タのアドレスとを示すテーブルを参照して行うことを特
徴とする。
【0009】仮想セクタのサイズは物理セクタのサイズ
よりも小さいので、データ格納領域における無効領域を
低減することができる。また、データ格納媒体に記憶さ
れている各データファイルのファイル名と各データファ
イルを構成するクラスタとを示すテーブルと、各クラス
タの仮想セクタ数と先頭の仮想セクタのアドレスとを示
すテーブルを参照すれば、データファイルのファイル名
から仮想セクタ数と先頭の仮想セクタのアドレスとを調
べることができる。
【0010】請求項2に記載された方法では、各物理セ
クタは、2n 個(nは1以上の整数)の仮想セクタに分
割されている。
【0011】各物理セクタを2n 個の仮想セクタに分割
するようにすれば、仮想セクタを管理するための2進数
データのビット数を少なくすることができる。
【0012】
【0013】
【0014】請求項に記載された方法は、コンピュー
タに接続されて複数の物理セクタに分割されたデータ格
納媒体に圧縮データを書込む方法であって、(A)前記
データ格納媒体における各物理セクタを複数の仮想セク
タに仮想的に分割するとともに、前記コンピュータのオ
ペレーティングシステムにおいて前記データ格納媒体か
らのデータファイルの読み出しや書き込みを行う単位と
して使用されるクラスタであって所定の個数の物理セク
タ分のデータサイズを有するクラスタを単位としてデー
タファイルを圧縮する工程と、(B)前記1クラスタ分
圧縮データの仮想セクタ数を求める工程と、(C)
記データ格納媒体に記憶されている各データファイルの
ファイル名と各データファイルを構成するクラスタとを
示すテーブルと、各クラスタの仮想セクタ数と先頭の仮
想セクタのアドレスとを示すテーブルを参照して、前記
データ格納媒体において、前記圧縮データの仮想セクタ
数以上のサイズを有する連続した未使用領域を探索する
工程と、(D)前記未使用領域に前記圧縮データを書込
む工程と、を備える。
【0015】この方法では、仮想セクタ単位でデータ格
納領域内の未書込領域を探索して圧縮データを格納する
ことができる。
【0016】請求項に記載された方法では、前記工程
(D)は、前記未使用領域の先頭の物理セクタの一部の
仮想セクタに他のデータが格納されている場合には、前
記先頭の物理セクタに格納された前記他のデータを、少
なくとも1物理セクタの容量を有する物理セクタバッフ
ァに読み込む工程と、前記物理セクタバッファ内の前記
他のデータ以外の領域に前記圧縮データの少なくとも一
部を書込む工程と、前記物理セクタバッファに記憶され
たデータを前記未使用領域の先頭の物理セクタに書き込
む工程と、を備える。
【0017】こうすれば、未使用領域の先頭の物理セク
タの一部に他のデータが格納されている場合にも、他の
データの内容を保ちつつ、その物理セクタの残りの領域
に圧縮データを格納することができる。
【0018】請求項に記載された方法では、前記工程
(D)は、さらに、(E)前記圧縮データを、1物理セ
クタの単位で前記データ格納媒体に書き込む工程と、
(F)1物理セクタ分未満の仮想セクタ数の未書込デー
タが前記圧縮データの末尾に残存した場合には、前記デ
ータ格納媒体において次に書き込まれるべき物理セクタ
領域のデータを物理セクタバッファに読み込み、前記物
理セクタバッファ内の先頭部分に前記未書込データを書
き込むとともに、前記物理セクタバッファに記憶された
データを前記データ格納媒体の前記物理セクタ領域に書
き込む工程と、を備える。
【0019】こうすれば、未使用領域の後端の物理セク
タの一部に他のデータが格納されている場合にも、他の
データの内容を保ちつつ、その物理セクタの残りの領域
に圧縮データを格納することができる。
【0020】請求項に記載された方法は、コンピュー
タに接続されて複数の物理セクタに分割されたデータ格
納媒体から圧縮データを読出す方法であって、(A)前
記データ格納媒体における各物理セクタを複数の仮想セ
クタに仮想的に分割するとともに、前記コンピュータの
オペレーティングシステムにおいて前記データ格納媒体
からのデータファイルの読み出しや書き込みを行う単位
として使用されるクラスタであって所定の個数の物理セ
クタ分のデータサイズを有するクラスタを単位としてデ
ータファイルの読み出し要求を行う工程と、(B)前記
データ格納媒体に記憶されている各データファイルのフ
ァイル名と各データファイルを構成するクラスタとを示
すテーブルと、各クラスタの仮想セクタ数と先頭の仮想
セクタのアドレスとを示すテーブルを参照して、読み出
し要求あったクラスタに対応する圧縮データの仮想セク
タ数と先頭の仮想セクタのアドレスとを求める工程と、
(C)前記先頭の仮想セクタを含む物理セクタの一部に
前記圧縮データ以外の他のデータが格納されている場合
には、前記物理セクタに格納されたデータを、少なくと
も1物理セクタ分の容量を有する物理セクタバッファに
読み込み、前記物理セクタバッファ内の前記先頭の仮想
セクタに相当する部分を読出す工程とを備える。
【0021】この方法では、読出すべき圧縮データの先
頭の物理セクタの一部に他のデータが格納されている場
合にも、その物理セクタの中から、読出すべき圧縮デー
タの仮想セクタのみを読出すことができる。
【0022】請求項に記載された方法では、(D)前
記圧縮データを、1物理セクタの単位で前記データ格納
媒体から読出す工程と、(E)1物理セクタ分未満の仮
想セクタ数分の未読出しデータが前記圧縮データの末尾
に残存した場合には、前記データ格納媒体において次に
読出されるべき物理セクタ領域のデータを前記物理セク
タバッファに読込み、前記物理セクタバッファから前記
未読出しデータを読出す工程と、を備える。
【0023】こうすれば、読出すべき圧縮データの後端
の物理セクタの一部に他のデータが格納されている場合
にも、その物理セクタの中から、読出すべき圧縮データ
の仮想セクタのみを読出すことができる。
【0024】請求項に記載された方法は、コンピュー
タに接続されて複数の物理セクタに分割されたデータ格
納媒体から圧縮データの書込みと読出を行なう方法であ
って、(A)前記データ格納媒体における各物理セクタ
を複数の仮想セクタに仮想的に分割する工程と、(B)
前記コンピュータのオペレーティングシステムにおいて
前記データ格納媒体からのデータファイルの読み出しや
書き込みを行う単位として使用されるクラスタであって
所定の個数の物理セクタ分のデータサイズを有するクラ
スタを単位としてデータファイルを圧縮するとともに、
前記1クラスタ分の圧縮データの仮想セクタ数を求める
工程と、(C)前記データ格納媒体において、前記1ク
ラスタ分の圧縮データの仮想セクタ数以上のサイズを有
する連続した未使用領域を探索する工程と、(D)前記
未使用領域に前記圧縮データを書込む工程と、(E)前
記圧縮データのファイル名と各データファイルを構成す
るクラスタとを示すテーブルと、各クラスタの仮想セク
タ数と先頭の仮想セクタのアドレスとを示すテーブルを
作成する工程と、(F)クラスタを単位としてデータフ
ァイルの読み出し要求があったときに、前記テーブルを
参照して、前記データ格納媒体から読出すべき圧縮デー
タの仮想セクタ数と先頭の仮想セクタのアドレスとを求
める工程と、(G)前記先頭の仮想セクタと前記仮想セ
クタ数とに基づいて、前記読出すべき圧縮データを前記
データ格納媒体から読出す工程とを備える。
【0025】この方法では、仮想セクタ単位でデータ格
納領域内の未使用領域を探索して圧縮データを格納する
ことができ、また、データ格納領域内から仮想セクタ単
位で圧縮データを読出すことができる。
【0026】
【0027】
【0028】
【0029】
【0030】
【0031】
【0032】請求項に記載された方法は、複数の圧縮
モードのいずれかに従って被圧縮データを圧縮して、複
数の物理セクタに分割されたデータ格納媒体に圧縮デー
タを書込む方法であって、前記データ格納媒体における
各物理セクタは複数の仮想セクタに仮想的に分割されて
おり、前記方法は、(A)前記被圧縮データを所定のデ
ータサイズのクラスタに分割する工程と、(B)各クラ
スタの仮想セクタ数と先頭の仮想セクタのアドレスと圧
縮時の圧縮モードとを含むテーブルを参照し、各クラス
タの前記被圧縮データの旧圧縮データである第1の圧縮
データが前記データ格納媒体に既に格納されている場合
には、前記第1の圧縮データと同じ圧縮モードで該クラ
スタの被圧縮データを圧縮することによって第2の圧縮
データを作成する工程と、を備える。
【0033】こうすれば、既存のクラスタについては同
じ圧縮モードで圧縮することができる。
【0034】請求項10に記載された方法では、前記工
程(B)は、前記第2の圧縮データを圧縮データバッフ
ァに記憶する工程と、前記第2の圧縮データの仮想セク
タ数を求める工程と、前記第1の圧縮データの仮想セク
タ数が前記第2の圧縮データの仮想セクタ数以上である
場合には前記第1の圧縮データが格納されている領域に
前記第2の圧縮データを格納し、前記第1の圧縮データ
の仮想セクタ数が前記第2の圧縮データの仮想セクタ数
未満である場合には前記第2の圧縮データの仮想セクタ
数以上のサイズを有する未使用領域を探索して前記未使
用領域に前記第2の圧縮データを書込む工程と、を備え
る。
【0035】こうすれば、書き込むべき第2の圧縮デー
タの仮想セクタ数が既存の第1の圧縮データの仮想セク
タ数よりも多い場合にも、第2の圧縮データを格納する
ことができる。
【0036】請求項11に記載された装置は、コンピュ
ータに接続されて複数の物理セクタに分割されたデータ
格納媒体からの圧縮データの読出しと書込みを行なう装
置であって、各物理セクタが複数の仮想セクタに仮想的
に分割されたデータ格納媒体と、前記データ格納媒体か
らの圧縮データの読出しと書込みとを管理する読出書込
制御手段と、を備え、前記読出書込制御手段は、前記オ
ペレーティングシステムにおいて前記データ格納媒体か
らのデータファイルの読出しや書込みを行う単位として
使用されるクラスタであって所定の個数の物理セクタ分
のデータサイズを有するクラスタを単位としてデータフ
ァイルを圧縮し、1クラスタ分の圧縮データの前記デー
タ格納媒体への書込みを前記物理セクタを単位として実
行するとともに、前記1クラスタ分の圧縮データの書込
み位置を前記仮想セクタの単位で管理し、前記データ格
納媒体からの1クラスタ分の圧縮データの読出しを前記
物理セクタを単位として実行するとともに、前記1クラ
スタ分の圧縮データの読み出し位置を前記仮想セクタの
単位で管理し、前記装置は、さらに、前記データ格納媒
体に記憶されている各データファイルのファイル名と各
データファイルを構成するクラスタとを示すテーブル
と、各クラスタの仮想セクタ数と先頭の仮想セクタのア
ドレスとを示すテーブルを備え、前記読出書込制御手段
は、前記テーブルを参照して圧縮データの仮想セクタ単
位の読出しと書込みを管理する手段を備えることを特徴
とする。
【0037】請求項13に記載された装置は、コンピュ
ータに接続されて複数の物理セクタに分割されたデータ
格納媒体に圧縮データを書込む装置であって、各物理セ
クタが複数の仮想セクタに仮想的に分割されたデータ格
納媒体と、前記コンピュータのオペレーティングシステ
ムにおいて前記データ格納媒体からのデータファイルの
読み出しや書き込みを行う単位として使用されるクラス
タであって所定の個数の物理セクタ分のデータサイズを
有するクラスタを単位としてデータファイルを圧縮する
手段と、前記圧縮データを記憶する圧縮データバッファ
と、前記1クラスタ分の圧縮データの仮想セクタ数を求
める仮想セクタカウンタ手段と、前記データ格納媒体に
記憶されている各データファイルのファイル名と各デー
タファイルを構成するクラスタとを示すテーブルと、各
クラスタの仮想セクタ数と先頭の仮想セクタのアドレス
とを示すテーブルを参照して、前記データ格納媒体にお
いて、前記圧縮データの仮想セクタ数以上のサイズを有
する連続した未使用領域を探索する探索手段と、前記未
使用領域に前記圧縮データを書込む書込手段と、を備え
る。
【0038】請求項16に記載された装置は、コンピュ
ータに接続されて複数の物理セクタに分割されたデータ
格納媒体から圧縮データを読出す装置であって、各物理
セクタが複数の仮想セクタに仮想的に分割されたデータ
格納媒体と、少なくとも1物理セクタ分の容量を有する
物理セクタバッファと、前記コンピュータのオペレーテ
ィングシステムにおいて前記データ格納媒体からのデー
タファイルの読み出しや書き込みを行う単位として使用
されるクラスタであって所定の個数の物理セクタ分のデ
ータサイズを有するクラスタを単位としてデータファイ
ルの読み出し要求があったときに、前記データ格納媒体
に記憶されている各データファイルのファイル名と各デ
ータファイルを構成するクラスタとを示すテーブルと、
各クラスタの仮想セクタ数と先頭の仮想セクタのアドレ
スとを示すテーブルを参照して、読み出し要求のあった
クラスタに対応する圧縮データの仮想セクタ数と先頭の
仮想セクタのアドレスとを求める手段と、前記先頭の仮
想セクタを含む物理セクタの一部に前記圧縮データ以外
の他のデータが格納されている場合に、前記物理セクタ
に格納されたデータを前記物理セクタバッファに読み込
み、前記物理セクタバッファ内の前記先頭の仮想セクタ
に相当する部分を読出す読出手段とを備える。
【0039】請求項18に記載された装置は、コンピュ
ータに接続されて複数の物理セクタに分割されたデータ
格納媒体からの圧縮データの書込みと読出を行なう装置
であって、各物理セクタが複数の仮想セクタに仮想的に
分割されたデータ格納媒体と、前記コンピュータのオペ
レーティングシステムにおいて前記データ格納媒体から
のデータファイルの読み出しや書き込みを行う単位とし
て使用されるクラスタであって所定の個数の物理セクタ
分のデータサイズを有するクラスタを単位としてデータ
ファイルを圧縮する手段と、前記圧縮データを記憶する
圧縮データバッファと、前記1クラスタ分の圧縮データ
の仮想セクタ数を求める手段と、前記データ格納媒体に
おいて、前記圧縮データの仮想セクタ数以上のサイズを
有する連続した未使用領域を探索する探索手段と、前記
未使用領域に前記圧縮データを書込む書込手段と、前記
圧縮データのファイル名と各データファイルを構成する
クラスタとを示すテーブルと、各クラスタの仮想セクタ
と先頭の仮想セクタのアドレスとを示すテーブルを作
成するテーブル管理手段と、クラスタを単位としてデー
タファイルの読み出し要求があったときに、前記テーブ
ルを参照して、前記データ格納媒体から読出すべき圧縮
データの仮想セクタ数と先頭の仮想セクタのアドレスと
を求める手段と、前記先頭の仮想セクタと前記仮想セク
タ数とに基づいて、前記読出すべき圧縮データを前記デ
ータ格納媒体から読出す読出手段とを備える。
【0040】
【0041】請求項19に記載された装置は、複数の圧
縮モードのいずれかに従って被圧縮データを圧縮して、
複数の物理セクタに分割されたデータ格納媒体に圧縮デ
ータを書込む装置であって、前記データ格納媒体におけ
る各物理セクタは複数の仮想セクタに仮想的に分割され
ており、前記装置は、前記被圧縮データを所定のデータ
サイズのクラスタに分割する分割手段と、各クラスタの
仮想セクタ数と先頭の仮想セクタのアドレスと圧縮時の
圧縮モードとを含むテーブルを参照し、1クラスタ分の
前記被圧縮データの旧圧縮データである第1の圧縮デー
タが前記データ格納媒体に既に格納されている場合に
は、前記第1の圧縮データと同じ圧縮モードで前記1ク
ラスタ分の被圧縮データを圧縮することによって第2の
圧縮データを作成する圧縮手段と、を備えることを特徴
とする。
【0042】
【実施例】
A.装置の構成:図1は、この発明の一実施例を適用す
る情報処理装置のハードウェア構成を示すブロック図で
ある。この情報処理装置は、パーソナルコンピュータシ
ステムとして構成されたものであり、図示するように、
CPU101を中心にバスにより相互に接続された次の
各部を備えている。
【0043】ROM104:モニタプログラム等を記憶
する読み出し専用メモリ RAM105:主記憶を構成する読み出し・書き込み可
能なメモリ PIC112:各種の割込に優先順位を付けて制御する
割込コントローラ マウスインタフェース115:2ボタンマウス114と
のデータ等のやり取りを司るインタフェース キーボードインタフェース118:キーボード117か
らのキー入力を司るインタフェース FDC121:フレキシブルディスクドライブ(FD
D)120を制御するフレキシブルディスクコントロー
ラ HDC125:ハードディスクドライブ(HDD)12
4を制御するハードディスクコントローラ CRTC129:必要なデータ等を表示するCRT12
8への信号出力を制御するCRTコントローラ プリンタインタフェース131:プリンタ130へのデ
ータの出力を制御するインタフェース。
【0044】なお、以下ではハードディスクドライブ1
24に接続されたハードディスク装置に対して圧縮デー
タの書込と読出しを行なう場合について説明する。
【0045】図2は、データの圧縮と格納を行なうプロ
グラム群の全体の機能を示す機能ブロック図である。デ
ータ圧縮に関連するプログラム群は、ワードプロセッサ
や表計算プログラムなどのアプリケーションプログラム
202と、処理要求監視プログラム204と、オペレー
ティングシステム206(以下、「OS206」と呼
ぶ)と、データの圧縮とハードディスクへの書込・読出
しを実行するデータ圧縮用デバイスドライバ208とを
含んでいる。なお、処理要求監視プログラムは、常駐プ
ログラムである。また、この実施例ではオペレーティン
グシステム206としてMS−DOS(マイクロソフト
社の商標)を使用した場合について説明する。
【0046】処理要求監視プログラム204は、処理要
求監視部210と、オリジナルINT21h格納領域2
12と、ファイル・圧縮モード決定テーブル214と、
処理中ファイルテーブル216とを含んでいる。
【0047】処理要求監視部210は、アプリケーショ
ンプログラム202からOS206に与えられるファイ
ルアクセス要求(INT21h割込)を監視し、ファイ
ル毎に圧縮モードを決定して、デバイスドライバ208
に通知する役割を有している。ファイルアクセス要求と
しては、ファイルハンドルの新規作成(ファンクション
3Ch),ファイルハンドルのオープン(ファンクショ
ン3Dh),ファイルハンドルのクローズ(ファンクシ
ョン3Eh),ファイルの読み込み(ファンクション3
Fh),ファイルの書込み(ファンクション40h)な
どがある。なお、「ファイルハンドルのオープン」は、
単に「ハンドルのオープン」または「ファイルのオープ
ン」と呼ばれる場合もある。ファイルハンドルの作成、
クローズなども同様である。また、この明細書において
末尾に「h」のついたものは16進表記の数である。
【0048】ファイルハンドルは、ファイルを管理する
際にOS206がファイル名の代わりに使用する番号で
ある。アプリケーションプログラム202がファイル名
を指定してファイルハンドルの作成やファイルハンドル
のオープンをOS206に要求すると、OS206によ
ってそのファイルにファイルハンドルが割り当てられ
る。なお、ファイルハンドルのオープンとは、ハードデ
ィスク装置内のディレクトリの中から指定されたファイ
ルを探し出し、そのファイルをアクセスするための管理
情報をハードディスクからRAM105上に読み込む作
業である。ここで「管理情報」とは、ファイル名、拡張
子、ファイルの属性、ファイルの先頭クラスタ番号、フ
ァイルサイズなどを含んでいる。ファイルハンドルのク
ローズが要求されると、そのファイルハンドルは開放さ
れる。
【0049】オリジナルINT21h格納領域212
は、アプリケーションプログラム202がOS206に
処理を要求するシステムコール(INT21h割込)の
ための割込ベクタアドレス(飛び先アドレス)を格納し
ておくメモリ領域である。図3は、この情報処理装置の
メモリマップを示す説明図である。図3において、処理
要求監視プログラム204は、メモリに常駐する際に、
割込ベクタテーブルに登録されていた元のINT21h
割込みのベクタアドレスを読出してオリジナルINT2
1h格納領域212に格納し、割込ベクタテーブルには
処理要求監視プログラム204の所定のアドレスを登録
する。
【0050】アプリケーションプログラム202がIN
T21h割込みによってファイルアクセス処理を要求す
る(図3の)と、処理要求監視プログラム204はそ
の処理要求をフックして受け取り(図3の)、必要な
処理(後述する)をした後、INT21h割込みで指定
された処理をOS206に実行させるためにオリジナル
INT21h格納領域212に登録されたアドレスをサ
ブルーチンコールする(図3の)。なお、ファイルア
クセス処理の詳細については更に後述する。
【0051】ファイル名・圧縮モード決定テーブル21
4は、ファイル名に対する圧縮モードが定義されている
テーブルである。図2の例では、ファイル名が「*.D
IC」,「*.EXE」,「*.TXT」のファイルに
対して圧縮モード1,2,3がそれぞれ定義されてい
る。ここで、「*」はワイルドカードであり、任意のキ
ャラクタでよいことを示している。すなわち、この例で
は拡張子が「DIC」,「EXE」,「TXT」のファ
イルに対して圧縮モード1,2,3がそれぞれ定義され
ていることを示している。なお、圧縮モード1は圧縮を
行なわずにそのまま格納するモード、圧縮モード2は圧
縮・伸長が比較的速く圧縮率は比較的小さいモード、圧
縮モード3は圧縮・伸長が比較的遅く圧縮率は比較的大
きなモードである。圧縮モード1は無圧縮を示すので
「圧縮モード」という語の本来の意味からは外れている
が、この明細書においては、無圧縮も広義の「圧縮」に
含まれるものとしている。なお、圧縮モード2と圧縮モ
ード3としては、同じ基本アルゴリズムで多少異なる圧
縮方法を採用してもよく、また、異なる基本アルゴリズ
ムの圧縮方法を採用てもよい。例えば、比較的高速の圧
縮モード2としてLZ(Lempel-Ziv)方式のLZ77
と呼ばれるアルゴリズムを用い、比較的高圧縮率の圧縮
モード3として同じLZ方式のLZ78と呼ばれるアル
ゴリズムを用いても良い。
【0052】なお、圧縮アルゴリズムとしては、LZ方
式に限らず、ハフマン符号化などの他の可逆符号化方法
を用いることも可能である。また、圧縮モード決定テー
ブル214の登録内容は、ユーザが自由に定義を変更す
ることができる。例えば、ワイルドカードを使用せずに
ファイル名の全体に対して圧縮モードを指定することも
可能である。
【0053】処理中ファイルテーブル216は、現在オ
ープンされているファイルハンドルとその圧縮モードが
登録されているテーブルである。図2の例では、ファイ
ルハンドル6,7に対して圧縮モード1,2がそれぞれ
登録されている。
【0054】図4は、デバイスドライバ208とハード
ディスク装置123の構成を示す機能ブロック図であ
る。デバイスドライバ208は、クラスタ管理部230
と、クラスタバッファ232と、圧縮伸長部234と、
圧縮バッファ236と、セクタ管理部238と、仮想セ
クタカウンタ240と、物理セクタバッファ242と、
2つの圧縮モードフラグ251,252とを備えてい
る。また、ハードディスク装置123は、圧縮モードテ
ーブル305と、セクタ管理テーブル306と、クラス
タ管理テーブル308と、圧縮データ格納領域310と
を有している。
【0055】クラスタ管理部230は、ハードディスク
装置123に書き込むべきデータをRAM105からク
ラスタバッファ232に転送する。また、ハードディス
ク装置123から読出されたデータをクラスタバッファ
232から読出す処理も行なう。
【0056】クラスタバッファ232は、圧縮処理やハ
ードディスク装置123への書込み処理の対象となる1
クラスタ分のデータが格納されるバッファである。書込
み対象のデータは、クラスタ単位にクラスタバッファ2
32に転送されてから圧縮され、書込み処理が行われ
る。なお、「クラスタ」とは、OS206において未圧
縮のデータファイルの読出しや書込みを行なう単位とし
て定義されたものであり、所定の個数の物理セクタ分の
データサイズを有している。一方、圧縮後はデータサイ
ズが小さくなるので、1クラスタ分の圧縮データのサイ
ズはクラスタ毎に異なることになる。
【0057】圧縮伸長部234は、データの書き込み時
にはクラスタバッファ232の内容を圧縮して圧縮バッ
ファ236に転送し、データの読み込み時には圧縮バッ
ファ236の内容を伸長してクラスタバッファ232に
転送する。
【0058】セクタ管理部238は、新しいクラスタの
書き込み時には圧縮バッファ236の内容を圧縮データ
格納領域310の空き領域に書き込む。クラスタの内容
を読み込む際には、圧縮データ格納領域310の対応領
域から圧縮バッファ236にデータを転送する。また、
仮想セクタと物理セクタの対応を管理し、物理セクタバ
ッファ242を使用して仮想セクタと物理セクタの変換
を行う。なお、仮想セクタと物理セクタの対応とその管
理方法については後述する。
【0059】仮想セクタカウンタ240は、セクタ管理
部238が圧縮データ格納領域310に対して圧縮デー
タの読み書きを行なう際に、圧縮データの仮想セクタ数
をカウントするためのカウンタである。
【0060】物理セクタバッファ242は、セクタ管理
部238が圧縮データ格納領域310に対して圧縮デー
タの読み書きを行なう際に使用する1物理セクタ分のバ
ッファである。後述するように、圧縮データの先頭の仮
想セクタが圧縮データ格納領域310内の物理セクタの
先頭の仮想セクタでは無い場合、および、圧縮データの
後端の仮想セクタが圧縮データ格納領域310内の物理
セクタの後端の仮想セクタでは無い場合には、一時的に
その物理セクタの内容が圧縮データ格納領域310から
物理セクタバッファ242内に読み込まれる。
【0061】圧縮モードフラグ251,252は、圧縮
伸長部234におけるファイルの圧縮・伸長のモードを
指定するフラグである。第1の圧縮モードフラグ251
には、データを圧縮データ格納領域310に書き込む場
合の圧縮モードが格納される。第2の圧縮モードフラグ
252には、既存の圧縮データを圧縮データ格納領域3
10から読み込んで伸長する場合に、その既存の圧縮デ
ータの圧縮モードが登録される。すなわち、既存の圧縮
データの読込み時には、セクタ管理部238がそのファ
イルの圧縮モードをハードディスク装置123内のクラ
スタ管理テーブル308から読取る。その圧縮モードは
第2の圧縮モードフラグ252に登録され、これに応じ
て圧縮データが展開される。また、既存の圧縮データと
同じファイル名のデータを格納する場合には、既存の圧
縮データの圧縮モードがクラスタ管理テーブル308か
ら読出されて第2の圧縮モードフラグ252に登録さ
れ、その圧縮モードに従ってデータが圧縮される。な
お、圧縮モードは実際にはクラスタ毎に設定されるが、
その詳細については後述する。
【0062】ハードディスク装置123の圧縮モードテ
ーブル305には、圧縮データ格納領域310を1つの
ドライブとして構成した時に指定された圧縮モードが格
納されている。なお、ハードディスク装置123内を分
割(パーティション)することによって複数の圧縮デー
タ格納領域を形成した場合には、各圧縮データ格納領域
の圧縮モードテーブルに異なる圧縮モードを設定するこ
とが可能である。
【0063】ファイルの書込み時には、処理要求監視部
210がそのファイルのファイルハンドルが処理中ファ
イルテーブル216(図2)に登録されているか否かを
調べ、登録されていればその圧縮モードを第1の圧縮モ
ードフラグ251に格納する。処理中ファイルテーブル
216にそのファイルハンドルが登録されていなけれ
ば、第1の圧縮モードフラグ251に「指定なし」を示
す値を書き込む。デバイスドライバ208は、第1の圧
縮モードフラグ251を調べ、圧縮モードが登録されて
いる場合にはその圧縮モードでデータを圧縮する。一
方、第1の圧縮モードフラグ251に「指定なし」の値
が書き込まれている場合には、圧縮モードテーブル30
5に登録されている圧縮モード(例えば圧縮率優先モー
ド)を読出して圧縮を行なう。
【0064】以上のように、新規なファイルをハードデ
ィスク装置123に書き込む際には処理要求監視プログ
ラム204(図2)が圧縮モード決定テーブル214を
参照し、そのデータのファイル名の拡張子が圧縮モード
決定テーブル214に登録されている場合にはその拡張
子に割り当てられた圧縮モードに従ってデータ圧縮が行
なわれる。また、圧縮モード決定テーブル214に拡張
子が登録されていない場合には、ユーザによって予めハ
ードディスク装置123に対して割り当てられた圧縮モ
ード(圧縮モードテーブル305に登録されているモー
ド)に従ってデータ圧縮が行なわれる。
【0065】ファイル名の拡張子はファイルの種類を示
すことが多く、例えば、「DIC」は辞書ファイル、
「EXE」や「COM」はプログラムの実行ファイル、
「TXT」はテキストファイルを示すのが普通である。
従って、新たなファイルの拡張子に応じて圧縮モードを
決定するようにすれば、ファイルの種類に適した圧縮モ
ードを自動的に決定することができる。また、ファイル
名の拡張子が圧縮モード決定テーブル214に登録され
ていない新規なファイルを圧縮する場合には、予めユー
ザがハードディスク装置123に対して指定した圧縮モ
ード(例えば圧縮率優先モード)で圧縮が行なわれる。
このように、この情報処理装置では、ファイルをハード
ディスク装置123に書き込む場合には、処理要求監視
プログラム204およびデバイスドライバ208によっ
て自動的に圧縮モードが決定されるので、ユーザがファ
イルの書込みを行なうたびに圧縮モードを指定する必要
がないという利点がある。
【0066】B.仮想セクタとその管理情報:図5
(A)は、物理セクタと仮想セクタの対応関係を示す説
明図である。この例では、1物理セクタが2Kバイト、
1仮想セクタが1Kバイトである。また、非圧縮データ
の1クラスタは8Kバイトである。一般には、1仮想セ
クタのサイズは1物理セクタのサイズの1/2n (nは
1以上の整数)とすることが好ましい。こうすれば、1
物理セクタ中に含まれる仮想セクタをnビットの2進数
で表わすことができるので、各クラスタに対応する仮想
セクタを管理しているクラスタ管理テーブル308(図
4)のデータ量を少なくすることができるからである。
この明細書において「1クラスタ」とは、非圧縮時にお
いて所定のサイズ(実施例では8Kバイト=4物理セク
タ)を有するデータの1単位を言う。従って、圧縮デー
タの各クラスタのサイズは互いに異なるのが普通であ
る。
【0067】図5(A)において、1クラスタ(=8K
バイト)分の非圧縮データが圧縮後に6.5Kバイトに
なったと仮定すると、圧縮後のデータを格納するのに必
要な物理セクタ数は4(=8Kバイト)であり、一方、
この圧縮データを格納するのに必要な仮想セクタ数は7
(=7Kバイト)である。従って、圧縮データを仮想セ
クタ単位で格納することにすれば、図5の例でも1仮想
セクタ(=1Kバイト)分の空き領域(図中で「×」を
付した領域)を残すことができる。そして、この空き領
域に他のクラスタのデータを格納すれば、ハードディス
ク装置123の圧縮データ格納領域310を有効に利用
することが可能である。
【0068】なお、ハードディスク装置123内におけ
るデータの格納はクラスタ単位で行なわれるので、図5
(A)のように1クラスタが8つの仮想セクタに分割さ
れている場合には、各クラスタについて1〜7仮想セク
タの領域が空き領域となる可能性がある。また、一般に
1クラスタがm個の物理セクタで構成されており、各物
理セクタが2n 個の仮想セクタに分割されている場合に
は、1〜(m・2n −1)個分の仮想セクタの空き領域
が生じる可能性がある。
【0069】図5(B)は非圧縮データを格納する場合
の仮想セクタの効果を示しており、図5(C)は圧縮デ
ータを格納する場合の仮想セクタの効果を示している。
図5(B)の場合には、非圧縮データファイルの最後の
クラスタにおいて1仮想セクタ分の空き領域が生じるだ
けである。一方、図5(C)に示す場合には、非圧縮デ
ータをクラスタ毎に圧縮して各クラスタの圧縮データを
格納しており、各クラスタ毎に1仮想クラスタ分の空き
領域が生じている。このように、クラスタ毎にデータを
圧縮し、仮想セクタ単位で圧縮データを格納するように
すれば、データ格納領域を有効に利用する上で大きな効
果がある。
【0070】なお、図5(C)では、図示の便宜上、デ
ータ格納領域内の1クラスタ分の領域毎に1仮想セクタ
分の空き領域が生じるように図示されているが、実際に
は圧縮データの間に空き領域が生じないように、各圧縮
データの間を詰めた状態で格納される。また、連続した
空き領域がデータ格納領域内に無い場合には、各クラス
タの圧縮データを格納できる空き領域が各クラスタ毎に
探索され、そこに各クラスタの圧縮データが格納され
る。
【0071】図6は、ハードディスク装置123に格納
されている各種のデータの内容を示す説明図であり、図
6(A)はハードディスク装置123のセクタマップで
ある。ハードディスク装置123にはブートセクタ30
1と、ファイルアロケーションテーブル(以下、「FA
T」と呼ぶ)302と、ディレクトリ領域304と、圧
縮モードテーブル305と、セクタ管理テーブル306
と、クラスタ管理テーブル308と、圧縮データ格納領
域310が含まれている。
【0072】FAT302(図6(B))には、圧縮デ
ータ格納領域310内の各クラスタについて、次に続く
クラスタの番号が登録されている。ディレクトリ領域3
04(図6(C))には、ファイル名と先頭クラスタ番
号等が登録されている。セクタ管理テーブル306(図
6(D))には、各仮想セクタについて、使用中か未使
用であるかを示す1ビットのフラグが登録されている。
クラスタ管理テーブル308(図6(E))には、各ク
ラスタについて、圧縮モードと、仮想セクタ数と、その
クラスタの先頭の仮想セクタアドレスとが登録されてい
る。クラスタ管理テーブル308に各クラスタの仮想セ
クタ数が登録されていることからも解るように、1クラ
スタを構成する圧縮データの仮想セクタ数は可変であ
る。
【0073】図7は、図6に示す各種のテーブルとデー
タの関係を示す説明図である。ディレクトリ領域304
にはファイル名と先頭クラスタ番号が登録されているの
で、ファイル名「FILE0001.EXE」が指定されるとその先
頭クラスタ番号(=2)が解る。クラスタ管理テーブル
308において、ディレクトリ領域304に登録された
先頭クラスタ番号(=2)の位置を参照すると、そのク
ラスタの圧縮モード(=1)と、仮想セクタ数(=3)
と、先頭の仮想セクタのアドレス(=0003h)とを
知ることができる。ファイル「FILE0001.EXE」の圧縮デ
ータは、その仮想セクタアドレス(=0002h)から
始まる仮想セクタ数(=3)のサイズの領域に格納され
ている。なお、図7の圧縮データ格納領域310内の各
仮想セクタ位置に記されている文字「U」はデータが格
納されていることを示し、文字「F」は未格納であるこ
とを示す。また、文字「U」の後ろに付されているかっ
こ付の数字は、対応するクラスタ番号を示している。セ
クタ管理テーブル306は、圧縮データ格納領域310
内の各仮想クラスタが使用されているか未使用であるか
を示しており、後述するように、仮想セクタに圧縮デー
タを格納する際に用いられる。
【0074】C.ファイルアクセス処理の全体手順:図
8は、ファイルアクセス処理の全体手順を示すフローチ
ャートである。まず、ファイルの作成処理(ステップS
1)、または、ファイルのオープン処理(ステップS
2)でファイルハンドルとファイルの管理情報が用意さ
れ、ファイルの読込み処理(ステップS3)および/ま
たはファイルの書込み処理(ステップS4)が実行され
て、ファイルのクローズ処理(ステップS5)によって
ファイルハンドルが開放される。
【0075】図9は、ファイルアクセス処理における圧
縮モード管理の概要を示す説明図である。アプリケーシ
ョンプログラム202がAドライブ(ハードディスク装
置123)のファイル名「WXA.DIC 」を指定してファイ
ルの作成処理をOS206に要求すると、処理要求監視
部210はその要求をフックして受け取る。そして、圧
縮モード決定テーブル214を参照してファイル名の拡
張子「*.DIC 」に対して圧縮モード1が登録されている
ことを調べ、OS206から返されたファイルハンドル
06を圧縮モード1とともに処理中ファイルテーブル2
16に登録する。
【0076】同様に、アプリケーションプログラム20
2がAドライブのファイル名「XXX.EXE 」を指定してフ
ァイルのオープン処理を要求すると、処理要求監視部2
10は、OS206から返されたファイルハンドル07
を圧縮モード2とともに処理中ファイルテーブル216
に登録する。
【0077】オープンされているファイル「A:\XXX.EX
E」の書き込み処理をアプリケーションプログラム20
2が要求すると、処理要求監視部210は、処理中ファ
イルテーブル216に登録されている圧縮モード2をデ
バイスドライバ208に通知して、OS206へ制御を
移す。その後、OS206から呼び出されたデバイスド
ライバ208は、圧縮モード2でデータを圧縮し、圧縮
データを圧縮データ格納領域310に書込む。
【0078】同様に、オープンされているファイル「A:
\WXA.DIC」の書き込み処理をアプリケーションプログラ
ム202が要求すると、処理要求監視部210は、処理
中ファイルテーブル216に登録されている圧縮モード
1をデバイスドライバ208に通知して、OS206へ
制御を移す。その後、OS206から呼び出されたデバ
イスドライバ208は、圧縮モード1(無圧縮モード)
で圧縮して書き込みを行う。
【0079】D.ファイルのオープン処理と作成処理の
手順:図10は、ファイルのオープン処理と作成処理の
手順を示すフローチャートである。なお、図10以降の
フローチャートにおいて、各ステップのブロックの左に
記されている記号「APP」はアプリケーションプログ
ラム202が実行する処理を示し、「SUP」は処理要
求監視プログラム204の処理、「OS」はOS206
の処理、「DRV」はデバイスドライバ208の処理を
それぞれ示している。
【0080】ステップS11において、アプリケーショ
ンプログラム202がファイル名を指定してOS206
にファイルのオープン処理またはファイルの作成処理の
要求を行う。割込ベクタテーブルにおけるINT21h
割込みのベクタアドレスは、図3で説明したように処理
要求監視プログラム204内のアドレスに書き換えられ
ているので、処理要求監視プログラム204がその処理
要求をフックして受け取る(ステップS12)。処理要
求監視部210がオリジナルINT21h格納領域21
2内のアドレスをサブルーチンコールすると(ステップ
S13)、OS206は指定された処理(ファイルのオ
ープン処理またはファイルの作成処理)を行い、ファイ
ルハンドルを処理要求監視プログラム204に返す(ス
テップS14)。
【0081】処理要求監視部210は、アプリケーショ
ンプログラム202によって指定されたファイル名がフ
ァイル名・圧縮モード決定テーブル214に登録されて
いるか否かを調べる。登録されている場合には、そのフ
ァイル名から圧縮モードを決定し(ステップS15)、
その圧縮モードをOS206より返されたファイルハン
ドルと共に処理中ファイルテーブル216に登録して処
理を終了する(ステップS16)。なお、圧縮モード決
定テーブル214にファイル名が登録されていない場合
には、圧縮モード決定テーブル214には登録を行なわ
ない。
【0082】上述したように、ファイルのオープン処理
やファイルの作成処理では、圧縮モード決定テーブル2
14を参照してファイル名に応じた圧縮モードが決定さ
れる。
【0083】E.ファイルの読込み処理の手順:図11
は、ファイルの読込み処理の手順を示すフローチャート
である。ステップS31では、アプリケーションプログ
ラム202が読込み対象ファイルのバイト数と、そのフ
ァイルハンドルとを指定してOS206にファイルの読
込み処理の要求(INT21h,ファンクション3F
h)を行う。なお、以下では読み込み対象ファイルを単
に「対象ファイル」と呼ぶ。処理要求監視部210はこ
の処理要求をフックして受取った後(ステップS3
2)、オリジナルINT21h格納領域212内のアド
レスへ制御を移し、アプリケーションからの処理要求を
そのまま渡してOS206を呼び出す。
【0084】OS206は、対象ファイルが格納されて
いるクラスタ番号をディレクトリ領域304とFAT3
02(図7)を検索して見つける(ステップS34)。
OS206は、さらに、ハードディスク装置123のド
ライブ番号と、ステップS34で検索したクラスタ番号
に対応するハードディスク装置123内の論理セクタ番
号と、処理要求コマンド(この場合には読み込み処理の
要求)と、読込んだデータを記憶するためのメモリ領域
のアドレスと、読み込む仮想セクタ数とを含むコマンド
パケットを作成するとともに、そのパケットアドレスを
パラメータとしてデバイスドライバ208の入り口アド
レスをサブルーチンコールする(ステップS35)。
【0085】なお、この実施例では1クラスタ単位でデ
ータが読込まれる場合を説明するが、読み込み対象のク
ラスタが圧縮データ格納領域310内で連続している場
合には、連続している複数のクラスタをまとめて読込む
ことも可能である。
【0086】ステップS36〜S39では、デバイスド
ライバ208がOS206からの読み込み要求を1クラ
スタ単位に分割して処理を行なう。まず、ステップS3
6では、セクタ管理部238(図4)が、コマンドパケ
ットで指定されたクラスタデータが格納されている領域
の仮想セクタアドレスと、仮想セクタ数と、圧縮モード
とをクラスタ管理テーブル308から得るとともに、こ
うして得た圧縮モードを第2の圧縮モードフラグ252
にセットする。
【0087】ステップS37では、セクタ管理部238
が1クラスタ分のデータの読込み処理を行い、圧縮バッ
ファ236にデータを格納する。なお、クラスタの読込
み処理の詳細については、更に後述する。ステップS3
8では、圧縮伸長部234が第2の圧縮モードフラグ2
にセットされているモードで圧縮バッファ236の内容
を展開し、展開したデータをクラスタバッファ232に
転送する。そして、ステップS39では、クラスタ管理
部230が1クラスタ分のデータをクラスタバッファ2
32から読み込み先のメモリ領域に転送する。
【0088】ステップS40では、コマンドパケットで
指定されたクラスタ数だけの読込み処理が終了したか否
かを判断し、終了していなければステップS36に戻
る。全クラスタ数の読込み処理を終了するとOS206
に戻る。
【0089】ステップS41では、OS206がアプリ
ケーションプログラム202から読み込みを要求された
データの全部について処理が終了したか否かを判断し、
終了していなければステップS34に戻る。
【0090】F.ファイルの書込み処理の手順:図12
は、ファイルの書込み処理の手順を示すフローチャート
である。ステップS51においてアプリケーションプロ
グラム202がファイルハンドルと、書き込み対象ファ
イルのメモリアドレスと、バイト数とを指定して、ファ
イルの書込み処理の要求(INT21h,ファンクショ
ン40h)を発行すると、処理要求監視部210がこの
処理要求をフックして受け取る(ステップS52)。な
お、以下では書込み対象のファイルを単に「対象ファイ
ル」と呼ぶ。処理要求監視部210は、アプリケーショ
ンが指定しているファイルハンドルが処理中ファイルテ
ーブル216に登録されているが調べ、登録されている
場合にはファイルハンドルに対応する圧縮モードを取り
出して、デバイスドライバ208内の第1の圧縮モード
フラグ251(図4)にその圧縮モードを書き込む。一
方、圧縮モード決定テーブル214にファイルハンドル
が登録されていない場合には、「指定なし」を示す所定
の値を第1の圧縮モードフラグ251に書き込む。
【0091】ステップS54では、処理要求監視部21
0がオリジナルINT21h格納領域212内のアドレ
スをサブルーチンコールしてOS206を呼び出す。そ
の際、アプリケーションからの処理要求がそのままOS
206に渡される。
【0092】OS206は、対象ファイルが既に圧縮デ
ータ格納領域310内に格納されているかどうかをディ
レクトリ領域304とFAT302を使用して調べ(ス
テップS56)、格納されていない場合には対象ファイ
ルを格納するための空きクラスタのクラスタ番号をFA
T302を検索して見つける(ステップS57)。な
お、空きクラスタのクラスタ番号に対しては、FAT3
02に000hが登録されている。一方、既に対象ファ
イルが圧縮データ格納領域310内に格納されている場
合には、対象ファイルが格納されているクラスタ番号を
ディレクトリ領域304とFAT302を検索して見つ
ける(ステップS58)。なお、対象ファイルが既に格
納されている場合にも、対象ファイルが、既に格納され
ているファイルのクラスタ数よりも多くのクラスタを必
要とするする場合には、FAT302を検索して空きク
ラスタを探索する。
【0093】図13はステップS56〜S58の処理内
容を示す説明図である。ここでは、5クラスタ分のデー
タ量を有するファイル「FILE0001.EXE」の書込み処理を
アプリケーションプログラム202が要求したものと仮
定する。この対象ファイル「FILE0001.EXE」は既に圧縮
データ格納領域310内に格納されており、ディレクト
リ領域304には先頭クラスタ番号=2が登録されてい
る。FAT302を調べると、4つのクラスタ2h,4
h,7h,9hによってファイル「FILE0001.EXE」が構
成されていることが解る。従って、対象ファイル「FILE
0001.EXE」の最初の4つのクラスタは、4つの既存のク
ラスタ2h,4h,7h,9hに対応づけられる。一
方、ファイル「FILE0001.EXE」の5番目のクラスタは、
FAT302内の最初の空きクラスタAhに対応づけら
れる。
【0094】図12のステップS59では、OS206
が、ドライブ番号と、格納すべきクラスタ番号に対応す
る論理セクタ番号と、処理要求コマンド(この場合には
書き込み処理)と、書き込むファイルのメモリ上のアド
レスと、書き込む仮想セクタ数とを含むコマンドパケッ
トを作成し、そのパケットアドレスをパラメータとして
デバイスドライバ208の入り口アドレスをサブルーチ
ンコールする。
【0095】ステップS60以降のステップでは、デバ
イスドライバ208がOS206からの書込み要求を1
クラスタ単位に分割して次のように処理を行う。なお、
以下では書込み対象となっているクラスタを単に「対象
クラスタ」と呼ぶ。ステップS60では、対象クラスタ
のデータをクラスタバッファ232に転送する。ステッ
プS61では、対象クラスタのクラスタ番号に対する仮
想セクタアドレスがクラスタ管理テーブル308(図
7)内に登録されているか否かが調べられる。すなわ
ち、仮想セクタアドレスが0000hの場合には未登録
であると判断される。仮想セクタアドレスに0000h
が登録されている場合には、対象クラスタは圧縮データ
格納領域310内に格納されていないので、ステップS
62において新規クラスタの書込み処理を行う。
【0096】図14は、新規クラスタの書込み処理の手
順を示すフローチャートである。前述したステップS5
3において、処理要求監視部210は、書込み対象ファ
イルのファイルハンドルが処理中ファイルテーブル21
6(図2)に登録されているか否かを調べ、登録されて
いる場合にはその圧縮モードを第1の圧縮モードフラグ
251に登録している。また、そのファイルハンドルが
処理中ファイルテーブル216に登録されていない場合
には、第1の圧縮モードフラグ251に「指定なし」の
値を登録している。図14のステップS71では、圧縮
伸長部234が、第1の圧縮モードフラグ251に登録
されている圧縮モードでクラスタバッファ232のデー
タを圧縮し、圧縮バッファ236に転送する。なお、第
1の圧縮モードフラグ251に「指定なし」の値がセッ
トされている場合には、セクタ管理部238がハードデ
ィスク装置123内の圧縮モードテーブル305から圧
縮モードを読出して、その圧縮モードで圧縮が行なわれ
る。
【0097】ステップS72では、セクタ管理部238
が、圧縮データを連続して格納できる領域をセクタ管理
テーブル306を使用して探し、圧縮データを格納す
る。この結果、クラスタバッファ232に格納されてい
た1クラスタ分のデータが圧縮されて圧縮データ格納領
域310に格納されたことになる。なお、この書込み処
理の手順の詳細については更に後述する。
【0098】ステップS73では、セクタ管理部238
が、格納先の仮想セクタアドレスと仮想セクタ数と圧縮
時の圧縮モードとをクラスタ管理テーブル308に書き
込むことによって、対象クラスタに関する登録内容を更
新する。さらに、セクタ管理テーブル306について
は、書込み対象の仮想セクタ位置に1をセットする。
【0099】一方、図12のステップS61において、
クラスタ管理テーブル308の仮想セクタアドレスに0
000h以外の値が登録されている場合には、対象クラ
スタはすでに圧縮データ格納領域310内に書込まれて
いるので、ステップS63において既存クラスタの更新
処理を行う。図15は、既存クラスタの書込み処理の手
順を示すフローチャートである。ステップS81では、
セクタ管理部238が、対象クラスタが格納されている
領域の仮想セクタアドレスと、仮想セクタ数と、圧縮時
の圧縮モードとをクラスタ管理テーブル308から取得
する。セクタ管理部238は、こうして得た圧縮モード
を第2の圧縮モードフラグ252にセットする(ステッ
プS82)。
【0100】ステップS83では、圧縮伸長部234
が、第2の圧縮モードフラグ252にセットされている
圧縮モードでクラスタバッファ232のデータを圧縮
し、圧縮データを圧縮バッファ236に転送する。
【0101】ステップS84では、セクタ管理部238
が書込対象の圧縮データの仮想セクタ数SSNTを算出
し、既に格納されている対象クラスタの仮想セクター数
OSSNTとを比較する。書込対象の圧縮データの仮想
セクタ数SSNTが、既に格納されている対象クラスタ
の仮想セクター数OSSNTを越える場合には、ステッ
プS85〜S87が実行される。
【0102】ステップS85では、対象クラスタに対応
するセクタ管理テーブル306内の仮想セクタ位置の値
が0にセットされる。すなわち、この対象クラスタの仮
想セクタ位置が未使用であると設定される。ステップS
86では、セクタ管理部238が、圧縮データを連続し
て格納できる領域をセクタ管理テーブル306を使用し
て探し、圧縮バッファ236の圧縮データを書き込む。
この結果、クラスタバッファ232に格納されていた1
クラスタ分のデータが圧縮され、その圧縮データが圧縮
データ格納領域310に書き込まれる。ステップS87
では、セクタ管理部238が、格納先の仮想セクタアド
レスと、仮想セクタ数と、圧縮時の圧縮モードとをクラ
スタ管理テーブル308に書き込むことによって、対象
クラスタに関する登録内容を更新する。また、セクタ管
理部238は、セクタ管理テーブル306内において、
書込み対象の仮想セクタ位置の値を1にセットする。
【0103】一方、ステップS84において、書込み対
象の圧縮データの仮想セクタ数SSNTが、既に格納さ
れている対象クラスタの仮想セクター数OSSNT以下
の場合には、ステップS88〜S90が実行される。ス
テップS88では、セクタ管理テーブル306内の既に
格納されている対象クラスタに対応する仮想セクタ位置
の値が0にセットされ、未使用状態に設定される。ステ
ップS89では、セクタ管理部238が、対象クラスタ
が既に格納されている領域に圧縮バッファ236のデー
タを書き込む。そして、ステップS90では、セクタ管
理部238が、格納先の仮想セクタアドレスと、仮想セ
クタ数と、圧縮時の圧縮モードとをクラスタ管理テーブ
ル308に書き込むことによって、対象クラスタに関す
る登録内容を更新する。また、セクタ管理部238は、
セクタ管理テーブル306において、書込み対象の仮想
セクタ位置の値を1にセットする。なお、図14のステ
ップS86およびステップS89におけるクラスタの書
込み処理の詳細手順については、さらに後述する。な
お、ステップS88〜S90の処理を、ステップS85
〜S87の処理と同一にしてもよい。
【0104】こうして図12のステップS62またはS
63におけるクラスタの書込み処理が終了すると、デバ
イスドライバ208がOS206から渡されたクラスタ
数だけの書込み処理が終了したか否かを判断する。終了
していなければステップS60に戻り、次のクラスタの
書込み処理を行なう。また、全クラスタの書込みが終了
すると、OS206に処理が戻る。OS206は、アプ
リケーションプログラム202から書込みを要求された
ファイル全部について処理が終了するまでステップS5
6〜S64の処理を繰り返す。
【0105】以上のように、既存のクラスタに書き込む
場合には、クラスタ管理テーブル308に登録されてい
る圧縮モードが読出され、その圧縮モードで圧縮が行な
われる。一方、新規クラスタに書き込む場合にはファイ
ルの拡張子に対応した圧縮モード、または、圧縮モード
テーブル305に登録されていた圧縮モードで圧縮が行
なわる。例えば、図13の例において、5クラスタ分の
サイズを有するファイル「FILE0001.EXE」の最初の4つ
のクラスタは既存クラスタ2h,4h,7h,9hに書
込む処理となるので、クラスタ管理テーブル308に登
録されている各クラスタの圧縮モードで圧縮が行なわれ
る。一方、5番目のクラスタは新規クラスタAhに書き
込む処理となるので、ファイル「FILE0001.EXE」の拡張
子「EXE」に対応した圧縮モード(速度優先モード)が
選択される。この場合、拡張子がクラスタ管理テーブル
308に登録されていない場合には、圧縮モードテーブ
ル305に登録されている圧縮モード(圧縮率優先モー
ド)で圧縮される。なお、新規クラスタAhが追加され
ると、FAT302内における既存の最後のクラスタ9
hの位置に新規クラスタAhのアドレス「00Ah」が
登録され、また、新規クラスタAhの位置には最後のク
ラスタであることを示す値「FFFh」が登録される。
【0106】なお、既格納のファイルの書込み処理を行
なう場合には、その既存クラスタの圧縮モードと新規ク
ラスタの圧縮モードが異なる場合がある。しかし、圧縮
データ格納領域310から読出される時には圧縮データ
が伸長されるので、ユーザは圧縮モードの混在を特に意
識することなく、そのファイルを読出したり書き込んだ
りすることが可能である。
【0107】G.ファイルのクローズ処理手順:図16
は、ファイルのクローズ処理の手順を示すフローチャー
トである。ステップS91では、アプリケーションプロ
グラム202がファイルハンドルを指定してOS206
を呼び出してクローズ処理の要求を行う。処理要求監視
部210は処理要求をフックして受け取る(ステップS
92)。処理要求監視部210は、ファイルハンドルが
処理中ファイルテーブル216に登録されているか否か
を調べ、ファイルハンドルが圧縮モード決定テーブル2
14に登録されている場合にはテーブルからファイルハ
ンドルと圧縮モードを削除する(ステップS93)。処
理要求監視部210はさらに、オリジナルINT−21
格納領域212内のベクタアドレスを使用してOS20
6を呼び出す(ステップS94)。OS206は、ファ
イルのクローズ処理を実行してファイルハンドルを開放
し処理を終了する(ステップS95)。
【0108】H.クラスタの読込み処理の手順:図17
は、クラスタの読込み処理の詳細手順を示すフローチャ
ートである。また、図18はクラスタの読込み処理にお
ける仮想セクタ毎のデータの移動を示す説明図である。
クラスタの読込み処理は、図11に示すファイルの読込
み処理手順中のステップS37における処理である。な
お、図17に示すクラスタの読込み処理は、デバイスド
ライバ208のセクタ管理部238によって実行され
る。図18において、記号「○」を付したブロックは読
込み対象クラスタを構成する仮想セクタを示しており、
記号「×」を付したブロックは他のデータが格納されて
いる仮想セクタを示している。また、物理セクタの境界
は実線で示し、仮想セクタの境界は破線で示している。
なお、以下の説明では、読込み対象クラスタを「対象ク
ラスタ」と呼ぶ。
【0109】ステップT1では、クラスタ管理テーブル
308を参照することによって、対象クラスタが格納さ
れている仮想セクタアドレスと仮想セクタ数とが取得さ
れる。図18の例では、先頭セクタアドレスが04h、
仮想セクタ数が6である。ステップT2では、得られた
仮想セクタ数NSS=6を仮想セクタカウンタ240
(図4)のカウント値SSCNTとして設定する。
【0110】ステップT3では、対象クラスタの先頭の
仮想セクタが物理セクタの先頭の仮想セクタであるるか
否かが判断される。図18の例には、対象クラスタの先
頭の仮想セクタ4hが物理セクタの先頭の仮想セクタで
はないので、ステップT4において物理セクタバッファ
242(図4)を利用した読込みが実行される。
【0111】図19は、物理セクタバッファ242を利
用した読込みの手順を示すフローチャートである。ステ
ップT21では、対象クラスタの先頭の仮想セクタを含
む物理セクタの内容が物理セクタバッファ242に読み
込まれる。図18の例では、仮想セクタ4h,5hで構
成される物理セクタの内容が物理セクタバッファ242
に読込まれる。ステップT22では、対象クラスタの先
頭の仮想セクタ4hの内容が物理セクタバッファ242
から圧縮バッファ236に転送される。ステップT23
では、読み込みが終了した仮想セクタ数RSSを仮想セ
クタカウンタ240のカウント値SSCNTから減算す
る。この実施例では、1物理セクタを2つの仮想セクタ
に分割しているので、ステップT23における読込み仮
想セクタ数RSSは1であり、仮想セクタカウンタ24
0のカウント値SSCNTは5(=6−1)となる。な
お、一般に、1物理セクタを1/2n 個の仮想セクタに
分割する場合には、ステップT23における読込み仮想
セクタRSSは1〜(2n−1)の間の値を取る。
【0112】ステップT24において、仮想セクタカウ
ンタ240のカウント値SSCNTが0の場合には、図
17の既存クラスタの読込み処理を終了する。一方、カ
ウント値SSCNTが0でない場合には、図17のステ
ップT5に戻る。
【0113】ステップT5では次の式に従って読込み物
理セクタ数RPSが求められる。 RPS=INT(SSCNT/RSEC) …(1) ここで、RSECは物理セクタサイズを仮想セクタサイ
ズで割った値、すなわち、1物理セクタに含まれる仮想
セクタの数であり、この実施例ではRSEC=2であ
る。また、演算子INTは括弧内の値の小数点以下を切
り捨てる演算を示している。この演算は、かっこ内の除
算の商を取ることと等価である。図18の例では、ステ
ップT4の処理によってSSCNT=5となっていたの
で、読込み物理セクタ数RPSは2となる。
【0114】ステップT6では、圧縮データ格納領域3
10から読込み物理セクタ数RPS分のデータが圧縮デ
ータ格納領域310から圧縮バッファ236に読み込ま
れ。図18の例では、仮想セクタ5h〜8hまでの2物
理セクタ分の内容が圧縮バッファ236に読込まれる。
ステップT7では、仮想セクタカウンタ240のカウン
ト値SSCNTから読み込んだ仮想セクタ数RSSが減
算される。図18の例では、元のSSCNT=5,RS
S=4なので、SSCNT=1となる。
【0115】ステップT8において仮想セクタカウンタ
240のカウント値SSCNTが0の場合にはクラスタ
の読込み処理を終了する。一方、カウント値SSCNT
が0でない場合には、読込まれていない仮想セクタが残
っているので、ステップT9とT10の処理を実行す
る。これは、図18の仮想セクタ9hの内容を読込むた
めの処理である。
【0116】ステップT9では、残りの仮想セクタを含
む物理セクタの内容が圧縮データ格納領域310から物
理セクタバッファ242に読み込まれる。図18の例で
は、2つの仮想セクタ9h,10hの内容が物理セクタ
バッファ242に読込まれる。このように物理セクタ単
位で読込む理由は、ハードディスク装置123からのデ
ータの読出しが物理セクタ単位でしか行なえないからで
ある。ステップT10では、その物理セクタ内の先頭の
SSCNT個の仮想セクタの内容が、物理セクタバッフ
ァ242から圧縮バッファ236に転送される。以上の
処理によって、読込み対象クラスタを構成する全ての仮
想セクタの内容が圧縮データ格納領域310から圧縮バ
ッファ236に転送されたことになる。
【0117】以上のように、クラスタの読込み処理で
は、読込み対象クラスタの先頭部の仮想セクタが物理ク
ラスタの先頭セクタでは無い場合や、読込み対象クラス
タの後端の仮想クラスタが物理セクタの後端では無い場
合にも、物理セクタバッファ242を利用して読込みた
い仮想セクタのみを圧縮バッファ236に読込むことが
可能である。
【0118】I.クラスタの書込み処理の手順:図20
および図21は、クラスタの書込み処理の詳細手順を示
すフローチャートである。また、図22はクラスタの書
込み処理における仮想セクタ毎のデータの移動を示す説
明図である。クラスタの書込み処理は、図14のステッ
プS72、および、図15のステップS86,S89に
おける処理である。なお、図20,21に示すクラスタ
の書込み処理は、デバイスドライバ208のセクタ管理
部238によって実行される。以下の説明では、書込み
の対象となるクラスタを単に「対象クラスタ」と呼ぶ。
【0119】ステップT31では、以下の式によって対
象クラスタの仮想セクタ数SSCNTが算出され、その
値が仮想セクタカウンタ240に設定される。 SSCNT=RND(ZDATA/ZSS) …(2) ここで、ZDATAは圧縮されて圧縮バッファ236に
格納されている書込み対象のデータのデータサイズ(バ
イト数)であり、ZSSは仮想セクタのサイズ(バイト
数)である。また、演算子RNDは、括弧内の数値の小
数点以下を切り上げる演算を示している。この演算は、
かっこ内の除算に余りがある時に、その商に1を加算す
ることと等価である。なお、図22の例では、SSCN
T=6である。
【0120】ステップT32では、仮想セクタ数SSC
NT分だけの連続空き領域がセクタ管理テーブル306
(図7)を参照して探索される。セクタ管理テーブル3
06においては、使用中の仮想セクタの位置に1が登録
され、未使用の仮想セクタの位置には0が登録されてい
るので、連続したSSCNT個の仮想セクタの領域を容
易に探すことができる。
【0121】ステップT33では、対象クラスタの先頭
の仮想セクタが物理セクタの先頭の仮想セクタに相当し
ているか否かが判断される。なお、図7のセクタ管理テ
ーブル306と圧縮データ格納領域310の関係を参照
すれば解るように、対象クラスタが既存クラスタ(圧縮
データ格納領域310に格納されているクラスタ)であ
る時(たとえばクラスタ7h)にも、その先頭の仮想セ
クタが物理セクタの先頭の仮想セクタでは無い場合があ
る。また、対象クラスタが新規クラスタである時にも、
その先頭の仮想セクタが物理セクタの先頭仮想セクタで
は無い場合がある。図22の例では、対象クラスタの先
頭の仮想セクタ4hが、対応する物理セクタの先頭の仮
想セクタでは無いので、図20のステップT34におい
て物理セクタバッファ242を利用した書込みが実行さ
れる。
【0122】図23は、ステップT34の詳細手順を示
すフローチャートである。ステップT51では、該当す
る物理セクタの内容が物理セクタバッファ242に読み
込まれる。図22の例では、仮想セクタ3h,4hの内
容が物理セクタバッファ242に読込まれる。
【0123】ステップT52では、ステップT51で読
込まれた物理セクタに格納すべき仮想セクタの内容が、
圧縮バッファ236から物理セクタバッファ242に転
送される。図22の例では、圧縮バッファ236内の先
頭の仮想セクタの内容が転送される。そして、ステップ
T53では、物理セクタバッファ242の内容が圧縮デ
ータ格納領域310の対応する物理セクタに書き込まれ
る。この結果、図22の仮想セクタ4hの内容が更新さ
れる。なお、仮想セクタ3hには元と同じ内容が書き込
まれるだけなので、実質的には変更されていない。
【0124】ステップT54では、仮想セクタカウンタ
240のカウント値SSCNTから書き込んだ仮想セク
タ数WSSが減算される。この実施例では、1物理セク
タを2つの仮想セクタに分割しているので、ステップT
54における書込み仮想セクタ数WSSは1であり、仮
想セクタカウンタ240のカウント値SSCNTは5
(=6−1)となる。なお、一般に、1物理セクタを1
/2n 個の仮想セクタに分割する場合には、ステップT
54における書込み仮想セクタWSSは1〜(2n
1)の間の値を取る。
【0125】ステップT55において仮想セクタカウン
タ240のカウント値SSCNTが0の場合には、図2
0,21のクラスタの書込み処理を終了する。一方、S
SCNTが0でない場合には、図20のステップT35
に戻る。
【0126】ステップT35では、以下の式に従って書
込み物理セクタ数WPSが算出される。 WPS=SSCNT/RSEC …(3) ここで、RSECは1物理セクタに含まれる仮想セクタ
の数である。
【0127】図22の例では、ステップT34で1仮想
セクタ分の書込みが終了しているのでステップT35に
おけるカウント値SSCNTは5であり、また、RSE
C=2なので、書込み物理セクタ数WPSは2.5であ
る。この書込み論理セクタ数WPSは、物理セクタバッ
ファ242を介さずに圧縮バッファ236から圧縮デー
タ格納領域310に直接転送する論理セクタ数を示す値
である。以下のステップT36〜T38は、圧縮バッフ
ァ236内の後端の仮想セクタが書込まれるべき圧縮デ
ータ格納領域310内の物理セクタ領域が、他のクラス
タのデータによって使用されているか否かに応じて書込
み物理セクタ数WPSの値を調整する処理である。
【0128】ステップT36において書込み物理セクタ
数WPSに余りがない場合にはステップT39に移行す
る。ステップT39では、書込み物理セクタ数WPSの
小数点以下が切り捨てられるので、余りがない場合には
実質的な処理は行なわれない。一方、書込み物理セクタ
数WPSに余りがある場合には、ステップT37におい
て、書込まれるべき物理セクタ領域の残りの部分が他の
クラスタにより既に使用されているか調べ、使用されて
いる場合にはステップT39においてそのまま書込み物
理セクタ数WPSを整数化する。一方、ステップT37
において、最後の物理セクタの残りの部分が他のクラス
タにより使用されていない場合にはステップT38にお
いて書込み物理セクタ数WPSに1を加算した後に、ス
テップT39において整数化が行なわれる。図22の例
では、最後の仮想セクタ9hが書き込まれるべき物理セ
クタ領域の一部が他のクラスタで使用されている(記号
「×」が付されている)ので、ステップT38をスキッ
プして書込み論理セクタ数WPS(=2.5)がそのま
ま整数化されるの。従って、ステップT39ではWPS
=2となる。
【0129】図21のステップT40では、書込み物理
セクタWPS分の未書込みデータが圧縮バッファ236
から圧縮データ格納領域310に書き込まれる。図22
の例では、仮想セクタ5h〜8hまでの2物理セクタ分
のデータが転送される。
【0130】ステップS41では、転送された仮想セク
タ数(=2*WPS)が仮想セクタカウンタ240のカ
ウント値SSCNTから減算され、ステップS42では
カウント値SSCNTが0に等しいか否かが判断され
る。カウント値SSCNTが0の時には、圧縮バッファ
236内に未書込みデータが残っていないので、クラス
タの書込み処理を終了する。一方、カウント値SSCN
Tが0でない場合には未書込みデータが残っているの
で、ステップT43〜T45が実行される。図22の例
では、ステップT40の前におけるカウント値SSCN
Tは5であり、書込み仮想セクタ数WPSは4なので、
ステップT42におけるカウント値SSCNTは1であ
る。
【0131】ステップT43では、圧縮データ格納領域
310内の次の物理セクタ領域(図22において仮想セ
クタ9h,Ahを含む物理セクタ)の内容が物理セクタ
バッファ242に読込まれる。ステップT44では、圧
縮バッファ236内の未書込みの仮想セクタの内容が物
理セクタバッファ242に転送される。そして、ステッ
プT45では、物理セクタバッファ242の内容が圧縮
データ格納領域310の元の物理セクタに書込まれる。
この結果、この物理セクタの前半の仮想セクタ9hの内
容は圧縮バッファ236内の内容で更新され、後半の仮
想セクタAhの内容は元のままに保たれる。
【0132】上述のクラスタの書込み処理では、圧縮デ
ータ格納領域310内の書込み対象クラスタの先頭の物
理セクタと後端の物理セクタに他のクラスタの内容が格
納されている場合には、物理セクタバッファ242を利
用して他のクラスタの内容を保ちつつ、書込みクラスタ
の内容が格納される。従って、物理セクタを2n 個の仮
想クラスタに分割した場合にも、書込み対象クラスタ以
外のクラスタの内容を変えずに書込み対象クラスタのみ
を格納することが可能である。
【0133】J.変形例:なお、この発明は上記実施例
に限られるものではなく、その要旨を逸脱しない範囲に
おいて種々の態様において実施することが可能であり、
例えば次のような変形も可能である。
【0134】(1)上記実施例では、圧縮モードをクラ
スタ毎に決定していたが、ファイル毎に決定しても良
い。すなわち、同じファイルを構成する複数のクラスタ
に対しては、同じ圧縮モードを割り当てるようにしても
よい。
【0135】(2)処理要求監視プログラム204やデ
バイスドライバ208の機能の少なくとも一部をハード
ウェアで実現してもよい。
【0136】(3)拡張子によるモード決定に優先し
て、個別のファイルに圧縮モードを設定できるようにし
てもよい。例えば、同じ拡張子「DIC」を有するファ
イルであっても、特定のファイル名のファイルには圧縮
率優先モードを設定し、他のファイルは無圧縮モードが
設定されるようにしてもよい。
【0137】(4)上記実施例では、各ファイルの圧縮
フラグを処理要求監視プログラム204内の処理中ファ
イルテーブル216(図2)に登録しておくこととした
が、各ファイルの圧縮フラグをOS206内に登録して
おくようにしてもよい。この場合には、ファイルの読込
み処理(図11のステップS35)や書込み処理(図1
2のステップS59)において、ファイルの圧縮フラグ
を含むコマンドパケットをOS206が作成し、デバイ
スドライバ208に転送する。
【0138】(5)データ圧縮の方法としては、可逆符
号化方法のみでなく、非可逆符号化方法を利用すること
も可能である。
【0139】
【発明の効果】以上説明したように、請求項1および
に記載した発明によれば、仮想セクタのサイズは物理
セクタのサイズよりも小さいので、データ格納領域にお
ける無効領域を低減することができるという効果があ
る。また、データファイルのファイル名から仮想セクタ
数と先頭の仮想セクタのアドレスとを調べることができ
るという効果がある。
【0140】請求項2および12に記載した発明によれ
ば、仮想セクタを管理するための2進数データのビット
数を少なくすることができるという効果がある。
【0141】
【0142】請求項3および13に記載した発明によれ
ば、仮想セクタ単位でデータ格納領域内の未使用領域を
探索して圧縮データを格納することができるという効果
がある。
【0143】請求項4および14に記載した発明によれ
ば、未使用領域の先頭の物理セクタの一部に他のデータ
が格納されている場合にも、他のデータの内容を保ちつ
つ、その物理セクタの残りの領域に圧縮データを格納す
ることができるという効果がある。
【0144】請求項5および15に記載した発明によれ
ば、未使用領域の後端の物理セクタの一部に他のデータ
が格納されている場合にも、他のデータの内容を保ちつ
つ、その物理セクタの残りの領域に圧縮データを格納す
ることができるという効果がある。
【0145】請求項6および16に記載した発明によれ
ば、読出すべき圧縮データの先頭の物理セクタの一部に
他のデータが格納されている場合にも、その物理セクタ
の中から、読出すべき圧縮データの仮想セクタのみを読
出すことができるという効果がある。
【0146】請求項7および17に記載した発明によれ
ば、読出すべき圧縮データの後端の物理セクタの一部に
他のデータが格納されている場合にも、その物理セクタ
の中から、読出すべき圧縮データの仮想セクタのみを読
出すことができるという効果がある。
【0147】請求項8および18に記載した発明によれ
ば、仮想セクタ単位でデータ格納領域内の未使用領域を
探索して圧縮データを格納することができ、また、デー
タ格納領域内から仮想セクタ単位で圧縮データを読出す
ことができるという効果がある。
【0148】
【0149】
【0150】
【0151】請求項9および19に記載した発明によれ
ば、既存のクラスタについては同じ圧縮モードで圧縮す
ることができるという効果がある。
【0152】請求項10および20に記載した発明によ
れば、書き込むべき第2の圧縮データの仮想セクタ数が
既存の第1の圧縮データの仮想セクタ数よりも多い場合
にも、第2の圧縮データを格納することができるという
効果がある。
【図面の簡単な説明】
【図1】この発明の一実施例を適用する情報処理装置の
ハードウェア構成を示すブロック図。
【図2】データの圧縮と格納を行なうプログラム群の全
体の機能を示す機能ブロック図。
【図3】この情報処理装置のメモリマップを示す説明
図。
【図4】デバイスドライバ208とハードディスク装置
123の構成を示す機能ブロック図。
【図5】物理セクタと仮想セクタの対応関係を示す説明
図。
【図6】ハードディスク装置123に格納されている内
容を示す説明図。
【図7】図6に示す各種のテーブルとデータの関係を示
す説明図。
【図8】ファイルアクセス処理の全体手順を示すフロー
チャート。
【図9】ファイルアクセス処理における圧縮モード管理
の概要を示す説明図。
【図10】ファイルの作成処理の手順を示すフローチャ
ート。
【図11】ファイルの読込み処理の手順を示すフローチ
ャート。
【図12】ファイルの書込み処理の手順を示すフローチ
ャート。
【図13】ステップS56〜S58の処理内容を示す説
明図。
【図14】新規クラスタの書込み処理の手順を示すフロ
ーチャート。
【図15】既存クラスタの書込み処理の手順を示すフロ
ーチャート。
【図16】ファイルのクローズ処理の手順を示すフロー
チャート。
【図17】クラスタの読込み処理の詳細手順を示すフロ
ーチャート。
【図18】クラスタの読込み処理における仮想セクタ毎
のデータの移動を示す説明図。
【図19】物理セクタバッファ242を利用した読込み
の手順を示すフローチャート。
【図20】クラスタの書込み処理の詳細手順を示すフロ
ーチャート。
【図21】クラスタの書込み処理の詳細手順を示すフロ
ーチャート。
【図22】クラスタの書込み処理における仮想セクタ毎
のデータの移動を示す説明図。
【図23】物理セクタバッファ242を利用した書込み
の手順を示すフローチャート。
【符号の説明】
101…CPU 104…ROM 105…RAM 112…PIC 115…マウスインタフェース 117…キーボード 118…キーボードインタフェース 121…FDC 123…ハードディスク装置 124…ハードディスクドライブ 125…HDC 128…CRT 129…CRTC 130…プリンタ 131…プリンタインタフェース 202…アプリケーションプログラム 204…処理要求監視プログラム 206…オペレーティングシステム(OS) 208…データ圧縮用デバイスドライバ 210…処理要求監視部 214…ファイル・圧縮モード決定テーブル 216…処理中ファイルテーブル 230…クラスタ管理部 232…クラスタバッファ 234…圧縮伸長部 236…圧縮バッファ 238…セクタ管理部 240…仮想セクタカウンタ 242…物理セクタバッファ 251,252…圧縮モードフラグ 301…ブートセクタ 302…FAT 304…ディレクトリ領域 305…圧縮モードテーブル 306…セクタ管理テーブル 308…クラスタ管理テーブル 310…圧縮データ格納領域
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平3−157021(JP,A) 特開 平4−291617(JP,A) 特開 平5−289821(JP,A) 特開 平4−260116(JP,A) 特開 平4−344953(JP,A) 特開 平5−165690(JP,A) 特開 昭56−118161(JP,A) 特開 平5−145437(JP,A) ざべ,日本,技術評論社,1992年10月 18日,通巻114号,p118−130 (58)調査した分野(Int.Cl.7,DB名) G06F 3/06 - 3/08 G11B 17/22 - 17/30 G11B 15/68

Claims (20)

    (57)【特許請求の範囲】
  1. 【請求項1】 コンピュータに接続されて複数の物理セ
    クタに分割されたデータ格納媒体からの圧縮データの読
    出しと書込みを行なう方法であって、 前記データ格納媒体における各物理セクタを複数の仮想
    セクタに仮想的に分割し、 前記オペレーティングシステムにおいて前記データ格納
    媒体からのデータファイルの読出しや書込みを行う単位
    として使用されるクラスタであって所定の個数の物理セ
    クタ分のデータサイズを有するクラスタを単位としてデ
    ータファイルを圧縮し、 1クラスタ分の圧縮データの前記データ格納媒体への書
    込みを前記物理セクタを単位として実行するとともに、
    前記1クラスタ分の圧縮データの書込み位置を前記仮想
    セクタの単位で管理し、 前記データ格納媒体からの1クラスタ分の圧縮データの
    読出しを前記物理セクタを単位として実行するととも
    に、前記1クラスタ分の圧縮データの読み出し位置を前
    記仮想セクタの単位で管理し、 圧縮データの仮想セクタ単位の読出しと書込みの管理
    は、前記データ格納媒体に記憶されている各データファ
    イルのファイル名と各データファイルを構成するクラス
    タとを示すテーブルと、各クラスタの仮想セクタ数と先
    頭の仮想セクタのアドレスとを示すテーブルを参照して
    行うことを特徴とする圧縮データの読出・書込方法。
  2. 【請求項2】 各物理セクタは、2n 個(nは1以上
    の整数)の仮想セクタに分割されている請求項1記載の
    圧縮データの読出・書込方法。
  3. 【請求項3】 コンピュータに接続されて複数の物理セ
    クタに分割されたデータ格納媒体に圧縮データを書込む
    方法であって、 (A)前記データ格納媒体における各物理セクタを複数
    の仮想セクタに仮想的に分割するとともに、前記コンピ
    ュータのオペレーティングシステムにおいて前記データ
    格納媒体からのデータファイルの読み出しや書き込みを
    行う単位として使用されるクラスタであって所定の個数
    の物理セクタ分のデータサイズを有するクラスタを単位
    としてデータファイルを圧縮する工程と、 (B)前記1クラスタ分の圧縮データの仮想セクタ数を
    求める工程と、 (C)前記データ格納媒体に記憶されている各データフ
    ァイルのファイル名と各データファイルを構成するクラ
    スタとを示すテーブルと、各クラスタの仮想セクタ数と
    先頭の仮想セクタのアドレスとを示すテーブルを参照し
    て、前記データ格納媒体において、前記圧縮データの仮
    想セクタ数以上のサイズを有する連続した未使用領域を
    探索する工程と、 (D)前記未使用領域に前記圧縮データを書込む工程
    と、を備える圧縮データの書込方法。
  4. 【請求項4】 請求項3記載の圧縮データの書込方法で
    あって、 前記工程(D)は、 前記未使用領域の先頭の物理セクタの一部の仮想セクタ
    に他のデータが格納されている場合には、前記先頭の物
    理セクタに格納された前記他のデータを、少なくとも1
    物理セクタの容量を有する物理セクタバッファに読み込
    む工程と、 前記物理セクタバッファ内の前記他のデータ以外の領域
    に前記圧縮データの少なくとも一部を書込む工程と、 前記物理セクタバッファに記憶されたデータを前記未使
    用領域の先頭の物理セクタに書き込む工程と、を備える
    圧縮データの書込方法。
  5. 【請求項5】 請求項3または4記載の圧縮データの書
    込方法であって、 前記工程(D)は、さらに、 (E)前記圧縮データを、1物理セクタの単位で前記デ
    ータ格納媒体に書き込む工程と、 (F)1物理セクタ分未満の仮想セクタ数の未書込デー
    タが前記圧縮データの末尾に残存した場合には、前記デ
    ータ格納媒体において次に書き込まれるべき物理セクタ
    領域のデータを物理セクタバッファに読み込み、前記物
    理セクタバッファ内の先頭部分に前記未書込データを書
    き込むとともに、前記物理セクタバッファに記憶された
    データを前記データ格納媒体の前記物理セクタ領域に書
    き込む工程と、を備える圧縮データの書込方法。
  6. 【請求項6】 コンピュータに接続されて複数の物理セ
    クタに分割されたデータ格納媒体から圧縮データを読出
    す方法であって、 (A)前記データ格納媒体における各物理セクタを複数
    の仮想セクタに仮想的に分割するとともに、前記コンピ
    ュータのオペレーティングシステムにおいて前記データ
    格納媒体からのデータファイルの読み出しや書き込みを
    行う単位として使用されるクラスタであって所定の個数
    の物理セクタ分のデータサイズを有するクラスタを単位
    としてデータファイルの読み出し要求を行う工程と、 (B)前記データ格納媒体に記憶されている各データフ
    ァイルのファイル名と各データファイルを構成するクラ
    スタとを示すテーブルと、各クラスタの仮想セクタ数と
    先頭の仮想セクタのアドレスとを示すテーブルを参照し
    て、読み出し要求あったクラスタに対応する圧縮データ
    の仮想セクタ数と先頭の仮想セクタのアドレスとを求め
    る工程と、 (C)前記先頭の仮想セクタを含む物理セクタの一部に
    前記圧縮データ以外の他のデータが格納されている場合
    には、前記物理セクタに格納されたデータを、少なくと
    も1物理セクタ分の容量を有する物理セクタバッファに
    読み込み、前記物理セクタバッファ内の前記先頭の仮想
    セクタに相当する部分を読出す工程とを備える圧縮デー
    タの読出し方法。
  7. 【請求項7】 請求項6記載の圧縮データの読出し方法
    であって、さらに、 (D)前記圧縮データを、1物理セクタの単位で前記デ
    ータ格納媒体から読出す工程と、 (E)1物理セクタ分未満の仮想セクタ数分の未読出し
    データが前記圧縮データの末尾に残存した場合には、前
    記データ格納媒体において次に読出されるべき物理セク
    タ領域のデータを前記物理セクタバッファに読込み、前
    記物理セクタバッファから前記未読出しデータを読出す
    工程と、を備える圧縮データの読出し方法。
  8. 【請求項8】 コンピュータに接続されて複数の物理セ
    クタに分割されたデータ格納媒体から圧縮データの書込
    みと読出を行なう方法であって、 (A)前記データ格納媒体における各物理セクタを複数
    の仮想セクタに仮想的に分割する工程と、 (B)前記コンピュータのオペレーティングシステムに
    おいて前記データ格納媒体からのデータファイルの読み
    出しや書き込みを行う単位として使用されるクラスタで
    あって所定の個数の物理セクタ分のデータサイズを有す
    るクラスタを単位としてデータファイルを圧縮するとと
    もに、前記1クラスタ分の圧縮データの仮想セクタ数を
    求める工程と、 (C)前記データ格納媒体において、前記1クラスタ分
    の圧縮データの仮想セクタ数以上のサイズを有する連続
    した未使用領域を探索する工程と、 (D)前記未使用領域に前記圧縮データを書込む工程
    と、 (E)前記圧縮データのファイル名と各データファイル
    を構成するクラスタとを示すテーブルと、各クラスタの
    仮想セクタ数と先頭の仮想セクタのアドレスとを示すテ
    ーブルを作成する工程と、 (F)クラスタを単位としてデータファイルの読み出し
    要求があったときに、前記テーブルを参照して、前記デ
    ータ格納媒体から読出すべき圧縮データの仮想セクタ数
    と先頭の仮想セクタのアドレスとを求める工程と、 (G)前記先頭の仮想セクタと前記仮想セクタ数とに基
    づいて、前記読出すべき圧縮データを前記データ格納媒
    体から読出す工程とを備える圧縮データの書込・読出方
    法。
  9. 【請求項9】 複数の圧縮モードのいずれかに従って被
    圧縮データを圧縮して、複数の物理セクタに分割された
    データ格納媒体に圧縮データを書込む方法であって、前記データ格納媒体における各物理セクタは複数の仮想
    セクタに仮想的に分割されており、 前記方法は、 (A)前記被圧縮データを所定のデータサイズのクラス
    タに分割する工程と、 (B)各クラスタの仮想セクタ数と先頭の仮想セクタの
    アドレスと圧縮時の圧縮モードとを含むテーブルを参照
    し、各クラスタの前記被圧縮データの旧圧縮データであ
    る第1の圧縮データが前記データ格納媒体に既に格納さ
    れている場合には、前記第1の圧縮データと同じ圧縮モ
    ードで該クラスタの被圧縮データを圧縮することによっ
    て第2の圧縮データを作成する工程と、 を備えることを特徴とするデータの圧縮・書込方法。
  10. 【請求項10】 請求項9記載のデータの圧縮・書込方
    法であって、 前記工程(B)は、 前記第2の圧縮データを圧縮データバッファに記憶する
    工程と、 前記第2の圧縮データの仮想セクタ数を求める工程と、 前記第1の圧縮データの仮想セクタ数が前記第2の圧縮
    データの仮想セクタ数以上である場合には前記第1の圧
    縮データが格納されている領域に前記第2の圧縮データ
    を格納し、前記第1の圧縮データの仮想セクタ数が前記
    第2の圧縮データの仮想セクタ数未満である場合には前
    記第2の圧縮データの仮想セクタ数以上のサイズを有す
    る未使用領域を探索して前記未使用領域に前記第2の圧
    縮データを書込む工程と、を備えるデータの圧縮・書込
    方法。
  11. 【請求項11】 コンピュータに接続されて複数の物理
    セクタに分割されたデータ格納媒体からの圧縮データの
    読出しと書込みを行なう装置であって、 各物理セクタが複数の仮想セクタに仮想的に分割された
    データ格納媒体と、 前記データ格納媒体からの圧縮データの読出しと書込み
    とを管理する読出書込制御手段と、を備え、 前記読出書込制御手段は、 前記オペレーティングシステムにおいて前記データ格納
    媒体からのデータファイルの読出しや書込みを行う単位
    として使用されるクラスタであって所定の個数の物理セ
    クタ分のデータサイズを有するクラスタを単位としてデ
    ータファイルを圧縮し、 1クラスタ分の圧縮データの前記データ格納媒体への書
    込みを前記物理セクタを単位として実行するとともに、
    前記1クラスタ分の圧縮データの書込み位置を前記仮想
    セクタの単位で管理し、 前記データ格納媒体からの1クラスタ分の圧縮データの
    読出しを前記物理セクタを単位として実行するととも
    に、前記1クラスタ分の圧縮データの読み出し位置を前
    記仮想セクタの単位で管理し、 前記装置は、さらに、前記データ格納媒体に記憶されて
    いる各データファイルのファイル名と各データファイル
    を構成するクラスタとを示すテーブルと、各クラスタの
    仮想セクタ数と先頭の仮想セクタのアドレスとを示すテ
    ーブルを備え、 前記読出書込制御手段は、前記テーブルを参照して圧縮
    データの仮想セクタ単位の読出しと書込みを管理する手
    段を備えることを特徴とする圧縮データの読出・書込装
    置。
  12. 【請求項12】 各物理セクタは、2n 個(nは1以
    上の整数)の仮想セクタに分割されている請求項11記
    載の圧縮データの読出・書込装置。
  13. 【請求項13】 コンピュータに接続されて複数の物理
    セクタに分割されたデータ格納媒体に圧縮データを書込
    む装置であって、 各物理セクタが複数の仮想セクタに仮想的に分割された
    データ格納媒体と、 前記コンピュータのオペレーティングシステムにおいて
    前記データ格納媒体からのデータファイルの読み出しや
    書き込みを行う単位として使用されるクラスタであって
    所定の個数の物理セクタ分のデータサイズを有するクラ
    スタを単位としてデータファイルを圧縮する手段と、 前記圧縮データを記憶する圧縮データバッファと、 前記1クラスタ分の圧縮データの仮想セクタ数を求める
    仮想セクタカウンタ手段と、 前記データ格納媒体に記憶されている各データファイル
    のファイル名と各データファイルを構成するクラスタと
    を示すテーブルと、各クラスタの仮想セクタ数と先頭の
    仮想セクタのアドレスとを示すテーブルを参照して、前
    記データ格納媒体において、前記圧縮データの仮想セク
    タ数以上のサイズを有する連続した未使用領域を探索す
    る探索手段と、 前記未使用領域に前記圧縮データを書込む書込手段と、
    を備える圧縮データの書込装置。
  14. 【請求項14】 請求項13記載の圧縮データの書込装
    置であって、 前記書込手段は、 少なくとも1物理セクタの容量を有する物理セクタバッ
    ファと、 前記未使用領域の先頭の物理セクタの一部の仮想セクタ
    に他のデータが格納されている場合には、前記先頭の物
    理セクタに格納された前記他のデータを前記物理セクタ
    バッファに読み込む手段と、 前記物理セクタバッファ内の前記他のデータ以外の領域
    に前記圧縮データの少なくとも一部を書込む手段と、 前記物理セクタバッファに記憶されたデータを前記未使
    用領域の先頭の物理セクタに書込む手段と、を備える圧
    縮データの書込装置。
  15. 【請求項15】 請求項13または14記載の圧縮デー
    タの書込装置であって、 前記書込手段は、さらに、 前記圧縮データを1物理セクタの単位で前記データ格納
    媒体に書き込む手段と、 1物理セクタ分未満の仮想セクタ数の未書込データが前
    記圧縮データの末尾に残存した場合には、前記データ格
    納媒体において次に書き込まれるべき物理セクタ領域の
    データを物理セクタバッファに読み込み、前記物理セク
    タバッファ内の先頭部分に前記未書込データを書き込む
    とともに、前記物理セクタバッファに記憶されたデータ
    を前記データ格納媒体の前記物理セクタ領域に書き込む
    手段と、を備える圧縮データの書込装置。
  16. 【請求項16】 コンピュータに接続されて複数の物理
    セクタに分割されたデータ格納媒体から圧縮データを読
    出す装置であって、 各物理セクタが複数の仮想セクタに仮想的に分割された
    データ格納媒体と、 少なくとも1物理セクタ分の容量を有する物理セクタバ
    ッファと、 前記コンピュータのオペレーティングシステムにおいて
    前記データ格納媒体からのデータファイルの読み出しや
    書き込みを行う単位として使用されるクラスタであって
    所定の個数の物理セクタ分のデータサイズを有するクラ
    スタを単位としてデータファイルの読み出し要求があっ
    たときに、前記データ格納媒体に記憶されている各デー
    タファイルのファイル名と各データファイルを構成する
    クラスタとを示すテーブルと、各クラスタの仮想セクタ
    数と先頭の仮想セクタのアドレスとを示すテーブルを参
    照して、読み出し要求のあったクラスタに対応する圧縮
    データの仮想セクタ数と先頭の仮想セクタのアドレスと
    を求める手段と、 前記先頭の仮想セクタを含む物理セクタの一部に前記圧
    縮データ以外の他のデータが格納されている場合に、前
    記物理セクタに格納されたデータを前記物理セクタバッ
    ファに読み込み、前記物理セクタバッファ内の前記先頭
    の仮想セクタに相当する部分を読出す読出手段とを備え
    る圧縮データの読出し装置。
  17. 【請求項17】 請求項16記載の圧縮データの書込装
    置であって、 前記読出手段は、 前記圧縮データを1物理セクタの単位で前記データ格納
    媒体から読出す手段と、 1物理セクタ分未満の仮想セクタ数分の未読出しデータ
    が前記圧縮データの末尾に残存した場合には、前記デー
    タ格納媒体において次に読出されるべき物理セクタ領域
    のデータを前記物理セクタバッファに読込み、前記物理
    セクタバッファから前記未読出しデータを読出す手段
    と、を備える圧縮データの読出し装置。
  18. 【請求項18】 コンピュータに接続されて複数の物理
    セクタに分割されたデータ格納媒体からの圧縮データの
    書込みと読出を行なう装置であって、 各物理セクタが複数の仮想セクタに仮想的に分割された
    データ格納媒体と、 前記コンピュータのオペレーティングシステムにおいて
    前記データ格納媒体からのデータファイルの読み出しや
    書き込みを行う単位として使用されるクラスタであって
    所定の個数の物理セクタ分のデータサイズを有するクラ
    スタを単位としてデータファイルを圧縮する手段と、 前記圧縮データを記憶する圧縮データバッファと、 前記1クラスタ分の圧縮データの仮想セクタ数を求める
    手段と、 前記データ格納媒体において、前記圧縮データの仮想セ
    クタ数以上のサイズを有する連続した未使用領域を探索
    する探索手段と、 前記未使用領域に前記圧縮データを書込む書込手段と、 前記圧縮データのファイル名と各データファイルを構成
    するクラスタとを示すテーブルと、各クラスタの仮想セ
    クタ数と先頭の仮想セクタのアドレスとを示すテーブル
    を作成するテーブル管理手段と、 クラスタを単位としてデータファイルの読み出し要求が
    あったときに、前記テーブルを参照して、前記データ格
    納媒体から読出すべき圧縮データの仮想セクタ数と先頭
    の仮想セクタのアドレスとを求める手段と、 前記先頭の仮想セクタと前記仮想セクタ数とに基づい
    て、前記読出すべき圧縮データを前記データ格納媒体か
    ら読出す読出手段とを備える圧縮データの書込・読出装
    置。
  19. 【請求項19】 複数の圧縮モードのいずれかに従って
    被圧縮データを圧縮して、複数の物理セクタに分割され
    たデータ格納媒体に圧縮データを書込む装置であって、前記データ格納媒体における各物理セクタは複数の仮想
    セクタに仮想的に分割されており、 前記装置は、 前記被圧縮データを所定のデータサイズのクラスタに分
    割する分割手段と、 各クラスタの仮想セクタ数と先頭の仮想セクタのアドレ
    スと圧縮時の圧縮モードとを含むテーブルを参照し、1
    クラスタ分の前記被圧縮データの旧圧縮データである第
    1の圧縮データが前記データ格納媒体に既に格納されて
    いる場合には、前記第1の圧縮データと同じ圧縮モード
    で前記1クラスタ分の被圧縮データを圧縮することによ
    って第2の圧縮データを作成する圧縮手段と、を備える
    ことを特徴とするデータの圧縮・書込装置。
  20. 【請求項20】 請求項19記載のデータの圧縮・書込
    装置であって、 前記圧縮手段は、 前記第2の圧縮データを記憶する圧縮データバッファ
    と、 前記第2の圧縮データの仮想セクタ数を求める手段と、 前記第1の圧縮データの仮想セクタ数が前記第2の圧縮
    データの仮想セクタ数以上である場合には前記第1の圧
    縮データが格納されている領域に前記第2の圧縮データ
    を格納し、前記第1の圧縮データの仮想セクタ数が前記
    第2の圧縮データの仮想セクタ数未満である場合には前
    記第2の圧縮データの仮想セクタ数以上のサイズを有す
    る未使用領域を探索して前記未使用領域に前記第2の圧
    縮データを書込む手段と、を備えるデータの圧縮・書込
    装置。
JP07937294A 1994-03-24 1994-03-24 圧縮データの読出・書込方法および装置 Expired - Fee Related JP3517940B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP07937294A JP3517940B2 (ja) 1994-03-24 1994-03-24 圧縮データの読出・書込方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP07937294A JP3517940B2 (ja) 1994-03-24 1994-03-24 圧縮データの読出・書込方法および装置

Publications (2)

Publication Number Publication Date
JPH07261937A JPH07261937A (ja) 1995-10-13
JP3517940B2 true JP3517940B2 (ja) 2004-04-12

Family

ID=13688048

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07937294A Expired - Fee Related JP3517940B2 (ja) 1994-03-24 1994-03-24 圧縮データの読出・書込方法および装置

Country Status (1)

Country Link
JP (1) JP3517940B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4821042B2 (ja) * 2000-10-31 2011-11-24 ソニー株式会社 データ変換装置、記憶装置、プロトコル変換装置、デバイス制御装置、記録再生システム、及び記録再生方法
JP2003308269A (ja) * 2002-04-12 2003-10-31 Ricoh Co Ltd データ転送システム、プログラムおよび記録媒体
US20070208893A1 (en) * 2006-02-23 2007-09-06 Microsoft Corporation File-based compression on a fat volume
US8868930B2 (en) 2006-05-31 2014-10-21 International Business Machines Corporation Systems and methods for transformation of logical data objects for storage
US8782436B2 (en) 2006-05-31 2014-07-15 International Business Machines Corporation Method and system for transformation of logical data objects for storage
JP5217155B2 (ja) * 2006-11-17 2013-06-19 日本電気株式会社 ファイル圧縮自動判定方式および方法、並びに、プログラム
WO2008120388A1 (ja) * 2007-03-29 2008-10-09 Fujitsu Limited 入出力制御装置、入出力制御方法および入出力制御プログラム
JP2011191862A (ja) * 2010-03-12 2011-09-29 Innovature Technologies株式会社 ファイル管理装置、ファイル管理システム、およびファイル管理プログラム
JP7214999B2 (ja) * 2017-09-25 2023-01-31 株式会社リコー 情報処理装置及び方法
CN112269541B (zh) * 2020-10-16 2022-07-29 苏州浪潮智能科技有限公司 一种追加数据处理方法、装置、设备及可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ざべ,日本,技術評論社,1992年10月18日,通巻114号,p118−130

Also Published As

Publication number Publication date
JPH07261937A (ja) 1995-10-13

Similar Documents

Publication Publication Date Title
US6658549B2 (en) Method and system allowing a single entity to manage memory comprising compressed and uncompressed data
US5699539A (en) Virtual memory management system and method using data compression
US5414850A (en) System for transparently compressing data files in a computer system
US5774715A (en) File system level compression using holes
EP1588265B1 (en) Method and apparatus for morphing memory compressed machines
US5617552A (en) Lossless data compression system and method
US6944740B2 (en) Method for performing compressed I/O with memory expansion technology
EP1580664B1 (en) Computing device with relatively limited storage space and operating / file system thereof
US20050015374A1 (en) System and method for utilizing compression in database caches to facilitate access to database information
US7016908B2 (en) File processing method, data processing apparatus and storage medium
JPH0954723A (ja) グラフィックス・エンジンのオフ・スクリーン・メモリを仮想化するための方法及び装置
JP3517940B2 (ja) 圧縮データの読出・書込方法および装置
JPH11203191A (ja) 不揮発性記憶装置、不揮発性記憶装置の制御方法、および、不揮発性記憶装置を制御するプログラムを記録した情報記録媒体
WO2014188528A1 (ja) メモリ装置、計算機システム及びメモリ装置の制御方法
US20100115006A1 (en) Computing device with relatively limited storage space and operating/file system thereof
JP3917612B2 (ja) 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム
US11886401B2 (en) Database key compression
WO1999021092A1 (fr) Procede de traitement de fichiers, dispositif de traitement de donnees et support de memorisation
JPH0844498A (ja) 圧縮機能付き記憶装置及びそれを有するコンピュータシステム
US6654867B2 (en) Method and system to pre-fetch compressed memory blocks using pointers
JPH1021123A (ja) 情報処理装置
JP2000105717A (ja) ファイル格納制御装置及びファイル格納制御方法
JPH06324925A (ja) データ圧縮機能付ファイルシステム
JPH06161842A (ja) 外部記憶装置およびこれを用いたコンピュータ
JPH07319743A (ja) ファイル圧縮管理システム

Legal Events

Date Code Title Description
A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040119

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080206

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090206

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090206

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100206

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110206

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110206

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120206

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130206

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees