JPH0659952A - 磁気ディスク装置 - Google Patents

磁気ディスク装置

Info

Publication number
JPH0659952A
JPH0659952A JP4211639A JP21163992A JPH0659952A JP H0659952 A JPH0659952 A JP H0659952A JP 4211639 A JP4211639 A JP 4211639A JP 21163992 A JP21163992 A JP 21163992A JP H0659952 A JPH0659952 A JP H0659952A
Authority
JP
Japan
Prior art keywords
segment
data
storage means
information
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP4211639A
Other languages
English (en)
Inventor
Yasuichi Hashimoto
保一 橋本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP4211639A priority Critical patent/JPH0659952A/ja
Priority to US08/101,494 priority patent/US5603002A/en
Publication of JPH0659952A publication Critical patent/JPH0659952A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

Abstract

(57)【要約】 【目的】既存のマイクロコントローラと比較的小さなハ
ードウェアを組み合わせることで、高性能のキャッシュ
記憶機能を比較的安価に実現し、バッファ記憶制御のた
めのオーバーヘッド時間を短縮する。 【構成】バッファメモリを複数のセグメントに分割し、
セグメントを単位としてバッファメモリの使用方法を管
理し、高性能ディスク・キャッシュ・システムを構成す
るものであって、その際に、ヒット判定、置換セグメン
トの選定、LRUカウンタの更新などを行う比較的安価
なハードウェアを第2のバッファ記憶制御部14eとし
てディスク制御部(HDC)14に備え、これをマイク
ロコントローラ14eで制御する。これにより、マイク
ロコントローラ14eだけで行う場合に比べて、著しく
高速に処理することができ、オーバヘッド時間を短縮す
ることができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、バッファ制御機能を備
えた磁気ディスク装置に関する。
【0002】
【従来の技術】近年、磁気ディスク装置(HDD)で
は、小型化が進み、パーソナル・コンピュータをはじめ
とする小型コンピュータの外部記憶装置として利用され
ている。また、小型システム用に標準的に使用されるイ
ンターフェースを備えた磁気ディスクコントローラ(H
DC)が大規模集積回路素子として供給されるようにな
り、システム装着の容易性から、小型コンピュータ用磁
気ディスク装置はディスク・コントローラを内蔵するよ
うになっている。
【0003】ディスク・コントローラは、ホストとの間
でデータ転送を行う場合、バイトまたはワード形式で行
うが、ディスクに対するデータの読み書きは本質的にビ
ット直列データで行う。この場合、ディスク記録面に対
する記録・再生動作と、ホスト間転送動作の間に異なっ
た時間的制約があり、完全に同期することができない等
の理由があるため、必ずデータを一時的に格納するデー
タ・バッファが必要になる。ディスク・コントローラを
含む磁気ディスク装置では、データ転送の効率、性能を
向上させるために、比較的大きな容量のバッファメモリ
を備え、バッファ制御に先読み機能や、キャッシュ記憶
の機能を持つようになっている。
【0004】一般に、磁気ディスク装置には、コントロ
ーラも含めた装置の制御にマイクロコントローラを使用
しており、前述の先読み機能やキャッシュ制御も、この
内蔵のマイクロコントローラを利用して、高度な制御を
行うようになってきた。
【0005】一方、記録密度の向上により、大容量化、
高速転送化が著しく進み、さらに半導体記憶回路の高密
度化も相まって、コストや性能のバランスがとれた高性
能キャッシュ記憶を磁気ディスク装置に備えることが比
較的容易に可能であり、その要求も強くなってきた。
【0006】
【発明が解決しようとする課題】ここで、従来、バッフ
ァメモリ内に存在するデータと、アクセス対象データが
同一アドレスのものかどうかを判定する、データ的中判
定(いわゆるヒット判定)や、バッファメモリの中のデ
ータを入れ換える時の置き換え規則である置換アルゴリ
ズムは、内蔵されているマイクロコントローラによって
実現されている。
【0007】このため、バッファメモリを高性能化する
と、それに応じてこれらの処理に比較的大きな時間を要
し、マイクロコントローラのオーバーヘッド時間が長く
なってしまうという問題が生じ、例えば高性能マイクロ
コントローラや、高速プログラム記憶素子を用いたり、
複数のマイクロコントローラを用いて高性能化したり、
処理能力に合わせて機能を縮退するなどの対応が必要に
なる。なお、ここでのオーバーヘッド時間とは、マイク
ロコントローラがホストからのコマンドを受けてから、
実際にヘッドが動き出すまでの時間のことである。
【0008】本発明は上記のような点に鑑みなされたも
ので、既存のマイクロコントローラと比較的小さなハー
ドウェアを組み合わせることで、高性能のキャッシュ記
憶機能を比較的安価に実現し、バッファ記憶制御のため
のオーバーヘッド時間を短縮する磁気ディスク装置を提
供することを目的とする。
【0009】
【課題を解決するための手段】本発明の磁気ディスク装
置は、バッファメモリを複数のセグセメントで分割し、
この各セグメント毎に少なくとも1ブロック以上のデー
タを格納するようにしたものである。
【0010】また、本発明の磁気ディスク装置では、バ
ッファ記憶制御手段が、上記各セグメント毎に当該セグ
メントに有効なデータが記憶されていることを示す第1
の記憶手段と、上記各セグメント毎に当該セグメントに
記憶されたデータのブロックアドレスに関する情報を記
憶する第2の記憶手段と、上記各セグメント毎に当該セ
グメントに記憶されたデータの有効ブロック数に関する
情報を記憶する第3の記憶手段と、上記各セグメント毎
に当該セグメントに記憶されたデータの使用状態に関す
る情報を記憶する第4の記憶手段と、アクセス対象ブロ
ックのブロックアドレスに関する情報を記憶する第5の
記憶手段と、上記アクセス対象ブロックのブロック数に
関する情報を記憶する第6の記憶手段と、上記各セグメ
ントの中の特定のセグメントに対応する上記第1から第
4の記憶手段を選択するセグメント情報選択手段と、加
減算を行う演算手段と、上記セグメント情報選択手段に
よって選択された情報と上記第5および第6の記憶手段
からの上記アクセス対象ブロックに関する情報とを選択
的に上記演算手段に供給するデータ選択手段と、上記各
セグメント毎に上記第5および第6の記憶手段によって
指定されるアクセス対象の1つ以上の上記ブロックが上
記第2および第3の記憶手段によって指定される上記セ
グメント内の1つ以上の上記ブロックと同一のブロック
アドレスを持つことを示すブロック的中情報を記憶する
第7の記憶手段とを備える。
【0011】また、上記バッファ記憶制御手段は、デー
タ処理手段の指示に応じて、上記第1の記憶手段によっ
て内容が有効であることが示されている上記各セグメン
トに対して、上記第2および第3の記憶手段により得ら
れるセグメント内ブロックアドレスと上記第5および第
6の記憶手段によって指定される上記アクセス対象ブロ
ックアドレスとを上記演算手段を用いて比較し、上記第
5および第6の記憶手段によって指定されるアクセス対
象の1つ以上の上記ブロックが上記第2および第3の記
憶手段によって指定される上記セグメント内の1つ以上
の上記ブロックと同一のブロックアドレスを持つ場合
に、当該セグメントに対応する上記第7の記憶手段に上
記ブロック的中情報を格納する機能と、上記第1の記憶
手段によって内容が有効であることが示されている上記
各セグメントに対して、特定のセグメントが最後に使用
されたことを示すように上記第4の記憶手段の内容を更
新する機能と、上記バッファメモリのいずれかの上記セ
グメントに新たにデータを記憶する場合に、上記第1お
よび第4の記憶手段の内容に基づいて、使用すべき上記
セグメントの選定を行う機能と、1つ以上の上記特定の
セグメントに対応する上記第1の記憶手段の内容を、対
応する上記セグメントの内容が無効であることを示すよ
うに設定する機能とを有する。
【0012】
【作用】上記の構成によれば、上記バッファ記憶制御手
段によって上記バッファメモリの一部または全部を上記
データ処理手段の制御に従って上記記録媒体に記憶され
ている対応する上記ブロックのデータとして利用するよ
うにしたことで、上記データ処理手段だけで行う場合に
比べて、著しく高速に処理することができ、オーバヘッ
ド時間を短縮することができる。
【0013】
【実施例】以下、図面を参照して本発明の一実施例に係
る磁気ディスク装置を説明する。まず、本発明のキャッ
シュ制御を説明する前に、理解を用意にするため、磁気
ディスク装置の基本的な構成とその動作について説明す
る。
【0014】図5は磁気ディスク装置の構成図である。
図5において、1は記録媒体としてのディスクであり、
スピンドルモータ5によって回転駆動される。このディ
スク1の記録面には、同心円状に複数のトラックが設け
られており、このトラック上にデータの記録・再生が行
われる。データはセクタと呼ばれる小ブロックに分割さ
れ、このセクタを単位として記録・再生が行われる。す
なわち、トラックの中に複数のセクタが含まれることに
なる。
【0015】データ面サーボ( ちりばめサーボ:Embede
d servo)方式を採用する磁気ディスク装置の場合、トラ
ックの中に、一般には等間隔でサーボ情報を記録してい
る。セクタ・サーボ方式と呼ばれるデータ面サーボ方式
では、データを記録するセクタに合わせて、セクタの境
界毎にサーボ情報を持つ。この場合、データ・セクタと
は無関係にサーボ情報をトラック上に配置する装置もあ
るが、ここでは説明の簡略化のために、データ・セクタ
に合わせてサーボ・セクタを持つセクタ・サーボ方式の
例を用いて記述する。
【0016】図6にセクタ・サーボ方式の場合のトラッ
クの構成例を示す。図6(a)に示すように、ディスク
の面上には、同心円上に複数のトラックが設けられてい
る。各トラックは、トラック毎に対応するサーボデータ
を記録することによって定義される。サーボデータは、
ディスクの製造過程において、特定の製造設備によって
記録されるのが一般的である。このトラックに対し、そ
れぞれのトラックを一義的に識別するために、物理的な
位置関係に基づいてトラック番号(アドレス)が付され
る。
【0017】記録面は1枚のディスクに対し、表・裏の
二面使用されるのが一般的で、この場合には、同一のト
ラック・アドレスが二つ存在する。この様な関係にある
トラックを総称してシリンダと呼び、厳密に言うと、キ
ャリッジはシリンダに対してアクセスすることになり、
シリンダの中からヘッドを指定することによってトラッ
クを選択する。ディスクが複数枚存在する場合も同様で
ある。ヘッドについても同様に、その物理的位置関係に
基づいてそれぞれのヘッドを一義的に指定することがで
きるヘッド番号(アドレス)が付される。
【0018】図6(b)に示すように、各トラックは複
数のセクタを含む。セクタの長さは全て等しいのが一般
的である。図中S0 ,S1 ,S2 …はサーボデータを示
し、セクタ・サーボ方式では各セクタ毎に記録されてい
る。サーボデータは、各セクタ毎に固有の絶対アドレス
情報および位置情報としてのバーストデータの他、先頭
セクタS0 であればインデックスパターン、その他のセ
クタS1 ,S2 …であればセクタパターンからなる。各
セクタは、複数のデータ・バイトを含む。ここでも、説
明を簡潔にするために、固定長セクタを想定して以下の
記述を行う。
【0019】ディスクにデータ・アクセスを行う場合、
ホストは対象とするデータをセクタの大きさに合わせて
分割し、セクタと同じ大きさのブロックを定義し、この
ブロックに論理的なブロックアドレスを付して個々のデ
ータを識別する。ホストは、この論理ブロックアドレス
を指定して、磁気ディスクに対するデータの読み書きを
行う。一方、磁気ディスク装置では、装置内の全てのセ
クタに対して、それぞれのセクタが一義的に指定できる
ように、物理的な位置に基づいてセクタ番号(アドレ
ス)を付す。ホストからデータの論理ブロックアドレス
が指定されると、磁気ディスク装置では予め定めてある
基準に従って、個々の論理ブロックを物理的なセクタに
対応させる。バッファメモリ内のデータの識別は、論理
ブロックアドレスを用いて行うのが一般的であるが、物
理セクタアドレスを用いることもできる。
【0020】セクタの構成は、図6(c)に示すように
大きくはヘッダ部とデータ部からなり、その他にECC
(エラー検出・訂正コード:Error Check and Correcti
on code )や、GAP(記録・再生動作用タイミング・
ギャップ)等が含まれる。ヘッダ部は、セクタアドレス
情報、セクタの属性を示す情報、信号およびデータの同
期用情報、エラー検出コード等によって構成される。デ
ータ部は、信号およびデータの同期用情報と対象データ
からなる。
【0021】再び、図5に戻って説明する。2aおよび
2bは、データの記録・再生を行う磁気記録用ヘッドで
ある。このヘッド2a、2bは、キャリッジ3に取り付
けられており、これによって、ディスク1の面上をディ
スク1の半径方向(トラックを横切る方向)に移動し、
トラックの中心に位置決めされてデータを読み書きす
る。キャリッジ3は、アクセス・モータ4を備えてお
り、これによって駆動される。アクセス・モータ4は、
回転形または直進形のボイス・コイル・モータ(VC
M)が用いられることが多い。
【0022】6はヘッド制御回路である。このヘッド制
御回路6には、ヘッド選択回路、データ書き込みのため
のヘッド駆動回路、データ読み出しのためのヘッド・ア
ンプ、書き込み異常検出回路等が含まれる。一般に、書
き込み信号が供給されているとき、選択されているヘッ
ドに駆動電流が供給されてデータ記録が行われ、書き込
み信号が供給されていないときには、選択されているヘ
ッドの下を通過する磁気記録情報が再生され出力され続
ける。
【0023】7はアナログ信号処理器である。磁気ディ
スク装置の場合、このアナログ信号処理器7には、自動
ゲイン制御回路、フィルタ、波形等価回路(イコライ
ザ)等が含まれる。データの読み取りを行う場合、記録
情報をディジタル化するために、ヘッド制御回路6から
供給された再生信号の波形操作を行って信号検出の信頼
性を高める。また、ここで得られるアナログ信号は、サ
ーボ情報部分についても適切に操作され、位置信号とし
て再生されて制御に用いられる。
【0024】8はパルス化回路(A/D変換器)であ
る。このパルス化回路8は、アナログ信号処理器7から
の信号をもとに記録情報をパルス化する。ここには、微
分回路、フィルタ、信号比較回路等が含まれ、アナログ
信号の最大値・最小値を変極点の検出により求め、二値
化して読み出しパルスとして出力する。
【0025】9はデータ変換器である。このデータ変換
器9には、PLL(位相・周波数同期発振器:Phase Lo
cked Loop )、信号弁別回路、読み出しデータ復号回路
( データ・デコーダ)等が含まれる。データ読み取り指
示が与えられると、PLLは入力データに周波数、位相
を同期させ、データ弁別窓を作成する。作成されたデー
タ弁別窓を用いて読みだしパルスを識別し、記録形式の
データ列を再生して復号器の入力とする。復号器は、所
定の復号規則に従って再生データを復号し、その結果を
信号出力する。
【0026】10は直並列変換器である。データ変換器
9からの信号はビット直列データであるので、ここで並
列化しバイト形式のデータに変換する。変換されたバイ
ト・データがバッファメモリ13に格納される。データ
の書き込み時には、ホストからのデータを磁気記録用に
適した記録形式のデータに変換する必要がある。この場
合の記録形式としては、例えばMFM(Modified Frequ
ecy Modulation)方式やRLL(Run Length Limited)
方式などが良く知られている。
【0027】11は並直列変換回路である。バッファメ
モリ13からのバイト・データは、ここでビット直列デ
ータに変換され、データ変換回路12に供給される。1
2はデータ変換回路である。このデータ変換回路12
は、並直列変換回路11からのビット直列データを所定
の変換規則に従って変換し、これを記録形式のデータに
変換した後、書き込み指示信号に合わせてヘッド制御回
路6へ転送する。
【0028】13はバッファメモリである。ホストとの
データの交換は、このバッファメモリ13を介して行わ
れる。ホストからのデータは、ホストのタイミングに合
わせて受信され、このバッファメモリ12に一時記憶さ
れる。こうして取り込まれたデータは、回転するディス
ク1上の記録位置に合わせて取り出され、並直列変換回
路11でビット直列データに変換され、記録形式のデー
タに変換されてディスク1上に記録されていく。一方、
ホストからデータを要求された場合には、読み取りデー
タがディスク1からの再生に応じてバッファメモリ13
に蓄えられる。その後、ホストの受信タイミングに従っ
て、バッファメモリ13からデータが取り出され、ホス
トへと送出される。
【0029】14はディスク制御部(HDC)である。
このディスク制御部14には、インタフェース制御部1
4a、第1のバッファ記憶制御部14b、フォーマット
制御部14c、リード/ライト制御部14d等の他、こ
こでは第2のバッファ記憶制御部14eが含まれる。
【0030】インタフェース制御部14aは、ホストと
の信号、コマンド、データの授受を行う。ホストからコ
マンドが転送されると、コマンドおよびそれに付随する
パラメータを一時記憶し、マイクロコントローラ32に
割り込み等を使用してコマンドの受領を通知する。デー
タ転送に際しても、データ要求信号やデータ受信信号に
対応しながら、データの送受信を行う。第1のバッファ
記憶制御部14bは、バッファメモリ13に対するデー
タ・アクセスに対して、書き込みや読み出し制御信号の
作成およびアクセスのためのバッファ・アドレス制御を
行う。
【0031】フォーマット制御部14cとリード/ライ
ト制御部14dは、ディスク1に対してデータの記録・
再生を行うためのハードウェアに依存したタイミング制
御を行う。また、トラック上のインデックスおよびセク
タ信号を検出して、書き込みや読み取りのタイミングを
発生し、これに合わせてデータをバッファメモリ13と
ヘッド2a、2bとの間で伝達するよう、関係する各機
能ブロックに対して制御信号を出す。この部分は、基本
的にはマイクロコントローラ22の制御のもとに動作す
る。そのために、ディスク1から読み出されるヘッダ記
録部分の内容を解釈して必要な情報をマイクロコントロ
ーラ22に提供したり、読み取り誤りの検出や誤りデー
タの訂正のための処理も、この部分で行われる。
【0032】ここで、同実施例では、上述した制御部1
4a〜14dとは別に、第2のバッファ記憶制御部14
eが設けられている。この第2のバッファ記憶制御部1
4eは、ヒット判定、置換セグメントの選定、LRUカ
ウンタの更新等のキャッシュ制御を行うものであり、従
来、マイクロコントローラのソフトウェアで実現されて
いた部分である。本発明では、この部分を図2に示すよ
うなハードウェアで実現していることを特徴としてい
る。
【0033】この第2のバッファ記憶制御部14eと従
来からある第1のバッファ記憶制御部14bとの違い
は、第1のバッファ記憶制御部14bが主としてアドレ
ス制御(実際にどのようにデータを読み書きするかの制
御)を行うのに対し、第2のバッファ記憶制御部14e
は主としてキャッシュ制御(従来のマイクロコントロー
ラによる処理)を行う。この第2のバッファ記憶制御部
14eについては、後に図2を用いて詳しく説明する。
【0034】15はサーボ制御回路である。このサーボ
制御回路15は、パルス化回路(A/D変換器)8から
出力される読み出しパルスのパターン検出を行い、サー
ボデータの基準信号を検出し、これをもとに規定のデー
タ弁別窓を発生し、サーボデータを復号してインデック
ス、セクタ信号や、マイクロコントローラ22への割り
込み信号などを生成する。また、アナログ位置信号を取
り出すためのサンプル・タイミング信号もここで作成さ
れ、位置信号発生器16へ供給される。
【0035】16は位置信号発生器である。この位置信
号発生器16は、アナログ信号処理器7から出力される
アナログ読み出し信号をサーボ制御回路15から入力さ
れるサンプル・タイミング信号に基づいて取り出し、そ
の振幅値を蓄積してA/D変換器17に対して出力す
る。
【0036】17はA/D変換器である。このA/D変
換器17は、位置情報をサンプル・ホールドしたサーボ
信号を位置信号発生器16から受け取り、その大きさを
二値信号化してマイクロコントローラ22に対して出力
する。
【0037】22はマイクロコントローラであり、入出
力制御回路21、プログラム・メモリ23と共に極めて
一般的なデータ処理装置を構成するものであり、ここで
はサーボ制御を行うための情報をサーボ制御回路15お
よびA/D変換器17から入力し、予めプログラムされ
た処理手順によって処理し、結果をD/A変換器20へ
出力する。D/A変換器20によってアナログ信号に変
換された制御信号は、適切な応答を得るためのフィルタ
19を経由して、アクセス・モータ駆動回路18へ供給
され、キャリッジ3を駆動してヘッド2a、2bの位置
決めを行う。
【0038】24はディスク回転用モータの制御回路で
ある。このモータ制御回路24においてスピンドルモー
タ5の相間信号を観測し、回転位置を検出して、その検
出信号をマイクロコントローラ22へ供給する。マイク
ロコントローラ22は、モータ制御回路24からの信号
に基づいて電流を供給する相と時間、および回転速度に
対応した駆動電流の大きさを決定し、回転制御のための
信号を作成して、その信号をモータ制御回路24へ供給
する。次に、キャッシュ制御について具体例を用いて説
明する。
【0039】図7および図8にデータをホストシスムで
取り扱う論理アドレスと磁気ディスクに記憶されている
セクタとの対応、および最も基本的な利用法におけるバ
ッファメモリへのデータの格納の様子を示す。
【0040】図7はホストの論理ブロックアドレスと、
磁気ディスク装置におけるデータ記録位置との対応を示
している。この例の場合、磁気ディスク装置はトラック
内に50個のセクタを持ち、ヘッドを2本(ヘッド
「0」,「1」とする)備えている。したがって、1つ
のシリンダに対してトラックが2個存在することにな
る。また、セクタ番号はシリンダ「0」、ヘッド「0」
の最初のセクタを「0」とし、連続してセクタ番号を付
し、最後のセクタが「49」となる。セクタ「50」
は、ヘッド「0」,「1」を移して、シリンダ「0」、
ヘッド「1」の最初のセクタとなる。
【0041】この様に割り当てて、例えばホストが論理
アドレス「3002」から52個のブロックの書き込み
を指定した場合、磁気ディスク装置はヘッド「0」,
「1」をシリンダ「30」へ移動し、そのうちのヘッド
「0」を選択して、そのトラックの3番目のセクタから
連続する52個のセクタに対して、データを書き込む。
この時、ホストから転送されるデータは、ディスクへの
記録タイミングとは無関係にバッファメモリに転送さ
れ、図8に示すようにバッファメモリに蓄えられる。
【0042】ヘッドが目的のトラックに位置して、書き
込み対象のセクタが検出されると、データがバッファメ
モリから順次取り出され、ディスクに対する記録動作が
行われる。全てのデータが記録され、コマンドを終了し
た後も、バッファメモリ内にはそのままデータが残るこ
とになる。したがって、その直後に、ホストからディス
クに対してブロック「3002」〜「3053」までの
何れかのブロックを読み出すコマンドが与えられると、
磁気ディスク装置はデータを実際にディスクから読み出
す必要はなく、バッファから直接ホストへ転送すること
ができる。この場合、ディスクは、目的のセクタにヘッ
ドが到達するまでの回転待ち時間を持つことがなく、ま
た、ホストがディスクからビット直列データを読み出す
ことにより、高速にデータを受け取ることができる場合
には、実際の転送も非常に高速になる。
【0043】このようにして、バッファメモリを用いて
性能を向上することができるが、ホストがバッファに存
在しないデータを要求した場合には、この効果は無くな
る。そこで、バッファメモリを利用したディスク・キャ
ッシュの性能を高めるために、バッファメモリを分割し
てセグメントを定義し、このセグメントを単位にバッフ
ァメモリの内容を管理し、ホストからのアクセス要求が
バッファメモリの中のデータになるべく高い確率で的中
するように工夫した手法が用いられている。この場合の
例を図9を用いて説明する。以下に、高機能キャッシュ
制御について、具体例を用いて説明する。
【0044】図9にバッファメモリをセグメント化し、
これをキャッシュ記憶として高度に制御する場合の例を
示す。ここでは、200ブロックのデータを記憶するこ
とができるバッファメモリを8個の同じ長さのセグメン
トに分割した、セグメント・キャッシュの例である。
【0045】このキャッシュ制御では、先ずアクセスさ
れた順にデータを記憶・保存して行き、一旦全てのセグ
メントが使用されると最も以前にアクセスされたセグメ
ントを新しくアクセスされたデータに置き換えて行くL
RU(Least Recent Used )と呼ばれる方法でセグメン
トのデータを入れ換える方法をとることにする。そのた
めに、LRUカウンタと呼ばれる使用履歴を示すカウン
タを使用する。また、バッファメモリ内のデータが有効
であるかどうかを示すために、有効性フラグと呼ぶフラ
グを使用する。バッファメモリ内にデータが入力される
と、このフラグを「1」とし、バッファメモリに何もデ
ータが入力されていない場合や、何らかの理由でバッフ
ァ内のデータを使用しないようにする場合には、このフ
ラグを「0」にする。また、この他に当然であるが、バ
ッファメモリ内データの論理アドレスと、そこにある有
効なデータのブロック長を示す情報が同時に管理されな
ければならない。
【0046】図9において、各セグメントについて、例
えばセグメント番号nについてはセグメント内データの
先頭の論理ブロックアドレスをBAn 、同様にデータ長
をBLn n、LRUカウンタの値をLRUn として示し
ている。また、図中にTA、TLと略記してあるのは、
ホストがアクセスするターゲット・データの開始論理ア
ドレス(TA)と、そのデータブロック長(TL)を意
味している。ここで、具体的に順を追って動作を説明す
る。
【0047】まず、最初の例に示すように、既に7個の
セグメント(セグメント「0」〜セグメント「6」)が
アクセス順にバッファメモリ内に存在する状態から説明
を開始する。この状態で論理アドレス「00030」
(TA=00030)から10ブロック(TL=10)
のデータ読み出しがホストから指示されたとする。この
場合、対象となるデータはセグメント「3」の中に存在
するので、ここから対応するデータを取り出してホスト
へ転送する。このとき、セグメント「3」のLRUカウ
ンタを最後に使用されたことを示すように「0」に更新
すると共に、従来このセグメントより後に使用されたこ
とを示していたセグメント「4」、「5」および「6」
のLRUカウンタをそれぞれ「1」ずつ増加して更新す
る。
【0048】次に、論理アドレス「9000」から5ブ
ロックのデータがアクセスされたとする。このデータは
バッファメモリ内に存在しないので、新たにバッファメ
モリ内にデータを置くことになるが、セグメント「7」
の有効性フラグFE7 が「0」であることから、このセ
グメントがまだ使用されていないことを識別でき、ここ
に対象データを置く。したがって、ここで新たにデータ
をバッファ内に取り込んでも既存の全てのデータを消失
しない。さらに、この場合にも、セグメント「7」が最
後にアクセスされたことを示すようにLRU7 を「0」
とし、その他の全てのセグメントのLRUカウンタの値
を「1」ずつ増加して更新し、セグメント「7」に有効
なデータが存在することを示すようにフラグFE7 を
「1」に設定する。
【0049】引き続き論理アドレス「50010」から
25ブロックのデータが書き込み指示されたとすると、
該当するブロックの一部がセグメント「2」に存在する
ため、このセグメントに対象となるデータを置くが、デ
ータの書き込みであるため、既に存在するバッファ内の
データを全て消去し、対象データをセグメントの先頭か
ら満たして新たに論理ブロックアドレスと、有効データ
長を設定する。この場合も同様に、セグメント「2」の
旧LRUカウンタの値(=5)より小さいLRUカウン
タ値を持つ全てのセグメントについてLRUカウンタの
値を更新する。このようにバッファメモリを管理するこ
とによって、バッファメモリを効率の良いキャッシュ記
憶として使用することができる。
【0050】ところで、以上のような動作を行うキャッ
シュ記憶を実現するためには、ターゲット・ブロックが
バッファメモリ内に存在するか否かの判定に多くのアド
レス比較演算を行わなければならない。また、バッファ
データの状況に対応して、LRUカウンタの値を調べて
更新するためにも多くの演算処理が必要になる。したが
って、従来のように内蔵するマイクロコントローラだけ
で処理する場合には、それぞれのアクセスに対して処理
時間が問題となり、これほど高度な制御を行うことは難
しい。本発明はこのような大きな動作時間を短縮し、効
率よい高性能キャッシュ記憶機能を提供することを目的
とする。
【0051】すなわち、本発明は、図5に示されるバッ
ファメモリ13、ディスク制御部(HDC)14および
データ処理部(21、22、23)に関して改良を加
え、磁気ディスク装置のバッファメモリ装置を比較的安
価に、かつ、著しく高性能化し、均衡の取れたキャッシ
ュ記憶として構成する手段を提供するものである。
【0052】具体的には、バッファメモリ13を複数の
セグメントに分割し、セグメントを単位としてバッファ
メモリ13の使用方法を管理し、高性能ディスク・キャ
ッシュ・システムを構成する。セグメントの管理を高性
能化するために、全てのセグメントに対してセグメント
内のデータのブロックアドレスに関する情報を記憶する
手段と、それぞれのセグメントの使用履歴に関する情報
を記憶する手段と、アクセス対象のブロックアドレスに
関する情報と、セグメント内のデータのブロックアドレ
スに関する情報を比較する手段等を備えた第2のバッフ
ァ記憶制御部14eをディスク制御部14に設け、マイ
クロコントローラ22の指示に基づいてアクセス対象の
データがバッファメモリ内に存在するかどうかを短時間
に判定し、その結果をマイクロコントローラ22に通知
する。
【0053】また、この第2のバッファ記憶制御部14
eは、バッファメモリ13内のデータの置換のために、
使用履歴に関する情報の判定および更新を行う機能を備
え、マイクロコントローラ22の指示に従って置換すべ
きセグメントの選択や履歴の更新を高速で処理する。
【0054】マイクロコントローラ22は、アクセス対
象のデータがバッファメモリ13内に存在するかどうか
の判定結果に基づいてデータをバッファメモリ13に対
してアクセスするか、ディスク1上のデータをアクセス
するか決定し、さらにバッファメモリ13に対してアク
セスする場合には、バッファメモリ13のどの部分から
どれだけのデータを対象とするか等を判断し、ディスク
制御部14に対してデータ制御の指示を行う。第2のバ
ッファ記憶制御部14eは、バッファ内データの置換を
行うかどうかを判断し、置換を行う場合には、どのセグ
メントを置換するかを決定し、セグメント内のデータに
関する情報を更新する。以下、本発明のキャッシュ制御
を具体的な例を用いて説明するが、本発明の主旨はその
具体例によって制限されるものではない。
【0055】図1に示すように、本発明では、ディスク
制御部(HDC)14に上述したようなキャッシュ制御
を行うためのハードウェアとして第2のバッファ記憶制
御部14eが設けられている。
【0056】図2に第2のバッファ記憶制御部14eの
具体的なハードウェア構成を示す。図中22はマイクロ
コントローラ(データ処理手段)、102はバッファ制
御回路である。このバッファ制御回路102は、アドレ
ス/ データ・バス130、アドレス・ラッチ信号13
1、ライト(書き込み)信号132およびリード(読み
出し)信号133を介してマイクロコントローラ22に
接続されており(詳しくは、図5に示すように入出力制
御回路21を介して接続されており)、マイクロコント
ローラ22からこれらの信号によって制御される。
【0057】図3にバッファ制御回路102の構成例を
示す。バッファ制御回路102には、アドレス・ラッチ
・レジスタ300、アドレス・デコーダ301、ライト
/リード信号作成回路303、制御用フリップ・フロッ
プ(F.F)304、305、306、カウンタ31
0、ディレクトリ・アドレス生成回路311、演算制御
回路312、置換制御回路313等が含まれ、マイクロ
コントローラ22のアドレスを解読して、第2のバッフ
ァ記憶制御部14e内の機能回路に対する書き込みや、
それらの情報の読み出しのための制御信号の作成、動作
タイミング発生回路の起動等を行い、さらにタイミング
制御回路に従って計数、加減算制御、比較器制御等の制
御信号も生成する。
【0058】再び、図2に戻って説明する。103はタ
ーゲット・アドレス・レジスタ(第5の記憶手段)、1
04はターゲット・ブロック数レジスタ(第6の記憶手
段)であり、マイクロコントローラ22によって書き込
まれる。
【0059】110〜113はディレクトリ・レジスタ
(第1〜第4の記憶手段)であり、各セグメント(この
例の場合、セグメント番号「0」〜「7」)に対し、レ
ジスタ110はセグメント有効フラグ(図9のFE)を
格納し、レジスタ111はブロックアドレス(図9のB
A)を格納し、レジスタ112はブロック数(図9のB
L)を格納し、レジスタ113はLRU値(図9のLR
U)を格納する。
【0060】106は加減算器である。この加減算器1
06ヘの入力情報は選択回路105によって選択され、
その選択のための制御信号はバッファ制御回路102か
ら供給される。
【0061】120〜127はヒット・フラグ用レジス
タ(第7の記憶手段)である。ディレクトリの内容とタ
ーゲット・ブロックアドレス情報とを比較し、ターゲッ
ト・ブロックの一部または全部がセグメント内に存在す
ることが判明したとき、そのセグメントに対応するヒッ
ト・フラグ用レジスタ120〜127がセットされる。
この内容はマイクロコントローラ22が読み出してその
内容を知り、制御のために使用する。
【0062】107はセグメント指定レジスタである
(第8の記憶手段)。このレジスタ107にセグメント
番号を設定し、特定のセグメントを指定するために用い
られる。セグメントの指定は、この他に、カウンタ31
0やマイクロコントローラ22が直接指定することも可
能とする。また、このレジスタ107は、判定動作時に
自動設定されたり、マイクロコントローラ22によって
設定されたりする。
【0063】また、134はディレクトリ・メモリ・ア
ドレス信号、135および136はディレクトリ・メモ
リに対する書き込みおよび読み出し信号である。150
はセグメント有効フラグに対する書き込みデータ、13
7はその読み出し信号、138はLRU値出力信号ライ
ン、139はセグメント内データのブロック数情報出力
信号ライン、140は同データの開始ブロックアドレス
情報出力信号ラインである。
【0064】141は演算に要する定数入力のための信
号線、142は演算器への入力データを選択するデータ
選択制御信号線、143は演算制御信号線である。14
4はヒット・フラグに関する書き込み・読み出し制御信
号、145は同フラグの出力信号線である。146は演
算出力信号である。147は目的( ターゲット) データ
の開始ブロックアドレス情報出力信号線、148は同デ
ータのブロック数情報出力信号線である。151はセグ
メント番号レジスタの入力信号線、152は同レジスタ
の出力信号線である。次に、上記のように構成される第
2のバッファ記憶制御部14eの動作を説明する。
【0065】動作開始時には、全てのセグメントに対し
てディレクトリ・レジスタ110に、はフラグ「0」が
設定されている。この状態で、例えばホストからブロッ
クアドレス「333」、ブロック数「14」の読み出し
命令があったとすると、マイクロコントローラ22はブ
ロックアドレス「333」をレジスタ103に、ブロッ
ク数「14」をレジスタ104に設定し、バッファ制御
回路102におけるヒット判定用のフリップ・フロップ
304をセットして判定指示を出す。このとき、ディレ
クトリ・レジスタ110のフラグが全て「0」であるこ
とから、ヒット・フラグは何れもセットせず、このため
マイクロコントローラ22はセグメント選択フリップ・
フロップ305をセットしてセグメント選択指示を出
す。これによって、セグメント番号「0」がレジスタ1
07に設定される。このとき、マイクロコントローラ2
2は各制御回路を制御してディスク1から該当するデー
タを読み出してホストへ転送するとともに、バッファメ
モリ13の選択されたセグメント「0」にこのデータを
記憶する。
【0066】また、マイクロコントローラ22はセグメ
ント「0」のディレクトリ・メモリにこのデータに関す
る情報を記憶する。すなわち、ディレクトリ・メモリの
「0」行に対し、ディレクトリ・レジスタ111にデレ
ブロックアドレス「333」を、ディレクトリ・レジス
タ112にブロック数「14」を、ディレクトリ・レジ
スタ113にLRU値「0」をそれぞれ設定し、ディレ
クトリ・レジスタ110にフラグをセットして、このセ
グメントを有効とする。
【0067】同様にして、例えばブロックアドレス「7
7777」、ブロック数「20」のアクセスがあると、
セグメント「1」にこれに関するデータおよびディレク
トリを設定する。これらの設定の後、LRU値113を
調整するためにマイクロコントローラ22はLRU調整
フリップ・フロップ306をセットしてLRU調整指示
をする。その結果、セグメント「0」が有効であること
から、セグメント「0」に対するLRU値113を
「1」とし、セグメント1に対するLRU値113を
「0」に設定する。
【0068】全く同様に、例えばブロックアドレス「5
0000」、ブロック数「17」のデータ、ブロックア
ドレス「27」、ブロック数「23」のデータ、ブロッ
クアドレス「22222」、ブロック数「5」のデー
タ、ブロックアドレス「88888」、ブロック数「1
5」のデータ、ブロックアドレス「66666」、ブロ
ック数「20」のデータの順に読み出しまたは書き込み
の指示があると、図9の初期状態のようにディレクトリ
が作成され、対応するデータがバッファメモリ13内に
存在している。
【0069】この状態で、ブロックアドレス「30」、
ブロック数「10」のデータの読み出し指示がきたとす
ると、次のように動作する。ここでは、図4のタイミン
グチャートを参照して説明する。
【0070】なお、図4において、200はマイクロコ
ントローラ22のアドレス・データ・バス信号のうち、
便宜のためにアドレス情報のみを示している。201は
マイクロコントローラ22のデータ出力信号、207は
データ読み取り信号である。202はターゲット・アド
レス・レジスタの出力信号、203は同ブロック数レジ
スタの出力信号を示す。204はヒット判定フリップ・
フロップ304の出力信号、205はLRU調整フリッ
プ・フロップ306の出力信号を示す。206はセグメ
ント選択カウンタ310の動作タイミングを示す。20
8はセグメント「0」の判定結果フラグ、209はセグ
メント「1」のヒット・フラグ用レジスタ120の出力
であり、以下同様にセグメント「7」までのヒット・フ
ラグ用レジスタ121〜127の出力を示す。216は
セグメント番号レジスタ107の出力信号、217はL
RU更新信号を示す。LRU更新信号は、目的セグメン
トのLRU値とその他のセグメントのLRU値を比較
し、比較対象セグメントのLRU値が目的セグメントの
LRU値より小さいと比較対象セグメントのLRU値に
「1」を加えて更新し、もし比較対象セグメントのLR
U値の方が大きい場合には更新しない。
【0071】さて、ブロックアドレス「30」、ブロッ
ク数「10」のデータの読み出し指示がきたとすると、
マイクロコントローラ22は、図4に示すようにアドレ
ス・ライン200にターゲット・アドレス・レジスタ1
03の番地「a」を指定し、ライト命令を実行する。こ
の場合、アドレス信号はアドレス・ラッチ信号131に
よって図3のレジスタ300に記憶され、デコーダ30
1でデコードされ、この結果とライト信号132によっ
て、図2のターゲット・アドレス・レジスタ103に書
き込まれる。このときのタイミングを図3の201にラ
イト信号、202にターゲット・アドレス・レジスタの
出力信号で示す。
【0072】続いて、マイクロコントローラ22は、ア
ドレス・ライン200にターゲット・ブロック数レジス
タ104の番地「b」を指定し、ライト命令を実行す
る。この場合も、アドレス信号はアドレス・ラッチ信号
131によって図3のレジスタ300に記憶され、デコ
ーダ301でデコードされ、この結果とライト信号13
2によって、図2のターゲット・ブロック数レジスタ1
04に書き込まれる。図4の203にターゲット・ブロ
ック数レジスタ104の出力信号を示す。ここまでで、
ターゲット・アドレス・レジスタ103には「0003
0」が、ターゲット・ブロック数レジスタ104には
「10」が設定されている。
【0073】次に、マイクロコントローラ22は、ヒッ
ト判定フリップ・フロップ304の対応番地「c」をア
ドレス・ライン200に設定し、ライト命令を実行し
て、ヒット判定フリップ・フロップ304をセットす
る。図4の204にこのフリップ・フロップ304の出
力信号のタイミングを示す。
【0074】ヒット判定フリップ・フロップ304がセ
ットされたことで、図3のカウンタ310が図4の20
6に示すように「0」から「7」まで順次計数する。こ
の値に従ってディレクトリ・メモリのセグメント番号を
選択して行き、ディレクトリから読み出された情報とレ
ジスタ103、104の情報とを比較し、ブロック的中
判定を行う。この判定は、例えば次のようにして行うこ
とができる。
【0075】ターゲット・ブロックアドレスとターゲッ
ト・ブロック数からターゲット・データの最後のブロッ
クアドレスを求め、この値がセグメント内データの先頭
ブロックアドレスより小さいと、ターゲット・データ
は、対応するセグメントのデータには的中していない。
さらに、同様にしてセグメント内データの最後のブロッ
クアドレスを求め、この値がターゲット・データの先頭
ブロックアドレスより小さいと的中しておらず、その他
の場合には的中している。これらの演算を、図3のディ
レクトリ・アドレス生成回路311および演算制御回路
312の制御の元に全てのセグメントについて実行す
る。
【0076】このように加減算によって的中判定をして
いくと、セグメント「3」が的中し、ヒット・フラグ
「3」(ヒット・フラグ用レジスタ123)が図4の2
11に示すようにセットされる。同時に、レジスタ10
7にセグメント番号「3」が図4の216のように設定
される。セグメント「7」については、その有効フラグ
が「0」であるから、実際の判定は行わない。
【0077】この間、マイクロコントローラ22は信号
204がリセットされるのを観測しながら待ち、図4に
示す信号204がリセットされたところで、ヒット・フ
ラグの状態を検査する。この場合、ヒット判定フリップ
・フロップ304の状態とヒット判定結果が同時にアド
レス「d」番地から入力できるように構成しておくと便
利である。
【0078】マイクロコントローラ22は、ここでセグ
メント「3」が的中したことを知り、LRU調整フリッ
プ・フロップ306の対応番地「e」をアドレスとして
ライト命令を実行する。この時、LRU調整フリップ・
フロップ306がセットされたたことで、再びカウンタ
310が計数し、これに対応してアドレス生成回路31
1がディレクトリ・アドレスを生成して順次ディレクト
リ情報を読み出す。読み出されたLRU値を置換制御回
路313においてセグメント「3」のLRU値と比較す
る。このLRU値がセグメント「3」のLRU値(この
場合「3」)より大きい場合には何も行わず、小さい場
合にはその値に「1」を加えていく。
【0079】したがって、セグメント「0」、「1」、
「2」については、LRU値が「3」より大きいため、
LRU値はそのままとされる。セグメント「4」〜
「6」については、LRU値が「3」より小さいため、
図3の217で示すように、比較の結果、更新信号が
「1」となり、LRU値を更新して再格納する。その
後、セグメント3のLRU値を「0」としてディレクト
リの更新を終え、該当するブロックのデータ、即ち、バ
ッファメモリ13のセグメント「3」の4ブロック目か
ら10ブロック分のデータを取り出してホストヘ転送す
る。
【0080】次に、ブロックアドレス「90000」、
ブロック数「5」のデータが要求されたとする。上記同
様に、ターゲットの情報をレジスタ103とレジスタ1
04に設定し、ヒット判定フリップ・フロップ304を
セットして判定指示をすると、ヒット・フラグ用レジス
タ120〜127は全て「0」のままとなり、これによ
りマイクロコントローラ22は的中しなかったことを知
る。
【0081】この後、マイクロコントローラ22は、セ
グメント選択フリップ・フロップ305に対応するアド
レスを指定してライトを行い、セグメント選択フリップ
・フロップ305をセットする。セグメント選択フリッ
プ・フロップ305がセットされると、バッファ制御回
路102はカウンタ310を起動してディレクトリ・ア
ドレスを順次生成し、有効フラグとLRU値を検査す
る。図9の例では、セグメント「7」の有効フラグが
「0」であるから、レジスタ107にセグメント番号
「7」が設定されて、セグメント選択に対するバッファ
制御回路102の動作を終了する。マイクロコントロー
ラ22は、前述のヒット判定用のフリップ・フロップ3
04やLRU調整フリップ・フロップ306と同様に、
セグメント選択フリップ・フロップ305がリセットさ
れたことで、その動作終了を知る。その後、マイクロコ
ントローラ22は、レジスタ107で指定されるセグメ
ントに対してディレクトリを生成・格納し、さらにバッ
ファメモリ13の対応するセグメント部分にターゲット
・データを記憶する。
【0082】なお、以上の例では、説明を簡便化するた
めに、要求されただけのデータがバッファメモリ13の
中のセグメントに置かれるように説明してきたが、実際
には利用効率や処理時間の都合などを配慮して、場合に
よってはセグメントが満たされるまで連続してデータを
記憶したり、次のコマンドを受けるまで予め定めた長さ
のデータを記憶したりすることもしばしば行われてい
る。
【0083】このようにしてヒット判定、置換セグメン
トの選定、LRUカウンタの更新を行うハードウェアを
備えることで、従来のように必要な情報を全て汎用メモ
リに記憶し、マイクロコントローラで演算・判定処理す
る場合に比べ、著しく性能を向上することができる。
【0084】図10は従来の手法によりマイクロコント
ローラを用いてヒット判定、置換セグメントの選択、置
換情報の更新を行う場合のプログラム処理を示してい
る。図中、SENはセグメント有効フラグ、SBAはセ
グメント内データの先頭ブロックアドレス、TEAはタ
ーゲットの最終ブロットクアドレス、SEAはセグメン
ト内データの最終ブロックアドレス、TBAはターゲッ
トの先頭ブロットクアドレスを示す。
【0085】ここで、例えばサイクル時間が0.5マイ
クロ秒程度の極めて一般的なマイクロコントローラを用
いて上記の処理を行う場合を考えてみると、図10の様
に簡略化した処理でも80マイクロ秒以上の時間を要す
が、本発明のようなハードウェア構成を用いると、20
マイクロ秒以下で実現することは容易である。また、こ
の時間にマイクロコントローラは他の処理を行うことも
可能である。的中しない場合、その後の処理量が大きい
にもかかわらず、毎回この処理時間差がマイクロコント
ローラのオーバーヘッドとなってしまうことが、処理性
能の低下を招き、それを解決するために高価な高性能マ
イクロコントローラが必要になったりする。
【0086】なお、上記実施例では、セグメント内デー
タのブロックアドレスおよびブロック数をレジスタ11
1(第2の記憶手段)およびレジスタ112(第3の記
憶手段)に格納し、アクセス対象ブロックのアドレスお
よびターゲットブロック数をレジスタ103(第5の記
憶手段)およびレジスタ104(第6の記憶手段)に格
納するようにしたが、、レジスタ111、112の代わ
りにデータブロックの先頭と最終のアドレスを保持する
レジスタ(第9の記憶手段)を設け、また、レジスタ1
03、104の代わりにアクセス対象ブロックの先頭と
最終のアドレスを保持するレジスタ(第10の記憶手
段)を設けて構成することもできる。
【0087】また、上記実施例では、特定のセグメント
を指定するためのレジスタ107を設け、そこにセグメ
ント番号を設定するようにしたが、このセグメンの指定
はカウンタ310を用いることもできる。
【0088】また、上記実施例では、加減算器106を
用いてセグメント内のブロックアドリス情報とアクセス
対象のブロックアドレス情報とを比較するようにしてい
るが、この比較をデータ比較器によって構成することも
できる。
【0089】また、上記実施例では、データブロックの
使用状態に関する情報の記憶(レジスタ113)および
その更新をHDC14の第2のバッファ記憶制御部14
e(バッファ記憶制御手段)によって行ったが、この部
分についてのみ、データ処理手段であるマイクロコント
ローラ22にて行うようにしても良い。
【0090】また、上記実施例では、第2のバッファ記
憶制御部14eの各処理をマイクロコントローラ22の
コマンドに従って1つ1つ実行するようにしているが、
マイクロコントローラ22の1回のコマンドにより、ブ
ロック的中の判定およびそのブロック的中情報の記憶、
新たに記憶するためのセグメントの選定およびその特定
のセグメントが最後に使用されたことを示すようにレジ
スタ113を更新する機能の何れかを連続して実行する
ようにしても良い。
【0091】また、上記実施例では、レジスタ113に
データブロックの使用状態に関する情報を記憶させて、
使用状態に関する情報の判定を行うようにしているが、
特定のセグメントに対する使用状態に関する情報と順次
供給されるその他の上記セグメントに対する使用状態に
関する情報とを比較するためのデータ比較器を備え、こ
のデータ比較器を用いて使用状態に関する情報の判定を
行うこともできる。
【0092】さらに、セグメントの使用状態に関する情
報を更新するための加減算器を備え、使用状態に関する
情報の判定結果に基づいて上記加減算器を用いて使用状
態に関する情報の更新を行うこともできる。
【0093】また、上記実施例では、バッファメモリ1
3を8個のセグメントに分割しているが、その数は限定
されるものではない。すなわち、例えばデータの大きい
ものを扱う場合にはバッファメモリ13を大きく分割
し、データの小さいものを扱う場合にはバッファメモリ
13を小さく分割した方が効率は良い。この場合、分割
するセグメントの数を記憶するメモリ(第10の記憶手
段)を設け、このメモリに記憶されたセグメントの数に
基づいてキャッシュ制御を行う構成とする。
【0094】また、第2のバッファ記憶制御部14eが
加減算器106を備える場合には、レジスタ111、1
12(第2、第3の記憶手段)とレジスタ103、10
4(第5、第6の記憶手段)の内容を選択的に加減算器
106に入力することで、アクセス対象ブロックの全部
または一部のデータ(部分的に的中したデータ)が存在
するバッファメモリ103内の位置と長さを算出するこ
とができる。
【0095】さらに、ブロックの長さを各セグメントの
全部または一部に対して予め定めておくこともでき、こ
のような構成により、レジスタ112(第3の記憶手
段)とレジスタ104(第6の記憶手段)を省略するこ
とができる。
【0096】
【発明の効果】以上説明したように、本発明によれば、
ヒット判定、置換セグメントの選定、LRUカウンタの
更新などを行う比較的安価なハードウェアを備え、これ
をマイクロコントローラで制御することにより、磁気デ
ィスク装置のバッファメモリをキャッシュ記憶として利
用する場合において、マイクロコントローラのキャッシ
ュ制御のためのオーバーヘッド時間を大幅に短縮でき、
バッファメモリの利用効率を高めることにより、磁気デ
ィスク装置の性能を著しく高めることができるものであ
る。
【図面の簡単な説明】
【図1】本発明の一実施例に係る磁気ディスク装置に用
いられるディスク制御部(HDC)の構成を示す図。
【図2】同実施例のバッファ記憶制御部のハードウェア
構成を示す図。
【図3】上記バッファ記憶制御部の中のバッファ制御回
路の構成を示す図。
【図4】上記バッファ記憶制御部の動作を説明するため
のタイミングチャート。
【図5】磁気ディスク装置の基本構成を示すブロック
図。
【図6】セクタ・サーボ方式を説明するための図であ
り、同図(a)は記録面の構成、同図(b)はトラック
の構成、同図(c)はセクタの構成を示す図である。
【図7】基本的なキャッシュ制御を説明するための図で
あって、ホストの論理ブロックアドレスと磁気ディスク
装置のデータ記憶位置との関係を示す図。
【図8】上記基本的なキャッシュ制御を説明するための
図であって、バッファメモリに対するデータ格納方法を
示す図。
【図9】バッファメモリをセグメント化した場合での高
機能キャッシュ制御を説明するための図。
【図10】従来のマイクロコントローラによるヒット判
定、置換セグメントの選択、置換情報の更新を行う場合
の処理を示すフローチャート。
【符号の説明】
1…磁気ディスク、2aおよび2b…磁気記録用ヘッ
ド、3…キャリッジ、4…アクセスモータ、5…スピン
ドルモータ、6…ヘッド制御回路、7…アナログ信号処
理器、8…パルス化回路、9…データ変換器、10…直
並列変換器、11…は並直列変換回路、12…データ変
換回路、13…バッファメモリ、14…ディスク制御部
(HDC)、15…サーボ制御回路、16…位置信号発
生器、17…A/D変換器、18…アクセス・モータ駆
動回路、19…フィルタ、20…D/A変換器、21…
入出力制御回路、22…マイクロコントローラ、23…
プログラム・メモリ、24…モータ制御回路、102…
バッファ制御回路、103…ターゲット・アドレス・レ
ジスタ、104…ターゲット・ブロック数レジスタ、1
05…選択回路、106…加減算器、107…セグメン
ト指定レジスタ、110〜113…ディレクトリ・レジ
スタ、120〜127…ヒット・フラグ用レジスタ、3
00…アドレス・ラッチ・レジスタ、301…アドレス
・デコーダ、303…リード/ライト信号作成回路、3
04…ヒット判定制御フリップ・フロップ、305…セ
グメント選択制御フリップ・フロップ、306…LRU
調整制御フリップ・フロップ、310…カウンタ、31
1…ディレクトリ・アドレス生成回路、312…演算制
御回路、313…置換制御回路。

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 記録媒体のトラック上に複数のブロック
    を設け、この各ブロックを一義的に定義するブロックア
    ドレスを割り当てて識別し、上記ブロックを単位として
    データの記録・再生を行い、そのデータの記録・再生に
    際し、バッファ記憶制御手段がデータ処理手段の制御の
    下で上記記録媒体から読み出されたデータまたはホスト
    装置からのデータを上記ブロック単位でバッファメモリ
    に一時的に記憶させるようにした磁気ディスク装置にお
    いて、 上記バッファメモリを複数のセグセメントで分割し、こ
    の各セグメント毎に少なくとも1ブロック以上のデータ
    を格納するようにし、 上記バッファ記憶制御手段が、 上記各セグメント毎に当該セグメントに有効なデータが
    記憶されていることを示す第1の記憶手段と、 上記各セグメント毎に当該セグメントに記憶されたデー
    タのブロックアドレスに関する情報を記憶する第2の記
    憶手段と、 上記各セグメント毎に当該セグメントに記憶されたデー
    タの有効ブロック数に関する情報を記憶する第3の記憶
    手段と、 上記各セグメント毎に当該セグメントに記憶されたデー
    タの使用状態に関する情報を記憶する第4の記憶手段
    と、 アクセス対象ブロックのブロックアドレスに関する情報
    を記憶する第5の記憶手段と、 上記アクセス対象ブロックのブロック数に関する情報を
    記憶する第6の記憶手段と、 上記各セグメントの中の特定のセグメントに対応する上
    記第1から第4の記憶手段を選択するセグメント情報選
    択手段と、 加減算を行う演算手段と、 上記セグメント情報選択手段によって選択された情報と
    上記第5および第6の記憶手段からの上記アクセス対象
    ブロックに関する情報とを選択的に上記演算手段に供給
    するデータ選択手段と、 上記各セグメント毎に上記第5および第6の記憶手段に
    よって指定されるアクセス対象の1つ以上の上記ブロッ
    クが上記第2および第3の記憶手段によって指定される
    上記セグメント内の1つ以上の上記ブロックと同一のブ
    ロックアドレスを持つことを示すブロック的中情報を記
    憶する第7の記憶手段とを備え、 上記バッファ記憶制御手段は、上記データ処理手段の指
    示に応じて、 上記第1の記憶手段によって内容が有効であることが示
    されている上記各セグメントに対して、上記第2および
    第3の記憶手段により得られるセグメント内ブロックア
    ドレスと上記第5および第6の記憶手段によって指定さ
    れる上記アクセス対象ブロックアドレスとを上記演算手
    段を用いて比較し、上記第5および第6の記憶手段によ
    って指定されるアクセス対象の1つ以上の上記ブロック
    が上記第2および第3の記憶手段によって指定される上
    記セグメント内の1つ以上の上記ブロックと同一のブロ
    ックアドレスを持つ場合に、当該セグメントに対応する
    上記第7の記憶手段に上記ブロック的中情報を格納する
    機能と、 上記第1の記憶手段によって内容が有効であることが示
    されている上記各セグメントに対して、特定のセグメン
    トが最後に使用されたことを示すように上記第4の記憶
    手段の内容を更新する機能と、 上記バッファメモリのいずれかの上記セグメントに新た
    にデータを記憶する場合に、上記第1および第4の記憶
    手段の内容に基づいて、使用すべき上記セグメントの選
    定を行う機能と、 1つ以上の上記特定のセグメントに対応する上記第1の
    記憶手段の内容を、対応する上記セグメントの内容が無
    効であることを示すように設定する機能とを有して、 上記バッファメモリの一部または全部を上記データ処理
    手段の制御に従って上記記録媒体に記憶されている対応
    する上記ブロックのデータとして利用することを特徴と
    する磁気ディスク装置。
  2. 【請求項2】 上記バッファ記憶制御手段は、上記演算
    手段による比較の結果、上記第5および第6の記憶手段
    によって指定されるアクセス対象の一つ以上の上記ブロ
    ックが上記第2および第3の記憶手段によって指定され
    る上記セグメント内の上記ブロックの中の一つ以上の上
    記ブロックと同一のブロックアドレスを持つ場合におい
    て、当該セグメントを指定するセグメント指定情報を第
    8の記憶手段に設定することを特徴とする請求項1記載
    の磁気ディスク装置。
  3. 【請求項3】 上記第2および第3の記憶手段の代わり
    に上記データブロックの先頭と最終のアドレスを保持す
    る第9の記憶手段、また、上記第5および第6の記憶手
    段の代わりに上記アクセス対象ブロックの先頭と最終の
    アドレスを保持する第10の記憶手段を具備したことを
    特徴とする請求項1記載の磁気ディスク装置。
  4. 【請求項4】 上記第8の記憶手段は、上記セグメント
    を順次選択指定することのできるカウンタであることを
    特徴とする請求項2記載の磁気ディスク装置。
  5. 【請求項5】 上記演算手段は、データ比較器によって
    構成されることを特徴とする請求項1記載の磁気ディス
    ク装置。
  6. 【請求項6】 上記第4の記憶手段およびその内容を更
    新する手段は、上記データ処理手段に含まれることを特
    徴とする請求項1記載の磁気ディスク装置。
  7. 【請求項7】 上記バッファ記憶制御手段は、上記デー
    タ処理手段の1つの指示により、上記ブロック的中の判
    定およびそのブロック的中情報の記憶、新たに記憶する
    ための上記セグメントの選定およびその特定のセグメン
    トが最後に使用されたことを示すように上記第4の記憶
    手段を更新する機能の何れかを連続して実行することを
    特徴とする請求項1記載の磁気ディスク装置。
  8. 【請求項8】 上記特定のセグメントに対する使用状態
    に関する情報と順次供給されるその他の上記セグメント
    に対する使用状態に関する情報とを比較するためのデー
    タ比較器を備え、このデータ比較器を用いて使用状態に
    関する情報の判定を行うことを特徴とする請求項1記載
    の磁気ディスク装置。
  9. 【請求項9】 上記セグメントの使用状態に関する情報
    を更新するための加減算器を備え、使用状態に関する情
    報の判定結果に基づいて上記加減算器を用いて使用状態
    に関する情報の更新を行うことを特徴とする請求項1記
    載の磁気ディスク装置。
  10. 【請求項10】 上記バッファメモリを分割する上記セ
    グメントの数を記憶する第10の記憶手段を具備したこ
    とを特徴とする請求項1記載の磁気ディスク装置。
  11. 【請求項11】 上記バッファ記憶制御手段が加減算器
    を備える場合に、上記第2、第3、第5および第6の記
    憶手段の内容を選択的に上記加減算器に入力し、上記ア
    クセス対象ブロックの全部または一部のデータが存在す
    る上記バッファメモリ内の位置と長さを算出する機能を
    備えることを特徴とする請求項1記載の磁気ディスク装
    置。
  12. 【請求項12】 上記ブロックの長さを上記各セグメン
    トの全部または一部に対して予め定めておくことを特徴
    とする請求項1記載の磁気ディスク装置。
