Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
MEMORY DEVICE, MEMORY CONTROL DEVICE, AND CONTROL METHOD
Document Type and Number:
WIPO Patent Application WO/2008/149453
Kind Code:
A1
Abstract:
A memory device includes a head actuator for moving a head to an arbitrary position of a disk medium, a disk recording and reproducing part for recording or reproducing data on the disk medium by the head, a nonvolatile memory control part for recording or reproducing information in a nonvolatile memory, a buffer control part for recording or reproducing information in a buffer memory, an upper interface control part for transmitting/receiving instructions and data with an upper device, and a transfer path switching part for switching a data transfer path among the disk recording and reproducing part, the nonvolatile memory control part, and the upper interface control part. An access control part controls the transfer path switching part when it receives from the upper device a data read instruction for reading the data from the nonvolatile memory, transfers the data read from the nonvolatile memory to the upper device, concurrently transfers it to the buffer memory, and stores in a cache domain.

Inventors:
NAKANISHI HIRONORI (JP)
KIKUCHI TAKESHI (JP)
Application Number:
PCT/JP2007/061606
Publication Date:
December 11, 2008
Filing Date:
June 08, 2007
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
FUJITSU LTD (JP)
NAKANISHI HIRONORI (JP)
KIKUCHI TAKESHI (JP)
International Classes:
G06F3/06
Domestic Patent References:
WO2005081097A22005-09-01
Foreign References:
JPH06149482A1994-05-27
JPS6476346A1989-03-22
JP2005209119A2005-08-04
JPH1040170A1998-02-13
JPH06236241A1994-08-23
JP2000305860A2000-11-02
JPH09244954A1997-09-19
Attorney, Agent or Firm:
TAKEUCHI, Susumu (Atago MarkBuilding 25-47,Nishi-Shinbashi,3-chome Minato-ku, Tokyo 03, JP)
Download PDF:
Claims:
 ヘッドをディスク媒体の任意の位置に移動するヘッドアクチュエータと、
 前記ヘッドによりディスク媒体にデータを記録又は再生するディスク記録再生部と、
 不揮発メモリに対し情報を書き込み又は読み出す不揮発メモリ制御部と、
 バッファメモリに対し情報を書き込み又は読み出すバッファ制御部と、
 上位装置との間で命令及びデータを送受する上位インタフェース制御部と、
 前記ディスク記録再生部、前記不揮発メモリ制御部及び前記上位インタフェース制御部の間でデータ転送パスを切替える転送パス切替部と、
 前記不揮発メモリからデータを読み出すデータ読出命令を前記上位装置から受信した際に、前記転送パス切替部を制御して前記不揮発メモリから読出したデータを前記上位装置に転送すると同時に前記バッファメモリに転送してキャッシュ領域に格納する制御を行うアクセス制御部と、
を備えたことを特徴とする記憶装置。
 請求項1記載の記憶装置に於いて、前記転送パス切替部は、
 前記不揮発メモリから読み出したデータを前記上位インタフェース制御部側と前記バッファ制御部側に2分岐して同時転送させる分岐パスアクセス制御部と、
 前記分岐パスアクセス制御部と前記上位インタフェースとの間に配置した第1FIFOと、
 前記分岐パスアクセス制御部と前記バッファ制御部との間に配置した第2FIFOと、
 前記第1FIFOと前記バッファ制御部との間の転送パス、前記第2FIFOと前記ディスク記録再生部との間の転送パス、又は前記バッファ制御部と前記ディスク記録再生部との間の転送パスのいずれか1つを切替選択するアービタと、
を備えたことを特徴とする記憶装置。
 請求項2記載の記憶装置に於いて、前記第1FIFO及び第2FIFOの記憶容量を、前記バッファメモリに対する単位書込データサイズの少なくとも2倍の記憶容量としたことを特徴とする記憶装置。
 請求項1記載の記憶装置に於いて、前記アクセス制御部は、前記不揮発メモリからデータを読み出すデータ読出命令を前記上位装置から受信した際に、前記バッファメモリのキャッシュ領域に該当するデータがあるかどうかを検索し、前記キャッシュ領域に該当するデータが存在した場合、前記キャッシュ領域のデータを読み出して前記上位装置に転送することを特徴とする記憶装置。
 請求項1記載の記憶装置に於いて、前記アクセス制御部は、前記不揮発メモリから前記ディスク媒体への書戻し命令を前記上位装置から受信した際又は前記アクセス制御部自身で書戻し要求を発生した際に、前記バッファメモリのキャッシュ領域に該当するデータがあるかどうかを検索し、前記キャッシュ領域に該当するデータが存在した場合、前記キャッシュ領域のデータを読み出して前記ディスク媒体に書き戻すことを特徴とする記憶装置。
 請求項5記載の記憶装置に於いて、前記アクセス制御部は、前記キャッシュ領域からデータを前記ディスク媒体に書き戻している間の前記バッファメモリの読出し空き時間を利用して前記不揮発メモリから前記バッファメモリのキャッシュ領域へキャッシュしていないデータを転送して格納することを特徴とする記憶装置。
 ヘッドによりディスク媒体にデータを記録又は再生するディスク記録再生部と、
 不揮発メモリに対し情報を書き込み又は読み出す不揮発メモリ制御部と、
 バッファメモリに対し情報を書き込み又は読み出すバッファ制御部と、
 上位装置との間で命令及びデータを送受する上位インタフェース制御部と、
 前記ディスク記録再生部、前記不揮発メモリ制御部及び前記上位インタフェース制御部の間でデータ転送パスを切替える転送パス切替部と、
 前記不揮発メモリからデータを読み出すデータ読出命令を前記上位装置から受信した際に、前記転送パス切替部を制御して前記不揮発メモリから読出したデータを前記上位装置に転送すると同時に前記バッファメモリに転送してキャッシュ領域に格納する制御を行うアクセス制御部と、
を備えたことを特徴とする記憶制御装置。
 請求項7記載の記憶制御装置に於いて、前記転送パス切替部は、
 前記不揮発メモリから読み出したデータを前記上位インタフェース制御部側と前記バッファ制御部側に2分岐して同時転送させる分岐パスアクセス制御部と、
 前記分岐パスアクセス制御部と前記上位インタフェースとの間に配置した第1FIFOと、
 前記分岐パスアクセス制御部と前記バッファ制御部との間に配置した第2FIFOと、
 前記第1FIFOと前記バッファ制御部との間の転送パス、前記第2FIFOと前記ディスク記録再生部との間の転送パス、又は前記バッファ制御部と前記ディスク記録再生部との間の転送パスのいずれか1つを切替選択するアービタと、
