TW201443641A - 用於寫入非揮發性記憶體之管理及區域選擇 - Google Patents

用於寫入非揮發性記憶體之管理及區域選擇 Download PDF

Info

Publication number
TW201443641A
TW201443641A TW103102158A TW103102158A TW201443641A TW 201443641 A TW201443641 A TW 201443641A TW 103102158 A TW103102158 A TW 103102158A TW 103102158 A TW103102158 A TW 103102158A TW 201443641 A TW201443641 A TW 201443641A
Authority
TW
Taiwan
Prior art keywords
data
write
flash memory
nvm
lba
Prior art date
Application number
TW103102158A
Other languages
English (en)
Other versions
TWI537724B (zh
Inventor
Earl T Cohen
Timothy Lawrence Canepa
Original Assignee
Lsi Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lsi Corp filed Critical Lsi Corp
Publication of TW201443641A publication Critical patent/TW201443641A/zh
Application granted granted Critical
Publication of TWI537724B publication Critical patent/TWI537724B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

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 Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

用於寫入一SSD之非揮發性記憶體之管理及區域選擇改良一SSD之效能、可靠度、單位成本及/或開發成本。一控制器接收並判定寫入之特性(例如,藉由分析寫入資料、寫入資料源及/或藉由接收一提示)且基於非揮發性記憶體之區域之該等所判定特性及性質來選擇一區域。舉例而言,一控制器接收被判定為唯讀資料之寫入且選擇含有可能具有寫入失敗之胞元之非揮發性記憶體之區域。藉由將唯讀資料放置於寫入失敗易發區域中,減小一錯誤之可能性,因此改良可靠度。作為另一實例,一控制器接收被提示為不可壓縮之寫入且選擇含有不可壓縮資料之非揮發性記憶體之區域。

Description

用於寫入非揮發性記憶體之管理及區域選擇 相關申請案交叉參考
在隨附申請案資料表單、請求或傳送信(若存在,視情況而定)作出本申請案之優先權權益請求。在本申請案之類型准許之情況下,本申請案出於所有目的而以引用方式併入有以下申請案(其在作出本發明時全部與本申請案共同擁有):於2011年03月11日提出申請且標題係LDPC ERASURE DECODING FOR FLASH MEMORIES之PCT申請案(檔案號SF-10-01PCTB及序列號PCT/US11/28244),第一發明人Hao ZHONG;於2011年10月26日提出申請且標題係ADAPTIVE ECC TECHNIQUES FOR FLASH MEMORY BASED DATA STORAGE之PCT申請案(檔案號SF-10-03PCT及序列號PCT/US11/57914),第一發明人Yan LI;於2012年01月18日提出申請且標題係HIGHER-LEVEL REDUNDANCY INFORMATION COMPUTATION之PCT申請案(檔案號SF-10-14PCT及序列號PCT/US12/21682),第一發明人Jeremy Isaac Nathaniel WERNER;及於2013年01月22日提出申請且標題係MANAGEMENT OF及REGION SELECTION FOR WRITES TO NON-VOLATILE MEMORY之美國臨時申請案(檔案號SF-11-01及序列號61/755,442), 第一發明人Earl T.COHEN。
本發明可以多種方式實施,例如作為一處理程序、一製品、一設備、一系統、一物質組成及諸如一電腦可讀儲存媒體之一電腦可讀媒體(例如,一光學/磁性大容量儲存裝置中之媒體,諸如一碟,具有諸如快閃儲存器之非揮發性儲存器之一積體電路)或其中在光學或電子通信鏈路上發送程式指令之一電腦網路。[實施方式]提供本發明之達成在上文所識別領域中之成本、獲利性、效能、效率及使用效用之改良的一或多項實施例之一解釋。[實施方式]包括一導論以促進對[實施方式]之其餘部分之理解。該導論包括根據本文中所闡述之概念之系統、方法、製品及電腦可讀媒體中之一或多者之實例性實施例。如在總論中更詳細地論述,本發明涵蓋在所發佈之申請專利範圍之範疇內之所有可能的修改及變化形式。
需要儲存裝置技術及製造之進展以提供成本、獲利性、效能、效率及使用效用之改良。
除非明確地識別為公開已知或眾所周知,否則對出於上下文、定義或比較目的而包括的本文技術及概念之提及不應視為承認此等技術及概念係先前公開已知或以其他方式作為先前技術之部分。本文提及之包括專利、專利申請案及公開案之所有參考(若存在)皆出於各種目的以引用的方式將其整個內容併入(具體地併入或未具體併入)本文中。
100‧‧‧固態磁碟控制器
101‧‧‧固態磁碟
102‧‧‧主機
103‧‧‧切換器/組構/中間控制器
104‧‧‧中間介面
105‧‧‧OS
106‧‧‧韌體
107‧‧‧驅動程式
107D‧‧‧虛線箭頭
109‧‧‧應用程式
109D‧‧‧虛線箭頭
109V‧‧‧虛線箭頭
110‧‧‧外部介面
111‧‧‧主機介面
112C‧‧‧卡記憶體
113‧‧‧標籤追蹤
114‧‧‧多裝置管理軟體
115‧‧‧主機軟體
116‧‧‧I/O卡
117‧‧‧選用I/O及儲存裝置/資源
118‧‧‧選用伺服器
119‧‧‧選用LAN/WAN
121‧‧‧資料處理
123‧‧‧引擎
131‧‧‧緩衝器
133‧‧‧DMA
135‧‧‧錯誤校正碼X
137‧‧‧記憶體
141‧‧‧映射
143‧‧‧表
151‧‧‧回收器
161‧‧‧錯誤校正碼
171‧‧‧CPU
172‧‧‧CPU核心
173‧‧‧命令管理
175‧‧‧緩衝器管理
177‧‧‧轉譯管理
179‧‧‧一致性管理
180‧‧‧記憶體介面
181‧‧‧裝置管理
182‧‧‧身份識別管理
190‧‧‧裝置介面
191‧‧‧裝置介面邏輯
192‧‧‧快閃記憶體裝置
193‧‧‧排程
194‧‧‧快閃記憶體晶粒
199‧‧‧非揮發性記憶體
211‧‧‧邏輯區塊位址
213‧‧‧邏輯頁編號
221‧‧‧映射資訊
223‧‧‧讀取單元位址
225‧‧‧讀取單元之長度
311‧‧‧讀取資料
313‧‧‧第一讀取單元/讀取單元
315‧‧‧讀取單元
401A‧‧‧讀取單元
401B‧‧‧讀取單元
410B‧‧‧標頭標記
411A‧‧‧標頭1
411B‧‧‧標頭1
412B‧‧‧標頭2
419A‧‧‧標頭N
419B‧‧‧標頭N/標頭
421A‧‧‧資料位元組
421B‧‧‧資料位元組
422B‧‧‧資料位元組
429B‧‧‧資料位元組
431A‧‧‧選用填補位元組
431B‧‧‧選用填補位元組
501‧‧‧標頭
511‧‧‧欄位類型
513‧‧‧最後指示符
515‧‧‧旗標
517‧‧‧邏輯頁編號
519‧‧‧長度
521‧‧‧偏移
600‧‧‧等量化方向
610.0‧‧‧快閃記憶體晶粒
610.0B0‧‧‧區塊
610.0B1‧‧‧區塊
610.0BB‧‧‧區塊
610.0P0‧‧‧頁
610.0P1‧‧‧頁
610.0PP‧‧‧頁
610.0R0‧‧‧讀取單元
610.0R1‧‧‧讀取單元
610.0RR‧‧‧讀取單元
610.1‧‧‧快閃記憶體晶粒
610.1B0‧‧‧區塊
610.1B1‧‧‧區塊
610.1BB‧‧‧區塊
610.1P0‧‧‧頁
610.1P1‧‧‧頁
610.1PP‧‧‧頁
610.1R0‧‧‧讀取單元
610.1R1‧‧‧讀取單元
610.1RR‧‧‧讀取單元
610.65‧‧‧快閃記憶體晶粒
610.65B0‧‧‧區塊
610.65B1‧‧‧區塊
610.1BB‧‧‧區塊
610.65P0‧‧‧頁
610.65P1‧‧‧頁
610.65PP‧‧‧頁
610.65R0‧‧‧讀取單元
610.65R1‧‧‧讀取單元
610.65RR‧‧‧讀取單元
660.0‧‧‧R區塊
660.1‧‧‧R區塊
660.R‧‧‧R區塊
700‧‧‧寫入資料源
701‧‧‧主機資料
702‧‧‧經回收資料
703‧‧‧系統資料/系統
704‧‧‧其他資料
705‧‧‧選用提示單元
706‧‧‧源ID
707‧‧‧相關聯源資訊/源資訊
708‧‧‧寫入資料
709‧‧‧選用提示
710‧‧‧帶區管理
711‧‧‧映射
712‧‧‧邏輯區塊位址計數器陣列
713‧‧‧資料分析/分析
714‧‧‧帶區選擇器
715‧‧‧帶區ID
716‧‧‧寫入資料
717‧‧‧資料變換
718‧‧‧經變換資料
730‧‧‧資料帶區
731‧‧‧帶區
731.1‧‧‧R區塊
731.M‧‧‧R區塊
732‧‧‧帶區
73N‧‧‧帶區
73N.K‧‧‧R區塊
800‧‧‧邏輯區塊位址至非揮發性記憶體位置映射/邏輯區塊
位址至非揮發性記憶體映射
810‧‧‧第一階映射
810.1‧‧‧第二階映射頁/長度
810.M‧‧‧第二階映射頁/長度
810S‧‧‧第二階映射指標
820‧‧‧單元件第二階映射頁/第二階映射頁
820.1‧‧‧邏輯區塊頁/長度
820.2‧‧‧邏輯區塊頁/長度
820.N‧‧‧邏輯區塊頁/長度
820L‧‧‧邏輯區塊指標
821‧‧‧邏輯區塊位址
822‧‧‧整數除法器
822.1‧‧‧邏輯區塊位址計數器
822.2‧‧‧邏輯區塊位址計數器
822.N‧‧‧邏輯區塊位址計數器
822R‧‧‧第二階映射頁索引
822Q‧‧‧第一階映射索引
823‧‧‧第二階映射項目/第二階映射頁(CSR)
圖1A圖解說明一固態磁碟(SSD)之一實施例之選定細節,其包括經啟用以執行寫入非揮發性記憶體之區域之管理及區域選擇之一SSD 控制器。
圖1B圖解說明包括圖1A之SSD之一或多個例項之系統之各項實施例之選定細節。
圖2圖解說明映射一邏輯區塊位址(LBA)之一邏輯頁編號(LPN)部分之一實施例之選定細節。
圖3圖解說明在一讀取單元位址處存取一非揮發性記憶體(NVM)以產生組織為各種讀取單元(共同地具有按讀取單元之配量所量測之一長度)之讀取資料之一實施例之選定細節。
圖4A圖解說明一讀取單元之一實施例之選定細節。
圖4B圖解說明一讀取單元之另一實施例之選定細節。
圖5圖解說明具有若干欄位之一標頭之一實施例之選定細節。
圖6圖解說明多個NVM裝置之區塊、頁及讀取單位之一實施例之選定細節。
圖7概念性地圖解說明將資料選擇性地放置至一SSD之NVM之特定帶區中之該SSD之一實施例之選定細節。
圖8圖解說明經由一雙階映射(其具有一第一階映射(FLM)頁及一或多個第二階映射(SLM)頁)將LBA映射至儲存於一NVM中之邏輯區塊(LB)之一實施例之選定細節。
圖9圖解說明NVM(諸如在一SSD中)之資料帶區之帶區管理之一實施例的選定細節之一流程圖。
下文與圖解說明本發明之選定細節之隨附圖示一起提供本發明之一個或多項實施例之一詳細說明。本發明係結合該等實施例闡述。本文之實施例應理解為僅係例示性的,本發明尤其地不限於或不受本文實施例中之任一者或全部限定,且本發明涵蓋大量替代形式、修改形式及等效形式。為避免解釋之單調性,可將多種措詞標籤(諸如: 第一、最後、某一(些)、各種、進一步、其他、特定、選擇、某一(些)及顯著的)應用於單獨組之實施例;如本文所使用,此等標籤明確地不意在表達品質或任何形式之偏好或偏見,而僅在該等單獨組之間便利地加以區分。所揭示過程之某些操作之次序可在本發明之範疇內變化。每當多項實施例起到闡述過程、方法及/或程式指令特徵之作用時,就期望其他實施例根據一預定或一動態判定之準則執行分別對應於該多項實施例中之複數個之複數個操作模式中之一者之靜態及/或動態選擇。在以下說明中列舉各種具體細節以提供本發明之一透徹理解。該等細節係出於實例之目的提供,且本發明可在不具有該等細節中之某些或全部之情況下根據申請專利範圍來實行。出於清晰之目的,未詳細闡述與本發明相關之技術領域中習知之技術材料,因此不會不必要地模糊本發明。
導論
僅為促進對實施方式之更快速理解而包括此導論;本發明不限於導論中所提供之概念(包括明確實例,若存在),乃因任何導論之段落皆係整個主題之一必要性示意圖,且不意欲作為一窮舉性或限定性說明。舉例而言,以下導論提供對僅某些實施例之由空間及組織限定之概觀資訊。存在諸多其他實施例,包括最終將貫穿整個說明書之平衡而繪製、論述申請專利範圍之彼等實施例。
縮寫詞
本文所定義之各種簡寫縮略語(例如,縮寫字)中之至少某些係指本文中所使用之某些元件。
在各項實施例中,將區域(例如,資料帶區)管理為一SSD中之NVM之區塊之群組。在以下論述中,將「一區塊具有一或多個邏輯性質」理解為意指「將一帶區塊分配至經投射而具有或經觀察而具有一或多個邏輯性質之資料」。在各項實施例中,區塊具有邏輯性質、實體性質及/或含有來自一或多個寫入資料源之資料。在各項實施例中,帶區僅包括具有特定實體性質、特定邏輯性質及/或含有來自特定寫入資料源之資料之一特定組合之區塊。
在各項實施例中,帶區包括具有一或多個特定邏輯性質之區塊。在各項實施例中,特定邏輯性質係以下各項中之任何一或多者:被頻繁地讀取、被相對較頻繁地寫入(例如,「較熱」或「熱」)、被相對較不頻繁地寫入(例如,「較冷」或「冷」)、係不可壓縮的、係可執行的、係不可恢復的且有必要在一電力丟失之後保存、係可恢復的且沒有必要在一電力丟失之後保存、使用一特定技術或密鑰加密、使用一特定技術或密鑰或者藉助特定ECC方案保護以防止錯誤、經受回收及不經受回收。在各項實施例中,第一及第二帶區包括被分配至經投射而具有或經觀察而具有特定第一及第二邏輯性質之資料之區塊。
在各項實施例中,帶區僅包括具有特定實體性質之區塊。作為一第一實例,一帶區僅包括下部頁區塊。作為一第二實例,一帶區僅包括上部頁區塊。其他實施例包括具有具有其他特定實體性質之區塊之帶區。
在各項實施例中,帶區僅包括僅來自一特定寫入資料源之資料之區塊。寫入資料源之實例包括一計算主機,其提供主機資料、藉由回收產生之資料(諸如來自待抹除之一區塊之有效資料)及藉由由(例如)一SSD之一控制器執行之系統操作產生之資料(諸如映射資料)。
在各項實施例中,管理帶區係有利的且改良以下各項中之一或多者:一SSD之效能、可靠度、單位成本及開發成本。舉例而言,將含有可能具有寫入失敗之NVM胞元之區塊分配至一冷帶區,因此改良可靠度。對於另一實例,將含有組態為或替代地用作SLC之NVM胞元之區塊分配至系統資料(例如,映射資料)。
實例性實施例
在結束詳細說明之導論後,接下來係實例性實施例之一集合,包括至少某些明確地列舉為「EC」(實例性組合)之實例性實施例,從而提供對根據本文所闡述之概念之各種實施例類型之額外說明;此等實例並非打算作為互斥、窮盡或限制性的;且本發明不限於此等實例性實施例而是涵蓋在所發佈之申請專利範圍及其等效形式之範疇內之所有可能修改形式及變化形式。
EC1)一種方法,其包含:分析自一主機接收之一寫入以判定該寫入之一特性;至少部分地基於該特性來選擇一非揮發性記憶體(NVM)之複數個帶區中之一者;將該寫入之資料寫入至該選定帶區;且其中該等帶區中之每一者係該NVM之一經管理部分。
EC2)如EC1之方法,其中該特性包含該寫入之資料係可壓縮的。
EC3)如EC1之方法,其中該特性包含該寫入之資料係可執行的。
EC4)如EC1之方法,其中該特性係至少部分地基於與對應於該寫入之一邏輯區塊位址(LBA)相關聯之一計數器。
EC5)如EC4之方法,其進一步包含經由該計數器對至該LBA之寫入之一數目進行計數。
EC6)如EC4之方法,其進一步包含經由該計數器對該LBA之讀取之一數目與該LBA之寫入之一數目之間之一差進行計數。
EC7)如EC1之方法,其中該等帶區中之每一者包含一或多個R區塊。
EC8)如EC1之方法,其中該等帶區中之每一者包含該NVM之一或多個區塊。
EC9)如EC1之方法,其中該等帶區中之每一者係根據複數個邏輯性質中之至少一者,該等邏輯性質包含被頻繁地讀取、被相對較頻繁地寫入、被相對較不頻繁地寫入、係不可壓縮的、係可執行的、係不可恢復的且有必要在一電力丟失之後保存、係可恢復的且沒有必要在一電力丟失之後保存、使用一特定技術或密鑰加密、使用一特定技術或密鑰或者藉助特定錯誤校正碼(ECC)方案保護以防止錯誤、經受回收及不經受回收。
EC10)如EC1之方法,其進一步包含將資料自該等帶區中之一第一者回收到該等帶區中之一第二者,且其中該第二帶區含有由該主機直接寫入之資料及自該第一帶區回收之資料兩者。
EC11)如EC1之方法,其中該寫入係經由與一或多個儲存介面標準相容之一儲存介面自該主機接收。
EC12)如EC1之方法,其中該寫入資料係至少部分地經由經啟用以與該NVM通信之一快閃記憶體介面。
EC13)如EC1之方法,其中該NVM包含至少一個快閃記憶體。
EC14)如EC1之方法,其中:該寫入係經由與一或多個儲存介面標準相容之一儲存介面自該主機接收; 該寫入資料係至少部分地經由經啟用以與該NVM通信之一快閃記憶體介面;該NVM包含至少一個快閃記憶體;且該儲存介面及該快閃記憶體介面係包含於實施於一單個積體電路中之一控制器中。
EC15)一種系統,其包含:用於分析自一主機接收之一寫入以判定該寫入之一特性之構件;用於至少部分地基於該特性選擇一非揮發性記憶體(NVM)之複數個帶區中之一者之構件;用於將該寫入之資料寫入至該選定帶區之構件;且其中該等帶區中之每一者係該NVM之一經管理部分。
EC16)如EC15之系統,其中該特性包含該寫入之資料係可壓縮的。
EC17)如EC15之系統,其中該特性包含該寫入之資料係可執行的。
EC18)如EC15之系統,其中該特性係至少部分地基於與對應於該寫入之一邏輯區塊位址(LBA)相關聯之一計數器。
EC19)如EC18之系統,其進一步包含用於經由該計數器對至該LBA之寫入之一數目進行計數之構件。
EC20)如EC18之系統,其進一步包含用於經由該計數器對該LBA之讀取之一數目與該LBA之寫入之一數目之間之一差進行計數之構件。
EC21)如EC15之系統,其中該等帶區中之每一者包含一或多個R區塊。
EC22)如EC15之系統,其中該等帶區中之每一者包含該NVM之 一或多個區塊。
EC23)如EC15之系統,其中該等帶區中之每一者係根據複數個邏輯性質中之至少一者,該等邏輯性質包含被頻繁地讀取、被相對較頻繁地寫入、被相對較不頻繁地寫入、係不可壓縮的、係可執行的、係不可恢復的且有必要在一電力丟失之後保存、係可恢復的且沒有必要在一電力丟失之後保存、使用一特定技術或密鑰加密、使用一特定技術或密鑰或者藉助特定錯誤校正碼(ECC)方案保護以防止錯誤、經受回收及不經受回收。
EC24)如EC15之系統,其進一步包含用於將資料自該等帶區中之一第一者回收到該等帶區中之一第二者之構件,且其中該第二帶區含有由該主機直接寫入之資料及自該第一帶區回收之資料兩者。
EC25)如EC15之系統,其中該寫入係經由與一或多個儲存介面標準相容之一儲存介面自該主機接收。
EC26)如EC15之系統,其中用於寫入資料之該構件包含經啟用以與該NVM通信之一快閃記憶體介面。
EC27)如EC15之系統,其中該NVM包含至少一個快閃記憶體。
EC28)如EC15之系統,其中該寫入係經由與一或多個儲存介面標準相容之一儲存介面自該主機接收;用於寫入資料之該構件包含經啟用以與該NVM通信之一快閃記憶體介面;該NVM包含至少一個快閃記憶體;且該儲存介面及該快閃記憶體介面係包含於實施於一單個積體電路中之一控制器中。
EC29)一種具有儲存於其中之一指令集之有形電腦可讀媒體,該指令集在由一處理元件執行時致使該處理元件執行及/或控制包含以 下各項之操作:分析自一主機接收之一寫入以判定該寫入之一特性;至少部分地基於該特性來選擇一非揮發性記憶體(NVM)之複數個帶區中之一者;將該寫入之資料寫入至該選定帶區;且其中該等帶區中之每一者係該NVM之一經管理部分。
EC30)如EC29之有形電腦可讀媒體,其中該特性包含該寫入之資料係可壓縮的。
EC31)如EC29之有形電腦可讀媒體,其中該特性包含該寫入之資料係可執行的。
EC32)如EC29之有形電腦可讀媒體,其中該特性係至少部分地基於與對應於該寫入之一邏輯區塊位址(LBA)相關聯之一計數。
EC33)如EC32之有形電腦可讀媒體,其中該等操作進一步包含經由該計數器對到該LBA之寫入之一數目進行計數。
EC34)如EC32之有形電腦可讀媒體,其中該等操作進一步包含經由該計數器對該LBA之讀取之一數目與該LBA之寫入之一數目之間之一差進行計數。
EC35)如EC29之有形電腦可讀媒體,其中該等帶區中之每一者包含一或多個R區塊。
EC36)如EC29之有形電腦可讀媒體,其中該等帶區中之每一者包含該NVM之一或多個區塊。
EC37)如EC29之有形電腦可讀媒體,其中該等帶區中之每一者係根據複數個邏輯性質中之至少一者,該等邏輯性質包含被頻繁地讀取、被相對較頻繁地寫入、被相對較不頻繁地寫入、係不可壓縮的、係可執行的、係不可恢復的且有必要在一電力丟失之後保存、係可恢復的且沒有必要在一電力丟失之後保存、使用一特定技術或密鑰加 密、使用一特定技術或密鑰或者藉助特定錯誤校正碼(ECC)方案保護以防止錯誤、經受回收及不經受回收。
EC38)如EC29之有形電腦可讀媒體,其中該等操作進一步包含將資料自該等帶區中之一第一者回收到該等帶區中之一第二者,且其中該第二帶區含有由該主機直接寫入之資料及自該第一帶區回收之資料兩者。
EC39)如EC29之有形電腦可讀媒體,其中該寫入係經由與一或多個儲存介面標準相容之一儲存介面自該主機接收。
EC40)如EC29之有形電腦可讀媒體,其中該寫入資料係至少部分地經由經啟用以與該NVM通信之一快閃記憶體介面。
EC41)如EC29之有形電腦可讀媒體,其中該NVM包含至少一個快閃記憶體。
EC42)如EC29之有形電腦可讀媒體,其中該寫入係經由與一或多個儲存介面標準相容之一儲存介面自該主機接收;該寫入資料係至少部分地經由經啟用以與該NVM通信之一快閃記憶體介面;該NVM包含至少一個快閃記憶體;且該處理元件、該儲存介面及該快閃記憶體介面係包含於實施於一單個積體電路中之一控制器中。
EC43)一種設備,其包含:寫入分析硬體邏輯電路,其經啟用以分析自一主機接收之一寫入以判定該寫入之一特性;帶區選擇硬體邏輯電路,其經啟用以至少部分地基於該特性來選擇一非揮發性記憶體(NVM)之複數個帶區中之一者;記憶體寫入硬體邏輯電路,其經啟用以將該寫入之資料寫入至 該選定帶區;且其中該等帶區中之每一者係該NVM之一經管理部分。
EC44)如EC43之設備,其中該特性包含該寫入之資料係可壓縮的。
EC45)如EC43之設備,其中該特性包含該寫入之資料係可執行的。
EC46)如EC43之設備,其中該等帶區中之每一者包含一或多個R區塊。
EC47)如EC43之設備,其中該等帶區中之每一者包含該NVM之一或多個區塊。
EC48)如EC43之設備,其中該等帶區中之每一者係根據複數個邏輯性質中之至少一者,該等邏輯性質包含被頻繁地讀取、被相對較頻繁地寫入、被相對較不頻繁地寫入、係不可壓縮的、係可執行的、係不可恢復的且有必要在一電力丟失之後保存、係可恢復的且沒有必要在一電力丟失之後保存、使用一特定技術或密鑰加密、使用一特定技術或密鑰或者藉助特定錯誤校正碼(ECC)方案保護以防止錯誤、經受回收及不經受回收。
EC49)如EC43之設備,其進一步包含經啟用以將資料自該等帶區中之一第一者回收到該等帶區中之一第二者之回收器硬體邏輯電路,且其中該第二帶區含有由該主機直接寫入之資料及自該第一帶區回收之資料兩者。
EC50)如EC43之設備,其進一步包含與對應於該寫入之一邏輯區塊位址(LBA)相關聯之一計數器且其中該特性係至少部分地基於該計數器。
EC51)如EC50之設備,其中該計數器經啟用以對至該LBA之寫入之一數目進行計數。
EC52)如EC50之設備,其中該計數器經啟用以對該LBA之讀取之一數目與該LBA之寫入之一數目之間之一差進行計數。
EC53)如EC43之設備,其進一步包含與一或多個儲存介面標準相容之一儲存介面且其中該寫入係經由該儲存介面自該主機接收。
EC54)如EC43之設備,其中該記憶體寫入硬體邏輯電路包含經啟用以與該NVM通信之一快閃記憶體介面。
EC55)如EC43之設備,其中該NVM包含至少一個快閃記憶體。
EC56)如EC43之設備,其中該設備包含於實施於一單個積體電路中之一控制器中。
EC57)一種方法,其包含:判定寫入資料之至少某些特性;至少部分地基於該等特性來選擇一或多個非揮發性記憶體(NVM)之複數個經管理區塊群組中之一者;將該寫入資料寫入至該選定經管理群組;其中該判定、該選擇及該寫入係由一儲存系統之一控制器執行;且其中該等經管理群組中之每一者係相對於一或多個管理操作來管理,且該等管理操作包含一回收操作及一寫入分配操作中之任何一或多者,且該等經管理群組中之每一者包含由該等NVM之至少兩個晶粒提供之儲存。
EC58)如EC57之方法,其中該等經管理群組中之每一者對應於該等NVM之一各別管理方案。
EC59)如EC58之方法,其中該等各別管理方案係根據各別邏輯性質,該等邏輯性質包含被頻繁地讀取、被相對較頻繁地寫入、被相對較不頻繁地寫入、係不可壓縮的、係可執行的、係不可恢復的且有必要在一電力丟失之後保存、係可恢復的且沒有必要在一電力丟失之後 保存、使用一特定技術或密鑰加密、使用一特定技術或密鑰或者藉助特定ECC方案保護以防止錯誤、經受回收及不經受回收。
EC60)如EC58之方法,其中該等各別管理方案係根據各別實體性質,該等實體性質包含僅包括下部頁區塊及僅包括上部頁區塊。
EC61)如EC58之方法,其中該等各別管理方案係根據各別寫入資料源,該等寫入資料源包含提供主機資料、藉由回收產生之資料及藉由系統操作產生之資料之一計算主機。
EC62)如EC57之方法,其中該等經管理群組中之每一者包含一或多個R區塊。
EC63)如EC57之方法,其中該等經管理群組中之每一者包含該等NVM之一或多個區塊。
EC64)如EC57之方法,其中該等經管理群組中之每一者係根據複數個邏輯性質中之至少一者,該等邏輯性質包含被頻繁地讀取、被相對較頻繁地寫入、被相對較不頻繁地寫入、係不可壓縮的、係可執行的、係不可恢復的且有必要在一電力丟失之後保存、係可恢復的且沒有必要在一電力丟失之後保存、使用一特定技術或密鑰加密、使用一特定技術或密鑰或者藉助特定錯誤校正碼(ECC)方案保護以防止錯誤、經受回收及不經受回收。
EC65)如EC57之方法,其進一步包含將資料自該等經管理群組中之一第一者回收到該等經管理群組中之一第二者,且其中該第二經管理群組含有由該主機直接寫入之資料及自該第一經管理群組回收之資料兩者。
EC66)如EC57之方法,其進一步包含自一主機接收該寫入資料。
EC67)如EC57之方法,其中該寫入資料係由該控制器產生。
EC68)如EC57之方法,其中該寫入資料包含使用者寫入資料、經重寫資料、系統資料、經重寫系統資料及經重寫使用者資料中之任何 一或多者。
EC69)如EC68之方法,其中該系統資料包含檢查點資料。
EC70)如EC57之方法,其中該判定係回應於一提示。
EC71)如EC70之方法,其中該提示係自一主機接收。
EC72)如EC70之方法,其中該提示指示該寫入資料係唯讀資料或唯寫資料中之任何一者。
EC73)如EC57之方法,其中該判定係回應於分析該寫入資料。
EC74)如EC73之方法,其中該分析係至少部分地在硬體、軟體及韌體中之任何一或多者中執行。
EC75)如EC74之方法,其中該硬體包含一資料還原引擎、一資料重刪引擎及一資料壓縮引擎中之任何一或多者。
EC76)如EC57之方法,其中該判定係至少部分地經由硬體來執行。
EC77)如EC76之方法,其中該硬體包含一資料還原引擎。
EC78)如EC76之方法,其中該等特性包含該寫入之資料係可執行的。
EC79)如EC76之方法,其中該等特性包含該寫入之資料係不可壓縮的。
EC80)如EC76之方法,其中該等特性包含該寫入之資料係不可還原的。
EC81)如EC57之方法,其中該等特性包含以下各項中之任何一或多者:先前寫入之一數目、先前讀取之一數目、先前讀取與先前寫入之一比、該寫入資料係不可壓縮之一指示、該寫入資料係可壓縮之一指示、該寫入資料係可執行之一指示及該寫入資料係不可恢復之一指示。
EC82)如EC57之方法,其中該等特性包含該等經管理群組中之先 前選定者中之任何一或多者。
EC83)如EC57之方法,其中該等經管理群組中之任何一或多者包含含有用於判定之該構件將其特徵化為頻繁地讀取、頻繁地寫入、不可壓縮、可執行及不可恢復中之一或多者之資料之該等區塊中之區塊。
EC84)如EC57之方法,其中該等經管理群組中之一或多者僅具有含有系統資料、使用者資料及經重寫資料中之任一者之該等區塊中之區塊。
EC85)如EC57之方法,其中該等經管理群組中之一或多者僅具有含有系統資料、使用者資料及/或經重寫資料中之任何一者或兩者之該等區塊中之區塊。
EC86)如EC57之方法,其中該等經管理群組中之一或多者具有該等區塊中之僅下部頁或上部頁區塊中之一者。
EC87)如EC57之方法,其中該等經管理群組中之第一及第二者具有不同錯誤校正。
EC88)如EC57之方法,其中該控制器經啟用以經由與至少一個儲存介面標準相容之至少一個儲存介面介接至一主機。
EC89)如EC57之方法,其中該控制器經啟用以經由至少一個快閃記憶體介面介接至該等晶粒中之至少一者。
EC90)如EC57之方法,其中該等NVM包含至少一個快閃記憶體。
EC91)一種系統,其包含:用於判定寫入資料之至少某些特性之構件;用於至少部分地基於該等特性來選擇一或多個非揮發性記憶體(NVM)之複數個經管理區塊群組中之一者之構件;用於將該寫入資料寫入至該選定經管理群組之構件; 其中用於判定之該構件、用於選擇之該構件及用於寫入之該構件係一儲存系統之一控制器之元件;且其中該等經管理群組中之每一者係相對於一或多個管理操作來管理,且該等管理操作包含一回收操作及一寫入分配操作中之任何一或多者,且該等經管理群組中之每一者包含由該等NVM之至少兩個晶粒提供之儲存。
EC92)如EC91之系統,其中該等經管理群組中之每一者對應於該等NVM之一各別管理方案。
EC93)如EC92之系統,其中該等各別管理方案係根據各別邏輯性質,該等邏輯性質包含被頻繁地讀取、被相對較頻繁地寫入、被相對較不頻繁地寫入、係不可壓縮的、係可執行的、係不可恢復的且有必要在一電力丟失之後保存、係可恢復的且沒有必要在一電力丟失之後保存、使用一特定技術或密鑰加密、使用一特定技術或密鑰或者藉助特定ECC方案保護以防止錯誤、經受回收及不經受回收。
EC94)如EC92之方法,其中該等各別管理方案係根據各別實體性質,該等實體性質包含僅包括下部頁區塊及僅包括上部頁區塊。
EC95)如EC92之系統,其中該等各別管理方案係根據各別寫入資料源,該等寫入資料源包含提供主機資料、藉由回收產生之資料及藉由系統操作產生之資料之一計算主機。
EC96)如EC91之系統,其中該等經管理群組中之每一者包含一或多個R區塊。
EC97)如EC91之系統,其中該等經管理群組中之每一者包含該等NVM之一或多個區塊。
EC98)如EC91之系統,其中該等經管理群組中之每一者係根據複數個邏輯性質中之至少一者,該等邏輯性質包含被頻繁地讀取、被相對較頻繁地寫入、被相對較不頻繁地寫入、係不可壓縮的、係可執行 的、係不可恢復的且有必要在一電力丟失之後保存、係可恢復的且沒有必要在一電力丟失之後保存、使用一特定技術或密鑰加密、使用一特定技術或密鑰或者藉助特定錯誤校正碼(ECC)方案保護以防止錯誤、經受回收及不經受回收。
EC99)如EC91之系統,其進一步包含用於將資料自該等經管理群組中之一第一者回收到該等經管理群組中之一第二者之構件,且其中該第二經管理群組含有由該主機直接寫入之資料及自該第一經管理群組回收之資料兩者。
EC100)如EC91之系統,其進一步包含用於自一主機接收該寫入資料之構件。
EC101)如EC91之系統,其中該寫入資料係由該控制器產生。
EC102)如EC91之系統,其中該寫入資料包含使用者寫入資料、經重寫資料、系統資料、經重寫系統資料及經重寫使用者資料中之任何一或多者。
EC103)如EC102之系統,其中該系統資料包含檢查點資料。
EC104)如EC91之系統,其中用於判定之該構件係回應於一提示。
EC105)如EC104之系統,其中該提示係自一主機接收。
EC106)如EC104之系統,其中該提示指示該寫入資料係唯讀資料或唯寫資料中之任何一者。
EC107)如EC91之系統,其中用於判定之該構件係回應於該寫入資料之一分析。
EC108)如EC107之系統,其中該分析係至少部分地在硬體、軟體及韌體中之任何一或多者中執行。
EC109)如EC108之系統,其中該硬體包含一資料還原引擎、一資料重刪引擎及一資料壓縮引擎中之任何一或多者。
EC110)如EC91之系統,其中用於判定之該構件包含一資料還原引擎。
EC111)如EC110之系統,其中該等特性包含該寫入之資料係可執行的。
EC112)如EC110之系統,其中該等特性包含該寫入之資料係不可壓縮的。
EC113)如EC110之系統,其中該等特性包含該寫入之資料係不可還原的。
EC114)如EC91之系統,其中該等特性包含以下各項中之任何一或多者:先前寫入之一數目、先前讀取之一數目、先前讀取與先前寫入之一比、該寫入資料係不可壓縮之一指示、該寫入資料係可壓縮之一指示、該寫入資料係可執行之一指示及該寫入資料係不可恢復之一指示。
EC115)如EC91之系統,其中該等特性包含該等經管理群組中之先前選定者中之任何一或多者。
EC116)如EC91之系統,其中該等經管理群組中之任何一或多者包含含有用於判定之該構件將其特徵化為頻繁地讀取、頻繁地寫入、不可壓縮、可執行及不可恢復中之一或多者之資料之該等區塊中之區塊。
EC117)如EC91之系統,其中該等經管理群組中之一或多者僅具有含有系統資料、使用者資料及經重寫資料中之任一者之該等區塊中之區塊。
EC118)如EC91之系統,其中該等經管理群組中之一或多者僅具有含有系統資料、使用者資料及/或經重寫資料中之任何一者或兩者之該等區塊中之區塊。
EC119)如EC91之系統,其中該等經管理群組中之一或多者具有 該等區塊之僅下部頁或上部頁區塊中之一者。
EC120)如EC91之系統,其中該等經管理群組中之第一及第二者具有不同錯誤校正。
EC121)如EC91之系統,其中該控制器經啟用以經由與至少一個儲存介面標準相容之至少一個儲存介面介接至一主機。
EC122)如EC91之系統,其中該控制器經啟用以經由至少一個快閃記憶體介面介接至該等晶粒中之至少一者。
EC123)如EC91之系統,其中該等NVM包含至少一個快閃記憶體。
EC124)一種具有儲存於其中之一指令集之有形電腦可讀媒體,該指令集在由一處理元件執行時致使該處理元件執行及/或控制包含以下各項之動作:判定寫入資料之至少某些特性;至少部分地基於該等特性來選擇一或多個非揮發性記憶體(NVM)之複數個經管理區塊群組中之一者;將該寫入資料寫入至該選定經管理群組;其中該處理元件包含於一儲存系統之一控制器中;且其中該等經管理群組中之每一者係相對於一或多個管理操作來管理,且該等管理操作包含一回收操作及一寫入分配操作中之任何一或多者,且該等經管理群組中之每一者包含由該等NVM之至少兩個晶粒提供之儲存。
EC125)如EC124之有形電腦可讀媒體,其中該等經管理群組中之每一者對應於該等NVM之一各別管理方案。
EC126)如EC125之有形電腦可讀媒體,其中該等各別管理方案係根據各別邏輯性質,該等邏輯性質包含被頻繁地讀取、被相對較頻繁地寫入、被相對較不頻繁地寫入、係不可壓縮的、係可執行的、係不 可恢復的且有必要在一電力丟失之後保存、係可恢復的且沒有必要在一電力丟失之後保存、使用一特定技術或密鑰加密、使用一特定技術或密鑰或者藉助特定ECC方案保護以防止錯誤、經受回收及不經受回收。
EC127)如EC125之有形電腦可讀媒體,其中該等各別管理方案係根據各別實體性質,該等實體性質包含僅包括下部頁區塊及僅包括上部頁區塊。
EC128)如EC125之有形電腦可讀媒體,其中該等各別管理方案係根據各別寫入資料源,該等寫入資料源包含提供主機資料、藉由回收產生之資料及藉由系統操作產生之資料之一計算主機。
EC129)如EC124之有形電腦可讀媒體,其中該等經管理群組中之每一者包含一或多個R區塊。
EC130)如EC124之有形電腦可讀媒體,其中該等經管理群組中之每一者包含該NVM之一或多個區塊。
EC131)如EC124之有形電腦可讀媒體,其中該等經管理群組中之每一者係根據複數個邏輯性質中之至少一者,該等邏輯性質包含被頻繁地讀取、被相對較頻繁地寫入、被相對較不頻繁地寫入、係不可壓縮的、係可執行的、係不可恢復的且有必要在一電力丟失之後保存、係可恢復的且沒有必要在一電力丟失之後保存、使用一特定技術或密鑰加密、使用一特定技術或密鑰或者藉助特定錯誤校正碼(ECC)方案保護以防止錯誤、經受回收及不經受回收。
EC132)如EC124之有形電腦可讀媒體,其中該等動作進一步包含將資料自該等經管理群組中之一第一者回收到該等經管理群組中之一第二者,且其中該第二經管理群組含有由該主機直接寫入之資料及自該第一經管理群組回收之資料兩者。
EC133)如EC124之有形電腦可讀媒體,其中該等動作進一步包含 自一主機接收該寫入資料。
EC134)如EC124之有形電腦可讀媒體,其中該寫入資料係由該控制器產生。
EC135)如EC124之有形電腦可讀媒體,其中該寫入資料包含使用者寫入資料、經重寫資料、系統資料、經重寫系統資料及經重寫使用者資料中之任何一或多者。
EC136)如EC135之有形電腦可讀媒體,其中該系統資料包含檢查點資料。
EC137)如EC124之有形電腦可讀媒體,其中該判定係回應於一提示。
EC138)如EC137之有形電腦可讀媒體,其中該提示係自一主機接收。
EC139)如EC137之有形電腦可讀媒體,其中該提示指示該寫入資料係唯讀資料或唯寫資料中之任何一者。
EC140)如EC124之有形電腦可讀媒體,其中該判定係回應於分析該寫入資料。
EC141)如EC140之有形電腦可讀媒體,其中該分析係至少部分地結合一資料還原引擎、一資料重刪引擎及一資料壓縮引擎中之任何一或多者來執行。
EC142)如EC124之有形電腦可讀媒體,其中該等特性包含以下各項中之任何一或多者:先前寫入之一數目、先前讀取之一數目、先前讀取與先前寫入之一比、該寫入資料係不可壓縮之一指示、該寫入資料係可壓縮之一指示、該寫入資料係可執行之一指示及該寫入資料係不可恢復之一指示。
EC143)如EC124之有形電腦可讀媒體,其中該等特性包含該等經管理群組中之先前選定者中之任何一或多者。
EC144)如EC124之有形電腦可讀媒體,其中該等經管理群組中之任何一或多者包含含有用於判定之該構件將其特徵化為頻繁地讀取、頻繁地寫入、不可壓縮、可執行及不可恢復中之一或多者之資料之該等區塊中之區塊。
EC145)如EC124之有形電腦可讀媒體,其中該等經管理群組中之一或多者僅具有含有系統資料、使用者資料及經重寫資料中之任一者之該等區塊中之區塊。
EC146)如EC124之有形電腦可讀媒體,其中該等經管理群組中之一或多者僅具有含有系統資料、使用者資料及/或經重寫資料中之任何一者或兩者之該等區塊中之區塊。
EC147)如EC124之有形電腦可讀媒體,其中該等經管理群組中之一或多者具有該等區塊之僅下部頁或上部頁區塊中之一者。
EC148)如EC124之有形電腦可讀媒體,其中該等經管理群組中之第一及第二者具有不同錯誤校正。
EC149)如EC124之有形電腦可讀媒體,其中該控制器經啟用以經由與至少一個儲存介面標準相容之至少一個儲存介面介接至一主機。
EC150)如EC124之有形電腦可讀媒體,其中該控制器經啟用以經由至少一個快閃記憶體介面介接至該等晶粒中之至少一者。
EC151)如EC124之有形電腦可讀媒體,其中該等NVM包含至少一個快閃記憶體。
EC152)一種設備,其包含:寫入資料特徵化硬體邏輯電路,其經啟用以判定寫入資料之至少某些特性;經管理群組選擇硬體邏輯電路,其經啟用以至少部分地基於該等特性來選擇一或多個非揮發性記憶體(NVM)之複數個經管理區塊群組中之一者; 記憶體寫入硬體邏輯電路,其經啟用以將該寫入之資料寫入至該選定經管理群組;其中該設備包含於一儲存系統之一控制器中;且其中該等經管理群組中之每一者係相對於一或多個管理操作來管理,且該等管理操作包含一回收操作及一寫入分配操作中之任何一或多者,且該等經管理群組中之每一者包含由該等NVM之至少兩個晶粒提供之儲存。
EC153)如EC152之設備,其中該等經管理群組中之每一者對應於該等NVM之一各別管理方案。
EC154)如EC153之設備,其中該等各別管理方案係根據各別邏輯性質,該等邏輯性質包含被頻繁地讀取、被相對較頻繁地寫入、被相對較不頻繁地寫入、係不可壓縮的、係可執行的、係不可恢復的且有必要在一電力丟失之後保存、係可恢復的且沒有必要在一電力丟失之後保存、使用一特定技術或密鑰加密、使用一特定技術或密鑰或者藉助特定ECC方案保護以防止錯誤、經受回收及不經受回收。
EC155)如EC153之設備,其中該等各別管理方案係根據各別實體性質,該等實體性質包含僅包括下部頁區塊及僅包括上部頁區塊。
EC156)如EC153之設備,其中該等各別管理方案係根據各別寫入資料源,該等寫入資料源包含提供主機資料、藉由回收產生之資料及藉由系統操作產生之資料之一計算主機。
EC157)如EC152之設備,其中該等經管理群組中之每一者包含一或多個R區塊。
EC158)如EC152之設備,其中該等經管理群組中之每一者包含該等NVM之一或多個區塊。
EC159)如EC152之設備,其中該等經管理群組中之每一者係根據複數個邏輯性質中之至少一者,該等邏輯性質包含被頻繁地讀取、被 相對較頻繁地寫入、被相對較不頻繁地寫入、係不可壓縮的、係可執行的、係不可恢復的且有必要在一電力丟失之後保存、係可恢復的且沒有必要在一電力丟失之後保存、使用一特定技術或密鑰加密、使用一特定技術或密鑰或者藉助特定錯誤校正碼(ECC)方案保護以防止錯誤、經受回收及不經受回收。
EC160)如EC152之設備,其進一步包含經啟用以將資料自該等經管理群組中之一第一者回收到該等經管理群組中之一第二者之回收器硬體邏輯電路,且其中該第二經管理群組含有由該主機直接寫入之資料及自該第一經管理群組回收之資料兩者。
EC161)如EC152之設備,其中該寫入資料係自一主機接收。
EC162)如EC152之設備,其中該寫入資料係由該控制器產生。
EC163)如EC152之設備,其中該寫入資料包含使用者寫入資料、經重寫資料、系統資料、經重寫系統資料及經重寫使用者資料中之任何一或多者。
EC164)如EC163之設備,其中該系統資料包含檢查點資料。
EC165)如EC152之設備,其中該寫入資料特徵化硬體邏輯電路係回應於一提示。
EC166)如EC165之設備,其中該提示係自一主機接收。
EC167)如EC165之設備,其中該提示指示該寫入資料係唯讀資料或唯寫資料中之任何一者。
EC168)如EC152之設備,其中該寫入資料特徵化硬體邏輯電路包含一資料還原引擎。
EC169)如EC168之設備,其中該等特性包含該寫入之資料係可執行的。
EC170)如EC168之設備,其中該等特性包含該寫入之資料係不可壓縮的。
EC171)如EC168之設備,其中該等特性包含該寫入之資料係不可還原的。
EC172)如EC152之設備,其中該等特性包含以下各項中之任何一或多者:先前寫入之一數目、先前讀取之一數目、先前讀取與先前寫入之一比、該寫入資料係不可壓縮之一指示、該寫入資料係可壓縮之一指示、該寫入資料係可執行之一指示及該寫入資料係不可恢復之一指示。
EC173)如EC152之設備,其中該等特性包含該等經管理群組中之先前選定者中之任何一或多者。
EC174)如EC152之設備,其中該等經管理群組中之任何一或多者包含含有該寫入資料特徵化硬體邏輯電路將其特徵化為頻繁地讀取、頻繁地寫入、不可壓縮、可執行及不可恢復中之一或多者之資料之該等區塊中之區塊。
EC175)如EC152之設備,其中該等經管理群組中之一或多者僅具有含有系統資料、使用者資料及經重新資料中之任一者之該等區塊中之區塊。
EC176)如EC152之設備,其中該等經管理群組中之一或多者僅具有含有系統資料、使用者資料及/或經重新資料中之任何一者或兩者之該等區塊中之區塊。
EC177)如EC152之設備,其中該等經管理群組中之一或多者具有該等區塊之僅下部頁或上部頁區塊中之一者。
EC178)如EC152之設備,其中該等經管理群組中之第一及第二者具有不同錯誤校正。
EC179)如EC152之設備,其進一步包含包含於該控制器中且經啟用以將該控制器介接至一主機之一儲存介面,且其中該儲存介面與至少一個儲存介面標準相容。
EC180)如EC152之設備,其進一步包含包含於該控制器中且經啟用以將該控制器介接至該等晶粒中之至少一者之一快閃記憶體介面。
EC181)如EC152之設備,其中該等NVM包含至少一個快閃記憶體。
EC182)如前述EC中任一項,其具有或提及一儲存介面標準,其中該儲存介面標準包含以下各項中之一或多者:一通用串列匯流排(USB)介面標準,一小型快閃記憶體(CF)介面標準,一多媒體卡(MMC)介面標準,一嵌入式MMC(eMMC)介面標準,一Thunderbolt介面標準,一UFS介面標準,一安全數位(SD)介面標準,一記憶棒介面標準,一xD圖片卡介面標準,一積體驅動電子裝置(IDE)介面標準,一序列先進技術附件(SATA)介面標準,一外部SATA(eSATA)介面標準,一小電腦系統介面(SCSI)介面標準,一串列附接小電腦系統介面(SAS)介面標準,一組構通道介面標準,一乙太網路介面標準,及一高速周邊組件互連(PCIe)介面標準。
EC183)如前述EC中任一項,其具有或提及一快閃記憶體介面,其中該快閃記憶體介面與以下各項中之一或多者相容:一開放NAND快閃記憶體介面(ONFI), 一雙態切換模式介面,一雙倍資料速率(DDR)同步介面,一DDR2同步介面;一同步介面,及一不同步介面。
EC184)如前述EC中任一項,其具有或提及一主機,其中該主機包含以下各項中之一或多者:一電腦,一工作站電腦,一伺服器電腦,一儲存伺服器,一儲存附加網路(SAN),一網路附加儲存(NAS)裝置,一直接附加儲存(DAS)裝置,一儲存器具,一個人電腦(PC),一膝上型電腦,一筆記型電腦,一小筆電電腦,一平板裝置或電腦,一超輕薄筆記型電腦,一電子閱讀裝置(一電子閱讀器),一個人數位助理(PDA),一導航系統,一(手持式)全球定位系統(GPS)裝置,一汽車控制系統
一汽車媒體控制系統或電腦,一印表機、複印機或傳真機或一體式裝置,一銷售點(POS)裝置,一現金出納器,一媒體播放器,一電視機,一媒體記錄器,一數位視訊記錄器(DVR),一數位相機,一蜂巢式手機,一無繩電話機,及一電子遊戲機。
EC185)如前述EC中任一項,其具有或提及至少一個快閃記憶體,其中該至少一個快閃記憶體之至少一部分包含以下各項中之一或多者:NAND快閃技術儲存胞元,及NOR快閃技術儲存胞元。
EC186)如前述EC中任一項,其具有或提及至少一個快閃記憶體,其中該至少一個快閃記憶體之至少一部分包含以下各項中之一或多者:單位階胞元(SLC)快閃技術儲存胞元,及多位階胞元(MLC)快閃技術儲存胞元。
EC187)如前述EC中任一項,其具有或提及至少一個快閃記憶體,其中該至少一個快閃記憶體之至少一部分包含以下各項中之一或多者:基於多晶矽技術之電荷儲存胞元,及 基於氮化矽技術之電荷儲存胞元。
EC188)如前述EC中任一項,其具有或提及至少一個快閃記憶體,其中該至少一個快閃記憶體之至少一部分包含以下各項中之一或多者:基於二維技術之快閃記憶體技術,及基於三維技術之快閃記憶體技術。
系統
在某些實施例中,一I/O裝置(諸如一SSD)包括一SSD控制器。SSD控制器充當SSD之主機介面與NVM之間的一橋接器,且執行經由SSD之一主機介面自一計算主機發送之一主機協定之命令。該等命令中之至少某些命令引導SSD寫入及讀取NVM,其中分別係自計算主機發送資料及將資料發送至計算主機。在其他實施例中,SSD控制器經啟用以使用一映射來在主機協定之LBA與NVM中之實體儲存位址之間轉譯。在其他實施例中,該映射之至少一部分用於I/O裝置之私用儲存(對計算主機不可見)。舉例而言,不可由計算主機存取之LBA之一部分由I/O裝置使用以管理對日誌、統計資料或其他私用資料之存取。
在某些實施例中,在NVM中存取變化大小的配量之經壓縮資料在某些使用情景中提供經改良之儲存效率。舉例而言,一SSD控制器自一計算主機接收(經解壓縮)資料(例如,與一磁碟寫入命令相關)、壓縮該資料且將經壓縮資料儲存至快閃記憶體中。回應於來自該計算主機之一後續請求(例如,與一磁碟讀取命令相關),SSD控制器自該快閃記憶體讀取經壓縮資料、將經壓縮資料解壓縮且將經解壓縮資料提供至該計算主機。根據變化大小的配量將經壓縮資料儲存於快閃記憶體中,該配量大小變化歸因於(例如)壓縮演算法、操作模式及對各種資料之壓縮有效性。SSD控制器部分地藉由查閱一所包括映射表來 解壓縮資料以判定將標頭儲存於快閃記憶體中何處。SSD控制器剖析自快閃記憶體獲得之標頭以判定將適當(經壓縮)資料儲存於快閃記憶體中何處。SSD控制器解壓縮來自快閃記憶體之適當資料以產生經解壓縮資料以提供至計算主機。在本申請案中,解壓縮(uncompress)(及其變體)與解除壓縮(decompress)(及其變體)同義。
在各項實施例中,一SSD控制器包括:一主機介面,其用於與一計算主機介接;一介面,其用於與諸如快閃記憶體之NVM介接;及電路,其用於控制該等介面且執行(及/或控制該執行之各種態樣)壓縮及解壓縮,以及較低階冗餘及/或錯誤校正、較高階冗餘及/或錯誤校正及藉助獨立矽元件之動態較高階冗餘模式管理。
根據各項實施例,某些主機介面與以下各標準中之一或多者相容:一USB介面標準、一CF介面標準、一MMC介面標準、一eMMC介面標準、一Thunderbolt介面標準、一UFS介面標準、一SD介面標準、一記憶卡介面標準、一xD圖片卡介面標準、一IDE介面標準、一SATA介面標準、一SCSI介面標準、一SAS介面標準及一PCIe介面標準。根據各項實施例,計算主機係以下各項之全部或任何部分:一電腦、一工作站電腦、一伺服器電腦、一儲存伺服器、一SAN、一NAS裝置、一DAS裝置、一儲存器具、一PC、一膝上型電腦、一筆記型電腦、一小筆電電腦、一平板裝置或電腦、一超輕薄筆記型電腦、一電子閱讀裝置(諸如一電子閱讀器)、一PDA、一導航系統、一(手持式)GPS裝置、一汽車控制系統、一汽車媒體控制系統或電腦、一印表機、複印機或傳真機或一體式裝置、一POS裝置、一現金出納器、一媒體播放器、一電視機、一媒體記錄器、一DVR、一數位相機、一蜂巢式手機、一無線電話手機及一電子遊戲機。在某些實施例中,一介接主機(諸如,一SAS/SATA橋接器)操作為一計算主機及/或操作為至一計算主機之一橋接器。
在各項實施例中,SSD控制器包括一或多個處理器。該等處理器執行韌體以控制及/或執行SSD控制器之操作。SSD控制器與計算主機通信以發送及接收命令及/或狀態以及資料。該計算主機執行一作業系統、一驅動程式及一應用程式中之一或多者。計算主機與SSD控制器之通信係視情況及/或選擇性地經由驅動程式及/或經由應用程式進行的。在一第一實例中,與SSD控制器之所有通信皆係經由驅動程式進行的,且應用程式將較高階命令提供至驅動程式,驅動程式將該等較高階命令轉譯成用於SSD控制器之特定命令。在一第二實例中,驅動程式實施一繞過模式且應用程式經啟用以經由驅動程式將特定命令發送至SSD控制器。在一第三實例中,一PCIe SSD控制器支援一或多個虛擬函式(VF),使得一應用程式(一旦組態)繞過驅動程式與SSD控制器直接通信。
根據各項實施例,某些SSD與由磁性及/或光學非揮發性儲存裝置(諸如,HDD、CD硬碟機及DVD硬碟機)所使用之外觀尺寸、電介面及/或協定相容。在各項實施例中,SSD使用以下各項之各種組合:零或零以上同位碼、零或零以上RS碼、零或零以上BCH碼、零或零以上維特比(Viterbi)或其他格狀碼及零或零以上LDPC碼。
圖1A圖解說明一SSD之一實施例之選定細節,其包括經啟用以執行寫入非揮發性記憶體之區域之管理及區域選擇之一SSD控制器。SSD控制器係用於管理諸如經由NVM元件(例如,快閃記憶體)實施之非揮發性儲存。SSD控制器100經由一或多個外部介面110以通信方式耦合至一主機(未圖解說明)。根據各項實施例,外部介面110係以下各項中之一或多者:一SATA介面;一SAS介面;一PCIe介面;一組構通道介面;一乙太網路介面(諸如,10十億位元乙太網路)、前述介面中之任一者之一非標準版本;一定製介面;或用以將儲存及/或通信及/或計算裝置互連之任何其他類型之介面。舉例而言,在某些實 施例中,SSD控制器100包括一SATA介面及一PCIe介面。
SSD控制器100經由一或多個裝置介面190進一步以通信方式耦合至包括一或多個儲存裝置(諸如,快閃記憶體裝置192之一或多個例項)之NVM 199。根據各項實施例,裝置介面190係以下各項中之一或多者:一不同步介面;一同步介面;一單資料速率(SDR)介面;一雙資料速率(DDR)介面;一DRAM相容DDR或DDR2同步介面;一ONFI相容介面(諸如,一ONFI 2.2或ONFI 3.0相容介面);一雙態切換模式相容快閃記憶體介面;前述介面中之任一者之一非標準版本;一定製介面;或用以連接至儲存裝置之任何其他類型之介面。
在某些實施例中,快閃記憶體裝置192中之每一者具有一或多個個別快閃記憶體晶粒194。根據快閃記憶體裝置192中之一特定快閃記憶體裝置之類型,特定快閃記憶體裝置192中之複數個快閃記憶體晶粒194係可視情況及/或選擇性地並行存取。快閃記憶體裝置192僅表示經啟用而以通信方式耦合至SSD控制器100之一種類型之儲存裝置。在各項實施例中,任何類型之儲存裝置皆係可使用的,諸如一SLC NAND快閃記憶體、MLC NAND快閃記憶體、NOR快閃記憶體、使用基於多晶矽或氮化矽技術之電荷儲存胞元之快閃記憶體、基於二維或三維技術之快閃記憶體、唯讀記憶體、靜態隨機存取記憶體、動態隨機存取記憶體、鐵磁記憶體、相變記憶體、賽道(racetrack)記憶體、ReRAM或任何其他類型之記憶體裝置或儲存媒體。
根據各項實施例,裝置介面190組織為:其中每匯流排具有快閃記憶體裝置192之一或多個例項之一或多個匯流排;其中每匯流排具有快閃記憶體裝置192之一或多個例項之一或多個匯流排群組,其中一群組中之匯流排通常係並行存取;或至裝置介面190上之快閃記憶體裝置192之一或多個例項之任何其他組織。
在圖1A中繼續,SSD控制器100具有一或多個模組,諸如主機介 面111、資料處理121、緩衝器131、映射141、回收器151、ECC 161、裝置介面邏輯191及CPU 171。圖1A中所圖解說明之特定模組及互連僅表示一項實施例且聯想到該等模組中之某些或全部之諸多配置及互連以及未圖解說明之額外模組。在一第一實例中,在某些實施例中,存在兩個或兩個以上主機介面111以提供雙埠連接。在一第二實例中,在某些實施例中,資料處理121及/或ECC 161與緩衝器131組合在一起。在一第三實例中,在某些實施例中,主機介面111直接耦合至緩衝器131,且資料處理121視情況及/或選擇性地操作儲存於緩衝器131中之資料。在一第四實例中,在某些實施例中,裝置介面邏輯191直接耦合至緩衝器131,且ECC 161視情況及/或選擇性地操作儲存於緩衝器131中之資料。
主機介面111經由外部介面110發送及接收命令及/或資料且在某些實施例中經由標籤追蹤113追蹤個別命令之進展。舉例而言,該等命令包括規定待讀取之資料之一位址(諸如,一LBA)及一量(諸如,LBA配量(例如,磁區)之一數目)之一讀取命令;作為回應,SSD提供讀取狀態及/或讀取資料。對於另一實例,該等命令包括規定待寫入之資料之一位址(諸如,一LBA)及一量(諸如,LBA配量(例如,磁區)之一數目)之一寫入命令;作為回應,SSD提供寫入狀態及/或請求寫入資料且隨後視情況提供寫入狀態。對於又一實例,該等命令包括規定不再需要分配之一或多個位址(諸如,一或多個LBA)之一去分配命令(例如,一修整命令);作為回應,SSD相應地修改映射且視情況提供去分配狀態。在某些上下文中,一ATA相容TRIM命令係一例示性解除分配命令。對於又一實例,該等命令包括一超級電容器測試命令或一資料強化成功查詢;作為回應,SSD提供適當狀態。在某些實施例中,主機介面111係與一SATA協定相容且使用NCQ命令經啟用而具有多達32個擱置中命令,其每一者具有表示為自0至31之一數目之一 唯一標籤。在某些實施例中,標籤追蹤113經啟用以使經由外部介面110接收之一命令之一外部標籤與用以在由SSD控制器100處理期間追蹤該命令之一內部標籤相關聯。
根據各項實施例,揭示以下各項中之一或多者:資料處理121視情況及/或選擇性地處理在緩衝器131與外部介面110之間發送之某些或全部資料;及資料處理121視情況及/或選擇性地處理儲存於緩衝器131中之資料。在某些實施例中,資料處理121使用一或多個引擎123以執行以下各項中之一或多者:格式化;重新格式化;轉碼;及任何其他資料處理及/或操縱任務。
緩衝器131儲存自裝置介面190發送至外部介面110/自外部介面110發送至裝置介面190之資料。在某些實施例中,緩衝器131另外儲存由SSD控制器100使用之系統資料(諸如,某些或全部映射表)以管理快閃記憶體裝置192之一或多例項。在各項實施例中,緩衝器131具有以下各項中之一或多者:記憶體137,其用於資料之暫時儲存;DMA 133,其用以控制至及/或自緩衝器131之資料之移動;及ECC-X 135,其用以提供較高階錯誤校正及/或冗餘功能;及其他資料移動及/或操縱功能。一較高階冗餘功能之一實例係一類RAID能力(例如,RASIE),其中冗餘係在一快閃記憶體裝置級(例如,快閃記憶體裝置192之多個快閃記憶體裝置)及/或一快閃記憶體晶粒級(例如,快閃記憶體晶粒194)上而非在一磁碟級上。
根據各項實施例,達成以下各項中之一或多者:ECC 161視情況及/或選擇性地處理在緩衝器131與裝置介面190之間發送之某些或全部資料;及ECC 161視情況及/或選擇性地處理儲存於緩衝器131中之資料。在某些實施例中,ECC 161用以提供較低階錯誤校正及/或諸如根據一或多個ECC技術之冗餘功能。在某些實施例中,ECC 161實施以下各項中之一或多者:一CRC碼;一漢明(Hamming)碼;一RS碼; 一BCH碼;一LDPC碼;一維特比碼;一格狀碼;一硬式決策碼;一軟式決策碼;一基於抹除之碼;任何錯誤偵測及/或校正碼;及前述項之任何組合。在某些實施例中,ECC 161包括一或多個解碼器(諸如,LDPC解碼器)。
裝置介面邏輯191經由裝置介面190控制快閃記憶體裝置192之例項。裝置介面邏輯191經啟用以根據快閃記憶體裝置192之一協定將資料發送至快閃記憶體裝置192之例項/自快閃記憶體裝置192之例項發送資料。裝置介面邏輯191包括排程193以選擇性地定序經由裝置介面190對快閃記憶體裝置192之例項之控制。舉例而言,在某些實施例中,排程193經啟用以將對快閃記憶體裝置192之例項之操作排成佇列,且在快閃記憶體裝置192(或快閃記憶體晶粒194)之例項中之各別一者係可用時,將該等操作選擇性地發送至快閃記憶體裝置192(或快閃記憶體晶粒194)之例項中之各別一者。
映射141在用於外部介面110上之資料定址與用於裝置介面190上之資料定址之間轉換,從而使用表143以將外部資料位址映射至NVM 199中之位置。舉例而言,在某些實施例中,映射141經由由表143提供之映射將用於外部介面110上之LBA轉換成瞄準一或多個快閃記憶體晶粒194之區塊及/或頁位址。對於自碟機制造或去分配以來未曾被寫入之LBA,該映射指向一預設值以傳回是否讀取該等LBA。舉例而言,當處理一去分配命令時,修改該映射以使得對應於經去分配LBA之項目指向該等預設值中之一者。在各項實施例中,存在各種預設值,其各自具有一對應指標。該複數個預設值使得能夠讀取某些經去分配LBA(諸如,在一第一範圍中)作為一個預設值,同時讀取其他經去分配LBA(諸如,在一第二範圍中)作為另一預設值。在各項實施例中,該等預設值係由快閃記憶體、硬體、韌體、命令及/或基元引數及/或參數、可程式化暫存器或其各種組合定義。
在某些實施例中,映射141使用表143以執行及/或查找用於外部介面110上之位址與用於裝置介面190上之資料定址之間的轉譯。根據各項實施例,表143係以下各項中之一或多者:一單階映射;一雙階映射;一多階映射;一映射快取記憶體;一經壓縮映射;自一個位址空間至另一個位址空間的任何類型之映射;及前述項之任何組合。根據各項實施例,表143包括以下各項中之一或多者:靜態隨機存取記憶體;動態隨機存取記憶體;NVM(諸如,快閃記憶體);快取記憶體;晶片上記憶體;晶片外記憶體;及前述項之任何組合。
在某些實施例中,回收器151執行廢棄項目收集。舉例而言,在某些實施例中,快閃記憶體裝置192之例項含有必須在區塊係可重寫之前抹除之區塊。回收器151經啟用以(諸如)藉由掃描由映射141維持之一映射來判定快閃記憶體裝置192之例項之哪些部分係主動地在使用中(例如,經分配而非經去分配),且藉由抹除快閃記憶體裝置192之例項之未使用(例如,經去分配)部分而使得該等未使用部分可用於寫入。在其他實施例中,回收器151經啟用以移動儲存於快閃記憶體裝置192之例項內之資料以使得快閃記憶體裝置192之例項之較大鄰接部分可用於寫入。
在某些實施例中,快閃記憶體裝置192之例項選擇性地及/或動態地經組態、管理及/或使用以具有用於儲存不同類型及/或性質之資料之一或多個帶區。該等帶區之一數目、配置、大小及類型係可動態地改變。舉例而言,將來自一計算主機之資料寫入至一熱(作用中)帶區中,而將來自回收器151之資料寫入至一冷(較少作用中)帶區中。在某些使用情景中,若計算主機寫入一長順序串流,則熱帶區之一大小增長,而若計算主機進行隨機寫入或較少寫入,則冷帶區之一大小增長。
CPU 171控制SSD控制器100之各個部分。CPU 171包括CPU核心 172。根據各項實施例,CPU核心172係一或多個單核心或多核心處理器。在某些實施例中,CPU核心172中之個別處理器係多執行緒的。 CPU核心172包括指令及/或資料快取記憶體及/或記憶體。舉例而言,指令記憶體含有用以使得CPU核心172能夠執行程式(例如,有時稱為韌體之軟體)以控制SSD控制器100之指令。在某些實施例中,由CPU核心172執行之韌體中之某些或全部儲存於快閃記憶體裝置192之例項上(如圖解說明(例如)為圖1B中之NVM 199之韌體106)。
在各項實施例中,CPU 171進一步包括:命令管理173,其用以在經由外部介面110接收之命令在進行中時追蹤及控制該等命令;緩衝器管理175,其用以控制緩衝器131之分配及使用;轉譯管理177,其用以控制映射141;一致性管理179,其用以控制資料定址之一致性且避免諸如外部資料存取與回收資料存取之間的衝突;裝置管理181,其用以控制裝置介面邏輯191;身份識別管理182,其用以控制識別資訊之修改及通信;及視情況其他管理單元。根據各項實施例,由CPU 171執行之管理功能中無一者、任一者或全部係藉由硬體、藉由軟體(諸如,在CPU核心172上或在經由外部介面110連接之一主機上執行之韌體)或其任何組合來控制及/或管理。
在某些實施例中,CPU 171經啟用以執行其他管理任務,諸如以下各項中之一或多者:搜集及/或報告效能統計資料;實施SMART;控制電力排序、控制及/或監視及/或調整電力消耗;回應於電力故障;控制及/或監視及/或調整時鐘率;及其他管理任務。
各項實施例包括一計算主機快閃記憶體控制器,該計算主機快閃記憶體控制器類似於SSD控制器100且與各種計算主機之操作相容(諸如經由主機介面111及/或外部介面110之調適)。各種計算主機包括以下各項之一者或任何組合:一電腦、一工作站電腦、一伺服器電腦、一儲存伺服器、一SAN、一NAS裝置、一DAS裝置、一儲存裝 置、一PC、一膝上型電腦、一筆記型電腦、一小筆電電腦、一平板裝置或電腦、一超輕薄筆記型電腦、一電子閱讀裝置(諸如一電子閱讀器)、一PDA、一導航系統、一(手持式)GPS裝置、一車輛控制系統、一汽車媒體控制系統或電腦、一印表機、複印機或傳真機或一體式裝置、一POS裝置、一現金出納器、一媒體播放器、一電視機、一媒體記錄器、一DVR、一數位相機、一蜂巢式手機、一無線電話手機及一電子遊戲機。
在各項實施例中,一SSD控制器(或一計算主機快閃記憶體控制器)之全部或任何部分實施於一單個IC、一多晶粒IC之一單個晶粒、一多晶粒IC之複數個晶粒或複數個IC上。舉例而言,緩衝器131實施於與SSD控制器100之其他元件相同之一晶粒上。對於另一實例,緩衝器131實施於不同於SSD控制器100之其他元件之一晶粒上。
圖1B圖解說明包括圖1A之SSD之一或多個例項之系統之各項實施例之選定細節。SSD 101包括經由裝置介面190耦合至NVM 199之SSD控制器100。該圖圖解說明各種種類之實施例:直接耦合至一主機之一單個SSD;各自經由各別外部介面分別直接耦合至一主機之複數個SSD;及經由各種互連元件間接耦合至一主機之一或多個SSD。
作為直接耦合至一主機之一單個SSD之一實例性實施例,SSD 101之一個例項經由外部介面110直接耦合至主機102(例如,省略、繞過或穿過切換器/組構/中間控制器103)。作為各自經由各別外部介面直接耦合至一主機之複數個SSD之一實例性實施例,SSD 101之複數個例項中之每一者經由外部介面110之一各別例項分別直接耦合至主機102(例如,省略、繞過或穿過切換器/組構/中間控制器103)。作為經由各別互連元件間接耦合至一主機之一或多個SSD之一實例性實施例,SSD 101之一或多個例項中之每一者分別間接耦合至主機102。每一間接耦合係經由耦合至切換器/組構/中間控制器103之外部介面110 及耦合至主機102之中間介面104之一各別例項。
包括切換器/組構/中間控制器103之實施例中之某些實施例亦包括經由記憶體介面180耦合且可由SSD存取之卡記憶體112C。在各項實施例中,SSD、切換器/組構/中間控制器及/或卡記憶體中之一或多者包括於一實體上可識別模組、卡或可插入元件(例如,I/O卡116)上。在某些實施例中,SSD 101(或其變化形式)對應於耦合至操作為主機102之一起始器之一SAS硬碟機或一SATA硬碟機。
主機102經啟用以執行主機軟體115之各種元件,諸如OS 105、驅動程式107、應用程式109及多裝置管理軟體114之各種組合。虛線箭頭107D表示主機軟體←→I/O裝置通信,例如,經由驅動程式107、驅動程式107及應用程式109(經由驅動程式107或直接作為一VF)自OS 105中之任何一或多者發送至SSD 101之例項中之一或多者/自SSD 101之例項中之一或多者接收至OS 105中之任何一或多者之資料。
OS 105包括驅動程式(概念上由驅動程式107圖解說明)及/或經啟用以與該等驅動程式一起操作用於與SSD介接。Windows之各種版本(例如,95、98、ME、NT、XP、2000、Server、Vista及7)、Linux之各種版本(例如,Red Hat、Debian及Ubuntu)及MacOS之各種版本(例如,8、9及X)係OS 105之實例。在各項實施例中,驅動程式係可藉助一標準介面及/或協定(諸如,SATA、AHCI或NVM Express)操作之標準及/或通用驅動程式(有時稱作「熱縮塑膠包」或「經預安裝」),或視情況係定製及/或廠商特定的以達成特定於SSD 101之命令之使用。某些磁碟機及/或驅動程式具有通過模式以經由經最佳化NAND存取(有時稱作ONA)或直接NAND存取(有時稱作DNA)技術啟用應用程式級程式(諸如,應用程式109),以將命令直接傳遞至SSD 101,從而使得一經定製應用程式能夠甚至藉助一通用驅動程式使用特定於SSD 101之命令。ONA技術包括以下各項中之一或多者:非標準修飾符(提 示)之使用;廠商特定命令之使用;非標準統計資料(諸如,根據可壓縮性之實際NVM使用)之傳遞;及其他技術。DNA技術包括以下各項中之一或多者:提供對NVM之未經映射讀取、寫入及/或抹除存取之非標準或供應商特定命令之使用;諸如藉由繞過I/O裝置原本將進行之資料之格式化來提供對NVM之更直接存取之非標準或供應商特定命令之使用;及其他技術。驅動程式之實例係不具有ONA或DNA支援之一驅動程式、一ONA啟用之驅動程式、一DNA啟用之驅動程式及一ONA/DNA啟用之驅動程式。驅動程式之其他實例係一供應商提供、供應商開發及/或供應商增強之驅動程式及一用戶端提供、用戶端開發及/或用戶端增強之驅動程式。
應用程式級程式之實例係不具有ONA或DNA支援之一應用程式、一ONA啟用之應用程式、一DNA啟用之應用程式及一ONA/DNA啟用之應用程式。虛線箭頭109D表示應用程式←→I/O裝置通信(例如,經由一驅動程式繞過或經由用於一應用程式之一VF繞過),例如,一ONA啟用之應用程式及與一SSD通信(諸如,不具有使用OS作為一中間機構之應用程式)之一ONA啟用之驅動程式。虛線箭頭109V表示應用程式←→I/O裝置通信(例如,經由用於一應用程式之一VF繞過),例如,一DNA啟用之應用程式及與一SSD通信(諸如,不具有使用OS或驅動程式作為中間機構之應用程式)之一DNA啟用之驅動程式。
在某些實施例中,NVM 199之一或多個部分用於韌體儲存(例如,韌體106)。該韌體儲存包括一或多個韌體影像(或其部分)。舉例而言,一韌體影像具有(例如)藉由SSD控制器100之CPU核心172執行之韌體之一或多個影像。對於另一實例,一韌體影像具有(例如)在韌體執行期間由CPU核心參考之常數、參數值及NVM裝置資訊之一或多個影像。韌體之影像對應於(例如)一當前韌體影像及零或零以上先 前(相對於韌體更新)韌體影像。在各項實施例中,韌體提供通用、標準、ONA及/或DNA操作模式。在某些實施例中,經由由一驅動程式視情況傳遞及/或提供之密鑰或各種軟體技術來啟用韌體操作模式中之一或多者(例如,一或多個API係「未經鎖定」)。
在缺少切換器/組構/中間控制器之某些實施例中,SSD經由外部介面110直接耦合至主機。在各項實施例中,SSD控制器100經由其他控制器(諸如,一RAID控制器)之一或多個中間階層耦合至主機。在某些實施例中,SSD 101(或其變化形式)對應於一SAS磁碟機或一SATA磁碟機,且切換器/組構/中間控制器103對應於一擴展器,該擴展器又耦合至一起始器,或另一選擇係,切換器/組構/中間控制器103對應於一橋接器,該橋接器經由一擴展器間接耦合至一起始器。在某些實施例中,切換器/組構/中間控制器103包括一或多個PCIe切換器及/或組構。
在各項實施例(諸如其中主機102作為一計算主機(例如,一電腦、一工作站電腦、一伺服器電腦、一儲存伺服器、一SAN、一NAS裝置、一DAS裝置、一儲存器具、一PC、一膝上型電腦、一筆記型電腦及/或一小筆電電腦)之實施例中之某些實施例)中,計算主機視情況經啟用以與一或多個本端及/或遠端伺服器(例如,選用伺服器118)通信(例如,經由選用I/O及儲存裝置/資源117以及選用LAN/WAN 119)。舉例而言,該通信達成SSD 101元件中之任何一或多者之本端及/或遠端存取、管理及/或使用。在某些實施例中,該通信係完全地或部分地經由乙太網路。在某些實施例中,該通信係完全地或部分地經由組構通道。在各項實施例中,LAN/WAN 119表示一或多個區域及/或廣域網路,諸如一伺服器群中之一網路、耦合伺服器群之一網路、一都會區域網路及網際網路中之任何一或多者。
在各項實施例中,一SSD控制器及/或一計算主機快閃記憶體控 制器結合一或多個NVM一起實施為一非揮發性儲存組件,諸如一USB儲存組件、一CF儲存組件、一MMC儲存組件、一eMMC儲存組件、一Thunderbolt儲存組件、一UFS儲存組件、一SD儲存組件、一記憶卡儲存組件及一xD圖片卡儲存組件。
在各項實施例中,一SSD控制器(或一計算主機快閃記憶體控制器)之全部或任何部分或其功能實施於該控制器將與其耦合之一主機(例如,圖1B之主機102)中。在各項實施例中,一SSD控制器(或一計算主機快閃記憶體控制器)之全部或任何部分或其功能係經由硬體(例如,邏輯電路)、軟體及/或韌體(例如,驅動程式軟體或SSD控制韌體)或其任何組合而實施。舉例而言,一ECC單元(諸如,類似於圖1A之ECC 161及/或ECC-X 135)之功能性或與該ECC單元相關聯之功能性係部分地經由軟體實施於一主機上且部分地經由韌體與硬體之一組合實施於一SSD控制器中。對於另一實例,一回收器單元(諸如,類似於圖1A之回收器151)之功能性或與該回收器單元相關聯之功能性係部分地經由軟體實施於一主機上且部分地經由硬體實施於一計算主機快閃記憶體控制器中。
映射操作
圖2圖解說明映射一LBA之一LPN部分之一實施例之選定細節。在某些實施例中,一讀取單元係可獨立讀取之一NVM之一最精細粒度,諸如NVM之一頁之一部分。在其他實施例中,該讀取單元對應於一(較低階)錯誤校正碼之檢查位元(有時稱為冗餘)連同由該等檢查位元保護之所有資料。舉例而言,圖1A之ECC 161經由檢查位元(諸如,經由一LDPC碼)實施錯誤校正,且除由LDPC編碼位元保護之資料位元以外,一讀取單元亦對應於實施LDPC碼之編碼位元。
在某些實施例中,映射141(諸如)經由表143(如圖1A中所圖解說明)將LBA 211之LPN 213部分映射至用於LPN之映射資訊221。用於一 LPN之映射資訊(諸如,用於LPN之映射資訊221)有時稱為一映射項目。映射141被認為使一LPN與一對應映射項目相關聯。在各項實施例中,映射係經由一或多個相關聯查找、經由一或多個非相關聯查找及/或經由一或多個其他技術。
在某些實施例中,SSD控制器100維持用於每一LPN之一個映射項目潛在地及/或主動地在使用中。
在某些實施例中,用於LPN之映射資訊221包括各別讀取單元位址223及讀取單元之長度225。在某些實施例中,一長度及/或一跨度係(諸如)藉由將長度儲存為自跨度之一偏移(例如,在讀取單元之長度225之全部或任何部分中)而以經編碼方式儲存。在其他實施例中,一第一LPN與一第一映射項目相關聯,一第二LPN(不同於第一LPN,但係指與藉由該第一LPN所指代之一邏輯頁相同之一大小之一邏輯頁)與一第二映射項目相關聯,且該第一映射項目之讀取單元中之各別長度不同於該第二映射項目之讀取單元中之各別長度。
在各項實施例中,在一相同時間點處,一第一LPN與一第一映射項目相關聯,一第二LPN(不同於第一LPN)與一第二映射項目相關聯,且該第一映射項目之各別讀取單元位址與該第二映射項目之各別讀取單元位址相同。在其他實施例中,與第一LPN相關聯之資料及與第二LPN相關聯之資料兩者儲存於NVM 199中之一相同裝置之一相同實體頁中。
根據各項實施例,讀取單元位址223與以下各項中之一或多者相關聯:NVM中之一開始位址;NVM中之一結束位址;前述項中之任一者之一偏移;及用於識別與LPN 213相關聯之NVM之一部分之任何其他技術。
圖3圖解說明在一讀取單元位址處存取一NVM以產生組織為各種讀取單元(共同地具有按讀取單元之配量所量測之一長度)之讀取資料 之一實施例之選定細節。根據各項實施例,第一讀取單元313係以下各項中之一或多者:具有NVM之一位址空間中之一最低位址之讀取資料311中之讀取單元中之一讀取單元;該等讀取單元中之一固定讀取單元;該等讀取單元中之一任意讀取單元;該等讀取單元中之一可變讀取單元;及藉由任何其他技術選擇之該等讀取單元中之一讀取單元。在各項實施例中,SSD控制器100經啟用以存取NVM 199且藉由讀取不多於由讀取單元之長度225指定之讀取單元之一數目來產生讀取資料311。
圖4A圖解說明如讀取單元401A之一讀取單元(諸如,圖3之讀取單元313或315)之一實施例之選定細節。在各項實施例及/或使用情景中,標頭1 411A至標頭N 419A係鄰接的,且由該等標頭中之每一者識別(諸如,經由各別偏移)之各別資料區域鄰接地跟隨該等標頭中之一最後標頭。該等資料區塊共同形成資料位元組421A。該等資料區域係以匹配儲存標頭之位置次序之一位置次序儲存。舉例而言,設想一第一標頭,在一讀取單元之開頭處,其中一第二標頭及一第三標頭鄰接地跟隨第一標頭。一第一資料區域(由第一標頭中之一第一偏移識別)鄰接地跟隨第三標頭。一第二資料區域(由第二標頭中之一第二偏移識別)鄰接地跟隨第一資料區域。類似地,一第三資料區域(由第三標頭識別)鄰接地跟隨第二資料區域。
圖4B圖解說明如讀取單元401B之一讀取單元(諸如,圖3之讀取單元313或315)之另一實施例之選定細節。在各項實施例及使用情景中,標頭標記(HM)410B係一選用初始欄位(諸如,單位元組欄位),其指示跟隨之鄰接標頭(標頭1 411B、標頭2 412B、…、標頭N 419B)之一數目。資料區域(資料位元組421B、資料位元組422B、…、資料位元組429B)分別由標頭(標頭1 411B、標頭2 412B、…、標頭N 419B)識別且以與儲存標頭之位置次序相反之一位置次序儲存。標頭 在一讀取單元之開頭處開始,而對應資料區域在一讀取單元之結束處開始。在某些實施例中,一資料區域(例如,資料位元組421B、資料位元組422B、…、資料位元組429B)內之資料位元組係以一向前次序(匹配位置次序之位元組次序)配置,而在其他實施例中,該等資料位元組係以一顛倒次序(相對於位置次序顛倒之位元組次序)配置。在某些實施例中,一標頭標記用於其中以一相同位置次序(例如,如圖4A中所圖解說明)儲存標頭及資料位元組之讀取單元中。
在某些實施例中,選用填補位元組431A(或431B)係根據與一特定LPN相關聯之資料之粒度。舉例而言,在某些實施例中,若在儲存與除標頭1 411A至標頭N 419A(或標頭1 411B、標頭2 412B、…、標頭N 419B)中之一最後標頭外之所有標頭相關聯之資料之後資料位元組421A(或共同地,資料位元組421B、資料位元組422B、…、資料位元組429B)具有少於一固定量之剩餘空間(諸如,8位元組),則用於與該最後標頭相關聯之一LPN之資料在一後續讀取單元中開始。在其他實施例中,該最後標頭中之一特定偏移值(例如,所有偏移值)指示用於與最後標頭相關聯之LPN之資料在後續讀取單元中開始。
圖5圖解說明具有若干欄位之一標頭(諸如,圖4A之標頭1 411A至標頭N 419A或圖4B之標頭1 411B至標頭419B中之任一者)之一實施例之選定細節。在某些實施例中,標頭係固定長度(例如,每一標頭係相同數目個位元組長)。標頭501包括欄位類型511、最後指示符513、旗標515、LPN 517、長度519及偏移521。類型欄位識別資料位元組之一類別。舉例而言,類型欄位指示資料位元組之類別係主機資料(例如,邏輯頁資料)或系統資料(例如,映射資訊或檢查點資訊)中之一者。最後欄位指示標頭係資料位元組之前的最後標頭。在具有一標頭標記之某些實施例中,視情況省略最後欄位。LPN欄位係標頭與其相關聯之LPN。LPN欄位使得能夠剖析標頭以(舉例而言)藉由搜尋該 等標頭中具有匹配一特定LPN之一LPN欄位之一標頭來判定與該特定LPN相關聯之標頭中之一特定標頭。長度欄位係資料位元組之位元組長度(例如,在與標頭501相關聯之資料位元組421A中存在多少資料位元組)。在某些實施例中,根據一特定粒度(例如,8位元組粒度)將偏移欄位中之一偏移舍入。
在各項實施例中,與一特定LPN相關聯之某些或全部資訊儲存於與該特定LPN相關聯之一映射項目、與該特定LPN相關聯之一標頭或此兩者中。舉例而言,在某些實施例中,長度519之某些或全部儲存於一映射項目中而非一標頭中。
圖6圖解說明以邏輯截片及/或區段管理之多個NVM裝置(例如,一或多個快閃記憶體晶粒及/或快閃記憶體晶片)之區塊、頁及讀取單元之一實施例之選定細節。該等管理功能包括讀取、回收、抹除、程式化/寫入及其他管理功能中之任何一或多者。該等邏輯截片及/或區段有時稱作R區塊。該圖圖解說明具有66快閃記憶體晶粒之一實施例。該等快閃記憶體晶粒中之三者經明確地圖解說明(快閃記憶體晶粒610.65、610.1及610.0)且該等快閃記憶體晶粒中之63個未明確地圖解說明(610.64...610.2)。
快閃記憶體晶粒中之每一者(諸如快閃記憶體晶粒610.65...610.1及610.0中之任一者)提供組織為區塊(諸如快閃記憶體晶粒610.65之區塊610.65BB...610.65B1及610.65B0;快閃記憶體晶粒610.0之區塊610.0BB...610.0B1及610.0B0;等等)之儲存。區塊又包括頁(諸如區塊610.65B0之頁610.65PP...610.65P1及610.65P0;區塊610.0B0之頁610.0PP...610.0P1及610.0P0;等等)。頁又包括讀取單元(諸如頁610.65P0之讀取單元610.65RR...610.65R1及610.65R0;頁610.0P0之讀取單元610.0RR...610.0R1及610.0R0;等等)。
在某些實施例中,每一快閃記憶體晶粒包括整數個區塊(例如, N個區塊)且一區塊係一最小抹除量。在某些實施例中,每一區塊包括整數個頁且一頁係一最小寫入量。根據各項實施例,以下各項中之一或多者:一讀取單元係一最小讀取及錯誤校正量;每一頁包括整數個讀取單元;兩個或兩個以上頁之一相關聯群組包括整數個讀取單元;且讀取單元視情況及/或選擇性地跨越頁邊界。
在各項實施例中,各種NVM管理功能(例如,讀取、回收、抹除及/或程式化/寫入)係以R區塊單元執行。一R區塊經例示為跨越(例如)一快閃記憶體之各種晶粒(例如,所有晶粒、不包含完全或部分出故障之晶粒之所有晶粒及/或一或多個選定子組之晶粒)之一邏輯截片或區段。舉例而言,在具有R個快閃記憶體晶粒之一快閃記憶體中,每一快閃記憶體晶粒具有N個區塊,對於總共N個R區塊,每一R區塊係合在一起之來自快閃記憶體晶粒中之每一者之第i區塊。對於另一實例,在具有R個快閃記憶體晶粒之一快閃記憶體中,每一快閃記憶體晶粒具有N個區塊,對於總共N/2個R區塊,每一R區塊係來自快閃記憶體晶粒中之每一者之第i及第(i+1)區塊。對於又一實例,在具有複數個雙平面裝置之一快閃記憶體中,每一R區塊係該等雙平面裝置中之每一者之第i偶數區塊及第i奇數區塊。對於一最後實例,在具有R個快閃記憶體晶粒(其各自具有N個區塊)之一快閃記憶體中,對於總共N/k個R區塊,每一R區塊係來自快閃記憶體晶粒中之每一者之第i至第(i+k-1)區塊。
在其中區塊以對或其他相關聯群組被視為形成一R區塊之部分之各項實施例中,來自區塊之一相關聯群組之每一區塊之各別頁亦被視為至少用於寫入之一單元,從而形成一較大多區塊頁。舉例而言,繼續前述雙平面實例,偶數區塊中之一特定者之一第一頁及奇數區塊中之一相關聯者之一第一頁被視為用於寫入之一單元,且視情況及/或選擇性地視為用於讀取之一單元。類似地,特定偶數區塊之一第二頁 及相關聯奇數區塊之一第二頁被視為一單元。根據各項實施例,如本文中所使用之NVM之一頁係指以下各項中之一或多者:NVM之一單個頁;NVM之一多區塊頁;視情況及/或選擇性地被視為用於讀取之一或多個個別頁之用於寫入之NVM之一多區塊頁;及NVM之頁之任何其他分組或關聯。
該圖圖解說明複數個說明性R區塊,明確地圖解說明其中之三者(660.0、660.1及660.R)。每一說明性R區塊係合在一起之來自快閃記憶體晶粒中之每一者之第i區塊。例如,R區塊660.0係來自快閃記憶體晶粒610.65之區塊610.65B0、來自快閃記憶體晶粒610.64(未明確圖解說明)之區塊0,且依此類推至快閃記憶體晶粒610.1之區塊610.1B0及快閃記憶體晶粒610.0之區塊610.0B0。由於每一快閃記憶體晶粒存在N個區塊,因此存在總共N個R區塊(R區塊660.R...R-區塊660.1及R區塊660.0)。
一R區塊之另一實例係合在一起之來自快閃記憶體晶粒中之每一者之第i區塊及第(i+1)區塊(例如,來自快閃記憶體晶粒610.65之區塊610.65B0及610.65B1、來自快閃記憶體晶粒610.64(未明確圖解說明)之區塊0及1,且依此類推至來自快閃記憶體晶粒610.1之區塊610.1B0及610.1B1以及來自快閃記憶體晶粒610.0之區塊610.0B0及610.0B1)。若每一快閃記憶體晶粒中存在N個區塊,則因此存在N/2個R區塊。一R區塊之又一實例係來自複數個雙平面裝置中之每一者之第i偶數及奇數區塊。涵蓋用於作為R區塊管理之快閃記憶體晶粒區塊之其他配置,包括虛擬區塊位址與實體區塊位址之間的映射以確保R區塊具有來自每一晶粒之一個區塊,即使某些區塊係不可操作的。在各項實施例中,每一快閃記憶體晶粒中之N個區塊中之某些區塊用作備用區塊,使得虛擬區塊位址與實體區塊位址之間的映射具有備用(另外未使用之)區塊以替換R區塊中之區塊中之有缺陷者。
在各項實施例中,快閃記憶體晶粒中之資訊之讀取及/或寫入係根據一次序(諸如一「讀取單元優先」次序或一「頁優先」次序)來執行。圖中所圖解說明之讀取單元之一讀取單元優先次序之一實例以讀取單元610.0R0開始,後續接著610.1R0...610.65R0、610.0R1、610.1R1...610.65R1等等,以610.65RR結束。圖中所圖解說明之讀取單元之一頁優先次序之一實例以讀取單元610.0R0開始,後續接著610.0R1...610.0RR、610.1R0、610.1R1...610.1RR...610.65R0、610.65R1等等,以610.65RR結束。
在各項實施例中,一R區塊內之資料之一寫入及/或一等量化次序係跨越所有裝置(例如,最低至最高編號之裝置,如藉由等量化方向600概念性地建議)頁(例如,最低至最高)優先,接著係下一最高頁(跨越所有裝置),且依此類推,繼續經過該R區塊之最後頁。相對於R區塊660.0具體而言,一實例性次序以頁610.0P0(快閃記憶體晶粒610.0之第一區塊中之第一頁)開始,後續接著頁610.1P0(快閃記憶體晶粒610.1之第一區塊中之第一頁),且依此類推繼續至頁610.65P0(快閃記憶體晶粒610.65之第一區塊中之第一頁及R區塊660.0之最後區塊)。該實例性次序以頁610.0P1(快閃記憶體晶粒610.0之第一區塊中之第二頁)繼續,後續接著頁610.1P1(快閃記憶體晶粒610.1之第一區塊中之第二頁),且依此類推繼續至頁610.65P1(快閃記憶體晶粒610.65之第一區塊中之第二頁)。該實例以一相同次序繼續。該實例性次序以頁610.0PP(快閃記憶體晶粒610.0之第一區塊中之最後頁)完成,後續接著頁610.1PP(快閃記憶體晶粒610.1之第一區塊中之最後頁),且依此類推以頁610.65PP(快閃記憶體晶粒610.65之第一區塊中之最後頁,及R區塊660.0之最後區塊中之最後頁)結束。
在各項實施例中,快閃記憶體晶粒610.65...610.1及610.0對應於圖1A之一或多個個別快閃記憶體晶粒194中之相應者。在某些實施例 中,快閃記憶體晶粒610.65...610.1及610.0係少於NVM 199之全部之一部分。舉例而言,在各項實施例中,跨越快閃記憶體晶粒之多個群組獨立地等量化資料,且快閃記憶體晶粒之群組中之每一者係獨立地可存取的。
帶區選擇
圖7概念性地圖解說明將資料選擇性地放置至一SSD之NVM之特定帶區中之該SSD之一實施例之選定細節。概念上,至SSD之NVM之寫入源自寫入資料源700之一或多個元件,且由帶區管理710分析,由資料變換717變換,且被放置至SSD之NVM之特定資料帶區730中。
在某些實施例中,寫入資料源700之元件將寫入資料708提供至NVM。寫入資料源700之元件之實例包括主機資料701、經回收資料702、系統資料703及其他資料704。在某些實施例中,帶區管理710以相同方式處理寫入資料源之某些或所有元件。舉例而言,某些實施例以相同方式處理系統資料及主機資料。在各項實施例中,寫入資料源包括上文未列示之元件。主機資料701之一實例係由一主機(例如,經由主機介面111或自主機102)寫入之資料。經回收資料702之一實例係已被重寫(例如,由回收器151)之資料。系統資料703之一實例係與映射711相關之資料。在某些實施例中,系統資料703由SSD控制器100產生。其他資料704包括非主機資料、非經回收資料且非系統資料之資料。
源ID 706控制寫入資料源之元件之間的多工器且指示哪一元件提供寫入資料708及相關聯源資訊707。源資訊係傳遞至帶區管理710。源資訊之實例包括寫入資料之一LBA、寫入資料之一LBA範圍、R區塊位址及/或先前將經回收資料放置於哪一帶區中(例如,用於經回收資料)。寫入資料係傳遞至資料分析713。
帶區管理710判定寫入資料及源資訊之特性且選擇一適當帶區。 在所圖解說明之實施例中,帶區管理710包括數個模組映射711、LBA計數器陣列712、資料分析713及帶區選擇器714。
在所圖解說明之實施例中,LBA計數器陣列追蹤對LBA之存取之特性(例如,各自分別追蹤對一LBA或(舉例而言)鄰接LBA群組之讀取/寫入操作之數目之複數個計數器)。映射711將LBA轉換為NVM之區塊及/或頁位址且每一映射項目與LBA計數器陣列712之一元件相關聯。LBA計數器陣列之元件包括各自分別追蹤關於相關聯LBA或(舉例而言)鄰接LBA群組之資訊之一或多個計數器。在各項實施例中,LBA計數器陣列之每一元件包括以下各項中之一或多者:對相關聯LBA之讀取;對相關聯LBA之寫入;對相關聯LBA之讀取與對相關聯LBA之寫入之比;對相關聯LBA之連續讀取;對相關聯LBA之連續寫入;及藉由對相關聯LBA之寫入遞增且藉由對相關聯LBA之讀取遞減之一計數器。在某些實施例中,使用源資訊(例如,LBA)來存取LBA計數器陣列且自LBA計數器陣列之一特定元件擷取關於寫入資料之資訊。
在所圖解說明之實施例中,資料分析713判定寫入資料708之特性。作為一實例,資料分析檢查寫入資料之一窗是否包括呈現為x86相關分支指令之資料位元組之一臨限數目,因此判定寫入資料係可執行資料。在某些實施例中,(例如)藉由將相關位址轉換為絕對位址而進一步變換可執行資料。作為另一實例,資料分析檢查寫入資料是否係不可壓縮的(例如,資料係呈一經壓縮格式,諸如JPEG、MP3、PDF、MPEG、ZIP等或經加密資料)。在一些使用情景中,在一特定時間間隔內比寫入可執行且不可壓縮資料相對更頻繁地讀取可執行且不可壓縮資料,且在某些實施例中可執行且不可壓縮資料選擇性地放置於特定帶區中。資料分析之各項實施例包括軟體、韌體及/或硬體之任何組合。
在某些實施例中,一選用提示單元705接收與寫入資料相關聯之源資訊707且將一選用提示709傳遞至帶區選擇器714。作為一第一實例,提示指示寫入資料係唯讀或主讀的(例如,多媒體資料或一資料庫中之一唯讀表)且因此不可能被寫入。作為一第二實例,提示指示寫入資料係唯寫或主寫的(例如,一日誌檔案或檔案系統日記)且因此不可能被讀取。提示單元之各項實施例包括軟體、韌體及/或硬體之任何組合。在各項實施例中,提示單元軟體及/或韌體在CPU 171上執行。在各項實施例中,提示單元包括使源資訊(例如,LBA、一LBA範圍)與提示相關聯之一表。在某些實施例中,提示單元至少部分地基於自一主機(例如,其提供主機資料701)接收之提示資訊來操作。
在所圖解說明之實施例中,基於由LBA計數器陣列712、資料分析713及/或選用提示709判定之特性之某一組合且結合源ID 706,帶區選擇器714自資料帶區730選擇一帶區用於寫入資料708。在一些實施例中,帶區選擇器選擇一帶區以改良SSD之效能、平均抹寫、電力消耗及/或可靠度。在某些實施例中,帶區選擇器選擇一較熱帶區用於被判定為相對較頻繁地寫入之寫入資料(例如,經新近寫入之主機資料,或在LBA計數器在一特定時間間隔內指示相對多的寫入的情況下)。帶區選擇器選擇一較冷帶區用於被判定為較不頻繁地寫入之寫入資料(例如,可執行或經壓縮,或在LBA計數器在一特定時間間隔內指示相對少的寫入之情況下,或經回收資料)。在某些使用情景中,回收將把熱及冷資料分離出至不同帶區中,此乃因帶區選擇器選擇較冷帶區用於經回收資料,而帶區選擇器選擇較熱帶區用於頻繁地寫入之資料。在某些實施例中,提示藉由指示寫入資料(例如,來自主機資料701)係冷的而促進分離熱及冷資料,使得帶區選擇器選擇一冷帶區。在某些實施例中,將含有可能具有寫入失敗之NVM胞元之區塊分配至冷帶區,因此改良可靠度。在某些實施例中,將含有不可 能具有寫入失敗之NVM胞元之區塊分配至熱帶區以改良平均抹寫及可靠度。在某些使用情景中,熱帶區具有具有更多自由空間之區塊,因此實現更高效回收。
在某些實施例中,帶區選擇器選擇一不可壓縮帶區用於不可壓縮寫入資料。在某些實施例中,帶區選擇器選擇一可壓縮帶區用於可壓縮寫入資料。在某些實施例中,帶區選擇器選擇一可執行帶區用於可執行寫入資料。在某些實施例中,帶區選擇器將選擇一熱帶區用於被判定為唯寫(例如,藉由LBA計數器陣列或提示)且更動控制其他因素之寫入資料。在某些實施例中,帶區選擇器選擇不經受回收之一帶區用於被判定為唯寫之寫入資料。
在所圖解說明之實施例中,寫入資料716被傳遞至資料變換717。在各種使用情景中,資料變換將寫入資料加密及/或壓縮,且輸出經變換資料718。資料分析之各項實施例係以軟體、韌體及/或硬體之任何組合來實施。在各項實施例中,資料變換概念上發生在資料分析之前、與其並行發生、在其之後發生或結合其發生。舉例而言,在某些實施例中,由資料變換執行之處理判定資料分析所使用之寫入資料之特性。在各項實施例中,資料變化不變換寫入資料,且經變換資料與寫入資料一致或相同。
帶區選擇器將選定帶區之帶區ID 715傳遞至資料帶區730。帶區ID指示帶區731、732...73N中之哪一者被選擇。每一帶區包括可用於接收寫入資料之一R區塊。將經變換資料718發送至選定帶區中之可用R區塊且寫入至NVM中。
在各項實施例中,如所圖解說明之資料帶區730係概念性的,表示基礎儲存以及相關聯控制功能。作為一實例,資料帶區730包括NVM以及硬體、軟體及/或韌體之任何組合以將經變換資料718引導至如帶區ID 715所識別之NVM之一特定區域。在圖1A之一上下文中, 舉例而言,基礎儲存對應於NVM 199之任何部分,且相關聯控制功能對應於CPU核心172、緩衝器管理175及排程193中之任何一或多者之任何部分。
在各項實施例中,資料帶區730之帶區中之一或多者係NVM(例如,NVM 199)之區塊之經管理群組。舉例而言,在所圖解說明之實施例中,R區塊731.1...731.M係NVM之區塊且帶區及1 731係R區塊731.1...731.M之一經管理群組。在各項實施例中,R區塊660.0係R區塊731.1...73N.K之一實例性實施方案。
在各項實施例中,帶區僅包括僅來自寫入資料源700之元件中之一特定一者之區塊。在各項實施例中,寫入資料源之元件中之特定一者係以下各項中之任何一者:主機資料701、經回收資料702、系統資料703及其他資料704。在各別實施例中,帶區包括分別僅含有經回收主機資料、經回收系統資料及經回收主機資料結合經回收系統資料之區塊。
作為另一實例,一帶區僅包括系統703資料之下部頁區塊。作為另一實例,一帶區僅包括頻繁讀取之上部頁區塊。作為另一實例,一帶區僅包括具有頻繁讀取之系統703資料之區塊。作為另一實例,一帶區僅包括具有頻繁寫入之系統703資料之上部頁區塊。
圖8圖解說明經由具有一FLM及一或多個SLM頁之一雙階映射將LBA映射至儲存於一NVM中之LB之一實施例之選定細節作為LBA至NVM位置映射800。雙階映射係經由耦合至一或多個第二階元件(在概念上經圖解說明為一單元件SLM頁820)之一第一階元件(FLM 810)來實施。FLM包括複數個項目(SLM頁/長度810.1…SLM頁/長度810.M)。FLM之項目中之每一者指向SLM頁中之一者(諸如SLM頁820)。SLM頁包括複數個項目(LB頁/長度820.1…LB頁/長度820.N)。SLM頁之項目中之每一者指向其中資料開始之NVM中之一位 置(例如,儲存用於一LBA之主機寫入資料之至少開頭之一讀取單元)。
在各項實施例中,圖係圖解說明圖1A之映射141及/或表143或與其相關之選定細節。舉例而言,在某些實施例中,映射141及/或表143實施映射資訊(諸如一FLM之一或多個項目及/或一SLM之一或多個項目)之一或多個快取記憶體。FLM及/或SLM之一完整影像維持於NVM(例如,圖1A之NVM 199)之一部分中,且(例如)在快取記憶體替換一先前快取之FLM及/或SLM項目時被更新。在某些實施例中,FLM及/或SLM完整影像係經由輪流或乒乓檢查點來實施,該等檢查點中之每一者係各別完整映射影像之一部分。
在各項實施例中,SLM頁之項目中之每一者與LBA計數器相關聯,使得每一LBA 821經由LBA至NVM位置映射800與LBA計數器相關聯,舉例而言,在所圖解說明之實施例中,LB頁/長度820.1與LBA計數器822.1相關聯,LB頁/長度820.2與LBA計數器822.2相關聯,且LB頁/長度820.N與LBA計數器822.N相關聯。在某些實施例中,LBA計數器儲存於SLM頁820中;在其他實施例中,LBA計數器儲存於與SLM頁820分離之一資料結構中。在某些實施例中,LBA計數器與鄰接LBA之一範圍相關聯;在其他實施例中,LBA計數器與一單個LBA相關聯;在其他實施例中,某些LBA計數器與鄰接LBA之一範圍相關聯且其他LBA計數器與一單個LBA相關聯。在某些實施例中,LBA計數器包括關於相關聯LBA之一或多個統計資料。統計資料之某些實例係連續讀取之一數目、連續寫入之一數目、讀取之一數目、寫入之一數目、讀取之一數目與寫入之一數目之一比及讀取之一數目與寫入之一數目之間的一差。在某些實施例中,對一LBA之某些或所有存取更新各別LBA計數器。在某些實施例中,對一LBA之一第一存取將初始化相關聯LBA計數器。
一除法器(整數除法器822)接收來自(例如)一可程式化硬體暫存器(SLM項目/SLM頁(CSR)823)之一參數以除以一傳入LBA以判定選擇哪一FLM項目及選擇哪一SLM項目(在由選定FLM項目指向之SLM頁內)。除法器耦合至FLM及SLM頁。
在操作中,將LBA 821呈現至整數除法器822。除法器用如SLM項目/SLM頁(CSR)823提供之每SLM頁之SLM項目之一數目除以LBA,從而產生一商(FLM索引822Q)及一餘數(SLM頁索引822R)。商用於選擇該等FLM項目之一者,且讀取選定FLM項目之一頁欄位(SLM指標810S)。頁欄位用於選擇SLM頁之一者(例如,SLM頁820),且餘數(例如,作為一偏移)用於選擇選定SLM頁之一項目。選定SLM頁項目之一頁欄位用於選擇NVM中之一特定位置,諸如一特定讀取單元,其中儲存對應於所呈現LBA之LB之至少開頭(LB指標820L)。在各項實施例中,LB指標包括NVM之一讀取單元之一位址(例如,圖2之讀取單元位址223)。在某些實施例中,各別SLM項目中之每一者包括與各別SLM項目之一各別LB之資料相關聯之一欄位編碼(例如,長度及/或跨度)。舉例而言,跨度描述存取多少(鄰接)讀取單元以獲得所有資訊(未經校正資料及相關聯錯誤校正檢查位元)從而判定各別LB之(經錯誤校正)資料。繼續該實例,長度描述所讀取資訊中之多少(例如,以讀取單元,諸如圖2之讀取單元之長度225所圖解說明)對應於各別LB之資料。在某些實施例中,各別FLM項目中之每一者包括一欄位編碼,例如,與讀取由FLM項目之頁欄位指定之一各別SLM頁之一全部相關聯之長度及/或跨度。舉例而言,跨度描述存取多少(鄰接)讀取單元以獲得所有資訊(未經校正資料及相關聯錯誤校正檢查位元)從而判定各別SLM頁之(經錯誤校正)資料。繼續該實例,長度描述所讀取資訊中之多少(例如,以讀取單元,諸如圖2之讀取單元之長度225所圖解說明)對應於各別SLM頁之資料。
在各項實施例中,商用作用以存取一快取記憶體(諸如SLM頁之一完全相關聯快取記憶體)之一密鑰。若一特定SLM頁之快取記憶體中存在一點閱,則在不存取NVM之情況下在快取記憶體中找到特定SLM頁之一最新複本。在某些實施例及/或使用情景中,提供對複數個SLM頁之快速存取實現對NVM之隨機存取及/或對NVM之複數個獨立連續資料串流存取(例如,對LBA之一第一區域之一第一連續資料串流存取與對LBA之一第二區域之一第二連續資料串流存取穿插)之較高效處理。
圖9圖解說明NVM(諸如在一SSD中)之資料帶區之帶區管理流程900之一實施例的選定細節之一流程圖。帶區管理流程900係帶區管理流程(例如,由圖7之帶區管理710執行之處理)之各項態樣之一實例性操作。帶區管理流程包括自複數個寫入資料源(例如,圖7之寫入資料源700)之一元件接收寫入資料(例如,圖7之寫入資料708)及源資訊(例如,圖7之源資訊707)。帶區管理流程進一步包括將寫入資料選擇性地放置至資料帶區(例如,圖7之資料帶區730)中。
回應於一寫入資料源提供寫入資料,流程開始(開始901)。帶區管理流程自寫入資料源接收寫入資料及識別寫入資料源之源資訊(接收寫入資料、源資訊902)。帶區管理流程分析寫入資料及源資訊以判定寫入資料之特性及對寫入資料之存取之特性(分析寫入資料、源資訊903)。基於所判定特性,帶區管理流程選擇一帶區用於寫入資料(選擇資料帶區904)。帶區管理流程將選定帶區之一指示符作為一帶區識別符(例如,圖7之帶區ID 715)發送至具有、管理及或控制複數個資料帶區(例如,圖7之資料帶區730)之一元件。帶區管理流程將寫入資料發送至一資料變換元件(例如,圖7之資料變換717),該資料變換元件變化資料且發送經變換資料用於寫入至選定資訊帶區(將資料指派至帶區905)。流程接著完成(結束906)。
在各項實施例中,圖7圖解說明圖1A及圖1B之選定細節或與圖1A及圖1B相關之選定細節。舉例而言,映射711及/或LBA計數器陣列712之所有或任何部分對應於映射141及/或表143之所有或任何部分。在某些實施例中,LBA計數器陣列712係映射141及/或表143之一部分;在其他實施例中,LBA計數器陣列712係與映射141分離之一資料結構。
在某些實施例中,帶區管理710之部分由SSD控制器100之部分實施。舉例而言,分析713及/或資料變換717整體或部分地實施為在CPU 171上執行之軟體及/或韌體。對於另一實例,SSD控制器100包括用於資料分析713及/或資料變換717之硬體。
在各項實施例中,圖8圖解說明圖1A之映射141及/或表143以及/或者圖7之映射711及/或LBA計數器陣列712之選定細節或與其相關之選定細節。在各項實施例中,LBA至NVM映射800係映射141及/或映射711之任何部分之一實施方案。在各項實施例中,表143包括多個FLM 810及/或SLM頁820。
實例性實施技術
在某些實施例中,藉由與由一電腦系統進行之處理相容之一規範指定由以下各項執行之操作之全部或任何部分之各種組合:經啟用以執行至非揮發性記憶體(例如,快閃記憶體)之區域之寫入之管理及區域選擇的一系統、SSD或SSD控制器、一計算-主機快閃記憶體控制器及/或一SSD控制器(諸如圖1A之SSD控制器100)以及一處理器、微處理器、系統單晶片、特殊應用積體電路、硬體加速器或提供上述操作之全部或部分之其他電路之部分。該規範係根據各種說明,諸如硬體描述語言、電路說明、網表說明、遮罩說明或佈局說明。實例性說明包括:Verilog、VHDL、SPICE、諸如PSpice之SPICE變體、IBIS、IEF、DEF、GDS-II、OASIS或其他說明。在各項實施例中,處理包 括解譯、編譯、模擬及合成之任何組合以產生、驗證或指定適合用於包括於一或多個積體電路上之邏輯及/或電路。根據各項實施例,每一積體電路可根據各種技術來設計及/或製造。該等技術包括一可程式化技術(諸如一場可程式化閘極陣列積體電路或遮罩可程式化閘極陣列積體電路)、一半定製技術(諸如一完全地或部分地基於胞元之積體電路)及一完全定製技術(諸如實質上專門化之一積體電路)及其任何組合,或與積體電路之設計及/或製造相容之任何其他技術。
在某些實施例中,如藉由其中儲存有一指令集之一電腦可讀媒體所闡述之所有或部分操作之各種組合係藉由一或多個程式指令之執行及/或解譯、藉由一或多個源語言語句及/或腳本語言語句之解譯及/或編譯或藉由編譯、轉譯及/或解譯在程式設計及/或腳本設計語言語句中表達之資訊而產生之二進制指令之執行來執行。該等語句係與任一標準程式設計或腳本設計語言(諸如C、C++、Fortran、Pascal、Ada、Java、VBscript、及Shell)相容。該等程式指令、語言語句或二進制指令中之一或多者視情況儲存於一或多個電腦可讀儲存媒體元件上。在各項實施例中,該等程式指令之某些、全部或各個部分係實現為一或多個功能、常式、次常式、線內常式、程序、巨集或其部分。
總論
已僅出於方便製備文字與圖式之目的而在說明中做出某些挑選,且除非存在對相反內容之一指示,否則不應將該等挑選本身視為傳達就所闡述實施例之結構或操作之額外資訊。該等選擇之實例包括:用於圖式編號之命名之特定組織或指派,及用於識別及引用該等實施例之特徵及元件之元件識別符(例如標註或數字指定符)之特定組織或指派。
措詞「包括(includes或including)」係特定地意欲被視為闡述開放 範疇之邏輯組之抽象詞,且除非明確地後續接著措詞 在…內(within)否則不意欲傳達實體含有。
儘管已出於清晰描述及理解之目的以某些細節闡述前述實施例,但本發明不限於所提供之細節。存在本發明之諸多實施例。所揭示之實施例係例示性的而非限定性的。
應瞭解,構造、配置及使用上之諸多變化形式可能與該說明一致,且係在所發佈專利之申請專利範圍之範疇內。舉例而言,根據每一組件區塊中之各項實施例,互連及功能單元位元寬度、時鐘速度及所使用技術之類型係可變的。賦予互連及邏輯之名稱僅係例示性,且不應視為限制所闡述之概念。流程圖及流程圖式過程、行動及功能元件根據各項實施例可變。而且,除非具體地陳述為相反,否則所指定之值範圍、所使用之最大值及最小值或其他特定規範(諸如快閃記憶體技術類型;及暫存器與緩衝器中之條目或級之數目)僅係所闡述之實施例之彼等規範,被期望追蹤實施技術中之改良及改變,且不應視為限制。
可採用所屬技術領域中習知之功能等效技術來替代所闡述之彼等技術,以實施各種組件、子系統、操作、功能、常式、次常式、線內常式、程序、巨集或其部分。亦應理解,依據實施例相依之設計約束及較快處理之技術趨勢(促進先前在硬體中之功能遷移至軟體中)及較高整合密度(促進先前在軟體中之功能遷移至硬體中),諸多實施例之功能態樣可在硬體(例如,通常為專用電路)或軟體(例如,經由某一方式之經程式化控制器或處理器)中選擇性地實現。各項實施例中之具體變化形式包括但不限於:分割之差異;不同的形狀因子及組態;不同作業系統及其他系統軟體之使用;不同介面標準、網路協定或通信鏈路之使用;及在根據一特定應用之唯一工程及商務約束實施本文所闡述之概念時所期望之其他變化形式。
已藉助遠遠超出所闡述之實施例之諸多態樣之一最小實施方案所需要之細節及環境上下文來闡述該等實施例。熟習此項技術者將認識到,某些實施例在不改變剩餘組件之間的基本協作之情況下省略所揭示之組件或特徵。因此瞭解到,所揭示之諸多細節並非實施所闡述實施例之各種態樣所需。就剩餘組件可與先前技術區分而言,所省略之組件及特徵不限於本文所闡述之概念。
所有此等設計變化形式係對所闡述之實施例所表達之教示之非實質性改變。亦應瞭解,本文所闡述之實施例對其他計算及網路連接應用具有廣泛的可應用性,且不限於所闡述之實施例之特定應用或生產製造。因此本發明應視為包括囊括於所發佈專利之申請專利範圍之範疇內的所有可能修改及變化形式。
700‧‧‧寫入資料源
701‧‧‧主機資料
702‧‧‧經回收資料
703‧‧‧系統資料/系統
704‧‧‧其他資料
705‧‧‧選用提示單元
706‧‧‧源ID
707‧‧‧相關聯源資訊/源資訊
708‧‧‧寫入資料
709‧‧‧選用提示
710‧‧‧帶區管理
711‧‧‧映射
712‧‧‧邏輯區塊位址計數器陣列
713‧‧‧資料分析/分析
714‧‧‧帶區選擇器
715‧‧‧帶區ID
716‧‧‧寫入資料
717‧‧‧資料變換
718‧‧‧經變換資料
730‧‧‧資料帶區
731‧‧‧帶區
731.1‧‧‧R區塊
731.M‧‧‧R區塊
732‧‧‧帶區
73N‧‧‧帶區
73N.K‧‧‧R區塊

