JPH07129470A - ディスク制御方法 - Google Patents

ディスク制御方法

Info

Publication number
JPH07129470A
JPH07129470A JP5279249A JP27924993A JPH07129470A JP H07129470 A JPH07129470 A JP H07129470A JP 5279249 A JP5279249 A JP 5279249A JP 27924993 A JP27924993 A JP 27924993A JP H07129470 A JPH07129470 A JP H07129470A
Authority
JP
Japan
Prior art keywords
data
disk
compressed
dirty
compressed data
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.)
Pending
Application number
JP5279249A
Other languages
English (en)
Inventor
Tetsuhiko Fujii
哲彦 藤井
Akira Yamamoto
山本  彰
Tetsuzo Kobashi
徹三 小橋
Kiyousuke Achiwa
恭介 阿知和
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP5279249A priority Critical patent/JPH07129470A/ja
Publication of JPH07129470A publication Critical patent/JPH07129470A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【構成】キャッシュメモリ上のダーティデータを圧縮し
た後、データのホストコンピュータに見える論理アドレ
スと、ディスク上の格納位置である物理アドレスとの、
順序性ができるだけ保たれるようなアルゴリズムによ
り、圧縮したデータの物理アドレスを決定する(ステッ
プ184)。またその後、圧縮したダーティデータを、
その物理アドレスに基づき、まとめ書き用のキューにつ
なぎかえる(ステップ185)。 【効果】実装するディスクドライブの物理的な記憶容量
以上の記憶容量を、シーケンシャルリード性能と先読み
効果の低下を防止し、まとめ書きを可能としつつ、提供
することが可能となる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデータ圧縮機能を有する
キャッシュ付きディスク制御装置のディスク制御方法に
関する。
【0002】
【従来の技術】第一の文献シージーエスグループ:ザ
エバルエーター シリーズ、アン アナリシス オブ
ザ ストレージテック アイスバーグ 9200 スト
レージシステム(CGS GROUP:The Evaluator Series,An
Analysis Of The StorageTekIceberg 9200 Storage Sy
stem,ES−0003−0,March 1992,2−9.)は、データ圧
縮機能とライトバックキャッシュを有する、ディスクア
レイサブシステムについて述べている。このディスクア
レイサブシステムでは、ホストインタフェースとキャッ
シュメモリとの間にデータ圧縮部を持ち、ホストコンピ
ュータから送られてくるライトデータを、圧縮し、圧縮
したデータをキャッシュメモリに格納する。ライトデー
タのディスクへの格納は、ライトアクセスの順序に、デ
ータを追記形式で格納する。
【0003】特開平3−172946 号公報では、ライトバッ
クキャッシュ制御を行うディスク制御装置で、キャッシ
ュメモリ上のダーティデータを、ディスクにライトする
ときに、ディスク上で互いに近い位置にあるダーティデ
ータを、一連のディスクライト処理でまとめてディスク
ライトすることにより、ライトバック動作に要するシー
ク,サーチといったディスクのメカニカルな動作時間を
節約して、性能向上を図る方法として、ディスクライト
しようとする一つのダーティデータ(ダーティデータa
とする)と同一のシリンダ内にあるダーティデータを、
各シリンダのダーティデータの有無等を管理するシリン
ダ管理情報と、キャッシュがアロケートされているシリ
ンダに対して、シリンダ内の各トラックのダーティデー
タ有無等を管理するトラック管理情報とにより、把握す
ることにより、ダーティデータaとまとめ書きを行うダ
ーティデータを求め、短時間で、多くのダーティデータ
をディスクライトする方法を開示している。
【0004】第二の文献アンドリュー・ダブリュー・ア
ペル アンド カイ・リー:バーチャル メモリ プリ
ミティブズ フォー ユーザー プログラムズ,アーキ
テクチュラル サポート フォー プログラミング ラ
ンゲージ アンド オペレーティング システムズ,ピ
ーピー96−107,サンタクララ,カリフォルニア,
エープリール8−11,1991(Andrew W.Appel an
d Kai Li:Virtual Memory Primitives for User Progr
ams,Architectural Support forProgramming Language
s and Operating Systems,pp.96−107,Santa Clar
a,California,April 8−11,1991)は、コンピュータ
の仮想記憶システムにおいて、キャッシュメモリとデー
タ圧縮を組合せ、キャッシュメモリに伸長データと圧縮
データを混在させるという技術思想を示している。それ
は次のようなものである。仮想記憶システムで、しばら
くの間アクセスされていないページ(less−recently−
used pages)は、ディスクにページアウトするかわり
に、データを圧縮して主記憶に格納しておく。圧縮して
主記憶に格納されたページが再び必要になったときに
は、それを伸長すれば良く、ディスクから取り出すのに
比べて短時間で済む。更に、より長期間にわたって使用
されなかった、圧縮されたページは、ディスクに送出す
る。
【0005】
【発明が解決しようとする課題】ディスク制御装置にお
いて、第一の文献に示されているように、ライトバック
キャッシュとデータ圧縮機能を、組合せて採用すること
により、ディスクキャッシュによる応答時間の高速化
と、データ圧縮機能によるディスクの実効記憶容量の向
上を図ることができる。ここで、ディスクの実効記憶容
量を向上させるために、ディスクには圧縮状態のデータ
を記憶する。この場合、圧縮アルゴリズムの一般的な性
質として、データの内容によって圧縮されたデータの長
さが変動する。あるデータ(データ1とする)がディス
ク上で圧縮されて格納されており、その格納位置の直後
に別のデータ(データ2とする)が圧縮されて格納され
ていたとする。ここでデータ1は圧縮されて、長さがL
0バイトであったとする。ここでデータ1が書き換えら
れてデータ1′になったとする。データ1′をディスク
に記憶するために圧縮したデータの長さが、L1バイト
(L1>L0)になったとする。この場合、データ1の
圧縮データが格納されていた領域は、ちょうどL0バイ
トであったので、データ1′を圧縮したデータは、もと
の位置に収まりきらない。そこで、データ1′をディス
ク上の別な位置にあるL1バイト以上の空き領域に格納
するか、データ2を別の位置に移動しなければならな
い。すなわち、データ圧縮機能により、実効記憶容量を
向上させようとするディスク装置では、データが更新さ
れると、ディスク上の対応する圧縮データの格納位置
を、動的に変更しなければならないという事態が生じ
る。
【0006】第一の文献に示される方法では、ホストイ
ンタフェースとキャッシュメモリとの間にデータ圧縮部
を持ち、ホストコンピュータから送られてくるライトデ
ータを、圧縮し、圧縮したデータをキャッシュメモリに
格納し、ライトデータのディスクへの格納は、ライトア
クセスの順序に、データをディスク上の空き領域へ追記
形式で格納することにより、前記の事態に対処してい
る。
【0007】しかし、第一の文献の方法では、圧縮デー
タを、ライト順にディスクに追記するため、データの論
理アドレスと対応する圧縮データのディスク上の格納位
置との順序性が損なわれ、シーケンシャルリード性能や
先読み効果が低下するという課題があった。
【0008】また、第二の文献では、仮想記憶に通常の
伸長状態のページと、圧縮されたページを混在させる方
法を述べているが、圧縮されたページを、どのような方
法で、ディスクに格納するかについては、詳細な記述が
されていない。
【0009】(1)本発明の第一の課題は、ライトバッ
クキャッシュとデータ圧縮機能を採用したディスク制御
装置において、ホストコンピュータからみえる論理的な
データのアドレスと、対応する圧縮データのディスク上
の格納アドレスとの間の順序性をできるだけ保つことに
より、シーケンシャルリード性能や先読み効果の低下を
防止することである。
【0010】更に、ライトバックキャッシュとデータ圧
縮機能を採用したディスク制御装置において、ホストコ
ンピュータからみえる論理的なデータのアドレスと、対
応する圧縮データのディスク上の格納アドレスとの間の
順序性をできるだけ保つことにより、シーケンシャルリ
ード性能や先読み効果の低下の防止を図った場合におい
て、キャッシュメモリ上のダーティデータのディスクへ
のまとめ書き機能を実現しようとした場合に、特開平3
−172946 号公報の方法では、キャッシュメモリ上のダ
ーティデータのディスク上の格納位置が動的に変化する
ことが考慮されておらず、そのままでは、ダーティデー
タのまとめ書きを行うことができないという課題があっ
た。また、第二の文献には、圧縮データのディスクへの
格納方法について、詳細な記述がされていない。
【0011】(2)本発明の第二の課題は、ライトバッ
クキャッシュとデータ圧縮機能を採用したディスク制御
装置において、第一の課題を解決すると共に、更に、キ
ャッシュ上のディスク未反映のダーティデータのまとめ
書きを可能とすることである。
【0012】
【課題を解決するための手段】第一の課題を解決するた
めに、本発明はキャッシュメモリ中のダーティな伸長状
態の、最新アクセス時刻が古くなった、即ち、LRUデ
ータを選択し、圧縮するステップ(ステップ1)と、論
理アドレスと物理アドレスの対応と、ディスク上の空き
領域を管理する管理情報を用いて、前記ステップ1で圧
縮したデータのディスク上の格納位置即ち物理アドレス
を、論理アドレスと物理アドレスの順序性ができるだけ
損なわれないように、決定するステップ(ステップ2)
とを設ける。
【0013】第二の課題を解決するために、本発明は第
一の課題を解決するためのステップ1,2に加えて、デ
ィスク上の物理アドレス毎に、圧縮されたダーティデー
タの有無を表す情報と、圧縮されたダーティデータが存
在する場合、データの管理情報へのポインタとを管理す
るテーブルを用いて、ステップ1,2に続いて、圧縮し
たダーティデータの物理アドレスに従って、前記テーブ
ルをセットするステップ(ステップ3)とを設ける。
【0014】また、第二の課題を解決するために、本発
明は第一の課題を解決するためのステップ1,2に加え
て、ディスク上の論理アドレス毎に、圧縮されたダーテ
ィデータの有無を表す情報と、圧縮されたダーティデー
タが存在する場合、そのディスクへの格納位置、即ち、
物理アドレスとを管理するテーブルを用いて、まず論理
アドレス上近傍の圧縮されたダーティデータを選び出す
ステップ(ステップ4)と、更に前記ステップ4で選び出
した圧縮されたダーティデータのうち、前記テーブルに
より、物理アドレス上近傍のものだけを選択するステッ
プ(ステップ5)とを設ける。
【0015】
【作用】ディスク制御装置は、ステップ1によりキャッ
シュメモリ中のダーティな伸長状態の、最新アクセス時
刻が古くなった、即ち、LRUデータを選択して圧縮
し、次にステップ2により論理アドレスと物理アドレス
の対応と、ディスク上の空き領域を管理する管理情報を
用いて、ステップ1で圧縮したデータのディスク上の格
納位置即ち物理アドレスを、論理アドレスと物理アドレ
スの順序性ができるだけ損なわれないように決定する。
ステップ2で、圧縮したデータのディスク上の格納位置
を、論理アドレスと物理アドレスの順序性ができるだけ
損なわれないように決定するので、シーケンシャルリー
ド性能や先読み効果の低下を防止することができる。
【0016】ディスク制御装置は、ステップ1,2に引
続き、ステップ3によりディスク上の物理アドレス毎
に、圧縮されたダーティデータの有無を表す情報と、圧
縮されたダーティデータが存在する場合、当該データの
管理情報へのポインタとを管理するテーブルを用いて、
圧縮したダーティデータの物理アドレスに従って、テー
ブルをセットする。
【0017】ディスク制御装置は、ステップ3でセット
されるテーブルを用いて、圧縮されたダーティデータ
の、ディスクへのまとめ書きを行う。このまとめ書きの
ステップは、シリンダのスケジューリングを、例えば、
いわゆるSSTF(ShortestSeek Tim
e Fast)アルゴリズムや、SCANアルゴリズム
を使用し、同一シリンダ内のダーティデータのスケジュ
ーリングを、例えば特開平3−172946 号公報に記載の方
法によって実現することができる。これにより、第一の
課題を解決すると共に、更にキャッシュ上のダーティデ
ータのディスクへのまとめ書きを可能とすることができ
る。
【0018】ディスク制御装置は、ステップ1,2の
後、ステップ4によりディスク上の論理アドレス毎に、
圧縮されたダーティデータの有無を表す情報と、圧縮さ
れたダーティデータが存在する場合、そのディスクへの
格納位置即ち物理アドレスとを管理するテーブルを用い
て、まず論理アドレス上近傍の圧縮されたダーティデー
タを選び出し、更にステップ5により前記ステップ4で
選び出した圧縮されたダーティデータのうち、テーブル
により、物理アドレス上近傍のものだけを選択する。そ
れからディスク制御装置は、選択した、物理アドレス上
近傍の、キャッシュ上のダーティな圧縮データを、ディ
スクへまとめ書きする。これにより、第一の課題を解決
すると共に、更にキャッシュ上のダーティデータのディ
スクへのまとめ書きを可能とすることができる。
【0019】
【実施例】本発明を実施した、圧縮機能とライトバック
キャッシュを有する、ディスク制御装置について説明す
る。本実施例では、古くなったダーティデータを、ディ
スクライトに備えて圧縮し、ディスク上の格納位置(物
理アドレス)を決めた後、その物理アドレスに従って、
物理アドレスから圧縮したダーティデータを、検索可能
なテーブル下のキューにつなぎ、まとめ書き対象を、そ
のテーブルを検索することによって求める。
【0020】最初に、基本的な方式を述べる。
【0021】本実施例では、ディスクコントローラとデ
ィスク間のデータ転送は圧縮データで行い、ディスクコ
ントローラとホストコンピュータの間のデータ転送は伸
長データで行うことを前提とする。即ち、ホストコンピ
ュータは、伸長データを扱う。また、ディスクには圧縮
データを格納する。キャッシュメモリには、伸長データ
と圧縮データを混在させる。ホストコンピュータから最
近アクセスされた、再アクセス性の高いデータは、リー
ドヒット時の高速応答のために、伸長状態でキャッシュ
に置き、しばらくの間アクセスされていない(less rec
ently used)ダーティデータは、ディスクへのライトに
備えて、キャッシュ上で圧縮し、圧縮状態でキャッシュ
に置く。しばらくの間アクセスされていないクリーンデ
ータについては、キャッシュ上に伸長状態で置く方法
と、圧縮状態で置く方法とがあるが、ここではキャッシ
ュ上に伸長状態で置くものとする。
【0022】次に、使用する用語の定義を行う。
【0023】・論理ディスク:ホストコンピュータから
見えるディスクを論理ディスクと呼ぶ。圧縮機能がある
ので、実際のディスクの容量より大きな容量を持つ。
【0024】・物理ディスク:実際にデータを格納する
ディスクを物理ディスクと呼ぶ。
【0025】・論理ディスクセグメント:論理ディスク
の管理単位。
【0026】・コンプレスド論理ディスクセグメント:
圧縮された論理ディスクセグメント。 ・伸長データ:圧縮する前の、通常のデータのこと。
【0027】・圧縮データ:圧縮されたデータのこと。
【0028】・ダーティ/クリーン:ディスクに未反映
のライトデータがキャッシュ上にある状態をダーティと
呼ぶ。クリーンとは、データがすべてディスクに反映済
みのこと。
【0029】・キャッシュセグメント:キャッシュメモ
リの管理単位。
【0030】・物理ディスクシリンダグループ:まとめ
書きのための物理ディスクの管理単位であり、ここで
は、物理ディスク上の1〜n個の連続したシリンダを物
理ディスクシリンダグループとする。
【0031】・物理ディスクセグメント:物理ディスク
の管理単位。p(≧1)セクタとする。本実施例では、1
セクタを物理ディスクセグメントとする。
【0032】・完全/不完全:セグメント内がすべて有
効データで満たされている場合を完全と呼び、そうでな
い場合を不完全と呼ぶ。不完全なデータはこのままでは
圧縮できない。
【0033】図1は、本発明を適用するディスク制御装
置の位置付けを示す。図1中、1がホストコンピュー
タ、3がディスク制御装置、5がディスクドライブ、2
はホストコンピュータとディスク制御装置を結ぶバス、
4はディスク制御装置とディスクドライブを結ぶバスで
ある。
【0034】図2は、本実施例におけるディスク制御装
置のハードウェア構成を示す。図2中、301はディス
ク制御装置内部のバス、302はホストインタフェー
ス、304はMPU(メインプロセッシングユニッ
ト)、306はMPUの主メモリ、308はDMAC
(ダイレクトメモリアクセスコントローラ)、313は
データの圧縮伸長を行う圧縮復元部、315はHDC
(ハードディスクコントローラ)、32はDMACが制御
するメモリ、33はメモリ内のキャッシュ/バッファ部
分、303,305,307,309,310,31
4,316は、それぞれデータやコマンド等を送受する
信号線である。ディスク制御プログラムは、主メモリ3
06に置かれ、MPU304が実行する。キャッシュメ
モリの管理情報等の制御情報は、主メモリ306および
/またはメモリ32に置かれる。DMAC308は、メ
モリ32へのアクセス制御を行う。HDC315はディ
スクドライブ5の制御を行う。圧縮復元部313は、デ
ータの圧縮及び伸長を行う。
【0035】図5は、論理ディスク管理テーブルであ
る。ここで論理ディスクとは、ホストコンピュータに見
えるディスクを指す。論理ディスクの記憶容量は、実際
のディスクの記憶容量より大きくなる。図5中、79は
一つの論理ディスクセグメントに対応するテーブルエン
トリである。Ndsは、論理ディスクセグメントの総個
数である。71はヒットミス判定情報、72はキャッシ
ュセグメント番号、73は当該論理ディスクセグメント
が使用中か未使用かを示すフラグ、74は当該論理ディ
スクセグメントのデータが、物理ディスク上圧縮されて
いるか否かを示すフラグ、75と76はそれぞれ、当該
論理ディスクセグメントに対応する圧縮データの、物理
ディスク上の先頭アドレスとレングス、77と78はそ
れぞれ、当該論理ディスクセグメントに対応する圧縮デ
ータの、物理ディスク上の、最も近い前方、及び後方の
圧縮された論理ディスクセグメントへのポインタであ
る。
【0036】図6は、キャッシュ管理テーブルである。
図6中、80は一つのキャッシュセグメントに対応する
テーブルエントリである。Ncsは、キャッシュセグメ
ントの総数である。81はキャッシュセグメントが使用
中か否かを示すフラグ、82はキャッシュセグメント中
のデータが圧縮データか伸長データかを示すフラグ、8
3はキャッシュセグメントがダーティか否かを示すフラ
グ、84はキャッシュセグメント中の各ブロックに有効
データが存在しているか否かを示すビットマップ情報、
85はキャッシュセグメント中の各ブロックにダーティ
データが存在しているか否かを示すビットマップ情報、
86はキャッシュセグメント中のデータが圧縮データで
あった場合、そのデータ長を示すデータ、87はキャッ
シュセグメントへの最新のアクセスのアクセス時刻値、
88と89は、それぞれキャッシュセグメントが存在す
るキュー中での、直前及び直後のキャッシュセグメント
をポイントする前方ポインタと後方ポインタ、8Aは、
キャッシュセグメントに割当てられている論理ディスク
セグメントの番号である。
【0037】図11は、メモリ32の構成である。図1
1中、34は制御テーブル、330はキャッシュメモリ
部、331はディスクリードデータ格納バッファ、33
2は伸長用ワークバッファ、333は確認用ワークバッ
ファである。
【0038】図7は、キャッシュのデータ格納部を示
す。図中91は、一つのキャッシュセグメントである。
【0039】図8は、キャッシュキュー管理テーブルで
ある。図8中、93は空き状態のキャッシュセグメント
のリストの先頭ポインタ、94と95はそれぞれ、伸長
状態かつクリーン状態の、キャッシュセグメントのLR
UキューのMRUポインタとLRUポインタ、96と9
7はそれぞれ、伸長状態、かつ、ダーティ状態の、キャ
ッシュセグメントのLRUキューのMRUポインタとL
RUポインタ、98は、圧縮ダーティデータのまとめ書
き用のテーブルであり、物理ディスクを1〜nシリンダ
の物理ディスクシリンダグループに分割し、それぞれの
領域毎の、その領域に格納されるべき物理アドレスを持
つ圧縮ダーティキャッシュセグメントの、物理アドレス
順のキューの先頭ポインタである。
【0040】図9は物理ディスク内の空き領域を管理す
るテーブルである。図9のテーブルを用いた場合、空き
領域は、領域長毎に管理する。図9中、101は領域長
が(i−1)ディスクセグメント以上かつiディスクセ
グメント未満の、連続空き領域のキューの先頭ポインタ
である。
【0041】図10は、空き領域管理用のエントリであ
り、103と104はそれぞれ、空き領域の先頭アドレ
スと領域長である。
【0042】次に、図12ないし図23,図4のフロー
チャートを用いて、ディスク制御装置の基本的な動作を
説明する。
【0043】図12は、ディスクの初期化処理のフロー
である。ディスクの初期化処理は、ホストコンピュータ
1からの初期化コマンドによって起動される。ディスク
制御装置3のMPU304は、ホストコンピュータ1か
らの初期化コマンドを受け取ると、初期化処理を開始す
る。初期化処理の一例を次に示す。まず、ステップ12
1でキャッシュメモリ330を0クリアし、次にステッ
プ122で物理ディスク(=ディスクドライブ5)を初
期化し、次にステップ123で論理ディスク管理テーブ
ル7を初期化し、次にステップ124でキャッシュ管理
テーブル8を初期化し、次にステップ125でキャッシ
ュキュー管理テーブル92を初期化し、次にステップ1
26で空き領域管理テーブル100を初期化し、次にス
テップ127でバッファ331,332,333を初期
化し、次にステップ128で全ての論理ディスクセグメ
ントに対して初期設定をする。
【0044】ステップ123の処理では、各論理ディス
クセグメントのエントリ79に対して、chm71をミ
スに、csn72をnull値に、ldu73を未使用に、
ldst74,hd_addr75,dlen76,d
_fwd_ptr77,d_bwd_ptr78の値を
すべてnull値にする。
【0045】ステップ124の処理では、各キャッシュ
セグメントのエントリ80に対して、csuを未使用
に、csstをnull値に、csdをノットダーティに、
exist_bitsをオールオフに、dirty_bits をオールオ
フに、clenをnull値に、access_timeに−∞を、c
_fwd_ptrとc_bwd_ptrをそれぞれ、キ
ャッシュセグメントiに対して、キャッシュセグメント
(i−1)とキャッシュセグメント(i+1)のキャッ
シュセグメント番号をセットする。なお、キャッシュセ
グメント0のc_bwd_ptrと、キャッシュセグメ
ントNcsのc_fwd_ptrはそれぞれnull値をセ
ットする。
【0046】ステップ125の処理では、図8のキャッ
シュキュー管理テーブルを初期化するが、初期状態で
は、キャッシュセグメントはすべて空き状態である。し
たがって、伸長クリーンキャッシュセグメントのLRU
キューのMRUポインタ94及びLRUポインタ95,
伸長ダーティキャッシュセグメントのLRUキューのM
RUポインタ96及びLRUポインタ97はnull値とす
る。また、物理ディスクシリンダグループ毎の、圧縮ダ
ーティキャッシュセグメントキューの先頭ポインタ98
もnull値とする。空きキャッシュセグメントリストの先
頭ポインタ93は、キャッシュセグメント0のセグメン
ト番号を代入する。
【0047】ステップ126の処理では、空き領域の管
理テーブルを初期化する。ここでは、すべての物理ディ
スク上の領域が空き状態であるものとしてテーブル初期
化を行う。
【0048】ステップ128の処理では、全論理ディス
クセグメントの初期設定を行う。例えばオールゼロや、
オールブランクのような初期化データで、論理ディスク
のセクタを初期化する。この方法は、以下に述べる、ホ
ストコンピュータ1からのライトコマンドの処理と同様
に行うことができる。また、実際に初期化データを、物
理ディスクにライトせずに、ディスク制御装置3で、初
期化データのエミュレーションを行うことも可能であ
る。この場合、論理ディスクの各セクタへの、初期化以
後の、ライトの有無をビット等で管理し、リードに対し
て、ライト有りであれば、通常のリードとして処理し、
ライト無しであれば、ディスク制御装置3が、初期化デ
ータを、ホストコンピュータ1へ返せば良い。
【0049】次に、ホストコンピュータ1からディスク
5へのリード/ライトコマンドの処理について述べる。
図13は、リード/ライトコマンド処理の全体フローで
ある。まず、コマンドがリードかライトかを判定する
(ステップ131)。ライトであれば、ステップ132
へ進み、ヒットミス判定を行う。ヒットミス判定は、ホ
ストコンピュータ1が指定するデータのアドレスから、
データの属する論理ディスクセグメント番号を求め、論
理ディスクセグメントの論理ディスク管理テーブル7の
対応エントリ79の、ヒットミス判定情報chm71を
チェックすることにより可能である。ヒットであれば、
ライトヒット処理(ステップ133)を行い、ミスであ
れば、ライトミス処理(ステップ135)を行い、処理
を終了する(ステップ134)。ステップ131で、コ
マンドがリードであれば、ステップ136へ進み、ヒッ
トミス判定を行う。ヒットであれば、リードヒット処理
(ステップ137)を行い、ミスであれば、リードミス
処理(ステップ138)を行い、処理を終了する(ステ
ップ134)。
【0050】以下、ライトヒット/ミス,リードヒット
/ミスの各処理を詳細に説明する。ライトミス処理のフ
ローを図14に示す。まず、ミスした論理ディスクのデ
ータに対して、キャッシュセグメントを新たに割当てて
(ステップ141)、ホストコンピュータからの伸長状
態のライトデータをそのまま、割当てたキャッシュセグ
メントへライトする(ステップ142)。それから、キ
ャッシュセグメントを、伸長ダーティキャッシュセグメ
ントキューのMRU位置につなぎ(ステップ143)、
IO完了をホストコンピュータへ報告し(ステップ14
4)、リターンする。キャッシュセグメントには、伸長
状態のライトデータが格納されているので、キャッシュ
セグメントは、伸長ダーティ状態となる。ステップ14
1のキャッシュセグメントの割当ては、キャッシュセグ
メントの空きキューを、先頭ポインタ93から順次検索
し、空きがなければ、キャッシュセグメントのクリーン
キューを、LRUポインタ95から順次検索することに
よって、リプレースするキャッシュセグメントを選択す
れば良い。
【0051】ライトヒット処理のフローを図15に示
す。まず、ヒットデータが伸長状態か、圧縮状態かを判
定する(ステップ151)。ヒットデータが圧縮状態で
あれば、圧縮状態のヒットデータを伸長して、キャッシ
ュセグメントを圧縮し(ステップ155)、ステップ1
52へ進む。これは、キャッシュメモリ33から、DM
AC308,バス301を介し、圧縮復元部313に、
圧縮データを送り、圧縮復元部313で、データを復元
し、バス301,DMAC308を介して、伸長データ
を、キャッシュメモリ33に返すことにより可能であ
る。ヒットデータが伸長状態であれば、そのままステッ
プ152へ進む。ステップ152で、ライトデータを、
伸長状態のままキャッシュメモリへ書き込み、ステップ
153へ進む。ステップ153では、キャッシュセグメ
ントキューの更新を行う。圧縮状態のデータにヒットし
ていた場合には、キャッシュセグメントを、圧縮ダーテ
ィキューからはずして、伸長ダーティキューのMRU位
置につなぐ。伸長状態のデータにヒットしていた場合に
は、キャッシュセグメントを、それが属していたキュ
ー、即ち、伸長クリーンキューもしくは、伸長ダーティ
キューからはずして、伸長ダーティキューのMRU位置
につなぐ。それからステップ154へ進み、ホストコン
ピュータ1にIO完了を報告し、リターンする。ここで
はライトヒットデータが圧縮状態であった場合に、伸長
してから、データをライトするようにしているが、ライ
ト範囲が圧縮伸長単位であった場合には、伸長せずに、
そのまま上書きすることも可能である。
【0052】リードヒット処理のフローを図16に示
す。まず、ヒットデータが伸長状態か圧縮状態かを判定
する(ステップ161)。ヒットデータが圧縮状態であ
った場合、圧縮状態のリードヒットデータを伸長し(ス
テップ165)、ステップ162へ進む。ヒットデータ
が伸長状態であれば、そのままステップ162へ進む。
ステップ162で、データをキャッシュメモリ33から
ホストコンピュータ1へ転送し、ステップ163へ進
む。ステップ163ではキューの更新を行う。ステップ
163では、キャッシュセグメントを、それが属してい
たキューからはずし、ヒットデータがクリーン状態であ
れば、伸長クリーンキューのMRU位置へ、ヒットデー
タがダーティ状態であれば、伸長ダーティキューのMR
U位置へつなぐ。それから、ステップ164へ進み、I
O完了をホストコンピュータ1に報告し、リターンす
る。
【0053】リードミス処理のフローを図17に示す。
まず、キャッシュセグメントを新たに割当てる(ステッ
プ171)。割当てはライトミスと同様に行えばよい。
この場合、リードミスであるから、リードデータはディ
スクに格納されている。しかし、ディスク上の格納位置
と、ホストコンピュータ1が指定してくるリードデータ
のアドレスは、一般的には一致しない。これは、ディス
ク制御装置3で、データ圧縮を行っており、ホストコン
ピュータ1の指定するアドレスと、実際のディスク上の
格納位置との対応付けが動的に変化するためである。そ
こで、ディスク上の格納位置(アドレス)を、ホストコ
ンピュータ1が指定するリードデータのアドレスを基
に、論理ディスク管理テーブル7から算出する。具体的
には、ホストコンピュータ1が指定するリードデータの
アドレスから、論理ディスクセグメント番号を求め、論
理ディスクセグメントのエントリのhd_addr75
をテーブル7から求めることによって、求めることがで
きる(ステップ172)。次に、ステップ172で求め
た、ディスク上の格納位置を基に、リードデータに対応
する圧縮データをディスク5から、キャッシュメモリ3
3へリードする(ステップ173)。次に、リードした
圧縮データを、キャッシュメモリ33上で伸長し、ステ
ップ171で確保したキャッシュセグメントへデータを
格納する(ステップ174)。次に、伸長したデータの
うち、リード対象部分を、キャッシュメモリ33からホ
ストコンピュータ1へ転送する(ステップ175)。次
に、キャッシュセグメントを、伸長クリーンキャッシュ
セグメントキューのMRU位置につなぐ(ステップ17
6)。最後に、ホストコンピュータ1にIO完了を報告
し(ステップ177)、リターンする。
【0054】以上、通常のリード/ライト処理について
述べた。
【0055】ライトバックキャッシュを有する、圧縮機
能付きのディスクでも、通常のライトバックキャッシュ
のときと同様に、キャッシュメモリ上のディスク未反映
のデータ、即ち、ダーティデータのディスクライト処理
が必要になる。もし、ダーティデータのディスクライト
処理を行わないと、キャッシュメモリがダーティデータ
でいっぱいになり、その時にキャッシュミスが生じる
と、キャッシュ割当てをするために、ダーティデータの
ディスクライト処理を行わなければならなくなるからで
ある。
【0056】以降、ダーティデータのディスクライト処
理、即ちライトバック処理について説明する。
【0057】まず、ライトバック処理の概要を説明す
る。キャッシュメモリ上では、アクセス時刻の新しいデ
ータは、伸長状態で存在する。伸長状態でキャッシュメ
モリに置かれている、ダーティデータのうち、古くなっ
たものを、選択して、キャッシュメモリ上で圧縮する。
圧縮すると、圧縮データの長さが決まるので、圧縮デー
タ長を使用して、ディスク上の格納位置(物理アドレ
ス)を決定する。それから、ディスク上の格納位置に基
づいて、まとめ書き用のキュー、すなわち、物理ディス
クシリンダグループ毎の圧縮ダーティキャッシュセグメ
ントキューにつなぐ。
【0058】以上の処理とは非同期に、物理ディスクシ
リンダグループ毎の圧縮ダーティキャッシュセグメント
キューを基にして、圧縮ダーティデータのディスクへの
まとめ書きを行う。以下、図面を用いて、ライトバック
処理を詳細に説明する。
【0059】ライトバック処理は、ライトバックスケジ
ュール処理と、まとめ書き処理とから構成される。ま
ず、ライトバックスケジュール処理を、図4,図18,
図20,図23,図21を用いて説明する。ライトバッ
クスケジュール処理は次のようになる。まず、ステップ
201で、キャッシュメモリ33上のダーティデータ量
をチェックする。このチェックは、ダーティキャッシュ
セグメントの個数を、常にカウントしておくことによっ
て可能である。チェックの結果、ダーティデータ量が、
閾値αh未満であれば、ステップ202へ進む。チェッ
クの結果、ダーティデータ量が、閾値αh以上であれ
ば、ステップ204へ進む。
【0060】ステップ204では、伸長ダーティデータ
のディスクライト準備処理を行う。この処理は、後で、
図18により詳しく述べる。それから、ステップ205
へ進み、再度、キャッシュ上のダーティデータ量のチェ
ックを行う。ダーティデータ量が、閾値αl(αl<α
hとなるように設定する)以上であれば、ステップ20
4へ戻り、伸長ダーティデータのディスクライト準備処
理を継続する。ステップ205で、ダーティデータ量が
閾値αl未満であれば、ステップ202へ進む。ステッ
プ202では、伸長ダーティキューと、伸長クリーンキ
ューの、それぞれのLRU位置のキャッシュセグメント
の最終アクセス時刻を比較する。それぞれのキューのL
RU位置のキャッシュセグメントは、キャッシュキュー
管理テーブル92の伸長ダーティキャッシュセグメント
LRUキューLRUポインタ97と、伸長クリーンキャ
ッシュセグメントLRUキューLRUポインタ95か
ら、セグメント番号を求めることができる。また最終ア
クセス時刻は、キャッシュ管理テーブル8の、access_
time87から求めることができる。ステップ202の比較
の結果、伸長ダーティキューのLRU位置のセグメント
の方が最終アクセス時刻が古ければ、ステップ206へ
進む。伸長ダーティキューのLRU位置のセグメントの
方が、最終アクセス時刻が新しければ、ステップ203
へ進む。ステップ206で、伸長ダーティデータのディ
スクライト準備処理を行い、ステップ202へ戻る。ス
テップ203では、一定時間待ち、ステップ201へ戻
る。
【0061】次に、伸長ダーティデータのディスクライ
ト準備の処理について説明する。
【0062】図18は、キャッシュメモリ上の、伸長状
態のダーティデータのディスクライト準備の処理フロー
チャートである。まず始めに、伸長ダーティキューのL
RU位置のキャッシュセグメントを、ディスクへライト
バックする対象データとして選択する(ステップ18
1)。次に、ステップ181で選択した伸長ダーティデ
ータが、完全か不完全かを判定する。データが完全であ
った場合、ステップ183へ進む。データが不完全であ
った場合、ステップ186へ進む。ステップ186で、
選択した対象データに対応する圧縮データのディスク上
の格納アドレスを、論理ディスク管理テーブルから求
め、ディスクから圧縮データをリードする。次に、ステ
ップ187で、リードした圧縮データを伸長する。次
に、ステップ188で、伸長したリードデータを用いて、
ライトバック対象として選択した不完全な伸長ダーティ
データを、有効データで満たす。それからステップ18
3へ進む。ステップ183では、完全な状態の、選択し
た伸長ダーティデータを圧縮する。それからステップ1
84で、圧縮したダーティデータのディスク上の格納位
置、即ち物理アドレスを決定する。それからステップ1
85で、圧縮したダーティデータをまとめ書き用のキュ
ーにつなぎ、まとめ書きの準備をし、リターンする。
【0063】図20により、圧縮ダーティデータの物理
アドレス決定方法を詳細に説明する。まず、ステップ2
1で、現在ディスクに格納されている、対象データに対
応する圧縮データ(旧圧縮データと呼ぶことにする)の
データ長を、論理ディスク管理テーブル7の、dlen
76から求め、変数L0に代入する。一方、ディスクに
ライトしようとしている対象データを、ステップ183
で圧縮していた。この、ディスクへのライト対象の圧縮
データ(新圧縮データと呼ぶことにする)のデータ長を
変数L1に代入する。
【0064】それから、ステップ22で、L0とL1の
大きさを比較する。L1≦L0であった場合、ステップ
23へ進む。この場合、圧縮したライトデータが、元の
圧縮データの大きさ以下であるので、元の領域にそのま
ま書くことができる。そこで、ステップ23では、元の
圧縮データ(旧圧縮データ)に、ディスクライトしよう
とする、圧縮データ(新圧縮データ)を上書きし、それ
からリターンする。ステップ22で、L1>L0であっ
た場合、ステップ24へ進む。ステップ24で、旧圧縮
データの直後に、(L1−L0)以上の大きさの空き領
域があるか否かをチェックする。ここで、論理ディスク
管理テーブル7から、対象データのディスク上での直後
の、圧縮された論理ディスクセグメントの番号を求め、
そのディスク上の先頭アドレスを、やはりテーブル7か
ら求めることにより、旧圧縮データの直後の空き領域の
大きさを求めることができる。(L1−L0)以上の大
きさの空き領域があった場合、ステップ25へ進み、旧
圧縮データとその直後の空き領域を、一つの連続した領
域とみなして、その先頭から新圧縮データを書き込み、
それからリターンする。ステップ24で、(L1−L
0)以上の大きさの空き領域がなかった場合、ステップ
26へ進み、旧圧縮データの近傍から、L1以上の大き
さの連続した空き領域を検索し、新圧縮データを書き込
み、リターンする。前述の空き領域の検索は、例えば、
図3の、空き領域管理テーブル600を使用して、旧圧
縮データの位置を基点として、その近傍から、L1以上
の大きさの空き領域をサーチすることによって可能であ
る。また、論理ディスク管理テーブル7の、d_fwd
_ptr,d_bwd_ptrを使用して、旧圧縮デー
タの位置を基点として、ディスク上前方および/または
後方の、論理ディスクセグメントをポインタで順次たぐ
ってゆき、間にある空き領域の大きさをL1と比較する
ことによっても可能である。また、図9に示した空き領
域管理テーブルを用いて、L1の大きさの連続空き領域
を、リストアップし、その中から、元の領域に最も近
い、空き領域を見つけて割当て、新圧縮データを書き込
むという方法によることも可能である。
【0065】図23により、圧縮ダーティデータの物理
アドレス決定方法の代替案を説明する。
【0066】まず、ステップ2301で、変数S1にデ
ィスクの物理容量をセットし、変数S2に圧縮機能付き
ディスクの、ホストコンピュータに見せる容量、即ち、
公称容量をセットする。ここでは、公称容量は、物理容
量をデータの平均圧縮率(データが1/2になったと
き、平均圧縮率は0.5 とする。)で割った値とする。
さらに変数xに、今ディスクにライトしようとしてい
る、伸長ダーティデータの論理アドレスをセットする。
さらに、y=x×S1/S2とする。ここで、yは、論
理アドレスxのデータを、物理ディスクのどの位置に格
納しようかという、目標の物理アドレスである。次に、
ステップ2302で、物理ディスク上で、アドレスyに
なるべく近いところからL1以上の大きさの連続空き領
域を検索し、圧縮したデータをライトする。この方法に
よれば、伸長ダーティデータは、ディスクへライトしよ
うとする度に、その論理アドレスに平均圧縮率を乗じ
た、アドレスの位置を目標として、その近傍にデータを
ライトし、リターンする。
【0067】図21により、まとめ書きの準備処理を説
明する。ステップ2101で、ディスクへライトしよう
とする伸長ダーティデータのあるキャッシュセグメント
を、伸長ダーティキューからはずし、キャッシュセグメ
ントを空きとする。それからステップ2102で、圧縮
したディスクライト対象の圧縮ダーティデータを、ステ
ップ184で決定した物理アドレスに基づき、物理ディ
スクシリンダグループの番号を算出し、その番号の物理
ディスクシリンダグループの圧縮ダーティキャッシュセ
グメントの物理アドレス順のキューに、データの物理ア
ドレスに基づいてつなぎ、リターンする。
【0068】まとめ書き用の、物理ディスクシリンダグ
ループ毎の、圧縮ダーティキューに接続された、圧縮ダ
ーティセグメントは、まとめ書き処理(ステップ19
1)により、リード/ライト処理、及びダーティデータ
のディスクライト準備処理、とは非同期にディスクへま
とめ書きする。このまとめ書きのステップでは、基点と
なる圧縮ダーティデータ、或いは、基点となる物理アド
レスを、カレントなヘッド位置を用いてSSTF(Short
est Seek Time Fast)アルゴリズムや、SCANアルゴ
リズムを使用して決める、或いは、圧縮ダーティデータ
の、圧縮時刻順や、データへのホストコンピュータから
の最終アクセス時刻が古い順、あるいは管理するキュー
中でのデータの並ぶ順序により決めることができる。ま
た、基点の近傍の圧縮ダーティデータの検索は、図8の
キャッシュキュー管理テーブルの、物理ディスクセグメ
ントグループの圧縮ダーティキャッシュセグメントの物
理アドレス順のキューのポインタから、キューを検索す
ることによって可能である。ここで、圧縮ダーティデー
タを、物理アドレスで管理するデータ構造としては、物
理ディスクに対し、物理シリンダ毎に該当データの有無
と、該当データが有る場合にアロケートするトラック管
理テーブルへのポインタとを有するシリンダ管理テーブ
ルと、シリンダ毎に、シリンダ内のトラック上の該当デ
ータの有無と、該当データが有る場合、そのデータの管
理情報へのポインタを有するトラック管理テーブルと
の、二段のテーブル構造を採用することもできる。
【0069】圧縮機能付きディスクにおいては、ライト
時に、圧縮データの長さが変動するので、時間が経つ
と、論理アドレスと物理アドレスの対応の順序性が失わ
れ、空き領域のフラグメント化が生じる。そのため、い
わゆるコンパクションと呼ばれる、空き領域の収集処理
や、論理アドレス順に、ディスク上の格納位置を並べ直
すソート処理等の、ディスクの再構成処理が、必要であ
る。図22に、ディスク再構成処理の、起動フローを示
す。
【0070】本実施例の、実現上の代替案を、図24,
図25,図26,図27,図28を用いて、以下に示
す。
【0071】図24及び図25は、圧縮ダーティデータ
を、ディスクにライトする際に、圧縮データのディスク
上後方に余分な領域ができた場合、その領域の扱い方を
示す。
【0072】図24は、圧縮ダーティデータを、旧圧縮
データ上に上書きしたとき(ステップ23)に、新圧縮
データの後部にL0−L1の大きさの余分な領域ができ
た場合に、その領域の全部/または一部を空き領域とし
て開放し(ステップ27)、その空き領域に直接、別の
データを書き込んだり、コンパクション処理によりその
空き領域を移動してデータ格納に利用することを可能と
する方法を示す。
【0073】図25では、圧縮ダーティデータを、旧圧
縮データ上に上書きしたとき(ステップ23)に、新圧
縮データの後部にL0−L1の大きさの余分な領域がで
きた場合に、その領域の全部/または一部を空き領域と
しないでおき、将来、対応するデータの圧縮データ長が
増加した場合に、ディスク上の格納位置の変更をしない
で元の領域にデータをライトすることを可能として、デ
ータの論理アドレスと物理アドレスの順序性をできるだ
け損なわないようにする方法を示す。
【0074】図26では、圧縮ダーティデータのデータ
長L1が、旧圧縮データのデータ長L0よりも長い場合
(ステップ24)に、旧圧縮データの後方のデータを別
領域に移動し(ステップ29)、旧圧縮データの後方に
十分な大きさの空き領域を作って旧圧縮データの格納領
域と後続の空き領域をつなげて、そこに新圧縮データを
書く方法を示している。
【0075】図27は、圧縮ダーティデータのディスク
ライト処理の延長上で、ディスク上の空き領域集め(コ
ンパクション)処理を起動する方法を示している。図2
7中で、旧圧縮データ上に、そのままでは新たな圧縮デ
ータをライトできない場合に、コンパクション処理を起
動し(ステップ2B)、それから旧圧縮データの近傍に
必要な大きさの空き領域を見つけてデータをライトする
(ステップ2C)。コンパクション処理の起動方法とし
ては、元の領域にそのままではデータがライトできない
事象の発生回数をカウントして閾値比較をする、あるい
は、前記事象発生時に、ディスク上のフラグメンテーシ
ョン度合いをチェックしたうえでコンパクション処理を
起動するなど、いくつかの方法が考えられる。
【0076】図28は、圧縮データを、分割してディス
クに格納する方法を示している。図28では、そのまま
では、新たな圧縮データを、元の領域にライトできない
場合に、圧縮データを分割して、ディスク上で分散させ
て、元の領域の近傍に格納する(ステップ2D)。この
方法を用いれば、これまで述べた方法に比べて、ディス
クのコンパクション処理を減らすことができる。
【0077】以上により、ライトバックキャッシュとデ
ータ圧縮機能を採用したディスク制御装置において、ホ
ストコンピュータからみえる論理的なデータのアドレス
と圧縮されたデータのディスク上の格納アドレスとの間
の順序性をできるだけ保つことにより、シーケンシャル
リード性能や先読み効果の低下を防止することができる
ようになる。また、同時にキャッシュ上のディスク未反
映のダーティデータのまとめ書きを行うことが可能にな
る。
【0078】これにより、ビットコストが良い、高性能
なディスク装置を実現できる。
【0079】(2)次に、本発明を実施した、圧縮機能
とライトバックキャッシュを有する、ディスク制御装置
の第二の実施例を述べる。本実施例では、古くなったダ
ーティデータを、ディスクライトに備えて圧縮し、ディ
スク上の格納位置(物理アドレス)を決めた後、特に圧
縮したダーティデータを、物理アドレスから検索可能な
キューにつなぐことはしない。まとめ書きデータの検索
は、論理アドレス上近傍の圧縮ダーティデータを、検索
し、そのデータの物理アドレスをチェックし、物理アド
レス上近傍のものだけを選択することにより行う。この
方法では、第一の実施例に比べて、プログラム構造が簡
単になることと、メモリ使用量を少なくできることが利
点である。
【0080】本実施例の大部分は、第一の実施例と同一
であるので、違う部分だけを、図29,図30,図3
1,図32を用いて説明する。
【0081】図31中の、3100は、物理ディスク管
理テーブルである。3101は、各物理ディスクの管理
単位に、論理データが割当てられているか否かを示すデ
ータ有無フラグであり、3102は、割当てられている
論理ディスクセグメントの番号である。図32は、圧縮
ダーティキャッシュセグメントのキューの先頭及び末尾
のポインタを示している。
【0082】図29は、キャッシュ上の伸長ダーティデ
ータのディスクライト準備の処理を示している。ステッ
プ184までは、第一の実施例の、図18に示す処理と
同一である。ステップ184で、圧縮ダーティデータの
物理アドレスを決定する。次に、ステップ189へ進
み、当該圧縮ダーティデータに対応するテーブルをセッ
トする。具体的には、図5に示される、論理ディスク管
理テーブル7中で、当該データに対応する論理ディスク
セグメントエントリの、物理ディスク上の位置情報、即
ち、hd_addr75,dlen76,d_fwd_
ptr77,d_bwd_ptr78をセットする。こ
の実施例では、圧縮ダーティデータは、圧縮ダーティデ
ータ専用の1本のキューにて、管理する。即ち、該当デ
ータを、伸長ダーティデータのキューからはずし、圧縮
ダーティデータのキューにつなぐ。対応して、キャッシ
ュ管理テーブル8中のc_fwd_ptr,c_bwd
_ptr等も更新する。
【0083】図30は、本実施例におけるまとめ書き処
理を示す。まとめ書き処理では、まずまとめ書き対象の
圧縮ダーティデータ或いはまとめ書きの基点とする物理
アドレスを決定し(ステップ192)、ステップ192
で決定した基点の、論理アドレスを元に、論理ディスク
管理テーブル7から、その論理アドレス近傍の論理ディ
スクセグメントのエントリのcsn72からキャッシュ
管理テーブルを引き、更に対応するキャッシュセグメン
トエントリの、csd83,csst82から、圧縮ダ
ーティデータの有無を調べて、圧縮ダーティデータの有
る論理ディスクセグメントを選出し(ステップ19
3)、更に、論理ディスク管理テーブル7の論理ディス
クセグメントエントリのhd_addr75から、基点
とする物理アドレスの近傍にあるか否かをチェックし
て、基点物理アドレス上近傍の、圧縮ダーティデータ
を、選び(ステップ194)、まとめ書きを行う(ステッ
プ195)。
【0084】まとめ書き対象の圧縮ダーティデータか
ら、論理アドレスを求めることは、キャッシュ管理テー
ブル8の、ldsn8Aを用いることによって可能であ
る。
【0085】基点の物理アドレスから、対応する論理ア
ドレスを求めることは、図31の物理ディスク管理テー
ブルを用いて、物理アドレスから物理ディスクに割当て
られているデータの論理アドレスを求めることによって
可能である。
【0086】また、本実施例では、圧縮したダーティデ
ータは、第一の実施例のように物理ディスクシリンダグ
ループ毎に管理するのではなく、図32に示す、圧縮し
た時刻順の、圧縮ダーティキャッシュセグメントのFI
F0キューによって管理する。
【0087】本実施例により、プログラム構造を簡単に
して、メモリ使用量を少なくして、圧縮ダーティデータ
のディスクへのまとめ書きを行うことができる。
【0088】
【発明の効果】本発明により、ライトバックキャッシュ
とデータ圧縮機能を採用したディスク制御装置におい
て、ホストコンピュータからみえる論理的なデータのア
ドレスと圧縮されたデータのディスク上の格納アドレス
との間の順序性をできるだけ保つことにより、シーケン
シャルリード性能や先読み効果の低下を防止することが
できるようになる。また、同時にキャッシュ上のディス
ク未反映のダーティデータのまとめ書きを行うことが可
能になる。
【0089】これにより、ビットコストが良い、高性能
なディスク装置を実現できる。
【図面の簡単な説明】
【図1】本発明を適用するディスク制御装置の位置付け
を示すブロック図。
【図2】圧縮機能付きディスク制御装置のハードウェア
のブロック図。
【図3】ディスク上の空きセクタを管理する管理テーブ
ルの説明図。
【図4】ライトバックスケジュール処理のフローチャー
ト。
【図5】制御に使用する論理ディスク管理テーブルの説
明図。
【図6】制御に使用するキャッシュ管理テーブルの説明
図。
【図7】キャッシュメモリのデータ格納部の説明図。
【図8】キャッシュセグメントのキューを管理するテー
ブルの説明図。
【図9】ディスク上の空き領域を管理するテーブルの説
明図。
【図10】空き領域管理エントリを示す説明図。
【図11】メモリの使用の仕方、即ちメモリ構成を示す
説明図。
【図12】ディスクの初期化処理のフローチャート。
【図13】ディスクへのリード/ライトの処理フローチ
ャート。
【図14】ライトミス時の処理フローチャート。
【図15】ライトヒット時の処理フローチャート。
【図16】リードヒット時の処理フローチャート。
【図17】リードミス時の処理フローチャート。
【図18】伸長ダーティデータのディスクライト準備の
処理フローチャート。
【図19】まとめ書き処理を示す説明図。
【図20】圧縮ダーティデータの、ディスク上の格納位
置、即ち物理アドレスを決定する方法の処理フローチャ
ート。
【図21】まとめ書きの準備の処理フローチャート。
【図22】ディスク再構成処理の起動の仕方を示すフロ
ーチャート。
【図23】圧縮ダーティデータの物理アドレスの決定方
法の代替案の処理フローチャート。
【図24】ディスク更新時の後続領域の扱いの一方法を
示すフローチャート。
【図25】ディスク更新時の後続領域の扱いの一方法を
示すフローチャート。
【図26】圧縮データのディスク格納の一方法を示すフ
ローチャート。
【図27】圧縮データのディスク格納時に、連携して空
き領域集め(コンパクション)処理を起動する場合の、
処理フローチャート。
【図28】圧縮データを分割してディスクに分散格納す
る一方法の処理フローチャート。
【図29】論理アドレスを用いてまとめ書きデータを見
つける場合の、伸長ダーティデータのディスクライト準
備の処理を示す説明図。
【図30】論理アドレスを用いてまとめ書きデータを見
つける場合の、まとめ書き処理の処理フローチャート。
【図31】物理ディスク管理テーブルの説明図。
【図32】圧縮ダーティキャッシュセグメントのキュー
を示す説明図。
【符号の説明】
181…ダーティデータを選択するステップ、182…
判定するステップ、183…選択したデータを圧縮する
ステップ、184…圧縮したダーティデータのディスク
上の格納位置、185…まとめ書き準備を行うステッ
プ、186…対応するデータをディスクから読み出すス
テップ、187…ディスクから読み出した圧縮状態のデ
ータを伸長するステップ、188…伸長したリードデー
タを用いて、データを揃えるステップ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 阿知和 恭介 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】ライトバックキャッシュとデータ圧縮機能
    を採用したディスク制御装置において、キャッシュメモ
    リ中のダーティな伸長状態の、最新アクセス時刻が古く
    なった、即ちLRUデータを選択し、圧縮するステップ
    と、論理アドレスと物理アドレスの対応と、ディスク上
    の空き領域を管理する管理情報を用いて、前記圧縮する
    ステップで圧縮したデータのディスク上の格納位置、即
    ち、物理アドレスを、論理アドレスと物理アドレスの順
    序性ができるだけ損なわれないように、決定するステッ
    プとを含むことを特徴とするディスク制御方法。
  2. 【請求項2】請求項1において、ディスク上の物理アド
    レス毎に、圧縮されたダーティデータの有無を表す情報
    と、前記圧縮されたダーティデータが存在する場合、当
    該データの管理情報へのポインタを管理するテーブルを
    用いて、圧縮したダーティデータの物理アドレスに従っ
    て、前記テーブルをセットするステップとを含むディス
    ク制御方法。
  3. 【請求項3】請求項1において、圧縮データのディスク
    上の格納位置を、ディスク上の前記圧縮データに対応す
    る更新前の圧縮データの位置を基点として、圧縮データ
    のデータ長が更新前の圧縮データのデータ長以下である
    時には、更新前の圧縮データの格納位置と同一とし、圧
    縮データのデータ長が、更新前の圧縮データのデータ長
    よりも大きい時には、更新前の圧縮データのディスク上
    直後の空き領域の有無と、空き領域の長さのチェックを
    行い、後方の空き領域を更新前の圧縮データに接続して
    一つの連続領域とした場合に、圧縮データが、当該領域
    内に収まる場合には、圧縮データのディスク上の格納位
    置を、更新前の圧縮データの格納位置と同一とし、圧縮
    データが、領域内に収まらない場合には、更新前の圧縮
    データのディスク上の格納位置の近傍から、圧縮データ
    を格納可能な大きさの空き領域を捜して、その空き領域
    を、圧縮データのディスク上の格納位置とするディスク
    制御方法。
  4. 【請求項4】請求項3において、キャッシュ上のダーテ
    ィデータを圧縮し、その圧縮データ長が、ディスク上の
    対応する旧圧縮データのデータ長よりも短くなった時
    に、新しい圧縮データを、旧圧縮データ上に格納する
    が、その際に、旧圧縮データが格納されていたディスク
    上の領域のうち、新しい圧縮データが格納されなかっ
    た、後部の領域の全てまたは一部を、空き領域とするデ
    ィスク制御方法。
  5. 【請求項5】請求項3において、キャッシュ上のダーテ
    ィデータを圧縮し、その圧縮データ長が、ディスク上の
    対応する旧圧縮データのデータ長よりも短くなった時
    に、新しい圧縮データを、旧圧縮データ上に格納する
    が、その際に、旧圧縮データが格納されていたディスク
    上の領域のうち、新しい圧縮データが格納されなかっ
    た、後部の領域の全てまたは一部を、将来の圧縮データ
    長の増加に備えて、空き領域としないで、確保したまま
    にするディスク制御方法。
  6. 【請求項6】請求項1において、キャッシュ上のダーテ
    ィデータを圧縮し、その圧縮データ長が、ディスク上の
    対応する旧圧縮データのデータ長よりも長くなった時
    に、旧圧縮データの直後に、旧圧縮データと接続して
    も、新しい圧縮データを格納するに十分な大きさの空き
    領域がないときに、旧圧縮データの後方のデータを、デ
    ィスク上の別の位置にある領域に移動することによっ
    て、新しい圧縮データを、旧圧縮データの格納位置に格
    納可能な大きさの、空き領域を作成し、新しい圧縮デー
    タを、旧圧縮データの格納位置に格納するディスク制御
    方法。
  7. 【請求項7】請求項1において、キャッシュ上のダーテ
    ィデータを圧縮し、その圧縮データ長が、ディスク上の
    対応する旧圧縮データのデータ長よりも長くなった時
    に、旧圧縮データの直後に、旧圧縮データと接続して
    も、新しい圧縮データを格納するに十分な大きさの空き
    領域がないときに、空き領域を集めるコンパクション処
    理を起動するディスク制御方法。
  8. 【請求項8】請求項1において、圧縮したキャッシュ上
    のダーティデータを、ディスクに格納する時に、キャッ
    シュ上のダーティデータを分割して、ディスク上に分散
    して格納することを許すディスク制御方法。
  9. 【請求項9】請求項1において、ディスクの論理アドレ
    スから物理アドレスを引くことができるテーブルを利用
    することによって、論理アドレスと物理アドレスの対応
    を管理するディスク制御方法。
  10. 【請求項10】請求項1において、ディスク上の空き領
    域を、ディスクのブロック毎に、前記ブロックが空き状
    態か否かをビット値によって示すビットマップ情報を用
    いて管理するディスク制御方法。
  11. 【請求項11】請求項1において、ディスク上の空き領
    域を、空き領域のサイズ毎に管理することにより、必要
    な大きさの空き領域の検索を高速に行うディスク制御方
    法。
  12. 【請求項12】請求項1において、圧縮データのディス
    ク上の格納位置を、データの論理的なアドレスに、ディ
    スク内のデータの平均圧縮率を乗じた値を、圧縮データ
    のディスク上の格納位置の基点アドレスとし、基点アド
    レスの近傍から、空き領域を検索して、圧縮データのデ
    ィスク上の格納位置とするディスク制御方法。
  13. 【請求項13】請求項1において、圧縮されたキャッシ
    ュ上のダーティデータを、ディスクにまとめ書きしよう
    とする時に、ディスク上の論理アドレス毎に、圧縮され
    たダーティデータの有無を表す情報と、圧縮されたダー
    ティデータが存在する場合、そのディスクへの格納位置
    即ち物理アドレスとを管理するテーブルを用いて、まず
    論理アドレス上近傍の圧縮されたダーティデータを選び
    出すステップと、前記選び出すステップで選び出した圧
    縮されたダーティデータのうち、前記テーブルにより、
    物理アドレス上近傍のものだけを選択するステップによ
    り、まとめ書き対象の、圧縮されたダーティデータを選
    択することにより、キャッシュ上のディスク未反映のダ
    ーティデータのまとめ書きを可能とするディスク制御方
    法。
  14. 【請求項14】請求項2において、圧縮されたダーティ
    データをディスクへライトしようとする時に、圧縮され
    たダーティデータのディスクへの格納位置を管理するテ
    ーブルを用いて、次にディスクライトすべき圧縮された
    ダーティデータを決めるディスク制御方法。
  15. 【請求項15】請求項2において、圧縮されたダーティ
    データをディスクへライトしようとする時に、圧縮され
    たダーティデータのディスクへの格納位置を管理するテ
    ーブルと、現在のヘッドのシリンダ位置情報とを併用し
    て、次にディスクライトすべき圧縮されたダーティデー
    タを決めるディスク制御方法。
  16. 【請求項16】請求項2において、圧縮されたダーティ
    データをディスクへライトしようとする時に、圧縮され
    たダーティデータの圧縮した時刻順、あるいは圧縮前の
    伸長状態のダーティデータへのホストコンピュータから
    の最終アクセス時刻が古い順、あるいは圧縮前の伸長状
    態のダーティデータを管理するキュー中のデータの順序
    を用いることによって、次にディスクライトすべき圧縮
    されたダーティデータを決めるディスク制御方法。