を備えたことを特徴とする記憶制御装置。
 請求項8記載の記憶制御装置に於いて、前記第1FIFO及び第2FIFOの記憶容量を、前記バッファメモリに対する単位書込データサイズの少なくとも2倍の記憶容量としたことを特徴とする記憶制御装置。
 請求項7記載の記憶制御装置に於いて、前記アクセス制御部は、前記不揮発メモリからデータを読み出すデータ読出命令を前記上位装置から受信した際に、前記バッファメモリのキャッシュ領域に該当するデータがあるかどうかを検索し、前記キャッシュ領域に該当するデータが存在した場合、前記キャッシュ領域のデータを読み出して前記上位装置に転送することを特徴とする記憶制御装置。
 請求項7記載の記憶制御装置に於いて、前記アクセス制御部は、前記不揮発メモリから前記ディスク媒体への書戻し命令を前記上位装置から受信した際又は前記アクセス制御部自身で書戻し要求を発生した際に、前記バッファメモリのキャッシュ領域に該当するデータがあるかどうかを検索し、前記キャッシュ領域に該当するデータが存在した場合、前記キャッシュ領域のデータを読み出して前記ディスク媒体に書き戻すことを特徴とする記憶制御装置。
 請求項11記載の記憶制御装置に於いて、前記アクセス制御部は、前記キャッシュ領域からデータを前記ディスク媒体に書き戻している間の前記バッファメモリの読出し空き時間を利用して前記不揮発メモリから前記バッファメモリのキャッシュ領域へキャッシュしていないデータを転送して格納することを特徴とする記憶制御装置。
 ヘッドをディスク媒体の任意の位置に移動するヘッドアクチュエータと、
 前記ヘッドによりディスク媒体にデータを記録又は再生するディスク記録再生部と、
 不揮発メモリに対し情報を書き込み又は読み出す不揮発メモリ制御部と、
 バッファメモリに対し情報を書き込み又は読み出すバッファ制御部と、
 上位装置との間で命令及びデータを送受する上位インタフェース制御部と、
 前記ディスク記録再生部、前記不揮発メモリ制御部及び前記上位インタフェース制御部の間でデータ転送パスを切替える転送パス切替部と、
を備えた記憶装置の制御方法に於いて、
 前記不揮発メモリからデータを読み出すデータ読出命令を前記上位装置から受信した際に、前記転送パス切替部を制御して前記不揮発メモリから読出したデータを前記上位装置に転送すると同時に前記バッファメモリに転送してキャッシュ領域に格納することを特徴とする記憶装置の制御方法。
 請求項13記載の記憶装置の制御方法に於いて、前記転送パス切替部は、
 前記不揮発メモリから読み出したデータを前記上位インタフェース制御部側と前記バッファ制御部側に2分岐して同時転送させる分岐パスアクセス制御部と、
 前記分岐パスアクセス制御部と前記上位インタフェースとの間に配置した第1FIFOと、
 前記分岐パスアクセス制御部と前記バッファ制御部との間に配置した第2FIFOと、
 前記第1FIFOと前記バッファ制御部との間の転送パス、前記第2FIFOと前記ディスク記録再生部との間の転送パス、又は前記バッファ制御部と前記ディスク記録再生部との間の転送パスのいずれか1つを切替選択するアービタと、
を備えたことを特徴とする記憶装置の制御方法。
 請求項14記載の記憶装置の制御方法に於いて、前記第1FIFO及び第2FIFOの記憶容量を、前記バッファメモリに対する単位書込データサイズの少なくとも2倍の記憶容量としたことを特徴とする記憶装置の制御方法。
 請求項13記載の記憶装置の制御方法に於いて、前記不揮発メモリからデータを読み出すデータ読出命令を前記上位装置から受信した際に、前記バッファメモリのキャッシュ領域に該当するデータがあるかどうかを検索し、前記キャッシュ領域に該当するデータが存在した場合、前記キャッシュ領域のデータを読み出して前記上位装置に転送することを特徴とする記憶装置の制御方法。
 請求項13記載の記憶装置の制御方法に於いて、前記不揮発メモリから前記ディスク媒体への書戻し命令を前記上位装置から受信した際又は前記アクセス制御部自身で書戻し要求を発生した際に、前記バッファメモリのキャッシュ領域に該当するデータがあるかどうかを検索し、前記キャッシュ領域に該当するデータが存在した場合、前記キャッシュ領域のデータを読み出して前記ディスク媒体に書き戻すことを特徴とする記憶装置の制御方法。
 請求項17記載の記憶装置の制御方法に於いて、前記キャッシュ領域からデータを前記ディスク媒体に書き戻している間の前記バッファメモリの読出し空き時間を利用して前記不揮発メモリから前記バッファメモリのキャッシュ領域へキャッシュしていないデータを転送して格納することを特徴とする記憶装置の制御方法。
 ヘッドをディスク媒体の任意の位置に移動するヘッドアクチュエータと、前記ヘッドによりディスク媒体にデータを記録又は再生するディスク記録再生部と、不揮発メモリに対し情報を書き込み又は読み出す不揮発メモリ制御部と、バッファメモリに対し情報を書き込み又は読み出すバッファ制御部と、上位装置との間で命令及びデータを送受する上位インタフェース制御部とを少なくとも備えた記憶装置の制御ユニットにおいて、
 前記ディスク記録再生部、前記不揮発メモリ制御部及び前記上位インタフェース制御部の間でデータ転送パスを切替える制御を行う転送パス切替制御部と、
 前記不揮発メモリからデータを読み出すデータ読出命令を前記上位装置から受信した際に、前記転送パス切替制御部を制御して前記不揮発メモリから読出したデータを前記上位装置に転送すると同時に前記バッファに転送してキャッシュ領域に格納する制御を行うアクセス制御部と、
を備えたことを特徴とする記憶装置の制御ユニット。
Description:
記憶装置、記憶制御装置及び制 方法

 本発明は、磁気ディスクと不揮発メモリを 憶媒体として使用する記憶装置、記憶制御 置及び制御方法に関し、特に、不揮発メモ からの読み出したデータのホスト転送を効 的に行う記憶装置、記憶制御装置及び制御 法に関する。

 近年、不揮発メモリであるフラッシュメ リの記憶容量の増加とコストの低減に伴い 気ディスク装置にフラッシュメモリを記憶 体として搭載したハイブリッド記憶装置が られている(特許文献1)。

 このようなハイブリッド記憶装置にあっ は、磁気ディスクに比べてフラッシュメモ の方がリード、ライトのアクセス時間が短 ことから、ホストのOSにより高速処理が要 されるランダムデータは不揮発メモリに格 し、連続処理が要求されるストリームデー は磁気ディスクに格納するような使い方を ている。

 ところで、ハイブリッド記憶装置でホス から不揮発メモリを対象としたリードコマ ドを受信した場合、装置のファームウェア 、図13のタイムチャートに示すようにデー 転送を制御する。図13(C)に示すようにホスト から不揮発メモリを対象としたリード要求100 -1を受信すると、図13(A)のように、不揮発メ リにロードコマンドを発行し、不揮発メモ が読出動作が可能な状態となってイネーブ が得られるとロードコマンド終了104-1とし、 不揮発メモリから転送データ106-11が読み出さ れ、図13(B)に示すようにバッファメモリに格 される。続いてバッファメモリから転送デ タ106-13が読み出されホストに転送データ106- 14として転送される。

 このように従来の不揮発メモリに対する ード要求は、不揮発メモリの読出し速度と ストへの転送速度が異なっていることから バッファメモリを経由して非同期にデータ 送を行うようにしている。

 また図14(A)に示すように、図13に続いて不 揮発メモリの同じデータに対しホストから再 リード要求100-2を受信したとすると、最初の ード要求と同様、図14(A)のように、不揮発 モリにロードコマンドを発行し、イネーブ が得られたらロードコマンド終了104-2とし、 不揮発メモリから読み出された転送データ106 -21をバッファメモリに転送データ106-22として 格納した後、バッファメモリから転送データ 106-23として読出し、ホストに転送データ106-24 として転送している。

 また不揮発メモリに格納したデータにつ ては、必要に応じて磁気ディスクに書き戻 場合がある。この書き戻しは、ホストから 書き戻し命令や、ファームウェアによる不 発メモリの空き領域の確保のための書き戻 要求により行われる。

 図15に示すように、書戻し要求108に対し 当データが不揮発メモリに存在する不揮発 モリヒット110を判別すると、図15(A)のように 、不揮発メモリにロードコマンド112を発行し 、イネーブルが得られたらロードコマンド終 了114とし、不揮発メモリから読み出された転 送データ106-31を図15(B)のようにバッファメモ に転送データ106-32として格納した後、バッ ァメモリから転送データ106-33として読出し 図15(D)のように転送データ106-34として磁気 ィスクに書き戻している。

 この書き戻しの場合にも、不揮発メモリの 出し速度と磁気ディスクへの書込み速度が なることから、バッファメモリを経由して 同期にデータ転送を行うようにしている。

