本發(fā)明涉及固態(tài)存儲
技術領域:
,具體是涉及一種縮小固態(tài)硬盤內(nèi)rblock容量的方法及其系統(tǒng)。
背景技術:
:現(xiàn)有固態(tài)硬盤ssdftl(flashtranslationlayer,nandflash管理算法)的存儲塊block的管理方案會導致一個邏輯存儲單元rblock的容量越來越大,以基于micronl95b的2tbssd為例,一共由128個閃存裸片die組成,每個rblock的容量達到了256個物理planeblock,2gb的物理容量。那就意味著ftl只有在當這2gb的存儲空間內(nèi)沒有任何有效數(shù)據(jù)的時候,才能將該rblock回收和重新使用,由此帶來的問題是block回收的速度變得很慢,沒有小容量的rblock回收效率高。對于mlc/tlcflash來說,由于其一個最小存儲單元(cell)可以存放2~3個bit的數(shù)據(jù),這個cell沒有完全寫入即其2個/3個bit都被編程之前,這個cell一直處于不安全狀態(tài)。一旦發(fā)生非正常掉電,之前未完全寫入的cell(部分bit被編程)發(fā)生數(shù)據(jù)丟失可能性非常高。那么如果組成一個rblock的die數(shù)目過多,某一時刻存在未完全寫入的cell就越多,當發(fā)生非正常掉電時丟失的數(shù)據(jù)相應的就會越多。隨著nandflash技術的發(fā)展,單個block的容量也越來越大,尤其是3dtlcflash技術的出現(xiàn),ssdftl的block的管理方式,數(shù)據(jù)寫入的順序也從單個物理page的寫入變成了多個物理page同時寫入。原有的flash讀寫操作的并發(fā)方式也需要跟著變化,這些都需要相應的block管理方案來支持??傮w趨勢來看,邏輯存儲單元即rblock的容量越小,對降低3dtlcftl設計的復雜度越有幫助。技術實現(xiàn)要素:本發(fā)明的目的是為了克服上述
背景技術:
的不足,提供一種縮小固態(tài)硬盤內(nèi)rblock容量的方法及其系統(tǒng)。本發(fā)明解決了rblock容量過大給固態(tài)硬盤的性能和數(shù)據(jù)安全帶來的負面影響,通過縮小rblock的容量提高固態(tài)硬盤整體性能和數(shù)據(jù)安全。本發(fā)明提供一種縮小固態(tài)硬盤內(nèi)rblock容量的方法,包括如下步驟:a、將組成一個邏輯存儲單元rblock的閃存裸片die的數(shù)目n減少到原來的1/a,保留的die的數(shù)目變?yōu)閚/a個,rblock中die的數(shù)目變?yōu)閚/a個,其中a為正整數(shù),n為正整數(shù);b、將從rblock中拿掉的die與保留的die對應合并組成虛擬閃存裸片vdie,vdie的數(shù)目為n/a個,vdie的容量為物理die的a倍,vdie內(nèi)部rblock的數(shù)目m增加到a*m個,m為正整數(shù);c、將vdie內(nèi)存儲塊block重新進行編號,使得固態(tài)硬盤內(nèi)的rblock的編號從0~m-1變?yōu)?~a*m-1。在上述技術方案的基礎上,步驟a中,所述將組成一個邏輯存儲單元rblock的閃存裸片die的數(shù)目n減少到原來的1/a的具體過程為:將組成一個邏輯存儲單元rblock的閃存裸片die的數(shù)目n,按die的物理編號依次劃分為a組,保留在上述技術方案的基礎上,步驟b中,所述將從rblock中拿掉的die與保留的die對應合并組成虛擬閃存裸片vdie的具體過程為:將從rblock中拿掉的die,按die的物理編號依次組成a-1組die,并與保留的die的物理編號依次對應合并組成vdie。在上述技術方案的基礎上,步驟c中,所述將vdie內(nèi)存儲塊block重新進行編號的具體過程為:將vdie內(nèi)存儲塊block的編號,以物理die為單位重新進行編號,從保留的die內(nèi)的物理存儲塊planeblock編號開始,后一個物理die的planeblock的編號在前一個物理die的最后一個planeblock編號的基礎上,繼續(xù)順序編號。在上述技術方案的基礎上,步驟a中,a的數(shù)值為2或4。本發(fā)明還提供一種縮小固態(tài)硬盤內(nèi)rblock容量的系統(tǒng),該系統(tǒng)包括die減少模塊、vdie新增模塊和rblock增加模塊;所述die減少模塊用于:將組成一個邏輯存儲單元rblock的閃存裸片die的數(shù)目n減少到原來的1/a,使得保留的die的數(shù)目變?yōu)閚/a個,rblock中die的數(shù)目變?yōu)閚/a個,其中a為正整數(shù),n為正整數(shù);所述vdie新增模塊用于:將從rblock中拿掉的die與保留的die對應合并組成虛擬閃存裸片vdie,使得新增的vdie的數(shù)目為n/a個,vdie的容量為物理die的a倍,vdie內(nèi)部rblock的數(shù)目m增加到a*m個,m為正整數(shù);所述rblock增加模塊用于:將vdie內(nèi)存儲塊block重新進行編號,使得固態(tài)硬盤內(nèi)的rblock的編號從0~m-1變?yōu)?~a*m-1。在上述技術方案的基礎上,所述固態(tài)硬盤通過nand閃存芯片陣列并發(fā)i/o操作的特征,實現(xiàn)高速數(shù)據(jù)傳輸。在上述技術方案的基礎上,所述rblock的容量通過如下公式計算得到:rblock的容量=單個block的容量*單顆die內(nèi)的存儲塊矩陣plane的數(shù)目*die的數(shù)目。與現(xiàn)有技術相比,本發(fā)明的優(yōu)點如下:本發(fā)明通過新增vdie,增加vdie的容量以減小rblock的容量,從而提高固態(tài)硬盤整體性能和數(shù)據(jù)安全。減少die的數(shù)目使得rblock的容量減少,在固態(tài)硬盤滿盤寫入的情況下,rblock回收速度變快,隨機寫入的性能會相應得到提高,命令延遲也會有所降低。而且,當rblock內(nèi)所包含的die數(shù)目減少時,在寫入操作中,未完全寫入的cell相應減少,當發(fā)生非正常掉電時丟失的數(shù)據(jù)量就會相應的減少。同時,本發(fā)明會對簡化3dtlcftl的設計也有所幫助。附圖說明圖1是本發(fā)明實施例縮小固態(tài)硬盤內(nèi)rblock容量的方法的流程圖。圖2是本發(fā)明實施例固態(tài)硬盤內(nèi)的rblock組建系統(tǒng)的結構框圖。圖3為現(xiàn)有的容量為128gb的固態(tài)硬盤的存儲結構示意圖。圖4為現(xiàn)有的容量為2tb的固態(tài)硬盤的存儲結構示意圖。圖5為本發(fā)明實施例a的數(shù)值為2時,容量為2tb的固態(tài)硬盤的存儲結構示意圖。圖6為本發(fā)明實施例a的數(shù)值為4時,容量為2tb的固態(tài)硬盤的存儲結構示意圖。具體實施方式下面結合附圖及具體實施例對本發(fā)明作進一步的詳細描述。參見圖1所示,本發(fā)明實施例提供一種縮小固態(tài)硬盤內(nèi)rblock容量的方法,包括如下步驟:s1、將組成一個邏輯存儲單元rblock的閃存裸片die的數(shù)目n,按die的物理編號依次劃分為a組,保留使die的數(shù)目n減少到原來的1/a,則保留的die的數(shù)目變?yōu)閚/a個,rblock中die的數(shù)目變?yōu)閚/a個,其中,a為正整數(shù),n為正整數(shù);s2、將從rblock中拿掉的die,按die的物理編號依次組成a-1組die,并與保留的die物理編號依次對應合并組成虛擬閃存裸片vdie,vdie的數(shù)目為n/a個,vdie的容量為物理die的a倍,vdie內(nèi)部rblock的數(shù)目m增加到a*m個,m為正整數(shù);s3、將vdie內(nèi)存儲塊block的編號,以物理die為單位重新進行編號,從保留的die內(nèi)的物理存儲塊planeblock編號開始,后一個物理die的planeblock的編號在前一個物理die的最后一個planeblock編號的基礎上,繼續(xù)順序編號,使得固態(tài)硬盤內(nèi)的rblock的編號從0~m-1變?yōu)?~a*m-1。參見圖2所示,本發(fā)明實施例還提供一種縮小固態(tài)硬盤內(nèi)rblock容量的系統(tǒng),該系統(tǒng)包括die減少模塊、vdie新增模塊和rblock增加模塊;所述die減少模塊用于:將組成一個邏輯存儲單元rblock的閃存裸片die的數(shù)目n減少到原來的1/a,使得保留的die的數(shù)目變?yōu)閚/a個,rblock中die的數(shù)目變?yōu)閚/a個,其中a為正整數(shù),n為正整數(shù);所述vdie新增模塊用于:將從rblock中拿掉的die與保留的die對應合并組成虛擬閃存裸片vdie,使得新增的vdie的數(shù)目為n/a個,vdie的容量為物理die的a倍,vdie內(nèi)部rblock的數(shù)目m增加到a*m個,m為正整數(shù);所述rblock增加模塊用于:將vdie內(nèi)存儲塊block重新進行編號,使得固態(tài)硬盤內(nèi)的rblock的編號從0~m-1變?yōu)?~a*m-1。其中,固態(tài)硬盤通過nand閃存芯片陣列并發(fā)i/o操作的特征,實現(xiàn)高速數(shù)據(jù)傳輸。rblock的容量通過如下公式計算得到:rblock的容量=單個block的容量*單顆die內(nèi)的存儲塊矩陣plane的數(shù)目*die的數(shù)目,rblock的容量和die數(shù)目之間呈線性增長關系。虛擬的閃存裸片vdie由一個或多個物理die組成的邏輯die,rblock由若干個die內(nèi)部具有相同的blocknumber的planeblock組成的邏輯存儲單元。參見圖3所示,為現(xiàn)有的容量為128gb的固態(tài)硬盤的存儲結構示意圖;參見圖4所示,為現(xiàn)有的容量為2tb的固態(tài)硬盤的的存儲結構示意圖。在現(xiàn)有的現(xiàn)有固態(tài)硬盤ssdftl設計中,固態(tài)硬盤ssd是由若干個nandflash閃存陣列組成的存儲設備,是一種與傳統(tǒng)硬盤不同的數(shù)據(jù)存儲設備。每個rblock(rowblock,邏輯存儲單元)都是一個每個die里面具有相同planeblocknumber的物理block組成,這個rblock是ssd固件用來分配、回收的基本邏輯存儲單元。隨著固態(tài)硬盤ssd容量的增加,所需要die的個數(shù)也越來越多。其中,存儲塊block由多個page組成的nandflash執(zhí)行擦除操作的基本單元,存儲塊矩陣plane由多個block組成的nandflash,閃存裸片die是nandflash執(zhí)行命令的最小單元,由存儲塊和邏輯電路組成。在現(xiàn)有的nandflash為micronl95b的固態(tài)硬盤ssd,不同容量時die個數(shù)如下表所示:ssd容量128gb256gb512gb1tb2tb4tbdie數(shù)目8163264128256參見圖5所示,在本實施例中,a的數(shù)值為2,固態(tài)硬盤ssd的nandflash為micronl95b,容量為2tb。在每個rblock整合的die數(shù)目減少到現(xiàn)有設計1/2時,rblock的數(shù)目也就相應的變成了原有的2倍。rblock從原有的128個die減少為64個die,原來的die64~die127和相應的die0~die63對應合并組成虛擬閃存裸片vdie,vdie0包括die0和die64,vdie1包括die1和die65,依次類推。在vdie0中,die64的planeblock0被重新編號為1048(1048為邏輯編號,并非flash內(nèi)部的物理block編號)。因此,die64~die127中所有的planeblock0組成了rblock1048,以此類推,整個系統(tǒng)中多出來rblock1048~rblock2095。參見圖6所示,在本實施例中,a的數(shù)值為4,固態(tài)硬盤ssd的nandflash為micronl95b,容量為2tb。在每個rblock整合的die數(shù)目減少到現(xiàn)有設計1/4時,rblock的數(shù)目也就相應的變成了原有的4倍。rblock從原有的128個die減少為32個die,原來的die32~die63、die64~die95、die96~die127和相應的die0~die31對應合并組成虛擬閃存裸片vdie,vdie0包括die0、die32、die64、die96,vdie1包括die1、die33、die65、die97,依次類推。在vdie0中,die32的planeblock0被重新編號為1048(1048為邏輯編號,并非flash內(nèi)部的物理block編號),die64的planeblock0被重新編號為2096,die96的planeblock0被重新編號為3144。因此,die32~die63中所有的planeblock0組成了rblock1048,die64~die95中所有的planeblock0組成了rblock2096,die96~die127中所有的planeblock0組成了rblock3144,以此類推,整個系統(tǒng)中多出來rblock1048~rblock4191。可以想到的是,a的數(shù)值也可以為其他正整數(shù),同時保證die的數(shù)目n/a為整數(shù),比如當die的數(shù)目為9個時,a的取值可為3。在具體設計實現(xiàn)過程中,還需要考慮到ssd系統(tǒng)的i/o帶寬要求,不能盲目的降低rblock的die數(shù)目。以micronl95bnandflash為例,單個die的寫入帶寬為20mb/s左右,基于現(xiàn)有的ftlblock管理設計,flash端的總體最大理論寫入帶寬是2.5gb/s左右(實際產(chǎn)品中出于flash控制、數(shù)據(jù)緩存大小等方面的限制寫入帶寬要比這個理論值低);如果將rblock的die的數(shù)目減半,最大理論寫入帶寬在1.2gb/s左右,這對一個satassd來說這個帶寬已經(jīng)完全滿足寫入帶寬的設計需求了,因為sata接口的主機寫命令的傳輸帶寬在535mb/s左右。即便是消費級和工業(yè)級的nvmessd,1.2gb/s的寫入帶寬也完全能滿足設計需求。本領域的技術人員可以對本發(fā)明實施例進行各種修改和變型,倘若這些修改和變型在本發(fā)明權利要求及其等同技術的范圍之內(nèi),則這些修改和變型也在本發(fā)明的保護范圍之內(nèi)。說明書中未詳細描述的內(nèi)容為本領域技術人員公知的現(xiàn)有技術。當前第1頁12