JP4211639A 1992-08-07 1992-08-07 磁気ディスク装置 Pending JPH0659952A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP4211639A JPH0659952A (ja) 1992-08-07 1992-08-07 磁気ディスク装置
US08/101,494 US5603002A (en) 1992-08-07 1993-08-02 Hard disk drive having buffer memory employing directory based cache controller with data replacement scheme

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4211639A JPH0659952A (ja) 1992-08-07 1992-08-07 磁気ディスク装置

Publications (1)

Publication Number Publication Date
JPH0659952A true JPH0659952A (ja) 1994-03-04

Family

ID=16609111

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4211639A Pending JPH0659952A (ja) 1992-08-07 1992-08-07 磁気ディスク装置

Country Status (2)

Country Link
US (1) US5603002A (ja)
JP (1) JPH0659952A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100385238B1 (ko) * 1995-11-27 2004-02-25 삼성전자주식회사 그룹적응형세그먼트캐시버퍼구현방법
US8638520B2 (en) 2010-11-22 2014-01-28 Kabusiki Kaisha Toshiba Magnetic recording apparatus and data reading method

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08185271A (ja) * 1994-12-27 1996-07-16 Internatl Business Mach Corp <Ibm> ディスク装置用データ処理方法及びディスク装置
JPH0934784A (ja) * 1995-07-14 1997-02-07 Sony Corp データ書込み回路、データ読出し回路及びデータ伝送装置
KR100269104B1 (ko) * 1995-08-10 2000-10-16 윤종용 보안장치를구비한개인용컴퓨터,그의보안방법및그보안장치의설치및제거방법
US6029226A (en) * 1996-09-30 2000-02-22 Lsi Logic Corporation Method and apparatus having automated write data transfer with optional skip by processing two write commands as a single write command
KR100465106B1 (ko) * 1997-04-24 2005-04-08 삼성전자주식회사 하드디스크드라이브에서디지털신호처리방법
US6141728A (en) * 1997-09-29 2000-10-31 Quantum Corporation Embedded cache manager
JP2001519563A (ja) 1997-10-08 2001-10-23 シーゲイト テクノロジー エルエルシー ディスクドライブアレイおよびデータ格納方法
US6157985A (en) * 1997-10-16 2000-12-05 Seagate Technology Llc Single-cycle variable period buffer manager for disk controllers
US6567889B1 (en) 1997-12-19 2003-05-20 Lsi Logic Corporation Apparatus and method to provide virtual solid state disk in cache memory in a storage controller
US6151685A (en) * 1998-05-15 2000-11-21 International Business Machines Corporation System and method for recovering a segment directory for a log structured array
JP2000155751A (ja) * 1998-11-18 2000-06-06 Mitsubishi Electric Corp システムlsi
US6601104B1 (en) 1999-03-11 2003-07-29 Realtime Data Llc System and methods for accelerated data storage and retrieval
US9143546B2 (en) 2000-10-03 2015-09-22 Realtime Data Llc System and method for data feed acceleration and encryption
US8692695B2 (en) 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
US7386046B2 (en) 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
DE10119754B4 (de) * 2001-04-23 2007-11-29 Infineon Technologies Ag Verfahren und Vorrichtung zum Speichern von Datenpaketen
KR100809069B1 (ko) * 2006-11-03 2008-03-03 삼성전자주식회사 비휘발성 메모리를 구비하는 광학 매체 드라이브 및 그구동 방법
US20080155166A1 (en) * 2006-12-22 2008-06-26 Fujitsu Limited Application specific processor for controlling data buffer manager
US8731899B2 (en) * 2007-06-29 2014-05-20 Seagate Technology Llc Adapter assembly for concurrent emulation of a native channel
US8041919B2 (en) * 2007-10-26 2011-10-18 International Business Machines Corporation Storing data blocks to maximize the amount of storage space used in a storage device
AU2009322598B2 (en) * 2008-12-02 2014-11-06 Ab Initio Technology Llc Data maintenance system
WO2010141742A1 (en) * 2009-06-03 2010-12-09 Sensortech Corporation Contact sensors and methods for making same
WO2017048921A1 (en) 2015-09-15 2017-03-23 Sencorables Llc Floor contact sensor system and methods for using same
CN109697077B (zh) * 2017-10-24 2021-09-17 华为技术有限公司 硬盘固件启动方法、装置及设备
US11704245B2 (en) 2021-08-31 2023-07-18 Apple Inc. Dynamic allocation of cache memory as RAM
US11893251B2 (en) 2021-08-31 2024-02-06 Apple Inc. Allocation of a buffer located in system memory into a cache memory

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4464713A (en) * 1981-08-17 1984-08-07 International Business Machines Corporation Method and apparatus for converting addresses of a backing store having addressable data storage devices for accessing a cache attached to the backing store
US4638425A (en) * 1982-09-29 1987-01-20 International Business Machines Corporation Peripheral data storage having access controls with error recovery
US4499539A (en) * 1982-12-20 1985-02-12 International Business Machines Corporation Method and apparatus for limiting allocated data-storage space in a data-storage unit
JPS59153251A (ja) * 1983-02-18 1984-09-01 Toshiba Corp デイスクキヤツシユシステム
US4603380A (en) * 1983-07-01 1986-07-29 International Business Machines Corporation DASD cache block staging
EP0452990A3 (en) * 1985-05-29 1992-04-15 Kabushiki Kaisha Toshiba Cache system adopting an lru system
US5218685A (en) * 1987-01-02 1993-06-08 General Electric Company System for write once read many optical storage devices to appear rewritable
US4882642A (en) * 1987-07-02 1989-11-21 International Business Machines Corporation Sequentially processing data in a cached data storage system
US5134563A (en) * 1987-07-02 1992-07-28 International Business Machines Corporation Sequentially processing data in a cached data storage system
US5253351A (en) * 1988-08-11 1993-10-12 Hitachi, Ltd. Memory controller with a cache memory and control method of cache memory including steps of determining memory access threshold values
US5257370A (en) * 1989-08-29 1993-10-26 Microsoft Corporation Method and system for optimizing data caching in a disk-based computer system
US5235690A (en) * 1990-08-31 1993-08-10 International Business Machines Corporation Method for operating a cached peripheral data storage subsystem including a step of subsetting the data transfer into subsets of data records
US5325509A (en) * 1991-03-05 1994-06-28 Zitel Corporation Method of operating a cache memory including determining desirability of cache ahead or cache behind based on a number of available I/O operations
US5283884A (en) * 1991-12-30 1994-02-01 International Business Machines Corporation CKD channel with predictive track table
US5420998A (en) * 1992-04-10 1995-05-30 Fujitsu Limited Dual memory disk drive
US5418921A (en) * 1992-05-05 1995-05-23 International Business Machines Corporation Method and means for fast writing data to LRU cached based DASD arrays under diverse fault tolerant modes
US5410653A (en) * 1992-06-16 1995-04-25 International Business Machines Corporation Asynchronous read-ahead disk caching using multiple disk I/O processes and dynamically variable prefetch length

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100385238B1 (ko) * 1995-11-27 2004-02-25 삼성전자주식회사 그룹적응형세그먼트캐시버퍼구현방법
US8638520B2 (en) 2010-11-22 2014-01-28 Kabusiki Kaisha Toshiba Magnetic recording apparatus and data reading method

