JP2009181314A - 情報記録装置およびその制御方法 - Google Patents

情報記録装置およびその制御方法 Download PDF

Info

Publication number
JP2009181314A
JP2009181314A JP2008019364A JP2008019364A JP2009181314A JP 2009181314 A JP2009181314 A JP 2009181314A JP 2008019364 A JP2008019364 A JP 2008019364A JP 2008019364 A JP2008019364 A JP 2008019364A JP 2009181314 A JP2009181314 A JP 2009181314A
Authority
JP
Japan
Prior art keywords
data
nonvolatile memory
write
host device
information recording
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008019364A
Other languages
English (en)
Inventor
Tatsuo Nitta
達雄 仁田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008019364A priority Critical patent/JP2009181314A/ja
Priority to CNA2009100039231A priority patent/CN101499036A/zh
Priority to US12/361,237 priority patent/US20090193182A1/en
Publication of JP2009181314A publication Critical patent/JP2009181314A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/1075Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data
    • G11B2020/10759Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data content data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2508Magnetic discs
    • G11B2220/2516Hard disks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/60Solid state media
    • G11B2220/61Solid state media wherein solid state memory is used for storing A/V content
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】不揮発性キャッシュの空き領域不足に起因する書き込み動作の遅れの発生を防止することが可能な情報記録装置を実現する。
【解決手段】コントローラ16は、バッファ14に格納されたライトデータをハードディスク13に書き込むことを指示するホスト装置20からのコマンドを受信した場合、不揮発性メモリ15の空き容量が所定のデータサイズよりも少ないか否かを判別し、空き容量が所定のデータサイズよりも少ない場合には、不揮発性メモリ15に格納されている所定のデータの内で、ハードディスク13上に同一のデータが存在する同期データを削除して空き容量を増加させ、バッファ14に格納されたライトデータを不揮発性メモリ15にライトする。
【選択図】 図1

Description

