两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

存儲(chǔ)器系統(tǒng)中的至少半自主模塊及其方法與流程

文檔序號(hào):12671086閱讀:288來源:國知局
存儲(chǔ)器系統(tǒng)中的至少半自主模塊及其方法與流程
本發(fā)明大體涉及使用非易失性存儲(chǔ)器(例如,固態(tài)驅(qū)動(dòng)器(“SSD”)和其它存儲(chǔ)裝置)的存儲(chǔ)器系統(tǒng)的領(lǐng)域,且更明確地說涉及用于在存儲(chǔ)器系統(tǒng)中使用的至少半自主模塊和相關(guān)聯(lián)方法,以及相關(guān)特征。

背景技術(shù):
現(xiàn)有技術(shù)固態(tài)驅(qū)動(dòng)器通常包含可與標(biāo)準(zhǔn)主機(jī)裝置以及多個(gè)快閃存儲(chǔ)器裝置介接的控制器。所述快閃存儲(chǔ)器裝置一般各自呈存儲(chǔ)器裸片的形式。控制器與快閃存儲(chǔ)器裝置之間的連接通常是呈快閃導(dǎo)向接口的形式,其中每一存儲(chǔ)器裝置個(gè)別地連接到快閃導(dǎo)向接口。所述控制器可具有多個(gè)快閃導(dǎo)向接口,其中這些接口中的每一者連接到多個(gè)存儲(chǔ)器裝置。申請(qǐng)人認(rèn)識(shí)到,關(guān)于此現(xiàn)有技術(shù)配置、特別是關(guān)于較大容量的固態(tài)驅(qū)動(dòng)器,存在許多缺點(diǎn)。舉例來說,控制器必須控制大量的個(gè)別存儲(chǔ)器裝置。作為另一實(shí)例,控制器上所需的信號(hào)連接點(diǎn)的數(shù)目與驅(qū)動(dòng)器的容量成比例地增加。在再一實(shí)例中,控制器對(duì)管理功能(例如,額外負(fù)荷(overhead)功能,例如磨損平衡)負(fù)責(zé),以使得控制器與存儲(chǔ)器裝置之間的接口負(fù)擔(dān)上了與這些功能有關(guān)的業(yè)務(wù)。作為又一實(shí)例,控制器對(duì)大量存儲(chǔ)器裝置進(jìn)行測(cè)試和監(jiān)視是一項(xiàng)復(fù)雜的任務(wù)。關(guān)于塊導(dǎo)向非易失性存儲(chǔ)器,申請(qǐng)人還認(rèn)識(shí)到現(xiàn)有技術(shù)中關(guān)于非易失性存儲(chǔ)器的使用的相關(guān)問題。應(yīng)了解,現(xiàn)有技術(shù)中關(guān)于存取塊導(dǎo)向非易失性存儲(chǔ)器的盛行方法為將用戶數(shù)據(jù)加上伴隨的額外信息準(zhǔn)確地分配到物理頁上。對(duì)本論述而言,術(shù)語“塊導(dǎo)向”有關(guān)于基于頁的存儲(chǔ)器的使用,對(duì)所述存儲(chǔ)器的使用是通過使用長(zhǎng)度大體上等于頁長(zhǎng)度的用戶數(shù)據(jù)塊來實(shí)現(xiàn)。如將進(jìn)一步論述,就塊導(dǎo)向存儲(chǔ)器來說,一些頁可基于短于一個(gè)頁長(zhǎng)度的用戶數(shù)據(jù)塊而部分地未使用,但用戶數(shù)據(jù)塊不長(zhǎng)于頁長(zhǎng)度。作為非限制性實(shí)例,NAND快閃存儲(chǔ)器通常如此配置以成為此類型的塊導(dǎo)向存儲(chǔ)器。塊導(dǎo)向存儲(chǔ)器中的此類不靈活分配因此產(chǎn)生了所存儲(chǔ)信息與包括每一物理頁的存儲(chǔ)胞元的數(shù)目之間的完全對(duì)應(yīng),并且在每胞元單位(SBC)存儲(chǔ)器和每胞元多位(MBC)存儲(chǔ)器兩者的產(chǎn)業(yè)內(nèi)是習(xí)慣做法。申請(qǐng)人進(jìn)一步認(rèn)識(shí)到,此方法在將用戶數(shù)據(jù)匹配到特定存儲(chǔ)器裝置中的頁單元時(shí)是不靈活的。物理頁大小為存儲(chǔ)器的設(shè)計(jì)參數(shù)且不可改變。在物理頁中的存儲(chǔ)胞元的數(shù)目與應(yīng)用所需的每塊的胞元的數(shù)目之間失配的情況下將招致懲罰。懲罰可以是胞元不足以滿足ECC要求,因此導(dǎo)致應(yīng)用的不良可靠性;或懲罰可以是存儲(chǔ)效率低(如果每一物理頁中存在比所需數(shù)目多的胞元的話)。因此,非易失性存儲(chǔ)器裝置(例如,NAND快閃存儲(chǔ)器)的設(shè)計(jì)者受到的挑戰(zhàn)是嘗試在制造存儲(chǔ)器之前預(yù)測(cè)出所需的頁大小。幾乎不可避免地,給定的頁大小將不會(huì)特別適合于存儲(chǔ)器的使用所針對(duì)的應(yīng)用的至少某一子集。相關(guān)技術(shù)的前述實(shí)例以及其相關(guān)限制意欲為說明性而非排他性的。在閱讀本說明書以及查看了圖式后,相關(guān)技術(shù)的其它限制對(duì)所屬領(lǐng)域的技術(shù)人員而言將變得顯而易見。