Claims (25)

  1. 一種方法,其包含:分析自一主機接收之一寫入以判定該寫入之一特性;至少部分地基於該特性來選擇一非揮發性記憶體(NVM)之複數個帶區中之一者;將該寫入之資料寫入至該選定帶區;且其中該等帶區中之每一者係該NVM之一經管理部分。
  2. 如請求項1之方法,其中該特性包含該寫入之資料係可壓縮的。
  3. 如請求項1之方法,其中該特性包含該寫入之資料係可執行的。
  4. 如請求項1之方法,其中該特性係至少部分地基於與對應於該寫入之一邏輯區塊位址(LBA)相關聯之一計數器。
  5. 如請求項4之方法,其進一步包含經由該計數器對至該LBA之寫入之一數目進行計數。
  6. 如請求項4之方法,其進一步包含經由該計數器對該LBA之讀取之一數目與該LBA之寫入之一數目之間之一差進行計數。
  7. 如請求項1之方法,其中該寫入係經由與一或多個儲存介面標準相容之一儲存介面自該主機接收;該寫入資料係至少部分地經由經啟用以與該NVM通信之一快閃記憶體介面;該NVM包含至少一個快閃記憶體;且該儲存介面及該快閃記憶體介面係包含於實施於一單個積體電路中之一控制器中。
  8. 如請求項1之方法,其中該等帶區中之每一者係根據複數個邏輯性質中之至少一者,該等邏輯性質包含被頻繁地讀取、被相對 較頻繁地寫入、被相對較不頻繁地寫入、係不可壓縮的、係可執行的、係不可恢復的且有必要在一電力丟失之後保存、係可恢復的且沒有必要在一電力丟失之後保存、使用一特定技術或密鑰加密、使用一特定技術或密鑰或者藉助特定錯誤校正碼(ECC)方案保護以防止錯誤、經受回收及不經受回收。
  9. 一種系統,其包含:用於分析自一主機接收之一寫入以判定該寫入之一特性之構件;用於至少部分地基於該特性選擇一非揮發性記憶體(NVM)之複數個帶區中之一者之構件;用於將該寫入之資料寫入至該選定帶區之構件;且其中該等帶區中之每一者係該NVM之一經管理部分。
  10. 如請求項9之系統,其中該特性包含該寫入之資料係可壓縮的。
  11. 如請求項9之系統,其中該特性包含該寫入之資料係可執行的。
  12. 如請求項9之系統,其中該特性係至少部分地基於與對應於該寫入之一邏輯區塊位址(LBA)相關聯之一計數器。
  13. 如請求項12之系統,其進一步包含用於經由該計數器對至該LBA之寫入之一數目進行計數之構件。
  14. 如請求項12之系統,其進一步包含用於經由該計數器對該LBA之讀取之一數目與該LBA之寫入之一數目之間之一差進行計數之構件。
  15. 一種具有儲存於其中之一指令集之有形非暫時性電腦可讀媒體,該指令集在由一處理元件執行時致使該處理元件執行及/或控制包含以下各項之操作:分析自一主機接收之一寫入以判定該寫入之一特性;至少部分地基於該特性來選擇一非揮發性記憶體(NVM)之複 數個帶區中之一者;將該寫入之資料寫入至該選定帶區;且其中該等帶區中之每一者係該NVM之一經管理部分。
  16. 如請求項15之有形非暫時性電腦可讀媒體,其中該特性包含該寫入之資料係可壓縮的。
  17. 如請求項15之有形非暫時性電腦可讀媒體,其中該特性包含該寫入之資料係可執行的。
  18. 如請求項15之有形非暫時性電腦可讀媒體,其中該特性係至少部分地基於與對應於該寫入之一邏輯區塊位址(LBA)相關聯之一計數器。
  19. 如請求項18之有形非暫時性電腦可讀媒體,其中該等操作進一步包含經由該計數器對至該LBA之寫入之一數目進行計數。
  20. 如請求項18之有形非暫時性電腦可讀媒體,其中該等操作進一步包含經由該計數器對該LBA之讀取之一數目與該LBA之寫入之一數目之間之一差進行計數。
  21. 如請求項15之有形非暫時性電腦可讀媒體,其中該寫入係經由與一或多個儲存介面標準相容之一儲存介面自該主機接收;該寫入資料係至少部分地經由經啟用以與該NVM通信之一快閃記憶體介面;該NVM包含至少一個快閃記憶體;且該處理元件、該儲存介面及該快閃記憶體介面係包含於實施於一單個積體電路中之一控制器中。
  22. 如請求項15之有形非暫時性電腦可讀媒體,其中該等帶區中之每一者係根據複數個邏輯性質中之至少一者,該等邏輯性質包含被頻繁地讀取、被相對較頻繁地寫入、被相對較不頻繁地寫 入、係不可壓縮的、係可執行的、係不可恢復的且有必要在一電力丟失之後保存、係可恢復的且沒有必要在一電力丟失之後保存、使用一特定技術或密鑰加密、使用一特定技術或密鑰或者藉助特定錯誤校正碼(ECC)方案保護以防止錯誤、經受回收及不經受回收。
  23. 一種設備,其包含:寫入分析硬體邏輯電路,其經啟用以分析自一主機接收之一寫入以判定該寫入之一特性;帶區選擇硬體邏輯電路,其經啟用以至少部分地基於該特性來選擇一非揮發性記憶體(NVM)之複數個帶區中之一者;記憶體寫入硬體邏輯電路,其經啟用以將該寫入之資料寫入至該選定帶區;且其中該等帶區中之每一者係該NVM之一經管理部分。
  24. 如請求項23之設備,其中該特性包含該寫入之資料係可壓縮的。
  25. 如請求項23之設備,其中該特性包含該寫入之資料係可執行的。