本発明は例えばキャッシュとして機能する不揮発性メモリを備えた情報記録装置およびその制御方法に関する。
一般に、パーソナルコンピュータのような情報処理装置においては、ハードディスクドライブのような情報記録装置が用いられている。情報記録装置は、ハードディスクのような不揮発性記録媒体に情報を格納する。
最近では、不揮発性記録媒体に対するキャッシュとして機能する不揮発性メモリを備えた情報記録装置も開発されている。この不揮発性メモリは、通常、不揮発性キャッシュと称されている。不揮発性キャッシュを備えた情報記録装置は、ホストによって指定されたデータに対するリード/ライトアクセスを高速に実行することができる。またハードディスクを回転させることなくデータをアクセスできるので、情報記録装置の電力消費を削減できるという利点もある。
特許文献1には、ハードディスクと不揮発性メモリとを有した記録装置が開示されている。この記録装置は、外部からのアクセス要求に応じてハードディスクと不揮発性メモリの一方若しくは双方へのアクセスを実行する機能を有している。
特開2005−190187号公報
しかし、不揮発性キャッシュの記憶領域のほとんどが使用されており空き領域が不足している場合は、ホストからのライトデータを不揮発性キャッシュに書き込むことができないので、ハードディスクにライトデータを書き込むことが必要になる。
この場合、もしハードディスクが回転停止状態であったならば、ハードディスクをスピンアップさせなければならず、ハードディスクへのライトデータの書き込みが完了するまでに非常に多くの時間が必要になる。また、たとえハードディスクが回転している状態であっても、シークによるレイテンシにより、ライトデータの書き込みが完了するまでには多くの時間がかかる。
よって、不揮発性キャッシュの空き領域不足が発生すると、情報記録装置の書き込み動作の遅れが生じることになる。もしライトデータの書き込みが完了する前に停電のような電源異常が発生すると、ライトデータがロストされてしまうことになる。
本発明は上述の事情を考慮してなされたものであり、不揮発性キャッシュの空き領域不足に起因する書き込み動作の遅れの発生を防止することが可能な情報記録装置および制御方法を提供することを目的とする。
上述の課題を解決するため、本発明の情報記録装置は、不揮発性記録媒体と、前記不揮発性記録媒体に対するキャッシュとして機能し、ホスト装置に対してリードすべき所定のデータと前記不揮発性記録媒体にライトすべきライトデータの格納に使用される不揮発性メモリと、前記ホスト装置から送信されるライトデータを一時的に格納するバッファと、前記ホスト装置からリード要求を受信した場合、前記リード要求に含まれるアドレスに応じて前記不揮発性記録媒体および前記不揮発性メモリから選択的にデータをリードし、前記バッファに格納されたライトデータを前記不揮発性記録媒体に書き込むことを指示する前記ホスト装置からの所定のコマンドを受信した場合、前記不揮発性メモリの空き容量が所定のデータサイズよりも少ないか否かを判別し、前記空き容量が前記所定のデータサイズよりも少ない場合には、前記不揮発性メモリに格納されている前記所定のデータの内で、前記不揮発性記録媒体上に同一のデータが存在する同期データを削除して前記空き容量を増加させ、前記バッファに格納されたライトデータを前記不揮発性メモリにライトする制御手段とを具備することを特徴とする。
また、本発明は、不揮発性記録媒体と、前記不揮発性記録媒体に対するキャッシュとして機能し、ホスト装置に対してリードすべき所定のデータと前記不揮発性記録媒体にライトすべきライトデータの格納に使用される不揮発性メモリと、前記ホスト装置から送信されるライトデータを一時的に格納するバッファとを含む情報記録装置の動作を制御する制御方法であって、前記ホスト装置からリード要求を受信した場合、前記リード要求に含まれるアドレスに応じて前記不揮発性記録媒体および前記不揮発性メモリから選択的にデータをリードするステップと、前記バッファに格納されたライトデータを前記不揮発性記録媒体に書き込むことを指示する前記ホスト装置からの所定のコマンドを受信した場合、前記不揮発性メモリの空き容量が所定のデータサイズよりも少ないか否かを判別するステップと、前記空き容量が前記所定のデータサイズよりも少ない場合には、前記不揮発性メモリに格納されている前記所定のデータの内で、前記不揮発性記録媒体上に同一のデータが存在する同期データを削除して前記空き容量を増加させるデータ削除ステップと、前記前記空き容量を増加された後、前記バッファに格納されたライトデータを前記不揮発性メモリにライトするステップとを具備することを特徴とする。
本発明によれば、不揮発性キャッシュの空き領域不足に起因する書き込み動作の遅れの発生を防止することが可能となる。
以下、図面を参照して本発明の実施形態を説明する。
図1は、本発明の一実施形態に係る情報記録装置11の構成を示している。この情報記録装置11はホスト装置20からのアクセス要求に応じて不揮発性記憶媒体に対するデータのライトおよびリードを実行する装置である。この情報記録装置11は、不揮発性記憶媒体に加え、この不揮発性記憶媒体に対するキャッシュとして機能する不揮発性メモリを備えている。不揮発性メモリの記憶容量は不揮発性記憶媒体の記憶容量よりも少ないが、不揮発性メモリは、データのリードおよびライトのためのデータ転送を不揮発性記憶媒体よりも高速に実行することができる。以下では、情報記録装置11が、不揮発性メモリを備えたハードディスクドライブ(HDD)であるハイブリッドHDDとして実現されている場合を想定する。この場合、不揮発性記憶媒体は、回転媒体であるハードディスクによって実現される。
即ち、情報記録装置11は、各種の回路ブロックが内蔵されたLSI12、ハードディスク13、バッファ14、および不揮発性メモリ15、等を備えている。
不揮発性メモリ15は、不揮発性記憶媒体(永久記憶媒体とも云う)であるハードディスク13に対するキャッシュ(不揮発性キャッシュ)として機能する半導体メモリである。不揮発性メモリ15は、例えば、フラッシュメモリ(フラッシュEEPROM)等によって実現されている。不揮発性メモリ15は、情報記録装置11からホスト装置20に対して高速にリードすべき所定のデータの格納と、ハードディスク13にライトすべきライトデータの格納とに使用される。
通常のHDDにおいては、ソフトウェア(オペレーティングシステム内のカーネル、デバイスドライバ、アプリケーションプログラム、等)及びユーザデータの全てがハードディスク13にのみ格納されるが、本実施形態の情報記録装置11においては、それらソフトウェアの一部のコピー、またはハードディスク13に格納されたユーザデータの一部のコピー等を、不揮発性メモリ15に、ホスト装置20に対して高速にリードすべきデータとして格納しておくことができる。これにより、各種データ(ソフトウェア、ユーザデータ)を情報記録装置11からホスト装置20に対して高速に転送することが可能となる。
不揮発性メモリ15にハードディスク13内のどのデータを保持すべきであるかは、ホスト装置20が指定することができる。情報記録装置11は、ホスト装置20によって指定された各論理ブロックアドレス(LBA)に対応するデータ(データブロックとも云う)をハードディスク13から不揮発性メモリ15にロードする。ロードされたデータは、不揮発性メモリ15上に恒常的に保持され得る。
また、情報記録装置11は、ホスト装置20によって指定された各論理ブロックアドレス(LBA)に対応するデータのみならず、例えば、ホスト装置20がリード要求する可能性高い各論理ブロックアドレス(LBA)を自ら推定し、その推定された各論理ブロックアドレス(LBA)に対応するデータをハードディスク13からロードして不揮発性メモリ15に保持しておくこともできる。
また、情報記録装置11においては、ホスト装置20によってライト要求された、ハイバネーションファイルのようなデータを、不揮発性メモリ15に保持することもできる。
さらに、不揮発性メモリ15は、ハードディスク13にライトすべきライトデータを一時的に格納するためのライトキャッシュとしても活用される。即ち、ホスト装置20から送信されるライトデータは不揮発性メモリ15に一時的に格納される。そして、例えば、不揮発性メモリ15内のライトキャッシュ用の記憶領域がライトデータ(ライトされるべきデータブロック群)で満たされた時や情報記録装置がアイドル状態となりハードディスク15に書き込みが可能な場合に、不揮発性メモリ15内のライトデータそれぞれがハードディスク13に書き込まれる。
バッファ14は、通常のHDD内に設けられているDRAMキャッシュに相当するものであり、ホスト装置20から送信されるライトデータを一時的に格納するライトバッファとして機能し得る。このバッファ14は、DRAM、SDRAMといった揮発性メモリから構成されている。バッファ14のリード/ライトアクセス速度は不揮発性メモリ15よりも高速であるが、バッファ14の記憶容量は不揮発性メモリ15よりも少ない。ホスト装置20によるライトサイクルは、ホスト装置20から送信されるライトデータがバッファ14に格納された時点で完了される。
例えばホスト装置20からのキュッシュフラッシュコマンドを受信した時、情報記録装置11は、バッファ14に蓄積されているライトデータを、不揮発性メモリ15にライトする。キュッシュフラッシュコマンドは、バッファ14に格納されているライトデータをハードディスク13に書き込むことを指示するコマンドである。
このように、バッファ14に格納されたライトデータをハードディスク13ではなく、不揮発性メモリ15にライトすることにより、バッファ14上のライトデータを安全な不揮発の安全な記憶場所に高速に保存することができる。
LSI12は情報記録装置11の動作を制御する電子回路であり、コントローラ16、ディスクインタフェース17、バッファインタフェース18、メモリインタフェース19、ホストインタフェース21等を備えている。コントローラ16は、ホスト装置20からの各種コマンドに応じて情報記録装置11の動作を制御する。このコントローラ16は、ホストインタフェース21を介してホスト装置20との通信を実行する。ホスト装置20とコントローラ16との間の通信は、例えばATA8-ACS規格で規定された各種コマンドを用いて実行される。
ディスクインタフェース17はコントローラ16とハードディスク13との間のデータ転送を実行する。ハードディスク13へのデータのライトおよびハードディスク13からのデータのリードは、情報記録装置11内に設けられた機械的な駆動機構を用いて実行される。この駆動機構は、ハードディスク13を回転させるスピンドルモータ、ヘッド、およびこのヘッドをハードディスク13の半径方向に移動するためのアクチュエータ等を含んでいる。
メモリインタフェース19はコントローラ16と不揮発性メモリ15との間のデータ転送を実行する。このメモリインタフェース19は不揮発性メモリ15をアクセス制御するメモリコントローラから構成されている。
バッファインタフェース18はコントローラ16とバッファ14との間のデータ転送を実行する。このバッファインタフェース18は、例えばDRAMコントローラから構成されている。
コントローラ16は管理テーブル161を備えており、この管理テーブル161を用いて、不揮発性メモリ15の内容を管理する。具体的には、管理テーブル161においては、不揮発性メモリ15に格納されている個々のデータブロック毎に、管理情報が格納されている。管理情報は、データブロックが格納されている不揮発性メモリ15内の位置を示す物理アドレス、そのデータブロックの論理ブロックアドレス(LBA)、そのデータブロックのデータサイズ、およびデータブロックの属性、等を示す。属性は、そのデータブロックが不揮発性メモリ15内に保持すべきことが指定されたLBAに対応するデータ(pinned data)であるか否かを示す。
ホスト装置20からリード要求(リードコマンド)を受信した場合、コントローラ16は、そのリードコマンドに含まれるアドレス(LBA)に応じて、不揮発性メモリ15およびハードディスク13から選択的にデータをリードする。
具体的には、コントローラ16は、管理テーブル161を参照して、リードコマンドによって指定されたLBAに対応するデータが不揮発性メモリ15上に存在するか否かを判別する。リードコマンドによって指定されたLBAに対応するデータが不揮発性メモリ15上に存在するならば、コントローラ16は、そのデータを不揮発性メモリ15からリードする。リードコマンドによって指定されたLBAに対応するデータが不揮発性メモリ15上に存在しないならば、コントローラ16は、そのデータをハードディスク13からリードする。
また、コントローラ16は、不揮発性キャッシュである不揮発性メモリ15の空き領域不足に起因する書き込み動作の遅れの発生を防止するために、不揮発性メモリ15に保持されているデータ内の一部を一時的に削除して、不揮発性メモリ15の空き領域を増やす機能を有している。
すなわち、不揮発性メモリ15の記憶領域のほとんどが使用されており、不揮発性メモリ15の空き容量が不足している場合は、バッファ14に蓄積されたライトデータを不揮発性メモリ15にライトすることができない。この場合、通常であれば、ハードディスク13にライトデータを書き込むことが必要になり、これにより書き込み動作の遅れが発生する。もし、ハードディスク13へのライトが完了する前に停電のような電源異常が発生すると、ライトデータはロストしてしまうことになる。
したがって、不揮発性メモリ15の空き領域が不足している場合であっても、バッファ14に蓄積されたライトデータを不揮発性メモリ15に保存できるようにすることが重要である。これを実現するため、コントローラ16は、例えば上述のキュッシュフラッシュコマンドを受信した時に、以下の処理を実行する。
すなわち、コントローラ16は、不揮発性メモリ15の空き容量が所定のデータサイズよりも少ないか否かを判別し、空き容量が所定のデータサイズよりも少ない場合には、不揮発性メモリ15に保持されているデータ(例えば、pinned data等)の内で、ハードディスク13上に同一のデータが存在するデータ(同期データ)を一時的に削除して不揮発性メモリ15の空き容量を増加させる。そして、コントローラ16は、バッファ14に格納されたライトデータを、不揮発性メモリ15にライトする。これにより、不揮発性メモリ15の空き領域が不足している場合であっても、バッファ14に蓄積されたライトデータを不揮発性メモリ15に高速に保存することができ、ライトデータの安全性を高めることが出来る。
同期データ(メディア同期データとも云う)はその同期データと同一のデータがハードディスク13上にも存在しているデータである。したがって、不揮発性メモリ15から同期データを削除しても、その同期データを不揮発性メモリ15上に復元することができる。
本実施形態においては、上述の同期データ削除処理は、バッファ14のライトデータを不揮発性メモリ15に高速に保存することが必要なイベントの発生に応答して実行される。このイベントの発生要因としては、上述のキャッシュフラッシュコマンドの受信のみならず、他の要因もある。例えば、ヘッドがランプに緊急退避されている状態でバッファ14にライトデータが書き込まれた時にも、上述の同期データ削除処理が実行される。さらに、図4で後述する高速フラッシュ処理の実行を指示するコマンドをホスト装置20から受信した時も、上述の同期データ削除処理が実行される。
図2には、コントローラ16の構成例が示されている。
コントローラ16は、上述の同期データ削除処理を実行するために、同期データ削除部201、再書き込み処理部202、アクセス頻度検出処理部203、およびデータ移動処理部204を備えている。
同期データ削除部201は、不揮発性メモリ15の空き容量が所定のデータサイズ(例えば、不揮発性メモリ15に書き込むべきライトデータのデータサイズ)よりも少ない場合、不揮発性メモリ15に格納されているデータの中から同期データを選択し、その同期データを削除する処理を実行する。例えば、同期データ削除部201は、不揮発性メモリ15に保持されている、ホスト装置20によって指定されたLBAそれぞれに対応するデータブロック群の内、ハードディスク13からロードされたデータブロックの各々を同期データとして選択する。この場合、同期データ削除部201は、不揮発性メモリ15に格納されている同期データそれぞれに対するホスト装置20によるアクセス頻度に基づいて、不揮発性メモリ15に格納されている同期データの内でアクセス頻度が低い同期データを優先的に削除する。すなわち、同期データであるデータブロックの内で、使用頻度の低いデータブロックが優先的に削除される。これにより、同期データの削除に起因するリードアクセス性能の低下を最小限に抑えることが出来る。
なお、上述したように、コントローラ16は、ホスト装置20がリード要求する可能性高い各論理ブロックアドレス(LBA)を自ら推定し、その推定した各論理ブロックアドレス(LBA)に対応するデータブロックをハードディスク13から不揮発性メモリ15にロードすることもできる。したがって、このようなデータブロックを同期データとして選択してもよい。
再書き込み処理部202は、削除された同期データを不揮発性メモリ15上に復元するために、同期データ削除部201によって不揮発性メモリ15から削除されたデータブロックそれぞれをハードディスク13からリードして不揮発性メモリ15にライトする。この再書き込み処理は、例えば、不揮発性メモリ15に蓄積されたライトデータをハードディスク13にライトした後に実行される。
アクセス頻度検出処理部203は、不揮発性メモリ15に保持されているデータブロックそれぞれのアクセス頻度を管理する処理を実行する。具体的には、アクセス頻度検出処理部203は、不揮発性メモリ15に保持されているデータブロック毎に、ホスト装置20によるリードアクセス/ライトアクセスの回数等をカウントする。なお、必ずしも実際のアクセス回数そのものを厳密にカウントする必要はない。例えば、情報記録装置11のパワーサイクル(情報記録装置11がパワーオンされてからパワーオフされるまでの期間)中におけるアクセスの有無をデータブロック毎に管理してもよい。この場合、一回のパワーサイクルで1度以上アクセスされたデータブロックに対応するアクセス回数の値は1となる。一回のパワーサイクルで1度もアクセスされなかったデータブロックに対応するアクセス回数の零となる。また、不揮発性メモリ15に格納されている同期データのみを対象にそのアクセス回数を管理してもよい。
データ移動処理部204は、不揮発性メモリ15上の同期データそれぞれのアクセス頻度に基づいて、それら同期データの内でアクセス頻度が低い同期データそれぞれを不揮発性メモリ15内における所定の記憶領域に集めるためのデータ移動処理を、情報記録装置11の通常動作期間中に実行する。つまり、不揮発性メモリ15に格納されているデータブロックの内で、同期データであり且つアクセス頻度が低いデータブロックは、事前に不揮発性メモリ15内の所定の記憶領域に集められる。このように消去対象となるデータブロックそれぞれをまとめることにより、連続した記憶領域を空き領域に設定することができるので、その空き領域にライトデータを効率よく書き込むことが可能となる。
不揮発性メモリ15が複数の消去ブロックを含むフラッシュメモリから構成されている場合には、データ移動処理においては、同期データの内でアクセス頻度が低い同期データそれぞれが特定の1以上の消去ブロックに集められる。フラッシュメモリからデータを削除する処理は消去ブロック単位で実行されるので、同期データであり且つアクセス頻度が低いデータブロックそれぞれを事前に特定の1以上の消去ブロックに集めておくことにより、同期データ削除部201はその特定の消去ブロックに対するブロックイレーズ処理を実行するだけで、アクセス頻度が低い同期データそれぞれをまとめて消去する事が出来る。よって、同期データ削除処理を高速に実行することが可能となり、必要な空き領域をより早く確保することが可能となる。
また、データ移動処理においては、アクセス頻度が低い同期データそれぞれのLBAに基づき、アクセス頻度が低い同期データの中で、LBAが互いに近接した同期データ同士を同一の消去ブロックに集める処理が実行される。これにより、消去されたデータブロックそれぞれをハードディスク13から不揮発性メモリ15に書き戻すための再書き込み処理を高速化することができる。
図3は、キュッシュフラッシュコマンドの受信時に実行される、ライトデータを不揮発性メモリ15にライトするための書き込み動作を示している。
上述したように、コントローラ16は、ホスト装置20からのキュッシュフラッシュコマンドの受信に応答して、バッファ14上のライトデータを不揮発性メモリ15にライトするための処理(フラッシュ処理)を実行する。このフラッシュ処理は、ハードディスク13の回転を停止した状態で行うことができる。しかし、このフラッシュ処理を実行するためには、不揮発性メモリ15上に十分な空き領域、すなわちデータを自由に書き込める領域が確保できている事が前提となる。
不揮発性メモリ15上においては、ホスト装置20によって指定されたLBAそれぞれに対応するデータブロック群(pinned data)と、ハードディスク13にライトすべきライトデータとが混在している。
不揮発性メモリ15に格納されているライトデータはハードディスク13に未書き込みの新しいデータである。よって、不揮発性メモリ15に格納されているライトデータは、ハードディスク13に同一のデータが存在しない非同期データ(メディア非同期データ)である。
一方、ホスト装置20によって指定されたLBAそれぞれに対応するデータブロック群の中には、同一のデータがハードディスク13上に存在する同期データ(メディア同期データ)も含まれている。例えば、ハードディスク13から不揮発性メモリ15にロードされたデータブロックは同期データである。また、ホスト装置20から送られてきたデータブロックであっても、同一のデータがハードディスク13上に存在する場合もある。
そこで、本実施形態では、不揮発性メモリ15の空き容量が不足している場合には、コントローラ16は、不揮発性メモリ15に保持されているデータ(例えば、pinned data等)の内、同期データを選択し、その同期データを一時的に削除して、不揮発性メモリ15に空き容量を増大させる。この場合、コントローラ16は、削除した同期データに対応する管理情報を管理テーブル161から削除するために、管理テーブル161を更新する処理も実行する。
そして、コントローラ16は、ライトバッファ14に蓄積されているライドデータそれぞれを、同期データの削除によって確保された不揮発性メモリ15の空き領域にライトする。このように、同期データのみを削除対象とすることにより、データ削除に起因する不具合は生じない。
以上の処理により、本実施形態では、たとえ不揮発性メモリ15の記憶領域のほとんどが使用されているような状態であっても、ライトデータを書き込むための領域を不揮発性メモリ15上に確保することができ、ライトデータを不揮発性メモリ15に保存することができる。したがって、キャッシュフラッシュコマンドに対するレスポンス性能を高めることが出来ると共に、電源異常等に起因してライトデータがロストする可能性も低減することができる。さらに、バッファ14上のライトデータを不揮発性メモリ15に書き込む処理は、ハードディスク13の回転が停止されている状態で行うことが出来るので、ハードディスク13の回転による電力消費の増大も防止することができる。
次に、図4を参照して、ライトデータの書き込み動作の他の例として、高速データフラッシュ処理の動作を説明する。
この高速データフラッシュ処理は、バッファ14に蓄積されている全てのライトデータを不揮発性メモリ15にライトするのではなく、バッファ14に蓄積されているライトデータの一部をハードディスク13にライトし、バッファ14に蓄積されているライトデータの残りを不揮発性メモリ15にライトする処理である。ハードディスク13に対するライト動作と、不揮発性メモリ15に対するライト動作は、並行して実行される。
すなわち、ホスト装置20からのキュッシュフラッシュコマンドの受信に応答して、または高速データフラッシュ処理の実行を明示的に指示するコマンドをホスト装置20から受信した時、コントローラ16は、バッファ14に蓄積されているライトデータ群(データブロック群)の中から、ハードディスク13に高速にライトすることが可能なデータブロック群(例えば、LBAが連続するデータブロック群など)を選択し、それら選択したデータブロック群をハードディスク13にライトする。この場合、選択されたデータブロック群をLBAの順に並べ替えるリオーダリング処理も実行される。
ハードディスク13へのライトと同時に、コントローラ16は、バッファ14に蓄積されているライトデータ群の内、選択されたデータブロック群以外の残りのデータブロック群を不揮発性メモリ15にライトする。
もし、不揮発性メモリ15の空き容量が、不揮発性メモリ15にライトすべきデータブロック群のデータサイズよりも少ない場合には、コントローラ16は、不揮発性メモリ15に保持されているデータ(例えば、pinned data等)の内、同期データを選択し、その同期データを一時的に削除して、空き容量を確保する。これにより、不揮発性メモリ15の空き容量が不足している状態においても、高速データフラッシュ処理を実行することができる。
次に、図5のフローチャートを参照して、情報記録装置11の通常動作期間中にバックグラウンドで実行されるデータ移動処理について説明する。
本実施形態においては、同期データ削除処理を効率よく実行するために、以下の移動処理が実行される。
すなわち、コントローラ16は、不揮発性メモリ15に保持されている各データブロック毎にホスト装置20によるリードアクセス回数をカウントする(ステップS101)。そして、コントローラ16は、情報記録装置11内部においてGarbage Collection処理またはWear Leveling処理を実行する時、または情報記録装置11のアイドル時などに、不揮発性メモリ15に保持されているデータブロックそれぞれに対応するアクセス回数に基づいて、不揮発性メモリ15に保持されているデータブロックそれぞれを並べ替えるためのデータ移動処理を実行する(ステップS102,S103)。
ステップS102においては、コントローラ16は、不揮発性メモリ15に格納されているデータブロックの内で、同期データであり且つアクセス頻度が低いデータブロックそれぞれを選択する。そして、ステップS103において、コントローラ16は、図6に示されているように、メディア同期データで且つアクセス頻度が低いデータブロックそれぞれが特定の消去ブロックに集められるように、不揮発性メモリ15に保持されているデータブロックそれぞれを並べ替える。
さらに、ステップS103のデータ移動処理においては、コントローラ16は、メディア同期データで且つアクセス頻度が低いデータブロックそれぞれのLBAをも考慮して、LBAが互いに近接したデータブロック同士が同一の消去ブロックに集められるように、並べ替えを行う。この並べ替えの様子を図7に示す。図7においては、LBA=100のデータブロック、LBA=20000のデータブロック、LBA=180のデータブロック、LBA=21000のデータブロック、LBA=20のデータブロック、LBA=16000のデータブロックが、メディア同期データで且つアクセス頻度が低いデータブロックである。LBAが互いに近接したデータブロック同士、つまりある一定のLBA範囲内に属するLBAを有するデータブロック同士は同じ消去ブロックに移動される。図7においては、LBA=100のデータブロック、LBA=180のデータブロック、LBA=20のデータブロックは、消去ブロック1に集められている。また、LBA=20000のデータブロック、LBA=21000のデータブロック、LBA=16000のデータブロックは、消去ブロック2に集められている。
同期データ削除処理においては、ライトデータのデータサイズに応じて、イレーズ対象とされる消去ブロックの数が変わる。もし同期データ削除処理において例えば消去ブロック1のみがイレーズされた場合には、再書き込み処理では、消去ブロック1に格納されていた、LBA=100のデータブロック、LBA=180のデータブロック、LBA=20のデータブロックをハードディスク13から不揮発性メモリ15に書き戻す処理を実行することが必要となる。この場合、LBA=100のデータブロック、LBA=180のデータブロック、LBA=20のデータブロックは互いにハードディスク13上の隣接する記憶位置(例えば、同一トラック上、または隣接する2つのトラック上)に存在するので、これらデータブロックを効率よくハードディスク13からリードすることができ、再書き込み処理の高速化を実現することが可能になる。
次に、図8のフローチャートを参照して、ライトデータを不揮発性メモリ15にライトするための書き込み動作の手順を説明する。
バッファ14のライトデータを不揮発性メモリ15に高速に保存することが必要な要因が発生した時、例えば、ホスト装置20からのキャッシュフラッシュコマンドを受信した時(ステップS201)、コントローラ16は、不揮発性メモリ15の空き容量をチェックする(ステップS202)。そして、コントローラ16は、不揮発性メモリ15の空き容量とバッファ14に蓄積されているライトデータのデータサイズとを比較して、不揮発性メモリ15の空き容量がライトデータのデータサイズよりも少ないか否かを判別する(ステップS203)。
不揮発性メモリ15の空き容量がライトデータのデータサイズ以上であるならば(ステップS203のNO)、コントローラ16は、バッファ14に蓄積されているライトデータを不揮発性メモリ15にライトする(ステップS204)。
不揮発性メモリ15の空き容量がライトデータのデータサイズよりも少ないならば(ステップS203のYES)、コントローラ16は、不足サイズ(不足サイズ=ライトデータのデータサイズ−不揮発性メモリ15の空き容量)を算出する(ステップS205)。そして、コントローラ16は、不足サイズに基づいて、不揮発性メモリ15に保持されているデータブロック群の中から、削除すべきデータブロック群を決定する(ステップS206)。ステップS206においては、不揮発性メモリ15に保持されているデータブロック群(例えば、pinned data等)の内、同期データで且つアクセス頻度が低いデータブロック群が削除対象のデータブロック群として選択される。
同期データで且つアクセス頻度が低いデータブロック群を特定の幾つかの消去ブロックに集めるデータ移動処理が事前に行われているならば、ステップS206においては、コントローラ16は、不足サイズに基づいて、特定の幾つかの消去ブロックの中からイレーズ対象とすべき消去ブロックを選択するだけでよい。そして、コントローラ16は、選択した消去ブロック内に存在するデータブロックそれぞれに対応する管理情報を管理テーブル161から削除する(ステップS207)。
次いで、コントローラ16は、選択した消去ブロックに対するイレーズ処理を実行して、選択した消去ブロック内のデータ全体を消去する(ステップS208)。このイレーズ処理により、不揮発性メモリ15の空き容量が増加されるので、ライトデータのデータサイズ分の空き領域が不揮発性メモリ15上に確保される。そして、コントローラ16は、バッファ14上のライトデータそれぞれを不揮発性メモリ15の空き領域にライトする(ステップS209)。ステップS209においては、例えば、コントローラ16は、ハードディスク13の回転が停止されている状態でライトデータを不揮発性メモリ15にライトすることができる。
以上の処理により、不揮発性メモリ15の空き領域が不足している場合であっても、バッファ14に蓄積されたライトデータを不揮発性メモリ15に高速保存することができる。
なお、ステップS203においては、不揮発性メモリ15の空き容量がライトデータのデータサイズよりも少ないか否かを判別するようにしたが、不揮発性メモリ15の空き容量が予め決められた特定のデータサイズよりも少ないか否かを判別するようにしてもよい。
図9には、本実施形態の情報記録装置11の他の構成例が示されている。
図9に示されている情報記録装置11は、不揮発性キャッシュを含むSSDによって実現されている。図9の情報記録装置11においては、ハードディスク13の代わりに、不揮発性メモリ301から構成される不揮発性記憶媒体300が設けられている。また、不揮発性記憶媒体300に対するキャッシュとして、不揮発性メモリ302が設けられている。この不揮発性メモリ302は、不揮発性記憶媒体300内の不揮発性メモリ301よりも高速アクセス可能なメモリデバイスである。図9の構成においても、不揮発性記憶媒体300内の不揮発性メモリ301に対するリード/ライトアクセスに比し、不揮発性メモリ302に対するリード/ライトアクセスは高速に実行される。よって、上述の同期データ削除処理は、図9の情報記録装置11においても有用である。
以上説明したように、本実施形態によれば、たとえ不揮発性メモリ15の記憶領域のほとんどが使用されているような状態であっても、不揮発性メモリ15上の同期データを削除することによって、ライトデータを書き込むための領域を不揮発性メモリ15上に確保することができ、ライトデータを不揮発性メモリ15に保存することができる。また、通常処理中にデータ移動処理が事前に実行されるので、同期データを削除する処理を高速に実行することができる。
また、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
本発明の一実施形態に係る情報記録装置の構成を示すブロック図。 同実施形態の情報記録装置に設けられたコントローラの構成例を示すブロック図。 同実施形態の情報記録装置によって実行される、ライトデータを不揮発性メモリにライトする動作の例を説明するための図。 同実施形態の情報記録装置によって実行される、ライトデータを不揮発性メモリにライトする動作の他の例を説明するための図。 同実施形態の情報記録装置によって実行されるデータ移動処理の手順を説明するフローチャート。 同実施形態の情報記録装置によって実行されるデータ移動処理の例を説明するための図。 同実施形態の情報記録装置によって実行されるデータ移動処理の他の例を説明するための図。 同実施形態の情報記録装置によって実行される書き込み動作の手順を説明するためのフローチャート。 同実施形態の情報記録装置の他の構成例を示すブロック図。
符号の説明
11…情報記録装置、13…ハードディスク、14…バッファ、15…不揮発性メモリ、16…コントローラ、20…ホスト装置、201…同期データ削除部、202…再書き込み処理部、203…アクセス頻度検出処理、204…データ移動処理部。

