JP5603997B2 - ストレージ装置及びデータ制御方法 - Google Patents
ストレージ装置及びデータ制御方法 Download PDFInfo
- Publication number
- JP5603997B2 JP5603997B2 JP2013502328A JP2013502328A JP5603997B2 JP 5603997 B2 JP5603997 B2 JP 5603997B2 JP 2013502328 A JP2013502328 A JP 2013502328A JP 2013502328 A JP2013502328 A JP 2013502328A JP 5603997 B2 JP5603997 B2 JP 5603997B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- user data
- page
- flash memory
- physical
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 108
- 230000015654 memory Effects 0.000 claims description 133
- 238000012937 correction Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 description 70
- 238000007726 management method Methods 0.000 description 32
- 238000006243 chemical reaction Methods 0.000 description 24
- 230000005055 memory storage Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 7
- 238000013500 data storage Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 239000000872 buffer Substances 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
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)
- Quality & Reliability (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は以上の点を考慮してなされたもので、データ毎に異なる保証コードが付与されたデータを重複排除して、データ容量効率を向上させることが可能なストレージ装置およびデータ制御方法を提案しようとするものである。
(1−1)計算機システムのハードウェア構成
まず、本実施の形態にかかる計算機システム1のハードウェア構成について説明する。図1に示すように、本実施の形態にかかる計算機システム1は、ストレージ装置11と、第1および第2のホスト12A、12B(以降、第1および第2のホストを単にホスト12と称する場合もある。)と、管理端末13と、SAN(Storage Area Network)14と、を備えている。
Processing Unit)およびメモリ等の情報処理資源を備えたコンピュータ装置であって、例えば、パーソナルコンピュータや、ワークステーション、メインフレームなどから構成される。ホスト12とストレージ装置11との通信は、例えば、SCSI(Small Computer System Interface)などのブロックプロトコルが用いられる。また、ホスト20は、キーボード、スイッチやポインティングデバイス、マイクロフォン等の情報入力装置と、モニタディスプレイやスピーカ等の情報出力装置とを備えている。
次に、ストレージ装置11の内部構成について説明する。まず、フラッシュメモリモジュール21の内部構成の詳細について説明する。フラッシュメモリモジュール21は、フラッシュ制御装置210とフラッシュメモリチップ31A〜31H(以降、フラッシュメモリ31と称する場合もある。)とから構成される。なお、本実施形態では、フラッシュメモリチップ31は、図2に示すように6つのフラッシュメモリから構成されるが、かかる例に限定されず1以上の個数であればよい。
(1−3−1)重複排除処理
次に、ストレージ装置11における重複排除処理について説明する。上記したように、フラッシュメモリモジュール21のコントローラ213が重複排除処理を実行する。図7に示すように、まず、コントローラ213は、重複排除の対象となる論理ページリストを取得する(S11)。論理ページリストは、ページ内のユーザデータが格納されているデータ部の内容が同一で、保証コードが格納されているコード部の内容が異なる2つ以上のページから構成される。
次に、リクラメーション処理およびリフレッシュ処理の詳細について説明する。図8に示すように、まず、コントローラ231は、リクラメーションまたはリフレッシュの対象となる物理ブロックリストを取得する(S21)。例えば、コントローラ231は、無効ページの多い物理ブロックをリクラメーション処理の対象とし、長時間アクセスされていない物理ブロックをリフレッシュ処理の対象とする。
次に、マージ処理について説明する。ここで、マージ処理とは、既に重複排除処理が行われている論理ページについて、さらに、同一のデータを有する論理ページまたは物理ページについてそれらを統合する処理を意味する。上記した重複排除処理は、上記したように大サイズのデータをライトする場合や、リクラメーション処理やリフレッシュ処理時などに実行される。したがって、同一のフラッシュメモリモジュール21内で重複排除処理がまだ実行されていない論理ページが存在する場合がある。また、ストレージ装置11に複数のフラッシュメモリモジュール21が存在する場合には、各フラッシュメモリモジュール21内で重複排除処理が実行されるため、複数のフラッシュメモリモジュールにおいて同一のデータを含む論理ページが存在する場合がある。この場合、マージ処理を実行することにより、同一のデータを統合して、さらなるデータ容量の縮減を実現することが可能となる。
次に、リード処理の処理手順について説明する。図11に示すように、コントローラ231は、リード対象となる論理ページアドレスを取得する(S41)。具体的に、コントローラ231は、ホスト12からのリードコマンドや、リクラメーション処理やリフレッシュ処理などの内部制御のコピー時にリード対象となる論理ページアドレスを取得する。
以上のように、本実施の形態による計算機システム1では、フラッシュメモリチップに書き込まれる複数のデータのうち、ユーザデータを含むデータ部が共通する複数のデータについて、データと保証コードとを分けて、1つのデータを物理ページに格納し、複数のデータに対応する保証コードを連結して物理ページに格納する。これにより、保証コードが付与されたデータに対しても重複排除を行って、記憶媒体への書き込み量を縮減することによりフラッシュメモリの長寿命化を図ることができる。さらに、追記型の書き込み方法を採用するフラッシュメモリなどの記憶媒体において、ユーザが使用していない未使用領域を増加させて、未使用領域をデータの追記用の領域とすることにより、性能安定性の向上を図ることが可能となる。
(2−1)計算機システムのハードウェア構成
本実施の形態にかかる計算機システム2のハードウェア構成は、第1の実施の形態にかかる計算機システム1のハードウェア構成と同様であるため、詳細な説明は省略する。本実施の形態は、複数の論理ページの重複排除を実行する点で第1の実施の形態と共通するが、さらに、重複排除対象のデータ部を圧縮する点で第1の実施形態と異なっている。なお、本実施の形態においても、重複排除対象の論理ページの探索方法は、例えば、大サイズのデータをライトする場合や、リクラメーション処理やリフレッシュ処理などのデータ再配置時に、大サイズのデータの中から重複排除の対象となる論理ページの組み合わせを検索する。また、各ページのデータ部のハッシュ値を算出して管理し、ハッシュ値に基づいて、動的にデータ部の一致するページの組み合わせを検索するようにしてもよい。なお、本実施形態では、説明を容易にするために、一定間隔で区切られており、アドレスの連続している論理ページを対象として以下説明する。
本実施の形態にかかるストレージ装置11の内部構成については、第1の実施の形態と同様の構成についての詳細な説明は省略し、第1の実施の形態と異なる構成について特に詳細に説明する。まず、本実施の形態における重複排除の概要について、第1の実施の形態と異なる点について説明する。
0〜Data n−1」を圧縮して、圧縮データ(Comp Data)72に変換する。
0〜C n−1」を格納する。これにより、ページ44およびページ45の2つのページがページ71の1つのページに集約される。なお、ページ71のすべてを圧縮データ72と保証コード73を格納するために使用してもよいし、空き領域(reserve)に管理テーブル等の管理情報を格納してもよい。
(2−3−1)重複排除処理
次に、本実施形態にかかるストレージ装置11における重複排除処理について説明する。以下では、第1実施の形態と異なる処理について特に説明し、第1の実施の形態と同様の構成については説明を省略する。図14に示すように、まず、コントローラ213は、重複排除の対象となる論理ページリストを取得する(S51)。論理ページリストは、ページ内のユーザデータが格納されているデータ部の内容が同一で、保証コードが格納されているコード部の内容が異なる少なくとも3つ以上のページから構成される。
本実施の形態にかかるリクラメーション処理およびリフレッシュ処理は、第1の実施の形態にかかるリクラメーション処理およびリフレッシュ処理とほぼ同様のため、異なる点について詳細に説明する。本実施の形態では、図15に示すように、コントローラ231は、ステップS63において処理の対象となる物理ページXを取得した後、物理ページXを参照している論理ページの代表アドレスを取得する(S64)点で第1の実施の形態と異なっている。
本実施の形態にかかるリード処理についても、第1の実施の形態にかかるリード処理と異なる点について特に詳細に説明する。図16に示すように、コントローラ231は、リード対象となる論理ページアドレスを取得する(S71)。
以上のように、本実施の形態による計算機システム2では、重複排除処理に加え、さらに、重複排除対象となるデータ部を圧縮する。これにより、保証コードが付与されたデータに対しても重複排除を行って、さらに、データ部を圧縮して、記憶媒体への書き込み量を縮減することによりフラッシュメモリの長寿命化を図ることができる。さらに、追記型の書き込み方法を採用するフラッシュメモリなどの記憶媒体において、ユーザが使用していない未使用領域を増加させて、未使用領域をデータの追記用の領域とすることにより、性能安定性の向上を図ることが可能となる。
(3−1)計算機システムのハードウェア構成
本実施の形態にかかる計算機システム3のハードウェア構成は、第1の実施の形態にかかる計算機システム1のフラッシュメモリストレージ17が、ストレージ装置11とは別体の装置として構成されている点で異なっている。本実施の形態は、複数の論理ページの重複排除を実行する点で第1の実施の形態と共通するが、ストレージ装置11とフラッシュメモリストレージ17とが連携して重複排除を実行する点で異なっている。具体的に、ストレージ装置11が、ホスト12からの要求に応じて記憶領域に書き込むフォーマットデータ等について、フラッシュメモリストレージ17に実際にデータを送信するのではなく、特定のパタンを送信することによりデータ転送量を削減している。
次に、ストレージ装置11とフラッシュメモリストレージ17との間で実行される重複排除処理について説明する。
本実施形態にかかる計算機システム3によれば、特定のパタン情報に基づいて、記憶領域にデータおよび保証コードを書き込む。これにより、データ書き込みにおけるデータ転送量を削減することができる。さらに、保証コードが付与されたデータに対しても重複排除を行って、記憶媒体への書き込み量を縮減することによりフラッシュメモリの長寿命化を図ることができる。さらに、追記型の書き込み方法を採用するフラッシュメモリなどの記憶媒体において、ユーザが使用していない未使用領域を増加させて、未使用領域をデータの追記用の領域とすることにより、性能安定性の向上を図ることが可能となる。
なお、上述の実施の形態においては、フラッシュ制御装置210に格納されている各種プログラムに基づいて、重複排除処理等を実行しているが、かかる例に限定されず、例えば、フラッシュ制御装置210をストレージ装置11とは別体の装置に設けて、当該フラッシュ制御装置210と協同して各種機能を実現するようにしてもよい。また、フラッシュ制御装置210に格納されている各種プログラムをストレージ装置11とは別体の他の装置に設けて、当該プログラムがフラッシュ制御装置210に呼び出されることにより各種機能を実現するようにしてもよい。
112 ホストインタフェース
113 ストレージインタフェース
114 保守インタフェース
115 CPU
116 メモリ
12 ホスト
13 管理端末
14 SAN
16 コネクタ
17 フラッシュメモリストレージ装置
21 フラッシュメモリモジュール
210 フラッシュ制御装置
211 ストレージインタフェース
212 CPU
213 コントローラ
213 メモリ
215 バッファ
216 フラッシュメモリインタフェース
31 フラッシュメモリチップ
Claims (17)
- 複数のフラッシュメモリモジュールと、前記複数のフラッシュメモリモジュールに接続されるストレージコントローラと、を備え、
前記複数のフラッシュメモリモジュールのそれぞれは、
データの書き込み及び読み出しの単位である複数の物理ページを有する少なくとも1つのフラッシュメモリチップと、前記少なくとも1つのフラッシュメモリチップに接続されるメモリコントローラと、
を備え、
前記ストレージコントローラは、
複数のユーザデータと、前記複数のユーザデータのそれぞれに付与され、それぞれ異なる複数の保証コードと、を前記フラッシュメモリモジュールに送信し、
前記フラッシュメモリモジュールの前記メモリコントローラは、
前記複数のユーザデータが共通のパタンを有する場合、前記複数のユーザデータを圧縮して圧縮ユーザデータとし、前記圧縮ユーザデータと、前記複数のユーザデータに付与されている前記複数の保証コードと、を前記複数の物理ページのうちの1つの物理ページに格納する
ことを特徴とする、ストレージ装置。 - 前記メモリコントローラは、
前記フラッシュメモリモジュールの論理的な領域を前記ストレージコントローラに提供し、
前記論理的な領域を複数の論理ページに分割して管理し、
前記複数の物理ページを管理し、
前記複数の論理ページに関連付けられた前記複数のユーザデータのうち、共通のパタンを有するユーザデータをそれぞれ分割し、
前記複数のユーザデータの1つを1つの前記物理ページに格納し、
前記複数のユーザデータの1つに対応する前記保証コードのそれぞれを連結して1つの前記物理ページに格納する
ことを特徴とする、請求項1に記載のストレージ装置。 - 前記フラッシュメモリモジュールは、
前記論理ページと前記物理ページとを対応付けて管理する管理テーブルを格納するメモリを備え、
前記管理テーブルには、前記データが格納されている前記論理ページのアドレスと、前記データに対応する前記ユーザデータが格納されている前記物理ページのアドレスと、前記データに対応する前記保証コードが格納されている前記物理ページのアドレスとが関連付けて格納されていることを特徴とする、請求項2に記載のストレージ装置。 - 前記メモリコントローラは、
前記論理ページに格納されている複数の前記ユーザデータのうち、3つ以上の前記ユーザデータが共通している場合に、前記ユーザデータと前記保証コードを分けてそれぞれ異なる前記物理ページに格納することを特徴とする、請求項2に記載のストレージ装置。 - 前記メモリコントローラは、
前記論理ページに対応付けられた複数の前記ユーザデータのうち、共通のパタンを有するユーザデータをそれぞれ分割し、前記ユーザデータの1つと複数の保証コードが連結された保証コードのグループとを格納することを特徴とする、請求項2に記載のストレージ装置。 - 前記ストレージコントローラは、
前記共通のパタンを有する前記ユーザデータの圧縮後のデータサイズが所定のサイズまたは所定以下のサイズとなる場合に、前記圧縮ユーザデータと前記保証コードとを前記物理ページに格納することを特徴とする、請求項5に記載のストレージ装置。 - 前記フラッシュメモリモジュールにフォーマット情報を発行するインタフェースを備え、
前記フラッシュメモリモジュールのメモリコントローラは、
前記フォーマット情報に基づいて、フォーマットパタンを有する前記ユーザデータと、前記ユーザデータに対応付けられた前記保証コードとを生成することを特徴とする、請求項1に記載のストレージ装置。 - 前記メモリコントローラは、
1回の読み出し処理で、前記複数の物理ページのうちの1つの物理ページに格納された、前記複数の保証コードとともに前記圧縮ユーザデータ読み出す
ことを特徴とする、請求項1に記載のストレージ装置。 - 前記複数の保証コードは、対応する前記ユーザデータのビットエラー訂正符号及び論理アドレスを含む
ことを特徴とする、請求項1に記載のストレージ装置。 - 前記保証コードは、対応する前記ユーザデータの値に依存しない値を含む
ことを特徴とする、請求項1に記載のストレージ装置。 - 前記データの共通のパタンは、0である
ことを特徴とする、請求項1に記載のストレージ装置。 - 複数のフラッシュメモリモジュールと、前記複数のフラッシュメモリモジュールに接続されるストレージコントローラと、を備えるストレージ装置を用いたデータ制御方法であって、
前記複数のフラッシュメモリモジュールのそれぞれは、
データの書込み及び読み出しの単位である複数の物理ページを有する少なくとも1つのフラッシュメモリチップと、前記少なくとも1つのフラッシュメモリチップに接続されるメモリコントローラと、
を備え、
前記ストレージコントローラが、複数のユーザデータと、前記複数のユーザデータのそれぞれに付与され、それぞれ異なる複数の保証コードと、を前記フラッシュメモリモジュールに送信するステップと、
前記フラッシュメモリモジュールの前記メモリコントローラが、前記複数のユーザデータが共通のパタンを有する場合、前記複数のユーザデータを圧縮して圧縮ユーザデータとし、前記圧縮ユーザデータと、前記複数のユーザデータに付与されている前記複数の保証コードと、を前記複数の物理ページのうちの1つの物理ページに格納するステップと
を含むことを特徴とする、データ制御方法。 - データの書き込み及び読み出しの単位である複数の物理ページを有する少なくとも1つのフラッシュメモリチップと、前記少なくとも1つのフラッシュメモリチップに接続されるメモリコントローラと、
を備え、
前記メモリコントローラは、
複数のユーザデータを、前記複数のユーザデータのそれぞれに付与され、それぞれ異なる複数の保証コードと、を受信し、
前記複数のユーザデータが共通のパタンを有する場合、前記複数のユーザデータを圧縮して圧縮ユーザデータとし、前記圧縮ユーザデータと、前記複数のユーザデータに付与されている前記複数の保証コードと、を前記複数の物理ページのうちの1つの物理ページに格納する
ことを特徴とする、フラッシュメモリモジュール。 - 前記メモリコントローラは、
1回の読み出し処理で、前記複数の物理ページのうちの1つの物理ページに格納された、前記複数の保証コードとともに前記圧縮ユーザデータ読み出す
ことを特徴とする、請求項13に記載のフラッシュメモリモジュール。 - 前記複数の保証コードは、対応する前記ユーザデータのビットエラー訂正符号及び論理アドレスを含む
ことを特徴とする、請求項13に記載のフラッシュメモリモジュール。 - 前記保証コードは、対応する前記ユーザデータの値に依存しない値を含む
ことを特徴とする、請求項13に記載のフラッシュメモリモジュール。 - 前記データの共通のパタンは、0である
ことを特徴とする、請求項13に記載のフラッシュメモリモジュール。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/006310 WO2012056491A1 (en) | 2010-10-26 | 2010-10-26 | Storage apparatus and data control method |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014169918A Division JP6050794B2 (ja) | 2014-08-22 | 2014-08-22 | フラッシュメモリモジュール、不揮発性半導体メモリモジュール及びストレージ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013532853A JP2013532853A (ja) | 2013-08-19 |
JP5603997B2 true JP5603997B2 (ja) | 2014-10-08 |
Family
ID=43982430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013502328A Expired - Fee Related JP5603997B2 (ja) | 2010-10-26 | 2010-10-26 | ストレージ装置及びデータ制御方法 |
Country Status (3)
Country | Link |
---|---|
US (4) | US8352676B2 (ja) |
JP (1) | JP5603997B2 (ja) |
WO (1) | WO2012056491A1 (ja) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120137303A1 (en) * | 2010-11-26 | 2012-05-31 | Hitachi, Ltd. | Computer system |
WO2012140695A1 (en) * | 2011-04-12 | 2012-10-18 | Hitachi, Ltd. | Storage control apparatus and error correction method |
US9081663B2 (en) * | 2011-11-18 | 2015-07-14 | Stec, Inc. | Optimized garbage collection algorithm to improve solid state drive reliability |
US8611437B2 (en) | 2012-01-26 | 2013-12-17 | Nvidia Corporation | Ground referenced single-ended signaling |
US9338036B2 (en) | 2012-01-30 | 2016-05-10 | Nvidia Corporation | Data-driven charge-pump transmitter for differential signaling |
US9026887B2 (en) | 2012-03-15 | 2015-05-05 | Micron Technology, Inc. | Physical page, logical page, and codeword correspondence |
US9495288B2 (en) * | 2013-01-22 | 2016-11-15 | Seagate Technology Llc | Variable-size flash translation layer |
US9153539B2 (en) | 2013-03-15 | 2015-10-06 | Nvidia Corporation | Ground-referenced single-ended signaling connected graphics processing unit multi-chip module |
US9153314B2 (en) | 2013-03-15 | 2015-10-06 | Nvidia Corporation | Ground-referenced single-ended memory interconnect |
US9147447B2 (en) | 2013-03-15 | 2015-09-29 | Nvidia Corporation | Ground-referenced single-ended memory interconnect |
US9171607B2 (en) | 2013-03-15 | 2015-10-27 | Nvidia Corporation | Ground-referenced single-ended system-on-package |
US9170980B2 (en) * | 2013-03-15 | 2015-10-27 | Nvidia Corporation | Ground-referenced single-ended signaling connected graphics processing unit multi-chip module |
WO2014188479A1 (ja) * | 2013-05-20 | 2014-11-27 | 株式会社日立製作所 | ストレージ装置及びストレージ装置の制御方法 |
US9898404B2 (en) * | 2013-07-14 | 2018-02-20 | Cnex Labs | Method and apparatus for providing improved garbage collection process in solid state drive |
JPWO2015029230A1 (ja) * | 2013-08-30 | 2017-03-02 | 株式会社日立製作所 | 記憶装置及びデータ制御方法 |
KR102140792B1 (ko) | 2013-12-24 | 2020-08-03 | 삼성전자주식회사 | 데이터 중복 제거를 수행할 수 있는 데이터 저장 장치의 동작 방법들 |
US10031703B1 (en) * | 2013-12-31 | 2018-07-24 | Emc Corporation | Extent-based tiering for virtual storage using full LUNs |
WO2015128955A1 (ja) * | 2014-02-26 | 2015-09-03 | 株式会社日立製作所 | 記憶デバイス、記憶デバイスを有する装置、及び記憶制御方法 |
WO2015183302A1 (en) | 2014-05-30 | 2015-12-03 | Hitachi, Ltd. | Method and apparatus of data deduplication storage system |
US9792069B2 (en) * | 2014-09-29 | 2017-10-17 | Western Digital Technologies, Inc. | Offline deduplication for solid-state storage devices |
US9710199B2 (en) | 2014-11-07 | 2017-07-18 | International Business Machines Corporation | Non-volatile memory data storage with low read amplification |
US10162700B2 (en) | 2014-12-23 | 2018-12-25 | International Business Machines Corporation | Workload-adaptive data packing algorithm |
JP6666540B2 (ja) | 2015-06-15 | 2020-03-18 | 富士通株式会社 | ストレージ制御装置、及びプログラム |
KR102397582B1 (ko) | 2015-06-22 | 2022-05-13 | 삼성전자주식회사 | 데이터 저장 장치, 이를 포함하는 데이터 처리 시스템, 및 이의 작동 방법 |
US9712190B2 (en) | 2015-09-24 | 2017-07-18 | International Business Machines Corporation | Data packing for compression-enabled storage systems |
US9870285B2 (en) | 2015-11-18 | 2018-01-16 | International Business Machines Corporation | Selectively de-straddling data pages in non-volatile memory |
US10437785B2 (en) | 2016-03-29 | 2019-10-08 | Samsung Electronics Co., Ltd. | Method and apparatus for maximized dedupable memory |
US10678704B2 (en) * | 2016-03-29 | 2020-06-09 | Samsung Electronics Co., Ltd. | Method and apparatus for enabling larger memory capacity than physical memory size |
US9983821B2 (en) | 2016-03-29 | 2018-05-29 | Samsung Electronics Co., Ltd. | Optimized hopscotch multiple hash tables for efficient memory in-line deduplication application |
US10528284B2 (en) * | 2016-03-29 | 2020-01-07 | Samsung Electronics Co., Ltd. | Method and apparatus for enabling larger memory capacity than physical memory size |
US10496543B2 (en) | 2016-03-31 | 2019-12-03 | Samsung Electronics Co., Ltd. | Virtual bucket multiple hash tables for efficient memory in-line deduplication application |
CN105912486B (zh) * | 2016-04-27 | 2019-03-29 | 联想(北京)有限公司 | 信息处理方法及处理器 |
CN107402889B (zh) * | 2016-05-20 | 2023-07-11 | 三星电子株式会社 | 检索数据方法、存储数据方法和重复数据删除模块 |
US9946660B2 (en) * | 2016-07-29 | 2018-04-17 | Hewlett Packard Enterprise Development Lp | Memory space management |
JP6451769B2 (ja) * | 2017-04-20 | 2019-01-16 | 富士通株式会社 | ストレージ制御装置、及びストレージ制御プログラム |
US10729564B2 (en) | 2018-01-12 | 2020-08-04 | Ripple Llc | Sensor system |
JP2021022324A (ja) * | 2019-07-30 | 2021-02-18 | 富士通株式会社 | 記憶制御装置および記憶制御プログラム |
CN113495850B (zh) | 2020-04-08 | 2024-02-09 | 慧荣科技股份有限公司 | 管理垃圾回收程序的方法、装置及计算机可读取存储介质 |
TWI740446B (zh) * | 2020-04-08 | 2021-09-21 | 慧榮科技股份有限公司 | 管理垃圾回收程序的電腦程式產品及方法及裝置 |
CN111831446A (zh) * | 2020-07-15 | 2020-10-27 | 北京思特奇信息技术股份有限公司 | 一种基于Disruptor的数据读写方法、装置及介质 |
US11960608B2 (en) * | 2021-04-29 | 2024-04-16 | Infineon Technologies Ag | Fast secure booting method and system |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04360246A (ja) * | 1991-06-06 | 1992-12-14 | Toshiba Corp | ファイル圧縮装置 |
JP2863370B2 (ja) * | 1992-05-20 | 1999-03-03 | 富士通エフ・アイ・ピー株式会社 | ファイル圧縮暗号処理装置 |
US8452912B2 (en) * | 2007-10-11 | 2013-05-28 | Super Talent Electronics, Inc. | Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read |
US7155559B1 (en) * | 2000-08-25 | 2006-12-26 | Lexar Media, Inc. | Flash memory architecture with separate storage of overhead and user data |
US7062644B2 (en) * | 2001-05-30 | 2006-06-13 | International Business Machines Corporation | Method, system, and program for initializing a storage device comprising multiple storage units through a storage controller |
JP2004288078A (ja) * | 2003-03-25 | 2004-10-14 | Hitachi Ltd | 固定長ディスクを利用したディスクアレイシステム |
JP4634157B2 (ja) | 2005-01-17 | 2011-02-16 | 株式会社日立製作所 | ストレージシステム |
JP2008117253A (ja) | 2006-11-07 | 2008-05-22 | Hitachi Ltd | 記憶装置システムと計算機システムおよびその処理方法 |
JP5217155B2 (ja) * | 2006-11-17 | 2013-06-19 | 日本電気株式会社 | ファイル圧縮自動判定方式および方法、並びに、プログラム |
JP4692843B2 (ja) | 2006-12-28 | 2011-06-01 | Tdk株式会社 | メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
JP5331323B2 (ja) * | 2007-09-26 | 2013-10-30 | 株式会社日立製作所 | ストレージサブシステム及びその制御方法 |
JP5026213B2 (ja) | 2007-09-28 | 2012-09-12 | 株式会社日立製作所 | ストレージ装置及びデータ重複排除方法 |
CA2747661A1 (en) * | 2008-12-18 | 2010-07-15 | Copiun, Inc. | Methods and apparatus for content-aware data partitioning and data de-duplication |
JP5391705B2 (ja) * | 2009-01-27 | 2014-01-15 | 日本電気株式会社 | ストレージシステム |
-
2010
- 2010-10-26 US US12/992,028 patent/US8352676B2/en active Active
- 2010-10-26 JP JP2013502328A patent/JP5603997B2/ja not_active Expired - Fee Related
- 2010-10-26 WO PCT/JP2010/006310 patent/WO2012056491A1/en active Application Filing
-
2012
- 2012-12-28 US US13/729,879 patent/US8799562B2/en active Active
-
2014
- 2014-07-11 US US14/329,171 patent/US9111618B2/en active Active
-
2015
- 2015-07-14 US US14/798,888 patent/US9343153B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20130114339A1 (en) | 2013-05-09 |
US20140321208A1 (en) | 2014-10-30 |
US8352676B2 (en) | 2013-01-08 |
JP2013532853A (ja) | 2013-08-19 |
US8799562B2 (en) | 2014-08-05 |
US9343153B2 (en) | 2016-05-17 |
WO2012056491A1 (en) | 2012-05-03 |
US9111618B2 (en) | 2015-08-18 |
US20150317097A1 (en) | 2015-11-05 |
US20120102260A1 (en) | 2012-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5603997B2 (ja) | ストレージ装置及びデータ制御方法 | |
JP6134857B2 (ja) | 記憶デバイス、記憶デバイスを有する装置、及び記憶制御方法 | |
TWI775122B (zh) | 用來存取至少一非揮發性記憶體元件的處理單元 | |
US7346732B2 (en) | Storage system | |
US10437737B2 (en) | Data storage device | |
TWI569139B (zh) | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 | |
JP2008015769A (ja) | ストレージシステム及び書き込み分散方法 | |
JPH08137634A (ja) | フラッシュディスクカード | |
US20100318726A1 (en) | Memory system and memory system managing method | |
KR100703680B1 (ko) | 플래시 파일 시스템 | |
JP2018181202A (ja) | ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム | |
JP6050794B2 (ja) | フラッシュメモリモジュール、不揮発性半導体メモリモジュール及びストレージ装置 | |
JP2010237907A (ja) | ストレージ装置および記録方法 | |
KR20070061543A (ko) | 메모리 관리 방법, 메모리 장치 및 컴퓨터 판독 가능 저장매체 | |
JP2000285688A (ja) | 不揮発性半導体記憶装置 | |
US20200319999A1 (en) | Storage device, control method of storage device, and storage medium | |
KR102032878B1 (ko) | 플래시 메모리 컨트롤러의 에러 정정 방법 | |
JP6805501B2 (ja) | ストレージ装置 | |
JP3030949B2 (ja) | ディジタルデータ記録再生装置 | |
US10613973B1 (en) | Garbage collection in solid state drives | |
US20180293015A1 (en) | OPTIMIZED MANAGEMENT OF FILE SYSTEM METADATA WITHIN SOLID STATE STORAGE DEVICES (SSDs) | |
CN118672516A (zh) | 一种数据存储方法、设备、存储介质及计算机程序产品 | |
JP2022166986A (ja) | ストレージ制御装置およびストレージ制御方法 | |
CN114203239A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
JP2009282568A (ja) | 半導体記録装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131203 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140203 |
|
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: 20140729 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140822 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5603997 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |