JP2007193439A - 不揮発性キャッシュメモリを用いる記憶装置とその制御方法 - Google Patents
不揮発性キャッシュメモリを用いる記憶装置とその制御方法 Download PDFInfo
- Publication number
- JP2007193439A JP2007193439A JP2006009042A JP2006009042A JP2007193439A JP 2007193439 A JP2007193439 A JP 2007193439A JP 2006009042 A JP2006009042 A JP 2006009042A JP 2006009042 A JP2006009042 A JP 2006009042A JP 2007193439 A JP2007193439 A JP 2007193439A
- Authority
- JP
- Japan
- Prior art keywords
- data
- read
- hard disk
- cache memory
- host
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】ホスト装置側のセクタ長とハードディスク側のセクタ長が異なる場合でもデータ処理効率を落とすことなくデータ処理ができるようにする。
【解決手段】コマンドに基づいてフラッシュメモリ203をキャッシュとして使用したデータ処理を行うに先立ち、ホスト定義セクタをベースとする第1のデータブロックの始端及び終端アドレス囲む、ハードディスク204側で定義されているロングセクタをベースとする第2のデータブロックの一部若しくは全体のデータを前記ハードディスクから読出しフラッシュメモリ203に書き込むようにした。
【選択図】図3
【解決手段】コマンドに基づいてフラッシュメモリ203をキャッシュとして使用したデータ処理を行うに先立ち、ホスト定義セクタをベースとする第1のデータブロックの始端及び終端アドレス囲む、ハードディスク204側で定義されているロングセクタをベースとする第2のデータブロックの一部若しくは全体のデータを前記ハードディスクから読出しフラッシュメモリ203に書き込むようにした。
【選択図】図3
Description
この発明は、不揮発性キャッシュメモリを用いる記憶装置とその制御方法に関するものであり、低消費電力、高速書き込み読出しを実現し、さらには、記憶媒体の長寿命化を得られるように工夫したものである。
近年、半導体記憶媒体であるメモリカードと、磁気記憶媒体であるハードディスクを用いたハードディスク(HD)の両方を搭載できる記憶装置が開発されている(特許文献1参照)。ここでは、例えば外部より取得したメモリカードのデータを磁気記憶媒体であるハードディスク(HD)にバックアップすることができる。また、HDのデータをメモリカードに転送して、取り出すことができる。
また携帯用の記憶装置として、フラッシュメモリを用いたものが開発されている(特許文献2)。ここでは、フラッシュメモリは、消去回数(例えば10万回)が多くなると、エラーが多く発生するために、このような問題を解決しようとしている。例えば特定領域のみの消去回数が多くなるのを抑制するデータ管理方法を提供している。
特開2004−055102公報
特許3407317号公報
この発明に係る1つの実施形態では、記憶媒体としてのハードディスク及び半導体メモリの特徴を巧みに利用し、低消費電力、高速書き込み読出しを実現でき、データ処理効率を高めることができる環境を得る、不揮発性キャッシュメモリを用いる記憶装置及びその制御方法を提供することを目的としている。そして特にこの実施形態では、ホスト装置側で定義されているホスト定義セクタ長と、ハードディスク(磁気記録媒体)側で定義されているロングセクタ長とが異なる場合でも、データ処理効率を高めることができる不揮発性キャッシュメモリを用いる記憶装置及びその制御方法を提供することを目的としている。
上記の目的を達成するために、この発明に係る1つの実施の形態では、第1の長さをリードライト単位とするホスト装置からのコマンド及び第1のデータブロックが入出力されるホストインターフェースと、前記コマンドの内容を解析するコマンド解析部と、不揮発性キャッシュメモリのためのメモリインターフェースと、第2の長さをリードライト単位とするハードディスクに対して第2のデータブロックを入出力するディスクインターフェースと、前記コマンドに基づいて前記不揮発性キャッシュメモリを使用したデータ処理を行うに先立ち、前記第1のデータブロックの始端及び終端アドレス囲み、かつこの始端及び終端アドレスに最も近い始端及び終端アドレスを有した前記第2のデータブロックの一部若しくは全体のデータを前記ハードディスクから読出し前記不揮発性キャッシュメモリに書き込む、読出し及び書き込み処理部と、を備える。
上記手段により、低消費電力、高速書き込み読出しを実現できると共にホスト側で定義されているホスト定義セクタ長と、ハードディスク(磁気記録媒体)側で定義されているセクタ長とが異なる場合でも、データ処理効率を高めることができる。
以下、図面を参照しながら、この発明に係る幾つかの実施の形態を説明する。
<全体の構成及び機能>
まず図1において、実施形態の全体ブロックの例を説明する。100は、ホスト装置であり、例えば、パーソナルコンピュータに於けるコントロール部である。200は、不揮発性キャッシュメモリを用いる記憶装置である。この記憶装置200は、バッファとして機能するSDRAM201、後述するコントローラなどが搭載された例えば1チップのLSI(大規模集積化回路)202、フラッシュメモリ203、ハードディスク(HD)204を有する。
まず図1において、実施形態の全体ブロックの例を説明する。100は、ホスト装置であり、例えば、パーソナルコンピュータに於けるコントロール部である。200は、不揮発性キャッシュメモリを用いる記憶装置である。この記憶装置200は、バッファとして機能するSDRAM201、後述するコントローラなどが搭載された例えば1チップのLSI(大規模集積化回路)202、フラッシュメモリ203、ハードディスク(HD)204を有する。
LSI202は、コントローラ311、ホストインターフェース312、SDRAMインターフェース313、ディスクインターフェース314、フラッシュメモリインターフェース315を有する。なお、このLSI202に、上記のSDRAM201が内蔵されていてもよい。
ホスト装置100は、ホストインターフェース312を介して、コントローラ311にコマンドを与えることができる。またホスト装置100は、ホストインターフェース312を介して、コントローラ311からのデータを受け取ることもできるし、コントローラ311側へデータを転送することもできる。
コントローラ311からのコマンドは、データの書き込み命令、データの読出し命令、データのサイズ指定、データの転送、メモリ、情報の読み取り命令などがある。コントローラ311は、ホスト装置100からのコマンドを解釈し、データの書き込み処理、読出し処理、転送処理などを実行する。
コントローラ311は、SDRAMインターフェース313を介して、SDRAM201との間でデータのやり取りを行うことができる。またコントローラ311は、ディスクインターフェース314を介して、HD204との間でデータのやり取りを行うことができる。さらにコントローラ311は、フラッシュメモリインターフェース315を介して、フラッシュメモリ203との間でデータのやり取りを行うことができる。上記したフラッシュメモリ203に格納されるデータは、エラー訂正コードが付加されて格納される。またハードディスクに記録されるデータもエラー訂正コードが付加されて格納される。フラッシュメモリへの記録データ、ハードディスクへの記録データに対しては、再生時のエラー訂正が可能なようにECC処理が施される。
上記の装置は、フラッシュメモリインターフェース315、フラッシュメモリ203の部分は、キャッシュとして使用する。
データの書き込み順序、データの読出し順序は、コントローラ311に格納されているソフトウエアに応じて決まる。例えば、ホスト装置100からハードディスク204へ書き込みデータが送られるときは、ホストインターフェース202→コントローラ311→SDRAMインターフェース313→SDRAM201→SDRAMインターフェース313→コントローラ311→ディスクインターフェース314→ハードディスク204の系路でもよく、ホストインターフェース202→コントローラ311→フラッシュメモリインターフェース315→フラッシュメモリ203→フラッシュメモリインターフェース315→コントローラ311→ディスクインターフェース314→ハードディスク204の系路でもよい。また、ホストインターフェース202→コントローラ311→フラッシュメモリインターフェース315→フラッシュメモリ203→フラッシュメモリインターフェース315→コントローラ311→SDRAMインターフェース313→SDRAM201→SDRAMインターフェース313→コントローラ311→ディスクインターフェース314→ハードディスク204の系路でもよい。
また、ハードディスク204からホスト装置100側へデータが読み出されるときは、ディスクインターフェース314→コントローラ311→SDRAMインターフェース313→SDRAM201→SDRAMインターフェース313→コントローラ311→ホストインターフェース312→ホスト装置、でも良く、ディスクインターフェース314→コントローラ311→フラッシュメモリインターフェース315→フラッシュメモリ203→フラッシュメモリインターフェース315→コントローラ311→ホストインターフェース312→ホスト装置でもよい。さらには、ディスクインターフェース314→コントローラ311→フラッシュメモリインターフェース315→フラッシュメモリ203→フラッシュメモリインターフェース315→コントローラ311→SDRAMインターフェース313→SDRAM201→SDRAMインターフェース313→コントローラ311→ホストインターフェース312→ホスト装置でも良い。
さらには、各インターフェースを介してディスク→SDRAM→フラッシュメモリ→ホスト装置、ディスク→SDRAM→フラッシュメモリ→SDRAM→ホスト装置でもよい。
<フラッシュメモリに関する説明>
図2は、フラッシュメモリ203を取り扱う上で特有の制御が行われることを説明する図である。フラッシュメモリ203は、不揮発性メモリでありながら、データの電気的消去が可能である。したがって、データの書き換えが可能な不揮発性メモリである。
図2は、フラッシュメモリ203を取り扱う上で特有の制御が行われることを説明する図である。フラッシュメモリ203は、不揮発性メモリでありながら、データの電気的消去が可能である。したがって、データの書き換えが可能な不揮発性メモリである。
このフラッシュメモリ203は、例えば、消去単位は、128Kバイトで規定されている。一方、読み取り単位及び書き込み単位は、例えば2Kバイトに規定されている。またこのフラッシュメモリ203は、消去回数が多くなると素子が劣化し、エラー発生が多くなる。そこで、素子の性能を保証する情報として、書き換え回数を10万回程度に規定している。なお上記の消去単位のバイト数及び書き込み単位の数値はこれに限定されるものではない。消去単位23Kバイト、読み書き単位512単位であってもよい。
<フラッシュメモリとコントローラとホスト装置からのコマンドとの基本的な関係>
図2に示すように、フラッシュメモリ203にデータが書き込まれた場合、その書き込み領域を、Pinned(ピンド)領域203Aと、UnPinned(アンピンド)領域203Bという名称で分類することができる。Pinned領域203Aは、ホスト装置100が送ってきたデータ書き込み先のコマンドが、あえてフラッシュメモリ203を指定した場合に形成された領域である。コマンドは、フラッシュメモリ203とその論理ブロックアドレス(LBA)を含む。UnPinned(アンピンド)領域203Bは、ホスト装置100によるデータ書き込み先のコマンドが指定されていない場合で、かつ、コントローラ311が独自に判断して、データを転送し、格納した領域である。
図2に示すように、フラッシュメモリ203にデータが書き込まれた場合、その書き込み領域を、Pinned(ピンド)領域203Aと、UnPinned(アンピンド)領域203Bという名称で分類することができる。Pinned領域203Aは、ホスト装置100が送ってきたデータ書き込み先のコマンドが、あえてフラッシュメモリ203を指定した場合に形成された領域である。コマンドは、フラッシュメモリ203とその論理ブロックアドレス(LBA)を含む。UnPinned(アンピンド)領域203Bは、ホスト装置100によるデータ書き込み先のコマンドが指定されていない場合で、かつ、コントローラ311が独自に判断して、データを転送し、格納した領域である。
なおフラッシュメモリ203に書き込むデータとしては、ホスト装置100から送られてくるデータ、あるいは、ハードディスク204から読み出したデータがある。
コントローラ311がデータ書き込み先を決めるための判断要件は、各種ある。コントローラ311内部の状態判定部が周囲の要件を総合的に判断し、書き込み先を決定している。例えば、装置の電源が投入された直後であり、HD204のハードディスクが所定回転数に達していない場合、あるいは、HD204が停止状態にある場合などである。
<フラッシュメモリインターフェース315及びコントローラ311の機能と構成>
図3には、コントローラ311、フラッシュメモリインターフェース315の構成を機能別に分類して示している。フラッシュメモリインターフェース315には、累積カウンタが設けられており、カウント数は、例えばインターフェース内に設けられたレジスタに書き込まれ、後にフラッシュメモリ203に書き込まれる、あるいは直接フラッシュメモリ203が利用されてもよい。
図3には、コントローラ311、フラッシュメモリインターフェース315の構成を機能別に分類して示している。フラッシュメモリインターフェース315には、累積カウンタが設けられており、カウント数は、例えばインターフェース内に設けられたレジスタに書き込まれ、後にフラッシュメモリ203に書き込まれる、あるいは直接フラッシュメモリ203が利用されてもよい。
カウンタとしては、累積ライト回数カウンタ315a,累積消去回数カウンタ315b、累積ライトエラー回数カウンタ315c、リードエラー数カウンタ315dが用意されている。リードエラー数カウンタ315dの代わりに、ECC回路により検出されるエラー数カウンタ、あるいはエラー訂正数カウンタ315eが設けられてもよい。また、リードライト単位をカウントするカウンタが設けられていてもよい。これらのカウンタの内容は、エラーが多くなったときの警告、状態判定部の判定要素として利用される。
コントローラ311は、コマンド解析部411を有し、ホスト装置100から送られてきたコマンドをここでデコードし解析する。コマンドの解析結果により、アーキテクチャメモリ414内のソフトウエアが特定され、シーケンスコントローラ412に動作手順が設定される。また、これらのコマンド解析及び制御は、インターフェース312において行われてもよい。
シーケンスコントローラ412は、インターフェース及びバスコントローラ413などを介して、データ及びコントロールデータの流れを制御する。例えば、データ書き込みあるいは読出しが行われるときは、メディア選択部415がフラッシュメモリ203あるいはハードディスク(HD)を特定し、アドレス制御部416が書き込みアドレスあるいは読出しアドレスを特定する。そして、データ書き込み時には、書き込み処理部417が書き込みデータの転送処理などを行う。また、データ読出し時には、読出し処理部417が読出しデータの転送処理などを行う。
さらに消去処理部419が設けられている。消去処理部419は、フラッシュメモリ203のデータの消去処理を行う。またこの消去処理部419は、ハードディスクのデータの消去処理も行うことができる。
さらにアドレス管理部420が設けられている。アドレス管理部420は、ハードディスクのアドレス及びフラッシュメモリ203の記録済み領域、未記録領域などのアドレスを一括して管理している。フラッシュメモリ203は、キャッシュメモリとして利用されるので、ホスト装置側がアドレスを指定する場合は、キャッシュメモリのアドレスを意識する必要はなく、ハードディスク側のアドレスを設定すればよい。データの格納先として特別にキャッシュメモリを指定する場合に、Pinnedのコマンドを発行すればよい。Pinnedのコマンドがない場合には、データ格納先は、コントローラ311に構築されているファームウエアの判定結果に依存する。
またフラッシュメモリ203のPinned領域、Unpinned領域などのアドレス管理及び制御は、インターフェース315において行われてもよい。
さらに状態判定部421が設けられている。この状態判定部421は、ハードディスク204の状態を監視している。
なおフラッシュメモリ203の記憶容量がある閾値より大きくなった場合には、コントローラ311が状態を判定し、ハードディスクに転送して書き移す処理を行う。このときの動作は、主として読出し処理部418、書き込み処理部416、アドレス管理部420が組み合わせて制御される。
<実施例における特有の構成と機能と動作>
<前提>上記の記憶装置は、低消費電力が得られることがこのましい。このためにはできるだけハードディスク204の駆動回数を少なくするように動作を管理したほうがよい。このような指向で管理すると、フラッシュメモリ203に対するアクセス回数が増加する。フラッシュメモリ203に対する書き込み回数が増加するような管理を行うと、今度は、フラッシュメモリ203の寿命が短くなるという新たな問題が生じる。
<前提>上記の記憶装置は、低消費電力が得られることがこのましい。このためにはできるだけハードディスク204の駆動回数を少なくするように動作を管理したほうがよい。このような指向で管理すると、フラッシュメモリ203に対するアクセス回数が増加する。フラッシュメモリ203に対する書き込み回数が増加するような管理を行うと、今度は、フラッシュメモリ203の寿命が短くなるという新たな問題が生じる。
<解決手段>そこでこの実施の形態では、低消費電力を図りながらフラッシュメモリ203の短命化を抑制できるようにした動作管理を行うものである。
図4は、装置がデータ書き込み処理を行うときの動作を示すフローチャートの一例である。コマンド解析部411がホスト装置100から送られてきたコマンドを解析し、データ書き込みコマンドがあるかを判定する(ステップSA1)。データ書き込みコマンドがない場合には、他の処理(ステップSA3)を実行してステップSA1に戻る。
データ書き込みコマンドがあった場合、書き込みデータは、Pinnedであるかどうかの判定を行う(ステップSA2)。Pinnedであれば、書き込み処理部418は、フラッシュメモリにデータを書き込む。書き込みデータは、Pinnedでない場合には、HDDモータ(スピンドルモータ)が回転しているかどうかを状態判定部421が判定する(ステップSA5)。スピンドルモータが回転していない場合には、書き込み処理部418は、書き込みデータ(Unpinned領域となる)をフラッシュメモリに書き込む。HDDモータが回転している場合には、書き込み処理部418は、書き込みデータをハードディスクに書き込む。データをハードディスク(HD)に書き込む判断条件としては、フラッシュメモリが寿命近くになっているかどうかを判断して、寿命近くになっていた場合は、HDに書き込むようにしてもよい。
<有効な影響>
上記したような管理を行うことにより、ハードディスク204の新規な駆動回数ができるだけ少なくなる。これにより低消費電力化が得られる。また、フラッシュメモリ203に対するアクセス回数が抑制できる。これによりフラッシュメモリ203の長寿命化が得られる。
上記したような管理を行うことにより、ハードディスク204の新規な駆動回数ができるだけ少なくなる。これにより低消費電力化が得られる。また、フラッシュメモリ203に対するアクセス回数が抑制できる。これによりフラッシュメモリ203の長寿命化が得られる。
<この実施の形態が対応している特有の環境>
図5には大きさの異なるセクタを比較して示している。ホスト装置100で管理されるセクタ列(A)とハードディスク204で管理されるセクタ列(B)を比較している。ホスト装置100では、512バイトを1セクタとして管理している。これに対して、ハードディスク204では、ホスト装置における1セクタの定数倍、例えば8倍の長さを1セクタ(ロングセクタ)として取り扱う。ロングセクタを用いる理由は、ホスト装置のセクタに比べて、冗長分であるECC(エラー訂正コード)の容量が、全体として低減できるからである。ECCの容量を低減できることは、データ領域の利用効率が向上することにつながる。
図5には大きさの異なるセクタを比較して示している。ホスト装置100で管理されるセクタ列(A)とハードディスク204で管理されるセクタ列(B)を比較している。ホスト装置100では、512バイトを1セクタとして管理している。これに対して、ハードディスク204では、ホスト装置における1セクタの定数倍、例えば8倍の長さを1セクタ(ロングセクタ)として取り扱う。ロングセクタを用いる理由は、ホスト装置のセクタに比べて、冗長分であるECC(エラー訂正コード)の容量が、全体として低減できるからである。ECCの容量を低減できることは、データ領域の利用効率が向上することにつながる。
<読出し処理部>
図6を参照して説明する。今、ホスト装置100は、(1)Pinned領域へのデータの書き込み、又は(2)Pinned領域確保(この場合データなし)というコマンドが発行されたものとする。論理ブロックアドレス(LBA)としては101−104番地が指定されているものとする。
図6を参照して説明する。今、ホスト装置100は、(1)Pinned領域へのデータの書き込み、又は(2)Pinned領域確保(この場合データなし)というコマンドが発行されたものとする。論理ブロックアドレス(LBA)としては101−104番地が指定されているものとする。
すると、図6に斜線で示すようなPinned領域がフラッシュメモリに確保される。その後、Pinned領域のデータに対する処理が実行される。その後、例えばフラッシュメモリの領域が満杯になった場合、あるいはシステム上で保存指令があった場合、上記のアドレス101−104のデータは、ハードディスクに書き込まれなければならない。
このとき、ハードディスクのアクセス単位は、ロングセクタ単位であり、この場合は、100−107番地のデータブロックが書き込みデータとなる。そこで、この装置では、事前にアドレス100、アドレス105−107を含めたロングセクタのデータをハードディスクから読み取り、次にUnpinned領域を処理する。つまり、アドレス100、アドレス105−107のデータを、Pinned領域のデータにつなぎフラッシュメモリに格納する。
上記の説明でホスト装置が指定したアクセス単位のアドレス101−104は、ハードディスクのアクセス単位のアドレス100−107番地で管理されているものとした。この対応関係は、アドレス管理部420のテーブルが参照されることにより把握できる。ここでは、フラッシュメモリ203の101番地から104番地の領域は、Pinned領域、100番地、105番地から107番地は、Unpinned領域として管理する。この管理は、アドレス管理部420で管理しても良いし、フラッシュメモリインターフェース315に管理部を設けてもよい。
ここで、本来のPinned領域のデータに対する処理が終了すると、データをハードディスクに格納することが行われる。この場合、Pinned領域、Unpinned領域のどちらもすぐにハードディスクに格納する必要は無く、例えばフラッシュメモリの格納容量が閾値を超ええた場合、あるいはシステム上保存する必要が生じてそのコマンドが発行されたときに格納処理が実行される。
このような場合、本実施例では、事前にハードディスクのセクタ単位のデータをキャッシュしているために、ハードディスクのアクセス単位でデータを処理することが可能である。これにより、データ処理効率が向上する。つまり、Pinned領域のデータに対する処理が終了し、ハードディスクに格納しようとしたとき、わざわざ、ハードディスクの1セクタ(100−107番地)を一度読出し、処理終了データと結合し、次にハードディスクにデータ格納する必要はない。
図7(A)は、上記の動作例を示すフローチャートである。ホスト装置100からデータを上記した書き込みコマンドが到来したとする(ステップSC1)。書き込むべき論理ブロックアドレス(LBA)を把握(ステップSC2)する。LBAを含む、ディスクで定義されているロングセクタを読出し、フラッシュメモリ203にキャッシュする。
その後、キャッシュ上での任意のデータ処理が終了し(ステップSC4)、ここで書き込みコマンドに対する内部処理は終了する。
その後、なんらかの必要性(例えばフラッシュメモリの容量が設定値以上になった、あるいはシステム上で保存コマンドが発行されたとき)が生じると、ステップSC5に遷移する(図7(B))。ここではディスクのアクセス単位(ロングセクタ単位)で処理が実行される(ステップSC7)。
図8は、上記した動作をキャッシュ上のデータ処理イメージとして、時間経過とともに示している。ホスト装置100が、ホスト定義セクタ801−808の論理ブロックアドレスのデータを、フラッシュメモリ203に書き込みキャッシュするため、あるいはアドレスを確保するためのコマンドを発行しているものとする(図8の(A))。また、この論理アドレスが、ハードディスク上ではロングセクタ811、812に含まれるものとする。すると、このセクタ811、8112全体が読み出されてキャッシュされる(図8の(B))。キャッシュメモリ、つまりフラッシュメモリ203では、ホスト定義セクタ801−808のデータの処理(書き換え修正など)が実行される(図8の(C))。
キャッシュ上の処理が終了し、何らかの条件で、ハードディスクにこのデータを保存する必要が生じた場合には、図8の(E)に示すように、ロングセクタ811、812の単位でディスク上にデータが転送され、書き込まれる。
図9は、例えばホスト装置100からのデータがキャッシュメモリ(フラッシュメモリ203)にPinnedとして送られてきた場合を示している。
書き込み先の論理ブロックアドレスは、ホスト定義セクタ801−808をカバーしている(始端及び終端アドレスを示している)ものとする(図9の(A))。キャッシュ上のデータ処理対象(書き換え、修正など)は、上記ホスト定義セクタ801−808のデータとなる。
このデータは、処理が終了したら、ディスクに保存される可能性がある。しかし、このままでは、ホスト定義のセクタ単位は、ディスクに対するアクセス単位(ロングセクタ単位)と異なる。ホスト定義セクタ801−808の論理ブロックアドレスは、図9の(C)に示すようにロングセクタ811、812に含まれる。言い換えると、ホスト定義セクタ801−808による第1のデータブロックの始端及び終端アドレスLBA1、LBA2は、ロングセクタ811、812による第2のデータブロックの始端及び終端アドレスLBA11、LBA22により囲まれる。かつ、始端及び終端アドレスLBA11、LBA22は、第1のデータブロックの始端及び終端アドレスLBA1、LBA2にそれぞれ最も近いアドレスである。これは、アドレス管理部420のアドレス管理テーブルを参照することにより可能である。
そこで、この実施形態では、図9の(C)に示すようにロングセクタ811、812を、上記のホスト定義セクタ801−808のデータが、図9(B)のように処理されている間に、ディスクから読み取り、一時的にフラッシュメモリ203のバッファ領域、あるいはSDRAMに一時的に格納する。
この読み取りタイミングは、ディスクがアクセスされるときであって、上記ロングセクタ811,812に近い領域がアクセスされるときが好ましい。ディスクがアクセスされるときとは、例えば、データセーブが行われるタイミングがある。または、例えばウインドウ処理のために、別ファイルのデータ読出しが実行されるようなタイミングがある。
次に、図9の(D)に示すように、ホスト定義セクタ801−808のデータ処理が完了し、ホスト装置100から、このデータをハードディスクに格納せよとのコマンドが入力されたとする。すると、処理が完了しているホスト定義セクタ801−808のデータが、図9(E)に示すように、事前に読み出しておいた、セクタ811、812のデータを上書きし、ロングセクタ単位で、ハードディスクへ記録される。
あるいは、上記の処理方法ではなく、図9(C)のデータがハードディスクから読み出されたとき、第2のデータブロックから第1のデータブロックの領域を除いた部分のデータを、Unpinnedとして、キャッシュメモリ(フラッシュメモリ)に格納してもよい。このようにすると、先に説明した上書き処理をすることなく、第1のデータブロックの処理が完了したときは、図9(E)の状態がすでにキャッシュメモリに構築されているので、先に説明した上書き処理をすることなく、ハードディスクへのデータ保存を実行することができる。
上記したようにこの発明の実施形態では、第1の長さをリードライト単位とするホスト装置100からのコマンド及び第1のデータブロックが入出力されるホストインターフェース312と、コマンドの内容を解析するコマンド解析部411と、不揮発性キャッシュメモリのためのメモリインターフェース315と、第2の長さをリードライト単位とするハードディスク204に対して第2のデータブロックを入出力するディスクインターフェース314とを有する。そして、読出し処理部418及び書き込み処理部416は、コマンドに基づいて不揮発性キャッシュメモリを使用したデータ処理を行うに先立ち、前記第1のデータブロックの始端及び終端アドレス囲み、かつこの始端及び終端アドレスに最も近い始端及び終端アドレスを有した前記第2のデータブロックの一部若しくは全体のデータを前記ハードディスク204から読出し不揮発性キャッシュメモリに書き込む。第1の長さのリードライト単位は、前記ホスト装置で用いられるホスト定義セクタ単であり、第2の長さのリードライト単位は、ハードディスクで用いられるロングセクタ単位である。
上記のように異なる長さのリードライト単位(異なるセクタ長)のデータが処理されるために、不揮発性キャッシュメモリを使用したデータ処理では、図8に示したように、ハードディスク204から読み出した第2データブロックの一部領域がデータ処理されることになる。
読出し及び書き込み処理部418、417は、図8及び図9で説明したように、第2のデータブロックから第1のデータブロックを除いた部分のデータ、若しくは前記第2のデータブロックの全体のデータを前記ハードディスクから読出し前記不揮発性キャッシュメモリに書き込む処理を行う。
上記したようにこの実施形態によると、ホスト側で定義されているセクタ長と、ハードディスク(磁気記録媒体)側で定義されているセクタ長が異なる場合でも、データ処理効率を高めることができる不揮発性キャッシュメモリを用いる記憶装置及びその制御方法を提供する。
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
100…ホスト装置、200…記憶装置、201…SDRAM、202…LSI、203…フラッシュメモリ、204…ハードディスク、311…コントローラ、312…ホストインターフェース、313…SDRAMインターフェース、314…ディスクインターフェース、315…フラッシュメモリインターフェース。
Claims (10)
- 第1の長さをリードライト単位とするホスト装置からのコマンド及び第1のデータブロックが入出力されるホストインターフェースと、
前記コマンドの内容を解析するコマンド解析部と、
不揮発性キャッシュメモリのためのメモリインターフェースと、
第2の長さをリードライト単位とするハードディスクに対して第2のデータブロックを入出力するディスクインターフェースと、
前記コマンドに基づいて前記不揮発性キャッシュメモリを使用したデータ処理を行うに先立ち、前記第1のデータブロックの始端及び終端アドレス囲み、かつこの始端及び終端アドレスに最も近い始端及び終端アドレスを有した前記第2のデータブロックの一部若しくは全体のデータを前記ハードディスクから読出し前記不揮発性キャッシュメモリに書き込む、読出し及び書き込み処理部と、
を具備したことを特徴とする不揮発性キャッシュメモリを用いる記憶装置。 - 前記第1の長さのリードライト単位は、前記ホスト装置で用いられるホスト定義セクタ単位であり、第2の長さのリードライト単位は、前記ハードディスクで用いられるロングセクタ単位であることを特徴とする
請求項1記載の不揮発性キャッシュメモリを用いる記憶装置。 - 前記第1の長さのリードライト単位は、前記ホスト装置で用いられるホスト定義セクタ単位であり、第2の長さのリードライト単位は、前記ハードディスクで用いられるロングセクタ単位であり、ロングセクタはホスト定義セクタの定数倍であることを特徴とする
請求項1記載の不揮発性キャッシュメモリを用いる記憶装置。 - 前記不揮発性キャッシュメモリを使用したデータ処理では、前記ハードディスクから読み出した前記第2データブロックの一部領域がデータ処理されることを特徴とする請求項1記載の不揮発性キャッシュメモリを用いる記憶装置。
- 前記読出し及び書き込み処理部は、
前記第2のデータブロックから前記第1のデータブロックを除いた部分のデータ、若しくは前記第2のデータブロックの全体のデータを前記ハードディスクから読出し前記不揮発性キャッシュメモリに書き込む、
ことを特徴とする請求項1記載の不揮発性キャッシュメモリを用いる記憶装置。 - 第1の長さをリードライト単位とするホスト装置からのコマンド及び第1のデータブロックが入出力されるホストインターフェースと、前記コマンドの内容を解析するコマンド解析部と、不揮発性キャッシュメモリのためのメモリインターフェースと、第2の長さをリードライト単位とするハードディスクに対して第2のデータブロックを入出力するディスクインターフェースとを有し、前記不揮発性キャッシュメモリを使用したデータ処理を行う制御方法であって、
前記コマンドに基づいて前記データ処理を行うに先立ち、前記第1のデータブロックの始端及び終端アドレス囲み、かつこの始端及び終端アドレスに最も近い始端及び終端アドレスを有した前記第2のデータブロックの一部若しくは全体のデータを前記ハードディスクから読出し前記不揮発性キャッシュメモリに書き込む
ことを特徴とする記憶装置の制御方法。 - 前記ホスト装置で用いられるホスト定義セクタ単位を前記第1の長さのリードライト単位とし、前記ハードディスクで用いられるロングセクタ単位を前記第2の長さのリードライト単位としている
請求項6載の記憶装置の制御方法。 - 前記ホスト装置で用いられるホスト定義セクタ単位を前記第1の長さのリードライト単位とし、前記ハードディスクで用いられるロングセクタ単位を前記第2の長さのリードライト単位とし、ロングセクタはホスト定義セクタの定数倍である
請求項6載の記憶装置の制御方法。 - 前記データ処理では、前記ハードディスクから読み出した前記第2データブロックの一部領域をデータ処理する
請求項6載の記憶装置の制御方法。 - 前記ハードディスクから前記不揮発性キャッシュメモリにデータを書き込むときは、前記第2のデータブロックから前記第1のデータブロックを除いた部分のデータ、若しくは前記第2のデータブロックの全体のデータを前記ハードディスクから読出し前記不揮発性キャッシュメモリに書き込む、
請求項6載の記憶装置の制御方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006009042A JP2007193439A (ja) | 2006-01-17 | 2006-01-17 | 不揮発性キャッシュメモリを用いる記憶装置とその制御方法 |
US11/641,825 US7941601B2 (en) | 2006-01-17 | 2006-12-20 | Storage device using nonvolatile cache memory and control method thereof |
CNA2006101711167A CN101004663A (zh) | 2006-01-17 | 2006-12-22 | 使用非易失性高速缓冲存储器的存储设备及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006009042A JP2007193439A (ja) | 2006-01-17 | 2006-01-17 | 不揮発性キャッシュメモリを用いる記憶装置とその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007193439A true JP2007193439A (ja) | 2007-08-02 |
Family
ID=38264606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006009042A Pending JP2007193439A (ja) | 2006-01-17 | 2006-01-17 | 不揮発性キャッシュメモリを用いる記憶装置とその制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7941601B2 (ja) |
JP (1) | JP2007193439A (ja) |
CN (1) | CN101004663A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010020845A (ja) * | 2008-07-10 | 2010-01-28 | Canon Inc | 記録媒体初期化方法及び記録媒体初期化装置 |
JP2014186412A (ja) * | 2013-03-22 | 2014-10-02 | Fujitsu Ltd | 制御装置,ストレージ装置,及び制御プログラム |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010049502A (ja) * | 2008-08-21 | 2010-03-04 | Hitachi Ltd | ストレージサブシステム、及びこれを有するストレージシステム |
US8255661B2 (en) * | 2009-11-13 | 2012-08-28 | Western Digital Technologies, Inc. | Data storage system comprising a mapping bridge for aligning host block size with physical block size of a data storage device |
TW201124994A (en) * | 2010-01-14 | 2011-07-16 | Jmicron Technology Corp | Cache apparatus for increasing data accessing speed of storage device |
TWI522805B (zh) * | 2015-06-18 | 2016-02-21 | 群暉科技股份有限公司 | 用來於一儲存系統中進行快取管理之方法與裝置 |
CN107807797B (zh) * | 2017-11-17 | 2021-03-23 | 北京联想超融合科技有限公司 | 数据写入的方法、装置及服务器 |
JP7179794B2 (ja) * | 2020-03-03 | 2022-11-29 | 株式会社東芝 | 磁気ディスク装置、および磁気ディスク装置のメモリ管理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09146710A (ja) * | 1995-11-16 | 1997-06-06 | Sony Corp | 情報記録装置および情報再生装置 |
JPH10154101A (ja) * | 1996-11-26 | 1998-06-09 | Toshiba Corp | データ記憶システム及び同システムに適用するキャッシュ制御方法 |
JP2001175419A (ja) * | 1999-12-17 | 2001-06-29 | Fujitsu Ltd | 記憶装置のエミレーション処理方法及び記憶装置 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3407317B2 (ja) | 1991-11-28 | 2003-05-19 | 株式会社日立製作所 | フラッシュメモリを使用した記憶装置 |
US5848432A (en) * | 1993-08-05 | 1998-12-08 | Hitachi, Ltd. | Data processor with variable types of cache memories |
JPH10320128A (ja) | 1997-05-21 | 1998-12-04 | Oki Electric Ind Co Ltd | ディスクアレイ装置の制御方法 |
US6295577B1 (en) * | 1998-02-24 | 2001-09-25 | Seagate Technology Llc | Disc storage system having a non-volatile cache to store write data in the event of a power failure |
US6343343B1 (en) * | 1998-07-31 | 2002-01-29 | International Business Machines Corporation | Disk arrays using non-standard sector sizes |
JP2000305860A (ja) | 1999-04-23 | 2000-11-02 | Toshiba Corp | 情報記憶システム及び同システムに於ける記憶制御方法 |
US6513135B2 (en) * | 2000-08-02 | 2003-01-28 | Hitachi, Ltd. | Automatic read reassignment method and a magnetic disk drive |
WO2002017055A1 (fr) * | 2000-08-18 | 2002-02-28 | Fujitsu Limited | Dispositif de commande de disque, procede de commande de disque, dispositif de commande a distance de disque, et procede de commande a distance de disque |
US20030074524A1 (en) | 2001-10-16 | 2003-04-17 | Intel Corporation | Mass storage caching processes for power reduction |
JP2003167781A (ja) | 2001-11-30 | 2003-06-13 | Matsushita Electric Ind Co Ltd | 磁気ディスク装置およびデータ読み出し制御方法 |
US7234040B2 (en) * | 2002-01-24 | 2007-06-19 | University Of Washington | Program-directed cache prefetching for media processors |
US7035979B2 (en) * | 2002-05-22 | 2006-04-25 | International Business Machines Corporation | Method and apparatus for optimizing cache hit ratio in non L1 caches |
TWI289798B (en) | 2002-07-18 | 2007-11-11 | Carry Computer Eng Co Ltd | Large storage apparatus with interface adapting to storage cards |
US6904498B2 (en) * | 2002-10-08 | 2005-06-07 | Netcell Corp. | Raid controller disk write mask |
US6925526B2 (en) * | 2002-10-31 | 2005-08-02 | International Business Machines Corporation | Method and apparatus for servicing mixed block size data access operations in a disk drive data storage device |
US6983356B2 (en) * | 2002-12-19 | 2006-01-03 | Intel Corporation | High performance memory device-state aware chipset prefetcher |
US20050125600A1 (en) * | 2003-12-04 | 2005-06-09 | Ehrlich Richard M. | Method for storing HDD critical data in flash |
JP2005267240A (ja) * | 2004-03-18 | 2005-09-29 | Hitachi Global Storage Technologies Netherlands Bv | デフラグメントを行う方法及び記憶装置 |
-
2006
- 2006-01-17 JP JP2006009042A patent/JP2007193439A/ja active Pending
- 2006-12-20 US US11/641,825 patent/US7941601B2/en not_active Expired - Fee Related
- 2006-12-22 CN CNA2006101711167A patent/CN101004663A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09146710A (ja) * | 1995-11-16 | 1997-06-06 | Sony Corp | 情報記録装置および情報再生装置 |
JPH10154101A (ja) * | 1996-11-26 | 1998-06-09 | Toshiba Corp | データ記憶システム及び同システムに適用するキャッシュ制御方法 |
JP2001175419A (ja) * | 1999-12-17 | 2001-06-29 | Fujitsu Ltd | 記憶装置のエミレーション処理方法及び記憶装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010020845A (ja) * | 2008-07-10 | 2010-01-28 | Canon Inc | 記録媒体初期化方法及び記録媒体初期化装置 |
JP2014186412A (ja) * | 2013-03-22 | 2014-10-02 | Fujitsu Ltd | 制御装置,ストレージ装置,及び制御プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20070168608A1 (en) | 2007-07-19 |
CN101004663A (zh) | 2007-07-25 |
US7941601B2 (en) | 2011-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4768504B2 (ja) | 不揮発性フラッシュメモリを用いる記憶装置 | |
JP2007193440A (ja) | 不揮発性キャッシュメモリを用いる記憶装置とその制御方法 | |
JP4836647B2 (ja) | 不揮発性キャッシュメモリを用いる記憶装置とその制御方法 | |
US8578100B1 (en) | Disk drive flushing write data in response to computed flush time | |
JP2007193441A (ja) | 不揮発性キャッシュメモリを用いる記憶装置とその制御方法 | |
US9009433B2 (en) | Method and apparatus for relocating data | |
KR100801015B1 (ko) | 하이브리드 하드 디스크 드라이브와 데이터 저장 방법 | |
US20080025706A1 (en) | Information recording apparatus and control method thereof | |
US20090103203A1 (en) | Recording apparatus and control circuit | |
JP2007193439A (ja) | 不揮発性キャッシュメモリを用いる記憶装置とその制御方法 | |
US20080046660A1 (en) | Information recording apparatus and control method thereof | |
US7913029B2 (en) | Information recording apparatus and control method thereof | |
US20070168603A1 (en) | Information recording apparatus and control method thereof | |
US20070168605A1 (en) | Information storage device and its control method | |
US20070168602A1 (en) | Information storage device and its control method | |
KR101204163B1 (ko) | 반도체 기억 장치 | |
JP2008250718A (ja) | 不揮発性キャッシュメモリを用いた記憶装置とその制御方法 | |
US20090027796A1 (en) | Information recording device and control method therefor | |
JP2007193866A (ja) | 情報記録装置及びその制御方法 | |
JP2017068634A (ja) | 記憶装置及び方法 | |
JP2012521032A (ja) | Ssdコントローラおよびssdコントローラの動作方法 | |
US20070250661A1 (en) | Data recording apparatus and method of controlling the same | |
JP2005135544A (ja) | 半導体記録媒体及び半導体記録媒体のデータ消去方法 | |
JP2009199665A (ja) | データ記憶装置及びデータ記憶装置におけるデータ管理方法 | |
JP2015135620A (ja) | 記憶装置、及びデータの記憶方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080530 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101005 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101126 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110823 |