JPH0628261A - データ転送方法及び装置 - Google Patents
データ転送方法及び装置Info
- Publication number
- JPH0628261A JPH0628261A JP5088387A JP8838793A JPH0628261A JP H0628261 A JPH0628261 A JP H0628261A JP 5088387 A JP5088387 A JP 5088387A JP 8838793 A JP8838793 A JP 8838793A JP H0628261 A JPH0628261 A JP H0628261A
- Authority
- JP
- Japan
- Prior art keywords
- data
- disk
- storage
- blocks
- segment
- 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
Links
Landscapes
- Bus Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】キャッシュ付きディスクサブシステムに於て、
キャッシュとディスク間における不連続なデータブロッ
クの転送を1回のDMA転送で行なうことを可能とす
る。 【構成】 キャッシュセグメント131上に、不連続な
形で存在するデータをディスクにライトする際、マイク
ロプロセッサ100は、データ転送制御情報として、ビ
ットマップ150をHDC120に与える。HDC12
0は、DMAC110から送られてくるデータを、ビッ
トマップ150の第iビットが1ならば、第i番目のブ
ロックのデータをディスクの対応するセクタにライト
し、第iビットが0ならば、前記データを止め、ディス
クのリード/ライトヘッドが対応するセクタを通過する
のを待つように制御する。 【効果】 ディスクサブシステムの高性能化、キャッシ
ュ制御プログラムの容易化が図れる。
キャッシュとディスク間における不連続なデータブロッ
クの転送を1回のDMA転送で行なうことを可能とす
る。 【構成】 キャッシュセグメント131上に、不連続な
形で存在するデータをディスクにライトする際、マイク
ロプロセッサ100は、データ転送制御情報として、ビ
ットマップ150をHDC120に与える。HDC12
0は、DMAC110から送られてくるデータを、ビッ
トマップ150の第iビットが1ならば、第i番目のブ
ロックのデータをディスクの対応するセクタにライト
し、第iビットが0ならば、前記データを止め、ディス
クのリード/ライトヘッドが対応するセクタを通過する
のを待つように制御する。 【効果】 ディスクサブシステムの高性能化、キャッシ
ュ制御プログラムの容易化が図れる。
Description
【0001】
【産業上の利用分野】本発明は、記憶装置間のデータ転
送方法及び装置に関し、特にキャッシュメモリ付きディ
スクサブシステムにおけるディスクキャッシュメモリと
ディスクドライブとの間のデータ転送に好適な、データ
転送方法及び装置に関する。
送方法及び装置に関し、特にキャッシュメモリ付きディ
スクサブシステムにおけるディスクキャッシュメモリと
ディスクドライブとの間のデータ転送に好適な、データ
転送方法及び装置に関する。
【0002】
【従来の技術】従来の記憶装置間のデータ転送方法とし
て、例えば、ディスクドライブに格納されたデータの一
部を半導体メモリにコピーし、ディスクサブシステムの
アクセス時間の向上を図るようにディスクキャッシュメ
モリを備えたディスクサブシステムにおいて、ディスク
サブシステムに接続されたホストコンピュータから出力
されたデータライトコマンドに応答して、ライトデータ
をディスクキャッシュメモリに書き込むだけでデータ書
き込みを完了し、そのライトデータを後でディスクドラ
イブにライトする、ライトバックキャッシュ方式が知ら
れている。このような技術については、例えば、特開昭
55−154650号公報に開示されている。
て、例えば、ディスクドライブに格納されたデータの一
部を半導体メモリにコピーし、ディスクサブシステムの
アクセス時間の向上を図るようにディスクキャッシュメ
モリを備えたディスクサブシステムにおいて、ディスク
サブシステムに接続されたホストコンピュータから出力
されたデータライトコマンドに応答して、ライトデータ
をディスクキャッシュメモリに書き込むだけでデータ書
き込みを完了し、そのライトデータを後でディスクドラ
イブにライトする、ライトバックキャッシュ方式が知ら
れている。このような技術については、例えば、特開昭
55−154650号公報に開示されている。
【0003】また、I/Oデバイスとメモリとの間のデ
ータ転送の一方法である、ダイレクトメモリアクセス
(DMA)転送については、例えば、定期刊行物「イン
ターフェース」1989年6月号、「割り込みとDMA
の考え方」、pp. 223-240、CQ出版社、1989年6
月1日発行に記載されている。ここには、DMAによる
データ転送に際し、転送すべきデータ領域の先頭アドレ
スと領域長とを指定し、これにより指定された連続領域
のデータ転送をCPUを介することなく行なうデータ転
送方法が開示されている。
ータ転送の一方法である、ダイレクトメモリアクセス
(DMA)転送については、例えば、定期刊行物「イン
ターフェース」1989年6月号、「割り込みとDMA
の考え方」、pp. 223-240、CQ出版社、1989年6
月1日発行に記載されている。ここには、DMAによる
データ転送に際し、転送すべきデータ領域の先頭アドレ
スと領域長とを指定し、これにより指定された連続領域
のデータ転送をCPUを介することなく行なうデータ転
送方法が開示されている。
【0004】
【発明が解決しようとする課題】一般に、ディスクキャ
ッシュメモリは複数のキャッシュセグメントで構成さ
れ、ディスクキャッシュメモリとディスクドライブとの
間のデータ転送は、このキャッシュセグメントのデータ
を転送単位として行われる。また、各キャッシュセグメ
ントのデータは、所定数の同一サイズデータブロックに
分割可能である。
ッシュメモリは複数のキャッシュセグメントで構成さ
れ、ディスクキャッシュメモリとディスクドライブとの
間のデータ転送は、このキャッシュセグメントのデータ
を転送単位として行われる。また、各キャッシュセグメ
ントのデータは、所定数の同一サイズデータブロックに
分割可能である。
【0005】上述したライトバックキャッシュ方式を採
用したディスクキャッシュメモリにおいては、ホストコ
ンピュータからのライトデータが、ある1つのキャッシ
ュセグメントの一部にしか書き込まれない場合は、ディ
スクサブシステム内のディスクコントローラは、先ず、
ディスクドライブからそのキャッシュセグメントデータ
に対応するデータ(ディスクセグメントデータ)を読み
だして、ディスクキャッシュメモリ内のキャッシュセグ
メントに書き込み、その後で、ディスクコントローラ
が、ホストコンピュータからのライトデータをそのキャ
ッシュセグメントに書き込むのが一般的である。
用したディスクキャッシュメモリにおいては、ホストコ
ンピュータからのライトデータが、ある1つのキャッシ
ュセグメントの一部にしか書き込まれない場合は、ディ
スクサブシステム内のディスクコントローラは、先ず、
ディスクドライブからそのキャッシュセグメントデータ
に対応するデータ(ディスクセグメントデータ)を読み
だして、ディスクキャッシュメモリ内のキャッシュセグ
メントに書き込み、その後で、ディスクコントローラ
が、ホストコンピュータからのライトデータをそのキャ
ッシュセグメントに書き込むのが一般的である。
【0006】このようなデータライト動作は、ディスク
からのデータ読みだし動作を含むため、ディスクサブシ
ステムのアクセス時間が大幅に遅くなるという問題を有
している。この問題を解決するために、ホストコンピュ
ータからのライトデータに対して、ある1つのキャッシ
ュセグメントが初めて割り当てられ、かつ、そのライト
データが、そのキャッシュセグメントの一部にしか書き
込まれない場合でも、対応するディスクセグメントデー
タをディスクドライブから読み出さず、そのライトデー
タを直接そのキャッシュセグメントに書き込むことが考
えられる。
からのデータ読みだし動作を含むため、ディスクサブシ
ステムのアクセス時間が大幅に遅くなるという問題を有
している。この問題を解決するために、ホストコンピュ
ータからのライトデータに対して、ある1つのキャッシ
ュセグメントが初めて割り当てられ、かつ、そのライト
データが、そのキャッシュセグメントの一部にしか書き
込まれない場合でも、対応するディスクセグメントデー
タをディスクドライブから読み出さず、そのライトデー
タを直接そのキャッシュセグメントに書き込むことが考
えられる。
【0007】しかし、キャッシュセグメントデータに
は、データの無い(無意味なデータを有する)データブ
ロック(以下、これを「空きデータブロック」と呼ぶ)
が含まれているため、ライトバック時にキャッシュセグ
メント全体のデータを一括してディスクドライブに書き
込むことはできない。また、ホストコンピュータからの
ライトデータがいくつか同じキャッシュセグメントに書
き込まれた後に、キャッシュセグメント内にディスクへ
の書き込みが完了していないデータブロック(以下、こ
れを「ダーティデータブロック」と呼ぶ)が飛び飛びに
存在し、これらダーティブロックの間に空きデータブロ
ック、または、ディスクへの書き込みが完了したデータ
ブロック(以下、これを「クリーンデーダブロック」と
呼ぶ)が存在する状態が発生する場合がある。これらの
場合には、1つのキャッシュセグメント内の飛び飛びの
データブロックのみをディスクドライブへ書き込むこと
が必要となる。従来技術の項において述べたように、1
回のDMA転送では連続した1つのデータ領域の転送し
か行なうことができない。従って、この飛び飛びのデー
タ転送をDMA転送を用いて行なうには、複数回のDM
A転送を必要とすることになる。複数回のDMA転送を
行うと、ディスクコントローラ内のマイクロプロセッサ
の割り込み動作が頻繁となり、マイクロプロセッサのオ
ーバヘッドが大きくなるという問題が生じることにな
る。
は、データの無い(無意味なデータを有する)データブ
ロック(以下、これを「空きデータブロック」と呼ぶ)
が含まれているため、ライトバック時にキャッシュセグ
メント全体のデータを一括してディスクドライブに書き
込むことはできない。また、ホストコンピュータからの
ライトデータがいくつか同じキャッシュセグメントに書
き込まれた後に、キャッシュセグメント内にディスクへ
の書き込みが完了していないデータブロック(以下、こ
れを「ダーティデータブロック」と呼ぶ)が飛び飛びに
存在し、これらダーティブロックの間に空きデータブロ
ック、または、ディスクへの書き込みが完了したデータ
ブロック(以下、これを「クリーンデーダブロック」と
呼ぶ)が存在する状態が発生する場合がある。これらの
場合には、1つのキャッシュセグメント内の飛び飛びの
データブロックのみをディスクドライブへ書き込むこと
が必要となる。従来技術の項において述べたように、1
回のDMA転送では連続した1つのデータ領域の転送し
か行なうことができない。従って、この飛び飛びのデー
タ転送をDMA転送を用いて行なうには、複数回のDM
A転送を必要とすることになる。複数回のDMA転送を
行うと、ディスクコントローラ内のマイクロプロセッサ
の割り込み動作が頻繁となり、マイクロプロセッサのオ
ーバヘッドが大きくなるという問題が生じることにな
る。
【0008】以上、ディスクキャッシュからディスクド
ライブへのデータ転送について述べたが、ディスクドラ
イブからディスクキャッシュへのデータ転送を行なう場
合にも同様の問題が生じる。
ライブへのデータ転送について述べたが、ディスクドラ
イブからディスクキャッシュへのデータ転送を行なう場
合にも同様の問題が生じる。
【0009】従って、本発明の目的は、不連続な複数の
データブロックをキャッシュメモリとディスクドライブ
との間で1回のDMA転送によって転送することができ
るデータ転送方法及び装置を提供することにある。
データブロックをキャッシュメモリとディスクドライブ
との間で1回のDMA転送によって転送することができ
るデータ転送方法及び装置を提供することにある。
【0010】また、本発明の別の目的は、キャッシュメ
モリとディスクドライブとの間での双方向のデータ転送
を1回のDMA転送によりおこなうことができるデータ
転送方法及び装置を提供することにある。
モリとディスクドライブとの間での双方向のデータ転送
を1回のDMA転送によりおこなうことができるデータ
転送方法及び装置を提供することにある。
【0011】
【課題を解決するための手段】上記目的を達成するため
に、本発明では、ホストコンピュータと該ホストコンピ
ュータが利用するデータを保持し、連続する複数のデー
タブロックで構成されるディスクセグメントを有するデ
ィスク装置との間のデータ転送を制御するデータ転送装
置であって、ディスクセグメント内の連続する複数のデ
ータブロックにそれぞれ対応し、連続する複数のデータ
ブロックで構成されるキャッシュセグメントを有するデ
ィスクキャッシュメモリを備えたデータ転送制御装置
に、キャッシュセグメント内の連続する複数のデータブ
ロックにそれぞれ対応し、データ転送すべきデータブロ
ックを指示するための複数のビット位置を有するディス
クライト用ビットマップ、ディスクセグメント内の連続
する複数のデータブロックにそれぞれ対応し、データ転
送すべきデータブロックを指示するための複数のビット
位置を有するディスクリード用ビットマップを設ける。
ディスクキャッシュメモリのキャッシュセグメント内の
不連続なデータブロックをディスク装置の対応するディ
スクセグメント内のデータブロックに転送する際には、
ディスクライト用ビットマップを参照し、転送対象とな
るデータブロックのみを選択的にディスクキャッシュメ
モリからディスク装置へ転送する。また、ディスク装置
のディスクセグメント内の不連続なデータブロックをデ
ィスクキャッシュメモリの対応するキャッシュセグメン
ト内のデータブロックへ転送する際には、ディスクリー
ド用ビットマップを参照し、転送対象となるデータブロ
ックをディスク装置より読み出し、それらが書き込まれ
るべきキャッシュセグメント内の対応するデータブロッ
ク位置に転送する。
に、本発明では、ホストコンピュータと該ホストコンピ
ュータが利用するデータを保持し、連続する複数のデー
タブロックで構成されるディスクセグメントを有するデ
ィスク装置との間のデータ転送を制御するデータ転送装
置であって、ディスクセグメント内の連続する複数のデ
ータブロックにそれぞれ対応し、連続する複数のデータ
ブロックで構成されるキャッシュセグメントを有するデ
ィスクキャッシュメモリを備えたデータ転送制御装置
に、キャッシュセグメント内の連続する複数のデータブ
ロックにそれぞれ対応し、データ転送すべきデータブロ
ックを指示するための複数のビット位置を有するディス
クライト用ビットマップ、ディスクセグメント内の連続
する複数のデータブロックにそれぞれ対応し、データ転
送すべきデータブロックを指示するための複数のビット
位置を有するディスクリード用ビットマップを設ける。
ディスクキャッシュメモリのキャッシュセグメント内の
不連続なデータブロックをディスク装置の対応するディ
スクセグメント内のデータブロックに転送する際には、
ディスクライト用ビットマップを参照し、転送対象とな
るデータブロックのみを選択的にディスクキャッシュメ
モリからディスク装置へ転送する。また、ディスク装置
のディスクセグメント内の不連続なデータブロックをデ
ィスクキャッシュメモリの対応するキャッシュセグメン
ト内のデータブロックへ転送する際には、ディスクリー
ド用ビットマップを参照し、転送対象となるデータブロ
ックをディスク装置より読み出し、それらが書き込まれ
るべきキャッシュセグメント内の対応するデータブロッ
ク位置に転送する。
【0012】本発明の一態様では、ディスクリード用ビ
ットマップとディスクライト用ビットマップは、互いに
共用して用いられる。
ットマップとディスクライト用ビットマップは、互いに
共用して用いられる。
【0013】また、ディスクライト用ビットマップ、ま
たは、ディスクリード用ビットマップを用い、あるキャ
ッシュセグメント内の少なくとも1つのダーティデータ
ブロックのディスクドライブへの書き込みと、同一キャ
ッシュセグメント内の空きデータブロックへの少なくと
も1つのデータブロックの書き込みとを1つのDMA転
送処理内でおこなうことも可能である。
たは、ディスクリード用ビットマップを用い、あるキャ
ッシュセグメント内の少なくとも1つのダーティデータ
ブロックのディスクドライブへの書き込みと、同一キャ
ッシュセグメント内の空きデータブロックへの少なくと
も1つのデータブロックの書き込みとを1つのDMA転
送処理内でおこなうことも可能である。
【0014】
【作用】このように、特別のビットマップを設けたこと
により、ホストコンピュータからのライトデータに対し
ては、ディスクドライブから読みだしたディスクセグメ
ントデータをコピーしていないキャッシュセグメントに
直接書き込むことが可能となり、ディスクサブシステム
のアクセス時間を速くできる。
により、ホストコンピュータからのライトデータに対し
ては、ディスクドライブから読みだしたディスクセグメ
ントデータをコピーしていないキャッシュセグメントに
直接書き込むことが可能となり、ディスクサブシステム
のアクセス時間を速くできる。
【0015】また、キャッシュセグメント内のデータブ
ロックに飛び飛びに書き込まれたホストコンピュータか
らのライトデータを、1回のDMA転送で処理可能とな
り、ディスクサブシステムの処理時間を速くできる。
ロックに飛び飛びに書き込まれたホストコンピュータか
らのライトデータを、1回のDMA転送で処理可能とな
り、ディスクサブシステムの処理時間を速くできる。
【0016】さらにまた、キャッシュセグメント内の飛
び飛びに書き込まれたダーティデータブロックをディス
クドライブに書き込む動作と、ディスクドライブから読
みだした少なくとも1つのデータブロックをキャッシュ
セグメント内の空きデータブロックに書き込む動作と
を、1回のDMA転送で処理可能となり、ディスクサブ
システムの処理時間をさらに速くできる。
び飛びに書き込まれたダーティデータブロックをディス
クドライブに書き込む動作と、ディスクドライブから読
みだした少なくとも1つのデータブロックをキャッシュ
セグメント内の空きデータブロックに書き込む動作と
を、1回のDMA転送で処理可能となり、ディスクサブ
システムの処理時間をさらに速くできる。
【0017】
【実施例】先ず、図1〜図8を用いて本発明によるデー
タ転送の第1実施例について説明する。
タ転送の第1実施例について説明する。
【0018】図1〜図5では、ディスクライト用ビット
マップを用いて、ディスクキャッシュメモリ内の1つの
キャッシュセグメント中に存在する複数の不連続なダー
ティデータブロックを1回のDMA転送でディスクドラ
イブに書き込む方法を説明している。また、図6〜図8
では、ディスクリード用ビットマップを用いて、ディス
クドライブ内の1つのディスクセグメント中に存在する
複数の不連続なデータブロックを1回のDMA転送でキ
ャッシュセグメントに書き込む方法を説明している。
マップを用いて、ディスクキャッシュメモリ内の1つの
キャッシュセグメント中に存在する複数の不連続なダー
ティデータブロックを1回のDMA転送でディスクドラ
イブに書き込む方法を説明している。また、図6〜図8
では、ディスクリード用ビットマップを用いて、ディス
クドライブ内の1つのディスクセグメント中に存在する
複数の不連続なデータブロックを1回のDMA転送でキ
ャッシュセグメントに書き込む方法を説明している。
【0019】図1は、本発明のデータ転送が適用された
ディスクキャッシュメモリ付きディスクサブシステムの
構成図である。
ディスクキャッシュメモリ付きディスクサブシステムの
構成図である。
【0020】図1において、ディスクサブシステムは、
ディスクドライブ140とメモリコントローラ180で
構成される。メモリコントローラ180は、マイクロプ
ロセッサ100、ディスクキャッシュメモリ130、デ
ィスクキャッシュメモリ130を制御するDMAC11
0およびディスクドライブ140を制御するHDC12
0を含んでいる。また、1および3は、それぞれマイク
ロプロセッサ100からDMAC110およびHDC1
20へ制御信号を伝えるバスである。2は、ディスクキ
ャッシュメモリ130とDMAC110との間で制御信
号およびデータ転送を行うバス、4は、HDC120と
ディスクドライブ140との間で制御信号の伝達および
データの転送を行うバスである。5は、DMAC110
とHDC120との間でデータ転送を行うバスである。
ディスクドライブ140とメモリコントローラ180で
構成される。メモリコントローラ180は、マイクロプ
ロセッサ100、ディスクキャッシュメモリ130、デ
ィスクキャッシュメモリ130を制御するDMAC11
0およびディスクドライブ140を制御するHDC12
0を含んでいる。また、1および3は、それぞれマイク
ロプロセッサ100からDMAC110およびHDC1
20へ制御信号を伝えるバスである。2は、ディスクキ
ャッシュメモリ130とDMAC110との間で制御信
号およびデータ転送を行うバス、4は、HDC120と
ディスクドライブ140との間で制御信号の伝達および
データの転送を行うバスである。5は、DMAC110
とHDC120との間でデータ転送を行うバスである。
【0021】ディスクコントローラ180は、図2に示
すようにコマンドやデータの転送を行うバス6を介して
ホストコンピュータ190に接続されている。
すようにコマンドやデータの転送を行うバス6を介して
ホストコンピュータ190に接続されている。
【0022】マイクロプロセッサ100は、本発明にな
るデータ転送処理の手順を記憶したマイクロプログラム
101とディスクライト用ビットマップ150とを有し
ている。また、ディスクキャッシュメモリ130は、代
表として131で示す複数のキャッシュセグメントで構
成されている。ディスクドライブ140内のデータは、
代表的に141で示す複数のディスクセグメントで管理
されている。
るデータ転送処理の手順を記憶したマイクロプログラム
101とディスクライト用ビットマップ150とを有し
ている。また、ディスクキャッシュメモリ130は、代
表として131で示す複数のキャッシュセグメントで構
成されている。ディスクドライブ140内のデータは、
代表的に141で示す複数のディスクセグメントで管理
されている。
【0023】図3には、キャッシュセグメント131、
およびディスクセグメント141の構成を示す。本実施
例では説明を簡単にするため、キャッシュセグメント1
31は、8つの連続したデータブロックc(1)−c
(8)で構成され、ディスクセグメント141は、8つ
の連続したデータブロックd(1)−d(8)で構成さ
れているとする。c(i)は、キャッシュセグメント1
31の第i番目のデータブロックであり、d(i)は、
ディスクセグメント141の第i番目のデータブロック
であることを意味する。ここで、1つのデータブロック
のサイズは、キャッシュセグメント131とディスクセ
グメント141とで同じSバイトとする。また、本実施
例では、Sバイトのデータブロックが、ディスクドライ
ブの1セクタ分のデータと一致するものとする。
およびディスクセグメント141の構成を示す。本実施
例では説明を簡単にするため、キャッシュセグメント1
31は、8つの連続したデータブロックc(1)−c
(8)で構成され、ディスクセグメント141は、8つ
の連続したデータブロックd(1)−d(8)で構成さ
れているとする。c(i)は、キャッシュセグメント1
31の第i番目のデータブロックであり、d(i)は、
ディスクセグメント141の第i番目のデータブロック
であることを意味する。ここで、1つのデータブロック
のサイズは、キャッシュセグメント131とディスクセ
グメント141とで同じSバイトとする。また、本実施
例では、Sバイトのデータブロックが、ディスクドライ
ブの1セクタ分のデータと一致するものとする。
【0024】キャッシュセグメント131は、ディスク
キャッシュメモリ130のアドレスxからx+8s−1
までの連続するデータブロックを格納している。ディス
クセグメント141は、ディスクドライブ140のデー
タブロックアドレスyからy+7までの連続するデータ
ブロックを格納している。
キャッシュメモリ130のアドレスxからx+8s−1
までの連続するデータブロックを格納している。ディス
クセグメント141は、ディスクドライブ140のデー
タブロックアドレスyからy+7までの連続するデータ
ブロックを格納している。
【0025】ここで、ホストコンピュータ190から、
ディスクドライブ140のディスクセグメント141内
のデータブロックd(4)に1データブロック分のデー
タを書き込むことを要求するデータライトコマンドが出
力されたとして、ディスクセグメント141に対応する
キャッシュセグメント131が、まだディスクキャッシ
ュメモリ130内に割り当てられていない場合、マイク
ロプログラム101は、ディスクキャッシュメモリ13
0内にキャッシュセグメント131を新たに確保して、
ディスクセグメント141用に割り当てる。キャッシュ
セグメント131が割り当てられた当初は、8つのデー
タブロックはすべて空きデータブロックである。ここ
で、マイクロプロセッサ100は、DMAC110を制
御して、ディスクキャッシュメモリ130内のキャッシ
ュセグメント131上のデータブロックc(4)に、ホ
ストコンピュータ190からバス6を経由して転送され
てくるデータを書き込む。
ディスクドライブ140のディスクセグメント141内
のデータブロックd(4)に1データブロック分のデー
タを書き込むことを要求するデータライトコマンドが出
力されたとして、ディスクセグメント141に対応する
キャッシュセグメント131が、まだディスクキャッシ
ュメモリ130内に割り当てられていない場合、マイク
ロプログラム101は、ディスクキャッシュメモリ13
0内にキャッシュセグメント131を新たに確保して、
ディスクセグメント141用に割り当てる。キャッシュ
セグメント131が割り当てられた当初は、8つのデー
タブロックはすべて空きデータブロックである。ここ
で、マイクロプロセッサ100は、DMAC110を制
御して、ディスクキャッシュメモリ130内のキャッシ
ュセグメント131上のデータブロックc(4)に、ホ
ストコンピュータ190からバス6を経由して転送され
てくるデータを書き込む。
【0026】この時点で、マイクロプログラム101
は、ホストコンピュータ190にデータライト完了を報
告する。このとき、データブロックc(4)に書き込ま
れたデータは、まだディスクセグメント141内のデー
タブロックd(4)には書き込まれていない。マイクロ
プロセッサ100は、データブロックc(4)上のデー
タを後の適当な時期にディスクドライブ140内のディ
スクセグメント141のデータブロックd(4)に書き
込む。したがって、この時点では、キャッシュセグメン
ト131内のデータブロックc(4)のデータとディス
クセグメント141内のデータブロックd(4)内のデ
ータとは異なっている。
は、ホストコンピュータ190にデータライト完了を報
告する。このとき、データブロックc(4)に書き込ま
れたデータは、まだディスクセグメント141内のデー
タブロックd(4)には書き込まれていない。マイクロ
プロセッサ100は、データブロックc(4)上のデー
タを後の適当な時期にディスクドライブ140内のディ
スクセグメント141のデータブロックd(4)に書き
込む。したがって、この時点では、キャッシュセグメン
ト131内のデータブロックc(4)のデータとディス
クセグメント141内のデータブロックd(4)内のデ
ータとは異なっている。
【0027】次に、ホストコンピュータ190から、デ
ィスクドライブ140のディスクセグメント141内の
データブロックd(6)に1データブロック分のデータ
を書き込むことを要求するデータライトコマンドが出力
されたとする。すると、マイクロプログラム101は、
同様にして、ホストコンピュータ190から受け取った
データをキャッシュセグメント131のデータブロック
c(6)に書き込む。ここでも、キャッシュセグメント
131のデータブロックc(6)上のデータとディスク
セグメント141のデータブロックd(6)上のデータ
とは一般的に異なっている。この時点で、キャッシュセ
グメント131の8つのデータブロックは、図3に示す
ように、データブロックc(1),c(2),c
(3),c(5),c(7)およびc(8)が空きデー
タブロックであり、データブロックc(4)およびc
(6)が、ダーティデータブロックとなっている。
ィスクドライブ140のディスクセグメント141内の
データブロックd(6)に1データブロック分のデータ
を書き込むことを要求するデータライトコマンドが出力
されたとする。すると、マイクロプログラム101は、
同様にして、ホストコンピュータ190から受け取った
データをキャッシュセグメント131のデータブロック
c(6)に書き込む。ここでも、キャッシュセグメント
131のデータブロックc(6)上のデータとディスク
セグメント141のデータブロックd(6)上のデータ
とは一般的に異なっている。この時点で、キャッシュセ
グメント131の8つのデータブロックは、図3に示す
ように、データブロックc(1),c(2),c
(3),c(5),c(7)およびc(8)が空きデー
タブロックであり、データブロックc(4)およびc
(6)が、ダーティデータブロックとなっている。
【0028】キャッシュセグメント131内の各データ
ブロックがダーティデータブロックか否かを示すディス
クライト用ビットマップ150が、キャッシュセグメン
ト毎の管理情報として、図1に示すようにディスクコン
トローラ180内のメモリ(図1には図示していない)
内に作成される。本実施例では、ディスクライト用ビッ
トマップ150は、8ビットで構成され、各ビットが関
連するキャッシュセグメント131の各データブロック
に対応している。図1に示す例では、ダーティデータブ
ロックc(4)およびc(6)に対応するディスクライ
ト用ビットマップ150のビット4とビット6とが
“1”で、残りのビットが“0”となっている。
ブロックがダーティデータブロックか否かを示すディス
クライト用ビットマップ150が、キャッシュセグメン
ト毎の管理情報として、図1に示すようにディスクコン
トローラ180内のメモリ(図1には図示していない)
内に作成される。本実施例では、ディスクライト用ビッ
トマップ150は、8ビットで構成され、各ビットが関
連するキャッシュセグメント131の各データブロック
に対応している。図1に示す例では、ダーティデータブ
ロックc(4)およびc(6)に対応するディスクライ
ト用ビットマップ150のビット4とビット6とが
“1”で、残りのビットが“0”となっている。
【0029】ディスクキャッシュメモリ130からディ
スクドライブ140へのキャッシュセグメント131の
データ転送は、図4に示すフローチャートにしたがって
マイクロプログラム101が行う。ステップ301にお
いて、マイクロプログラム101は、HDC120にデ
ィスクドライブ140内のデータ書き込みすべきディス
クゼクメント141の先頭アドレスおよび転送データ長
を指定する。ステップ302で、マイクロプログラム1
01は、HDC120に書き込むべきダーティデータブ
ロックのセクタ番号、セクタ数およびディスクライト用
ビットマップ150の値を指定する。ステップ303
で、マイクロプログラム101は、DMAC110にデ
ータ転送を指示する。ステップ304で、DMAC11
0は、ディスクキャッシュメモリ130からキャッシュ
セグメント131のデータをリードする。ステップ30
5で、HDC120は、DMAC110からのデータを
ディスクドライブ140に書き込む。
スクドライブ140へのキャッシュセグメント131の
データ転送は、図4に示すフローチャートにしたがって
マイクロプログラム101が行う。ステップ301にお
いて、マイクロプログラム101は、HDC120にデ
ィスクドライブ140内のデータ書き込みすべきディス
クゼクメント141の先頭アドレスおよび転送データ長
を指定する。ステップ302で、マイクロプログラム1
01は、HDC120に書き込むべきダーティデータブ
ロックのセクタ番号、セクタ数およびディスクライト用
ビットマップ150の値を指定する。ステップ303
で、マイクロプログラム101は、DMAC110にデ
ータ転送を指示する。ステップ304で、DMAC11
0は、ディスクキャッシュメモリ130からキャッシュ
セグメント131のデータをリードする。ステップ30
5で、HDC120は、DMAC110からのデータを
ディスクドライブ140に書き込む。
【0030】ディスクキャッシュメモリ130からディ
スクドライブ140へのHDC120によるキャッシュ
セグメント131の転送時には、図5に示すフローチャ
ートにしたがって、マイクロプログラム101は、ディ
スクライト用ビットマップ150に基づいて、データ転
送を行なうかどうかを判定する。
スクドライブ140へのHDC120によるキャッシュ
セグメント131の転送時には、図5に示すフローチャ
ートにしたがって、マイクロプログラム101は、ディ
スクライト用ビットマップ150に基づいて、データ転
送を行なうかどうかを判定する。
【0031】先ずステップ401で、何番目のデータブ
ロックを処理中かを示す値iに初期値1を設定する。
ロックを処理中かを示す値iに初期値1を設定する。
【0032】ステップ402では、i=8かどうかを判
定し、i>8であれば処理を終了する。iが8以下であ
れば、ステップ403に進み、ディスクライト用ビット
マップ150の第i番目のビット値が“1”か“0”か
をチェックする。ビット値が“1”であれば、ステップ
404に進み、DMAC110から送られてきた第i番
目のデータブロックC(i)のデータをセクタ番号y+
(i−1)のセクタ、すなわち、d(i)に書き込み、
ステップ405に進む。ステップ405では、iの値を
“1”だけインクリメントし、ステップ402へジャン
プする。ステップ403で、ビット値が“0”であれ
ば、ステップ406へ進み、第i番目のデータブロック
の書き込みを止め、それに対応するセクタを通過させ、
次のセクタがくるのを待つ。
定し、i>8であれば処理を終了する。iが8以下であ
れば、ステップ403に進み、ディスクライト用ビット
マップ150の第i番目のビット値が“1”か“0”か
をチェックする。ビット値が“1”であれば、ステップ
404に進み、DMAC110から送られてきた第i番
目のデータブロックC(i)のデータをセクタ番号y+
(i−1)のセクタ、すなわち、d(i)に書き込み、
ステップ405に進む。ステップ405では、iの値を
“1”だけインクリメントし、ステップ402へジャン
プする。ステップ403で、ビット値が“0”であれ
ば、ステップ406へ進み、第i番目のデータブロック
の書き込みを止め、それに対応するセクタを通過させ、
次のセクタがくるのを待つ。
【0033】以上の処理で、図1から明らかなように、
本実施例では、DMAC110は、ホストコンピュータ
190がライト要求するデータのすべてをディスクキャ
ッシュメモリ130から読みだし、HDC120へ伝え
る。HDC120は、ディスクライト用ビットマップ1
50のビット値にしたがってDMAC110からのデー
タからダーティデータブロックのみを選択し、それをデ
ィスクドライブ140のディスクセグメント141の対
応するデータブロック、すなわち、セクタに書き込む。
なお、HDC120は、ディスクドライブ140のリー
ド/ライトヘッド(図示していない)が検出したセクタ
パルスにより、現在のセクタを知ることができる。
本実施例では、DMAC110は、ホストコンピュータ
190がライト要求するデータのすべてをディスクキャ
ッシュメモリ130から読みだし、HDC120へ伝え
る。HDC120は、ディスクライト用ビットマップ1
50のビット値にしたがってDMAC110からのデー
タからダーティデータブロックのみを選択し、それをデ
ィスクドライブ140のディスクセグメント141の対
応するデータブロック、すなわち、セクタに書き込む。
なお、HDC120は、ディスクドライブ140のリー
ド/ライトヘッド(図示していない)が検出したセクタ
パルスにより、現在のセクタを知ることができる。
【0034】次に、ディスクドライブ140からディス
クキャッシュメモリ130へのデイスクセグメント14
1のデータ転送は、図6に示めすフローチヤートにした
がってマイクロプログラム101が行う。
クキャッシュメモリ130へのデイスクセグメント14
1のデータ転送は、図6に示めすフローチヤートにした
がってマイクロプログラム101が行う。
【0035】いま、ホストコンピュータ190からキャ
ッシュセグメント131のデータブロックc(3)から
c(7)までの対応するデータをディスクドライブから
読み出すことを要求するデータリードコマンドが出力さ
れたとする。この場合、キャッシュセグメント131の
データブロックc(4)およびc(6)は、ダーティデ
ータブロックであるので、ディスクドライブ140から
キャッュセグメント131へのデータは、キャッシユセ
グメント131のこれらダーティデータブロックを避け
て、空きデータブロックc(3)、c(5)およびc
(7)へのみ転送されなければならない。
ッシュセグメント131のデータブロックc(3)から
c(7)までの対応するデータをディスクドライブから
読み出すことを要求するデータリードコマンドが出力さ
れたとする。この場合、キャッシュセグメント131の
データブロックc(4)およびc(6)は、ダーティデ
ータブロックであるので、ディスクドライブ140から
キャッュセグメント131へのデータは、キャッシユセ
グメント131のこれらダーティデータブロックを避け
て、空きデータブロックc(3)、c(5)およびc
(7)へのみ転送されなければならない。
【0036】図6において、ステップ501で、マイク
ロプログラム101は、DMAC110にキャッシュセ
グメント131中の対象領域の先頭アドレス×+2s、
転送バイト数5sバイト、ディスクリード用ビットマッ
プの内容“00101010”を指定する。次に、ステ
ップ502で、HDC120にディスクセグメント14
1中の対象領域の先頭セクタ番号y+2及びセクタ数5
を指定する。ステップ503で、DMAC110とHD
C120それぞれにHDC120からDMAC110へ
のデータ転送を指定する。ステップ504で、HDC1
20はディスクドライブ140のディスクセグメント1
41中のセクタy+2から5セクタ分連続してデータを
読み出して、バス5を介してDMAC110に転送す
る。ステップ505で、DMAC110はHDC120
より受け取ったデータから、ディスクリード用ビットマ
ップ151のビット値が“1”であるデータブロックの
みキャッシュセグメント131に書き込み、ビット値が
“0”であるデータブロックは書き込みを行わないよう
制御する。すなわち、データブロック(セクタ)d
(4)およびd(6)のデータはそのまま捨て、データ
ブロックd(3)、d(5)およびd(7)のデータ
は、それぞれキャッシュセグルメント131のデータブ
ロックc(3)、c(5)およびc(7)に書き込む。
ロプログラム101は、DMAC110にキャッシュセ
グメント131中の対象領域の先頭アドレス×+2s、
転送バイト数5sバイト、ディスクリード用ビットマッ
プの内容“00101010”を指定する。次に、ステ
ップ502で、HDC120にディスクセグメント14
1中の対象領域の先頭セクタ番号y+2及びセクタ数5
を指定する。ステップ503で、DMAC110とHD
C120それぞれにHDC120からDMAC110へ
のデータ転送を指定する。ステップ504で、HDC1
20はディスクドライブ140のディスクセグメント1
41中のセクタy+2から5セクタ分連続してデータを
読み出して、バス5を介してDMAC110に転送す
る。ステップ505で、DMAC110はHDC120
より受け取ったデータから、ディスクリード用ビットマ
ップ151のビット値が“1”であるデータブロックの
みキャッシュセグメント131に書き込み、ビット値が
“0”であるデータブロックは書き込みを行わないよう
制御する。すなわち、データブロック(セクタ)d
(4)およびd(6)のデータはそのまま捨て、データ
ブロックd(3)、d(5)およびd(7)のデータ
は、それぞれキャッシュセグルメント131のデータブ
ロックc(3)、c(5)およびc(7)に書き込む。
【0037】図6に示すフローチャートにおけるデータ
の流れを図7に示す。図7から明らかなように、本実施
例では、HDC120は、ホストコンピュータ190が
リード要求するデータのすべてをディスクドライブ14
0から読みだし、DMAC110へ送る。DMAC11
0は、ディスクリード用ビットマップ151のビット値
にしたがってHDC120からのデータから空きデータ
ブロックのみを選択してディスクキャッシャメモリー1
30へ書き込む。
の流れを図7に示す。図7から明らかなように、本実施
例では、HDC120は、ホストコンピュータ190が
リード要求するデータのすべてをディスクドライブ14
0から読みだし、DMAC110へ送る。DMAC11
0は、ディスクリード用ビットマップ151のビット値
にしたがってHDC120からのデータから空きデータ
ブロックのみを選択してディスクキャッシャメモリー1
30へ書き込む。
【0038】DMAC110は、図8に示すような処理
を行う。先ず、ステップ701で、iに値“1”を代入
する。次にステップ702に進み、iが処理すべきデー
タブロック数“5”を越えたかどうかを判定する。iが
“5”を越えていれば、終了する。iが“5”以下であ
れば、ステップ703へ進み、ディスクリード用ビット
マップ151の第iビットが、“1”か“0”かをチェ
ックする。ビット値が“1”であれば、ステップ704
へ進み、HDC120から送られてきたセクタ番号y+
(i+1)のセクタ、すなわち、データブロックd(i
+2)のデータを、ディスクキャッシュメモリ130の
先頭アドレスx+(i+1)sからsバイトのデータ、
すなわち、キャッシュセグメント131のデータブロッ
クc(i+2)にライトし、ステップ705へ進む。ス
テップ703で、ビット値が“0”であれば、ステップ
706へ進む。ステップ706では、HDC120から
送られてきたセクタ番号y+(i+1)のセクタ、すな
わち、データブロックd(i+2)のデータを、ディス
クキャッシュメモリ130の先頭アドレスx+(i+
1)sからsバイトのデータ、すなわち、キャッシュセ
グメント131のデータブロックc(i+2)にライト
するのを止め、ステップ705へ進む。ステップ705
では、iの値を“1”だけインクリメントし、ステツプ
702へジャンプする。ここで、iのインクリメント
は、1セクタ分のデータ転送を終える毎に行う。DMA
C110は、1セクタ分のデータ転送の完了を、自身が
処理したデータのバイト数をカウントすることによって
知ることができる。
を行う。先ず、ステップ701で、iに値“1”を代入
する。次にステップ702に進み、iが処理すべきデー
タブロック数“5”を越えたかどうかを判定する。iが
“5”を越えていれば、終了する。iが“5”以下であ
れば、ステップ703へ進み、ディスクリード用ビット
マップ151の第iビットが、“1”か“0”かをチェ
ックする。ビット値が“1”であれば、ステップ704
へ進み、HDC120から送られてきたセクタ番号y+
(i+1)のセクタ、すなわち、データブロックd(i
+2)のデータを、ディスクキャッシュメモリ130の
先頭アドレスx+(i+1)sからsバイトのデータ、
すなわち、キャッシュセグメント131のデータブロッ
クc(i+2)にライトし、ステップ705へ進む。ス
テップ703で、ビット値が“0”であれば、ステップ
706へ進む。ステップ706では、HDC120から
送られてきたセクタ番号y+(i+1)のセクタ、すな
わち、データブロックd(i+2)のデータを、ディス
クキャッシュメモリ130の先頭アドレスx+(i+
1)sからsバイトのデータ、すなわち、キャッシュセ
グメント131のデータブロックc(i+2)にライト
するのを止め、ステップ705へ進む。ステップ705
では、iの値を“1”だけインクリメントし、ステツプ
702へジャンプする。ここで、iのインクリメント
は、1セクタ分のデータ転送を終える毎に行う。DMA
C110は、1セクタ分のデータ転送の完了を、自身が
処理したデータのバイト数をカウントすることによって
知ることができる。
【0039】以上述べた方法によって、キャッシユセグ
メント131上の不連続なデータ領域と、対応するディ
スクセグメント141上の不連続なデータ領域との間の
データ転送が、1回のDMA転送によって実現可能とな
る。本実施例では、ディスクキャッシュメモリ130へ
データをライトする場合には、DMAC110により、
ディスクドライブ140へデータをライトする場合に
は、HDC120により、それぞれのビットマップを用
いてデータを書き込むか否かの制御を行っている。
メント131上の不連続なデータ領域と、対応するディ
スクセグメント141上の不連続なデータ領域との間の
データ転送が、1回のDMA転送によって実現可能とな
る。本実施例では、ディスクキャッシュメモリ130へ
データをライトする場合には、DMAC110により、
ディスクドライブ140へデータをライトする場合に
は、HDC120により、それぞれのビットマップを用
いてデータを書き込むか否かの制御を行っている。
【0040】いままで説明した本実施例におけるディス
クコントローラ180の具体的構成例を図9に示す。
クコントローラ180の具体的構成例を図9に示す。
【0041】図9において、190はホストコンピュー
タ、180はディスクコントローラ、140はディスク
ドライブ、6はホストンピュータ190とディスクコン
トローラ180をつなぐバス、4はディスクコントロー
ラ180とディスクドライブ140をつなぐバス、10
0はMPU(マイクロプロセッサ)、102はディスク
ライト用ビットマップおよびディスクリード用ビットマ
ップを格納するメモリ、130はディスクキャッシュメ
モリ、110はDMAC、120はHDCである。18
2は、ホストコンピュータ190からのバス6が接続さ
れるホストインターフェースである。
タ、180はディスクコントローラ、140はディスク
ドライブ、6はホストンピュータ190とディスクコン
トローラ180をつなぐバス、4はディスクコントロー
ラ180とディスクドライブ140をつなぐバス、10
0はMPU(マイクロプロセッサ)、102はディスク
ライト用ビットマップおよびディスクリード用ビットマ
ップを格納するメモリ、130はディスクキャッシュメ
モリ、110はDMAC、120はHDCである。18
2は、ホストコンピュータ190からのバス6が接続さ
れるホストインターフェースである。
【0042】図10は、ディスクコントローラ180内
のHDC120の機能ブロック図である。
のHDC120の機能ブロック図である。
【0043】図10において、120はHDC、210
1はビットマップライト制御ブロック、2102はディ
スク制御部、2103はインタフェース制御部、210
4はビットマップデータを伝えるデータ線、2105は
セクタパルスを伝える信号線、2106はディスク制御
部がビットマップライト制御部に伝えるライトゲート信
号を伝える信号線、2107はHDCからディスクドラ
イブへのライトゲート信号を伝える信号線である。図1
1には、HDC120がビットマップディスクライトを
行うときの、タイミングチャートを示す。
1はビットマップライト制御ブロック、2102はディ
スク制御部、2103はインタフェース制御部、210
4はビットマップデータを伝えるデータ線、2105は
セクタパルスを伝える信号線、2106はディスク制御
部がビットマップライト制御部に伝えるライトゲート信
号を伝える信号線、2107はHDCからディスクドラ
イブへのライトゲート信号を伝える信号線である。図1
1には、HDC120がビットマップディスクライトを
行うときの、タイミングチャートを示す。
【0044】さらに、図12には、HDC120内のビ
ットマップディスクライト制御ブロックの回路図を示
す。図12中、2101はビットマップライト制御ブロ
ック、2301はセクタパルスを入力として、セクタ数
をカウントするセクタカウンタ、2302は、ビットマ
ップデータを保持するレジスタ、2303はセクタカウ
ンタ値の示すセクタに対応する、ビットマップデータ中
のビット値を選択して出力するマルチプレクサ、230
4はマルチプレクサの出力値と入力したライトゲート値
から、出力ライトゲート値を生成するゲートである。
ットマップディスクライト制御ブロックの回路図を示
す。図12中、2101はビットマップライト制御ブロ
ック、2301はセクタパルスを入力として、セクタ数
をカウントするセクタカウンタ、2302は、ビットマ
ップデータを保持するレジスタ、2303はセクタカウ
ンタ値の示すセクタに対応する、ビットマップデータ中
のビット値を選択して出力するマルチプレクサ、230
4はマルチプレクサの出力値と入力したライトゲート値
から、出力ライトゲート値を生成するゲートである。
【0045】図13は、ディスクコントローラ180内
のDMAC110の機能ブロック図である。
のDMAC110の機能ブロック図である。
【0046】図13において、2401はビットマップ
ディスクリード制御ブロック、2402はビットマップ
データを伝送するデータ線、2403はデータライトス
トローブ信号を伝送する信号線、2404はライト可否
信号を伝送する信号線、2405はメモリ制御回路、2
406はRAS信号、2407はCAS信号、2408
はアドレスレジスタ、2409は不ドレスデコーダ、2
410はDMAアドレス発生回路、2411は転送カウ
ンタ、2412および2413はマルチプレクサ、24
14はDMA転送制御ブロック、2415はアービタ回
路、2416はECC生成回路、2417はECCチェ
ック回路、2418はマルチプレクサ、2419は、H
DC120やホストインタフェース制御部182と、デ
ータ転送の同期制御等を行うための信号線である。図1
4にDMAC110がビットマップディスクリードを行
うときの、タイミングチャートを示す。
ディスクリード制御ブロック、2402はビットマップ
データを伝送するデータ線、2403はデータライトス
トローブ信号を伝送する信号線、2404はライト可否
信号を伝送する信号線、2405はメモリ制御回路、2
406はRAS信号、2407はCAS信号、2408
はアドレスレジスタ、2409は不ドレスデコーダ、2
410はDMAアドレス発生回路、2411は転送カウ
ンタ、2412および2413はマルチプレクサ、24
14はDMA転送制御ブロック、2415はアービタ回
路、2416はECC生成回路、2417はECCチェ
ック回路、2418はマルチプレクサ、2419は、H
DC120やホストインタフェース制御部182と、デ
ータ転送の同期制御等を行うための信号線である。図1
4にDMAC110がビットマップディスクリードを行
うときの、タイミングチャートを示す。
【0047】さらに、図15には、DMAC110内の
ビットマップディスクリード制御ブロックの回路図を示
す。図15中、2401はビットマップディスクリード
制御ブロック、2601はバイトカウンタ、2602は
ブロックカウンタ、2603はビットマップデータを保
持するレジスタ、2604はブロックカウンタ値の示す
ビット値をビットマップデータから選択するマルチプレ
クサ、2605は信号線、2606及び2607はデー
タ線である。
ビットマップディスクリード制御ブロックの回路図を示
す。図15中、2401はビットマップディスクリード
制御ブロック、2601はバイトカウンタ、2602は
ブロックカウンタ、2603はビットマップデータを保
持するレジスタ、2604はブロックカウンタ値の示す
ビット値をビットマップデータから選択するマルチプレ
クサ、2605は信号線、2606及び2607はデー
タ線である。
【0048】次に、図9乃至図15を用いてHDC12
0のビットマップディスクライト制御、及び、DMAC
110のビットマップディスクリード制御の動作につい
て説明する。
0のビットマップディスクライト制御、及び、DMAC
110のビットマップディスクリード制御の動作につい
て説明する。
【0049】図10において、HDC120内のビット
マップライト制御ブロック2101は、ディスク制御ブ
ロック2102から、ビットマップライト制御に使用す
るビットマップデータをデータ線2104を通じて受け
取る。また、セクタパルスを信号2105を通じ、ライ
トゲート信号を信号線2106を通じて受け取る。ビッ
トマップディスクライト制御ブロック2101は、ビッ
トマップデータをレジスタ2302に保持する。また、
内部のセクタカウンタ2301で、信号線2105より
受け取ったセクタパルスを用いて、処理中のセクタが、
ビットマップに対応する連続したセクタ群の中の何番目
かという通算セクタ数をカウントする。これは、新たな
ビットマップディスクライトを行おうとするとき、セク
タカウンタを0にセットし、以降セクタパル2を入力す
る度に、セクタカウンタ値を1ずつインクリメントして
ゆけばよい。
マップライト制御ブロック2101は、ディスク制御ブ
ロック2102から、ビットマップライト制御に使用す
るビットマップデータをデータ線2104を通じて受け
取る。また、セクタパルスを信号2105を通じ、ライ
トゲート信号を信号線2106を通じて受け取る。ビッ
トマップディスクライト制御ブロック2101は、ビッ
トマップデータをレジスタ2302に保持する。また、
内部のセクタカウンタ2301で、信号線2105より
受け取ったセクタパルスを用いて、処理中のセクタが、
ビットマップに対応する連続したセクタ群の中の何番目
かという通算セクタ数をカウントする。これは、新たな
ビットマップディスクライトを行おうとするとき、セク
タカウンタを0にセットし、以降セクタパル2を入力す
る度に、セクタカウンタ値を1ずつインクリメントして
ゆけばよい。
【0050】マルチプレクサ2303は、セクタカウン
タ値と、ビットマップデータを入力とし、セクタカウン
タ値が示すセクタに対応するビット値、即ち、セクタカ
ウント値をiとすると、ビットマップデータ中の第i番
目のビット値を選択して出力する。ゲート2304は、
信号線2106から受け取ったライトゲート信号を、マ
ルチプレクサ2303の出力値aが、ライト可を示すと
きには、そのまま信号線2107へ出力し、aがライト
不可を示すときには、信号線2106から受け取ったラ
イトゲート信号の値に係わりなく、ライト不可を、信号
線2107へ出力する。ディスクライト用ビットマップ
のビット値とライトゲート信号との関係を図11に示
す。
タ値と、ビットマップデータを入力とし、セクタカウン
タ値が示すセクタに対応するビット値、即ち、セクタカ
ウント値をiとすると、ビットマップデータ中の第i番
目のビット値を選択して出力する。ゲート2304は、
信号線2106から受け取ったライトゲート信号を、マ
ルチプレクサ2303の出力値aが、ライト可を示すと
きには、そのまま信号線2107へ出力し、aがライト
不可を示すときには、信号線2106から受け取ったラ
イトゲート信号の値に係わりなく、ライト不可を、信号
線2107へ出力する。ディスクライト用ビットマップ
のビット値とライトゲート信号との関係を図11に示
す。
【0051】次に、DMAC110のビットマップディ
スクリード制御機能を説明する。
スクリード制御機能を説明する。
【0052】DMAC110内のビットマップディスク
リード制御ブロック2401は、データ線2402より
ビットマップデータを、信号線2403よりデータライ
トストローブ信号を受け取り、信号線2404へディス
クキャッシャメモリに対するライト可否信号を出力す
る。
リード制御ブロック2401は、データ線2402より
ビットマップデータを、信号線2403よりデータライ
トストローブ信号を受け取り、信号線2404へディス
クキャッシャメモリに対するライト可否信号を出力す
る。
【0053】ビットマップディスクリード制御ブロック
2401は、データ線2402より受け取ったビットマ
ップデータを、内部のレジスタ2603に保持する。ま
た、内部のバイトカウンタ2601により、処理中のデ
ータブロック内の転送を完了したデータバイト数をカウ
ントし、ブロックカウンタ2602により、データブロ
ック群中の処理中のデータブロックを管理する。バイト
カウンタ2601は、信号線2403からデータライト
ストローブ信号を受け取ると、カウンタ値をインクリメ
ントする。データライトストローブ信号は、ディスクキ
ヤッシュメモリ130に対する所定バイト数の書き込み
の度に発生する。バイトカウンタ2601内のカウンタ
値は、1データブロック分のバイト数をカウントする
と、信号線2605を通じて、ブロックカウンタ260
2に信号を送る。ブロックカウンタ2602は、バイト
カウンタから信号を受け取ると、ブロックカウンタ値を
1だけインクリメントする。ブロックカウンタ2602
内のカウンタ値jは、現在処理中のデータブロックが、
ビットマップディスクリード制御対象のデータブロック
群の中の第j番目のブロックであることを示す。マルチ
プレクサ2604は、ブロックカウンタ2602からブ
ロックカウンタ値を、レジスタ2603からビットマッ
プデータを受け取り、ライト可否信号を出力する。ブロ
ックカウンタ値がjのときマルチプレクサ2604は、
ビットマップデータ中の第j番目のビット値を、選択し
て、信号線2404へライト可否信号として出力する。
2401は、データ線2402より受け取ったビットマ
ップデータを、内部のレジスタ2603に保持する。ま
た、内部のバイトカウンタ2601により、処理中のデ
ータブロック内の転送を完了したデータバイト数をカウ
ントし、ブロックカウンタ2602により、データブロ
ック群中の処理中のデータブロックを管理する。バイト
カウンタ2601は、信号線2403からデータライト
ストローブ信号を受け取ると、カウンタ値をインクリメ
ントする。データライトストローブ信号は、ディスクキ
ヤッシュメモリ130に対する所定バイト数の書き込み
の度に発生する。バイトカウンタ2601内のカウンタ
値は、1データブロック分のバイト数をカウントする
と、信号線2605を通じて、ブロックカウンタ260
2に信号を送る。ブロックカウンタ2602は、バイト
カウンタから信号を受け取ると、ブロックカウンタ値を
1だけインクリメントする。ブロックカウンタ2602
内のカウンタ値jは、現在処理中のデータブロックが、
ビットマップディスクリード制御対象のデータブロック
群の中の第j番目のブロックであることを示す。マルチ
プレクサ2604は、ブロックカウンタ2602からブ
ロックカウンタ値を、レジスタ2603からビットマッ
プデータを受け取り、ライト可否信号を出力する。ブロ
ックカウンタ値がjのときマルチプレクサ2604は、
ビットマップデータ中の第j番目のビット値を、選択し
て、信号線2404へライト可否信号として出力する。
【0054】ライト可否信号は、メモリ制御回路240
5を通じて、ディスクキャッシュメモリ130への書き
込み可否を制御するRAS信号、CAS信号等として、
ディスクキャッシユメモリ130へ出力される。ディス
クリード用ビットマップのビット値とRAS信号との関
係を図14に示す。
5を通じて、ディスクキャッシュメモリ130への書き
込み可否を制御するRAS信号、CAS信号等として、
ディスクキャッシユメモリ130へ出力される。ディス
クリード用ビットマップのビット値とRAS信号との関
係を図14に示す。
【0055】以上に説明した構成のDMAC110、H
DC120を使用することにより、ディスクキャッシュ
メモリ130上に不連続な形で存在するダーティデータ
ブロックのディスクドライブへの書き込みや、ディスク
キャッシュメモリ上に不連続な形で存在する空きデータ
ブロックへのディスクドライブからのデータの読み込み
を、それぞれ1回のDMA転送で行うことが可能とな
り、ディスクコントローラ180のマイクロプログラム
101の処理をシンプルにすることができる。
DC120を使用することにより、ディスクキャッシュ
メモリ130上に不連続な形で存在するダーティデータ
ブロックのディスクドライブへの書き込みや、ディスク
キャッシュメモリ上に不連続な形で存在する空きデータ
ブロックへのディスクドライブからのデータの読み込み
を、それぞれ1回のDMA転送で行うことが可能とな
り、ディスクコントローラ180のマイクロプログラム
101の処理をシンプルにすることができる。
【0056】また、上述のDMAC−HDCのペア組合
せとペアとして2系統、ディスクコントローラ内に持つ
ことにより、キャッシュメモリ上の連続領域上に、ダー
ティデータブロックと空きデータブロックが不連続な形
で存在するときに、ダーティデータブロック上のデータ
のディスクへのライトと、空きデータブロックへのディ
スク上のデータの読み込みを、同一のディスク回転内
で、ブロック毎にリードライトを切り替えることによ
り、同時に行うことが可能である。
せとペアとして2系統、ディスクコントローラ内に持つ
ことにより、キャッシュメモリ上の連続領域上に、ダー
ティデータブロックと空きデータブロックが不連続な形
で存在するときに、ダーティデータブロック上のデータ
のディスクへのライトと、空きデータブロックへのディ
スク上のデータの読み込みを、同一のディスク回転内
で、ブロック毎にリードライトを切り替えることによ
り、同時に行うことが可能である。
【0057】次に、本発明をキャッシュ付きディスクコ
ントローラ180に適用した第2の実施例を、図16乃
至図19を用いて説明する。第1の実施例では、不連続
なブロックのデータを転送する際に、データを読み出す
際には不連続なブロックを含む連続領域のデータ全体を
読みだし、ディスクドライブまたはディスクキャッシュ
メモリに書き込む際にそれぞれビットマップに従って、
データを書き込むか否かの制御を行っていたのに対し、
本実施例では、データを読み出す際にもビットマップに
従って、ディスクドライブまたはディスクキャッシュメ
モリに書き込みを行うべきデータブロックのみを選択し
て読み出すようにしている。
ントローラ180に適用した第2の実施例を、図16乃
至図19を用いて説明する。第1の実施例では、不連続
なブロックのデータを転送する際に、データを読み出す
際には不連続なブロックを含む連続領域のデータ全体を
読みだし、ディスクドライブまたはディスクキャッシュ
メモリに書き込む際にそれぞれビットマップに従って、
データを書き込むか否かの制御を行っていたのに対し、
本実施例では、データを読み出す際にもビットマップに
従って、ディスクドライブまたはディスクキャッシュメ
モリに書き込みを行うべきデータブロックのみを選択し
て読み出すようにしている。
【0058】以下、キャッシユセグメント131上の不
連続なダーティブロックのデータをディスクドライブに
ライトすることを1回のDMA転送で行う場合について
説明する。
連続なダーティブロックのデータをディスクドライブに
ライトすることを1回のDMA転送で行う場合について
説明する。
【0059】図16は、本発明を実施したキャッシユ付
きディスクサブシステムの構成と、データ転送時の動作
を示す図である。図17は、データ転送の手順を示す図
である。図18は、データ転送時のDMAC110の処
理を示すフローチャートである。図19は、データ転送
時のHDC120の処理を示すフローチャートである。
図16中、100はマイクロプロセッサ、110はキャ
ッシュメモリを制御するDMAC、120はディスクド
ライブを制御するHDC、130はキャッシュメモリ、
140はディスクドライブ、1と3は制御信号等を伝え
るバス、101はマイクロプログラム、150はディス
クライト用ビットマップ、131はディスクキャッシュ
セグメント、141はディスクセグメントである。
きディスクサブシステムの構成と、データ転送時の動作
を示す図である。図17は、データ転送の手順を示す図
である。図18は、データ転送時のDMAC110の処
理を示すフローチャートである。図19は、データ転送
時のHDC120の処理を示すフローチャートである。
図16中、100はマイクロプロセッサ、110はキャ
ッシュメモリを制御するDMAC、120はディスクド
ライブを制御するHDC、130はキャッシュメモリ、
140はディスクドライブ、1と3は制御信号等を伝え
るバス、101はマイクロプログラム、150はディス
クライト用ビットマップ、131はディスクキャッシュ
セグメント、141はディスクセグメントである。
【0060】本実施例ではディスクキャッシュメモリ1
30の管理単位であるキャッシュセグメント131の大
きさは、説明の便宜上8セクタとする。もちろん本発明
はキャッシュセグメント131の大きさが8セクタ以外
の場合でも有効であることは言までもない。本実施例で
は、キャッュセグメント131がディスクドライブ14
0内のディスクセグメント141に対して割当てられて
いて、キャッシュセグメント131上の4番目と6番目
のブロックのデータを、ディスク上の対応するセクタに
書き込む処理を行う例について述べる。ディスクライト
用ビットマップ150の内容“00010100”は、
ビット値が“0”であるディスクキャッシュメモリ13
0上のデータブロック、即ち1、2、3、5、7、8番
目の計6個のデータブロックについては、当該データブ
ロック上のデータのディスクドライへのライトを行わ
ず、ビット値が“1”であるディスクキャッシュメモリ
上のデータブロック、即ち4番目と6番目のデータブロ
ックについては、ダーティデータブロックであり、当該
データブロックのデータをディスクドライブ上の対応す
るセクタにライトするための、制御情報である。
30の管理単位であるキャッシュセグメント131の大
きさは、説明の便宜上8セクタとする。もちろん本発明
はキャッシュセグメント131の大きさが8セクタ以外
の場合でも有効であることは言までもない。本実施例で
は、キャッュセグメント131がディスクドライブ14
0内のディスクセグメント141に対して割当てられて
いて、キャッシュセグメント131上の4番目と6番目
のブロックのデータを、ディスク上の対応するセクタに
書き込む処理を行う例について述べる。ディスクライト
用ビットマップ150の内容“00010100”は、
ビット値が“0”であるディスクキャッシュメモリ13
0上のデータブロック、即ち1、2、3、5、7、8番
目の計6個のデータブロックについては、当該データブ
ロック上のデータのディスクドライへのライトを行わ
ず、ビット値が“1”であるディスクキャッシュメモリ
上のデータブロック、即ち4番目と6番目のデータブロ
ックについては、ダーティデータブロックであり、当該
データブロックのデータをディスクドライブ上の対応す
るセクタにライトするための、制御情報である。
【0061】データ転送時に、マイクロプロセッサ10
0は、まずDMAC110にバス1を通じて、データ転
送の対象領域であるキャッシュセグメント131の先頭
アドレスxと領域長8sとビットマップ150の内容
“00010100”を指定する(図17のステップ9
01)。次にマイクロプロセッサ100は、HDC12
0にバス3を通じて、データ転送の対象領域であるディ
スクセグメント141の先頭のセクタのセクタ番号yと
セクタ数8とビットマップ150の内容“000101
00”を指定する(ステップ902)。次にマイクロプ
ロセッサ100は、バス1とバス3を通じて、DMAC
1110とHDC120にディスクキャッシュメモリか
らディスクドライブへ、データ転送の開始を指示する
(ステップ903)。その後、DMA転送でデータ転送
が行なわれる(ステップ904)。
0は、まずDMAC110にバス1を通じて、データ転
送の対象領域であるキャッシュセグメント131の先頭
アドレスxと領域長8sとビットマップ150の内容
“00010100”を指定する(図17のステップ9
01)。次にマイクロプロセッサ100は、HDC12
0にバス3を通じて、データ転送の対象領域であるディ
スクセグメント141の先頭のセクタのセクタ番号yと
セクタ数8とビットマップ150の内容“000101
00”を指定する(ステップ902)。次にマイクロプ
ロセッサ100は、バス1とバス3を通じて、DMAC
1110とHDC120にディスクキャッシュメモリか
らディスクドライブへ、データ転送の開始を指示する
(ステップ903)。その後、DMA転送でデータ転送
が行なわれる(ステップ904)。
【0062】DMAC110は、図18に示すフローチ
ャートに従って以下のように動作する。まずステップ1
001で内部変数iに“1”を代入する。iは何番目の
ブロックを処理中かを示す内部変数である。次にステッ
プ1002に進み、iが対象領域内のブロック数8を越
えたかどうか判定する。i>8であれば、処理を終了す
る。i≦8であれば、ステッブ1003に進む。
ャートに従って以下のように動作する。まずステップ1
001で内部変数iに“1”を代入する。iは何番目の
ブロックを処理中かを示す内部変数である。次にステッ
プ1002に進み、iが対象領域内のブロック数8を越
えたかどうか判定する。i>8であれば、処理を終了す
る。i≦8であれば、ステッブ1003に進む。
【0063】ステップ1003で、ビットマップの第i
ビットの値が1か否か判定する。値が“1”であれば、
ステップ1004へ進み、ディスクキャッシュメモリ上
のアドレスx+(i−1)sからsバイトのブロックの
データを読み出して、HDC120へ転送し、ステップ
1005へ進む。ビット値が“0”であれば、ステップ
1006へ進み、sバイト分のデータのデータ転送時間
だけ何もしないで待ち、その後、ステップ1005へ進
む。ステップ1005でiの値を1だけインクリメント
し、ステップ1002へジャンプする。
ビットの値が1か否か判定する。値が“1”であれば、
ステップ1004へ進み、ディスクキャッシュメモリ上
のアドレスx+(i−1)sからsバイトのブロックの
データを読み出して、HDC120へ転送し、ステップ
1005へ進む。ビット値が“0”であれば、ステップ
1006へ進み、sバイト分のデータのデータ転送時間
だけ何もしないで待ち、その後、ステップ1005へ進
む。ステップ1005でiの値を1だけインクリメント
し、ステップ1002へジャンプする。
【0064】HDC120は図19に示すフローチャー
トに従って以下のように動作する。まずステップ110
1で内部変数jに“1”を代入する。jは何番目のブロ
ックを処理中かを示す内部変数である。次にステップ1
102に進み、jが対象領域内のブロック数8を越えた
かどうか判定する。j>8であれば、処理を終了する。
j≦8であれば、ステップ1103に進む。ステップ1
103で、ディスライト用ビットマップ150の第jビ
ットの値が“1”か否か判定する。値が“1”であれ
ば、ステップ1104へ進み、DMAC110から送ら
れてくるキャッシュメモリ上の第j番目のデータブロッ
クのデータをセクタ番号y+(i−1)のセクタにライ
トし、ステップ1105へ進む。ビット値が“0”であ
れば、ステツプ1106へ進み、セクタ番号y+(i−
1)のセクタに対して何もしないで1セクタ分ディスク
が回転するのを待ち、その後、ステップ1105へ進
む。ステツプ1105でiの値を1だけインクリメント
し、ステップ1102へジャンプする。
トに従って以下のように動作する。まずステップ110
1で内部変数jに“1”を代入する。jは何番目のブロ
ックを処理中かを示す内部変数である。次にステップ1
102に進み、jが対象領域内のブロック数8を越えた
かどうか判定する。j>8であれば、処理を終了する。
j≦8であれば、ステップ1103に進む。ステップ1
103で、ディスライト用ビットマップ150の第jビ
ットの値が“1”か否か判定する。値が“1”であれ
ば、ステップ1104へ進み、DMAC110から送ら
れてくるキャッシュメモリ上の第j番目のデータブロッ
クのデータをセクタ番号y+(i−1)のセクタにライ
トし、ステップ1105へ進む。ビット値が“0”であ
れば、ステツプ1106へ進み、セクタ番号y+(i−
1)のセクタに対して何もしないで1セクタ分ディスク
が回転するのを待ち、その後、ステップ1105へ進
む。ステツプ1105でiの値を1だけインクリメント
し、ステップ1102へジャンプする。
【0065】以上によって、キャッシュセグメント13
1上の不連続なダーティブロックのデータのディスクへ
の書き込みを1回のDMA転送で行うことが可能とな
る。
1上の不連続なダーティブロックのデータのディスクへ
の書き込みを1回のDMA転送で行うことが可能とな
る。
【0066】また、キャッシュセグメント上の不連続な
空ぎブロックへのディスクからのデータのを読み出しを
1回のDMA転送で行う場合には、上述したDMAC1
10とHDC120の果たした役割を入れ換えれること
により同様に行なえる。
空ぎブロックへのディスクからのデータのを読み出しを
1回のDMA転送で行う場合には、上述したDMAC1
10とHDC120の果たした役割を入れ換えれること
により同様に行なえる。
【0067】次に図20乃至図23を用いて、本発明の
第3の実施例である、キャッシュ付きディスクサブシス
テムを説明する。本実施例のポイントは、ディスクキャ
ッシュメモリ130上に、ディスク未反映のダーティデ
ータブロックと、有効なデータがまだ存在しない空きデ
ータブロックが、それぞれ不連続な形で存在するとき
に、ディスクドライブ内のディスクが一回転する間に、
ディスクのセクタとセクタの間で、キャッシャメモリか
らディスクドライブへのデータライトと、ディスクドラ
イブからキャツシュメモリへのデータリードとを、切り
替える。これによりディスクキャッシュメモリ上に不連
続な形で存在するダーティデータブロックのデータのデ
ィスクドライブへのライトと、ディスクキャシュメモリ
上に不連続な形で同時に存在する空きデータブロックへ
のディスクドライブ上のデータのリードとの、双方向の
データ転送を1回のDMA転送で起動して同時に行うこ
とにある。
第3の実施例である、キャッシュ付きディスクサブシス
テムを説明する。本実施例のポイントは、ディスクキャ
ッシュメモリ130上に、ディスク未反映のダーティデ
ータブロックと、有効なデータがまだ存在しない空きデ
ータブロックが、それぞれ不連続な形で存在するとき
に、ディスクドライブ内のディスクが一回転する間に、
ディスクのセクタとセクタの間で、キャッシャメモリか
らディスクドライブへのデータライトと、ディスクドラ
イブからキャツシュメモリへのデータリードとを、切り
替える。これによりディスクキャッシュメモリ上に不連
続な形で存在するダーティデータブロックのデータのデ
ィスクドライブへのライトと、ディスクキャシュメモリ
上に不連続な形で同時に存在する空きデータブロックへ
のディスクドライブ上のデータのリードとの、双方向の
データ転送を1回のDMA転送で起動して同時に行うこ
とにある。
【0068】本実施例では、説明の便宜上、6セクタ分
の大きさを持つディスクセグメントと、6つのデータブ
ロックからなるキャッシュセグメントの場合について述
べている。しかし、本発明は、セグメントの大きさが6
以外の場合でも有効なことは言うまでもない。また、デ
イスクドライブ上で連続する複数個のディスクセグメン
トに対し、対応する複数個のキャッシュセグメントがキ
ャッシュメモリ上で、不連続な場合でも、前述の「イン
ターフェース」に記載の、DMAのオートロード・モー
ド等の技術を使用することにより、複数個のディスクセ
グメント、キャッシュセグメントに対する、双方向のデ
ータ転送を、ディスクセグメントの個数に等しい回数だ
けDMA転送を行うことにより、実現することができ
る。
の大きさを持つディスクセグメントと、6つのデータブ
ロックからなるキャッシュセグメントの場合について述
べている。しかし、本発明は、セグメントの大きさが6
以外の場合でも有効なことは言うまでもない。また、デ
イスクドライブ上で連続する複数個のディスクセグメン
トに対し、対応する複数個のキャッシュセグメントがキ
ャッシュメモリ上で、不連続な場合でも、前述の「イン
ターフェース」に記載の、DMAのオートロード・モー
ド等の技術を使用することにより、複数個のディスクセ
グメント、キャッシュセグメントに対する、双方向のデ
ータ転送を、ディスクセグメントの個数に等しい回数だ
けDMA転送を行うことにより、実現することができ
る。
【0069】図20は、本発明を適用した、キャッシュ
付きディスクサブシステムのシステム構成図である。図
20中、102はマイクロプロセッサ100のビットマ
ップ150,151を格納するメモリ、111と112
はそれぞれDMAC110の制御プログラムと制御メモ
リである。RBM1は、DMAC110が制御メモリ1
12内に保持する、リードマップであり、RBM1
(i)は、RBM1の第i番目のビット値である。WB
M1は、DMAC110が制御メモリ112内に保持す
る。ライトビットマップであり、WBM1(j)は、W
BM1の第j番目のビット値である。121と122は
それぞれHDC120の制御プログラムと制御メモリで
ある。RBM2とWBM2はそれぞれ、HDC120が
制御メモリ122内に保持する、ディスクリード用ビッ
トマップとディスクライト用ビットマップであり、RB
M2(k)とWBM2(l)はそれぞれ、RBM2の第
k番目のビット値、WBM2の第l番目のビット値であ
る。131はディスクキャッシュメモリ130内にある
キャッシュセクグメントであり、白抜きの箱は空きデー
タブロックを、ハッチング入りの箱はクリーンデータブ
ロックを、クロスハッチした箱はダーティデータブロッ
クを示す。図20中の7、8、9はそれぞれバスであ
る。
付きディスクサブシステムのシステム構成図である。図
20中、102はマイクロプロセッサ100のビットマ
ップ150,151を格納するメモリ、111と112
はそれぞれDMAC110の制御プログラムと制御メモ
リである。RBM1は、DMAC110が制御メモリ1
12内に保持する、リードマップであり、RBM1
(i)は、RBM1の第i番目のビット値である。WB
M1は、DMAC110が制御メモリ112内に保持す
る。ライトビットマップであり、WBM1(j)は、W
BM1の第j番目のビット値である。121と122は
それぞれHDC120の制御プログラムと制御メモリで
ある。RBM2とWBM2はそれぞれ、HDC120が
制御メモリ122内に保持する、ディスクリード用ビッ
トマップとディスクライト用ビットマップであり、RB
M2(k)とWBM2(l)はそれぞれ、RBM2の第
k番目のビット値、WBM2の第l番目のビット値であ
る。131はディスクキャッシュメモリ130内にある
キャッシュセクグメントであり、白抜きの箱は空きデー
タブロックを、ハッチング入りの箱はクリーンデータブ
ロックを、クロスハッチした箱はダーティデータブロッ
クを示す。図20中の7、8、9はそれぞれバスであ
る。
【0070】図21は、本実施例におけるキャッシュ付
きディスクサブシステムの一連の動作を示すフローチャ
ート、図22はDMAC110の制御プログラム111
の処理を表すフローチャート、図23はHDC120の
制御プログラム121の処理を表すフローチャートであ
る。
きディスクサブシステムの一連の動作を示すフローチャ
ート、図22はDMAC110の制御プログラム111
の処理を表すフローチャート、図23はHDC120の
制御プログラム121の処理を表すフローチャートであ
る。
【0071】以下、これらの図を用いて説明する。
【0072】まず、図20により全体を説明する、マイ
クロプロセッサ100は、ディスクキャッシュメモリ1
30上のキャッシュセグメント131の状態を、白身の
メモリ102内の管理テーブルを使用して管理する。こ
こで、キャッシュセグメント131は、1番目と3番目
のデータブロックがクリーンデータブロックであり、2
番目と5番目のデータブロックが空きデータブロックで
あり、4番目と6番目のデータブロックがダーティデー
タブロックである。ここでマイクロプロセッサ100は
キャッシュセグメント131の管理テーブルの情報を用
いて、キャッシュセグルント131のリードビットマッ
プRBMとライトビットマップWBMを作成する。RB
Mの第iビットは、キャッシュセグメント131のi番
目のデータブロックに対応し、対応するデータブロック
が空きデータブロックであるとき、対応するビットの値
を“1”とし、該当するデータブロックへ、ディスクド
ライブからデータをリードすることが必要であることを
指示する。WBMの第jビットは、キャッシュセグメン
ト131のj番目のデータブロックに対応し、対応する
データブロックがダーティデータブロックであるとき
に、対応するビットの値を“1”とし、該当するデータ
ブロックのデータをディスクへ書き込む必要があること
を指示する。ここで、キャッシュセグメント131は2
番目と5番目のデータブロックが空きデータブロックで
あるので、RBMは第2と第5のビット値が“1”とな
っている。またキャッシュセグメント131は4番目と
6番目のデータブロックがダーティデータブロックであ
るので、WBMは第4と第6のビット値が“1”となっ
ている。
クロプロセッサ100は、ディスクキャッシュメモリ1
30上のキャッシュセグメント131の状態を、白身の
メモリ102内の管理テーブルを使用して管理する。こ
こで、キャッシュセグメント131は、1番目と3番目
のデータブロックがクリーンデータブロックであり、2
番目と5番目のデータブロックが空きデータブロックで
あり、4番目と6番目のデータブロックがダーティデー
タブロックである。ここでマイクロプロセッサ100は
キャッシュセグメント131の管理テーブルの情報を用
いて、キャッシュセグルント131のリードビットマッ
プRBMとライトビットマップWBMを作成する。RB
Mの第iビットは、キャッシュセグメント131のi番
目のデータブロックに対応し、対応するデータブロック
が空きデータブロックであるとき、対応するビットの値
を“1”とし、該当するデータブロックへ、ディスクド
ライブからデータをリードすることが必要であることを
指示する。WBMの第jビットは、キャッシュセグメン
ト131のj番目のデータブロックに対応し、対応する
データブロックがダーティデータブロックであるとき
に、対応するビットの値を“1”とし、該当するデータ
ブロックのデータをディスクへ書き込む必要があること
を指示する。ここで、キャッシュセグメント131は2
番目と5番目のデータブロックが空きデータブロックで
あるので、RBMは第2と第5のビット値が“1”とな
っている。またキャッシュセグメント131は4番目と
6番目のデータブロックがダーティデータブロックであ
るので、WBMは第4と第6のビット値が“1”となっ
ている。
【0073】次に、図21により、一連の動作を示す。
マイクロプロセッサ100は、DMAC110に、キャ
ッシュセグメント131のリードビットマップRBMと
ライトビットマップWBM、キャッシュセグメント13
1の先頭アドレスxとキャッシュセグメント長6sバイ
トを送る(ステップ1501)。次に、マイクロプロセ
ッサ100は、HDC120に、キャッシュセグメント
131のリードビットマップRBMとライトビットマッ
プWBM、キャッシュセグメント131に対応するティ
スク上の領域であるディスクセグメント141の先頭セ
クタ番号y、領域内のセクタ数6を送る(ステップ15
02)。RBM1とWBM1、RBM2WBM2はそれ
ぞれ、DMAC110、HDC120がマイクロプロセ
ッサ100より受け取って、それぞれ自身の制御メモリ
112と制御メモリ122に保有する、RBMとWBM
のコピーである。次に、HDC120は、ステップ15
02で、マイクロプロセッサ100から、対象領域の先
頭セクタ番号yを受け取ると、ディスクドライブ140
を、対象領域の先頭セクタである。セクタ番号yのセク
タに位置付けする(ステップ1503)。
マイクロプロセッサ100は、DMAC110に、キャ
ッシュセグメント131のリードビットマップRBMと
ライトビットマップWBM、キャッシュセグメント13
1の先頭アドレスxとキャッシュセグメント長6sバイ
トを送る(ステップ1501)。次に、マイクロプロセ
ッサ100は、HDC120に、キャッシュセグメント
131のリードビットマップRBMとライトビットマッ
プWBM、キャッシュセグメント131に対応するティ
スク上の領域であるディスクセグメント141の先頭セ
クタ番号y、領域内のセクタ数6を送る(ステップ15
02)。RBM1とWBM1、RBM2WBM2はそれ
ぞれ、DMAC110、HDC120がマイクロプロセ
ッサ100より受け取って、それぞれ自身の制御メモリ
112と制御メモリ122に保有する、RBMとWBM
のコピーである。次に、HDC120は、ステップ15
02で、マイクロプロセッサ100から、対象領域の先
頭セクタ番号yを受け取ると、ディスクドライブ140
を、対象領域の先頭セクタである。セクタ番号yのセク
タに位置付けする(ステップ1503)。
【0074】次に、DMAC110とHDC120は、
それぞれ図22と図23に示したフローチャートに従い
ながら、動作する。その動作を以下、簡単に示す。DM
AC110は、リードビットマップRBM1とライトビ
ットマップWBM1に従い、HDC120から転送され
てくるデータのデータブロックへの書き込み動作、キャ
ッシュメモリ130のデータブロックのデータの読みだ
し及びHDC120へのデータ転送動作、及び1セクタ
分のディスク回転時間何もしないで待つ動作をディスク
ドライブ140でリード/ライトヘッドがセクタを切り
替わるのに同期して切り替えながら、連続的に行う(ス
テップ1504)。HDC120は、リードビットマッ
プRBM2とライトビットマップWBM2に従い、DM
AC110から転送されてくるデータの対応するセクタ
への書き込み動作、ディスクドライブ140上のセクタ
のデータの読みだし及びDMAC110へのデータ転送
動作、1セクタ分のディスク回転時間何もしないで待つ
動作を、リード/ライトヘッドがセクタを切り替わるの
に同期して切り替えながら、連続的に行う(ステップ1
505)。
それぞれ図22と図23に示したフローチャートに従い
ながら、動作する。その動作を以下、簡単に示す。DM
AC110は、リードビットマップRBM1とライトビ
ットマップWBM1に従い、HDC120から転送され
てくるデータのデータブロックへの書き込み動作、キャ
ッシュメモリ130のデータブロックのデータの読みだ
し及びHDC120へのデータ転送動作、及び1セクタ
分のディスク回転時間何もしないで待つ動作をディスク
ドライブ140でリード/ライトヘッドがセクタを切り
替わるのに同期して切り替えながら、連続的に行う(ス
テップ1504)。HDC120は、リードビットマッ
プRBM2とライトビットマップWBM2に従い、DM
AC110から転送されてくるデータの対応するセクタ
への書き込み動作、ディスクドライブ140上のセクタ
のデータの読みだし及びDMAC110へのデータ転送
動作、1セクタ分のディスク回転時間何もしないで待つ
動作を、リード/ライトヘッドがセクタを切り替わるの
に同期して切り替えながら、連続的に行う(ステップ1
505)。
【0075】ステップ1504のDMAC110の動作
を、図22を用いて、詳細に説明する。iは今何番目の
データブロックを処理中かを表す、内部変数である。ま
ずステップ1601でiに値“1”を代入する。次にス
テップ1602に進み、RBM1の第iビットRBM1
(i)の値が“1”か“0”か判断する。ビット値が
“1”であれば、ステップ1603に進み、HDC12
0より転送されてくる、セクタ番号y+(i−1)のセ
クタのsバイトのデータをディスクキャッシュメモリ上
のアドレスx+(i−1)sから始まるsバイトの領
域、即ちキャッシュセグメント131中のi番目のデー
タブロックに書き込み、ステップ1607へ進む。もし
ステップ1602で、RBM1(i)の値が“0”であ
れば、ステップ1604へ進み、WBM1の第iビット
WBM1(i)の値が“1”か“0”か判定する。ビッ
ト値が“1”であれば、ステップ1605へ進み、ディ
スクキャッシュメモリ130上のアドレスx+(i−
1)sから始まるsバイトの領域、即ちキャッシュセグ
メント131中のi番目のデータブロックのデータを読
み出して、HDC120へ転送し、ステップ1607へ
進む。もしステップ1604で、WBM1(i)の値が
“0”であれば、ステップ1606へ進み、ディスクド
ライブ140側で、i番目のデータブロックに対応する
セクタ番号y+(i−1)のセクタをリード/ライトヘ
ッドが通過するのを待った後、ステイップ1607へ進
む。ステップ1607では、iの値を1だけインクリメ
ントして、ステップ1608へ進む。ステップ1608
では、iの値が、キャッシュセグメント131内のキャ
ッシュブロック数6を越えたか否か判定する。iが6よ
り大きければ、処理を終了する。iが6以下であれば、
ステップ1602へ進み、処理を継続する。
を、図22を用いて、詳細に説明する。iは今何番目の
データブロックを処理中かを表す、内部変数である。ま
ずステップ1601でiに値“1”を代入する。次にス
テップ1602に進み、RBM1の第iビットRBM1
(i)の値が“1”か“0”か判断する。ビット値が
“1”であれば、ステップ1603に進み、HDC12
0より転送されてくる、セクタ番号y+(i−1)のセ
クタのsバイトのデータをディスクキャッシュメモリ上
のアドレスx+(i−1)sから始まるsバイトの領
域、即ちキャッシュセグメント131中のi番目のデー
タブロックに書き込み、ステップ1607へ進む。もし
ステップ1602で、RBM1(i)の値が“0”であ
れば、ステップ1604へ進み、WBM1の第iビット
WBM1(i)の値が“1”か“0”か判定する。ビッ
ト値が“1”であれば、ステップ1605へ進み、ディ
スクキャッシュメモリ130上のアドレスx+(i−
1)sから始まるsバイトの領域、即ちキャッシュセグ
メント131中のi番目のデータブロックのデータを読
み出して、HDC120へ転送し、ステップ1607へ
進む。もしステップ1604で、WBM1(i)の値が
“0”であれば、ステップ1606へ進み、ディスクド
ライブ140側で、i番目のデータブロックに対応する
セクタ番号y+(i−1)のセクタをリード/ライトヘ
ッドが通過するのを待った後、ステイップ1607へ進
む。ステップ1607では、iの値を1だけインクリメ
ントして、ステップ1608へ進む。ステップ1608
では、iの値が、キャッシュセグメント131内のキャ
ッシュブロック数6を越えたか否か判定する。iが6よ
り大きければ、処理を終了する。iが6以下であれば、
ステップ1602へ進み、処理を継続する。
【0076】ステップ1505のHDC120の動作
を、図23を用いて、詳細に説明する。iは何番目のセ
クタを処理中かを表す内部変数である。まず、ステップ
1701でiに値“1”を代入する。次にステップ17
02に進み、RBM2の第i番目のビットRBM2
(i)の値が“1”か“0”か判定する。ビット値が
“1”であれば、ステップ1703へ進み、ディスクド
ライブ140からセクタ番号y(i−1)のセクタのs
バイトのデータを読み出してDMAC110へ転送し、
ステップ1707へ進む。ステップ1702で、ビット
値が“0”であれば、ステップ1704へ進み、WBM
2の第i番目のビットWBM2(i)の値が“1”か
“0”か判定する。ビット値が“1”であれば、ステッ
プ1705へ進み、DMAC110より転送されてく
る、キャッシュセグメント131上のi番目のデータブ
ロックのsバイトのデータを、ディスクドライブ140
のセクタ番号y+(i−1)のセクタに書き込み、ステ
ップ1707へ進む。ステップ1704で、ビット値が
“0”であれば、ステップ1706へ進み、ドィスクド
ライブ140のリード/ライトヘッドがセクタ番号y+
(i−1)のセクタを通過するのを待ち、ステップ17
07へ進む。ステップ1707では、iの値を1だけイ
ンクリメントし、ステップ1708へ進む。ステップ1
708では、iの値が、ディスクセグメント141の大
きさ6を越えたか否か判定する。iが6より大きければ
処理を終了する。iが6以下であれば、ステップ170
2へ進み、処理を継続する。
を、図23を用いて、詳細に説明する。iは何番目のセ
クタを処理中かを表す内部変数である。まず、ステップ
1701でiに値“1”を代入する。次にステップ17
02に進み、RBM2の第i番目のビットRBM2
(i)の値が“1”か“0”か判定する。ビット値が
“1”であれば、ステップ1703へ進み、ディスクド
ライブ140からセクタ番号y(i−1)のセクタのs
バイトのデータを読み出してDMAC110へ転送し、
ステップ1707へ進む。ステップ1702で、ビット
値が“0”であれば、ステップ1704へ進み、WBM
2の第i番目のビットWBM2(i)の値が“1”か
“0”か判定する。ビット値が“1”であれば、ステッ
プ1705へ進み、DMAC110より転送されてく
る、キャッシュセグメント131上のi番目のデータブ
ロックのsバイトのデータを、ディスクドライブ140
のセクタ番号y+(i−1)のセクタに書き込み、ステ
ップ1707へ進む。ステップ1704で、ビット値が
“0”であれば、ステップ1706へ進み、ドィスクド
ライブ140のリード/ライトヘッドがセクタ番号y+
(i−1)のセクタを通過するのを待ち、ステップ17
07へ進む。ステップ1707では、iの値を1だけイ
ンクリメントし、ステップ1708へ進む。ステップ1
708では、iの値が、ディスクセグメント141の大
きさ6を越えたか否か判定する。iが6より大きければ
処理を終了する。iが6以下であれば、ステップ170
2へ進み、処理を継続する。
【0077】ここまでに述べた方法によって、キャッシ
ュメモリ上に、ディスク未反映のダーテーデータブロッ
クと、有効なデータがまだ存在しない空きデータブロッ
クが、それぞれ不連続な形で存在するときに、ディスク
ドライブが一回転する間に、ディスクのセクタとセクタ
の間で、キャッシュメモリからディスクドライブへのデ
ータライトと、ディスクドライブからキャッシュメモリ
へのデータリードとを、切り替えることにより、キャッ
シュメモリ上に不連続な形で存在するダーティデータブ
ロックのデータのディスクへのライトと、やはりキャッ
シュメモリ上に不連続な形で存在する空きデータブロッ
クへのディスク上のデータのリードとの、双方向のデー
タ転送を1回のDMA転送で、同時に行うことが可能に
なる。
ュメモリ上に、ディスク未反映のダーテーデータブロッ
クと、有効なデータがまだ存在しない空きデータブロッ
クが、それぞれ不連続な形で存在するときに、ディスク
ドライブが一回転する間に、ディスクのセクタとセクタ
の間で、キャッシュメモリからディスクドライブへのデ
ータライトと、ディスクドライブからキャッシュメモリ
へのデータリードとを、切り替えることにより、キャッ
シュメモリ上に不連続な形で存在するダーティデータブ
ロックのデータのディスクへのライトと、やはりキャッ
シュメモリ上に不連続な形で存在する空きデータブロッ
クへのディスク上のデータのリードとの、双方向のデー
タ転送を1回のDMA転送で、同時に行うことが可能に
なる。
【0078】効果としては、(a)ライトバック機能を
有するキャッシュ付きディスクサブシステムの、キャッ
シュ制御プログラムのプログラミングが容易になるこ
と、(b)ディスク上の連続した領域に反応するキャッ
シュメモリ上の領域内に、それぞれ不連続な形で存在す
る、ダーティデータブロックのデータのディスクへのラ
イトと、空きデータブロックへのディスク上のデータの
リードを1回のDMA転送起動で、同時に行うことが可
能になることにより、キャッシュ付きディスクサブシス
テムのI/Oスループットが向上すること、が挙げられ
る。
有するキャッシュ付きディスクサブシステムの、キャッ
シュ制御プログラムのプログラミングが容易になるこ
と、(b)ディスク上の連続した領域に反応するキャッ
シュメモリ上の領域内に、それぞれ不連続な形で存在す
る、ダーティデータブロックのデータのディスクへのラ
イトと、空きデータブロックへのディスク上のデータの
リードを1回のDMA転送起動で、同時に行うことが可
能になることにより、キャッシュ付きディスクサブシス
テムのI/Oスループットが向上すること、が挙げられ
る。
【0079】なお、本実施例では、ディスクライト用ビ
ットマップとディスクリード用ビットマックとの2つを
用いているが、どちらか一方のみを用いても実現可能で
ある。
ットマップとディスクリード用ビットマックとの2つを
用いているが、どちらか一方のみを用いても実現可能で
ある。
【0080】次に、図24を用いて、本発明の第4の実
施例を説明する。
施例を説明する。
【0081】図24において、100はマイクロプロセ
ッサ、110はDMAC、130は記憶装置であるディ
スクキャッシュメモリ、131はディスクキャッシュメ
モリ130内の一連のデータセグメント、120はHD
C、140であるディスクドライブ、141はディスク
ドライブ140内の一連のデータブロックから構成され
るディスクセグメントである。150はディスイク用ビ
ットマップ、160は送信データ、1,3は制御線、
2,4,5はバスである。
ッサ、110はDMAC、130は記憶装置であるディ
スクキャッシュメモリ、131はディスクキャッシュメ
モリ130内の一連のデータセグメント、120はHD
C、140であるディスクドライブ、141はディスク
ドライブ140内の一連のデータブロックから構成され
るディスクセグメントである。150はディスイク用ビ
ットマップ、160は送信データ、1,3は制御線、
2,4,5はバスである。
【0082】マイクロプロセッサ100は制御線1を通
じて、DMAC110に、ディスクキャッシュメモリ1
30内の一連のデータブロック131の範囲と、ディス
クライト用ビットマップ150の内容と、データの送信
開始指令を送る。次にコントローラ110は、処理Aを
実行する。処理Aの内容は次の通りである。ディスクキ
ャッシュメモリ130から一連のデータブロック131
のデータを全てDMAC110内に読み込む。次に、受
け取ったビットマップ情報に従って、読み込んだ一連の
データブロック内のダーティデータブロックのみを選択
して、送信データ160を作成して、送信データ160
をバス5を通じて送信する。ビットマップ情報は、第i
番目のビットが、一連のデータブロック内の第i番目の
データブロックに対応する。ビット値が“0”であれ
ば、DMAC110は読み込んだデータの中の、対応す
るデータブロックの値を捨てる。ビット値が“1”であ
れば、コントローラ110は読み込んだデータの中の、
対応するデータブロックの値を送信する。図24の例で
は、データブロックはデータブロックからブロック
までの計6ブロックである。受け取ったビットマップは
“010110”であるので、この場合、第1、第3、
第6のデータブロックのデータを捨て、第2、第4、第
5のブロックのデータから構成される、送信データ16
0を作成して、バス5を通じて送信データ160を送信
する。
じて、DMAC110に、ディスクキャッシュメモリ1
30内の一連のデータブロック131の範囲と、ディス
クライト用ビットマップ150の内容と、データの送信
開始指令を送る。次にコントローラ110は、処理Aを
実行する。処理Aの内容は次の通りである。ディスクキ
ャッシュメモリ130から一連のデータブロック131
のデータを全てDMAC110内に読み込む。次に、受
け取ったビットマップ情報に従って、読み込んだ一連の
データブロック内のダーティデータブロックのみを選択
して、送信データ160を作成して、送信データ160
をバス5を通じて送信する。ビットマップ情報は、第i
番目のビットが、一連のデータブロック内の第i番目の
データブロックに対応する。ビット値が“0”であれ
ば、DMAC110は読み込んだデータの中の、対応す
るデータブロックの値を捨てる。ビット値が“1”であ
れば、コントローラ110は読み込んだデータの中の、
対応するデータブロックの値を送信する。図24の例で
は、データブロックはデータブロックからブロック
までの計6ブロックである。受け取ったビットマップは
“010110”であるので、この場合、第1、第3、
第6のデータブロックのデータを捨て、第2、第4、第
5のブロックのデータから構成される、送信データ16
0を作成して、バス5を通じて送信データ160を送信
する。
【0083】マイクロプロセッサ100は制御線3を通
じて、HDC120に、ディスクドライブ140内のデ
ィスクセグメント141の範囲と、ディスクライト用ビ
ットマップ150の情報と、データの受信指令を送る。
次にコントローラ120は、処理Bを実行する。処理B
の内容は次の通りである。コントローラ120はバス5
を通じて送られた受信データ160を受け取る。次に、
受け取ったビットマップ情報に従って、受け取った受信
データ中のデータブロックを、バス4を通じて、デイス
クセグメント141上のデータブロックに書き込む。ビ
ットマップ情報は、第i番目のビットが、一連のブロッ
クから構成されるディスクセグメント141の第i番目
のデータブロックに対応する。受信データ中の第j番目
のデータブロックは、ビットマップ中に現れる第j番目
の“1”に対応するデータブックに書書き込まれる。図
24では、ディスイクセグメント141は計6個の連続
するブロックにより構成されている。また、受信データ
は3つのデータブロックxyzから構成されている。受
け取ったビットマップは“010110”であるので、
この場合、受信データ中の第1のデータブロックx、第
2のデータブロックy、第3のデータブロックzは、そ
れぞれ、ディスクセグメント141内の第2番目のブロ
ック、第4番目のブロック、第5番目のブロックに書き
込まれる。
じて、HDC120に、ディスクドライブ140内のデ
ィスクセグメント141の範囲と、ディスクライト用ビ
ットマップ150の情報と、データの受信指令を送る。
次にコントローラ120は、処理Bを実行する。処理B
の内容は次の通りである。コントローラ120はバス5
を通じて送られた受信データ160を受け取る。次に、
受け取ったビットマップ情報に従って、受け取った受信
データ中のデータブロックを、バス4を通じて、デイス
クセグメント141上のデータブロックに書き込む。ビ
ットマップ情報は、第i番目のビットが、一連のブロッ
クから構成されるディスクセグメント141の第i番目
のデータブロックに対応する。受信データ中の第j番目
のデータブロックは、ビットマップ中に現れる第j番目
の“1”に対応するデータブックに書書き込まれる。図
24では、ディスイクセグメント141は計6個の連続
するブロックにより構成されている。また、受信データ
は3つのデータブロックxyzから構成されている。受
け取ったビットマップは“010110”であるので、
この場合、受信データ中の第1のデータブロックx、第
2のデータブロックy、第3のデータブロックzは、そ
れぞれ、ディスクセグメント141内の第2番目のブロ
ック、第4番目のブロック、第5番目のブロックに書き
込まれる。
【0084】これにより、不連続なデータブロックの転
送を、マイクロプロセッサ100が一度だけ、DMAC
110とHDC120へ、指示することにより、行うこ
とができる。本実施例は先の実施例に比べてバス5を通
過するデータの量を小さくするこができる利点がある。
なお、上述したDMAC110とHDC120の役割を
入れ換えれば、ほとんど同様にして、ディスクドライブ
140からディスクセグメント130へ不連絡なデータ
セグメントを詰めて転送することができる。
送を、マイクロプロセッサ100が一度だけ、DMAC
110とHDC120へ、指示することにより、行うこ
とができる。本実施例は先の実施例に比べてバス5を通
過するデータの量を小さくするこができる利点がある。
なお、上述したDMAC110とHDC120の役割を
入れ換えれば、ほとんど同様にして、ディスクドライブ
140からディスクセグメント130へ不連絡なデータ
セグメントを詰めて転送することができる。
【0085】
【発明の効果】本発明により、デイスクキャッシュメモ
リ上の不連続なダーティデータブロックのデータをディ
スクにライトすることを、ディスクの特性を考慮した形
で、より対さなメモリ量とオーバヘッド、より簡単なプ
ログラムにより、1回のDMA転送で行うことができる
ようになり、ライトバック方式を採用したキャッシュ付
きディスクサブシステムの性能向上、制御プログラムの
オーバヘッド削減、制御プログラムの記述の容易化を図
ることができる。
リ上の不連続なダーティデータブロックのデータをディ
スクにライトすることを、ディスクの特性を考慮した形
で、より対さなメモリ量とオーバヘッド、より簡単なプ
ログラムにより、1回のDMA転送で行うことができる
ようになり、ライトバック方式を採用したキャッシュ付
きディスクサブシステムの性能向上、制御プログラムの
オーバヘッド削減、制御プログラムの記述の容易化を図
ることができる。
【0086】また、ディスクキャッシュメモリ上の不連
続な空きデータブロックに、対応するディスク上のデー
タをリードすることを、ディスクの特性を考慮した形
で、より小さなメモリ量とオーバヘッド、より簡単なプ
ログラムにより、1回のDMA転送で行うことができる
ようになり、ライトバック方式を採用したキャッュ付き
ディスクサブシステムの性能向上、制御プログラムのオ
ーバヘッド削減、制御プログラムの記述の容易化を図る
ことができる。
続な空きデータブロックに、対応するディスク上のデー
タをリードすることを、ディスクの特性を考慮した形
で、より小さなメモリ量とオーバヘッド、より簡単なプ
ログラムにより、1回のDMA転送で行うことができる
ようになり、ライトバック方式を採用したキャッュ付き
ディスクサブシステムの性能向上、制御プログラムのオ
ーバヘッド削減、制御プログラムの記述の容易化を図る
ことができる。
【0087】また、ディスクキャッシュメモリの不連続
なデーティデータブロックのデータのディスクへのライ
トと、前記ダーティデータブロックと排他的関係にある
キャッシュメモリ上の不連続な空きデータブロックへ
の、対応するディスク上のデータリードを同時に行うこ
とができるようなり、ライトバック方式を採用したキャ
ッシュ付きディスクサブシステムの大幅な性能向上、制
御プログラムのオーバヘッド削減、制御プログラムの記
述の容易化を図ることができる。
なデーティデータブロックのデータのディスクへのライ
トと、前記ダーティデータブロックと排他的関係にある
キャッシュメモリ上の不連続な空きデータブロックへ
の、対応するディスク上のデータリードを同時に行うこ
とができるようなり、ライトバック方式を採用したキャ
ッシュ付きディスクサブシステムの大幅な性能向上、制
御プログラムのオーバヘッド削減、制御プログラムの記
述の容易化を図ることができる。
【図1】ディスクキャッシュメモリからディスクドライ
ブへの本発明になるデータ転送の第1実施例が適用され
たディスクサブシステムを示す図である。
ブへの本発明になるデータ転送の第1実施例が適用され
たディスクサブシステムを示す図である。
【図2】図1に示したディスクサブシステムとホストコ
ンピュータとの接続関係を示すブロック図である。
ンピュータとの接続関係を示すブロック図である。
【図3】図1に示した実施例におけるディスクキャッシ
ュメモリ内のキャッシュセグメントとディスクドライブ
内のディスクセグメントの具体的構成例を示す図であ
る。
ュメモリ内のキャッシュセグメントとディスクドライブ
内のディスクセグメントの具体的構成例を示す図であ
る。
【図4】図1に示したディスクキャッシュメモリからデ
ィスクドライブへのデータ転送処理を示すフローチャー
ト図である。
ィスクドライブへのデータ転送処理を示すフローチャー
ト図である。
【図5】図4に示した処理において、図1に示したHD
Cによる具体的処理を示すフローチャート図である。
Cによる具体的処理を示すフローチャート図である。
【図6】ディスクドライブからディスクキャッシュメモ
リへのデータ転送処理を示すフローチャート図である。
リへのデータ転送処理を示すフローチャート図である。
【図7】ディスクドライブからディスクキャッシュメモ
リへの本発明になるデータ転送の第1実施例が適用され
たディスクサブシステムを示す図である。
リへの本発明になるデータ転送の第1実施例が適用され
たディスクサブシステムを示す図である。
【図8】図6に示した処理において、図7に示したDM
ACによる具体的処理を示すフローチャート図である。
ACによる具体的処理を示すフローチャート図である。
【図9】図1及び図7に示したデータ転送を行うディス
クサブシステムの具体的構成例を示すブロック図であ
る。
クサブシステムの具体的構成例を示すブロック図であ
る。
【図10】図9に示したハードディスクコントローラ
(HDC)の具体的構成例を示す図である。
(HDC)の具体的構成例を示す図である。
【図11】ビットマップデータと図10における出力信
号との関係を示すタイミングチャート図である。
号との関係を示すタイミングチャート図である。
【図12】図10に示したビットマップライト制御ブロ
ックの具体的構成例を示す図である。
ックの具体的構成例を示す図である。
【図13】図9に示したDMAコントローラ(DMA
C)の具体的構成例を示す図である。
C)の具体的構成例を示す図である。
【図14】ビットマップデータと図13における出力信
号との関係を示すタイミングチャート図である。
号との関係を示すタイミングチャート図である。
【図15】図13に示したビットマップディスクリード
制御ブロックの具体的構成例を示す図である。
制御ブロックの具体的構成例を示す図である。
【図16】ディスクキャッシュメモリからディスクドラ
イブへの本発明になるデータ転送の第2の実施例が適用
されたディスクサブシステムを示す図である。
イブへの本発明になるデータ転送の第2の実施例が適用
されたディスクサブシステムを示す図である。
【図17】図16に示したデータ転送処理を示すフロー
チャート図である。
チャート図である。
【図18】図17に示した処理の要部の具体的処理を示
すフローチャート図である。
すフローチャート図である。
【図19】図17に示した処理の要部の具体的処理を示
すフローチャート図である。
すフローチャート図である。
【図20】ディスクキャッシュメモリとディスクドライ
ブとの間での本発明になる双方向データ転送である第3
実施例が適用されたディスクサブシステムを示す図であ
る。
ブとの間での本発明になる双方向データ転送である第3
実施例が適用されたディスクサブシステムを示す図であ
る。
【図21】図20に示した双方向データ転送処理を示す
フローチャート図である。
フローチャート図である。
【図22】図21に示した処理において、図20に示し
たDMACによる具体的処理を示すフローチャート図で
ある。
たDMACによる具体的処理を示すフローチャート図で
ある。
【図23】図21に示した処理において、図20に示し
たHDCによる具体的処理を示すフローチャート図であ
る。
たHDCによる具体的処理を示すフローチャート図であ
る。
【図24】ディスクキャッシュメモリとディスクドライ
ブとの間での本発明になるデータ転送である第4実施例
が適用されたディスクサブシステムを示す図である。
ブとの間での本発明になるデータ転送である第4実施例
が適用されたディスクサブシステムを示す図である。
100…マイクロプロセッサ、101…マイクロプログ
ラム、110…DMAC、120…HDC、130…デ
ィスクキャッシュメモリ、131…キャッシュセグメン
ト、140…ディスクドライブ、141…ディスクセグ
メント、150…ディスクライト用ビットマップ、15
1…ディスクリード用ビットマップ、180…ディスク
コントローラ。
ラム、110…DMAC、120…HDC、130…デ
ィスクキャッシュメモリ、131…キャッシュセグメン
ト、140…ディスクドライブ、141…ディスクセグ
メント、150…ディスクライト用ビットマップ、15
1…ディスクリード用ビットマップ、180…ディスク
コントローラ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 佐藤 雅彦 神奈川県小田原市国府津2880番地 株式会 社日立製作所小田原工場内 (72)発明者 佐藤 孝夫 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内
Claims (14)
- 【請求項1】第1の記憶装置内の、連続する複数の記憶
ブロックで構成される第1の記憶領域に含まれる不連続
な記憶ブロックのデータを、第2の記憶装置内の、連続
する複数の記憶ブロックで構成される第2の記憶領域内
の対応する不連続な記憶ブロックに転送するデータ転送
方法であって、前記第1の記憶領域内の連続する複数の
記憶ブロックは、前記第2の記憶領域内の連続する複数
の記憶ブロックにそれぞれ対応し、前記第1の記憶領域
内の連続する複数の記憶ブロックにそれぞれ対応する複
数のビット位置を有するビットマップを作成して、デー
タ転送すべき不連続な記憶ブロックに対応するビット位
置に所定のビット値を設定し、前記第1の記憶領域か
ら、前記連続する複数の記憶ブロックを、第1の制御手
段によって読みだし、前記ビットマップの内容に基づい
て、前記読みだした複数の記憶ブロックから、前記デー
タ転送すべき不連続な記憶ブロックを、第2の制御手段
によって選択的に前記第2の記憶装置の前記第2の記憶
領域の対応する不連続な記憶ブロックに書き込むことに
より、1回のデータ転送起動によって、前記不連続な記
憶ブロックのデータ転送を行なうことを特徴とするデー
タ転送方法。 - 【請求項2】前記選択的に読みだした不連続な記憶ブロ
ックを、前記第1の制御手段において連続な記憶ブロッ
クに変換して、前記第2の制御手段に転送し、前記ビッ
トマップの内容に基づいて、前記変換された連続な記憶
ブロックを、第2の制御手段において前記第2の記憶装
置の前記第2の記憶領域の対応する不連続な記憶ブロッ
クに書き込むことにより、1回のデータ転送起動によっ
て、前記不連続な記憶ブロックのデータ転送をおこなう
ことを特徴とする請求項1記載のデータ転送方法。 - 【請求項3】前記第1および第2の記憶装置は、ディス
クキャッシュメモリおよびディスクドライブであり、前
記第1および第2の記憶領域は、キャッシュセグメント
およびディスクセグメントであり、前記第1および第2
の制御手段は、DMACおよびHDCであることを特徴
とする請求項2記載のデータ転送方法。 - 【請求項4】前記第1および第2の記憶装置は、ディス
クキャッシュメモリおよびディスクドライブであり、前
記第1および第2の記憶領域は、キャッシュセグメント
およびディスクセグメントであり、前記第1および第2
の制御手段は、ダイレクトメモリアクセスコントローラ
(DMAC)およびハードディスクコントローラ(HD
C)であることを特徴とする請求項1記載のデータ転送
方法。 - 【請求項5】第1の記憶装置内の、連続する複数の記憶
ブロックで構成される第1の記憶領域の内で不連続な記
憶ブロックのデータを、第2の記憶装置内の、連続する
複数の記憶ブロックで構成される第2の記憶領域の内の
対応する不連続な記憶ブロックに転送するデータ転送方
法であって、前記第1の記憶領域内の連続する複数の記
憶ブロックは、前記第2の記憶領域内の連続する複数の
記憶ブロックにそれぞれ対応し、前記第1の記憶領域内
の連続する複数の記憶ブロックにそれぞれ対応する複数
のビット位置を有するビットマップを作成して、データ
転送すべき不連続な記憶ブロックに対応するビット位置
に所定のビット値を設定し、前記ビットマップの内容に
基づいて、前記第1の記憶領域から、前記データ転送す
べき不連続な記憶ブロックを、第1の制御手段によって
選択的に読みだし、前記ビットマップの内容に基づい
て、前記選択的に読みだしたデータ転送すべき不連続な
記憶ブロックを、第2の制御手段によって前記第2の記
憶装置の前記第2の記憶領域の対応する不連続な記憶ブ
ロックに書き込むことにより、1回のデータ転送起動に
よって、前記不連続な記憶ブロックのデータ転送をおこ
なうことを特徴としたデータ転送方法。 - 【請求項6】前記第1および第2の記憶装置は、ディス
クキャッシュメモリおよびディスクドライブであり、前
記第1および第2の記憶領域は、キャッシュセグメント
およびディスクセグメントであり、前記第1および第2
の制御手段は、DMACおよびHDCであることを特徴
とする請求項5記載のデータ転送方法。 - 【請求項7】第1の記憶装置内の、連続する複数の記憶
ブロックで構成される第1の記憶領域の内で不連続な記
憶ブロックのデータと、第2の記憶装置内の、連続する
複数の記憶ブロックで構成される第2の記憶領域の内の
不連続な記憶ブロックのデータとを、前記第1および第
2の記憶装置間で双方向に転送するデータ転送方法であ
って、前記第1の記憶領域内の連続する複数の記憶ブロ
ックは、前記第2の記憶領域内の連続する複数の記憶ブ
ロックにそれぞれ対応し、前記第1の記憶領域内の連続
する複数の記憶ブロックにそれぞれ対応する複数のビッ
ト位置を有する第1のビットマップを作成して、前記第
1の記憶装置から前記第2の記憶装置へデータ転送すべ
き不連続な記憶ブロックに対応するビット位置に所定の
ビット値を設定し、前記第2の記憶領域内の連続する複
数の記憶ブロックにそれぞれ対応する複数のビット位置
を有する第2のビットマップを作成して、前記第1の記
憶装置から前記第2の記憶装置へデータ転送すべき不連
続な記憶ブロックに対応するビット位置に所定のビット
値を設定し、前記第1の記憶領域から、前記連続する複
数の記憶ブロックを、第1の制御手段によって読みだ
し、前記第1のビットマップの内容に基づいて、前記読
みだした複数の記憶ブロックから、前記第2の記憶装置
へデータ転送すベき前記不連続な記憶ブロックを、第2
の制御手段によって選択的に前記第2の記憶装置の前記
第2の記憶領域の対応する不連続な記憶ブロックに書き
込み、前記第2のビットマップの内容に基づいて、前記
第2の記憶領域から、前記第1の記憶装置ヘデータ転送
すべき前記不連続な記憶ブロックを、前記第2の制御手
段によって選択的に読みだし、前記第2のビットマップ
の内容に基づいて、前記選択的に読みだした前記第1の
記憶装置へデータ転送すべき前記不連続な記憶ブロック
を、第1の制御手段によって前記第1の記憶装置の前記
第1の記憶領域の対応する不連続な記憶ブロックに書き
込むことにより、1回のデータ転送起動によって、前記
不連続な記憶ブロックのデータ転送を前記第1および第
2の記憶装置間で双方向におこなうことを特徴としたデ
ータ転送方法。 - 【請求項8】前記第1および第2の記憶装置は、ディス
クキャッシュメモリおよびディスクドライブであり、前
記第1および第2の記憶領域は、キャッシュセグメント
およびディスクセグメントであり、前記第1および第2
の制御手段は、DMACおよびHDCであることを特徴
とする請求項7記載のデータ転送方法。 - 【請求項9】ホストコンピュータと該ホストコンピュー
タが利用するデータを保持し、連続する複数のデータブ
ロックで構成されるディスクセグメントを有するディス
ク装置との間のデータ転送を制御するデータ転送装置で
あって、前記ディスクセグメント内の連続する複数のデ
ータブロックにそれぞれ対応し、連続する複数のデータ
ブロックで構成されるキャッシュセグメントを有するデ
ィスクキャッシュメモリと、前記キャッシュセグメント
内の連続する複数のデータブロックにそれぞれ対応し、
データ転送すべきデータブロックを指示するための複数
のビット位置を有するディスクライト用ビットマップ
と、前記キャッシュセグメントから、前記連続する複数
のデータブロックを読み出す第1の制御手段と、前記デ
ィスクライト用ビットマップの内容に基づいて、前記読
みだした複数のデータブロックから、前記データ転送す
べき不連続なデータブロックを、選択的に前記ディスク
ドライブの前記ディスクセグメントの対応する不連続な
データブロックに書き込む第2の制御手段とを備え、前
記ホストコンピュータからの1回のデータ転送起動によ
って、前記不連続なデータブロックのデータ転送をおこ
なうことを特徴とするデータ転送装置。 - 【請求項10】ホストコンピュータと該ホストコンピュ
ータが利用するデータを保持し、連続する複数のデータ
ブロックで構成されるディスクセグメントを有するディ
スク装置との間のデータ転送を制御するデータ転送装置
であって、前記ディスクセグメント内の連続する複数の
データブロックにそれぞれ対応し、連続する複数のデー
タブロックで構成されるキャッシュセグメントを有する
ディスクキャッシュメモリと、前記ディスクセグメント
内の連続する複数のデータブロックにそれぞれ対応し、
データ転送すべきデータブロックを指示するための複数
のビット位置を有するディスクリード用ビットマップ
と、前記ディスクセグメントから、前記連続する複数の
データブロックを読み出す第1の制御手段と、前記ディ
スクリード用ビットマップの内容に基づいて、前記読み
だした複数のデータブロックから、前記データ転送すべ
き不連続なデータブロックを、選択的に前記ディスクキ
ャッシュメモリの前記キャッシュセグメントの対応する
不連続なデータブロックに書き込む第2の制御手段とを
備え、1回のデータ転送起動によって、前記不連続なデ
ータブロックのデータ転送をおこなうことを特徴とする
データ転送装置。 - 【請求項11】ホストコンピュータと該ホストコンピュ
ータが利用するデータを保持し、連続する複数のデータ
ブロックで構成されるディスクセグメントを有するディ
スク装置との間のデータ転送を制御するデータ転送装置
であって、前記ディスクセグメント内の連続する複数の
データブロックにそれぞれ対応し、連続する複数のデー
タブロックで構成されるキャッシュセグメントを有する
ディスクキャッシュメモリと、前記キャッシュセグメン
ト内の連続する複数のデータブロックにそれぞれ対応
し、データ転送すべきデータブロックを指示するための
複数のビット位置を有するディスクライト用ビットマッ
プと、前記ディスクセグメント内の連続する複数のデー
タブロックにそれぞれ対応し、データ転送すべきデータ
ブロックを指示するための複数のビット位置を有するデ
ィスクリード用ビットマップと、前記キャッシュセグメ
ントから、前記連続する複数のデータブロックを読み出
し、前記ディスクライト用ビットマップの内容に基づい
て、前記読みだした複数のデータブロックから、前記デ
ィスクドライブへデータ転送すべき前記不連続なデータ
ブロックを、選択的に前記ディスクドライブの前記ディ
スクセグメントの対応する不連続なデータブロックに書
き込むとともに、前記ディスクリード用ビットマップの
内容に基づいて、前記ディスクセグメントから、前記デ
ィスクキャッシュメモリヘデータ転送すべき前記不連続
なデータブロックを、選択的に読み出し、前記ディスク
リード用ビットマップの内容に基づいて、前記選択的に
読みだした前記ディスクキャッシュメモリへデータ転送
すべき前記不連続なデータブロックを前記ディスクキャ
ッシュメモリの前記キャッシュセグメントの対応する不
連続なデータブロックに書き込む転送制御手段とを備え
たことを特徴とするデータ転送装置。 - 【請求項12】前記転送制御手段は、前記キャッシュメ
モリへのデータの書き込み及び読み出しを制御する第1
の制御手段と、前記ディスク装置へのデータの書き込み
及び読み出しを制御する第2の制御手段を含むことを特
徴とする請求項11記載のデータ転送装置。 - 【請求項13】ホストコンピュータに接続されるディス
クコントローラにおけるデータ転送方法であって、前記
ホストコンピュータからのデータライト要求に応答し
て、ディスクキャッシュメモリに、連続する複数のデー
タブロックで構成されるキャッシュセグメントを割り当
て、前記キャッシュセグメントに対応するディスクライ
ト用ビットマップを作成し、該ディスクライト用ビット
マップは、前記キャッシュセグメント内の連続する複数
のデータブロックにそれぞれ対応する複数のビット位置
を有し、 前記ホストコンピュータから前記キャッシュセグメント
に前記データ転送すべき少なくとも1つのデータブロッ
クを書き込み、該ディスクライト用ビットマップ内の、
前記ホストコンピュータからデータ転送すべき少なくと
も1つのデータブロックに対応するビット位置に所定の
ビット値を設定し、 前記ディスクライト用ビットマップの内容に基づいて、
前記データ転送すべき少なくとも1つのデータブロック
を、ディスクドライブ内の、前記キャッシュセグメント
に対応するディスクセグメントの対応するデータブロッ
ク上に選択的に書き込むことを特徴とするデータ転送方
法。 - 【請求項14】請求項13記載のデータ転送方法におい
て、さらに、前記ディスクセグメントに対応するディス
クリード用ビットマップを作成し、該ディスクリード用
ビットマップは、前記ディスクセグメント内の連続する
複数のデータブロックにそれぞれ対応する複数のビット
位置を有し、 該ディスクリード用ビットマップ内の、前記ディスクド
ライブから前記ディスクキャッシュメモリヘデータ転送
すべき少なくとも1つのデータブロックに対応するビッ
ト位置に所定のビット値を設定し、前記ホストコンピュ
ータからのデータリード要求に応答して、前記ディスク
リード用ビットマップの内容に基づいて、データ転送す
べき少なくとも1つのデータブロックを、前記ディスク
セグメントから読みだして、前記キャッシュセグメント
の対応するデータブロック上に選択的に書き込むことを
特徴とするデータ転送方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5088387A JPH0628261A (ja) | 1992-04-17 | 1993-04-15 | データ転送方法及び装置 |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP9765892 | 1992-04-17 | ||
| JP4-97658 | 1992-04-17 | ||
| JP5088387A JPH0628261A (ja) | 1992-04-17 | 1993-04-15 | データ転送方法及び装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0628261A true JPH0628261A (ja) | 1994-02-04 |
Family
ID=26429777
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5088387A Pending JPH0628261A (ja) | 1992-04-17 | 1993-04-15 | データ転送方法及び装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0628261A (ja) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009020833A (ja) * | 2007-07-13 | 2009-01-29 | Internatl Business Mach Corp <Ibm> | データをキャッシュする技術 |
| US7636807B2 (en) | 2006-02-24 | 2009-12-22 | Samsung Electronics Co., Ltd. | Storage apparatus using nonvolatile memory as cache and mapping information recovering method for the storage apparatus |
| JP2010006066A (ja) * | 2008-06-27 | 2010-01-14 | Toshiba Corp | 画像処理装置および画像処理方法 |
| WO2012032582A1 (en) | 2010-09-10 | 2012-03-15 | Hitachi, Ltd. | Storage system and data transfer method of storage system |
| US8738842B2 (en) | 2007-07-19 | 2014-05-27 | Samsung Electronics Co., Ltd. | Solid state disk controller and data processing method thereof |
| JP2015043226A (ja) * | 2014-10-15 | 2015-03-05 | 株式会社日立製作所 | ストレージシステム及びストレージシステムのデータ転送方法 |
| US9977027B2 (en) | 2014-06-13 | 2018-05-22 | Aaa Scientific Limited | Apparatus and method for preparing a ninhydrin reagent |
-
1993
- 1993-04-15 JP JP5088387A patent/JPH0628261A/ja active Pending
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7636807B2 (en) | 2006-02-24 | 2009-12-22 | Samsung Electronics Co., Ltd. | Storage apparatus using nonvolatile memory as cache and mapping information recovering method for the storage apparatus |
| JP2009020833A (ja) * | 2007-07-13 | 2009-01-29 | Internatl Business Mach Corp <Ibm> | データをキャッシュする技術 |
| US8738842B2 (en) | 2007-07-19 | 2014-05-27 | Samsung Electronics Co., Ltd. | Solid state disk controller and data processing method thereof |
| JP2010006066A (ja) * | 2008-06-27 | 2010-01-14 | Toshiba Corp | 画像処理装置および画像処理方法 |
| WO2012032582A1 (en) | 2010-09-10 | 2012-03-15 | Hitachi, Ltd. | Storage system and data transfer method of storage system |
| US8316195B2 (en) | 2010-09-10 | 2012-11-20 | Hitachi, Ltd. | Storage system and data transfer method of storage system |
| US8782337B2 (en) | 2010-09-10 | 2014-07-15 | Hitachi, Ltd. | Storage system and data transfer method of storage system |
| US9304710B2 (en) | 2010-09-10 | 2016-04-05 | Hitachi, Ltd. | Storage system and data transfer method of storage system |
| US9977027B2 (en) | 2014-06-13 | 2018-05-22 | Aaa Scientific Limited | Apparatus and method for preparing a ninhydrin reagent |
| JP2015043226A (ja) * | 2014-10-15 | 2015-03-05 | 株式会社日立製作所 | ストレージシステム及びストレージシステムのデータ転送方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5553307A (en) | Method and device for transferring noncontiguous blocks in one transfer start by creating bit-map indicating which block is to be transferred | |
| US6330626B1 (en) | Systems and methods for a disk controller memory architecture | |
| US6401149B1 (en) | Methods for context switching within a disk controller | |
| CN102411549B (zh) | 存储器系统、主机控制器以及dma的控制方法 | |
| JP2000514941A (ja) | バスから収集されたデータに対するパリティ発生フライバルxor | |
| JPS6138507B2 (ja) | ||
| US5813024A (en) | Disk control method for use with a data storage apparatus having multiple disks | |
| JPH04367023A (ja) | 二重化ディスク制御装置 | |
| JPH056901B2 (ja) | ||
| EP1631911B1 (en) | Method and device for transferring data between a main memory and a storage device | |
| JPH0628261A (ja) | データ転送方法及び装置 | |
| CA2370596C (en) | Systems and methods for a disk controller memory architecture | |
| JP2981711B2 (ja) | ディスク記憶装置 | |
| JPH10178626A (ja) | 伝送装置及びサーバ装置並びに伝送方法 | |
| JPS60114947A (ja) | デイスクキヤツシユ装置 | |
| JP2963696B2 (ja) | データ転送制御システム | |
| JP2007011526A (ja) | Hddコントローラ及びそれを搭載したシステム | |
| JPH10269676A (ja) | データアクセス装置およびデータアクセス方法 | |
| JPS6027014A (ja) | 磁気デイスク制御装置 | |
| JPH11119922A (ja) | データ記憶システム及び冗長データ書き込み制御方法 | |
| JP3241072B2 (ja) | コンピュータシステム | |
| JP3678537B2 (ja) | データ転送方法及び装置 | |
| JP2768022B2 (ja) | メモリコントローラ | |
| JPH1040213A (ja) | 情報処理装置のdmaデータ転送方法 | |
| JPH1078854A (ja) | ディスクアレイ制御装置 |