JP5279249A 1993-11-09 1993-11-09 ディスク制御方法 Pending JPH07129470A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5279249A JPH07129470A (ja) 1993-11-09 1993-11-09 ディスク制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5279249A JPH07129470A (ja) 1993-11-09 1993-11-09 ディスク制御方法

Publications (1)

Publication Number Publication Date
JPH07129470A true JPH07129470A (ja) 1995-05-19

Family

ID=17608522

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5279249A Pending JPH07129470A (ja) 1993-11-09 1993-11-09 ディスク制御方法

Country Status (1)

Country Link
JP (1) JPH07129470A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7240156B2 (en) 2004-02-05 2007-07-03 Hitachi, Ltd. Storage subsystem and storage subsystem control method
JP2007334752A (ja) * 2006-06-16 2007-12-27 Fujitsu Ltd Raid装置、raid制御プログラムおよびキャッシュ管理方法
JP2008269636A (ja) * 2008-06-03 2008-11-06 Hitachi Ltd ストレージサブシステム及びストレージサブシステムの制御方法
JP2010191672A (ja) * 2009-02-18 2010-09-02 Toshiba Corp データ記憶システム
JP2017529591A (ja) * 2014-08-05 2017-10-05 クアルコム,インコーポレイテッド 圧縮されたデータセグメントのキャッシュライン小型化
US10579541B2 (en) 2016-11-28 2020-03-03 Fujitsu Limited Control device, storage system and method
US11099985B2 (en) 2017-12-20 2021-08-24 Nec Platforms, Ltd. Storage controller, storage array device, data depositing method, and storage medium

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7240156B2 (en) 2004-02-05 2007-07-03 Hitachi, Ltd. Storage subsystem and storage subsystem control method
US7246208B2 (en) 2004-02-05 2007-07-17 Hitachi, Ltd. Storage subsystem and storage subsystem control method
US7739454B2 (en) 2004-02-05 2010-06-15 Hitachi, Ltd. Storage subsystem and storage subsystem control method
JP2007334752A (ja) * 2006-06-16 2007-12-27 Fujitsu Ltd Raid装置、raid制御プログラムおよびキャッシュ管理方法
JP2008269636A (ja) * 2008-06-03 2008-11-06 Hitachi Ltd ストレージサブシステム及びストレージサブシステムの制御方法
JP2010191672A (ja) * 2009-02-18 2010-09-02 Toshiba Corp データ記憶システム
JP4734432B2 (ja) * 2009-02-18 2011-07-27 株式会社東芝 データ記憶システム
JP2017529591A (ja) * 2014-08-05 2017-10-05 クアルコム,インコーポレイテッド 圧縮されたデータセグメントのキャッシュライン小型化
US10261910B2 (en) 2014-08-05 2019-04-16 Qualcomm Incorporated Cache line compaction of compressed data segments
US10579541B2 (en) 2016-11-28 2020-03-03 Fujitsu Limited Control device, storage system and method
US11099985B2 (en) 2017-12-20 2021-08-24 Nec Platforms, Ltd. Storage controller, storage array device, data depositing method, and storage medium