TW103102158A 2013-01-22 2014-01-21 用於寫入非揮發性記憶體之管理及區域選擇 TWI537724B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201361755442P 2013-01-22 2013-01-22

Publications (2)

Publication Number Publication Date
TW201443641A true TW201443641A (zh) 2014-11-16
TWI537724B TWI537724B (zh) 2016-06-11

Family

ID=49949587

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103102158A TWI537724B (zh) 2013-01-22 2014-01-21 用於寫入非揮發性記憶體之管理及區域選擇

Country Status (6)

Country Link
US (1) US9395924B2 (zh)
EP (1) EP2757479A1 (zh)
JP (1) JP6387231B2 (zh)
KR (1) KR102155191B1 (zh)
CN (1) CN103942010B (zh)
TW (1) TWI537724B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI601008B (zh) * 2014-12-10 2017-10-01 英特爾公司 跨多重儲存裝置進行基元寫入操作之技術
TWI635746B (zh) * 2016-05-10 2018-09-11 晨星半導體股份有限公司 扭曲畫面校正裝置及方法
TWI808384B (zh) * 2021-02-23 2023-07-11 慧榮科技股份有限公司 儲存裝置、快閃記憶體控制器及其控制方法
TWI814590B (zh) * 2022-09-26 2023-09-01 慧榮科技股份有限公司 資料處理方法及對應之資料儲存裝置
TWI821152B (zh) * 2021-02-23 2023-11-01 慧榮科技股份有限公司 儲存裝置、快閃記憶體控制器及其控制方法

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2742429A4 (en) 2011-08-09 2015-03-25 Lsi Corp I / O DEVICE AND INTERACTION WITH DATA PROCESSING HOST
US9395924B2 (en) 2013-01-22 2016-07-19 Seagate Technology Llc Management of and region selection for writes to non-volatile memory
US20170046092A1 (en) * 2014-07-04 2017-02-16 Hewlett Packard Enterprise Development Lp Data deduplication
TWI540582B (zh) * 2014-07-10 2016-07-01 群聯電子股份有限公司 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置
US20160092118A1 (en) * 2014-09-26 2016-03-31 Intel Corporation Memory write management in a computer system
US9858008B2 (en) * 2014-10-30 2018-01-02 ScaleFlux Method to reduce flash memory IOs with host maintained address mapping table
DK3059679T3 (en) * 2014-12-05 2018-12-17 Huawei Tech Co Ltd CONTROL UNIT, FLASH MEMORY UNIT, PROCEDURE FOR IDENTIFICATION OF DATA BLOCK STABILITY, AND PROCEDURE FOR STORING DATA ON THE FLASH MEMORY UNIT
WO2016095103A1 (zh) * 2014-12-16 2016-06-23 华为技术有限公司 存储空间管理方法及装置
WO2016101145A1 (zh) * 2014-12-23 2016-06-30 华为技术有限公司 一种控制器、识别数据块稳定性的方法和存储系统
US9678665B2 (en) 2015-03-06 2017-06-13 Western Digital Technologies, Inc. Methods and systems for memory page allocation
CN106155812A (zh) 2015-04-28 2016-11-23 阿里巴巴集团控股有限公司 一种对虚拟主机的资源管理的方法、装置、系统及电子设备
US11461010B2 (en) 2015-07-13 2022-10-04 Samsung Electronics Co., Ltd. Data property-based data placement in a nonvolatile memory device
US10509770B2 (en) 2015-07-13 2019-12-17 Samsung Electronics Co., Ltd. Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device
CN107924368A (zh) * 2015-07-23 2018-04-17 慧与发展有限责任合伙企业 在计算机系统破坏时保存易失性内存
KR102491624B1 (ko) 2015-07-27 2023-01-25 삼성전자주식회사 데이터 저장 장치의 작동 방법과 상기 데이터 저장 장치를 포함하는 시스템의 작동 방법
US9927984B2 (en) * 2015-10-14 2018-03-27 Samsung Electronics Co., Ltd. Electronic system with interface control mechanism and method of operation thereof
US9886398B2 (en) * 2015-12-01 2018-02-06 International Business Machines Corporation Implicit sharing in storage management
KR20170075855A (ko) * 2015-12-23 2017-07-04 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10481799B2 (en) * 2016-03-25 2019-11-19 Samsung Electronics Co., Ltd. Data storage device and method including receiving an external multi-access command and generating first and second access commands for first and second nonvolatile memories
KR102615593B1 (ko) * 2016-05-04 2023-12-21 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102567224B1 (ko) 2016-07-25 2023-08-16 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 컴퓨팅 시스템
US10229047B2 (en) * 2016-08-06 2019-03-12 Wolley Inc. Apparatus and method of wear leveling for storage class memory using cache filtering
KR20180021284A (ko) * 2016-08-18 2018-03-02 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10275165B2 (en) 2016-09-12 2019-04-30 Toshiba Memory Corporation Memory controller
US10216417B2 (en) * 2016-10-26 2019-02-26 Samsung Electronics Co., Ltd. Method of consolidate data streams for multi-stream enabled SSDs
CN106527987B (zh) * 2016-11-04 2019-06-04 湖南国科微电子股份有限公司 一种不带dram的ssd主控可靠性提升系统及方法
GB2559119B (en) * 2017-01-20 2020-12-30 Advanced Risc Mach Ltd Apparatus and methods to prolong lifetime of memories
US11188456B2 (en) * 2017-03-21 2021-11-30 Western Digital Technologies Inc. Storage system and method for predictive block allocation for efficient garbage collection
TWI625620B (zh) * 2017-05-12 2018-06-01 威盛電子股份有限公司 非揮發性記憶體裝置及其讀取方法
US10068663B1 (en) * 2017-05-30 2018-09-04 Seagate Technology Llc Data storage device with rewriteable in-place memory
US10275162B2 (en) 2017-06-23 2019-04-30 Dell Products L.P. Methods and systems for managing data migration in solid state non-volatile memory
FR3070081B1 (fr) * 2017-08-10 2021-04-09 Safran Identity & Security Procede d'ecriture d'un programme dans une memoire non-volatile tenant compte de l'usure de ladite memoire
KR20190052366A (ko) * 2017-11-08 2019-05-16 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
CN109857330B (zh) * 2017-11-30 2022-02-15 宜鼎国际股份有限公司 数据存取效率的预估方法
CN108153487B (zh) * 2017-11-30 2021-04-13 西安空间无线电技术研究所 一种基于nand flash的星载固存多源数据文件系统
US10878859B2 (en) 2017-12-20 2020-12-29 Micron Technology, Inc. Utilizing write stream attributes in storage write commands
KR20190078133A (ko) * 2017-12-26 2019-07-04 에스케이하이닉스 주식회사 컨트롤러 및 그것의 동작방법
US11099831B2 (en) * 2018-02-08 2021-08-24 Micron Technology, Inc. Firmware update in a storage backed memory system
US11803325B2 (en) 2018-03-27 2023-10-31 Micron Technology, Inc. Specifying media type in write commands
WO2020028812A1 (en) * 2018-08-03 2020-02-06 Burlywood, Inc. Power loss protection and recovery
US11347653B2 (en) * 2018-08-31 2022-05-31 Nyriad, Inc. Persistent storage device management
CN109144424B (zh) * 2018-09-04 2021-10-15 浪潮电子信息产业股份有限公司 一种固态硬盘的读写方法、装置、设备及存储介质
US11169726B2 (en) 2018-09-13 2021-11-09 Toshiba Memory Corporation Pool-level storage management
WO2020069074A1 (en) * 2018-09-28 2020-04-02 Burlywood, Inc. Write stream separation into multiple partitions
US10922178B2 (en) * 2018-10-31 2021-02-16 Hewlett Packard Enterprise Development Lp Masterless raid for byte-addressable non-volatile memory
CN109802684B (zh) * 2018-12-26 2022-03-25 华为技术有限公司 进行数据压缩的方法和装置
TWI740187B (zh) * 2019-02-20 2021-09-21 慧榮科技股份有限公司 存取方法
CN109918317A (zh) * 2019-03-01 2019-06-21 重庆大学 一种基于磨损感知的nvm条间磨损均衡方法
US11327809B2 (en) 2019-06-19 2022-05-10 International Business Machines Corporation Virtual machine memory removal increment selection
CN110716699A (zh) * 2019-10-17 2020-01-21 北京百度网讯科技有限公司 用于写入数据的方法和装置
CN111104066B (zh) 2019-12-17 2021-07-27 华中科技大学 数据写入方法、装置及存储服务器和计算机可读存储介质
US11544186B2 (en) 2020-07-16 2023-01-03 Silicon Motion, Inc. Method and apparatus for data reads in host performance acceleration mode
CN113946279A (zh) * 2020-07-16 2022-01-18 慧荣科技股份有限公司 主机效能加速模式的数据读取方法及装置
US11429545B2 (en) 2020-07-16 2022-08-30 Silicon Motion, Inc. Method and apparatus for data reads in host performance acceleration mode
US11544185B2 (en) 2020-07-16 2023-01-03 Silicon Motion, Inc. Method and apparatus for data reads in host performance acceleration mode
CN112149169A (zh) * 2020-10-12 2020-12-29 Oppo广东移动通信有限公司 一种应用访问方法、装置及计算机可读存储介质
KR20220067795A (ko) 2020-11-18 2022-05-25 삼성전자주식회사 스토리지 장치 및 이를 포함하는 스토리지 시스템
US11942111B2 (en) * 2021-06-15 2024-03-26 Western Digital Technologies, Inc. Data storage device and method for auto-peeling of surveillance video content to increase archival storage
TWI771079B (zh) * 2021-06-24 2022-07-11 群聯電子股份有限公司 記憶體存取方法、記憶體儲存裝置及記憶體控制電路單元
US20230015697A1 (en) * 2021-07-13 2023-01-19 Citrix Systems, Inc. Application programming interface (api) authorization
CN113590502B (zh) * 2021-07-23 2024-03-22 合肥康芯威存储技术有限公司 一种非挥发性记忆体存储设备的垃圾回收方法与垃圾回收系统
CN114594908A (zh) * 2022-02-25 2022-06-07 阿里巴巴(中国)有限公司 基于固态硬盘ssd的数据处理方法、设备及存储介质