特開2005-209119号公報

特開2003-233529号公報

 しかしながら、このような従来のハイブ ッド記憶装置にあっては、不揮発メモリか 読み出したデータをホストに転送する際に バッファメモリを経由してホストに転送し おり、バッファメモリを経由する分、ホス への読出しデータの転送に時間がかかると う問題がある。

 また不揮発メモリのデータを磁気ディス に書き戻す際にも、バッファメモリを経由 て磁気ディスクに書き戻しており、バッフ メモリを経由する分、磁気ディスクへの書 戻しデータの転送に時間がかかるという問 がある。

 本発明は、不揮発メモリからホストへの読 しデータ転送と不揮発メモリから磁気ディ クへの書き戻しデータ転送の処理時間を短 してアクセス性能を向上する記憶装置、記 制御装置及び制御方法を提供することを目 とする。

(記憶装置)
 本発明は記憶装置を提供する。本発明の記 装置は、
 ヘッドをディスク媒体の任意の位置に移動 るヘッドアクチュエータと、
 ヘッドによりディスク媒体にデータを記録 は再生するディスク記録再生部と、
 不揮発メモリに対し情報を書き込み又は読 出す不揮発メモリ制御部と、
 バッファメモリに対し情報を書き込み又は み出すバッファ制御部と、
 上位装置との間で命令及びデータを送受す 上位インタフェース制御部と、
 ディスク記録再生部、不揮発メモリ制御部 び上位インタフェース制御部の間でデータ 送パスを切替える転送パス切替部と、
 不揮発メモリからデータを読み出すデータ 出命令(リードコマンド)を上位装置から受 した際に、転送パス切替部を制御して不揮 メモリから読出したデータを上位装置に転 すると同時にバッファメモリに転送してキ ッシュ領域に格納する制御を行うアクセス 御部と、
を備えたことを特徴とする。

 ここで、転送パス切替部は、
 不揮発メモリから読み出したデータを上位 ンタフェース制御部側とバッファ制御部側 2分岐して同時転送させる分岐パスアクセス 制御部と、
 分岐パスアクセス制御部と上位インタフェ スとの間に配置した第1FIFOと、
 分岐パスアクセス制御部とバッファ制御部 の間に配置した第2FIFOと、
 第1FIFOとバッファ制御部との間の転送パス 第2FIFOとディスク記録再生部との間の転送パ ス、又はバッファ制御部とディスク記録再生 部との間の転送パスのいずれか1つを切替選 するアービタと、
を備える。

 望ましくは、第1FIFO及び第2FIFOの記憶容量 を、バッファメモリに対する単位書込データ サイズの少なくとも2倍の記憶容量とする。

 アクセス制御部は、不揮発メモリのデー 読出命令を上位装置から受信した際に、バ ファメモリのキャッシュ領域に該当するデ タがあるかどうかを検索し、キャッシュ領 に該当するデータが存在した場合、キャッ ュ領域のデータを読み出して上位装置に転 する。

 アクセス制御部は、不揮発メモリからデ スク媒体への書戻し命令(ライトバックコマ ンド)を上位装置から受信した際又はアクセ 制御部自身で書戻し要求を発生した際に、 ッファメモリのキャッシュ領域に該当する ータがあるかどうかを検索し、キャッシュ 域に該当するデータが存在した場合、キャ シュ領域のデータを読み出してディスク媒 に書き戻す。

 アクセス制御部は、キャッシュ領域から ータをディスク媒体に書き戻している間の ッファメモリの読出し空き時間を利用して 揮発メモリからバッファメモリのキャッシ 領域へキャッシュしていないデータを転送 て格納する。

(記憶制御装置)
 本発明は記憶制御装置を提供する。本発明 記憶制御装置は、
 ヘッドによりディスク媒体にデータを記録 は再生するディスク記録再生部と、
 不揮発メモリに対し情報を書き込み又は読 出す不揮発メモリ制御部と、
 バッファメモリに対し情報を書き込み又は み出すバッファ制御部と、
 上位装置との間で命令及びデータを送受す 上位インタフェース制御部と、
 ディスク記録再生部、不揮発メモリ制御部 び上位インタフェース制御部の間でデータ 送パスを切替える転送パス切替部と、
 不揮発メモリからデータを読み出すデータ 出命令を前記上位装置から受信した際に、 送パス切替部を制御して不揮発メモリから 出したデータを上位装置に転送すると同時 バッファメモリに転送してキャッシュ領域 格納するアクセス制御部と、
を備えたことを特徴とする。

(記憶装置の制御方法)
 本発明は記憶装置の制御方法を提供する。 発明は、
 ヘッドをディスク媒体の任意の位置に移動 るヘッドアクチュエータと、
 ヘッドによりディスク媒体にデータを記録 は再生するディスク記録再生部と、
 不揮発メモリに対し情報を書き込み又は読 出す不揮発メモリ制御部と、
 バッファメモリに対し情報を書き込み又は み出すバッファ制御部と、
 上位装置との間で命令及びデータを送受す 上位インタフェース制御部と、
 ディスク記録再生部、不揮発メモリ制御部 び上位インタフェース制御部の間でデータ 送パスを切替える転送パス切替部と、
を備えた記憶装置の制御方法に於いて、
 不揮発メモリからデータを読み出すデータ 出命令を上位装置から受信した際に、転送 ス切替部を制御して不揮発メモリから読出 たデータを上位装置に転送すると同時にバ ファメモリに転送してキャッシュ領域に格 する制御を行うことを特徴とする。

(記憶装置の制御ユニット)
 本発明は記憶装置の制御ユニットを提供す 。即ち、本発明は、ヘッドをディスク媒体 任意の位置に移動するヘッドアクチュエー と、ヘッドによりディスク媒体にデータを 録又は再生するディスク記録再生部と、不 発メモリに対し情報を書き込み又は読み出 不揮発メモリ制御部と、バッファメモリに し情報を書き込み又は読み出すバッファ制 部と、上位装置との間で命令及びデータを 受する上位インタフェース制御部とを少な とも備えた記憶装置の制御ユニットにおい 、
 ディスク記録再生部、不揮発メモリ制御部 び上位インタフェース制御部の間でデータ 送パスを切替える制御を行う転送パス切替 御部と、
 不揮発メモリからデータを読み出すデータ 出命令を上位装置から受信した際に、転送 ス切替制御部を制御して不揮発メモリから 出したデータを上位装置に転送すると同時 バッファに転送してキャッシュ領域に格納 る制御を行うアクセス制御部と、
