固態(tài)器件中的多糾錯(cuò)碼代碼字尺寸的制作方法
【技術(shù)領(lǐng)域】
[0001]本主題技術(shù)總體涉及一種固態(tài)存儲(chǔ)設(shè)備。
【背景技術(shù)】
[0002]主機(jī)數(shù)據(jù)可以通過(guò)將主機(jī)數(shù)據(jù)編碼成糾錯(cuò)碼(ECC)代碼字并將該代碼字存儲(chǔ)在數(shù)據(jù)存儲(chǔ)介質(zhì)上而被可靠地存儲(chǔ)在諸如閃存的數(shù)據(jù)存儲(chǔ)介質(zhì)中。響應(yīng)于讀取命令,代碼字可以從所述數(shù)據(jù)存儲(chǔ)介質(zhì)中被讀取并且在將無(wú)差錯(cuò)主機(jī)數(shù)據(jù)傳遞給主機(jī)之前被解碼。主機(jī)數(shù)據(jù)的扇區(qū)的尺寸可以基于主機(jī)系統(tǒng)而改變。例如,在企業(yè)應(yīng)用中,相對(duì)于在許多客戶(hù)應(yīng)用中所使用的512字節(jié),主機(jī)扇區(qū)尺寸在增加ECC奇偶校驗(yàn)位之前可以是536字節(jié)。不同尺寸的和主機(jī)扇區(qū)可以增加如固態(tài)器件(SSD)的基于閃存的數(shù)據(jù)存儲(chǔ)系統(tǒng)的復(fù)雜性以及折中該數(shù)據(jù)存儲(chǔ)系統(tǒng)的性能。
【發(fā)明內(nèi)容】
[0003]披露了一種用于在固態(tài)器件中存儲(chǔ)數(shù)據(jù)的系統(tǒng)和方法。根據(jù)一個(gè)方面,一種方法可包括:接收多個(gè)主機(jī)數(shù)據(jù)單元,用于存儲(chǔ)在固態(tài)非易失性存儲(chǔ)器中;在多個(gè)數(shù)據(jù)有效載荷之間劃分所述多個(gè)主機(jī)數(shù)據(jù)單元,其中第一數(shù)據(jù)有效載荷包括第一主機(jī)數(shù)據(jù)單元,而第二數(shù)據(jù)有效載荷包括第二主機(jī)數(shù)據(jù)單元的一部分;將第一數(shù)據(jù)有效載荷編碼成具有第一代碼字尺寸的第一代碼字;將第二數(shù)據(jù)有效載荷編碼成具有第二代碼字尺寸的第二代碼字,第二代碼字尺寸不同于第一代碼字尺寸;以及將第一代碼字和第二代碼字寫(xiě)到固態(tài)非易失性存儲(chǔ)器中的第一頁(yè)。在另一個(gè)方面,一種機(jī)器可讀介質(zhì)可以包括其上的指令,這些指令在被執(zhí)行時(shí)執(zhí)行前述方法。
[0004]在另一個(gè)方面,一種系統(tǒng)可以包括:固態(tài)非易失性存儲(chǔ)器;一個(gè)或多個(gè)數(shù)據(jù)緩存器,配置為接收多個(gè)主機(jī)數(shù)據(jù)單元,用于存儲(chǔ)在所述固態(tài)非易失性存儲(chǔ)器中;控制器,被配置為在多個(gè)數(shù)據(jù)有效載荷之間劃分在所述一個(gè)或多個(gè)數(shù)據(jù)緩存器中的所述多個(gè)主機(jī)數(shù)據(jù)單元,其中第一數(shù)據(jù)有效載荷包括第一主機(jī)數(shù)據(jù)單元,而第二數(shù)據(jù)有效載荷包括第二主機(jī)數(shù)據(jù)單元的一部分;以及編碼器/解碼器,被配置為將第一數(shù)據(jù)有效載荷編碼成具有第一代碼字尺寸的第一代碼字以及被配置為將第二數(shù)據(jù)有效載荷編碼成具有第二代碼字尺寸的第二代碼字,所述第二代碼字尺寸不同于所述第一代碼字尺寸,其中所述控制器還被配置為將所述第一代碼字和所述第二代碼字寫(xiě)到固態(tài)非易失性存儲(chǔ)器中的第一頁(yè)。
[0005]應(yīng)該理解的是,本領(lǐng)域技術(shù)人員根據(jù)下面的詳細(xì)描述易于清楚該主題技術(shù)還有其它配置,在下面的詳細(xì)描述中通過(guò)圖釋方式示出并描述了該主題技術(shù)的各種配置。如所認(rèn)識(shí)到的那樣,該主題技術(shù)能夠有其它的和不同的配置,并且其幾個(gè)細(xì)節(jié)能夠在各種其它方面進(jìn)行修改,所有這些都不脫離本主題技術(shù)的范圍。因此,這些附圖和詳細(xì)描述自然地都將被認(rèn)為是闡述性的而不應(yīng)該被認(rèn)為是一種限制。
【附圖說(shuō)明】
[0006]下面將參照附圖進(jìn)行詳細(xì)描述。
[0007]圖1是根據(jù)本主題技術(shù)的方面的框圖,圖釋了一系列包括主機(jī)數(shù)據(jù)和糾錯(cuò)碼的代碼字的實(shí)例,這些代碼字跨存儲(chǔ)器塊的多個(gè)頁(yè)被存儲(chǔ)。
[0008]圖2描繪了根據(jù)本主題技術(shù)的方面的框圖,圖釋了固態(tài)器件的組件,這些組件被配置為存儲(chǔ)從主機(jī)系統(tǒng)中接收的數(shù)據(jù)。
[0009]圖3是根據(jù)本主題技術(shù)的方面的流程圖,圖釋了用于將數(shù)據(jù)存儲(chǔ)在固態(tài)器件中的實(shí)例處理。
【具體實(shí)施方式】
[0010]下面給出的詳細(xì)描述意圖作為本主題技術(shù)的各種配置而不意圖代表其中可以實(shí)現(xiàn)本主題技術(shù)的僅有配置。所述附圖被包含在此處并構(gòu)成該詳細(xì)描述的一部分。該詳細(xì)描述包括用于提供該主題技術(shù)的整體理解的一些具體細(xì)節(jié)。不過(guò),本主題技術(shù)可以不采用這些具體細(xì)節(jié)來(lái)實(shí)施。在某些實(shí)例中,構(gòu)件和組件以框圖形式顯示以避免掩蓋本主題技術(shù)的構(gòu)思。為了便于理解相同的組件采用同樣的元件數(shù)字來(lái)標(biāo)記。
[0011]閃存被組織成閃存單元的塊。每塊包括多個(gè)可以含有成千上萬(wàn)個(gè)比特的頁(yè)。數(shù)據(jù)以頁(yè)為單位寫(xiě)入閃存以及從閃存中讀出。不過(guò),閃存必須以塊為單位被擦除。數(shù)據(jù)可以被寫(xiě)到順序地跨閃存器件的閃存頁(yè)??梢越?jīng)由獨(dú)立信道在不同閃存器件上寫(xiě)順序頁(yè),這會(huì)使得通過(guò)經(jīng)由獨(dú)立信道向每個(gè)各自的閃存器件發(fā)送讀取命令來(lái)并行地讀取該順序頁(yè)。采用這種方式,可以快速實(shí)現(xiàn)從閃存中的數(shù)據(jù)檢索。
[0012]有些閃存器件的制造者可以將閃存頁(yè)配置成將閃存頁(yè)的尺寸固定在512字節(jié)大多個(gè)用于ECC開(kāi)銷(xiāo)的額外空間的倍數(shù)。不過(guò),在企業(yè)(enterprise) SSD中,將要存儲(chǔ)在SSD上的主機(jī)數(shù)據(jù)單元(或扇區(qū))可以不與閃存頁(yè)對(duì)齊(align)。例如,企業(yè)主機(jī)數(shù)據(jù)單元可以大于512字節(jié),諸如528字節(jié)或536字節(jié),這會(huì)降低用于ECC奇偶校驗(yàn)位的空間量。此外,指定的ECC格式可能不足以達(dá)到具有所需的不可校正比特錯(cuò)誤率的編程/擦除循環(huán)的理想的數(shù)量,因?yàn)閬?lái)自閃存的原始比特錯(cuò)誤率會(huì)隨著其磨損(wears out)而增加。
[0013]當(dāng)在被配置用于512字節(jié)的主機(jī)數(shù)據(jù)單元的SSD中寫(xiě)入大于512字節(jié)的主機(jī)數(shù)據(jù)單元時(shí),該SSD可能尚未填滿(mǎn)閃存的整頁(yè)而停止,因?yàn)槲磩澐值拇a字將不會(huì)填充該頁(yè),或者跨兩頁(yè)拆分某些代碼字。前者會(huì)很昂貴,因?yàn)樾枰嗟拈W存來(lái)存儲(chǔ)相同數(shù)量的主機(jī)數(shù)據(jù)。后者可能需要讀取兩頁(yè)來(lái)檢索用于單一主機(jī)數(shù)據(jù)單元的代碼字,這在等待檢索兩頁(yè)的同時(shí)占用(tie up) SSD中的資源.
[0014]ECC解碼直到整個(gè)代碼字已經(jīng)從閃存中檢索到為止才開(kāi)始。不過(guò),為了使得閃存中的存儲(chǔ)空間的利用率最大化,代碼字可以被拆分跨在兩個(gè)閃存頁(yè)上。例如,如果閃存頁(yè)的尺寸為16kB并且每個(gè)代碼字的尺寸為4kB加ECC奇偶校驗(yàn)位,則三個(gè)完整的代碼字就可以寫(xiě)入該閃存頁(yè),但是第四個(gè)完整的代碼字可能不適于該閃存頁(yè),因?yàn)槊總€(gè)代碼字的ECC奇偶校驗(yàn)位要占用空間。與將閃存頁(yè)上的剩余的空間空出來(lái)不同,下一個(gè)代碼字可以被拆分到跨兩個(gè)閃存頁(yè)。在該實(shí)例中,4kB代碼字的3kB可以被寫(xiě)入該閃存頁(yè)而4kB代碼字的剩余l(xiāng)kB可以被寫(xiě)入另一個(gè)閃存頁(yè)。
[0015]不過(guò),如果代碼字被拆分跨兩個(gè)閃存頁(yè),則解碼器必須等待兩個(gè)頁(yè)被讀取,這會(huì)需要將第一接收部分保存在緩存器中直到接收到第二部分為止。對(duì)于諸如低密度奇偶校驗(yàn)(LDPC)的更高級(jí)ECC系統(tǒng)而言,后果會(huì)更嚴(yán)重,因?yàn)閮身?yè)的錯(cuò)誤特性可能需要不同的處理。因此,對(duì)代碼字來(lái)說(shuō)跨頁(yè)邊界是不理想的,并且不將閃存中的存儲(chǔ)空間利用率最大化也是不理想的。
[0016]與將不適于一頁(yè)的代碼字分拆到兩頁(yè)上不同,本主題技術(shù)將主機(jī)數(shù)據(jù)單元?jiǎng)澐殖蓛蓚€(gè)獨(dú)立的代碼字并將這兩個(gè)代碼字寫(xiě)到相鄰的頁(yè)。采用這種方式,每個(gè)代碼字不會(huì)橫跨頁(yè)邊界并且閃存中的存儲(chǔ)空間可被最大化。
[0017]單一 ECC編碼器/解碼器可以被用于使用在最長(zhǎng)和最短代碼字兩者中的相同數(shù)量的奇偶校驗(yàn)位切換代碼字長(zhǎng)度。例如,對(duì)于lkB代碼字可以像4kB代碼字一樣使用相同數(shù)量的奇偶校驗(yàn)位。lkB代碼字可以通過(guò)ECC被過(guò)度保護(hù),由于其可能不需要與通過(guò)ECC提供的奇偶校驗(yàn)位一樣多的奇偶校驗(yàn)位,但是,與通過(guò)具有附加的較小的代碼字而從減少頁(yè)中的無(wú)用位的數(shù)量所獲得的增益相比,過(guò)量的奇偶校驗(yàn)位所占用的任何額外空間都是較小的。而且,如果在最長(zhǎng)代碼字中含有所有主機(jī)數(shù)據(jù)的大部分(bulk),則多個(gè)代碼字尺寸系統(tǒng)的性能將接近于僅僅使用最長(zhǎng)代碼字的固定尺寸系統(tǒng),并且讀取放大率(readamplificat1n)也可能被最小化。
[0018]圖1描繪了根據(jù)本主題技術(shù)的一個(gè)方面的一個(gè)框圖,其圖釋了跨閃存塊的多個(gè)頁(yè)所存儲(chǔ)的代碼字的實(shí)例系列。每個(gè)代碼字lOOa-lOOl、102a-102b、104a_104b、106a_106b包含有主機(jī)數(shù)據(jù)和糾錯(cuò)碼。每個(gè)代碼字的尺寸選自于可能代碼字尺寸列表。例如,在圖1中,代碼字lOOa-lOOl都是第一尺寸,代碼字102a-102b為第二尺寸,代碼字104a_104b為第三尺寸,以及代碼字106a-106b為第四尺寸。
[0019]本主題技術(shù)生成并提供所占空間盡可能與每個(gè)閃存頁(yè)120a_120d—樣多的代碼字 100a-1001、102a-102b、104a-104b、106a-106b。例如在將代碼字 100a-100c 寫(xiě)入頁(yè) 120a之后,適合于頁(yè)120a的剩余空間的最大代碼字尺寸為代碼字102a,其為第二次尺寸。通過(guò)使用代碼字,與將代碼字104a或代碼字106a寫(xiě)入頁(yè)120a中相比,代碼字102a的尺寸將盡可能多地使用閃存頁(yè)120a-120d。盡管代碼字100a-100c和102a不會(huì)占用頁(yè)120a的全部,但是實(shí)質(zhì)上占用頁(yè)120a的全部。在有些方面,如果在特定頁(yè)中剩余的空間量小于最小代碼字尺寸,那么該頁(yè)的全部實(shí)質(zhì)上被占用。
[0020]圖2描繪了根據(jù)本主題技術(shù)的框圖,其圖釋了固態(tài)器件的被配置為存儲(chǔ)從主機(jī)系統(tǒng)接收的數(shù)據(jù)的組件。數(shù)據(jù)存儲(chǔ)系統(tǒng)200包括:處理器201 (例如,數(shù)據(jù)存儲(chǔ)或SSD控制器,微處理器等)、一個(gè)或多個(gè)存儲(chǔ)器件202(例如,閃存器件或其它類(lèi)型的存儲(chǔ)器件,諸如隨機(jī)存取存儲(chǔ)器、光學(xué)