Claims (11)

  1. 不揮発性記録媒体と、
    前記不揮発性記録媒体に対するキャッシュとして機能し、ホスト装置に対してリードすべき所定のデータと前記不揮発性記録媒体にライトすべきライトデータの格納に使用される不揮発性メモリと、
    前記ホスト装置から送信されるライトデータを一時的に格納するバッファと、
    前記ホスト装置からリード要求を受信した場合、前記リード要求に含まれるアドレスに応じて前記不揮発性記録媒体および前記不揮発性メモリから選択的にデータをリードし、前記バッファに格納されたライトデータを前記不揮発性記録媒体に書き込むことを指示する前記ホスト装置からの所定のコマンドを受信した場合、前記不揮発性メモリの空き容量が所定のデータサイズよりも少ないか否かを判別し、前記空き容量が前記所定のデータサイズよりも少ない場合には、前記不揮発性メモリに格納されている前記所定のデータの内で、前記不揮発性記録媒体上に同一のデータが存在する同期データを削除して前記空き容量を増加させ、前記バッファに格納されたライトデータを前記不揮発性メモリにライトする制御手段とを具備することを特徴とする情報記録装置。
  2. 前記制御手段は、前記同期データそれぞれに対する前記ホスト装置によるアクセス頻度に基づいて、前記同期データの内でアクセス頻度が低い同期データを優先的に削除することを特徴とする請求項1記載の情報記録装置。
  3. 前記制御手段は、前記同期データそれぞれに対する前記ホスト装置によるアクセス頻度に基づいて、前記同期データの内でアクセス頻度が低い同期データそれぞれを前記不揮発性メモリ内における所定の記憶領域に集めるためのデータ移動処理を、前記情報記録装置の通常動作期間中に実行することを特徴とする請求項2記載の情報記録装置。
  4. 前記不揮発性メモリは複数の消去ブロックを含むフラッシュメモリから構成されており、前記制御手段は、前記同期データそれぞれに対する前記ホスト装置によるアクセス頻度に基づいて、前記同期データの内でアクセス頻度が低い同期データそれぞれを前記フラッシュメモリ内の所定の1以上の消去ブロックに集めるためのデータ移動処理を、前記情報記録装置の通常動作期間中に実行し、
    前記制御手段は、前記同期データの内でアクセス頻度が低い同期データそれぞれを削除するために、前記所定の1以上の消去ブロック内のデータ全体を消去するブロックイレーズ処理を実行することを特徴とする請求項2記載の情報記録装置。
  5. 前記データ移動処理は、前記アクセス頻度が低い同期データの中で、論理ブロックアドレスが互いに近接した同期データ同士を同一の消去ブロックに集めることを特徴とする請求項4記載の情報記録装置。
  6. 前記制御手段は、前記所定の消去ブロック内から削除された同期データそれぞれを前記不揮発性記憶媒体からリードして前記不揮発性メモリに再書き込みする再書き込み手段を含むことを特徴とする請求項5記載の情報記録装置。
  7. 前記不揮発性記録媒体は、回転媒体であるハードディスクを含み、
    前記制御手段は、前記ハードディスクが回転停止されている状態で、前記バッファに格納されたライトデータを前記不揮発性メモリに書き込むことを特徴とする請求項1記載の情報記録装置。
  8. 前記不揮発性記録媒体は、回転媒体であるハードディスクを含み、
    前記制御手段は、前記バッファに格納されたライトデータの一部を前記ハードディスクに書き込む処理と、前記バッファに格納されたライトデータの残りを前記不揮発性メモリに書き込む処理とを並行して実行することを特徴とする請求項1記載の情報記録装置。
  9. 不揮発性記録媒体と、前記不揮発性記録媒体に対するキャッシュとして機能し、ホスト装置に対してリードすべき所定のデータと前記不揮発性記録媒体にライトすべきライトデータの格納に使用される不揮発性メモリと、前記ホスト装置から送信されるライトデータを一時的に格納するバッファとを含む情報記録装置の動作を制御する制御方法であって、
    前記ホスト装置からリード要求を受信した場合、前記リード要求に含まれるアドレスに応じて前記不揮発性記録媒体および前記不揮発性メモリから選択的にデータをリードするステップと、
    前記バッファに格納されたライトデータを前記不揮発性記録媒体に書き込むことを指示する前記ホスト装置からの所定のコマンドを受信した場合、前記不揮発性メモリの空き容量が所定のデータサイズよりも少ないか否かを判別するステップと、
    前記空き容量が前記所定のデータサイズよりも少ない場合には、前記不揮発性メモリに格納されている前記所定のデータの内で、前記不揮発性記録媒体上に同一のデータが存在する同期データを削除して前記空き容量を増加させるデータ削除ステップと、
    前記前記空き容量を増加された後、前記バッファに格納されたライトデータを前記不揮発性メモリにライトするステップとを具備することを特徴とする制御方法。
  10. 前記データ削除ステップは、前記同期データそれぞれに対する前記ホスト装置によるアクセス頻度に基づいて、前記同期データの内でアクセス頻度が低い同期データを優先的に削除することを特徴とする請求項9記載の制御方法。
  11. 前記同期データそれぞれに対する前記ホスト装置によるアクセス頻度に基づいて、前記同期データの内でアクセス頻度が低い同期データそれぞれを前記不揮発性メモリ内における所定の記憶領域に集めるためのデータ移動処理を、前記情報記録装置の通常動作期間中に実行するステップをさらに具備することを特徴とする請求項10記載の制御方法。
