JP2015529368A - ストレージトランスレーションレイヤー - Google Patents
ストレージトランスレーションレイヤー Download PDFInfo
- Publication number
- JP2015529368A JP2015529368A JP2015531271A JP2015531271A JP2015529368A JP 2015529368 A JP2015529368 A JP 2015529368A JP 2015531271 A JP2015531271 A JP 2015531271A JP 2015531271 A JP2015531271 A JP 2015531271A JP 2015529368 A JP2015529368 A JP 2015529368A
- Authority
- JP
- Japan
- Prior art keywords
- storage
- sac
- data
- smw
- psd
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/0626—Reducing size or complexity of storage systems
-
- 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
- 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/0253—Garbage collection, i.e. reclamation of unreferenced 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
ストレージ・メディア(NANDフラッシュもしくはストレージクラスのメモリストレージ)システムを様々なストレージシステムコンポーネントに亘ってトランスレーション・レイヤーを分配する方法およびシステムがここに記載される。これに限定されないストレージシステムコンポーネントの例としては、永続性記録装置(PSD)、ストレージ・アグリゲーション・コントローラー(SAC)、およびストレージ・マネージメント・ライター(SMW)が含まれる。前記SMWは、SACを通してPSDに書き込まれる各ページの論理アドレステーブルを維持するよう構成されてもよい。前記SACは、前記SMWが前記SACに対しページのいずれかが有効でなくなったことを通知することにより書き込まれたページの有効状態を維持するものである。前記PSDは装置に特有の問題を処理するものであり、それにはエラーの訂正およびブロックレベルでのフェイルおよび内部消耗レベルの管理に用いられるブロックレベルでのマッピングのを処理が含まれる。前記SACは管理している前記PSD内において物理ページの不要データの収集を前記SMWが実際のページレベルのテーブルの維持処理を実行するのに並行して行うものである。【選択図】 図1
Description
関連出願の相互参照
本願は、2012年9日6日出願の米国特許仮出願第61/697、711号および2013年3日15日出願の米国特許仮出願第61/799、487号に対して利益を主張するものであり、その内容は参照により本明細書に組み込まれる。
本願は、2012年9日6日出願の米国特許仮出願第61/697、711号および2013年3日15日出願の米国特許仮出願第61/799、487号に対して利益を主張するものであり、その内容は参照により本明細書に組み込まれる。
NAND(not−and)フラッシュやストレージ・クラス・メモリのようなストレージ媒体の一つの特徴は、ストレージ媒体が一般的にプログラム前消去アーキテクチャを有していることにある。さらに、従来のストレージ媒体は、消去ユニットサイズより著しく小さいユニットサイズ(セクタ、ページもしくはそのようなもの)で読み込みとプログラム(もしくは「書き込み」)を実行する。例えば、一般的な読み込みおよびプログラムのユニットサイズは4キロバイト、8キロバイト、16キロバイト、32キロバイト、および64キロバイトであるのに対し、一般的に消去のユニットサイズ(もしくはブロック)は一般的に前記読み込み/プログラムユニットサイズのほぼ200から1000倍である。フラッシュ・トランスレーション・レイヤー(FTL)ソフトウエアシステムはこれまでストレージ媒体の前記プログラム前消去アーキテクチャや読み込み/プログラムユニットサイズに対する消去ユニットサイズの不均衡を処理できるよう開発されてきた。しかしながら、前記従来の方法によるFTLの管理は、一般的にストレージシステムのコストの増加や複雑化につながっている。従って、前記FTLとそれに関連した機能の効率的かつ効果的な使用方法は、データストレージ産業に利益をもたらす可能性がある。
システム、装置および方法は多様であり得るので、本開示はここに記載される特定のシステム、装置および方法に限定されるものではない。この説明において用いられる用語は、特定の仕様や実施形態のみを言い表すためのみに用いられるものであり、従って、スコープを限定するものではない。
本明細書において使用される場合、「a」、「an」、および「the」といった単数形は、文脈がそうでないと明確に規定しない限り、複数形への言及を含む。そうでないと定義されない限り、本明細書において使用されるすべての技術用語および科学用語は、当業者によって一般に理解されるものと同一の意味を有する。本開示におけるいかなるものも、本開示において説明される実施形態が従前の発明のおかげでそのような開示に先行する権利を有しないことを認めるものとして解釈されるべきではない。本明細書において使用される場合、「有する」という用語は、「〜を含むが、〜に限定されない」ことを意味する。
実施形態において、ストレージ・トランスレーション・レイヤーを実装するよう構成されたデータ・ストレージ・システムは、複数の永続性記憶装置であって、当該複数の永続性記憶装置の各々は、ストレージ媒体を備え、当該ストレージ媒体は複数のデータ・アクセス・ユニットおよびメタデータを格納するよう構成さるものである永続性記憶装置と、ストレージ・デバイス・コントローラーであって、ストレージ・ブロック・レベルのストレージ媒体における複数のストレージブロックを管理するよう構成されたストレージ・デバイス・コントローラーと、複数のストレージ・アグリゲーション・コントローラーであって、前記複数の永続性記憶装置と通信操作可能であり、前記複数のデータ・アクセス・ユニットの有効性を維持するよう構成されるものであるストレージ・アグリゲーション・コントローラーと、ストレージ管理書き込みコントローラーであって、前記複数のストレージ・アグリゲーション・コントローラーと通信操作可能であり、前記複数のデータ・アクセス・ユニットのロジカルアドレスおよび前記複数の永続性記憶装置に格納されたデータにアクセスし、前記ロジカルアドレスと前記複数のストレージ・アグリゲーション・コントローラーに格納された前記データとの間のマップを維持するよう構成されたものであるストレージ管理書き込みコントローラーと、を備えるものである。
FTLは様々な機能を果たすためのものである。例えば、論理−物理(FTP)アドレスへのマッピングを実行するものであり、これには一般的に論理的なシステムレベルアドレスから物理的なメモリアドレスへのマッピングを伴うものである。別の機能例としては、パワー・オフ・リカバリー機能があげられるが、これは電力喪失が起きた際に、電力喪失後の保存データへのアクセス/回復を行う機能である。さらなる例としては、消耗平準化があげられ、この機能は、大半のプログラムユニットがそれぞれの耐用期間の満了に達するよう、統計的に予想可能な分配に基づいて利用可能なプログラムユニットを均等に消耗させるようプログラムイベントを配置するものである。さらに、不要データを収集する機能も含まれるものであり、これは消去ユニット内で良いデータ(例えば一時的な有効性を持つデータ)を古くなったデータ(例えば、一時的な利用性がなくなったたデータ)からの分離させ、回復し、前記良いデータを再分配して利用可能なプログラムユニットに戻すものである。FTL機能は典型的に同一の機能ユニット内にストレージ・ディバイス・ユニットやソリッド・ステート・ドライブ(SSD)というようなストレージ媒体として「含まれ」る。
FTLのパフォーマンスには様々な特徴が関係するものであるが、これには読み込み/プログラムパフォーマンス、システムオペレーションの遅延、時間でみたオペレーション(読み込み、プログラム、消去)ごとの平均電力、消耗平準化の有効性、オーバープロビジョニング(例えば、ユーザデータとして使用可能なメモリに対してローメモリとして物理的にシステムにあるメモリの量)、LTPマッピング情報を含むメタデータを記憶するのに必要となる量のメモリ(「状態情報」もしくは「状態」)、空き容量情報、および/もしくは消耗平準化用情報、不要データの収集、というような特徴が関与してくる。
一般的にこれまでフラッシュ・トランスレーション・レイヤの実装に関連付られたストレージ・ディバイス・ユニットのコストは、「ホット」メタデータ(典型的にランダムアクセスメモリ「RAM」)および使われていないメタデータ(一般的にメディアに格納される)を保存するのに必要となるメモリの量に直接的に比例する。
ストレージ・ディバイス・ユニットのコストを削減するために、コストに敏感な消費者クラスや企業クラスの初心者向けディバイスの多くはメディア(The Media)を消去ユニットレベルのみで管理するが、これは状態を保つために必要となるメタデータのサイズを最小限に抑えることを意味し、より少量のRAMへとつながる。一方で、パフォーマンスに敏感な企業クラスのディバイスにおいては、読み込み/プログラムのユニットのサイズで一般的に管理される。そのようなアプリケーションにおいて、メタデータアイテムはメディアを実装したストレージディバイスは管理されたサイズの各構成要素において必要とされる。
相対的に消費者クラスのディバイスに対して、企業クラスのストレージ・ディバイスに典型的にある特性としては、メディアを制御するためのサーケットの複雑さとコストがあげられ、当該サーケットで消費される電力はより大きいことから、生産とオペレーション両方において数値的に著しい違いを生じさせる。
さらに、企業クラスのストレージディバイスが消費者クラスのストレージディバイスと比べてより安定して信頼性のあるオペレーションを提供するための必須条件を装備させると、エラーの検知とメタデータ情報への訂正情報を追加するコストがかかりさらに生産とオペレーション両方のコストと複雑さを増加させる。
説明される技術は一般的にNANDフラッシュもしくは多岐にわたるストレージ・システム要素のストレージ・クラス・メモリ(メディア)のトランスレーション・レイヤを分配する方法に関するものである。これに限定されないストレージ・システム要素の例として、永続性記憶装置(PSD)、ストレージ・アグリゲーション・コントローラー(SAC)、およびストレージ・マネジメント・ライター(SMW)が含まれる。SMWはSACを介してPSDに書き込まれる各ページの論理アドレステーブルを維持するよう構成されるものであり、各ブロックへの前記ページの書き込みは、前記PSD内のブロックがそれ以上の書き込みを受容できないまで続いて起こるものである。前記SACは過去に書き込まれたページを前記SMWが前記SACにページが有効でなくなった場合に通知することでその有効性のステータスを維持するものである。前記SACはPSDのブロックにあるデータが「不要データの収集」を必要としていることを決定し、その時点で前記SACはそれまでにアクセスしたPSD内もしくはPSDにを超えてデータを移動させ、前記SMWに前記ページが物理的に保存されるロジカルアドレスの記録をアップデートするよう通知するものである。前記PSDはデバイスに特化した問題を扱うものであり、エラーの訂正およびブロックレベルでの不具合および内部消耗平準化の管理をブロックレベルでマッピングするするものである。前記SMWが実際のページレベルでのテーブルを維持する間に、前記SACは当該SACが管理するPSD内における物理的ページの不要データの収集を扱うものである。
このように、PSDおよび前記SACはメモリが最小限のフットプリントを保有するよう構成され、これにより低レベルコントローラにおいてページレベルのマッピングを行う技術を用いる解決策に比べ、より効率的なコストおよび消費電力の解決策を可能にする。
ここに説明される複数の実施例は、従来ストレージ・ディバイス・ユニット内に一体的に含まれてきた複数の分散型のユニットを定義するものである:前記永続性記憶装置(PSD)は、消去ユニット(であって読み込み/プログラムユニットでないもの)を格納および管理し、さらに前記メディアを含むものであり、前記ストレージ・アグリゲーション・コントローラー(SAC)は、一時的に有効な物理的なページをコーディネートし、読み込み/プログラムユニットの不要データの収集を複数のPSDの集合内で管理するものであり、前記ストレージ・マネジメント・ライター(SMW)は、各読み込み/プログラムユニットの論理アドレスのメタデータを維持し、前記SACを介して前記PSDに書き込むことを実行し、データユニット用の論理アドレスが書き込まれるのと同時進行で割り当てをし、前記SACに論理ユニットが有効でなくなったことを通知するものであり、不要データの収集が前記SACによって実行された時に、前記論理アドレスの変更をアップデートするものである。
ここに説明される前記システム、方法および装置は、ストレージ・トランスレーション・レイヤー(STL)を提供するものであり、当該STLは1もしくはそれ以上のSMWに亘ってユニット管理されたシステムの読み込み/プログラムを実行するよう構成され、前記SACもしくは前記PSDのどちらにおいてもページレベルのメタデータを必要としないものであり、結果としてPSDにより少量のRAMとより少ないメディアを備えさせることを達成するものである。これにより、量的に効率的な生産とコストアドバンテージのあるオペレーションを提供するものである。
図1はメディア消去ブロックと、その構成要素であるNページおよび前記M論理ブロックアドレスを単一のページ内に表したものである。読み込み/書き込みユニットは典型的に1つもしくはそれ以上のメディアページの論理ブロックアドレスである。SSDが典型的にフラッシュ・トランスレーション・レイヤーの内部処理に決められたサイズの論理ユニットを用いて実行するように、データ・アクセス・ユニット(DAU)は一般的に512キロバイト、1キロバイト、4キロバイト等のいずれであっても一般的にロスがないユニットであるものである。
前記ストレージ・トランスレーション・レイヤーはDAUが保存される前記物理アドレスのマッピングを維持する「ホット」メタデータが前記PSDでなく、変わりに前記SMWにおいて維持されることを可能にし、これによりパフォーマンスが失われることなくPSDおよびSACにおける構成要素のコスト低減を実現する。各PSDは独立して各々の消去ユニットレベルでのマッピング(状態もしくはメタデータ情報とも呼ばれる)を管理するものである。前記PSDは1もしくは複数の物理的ダイ(メディアの物理的ユニット)に物理的に位置するメディア内のブロックを管理するものである。
前記PSDが前記ユニットのシングルダイにおいてブロックのマッピングを維持し、前記SACがダイレベルをPSDオペレーションで明白に維持できる場合、前記SACは各ダイへのアクセスをSACレベルにおけるオペレーションの列(キュー)を維持することで管理することができ、前記システムレベルの属性は各PSD単独と比べてよりよく理解される。
前記PSDは、サブ消去ユニットレベルのマッピング構成を維持する必要がない。完全性のために、状態を維持することでブロック中部への書き込みを検知し、内部的に全ての従前のページを従前の消去ユニットから新たな消去ユニットへのコピーを実行し、これにより新たな書き込みが置かれてもよい。前記ストレージ・トランスレーション・レイヤーは様々な機能を実行し基本的なオペレーションには書き込み、読み込み、および不要データの収集が含まれる。
書き込み
SMWによって制御されるPSDにデータを書き込むために、前記SMWは先ず「ストレージ・ブロック(データストレージのユニットであって、メディアにプログラムされるものである)」をSACから要求する。不確実性を防ぐために、1もしくはそれ以上の「ストレージ・ブロック」が前記SACより提供され、いずれかのPSDおよび1もしくはそれ以上のPSDはSACから特定されたSMWへの「ストレージ・ブロック」の提供を受ける。
SMWによって制御されるPSDにデータを書き込むために、前記SMWは先ず「ストレージ・ブロック(データストレージのユニットであって、メディアにプログラムされるものである)」をSACから要求する。不確実性を防ぐために、1もしくはそれ以上の「ストレージ・ブロック」が前記SACより提供され、いずれかのPSDおよび1もしくはそれ以上のPSDはSACから特定されたSMWへの「ストレージ・ブロック」の提供を受ける。
前記SACはその時点で使われていない有効なデータストレージブロックを前記SMWに提供する。前記SACは不要データの収集(後により詳細に説明)を実行することに責任を負うものであり、これにより有効なデータを有しないストレージ・ブロックを取得して新たな書き込みに利用可能とする。
いくつかの実施形態において、前記PSDは前記SACから前記SMWに提供された「ストレージ・ブロック」のアドレスでエンコードされてもよい。前記SACはデータ・アクセス・ユニット(DAU)の最大値を前記SMWに提供する際に各ストレージ・ブロックに通知する。DAUは固定された数のロジカル・ブロック・アドレスを含んでもよい。前記DAUの「ストレージ・ブロック」毎の最大の数値はPSD毎に固定されてもよいが、いくつくかの実施例においては異なるものである。
前記SMWがブロック識別子(「Blk_ID」)をSAC−ブロックから前記SACを要求する際に与えられ、前記SMWがこの番号を以降のアクセスの際に参照する場合、ルックアップおよびエラー処理の様々な問題が双方において簡素化される。例えば、双方が通信に同意し、BLK_IDもしくは前記SAC−ブロックが進行中の書き込みの状態を維持するために用いられる。もしBlk−IDが前記SAC−ブロックと不一致である場合、エラー状態が即時に特定されるSMWによってSACに並行して書き込まれる「ストレージ・ブロック」の数は、SAC上の全てのPSD内における「ストレージ・ブロック」の合計と比べほんのわずかであるため、並行して書き込まれるストレージ・ブロック数用のテーブルのサイズは、SAC内の全てのストレージブロック用の数に比べ1サイズ物質的に小さいものとなる。
前記「Blk_ID」がハンドシェイクから除外される場合、SACに書き込まれる全てのストレージ・ブロックの状態を前記SMWが維持するものであり、前記SACが維持するものであり、前記SACはSMWから書き込まれる全ての「ストレージ・ブロック」の状態を維持するものである。
PSD−Blk_IDは前記SACと前記PSD間において書き込み中のPSD−ブロックを特定するために用いられることもでき、これはBlk_IDが前記SMWと前記SAC間でSACブロックの特定を手助けするのと同様のアプローチで用いる事ができる。
いずれの場合においても(Blk_ID/PSD−Blk_IDが用いられる場合とそうでない場合)前記「ストレージ・ブロック」は前記SMWから前記SACおよび前記SACから前記PSDへのデータ・アクセス・ユニット(DAU)の数字の順番に従って書き込まれるものである。
前記SACはPSDに対し「ストレージ・ブロック」を要求する際には必要とされない。PSD内にある前記「ストレージ・ブロック」はSACによってPSD内の利用可能な「ストレージ・ブロック」の量として検知され管理されることが可能である。消費者クラスのストレージディバイスは外部に対して示される固定された量のストレージを付加的なストレージブロックであって、ブロックに亘った消耗の内部的な管理と以前に機能しなかったことが知られているポテンシャルのあるブロックを特定するものである。
SMWがSACからの「ストレージ・ブロック」を所有する場合、前記DAUをシーケンスに沿って書き込むことができる。当該ストレージ・ブロックに従属する書き込みが提供される前に前記データが永続的に記憶された時に各書き込みに対する受信の確認(ACK)と共にSACは典型的に順々に書き込みを行うものである。
DAUに書き込む際、前記DAUの論理アドレスはメディア当該DAUが記録されたストレージ・ブロックに関連付けられたメディアに記録されるものである。(例として図3を参照)。SMWが書き込みを実行した時には、タイムスタンプの記録がメディアに付けられる。そのオプショナルな利用が不要データの取得を手助けするものであることから、このタイムスタンプは秒単位もしくは数十分単位で付けられてもよい。
セル毎に3ビットのフラッシュメモリディバイスを含むメディアのいくつかの実施例においては、書き込まれるデータの特定のセットが必要とされ、それより前のデータは復唱されないものである。これをサポートするために、書き込みのセットが同時に単一のPSDにおくられ収容される順に受領確認がされてもよい(データが正しく読まれる限り)。
「ストレージ・ブロック」が完全に書き込まれると、前記SMWはあらたな「ストレージ・ブロック」を要求することができ、それには同一の「Blk_ID」が用いられる。ストレージ・ブロックが完全に書き込まれると、前記ストレージ・ブロックは不要データ収集プロセスの対象候補となる(後により詳細に説明する通りである)。
実施例のいくつかにおいては、SMWによってSACに書き込まれたデータは前記「ストレージ・ブロック」を上位のアドレスビットとし、前記DAUオフセットを下位アドレスビットとして前記SACに書き込まれたデータ維持のための「論理―物理テーブル」において使うことができる。
複数のSMWがSACに同時に接続されるとき、1つのSMWに提供される「ストレージ・ブロック」はそのSMWのみによって書き込まれるために提供されることもできる。これは、他のSMWの書き込みの動作を考慮することなく「ストレージ・ブロック」を提供したSMWのいずれかがSMWブロックを書き込むことを可能にする。
いくつかの実施例によれば、SMWの一つにストレージブロックを提供し、別のSMWが危機的状態のバックアップコピーを維持するいずれのメカニズムにおいても、ストレージブロックに書き込みを行うSMWはどの時点においても1つのみ存在するものである。
SACによるフリーブロックの選定
SMWが前記SACにストレージ・ブロックを要求する際に、前記SACはその時点でSMW要求者に対し提供する有効なデータを有しないブロックから選定をおこなうものである。前記SACが要求者の要求を受けた時点で利用可能なストレージ・ブロックを有しない場合、当該要求受領確認をしつつ、要求にその時点で応えることができないことを確認するものである。いくつかの実施例においては、SMWがSACからストレージ・ブロックを取得する試みを定期的に実行させるか、前記SACに対しSMWへ書き込みに用いられるストレージ・ブロックがあるときにはそれを通知させるものである。
SMWが前記SACにストレージ・ブロックを要求する際に、前記SACはその時点でSMW要求者に対し提供する有効なデータを有しないブロックから選定をおこなうものである。前記SACが要求者の要求を受けた時点で利用可能なストレージ・ブロックを有しない場合、当該要求受領確認をしつつ、要求にその時点で応えることができないことを確認するものである。いくつかの実施例においては、SMWがSACからストレージ・ブロックを取得する試みを定期的に実行させるか、前記SACに対しSMWへ書き込みに用いられるストレージ・ブロックがあるときにはそれを通知させるものである。
SACは不要データの収集を実行するために利用可能なストレージ・ブロックが必要であるため、SMWに対してストレージ・ブロックを提供できないとする利用可能ストレージ・ブロックの閾値があってもよい。実施例のいくつかによれば、ストレージ・ブロックがSACによってSMWからの要求への応答としてストレージ・ブロックの提供される時まで、前記SMWはDAUをSACに書き込むことを阻止されるものである。
読み込み
SMWは、以前に書き込まれたことのあるSACのアドレスに書き込まれたDAUを読み出すことができる。DAUの読み込み要求は、前記SMWから前記SACへと送られる。前記SACはそれに応答して実際に実行されるストレージ・ブロックを決定し、前記PSDから読み出されるべきデータの要求を待ち行列に入れるものである。
SMWは、以前に書き込まれたことのあるSACのアドレスに書き込まれたDAUを読み出すことができる。DAUの読み込み要求は、前記SMWから前記SACへと送られる。前記SACはそれに応答して実際に実行されるストレージ・ブロックを決定し、前記PSDから読み出されるべきデータの要求を待ち行列に入れるものである。
オーバーライトにおける不使用スペースの解放
SMWが、例えば、システムの外部から書き込みもしくは無効化のメッセージ(実施例のいくつかにおいて、これはSCSI UNMAPコマンド、SATA TRIMコマンドもしくはその他業界において一般的に許容されている同様のコマンド)を通して、もしくは多くのDAUを含むボリュームの消去によりDAUの新たなコピーを受け取った時、前記SMWはSAC上のデータを無効化するメッセージを送ることができる。
SMWが、例えば、システムの外部から書き込みもしくは無効化のメッセージ(実施例のいくつかにおいて、これはSCSI UNMAPコマンド、SATA TRIMコマンドもしくはその他業界において一般的に許容されている同様のコマンド)を通して、もしくは多くのDAUを含むボリュームの消去によりDAUの新たなコピーを受け取った時、前記SMWはSAC上のデータを無効化するメッセージを送ることができる。
図3に示すように、無効化のメッセージがSACによって受け取られた場合、DAUは有効でなくなったことを示するようDAUの有効な記録がアップデートされる。当該DAU有効記録は前記SACにおいていずれのPSDもがボトルネックにならないよう維持されることで、前記PSDにおいて必要とされるメモリを減少させることができる。実施例のいくつかにおいては、前記DAUの有効状態は前記PSDにおいて維持され、これには当該状態をアップデートするためのメッセージが前記SACと前記PSD間で送信される。
SMWは、前記SACと同じもしくは違うSACの永続性ストレージに、アップデートされたコピーを受け取った後であればどのポイントにおいてもDAUの新たなコピーを書き込むことがっできる。新たなDAUがSMWのキャッシュに受け取られた場合、前記DAUは実際にSMWのキャッシュに存在し前記データが前記SMWからSACに書き込まれる前にオーバーライトされるものである。実施例のいくつかによれば、SMWは接続されたSACのいずれにでもDAUを書き込むことができる。
不要データの収集
不要データの収集は、有効に使用できるDAUを有するストレージ・ブロックから有効に使用できなくなったDAUを圧縮する工程を含む。メディアの書き込み前消去の特性を考慮すると、無効なDAUによって放置されたスペースを空けるため、有効なDAUは新たなロケーションに移動されてもよい。
不要なデータの収集を実行するため、前記SACは自らの不要データの収集プロセスに用いられる1もしくはそれ以上の利用可能なストレージブロックを利用することができるが、これは「ストレージブロックの圧縮」と呼ばれてもよい。
不要データの収集は、有効に使用できるDAUを有するストレージ・ブロックから有効に使用できなくなったDAUを圧縮する工程を含む。メディアの書き込み前消去の特性を考慮すると、無効なDAUによって放置されたスペースを空けるため、有効なDAUは新たなロケーションに移動されてもよい。
不要なデータの収集を実行するため、前記SACは自らの不要データの収集プロセスに用いられる1もしくはそれ以上の利用可能なストレージブロックを利用することができるが、これは「ストレージブロックの圧縮」と呼ばれてもよい。
不要データの収集を実行するために、前記SACは(SMWもしくは前記SACのどちらかによって以前に実行された不要データ収集処理の一工程として)完全に書き込みがされたストレージ・ブロックから選択をする。SACによって管理されるDAUの全てをPSDに対する有効状態がSACにおいて維持される場合、ストレージ・ブロックを直接選択することができる。前記DAUの有効状態がSACでなくPSDにおいて保持される場合、前記SACはPSDの各々に不要データの収集候補を提供するよう要求することができる。不要データ収集として(SACもしくはPSDのいずれかによって)挙げられた候補は、DAUの総合有効割合を含めてもよく、さらにオプションとしてDAUの各ブロックに書き込まれたデータの相対的な古さを含めてもよい(メディアのDAUにタイムスタンプが書き込まれている場合)。不要データの収集に選ばれた前記ストレージ・ブロックは本記載において「起源・ストレージ・ブロック」と呼ばれる。
前記SACにより期限・ストレージ・ブロックが不要データの収集用に選択されると、各有効なDAUの論理アドレスが読み込まれ、前記DAUを当初書き込んだ前記SMWに提供される。前記SMWは(a)前記DAUが有効でないことを示し、(b)前記DAUが収集された不要データに代わって読み込まれることを要求し、(c)DAUが有効であることを確認し前記SACによって不要データとして収集する、ことが可能である。オプション(b)は書き込みおよび無効化プロセス、もしくは組み合わされたプロセスによって処理されてもよい。
前記SACが前記不要データ収集処理を実行した場合、前記SACは前記DAUを前記PSDの起源・ストレージ・ブロックから読み込み前記DAUを圧縮ストレージブロック(例えば、PSDと同一もしくは相違する)の新たなロケーションに書き込む。前記DAUが圧縮ストレージ・ブロックに書き込まれると、前記SACは前記SMWに対し前記DAUが前記SMWによって当初書き込まれた前記論理アドレスに書き込まれたことを通知し、起源・ストレージ・ブロックにあったものが圧縮ストレージブロック内の新たなロケーションに格納されたことを通知する。
当初ストレージブロックから圧縮ストレージブロックへの移動の受領確認を前記SACが受け取るまで、前記SMWは読み込みもしくは無効化のメッセージを当初のストレージブロックの前記DAUに対し送信するものである。無効化メッセージは旧新両方のロケーションに対して適用されるべきものである。読み込みは実際に前記当初のロケーションにおいて当初のストレージ・ブロックが消去されるまで知らされることができる。前記SACが当初ストレージ・ブロックから圧縮ストレージブロックへの移動の確認を受け取った時には、前記SACは前記DAUのロケーションを無効とマークできる。
起源・ストレージ・ブロックの全てのDAUが(SMWが無効化するか前記SACによる不要データの収集動作により)無効となった場合、前記ストレージブロックはいつでも消去されてよい。前記ストレージブロックの消去に伴い、前記SACは前記ストレージブロック前記SACによってSMW(もしくは前記SAC自身での不要データの収集を目的として)のいずれかに提供されるべく利用可能であることを記録するものである。
全てのDAUがSMWによって無効化される場合がある。これは、前記ストレージブロックが能動的に「不要データの収集」を実行しあたかも前記SACによって不要データの収集がおこなわれたかのようにいつでも消去されるものである。
前記SACの圧縮・ストレージ・ブロックへの書き込みに伴い、当初SMW(もしくは前記SACによって処理されたそれより以前の不要データの収集)のいずれかによって書き込まれた起源・ストレージ・ブロックは一般的な圧縮ストレージブロックに圧縮されることが可能である。
以上の記載において、SMW読み込み、書き込み、および無効化メッセージをコーディネートし、自らの目的もしくはノードセットの目的で集合してデータをキャッシュ構造において保持し、RAID(Redundant Array of Inepensive Devices)構成を介して保護される可能性があるノードである場合、前記ストレージ・トランスレーション・レイヤーは有効な状態にとどまるものである。
Claims (5)
- ストレージ・トランスレーション・レイヤーを実行するよう構成されたデータ・ストレージ・システムであって、当該データ・ストレージ・システムは、
複数の永続性記憶装置であって、当該複数の永続性記憶装置の各々は複数のデータ・アクセス・ユニットおよびメタデータを格納するよう構成されたストレージメディアと、前記ストレージメディアの複数のストレージ・ブロックをストレージ・ブロックレベルで管理するよう構成されたストレージ・ディバイス・コントローラとを含む複数の永続性記憶装置と、
前記複数の永続性記憶装置と通信可能な複数のストレージ・アグリゲーション・コントローラーであって、前記複数のストレージ・アグリゲーション・コントローラーは前記複数のデータ・アクセス・ユニットの有効性を維持するよう構成されるものである複数のストレージ・アグリゲーショ・コントローラーと、
前記複数のストレージ・アグリゲーション・コントローラーと通信可能なストレージ・マネージメント・ライター・コントローラーであって:
前記複数のデータ・アクセス・ユニットの論理アドレスおよび前記複数の永続性記憶装置に格納されたデータにアクセスし、
前記論理アドレスと前記複数のストレージ・アグリゲーション・コントローラーに格納されたデータとのマップを維持するよう構成された
ストレージ・マネージメント・ライター・コントローラーと、
を有するデータ・ストレージ・システム。 - 請求項1に記載のシステムにおいて、前記複数のストレージ・アグリゲーション・コントローラーは、前記ストレージ・マネージメント・ライター・コントローラーから受け取るメッセージに基づいて前記複数のデータ・アクセス・ユニットの有効性の経過を追うものであるシステム。
- 請求項1に記載のシステムにおいて、前記複数のストレージ・アグリゲーション・コントローラーは、前記複数のストレージブロックから少なくとも1つを不要データの収集のために選択するよう構成されたシステム。
- 請求項3に記載のシステムにおいて、少なくとも1つの前記複数のストレージ・アグリゲーション・コントローラーは不要データの収集を実行するものであるシステム。
- 請求項4に記載のシステムにおいて、不要データの収集には、不要データとして収集されるブロックの論理アドレスおよび物理アドレスを前記少なくとも1つの複数のストレージ・アグリゲーション・コントローラに送信するものであるシステム。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261697711P | 2012-09-06 | 2012-09-06 | |
US61/697,711 | 2012-09-06 | ||
US201361799487P | 2013-03-15 | 2013-03-15 | |
US61/799,487 | 2013-03-15 | ||
PCT/US2013/058644 WO2014039923A1 (en) | 2012-09-06 | 2013-09-06 | Storage translation layer |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015529368A true JP2015529368A (ja) | 2015-10-05 |
Family
ID=50237665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015531271A Pending JP2015529368A (ja) | 2012-09-06 | 2013-09-06 | ストレージトランスレーションレイヤー |
Country Status (6)
Country | Link |
---|---|
US (1) | US20150212937A1 (ja) |
EP (1) | EP2893433A4 (ja) |
JP (1) | JP2015529368A (ja) |
CN (1) | CN104854554A (ja) |
IN (1) | IN2015DN02477A (ja) |
WO (1) | WO2014039923A1 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6008325B2 (ja) * | 2013-05-17 | 2016-10-19 | 学校法人 中央大学 | データ記憶システムおよびその制御方法 |
JP2016038907A (ja) * | 2014-08-07 | 2016-03-22 | 富士通株式会社 | アクセス制御プログラム、アクセス制御装置及びアクセス制御方法 |
KR102282006B1 (ko) * | 2014-08-19 | 2021-07-28 | 삼성전자주식회사 | 컴퓨터 장치 및 저장 장치 |
WO2017069646A1 (en) * | 2015-10-19 | 2017-04-27 | Huawei Technologies Co., Ltd. | Method and device for determination of garbage collector thread number and activity management in log-structured file systems |
KR20170099018A (ko) * | 2016-02-22 | 2017-08-31 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
JP6444917B2 (ja) * | 2016-03-08 | 2018-12-26 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
US10540274B2 (en) * | 2016-03-29 | 2020-01-21 | Micron Technology, Inc. | Memory devices including dynamic superblocks, and related methods and electronic systems |
US10126962B2 (en) | 2016-04-22 | 2018-11-13 | Microsoft Technology Licensing, Llc | Adapted block translation table (BTT) |
CN106328059B (zh) * | 2016-09-07 | 2017-10-27 | 京东方科技集团股份有限公司 | 用于电学补偿的存储器中数据更新的方法和装置 |
KR20190082513A (ko) * | 2018-01-02 | 2019-07-10 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그것의 동작방법 |
JP7091203B2 (ja) | 2018-09-19 | 2022-06-27 | キオクシア株式会社 | メモリシステムおよび制御方法 |
CN111104047B (zh) * | 2018-10-25 | 2023-08-25 | 伊姆西Ip控股有限责任公司 | 管理冗余磁盘阵列的方法、设备和计算机可读存储介质 |
US11615020B2 (en) | 2021-08-12 | 2023-03-28 | Micron Technology, Inc. | Implementing mapping data structures to minimize sequentially written data accesses |
JP2023044824A (ja) | 2021-09-21 | 2023-04-03 | キオクシア株式会社 | メモリシステム |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US20060101204A1 (en) * | 2004-08-25 | 2006-05-11 | Bao Bill Q | Storage virtualization |
US20070033356A1 (en) * | 2005-08-03 | 2007-02-08 | Boris Erlikhman | System for Enabling Secure and Automatic Data Backup and Instant Recovery |
US7945726B2 (en) * | 2006-05-08 | 2011-05-17 | Emc Corporation | Pre-allocation and hierarchical mapping of data blocks distributed from a first processor to a second processor for use in a file system |
KR101516580B1 (ko) * | 2009-04-22 | 2015-05-11 | 삼성전자주식회사 | 컨트롤러, 이를 포함하는 데이터 저장 장치 및 데이터 저장 시스템, 및 그 방법 |
CN102122267A (zh) * | 2010-01-07 | 2011-07-13 | 上海华虹集成电路有限责任公司 | 一种可同时进行数据传输及FTL管理的多通道NANDflash控制器 |
WO2012051600A2 (en) * | 2010-10-15 | 2012-04-19 | Kyquang Son | File system-aware solid-state storage management system |
US20120239860A1 (en) * | 2010-12-17 | 2012-09-20 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
US8626989B2 (en) * | 2011-02-02 | 2014-01-07 | Micron Technology, Inc. | Control arrangements and methods for accessing block oriented nonvolatile memory |
CN102521144B (zh) * | 2011-12-22 | 2015-03-04 | 清华大学 | 一种闪存转换层系统 |
-
2013
- 2013-09-06 EP EP13834544.2A patent/EP2893433A4/en not_active Withdrawn
- 2013-09-06 WO PCT/US2013/058644 patent/WO2014039923A1/en active Application Filing
- 2013-09-06 US US14/426,609 patent/US20150212937A1/en not_active Abandoned
- 2013-09-06 CN CN201380058167.7A patent/CN104854554A/zh active Pending
- 2013-09-06 JP JP2015531271A patent/JP2015529368A/ja active Pending
-
2015
- 2015-03-26 IN IN2477DEN2015 patent/IN2015DN02477A/en unknown
Also Published As
Publication number | Publication date |
---|---|
CN104854554A (zh) | 2015-08-19 |
EP2893433A1 (en) | 2015-07-15 |
US20150212937A1 (en) | 2015-07-30 |
IN2015DN02477A (ja) | 2015-09-11 |
EP2893433A4 (en) | 2016-06-01 |
WO2014039923A1 (en) | 2014-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2015529368A (ja) | ストレージトランスレーションレイヤー | |
US10216638B2 (en) | Methods and systems for reducing churn in a caching device | |
CN107622022B (zh) | 数据存储设备中的高速缓存超量配置 | |
US9158700B2 (en) | Storing cached data in over-provisioned memory in response to power loss | |
CN107622023B (zh) | 限制数据存储设备中的访问操作 | |
US9996473B2 (en) | Selective underlying exposure storage mapping | |
US9342260B2 (en) | Methods for writing data to non-volatile memory-based mass storage devices | |
US9940028B2 (en) | Multimode storage device | |
CN106708423B (zh) | 多模存储管理系统 | |
US9146688B2 (en) | Advanced groomer for storage array | |
US10761982B2 (en) | Data storage device and method for operating non-volatile memory | |
KR102252419B1 (ko) | 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법 | |
US20160179403A1 (en) | Storage controller, storage device, storage system, and semiconductor storage device | |
US20130019057A1 (en) | Flash disk array and controller | |
US9009396B2 (en) | Physically addressed solid state disk employing magnetic random access memory (MRAM) | |
US9141302B2 (en) | Snapshots in a flash memory storage system | |
TW201011767A (en) | NAND error management | |
CN110674056B (zh) | 一种垃圾回收方法及装置 | |
KR101026634B1 (ko) | 하이브리드 플래시 메모리의 데이터 저장 방법 | |
US10915441B2 (en) | Storage system having non-volatile memory device | |
JP5953245B2 (ja) | 情報処理システム | |
KR101335177B1 (ko) | 비휘발성 메모리 저장장치에서 워크로드와 데이터 재사용 시간을 고려한 선택적 트림 방법 |