を備えたことを特徴とする。

 本発明によれば、不揮発メモリに対する ストからの読出要求時に、不揮発メモリか 読み出したデータをホストへ転送すると同 にバッファメモリに転送してキャッシュす ことで、バッファメモリを経由せずにホス にデータを転送できるためホストに対する 送処理時間を短縮できる。

 また不揮発メモリの読出しによるホスト のデータ転送と同時にバッファメモリにキ ッシュできるため、その後の不揮発メモリ 対する同じデータの読出要求時に、バッフ メモリからホストへのデータ転送して転送 理時間を短縮できる。

 また不揮発メモリからディスク媒体への 戻し要求が発生した場合にも、バッファメ リにキャッシュしているデータをディスク 体に転送して書き戻すことで、不揮発メモ からバッファメモリを経由してディスク媒 に書き戻す場合に比べ、書き戻し処理時間 短縮できる。

 更に、不揮発メモリからディスク媒体への き戻し要求があったとき、バッファメモリ らディスク媒体にデータを転送して書き戻 場合、バッファメモリの読出速度に対しデ スク媒体の書込み速度が遅く、バッファメ リに読出し空き時間が発生することから、 の空き時間を利用して不揮発メモリからキ ッシュしていないデータを読出しキャッシ にプリフェッチすることで、不揮発メモリ データのバッファメモリにおけるキャッシ ヒット率を高め、全体的にみた記憶装置の クセス時間を短縮して処理性能を向上する とができる。