JP2008019364A 2008-01-30 2008-01-30 情報記録装置およびその制御方法 Pending JP2009181314A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008019364A JP2009181314A (ja) 2008-01-30 2008-01-30 情報記録装置およびその制御方法
CNA2009100039231A CN101499036A (zh) 2008-01-30 2009-01-23 信息存储设备及其控制方法
US12/361,237 US20090193182A1 (en) 2008-01-30 2009-01-28 Information storage device and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008019364A JP2009181314A (ja) 2008-01-30 2008-01-30 情報記録装置およびその制御方法

Publications (1)

Publication Number Publication Date
JP2009181314A true JP2009181314A (ja) 2009-08-13

Family

ID=40900378

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008019364A Pending JP2009181314A (ja) 2008-01-30 2008-01-30 情報記録装置およびその制御方法

Country Status (3)

Country Link
US (1) US20090193182A1 (ja)
JP (1) JP2009181314A (ja)
CN (1) CN101499036A (ja)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011090460A (ja) * 2009-10-21 2011-05-06 Toshiba Corp データ記憶装置およびデータ記憶装置における制御方法
JP2013504142A (ja) * 2009-09-08 2013-02-04 フュージョン−アイオー・インコーポレーテッド ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法
JP2014115977A (ja) * 2012-12-06 2014-06-26 Toshiba Corp ハイブリッド・ディスク・ドライブにおけるハイバネーションファイルの低オーバーヘッドストレージ
JP2014154166A (ja) * 2013-02-07 2014-08-25 Seagate Technology Llc データ記憶デバイスおよびそれを操作する方法
JP2015082145A (ja) * 2013-10-21 2015-04-27 東芝テック株式会社 コンテンツ再生装置及びプログラム
JP2015515670A (ja) * 2012-03-07 2015-05-28 ネットアップ,インコーポレイテッド ハイブリッドストレージ集合体ブロック追跡
KR101548917B1 (ko) 2014-02-24 2015-09-02 에스케이텔레콤 주식회사 메모리제어장치 및 메모리제어장치의 동작 방법
JP2016506579A (ja) * 2012-12-26 2016-03-03 ウェスタン デジタル テクノロジーズ インコーポレーテッド データストレージシステム向けの優先度に基づくガベージコレクション
JP2016126737A (ja) * 2014-12-29 2016-07-11 株式会社東芝 キャッシュメモリ装置及びプログラム
WO2016194979A1 (ja) * 2015-06-02 2016-12-08 日本電気株式会社 ストレージシステム、ストレージ制御装置、ストレージ制御方法及びプログラム
US9690658B2 (en) 2014-03-29 2017-06-27 Fujitsu Limited Distributed storage system and method
JP2017147003A (ja) * 2017-06-06 2017-08-24 東芝テック株式会社 コンテンツ再生装置及びプログラム
US9892798B2 (en) 2012-09-11 2018-02-13 Seagate Technology Llc Data protection for unexpected power loss
US10268415B2 (en) 2013-06-05 2019-04-23 Kabushiki Kaisha Toshiba Data storage device including a first storage unit and a second storage unit and data storage control method thereof
US10474569B2 (en) 2014-12-29 2019-11-12 Toshiba Memory Corporation Information processing device including nonvolatile cache memory and processor

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7702821B2 (en) 2005-09-15 2010-04-20 Eye-Fi, Inc. Content-aware digital media storage device and methods of using the same
US8140813B2 (en) * 2005-09-15 2012-03-20 Eye-Fi, Inc. Endless memory
KR101474344B1 (ko) * 2008-07-11 2014-12-18 시게이트 테크놀로지 엘엘씨 캐시 플러시 제어 방법 및 이를 이용한 데이터 저장 시스템
US9003159B2 (en) * 2009-10-05 2015-04-07 Marvell World Trade Ltd. Data caching in non-volatile memory
TWI399643B (zh) * 2009-12-31 2013-06-21 Phison Electronics Corp 快閃記憶體儲存系統及其控制器與資料寫入方法
US20110167197A1 (en) * 2010-01-05 2011-07-07 Mark Leinwander Nonvolatile Storage with Disparate Memory Types
CN102866861B (zh) * 2010-01-13 2015-11-18 群联电子股份有限公司 闪存储存系统、闪存控制器与数据写入方法
US8638010B2 (en) * 2010-02-17 2014-01-28 Integrated Device Technology, Inc. Systems, devices, and methods for providing backup power to a load
US20110276744A1 (en) * 2010-05-05 2011-11-10 Microsoft Corporation Flash memory cache including for use with persistent key-value store
USRE49818E1 (en) * 2010-05-13 2024-01-30 Kioxia Corporation Information processing method in a multi-level hierarchical memory system
US8688897B2 (en) * 2010-05-28 2014-04-01 International Business Machines Corporation Cache memory management in a flash cache architecture
US9146875B1 (en) * 2010-08-09 2015-09-29 Western Digital Technologies, Inc. Hybrid drive converting non-volatile semiconductor memory to read only based on life remaining
JP2012113789A (ja) * 2010-11-26 2012-06-14 Buffalo Inc ハードディスクドライブ装置およびその処理装置
US9110936B2 (en) 2010-12-28 2015-08-18 Microsoft Technology Licensing, Llc Using index partitioning and reconciliation for data deduplication
US9977732B1 (en) * 2011-01-04 2018-05-22 Seagate Technology Llc Selective nonvolatile data caching based on estimated resource usage
TWI494948B (zh) * 2011-01-31 2015-08-01 Phison Electronics Corp 用於非揮發性記憶體的資料寫入方法、控制器與儲存裝置
US20130019057A1 (en) * 2011-07-15 2013-01-17 Violin Memory, Inc. Flash disk array and controller
US20130212317A1 (en) * 2012-02-13 2013-08-15 Shai Traister Storage and Host Devices for Overlapping Storage Areas for a Hibernation File and Cached Data
CN104246719A (zh) 2012-05-01 2014-12-24 惠普发展公司,有限责任合伙企业 预先布置数据以提交到非易失性存储器
US9015378B2 (en) * 2013-05-15 2015-04-21 Google Inc. Determining sensor information in the background on a mobile device
CN104363389A (zh) * 2014-11-11 2015-02-18 广东中星电子有限公司 一种镜头暗角补偿方法和系统
CN104598389B (zh) * 2015-01-09 2017-11-14 上海小蚁科技有限公司 一种数据存储方法及装置
CN106326133B (zh) * 2015-06-29 2020-06-16 华为技术有限公司 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法
US20170139826A1 (en) * 2015-11-17 2017-05-18 Kabushiki Kaisha Toshiba Memory system, memory control device, and memory control method
CN105677240B (zh) 2015-12-30 2019-04-23 上海联影医疗科技有限公司 数据删除方法及系统
KR20180031412A (ko) * 2016-09-20 2018-03-28 삼성전자주식회사 메모리 컨트롤러의 동작 방법과, 이를 포함하는 장치들의 동작 방법들
WO2018102969A1 (zh) * 2016-12-05 2018-06-14 华为技术有限公司 NVMe over Fabric架构中数据读写命令的控制方法、设备和系统
EP3352087B1 (en) 2016-12-05 2020-09-16 Huawei Technologies Co., Ltd. Control method for data read/write command in nvme over fabric framework, device and system
US10289315B2 (en) * 2017-03-27 2019-05-14 Western Digital Technologies, Inc. Managing I/O operations of large data objects in a cache memory device by dividing into chunks
JP6873864B2 (ja) * 2017-08-09 2021-05-19 株式会社東芝 記憶制御装置、記憶装置および書き込み制御方法
KR20200088713A (ko) * 2019-01-15 2020-07-23 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US10762048B2 (en) * 2019-01-28 2020-09-01 International Business Machines Corporation Dynamically increasing available storage space in a storage volume

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4327585B2 (ja) * 2003-12-25 2009-09-09 株式会社東芝 記憶装置
JP4836647B2 (ja) * 2006-04-21 2011-12-14 株式会社東芝 不揮発性キャッシュメモリを用いる記憶装置とその制御方法

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013504142A (ja) * 2009-09-08 2013-02-04 フュージョン−アイオー・インコーポレーテッド ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法
JP2011090460A (ja) * 2009-10-21 2011-05-06 Toshiba Corp データ記憶装置およびデータ記憶装置における制御方法
JP2015515670A (ja) * 2012-03-07 2015-05-28 ネットアップ,インコーポレイテッド ハイブリッドストレージ集合体ブロック追跡
US9892798B2 (en) 2012-09-11 2018-02-13 Seagate Technology Llc Data protection for unexpected power loss
US9804784B2 (en) 2012-12-06 2017-10-31 Kabushiki Kaisha Toshiba Low-overhead storage of a hibernation file in a hybrid disk drive
JP2014115977A (ja) * 2012-12-06 2014-06-26 Toshiba Corp ハイブリッド・ディスク・ドライブにおけるハイバネーションファイルの低オーバーヘッドストレージ
JP2016506579A (ja) * 2012-12-26 2016-03-03 ウェスタン デジタル テクノロジーズ インコーポレーテッド データストレージシステム向けの優先度に基づくガベージコレクション
JP2014154166A (ja) * 2013-02-07 2014-08-25 Seagate Technology Llc データ記憶デバイスおよびそれを操作する方法
US10268415B2 (en) 2013-06-05 2019-04-23 Kabushiki Kaisha Toshiba Data storage device including a first storage unit and a second storage unit and data storage control method thereof
JP2015082145A (ja) * 2013-10-21 2015-04-27 東芝テック株式会社 コンテンツ再生装置及びプログラム
KR101548917B1 (ko) 2014-02-24 2015-09-02 에스케이텔레콤 주식회사 메모리제어장치 및 메모리제어장치의 동작 방법
US9690658B2 (en) 2014-03-29 2017-06-27 Fujitsu Limited Distributed storage system and method
JP2016126737A (ja) * 2014-12-29 2016-07-11 株式会社東芝 キャッシュメモリ装置及びプログラム
JP2018136970A (ja) * 2014-12-29 2018-08-30 東芝メモリ株式会社 情報処理装置
US10474569B2 (en) 2014-12-29 2019-11-12 Toshiba Memory Corporation Information processing device including nonvolatile cache memory and processor
WO2016194979A1 (ja) * 2015-06-02 2016-12-08 日本電気株式会社 ストレージシステム、ストレージ制御装置、ストレージ制御方法及びプログラム
JP2017147003A (ja) * 2017-06-06 2017-08-24 東芝テック株式会社 コンテンツ再生装置及びプログラム

