用于允許數(shù)據(jù)在nand閃存上的有效存儲的架構(gòu)的制作方法
【專利摘要】提供了用于向存儲介質(zhì)寫入數(shù)據(jù)的系統(tǒng)、方法、裝置和技術。存儲介質(zhì)的條帶經(jīng)由一個或多個數(shù)據(jù)傳送信道對接,其中該條帶包括存儲介質(zhì)的多個頁面。接收數(shù)據(jù)流并且將該數(shù)據(jù)流劃分為多個分配單元(AU),其中該多個AU中的每個AU具有預定字節(jié)長度。通過從該多個頁面中的第一頁面上的開始字節(jié)到該多個頁面中的第二頁面上的結(jié)束字節(jié)連續(xù)地寫入從該多個AU中所選擇的AU的字節(jié),所選擇的AU的第一部分被寫入到該第一頁面并且所選擇的AU的第二部分被寫入到該第^■頁ISf。
【專利說明】用于允許數(shù)據(jù)在NAND閃存上的有效存儲的架構(gòu)
[0001] 相關申請的奪叉引用
[0002] 本專利文獻要求于2012年3月16日提交的美國臨時申請No. 61/612, 140的權益 并且要求其優(yōu)先杈,上述申請的公開內(nèi)容因此通過引用其全文而結(jié)合于此。
【技術領域】
[0003] 本公開涉及用于將數(shù)據(jù)有效地寫入包括NAND閃存介質(zhì)在內(nèi)的存儲介質(zhì)的技術。
【背景技術】
[0004] 本文中所提供的【背景技術】描述是為了總體上給出本公開內(nèi)容的背景。就該背景技 術部分中所描述的工作的范圍以及說明書中的在提交時并不以其它方式構(gòu)成現(xiàn)有技術的 方面而言,本文的發(fā)明人的工作既非明確也非隱含地被承認為相對本公開的現(xiàn)有技術。
[0005] 固態(tài)硬盤(SSD)從諸如NAND閃存設備或動態(tài)隨機訪問存儲器(DRAM)設備的設 備讀取和寫入數(shù)據(jù)。在NAND閃存的情況下,SSD通常包括SSD控制器,其具有用于往來于 NAND閃存?zhèn)魉蛿?shù)據(jù)的多個數(shù)據(jù)信道。另外,SSD控制器通常執(zhí)行以固定字節(jié)大小的單元對 數(shù)據(jù)進行管理的固件,上述固定字節(jié)大小的單元被稱作分配單元(AU)。傳統(tǒng)上,數(shù)據(jù)在單次 操作中被寫入NAND閃存的給定頁面并且該寫入操作包括多個字節(jié),該多個字節(jié)是AU的字 節(jié)大小的整數(shù)倍。當NAND閃存的頁面大小并非AU大小的整數(shù)倍時,NAND閃存的存儲器就 可能并未被充分利用。
【發(fā)明內(nèi)容】
[0006] 提供了用于向存儲介質(zhì)寫入數(shù)據(jù)的系統(tǒng)、方法、裝置和技術。一種系統(tǒng)包括接口電 路,該接口電路被配置為經(jīng)由一個或多個數(shù)據(jù)傳送信道與該存儲介質(zhì)的條帶(Stripe)對 接,其中該條帶包括該存儲介質(zhì)的多個頁面(page)。該系統(tǒng)進一步包括分區(qū)電路,該分區(qū)電 路被配置為接收數(shù)據(jù)流并且將該數(shù)據(jù)流劃分為多個AU,該多個AU中的每個AU具有預定字 節(jié)長度。該系統(tǒng)進一步包括寫電路,該寫電路被配置為通過從該多個頁面中的第一頁面上 的開始字節(jié)到該多個頁面中的第二頁面上的結(jié)束字節(jié)連續(xù)地寫入從該多個AU中所選擇的 AU的字節(jié),來將所選擇的AU的第一部分寫入到該第一頁面并且將所選擇的AU的第二部分 寫入到該第二頁面。
[0007] 在一些實施方式中,該寫電路被配置為基于頁面的排序序列來將該多個AU寫入 到該條帶。在一些實施方式中,該寫電路包括寫緩沖器,并且該寫電路被配置為在等于該條 帶長度的數(shù)據(jù)量累積在該寫緩沖器中之后對該存儲介質(zhì)寫入。在一些實施方式中,該系統(tǒng) 包括糾錯(ECC)電路,該糾錯(ECC)電路被配置為讀取被存儲在該存儲介質(zhì)的條帶中的數(shù) 據(jù)并且計算對應于所讀取的數(shù)據(jù)的糾錯序列。在一些實施方式中,該寫電路被配置為接收 該糾錯序列并且將該糾錯序列寫入到該存儲介質(zhì)的條帶的最后一個頁面。
[0008] -種方法包括經(jīng)由一個或多個數(shù)據(jù)傳送信道與存儲介質(zhì)的條帶對接,其中該條帶 包括該存儲介質(zhì)的多個頁面。該方法進一步包括接收數(shù)據(jù)流并且將該數(shù)據(jù)流劃分為多個 AU,該多個AU中的每個AU具有預定字節(jié)長度。該方法進一步包括通過從該多個頁面中的 第一頁面上的開始字節(jié)到該多個頁面中的第二頁面上的結(jié)束字節(jié)連續(xù)地寫入從該多個AU 中所選擇的AU的字節(jié),來將所選擇的AU的第一部分寫入到第一頁面并且將所選擇的AU的 第二部分寫入到第二頁面。
【專利附圖】
【附圖說明】
[0009] 通過考慮以下結(jié)合附圖所進行的詳細描述,本發(fā)明的以上和其它特征將是顯而易 見的,在附圖中,同樣的附圖標記始終指代同樣的部分,并且其中:
[0010] 圖1描繪了依據(jù)一些實施例的用于存儲介質(zhì)的說明性的現(xiàn)有技術的數(shù)據(jù)分配技 術;
[0011] 圖2描繪了依據(jù)一些實施例的針對存儲介質(zhì)中的頁面的兩種說明性AU分配;
[0012] 圖3描繪了依據(jù)一些實施例的可以被SSD控制器的固件用來向單個條帶分配頁面 的說明性技術;
[0013] 圖4描繪了依據(jù)一些實施例的在存儲介質(zhì)的存儲設備中針對兩個不同AU值和針 對多個條帶大小而未被充分利用("浪費")的百分比;
[0014] 圖5描繪了依據(jù)一些實施例的由SSD控制器的固件所執(zhí)行的用于確定要被包括在 條帶中的存儲介質(zhì)的頁面數(shù)量的說明性過程;
[0015] 圖6描繪了依據(jù)一些實施例的存儲介質(zhì)的頁面,該存儲介質(zhì)包括用于其中SSD控 制器采用寫緩沖器的系統(tǒng)的部分已被寫入的條帶;
[0016] 圖7描繪了依據(jù)一些實施例的存儲介質(zhì)的頁面,該存儲介質(zhì)包括用于其中SSD控 制器未采用寫緩沖器的系統(tǒng)的部分已被寫入的條帶;
[0017] 圖8圖示了依據(jù)一些實施例的其中單個AU可由單個信道或者最多兩個相鄰信道 進行訪問的情形;
[0018] 圖9圖示了依據(jù)一些實施例的七個AU及其相應的相關聯(lián)信道;以及
[0019] 圖10示出了依據(jù)一些實施例的用于執(zhí)行本文中所描述的任意過程的計算設備的 說明性框圖。
【具體實施方式】
[0020] 本文公開了用于以基于條帶的邏輯結(jié)構(gòu)為基礎而提高包括NAND閃存介質(zhì)在內(nèi)的 存儲介質(zhì)的利用率的技術。
[0021] 圖1描繪了依據(jù)一些實施例的用于存儲介質(zhì)的說明性的現(xiàn)有技術的數(shù)據(jù)分配技 術。特別地,圖示100描繪了屬于存儲介質(zhì)的四個頁面的集合110,而個體頁面被標記為P0、 PI、P2和P3。圖示100進一步描繪了總共12個AU被SSD控制器寫入到四個頁面的集合 110的方式。出于說明的目的,假設四個頁面的集合110中的每個頁面具有2, 048個字節(jié)的 大小并且每個AU具有520個字節(jié)的大小。在典型系統(tǒng)中,給定AU可能并不跨存儲設備的 頁面而是取而代之必須完全被寫入到單個頁面。因此,在圖示100中,包括AO、A1和A2的 AU的塊120被寫入到存儲設備的頁面P0中的前520X3 = 1,560個字節(jié)中。然而,由于在 該寫操作之后在頁面P0中僅剩余488個字節(jié),所以沒有空間將整個A3寫入到頁面P0。
[0022] 因此,A3被另外寫入到該存儲介質(zhì)的新的頁面,P1。特別地,如圖1所描繪的,頁 面P0、P1、P2和P3中的每一個頁面都恰好存儲三個AU。因此,由于個體AU的存儲不可跨該 存儲介質(zhì)的任何兩個頁面,所以頁面Ρ〇、Ρ1、Ρ2和P3中的每一個頁面上的存儲空間都未被 充分利用。特別地,未被充分利用的字節(jié)在圖1中由字節(jié)125、135、145和155所表示。特 別地,頁面P0、P1、P2和P3中的每一個頁面均包括488個字節(jié)的未使用空間,總共為2, 048 個字節(jié)。因此,頁面P0、P1、P2和P3中的每一個頁面大約有百分之23未被充分利用。
[0023] 因此,在存儲介質(zhì)的頁面大小并不是AU大小的整數(shù)倍的應用中,將不會有多個AU 恰好占據(jù)存儲介質(zhì)的頁面的所有字節(jié),并且存儲介質(zhì)因此將不會被充分利用。因此,提出 了如本公開中所描述的基于條帶的技術,以解決這樣的缺陷并且針對其中頁面大小并非AU 大小的整數(shù)倍的系統(tǒng)提高包括NAND閃存存儲介質(zhì)在內(nèi)的存儲介質(zhì)的利用率。
[0024] 條帶是存儲介質(zhì)中指定數(shù)量的頁面(例如,2、5或10個頁面)的分組。有利地,通 過使用條帶邏輯框架,SSD控制器的固件允許AU跨存儲設備的頁面進行細分,同時仍然對 這樣的AU內(nèi)的所有數(shù)據(jù)進行正確讀取和訪問。令Μ表示條帶中頁面的數(shù)量并且令N表示 條帶中AU的數(shù)量。因此,理想情況下,為了實現(xiàn)存儲介質(zhì)的完全利用,以下等式應當成立:
[0025] Μ* (以字節(jié)為單位的頁面大?。?Ν* (以字節(jié)為單位的AU大?。?。(1)然而,實際 上,需要滿足等式(1)的Μ和/或Ν的數(shù)值可能過大或者另外地實施起來并不現(xiàn)實。然而, 即使在使用并不滿足以上等式(1)的Μ和Ν的數(shù)值時,與其中個體AU不被允許跨頁面進行 細分的方案相比,存儲介質(zhì)仍然基于條帶框架而得到更為有效地利用。這將在以下進行描 述。
[0026] 基于條帶的方法的一些優(yōu)勢基于圖2的圖示200進行描繪。具體地,針對頁面大 小為2, 048個字節(jié)而AU大小為1,030個字節(jié)的情形,圖示225描繪了 Μ = 4且Ν = 7的情 形。如圖示225所示,SSD控制器的固件允許個體AU 230跨頁面進行細分并且因此存儲介 質(zhì)的前三個頁面(分別被標記為Ρ〇、Ρ1和Ρ2)被完全利用。然而,由于等式(1)并未被滿 足,所以NAND存儲設備關于最后一個頁面Ρ4存在一定程度的非充分利用。特別地,如圖2 所描繪的,頁面Ρ4并未被完全寫入并且某些數(shù)量的字節(jié)232保持空白。七個AU 230占據(jù) 了圖示225中所描繪的條帶的總共8,192個字節(jié)中的7, 210個字節(jié),大約為百分之88的總 體利用率。作為比較,如果AU無法跨頁面進行細分,則該NAND閃存的總體利用率將是每頁 面的每2, 048個字節(jié)中的1,030個字節(jié),或者大約稍高于百分之50的利用率。
[0027] 作為基于條帶的方法的第二圖示,圖示250針對832個字節(jié)的頁面大小和520個 字節(jié)的AU大小的情形描繪了 Μ = 10且N= 16的情形。在這種情況下,等式(1)得到滿足, 并且因此NAND存儲設備被完全利用。特別地,頁面P9 (圖示250中所描繪的條帶的最后一 個頁面)被完全寫入。作為比較,如果AU無法跨頁面進行細分,則該NAND閃存的總體利用 率將為每832個字節(jié)中的520個字節(jié),或者大約稍高于百分之62的利用率。
[0028] 將頁面邏輯分組為條帶由SSD控制器的固件來執(zhí)行,并且在一些實施方式中,該 固件可以僅將來自單個存儲設備的頁面分配至一個條帶,而在其它實施方式中,該固件可 以將來自多個存儲設備的頁面分配至單個條帶。除此之外或可替換地,該固件可以將能夠 通過多個不同數(shù)據(jù)傳送信道進行訪問的頁面分配至單個條帶。
[0029] 圖3描繪了依據(jù)一些實施例的可以被SSD控制器的固件用來向單個條帶分配頁面 的說明性技術。特別地,圖示300描繪了其中SSD控制器可以對跨四個不同設備(分別標 記為DEV0、DEV1、DEV2和DEV3)進行分布并且使用兩個不同信道(分別標記為CH0和CH1) 的96個頁面進行寫入。圖3的不同設備可以對應于例如不同的存儲器或存儲設備,SSD控 制器能夠獨立地從這些不同的存儲器或存儲設備中的每一個進行讀取并對其進行寫入。圖 示300針對用于向跨信道和設備的條帶分配頁面的兩種不同策略而描繪了 Μ = 8的情形。
[0030] 第一種條帶分配策略是跨設備和信道兩者分配條帶。這由圖3中的條帶310和條 帶320描繪。第二種可替換的條帶分配策略是要求被分配至給定條帶的所有頁面都屬于共 同的信道(同時跨設備被分布)。針對該信道為CH0的情形,這由條帶330所圖示,而針對 該信道為CH1的情形,這由條帶340進行圖示。如本領域技術人員將要理解的,基于本文 中的公開內(nèi)容和教導,圖3所描繪的分配策略僅是可以使用的許多類型的分配策略中的兩 種。實際上,可以使用包含整數(shù)數(shù)量的AU和整數(shù)數(shù)量的頁面兩者的任意分配策略(圖3中 所描繪的任意頁面的群組到單個條帶的映射)。
[0031] 為了訪問被存儲在條帶中的數(shù)據(jù)并且為了向條帶中寫入數(shù)據(jù),固件必須能夠生成 每個所存儲的AU的第一字節(jié)的地址(或等同的地址)。為此,該固件使用兩個尋址組件。首 先是條帶ID,其被用來識別存儲設備中所存儲的數(shù)據(jù)的每個條帶的開始的,以及AU索引, 其被用來識別與給定AU相關聯(lián)的偏移量。例如,在具有總共Ρ個條帶并且每個條帶Ν個AU 的存儲設備中,給定AU可以由從0至Ρ-1的條帶ID數(shù)值以及從0至Ν-1的AU索引數(shù)值進 行尋址。另外,為了訪問物理存儲器地址,該固件可以參考閃存變換層(FTL)表,該表將條 帶ID和AU索引數(shù)值映射至物理存儲器地址(并且物理存儲器地址自身可以由頁面標識編 號和頁面偏移量所表不)。
[0032] 針對各種應用,固件將把一組地址與給定AU相關聯(lián)。針對被完全寫入在單個頁面 內(nèi)的AU,固件可以保存具有形式(條帶ID、第一字節(jié)、最后一個字節(jié))的單個條目。例如,參 考回圖2,針對AU A0 257,固件可以保存單個條目(0,0, 519),其表示該AU屬于第一條帶并 且占據(jù)該條帶的字節(jié)0至519。另一方面,針對圖2中跨多個條帶進行細分的AU A1 259, 該固件使用兩個條目。因此,AUA0 257可以由與該AU在第一個頁面中所占據(jù)的字節(jié)相對 應的條目(〇,〇,519)所表示,而AU A1 259則可以由與該AU分別在第一個和第二個頁面中 所占據(jù)的字節(jié)相對應的條目(0,520,831)和(1,0,207)所表示。
[0033] SSD控制器可以使用固件和硬件的任意適當組合,將條帶ID和AU索引數(shù)值轉(zhuǎn)譯為 頁面地址和頁面偏移量(或者在AU跨兩個頁面的情況下可能是兩對頁面地址和頁面偏移 量)。在第一實施方式中,該固件向SSD控制器的硬件提供條帶ID和AU索引。該硬件隨 后將該條帶ID和AU索引數(shù)值解碼為(多個)頁面地址和(多個)頁面偏移量。例如,該 硬件在AU跨頁面邊界的情況下將生成兩個頁面讀數(shù)。在第二實施方式中,該固件自行將條 帶ID和AU索引數(shù)值解碼為(多個)頁面地址和頁面偏移量數(shù)值。在這種情況下,該固件 在AU跨過頁面邊界的情況下自行生成兩個頁面讀數(shù)。
[0034] 利用硬件進行地址解碼的第一實施方式的優(yōu)勢在于,使得固件可用于處理其它操 作,并且因此整體系統(tǒng)性能可能比使用固件進行解碼的第二實施方式更快。第一實施方式 的缺陷在于硬件必須了解潛在的被損壞或不可使用的地址數(shù)值,并且這可能需要使用大量 資源來向硬件提供這樣的信息。有利的是,所公開的條帶結(jié)構(gòu)并不受限于SSD控制器執(zhí)行 AU的讀取的方式。
[0035] 圖4描繪了依據(jù)一些實施例的在存儲介質(zhì)的存儲設備中針對兩個不同AU值和針 對多個條帶大小而未被充分利用("浪費")的百分比。特別地,表410針對4, 680個字節(jié)的 AU大小405以及1、2、3、4和16個頁面的條帶大小描繪了浪費數(shù)值,而表420則針對4, 752 個字節(jié)的AU大小415以及針對1、2、3、4和16個頁面的條帶大小描繪了浪費數(shù)值。在兩種 情況下,頁面大小都為9, 216個字節(jié)。作為如何計算浪費數(shù)值的示例,考慮對應于4, 680個 字節(jié)的AU大小以及三個頁面的條帶大?。ɑ?, 216X3 = 27, 648個字節(jié))的行418。在 這種情況下,在不超過該條帶的字節(jié)大小的情況下,最多有5個AU可以被寫入到一個條帶 (即,總共23, 400個字節(jié))。因此,該條帶的27, 648個字節(jié)中的4, 248個字節(jié)未被使用,相 當于大約百分之15的浪費。
[0036] 如圖4所描繪的,針對4, 680個字節(jié)和4, 752個字節(jié)的AU大小的情形,浪費隨著條 帶大小的增大而減少,直至該條帶大小達到16個頁面的長度。如圖4所描繪的,針對4, 680 個字節(jié)的AU大小405的浪費大約為百分之1.6113,而針對4, 752個字節(jié)的AU大小415的 浪費則大約為百分之〇. 0977。因此,使用本公開內(nèi)容中關于圖4所描述的技術,針對甚至中 等條帶大小,浪費通常也能夠被減少為相對小的百分比。在一種布置中,浪費字節(jié)并未被留 為空白,而是相反地被用于存儲糾錯碼(ECC)字節(jié)。例如,在表410中并且利用16個頁面 的條帶大小,2, 376個字節(jié)并未被分配至AU。這些字節(jié)可以被用來存儲ECC字節(jié)以確保所 使用的147, 456-2, 376 = 145, 080個字節(jié)的可靠性。
[0037] 圖5描繪了依據(jù)一些實施例的由SSD控制器的固件所執(zhí)行的用于確定要被包括在 條帶中的存儲介質(zhì)的頁面數(shù)量的說明性過程。過程500在505開始。在510,由固件獲得 均以字節(jié)為單位測量并且分別以AU_Size和Page_Si Ze所表示的AU的大小和頁面的大小。 例如,在一種布置中,參數(shù)AU_Size可以為4, 680個字節(jié)并且參數(shù)Page_Size可以為9, 216 個字節(jié)。
[0038] 在520,該固件將由Page_Cnt所表示的頁面計數(shù)器的數(shù)值設置為等于數(shù)值1。該 頁面計數(shù)器表示要包括在一個條帶中的頁面的總數(shù)量的當前候選數(shù)值。在530,該固件基于 參數(shù)AU_Size和Page_Cnt來確定由Stripe_Size_Write所表示的、以字節(jié)為單位的條帶的 當前大小。特別地,該固件根據(jù)以下關系來確定該數(shù)量:
[0039] Stripe_Size_ffrite = AU_SizeXPage_Cnt
[0040] 在530,該固件確定與條帶大小和AU大小相關聯(lián)的由Waste_Bytes所表示的浪費 字節(jié)的數(shù)量。為此,該固件確定納入到一個條帶中的AU的最大整數(shù)數(shù)量。例如,如果條帶 大小為27, 648個字節(jié)并且AU大小為4, 680個字節(jié),則該固件確定最多將有五個AU納入到 該條帶中。接下來,基于將納入到條帶中的AU的最大數(shù)量的大小,該固件確定浪費字節(jié)的 數(shù)量。例如,由于最多將有大小為4, 680個字節(jié)的五個AU均納入到大小為27, 648個字節(jié) 的條帶中,則上述示例中有27, 648-5X (4, 680) = 4, 248個浪費字節(jié)。
[0041] 在540,該固件基于在540所確定的浪費字節(jié)的數(shù)量以及在530所確定的條帶大小 來確定由Waste_Percentage所表示的浪費百分比。具體地,該固件根據(jù)以下關系確定浪費 百分比:
[0042] Waste_Percentage = 100(Waste_Bytes/Stripe_Size_Write)。
[0043] 例如,如果浪費字節(jié)的數(shù)量為4, 248個字節(jié)而條帶大小為27, 648個字節(jié),則浪費 百分比被確定為大約百分之15。在550,確定在540所確定的浪費百分比是否小于預先指 定的數(shù)值(例如,百分之一、百分之三或百分之五)。如果浪費百分比在560被確定為小于 該預先指定的數(shù)值,則過程500進行至570,在那里該固件確定條帶要包括等于頁面計數(shù)器 Page_Cnt的當前數(shù)值的頁面數(shù)量。另一方面,如果浪費百分比在560被確定為大于該預定 數(shù)值,則過程500進行至580,在那里頁面計數(shù)器被遞增數(shù)值1。在后者的這種情況下,過程 500進行至530。
[0044] 在一些實施方式中,如本文中所描述的SSD控制器的固件使用寫緩沖器來管理針 對存儲介質(zhì)的頁面的數(shù)據(jù)寫入。在這些實施方式中,寫緩沖器在向該介質(zhì)進行全部寫入之 前累積對整個條帶進行寫入的足夠數(shù)據(jù)。然而,即使在采用了寫緩沖器的時候,也可能僅對 部分條帶進行了寫入。例如,可能當在條帶寫入開始之后但是在寫入已經(jīng)完成之前發(fā)生斷 電事件的時候?qū)懭肓瞬糠謼l帶。另外,在一些實施方式中,SSD控制器可能根本不采用寫緩 沖器或者可能采用大小小于條帶大小的寫緩沖器。在這種情況下,部分條帶將按常規(guī)被寫 入到介質(zhì)。
[0045] 圖6描繪了依據(jù)一些實施例的存儲介質(zhì)的頁面,該存儲介質(zhì)包括用于其中SSD控 制器采用寫緩沖器的系統(tǒng)的部分已被寫入的條帶。在圖6中,每個矩形框表示存儲介質(zhì)的 頁面,并且行對應于不同數(shù)據(jù)傳送信道而列對應于不同條帶(因此,在圖6的示例中,每個 條帶恰好包含六個頁面)。另外,帶陰影的頁面、或帶陰影的頁面的一部分分別表示該頁面 或該頁面的一部分已經(jīng)被SSD控制器所寫入。非陰影頁面或頁面的部分分別表示該頁面或 頁面的部分還未被寫入。
[0046] 圖6的SSD控制器累積整個條帶的數(shù)據(jù)并且一次寫入整個條帶的數(shù)據(jù)。因此,條帶 605和610如圖6中的帶陰影矩形所示,被完全寫入。另一方面,在SSD控制器對條帶615 進行寫入時發(fā)生了斷電事件。特別地,該斷電事件在SSD控制器對頁面620進行寫入時發(fā) 生并且因此頁面620僅被部分寫入,如頁面620的部分陰影所反映的。當SSD控制器在隨 后(例如,在上電之后)繼續(xù)寫入時,頁面620并未被再次寫入。相反地,寫入在下一個頁 面、即頁面630的中間地址處開始,并且這以圖6中的頁面630的部分陰影所表示。
[0047] 圖7描繪了依據(jù)一些實施例的存儲介質(zhì)的頁面,該存儲介質(zhì)包括用于其中SSD控 制器并未采用寫緩沖器的系統(tǒng)的部分已被寫入的條帶。與圖6中相同,圖7的每個矩形框 表示存儲介質(zhì)的頁面,并且行對應于不同數(shù)據(jù)傳送信道而列對應于不同條帶。另外,帶陰影 的頁面(或帶陰影的頁面的部分)表示該頁面(或該頁面的部分)已經(jīng)被SSD控制器所寫 入。非陰影頁面或頁面的部分分別表示該頁面或頁面的部分還未被寫入。
[0048] 圖7的SSD控制器在不使用寫緩沖器的情況下向存儲介質(zhì)寫入數(shù)據(jù)。因此,在圖7 的頁面中存在許多未被寫入的間隙。例如,雖然條帶705和708已經(jīng)總體上被寫入,但是在 頁面710和715、頁面720和725以及頁面730和735之間存在未被寫入數(shù)據(jù)的間隙。這些 間隙中的每一個間隙對應于SSD控制器的一個寫入會話的結(jié)束和另一個寫入會話的開始。
[0049] 無論SSD控制器是否使用寫緩沖器,頁面之間所寫入的數(shù)據(jù)中的間隙都可以通過 執(zhí)行周期性的回收活動而被回收再利用,上述周期性回收活動被設計為重寫數(shù)據(jù)以便封閉 未被寫入數(shù)據(jù)的間隙。該處理被稱作"垃圾收集"。根據(jù)執(zhí)行垃圾收集的第一種選項,選擇 頁面的單元,其中該單元并不是整數(shù)數(shù)量的條帶。SSD控制器的固件重新寫入數(shù)據(jù)從而封閉 間隙并且追蹤通過垃圾收集過程而被完全清空的條帶。根據(jù)用于執(zhí)行垃圾收集的第二種選 項,該擦除單元是整數(shù)數(shù)量的條帶。
[0050] 在一些實施方式中,AU的分配基于SSD控制器所采用的數(shù)據(jù)傳送信道而受到限 制。特別地,在這些實施方式中,單個AU可以被單個信道進行訪問或者可以由最多兩個相 鄰信道進行訪問(其中,第一信道和最后一個信道被認為是相鄰的)。該約束在圖8中通過 針對SSD控制器使用被標記為0至7的八個信道的情形的示圖825進行圖示。如示圖825 中所示,給定AU可以跨信道1和2,或者信道2和3,或者信道3和4,或者信道4和5,或者 信道5和6,或者信道6和7,或者信道7和0,或者信道0和1。
[0051] 該約束的原因在于,它簡化了差錯控制單元(E⑶)與NAND閃存接口(NFIF) 860之 間的數(shù)據(jù)路由。特別地,示圖850所示,E⑶851包含多個ECC引擎。雖然在示圖850中描 繪了包括ECC引擎852、853和854在內(nèi)的總共八個ECC引擎,但是如本領域技術人員所理 解的,基于本文中的教導和公開內(nèi)容,可能有更多或更少的ECC引擎。每個AU可由單個信 道或者最多兩個相鄰信道進行訪問的約束限制了每個引擎最多向NFIF 860的兩個NAND信 道進行輸出。例如,如圖8中所描繪的,引擎833的輸出通信地耦合至NFIF 860的信道4 和5。
[0052] 將每個AU約束為能夠由單個信道或者最多兩個相鄰信道進行訪問而將每個引擎 的輸出限制為去往針對NFIF 860的最多兩個NAND信道的另一個優(yōu)勢在于,它限制了要在 讀過程期間(例如,由于時序或數(shù)據(jù)損壞差錯)要跳過信道時所丟失的AU的數(shù)量。這在圖 9中進行了圖示。特別地,圖示900描繪了被表示為AU0至AU6的七個AU,以及與它們中的 每一個AU相關聯(lián)的信道(這些信道被表示為CH0至CH3)。例如,AU0僅與信道CH0相關 聯(lián),而AU1與信道CH0和CH1兩者相關聯(lián)。接下來假設CH1必須在讀或?qū)戇^程期間被跳過。 在這種情況下,僅有三個AU,AU1、AU2和AU3,被丟棄。如果每個AU都與多個信道相關聯(lián), 則跳過信道1將可能導致更多數(shù)量的AU被丟棄。
[0053] 圖10示出了依據(jù)一些實施例的用于執(zhí)行本文中所描述的任意過程的計算設備的 說明性框圖。計算設備1000包括至少一個通信接口單元、輸入/輸出控制器1010、系統(tǒng)存儲 器以及一個或多個數(shù)據(jù)存儲設備。該系統(tǒng)存儲器包括至少一個隨機訪問存儲器(RAM 1002) 以及至少一個只讀存儲器(ROM 1004)。所有這些部件都與中央處理器(CPU 1006)進行通 信以促進計算設備1000的操作。計算設備1000可以以許多不同方式進行配置。例如,計 算設備1000可以是常規(guī)的獨立計算機,或者可替換地,計算設備1000的功能可以跨多個計 算機系統(tǒng)和架構(gòu)進行分布。在圖10中,計算設備1000經(jīng)由網(wǎng)絡1018或本地網(wǎng)絡而鏈接至 其它服務器或系統(tǒng)。
[0054] 計算設備1000可以以分布式架構(gòu)進行配置,其中數(shù)據(jù)庫和處理器被保存在單獨 的單元或位置。一些單元執(zhí)行主要處理功能并且至少包含通用控制器或處理器以及系統(tǒng)存 儲器。在分布式架構(gòu)的實施方式中,這些單元中的每一個單元可以經(jīng)由通信接口單元1308 而附接至通信集線器或端口(未示出),該通信集線器或端口用作與其它服務器、客戶端或 用戶計算機以及其它相關設備的主要通信鏈路。該通信集線器或端口自身可以具有最少的 處理能力,主要用作通信路由器。各種通信協(xié)議可以是該系統(tǒng)的一部分,包括但并不局限于 以太網(wǎng)(Ethernet)、SAP、SAS?、ATP、藍牙 ?、GSM 和 TCP/IP。
[0055] CPU 1006包括處理器,諸如一個或多個常規(guī)微處理器以及一個或多個補充協(xié)同處 理器,諸如用于卸載CPU 1006的工作負荷的數(shù)學協(xié)同處理器。CPU 1006與通信接口單元 1008和輸入/輸出控制器1010進行通信,CPU 1006通過它們與其它設備、諸如其它服務 器、用戶終端或設備進行通信。通信接口單元1008和輸入/輸出控制器1010可以包括用 于同時與例如其它處理器、服務器或客戶端終端進行通信的多個通信信道。
[0056] CPU 1006還與數(shù)據(jù)存儲設備進行通信。數(shù)據(jù)存儲設備可以包括磁性、光學或半導 體存儲器的適當組合,并且可以包括例如RAM1002、R0M 1004、閃存、諸如緊致盤的光盤或硬 盤或驅(qū)動器。CPU1006和數(shù)據(jù)存儲設備例如均可以完全位于單個計算機或其它計算設備之 內(nèi);或者通過通信介質(zhì)互相連接,通信介質(zhì)諸如USB端口、串行端口線纜、同軸線纜、以太網(wǎng) 線纜、電話線、射頻收發(fā)器或其它類似的無線或有線介質(zhì)或者以上的組合。例如,CPU 1006 可以經(jīng)由通信接口單元1008連接至數(shù)據(jù)存儲設備。CPU 1006可以被配置為執(zhí)行一個或多 個特定處理功能。
[0057] 數(shù)據(jù)存儲設備例如可以存儲:⑴計算設備1000的操作系統(tǒng)1012 ; (ii)被適配 為依據(jù)這里所描述的系統(tǒng)和方法、特別是依據(jù)關于CPU 1006詳細描述的過程而指引CPU 1006的一個或多個應用1014(例如,計算機程序代碼或計算機程序產(chǎn)品);或者(iii)被適 配為存儲信息的(多個)數(shù)據(jù)庫1016,其可被用來存儲程序所需的信息。
[0058] 操作系統(tǒng)1012和應用1014例如可以以壓縮、非編譯和加密格式進行存儲,并且可 以包括計算機程序代碼。該程序的指令可以從除數(shù)據(jù)存儲設備以外的計算機可讀介質(zhì)讀入 到處理器的主存儲器,諸如從ROM 1004或RAM 1002讀入。雖然該程序中的指令序列的執(zhí) 行使得CPU 1006執(zhí)行本文中所描述的過程步驟,但是可以替代軟件指令或者與之相結(jié)合 地使用硬線電路來實施本公開內(nèi)容的過程。因此,所描述的系統(tǒng)和方法并不局限于硬件和 軟件的任何具體組合。
[0059] 可以提供適當計算機程序代碼來執(zhí)行與如本文中所描述的降低峰值功耗相關的 一個或多個功能。該程序還可以包括諸如操作系統(tǒng)1012、數(shù)據(jù)庫管理系統(tǒng)和"設備驅(qū)動器" 的程序單元,其允許處理器經(jīng)由輸入/輸出控制器1010與計算機外圍設備(例如,視頻顯 示器、鍵盤、計算機鼠標等)對接。
[0060] 如本文中所使用的術語"計算機可讀介質(zhì)"是指向計算設備1000的處理器(或者 本文中所描述的設備的任意其它處理器)提供或參與提供指令以供執(zhí)行的任意非瞬態(tài)介 質(zhì)。這樣的介質(zhì)可以采取許多形式,包括但并不局限于非易失性媒介和易失性媒介。非易 失性媒介例如包括光學、磁性或光學磁盤,或者諸如閃存的集成電路存儲器。易失性媒介包 括動態(tài)隨機訪問存儲器(DRAM),其通常構(gòu)成主存儲器。常見形式的計算機可讀媒體例如包 括軟盤、柔性盤、硬盤、磁帶、任意其它磁性介質(zhì)、CD-ROM、DVD、任意其它光學介質(zhì)、打孔卡、 紙帶、具有開孔圖案的任意其它物理介質(zhì)、RAM、PROM、EPROM或EEPR0M (電可擦除可編程只 讀存儲器)、FLASH-EEPR0M、任意其它存儲器芯片或卡盤(cartridge),或者計算機能夠從 其進行讀取的任意其它非瞬態(tài)介質(zhì)。
[0061] 在向CPU 1006(或者本文中所描述設備的任意其它處理器)輸送一個或多個指令 的一個或多個序列以供執(zhí)行時,可以涉及到多種形式的計算機可讀媒介。例如,這些指令最 初可以處于遠程計算機(未示出)的磁盤上。該遠程計算機可以將指令加載到其動態(tài)存 儲器中并且通過以太網(wǎng)連接、線纜線路或者甚至使用調(diào)制解調(diào)器而通過電話線發(fā)送這些指 令。計算設備1000本地的通信設備(例如,服務器)能夠在相應的通信線路上接收到該數(shù) 據(jù)并且將該數(shù)據(jù)置于用于處理器的系統(tǒng)總線上。該系統(tǒng)總線將該數(shù)據(jù)輸送至主存儲器,處 理器從那里獲取并執(zhí)行這些指令。在被處理器執(zhí)行之前或之后,主存儲器所接收的指令可 選地可以被存儲在存儲器中。此外,這些指令可以作為電、電磁或光學信號而經(jīng)由通信端口 被接收,它們是承載各種類型的信息的無線通信或數(shù)據(jù)流的示例性形式。
[0062] 雖然本文中已經(jīng)示出并描述了本公開內(nèi)容的各個實施例,但是對于本領域技術人 員將會顯而易見的是,這樣的實施例僅是作為示例而被提供?,F(xiàn)在本領域技術人員將進行 多種變化、改變和替換而并不背離本公開內(nèi)容。應當理解的是,在實踐本公開內(nèi)容時可以采 用針對本文中所描述的本公開的實施例的各種替換。以下權利要求旨在定義本公開內(nèi)容的 范圍,并且這些權利要求范圍之內(nèi)的方法和結(jié)構(gòu)及其等同形式因此得以被涵蓋。
【權利要求】
1. 一種用于向存儲介質(zhì)寫入數(shù)據(jù)的系統(tǒng),所述系統(tǒng)包括: 接口電路,所述接口電路被配置為經(jīng)由一個或多個數(shù)據(jù)傳送信道與所述存儲介質(zhì)的條 帶對接,所述條帶包括所述存儲介質(zhì)的多個頁面; 分區(qū)電路,所述分區(qū)電路被配置為接收數(shù)據(jù)流并且將所述數(shù)據(jù)流劃分為多個分配單元 (AU),所述多個AU中的每個AU具有預定字節(jié)長度;以及 寫電路,所述寫電路被配置為通過從所述多個頁面的第一頁面上的開始字節(jié)到所述多 個頁面的第二頁面上的結(jié)束字節(jié)連續(xù)地寫入從所述多個AU中所選擇的AU的字節(jié),來將所 選擇的AU的第一部分寫入到所述第一頁面并且將所選擇的AU的第二部分寫入到所述第二 頁面。
2. 根據(jù)權利要求1所述的系統(tǒng),其中所述寫電路被配置為基于所述頁面的排序序列來 將所述多個AU寫入到所述條帶。
3. 根據(jù)權利要求1所述的系統(tǒng),其中所述寫電路包括寫緩沖器,并且其中所述寫電路 被配置為在等于所述條帶的長度的數(shù)據(jù)量累積在所述寫緩沖器中之后對所述存儲介質(zhì)寫 入。
4. 根據(jù)權利要求1所述的系統(tǒng),其中所述多個頁面位于多個存儲設備上。
5. 根據(jù)權利要求1所述的系統(tǒng),其中所述寫電路被配置為使用所述一個或多個數(shù)據(jù)傳 送信道中的第一數(shù)據(jù)傳送信道來訪問所述多個頁面中的第一頁面,并且使用所述一個或多 個數(shù)據(jù)傳送信道中的第二數(shù)據(jù)傳送信道來訪問所述多個頁面中的第二頁面。
6. 根據(jù)權利要求1所述的系統(tǒng),其中所述多個AU中的每個AU與來自所述一個或多個 數(shù)據(jù)傳送信道中的最多兩個數(shù)據(jù)傳送信道相關聯(lián),并且其中所述兩個數(shù)據(jù)傳送信道相鄰。
7. 根據(jù)權利要求1所述的系統(tǒng),進一步包括收集電路,所述收集電路被配置為: 讀取被存儲在所述存儲介質(zhì)中的數(shù)據(jù); 檢測所讀取的數(shù)據(jù)之中的未被寫入的字節(jié);以及 將所讀取的數(shù)據(jù)重新寫入到所述存儲介質(zhì),其中所述重新寫入在未被寫入的字節(jié)上寫 入。
8. 根據(jù)權利要求1所述的系統(tǒng),進一步包括糾錯(ECC)電路,所述糾錯(ECC)電路被配 置為: 讀取被存儲在所述存儲介質(zhì)的所述條帶中的數(shù)據(jù);以及 計算對應于所讀取的數(shù)據(jù)的糾錯序列。
9. 根據(jù)權利要求8所述的系統(tǒng),其中所述寫電路被配置為: 接收所述糾錯序列;以及 將所述糾錯序列寫入到所述存儲介質(zhì)的所述條帶的最后頁面。
10. 根據(jù)權利要求1所述的系統(tǒng),其中所述寫電路被配置為將所述多個AU寫入到所述 條帶的第一部分而留下所述條帶的第二部分未被寫入。
11. 一種用于向存儲介質(zhì)寫入數(shù)據(jù)的方法,所述方法包括: 經(jīng)由一個或多個數(shù)據(jù)傳送信道與所述存儲介質(zhì)的條帶對接,所述條帶包括所述存儲介 質(zhì)的多個頁面; 接收數(shù)據(jù)流并且將所述數(shù)據(jù)流劃分為多個分配單元(AU),所述多個AU中的每個AU具 有預定字節(jié)長度;以及 通過從所述多個頁面的第一頁面上的開始字節(jié)到所述多個頁面的第二頁面上的結(jié)束 字節(jié)連續(xù)地寫入從所述多個AU中所選擇的AU的字節(jié),來將所選擇的AU的第一部分寫入到 所述第一頁面并且將所選擇的AU的第二部分寫入到所述第二頁面。
12. 根據(jù)權利要求11所述的方法,進一步包括:基于所述頁面的排序序列來將所述多 個AU寫入到所述條帶。
13. 根據(jù)權利要求11所述的方法,進一步包括:響應于確定等于所述條帶的長度的數(shù) 據(jù)量累積在寫緩沖器中,對所述存儲介質(zhì)寫入。
14. 根據(jù)權利要求11所述的方法,其中所述多個頁面位于多個存儲設備上。
15. 根據(jù)權利要求11所述的方法,進一步包括:使用所述一個或多個數(shù)據(jù)傳送信道中 的第一數(shù)據(jù)傳送信道來訪問所述多個頁面中的第一頁面,并且使用所述一個或多個數(shù)據(jù)傳 送信道中的第二數(shù)據(jù)傳送信道來訪問所述多個頁面中的第二頁面。
16. 根據(jù)權利要求11所述的方法,其中所述多個AU中的每個AU與來自所述一個或 多個數(shù)據(jù)傳送信道中的最多兩個數(shù)據(jù)傳送信道相關聯(lián),并且其中所述兩個數(shù)據(jù)傳送信道相 鄰。
17. 根據(jù)權利要求11所述的方法,進一步包括: 讀取被存儲在所述存儲介質(zhì)中的數(shù)據(jù); 檢測所讀取的數(shù)據(jù)之中的未被寫入的字節(jié);以及 將所讀取的數(shù)據(jù)重新寫入到所述存儲介質(zhì),其中所述重新寫入在未被寫入的字節(jié)上寫 入。
18. 根據(jù)權利要求11所述的方法,進一步包括: 讀取被存儲在所述存儲介質(zhì)的所述條帶中的數(shù)據(jù);以及 計算對應于所讀取的數(shù)據(jù)的糾錯序列。
19. 根據(jù)權利要求18所述的方法,進一步包括: 接收所述糾錯序列;以及 將所述糾錯序列寫入到所述存儲介質(zhì)的所述條帶的最后頁面。
20. 根據(jù)權利要求11所述的方法,進一步包括:將所述多個AU寫入到所述條帶的第一 部分而留下所述條帶的第二部分未被寫入。
【文檔編號】G06F3/06GK104220991SQ201380019240
【公開日】2014年12月17日 申請日期:2013年3月14日 優(yōu)先權日:2012年3月16日
【發(fā)明者】S-H·F·奧, 孫飛, 申眩錫, 李智剛 申請人:馬維爾國際貿(mào)易有限公司