Family Cites Families (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4942552A (en) 1986-11-20 1990-07-17 Allen-Bradley Company, Inc. Method and apparatus for saving and performing industrial control commands
JPH03250499A (ja) * 1990-02-27 1991-11-08 Nec Corp データ記憶回路
JP3212787B2 (ja) 1993-12-02 2001-09-25 日本電気株式会社 転送データ管理方式およびホスト・端末間データ転送方式
US5553261A (en) * 1994-04-01 1996-09-03 Intel Corporation Method of performing clean-up of a solid state disk while executing a read command
JPH1153235A (ja) 1997-08-08 1999-02-26 Toshiba Corp ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム
US6324669B1 (en) * 1997-11-17 2001-11-27 Seagate Technology Llc Method and apparatus for using CRC for data integrity in on-chip memory
US6269413B1 (en) * 1998-10-30 2001-07-31 Hewlett Packard Company System with multiple dynamically-sized logical FIFOs sharing single memory and with read/write pointers independently selectable and simultaneously responsive to respective read/write FIFO selections
US6427198B1 (en) 2000-02-15 2002-07-30 International Business Machines Corporation Method, system, and program for determining system configuration
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP2002342164A (ja) * 2001-05-22 2002-11-29 Hitachi Ltd 記憶装置及びデータ処理装置並びに記憶部制御方法
DE60226627D1 (de) 2001-08-24 2008-06-26 Intel Corp Ehörige verfahren um datenintegrität zu verwalten
JP2003087348A (ja) 2001-09-14 2003-03-20 Matsushita Graphic Communication Systems Inc 通信制御方法及び通信制御装置並びにadsl通信装置
KR100445134B1 (ko) 2002-01-31 2004-08-21 삼성전자주식회사 플래시 메모리 안정화기능을 구비한 호스트 기기 및 그 방법
US7017004B1 (en) * 2002-03-29 2006-03-21 Microsoft Corporation System and method for updating contents of a flash ROM
US6968439B2 (en) 2002-08-29 2005-11-22 Micron Technology, Inc. Single segment data object management
KR100498233B1 (ko) * 2002-10-31 2005-07-01 한국전자통신연구원 선입선출 메모리 회로 및 그 구현 방법
JP4175185B2 (ja) 2003-06-06 2008-11-05 日本電気株式会社 ネットワーク情報記録装置
CN1670701A (zh) 2004-03-17 2005-09-21 德鑫科技股份有限公司 压缩数据存储方法
US20060174067A1 (en) 2005-02-03 2006-08-03 Craig Soules Method of caching data
CN100361094C (zh) 2005-07-01 2008-01-09 华为技术有限公司 一种节省全局变量内存空间的方法
CN101390043A (zh) 2005-07-01 2009-03-18 美国日本电气实验室公司 嵌入式系统用的存储器体系结构
US7159082B1 (en) 2005-10-03 2007-01-02 Hewlett-Packard Development Company, L.P. System and method for throttling memory accesses
JP4357473B2 (ja) * 2005-11-04 2009-11-04 株式会社ソニー・コンピュータエンタテインメント データ処理システムおよびプログラム
US7719983B2 (en) 2006-01-06 2010-05-18 International Business Machines Corporation Method for autonomic system management using adaptive allocation of resources
JP4855102B2 (ja) 2006-02-23 2012-01-18 株式会社日立製作所 計算機システム及び管理計算機とストレージシステム並びに記憶領域割当量制御方法
US7594073B2 (en) 2006-09-29 2009-09-22 Intel Corporation Method and apparatus for caching memory content on a computing system to facilitate instant-on resuming from a hibernation state
KR100857761B1 (ko) * 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
JP2009026296A (ja) 2007-06-21 2009-02-05 Toshiba Corp 電子デバイス、メモリデバイス、ホスト装置
US8078787B2 (en) 2007-06-22 2011-12-13 Apple Inc. Communication between a host device and an accessory via an intermediate device
US8429358B2 (en) 2007-08-14 2013-04-23 Samsung Electronics Co., Ltd. Method and data storage device for processing commands
US8239612B2 (en) * 2007-09-27 2012-08-07 Tdk Corporation Memory controller, flash memory system with memory controller, and control method of flash memory
JP2009230407A (ja) * 2008-03-21 2009-10-08 Toshiba Corp データの更新方法、メモリシステムおよびメモリデバイス
US8473707B2 (en) 2008-03-27 2013-06-25 Open Invention Network, Llc Method for achieving sequential I/O performance from a random workload
US7769919B2 (en) 2008-05-15 2010-08-03 International Business Machines Corporation Protecting computer memory from simultaneous direct memory access operations using active and inactive translation tables
US8959280B2 (en) * 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
US20090319721A1 (en) * 2008-06-19 2009-12-24 Silicon Motion, Inc. Flash memory apparatus and method for operating the same
TWI398770B (zh) * 2008-07-08 2013-06-11 Phison Electronics Corp 用於快閃記憶體的資料存取方法、儲存系統與控制器
TW201007734A (en) 2008-08-06 2010-02-16 Genesys Logic Inc Flash memory control apparatus having signal-converting module
US8140739B2 (en) * 2008-08-08 2012-03-20 Imation Corp. Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table
US7925925B2 (en) 2008-12-30 2011-04-12 Intel Corporation Delta checkpoints for a non-volatile memory indirection table
CN101576834B (zh) 2009-05-08 2012-05-30 西安蓝海本立信息科技有限公司 基于时间戳建立数据视图的连续数据保护系统及方法
TWI400707B (zh) 2009-07-09 2013-07-01 Phison Electronics Corp 快閃記憶體邏輯區塊管理方法及其控制電路與儲存系統
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8560765B2 (en) * 2009-09-08 2013-10-15 Lsi Corporation Systems and methods for variable level use of a multi-level flash memory
US9753847B2 (en) 2009-10-27 2017-09-05 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
JP2011128792A (ja) * 2009-12-16 2011-06-30 Toshiba Corp メモリ管理装置
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8327226B2 (en) 2010-02-03 2012-12-04 Seagate Technology Llc Adjustable error correction code length in an electrical storage device
JP2011203916A (ja) 2010-03-25 2011-10-13 Toshiba Corp メモリコントローラ、および半導体記憶装置
US8621141B2 (en) 2010-04-01 2013-12-31 Intel Corporations Method and system for wear leveling in a solid state drive
US8700841B2 (en) * 2010-04-19 2014-04-15 International Business Machines Corporation Sub-LUN input/output profiling for SSD devices
US9183134B2 (en) 2010-04-22 2015-11-10 Seagate Technology Llc Data segregation in a storage device
US8489855B2 (en) 2010-05-07 2013-07-16 Ocz Technology Group Inc. NAND flash-based solid state drive and method of operation
CN101930404B (zh) 2010-08-27 2012-11-21 威盛电子股份有限公司 存储装置及其操作方法
US20120059976A1 (en) 2010-09-07 2012-03-08 Daniel L. Rosenband Storage array controller for solid-state storage devices
CN102023818A (zh) 2010-12-06 2011-04-20 成都市华为赛门铁克科技有限公司 一种存储设备容量调整方法、装置及存储设备
JP2014507717A (ja) 2011-01-18 2014-03-27 エルエスアイ コーポレーション より高いレベルの冗長な情報の計算
KR101467941B1 (ko) 2011-04-26 2014-12-02 엘에스아이 코포레이션 비휘발성 저장부에 대한 가변 오버­프로비저닝
US9514838B2 (en) * 2011-05-31 2016-12-06 Micron Technology, Inc. Apparatus including memory system controllers and related methods for memory management using block tables
EP2742429A4 (en) 2011-08-09 2015-03-25 Lsi Corp I / O DEVICE AND INTERACTION WITH DATA PROCESSING HOST
US9021319B2 (en) * 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Non-volatile memory management system with load leveling and method of operation thereof
CN103392207B (zh) 2011-10-05 2017-08-04 希捷科技有限公司 非易失性存储的自身日志记录和层级一致性
JP5583227B1 (ja) * 2012-09-21 2014-09-03 株式会社東芝 物理ブロック間でデータをコピーするディスクアレイ装置、ディスクアレイコントローラ及び方法
US20140122774A1 (en) * 2012-10-31 2014-05-01 Hong Kong Applied Science and Technology Research Institute Company Limited Method for Managing Data of Solid State Storage with Data Attributes
JP2014098978A (ja) * 2012-11-13 2014-05-29 Sony Corp メモリ制御装置、メモリシステム、情報処理システムおよびメモリ制御方法
US9395924B2 (en) 2013-01-22 2016-07-19 Seagate Technology Llc Management of and region selection for writes to non-volatile memory
US9292228B2 (en) * 2013-02-06 2016-03-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Selective raid protection for cache memory
US8990614B2 (en) * 2013-03-14 2015-03-24 Apple Inc. Performance of a system having non-volatile memory
CN104794063A (zh) * 2014-01-17 2015-07-22 光宝科技股份有限公司 一种具备电阻式存储器的固态储存装置的控制方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI601008B (zh) * 2014-12-10 2017-10-01 英特爾公司 跨多重儲存裝置進行基元寫入操作之技術
TWI635746B (zh) * 2016-05-10 2018-09-11 晨星半導體股份有限公司 扭曲畫面校正裝置及方法
TWI808384B (zh) * 2021-02-23 2023-07-11 慧榮科技股份有限公司 儲存裝置、快閃記憶體控制器及其控制方法
TWI821152B (zh) * 2021-02-23 2023-11-01 慧榮科技股份有限公司 儲存裝置、快閃記憶體控制器及其控制方法
TWI814590B (zh) * 2022-09-26 2023-09-01 慧榮科技股份有限公司 資料處理方法及對應之資料儲存裝置

Also Published As

Publication number Publication date
JP2014167790A (ja) 2014-09-11
EP2757479A1 (en) 2014-07-23
JP6387231B2 (ja) 2018-09-05
US9395924B2 (en) 2016-07-19
CN103942010A (zh) 2014-07-23
CN103942010B (zh) 2019-05-10
KR102155191B1 (ko) 2020-09-11
US20140208007A1 (en) 2014-07-24
KR20140094468A (ko) 2014-07-30
TWI537724B (zh) 2016-06-11

Similar Documents

Publication Publication Date Title
TWI537724B (zh) 用於寫入非揮發性記憶體之管理及區域選擇
US11449252B2 (en) Method of writing and reading data in an NVM using Lpage identification headers
US9886383B2 (en) Self-journaling and hierarchical consistency for non-volatile storage
US9851910B2 (en) Scalable data structures for control and management of non-volatile storage
TWI473011B (zh) 用於非揮發性儲存之可變超量供給
US9183140B2 (en) Higher-level redundancy information computation
KR101912596B1 (ko) 리던던트 어레이들을 통한 비휘발성 메모리 프로그램 실패 복구
TWI612524B (zh) 控制一記憶體裝置之方法、用於耦合至一外部非揮發性記憶體之裝置及非暫時性電腦可讀媒體

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees