JP2009087021A - ストレージ装置及びデータ重複排除方法 - Google Patents

ストレージ装置及びデータ重複排除方法 Download PDF

Info

Publication number
JP2009087021A
JP2009087021A JP2007255892A JP2007255892A JP2009087021A JP 2009087021 A JP2009087021 A JP 2009087021A JP 2007255892 A JP2007255892 A JP 2007255892A JP 2007255892 A JP2007255892 A JP 2007255892A JP 2009087021 A JP2009087021 A JP 2009087021A
Authority
JP
Japan
Prior art keywords
data
flash memory
storage area
physical unit
area
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.)
Granted
Application number
JP2007255892A
Other languages
English (en)
Other versions
JP5026213B2 (ja
Inventor
Katsuya Tanaka
勝也 田中
Takahito Nakamura
崇仁 中村
Makio Mizuno
真喜夫 水野
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007255892A priority Critical patent/JP5026213B2/ja
Priority to US12/010,602 priority patent/US7818495B2/en
Priority to EP08250569A priority patent/EP2042995B1/en
Priority to CN2008101089040A priority patent/CN101398783B/zh
Publication of JP2009087021A publication Critical patent/JP2009087021A/ja
Priority to US12/905,566 priority patent/US8156279B2/en
Priority to US13/442,678 priority patent/US8417882B2/en
Application granted granted Critical
Publication of JP5026213B2 publication Critical patent/JP5026213B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/0608Saving storage space on 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

【課題】記憶媒体としてのフラッシュメモリの長寿命化を図りながら、フラッシュメモリを有効活用し得るストレージ装置及びデータ重複排除方法を提案する。
【解決手段】フラッシュメモリチップが提供する記憶領域上に定義された物理的な単位領域内の所定の管理情報格納領域に、対応する1又は複数の論理的な単位領域の論理アドレスを格納するようにしてデータ重複排除処理を行うと共に、管理情報格納領域に格納された論理アドレスの延べ数である使用度と、当該物理的な単位領域に対応する有効な論理アドレスの数である重複度とを物理的な単位領域毎に管理し、使用度と重複度との差が既定値を超える物理的な単位領域に対して、当該物理的な単位領域を初期状態に戻す再生処理を実行するようにした。
【選択図】図13

Description

本発明は、ストレージ装置及びデータ重複排除方法に関し、特に、フラッシュメモリを記憶媒体とするストレージ装置に適用して好適なものである。
従来、ストレージ装置では、例えば磁気ディスクや光ディスク等のランダムアクセス可能な不揮発性記憶媒体がデータ記憶媒体として用いられている。現在主流のストレージ装置は、小型ディスクドライブを多数備える。
また、近年の半導体技術の進歩に伴って、一括消去可能な不揮発性半導体メモリが開発されている。このような不揮発性半導体メモリとしては、例えばフラッシュメモリが存在する。フラッシュメモリを記憶媒体とするストレージ装置では、小型ディスクドライブを多数備えるストレージ装置に比べて、寿命、省電力及びアクセス時間等に優れていると考えられている。
ここで、フラッシュメモリについて説明する。フラッシュメモリにおいて、ブロックはデータを一括消去する単位の記憶領域であり、ページはデータを読み書きする単位である。後述のように1つのブロック内に複数のページが設けられる。またフラッシュメモリは、特性上、データを直接書き換えることができない。つまり、フラッシュメモリは、記憶しているデータを書き換える場合、記憶している有効なデータを他のブロックに退避させる。次に、記憶しているデータをブロック単位で消去する。そして、データを消去したブロックにデータを書き込む。
具体的には、フラッシュメモリは、「1」を「0」に書き換えることはできるが、「0」を「1」に書き換えることができない。そこで、フラッシュメモリでは、データの書き換え時に、ブロックに記憶されたデータの全体を消去する。このように、フラッシュメモリにおけるデータの書き換えは、ブロックごとのデータの消去が伴う。しかし、フラッシュメモリの1ブロック分のデータ消去にかかる時間は、1ページ分のデータを書き込むのに要する時間と比べて約1桁長い。従って、1ページ分のデータの書換えのために毎回1ブロック分のデータ消去を行なうようにすると、フラッシュメモリのデータ書換え性能が悲観的に悪くなる。つまり記憶媒体としてフラッシュメモリを用いる場合、フラッシュメモリからデータを消去する時間を隠蔽できるアルゴリズムでデータを書き込むことが必須となる。
通常のフラッシュメモリに対するデータの書換え動作では、未使用領域への追記方式で行い、データを書き換えるごと毎にデータを消去することは行わない。しかし、データの書き換えが重なると、フラッシュメモリ内の未使用領域が少なくなるため、フラッシュメモリに書き込まれている不要なデータを消去して記憶領域を再利用可能な状態にする必要が生ずる。そこで、旧データを含むブロック内の有効なデータのみを未使用領域にコピーし、コピー元のブロックを消去して再利用可能な状態にするブロック再生処理(以下、これをリクラメーションと呼ぶ)が、フラッシュメモリのデータ高速書換えには必須となる。このリクラメーションは、無効データが多くなったブロックを対象に実行される。
一方、フラッシュメモリでは、データ消去の回数に制限がある。例えば、ブロック当たり10万回までの消去回数が保証されている。データの書換えが集中して消去回数が増大したブロックは、データの消去ができなくなり使用不能となる問題点がある。そのため、フラッシュメモリを記憶媒体とする場合、特定ブロックに対するデータ消去処理が集中しないような消去回数の平準化処理が必須となる。
以上述べたデータ消去時間の隠蔽とデータ消去回数の平準化のため、フラッシュメモリモジュール内ではデータ書込みの際に、論理アドレスから物理アドレスへのアドレス変換処理が行われる。フラッシュメモリモジュールは1つ以上のフラッシュメモリチップと該フラッシュメモリチップへのデータの読み書きを制御するフラッシュメモリコントローラから構成されている。このフラッシュメモリコントローラが、論理アドレスと物理アドレスの変換を行ない、さらにアドレス変換テーブルを保存するため、フラッシュメモリにおける物理的な単位領域である物理ブロック毎の所定の論理アドレス格納領域に、その物理ブロックに対応付けられた論理的な単位領域である論理ブロックの論理アドレスを格納している。
また、ストレージ装置の容量コスト低減のため、データ重複排除技術(deduplicationあるいはデータ重複除去技術とも呼ばれる)が注目されている。データ重複排除技術は、同一のデータが格納された複数の論理ブロックを当該データが格納された1つの物理ブロックに対応付ける技術であり、ストレージのデータ容量を節約することが可能となる(特許文献1参照)。データ重複排除技術によれば、データの書換え回数を低減することができるため、フラッシュメモリを記憶媒体とするストレージ装置にこのデータ重複排除技術を適用することによって、フラッシュメモリの長寿命化が期待できる。
米国特許6928526号
ところで、フラッシュメモリを記憶媒体とするストレージ装置にデータ重複排除技術を適用する場合、物理ブロック毎に当該物理ブロックに対応付けられた各論理ブロックの論理アドレスを保持する必要がある。
しかしながら、物理ブロック毎の論理アドレス格納領域は有限なため、多数の論理アドレスを該論理アドレス格納領域へ書き込むと、該論理アドレス格納領域の容量が不足する。また、フラッシュメモリはデータ上書きできない記憶媒体であるため、重複書込状態の物理ブロックに対するデータ更新が重なると、無効な論理アドレスが増加し、データ重複排除の効率が低下する。
従って、フラッシュメモリを記憶媒体とするストレージ装置にデータ重複排除技術を適用するに際しては、各物理ブロックの論理アドレス領域に格納されている無効な論理アドレスをタイミング良く消去することが必要となり、このようにすることができればフラッシュメモリの長寿命化を図りながら、データ重複排除の効率劣化を有効に防止して、フラッシュメモリの使用効率を向上させ得るものと考えられる。
一方、上述のようなデータ重複排除は、フラッシュメモリの記憶領域の管理単位ごとに行なわれる。例えばそれぞれ複数のフラッシュメモリチップを搭載したフラッシュメモリモジュールを複数搭載したストレージ装置では、かかるデータ重複排除処理がフラッシュメモリモジュール毎に独立して行なわれることになる。
しかしながら、データの重複はフラッシュメモリモジュール内だけでなくフラッシュメモリモジュール間でもデータが重複することがある。従って、このようなフラッシュメモリモジュール間でのデータ重複を排除することができれば、データ重複排除の効率をより向上させ得るものと考えられる。
本発明は、以上の点を考慮してなされたもので、第1に、記憶媒体としてのフラッシュメモリの長寿命化を図りながら、フラッシュメモリの使用効率を向上させ得るストレージ装置及びデータ重複排除方法、第2に、データ重複排除の効率をより向上させ得るストレージ装置及びデータ重複排除方法を提案しようとするものである。
かかる課題を解決するため、本発明においては、1又は複数のフラッシュメモリモジュールが搭載されたストレージ装置において、前記フラッシュメモリモジュールは、記憶領域を提供する少なくとも1つのフラッシュメモリチップと、前記フラッシュメモリチップに対するデータの読み書きを制御するコントローラとを備え、前記コントローラは、前記フラッシュメモリチップが提供する前記記憶領域上に定義された物理的な単位領域内の所定の管理情報格納領域に、対応する1又は複数の論理的な単位領域の論理アドレスを格納することにより、重複データを排除するデータ重複排除を行なうと共に、前記管理情報格納領域に格納された前記論理アドレスの延べ数である使用度と、当該物理的な単位領域に対応する有効な前記論理アドレスの数である重複度とを前記物理的な単位領域毎に管理し、前記使用度と前記重複度との差が既定値を超える前記物理的な単位領域に対して、当該物理的な単位領域を初期状態に戻す再生処理を実行することを特徴とする。
また本発明においては、記憶領域を提供する複数のフラッシュメモリモジュールと、前記複数のフラッシュメモリモジュールに対するデータの読み書きを制御するストレージコントローラとを有するストレージ装置において、前記ストレージコントローラは、データを所定単位で分割して前記複数のフラッシュメモリモジュールに読み書きすると共に、当該所定単位以上のデータサイズのデータに対して、前記複数のフラッシュメモリモジュールに跨る範囲で重複データを排除するデータ重複排除処理を行い、前記複数のフラッシュメモリモジュールは、前記所定単位以下のデータサイズのデータに対して、当該フラッシュメモリモジュール毎にデータ重複排除処理を行うことを特徴とする。
さらに本発明においては、それぞれ記憶領域を提供する少なくとも1つのフラッシュメモリチップを有する1又は複数のフラッシュメモリモジュールが搭載されたストレージ装置におけるデータの重複を排除するデータ重複排除方法において、前記フラッシュメモリチップが提供する前記記憶領域上に定義された物理的な単位領域内の所定の管理情報格納領域に、対応する1又は複数の論理的な単位領域の論理アドレスを格納するようにして前記データ重複排除処理を行うと共に、前記管理情報格納領域に格納された前記論理アドレスの延べ数である使用度と、当該物理的な単位領域に対応する有効な前記論理アドレスの数である重複度とを前記物理的な単位領域毎に管理する第1のステップと、前記使用度と前記重複度との差が既定値を超える前記物理的な単位領域に対して、当該物理的な単位領域を初期状態に戻す再生処理を実行する第2のステップとを備えることを特徴とする。
さらに本発明においては、記憶領域を提供する複数のフラッシュメモリモジュールと、前記複数のフラッシュメモリモジュールに対するデータの読み書きを制御するストレージコントローラとを有するストレージ装置におけるデータの重複を排除するデータ重複排除方法において、前記ストレージコントローラが、データを所定単位で分割して前記複数のフラッシュメモリモジュールに読み書きすると共に、当該所定単位以上のデータサイズのデータに対して、前記複数のフラッシュメモリモジュールに跨る範囲で重複データを排除するデータ重複排除処理を行う第1のステップと、前記複数のフラッシュメモリモジュールが、前記所定単位以下のデータサイズのデータに対して、当該フラッシュメモリモジュール毎にデータ重複排除処理を行う第2のステップとを備えることを特徴とする。
本発明によれば、記憶媒体としてのフラッシュメモリの長寿命化を図りながら、フラッシュメモリを有効活用することができる。また本発明によれば、データ重複排除の効率をより向上させることができる。
以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
図1は、第1の実施の形態によるストレージ装置1の構成を示す。このストレージ装置1は、それぞれ記憶領域を提供する複数のフラッシュメモリモジュール3A〜3Pと、これらフラッシュメモリモジュール3A〜3Pに対するデータの読み書きを制御するストレージコントローラ2から構成される。
ストレージコントローラ2は、チャネルアダプタ4A,4B、キャッシュメモリ5A,5B、ストレージアダプタ6A,B6及び相互接続網7A,7Bを備える。なお、図1においてはチャネルアダプタ4A,4B、キャッシュメモリ5A,5B及びストレージアダプタ6A,6Bが2つずつ設けられた場合について示しているが、これらが1つずつ又は3つ以上あっても良い。
相互接続網7A,7Bは、例えばスイッチ等から構成され、チャネルアダプタ4A、キャッシュメモリ5A及びストレージアダプタ6Aを相互に接続すると共に、チャネルアダプタ4B、キャッシュメモリ5B及びストレージアダプタ6Bを相互に接続する。
チャネルアダプタ4Aは、チャネル8AA〜8DAを介して図示しない外部の上位装置に接続されている。同様に、チャネルアダプタ4Bは、チャネル8AB〜8DBを介して外部の上位装置に接続されている。なお、上位装置は、本実施の形態のストレージ装置1にデータを読み書きする計算機である。
キャッシュメモリ5A,5Bは、チャネルアダプタ4A,4B及びストレージアダプタ5A,5Bから受信したデータを一時的に記憶するために用いられる。
ストレージアダプタ6Aは、チャネル9AA〜9DAを介して各フラッシュメモリモジュール3A〜3Pとそれぞれ接続されており、対応するチャネル9AA〜9DAを介して所望のフラッシュメモリモジュール3A〜3Pにアクセスし得るようになされている。具体的に、ストレージアダプタ6Aは、チャネル9AAを介してフラッシュメモリモジュール3A〜3Dに接続され、チャネル9BAを介してフラッシュメモリモジュール3E〜3Hに接続されている。また、ストレージアダプタ6Aは、チャネル9CAを介してフラッシュメモリモジュール3I〜3Lに接続され、チャネル9DAを介してフラッシュメモリモジュール3M〜3Pに接続されている。
同様に、ストレージアダプタ6Bは、チャネル9AB〜9DBを介して各フラッシュメモリモジュール3A〜3Pとそれぞれ接続されており、対応するチャネル9AB〜9DBを介して所望のフラッシュメモリモジュール3A〜3Pにアクセスし得るようになされている。具体的に、ストレージアダプタ6Bは、チャネル9ABを介してフラッシュメモリモジュール3A〜3Dに接続され、チャネル9BBを介してフラッシュメモリモジュール3E〜3Hに接続されている。また、ストレージアダプタ6Bは、チャネル9CBを介してフラッシュメモリモジュール3I〜3Lに接続され、チャネル9DBを介してフラッシュメモリモジュール3M〜3Pに接続されている。
チャネルアダプタ4A,4B及びストレージアダプタ6A,6Bは、保守端末10に接続されている。保守端末10は、CPU(Central Processing Unit)やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えばノート型のパーソナルコンピュータから構成される。保守端末10は、ストレージ装置1の管理者から入力された設定情報を、チャネルアダプタ4A,4B及び/又はストレージアダプタ6A,6Bに送信する。
なお、チャネルアダプタ4A及びストレージアダプタ6Aに代えて、これらチャネルアダプタ4A及びストレージアダプタ6Aの機能を備えた一つのアダプタを設けるようにしても良い。
11A〜11Dは、RAID(Redundant Arrays of Inexpensive Disks)グループを示す。例えばRAIDグループ11Aは、フラッシュメモリモジュール3A,3E,3I,3Mからなる。RAIDグループ11Aに属するフラッシュメモリモジュール3A,3E,3I,3Mの1つ、例えばフラッシュメモリモジュール3Aでエラーが発生してデータを読み出せなくなった場合、同じRAIDグループ11Aに属する他のフラッシュメモリモジュール3E,3I,3Mに格納された関連するデータに基づいて、かかるフラッシュメモリモジュール3Aに格納されたデータを復元することができる。
フラッシュメモリモジュール3A〜3Pはネットワーク12Aを介してストレージアダプタ6Aと接続されると共に、ネットワーク12Bを介してストレージアダプタ6Bと接続されている。ストレージコントローラ2及びフラッシュメモリモジュール3A〜3Pは、ネットワーク12A,12Bを介してデータ重複排除制御のための情報等を相互に通信する。
図2は、チャネルアダプタ4A,4Bの構成を示す。この図2に示すように、チャネルアダプタ4A,4Bは、ホストチャネルインターフェース21、キャッシュメモリインターフェース22、ネットワークインターフェース23、プロセッサ24、ローカルメモリ25及びプロセッサ周辺制御部26を備えて構成される。
ホストチャネルインターフェース21は、チャネル8AA〜8DA,8AB〜8DBを介して上位装置と通信を行なうためのインターフェースであり、チャネル8AA〜8DA,8AB〜8DB上のデータ転送プロトコルと、ストレージコントローラ2の内部のデータ転送プロトコルとを相互に変換する。またキャッシュメモリインターフェース22は、相互結合網7A,7Bに対するインターフェースであり、ネットワークインターフェース23は、保守端末10と通信を行なうためのインターフェースである。なお、ホストチャネルインターフェース21とキャッシュメモリインターフェース22とは、信号線27を介して接続されている。
プロセッサ24は、そのチャネルアダプタ4A,4B全体の動作制御を司るプロセッサであり、ローカルメモリ25に格納されたプログラムに基づいて各種の制御処理を行う。例えば、プロセッサ24は、上位装置と相互結合網7A,7Bとの間のデータ転送を制御する。
ローカルメモリ25は、プロセッサ24によって実行されるプログラム及びテーブルを記憶する。このテーブルは、管理者によって設定又は変更される。この際、管理者は、テーブルの設定又はテーブルの変更に関する情報を保守端末10に入力する。保守端末10は、入力された情報を、ネットワークインターフェース23を介してプロセッサ24に送信する。プロセッサ24は、受信した情報に基づいて、テーブルを作成又は変更し、作成又は変更したテーブルをローカルメモリ25に格納する。
プロセッサ周辺制御部26は、ホストチャネルインターフェース21、キャッシュメモリインターフェース22、ネットワークインターフェース23、プロセッサ24及びローカルメモリ25間のデータ転送を制御する。プロセッサ周辺制御部26は、例えば、チップセット等から構成される。
図3は、ストレージアダプタ6A,6Bの構成を示す。この図3に示すように、ストレージアダプタ6A,6Bは、キャッシュメモリインターフェース31、ストレージチャネルインターフェース32、ネットワークインターフェース33、プロセッサ34、ローカルメモリ35及びプロセッサ周辺制御部36を備えて構成される。
キャッシュメモリインターフェース31は、そのストレージアダプタ6A,6Bを相互結合網7A,7Bに接続するためのインターフェースである。またストレージチャネルインターフェース32は、そのストレージアダプタ6A,6Bをチャネル9AA〜9DA,9AB〜9DBに接続するためのインターフェースであり、チャネル9AA〜9DA,9AB〜9DB上のデータ転送プロトコルと、ストレージコントローラ2の内部のデータ転送プロトコルとを相互に変換する。なお、キャッシュメモリインターフェース31とストレージチャネルインターフェース32とは、信号線37を介して接続されている。
ネットワークインターフェース33は、そのストレージアダプタ6A,6Bを保守端末10とフラッシュメモリモジュール3A〜3Pとに接続するためのインターフェースである。
プロセッサ34は、そのストレージアダプタ6A,6B全体の動作制御を司るプロセッサであり、ローカルメモリ35に格納されたプログラムに基づいて各種の制御処理を行う。例えば、プロセッサ34は、各フラッシュメモリモジュール3A〜3Pと相互結合網7A,7Bとの間のデータ転送を制御する。
ローカルメモリ35は、プロセッサ34によって実行されるプログラム及びテーブルを記憶する。このテーブルは、管理者によって設定又は変更される。この際、管理者は、テーブルの設定又はテーブルの変更に関する情報を保守端末10に入力する。保守端末10は、入力された情報を、ネットワークインターフェース33を介してプロセッサ34に送信する。プロセッサ34は、受信した情報に基づいて、テーブルを作成又は変更し、作成又は変更したテーブルをローカルメモリ35に格納する。
プロセッサ周辺制御部36は、キャッシュメモリインターフェース31、ストレージチャネルインターフェース32、ネットワークインターフェース33、プロセッサ34及びローカルメモリ35間のデータ転送を制御する。プロセッサ周辺制御部36は、例えばチップセット等から構成される。
図4は、フラッシュメモリモジュール3A〜3Pの構成を示す。フラッシュメモリモジュール3A〜3Pは、フラッシュメモリコントローラ41及びフラッシュメモリ42を備える。フラッシュメモリ42はデータを記憶するための不揮発性記憶媒体であり、フラッシュメモリコントローラ41は、フラッシュメモリ42に対してデータを読み書きし又はフラッシュメモリ42に格納されたデータを消去するための制御処理を行う。
このフラッシュメモリコントローラ41は、プロセッサ50、インターフェース部51、内部バス52、RAM(Random Access Memory)53、ROM(Read Only Memory)54、ネットワークインターフェース55、フラッシュメモリインターフェース部56及びデータ転送部57を備えて構成される。
フラッシュメモリ42は、複数のフラッシュメモリチップ58から構成される。フラッシュメモリチップ58が提供する記憶領域には、複数の物理ブロック59が設定され、この物理ブロック59にデータが格納される。ブロック59は、メモリコントローラ41がデータを消去する単位である。
インターフェース部51は、チャネル9AA〜9DAを介してストレージコントローラ2内のストレージアダプタ6Aに接続されると共に、チャネル9AB〜9DBを介してストレージコントローラ2内のストレージアダプタ6Bに接続されている。そしてインターフェース部51は、これらのチャネル9AA〜9DA,9AB〜9DBを介してストレージアダプタ6A及びストレージアダプタ6Bからのデータや命令(例えばSCSIコマンド)を送受信する。
例えばインターフェース部51は、チャネル9AA〜9DA,9AB〜9DBを介してストレージアダプタ6Aやストレージアダプタ6Bから送信されるデータを受信し、受信したデータをメモリ53に格納する。また、インターフェース部51は、メモリ53に格納されているデータを、チャネル9AA〜9DA,9AB〜9DBを介してストレージアダプタ6Aやストレージアダプタ6Bに送信する。
RAM53は、データを高速に読み書き可能なSRAM(Static RAM)又はDRAM(Dynamic RAM)から構成され、インターフェース部51が送受信するデータを一時的に記憶するために用いられる。また、ROM54は不揮発性メモリから構成され、プロセッサ50が実行するプログラムが格納される。このプログラムは、プロセッサ50が実行可能となるように、ストレージ装置起動時にROM54からRAM53へコピーされる。
また、RAM53には、プロセッサ50によって参照されるテーブルも格納される。このテーブルは、例えば、フラッシュメモリ42の論理アドレスと物理アドレスとの変換テーブルである。論理アドレスは、フラッシュメモリモジュール3A〜3P外から(例えばストレージアダプタ6A,6Bから)、フラッシュメモリ42にアクセスするためのアドレスであり、物理アドレスは、フラッシュメモリコントローラ41が、フラッシュメモリ42にアクセスするためのアドレスである。
内部バス52は、プロセッサ50、インターフェース部51、RAM53、ROM54、ネットワークインターフェース55、データ転送部57及びフラッシュメモリインターフェース部56を相互に接続するもので、データの転送路として機能する。
ネットワークインターフェース55は、フラッシュメモリコントローラ41とストレージコントローラ2間の通信を制御する。ネットワークインターフェース55は、ネットワーク12A,12Bを介してストレージアダプタ6A,6Bと接続されている。
フラッシュメモリインターフェース部56は、フラッシュメモリコントローラ41とフラッシュメモリ42とを接続するインターフェースである。
データ転送部57は、プロセッサ50の命令により、インターフェース部51とRAM53及びフラッシュメモリ42間等におけるデータ転送を制御する。なお、データ転送部57の機能をプロセッサ50が実行する場合は、データ転送部57を省略することができる。
プロセッサ50は、フラッシュメモリモジュール3A〜3P全体の動作制御を司るもので、RAM53にコピーされたプログラムに基づいて各種の制御処理を行う。例えば、プロセッサ50は、RAM53にコピーされたフラッシュメモリ42の論理アドレスと物理アドレスとの変換テーブルを参照して、フラッシュメモリ42にデータを読み書きする。また、プロセッサ50は、フラッシュメモリモジュール3A〜3P内のブロック59に対して、リクラメーション処理(ブロック再生処理)及びウエアレベリング処理(消去回数平準化処理)を行う。
図5は、フラッシュメモリチップの記憶領域に設定されるブロック59の構造を示している。この図5に示すように、ブロック59は、数十個(例えば64個)程度のページ60から構成される。
ページ60は、上述のようにフラッシュメモリコントローラ41がフラッシュメモリチップ58にデータを読み書きする単位である。例えば、NAND(Not AND)型フラッシュメモリの場合、フラッシュメモリコントローラ41は、20〜30μs弱/ページの速度でデータを読み出し、0.2〜0.3ms/ページの速度でデータを書き込む。また、フラッシュメモリコントローラ41は、2〜4ms/ブロックの速度でデータを消去する。
ページ60は、通常のデータを格納するための領域であるデータ部61と、そのページ60の管理情報及びエラー訂正情報を格納するための領域である冗長部62とから構成される。例えば、1ページ当たりの容量は2112バイトであり、そのうちの2048バイトがデータ部、64バイトが冗長部62に設定される。
管理情報は、オフセットアドレス及びページステータスを含む。このオフセットアドレスは、対応するブロック59内におけるそのページ60の相対的なアドレスである。またページステータスは、そのページ60が有効ページ、無効ページ、未使用ページ又は処理中のページのいずれであるかを表す。
エラー訂正情報は、そのページ60のエラーを検出及び訂正するための情報であり、例えばハミングコードが用いられる。このエラー訂正情報は、例えば、プロセッサ50がRAM53又はROM54に格納されたプログラムを実行することにより生成される。
冗長部62は、通常、フラッシュメモリコントローラ41のみがアクセスできる。従ってストレージアダプタ6A,6Bからは、データ部61のみがアクセス可能な領域である。換言すれば、論理アドレスはデータ部61のメモリ空間にマッピングされると言うことができる。
ブロック59は、所定のメモリ位置に、管理情報格納領域63を有する。この管理情報格納領域63は、ブロック59内の物理アドレスに対応付けられた論理アドレス等の管理情報を格納する領域である。従って、ブロック59に属するページ60のデータ部61の合計から管理情報格納領域63を除いた容量が、ストレージコントローラ2がフラッシュメモリモジュール3A〜3Pの1ブロック当たりに格納可能なデータ容量となる。
なお、本実施の形態においては、説明の簡単のため、フラッシュメモリモジュール3A〜3Pにデータの読み書きするアクセス単位が、フラッシュメモリ42の1ブロック当たりに格納可能な容量であるものとする。つまり、ストレージコントローラ2はフラッシュメモリモジュール3A〜3Pに対して、フラッシュメモリ42内のブロック59へのデータ格納容量単位でデータを読み書きする。
図6は、管理情報格納領域63の構造を示す。この図6からも明らかなように、管理情報格納領域63は、ブロック管理情報格納領域64、ハッシュ値格納領域65及び論理アドレス格納領域66から構成される。
このうちブロック管理情報格納領域64には、そのブロック59の現在までの消去回数や、ブロック59のステータス(有効、無効、未使用又は書き込み済み)を示す情報が格納される。
またハッシュ値格納領域65には、そのブロック59に書き込まれたデータを識別する情報であるハッシュ値が格納される。このハッシュ値は、ストレージコントローラ2により生成するようにしても、またフラッシュメモリモジュール3A〜3P内のプロセッサ50により生成するようにしても良い。
ハッシュ値をストレージコントローラ2により生成する場合には、ストレージコントローラ2が書き込みデータと共に、生成したハッシュ値をフラッシュメモリモジュール3A〜3Pへ送信する。この方法によれば、プロセッサ50の負荷を低減させ得るメリットがある。また、フラッシュメモリモジュール3A〜3P内でハッシュ値を生成する場合には、例えば、フラッシュメモリモジュール3A〜3P内のエラー訂正情報を生成する何らかの手段を用いてハッシュ値を生成するようにする。この方法によれば、ストレージコントローラ2及びフラッシュメモリモジュール3A〜3P間のチャネル負荷を低減させ得るメリットがある。
さらに論理アドレス格納領域66には、そのブロック59と対応付けられた論理ブロックの論理アドレスが格納される。この場合において、本実施の形態のストレージ装置1には、データ重複排除機能が搭載されており、このデータ重複排除機能により1つの物理ブロック(ブロック59)に最大8個までの論理ブロックを対応付けることができる。そこで、本実施の形態の場合、論理アドレス格納領域66には、そのブロック59に対応付けられた論理ブロックの論理アドレス(LBA00〜LBA07)を最大8個まで格納し得るようになされている。
なお、論理アドレス格納領域66に格納する情報は、論理ブロックを特定できる情報であるならば論理アドレス以外の情報でも良い。論理アドレス格納領域66に格納された最大8個の論理アドレスのうちの有効な論理アドレス数を重複度、論理アドレス格納領域66に格納された論理アドレスの延べ数を使用度と定義する。また、論理アドレス格納領域66に格納できる論理アドレス数は8個に限るものではなく、幾つでも良い。ただし、あまり大きな容量を論理アドレス格納領域66に割り当てると、1つのブロック59に格納できるデータ容量が減少するため、格納する論理アドレス数を決定するに際しては管理情報格納領域63のオーバーヘッドを考慮する必要がある。
次に、図7及び図8を用いて、論理アドレスと物理アドレスの対応及び使用度と重複度について、具体的に説明する。
図7は、物理アドレス空間70の物理ブロック59A,59Bと論理アドレス空間71の論理ブロック72A〜72Cとの対応関係を示す。第1の物理ブロック59Aは、物理アドレス“aaaa”から始まるブロックであり、データ“A”が書き込まれている。この第1の物理ブロック59Aには第1〜第3の論理ブロック72A〜72Bが対応付けられており、当該第1の物理ブロック59Aの論理アドレス格納領域63Aにこれら第1〜第3の論理ブロック72A〜72Cの論理アドレス(“xxxx”、“yyyy”、“zzzz”)が格納されているものとする。
この場合、第1の物理ブロック59Aの論理アドレス格納領域63Aに格納された3個の論理アドレスは全て有効であるため、第1の物理ブロック59Aの使用度及び重複度はいずれも“3”となる。
なお、物理アドレス空間70において、物理アドレス“bbbb”から始まる第2の物理ブロック59Bは未使用ブロックであり、その論理アドレス格納領域63Bに論理アドレスは格納されていないものとする。
一方、この状態から論理アドレス空間71の第3の論理ブロック72Cに格納されているデータを“B”に書き換える場合、図8に示すように、物理アドレス空間70において、未使用であった第2の物理ブロック59Bにデータ“B”が書き込まれ、当該第2の物理ブロック59Bの論理アドレス格納領域63Bに論理アドレス“zzzz”が書き込まれる(703)。
そして、第3の論理ブロック72Cの元のデータである“A”が格納されていた第1の物理ブロック59Aの論理アドレス格納領域66(図6)における第3の論理ブロック72Cの論理アドレスが“0”で上書きされ、無効化される。この第3の論理ブロック72Cのデータ書換えの結果、第1の物理ブロック59Aの使用度は“3”、重複度は“2”となる。
このように、重複度はデータ書換えによって増減するが、使用度は増加するのみで減少しない。使用度が論理アドレス格納領域66の格納可能な論理アドレス数の最大値(例えば、図6では8個)に達した場合は、その物理ブロック59に対してリクラメーションを実行し、論理アドレス格納領域66を未使用にする必要がある。
図9〜図11は、図4について上述したフラッシュメモリモジュール3A〜3PのRAM53内に保存され、プロセッサ50が参照する各種管理テーブルを示す。図9は、アドレス変換テーブル80、図10はハッシュ値管理テーブル82、図11は物理ブロック管理テーブル84をそれぞれ示している。
アドレス変換テーブル80は、上位装置が認識する論理アドレスを、その論理アドレスに対応付けられた物理アドレスに変換するために用いられるテーブルであり、図9に示すように、「論理ブロックアドレス」欄81A、「物理ブロックアドレス」欄81B及び「書込み済みフラグ」欄81Cから構成される。
「論理ブロックアドレス」欄81Aには、上位装置が認識する論理アドレスのうちのそのフラッシュメモリモジュール3A〜3Pが提供する記憶領域と対応付けられた論理ブロックの論理アドレスが格納され、「物理ブロックアドレス」欄81Bには、その論理アドレスと対応付けられた物理ブロックの物理アドレスが格納される。
また「書込み済みフラグ」欄81Cには、その物理ブロックに対して既にデータの書き込みが行なわれたか否かを表す書込み済フラグが格納される。書込み済フラグは、対応する論理アドレス空間が未使用かあるいは書込み済みを示すフラグであり、例えば、書込み済みの場合は“1”、未使用の場合“0”が「書込み済みフラグ」欄81Cに格納される。
ハッシュ値管理テーブル82は、そのフラッシュメモリモジュール3A〜3P内の物理ブロックに書き込まれたデータのハッシュ値等を管理するためのテーブルであり、図10に示すように、「ハッシュ値」欄83A、「物理ブロックアドレス」欄83B、「制御フラグ」欄83C及び「論理アドレス」欄83Dから構成される。
このうち「ハッシュ値」欄83Aには、対応するデータのハッシュ値が格納され、「物理ブロックアドレス」欄83Bには、そのフラッシュメモリモジュール3A〜3Pにおけるそのデータが格納された物理ブロックの物理アドレスが格納される。また「制御フラグ」欄83Cには、後述のようにそのエントリについて処理を行ったか否かを判定するための制御フラグが格納され、「論理ブロックアドレス」欄83Dには、かかるデータが格納された物理ブロックに対応付けられた論理ブロックの論理アドレスが格納される。
なお、ハッシュ値管理テーブル82において、同一のハッシュ値が複数の物理ブロックの物理アドレスに対応する場合がある。またハッシュ値毎に複数の論理ブロックの論理アドレスが格納される場合がある。
物理ブロック管理テーブル84は、そのフラッシュメモリモジュール3A〜3P内の物理ブロックごとの使用度及び重複度等を管理するためのテーブルであり、「物理ブロックアドレス」欄85A、「使用度」欄85B、「重複度」欄85C及び「論理アドレス格納領域の空き」欄85Dから構成される。
そして「物理ブロックアドレス」欄85Aには、そのフラッシュメモリモジュール3A〜3P内の各物理ブロックの物理アドレスが格納され、「使用度」欄85B及び「重複度」欄85Cには、その物理ブロックの現在の使用度及び重複度がそれぞれ格納される。また「論理アドレス格納領域の空き」欄に85Dは、その物理ブロックの論理アドレス格納領域66(図6)に格納可能な論理アドレスの残数が格納される。この残数は、例えば図6に示すように論理アドレス格納領域66に格納可能な論理アドレス数が最大8個の場合、“8”と使用度との差となる。
図12は、本実施の形態のストレージ装置1におけるデータ書込み処理に関するフラッシュメモリモジュール3A〜3Pのプロセッサ50(図4)の処理内容を示す。本実施の形態においては、フラッシュメモリチップ58へのデータの書込みとデータ重複排除処理とを同時に実行する点を特徴の1つとしている。
すなわちプロセッサ50は、ストレージコントローラ2から書込みコマンド及び書込み対象のデータ(以下、これを書込みデータと呼ぶ)を受信すると、この図12に示すデータ書込み処理を開始し、その書込みデータに対するハッシュ値をハッシュ値管理テーブル82(図10)上で検索する(SP1)。
この場合において、上述のように書込みデータのハッシュ値はストレージコントローラ2(図1)側及びフラッシュメモリコントローラ41(図4)側のいずれで生成しても良く、例えば、かかるハッシュ値をストレージコントローラ2側で生成する場合には、プロセッサ50は、ストレージコントローラ2から書込みデータと共にハッシュ値を受信し、このハッシュ値をハッシュ値管理テーブル82上で検索する。また、かかるハッシュ値をフラッシュメモリモジュール3A〜3P側内で生成する場合には、その書込みデータからハッシュ値を計算し、このハッシュ値をハッシュ値管理テーブル82上で検索する。
続いてプロセッサ50は、ステップSP1の検索結果に基づいて、かかる書込みデータに対するハッシュ値と一致するハッシュ値がハッシュ値管理テーブル82に登録されているか否かを判断する(SP2)。
この判断において否定結果を得ることは、その書込みデータと同一と思われるデータが未だ自フラッシュメモリモジュール内に書き込まれていないことを意味する。従って、この場合にはデータ重複排除処理を行う必要がない。かくして、このときプロセッサ50は、アドレス変換テーブル80における書込みデータの書込み先として指定された論理ブロックに対応するエントリの書込み済みフラグが「1」であるか否かを判断する(SP3)。
プロセッサ50は、この判断において否定結果を得ると、アドレス変換テーブル80を参照して、書込みデータを書込み先として指定された論理ブロックと対応付けられた物理ブロックに書き込む。またプロセッサ50は、これと併せてかかる論理ブロックの論理アドレスや、当該書込みデータのハッシュ値などの必要な情報をその物理ブロックの管理情報格納領域63(図5)に書き込み(SP4)、この後ステップSP8に進む。
これに対してプロセッサ50は、かかる判断において肯定結果を得ると、物理ブロック管理テーブル84を参照して、その論理ブロックに未使用の物理ブロックを割り当て、書込みデータをその物理ブロックに書き込む(SP5)。
続いてプロセッサ50は、それまで書込みデータの書込み先として指定された論理ブロックに対応付けられていた物理ブロックの管理情報格納領域63(図5)の論理アドレス格納領域66(図6)に格納されている当該論理ブロックの論理アドレスを“0”で上書きすることにより無効化し(SP6)、さらに物理ブロック管理テーブル84のその物理ブロックに対応するエントリの重複度を“1”だけ減らす(SP7)。
次いでプロセッサ50は、書込みデータの書込み先として指定された論理ブロックと、ステップSP5において書込みデータを書き込んだ物理ブロックとを対応付けたエントリをアドレス変換テーブル80に登録すると共に、そのエントリにおける書込み済みフラグを“1”に設定する(SP8)。
その後、プロセッサ50は、ステップSP5において未使用の物理ブロックに書き込んだ書込みデータのハッシュ値、その物理ブロックの物理アドレス、その物理ブロックに対応付けられている論理ブロックの論理アドレス等の情報からなる新たなエントリをハッシュ値管理テーブル82に登録する。またプロセッサ50は、物理ブロック管理テーブル84におけるその物理ブロックに対応するエントリの論理アドレス格納領域66の空き数として「7」を設定すると共に、当該エントリの使用度及び重複度をそれぞれ「1」に設定し(SP9)、この後このデータ書込み処理を終了する。
これに対してプロセッサ50は、ステップSP2の判断において肯定結果を得た場合、データ重複排除処理を開始し、まず、書込みデータの書込み先の論理ブロックを対応付ける物理ブロックとして、ステップSP2において検出したハッシュ値が同じ既書込みデータが格納された物理ブロックを選択する。この際、プロセッサ50は、かかるハッシュ値がハッシュ値管理テーブル82上において複数の物理ブロックに対応している場合において、書込みデータの書込み先論理ブロックに対応する物理ブロックが有る場合は、書込み先論理ブロックに対応する物理ブロックを選択し、書込み先論理ブロックに対応する物理ブロックが無い場合は、物理ブロック管理テーブル84を参照して、当該複数の物理ブロックの中から使用度が最小の物理ブロックを選択する(SP10)。
続いてプロセッサ50は、そのとき書き込み予定の書込みデータと、ステップSP10において選択した物理ブロックに書き込まれている既書込みデータとを1ビットずつ比較することにより、これらが完全に一致するか否かを判断する(SP11)。なお、ハッシュ値の一致、不一致のみでデータの一致、不一致が判断できる場合は、このステップSP11を省略しても良い。
そしてプロセッサ50は、この判断において否定結果を得るとステップSP3に進み、これに対して肯定結果を得ると、物理ブロック管理テーブル84を参照して、かかる既書込みデータが書き込まれた物理ブロックの使用度が、物理ブロックの論理アドレス格納領域88に格納可能な論理アドレスの最大数n(ここでは“8”)未満であるか否かを判断する(SP12)。
プロセッサ50は、この判断において否定結果を得るとステップSP3に進み、これに対して肯定結果を得ると、当該物理ブロックの管理情報格納領域63(図5)の論理アドレス格納領域66(図6)に、当該書込みデータの書込み先として指定された論理ブロックの論理アドレスが格納されているか否かを判断する(SP13)。
この判断において肯定結果を得ることは、当該物理ブロックに既に当該書込みデータと同じ書込みデータが書き込まれていることを意味する。かくして、このときプロセッサ50は、書込みデータをその物理ブロックに書き込むことなく、このデータ書込み処理を終了する。
また、ステップSP13の判断において否定結果を得ると、プロセッサ50は、データ重複排除のため、かかるステップSP10において選択した物理ブロックの管理情報格納領域63の論理アドレス格納領域66に当該書込みデータの書込み先として指定された論理ブロックの論理アドレスを追記すると共に、これに応じてハッシュ値管理テーブル82を更新する(SP14)。
またプロセッサ50は、書込みデータの書込み先として指定された論理ブロックの論理アドレス及びステップSP10で選択した物理ブロックの物理アドレスのエントリをアドレス変換テーブル80に登録すると共に、そのエントリにおける書込み済みフラグの値を“1”に設定する(SP15)。
さらにプロセッサ50は、ステップSP10で選択した物理ブロックと対応する物理ブロック管理テーブル84上のエントリにおける論理アドレス格納領域66の空き数を1減らすと共に、当該エントリの使用度及び重複度をそれぞれ1ずつ増やし(SP16)、この後このデータ書込み処理を終了する。
一方、図13は、かかるデータ書込み処理とは別個に行われるリクラメーション処理に関するフラッシュメモリモジュール3A〜3Pのプロセッサ50の処理内容を示す。このリクラメーション処理は、物理ブロックの使用度と重複度の差によって当該物理ブロックに対するリクラメーションを実行するか否かを判定する点を特徴とする。
そしてストレージコントローラ2はアイドル状態のフラッシュメモリモジュール3A〜3Pを検出すると、そのフラッシュメモリモジュール3A〜3Pにリクラメーションの実行命令を発行し、この実行命令を受信したフラッシュメモリモジュール3A〜3Pのプロセッサ50が、この図13に示すリクラメーション処理をRAM53に格納された対応する制御プログラムに従って実行する。
すなわちプロセッサ50は、ストレージコントローラ2からリクラメーションの実行命令が与えられると、リクラメーション処理を開始し、まず、物理ブロック管理テーブル84を参照して、最も小さい物理アドレスに物理アドレスポインタをセットする(SP20)。
続いてプロセッサ50は、物理ブロック管理テーブル84を参照して、そのとき物理ブロックポインタが指し示す物理ブロックの使用度が“0”よりも大きく(その物理ブロックが未使用でなく)、かつその物理ブロックの使用度と重複度との差分の値が予め設定された閾値よりも大きい(その物理ブロックの論理アドレス格納領域66に格納された論理アドレスのうちの無効化された論理アドレス(“0”が上書きされた論理アドレス)の数がかかる閾値よりも多い)か否かを判断する(SP21)。
プロセッサ50は、この判断において否定結果を得るとステップSP27に進み、これに対して肯定結果を得ると、その物理ブロックの重複度が“0”であるか否かを判断する(SP22)。
この判断において肯定結果を得ることは、その物理ブロックの論理アドレス格納領域66に有効な論理アドレス(“0”が上書きされていない論理アドレス)が存在しない、つまり、その物理ブロックに格納されていた書込みデータは既に更新されて他の物理ブロックに格納されていることを意味する。かくして、このときプロセッサ50は、ステップSP24に進む。
これに対して、かかる判断において否定結果を得ることは、その物理ブロックの論理アドレス格納領域66に有効な論理アドレスが存在する(その物理ブロックに格納されているデータは未だ更新されていない有効なデータである)ことを意味する。かくして、このときプロセッサ50は、その物理ブロックに格納されている書込みデータを未使用の物理ブロックにコピーする。プロセッサ50は、このコピー先物理ブロックとして、消去回数が少ない未使用物理ブロックを選択する。またこのときプロセッサ50は、コピー元の物理ブロックの論理アドレス格納領域66に格納されていた論理アドレスのうちの有効な論理アドレスのみをコピー先の物理ブロックの論理アドレス格納領域66にコピーする(SP23)。
続いてプロセッサ50は、アドレス変換テーブル80の対応するエントリの物理アドレスをコピー先の物理ブロックの物理アドレスに書き換えると共に、ハッシュ値管理テーブル82の対応するエントリにおける物理アドレスをコピー先の物理ブロックの物理アドレスに書き換え(SP24)、この後、かかるコピー元の物理ブロックから当該物理ブロックに書き込まれた書込みデータを消去する(SP25)。
次いでプロセッサ50は、物理ブロック管理テーブル84におけるコピー元の物理ブロックのエントリを初期化する(SP26)。具体的には、プロセッサ50は、物理ブロック管理テーブル84におけるコピー元の物理ブロックのエントリについて、使用度及び重複度を共に“0”とし、さらに論理アドレス格納領域66の空き数を“8”に戻す。
この後、プロセッサ50は、物理ブロック管理テーブル84を参照して、物理ブロックポインタが、物理アドレスが最後の物理ブロックの当該物理アドレスを指し示しているか否かを判断する(SP27)。
プロセッサ50は、かかる判断において否定結果を得ると、物理ブロック管理テーブル84を参照して、物理アドレスポインタを、当該物理アドレスポインタがそのとき指し示していた物理アドレスの次の物理アドレスにセットする。ただし、この際、ステップSP23においてコピー先して選択された物理ブロックの物理アドレスについては対象外とする(SP28)。
そしてプロセッサ50は、この後ステップSP27において肯定結果を得るまで、ステップSP21〜ステップSP28の処理を繰り返す。この結果、そのフラッシュメモリモジュール3A〜3P内の物理ブロックのうちのステップSP21における条件を満たす物理ブロックに対するリクラメーション処理が順次行なわれることになる。
そしてプロセッサ50は、やがて該当する全ての物理ブロックに対するリクラメーションが終了することによりステップSP27において肯定結果を得ると、このリクラメーション処理を終了する。
次に、本実施の形態のデータ重複排除処理がフラッシュメモリの書換え寿命に与える効果について説明する。まず、データ重複排除処理を行わない場合に、フラッシュメモリの物理ブロックに格納されているデータの消去が必要となる回数E1は、次式
Figure 2009087021
となる。一方、データの重複率をmとして、データ重複排除処理を行った場合に、フラッシュメモリの物理ブロックに格納されたデータの消去が必要となる割合E2は、次式
Figure 2009087021
のように表すことができる。
書込みデータのサイズが十分に大きいと仮定して、E2の第2項の“+1”を無視すると、データ重複排除により物理ブロックに格納されたデータの消去回数が(1−m)倍になることになる。つまり、データ重複排除によりフラッシュメモリの書換え寿命が1/(1−m)倍に増加する。例えば平均50%重複しているデータを書き込むと、媒体寿命が約2倍に延びることになる。また、重複データは実際には物理ブロックへの書込みを行わず、論理アドレスを追加するだけであるため、書換え時間が短縮し、書込み性能が向上する。
ただし正確には、物理ブロック毎に設けた管理情報格納領域66(図5)のオーバーヘッドが書換え寿命延命効果に与える影響を考慮する必要がある。128kBブロックサイズ当たりに512Bの管理領域を確保すると、データ重複排除による媒体延命効果が512B/128kB=約0.4%低下する。
以上のように本実施の形態によるストレージ装置では、データ重複排除技術を用いたことにより、フラッシュメモリの長寿命化を図ることができることに加え、物理ブロックごとに、使用度及び重複度を管理し、使用度及び重複度の差が閾値を超えたときにその物理ブロックに対するリクラメーションを実行するため、リクラメーションをタイミング良く行なうことができ、かくしてデータ重複排除の効率劣化を防止して、フラッシュメモリの使用効率を向上させることができる。
(2)第2の実施の形態
第2の実施の形態は、各フラッシュメモリモジュール3A〜3Pにおいて、第1の実施の形態のようにフラッシュメモリ42へのデータ書込み処理時にデータ重複排除処理を実行するのではなく、データ書込み処理とは別のタイミングでかかるデータ重複排除処理を実行する点と、複数の重複したデータごとにデータ重複排除処理を行う点とを特徴とする。
図14は、このような第2の実施の形態におけるデータ重複排除処理に関するフラッシュメモリモジュール3A〜3Pのプロセッサ50の具体的な処理内容を示している。プロセッサは、RAM53(図4)に格納された対応するプログラムに従って、この図14に示すデータ重複排除処理を実行する。
すなわちプロセッサ50は、ストレージアダプタ6A,6B(図1)からデータ重複排除の実行命令が与えられると、このデータ重複排除処理を開始し、まず、ハッシュ値管理テーブル82の各エントリの制御フラグを全て“0”に設定する(SP30)。
続いてプロセッサ50は、制御フラグが“0”に設定されている複数のエントリにおいて共通するハッシュ値を、ハッシュ値管理テーブル82上において検索する(SP31)。なおプロセッサ50は、この検索において上述のようなハッシュ値を複数検出したときには、最初に検出したハッシュ値のみを選択し、このハッシュ値を対象として以下の処理を実行する。
次いで、プロセッサ50は、物理ブロック管理テーブル84を参照して、ステップSP31の検索により検出したハッシュ値の各エントリに対応する物理ブロックの数をX、これら物理ブロックの論理アドレス格納領域に格納された有効な論理アドレスの数をYとして、これらX及びYが次式
Figure 2009087021
及び次式
Figure 2009087021
を満たすか否かを判断する(SP32)。ここで、Yはこれら物理ブロックの重複度の合計として求めることができる。
ここで、nは物理ブロックの論理アドレス格納領域66(図6)に格納できる論理アドレスの最大値(ここでは“8”)であり、int(Y/n)は、Y/nよりも小さく、かつY/nに最も近い整数を表す。従って、int(Y/n)+1はデータ重複排除処理後の使用物理ブロック数であるので、(8)式の左辺はデータ重複排除処理の効果を表す。
この判断において否定結果を得ることは、制御フラグが“0”に設定されている複数のエントリにおいて共通するハッシュ値が存在しないか、又はかかるハッシュ値は存在するものの、データ重複排除処理を行ってもその効果として大きな効果を見込めないことを意味する。かくして、このときプロセッサ50は、このデータ重複排除処理を終了する。
これに対して、ステップSP32の判断において肯定結果を得ることは、制御フラグが“0”に設定されている複数のエントリにおいて共通するハッシュ値が存在し、かつデータ重複排除処理を行った場合に大きな効果を見込めることを意味する。
かくして、このときプロセッサ50は、ステップSP31において検出した複数のエントリの各物理ブロックに格納されている書込みデータをそれぞれ1ビットずつ比較することにより、かかる複数のエントリの各物理ブロックにそれぞれ格納されている書込みデータが全て同一であるか否かを判断する(SP33)。なお、ハッシュ値のみの一致でデータ一致が保証できる場合は、このステップSP33を省略しても良い。
そしてプロセッサ50は、この判断において否定結果を得ると、これら各エントリの物理ブロックに格納された書込みデータに対するデータ重複排除処理を終了し、これら各エントリの制御フラグをいずれも“1”に変更した後(SP34)、ステップSP31に戻る。
これに対してプロセッサ50は、かかる判断において肯定結果を得ると、ステップSP31において検出した複数のエントリの各物理ブロックに格納されている同じ書込みデータを、int(Y/n)+1個の未使用の物理ブロックにコピーする(SP35)。ここでプロセッサ50は、コピー先物理ブロックとして、消去回数が少ない未使用物理ブロックを選択する。
続いてプロセッサ50は、書込みデータのコピー先の各物理ブロックにおける論理アドレス格納領域66(図6)に、コピー元の各物理ブロックにそれぞれ対応付けられた各論理ブロックの論理アドレスを分散して格納する(SP36)。
次いでプロセッサ50は、アドレス変換テーブル80の対応する各エントリ、つまりコピー元の物理ブロックに対応付けられた各論理ブロックとそれぞれ対応するエントリの物理アドレスを、ステップSP36においてその論理ブロックの論理アドレスが論理アドレス格納領域66に格納された物理ブロックの物理アドレスに更新する。またプロセッサ50は、ハッシュ値管理テーブル82上のステップSP35においてコピーした書込みデータのハッシュ値に対応する各エントリの制御フラグをそれぞれ“1”に更新すると共に、これと併せてかかるエントリの物理アドレス、又はかかるエントリの物理アドレス及び論理アドレスを、ステップSP35及びステップSP36の処理に応じて更新する(SP37)。
続いてプロセッサ50は、ステップSP35における書込みデータのコピー元の各物理ブロックについて、当該物理ブロックの論理アドレス格納領域66に格納されている全ての論理アドレス上に“0”を上書きすることにより、これら全ての論理アドレスを無効化する。さらにプロセッサ50は、物理ブロック管理テーブル84におけるこれらコピー元の各物理ブロックの重複度を“0”に書き換える(SP38)。
次いでプロセッサ50は、ステップSP31に戻り、この後同様の処理を繰り返す(SP31〜SP38−SP31)。そしてプロセッサ50は、やがてステップSP32において否定結果を得ると、このデータ重複処理を終了する。
以上のように本実施の形態によれば、データ重複排除処理をデータ書込みとは異なる、例えばフラッシュメモリモジュールがアイドル状態のときなどのタイミングで行うため、第1の実施の形態により得られる効果に加えて、例えばデータ書込み処理が多数重なったときにデータ重複排除処理を実行することに起因してデータ書込み処理の処理速度が低減することを未然かつ有効に防止することができるという格別な効果をも得ることができる。
(3)第3の実施の形態
第3の実施の形態は、第2の実施の形態のように同一のデータが格納された複数の物理ブロックについてまとめてデータ重複排除処理するのではなく、同一のデータが格納された物理ブロックを1対ずつデータ重複排除処理してゆく点を特徴とする。
図15は、このような第3の実施の形態におけるデータ重複排除処理に関するフラッシュメモリモジュール3A〜3Pのプロセッサ50の具体的な処理内容を示している。プロセッサ50は、RAM53(図4)に格納された対応する制御プログラムに従って、この図15に示すデータ重複排除処理を実行する。
すなわちプロセッサ50は、ストレージアダプタ6A,6B(図1)からデータ重複排除の実行命令が与えられると、データ重複排除処理を開始し、まず、ハッシュ値管理テーブル82の各エントリの制御フラグを全て“0”に設定する(SP40)。
続いてプロセッサ50は、それぞれ制御フラグが“0”に設定されている複数のエントリにおいて共通するハッシュ値を、ハッシュ値管理テーブル82において検索する(SP41)。なおプロセッサ50は、この検索において上述の条件(それぞれ制御フラグが“0”に設定されている複数のエントリにおいて共通する)を満たすハッシュ値を複数検出したときには、最初に検出したハッシュ値を対象として以下の処理を実行する。
また以下においては、ステップSP41の検索により検出したハッシュ値の各エントリに対応する物理ブロックのうちの物理ブロック管理テーブル84上に登録された論理アドレス格納領域66の空き数が最大の物理ブロックを第1の対象物理ブロックと呼び、ステップSP41の検索により検出したハッシュ値の各エントリに対応する物理ブロックのうちの論理アドレス格納領域66の空き数が最小であって、かつ重複度が最小のブロックを第2の対象物理ブロックと呼ぶものとする。
次いで、プロセッサ50は、物理ブロック管理テーブル84を参照して、同じハッシュ値を持ち制御フラグが“0”である複数のエントリが存在し、且つ第1の対象物理ブロックにおける論理アドレス格納領域66の空き数をX、第2の対象物理ブロックの重複度をYとして、第1の対象物理ブロックにおける論理アドレス格納領域66の空き領域に、第2の対象物理ブロックにおける論理アドレス格納領域66に格納されている論理アドレスを追記可能か(X≧Y)否かを判断する(SP42)。
プロセッサ50は、この判断において否定結果を得ると、再度、ステップSP41において上述した条件を満たすハッシュ値を、ハッシュ値管理テーブル82上において検索することにより、当該条件を満たす他のハッシュ値が存在するか否かを判断する(SP43)。そしてプロセッサ50は、この判断において否定結果を得ると、このデータ重複排除処理を終了する。
これに対してプロセッサ50は、かかる判断において肯定結果を得ると、ステップSP42に戻り、この後ステップSP42において肯定結果を得又はステップSP43において否定結果を得るまで同様の処理を繰り返す(SP42−SP43−SP42)。
そしてプロセッサ50は、やがてステップSP42において肯定結果を得ると、第1の対象物理ブロックに格納されているデータと、第2の対象物理ブロックに格納されているデータとをそれぞれ1ビットずつ比較することにより、かかる複数のエントリの各物理ブロックにそれぞれ格納されているデータが同一であるか否かを判断する(SP44)。なお、ハッシュ値のみの一致でデータ一致が保証できる場合は、このステップSP44を省略しても良い。
プロセッサ50は、この判断において肯定結果を得ると、図16に示すように、第2の対象物理ブロックの論理アドレス格納領域66に格納されている全ての論理アドレスを第1の対象物理ブロックの論理アドレス格納領域66にコピーする(SP45)。なお、この図16において、第1及び第2の対象物理ブロック59A,59Bに書き込まれているデータは共に「A」である。そしてこの図16は、第2の対象物理ブロック59Bの論理アドレス格納領域66に格納されている「Y」という論理アドレスを、第1の対象物理ブロックの論理アドレス格納領域66の空き領域にコピーするときの様子を示している。プロセッサ50は、ステップSP44において否定結果を得ると、ステップSP47へ処理を進める。
次いで、プロセッサ50は、第2の対象物理ブロックの論理アドレス格納領域66に格納されている全ての論理アドレス上に“0”を上書きするようにして、これら論理アドレスを無効化する。またプロセッサ50は、物理ブロック管理テーブル84の第2の対象物理ブロックに対応するエントリの重複度を“0”に変更する。さらにプロセッサ50は、アドレス変換テーブル80の第2の対象物理ブロックに対応するエントリの論理アドレスを全て消去すると共に、この消去した全ての論理アドレスを第1の対象物理ブロックに対応するエントリの論理アドレスとしてアドレス変換テーブル80に追記する(SP46)。
さらにプロセッサ50は、ハッシュ値管理テーブル82において、第2の対象物理ブロックに対応するエントリの制御フラグの値を“1”に変更すると共に、当該エントリにおける物理アドレス及び論理アドレスを更新し、さらに物理ブロック管理テーブル84において、第1の対象物理ブロックに対応するエントリの使用度、重複度及び論理アドレス格納領域66の空き数をそれぞれ更新する(SP47)。
次いで、プロセッサ50は、ステップSP41に戻り、この後ステップSP43において否定結果を得るまで同様の処理を繰り返す(SP41〜SP47−SP41)。そしてプロセッサ50は、やがてステップSP43において否定結果を得ると、このデータ重複排除処理を終了する。
以上のように本実施の形態によれば、同一のデータが格納された物理ブロックを1対ずつデータ重複排除処理してゆくため、第1の実施の形態による効果と同等の効果を得ることができる。
(4)第4の実施の形態
上述した第1〜第3の実施の形態では、物理ブロック単位でデータ重複排除処理を行う場合を説明した。これに対して、第4の実施の形態は、物理ブロックのブロックサイズより小さいデータサイズで、データ重複排除処理を行う点を特徴とする。
図17は、本実施の形態におけるフラッシュメモリモジュール3A〜3Pにおける物理ブロック100のデータ構造を示している。この図17において、物理ブロック100は、1番目からm番目までのページ100(101A〜101m(mは整数))を含む。これらのページ101は、いずれも図6について上述したデータ部61及び冗長部62と同様のデータ部102及び冗長部103から構成される。
本実施の形態では、2ページ単位でデータ重複排除処理を実行する場合を説明する。以下においては、データ重複排除処理を実行するページ単位(ここでは2ページ)をサブフロック104と呼ぶものとする。例えば物理ブロック100は、1番目及び2番目のページ101A,101Bからなるサブブロック104Aと、3番目及び4番目のページ101C,101Dからなるサブブロック104Bと、m−1番目及びm番目のページ101(m−1),101mからなるサブブロック101h(h=m/2)とを含む。また、各サブブロック104A〜104hには、それぞれ図4について上述した管理情報格納領域63と同様の機能を有する管理情報格納領域105(105A〜105h)が設けられる。
また以下においては、説明を簡単にするため、データの読み書き単位及びデータ重複排除処理単位をサブブロック単位とする。つまり、本実施の形態では、図9のアドレス変換テーブル80、図10のハッシュ値管理テーブル82及び図11の物理ブロック管理テーブル84において、情報が全てサブブロック単位で管理されているものとする。サブブロック単位のデータ重複排除処理は、図14又は図15について上述した第2又は第3の実施の形態におけるデータ重複排除処理の説明において、「ブロック」を「サブブロック」と読み替えることにより実行可能である。
ただし、リクラメーション処理に関しては、サブブロックが消去単位ではないため修正が必要である。そこで、データの読み書き単位及びデータ重複排除処理単位をサブブロック104とした場合のリクラメーション処理について、以下で説明する。
図18は、データの読み書き及びデータ重複排除処理の単位をサブブロック単位とした場合における、リクラメーション処理に関するフラッシュメモリモジュール3A〜3Pのプロセッサ50の処理内容を示している。このリクラメーション処理は、サブブロック単位とブロック単位の2段階のデータコピーを行う点を特徴としており、プロセッサ50は、RAM53(図4)に格納された対応するプログラムに従って、この図18に示すリクラメーション処理を実行する。
すなわちプロセッサ50は、ストレージコントローラ2からリクラメーションの実行命令が与えられると、リクラメーション処理を開始し、まず、物理ブロック管理テーブル(図11参照)を参照して、物理アドレスが最も小さい物理ブロックの当該物理アドレスに物理アドレスポインタをセットする(SP50)。
続いてプロセッサ50は、物理ブロック管理テーブル(図11参照)を参照して、そのとき物理ブロックポインタが指し示す物理ブロック内のサブブロック104の使用度が“0”よりも大きく(そのサブブロック104が未使用でなく)、かつそのサブブロック104の使用度と重複度との差分の値が予め設定された閾値よりも大きい(そのサブブロック104の管理情報格納領域105内の論理アドレス格納領域に格納された論理アドレスのうちの無効な論理アドレスの数がかかる閾値よりも多い)か否かを判断する(SP51)。
プロセッサ50は、この判断において否定結果を得るとステップSP55に進み、これに対して肯定結果を得ると、そのサブブロック104に格納されているデータを未使用の物理ブロック100のサブブロック104にコピーする。またこのときプロセッサ50は、コピー元のサブブロック104内の論理アドレス格納領域に格納されていた論理アドレスのうちの有効な論理アドレスのみをコピー先のサブブロック104の論理アドレス格納領域にコピーする(SP52)。
続いてプロセッサ50は、アドレス変換テーブル(図9参照)の対応するエントリのサブブロック104のアドレスをコピー先のサブブロック104のアドレスに書き換えると共に、ハッシュ値管理テーブル(図10参照)の対応するエントリからコピー元のサブブロック104に対応するエントリを削除し(SP53)、この後、物理ブロック管理テーブルにおけるコピー元のサブブロック104に対応するエントリの重複度を“0”に更新する(SP54)。
この後、プロセッサ50は、物理ブロック管理テーブルに基づいて、そのとき処理したサブブロック104が、そのとき対象としている物理ブロック100内の最後のサブブロック104であるか否かを判断する(SP55)。
そしてプロセッサ50は、この判断において否定結果を得ると、物理アドレスポインタをその物理ブロック100における次のサブブロック104のアドレスにセットした後(SP56)、ステップSP51に戻り、この後同様の処理を繰り返す(SP51〜SP56−SP51)。
そしてプロセッサ50は、やがてそのとき対象としている物理ブロック100内の全てのサブブロック104について同様の処理を終えることによりステップSP55において肯定結果を得ると、その物理ブロック100内の各サブブロック104の使用度の合計が0よりも大きく、かつ各サブブロック104の使用度の合計から重複度の合計を引いた値が所定の閾値よりも大きいか否かを判断する(SP57)。
プロセッサ50は、この判断において否定結果を得るとステップSP62に進み、これに対して肯定結果を得ると、図13について上述したリクラメーション処理のステップSP23〜ステップSP26と同様にして、その物理ブロック100に格納されているデータを未使用の物理ブロック100にコピーすると共に、これに応じてアドレス変換テーブル、ハッシュ値管理テーブル及び物理ブロック管理テーブルを更新する(SP59〜SP61)。
この後、プロセッサ50は、物理ブロック管理テーブルを参照して、物理ブロックポインタが、物理アドレスが最後の物理ブロックの物理アドレスを指し示しているか否かを判断する(SP62)。
プロセッサ50は、かかる判断において否定結果を得ると、物理ブロック管理テーブルを参照して、物理アドレスポインタを、当該物理アドレスポインタがそのとき指し示していた物理アドレスの次の物理アドレスにセットする。ただし、この際、ステップSP52、SP58においてコピー先して選択された物理ブロック100の物理アドレスについては対象外とする(SP63)。
次いでプロセッサ50は、ステップSP51に戻り、この後ステップSP62において肯定結果を得るまで、ステップSP51〜ステップSP63の処理を繰り返す。この結果、そのフラッシュメモリモジュール3A〜3P内の物理ブロック100及び当該物理ブロック100内のサブブロック104のうちのステップSP57の条件を満たす物理ブロック100及びステップSP51の条件を満たすサブブロック104に対するリクラメーション処理が順次行なわれることになる。
そしてプロセッサ50は、やがて該当する全ての物理ブロック100及びサブブロック104に対するリクラメーションが終了することによりステップSP62において肯定結果を得ると、このリクラメーション処理を終了する。
以上のように本実施の形態によれば、物理ブロックのブロックサイズより小さいデータサイズでデータ重複排除処理を行うため、第1〜第3の実施の形態に比して、より一段とデータ重複排除の効率を向上させることができる。
(5)第5の実施の形態
まず、RAID(Redundant Array of Inexpensive Disks)のストライピング(データ分割)動作について説明する。
RAIDでは、図19に示すように、データがストライプ110A,110B,……と呼ばれるデータ単位に分割され、このストライプ110A,110B,……がさらにストライプユニット110A〜110A,110B〜110B,……と呼ばれるデータ単位に分割される。そして同じストライプ110A,110B,……を構成する各ストライプユニット110A〜110A,110B〜110B,……は、それぞれRAIグループ111を構成する複数の記憶媒体112A〜112Dに分散してかつ同じタイミングで読み書きされる。なお、以下においては、かかる記憶媒体112A〜112Dがフラッシュメモリモジュールであるものとして説明する。
ところで、RAIDには冗長化の方法やストライピングの大きさなどによって、RAID0、RAID1、RAID1+0など複数のレベルが定義されている。そして、例えばRAID5では、図19に示すように、同じストライプ110A,110B,……を構成するストライプユニット110A〜110A,110B〜110B,……から生成したパリティがRAIDグループ111を構成する各フラッシュメモリモジュール112A〜112Dに分散して記憶される。この結果、例えばストライプ110Aとストライプ110Bとが全く同じデータを有していたとしても、フラッシュメモリモジュール内では重複するデータが無いことになる。つまり、ストライプユニット110A〜110A,110B〜110B,……毎にデータが重複するような場合では、フラッシュメモリモジュール112A〜112D毎にデータ重複排除処理を行っても効果が期待できない。
一方、RAIDグループ111全体で見た場合、重複データは複数のフラッシュメモリモジュール112A〜112Dに跨がって存在する。この重複状態を排除するためには、RAIDグループ111全体をアクセス可能なストレージコントローラがデータ重複排除処理を行う必要がある。
そこで、本実施の形態では、ストレージ装置1のストレージコントローラ2(図1)が、ストライプユニットサイズ以上のデータ処理単位、かつ複数のフラッシュメモリモジュール3A〜3P(図1)に跨がる範囲で、データ重複排除処理を実行するよう制御する。また本実施の形態では、フラッシュメモリモジュール3A〜3Pにおいて、ストライプユニットサイズ以下のデータ処理単位でデータ重複排除処理を実行する。このように、階層的に異なるデータ処理単位でデータ重複排除処理を実行することにより、データが重複する可能性が高くなるので、データ重複排除効果が向上する。
具体的には、ストレージコントローラ2が、ネットワーク12A又はネットワーク12Bを介してフラッシュメモリモジュール3A〜3Pに対し、フラッシュメモリモジュール3A〜3P毎に実行するデータ重複排除処理のデータ処理単位又はストライプユニットサイズを必要に応じて指示する。これにより、ストレージコントローラ2とフラッシュメモリモジュール3A〜3Pにおけるデータ重複排除の連携が可能となる。
なおデータ重複排除の階層制御の他の例としては、ストレージコントローラ2が、フラッシュメモリモジュール3A〜3P毎にそのフラッシュメモリモジュール3A〜3P内に存在する各物理ブロックの使用度や重複度の統計情報をネットワーク12A又はネットワーク12Bを介してモニタし、データ重複排除の効果がないフラッシュメモリモジュール3A〜3Pに対してはデータ重複排除処理を停止するように制御するようにしてもよい。
また、ストレージコントローラ2がネットワーク12A,12Bを介してフラッシュメモリモジュール3A〜3P毎の重複度と未使用の物理ブロック数の統計情報を調査し、該重複度と未使用の物理ブロック数との積を計算して、フラッシュメモリモジュール3A〜3P毎に今後格納可能な容量を予測しても良い。
図20は、上述のような本実施の形態によるデータ重複排除処理を行うためにストレージコントローラ2が保持し、管理するデータ重複排除管理テーブル120を示す。この図20からも明らかなように、データ重複排除管理テーブル120は、「論理ユニット番号」欄120A、「論理ブロックアドレス」欄120B、「上位制御」欄120C及び「下位制御」欄120Dから構成される。また「論理ブロックアドレス」欄120Bは、「開始論理ブロックアドレス」欄120BA及び「最終論理ブロックアドレス」欄120BBから構成され、「上位制御」欄120Cは、「上位制御フラグ」欄120CA及び「上位制御サイズ」欄120CBから構成される。また「下位制御」欄120Dは、「下位制御フラグ」欄120DA及び「下位制御サイズ」欄120DBから構成される。
そして「論理ユニット番号」欄120Aには、そのストレージコントローラ2の配下に存在する各論理ユニットの論理ユニット番号が格納され、「開始論理ブロックアドレス」欄120BA及び「最終論理ブロックアドレス」欄120BBには、その論理ユニットにおいてデータ重複排除処理を行う最初の論理ブロックの論理アドレス及び最後の論理ブロックの論理アドレスがそれぞれ格納される。これらデータ重複排除処理を行う最初の論理ブロックの論理アドレス及び最後の論理ブロックの論理アドレスは、保守端末10(図1)を介してユーザが設定する。
また「上位制御フラグ」欄120CAには、その論理ユニットについてストレージコントローラ2がデータ重複排除処理を実行するか否かを表すフラグ(以下、これをデータ重複排除処理実行可否フラグと呼ぶ)が格納され、「上位制御サイズ」欄120CBには、かかるデータ重複排除処理を実行する際のデータ処理単位(以下、これをデータ重複排除処理実行単位と呼ぶ)が格納される。これら「上位制御フラグ」欄120CA及び「上位制御サイズ」欄120CBに格納するフラグやデータ処理単位も保守端末10(図1)を介してユーザが設定する。
さらに「下位制御フラグ」欄120DAには、その論理ユニットが対応付けられた物理ユニットを有するフラッシュメモリモジュール3A〜3Pにおいてデータ重複排除処理を実行するか否かを表すフラグが格納され、「上位制御サイズ」欄120DBには、かかるフラッシュメモリモジュール3A〜3Pにおいてデータ重複排除処理を実行する際のデータ処理単位が格納される。これら「上位制御フラグ」欄120DA及び「上位制御サイズ」欄120DBに格納するフラグやデータ処理単位も保守端末10(図1)を介してユーザが設定する。
そしてストレージコントローラ2は、このデータ重複排除管理テーブル120に基づき、必要に応じて対応するフラッシュメモリモジュール3A〜3Pを制御することにより、ストライプユニットサイズ以上のデータ処理単位、かつ複数のフラッシュメモリモジュール3A〜3Pに跨がる範囲でデータ重複排除処理を実行する。
なお、データ重複排除処理の実行可否の設定例としては、容量効率よりも冗長性が求められるデータに関しては、データ重複排除処理を実行しないように設定することがある。あるいは、容量効率よりも読み書きのスループットを重視する場合や、アクセスが集中するデータに対しては、重複排除処理を実行せずに複数の物理媒体に分散してデータが格納されるように制御してもよい。
以上のように本実施の形態では、ストライプユニットサイズ以上のデータ処理単位、かつ複数のフラッシュメモリモジュール3A〜3Pに跨がる範囲で、データ重複排除処理を実行するため、ストレージコントローラ2とフラッシュメモリモジュール3A〜3Pにおけるデータ重複排除の連携を可能とすることができ、かくしてより一層とデータ重複排除処理の効果を向上させることができる。
第1〜第5の実施の形態のストレージ装置の構成を示すブロック図である。 第1〜第5の実施の形態のチャネルアダプタの構成を示すブロック図である。 第1〜第5の実施の形態のストレージアダプタの構成を示すブロック図である。 第1〜第5の形態のフラッシュメモリモジュールの構成を示すブロック図である。 第1〜第5の実施の形態のフラッシュメモリモジュールのブロック構成の説明に供する概念図である。 物理ブロックにおける管理情報格納領域の説明に供する概念図である。 物理アドレス及び論理アドレスの対応の説明に供する概念図である。 物理アドレス及び論理アドレスの対応の説明に供する概念図である。 アドレス変換テーブルの説明に供する概念図である。 ハッシュ値管理テーブルの説明に供する概念図である。 物理ブロック管理テーブルの説明に供する概念図である。 第1の実施の形態によるデータ書き込み処理の説明に供するフローチャートである。 第1の実施の形態によるリクラメーション処理の説明に供するフローチャートである。 第2の実施の形態によるデータ重複排除処理の説明に供するフローチャートである。 第3の実施の形態によるデータ重複排除処理の説明に供するフローチャートである。 第3の実施の形態によるデータ重複排除処理の説明に供する概念図である。 第3の実施の形態による物理ブロックのデータ構造の説明に供する概念図である。 第4の実施の形態のリクラメーション処理の説明するフローチャートである。 RAIDストライピング動作の説明に供する概念図である。 第5の実施の形態によりデータ重複排除処理管理テーブルの説明に供する概念図である。
符号の説明
1……ストレージ装置、2……ストレージコントローラ、3……フラッシュメモリモジュール、5A,5B……ストレージアダプタ、10……保守端末、50……プロセッサ、53……RAM、54……ROM、59,100……物理ブロック、60,101……ページ、63,105,105A〜105h……管理情報格納領域、66……論理アドレス格納領域、80……アドレス変換テーブル、82……ハッシュ値管理テーブル、84……物理ブロック管理テーブル、104,104A〜104h……サブブロック、120……データ重複排除管理テーブル。

Claims (18)

  1. 1又は複数のフラッシュメモリモジュールが搭載されたストレージ装置において、
    前記フラッシュメモリモジュールは、
    記憶領域を提供する少なくとも1つのフラッシュメモリチップと、
    前記フラッシュメモリチップに対するデータの読み書きを制御するコントローラと
    を備え、
    前記コントローラは、
    前記フラッシュメモリチップが提供する前記記憶領域上に定義された物理的な単位領域内の所定の管理情報格納領域に、対応する1又は複数の論理的な単位領域の論理アドレスを格納することにより、重複データを排除するデータ重複排除を行なうと共に、前記管理情報格納領域に格納された前記論理アドレスの延べ数である使用度と、当該物理的な単位領域に対応する有効な前記論理アドレスの数である重複度とを前記物理的な単位領域毎に管理し、前記使用度と前記重複度との差が既定値を超える前記物理的な単位領域に対して、当該物理的な単位領域を初期状態に戻す再生処理を実行する
    ことを特徴とするストレージ装置。
  2. 前記物理的な単位領域は、
    データを一括消去する単位であり、
    前記コントローラは、
    前記物理的な単位領域を単位として、前記フラッシュメモリチップが提供する前記記憶領域データを読み書きすると共に前記データ重複排除のための処理を実行する
    ことを特徴とする請求項1に記載のストレージ装置。
  3. 前記コントローラは、
    前記管理情報格納領域に格納されている前記論理アドレスのうちの無効となった前記論理アドレスを0で上書きする
    ことを特徴とする請求項1に記載のストレージ装置。
  4. 前記コントローラは、
    同一のデータが格納された前記物理的な単位領域の数をX、前記同一のデータが格納された前記物理的な単位領域の前記管理情報格納領域に格納された有効な前記論理アドレスの数をY、前記管理情報格納領域に格納可能な前記論理アドレスの最大数をnとして、次式
    Figure 2009087021
    で算出される値が所定値以上のときに、前記同一のデータを、次式
    Figure 2009087021
    で算出される個数の未使用の前記物理的な単位領域にコピーするようにして、重複したデータを排除する
    ことを特徴とする請求項1に記載のストレージ装置。
  5. 前記コントローラは、
    同一のデータが格納された複数の前記物理的な単位領域の中から、前記論理アドレスに対する前記管理情報格納領域の空きが最大の第1の前記物理的な単位領域を選択すると共に、前記論理アドレスに対する前記管理情報格納領域の空きが最小であって、かつ当該管理情報格納領域に格納された有効な前記論理アドレスの数が最小である第2の前記物理的な単位領域を選択し、
    前記第1の物理的な単位領域の前記論理アドレスに対する前記管理情報格納領域の空きの数が、前記第2の物理的な単位領域の前記管理情報格納領域に格納されている有効な前記論理アドレスの数以上である場合に、前記第1の物理的な単位領域の前記管理情報格納領域の空き領域に前記第2の物理的な単位領域の前記管理情報格納領域に格納されている有効な前記論理アドレスをコピーするようにして、重複したデータを排除する
    ことを特徴とする請求項1に記載のストレージ装置。
  6. 前記物理的な単位領域は、
    データを一括消去する単位である物理ブロック内のデータの読書き単位である少なくとも1つのページからなるサブブロックである
    ことを特徴とする請求項1に記載のストレージ装置。
  7. 記憶領域を提供する複数のフラッシュメモリモジュールと、前記複数のフラッシュメモリモジュールに対するデータの読み書きを制御するストレージコントローラとを有するストレージ装置において、
    前記ストレージコントローラは、
    データを所定単位で分割して前記複数のフラッシュメモリモジュールに読み書きすると共に、当該所定単位以上のデータサイズのデータに対して、前記複数のフラッシュメモリモジュールに跨る範囲で重複データを排除するデータ重複排除処理を行い、
    前記複数のフラッシュメモリモジュールは、
    前記所定単位以下のデータサイズのデータに対して、当該フラッシュメモリモジュール毎にデータ重複排除処理を行う
    ことを特徴とするストレージ装置。
  8. 前記ストレージコントローラは、
    前記複数のフラッシュメモリモジュールに対して、当該フラッシュメモリモジュールにおける前記データ重複排除処理の処理単位を指示する
    ことを特徴とする請求項7に記載のストレージ装置。
  9. 所定単位の記憶領域毎に、前記ストレージコントローラ又は前記フラッシュメモリモジュールが実行する前記データ重複排除処理の実行の可否を設定できる
    ことを特徴とする請求項8に記載のストレージ装置。
  10. それぞれ記憶領域を提供する少なくとも1つのフラッシュメモリチップを有する1又は複数のフラッシュメモリモジュールが搭載されたストレージ装置におけるデータの重複を排除するデータ重複排除方法において、
    前記フラッシュメモリチップが提供する前記記憶領域上に定義された物理的な単位領域内の所定の管理情報格納領域に、対応する1又は複数の論理的な単位領域の論理アドレスを格納するようにして前記データ重複排除処理を行うと共に、前記管理情報格納領域に格納された前記論理アドレスの延べ数である使用度と、当該物理的な単位領域に対応する有効な前記論理アドレスの数である重複度とを前記物理的な単位領域毎に管理する第1のステップと、
    前記使用度と前記重複度との差が既定値を超える前記物理的な単位領域に対して、当該物理的な単位領域を初期状態に戻す再生処理を実行する第2のステップと
    を備えることを特徴とするデータ重複排除方法。
  11. 前記物理的な単位領域は、
    データを一括消去する単位であり、
    前記フラッシュメモリモジュールでは、
    前記物理的な単位領域を単位として、前記フラッシュメモリチップが提供する前記記憶領域にデータが読み書きされると共に前記データ重複排除のための処理が実行される
    ことを特徴とする請求項10に記載のデータ重複排除方法。
  12. 前記第2のステップでは、
    前記管理情報格納領域に格納されている前記論理アドレスのうちの無効となった前記論理アドレスを0で上書きする
    ことを特徴とする請求項10に記載のデータ重複排除方法。
  13. 前記第1のステップでは、
    同一のデータが格納された前記物理的な単位領域の数をX、前記同一のデータが格納された前記物理的な単位領域の前記管理情報格納領域に格納された有効な前記論理アドレスの数をY、前記管理情報格納領域に格納可能な前記論理アドレスの最大数をnとして、次式
    Figure 2009087021
    で算出される値が所定値以上のときに、前記同一のデータを、次式
    Figure 2009087021
    で算出される個数の未使用の前記物理的な単位領域にコピーするようにして重複したデータを排除する
    ことを特徴とする請求項10に記載のデータ重複排除方法。
  14. 前記第2のステップでは、
    同一のデータが格納された複数の前記物理的な単位領域の中から、前記論理アドレスに対する前記管理情報格納領域の空きが最大の第1の前記物理的な単位領域を選択すると共に、前記論理アドレスに対する前記管理情報格納領域の空きが最小であって、かつ当該管理情報格納領域に格納された有効な前記論理アドレスの数が最小である第2の前記物理的な単位領域を選択し、
    前記第1の物理的な単位領域の前記論理アドレスに対する前記管理情報格納領域の空きの数が、前記第2の物理的な単位領域の前記管理情報格納領域に格納されている有効な前記論理アドレスの数以上である場合に、前記第1の物理的な単位領域の前記管理情報格納領域の空き領域に前記第2の物理的な単位領域の前記管理情報格納領域に格納されている有効な前記論理アドレスをコピーするようにして重複したデータを排除する
    ことを特徴とする請求項10に記載のデータ重複排除方法。
  15. 前記物理的な単位領域は、
    データを一括消去する単位である物理ブロック内のデータの読書き単位である少なくとも1つのページからなるサブブロックである
    ことを特徴とする請求項10に記載のデータ重複排除方法。
  16. 記憶領域を提供する複数のフラッシュメモリモジュールと、前記複数のフラッシュメモリモジュールに対するデータの読み書きを制御するストレージコントローラとを有するストレージ装置におけるデータの重複を排除するデータ重複排除方法において、
    前記ストレージコントローラが、データを所定単位で分割して前記複数のフラッシュメモリモジュールに読み書きすると共に、当該所定単位以上のデータサイズのデータに対して、前記複数のフラッシュメモリモジュールに跨る範囲で重複データを排除するデータ重複排除処理を行う第1のステップと、
    前記複数のフラッシュメモリモジュールが、前記所定単位以下のデータサイズのデータに対して、当該フラッシュメモリモジュール毎にデータ重複排除処理を行う第2のステップと
    を備えることを特徴とするデータ重複排除方法。
  17. 前記第2のステップでは、
    前記ストレージコントローラが、前記複数のフラッシュメモリモジュールに対して、当該フラッシュメモリモジュールにおける前記データ重複排除処理の処理単位を指示する
    ことを特徴とする請求項16に記載のデータ重複排除方法。
  18. 所定単位の記憶領域毎に、前記ストレージコントローラ又は前記フラッシュメモリモジュールが実行する前記データ重複排除処理の実行の可否を設定できる
    ことを特徴とする請求項17に記載のデータ重複排除方法。
JP2007255892A 2007-09-28 2007-09-28 ストレージ装置及びデータ重複排除方法 Expired - Fee Related JP5026213B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2007255892A JP5026213B2 (ja) 2007-09-28 2007-09-28 ストレージ装置及びデータ重複排除方法
US12/010,602 US7818495B2 (en) 2007-09-28 2008-01-28 Storage device and deduplication method
EP08250569A EP2042995B1 (en) 2007-09-28 2008-02-19 Storage device and deduplication method
CN2008101089040A CN101398783B (zh) 2007-09-28 2008-06-06 存储装置以及数据重复排除方法
US12/905,566 US8156279B2 (en) 2007-09-28 2010-10-15 Storage device and deduplication method
US13/442,678 US8417882B2 (en) 2007-09-28 2012-04-09 Storage device and deduplication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007255892A JP5026213B2 (ja) 2007-09-28 2007-09-28 ストレージ装置及びデータ重複排除方法

Publications (2)

Publication Number Publication Date
JP2009087021A true JP2009087021A (ja) 2009-04-23
JP5026213B2 JP5026213B2 (ja) 2012-09-12

Family

ID=40190687

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007255892A Expired - Fee Related JP5026213B2 (ja) 2007-09-28 2007-09-28 ストレージ装置及びデータ重複排除方法

Country Status (4)

Country Link
US (3) US7818495B2 (ja)
EP (1) EP2042995B1 (ja)
JP (1) JP5026213B2 (ja)
CN (1) CN101398783B (ja)

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010244104A (ja) * 2009-04-01 2010-10-28 Nec Corp ディスクアレイ装置、ディスクアレイ装置の管理方法及びプログラム
WO2011004634A1 (ja) * 2009-07-09 2011-01-13 株式会社日立製作所 ファイル管理方法、計算機、及びファイル管理プログラム
WO2011025967A2 (en) * 2009-08-28 2011-03-03 Fusion-Io, Inc. Apparatus, system, and method for improved data deduplication
JP2011118712A (ja) * 2009-12-04 2011-06-16 Fujitsu Ltd データ管理プログラム、データ管理装置、およびデータ管理方法
JP2011175532A (ja) * 2010-02-25 2011-09-08 Nec Corp 制御装置、メモリ制御方法およびプログラム
JP2011191933A (ja) * 2010-03-12 2011-09-29 Fujitsu Ltd ストレージ装置、ストレージ装置制御プログラムおよびストレージ装置制御方法
JP2011232941A (ja) * 2010-04-27 2011-11-17 Nec Corp ディスクアレイ装置、及び、ミラーリング制御方法
JP2012058825A (ja) * 2010-09-06 2012-03-22 Nec Corp ストレージ装置及びストレージ装置の記憶資源の使用効率向上方法
WO2012056491A1 (en) 2010-10-26 2012-05-03 Hitachi, Ltd. Storage apparatus and data control method
JP2012168853A (ja) * 2011-02-16 2012-09-06 Nec Corp ストレージ制御装置、ストレージシステム、ストレージ制御方法及びそのためのプログラム
JP2012523023A (ja) * 2009-09-18 2012-09-27 株式会社日立製作所 重複したデータを排除するストレージシステム
JP2012525633A (ja) * 2009-04-30 2012-10-22 ネットアップ,インコーポレイテッド フラッシュベースのデータ保存ストレージシステム
JP2013214147A (ja) * 2012-03-30 2013-10-17 Toshiba Corp ディスクアレイ装置
KR101382273B1 (ko) * 2011-09-30 2014-04-10 인하대학교 산학협력단 Ssd 저장장치의 마모도 감소를 위한 ssd 기반 서버급 저장장치의 복합적 데이터 중복제거 방법
JP2014513345A (ja) * 2011-04-08 2014-05-29 マイクロン テクノロジー, インク. データ重複排除
JP2014206982A (ja) * 2014-05-07 2014-10-30 株式会社日立製作所 ストレージシステムおよびそのデータ制御方法
JP2014225297A (ja) * 2014-08-22 2014-12-04 株式会社日立製作所 フラッシュメモリモジュール及びストレージ装置
WO2015162758A1 (ja) * 2014-04-24 2015-10-29 株式会社日立製作所 ストレージシステム
WO2017068617A1 (ja) * 2015-10-19 2017-04-27 株式会社日立製作所 ストレージシステム
JP2017142683A (ja) * 2016-02-10 2017-08-17 東芝メモリ株式会社 ストレージコントローラ、ストレージ装置、データ処理方法およびプログラム
JP2017182803A (ja) * 2016-03-29 2017-10-05 三星電子株式会社Samsung Electronics Co.,Ltd. メモリの重複除去方法及び重複除去dramメモリモジュール
JP2017188096A (ja) * 2016-03-31 2017-10-12 三星電子株式会社Samsung Electronics Co.,Ltd. 重複除去メモリモジュール及びそのメモリ重複除去方法
JP2017188094A (ja) * 2016-03-31 2017-10-12 三星電子株式会社Samsung Electronics Co.,Ltd. メモリモジュールの重複メモリ除去方法、及びそのためのメモリモジュール
JP2017208096A (ja) * 2016-05-20 2017-11-24 三星電子株式会社Samsung Electronics Co.,Ltd. データの回収方法及び格納方法並びに重複除去モジュール
JP2018022487A (ja) * 2016-08-03 2018-02-08 三星電子株式会社Samsung Electronics Co.,Ltd. メモリモジュール及びその動作方法
JP2018106545A (ja) * 2016-12-27 2018-07-05 富士通株式会社 情報処理装置、情報処理システム、情報処理方法及びプログラム
JP2018120594A (ja) * 2017-01-25 2018-08-02 三星電子株式会社Samsung Electronics Co.,Ltd. 最大化された重複除去メモリのためのシステム及び方法
JP2018181173A (ja) * 2017-04-20 2018-11-15 富士通株式会社 ストレージ制御装置、及びストレージ制御プログラム
JP2019057151A (ja) * 2017-09-21 2019-04-11 東芝メモリ株式会社 メモリシステムおよび制御方法
US11269811B2 (en) 2016-03-29 2022-03-08 Samsung Electronics Co., Ltd. Method and apparatus for maximized dedupable memory

Families Citing this family (177)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7640746B2 (en) * 2005-05-27 2010-01-05 Markon Technologies, LLC Method and system integrating solar heat into a regenerative rankine steam cycle
JP4464378B2 (ja) * 2006-09-05 2010-05-19 株式会社日立製作所 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法
US7840537B2 (en) 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
US7962706B2 (en) * 2008-02-14 2011-06-14 Quantum Corporation Methods and systems for improving read performance in data de-duplication storage
US8825617B2 (en) * 2008-03-14 2014-09-02 International Business Machines Corporation Limiting deduplication based on predetermined criteria
US8346730B2 (en) * 2008-04-25 2013-01-01 Netapp. Inc. Deduplication of data on disk devices based on a threshold number of sequential blocks
US7908436B1 (en) * 2008-04-25 2011-03-15 Netapp, Inc. Deduplication of data on disk devices using low-latency random read memory
US9098495B2 (en) 2008-06-24 2015-08-04 Commvault Systems, Inc. Application-aware and remote single instance data management
US8370309B1 (en) 2008-07-03 2013-02-05 Infineta Systems, Inc. Revision-tolerant data de-duplication
US8832034B1 (en) 2008-07-03 2014-09-09 Riverbed Technology, Inc. Space-efficient, revision-tolerant data de-duplication
US8166263B2 (en) 2008-07-03 2012-04-24 Commvault Systems, Inc. Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices
US8099571B1 (en) * 2008-08-06 2012-01-17 Netapp, Inc. Logical block replication with deduplication
US8086799B2 (en) * 2008-08-12 2011-12-27 Netapp, Inc. Scalable deduplication of stored data
US8078593B1 (en) 2008-08-28 2011-12-13 Infineta Systems, Inc. Dictionary architecture and methodology for revision-tolerant data de-duplication
WO2010036754A1 (en) 2008-09-26 2010-04-01 Commvault Systems, Inc. Systems and methods for managing single instancing data
US9015181B2 (en) 2008-09-26 2015-04-21 Commvault Systems, Inc. Systems and methods for managing single instancing data
US8244995B2 (en) * 2008-10-30 2012-08-14 Dell Products L.P. System and method for hierarchical wear leveling in storage devices
US8412677B2 (en) 2008-11-26 2013-04-02 Commvault Systems, Inc. Systems and methods for byte-level or quasi byte-level single instancing
WO2010103569A1 (en) * 2009-03-11 2010-09-16 Hitachi, Ltd. Storage system and control method for the same, and program
KR101504632B1 (ko) 2009-03-25 2015-03-20 삼성전자주식회사 레이드를 사용한 장치들과 방법들
US8401996B2 (en) 2009-03-30 2013-03-19 Commvault Systems, Inc. Storing a variable number of instances of data objects
US8321380B1 (en) 2009-04-30 2012-11-27 Netapp, Inc. Unordered idempotent replication operations
US8655848B1 (en) 2009-04-30 2014-02-18 Netapp, Inc. Unordered idempotent logical replication operations
US8578120B2 (en) 2009-05-22 2013-11-05 Commvault Systems, Inc. Block-level single instancing
US8665601B1 (en) 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US20110060882A1 (en) * 2009-09-04 2011-03-10 Petros Efstathopoulos Request Batching and Asynchronous Request Execution For Deduplication Servers
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8200641B2 (en) * 2009-09-11 2012-06-12 Dell Products L.P. Dictionary for data deduplication
US8560804B2 (en) 2009-09-14 2013-10-15 Bitmicro Networks, Inc. Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
US8671072B1 (en) 2009-09-14 2014-03-11 Netapp, Inc. System and method for hijacking inodes based on replication operations received in an arbitrary order
US8762338B2 (en) * 2009-10-07 2014-06-24 Symantec Corporation Analyzing backup objects maintained by a de-duplication storage system
US8799367B1 (en) * 2009-10-30 2014-08-05 Netapp, Inc. Using logical block addresses with generation numbers as data fingerprints for network deduplication
US8473690B1 (en) 2009-10-30 2013-06-25 Netapp, Inc. Using logical block addresses with generation numbers as data fingerprints to provide cache coherency
US8478933B2 (en) * 2009-11-24 2013-07-02 International Business Machines Corporation Systems and methods for performing deduplicated data processing on tape
US20110161560A1 (en) * 2009-12-31 2011-06-30 Hutchison Neil D Erase command caching to improve erase performance on flash memory
US9134918B2 (en) * 2009-12-31 2015-09-15 Sandisk Technologies Inc. Physical compression of data with flat or systematic pattern
EP2544084A4 (en) * 2010-03-04 2014-03-19 Nec Corp STORAGE DEVICE
JP4892072B2 (ja) * 2010-03-24 2012-03-07 株式会社東芝 ホスト装置と連携して重複データを排除するストレージ装置、同ストレージ装置を備えたストレージシステム、及び同システムにおける重複排除方法
US8935487B2 (en) 2010-05-05 2015-01-13 Microsoft Corporation Fast and low-RAM-footprint indexing for data deduplication
US9053032B2 (en) 2010-05-05 2015-06-09 Microsoft Technology Licensing, Llc Fast and low-RAM-footprint indexing for data deduplication
US20110276744A1 (en) 2010-05-05 2011-11-10 Microsoft Corporation Flash memory cache including for use with persistent key-value store
US8423735B2 (en) * 2010-05-21 2013-04-16 International Business Machines Corporation Space reservation in a deduplication system
US9063656B2 (en) 2010-06-24 2015-06-23 Dell Gloval B.V.—Singapore Branch System and methods for digest-based storage
US9678688B2 (en) 2010-07-16 2017-06-13 EMC IP Holding Company LLC System and method for data deduplication for disk storage subsystems
JP5423896B2 (ja) * 2010-08-31 2014-02-19 日本電気株式会社 ストレージシステム
US9092151B1 (en) * 2010-09-17 2015-07-28 Permabit Technology Corporation Managing deduplication of stored data
US9489404B2 (en) 2010-09-29 2016-11-08 International Business Machines Corporation De-duplicating data in a network with power management
WO2012045023A2 (en) 2010-09-30 2012-04-05 Commvault Systems, Inc. Archiving data objects using secondary copies
US10394757B2 (en) 2010-11-18 2019-08-27 Microsoft Technology Licensing, Llc Scalable chunk store for data deduplication
US9208472B2 (en) 2010-12-11 2015-12-08 Microsoft Technology Licensing, Llc Addition of plan-generation models and expertise by crowd contributors
US8959293B2 (en) 2010-12-14 2015-02-17 Microsoft Corporation Data deduplication in a virtualization environment
JP2012133655A (ja) * 2010-12-22 2012-07-12 Sony Corp 管理装置、管理方法、およびプログラム
US9110936B2 (en) 2010-12-28 2015-08-18 Microsoft Technology Licensing, Llc Using index partitioning and reconciliation for data deduplication
US8458145B2 (en) * 2011-01-20 2013-06-04 Infinidat Ltd. System and method of storage optimization
US9081511B2 (en) 2011-02-23 2015-07-14 International Business Machines Corporation Source-target relations mapping
US9021221B2 (en) 2011-03-08 2015-04-28 International Business Machines Corporation Cascaded, point-in-time-copy architecture with data deduplication
US8782362B2 (en) 2011-03-08 2014-07-15 International Business Machines Corporation Cyclic point-in-time-copy architecture with data deduplication
US20120233416A1 (en) 2011-03-08 2012-09-13 International Business Machines Corporation Multi-target, point-in-time-copy architecture with data deduplication
US9069477B1 (en) * 2011-06-16 2015-06-30 Amazon Technologies, Inc. Reuse of dynamically allocated memory
CN102833298A (zh) * 2011-06-17 2012-12-19 英业达集团(天津)电子技术有限公司 分布式的重复数据删除系统及其处理方法
US8521705B2 (en) 2011-07-11 2013-08-27 Dell Products L.P. Accelerated deduplication
US8930307B2 (en) 2011-09-30 2015-01-06 Pure Storage, Inc. Method for removing duplicate data from a storage array
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US8990171B2 (en) 2011-09-01 2015-03-24 Microsoft Corporation Optimization of a partially deduplicated file
US8620886B1 (en) 2011-09-20 2013-12-31 Netapp Inc. Host side deduplication
KR101826047B1 (ko) 2011-09-28 2018-02-07 삼성전자주식회사 저장 장치 및 그 구동 방법
US9372755B1 (en) 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
US9424175B1 (en) * 2011-11-30 2016-08-23 Emc Corporation System and method for improving cache performance
US8732403B1 (en) 2012-03-14 2014-05-20 Netapp, Inc. Deduplication of data blocks on storage devices
US8706971B1 (en) 2012-03-14 2014-04-22 Netapp, Inc. Caching and deduplication of data blocks in cache memory
US9020890B2 (en) 2012-03-30 2015-04-28 Commvault Systems, Inc. Smart archiving and data previewing for mobile devices
US9779103B2 (en) * 2012-04-23 2017-10-03 International Business Machines Corporation Preserving redundancy in data deduplication systems
US8996881B2 (en) 2012-04-23 2015-03-31 International Business Machines Corporation Preserving redundancy in data deduplication systems by encryption
US9262428B2 (en) 2012-04-23 2016-02-16 International Business Machines Corporation Preserving redundancy in data deduplication systems by designation of virtual address
US10133747B2 (en) 2012-04-23 2018-11-20 International Business Machines Corporation Preserving redundancy in data deduplication systems by designation of virtual device
US9043669B1 (en) 2012-05-18 2015-05-26 Bitmicro Networks, Inc. Distributed ECC engine for storage media
US9465737B1 (en) * 2012-07-02 2016-10-11 Toshiba Corporation Memory systems including a duplicate removing filter module that is separate from a cache module
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US9633022B2 (en) 2012-12-28 2017-04-25 Commvault Systems, Inc. Backup and restoration for a deduplicated file system
KR20180049148A (ko) * 2012-12-31 2018-05-10 샌디스크 테크놀로지스 엘엘씨 비휘발성 메모리에서 비동기 다이 동작을 위한 방법 및 시스템
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9734050B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US8873284B2 (en) 2012-12-31 2014-10-28 Sandisk Technologies Inc. Method and system for program scheduling in a multi-layer memory
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US10642505B1 (en) 2013-01-28 2020-05-05 Radian Memory Systems, Inc. Techniques for data migration based on per-data metrics and memory degradation
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US9189409B2 (en) 2013-02-19 2015-11-17 Avago Technologies General Ip (Singapore) Pte. Ltd. Reducing writes to solid state drive cache memories of storage controllers
US9423457B2 (en) 2013-03-14 2016-08-23 Bitmicro Networks, Inc. Self-test solution for delay locked loops
US9400617B2 (en) 2013-03-15 2016-07-26 Bitmicro Networks, Inc. Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained
US9971524B1 (en) 2013-03-15 2018-05-15 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9842024B1 (en) 2013-03-15 2017-12-12 Bitmicro Networks, Inc. Flash electronic disk with RAID controller
US9858084B2 (en) 2013-03-15 2018-01-02 Bitmicro Networks, Inc. Copying of power-on reset sequencer descriptor from nonvolatile memory to random access memory
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9734067B1 (en) 2013-03-15 2017-08-15 Bitmicro Networks, Inc. Write buffering
US9875205B1 (en) 2013-03-15 2018-01-23 Bitmicro Networks, Inc. Network of memory systems
US9639461B2 (en) 2013-03-15 2017-05-02 Sandisk Technologies Llc System and method of processing of duplicate data at a data storage device
US9672178B1 (en) 2013-03-15 2017-06-06 Bitmicro Networks, Inc. Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system
US9934045B1 (en) 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US10102144B2 (en) * 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
KR20150002297A (ko) * 2013-06-28 2015-01-07 삼성전자주식회사 스토리지 시스템 및 그의 동작 방법
TWI515736B (zh) * 2013-07-25 2016-01-01 慧榮科技股份有限公司 資料儲存裝置以及快閃記憶體控制方法
US9454400B2 (en) * 2013-08-16 2016-09-27 Red Hat Israel, Ltd. Memory duplication by origin host in virtual machine live migration
US9459902B2 (en) * 2013-08-16 2016-10-04 Red Hat Israel, Ltd. Memory duplication by destination host in virtual machine live migration
US9418131B1 (en) 2013-09-24 2016-08-16 Emc Corporation Synchronization of volumes
US9378106B1 (en) * 2013-09-26 2016-06-28 Emc Corporation Hash-based replication
WO2015065312A1 (en) * 2013-10-28 2015-05-07 Hitachi, Ltd. Method and apparatus of data de-duplication for solid state memory
US10545918B2 (en) 2013-11-22 2020-01-28 Orbis Technologies, Inc. Systems and computer implemented methods for semantic data compression
KR20150067583A (ko) * 2013-12-10 2015-06-18 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 중복 데이터 제거 방법
KR102140792B1 (ko) 2013-12-24 2020-08-03 삼성전자주식회사 데이터 중복 제거를 수행할 수 있는 데이터 저장 장치의 동작 방법들
US10324897B2 (en) 2014-01-27 2019-06-18 Commvault Systems, Inc. Techniques for serving archived electronic mail
US9342465B1 (en) 2014-03-31 2016-05-17 Emc Corporation Encrypting data in a flash-based contents-addressable block device
US9606870B1 (en) 2014-03-31 2017-03-28 EMC IP Holding Company LLC Data reduction techniques in a flash-based key/value cluster storage
US9952991B1 (en) 2014-04-17 2018-04-24 Bitmicro Networks, Inc. Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
US10078604B1 (en) 2014-04-17 2018-09-18 Bitmicro Networks, Inc. Interrupt coalescing
US10042792B1 (en) 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash device
US20150317083A1 (en) * 2014-05-05 2015-11-05 Virtium Technology, Inc. Synergetic deduplication
US9396243B1 (en) 2014-06-27 2016-07-19 Emc Corporation Hash-based replication using short hash handle and identity bit
US20170046092A1 (en) * 2014-07-04 2017-02-16 Hewlett Packard Enterprise Development Lp Data deduplication
WO2016006050A1 (ja) * 2014-07-09 2016-01-14 株式会社日立製作所 ストレージシステム及び記憶制御方法
US9483199B1 (en) * 2014-08-18 2016-11-01 Permabit Technology Corporation Data deduplication using multiple devices
US9575680B1 (en) 2014-08-22 2017-02-21 Veritas Technologies Llc Deduplication rehydration
US10423495B1 (en) 2014-09-08 2019-09-24 Veritas Technologies Llc Deduplication grouping
US10552085B1 (en) 2014-09-09 2020-02-04 Radian Memory Systems, Inc. Techniques for directed data migration
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US10025843B1 (en) 2014-09-24 2018-07-17 EMC IP Holding Company LLC Adjusting consistency groups during asynchronous replication
US9792069B2 (en) 2014-09-29 2017-10-17 Western Digital Technologies, Inc. Offline deduplication for solid-state storage devices
US9626121B2 (en) * 2014-12-19 2017-04-18 International Business Machines Corporation De-duplication as part of other routinely performed processes
TWI709864B (zh) * 2015-01-29 2020-11-11 韓商愛思開海力士有限公司 一種利用重複刪除過程的儲存系統、方法及裝置
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US10324914B2 (en) 2015-05-20 2019-06-18 Commvalut Systems, Inc. Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files
US9940337B2 (en) * 2015-05-31 2018-04-10 Vmware, Inc. Predictive probabilistic deduplication of storage
US10552058B1 (en) 2015-07-17 2020-02-04 Radian Memory Systems, Inc. Techniques for delegating data processing to a cooperative memory controller
TWI569139B (zh) * 2015-08-07 2017-02-01 群聯電子股份有限公司 有效資料合併方法、記憶體控制器與記憶體儲存裝置
US11625181B1 (en) 2015-08-24 2023-04-11 Pure Storage, Inc. Data tiering using snapshots
US11294588B1 (en) * 2015-08-24 2022-04-05 Pure Storage, Inc. Placing data within a storage device
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
US9690512B2 (en) 2015-11-23 2017-06-27 Samsung Electronics Co., Ltd. Method of similarity testing by syndromes and apparatus therefore
US20170161202A1 (en) * 2015-12-02 2017-06-08 Samsung Electronics Co., Ltd. Flash memory device including address mapping for deduplication, and related methods
US10101925B2 (en) * 2015-12-23 2018-10-16 Toshiba Memory Corporation Data invalidation acceleration through approximation of valid data counts
US10152527B1 (en) 2015-12-28 2018-12-11 EMC IP Holding Company LLC Increment resynchronization in hash-based replication
US10310951B1 (en) 2016-03-22 2019-06-04 EMC IP Holding Company LLC Storage system asynchronous data replication cycle trigger with empty cycle detection
US10324635B1 (en) 2016-03-22 2019-06-18 EMC IP Holding Company LLC Adaptive compression for data replication in a storage system
US10678704B2 (en) 2016-03-29 2020-06-09 Samsung Electronics Co., Ltd. Method and apparatus for enabling larger memory capacity than physical memory size
US10528284B2 (en) 2016-03-29 2020-01-07 Samsung Electronics Co., Ltd. Method and apparatus for enabling larger memory capacity than physical memory size
US10565058B1 (en) 2016-03-30 2020-02-18 EMC IP Holding Company LLC Adaptive hash-based data replication in a storage system
US9959073B1 (en) 2016-03-30 2018-05-01 EMC IP Holding Company LLC Detection of host connectivity for data migration in a storage system
US9959063B1 (en) 2016-03-30 2018-05-01 EMC IP Holding Company LLC Parallel migration of multiple consistency groups in a storage system
US10095428B1 (en) 2016-03-30 2018-10-09 EMC IP Holding Company LLC Live migration of a tree of replicas in a storage system
US10013200B1 (en) 2016-06-29 2018-07-03 EMC IP Holding Company LLC Early compression prediction in a storage system with granular block sizes
US10048874B1 (en) 2016-06-29 2018-08-14 EMC IP Holding Company LLC Flow control with a dynamic window in a storage system with latency guarantees
US9983937B1 (en) 2016-06-29 2018-05-29 EMC IP Holding Company LLC Smooth restart of storage clusters in a storage system
US10152232B1 (en) 2016-06-29 2018-12-11 EMC IP Holding Company LLC Low-impact application-level performance monitoring with minimal and automatically upgradable instrumentation in a storage system
US10083067B1 (en) 2016-06-29 2018-09-25 EMC IP Holding Company LLC Thread management in a storage system
JP6516931B2 (ja) * 2016-07-27 2019-05-22 株式会社日立製作所 計算機システムおよびデータ格納方法
US10162831B2 (en) 2016-08-12 2018-12-25 International Business Machines Corporation Lockless management of deduplicated data using reference tags
US10552050B1 (en) 2017-04-07 2020-02-04 Bitmicro Llc Multi-dimensional computer storage system
JP2018181207A (ja) * 2017-04-20 2018-11-15 富士通株式会社 ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム
US10896153B2 (en) * 2018-03-30 2021-01-19 EMC IP Holding Company LLC Large block misaligned deduplication
CN109144897B (zh) * 2018-09-04 2023-07-14 杭州阿姆科技有限公司 一种实现大容量ssd磁盘的方法
US11392551B2 (en) * 2019-02-04 2022-07-19 EMC IP Holding Company LLC Storage system utilizing content-based and address-based mappings for deduplicatable and non-deduplicatable types of data
EP3959613A4 (en) * 2019-04-22 2023-04-26 Winterrowd, Mark, William HARDWARE APPLICATION OF LIMITS ON ASPECTS OF CONTROL, SPACE, TIME, MODULARITY, REFERENCE, INITIALIZATION AND MUTABILITY OF A SOFTWARE
KR20210034897A (ko) 2019-09-23 2021-03-31 삼성전자주식회사 스토리지 장치 및 그것의 동작 방법
CN110781101A (zh) * 2019-10-25 2020-02-11 苏州浪潮智能科技有限公司 一种一对多映射关系的存储方法、装置、电子设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000020252A (ja) * 1998-06-29 2000-01-21 Hitachi Ltd 不揮発性半導体メモリを用いた記憶装置
US6411546B1 (en) * 1997-03-31 2002-06-25 Lexar Media, Inc. Nonvolatile memory using flexible erasing methods and method and system for using same
JP2003241901A (ja) * 2002-02-19 2003-08-29 Hitachi Software Eng Co Ltd ディスク共用制御方法および装置
JP2005332415A (ja) * 2005-06-16 2005-12-02 Renesas Technology Corp 半導体ディスク装置
EP1739565A1 (en) * 2005-06-21 2007-01-03 Hitachi, Ltd. Storage system using flash memory
US20070038837A1 (en) * 2005-08-15 2007-02-15 Microsoft Corporation Merging identical memory pages

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6513051B1 (en) * 1999-07-16 2003-01-28 Microsoft Corporation Method and system for backing up and restoring files stored in a single instance store
US6389433B1 (en) * 1999-07-16 2002-05-14 Microsoft Corporation Method and system for automatically merging files into a single instance store
US6477544B1 (en) * 1999-07-16 2002-11-05 Microsoft Corporation Single instance store for file systems
US6928526B1 (en) * 2002-12-20 2005-08-09 Datadomain, Inc. Efficient data storage system
CN100511181C (zh) * 2003-08-29 2009-07-08 松下电器产业株式会社 非易失性存储装置及其写入方法
CN100437517C (zh) * 2004-04-28 2008-11-26 松下电器产业株式会社 非易失性存储装置和数据写入方法
US7853750B2 (en) * 2007-01-30 2010-12-14 Netapp, Inc. Method and an apparatus to store data patterns

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6411546B1 (en) * 1997-03-31 2002-06-25 Lexar Media, Inc. Nonvolatile memory using flexible erasing methods and method and system for using same
JP2000020252A (ja) * 1998-06-29 2000-01-21 Hitachi Ltd 不揮発性半導体メモリを用いた記憶装置
JP2003241901A (ja) * 2002-02-19 2003-08-29 Hitachi Software Eng Co Ltd ディスク共用制御方法および装置
JP2005332415A (ja) * 2005-06-16 2005-12-02 Renesas Technology Corp 半導体ディスク装置
EP1739565A1 (en) * 2005-06-21 2007-01-03 Hitachi, Ltd. Storage system using flash memory
US20070038837A1 (en) * 2005-08-15 2007-02-15 Microsoft Corporation Merging identical memory pages

Cited By (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010244104A (ja) * 2009-04-01 2010-10-28 Nec Corp ディスクアレイ装置、ディスクアレイ装置の管理方法及びプログラム
JP2012525633A (ja) * 2009-04-30 2012-10-22 ネットアップ,インコーポレイテッド フラッシュベースのデータ保存ストレージシステム
WO2011004634A1 (ja) * 2009-07-09 2011-01-13 株式会社日立製作所 ファイル管理方法、計算機、及びファイル管理プログラム
WO2011025967A2 (en) * 2009-08-28 2011-03-03 Fusion-Io, Inc. Apparatus, system, and method for improved data deduplication
WO2011025967A3 (en) * 2009-08-28 2011-06-16 Fusion-Io, Inc. Apparatus, system, and method for improved data deduplication
US8793227B2 (en) 2009-09-18 2014-07-29 Hitachi, Ltd. Storage system for eliminating duplicated data
US9317519B2 (en) 2009-09-18 2016-04-19 Hitachi, Ltd. Storage system for eliminating duplicated data
JP2012523023A (ja) * 2009-09-18 2012-09-27 株式会社日立製作所 重複したデータを排除するストレージシステム
JP2011118712A (ja) * 2009-12-04 2011-06-16 Fujitsu Ltd データ管理プログラム、データ管理装置、およびデータ管理方法
JP2011175532A (ja) * 2010-02-25 2011-09-08 Nec Corp 制御装置、メモリ制御方法およびプログラム
JP2011191933A (ja) * 2010-03-12 2011-09-29 Fujitsu Ltd ストレージ装置、ストレージ装置制御プログラムおよびストレージ装置制御方法
JP2011232941A (ja) * 2010-04-27 2011-11-17 Nec Corp ディスクアレイ装置、及び、ミラーリング制御方法
JP2012058825A (ja) * 2010-09-06 2012-03-22 Nec Corp ストレージ装置及びストレージ装置の記憶資源の使用効率向上方法
US9343153B2 (en) 2010-10-26 2016-05-17 Hitachi, Ltd. De-duplication in flash memory module
JP2013532853A (ja) * 2010-10-26 2013-08-19 株式会社日立製作所 ストレージ装置及びデータ制御方法
US9111618B2 (en) 2010-10-26 2015-08-18 Hitachi, Ltd. De-duplication in flash memory module
US8352676B2 (en) 2010-10-26 2013-01-08 Hitachi, Ltd. Apparatus and method to store a plurality of data having a common pattern and guarantee codes associated therewith in a single page
WO2012056491A1 (en) 2010-10-26 2012-05-03 Hitachi, Ltd. Storage apparatus and data control method
US8799562B2 (en) 2010-10-26 2014-08-05 Hitachi, Ltd. Storage apparatus and data control method for generating and storing format data and guarantee codes
JP2012168853A (ja) * 2011-02-16 2012-09-06 Nec Corp ストレージ制御装置、ストレージシステム、ストレージ制御方法及びそのためのプログラム
JP2015212971A (ja) * 2011-04-08 2015-11-26 マイクロン テクノロジー, インク. データ重複排除
US10282128B2 (en) 2011-04-08 2019-05-07 Micron Technology, Inc. Data deduplication
US9778874B2 (en) 2011-04-08 2017-10-03 Micron Technology, Inc. Data deduplication
JP2014513345A (ja) * 2011-04-08 2014-05-29 マイクロン テクノロジー, インク. データ重複排除
US9223511B2 (en) 2011-04-08 2015-12-29 Micron Technology, Inc. Data deduplication
KR101382273B1 (ko) * 2011-09-30 2014-04-10 인하대학교 산학협력단 Ssd 저장장치의 마모도 감소를 위한 ssd 기반 서버급 저장장치의 복합적 데이터 중복제거 방법
JP2013214147A (ja) * 2012-03-30 2013-10-17 Toshiba Corp ディスクアレイ装置
US10089033B2 (en) 2014-04-24 2018-10-02 Hitachi, Ltd. Storage system
WO2015162758A1 (ja) * 2014-04-24 2015-10-29 株式会社日立製作所 ストレージシステム
JP2014206982A (ja) * 2014-05-07 2014-10-30 株式会社日立製作所 ストレージシステムおよびそのデータ制御方法
JP2014225297A (ja) * 2014-08-22 2014-12-04 株式会社日立製作所 フラッシュメモリモジュール及びストレージ装置
WO2017068617A1 (ja) * 2015-10-19 2017-04-27 株式会社日立製作所 ストレージシステム
JP2017142683A (ja) * 2016-02-10 2017-08-17 東芝メモリ株式会社 ストレージコントローラ、ストレージ装置、データ処理方法およびプログラム
US10649675B2 (en) 2016-02-10 2020-05-12 Toshiba Memory Corporation Storage controller, storage device, data processing method, and computer program product
JP2017182803A (ja) * 2016-03-29 2017-10-05 三星電子株式会社Samsung Electronics Co.,Ltd. メモリの重複除去方法及び重複除去dramメモリモジュール
US11269811B2 (en) 2016-03-29 2022-03-08 Samsung Electronics Co., Ltd. Method and apparatus for maximized dedupable memory
JP2017188094A (ja) * 2016-03-31 2017-10-12 三星電子株式会社Samsung Electronics Co.,Ltd. メモリモジュールの重複メモリ除去方法、及びそのためのメモリモジュール
JP2017188096A (ja) * 2016-03-31 2017-10-12 三星電子株式会社Samsung Electronics Co.,Ltd. 重複除去メモリモジュール及びそのメモリ重複除去方法
JP2017208096A (ja) * 2016-05-20 2017-11-24 三星電子株式会社Samsung Electronics Co.,Ltd. データの回収方法及び格納方法並びに重複除去モジュール
KR20180015565A (ko) * 2016-08-03 2018-02-13 삼성전자주식회사 메모리 모듈 및 그것의 동작 방법
JP2018022487A (ja) * 2016-08-03 2018-02-08 三星電子株式会社Samsung Electronics Co.,Ltd. メモリモジュール及びその動作方法
KR102216116B1 (ko) * 2016-08-03 2021-02-16 삼성전자주식회사 메모리 모듈 및 그것의 동작 방법
JP2018106545A (ja) * 2016-12-27 2018-07-05 富士通株式会社 情報処理装置、情報処理システム、情報処理方法及びプログラム
JP2018120594A (ja) * 2017-01-25 2018-08-02 三星電子株式会社Samsung Electronics Co.,Ltd. 最大化された重複除去メモリのためのシステム及び方法
JP7058132B2 (ja) 2017-01-25 2022-04-21 三星電子株式会社 最大化された重複除去メモリのためのシステム及び方法
JP2018181173A (ja) * 2017-04-20 2018-11-15 富士通株式会社 ストレージ制御装置、及びストレージ制御プログラム
US10691550B2 (en) 2017-04-20 2020-06-23 Fujitsu Limited Storage control apparatus and storage control method
JP2019057151A (ja) * 2017-09-21 2019-04-11 東芝メモリ株式会社 メモリシステムおよび制御方法

Also Published As

Publication number Publication date
US20090089483A1 (en) 2009-04-02
CN101398783A (zh) 2009-04-01
EP2042995A1 (en) 2009-04-01
US8156279B2 (en) 2012-04-10
US8417882B2 (en) 2013-04-09
JP5026213B2 (ja) 2012-09-12
US20110035541A1 (en) 2011-02-10
EP2042995B1 (en) 2012-10-31
US20120198139A1 (en) 2012-08-02
CN101398783B (zh) 2011-02-02
US7818495B2 (en) 2010-10-19

Similar Documents

Publication Publication Date Title
JP5026213B2 (ja) ストレージ装置及びデータ重複排除方法
JP7446482B2 (ja) 順次的にプログラムするメモリサブシステムにおいて非同期電力損失をハンドリングすること
US9996435B2 (en) Reliability scheme using hybrid SSD/HDD replication with log structured management
US7761655B2 (en) Storage system and method of preventing deterioration of write performance in storage system
JP4837731B2 (ja) プログラム可能な耐久度を有するフラッシュメモリ
US9176817B2 (en) Data management in solid state storage devices
US8312203B2 (en) Semiconductor storage device and method of controlling a semiconductor storage device by allocating a physical block composed of plural pages to a group of logical addresses
CN102054533B (zh) 隔离顺序、随机和系统数据以减少垃圾回收的针对基于页映射的非易失性半导体存储器
JP4931810B2 (ja) 最適化されたシーケンシャルなクラスタの管理のためのfat分析
US7831764B2 (en) Storage system having plural flash memory drives and method for controlling data storage
US9304685B2 (en) Storage array system and non-transitory recording medium storing control program
EP2631916A1 (en) Data deletion method and device
US20100082878A1 (en) Memory controller, nonvolatile storage device, nonvolatile storage system, and data writing method
KR20070087571A (ko) 스크래치 패드 블록
JP2007199905A (ja) 半導体記憶装置の制御方法
US20100318726A1 (en) Memory system and memory system managing method
JP7392080B2 (ja) メモリシステム
JP2012058770A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP7475989B2 (ja) メモリシステムおよび制御方法
TW202230110A (zh) 記憶體系統及控制方法
WO2018142622A1 (ja) 計算機
JP5180726B2 (ja) 記憶装置およびデータ書き込み制御方法
JP2012037971A (ja) メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法
JP2009026062A (ja) メモリコントローラ、メモリシステム及びメモリ制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120312

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120522

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120620

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150629

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5026213

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees