JP2009032305A - 情報記録装置及びその制御方法 - Google Patents
情報記録装置及びその制御方法 Download PDFInfo
- Publication number
- JP2009032305A JP2009032305A JP2007192280A JP2007192280A JP2009032305A JP 2009032305 A JP2009032305 A JP 2009032305A JP 2007192280 A JP2007192280 A JP 2007192280A JP 2007192280 A JP2007192280 A JP 2007192280A JP 2009032305 A JP2009032305 A JP 2009032305A
- Authority
- JP
- Japan
- Prior art keywords
- data
- disk
- recorded
- hard disk
- recording medium
- 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
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1883—Methods for assignment of alternate areas for defective areas
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
- G11B2220/25—Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
- G11B2220/2508—Magnetic discs
- G11B2220/2516—Hard disks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/60—Solid state media
- G11B2220/61—Solid state media wherein solid state memory is used for storing A/V content
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
【課題】この発明は、ディスク状記録媒体に不揮発性メモリをキャッシュとしてデータの記録を行なう際、不揮発性メモリに記録されたデータをディスク状記録媒体に書き出す処理の効率化を図り、データエラーの発生を極力防止してデータの信頼性を高く保持し得るようにした情報記録装置及びその制御方法を提供することを目的としている。
【解決手段】ディスク状記録媒体(13)と不揮発性メモリ(15)と外部との相互間でのデータ転送をそれぞれ制御する制御手段(16)により、不揮発性メモリ(15)に記録されているデータのうちディスク状記録媒体(13)に記録されていない非同期データをディスク状記録媒体(13)に書き出す際、不揮発性メモリ(15)の非同期データが記録されている各記録領域の状態に応じて、非同期データに対してディスク状記録媒体(13)に書き出す優先順位を設定する設定手段(16l)とを備える。
【選択図】 図1
【解決手段】ディスク状記録媒体(13)と不揮発性メモリ(15)と外部との相互間でのデータ転送をそれぞれ制御する制御手段(16)により、不揮発性メモリ(15)に記録されているデータのうちディスク状記録媒体(13)に記録されていない非同期データをディスク状記録媒体(13)に書き出す際、不揮発性メモリ(15)の非同期データが記録されている各記録領域の状態に応じて、非同期データに対してディスク状記録媒体(13)に書き出す優先順位を設定する設定手段(16l)とを備える。
【選択図】 図1
Description
この発明は、例えばハードディスク等のような大容量のディスク状記録媒体に対し、不揮発性の半導体メモリをキャッシャとして情報の書き込み及び読み出しを行なう情報記録装置及びその制御方法に関する。
周知のように、ハードディスクは、大容量で信頼性の高い情報記録媒体であり、近年、例えばコンピュータデータ、映像データ、音声データ等の記録用として多方面に普及している。また、ハードディスクは、その形状も携帯用電子機器に搭載されるほど小型化されてきている。
このため、ハードディスクを用いた小型化志向の情報記録装置においては、データの高速書き込み及び高速読み出しが可能な半導体メモリを、ハードディスクに対するキャッシュメモリとして使用することによって、データの書き込み及び読み出しに要する速度を高めるようにしている。
すなわち、この種の情報記録装置は、外部のホスト装置に対してのデータの書き込み及び読み出しを、キャッシュメモリを介して行なわせ、ハードディスクに対してはキャッシュメモリとの間でデータ転送を行なわせることにより、外部から見たデータの書き込み及び読み出し動作を高速化させるようにしている。
そして、現在では、上記キャッシュメモリに加えて、不揮発性メモリをハードディスクに対するキャッシュとして備えることにより、ハードディスクの駆動回数、つまり、ハードディスクに対するデータの書き込み及び読み出し回数を削減して、電池電力の節約を図ることも考えられている。このような情報記録装置は、NV(non volatile)−cache対応HDD(hard disk drive)と称されて、規格化されている。
ここで、不揮発性メモリをハードディスクに対するキャッシュとして備えた情報記録装置にあっては、例えば不揮発性メモリの記録領域が満杯に近づいた場合、不揮発性メモリに記録されているデータを自動的にハードディスクに書き出して、不揮発性メモリに空き領域を形成する処理が行なわれる。
また、この種の情報記録装置においては、不揮発性メモリに記録されているデータのうち、ハードディスク上で非同期なデータ、つまり、ハードディスクに記録されているデータと一致していないデータを、所定のタイミングで自動的にハードディスクに書き出す処理も行なわれるようになっている。
ところで、現在、不揮発性メモリとして多用されているフラッシュ(flash)メモリは、ハードディスクに比べてデータ保持の性能が低く、規定回数以上のデータ書き替えや長時間の放置等を行なうとビットエラーが発生し易くなる傾向がある。このため、不揮発性メモリに記録されたデータは、可能な限りハードディスクに書き出して、その安全性を確保することが重要である。
しかしながら、上記した不揮発性メモリからハードディスクへのデータの書き出し処理は、HDDの内部で自発的に行なわれるものであるため、例えばホスト装置からデータの書き込みや読み出しを要求するコマンドが供給される等の外部要因によって、しばしば中断されることがあり、処理が全て完了するまでに長い時間を要する場合がある。
そして、この場合、不揮発性メモリの中のビットエラーの発生し易い領域に記録されているデータが、いつまでもハードディスクに書き出されず不揮発性メモリ内に残留することになると、そのデータにビットエラーが発生してしまう可能性が高くなり、データの信頼性の低下を招くことになる。
特許文献1には、FlashEEPROMカードをハードディスク装置のキャッシュとして用いるディスクキャッシュ装置において、システムがアイドル状態にあるとき、FlashEEPROMカードからハードディスク装置に書き戻していないデータを検出し、そのデータの書き戻し処理を実行するようにした構成が開示されている。
特開平11−45210号公報
そこで、この発明は上記事情を考慮してなされたもので、ディスク状記録媒体に不揮発性メモリをキャッシュとしてデータの記録を行なう際、不揮発性メモリに記録されたデータをディスク状記録媒体に書き出す処理の効率化を図り、データエラーの発生を極力防止してデータの信頼性を高く保持し得るようにした情報記録装置及びその制御方法を提供することを目的とする。
この発明に係る情報記録装置は、ディスク状記録媒体と、ディスク状記録媒体に対するキャッシュとなる不揮発性メモリと、ディスク状記録媒体及び不揮発性メモリと外部との相互間でのデータ転送をそれぞれ制御するとともに、ディスク状記録媒体及び不揮発性メモリの相互間でのデータ転送を制御する制御手段と、制御手段により不揮発性メモリに記録されているデータのうちディスク状記録媒体に記録されていない非同期データをディスク状記録媒体に書き出す際、不揮発性メモリの非同期データが記録されている各記録領域の状態に応じて、非同期データに対してディスク状記録媒体に書き出す優先順位を設定する設定手段とを備えるようにしたものである。
また、この発明に係る情報記録装置の制御方法は、ディスク状記録媒体と、ディスク状記録媒体に対するキャッシュとなる不揮発性メモリとを備えた情報記録装置を制御する方法を対象としている。そして、ディスク状記録媒体及び不揮発性メモリと外部との相互間でのデータ転送をそれぞれ制御する工程と、ディスク状記録媒体及び不揮発性メモリの相互間でのデータ転送を制御する工程と、不揮発性メモリに記録されているデータのうちディスク状記録媒体に記録されていない非同期データをディスク状記録媒体に書き出す際、不揮発性メモリの非同期データが記録されている各記録領域の状態に応じて、非同期データに対してディスク状記録媒体に書き出す優先順位を設定する工程とを備えるようにしたものである。
上記した発明によれば、不揮発性メモリに記録されているデータのうちディスク状記録媒体に記録されていない非同期データをディスク状記録媒体に書き出す際、不揮発性メモリの非同期データが記録されている各記録領域の状態に応じて、非同期データに対してディスク状記録媒体に書き出す優先順位を設定するようにしたので、ディスク状記録媒体に不揮発性メモリをキャッシュとしてデータの記録を行なう際、不揮発性メモリに記録されたデータをディスク状記録媒体に書き出す処理の効率化を図り、データエラーの発生を極力防止してデータの信頼性を高く保持することができるようになる。
以下、この発明の実施の形態について図面を参照して詳細に説明する。図1は、この実施の形態で説明する情報記録装置11の概略を示している。ここで説明する情報記録装置11としては、Non Volatile Cache Command Proposal for ATA8等で規格化されたNV−cache対応HDD等の磁気ディスク装置を対象としている。
すなわち、この情報記録装置11は、各種の回路ブロックが内蔵された1チップのLSI(large scale integrated)回路12を備えている。そして、このLSI回路12に対して、大容量のディスク状記録媒体であるハードディスク13、SDRAM(synchronous dynamic random access memory)14、フラッシュメモリ15等が接続されている。
このうち、SDRAM14は、バッファとして機能し、ハードディスク13に対するキャッシュメモリとなっている。なお、SDRAMに限らず、例えばS(static)RAM等を使用することも可能である。また、フラッシュメモリ15は、ハードディスク13に対するキャッシュとして機能する不揮発性メモリ(NV−cache)である。
ここで、上記LSI回路12には、情報記録装置11が各種の処理動作を実行する場合に、その統括的な制御を行なうための制御部となるコントローラ16が内蔵されている。そして、このLSI回路12には、コントローラ16とハードディスク13とをデータ転送可能に接続するディスクI/F(interface)17が内蔵されている。
また、このLSI回路12には、コントローラ16とSDRAM14とをデータ転送可能に接続するSDRAM I/F18、コントローラ16とフラッシュメモリ15とをデータ転送可能に接続するフラッシュメモリI/F19、コントローラ16と外部のホスト装置20とをデータ転送可能に接続するホストI/F21等が内蔵されている。
上記ホスト装置20は、例えばPC(personal computer)等である。このホスト装置20は、例えば所定のアプリケーションソフトウエアを実行する際に、情報記録装置11を利用してデータの書き込み及び読み出しを実行するとともに、最終的に得られたデータの保存先としても情報記録装置11を利用することができる。
このように情報記録装置11に対してデータの書き込みや読み出しを行なう場合、ホスト装置20は、情報記録装置11に対してデータの書き込みを要求するコマンドや、データの読み出しを要求するコマンドを発生する。これらのコマンドは、ホストI/F21を介してコントローラ16に供給され解析される。
これにより、コントローラ16は、ハードディスク13、SDRAM14及びフラッシュメモリ15等に対して、ホスト装置20から供給されたデータの書き込みや、ホスト装置20に供給するデータの読み出しを行なうように制御を施すことができる。この場合、コントローラ16は、ハードディスク13、SDRAM14及びフラッシュメモリ15の相互間におけるデータ転送も可能としている。
具体的に言えば、ホスト装置20から供給されたデータをハードディスク13に書き込む場合、コントローラ16は、データの書き込み順序として、以下に示す5つの経路(W1)〜(W5)を選択することができる。
(W1) ホストI/F21→コントローラ16→ディスクI/F17→ハードディスク13。
(W2) ホストI/F21→コントローラ16→SDRAM I/F18→SDRAM14→SDRAM I/F18→コントローラ16→ディスクI/F17→ハードディスク13。
(W3) ホストI/F21→コントローラ16→フラッシュメモリI/F19→フラッシュメモリ15→フラッシュメモリI/F19→コントローラ16→ディスクI/F17→ハードディスク13。
(W4) ホストI/F21→コントローラ16→SDRAM I/F18→SDRAM14→SDRAM I/F18→コントローラ16→フラッシュメモリI/F19→フラッシュメモリ15→フラッシュメモリI/F19→コントローラ16→ディスクI/F17→ハードディスク13。
(W5) ホストI/F21→コントローラ16→フラッシュメモリI/F19→フラッシュメモリ15→フラッシュメモリI/F19→コントローラ16→SDRAM I/F18→SDRAM14→SDRAM I/F18→コントローラ16→ディスクI/F17→ハードディスク13。
また、ハードディスク13からホスト装置20にデータを読み出す場合、コントローラ16は、データの読み出し順序として、以下に示す5つの経路(R1)〜(R5)を選択することができる。
(R1) ディスクI/F17→コントローラ16→ホストI/F21→ホスト装置20。
(R2) ディスクI/F17→コントローラ16→SDRAM I/F18→SDRAM14→SDRAM I/F18→コントローラ16→ホストI/F21→ホスト装置20。
(R3) ディスクI/F17→コントローラ16→フラッシュメモリI/F19→フラッシュメモリ15→フラッシュメモリI/F19→コントローラ16→ホストI/F21→ホスト装置20。
(R4) ディスクI/F17→コントローラ16→SDRAM I/F18→SDRAM14→SDRAM I/F18→コントローラ16→フラッシュメモリI/F19→フラッシュメモリ15→フラッシュメモリI/F19→コントローラ16→ホストI/F21→ホスト装置20。
(R5) ディスクI/F17→コントローラ16→フラッシュメモリI/F19→フラッシュメモリ15→フラッシュメモリI/F19→コントローラ16→SDRAM I/F18→SDRAM14→SDRAM I/F18→コントローラ16→ホストI/F21→ホスト装置20。
上記したデータの書き込み順序及び読み出し順序は、例えば、ホスト装置20から供給された書き込み要求コマンドや読み出し要求コマンドにおける指示内容、データの格納場所、SDRAM14やフラッシュメモリ15の空き容量等に応じて、コントローラ16が判断して決定するものである。
なお、上記フラッシュメモリ15としては、一般的に、ナンドフラッシュメモリが広く採用される傾向にある。そして、このナンドフラッシュメモリが採用された場合、フラッシュメモリ15に対するデータの書き込み及び読み出し速度は、SDRAM14に対するデータの書き込み及び読み出し速度よりも遅くなることが多い。
ここで、上記した規格により設定されている、情報記録装置11の実行可能な各種のコマンドのうち、この実施の形態を説明する上で必要となるものについて説明する。第1のコマンドは、ハードディスク13上の論理ブロックアドレス(LBA:logical block address)のうち、データをフラッシュメモリ15に書き込むLBAを指定するものである。
また、第2のコマンドは、第1のコマンドと同様に、フラッシュメモリ15に書き込むLBAを指定するものであるが、それと同時に、ハードディスク13から当該LBAに記録されているデータを読み出し、その読み出したデータをフラッシュメモリ15に書き込むことを要求するものである。
上記した第1及び第2のコマンドは、上記の規格ではAdd LBA(s) to NV Cache Pinned SetのPI=0及びPI=1に対応しており、フラッシュメモリ15にデータを格納することをホスト装置20から指示されたLBAには、ピンド(pinned)と称される属性情報が付される。
第3のコマンドは、ハードディスク13上のLBAを指定してデータの書き込みを要求するものである。この第3のコマンドがホスト装置20から発生された場合、コントローラ16は、書き込み要求されたLBAにピンドの属性情報が対応付けられているか否かを調べる。そして、対応付けられていた場合には、フラッシュメモリ15の中の書き込み要求されたLBAに対応する領域に書き込みを実行する。
これに対し、書き込み要求されたLBAにピンドの属性情報が対応付けられていない場合、コントローラ16は、SDRAM14またはフラッシュメモリ15の中の指定されたLBAに対応する領域にデータを書き込むか、ハードディスク13の指定されたLBAにデータを書き込むかを、自己の判断で決定し実行する。
第4のコマンドは、ハードディスク13上のLBAを指定してデータの読み出しを要求するものである。この第4のコマンドがホスト装置20から発生された場合、コントローラ16は、指定されたLBAに対応する領域がフラッシュメモリ15上に既に割り当てられており、その領域にハードディスク13よりも新しいデータが保存されていると判断される場合、フラッシュメモリ15から該当データを読み出す必要がある。
これに対し、ハードディスク13とフラッシュメモリ15とに同じデータがある場合、コントローラ16は、フラッシュメモリ15の中の読み出し要求されたLBAに対応する領域から該当データを読み出しても良いし、ハードディスク13の指定されたLBAから該当データを読み出しても良いものである。
また、指定されたLBAに対応する領域がフラッシュメモリ15上に既に割り当てられているが、ハードディスク13の方に最新のデータが存在している場合、コントローラ16は、ハードディスク13の指定されたLBAから該当データを読み出す必要がある。そして、ハードディスク13からデータを読み出した場合には、そのデータをSDRAM14またはフラッシュメモリ15にキャッシュするか否かもコントローラ16が判断する。
上記した第3及び第4のコマンドのように、データの書き込みまたは読み出しが要求されたLBAの中の、ピンドの属性情報が対応付けられていないLBAのうち、フラッシュメモリ15上に領域が割り当てられて、その割り当てられたフラッシュメモリ15上の領域にデータが書き込まれたLBAには、アンピンド(unpinned)と称される属性情報が付される。
そして、ピンドの属性情報が付されたLBAはピンドLBAと称され、そのピンドLBAに対応するフラッシュメモリ15上の領域はピンド領域と称される。また、アンピンドの属性情報が付されたLBAはアンピンドLBAと称され、そのアンピンドLBAに対応するフラッシュメモリ15上の領域はアンピンド領域と称される。このため、フラッシュメモリ15上には、図2に示すように、ピンド領域15aとアンピンド領域15bとその他の領域15cとが形成されることになる。
ここにおいて、上記コントローラ16は、フラッシュメモリ15の記録領域が満杯に近づいた場合に、フラッシュメモリ15に記録されているデータをハードディスク13に書き出すことにより、フラッシュメモリ15内に所定量の空き領域を自動的に形成する処理を実行する。
この処理は、フラッシュメモリ15内の空き領域のサイズが予め設定された基準サイズよりも小さくなった場合、フラッシュメモリ15の中のアンピンドの属性情報が付されたLBAに対応する領域(アンピンド領域15b)の中から、所定量のデータをハードディスク13に書き出し、そのハードディスク13に書き出したデータをフラッシュメモリ15から消去することにより実現される。
この場合、フラッシュメモリ15の中の、アンピンドの属性情報が付されたLBAに対応する領域(アンピンド領域15b)の中で、どの領域の情報がハードディスク13に移動されるのか、すなわち、フラッシュメモリ15のどの領域に空き領域が形成されるのかは、コントローラ16の判断により決定される。
また、上記コントローラ16は、フラッシュメモリ15に記録されているデータのうちの、ハードディスク13上で非同期となっているデータ、つまり、ハードディスク13に記録されているデータと一致していないデータを、所定のタイミングで自動的にハードディスク13に書き出す処理も実行する。
ところで、フラッシュメモリ15は、ハードディスク13に比べてデータ保持の性能が低く、規定回数(例えば10万回)以上のデータ書き替えや長時間の放置等を行なうとビットエラーを生じ易くなることが知られている。
また、上記フラッシュメモリ15に書き込まれるデータには、エラー訂正コードが付加され、フラッシュメモリ15から読み出されるデータには、そのエラー訂正コードに基づいたエラー訂正処理が施される。さらに、ハードディスク13に記録されるデータにも、エラー訂正コードが付加され、ハードディスク13から読み出されるデータには、そのエラー訂正コードに基づいたエラー訂正処理が施される。そして、通常、ハードディスク13に記録されるデータに施されるエラー訂正処理の方が、フラッシュメモリ15に記録されるデータに施されるエラー訂正処理に比して、はるかにエラー訂正能力の高い方式が採用される。
すなわち、フラッシュメモリ15に記録されるデータよりも、ハードディスク13に記録されるデータの方が、格段に信頼性が高いものとなっている。このため、フラッシュメモリ15に記録されたデータは、可能な限りハードディスク13に書き出した方が、その安全性を確保する上で望ましいことになる。
しかしながら、上記したフラッシュメモリ15からハードディスク13へのデータの書き出し処理は、コントローラ16が、外部からの処理要求のないときに自発的に行なうものである。このため、例えばホスト装置からデータの書き込みや読み出しを要求するコマンドが供給される等の外部要因によって、しばしば中断されることがあり、処理が全て完了するまでに長い時間を要する場合がある。
このような場合、フラッシュメモリ15の中のビットエラーの発生し易い領域に記録されているデータが、いつまでもハードディスク13に書き出されずにフラッシュメモリ15内に残留することになると、そのデータにビットエラーが発生してしまう可能性が高くなり、データの信頼性を低下させてしまうことになる。
そこで、この実施の形態では、フラッシュメモリ15からハードディスク13へのデータの書き出し処理を行なう際、フラッシュメモリ15からハードディスク13に書き出されるデータについて、そのフラッシュメモリ15上における記録領域の状態を判別し、状態の悪い記録領域に記録されたデータから先にハードディスク13に書き出されるように優先順位をつけている。
この場合、フラッシュメモリ15上における記録領域の状態とは、例えば、データの種別、エラー訂正数[ECC(error checking and correction)訂正数]、消去/書き込み回数(書き替え回数)等を意味している。そして、エラー訂正回数や消去/書き込み回数の多い記録領域を状態の悪いものとし、状態の最も悪い記録領域に記録されたデータから順にハードディスク13に書き出されるように優先順位をつけている。
これにより、フラッシュメモリ15の状態の悪い記録領域に記録されたデータから優先的にハードディスク13に書き出されるようになるので、フラッシュメモリ15の中のビットエラーの発生し易い領域に記録されているデータが、いつまでもハードディスク13に書き出されずにフラッシュメモリ15内に残留することが防止され、フラッシュメモリ15に記録されたデータをハードディスク13に書き出す処理の効率化を図り、データエラーの発生を極力防止してデータの信頼性を高く保持することができるようになる。
図3は、上記コントローラ16の一例を示している。このコントローラ16は、ホスト装置20から供給されたコマンドをデコード処理し解析するコマンド解析部16aを有する。このコマンド解析部16aの解析結果により、アーキテクチャメモリ16b内のソフトウエアが特定され、シーケンスコントローラ16cに動作手順が設定される。
このシーケンスコントローラ16cは、I/F及びバスコントローラ16dを介して、情報の流れを制御する。例えば、情報の書き込みまたは読み出しが行なわれるときは、メディア選択部16eがハードディスク13、SDRAM14またはフラッシュメモリ15を特定するとともに、アドレス制御部16fが書き込みアドレスまたは読み出しアドレスを特定する。
そして、情報の書き込み時には、書き込み処理部16gが書き込み情報の転送処理等を実行する。また、情報の読み出し時には、読み出し処理部16hが読み出し情報の転送処理等を実行する。
さらに、コントローラ16には、消去処理部16iが設けられている。この消去処理部16iは、SDRAM14やフラッシュメモリ15に記録された情報の消去処理を実行する。なお、この消去処理部16iは、ハードディスク13に記録された情報の消去処理も実行することができる。
また、コントローラ16には、アドレス管理部16jが設けられている。このアドレス管理部16jは、SDRAM14、フラッシュメモリ15及びハードディスク13の記録済み領域や未記録領域等のアドレスを一括して管理している。
さらに、コントローラ16には、状態判定部16kが設けられている。この状態判定部16kは、ハードディスク13の回転状態や、ハードディスク13、SDRAM14及びフラッシュメモリ15の残り容量の状態等を監視している。
また、コントローラ16には、優先順位管理部16lが設けられている。この優先順位管理部16lは、フラッシュメモリ15からハードディスク13へのデータの書き出し処理を行なう際に、フラッシュメモリ15上における状態の悪い記録領域に記録されたデータから優先的にハードディスク13に書き出されるようにする処理を、統括的に管理するものである。
ここで、図4は、フラッシュメモリ15に記録されたデータの中から、ハードディスク13上で非同期(async)となっているデータ、つまり、ハードディスク13に記録されているデータと一致していないデータに対して、優先順位を設定してハードディスク13に書き出す処理の一例を示している。
すなわち、フラッシュメモリ15には、LBA1,LBA2,LBA3に対応する各記録領域に、ハードディスク13と非同期(async)なデータがそれぞれ記録されている。また、上記SDRAM14またはフラッシュメモリ15には、フラッシュメモリ15に記録されているデータを管理するための管理テーブル22が格納されている。
この管理テーブル22には、フラッシュメモリ15上に設定された各LBAに対応する記録領域毎に、現在ピンドの属性情報が付加されているかアンピンドの属性情報が付加されているかを示す項目、その領域に記録されているデータがハードディスク13と非同期(async)であるか否かを示す項目、その領域からのデータ読み出し時にECC訂正が発生した数を示す項目等が含まれている。
そして、上記コントローラ16の優先順位管理部16lは、フラッシュメモリ15からハードディスク13へのデータの書き出し処理を行なう場合、まず、管理テーブル22を参照して、ハードディスク13と非同期(async)のデータを検出する。ここでは、フラッシュメモリ15のLBA1〜LBA3に対応する各記録領域に記録された3つのデータが、非同期(async)データとしてリストアップされる。
その後、上記優先順位管理部16lは、リストアップされた3つのデータの各記録領域について、管理テーブル22を参照して、データ読み出し時にECC訂正が発生した数を判別する。この場合、LBA1に対応する領域は、データ読み出し時のECC訂正数が0ビットであり、LBA2に対応する領域は、データ読み出し時のECC訂正数が3ビットであり、LBA3に対応する領域は、データ読み出し時のECC訂正数が1ビットとなっている。
このため、優先順位管理部16lは、データ読み出し時のECC訂正数が最も多いLBA2に対応する領域のデータを、状態の最も悪い記録領域に記録されたデータとして、最も優先度を高く設定し、以下、LBA3に対応する領域のデータ、LBA1に対応する領域のデータの順で優先順位を設定する。そして、優先順位管理部16lは、設定した優先順位に基づいて、LBA2に対応する領域のデータ、LBA3に対応する領域のデータ、LBA1に対応する領域のデータの順でハードディスク13に書き出しを実行する。
図5は、上記優先順位管理部16lが行なうフラッシュメモリ15からハードディスク13へのデータの書き出し処理動作の一例をまとめたフローチャートを示している。すなわち、処理が開始(ステップS5a)されると、優先順位管理部16lは、ステップS5bで、管理テーブル22を参照して、フラッシュメモリ15に記録されているデータの中からハードディスク13と非同期(async)のデータを検出する。
その後、優先順位管理部16lは、ステップS5cで、先にフラッシュメモリ15から検出した各非同期データの記録領域それぞれについて、管理テーブル22を参照して、データ読み出し時のECC訂正数を検出する。そして、優先順位管理部16lは、ステップS5dで、先に検出したECC訂正数に基づいて、フラッシュメモリ15から検出した各非同期データに優先順位を設定する。さらに、優先順位管理部16lは、ステップS5eで、先に設定した優先順位に基づいて、フラッシュメモリ15の非同期データをハードディスク13に書き出し、ステップS5fで、管理テーブル22の内容を更新して、処理を終了(ステップS5g)する。
なお、図4に示した処理動作では、フラッシュメモリ15から検出した各非同期データに対して、そのECC訂正数に基づいて優先順位を設定するようにしたが、これに限ることなく、例えば、ECC訂正の有無によってのみ優先順位を設定するようにすることも考えられる。
この場合、図4において、LBA2及びLBA3に対応する各領域のデータは同じ優先順位となり、ハードディスク13への書き出し処理の可能な方から順次書き出される。このように、ECC訂正の有無によってのみ優先順位を設定するようにすれば、ECC訂正能力が1ビットの場合にも適用可能となる。
また、フラッシュメモリ15の中で、所定の記録領域内に含まれる各非同期データに対してはECC訂正数に基づいて優先順位の設定を行ない、他の記録領域に含まれる各非同期データに対してはECC訂正の有無によって優先順位の設定を行なうというように、記録領域に応じて設定を変えることも可能である。
次に、図6は、フラッシュメモリ15に記録されたデータの中から、ハードディスク13上で非同期(async)となっているデータ、つまり、ハードディスク13に記録されているデータと一致していないデータに対して、優先順位を設定してハードディスク13に書き出す処理の他の例を示している。
すなわち、フラッシュメモリ15には、LBA1,LBA2,LBA3,LBA4に対応する各記録領域に、ハードディスク13と非同期(async)なデータがそれぞれ記録されている。また、上記SDRAM14またはフラッシュメモリ15には、フラッシュメモリ15に記録されているデータを管理するための管理テーブル22が格納されている。
この管理テーブル22には、フラッシュメモリ15上に設定された各LBAに対応する記録領域毎に、現在ピンドの属性情報が付加されているかアンピンドの属性情報が付加されているかを示す項目、その領域に記録されているデータがハードディスク13と非同期(async)であるか否かを示す項目、その領域からのデータ読み出し時にECC訂正が発生した数を示す項目等が含まれている。
また、上記SDRAM14またはフラッシュメモリ15には、フラッシュメモリ15に記録されているデータの書き替え回数を示す書き替え回数管理テーブル23が格納されている。この書き替え回数管理テーブル23には、フラッシュメモリ15上に設定された各LBAに対応する記録領域(物理ブロックアドレス)毎に、消去/書き込みを行なった回数がカウントされ記録されている。
そして、上記コントローラ16の優先順位管理部16lは、フラッシュメモリ15からハードディスク13へのデータの書き出し処理を行なう場合、まず、管理テーブル22を参照して、ハードディスク13と非同期(async)のデータを検出する。ここでは、フラッシュメモリ15のLBA1〜LBA4に対応する各記録領域に記録された4つのデータが、非同期(async)データとしてリストアップされる。
その後、上記優先順位管理部16lは、リストアップされた4つのデータの各記録領域について、管理テーブル22を参照して、データ読み出し時にECC訂正が発生した数を判別する。この場合、LBA1に対応する領域は、データ読み出し時のECC訂正数が0ビットであり、LBA2に対応する領域は、データ読み出し時のECC訂正数が3ビットであり、LBA3に対応する領域は、データ読み出し時のECC訂正数が1ビットであり、LBA4に対応する領域は、データ読み出し時のECC訂正数が3ビットとなっている。
つまり、LBA2及びLBA4に対応する各領域が、データ読み出し時のECC訂正数が最も多い3ビットとなっている。このとき、優先順位管理部16lは、LBA2及びLBA4に対応する各領域について、書き替え回数管理テーブル23を参照して、そのデータ書き替え回数を判別する。この場合、LBA2に対応する領域は、データ書き替え回数が6万回であり、LBA4に対応する領域は、データ書き替え回数が7万5千回となっている。
このため、優先順位管理部16lは、データ読み出し時のECC訂正数が最も多く、かつ、データ書き替え回数も最も多いLBA4に対応する領域のデータを、状態の最も悪い記録領域に記録されたデータとして、最も優先度を高く設定し、以下、LBA2に対応する領域のデータ、LBA3に対応する領域のデータ、LBA1に対応する領域のデータの順で優先順位を設定する。そして、優先順位管理部16lは、設定した優先順位に基づいて、LBA4に対応する領域のデータ、LBA2に対応する領域のデータ、LBA3に対応する領域のデータ、LBA1に対応する領域のデータの順でハードディスク13に書き出しを実行する。
図7は、上記優先順位管理部16lが行なうフラッシュメモリ15からハードディスク13へのデータの書き出し処理動作の他の例をまとめたフローチャートを示している。すなわち、処理が開始(ステップS7a)されると、優先順位管理部16lは、ステップS7bで、管理テーブル22を参照して、フラッシュメモリ15に記録されているデータの中からハードディスク13と非同期(async)のデータを検出する。
その後、優先順位管理部16lは、ステップS7cで、先にフラッシュメモリ15から検出した各非同期データの記録領域それぞれについて、管理テーブル22を参照して、データ読み出し時のECC訂正数を検出する。また、優先順位管理部16lは、ステップS7dで、先にフラッシュメモリ15から検出した各非同期データの記録領域それぞれについて、書き替え回数管理テーブル23を参照して、データ書き替え回数を検出する。
そして、優先順位管理部16lは、ステップS7eで、先に検出したECC訂正数及びデータ書き替え回数に基づいて、フラッシュメモリ15から検出した各非同期データに優先順位を設定する。さらに、優先順位管理部16lは、ステップS7fで、先に設定した優先順位に基づいて、フラッシュメモリ15の非同期データをハードディスク13に書き出し、ステップS7gで、管理テーブル22の内容を更新して、処理を終了(ステップS7h)する。
なお、図6に示した処理動作では、先にECC訂正数を検出し、ECC訂正数の同じ記録領域について、データ書き替え回数の多い領域を高い優先順位に設定するようにしているが、これに限らず、例えば、先にデータ書き替え回数を検出し、データ書き替え回数の同じ記録領域について、ECC訂正数の多い領域を高い優先順位に設定するようにしてもよいことはもちろんである。
次に、図8は、フラッシュメモリ15に記録されたデータの中から、ハードディスク13上で非同期(async)となっているデータに対して、優先順位を設定してハードディスク13に書き出す処理のさらに他の例をまとめたフローチャートを示している。
図4及び図6に示した例では、フラッシュメモリ15から全ての非同期データをリストアップして優先順位をつけるようにしているが、フラッシュメモリ15へのデータ登録数が多くなり非同期データが増えた場合には、処理が煩雑になる。この例では、ECC訂正数及びデータ書き替え回数に閾値を設け、閾値を超えた領域の非同期データから順次ハードディスク13に書き出すようにしている。
すなわち、処理が開始(ステップS8a)されると、優先順位管理部16lは、ステップS8bで、管理テーブル22を参照して、フラッシュメモリ15に記録されているデータの中から、ハードディスク13と非同期(async)となっている1つのデータを検出する。
その後、優先順位管理部16lは、ステップS8cで、その検出された非同期データの記録領域のECC訂正数が予めECC用に設定された閾値を超えるか否か、つまり、ECC訂正数>閾値(ECC用)であるか否かを判別する。そして、超えないと判断された場合(NO)、優先順位管理部16lは、ステップS8bの処理に戻され、フラッシュメモリ15に記録されているデータの中から、ハードディスク13と非同期(async)となっている他のデータの検出を実行する。
また、上記ステップS8cでECC訂正数が閾値(ECC用)を超えると判断された場合(YES)、優先順位管理部16lは、ステップS8dで、その検出された非同期データの記録領域の書き替え回数が予め書き替え回数用に設定された閾値を超えるか否か、つまり、書き替え回数>閾値(書き替え回数用)であるか否かを判別する。そして、超えないと判断された場合(NO)、優先順位管理部16lは、ステップS8bの処理に戻され、フラッシュメモリ15に記録されているデータの中から、ハードディスク13と非同期(async)となっている他のデータの検出を実行する。
一方、上記ステップS8dで書き替え回数が閾値(書き替え回数用)を超えると判断された場合(YES)、優先順位管理部16lは、ステップS8eで、その検出された非同期データをハードディスク13に書き出す優先対象と判断して、ステップS8fで、その非同期データをハードディスク13に書き出す処理を実行し、ステップS8gで、管理テーブル22の内容を更新する。
その後、優先順位管理部16lは、ステップS8hで、フラッシュメモリ15に記録されている全ての非同期データについて、上記したチェックが完了したか否かを判別し、完了していると判断された場合(YES)、処理を終了(ステップS8i)する。また、上記ステップS8hで完了していないと判断された場合(NO)、優先順位管理部16lは、ステップS8bの処理に戻され、フラッシュメモリ15に記録されているデータの中から、ハードディスク13と非同期(async)となっている他のデータの検出を実行する。
図8に示した例によれば、フラッシュメモリ15から1つの非同期データを検出し、その検出された非同期データの記録領域のECC訂正数及び書き替え回数が、共に予め設定された閾値を超えているとき、その非同期データを優先的にハードディスク13に書き出す処理を繰り返すようにしたので、フラッシュメモリ15へのデータ登録数が多くなり非同期データが増えた場合にも、容易に対応することができる。
また、図8に示した例において、ECC訂正数及び書き替え回数が閾値を超えている記録領域の非同期データをハードディスク13に書き出す処理が全て終了した後に、ECC訂正数及び書き替え回数が閾値を超えていない記録領域の非同期データをハードディスク13に書き出す処理を行なうようにすることができる。この場合、ECC訂正数及び書き替え回数が閾値を超えていない記録領域については、図4及び図6で説明した優先順位をつける処理を適用することができる。
さらに、図8に示した例では、非同期データの記録領域のECC訂正数及び書き替え回数が共に閾値を超えているとき、その非同期データを優先的にハードディスク13に書き出すようにしたが、これに限らず、例えば、非同期データの記録領域のECC訂正数及び書き替え回数のいずれか一方が閾値を超えたとき、その非同期データを優先的にハードディスク13に書き出すようにしてもよいものである。
次に、図9は、フラッシュメモリ15に記録されたデータの中から、ハードディスク13上で非同期(async)となっているデータに対して、優先順位を設定してハードディスク13に書き出す処理のさらに他の例をまとめたフローチャートを示している。
すなわち、処理が開始(ステップS9a)されると、優先順位管理部16lは、ステップS9bで、管理テーブル22を参照して、フラッシュメモリ15に記録されているデータの中から、ハードディスク13と非同期(async)となっている1つのデータを検出する。
その後、優先順位管理部16lは、ステップS9cで、その検出された非同期データの記録領域のECC訂正数が予めECC用に設定された閾値Aを超えるか否か、つまり、ECC訂正数>閾値A(ECC用)であるか否かを判別する。そして、超えないと判断された場合(NO)、優先順位管理部16lは、ステップS9dで、その検出された非同期データの記録領域のECC訂正数が、予めECC用に設定された上記閾値Aよりも小さい閾値Bを超えるか否か、つまり、ECC訂正数>閾値B(ECC用)であるか否かを判別する。
ここで、超えないと判断された場合(NO)、優先順位管理部16lは、ステップS9bの処理に戻され、フラッシュメモリ15に記録されているデータの中から、ハードディスク13と非同期(async)となっている他のデータの検出を実行する。
また、上記ステップS9dでECC訂正数が閾値B(ECC用)を超えると判断された場合(YES)、優先順位管理部16lは、ステップS9eで、その検出された非同期データの記録領域の書き替え回数が予め書き替え回数用に設定された閾値を超えるか否か、つまり、書き替え回数>閾値(書き替え回数用)であるか否かを判別する。そして、超えないと判断された場合(NO)、優先順位管理部16lは、ステップS9bの処理に戻され、フラッシュメモリ15に記録されているデータの中から、ハードディスク13と非同期(async)となっている他のデータの検出を実行する。
一方、上記ステップS9eで書き替え回数が閾値(書き替え回数用)を超えると判断された場合(YES)、または、上記ステップS9cでECC訂正数が閾値Aを超えたと判断された場合(YES)、優先順位管理部16lは、ステップS9fで、その検出された非同期データをハードディスク13に書き出す優先対象と判断して、ステップS9gで、その非同期データをハードディスク13に書き出す処理を実行し、ステップS9hで、管理テーブル22の内容を更新する。
その後、優先順位管理部16lは、ステップS9iで、管理テーブル22を最後までチェックしたか否かを判別し、チェックしていないと判断された場合(NO)、ステップS9bの処理に戻され、フラッシュメモリ15に記録されているデータの中から、ハードディスク13と非同期(async)となっている他のデータの検出を実行する。
また、上記ステップS9iで管理テーブル22を最後までチェックしたと判断された場合(YES)、優先順位管理部16lは、ステップS9jで、フラッシュメモリ15内に優先対象外と判断された非同期データが存在するか否かを判別し、存在しないと判断された場合(NO)、処理を終了(ステップS9l)する。
また、上記ステップS9jで存在していると判断された場合(YES)、優先順位管理部16lは、ステップS9kで、閾値A(ECC用),閾値B(ECC用)及び閾値(書き替え用)を変更した後、ステップS9bの処理に戻され、フラッシュメモリ15に記録されているデータの中から、ハードディスク13と非同期(async)となっているデータの再検出を実行する。
図9に示した例によれば、ECC訂正数を比較するための閾値A,Bを2種類設定し、ECC訂正数が大きい方の閾値Aを超える記録領域の非同期データについては、書き替え回数の判別を行なうことなく無条件にハードディスク13に書き出す優先対象と判断するようにしているため、処理の迅速化を図ることができる。
例えば、ECC訂正能力が5ビットである場合、閾値Aを4ビット、閾値Bを2ビットと設定すれば、ECC訂正数が4ビットを超える記録領域の非同期データは、書き替え回数の判別を行なうことなく無条件にハードディスク13に書き出す優先対象と判断されるため、判定処理の迅速化を図ることができる。
また、管理テーブル22に対して非同期データを検出する処理が一巡されたとき、フラッシュメモリ15内に優先対象外と判断された非同期データが存在する場合、閾値A(ECC用),閾値B(ECC用)及び閾値(書き替え用)を変更して、フラッシュメモリ15から非同期データの再検出を行なうようにしたので、非同期データに対してより細かく優先順位をつけることができるようになる。
次に、図10は、フラッシュメモリ15に記録されたデータの中から、ハードディスク13上で非同期(async)となっているデータに対して、優先順位を設定してハードディスク13に書き出す処理のさらに他の例をまとめたフローチャートを示している。
すなわち、処理が開始(ステップS10a)されると、優先順位管理部16lは、ステップS10bで、管理テーブル22を参照して、フラッシュメモリ15に記録されているデータの中から、ハードディスク13と非同期(async)となっている1つのデータを検出する。
その後、優先順位管理部16lは、ステップS10cで、その検出された非同期データの記録領域のECC訂正数が予めECC用に設定された閾値Aを超えるか否か、つまり、ECC訂正数>閾値A(ECC用)であるか否かを判別する。そして、超えないと判断された場合(NO)、優先順位管理部16lは、ステップS10dで、その検出された非同期データの記録領域のECC訂正数が、予めECC用に設定された上記閾値Aよりも小さい閾値Bを超えるか否か、つまり、ECC訂正数>閾値B(ECC用)であるか否かを判別する。
ここで、超えないと判断された場合(NO)、優先順位管理部16lは、ステップS10bの処理に戻され、フラッシュメモリ15に記録されているデータの中から、ハードディスク13と非同期(async)となっている他のデータの検出を実行する。
また、上記ステップS10dでECC訂正数が閾値B(ECC用)を超えると判断された場合(YES)、優先順位管理部16lは、ステップS10eで、その検出された非同期データの記録領域の書き替え回数が予め書き替え回数用に設定された閾値を超えるか否か、つまり、書き替え回数>閾値(書き替え回数用)であるか否かを判別する。そして、超えないと判断された場合(NO)、優先順位管理部16lは、ステップS10bの処理に戻され、フラッシュメモリ15に記録されているデータの中から、ハードディスク13と非同期(async)となっている他のデータの検出を実行する。
一方、上記ステップS10eで書き替え回数が閾値(書き替え回数用)を超えると判断された場合(YES)、または、上記ステップS10cでECC訂正数が閾値Aを超えたと判断された場合(YES)、優先順位管理部16lは、ステップS10fで、その検出された非同期データをハードディスク13に書き出す優先対象と判断して、ステップS10gで、その非同期データをハードディスク13に書き出す処理を実行し、ステップS10hで、管理テーブル22の内容を更新する。
そして、優先順位管理部16lは、ステップS10iで、フラッシュメモリ15からハードディスク13に書き出されたデータについて、フラッシュメモリ15内に保持しておく必要があると判断される場合、そのデータをフラッシュメモリ15内の他の記録領域に移し替えて保護を図る。この場合、データの移動先となる記録領域としては、移動前の記録領域に比して、ECC訂正数やデータ書き替え回数の少ない領域が選択される。
その後、優先順位管理部16lは、ステップS10jで、管理テーブル22を最後までチェックしたか否かを判別し、チェックしていないと判断された場合(NO)、ステップS10bの処理に戻され、フラッシュメモリ15に記録されているデータの中から、ハードディスク13と非同期(async)となっている他のデータの検出を実行する。
また、上記ステップS10jで管理テーブル22を最後までチェックしたと判断された場合(YES)、優先順位管理部16lは、ステップS10kで、フラッシュメモリ15内に優先対象外と判断された非同期データが存在するか否かを判別し、存在しないと判断された場合(NO)、処理を終了(ステップS10m)する。
また、上記ステップS10kで存在していると判断された場合(YES)、優先順位管理部16lは、ステップS10lで、閾値A(ECC用),閾値B(ECC用)及び閾値(書き替え用)を変更した後、ステップS10bの処理に戻され、フラッシュメモリ15に記録されているデータの中から、ハードディスク13と非同期(async)となっているデータの再検出を実行する。
図10に示した例によれば、フラッシュメモリ15から非同期データをハードディスク13に書き出した後、そのデータをフラッシュメモリ15に保持する必要がある場合、そのデータをフラッシュメモリ15内の他の記録領域に移し替えるようにしたので、フラッシュメモリ内15で状態が悪いと判断された記録領域にデータが残留されることが防止され、データの保護を図ることができる。
次に、図11は、フラッシュメモリ15に記録されたデータの中から、ハードディスク13上で非同期(async)となっているデータに対して、優先順位を設定してハードディスク13に書き出す処理のさらに他の例をまとめたフローチャートを示している。
すなわち、処理が開始(ステップS11a)されると、優先順位管理部16lは、ステップS11bで、管理テーブル22を参照して、フラッシュメモリ15に記録されているデータの中から、ハードディスク13と非同期(async)となっている1つのデータを検出する。
その後、優先順位管理部16lは、ステップS11cで、その検出された非同期データの記録領域のECC訂正数が予めECC用に設定された閾値Aを超えるか否か、つまり、ECC訂正数>閾値A(ECC用)であるか否かを判別する。そして、超えないと判断された場合(NO)、優先順位管理部16lは、ステップS11dで、その検出された非同期データの記録領域のECC訂正数が、予めECC用に設定された上記閾値Aよりも小さい閾値Bを超えるか否か、つまり、ECC訂正数>閾値B(ECC用)であるか否かを判別する。
ここで、超えないと判断された場合(NO)、優先順位管理部16lは、ステップS11bの処理に戻され、フラッシュメモリ15に記録されているデータの中から、ハードディスク13と非同期(async)となっている他のデータの検出を実行する。
また、上記ステップS11dでECC訂正数が閾値B(ECC用)を超えると判断された場合(YES)、優先順位管理部16lは、ステップS11eで、その検出された非同期データの記録領域の書き替え回数が予め書き替え回数用に設定された閾値を超えるか否か、つまり、書き替え回数>閾値(書き替え回数用)であるか否かを判別する。そして、超えないと判断された場合(NO)、優先順位管理部16lは、ステップS11bの処理に戻され、フラッシュメモリ15に記録されているデータの中から、ハードディスク13と非同期(async)となっている他のデータの検出を実行する。
一方、上記ステップS11eで書き替え回数が閾値(書き替え回数用)を超えると判断された場合(YES)、優先順位管理部16lは、ステップS11fで、その検出された非同期データをハードディスク13に書き出す優先対象と判断して、ステップS11gで、その非同期データをハードディスク13に書き出す処理を実行し、ステップS11hで、管理テーブル22の内容を更新する。
その後、優先順位管理部16lは、ステップS11iで、管理テーブル22を最後までチェックしたか否かを判別し、チェックしていないと判断された場合(NO)、ステップS11bの処理に戻され、フラッシュメモリ15に記録されているデータの中から、ハードディスク13と非同期(async)となっている他のデータの検出を実行する。
また、上記ステップS11iで管理テーブル22を最後までチェックしたと判断された場合(YES)、優先順位管理部16lは、ステップS11jで、フラッシュメモリ15内に優先対象外と判断された非同期データが存在するか否かを判別し、存在しないと判断された場合(NO)、処理を終了(ステップS11l)する。
また、上記ステップS11jで存在していると判断された場合(YES)、優先順位管理部16lは、ステップS11kで、閾値A(ECC用),閾値B(ECC用)及び閾値(書き替え用)を変更した後、ステップS11bの処理に戻され、フラッシュメモリ15に記録されているデータの中から、ハードディスク13と非同期(async)となっているデータの再検出を実行する。
一方、上記ステップS11cでECC訂正数が閾値Aを超えると判断された場合(YES)、優先順位管理部16lは、ステップS11mで、その検出された非同期データをハードディスク13に書き出す優先対象と判断して、ステップS11nで、その非同期データをハードディスク13に書き出す処理を実行し、ステップS11oで、管理テーブル22の内容を更新する。
そして、優先順位管理部16lは、ステップS11pで、フラッシュメモリ15からハードディスク13に書き出されたデータについて、フラッシュメモリ15内に保持しておく必要があると判断される場合、そのデータをフラッシュメモリ15内の他の記録領域に移し替えて保護を図り、ステップS11iの処理に移行される。この場合、データの移動先となる記録領域としては、移動前の記録領域に比して、ECC訂正数やデータ書き替え回数の少ない領域が選択される。
なお、この発明は上記した実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を種々変形して具体化することができる。また、上記した実施の形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除しても良いものである。さらに、異なる実施の形態に係る構成要素を適宜組み合わせても良いものである。
11…情報記録装置、12…LSI回路、13…ハードディスク、14…SDRAM、15…フラッシュメモリ、16…コントローラ、16a…コマンド解析部、16b…アーキテクチャメモリ、16c…シーケンスコントローラ、16d…I/F及びバスコントローラ、16e…メディア選択部、16f…アドレスセ制御部、16g…書き込み処理部、16h…読み出し処理部、16i…消去処理部、16j…アドレス管理部、16k…状態判定部、16l…優先順位管理部、17…ディスクI/F、18…SDRAM I/F、19…フラッシュメモリI/F、20…ホスト装置、21…ホストI/F、22…管理テーブル、23…書き替え回数管理テーブル。
Claims (9)
- ディスク状記録媒体と、
前記ディスク状記録媒体に対するキャッシュとなる不揮発性メモリと、
前記ディスク状記録媒体及び前記不揮発性メモリと外部との相互間でのデータ転送をそれぞれ制御するとともに、前記ディスク状記録媒体及び前記不揮発性メモリの相互間でのデータ転送を制御する制御手段と、
前記制御手段により前記不揮発性メモリに記録されているデータのうち前記ディスク状記録媒体に記録されていない非同期データを前記ディスク状記録媒体に書き出す際、前記不揮発性メモリの非同期データが記録されている各記録領域の状態に応じて、前記非同期データに対して前記ディスク状記録媒体に書き出す優先順位を設定する設定手段とを具備することを特徴とする情報記録装置。 - 前記設定手段は、前記不揮発性メモリの非同期データが記録されている各記録領域におけるデータ読み出し時のエラー訂正の有無を判別し、エラー訂正の有った記録領域に記録されている非同期データを優先的に前記ディスク状記録媒体に書き出すように優先順位を設定することを特徴とする請求項1記載の情報記録装置。
- 前記設定手段は、前記不揮発性メモリの非同期データが記録されている各記録領域におけるデータ読み出し時のエラー訂正数を判別し、エラー訂正数の多い記録領域に記録されている非同期データを優先的に前記ディスク状記録媒体に書き出すように優先順位を設定することを特徴とする請求項1記載の情報記録装置。
- 前記設定手段は、前記不揮発性メモリの非同期データが記録されている各記録領域におけるデータ書き替え回数を判別し、データ書き替え回数の多い記録領域に記録されている非同期データを優先的に前記ディスク状記録媒体に書き出すように優先順位を設定することを特徴とする請求項1記載の情報記録装置。
- 前記設定手段は、前記不揮発性メモリの非同期データが記録されている各記録領域におけるデータ読み出し時のエラー訂正数を予め設定された閾値とそれぞれ比較し、前記閾値よりもエラー訂正数の多い記録領域に記録されている非同期データを優先的に前記ディスク状記録媒体に書き出すように優先順位を設定することを特徴とする請求項1記載の情報記録装置。
- 前記設定手段は、前記不揮発性メモリの非同期データが記録されている各記録領域におけるデータ書き替え回数を予め設定された閾値とそれぞれ比較し、前記閾値よりもデータ書き替え回数の多い記録領域に記録されている非同期データを優先的に前記ディスク状記録媒体に書き出すように優先順位を設定することを特徴とする請求項1記載の情報記録装置。
- 前記制御手段は、前記不揮発性メモリに記録されている非同期データが前記ディスク状記録媒体に書き出された状態で、前記設定手段によって判別された前記不揮発性メモリの非同期データが記録されている記録領域の状態に応じて、当該非同期データを前記不揮発性メモリの異なる記録領域に書き込むように制御することを特徴とする請求項1記載の情報記録装置。
- ハードディスクと、
前記ハードディスクに対するキャッシュとなる不揮発性メモリと、
前記ハードディスク及び前記不揮発性メモリと外部との相互間でのデータ転送をそれぞれ制御するとともに、前記ハードディスク及び前記不揮発性メモリの相互間でのデータ転送を制御する制御手段と、
前記制御手段により前記不揮発性メモリに記録されているデータのうち前記ハードディスクに記録されていない非同期データを前記ハードディスクに書き出す際、前記不揮発性メモリの非同期データが記録されている各記録領域の状態に応じて、前記非同期データに対して前記ハードディスクに書き出す優先順位を設定する設定手段とを具備することを特徴とする磁気ディスク装置。 - ディスク状記録媒体と、前記ディスク状記録媒体に対するキャッシュとなる不揮発性メモリとを備えた情報記録装置を制御する方法であって、
前記ディスク状記録媒体及び前記不揮発性メモリと外部との相互間でのデータ転送をそれぞれ制御する工程と、
前記ディスク状記録媒体及び前記不揮発性メモリの相互間でのデータ転送を制御する工程と、
前記不揮発性メモリに記録されているデータのうち前記ディスク状記録媒体に記録されていない非同期データを前記ディスク状記録媒体に書き出す際、前記不揮発性メモリの非同期データが記録されている各記録領域の状態に応じて、前記非同期データに対して前記ディスク状記録媒体に書き出す優先順位を設定する工程とを具備することを特徴とする情報記録装置の制御方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007192280A JP2009032305A (ja) | 2007-07-24 | 2007-07-24 | 情報記録装置及びその制御方法 |
US12/177,250 US20090027796A1 (en) | 2007-07-24 | 2008-07-22 | Information recording device and control method therefor |
CNA2008101300046A CN101354635A (zh) | 2007-07-24 | 2008-07-23 | 信息记录装置及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007192280A JP2009032305A (ja) | 2007-07-24 | 2007-07-24 | 情報記録装置及びその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009032305A true JP2009032305A (ja) | 2009-02-12 |
Family
ID=40295107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007192280A Pending JP2009032305A (ja) | 2007-07-24 | 2007-07-24 | 情報記録装置及びその制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20090027796A1 (ja) |
JP (1) | JP2009032305A (ja) |
CN (1) | CN101354635A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014211800A (ja) * | 2013-04-19 | 2014-11-13 | 株式会社東芝 | データ記憶装置、ストレージコントローラおよびデータ記憶制御方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8356137B2 (en) * | 2010-02-26 | 2013-01-15 | Apple Inc. | Data storage scheme for non-volatile memories based on data priority |
CN102844811B (zh) * | 2010-04-13 | 2015-08-05 | 松下电器产业株式会社 | 伺服控制装置、光碟装置和数据传送方法 |
US8639872B1 (en) * | 2010-08-13 | 2014-01-28 | Western Digital Technologies, Inc. | Hybrid drive comprising write cache spanning non-volatile semiconductor memory and disk |
CN102592676A (zh) * | 2011-01-17 | 2012-07-18 | 上海华虹集成电路有限责任公司 | 一种可回收使用的Nandflash存储系统 |
CN107797756B (zh) * | 2016-09-05 | 2021-01-12 | 上海宝存信息科技有限公司 | 固态硬盘系统的优先写入方法以及使用该方法的装置 |
CN113076564B (zh) * | 2021-04-13 | 2022-10-14 | 山东北斗云信息技术有限公司 | 基于北斗定位的硬盘保护方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08115257A (ja) * | 1994-10-18 | 1996-05-07 | Mitsubishi Electric Corp | 磁気ディスク制御装置 |
JPH08328959A (ja) * | 1995-05-31 | 1996-12-13 | Mitsubishi Electric Corp | ディスクキャッシュ制御装置 |
JPH1145210A (ja) * | 1997-07-29 | 1999-02-16 | Toshiba Corp | ディスクキャッシュ装置、ディスクキャッシュ方法及びディスクキャッシュプログラムを記録した記録媒体 |
JPH11345092A (ja) * | 1998-05-29 | 1999-12-14 | Nec Software Ltd | 非同期データ更新方式及び方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3242890B2 (ja) * | 1998-12-16 | 2001-12-25 | 株式会社ハギワラシスコム | 記憶装置 |
AU7313600A (en) * | 1999-09-17 | 2001-04-24 | Hitachi Limited | Storage where the number of error corrections is recorded |
US6580416B1 (en) * | 2000-04-10 | 2003-06-17 | Codehorse, Inc. | Method of using a pointer and a opt-out period to tell an actuator to actuate itself |
JP2007193449A (ja) * | 2006-01-17 | 2007-08-02 | Toshiba Corp | 情報記録装置及びその制御方法 |
-
2007
- 2007-07-24 JP JP2007192280A patent/JP2009032305A/ja active Pending
-
2008
- 2008-07-22 US US12/177,250 patent/US20090027796A1/en not_active Abandoned
- 2008-07-23 CN CNA2008101300046A patent/CN101354635A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08115257A (ja) * | 1994-10-18 | 1996-05-07 | Mitsubishi Electric Corp | 磁気ディスク制御装置 |
JPH08328959A (ja) * | 1995-05-31 | 1996-12-13 | Mitsubishi Electric Corp | ディスクキャッシュ制御装置 |
JPH1145210A (ja) * | 1997-07-29 | 1999-02-16 | Toshiba Corp | ディスクキャッシュ装置、ディスクキャッシュ方法及びディスクキャッシュプログラムを記録した記録媒体 |
JPH11345092A (ja) * | 1998-05-29 | 1999-12-14 | Nec Software Ltd | 非同期データ更新方式及び方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014211800A (ja) * | 2013-04-19 | 2014-11-13 | 株式会社東芝 | データ記憶装置、ストレージコントローラおよびデータ記憶制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US20090027796A1 (en) | 2009-01-29 |
CN101354635A (zh) | 2009-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4422652B2 (ja) | 漸進的マージ方法及びそれを利用したメモリシステム | |
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
JP4836647B2 (ja) | 不揮発性キャッシュメモリを用いる記憶装置とその制御方法 | |
JP2008027383A (ja) | 情報記録装置及びその制御方法 | |
JP5480913B2 (ja) | 記憶装置、およびメモリコントローラ | |
US7649794B2 (en) | Wear leveling method and controller using the same | |
US9785384B2 (en) | Semiconductor storage device and method for controlling nonvolatile semiconductor memory | |
JP2009181314A (ja) | 情報記録装置およびその制御方法 | |
JP4874844B2 (ja) | 情報記録装置及びその制御方法 | |
JP2006216036A (ja) | フラッシュメモリを含んだデータ貯蔵装置及びそれのマージ方法 | |
JP2006178983A (ja) | バッファメモリに貯蔵されたデータを無効化させるスキームを有する貯蔵システム及びそれを含んだコンピューティングシステム | |
JP2007299216A (ja) | 不揮発性フラッシュメモリを用いる記憶装置とその制御方法 | |
KR101139076B1 (ko) | 메모리 장치 및 파일 시스템 | |
JP2009032305A (ja) | 情報記録装置及びその制御方法 | |
JP2008046964A (ja) | 情報記録装置及びその制御方法 | |
JP2010267290A (ja) | 共通論理ブロックに関連付けられている物理ブロックを解決するための方法および装置 | |
JP2007193448A (ja) | 情報記録装置及びその制御方法 | |
JP2007193865A (ja) | 情報記録装置及びその制御方法 | |
US8527733B2 (en) | Memory system | |
JPWO2007105688A1 (ja) | メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム | |
JP4829202B2 (ja) | 記憶装置及びメモリ制御方法 | |
JP2007193866A (ja) | 情報記録装置及びその制御方法 | |
JP2005243000A (ja) | 半導体メモリ装置、メモリコントローラ及びデータ記録方法 | |
JP2011227802A (ja) | データ記録装置 | |
JP2007293987A (ja) | 情報記録装置及びその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100202 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110412 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110823 |