Also Published As

Publication number Publication date
CN101499036A (zh) 2009-08-05
US20090193182A1 (en) 2009-07-30

Similar Documents

Publication Publication Date Title
JP2009181314A (ja) 情報記録装置およびその制御方法
US9804784B2 (en) Low-overhead storage of a hibernation file in a hybrid disk drive
KR101894625B1 (ko) 데이터 저장 시스템들에 대한 우선순위 기반 가비지 수집
KR101702201B1 (ko) 솔리드 스테이트 드라이브(ssd)에 대한 최적화된 컨텍스트 드롭
US10776153B2 (en) Information processing device and system capable of preventing loss of user data
US8706985B1 (en) System and method for optimizing garbage collection in data storage
US8327076B2 (en) Systems and methods of tiered caching
KR101086857B1 (ko) 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
TWI394164B (zh) 在快閃記憶體系統中可中斷的快取清空
JP5520747B2 (ja) キャッシュを搭載した情報装置及びコンピュータ読み取り可能な記憶媒体
US9367451B2 (en) Storage device management device and method for managing storage device
JP2013242908A (ja) ソリッドステートメモリ、それを含むコンピュータシステム及びその動作方法
US9208101B2 (en) Virtual NAND capacity extension in a hybrid drive
KR20130070178A (ko) 하이브리드 저장 장치 및 그것의 동작 방법
JP2009020986A (ja) ディスク・ドライブ装置及びディスク・ドライブ装置において不揮発性半導体メモリ領域上のデータを管理するテーブルを保存する方法
KR20100132244A (ko) 메모리 시스템 및 메모리 시스템 관리 방법
WO2012081731A1 (en) Semiconductor storage device
US20080025706A1 (en) Information recording apparatus and control method thereof
CN110362499B (zh) 电子机器及其控制方法、计算机系统及其控制方法以及主机的控制方法
JP2008046964A (ja) 情報記録装置及びその制御方法
US9189392B1 (en) Opportunistic defragmentation during garbage collection
Subramani et al. Garbage collection algorithms for nand flash memory devices--an overview
JP2009032305A (ja) 情報記録装置及びその制御方法
KR101191650B1 (ko) 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법
JP2012521032A (ja) Ssdコントローラおよびssdコントローラの動作方法

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20090511

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090519

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090929