技術(shù)實(shí)現(xiàn)要素:
在一個(gè)方面中,本發(fā)明涉及一種存儲(chǔ)器系統(tǒng)。所述存儲(chǔ)器系統(tǒng)包括具有存儲(chǔ)器裝置的模塊,其中所述模塊經(jīng)配置以關(guān)于所述模塊且至少部分地基于參數(shù)來執(zhí)行管理功能;以及控制器,其中所述參數(shù)是由所述控制器和/或所述模塊提供。在另一方面中,本發(fā)明涉及一種具有存儲(chǔ)器裝置的模塊。所述模塊經(jīng)配置以關(guān)于所述模塊且至少部分地基于參數(shù)來執(zhí)行管理功能,其中所述參數(shù)是由控制器和/或所述模塊提供。在另一方面中,本發(fā)明涉及一種用于與主機(jī)裝置進(jìn)行數(shù)字?jǐn)?shù)據(jù)通信以為所述主機(jī)裝置提供數(shù)據(jù)存儲(chǔ)容量的存儲(chǔ)器系統(tǒng)。所述存儲(chǔ)器系統(tǒng)包括:包含非易失性存儲(chǔ)器區(qū)段的至少一個(gè)模塊,且所述模塊經(jīng)配置以基于一個(gè)或一個(gè)以上模塊輸入?yún)?shù)針對(duì)僅所述模塊的所述非易失性存儲(chǔ)器區(qū)段獨(dú)立地執(zhí)行磨損平衡功能、垃圾收集功能和位密度設(shè)定功能中的至少一者;以及控制器,其經(jīng)配置以用于與所述主機(jī)裝置的所述數(shù)字?jǐn)?shù)據(jù)通信且經(jīng)進(jìn)一步配置以用于與所述模塊的模塊數(shù)字?jǐn)?shù)據(jù)通信以使得流入和流出所述模塊的任何數(shù)據(jù)都通過所述控制器,且至少所述控制器經(jīng)配置以將所述模塊輸入?yún)?shù)提供給所述模塊以界定所述模塊中的所述磨損平衡功能、所述垃圾收集功能和所述位密度功能中的至少一者的獨(dú)立執(zhí)行。在另一方面中,本發(fā)明涉及一種用于與主機(jī)裝置進(jìn)行數(shù)字?jǐn)?shù)據(jù)通信以為所述主機(jī)裝置提供數(shù)據(jù)存儲(chǔ)容量的存儲(chǔ)器系統(tǒng)的部分。所述存儲(chǔ)器系統(tǒng)包含用于直接與所述主機(jī)裝置介接以提供所述數(shù)字?jǐn)?shù)據(jù)通信的控制器以及多個(gè)模塊,所述多個(gè)模塊與所述控制器介接以用于作為與所述主機(jī)裝置的所述數(shù)字?jǐn)?shù)據(jù)通信的部分的在所述控制器與所述模塊之間的模塊數(shù)字通信。所述模塊中的至少一者包括:非易失性存儲(chǔ)器區(qū)段;以及一布置,其用于從所述控制器接收多個(gè)模塊輸入?yún)?shù)以界定磨損平衡功能、垃圾收集功能和位密度功能中的至少一者且用于基于所述模塊輸入?yún)?shù)針對(duì)僅所述模塊的所述非易失性存儲(chǔ)器區(qū)段獨(dú)立地執(zhí)行所述磨損平衡功能、所述垃圾收集功能和所述位密度設(shè)定功能中的至少一者的執(zhí)行。在另一方面中,本發(fā)明涉及一種方法。所述方法包括接收具有存儲(chǔ)器裝置的模塊中的參數(shù);以及在所述模塊中,關(guān)于所述模塊且至少部分地基于所述參數(shù)來執(zhí)行管理功能。在另一方面中,本發(fā)明涉及一種在用于與主機(jī)裝置進(jìn)行數(shù)字?jǐn)?shù)據(jù)通信以為所述主機(jī)裝置提供數(shù)據(jù)存儲(chǔ)容量的存儲(chǔ)器系統(tǒng)中進(jìn)行的方法。所述方法包括:提供至少一個(gè)模塊,所述模塊包含非易失性存儲(chǔ)器區(qū)段,且配置所述模塊以基于一個(gè)或一個(gè)以上模塊輸入?yún)?shù)針對(duì)僅所述模塊的所述非易失性存儲(chǔ)器區(qū)段獨(dú)立地執(zhí)行磨損平衡功能、垃圾收集功能和位密度設(shè)定功能中的至少一者;以及針對(duì)與所述主機(jī)裝置的所述數(shù)字?jǐn)?shù)據(jù)通信且針對(duì)與所述模塊的模塊數(shù)字?jǐn)?shù)據(jù)通信來布置控制器,以使得流入和流出所述模塊的任何數(shù)據(jù)都通過所述控制器,且配置至少所述控制器以將所述模塊輸入?yún)?shù)提供給所述模塊以界定所述模塊中的所述磨損平衡功能、所述垃圾收集功能和所述位密度功能中的至少一者的獨(dú)立執(zhí)行。附圖說明在圖式的所參考圖中說明示范性實(shí)施例。預(yù)期本文中所揭示的實(shí)施例和圖將為說明性而非限制性的。圖1為說明根據(jù)本發(fā)明的一實(shí)施例所制造的SSD的框圖,所述SSD在此處展示為總系統(tǒng)的部分。圖2為說明根據(jù)本發(fā)明的一實(shí)施例的SSD的其它細(xì)節(jié)的框圖。圖3為說明在SSD(例如,圖1和/或2的SSD)中所使用的模塊的實(shí)施例的框圖。圖4為說明供模塊(例如,圖3的模塊)使用的模塊接口的實(shí)施例的框圖。圖5為結(jié)合存儲(chǔ)器區(qū)段在模塊的多個(gè)存儲(chǔ)器裝置上的實(shí)例布置以圖式說明所述存儲(chǔ)器裝置的框圖。圖6為可在模塊(例如,圖3的模塊)中使用的功能引擎的實(shí)施例的框圖。圖7為說明可使用圖6的功能引擎執(zhí)行的磨損平衡功能的實(shí)施例的流程圖。圖8為說明可使用圖6的功能引擎執(zhí)行的垃圾收集功能的實(shí)施例的流程圖。圖9為說明可使用圖6的功能引擎執(zhí)行的位密度配置功能的實(shí)施例的流程圖。圖10為說明可使用圖6的功能引擎執(zhí)行的FTL(快閃轉(zhuǎn)譯層)功能的實(shí)施例的流程圖。圖11為說明可協(xié)同圖6的功能引擎執(zhí)行的讀取操作的實(shí)施例的流程圖。圖12為說明可協(xié)同圖6的功能引擎執(zhí)行的寫入操作的實(shí)施例的流程圖。圖13為說明可協(xié)同圖6的功能引擎執(zhí)行的擦除功能的實(shí)施例的流程圖。圖14為具有與物理頁的長(zhǎng)度不同的長(zhǎng)度的用戶數(shù)據(jù)塊的圖解說明。圖15為以圖式說明存儲(chǔ)用戶數(shù)據(jù)塊的集合的連續(xù)物理頁的集合的框圖,所述用戶數(shù)據(jù)塊中的每一者包含小于一個(gè)物理頁的長(zhǎng)度的長(zhǎng)度。圖16為以圖式說明存儲(chǔ)用戶數(shù)據(jù)塊的集合的連續(xù)物理頁的集合的框圖,所述用戶數(shù)據(jù)塊中的每一者包含大于一個(gè)物理頁的長(zhǎng)度的長(zhǎng)度。圖17為說明用于以實(shí)現(xiàn)在圖15和16的背景中所描述的數(shù)據(jù)結(jié)構(gòu)的方式存儲(chǔ)/寫入用戶數(shù)據(jù)塊的方法的實(shí)施例的流程圖,且其中塊長(zhǎng)度與頁長(zhǎng)度可不同。圖18為說明用于從上文在圖15和16的背景中所描述的數(shù)據(jù)結(jié)構(gòu)讀取用戶數(shù)據(jù)塊的方法的實(shí)施例的另一流程圖,且其中塊長(zhǎng)度與頁長(zhǎng)度可不同。具體實(shí)施方式呈現(xiàn)以下描述以使所屬領(lǐng)域的一般技術(shù)人員能夠制造并使用本發(fā)明,且以下描述是在專利申請(qǐng)案以及其要求的背景中提供的。對(duì)所描述實(shí)施例的各種修改對(duì)所屬領(lǐng)域的技術(shù)人員而言將為易于顯而易見的,且本文中所教示的一般原理可應(yīng)用于其它實(shí)施例。因此,本發(fā)明不欲限于所展示的實(shí)施例,而是應(yīng)符合與本文中所描述的原理和特征相一致的最廣范圍(包含修改和等效物在內(nèi)),如所附權(quán)利要求書的范圍內(nèi)所界定。請(qǐng)注意,圖式并未按比例繪制且本質(zhì)上以被認(rèn)為最好地說明了關(guān)注特征的方式而為圖解的??蔀榱嗽鰪?qiáng)讀者對(duì)諸圖中所提供的各種視圖的理解而采用描述性術(shù)語,但所述描述性術(shù)語絕不意欲為限制性的?,F(xiàn)在將注意力集中到諸圖,其中遍及各視圖,相似編號(hào)可指代相似組件。圖1為根據(jù)本發(fā)明的一實(shí)施例所制造的固態(tài)驅(qū)動(dòng)器(SSD)10的框圖,所述固態(tài)驅(qū)動(dòng)器(SSD)10形成了總系統(tǒng)12的一部分,在所述系統(tǒng)中所述固態(tài)驅(qū)動(dòng)器與主機(jī)20介接。在圖2的實(shí)例實(shí)施例中,SSD10的存儲(chǔ)容量是由總共20個(gè)模塊提供,所述模塊中的一些是由參考數(shù)字30表示??墒褂萌魏魏线m數(shù)目的模塊,同時(shí)保持在本文中的教示的范圍內(nèi)。每一模塊包含可為快閃存儲(chǔ)器的非易失性存儲(chǔ)器(“NVM”)區(qū)段(例如,數(shù)個(gè)NVM裝置,例如數(shù)個(gè)NVM裸片),但可使用任何合適的存儲(chǔ)器技術(shù),例如相變存儲(chǔ)器(“PCM”)以及其它形式的可變電阻存儲(chǔ)器。應(yīng)了解,圖1的模塊布置支持“備用”模塊的使用,(例如)以防止總數(shù)個(gè)模塊的某一部分的使用的損失。如果SSD的總?cè)萘恳砸惶止?jié)(1TB)為目標(biāo),那么可以看出各自具有64吉字節(jié)(64GB)的容量的十六個(gè)模塊能滿足此目標(biāo)。因此,總共20個(gè)模塊可提供5個(gè)模塊的余量,所述5個(gè)模塊可被視為備用模塊。將數(shù)個(gè)NVM裝置包含于單一模塊中可使在讀取和寫入操作期間直接連接到控制器的個(gè)別存儲(chǔ)器裝置的數(shù)目減少了存儲(chǔ)器模塊中的NVM裸片的數(shù)目的因數(shù)。如將看出,與模塊的通信是經(jīng)由模塊接口提供。所述模塊接口可為點(diǎn)對(duì)點(diǎn)接口,且可針對(duì)系統(tǒng)中的每一模塊提供所述模塊接口的獨(dú)立實(shí)例。這是切合實(shí)際的,因?yàn)槟K引腳計(jì)數(shù)低。低引腳計(jì)數(shù)可使許多模塊接口端口能夠在SSD控制器的常規(guī)墊環(huán)(pad-ring)約束內(nèi)以ASIC形式來提供,且每一端口向一個(gè)模塊提供接口。模塊與SSD控制器端口的點(diǎn)對(duì)點(diǎn)互連可實(shí)現(xiàn)特定模塊接口的資源到SSD控制器與所述特定模塊之間的事務(wù)的專用分配。當(dāng)通過主控制器與相應(yīng)模塊之間的模塊接口所建立的互連為專用時(shí),主控制器與模塊之間的事務(wù)無需與其它模塊共用所述接口的資源;這些事務(wù)可因此以每一模塊接口的全帶寬執(zhí)行。并且,當(dāng)連接是專用于一個(gè)模塊時(shí),可避免在接口連接到一個(gè)以上模塊的情況下本來可能是必要的仲裁和資源共享??紤]到就事務(wù)的數(shù)量以及經(jīng)由接口所傳送的數(shù)據(jù)量?jī)烧邅碚f增加的性能,這又可提高系統(tǒng)性能。仍參看圖1,控制器40經(jīng)由用于每一模塊的模塊接口42(使用參考數(shù)字指示了其中的幾個(gè))與模塊30中的每一者介接。所述控制器又經(jīng)由合適的高級(jí)主機(jī)接口44介接到主機(jī)20,所述主機(jī)接口可為(例如)用于將存儲(chǔ)器系統(tǒng)附接到計(jì)算機(jī)的各種接口中的任一者。舉例來說,主機(jī)接口44可為用于一些系統(tǒng)12的SATA(串行ATA)接口。其它系統(tǒng)12可采用使用SAS(串行附接SCSI)接口這種方式,或所述接口可為后平面導(dǎo)向(backplaneoriented)的,(例如)使用PCIExpress。就此而言,可鑒于特定最終用途來選擇合適形式的主機(jī)接口??砂咚倬彌_存儲(chǔ)器46(例如)以將性能增強(qiáng)提供給總SSD系統(tǒng)10。高速緩沖存儲(chǔ)器可通過附接任何合適的存儲(chǔ)器裝置(例如,SDRAM、PCM、快速快閃(例如,SBC)以及其類似者)來實(shí)現(xiàn)。SSD控制器40可具有用于與一個(gè)或一個(gè)以上高速緩沖存儲(chǔ)器裝置進(jìn)行通信的專用接口。取決于為特定SSD設(shè)計(jì)所選擇的高速緩存技術(shù)的本質(zhì),此接口可專用于高速緩沖存儲(chǔ)器。如果高速緩沖存儲(chǔ)器裝置46為模塊,那么高速緩沖存儲(chǔ)器接口可與NVM模塊接口相同或類似??刂破?0在與用于現(xiàn)有技術(shù)SSD的控制器比較時(shí)可被視為簡(jiǎn)化的。因?yàn)橄到y(tǒng)10中的模塊可能要承擔(dān)將在下文描述的詳細(xì)管理功能,所以SSD控制器可卸去通常由現(xiàn)有技術(shù)控制器執(zhí)行的許多功能的負(fù)擔(dān)。所卸下功能的非限制性實(shí)例可至少包含(1)磨損平衡、(2)垃圾收集、(3)邏輯到物理地址轉(zhuǎn)譯、(4)物理頁到邏輯塊抽象化、(5)ECC功能,以及(6)存儲(chǔ)器調(diào)節(jié)和信號(hào)處理。因?yàn)榭蓽p少或移除在現(xiàn)有技術(shù)SSD控制器中可能需要大量CPU以及其它支持活動(dòng)的功能中的許多功能,例如上文所列出的那些功能,所以SSD控制器的帶寬可相對(duì)更多地專用于在主機(jī)與所連接的模塊之間傳送用戶數(shù)據(jù)。轉(zhuǎn)到圖2并結(jié)合圖1,圖2為說明控制器40的一實(shí)施例的框圖。所述控制器包含多個(gè)控制器模塊端口100,其中每一者提供模塊接口42以與多個(gè)存儲(chǔ)模塊30(圖1)通信。每一控制器模塊端口100提供一組相關(guān)聯(lián)接口信號(hào)連接,所述接口信號(hào)連接對(duì)于各控制器模塊端口來說都是相同的。作為非限制性實(shí)例,控制器40可經(jīng)由二十個(gè)個(gè)別模塊接口42與二十個(gè)模塊30通信,如圖1中所展示。SSD控制器中的控制器模塊端口的數(shù)目可變化。實(shí)施于給定SSD控制器中的控制器模塊端口的具體數(shù)目可取決于涉及SSD控制器自身的設(shè)計(jì)考慮以及取決于SSD系統(tǒng)。這些設(shè)計(jì)考慮可涉及SSD的所要存儲(chǔ)容量、所要性能以及所要成本。不管實(shí)施于特定實(shí)施例的SSD控制器中的控制器模塊端口的數(shù)目是多少,都會(huì)提供控制器模塊接口的益處。繼續(xù)描述主控制器40,數(shù)據(jù)路徑和控制邏輯區(qū)段120經(jīng)配置以使用雙向數(shù)據(jù)路徑(例如,總線連接122,使用參考數(shù)字指示了其中的幾個(gè))執(zhí)行每一活動(dòng)控制器模塊端口100與SSD控制器的剩余部分之間的數(shù)據(jù)傳送??刂瓶偩€124可在微處理器130(其使用存儲(chǔ)于存儲(chǔ)器132中的代碼來操作)與含于構(gòu)成SSD控制器的邏輯塊中的寄存器134之間提供數(shù)據(jù)路徑。每一控制器模塊端口連接到總線124以方便微處理器130進(jìn)行控制。因此,微處理器130可在每一模塊端口中對(duì)寄存器136進(jìn)行讀取和寫入,并且在這樣做時(shí)可管理(例如,設(shè)定、開始、停止和監(jiān)視)每一控制器模塊端口的操作。數(shù)據(jù)緩沖器區(qū)段140可提供存儲(chǔ)器以用于將流過SSD控制器的數(shù)據(jù)塊分級(jí)為既定經(jīng)由主機(jī)接口端口144傳送到主機(jī)的讀取數(shù)據(jù)或既定經(jīng)由控制器模塊端口100中的一者傳送到模塊的寫入數(shù)據(jù)。雙向數(shù)據(jù)路徑146(使用參考數(shù)字指示了其中的幾個(gè))可提供于數(shù)據(jù)路徑和控制區(qū)段120與數(shù)據(jù)緩沖器區(qū)段140之間。應(yīng)了解,并不要求雙向數(shù)據(jù)路徑146的數(shù)目與控制器模塊端口100的數(shù)目之間的一對(duì)一對(duì)應(yīng)。就此而言,可存在數(shù)目足夠的離散雙向數(shù)據(jù)路徑146以便確保足夠的總數(shù)據(jù)帶寬。也就是說,雙向數(shù)據(jù)路徑146的總數(shù)可小于控制器模塊端口的總數(shù)、等于模塊端口的總數(shù)或大于控制器模塊端口的總數(shù)。存儲(chǔ)器132可被微處理器130存取以便執(zhí)行管理SSD控制器的功能,例如管理可能在SSD控制器的正常操作期間出現(xiàn)的錯(cuò)誤和異常,包含由于從所述模塊中的一者或一者以上接收到的數(shù)據(jù)中的錯(cuò)誤、由于SSD控制器中的異常條件(例如,資源沖突、緩沖存儲(chǔ)器錯(cuò)誤和其類似者)以及由于在其它正常操作的過程期間出現(xiàn)的非預(yù)期問題而出現(xiàn)的那些錯(cuò)誤和異常。高速數(shù)據(jù)路徑(例如,總線150)可用以在緩沖區(qū)段140與主機(jī)接口端口144之間傳送數(shù)據(jù)。此總線可具有支持關(guān)于(例如)下列各者的SSD系統(tǒng)要求的任何合適設(shè)計(jì):經(jīng)由主機(jī)接口進(jìn)行傳送的總計(jì)傳送速率;經(jīng)由主機(jī)接口所發(fā)出的命令與對(duì)所述命令的響應(yīng)之間的等待時(shí)間;以及支持多個(gè)命令同時(shí)執(zhí)行的并行性。主機(jī)接口端口144經(jīng)由控制總線124與微處理器130通信,以使得所述微處理器可管理(例如,控制和/或監(jiān)視)主機(jī)接口44。盡管圖2中僅描繪單一主機(jī)接口44,但在給定SSD控制器實(shí)施例中可存在一個(gè)以上主機(jī)接口。對(duì)于具有多個(gè)主機(jī)接口的實(shí)施例,主機(jī)接口的每一實(shí)例可為相同類型的接口(如多個(gè)SAS端口的情況),或不同實(shí)例可為不同類型(例如,SAS、SATA和PCIExpress的某一組合)。主機(jī)到SSD控制器接口44可由主機(jī)接口端口144提供。此端口144包含經(jīng)配置以執(zhí)行主機(jī)接口定義所要求的所有操作的信號(hào)連接和/或電路。如果SAS或SATA接口是由主機(jī)接口端口144提供,那么物理連接可由被組織為兩個(gè)差分對(duì)的最少四個(gè)信號(hào)連接組成。在其它實(shí)施例中,(例如)在使用SAS和使用次級(jí)接口信號(hào)連接的例子中,可存在額外差分信號(hào)對(duì)。對(duì)于SAS的情況,可使用一個(gè)以上主機(jī)端口:在此實(shí)施例中,可存在物理連接器的兩個(gè)集合而非一個(gè)集合?,F(xiàn)在將注意力集中到圖3,其為說明根據(jù)本發(fā)明的實(shí)施例所制造的模塊30(還參見圖1)的框圖。所述模塊可包含多個(gè)存儲(chǔ)器裝置170。存儲(chǔ)器裝置的總數(shù)可從一變化到八或更大,且存儲(chǔ)器裝置可基于任何適當(dāng)技術(shù)。在一些實(shí)施例中,存儲(chǔ)器技術(shù)為NAND快閃存儲(chǔ)器。組成模塊的總存儲(chǔ)器的裝置可為標(biāo)準(zhǔn)的市售部件或可經(jīng)定制以供在模塊中使用的裝置。數(shù)個(gè)存儲(chǔ)器裝置170可附接到媒體端口176,(例如)以增加所附接存儲(chǔ)器裝置的同時(shí)操作和/或增加SSD中的數(shù)據(jù)吞吐量。如在圖3中所見,在一些實(shí)施例中,每一媒體端口176可將接口提供給存儲(chǔ)器裝置的群組。仍參看圖3,每一媒體端口176提供可用以與多個(gè)存儲(chǔ)器裝置進(jìn)行通信的存儲(chǔ)器裝置接口180。此外,每一模塊30可包含多個(gè)媒體端口176。在一些實(shí)施例中,媒體端口的數(shù)目為二或四。每一媒體端口176可提供用于與標(biāo)準(zhǔn)NAND快閃存儲(chǔ)器裝置進(jìn)行通信的工業(yè)標(biāo)準(zhǔn)接口,例如ONFI(開放式NAND快閃接口),或每一媒體端口可提供既定用于與經(jīng)定制的存儲(chǔ)器裝置進(jìn)行通信的定制接口。如上文所提,一個(gè)或一個(gè)以上存儲(chǔ)器裝置170可經(jīng)由每一存儲(chǔ)器裝置接口180進(jìn)行通信。在一些實(shí)施例中,數(shù)目可從一變到四。此外,不存在相同數(shù)目的存儲(chǔ)器裝置應(yīng)連接到每一媒體端口的要求。此外,在一些例子中,特定媒體端口可能沒有任何存儲(chǔ)器裝置連接到它。此情形可(例如)在特定模塊布置未使用所有可用媒體端口時(shí)出現(xiàn)。數(shù)據(jù)路徑和控制區(qū)段190形成模塊30的部分且可經(jīng)配置以引導(dǎo)去往和來自媒體端口176的數(shù)據(jù)業(yè)務(wù),其方式為結(jié)合媒體端口自身使用各種系統(tǒng)資源來管理(例如,協(xié)調(diào))去往和來自所述多個(gè)媒體端口的數(shù)據(jù)業(yè)務(wù)。在每一媒體端口176與所述模塊的剩余部分之間的數(shù)據(jù)流中可支持多個(gè)數(shù)據(jù)路徑。解碼器讀取數(shù)據(jù)路徑200包含:到解碼器202的數(shù)據(jù)路徑;到數(shù)據(jù)緩沖器區(qū)段210的直接數(shù)據(jù)路徑204;到讀取邏輯212的數(shù)據(jù)路徑;以及至少流過數(shù)據(jù)路徑和控制單元190的從一個(gè)媒體端口(在讀取模式中)到另一媒體端口(在寫入模式中)的數(shù)據(jù)路徑。寫入數(shù)據(jù)路徑可包含:從編碼器220起的數(shù)據(jù)路徑;從數(shù)據(jù)緩沖器區(qū)段210起的直接數(shù)據(jù)路徑230;以及從寫入邏輯222起的數(shù)據(jù)路徑。請(qǐng)注意,可在這些各種數(shù)據(jù)路徑上發(fā)生的大部分(如果非全部)數(shù)據(jù)流可與所有其它數(shù)據(jù)流同時(shí)保持(sustain)??捎靡跃S持所述同時(shí)保持的方式中的一些描述如下:a.使用一個(gè)媒體端口176來執(zhí)行到其所附接的存儲(chǔ)器裝置170中的一者的第一寫入功能。所述第一寫入功能所使用的數(shù)據(jù)路徑為所述模塊中的可用寫入數(shù)據(jù)路徑中的一者。同時(shí),使用另一媒體端口176來執(zhí)行到其所附接的存儲(chǔ)器裝置170中的一者的第二寫入功能。所述第二寫入功能中所使用的數(shù)據(jù)路徑可為尚未被所述第一寫入功能使用的剩余寫入數(shù)據(jù)路徑中的任一者。因?yàn)閮蓚€(gè)媒體端口正在執(zhí)行同時(shí)寫入功能,所以接收寫入模式數(shù)據(jù)的兩個(gè)存儲(chǔ)器裝置為相異的。請(qǐng)注意,此情形在單一存儲(chǔ)器裝置為來自兩個(gè)媒體端口的同時(shí)命令的目標(biāo)的情況下是不可能的,這是因?yàn)槊恳淮鎯?chǔ)器裝置附接到僅一個(gè)媒體端口。b.使用第一媒體端口176來執(zhí)行到其所附接的存儲(chǔ)器裝置170中的一者的寫入功能。所述寫入功能所使用的數(shù)據(jù)路徑為所述模塊中的可用寫入數(shù)據(jù)路徑中的一者。同時(shí),使用第二媒體端口176來執(zhí)行從其所附接的存儲(chǔ)器裝置中的一者進(jìn)行讀取的讀取功能。讀取數(shù)據(jù)路徑可為所述第二媒體端口可用的任何讀取數(shù)據(jù)路徑。c.可使用單一媒體端口176來同時(shí)執(zhí)行一個(gè)以上命令。此可作為附接到同一媒體端口176的兩個(gè)或兩個(gè)以上存儲(chǔ)器裝置中的每一者上的活動(dòng)命令或作為附接到同一媒體端口176的單一存儲(chǔ)器裝置上的多個(gè)命令而發(fā)生。在任一情形中,命令的并行性需要在由特定媒體端口176所提供的單一媒體接口192以及模塊的數(shù)據(jù)路徑和控制區(qū)段190之上的同時(shí)數(shù)據(jù)流。數(shù)據(jù)流的此并行性與上文在(a)和(b)中所描述的情況的不同之處在于,存在由如下事實(shí)所強(qiáng)加的時(shí)間約束:在任何一個(gè)時(shí)刻,僅一個(gè)數(shù)據(jù)值可存在于特定媒體端口接口192上。為了保持多個(gè)數(shù)據(jù)流,特定媒體端口接口192可操作,以使得所述接口在時(shí)間上共享,使得允許每一活動(dòng)命令在它必須屈服于其它活動(dòng)命令中的一者之前在有限量的時(shí)間內(nèi)傳送數(shù)據(jù)。數(shù)據(jù)通信技術(shù)中指代此概念的常用術(shù)語為所屬領(lǐng)域的一般技術(shù)人員所熟悉的“時(shí)域多路復(fù)用”。d.在單一數(shù)據(jù)單元(例如,塊)經(jīng)分割且跨越一個(gè)以上存儲(chǔ)器裝置被寫入的情況下,可使用多個(gè)媒體端口176來協(xié)同地執(zhí)行單一讀取或?qū)懭朊睢T诒景l(fā)明的背景中,數(shù)據(jù)可以各種方式分割:一個(gè)可能分割涉及通過交織將一塊分成兩個(gè)或兩個(gè)以上分區(qū)。交織可沿著位或字節(jié)邊界或通過使用較大的單元(例如,字、雙字、扇區(qū)(sector)和其類似者)來執(zhí)行。交織可在編碼之前或之后對(duì)寫入操作執(zhí)行。交織步驟是在編碼之前還是在編碼之后發(fā)生決定了用于解碼器的對(duì)應(yīng)次序。如果交織是在編碼之前執(zhí)行,那么為每一分區(qū)執(zhí)行單獨(dú)編碼步驟,這可表示需要與分區(qū)一樣多的編碼器來支持所述功能。用于跨越多個(gè)存儲(chǔ)器裝置寫入/讀取單一塊的交織功能的一個(gè)優(yōu)點(diǎn)在于,所述交織功能致使實(shí)現(xiàn)了比非交織方法可能實(shí)現(xiàn)的數(shù)據(jù)吞吐量高得多的數(shù)據(jù)吞吐量。模塊30包含一個(gè)或一個(gè)以上解碼器202。作為數(shù)據(jù)路徑資源,在本實(shí)施例中,每一解碼器202一次可支持(例如,數(shù)據(jù)塊或數(shù)據(jù)分區(qū)的)僅一次傳送,以使得在模塊實(shí)施例(例如,由圖3所說明)提供了多個(gè)解碼器時(shí),可發(fā)生不同傳送的多個(gè)同時(shí)解碼。多個(gè)解碼器的存在提供了真正地同時(shí)解碼兩次不同傳送的能力。解碼器的配置可根據(jù)存儲(chǔ)器裝置的使用方式而變化,且因此,存在可存在于模塊中的多個(gè)變化。作為一實(shí)例,如果特定模塊的存儲(chǔ)器裝置是基于快閃技術(shù),那么可使用不同類型的快閃存儲(chǔ)器。此外,在可用快閃的多種類型內(nèi),針對(duì)每一快閃類型可存在一種或一種以上使用模式。舉例來說,如果選擇市售快閃裝置,那么存儲(chǔ)器裝置(或存儲(chǔ)器裝置的一部分)可以每胞元單位(SBC)模式或每胞元多位(MBC)模式使用。在一實(shí)施例中,可寫入以代數(shù)錯(cuò)誤校正碼(“代數(shù)ECC”)編碼的數(shù)據(jù),而不管所使用的模式如何。因此,用于此情況的適當(dāng)解碼器為解碼已施加的特定代碼且校正錯(cuò)誤直到達(dá)到特定代碼所允許的程度的解碼器。作為另一情況,模塊對(duì)SBC或MBC存儲(chǔ)器使用的特定代數(shù)代碼可進(jìn)一步取決于SBC或MBC存儲(chǔ)器是否以直接對(duì)應(yīng)于存儲(chǔ)器裝置的頁結(jié)構(gòu)的單元進(jìn)行存取或模塊是否代表主機(jī)執(zhí)行從主機(jī)的觀點(diǎn)(以及管理責(zé)任)移除頁層級(jí)細(xì)節(jié)的抽象化服務(wù)。任一情況可涉及不同的解碼器實(shí)施例。另一實(shí)例在于關(guān)于與讀取、寫入和擦除相關(guān)的存儲(chǔ)器裝置的內(nèi)部功能提供可見性、存取和控制的存儲(chǔ)器裝置的使用。由此些存儲(chǔ)器裝置組成的模塊可被以大于標(biāo)準(zhǔn)存儲(chǔ)器的精度寫入和讀取,上文剛剛描述的實(shí)例正是其典型。較大的精度不僅可提供信息存儲(chǔ)的較大密度,而且還可提供可用以促進(jìn)解碼功能的額外信息。此額外信息可以寫入到快閃存儲(chǔ)器和從快閃存儲(chǔ)器讀取的數(shù)據(jù)的精度的額外位的形式存在且可被稱為“軟位”,其為數(shù)據(jù)通信領(lǐng)域的一般技術(shù)人員所熟悉的術(shù)語。此存儲(chǔ)器還考慮到補(bǔ)償數(shù)據(jù)的讀取相關(guān)或?qū)懭胂嚓P(guān)失真的功能,且因此提供用于配置(例如,調(diào)適和/或校正)讀取功能和寫入功能的能力以便提供較高的數(shù)據(jù)存儲(chǔ)密度(每胞元更多位)和較大的可靠性(在快閃存儲(chǔ)器中常常表現(xiàn)為增加的編程/擦除循環(huán))中的一者或兩者。所描述的此些能力又可能需要所述解碼器的不同配置。鑒于這些實(shí)例,如果用于模塊的一實(shí)施例的一個(gè)準(zhǔn)則為關(guān)于不同類型的存儲(chǔ)器裝置的使用提供靈活性,那么所述模塊中的對(duì)應(yīng)解碼布置可提供多模式功能??深A(yù)期的特定變化中的一些包含:a)僅BCH(BoseChaudhuriHoquenghem,博斯-查德胡里-霍昆格姆)解碼,具有一個(gè)或一個(gè)以上位錯(cuò)誤容量設(shè)定,b)僅RS(ReedSolomon,雷德-所羅門)解碼,具有一個(gè)或一個(gè)以上符號(hào)錯(cuò)誤容量設(shè)定,c)BCH解碼與合適形式的循序解碼(例如,卷積)組合,以及d)RS解碼與合適形式的循序解碼組合??山?jīng)配置以提供一個(gè)以上解碼器功能的模塊可用特定模式操作解碼器的特定實(shí)例。舉例來說,雙解碼器模塊可支持兩個(gè)數(shù)據(jù)路徑上的真正解碼并行性。由模塊中的多個(gè)解碼器所提供的靈活性的部分產(chǎn)生自如下事實(shí):在給定時(shí)間,作為非限制性實(shí)例,一個(gè)解碼器可經(jīng)配置為僅BCH解碼器,而另一解碼器可經(jīng)配置為與雷德-所羅門解碼器組合的卷積(維特比檢測(cè)器)解碼器。關(guān)于圖3的編碼器220,上文剛剛進(jìn)行的論述可至少大體上擴(kuò)展到編碼器和編碼功能,這是因?yàn)樗鰞蓚€(gè)功能完全類似。因此,上文剛剛關(guān)于存儲(chǔ)器使用、解碼器模式、靈活性和并行性所進(jìn)行的論述同等地應(yīng)用于編碼情況。可提供讀取邏輯212以作為模塊作為存儲(chǔ)子系統(tǒng)的至少半自主能力的操作支持。針對(duì)校準(zhǔn)和/或補(bǔ)償功能提供對(duì)存儲(chǔ)器裝置的內(nèi)部操作的特定控制的存儲(chǔ)器裝置,由讀取邏輯212所執(zhí)行的功能可包含(例如)結(jié)合校準(zhǔn)或補(bǔ)償所使用的數(shù)據(jù)處理,例如2010年9月23日申請(qǐng)的題為“基于存儲(chǔ)器質(zhì)量監(jiān)視器的補(bǔ)償方法和設(shè)備(MEMORYQUALITYMONITORBASEDCOMPENSATIONMETHODAND)”的共同擁有的同在申請(qǐng)中的美國專利申請(qǐng)案第12/888,585號(hào)(下文中,′585申請(qǐng)案)中所描述的平均值和陣列處理器功能。明確地說,補(bǔ)償可涉及使用與存儲(chǔ)器裝置的物理布置相關(guān)聯(lián)的參數(shù)的信號(hào)處理,而校準(zhǔn)可涉及可在直接軟件控制下作為硬件功能執(zhí)行的數(shù)個(gè)量度收集分析功能。關(guān)于寫入邏輯222,關(guān)于上文剛剛論述的讀取邏輯212和讀取功能的論述還可至少大體上擴(kuò)展到寫入邏輯和寫入功能。在一些情況下,可存在特定原因或優(yōu)點(diǎn)以在寫入模式而非讀取模式中執(zhí)行與補(bǔ)償或調(diào)適相關(guān)聯(lián)的操作。關(guān)于此調(diào)適,可收集例如信噪比(“SNR”)相關(guān)數(shù)據(jù)等信息以作為后續(xù)參數(shù)值的基礎(chǔ)。在位密度配置的例子中且作為非限制性實(shí)例,模塊可利用與存儲(chǔ)器的特定物理區(qū)有關(guān)的SNR統(tǒng)計(jì)數(shù)據(jù),當(dāng)重新分配所述區(qū)時(shí),在配置所述區(qū)的位密度過程中通過垃圾收集功能將所述區(qū)回收。這可能是寫入功能與讀取功能之間的主要差異。模塊可包含讀取功能與寫入功能的任何合適組合。因此,在給定模塊中,可存在可配置寫入功能而無可配置讀取功能;或可存在可配置讀取功能而無可配置寫入功能。在一些實(shí)施例中,可提供可配置讀取功能和可配置寫入功能兩者。從數(shù)據(jù)緩沖器區(qū)段210到數(shù)據(jù)路徑和控制區(qū)段190的直接寫入數(shù)據(jù)路徑230可在必要時(shí)提供低等待時(shí)間數(shù)據(jù)通信,以及用于不需要解碼功能或讀取功能的傳送的替代數(shù)據(jù)傳送路徑。直接寫入路徑為數(shù)據(jù)傳送是到媒體端口176中的一者和相關(guān)聯(lián)的存儲(chǔ)器裝置170的寫入路徑。直接讀取數(shù)據(jù)路徑204類似于直接寫入路徑230且從數(shù)據(jù)路徑和控制區(qū)段190延伸到數(shù)據(jù)緩沖器區(qū)段210,(例如)以在必要時(shí)提供低等待時(shí)間數(shù)據(jù)通信,以及用于不需要編碼功能或?qū)懭牍δ艿膫魉偷奶娲鷶?shù)據(jù)傳送路徑。直接讀取路徑為數(shù)據(jù)傳送是來自媒體端口176中的一者和相關(guān)聯(lián)的存儲(chǔ)器裝置170的讀取路徑。數(shù)據(jù)緩沖器區(qū)段210連接到提供模塊接口42(參見圖1和2)的一個(gè)實(shí)例的控制器端口240。數(shù)據(jù)緩沖器區(qū)段實(shí)施為數(shù)據(jù)緩沖器與媒體端口之間以及數(shù)據(jù)緩沖器與模塊接口之間的傳送提供數(shù)據(jù)分級(jí)的數(shù)據(jù)緩沖器功能。此數(shù)據(jù)緩沖器功能可提供(例如)去往和來自緩沖器的傳送之間的速度匹配。舉例來說,任何快閃讀取命令可涉及存儲(chǔ)器裝置數(shù)據(jù)到模塊接口的傳送以作為(1)起源于存儲(chǔ)器裝置170且終止于緩沖器210的離散傳送與(2)起源于緩沖器210且流過模塊接口42的后續(xù)傳送的組合。相反地,寫入到存儲(chǔ)器裝置的任何功能可涉及(1)經(jīng)由模塊接口42進(jìn)入且終止于數(shù)據(jù)緩沖器210的離散傳送與(2)起源于數(shù)據(jù)緩沖器210且終止于存儲(chǔ)器裝置170的后續(xù)傳送的組合。應(yīng)了解,數(shù)據(jù)緩沖器區(qū)段210可包含經(jīng)配置以控制數(shù)據(jù)進(jìn)出數(shù)據(jù)緩沖器的流動(dòng)的DMA部分242。一般而言,DMA資源是由指派給每一可能數(shù)據(jù)路徑的開始偏移、計(jì)數(shù)和排序功能組成。繼續(xù)參看圖3,每一模塊30包含嵌入式微處理器300,所述微處理器從程序存儲(chǔ)器302操作,且所述微處理器經(jīng)由微處理器總線連接到組成所述模塊的各種組件,所述微處理器總線應(yīng)理解為存在但為了說明清楚而未展示。明確地說,所述微處理器可存取各種組件中的寄存器。存儲(chǔ)于程序存儲(chǔ)器302中的軟件可基于特定實(shí)施例而變化。所屬領(lǐng)域的一般技術(shù)人員將認(rèn)識(shí)到,給定功能的硬件支持的程度可變化。因此,在執(zhí)行管理功能時(shí)軟件與硬件之間的合作可響應(yīng)于下列各者的變化來配置:a.存儲(chǔ)器裝置類型。b.編碼和解碼功能(例如,算法)。c.補(bǔ)償功能(對(duì)讀取數(shù)據(jù)應(yīng)用補(bǔ)償以及在寫入數(shù)據(jù)之前應(yīng)用補(bǔ)償)。d.用于快閃存儲(chǔ)器的塊擦除功能。e.模塊接口支持(命令執(zhí)行)功能。f.自主磨損平衡功能,其中模塊執(zhí)行磨損平衡以作為與主控制器無關(guān)的自含功能。g.半自主磨損平衡功能,其中主控制器通過經(jīng)由模塊接口將相關(guān)參數(shù)和命令提供給模塊來控制磨損平衡功能。h.局部自主快閃轉(zhuǎn)譯層(FTL)實(shí)施。i.引導(dǎo)式快閃轉(zhuǎn)譯層(通過主機(jī)控制)實(shí)施,其中主控制器通過經(jīng)由模塊接口將相關(guān)參數(shù)和命令提供給模塊來控制快閃轉(zhuǎn)譯操作。j.主機(jī)所引導(dǎo)的物理存儲(chǔ)器存取。主機(jī)可通過將適當(dāng)命令發(fā)出到主控制器來存取多個(gè)模塊中的物理存儲(chǔ)器,且主控制器可通過將適當(dāng)直接存取命令發(fā)出到附接到所選擇模塊的存儲(chǔ)器裝置中的一者來響應(yīng)此些命令。k.模塊所引導(dǎo)的物理存儲(chǔ)器存取,具有到主機(jī)的邏輯塊抽象化。l.自主垃圾收集(通常應(yīng)用于局部FTL)。m.半自主垃圾收集,其中主控制器通過將適當(dāng)參數(shù)寫入到將應(yīng)用此控制的模塊來對(duì)附接到主控制器的模塊中的一者或一者以上中的垃圾收集功能施加控制。n.支持引導(dǎo)式垃圾收集(例如,內(nèi)部塊復(fù)制功能),其中主控制器通過經(jīng)由每一模塊的模塊接口將適當(dāng)參數(shù)寫入到所述多個(gè)模塊的至少某一子集來控制垃圾收集功能。o.所附接的存儲(chǔ)器裝置的局部自測(cè)試p.自主電力管理功能應(yīng)了解,前述列表是作為實(shí)例而提供且不欲為完全包含或限制性的。因此,模塊配置以任何合適組合支持模塊操作的至少以上方面的選擇和重新配置。仍參看圖3,模塊30包含功能引擎320,功能引擎320可用以執(zhí)行(例如,表示)經(jīng)由CPU300和程序存儲(chǔ)器302提供以作為資源的功能的任何合適組合。功能引擎320的實(shí)施例可執(zhí)行(例如)上文所描述的各種管理功能中的一者或一者以上。舉例來說,可在一實(shí)施例中提供磨損平衡、FTL和垃圾收集以及可能希望和/或要求的其它功能。此外,功能引擎可接收從控制器40和/或從配置功能的模塊自身提供的一組參數(shù)。也就是說,模塊的管理功能基于從控制器或模塊自身提供的參數(shù)而至少在某一程度上為可配置的。舉例來說,控制器引導(dǎo)管理功能的程度可基于可由控制器設(shè)定的參數(shù)來配置。然而,一旦確立參數(shù),則管理功能在一實(shí)施例中可自主地操作。將在下文中的適當(dāng)點(diǎn)處詳細(xì)地論述參數(shù)優(yōu)先級(jí)。然而,在任何情況下,功能引擎均經(jīng)配置以執(zhí)行所關(guān)注的(多個(gè))功能,如將進(jìn)一步描述。主控制器40可經(jīng)由控制器提供給功能引擎的共享參數(shù)區(qū)段322的一組配置參數(shù)確定關(guān)于給定功能的操作的特性。所述共享參數(shù)區(qū)段可(例如)通過CPU300響應(yīng)于控制器40(圖2)且響應(yīng)于模塊30的模塊接口42(圖3)來被填充。這些配置參數(shù)確定功能引擎將執(zhí)行(例如,初始化和/或操作)每一功能(例如,磨損平衡、垃圾收集和位密度配置)的方式。每一功能的由所述參數(shù)界定的配置可界定將由模塊和主控制器兩者執(zhí)行的活動(dòng)的要求。舉例來說,至少半自主磨損平衡可在原始配置之后由具有來自主控制器的最少相關(guān)通信的模塊執(zhí)行。另一方面,引導(dǎo)式磨損平衡可能需要來自控制器的連續(xù)或周期性配置,其伴隨著控制器經(jīng)由來自模塊的某一形式的報(bào)告對(duì)磨損平衡活動(dòng)的監(jiān)視。此報(bào)告可通過模塊(例如)經(jīng)由更新經(jīng)由仍將描述的報(bào)告區(qū)段所提供的輸出參數(shù)值來實(shí)現(xiàn)。因此,每一模塊的功能引擎可經(jīng)配置以至少部分地基于一個(gè)或一個(gè)以上模塊輸入?yún)?shù)執(zhí)行僅所述模塊的非易失性存儲(chǔ)器裝置的管理功能。主控制器提供與主機(jī)裝置的數(shù)字?jǐn)?shù)據(jù)通信且提供與所述多個(gè)模塊中的每一模塊的模塊數(shù)字?jǐn)?shù)據(jù)通信,以使得流入和流出所述模塊中的一者的任何數(shù)據(jù)都流過控制器。此外,控制器可經(jīng)配置以將輸入?yún)?shù)提供給每一模塊以配置所關(guān)注的每一功能的至少半自主執(zhí)行。從模塊接口42到數(shù)據(jù)緩沖器210的輸入數(shù)據(jù)路徑330將數(shù)據(jù)和控制信息從模塊接口傳送到緩沖器區(qū)段中。此數(shù)據(jù)路徑可具有相對(duì)較高的速度(例如,相對(duì)于在緩沖器區(qū)段210與數(shù)據(jù)路徑和控制區(qū)段190之間延伸的至少某些其它數(shù)據(jù)路徑),這是因?yàn)閭魅肼窂?30可服務(wù)從數(shù)據(jù)緩沖器區(qū)段210到數(shù)據(jù)路徑和控制區(qū)段190的多個(gè)數(shù)據(jù)路徑。輸出數(shù)據(jù)路徑340從數(shù)據(jù)緩沖器區(qū)段210延伸到控制器端口240以用于將數(shù)據(jù)和控制信息從緩沖器區(qū)段傳送到模塊接口,且形成從模塊30經(jīng)由控制器端口240所提供的模塊接口42到SSD控制器40的輸出數(shù)據(jù)路徑的部分。數(shù)據(jù)路徑340可能能夠具有高于去往或來自緩沖器區(qū)段210的其它數(shù)據(jù)路徑的帶寬,這是因?yàn)槿缤瑪?shù)據(jù)路徑330,多個(gè)其它數(shù)據(jù)路徑可由輸出數(shù)據(jù)路徑340服務(wù)。關(guān)于模塊接口42的實(shí)施例的細(xì)節(jié)是通過圖4的框圖說明,其中接口連接在圖2的控制器40的模塊端口100與模塊30的控制器端口240之間延伸,如圖3中所展示。控制器端口和模塊端口在每一模塊30與組成每一模塊接口42的控制器40之間提供命令和數(shù)據(jù)連接。數(shù)據(jù)發(fā)射路徑400提供用于將命令、數(shù)據(jù)、狀態(tài)和其它信息從控制器發(fā)射到模塊的通信路徑。當(dāng)然,這些條目可起源于主機(jī)裝置20(圖1)。在一實(shí)施例中,數(shù)據(jù)發(fā)射路徑可通過差分信號(hào)發(fā)射而建立,因此兩個(gè)物理信號(hào)可組成數(shù)據(jù)發(fā)射路徑。數(shù)據(jù)發(fā)射路徑可任選地以雙向信號(hào)對(duì)的形式體現(xiàn),以使得相反方向上的操作可充當(dāng)對(duì)仍將描述的數(shù)據(jù)接收路徑的數(shù)據(jù)傳送能力的性能增強(qiáng)。數(shù)據(jù)接收路徑402提供用于將數(shù)據(jù)、狀態(tài)和其它信息從模塊30發(fā)射到控制器40的通信路徑。如同數(shù)據(jù)發(fā)射路徑400,在一實(shí)施例中,路徑402可通過差分信號(hào)發(fā)射而建立,因此兩個(gè)物理信號(hào)組成數(shù)據(jù)接收路徑。在一實(shí)施例中,數(shù)據(jù)接收路徑可實(shí)施為雙向信號(hào)對(duì),且當(dāng)在相反方向上操作時(shí),所述數(shù)據(jù)接收路徑可充當(dāng)對(duì)數(shù)據(jù)發(fā)射路徑的數(shù)據(jù)傳送能力的性能增強(qiáng)。信號(hào)的差分對(duì)可經(jīng)由模塊接口42提供時(shí)鐘410。被引導(dǎo)到時(shí)鐘對(duì)上的時(shí)鐘信號(hào)可在主機(jī)中產(chǎn)生且還可被主機(jī)用于同步數(shù)據(jù)發(fā)射和接收。經(jīng)由模塊接口提供的差分時(shí)鐘信號(hào)可用以同步模塊中的數(shù)據(jù)發(fā)射和接收。由模塊接收的時(shí)鐘與由主機(jī)產(chǎn)生且使用的時(shí)鐘直接相關(guān)。由于發(fā)射延遲和其它電路效應(yīng),由模塊接收的時(shí)鐘信號(hào)可相對(duì)于主機(jī)所使用的信號(hào)異相,因此主機(jī)和模塊兩者中的取樣電路可由可經(jīng)動(dòng)態(tài)配置(例如,調(diào)適)以便實(shí)現(xiàn)時(shí)鐘信號(hào)與數(shù)據(jù)信號(hào)之間的最佳對(duì)準(zhǔn)的時(shí)鐘對(duì)準(zhǔn)電路(例如,DLL或PLL)輔助。使用所描述的接口,SSD控制器可能需要顯著較少的引腳。盡管每一存儲(chǔ)器模塊可支持8個(gè)快閃芯片,但模塊到SSD接口的連接可經(jīng)由一個(gè)引腳計(jì)數(shù)減少的模塊接口來執(zhí)行。以此方式,與現(xiàn)有技術(shù)實(shí)施(其中每一存儲(chǔ)器裝置直接連接到控制器)相比,控制系統(tǒng)中的所有快閃裝置所需的引腳的數(shù)目可減少。圖1和4中所展示的實(shí)施例可通過限制控制器到模塊連接所需的引腳的數(shù)目來實(shí)現(xiàn)較少引腳。也就是說,當(dāng)與現(xiàn)有技術(shù)接口(例如,ONFI)相比時(shí),圖4中引腳計(jì)數(shù)減少的模塊接口用很少引腳提供到控制器的連接性。以此方式,SSD控制器可在控制器上用很少引腳(當(dāng)與例如ONFI等替代例相比時(shí))連接到許多模塊且控制所述模塊,同時(shí)實(shí)現(xiàn)對(duì)于SSD應(yīng)用為適當(dāng)?shù)氖聞?wù)率和數(shù)據(jù)吞吐量率。本文中所描述的模塊接口提供低層級(jí)快閃功能從較高層級(jí)SSD功能的抽象化。因此,控制器可通過僅被配置有(例如)命令執(zhí)行的高層級(jí)方面而卸下負(fù)擔(dān)。低層級(jí)功能(例如,與物理快閃特性有關(guān)的功能)可在模塊層級(jí)處進(jìn)行。應(yīng)了解,盡管將至少半自主功能性用于管理存儲(chǔ)器裝置,但SSD性能仍可通過增加所附接的存儲(chǔ)器裝置的數(shù)目來增強(qiáng)。在單一硬件配置(預(yù)先配置的模塊與特定SSD控制器的特定組合)內(nèi),可配置SSD,其中模塊為至少半自主實(shí)體,其中控制器的作用在于存取模塊中的以邏輯方式尋址的數(shù)據(jù)單元。在此系統(tǒng)中,控制器關(guān)于管理的作用可主要為管理每一模塊所提供的存儲(chǔ),如多個(gè)模塊單元聚集成單一較大的容量。模塊接口可包含命令和協(xié)議層級(jí)處的將其既定應(yīng)用定制成SSD使用的特征和能力。這些特征和能力可包含支持低等待時(shí)間讀取和寫入功能、支持高數(shù)據(jù)吞吐量、支持命令排隊(duì)和同時(shí)操作命令、支持包括多塊傳送操作的數(shù)據(jù)塊無序傳送、支持塊抽象化的不同層級(jí)處的命令,以及簡(jiǎn)單而先進(jìn)的高性能協(xié)議,其中每一者又將緊接著在下文進(jìn)行描述。支持低等待時(shí)間讀取和寫入功能在模塊30中通過支持可為對(duì)從控制器40接收到的命令的最快可能響應(yīng)之物來支持低等待時(shí)間。此可通過模塊接口42使用采取以下至少兩種方法的實(shí)施例來實(shí)現(xiàn):首先,通過支持同時(shí)執(zhí)行命令,且其次,通過選擇短的數(shù)據(jù)包。通過第一種方法,命令可從控制器40發(fā)出到模塊30且立即對(duì)所述模塊起作用,即使一個(gè)或一個(gè)以上其它命令可能已經(jīng)正在執(zhí)行還如此。此允許所述命令立即存取目標(biāo)存儲(chǔ)器裝置(如果所述存儲(chǔ)器裝置尚未被到同一存儲(chǔ)器裝置的命令存取),且使數(shù)據(jù)能夠比在當(dāng)前活動(dòng)的命令需要完成后才開始執(zhí)行另一命令時(shí)可能出現(xiàn)的情況更快地開始在控制器40與模塊中的存儲(chǔ)器裝置170之間傳送。對(duì)命令排隊(duì)和對(duì)同時(shí)命令執(zhí)行的接口支持可實(shí)現(xiàn)此同時(shí)執(zhí)行能力。通過第二種方法,讀取或?qū)懭朊畹臄?shù)據(jù)傳送階段與使用較長(zhǎng)的包相比可更快地開始且因此更快地完成。第二種方法與使用較長(zhǎng)而非較短的包的方法之間的差異在于,較短的包允許較低的等待時(shí)間,這是由于短包相對(duì)于長(zhǎng)包的較短傳送時(shí)間;因此,以低等待時(shí)間為基礎(chǔ)為所有同時(shí)執(zhí)行的傳送分配緩沖器帶寬。與在使用較長(zhǎng)的數(shù)據(jù)包的情況下必須可能等待較長(zhǎng)時(shí)間相比,對(duì)于短數(shù)據(jù)包,給定命令在存取接口之前可能只需等待較短時(shí)間。數(shù)據(jù)包長(zhǎng)度可為可配置的。然而,一特定實(shí)施例的數(shù)據(jù)包長(zhǎng)度可(例如)由在區(qū)段分配時(shí)間所使用的根據(jù)包長(zhǎng)度對(duì)存取等待時(shí)間排定優(yōu)先次序的參數(shù)指定。因此,可由控制器40針對(duì)給定模塊配置來確定最大包長(zhǎng)度。并且,通過第二種方法,可使用關(guān)于圖4的數(shù)據(jù)發(fā)射路徑400和數(shù)據(jù)接收路徑402所論述的方向切換功能。當(dāng)被選擇時(shí),方向切換功能可實(shí)現(xiàn)所有包大小的較快發(fā)射,由此提高吞吐量和等待時(shí)間性能兩者。支持高數(shù)據(jù)吞吐量如果為了實(shí)現(xiàn)高吞吐量而需要較大的包,那么高吞吐量與低等待時(shí)間有時(shí)是相沖突的目的。盡管短包大小增強(qiáng)了等待時(shí)間效能,但它們也傾向于使吞吐量性能降級(jí),這是因?yàn)榕c較大的包相比,對(duì)于小數(shù)據(jù)包來說,接口的固有額外負(fù)荷成比例地較大。也就是說,短包實(shí)現(xiàn)低于長(zhǎng)包的傳送效率,因此在對(duì)接口的需求接近接口的帶寬容量時(shí),針對(duì)長(zhǎng)包而非針對(duì)短包實(shí)現(xiàn)更好的數(shù)據(jù)吞吐量。作為配置選項(xiàng),選擇包大小的能力也是支持高數(shù)據(jù)吞吐量的一方面,以便解決高吞吐量與低等待時(shí)間的競(jìng)爭(zhēng)利益。支持命令排隊(duì)和同時(shí)操作命令在一實(shí)施例中,命令排隊(duì)功能可存在于模塊接口42中,主要作為硬件功能。所執(zhí)行的每一命令必須支持命令的執(zhí)行中將涉及的所有事務(wù),包含命令傳送、數(shù)據(jù)傳送和握手事務(wù)的狀態(tài)。這些事務(wù)又可在進(jìn)行中使用例如DMA資源等設(shè)施。此些硬件資源可在模塊接口定義中提供到實(shí)現(xiàn)命令排隊(duì)功能所需的程度。用于命令排隊(duì)的額外功能可為產(chǎn)生并檢查隊(duì)列標(biāo)簽。所述隊(duì)列標(biāo)簽為短的二進(jìn)制值,其表示用以尋址命令所需的前述硬件資源的整數(shù)。隊(duì)列標(biāo)簽是與從主機(jī)發(fā)送到裝置的每一新命令代碼一起發(fā)射,且只要所述命令繼續(xù)執(zhí)行便保持為活動(dòng)的。在命令終止之后,隊(duì)列標(biāo)簽便不再為活動(dòng)的,且因此在后續(xù)命令被發(fā)出時(shí)變得可用于重新指派。支持包括多塊傳送操作的數(shù)據(jù)塊無序傳送模塊接口協(xié)議可支持控制器與模塊之間的事務(wù)模型,所述事務(wù)模型使塊的無序發(fā)射能夠在長(zhǎng)的多塊傳送內(nèi)發(fā)生。所述事務(wù)模型可規(guī)定任何讀取或?qū)懭朊畎ㄒ粋€(gè)或一個(gè)以上“連接”。每一連接為虛擬構(gòu)造,其分配用于較長(zhǎng)傳送的一部分的尋址和計(jì)數(shù)控制。因而,連接作為時(shí)間實(shí)體而存在,所述時(shí)間實(shí)體存在以保持命令(通常為數(shù)據(jù)傳送)的某一部分且歸因于其存在的時(shí)間約束而必須終止。所述時(shí)間約束存在以便保證接口可用于也可能為活動(dòng)的其它命令。所述約束可為固定或可變的。讀取或?qū)懭雮魉涂赡軆H需要單一連接或者讀取或?qū)懭雮魉涂赡苄枰S多連接。命令所需的連接的數(shù)目因而隨讀取或?qū)懭朊畹目傞L(zhǎng)度(以字節(jié)為單位)和時(shí)間約束的大小而變。連接數(shù)目的此確定可通過在模塊中運(yùn)行的命令處置軟件進(jìn)行。連接一次可建立一個(gè),以使得在給定時(shí)間在給定命令內(nèi)存在僅一個(gè)連接,或給定命令可具有多個(gè)活動(dòng)連接,其中每一連接傳送命令的總傳送長(zhǎng)度的不同部分???例如)通過建立傳送一個(gè)塊或幾個(gè)塊的連接來支持(塊的)無序傳送,所述一個(gè)塊或幾個(gè)塊在通過命令傳送的塊的整個(gè)范圍內(nèi)可相對(duì)于其偏移無序。每一連接可被建立以作為總命令的執(zhí)行的部分。連接存在的時(shí)間僅長(zhǎng)到足以傳送其被分派的長(zhǎng)度的數(shù)據(jù),所述數(shù)據(jù)可為塊(如相對(duì)于命令所定義)或作為由命令代碼中的計(jì)數(shù)字段所界定的字節(jié)數(shù)。連接在所界定長(zhǎng)度的數(shù)據(jù)傳送完之后終止。支持塊抽象化的不同層級(jí)處的命令控制器40可利用不同的方法來存取附接到模塊30的存儲(chǔ)器裝置。盡管可存在變化,但如將緊接著在下文描述的,兩個(gè)實(shí)施例為盛行的。在第一實(shí)施例中,控制器存取作為標(biāo)準(zhǔn)媒體的經(jīng)由模塊接口42附接到模塊的存儲(chǔ)器裝置,其中所述存儲(chǔ)器裝置包含布置為階層的存儲(chǔ)器,其中頁處于階層的最低層級(jí)處且擦除塊處于階層的較高層級(jí)處。讀取或?qū)懭氪嫒∫蕴囟摓槟繕?biāo),其中頁具有固定量的數(shù)據(jù)且可包含通常用于ECC奇偶校驗(yàn)的額外位。另一類型的存取為擦除,其以擦除塊為目標(biāo)。在快閃存儲(chǔ)器中,擦除塊為比頁大得多的結(jié)構(gòu)。事實(shí)上,擦除塊含有某一整數(shù)數(shù)目的頁,其數(shù)目可變化。典型值為每擦除塊128個(gè)頁。頁一般必須按單位寫入,且擦除一般必須對(duì)整個(gè)擦除塊執(zhí)行。頁可整體地或部分地從存儲(chǔ)器裝置讀取,但部分頁讀取可能會(huì)影響ECC編碼和解碼功能。一些ECC編碼功能可編碼整個(gè)頁且因此要求讀取整個(gè)頁以便執(zhí)行ECC解碼。可實(shí)施其它ECC編碼功能,使得以頁中數(shù)據(jù)的細(xì)分來執(zhí)行編碼和解碼:在此情況下,部分頁讀取可讀取這些細(xì)分中的一者或一者以上以便執(zhí)行ECC解碼。不管將執(zhí)行完整頁或部分頁讀取還是將執(zhí)行完整頁寫入,都使用物理地址來執(zhí)行物理頁的尋址。物理地址的使用要求命令的發(fā)出者(在此例子中,控制器40)知曉附接到目標(biāo)模塊的每一存儲(chǔ)器裝置中的頁的物理布置。通過模塊中的編碼、解碼和數(shù)據(jù)路徑硬件來支持第一實(shí)施例。尋址、讀取、寫入以及ECC編碼和解碼可全部以迄今為止尚未見到的方式在模塊中得到支持,以作為可選擇配置。第二實(shí)施例為存儲(chǔ)器裝置是作為包括邏輯扇區(qū)或邏輯塊的邏輯單元尋址和存取的實(shí)施例,所述邏輯扇區(qū)或邏輯塊具有邏輯(而非物理)地址。在此方法中,數(shù)據(jù)長(zhǎng)度不受頁的物理長(zhǎng)度約束,因此模塊可管理物理頁和擦除塊,以使得邏輯結(jié)構(gòu)映射到物理結(jié)構(gòu)上,由此控制器僅需要將邏輯地址添加到命令以便傳送所要數(shù)據(jù)。模塊中的支持此邏輯形式的存取的功能(有時(shí)被稱為塊抽象化)包含編碼器和解碼器配置的各種方面,如關(guān)于圖3所論述。此支持的其它方面(也關(guān)于圖3所論述)包含與補(bǔ)償和校準(zhǔn)相關(guān)的數(shù)據(jù)路徑布置,以及雜項(xiàng)讀取和寫入功能。軟件特征和功能為此支持的組成部分,這是由于軟件為塊抽象化能力所涉及或相關(guān)的功能提供了支持。這些功能中的幾個(gè)功能為局部快閃轉(zhuǎn)譯層(FTL)、對(duì)擦除操作的控制(例如,垃圾收集)、磨損平衡、位密度配置(例如,編碼器/解碼器配置)等等。關(guān)于塊抽象化的再其它細(xì)節(jié)將關(guān)于仍將描述的圖5來呈現(xiàn)。簡(jiǎn)單而高性能的協(xié)議通過僅實(shí)施最基本的功能,模塊接口能夠以比另外可能的情況低的命令額外負(fù)荷來操作。因?yàn)榻涌趦H采用點(diǎn)對(duì)點(diǎn)連接的形式,所以協(xié)議被解除了多裝置支持的負(fù)擔(dān)。無需為了使主機(jī)起始、執(zhí)行和監(jiān)視與裝置的事務(wù)而產(chǎn)生、記錄或使用裝置地址。類似地,通過模塊接口實(shí)施的點(diǎn)對(duì)點(diǎn)物理連接為專用的而非動(dòng)態(tài)地建立的(相異于上文作為命令執(zhí)行的部分而論述的有限時(shí)間邏輯/虛擬連接)。每一主機(jī)/裝置連接(經(jīng)由其自己的模塊接口)的配置是在制造時(shí)建立的,因此主機(jī)無需在開機(jī)時(shí)配置其裝置。另外,所述接口支持真實(shí)并行性(同時(shí)的獨(dú)立傳送)和時(shí)域多路復(fù)用并行性兩者。真實(shí)并行性在一個(gè)或一個(gè)以上讀取命令和一個(gè)或一個(gè)以上寫入命令同時(shí)執(zhí)行時(shí)發(fā)生。接口并行性在讀取命令和寫入命令兩者的數(shù)據(jù)傳送階段一起發(fā)生時(shí)發(fā)生,以使得模塊接口(圖7)的數(shù)據(jù)接收路徑402在數(shù)據(jù)發(fā)射路徑400將數(shù)據(jù)從控制器40積極地傳送到模塊30的同時(shí)將數(shù)據(jù)從模塊30積極地傳送到控制器40。請(qǐng)注意,此類型的并行性僅針對(duì)配置或針對(duì)命令發(fā)生,其中上文所論述的方向切換功能未涉及到??赏ㄟ^模塊接口頻繁地實(shí)現(xiàn)碼分多路復(fù)用形式的并行性。此(例如)在一個(gè)或一個(gè)以上活動(dòng)命令具有經(jīng)由模塊接口使用數(shù)據(jù)包執(zhí)行數(shù)據(jù)階段事務(wù)的已建立連接時(shí)發(fā)生。即使可建立多個(gè)活動(dòng)連接,仍可能在任何時(shí)刻沿著單一數(shù)據(jù)發(fā)射或數(shù)據(jù)接收信號(hào)對(duì)發(fā)射至多一個(gè)包。時(shí)域并行性發(fā)生,這是因?yàn)榛顒?dòng)連接以交替型式傳送數(shù)據(jù)包,其中一個(gè)連接在一個(gè)時(shí)刻傳送一數(shù)據(jù)包且另一連接在另一時(shí)刻傳送一數(shù)據(jù)包。以此方式,多個(gè)命令可在同時(shí)傳送數(shù)據(jù)包,但這樣做是通過共享對(duì)物理傳送連接的存取來實(shí)現(xiàn)。舉例來說,如圖4中所見,標(biāo)記為P1、P2和P3的包是以串行方式在數(shù)據(jù)接收路徑402上傳送,其中每一包形成總數(shù)據(jù)傳送的不同部分。還可在數(shù)據(jù)發(fā)射路徑400上支持相似傳送。在一實(shí)施例中,此些包傳送在數(shù)據(jù)發(fā)射路徑和數(shù)據(jù)接收路徑上可為同時(shí)的。SSD可經(jīng)配置以使得控制器為不同模塊提供不同量的管理監(jiān)督。此實(shí)施例可被稱為對(duì)模塊的混合模式方法,其中所述模塊的一部分可在執(zhí)行功能(例如,磨損平衡、垃圾收集和位密度配置)方面通過與控制器的至少某一交互來管理,且所述模塊的另一部分可關(guān)于這些功能的詳細(xì)管理自主地操作。關(guān)于位密度配置,每一模塊可包含能夠進(jìn)行高密度操作(例如,每胞元大于2個(gè)位)的存儲(chǔ)器裝置,且在一實(shí)施例中可通過控制器配置而跨越模塊中包含的所有存儲(chǔ)器裝置以高密度模式操作或以低密度模式(例如,每胞元2個(gè)位或更少)操作。在一些實(shí)施例中,模塊可通過控制器配置而以高密度模式(例如,每胞元大于2個(gè)位)操作一些存儲(chǔ)器裝置且以低密度模式(例如,每胞元2個(gè)位或更少)操作其它存儲(chǔ)器裝置。在模塊包含能夠進(jìn)行低密度操作(例如,每胞元1或2個(gè)位)的存儲(chǔ)器裝置的情況下,所述模塊可通過控制器配置而以與低密度操作一致的編碼和解碼配置操作。用于此選擇的配置參數(shù)可包含應(yīng)用于每一ECC編碼和解碼單元的數(shù)據(jù)長(zhǎng)度,以及每一ECC編碼和解碼單元內(nèi)包含的奇偶校驗(yàn)位的數(shù)目。此外,如果低密度存儲(chǔ)器經(jīng)配置為每胞元一個(gè)位或兩個(gè)位,那么模塊可通過控制器配置以使用所選擇的低密度模式。如上文所論述,至少半自主存儲(chǔ)器模塊可用獨(dú)立方式執(zhí)行各種功能。進(jìn)一步考慮磨損平衡的功能,應(yīng)了解,每一存儲(chǔ)器模塊可負(fù)責(zé)基于提供給模塊的參數(shù)執(zhí)行其自己的存儲(chǔ)器芯片集合內(nèi)的磨損平衡。分布式磨損平衡控制移除了使控制器監(jiān)視并調(diào)整每一個(gè)別存儲(chǔ)器芯片上的磨損的大部分負(fù)擔(dān)。作為非限制性實(shí)例,可通過根據(jù)本發(fā)明的模塊至少半自主地處置其它功能。舉例來說,每一存儲(chǔ)器模塊可管理其自己的電力消耗。當(dāng)存儲(chǔ)器模塊不活動(dòng)或負(fù)載輕時(shí),可激活所述存儲(chǔ)器模塊上的電力管理電路來以每模塊為基礎(chǔ)減少電力消耗。此產(chǎn)生了不具有控制器必須監(jiān)視并控制每一存儲(chǔ)器模塊的電力狀態(tài)的額外負(fù)荷的分布式電力管理。作為另一實(shí)例,每一存儲(chǔ)器模塊可負(fù)責(zé)監(jiān)視并刷新其自己的存儲(chǔ)器芯片集合內(nèi)的數(shù)據(jù)。此移除了使控制器監(jiān)視每一存儲(chǔ)器芯片中的數(shù)據(jù)質(zhì)量的負(fù)擔(dān)。作為再一實(shí)例,每一存儲(chǔ)器模塊可處置其自己的NVM芯片所需的所有錯(cuò)誤校正。此分布式錯(cuò)誤校正處理產(chǎn)生了比在使控制器負(fù)責(zé)所有錯(cuò)誤校正的情況下(如在常規(guī)SSD中)可實(shí)現(xiàn)的吞吐量高得多的吞吐量。因?yàn)殄e(cuò)誤校正處理可分散在SSD內(nèi),所以可應(yīng)用的錯(cuò)誤校正的量可能比常規(guī)SSD中的量高得多,從而產(chǎn)生了一些實(shí)施例的個(gè)別存儲(chǔ)器芯片內(nèi)的較高數(shù)據(jù)密度。歸因于本文中已揭露的存儲(chǔ)器模塊的分布式處理能力,包含此些模塊的SSD的吞吐量可相比于通過常規(guī)SSD架構(gòu)所實(shí)現(xiàn)的吞吐量增加許多倍。SSD控制器不負(fù)擔(dān)例如錯(cuò)誤校正、數(shù)據(jù)刷新和低層級(jí)磨損平衡的功能(或至少使其負(fù)擔(dān)減少)。每一存儲(chǔ)器模塊可歸因于能夠控制至多(例如)每存儲(chǔ)器模塊至少8NVM裸片而處置高數(shù)據(jù)速率。高數(shù)據(jù)速率可由于來自控制器的每一總線上可存在多個(gè)存儲(chǔ)器模塊的事實(shí)而倍增。此又可由于在控制器與存儲(chǔ)器模塊之間可有若干總線在并行地運(yùn)作的事實(shí)而倍增??偨Y(jié)果為可實(shí)現(xiàn)現(xiàn)有SSD或硬盤驅(qū)動(dòng)器的多倍數(shù)據(jù)速率(吞吐量)的SSD。模塊接口可實(shí)現(xiàn)比使用現(xiàn)有技術(shù)本來可能得到的性能高的性能,原因至少如下:模塊到控制器接口可能不再需要攜載與現(xiàn)在由每一模塊以分布式方式至少半自主地執(zhí)行(而非控制器的責(zé)任)的低層級(jí)功能相關(guān)的大量數(shù)據(jù)。因此,控制器自由地操作,不再負(fù)擔(dān)這些低層級(jí)功能,此又提供了SSD控制器對(duì)高層級(jí)SSD功能的較簡(jiǎn)單、更有效率的執(zhí)行。處理工作的此分離的結(jié)果為更有效率的高性能SSD系統(tǒng)。參看圖5并結(jié)合圖3,圖5為通過舉例以圖式說明圖3的一個(gè)存儲(chǔ)器模塊30的多個(gè)存儲(chǔ)器裝置的框圖,其中模塊NVM存儲(chǔ)器由參考數(shù)字500共同指代。在本實(shí)例中,模塊NVM存儲(chǔ)器包含被指定為NVM1到NVM8的8個(gè)存儲(chǔ)器裝置。應(yīng)了解,8個(gè)存儲(chǔ)器裝置的使用是作為實(shí)例的且不欲作為限制,且其它模塊可包含以不同方式組織的不同數(shù)目的存儲(chǔ)器裝置,同時(shí)仍保持在本文中的教示的范圍內(nèi)。因此,模塊NVM存儲(chǔ)器500可通過控制器40(圖2)組織以由某一數(shù)目的區(qū)段組成??刂破骺筛鶕?jù)各種準(zhǔn)則中的任一者將所述多個(gè)存儲(chǔ)器裝置分割成多個(gè)區(qū)段,如下文將描述??捎煤莒`活的方式在8個(gè)存儲(chǔ)器裝置當(dāng)中對(duì)區(qū)段進(jìn)行分配。起初,應(yīng)了解,就物理區(qū)和位密度兩者來說,一個(gè)模塊與下一個(gè)模塊的存儲(chǔ)器的區(qū)段分配可完全不同且獨(dú)立,即使兩個(gè)模塊均包含相同特性類型的NVM也如此。作為第一實(shí)例,第一存儲(chǔ)器區(qū)段502僅包含存儲(chǔ)器裝置NVM1。作為第二實(shí)例,第二存儲(chǔ)器區(qū)段504包含存儲(chǔ)器裝置NVM2和NVM4。作為第三實(shí)例,第三存儲(chǔ)器區(qū)段506包含存儲(chǔ)器裝置NVM3的一部分和整個(gè)存儲(chǔ)器裝置NVM5。作為第四實(shí)例,第四存儲(chǔ)器區(qū)段508包含存儲(chǔ)器裝置NVM8的一部分。對(duì)這些實(shí)例而言,可假設(shè)展示為在區(qū)段外部的存儲(chǔ)器裝置部分未經(jīng)分配。因此,任何一個(gè)區(qū)段可按任何所要組合包含個(gè)別存儲(chǔ)器裝置的一部分和/或整個(gè)的一個(gè)或一個(gè)以上存儲(chǔ)器裝置。在使用NAND快閃存儲(chǔ)器裝置的實(shí)施例中,區(qū)段大小的下限可為可存儲(chǔ)于單一擦除塊中的數(shù)據(jù)的范圍(extent)。因此,組成模塊的存儲(chǔ)器裝置可經(jīng)分割以便基于參數(shù)(例如,存儲(chǔ)容量、存儲(chǔ)持久性、編程/擦除循環(huán)、數(shù)據(jù)吞吐量或其某一組合)優(yōu)化在存儲(chǔ)器裝置的給定集合中可用的存儲(chǔ)空間。存儲(chǔ)器裝置的分割可為考慮到在存儲(chǔ)器裝置的有用壽命內(nèi)管理所述存儲(chǔ)器裝置所需的對(duì)存儲(chǔ)器的特定物理部分的分配、解除分配和重新分配的動(dòng)態(tài)能力。區(qū)段的使用可以(例如)基于存儲(chǔ)器的物理特性或類型根據(jù)所述物理范圍的先天特性以及其磨損歷史來最佳地使用存儲(chǔ)器裝置。轉(zhuǎn)到圖5,應(yīng)了解,塊抽象化一般涉及以跨越頁邊界的方式寫入和讀取一個(gè)以上頁且可被稱為頁環(huán)繞(pagewrapping)。就此而言且作為非限制性實(shí)例,NVM1被說明為含有物理上鄰近的頁510a到510d。如果讀取或?qū)懭氩僮靼?10a的有陰影線的第二半部分以及頁510b的有陰影線的第一半部分,那么所述讀取或?qū)懭氩僮鲗⑸婕白x取或?qū)懭胝麄€(gè)頁510a和510b。這些頁的有陰影線區(qū)域(例如)可表示由圖3的編碼器220和解碼器202所使用的碼字。因此,頁環(huán)繞提供了跨越頁邊界延伸的編碼和解碼功能,仿佛對(duì)操作而言,頁之間不存在物理不連續(xù)性?,F(xiàn)在將注意力集中到圖6,圖6為說明如圖3中所展示的模塊30的功能引擎320的實(shí)施例的框圖。展示功能引擎的組件以及其互連。應(yīng)了解,為了實(shí)現(xiàn)已說明的各種組件的功能,可利用硬件與軟件的任何合適組合。在一實(shí)施例中,CPU300和程序存儲(chǔ)器302可納入功能引擎的操作。功能引擎的共同設(shè)施(例如,區(qū)域)602可組成數(shù)據(jù)結(jié)構(gòu)的一集合,所述數(shù)據(jù)結(jié)構(gòu)包含由(例如)磨損平衡功能610、垃圾收集功能612、位密度配置功能614和FTL功能616以共同或共享的方式使用和修改的參數(shù)(例如,包含參數(shù)的數(shù)據(jù)表)。這些功能中的每一者經(jīng)配置以用于至少部分地基于某些輸入?yún)?shù)執(zhí)行其被指派的任務(wù)。請(qǐng)注意,共享參數(shù)區(qū)段322(圖3)被展示為形成共同設(shè)施602的部分且因此可參看圖3或圖6來提及。不同于需要這些輸入?yún)?shù),每一功能可相對(duì)于其它模塊或SDD系統(tǒng)和控制器總體上自主地操作。共同設(shè)施602充當(dāng)所述功能當(dāng)中的信息管道,這是因?yàn)樵谝恍┣闆r下,各種功能共享信息且以合作方式操作。一般而言,每一功能從共同設(shè)施中的數(shù)據(jù)結(jié)構(gòu)存取最新信息以便完成其任務(wù)。舉例來說,F(xiàn)TL功能616使用可存儲(chǔ)于(例如)表區(qū)域620中的最新的邏輯到物理地址轉(zhuǎn)譯,以便在給定數(shù)據(jù)單元的邏輯地址時(shí)提供返回所述數(shù)據(jù)單元的物理位置的功能。此外,維持在共同設(shè)施中的信息的實(shí)例將在下文中在適當(dāng)點(diǎn)處提供。在本實(shí)施例中,共同設(shè)施進(jìn)一步包含報(bào)告區(qū)段624,報(bào)告區(qū)段624經(jīng)配置以用于報(bào)告與模塊的非易失性存儲(chǔ)器相關(guān)的一個(gè)或一個(gè)以上輸出參數(shù)(例如,指示使用統(tǒng)計(jì)數(shù)據(jù))。使用統(tǒng)計(jì)數(shù)據(jù)可供功能引擎自身以及主控制器使用且可基于在讀取操作期間所獲得的讀取值的集合。使用統(tǒng)計(jì)數(shù)據(jù)可包含(例如)以下兩者中的至少一者:可基于讀回值的一集合的讀回操作所產(chǎn)生的讀取值的集合的平均讀回值,以及讀回值的所述集合的標(biāo)準(zhǔn)差。在讀取操作解碼塊錯(cuò)誤校正碼的例子中,使用統(tǒng)計(jì)數(shù)據(jù)還可包含錯(cuò)誤校正統(tǒng)計(jì)數(shù)據(jù),例如累計(jì)錯(cuò)誤計(jì)數(shù)和每塊錯(cuò)誤計(jì)數(shù)。應(yīng)了解,錯(cuò)誤校正統(tǒng)計(jì)數(shù)據(jù)可由解碼器202(圖3)中的一者或一者以上產(chǎn)生,報(bào)告區(qū)段從所述解碼器獲得統(tǒng)計(jì)信息?;谑褂媒y(tǒng)計(jì)數(shù)據(jù),功能引擎可鑒于使用統(tǒng)計(jì)數(shù)據(jù)所指示的存儲(chǔ)器的健康狀況來設(shè)定和/或選擇參數(shù)。舉例來說,如果使用統(tǒng)計(jì)數(shù)據(jù)基于大量的編程/擦除循環(huán)而指示存儲(chǔ)器的降級(jí),那么存儲(chǔ)器的位密度可降低。在一實(shí)施例中,編程/擦除循環(huán)的數(shù)目可超過為在使用中的特定非易失性存儲(chǔ)器所指定的閾值編程擦除參數(shù)。在一些實(shí)施例中,模塊子集中的模塊的報(bào)告區(qū)段可經(jīng)配置以基于使用統(tǒng)計(jì)數(shù)據(jù)提供與所述模塊的非易失性存儲(chǔ)器有關(guān)的健康指示。舉例來說,參數(shù)可指定閾值,對(duì)于所述閾值,功能引擎會(huì)作出以下響應(yīng):通過復(fù)制現(xiàn)有數(shù)據(jù)使之遠(yuǎn)離先前以較高位密度分配的存儲(chǔ)器部分來收回所述部分;擦除所述部分;以及接著以相對(duì)較低位密度對(duì)所述部分重新分配,使得對(duì)所述部分的進(jìn)一步寫入可處于較低位密度。此活動(dòng)可優(yōu)先于至少一些控制器參數(shù),例如基于正在進(jìn)行中的存儲(chǔ)器磨損在初始配置中所提供的控制器參數(shù)。在一實(shí)施例中,控制器可存取且監(jiān)視健康指示且提供參數(shù)控制以指示模塊如上文所述地收回存儲(chǔ)器的某一部分。當(dāng)然,這些各種活動(dòng)調(diào)用了功能引擎所提供的功能的使用且在下文在適當(dāng)點(diǎn)處詳細(xì)描述。鑒于前述內(nèi)容,應(yīng)了解,控制器參數(shù)630是由主控制器40提供,而模塊參數(shù)632是源自于模塊自身內(nèi)部。模塊參數(shù)的非限制性實(shí)例包含由解碼器202(圖3)產(chǎn)生的使用統(tǒng)計(jì)數(shù)據(jù)??刂破鲄?shù)和模塊參數(shù)被提供給共同設(shè)施602。所述參數(shù)主要由四個(gè)所說明功能自身使用,且可能影響每一功能的配置。仍參看圖6,磨損平衡功能610涉及跨越模塊中的所有存儲(chǔ)器裝置均勻地最大化使用循環(huán)的數(shù)目。所屬領(lǐng)域的一般技術(shù)人員都熟悉配置磨損平衡功能的基本原理,且應(yīng)了解,對(duì)此功能的需求在于某些形式的非易失性存儲(chǔ)器在承受有限數(shù)目的編程/擦除循環(huán)時(shí)展現(xiàn)出有限壽命的事實(shí)。磨損平衡功能是針對(duì)延長(zhǎng)特定模塊的存儲(chǔ)器裝置的有用壽命。垃圾收集功能612識(shí)別已寫入有不再需要的數(shù)據(jù)的存儲(chǔ)器單元(區(qū)段、塊或頁)且使此存儲(chǔ)器返回到可供隨后用新數(shù)據(jù)寫入的存儲(chǔ)器單元的集區(qū)。如同磨損平衡功能,所屬領(lǐng)域的一般技術(shù)人員都熟悉配置垃圾收集功能的基本原理。為了在存儲(chǔ)器的每一適用物理部分中實(shí)現(xiàn)優(yōu)選位密度配置,位密度配置功能614給存儲(chǔ)器單元分配由基于準(zhǔn)則所作的選擇而確定的位密度配置,仍將對(duì)此進(jìn)行描述。在一實(shí)施例中,存儲(chǔ)器單元可為由塊組成的區(qū)段。FTL功能616僅基于特定數(shù)據(jù)單元(區(qū)段、塊或頁)的邏輯地址來提供所述單元的物理位置。因?yàn)槟p平衡、垃圾收集和位密度配置可全部為引起影響地址轉(zhuǎn)譯表的進(jìn)行中更新的動(dòng)態(tài)功能,所以FTL與其它功能可彼此實(shí)時(shí)地合作以維持共同設(shè)施602的最新狀態(tài)。在相似參數(shù)形成控制器參數(shù)630和模塊參數(shù)632的部分的情況下,在一實(shí)施例中,一般將優(yōu)先級(jí)給予控制器參數(shù)。就此而言,參數(shù)可用任何合適且靈活的方式組織。舉例來說,在一些實(shí)施例中,所述參數(shù)可組織成子集,其中相似參數(shù)的一個(gè)子集提供優(yōu)先級(jí)給來自控制器40的值,且相似參數(shù)的另一子集提供優(yōu)先級(jí)給來自模塊30的值?,F(xiàn)轉(zhuǎn)到圖7,由參考數(shù)字700大體指示圖6的磨損平衡功能610的實(shí)施例。磨損平衡功能可基于如功能引擎的共享參數(shù)區(qū)段322(圖3和6)所含有的在702處從主控制器40可得到的參數(shù)以及在704處從模塊可得到的內(nèi)部參數(shù)而操作。因此,關(guān)于在參數(shù)的特定源的范圍內(nèi)的磨損平衡功能的執(zhí)行,提供了大量靈活性。不管參數(shù)的源,磨損平衡功能通常涉及在模塊的存儲(chǔ)器裝置包括在某一數(shù)目的編程操作和擦除操作之后降級(jí)的存儲(chǔ)胞元時(shí)最大化這些存儲(chǔ)器裝置的操作壽命。經(jīng)由選擇提供給共享參數(shù)區(qū)段322的參數(shù),關(guān)于磨損平衡功能,主控制器40(圖2)可斷言對(duì)磨損平衡功能的較多或較少控制。如上文所論述,由主控制器確立的參數(shù)可優(yōu)先于由模塊提供的參數(shù)。從控制器和模塊提供的參數(shù)的特征可在于在708處所選擇的初始化參數(shù)以及在710處所選擇且適用于在初始操作之后的進(jìn)行中的磨損平衡的操作參數(shù)。初始化參數(shù)的實(shí)例可包含一些地址,所述地址依據(jù)總的塊且依據(jù)總數(shù)目的塊中哪一子集將最初可用于數(shù)據(jù)存儲(chǔ)來界定模塊的存儲(chǔ)器容量的初始范圍。初始化參數(shù)還可包含例如區(qū)段大小、區(qū)段分配次序、塊分配次序等參數(shù),所述參數(shù)充當(dāng)序列的指示詞,步驟720、724和730根據(jù)所述序列將區(qū)段和所述區(qū)段內(nèi)的塊分配給初始存儲(chǔ)器布置。請(qǐng)注意,初始化參數(shù)選擇708包括總過程的初始化分支712的開始。初始化參數(shù)一般是由主控制器提供且在其操作開端處建立磨損平衡功能的配置。一般而言,初始化可執(zhí)行一次以便建立模塊的原始磨損平衡配置。來自主控制器的操作參數(shù)可應(yīng)用于磨損平衡功能的非初始化方面。在一些實(shí)施例中,由模塊提供的操作參數(shù)可基于來自主控制器的初始參數(shù)來界定在初始操作之后的進(jìn)行中磨損平衡活動(dòng)。關(guān)于磨損平衡功能的非初始化方面可包含的多個(gè)種類的參數(shù)的實(shí)例包含用于區(qū)段和塊分配和重新分配的排序指示詞。其它實(shí)例包含關(guān)于塊或區(qū)段在其必須被重新分配之前可含有靜態(tài)數(shù)據(jù)多久的數(shù)值準(zhǔn)則,或其它數(shù)值準(zhǔn)則(例如,累積的寫入/擦除循環(huán)的數(shù)目、錯(cuò)誤校正統(tǒng)計(jì)數(shù)據(jù)等),磨損平衡重新分配決策可根據(jù)所述數(shù)值準(zhǔn)則做出。在720處,初始化分支712通過執(zhí)行區(qū)段分配初始化以分配模塊的存儲(chǔ)器裝置當(dāng)中的區(qū)段的原始集合而繼續(xù)。接著執(zhí)行塊分配功能724以分配每一區(qū)段內(nèi)的塊集合。區(qū)段分配的實(shí)例展示于圖5中且在上文關(guān)于圖5來進(jìn)行描述。在724之后,已建立初始配置,其在730處存儲(chǔ)于(例如)功能引擎(圖3和6)的共享參數(shù)區(qū)段322中。因此,初始配置結(jié)束且可用于磨損平衡功能的操作分支740期間的參考和更新。在744處,執(zhí)行檢索配置過程。在初始化分支712之后,可檢索如由730處所存儲(chǔ)的配置所建立的初始配置。此后且關(guān)于進(jìn)行中操作,所述配置可由操作分支740管理。在進(jìn)行中操作期間,可經(jīng)由FTL更新路徑748(例如)從功能引擎的表區(qū)域620(圖6)檢索當(dāng)前FTL表信息。由于將更詳細(xì)描述的寫入和擦除活動(dòng),F(xiàn)TL更新發(fā)生,其中FTL功能對(duì)物理地址的添加或刪除必然影響磨損平衡功能。應(yīng)了解,為了更新FTL功能,路徑748為雙向的。同樣地,磨損平衡功能可(例如)通過編輯表區(qū)域620的FTL區(qū)而進(jìn)行FTL功能可見的改變。作為一實(shí)例,在寫入操作之前,F(xiàn)TL從磨損平衡功能獲得用于寫入的優(yōu)選位置。這是歸因于磨損平衡功能在從所有可用位置內(nèi)界定用于每一新寫入操作的物理位置時(shí)的作用,如將更詳細(xì)描述。來自垃圾收集功能612的更新在垃圾收集更新路徑750上可用。這些更新可加上正常FTL和垃圾收集更新以專供磨損平衡功能使用。因?yàn)槟p平衡功能(例如)經(jīng)由表區(qū)域620而具有對(duì)垃圾收集功能的可見性,所以磨損平衡功能能夠從已通過垃圾收集功能返回到可用狀態(tài)的存儲(chǔ)器分配用于新寫入的物理地址。應(yīng)了解,為了更新垃圾收集功能,路徑750為雙向的。760處的每一寫入操作可與磨損平衡功能的檢索配置步驟744介接,以便在存儲(chǔ)器配置內(nèi)確定用于寫入的物理位置。如將進(jìn)一步描述,磨損平衡功能通常與寫入功能(通過來自主控制器40(圖2)的寫入命令起始)和FTL功能兩者通信,因此路徑748和760為雙向的。當(dāng)新寫入數(shù)據(jù)位置是由寫入功能使用時(shí),必須將此新位置添加到FTL以作為對(duì)應(yīng)于寫入數(shù)據(jù)的邏輯地址的物理位置。如果現(xiàn)有邏輯數(shù)據(jù)單元正通過寫入命令而被覆寫,那么磨損平衡功能必須意識(shí)到:為了更新配置,邏輯覆寫不僅對(duì)應(yīng)于(適用于NAND快閃存儲(chǔ)器)到新物理地址的數(shù)據(jù)寫入,而且還對(duì)應(yīng)于數(shù)據(jù)的當(dāng)前物理位置的解除分配。如同寫入操作,擦除操作涉及調(diào)用磨損平衡功能和FTL功能均必須適應(yīng)的改變的物理操作。因此,在770處,每一寫入操作可與檢索配置步驟744介接以在存儲(chǔ)器配置內(nèi)確定用于擦除的物理位置。應(yīng)了解,為了更新擦除功能,路徑770為雙向的。邏輯擦除可涉及現(xiàn)有物理數(shù)據(jù)單元的解除分配。物理擦除對(duì)應(yīng)于對(duì)存儲(chǔ)器的一物理范圍的實(shí)際擦除,從而使標(biāo)的存儲(chǔ)器返回到可用于新寫入的狀態(tài)。在774處,區(qū)段分配步驟基于所檢索的配置檢驗(yàn)?zāi)K中的聚集存儲(chǔ)器裝置上的當(dāng)前區(qū)段配置且確定是否需要分配新區(qū)段。將對(duì)當(dāng)前區(qū)段配置的任何區(qū)段添加更新到磨損平衡配置。磨損平衡配置可存儲(chǔ)于(例如)功能引擎的表區(qū)域620(圖6)中。在776處,在每一區(qū)段內(nèi),分析塊配置以確定任何當(dāng)前未分配的塊是否需要分配。任何添加都會(huì)導(dǎo)致對(duì)磨損平衡配置的適當(dāng)部分的添加。并且,改變可指代FTL功能和垃圾收集功能。在778處,可重新分配已變得充滿過時(shí)的塊的區(qū)段。在NAND快閃存儲(chǔ)器中,此可對(duì)應(yīng)于擦除步驟,之后是將新近擦除的存儲(chǔ)器添加到可用區(qū)段的集合,或者將新近擦除的存儲(chǔ)器添加到等待重新指派給新區(qū)段的空存儲(chǔ)器。在780處,可評(píng)估區(qū)段內(nèi)的每一塊以確定所述塊是否需要重新分配。重新分配通常由于塊被寫入了過時(shí)數(shù)據(jù)(已寫入,但標(biāo)記為不再有效)而發(fā)生,在所述情況下,可擦除所述塊,且接著將空塊標(biāo)記為可用于新寫入。接著在730處存儲(chǔ)所得配置,且操作分支740結(jié)束直到其需要再執(zhí)行。參看圖8,由參考數(shù)字800大體指示圖6的垃圾收集功能612的實(shí)施例。垃圾收集功能可基于如功能引擎的共享參數(shù)區(qū)段322(圖3)所含有的在804處從主控制器40可得到的參數(shù)子集801以及在806處從模塊可得到的內(nèi)部參數(shù)而操作。不管參數(shù)的源,垃圾收集功能涉及回收先前被寫入的存儲(chǔ)器位置并使所述存儲(chǔ)器位置可存取以與磨損平衡功能合作以用于后續(xù)寫入。如本發(fā)明中所使用,存儲(chǔ)器經(jīng)分配以用作以頁為最低層級(jí)的單元的階層。有限數(shù)目的頁被聚集到塊中。盡管存儲(chǔ)于頁中的數(shù)據(jù)的量可根據(jù)位密度配置而變化,但頁通常由固定數(shù)目的物理存儲(chǔ)胞元組成。區(qū)段是由數(shù)個(gè)塊組成,且區(qū)段中的塊的數(shù)目可在區(qū)段之間變化。每一模塊含有可用各種方式跨越模塊的存儲(chǔ)器裝置分配的某一數(shù)目的區(qū)段(參見圖5)。應(yīng)了解,非易失性存儲(chǔ)器的操作一般服從與存儲(chǔ)器裝置的物理組成有關(guān)的規(guī)則。對(duì)本論述而言且作為非限制性實(shí)例,盡管本論述可關(guān)于其它非易失性存儲(chǔ)器技術(shù)由所屬領(lǐng)域的一般技術(shù)人員容易地調(diào)適,但將應(yīng)用與NAND快閃存儲(chǔ)器的行為大體上一致的規(guī)則。用于讀取和寫入例如NAND裝置等存儲(chǔ)器裝置的一般化規(guī)則因而如下:a.頁為一次可寫入的最小物理存儲(chǔ)器范圍。不允許對(duì)部分頁寫入。b.希望(盡管并非始終強(qiáng)制)在開始對(duì)塊寫入之前收集足夠數(shù)據(jù)以填充所述塊中的所有頁;接著,將所有數(shù)據(jù)作為單元寫入到所述塊中。此適應(yīng)頁對(duì)頁干擾機(jī)制的補(bǔ)償。c.塊為一次可擦除的存儲(chǔ)器的最小單位。以上規(guī)則暗示了用于讀取和寫入存取的以塊為中心的機(jī)制。因而,垃圾收集步驟可負(fù)責(zé)通過經(jīng)由將頁合并到含有所有活動(dòng)數(shù)據(jù)頁或所有過時(shí)數(shù)據(jù)頁的塊中來將過時(shí)頁與活動(dòng)數(shù)據(jù)頁分離而檢索存儲(chǔ)容量。僅含有過時(shí)數(shù)據(jù)頁的塊可被擦除且返回到可用狀態(tài)。此處請(qǐng)注意,當(dāng)前背景中的術(shù)語“過時(shí)”指代胞元已寫入有值但不再被模塊辨識(shí)為有效的存儲(chǔ)器的單元(頁、塊或區(qū)段)。這與被模塊辨識(shí)為有效的寫入數(shù)據(jù)的替代情況相反。此后一情況被稱為“活動(dòng)”數(shù)據(jù)。將當(dāng)前在胞元中不含有不同于擦除狀態(tài)的寫入值的數(shù)據(jù)單元界定為“可用的”。仍參看圖8,將從主控制器40和模塊30所獲得的參數(shù)子集801以及其它配置參數(shù)應(yīng)用于磨損平衡功能。其它配置參數(shù)可包含關(guān)于存儲(chǔ)器配置和磨損平衡配置的信息。存儲(chǔ)器配置包含區(qū)段、塊和頁在模塊的存儲(chǔ)器裝置的已分配部分上的布置,且磨損平衡配置可包含涉及垃圾收集功能與磨損平衡功能之間的關(guān)系的參數(shù)。垃圾收集涉及引起過時(shí)頁的識(shí)別、過時(shí)頁到過時(shí)塊中的合并和塊擦除的操作的集合。所述功能還可在區(qū)段的層級(jí)處操作,其中過時(shí)數(shù)據(jù)單元合并到區(qū)段中,所述區(qū)段又通過擦除區(qū)段的組成塊而遷移到可用區(qū)段中。應(yīng)了解,垃圾收集功能和擦除功能通信以交換關(guān)于影響存儲(chǔ)器中的塊的更新的信息。擦除功能802通知垃圾收集功能允許垃圾收集功能從等待擦除的塊的列表移除此些擦除塊的塊擦除完成。在803處,經(jīng)由參數(shù)801在垃圾收集功能612與磨損平衡功能800之間進(jìn)行雙向通信。舉例來說,磨損平衡功能將寫入完成和擦除完成兩者用信號(hào)通知垃圾收集功能。這些通知使垃圾收集功能更新其維持的關(guān)于等待擦除的塊以及正在寫入的塊的配置信息。垃圾收集功能又向磨損平衡功能通知這些改變,由此允許磨損平衡功能根據(jù)優(yōu)先級(jí)對(duì)可用物理地址的列表排序以作為用于寫入的下幾個(gè)位置。垃圾收集功能在開始810處開始且逐個(gè)區(qū)段地出現(xiàn),其中第一步驟為在812處檢索第一區(qū)段的狀態(tài)。在814處,應(yīng)用區(qū)段準(zhǔn)則以測(cè)量如區(qū)段狀態(tài)所反映的區(qū)段條件。區(qū)段可:(a)完全包括有效塊;(b)包括過時(shí)塊與有效塊的混合;或(c)完全包括過時(shí)塊。如果情況(a)適用,那么不需要當(dāng)前區(qū)段中的磨損平衡活動(dòng),但在所述區(qū)段內(nèi),可能需要將垃圾收集應(yīng)用于所述區(qū)段的組成塊,此引起對(duì)塊層級(jí)過程的控制的傳送,所述塊層級(jí)過程以得到塊狀態(tài)步驟816開始。如果情況(b)在814處適用,那么區(qū)段準(zhǔn)則為肯定的,且比較過時(shí)塊的數(shù)目與適用于當(dāng)前區(qū)段的特定配置的塊閾值參數(shù)818。如果過時(shí)塊的數(shù)目大于所述閾值,那么在820處采取一過程以重新分配區(qū)段。在一實(shí)施例中,重新分配可涉及分配具有與當(dāng)前區(qū)段相同的配置的新區(qū)段和將任何仍有效的塊從當(dāng)前區(qū)段復(fù)制到新區(qū)段;接著將當(dāng)前區(qū)段中的所有塊指定為過時(shí)的。接著可通過擦除當(dāng)前區(qū)段的塊中的每一者來擦除當(dāng)前區(qū)段。在這些步驟之后,當(dāng)前區(qū)段可返回到未分配存儲(chǔ)器的集區(qū)。如果情況(c)在814處適用,那么區(qū)段準(zhǔn)則為肯定的,且過時(shí)塊的數(shù)目將超過所述閾值,這是因?yàn)樗械膲K都是過時(shí)的。820處的重新分配可擦除所有的塊且使當(dāng)前區(qū)段返回到未分配存儲(chǔ)器的集區(qū)。操作可接著繼續(xù)進(jìn)行到822,其確定另一區(qū)段是否可用。如果不可用,那么過程在824處結(jié)束。如果另一區(qū)段可用,那么操作返回到812,其中所述區(qū)段變?yōu)楫?dāng)前區(qū)段。所述過程重復(fù),直到所有已分配區(qū)段已被處置為止。對(duì)于在816處進(jìn)入塊層級(jí)過程的區(qū)段,如上文所論述,塊層級(jí)過程在區(qū)段內(nèi)操作。在一些例子中,每一個(gè)區(qū)段可能需要塊層級(jí)處理,以使得跨越整個(gè)模塊的塊層級(jí)過程的完成可在模塊的區(qū)段中的每一者中接連地執(zhí)行塊層級(jí)處理。塊準(zhǔn)則決策830調(diào)用頁閾值參數(shù)832,其為要求塊的重新分配的塊內(nèi)的過時(shí)頁的數(shù)目。除了所關(guān)注的過時(shí)單元為組成塊的頁而非組成區(qū)段的塊以外,塊層級(jí)過程類似于情況(a)、(b)和(c)中的區(qū)段層級(jí)過程,如上文關(guān)于區(qū)段準(zhǔn)則814所描述。在830處,如果多于閾值832的頁在當(dāng)前塊內(nèi)為過時(shí)的(對(duì)應(yīng)于情況(b)和(c)),那么在836處分配當(dāng)前區(qū)段內(nèi)的新塊。所述新塊從當(dāng)前塊接收仍活動(dòng)的頁。請(qǐng)注意,為了用活動(dòng)頁填滿新近分配的塊,此步驟可對(duì)多個(gè)當(dāng)前塊同時(shí)執(zhí)行,使得新近分配的塊可含有來自多個(gè)當(dāng)前塊的活動(dòng)頁。接著可擦除已從中移動(dòng)了活動(dòng)頁的當(dāng)前塊(或當(dāng)前塊的組合),這伴隨著使已擦除塊返回到區(qū)段內(nèi)的可用存儲(chǔ)器。因此,在當(dāng)前區(qū)段內(nèi)分配(多個(gè))新塊以接收來自作為擦除目標(biāo)的塊中的有效頁。此些已分配塊含有活動(dòng)數(shù)據(jù)頁。在塊重新分配完成后,操作即繼續(xù)進(jìn)行到840,其檢查最后的塊。如果另一塊可用,那么為了經(jīng)受塊層級(jí)處置,操作返回到816且將下一個(gè)塊指派為當(dāng)前塊。如果無其它塊可用,那么操作繼續(xù)進(jìn)行到842,其對(duì)另一區(qū)段進(jìn)行測(cè)試。如果另一區(qū)段可用,那么操作返回到812。如果另一方面,另一區(qū)段不可用,那么操作在824處結(jié)束。因此,針對(duì)經(jīng)受塊層級(jí)處理的區(qū)段中的所有塊執(zhí)行塊層級(jí)過程,然而,僅含有某一比例的活動(dòng)數(shù)據(jù)頁或過時(shí)頁的塊會(huì)經(jīng)所述過程檢驗(yàn)。既不含有活動(dòng)數(shù)據(jù)頁也不含有過時(shí)數(shù)據(jù)頁的塊不需要經(jīng)此過程檢驗(yàn);然而,所述塊可用于供所述過程分配。824處的最后區(qū)段的完成對(duì)應(yīng)于磨損平衡功能的一次應(yīng)用的完成。一些實(shí)施例可能要求磨損平衡功能由模塊僅通過顯式調(diào)用來執(zhí)行;其它實(shí)施例可將磨損平衡功能用作連續(xù)運(yùn)行的后臺(tái)任務(wù)。在磨損平衡(在塊層級(jí)處或在區(qū)段層級(jí)處)完成的情況下,可通過垃圾收集功能應(yīng)用更新750(圖7),所述更新將為磨損平衡功能700(圖7)和仍將詳細(xì)描述的FTL功能可見且影響所述兩個(gè)功能。參看圖9,由參考數(shù)字900大體指示圖6的位密度配置功能614的實(shí)施例,且所述實(shí)施例被展示為說明用以配置模塊的非易失性存儲(chǔ)器的位密度的功能的流程圖。位密度配置功能可基于如也可由功能引擎的共享參數(shù)區(qū)段322(圖3)所含有的在904處從主控制器40可得到的參數(shù)子集902以及在906處從模塊可得到的內(nèi)部參數(shù)而操作。根據(jù)此實(shí)施例,在垃圾收集功能對(duì)區(qū)段進(jìn)行初始分配之后,展示用以在模塊內(nèi)分配多個(gè)區(qū)段以用于以特定位密度操作的功能。應(yīng)了解,許多不同位密度可為可用的,且可至少部分地基于模塊的存儲(chǔ)器裝置的存儲(chǔ)器技術(shù)以及在讀取操作和寫入操作期間所使用的編碼/解碼功能兩者來確定可用位密度。位密度配置可從每胞元單位的配置變化到每胞元多位的配置。就每胞元所存儲(chǔ)的位而言的每一位密度值還可具有與編碼和解碼方法以及所述編碼和解碼功能所使用的額外負(fù)荷的量和類型有關(guān)的變化。編碼和解碼方法可涉及如先前所描述的碼的組合,所述碼根據(jù)所應(yīng)用的額外負(fù)荷的量來實(shí)現(xiàn)多個(gè)結(jié)果。卷積碼和塊碼均可用各種層級(jí)的額外負(fù)荷來操作,其中額外負(fù)荷的特定量是通過控制器設(shè)定中應(yīng)用于實(shí)施此些碼的參數(shù)確定。面對(duì)手邊的存儲(chǔ)器裝置區(qū)段的SNR和任何其它降級(jí)機(jī)制特性,額外負(fù)荷的量又通常是針對(duì)最佳性能來指定。位密度可作為可至少向下應(yīng)用于NAND快閃存儲(chǔ)器中的塊單元的層級(jí)的屬性而應(yīng)用。最終,位密度配置的粒度可隨所選擇的編碼和解碼功能以及模塊的存儲(chǔ)器裝置中的存儲(chǔ)器技術(shù)而變。在本發(fā)明中所給出的實(shí)例中,位密度配置是在區(qū)段層級(jí)處設(shè)定,使得給定區(qū)段內(nèi)的所有塊以針對(duì)所述區(qū)段所選擇的位密度操作。請(qǐng)注意,區(qū)段可包含單一塊;此將表示考慮使用NAND快閃存儲(chǔ)器,其中個(gè)別位密度配置應(yīng)用于與單一塊一樣小的數(shù)據(jù)保持單元。方法900包含初始化分支910和更新分支912。只要分配(或重新分配,例如,歸因于垃圾收集和存儲(chǔ)器重新配置)新區(qū)段,都會(huì)執(zhí)行初始化分支910。對(duì)于應(yīng)用于區(qū)段下的物理存儲(chǔ)器的區(qū)的位密度配置,可在模塊壽命期間周期性地執(zhí)行更新分支912。在存儲(chǔ)器裝置的壽命內(nèi),一特定范圍的物理存儲(chǔ)器在不同時(shí)間可屬于不同區(qū)段,但在任何給定時(shí)間,所述特定范圍可屬于僅僅一個(gè)區(qū)段。對(duì)于在有效使用中的區(qū)段,位密度配置功能可監(jiān)視組成所述區(qū)段的物理存儲(chǔ)器的條件。舉例來說,監(jiān)視以特定位密度配置操作的物理存儲(chǔ)器的某一部分的位密度配置功能可檢測(cè)物理存儲(chǔ)器的降級(jí),以使得同一物理存儲(chǔ)器的后續(xù)重新分配可能需要更能容忍由于降級(jí)所引起的較低SNR(信噪比)的位密度配置。來自主控制器40(圖2)的參數(shù)可優(yōu)先于模塊所供應(yīng)的參數(shù)。在一些情況下,主控制器可基于控制器參數(shù)定制由功能引擎執(zhí)行的位密度配置功能的大部分或全部。在其它情況下,主控制器可將管理委派給模塊,以使得位密度配置功能是由模塊參數(shù)來界定。在再其它情況下,參數(shù)的掌控集合可為控制器參數(shù)與模塊參數(shù)的合作組合。然而,在任何情況下,不管參數(shù)的特定源,實(shí)際位密度配置功能是由模塊執(zhí)行,例如在所述參數(shù)已確定后即自主地執(zhí)行。應(yīng)了解,參數(shù)值可確定位密度的以下方面:關(guān)于用于每一區(qū)段的位密度配置的選擇以及關(guān)于一個(gè)位密度配置到另一位密度配置的交替,且甚至關(guān)于區(qū)段從活動(dòng)存儲(chǔ)器集區(qū)的解除分配(如在組成存儲(chǔ)器歸因于超過最大數(shù)目的編程/擦除循環(huán)而變得“用盡”的情況下)。請(qǐng)注意,參數(shù)子集902不欲為全面的。主要參數(shù)類別包含目標(biāo)使用模式,包含容量、密度和壽命準(zhǔn)則(例如,編程/擦除循環(huán)的數(shù)目)。所述參數(shù)所表明的其它準(zhǔn)則為由位密度配置功能用來執(zhí)行分配、重新分配和解除分配的存儲(chǔ)器物理性質(zhì)。另一參數(shù)類別界定了可能的配置:此包含區(qū)段層級(jí)處的位密度配置。數(shù)個(gè)控制指示詞可與界定某些閾值的參數(shù)結(jié)合使用,所述閾值應(yīng)用于錯(cuò)誤率以及關(guān)于位密度配置改變的決策的其它量度。這些控制指示詞可指示功能引擎相對(duì)于閾值準(zhǔn)則采取(或不采取)某一動(dòng)作。作為一個(gè)實(shí)例,當(dāng)頁中的經(jīng)校正錯(cuò)誤率開始超過某一經(jīng)界定閾值時(shí),相關(guān)聯(lián)控制指示詞可使垃圾收集功能對(duì)存儲(chǔ)器的受影響區(qū)段起始過程。繼續(xù)參看圖9,初始化分支910應(yīng)用于在模塊操作的初始開始處所執(zhí)行的過程。初始化一般歸因于如下事實(shí)而僅發(fā)生一次:連續(xù)位密度配置取決于參數(shù)(例如,在模塊存儲(chǔ)器的操作壽命期間由于各種老化和磨損機(jī)制而產(chǎn)生的參數(shù))的進(jìn)行中維持。在920處,以存儲(chǔ)器能力數(shù)據(jù)的形式收集信息以實(shí)現(xiàn)關(guān)于模塊中的特定存儲(chǔ)器的能力的決策??申P(guān)于模塊中的存儲(chǔ)器裝置的局部化部分來組織存儲(chǔ)器能力數(shù)據(jù),使得存在用于這些局部化部分中的每一者的參數(shù)(例如,量度)。此局部化的粒度可為實(shí)施相依的且可甚至在單一模塊內(nèi)變化。為了確定關(guān)于位密度配置的存儲(chǔ)器的能力,可從自測(cè)試或由模塊或由主控制器所執(zhí)行的其它功能得到初始存儲(chǔ)器能力信息。一個(gè)有用參數(shù)為存儲(chǔ)器的SNR(信噪比)的測(cè)量值,其自身為存儲(chǔ)器的胞元能夠存儲(chǔ)的位的數(shù)目的指示符。隨著模塊的存儲(chǔ)器裝置的使用歷史累積,額外參數(shù)(例如,在對(duì)位密度配置功能的更新期間所收集的使用統(tǒng)計(jì)數(shù)據(jù))可針對(duì)每一存儲(chǔ)器裝置的每一物理范圍實(shí)現(xiàn)關(guān)于位密度配置和重新配置的后續(xù)決策。其它使用統(tǒng)計(jì)數(shù)據(jù)可(例如)從解碼器202(圖3)得到。為了初始化和操作,可產(chǎn)生質(zhì)量量度和相關(guān)使用統(tǒng)計(jì)數(shù)據(jù),例如,如上文所并入的′585申請(qǐng)案中所描述。應(yīng)了解,如上文所述,本發(fā)明中應(yīng)用于與存儲(chǔ)器性能相關(guān)的參數(shù)(例如,所測(cè)量信息的集合)的一般術(shù)語為存儲(chǔ)器能力數(shù)據(jù)。在已通過初始化分支910獲取了存儲(chǔ)器能力數(shù)據(jù)的初始集合之后,在924處,可匯編位密度配置參數(shù)(例如,模板)的集合,所述位密度配置參數(shù)表示用于模塊的位密度配置菜單。菜單選擇可從位密度配置的預(yù)定義集合直接取得或從位密度配置的預(yù)定義集合導(dǎo)出,所述位密度配置表示用于由編碼和解碼功能使用的參數(shù)的總組合。在本實(shí)施例中,每一菜單選擇適用于存儲(chǔ)器的一區(qū)段,然而,在其它實(shí)施例中,菜單選擇可在塊層級(jí)或存儲(chǔ)器階層中的較低層級(jí)處應(yīng)用。廣泛范圍的參數(shù)在菜單選擇當(dāng)中是可能的,但每一參數(shù)可至少界定將使用的存儲(chǔ)器胞元、編碼/解碼參數(shù)和一定量的奇偶校驗(yàn)中的位的數(shù)目。在928處,通過結(jié)合來自子集902的其它參數(shù)應(yīng)用來自924的位密度配置參數(shù)而產(chǎn)生區(qū)段映射。所述區(qū)段映射為數(shù)據(jù)結(jié)構(gòu),如圖5中以圖式方式所見,其可列出每一已分配區(qū)段的位置、范圍和配置。結(jié)果為跨越模塊(圖5)的存儲(chǔ)器裝置所映射的區(qū)段的集合,其中每一區(qū)段可至少可能地被配置有獨(dú)特的位密度配置。對(duì)區(qū)段應(yīng)用位密度配置可涵蓋從每一個(gè)區(qū)段使用相同位密度配置(例如,每存儲(chǔ)器胞元4個(gè)位)的情況延伸到每一個(gè)區(qū)段使用不同位密度配置的廣泛范圍的變化。在930處,在區(qū)段映射已產(chǎn)生之后,應(yīng)用位密度配置以作為區(qū)段分配的部分。此可包含更新共享參數(shù)區(qū)段322(圖3)中的界定對(duì)應(yīng)于邏輯地址的物理存儲(chǔ)器的位置和范圍的FTL表。另外,可在位密度配置(來自位密度配置模板中的一者)與其對(duì)應(yīng)區(qū)段之間進(jìn)行關(guān)聯(lián)。此關(guān)聯(lián)使后續(xù)讀取、寫入和擦除功能不僅能夠識(shí)別正確邏輯到物理映射以便從主控制器存取命令,而且還能夠用于正確地配置模塊中的讀取/寫入設(shè)定。如通過區(qū)段分配930所界定的每一區(qū)段最終包括塊的一集合,塊的數(shù)目必須已界定。在934處,針對(duì)每一區(qū)段執(zhí)行塊分配,例如,通過更新表區(qū)域620中的表結(jié)構(gòu)以適應(yīng)將組成區(qū)段的塊的準(zhǔn)確數(shù)目。在936處,存儲(chǔ)用于模塊的區(qū)段配置。區(qū)段配置可包含適當(dāng)參數(shù)(例如,表和)模板而用以完全界定模塊的區(qū)段結(jié)構(gòu)(至少從初始化流程結(jié)束時(shí)起),且用以實(shí)現(xiàn)有關(guān)可涉及的各種位密度配置的存儲(chǔ)器的操作,以及用以實(shí)現(xiàn)由于繼續(xù)使用所引起的老化和磨損效應(yīng)而可能需要的未來更新。現(xiàn)轉(zhuǎn)到位密度配置功能的更新分支912的描述,在一些實(shí)施例中,所述更新分支可在模塊的壽命內(nèi)不時(shí)地執(zhí)行。如初始化過程的情況,所應(yīng)用的參數(shù)可由主控制器和模塊自身中的任一者或兩者提供。并且,來自主控制器40(圖2)的參數(shù)可優(yōu)先于由模塊所供應(yīng)的參數(shù)。位密度配置功能可通過控制器提供的參數(shù)、模塊提供的參數(shù)或其任何合適組合來界定。然而,在任何情況下,實(shí)際位密度配置功能是由模塊執(zhí)行,而不管參數(shù)的特定源。通常,只要現(xiàn)有區(qū)段需要位密度配置的改變,便執(zhí)行更新分支912。實(shí)例包含歸因于磨損平衡和垃圾收集動(dòng)作或歸因于存儲(chǔ)器的老化所必需的位密度配置修訂的對(duì)解除分配和/或分配區(qū)段的需要。在940處,通過修訂最初由初始化分支910形成的存儲(chǔ)器能力數(shù)據(jù)開始所述更新分支。垃圾收集功能和磨損平衡功能分別在942和944處將輸入提供到步驟940,這是因?yàn)檫@些功能影響存儲(chǔ)器能力數(shù)據(jù)。如上文所論述,存儲(chǔ)器能力數(shù)據(jù)包括為存儲(chǔ)器以各種位密度存儲(chǔ)和保持?jǐn)?shù)據(jù)的能力的指示符的參數(shù)。根據(jù)來自垃圾收集功能和磨損平衡功能的輸入,修訂存儲(chǔ)器能力數(shù)據(jù)。鑒于經(jīng)修訂的存儲(chǔ)器能力數(shù)據(jù),在946處,確定重新分配映射,其反映與當(dāng)前區(qū)段的當(dāng)前分配相比的當(dāng)前區(qū)段的位密度配置的任何改變。此映射確定哪些區(qū)段是新分配中所需的(根據(jù)垃圾收集結(jié)果)和這些區(qū)段可置放于何處(根據(jù)磨損平衡)。使用來自步驟946的重新分配映射,步驟948通過指定從當(dāng)前分配到新分配的改變(其中當(dāng)前分配是通過初始化分支910或先前通過的更新分支912確定)來產(chǎn)生經(jīng)更新區(qū)段映射,所述改變添加到區(qū)段映射的當(dāng)前版本。在950處,如新/經(jīng)更新區(qū)段映射所指定而將新區(qū)段分配給存儲(chǔ)器。更新可(例如)通過將更新寫入到表區(qū)域620(圖6)中的數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn)。如上文所述,接著在934處繼續(xù)進(jìn)行塊分配。參看圖10,由參考數(shù)字1000大體指示圖6的快閃轉(zhuǎn)譯層(FTL)功能616的一實(shí)施例,且將所述實(shí)施例展示為用于管理與本發(fā)明的模塊中的一者的非易失性存儲(chǔ)器相關(guān)的快閃轉(zhuǎn)譯層的流程圖。所述FTL功能通過基于提供于命令中的邏輯地址找到數(shù)據(jù)的物理位置來服務(wù)主控制器命令。就此而言,參看圖6注意,磨損平衡功能610、垃圾收集功能612和位密度配置功能614的活動(dòng)使模塊中的所存儲(chǔ)數(shù)據(jù)的物理放置為動(dòng)態(tài)的。因此,F(xiàn)TL功能比用于靜態(tài)物理放置的僅邏輯到物理地址轉(zhuǎn)換復(fù)雜,而是使用從其它功能所產(chǎn)生的參數(shù)來確定對(duì)應(yīng)于區(qū)段、塊和頁中的數(shù)據(jù)放置的動(dòng)態(tài)FTL數(shù)據(jù)結(jié)構(gòu),使得活動(dòng)數(shù)據(jù)單元可始終僅基于其對(duì)應(yīng)邏輯地址定位。請(qǐng)注意,這些動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)可存儲(chǔ)于圖6的表區(qū)域620中??尚纬晒δ芤娴墓蚕韰?shù)區(qū)段322(圖3)的部分的FTL參數(shù)區(qū)段1002在1004處從主控制器接收參數(shù)且在1006處從模塊接收模塊參數(shù)。這些參數(shù)的值可影響主控制器對(duì)FTL功能的定制與模塊所施加的定制的量相比的相對(duì)程度。如其它功能的情況,如上文所論述,一些參數(shù)值可使主控制器相對(duì)于模塊對(duì)FTL有較大影響,而其它參數(shù)傾向于偏愛模塊的影響。不管受主控制器或模塊影響的程度,功能引擎可(例如)僅基于參數(shù)輸入自主地執(zhí)行FTL功能。FTL參數(shù)區(qū)段1002還接收在1010處通過磨損平衡功能700(圖7)、在1012處通過垃圾收集功能800(圖8)和在1014處通過位密度配置功能900(圖9)產(chǎn)生的信息。FTL功能的初始化分支1020在第一次使用模塊之前且在主控制器在用戶數(shù)據(jù)存儲(chǔ)操作的任何執(zhí)行中所進(jìn)行的任何存取之前執(zhí)行。在1024處,來自磨損平衡功能的輸入1010和來自位密度配置功能的輸入1014(如FTL參數(shù)區(qū)段1002所反映)允許以產(chǎn)生邏輯表項(xiàng)開始建構(gòu)初始數(shù)據(jù)結(jié)構(gòu)。這些數(shù)據(jù)結(jié)構(gòu)本質(zhì)上可為多層級(jí)的,以便提供區(qū)段、塊和頁層級(jí)處的映射。所述映射本質(zhì)上還為動(dòng)態(tài)的,這是因?yàn)殡S著新數(shù)據(jù)被寫入到模塊中且隨著先前寫入的數(shù)據(jù)歸因于覆寫而失效抑或被擦除,必定預(yù)期修改所述映射。在1028處,針對(duì)每一邏輯地址產(chǎn)生邏輯到物理映射項(xiàng),以使得物理位置對(duì)應(yīng)于數(shù)據(jù)結(jié)構(gòu)中的每一邏輯項(xiàng)。因?yàn)樗龀跏蓟种г趯?shí)際數(shù)據(jù)被寫入到模塊中之前出現(xiàn),所以邏輯項(xiàng)指定模塊存儲(chǔ)器中的已分配但仍空著的區(qū)域。因此,數(shù)據(jù)結(jié)構(gòu)在此點(diǎn)處可指代形成對(duì)于主控制器將為可存取的存儲(chǔ)器容量的區(qū)段的一集合,其至今不含數(shù)據(jù)。后續(xù)讀取、寫入和擦除功能的任務(wù)為擴(kuò)增這些數(shù)據(jù)結(jié)構(gòu),使其具有邏輯數(shù)據(jù)塊與所述容量?jī)?nèi)的物理塊和頁之間的連接。在初始化之后,在1030處,進(jìn)入正常操作,其中存儲(chǔ)器是可存取的以用于存儲(chǔ)數(shù)據(jù)。請(qǐng)注意,讀取、寫入和擦除操作是在其與FTL功能交互的范圍內(nèi)描述。所屬領(lǐng)域的一般技術(shù)人員都熟悉這些操作的其它方面。如將進(jìn)一步描述,所述功能的讀取分支1034可響應(yīng)于讀取命令而執(zhí)行,而在1036處,所述功能的擦除/寫入分支可響應(yīng)于寫入命令或擦除命令而執(zhí)行。應(yīng)了解,不要求讀取分支1034更新FTL數(shù)據(jù)結(jié)構(gòu),這是因?yàn)樽x取操作未更改所存儲(chǔ)數(shù)據(jù)。因此,在1038處,讀取分支針對(duì)提交到其的每一邏輯地址返回物理地址。因此,當(dāng)模塊從主控制器接收讀取數(shù)據(jù)命令時(shí),對(duì)FTL功能的所得調(diào)用僅涉及物理地址查找操作。讀取分支的一次以上通過可響應(yīng)于單一讀取命令而發(fā)生,這是因?yàn)樵谧x取命令中所請(qǐng)求的數(shù)據(jù)可包括駐留在多個(gè)邏輯地址處的數(shù)據(jù)。擦除/寫入分支1036可在先前未經(jīng)寫入的數(shù)據(jù)塊正被寫入時(shí)或在駐留在當(dāng)前寫入的邏輯地址處的數(shù)據(jù)正被覆寫時(shí)執(zhí)行。在前一種情況下,邏輯地址必須被指派給存儲(chǔ)器中的物理位置;此必定需要物理存儲(chǔ)器從現(xiàn)有區(qū)段內(nèi)指定到特定塊和頁??蓤?zhí)行按需要多次通過擦除/寫入分支以便將待通過命令寫入的所有數(shù)據(jù)指派給對(duì)應(yīng)物理位置。在1040處,可分配用于寫入操作的物理存儲(chǔ)器。在1042處,更新FTL表以使其反映所述寫入操作。如果需要擦除操作,那么在后一種情況下,步驟1040可慮及標(biāo)的存儲(chǔ)器位置的擦除以便使先前寫入到對(duì)應(yīng)于所述邏輯地址的物理地址的數(shù)據(jù)失效。步驟1042可接著更新FTL表以在寫入功能之前將標(biāo)的存儲(chǔ)器位置指定為含有無效數(shù)據(jù)。FTL擦除功能可結(jié)合從主控制器到模塊的寫入命令或擦除命令來執(zhí)行。擦除/寫入分支1036的FTL擦除功能未實(shí)現(xiàn)對(duì)應(yīng)邏輯地址的物理擦除,而是更新表結(jié)構(gòu)以展示:邏輯地址與物理位置之間的對(duì)應(yīng)不再有效。因此,第一遍通過擦除/寫入分支1036可慮及FTL結(jié)構(gòu)方面的擦除,而第二遍通過可慮及對(duì)應(yīng)寫入操作。表項(xiàng)可稍后通過垃圾收集功能612更新,這是由于所述垃圾收集功能識(shí)別過時(shí)物理數(shù)據(jù)單元且執(zhí)行物理塊擦除以使受影響物理數(shù)據(jù)單元返回到可用于后續(xù)寫入的狀態(tài)。在1044處繼續(xù)進(jìn)行正常操作?,F(xiàn)轉(zhuǎn)到圖11,為了說明讀取操作與功能引擎320(圖6)的輔助交互,以框圖形式展示讀取操作的一實(shí)施例且由參考數(shù)字1100大體指示所述實(shí)施例。在1102處,起始讀取操作。請(qǐng)注意,在存取和讀取個(gè)別存儲(chǔ)器胞元的范圍內(nèi),讀取操作的技巧將為所屬領(lǐng)域的一般技術(shù)人員所熟悉,且為此目的可使用廣泛多種合適的過程。每一讀取操作已指向一邏輯地址。所述邏輯地址可能已在外部從主機(jī)獲得以作為用以執(zhí)行讀取的命令的部分,或所述邏輯地址可能已在內(nèi)部從模塊獲得。在任何情況下,在1104處,在可讀取實(shí)際數(shù)據(jù)之前,讀取操作將所述邏輯地址發(fā)送到FTL功能616(圖6和10)。在1106處,F(xiàn)TL功能616響應(yīng)于從讀取操作接收到邏輯地址而將物理地址返回到讀取功能。因?yàn)榇藶樽x取操作,所以應(yīng)該不需要對(duì)表區(qū)段620(圖6)中的FTL表的更新以及磨損平衡功能和垃圾收集功能,這是因?yàn)槲磳?duì)存儲(chǔ)器進(jìn)行任何改變。在已獲得物理地址后,在1108處,執(zhí)行讀取操作以便獲得讀取數(shù)據(jù)。盡管為描述清楚起見圖11看似涉及基于單一邏輯或物理地址的交換的讀取操作,但應(yīng)了解,讀取操作可涉及多個(gè)地址。因此,已說明的讀取操作的各個(gè)步驟可涉及具有到物理地址中的每一者的對(duì)應(yīng)讀取步驟的多個(gè)邏輯到物理地址轉(zhuǎn)譯。在1110處,讀取操作完成且正常操作繼續(xù)。參看圖12,為了說明寫入操作與功能引擎320(圖6)的輔助交互,以框圖形式展示寫入操作的一實(shí)施例且由參考數(shù)字1200大體指示所述實(shí)施例。在1202處,起始寫入操作。請(qǐng)注意,在對(duì)個(gè)別存儲(chǔ)器胞元進(jìn)行存取和寫入的范圍內(nèi),寫入操作的技巧將為所屬領(lǐng)域的一般技術(shù)人員所熟悉,且為此目的可使用廣泛多種合適的過程。寫入操作致使某一范圍的存儲(chǔ)器被寫入。此操作可為寫入到先前未經(jīng)寫入的邏輯地址,或此操作可為寫入到當(dāng)前寫入的邏輯地址。在任一情況下,在1204處,寫入操作將目標(biāo)邏輯地址發(fā)送到FTL功能616(圖6和10)。在1206處,F(xiàn)TL功能通過返回物理地址而作出響應(yīng),寫入數(shù)據(jù)將物理地寫入到存儲(chǔ)器中的所述物理地址。無論寫入是新的(到先前未經(jīng)寫入的邏輯地址)還是為覆寫(以當(dāng)前寫入的邏輯地址為目標(biāo)),F(xiàn)TL功能都返回將被寫入的物理地址。任一情況都引起FTL功能所進(jìn)行的FTL配置的更新,其將為磨損平衡功能610(圖6和7)和垃圾收集功能612(圖6和8)可見。在1208處,響應(yīng)于供寫入操作使用的物理地址的返回,執(zhí)行寫入操作。應(yīng)了解,盡管為描述清楚起見圖12看似涉及基于單一邏輯或物理地址的交換的寫入操作,但寫入操作可涉及多個(gè)地址。因此,已說明的寫入操作的各個(gè)步驟可涉及具有用于物理地址中的每一者的對(duì)應(yīng)寫入步驟的多個(gè)邏輯到物理地址轉(zhuǎn)譯。同樣地,F(xiàn)TL、磨損平衡和垃圾收集參數(shù)經(jīng)更新以反映被寫入操作所寫入的多個(gè)物理地址。在1210處,正常操作繼續(xù)。參看圖13,為了說明擦除操作與功能引擎320(圖6)的輔助交互,以框圖形式展示擦除操作的一實(shí)施例且由參考數(shù)字1300大體指示所述實(shí)施例。在1302處,起始擦除操作。請(qǐng)注意,在存取和擦除個(gè)別存儲(chǔ)器胞元的范圍內(nèi),擦除操作的技巧將為所屬領(lǐng)域的一般技術(shù)人員所熟悉,且為此目的可使用廣泛多種合適的過程。此處所展示的擦除操作的結(jié)果為一定范圍的存儲(chǔ)器的物理擦除。因而,此操作不同于可由從主機(jī)發(fā)送的擦除命令所引起的邏輯擦除,但主機(jī)擦除命令最終調(diào)用此操作。又因而,此物理擦除可能從模塊內(nèi)而非從主機(jī)來引導(dǎo)。參看圖6和13,在1304處,(例如)從功能引擎的表區(qū)段620(圖6)存取當(dāng)前垃圾收集配置參數(shù)以獲得待擦除的物理塊位置(如果可得到)。用于擦除的此些物理位置的識(shí)別可通過垃圾收集功能612(圖6)產(chǎn)生。在1306處,進(jìn)行關(guān)于塊是否可用于擦除的確定。如果此些塊地址當(dāng)前沒有可用的,那么擦除程序在1310處結(jié)束且返回到正常操作。如果塊地址可用,那么擦除程序前進(jìn)到1312以獲得如垃圾收集功能所指定的可用于擦除的下一個(gè)塊地址。在1314處,擦除功能執(zhí)行擦除操作以存取并擦除處于在1312中所獲得的物理地址處的塊。在擦除已完成之后,操作移動(dòng)到1316,其(例如)經(jīng)由表區(qū)段620將完成狀態(tài)提供給垃圾收集功能612。在一實(shí)施例中,完成狀態(tài)可直接提供給垃圾收集功能,所述完成狀態(tài)又使垃圾收集功能能夠更新其配置。在1310處,擦除操作結(jié)束且返回到正常操作狀態(tài)。參看圖3和6,每一模塊30可經(jīng)配置以響應(yīng)于控制器參數(shù)630以各種模式操作。在一實(shí)施例中,模塊可基于來自控制器的模塊輸入?yún)?shù)的第一集合針對(duì)所述功能中的所選擇功能以第一模式操作,且基于來自控制器的模塊輸入?yún)?shù)的第二集合針對(duì)所述所選擇功能以第二模式操作,其中模塊輸入?yún)?shù)的所述第一集合不同于模塊輸入?yún)?shù)的所述第二集合。所述參數(shù)集合可(例如)由共享參數(shù)區(qū)段322來存儲(chǔ)。作為實(shí)例,模塊可經(jīng)配置以基于所述模塊輸入?yún)?shù)而將第一模式應(yīng)用于模塊的給定非易失性存儲(chǔ)器區(qū)段的第一部分(例如,區(qū)段)且將第二模式應(yīng)用于給定非易失性存儲(chǔ)器區(qū)段的第二部分(例如,區(qū)段),其中所述第一部分不同于所述第二部分。因此,在圖5中,基于輸入?yún)?shù),NVM1(區(qū)段502)可經(jīng)配置而以第一位密度存儲(chǔ)數(shù)據(jù),而NVM2和NVM4(區(qū)段504)可經(jīng)配置而以不同于第一位密度的第二位密度存儲(chǔ)數(shù)據(jù)。在一實(shí)施例中,總非易失性存儲(chǔ)器的所述部分可基于控制器參數(shù)630確定,而位密度可基于模塊的非易失性存儲(chǔ)器的一個(gè)或一個(gè)以上模塊參數(shù)(例如,受監(jiān)視特性)確定。在一些實(shí)施例中,如下文將進(jìn)一步描述,所述模塊參數(shù)可為(例如)由解碼器所產(chǎn)生的錯(cuò)誤校正統(tǒng)計(jì)數(shù)據(jù)。在一些實(shí)施例中,一個(gè)或一個(gè)以上模塊可基于經(jīng)由共享參數(shù)區(qū)段322(圖3和6)來自控制器的模塊輸入?yún)?shù)的第一集合針對(duì)所述功能中的所選擇功能以第一模式操作,以使得如此配置的每一模塊(例如)自主地執(zhí)行功能而無來自控制器的監(jiān)督或與控制器的交互,且基于來自共享參數(shù)區(qū)段322的模塊輸入?yún)?shù)的第二集合(其中模塊輸入?yún)?shù)的所述第一集合不同于模塊輸入?yún)?shù)的所述第二集合)針對(duì)所述所選擇功能以第二模式操作,以使得如此配置的每一模塊在來自控制器的至少部分控制下以第二模式執(zhí)行功能。舉例來說,在第一模式中,模塊可獨(dú)立于控制器而自主地管理表區(qū)域620(圖6)內(nèi)的快閃轉(zhuǎn)譯層,以使得局部快閃轉(zhuǎn)譯層可由控制器存取而不被更改,而在第二模式中,模塊可在來自控制器的某一作用(例如,引起模塊快閃轉(zhuǎn)譯層的模塊部分的改變)下管理總快閃轉(zhuǎn)譯層的模塊部分,這是因?yàn)榭刂破骶哂袑?duì)所有各種模塊的快閃轉(zhuǎn)譯層的可見性。如上文關(guān)于圖5所論述,本發(fā)明提供可跨越頁邊界的塊抽象化?,F(xiàn)將通過最初參看圖14來提供關(guān)于塊抽象化的其它細(xì)節(jié)。圖14為由典型非易失性存儲(chǔ)器所提供的物理頁1402的關(guān)于短于物理頁1402的第一用戶數(shù)據(jù)塊1404以及長(zhǎng)于物理頁1402的第二用戶數(shù)據(jù)塊1406的圖式說明,其中長(zhǎng)度表示相關(guān)聯(lián)的數(shù)據(jù)量。如上文所論述,現(xiàn)有技術(shù)一般強(qiáng)加物理頁大小與塊大小之間的準(zhǔn)確匹配。在塊短于頁的例子中,填充位可用以填充未填滿頁中的空白空間,然而,在塊長(zhǎng)于頁的例子中,在現(xiàn)有技術(shù)的常規(guī)約束下,塊是不可存儲(chǔ)的。為了在現(xiàn)有技術(shù)中在這些情況下進(jìn)行存儲(chǔ),每一個(gè)頁的至少某一部分將為未使用的,其中未使用部分的大小取決于塊大小與較大頁大小之間的失配程度。因此,現(xiàn)有技術(shù)情況下的用戶數(shù)據(jù)的頁大小單元為非常特定量的數(shù)據(jù)。然而,圖14的用戶數(shù)據(jù)塊中的每一者在長(zhǎng)度上不同于所展示的物理頁。在使用少于物理頁中的總數(shù)個(gè)胞元的用戶數(shù)據(jù)塊的情況下,現(xiàn)有技術(shù)能夠應(yīng)付所述情形,這是因?yàn)閴K配合到一個(gè)物理頁中,即便存在未使用胞元且因此存在存儲(chǔ)效率的損失。當(dāng)用戶數(shù)據(jù)塊超過物理頁的范圍時(shí),現(xiàn)有技術(shù)不能夠應(yīng)付所述情形,這是因?yàn)椴豢赡軐⒂脩魤K配合到單一物理頁中。然而,本發(fā)明通過將信息塊存儲(chǔ)于非易失性存儲(chǔ)器裝置中而無需設(shè)定每一塊的大小以配合到單一物理頁中來不理會(huì)現(xiàn)有技術(shù)的約束。舉例來說,用戶數(shù)據(jù)塊可被分配給物理存儲(chǔ)器而不管每一物理頁包含多少個(gè)備用位。就此而言,應(yīng)了解,每一頁一般分配有可針對(duì)(例如)奇偶校驗(yàn)數(shù)據(jù)的備用位以及各種形式的元數(shù)據(jù),包含(但不限于)邏輯塊地址和可由FTL、磨損平衡和垃圾收集功能使用的雜項(xiàng)旗標(biāo)、指針和計(jì)數(shù)器。經(jīng)由本文中的教示,每一物理頁中的組合式用戶數(shù)據(jù)位加上備用位有效地全部變?yōu)槊恳豁撝械拇鎯?chǔ)空間,而不考慮用作用戶數(shù)據(jù)、ECC奇偶校驗(yàn)或元數(shù)據(jù)。因此,在圖14的用戶數(shù)據(jù)塊中,實(shí)際用戶數(shù)據(jù)與開銷數(shù)據(jù)之間無區(qū)別。然而,具有相關(guān)聯(lián)開銷的用戶信息的塊可小于物理頁1402(如第一用戶數(shù)據(jù)塊1404的情況)或大于物理頁1402(如第二用戶數(shù)據(jù)塊1406的情況)。如將看到,在任一情況下,多用戶塊序列可配合到物理頁的一群組且用戶塊的數(shù)目與物理頁的數(shù)目之間無對(duì)應(yīng)。作為非限制性實(shí)例,用戶數(shù)據(jù)塊可被界定為具有相關(guān)聯(lián)開銷的一個(gè)或一個(gè)以上512字節(jié)單元(扇區(qū));塊是由一個(gè)扇區(qū)或多個(gè)扇區(qū)組成并無重要意義,這是因?yàn)閴K可為任何所要大小。每一塊在特定頁內(nèi)的原(例如,開始)點(diǎn)由經(jīng)指定的偏移來表征。所述偏移的追蹤可用固件、硬件或兩者的任何合適組合來實(shí)施。當(dāng)用戶塊延伸超出一個(gè)物理頁時(shí),所述塊的剩余部分被分配給后續(xù)物理頁。當(dāng)此發(fā)生時(shí),所述用戶塊內(nèi)的斷開位置是通過應(yīng)用程序用與追蹤用戶塊原點(diǎn)相同的方式來追蹤,如下文將更詳細(xì)論述?,F(xiàn)在將注意力集中到圖15,其為框圖、由參考數(shù)字1500大體指示、以圖式方式說明形成非易失性存儲(chǔ)器的部分的四個(gè)連續(xù)物理頁P(yáng)P1到PP4。在連續(xù)物理頁中,物理頁的此集合可用連續(xù)方式物理地尋址,例如,通過從一個(gè)頁到下一頁使物理地址按給定量遞增。在此實(shí)例中,使用用戶數(shù)據(jù)塊B1到B4,每一者具有如圖14的第一用戶數(shù)據(jù)塊1404所例示的長(zhǎng)度,其中用戶數(shù)據(jù)塊短于物理頁。為了說明清楚起見,假設(shè)塊長(zhǎng)度BL等于頁長(zhǎng)度PL的0.75。如所見,塊B1被物理頁P(yáng)P1完全含有。塊B2包含以從物理頁P(yáng)P1的開始處對(duì)應(yīng)于塊B1的長(zhǎng)度的偏移(即,3/4PL)存儲(chǔ)于最后四分之一的物理頁P(yáng)P1中的第一部分1510,和存儲(chǔ)于物理頁P(yáng)P2中的從PP2的開始處開始以便填充PP2的第一半部分且表示塊B2的最后2/3的第二部分1512。塊B3的初始部分1520是以從PP2的開始處1/2PL的偏移存儲(chǔ)于物理頁P(yáng)P2的第二半部分中,而塊B3的最后1/3部分1522是存儲(chǔ)于物理頁P(yáng)P3的第一1/4中。塊B4填充物理頁P(yáng)P3的剩余部分1524。塊B5接著以從PP4的開始處1/4PL的偏移填充物理頁P(yáng)P4的初始3/4部分1526。PP4的最后1/4部分1528展示為空白的,然而,所述部分可由后續(xù)塊的一部分來填充或保持空白。在本實(shí)例中,五個(gè)用戶塊存儲(chǔ)在四個(gè)物理頁上。如可看到,物理頁可得到完全利用,即使塊長(zhǎng)度短于頁長(zhǎng)度還如此。此外,塊可用橋接頁邊界的方式存儲(chǔ)。如圖15所例示,存儲(chǔ)可針對(duì)任意數(shù)目的用戶數(shù)據(jù)塊而繼續(xù),或直到序列中的最后一個(gè)用戶數(shù)據(jù)塊被存儲(chǔ)為止。在一些情況下,序列中的最后一個(gè)物理頁可含有未使用的存儲(chǔ)器胞元,但與現(xiàn)有技術(shù)情況相比,所有先前物理頁可得到完全利用且效率有凈增加量。圖16為框圖、由參考數(shù)字1600大體指示、以圖式方式說明形成非易失性存儲(chǔ)器的部分的四個(gè)連續(xù)物理頁P(yáng)P1到PP4。在此實(shí)例中,使用用戶數(shù)據(jù)塊B1到B3,每一者具有如圖14的第二用戶數(shù)據(jù)塊1406所例示的長(zhǎng)度,其中用戶數(shù)據(jù)塊長(zhǎng)于物理頁。當(dāng)然,現(xiàn)有技術(shù)不能夠存儲(chǔ)相對(duì)較長(zhǎng)的塊。為了說明清楚起見,在本實(shí)例中,假設(shè)塊長(zhǎng)度BL等于頁長(zhǎng)度PL的1.25。如所見,初始?jí)KB1是被物理頁P(yáng)P1部分地含有且B1的最后部分1610(百分之二十)是被物理頁P(yáng)P2含有。塊B2的初始部分1612以從PP2的開始處1/4PL的偏移填充物理頁P(yáng)P2的剩余部分,且塊B2的最后部分1614填充前百分之五十的物理頁P(yáng)P3。塊B3的初始部分1616以從PP3的開始處1/2PL的偏移填充最后百分之五十的物理頁P(yáng)P3,且塊B3的最后部分1618填充初始百分之七十五的物理頁P(yáng)P4。最后百分之二十五的PP4在無更多塊可用的情況下未使用或可供后續(xù)塊使用。在本實(shí)例中,三個(gè)用戶塊存儲(chǔ)在四個(gè)物理頁上。物理頁可得到完全利用,即便塊長(zhǎng)度長(zhǎng)于頁長(zhǎng)度。并且,塊可用橋接頁邊界的方式存儲(chǔ)。就此而言,用戶數(shù)據(jù)塊大小與物理頁大小的任何關(guān)系可基于本文中已揭露的教示來適應(yīng)。所提供的靈活性可使存儲(chǔ)效率相比現(xiàn)有技術(shù)中可能的存儲(chǔ)效率增加或最大化。此靈活性提供改變用戶塊大小(例如,為了將ECC奇偶校驗(yàn)添加到用戶塊格式)的能力,而無需給定存儲(chǔ)器中的物理頁的大小的對(duì)應(yīng)增加。存儲(chǔ)效率可通過充分利用給定存儲(chǔ)器裝置中的物理頁資源的趨勢(shì)來優(yōu)化。圖17為流程圖、由參考數(shù)字1700大體指示,所述圖說明用于以實(shí)現(xiàn)上文在圖15和16的背景中所描述的數(shù)據(jù)結(jié)構(gòu)的方式存儲(chǔ)/寫入用戶數(shù)據(jù)塊的方法的一實(shí)施例。最初,請(qǐng)注意,包括寫入操作的用戶數(shù)據(jù)塊的序列或系列可由過程接收,如圖15和16所說明,其中塊長(zhǎng)度和頁長(zhǎng)度可不同。所述方法在1702處開始且移動(dòng)到1704,在1704處在過程的開端處檢索初始用戶數(shù)據(jù)塊。在1706處,將當(dāng)前用戶數(shù)據(jù)塊以從物理頁的開始處的某一偏移映射到物理頁上,所述偏移可為零或非零偏移值。所述偏移可(例如)存儲(chǔ)為先前塊元數(shù)據(jù)中的值或存儲(chǔ)為含于由FTL功能創(chuàng)建且使用的表中的地址。在1710處,進(jìn)行關(guān)于當(dāng)前用戶數(shù)據(jù)塊是否為寫入傳送中的最后一個(gè)塊的確定。如果不是,那么操作繼續(xù)進(jìn)行到1712,在1712處測(cè)試當(dāng)前頁現(xiàn)在是否充滿。如果當(dāng)前頁充滿,那么操作轉(zhuǎn)到1714,在1714處接著對(duì)頁進(jìn)行寫入。操作接著返回到1704。在1712處,如果頁不充滿,那么操作返回到1704。再次返回到1710,如果檢測(cè)到最后一個(gè)用戶塊,那么操作繼續(xù)進(jìn)行到1716,在1716處填充當(dāng)前頁中的任何剩余空間(如果存在)。在1718處,對(duì)最后一個(gè)頁進(jìn)行寫入,且操作在1720處結(jié)束,等待下一個(gè)寫入操作。圖18為另一流程圖、由參考數(shù)字1800大體指示,所述圖說明用于從上文在圖15和16的背景中所描述的數(shù)據(jù)結(jié)構(gòu)讀取用戶數(shù)據(jù)塊的方法的一實(shí)施例,且其中塊長(zhǎng)度和頁長(zhǎng)度可不同。所述方法在1802處開始且移動(dòng)到1804,在1804處在過程的開端處檢索初始物理頁。在1806處,將所檢索的頁映射到用戶塊,以使得用戶塊被復(fù)原。為了檢索用戶塊,映射可基于(例如)偏移,所述偏移是在寫入操作(圖17)期間所創(chuàng)建且存儲(chǔ)為先前塊的元數(shù)據(jù)或存儲(chǔ)為存儲(chǔ)于由FTL功能創(chuàng)建且使用的表中的地址。在1808處進(jìn)行測(cè)試以確定用戶數(shù)據(jù)塊的復(fù)原是否完全。如果復(fù)原完全,那么在1810處傳送經(jīng)復(fù)原塊。然而,另一方面,應(yīng)了解,1808可識(shí)別出用戶數(shù)據(jù)塊歸因于從一個(gè)物理頁到下一個(gè)物理頁的塊環(huán)繞而不完全(例如,參見圖15中的塊B2和圖16中的塊B1)。在此情況下,操作返回到1804以用于讀取將含有不完全塊的剩余部分的下一頁。映射1806將重新匯編不完全塊且傳遞現(xiàn)在完全的塊以發(fā)送塊(1810)。在1812處,測(cè)試確定當(dāng)前讀取操作的最后一個(gè)用戶塊是否已復(fù)原。如果不是,那么操作返回到1804以讀取下一頁。如果最后一個(gè)用戶塊已復(fù)原,那么在1816處,當(dāng)前讀取操作結(jié)束,等待下一個(gè)讀取操作。鑒于前述內(nèi)容,提供了一種供在讀取/寫入操作中存取至少一個(gè)固態(tài)存儲(chǔ)器裝置時(shí)使用的高靈活性讀取/寫入布置和相關(guān)聯(lián)方法,其中所述存儲(chǔ)器裝置是由多個(gè)存儲(chǔ)器胞元組成,所述存儲(chǔ)器胞元被組織為可物理地且循序地尋址的頁的一集合,其中每一頁具有一頁長(zhǎng)度以使得頁邊界被界定于所述集合中的所述頁中的連續(xù)頁之間。系統(tǒng)提供了一種控制布置,所述控制布置經(jīng)配置而以一連續(xù)系列的頁存儲(chǔ)且存取與給定寫入操作相關(guān)聯(lián)的數(shù)據(jù)塊群組,以使得所述系列中的至少一個(gè)初始頁被填充且其中所述群組的每一塊可包含不同于頁長(zhǎng)度的塊長(zhǎng)度。應(yīng)了解,所述塊中的至少一者可在從任何頁邊界偏移一定量處存儲(chǔ)。在一系列物理頁具有兩個(gè)或兩個(gè)以上頁和最后一個(gè)頁的初始群組的例子中,所述系統(tǒng)可基于數(shù)據(jù)塊的所述群組至少填充頁的所述初始群組的每一頁。所述最后一個(gè)頁可被填滿或部分填充。如果最后一個(gè)頁被部分填充,那么可用空間可由另一塊的至少一個(gè)部分來填充。物理頁可含有一個(gè)或一個(gè)以上塊邊界且塊的開始(例如)通過從物理頁的開始處的偏移來識(shí)別。換句話來說,可存儲(chǔ)數(shù)據(jù)塊的群組中的特定塊,以使得所述特定塊的第一部分是存儲(chǔ)于第一頁中且所述特定塊的第二部分是存儲(chǔ)于第二頁中,以使得所述特定塊的存儲(chǔ)跨越所述第一頁與所述第二頁之間的頁邊界。為了此論述,所述第一頁和所述第二頁可為圖15和16的數(shù)據(jù)結(jié)構(gòu)內(nèi)的任何兩個(gè)鄰近物理頁。應(yīng)了解,本文中所詳細(xì)描述的本發(fā)明的SSD和相關(guān)聯(lián)模塊提供了一種具有分布式功能性的系統(tǒng),其使在現(xiàn)有技術(shù)方法中趨向于高度集中的活動(dòng)分散。與集中式功能性相比,分散(分布式)功能性更容易獲得可擴(kuò)展性的屬性。也就是說,具有分散式功能性的分布式組件(例如,先前所描述的模塊)能夠?qū)崿F(xiàn)在給定系統(tǒng)按比例增大時(shí)系統(tǒng)額外負(fù)荷的有限增量增加。對(duì)比而言,集中式系統(tǒng)必須提高其集中式控制器的能力,另外系統(tǒng)復(fù)雜性隨著存儲(chǔ)裝置的添加而增加。關(guān)于集中式嵌入式微處理器和嵌入式軟件,管理資源的能力變得受中央控制器的計(jì)算能力和其它能力的約束限制。因此,與嘗試添加與集中式能力相同的功能性的系統(tǒng)相比,對(duì)在功能階層的較低層級(jí)處添加功能性的系統(tǒng)而言,較容易實(shí)現(xiàn)作為屬性的可擴(kuò)展性。為了說明和描述,已呈現(xiàn)本發(fā)明的前述描述。所述描述不欲為詳盡的或?qū)⒈景l(fā)明限于所揭示的精確形式,且依據(jù)以上教示,其它修改和變化可為可能的,其中所屬領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到某些修改、置換、添加和其子組合。
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
大埔区| 共和县| 紫云| 崇仁县| 天津市| 固镇县| 吉林省| 昂仁县| 弋阳县| 古浪县| 隆德县| 永泰县| 理塘县| 西城区| 广州市| 长子县| 樟树市| 连州市| 苗栗市| 沙河市| 桐城市| 永定县| 宿迁市| 嘉善县| 新建县| 无棣县| 永兴县| 普宁市| 东兴市| 阳山县| 阜南县| 安徽省| 无极县| 临城县| 巩留县| 靖边县| 澄迈县| 威海市| 辛集市| 绥德县| 苏尼特左旗|