Also Published As

Publication number Publication date
US5603002A (en) 1997-02-11

Similar Documents

Publication Publication Date Title
JPH0659952A (ja) 磁気ディスク装置
US6789163B2 (en) Optimizing data transfer performance through partial write command purging in a disc drive
US7046467B1 (en) Method for generating a format specific data structure in a disk drive having differing surface formats
US7003689B2 (en) Disk storage apparatus for audio visual data and retry method employed therein upon occurrence of sector error
JPH07169186A (ja) ディスクドライブにおいてユーザデータブロックセグメント内の特定のデータブロックの始めの位置決めをするための方法および装置ならびにディスクドライブアーキテクチャ
US8131920B2 (en) Method and system for dynamically allocating read and write sequence randomizer
US10366726B1 (en) Interlaced magnetic recording in with multiple independent-actuators having respective independent heads
US7003626B1 (en) Method for storing format specific data in a microcontroller execution memory
KR20110109819A (ko) 효과적인 데이터 저장을 위한 시스템들 및 방법들
US10318173B2 (en) Multi-speed data storage device with media cache for high speed writes
US6167461A (en) Programmable high performance disk formatter for headerless disk drive controller executing a series of low level instructions generated by a high level processing engine
KR100212084B1 (ko) 시리얼 인터페이스 회로
US7085965B2 (en) Apparatus and method for accessing a disk containing an alternate sector
JP2007184046A (ja) 回転円板形記憶装置および記録方法
US5940242A (en) Method for determining a position of track-zero and mapping tracks according thereto
US6691186B2 (en) Dual sequencer based disk formatter
JP3151757B2 (ja) ディスクドライブ
US6957300B2 (en) Reducing delay of command completion due to overlap condition
JP3307529B2 (ja) データ処理方法及びデータ記憶装置
JP2001154809A (ja) ディスク装置
JP4301026B2 (ja) データ記録装置及びデータ記録方法、並びに記録再生システム
KR20060092237A (ko) 기록 재생 장치 및 기록 방법
JP4269915B2 (ja) 記録再生装置及び方法、並びに記録再生システム
KR100189927B1 (ko) 하드 디스크 드라이브 제어장치 및 그 방법
JPH10241263A (ja) 磁気ディスク装置用制御回路素子及び同制御回路素子を備えた磁気ディスク装置