本発明による記憶装置の実施形態を示 たブロック図 本実施形態における不揮発メモリから ストとバッファメモリへの同時データ転送 示したタイムチャート 図2のデータ転送の詳細を示したタイム チャート 本実施形態の不揮発メモリへのリード 求に対しキャッシュヒットした場合のデー 転送を示したタイムチャート 図4のデータ転送の詳細を示したタイム チャート 本実施形態の不揮発メモリに対する書 戻し要求でキャッシュヒットした場合のデ タ転送を示したタイムチャート 本実施形態の不揮発メモリに対する書 戻し要求でキャッシュヒットした場合のデ タ転送と、その空き時間を利用して不揮発 モリから別データをキャッシュにプリフェ チするデータ転送を示したフローチャート 本実施形態における磁気ディスク装置 制御処理を示したフローチャート 図8のステップS6におけるライト処理の 細を示したフローチャート 図8のステップS8におけるリード処理の 詳細を示したフローチャート 図8のステップS11における書き戻し処 の詳細を示したフローチャート 本実施形態における不揮発メモリの制 御処理を示したフローチャート 従来の不揮発メモリへのリード要求に 対するホストへのデータ転送を示したタイム チャート 従来の不揮発メモリへの再リード要求 に対するホストへのデータ転送を示したタイ ムチャート 従来の不揮発メモリから磁気ディスク への書き戻し要求に対するデータ転送を示し たタイムチャート

 図1は本発明が適用される磁気ディスク装 置のブロック図である。図1において、ハー ディスクドライブ(HDD)として知られた磁気デ ィスク装置10は上位装置としてのホスト12に し接続され、ディスクエンクロージャ14と制 御ボート16で構成される。

 ディスクエンクロージャ14にはスピンド モータ18が設けられ、スピンドルモータ18の 転軸に磁気ディスク24-1、24-2を装着し、例 ば4200rpmの一定速度で回転している。

 またディスクエンクロージャ14にはボイ コルモータ20が設けられ、ボイスコルモータ 20はヘッドアクチュエータ22のアーム先端に ッド26-1~26-4を支持しており、磁気ディスク24 -1、24-2の記録側に対するヘッドの位置決めを 行う。

 ヘッド26-1~26-4は記録素子と読出素子が一 化された複合型のヘッドである。記録素子 は面内記録型の記録素子または垂直磁気記 型の記録素子が使用される。垂直磁気記録 の記録素子の場合、磁気ディスク24-1、24-2 は記録層と軟磁性裏打層を備えた垂直記録 体を使用する。読出素子にはGMR素子やTMR素 を使用する。

 ヘッド26-1~26-4はヘッドIC28に信号線接続さ れており、ヘッドIC28はホスト12からのライト コマンド(ライト要求)またはリードコマンド( リード要求)に基づく、ヘッドセレクト信号 ひとつのヘッドを選択し、書き込みまたは 出しを行う。またヘッドIC28にはライト系に いてはライトドライブが設けられ、リード についてはプリアンプが設けられている。

 制御ボード16にはMPU30が設けられ、MPU30の スに対し、RAMを用いた制御プログラム及び 御データを読出し配置する。メモリ34及び ピンドルモータ18とボイスコイルモータ20を 動制御するモータ駆動制御部35が設けられ いる。

 またMPU30に対してはメモリ制御部として 能するメモリインタフェース42を介して不揮 発メモリ38が接続され、また同じくメモリ制 部と機能するメモリインタフェース56を介 てバッファメモリ40が接続されている。

 本実施形態において不揮発メモリ38にはMP U30で実行される磁気ディスク装置10の制御プ グラムであるファームウェアを記録すると 時にデータを記憶するようにしている。こ ため本実施形態の磁気ディスク装置10は、 気ディスク24-1、24-2に加えてデータ記憶先と して不揮発メモリ38を備えたハイブリット型 記憶装置を構成している。

 不揮発メモリ38としてはフラッシュメモ などが用いられ、フラッシュメモリにあっ は予め定めたデータサイズ、例えば8キロバ ト、64キロバイトといったブロック単位で ータの書き込みと読出しを行う。

 またバッファメモリ40はRAMを使用してお 、バッファメモリ40についても予め定めたバ ースト長単位でのデータの書き込みと読出し を行う。

 本実施形態におけるデータ記憶に使用す 不揮発メモリ38としては、実用的には1GB程 の容量が必要となる。これに対しバッファ モリ40としては例えば64MB程度の容量で十分 ある。

 ヘッド26-1~26-4による磁気ディスク24-1、24- 2に対するデータの記録または再生のため、MP U30のバスに対しセクタバッファ60、ハードデ スクコントローラ62及びリードチャネル64を 設けており、セクタバッファ60からヘッドIC28 までの回路部がディスク記録再生部を構成し ている。

 一方、MPU30のバスに対してはホスト12との 間でコマンド(命令)及びデータを送信する上 インタフェース制御部として機能するホス インタフェース制御部50が設けられる。ホ トインタフェース制御部50としては例えばシ リアルATAインタフェースなどが使用される。

 このような本実施形態におけるホスト12 のホストインタフェース制御部50、不揮発メ モリ38側のメモリインタフェース42、バッフ メモリ40側のメモリインタフェース56、さら 磁気ディスク24-1、24-2にデータを記録また 再生するヘッド26-1~26-4側のセクタバッファ60 からヘッドIC28を含むディスク記録再生部と 間には、それぞれのデータ転送パスを切り えるための転送パス切替部が設けられてい 。

 この転送パス切替部には、不揮発メモリ3 8のメモリインタフェース42側から分岐パス制 御部46、FIFO(第1FIFO)48が設けられ、また分岐パ ス制御部46とバッファメモリ40のメモリイン フェース56の間にFIFO(第2FIFO)52とアービタ54が 設けられ、アービタ54に対しては更にFIFO48と クタバッファ60が接続されている。なお、FI FOは先入れ先出し(First In First Out)のメモリ ある。

 MPU30には不揮発メモリ38に記録されている ファームウェアをメモリ34に読出し配置して 行することで実現される機能としてアクセ 制御部65が設けられる。アクセス制御部65に はリード処理部66、ライト処理部68、書き戻 処理部70及びキャッシュ制御部72の機能が設 られている。

 本実施形態において、バッファメモリ40 は1次キャッシュ74が設けられ、不揮発メモ 38には2次キャッシュ73が設けられている。バ ッファメモリ40の1次キャッシュ74にはホスト1 2からのリード要求で不揮発メモリ38から読み 出されたデータ及び磁気ディスク24-1、24-2か 読み出されたデータが格納され、その後の じデータのリード要求に対し1次キャッシュ 74のキャッシュヒットでバッファメモリ40か ライトデータを読み出してホスト12に転送す る。

 不揮発メモリ38の2次キャッシュ73は1次キ ッシュ74からLRU管理により追い出された磁 ディスク24-1、24-2から読み出してキャッシュ したデータが格納される。

 本実施形態のMPU30に設けたリード処理部66 は、ホスト12から不揮発メモリ38を対象にデ タを読み出す命令、すなわちリードコマン を受信した際に、分岐パス制御部46を制御し (転送パス切替制御機能)、不揮発メモリ38か メモリインタフェース42により読出したデー タをFIFO48を介してホストインタフェース制御 部50からホスト12に転送すると同時に、FIFO52 介してアービタ54からメモリインタフェース 56によりバッファメモリ40に転送して1次キャ シュ74に格納する。

 ここで不揮発メモリ38の読出し速度に対 、分岐パス制御部46の分岐側に設けたFIFO48及 びFIFO52の書き込み速度は十分に高速である。 従って不揮発メモリ38からの読出しデータの 送中にFIFO48及びFIFO52が常にエンプティ状態 維持し、不揮発メモリ38の読出しデータを 続的に先出しにより処理し、FIFO48からホス インタフェース制御部50に、またFIFO52からア ービタ54を経由してバッファメモリ40に転送 ることができる。

 また何らかの原因によりFIFO48とFIFO52のい れか一方のエンプティ状態が断たれて停止 た場合には、他方のFIFOに対する書き込みも 停止する。

 またバッファメモリ40に対し、読出しデ タを転送するFIFO52にあっては、バッファメ リ40に対するデータ書き込みがバースト長単 位に実行されていることから、FIFO52の記憶容 量としてはバッファメモリ40に対するバース 長の少なくとも2倍の大きさがあれば、不揮 発メモリ38からの読出しデータに対し連続的 バッファメモリ40への転送が可能である。 れによってFIFO48を経由したホストインタフ ース制御部50からのホスト12へのデータ転送 妨げることはない。

 MPU30に設けたリード処理部66は、不揮発メ モリ38から読出したデータをバッファメモリ4 0の1次キャッシュ74に格納した後、ホスト12か ら不揮発メモリ38の同じデータについて再度 ードコマンドを受信した際には、MPU30に設 ているキャッシュ制御部72により1次キャッ ュ74の管理データを参照することでキャッシ ュヒットを判定し、この場合には不揮発メモ リ38からではなくバッファメモリ40の1次キャ シュ74から該当するデータを読出し、メモ インタフェース56からアービタ54さらにFIFO48 経由してホストインタフェース制御部50に 力し、ホスト12に1次キャッシュ74からの読出 しデータを転送する。

 このバッファメモリ40の1次キャッシュ74 ヒットによる不揮発メモリ38のホスト12に対 るデータ転送については、バッファメモリ4 0によりバースト長単位でFIFO48を経由したデ タ転送が行われるため、FIFO48の空き容量が ースト長より大きい限りバッファメモリ40は 連続的に読出しデータの転送を繰り返すこと ができる。

 このためバッファメモリ40の1次キャッシ 74からのホスト転送については、FIFO48の記 容量がバッファメモリ40の読出し単位である バースト長の少なくとも2倍あれば、バッフ メモリ40の読出しを中断することなく最大速 度のデータ転送が可能となる。

 更に、MPU30に設けた書き戻し処理部70は、 不揮発メモリ38から磁気ディスク24-1、24-2に する書き戻しコマンドを受信した場合、ま はファームウェア自身の制御となるキャッ ュ制御部72で不揮発メモリ38から磁気ディス 24-1、24-2への書き戻し要求が発生した場合 キャッシュ制御部72によりバッファメモリ40 1次キャッシュ74に該当するデータがあるか うかを検索し、1次キャッシュ74に該当する ータが存在してキャッシュヒットとなった 合には1次キャッシュ74のデータを読み出し 、磁気ディスク24-1、24-2側に書き戻す。

 このようなバッファメモリ40の1次キャッ ュ74のデータを使用した磁気ディスクに対 る書き戻しに対し、不揮発メモリ38からデー タを読み出してバッファメモリ40に格納した 、バッファメモリ40から読み出して磁気デ スクに書き込むというバッファメモリ40を経 由した書き戻し処理に対し、処理時間を短縮 することができる。

 ここでホスト12による不揮発メモリ38から 磁気ディスク24-1、24-2側に対する書き戻し要 としては、ホスト12が不揮発メモリ38の2次 ャッシュ75のデータを磁気ディスクに格納す るコマンドを発行する場合がある。

 またホスト12が処理する不揮発メモリ38か ら磁気ディスクへの書き戻しの処理としては 、ホスト12が不揮発メモリ38にデータを書き む際に不揮発メモリ38への蓄積を示す標識と なるフラグであるPINフラグをセットして格納 している。

 ホスト12からのライトデータにPINフラグ セットされていれば、不揮発メモリ38への蓄 積を意味している。このような状態でホスト 12は不揮発メモリ38のデータに対し必要に応 てPINフラグをリセットすることができる。

 ホスト12により不揮発メモリ38に格納して いるデータのPINフラグがリセットされると、 リセットされたデータを磁気ディスクに書き 戻す動作を行う。

 従ってホスト12で不揮発メモリ38に格納し ているデータのPINフラグをリセットすること で、MPU30の書き戻し処理部70がPINフラグがリ ットされた不揮発メモリ38のデータを磁気デ ィスクに書き戻す処理を実行することになる 。

 また磁気ディスク装置のファームウェア よる不揮発メモリ38のデータの磁気ディス への書き戻しとして、キャッシュ制御部72に よる書き戻し処理がある。

 キャッシュ制御部72による書き戻し処理 、バッファメモリ40の1次キャッシュ74および 不揮発メモリ38の2次キャッシュ73についてLRU( Least Recently Used)管理が行われている。

 まず1次キャッシュ74についてはLRU管理に り追い出し対象となった1次キャッシュのデ ータは不揮発メモリ38に書き戻される。この き書き戻しデータが磁気ディスクのキャッ ュデータであった場合には2次キャッシュ73 書き戻す。書き戻しデータが不揮発メモリ3 8のデータであった場合には該当する不揮発 モリ38のデータに上書きする。

 不揮発メモリ38の2次キャッシュ73につい もLRU管理で追い出し対象となったデータの 気ディスク24-1、24-2に対する書き戻しが行わ れる。このとき書き戻し処理部70は書き戻し 象となった2次キャッシュ73のデータがバッ ァメモリ40の1次キャッシュ74にあるか否か 索し、キャッシュヒットとなればバッファ モリ40の1次キャッシュ74から磁気ディスクに 書き戻す。

 2次キャッシュ73のデータが1次キャッシュ 74でミスヒットとなった場合は、2次キャッシ ュ73のデータをバッファメモリ40に転送して 納した後、バッファメモリ40から読み出して 磁気ディスク24-1、24-2側に書き戻す。

 MPU30に設けたライト処理部68は、ホストイ ンタフェース制御部50でホスト12からライト 求であるライトコマンドを受信した際に、FI FO48、アービタ54を介してメモリインタフェー ス56によりライトデータをバッファメモリ40 書き込んだ後、コマンドで指定された不揮 メモリ38または磁気ディスク24-1、24-2側に転 して書き込むことになる。

 このときライトデータがバッファメモリ4 0の1次キャッシュ74の更新データである場合 は、1次キャッシュ74のデータをライトデー により上書きして更新し、不揮発メモリ38ま たは磁気ディスク24-1、24-2側と更新により異 ったデータになることから、書き戻しフラ をセットしておく。

 このように1次キャッシュ74のデータをラ トデータにより更新して書き戻しフラグを ットしておけば、その後、キャッシュ制御 72がホスト12からのアクセスのない空き時間 を利用して、書き戻しフラグがセットされて いる1次キャッシュ74のデータを不揮発メモリ 38または磁気ディスク24-1、24-2側に書き戻し 一致させる。

 またホスト12からのライトコマンドが磁 ディスク24-1、24-2を対象としたライトコマン ドの場合、バッファメモリ40の1次キャッシュ 74の検索でミスヒットとなった場合には、不 発メモリ38の2次キャッシュ73を検索し、2次 ャッシュ73でキャッシュヒットとなった場 には、バッファメモリ40からライトデータを 不揮発メモリ38に転送し、2次キャッシュ73の 当データを更新する。

 この場合にも、更新した2次キャッシュ73 データについて書き戻しフラグをセットし おき、アイドル状態で書き戻し処理部70が き戻しフラグがセットされている2次キャッ ュ73のデータを読出し、バッファメモリ40を 経由して磁気ディスク24-1、24-2側に書き戻し 2次キャッシュ73と磁気ディスク24-1、24-2側 データを一致させる。

 図2は本実施形態における不揮発メモリか らホストとバッファメモリへ読出しデータを 同時転送する転送処理を示したタイムチャー トである。

 図2(E)に示すように、ホスト12からリード 求(リードコマンド)75を受信すると、MPU30の ード処理部66は不揮発メモリ38のメモリイン タフェース42に対しロードコマンド76を発行 る。

 このロードコマンド76を受けてメモリイ タフェース42は動作し、不揮発メモリ38がデ タ読出し可能状態となってイネーブル信号 得られるとロードコマンド終了77を行う。 ードコマンド終了77を行うと不揮発メモリ38 メモリインタフェース42を介して転送デー 78-11の読出し出力を開始する。

 不揮発メモリ38から出力された転送デー 78-11は分岐パス制御部46に入力し、FIFO48とFIFO 52のそれぞれに分岐して転送される。

 FIFO52については、図2(B)に示すように、分 岐パス制御部46で分岐された転送データを転 データ78-12として書き込んだ後に読み出し アービタ54を経由してメモリインタフェース 56により図2(C)のように転送データ78-13として き込み、1次キャッシュ74に格納する。

 同時に分岐パス制御部46より出力された 送データ78-11は、図2(D)に示すように、FIFO48 らホストインタフェース制御部50に転送デー タ78-21として転送され、図2(E)に示すようにホ ストインタフェース制御部50からホスト12に 送される。

 このように本実施形態にあっては、不揮 メモリ38からの転送データ78-11は、バッファ メモリ40とホスト12に対し同時並列的に転送 れ、図13に示したように、従来のバッファメ モリを経由したホスト転送に比べ、バッファ メモリを経由をせずに直接ホストに転送する ことでホスト転送時間を短縮することができ る。またホスト転送と同時にバッファメモリ 38における1次キャッシュ74へのキャッシュ登 が同時にできる。

 図3は図2のデータ転送の詳細を示したタ ムチャートである。図3(A)は不揮発メモリ40 出力、図3(B)はFIFO48のイネーブル、図3(C)はFIF O48のエンプティ、図3(D)はFIFO48の出力、図3(E) ホスト12に対するホストインタフェース制 部50の出力、図3(F)はFIFO52のイネーブル、図3( G)はFIFO52の出力、図3(H)はバッファメモリ40の き込みを示している。

 すなわち図3(E)でホスト12の出力としてリ ドコマンド75を受信すると、図3(A)のように 揮発メモリ38に対しファームウェアがロー コマンド76-1を発行し、不揮発メモリ38がデ タ読出し可能状態になるとロードコマンド 了77-1とし、これによって不揮発メモリ38よ 転送データ78-11が読出し出力される。なお次 にリード要求があればロードコマンド終了77- 1のあとにロードコマンド終了77-2を発行する

 不揮発メモリ38からの転送データ78-11の読 出し出力に対し、図3(B)のようにFIFO48がイネ ブルとなり、不揮発メモリ38からの転送デー タ78-11を図3(C)のようにFIFO48のエンプティが立 ち上がるまで連続的に書き込む。

 ここで不揮発メモリ38の読出し速度に対 FIFO48の書き込み読出しによる転送速度が速 ことから、図3(D)に示すように、FIFO48に対し 続的に転送データ78-11を書き込み、FIFO48は 3(D)に示すように連続的に高速読出しを繰り す。

 FIFO48から読み出された転送データは、図3 (E)のようにホストインタフェース制御部50に りFIFO48にデータが入っている限り継続的に スト12側に読出し転送する。

 一方、不揮発メモリ38の転送データ78-11は 、図3(F)のFIFO52のイネーブルとなっているこ からFIFO52に書き込まれ、FIFO52にバッファメ リ40のバースト長分のデータがたまると、図 3(G)に示すように、バースト長単位で図3(H)の ッファメモリ40に対する書き込み転送が行 れる。

 不揮発メモリ38の転送データ78-11のホスト 12及びバッファメモリ40に対する転送が終了 ると、次のリードコマンドに対するロード マンド76-2に対応したロードコマンド終了77-2 となり、更に次のリードコマンドがあればロ ードコマンド76-3を発行した後、次の転送デ タの不揮発メモリ38からの読み出しによるホ スト12及びバッファメモリ40への転送を行う

 図4は図2のように不揮発メモリから転送 ータ78-11を読み出してホスト12に転送すると 時に、バッファメモリ40に転送して1次キャ シュ74に格納した後、ホスト12から同じ不揮 発メモリのデータを対象に再リード要求を行 うときのデータ転送を示したタイムチャート である。

 図4(E)に示すようにホスト12から再リード 求80を受けると、キャッシュ制御部72が1次 ャッシュ74の管理データを検索してキャッシ ュヒット82を判定し、図4(C)のバッファメモリ 40の1次キャッシュ74から転送データ78-31を読 し、アービタ54を介して図4(D)に示すようにFI FO48からホストインタフェース制御部50に転送 データ78-32を送り、図4(E)のようにホストイン タフェース制御部50からホスト12に対し転送 ータ78-33を転送する。

 このような不揮発メモリ38に対するホス 12からの再リード要求80で1次キャッシュ74の ャッシュヒットとなった場合には、キャッ ュヒットせずに破線で示す不揮発メモリ38 ら転送データ106-1を読み出してホスト12に転 データ106-2として転送する場合に比べ、T時 分の処理時間を短縮することができる。

 図5は図4のバッファメモリ40のキャッシュ ヒットでホストにデータを転送する際の詳細 を示したタイムチャートである。図5におい 、キャッシュヒットとなることで、図5(H)の うに、バッファメモリ40より転送データ78-13 はバースト長単位で連続的に出力される。

 このとき図5(B)のFIFO48は最初のバッファメ モリ40からのバースト長の転送データを受け 図5(C)のFIFO48エンプティがオフとなり、図5(D )のようにFIFO48のイネーブルに同期してバッ ァメモリ40からのバースト長の転送データの 書き込みが行われる。

 同時に図5(D)のようにFIFO48はホスト側の転 送速度が速いことから連続的に転送データ78- 31の出力を行い、図5(E)のようにホスト12に対 ホストとインタフェース制御部50から転送 ータ78-32として連続的に転送される。

 図6は本実施形態の不揮発メモリ38に対す 書き戻し要求でキャッシュヒットとなった 合のデータ転送を示したタイムチャートで る。

 図6(A)~(F)の前半は図2(A)~(E)による最初のリ ード要求75に対するホスト12及びバッファメ リ40に対するデータ転送を示しており、その 後、バッファメモリ40に書き込んだ転送デー 78-13と同じ不揮発メモリ38のデータについて 書き戻し要求84が発生したとする。

 この書き戻し要求84に対し図1の書き戻し 理はキャッシュ制御部72に対しバッファメ リ40の1次キャッシュ74に該当データが有るか 否かの検索を依頼し、検索結果としてキャッ シュヒット86を受けると、図6(C)のようにバッ ファメモリ40に対し転送データ78-31の読出し 要求し、これが図6(F)のように磁気ディスク2 4に転送データ78-32として転送書き込みされる 。

 このように不揮発メモリ38のデータを対 とした磁気ディスクへの書き戻し要求につ 、バッファメモリ40の1次キャッシュ74でキャ ッシュヒットとなった場合には、破線で示す 不揮発メモリ38から転送データ106-1を読み出 てバッファメモリ40に転送データ106-2として 納した後、転送データ106-3として読み出し 磁気ディスク24に転送データ106-4として書き む従来の書き込み処理に比べ、T時間分の処 理時間を短縮することができる。

 図7は本実施形態における不揮発メモリか ら磁気ディスクに対する書き戻しを連続して 行う際のバッファメモリの空き時間を利用し て不揮発メモリ38から別データを1次キャッシ ュ74にプリフェッチするデータ転送を示した イムチャートである。

 図7(A)~(F)の前半は図6と同じく不揮発メモ 38から磁気ディスク24に対する書き戻しで、 バッファメモリ40の1次キャッシュ74がキャッ ュヒット90となって場合の処理であり、バ ファメモリ40の1次キャッシュ74から転送デー タ78-31が読み出され、磁気ディスク24に転送 ータ78-32を書き戻す処理が行われる。

 ここでバッファメモリ40の転送データ78-31 の書き込み時間に対し、磁気ディスク24に対 る転送データ78-32の書き込み時間の方が長 ため、バッファメモリ40で転送データ78-31を 出した後、空き時間を生じ、磁気ディスク2 6に対する転送データ78-32の書き込み終了を待 って次の転送データ78-41のバッファメモリ40 らの読出しが行われる。

 そこで本実施形態にあっては、バッファ モリ40における転送データ78-31と転送データ 78-41の間の読出し空き時間に、不揮発メモリ3 8から別の転送データ92-11を読出し、FIFO52から バッファメモリ40に転送データ92-12として転 し、バッファメモリ40の1次キャッシュ74に転 送データ92-13として書き込むようにしている

 具体的には書戻し要求88が発生した際に 図7(A)の不揮発メモリ38にロードコマンド76-1 発行し、不揮発メモリ38が読出し可能とな た状態で、ロードコマンド終了77-1として不 発メモリ38から転送データ92-11を読出し、FIF O52を経由してバッファメモリ40に転送データ9 2-13として書き込む。

 ここでバッファメモリ40の読出し空き時 を使用して不揮発メモリ38からバッファメモ リ40の1次キャッシュ74に書き込むデータとし は、1次キャッシュ74におけるMRU(Most Resently Used)の対象となっているデータ、すなわち最 新使用データに後続する不揮発メモリ38のデ タを読出し転送して1次キャッシュ74に格納 る。

 このようにバッファメモリ40の転送デー 78-31の読出し空き時間に不揮発メモリ38から 出し転送した転送データ92-13を格納した後 後続する転送データ78-41を読み出して磁気デ ィスク24に転送データ78-42として書き込む。

 この場合、次の空き時間に対しても不揮 メモリ38に対しロードコマンド76-2を発行し 読出し可能状態となることでロードコマン 終了77-2とした後、転送データ92-21を読出し バッファメモリ40の1次キャッシュ74に転送 ータ92-23として書き込む。

 このように不揮発メモリ38から磁気ディ ク24にデータを書き戻す際に、バッファメモ リ40のキャッシュヒットとなることでバッフ メモリ40から磁気ディスク24の読出し転送に おけるバッファ空き時間のタイミングで不揮 発メモリ38から別データをバッファメモリ40 転送して1次キャッシュ74にプリフェッチキ ッシュデータをして格納しておくことがで 、バッファメモリ40に設けた1次キャッシュ74 のキャッシュデータをその後のホストからの アクセスに対し、キャッシュヒットしやすい データ状態とすることができ、1次キャッシ 74のキャッシュヒットの割合が高まることで 磁気ディスク装置全体としてのアクセス性能 を向上することができる。

 図8は本実施形態における磁気ディスク装 置の制御処理を示したフローチャートであり 、図1を参照して説明すると次のようになる

 図8において、まず図1のホスト12を起動す ると、ホスト12の起動に伴い磁気ディスク装 10の電源も投入され、ステップS1で起動処理 が行われ、ステップS2で正常に起動すると、 テップS3でホスト12に対しレディ応答を送っ てアクセス可能状態となる。

 続いてステップS4でホスト12からのコマン ド受信の有無をチェックしており、コマンド を受信するステップS5に進み、ステップS5で イトコマンドであることを判別するとステ プS6に進み、ライト処理を実行する。

 またステップS7でリードコマンドである とを判別すると、ステップS8でリード処理を 実行する。更にステップS9で書戻しコマンド( ライトバックコマンド)であることを判別す と、ステップS11に進み、書戻し処理を実行 る。

 一方、磁気ディスク装置のファームウェ であるアクセス制御部65により書戻し要求 発生したことをステップS10で判別すると、 テップS11の書戻し処理を実行する。このよ なステップS4~S11の処理を、ステップS12でホ ト12のログオフによる停止指示があるまで繰 り返す。

 図9は図8のステップS6におけるライト処理 の詳細を示したフローチャートである。図9 おいてライト処理は、図1のアクセス制御部6 5に設けたライト処理部68によりライトコマン ドを解読して実行される。

 図9において、ライト処理は、ステップS1 ホスト12から受信したライトデータを、ホ トインターフェイス制御部50からアービタ54 経由してメモリインターフェイス56により ッファメモリ40に格納する。

 その後、ステップS2で、キャッシュ制御 72によりバッファメモリ40の1次キャッシュ74 管理データにより、1次キャッシュ74に該当 るデータがあるか否か検索する。

 ステップS3で1次キャッシュ74のキャッシ ヒットを判別すると、ステップS4で、ホスト 12から受信したライトデータにより、1次キャ ッシュ74の該当するデータを上書きして更新 る。この1次キャッシュ74のデータ更新につ ては、更新済みのデータの書戻しフラグを ットする。

 一方、ステップS3でキャッシュミスヒッ となった場合には、ステップS5に進み、不揮 発メモリ38への書込みか否かチェックする。 込み先が不揮発メモリであった場合にはバ ファメモリ40のライトデータを読み出し、 ービタ54、FIFO52、分岐パス制御部46を通る経 で、メモリインターフェイス42により不揮 メモリ38に書き込む。

 このときキャッシュ制御部72において不 発メモリ38に設けている2次キャッシュ73に該 当するデータがあるか否か検索し、2次キャ シュ73でキャッシュヒットとなった場合には 、バッファメモリ40から転送したライトデー により2次キャッシュ73の該当データを上書 して更新し、更新データにつき書き戻しフ グをセットする。2次キャッシュ73のキャッ ュミスヒットの場合には、不揮発メモリ38 空き領域にライトデータを書き込む。

 またステップS5で書込み先が不揮発メモ 38でなかった場合には、ステップS7で磁気デ スクへの書込みを判別し、ステップS8でバ ファメモリ40のライトデータを読み出し、ア ービタ54を介してセクタバッファ60に送り、 ードディスクコントローラ62を経由し、リー ドチャネル64で変調し、ヘッドIC28を介して、 そのとき選択している例えばヘッド26-1によ 、磁気ディスク24-1の目標トラックにライト ータを書き込む。

 図10は図8のステップS8におけるリード処 の詳細を示したフローチャートであり、図1 参照して説明すると次のようになる。図1の アクセス制御部65に設けたリード処理部66は ホスト12から受信したリードコマンドの解読 結果に基づき、まずステップS1で、キャッシ 制御部72に処理を依頼して、バッファメモ 40に設けている1次キャッシュ74の管理データ を対象に、1次キャッシュ74に該当データがあ るか否か検索する。

 ステップS2で1次キャッシュ74でのキャッ ュヒットが判別されると、ステップS3で1次 ャッシュ74からデータを読み出し、アービタ 54、FIFO48を介して、ホストインターフェイス 御部50に転送データを送り、ホスト12に転送 する。

 一方、ステップS2でキャッシュミスヒッ を判定した場合は、ステップS4に進み、該当 データが不揮発メモリ38にあるか否かチェッ し、不揮発メモリ38にあることがヒット判 されると、ステップS5に進み、不揮発メモリ 38から該当するデータを読み出して、分岐パ 制御部46よりFIFO48を介してホストインター ェイス制御部50に送り、ホストインターフェ イス制御部50からホスト12に転送する。

 同時に、分岐パス制御部46からFIFO52、ア ビタ54を介して、バッファメモリ40にデータ 転送し、1次キャッシュ74にデータを書き込 。

 ステップS4で該当データが不揮発メモリ なかった場合(ミスヒット)には、ステップS7 磁気ディスクに該当データがあることを判 すると、ステップS8で磁気ディスクからデ タを読み出してバッファメモリ40に書き込む 。

 続いてステップS9で、バッファメモリ40か らデータを読み出し、アービタ54及びFIFO48を 由して、ホストインターフェイス制御部50 よりホスト12に対しデータを転送する。更に ステップS10で、バッファメモリ40に転送した ータを1次キャッシュ74に書き込む。

 図11は図8のステップS11における書き戻し 理の詳細を示したフローチャートであり、 1を参照して説明すると次のようになる。

 図11において、アクセス制御部65の書き戻 し処理部70がホスト12からの書き戻しコマン あるいは不揮発メモリ38に格納しているデー タのPINフラグのリセット、あるいはキャッシ ュ制御部72による2次キャッシュ73からのLRU管 によるキャッシュ追出しによる書き戻し要 を判別すると、ステップS1で不揮発メモリ ら磁気ディスクへの書き戻しであることを 別すると、ステップS2に進み、書き戻しデー タがバッファメモリ40の1次キャッシュ74にあ か否か検索する。

 続いてステップS3で1次キャッシュ74に該 データが存在するキャッシュヒットを判別 ると、ステップS4で1次キャッシュ74のデータ を読み出し、該当する磁気ディスクに転送し て書き込む。

 このバッファメモリ40の1次キャッシュ74 ら磁気ディスクにデータを読み出して転送 込みする書き戻し処理の際には、図7のタイ チャートに示したように、バッファメモリ4 0の読出しに空き時間が生ずることから、こ 空き時間につき、ステップS4で不揮発メモリ 38の別のデータ例えば1次キャッシュ74におけ LRU管理の対象となっているデータに後続す データを読み出して、プリフェッチデータ して1次キャッシュ74に書き込む。

 一方、ステップS3で不揮発メモリから磁 ディスクに書戻しするデータが1次キャッシ 74でミスヒットとなった場合には、ステッ S6で不揮発メモリ38のデータを読み出してバ ファメモリ40に転送書込みした後、ステッ S7でバッファメモリ40からデータを読み出し 磁気ディスクに転送して書き込むことにな 。

 またステップS8でバッファメモリ40の1次 ャッシュ74から不揮発メモリ38への書き戻し 判別した場合は、即ち1次キャッシュ74のLRU 理のキャッシュ追出しによる書き戻しを判 した場合は、ステップS9で1次キャッシュ74 データを読み出して不揮発メモリ38に転送し 、不揮発メモリ38に書き込む。

 このバッファメモリ40から不揮発メモリ38 の書き戻しについては、不揮発メモリ38に存 するデータに対する1次キャッシュ74からの ータの書き戻しによる上書きと、不揮発メ リ38の2次キャッシュ73に存在する該当デー に対する上書きによる書き戻しがある。

 2次キャッシュ73に存在するデータは、そ 元となる該当データは磁気ディスクにある とから、2次キャッシュ73に対する書き戻し 、更新済みのデータの書き戻しフラグをセ トしておく。

 図12は本実施形態における不揮発メモリ38 のメモリ制御を示したフローチャートであり 、図1のアクセス制御部65によるメモリインタ ーフェイス42の制御として実行される。

 図12において、不揮発メモリ制御は、ス ップS1でストア要求であることを判別すると 、ステップS2でメモリインターフェイス42に トアコマンドを発行し、メモリインターフ イス42からのライトイネーブルをステップS3 判別すると、ステップS4でストアコマンド 終了とし、ステップS5で後続してストア要求 があれば、ステップS2からの処理を繰り返す

 一方、ステップS6でロード要求を判別す と、ステップS7でロードコマンドをメモリイ ンターフェイス42に発行し、ステップS8でリ ドイネーブルを判別すると、ステップS9でロ ードコマンドを終了とする。

 ステップS10で継続してロード要求があれ 、ステップS7からの処理を繰り返す。この うなステップS1~S10の処理を、ステップS11で スト12によるログオフなどによる停止指示が あるまで繰り返す。

 また本発明は、図1のMPU30のアクセス制御 として機能するファームウェアプログラム 提供する。このファームウェアプログラム 、図8~図12のフローチャートに示した処理内 容を持つ。

 更に本発明は記憶装置の制御ユニットを 供する。この記憶装置の制御ユニットは図1 の実施形態における制御回路部36に該当し、 御回路部36にはMPU30、メモリインターフェイ ス42、分岐パス制御部46、FIFO48、ホストイン ーフェイス制御部50、FIFO52、アービタ54、メ リインターフェイス56、セクタバッファ60、 ハードディスクコントローラ62及びリードチ ネル64が含まれており、これらの回路部を む制御回路36は1つのLSIとして作られている

 なお、本実施形態では制御回路36は1つのL SIであるが、ハードディスクコントローラ、 ードチャネル等は、別のLSIであっても良く 記憶装置の制御ユニットは、MPUなどのコン ローラを少なくとも含む制御回路で構成さ ていても良い。

 また、本実施形態における1次キャッシュ 74はバッファメモリ40に設けていることから ホスト12のログオフにより磁気ディスク装置 10の電源を切断すると1次キャッシュ74は消去 れることになる。

 この電源遮断時にあっては、キャッシュ 御部72により1次キャッシュ74の中の書き戻 フラグがセットされているデータについて 、電源遮断処理として、書き戻しフラグが ットされている1次キャッシュ74のデータを 揮発メモリ38の該当データ及びその2次キャ シュ73の該当データに書き戻す書き戻し処理 を完了してから処理を停止させる。

 これによって、揮発メモリであるバッフ メモリ40に1次キャッシュ74を設けていても 電源切断に伴う1次キャッシュ74のキャッシ データの喪失を防ぐことができる。

 また本発明はその目的と利点を損なうこ のない適宜の変形を含み、更に上記の実施 態に示した数値による限定は受けない。