Similar Documents

Publication Publication Date Title
US6857045B2 (en) Method and system for updating data in a compressed read cache
EP1074916B1 (en) Hardware mechanism for managing cache structures in a data storage system
US6115787A (en) Disc storage system having cache memory which stores compressed data
US6968424B1 (en) Method and system for transparent compressed memory paging in a computer system
JP3426385B2 (ja) ディスク制御装置
US5596736A (en) Data transfers to a backing store of a dynamically mapped data storage system in which data has nonsequential logical addresses
JP3399520B2 (ja) 圧縮メイン・メモリの仮想非圧縮キャッシュ
US6192450B1 (en) Destage of data for write cache
US6941420B2 (en) Log-structure array
JP2831602B2 (ja) 圧縮データ管理装置及び圧縮データ管理方法
US6779088B1 (en) Virtual uncompressed cache size control in compressed memory systems
US6360300B1 (en) System and method for storing compressed and uncompressed data on a hard disk drive
US6449689B1 (en) System and method for efficiently storing compressed data on a hard disk drive
KR100216146B1 (ko) 직접 액세스 저장장치의 데이터 압축 방법 및 압축 데이터 구조
US8122216B2 (en) Systems and methods for masking latency of memory reorganization work in a compressed memory system
JP2002342037A (ja) ディスク装置
US5537658A (en) Distributed directory method and structure for direct access storage device (DASD) data compression
KR101017067B1 (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
US5671390A (en) Log structured array storage subsystem using LSA directory and LSA sub-directory stored in different storage media
WO1993000635A1 (en) Data storage management systems
US5584015A (en) Buffer memory management method, recording medium, and computer system incorporating same
JPH07129470A (ja) ディスク制御方法
US20230021108A1 (en) File storage
JPH08115169A (ja) ディスク制御装置
JPH1011337A (ja) 記憶装置におけるデータ制御方法