TWI588651B - 記憶體系統中至少半自主模組及其方法 - Google Patents

記憶體系統中至少半自主模組及其方法 Download PDF

Info

Publication number
TWI588651B
TWI588651B TW101103423A TW101103423A TWI588651B TW I588651 B TWI588651 B TW I588651B TW 101103423 A TW101103423 A TW 101103423A TW 101103423 A TW101103423 A TW 101103423A TW I588651 B TWI588651 B TW I588651B
Authority
TW
Taiwan
Prior art keywords
module
memory
function
memory system
data
Prior art date
Application number
TW101103423A
Other languages
English (en)
Other versions
TW201237623A (en
Inventor
斯蒂芬P 范阿肯
約翰L 西伯
Original Assignee
美光科技公司
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 美光科技公司 filed Critical 美光科技公司
Publication of TW201237623A publication Critical patent/TW201237623A/zh
Application granted granted Critical
Publication of TWI588651B publication Critical patent/TWI588651B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • 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/7206Reconfiguration of flash memory system
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

記憶體系統中至少半自主模組及其方法
本發明大體而言係關於使用非揮發性記憶體(諸如,固態磁碟機(「SSD」)及其他儲存裝置)之記憶體系統的領域,且更特定言之係關於用於記憶體系統中之至少半自主模組及相關聯方法,以及相關特徵。
先前技術固態磁碟機通常包括可與標準主機裝置介接之控制器以及複數個快閃記憶體裝置。該等快閃記憶體裝置一般各自呈記憶體晶粒之形式。該控制器與該等快閃記憶體裝置之間的連接通常係呈快閃導向介面之形式,其中每一記憶體裝置係個別地連接至快閃導向介面。該控制器可具有複數個快閃導向介面,其中此等介面中之每一者連接至複數個記憶體裝置。申請者認識到,關於此先前技術組態、特別關於較大容量固態磁碟機,存在數個缺點。舉例而言,該控制器必須控制大量個別記憶體裝置。作為另一實例,該控制器上所需的信號連接點之數目與磁碟機之容量成比例地增加。在再一實例中,該控制器對管理功能(例如,額外負荷功能,諸如磨損調平)負責,以使得該控制器與該等記憶體裝置之間的介面以關於此等功能的訊務為負擔。作為又一實例,該控制器對大量記憶體裝置之測試及監視為複雜任務。
關於區塊導向非揮發性記憶體,申請者亦認識到關於非揮發性記憶體在先前技術中之使用的相關問題。應瞭解, 關於存取區塊導向非揮發性記憶體的先前技術之盛行方法為將使用者資料加上伴隨的額外資訊準確地分配至實體頁上。對本論述而言,術語「區塊導向」係關於使用基於頁之記憶體,該記憶體係藉由使用一般具有等於頁長度之長度之使用者資料區塊來使用。如將進一步論述,關於區塊導向記憶體,一些頁可基於短於一個頁長度之使用者資料區塊而部分地未使用,但使用者資料區塊不長於頁長度。藉由非限制性實例,NAND快閃記憶體通常如此組態以成為此類型之區塊導向記憶體。區塊導向記憶體中的此類型之強制性分配由此產生所儲存資訊與包含每一實體頁之儲存胞的數目之間的準確對應且在每胞單一位元(SBC)記憶體及每胞多位元(MBC)記憶體兩者之產業內為慣例。
申請者進一步認識到,此方法在將使用者資料匹配至特定記憶體裝置中之頁單元時為強制性的。實體頁大小為記憶體之設計參數且不可改變。在實體頁中的儲存胞之數目與應用所需的每區塊之胞的數目之間失配的情況下將招致處罰。處罰可呈不足以滿足ECC要求之胞的形式,由此導致應用之不良可靠性;或處罰可呈儲存低效率之形式(若每一實體頁中存在多於所需數目個的胞)。因此,非揮發性記憶體裝置(例如,NAND快閃記憶體)之設計者受到嘗試在製造記憶體之前預測所需頁大小的挑戰。幾乎不可避免地,給定頁大小將不會特別適合於記憶體之使用所針對的應用之至少某一子集。
相關技術之前述實例及與其相關的限制意欲為說明性而 非排他性的。在閱讀說明書且研究圖式後,相關技術之其他限制對熟習此項技術者而言將變得顯而易見。
在圖式之參考圖中說明例示性實施例。預期本文中所揭示之實施例及圖將為說明性而非限制性的。
呈現以下描述以使一般熟習此項技術者能夠製造並使用本發明,且在專利申請案及其要求之內容脈絡中提供以下描述。對所描述實施例之各種修改對熟習此項技術者而言將為易於顯而易見的,且本文中所教示之一般原理可應用於其他實施例。因此,本發明不欲限於所展示之實施例,而是應符合與本文中所描述之包括修改及等效物之原理及特徵相一致的最廣範疇,如所附申請專利範圍之範疇內所定義。請注意,該等圖式並未按比例繪製且本質上以被認為最好地說明所關注之特徵的方式為圖解的。描述性術語可為了增強閱讀者關於諸圖中所提供之各種視圖的理解而被採用,且絕不應預期為限制。
現將注意力集中在諸圖,其中遍及各種視圖,相似條目可指代相似組件。圖1為根據本發明之一實施例所製造的固態磁碟機(SSD)10之方塊圖,其形成總系統12之部分,其中該固態磁碟機與主機20介接。在圖2之實例實施例中,SSD 10之儲存容量係藉由總共20個模組提供,該等模組中之一些係藉由參考數字30指定。可使用任何合適數目個模組而保持在本文中之教示之範疇內。每一模組包括可為快閃記憶體之非揮發性記憶體(「NVM」)區段(例如, 數個NVM裝置,諸如數個NVM晶粒),但可使用任何合適之記憶體技術,諸如相變記憶體(「PCM」)及其他形式之可變電阻記憶體。應瞭解,圖1之模組配置支援「備用」模組之使用,(諸如)以防止總數個模組之某一部分之使用的損失。若SSD之總容量以一個太位元組(1 TB)為目標,則可見,十六個模組(其中每一者具有64十億位元組(64 GB)之容量)滿足此目標。因此,總共20個模組可提供5個模組之餘量,該5個模組可被視為備用模組。將數個NVM裝置包括於單一模組中可使在讀取操作及寫入操作期間直接連接至控制器之個別記憶體裝置的數目減少記憶體模組中之NVM晶粒之數目的因數。
如將見到,與模組之通信係經由模組介面提供。該模組介面可為點對點介面,且可針對系統中之每一模組提供該模組介面之獨立執行個體。此由於低模組接針計數而可為實際的。低接針計數可使許多模組介面埠能夠以ASIC形式在SSD控制器之習知墊環(pad-ring)約束內設置,且每一埠提供至一個模組之介面。模組與SSD控制器埠之點對點互連可實現特定模組介面之資源至SSD控制器與彼特定模組之間的異動之專用分配。當藉由主控制器與各別模組之間的模組介面所建立之互連為專用的時,主控制器與模組之間的異動無需與其他模組共用該介面之資源;此等異動可因此以每一模組介面之全頻寬執行。又,當連接係專用於一個模組時,可避免在介面連接至一個以上模組之情況下可能另外必要的仲裁及資源共用。此又可藉由考慮到就異 動之數目及經由介面所傳送之資料之量兩者而言增加之效能來改良系統效能。
仍參看圖1,控制器40係經由用於每一模組之模組介面42(其中若干者係使用參考數字指示)與模組30中之每一模組介接。該控制器又經由合適之高階主機介面44介接至主機20,該主機介面可為(例如)用於將記憶體系統附接至電腦之各種介面中的任一者。藉由實例,主機介面44可為用於一些系統12之SATA(串列ATA)介面。其他系統12可使用SAS(串列附接SCSI)介面之使用,或該介面可(諸如)使用PCI Express而後平面導向(back plane oriented)。就此而言,可鑒於特定最終用途而選擇合適形式之主機介面。
可包括快取記憶體46(諸如)以將效能增強提供給總SSD系統10。快取記憶體可藉由附接任何合適之記憶體裝置(諸如,SDRAM、PCM、快速快閃(例如,SBC)及其類似者)來實現。SSD控制器40可具有用於與一或多個快取記憶體裝置通信之專用介面。取決於為特定SSD設計所選擇之快取技術的本質,此介面可專用於快取記憶體。若快取記憶體裝置46為模組,則快取記憶體介面可與NVM模組介面相同或類似。
當與用於先前技術SSD之控制器比較時,可將控制器40看作簡化的。因為系統10中之模組可承擔將在下文描述之詳細管理功能,所以SSD控制器可解除通常藉由先前技術控制器所執行之許多功能的負擔。所卸下之功能之非限制性實例可至少包括(1)磨損調平、(2)廢棄項目收集、(3)邏 輯至實體位址轉譯、(4)實體頁至邏輯區塊抽象化、(5)ECC功能,及(6)記憶體調節及信號處理。因為可減少或移除在先前技術SSD控制器中可能需要大量CPU及其他支援活動的功能中之許多功能,諸如上文所列出之彼等功能,所以SSD控制器之頻寬可相對更多地專用於在主機與所連接之模組之間傳送使用者資料。
結合圖1轉至圖2,圖2為說明控制器40之一實施例的方塊圖。該控制器包括複數個控制器模組埠100,其中每一者提供模組介面42以與複數個儲存模組30(圖1)通信。每一控制器模組埠100提供自一個控制器模組埠至下一個控制器模組埠之係相同的相關聯介面信號連接之一集合。藉由非限制性實例,控制器40可經由二十個個別模組介面42與二十個模組30通信,如圖1中所展示。SSD控制器中的控制器模組埠之數目可變化。實施於給定SSD控制器中的控制器模組埠之特定數目可取決於涉及SSD控制器自身之設計考慮以及SSD系統。此等設計考慮可涉及SSD之所要儲存容量、所要效能及所要成本。提供控制器模組介面之益處而不管實施於一特定實施例之SSD控制器中的控制器模組埠之數目。
繼續描述主控制器40,資料路徑及控制邏輯區段120經組態以使用雙向資料路徑(諸如,匯流排連接122)執行每一作用中控制器模組埠100與SSD控制器之剩餘部分之間的資料傳送,該等雙向資料路徑中之若干者係藉由參考數字來指示。控制匯流排124可在微處理器130(其使用儲存於 記憶體132中之程式碼操作)與含於構成SSD控制器之邏輯區塊中的暫存器134之間提供資料路徑。每一控制器模組埠連接至匯流排124以促進藉由微處理器130所進行之控制。因此,微處理器130可在每一模組埠中讀取及寫入暫存器136,且在如此做時可管理(例如,設置、開始、停止及監視)每一控制器模組埠之操作。資料緩衝器區段140可提供記憶體以用於將流過SSD控制器之資料的區塊分級為注定經由主機介面埠144傳送至主機的讀取資料抑或注定經由控制器模組埠100中之一者傳送至模組的寫入資料。雙向資料路徑146(其中若干者係使用參考數字指示)可提供於資料路徑及控制區段120與資料緩衝器區段140之間。應瞭解,並不要求雙向資料路徑146之數目與控制器模組埠100之數目之間的一對一對應。就此而言,可存在足夠數目個離散雙向資料路徑146以便確保足夠的總資料頻寬。亦即,雙向資料路徑146之總數可小於控制器模組埠之總數、等於模組埠之總數或大於控制器模組埠之總數。
記憶體132可藉由微處理器130存取以便執行管理SSD控制器之功能,諸如管理可能在SSD控制器之正常操作期間出現的錯誤及異常,包括由於自該等模組中之一或多者所接收之資料中的錯誤、由於SSD控制器中之異常條件(諸如,資源衝突、緩衝記憶體錯誤及其類似者)及由於在其他正常操作之過程期間出現之非預期問題而出現的彼等錯誤及異常。
高速資料路徑(諸如,匯流排150)可用以在緩衝區段140 與主機介面埠144之間傳送資料。此匯流排可具有支援關於(例如)下列各者之SSD系統要求之任何合適設計:經由主機介面之聚集傳送速率;經由主機介面所發出的命令與對彼等命令之回應之間的潛時;及支援多個命令之同時執行的並行處理。主機介面埠144係經由控制匯流排124與微處理器130通信,以使得該微處理器可管理(例如,控制及/或監視)主機介面44。儘管圖2中僅描繪單一主機介面44,但一個以上主機介面可存在於給定SSD控制器實施例中。對於具有多個主機介面之實施例,主機介面之每一執行個體可為相同類型之介面(如具有多個SAS埠之情況),或不同執行個體可為不同類型(諸如,SAS、SATA及PCI Express之某一組合)。
主機至SSD控制器介面44可藉由主機介面埠144提供。此埠144包括經組態以執行主機介面定義所要求之所有操作的信號連接及/或電路。若SAS或SATA介面係藉由主機介面埠144提供,則實體連接可由組織為兩個差分對的最少四個信號連接組成。在其他實施例中,(例如)在使用SAS及使用次級介面信號連接之例子中,可存在額外差分信號對。對於SAS之情況,可使用一個以上主機埠:在此實施例中,可存在實體連接器之兩個集合而非一個集合。
現將注意力集中在圖3,其為說明根據本發明之一實施例所製造之模組30(亦參見圖1)的方塊圖。該模組可包括複數個記憶體裝置170。記憶體裝置之總數可自一變化至八或更大,且記憶體裝置可基於任何適當技術。在一些實施 例中,記憶體技術為NAND快閃記憶體。組成模組之總記憶體的裝置可為標準可購得部件或可經定製以供在模組中使用之裝置。數個記憶體裝置170可附接至媒體埠176,(諸如)以增加所附接記憶體裝置之同時操作及/或增加SSD中之資料輸送量。如在圖3中所見,在一些實施例中,每一媒體埠176可將介面提供給記憶體裝置之群組。
仍參看圖3,每一媒體埠176提供可用以與複數個記憶體裝置通信之記憶體裝置介面180。此外,每一模組30可包括多個媒體埠176。在一些實施例中,媒體埠之數目為二或四。每一媒體埠176可提供用於與標準NAND快閃記憶體裝置通信之工業標準介面,諸如ONFI(開放式NAND快閃介面),或每一媒體埠可提供預期用於與經定製之記憶體裝置通信的定製介面。如上文所提,一或多個記憶體裝置170可經由每一記憶體裝置介面180通信。在一些實施例中,數目可自一變至四。此外,不存在相同數目個記憶體裝置應連接至每一媒體埠之要求。此外,在一些例子中,特定媒體埠可能不具有連接至其之任何記憶體裝置。此情形可(例如)在特定模組配置未使用所有可用之媒體埠時出現。
資料路徑及控制區段190形成模組30之部分且可經組態以指引至及自媒體埠176之資料訊務,其方式為結合媒體埠自身使用各種系統資源來管理(例如,協調)至及自該多個媒體埠的資料訊務。在每一媒體埠176與該模組之剩餘部分之間的資料流中可支援多個資料路徑。解碼器讀取資 料路徑200包括:至解碼器202之資料路徑;至資料緩衝器區段210之直接資料路徑204;至讀取邏輯212之資料路徑;及至少流過資料路徑及控制單元190的自一個媒體埠(在讀取模式中)至另一媒體埠(在寫入模式中)之資料路徑。寫入資料路徑可包括:自編碼器220之資料路徑;自資料緩衝器區段210之直接資料路徑230;及自寫入邏輯222之資料路徑。請注意,可在此等各種資料路徑上發生之大部分(若非全部)資料流可與所有其他資料流同時保持(sustain)。可藉以維持標的並行的方式中之一些係描述如下:
a.使用一個媒體埠176來執行至其所附接之記憶體裝置170中之一者的第一寫入功能。該第一寫入功能所使用之資料路徑為該模組中之可用寫入資料路徑中的一者。同時,使用另一媒體埠176來執行至其所附接之記憶體裝置170中之一者的第二寫入功能。該第二寫入功能中所使用之資料路徑可為尚未藉由該第一寫入功能使用之剩餘寫入資料路徑中的任一者。因為兩個媒體埠正在執行同時寫入功能,所以接收寫入模式資料之兩個記憶體裝置為相異的。請注意,此情形在單一記憶體裝置為來自兩個媒體埠之同時命令之目標的情況下係不可能的,此係因為每一記憶體裝置附接至僅一個媒體埠。
b.使用第一媒體埠176來執行至其所附接之記憶體裝置170中之一者的寫入功能。該寫入功能所使用之資料路徑為該模組中之可用寫入資料路徑中的一者。同時,使用第 二媒體埠176來執行自其所附接之記憶體裝置中之一者的讀取功能。讀取資料路徑可為該第二媒體埠可用之任何讀取資料路徑。
c.可使用單一媒體埠176來同時執行一個以上命令。此可作為附接至同一媒體埠176之兩個或兩個以上記憶體裝置中之每一者上的作用中命令或作為附接至同一媒體埠176之單一記憶體裝置上的多個命令而發生。在任一情形中,命令之並行處理需要藉由特定媒體埠176所提供之單一媒體介面192及模組之資料路徑及控制區段190之上的同時資料流。資料流之此並行處理與上文在(a)及(b)中所描述之情況的不同之處在於,存在藉由如下事實所強加之臨時約束:在時間上的任何單一瞬間,僅一個資料值可存在於特定媒體埠介面192上。為了保持多個資料流,特定媒體埠介面192可操作,以使得該介面在時間上共用,使得允許每一作用中命令在該介面必須屈服於其他作用中命令中之一者之前在有限量之時間內傳送資料。資料通信技術中之指代此概念的通常所使用之術語為一般熟習此項技術者將熟悉的「時域多工」。
d.可使用多個媒體埠176來合作地執行單一讀取或寫入命令,在單一資料單元(例如,區塊)經分割且跨越一個以上記憶體裝置被寫入時係如此。在本發明之內容脈絡中,資料可以各種方式分割:一個可能分割涉及藉由交錯而將區塊分成兩個或兩個以上分割區。交錯可沿著位元或位元組邊界或藉由使用較大之單元(諸如,字組、雙字組、磁 區(sector)及其類似者)執行。交錯可在編碼之前抑或之後對寫入操作執行。交錯步驟是在編碼之前抑或在編碼之後出現判定用於解碼器之對應次序。若交錯係在編碼之前執行,則為每一分割區執行單獨編碼步驟,此可意謂需要與分割區一樣多的編碼器來支援該功能。用於跨越多個記憶體裝置寫入/讀取單一區塊之交錯功能的一個優點在於,該交錯功能引起達成比藉由非交錯方法可能達成之資料輸送量高得多的資料輸送量。
模組30包括一或多個解碼器202。作為資料路徑資源,在本實施例中,每一解碼器202一次可支援(例如,資料之區塊或資料之分割區之)僅一次傳送,以使得不同傳送之多個同時解碼可在多個解碼器設置在(諸如)圖3所說明之模組實施例中時發生。多個解碼器之存在提供真正地同時解碼兩次不同傳送之性能。
解碼器之組態可根據使用記憶體裝置之方式而變化,且因此,存在可存在於模組中之多個變化。作為一實例,若特定模組之記憶體裝置係基於快閃技術,則可使用不同類型之快閃記憶體。此外,在可用快閃之類型內,針對每一快閃類型可存在一或多種使用模式。舉例而言,若選擇可購得之快閃裝置,則記憶體裝置(或記憶體裝置之一部分)可以每胞單一位元(SBC)模式或每胞多個位元(MBC)模式使用。在一實施例中,可寫入以代數錯誤校正碼(「代數ECC」)編碼之資料,而不管所使用之模式。因此,用於此情況之適當解碼器為解碼已施加之特定程式碼且校正錯誤 直至特定程式碼所允許之程度的解碼器。作為另一情況,藉由模組用於SBC或MBC記憶體之特定代數程式碼可進一步取決於SBC或MBC記憶體是否係以對應於記憶體裝置之頁結構的單元直接存取或模組是否代表主機執行自主機之觀點(以及管理責任)移除頁層級細節的抽象化服務。任一情況可涉及不同解碼器實施例。
另一實例在於關於與讀取、寫入及抹除相關的記憶體裝置之內部功能提供可見性、存取及控制之記憶體裝置的使用。由此等記憶體裝置組成之模組可以大於以上文直接描述之實例為特點的標準記憶體的精度寫入及讀取。較大之精度不僅可提供資訊儲存之較大密度,而且可提供可用以有利於解碼功能的額外資訊。此額外資訊可以寫入至快閃記憶體及自快閃記憶體讀取之資料的精度之額外位元之形式存在且可被稱為「軟位元」,其為一般熟習資料通信技術者將熟悉的術語。此記憶體亦考慮到補償資料之讀取相關或寫入相關失真之功能,且因此提供用於組態(例如,調適及/或校正)讀取功能及寫入功能的性能以便提供較高之資料儲存密度(每胞更多位元)及較大之可靠性(在快閃記憶體中常常被表明為增加之程式化/抹除循環)中的一者或兩者。此等所描述性能又可能需要該(等)解碼器之不同組態。
鑒於此等實例,若用於模組之一實施例的一個準則為關於不同類型之記憶體裝置之使用提供靈活性,則該模組中之相應解碼配置可提供多模式功能。可預期之特定變化中 之一些包括:a)僅BCH(Bose Chaudhuri Hoquenghem,博斯-查德胡里-霍昆格姆)解碼,具有一或多個位元錯誤容量設定,b)僅RS(Reed Solomon,雷德-所羅門)解碼,具有一或多個符號錯誤容量設定,c)與合適形式之循序解碼(例如,迴旋)組合的BCH解碼,及d)與合適形式之循序解碼組合的RS解碼。
可經組態以提供一個以上解碼器功能之模組可以特定模式操作解碼器之特定執行個體。舉例而言,雙解碼器模組可支援兩個資料路徑上之真正解碼並行處理。藉由模組中之多個解碼器所提供之靈活性的部分產生自如下事實:在給定時間,藉由非限制性實例,一個解碼器可經組態為僅BCH解碼器,而另一解碼器可經組態為與雷德-所羅門解碼器組合的迴旋(維特比偵測器)解碼器。
關於圖3之編碼器220,上文直接之論述可至少大體上擴展至編碼器及編碼功能,此係由於該兩個功能直接類似。因此,關於記憶體使用、解碼器模式、靈活性及並行處理的上文直接之論述同等地應用於編碼情況。
可提供讀取邏輯212以作為模組作為儲存子系統之至少半自主性能的操作支援。針對校準及/或補償功能提供對記憶體裝置之內部操作之特定控制的記憶體裝置,藉由讀取邏輯212所執行之功能可包括(藉由實例)結合校準或補償所使用之資料處理,諸如2010年9月23日申請之題為 「MEMORY QUALITY MONITOR BASED COMPENSATION METHOD AND APPARATUS」的共同擁有之同在申請中的美國專利申請案第12/888,585號(下文中,'585申請案)中所描述的平均值及陣列處理器功能。詳言之,補償可涉及使用與記憶體裝置之實體配置相關聯之參數的信號處理,而校準可涉及可在直接軟體控制下作為硬體功能執行的數個量度收集分析功能。
關於寫入邏輯222,關於讀取邏輯212之論述及上文直接論述之讀取功能亦可至少大體上擴展至寫入邏輯及寫入功能。在一些情況下,可存在特定原因或優點以執行與寫入模式(而非讀取模式)中之補償或調適相關聯的操作。關於此調適,諸如信號對雜訊比(「SNR」)相關資料的資訊可經收集以作為後續參數值之基礎。在位元密度組態之例子中且藉由非限制性實例,模組可關於記憶體之特定實體區利用SNR統計資料,當重新分配彼區時,該區在組態彼區之位元密度時藉由廢棄項目收集功能回收。此可為寫入功能與讀取功能之間的主要差異。模組可包括讀取功能及寫入功能之任何合適組合。因此,在給定模組中,可存在可組態寫入功能而無可組態讀取功能;或可存在可組態讀取功能而無可組態寫入功能。在一些實施例中,可提供可組態讀取功能及可組態寫入功能兩者。
自資料緩衝器區段210至資料路徑及控制區段190之直接寫入資料路徑230可在必要時提供低潛時資料通信,以及用於不需要解碼功能或讀取功能之傳送的替代資料傳送路 徑。直接寫入路徑為寫入路徑,此係因為資料傳送為至媒體埠176中之一者及相關聯的記憶體裝置170。
直接讀取資料路徑204類似於直接寫入路徑230且自資料路徑及控制區段190延伸至資料緩衝器區段210,(諸如)以在必要時提供低潛時資料通信,以及用於不需要編碼功能或寫入功能之傳送的替代資料傳送路徑。直接讀取路徑為讀取路徑,此係因為資料傳送係來自媒體埠176中之一者及相關聯的記憶體裝置170。
資料緩衝器區段210連接至提供模組介面42(參見圖1及圖2)之一個執行個體的控制器埠240。資料緩衝器區段實施提供用於資料緩衝器與媒體埠之間以及資料緩衝器與模組介面之間的傳送之資料分級的資料緩衝器功能。此資料緩衝器功能可提供(例如)至及自緩衝器之傳送之間的速度匹配。舉例而言,任何快閃讀取命令可涉及記憶體裝置資料至模組介面之傳送以作為(1)起源於記憶體裝置170且終止於緩衝器210之離散傳送與(2)起源於緩衝器210且流過模組介面42之後續傳送之組合。相反地,寫入至記憶體裝置之任何功能可涉及(1)經由模組介面42進入且終止於資料緩衝器210之離散傳送與(2)起源於資料緩衝器210且終止於記憶體裝置170之後續傳送的組合。
應瞭解,資料緩衝器區段210可包括經組態以控制資料進出資料緩衝器之流動的DMA部分242。一般而言,DMA資源係由指派給每一可能資料路徑之開始位移、計數及排序功能組成。
繼續參看圖3,每一模組30包括嵌入式微處理器300,該微處理器自程式記憶體302操作,且該微處理器係經由微處理器匯流排連接至組成該模組之各種組件,該微處理器匯流排應理解為存在但為了說明清楚而未展示。詳言之,該微處理器可存取各種組件中之暫存器。儲存於程式記憶體302中之軟體可基於特定實施例而變化。一般熟習此項技術者將認識到,給定功能之硬體支援之程度可變化。因此,在執行管理功能時的軟體與硬體之間的合作可回應於下列各者之變化來組態:
a.記憶體裝置類型。
b.編碼及解碼功能(例如,演算法)。
c.補償功能(應用於讀取資料之補償及寫入資料之前的補償)。
d.用於快閃記憶體之區塊抹除功能。
e.模組介面支援(命令執行)功能。
f.自主磨損調平功能,其中模組執行磨損調平以作為與主控制器無關之自含功能。
g.半自主磨損調平功能,其中主控制器藉由經由模組介面將相關參數及命令提供給模組來控制磨損調平功能。
h.局域自主快閃轉譯層(FTL)實施。
i.指引式快閃轉譯層(藉由主機控制)實施,其中主控制器藉由經由模組介面將相關參數及命令提供給模組來控制快閃轉譯操作。
j.藉由主機所指引之實體記憶體存取。主機可藉由將 適當命令發出至主控制器來存取複數個模組中之實體記憶體,且主控制器可藉由將適當直接存取命令發出至附接至所選擇模組之記憶體裝置中的一者來回應此等命令。
k.藉由模組所指引之實體記憶體存取,具有至主機之邏輯區塊抽象化。
l.自主廢棄項目收集(通常應用於局域FTL)。
m.半自主廢棄項目收集,其中主控制器藉由將適當參數寫入至應用了此控制之模組來對附接至主控制器之模組中之一或多者中的廢棄項目收集功能施加控制。
n.支援指引式廢棄項目收集(諸如,內部區塊複製功能),其中主控制器藉由經由每一模組之模組介面將適當參數寫入至該複數個模組之至少某一子集來控制廢棄項目收集功能。
o.所附接之記憶體裝置之局域自測試
p.自主電力管理功能
應瞭解,前述清單係藉由實例而提供且不欲為完全包括或限制性的。因此,模組組態以任何合適組合支援模組操作之至少以上態樣的選擇及重新組態。
仍參看圖3,模組30包括功能引擎320,功能引擎320可用以執行(例如,表示)經由CPU 300及程式記憶體302提供以作為資源之功能的任何合適組合。功能引擎320之實施例可執行(例如)上文所描述之各種管理功能中的一或多者。舉例而言,可在一實施例中提供磨損調平、FTL及廢棄項目收集以及可能所要及/或需要之其他功能。此外, 功能引擎可接收自控制器40及/或自組態功能之模組自身所提供的參數集合。亦即,模組之管理功能基於自控制器抑或模組自身所提供之參數而至少在某一程度上為可組態的。舉例而言,控制器指引管理功能之程度可基於可藉由控制器設定之參數來組態。然而,一旦建立參數,則管理功能在一實施例中可自主地操作。將在下文中之適當點處詳細地論述參數優先權。然而,在任何情況下,功能引擎經組態以執行所關注之(多個)功能,如將進一步描述。主控制器40可經由該控制器提供給功能引擎之共用參數區段322的組態參數集合判定關於給定功能之操作的特性。該共用參數區段可(例如)藉由CPU 300回應於控制器40(圖2)且回應於模組30之模組介面42(圖3)填充。此等組態參數判定功能引擎將執行(例如,初始化及/或操作)每一功能(諸如,磨損調平、廢棄項目收集及位元密度組態)的方式。每一功能之藉由該等參數所定義之組態可定義將藉由模組及主控制器兩者執行的活動之要求。舉例而言,至少半自主磨損調平可在原始組態之後藉由具有來自主控制器之最少相關通信的模組執行。另一方面,指引式磨損調平可能需要來自控制器之連續或週期性組態,其伴隨著控制器經由來自模組之某一形式之報告對磨損調平活動的監視。此報告可藉由模組(例如)經由更新經由仍將描述之報告區段所提供之輸出參數值來實現。因此,每一模組之功能引擎可經組態以至少部分地基於一或多個模組輸入參數執行僅彼模組之非揮發性記憶體裝置的管理功能。主控制器提供 與主機裝置之數位資料通信且提供與該複數個模組中之每一模組的模組數位資料通信,以使得至及自該等模組中之一者的任何資料流動流過控制器。此外,控制器可經組態以將輸入參數提供給每一模組以組態所關注之每一功能的至少半自主執行。
自模組介面42至資料緩衝器210之輸入資料路徑330將資料及控制資訊自模組介面傳送至緩衝器區段中。此資料路徑可具有相對較高之速度(例如,相對於在緩衝器區段210與資料路徑及控制區段190之間延伸的至少某些其他資料路徑),此係因為傳入路徑330可服務自資料緩衝器區段210至資料路徑及控制區段190之複數個資料路徑。
輸出資料路徑340自資料緩衝器區段210延伸至控制器埠240以用於將資料及控制資訊自緩衝器區段傳送至模組介面,且經由藉由控制器埠240所提供之模組介面42形成自模組30至SSD控制器40之輸出資料路徑的部分。資料路徑340可能能夠具有高於至或自緩衝器區段210之其他資料路徑的頻寬,此係因為如同資料路徑330,複數個其他資料路徑可藉由輸出資料路徑340服務。
關於模組介面42之一實施例的細節係藉由圖4之方塊圖說明,其中介面連接在圖2之控制器40的模組埠100與模組30之控制器埠240之間延伸,如圖3中所展示。控制器埠及模組埠在每一模組30與組成每一模組介面42之控制器40之間提供命令及資料連接。資料傳輸路徑400提供用於將命令、資料、狀態及其他資訊自控制器傳輸至模組之通信路 徑。當然,此等條目可起源於主機裝置20(圖1)。在一實施例中,資料傳輸路徑可藉由差分信號傳輸而建立,因此兩個實體信號可組成資料傳輸路徑。資料傳輸路徑可視情況以雙向信號對之形式體現,以使得相反方向上之操作可充當對仍將描述之資料接收路徑之資料傳送性能的效能增強。
資料接收路徑402提供用於將資料、狀態及其他資訊自模組30傳輸至控制器40之通信路徑。如同資料傳輸路徑400,在一實施例中,路徑402可藉由差分信號傳輸而建立,因此兩個實體信號組成資料接收路徑。在一實施例中,資料接收路徑可實施為雙向信號對,且當在相反方向上操作時,該資料接收路徑可充當對資料傳輸路徑之資料傳送性能的效能增強。
信號之差分對可經由模組介面42提供時脈410。指引至時脈對上之時脈信號可在主機中產生且亦可藉由主機用於同步資料傳輸及接收。經由模組介面所提供之差分時脈信號可用以同步模組中之資料傳輸及接收。藉由模組所接收之時脈與藉由主機產生且使用之時脈直接相關。由於傳輸延遲及其他電路效應,藉由模組所接收之時脈信號可相對於藉由主機所使用之信號異相,因此主機及模組兩者中之取樣電路可藉由可以動態方式組態(例如,調適)以便達成時脈信號與資料信號之間的最佳對準之時脈對準電路(諸如,DLL或PLL)輔助。
使用所描述介面,SSD控制器可能需要顯著較少之接 針。儘管每一記憶體模組可支援8個快閃晶片,但模組至SSD介面之連接可經由一個接針計數減少之模組介面來執行。以此方式,與先前技術實施(其中每一記憶體裝置直接連接至控制器)相比,控制系統中之所有快閃裝置所需的接針之數目可減少。圖1及圖4中所展示之實施例可藉由限制控制器至模組連接所需之接針之數目來實現較少接針。亦即,當與先前技術介面(諸如,ONFI)相比時,圖4之接針計數減少之模組介面藉由幾個接針提供至控制器之連接性。以此方式,SSD控制器可藉由控制器上之幾個接針連接至許多模組且控制該等模組(當與諸如ONFI之替代例相比時),同時達成對於SSD應用為適當之異動率及資料輸送量率。本文中所描述之模組介面提供低層級快閃功能自較高層級SSD功能之抽象化。因此,控制器可藉由經組態具有僅(例如)命令執行之高層級態樣而卸下負擔。低層級功能(諸如,與實體快閃特性有關之功能)可在模組層級處繼續。應瞭解,儘管將至少半自主功能性用於管理記憶體裝置,但SSD效能可藉由增加所附接之記憶體裝置的數目來增強。在單一硬體組態(預先組態之模組與特定SSD控制器之特定組合)內,可組態SSD,其中模組為至少半自主實體,其中控制器之作用在於存取模組中之以邏輯方式定址的資料單元。在此系統中,控制器關於管理之作用可主要為管理藉由每一模組所提供之儲存,如模組單元至單一較大磁碟區中之聚集。
模組介面可包括命令及協定層級處之特徵及性能,該等 特徵及性能將其預期應用定製至SSD使用。此等特徵及性能可包括支援低潛時讀取及寫入功能、支援高資料輸送量、支援命令佇列作業及同時操作命令、支援包含多區塊傳送操作的資料區塊無序傳送、支援區塊抽象化之不同層級處的命令及簡單的更進階之高效能協定,其中每一者又將在下文中立即描述。
支援低潛時讀取及寫入功能
在模組30中藉由支援可為對自控制器40所接收之命令的最快可能回應之物來支援低潛時。此可藉由使用實施例之模組介面42採取至少兩種方法來實現:首先,經由支援同時執行命令,且其次,經由選擇短的資料封包。經由第一方法,命令可自控制器40發出至模組30且立即對該模組起作用,即使一或多個其他命令可能已正在執行亦如此。此允許該命令立即存取目標記憶體裝置(若該記憶體裝置尚未藉由至同一記憶體裝置之命令存取),且使資料能夠比可能之情況更快地開始在控制器40與模組中之記憶體裝置170之間傳送,在當前作用中命令需要在另一命令開始執行之前完成時係如此。對命令佇列作業及對同時命令執行之介面支援可實現此同時執行性能。經由第二方法,讀取或寫入命令之資料傳送階段與使用較長之封包相比可更快地開始且因此更快地完成。第二方法與使用較長(而非較短)之封包的方法之間的差異在於,較短之封包允許較低之潛時,此係由於短封包相對於長封包的較短傳送時間;因此,以低潛時為基礎為所有同時執行傳送分配緩衝器頻 寬。與必須可能等待較長時間(若使用較長之資料封包)相比,給定命令可呈現有較短之等待時間以用於存取具有短資料封包的介面。資料封包長度可為可組態的。然而,一特定實施例之資料封包長度可(例如)藉由在區段分配時間所使用的根據封包長度對存取潛時優先排序的參數規定。因此,最大封包長度可藉由控制器40針對給定模組組態判定。又,藉由第二方法,可使用關於圖4之資料傳輸路徑400及資料接收路徑402所論述之方向切換功能。當被選擇時,方向切換功能可實現所有封包大小之較快傳輸,藉此增加輸送量及潛時效能兩者。
支援高資料輸送量
若針對高輸送量需要較大之封包,則高輸送量及低潛時有時為衝突目的。儘管短封包大小增強潛時效能,但短封包大小亦傾向於使輸送量效能降級,此係因為與較大之封包相比,介面之固有額外負荷對於小資料封包而言成比例較大。亦即,短封包達成低於長封包之傳送效率,因此在對於介面之需求接近介面之頻寬容量時,針對長封包而非針對短封包達成更好的資料輸送量。作為組態選項,選擇封包大小之能力亦為支援高資料輸送量之態樣以便解決高輸送量與低潛時之競爭利益。
支援命令佇列作業及同時操作命令
在一實施例中,命令佇列作業功能可存在於模組介面42中以主要作為硬體功能。執行之每一命令必須支援命令之執行中將涉及的所有異動,包括命令傳送、資料傳送及交 握異動之狀態。此等異動又可在進行中使用諸如DMA資源之設施。此等硬體資源可在模組介面定義中提供至實現命令佇列作業功能所需的程度。用於命令佇列作業之額外功能可為產生並檢查佇列標籤。該佇列標籤為短的二進位值,其表示用以定址命令所需之前述硬體資源的整數。佇列標籤係與自主機發送至裝置之每一新命令碼一起傳輸,且保持在作用中,只要該命令繼續執行即可。在命令終止之後,該佇列標籤不再在作用中,且因此在後續命令被發出時變得可用於重新指派。
支援包含多區塊傳送操作的資料區塊無序傳送
模組介面協定可支援控制器與模組之間的異動模型,該異動模型使區塊之無序傳輸能夠在長的多區塊傳送內發生。該異動模型可提供:任何讀取或寫入命令包含一或多個「連接」。每一連接為虛擬構造,其分配用於較長傳送之一部分的定址及計數控制。因而,連接作為時間實體而存在,該時間實體存在以保持命令(通常為資料傳送)之某一部分且歸因於其存在之時間約束而必須終止。該時間約束存在以便保證介面可用於亦可為作用中之其他命令。該約束可為固定或可變的。讀取或寫入傳送可能僅需要單一連接或者讀取或寫入傳送可能需要許多連接。命令所需的連接之數目因而為讀取或寫入命令之以位元組為單位的總長度及時間約束之大小的函數。連接之數目之此判定可藉由在模組中執行的命令處置軟體進行。連接一次可建立一個,以使得在給定時間在給定命令內存在僅一個連接,或 給定命令可具有多個作用中連接,其中每一連接傳送命令之總傳送長度的一不同部分。(區塊之)無序傳送可(例如)藉由建立傳送一區塊或幾個區塊(該等區塊在藉由命令所傳送之區塊之整個範圍內可相對於其位移無序)的連接來支援。
每一連接可建立以作為總命令之執行的部分。連接僅存在足夠長時間以傳送其分派長度之資料,該資料可為區塊(如相對於命令所定義)或作為藉由命令碼中之計數欄位所定義的位元組之數目。連接在該定義長度之資料經傳送之後終止。
支援區塊抽象化之不同層級處的命令
控制器40可利用用於存取附接至模組30之記憶體裝置的不同方法。儘管可存在變化,但如下文中將立即描述,兩個實施例為盛行的。
在第一實施例中,控制器存取作為標準媒體的經由模組介面42附接至模組的記憶體裝置,其中該等記憶體裝置包括配置為階層之記憶體,其中頁處於階層之最低層級處且抹除區塊處於階層之較高層級處。讀取或寫入存取以特定頁為目標,其中頁具有固定量之資料且可包括通常用於ECC同位檢查的額外位元。另一類型之存取為抹除,其以抹除區塊為目標。在快閃記憶體中,抹除區塊為比頁大得多之結構。事實上,抹除區塊含有某一整數數目個頁,其數目可變化。典型值為每抹除區塊128頁。頁一般必須按單位寫入,且抹除一般必須對整個抹除區塊執行。頁可整 體地或部分地自記憶體裝置讀取,但部分頁讀取可能影響ECC編碼及解碼功能。一些ECC編碼功能可編碼整個頁且由此要求按次序讀取整個頁以用於將執行之ECC解碼。可實施其他ECC編碼功能,使得以頁對資料之分段執行編碼及解碼:在此情況下,部分頁讀取可按次序讀取此等分段中之一或多者以用於將執行之ECC解碼。不管將執行完整頁或部分頁讀取抑或將執行完整頁寫入,使用實體位址執行實體頁之定址。實體位址之使用要求命令之發出者(在此例子中,控制器40)知曉附接至目標模組之每一記憶體裝置中之頁的實體配置。
藉由模組中之編碼、解碼及資料路徑硬體來支援第一實施例。定址、讀取、寫入以及ECC編碼及解碼可全部以迄今為止尚未見到之方式在模組中支援以作為可選擇組態。
第二實施例為記憶體裝置係作為包含邏輯磁區或邏輯區塊之邏輯單元定址及存取的實施例,該等邏輯磁區或邏輯區塊具有邏輯(而非實體)位址。在此方法中,資料長度不受頁之實體長度約束,因此模組可管理實體頁及抹除區塊,以使得邏輯結構映射至實體結構上,藉此控制器僅需要將邏輯位址添加至命令以便傳送所要資料。模組中的支援此邏輯形式之存取的功能(有時被稱為區塊抽象化)包括編碼器及解碼器組態之各種態樣(如關於圖3所論述)。此支援之其他態樣(亦關於圖3所論述)包括與補償及校準相關之資料路徑配置,及雜項讀取及寫入功能。軟體特徵及功能為此支援之組成部分,此係由於軟體提供區塊抽象化性能 所涉及或相關之功能的支援。此等功能中的幾個功能為局域快閃轉譯層(FTL)、對抹除操作之控制(例如,廢棄項目收集)、磨損調平、位元密度組態(例如,編碼器/解碼器組態),及其類似者。關於區塊抽象化之再其他細節將關於仍將描述之圖5呈現。
簡單但高效能之協定
藉由僅實施最基本之功能,模組介面能夠以比另外可能之情況低的命令額外負荷操作。因為介面僅採用點對點連接之形式,所以協定被解除多裝置支援之負擔。無需為了使主機起始、執行及監視與裝置之異動而產生、記錄或使用裝置位址。類似地,藉由模組介面所實施之點對點實體連接為專用的而非以動態方式建立的(相異於上文作為命令執行之部分而論述的有限時間邏輯/虛擬連接)。每一主機/裝置連接經由其自己之模組介面的組態係在製造時間建立,因此主機無需在開機時間組態其裝置。
另外,該介面支援真實並行處理(同時之獨立傳送)及時域多工並行處理兩者。真實並行處理在一或多個讀取命令及一或多個寫入命令同時執行時發生。介面並行處理在讀取命令及寫入命令兩者之資料傳送階段一起發生時發生,以使得模組介面(圖7)之資料接收路徑402在資料傳輸路徑400將資料自控制器40積極地傳送至模組30的同時將資料自模組30積極地傳送至控制器40。請注意,此類型之並行處理僅針對組態或針對命令發生,其中上文所論述之方向切換功能未參與。
可藉由模組介面頻繁地達成分時多工形式之並行處理。此(例如)在一或多個作用中命令具有經由模組介面使用資料封包執行資料階段異動之已建立連接時發生。即使可建立多個作用中連接,仍可在任何瞬間沿著單一資料傳輸或資料接收信號對傳輸至多一個封包。時域並行處理發生,此係因為作用中連接以交替型式傳送資料封包,其中一個連接在一個瞬間傳送一資料封包且另一連接在另一瞬間傳送一資料封包。以此方式,多個命令可正在同時傳送資料封包,但藉由共用對實體傳送連接之存取來進行此。舉例而言,如圖4中所見,標記為P1、P2及P3之封包係以串列方式跨越資料接收路徑402傳送,其中每一封包形成總資料傳送之一部分不同。亦可跨越資料傳輸路徑400支援相似傳送。在一實施例中,此等封包傳送在資料傳輸路徑及資料接收路徑上可為同時的。
SSD可經組態以使得控制器為不同模組提供不同量之管理監督。此實施例可被稱為對模組之混合模式方法,其中該等模組的一個部分可按照執行功能(諸如,磨損調平、廢棄項目收集及位元密度組態)藉由與控制器之至少某一互動來管理,且該等模組之另一部分可關於此等功能的詳細管理自主地操作。
關於位元密度組態,每一模組可包括能夠進行高密度操作(例如,每胞大於2個位元)之記憶體裝置,且在一實施例中可藉由控制器組態而跨越包括於模組中之所有記憶體裝置以高密度模式操作抑或以低密度模式(例如,每胞2個位 元或更少)操作。在一些實施例中,模組可藉由控制器組態而以高密度模式(例如,每胞大於2個位元)操作一些記憶體裝置且以低密度模式(例如,每胞2個位元或更少)操作其他記憶體裝置。在模組包括能夠進行低密度操作(例如,每胞1或2個位元)之記憶體裝置的情況下,彼模組可藉由控制器組態而以與低密度操作一致之編碼及解碼組態操作。用於此選擇之組態參數可包括應用於每一ECC編碼及解碼單元之資料長度,及與每一ECC編碼及解碼單元包括在一起的同位位元之數目。此外,若低密度記憶體經組態為每胞一個位元抑或兩個位元,則模組可藉由控制器組態以使用所選擇低密度模式。
如上文所論述,至少半自主記憶體模組可以獨立方式執行各種功能。進一步考慮磨損調平之功能,應瞭解,每一記憶體模組可負責基於提供給模組之參數執行其自己的記憶體晶片集合內的磨損調平。分散式磨損調平控制移除使控制器監視並調整每一個別記憶體晶片上之磨損之負擔的大部分。
藉由非限制性實例,其他功能可藉由根據本發明之模組至少半自主地處置。舉例而言,每一記憶體模組可管理其自己的電力消耗。當記憶體模組不作用或負載輕時,該記憶體模組上之電力管理電路可經啟動而以每模組為基礎減少電力消耗。此產生不具有控制器必須監視並控制每一記憶體模組之電力狀態之額外負荷的分散式電力管理。
作為另一實例,每一記憶體模組可負責監視並再新其自 己的記憶體晶片集合內之資料。此移除使控制器監視每一記憶體晶片中之資料品質的負擔。
作為再一實例,每一記憶體模組可處置其自己之NVM晶片所需之所有錯誤校正。此分散式錯誤校正處理產生比在使控制器負責所有錯誤校正之情況下(如在習知SSD中)可達成之輸送量高得多的輸送量。因為錯誤校正處理可分散在SSD內,所以可應用的錯誤校正之量可比習知SSD中之量高得多,從而產生一些實施例之個別記憶體晶片內的較高資料密度。
歸因於本文中已揭露的記憶體模組之分散式處理能力,包括此等模組之SSD的輸送量可相比於藉由習知SSD架構所達成之輸送量增加許多倍。SSD控制器由於諸如錯誤校正、資料再新及低層級磨損調平之功能而無負擔(或至少使其負擔減少)。每一記憶體模組可歸因於能夠控制至多(例如)每記憶體模組至少8 NVM晶粒而處置高資料速率。高資料速率可由於自控制器之每一匯流排上可存在多個記憶體模組的事實而倍增。此又可由於若干匯流排可在控制器與記憶體模組之間並行地執行之事實而倍增。總結果為可達成現有SSD或硬碟之資料速率(輸送量)的許多倍之SSD。
至少由於如下理由,模組介面可實現比使用先前技術可能另外得到之效能高的效能:模組至控制器介面可被解除對攜載與現藉由每一模組以分散式方式至少半自主地執行(而非控制器之責任)之低層級功能相關之大量資料的需 要。因此,控制器能夠自由操作而無此等低層級功能之負擔,此又提供SSD控制器對高層級SSD功能的較簡單、更有效率之執行。處理工作之此分離的結果為更有效率之高效能SSD系統。
結合圖3參看圖5,圖5為藉由實例以圖式說明圖3的一個記憶體模組30之多個記憶體裝置的方塊圖,其中模組NVM記憶體係藉由參考數字500共同指代。在本實例中,模組NVM記憶體包括指定為NVM 1至NVM 8的8個記憶體裝置。應瞭解,使用8個記憶體裝置係藉由實例的且不欲作為限制,且其他模組可包括以不同方式組織的不同數目個記憶體裝置,而保持在本文中之教示之範疇內。因此,模組NVM記憶體500可藉由控制器40(圖2)組織以由某一數目個區段組成。控制器可根據各種準則中之任一者將該多個記憶體裝置分割成多個區段,如下文將描述。區段可以高靈活之方式分配在該8個記憶體裝置當中。起初,應瞭解,一個模組至下一個模組之記憶體之區段分配可按照實體區及位元密度兩者而完全不同且獨立,即使兩個模組均包括相同特性類型之NVM亦如此。作為第一實例,第一記憶體區段502僅包括記憶體裝置NVM1。作為第二實例,第二記憶體區段504包括記憶體裝置NVM2及NVM4。作為第三實例,第三記憶體區段506包括記憶體裝置NVM3之一部分及整個記憶體裝置NVM5。作為第四實例,第四記憶體區段508包括記憶體裝置NVM8之一部分。對此等實例而言,可假設展示為在區段外部的記憶體裝置部分未經分 配。因此,任何一個區段可以任何所要組合包括個別記憶體裝置之一部分及/或整個一或多個記憶體裝置。在使用NAND快閃記憶體裝置之實施例中,區段之大小的下限可為可儲存於單一抹除區塊中之資料的範圍(extent)。因此,組成模組之記憶體裝置可經分割以為了基於參數(諸如,儲存容量、儲存持久性、程式化/抹除循環、資料輸送量或其某一組合)最佳化可在記憶體裝置之給定集合中得到的儲存空間。記憶體裝置之分割可為考慮如在記憶體裝置之有用壽命內管理該等記憶體裝置所需的記憶體之特定實體部分之分配、解除分配及重新分配的動態性能。使用區段可實現(例如)記憶體裝置之基於根據實體範圍之先天特性的記憶體之實體特性或類型以及記憶體之磨損歷史的最佳使用。
轉至圖5,應瞭解,區塊抽象化一般涉及以橋接跨越頁邊界之方式寫入及讀取一個以上頁且可被稱為頁環繞(page wrapping)。就此而言且藉由非限制性實例,NVM1經說明為含有實體鄰近頁510a至510d。若讀取或寫入操作包括頁510a之有陰影線之第二半部分以及頁510b之第一有陰影線半部分,則該讀取或寫入操作將涉及讀取或寫入整個頁510a及510b。此等頁之有陰影線區域(例如)可表示藉由圖3之編碼器220及解碼器202所使用的碼字。因此,頁環繞提供延伸跨越頁邊界之編碼及解碼功能,如同對操作而言,頁之間不存在實體不連續性。
現將注意力集中在圖6,其為說明如圖3中所展示的模組 30之功能引擎320之一實施例的方塊圖。展示功能引擎之組件以及其互連。應瞭解,為了達成已說明之各種組件之功能,可利用硬體與軟體的任何合適組合。在一實施例中,CPU 300及程式記憶體302可納入功能引擎之操作。功能引擎之共同設施(例如,區域)602可組成資料結構之一集合,該等資料結構包括藉由(例如)磨損調平功能610、廢棄項目收集功能612、位元密度組態功能614及FTL功能616以共同或共用方式使用及修改的參數(例如,包括參數之資料表)。此等功能中之每一者經組態以用於至少部分地基於某些輸入參數執行其所指派任務。請注意,共用參數區段322(圖3)經展示為形成共同設施602之部分且因此可參看圖3抑或圖6參考。不同於需要此等輸入參數,每一功能可相對於其他模組或SDD系統及控制器總體上自主地操作。共同設施602充當該等功能當中的資訊管道,此係因為在一些情況下,各種功能共用資訊且以合作方式操作。一般而言,每一功能自共同設施中之資料結構存取最新資訊以便完成其任務。舉例而言,FTL功能616使用可儲存於(例如)表區域620中之最新邏輯至實體位址轉譯,以便在給定資料單元之邏輯位址時提供傳回該資料單元之實體位置的功能。此外,維持在共同設施中之資訊之實例將在下文中在適當點處提供。在本實施例中,共同設施進一步包括報告區段624,報告區段624經組態以用於報告與模組之非揮發性記憶體相關的一或多個輸出參數(例如,指示使用統計資料)。使用統計資料可供功能引擎自身以及主控制器 使用且可基於在讀取操作期間所獲得之讀取值的一集合。使用統計資料可包括(藉由實例)可基於讀回值之一集合之讀回操作所產生的讀取值之集合之平均讀回值及讀回值之該集合的標準差中之至少一者。在讀取操作解碼區塊錯誤校正碼之例子中,使用統計資料亦可包括錯誤校正統計資料,諸如累計錯誤計數及每區塊錯誤計數。應瞭解,錯誤校正統計資料可藉由解碼器202(圖3)中之一或多者產生,報告區段自該等解碼器獲得統計資訊。基於使用統計資料,功能引擎可鑒於藉由使用統計資料所指示的記憶體之健康來設定及/或選擇參數。舉例而言,若使用統計資料基於大量之程式碼/抹除循環指示記憶體之降級,則記憶體之位元密度可降低。在一實施例中,程式化/抹除循環之數目可超過為在使用中之特定非揮發性記憶體所規定之臨限程式化抹除參數。
在一些實施例中,模組之子集中之模組的報告區段可經組態以基於使用統計資料提供關於彼模組之非揮發性記憶體的健康指示。舉例而言,參數可規定臨限值,功能引擎按該臨限值藉由藉由複製遠離彼部分之現有資料、抹除該部分且接著將該部分重新分配給相對較低位元密度來收回先前以較高位元密度分配的記憶體部分來回應,使得對彼部分之進一步寫入可處於較低位元密度。此活動可優先於至少一些控制器參數,例如基於記憶體之進行中磨損在初始組態中所提供之控制器參數。在一實施例中,控制器可存取且監視健康指示且提供參數控制以指示模組如上文所 述地收回記憶體之某一部分。當然,此等各種活動調用藉由功能引擎所提供之功能的使用且在下文在適當點處詳細描述。
鑒於前述內容,應瞭解,控制器參數630係藉由主控制器40提供,而模組參數632在模組自身內部起源。模組參數之非限制性實例包括藉由解碼器202(圖3)所產生之使用統計資料。該等控制器參數及該等模組參數提供給共同設施602。該等參數主要藉由四個所說明功能自身使用,且可能影響每一功能之組態。
仍參看圖6,磨損調平功能610與跨越模組中之所有記憶體裝置均勻地最大化使用循環之數目有關。一般熟習此項技術者將熟悉組態磨損調平功能之基本原理,且將瞭解,對此功能之需求在於某些形式之非揮發性記憶體在承受有限數目個程式化/抹除循環時展現有限壽命的事實。磨損調平功能係針對延長特定模組之記憶體裝置之有用壽命。
廢棄項目收集功能612識別已寫入有不再需要之資料的記憶體單元(區段、區塊或頁)且使此記憶體返回至可用於用新資料隨後寫入之記憶體單元的集區。如同磨損調平功能,一般熟習此項技術者將熟悉組態廢棄項目收集功能之基本原理。
為了記憶體之每一適用實體部分中之較佳位元密度組態,位元密度組態功能614分配具有經判定為關於仍將描述之準則所進行之選擇的結果之位元密度組態之記憶體單元。在一實施例中,記憶體單元可為由區塊組成之區段。
FTL功能616僅基於特定資料單元(區段、區塊或頁)之邏輯位址來提供彼單元之實體位置。因為磨損調平、廢棄項目收集及位元密度組態可全部為引起影響位址轉譯表之進行中更新的動態功能,所以FTL及其他功能可彼此以即時為基礎來合作以維持共同設施602中之最新狀態。
在相似參數形成控制器參數630及模組參數632之部分的情況下,在一實施例中,一般將優先權給予該等控制器參數。就此而言,參數可以任何合適且靈活之方式組織。舉例而言,在一些實施例中,該等參數可以子集組織,其中相似參數的一個子集提供優先權給來自控制器40之值,且相似參數之另一子集提供優先權給來自模組30之值。
現轉至圖7,藉由參考數字700大體指示圖6之磨損調平功能610的一實施例。磨損調平功能可以如藉由功能引擎之共用參數區段322(圖3及圖6)含有的在702處自主控制器40可得到之參數及在704處自模組可得到的內部參數為基礎而操作。因此,關於在參數之特定源之範圍內的磨損調平功能之執行提供大量靈活性。不管參數之源,磨損調平功能通常與在此等記憶體裝置包含在某一數目個程式化操作及抹除操作之後降級的儲存胞時最大化模組之記憶體裝置的操作壽命有關。
經由選擇提供給共用參數區段322之參數,關於磨損調平功能,主控制器40(圖2)可確證對磨損調平功能之較多或較少控制。如上文所論述,藉由主控制器所建立之參數可優先於藉由模組所提供之參數。自控制器及模組所提供之 參數可依據在708處所選擇之初始化參數及在710處所選擇之操作參數來特性化,且適用於在初始操作之後的進行中磨損調平。初始化參數之實例可包括依據總區塊且依據總數個區塊中何子集將最初可用於資料儲存來定義模組之記憶體容量的初始範圍的位址。初始化參數亦可包括諸如區段大小、區段分配次序、區塊分配次序及其類似者之參數,該等參數充當序列之指示詞,步驟720、724及730根據該序列將區段及該等區段內之區塊分配給初始記憶體配置。請注意,初始化參數選擇708包含總處理程序之初始化分支712的開始。該等初始化參數一般係藉由主控制器提供且在其操作之開端建立磨損調平功能之組態。一般而言,初始化可執行一次以便建立模組之原始磨損調平組態。來自主控制器之操作參數可應用於磨損調平功能之非初始化態樣。在一些實施例中,藉由模組所提供之操作參數可以來自主控制器之初始參數為基礎來定義在初始操作之後的進行中磨損調平活動。關於磨損調平功能之非初始化態樣可包括的多個種類之參數的實例包括用於區段及區塊分配及重新分配的排序指示詞。其他實例包括關於區塊或區段在其必須被重新分配之前可含有靜態資料多久的數值準則,或其他數值準則(諸如,累積的寫入/抹除循環之數目、錯誤校正統計資料及其類似者),磨損調平重新分配決策可根據該等數值準則進行。
在720處,初始化分支712藉由執行用以分配模組之記憶體裝置當中的區段之一原始集合的區段分配初始化而繼 續。接著執行區塊分配功能724以分配每一區段內之區塊集合。區段分配之實例展示於圖5中且在上文關於圖5得以描述。
在724之後,已建立初始組態,其係在730處儲存於(例如)功能引擎(圖3及圖6)之共用參數區段322中。因此,初始組態結束且可用於磨損調平功能之操作分支740期間的參考及更新。
在744處,執行擷取組態處理程序。在初始化分支712之後,可擷取如藉由在730處所儲存之組態所建立的初始組態。此後且關於進行中操作,該組態可藉由操作分支740管理。在進行中操作期間,當前FTL表資訊可經由FTL更新路徑748(例如)自功能引擎之表區域620(圖6)擷取。由於將更詳細描述之寫入及抹除活動,FTL更新發生,其中FTL功能對實體位址之添加或刪除必然影響磨損調平功能。應瞭解,為了更新FTL功能,路徑748為雙向的。同樣地,磨損調平功能可(例如)藉由編輯表區域620之FTL區而進行FTL功能可見的改變。作為一實例,在寫入操作之前,FTL自磨損調平功能獲得用於寫入的較佳位置。此係歸因於磨損調平功能在自所有可用位置內定義用於每一新寫入操作之實體位置時的作用,如將更詳細描述。來自廢棄項目收集功能612之更新在廢棄項目收集更新路徑750上可用。此等更新可加上正常FTL及廢棄項目收集更新以藉由磨損調平功能專用。因為磨損調平功能(例如)經由表區域620而具有對廢棄項目收集功能之可見性,所以磨損調 平功能能夠自已藉由廢棄項目收集功能返回至可用狀態之記憶體分配用於新寫入的實體位址。應瞭解,為了更新廢棄項目收集功能,路徑750為雙向的。
760處之每一寫入操作可與磨損調平功能之擷取組態步驟744介接,以便在記憶體組態內建立用於寫入之實體位置。如將進一步描述,磨損調平功能通常與寫入功能(藉由來自主控制器40(圖2)之寫入命令起始)及FTL功能兩者通信,因此路徑748及760為雙向的。當新寫入資料位置係藉由寫入功能使用時,必須將此新位置添加至FTL以作為對應於寫入資料之邏輯位址的實體位置。若現有邏輯資料單元正藉由寫入命令而被覆寫,則磨損調平功能必須意識到:為了更新組態,邏輯覆寫不僅對應於(適用於NAND快閃記憶體)至新實體位址之資料寫入,而且對應於資料之當前實體位置的解除分配。
如同寫入操作,抹除操作涉及調用磨損調平功能及FTL功能均必須適應之改變的實體操作。因此,在770處,每一寫入操作可與擷取組態步驟744介接以在記憶體組態內建立用於抹除之實體位置。應瞭解,為了更新抹除功能,路徑770為雙向的。邏輯抹除可涉及現有實體資料單元之解除分配。實體抹除對應於使標的記憶體返回至用於新寫入之可用性的一實體範圍之記憶體的實際抹除。
在774處,區段分配步驟基於所擷取之組態檢驗模組中之聚集記憶體裝置上的當前區段組態且判定新區段之分配是否為需要的。將至當前區段組態之任何區段添加更新至 磨損調平組態。磨損調平組態可儲存於(例如)功能引擎之表區域620(圖6)中。
在776處,在每一區段內,分析區塊組態以判定任何當前未分配之區塊是否需要分配。任何添加導致對磨損調平組態之適當部分的添加。又,改變可指代FTL功能及廢棄項目收集功能。
在778處,可重新分配已變得充滿過時區塊之區段。在NAND快閃記憶體中,此可對應於抹除步驟,該抹除步驟繼之以將新近抹除之記憶體添加至可用區段之集合,抑或將新近抹除之記憶體添加至等待至新區段之重新指派的空儲存器。
在780處,可估定區段內之每一區塊以判定該區塊是否需要重新分配。重新分配通常由於區塊經寫入有過時資料(經寫入,但標記為不再有效)而發生,在該情況下,可抹除該區塊,且接著將空區塊標記為可用於新寫入。接著在730處儲存所得組態,且操作分支740結束直至需要其再執行。
參看圖8,藉由參考數字800大體指示圖6之廢棄項目收集功能612之一實施例。廢棄項目收集功能可以如藉由功能引擎之共用參數區段322(圖3)所含有的在804處自主控制器40可得到之參數子集801及在806處自模組可得到之內部參數為基礎而操作。不管參數之源,廢棄項目收集功能與回收先前寫入之記憶體位置及使該等記憶體位置可存取以與磨損調平功能合作用於後續寫入有關。如本發明中所使 用,記憶體經分配以用作以頁為最低層級的單元之階層。有限數目個頁被聚集至區塊中。儘管儲存於頁中之資料的量可根據位元密度組態而變化,但頁通常由固定數目個實體儲存胞組成。區段係由數個區塊組成,且區段中之區塊的數目可在區段之間變化。每一模組含有可以各種方式跨越模組之記憶體裝置分配的某一數目個區段(參見圖5)。
應瞭解,非揮發性記憶體之操作一般服從與記憶體裝置之實體組成有關的規則。對本論述而言且藉由非限制性實例,儘管本論述可關於其他非揮發性記憶體技術由一般熟習此項技術者容易地調適,但將應用與NAND快閃記憶體之行為大體上一致的規則。用於讀取及寫入諸如NAND裝置之記憶體裝置的一般化規則因而係如下:
a.頁為一次可寫入的最小實體記憶體範圍。不允許對部分頁寫入。
b.需要(儘管並非始終強制)在開始對區塊寫入之前收集足夠資料以填充該區塊中的所有頁;接著,將所有資料作為單元寫入至該區塊中。此適應用於頁對頁干擾機制之補償。
c.區塊為一次可抹除之記憶體的最小單位。
以上規則暗示用於讀取及寫入存取的以區塊為中心之機制。因而,廢棄項目收集步驟可負責藉由經由將頁合併至含有所有作用中資料頁抑或所有過時資料頁之區塊中來分離過時頁與作用中資料頁而擷取儲存容量。僅含有過時資料頁之區塊可被抹除且返回至可用狀態。此處請注意,當 前內容脈絡中之術語「過時」指代胞已寫入有值但不再被模組辨識為有效的記憶體之單元(頁、區塊或區段)。此係與被模組辨識為有效的寫入資料之替代情況相反。此後一情況被稱為「作用中」資料。將當前在胞中不含有不同於抹除狀態之寫入值的資料單元定義為「可用的」。
仍參看圖8,將自主控制器40及模組30所獲得的參數子集801以及其他組態參數應用於磨損調平功能。其他組態參數可包括關於記憶體組態及磨損調平組態之資訊。記憶體組態包括區段、區塊及頁跨越模組之記憶體裝置之已分配部分的配置,且磨損調平組態可包括涉及廢棄項目收集與磨損調平功能之間的關係之參數。
廢棄項目收集涉及引起過時頁之識別、過時頁至過時區塊中之合併及區塊抹除的操作之一集合。該功能亦可在區段之層級處操作,其中過時資料單元合併至區段中,該等區段又藉由抹除區段之組成區塊而遷移至可用區段中。應瞭解,廢棄項目收集功能及抹除功能通信以交換關於影響記憶體中之區塊的更新之資訊。抹除功能802通知廢棄項目收集功能允許廢棄項目收集功能自等待抹除之區塊之清單移除此等抹除區塊的區塊抹除完成。在803處,經由參數801在廢棄項目收集功能612與磨損調平功能800之間進行雙向通信。舉例而言,磨損調平功能將寫入完成及抹除完成兩者用信號傳輸至廢棄項目收集功能。此等通告使廢棄項目收集功能更新其維持的關於等待抹除之區塊以及正在寫入之區塊的組態資訊。廢棄項目收集功能又通告磨損 調平功能此等改變,藉此允許磨損調平功能根據優先權排序可用實體位址之清單以作為用於寫入的下幾個位置。
廢棄項目收集功能在開始810處開始且逐個區段地出現,其中第一步驟為在812處擷取第一區段之狀態。在814處,應用區段準則以量測如區段狀態所反映之區段條件。區段可:(a)完全包含有效區塊;(b)包含過時區塊與有效區塊之混合;或(c)完全包含過時區塊。若情況(a)適用,則不需要當前區段中之磨損調平活動,但在該區段內,可能需要將廢棄項目收集應用於彼區段之組成區塊,此引起對區塊層級處理程序之控制的傳送,該區塊層級處理程序以得到區塊狀態步驟816開始。若情況(b)在814處適用,則區段準則為肯定的,且比較過時區塊之數目與適用於當前區段之特定組態的區塊臨限參數818。若過時區塊之數目大於該臨限值,則在820處採取處理程序以重新分配區段。在一實施例中,重新分配可涉及分配具有與當前區段相同之組態的新區段及將任何仍有效區塊自當前區段複製至新區段;接著將當前區段中之所有區塊指定為過時的。接著可藉由抹除當前區段之區塊中的每一者來抹除當前區段。在此等步驟之後,當前區段可返回至未分配記憶體之集區。若情況(c)在814處適用,則區段準則為肯定的,且過時區塊之數目將超過該臨限值,此係因為所有該等區塊為過時的。820處之重新分配可抹除所有該等區塊且使當前區段返回至未分配記憶體之集區。操作可接著繼續進行至822,其判定另一區段是否可用。若否,則處理程序在 824處結束。若另一區段可用,則操作返回至812,其中彼區段變為當前區段。該處理程序重複,直至所有已分配區段已被處置為止。
對於在816處進入區塊層級處理程序之區段,如上文所論述,區塊層級處理程序在區段內操作。在一些例子中,每一個區段可能需要區塊層級處理,以使得跨越整個模組的區塊層級處理程序之完成可在模組之區段中的每一者中接連地執行區塊層級處理。
區塊準則決策830調用頁臨限參數832,其為要求區塊之重新分配之區塊內的過時頁之數目。除了所關注之過時單元為組成區塊之頁而非組成區段之區塊以外,區塊層級處理程序類似於情況(a)、(b)及(c)中之區段層級處理程序,如上文關於區段準則814所描述。在830處,若多於臨限值832之頁在當前區塊內為過時的(對應於情況(b)及(c)),則在836處分配當前區段內之新區塊。該新區塊自當前區塊接收仍在作用中之頁。請注意,為了用作用中頁填滿新近分配之區塊,此步驟可對多個當前區塊同時執行,使得新近分配之區塊可含有來自多個當前區塊的作用中頁。接著可抹除當前區塊(或當前區塊之組合)(作用中頁已自其移動),其伴隨著使已抹除區塊返回至區段內之可用儲存器。因此,在當前區段內分配(多個)新區塊以自以抹除為目標之區塊接收有效頁。此等已分配區塊含有作用中資料頁。
在區塊重新分配完成後,操作即繼續進行至840,其檢 查最後區塊。若另一區塊可用,則為了經受區塊層級處置,操作返回至816且將下一個區塊指派為當前區塊。若無其他區塊可用,則操作繼續進行至842,其對另一區段進行測試。若另一區段可用,則操作返回至812。若另一方面,另一區段不可用,則操作在824處結束。因此,針對經受區塊層級處理之區段中之所有區塊執行區塊層級處理程序,然而,僅含有某一比例之作用中資料或過時頁的區塊藉由該處理程序檢驗。既不含有作用中資料頁亦不含有過時資料頁之區塊不需要藉由此處理程序之檢驗;然而,該等區塊可用於供該處理程序分配。
824處的最後區段之完成對應於磨損調平功能之一應用的完成。一些實施例可能要求磨損調平功能由模組僅藉由顯式引動(invocation)執行;其他實施例可將磨損調平功能用作連續執行的背景任務。在磨損調平(在區塊層級處抑或在區段層級處)完成之情況下,可藉由廢棄項目收集功能應用更新750(圖7),其將為磨損調平功能700(圖7)及仍將詳細描述之FTL功能可見且影響該兩個功能。
參看圖9,藉由參考數字900大體指示圖6之位元密度組態功能614的一實施例,且該實施例經展示為說明用以組態模組之非揮發性記憶體的位元密度之功能的流程圖。位元密度組態功能可以如亦可藉由功能引擎之共用參數區段322(圖3)所含有的在904處自主控制器40可得到之參數子集902及在906處自模組可得到的內部參數為基礎而操作。根據此實施例,在藉由廢棄項目收集功能所進行的區段之初 始分配之後,展示藉以在模組內分配多個區段以用於以特定位元密度操作的功能。應瞭解,許多不同位元密度可為可用的,且可至少部分地基於模組之記憶體裝置之記憶體技術以及在讀取操作及寫入操作期間所使用的編碼/解碼功能兩者來判定可用位元密度。位元密度組態可自每胞單一位元之組態變化至每胞多個位元的組態。就每胞所儲存之位元而言的每一位元密度值亦可具有與編碼及解碼方法以及彼編碼及解碼功能所使用之額外額外負荷的量及類型有關的變化。編碼及解碼方法可涉及如先前所描述的隨所應用之額外負荷之量達成結果的程式碼之組合。迴旋碼及區塊碼均可以各種層級之額外負荷操作,其中額外負荷之特定量係藉由控制器設定中應用於實施此等碼之參數判定。面對手邊的記憶體裝置區段之SNR及任何其他降級機制特性,額外負荷之量又通常係針對最佳效能來規定。位元密度可作為可至少向下應用於NAND快閃記憶體中之區塊單元之層級的屬性而應用。最終,位元密度組態之細微性可隨所選擇之編碼及解碼功能以及模組之記憶體裝置中的記憶體技術而變。在本發明中所給出之實例中,位元密度組態係在區段層級處設定,使得給定區段內之所有區塊以針對彼區段所選擇之位元密度操作。請注意,區段可藉由單一區塊包含;此可表示考慮使用NAND快閃記憶體,其中個別位元密度組態應用於與單一區塊一樣小的資料保持單元。
方法900包括初始化分支910及更新分支912。無論何時 新區段經分配(或經重新分配,例如,歸因於廢棄項目收集及記憶體重新組態),則執行初始化分支910。對於應用於區段下之實體記憶體之區的位元密度組態,更新分支912可在模組壽命期間週期性地執行。在記憶體裝置之壽命內,一特定範圍之實體記憶體在不同時間可屬於不同區段,但在任何給定時間,該特定範圍可屬於僅僅一個區段。對於在有效使用中之區段,位元密度組態功能可監視組成該區段之實體記憶體的條件。舉例而言,監視以特定位元密度組態操作的實體記憶體之某一部分的位元密度組態功能可偵測實體記憶體之降級,以使得同一實體記憶體的後續重新分配可能需要更能容忍由於降級所引起的較低SNR(信號對雜訊比)之位元密度組態。
來自主控制器40(圖2)之參數可優先於藉由模組所供應之參數。在一些情況下,主控制器可基於控制器參數定製藉由功能引擎所執行的位元密度組態功能之大部分或全部。在其他情況下,主控制器可將管理委派給模組,以使得位元密度組態功能係藉由該等模組參數來定義。在再其他情況下,參數之掌控集合可為控制器及模組參數之合作組合。然而,在任何情況下,不管參數之特定源,實際位元密度組態功能係藉由模組執行,例如在該等參數已建立後即自主地執行。應瞭解,關於用於每一區段之位元密度組態的選擇及關於一個位元密度組態至另一位元密度組態之交替,且甚至關於區段自作用中記憶體集區之解除分配(如在組成記憶體歸因於超過最大數目個程式化/抹除循環 而變得「用盡」之情況下),參數值可判定位元密度之態樣。
請注意,參數子集902不欲為全面的。主要參數類別包括目標使用模式,包括容量、密度及壽命準則(例如,程式化/抹除循環之數目)。該等參數所表明之其他準則為藉由位元密度組態功能使用以執行分配、重新分配及解除分配的記憶體實體性質。另一參數類別定義可能組態:此包括區段層級處之位元密度組態。數個控制指示詞可結合定義應用於錯誤率及其他量度之臨限值的參數使用以用於關於位元密度組態改變之決策。此等控制指示詞可指示功能引擎相對於臨限準則採取(或不採取)某一動作。作為一實例,當頁中之經校正錯誤率開始超過某一已定義臨限值時,相關聯控制指示詞可使廢棄項目收集功能對記憶體之受影響區段起始處理程序。
繼續參看圖9,初始化分支910應用於在模組操作之初始開始處所執行之處理程序。初始化一般歸因於如下事實而僅發生一次:連續位元密度組態取決於參數(諸如,在模組記憶體之操作壽命期間由於各種老化及磨損機制而產生的參數)之進行中維持。在920處,以記憶體性能資料之形式收集資訊以實現關於模組中之特定記憶體之性能的決策。可關於模組中之記憶體裝置之局域化部分組織記憶體性能資料,使得存在用於此等局域化部分中之每一者的參數(例如,量度)。此局域化之細微性可為實施相依的且可甚至在單一模組內變化。為了判定關於位元密度組態的記 憶體之性能,初始記憶體性能資訊可由於自測試或藉由模組或藉由主控制器所執行之其他功能而得到。一個有用參數為記憶體之SNR(信號對雜訊比)之量測值,其自身為記憶體之胞能夠儲存的位元之數目的指示符。隨著模組之記憶體裝置的使用歷史累積,額外參數(例如,在對位元密度組態功能之更新期間所收集的使用統計資料)可針對每一記憶體裝置之每一實體範圍實現關於位元密度組態及重新組態的後續決策。其他使用統計資料可(例如)自解碼器202(圖3)得到。為了初始化及操作,可產生品質量度及相關使用統計資料,例如,如上文所併入之'585申請案中所描述。應瞭解,如上文所述,本發明中應用於與記憶體效能相關之參數(例如,所量測資訊之集合)的一般術語為記憶體性能資料。
在記憶體性能資料之初始集合已藉由初始化分支910獲取之後,在924處,可組譯位元密度組態參數(例如,範本)的一集合,該等位元密度組態參數表示用於模組之位元密度組態選單。選單選擇可自位元密度組態之一預定義集合直接取得或自位元密度組態之一預定義集合導出,該等位元密度組態表示用於由編碼及解碼功能使用的參數之總組合。在本實施例中,每一選單選擇適用於記憶體之一區段,然而,在其他實施例中,選單選擇可在區塊層級或記憶體階層中之較低層級處應用。廣泛範圍之參數在選單選擇當中係可能的,但每一參數可至少定義將使用的記憶體胞、編碼/解碼參數及一量之同位檢查中之位元的數目。
在928處,藉由結合來自子集902之其他參數應用來自924之位元密度組態參數而產生區段映射。該區段映射為資料結構,如圖5中以圖式方式所見,其可列出每一已分配區段之位置、範圍及組態。結果為跨越模組(圖5)之記憶體裝置所映射的區段之一集合,其中每一區段可至少可能地經組態有獨特位元密度組態。位元密度組態於該等區段之應用可涵蓋自每一個區段使用相同位元密度組態(例如,每記憶體胞4個位元)之情況延伸至每一個區段使用不同位元密度組態的廣泛範圍之變化。
在930處,在該區段映射已產生之後,應用該等位元密度組態以作為區段分配之部分。此可包括更新共用參數區段322(圖3)中之定義對應於邏輯位址之實體記憶體的位置及範圍之FTL表。另外,可在位元密度組態(來自該等位元密度組態範本中之一者)與其相應區段之間進行關聯。此關聯使後續讀取、寫入及抹除功能不僅能夠識別正確邏輯至實體映射以便自主控制器存取命令,而且能夠提供正確地組態模組中之讀取/寫入設定。
如藉由區段分配930所定義之每一區段最終包含區塊之一集合,區塊之數目必須已定義。在934處,針對每一區段執行區塊分配,例如,藉由更新表區域620中之表結構以適應將包含區段之區塊的準確數目。
在936處,儲存用於模組之區段組態。區段組態可包括適當參數(例如,表及)範本而用以完全定義模組之區段結構(至少自初始化流程結束時起),且用以實現有關可涉及 之各種位元密度組態的記憶體之操作,以及用以實現由於由繼續使用所引起的老化及磨損效應而可能需要的未來更新。
現轉至位元密度組態功能之更新分支912之描述,在一些實施例中,該更新分支可在模組之壽命內不時地執行。如初始化處理程序之情況,所應用之參數可藉由主控制器及模組自身中之任一者或兩者提供。又,來自主控制器40(圖2)之參數可優先於藉由模組所供應之參數。位元密度組態功能可藉由控制器提供之參數、模組提供之參數或其任何合適組合定義。然而,在任何情況下,實際位元密度組態功能係藉由模組執行,而不管參數之特定源。更新分支912通常係在無論何時現有區段需要對位元密度組態之改變時執行。實例包括歸因於磨損調平及廢棄項目收集動作或歸因於記憶體之老化所必需的位元密度組態修訂的對解除分配及/或分配區段之需要。
在940處,藉由修訂最初由初始化分支910開發之記憶體性能資料開始該更新分支。廢棄項目收集功能及磨損調平功能分別在942及944處將輸入提供至步驟940,此係因為此等功能影響記憶體性能資料。如上文所論述,記憶體性能資料包含為記憶體以各種位元密度儲存及保持資料之能力之指示符的參數。根據來自廢棄項目收集功能及磨損調平功能之輸入,修訂記憶體性能資料。鑒於經修訂之記憶體性能資料,在946處,判定重新分配映射,其反映與當前區段之當前分配相比的當前區段之位元密度組態的任何 改變。此映射確定哪些區段係新分配中所需的(根據廢棄項目收集結果)及此等區段可置放於何處(根據磨損調平)。
使用來自步驟946之重新分配映射,步驟948藉由規定自當前分配至新分配之改變(其中當前分配係藉由初始化分支910抑或先前通過之更新分支912判定)來產生經更新區段映射,該等改變添加至區段映射之當前版本。在950處,如新/經更新區段映射所規定而將新區段分配給記憶體。更新可(例如)藉由將更新寫入至表區域620(圖6)中之資料結構來實現。如上文所述,接著在934處繼續進行區塊分配。
參看圖10,藉由參考數字1000大體指示圖6之快閃轉譯層(FTL)功能616之一實施例,且將該實施例展示為用於管理與本發明之模組中之一者的非揮發性記憶體相關之快閃轉譯層的流程圖。該FTL功能藉由基於提供於命令中之邏輯位址找到資料之實體位置來服務主控制器命令。就此而言,參看圖6注意,磨損調平功能610、廢棄項目收集功能612及位元密度組態功能614之活動使模組中之所儲存資料的實體置放為動態的。因此,FTL功能比用於靜態實體置放的僅邏輯至實體位址轉換複雜,而是使用自其他功能所產生之參數來判定對應於區段、區塊及頁中之資料置放的動態FTL資料結構,使得作用中資料單元可始終僅基於其相應邏輯位址定位。請注意,此等動態資料結構可儲存於圖6之表區域620中。
可形成功能引擎之共用參數區段322(圖3)之部分的FTL 參數區段1002在1004處自主控制器接收參數且在1006處自模組接收模組參數。此等參數之值可影響藉由主控制器所進行的FTL功能之定製與藉由模組所施加之定製之量相比的相對程度。如其他功能之情況,如上文所論述,一些參數值可使主控制器相對於模組對FTL有較大影響,而其他參數傾向於偏愛模組之影響。不管受主控制器抑或模組影響之程度,功能引擎可(例如)僅基於參數輸入自主地執行FTL功能。
FTL參數區段1002亦接收在1010處藉由磨損調平功能700(圖7)、在1012處藉由廢棄項目收集功能800(圖8)及在1014處藉由位元密度組態功能900(圖9)所產生的資訊。FTL功能之初始化分支1020在第一次使用模組之前且在藉由主控制器在使用者資料儲存操作之任何執行中所進行的任何存取之前執行。在1024處,來自磨損調平功能之輸入1010及來自位元密度組態功能之輸入1014(如FTL參數區段1002所反映)允許以產生邏輯表項開始建構初始資料結構。此等資料結構本質上可為多層級的,以便提供區段、區塊及頁層級處之映射。該等映射本質上亦為動態的,此係因為隨著新資料被寫入至模組中且隨著先前寫入之資料歸因於覆寫而失效抑或被抹除,必定預期修改該等映射。
在1028處,針對每一邏輯位址產生邏輯至實體映射項,以使得實體位置對應於資料結構中之每一邏輯項。因為該初始化分支在實際資料被寫入至模組中之前出現,所以該等邏輯項指定模組記憶體中之已分配但仍空著的區域。因 此,資料結構在此點處可指代形成對於主控制器將為可存取之記憶體磁碟區的區段之一集合,其至今不含資料。後續讀取、寫入及抹除功能之任務為擴大此等資料結構,使其具有邏輯資料區塊與該磁碟區內之實體區塊及頁之間的連接。
在初始化之後,在1030處,進入正常操作,其中記憶體係可存取的以用於儲存資料。請注意,讀取、寫入及抹除操作係在其與FTL功能互動之範圍內描述。一般熟習此項技術者將熟悉此等操作之其他態樣。如將進一步描述,該功能之讀取分支1034可回應於讀取命令而執行,而在1036處,該功能之抹除/寫入分支可回應於寫入命令或抹除命令而執行。
應瞭解,不要求讀取分支1034更新FTL資料結構,此係因為讀取操作未更改所儲存資料。因此,在1038處,該讀取分支針對提交至其之每一邏輯位址傳回實體位址。因此,當模組自主控制器接收讀取資料命令時,對FTL功能之所得呼叫僅涉及實體位址查找操作。該讀取分支之一次以上通過可回應於單一讀取命令而發生,此係因為在該讀取命令中所請求之資料可包含駐留在多個邏輯位址處的資料。
抹除/寫入分支1036可在先前未經寫入之資料區塊正被寫入時抑或在駐留在當前寫入之邏輯位址處的資料正被覆寫時執行。在前者情況下,該(等)邏輯位址必須被指派給記憶體中之實體位置;此必定需要實體記憶體自現有區段 內指定至特定區塊及頁。可執行按需要多次通過抹除/寫入分支以便將待藉由命令寫入之所有資料指派給相應實體位置。在1040處,可分配用於寫入操作之實體記憶體。在1042處,更新FTL表以使其反映該寫入操作。若需要抹除操作,則在後一情況下,步驟1040可說明標的記憶體位置之抹除以便使先前寫入至對應於該(等)邏輯位址之該(等)實體位址的資料失效。步驟1042可接著更新FTL表以在寫入功能之前將標的記憶體位置指定為含有無效資料。FTL抹除功能可結合自主控制器至模組之寫入命令或抹除命令來執行。抹除/寫入分支1036之FTL抹除功能未實現相應邏輯位址之實體抹除,而是更新表結構以展示:邏輯位址與實體位置之間的對應不再有效。因此,第一通過抹除/寫入分支1036可說明FTL結構方面之抹除,而第二通過可說明相應寫入操作。表項可稍後藉由廢棄項目收集功能612更新,此係由於該廢棄項目收集功能識別過時實體資料單元且執行實體區塊抹除以使受影響實體資料單元返回至可用於後續寫入。在1044處繼續進行正常操作。
現轉至圖11,為了說明讀取操作與功能引擎320(圖6)之輔助互動,以方塊圖形式展示讀取操作之一實施例且藉由參考數字1100大體指示該實施例。在1102處,起始讀取操作。請注意,在存取及讀取個別記憶體胞之範圍內,讀取操作之技巧將為一般熟習此項技術者所熟悉,且為此目的可使用廣泛多種合適的處理程序。每一讀取操作已指向一邏輯位址。該邏輯位址可能已在外部自主機獲得以作為用 以執行讀取之命令的部分,或該邏輯位址可能已在內部自模組獲得。在任何情況下,在1104處,在可讀取實際資料之前,讀取操作將該邏輯位址發送至FTL功能616(圖6及圖10)。在1106處,FTL功能616回應於自讀取操作接收邏輯位址而將實體位址傳回至讀取功能。因為此為讀取操作,所以應該不需要對表區段620(圖6)中之FTL表的更新以及磨損調平功能及廢棄項目收集功能,此係因為未對記憶體進行任何改變。在已獲得實體位址後,在1108處,執行讀取操作以便獲得讀取資料。儘管為描述清楚起見呈現圖11以使其指代基於單一邏輯或實體位址之交換的讀取操作,但應瞭解,讀取操作可涉及多個位址。因此,已說明的讀取操作之各種步驟可涉及具有至實體位址中之每一者之相應讀取步驟的多個邏輯至實體位址轉譯。在1110處,讀取操作完成且正常操作繼續。
參看圖12,為了說明寫入操作與功能引擎320(圖6)之輔助互動,以方塊圖形式展示寫入操作之一實施例且藉由參考數字1200大體指示該實施例。在1202處,起始寫入操作。請注意,在對個別記憶體胞進行存取及寫入之範圍內,寫入操作之技巧將為一般熟習此項技術者所熟悉,且為此目的可使用廣泛多種合適的處理程序。寫入操作引起某一範圍之記憶體被寫入。此操作可為至先前未經寫入之邏輯位址,或此操作可為至當前寫入之邏輯位址。在任一情況下,在1204處,寫入操作將目標邏輯位址發送至FTL功能616(圖6及圖10)。在1206處,該FTL功能藉由傳回實 體位址而回應,寫入資料將至該實體位址以實體方式寫入至記憶體中。無論寫入是為新的(至先前未經寫入之邏輯位址)抑或為覆寫的(以當前寫入之邏輯位址為目標),FTL功能傳回將寫入之實體位址。任一情況引起對藉由FTL功能所進行的FTL組態之更新,其將為磨損調平功能610(圖6及圖7)及廢棄項目收集功能612(圖6及圖8)可見。在1208處,回應於供寫入操作使用之實體位址之傳回,執行寫入操作。應瞭解,儘管為描述清楚起見呈現圖12以使其指代基於單一邏輯或實體位址之交換的寫入操作,但寫入操作可涉及多個位址。因此,已說明的寫入操作之各種步驟可涉及具有用於實體位址中之每一者之相應寫入步驟的多個邏輯至實體位址轉譯。同樣地,FTL、磨損調平及廢棄項目收集參數經更新以反映藉由寫入操作所寫入的多個實體位址。在1210處,正常操作繼續。
參看圖13,為了說明抹除操作與功能引擎320(圖6)之輔助互動,以方塊圖形式展示抹除操作之一實施例且藉由參考數字1300大體指示該實施例。在1302處,起始抹除操作。請注意,在存取及抹除個別記憶體胞之範圍內,抹除操作之技巧將為一般熟習此項技術者所熟悉,且為此目的可使用廣泛多種合適的處理程序。
此處所展示的抹除操作之結果為一定範圍之記憶體的實體抹除。因而,此操作不同於可由自主機所發送之抹除命令所引起的邏輯抹除,但主機抹除命令最終調用此操作。又因而,此實體抹除可能自模組內(而非自主機)指引。
參看圖6及圖13,在1304處,(例如)自功能引擎(圖6)之表區段620存取當前廢棄項目收集組態參數以獲得待抹除之實體區塊位置(若可得到)。用於抹除的此等實體位置之識別可藉由廢棄項目收集功能612(圖6)產生。在1306處,進行關於區塊是否可用於抹除之判定。若無此等區塊位址當前可用,則抹除程序在1310處結束且返回至正常操作。若區塊位址可用,則抹除程序前進至1312以為了獲得如廢棄項目收集功能所規定的可用於抹除之下一個區塊位址。在1314處,該抹除功能執行抹除操作以存取並抹除處於在1312中所獲得之實體位址處的區塊。在抹除已完成之後,操作移動至1316,其(例如)經由表區段620將完成狀態提供給廢棄項目收集功能612。在一實施例中,完成狀態可直接提供給廢棄項目收集功能,該完成狀態又使廢棄項目收集功能能夠更新其組態。在1310處,抹除操作結束且返回至正常操作狀態。
參看圖3及圖6,每一模組30可回應於控制器參數630而組態以用於以各種模式操作。在一實施例中,模組可基於來自控制器的模組輸入參數之第一集合以用於該等功能中之所選擇功能的第一模式操作,且基於來自控制器的模組輸入參數之第二集合以用於該所選擇功能的第二模式操作,其中模組輸入參數之該第一集合不同於模組輸入參數之該第二集合。該等參數集合可(例如)藉由共用參數區段322來儲存。藉由實例,模組可經組態以基於該等模組輸入參數而將第一模式應用於模組之給定非揮發性記憶體區 段的第一部分(例如,區段)且將第二模式應用於給定非揮發性記憶體區段的第二部分(例如,區段),其中該第一部分不同於該第二部分。因此,在圖5中,基於輸入參數,NVM 1(區段502)可經組態而以第一位元密度儲存資料,而NVM 2及NVM 4(區段504)可經組態而以不同於第一位元密度之第二位元密度儲存資料。在一實施例中,總非揮發性記憶體之該等部分可基於控制器參數630判定,而位元密度可基於模組之非揮發性記憶體的一或多個模組參數(例如,受監視特性)判定。在一些實施例中,如下文將進一步描述,該等模組參數可為(例如)藉由解碼器所產生之錯誤校正統計資料。
在一些實施例中,一或多個模組可基於經由共用參數區段322(圖3及圖6)來自控制器的模組輸入參數之第一集合以用於該等功能中之所選擇功能的第一模式操作,以使得如此組態之每一模組(例如)自主地執行功能而無來自控制器之監督或與控制器之互動,且基於來自共用參數區段322的模組輸入參數之第二集合(其中模組輸入參數之該第一集合不同於模組輸入參數之該第二集合)以用於該所選擇功能的第二模式操作,以使得如此組態之每一模組在來自控制器之至少部分控制下以第二模式執行功能。舉例而言,在第一模式中,模組可獨立於控制器而自主地管理表區域620(圖6)內之快閃轉譯層,以使得局域快閃轉譯層可藉由控制器存取而不被更改,而在第二模式中,模組可在來自控制器之某一作用(諸如,引起模組快閃轉譯層之模 組部分的改變)下管理總快閃轉譯層之模組部分,此係因為控制器具有對所有各種模組之快閃轉譯層的可見性。
如上文關於圖5所論述,本發明提供可橋接跨越頁邊界之區塊抽象化。現將藉由最初參看圖14來提供關於區塊抽象化之其他細節。圖14為藉由典型非揮發性記憶體所提供之實體頁1402的關於短於實體頁1402之第一使用者資料區塊1404以及長於實體頁1402之第二使用者資料區塊1406的圖式說明,其中長度表示相關聯量之資料。如上文所論述,先前技術一般強加實體頁大小與區塊大小之間的準確匹配。在區塊短於頁之例子中,填充位元可用以填充未填滿頁中之空白空間,然而,在區塊長於頁之例子中,在先前技術之習知約束下,區塊係不可儲存的。為了在先前技術中在此等情況下進行儲存,每一個頁之至少某一部分將為未使用的,其中未使用部分之大小取決於區塊大小與較大頁大小之間的失配程度。因此,先前技術情況下的使用者資料之頁大小單元為非常特定量之資料。然而,圖14之使用者資料區塊中之每一者在長度上不同於所展示的實體頁。在使用少於實體頁中之總數個胞之使用者資料區塊的情況下,先前技術能夠應付該情形,此係因為區塊配合至一個實體頁中,即使存在未使用胞且因此存在儲存效率之損失亦如此。當使用者資料區塊超過實體頁之範圍時,先前技術不能夠應付該情形,此係因為不可能將使用者區塊配合至單一實體頁中。
然而,本發明藉由將資訊之區塊儲存於非揮發性記憶體 裝置中而無需設定每一區塊之大小以配合至單一實體頁中來不理會先前技術的約束。舉例而言,使用者資料區塊可被分配給實體記憶體而不管每一實體頁包括多少個備用位元。就此而言,應瞭解,每一頁一般分配有可針對(例如)同位資料之備用位元及各種形式之後設資料,包括(但不限於)邏輯區塊位址及可藉由FTL、磨損調平及廢棄項目收集功能使用的雜項旗標、指標及計數器。經由本文中之教示,每一實體頁中之組合式使用者資料位元加上備用位元有效地全部變為每一頁中之儲存空間,而不考慮用作使用者資料、ECC同位檢查或後設資料。因此,在圖14之使用者資料區塊中,實際使用者資料與附加項資料之間無區別。然而,具有相關聯附加項之使用者資訊的區塊可小於實體頁1402(如第一使用者資料區塊1404之情況)或大於實體頁1402(如第二使用者資料區塊1406之情況)。如將看到,在任一情況下,多使用者區塊序列可配合至實體頁之一群組且使用者區塊之數目與實體頁之數目之間無對應。藉由非限制性實例,使用者資料區塊可定義為具有相關聯附加項之一或多個512位元組單元(磁區);區塊是由一個磁區抑或多個磁區組成並無重要意義,此係因為區塊可為任何所要大小。每一區塊在特定頁內之原(例如,開始)點的特性在於經指定的位移。該位移之追蹤可以韌體、硬體或兩者之任何合適組合來實施。當使用者區塊延伸超出一個實體頁時,該區塊之剩餘部分被分配給後續實體頁。當此發生時,該使用者區塊內之斷開的位置係藉由應用用於追 蹤使用者區塊原點之同一方式來追蹤,如下文將更詳細論述。
現將注意力集中在圖15,其為方塊圖、藉由參考數字1500大體指示、以圖式方式說明形成非揮發性記憶體之部分的四個接連實體頁PP1至PP4。在接連實體頁中,實體頁之此集合可以接連方式實體地定址,例如,藉由自一個頁至下一頁使實體位址增量給定量。在此實例中,使用使用者資料區塊B1至B4,每一者具有如圖14之第一使用者資料區塊1404所例示的長度,其中使用者資料區塊短於實體頁。為了說明清楚起見,假設區塊長度BL等於頁長度PL的0.75。如所見,區塊B1係藉由實體頁PP1完全含有。區塊B2包括以自實體頁PP1之開始處對應於區塊B1之長度的位移(亦即,¾ PL)儲存於最後四分之一之實體頁PP1中的第一部分1510,及儲存於實體頁PP2中的自PP2之開始處開始以便填充PP2之第一半部分且表示區塊B2之最後的第二部分1512。區塊B3之初始部分1520係以自PP2之開始處½ PL的位移儲存於實體頁PP2之第二半部分中,而區塊B3之最後部分1522係儲存於實體頁PP3的第一¼中。區塊B4填充實體頁PP3之剩餘部分1524。區塊B5接著以自PP4之開始處¼ PL的位移填充實體頁PP4之初始¾部分1526。PP4之最後¼部分1528展示為空白的,然而,該部分可藉由後續區塊之一部分來填充或保持空白。在本實例中,五個使用者區塊儲存在四個實體頁上。如可看到,實體頁可得到完全利用,即使區塊長度短於頁長度亦如此。此外,區塊 可以橋接頁邊界之方式儲存。如圖15所例示,儲存可針對任意數目個使用者資料區塊繼續,或直至序列中之最後一個使用者資料區塊被儲存為止。在一些情況下,序列中之最後一個實體頁可含有未使用記憶體胞,但與先前技術情況相比,所有先前實體頁可得到完全利用且效率有淨增加量。
圖16為方塊圖、藉由參考數字1600大體指示、以圖式方式說明形成非揮發性記憶體之部分的四個接連實體頁PP1至PP4。在此實例中,使用使用者資料區塊B1至B3,每一者具有如圖14之第二使用者資料區塊1406所例示的長度,其中使用者資料區塊長於實體頁。當然,先前技術不能夠儲存相對較長之區塊。為了說明清楚起見,在本實例中,假設區塊長度BL等於頁長度PL的1.25。如所見,初始區塊B1係藉由實體頁PP1部分地含有且B1之最後部分1610(百分之二十)係藉由實體頁PP2含有。區塊B2之初始部分1612以自PP2之開始處¼ PL的位移填充實體頁PP2之剩餘部分,且區塊B2之最後部分1614填充前百分之五十的實體頁PP3。區塊B3之初始部分1616以自PP3之開始處½ PL的位移填充最後百分之五十的實體頁PP3,且區塊B3之最後部分1618填充初始百分之七十五的實體頁PP4。最後百分之二十五的PP4在無更多區塊可用之情況下未使用或可藉由後續區塊使用。在本實例中,三個使用者區塊儲存在四個實體頁上。實體頁可得到完全利用,即使區塊長度長於頁長度亦如此。又,區塊可以橋接頁邊界之方式儲存。就此 而言,使用者資料區塊大小與實體頁大小之任何關係可基於本文中已揭露的教示來適應。所提供之靈活性可使儲存效率相比先前技術中可能之儲存效率增加或最大化。此靈活性提供改變使用者區塊大小(諸如,將ECC同位檢查添加至使用者區塊格式)之能力,而無需給定記憶體中之實體頁之大小的相應增加。儲存效率可藉由充分利用給定記憶體裝置中之實體頁資源的趨勢來最佳化。
圖17為流程圖、藉由參考數字1700大體指示,該圖說明用於以達成上文在圖15及圖16之內容脈絡中所描述之資料結構的方式儲存/寫入使用者資料區塊之方法的一實施例。最初,請注意,包含寫入操作的使用者資料區塊之序列或系列可藉由處理程序接收,如圖15及圖16所說明,其中區塊長度及頁長度可不同。該方法在1702處開始且移動至在處理程序之開端處擷取初始使用者資料區塊的1704。在1706處,將當前使用者資料區塊以自實體頁之開始處可為零或非零位移值的某一位移映射至實體頁上。該位移可(例如)儲存為先前區塊後設資料中之值或儲存為含於藉由FTL功能所產生且使用之表中的位址。在1710處,進行關於當前使用者資料區塊是否為寫入傳送中之最後一個區塊的判定。若否,則操作繼續進行至測試當前頁現在是否完整之1712。若當前頁完整,則操作轉至接著對頁進行寫入之1714。操作接著返回至1704。在1712處,若頁不完整,則操作返回至1704。再次返回至1710,若偵測到最後一個使用者區塊,則操作繼續進行至填充當前頁中之任何剩餘 空間(若存在)的1716。在1718處,對最後一個頁進行寫入,且操作在1720處結束,等待下一個寫入操作。
圖18為另一流程圖、藉由參考數字1800大體指示,該圖說明用於自上文在圖15及圖16之內容脈絡中所描述之資料結構讀取使用者資料區塊之方法的一實施例,且其中區塊長度及頁長度可不同。該方法在1802處開始且移動至在處理程序之開端處擷取初始實體頁的1804。在1806處,將所擷取之頁映射至使用者區塊,以使得使用者區塊被復原。為了擷取使用者區塊之映射可基於(例如)在寫入操作(圖17)期間所產生且儲存為先前區塊之後設資料或儲存為儲存於藉由FTL功能所產生且使用之表中的位址的位移。在1808處進行測試以判定使用者資料區塊之復原是否完全。若復原完全,則在1810處傳送經復原區塊。然而,另一方面,應瞭解,1808可識別使用者資料區塊歸因於自一個實體頁至下一個實體頁之區塊的環繞而不完全(例如,參見圖15中之區塊B2及圖16中之區塊B1)。在此情況下,操作返回至1804以用於讀取將含有不完全區塊之剩餘部分的下一頁。映射1806將重新組譯不完全區塊且傳遞現在完全之區塊以發送區塊(1810)。在1812處,測試判定當前讀取操作之最後一個使用者區塊是否已復原。若否,則操作返回至1804以讀取下一頁。若最後一個使用者區塊已復原,則在1816處,當前讀取操作結束,等待下一個讀取操作。
鑒於前述內容,提供供在讀取/寫入操作中存取至少一固態記憶體裝置時使用之高靈活性讀取/寫入配置及相關 聯方法,其中該記憶體裝置係由複數個記憶體胞組成,該等記憶體胞經組織為可實體地且循序地定址之頁之一集合,其中每一頁具有頁長度以使得頁邊界係定義在該集合中的該等頁中之接連頁之間。系統提供控制配置,該控制配置經組態而以一接連系列之頁儲存且存取與給定寫入操作相關聯的資料區塊群組,以使得該系列中之至少一初始頁被填充且其中該群組之每一區塊可包括不同於頁長度之區塊長度。應瞭解,該等區塊中之至少一者可以自任何頁邊界之位移儲存。在一系列實體頁具有兩個或兩個以上頁及最後頁之初始群組的例子中,該系統可基於資料區塊之該群組至少填充頁之該初始群組的每一頁。該最後頁可被填充或部分填充。若該最後頁被部分填充,則可用空間可藉由另一區塊之至少一部分來填充。實體頁可含有一或多個區塊邊界且區塊之開始(例如)藉由自實體頁之開始處的位移來識別。以稍微不同之方式進行陳述,可儲存資料區塊之群組中的特定區塊,以使得該特定區塊之第一部分係儲存於第一頁中且該特定區塊之第二部分係儲存於第二頁中,以使得該特定區塊的儲存跨越該第一頁與該第二頁之間的頁邊界。為了此論述,該第一頁及該第二頁可為圖15及圖16之資料結構內之任何兩個鄰近實體頁。
應瞭解,本文中所詳細描述的本發明之SSD及相關聯方法提供具有疏散在先前技術方法中趨向於高集中之活動之分散功能性的系統。與藉由集中功能性相比,藉由疏散(分散)功能性更容易獲得延展性的屬性。亦即,具有疏散 功能性之分散式組件(諸如,先前所描述之模組)提供系統額外負荷之有限增量增加,此係由於給定系統按比例增大。對比而言,集中式系統必須增加其集中式控制器之性能作為補充,此係由於系統複雜性隨著儲存裝置之添加而增加。關於集中式嵌入式微處理器及嵌入式軟體,管理資源之能力變得受中央控制器之計算及其他能力的約束限制。因此,與嘗試添加與集中性能相同的功能性之系統相比,對在功能階層之較低層級處添加功能性的系統而言,較容易達成作為屬性的延展性。
為了說明及描述,已呈現本發明之前述描述。該描述不欲為詳盡的或將本發明限於所揭示之該(等)精確形式,且依據以上教示,其他修改及變化可為可能的,其中熟習此項技術者將辨識某些修改、置換、添加及其子組合。
10‧‧‧固態磁碟機(SSD)
12‧‧‧系統
20‧‧‧主機
30‧‧‧模組
40‧‧‧控制器/主控制器
42‧‧‧模組介面
44‧‧‧主機介面/主機至SSD控制器介面
46‧‧‧快取記憶體/快取記憶體裝置
100‧‧‧控制器模組埠
120‧‧‧資料路徑及控制邏輯區段
122‧‧‧匯流排連接
124‧‧‧控制匯流排
130‧‧‧微處理器
132‧‧‧記憶體
134‧‧‧暫存器
136‧‧‧暫存器
140‧‧‧資料緩衝器區段/緩衝區段
144‧‧‧主機介面埠
146‧‧‧雙向資料路徑
150‧‧‧匯流排
170‧‧‧記憶體裝置
176‧‧‧媒體埠
180‧‧‧記憶體裝置介面
190‧‧‧資料路徑及控制區段/資料路徑及控制單元
192‧‧‧媒體介面/媒體埠介面
200‧‧‧解碼器讀取資料路徑
202‧‧‧解碼器
204‧‧‧至資料緩衝器區段之直接資料路徑/直接讀取資料路徑
210‧‧‧資料緩衝器區段/資料緩衝器
212‧‧‧讀取邏輯
220‧‧‧編碼器
222‧‧‧寫入邏輯
230‧‧‧自資料緩衝器區段之直接資料路徑/直接寫入資料路徑
240‧‧‧控制器埠
242‧‧‧DMA部分
300‧‧‧嵌入式微處理器/CPU
302‧‧‧程式記憶體
320‧‧‧功能引擎
322‧‧‧共用參數區段
330‧‧‧輸入資料路徑/傳入路徑
340‧‧‧輸出資料路徑
400‧‧‧資料傳輸路徑
402‧‧‧資料接收路徑
410‧‧‧時脈
500‧‧‧模組NVM記憶體
502‧‧‧第一記憶體區段
504‧‧‧第二記憶體區段
506‧‧‧第三記憶體區段
508‧‧‧第四記憶體區段
510a‧‧‧頁
510b‧‧‧頁
510c‧‧‧頁
510d‧‧‧頁
602‧‧‧共同設施
610‧‧‧磨損調平功能
612‧‧‧廢棄項目收集功能
614‧‧‧位元密度組態功能
616‧‧‧快閃轉譯層(FTL)功能
620‧‧‧表區域/表區段
624‧‧‧報告區段
630‧‧‧控制器參數
632‧‧‧模組參數
700‧‧‧磨損調平功能
702‧‧‧來自控制器之參數
704‧‧‧來自模組之參數
708‧‧‧初始化參數選擇
710‧‧‧操作參數選擇
712‧‧‧初始化分支
720‧‧‧區段分配
724‧‧‧區塊分配功能
730‧‧‧儲存組態/結束
740‧‧‧操作分支
744‧‧‧擷取組態步驟
748‧‧‧FTL更新路徑
750‧‧‧廢棄項目收集更新路徑
760‧‧‧路徑
770‧‧‧路徑
774‧‧‧區段分配
776‧‧‧區塊分配
778‧‧‧區段重新分配
780‧‧‧區塊重新分配
800‧‧‧廢棄項目收集功能
801‧‧‧參數子集
802‧‧‧抹除功能
818‧‧‧區塊臨限參數
832‧‧‧頁臨限參數/臨限值
900‧‧‧位元密度組態功能/方法
902‧‧‧參數子集
910‧‧‧初始化分支
912‧‧‧更新分支
1000‧‧‧快閃轉譯層(FTL)功能
1002‧‧‧FTL參數區段
1010‧‧‧來自磨損調平功能之輸入
1014‧‧‧來自位元密度組態功能之輸入
1020‧‧‧初始化分支
1034‧‧‧讀取分支
1036‧‧‧抹除/寫入分支
1100‧‧‧讀取操作
1200‧‧‧寫入操作
1300‧‧‧抹除操作
1402‧‧‧實體頁
1404‧‧‧第一使用者資料區塊
1406‧‧‧第二使用者資料區塊
1510‧‧‧區塊B2之第一部分
1512‧‧‧區塊B2之第二部分
1520‧‧‧區塊B3之初始部分
1522‧‧‧區塊B3之最後部分
1524‧‧‧實體頁PP3之剩餘部分
1526‧‧‧實體頁PP4之初始¾部分
1528‧‧‧PP4之最後¼部分
1610‧‧‧B1之最後部分
1612‧‧‧區塊B2之初始部分
1614‧‧‧區塊B2之最後部分
1616‧‧‧區塊B3之初始部分
1618‧‧‧區塊B3之最後部分
B1‧‧‧使用者資料區塊
B2‧‧‧使用者資料區塊
B3‧‧‧使用者資料區塊
B4‧‧‧使用者資料區塊
B5‧‧‧使用者資料區塊
BL‧‧‧區塊長度
NVM 1‧‧‧記憶體裝置
NVM 2‧‧‧記憶體裝置
NVM 3‧‧‧記憶體裝置
NVM 4‧‧‧記憶體裝置
NVM 5‧‧‧記憶體裝置
NVM 6‧‧‧記憶體裝置
NVM 7‧‧‧記憶體裝置
NVM 8‧‧‧記憶體裝置
P1‧‧‧封包
P2‧‧‧封包
P3‧‧‧封包
PL‧‧‧頁長度
PP1‧‧‧實體頁
PP2‧‧‧實體頁
PP3‧‧‧實體頁
PP4‧‧‧實體頁
圖1為說明根據本發明之一實施例所製造之SSD的方塊圖,該SSD在此處展示為總系統之部分。
圖2為說明根據本發明之一實施例的SSD之其他細節的方塊圖。
圖3為說明在SSD(諸如,圖1及/或圖2之SSD)中所使用之模組之一實施例的方塊圖。
圖4為說明供模組(諸如,圖3之模組)使用之模組介面之一實施例的方塊圖。
圖5為結合跨越模組之記憶體裝置的記憶體區段之實例配置以圖式說明彼等記憶體裝置的方塊圖。
圖6為可在模組(諸如,圖3之模組)中使用的功能引擎之一實施例的方塊圖。
圖7為說明可使用圖6之功能引擎執行的磨損調平功能之一實施例的流程圖。
圖8為說明可使用圖6之功能引擎執行的廢棄項目收集功能之一實施例的流程圖。
圖9為說明可使用圖6之功能引擎執行的位元密度組態功能之一實施例的流程圖。
圖10為說明可使用圖6之功能引擎執行的FTL(快閃轉譯層)功能之一實施例的流程圖。
圖11為說明可協同圖6之功能引擎執行的讀取操作之一實施例的流程圖。
圖12為說明可協同圖6之功能引擎執行的寫入操作之一實施例的流程圖。
圖13為說明可協同圖6之功能引擎執行的抹除功能之一實施例的流程圖。
圖14為具有關於實體頁之長度的不同長度之使用者資料區塊的圖解說明。
圖15為以圖式說明儲存使用者資料區塊之一集合的接連實體頁之一集合的方塊圖,該等使用者資料區塊中之每一者包括小於一個實體頁之長度的長度。
圖16為以圖式說明儲存使用者資料區塊之一集合的接連實體頁之一集合的方塊圖,該等使用者資料區塊中之每一者包括大於一個實體頁之長度的長度。
圖17為說明用於以達成在圖15及圖16之內容脈絡中所描述之資料結構的方式儲存/寫入使用者資料區塊之方法之一實施例的流程圖,且其中區塊長度及頁長度可不同。
圖18為說明用於自上文在圖15及圖16之內容脈絡中所描述之資料結構讀取使用者資料區塊之方法之一實施例的另一流程圖,且其中區塊長度及頁長度可不同。
10‧‧‧固態磁碟機(SSD)
12‧‧‧系統
20‧‧‧主機
30‧‧‧模組
40‧‧‧控制器/主控制器
42‧‧‧模組介面
44‧‧‧主機介面/主機至SSD控制器介面
46‧‧‧快取記憶體/快取記憶體裝置

Claims (86)

  1. 一種記憶體系統,其包含:具有一記憶體裝置及一功能引擎之一模組,其中該模組經組態以關於該模組且基於一控制參數及一模組參數之一結合執行一管理功能;及一控制器,其中該控制參數係藉由該控制器提供且該模組參數係藉由該功能引擎提供;其中該功能引擎進一步藉由執行一相對應功能以判定該模組參數,且其中該功能引擎包含一報告區段,該報告區段經組態以判定與該記憶體裝置相關的一或多個使用統計資料,並且將該等使用統計資料提供給該功能引擎及該控制器中之至少一者。
  2. 如請求項1之記憶體系統,其中該記憶體系統包含一固態磁碟機。
  3. 如請求項1之記憶體系統,其中該記憶體裝置包含複數個記憶體裝置。
  4. 如請求項1之記憶體系統,其中該管理功能包含一磨損調平功能。
  5. 如請求項1之記憶體系統,其中該管理功能包含一廢棄項目收集功能。
  6. 如請求項1之記憶體系統,其中該管理功能包含一位元密度組態功能。
  7. 如請求項1之記憶體系統,其中該管理功能包含一位址轉譯功能。
  8. 如請求項1之記憶體系統,其中該管理功能包含一錯誤偵測功能。
  9. 如請求項1之記憶體系統,其中該管理功能包含一錯誤校正功能。
  10. 如請求項1之記憶體系統,其中該模組包含複數個模組且其中該控制器針對該複數個模組中之每一模組提供一各別介面。
  11. 如請求項1之記憶體系統,其中該參數包含複數個參數。
  12. 如請求項1之記憶體系統,其中該管理功能包含一資料編碼功能。
  13. 如請求項1之記憶體系統,其中該管理功能包含一資料解碼功能。
  14. 如請求項1之記憶體系統,其中該管理功能包含一校準功能。
  15. 如請求項1之記憶體系統,其中該管理功能包含一補償功能。
  16. 如請求項1之記憶體系統,其中該管理功能包含一寫入功能。
  17. 如請求項1之記憶體系統,其中該管理功能包含一讀取功能。
  18. 如請求項1之記憶體系統,其中該參數包含資料封包長 度。
  19. 如請求項1之記憶體系統,其中該管理功能包含命令佇列作業。
  20. 如請求項1之記憶體系統,其中該管理功能包含一抹除功能。
  21. 如請求項1之記憶體系統,其中該管理功能包含一區塊抽象化功能。
  22. 如請求項1之記憶體系統,其中該管理功能包含一資料路徑配置功能。
  23. 如請求項1之記憶體系統,其中該參數包含同位位元之一數目。
  24. 如請求項1之記憶體系統,其中該管理功能包含一電力管理功能。
  25. 如請求項1之記憶體系統,其中該管理功能包含一監視功能。
  26. 如請求項1之記憶體系統,其中該管理功能包含一資料再新功能。
  27. 如請求項1之記憶體系統,其中該管理功能包含一分割功能。
  28. 如請求項1之記憶體系統,其中該管理功能包含區段分配。
  29. 如請求項1之記憶體系統,其中該管理功能將優先權給予該控制器參數。
  30. 如請求項1之記憶體系統,其中該管理功能將優先權給 予該模組參數。
  31. 如請求項1之記憶體系統,其中該控制參數指示該控制器對該管理功能之控制的一量。
  32. 如請求項1之記憶體系統,其中該控制參數為一初始化參數。
  33. 如請求項1之記憶體系統,其中該控制參數為一操作參數。
  34. 如請求項1之記憶體系統,其中該控制參數包含區段大小、區段分配次序及一區塊分配次序中之至少一者。
  35. 如請求項1之記憶體系統,其中該控制參數包含一數值準則。
  36. 如請求項1之記憶體系統,其中該管理功能包含資料流管理。
  37. 如請求項1之記憶體系統,其中該控制參數指示交錯係在編碼之前抑或在編碼之後執行。
  38. 如請求項1之記憶體系統,其中該控制參數指示該模組之一編碼器之一組態。
  39. 如請求項1之記憶體系統,其中該控制參數指示該模組之一解碼器之一組態。
  40. 如請求項1之記憶體系統,其中該控制參數指示該記憶體裝置之一類型。
  41. 如請求項1之記憶體系統,其中該控制參數指示該記憶體裝置之至少一部分之一使用模式。
  42. 如請求項1之記憶體系統,其中該控制參數指示一特定 錯誤校正碼。
  43. 如請求項1之記憶體系統,其中該控制參數指示一錯誤容量設定。
  44. 如請求項1之記憶體系統,其中該記憶體裝置包含複數個記憶體裝置,且其中該模組參數係與該等記憶體裝置之一實體配置相關聯。
  45. 如請求項1之記憶體系統,其中該管理功能為該模組之一硬體功能。
  46. 如請求項1之記憶體系統,其中該管理功能為該模組之一軟體功能。
  47. 如請求項1之記憶體系統,其中該模組參數係與SNR相關資料相關聯。
  48. 如請求項1之記憶體系統,其中該管理功能為一資料緩衝器功能。
  49. 如請求項1之記憶體系統,其中該管理功能為一排序功能。
  50. 如請求項1之記憶體系統,其中該管理功能係至少基於該模組參數而組態。
  51. 如請求項1之記憶體系統,其中該功能包含一資料路徑方向切換功能。
  52. 如請求項1之記憶體系統,其中該模組參數包括使用統計資料。
  53. 如請求項1之記憶體系統,其中該模組參數包括一記憶體組態。
  54. 如請求項1之記憶體系統,其中該模組參數包括一磨損調平組態。
  55. 如請求項1之記憶體系統,其中該模組參數包含一區塊內之過時頁之一數目,該區塊要求該區塊的重新分配。
  56. 如請求項1之記憶體系統,其中該模組參數包含記憶體性能資料。
  57. 如請求項1之記憶體系統,其中該模組包括複數個媒體埠,該複數個媒體埠中之每一者經組態以在讀取/寫入操作中存取至少一記憶體裝置,且該模組經組態以同時支援至具有一第一記憶體裝置之一第一媒體埠的一第一寫入操作及至具有一第二記憶體裝置之一第二媒體埠的一第二寫入操作。
  58. 如請求項1之記憶體系統,其中該模組包括複數個媒體埠,該複數個媒體埠中之每一者經組態以在讀取/寫入操作中存取至少一記憶體裝置,且該模組經組態以同時支援至具有一第一記憶體裝置之一第一媒體埠的一寫入操作及自具有一第二記憶體裝置之一第二媒體埠的一讀取操作。
  59. 如請求項1之記憶體系統,其中該模組包括至少一媒體埠,該至少一媒體埠經組態以在讀取/寫入操作中存取至少兩個記憶體裝置,且該媒體埠經組態以支援存取一第一記憶體裝置、定義資料封包之一第一集合的一第一讀取/寫入操作及存取一第二記憶體裝置、定義資料封包之一第二集合的一第二讀取/寫入操作且使資料封包之該第 一集合與資料封包之該第二集合分時多工。
  60. 如請求項1之記憶體系統,其中該模組包括複數個媒體埠,該複數個媒體埠中之每一者經組態以在讀取/寫入操作中存取至少一記憶體裝置,且該模組經組態以支援將一單一資料單元分割成至少兩個分割區之一寫入操作及一讀取操作中的至少一所選擇操作,該等分割區中之每一者係與一不同媒體埠相關聯。
  61. 如請求項60之記憶體系統,其中該單一資料單元為一具有頁之區塊,且該區塊係基於該等頁之間的頁邊界而分割至該等媒體埠。
  62. 一種用於一記憶體系統中之模組,其包含:一記憶體裝置,其中該模組經組態基於一控制參數及一模組參數以關於該記憶體裝置執行一管理功能,其中該控制參數係藉由一記憶體控制器提供且該模組參數係藉由該模組之一功能引擎提供,及其中該模組經組態以至少基於該控制參數及該模組參數之一第一集合以用於一所選擇管理功能的一第一模式操作且基於該控制參數及該模組參數之一第二集合以用於該所選擇管理功能的一第二模式操作,其中該控制參數及該模組參數之該第一集合不同於該控制參數及該模組參數之該第二集合。
  63. 一種用於與一主機裝置數位資料通信以為該主機裝置提供資料儲存容量之記憶體系統,該記憶體系統包含:包括一非揮發性記憶體區段之至少一模組,且該模組 經組態以基於一或多個模組輸入參數及一或多個控制參數針對僅該模組之該非揮發性記憶體區段獨立地執行一磨損調平功能、一廢棄項目收集功能及一位元密度設定功能中之至少一者,其中該一或多個模組輸入參數係經由該至少一模組之一功能引擎判定,且其中該功能引擎具有一報告區段,該報告區段用於報告與該給定模組之該非揮發性記憶體相關的一或多個使用統計資料,以使得該等使用統計資料可供該功能引擎及該控制器中之至少一者使用;及一控制器,其經組態以用於與該主機裝置之該數位資料通信且經進一步組態以用於與該模組之模組數位資料通信以使得往返於該模組流動之任何資料通過該控制器,且至少該控制器經組態以將該一或多個控制參數提供給該模組以定義該模組中之該磨損調平功能、該廢棄項目收集功能及該位元密度功能中之至少一者的一獨立執行。
  64. 如請求項63之記憶體系統,其中該功能引擎經組態以用於執行該自主執行。
  65. 如請求項63之記憶體系統,其中該模組經組態以至少基於該一或多個模組輸入參數之一第一集合以用於該等功能中之一所選擇功能的一第一模式操作且基於該一或多個模組輸入參數之一第二集合以用於該等功能中之該所選擇功能的一第二模式操作,其中模組輸入參數之該第一集合不同於模組輸入參數之該第二集合。
  66. 如請求項65之記憶體系統,其中該模組經組態以基於該等模組輸入參數將該第一模式應用於該非揮發性記憶體區段之一第一部分且將該第二模式應用於該非揮發性記憶體區段之一第二部分,其中該第一部分不同於該第二部分。
  67. 如請求項66之記憶體系統,其中該非揮發性記憶體區段包括複數個記憶體胞,且該模組經組態而以一第一位元密度程式化該第一部分之該等記憶體胞且以不同於該第一位元密度的一第二位元密度程式化該第二部分之該等記憶體胞。
  68. 如請求項67之記憶體系統,其中該模組經組態以基於該等模組輸入參數確定用於該等記憶體胞之該第一部分的該第一位元密度及用於該等記憶體胞之該第二部分的該第二位元密度。
  69. 如請求項67之記憶體系統,其中針對該模組用於該等記憶體胞之該第一部分的該第一位元密度及用於該等記憶體胞之該第二部分的該第二位元密度係藉由該模組基於該模組之該非揮發性記憶體區段的至少一受監視特性判定。
  70. 如請求項69之記憶體系統,其中該受監視特性為該模組之該非揮發性記憶體區段的一錯誤校正統計資料。
  71. 如請求項65之記憶體系統,其包括複數個該等模組,且該等模組之一第一模組包括一第一非揮發性記憶體區段且該第一模組經組態以將該第一模式作為一特定位元密 度應用於該第一模組之該非揮發性記憶體區段的至少一部分,且該等模組之一第二模組包括一第二非揮發性記憶體區段且該第二模組經組態以將該第一模式作為該特定位元密度應用於該第二模組之該非揮發性記憶體區段的另一部分,以使得以該特定位元密度程式化的該第一模組之該部分在大小上不同於以該特定位元密度程式化的該第二模組之該非揮發性記憶體之該另一部分。
  72. 如請求項63之記憶體系統,其中該模組經進一步組態以針對僅該模組之該非揮發性記憶體區段獨立地執行一邏輯至實體區塊定址功能以用於與該控制器之該數位通信。
  73. 如請求項63之記憶體系統,其中該功能引擎經組態以針對僅該模組之該非揮發性記憶體區段自主地執行該磨損調平功能、該廢棄項目收集功能及該位元密度設定功能中之至少一者而無來自該控制器的監督。
  74. 如請求項63之記憶體系統,其包括複數個該等模組,且其中每一模組經組態以針對該模組之該非揮發性記憶體區段獨立地執行一單獨快閃轉譯層。
  75. 如請求項63之記憶體系統,其包括複數個該等模組,且其中每一模組維持一分散式快閃轉譯層之一模組部分。
  76. 如請求項75之記憶體系統,其中每一模組經組態以可選擇地以一第一模式操作以使得每一模組自主地可選擇地執行該分散式快閃轉譯層之每一模組部分,且在該控制器的至少部分控制下可選擇地以一第二模式操作以使得 每一模組與該控制器合作而可選擇地執行該分散式快閃轉譯層的每一模組部分。
  77. 如請求項63之記憶體系統,其中該模組之該非揮發性記憶體區段係由彼此相異的複數個記憶體裝置組成,且該模組經組態以將一儲存密度指派給每一記憶體裝置,以使得該等記憶體裝置之一個群組經組態而以一高儲存密度儲存資料且該等記憶體裝置的另一群組經組態而以一低儲存密度儲存資料,其中該高儲存密度大於該低儲存密度。
  78. 如請求項77之記憶體系統,其中每一記憶體裝置係由複數個記憶體胞組成,且該高儲存密度為每胞兩個以上位元,而該低儲存密度為每胞僅僅兩個位元。
  79. 如請求項63之記憶體系統,其中讀回值係藉由該報告區段回應於藉由該控制器所執行之一讀取操作予以產生,且其中該等使用統計資料包括一讀取操作期間之讀取值之至少一集合的一平均讀回值及該讀取操作期間之讀取值之至少該集合的讀回值之一標準差中的至少一者及一或多個錯誤校正統計資料。
  80. 如請求項79之記憶體系統,其中該等錯誤校正統計資料包括一累積錯誤計數及一每區塊錯誤計數中之至少一者,其中該讀取操作解碼一區塊錯誤校正碼。
  81. 如請求項79之記憶體系統,其中該報告區段經組態以基於該等使用統計資料提供與該非揮發性記憶體相關之一健康指示。
  82. 如請求項81之記憶體系統,其中該給定模組經組態而以一當前記憶體儲存密度型樣程式化該非揮發性記憶體區段且藉由將該當前記憶體儲存密度型樣改變為一經修改記憶體儲存密度型樣來回應該健康指示,以使得該非揮發性記憶體區段之至少一部分係以該經修改記憶體儲存密度型樣中之一經修改位元密度程式化,該經修改位元密度低於該當前記憶體儲存密度型樣中之用於該部分的一當前位元密度。
  83. 如請求項81之記憶體系統,其中該給定模組之該報告區段經組態以提供該健康指示以作為該模組之一預測使用壽命終結。
  84. 一種使用於用於與一主機裝置數位資料通信以為該主機裝置提供資料儲存容量之一記憶體系統中之模組,該記憶體系統包括用於直接與該主機裝置介接以提供該數位資料通信之一控制器及包括該模組之複數個模組,該複數個模組與該控制器介接以用於作為與該主機裝置之該數位資料通信之部分的在該控制器與該等模組之間的模組數位通信,該模組包含:一非揮發性記憶體區段,該非揮發性記憶體區段包含彼此相異的複數個記憶體裝置,且該模組經組態以將一儲存密度指派給每一記憶體裝置,以使得該等記憶體裝置之一個群組經組態而以一高儲存密度儲存資料且該等記憶體裝置的另一群組經組態而以一低儲存密度儲存資料,其中該高儲存密度大於該低儲存密度; 一功能引擎,其用於判定關於該非揮發性記憶體區段之複數個模組輸入參數;及一配置,其用於自該功能引擎接收該複數個模組輸入參數且自該控制器接收一或多個控制參數以定義一磨損調平功能、一廢棄項目收集功能及一位元密度功能中之至少一者,且該配置用於基於該等模組輸入參數及該一或多個控制參數針對僅該模組之該非揮發性記憶體區段獨立地執行該磨損調平功能、該廢棄項目收集功能及該位元密度設定功能中之至少一者的執行。
  85. 一記憶體系統中之一種方法,其包含:接收具有一記憶體裝置之一模組中的一控制參數;經由該模組之一功能引擎判定一模組參數;在該模組中,關於該記憶體裝置至少部分地基於該控制參數及該模組參數執行一管理功能;經由該功能引擎判定該記憶體裝置之使用統計資料;及使該等使用統計資料可供一控制器及該功能引擎使用。
  86. 一種在用於與一主機裝置數位資料通信以為該主機裝置提供資料儲存容量之一記憶體系統中的方法,該方法包含:提供至少一模組,該模組包括一非揮發性記憶體區段,且組態該模組以基於一或多個模組輸入參數及一或多個控制參數針對僅該模組之該非揮發性記憶體區段獨 立地執行一磨損調平功能、一廢棄項目收集功能及一位元密度設定功能中之至少一者;在一第一模式,基於該一或多個模組輸入參數之一第一集合及一或多個控制參數之一第一集合執行該等功能中之一所選擇功能;在一第二模式,基於該一或多個模組輸入參數之一第二集合及一或多個控制參數之一第二集合執行該等功能中之該所選擇功能,其中至少模組輸入參數之該第一集合不同於模組輸入參數之該第二集合;及針對與該主機裝置之該數位資料通信且針對與該模組之模組數位資料通信配置一控制器,以使得往返於該模組流動之任何資料通過該控制器,且組態至少該控制器以將該一或多個控制參數提供給該模組以定義該模組中之該磨損調平功能、該廢棄項目收集功能及該位元密度功能中之至少一者的一獨立執行。
TW101103423A 2011-02-02 2012-02-02 記憶體系統中至少半自主模組及其方法 TWI588651B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/019,977 US8595415B2 (en) 2011-02-02 2011-02-02 At least semi-autonomous modules in a memory system and methods

Publications (2)

Publication Number Publication Date
TW201237623A TW201237623A (en) 2012-09-16
TWI588651B true TWI588651B (zh) 2017-06-21

Family

ID=46578360

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101103423A TWI588651B (zh) 2011-02-02 2012-02-02 記憶體系統中至少半自主模組及其方法

Country Status (7)

Country Link
US (1) US8595415B2 (zh)
EP (1) EP2671159B1 (zh)
JP (2) JP5756187B2 (zh)
KR (1) KR101577512B1 (zh)
CN (1) CN103339617B (zh)
TW (1) TWI588651B (zh)
WO (1) WO2012106085A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11556272B2 (en) 2020-09-18 2023-01-17 Kioxia Corporation System and method for NAND multi-plane and multi-die status signaling

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9189385B2 (en) * 2010-03-22 2015-11-17 Seagate Technology Llc Scalable data structures for control and management of non-volatile storage
US11336303B2 (en) 2010-06-04 2022-05-17 Micron Technology, Inc. Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory
US8615703B2 (en) 2010-06-04 2013-12-24 Micron Technology, Inc. Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory
EP2646922A4 (en) 2010-12-01 2015-11-25 Lsi Corp DYNAMIC MANAGEMENT OF HIGHER LEVEL REDUNDANCY MODE WITH INDEPENDENT SILICON ELEMENTS
CN103415844B (zh) 2011-01-18 2016-04-20 希捷科技有限公司 用于高级冗余信息计算的系统和方法
KR101861247B1 (ko) * 2011-04-06 2018-05-28 삼성전자주식회사 메모리 컨트롤러, 이의 데이터 처리 방법, 및 이를 포함하는 메모리 시스템
US8868854B2 (en) * 2011-12-15 2014-10-21 Lsi Corporation Systems and methods for handling out of order reporting in a storage device
WO2013140435A1 (en) * 2012-03-19 2013-09-26 Hitachi, Ltd. Data storage system comprising non-volatile semiconductor storage device, and storage control method
US20140052899A1 (en) * 2012-08-18 2014-02-20 Yen Chih Nan Memory address translation method for flash storage system
US8910005B2 (en) 2012-12-03 2014-12-09 Lsi Corporation Systems and methods for selective retry data retention processing
US9190104B2 (en) 2012-12-13 2015-11-17 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for data retry using averaging process
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
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
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
KR102050729B1 (ko) * 2013-02-12 2019-12-02 삼성전자 주식회사 메모리 시스템
US8949696B2 (en) 2013-02-19 2015-02-03 Lsi Corporation Systems and methods for trapping set disruption
WO2015070110A2 (en) * 2013-11-07 2015-05-14 Netlist, Inc. Hybrid memory module and system and method of operating the same
US9612973B2 (en) * 2013-11-09 2017-04-04 Microsoft Technology Licensing, Llc Using shared virtual memory resources for performing memory-mapping
US9323625B2 (en) 2013-11-12 2016-04-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for lost synchronization data set reprocessing
US9385758B2 (en) 2014-01-02 2016-07-05 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for efficient targeted symbol flipping
US9645741B2 (en) * 2014-02-05 2017-05-09 Sandisk Technologies Llc Storage module and host device for storage module defragmentation
US9690489B2 (en) * 2014-03-08 2017-06-27 Storart Technology Co. Ltd. Method for improving access performance of a non-volatile storage device
US9454551B2 (en) * 2014-03-13 2016-09-27 NXGN Data, Inc. System and method for management of garbage collection operation in a solid state drive
US9710173B2 (en) 2014-05-20 2017-07-18 Micron Technology, Inc. Read cache memory with DRAM class promotion
US9652415B2 (en) 2014-07-09 2017-05-16 Sandisk Technologies Llc Atomic non-volatile memory data transfer
US9904621B2 (en) * 2014-07-15 2018-02-27 Sandisk Technologies Llc Methods and systems for flash buffer sizing
US9645744B2 (en) 2014-07-22 2017-05-09 Sandisk Technologies Llc Suspending and resuming non-volatile memory operations
US10552043B2 (en) * 2014-09-09 2020-02-04 Toshiba Memory Corporation Memory system
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US9582201B2 (en) 2014-09-26 2017-02-28 Western Digital Technologies, Inc. Multi-tier scheme for logical storage management
US9952978B2 (en) 2014-10-27 2018-04-24 Sandisk Technologies, Llc Method for improving mixed random performance in low queue depth workloads
US9753649B2 (en) 2014-10-27 2017-09-05 Sandisk Technologies Llc Tracking intermix of writes and un-map commands across power cycles
US11334478B2 (en) * 2014-10-30 2022-05-17 Kioxia Corporation Memory system and nonvolatile memory medium in which program is stored to optimize operating life
US9824007B2 (en) 2014-11-21 2017-11-21 Sandisk Technologies Llc Data integrity enhancement to protect against returning old versions of data
US9817752B2 (en) 2014-11-21 2017-11-14 Sandisk Technologies Llc Data integrity enhancement to protect against returning old versions of data
US9647697B2 (en) 2015-03-16 2017-05-09 Sandisk Technologies Llc Method and system for determining soft information offsets
US9772796B2 (en) 2015-04-09 2017-09-26 Sandisk Technologies Llc Multi-package segmented data transfer protocol for sending sub-request to multiple memory portions of solid-state drive using a single relative memory address
US10372529B2 (en) 2015-04-20 2019-08-06 Sandisk Technologies Llc Iterative soft information correction and decoding
US9778878B2 (en) 2015-04-22 2017-10-03 Sandisk Technologies Llc Method and system for limiting write command execution
US9870149B2 (en) 2015-07-08 2018-01-16 Sandisk Technologies Llc Scheduling operations in non-volatile memory devices using preference values
US10552058B1 (en) 2015-07-17 2020-02-04 Radian Memory Systems, Inc. Techniques for delegating data processing to a cooperative memory controller
US9715939B2 (en) 2015-08-10 2017-07-25 Sandisk Technologies Llc Low read data storage management
JP6377584B2 (ja) * 2015-09-02 2018-08-22 株式会社三共 遊技機
JP6762751B2 (ja) * 2015-09-24 2020-09-30 株式会社三共 遊技機
US9952788B2 (en) * 2015-09-29 2018-04-24 Cnex Labs, Inc. Method and apparatus for providing a shared nonvolatile memory system using a distributed FTL scheme
US10228990B2 (en) 2015-11-12 2019-03-12 Sandisk Technologies Llc Variable-term error metrics adjustment
US10126970B2 (en) 2015-12-11 2018-11-13 Sandisk Technologies Llc Paired metablocks in non-volatile storage device
US9990311B2 (en) * 2015-12-28 2018-06-05 Andes Technology Corporation Peripheral interface circuit
US9837146B2 (en) 2016-01-08 2017-12-05 Sandisk Technologies Llc Memory system temperature management
US10210121B2 (en) * 2016-01-27 2019-02-19 Quanta Computer Inc. System for switching between a single node PCIe mode and a multi-node PCIe mode
KR102529171B1 (ko) 2016-02-26 2023-05-04 삼성전자주식회사 메모리 장치 진단 시스템
US10732856B2 (en) 2016-03-03 2020-08-04 Sandisk Technologies Llc Erase health metric to rank memory portions
US9934151B2 (en) 2016-06-28 2018-04-03 Dell Products, Lp System and method for dynamic optimization for burst and sustained performance in solid state drives
US10481830B2 (en) 2016-07-25 2019-11-19 Sandisk Technologies Llc Selectively throttling host reads for read disturbs in non-volatile memory system
US10971241B2 (en) 2017-01-30 2021-04-06 Toshiba Memory Corporation Performance based method and system for patrolling read disturb errors in a memory unit
US11003381B2 (en) * 2017-03-07 2021-05-11 Samsung Electronics Co., Ltd. Non-volatile memory storage device capable of self-reporting performance capabilities
US11294594B2 (en) * 2017-08-07 2022-04-05 Kioxia Corporation SSD architecture supporting low latency operation
US10509722B2 (en) 2017-08-31 2019-12-17 Micron Technology, Inc. Memory device with dynamic cache management
US10553285B2 (en) * 2017-11-28 2020-02-04 Western Digital Technologies, Inc. Single-port memory with opportunistic writes
KR102370278B1 (ko) * 2017-11-30 2022-03-07 에스케이하이닉스 주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템, 및 그의 동작방법
CN108037725B (zh) * 2017-12-08 2019-09-03 中冶南方工程技术有限公司 一种读写plc数据的方法和装置
KR20190075353A (ko) * 2017-12-21 2019-07-01 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10564868B2 (en) * 2018-01-24 2020-02-18 Western Digital Technologies, Inc. Method and apparatus for selecting power states in storage devices
TWI670598B (zh) * 2018-05-14 2019-09-01 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置
US10747613B2 (en) * 2018-09-07 2020-08-18 Toshiba Memory Corporation Pooled frontline ECC decoders in memory systems
CN110119132B (zh) * 2019-04-09 2023-01-24 吴怡文 一种控制器实现功能设定多样化的方法和系统
US11366976B2 (en) * 2019-05-09 2022-06-21 Micron Technology, Inc. Updating manufactured product life cycle data in a database based on scanning of encoded images
JP7214758B2 (ja) 2019-11-15 2023-01-30 キオクシア株式会社 ストレージデバイスおよびストレージシステム
US11487544B2 (en) 2020-01-15 2022-11-01 Western Digital Technologies, Inc. Method and device for simultaneously decoding data in parallel to improve quality of service
US11221800B2 (en) 2020-03-02 2022-01-11 Micron Technology, Inc. Adaptive and/or iterative operations in executing a read command to retrieve data from memory cells
US11029890B1 (en) 2020-03-02 2021-06-08 Micron Technology, Inc. Compound feature generation in classification of error rate of data retrieved from memory cells
US11086572B1 (en) 2020-03-02 2021-08-10 Micron Technology, Inc. Self adapting iterative read calibration to retrieve data from memory cells
US11740970B2 (en) 2020-03-02 2023-08-29 Micron Technology, Inc. Dynamic adjustment of data integrity operations of a memory system based on error rate classification
US12009034B2 (en) * 2020-03-02 2024-06-11 Micron Technology, Inc. Classification of error rate of data retrieved from memory cells
US11081200B1 (en) 2020-05-07 2021-08-03 Micron Technology, Inc. Intelligent proactive responses to operations to read data from memory cells
US11562793B2 (en) 2020-05-07 2023-01-24 Micron Technology, Inc. Read soft bits through boosted modulation following reading hard bits
US11693798B2 (en) 2020-07-10 2023-07-04 Samsung Electronics Co., Ltd. Layered ready status reporting structure
US11494264B2 (en) 2020-07-28 2022-11-08 Micron Technology, Inc. Generating a protected and balanced codeword
US11567831B2 (en) 2020-07-28 2023-01-31 Micron Technology, Inc. Generating a protected and balanced codeword
US11237906B1 (en) 2020-07-28 2022-02-01 Micron Technology, Inc. Generating a balanced codeword protected by an error correction code
US11947806B2 (en) * 2020-11-03 2024-04-02 Micron Technology, Inc. Life expectancy monitoring for memory devices
US11507296B2 (en) 2021-03-10 2022-11-22 Micron Technology, Inc. Repair operation techniques
US11622135B2 (en) * 2021-06-23 2023-04-04 Synamedia Limited Bandwidth allocation for low latency content and buffered content
US11983409B1 (en) 2022-10-20 2024-05-14 Dell Products L.P. Host-read-based autonomous compute storage device system
US11907080B1 (en) 2022-10-20 2024-02-20 Dell Products L.P. Background-operation-based autonomous compute storage device system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138267A1 (en) * 2003-12-23 2005-06-23 Bains Kuljit S. Integral memory buffer and serial presence detect capability for fully-buffered memory modules
US20060149857A1 (en) * 1997-12-05 2006-07-06 Holman Thomas J Memory system including a memory module having a memory module controller
US20080126678A1 (en) * 2006-11-06 2008-05-29 Nagamasa Mizushima Semiconductor memory system for flash memory
TWI303828B (en) * 2006-03-03 2008-12-01 Winbond Electronics Corp A method and a system for erasing a nonvolatile memory
TWI309830B (en) * 2005-06-20 2009-05-11 Sandisk Corp Method of reading data from non-volatile storage and non-volatile memory system

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0950398A (ja) * 1995-08-10 1997-02-18 Fuji Xerox Co Ltd 記憶装置
US7007130B1 (en) * 1998-02-13 2006-02-28 Intel Corporation Memory system including a memory module having a memory module controller interfacing between a system memory controller and memory devices of the memory module
US7024518B2 (en) * 1998-02-13 2006-04-04 Intel Corporation Dual-port buffer-to-memory interface
US6970968B1 (en) * 1998-02-13 2005-11-29 Intel Corporation Memory module controller for providing an interface between a system memory controller and a plurality of memory devices on a memory module
US6968419B1 (en) * 1998-02-13 2005-11-22 Intel Corporation Memory module having a memory module controller controlling memory transactions for a plurality of memory devices
US8452912B2 (en) * 2007-10-11 2013-05-28 Super Talent Electronics, Inc. Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read
US6684289B1 (en) * 2000-11-22 2004-01-27 Sandisk Corporation Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory
US7328309B2 (en) 2004-10-14 2008-02-05 International Business Machines Corporation On-demand cache memory for storage subsystems
US7421598B2 (en) 2005-02-09 2008-09-02 International Business Machines Corporation Dynamic power management via DIMM read operation limiter
KR20090102789A (ko) * 2006-12-06 2009-09-30 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) 프로그레시브 raid를 이용한 데이터 저장 장치, 시스템 및 방법
US7694099B2 (en) * 2007-01-16 2010-04-06 Advanced Risc Mach Ltd Memory controller having an interface for providing a connection to a plurality of memory devices
KR100823171B1 (ko) * 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
US20090063895A1 (en) * 2007-09-04 2009-03-05 Kurt Smith Scaleable and maintainable solid state drive
TWI376603B (en) * 2007-09-21 2012-11-11 Phison Electronics Corp Solid state disk storage system with a parallel accessing architecture and a solid state disk controller
US8131912B2 (en) * 2007-09-27 2012-03-06 Kabushiki Kaisha Toshiba Memory system
US20100017650A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
US8412880B2 (en) 2009-01-08 2013-04-02 Micron Technology, Inc. Memory system controller to manage wear leveling across a plurality of storage nodes
US8250282B2 (en) * 2009-05-14 2012-08-21 Micron Technology, Inc. PCM memories for storage bus interfaces
US9123409B2 (en) * 2009-06-11 2015-09-01 Micron Technology, Inc. Memory device for a hierarchical memory architecture
CN102449607B (zh) * 2009-07-22 2015-05-27 株式会社日立制作所 具有多个闪存封装的存储系统
US8364929B2 (en) * 2009-10-23 2013-01-29 Seagate Technology Llc Enabling spanning for a storage device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060149857A1 (en) * 1997-12-05 2006-07-06 Holman Thomas J Memory system including a memory module having a memory module controller
US20050138267A1 (en) * 2003-12-23 2005-06-23 Bains Kuljit S. Integral memory buffer and serial presence detect capability for fully-buffered memory modules
TWI309830B (en) * 2005-06-20 2009-05-11 Sandisk Corp Method of reading data from non-volatile storage and non-volatile memory system
TWI303828B (en) * 2006-03-03 2008-12-01 Winbond Electronics Corp A method and a system for erasing a nonvolatile memory
US20080126678A1 (en) * 2006-11-06 2008-05-29 Nagamasa Mizushima Semiconductor memory system for flash memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11556272B2 (en) 2020-09-18 2023-01-17 Kioxia Corporation System and method for NAND multi-plane and multi-die status signaling
TWI816183B (zh) * 2020-09-18 2023-09-21 日商鎧俠股份有限公司 用於nand多平面及多晶粒狀態傳訊的固態硬碟及方法

