JP2001350669A - 先読み予測装置 - Google Patents
先読み予測装置Info
- Publication number
- JP2001350669A JP2001350669A JP2000175556A JP2000175556A JP2001350669A JP 2001350669 A JP2001350669 A JP 2001350669A JP 2000175556 A JP2000175556 A JP 2000175556A JP 2000175556 A JP2000175556 A JP 2000175556A JP 2001350669 A JP2001350669 A JP 2001350669A
- Authority
- JP
- Japan
- Prior art keywords
- data
- command
- statistical
- look
- 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
- Memory System Of A Hierarchy Structure (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
(57)【要約】
【課題】キャッシュメモリを搭載したディスク装置にお
いて、キャッシュメモリの利用効率を改善するため、先
読み量の制御と、記録媒体上の領域ごとのアクセス特性
を求める先読み予測装置を提供する。 【解決手段】加重統計回路、レジスタ群、先読み量計算
回路および、ワークメモリから構成された先読み予測装
置を構成し、データバスを介して送られてきたコマンド
データをワークメモリへ保持すると共に、ワークメモリ
へ保持されたコマンド履歴を加重統計回路でコマンド履
歴の順序を考慮した統計処理を行い、その統計結果と送
られてきたコマンドを先読み量計算回路で比較し、先読
み量を算出する。また、統計処理を行う際、ディスク制
御装置がキャッシュメモリのデータの置換などの作業を
行う際参照できるように、記録媒体の領域ごとの評価値
をワークメモリへ保持しておく。
いて、キャッシュメモリの利用効率を改善するため、先
読み量の制御と、記録媒体上の領域ごとのアクセス特性
を求める先読み予測装置を提供する。 【解決手段】加重統計回路、レジスタ群、先読み量計算
回路および、ワークメモリから構成された先読み予測装
置を構成し、データバスを介して送られてきたコマンド
データをワークメモリへ保持すると共に、ワークメモリ
へ保持されたコマンド履歴を加重統計回路でコマンド履
歴の順序を考慮した統計処理を行い、その統計結果と送
られてきたコマンドを先読み量計算回路で比較し、先読
み量を算出する。また、統計処理を行う際、ディスク制
御装置がキャッシュメモリのデータの置換などの作業を
行う際参照できるように、記録媒体の領域ごとの評価値
をワークメモリへ保持しておく。
Description
【0001】
【発明の属する技術分野】本発明は、記憶装置及びそれ
を搭載する情報機器に関係し、特に記録装置からのデー
タの先読みの制御方式に関する。
を搭載する情報機器に関係し、特に記録装置からのデー
タの先読みの制御方式に関する。
【0002】
【従来の技術】磁気ディスクを用いた記憶装置におい
て、磁気ディスクのシーク動作などを考慮すると、アク
セス速度はそれを使用するホストのデータ転送速度と比
較してかなり低速である。このため、従来から磁気ディ
スクを用いた記憶装置にはこれらの速度差を吸収するた
めにキャッシュメモリが搭載されてきた。これを用い
て、一度磁気ディスクから読み出されたデータをキャッ
シュメモリへ保存し、さらに、ホストが一度要求したデ
ータの論理ブロックアドレス(以下、LBA)に対応するデ
ータを磁気ディスクよりあらかじめ読み出す先読みと呼
ばれる機能を用いることで、ホストへのデータ転送速度
を向上させてきた。従来技術では、特開平6-119244に記
載されているように、記録装置の物理領域ごとのヒット
判定の結果を統計処理し、記録装置からの読み出しを制
御する方式、特開平8-134634に記載されているように、
ホストからのアクセスパターンがランダムアクセスか、
シーケンシャルアクセスかを識別して、記録装置からの
読み出しを行う方式、そして、米国特許5765213に記載
されているように、キャッシュメモリ内のデータの格納
状態から次に先読みを行うべき位置と先読み量を計算す
る方式がある。
て、磁気ディスクのシーク動作などを考慮すると、アク
セス速度はそれを使用するホストのデータ転送速度と比
較してかなり低速である。このため、従来から磁気ディ
スクを用いた記憶装置にはこれらの速度差を吸収するた
めにキャッシュメモリが搭載されてきた。これを用い
て、一度磁気ディスクから読み出されたデータをキャッ
シュメモリへ保存し、さらに、ホストが一度要求したデ
ータの論理ブロックアドレス(以下、LBA)に対応するデ
ータを磁気ディスクよりあらかじめ読み出す先読みと呼
ばれる機能を用いることで、ホストへのデータ転送速度
を向上させてきた。従来技術では、特開平6-119244に記
載されているように、記録装置の物理領域ごとのヒット
判定の結果を統計処理し、記録装置からの読み出しを制
御する方式、特開平8-134634に記載されているように、
ホストからのアクセスパターンがランダムアクセスか、
シーケンシャルアクセスかを識別して、記録装置からの
読み出しを行う方式、そして、米国特許5765213に記載
されているように、キャッシュメモリ内のデータの格納
状態から次に先読みを行うべき位置と先読み量を計算す
る方式がある。
【0003】
【発明が解決しようとする課題】上記従来技術では、先
読みを行う記録媒体上の各領域において、過去平均どれ
だけのデータが一度にアクセスされたかという情報を持
たない。そのため、ヒット率は高いがホストが少量のデ
ータしか要求してこないような領域に対してのアクセス
が行われた場合、その領域に対して先読みが起動される
と、必要以上にシーケンシャルに多量のデータをキャッ
シュメモリへ読み込んでしまう。このため、キャッシュ
メモリ上の他のデータを上書きしてしまうので、全体的
に見てキャッシュメモリのヒット率が低下する。
読みを行う記録媒体上の各領域において、過去平均どれ
だけのデータが一度にアクセスされたかという情報を持
たない。そのため、ヒット率は高いがホストが少量のデ
ータしか要求してこないような領域に対してのアクセス
が行われた場合、その領域に対して先読みが起動される
と、必要以上にシーケンシャルに多量のデータをキャッ
シュメモリへ読み込んでしまう。このため、キャッシュ
メモリ上の他のデータを上書きしてしまうので、全体的
に見てキャッシュメモリのヒット率が低下する。
【0004】また、上記従来技術では、ホストからのシ
ーケンシャルアクセスが一定期間続いた後、ランダムア
クセス傾向が強い領域のデータのアクセスを行った場
合、シーケンシャルに多量にキャッシュメモリに読み込
んでしまい、他のデータを上書きしてしまうので、キャ
ッシュメモリのヒット率が低下する。
ーケンシャルアクセスが一定期間続いた後、ランダムア
クセス傾向が強い領域のデータのアクセスを行った場
合、シーケンシャルに多量にキャッシュメモリに読み込
んでしまい、他のデータを上書きしてしまうので、キャ
ッシュメモリのヒット率が低下する。
【0005】また、上記従来技術では、先読制御のため
のデータをキャッシュメモリの状態を処理することで得
ていたため、キャッシュメモリの容量に依存する。この
ため、キャッシュメモリの容量が少ないと、先読み制御
のためのデータを十分に得ることが出来ず、先読み制御
の精度が低下する。
のデータをキャッシュメモリの状態を処理することで得
ていたため、キャッシュメモリの容量に依存する。この
ため、キャッシュメモリの容量が少ないと、先読み制御
のためのデータを十分に得ることが出来ず、先読み制御
の精度が低下する。
【0006】本発明の目的は、キャッシュメモリ内のデ
ータの不要な上書きを抑制し、キャッシュメモリの利用
効率を改善することである。
ータの不要な上書きを抑制し、キャッシュメモリの利用
効率を改善することである。
【0007】また、本発明の別の目的は、キャッシュメ
モリ内のデータのヒット率を向上させことである。
モリ内のデータのヒット率を向上させことである。
【0008】さらに、本発明の別の目的は、キャッシュ
メモリの容量とその制御方式の影響を受けずに先読みの
制御を行うことである。
メモリの容量とその制御方式の影響を受けずに先読みの
制御を行うことである。
【0009】
【課題を解決するための手段】上記目的を達成するため
に、ホストからのコマンドの履歴とそのコマンド履歴か
ら計算された統計結果を記録するワークメモリと、コマ
ンド履歴をワークメモリから読み出し、コマンド履歴の
順序により重み付けした統計処理を行い、記録装置の各
領域に対する評価値と平均アクセス量を求めワークメモ
リへ統計結果を記録する加重統計処理回路と、その統計
結果を読み出してホストからのコマンドと比較して、先
読み量とホストが要求している記録媒体上の領域の評価
値を計算する先読み量計算回路と、加重統計回路と先読
み量計算回路で使用する値を一時的に保持するレジスタ
群から構成された先読み予測装置を構成する。
に、ホストからのコマンドの履歴とそのコマンド履歴か
ら計算された統計結果を記録するワークメモリと、コマ
ンド履歴をワークメモリから読み出し、コマンド履歴の
順序により重み付けした統計処理を行い、記録装置の各
領域に対する評価値と平均アクセス量を求めワークメモ
リへ統計結果を記録する加重統計処理回路と、その統計
結果を読み出してホストからのコマンドと比較して、先
読み量とホストが要求している記録媒体上の領域の評価
値を計算する先読み量計算回路と、加重統計回路と先読
み量計算回路で使用する値を一時的に保持するレジスタ
群から構成された先読み予測装置を構成する。
【0010】また、上記他の目的を達成するために、先
読み予測装置を搭載し、ホストからのリード要求に対し
て、ホストが要求している記録媒体上の領域の評価値を
求めると同時に、先読み予測装置がディスクフォーマッ
タに対して先読み制御のための指示を出し、先読み量を
制限する機能を有するディスク制御装置を構成し、この
ディスク制御装置からCPUが評価値を取り出し、キャッ
シュメモリ内に保持されているデータの置換に用いるこ
とでキャッシュメモリを制御する記録装置を構成する。
読み予測装置を搭載し、ホストからのリード要求に対し
て、ホストが要求している記録媒体上の領域の評価値を
求めると同時に、先読み予測装置がディスクフォーマッ
タに対して先読み制御のための指示を出し、先読み量を
制限する機能を有するディスク制御装置を構成し、この
ディスク制御装置からCPUが評価値を取り出し、キャッ
シュメモリ内に保持されているデータの置換に用いるこ
とでキャッシュメモリを制御する記録装置を構成する。
【0011】
【発明の実施の形態】図1は、本発明を用いて構成され
た先読み予測装置の構成図の一例である。先読み予測装
置101は、統計データとコマンド履歴を保持するワーク
メモリ102と、ホストからのコマンド履歴から重み付け
統計処理を行いアクセス特性を求める加重統計回路103
と、統計結果から先読み量の算出と評価値を求める先読
み計算回路105と、加重統計回路103と先読み量計算回路
105が使用するレジスタをまとめたレジスタ群104から構
成されている。尚、図2に示すようにワークメモリ102
を先読み予測装置201に内蔵せず、外部メモリを使用し
てもよい。信号マルチプレクサ106は加重統計回路103と
先読み量計算回路105の制御信号を外部制御信号110によ
って切り替えてワークメモリ制御信号108を作り出す。
アドレスマルチプレクサ107は加重統計回路103と先読み
量計算回路105、外部アドレスバス112を外部制御信号11
0によって切り替えてワークメモリ102へのアドレスバス
109に接続する。データバス111は、各回路とワークメモ
リ102および外部回路のデータバスとの接続に使用され
データの送受を行うために使用される。
た先読み予測装置の構成図の一例である。先読み予測装
置101は、統計データとコマンド履歴を保持するワーク
メモリ102と、ホストからのコマンド履歴から重み付け
統計処理を行いアクセス特性を求める加重統計回路103
と、統計結果から先読み量の算出と評価値を求める先読
み計算回路105と、加重統計回路103と先読み量計算回路
105が使用するレジスタをまとめたレジスタ群104から構
成されている。尚、図2に示すようにワークメモリ102
を先読み予測装置201に内蔵せず、外部メモリを使用し
てもよい。信号マルチプレクサ106は加重統計回路103と
先読み量計算回路105の制御信号を外部制御信号110によ
って切り替えてワークメモリ制御信号108を作り出す。
アドレスマルチプレクサ107は加重統計回路103と先読み
量計算回路105、外部アドレスバス112を外部制御信号11
0によって切り替えてワークメモリ102へのアドレスバス
109に接続する。データバス111は、各回路とワークメモ
リ102および外部回路のデータバスとの接続に使用され
データの送受を行うために使用される。
【0012】本発明で行う統計処理の概念について説明
する。図3は、本発明で行う統計処理の説明図である。
する。図3は、本発明で行う統計処理の説明図である。
【0013】図示のグラフは、縦軸を評価値301、横軸
をLBA302としている。また、このとき、ホストからのコ
マンド履歴がコマンド順序303の順番で古い方から305a
〜305eの順番に保持されているとする。
をLBA302としている。また、このとき、ホストからのコ
マンド履歴がコマンド順序303の順番で古い方から305a
〜305eの順番に保持されているとする。
【0014】コマンド305aのLBAがAでアクセスセクタ数
がA’セクタとする。この時、グラフ上では、コマンド
履歴の番号に応じた評価値分だけ、位置Aから始まる領
域A’の評価値が上昇する。次に、コマンド305bに関し
ても同様の処理を行う。ただし、コマンド305aの領域と
一部重なるため、重なっている両端でのLBAを求め記録
する必要がある。コマンド305aとコマンド305bの重なり
の先頭部分はコマンド305bのLBAであるBが対応するが、
コマンド305aとコマンド305bの重なりの終端部分ついて
は、対応するLBAが存在しないため、新たにLBAを計算
し、この計算した値を新たな統計データとして保持して
おく。尚、図3ではこの新規LBAをaとしている。同様な
手順でコマンド305eまでの重み付け統計処理を行った結
果が図3の統計結果304である。
がA’セクタとする。この時、グラフ上では、コマンド
履歴の番号に応じた評価値分だけ、位置Aから始まる領
域A’の評価値が上昇する。次に、コマンド305bに関し
ても同様の処理を行う。ただし、コマンド305aの領域と
一部重なるため、重なっている両端でのLBAを求め記録
する必要がある。コマンド305aとコマンド305bの重なり
の先頭部分はコマンド305bのLBAであるBが対応するが、
コマンド305aとコマンド305bの重なりの終端部分ついて
は、対応するLBAが存在しないため、新たにLBAを計算
し、この計算した値を新たな統計データとして保持して
おく。尚、図3ではこの新規LBAをaとしている。同様な
手順でコマンド305eまでの重み付け統計処理を行った結
果が図3の統計結果304である。
【0015】図4は、実際の統計処理を行う場合におけ
るワークメモリ102の状態と各領域でのデータの形式、
および計算式を示している。ワークメモリ102は、コマ
ンド領域401と統計データ領域402および作業領域403に
分けられる。コマンド領域401では、データ形式404に示
すように、ホストからのコマンド履歴のLBAとアクセス
セクタ数を古いものから順に保持している。本実施例で
は、数百個のコマンド履歴を保持できるとする。ただ
し、コマンド領域は有限であるので、コマンド領域にコ
マンド履歴が収まりきらなくなった場合もっとも古いデ
ータを削除し新しいデータを書き込む。このためコマン
ド領域はリングバッファになっている。
るワークメモリ102の状態と各領域でのデータの形式、
および計算式を示している。ワークメモリ102は、コマ
ンド領域401と統計データ領域402および作業領域403に
分けられる。コマンド領域401では、データ形式404に示
すように、ホストからのコマンド履歴のLBAとアクセス
セクタ数を古いものから順に保持している。本実施例で
は、数百個のコマンド履歴を保持できるとする。ただ
し、コマンド領域は有限であるので、コマンド領域にコ
マンド履歴が収まりきらなくなった場合もっとも古いデ
ータを削除し新しいデータを書き込む。このためコマン
ド領域はリングバッファになっている。
【0016】統計データ領域402はデータ形式405で示す
形式で統計データを記録している。本実施例では、コマ
ンド領域の約4倍程度の大きさを持つとする。評価値は
数式(1)で示す計算式で計算される。数式(1)において、
コマンド履歴と評価値の対応づけを行うためのテーブル
については後述する。LBAは各統計データの先頭LBAであ
る。平均アクセス量は数式(2)で示す計算式によって計
算される。アクセス総和およびコマンド重畳数は平均ア
クセス量を計算するために使用される。尚、表中の値
は、例として図3のコマンド履歴の状態における値を示
している。尚、統計データ領域402もコマンド履歴領域4
01と同様有限であるため、統計データ領域402に空きが
なくなった場合、統計データでもっとも評価値の低い統
計データを削除して領域を確保する。
形式で統計データを記録している。本実施例では、コマ
ンド領域の約4倍程度の大きさを持つとする。評価値は
数式(1)で示す計算式で計算される。数式(1)において、
コマンド履歴と評価値の対応づけを行うためのテーブル
については後述する。LBAは各統計データの先頭LBAであ
る。平均アクセス量は数式(2)で示す計算式によって計
算される。アクセス総和およびコマンド重畳数は平均ア
クセス量を計算するために使用される。尚、表中の値
は、例として図3のコマンド履歴の状態における値を示
している。尚、統計データ領域402もコマンド履歴領域4
01と同様有限であるため、統計データ領域402に空きが
なくなった場合、統計データでもっとも評価値の低い統
計データを削除して領域を確保する。
【0017】図5は、レジスタ群104の構成図の一例で
ある。コマンド履歴に関する各レジスタ(504〜508)と統
計データに関する各レジスタ(509〜513)は、レジスタの
内容をアドレスデータとして出力することがあるのでア
ドレスマルチプレクサ503を介してアドレスバス502と接
続されている。
ある。コマンド履歴に関する各レジスタ(504〜508)と統
計データに関する各レジスタ(509〜513)は、レジスタの
内容をアドレスデータとして出力することがあるのでア
ドレスマルチプレクサ503を介してアドレスバス502と接
続されている。
【0018】各レジスタの役割について説明する。コマ
ンド履歴先頭レジスタ504はワークメモリ102上のコマン
ド履歴領域401の先頭を示す。コマンド履歴境界レジス
タ505はコマンド履歴領域401の終端を示す。コマンド履
歴最大数レジスタ506は、現在保持されているコマンド
履歴の総数を示す。コマンド履歴カレントポインタ507
は、コマンド履歴領域401の中で、現在のコマンド履歴
情報の中でどの部分が先頭になるかを示す。これは、コ
マンド履歴領域がリングバッファになっているためであ
る。コマンド履歴カウンタ508は、コマンド履歴情報を
用いて処理を行う際に利用する。
ンド履歴先頭レジスタ504はワークメモリ102上のコマン
ド履歴領域401の先頭を示す。コマンド履歴境界レジス
タ505はコマンド履歴領域401の終端を示す。コマンド履
歴最大数レジスタ506は、現在保持されているコマンド
履歴の総数を示す。コマンド履歴カレントポインタ507
は、コマンド履歴領域401の中で、現在のコマンド履歴
情報の中でどの部分が先頭になるかを示す。これは、コ
マンド履歴領域がリングバッファになっているためであ
る。コマンド履歴カウンタ508は、コマンド履歴情報を
用いて処理を行う際に利用する。
【0019】統計データ先頭レジスタ509はワークメモ
リ102上の統計データ領域402の先頭を示す。統計データ
境界レジスタ510は統計データ領域402の終端を示す。統
計データ最大数レジスタ511は、現在保持されている統
計データの総数を示す。統計データカレントポインタ51
2は、統計データ領域512の中で、現在の統計データ領域
の中でどの部分が先頭になるかを示す。統計データカウ
ンタ513は、統計データ情報を用いて処理を行う際に利
用する。
リ102上の統計データ領域402の先頭を示す。統計データ
境界レジスタ510は統計データ領域402の終端を示す。統
計データ最大数レジスタ511は、現在保持されている統
計データの総数を示す。統計データカレントポインタ51
2は、統計データ領域512の中で、現在の統計データ領域
の中でどの部分が先頭になるかを示す。統計データカウ
ンタ513は、統計データ情報を用いて処理を行う際に利
用する。
【0020】コマンドレジスタ514は、現在のコマンド
に関する情報を保持する。コマンド履歴レジスタ515
は、ワークメモリ102より読み出したコマンド履歴情報
を保持するために使用される。統計データレジスタ516
は、ワークメモリ102より読み出した統計データを保持
するために使用される。統計データLBAバッファレジス
タ517は、統計データレジスタ516のLBA情報のみを保持
するために使用される。平均アクセス数保持レジスタ51
8は、平均アクセス数を保持するために使用される。評
価値保持レジスタ519は、評価値を保持するために使用
される。統計LBA最小値レジスタ520は、統計データの中
で最小のLBAの値を保持する。統計LBA最大値レジスタ52
1は統計データの中で最大のLBAの値を保持する。
に関する情報を保持する。コマンド履歴レジスタ515
は、ワークメモリ102より読み出したコマンド履歴情報
を保持するために使用される。統計データレジスタ516
は、ワークメモリ102より読み出した統計データを保持
するために使用される。統計データLBAバッファレジス
タ517は、統計データレジスタ516のLBA情報のみを保持
するために使用される。平均アクセス数保持レジスタ51
8は、平均アクセス数を保持するために使用される。評
価値保持レジスタ519は、評価値を保持するために使用
される。統計LBA最小値レジスタ520は、統計データの中
で最小のLBAの値を保持する。統計LBA最大値レジスタ52
1は統計データの中で最大のLBAの値を保持する。
【0021】評価値変換テーブル522は、図6の評価値
変換テーブル601に示すように、コマンド履歴番号と評
価値を対応付けるための変換データが保持される。コマ
ンド履歴番号と評価値は対になって記録されており、コ
マンド履歴番号をこのテーブルに入力すると、対応する
評価値が出力される。このテーブルは必要に応じて動的
に更新できるようにRAMで構成してもよい。また、この
テーブルの更新をホストなど外部機器から行えるように
するために、テーブル制御用のコマンドセットを用意
し、それを用いて外部から動的にテーブルの制御を行っ
てもよい。
変換テーブル601に示すように、コマンド履歴番号と評
価値を対応付けるための変換データが保持される。コマ
ンド履歴番号と評価値は対になって記録されており、コ
マンド履歴番号をこのテーブルに入力すると、対応する
評価値が出力される。このテーブルは必要に応じて動的
に更新できるようにRAMで構成してもよい。また、この
テーブルの更新をホストなど外部機器から行えるように
するために、テーブル制御用のコマンドセットを用意
し、それを用いて外部から動的にテーブルの制御を行っ
てもよい。
【0022】先読み量変換テーブル523は図6の先読み
量変換テーブル602に示すように、統計データのアクセ
スLBAの範囲と先読み比率を対応付けるための変換デー
タが保持される。統計データのアクセスLBAの範囲と先
読み比率は対になって記録さており、統計データのアク
セスLBAの範囲を入力すると先読み比率が出力される。
このテーブルは必要に応じて更新できるようにRAMで構
成してもよい。
量変換テーブル602に示すように、統計データのアクセ
スLBAの範囲と先読み比率を対応付けるための変換デー
タが保持される。統計データのアクセスLBAの範囲と先
読み比率は対になって記録さており、統計データのアク
セスLBAの範囲を入力すると先読み比率が出力される。
このテーブルは必要に応じて更新できるようにRAMで構
成してもよい。
【0023】外部回路によって先読み予測装置101およ
び201を制御する手順を説明する。図7は先読み予測装
置の制御の手順を表したフローチャートである。これに
ついて説明する。
び201を制御する手順を説明する。図7は先読み予測装
置の制御の手順を表したフローチャートである。これに
ついて説明する。
【0024】外部回路はまず、ステップ700を実行す
る。
る。
【0025】ステップ700では、ワークメモリ102のコマ
ンド履歴カレントポインタ507の示す位置にホストから
のコマンドデータを記録する。
ンド履歴カレントポインタ507の示す位置にホストから
のコマンドデータを記録する。
【0026】ステップ701では、コマンド履歴カレント
ポインタ507に1を加える。
ポインタ507に1を加える。
【0027】ステップ702では、コマンド履歴カレント
ポインタ507とコマンド履歴境界レジスタ505の値を比較
し、コマンド履歴カレントポインタ507の値が大きい場
合は、ステップ703を実行する。
ポインタ507とコマンド履歴境界レジスタ505の値を比較
し、コマンド履歴カレントポインタ507の値が大きい場
合は、ステップ703を実行する。
【0028】ステップ703では、コマンド履歴カレント
ポインタ507をクリアする。
ポインタ507をクリアする。
【0029】ステップ704では、加重統計回路103を起動
して重み付け統計処理を行なう。動作の詳細については
後述する。
して重み付け統計処理を行なう。動作の詳細については
後述する。
【0030】ステップ705では、先読み量計算回路105を
起動して先読み量を算出する。動作の詳細については後
述する。
起動して先読み量を算出する。動作の詳細については後
述する。
【0031】加重統計回路103の動作について説明す
る。図8及び図9は加重統計回路103が重み付け統計処
理を行う際の動作を示すフローチャートである。
る。図8及び図9は加重統計回路103が重み付け統計処
理を行う際の動作を示すフローチャートである。
【0032】加重統計回路103が外部回路によって起動
されると、まず、ステップ801が実行され、コマンド履
歴カウンタ508と統計データLBAバッファレジスタ517が
クリアされる。
されると、まず、ステップ801が実行され、コマンド履
歴カウンタ508と統計データLBAバッファレジスタ517が
クリアされる。
【0033】ステップ802では、ワークメモリ102上のコ
マンド履歴カレントポインタ507の示す場所のコマンド
履歴の値から統計データ形式405に基づいて初期統計デ
ータを作成する。具体的には、コマンド履歴番号を評価
値変換テーブル601を用いて変換したものを評価値とし
て、コマンド履歴のLBA をLBAとして、コマンド履歴の
アクセスセクタ数を平均アクセス量とアクセス総和とし
て、そしてコマンド重畳数を1と設定する。このデータ
をワークメモリ102上の統計データ領域402の先頭に記録
する。
マンド履歴カレントポインタ507の示す場所のコマンド
履歴の値から統計データ形式405に基づいて初期統計デ
ータを作成する。具体的には、コマンド履歴番号を評価
値変換テーブル601を用いて変換したものを評価値とし
て、コマンド履歴のLBA をLBAとして、コマンド履歴の
アクセスセクタ数を平均アクセス量とアクセス総和とし
て、そしてコマンド重畳数を1と設定する。このデータ
をワークメモリ102上の統計データ領域402の先頭に記録
する。
【0034】ステップ803では、統計データ最大数レジ
スタ511に1をセットする。
スタ511に1をセットする。
【0035】ステップ804では、重畳フラグをクリアす
る。この重畳フラグは、統計処理を行う際、現在処理対
象になっているコマンドが統計データ領域の記録されて
いるデータと重なる部分が存在したかを示す。
る。この重畳フラグは、統計処理を行う際、現在処理対
象になっているコマンドが統計データ領域の記録されて
いるデータと重なる部分が存在したかを示す。
【0036】ステップ805では、コマンド履歴カウンタ5
08へ1を足す。
08へ1を足す。
【0037】ステップ806では、ワークメモリ102のコマ
ンド履歴領域401から、コマンド履歴カレントポインタ5
07にコマンド履歴カウンタ508を足した値の示す場所か
らコマンド履歴を取り出し、コマンド履歴レジスタ515
に読み出す。
ンド履歴領域401から、コマンド履歴カレントポインタ5
07にコマンド履歴カウンタ508を足した値の示す場所か
らコマンド履歴を取り出し、コマンド履歴レジスタ515
に読み出す。
【0038】ステップ807では、統計データカウンタ513
をクリアする。
をクリアする。
【0039】ステップ808では、ワークメモリ102上の統
計データ領域の空き領域を調べ、空き領域が存在する場
合は、ステップ809を実行する。そうでない場合はステ
ップ910へ制御を移す。
計データ領域の空き領域を調べ、空き領域が存在する場
合は、ステップ809を実行する。そうでない場合はステ
ップ910へ制御を移す。
【0040】ステップ809では、統計データカウンタ513
と統計データ最大数レジスタ511の値を比較して統計デ
ータカウンタ513の値が最大数レジスタ511の値よりも大
きい場合に、ステップ901へ制御を移す。そうでない場
合は、ステップ810を実行する。
と統計データ最大数レジスタ511の値を比較して統計デ
ータカウンタ513の値が最大数レジスタ511の値よりも大
きい場合に、ステップ901へ制御を移す。そうでない場
合は、ステップ810を実行する。
【0041】ステップ810では、ワークメモリ102上の統
計データ領域402内の統計データカレントポインタ512と
統計データカウンタ513を足した値が示す領域の統計デ
ータを読み出し、統計データレジスタ516にセットす
る。
計データ領域402内の統計データカレントポインタ512と
統計データカウンタ513を足した値が示す領域の統計デ
ータを読み出し、統計データレジスタ516にセットす
る。
【0042】ステップ811は、コマンド履歴レジスタ515
と統計データレジスタ516の示す領域が重なっているか
を比較し、重なっている場合はステップ812を実行し、
そうでない場合はステップ820を実行する。
と統計データレジスタ516の示す領域が重なっているか
を比較し、重なっている場合はステップ812を実行し、
そうでない場合はステップ820を実行する。
【0043】ステップ812では、ステップ811の比較結果
より、コマンド履歴と統計データの重なりが存在するこ
とが分かったため、重畳フラグをセットする。
より、コマンド履歴と統計データの重なりが存在するこ
とが分かったため、重畳フラグをセットする。
【0044】ステップ813では、統計データレジスタ516
のコマンド重畳数に1を加える。
のコマンド重畳数に1を加える。
【0045】ステップ814では、統計データレジスタ516
のアクセス総和にコマンド履歴レジスタ515のセクタ数
の値を加える。
のアクセス総和にコマンド履歴レジスタ515のセクタ数
の値を加える。
【0046】ステップ815では、統計データレジスタ516
内のコマンド重畳数とアクセス総和から平均アクセス量
を計算する。また、現在のコマンド履歴の番号を評価値
変換テーブル601を用いて評価値に変換し、その値を統
計データレジスタ516の評価値へ加える。
内のコマンド重畳数とアクセス総和から平均アクセス量
を計算する。また、現在のコマンド履歴の番号を評価値
変換テーブル601を用いて評価値に変換し、その値を統
計データレジスタ516の評価値へ加える。
【0047】ステップ816では、統計データのLBAとコマ
ンド履歴のLBAを比較し、コマンド履歴のLBAが大きい場
合は、ステップ906を実行する。そうでない場合は、ス
テップ817を実行する。
ンド履歴のLBAを比較し、コマンド履歴のLBAが大きい場
合は、ステップ906を実行する。そうでない場合は、ス
テップ817を実行する。
【0048】ステップ817では、統計データレジスタ516
の内容をワークメモリ102の統計データ領域402内の統計
データカレントポインタ512と統計データカウンタ513の
値を加えた値が示す領域へ記録する。
の内容をワークメモリ102の統計データ領域402内の統計
データカレントポインタ512と統計データカウンタ513の
値を加えた値が示す領域へ記録する。
【0049】ステップ818では、統計データカウンタ513
へ1を足す。
へ1を足す。
【0050】ステップ819では統計データLBAバッファレ
ジスタ517に統計データレジスタ516の統計データLBAを
設定し、ステップ808を実行する。
ジスタ517に統計データレジスタ516の統計データLBAを
設定し、ステップ808を実行する。
【0051】ステップ820では、重畳フラグがセットさ
れているかをチェックし、セットされている場合は、ス
テップ818を実行する。そうでない場合は、ステップ821
を実行する。
れているかをチェックし、セットされている場合は、ス
テップ818を実行する。そうでない場合は、ステップ821
を実行する。
【0052】ステップ821では、統計データLBAバッファ
レジスタ517の値とコマンド履歴レジスタ515のLBAを比
較し、コマンド履歴レジスタ515の値が大きい場合は、
ステップ818を実行する。そうでない場合は、ステップ8
23を実行する。
レジスタ517の値とコマンド履歴レジスタ515のLBAを比
較し、コマンド履歴レジスタ515の値が大きい場合は、
ステップ818を実行する。そうでない場合は、ステップ8
23を実行する。
【0053】ステップ822では、統計データレジスタ516
の値とコマンド履歴レジスタ505のLBAを比較し、コマン
ド履歴レジスタ505の値が大きい場合は、ステップ818を
実行する。そうでない場合は、ステップ822を実行す
る。
の値とコマンド履歴レジスタ505のLBAを比較し、コマン
ド履歴レジスタ505の値が大きい場合は、ステップ818を
実行する。そうでない場合は、ステップ822を実行す
る。
【0054】ステップ823では、統計データカレントポ
インタ512の示すデータ以降のデータをすべて後ろにシ
フトして、新しい統計データを挿入できる領域を用意す
る。そして、コマンド履歴レジスタ515の値から、ステ
ップ802で作成した同様の形式で新規統計データを作成
し、そのデータを挿入する。
インタ512の示すデータ以降のデータをすべて後ろにシ
フトして、新しい統計データを挿入できる領域を用意す
る。そして、コマンド履歴レジスタ515の値から、ステ
ップ802で作成した同様の形式で新規統計データを作成
し、そのデータを挿入する。
【0055】ステップ824では、統計データ最大数レジ
スタ511に1を足す。
スタ511に1を足す。
【0056】ステップ825では、重畳フラグをセットし
て、ステップ804を実行する。
て、ステップ804を実行する。
【0057】ステップ901では、重畳フラグをチェック
する。セットされていればステップ904を実行する。セ
ットされていなければステップ902を実行する。
する。セットされていればステップ904を実行する。セ
ットされていなければステップ902を実行する。
【0058】ステップ902はでは、コマンド履歴レジス
タ515の値からステップ802で述べたのと同様の形式で、
コマンド履歴レジスタ515から新規統計データを作成
し、ワークメモリ102の統計データ領域402内で、現在存
在する統計データの最後尾に追加する。
タ515の値からステップ802で述べたのと同様の形式で、
コマンド履歴レジスタ515から新規統計データを作成
し、ワークメモリ102の統計データ領域402内で、現在存
在する統計データの最後尾に追加する。
【0059】ステップ903では、統計データ最大数レジ
スタ511に1を加える。
スタ511に1を加える。
【0060】ステップ904では、コマンド履歴カウンタ5
08に1を加える。
08に1を加える。
【0061】ステップ905では、コマンド履歴カウンタ5
08とコマンド履歴最大数レジスタ506の内容を比較し、
コマンド履歴カウンタ508の値が大きければ、処理を終
了する。そうでなければ、ステップ804へ制御を移す。
08とコマンド履歴最大数レジスタ506の内容を比較し、
コマンド履歴カウンタ508の値が大きければ、処理を終
了する。そうでなければ、ステップ804へ制御を移す。
【0062】ステップ906では、統計データレジスタ516
のLBAの値をコマンド履歴レジスタ515のLBAの値に置き
換える。
のLBAの値をコマンド履歴レジスタ515のLBAの値に置き
換える。
【0063】ステップ907では、統計データ最大数レジ
スタ511に1を加える。
スタ511に1を加える。
【0064】ステップ908では、統計データカレントポ
インタ512の示すデータの次のデータ以降のすべてのデ
ータをすべて後ろにシフトして、統計データレジスタ51
6の内容を新規統計データとして挿入する。
インタ512の示すデータの次のデータ以降のすべてのデ
ータをすべて後ろにシフトして、統計データレジスタ51
6の内容を新規統計データとして挿入する。
【0065】ステップ909では、統計データカウンタ513
に2を加え、ステップ819を実行する。
に2を加え、ステップ819を実行する。
【0066】ステップ910では、統計データカウンタ513
の値を一時的に退避し、統計データカウンタ513をクリ
アする。
の値を一時的に退避し、統計データカウンタ513をクリ
アする。
【0067】ステップ911では、統計データカレントポ
インタ512に統計データ先頭レジスタの値をセットす
る。
インタ512に統計データ先頭レジスタの値をセットす
る。
【0068】ステップ912では、ワークメモリ1021か
ら、統計データを統計データレジスタ516に読み出し、
統計データの評価値を評価値保持レジスタ519へ保存す
る。
ら、統計データを統計データレジスタ516に読み出し、
統計データの評価値を評価値保持レジスタ519へ保存す
る。
【0069】ステップ913では、統計データカウンタ513
へ1を加える。
へ1を加える。
【0070】ステップ914では、統計データレジスタ516
へ、統計データを読みむ。
へ、統計データを読みむ。
【0071】ステップ915では、評価値保持レジスタ519
と統計データレジスタ516の値を比較し、統計データレ
ジスタ516の値が大きければ、ステップ916を実行する。
と統計データレジスタ516の値を比較し、統計データレ
ジスタ516の値が大きければ、ステップ916を実行する。
【0072】ステップ916では、評価値保持レジスタ519
に統計データレジスタ516の値の評価値を記録し、統計
データカレントポインタ512の値を読み出した統計デー
タの位置へセットする。
に統計データレジスタ516の値の評価値を記録し、統計
データカレントポインタ512の値を読み出した統計デー
タの位置へセットする。
【0073】ステップ917では、統計データカウンタ513
の値と統計データ最大数を比較し、等しければ、ステッ
プ918を実行する。そうでなければ、ステップ908へ制御
を移す。
の値と統計データ最大数を比較し、等しければ、ステッ
プ918を実行する。そうでなければ、ステップ908へ制御
を移す。
【0074】ステップ918では、ワークメモリ102の統計
データカレントポインタ507の示す位置のデータを削除
する。
データカレントポインタ507の示す位置のデータを削除
する。
【0075】ステップ919では、統計データ最大数レジ
スタ511から1を引く。
スタ511から1を引く。
【0076】ステップ920では、統計データカウンタを
復旧し、ステップ809へ制御を移す。
復旧し、ステップ809へ制御を移す。
【0077】加重統計回路103が統計データの生成を終
了すると、次に、統計データのLBAの範囲を求めるため
に、加重統計回路103は図10で示すフローチャートに
従った動作を行う。これについて説明する。
了すると、次に、統計データのLBAの範囲を求めるため
に、加重統計回路103は図10で示すフローチャートに
従った動作を行う。これについて説明する。
【0078】まず、ステップ1001が実行され統計データ
カウンタ513がクリアされる。
カウンタ513がクリアされる。
【0079】ステップ1002では、統計データをワークメ
モリ102の統計データ領域402から統計データレジスタ51
6に読み出す。
モリ102の統計データ領域402から統計データレジスタ51
6に読み出す。
【0080】ステップ1003では統計LBA最大値レジスタ5
21と統計LBA最小値レジスタ520に統計データレジスタ51
6の値をセットする。
21と統計LBA最小値レジスタ520に統計データレジスタ51
6の値をセットする。
【0081】ステップ1004では、統計データカウンタ51
3に1を加える。
3に1を加える。
【0082】ステップ1005では、統計データレジスタ51
6に統計データをワークメモリ102から読み出す。
6に統計データをワークメモリ102から読み出す。
【0083】ステップ1006では、統計データレジスタ51
6のLBAと統計LBA最大値レジスタ521の値を比較し、統計
データのLBAが大きい場合は、ステップ1008を実行す
る。そうでない場合は、ステップ1007を実行する。
6のLBAと統計LBA最大値レジスタ521の値を比較し、統計
データのLBAが大きい場合は、ステップ1008を実行す
る。そうでない場合は、ステップ1007を実行する。
【0084】ステップ1007では、統計データレジスタ51
6のLBAと統計LBA最小値レジスタ520の値を比較し、統計
データのLBAが小さい場合は、ステップ1009を実行す
る。そうでない場合は、ステップ1010を実行する。
6のLBAと統計LBA最小値レジスタ520の値を比較し、統計
データのLBAが小さい場合は、ステップ1009を実行す
る。そうでない場合は、ステップ1010を実行する。
【0085】ステップ1008では、統計データレジスタ51
6のLBAの値を統計LBA最大値レジスタ521へセットする。
6のLBAの値を統計LBA最大値レジスタ521へセットする。
【0086】ステップ1009では、統計データレジスタ51
6のLBAの値を統計LBA最小値レジスタ520へセットする。
6のLBAの値を統計LBA最小値レジスタ520へセットする。
【0087】ステップ1010では、統計データカウンタ51
3と統計データ最大数レジスタ521の値を比較し、統計デ
ータカウンタ513の値が大きければ、処理を終了する。
そうでない場合は、ステップ1004を実行する。
3と統計データ最大数レジスタ521の値を比較し、統計デ
ータカウンタ513の値が大きければ、処理を終了する。
そうでない場合は、ステップ1004を実行する。
【0088】図11は先読み計算回路105の動作のフロ
ーチャートを示したものである。これについて説明す
る。
ーチャートを示したものである。これについて説明す
る。
【0089】先読み量計算回路が外部回路によって起動
されると、まずステップ1100が実行される。このステッ
プでは、ホストからデータバス111を介して転送されて
きたLBAとセクタ数をコマンドレジスタ514に記録する。
されると、まずステップ1100が実行される。このステッ
プでは、ホストからデータバス111を介して転送されて
きたLBAとセクタ数をコマンドレジスタ514に記録する。
【0090】ステップ1101では、統計データカウンタ51
3と評価値保持レジスタ519および平均アクセス数保持レ
ジスタ518をクリアする。
3と評価値保持レジスタ519および平均アクセス数保持レ
ジスタ518をクリアする。
【0091】ステップ1102では、統計データカウンタ51
3と統計データ最大数レジスタ511の値を比較し、もし統
計データカウンタ513の値が大きければ、ステップ1109
を実行する。そうでなければ、ステップ1103を実行す
る。
3と統計データ最大数レジスタ511の値を比較し、もし統
計データカウンタ513の値が大きければ、ステップ1109
を実行する。そうでなければ、ステップ1103を実行す
る。
【0092】ステップ1103では、ワークメモリ102から
統計データを統計データレジスタ516へ読み出す。
統計データを統計データレジスタ516へ読み出す。
【0093】ステップ1104では、統計データレジスタ51
6とコマンドレジスタ514の値を比較し、アクセス領域の
重なりを調べる。アクセス領域の重なりがあれば、ステ
ップ1105を実行する。そうでなければステップ1108を実
行する。
6とコマンドレジスタ514の値を比較し、アクセス領域の
重なりを調べる。アクセス領域の重なりがあれば、ステ
ップ1105を実行する。そうでなければステップ1108を実
行する。
【0094】ステップ1105では、統計データレジスタ51
6の評価値と評価値保持レジスタ519の値を比較し、統計
データレジスタ516の値が大きければ、ステップ1106を
実行する。そうでなければ、ステップ1108を実行する。
6の評価値と評価値保持レジスタ519の値を比較し、統計
データレジスタ516の値が大きければ、ステップ1106を
実行する。そうでなければ、ステップ1108を実行する。
【0095】ステップ1106では、評価値保持レジスタ51
9の値を統計データレジスタ516の評価値に置きかえる。
9の値を統計データレジスタ516の評価値に置きかえる。
【0096】ステップ1107では、平均アクセス数保持レ
ジスタ518の値を、統計データレジスタ516の平均アクセ
ス数に置きかえる。
ジスタ518の値を、統計データレジスタ516の平均アクセ
ス数に置きかえる。
【0097】ステップ1108では、統計データカウンタに
1を加える。
1を加える。
【0098】ステップ1109では、統計LBA最大値レジス
タ521から統計LBA最小値レジスタ520の値を引くことで
統計データのアクセス範囲を求める。
タ521から統計LBA最小値レジスタ520の値を引くことで
統計データのアクセス範囲を求める。
【0099】ステップ1110では、アクセス幅の値を先読
み量変換テーブル602を用いて先読み比率データに変換
する。
み量変換テーブル602を用いて先読み比率データに変換
する。
【0100】ステップ1111では、先読み比率と平均アク
セス数の積を取ることで先読み量を算出する。
セス数の積を取ることで先読み量を算出する。
【0101】次に、本発明を用いて構成されたハードデ
ィスクについて説明する。
ィスクについて説明する。
【0102】(1)ディスク制御装置1203内に先読み予測
装置1211を内蔵する場合 図12は、本発明を用いて構成されたハードディスクを
用いた情報器機の構成図の一例である。ホスト1200はホ
ストインタフェース1201によってハードディスク1202と
接続されている。ハードディスク1202はディスク制御装
置1203、キャッシュメモリ1220、ROM1208、CPU1213、サ
ーボ系制御回路1224、そして記録媒体1228から構成され
ている。ディスク制御装置1203は、インタフェース制御
回路1204、シーケンサ1207、先読み予測装置1211、アド
レスマルチプレクサ1209および1214、データマルチプレ
クサ1222、ECC1227、ディスクフォーマッタ1226から構
成されている。キャッシュメモリ1220は、ハードディス
ク1202とホスト1200間で送受を行うデータを記憶してお
くと共に、キャッシュメモリ1220内のデータを管理すた
めのセグメント管理テーブルなどの情報を記憶する場合
もある。
装置1211を内蔵する場合 図12は、本発明を用いて構成されたハードディスクを
用いた情報器機の構成図の一例である。ホスト1200はホ
ストインタフェース1201によってハードディスク1202と
接続されている。ハードディスク1202はディスク制御装
置1203、キャッシュメモリ1220、ROM1208、CPU1213、サ
ーボ系制御回路1224、そして記録媒体1228から構成され
ている。ディスク制御装置1203は、インタフェース制御
回路1204、シーケンサ1207、先読み予測装置1211、アド
レスマルチプレクサ1209および1214、データマルチプレ
クサ1222、ECC1227、ディスクフォーマッタ1226から構
成されている。キャッシュメモリ1220は、ハードディス
ク1202とホスト1200間で送受を行うデータを記憶してお
くと共に、キャッシュメモリ1220内のデータを管理すた
めのセグメント管理テーブルなどの情報を記憶する場合
もある。
【0103】また、先読み予測装置1211が図1で示した
先読み予測装置101のようにワークメモリ102を内蔵せ
ず、図2で示した先読み予測装置201の構成になっている
場合には、先読み予測装置1211のワークメモリの働きも
する。ROM1208はハードディスク1202の制御に必要なフ
ァームウェア、制御パラメータなどが記憶されている。
CPU1213は、ファームウェアの実行、サーボ系制御回路1
224の制御に用いられる。サーボ系制御回路1224は記録
媒体1228の機械系とそれに関連のある部分の制御を行
う。記録媒体1228はデータを記録する磁気ディスク、磁
気ディスクからの信号と、ディスクフォーマッタとの間
のデータ変換を行い読み出し書き込みを行うためのR/W
チャネル、磁気ディスクを制御する機械系等から構成さ
れている。尚、記録媒体としては磁気ディスク以外の記
録媒体でも良い。
先読み予測装置101のようにワークメモリ102を内蔵せ
ず、図2で示した先読み予測装置201の構成になっている
場合には、先読み予測装置1211のワークメモリの働きも
する。ROM1208はハードディスク1202の制御に必要なフ
ァームウェア、制御パラメータなどが記憶されている。
CPU1213は、ファームウェアの実行、サーボ系制御回路1
224の制御に用いられる。サーボ系制御回路1224は記録
媒体1228の機械系とそれに関連のある部分の制御を行
う。記録媒体1228はデータを記録する磁気ディスク、磁
気ディスクからの信号と、ディスクフォーマッタとの間
のデータ変換を行い読み出し書き込みを行うためのR/W
チャネル、磁気ディスクを制御する機械系等から構成さ
れている。尚、記録媒体としては磁気ディスク以外の記
録媒体でも良い。
【0104】インタフェース制御回路1204は、ホスト12
00とインタフェース1201を介して接続されており、ホス
ト1200とハードディスク1202間の実際のデータ転送を制
御し、必要なデータを内部データバス1212へ載せる。シ
ーケンサ1207はインタフェース制御信号1205、モジュー
ル制御信号1210を用いて、ディスク制御装置1203内の各
モジュールおよびキャッシュメモリ1220を制御する。ま
た、必要に応じてCPU割り込み制御信号1206によってCPU
1213へ割り込みを発生させる。アドレスマルチプレクサ
1209はシーケンサ1207の内部アドレスバス1215とCPU121
3のCPUアドレスバス1219を切り替えて、先読み予測装置
1211のアドレスバスと接続する。先読み予測装置1211は
ホストからコマンドが来た際にそのコマンドをコマンド
履歴として保持し、コマンド履歴に関する統計処理を行
い、現在のコマンドにおける評価値と先読み量を算出す
る。
00とインタフェース1201を介して接続されており、ホス
ト1200とハードディスク1202間の実際のデータ転送を制
御し、必要なデータを内部データバス1212へ載せる。シ
ーケンサ1207はインタフェース制御信号1205、モジュー
ル制御信号1210を用いて、ディスク制御装置1203内の各
モジュールおよびキャッシュメモリ1220を制御する。ま
た、必要に応じてCPU割り込み制御信号1206によってCPU
1213へ割り込みを発生させる。アドレスマルチプレクサ
1209はシーケンサ1207の内部アドレスバス1215とCPU121
3のCPUアドレスバス1219を切り替えて、先読み予測装置
1211のアドレスバスと接続する。先読み予測装置1211は
ホストからコマンドが来た際にそのコマンドをコマンド
履歴として保持し、コマンド履歴に関する統計処理を行
い、現在のコマンドにおける評価値と先読み量を算出す
る。
【0105】また、ディスクフォーマッタ制御信号1221
が存在する場合は、この信号によって直接ディスクフォ
ーッタに先読み量を設定し、先読みを制御する。アドレ
スマルチプレクサ1214は、キャッシュメモリ1220と接続
するディスク制御装置1203内の内部アドレスバス1215と
CPUアドレスバス1219及びディスクフォーマッタアドレ
スバス1216及び、先読み予測装置1211がキャッシュメモ
リ1220をワークメモリとして用いる場合に使用されるア
ドレスバス1231を切り替える。データマルチプレクサ12
22はCPUデータバス1218及びフォーマッタデータバス122
3とディスク制御装置1203内の内部データバス1212との
接続を制御する。ECC1227はディスクフォーマッタ1226
とECCデータバス1229を介して接続されており、記録媒
体1228より読み出したデータのエラー訂正を行う。ディ
スクフォーマッタ1226は、信号バス1230を介して記録媒
体1228との間でデータ転送を行う。
が存在する場合は、この信号によって直接ディスクフォ
ーッタに先読み量を設定し、先読みを制御する。アドレ
スマルチプレクサ1214は、キャッシュメモリ1220と接続
するディスク制御装置1203内の内部アドレスバス1215と
CPUアドレスバス1219及びディスクフォーマッタアドレ
スバス1216及び、先読み予測装置1211がキャッシュメモ
リ1220をワークメモリとして用いる場合に使用されるア
ドレスバス1231を切り替える。データマルチプレクサ12
22はCPUデータバス1218及びフォーマッタデータバス122
3とディスク制御装置1203内の内部データバス1212との
接続を制御する。ECC1227はディスクフォーマッタ1226
とECCデータバス1229を介して接続されており、記録媒
体1228より読み出したデータのエラー訂正を行う。ディ
スクフォーマッタ1226は、信号バス1230を介して記録媒
体1228との間でデータ転送を行う。
【0106】本実施例では、キャッシュメモリ1220の制
御方式として可変セグメント方式を用いた。ただし、先
読み予測装置1211自体は、キャッシュメモリの制御方式
に依存せずに使用することが可能である。
御方式として可変セグメント方式を用いた。ただし、先
読み予測装置1211自体は、キャッシュメモリの制御方式
に依存せずに使用することが可能である。
【0107】可変セグメント方式について説明する。図
14にこの方式におけるキャッシュメモリ1400内の状態
とセグメント管理テーブル1401を示す。キャッシュメモ
リ1400はワークエリアとデータエリアに分けて使用され
る。ワークエリアには、ファームウェアの情報およびセ
グメント管理テーブル、場合によっては先読み予測装置
1211のデータが記憶される。ただし、セグメント管理テ
ーブルは高速なアクセスが要求されるので、キャッシュ
メモリ1400以外の場所(ディスク制御装置1203内、CPU1
213内の作業用不揮発性メモリ等)の記録領域に記録さ
れる場合もある。データエリアはハードディスク1202と
ホスト1200間で送受されるデータが記憶される。
14にこの方式におけるキャッシュメモリ1400内の状態
とセグメント管理テーブル1401を示す。キャッシュメモ
リ1400はワークエリアとデータエリアに分けて使用され
る。ワークエリアには、ファームウェアの情報およびセ
グメント管理テーブル、場合によっては先読み予測装置
1211のデータが記憶される。ただし、セグメント管理テ
ーブルは高速なアクセスが要求されるので、キャッシュ
メモリ1400以外の場所(ディスク制御装置1203内、CPU1
213内の作業用不揮発性メモリ等)の記録領域に記録さ
れる場合もある。データエリアはハードディスク1202と
ホスト1200間で送受されるデータが記憶される。
【0108】本方式では、データエリア内のLBAの連続
するデータを一まとまりとしてセグメントとし、各セグ
メントをセグメント管理テーブルで管理する。セグメン
ト管理テーブルの内容は、図14のセグメント管理テー
ブル1401に示すように、そのセグメントの評価値、各セ
グメント内のデータの先頭LBA、キャッシュメモリ1220
内でのデータの先頭アドレス、セグメントのデータサイ
ズが記録されている。新しくデータを記憶する場合、デ
ータアクセスポインタ1402の示すアドレスからデータ
を記憶させ、データの記憶が終了した時点で、データの
記憶を開始した先頭アドレスおよび対応するLBA、そし
て記憶したデータのサイズをセグメント管理テーブルに
登録し、生成したセグメントの最後尾の次のアドレス値
にデータアクセスポインタ1402の値を更新する。データ
エリアはリングバッファになっており、データエリアの
最後までデータが記憶されると、データエリアの先頭に
戻って後続のデータを記憶させる。この時、新しいデー
タによって上書きされるセグメントが存在する場合、そ
のセグメントを破棄し、セグメント管理テーブルの対応
するセグメント情報を無効にする。
するデータを一まとまりとしてセグメントとし、各セグ
メントをセグメント管理テーブルで管理する。セグメン
ト管理テーブルの内容は、図14のセグメント管理テー
ブル1401に示すように、そのセグメントの評価値、各セ
グメント内のデータの先頭LBA、キャッシュメモリ1220
内でのデータの先頭アドレス、セグメントのデータサイ
ズが記録されている。新しくデータを記憶する場合、デ
ータアクセスポインタ1402の示すアドレスからデータ
を記憶させ、データの記憶が終了した時点で、データの
記憶を開始した先頭アドレスおよび対応するLBA、そし
て記憶したデータのサイズをセグメント管理テーブルに
登録し、生成したセグメントの最後尾の次のアドレス値
にデータアクセスポインタ1402の値を更新する。データ
エリアはリングバッファになっており、データエリアの
最後までデータが記憶されると、データエリアの先頭に
戻って後続のデータを記憶させる。この時、新しいデー
タによって上書きされるセグメントが存在する場合、そ
のセグメントを破棄し、セグメント管理テーブルの対応
するセグメント情報を無効にする。
【0109】ホストからコマンド受けた場合についてハ
ードディスク1202の動作について説明する。
ードディスク1202の動作について説明する。
【0110】図15は、ディスク制御装置1203とCPU121
3の動作を示すフローチャートである。ステップ1502に
示すようにディスク制御装置1203がホスト1200からコマ
ンドを受けると、ディスク制御装置1203はコマンド受信
割り込みをCPU1213に対して発行しCPU1213を呼び出す。
次にディスク制御装置1203は、ステップ1503に示すよう
に、先読み予測装置1211へホスト1200からのコマンドデ
ータを転送する。その後、ステップ1504では、先読み予
測装置1211が統計処理と先読み量の算出を行う。そし
て、ステップ1505で、先読み予測装置1211は、直接ディ
スクフォーマッタ1226に対して最大先読み量を設定す
る。
3の動作を示すフローチャートである。ステップ1502に
示すようにディスク制御装置1203がホスト1200からコマ
ンドを受けると、ディスク制御装置1203はコマンド受信
割り込みをCPU1213に対して発行しCPU1213を呼び出す。
次にディスク制御装置1203は、ステップ1503に示すよう
に、先読み予測装置1211へホスト1200からのコマンドデ
ータを転送する。その後、ステップ1504では、先読み予
測装置1211が統計処理と先読み量の算出を行う。そし
て、ステップ1505で、先読み予測装置1211は、直接ディ
スクフォーマッタ1226に対して最大先読み量を設定す
る。
【0111】一方、CPU1213は、ディスク制御装置1203
からコマンド受信割り込みを受けると、ステップ1512に
示すようにコマンドの解析を行う、そして、ステップ15
13では、ホスト1200からのコマンドがリードコマンドか
どうか判定し、違えば、ステップ1516で示すように、他
のコマンドの処理をディスク制御装置1203を操作して行
う。リードコマンドなら、ステップ1515で、キャッシュ
メモリの内のデータとのヒット判定を行う。データがヒ
ットした場合、ステップ1506に示すように、ディスク制
御装置1203を制御してキャッシュメモリ1220上のヒット
したデータをホスト1200へ転送する。またその時点で行
われている先読みに関する処理はそのまま継続する。
からコマンド受信割り込みを受けると、ステップ1512に
示すようにコマンドの解析を行う、そして、ステップ15
13では、ホスト1200からのコマンドがリードコマンドか
どうか判定し、違えば、ステップ1516で示すように、他
のコマンドの処理をディスク制御装置1203を操作して行
う。リードコマンドなら、ステップ1515で、キャッシュ
メモリの内のデータとのヒット判定を行う。データがヒ
ットした場合、ステップ1506に示すように、ディスク制
御装置1203を制御してキャッシュメモリ1220上のヒット
したデータをホスト1200へ転送する。またその時点で行
われている先読みに関する処理はそのまま継続する。
【0112】ヒットしなかった場合、ステップ1516でハ
ーフヒット判定を行う。
ーフヒット判定を行う。
【0113】ミスの場合、ステップ1517を実行する。こ
のステップでは、新しいセグメントをキャッシュメモリ
1220上に生成する。もしキャッシュメモリ1220に空き領
域がない場合、セグメント管理テーブル1401の各セグメ
ントの評価値とデータサイズを比較して、データサイズ
が平均アクセス数保持レジスタ518の値よりも大きく、
その中で評価値が最も低いセグメントを調べ、そのセグ
メントの先頭にデータアクセスポインタ1402を設定す
る。そのセグメント情報を削除する。新たにデータアク
セスポインタ1402の値を先頭アドレスとし、評価値保持
レジスタ519の値を評価値として設定した新規セグメン
トを生成する。
のステップでは、新しいセグメントをキャッシュメモリ
1220上に生成する。もしキャッシュメモリ1220に空き領
域がない場合、セグメント管理テーブル1401の各セグメ
ントの評価値とデータサイズを比較して、データサイズ
が平均アクセス数保持レジスタ518の値よりも大きく、
その中で評価値が最も低いセグメントを調べ、そのセグ
メントの先頭にデータアクセスポインタ1402を設定す
る。そのセグメント情報を削除する。新たにデータアク
セスポインタ1402の値を先頭アドレスとし、評価値保持
レジスタ519の値を評価値として設定した新規セグメン
トを生成する。
【0114】ハーフヒットの場合、ステップ1518を実行
する。このステップでは、評価値保持レジスタ519の値
が高ければ、ステップ1519でセグメント管理テーブル14
01内のハーフヒットしたセグメントのセグメントサイズ
を更新する。この更新方法には以下に示す2通りがあ
る。
する。このステップでは、評価値保持レジスタ519の値
が高ければ、ステップ1519でセグメント管理テーブル14
01内のハーフヒットしたセグメントのセグメントサイズ
を更新する。この更新方法には以下に示す2通りがあ
る。
【0115】(a) ハーフヒットの場合でハーフヒットし
たセグメントのデータが図17の1700に示すようにホス
ト要求データの後ろにあたる場合、データアクセスポイ
ンタ1402を図17の1700から1701で示す位置に更新す
る。これによってホスト要求データを記録媒体1228から
読み出した場合、後ろの部分がちょうどハーフヒットし
たセグメントのデータと重なるようにデータアクセスポ
インタ1402を設定される。そしてセグメント管理テーブ
ル1401内のハーフヒットしたセグメントのセグメントサ
イズを更新する。
たセグメントのデータが図17の1700に示すようにホス
ト要求データの後ろにあたる場合、データアクセスポイ
ンタ1402を図17の1700から1701で示す位置に更新す
る。これによってホスト要求データを記録媒体1228から
読み出した場合、後ろの部分がちょうどハーフヒットし
たセグメントのデータと重なるようにデータアクセスポ
インタ1402を設定される。そしてセグメント管理テーブ
ル1401内のハーフヒットしたセグメントのセグメントサ
イズを更新する。
【0116】(b) ハーフヒットの場合でハーフヒット
したセグメントのデータが図18の1800に示すように、
ホスト要求データの前半部にあたる場合、データアクセ
スポインタ1402を図18の1800から1801で示す位置に更
新する。これによって不足分のデータのみをハーフヒッ
トしたセグメントの直後から連続して読み出すようにす
る。そしてセグメント管理テーブル1401内のハーフヒッ
トしたセグメントのセグメントサイズを更新する。
したセグメントのデータが図18の1800に示すように、
ホスト要求データの前半部にあたる場合、データアクセ
スポインタ1402を図18の1800から1801で示す位置に更
新する。これによって不足分のデータのみをハーフヒッ
トしたセグメントの直後から連続して読み出すようにす
る。そしてセグメント管理テーブル1401内のハーフヒッ
トしたセグメントのセグメントサイズを更新する。
【0117】ミスおよびハーフヒットの場合ステップ15
07に示すようにCPU1213がディスク制御装置1203を操作
して先読みを起動する。
07に示すようにCPU1213がディスク制御装置1203を操作
して先読みを起動する。
【0118】ステップ1508で、ホスト要求分のデータが
キャッシュメモリ1220に読みこまれたかを判定し、読み
こまれた場合、ディスク制御装置1203はCPU1213に対し
てセグメント更新割り込みを発行する。CPU1213は、ス
テップ1519でセグメント情報を更新し、ディスク制御装
置1203を起動して、ステップ1506を実行させる。次にデ
ィスク制御装置1203は、ステップ1509で先読みを継続
し、ステップ1510で最大先読み量に先読み量が達したか
判定する。最大先読み量に先読み量が達した場合、ステ
ップ1511で先読みを停止させ、CPU1213に先読み停止割
り込みを発行する。これを受けたCPU1213はステップ152
0でセグメント情報を更新する。
キャッシュメモリ1220に読みこまれたかを判定し、読み
こまれた場合、ディスク制御装置1203はCPU1213に対し
てセグメント更新割り込みを発行する。CPU1213は、ス
テップ1519でセグメント情報を更新し、ディスク制御装
置1203を起動して、ステップ1506を実行させる。次にデ
ィスク制御装置1203は、ステップ1509で先読みを継続
し、ステップ1510で最大先読み量に先読み量が達したか
判定する。最大先読み量に先読み量が達した場合、ステ
ップ1511で先読みを停止させ、CPU1213に先読み停止割
り込みを発行する。これを受けたCPU1213はステップ152
0でセグメント情報を更新する。
【0119】(2)ディスク制御装置1301の外部に先読み
予測装置1302を搭載する場合 図13は、本発明を用いて構成されたハードディスクを
用いた情報器機の構成図の一例である。図12の構成と
の変更点は、先読み予測装置1302がディスク制御装置13
01の外部に設置されている。このため、先読み予測装置
1302はCPUデータバス1218とCPUアドレスバス1219および
CPU制御信号1217に接続されている。
予測装置1302を搭載する場合 図13は、本発明を用いて構成されたハードディスクを
用いた情報器機の構成図の一例である。図12の構成と
の変更点は、先読み予測装置1302がディスク制御装置13
01の外部に設置されている。このため、先読み予測装置
1302はCPUデータバス1218とCPUアドレスバス1219および
CPU制御信号1217に接続されている。
【0120】ホストからコマンドを受けた場合について
ハードディスク1300の動作について説明する。
ハードディスク1300の動作について説明する。
【0121】図16は、ディスク制御装置1301とCPU121
3の動作を示すフローチャートである。ステップ1600に
示すようにホストからコマンドを受けると、ディスク制
御装置は1301はコマンド受信割り込みを発行してCPU121
3を呼び出す。CPU1213は、ディスク制御装置1203からの
割り込みを受けると、ステップ1608でコマンドの解析を
行う、そして、ステップ1609では、ホスト1200からのコ
マンドがリードコマンドかどうか判定し、違えばステッ
プ1601で、他のコマンドの処理をディスク制御装置1203
を操作して行う。リードコマンドなら、ステップ1610で
先読み予測装置1302へホスト1200からのコマンドデータ
を転送する。そして、ステップ1611で先読み予測装置13
02を制御して統計処理と先読み量を算出する。この後、
ステップ1612で、キャッシュメモリ1220内のデータのヒ
ット判定を行う。データがヒットした場合、ステップ16
02で、ディスク制御装置1301を制御してキャッシュメモ
リ1220上のヒットしたデータをホスト1200へ転送する。
先読み関しては特に制御をせず現状を維持する。
3の動作を示すフローチャートである。ステップ1600に
示すようにホストからコマンドを受けると、ディスク制
御装置は1301はコマンド受信割り込みを発行してCPU121
3を呼び出す。CPU1213は、ディスク制御装置1203からの
割り込みを受けると、ステップ1608でコマンドの解析を
行う、そして、ステップ1609では、ホスト1200からのコ
マンドがリードコマンドかどうか判定し、違えばステッ
プ1601で、他のコマンドの処理をディスク制御装置1203
を操作して行う。リードコマンドなら、ステップ1610で
先読み予測装置1302へホスト1200からのコマンドデータ
を転送する。そして、ステップ1611で先読み予測装置13
02を制御して統計処理と先読み量を算出する。この後、
ステップ1612で、キャッシュメモリ1220内のデータのヒ
ット判定を行う。データがヒットした場合、ステップ16
02で、ディスク制御装置1301を制御してキャッシュメモ
リ1220上のヒットしたデータをホスト1200へ転送する。
先読み関しては特に制御をせず現状を維持する。
【0122】ヒットしなかった場合、ステップ1613でハ
ーフヒット判定を行う。
ーフヒット判定を行う。
【0123】ミスの場合、ステップ1614で、新しいセグ
メントをキャッシュメモリ1220上に生成する。もしキャ
ッシュメモリ1220に空き領域がない場合、セグメント管
理テーブル1401の各セグメントの評価値とデータサイズ
を比較して、データサイズが平均アクセス数保持レジス
タ518の値よりも大きく、その中で評価値が最も低いセ
グメントを調べ、そのセグメントの先頭にデータアクセ
スポインタ1402を設定する。そして、セグメント情報を
削除し、新たにデータアクセスポインタ1402の値を先頭
アドレスとし、評価値保持レジスタ519の値を評価値と
して設定した新規セグメントを生成する。
メントをキャッシュメモリ1220上に生成する。もしキャ
ッシュメモリ1220に空き領域がない場合、セグメント管
理テーブル1401の各セグメントの評価値とデータサイズ
を比較して、データサイズが平均アクセス数保持レジス
タ518の値よりも大きく、その中で評価値が最も低いセ
グメントを調べ、そのセグメントの先頭にデータアクセ
スポインタ1402を設定する。そして、セグメント情報を
削除し、新たにデータアクセスポインタ1402の値を先頭
アドレスとし、評価値保持レジスタ519の値を評価値と
して設定した新規セグメントを生成する。
【0124】ハーフヒットの場合、ステップ1615を実行
する。このステップでは、評価値保持レジスタ519の値
が高ければ、ステップ1615でセグメント管理テーブル14
01内のハーフヒットしたセグメントのセグメントサイズ
を更新する。この更新方法には以下に示す2通りがあ
る。
する。このステップでは、評価値保持レジスタ519の値
が高ければ、ステップ1615でセグメント管理テーブル14
01内のハーフヒットしたセグメントのセグメントサイズ
を更新する。この更新方法には以下に示す2通りがあ
る。
【0125】(a) ハーフヒットの場合でハーフヒットし
たセグメントのデータが図17の1700に示すようにホス
ト要求データの後ろにあたる場合、データアクセスポイ
ンタ1402を図17の1700から1701で示す位置に更新す
る。これによってホスト要求データを記録媒体1228から
読み出した場合、後ろの部分がちょうどハーフヒットし
たセグメントのデータと重なるようにデータアクセスポ
インタ1402を設定される。そしてセグメント管理テーブ
ル1401内のハーフヒットしたセグメントのセグメントサ
イズを更新する。
たセグメントのデータが図17の1700に示すようにホス
ト要求データの後ろにあたる場合、データアクセスポイ
ンタ1402を図17の1700から1701で示す位置に更新す
る。これによってホスト要求データを記録媒体1228から
読み出した場合、後ろの部分がちょうどハーフヒットし
たセグメントのデータと重なるようにデータアクセスポ
インタ1402を設定される。そしてセグメント管理テーブ
ル1401内のハーフヒットしたセグメントのセグメントサ
イズを更新する。
【0126】(b) ハーフヒットの場合でハーフヒット
したセグメントのデータが図18の1800に示すように、
ホスト要求データの前半部にあたる場合、データアクセ
スポインタ1402を図18の1800から1801で示す位置に更
新する。これによって不足分のデータのみをハーフヒッ
トしたセグメントの直後から連続して読み出すようにす
る。そしてセグメント管理テーブル1401内のハーフヒッ
トしたセグメントのセグメントサイズを更新する。
したセグメントのデータが図18の1800に示すように、
ホスト要求データの前半部にあたる場合、データアクセ
スポインタ1402を図18の1800から1801で示す位置に更
新する。これによって不足分のデータのみをハーフヒッ
トしたセグメントの直後から連続して読み出すようにす
る。そしてセグメント管理テーブル1401内のハーフヒッ
トしたセグメントのセグメントサイズを更新する。
【0127】ミスおよびハーフヒットの場合、ステップ
1601を実行する。
1601を実行する。
【0128】このステップでは、先読み予測装置1302か
ら最大先読み量を読み出し、ディスク制御装置1301に指
示をだし、ディスクフォーマッタ1304に最大先読み量を
設定する。そして、ステップ1603に示すように先読みを
起動する。
ら最大先読み量を読み出し、ディスク制御装置1301に指
示をだし、ディスクフォーマッタ1304に最大先読み量を
設定する。そして、ステップ1603に示すように先読みを
起動する。
【0129】ステップ1604で、ホスト1200要求分のデー
タがキャッシュメモリ1220に読みこまれたかを判定し、
読みこまれた場合、ディスク制御装置1301はCPU1213に
対してセグメント更新割り込みを発生させる。CPU1213
は、ステップ1617でセグメント情報を更新し、ディスク
制御装置1301を起動して、ステップ1602を実行させる。
次にディスク制御装置1301は、ステップ1605で先読みを
継続し、ステップ1606で最大先読み量に先読み量が達し
たか判定する。最大先読み量に先読み量が達した場合、
ステップ1607で先読みを停止させ、CPU1213に対してデ
ィスク制御装置1301は先読み停止割り込みを発行する。
これを受けたCPU1213はステップ1618でセグメント情報
を更新する。
タがキャッシュメモリ1220に読みこまれたかを判定し、
読みこまれた場合、ディスク制御装置1301はCPU1213に
対してセグメント更新割り込みを発生させる。CPU1213
は、ステップ1617でセグメント情報を更新し、ディスク
制御装置1301を起動して、ステップ1602を実行させる。
次にディスク制御装置1301は、ステップ1605で先読みを
継続し、ステップ1606で最大先読み量に先読み量が達し
たか判定する。最大先読み量に先読み量が達した場合、
ステップ1607で先読みを停止させ、CPU1213に対してデ
ィスク制御装置1301は先読み停止割り込みを発行する。
これを受けたCPU1213はステップ1618でセグメント情報
を更新する。
【0130】本発明を用いて構成されたディスクアレイ
コントローラの一例を図19に示す。インタフェース制
御回路1901は、ホスト1200とのインタフェース1201を制
御する。マイクロプロセッサ1903は、ディスクアレイコ
ントローラ1900内の各モジュールを制御する。記録装置
制御回路1905は、記録装置1906を制御する。キャッシュ
メモリ1902は、ホスト1200及び記録装置1906から転送さ
れて来たデータを一時的に保持する。バス1901は、ディ
スクアレイコントローラ1900内の各モジュールを接続す
るために使用する。記録装置接続バス1908は、ディスク
アレイコントローラ1900と記録装置1906を接続するため
に使用する。
コントローラの一例を図19に示す。インタフェース制
御回路1901は、ホスト1200とのインタフェース1201を制
御する。マイクロプロセッサ1903は、ディスクアレイコ
ントローラ1900内の各モジュールを制御する。記録装置
制御回路1905は、記録装置1906を制御する。キャッシュ
メモリ1902は、ホスト1200及び記録装置1906から転送さ
れて来たデータを一時的に保持する。バス1901は、ディ
スクアレイコントローラ1900内の各モジュールを接続す
るために使用する。記録装置接続バス1908は、ディスク
アレイコントローラ1900と記録装置1906を接続するため
に使用する。
【0131】ホスト1200からコマンドを受けた場合につ
いてディスクアレイ1900の動作について説明する。
いてディスクアレイ1900の動作について説明する。
【0132】図20は、ディスクアレイコントローラ19
00の全体の動作とその内部のマイクロプロセッサ1903の
動作を示すフローチャートである。このフローチャート
で示す動作は図16で示すフローチャートと比較して、
ステップ2016で最大先読み量を設定するのが記録装置制
御回路1905である以外同様である。本実施例では、磁気
ディスクを記録媒体に用いた場合について説明したが、
無論、記録媒体が光磁気ディスクなどの他の円盤状記録
媒体を用いた場合についても同様である。
00の全体の動作とその内部のマイクロプロセッサ1903の
動作を示すフローチャートである。このフローチャート
で示す動作は図16で示すフローチャートと比較して、
ステップ2016で最大先読み量を設定するのが記録装置制
御回路1905である以外同様である。本実施例では、磁気
ディスクを記録媒体に用いた場合について説明したが、
無論、記録媒体が光磁気ディスクなどの他の円盤状記録
媒体を用いた場合についても同様である。
【0133】
【発明の効果】本発明では、ホストからのコマンドに対
して、その履歴を保持し、記録媒体上の各領域の平均ア
クセス量を求める。以後その領域に対してホストからア
クセスがあった場合、先読み量を最適化し、キャッシュ
メモリへ余分なデータを読み込まないように先読みを制
御する。このためキャッシュメモリの使用効率が改善す
ると共に、必要なデータを読み込んだ時点でディスクフ
ォーマッタの動作が停止しているため、ホストの要求か
ら、シーク動作の開始までの時間を短縮することが可能
である。
して、その履歴を保持し、記録媒体上の各領域の平均ア
クセス量を求める。以後その領域に対してホストからア
クセスがあった場合、先読み量を最適化し、キャッシュ
メモリへ余分なデータを読み込まないように先読みを制
御する。このためキャッシュメモリの使用効率が改善す
ると共に、必要なデータを読み込んだ時点でディスクフ
ォーマッタの動作が停止しているため、ホストの要求か
ら、シーク動作の開始までの時間を短縮することが可能
である。
【0134】また、コマンド履歴の時間的な情報を考慮
した重み付け統計処理を行うことで、記録媒体上の各領
域のホストからのアクセス頻度を求め、キャッシュメモ
リの各セグメントが対応する記録媒体上の領域について
の評価値を求めておく、そして、ホストからアクセスが
あった場合、その評価値に基づいてキャッシュメモリ内
への記録媒体からのデータの読みこみ位置、およびデー
タの置換を制御することで、キャッシュメモリの使用効
率を改善できる。
した重み付け統計処理を行うことで、記録媒体上の各領
域のホストからのアクセス頻度を求め、キャッシュメモ
リの各セグメントが対応する記録媒体上の領域について
の評価値を求めておく、そして、ホストからアクセスが
あった場合、その評価値に基づいてキャッシュメモリ内
への記録媒体からのデータの読みこみ位置、およびデー
タの置換を制御することで、キャッシュメモリの使用効
率を改善できる。
【図1】本発明を用いて構成された先読み予測装置の構
成図である。
成図である。
【図2】図1の先読み予測装置においてワークメモリを
外部に設けた場合の構成図である。
外部に設けた場合の構成図である。
【図3】先読み予測装置で行われる重み付け統計処理の
概略図である。
概略図である。
【図4】ワークメモリの構成と各領域でのデータ形式お
よび統計処理を行う際に使用される計算式の説明図であ
る。
よび統計処理を行う際に使用される計算式の説明図であ
る。
【図5】図1のレジスタ群102の詳細な構成図である。
【図6】図5の各テーブルの変換形式の説明図である。
【図7】先読み予測装置の動作を説明したフローチャー
トである。
トである。
【図8】加重統計回路が重み付け統計処理を行う際の動
作を説明したフローチャートである。
作を説明したフローチャートである。
【図9】加重統計回路の重み付け統計処理を行う際の動
作を説明したフローチャートである。
作を説明したフローチャートである。
【図10】加重統計回路が統計データのLBAの範囲を求
める際の動作を説明したフローチャートである。
める際の動作を説明したフローチャートである。
【図11】先読み量計算回路の動作を説明したフローチ
ャートである。
ャートである。
【図12】図1あるいは図2の先読み予測装置を内蔵し
たディスク制御装置を用いて構成されたハードディスク
装置の構成図である。
たディスク制御装置を用いて構成されたハードディスク
装置の構成図である。
【図13】図1あるいは図2の先読み予測装置をディス
ク制御装置の外部に設けて構成されたハードディスク装
置の構成図である。
ク制御装置の外部に設けて構成されたハードディスク装
置の構成図である。
【図14】図12あるいは図13のハードディスクにお
けるキャッシュメモリの制御方式の説明図である。
けるキャッシュメモリの制御方式の説明図である。
【図15】図12のハードディスクがホストからコマン
ドを受けた場合の動作を説明したフローチャートであ
る。
ドを受けた場合の動作を説明したフローチャートであ
る。
【図16】図13のハードディスクがホストからコマン
ドを受けた場合の動作を説明したフローチャートであ
る。
ドを受けた場合の動作を説明したフローチャートであ
る。
【図17】図15および図16のハードディスクにおい
てキャッシュメモリのデータに対してハーフヒットが起
こった場合の処理の説明図である。
てキャッシュメモリのデータに対してハーフヒットが起
こった場合の処理の説明図である。
【図18】図15および図16のハードディスクにおい
てキャッシュメモリのデータに対してハーフヒットが起
こった場合の処理の説明図である。
てキャッシュメモリのデータに対してハーフヒットが起
こった場合の処理の説明図である。
【図19】図1あるいは図2の先読み予測装置を搭載し
たディスクアレイコントローラを用いて構成されたディ
スクアレイの構成図である。
たディスクアレイコントローラを用いて構成されたディ
スクアレイの構成図である。
【図20】図19のディスクアレイがホストからコマン
ドを受けた場合の動作を説明したフローチャートであ
る。
ドを受けた場合の動作を説明したフローチャートであ
る。
106…制御信号マルチプレクサ、107…アドレスマルチ
プレクサ、108…ワークメモリ制御信号、404…コマン
ド領域データ形式、405…統計データ領域データ形式、5
03…アドレスマルチプレクサ、1205…インタフェース制
御信号、1210…モジュール制御信号、1216…ディスクフ
ォーマッタアドレスバス、1223…ディスクフォーマッタ
データバス、1231…アドレスバス、1221…ディスクフォ
ーマッタ制御信号、1229…ECCデータバス、1230…信号
バス、1225…記録媒体制御信号、1907…バス、1908…記
録装置制御バス
プレクサ、108…ワークメモリ制御信号、404…コマン
ド領域データ形式、405…統計データ領域データ形式、5
03…アドレスマルチプレクサ、1205…インタフェース制
御信号、1210…モジュール制御信号、1216…ディスクフ
ォーマッタアドレスバス、1223…ディスクフォーマッタ
データバス、1231…アドレスバス、1221…ディスクフォ
ーマッタ制御信号、1229…ECCデータバス、1230…信号
バス、1225…記録媒体制御信号、1907…バス、1908…記
録装置制御バス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 本田 聖志 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 市川 正敏 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 高安 厚志 神奈川県小田原市国府津2880番地 株式会 社日立製作所ストレージシステム事業部内 (72)発明者 西川 学 神奈川県小田原市国府津2880番地 株式会 社日立製作所ストレージシステム事業部内 Fターム(参考) 5B005 JJ13 MM11 NN22 VV03 5B065 BA01 CE12 CH05 5D044 AB01 BC01 CC04 FG10 FG30 HH02 HL02
Claims (5)
- 【請求項1】現在のコマンドと以前のコマンドの履歴か
ら最適な先読み量を算出する先読み予測装置において、
コマンドの履歴と、コマンド履歴内の各コマンドの順
序、コマンドがアクセスしたロジカルブロックアドレス
及びセクタ数によって重み付けして統計処理を行った結
果を保持しておくワークメモリと、コマンド履歴のアク
セス順序から重み付け統計処理を行う際に用いる評価値
を求めるための評価値変換テーブルと、コマンドの履歴
をワークメモリから取り出し、評価値変換テーブルを用
いて評価値を求め、統計データと統計データの範囲の広
がりを計算し、ワークメモリへ統計データを記録する加
重統計計算回路と、統計データの範囲の広がりを先読み
量の比率に変換する比較変換テーブルと、ワークメモリ
内の統計データと現在のコマンドを比較し対応する統計
データの先読み量に関するデータを取り出し、比較変換
テーブルを用いて算出した先読み比率と積をとることで
先読み量を算出する先読み計算回路からなることを特徴
とする先読み予測装置。 - 【請求項2】請求項1記載の先読み予測装置を内蔵し、
ホストとのインタフェースを制御するインタフェース制
御回路、複数のアドレスバスを制御するアドレスマルチ
プレクサ、データバスを制御するデータマルチプレク
サ、記録媒体を制御するディスクフォーマッタ、エラー
訂正を行うECC、各モジュールを制御するシーケンサか
ら構成され、ホストからコマンドを受け取ると直接先読
み予測装置を起動して先読み量を計算し、ディスクフォ
ーマッタに最大先読み量を設定することで記録媒体から
の先読みを制限することを特徴とするディスク制御装
置。 - 【請求項3】請求項1記載の先読み予測装置と、ディス
ク制御装置、キャッシュメモリ、ROM、CPU、記録媒体を
制御するサーボ系制御回路から構成され、ディスク制御
装置がホストからコマンドを受け取ると、CPUに対して
ディスク制御装置が割り込みを発生させることでコマン
ドの入力を知らせ、CPUが先読み予測装置を制御して先
読み量を算出し、ディスク制御装置に対して先読み量を
設定することを特徴とする記録装置。 - 【請求項4】請求項2記載のディスク制御装置を内蔵し
た記録装置において、CPUがキャッシュメモリ内のデー
タをセグメント単位で扱い、個々のセグメント情報を記
録したセグメント管理テーブルによってセグメントを管
理するキャッシュメモリの制御方式において、先読み予
測装置が計算した評価値をCPUが読み出し、その評価値
をセグメント管理テーブルの各セグメントに関する評価
値情報と比較し、最も評価値が低いセグメント情報を破
棄することで、先読みを行うデータの格納領域をキャッ
シュメモリ上に確保することを特徴とする記録装置。 - 【請求項5】請求項4記載の記録装置において、ホスト
の発行したコマンドが、キャッシュメモリ内のデータの
一部にヒットした場合(ハーフヒット)、先読み予測装置
が計算したアクセス評価値を調べ、評価値が高ければハ
ーフヒットしたセグメントに不足分のデータを記録媒体
から読み出すことで新しいセグメントを生成することな
くハーフヒットしたセグメントのセグメントサイズを拡
大することで、評価値の高いセグメントを残すように制
御を行うことを特徴とする記録装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000175556A JP2001350669A (ja) | 2000-06-07 | 2000-06-07 | 先読み予測装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000175556A JP2001350669A (ja) | 2000-06-07 | 2000-06-07 | 先読み予測装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001350669A true JP2001350669A (ja) | 2001-12-21 |
Family
ID=18677415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000175556A Pending JP2001350669A (ja) | 2000-06-07 | 2000-06-07 | 先読み予測装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2001350669A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2189261A1 (en) | 2001-11-15 | 2010-05-26 | Max Co., Ltd. | Staple cartridge |
US8151102B2 (en) | 2008-04-01 | 2012-04-03 | Lenovo (Singapore) Pte. Ltd. | System and methods for booting electronic devices |
JP2013520756A (ja) * | 2010-02-24 | 2013-06-06 | マーベル ワールド トレード リミテッド | データ格納デバイスへのアクセスの空間分布に基づくキャッシュ |
WO2013108380A1 (ja) * | 2012-01-18 | 2013-07-25 | 株式会社日立製作所 | セグメント割当管理システム及び方法 |
US8984219B2 (en) | 2011-09-22 | 2015-03-17 | Samsung Electronics Co., Ltd. | Data storage device and method of writing data in the same |
JP2017004469A (ja) * | 2015-06-16 | 2017-01-05 | 富士通株式会社 | 基地局装置、処理方法、プログラム、無線通信システム、及び、基地局処理カード |
CN116504293A (zh) * | 2023-06-27 | 2023-07-28 | 芯天下技术股份有限公司 | nor flash的读取方法、装置、存储芯片及设备 |
-
2000
- 2000-06-07 JP JP2000175556A patent/JP2001350669A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2189261A1 (en) | 2001-11-15 | 2010-05-26 | Max Co., Ltd. | Staple cartridge |
US8151102B2 (en) | 2008-04-01 | 2012-04-03 | Lenovo (Singapore) Pte. Ltd. | System and methods for booting electronic devices |
JP2013520756A (ja) * | 2010-02-24 | 2013-06-06 | マーベル ワールド トレード リミテッド | データ格納デバイスへのアクセスの空間分布に基づくキャッシュ |
US8984219B2 (en) | 2011-09-22 | 2015-03-17 | Samsung Electronics Co., Ltd. | Data storage device and method of writing data in the same |
WO2013108380A1 (ja) * | 2012-01-18 | 2013-07-25 | 株式会社日立製作所 | セグメント割当管理システム及び方法 |
JP2017004469A (ja) * | 2015-06-16 | 2017-01-05 | 富士通株式会社 | 基地局装置、処理方法、プログラム、無線通信システム、及び、基地局処理カード |
CN116504293A (zh) * | 2023-06-27 | 2023-07-28 | 芯天下技术股份有限公司 | nor flash的读取方法、装置、存储芯片及设备 |
CN116504293B (zh) * | 2023-06-27 | 2023-10-13 | 芯天下技术股份有限公司 | nor flash的读取方法、装置、存储芯片及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9665495B2 (en) | Methods and systems for throttling writes to a caching device in response to read misses | |
US7146467B2 (en) | Method of adaptive read cache pre-fetching to increase host read throughput | |
JP5349897B2 (ja) | ストレージシステム | |
US5895488A (en) | Cache flushing methods and apparatus | |
US7159073B2 (en) | Data storage and caching architecture | |
JPH03164840A (ja) | ディスクベースコンピュータシステムにおけるデータキャッシングを最適化する方法及びシステム | |
US9886386B2 (en) | Self-adjusting caching system | |
US5933848A (en) | System for managing the caching of data of a mass storage within a portion of a system memory | |
JPH0574102B2 (ja) | ||
US11036639B2 (en) | Cache apparatus and method that facilitates a reduction in energy consumption through use of first and second data arrays | |
JP2001350669A (ja) | 先読み予測装置 | |
JPH1011337A (ja) | 記憶装置におけるデータ制御方法 | |
US10608670B2 (en) | Control device, method and non-transitory computer-readable storage medium | |
JPH11212733A (ja) | 外部記憶システム | |
US20140337583A1 (en) | Intelligent cache window management for storage systems | |
JP2016186735A (ja) | 記憶制御システム及び記憶制御装置 | |
JP2001117818A (ja) | メモリ管理装置及び管理方法並びに管理プログラムを記録した記録媒体 | |
JP3407428B2 (ja) | ディスクキャッシュ装置 | |
JPH0415493B2 (ja) | ||
KR101831126B1 (ko) | 스토리지 내의 데이터 처리 장치의 제어 방법 | |
JPH09146834A (ja) | ディスク装置 | |
JP2022159714A (ja) | 情報処理装置及び情報処理方法 | |
JPH0612328A (ja) | キャッシュメモリのデータ蓄積方法 | |
JPH11110291A (ja) | ディスクキャッシュ制御方法 | |
JPH0325642A (ja) | ディスクキャッシュ制御方式 |