JP2831602B2 - 圧縮データ管理装置及び圧縮データ管理方法 - Google Patents

圧縮データ管理装置及び圧縮データ管理方法

Info

Publication number
JP2831602B2
JP2831602B2 JP7255416A JP25541695A JP2831602B2 JP 2831602 B2 JP2831602 B2 JP 2831602B2 JP 7255416 A JP7255416 A JP 7255416A JP 25541695 A JP25541695 A JP 25541695A JP 2831602 B2 JP2831602 B2 JP 2831602B2
Authority
JP
Japan
Prior art keywords
compressed
segment
sector
data
compression
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
JP7255416A
Other languages
English (en)
Other versions
JPH08249128A (ja
Inventor
佳之 岡田
雅永 徳世
茂 吉田
洋行 下井
尚昭 岡安
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP7255416A priority Critical patent/JP2831602B2/ja
Priority to US08/573,458 priority patent/US6816942B2/en
Publication of JPH08249128A publication Critical patent/JPH08249128A/ja
Application granted granted Critical
Publication of JP2831602B2 publication Critical patent/JP2831602B2/ja
Priority to US10/294,551 priority patent/US6925527B2/en
Priority to US10/294,766 priority patent/US6745282B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、記憶制御装置、特
に、フロッピーディスク、磁気ディスク、光ディスク、
光磁気ディスク等の回転型記憶媒体を有するディスク記
憶装置を制御する記憶制御装置に関する。
【0002】また、本発明は、ディスク記憶装置の制御
方法、特に、フロッピーディスク、磁気ディスク、光デ
ィスク、光磁気ディスク等の回転型記憶媒体を有するデ
ィスク記憶装置を制御する方法に関する。
【0003】そして、本発明は、圧縮データ管理方法に
関する。特に、フロッピーディスク、磁気ディスク、光
ディスク、光磁気ディスク等の回転型記憶媒体を有する
ディスク記憶装置での圧縮データ管理方法に関する。
【0004】
【従来の技術】ソフトウェアの進歩やマルチメディアの
浸透に伴い、画像、音声、フォント等の様々なデータが
取り扱われるようになっている。そして、このようなデ
ータを格納しておくため、記憶容量の大きなディスク記
憶装置が要求されてきている。
【0005】しかしながら、記憶容量の大きなディスク
記憶装置を次々に導入するのは経済的ではないし、シス
テムの変更に伴う時間的損失も見逃せない。そこで、デ
ィスク記憶装置の容量を増大させるかわりに、データ圧
縮(以下、圧縮)を行って、ディスク記憶装置の容量を
見かけ上増大させる技術が開発されている。このデータ
圧縮には、ソフトウェアを利用するものと、ハードウェ
アを利用するものとがある。
【0006】ソフトウェアを利用する圧縮は、例えば、
OS(Operating System)の一機能として実現されてい
る。そして、アプリケーションが書込データを出力する
と、自動的に圧縮されてディスク記録装置に記録される
ようになっている。
【0007】一方、ハードウェアを利用する圧縮は、ホ
スト(コンピュータ等)とディスク記録装置との間に介
在する装置の一機能として実現されている。そのような
装置を、本明細書では「記憶制御装置」と呼ぶ。
【0008】この記憶制御装置では、ホストから出力さ
れた書込データを圧縮してディスク記憶装置に書き込む
(記録する)が、圧縮後の書込データの記録位置は、ホ
ストから指定された書込位置とは通常異なっている。
【0009】というのも、圧縮後の書込データのデータ
長は、ホストから出力された書込データのデータ長より
も通常小さくなっている。そのため、ホストから指定さ
れた書込位置に圧縮後の書込データを記録すると、使用
されない記録領域が発生し、ディスク記憶装置が有効に
使われなくなるからである。
【0010】そこで、ホストから指定された書込位置と
は別の位置に圧縮データを記録することでディスク記憶
装置を有効に使うことが必要となるが、このような技術
を、本明細書では、「圧縮データ管理」と呼ぶ。
【0011】圧縮データ管理としては、例えば、CFS
(Claster Filing System)方式、LFS(Log Filing
System)方式、固定マッピング方式等が知られている。
CFS方式は、1つ以上の書込データを一つにまとめた
後に圧縮することで、圧縮セグメントと呼ばれるデータ
を生成する。そして、この圧縮セグメントを、その大き
さ(データ長)毎に分類する。そして、同じ大きさを有
する圧縮セグメント同士をディスク記録装置に記録する
ことで圧縮データを管理する。なお、圧縮セグメントを
ディスク記録装置のどの領域に記録するかは、圧縮セグ
メントの大きさによって決められている。
【0012】LFS方式は、データ更新の都度、現在使
用しているディスク記憶装置内の最後尾に更新データを
書き込み、更新前の圧縮データを無効にする。そして、
空いている時間にガーベージコレクション等のクリーニ
ング(整理)を実行し、先頭から最後尾間の無効データ
を詰めることで圧縮データを管理する。
【0013】固定マッピング方式は、圧縮データの圧縮
率の段階(この段階は予め設定される)に応じて作成さ
れるマッピングテーブルを利用して圧縮データを管理す
る。固定マッピング方式では、設定した圧縮率を下回る
圧縮データに対しては、例外的な処理が必要である。例
外的な処理とは、予定外のデータ長を持つデータを別に
確保していた領域に書き込むなどの処理である。
【0014】
【発明が解決しようとする課題】前述したソフトウエア
を利用する圧縮の場合、圧縮処理にCPU時間がとられ
るため、CPUに余分な負荷がかかるという欠点があ
る。
【0015】一方、ハードウェアを利用する圧縮の場
合、CPUに余分な負荷はかからないものの、下記のよ
うな問題が存在する。まず、CFS方式は、ディスク記
憶装置に対する記録位置が圧縮セグメント毎に異なるた
め、シークが多発し、読込及び書込性能が低下する恐れ
がある。また、ある大きさ(データ長)を有する圧縮セ
グメントを記録する領域が満杯になった場合、同じ大き
さの圧縮セグメントをどう記録していくかが問題となっ
ている。
【0016】次に、LFS方式は、クリーニング時に一
時的にホストからのアクセスが不能となるため、利便性
を著しく低下する問題が生じている。次に、固定マッピ
ング方式は、例外的な処理を行う際に、別に確保してお
く領域の容量を決めることが難しく、また、予め用意し
た別の領域が一杯になった際には、記憶装置への書き込
みが途中で不可能になってしまう問題が生じている。
【0017】
【0018】本発明は、圧縮率を有効化するとともにク
リーニングによる利便性低下を回避し、シークの最適化
が可能な圧縮データ管理装置及びその方法を提供するこ
とを課題とする。
【0019】
【課題を解決するための手段】本発明は、前述した課題
を解決するため、下記の如く構成されている。
【0020】即ち、請求項1の発明は、圧縮データ管理
装置であり、ホストインターフェイス部、キャッシュメ
モリ、圧縮部、バッファ、書込制御部及びディスクデー
タ管理部を備える。ホストインターフェイス部は、
ストから出力された所定長のライトデータ及びそのアド
レスが入力される。
【0021】前記キャッシュメモリは、前記インターフ
ェイス部に入力されたライトデータを複数個まとめたキ
ャッシュセグメントを保持する。前記圧縮部は、前記キ
ャッシュセグメントを圧縮した圧縮セグメントを作成す
る。
【0022】前記バッファメモリは、所定長の容量を有
し、前記圧縮セグメントを1以上格納する。前記書込制
御部は、前記バッファメモリの格納内容を圧縮セクタと
して記憶装置に記録する。前記データ管理部は、前記記
憶装置に記録された圧縮セクタのアドレス及びこの圧縮
セクタ内の圧縮セグメントのアドレスと前記インターフ
ェイス部に入力されたライトデータのアドレスとを対応
づけたテーブルを作成する。
【0023】
【0024】ここで、前記ホストとしては、例えば、ワ
ークステーションやパーソナルコンピュータ等が用いら
れる。また、前記ディスク記憶装置としては、例えば、
フロッピーディスク、磁気ディスク、光ディスク、光磁
気ディスク等の回転型記憶媒体を有する記憶装置が用い
られる。
【0025】請求項1の発明によると、ホストは、書込
要求時に、所定長のライトデータとそのアドレスとを出
力する。ライトデータ及びそのアドレスは、ホストイン
ターフェイス部に入力される。その後、ホストインター
フェイス部に入力されたライトデータを複数個まとめた
キャッシュセグメントが作成され、キャッシュメモリに
格納される。すると、圧縮部が、キャッシュセグメント
を圧縮した圧縮セグメントを作成する。圧縮セグメント
は、所定長のバッファメモリに格納される。その後、書
込制御部が、バッファメモリの格納内容を所定長の圧縮
セクタとして記憶装置に記録する。そして、データ管理
部が、記憶装置内における圧縮セクタのアドレス及び圧
縮セグメントのアドレスとライトデータとのアドレスと
を対応づけたテーブルを作成する。
【0026】
【0027】請求項2の発明は、請求項1記載の記憶装
置が、ディスク記憶装置であり、このディスク記憶装置
が、ディスクアレイ装置に設けられていることで特定し
たものである。請求項2の発明によれば、ディスクアレ
イ装置に設けられた個々のディスク記憶装置に対して、
圧縮セクタが記録される。
【0028】請求項3の発明は、圧縮データ管理方法で
あり、ホストから入力された所定長のライトデータを複
数個まとめたキャッシュセグメントを作成する第1のス
テップと、前記キャッシュセグメントを圧縮した圧縮セ
グメントを作成する第2のステップと、少なくとも1つ
の圧縮セグメントを所定長の圧縮セクタに割り付ける第
3のステップと、前記圧縮セクタを記憶装置に記録する
第4のステップと、前記記憶装置に記録された圧縮セク
タのアドレス及びこの圧縮セクタ内における圧縮セグメ
ントのアドレスと前記ホストから入力されたライトデー
タのアドレスとを対応づけたテーブルを作成する第5の
ステップとを含むことを特徴とする。
【0029】
【0030】
【0031】
【0032】
【0033】
【0034】〈本発明の第の圧縮データ管理方法〉 本発明の第の圧縮データ管理方法は、上述した課題を
解決するため、下記の如く構成されている(請求項4に
対応)。
【0035】即ち、圧縮セグメント記録ステップ及び割
合設定ステップを備えている。前記圧縮セグメント記録
ステップでは、書込要求された複数のデータをまとめた
後で圧縮することにより得られるデータを表す圧縮セグ
メントを、ディスク記憶装置に複数設けられた記録領域
を表す圧縮セグメント領域に記録する。この圧縮セグメ
ント記録ステップでは、記録される圧縮セグメントの大
きさが各圧縮セグメント毎に設定されている。
【0036】前記割合設定ステップでは、圧縮セグメン
ト領域の割合を設定する。 <本発明の第の圧縮データ管理方法> 本発明の第の圧縮データ管理方法は、前述した課題を
解決するため、下記の如く構成されている(請求項5に
対応)。
【0037】即ち、第1の圧縮データ管理方法におい
て、前記割合設定ステップでは、前記ディスク記憶装置
の初期化時に各圧縮セグメント領域の割合を設定する。 <本発明の第の圧縮データ管理方法> 本発明の第の圧縮データ管理方法は、前述した課題を
解決するため、下記の如く構成されている(請求項6に
対応)。
【0038】即ち、第の圧縮データ管理方法におい
て、前記割合設定ステップでは、前記ディスク記憶装置
の初期化時に一部分のみの圧縮セグメント領域の割合を
設定すると共に、残りの圧縮セグメント領域の割合を、
各圧縮セグメント領域別の圧縮セグメントの記録分布に
基づいて設定する。 <本発明の第の圧縮データ管理方法> 本発明の第の圧縮データ管理方法は、前述した課題を
解決するため、下記の如く構成されている(請求項7に
対応)。
【0039】即ち、第の圧縮データ管理方法におい
て、前記割合設定ステップでは、前記ディスク記憶装置
に複数のシリンダが設けられている場合に、各圧縮セグ
メント領域の割合を、シリンダ毎に設定する。 <本発明の第の圧縮データ管理方法> 本発明の第の圧縮データ管理方法は、前述した課題を
解決するため、下記の如く構成されている(請求項8に
対応)。
【0040】即ち、第の圧縮データ管理方法におい
て、前記圧縮セグメント記録ステップでは、記録対象の
圧縮セグメントが記録されるべき圧縮セグメント領域に
空きが無い場合に、記録対象の圧縮セグメントとは異な
る大きさを有する圧縮セグメントが記録される圧縮セグ
メント領域に、記録対象の圧縮セグメントを記録する。 <本発明の第の圧縮データ管理方法> 本発明の第の圧縮データ管理方法は、前述した課題を
解決するため、下記の如く構成されている(請求項9に
対応)。
【0041】即ち、第の圧縮データ管理方法におい
て、圧縮セグメントを更新して記録する場合に、更新前
と更新後とで圧縮セグメントの大きさが変わっていなけ
れば、更新前の記録位置に更新後の圧縮セグメントを記
録し、更新前と更新後とで圧縮セグメントの大きさが変
わっていれば、更新後の圧縮セグメントの大きさに応じ
た圧縮セグメント領域に更新後の圧縮セグメントを記録
するとともに、更新前の圧縮セグメントが記録されてい
た部分を空き領域として管理する圧縮データ更新記録ス
テップを設けてある。 <本発明の第の圧縮データ管理方法> 本発明の第の圧縮データ管理方法は、前述した課題を
解決するため、下記の如く構成されている(請求項10
に対応)。
【0042】即ち、第の圧縮データ管理方法におい
て、前記圧縮セグメント更新記録ステップでは、各圧縮
セグメント領域毎の空き領域を登録したテーブルを利用
して、圧縮セグメント領域の空き領域を管理する。 <本発明の第の圧縮データ管理方法> 本発明の第の圧縮データ管理方法は、前述した課題を
解決するため、下記の如く構成されている(請求項11
に対応)。
【0043】即ち、第の圧縮データ管理方法におい
て、記録対象の圧縮セグメントが記録されるべき圧縮セ
グメント領域に記録対象の圧縮セグメントを記録するた
めの空きが無い場合に、記録対象の圧縮セグメントより
も一段階大きい圧縮セグメントが記録される圧縮セグメ
ント領域に、記録対象の圧縮セグメントを記録する。 <本発明の第10の圧縮データ管理方法> 本発明の第10の圧縮データ管理方法は、前述した課題
を解決するため、下記の如く構成されている(請求項1
2に対応)。
【0044】即ち、第の圧縮データ管理方法におい
て、記録対象の圧縮セグメントが記録されるべき圧縮セ
グメント領域に記録対象の圧縮セグメントを記録するた
めの空きが無い場合に、Nを自然数として、記録対象の
圧縮セグメントの1/Nの大きさを有する圧縮セグメン
トが記録される圧縮セグメント領域に、N分割された記
録対象の圧縮セグメントを記録する。 <本発明の第11の圧縮データ管理方法> 本発明の第11の圧縮データ管理方法は、前述した第3
の課題を解決するため、下記の如く構成されている(請
求項13に対応)。
【0045】即ち、圧縮セグメント記録ステップ、初期
値設定ステップ及び記録位置変更ステップを備えてい
る。前記圧縮セグメント記録ステップでは、書込要求さ
れた複数のデータをまとめた後で圧縮することにより得
られるデータを表す圧縮セグメントを、ディスク記憶装
置に複数設けられた記録領域を表す圧縮セグメント領域
に記録する。この圧縮セグメント記録ステップでは、各
圧縮セグメント領域に、略同一の大きさの圧縮セグメン
トを記録する。
【0046】前記初期値設定ステップでは、前記圧縮セ
グメント中の記録位置の初期値を設定する。前記記録位
置変更ステップでは、前記圧縮セグメント記録ステップ
で圧縮セグメントが記録された場合に、記録位置を変更
する。 <本発明の第12の圧縮データ管理方法> 本発明の第12の圧縮データ管理方法は、前述した課題
を解決するため、下記の如く構成されている(請求項1
4に対応)。
【0047】即ち、第又は第11の圧縮データ管理方
法において、前記ディスク記憶装置には、データの書込
を要求するホストが接続されている。そして、前記ディ
スク記憶装置に記録された容量が、予め設定された閾値
を越えた場合に、前記ホストにそのことが通知される。 <本発明の第13の圧縮データ管理方法> 本発明の第13の圧縮データ管理方法は、前述した課題
を解決するため、下記の如く構成されている(請求項1
5に対応)。
【0048】即ち、キャッシュセグメント生成ステッ
プ、圧縮セグメント生成ステップ、圧縮セグメント割付
ステップ及び圧縮セクタ記録ステップを備えている。前
記キャッシュセグメント生成ステップでは、書込要求さ
れた複数のデータをまとめることにより得られるデータ
を表すキャッシュセグメントを生成する。
【0049】前記圧縮セグメント生成ステップでは、前
記キャッシュセグメント生成ステップで生成されたキャ
ッシュセグメントを圧縮することにより得られるデータ
を表す圧縮セグメントを生成する。
【0050】前記圧縮セグメント割付ステップでは、前
記圧縮セグメント生成ステップで生成された圧縮セグメ
ントを、所定長を有するバッファを表す圧縮セクタに割
り付ける。
【0051】前記圧縮セクタ記録ステップでは、前記圧
縮セグメント割付ステップで圧縮セグメントが割り付け
られた圧縮セクタを、ディスク記憶装置に記録する。 <本発明の第14の圧縮データ管理方法> 本発明の第14の圧縮データ管理方法は、前述した課題
を解決するため、下記の如く構成されている(請求項1
6に対応)。
【0052】即ち、第13の圧縮データ管理方法におい
て、前記キャッシュセグメント生成ステップで生成され
るキャッシュセグメントは、書込要求されたデータの最
小単位を表す論理セクタ長の自然数倍のデータ長を有す
る。 <本発明の第15の圧縮データ管理方法> 本発明の第15の圧縮データ管理方法は、前述した課題
を解決するため、下記の如く構成されている(請求項1
7に対応)。
【0053】即ち、第13の圧縮データ管理方法におい
て、書込要求されたデータは、前記ディスク記憶装置内
に設けられたキャッシュメモリに格納される。そして、
前記キャッシュセグメント生成ステップでは、前記キャ
ッシュメモリに格納された書込データからキャッシュセ
グメントを生成する。 <本発明の第16の圧縮データ管理方法> 本発明の第16の圧縮データ管理方法は、前述した課題
を解決するため、下記の如く構成されている(請求項1
8に対応)。
【0054】即ち、第13の圧縮データ管理方法におい
て、前記圧縮セグメント割付ステップでは、複数の圧縮
セクタに複数の圧縮セグメントを割り付ける場合に、一
つの圧縮セクタに圧縮セグメントを割り付けていき、割
り付けられなくなったら、他の圧縮セクタに圧縮セグメ
ントを割り付けていく。 <本発明の第17の圧縮データ管理方法> 本発明の第17の圧縮データ管理方法は、前述した第3
の課題を解決するため、下記の如く構成されている(請
求項19に対応)。
【0055】即ち、第13の圧縮データ管理方法におい
て、前記圧縮セグメント割付ステップでは、複数の圧縮
セグメントを割り付ける場合に、圧縮セグメントを圧縮
率毎に分類するとともに、各分類の圧縮セグメントを組
み合わせることで割り付ける。 <本発明の第18の圧縮データ管理方法> 本発明の第18の圧縮データ管理方法は、前述した課題
を解決するため、下記の如く構成されている(請求項2
0に対応)。
【0056】即ち、第13の圧縮データ管理方法におい
て、前記圧縮セグメント生成ステップでは、アドレスを
付された圧縮セグメントをを生成する。そして、前記圧
縮セグメント割付ステップでは、複数の圧縮セクタに複
数の圧縮セグメントを割り付ける場合に、近いアドレス
を有する圧縮セグメント同士を組み合わせて割り付け
る。 <本発明の第19の圧縮データ管理方法> 本発明の第19の圧縮データ管理方法は、前述した課題
を解決するため、下記の如く構成されている(請求項2
1に対応)。
【0057】即ち、第13の圧縮データ管理方法におい
て、前記圧縮セグメント生成ステップでは、一意の番号
を有する圧縮セグメントを生成する。そして、前記圧縮
セグメント割付ステップでは、複数の圧縮セクタに複数
の圧縮セグメントを割り付ける場合に、圧縮セクタに割
り付けるべき圧縮セグメントの番号を乱数により生成す
る。 <本発明の第20の圧縮データ管理方法> 本発明の第20の圧縮データ管理方法は、前述した課題
を解決するため、下記の如く構成されている(請求項2
2に対応)。
【0058】即ち、第13の圧縮データ管理方法におい
て、前記圧縮セグメント割付ステップでは、複数の圧縮
セクタに複数の圧縮セグメントを割り付ける場合に、一
つの圧縮セクタにつき圧縮セグメントを一つずつ割り付
けてゆき、全ての圧縮セクタに割り付けたら、再度一つ
の圧縮セクタにつき圧縮セグメントを一つずつ割り付け
てゆく。 <本発明の第21の圧縮データ管理方法> 本発明の第21の圧縮データ管理方法は、前述した課題
を解決するため、下記の如く構成されている(請求項2
3に対応)。
【0059】即ち、第13の圧縮データ管理方法におい
て、前記圧縮セグメント割付ステップでは、複数の圧縮
セクタに複数の圧縮セグメントを割り付ける場合に、圧
縮セグメントが割り付けられていない領域が小さい圧縮
セクタから圧縮セグメントを割り付けてゆく。 <本発明の第22の圧縮データ管理方法> 本発明の第22の圧縮データ管理方法は、前述した課題
を解決するため、下記の如く構成されている(請求項2
4に対応)。
【0060】即ち、第13の圧縮データ管理方法におい
て、前記圧縮セグメント割付ステップでは、複数の圧縮
セクタに複数の圧縮セグメントを割り付ける場合に、圧
縮セグメントを割り付けた後の空き容量が所定値以下と
なるように割り付ける。 <本発明の第23の圧縮データ管理方法> 本発明の第23の圧縮データ管理方法は、前述した課題
を解決するため、下記の如く構成されている(請求項2
5に対応)。
【0061】即ち、第22の圧縮データ管理方法におい
て、前記圧縮セグメント割付ステップでは、圧縮セグメ
ントのデータ長と出現頻度との関係を利用して割り付け
る。 <本発明の第24の圧縮データ管理方法> 本発明の第24の圧縮データ管理方法は、前述した課題
を解決するため、下記の如く構成されている(請求項2
6に対応)。
【0062】即ち、第13の圧縮データ管理方法におい
て、前記圧縮セグメント割付ステップでは、複数の圧縮
セクタに複数の圧縮セグメントを割り付ける場合に、圧
縮セグメントを割り付けた後の空き容量が、その後に割
り付けられる圧縮セグメントのデータ長となる圧縮セク
タが選択されて割り付ける。 <本発明の第25の圧縮データ管理方法> 本発明の第25の圧縮データ管理方法は、前述した課題
を解決するため、下記の如く構成されている(請求項2
7に対応)。
【0063】即ち、第13の圧縮データ管理方法におい
て、前記圧縮セクタ記録ステップでは、複数の圧縮セク
タを記録する場合に、所定の圧縮率を達成した圧縮セグ
メントが割り付けられた圧縮セクタを優先して記録す
る。 <本発明の第26の圧縮データ管理方法> 本発明の第26の圧縮データ管理方法は、前述した課題
を解決するため、下記の如く構成されている(請求項2
8に対応)。
【0064】即ち、第13の圧縮データ管理方法におい
て、前記圧縮セクタ記録ステップでは、複数の圧縮セク
タを記録する場合に、空き容量が最も小さい圧縮セクタ
を優先して記録する。 <本発明の第27の圧縮データ管理方法> 本発明の第27の圧縮データ管理方法は、前述した課題
を解決するため、下記の如く構成されている(請求項2
9に対応)。
【0065】即ち、第13の圧縮データ管理方法におい
て、前記圧縮セクタ記録ステップでは、複数の圧縮セク
タを記録する場合に、新たな圧縮セグメントが割り付け
られる可能性が最も低い圧縮セクタを優先して記録す
る。 <本発明の第28の圧縮データ管理方法> 本発明の第28の圧縮データ管理方法は、前述した課題
を解決するため、下記の如く構成されている(請求項3
0に対応)。
【0066】即ち、第27の圧縮データ管理方法におい
て、前記圧縮セクタ記録ステップでは、圧縮セグメント
が割り付けられる可能性が最も低いかどうかを、圧縮セ
グメントのデータ長と出現頻度との関係を利用して判断
する。 <本発明の第29の圧縮データ管理方法> 本発明の第29の圧縮データ管理方法は、前述した課題
を解決するため、下記の如く構成されている(請求項3
1に対応)。
【0067】即ち、第13の圧縮データ管理方法におい
て、前記圧縮セクタ記録ステップでは、複数の圧縮セク
タを記録する場合に、圧縮セグメントの割り付け後から
の経過時間が最も長い圧縮セクタを優先して記録する。 <本発明の第30の圧縮データ管理方法> 本発明の第30の圧縮データ管理方法は、前述した課題
を解決するため、下記の如く構成されている(請求項3
2に対応)。
【0068】即ち、第13の圧縮データ管理方法におい
て、前記ディスク記憶装置に記録された圧縮セクタ中に
含まれる圧縮セグメントの内容を更新する場合に、更新
対象の圧縮セグメントが含まれる圧縮セクタを前記ディ
スク記憶装置から読み出して圧縮セグメントの内容を更
新し、再び前記ディスク記憶装置に記録する更新ステッ
プが設けられている。 <本発明の第31の圧縮データ管理方法> 本発明の第31の圧縮データ管理方法は、前述した課題
を解決するため、下記の如く構成されている(請求項3
3に対応)。
【0069】即ち、割付ステップ、圧縮セクタ記録ステ
ップ及び圧縮セグメント読出ステップを備えている。前
記割付ステップでは、書込要求された複数のデータをま
とめた後で圧縮することにより得られるデータを表す圧
縮セグメントを、所定長を有するバッファを表す圧縮セ
クタに割り付ける。
【0070】前記圧縮セクタ記録ステップでは、前記割
付ステップで割り付けされた圧縮セクタを、ディスク記
憶装置に記録する。前記圧縮セグメント読出ステップで
は、前記圧縮セクタ記録ステップで記録された圧縮セク
タ中の圧縮セグメントの内容を更新する場合に、更新対
象の圧縮セグメントが割り付けられた圧縮セクタから、
更新対象以外の圧縮セグメントを読み出す。
【0071】そして、前記割付ステップでは、圧縮セグ
メント読出ステップで読み出された圧縮セグメント及び
更新対象の圧縮セグメントを圧縮セクタに割り付ける。 <本発明の第32の圧縮データ管理方法> 本発明の第32の圧縮データ管理方法は、前述した課題
を解決するため、下記の如く構成されている(請求項3
4に対応)。
【0072】即ち、第31の圧縮データ管理方法におい
て、更新対象の圧縮セグメントが割り付けられた圧縮セ
クタを記録していた前記ディスク記録装置の領域を未使
用領域に変更する領域変更ステップが設けられている。 <本発明の第33の圧縮データ管理方法> 本発明の第33の圧縮データ管理方法は、前述した課題
を解決するため、下記の如く構成されている(請求項3
5に対応)。
【0073】即ち、割付ステップ、圧縮セクタ記録ステ
ップ、無効データ領域登録ステップ、比較ステップ、解
放処理実行ステップ及び解放処理実行決定ステップを備
えて構成されている。
【0074】割付ステップでは、書込要求された複数の
データをまとめた後で圧縮することにより得られるデー
タを表す圧縮セグメントを、所定長を有するバッファを
表す圧縮セクタに割り付ける。
【0075】圧縮セクタ記録ステップでは、前記割付ス
テップで割り付けされた圧縮セクタを、ディスク記憶装
置に記録する。無効データ領域登録ステップでは、前記
圧縮セクタ記録ステップで記録された圧縮セクタ中の圧
縮セグメントの内容を更新する場合に、更新前の圧縮セ
クタが割り付けられていた領域を無効データ領域として
登録する。
【0076】比較ステップでは、前記圧縮セクタ記録ス
テップで記録された圧縮セクタにおける無効データ領域
の大きさと予め設定された基準値とを比較する。解放処
理実行ステップでは、無効データ領域を含む圧縮セクタ
から無効データ領域以外の領域に割り付けられた圧縮セ
グメントを読み出すとともに、圧縮セグメントが読み出
された圧縮セクタを、その全領域が割り付け可能なよう
に変更する処理を表す圧縮セクタ解放処理を実行する。
【0077】解放処理実行決定ステップでは、前記比較
ステップでの比較結果に基づいて、前記圧縮セクタ解放
処理実行ステップを行うか否かを決定する。 <本発明の第34の圧縮データ管理方法> 本発明の第34の圧縮データ管理方法は、前述した課題
を解決するため、下記の如く構成されている(請求項3
6に対応)。
【0078】即ち、第33の圧縮データ管理方法におい
て、無効データ領域を最も多く含む圧縮セクタを検出す
る圧縮セクタ検出ステップを設けてある。そして、前記
圧縮セクタ解放処理実行ステップでは、前記圧縮セクタ
検出ステップで検出された圧縮セクタに対して、圧縮セ
クタ解放処理を実行する。 <本発明の第35の圧縮データ管理方法> 本発明の第35の圧縮データ管理方法は、前述した第3
の課題を解決するため、下記の如く構成されている(請
求項37に対応)。
【0079】即ち、第34の圧縮データ管理方法におい
て、前記圧縮セクタ検出ステップでは、複数の数値と、
その数値を無効データ領域の大きさとして有する圧縮セ
クタとを対応づけて格納するテーブルを利用して、無効
データ領域を最も多く含む圧縮セクタを検出する。
【0080】
【発明の実施の形態】以下、図面に基づいて、本発明の
実施の形態を説明する。 1.実施形態の概要 本実施形態は、圧縮・復元機能を持たないディスク記憶
装置(以下、ハードディスクという)に、圧縮・復元機
能を実現させる記憶制御装置に関する実施形態である。 2.全体構成 図1は、実施形態における構成図である。同図に示すよ
うに、記憶制御装置20には、ホスト10及びハードデ
ィスク30が接続されている。
【0081】(ホスト10)ホスト10は、記憶制御装
置20を意識せずに、ハードディスク30に対して書込
及び読出を行う装置であり、具体的には、ワークステー
ションやパーソナルコンピュータ等が用いられている。
【0082】ホスト10は、書込を行うために、書込デ
ータと書込データの書込位置を出力する。また、ホスト
10は、読出を行うため、読出データが記録された位置
(以下、読出位置という)を出力する。
【0083】なお、ホスト10は、通常、4Kバイト程
度の大きさのデータを1単位としてハードディスク30
との間で書込及び読出を行う。この1単位のデータは、
論理セクタと呼ばれる。
【0084】(ハードディスク30)ハードディスク3
0は、圧縮・復元機能を持たないタイプが使用されてお
り、記憶制御装置30で圧縮されたデータが書き込まれ
る(記録される)。
【0085】(記憶制御装置20)記憶制御装置20
は、ホスト10から入力した書込データを圧縮してハー
ドディスク30に書き込む。圧縮された書込データの大
きさは、圧縮前よりも小さくなる。従って、ホスト10
が指定した書込位置に書込データを書き込むと、ハード
ディスク30の記録領域を有効に使用できなくなる。
【0086】そこで、記憶制御装置20は、ホスト10
が指定した書込位置とは別の位置に書込データを書き込
むことで、ハードディスク30の記録領域を有効に使用
する処理、即ち圧縮データ管理処理を行っている。
【0087】そして、記憶制御装置20は、ホスト10
から読出要求を入力した場合に、ハードディスク30か
ら読み出したデータを復元してホスト10に出力する。
次に、図1を参照して、記憶制御装置20の構成要素を
説明する。
【0088】(イ)ホストインタフェース部21 ホストインタフェース部21は、ホスト10に接続され
るとともに、ディスクデータ管理部27及びキャッシュ
メモリ22に接続されている。
【0089】また、ホストインタフェース部21は、ホ
スト10との間でインタフェースを行う。即ち、ホスト
10から書込命令や読出命令等を入力すると共に、読出
データをホスト10に出力する。
【0090】(ロ)キャッシュメモリ22 キャッシュメモリ22は、ホストインタフェース部21
及び圧縮・復元部23に接続されている。
【0091】また、キャッシュメモリ22は、ホストイ
ンタフェース部21から入力した書込データを一時的に
格納する。そして、キャッシュメモリ22は、復元が行
われた読出データを圧縮・復元部23から入力して一時
的に格納する。
【0092】(ハ)圧縮・復元部23 圧縮・復元部23は、ディスクデータ管理部27、ディ
スクアクセス制御部26、キャッシュメモリ22、バッ
ファメモリ24及びエラー訂正フォーマッタ部25に接
続される。
【0093】また、圧縮・復元部23は、キャッシュメ
モリ22に格納された書込データを1つ以上まとめた後
に圧縮する。このとき、圧縮結果がディスクデータ管理
部27に通知される。
【0094】そして、圧縮・復元部23は、エラー訂正
フォーマッタ部25から入力した読出データを復元す
る。 (ニ)バッファメモリ24 バッファメモリ24は、圧縮・復元部23で圧縮された
書込データを一時的に格納する。
【0095】(ホ)エラー訂正フォーマッタ部25 エラー訂正フォーマッタ部25は、バッファメモリ24
に格納された圧縮後の書込データにエラー訂正用符号を
付加して、ハードディスク30に記録する。また、エラ
ー訂正フォーマッタ部25は、ハードディスク30から
読み出されたデータをエラー訂正用符号に基づいて訂正
する。
【0096】(ヘ)ディスクデータ管理部27 ディスクデータ管理部27は、ホストインタフェース部
21、圧縮・復元部23及びディスクアクセス制御部2
6に接続される。
【0097】また、ディスクデータ管理部27は、ホス
ト10から指定された書込データの書込位置と圧縮後の
書込データの記録位置との対応関係が格納された管理テ
ーブル27aを有する。
【0098】ここで、管理テーブル27aは、図3
(a)及び図3(b)に示される2つのテーブルから構
成されている。図3(a)に示される第1番目のテーブ
ルは、書込位置欄、圧縮率欄、記録位置欄及び有効・無
効欄を有している。
【0099】書込位置欄は、ホスト10から指定された
書込データの書込位置が格納される欄であり、具体的に
は、“0000”から始まる4桁の16進数の番号が格
納される。なお、この番号は「論理ブロックアドレス」
と呼ばれる。
【0100】圧縮率欄は、圧縮・復元部23で書込デー
タがどの程度圧縮されたかを示す情報が格納される欄で
ある。図3の圧縮率欄に示されている“1”や“2”
は、図4における領域、に対応する。従って、書込
位置0002H(Hは、16進数であることを示す記
号)が指定された書込データは、圧縮率1/4〜1/2
の間に圧縮されていることになる。
【0101】記録位置欄は、書込位置欄に示された書込
位置を指定された書込データが圧縮された後で、ハード
ディスク30のどの位置に記録されたかを情報が格納さ
れる欄である。具体的には、“0000”から始まる4
桁の16進数の番号が格納される。なお、この番号は
「論理ブロックアドレス」と呼ばれる。
【0102】有効/無効欄は、記録位置欄に示された記
録位置を記録されたデータの内容が有効であるか無効で
あるかを示す情報が格納される欄である。有効であるか
無効であるかについては後述されるが、一例としては、
既に記録されているデータを更新する場合に、更新後の
データの記録位置と更新前のデータの記録位置とが異な
る場合には、更新前のデータの記録位置は無効とされ
る。
【0103】図3(b)に示される第2番目のテーブル
は、圧縮セグメント領域割合欄、先頭位置欄、割付可能
数欄、割付済欄及び新規割付位置欄を有している。圧縮
セグメント領域割合欄は、複数に区分された記録領域で
ある圧縮セグメント領域が、ハードディスク30上でど
の割合で設定されているかを示す値が格納される欄であ
る。図3(b)の場合、4つの圧縮セグメント領域が、
それぞれ5%、50%、30%及び15%で設定されて
いることを示している。
【0104】先頭位置欄は、圧縮セグメント領域が、ハ
ードディスク30上でどの位置から設けられているかを
示す情報が格納される欄であり、具体的には、4桁の1
6進数の番号が格納される。例えば、ハードディスク3
0の全体の容量が1Gバイト(=1,073,741,824バイ
ト) で、1単位の物理ブロックの大きさが512バイ
トの場合、ハードディスク30には、2,097,152 単位の
物理ブロックが設けられることになる。2,097,152 とい
う値を、圧縮セグメント領域割合欄に示される割合に従
って16進数表示すると、図3(b)の先頭位置欄に示
される値になる。
【0105】割付可能数欄は、各圧縮セグメント領域に
割付可能な数が格納される欄である。割付済数欄は、割
付可能数欄に示される値のうち、既に割付が済んでいる
数が格納される欄である。
【0106】新規割付位置欄は、各圧縮セグメント領域
のどの位置から割付開始可能かを示す値が格納される欄
である。 (ト)ディスクアクセス制御部26 ディスクアクセス制御部26は、ディスクデータ管理部
27、圧縮・復元部23及びハードディスク30に接続
される。
【0107】また、ディスクアクセス制御部26は、エ
ラー訂正フォーマッタ部25でエラー訂正用符号が付加
された書込データが、ディスクデータ管理部27が有す
る管理テーブル27aに格納されている記録位置に記録
されるように、ハードディスク30に対するディスクア
クセスを制御する。 2.1 全体構成の変形例 図2は、実施例の変形例の構成図である。同図に示すよ
うに、ハードディスク30が複数設けられている場合に
は、個々のハードディスク30に記憶制御装置20を接
続する形態で構成しても良い。このように構成すれば、
ディスクアレイ装置(RAID:Redundant Arrays of
Inexpensive Disks) として実現されたハードディスク
30にも応用可能となる。
【0108】また、記憶制御装置20が、ハードディス
ク30に内蔵されるように構成しても良い。 3.CFS方式による圧縮データ管理 次に、記憶制御装置20で行われる圧縮データ管理につ
いて説明する。ここで説明する圧縮データ管理は、従来
技術のところで説明したCFS方式をベースにしてい
る。 3.1 CFS方式による圧縮データ管理の処理概念 3.1.1 圧縮データの管理単位 図5及び図4に、圧縮データの管理単位を示す。
【0109】図5(a)は、キャッシュ・セグメント・
ブロックと圧縮セグメント・ブロックとの対応関係を示
している。同図中、セグメントブロック長は4096、
物理ブロック長は512であり、圧縮ブロックは、それ
ぞれの圧縮率に応じて物理ブロックの整数倍となってい
る。また、図5(b)は、各圧縮セグメント領域におけ
る圧縮ブロックの取り方を示している。
【0110】図4(a)は、論理ブロックと圧縮セグメ
ント・ブロックとの対応関係を示している。同図中、セ
グメントブロック長は4096、物理ブロック長は51
2であり、圧縮ブロックは、それぞれの圧縮率に応じて
物理ブロックの整数倍となっている。また、図4(b)
は、各圧縮セグメント領域における圧縮ブロックの取り
方を示している。 3.1.2 処理手順1 図6は、圧縮データの管理方法の処理手順1を示してい
る。まず、初期設定として、見かけ上のディスクの容量
を、例えば物理容量の2倍に設定する。そして、ホスト
10からアクセスされる元の固定ブロック(圧縮セグメ
ント)サイズに対して、圧縮量子化した際の異なるデー
タサイズに合わせた複数の固定ブロック(元のサイズよ
り小さい)を用意し、個々の固定ブロック毎にディスク
内に連続領域を確保する(ステップ401)。なお、元
の固定ブロックとは、ホストからアクセスされる単位
(セクタ或いはクラスタ単位で2K、4K、8K等のサ
イズ)が一様のブロックをいう。
【0111】次に、ホスト10からの命令を受け取る
(ステップ402)。次に、ステップ402で受け取っ
た命令が「Read命令かWrite命令か」を判別す
る(ステップ403)。
【0112】ステップ402で、「Read命令」と判
別された場合に、所望の元の固定ブロックに対応した圧
縮ブロックのアドレスを探す(ステップ404)。つま
り、図3(a)の表において、元の固定ブロックが論理
ブロックアドレスに対応し、圧縮ブロックが物理ブロッ
クアドレスに対応する。例えば、0002Hの論理ブロ
ックは、領域2の19998Hの圧縮ブロックに1対1
に対応する。
【0113】そして、探したアドレスにある圧縮ブロッ
クのデータをディスクから読み出す(ステップ40
5)。そして、復元処理を指令する(ステップ40
6)。
【0114】そして、所望の元の固定ブロックデータを
ホスト10に転送する(ステップ407)。そして、ホ
スト10からの命令を待つ(ステップ408)。
【0115】一方、ステップ402で、「Write命
令」と判別された場合に、ディスクデータ管理部27が
圧縮・復元部23に対して圧縮処理を指令する(ステッ
プ408)。
【0116】そして、圧縮結果を受け取る(ステップ4
09)。そして、圧縮量子化サイズに対応する領域に書
き込める空きブロックがあるかないかを判別する(ステ
ップ410)。なお、対応する領域とは、図5、図3の
同じ圧縮サイズのブロックを縮めた領域である。例え
ば、図3のある領域の全圧縮ブロック数と占有圧縮ブロ
ック数が同数なら、その領域には書き込む空きブロック
がもうないことを示している。
【0117】ステップ410で、「ない」と判別された
場合に、他の領域で書き込めるブロックがあるかないか
を判別する(ステップ411)。ステップ411で「あ
る」と判別された場合とステップ410で「ある」と判
別された場合に、ディスク内の該当する圧縮ブロックに
データを書き込む(ステップ412)。そして、ステッ
プ413に移行する。
【0118】ステップ411で「ない」と判別された場
合に、ホスト10に書き込みが不可能なことを通知する
(ステップ414)。 3.1.3 処理手順2 図7は、処理手順2を示している。まず、初期設定とし
て、見かけ上のディスクの容量を設定する。そして、ホ
スト10からアクセスされる元の固定ブロック(圧縮セ
グメント)サイズに対して、圧縮量子化した際の異なる
データサイズに合わせた複数の固定ブロック(元のサイ
ズより小さい)を用意し、個々の固定ブロック毎にディ
スク内に連続領域を部分的に(例えば全体の10%の
み)を確保する(ステップ501)。
【0119】なお、見かけ上のディスクの容量を設定す
る方法には、例えば、物理容量の2倍を見かけ上のディ
スク容量と設定して、ディスク全体に対して各領域の占
める割合、圧縮ブロック数、物理ブロックアドレス等を
初期設定する方法(図8参照)と、初期設定を行った
後、何れかの圧縮領域が溢れた場合に、部分的に圧縮ブ
ロックの領域を変更する方法とがある(図9参照)。図
7及び図10に示す処理フローでは、後者の方法を採用
しており、ディスク容量の全体の10%相当を圧縮ブロ
ックの領域とする初期設定を行っている。
【0120】次に、ホスト10からの命令を受け取る
(ステップ502)。次に、ステップ502で受け取っ
た命令が「Read命令かWrite命令か」を判別す
る(ステップ503)。
【0121】ステップ502で、「Read命令」と判
別された場合に、所望の元の固定ブロックに対応した圧
縮ブロックのアドレスを探す(ステップ504)。そし
て、探したアドレスにある圧縮ブロックのデータをディ
スクから読み出す(ステップ505)。
【0122】そして、復元処理を指令する(ステップ5
06)。そして、所望の元の固定ブロックデータをホス
ト10に転送する(ステップ507)。
【0123】そして、ホスト10からの命令を待つ(ス
テップ508)。一方、ステップ502で、「Writ
e命令」と判別された場合に、圧縮処理を指令する(ス
テップ508)。
【0124】そして、圧縮結果を受け取る(ステップ5
09)。そして、圧縮量子化サイズに対応する領域に書
き込める空きブロックがあるかないかを判別する(ステ
ップ510)。
【0125】ステップ510で、「ない」と判別された
場合に、他の領域で書き込めるブロックがあるかないか
を判別する(ステップ511)。ステップ511で「あ
る」と判別された場合とステップ510で「ある」と判
別された場合に、ディスク内の該当する圧縮ブロックに
データを書き込む(ステップ512)。この場合データ
の更新が必要となる。
【0126】そして、前回の追加設定から、ディスク容
量が規定分(例えば10%)増えた時点に達したか否か
を判別する(ステップ515)。ステップ515で、達
したと判別された場合に、今回の個々のブロックの使用
頻度に応じて、次の規定分(10%)の連続領域の配分
を変更追加し(ステップ516)、ステップ513に移
行する。なお、連続領域の配分を変更追加するとは、図
9に示すように、実際の占有比率をみて、次の10%の
設定比率を変更することをいう。
【0127】ステップ511で「ない」と判別された場
合に、ホスト10に書き込みが不可能なことを通知する
(ステップ514)。 3.1.4 処理手順3 図10は、処理手順3を示している。まず、初期設定と
して、見かけ上のディスクの容量を設定する。そして、
ホスト10からアクセスされる元の固定ブロック(圧縮
セグメント)サイズに対して、圧縮量子化した際の異な
るデータサイズに合わせた複数の固定ブロック(元のサ
イズより小さい)を用意し、個々の固定ブロック毎にデ
ィスク内に連続領域を部分的に(例えば全体の10%の
み)を確保する(ステップ601)。
【0128】次に、ホスト10からの命令を受け取る
(ステップ602)。次に、ステップ602で受け取っ
た命令が「Read命令かWrite命令か」を判別す
る(ステップ603)。
【0129】ステップ602で、「Read命令」と判
別された場合に、所望の元の固定ブロックに対応した圧
縮ブロックのアドレスを探す(ステップ604)。そし
て、探したアドレスにある圧縮ブロックのデータをディ
スクから読み出す(ステップ605)。
【0130】そして、復元処理を指令する(ステップ6
06)。そして、所望の元の固定ブロックデータをホス
ト10に転送する(ステップ607)。
【0131】そして、ホスト10からの命令を待つ(ス
テップ608)。一方、ステップ602で、「Writ
e命令」と判別された場合に、圧縮処理を指令する(ス
テップ608)。
【0132】そして、圧縮結果を受け取る(ステップ6
09)。そして、圧縮量子化サイズに対応する領域に書
き込める空きブロックがあるかないかを判別する(ステ
ップ610)。
【0133】ステップ610で「ない」と判別された場
合に、残りのディスク容量で、設定できる容量(未定義
領域の部分)を規定分(10%)だけ連続確保できるか
否かを判別する(ステップ617)。
【0134】ステップ617で、「できる」と判別され
た場合に、今回の個々のブロックの使用頻度に応じて、
次の規定分(10%)の連続領域の配分を変更追加する
(ステップ616)。
【0135】ステップ616の実行後、ステップ610
で「ある」と判別された場合及びステップ611で「あ
る」と判別された場合に、ディスク内の該当する圧縮ブ
ロックにデータを書き込む(ステップ612)。そし
て、ステップ613に移行する。
【0136】ステップ617で「できない」と判別され
た場合に、他の領域で書き込めるブロックがあるかない
かが判別される(ステップ611)。ステップ611で
「ない」と判別された場合に、ホスト10に書き込む不
可能なことを通知する(ステップ614)。 3.2 具体例 図8は、初期段階で、各圧縮セグメント領域の割合をデ
ィスク全体或いはシリンダ単位で決める場合を示してい
る。例えば、圧縮サイズを8種類に分け、同図に示すよ
うな割合でディスク全体或いはシリンダ内を分割する。
【0137】そして、図11は、初期段階で、各圧縮セ
グメント領域を部分的に設定するようにして、次の時点
での前回の部分で採取した圧縮分布(統計量)を反映さ
せて次の部分の領域を設定していく場合を示している。
例えば、図11では、全ディスク容量の10%刻みで次
の部分の領域を設定する処理を行っている。図9では、
部分領域の割合が合わなくて溢れた場合に、次の部分領
域の割合を変更する例を示している。
【0138】さらに、図12は、該当する圧縮セグメン
ト領域に空きが無い場合に、隣接する1つサイズの大き
い圧縮セグメント領域を1つ、或いは小さい圧縮セグメ
ント領域のセグメントを複数使うことで空き領域を探
す。小さい領域を探す場合、同図のように、できる限り
同じサイズになるような領域のセグメントを複数個使う
のが好ましい。即ち、1/Nサイズの領域をN個用いる
ことが好ましい。 4.PFS方式による圧縮データ管理 次に、記憶制御装置20で行われる圧縮データ管理につ
いて説明する。ここで説明する圧縮データ管理は、従来
技術のところで説明したPFS方式をベースにしてい
る。なお、“PFS”とは、本発明者らにより命名され
たもので、“Packed File System”の略である。 4.1.1 PFS方式による圧縮データ管理の概要 まず最初に、図13を参照して、「パッキング」と呼ば
れる概念について説明する。
【0139】ホスト10は、ハードディスク30の書き
込むためのデータを、論理セクタ(2.全体構成の説明
を参照)と呼ばれるデータ形式で出力する。記憶制御装
置20では、複数の論理セクタをまとめることにより、
「キャッシュセグメント」と呼ばれる、16Kバイト
(以下、バイトを“B”で表す)程度のデータを生成す
る。
【0140】キャッシュセグメントを生成するのは、論
理セクタのままではデータ長が短すぎるため、個々のデ
ータを管理するのが困難になるからである。いいえかえ
ると、ディスクデータ管理部27に設けられる管理テー
ブル27aが、管理用の多数の容量を持たなければなら
なくなり、実装が困難になるからである。
【0141】キャッシュセグメントは、LZ(Lempel-Z
iv)法、ハフマン符号化、算術符号化などの可逆圧縮法
(圧縮前の状態に完全に復元できる符号化方法)により
圧縮される。圧縮されたデータは、「圧縮セグメント」
と呼ばれる。
【0142】この圧縮セグメントは、所定長を有するバ
ッファを表す「圧縮セクタ」に割り付けられる。圧縮セ
クタは、ハードディスク30に書き込まれる(記録され
る)。
【0143】圧縮セグメントは、圧縮前のデータ、即ち
キャッシュセグメントよりもデータ長が小さくなる。従
って、キャッシュセグメントの代わりに圧縮セクタをハ
ードディスク30に記録することで、ハードディスク3
0の容量を、見かけ上増やすことが可能となる。
【0144】しかしながら、ホスト10から指定された
書込位置に圧縮セクタを記録したのでは、ハードディス
ク30の見かけの容量を増やすことができない。それ
は、ホスト10から指定された書込位置に圧縮セクタを
記録すると、使用されない記録領域が発生し、ハードデ
ィスク30が有効に使われなくなるからである。
【0145】そこで、ハードディスク30を有効に使う
ためホスト10から指定された書込位置とは別の位置に
圧縮セクタを記録することが必要となる。このように、
書込位置と実際の記録位置とを対応させることを、「マ
ッピング」という。このマッピングの情報は、ディスク
データ管理部27に設けられる管理テーブル27aに記
録される。
【0146】ここで、見かけの容量とは、圧縮によって
増加した容量とハードディスク30の物理的な容量と足
した容量をいう。例えば、物理容量1GBに対して圧縮
率50%ならば、見かけの容量は2GBとなる。 4.1.2 キャッシュセグメント キャッシュセグメントがいくつの論理セクタをまとめて
生成されるかは、通常、ハードディスク30の容量とそ
れを管理するメモリ容量、そして、論理セクタ長との兼
ね合いによって決定される。
【0147】例えば、表1に示される状況を想定する。
ここで、キャッシュセグメント長をxKBとする。
【0148】
【表1】 ここで、キャッシュセグメント長をxKBとすると、ハ
ードディスク30に記録可能な(エントリー可能な)圧
縮セクタの個数は、式(1)で求められる。 圧縮セクタ数(エントリ数)=ハードディスク30の物理容量/圧縮セクタ 長 =2GB/32KB ・・・(1) よって、この圧縮セクタを表すのに必要なビット(bi
t)数は、式(2)で求められる。 圧縮セクタをアドレッシングするのに必要なbit数 =log2(ハードディスク30の物理容量/圧縮セクタ長) =log2(2GB/32KB) ・・・(2) また、論理セクタをまとめた数を表すキャッシュセグメ
ント数は、式(3)で求められる。 キャッシュセグメント数(エントリ数) =ハードディスク30の見かけの容量/キャッシュセグメント長 =4GB/xKB ・・・(3) これより、キャッシュセグメントと圧縮セグメントとの
対応を管理するための管理用メモリに必要な最低限の容
量は、式(4)で求められる。管理用メモリに必要な最
低限の容量 =キャッシュセグメント数×圧縮セクタを表すのに必要なbit数 =(4GB/xKB)×log2(2GB/32KB) ・・・(4) ここで、キャッシュセグメント長=ホストの論理セクタ
長であるとすると、管理用メモリに必要な最低限の容量
=2MB必要になる。
【0149】一方、キャッシュセグメント長=ホストの
論理セクタ長×4=16KBに設定すると、 管理用メモリに必要な最低限の容量=512KB となり、設定した管理用メモリで収まることがわかる。
【0150】以上のことから、キャッシュセグメント長
を小さくするほど、ハードディスク30に記録される圧
縮セクタを管理するのに必要な容量が多くなることがわ
かる。
【0151】一方、ホスト10から出力された論理セク
タを分割することは処理上メリットがない。そこで、キ
ャッシュセグメントのデータ長は、論理セクタのデータ
長の自然数倍に設定される。 4.1.3 圧縮セクタ長とシリンダ容量との関係 圧縮セクタは、そのデータ長が小さすぎる場合には、割
り付けられる(パッキングされる)圧縮セグメントの数
が減り、フラグメントと呼ばれる割り付けされない領域
が発生する。このフラグメントは、ハードディスク30
におけるデータの充填率を低下させる原因となるため、
可能な限り減らした方が好ましい。
【0152】一方、圧縮セクタのデータ長を大きくする
と、割り付けられる圧縮セグメントの数が増加し、ハー
ドディスク30におけるデータの充填率も向上する。し
かし、圧縮セクタのデータ長が大きくなるにつれ、ハー
ドディスク30へのアクセス時間が増加する。特に、圧
縮セクタのデータ長がハードディスク30の物理的なシ
リンダ長よりも大きいと、複数のシリンダに対して、ア
クセスが行われることになる。
【0153】このことは、シークと呼ばれる現象をハー
ドディスク30に発生させる。シークは、連続した読み
書きに比べ時間がかかるため、アクセス時間を短縮化さ
せる上でのネックとなる。
【0154】そこで、シークを発生させず、かつ、デー
タの充填率が高くなる条件を満たすように圧縮セクタの
データ長が決められる。 4.1.4 ビットゾーンレコーディング(BZR) 一般的なディスク型記憶装置では、図14に示すよう
に、シリンダの位置が内周にあるか、外周にあるか、真
ん中にあるかによって、シリンダ内のセクタ数が異な
る。これは、より外周に存在するシリンダほどより多く
の磁性体が存在するため、より多くのセクタを作ること
ができるためである。
【0155】このように、シリンダの位置によってシリ
ンダ内のセクタ数が異なることを、ビットゾーンレコー
ディング(BZR)と呼ぶ。オペレーティングシステム
(OS)によっては、高速にアクセスするために、シリ
ンダをまたがないように、データを書き込むことがあ
る。
【0156】しかしながら、BZRの情報は、通常、ホ
スト10に対して隠蔽されており、ホスト10は、1シ
リンダあたりの容量が均一なハードディスク30としか
見えないことがある。この場合、OSは、シリンダをま
たがないように、データを書き込むことができない。
【0157】一方、BZRの情報が使える場合には、1
シリンダもしくは1トラックあたりの圧縮セクタ数をゾ
ーン毎に設定するとともに、圧縮セクタ長をゾーン毎に
設定する。
【0158】このように設定する理由は、1)圧縮セク
タにアクセス(READ/WRITE) する際に、途中でシリンダ
を跨いだりトラックを跨いだりしないことが、アクセス
速度を向上させること、2)1シリンダあたりのセクタ
数が等しいディスクでは、ディスク全体に渡って1シリ
ンダあたりの圧縮セクタ数が等しくなるが、BZRのデ
ィスクでは、ゾーン毎に1シリンダあたりの圧縮セクタ
数を適切に設定しないと、圧縮セクタがシリンダを跨い
でしまうこと、のためである。
【0159】具体的には、1圧縮セクタ長=32KB=
64セクタのとき、“128セクタ/トラック”のゾー
ンでは、“2圧縮セクタ/トラック”となるが、“96
セクタ/トラック”のゾーンでは、“1.5圧縮セクタ
/トラック”となって、トラックを跨いでしまうことに
なる。そこで、“2圧縮セクタ/トラック”となるよう
に、1圧縮セクタ長=48セクタと設定する。このよう
に設定することによって、シーク回数を減らしたアクセ
スが可能となる。 4.1.5 圧縮セクタ長と論理セクタ長との関係 ハードディスク30へのアクセスに関し、より高速性が
要求される時は、圧縮セクタ長として、論理セクタ長を
用いることもできる。
【0160】前述した、「圧縮セクタ長=シリンダ長」
の場合、ホスト10が要求してきたアクセスサイズであ
る論理セクタに比べて、非常にデータ量が多い。あるハ
ードディスク30では、1シリンダあたり600セクタ
存在する。仮に、論理セクタ=4KB=8セクタである
と、一つの論理セクタをアクセスするために、ハードデ
ィスク30上では、それに対応する75倍の容量を持つ
圧縮セクタをアクセスする必要がある。これは、あまり
にも無駄が多く、速度低下の要因になりかねない。
【0161】そこで、「圧縮セクタ長=論理セクタ長」
ならば、ホスト10が要求してきたサイズと一致し、速
度の低下が起きない。しかし、実際には、先に示したよ
うに、キャッシュセグメントのサイズが論理セクタの自
然数倍になることもあるので、圧縮セクタ長も論理セク
タ長の自然数倍として用いる。 4.1.6 圧縮セクタ長とキャッシュセグメント長と
の関係 圧縮セクタ長も論理セクタ長の自然数倍として用いる場
合に、具体的には、式(5)のように設定することがで
きる。 圧縮セクタ長=キャッシュセグメント長/設定圧縮比×自然数 ・・・(5) これは、圧縮セクタに、複数の圧縮セグメントがまとめ
て割り付けられていることから理解できる。つまり、
「キャッシュセグメント長=論理セクタ長×自然数」の
とき、圧縮セグメントに割り付けられる単位長がキャッ
シュセグメント長であり、圧縮セクタは、キャッシュセ
グメントを圧縮し、さらにそれを複数まとめたものであ
る。 4.1.7 パッキングの最小割付単位とハードディス
ク30の物理的な最小書き込み単位との関係 次に、図15に示すパッキングの最小割り付け単位につ
いて説明する。圧縮セグメントをまとめたものを圧縮セ
クタに割り付けているが、この際、まとめられた各々の
圧縮セグメントが、(1)の圧縮セクタのどの位置に存
在するかを示すテーブルを作っておく必要がある。この
時、1B(バイト)毎に位置を管理すると、圧縮セクタ
のサイズだけのアドレッシングが必要となる。それゆ
え、圧縮セクタのデータ長が32KBのとき、圧縮セグ
メントの位置管理用に圧縮セグメント毎に15bitの
アドレス管理テーブル27aを必要とする。
【0162】前述した例に従って、ハードディスク30
の見かけの容量=4GB、キャッシュセグメント長=1
6KBのとき、ハードディスク30の理論的な総キャッ
シュセグメント数は256K個となる。従って、ハード
ディスク30の総圧縮セグメント数も同数の256K個
である。この256K個のキャッシュセグメントについ
て、それぞれが、圧縮セクタ内の位置情報を15bit
持つ必要がある。
【0163】つまり、総容量としては、256K×15
bit/8bit=480KBである。キャッシュセグ
メントと圧縮セクタとの対応関係を管理するメモリにつ
いては、先に512KBであることを示したが、この4
80KBはそのほとんどの容量を必要とする。
【0164】一方、圧縮セグメントと圧縮セグメントの
間に、多少の無駄な領域を許せば、圧縮セクタ内の位置
を管理するためのアドレッシングを減らすことができ
る。例えば、パッキングの最小割り付け単位を512バ
イトとすると、圧縮セグメント間に、最大で511Bの
無駄な領域が存在してしまう可能性があるが、圧縮セク
タのデータ長32KB/最小割り付け単位512B=6
4エントリ を実現できるアドレッシングで十分であ
る。つまり、6bitである。この場合、必要な位置情
報のためのメモリは、256K個×6bit/8bit
=192KBであり、先の480MBに比べ大幅に減少
することが分かる。
【0165】更に、最小割り付け単位を512Bの自然
数倍に増加していくことによって、より位置情報のため
に必要な管理用のメモリは減少していく。ただし、割り
付け単位を大きくし過ぎると、圧縮セグメント間の無駄
な領域が増加して、ハードディスク30内のデータの充
填率が低下する。
【0166】さて、これまで最小割り付け単位の一例と
してあげた512Bは、ハードディスク30の物理的な
最小書き込み単位に基づいている。ハードディスク30
に格納されている圧縮セクタにおいて、その中の特定の
圧縮セグメントだけをアクセスしたい場合に、不要な物
理セクタをアクセスしなくてよく、高速なアクセスが可
能になる。 4.1.8 パッキングの最小割り付け単位について もし、管理用メモリに余裕があり、さらにハードディス
ク30の充填率を極力向上させたければ、前述した方法
によって、最小割り付け単位として1B(バイト)を用
いることができる。 4.1.9 圧縮キャッシュ内のパッキングに使用する
容量について 次に、圧縮キャッシュ内でパッキングに使用するメモリ
容量について説明する。図13では、圧縮セグメントを
まとめて割り付ける圧縮セクタは、1つである例を示し
た。つまり、圧縮セクタに必要な圧縮キャッシュのメモ
リ容量は、圧縮セクタ1つ分ですむ。しかし、図16に
示すように、圧縮セクタに必要な圧縮キャッシュのメモ
リ容量を増やすと共に圧縮セグメントをまとめて、割り
付ける圧縮セクタの個数を増やすことができる。
【0167】圧縮セクタの個数を増やすことによって、
以下に述べるような利点が生じる。図16に示すよう
に、圧縮セグメントのデータ列が、1、2、3、4、
5、6と現れ、圧縮セクタへの割り付け要求をしてきた
とする。圧縮セクタが1つしかなければ、時系列に発生
した圧縮セグメントを順番に割り付け、割り付け不可能
になった時点でハードディスク30へ書き込まなければ
ならない。図16の例では、1、2、3のデータについ
ては割り付けができたが、4のデータに関しては、圧縮
セクタの残り容量に対してデータが大きすぎて割り付け
ができない。従って、圧縮セクタが一つの場合、1、
2、3のデータとかなりの余りを持ちながら、ハードデ
ィスク30に書き込まれる。
【0168】しかし、圧縮キャッシュ内に圧縮セクタが
複数存在すれば、1、2、3のデータを1番目の圧縮セ
クタに割り付け、4のデータが1番目の圧縮セクタに割
り付けられなければ、他の圧縮セクタに4のデータを割
り付ける。そして、5のデータを最初の圧縮セクタに割
り付ければ、最初の圧縮セクタは無駄な領域を多く持つ
ことなく、ハードディスク30に書き込むことができ
る。このように、複数の圧縮セクタを圧縮キャッシュ内
に持つことによって、ハードディスク30内のデータの
充填率が高い書き込みを行える。そして、複数の圧縮セ
グメントをどのように圧縮セクタに割り付けるかという
問題にも柔軟に対応できる。 4.1.10 圧縮セクタをひとつだけ用いる場合につ
いて ハードディスク30内のデータの充填率が高くなること
よりも、装置の速度を向上させたいときは、図13のよ
うに、パッキングに使用する容量を圧縮セクタ長と同一
とすること、即ち、圧縮セクタを1つだけ用いて、複数
の圧縮セクタを選択する処理を省くことが有効である。
【0169】このような条件の下で、下記の(a)から
(d)のプロセスを繰り返し実行し、データの書込を実
行する。 (a)書込要求のあったキャッシュセグメントを圧縮す
る。
【0170】(b)パッキング用の領域に圧縮セグメン
トを格納できる領域が無い場合、つまり、これ以上パッ
キングできない状態である場合、圧縮セクタをハードデ
ィスク30に書き込む。
【0171】(c)圧縮セグメントをパッキングする。 (d)(a)に戻る。 この方法によれば、複数の圧縮セクタを選択する処理を
省くことができる。 4.1.11 時系列シーケンシャルパッキング 時系列シーケンシャルパッキングは、4.1.10の
「圧縮セグメントをひとつだけ用いる」方法をより一般
化した方法である(図17参照)。この方法は、パッキ
ング対象となる圧縮セクタを1つから複数に増やして、
パッキングの自由度を上げることを条件としている。
【0172】このような条件の下で、下記の(a)から
(d)のプロセスを繰り返し実行し、データの書込を実
行する。 (a)書込要求のあったキャッシュセグメントを圧縮す
る。
【0173】(b)パッキング用の領域に圧縮セグメン
トを格納できる領域が無い場合、つまり、これ以上パッ
キングできない状態である場合、圧縮セクタをハードデ
ィスク30に書き込む。
【0174】(c)圧縮セグメントをパッキングする。 (d)(a)に戻る。 以上の(a)〜(d)の具体例を、図17を参照して説
明する。まず、1、2、3、4、5、6・・・の順にデ
ータ(圧縮セグメント)が発生したとする。そして、
(1)の圧縮セクタに、データ発生順にデータを割り付
けていったとき、4のデータが(1)の圧縮セクタに割
り付け不可能なため、(2)の圧縮セクタに割り付ける
ことになる。そして、4のデータに続いて、5及び6の
データが(2)の圧縮セクタに割り付けられる。そし
て、パッキングがこれ以上できなくなった圧縮セクタ
が、ハードディスク30に書き込まれる。
【0175】この方法は、非常に簡単であるため、高速
に実行できる特徴がある。 4.1.12 異種サイズ混合パッキング 時系列シーケンシャルパッキングの場合、圧縮セグメン
トの圧縮セクタへの割り付けが時系列の順番によって規
定されているため、割り付けに関する柔軟性がなく、ハ
ードディスク30内のデータの充填率が悪い。これに対
して、図18に示す異種サイズパッキングは、最密な充
填率が得られる。これは、所定の圧縮率を持つ圧縮セグ
メントを圧縮率毎にまとめることによって、圧縮セクタ
がフラグメント(圧縮セグメントが割り付けられない無
駄な領域)を持つことなく、ハードディスク30に書き
込める。
【0176】図18では、圧縮率60%、100%、1
0%、30%のデータが順に発生し、圧縮率30%のデ
ータが発生した時点で、足し合わせると200%とな
り、キャッシュセグメント長の2倍のデータ長を持つ圧
縮セクタにフラグメント無しで割り付けることが可能と
なる。なお、データ列を組み合わせても200%になら
ない場合は、最も200%に近い組み合わせをハードデ
ィスク30に書き込み、パッキング用の格納領域を空け
ることになる。 4.1.13 近傍の圧縮セグメントをパッキング ホスト10からの論理セクタへのアクセスに対して、ハ
ードディスク30側は、論理セクタに対応する圧縮セク
タをアクセスする必要がある。ホスト10からの論理セ
クタのアクセスが連続していた場合についても、ハード
ディスク30では、同様に、それぞれの論理セクタに対
応する圧縮セクタにアクセスする。このとき圧縮セクタ
のハードディスク30上の位置は、論理セクタのアドレ
スには依存せずに決まっている。そのため、連続したア
ドレスを持つ論理セクタをアクセスしても、実際のハー
ドディスク30上のアクセスにおいて連続する保証はな
い。更に、ハードディスク30上のアクセスにおいてシ
ークを含む可能性があり、ホスト10が予期したアクセ
ス速度が得られない原因となる。
【0177】そこで、近傍の論理アドレスを持つ論理セ
クタについては、なるべく、同じ圧縮セクタに割り付け
る。これによって、論理セクタのアドレスの「近さ」
が、圧縮セクタにも反映される。このようなパッキング
をした場合、特定のアドレスを持つ論理セクタをアクセ
スした場合、ハードディスク30上では、その近傍のア
ドレスを持つ論理セクタと一緒にアクセスされ、本来の
アクセス対象以外の圧縮セクタは、キャッシュと一時的
に保存されている。次に、ホスト10から近傍のアドレ
スを持つ論理セクタがアクセスされたときは、ハードデ
ィスク30にアクセスしにいかなくても、キャッシュ上
のデータをアクセスできる。
【0178】以上の具体例を、図19を参照して説明す
る。まず、アドレス“0000”、“0001”、“0
004”、“7000”、“8000”、“8003”
を持つデータが順に発生したものとする。まず、アドレ
ス“0000”を持つデータが(1)の圧縮セクタに割
り付けられ、そして、アドレス“0001”を持つデー
タは、アドレス“0000”に近いと判断されて、同じ
く(1)の圧縮セクタに割り付けられる。同様に、アド
レス“0004”を持つデータも、(1)の圧縮セクタ
に割り付けられる。次に、アドレス“7000”を持つ
データは、アドレス“0004”とは離れていると判断
されて、(2)の圧縮セクタに割り付けられる。次に、
アドレス“8000”を持つデータは、アドレス“70
00”とは離れていると判断されて、(3)の圧縮セク
タに割り付けられる。そして、アドレス“8003”を
持つデータは、アドレス“8000”に近いと判断され
て、同じく(3)の圧縮セクタに割り付けられる。
【0179】ここで、読み込みのプロセスは、下記の
(a)から(c)のようになる。 (a)ホストから読込要求のあったキャッシュセグメン
トアドレスに対して、管理テーブル(マッピングテーブ
ル)27aを用いて、対応する圧縮セクタ及び圧縮セク
タ内の圧縮セグメントの位置を求める。
【0180】(b)対応する圧縮セクタもしくは圧縮セ
グメントがすでにリードキャッシュに保存されていれ
ば、そこからデータを読み出してホストに送って(a)
に戻る。
【0181】(c)対応する圧縮セクタをディスクから
読み込み、リードキャッシュに保存する。対象の圧縮セ
グメントをホストに送って(a)に戻る。 上記プロセスで読み込みが実現されることにより、ある
圧縮セグメントを読み込んだ後(比較的短い時間の後)
に、同一の圧縮セクタにパッキングされている圧縮セグ
メントがホストからの読み込み対象になる。そして、ハ
ードディスク30にアクセスしにいかなくても高速なキ
ャッシュメモリから読み込むことによって、高速なアク
セスが可能となっている。
【0182】ここで、ハードディスク30にアクセスし
にいかなくても良いかどうかは、キャッシュ用の管理テ
ーブルを調べることによって可能となる。つまり、管理
テーブルに登録されていれば、キャッシュからデータを
読んでおけばよい。 4.1.14 ランダムパッキング 近傍の論理アドレスを持つ論理セクタをまとめた1つの
圧縮セクタに割り付ける方法は、アクセスに関しては、
高速性を期待できるが、ハードディスク30内のデータ
の充填率は、あまり良くない。一方、異種サイズ混合パ
ッキングでは、充填率は非常に良いが、異種サイズを集
めるための処理が大きく、必要とするサイズのデータが
来ない場合の例外処理もある。そこで、擬似的に、異種
サイズの圧縮セグメントをまとめて割り付ける方法を説
明する。
【0183】即ち、圧縮セクタに割り付け要求された圧
縮セグメントを時系列順に、1、2、3、・・・とする
と、それらの全てのデータについて、例えば、式(6)
によって生成される乱数によって、割り付け先の圧縮セ
クタを決定する。
【0184】 パッキング対象の圧縮セクタ = 乱数 % パッキングに用いる圧縮セクタ数 ただし、“%”は、除算の余りを求める演算子 ・・・(6) ランダムパッキングの具体例を、図20を参照して説明
する。まず、1、2、3、4、5、6・・・の順にデー
タ(圧縮セグメント)が発生したとする。式(6)によ
り、2、4、1、3、5のデータは、それぞれ、
(1)、(2)、(3)、(4)、(5)の圧縮セクタ
に割り付けられる。次に、同じく式(6)によって、6
のデータは、(1)の圧縮セクタに割り付けられる。
【0185】時系列の圧縮セグメントにおいては、時間
的に近い圧縮セグメント間のデータ長に相関がある。そ
のため、乱数などによって、時系列の順番を崩すことに
よって、擬似的に異種サイズの圧縮セグメントをまとめ
て割り付けた状態を作ることができる。これによって、
比較的充填率の良いパッキングを実現できる。
【0186】なお、決定した圧縮セクタが、圧縮セグメ
ントをパッキングできる容量を持っていない場合は、そ
れ以外の圧縮セクタを対象とする。 4.1.15 疑似ランダムパッキング 疑似ランダムパッキングは、前記ランダムパッキングを
簡単にした方法であり、割り付ける圧縮セクタを乱数に
よって決めるのではなく、ただ、順番を変えていく点に
特徴がある。つまり、圧縮セクタが5つあったとき、最
初から5番目までの圧縮セグメントは、それぞれ、最初
から5番目までの圧縮セクタに割り付ける。次に、6番
目の圧縮セグメントは、再び、最初の圧縮セクタに割り
付ける。
【0187】疑似ランダムパッキングの具体例を図21
を参照して説明する。まず、1、2、3、4、5、6・
・・の順にデータ(圧縮セグメント)が発生したとす
る。1、2、3、4、5、6のデータは、それぞれ、
(1)、(2)、(3)、(4)、(5)の圧縮セクタ
に割り付けられる。次に、6のデータは、(1)の圧縮
セクタに割り付けられる。
【0188】疑似ランダムパッキングでは、乱数ほど、
圧縮セグメントがバラバラにならないが、時系列上の近
い圧縮セグメントは、確実に別の圧縮セクタに割り付け
られるので、一つの圧縮セクタ内で同じサイズの圧縮セ
グメントが多くなることを避けられる効果がある。 4.1.16 残り容量が最小になるようにパッキング
する例 次に、今まで述べてきたパッキング方法と組み合わせ
て、より充填率を向上させる方法を説明する。複数の圧
縮セクタを用いて、圧縮セグメントの割り付けを行って
いて、個々の割り付け容量が比較的少なくなってきた状
態を想定する(図22参照)。
【0189】この方法は、図22に示す5の圧縮セグメ
ントを例にとると、この圧縮セグメントをある圧縮セク
タに割り付けたことによって、その圧縮セクタの残り容
量が最も少なくなるようにする。つまり、図22では、
(3)の圧縮セクタに割り付けることになる。
【0190】この方法は、比較的簡単な方法であるにも
関わらず、常に、圧縮セクタに存在する無駄な領域(フ
ラグメント)を減らすように働く。なお、「割付と残り
容量の比較」は、ファームウェア上で、演算子“>”、
“<”等を用いて行われる。
【0191】また、「各圧縮セクタの残り容量」は、そ
れぞれに対応する変数を持っていて、パッキングの度に
変数内容を更新することで行われる。 4.1.17 残り容量を予測してパッキングする例 次に、割り付け要求をしてくるであろう圧縮セグメント
を予測したパッキング方法について説明する。まず、例
えば図23に示すように、5の圧縮セグメントを(1)
から(5)のいずれかの圧縮セクタに割り付ける状況を
想定する。この時、5の圧縮セグメントを割り付けた後
の残り容量に注目する。この残り容量のデータ長が頻度
的に出現しにくいものであると、この圧縮セクタは、こ
の後、アクセスがなく、長い間キャッシュメモリ上に残
ってしまい、メモリが有効に活用されなくなってしま
う。
【0192】そこで、図23の右上に示す圧縮セグメン
ト長の出現頻度分布図(横軸が圧縮セグメント長で、縦
軸が出現頻度)から、次に割り付けられそうなデータ長
を予測する。ここでは、(1)、(2)、(3)、
(4)、(5)の圧縮セクタのまだパッキングされてい
ない領域に、それぞれ、圧縮セグメント長が、a、b、
c、d、eの圧縮セグメント長を持つデータが書き込ま
れるものとする。
【0193】圧縮セグメント長“c”のように頻度的に
出現しやすいデータは、比較的短時間のうちに圧縮セク
タに割り付けされて、ハードディスク30上に書き込ま
れる。つまり、圧縮セクタのためのメモリが解放され
る。図23の場合では、(3)の圧縮セクタが、短時間
のうちにハードディスク30に書き込まれる可能性があ
ることになる。
【0194】なお、データ長の予測は、図23における
圧縮セグメント長の出現頻度を用いて行われる。即ち、
図23における各圧縮セクタの残り容量がa,b,c,
d,eとなっており、パッキングしたいデータ長をxと
すると、b<xであるので、b以外の容量を持つ圧縮セ
クタがパッキング対象となる。その中で最も出現頻度が
高いものがcであるので、統計的には、今後cのサイズ
のデータがくる可能性が最も高くなると予測する。
【0195】図23における出現頻度分布は、予め用意
した静的なデータを用いることで、静的な出現頻度分布
となり、この静的な出現頻度分布を用いて残り容量の予
測を行ってもよい。この予測は、予め用意したデータを
用いればよいので、取り扱いが簡単になる効果がある。
【0196】図23における出現頻度分布は、圧縮セグ
メント長とそれに対する頻度を示しているので、ディス
クに対して書き込み要求がくる度に出現する圧縮セグメ
ントのデータ長を分類しておいて、データ長の長さ毎に
用意された変数にその出現頻度を記憶しておくことで、
動的な出現頻度分布となり、この動的な出現頻度分布を
用いて残り容量の予測を行ってもよい。この予測は、出
現頻度分布を逐次更新しなければならないものの、実際
のデータ列に即した分布が得られるため、圧縮セクタの
割り付けを効率よくする効果がある。なお、データ長の
分類と出現頻度分布の例を表2に示す。
【0197】
【表2】 なお、今後割り付けられる圧縮セグメントのデータ長の
予測方法として、静的な出現頻度分布と動的な出現頻度
分布を組み合わせて用いることもできる。動的な出現頻
度分布は、実際のデータ列に即しているが、ある程度の
量のサンプルが揃わないと、分布として不安定で信頼性
に欠ける。そこで、例えば、100KB〜数十MB程度
のサンプル数がある程度揃うまでは、データ長毎の出現
頻度をカウントすると同時に静的な出現頻度分布を用
い、サンプル数が揃ってからは、動的な出現頻度分布を
用いる。これによって、より信頼性のある圧縮セグメン
トのデータ長を予測可能となる。 4.1.18 バッファリングした圧縮セグメントを割
り付ける例 次に、圧縮セグメントを複数個バッファリングし、それ
を組み合わせて、圧縮セクタに割り付ける具体的方法を
図24を参照して説明する。
【0198】ここでは、2個の圧縮セグメントを組み合
わせて圧縮セクタに割り付けるものとする。まず、1、
2、3、4、5、6・・・の順にデータ(圧縮セグメン
ト)が発生したとする。次に、5と6のデータを組み合
わせてバッファリングする。この例の場合、5のデータ
と6のデータを連結したものを、一つの連続したデータ
の如く取り扱い、(1)から(5)の各圧縮セクタに割
り付けてみる。その際、割り付け後の圧縮セクタの残り
容量が最も小さくなる(3)の圧縮セクタに割り付けを
行う。
【0199】この方法は、前述の予測方法と異なり、確
実に次にくる圧縮セグメントのデータ長に合わせて、割
り付け先の圧縮セクタを決定することができる。 4.1.19 目標圧縮率による圧縮セクタを書き込む
例 次に、圧縮セグメントを割り付けられた複数の圧縮セク
タのうち、ハードディスク30に書き込むべき圧縮セク
タを決定する方法について説明する。
【0200】圧縮セグメントを圧縮セクタに割り付けて
いくうちに、圧縮セクタは、これ以上圧縮セグメントを
割り付けられない状態になる。圧縮セクタが1つしかな
ければ、その圧縮セクタをハードディスク30に書き込
むことによって、圧縮セクタの未割り付け領域をリセッ
ト状態の戻すことができる。一方、圧縮セクタが複数存
在する場合、すべての圧縮セクタをハードディスク30
に書き込む必要はなく、そのうち1つだけをハードディ
スク30に書き込めば良い。その書き込むべき圧縮セク
タを決定する方法について説明する。
【0201】最初に、目標圧縮率によって管理する書き
込むべき圧縮セクタの決定法について説明する。データ
を圧縮してハードディスク30に格納する場合、予め圧
縮率を設定し、実際の容量に対する見かけの容量を設定
する必要がある。例えば、圧縮率50%に設定した場
合、実際の物理的なディスク容量の2倍を見かけの容量
とする。例えば、物理的なディスク容量が1GBである
場合は、その2倍の容量である2GBを見かけの容量と
して持たせることになる。
【0202】実際にホスト10から送られてきたデータ
を圧縮すると、圧縮率が50%のものもあれば、60%
や40%のものもある。しかし、ハードディスク30全
体では、平均的に圧縮率50%、もしくは、それよりも
良い圧縮率(例えば、40%)になることが重要であ
る。
【0203】そこで、個々の圧縮セクタについて、圧縮
率の管理を行う。圧縮率管理の具体的方法を図25を参
照して説明する。同図において、6の圧縮セグメントを
(1)から(5)の圧縮セクタに割り付けようとしたと
きに、どの圧縮セクタも容量に余裕がない。
【0204】そのため、いずれかの圧縮セクタをハード
ディスク30に書き込まなければならない。その際に、
各圧縮セクタに割り付けられたデータの量を評価する。
評価の尺度として、圧縮セクタ内にいくつの圧縮セグメ
ントが割り付けられているかを用いる。図25の場合、
上から順番に、3個、3個、4個、3個、3個である。
この例では、圧縮セクタのデータ長は、キャッシュセグ
メントの2倍としているので、キャッシュセグメントを
圧縮したデータである圧縮セグメントが4個以上割り付
けられているということは、圧縮セクタ全体の圧縮率
は、式(6)で求められる。 圧縮セクタ全体の圧縮率[%] =100×(圧縮セクタのデータ長/(圧縮セクタ内に割り付けられた圧縮セグ メント数×キャッシュセグメント長)) =100×(2×キャッシュセグメント長/(4×キャッシュセグメント長)) =2/4 =50[%] ・・・(6) つまり、圧縮セクタ長によって、目標圧縮率を達成した
圧縮セクタ内の圧縮セグメント数が決まる。この例で
は、圧縮セクタ長は、キャッシュセグメント長の2倍で
あるので、目標圧縮率を達成した圧縮セクタ内の圧縮セ
グメント数は、4個となる。図25では、上から3番目
の圧縮セクタが達成しており、この圧縮セクタをハード
ディスク30に書き込めば良い。 4.1.20 残り容量が最小である圧縮セクタを書き
込む例 本例は、複数の圧縮セクタのうち、残り容量が最も少な
いものをハードディスク30に書き込む方法である。即
ち、この方法は、複数の圧縮セクタから、圧縮セグメン
ト割り付け後の残り容量を調べ、最も残り容量が少ない
圧縮セクタをハードディスク30に書き込む例である。
【0205】具体例を図26を参照して説明する。ま
ず、1、2、3、4、5、6・・・の順にデータ(圧縮
セグメント)が発生したとする。(1)〜(5)の圧縮
セクタで、ハッチング部分はすでにパッキングされた領
域であり、空白部分はまだパッキングされていない領域
である。(1)〜(5)のいずれの圧縮セクタも、まだ
パッキングされていない領域に、6のデータをパッキン
グするだけの容量を残していない。そして、まだパッキ
ングされていない領域が最も少ないのは、(3)の圧縮
セクタであるから、(3)の圧縮セクタがハードディス
ク30に書き込まれる。
【0206】前記目標圧縮率による書き込みの場合、圧
縮セグメントをパッキングする際に、書き込もうとして
いるデータをパッキングする領域が無い場合には、目標
圧縮率を達成せずに書き込まれる圧縮セクタが生じるこ
とになる。このような圧縮セクタが増えてくると、ハー
ドディスク30全体としても、目標圧縮率を達成できな
い。そこで、目標圧縮率よりも、ハードディスク30内
のデータの充填率を重要視する方法が考えられる。充填
率を重視すると、時には、圧縮率70%程度のあまり圧
縮できていない圧縮セクタを書き込んでしまうこともあ
る。
【0207】しかし、圧縮率の良い圧縮セグメントを多
く割り付けた圧縮セクタの圧縮率は、例えば30%等に
もなり、ハードディスク30全体として、高圧縮率な書
き込みができていることになる。 4.1.21 残り容量の出現頻度が低い圧縮セクタを
書き込む例 本例は、複数の圧縮セグメントのうち、圧縮セグメント
が割り付けられた後の残り容量について、最も出現頻度
の低い残り容量を持つ圧縮セクタをハードディスク30
に書き込む例である。
【0208】具体例を図27を参照して説明する。ま
ず、図27中、右上に書かれた曲線は、横軸を圧縮セグ
メント長とし、縦軸を出現頻度とするグラフである。こ
のグラフで、横軸の圧縮セグメント長には、所定の閾値
Xが定められており、縦軸の出現頻度には、所定の閾値
Yが定められている。
【0209】そして、1、2、3、4、5、6・・・の
順にデータ(圧縮セグメント)が発生したとする。
(1)〜(5)の圧縮セクタで、ハッチング部分はすで
にパッキングされた領域であり、空白部分(a、b、
c、d、e)はまだパッキングされていない領域であ
る。
【0210】ここで、発生したデータが、(1)〜
(5)の圧縮セクタのいずれにも割り付けることができ
ない場合に、(1)〜(5)の圧縮セクタの空白部分の
容量が0から前記閾値X内にあれば、その空白部分
(a、b、c、d、e)の長さに等しい圧縮セグメント
長の出現頻度が最も小さいもの、即ち、(3)の圧縮セ
クタ(空白部分がc)をハードディスク30に書き込
む。
【0211】本例の場合、メモリに残り易いような圧縮
セクタを早めにハードディスク30に書き込めるので、
圧縮セクタのためのメモリを有効に使用できることにな
る。また、図27における出現頻度分布は、予め用意し
た静的なデータを用いることで、静的な出現頻度分布と
なり、この静的な出現頻度分布を用いて残り容量の予測
を行ってもよい。この予測は、予め用意したデータを用
いればよいので、取り扱いが簡単になる効果がある。
【0212】更に、図27における出現頻度分布は、圧
縮セグメント長とそれに対する頻度を示しているので、
ディスクに対して書き込み要求がくる度に出現する圧縮
セグメントのデータ長を分類しておいて、データ長の長
さ毎に用意された変数にその出現頻度を記憶しておくこ
とで、動的な出現頻度分布となり、この動的な出現頻度
分布を用いて残り容量の予測を行ってもよい。この予測
は、出現頻度分布を逐次更新しなければならないもの
の、実際のデータ列に即した分布が得られるため、圧縮
セクタの割り付けを効率よくする効果がある。
【0213】なお、出現頻度の低い残り容量を書き込む
方法における出現頻度分布として、静的な出現頻度分布
と動的な出現頻度分布を組み合わせて用いることもでき
る。動的な出現頻度分布は、実際のデータ列に即してい
るが、ある程度の量のサンプルが揃わないと、分布とし
て不安定で信頼性に欠ける。そこで、例えば、100K
B〜数十MB程度のサンプル数がある程度揃うまでは、
静的な出現頻度分布を用い、サンプル数が揃ってから
は、動的な出現頻度分布を用いる。これによって、より
信頼性のある圧縮セグメントのデータ長を予測できるよ
うになる。 4.1.22 アクセスされない圧縮セクタを書き込む
例 次に、複数の圧縮セクタにおいて、最もアクセスされな
い、即ち最もパッキング対象にならない圧縮セクタを書
き込む方法を説明する。キャッシュメモリは、アクセス
された時間が他のものに比べ最も古いものをメモリ外に
追い出す。それと同様に、アクセスされた時間が他の圧
縮セクタに比べ最も古いものをハードディスク30に書
き出す。これによって、圧縮セクタのためのメモリが有
効に使えるようになる。
【0214】なお、パッキング用の圧縮セクタに番号づ
けがされており、それらの順番をパキング毎に更新する
ことでアクセス時間を知ることが可能になっている。例
えば、圧縮セクタが10個あった時に、それぞれに1〜
10までの番号が付けられる。そして、ある時刻で、そ
れらのアクセス時間の順番が下記のようになっていたと
する。
【0215】アクセスされた<-2 3 6 4 1 5 10 8 9 7-
>アクセスされていない ここで、9、5、7、3番の順番に圧縮セクタに対して
パッキングされたとすると、以下のようにその順番が変
更される。 アクセスされた<-9 2 3 6 4 1 5 10 8 7->アクセスさ
れていない アクセスされた<-5 9 2 3 6 4 1 10 8 7->アクセスさ
れていない アクセスされた<-7 5 9 2 3 6 4 1 10 8->アクセスさ
れていない アクセスされた<-3 7 5 9 2 6 4 1 10 8->アクセスさ
れていない つまり、アクセスされたものを先頭に持っていくことに
よって、常にアクセスの順番が管理されることになる。
そして、次にパッキングしようとした時にパッキングす
るスペースがなく、圧縮セクタをディスクに書き込むフ
ェーズになったとすると、最も古い時間にアクセスされ
た8番のパッキング用圧縮セクタがディスクに書き込ま
れることになる。
【0216】上記方法の動作を以下に示す。 (a)書き込み要求のあったキャッシュセグメントを圧
縮する。 (b)パッキング用の領域に圧縮セグメントを格納でき
る領域がない場合、つまり、これ以上パッキングできな
い状態である場合、圧縮セクタをディスクに書き込む。
この時、複数の圧縮セクタからディスクに書き込む圧縮
セクタを決定する方法として、前記したような最も古く
にアクセスされた圧縮セクタが用いられる。 (c)圧縮セグメントをパッキングする。 (d)(a)に戻る。 4.1.23 部分的な置き換えにより更新する例 次に、既にハードディスク30に書き込まれたデータを
置き換える際の処理、すなわち、更新処理について説明
する。
【0217】図28に、部分的な置き換えによる更新の
方法を示す。1、2、3、4、5の圧縮セグメントが割
り付けられた圧縮セクタ中の3の圧縮セグメントが更新
された場合に、その更新後のデータである5の圧縮セグ
メントで置き換える際の処理である。ここでは、5の圧
縮セグメントのデータ長は、3の圧縮セグメントのデー
タ長よりも大きくないので、3の圧縮セグメントが占有
していた領域に、5の圧縮セグメントをそのまま書き込
んで更新する。
【0218】この方法では、更新に必要な部分だけに関
して、データの書き換えを行うため、高速に動作させる
ことが可能である。 4.1.24 消去及び新たなパッキングにより更新す
る例 図29に、消去及び新たなパッキングによる更新を示
す。1、2、3、4の圧縮セグメントから構成される圧
縮セクタ中の3の圧縮セグメントについて、その更新後
のデータである5の圧縮セグメントで置き換える際の処
理である。この場合、更新するデータである5の圧縮セ
グメントが、3の圧縮セグメントよりデータ長が大きい
ため、ハードディスク30上の領域を置き換えることが
できない。そこで、3の圧縮セグメントを消去する。
【0219】具体的には、管理テーブル27a内に設け
られる、圧縮セグメントと圧縮セクタの対応テーブルに
おいて、対応付けを記述した部分を消去する。そして、
5の圧縮セグメントは、別途パッキングを行って、ハー
ドディスク30に書き込む。
【0220】即ち、図29において、(1)の圧縮セク
タから3の圧縮セグメントを消去し、(2)の圧縮セク
タに5の圧縮セグメントを割り付ける。本例において、
複数の圧縮セクタが用いられた時、通常の(新規)書き
込みと同様に、ディスクに書き込む圧縮セクタの決定を
行い、その圧縮セクタをハードディスク30に書き込ま
れる。 4.1.25 圧縮セクタの展開及び再パッキングによ
る更新 図30に、圧縮セクタの展開及び再パッキングによる更
新方法を示す。1、2、3、4の圧縮セグメントから構
成される圧縮セクタ中の3の圧縮セグメントについて、
その更新後のデータである5の圧縮セグメントで置き換
える際の処理である。この処理は、更新前後の圧縮セグ
メントのデータ長に関わらず一定の処理を行う。
【0221】具体的には、更新前の圧縮セグメントであ
る3の圧縮セグメントを含む圧縮セクタについて、更新
前の圧縮セグメントを除く全ての圧縮セグメントを展開
する。即ち、図30において、更新後のデータである5
の圧縮セグメントが来たときに、以下の操作によって更
新が行われる。 (a)3の圧縮セグメントを含む(2)の圧縮セクタを
ディスクから読み込んで、読んだデータをメモリに逐次
展開(コピー)する。ただし、3の圧縮セグメントその
ものは、更新前のデータであるから、メモリに展開する
必要はない。 (b)展開された1、2、4の圧縮セグメントを圧縮セ
クタにそれぞれパッキングする。なお、パッキングする
際に、パッキング用のスペースがない場合は、パッキン
グ用圧縮セクタのディスクへの書き込みが先に行われ
る。
【0222】次に、展開した全ての圧縮セグメント(図
30では、1、2、4)について、新規圧縮セグメント
と同様に、圧縮セクタに対して割り付け処理(パッキン
グ)を行う。
【0223】更に、更新後の圧縮セグメントである5の
圧縮セグメントについても、圧縮セクタに対して割り付
け処理(パッキング)を行う。そして、割り付け処理さ
れた圧縮セクタをハードディスク30に書き込む。
【0224】上記更新の際に、展開された圧縮セグメン
ト及び更新後の圧縮セグメントは、通常の(新規)書き
込みと同様にパッキングを行う。また、このパッキング
において、複数の圧縮セクタが用いられた時、通常の
(新規)書き込みと同様に、ディスクに書き込む圧縮セ
クタの決定を行い、その圧縮セクタをハードディスク3
0に書き込まれる。 4.1.26 アクセス時間を重視して更新する例 図31を参照して、アクセス時間を重視して更新する例
を説明する。
【0225】ステージ(a)には圧縮セグメント1〜8
が示されている。これら圧縮セグメント1〜8は、時系
列順に生成されたものであり、特に、圧縮セグメント5
は、圧縮セグメント3を更新対象とする圧縮セグメント
として生成されたものである。各圧縮セグメントは、キ
ャッシュメモリ22に格納された後(ステージ(b)参
照)、前述した方法で圧縮セクタに割り付け(パッキン
グ)される。そして、パッキングされた後の圧縮セクタ
がハードディスク30に書き込まれる(ステージ(c)
参照) 図31の場合、圧縮セグメント1〜4が圧縮セクタaに
パッキングされた後、圧縮セクタaがハードディスク3
0に書き込まれている様子を示している。
【0226】ここで、圧縮セクタaがハードディスク3
0に書き込まれた後に、圧縮セグメント5〜8が、キャ
ッシュメモリ22に格納されたとする。圧縮セグメント
5は、圧縮セグメント3を更新するものであるので、圧
縮セクタa中の圧縮セグメント3が割り付けられていた
領域を無効データ領域として登録する。
【0227】その後、圧縮セグメント5〜8が圧縮セク
タbにパッキングされた後、圧縮セクタbがハードディ
スク30に書き込まれる。なお、キャッシュメモリ22
に格納された圧縮セグメントは、すぐにパッキングされ
るのではなく、キャッシュメモリ22内のパッキングス
ペースが無くなった時点でパッキングされる。
【0228】このように、更新対象となる圧縮セグメン
トが割り付けられていた領域を無効データ領域として登
録することにより、更新する領域を読み出すアクセスが
不要となると共に、記録内容の置き換え(更新)や消去
等の処理が不要となる。そのため、更新に要する時間を
短縮化することが可能となる。 4.1.27 圧縮セクタを解放する例 4.1.26で述べた例では、ハードディスク30の使
用に伴って、更新データが発生するごとに、無効データ
領域が増加する、言い換えれば、ハードディスク30内
の記録可能な領域が減ることになる。このことは、ハー
ドディスク30の使用に伴って、全記録領域の大きさに
対する「有効なデータを記録している領域の大きさ」の
比率により表される充填率が低下していくことでもあ
る。
【0229】そこで、無効データ領域の大きさが予め決
められた基準値よりも大きい圧縮セクタに関しては、無
効データ領域以外の領域に割り付けられた圧縮セグメン
トを読み出すとともに、圧縮セグメントが読み出された
圧縮セクタを、その全領域が割り付け(パッキング)可
能なように変更する処理(「圧縮セクタ解放処理」とい
う)を実行する。
【0230】図32は、圧縮セクタ解放処理の例を示し
ている。4つの圧縮セグメント(図32の1、2、3及
び4)がパッキングされていた圧縮セクタaにおいて、
3つの圧縮セグメント(図32の2、3及び4)が割り
付けられていた領域が無効データ領域として登録された
場合、無効データ領域の大きさが、基準値(例えば圧縮
セクタの半分の大きさとなっている)よりも大きくな
る。そこで、無効データ領域以外の領域に割り付けられ
ていた圧縮セグメント1が読み出されて、キャッシュメ
モリ22に格納される。
【0231】ここで読み出された圧縮セグメント1は、
再びパッキング対象となる。一方、圧縮セクタaは、再
度パッキング対象となる。このように圧縮セクタを解放
することにより、あらたな圧縮セグメントをパッキング
することが可能となり、充填率の低下が抑えられると共
に、ハードディスク30の容量を、論理的な意味で増加
させることが可能となる。 4.1.28 テーブルを用いて、各圧縮セクタ中の無
効データ容量を管理する例 4.1.27で述べた圧縮セクタ解放処理を行う場合、
無効データ領域を最も多く含む圧縮セクタに対して圧縮
セクタ解放処理を行うことは、下記の点で有利である。
【0232】第1に、ハードディスク30からの読み出
し回数を最も減らせることにより、更新時に、ハードデ
ィスク30に対するアクセス時間を短縮化できることで
ある。
【0233】第2に、無効データ領域以外の領域に割り
付けられていたデータが少ないため、再パッキングに要
する時間を短縮化できることである。ここでは、無効デ
ータ領域を最も多く含む圧縮セクタを検出するため、図
33に示すテーブルを利用する。このテーブルは、無効
データ領域の大きさを示す複数の数値と、その数値を無
効データ領域の大きさとして有する圧縮セクタとを対応
づけて格納しており、数値は、圧縮セクタ内の最小割付
単位(512バイト=0.5KB) の整数倍の値であ
る。そして、このテーブルを参照することにより、無効
データ領域の大きさが基準値を超えるものを探すことが
可能となる。 4.2.第2実施形態の処理動作 次に、フローチャートにより、第2実施形態の処理動作
を説明する。 4.2.1 ホスト10から書き込み要求のあったデー
タをハードディスク30に書き込むまでの処理 図34は、ホスト10から書き込み要求のあったデータ
をハードディスク30に書き込むまでの処理、即ち、
4.1.1で参照した図13の処理に関するフローチャ
ートを表している。
【0234】まず、ホスト10からの書き込み要求とし
ての論理セクタを入力する(ステップ3401)。次
に、論理セクタを複数まとめて、所定の大きさを持つキ
ャッシュセグメントを構成する(ステップ3402)。
【0235】次に、キャッシュセグメントを圧縮して圧
縮セグメントを作成する(ステップ3403)。ここ
で、圧縮セクタに圧縮セグメントを割り付ける領域が残
っているか否かを、圧縮セクタ数と圧縮セグメント数と
を比較することにより判別する(ステップ3404)。
【0236】ステップ3404で「残っていない」と判
別された場合に、圧縮セクタをハードディスク30に書
き込む(ステップ3805)。ステップ3405の実行
後と、ステップ3404で「残っている」と判別された
場合に、圧縮セグメントを複数まとめて(パッキン
グ)、圧縮セクタに割り付ける(ステップ3406)。
【0237】そして、ステップ3401から再度実行す
る。 4.2.2 時系列パッキングの処理 図35は、時系列パッキングの処理、即ち、4.1.1
1で参照した図17の処理に関するフローチャートを表
している。
【0238】まず、圧縮セグメントを入力し、直前の圧
縮セグメントを割り付けた圧縮セクタの残り容量と、今
回割り付ける圧縮セグメントの容量を比較判別する(ス
テップ3501)。
【0239】ステップ3501で「圧縮セグメントのほ
うが大」と判別された場合に、他の圧縮セクタを、入力
された圧縮セグメントに対する割り付け対象とする(ス
テップ3502)。
【0240】ステップ3501で「圧縮セグメントのほ
うが小」と判別された場合に、直前に圧縮セグメントが
割り付けられた圧縮セクタを、入力された圧縮セグメン
トに対する割付対象とする(ステップ3503)。
【0241】ステップ3502及びステップ3503の
処理後に、圧縮セグメントを割付対象の圧縮セクタに割
り付ける(ステップ3504)。 4.2.3 特定のサイズを組み合わせたパッキングの
処理 図36は、特定のサイズを組み合わせたパッキングの処
理、即ち、4.1.12で参照した図18の処理に関す
るフローチャートを表している。
【0242】まず、圧縮セグメントを入力し、圧縮セグ
メント用のバッファは、まだ格納できるか否かを判断す
る(ステップ3601)。ステップ3602で、「格納
できる」と判断された場合に、圧縮セグメントをサイズ
毎に分類する(ステップ3602)。
【0243】そして、予め決めてある圧縮セグメントの
サイズの組み合わせがそろったか否かを判別する(ステ
ップ3603)。ステップ3602で、「そろっていな
い」と判別された場合に、パッキング終了となる。
【0244】ステップ3602で、「そろった」と判別
された場合に、特定の組み合わせの圧縮セグメントを圧
縮セクタに割り付けて(ステップ3603)、パッキン
グ終了となる。
【0245】ステップ3601で、「格納できない」と
判断された場合に、特定の圧縮セグメントの組み合わせ
に最も容量の近い圧縮セグメントの組み合わせを圧縮セ
クタに割り付けて(ステップ3605)、パッキング終
了となる。
【0246】なお、以上の説明において、「そろった」
とは、あらかじめ決めたサイズ(図18では、10%、
30%、60%、100%)について、それぞれ少なく
とも1つづつ圧縮セグメントがバッファリングされた状
態をいう。予め決めたサイズの圧縮セグメントが現れる
ことなく、バッファが一杯になることがあるが、この場
合は、予め決めた組み合わせに最も近い容量の組み合わ
せをもって、「そろった」という。 4.2.4 近隣のアドレスを持つ圧縮セグメントをパ
ッキングする処理 図37は、近隣のアドレスを持つ圧縮セグメントをパッ
キングする処理、即ち、4.1.13で参照した図19
の処理に関するフローチャートを表している。
【0247】まず、圧縮セグメントを入力し、対象の圧
縮セグメントを格納できる圧縮セクタをリストアップす
る(ステップ3701)。次に、対象の圧縮セグメント
が持つアドレスに対して、近隣のアドレスを持つ圧縮セ
グメントをパッキングしている圧縮セクタをリストアッ
プする(ステップ3702)。
【0248】そして、条件に合う圧縮セクタがあるか無
いかを判断する(ステップ3703)。ステップ370
3で、「ない」と判断された場合に、他の圧縮セクタ
を、入力された圧縮セグメントに対する割り付け対象と
する(ステップ3704)。
【0249】ステップ3703で、「ある」と判断され
た場合に、近隣のアドレスを持つ圧縮セグメントが割り
付けられている圧縮セクタを、入力された圧縮セグメン
トに対する割付対象とする(ステップ3705)。
【0250】ステップ3704及びステップ3705の
処理後に、割り付け対象の圧縮セクタに圧縮セグメント
を割り付ける(ステップ3706)。 4.2.5 ランダムパッキングの処理 図28は、ランダムパッキングの処理、即ち、4.1.
14で参照した図20の処理に関するフローチャートを
表している。
【0251】まず、圧縮セグメント入力し、割付可能な
圧縮セクタ中から乱数によってランダムに割付対象とす
る圧縮セクタを決定する(ステップ3801)。そし
て、圧縮セグメントを割付対象の圧縮セクタに割り付け
る(ステップ3802)。 4.2.6 圧縮セグメントを順番にパッキングする処
理 図39は、圧縮セグメントを順番にパッキングする処
理、即ち、4.1.15で参照した図21の処理に関す
るフローチャートを表している。
【0252】まず、圧縮セグメントを入力し、直前の割
付対象となった圧縮セクタの次の圧縮セクタを割付対象
とする(ステップ3901)。そして、対象の圧縮セク
タに圧縮セグメントを割り付ける容量があるか否かを判
別する(ステップ3902)。
【0253】ステップ3902で、「ない」と判別され
た場合に、次の圧縮セクタに移るため、ステップ390
1に戻る。ステップ3902で、「ある」と判別された
場合に、圧縮セグメントを割付対象の圧縮セクタに割り
付ける(ステップ3903)。 4.2.7 圧縮セクタの残りが少なくなるようにパッ
キングする処理 図40は、圧縮セクタの残りが少なくなるようにパッキ
ングする処理、即ち、4.1.16で参照した図22の
処理に関するフローチャートを表している。
【0254】まず、圧縮セグメントを入力し、該当する
圧縮セグメントを割付可能な圧縮セクタにおいて、最も
割付可能容量が小さい圧縮セクタを割付対象とする(ス
テップ4001)。即ち、「各圧縮セクタの残り容量」
は、それぞれに対応する変数を持っていて、パッキング
の度に変数内容の更新をしているので、各圧縮セクタ毎
にこの変数の値を比較することで、最も割付可能容量が
小さい圧縮セクタが求められる。なお、「割り付け可能
なものがない」場合は、圧縮セクタがディスクに書き込
まれる。
【0255】そして、圧縮セグメントを割付対象の圧縮
セクタに割り付ける(ステップ4002)。 4.2.8 次の圧縮セグメント長を予測してパッキン
グする処理 図41は、次の圧縮セグメント長を予測してパッキング
する処理、即ち、4.1.7で参照した図23の処理に
関するフローチャートを表している。
【0256】まず、圧縮セグメントを入力して、圧縮セ
グメントを割り付けたと仮定した場合の残り容量を、そ
れぞれの圧縮セクタについて求める(ステップ410
1)。次に、残り容量を圧縮セグメント長の出現頻度曲
線に各セクタ毎に当てはめる(ステップ4102)。
【0257】次に、出現頻度曲線に当てはめた残り容量
の中で、最も出現頻度の高いものを求める(ステップ4
103)。次に、最も出現頻度の高い残り容量を持つ圧
縮セクタを割付対象とする(ステップ4104)。
【0258】そして、圧縮セグメントを割付対象の圧縮
セクタに割り付ける(ステップ4105)。 4.2.9 次の圧縮セグメントをバッファリングして
パッキングする処理 図42は、次の圧縮セグメントをバッファリングしてパ
ッキングする処理、即ち、4.1.18で参照した図2
4の処理に関するフローチャートを表している。
【0259】まず、圧縮セグメントを入力し、割り付け
るべき圧縮セグメント及び次に割り付けるべき圧縮セグ
メントをバッファリングする(ステップ4201)。次
に、2つの圧縮セグメントが連続したときのデータ長を
求める(ステップ4202)。
【0260】次に、すべての圧縮セクタに、連続した圧
縮セグメントを割り付けると仮定し、その場合の各圧縮
セクタの残り容量を求める(ステップ4203)。次
に、最も容量の少ない圧縮セクタを割付対象とする(ス
テップ4204)。
【0261】そして、圧縮セグメントを割付対象の圧縮
セクタに割り付ける(ステップ4205)。 4.2.10 目標圧縮率を達成した圧縮セクタを書き
込む処理 図43は、目標圧縮率を達成した圧縮セクタを書き込む
処理、即ち、4.1.19で参照した図25の処理に関
するフローチャートを表している。
【0262】この処理では、圧縮セグメントを格納する
容量が圧縮セクタにないことを前提とする。まず、各圧
縮セクタに割り付けられている圧縮セグメントの個数を
求める(ステップ4301)。
【0263】次に、目標圧縮率を達成した圧縮セクタが
存在するか否かを判別する(ステップ4302)。ステ
ップ4302で、「存在する」と判別された場合に、目
標を達成した圧縮セクタを書込対象とする(ステップ4
303)。
【0264】ステップ4302で、「存在しない」と判
別された場合に、他の手段、即ち、「目標圧縮率による
書き込み」以外の書き込み方法によって、書込対象とな
るべき圧縮セクタを決定する(ステップ4304)。
【0265】ステップ4303及びステップ4304の
処理後に、書込対象の圧縮セクタをハードディスク30
に書き込む(ステップ4305)。 4.2.11 残り容量の最も少ない圧縮セクタを書き
込む処理 図44は、残り容量の最も少ない圧縮セクタを書き込む
処理、即ち、4.1.20で参照した図26の処理に関
するフローチャートを表している。
【0266】まず、各圧縮セクタに割り付けられる残り
容量を求める(ステップ4401)。次に、残り容量の
最も少ない圧縮セクタを書込対象とする(ステップ44
02)。
【0267】そして、書込対象の圧縮セクタをハードデ
ィスク30に書き込む(ステップ4403)。 4.2.12 残り容量の出現頻度が少ない圧縮セクタ
を書き込む処理 図45は、残り容量の出現頻度が少ない圧縮セクタを書
き込む処理、即ち、4.1.21で参照した図45の処
理に関するフローチャートを表している。
【0268】まず、各圧縮セクタに割付可能な残り容量
を求める(ステップ4501)。次に、各圧縮セクタの
残り容量を圧縮セグメント長の出現頻度分布に当てはめ
る(ステップ4502)。
【0269】次に、目標圧縮率を達成した圧縮セクタを
書込対象とする(ステップ4503)。次に、各圧縮セ
クタの残り容量の中で最も出現頻度の低い圧縮セグメン
ト長に一致する圧縮セクタの残り容量を持つ圧縮セクタ
を書込対象とする(ステップ4504)。
【0270】そして、書込対象の圧縮セクタをハードデ
ィスク30に書き込む(ステップ4505)。 4.2.13 部分的な置き換えによる更新処理 図46は、部分的な置き換えによる更新処理、即ち、
4.1.23で参照した図28の処理に関するフローチ
ャートを表している。
【0271】まず、更新データを入力し、更新前のデー
タが格納されているハードディスク30上のアドレスを
求める(ステップ4601)。次に、更新前のデータ長
と更新後のデータ長とを比較判別する(ステップ460
2)。つまり、「更新前のデータ長」は、個々のキャッ
シュセグメント毎に管理テーブル27aで管理されてお
り、「更新後のデータ長」は、現在対象にしている圧縮
セグメントのデータ長となるので、これらがファームウ
ェア上で、演算子“>”や“<”などを用いて比較され
る。
【0272】ステップ4602で、「更新前のデータ長
が更新後のデータ長よりも大きいか等しい」と判断され
た場合に、更新前のデータが格納されているところに更
新データを上書きする(ステップ4603)。
【0273】ステップ4602で、「更新前のデータ長
が更新後のデータ長よりも短い」と判断された場合に、
図47に示す処理に移る。 4.2.14 消去及び新たなパッキングによる置換処
理 図47は、消去及び新たなパッキングによる置換処理、
即ち、4.1.24で参照した図29の処理に関するフ
ローチャートを表している。
【0274】まず、更新データを入力し、更新前のデー
タが格納されているハードディスク30上のアドレスを
求める(ステップ4701)。次に、更新前のデータ長
が更新後のデータ長よりも短いと判断された場合に、更
新前のデータが格納されているところを消去する(ステ
ップ4702)。
【0275】そして、更新後のデータをパッキングする
(ステップ4703)。 4.2.15 圧縮セクタの展開及び再パッキングによ
る更新処理 図48は、圧縮セクタの展開及び再パッキングによる更
新処理、即ち、4.1.25で参照した図30の処理に
関するフローチャートを表している。
【0276】まず、更新データを入力し、更新前のデー
タが格納されている圧縮セクタを求める(ステップ48
01)。次に、圧縮セクタを展開し、更新前の圧縮セグ
メント以外の圧縮セグメントを順次パッキングする(ス
テップ4802)。
【0277】そして、更新後のデータをパッキングする
(ステップ4803)。 4.2.16 アクセス時間を重視して更新する処理 図49は、アクセス時間を重視して更新する処理、即
ち、4.1.26及び4.1.27で述べた図31の処
理に関するフローチャートを表している。
【0278】まず、ホスト10から書込要求があった場
合に、書込データがキャッシュメモリ22に格納される
(ステップ4901)。その後、圧縮セクタ中の現在の
充填率と、予め設定された設定充填率とを比較する(ス
テップ4902)。
【0279】現在の充填率が設定充填率よりも小さい場
合(ステップ4902の“<”で示される経路)、無効
データを含む圧縮セクタが解放される(ステップ490
3)。 反対に、現在の充填率が設定充填率よりも大き
い場合、圧縮セクタに更新対象の圧縮セグメントが含ま
れているか否かを判断する(ステップ4904)。
【0280】更新対象の圧縮セグメントが含まれている
場合(ステップ4904の「いる」で示される経路)、
無効データ領域を登録して更新処理を行う(ステップ4
905)。
【0281】更新対象の圧縮セグメントが含まれていな
い場合(ステップ4904の「いない」で示される経
路)、キャッシュメモリ22内のパッキングスペースが
有るか無いかを判断する(ステップ4906)。
【0282】キャッシュメモリ22にパッキングスペー
スが無い場合(ステップ4906の「ない」で示される
経路)、圧縮セクタにキャッシュメモリ22内の圧縮セ
グメントを割り付ける(パッキングする)(ステップ4
907)。
【0283】その、圧縮セグメントが割り付けられた圧
縮セクタをハードディスク30に書き込む(ステップ4
908)。キャッシュメモリ22にパッキングスペース
が有る場合(ステップ4906の「ある」で示される経
路)及びステップ4908が実行された後、ホスト10
からの書込要求を待って(ステップ4909)、再度ス
テップ4901からの処理を実行する。
【0284】次に、ステップ4903の詳細な処理動作
を図50を参照して説明する。この、図50は、4.
1.27で述べた処理に関するフローチャートを表して
いる。まず、各圧縮セクタ中の無効データ領域の大きさ
(容量)を入力する(ステップ5001)。
【0285】次に、ステップ5001での入力結果に基
づいて、無効データ領域の大きさが最も大きい圧縮セク
タを、解放する圧縮セクタとして決定する(ステップ5
002)。このとき、図33に示すテーブルが参照され
る。
【0286】そして、ステップ5002で解放されるこ
とが決定された圧縮セクタから、有効な圧縮セグメン
ト、即ち、無効データ領域以外の領域に割り付けられた
圧縮セグメントを読み出す(ステップ5003)。
【0287】
【発明の効果】本発明の第1及び第2の記憶制御装置に
よれば、ディスク記憶装置を制御することで、ソフトウ
ェアを利用せずに圧縮を行うことが可能になる。特に、
第2の記憶制御装置は、ディスクアレイ装置に対して有
効となる。
【0288】次に、本発明の第1及び第2のディスク記
憶装置の制御方法によれば、ソフトウェアを利用せずに
圧縮を行うことが可能となる。次に、本発明の第1から
第34の圧縮データ管理方法によれば、圧縮率を有効化
するとともにクリーニングによる利便性低下を回避し、
シークの最適化を可能とする。
【0289】特に、第32から第34の圧縮データ管理
方法によれば、ディスク記憶装置の内容を更新する場合
に、更新時の読み込み時間を減少させることができるた
め、ディスク記憶装置に対するアクセス時間を短縮化す
ることが可能となる。
【図面の簡単な説明】
【図1】実施形態の構成図である。この図は、本発明の
第1のディスク記憶制御装置の原理構成図を兼ねてい
る。
【図2】実施形態の変形例の構成図である。この図は、
本発明の第2のディスク記憶制御装置の原理構成図を兼
ねている。
【図3】ディスクデータ管理部に設けられている管理テ
ーブルを示す図である。
【図4】データ管理の単位を示す図である(その2)。
【図5】データ管理の単位を示す図である(その1)。
【図6】CFS方式による圧縮データ管理方法の処理フ
ローチャート図(その1)である。
【図7】CFS方式による圧縮データ管理方法の処理フ
ローチャート図(その2)である。
【図8】圧縮ブロックの領域を決める概念を示す図であ
る。
【図9】部分的に圧縮ブロックの領域を決める概念を示
す図である。
【図10】CFS方式による圧縮データ管理方法の処理
フローチャート図(その3)である。
【図11】部分的に圧縮ブロックの領域を決める概念を
示す図である。
【図12】該当領域に空きが無い場合、他の領域に空き
を探す手法を説明する図である
【図13】PFS方式による圧縮データ管理の概念を表
す図である。
【図14】ビット・ゾーン・レコーディングを示す図で
ある。
【図15】圧縮セクタ内の割付単位を示す図である。
【図16】圧縮キャッシュ内で複数の圧縮セクタを持つ
例を示す図である。
【図17】時系列に圧縮セグメントをパッキングする例
を示す図である。
【図18】圧縮セグメントの特定サイズを組み合わせて
パッキングする例を示す図である。
【図19】近隣のアドレスを持つ圧縮セグメントを同じ
圧縮セクタに割り振る例を示す図である。
【図20】圧縮セグメントをランダムに圧縮セクタに割
り振る例を示す図である。
【図21】圧縮セグメントを順番に圧縮セクタに割り振
る例を示す図である。
【図22】圧縮セクタの残りが少なくするようにパッキ
ングする例を示す図である。
【図23】次の圧縮セグメント長を予測してパッキング
する例を示す図である。
【図24】圧縮セグメントをバッファリングして圧縮セ
クタに割り付ける例を示す図である。
【図25】目標圧縮率を達成した圧縮セクタを書き込む
例を示す図である。
【図26】残り容量の最も少ない圧縮セクタを書き込む
例を示す図である。
【図27】残り容量の出現頻度が少ない圧縮セクタを書
き込む例を示す図である。
【図28】部分的な置き換えにより更新する例を示す図
である。
【図29】消去及び新たなパッキングにより更新する例
を示す図である。
【図30】圧縮セクタの展開及び再パッキングにより更
新する例を示す図である。
【図31】アクセス時間を重視して更新する例を示す図
である。
【図32】圧縮セクタを解放する例を示す図である。
【図33】各圧縮セクタ中の無効データ容量を管理する
テーブルの例を示す図である。
【図34】ホストから書き込み要求のあったデータを記
憶装置に書き込むまでの処理に関するフローチャート図
である。
【図35】時系列パッキングの処理に関するフローチャ
ート図である。
【図36】特定のサイズを組み合わせたパッキングの処
理に関するフローチャート図である。
【図37】近隣のアドレスを持つ圧縮セグメントをパッ
キングする処理に関するフローチャート図である。
【図38】ランダムパッキングの処理に関するフローチ
ャート図である。
【図39】圧縮セグメントを順番にパッキングする処理
に関するフローチャート図である。
【図40】圧縮セクタの残りが少なくなるようにパッキ
ングする処理に関するフローチャート図である。
【図41】次の圧縮セグメント長を予測してパッキング
する処理に関するフローチャート図である。
【図42】次の圧縮セグメントをバッファリングしてパ
ッキングする処理に関するフローチャート図である。
【図43】目標圧縮率を達成した圧縮セクタを書き込む
処理に関するフローチャート図である。
【図44】残り容量の最も少ない圧縮セクタを書き込む
処理に関するフローチャート図である。
【図45】残り容量の出現頻度が少ない圧縮セクタを書
き込む処理に関するフローチャート図である。
【図46】部分的な置き換えによる更新処理に関するフ
ローチャート図である。
【図47】消去及び新たなパッキングによる置換処理に
関するフローチャート図である。
【図48】圧縮セクタの展開及び再パッキングによる更
新処理に関するフローチャート図である。
【図49】アクセス時間を重視して更新する処理に関す
るフローチャート図である。
【図50】図49のS4903の詳細フローチャート図
である。
【符号の説明】
10 ホスト 20 記憶制御装置 21 ホストインタフェース部 22 キャッシュメモリ 23 圧縮・復元部 24 バッファメモリ 25 エラー訂正フォーマッタ部 26 ディスクアクセス制御部 27 ディスクデータ管理部 27a 管理テーブル 30 ディスク記憶装置(ハードディスク)
フロントページの続き (72)発明者 下井 洋行 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 岡安 尚昭 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (56)参考文献 特開 平6−332622(JP,A) 特開 平5−53730(JP,A) 特開 平5−12800(JP,A) 特開 平6−309111(JP,A) 特開 平7−129470(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 3/06 - 3/08

Claims (37)

    (57)【特許請求の範囲】
  1. 【請求項1】 ホストから出力された所定長のライトデ
    ータ及びそのアドレスが入力されるホストインターフェ
    イス部と、 前記ホストインターフェイス部に入力されたライトデー
    タを複数個まとめたキャッシュセグメントを保持するキ
    ャッシュメモリと、 前記キャッシュセグメントを圧縮した圧縮セグメントを
    作成する圧縮部と、 前記圧縮セグメントが1以上格納される所定長のバッフ
    ァメモリと、 前記バッファメモリの格納内容を圧縮セクタとして記憶
    装置に記録する書込制御部と、 前記記憶装置に記録された圧縮セクタのアドレス及びこ
    の圧縮セクタ内の圧縮セグメントのアドレスと前記ホス
    トインターフェイス部に入力されたライトデータのアド
    レスとを対応づけたテーブルを作成するデータ管理部と
    を備えたことを特徴とする圧縮データ管理装置。
  2. 【請求項2】 前記記憶装置は、ディスク記憶装置であ
    り、このディスク記憶装置は、ディスクアレイ装置に設
    けられていることを特徴とする請求項1に記載の圧縮デ
    ータ管理装置。
  3. 【請求項3】 ホストから入力された所定長のライトデ
    ータを複数個まとめたキャッシュセグメントを作成する
    第1のステップと、 前記キャッシュセグメントを圧縮した圧縮セグメントを
    作成する第2のステップと、 少なくとも1つの圧縮セグメントを所定長の圧縮セクタ
    に割り付ける第3のステップと、 前記圧縮セクタを記憶装置に記録する第4のステップ
    と、 前記記憶装置に記録された圧縮セクタのアドレス及びこ
    の圧縮セクタ内における圧縮セグメントのアドレスと前
    記ホストから入力されたライトデータのアドレスとを対
    応づけたテーブルを作成する第5のステップとを含むこ
    とを特徴とする圧縮データ管理方法。
  4. 【請求項4】 書込要求された複数のデータをまとめた
    後で圧縮することにより得られるデータを表す圧縮セグ
    メントを、ディスク記憶装置に複数設けられた記録領域
    を表す圧縮セグメント領域に記録する圧縮セグメント記
    録ステップと、 圧縮セグメント領域の割合を設定する割合設定ステップ
    とを備え、 前記圧縮セグメント記録ステップでは、記録される圧縮
    セグメントの大きさが各圧縮セグメント毎に設定されて
    いることを特徴とする圧縮データ管理方法。
  5. 【請求項5】 請求項4において、 前記割合設定ステップでは、前記ディスク記憶装置の初
    期化時に各圧縮セグメント領域の割合を設定することを
    特徴とする圧縮データ管理方法。
  6. 【請求項6】 請求項4において、 前記割合設定ステップでは、前記ディスク記憶装置の初
    期化時に一部分のみの圧縮セグメント領域の割合を設定
    すると共に、残りの圧縮セグメント領域の割合を、各圧
    縮セグメント領域別の圧縮セグメントの記録分布に基づ
    いて設定することを特徴とする圧縮データ管理方法。
  7. 【請求項7】 請求項4において、 前記割合設定ステップでは、前記ディスク記憶装置に複
    数のシリンダが設けられている場合に、各圧縮セグメン
    ト領域の割合を、シリンダ毎に設定することを特徴とす
    る圧縮データ管理方法。
  8. 【請求項8】 請求項4において、 前記圧縮セグメント記録ステップでは、記録対象の圧縮
    セグメントが記録されるべき圧縮セグメント領域に空き
    が無い場合に、記録対象の圧縮セグメントとは異なる大
    きさを有する圧縮セグメントが記録される圧縮セグメン
    ト領域に、記録対象の圧縮セグメントを記録することを
    特徴とする圧縮データ管理方法。
  9. 【請求項9】 請求項4において、圧縮セグメントを更
    新して記録する場合に、 更新前と更新後とで圧縮セグメントをの大きさが変わっ
    ていなければ、更新前の記録位置に更新後の圧縮セグメ
    ントを記録し、 更新前と更新後とで圧縮セグメントの大きさが変わって
    いれば、更新後の圧縮セグメントの大きさに応じた圧縮
    セグメント領域に更新後の圧縮セグメントを記録すると
    ともに、更新前の圧縮セグメントが記録されていた部分
    を空き領域として管理する圧縮セグメント更新記録ステ
    ップを設けたことを特徴とする圧縮データ管理方法。
  10. 【請求項10】 請求項9において、 前記圧縮セグメント更新記録ステップでは、各圧縮セグ
    メント領域毎の空き領域を登録したテーブルを利用し
    て、圧縮セグメント領域の空き領域を管理することを特
    徴とする圧縮データ管理方法。
  11. 【請求項11】 請求項8において、 記録対象の圧縮セグメントが記録されるべき圧縮セグメ
    ント領域に記録対象の圧縮セグメントを記録するための
    空きが無い場合に、記録対象の圧縮セグメントよりも一
    段階大きい圧縮セグメントが記録される圧縮セグメント
    領域に、記録対象の圧縮セグメントを記録することを特
    徴とする圧縮データ管理方法。
  12. 【請求項12】 請求項8において、 記録対象の圧縮セグメントが記録されるべき圧縮セグメ
    ント領域に記録対象の圧縮セグメントを記録するための
    空きが無い場合に、Nを自然数として、記録対象の圧縮
    セグメントの1/Nの大きさを有する圧縮セグメントが
    記録される圧縮セグメント領域に、N分割された記録対
    象の圧縮セグメントを記録することを特徴とする圧縮デ
    ータ管理方法。
  13. 【請求項13】 書込要求された複数のデータをまとめ
    た後で圧縮することにより得られるデータを表す圧縮セ
    グメントを、ディスク記憶装置に複数設けられた記録領
    域を表す圧縮セグメント領域に記録する圧縮セグメント
    記録ステップと、 前記圧縮セグメント中の記録位置の初期値を設定する初
    期値設定ステップと、 前記圧縮セグメント記録ステップで圧縮セグメントが記
    録された場合に、記録位置を変更する記録位置変更ステ
    ップとを備え、 前記圧縮セグメント記録ステップでは、各圧縮セグメン
    ト領域に、略同一の大きさの圧縮セグメントを記録する
    ことを特徴とする圧縮データ管理方法。
  14. 【請求項14】 請求項4又は請求項13において、 前記ディスク記憶装置には、データの書込を要求するホ
    ストが接続されており、前記ディスク記憶装置に記録さ
    れた容量が、予め設定された閾値を越えた場合に、前記
    ホストにそのことが通知されることを特徴とする圧縮デ
    ータ管理方法。
  15. 【請求項15】 書込要求された複数のデータをまとめ
    ることにより得られるデータを表すキャッシュセグメン
    トを生成するキャッシュセグメント生成ステップと、 前記キャッシュセグメント生成ステップで生成されたキ
    ャッシュセグメントを圧縮することにより得られるデー
    タデータを表す圧縮セグメントを生成する圧縮セグメン
    ト生成ステップと、 前記圧縮セグメント生成ステップで生成された圧縮セグ
    メントを、所定長を有するバッファを表す圧縮セクタに
    割り付ける圧縮セグメント割付ステップと、 前記圧縮セグメント割付ステップで圧縮セグメントが割
    り付けられた圧縮セクタを、ディスク記憶装置に記録す
    る圧縮セクタ記録ステップと、 を備えたことを特徴とする圧縮データ管理方法。
  16. 【請求項16】 請求項15において、 前記キャッシュセグメント生成ステップで生成されるキ
    ャッシュセグメントは、書込要求されたデータの最小単
    位を表す論理セクタ長の自然数倍のデータ長を有するこ
    とを特徴とする圧縮データ管理方法。
  17. 【請求項17】 請求項15において、 書込要求されたデータは、前記ディスク記憶装置内に設
    けられたキャッシュメモリに格納され、 前記キャッシュセグメント生成ステップでは、前記キャ
    ッシュメモリに格納された書込データからキャッシュセ
    グメントを生成することを特徴とする圧縮データ管理方
    法。
  18. 【請求項18】 請求項15において、 前記圧縮セグメント割付ステップでは、複数の圧縮セク
    タに複数の圧縮セグメントを割り付ける場合に、一つの
    圧縮セクタに圧縮セグメントを割り付けていき、割り付
    けられなくなったら、他の圧縮セクタに圧縮セグメント
    を割り付けていくことを特徴とする圧縮データ管理方
    法。
  19. 【請求項19】 請求項15において、 前記圧縮セグメント割付ステップでは、複数の圧縮セグ
    メントを割り付ける場合に、圧縮セグメントを圧縮率毎
    に分類するとともに、各分類の圧縮セグメントを組み合
    わせることで割り付けることを特徴とする圧縮データ管
    理方法。
  20. 【請求項20】 請求項15において、 前記圧縮セグメント生成ステップでは、アドレスを付さ
    れた圧縮セグメントをを生成し、 前記圧縮セグメント割付ステップでは、複数の圧縮セク
    タに複数の圧縮セグメントを割り付ける場合に、近いア
    ドレスを有する圧縮セグメント同士を組み合わせて割り
    付けることを特徴とする圧縮データ管理方法。
  21. 【請求項21】 請求項15において、 前記圧縮セグメント生成ステップでは、一意の番号を有
    する圧縮セグメントを生成し、 前記圧縮セグメント割付ステップでは、複数の圧縮セク
    タに複数の圧縮セグメントを割り付ける場合に、圧縮セ
    クタに割り付けるべき圧縮セグメントの番号を乱数によ
    り生成することを特徴とする圧縮データ管理方法。
  22. 【請求項22】 請求項15において、 前記圧縮セグメント割付ステップでは、複数の圧縮セク
    タに複数の圧縮セグメントを割り付ける場合に、一つの
    圧縮セクタにつき圧縮セグメントを一つずつ割り付けて
    ゆき、全ての圧縮セクタに割り付けたら、再度一つの圧
    縮セクタにつき圧縮セグメントを一つずつ割り付けてゆ
    くことを特徴とする圧縮データ管理方法。
  23. 【請求項23】 請求項15において、 前記圧縮セグメント割付ステップでは、複数の圧縮セク
    タに複数の圧縮セグメントを割り付ける場合に、圧縮セ
    グメントが割り付けられていない領域が小さい圧縮セク
    タから圧縮セグメントを割り付けゆくことを特徴とする
    圧縮データ管理方法。
  24. 【請求項24】 請求項15において、 前記圧縮セグメント割付ステップでは、複数の圧縮セク
    タに複数の圧縮セグメントを割り付ける場合に、圧縮セ
    グメントを割り付けた後の空き容量が所定値以下となる
    ように割り付けることを特徴とする圧縮データ管理方
    法。
  25. 【請求項25】 請求項24において、 前記圧縮セグメント割付ステップでは、圧縮セグメント
    のデータ長と出現頻度との関係を利用して割り付けるこ
    とを特徴とする圧縮データ管理方法。
  26. 【請求項26】 請求項15において、 前記圧縮セグメント割付ステップでは、複数の圧縮セク
    タに複数の圧縮セグメントを割り付ける場合に、圧縮セ
    グメントを割り付けた後の空き容量が、その後に割り付
    けられる圧縮セグメントのデータ長となる圧縮セクタが
    選択されて割り付けることを特徴とする圧縮データ管理
    方法。
  27. 【請求項27】 請求項15において、 前記圧縮セクタ記録ステップでは、複数の圧縮セクタを
    記録する場合に、所定の圧縮率を達成した圧縮セグメン
    トが割り付けられた圧縮セクタを優先して記録すること
    を特徴とする圧縮データ管理方法。
  28. 【請求項28】 請求項15において、 前記圧縮セクタ記録ステップでは、複数の圧縮セクタを
    記録する場合に、空き容量が最も小さい圧縮セクタを優
    先して記録することを特徴とする圧縮データ管理方法。
  29. 【請求項29】 請求項15において、 前記圧縮セクタ記録ステップでは、複数の圧縮セクタを
    記録する場合に、新たな圧縮セグメントが割り付けられ
    る可能性が最も低い圧縮セクタを優先して記録すること
    を特徴とする圧縮データ管理方法。
  30. 【請求項30】 請求項29において、 前記圧縮セクタ記録ステップでは、圧縮セグメントが割
    り付けられる可能性が最も低いかどうかを、圧縮セグメ
    ントのデータ長と出現頻度との関係を利用して判断する
    ことを特徴とする圧縮データ管理方法。
  31. 【請求項31】 請求項15において、 前記圧縮セクタ記録ステップでは、複数の圧縮セクタを
    記録する場合に、圧縮セグメントの割り付け後からの経
    過時間が最も長い圧縮セクタを優先して記録することを
    特徴とする圧縮データ管理方法。
  32. 【請求項32】 請求項15において、 前記ディスク記憶装置に記録された圧縮セクタ中に含ま
    れる圧縮セグメントの内容を更新する場合に、更新対象
    の圧縮セグメントが含まれる圧縮セクタを前記ディスク
    記憶装置から読み出して圧縮セグメントの内容を更新
    し、再び前記ディスク記憶装置に記録する更新ステップ
    を設けたことを特徴とする圧縮データ管理方法。
  33. 【請求項33】 書込要求された複数のデータをまとめ
    た後で圧縮することにより得られるデータを表す圧縮セ
    グメントを、所定長を有するバッファを表す圧縮セクタ
    に割り付ける割付ステップと、 前記割付ステップで割り付けされた圧縮セクタを、ディ
    スク記憶装置に記録する圧縮セクタ記録ステップと、 前記圧縮セクタ記録ステップで記録された圧縮セクタ中
    の圧縮セグメントの内容を更新する場合に、更新対象の
    圧縮セグメントが割り付けられた圧縮セクタから、更新
    対象以外の圧縮セグメントを読み出す圧縮セグメント読
    出ステップとを備え、 前記割付ステップでは、圧縮セグメント読出ステップで
    読み出された圧縮セグメント及び更新対象の圧縮セグメ
    ントを圧縮セクタに割り付けることを特徴とする圧縮デ
    ータ管理方法。
  34. 【請求項34】 請求項33において、 更新対象の圧縮セグメントが割り付けられた圧縮セクタ
    を記録していた前記ディスク記録装置の領域を未使用領
    域に変更する領域変更ステップを設けたことを特徴とす
    る圧縮データ管理方法。
  35. 【請求項35】 書込要求された複数のデータをまとめ
    た後で圧縮することにより得られるデータを表す圧縮セ
    グメントを、所定長を有するバッファを表す圧縮セクタ
    に割り付ける割付ステップと、 前記割付ステップで割り付けされた圧縮セクタを、ディ
    スク記憶装置に記録する圧縮セクタ記録ステップと、 前記圧縮セクタ記録ステップで記録された圧縮セクタ中
    の圧縮セグメントの内容を更新する場合に、更新前の圧
    縮セクタが割り付けられていた領域を無効データ領域と
    して登録する無効データ領域登録ステップと、 前記圧縮セクタ記録ステップで記録された圧縮セクタに
    おける無効データ領域の大きさと予め設定された基準値
    とを比較する比較ステップと、 無効データ領域を含む圧縮セクタから無効データ領域以
    外の領域に割り付けられた圧縮セグメントを読み出すと
    ともに、圧縮セグメントが読み出された圧縮セクタを、
    その全領域が割り付け可能なように変更する処理を表す
    圧縮セクタ解放処理を実行する解放処理実行ステップと
    前記比較ステップでの比較結果に基づいて、前記圧縮セ
    クタ解放処理実行ステップを行うか否かを決定する解放
    処理実行決定ステップとを備えたことを特徴とする圧縮
    データ管理方法。
  36. 【請求項36】 請求項35において、 無効データ領域を最も多く含む圧縮セクタを検出する圧
    縮セクタ検出ステップを設け、 前記圧縮セクタ解放処理実行ステップでは、前記圧縮セ
    クタ検出ステップで検出された圧縮セクタに対して、圧
    縮セクタ解放処理を実行することを特徴とする圧縮デー
    タ管理方法。
  37. 【請求項37】 請求項36において、 前記圧縮セクタ検出ステップでは、複数の数値と、その
    数値を無効データ領域の大きさとして有する圧縮セクタ
    とを対応づけて格納するテーブルを利用して、無効デー
    タ領域を最も多く含む圧縮セクタを検出することを特徴
    とする圧縮データ管理方法。
JP7255416A 1995-01-13 1995-10-02 圧縮データ管理装置及び圧縮データ管理方法 Expired - Fee Related JP2831602B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP7255416A JP2831602B2 (ja) 1995-01-13 1995-10-02 圧縮データ管理装置及び圧縮データ管理方法
US08/573,458 US6816942B2 (en) 1995-01-13 1995-12-15 Storage control apparatus and method for compressing data for disk storage
US10/294,551 US6925527B2 (en) 1995-01-13 2002-11-15 Storage control apparatus and method for compressing data for disk storage
US10/294,766 US6745282B2 (en) 1995-01-13 2002-11-15 Compressed data managing apparatus and method therefor to manage compressed data of a disk storage

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP449295 1995-01-13
JP7-4492 1995-01-13
JP7255416A JP2831602B2 (ja) 1995-01-13 1995-10-02 圧縮データ管理装置及び圧縮データ管理方法

Publications (2)

Publication Number Publication Date
JPH08249128A JPH08249128A (ja) 1996-09-27
JP2831602B2 true JP2831602B2 (ja) 1998-12-02

Family

ID=26338274

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7255416A Expired - Fee Related JP2831602B2 (ja) 1995-01-13 1995-10-02 圧縮データ管理装置及び圧縮データ管理方法

Country Status (2)

Country Link
US (3) US6816942B2 (ja)
JP (1) JP2831602B2 (ja)

Families Citing this family (108)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10319998A (ja) * 1997-05-20 1998-12-04 Olympus Optical Co Ltd 音声データ処理装置
US6624761B2 (en) 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6604158B1 (en) 1999-03-11 2003-08-05 Realtime Data, Llc System and methods for accelerated data storage and retrieval
US6601104B1 (en) 1999-03-11 2003-07-29 Realtime Data Llc System and methods for accelerated data storage and retrieval
US6631442B1 (en) * 1999-06-29 2003-10-07 Emc Corp Methods and apparatus for interfacing to a data storage system
US20030191876A1 (en) * 2000-02-03 2003-10-09 Fallon James J. Data storewidth accelerator
US20010047473A1 (en) 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
DE10037004B4 (de) * 2000-07-29 2004-01-15 Sms Demag Ag Walzgerüst für bandkantenorientiertes Verschieben der Zwischenwalzen in einem 6-Walzen-Gerüst
US8692695B2 (en) 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
US7417568B2 (en) 2000-10-03 2008-08-26 Realtime Data Llc System and method for data feed acceleration and encryption
US9143546B2 (en) 2000-10-03 2015-09-22 Realtime Data Llc System and method for data feed acceleration and encryption
US7386046B2 (en) 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
US6968093B1 (en) * 2001-09-20 2005-11-22 Eastman Kodak Company Pixel processing system for image scanning applications
CN1421854A (zh) * 2001-11-28 2003-06-04 劲永国际股份有限公司 用于硬盘及固态盘上对资料加密保护资料安全性的方法
KR100701810B1 (ko) * 2002-04-26 2007-04-02 가부시키가이샤 엔티티 도코모 신호 부호화 방법, 신호 복호 방법, 신호 부호화 장치, 신호 복호 장치, 및 컴퓨터로 판독가능한 기록매체
JP3857611B2 (ja) * 2002-05-20 2006-12-13 富士通株式会社 データ圧縮プログラム、データ圧縮方法、およびデータ圧縮装置
US7454529B2 (en) 2002-08-02 2008-11-18 Netapp, Inc. Protectable data storage system and a method of protecting and/or managing a data storage system
US7043610B2 (en) * 2002-08-19 2006-05-09 Aristos Logic Corporation System and method for maintaining cache coherency without external controller intervention
US7437387B2 (en) 2002-08-30 2008-10-14 Netapp, Inc. Method and system for providing a file system overlay
US7882081B2 (en) 2002-08-30 2011-02-01 Netapp, Inc. Optimized disk repository for the storage and retrieval of mostly sequential data
US8024172B2 (en) 2002-12-09 2011-09-20 Netapp, Inc. Method and system for emulating tape libraries
US7567993B2 (en) 2002-12-09 2009-07-28 Netapp, Inc. Method and system for creating and using removable disk based copies of backup data
US7139783B2 (en) * 2003-02-10 2006-11-21 Netezza Corporation Materialized view system and method
JP4651913B2 (ja) 2003-02-17 2011-03-16 株式会社日立製作所 記憶装置システム
US6973369B2 (en) 2003-03-12 2005-12-06 Alacritus, Inc. System and method for virtual vaulting
US7437492B2 (en) * 2003-05-14 2008-10-14 Netapp, Inc Method and system for data compression and compression estimation in a virtual tape library environment
JP2004348464A (ja) * 2003-05-22 2004-12-09 Hitachi Ltd ストレージ装置、及び通信信号の整形回路
JP4060235B2 (ja) * 2003-05-22 2008-03-12 株式会社日立製作所 ディスクアレイ装置及びディスクアレイ装置の制御方法
US7128887B2 (en) 2003-05-29 2006-10-31 Specialty Minerals (Michigan) Inc. Platy precipitated calcium carbonate synthesis method
TWI220709B (en) * 2003-06-05 2004-09-01 Carry Computer Eng Co Ltd Storage device able to increase storage capacity
US7135157B2 (en) 2003-06-06 2006-11-14 Specialty Minerals (Michigan) Inc. Process for the production of platy precipitated calcium carbonates
JP2005056200A (ja) * 2003-08-05 2005-03-03 Hitachi Ltd データ管理方法、ディスク記憶装置およびディスク記憶システム
US7174432B2 (en) * 2003-08-19 2007-02-06 Nvidia Corporation Asynchronous, independent and multiple process shared memory system in an adaptive computing architecture
US20050071151A1 (en) * 2003-09-30 2005-03-31 Ali-Reza Adl-Tabatabai Compression-decompression mechanism
US20050071566A1 (en) * 2003-09-30 2005-03-31 Ali-Reza Adl-Tabatabai Mechanism to increase data compression in a cache
JP4156499B2 (ja) 2003-11-28 2008-09-24 株式会社日立製作所 ディスクアレイ装置
JP4497918B2 (ja) * 2003-12-25 2010-07-07 株式会社日立製作所 ストレージシステム
US7512750B2 (en) * 2003-12-31 2009-03-31 Intel Corporation Processor and memory controller capable of use in computing system that employs compressed cache lines' worth of information
US7257693B2 (en) * 2004-01-15 2007-08-14 Intel Corporation Multi-processor computing system that employs compressed cache lines' worth of information and processor capable of use in said system
JP4634049B2 (ja) 2004-02-04 2011-02-16 株式会社日立製作所 ディスクアレイ装置における異常通知制御
US7559088B2 (en) 2004-02-04 2009-07-07 Netapp, Inc. Method and apparatus for deleting data upon expiration
US7325159B2 (en) 2004-02-04 2008-01-29 Network Appliance, Inc. Method and system for data recovery in a continuous data protection system
US7315965B2 (en) 2004-02-04 2008-01-01 Network Appliance, Inc. Method and system for storing data using a continuous data protection system
US7783606B2 (en) 2004-02-04 2010-08-24 Netapp, Inc. Method and system for remote data recovery
US7720817B2 (en) 2004-02-04 2010-05-18 Netapp, Inc. Method and system for browsing objects on a protected volume in a continuous data protection system
US7490103B2 (en) 2004-02-04 2009-02-10 Netapp, Inc. Method and system for backing up data
US7904679B2 (en) 2004-02-04 2011-03-08 Netapp, Inc. Method and apparatus for managing backup data
US7426617B2 (en) 2004-02-04 2008-09-16 Network Appliance, Inc. Method and system for synchronizing volumes in a continuous data protection system
US7406488B2 (en) 2004-02-04 2008-07-29 Netapp Method and system for maintaining data in a continuous data protection system
US7424482B2 (en) 2004-04-26 2008-09-09 Storwize Inc. Method and system for compression of data for block mode access storage
DE602005015435D1 (de) * 2004-04-26 2009-08-27 Storewiz Inc Verfahren und system zur komprimierung von dateien zur speicherung und operation an komprimierten dateien
US20060190643A1 (en) * 2004-04-26 2006-08-24 Storewiz, Inc. Method and system for compression of data for block mode access storage
US20050246362A1 (en) * 2004-05-03 2005-11-03 Borland Devin P System and method for dynamci log compression in a file system
US8028135B1 (en) 2004-09-01 2011-09-27 Netapp, Inc. Method and apparatus for maintaining compliant storage
US8066515B2 (en) * 2004-11-17 2011-11-29 Nvidia Corporation Multiple graphics adapter connection systems
US7702875B1 (en) * 2004-11-18 2010-04-20 Sun Microsystems, Inc. System and method for memory compression
US7558839B1 (en) 2004-12-14 2009-07-07 Netapp, Inc. Read-after-write verification for improved write-once-read-many data storage
US7774610B2 (en) 2004-12-14 2010-08-10 Netapp, Inc. Method and apparatus for verifiably migrating WORM data
US7526620B1 (en) 2004-12-14 2009-04-28 Netapp, Inc. Disk sanitization in an active file system
US7581118B2 (en) 2004-12-14 2009-08-25 Netapp, Inc. Disk sanitization using encryption
US8327050B2 (en) * 2005-04-21 2012-12-04 International Business Machines Corporation Systems and methods for compressing files for storage and operation on compressed files
US7418531B2 (en) * 2005-05-04 2008-08-26 Pillar Data Systems, Inc. Quality of service for data storage volumes
JP2007087106A (ja) * 2005-09-22 2007-04-05 Pentax Corp 記録装置
US7401198B2 (en) 2005-10-06 2008-07-15 Netapp Maximizing storage system throughput by measuring system performance metrics
CN101346883A (zh) * 2005-10-26 2009-01-14 斯多维兹有限公司 用于块模式访问存储的数据压缩的方法和系统
US7752401B2 (en) 2006-01-25 2010-07-06 Netapp, Inc. Method and apparatus to automatically commit files to WORM status
US7650533B1 (en) 2006-04-20 2010-01-19 Netapp, Inc. Method and system for performing a restoration in a continuous data protection system
US20080071981A1 (en) * 2006-09-20 2008-03-20 Mediatek Inc. Method of providing defect list for optical disc
JP2008269363A (ja) * 2007-04-20 2008-11-06 Hitachi Ltd 記憶制御装置および記憶制御方法
US9362948B2 (en) * 2008-02-14 2016-06-07 Broadcom Corporation System, method, and computer program product for saving and restoring a compression/decompression state
US7895242B2 (en) * 2007-10-31 2011-02-22 Microsoft Corporation Compressed storage management
US8731190B2 (en) * 2009-06-09 2014-05-20 Emc Corporation Segment deduplication system with encryption and compression of segments
US8401181B2 (en) * 2009-06-09 2013-03-19 Emc Corporation Segment deduplication system with encryption of segments
US8762348B2 (en) * 2009-06-09 2014-06-24 Emc Corporation Segment deduplication system with compression of segments
US8370544B2 (en) * 2009-07-23 2013-02-05 Stec, Inc. Data storage system with compression/decompression
US8725931B1 (en) * 2010-03-26 2014-05-13 Western Digital Technologies, Inc. System and method for managing the execution of memory commands in a solid-state memory
US8782327B1 (en) 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
US9026716B2 (en) 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
JP2012018481A (ja) * 2010-07-06 2012-01-26 Fujitsu Ltd ディスクアレイ装置およびディスクアレイ制御方法
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
US8719529B2 (en) * 2011-01-14 2014-05-06 International Business Machines Corporation Storage in tiered environment for colder data segments
US8949513B2 (en) * 2011-05-10 2015-02-03 Marvell World Trade Ltd. Data compression and compacting for memory devices
WO2012168962A1 (en) 2011-06-07 2012-12-13 Hitachi, Ltd. Storage system comprising flash memory, and storage control method
CN102819406A (zh) * 2012-07-04 2012-12-12 浙江宇视科技有限公司 一种前端数据存储方法及装置
US9703794B2 (en) * 2013-01-02 2017-07-11 International Business Machines Corporation Reducing fragmentation in compressed journal storage
US8943266B2 (en) 2013-03-13 2015-01-27 Hitachi, Ltd. Storage system and method of control for storage system
CN104937561B (zh) 2013-05-17 2018-01-02 株式会社日立制作所 存储装置
US10102148B2 (en) 2013-06-13 2018-10-16 Microsoft Technology Licensing, Llc Page-based compressed storage management
KR101468336B1 (ko) * 2013-11-25 2014-12-04 성균관대학교산학협력단 데이터 압축률 예측 기법에 기반한 데이터 분산 저장 방법, 이를 이용한 저장 장치 및 시스템
US9684625B2 (en) 2014-03-21 2017-06-20 Microsoft Technology Licensing, Llc Asynchronously prefetching sharable memory pages
US9740621B2 (en) 2014-05-21 2017-08-22 Qualcomm Incorporated Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods
US10838862B2 (en) * 2014-05-21 2020-11-17 Qualcomm Incorporated Memory controllers employing memory capacity compression, and related processor-based systems and methods
US10503661B2 (en) 2014-05-21 2019-12-10 Qualcomm Incorporated Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system
US9632924B2 (en) 2015-03-02 2017-04-25 Microsoft Technology Licensing, Llc Using memory compression to reduce memory commit charge
US10037270B2 (en) 2015-04-14 2018-07-31 Microsoft Technology Licensing, Llc Reducing memory commit charge when compressing memory
US10452614B2 (en) 2015-06-12 2019-10-22 International Business Machines Corporation Storage data reduction analysis and forecast
US10013170B1 (en) * 2016-03-31 2018-07-03 EMC IP Holding Company LLC Intelligent data compression
US10496278B1 (en) * 2016-06-24 2019-12-03 EMC IP Holding Company LLC Inline compression support using discrete sized containers for backing store
US9946463B2 (en) 2016-07-12 2018-04-17 Western Digital Technologies, Inc. Compression of indirection tables
US10503443B2 (en) * 2016-09-13 2019-12-10 Netapp, Inc. Systems and methods for allocating data compression activities in a storage system
JP6926866B2 (ja) * 2017-01-20 2021-08-25 富士通株式会社 ストレージ制御装置、およびストレージ制御プログラム
JP2018160059A (ja) * 2017-03-22 2018-10-11 東芝メモリ株式会社 メモリコントローラ
US10365828B1 (en) * 2018-04-30 2019-07-30 EMC IP Holding Company LLC Techniques for efficiently organizing storage of compressed extents
US10915444B2 (en) * 2018-12-27 2021-02-09 Micron Technology, Inc. Garbage collection candidate selection using block overwrite rate
JP2020154525A (ja) * 2019-03-19 2020-09-24 キオクシア株式会社 メモリシステムおよび情報処理システム
US11533063B2 (en) * 2019-08-01 2022-12-20 EMC IP Holding Company LLC Techniques for determining compression tiers and using collected compression hints
JP2023018365A (ja) * 2021-07-27 2023-02-08 富士通株式会社 情報処理プログラム、情報処理方法及び情報処理装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237460A (en) * 1990-12-14 1993-08-17 Ceram, Inc. Storage of compressed data on random access storage devices
US5627995A (en) * 1990-12-14 1997-05-06 Alfred P. Gnadinger Data compression and decompression using memory spaces of more than one size
JPH0628108A (ja) * 1992-07-09 1994-02-04 Hitachi Ltd データ記憶システム
JPH06332622A (ja) 1993-03-22 1994-12-02 Hitachi Ltd 情報処理装置
US5574952A (en) * 1994-05-11 1996-11-12 International Business Machines Corporation Data storage system and method for operating a disk controller including allocating disk space for compressed data
US5915129A (en) * 1994-06-27 1999-06-22 Microsoft Corporation Method and system for storing uncompressed data in a memory cache that is destined for a compressed file system
JP3426385B2 (ja) * 1995-03-09 2003-07-14 富士通株式会社 ディスク制御装置
US5666560A (en) * 1995-08-03 1997-09-09 International Business Machines Corporation Storage method and hierarchical padding structure for direct access storage device (DASD) data compression

Also Published As

Publication number Publication date
JPH08249128A (ja) 1996-09-27
US6816942B2 (en) 2004-11-09
US20020040413A1 (en) 2002-04-04
US20030084238A1 (en) 2003-05-01
US6925527B2 (en) 2005-08-02
US20030079081A1 (en) 2003-04-24
US6745282B2 (en) 2004-06-01

Similar Documents

Publication Publication Date Title
JP2831602B2 (ja) 圧縮データ管理装置及び圧縮データ管理方法
US6857045B2 (en) Method and system for updating data in a compressed read cache
JP3371044B2 (ja) ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法
US6941420B2 (en) Log-structure array
US6115787A (en) Disc storage system having cache memory which stores compressed data
JP3399520B2 (ja) 圧縮メイン・メモリの仮想非圧縮キャッシュ
US10067881B2 (en) Compression and caching for logical-to-physical storage address mapping tables
JP3426385B2 (ja) ディスク制御装置
KR100216146B1 (ko) 직접 액세스 저장장치의 데이터 압축 방법 및 압축 데이터 구조
KR100242868B1 (ko) 압축된 데이터 캐쉬 저장 시스템
KR100211790B1 (ko) 직접 액세스 저장 장치에서 데이터 압축을 위한 디렉토리 재 구축 방법 및 장치
US6968424B1 (en) Method and system for transparent compressed memory paging in a computer system
US5666560A (en) Storage method and hierarchical padding structure for direct access storage device (DASD) data compression
JP3597945B2 (ja) 直接アクセス記憶装置のデータ圧縮用組込みディレクトリ情報の保持方法及びディレクトリ・レコードを含むシステム
JP6608468B2 (ja) ストレージ装置及びその制御方法
WO2017141315A1 (ja) ストレージ装置
KR101017067B1 (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
JP2018181202A (ja) ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム
JP3419538B2 (ja) 記憶制御方法及びそれを用いた圧縮機能付きディスクシステム
JP2020112972A (ja) ストレージ制御装置およびストレージ制御プログラム
WO2018061161A1 (ja) ストレージ装置およびその制御方法
JP6760916B2 (ja) ストレージコントローラ、ストレージアレイ装置、データ格納方法、およびプログラム
JPH0863397A (ja) ディスクキャッシュ制御方法
JP3201920B2 (ja) データ記憶システム及びその操作方法
JPH10232838A (ja) ディスク記憶システム

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19980825

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

Free format text: PAYMENT UNTIL: 20080925

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20080925

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20090925

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20090925

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20100925

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20100925

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20110925

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20120925

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20120925

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20130925

Year of fee payment: 15

LAPS Cancellation because of no payment of annual fees