JP2014142931A - 記憶アドレス空間と不揮発性メモリのアドレス、範囲、および長さとの間のマッピング/変換 - Google Patents
記憶アドレス空間と不揮発性メモリのアドレス、範囲、および長さとの間のマッピング/変換 Download PDFInfo
- Publication number
- JP2014142931A JP2014142931A JP2014008181A JP2014008181A JP2014142931A JP 2014142931 A JP2014142931 A JP 2014142931A JP 2014008181 A JP2014008181 A JP 2014008181A JP 2014008181 A JP2014008181 A JP 2014008181A JP 2014142931 A JP2014142931 A JP 2014142931A
- Authority
- JP
- Japan
- Prior art keywords
- data
- read
- page
- length
- address
- 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
Links
Images
Classifications
-
- 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
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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
- 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/061—Improving I/O performance
-
- 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
-
- 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
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/217—Hybrid disk, e.g. using both magnetic and solid state storage devices
-
- 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/26—Using a specific storage system architecture
- G06F2212/261—Storage comprising a plurality of storage devices
- G06F2212/262—Storage comprising a plurality of storage devices configured as RAID
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
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)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【解決手段】記憶アドレス空間とNVMアドレス、範囲、および長さとの間のマッピング/変換は、ホストからの論理ブロックアドレスをNVMの最小読み出し単位のアドレスに変換するためのマッピング機能を含むソリッドステート記憶システムのためのコントローラによって行われる。マッピング機能は、論理ブロックアドレスに対応する範囲情報および長さ情報830を提供する。範囲情報は、ホストに(論理ブロックアドレスに対応する)データを提供するために読み出すべき連続した最小読み出し単位の数を指定する。長さ情報は、連続した最小読み出し単位のうちのいくつがホストに提供されるデータに関するものであるかを指定する。
【選択図】図8
Description
本出願の優先権利益の主張を、(それがある場合には、適宜)添付の出願データシート、請求、または送達状において行う。本出願の種類によって許容される範囲内で、本出願はこの参照によりあらゆる目的で以下の出願を組み込むものであり、以下の出願はすべて、発明がなされた時点において本出願と所有者を同じくするものである。
2010年12月1日付で出願された、Jeremy Isaac Nathaniel WERNERを筆頭発明者とする、「DYNAMIC HIGHER−LEVEL REDUNDANCY MODE MANAGEMENT WITH INDEPENDENT SILICON ELEMENTS」という名称の、米国仮出願(整理番号第SF−10−10号および出願番号第61/418846号)、
2011年10月5日付で出願された、Earl T.COHENを筆頭発明者とする、「SELF−JOURNALING AND HIERARCHICAL CONSISTENCY FOR NON−VOLATILE STORAGE」という名称の、米国仮出願(整理番号第SF−10−10号および出願番号第61/543707号)、ならびに
2013年1月22日付で出願された、Earl T.COHENを筆頭発明者とする、「STORAGE ADDRESS SPACE TO NVM ADDRESS, SPAN, AND LENGTH MAPPING/CONVERTING」という名称の、米国仮出願(整理番号第SF−10−12号および出願番号第61/755169号)。
この概説は、詳細な説明のより迅速な理解を助けるために含まれるにすぎず、本発明は、(それがある場合には、明示的な例を含む)この概説で提示される概念だけに限定されるものではなく、どんな概説の段落も、必然的に、主題全体の縮約された見方であり、網羅的な、または限定的な記述であることを意味するものではない。例えば、以下の概説は、スペースおよび編成によりある一定の実施形態だけに限定される概要情報を提供するものである。特許請求の範囲が究極的にそこに導かれることになる実施形態を含む多くの他の実施形態があり、それらを本明細書の残りの部分にわたって論じる。
詳細な説明の概説を終えるにあたり、以下に、例示的実施形態をまとめて示す。これらの例示的実施形態は、少なくとも部分的に「EC」(Example Combinations:ECs)として明示的に列挙されたものを有し、本明細書で説明する概念に従った様々な種類の実施形態の詳細な説明を提供するものである。これらの例は、相互排他的であることも、網羅的であることも、限定的であることも意図されておらず、本発明は、これらの例示的実施形態だけに限定されるものではなく、発行される特許請求の範囲内のすべての可能な改変形態および変形形態を包含するものである。
記憶アドレス空間内の複数のページの各々を、不揮発性メモリから読み出し可能な複数の最小量の訂正可能データのうちの各データのアドレスにマップする第1のマップする工程と、
前記複数のページの各々を、前記不揮発性メモリから読み出し可能な前記最小量の訂正可能データの整数の数を指定する各範囲にマップする第2のマップする工程と、
前記複数のページの各々を、前記不揮発性メモリから読み出し可能な訂正可能データの最小量よりも高い粒度を有する、各長さの単位にマップする第3のマップする工程と、
前記特定のページの前記各アドレスおよび前記各範囲に少なくとも部分的に基づいて、前記不揮発性メモリに記憶され、前記特定のページと関連付けられたデータを読み出す工程と、
前記特定のページと関連付けられたデータを書き込む工程に応答して、前記特定のページの前記各長さに少なくとも部分的に基づいて不揮発性メモリの容量使用情報を更新する工程と
を有し、
前記特定のページの前記各アドレスおよび前記各範囲によって指定された、前記不揮発性メモリから読み出し可能な最小量の訂正可能データのうちの1若しくはそれ以上により、前記特定のページと関連付けられたデータ、および前記複数のページのうちの少なくとも1つの他のページと関連付けられた少なくとも一部のデータの両方が同時に記憶されるものである
方法。
マップ表の複数のエントリのうちの特定のエントリにアクセスする工程であって、前記マップ表は前記複数のページの各々を前記マップ表の複数のエントリの各エントリと関連付けるものであり、前記特定のページは前記マップ表の前記特定のエントリと関連付けられるものである、前記アクセスする工程を有するものであり、
前記アクセスする工程は、前記特定のページの第1のマップする工程と、前記特定のページの第2のマップする工程と、前記特定のページの第3のマップする工程と
を有するものである方法。
前記不揮発性メモリは、複数の別々に書き込み可能な不揮発性メモリページを有し、
前記別々に書き込み可能な不揮発性メモリページの各々は、前記不揮発性メモリから読み出し可能な最小量の訂正可能データのうちの少なくとも一部を有するものである方法。
前記特定のページと関連付けられたデータを書き込む工程に応答して、前記特定のページと関連付けられた前記データの長さに基づいて前記特定のページの前記各長さを更新する工程を有するものである方法。
前記特定のページと関連付けられたデータを書き込む工程に応答して、前記不揮発性メモリから読み出し可能な最小量の訂正可能データの数に従って前記特定のページの前記各範囲を更新し、前記特定のページと関連付けられた前記縮小されたデータの読み出しにアクセスする工程を有するものである方法。
前記特定のページと関連付けられたデータを書き込む工程に応答して、前記不揮発性メモリから読み出し可能な最小量の訂正可能データの数に従って前記特定のページの前記各範囲を更新し、前記特定のページと関連付けられた前記縮小されたデータの読み出しにアクセスする工程を有するものである方法。
記憶アドレス空間内の複数のページの各々を、複数の読み出し量のうちの各読み出し量のアドレスにマップする第1のマップする工程であって、前記読み出し量の各々は不揮発性メモリから読み出し可能な最小量の訂正可能データである、前記第1のマップする工程と、
前記複数のページの各々を、前記読み出し量の整数の数を指定する各範囲にマップする第2のマップする工程と、
前記複数のページの各々を、前記最小の訂正可能読み出し量のいずれよりも高い粒度を有する、各長さの単位にマップする第3のマップする工程と、
特定のページのアドレスおよび範囲に少なくとも部分的に基づいて、前記不揮発性メモリに記憶され、当該特定のページと関連付けられたデータを読み出す工程と、
前記特定のページと関連付けられたデータを書き込む工程に応答して、前記特定のページの長さに少なくとも部分的に基づいて前記不揮発性メモリの容量使用情報を更新する工程と
を有し、
前記特定のページのアドレスおよび範囲は、前記データを読み出す工程によってアクセスされる読み出し量のうち特定の読み出し量を指定し、当該特定の読み出し量のうちの少なくとも1つは、前記特定のページと関連付けられたデータのうちの少なくとも一部と、前記複数のページのうちの1つの他のページと関連付けられたデータのうちの少なくとも一部とを含むものである
方法。
記憶アドレス空間内の複数のページのうち特定のページのページアドレスに少なくとも部分的に基づいて、1若しくはそれ以上の不揮発性メモリの複数の読み出し単位のうち1つの読み出し単位の読み出し単位アドレスを決定する工程と、
前記ページアドレスに少なくとも部分的に基づいて、前記複数の読み出し単位の整数の数を指定する範囲を決定する工程と、
前記ページアドレスに少なくとも部分的に基づいて、前記読み出し単位よりも高い粒度を有する長さの単位を決定する工程と、
前記読み出し単位アドレスおよび前記範囲に少なくとも部分的に基づいて前記特定のページと関連付けられたデータを読み出す工程であって、前記複数の読み出し単位のうちの整数N個の読み出し単位にアクセスする工程を有し、Nは範囲に少なくとも部分的に基づくものである、前記読み出す工程と、
データを書き込む工程に応答して、前記長さに少なくとも部分的に基づいて前記不揮発性メモリの容量使用情報を更新する工程と
を有し、
前記複数の読み出し単位の各々は、前記不揮発性メモリから読み出し可能な最小量の訂正可能データであり、
前記複数の読み出し単位のうちの整数N個の読み出し単位うちの少なくとも1つは、前記特定のページと関連付けられた前記データのうちの少なくとも一部、および前記ページのうちの少なくとも1つの他のページと関連付けられたデータの少なくとも一部を含むものである、
方法。
前記読み出し単位アドレスを決定する工程は、前記複数のページの各々を、前記複数の読み出し単位における各読み出し単位の読み出し単位アドレスにマップする工程を有し、前記読み出し単位アドレスは前記特定のページがマップされる読み出し単位アドレスであり、
前記範囲を決定する工程は、前記複数のページの各々を、前記複数の読み出し単位の整数の数を指定する各範囲にマップする工程を有し、前記範囲は前記特定のページがマップされる範囲であり、
前記長さを決定する工程は、前記複数のページの各々を、前記読み出し単位よりも高い粒度を有する各長さの単位にマップする工程を有し、前記長さは前記特定のページがマップされる長さである方法。
マップ表の複数のエントリのうちの特定のエントリにアクセスする工程であって、前記マップ表は前記複数のページの各々を前記マップ表の複数のエントリの各エントリと関連付けるものであり、前記特定のページは前記マップ表の前記特定のエントリと関連付けられるものである、前記アクセスする工程を有するものであり、
前記アクセスする工程は、前記特定のページを前記読み出し単位アドレスにマップする工程と、前記特定のページを前記範囲にマップする工程と、前記特定のページを前記長さにマップする工程とを有する方法。
前記不揮発性メモリは、複数の別々に書き込み可能な不揮発性メモリページを有し、
前記別々に書き込み可能な不揮発性メモリページの各々は複数の読み出し単位を有するものである方法。
前記データを書き込む工程に応答して、前記特定のページと関連付けられた前記データの長さに従って前記長さを更新する工程を有するものである方法。
前記データを書き込む工程に応答して、前記特定のページと関連付けられた前記縮小されたデータを取り出すのためににアクセスすべき前記読み出し単位の数に従って前記特定のページの前記範囲を更新する工程を有するものである方法。
前記データを書き込む工程に応答して、前記特定のページと関連付けられた前記縮小されたデータを取り出すのためににアクセスすべき前記読み出し単位の数に従って前記特定のページの前記範囲を更新する工程を有するものである方法。
ホスト記憶容量アドレスを受け取り、ホストアドレスを不揮発性メモリ(Non−Volatile Memory:NVM)の読み出し単位アドレス、および符号化された長さ情報に変換するマッピングモジュールと、
前記読み出し単位アドレスおよび前記符号化された長さ情報を使用して前記不揮発性メモリの未使用容量を回復し、前記不揮発性メモリの空き容量および/または使用容量のカウントを維持する再利用モジュールと
を有するシステム。
前記符号化された長さ情報を復号して長さおよび範囲を取得する手段であって、前記長さは所定のバイト数の単位で表される値を有し、前記範囲は所定の読み出し単位数の単位で表される値を有するものである、前記復号する手段を有するものであるシステム。
前記読み出し単位アドレスおよび前記範囲を使用して、前記不揮発性メモリの任意数の連続した読み出し単位へのアクセスをスケジューリングするスケジューリングモジュールであって、前記数は前記範囲と等しく、前記範囲は、長さによって指定されるバイト数よりも大きい、またはこれと等しいバイト数を指定するものである、前記スケジューリングモジュールを有するものであるシステム。
第1のレベルのマップページおよびマップ・ページ・エントリ、ならびに第2のレベルのマップページおよびマップ・ページ・エントリを選択するために使用可能な情報を提供する整数除算器を有するものであるシステム。
前記ソリッドステートディスクを前記コンピューティングホストにインターフェースする手段を有するものであるシステム。
フラッシュメモリとインターフェースする手段を有するものであるシステム。
前記ソリッドステートディスクを前記コンピューティングホストにインターフェースする手段と、
前記フラッシュメモリとインターフェースする手段と
を有するものであるシステム。
前記コンピューティングホストの全部若しくは任意の部分を有するものであるシステム。
論理ページアドレスを、不揮発性メモリの複数の読み出し単位のうちの1つのアドレスおよび、符号化された長さ情報と関連付けるマッピング表と、
前記読み出し単位アドレスおよび前記符号化された長さ情報を使用して再利用すべき不揮発性メモリの特定のブロックを決定するリサイクラと
を有するシステム。
前記符号化された長さ情報を復号して長さおよび範囲を取得する手段であって、前記長さは所定のバイト数の単位で表される値を有し、前記範囲は所定の読み出し単位数の単位で表される値を有するものである、前記復号する手段を有するものであるシステム。
前記読み出し単位アドレスおよび前記範囲を使用して、前記読み出し単位アドレスに対応する、前記不揮発性メモリ内の位置にある読み出し単位を起点として、前記範囲と等しい合計数にわたって続く所定の連続した読み出し単位にアクセスするスケジューラを有するものであるシステム。
第1のレベルのマップページおよびマップ・ページ・エントリならびに第2のレベルのマップページおよびマップ・ページ・エントリを選択するために使用可能な情報を提供する整数除算器を有するものであるシステム。
前記ソリッドステートディスクを前記コンピューティングホストにインターフェースする手段を有するものであるシステム。
フラッシュメモリとインターフェースする手段を有するものであるシステム。
前記ソリッドステートディスクを前記コンピューティングホストにインターフェースする手段と、
前記フラッシュメモリとインターフェースする手段と
を有するものであるシステム。
前記コンピューティングホストの全部若しくは任意の部分を有するものであるシステム。
ホスト記憶容量アドレスに少なくとも部分的に基づいて、転送量粒度の単位で示される転送量値および空き容量粒度の単位で示される空き容量値を表す要素を決定する工程と、
前記要素に少なくとも部分的に基づいて、前記転送量値および前記空き容量値を決定する工程と、
前記転送量値に少なくとも部分的に基づいて、不揮発性メモリ(NVM)から、前記ホスト記憶容量アドレスに対応するデータを読み出す工程と、
前記空き容量値に少なくとも部分的に基づいて、前記不揮発性メモリの容量使用情報を追跡する工程と
を有し、
前記転送量粒度は空き容量粒度よりも粗いものである方法。
前記空き容量値に少なくとも部分的に基づいて、前記不揮発性メモリの各部分の再利用を管理する工程を有するものである方法。
前記空き容量値に少なくとも部分的に基づいて、前記各部分の特定の部分についての使用容量を決定する工程を有するものである方法。
前記使用容量に少なくとも部分的に基づいて、前記各部分の特定の部分を選択して再利する工程を有するものである方法。
前記ホスト記憶容量アドレスを指定するホストからの読み出し要求に応答して、前記データの少なくとも一部分を変換する工程と、前記変換する工程の結果の少なくとも一部分をホストに返す工程とを有するものである方法。
ホスト記憶容量アドレスに少なくとも部分的に基づいて、転送量粒度の単位で示される転送量値および空き容量粒度の単位で示される空き容量値を表す要素を決定する動作と、
前記要素に少なくとも部分的に基づいて、前記転送量値および前記空き容量値を決定する動作と、
前記転送量値に少なくとも部分的に基づいて、不揮発性メモリ(NVM)から、前記ホスト記憶容量アドレスに対応するデータを読み出す動作と、
前記空き容量値に少なくとも部分的に基づいて、前記不揮発性メモリの容量使用情報を追跡する動作と
を有し、
前記転送量粒度は前記空き容量粒度よりも粗いものである、
有形の非一時的なコンピュータ可読媒体。
前記空き容量値に少なくとも部分的に基づいて、前記不揮発性メモリの各部分の再利用を管理する動作を有するものである有形の非一時的なコンピュータ可読媒体。
空き容量値に少なくとも部分的に基づいて、前記各部分の特定の部分についての使用容量の量を決定する動作を有するものである有形の非一時的なコンピュータ可読媒体。
前記使用容量に少なくとも部分的に基づいて、前記各部分の特定の部分を選択して再利用する動作を有するものである有形の非一時的なコンピュータ可読媒体。
前記ホスト記憶容量アドレスを指定するホストからの読み出し要求に応答して、前記データの少なくとも一部分を変換する動作と、前記変換の結果の少なくとも一部分をホストに返す動作とを有するものである有形の非一時的なコンピュータ可読媒体。
少なくとも部分的にコンピューティング・ホスト・インターフェース論理回路を管理する動作によって前記要求を前記コンピューティングホストにインターフェースする動作を管理する動作を有するものであり、
前記記憶する動作は、前記フラッシュメモリとインターフェース可能なフラッシュ・メモリ・インターフェース論理回路を少なくとも部分的に介して実行されるものである有形の非一時的なコンピュータ可読媒体。
前記コンピューティングホストの全部若しくは任意の部分の動作を管理する動作を有するものである有形の非一時的なコンピュータ可読媒体。
ユニバーサル・シリアル・バス(USB)インターフェース規格、
コンパクトフラッシュ(登録商標)(CF)インターフェース規格、
マルチメディアカード(MMC)インターフェース規格、
組み込みMMC(eMMC)インターフェース規格、
サンダーボルト(Thunderbolt)インターフェース規格、
UFSインターフェース規格、
セキュアディジタル(SD)インターフェース規格、
メモリ・スティック・インターフェース規格、
xDピクチャ・カード・インターフェース規格、
統合ドライブエレクトロニクス(IDE)インターフェース規格、
シリアル・アドバンスド・テクノロジ・アタッチメント(SATA)インターフェース規格、
外部SATA(eSATA)インターフェース規格、
小型コンピュータ・システム・インターフェース(SCSI)インターフェース規格、
シリアル小型コンピュータ・システム・インターフェース(SAS)インターフェース規格、
ファイバ・チャネル・インターフェース規格、
イーサネット(登録商標)(Ethernet(登録商標))インターフェース規格、および
周辺装置相互接続エクスプレス(PCIe)インターフェース規格
のうち1若しくはそれ以上を有するEC。
オープンNANDフラッシュインターフェース(ONFI)、
トグルモードインターフェース、
ダブルデータレート(DDR)同期インターフェース、
DDR2同期インターフェース、
同期インターフェース、および
非同期インターフェース
のうち1若しくはそれ以上と適合するEC。
コンピュータ、
ワークステーションコンピュータ、
サーバコンピュータ、
ストレージサーバ、
ストレージ・アタッチト・ネットワーク(SAN)、
ネットワーク・アタッチト・ストレージ(NAS)デバイス、
ダイレクト・アタッチト・ストレージ(DAS)デバイス、
ストレージアプライアンス、
パーソナルコンピュータ(PC)、
ラップトップコンピュータ、
ノートブックコンピュータ、
ネットブックコンピュータ、
タブレット機器またはタブレットコンピュータ、
ウルトラブックコンピュータ、
電子読み出し装置(e−reader)、
携帯情報端末(PDA)
ナビゲーションンシステム
(ハンドヘルド型)全地球測位システム(GPS)機器、
自動通信路制御システム、
自動車媒体制御システムまたは自動車媒体制御コンピュータ、
プリンタ、コピー機またはファックス機またはオールインワン機器、
販売時点POS機器、
金銭登録機、
メディアプレーヤ、
テレビ、
メディアレコーダ、
ディジタル・ビデオ・レコーダ(DVR)、
ディジタルカメラ、
セルラハンドセット、
コードレス電話機ハンドセット、および
電子ゲーム
のうち1若しくはそれ以上を有するEC。
NANDフラッシュ技術記憶セル、および
NORフラッシュ技術記憶セル
のうち1若しくはそれ以上を有するEC。
シングルレベルセル(SLC)フラッシュ技術記憶セル、および
マルチレベルセル(MLC)フラッシュ技術記憶セル
のうち1若しくはそれ以上を有するEC。
多結晶シリコン技術ベースの電荷蓄積セル、および
シリコン窒化膜技術ベースの電荷蓄積セル
のうち1若しくはそれ以上を有するEC。
2次元技術ベースのフラッシュメモリ技術、および
3次元技術ベースのフラッシュメモリ技術
のうち1若しくはそれ以上を有するEC。
ある実施形態では、SSDといった入出力装置がSSDコントローラを有する。SSDコントローラはホストインターフェースとSSDの不揮発性メモリ(NVM)との間のブリッジとして働き、SSDのホストインターフェースを介してコンピューティングホストから送られるホストプロトコルのコマンドを実行する。コマンドの少なくとも部分的に、SSDに、コンピューティングホストから送られたデータおよびコンピューティングホストに送られるデータについて、それぞれ、NVMの書き込みおよび読み出しを行うよう指図する。別の実施形態では、SSDコントローラは、マップを使用してホストプロトコルのLBAとNVM内の物理的記憶アドレスとを変換することができるようになっている。別の実施形態では、マップの少なくとも一部分が、入出力装置の専用記憶(コンピューティングホストからは見えない)に使用される。例えば、コンピューティングホストからアクセスできないLBAの部分が、入出力装置によって、ログ、統計、または他の専用データへのアクセスを管理するのに使用される。
図2に、LBAのLPN部分のマッピングの実施形態の選択された詳細を図示する。一部の実施形態では、読み出し単位は、NVMのページの部分といった、独立に読み出すことのできるNVMの最も細かい粒度である。別の実施形態では、読み出し単位は、検査ビットによって保護されるすべてのデータに(低レベル)誤り訂正符号の検査ビット(冗長性ともいう)を加えたものに対応する。例えば、図1AのECC161は、検査ビットによる、例えばLDPC符号による誤り訂正を実施し、読み出し単位は、LDPC符号化ビットによって保護されるデータビットにLDPC符号を加えたものを実施する符号化ビットに対応する。
図6に、論理スライスおよび/またはセクションとして管理される複数のNVMデバイス(1若しくはそれ以上のフラッシュダイおよび/またはフラッシュチップなど)のブロック、ページ、および読み出し単位の実施形態の選択された詳細を示す。管理機能は、読み出し機能、再利用機能、消去機能、プログラミング/書き込み機能、および他の管理機能のうちの任意の1若しくはそれ以上を含む。論理スライスおよび/またはセクションはR−ブロックと呼ばれることもある。図には、66個のフラッシュダイを有する実施形態が示されている。フラッシュダイのうちの3つは明示的に図示されており(フラッシュダイ610.65、610.1、および610.0)、フラッシュダイのうちの63個は暗黙的に図示されている(610.64...610.2)。
ホスト論理ブロックアドレスとNVM論理ページアドレスとの間のマッピングに使用されるデータ構造は、例えば、図2の読み出し単位での長さ225など、SSDコントローラ100とNVM199との間で転送されるデータの連続した読み出し単位の数を制御するのに使用されるデータ長さ関連情報を含む。図2〜図5および図7に関連して前述したように、マッピング構造はホスト記憶アドレスを、NVM読み出し単位のアドレスを指定するNVM論理ページ番号(LPN)に変換する。読み出し単位の非ヘッダデータの最初のバイトの位置は、各読み出し単位の始まりのところのヘッダ情報によって指定される(図4A、図4B)。ある実施形態および/または使用シナリオでは、例えば、NVM空間再利用(R−ブロック再利用)が使用するための、相対的により厳密な長さ情報を提供することにより、性能および/または効率が改善される。様々な実施形態において、相対的により厳密な長さ情報は、相対的により厳密なデータサイズと、すべてのデータを確実に得るために転送すべき連続した読み出し単位の数の両方を指定するマップエントリによって提供される。様々な実施形態に関連した選択された詳細が図8に図示されており、図8は、データの長さおよび範囲の例、ならびにデータの長さおよび範囲の値を得るための符号化された長さ情報の復号を図示した概念図である。
NVM(図1AのNVM199など)に記憶されたデータを圧縮することは、ある実施形態および/または使用シナリオでは、改善された(より低い)書き込み増幅を可能にする。圧縮データは対応する解凍データよりも小さいため、データの位置の追跡および空き容量の量の追跡は、より小さい圧縮データに見合うものになる。
あるSSDは固定サイズのマッピングを有する。すなわち、セクタのグループがLpageとして扱われ、LpageはSSDによって制御されるNVM(図1AのNVM199など)内の(ECCおよびシステムオーバーヘッドを無視した)同じサイズの記憶量に(図1Aのマップ141などによって)マップされる。
様々な実施形態において、図2から図8によって図示されるような動作および/または機能の全部若しくは任意の部分は、例えば、1若しくはそれ以上の状態機械によって実装される。状態機械の例示的実装形態には、ハードウェア(論理ゲートおよび/または回路、専用状態機械回路、配線による制御回路など)、ソフトウェア(ファームウェアやマイクロコードなど)、あるいはハードウェアとソフトウェアの組み合わせが含まれる。ある実施形態では、状態機械のうちの1若しくはそれ以上が、少なくとも部分的に、ファームウェア、ドライバ、および/またはアプリケーションによって実装される。様々な実施形態において、状態機械のうちの1若しくはそれ以上は、一部が図1AのSSDコントローラ100によって、一部がCPUコア172によって実行されるファームウェアによって、一部が図1Bのファームウェア106によって、一部がドライバ107によって、かつ/または一部がアプリケーション109によって実装される。
ある実施形態では、記憶アドレス空間とNVMアドレス、範囲、および長さとの間のマッピング/変換を実施するために行われる動作の全部若しくは部分の様々な組み合わせは、例えば、アドレスマッピング機能(図1Aのマップ141など)の表内エントリといった長さ関連情報を符号化するための様々な技術、コンピューティングホストのフラッシュ・メモリ・コントローラ、および/若しくは(図1AのSSDコントローラ100といった)SSDコントローラ、ならびに、プロセッサ、マイクロプロセッサ、システム・オン・チップ、特定用途向け集積回路、ハードウェアアクセラレータの部分、または前述の動作の全部若しくは部分を提供する他の回路を使用して、コンピュータシステムによる処理と適合した仕様によって指定される。仕様は、ハードウェア記述言語、回路記述、ネットリスト記述、マスク記述、レイアウト記述といった様々な記述に従ったものである。記述の例には、Verilog、VHDL、SPICE、PSpiceといったSPICEの変形、IBIS、LEF、DEF、GDS−II、OASIS、または他の記述が含まれる。様々な実施形態において、処理は、1若しくはそれ以上の集積回路上に含めるのに適した論理および/または回路を製造し、検証し、または指定するための解釈、コンパイル、シミュレーション、および合成の任意の組み合わせを含む。各集積回路は、様々な実施形態によれば、様々な技術に従って設計可能であり、かつ/または製造可能である。技術には、プログラマブル技術(フィールド若しくはマスク・プログラマブル・ゲート・アレイ集積回路など)、セミカスタム技術(全部若しくは一部がセルベースの集積回路など)、およびフルカスタム技術(おおむね特化された集積回路など)、これらの任意の組み合わせ、または集積回路の設計および/若しくは製造と適合した任意の他の技術が含まれる。
ある実施形態では、命令のセットを記憶しているコンピュータ可読媒体によって記述される動作の全部または部分の様々な組み合わせが、1若しくはそれ以上のプログラム命令の実行および/若しくは解釈によって、1若しくはそれ以上のソースおよび/若しくはスクリプト言語命令文の解釈および/若しくはコンパイルによって、または、プログラミングおよび/若しくはスクリプティング言語命令文で表現された情報をコンパイルし、変換し、かつ/または解釈することによって生成されるバイナリ命令の実行によって実行される。命令文は任意の標準のプログラミングまたはスクリプティング言語(例えば、C、C++、Fortran、Pascal、Ada、Java(登録商標)、VBscript、Shell)と適合する。プログラム命令、言語命令文、またはバイナリ命令のうち1若しくはそれ以上が、任意選択で、1若しくはそれ以上のコンピュータ可読記憶媒体要素上に記憶される。様々な実施形態では、プログラム命令の一部、全部、または様々な部分が、1若しくはそれ以上の関数、ルーチン、サブルーチン、インラインルーチン、プロシージャ、マクロ、またはそれらの部分として実現される。
ある特定の選択が、説明において、テキストおよび図面を作成するに際の単なる便宜のためになされており、別の指示がない限り、それらの選択は、それ自体で、前述の実施形態の構造または動作に関する追加情報を伝えるものと解釈すべきではない。選択の例には、図の符番に使用される呼称の特定の編成または割り当て、および実施形態の特徴および要素を識別し、参照するのに使用される要素識別子(コールアウトや数値識別子など)の特定の編成または割り当てが含まれる。
Claims (20)
- 方法であって、
記憶容量アドレス内の複数のページのうち特定のページのページアドレスに少なくとも部分的に基づいて、1若しくはそれ以上の不揮発性メモリの複数の読み出し単位のうち1つの読み出し単位の読み出し単位アドレスを決定する工程と、
前記ページアドレスに少なくとも部分的に基づいて、前記複数の読み出し単位の整数の数を指定する範囲(span)を決定する工程と、
前記ページアドレスに少なくとも部分的に基づいて、前記読み出し単位よりも高い粒度を有する長さの単位を決定する工程と、
前記読み出し単位アドレスおよび前記範囲に少なくとも部分的に基づいて前記特定のページと関連付けられたデータを読み出す工程であって、前記複数の読み出し単位のうちの整数N個の読み出し単位にアクセスする工程を有し、Nは前記範囲に少なくとも部分的に基づくものである、前記読み出す工程と、
データを書き込む工程に応答して、前記長さに少なくとも部分的に基づいて前記不揮発性メモリの容量使用情報を更新する工程と
を有し、
前記複数の読み出し単位の各々は、前記不揮発性メモリから読み出し可能な最小量の訂正可能データであり、
前記複数の読み出し単位のうちの前記整数N個の読み出し単位うちの少なくとも1つは、前記特定のページと関連付けられた前記データのうちの少なくとも一部、および前記ページのうちの少なくとも1つの他のページと関連付けられたデータの少なくとも一部を含むものである、
方法。 - 請求項1記載の方法において、
前記読み出し単位アドレスを決定する工程は、前記ページの各々を、前記複数の読み出し単位における各読み出し単位の読み出し単位アドレスにマップする工程を有し、前記読み出し単位アドレスは前記特定のページがマップされる読み出し単位アドレスであり、
前記範囲を決定する工程は、前記ページの各々を、前記複数の読み出し単位の各整数の数を指定する各範囲にマップする工程を有し、前記範囲は前記特定のページがマップされる範囲であり、
前記長さを決定する工程は、前記ページの各々を、前記読み出し単位よりも高い粒度を有する各単位の長さにマップする工程を有し、前記長さは前記特定のページがマップされる長さである方法。 - 請求項2記載の方法において、さらに、
マップ表の複数のエントリのうちの特定のエントリにアクセスする工程であって、前記マップ表は前記複数のページの各々を前記マップ表の複数のエントリの各エントリと関連付けるものであり、前記特定のページは前記マップ表の前記特定のエントリと関連付けられるものである、前記アクセスする工程を有するものであり、
前記アクセスする工程は、前記特定のページを前記読み出し単位アドレスにマップする工程と、前記特定のページを前記範囲にマップする工程と、前記特定のページを前記長さにマップする工程とを有し、前記特定のマップエントリは、前記範囲と、前記アドレスと、前記長さとを有する方法。 - 請求項1記載の方法において、
前記不揮発性メモリは、複数の別々に書き込み可能な不揮発性メモリページを有し、
前記別々に書き込み可能な不揮発性メモリページの各々は複数の前記読み出し単位を有するものである方法。 - 請求項1記載の方法において、前記データを読み出す工程はアクセスされた読み出し単位に含まれるヘッダを解析する工程を有し、前記ヘッダは前記特定のページと関連付けられた前記データを特定するオフセットを有するものである方法。
- 請求項1記載の方法において、さらに、
前記データを書き込む工程に応答して、前記特定のページと関連付けられた前記データの長さに従って前記長さを更新する工程を有するものである方法。 - 請求項6記載の方法において、前記データを書き込む工程は、前記特定のページと関連付けられた前記データのサイズを縮小する工程を有し、前記特定のページの前記長さは、前記特定のページと関連付けられた前記データの当該縮小されたサイズの長さに基づくものである方法。
- 請求項7記載の方法において、前記縮小する工程は圧縮する工程を有するものである方法。
- 請求項1記載の方法において、さらに、
前記データを書き込む工程に応答して、前記特定のページと関連付けられた前記データを取り出すためにアクセスすべき前記読み出し単位の数に従って前記特定のページの前記範囲を更新する工程を有するものである方法。 - 請求項1記載の方法において、前記特定のページは第1のページであり、前記長さは第1の長さであり、前記第1の長さは前記ページの第2のページと関連付けられた第2の長さと異なるものである方法。
- 方法であって、
ホスト記憶容量アドレスに少なくとも部分的に基づいて、転送量粒度の単位で示される転送量値および空き容量粒度の単位で示される空き容量値を表す要素を決定する工程と、
前記要素に少なくとも部分的に基づいて、前記転送量値および前記空き容量値を決定する工程と、
前記転送量値に少なくとも部分的に基づいて、不揮発性メモリ(Non−Volatile Memory:NVM)から、前記ホスト記憶容量アドレスに対応するデータを読み出す工程と、
前記空き容量値に少なくとも部分的に基づいて、前記不揮発性メモリの容量使用情報を追跡する工程と
を有し、
前記転送量粒度は前記空き容量粒度よりも大きいものである
方法。 - 請求項11記載の方法において、前記転送量値は、前記不揮発性メモリから読み出し可能な最小量の誤り訂正可能データの整数倍を表すものである方法。
- 請求項12記載の方法において、前記不揮発性メモリから読み出し可能な前記最小量の誤り訂正可能データは、生データ部分、および当該生データ部分と関連付けられた低レベル誤り訂正符号ビットに対応するものである方法。
- 請求項11記載の方法において、さらに、
前記ホスト記憶容量アドレスを指定する前記ホストからの読み出し要求に応答して、前記データの少なくとも一部分を変換する工程と、前記変換する工程の結果の少なくとも一部分を前記ホストに返す工程とを有するものである方法。 - 請求項14記載の方法において、前記変換する工程は解凍する工程および解読する工程のうちの少なくとも1つを有するものである方法。
- 処理要素によって実行されると、当該処理要素に動作を実行させる命令のセットが記憶されている非一時的な有形のコンピュータ可読媒体であって、前記動作は、
ホスト記憶容量アドレスに少なくとも部分的に基づいて、転送量粒度の単位で示される転送量値および空き容量粒度の単位で示される空き容量値を表す要素を決定する動作と、
前記要素に少なくとも部分的に基づいて、前記転送量値および前記空き容量値を決定する動作と、
前記転送量値に少なくとも部分的に基づいて、不揮発性メモリ(NVM)から、前記ホスト記憶容量アドレスに対応するデータを読み出す動作と、
前記空き容量値に少なくとも部分的に基づいて、前記不揮発性メモリの容量使用情報を追跡する動作と
を有し、
前記転送量粒度は前記空き容量粒度よりも大きいものである
非一時的な有形のコンピュータ可読媒体。 - 請求項16記載の非一時的な有形のコンピュータ可読媒体において、前記転送量値は、前記不揮発性メモリから読み出し可能な最小量の誤り訂正可能データの整数倍を表すものである非一時的な有形のコンピュータ可読媒体。
- 請求項17記載の非一時的な有形のコンピュータ可読媒体において、前記不揮発性メモリから読み出し可能な前記最小量の誤り訂正可能データは、生データ部分、および当該生データ部分と関連付けられた低レベル誤り訂正符号ビットに対応するものである非一時的な有形のコンピュータ可読媒体。
- 請求項17記載の非一時的な有形のコンピュータ可読媒体において、前記要素の第1の下位要素は前記転送量値を有し、前記要素の第2の下位要素は前記空き容量値を有するものである有形の非一時的なコンピュータ可読媒体。
- 請求項17記載の非一時的な有形のコンピュータ可読媒体において、前記要素の第1の下位要素は前記転送量値を示す整数を有し、前記要素の第2の下位要素は、前記不揮発性メモリから読み出し可能な前記最小量の誤り訂正可能データよりも少ない量のデータを示めす小数部を有し、前記整数および前記小数部の組み合わせは前記空き容量値に対応するものである非一時的な有形のコンピュータ可読媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361755169P | 2013-01-22 | 2013-01-22 | |
US61/755,169 | 2013-01-22 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2014142931A true JP2014142931A (ja) | 2014-08-07 |
JP2014142931A5 JP2014142931A5 (ja) | 2017-02-02 |
JP6265746B2 JP6265746B2 (ja) | 2018-01-24 |
Family
ID=49958324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014008181A Expired - Fee Related JP6265746B2 (ja) | 2013-01-22 | 2014-01-21 | 記憶アドレス空間と不揮発性メモリのアドレス、範囲、および長さとの間のマッピング/変換 |
Country Status (6)
Country | Link |
---|---|
US (4) | US9582431B2 (ja) |
EP (1) | EP2757480A1 (ja) |
JP (1) | JP6265746B2 (ja) |
KR (1) | KR102230227B1 (ja) |
CN (1) | CN103942114B (ja) |
TW (1) | TWI534617B (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017511521A (ja) * | 2014-02-05 | 2017-04-20 | ティダル システムズ, インク.Tidal Systems, Inc. | フラッシュメモリ圧縮 |
KR20180034079A (ko) * | 2016-09-27 | 2018-04-04 | 삼성전자주식회사 | 스토리지 장치의 동작 방법 및 스토리지 장치를 포함하는 데이터 저장 시스템 |
US10853234B2 (en) | 2017-03-22 | 2020-12-01 | Toshiba Memory Corporation | Memory controller |
Families Citing this family (76)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9582431B2 (en) | 2010-03-22 | 2017-02-28 | Seagate Technology Llc | Storage address space to NVM address, span, and length mapping/converting |
US8713379B2 (en) * | 2011-02-08 | 2014-04-29 | Diablo Technologies Inc. | System and method of interfacing co-processors and input/output devices via a main memory system |
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 |
US11249652B1 (en) | 2013-01-28 | 2022-02-15 | Radian Memory Systems, Inc. | Maintenance of nonvolatile memory on host selected namespaces by a common memory controller |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
TWI506430B (zh) * | 2013-03-20 | 2015-11-01 | Phison Electronics Corp | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 |
EP2946300B1 (en) * | 2013-04-02 | 2018-01-31 | Hewlett-Packard Enterprise Development LP | Sata initiator addressing and storage device slicing |
US9092321B2 (en) * | 2013-07-24 | 2015-07-28 | NXGN Data, Inc. | System and method for performing efficient searches and queries in a storage node |
US9286209B2 (en) * | 2014-04-21 | 2016-03-15 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System, method and computer-readable medium using map tables in a cache to manage write requests to a raid storage array |
US9766972B2 (en) * | 2014-08-07 | 2017-09-19 | Pure Storage, Inc. | Masking defective bits in a storage array |
US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
US9552289B1 (en) | 2014-11-25 | 2017-01-24 | Seagate Technology Llc | Bitwise addressing of entries in a forward lookup table |
WO2016097810A1 (en) * | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Multi-mode set associative cache memory dynamically configurable to selectively select one or a plurality of its sets depending upon mode |
WO2016097795A1 (en) | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Multi-mode set associative cache memory dynamically configurable to selectively allocate into all or subset or tis ways depending on mode |
US10698827B2 (en) | 2014-12-14 | 2020-06-30 | Via Alliance Semiconductor Co., Ltd. | Dynamic cache replacement way selection based on address tag bits |
US11036533B2 (en) | 2015-04-17 | 2021-06-15 | Samsung Electronics Co., Ltd. | Mechanism to dynamically allocate physical storage device resources in virtualized environments |
US10838852B2 (en) | 2015-04-17 | 2020-11-17 | Samsung Electronics Co., Ltd. | System and method to extend NVME queues to user space |
CN106155812A (zh) | 2015-04-28 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种对虚拟主机的资源管理的方法、装置、系统及电子设备 |
US11829349B2 (en) | 2015-05-11 | 2023-11-28 | Oracle International Corporation | Direct-connect functionality in a distributed database grid |
US9766837B2 (en) * | 2015-06-10 | 2017-09-19 | Micron Technology, Inc. | Stripe mapping in memory |
US9727416B2 (en) * | 2015-07-01 | 2017-08-08 | Xilinx, Inc. | Variable code rate solid-state drive |
US10089196B2 (en) | 2015-07-14 | 2018-10-02 | Shannon Systems Ltd. | Methods for reconfiguring a storage controller when control logic fails and apparatuses using the same |
CN106648439B (zh) * | 2015-07-14 | 2019-11-29 | 上海宝存信息科技有限公司 | 于控制逻辑错误时重新配置存储控制器的方法及装置 |
US10552058B1 (en) | 2015-07-17 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for delegating data processing to a cooperative memory controller |
US10459846B2 (en) * | 2015-09-10 | 2019-10-29 | Toshiba Memory Corporation | Memory system which uses a host memory |
US10095622B2 (en) * | 2015-12-29 | 2018-10-09 | Intel Corporation | System, method, and apparatuses for remote monitoring |
CN107924405B (zh) * | 2016-01-29 | 2022-03-08 | 慧与发展有限责任合伙企业 | 用于存储数据的系统和方法、以及计算机可读介质 |
EP3404527B1 (en) | 2016-02-18 | 2023-08-30 | Huawei Technologies Co., Ltd. | Data updating technique |
CN106201778B (zh) * | 2016-06-30 | 2019-06-25 | 联想(北京)有限公司 | 信息处理方法及存储设备 |
CN106201350B (zh) * | 2016-07-07 | 2019-10-18 | 华为技术有限公司 | 存储数据的方法、存储器和计算机系统 |
US20180039422A1 (en) * | 2016-08-05 | 2018-02-08 | Alibaba Group Holding Limited | Solid state storage capacity management systems and methods |
US10574270B1 (en) * | 2016-11-09 | 2020-02-25 | Seagate Technology Llc | Sector management in drives having multiple modulation coding |
KR20180055297A (ko) | 2016-11-16 | 2018-05-25 | 삼성전자주식회사 | 언맵 리드를 수행하는 메모리 장치 및 메모리 시스템 |
CN108459898B (zh) * | 2017-02-20 | 2022-01-14 | 阿里巴巴集团控股有限公司 | 一种资源回收方法及装置 |
US10585749B2 (en) | 2017-08-10 | 2020-03-10 | Samsung Electronics Co., Ltd. | System and method for distributed erasure coding |
US10719446B2 (en) * | 2017-08-31 | 2020-07-21 | Oracle International Corporation | Directly mapped buffer cache on non-volatile memory |
CN110490213B (zh) * | 2017-09-11 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 图像识别方法、装置及存储介质 |
CN107479938B (zh) * | 2017-09-27 | 2024-03-29 | 北京忆芯科技有限公司 | 电子设备及其启动方法 |
US10970226B2 (en) * | 2017-10-06 | 2021-04-06 | Silicon Motion, Inc. | Method for performing access management in a memory device, associated memory device and controller thereof, and associated electronic device |
JP7074453B2 (ja) | 2017-10-30 | 2022-05-24 | キオクシア株式会社 | メモリシステムおよび制御方法 |
JP7074454B2 (ja) | 2017-10-30 | 2022-05-24 | キオクシア株式会社 | 計算機システムおよび制御方法 |
CN108255741A (zh) * | 2017-12-19 | 2018-07-06 | 深圳忆联信息系统有限公司 | 一种固态硬盘原子写入的方法及固态硬盘 |
CN111512290B (zh) * | 2017-12-27 | 2023-09-22 | 华为技术有限公司 | 文件页表管理技术 |
KR20190105869A (ko) * | 2018-03-06 | 2019-09-18 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
CN108549525B (zh) * | 2018-04-04 | 2022-07-15 | 北京蓝杞数据科技有限公司天津分公司 | 数据存储和访问方法、装置、电子设备及存储介质 |
US10474361B1 (en) * | 2018-05-02 | 2019-11-12 | Seagate Technology Llc | Consolidating non-volatile memory across multiple storage devices for front end processing |
CN110515761B (zh) | 2018-05-22 | 2022-06-03 | 杭州海康威视数字技术股份有限公司 | 一种数据获取方法及装置 |
US10922178B2 (en) * | 2018-10-31 | 2021-02-16 | Hewlett Packard Enterprise Development Lp | Masterless raid for byte-addressable non-volatile memory |
KR102680874B1 (ko) * | 2018-12-20 | 2024-07-02 | 에스케이하이닉스 주식회사 | 저장 장치, 컨트롤러 및 저장 장치의 동작 방법 |
KR20200088713A (ko) * | 2019-01-15 | 2020-07-23 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
CN109918373A (zh) * | 2019-02-02 | 2019-06-21 | 上海达梦数据库有限公司 | 数据存储方法、装置、服务器和存储介质 |
KR102659832B1 (ko) * | 2019-03-05 | 2024-04-22 | 삼성전자주식회사 | 데이터 저장 장치 및 시스템 |
CN111767005B (zh) * | 2019-04-01 | 2023-12-08 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN111831297B (zh) * | 2019-04-17 | 2021-10-26 | 中兴通讯股份有限公司 | 零差分升级方法及装置 |
US10783978B1 (en) * | 2019-08-27 | 2020-09-22 | Micron Technology, Inc. | Read voltage-assisted manufacturing tests of memory sub-system |
CN110765033B (zh) * | 2019-10-31 | 2023-03-10 | 四川效率源信息安全技术股份有限公司 | 一种ahci模式下访问硬盘的方法 |
CN111241090B (zh) * | 2019-12-23 | 2023-11-10 | 华为技术有限公司 | 存储系统中管理数据索引的方法和装置 |
CN111176583B (zh) | 2019-12-31 | 2021-03-30 | 北京百度网讯科技有限公司 | 一种数据写入方法、装置和电子设备 |
JP7395388B2 (ja) | 2020-03-06 | 2023-12-11 | キオクシア株式会社 | メモリシステム及びその制御方法 |
CN111427805B (zh) * | 2020-03-19 | 2023-04-07 | 电子科技大学 | 一种基于页模式操作的存储器快速访问方法 |
EP4139805A4 (en) * | 2020-04-22 | 2023-06-21 | Micron Technology, Inc. | MAPPING DESCRIPTORS FOR READ OPERATIONS |
CN112052192B (zh) * | 2020-09-15 | 2024-04-05 | 广东高标智能科技股份有限公司 | 电动车故障记录、读取方法及装置 |
US11573914B2 (en) * | 2021-03-19 | 2023-02-07 | Sandisk Technologies Llc | Nonconsecutive mapping scheme for data path circuitry in a storage device |
CN113064555A (zh) * | 2021-04-21 | 2021-07-02 | 山东英信计算机技术有限公司 | 一种bios的数据存储方法、装置、设备及存储介质 |
CN113300720B (zh) * | 2021-05-25 | 2022-06-28 | 天津大学 | 一种针对叠加水印的长dna序列的插入删节的分段识别方法 |
US20230015697A1 (en) * | 2021-07-13 | 2023-01-19 | Citrix Systems, Inc. | Application programming interface (api) authorization |
CN113590502B (zh) * | 2021-07-23 | 2024-03-22 | 合肥康芯威存储技术有限公司 | 一种非挥发性记忆体存储设备的垃圾回收方法与垃圾回收系统 |
CN113590503B (zh) * | 2021-07-23 | 2024-03-22 | 合肥康芯威存储技术有限公司 | 一种非挥发性记忆体存储器的垃圾回收方法与垃圾回收系统 |
CN115878020A (zh) * | 2021-09-29 | 2023-03-31 | 慧荣科技股份有限公司 | 编码历程信息的存取方法和计算机可读取存储介质和装置 |
US11860775B2 (en) | 2021-09-29 | 2024-01-02 | Silicon Motion, Inc. | Method and apparatus for programming data into flash memory incorporating with dedicated acceleration hardware |
US11972150B2 (en) | 2021-09-29 | 2024-04-30 | Silicon Motion, Inc. | Method and non-transitory computer-readable storage medium and apparatus for programming data into flash memory through dedicated acceleration hardware |
CN113590051B (zh) * | 2021-09-29 | 2022-03-18 | 阿里云计算有限公司 | 数据存储和读取方法、装置、电子设备及介质 |
US11803441B2 (en) * | 2021-09-30 | 2023-10-31 | International Business Machines Corporation | Calibrated decoders for implementations of quantum codes |
CN114415966B (zh) * | 2022-01-25 | 2022-08-12 | 武汉麓谷科技有限公司 | 一种kv ssd存储引擎的构建方法 |
US11853554B2 (en) | 2022-04-05 | 2023-12-26 | Western Digital Technologies, Inc. | Aligned and unaligned data deallocation |
CN115079957B (zh) * | 2022-07-20 | 2023-08-04 | 阿里巴巴(中国)有限公司 | 请求处理方法、装置、控制器、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008530710A (ja) * | 2005-02-16 | 2008-08-07 | サンディスク コーポレイション | フラッシュメモリにおける直接データファイル記憶 |
US20100017578A1 (en) * | 2006-12-22 | 2010-01-21 | Maansson Staffan | Storing Compressed Data |
US20110296133A1 (en) * | 2010-05-13 | 2011-12-01 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
WO2012099937A2 (en) * | 2011-01-18 | 2012-07-26 | Lsi Corporation | Higher-level redundancy information computation |
JP2013545202A (ja) * | 2010-12-01 | 2013-12-19 | エルエスアイ コーポレーション | 独立したシリコン素子の動的な上位レベルの冗長モード管理 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003280979A (ja) | 2002-03-20 | 2003-10-03 | Toshiba Corp | 情報記憶装置 |
US8112574B2 (en) * | 2004-02-26 | 2012-02-07 | Super Talent Electronics, Inc. | Swappable sets of partial-mapping tables in a flash-memory system with a command queue for combining flash writes |
KR100706242B1 (ko) | 2005-02-07 | 2007-04-11 | 삼성전자주식회사 | 메모리 시스템 및 그것의 런 단위 어드레스 매핑 테이블 구성 방법 |
US8151082B2 (en) * | 2007-12-06 | 2012-04-03 | Fusion-Io, Inc. | Apparatus, system, and method for converting a storage request into an append data storage command |
US7774525B2 (en) * | 2007-03-13 | 2010-08-10 | Dell Products L.P. | Zoned initialization of a solid state drive |
US9152496B2 (en) * | 2007-12-21 | 2015-10-06 | Cypress Semiconductor Corporation | High performance flash channel interface |
US8219776B2 (en) * | 2009-09-23 | 2012-07-10 | Lsi Corporation | Logical-to-physical address translation for solid state disks |
US8307258B2 (en) * | 2009-05-18 | 2012-11-06 | Fusion-10, Inc | Apparatus, system, and method for reconfiguring an array to operate with less storage elements |
US8364929B2 (en) | 2009-10-23 | 2013-01-29 | Seagate Technology Llc | Enabling spanning for a storage device |
US8745353B2 (en) * | 2009-10-23 | 2014-06-03 | Seagate Technology Llc | Block boundary resolution for mismatched logical and physical block sizes |
US9582431B2 (en) | 2010-03-22 | 2017-02-28 | Seagate Technology Llc | Storage address space to NVM address, span, and length mapping/converting |
CN101930404B (zh) * | 2010-08-27 | 2012-11-21 | 威盛电子股份有限公司 | 存储装置及其操作方法 |
US8949513B2 (en) * | 2011-05-10 | 2015-02-03 | Marvell World Trade Ltd. | Data compression and compacting for memory devices |
-
2014
- 2014-01-17 US US14/158,380 patent/US9582431B2/en active Active
- 2014-01-20 EP EP14151726.8A patent/EP2757480A1/en not_active Withdrawn
- 2014-01-21 JP JP2014008181A patent/JP6265746B2/ja not_active Expired - Fee Related
- 2014-01-21 TW TW103102153A patent/TWI534617B/zh not_active IP Right Cessation
- 2014-01-21 KR KR1020140007202A patent/KR102230227B1/ko active IP Right Grant
- 2014-01-22 CN CN201410031027.7A patent/CN103942114B/zh active Active
-
2017
- 2017-01-18 US US15/409,127 patent/US9971547B2/en active Active
-
2018
- 2018-04-06 US US15/946,891 patent/US10740011B2/en active Active
-
2020
- 2020-07-08 US US16/923,655 patent/US11449252B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008530710A (ja) * | 2005-02-16 | 2008-08-07 | サンディスク コーポレイション | フラッシュメモリにおける直接データファイル記憶 |
US20100017578A1 (en) * | 2006-12-22 | 2010-01-21 | Maansson Staffan | Storing Compressed Data |
US20110296133A1 (en) * | 2010-05-13 | 2011-12-01 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
JP2013545202A (ja) * | 2010-12-01 | 2013-12-19 | エルエスアイ コーポレーション | 独立したシリコン素子の動的な上位レベルの冗長モード管理 |
WO2012099937A2 (en) * | 2011-01-18 | 2012-07-26 | Lsi Corporation | Higher-level redundancy information computation |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017511521A (ja) * | 2014-02-05 | 2017-04-20 | ティダル システムズ, インク.Tidal Systems, Inc. | フラッシュメモリ圧縮 |
US9927998B2 (en) | 2014-02-05 | 2018-03-27 | Tidal Systems, Inc. | Flash memory compression |
KR20180034079A (ko) * | 2016-09-27 | 2018-04-04 | 삼성전자주식회사 | 스토리지 장치의 동작 방법 및 스토리지 장치를 포함하는 데이터 저장 시스템 |
KR102611638B1 (ko) | 2016-09-27 | 2023-12-08 | 삼성전자주식회사 | 스토리지 장치의 동작 방법 및 스토리지 장치를 포함하는 데이터 저장 시스템 |
US10853234B2 (en) | 2017-03-22 | 2020-12-01 | Toshiba Memory Corporation | Memory controller |
Also Published As
Publication number | Publication date |
---|---|
US9971547B2 (en) | 2018-05-15 |
US20170123733A1 (en) | 2017-05-04 |
US20200333969A1 (en) | 2020-10-22 |
EP2757480A1 (en) | 2014-07-23 |
US11449252B2 (en) | 2022-09-20 |
US10740011B2 (en) | 2020-08-11 |
KR102230227B1 (ko) | 2021-03-18 |
KR20140094467A (ko) | 2014-07-30 |
JP6265746B2 (ja) | 2018-01-24 |
US20140208062A1 (en) | 2014-07-24 |
TWI534617B (zh) | 2016-05-21 |
US9582431B2 (en) | 2017-02-28 |
TW201443640A (zh) | 2014-11-16 |
CN103942114B (zh) | 2018-08-10 |
US20180232179A1 (en) | 2018-08-16 |
CN103942114A (zh) | 2014-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11449252B2 (en) | Method of writing and reading data in an NVM using Lpage identification headers | |
JP6387231B2 (ja) | 不揮発性メモリへの書き込みの管理および領域選択 | |
US9851910B2 (en) | Scalable data structures for control and management of non-volatile storage | |
KR101912596B1 (ko) | 리던던트 어레이들을 통한 비휘발성 메모리 프로그램 실패 복구 | |
JP6045567B2 (ja) | 不揮発性記憶のための可変オーバープロビジョニング | |
JP6185993B2 (ja) | 不揮発性メモリのための混合粒度の上位レベルの冗長 | |
KR101564569B1 (ko) | 상위-레벨 리던던시 정보 계산 | |
KR20130114681A (ko) | 독립 실리콘 소자들을 갖는 동적 상위 레벨 리던던시 모드 관리 | |
JP2015036982A (ja) | ホストとコントローラとの間でパーティション化された変換レイヤ | |
US9396104B1 (en) | Accessing compressed data of varying-sized quanta in non-volatile memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20160427 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160610 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161216 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161216 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171117 |
|
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: 20171128 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6265746 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |