本發(fā)明涉及固態(tài)硬盤(pán)控制技術(shù),特別涉及一種提高固態(tài)硬盤(pán)順序讀性能的方法。
背景技術(shù):
在NAND flash SSD,數(shù)據(jù)的讀寫(xiě)通過(guò)SSD控制器中通道channel去訪(fǎng)問(wèn)后端的NAND flash,在每個(gè)SSD控制器中都有多個(gè)通道來(lái)保證SSD控制器能夠同時(shí)并發(fā)對(duì)NAND flash進(jìn)行多個(gè)讀寫(xiě)操作,來(lái)提高讀寫(xiě)操作的速度。圖1是主機(jī)Host data連續(xù)寫(xiě)入NAND FLASH的操作示意圖,所以在SSD設(shè)計(jì)中,主機(jī)host的連續(xù)寫(xiě)入的數(shù)據(jù),最終會(huì)連續(xù)的分布在不同的通道Channel下對(duì)應(yīng)的數(shù)據(jù)塊中,這樣在對(duì)該寫(xiě)入數(shù)據(jù)進(jìn)行讀操作時(shí),能夠保證讀操作的數(shù)據(jù)分布在不同的通道下面。圖2是主機(jī)Host data連續(xù)讀出NAND FLASH的操作示意圖,Host可以連續(xù)并發(fā)的從各個(gè)Channel中都出數(shù)據(jù),可以提高連續(xù)讀的性能,需要2次就可以完成讀出。
由于NAND flash的特性,SSD在寫(xiě)滿(mǎn)的情況下,SSD中會(huì)進(jìn)行垃圾回收簡(jiǎn)稱(chēng)GC的操作,該操作會(huì)搬移部分?jǐn)?shù)據(jù)寫(xiě)入到新的位置,在這種情況下,host連續(xù)寫(xiě)入的數(shù)據(jù)會(huì)和GC寫(xiě)入的數(shù)據(jù)混合的寫(xiě)入到NAND flash中。圖3是增加GC時(shí)與host混合寫(xiě)入NAND FLASH的示意圖;GC操作會(huì)打亂host連續(xù)寫(xiě)入數(shù)據(jù)在不同通道上數(shù)據(jù)塊的分布,可能導(dǎo)致host連續(xù)寫(xiě)入的數(shù)據(jù)集中寫(xiě)入某一個(gè)通道下的數(shù)據(jù)塊;圖4是增加GC時(shí)與host混合寫(xiě)入NAND FLASH后存儲(chǔ)的數(shù)據(jù)讀出示意圖,最終會(huì)導(dǎo)致對(duì)該連續(xù)寫(xiě)入數(shù)據(jù)的讀性能不佳,需要4次才可以完成讀出,相比于無(wú)GC操作時(shí)所需時(shí)間明顯增加了很多,沒(méi)有很好的發(fā)揮出順序讀性能的最佳性能。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)以上缺陷,本發(fā)明目的如何消除垃圾回收操作對(duì)寫(xiě)入數(shù)據(jù)的連續(xù)性的破壞。
為了解決以上問(wèn)題本發(fā)明提出了一種提高固態(tài)硬盤(pán)順序讀性能的方法,其特征在于增加用戶(hù)寫(xiě)指令數(shù)據(jù)和固態(tài)硬盤(pán)內(nèi)部垃圾回收數(shù)據(jù)分離操作,在Flash的各個(gè)通道的空閑Block中都分別劃分出N個(gè)Block的存儲(chǔ)區(qū)域作為回收數(shù)據(jù)分區(qū),各個(gè)通道的其它存儲(chǔ)區(qū)域?yàn)橛脩?hù)數(shù)據(jù)分區(qū);用戶(hù)寫(xiě)指令數(shù)據(jù)寫(xiě)入用戶(hù)數(shù)據(jù)分區(qū);固態(tài)硬盤(pán)內(nèi)部垃圾回收數(shù)據(jù)分離出來(lái)寫(xiě)入回收數(shù)據(jù)分區(qū)。
所述的提高固態(tài)硬盤(pán)順序讀性能的方法,其特征在于NN在1到10內(nèi)選擇;當(dāng)某個(gè)通道的回收數(shù)據(jù)分區(qū)寫(xiě)滿(mǎn)數(shù)據(jù)后,自動(dòng)該通道的空閑Block中重現(xiàn)劃分出N個(gè)Block的存儲(chǔ)區(qū)域作為回收數(shù)據(jù)分區(qū)。
本發(fā)明通過(guò)識(shí)別和分離垃圾回收操作的寫(xiě)操作,避免垃圾回收對(duì)用戶(hù)數(shù)據(jù)順序?qū)?,也就說(shuō)順序?qū)懭敫鱾€(gè)通道的破壞,進(jìn)而保證固態(tài)硬盤(pán)順序讀寫(xiě)的性能。
附圖說(shuō)明
圖1是主機(jī)Host data連續(xù)寫(xiě)入NAND FLASH的操作示意圖;
圖2是主機(jī)Host data連續(xù)讀出NAND FLASH的操作示意圖;
圖3是增加GC時(shí)與host混合寫(xiě)入NAND FLASH的示意圖;
圖4是增加GC時(shí)與host混合寫(xiě)入NAND FLASH后存儲(chǔ)的數(shù)據(jù)讀出示意圖;
圖5是GC和用戶(hù)數(shù)據(jù)分離后分別存儲(chǔ)到回收數(shù)據(jù)分區(qū)和用戶(hù)數(shù)據(jù)區(qū)的示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖5是GC和用戶(hù)數(shù)據(jù)分離后分別存儲(chǔ)到回收數(shù)據(jù)分區(qū)和用戶(hù)數(shù)據(jù)區(qū)的示意圖,為這實(shí)現(xiàn)GC和用戶(hù)數(shù)據(jù)分離,增加用戶(hù)寫(xiě)指令數(shù)據(jù)和固態(tài)硬盤(pán)內(nèi)部垃圾回收數(shù)據(jù)分離操作,在Flash的各個(gè)通道的空閑Block中都分別劃分出N個(gè)Block的存儲(chǔ)區(qū)域作為回收數(shù)據(jù)分區(qū),各個(gè)通道的其它存儲(chǔ)區(qū)域?yàn)橛脩?hù)數(shù)據(jù)分區(qū);用戶(hù)寫(xiě)指令數(shù)據(jù)寫(xiě)入用戶(hù)數(shù)據(jù)分區(qū);固態(tài)硬盤(pán)內(nèi)部垃圾回收數(shù)據(jù)分離出來(lái)寫(xiě)入回收數(shù)據(jù)分區(qū)。實(shí)現(xiàn)GC和用戶(hù)數(shù)據(jù)的分離,特別是不破壞用戶(hù)數(shù)據(jù)的順序?qū)懭胩匦?,進(jìn)而也就實(shí)現(xiàn)了保證固態(tài)硬盤(pán)盡可能的實(shí)現(xiàn)順序讀操作,發(fā)揮固態(tài)硬盤(pán)并行操作的最大優(yōu)勢(shì)。
假設(shè)固態(tài)硬盤(pán)支持4通道Channel,Block a和Block e都屬于Channel 1;Block b和Block f都屬于Channel 2;Block c和Block g都屬于Channel 3;Block d和Block h都屬于Channel 4;Block a、Block b、Block c和Block d分別屬于4個(gè)通道的用戶(hù)數(shù)據(jù)區(qū);Block e、Block f、Block g和Block h分別屬于4個(gè)通道的回收數(shù)據(jù)分區(qū)。主機(jī)用戶(hù)數(shù)據(jù)host data指令和GC數(shù)據(jù)gc data指令交替進(jìn)入固態(tài)硬盤(pán)控制器,固態(tài)硬盤(pán)控制器對(duì)這些指令進(jìn)行分離,控制用戶(hù)數(shù)據(jù)host data指令保持原有的順序,分別按順序均勻的寫(xiě)入4個(gè)通道Channel中用戶(hù)數(shù)據(jù)區(qū);同樣也保證GC數(shù)據(jù)gc data指令也分別按順序均勻的4個(gè)通道Channel中的回收數(shù)據(jù)分區(qū)。
以上所揭露的僅為本發(fā)明一種實(shí)施例而已,當(dāng)然不能以此來(lái)限定本之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于本發(fā)明所涵蓋的范圍。