Also Published As

Publication number Publication date
CN103339617B (zh) 2017-06-23
JP2015172965A (ja) 2015-10-01
US20120198129A1 (en) 2012-08-02
JP6063995B2 (ja) 2017-01-18
JP5756187B2 (ja) 2015-07-29
KR101577512B1 (ko) 2015-12-14
EP2671159A4 (en) 2014-07-30
KR20130121165A (ko) 2013-11-05
JP2014507724A (ja) 2014-03-27
WO2012106085A2 (en) 2012-08-09
WO2012106085A3 (en) 2012-10-11
EP2671159B1 (en) 2019-08-28
CN103339617A (zh) 2013-10-02
TW201237623A (en) 2012-09-16
EP2671159A2 (en) 2013-12-11
US8595415B2 (en) 2013-11-26

Similar Documents

Publication Publication Date Title
TWI588651B (zh) 記憶體系統中至少半自主模組及其方法
TWI514138B (zh) 在讀取/寫入操作中存取至少一非揮發性記憶體裝置之讀取/寫入設備及方法
US11537529B1 (en) Storage drive with defect management on basis of segments corresponding to logical erase units
US9298534B2 (en) Memory system and constructing method of logical block
US9483404B2 (en) Write admittance policy for a memory cache
CN110825319B (zh) 基于块状态确定可用性的存储器系统及操作方法
CN114072774A (zh) 数据存储系统中的块模式切换
TWI571882B (zh) 平均磨損方法、記憶體控制電路單元及記憶體儲存裝置
US10642525B2 (en) Multiple-stage data lifetime management for storage devices
CN113924546A (zh) 非易失性存储器中的磨损感知块模式转换
KR20220085804A (ko) 용도 블록을 위한 동적 오버 프로비저닝 할당

Legal Events

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