專利名稱::固態(tài)硬盤磁盤陣列映射的方法及其固態(tài)硬盤的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及固態(tài)硬盤存儲
技術(shù)領(lǐng)域:
,尤其涉及一種固態(tài)硬盤磁盤陣列映射的方法及其固態(tài)硬盤。
背景技術(shù):
:固態(tài)硬盤(SolidStateDisk、IDEFLASHDISK)用固態(tài)電子存儲芯片陣列而制成的硬盤,由控制單元和存儲單元(FLASH芯片)組成。固態(tài)硬盤的接口規(guī)范和定義、功能及使用方法上與普通硬盤的完全相同,在產(chǎn)品外形和尺寸上也完全與普通硬盤一致。廣泛應(yīng)用于軍事、車載、工控、視頻監(jiān)控、網(wǎng)絡(luò)監(jiān)控、網(wǎng)絡(luò)終端、電力、醫(yī)療、航空等、導(dǎo)航設(shè)備等領(lǐng)域。參見圖1,在一個中國申請?zhí)枮?00710036050.5,發(fā)明名稱為“基于RAID技術(shù)的固態(tài)硬盤存儲卡”的發(fā)明專利中,通過PCI(PeripheralComponentInterconnect,外設(shè)組件互連標(biāo)準(zhǔn))、PCIE(PCI-Express,最新的總線和接口標(biāo)準(zhǔn))>PCI-X(PeripheralComponentsInterconnect,并連的PCI總線)到SATA(SerialAdvancedTechnologyAttachment,串行高級技術(shù)附件)的轉(zhuǎn)接卡RAID(RedundantArraysofInexpensiveDisks,磁盤陣列)控制器,提高了系統(tǒng)的容量/讀寫速度和l/0(input/output,輸入輸出接口)處理能力。該裝置需要有接口規(guī)范轉(zhuǎn)接裝置的存在,使得多個SSD之間形成RAID的保護(hù)裝置。但是,對于應(yīng)用量較大的單個固態(tài)硬盤的應(yīng)用場景下,該方案則無法實(shí)施。參見圖2圖3,在一個中國申請?zhí)枮?01010285233.2,發(fā)明名稱為在固態(tài)存儲器中實(shí)現(xiàn)RAID”,介紹了在固態(tài)存儲系統(tǒng)中實(shí)現(xiàn)數(shù)據(jù)存儲的系統(tǒng)和技術(shù),著重介紹了一種RAID裝置的組成部分尤其是數(shù)據(jù)糾錯保護(hù)策略,對于映射策略以及RAIDMeta(RedundantArraysofInexpensiveDisksMeta-information,磁盤陣列兀素可提供有關(guān)頁面的兀信息),數(shù)據(jù)的維護(hù)未提出有效的解決方案。固態(tài)硬盤中的映射策略是整個系統(tǒng)的核心部分,引入RAID支持后,采用何種映射以及RAIDMeta數(shù)據(jù)管理策略對于產(chǎn)品的內(nèi)存開銷、寫放大、設(shè)計復(fù)雜度等方面影響甚大。如圖2所示,LA_X為主機(jī)依次寫入數(shù)據(jù)塊的邏輯地址,固件中對應(yīng)分配有PA_X_Y(x為獨(dú)立可操作的NAND設(shè)備號,Y為NAND設(shè)備內(nèi)的最小編程單位全局頁地址)物理地址,則系統(tǒng)中需要維護(hù)如下兩個表邏輯地址到Stripe(條帶)的關(guān)聯(lián)和Stripe到物理地址組的關(guān)聯(lián)。在此情形下,對于落在同一個Stripe內(nèi)的LA地址沒有做任何約束,當(dāng)一個現(xiàn)有條帶內(nèi)的個別數(shù)據(jù)(如LA_0)被改寫后,必須占用新的條帶StripeM(其內(nèi)其他三個數(shù)據(jù)塊發(fā)生了變化)。如此,相關(guān)映射表的維護(hù)代價相當(dāng)大。另外一方面,當(dāng)LA_0被復(fù)寫后,先前舊的LA_0中的數(shù)據(jù)可能被垃圾回收掉,乃至物理上被擦除。當(dāng)LA_2001數(shù)據(jù)出錯時,因?yàn)榇藯l帶內(nèi)的ΡΑ_0_0的數(shù)據(jù)已經(jīng)被擦除,無法用其余4個物理數(shù)據(jù)來恢復(fù)LA_2001的數(shù)據(jù)。綜上可知,現(xiàn)有的固態(tài)硬盤磁盤陣列映射技術(shù)在實(shí)際使用上,顯然存在不便與缺陷,所以有必要加以改進(jìn)。
發(fā)明內(nèi)容針對上述的缺陷,本發(fā)明的目的在于提供一種固態(tài)硬盤磁盤陣列映射的方法及其固態(tài)硬盤,減少了固態(tài)硬盤對于額外轉(zhuǎn)接接口部件的依賴性,降低了固態(tài)硬盤的制作成本。為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種固態(tài)硬盤磁盤陣列映射的方法,所述方法包括在固態(tài)硬盤的邏輯地址層與物理地址層之間設(shè)置虛擬地址層;將所述邏輯地址層的用戶數(shù)據(jù)塊分別映射到對應(yīng)的所述虛擬地址層上;所述虛擬地址層再將所述用戶數(shù)據(jù)塊分別映射到對應(yīng)的所述物理地址層上。根據(jù)所述的方法,所述邏輯地址層的每四個用戶數(shù)據(jù)和所述虛擬地址層的每四個用戶數(shù)據(jù)和一個校驗(yàn)數(shù)據(jù)組成一個條帶,其中所述虛擬地址層的第一到第四個用戶數(shù)據(jù)分別對應(yīng)于所述邏輯地址層的四個用戶數(shù)據(jù)。根據(jù)所述的方法,所述邏輯地址層的邏輯地址與所述條帶以及與所述虛擬地址層的虛擬地址之間的映射關(guān)系公式為給定的LA地址N,存在N=4*Q+R(O<=R<4);則存在如下的關(guān)系所述LA所在的Stripe為Q;所述LA對應(yīng)的VA地址為5*Q+R;StripeQ內(nèi)LA地址分別為4*Q+04*Q+3;其中,LA表示邏輯地址;Stripe表示條帶;VA表示虛擬地址。根據(jù)所述的方法,所述虛擬地址與物理地址之間維持一個固定深度的映射表g_v2p_table[MAX_VA]。根據(jù)所述的方法,在主機(jī)讀取LA_0數(shù)據(jù)N=4*0+0時,根據(jù)所述g_v2p_table映射表,讀取VA_0所在的物理地址下的用戶數(shù)據(jù);如果數(shù)據(jù)校驗(yàn)正確,則直接返回給主機(jī);如果數(shù)據(jù)校驗(yàn)錯誤,則讀取StripeO內(nèi)其他VA的數(shù)據(jù)VA_1/VA_2/VA_3/VA_4,根據(jù)校驗(yàn)數(shù)據(jù)的產(chǎn)生規(guī)則恢復(fù)VA_0的數(shù)據(jù)。為了實(shí)現(xiàn)本發(fā)明的另一發(fā)明目的,本發(fā)明還提供了一種固態(tài)硬盤,包括邏輯地址層和物理地址層,所述固態(tài)硬盤包括虛擬地址層,設(shè)置于所述固態(tài)硬盤的邏輯地址層與物理地址層之間;所述邏輯地址層的用戶數(shù)據(jù)塊分別映射到對應(yīng)的所述虛擬地址層上;所述虛擬地址層再將所述用戶數(shù)據(jù)塊分別映射到對應(yīng)的所述物理地址層上。根據(jù)所述的固態(tài)硬盤,所述邏輯地址層的每四個用戶數(shù)據(jù)和所述虛擬地址層的每四個用戶數(shù)據(jù)和一個校驗(yàn)數(shù)據(jù)組成一個條帶,其中所述虛擬地址層的第一到第四個用戶數(shù)據(jù)分別對應(yīng)于所述邏輯地址層的四個用戶數(shù)據(jù)。根據(jù)所述的固態(tài)硬盤,所述邏輯地址層的邏輯地址與所述條帶以及與所述虛擬地址層的虛擬地址之間的映射關(guān)系公式為給定的LA地址N,存在N=4*Q+R(O<=R<4);則存在如下的關(guān)系所述LA所在的Stripe為Q;所述LA對應(yīng)的VA地址為5*Q+R;StripeQ內(nèi)LA地址分別為4*Q+04*Q+3;其中,LA表示邏輯地址;Stripe表示條帶;VA表示虛擬地址;所述虛擬地址與物理地址之間維持一個固定深度的映射表g_v2p_tabIe[MAX_VA]。根據(jù)所述的固態(tài)硬盤,在主機(jī)讀取LA_0數(shù)據(jù)N=4*0+0時,根據(jù)所述g_v2p_table映射表,讀取VA_0所在的物理地址下的用戶數(shù)據(jù);如果數(shù)據(jù)校驗(yàn)正確,則直接返回給主機(jī);如果數(shù)據(jù)校驗(yàn)錯誤,則讀取StripeO內(nèi)其他VA的數(shù)據(jù)VA_1/VA_2/VA_3/VA_4,根據(jù)校驗(yàn)數(shù)據(jù)的產(chǎn)生規(guī)則恢復(fù)VA_0的數(shù)據(jù)。根據(jù)所述的固態(tài)硬盤,所述固態(tài)硬盤包括磁盤陣列管理模塊,用于將建立所述虛擬地址層;并將所述邏輯地址層的用戶數(shù)據(jù)塊分別映射到對應(yīng)的所述虛擬地址層上;再將所述虛擬地址層的用戶數(shù)據(jù)塊分別映射到對應(yīng)的所述物理地址層上;和/或映射管理模塊,用于將建立所述虛擬地址層;并將所述邏輯地址層的用戶數(shù)據(jù)塊分別映射到對應(yīng)的所述虛擬地址層上;再將所述虛擬地址層的用戶數(shù)據(jù)塊分別映射到對應(yīng)的所述物理地址層上。本發(fā)明通過在固態(tài)硬盤的邏輯地址層與物理地址層之間設(shè)置虛擬地址層;將所述邏輯地址層的用戶數(shù)據(jù)塊分別映射到對應(yīng)的所述虛擬地址層上;所述虛擬地址層再將所述用戶數(shù)據(jù)塊分別映射到對應(yīng)的所述物理地址層上。由于在固態(tài)硬盤內(nèi)部所使用的邏輯到物理地址映射的基礎(chǔ)上引入了虛擬地址層,提供了固態(tài)硬盤的內(nèi)建RAID支持,無須引入額外的接口規(guī)范或者主機(jī)端的參與,并且在引入虛擬地址層后,有效降低了RAIDMeta數(shù)據(jù)管理/內(nèi)存需求等方面的開銷,使得內(nèi)建RAID功能的固態(tài)硬盤產(chǎn)品化成本降低。圖I是現(xiàn)有技術(shù)中的固態(tài)硬盤與PC的連接示意圖;圖2是現(xiàn)有技術(shù)中的邏輯地址到物理地址的映射示意圖;圖3是現(xiàn)有技術(shù)中的邏輯地址到物理地址的映射示意圖;圖4是本發(fā)明第一實(shí)施例提供的固態(tài)硬盤的結(jié)構(gòu)示意圖;圖5是本發(fā)明一個實(shí)施例提供的固態(tài)硬盤的結(jié)構(gòu)示意圖;圖6是本發(fā)明一個實(shí)施例提供的條帶的結(jié)構(gòu)示意圖;圖7是本發(fā)明的一個實(shí)施例提供的邏輯地址-虛擬地址-物理地址的間接映射的示意圖;圖8是本發(fā)明一個實(shí)施例提供主機(jī)復(fù)寫邏輯地址的示意圖;圖9是本發(fā)明一個實(shí)施例提供的固態(tài)硬盤磁盤陣列映射的方法流程圖。具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。參見圖4,在本發(fā)明的第一實(shí)施例中提供了一種固態(tài)硬盤100,包括邏輯地址層10和物理地址層20,固態(tài)硬盤100包括虛擬地址層30,設(shè)置于固態(tài)硬盤100的邏輯地址層10與物理地址層20之間;邏輯地址層10的用戶數(shù)據(jù)塊分別映射到對應(yīng)的虛擬地址層30上;虛擬地址層30再將所述用戶數(shù)據(jù)塊分別映射到對應(yīng)的物理地址層20上。參見圖5,在本發(fā)明的一個實(shí)施例中,固態(tài)硬盤100包括磁盤陣列管理模塊40,用于將建立虛擬地址層30;并將邏輯地址層10的用戶數(shù)據(jù)塊分別映射到對應(yīng)的虛擬地址層30上;再將虛擬地址層30的用戶數(shù)據(jù)塊分別映射到對應(yīng)的物理地址層20上;和/或映射管理模塊50,用于將建立虛擬地址層30;并將邏輯地址層10的用戶數(shù)據(jù)塊分別映射到對應(yīng)的虛擬地址層30上;再將所述虛擬地址層30的用戶數(shù)據(jù)塊分別映射到對應(yīng)的物理地址層20上。在該實(shí)施例中,固態(tài)硬盤100采用內(nèi)建RAID的方式,減少對于額外轉(zhuǎn)接接口部件的依賴性,降低了產(chǎn)品成本開銷;適用于單個或者多個固態(tài)硬盤100等各種應(yīng)用場景。并且通過虛擬地址層30對數(shù)據(jù)的映射的轉(zhuǎn)換,保證了用戶數(shù)據(jù)的可恢復(fù)性。在本發(fā)明的第二實(shí)施例中,邏輯地址層10的每四個用戶數(shù)據(jù)和虛擬地址層30的每四個用戶數(shù)據(jù)和一個校驗(yàn)數(shù)據(jù)組成一個條帶,其中虛擬地址層30的第一到第四個用戶數(shù)據(jù)分別對應(yīng)于邏輯地址層10的四個用戶數(shù)據(jù)。在該實(shí)施例中,提出了基于虛擬地址的RAID映射/管理策略,在維持對用戶尋址方式不變的前提下,可以不需要額外內(nèi)存開銷即可實(shí)現(xiàn)RAID條帶的管理。在本發(fā)明的第三實(shí)施例中,邏輯地址層10的邏輯地址與所述條帶以及與虛擬地址層30的虛擬地址之間的映射關(guān)系公式為給定的LA地址N,存在N=4*Q+R(O<=R<4);則存在如下的關(guān)系所述LA所在的Stripe為Q;所述LA對應(yīng)的VA地址為5*Q+R;StripeQ內(nèi)LA地址分別為4*Q+04*Q+3;其中,LA表示邏輯地址;Stripe表示條帶;VA表示虛擬地址。另外,所述虛擬地址與物理地址之間維持一個固定深度的映射表g_v2p_table[MAX_VA]。在該實(shí)施例中,如圖4所示,主機(jī)訪問操作如下主機(jī)PC端基于邏輯地址來訪問固態(tài)硬盤100,訪問范圍可以是LA_0LA_MAX。經(jīng)過固態(tài)硬盤100內(nèi)部映射管理模塊50后,被轉(zhuǎn)化成虛擬地址,進(jìn)一步地被轉(zhuǎn)換成對應(yīng)的PA(物理地址)該物理地址是可以在固態(tài)硬盤100內(nèi)可以直接尋址到NAND陣列進(jìn)行操作的地址。Stripe(條帶):是指RAID中具有數(shù)據(jù)容錯/恢復(fù)功能的數(shù)據(jù)塊組。如每四個邏輯地址數(shù)據(jù)塊產(chǎn)生一個校驗(yàn)數(shù)據(jù)塊,則對于主機(jī)訪問范圍LA_0LA_MAX,可以分為若干個組,每個組屬于一個Stripe。例如StripeO內(nèi)包含LA_0,LA_1,LA_2,LA_3邏輯地址的用戶數(shù)據(jù)塊,分別映射到VA_0,VA_1,VA_2,VA_3(VA_4為對應(yīng)的校驗(yàn)數(shù)據(jù)塊的虛擬地址);StripeI內(nèi)包含LA_4,LA_5,LA_6,LA_7邏輯地址的用戶數(shù)據(jù)塊,分別映射到VA_5,VA_6,VA_7,VA_8(VA_9為對應(yīng)的校驗(yàn)數(shù)據(jù)塊的虛擬地址)。對以上的Stripe和LA之間的關(guān)系歸納抽象下,則可以表達(dá)為StripeN內(nèi)包含LA_4*N,LA_4*N+1,LA_4*N+2,LA_4*N+3邏輯地址的用戶數(shù)據(jù)塊,對應(yīng)虛擬地址為VA_5*N,VA_5*N+1,VA_5*N+2,VA_5*N+3(VA_5*N+4為該Stripe內(nèi)的校驗(yàn)數(shù)據(jù)塊的虛擬地址)。在本發(fā)明的一個實(shí)施例中,映射表如圖6所示,在LA與PA之間引入了VA層次,存在如下的關(guān)系StripeN的LA組成如下用戶數(shù)據(jù)LA_4*N,LA_4*N+1,LA_4*N+2,LA_4*N+3;校驗(yàn)數(shù)據(jù)不占用有效LA地址,對主機(jī)隱藏。StripeN的VA組成如下用戶數(shù)據(jù)VA_5*N,VA_5*N+1,VA_5*N+2,VA_5*N+3,校驗(yàn)數(shù)據(jù)VA_5*N+4。LA與Stripe以及VA之間的映射可以由公式推導(dǎo)出來給定LA地址N,存在N=4*Q+R(O<=R<4);則存在如下的關(guān)系該LA所在的Stripe為Q;該LA對應(yīng)的VA地址為5*Q+R;StripeQ內(nèi)LA地址分別為4*Q+04*Q+3;VA與PA之間維持一個固定深度的映射表深度為總的頁數(shù)量。因此全局地維護(hù)一個g_v2p_table[MAX_VA],這也是基于頁映射常用的表項(xiàng),其具體的存儲策略可以視內(nèi)存大小全部/部分地加載在內(nèi)存中。三個地址描述LA/VA/PA,LA到VA的映射如前所描述;而要真正對NAND進(jìn)行讀寫操作,需要將VA地址轉(zhuǎn)換成PA地址。g_v2p_table正是這樣的目的。其索引為VA,值為PA,MAX_VA為最大的VA數(shù)目。從每4個LA對應(yīng)4個VA以及一個校驗(yàn)數(shù)據(jù)塊VA(共5個VA),所以存在如下關(guān)系MAX_VA=MAX_LA*5/4。在主機(jī)讀取LA_0數(shù)據(jù)N=4*0+0時,根據(jù)所述g_v2p_table映射表,讀取VA_0所在的物理地址下的用戶數(shù)據(jù);如果數(shù)據(jù)校驗(yàn)正確,則直接返回給主機(jī);如果數(shù)據(jù)校驗(yàn)錯誤,則讀取StripeO內(nèi)其他VA的數(shù)據(jù)VA_1/VA_2/VA_3/VA_4,根據(jù)校驗(yàn)數(shù)據(jù)的產(chǎn)生規(guī)則恢復(fù)VA_0的數(shù)據(jù)。參見圖7,在本發(fā)明的另一個實(shí)施例中,主機(jī)讀取LA_0數(shù)據(jù)N=4*0+0根據(jù)g_v2p_table映射表,讀取VA_0所在的PA數(shù)據(jù)。如果數(shù)據(jù)校驗(yàn)正確,則直接返回給主機(jī)。如果數(shù)據(jù)校驗(yàn)錯誤,則讀取StripeO內(nèi)其他VA的數(shù)據(jù)VA_1/VA_2/VA_3/VA_4,根據(jù)校驗(yàn)塊的產(chǎn)生規(guī)則來恢復(fù)VA_0的數(shù)據(jù)。參見圖8,主機(jī)復(fù)寫LA_2數(shù)據(jù)N=4*0+2。當(dāng)主機(jī)復(fù)寫了LA_2的數(shù)據(jù)時,為保證StripeO的校驗(yàn)數(shù)據(jù)的有效性,需要按照如下的規(guī)則進(jìn)行寫操作將新的數(shù)據(jù)寫入到PA_2_101地址,更改g_v2p_table[VA_2]=PA_2_101。根據(jù)舊的LA_2(VA_2)、舊的VA_4以及新的LA_2’的數(shù)據(jù)產(chǎn)生新的校驗(yàn)數(shù)據(jù)塊,寫入到PA_4_124中,更改g_v2p_table[VA_4]=PA_4_124。在此情形下,StripeO的組成仍然維持VA_0VA_4,其實(shí)際的物理地址可以根據(jù)g_v2p_table查詢獲得。即使舊的VA_2所在的PA_2_100物理頁被擦除,StripeO內(nèi)的各個用戶數(shù)據(jù)塊的校驗(yàn)數(shù)據(jù)塊仍然有效,因?yàn)樵揝tripeO內(nèi)的各個數(shù)據(jù)塊都是最新的用戶有效數(shù)據(jù),不會被垃圾回收掉,且其校驗(yàn)數(shù)據(jù)塊也是根據(jù)此組用戶數(shù)據(jù)計算產(chǎn)生。因此,可以根據(jù)舊的VA_2,舊的VA_4以及新寫入的LA_2'(VA_2)數(shù)據(jù),生成新的校驗(yàn)數(shù)據(jù),寫入VA_4中。參見圖9,在本發(fā)明的一個實(shí)施例中,提供了一種固態(tài)硬盤100內(nèi)建RAID映射方法,在固態(tài)硬盤100內(nèi)部所使用的邏輯到物理地址映射的基礎(chǔ)上引入了虛擬地址層30,提供了一種固態(tài)硬盤100磁盤陣列映射的方法,所述方法包括步驟S901中,磁盤陣列管理模塊40/映射管理模塊50在固態(tài)硬盤100的邏輯地址層10與物理地址層20之間設(shè)置虛擬地址層30;步驟S902中,磁盤陣列管理模塊40/映射管理模塊50將邏輯地址層10的用戶數(shù)據(jù)塊分別映射到對應(yīng)的虛擬地址層30上;步驟S903中,磁盤陣列管理模塊40/映射管理模塊50再將虛擬地址層30的用戶數(shù)據(jù)塊分別映射到對應(yīng)的物理地址層20上。在該實(shí)施例中,固態(tài)硬盤100的內(nèi)建RAID支持,無須引入額外的接口規(guī)范或者主機(jī)端的參與。引入虛擬地址層30后,有效降低了RAIDMeta數(shù)據(jù)管理/內(nèi)存需求等方面的開銷,使得內(nèi)建RAID功能的固態(tài)硬盤100產(chǎn)品化成本降低。在本發(fā)明的一個實(shí)施例中,邏輯地址層10的每四個用戶數(shù)據(jù)和虛擬地址層30的每四個用戶數(shù)據(jù)和一個校驗(yàn)數(shù)據(jù)組成一個條帶,其中虛擬地址層30的第一到第四個用戶數(shù)據(jù)分別對應(yīng)于邏輯地址層10的四個用戶數(shù)據(jù)。所述校驗(yàn)數(shù)據(jù)的作用是當(dāng)StripeN內(nèi)任意一個用戶數(shù)據(jù)丟失的時候,可以由條帶內(nèi)其他數(shù)據(jù)以及這個校驗(yàn)數(shù)據(jù)恢復(fù)出來。主機(jī)訪問是基于邏輯地址LA的,任意一個StripeN內(nèi)的VA_5*N+4沒有映射到任何邏輯地址,所以主機(jī)是沒有辦法訪問到該數(shù)據(jù)的。并且主機(jī)能夠訪問到的LA,有且都有一個唯一的VA地址與之對應(yīng)(VA_5*N,VA_5*N+1,VA_5*N+2,VA_5*N+3中某一個)。邏輯地址層10的邏輯地址與所述條帶以及與虛擬地址層30的虛擬地址之間的映射關(guān)系公式為給定的LA(邏輯地址)地址N,存在N=4*Q+R(0<=R<4);則存在如下的關(guān)系所述LA所在的Stripe為Q;所述LA對應(yīng)的VA地址為5*Q+RStripeQ內(nèi)LA地址分別為4*Q+04*Q+3;N=4*Q+R(0<=R<4)實(shí)際是對于一個邏輯地址LA_N,對于N,Q為N除以4后整數(shù)值,R為對應(yīng)的余數(shù)。因?yàn)閺那懊婵芍?個連續(xù)的邏輯地址的用戶數(shù)據(jù)組成了一個Stripe.當(dāng)采用N=4*Q+R表示后,我們可以方便知道其所在的Stripe為Q,偏移為R。其中,LA表示邏輯地址;Stripe表示條帶;VA表示虛擬地址。所述虛擬地址與物理地址之間維持一個固定深度的映射表g_V2P_tabIe[MAX_VA]。在主機(jī)讀取LA_0數(shù)據(jù)N=4*0+0時,根據(jù)所述g_v2p_table映射表,讀取VA_0所在的物理地址下的用戶數(shù)據(jù);如果數(shù)據(jù)校驗(yàn)正確,則直接返回給主機(jī);如果數(shù)據(jù)校驗(yàn)錯誤,則讀取StripeO內(nèi)其他VA的數(shù)據(jù)VA_1/VA_2/VA_3/VA_4,根據(jù)校驗(yàn)數(shù)據(jù)的產(chǎn)生規(guī)則恢復(fù)VA_0的數(shù)據(jù)。綜上所述,本發(fā)明通過在固態(tài)硬盤的邏輯地址層與物理地址層之間設(shè)置虛擬地址層;將所述邏輯地址層的用戶數(shù)據(jù)塊分別映射到對應(yīng)的所述虛擬地址層上;所述虛擬地址層再將所述用戶數(shù)據(jù)塊分別映射到對應(yīng)的所述物理地址層上。由于在固態(tài)硬盤內(nèi)部所使用的邏輯到物理地址映射的基礎(chǔ)上引入了虛擬地址層,提供了固態(tài)硬盤的內(nèi)建RAID支持,無須引入額外的接口規(guī)范或者主機(jī)端的參與,并且在引入虛擬地址層后,有效降低了RAIDMeta數(shù)據(jù)管理/內(nèi)存需求等方面的開銷,使得內(nèi)建RAID功能的固態(tài)硬盤產(chǎn)品化成本降低。當(dāng)然,本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。權(quán)利要求1.一種固態(tài)硬盤磁盤陣列映射的方法,其特征在于,所述方法包括在固態(tài)硬盤的邏輯地址層與物理地址層之間設(shè)置虛擬地址層;將所述邏輯地址層的用戶數(shù)據(jù)塊分別映射到對應(yīng)的所述虛擬地址層上;所述虛擬地址層再將所述用戶數(shù)據(jù)塊分別映射到對應(yīng)的所述物理地址層上。2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述邏輯地址層的每四個用戶數(shù)據(jù)和所述虛擬地址層的每四個用戶數(shù)據(jù)和一個校驗(yàn)數(shù)據(jù)組成一個條帶,其中所述虛擬地址層的第一到第四個用戶數(shù)據(jù)分別對應(yīng)于所述邏輯地址層的四個用戶數(shù)據(jù)。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述邏輯地址層的邏輯地址與所述條帶以及與所述虛擬地址層的虛擬地址之間的映射關(guān)系公式為給定的LA地址N,存在N=4*Q+R(O<=R<4);則存在如下的關(guān)系所述LA所在的Stripe為Q;所述LA對應(yīng)的VA地址為5*Q+R;StripeQ內(nèi)LA地址分別為:4*Q+04*Q+3;其中,LA表示邏輯地址;Stripe表示條帶;VA表示虛擬地址。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述虛擬地址與物理地址之間維持一個固定深度的映射表g_v2p_table[MAX_VA]。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在主機(jī)讀取LA_0數(shù)據(jù)N=4*0+0時,根據(jù)所述g_v2p_table映射表,讀取VA_0所在的物理地址下的用戶數(shù)據(jù);如果數(shù)據(jù)校驗(yàn)正確,則直接返回給主機(jī);如果數(shù)據(jù)校驗(yàn)錯誤,則讀取StripeO內(nèi)其他VA的數(shù)據(jù)VA_1/VA_2/VA_3/VA_4,根據(jù)校驗(yàn)數(shù)據(jù)的產(chǎn)生規(guī)則恢復(fù)VA_0的數(shù)據(jù)。6.一種固態(tài)硬盤,包括邏輯地址層和物理地址層,其特征在于,所述固態(tài)硬盤包括虛擬地址層,設(shè)置于所述固態(tài)硬盤的邏輯地址層與物理地址層之間;所述邏輯地址層的用戶數(shù)據(jù)塊分別映射到對應(yīng)的所述虛擬地址層上;所述虛擬地址層再將所述用戶數(shù)據(jù)塊分別映射到對應(yīng)的所述物理地址層上。7.根據(jù)權(quán)利要求6所述的固態(tài)硬盤,其特征在于,所述邏輯地址層的每四個用戶數(shù)據(jù)和所述虛擬地址層的每四個用戶數(shù)據(jù)和一個校驗(yàn)數(shù)據(jù)組成一個條帶,其中所述虛擬地址層的第一到第四個用戶數(shù)據(jù)分別對應(yīng)于所述邏輯地址層的四個用戶數(shù)據(jù)。8.根據(jù)權(quán)利要求7所述的固態(tài)硬盤,其特征在于,所述邏輯地址層的邏輯地址與所述條帶以及與所述虛擬地址層的虛擬地址之間的映射關(guān)系公式為給定的LA地址N,存在N=4*Q+R(O<=R<4);則存在如下的關(guān)系所述LA所在的Stripe為Q;所述LA對應(yīng)的VA地址為5*Q+R;StripeQ內(nèi)LA地址分別為:4*Q+04*Q+3;其中,LA表示邏輯地址;Stripe表示條帶;VA表示虛擬地址;所述虛擬地址與物理地址之間維持一個固定深度的映射表g_v2p_table[MAX_VA]。9.根據(jù)權(quán)利要求8所述的固態(tài)硬盤,其特征在于,在主機(jī)讀取LA_0數(shù)據(jù)N=4*0+0時,根據(jù)所述g_v2p_table映射表,讀取VA_0所在的物理地址下的用戶數(shù)據(jù);如果數(shù)據(jù)校驗(yàn)正確,則直接返回給主機(jī);如果數(shù)據(jù)校驗(yàn)錯誤,則讀取StripeO內(nèi)其他VA的數(shù)據(jù)VA_1/VA_2/VA_3/VA_4,根據(jù)校驗(yàn)數(shù)據(jù)的產(chǎn)生規(guī)則恢復(fù)VA_0的數(shù)據(jù)。10.根據(jù)權(quán)利要求69任一項(xiàng)所述的固態(tài)硬盤,其特征在于,所述固態(tài)硬盤包括磁盤陣列管理模塊,用于將建立所述虛擬地址層;并將所述邏輯地址層的用戶數(shù)據(jù)塊分別映射到對應(yīng)的所述虛擬地址層上;再將所述虛擬地址層的用戶數(shù)據(jù)塊分別映射到對應(yīng)的所述物理地址層上;和/或映射管理模塊,用于將建立所述虛擬地址層;并將所述邏輯地址層的用戶數(shù)據(jù)塊分別映射到對應(yīng)的所述虛擬地址層上;再將所述虛擬地址層的用戶數(shù)據(jù)塊分別映射到對應(yīng)的所述物理地址層上。全文摘要本發(fā)明適用于固態(tài)存儲
技術(shù)領(lǐng)域:
,提供了一種固態(tài)硬盤磁盤陣列映射的方法及其固態(tài)硬盤,所述方法包括在固態(tài)硬盤的邏輯地址層與物理地址層之間設(shè)置虛擬地址層;將所述邏輯地址層的用戶數(shù)據(jù)塊分別映射到對應(yīng)的所述虛擬地址層上;所述虛擬地址層再將所述用戶數(shù)據(jù)塊分別映射到對應(yīng)的所述物理地址層上。借此,本發(fā)明減少了固態(tài)硬盤對于額外轉(zhuǎn)接接口部件的依賴性,降低了固態(tài)硬盤的制作成本。文檔編號G06F11/10GK102830942SQ20121021758公開日2012年12月19日申請日期2012年6月28日優(yōu)先權(quán)日2012年6月28日發(fā)明者王猛,徐偉華申請人:記憶科技(深圳)有限公司