午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

一種固態(tài)硬盤垃圾回收的方法、系統(tǒng)和固態(tài)硬盤控制器的制造方法

文檔序號:6541056閱讀:369來源:國知局
一種固態(tài)硬盤垃圾回收的方法、系統(tǒng)和固態(tài)硬盤控制器的制造方法
【專利摘要】本發(fā)明涉及存儲【技術(shù)領(lǐng)域】,本發(fā)明實施例公開了一種固態(tài)硬盤垃圾回收的方法、系統(tǒng)及固態(tài)硬盤控制器,所述方法包括:接收對固態(tài)硬盤進行垃圾回收處理的命令;根據(jù)所述命令從所述固態(tài)硬盤包含的多個條帶中確定出需要進行垃圾回收處理的垃圾回收條帶;從所述垃圾回收條帶包含的多個數(shù)據(jù)塊中確定出需要進行垃圾回收處理的垃圾回收數(shù)據(jù)塊;將所述垃圾回收數(shù)據(jù)塊中的有效數(shù)據(jù)寫入其他條帶的數(shù)據(jù)塊中,并對所述垃圾回收數(shù)據(jù)塊進行擦除處理得到空白數(shù)據(jù)塊;將所述垃圾回收條帶中的所述空白數(shù)據(jù)塊組建成第一邏輯子條帶,并對所述第一邏輯子條帶進行條帶化管理。采用本方案可提高固態(tài)硬盤垃圾回收效率,降低性能開銷。
【專利說明】一種固態(tài)硬盤垃圾回收的方法、系統(tǒng)和固態(tài)硬盤控制器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及存儲【技術(shù)領(lǐng)域】,尤其涉及一種固態(tài)硬盤垃圾回收的方法、系統(tǒng)和固態(tài)硬盤控制器。
【背景技術(shù)】
[0002]RAID (Redundant Array of Independent Disks,獨立磁盤冗余陣列)算法是一種高性能、高可靠的存儲技術(shù),通過將一系列單獨的磁盤以不同的方式組合起來,為應(yīng)用終端或終端集群提供邏輯上的磁盤。其中,使用RAID的優(yōu)點包括:擴大磁盤容量、提高磁盤讀寫的性能和數(shù)據(jù)的安全性。具體的,RAID技術(shù)已經(jīng)廣泛應(yīng)用于數(shù)據(jù)存儲的各種場合,常用的 RAID 技術(shù)包括 RAIDO、RAID1、RAID5、RAID6、RAIDlO 等。
[0003]目前在采用RAID算法處理數(shù)據(jù)的固態(tài)硬盤中,垃圾回收機制主要使用數(shù)據(jù)搬遷技術(shù),即將存在較多無效數(shù)據(jù)的條帶中的數(shù)據(jù)搬移到其他條帶的方法來實現(xiàn)垃圾回收。搬遷是以整個條帶為單位,每次將整個條帶中所有的有效數(shù)據(jù)搬移到一個新的條帶中,最后將整個條帶進行擦除處理,回收得到整個條帶大小的可用空間。采用該方案進行固態(tài)硬盤的垃圾回收時,由于需要對條帶內(nèi)的所有有效數(shù)據(jù)進行搬移,造成較大的寫放大和性能開銷,使得垃圾回收效率較低。

【發(fā)明內(nèi)容】

[0004]本發(fā)明實施例所要解決的技術(shù)問題在于,提供一種固態(tài)硬盤垃圾回收的方法、系統(tǒng)和固態(tài)硬盤控制器,用于提高垃圾回收效率,降低系統(tǒng)的性能開銷。
[0005]本發(fā)明第一方面提供了一種固態(tài)硬盤垃圾回收的方法,包括:
[0006]接收對固態(tài)硬盤進行垃圾回收處理的命令;
[0007]根據(jù)所述命令從所述固態(tài)硬盤包含的多個條帶中確定出需要進行垃圾回收處理的一個或多個垃圾回收條帶;
[0008]從所述垃圾回收條帶包含的多個數(shù)據(jù)塊中確定出需要進行垃圾回收處理的一個或多個垃圾回收數(shù)據(jù)塊;
[0009]將所述一個或多個垃圾回收數(shù)據(jù)塊中的有效數(shù)據(jù)寫入其他條帶的數(shù)據(jù)塊中,并對所述一個或多個垃圾回收數(shù)據(jù)塊進行擦除處理得到空白數(shù)據(jù)塊;
[0010]將同一個所述垃圾回收條帶中的一個或多個所述空白數(shù)據(jù)塊組建成第一邏輯子條帶,并對所述第一邏輯子條帶進行條帶化管理。
[0011]在第一種可能的實現(xiàn)方式中,所述對所述一個或多個垃圾回收數(shù)據(jù)塊進行擦除處理得到空白數(shù)據(jù)塊之后,所述方法還包括:
[0012]將同一個所述垃圾回收條帶中包含的一個或多個所述空白數(shù)據(jù)塊之外的其他數(shù)據(jù)塊組建成第二邏輯子條帶,并對所述第二邏輯子條帶進行條帶化管理。
[0013]結(jié)合第一方面,或第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述從所述固態(tài)硬盤包含的多個條帶中確定出需要進行垃圾回收處理的垃圾回收條帶,包括:
[0014]計算所述固態(tài)硬盤包含的多個條帶中每個條帶的第一有效數(shù)據(jù)比例和所述第一有效數(shù)據(jù)比例的權(quán)重得到第一計算結(jié)果;
[0015]計算所述固態(tài)硬盤包含的多個條帶中每個條帶的擦除次數(shù)和所述擦除次數(shù)的權(quán)重得到第二計算結(jié)果;
[0016]計算所述固態(tài)硬盤包含的多個條帶中每個條帶的所述第一計算結(jié)果和所述第二計算結(jié)果的和值,并確定所述固態(tài)硬盤包含的多個條帶中每個條帶的優(yōu)先級,其中,所述和值大的條帶的優(yōu)先級高于所述和值小的條帶的優(yōu)先級;
[0017]從所述固態(tài)硬盤包含的多個條帶中確定出優(yōu)先級最低的N個條帶為需要進行垃圾回收處理的所述垃圾回收條帶,其中,N為大于O的整數(shù)。
[0018]結(jié)合第一方面,或第一方面的第一種可能的實現(xiàn)方式,或第一方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述從所述垃圾回收條帶包含的多個數(shù)據(jù)塊中確定出需要進行垃圾回收處理的垃圾回收數(shù)據(jù)塊,包括:
[0019]獲取所述垃圾回收條帶包含的多個數(shù)據(jù)塊中每個數(shù)據(jù)塊的第二有效數(shù)據(jù)比例;
[0020]當所述垃圾回收條帶包含的數(shù)據(jù)塊的第二有效數(shù)據(jù)比例低于預設(shè)的回收閾值,則確定其第二有效數(shù)據(jù)比例低于所述預設(shè)的回收閾值的數(shù)據(jù)塊為垃圾回收數(shù)據(jù)塊。
[0021]結(jié)合第一方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述獲取所述垃圾回收條帶包含的多個數(shù)據(jù)塊中每個數(shù)據(jù)塊的第二有效數(shù)據(jù)比例,包括:
[0022]基于所述垃圾回收條帶包含的多個數(shù)據(jù)塊中每個數(shù)據(jù)塊預置的有效數(shù)據(jù)頁計數(shù)器獲取所述每個數(shù)據(jù)塊的有效數(shù)據(jù)頁數(shù);
[0023]確定所述每個數(shù)據(jù)塊的有效數(shù)據(jù)頁數(shù)與所述每個數(shù)據(jù)塊的總數(shù)據(jù)頁數(shù)之比為所述每個數(shù)據(jù)塊的第二有效數(shù)據(jù)比例。
[0024]本發(fā)明第二方面提供一種固態(tài)硬盤控制器,包括:
[0025]接收模塊,用于接收對固態(tài)硬盤進行垃圾回收處理的命令;
[0026]條帶確定模塊,用于根據(jù)所述命令從所述固態(tài)硬盤包含的多個條帶中確定出需要進行垃圾回收處理的一個或多個垃圾回收條帶;
[0027]數(shù)據(jù)塊確定模塊,用于從所述垃圾回收條帶包含的多個數(shù)據(jù)塊中確定出需要進行垃圾回收處理的一個或多個垃圾回收數(shù)據(jù)塊;
[0028]數(shù)據(jù)塊處理模塊,用于將所述一個或多個垃圾回收數(shù)據(jù)塊中的有效數(shù)據(jù)寫入其他條帶的數(shù)據(jù)塊中,并對所述一個或多個垃圾回收數(shù)據(jù)塊進行擦除處理得到空白數(shù)據(jù)塊;
[0029]組建模塊,用于將同一個所述垃圾回收條帶中的一個或多個所述空白數(shù)據(jù)塊組建成第一邏輯子條帶,并對所述第一邏輯子條帶進行條帶化管理。
[0030]在第一種可能的實現(xiàn)方式中,所述組建模塊還用于將同一個所述垃圾回收條帶中包含的一個或多個所述空白數(shù)據(jù)塊之外的其他數(shù)據(jù)塊組建成第二邏輯子條帶,并對所述第二邏輯子條帶進行條帶化管理。
[0031]結(jié)合第二方面,或第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述條帶確定模塊具體用于計算所述固態(tài)硬盤包含的多個條帶中每個條帶的第一有效數(shù)據(jù)比例和所述第一有效數(shù)據(jù)比例的權(quán)重得到第一計算結(jié)果;計算所述固態(tài)硬盤包含的多個條帶中每個條帶的擦除次數(shù)和所述擦除次數(shù)的權(quán)重得到第二計算結(jié)果;計算所述固態(tài)硬盤包含的多個條帶中每個條帶的所述第一計算結(jié)果和所述第二計算結(jié)果的和值,并確定所述固態(tài)硬盤包含的多個條帶中每個條帶的優(yōu)先級,其中,所述和值大的條帶的優(yōu)先級高于所述和值小的條帶的優(yōu)先級;從所述固態(tài)硬盤包含的多個條帶中確定出優(yōu)先級最低的N個條帶為需要進行垃圾回收處理的所述垃圾回收條帶,其中,N為大于O的整數(shù)。結(jié)合第二方面,或第二方面的第一種可能的實現(xiàn)方式,或第二方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述數(shù)據(jù)塊確定模塊具體用于獲取所述垃圾回收條帶包含的多個數(shù)據(jù)塊中每個數(shù)據(jù)塊的第二有效數(shù)據(jù)比例;當所述垃圾回收條帶包含的數(shù)據(jù)塊的第二有效數(shù)據(jù)比例低于預設(shè)的回收閾值,則確定其第二有效數(shù)據(jù)比例低于所述預設(shè)的回收閾值的數(shù)據(jù)塊為垃圾回收數(shù)據(jù)塊。
[0032]結(jié)合第二方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述數(shù)據(jù)塊確定模塊具體用于基于所述垃圾回收條帶包含的多個數(shù)據(jù)塊中每個數(shù)據(jù)塊預置的有效數(shù)據(jù)頁計數(shù)器獲取所述每個數(shù)據(jù)塊的有效數(shù)據(jù)頁數(shù);確定所述每個數(shù)據(jù)塊的有效數(shù)據(jù)頁數(shù)與所述每個數(shù)據(jù)塊的總數(shù)據(jù)頁數(shù)之比為所述每個數(shù)據(jù)塊的第二有效數(shù)據(jù)比例。
[0033]本發(fā)明第三方面提供一種固態(tài)硬盤垃圾處理系統(tǒng),包括固態(tài)硬盤和本發(fā)明第二方面所述的固態(tài)硬盤控制器,其中,所述固態(tài)硬盤控制器用于控制對所述固態(tài)硬盤進行垃圾回收處理。
[0034]由上可知,本發(fā)明實施例提供的固態(tài)硬盤垃圾回收方法,在接收到對固態(tài)硬盤進行垃圾回收處理的命令時,可通過首先確定出所述固態(tài)硬盤中至少一個垃圾回收條帶及同一個垃圾回收條帶中至少一個垃圾回收數(shù)據(jù)塊,然后針對所述垃圾回收數(shù)據(jù)塊執(zhí)行數(shù)據(jù)擦除和搬移操作得到至少一個空白數(shù)據(jù)塊,并對其組建邏輯子條帶以進行條帶化管理。本發(fā)明實施例提供的固態(tài)硬盤垃圾回收方法,只需對垃圾數(shù)據(jù)塊進行擦除,且可進行條帶化處理,因此,與現(xiàn)有技術(shù)中對整個條帶進行擦除處理相比,本發(fā)明實施例提供的固態(tài)硬盤垃圾回收方法能夠提高垃圾回收效率,并降低系統(tǒng)的性能開銷。
【專利附圖】

【附圖說明】
[0035]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0036]圖1為本發(fā)明實施例提供的一種固態(tài)硬盤垃圾回收的方法的流程示意圖;
[0037]圖2為本發(fā)明實施例提供的另一種固態(tài)硬盤垃圾回收的方法的流程示意圖;
[0038]圖3為本發(fā)明實施例提供的一種固態(tài)硬盤控制器的結(jié)構(gòu)示意圖;
[0039]圖4為本發(fā)明實施例提供的一種固態(tài)硬盤垃圾處理系統(tǒng)的結(jié)構(gòu)示意圖;
[0040]圖5為本發(fā)明實施例提供的一種具體的應(yīng)用固態(tài)硬盤垃圾回收的方法的示意圖。
【具體實施方式】
[0041]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0042]固態(tài)硬盤是一種由Flash芯片構(gòu)建的存儲設(shè)備,固態(tài)硬盤控制器也是一個芯片,如FPGA、ASIC等,通過對所述固態(tài)硬盤控制器中的芯片編程來控制對所述固態(tài)硬盤的讀寫訪問或各種操作。所述固態(tài)硬盤控制器和構(gòu)成固態(tài)硬盤的Flash芯片可設(shè)置在一個PCB板上,即以盤或卡的形式呈現(xiàn),通過I/O接口與主機通信。所述固態(tài)硬盤必須通過擦除處理獲取需要的空間,即將有效數(shù)據(jù)放入其他位置,而將原有的位置擦除來回收失效的數(shù)據(jù)空間,即垃圾回收機制。如何提高垃圾回收效率,降低系統(tǒng)的性能開銷是本發(fā)明實施例所要解決的問題。
[0043]請參見圖1,為本發(fā)明實施例提供的一種固態(tài)硬盤垃圾回收的方法的流程示意圖,本發(fā)明實施例的所述方法可在上述固態(tài)硬盤控制器中實現(xiàn),具體的,所述方法包括:
[0044]S101,接收對固態(tài)硬盤進行垃圾回收處理的命令;
[0045]可選的,所述接收的對固態(tài)硬盤進行垃圾回收處理的命令可為與本端相連接的主機發(fā)送的垃圾回收處理命令。
[0046]S102,根據(jù)所述命令從所述固態(tài)硬盤包含的多個條帶中確定出需要進行垃圾回收處理的一個或多個垃圾回收條帶;
[0047]所述垃圾回收條帶是指需要回收失效的數(shù)據(jù)空間的存儲單元;所述從所述固態(tài)硬盤包含的多個條帶中確定出需要進行垃圾回收處理的一個或多個垃圾回收條帶,可通過計算所述固態(tài)硬盤包含的每個條帶的優(yōu)先級Pk來確定,例如:
[0048]Pk= (MXk,NYk),
[0049]其中,M表示條帶的有效數(shù)據(jù)比例權(quán)重,N表示條帶的擦除次數(shù)權(quán)重,Xk表示標號為k的條帶的有效數(shù)據(jù)比例,Yk表示標號為k的條帶的擦除次數(shù),由MXk和NYk決定各條帶的優(yōu)先級Pk,根據(jù)所述優(yōu)先級Pk來確定優(yōu)先進行垃圾回收的條帶作為垃圾回收條帶。
[0050]更具體的,所述確定垃圾回收條帶可包括:
[0051]計算所述固態(tài)硬盤包含的多個條帶中每個條帶的第一有效數(shù)據(jù)比例和所述第一有效數(shù)據(jù)比例的權(quán)重得到第一計算結(jié)果;
[0052]計算所述固態(tài)硬盤包含的多個條帶中每個條帶的擦除次數(shù)和所述擦除次數(shù)的權(quán)重得到第二計算結(jié)果;
[0053]計算所述固態(tài)硬盤包含的多個條帶中每個條帶的所述第一計算結(jié)果和所述第二計算結(jié)果的和值,并確定所述固態(tài)硬盤包含的多個條帶中每個條帶的優(yōu)先級,其中,所述和值大的條帶的優(yōu)先級高于所述和值小的條帶的優(yōu)先級;
[0054]從所述固態(tài)硬盤包含的多個條帶中確定出優(yōu)先級最低的N個條帶為需要進行垃圾回收處理的所述垃圾回收條帶,其中,N為大于O的整數(shù)。
[0055]S103,從所述垃圾回收條帶包含的多個數(shù)據(jù)塊中確定出需要進行垃圾回收處理的一個或多個垃圾回收數(shù)據(jù)塊;
[0056]具體的,所述從所述垃圾回收條帶包含的多個數(shù)據(jù)塊中確定出需要進行垃圾回收處理的一個或多個垃圾回收數(shù)據(jù)塊可包括如下步驟:
[0057]獲取所述垃圾回收條帶包含的多個數(shù)據(jù)塊中每個數(shù)據(jù)塊的第二有效數(shù)據(jù)比例;
[0058]當所述垃圾回收條帶包含的數(shù)據(jù)塊的第二有效數(shù)據(jù)比例低于預設(shè)的回收閾值,則確定其第二有效數(shù)據(jù)比例低于所述預設(shè)的回收閾值的數(shù)據(jù)塊為垃圾回收數(shù)據(jù)塊。[0059]其中,所述第二有效數(shù)據(jù)比例可根據(jù)數(shù)據(jù)塊中預置的有效數(shù)據(jù)頁計數(shù)器記錄的有效數(shù)據(jù)頁數(shù),計算所述有效數(shù)據(jù)頁數(shù)與所述數(shù)據(jù)塊的總數(shù)據(jù)頁數(shù)的比值,將該比值作為第二有效數(shù)據(jù)比例;所述預設(shè)的回收閾值可為固定值,或根據(jù)本端建立的模型動態(tài)調(diào)整的值,或根據(jù)提供的閾值接口由用戶進行設(shè)置的值,所述回收閾值用于判斷所述垃圾回收條帶中的垃圾回收數(shù)據(jù)塊。
[0060]S104,將所述一個或多個垃圾回收數(shù)據(jù)塊中的有效數(shù)據(jù)寫入其他條帶的數(shù)據(jù)塊中,并對所述一個或多個垃圾回收數(shù)據(jù)塊進行擦除處理得到空白數(shù)據(jù)塊;
[0061]S105,將同一個所述垃圾回收條帶中的一個或多個所述空白數(shù)據(jù)塊組建成第一邏輯子條帶,并對所述第一邏輯子條帶進行條帶化管理。
[0062]其中,所述將同一個所述垃圾回收條帶中的一個或多個所述空白數(shù)據(jù)塊組建成第一邏輯子條帶具體可通過柔性獨立磁盤冗余陣列RAID算法來實現(xiàn),所述第一邏輯子條帶包含的所述空白數(shù)據(jù)塊的物理地址可以是不連續(xù)的,所述第一邏輯子條帶能夠?qū)崿F(xiàn)和固態(tài)硬盤包含的多個條帶相同的功能。
[0063]所述柔性RAID算法具體是指在條帶大小為η的系統(tǒng)中,可以由條帶中全部η個存儲單元組建RAID (如邏輯子條帶),也可以使用n-m(〈0m〈n-2)個存儲單元組建RAID,即使用部分存儲單元組建RAID, m可根據(jù)當前條帶中的可用存儲單元動態(tài)調(diào)整。例如在條帶大小為16的情況下,可以使用全部16個存儲單元組建RAID ;當其中6個存儲單元不可用時,也可以使用10個存儲單元組建RAID.[0064]另外,所述對一個或多個垃圾回收數(shù)據(jù)塊進行擦除處理得到空白數(shù)據(jù)塊之后,還包括:將同一個所述垃圾回收條帶中包含的一個或多個所述空白數(shù)據(jù)塊之外的其他數(shù)據(jù)塊組建成第二邏輯子條帶,并對所述第二邏輯子條帶進行條帶化管理。
[0065]具體的,所述將同一個所述垃圾回收條帶中包含的一個或多個所述空白數(shù)據(jù)塊之外的其他數(shù)據(jù)塊組建成第二邏輯子條帶可包括:將所述同一個所述垃圾回收條帶中未確定為垃圾回收數(shù)據(jù)塊的數(shù)據(jù)塊(即這些數(shù)據(jù)塊的第二有效數(shù)據(jù)比例大于所述預設(shè)的回收閾值的數(shù)據(jù)塊)根據(jù)所述柔性RAID算法構(gòu)建第二邏輯子條帶,同樣的所述第二邏輯子條帶中的數(shù)據(jù)塊的物理地址可以為不連續(xù)的。
[0066]其中,所述并對所述第二邏輯子條帶進行條帶化管理包括將上層(例如主機)對所述第二邏輯子條帶的讀寫轉(zhuǎn)化為對所述第二邏輯子條帶物理存儲單元的讀寫,并把各種訪問請求按RAID算法分配到個物理存儲單元處理后,將處理結(jié)果返回給上層等。
[0067]本發(fā)明實施例提供的固態(tài)硬盤垃圾回收方法,在接收到對固態(tài)硬盤進行垃圾回收處理的命令時,可通過首先確定出所述固態(tài)硬盤中至少一個垃圾回收條帶及所述至少一個垃圾回收條帶中至少一個垃圾回收數(shù)據(jù)塊,然后針對所述垃圾回收數(shù)據(jù)塊執(zhí)行數(shù)據(jù)擦除和搬移操作得到至少一個空白數(shù)據(jù)塊,并對其組建邏輯子條帶以進行條帶化管理。本發(fā)明實施例提供的固態(tài)硬盤垃圾回收方法,只需對垃圾數(shù)據(jù)塊進行擦除,且可進行條帶化處理,因此,與現(xiàn)有技術(shù)中對整個條帶進行擦除處理相比,本發(fā)明實施例提供的固態(tài)硬盤垃圾回收方法能夠提高垃圾回收效率,并降低系統(tǒng)的性能開銷。
[0068]請參見圖2,為本發(fā)明實施例提供的另一種固態(tài)硬盤垃圾回收的方法的流程示意圖,本發(fā)明實施例的所述方法可應(yīng)用在固態(tài)硬盤控制器中,所述方法包括:
[0069]S201,接收對固態(tài)硬盤進行垃圾回收處理的命令;[0070]S202,計算所述固態(tài)硬盤包含的多個條帶中每個條帶的第一有效數(shù)據(jù)比例和所述第一有效數(shù)據(jù)比例的權(quán)重得到第一計算結(jié)果;
[0071]其中,獲取所述每個條帶的第一有效數(shù)據(jù)比例的方式可以為:在固態(tài)硬盤包含的多個條帶中的每個條帶預置有效數(shù)據(jù)頁計數(shù)器,當有效數(shù)據(jù)頁增加時,有效數(shù)據(jù)頁計數(shù)器加1,當有效數(shù)據(jù)頁減少時,有效數(shù)據(jù)頁計數(shù)器減1,則有效數(shù)據(jù)頁計數(shù)器的計數(shù)結(jié)果與每個條帶中總數(shù)據(jù)頁數(shù)的比例為第一有效數(shù)據(jù)比例;根據(jù)預置的第一有效數(shù)據(jù)比例的權(quán)重,得到第一計算結(jié)果。
[0072]S203,計算所述固態(tài)硬盤包含的多個條帶中每個條帶的擦除次數(shù)和所述擦除次數(shù)的權(quán)重得到第二計算結(jié)果;
[0073]可選的,所述每個條帶的擦除次數(shù)也可以通過在條帶中預置擦除次數(shù)計數(shù)器,將條帶中所述擦除次數(shù)計數(shù)器的計數(shù)結(jié)果作為每個條帶的擦除次數(shù),結(jié)合預置的擦除次數(shù)的權(quán)重,可得到第二計算結(jié)果。
[0074]S204,計算所述固態(tài)硬盤包含的多個條帶中每個條帶的所述第一計算結(jié)果和所述第二計算結(jié)果的和值,并確定所述固態(tài)硬盤包含的多個條帶中每個條帶的優(yōu)先級;
[0075]其中,所述和值大的條帶的優(yōu)先級高于所述和值小的條帶的優(yōu)先級;
[0076]S205,從所述固態(tài)硬盤包含的多個條帶中確定出優(yōu)先級最低的N個條帶為需要進行垃圾回收處理的所述垃圾回收條帶,其中,N為大于O的整數(shù)。
[0077]S206,獲取所述垃圾回收條帶包含的多個數(shù)據(jù)塊中每個數(shù)據(jù)塊的第二有效數(shù)據(jù)比例;
[0078]具體的,所述獲取所述垃圾回收條帶包含的多個數(shù)據(jù)塊中每個數(shù)據(jù)塊的第二有效數(shù)據(jù)比例包括:基于所述垃圾回收條帶包含的多個數(shù)據(jù)塊中每個數(shù)據(jù)塊預置的有效數(shù)據(jù)頁計數(shù)器獲取所述每個數(shù)據(jù)塊的有效數(shù)據(jù)頁數(shù);確定所述每個數(shù)據(jù)塊的有效數(shù)據(jù)頁數(shù)與所述每個數(shù)據(jù)塊的總數(shù)據(jù)頁數(shù)之比為所述每個數(shù)據(jù)塊的第二有效數(shù)據(jù)比例。
[0079]S207,當所述垃圾回收條帶包含的數(shù)據(jù)塊的第二有效數(shù)據(jù)比例低于預設(shè)的回收閾值,則確定其第二有效數(shù)據(jù)比例低于所述預設(shè)的回收閾值的數(shù)據(jù)塊為垃圾回收數(shù)據(jù)塊。
[0080]其中,所述預設(shè)的回收閾值可根據(jù)用戶通過提供的閾值接口設(shè)定的參數(shù)進行設(shè)置得到。
[0081]S208,將所述一個或多個垃圾回收數(shù)據(jù)塊中的有效數(shù)據(jù)寫入其他條帶的數(shù)據(jù)塊中,并對所述一個或多個垃圾回收數(shù)據(jù)塊進行擦除處理得到空白數(shù)據(jù)塊;
[0082]其中,所述其他條帶的數(shù)據(jù)塊為含有可用空間的條帶;所述空白數(shù)據(jù)塊即數(shù)據(jù)塊可以重新寫入數(shù)據(jù)的可用數(shù)據(jù)空間。
[0083]S209,將同一個所述垃圾回收條帶中的一個或多個所述空白數(shù)據(jù)塊組建成第一邏輯子條帶,并對所述第一邏輯子條帶進行條帶化管理。
[0084]其中,所述第一邏輯子條帶中數(shù)據(jù)塊的物理地址可以是不連續(xù)的;所述條帶化管理包括將上層對邏輯子條帶/條帶的讀寫轉(zhuǎn)化為對物理磁盤的讀寫,并將上層的請求根據(jù)RAID算法進行解析并發(fā)送到各個存儲單元處理完成后返回給上層,即容量和讀寫訪問的管理。
[0085]S210,將同一個所述垃圾回收條帶中包含的一個或多個所述空白數(shù)據(jù)塊之外的其他數(shù)據(jù)塊組建成第二邏輯子條帶,并對所述第二邏輯子條帶進行條帶化管理。[0086]具體的,所述空白數(shù)據(jù)塊之外的其他數(shù)據(jù)塊是指所述垃圾回收條帶中有效數(shù)據(jù)比例大于預設(shè)的所述回收閾值的數(shù)據(jù)塊,基于柔性RAID算法對所述垃圾回收條帶中有效數(shù)據(jù)比例大于預設(shè)的回收閾值的數(shù)據(jù)塊組建第二邏輯子條帶,所述并對所述第二邏輯子條帶進行條帶化管理包括將上層(例如主機)對所述第二邏輯子條帶的讀寫轉(zhuǎn)化為對所述第二邏輯子條帶物理存儲單元的讀寫,并把各種訪問請求按RAID算法分配到個物理存儲單元處理后,將處理結(jié)果返回給上層等。
[0087]可選地,上述各條帶的有效數(shù)據(jù)比例和各數(shù)據(jù)塊的有效數(shù)據(jù)比例,可以建立一個條帶、數(shù)據(jù)塊、有效數(shù)據(jù)比例和擦除次數(shù)的映射表,系統(tǒng)需要相應(yīng)的數(shù)據(jù)時,可以直接從表中獲取,進一步的提聞垃圾回收效率。
[0088]本發(fā)明實施例通過獲取固態(tài)硬盤中各條帶的有效數(shù)據(jù)比例和擦除次數(shù)從所述包含的至少一個條帶的固態(tài)硬盤中確定出垃圾回收條帶,再對所述垃圾回收條帶中有效數(shù)據(jù)比例低于回收閾值的數(shù)據(jù)塊執(zhí)行數(shù)據(jù)搬移和擦除處理,最后對所述垃圾回收條帶中獲得的空白數(shù)據(jù)塊和所述空白數(shù)據(jù)塊之外的數(shù)據(jù)塊分別組建第一邏輯子條帶和第二邏輯子條帶。本發(fā)明實施例不僅以數(shù)據(jù)塊為垃圾回收單位,而且采用RAID算法對得到的空白數(shù)據(jù)塊構(gòu)件邏輯子條帶,與現(xiàn)有技術(shù)相比,降低了固態(tài)硬盤的性能開銷,并提高了固態(tài)硬盤的空間利用率。
[0089]請參見圖3,為本發(fā)明實施例提供的一種固態(tài)硬盤控制器的結(jié)構(gòu)示意圖,本發(fā)明實施例的所述裝置包括接收模塊1、條帶確定模塊2、數(shù)據(jù)塊確定模塊3、數(shù)據(jù)塊處理模塊4和組建模塊5,具體的:
[0090]接收模塊1,用于接收對固態(tài)硬盤進行垃圾回收處理的命令;
[0091]可選的,所述接收的對固態(tài)硬盤進行垃圾回收處理的命令可為與本端相連接的主機發(fā)送的垃圾回收處理命令。
[0092]條帶確定模塊2,用于根據(jù)所述命令從所述固態(tài)硬盤包含的多個條帶中確定出需要進行垃圾回收處理的一個或多個垃圾回收條帶;
[0093]所述垃圾回收條帶是指需要回收失效的數(shù)據(jù)空間的存儲單元;所述條帶確定模塊2根據(jù)所述命令從所述固態(tài)硬盤包含的多個條帶中確定出需要進行垃圾回收處理的一個或多個垃圾回收條帶,可通過計算所述固態(tài)硬盤包含的各個條帶的優(yōu)先級Pk來確定,例如:
[0094]Pk= (MXk,NYk),
[0095]其中,M表示條帶的有效數(shù)據(jù)比例權(quán)重,N表示條帶的擦除次數(shù)權(quán)重,Xk表示標號為k的條帶的有效數(shù)據(jù)比例,Yk表示標號為k的條帶的擦除次數(shù),由MXk和NYk決定各條帶的優(yōu)先級Pk,根據(jù)所述優(yōu)先級Pk來確定優(yōu)先進行垃圾回收的條帶作為垃圾回收條帶。
[0096]更具體的,所述條帶確定模塊2確定垃圾回收條帶可包括如下步驟:
[0097]計算所述固態(tài)硬盤包含的多個條帶中每個條帶的第一有效數(shù)據(jù)比例和所述第一有效數(shù)據(jù)比例的權(quán)重得到第一計算結(jié)果;
[0098]計算所述固態(tài)硬盤包含的多個條帶中每個條帶的擦除次數(shù)和所述擦除次數(shù)的權(quán)重得到第二計算結(jié)果;
[0099]計算所述固態(tài)硬盤包含的多個條帶中每個條帶的所述第一計算結(jié)果和所述第二計算結(jié)果的和值,并確定所述固態(tài)硬盤包含的多個條帶中每個條帶的優(yōu)先級,其中,所述和值大的條帶的優(yōu)先級高于所述和值小的條帶的優(yōu)先級;[0100]從所述固態(tài)硬盤包含的多個條帶中確定出優(yōu)先級最低的N個條帶為需要進行垃圾回收處理的所述垃圾回收條帶,其中,N為大于O的整數(shù)。
[0101]數(shù)據(jù)塊確定模塊3,用于從所述垃圾回收條帶包含的多個數(shù)據(jù)塊中確定出需要進行垃圾回收處理的一個或多個垃圾回收數(shù)據(jù)塊;
[0102]具體的,所述數(shù)據(jù)塊確定模塊3從所述垃圾回收條帶包含的多個數(shù)據(jù)塊中確定出需要進行垃圾回收處理的一個或多個垃圾回收數(shù)據(jù)塊可包括如下步驟:
[0103]獲取所述垃圾回收條帶包含的多個數(shù)據(jù)塊中每個數(shù)據(jù)塊的第二有效數(shù)據(jù)比例;
[0104]當所述垃圾回收條帶包含的數(shù)據(jù)塊的第二有效數(shù)據(jù)比例低于預設(shè)的回收閾值,則確定其第二有效數(shù)據(jù)比例低于所述預設(shè)的回收閾值的數(shù)據(jù)塊為垃圾回收數(shù)據(jù)塊。
[0105]其中,所述第二有效數(shù)據(jù)比例可根據(jù)數(shù)據(jù)塊中預置的有效數(shù)據(jù)頁計數(shù)器記錄的有效數(shù)據(jù)頁數(shù),計算所述有效數(shù)據(jù)頁數(shù)與所述數(shù)據(jù)塊的總數(shù)據(jù)頁數(shù)的比值,將該比值作為第二有效數(shù)據(jù)比例;所述預設(shè)的回收閾值可為固定值,或根據(jù)本端建立的模型動態(tài)調(diào)整的值,或根據(jù)提供的閾值接口由用戶進行設(shè)置的值,所述回收閾值用于判斷所述垃圾回收條帶中的垃圾回收數(shù)據(jù)塊。
[0106]數(shù)據(jù)塊處理模塊4,用于將所述一個或多個垃圾回收數(shù)據(jù)塊中的有效數(shù)據(jù)寫入其他條帶的數(shù)據(jù)塊中,并對所述一個或多個垃圾回收數(shù)據(jù)塊進行擦除處理得到空白數(shù)據(jù)塊;
[0107]組建模塊5,用于將同一個所述垃圾回收條帶中的一個或多個所述空白數(shù)據(jù)塊組建成第一邏輯子條帶,并對所述第一邏輯子條帶進行條帶化管理。
[0108]其中,所述數(shù)據(jù)塊處理模塊4將同一個所述垃圾回收條帶中的一個或多個所述空白數(shù)據(jù)塊組建成第一邏輯子條帶具體可通過柔性獨立磁盤冗余陣列RAID算法來實現(xiàn),所述第一邏輯子條帶包含的所述空白數(shù)據(jù)塊的物理地址可以是不連續(xù)的。
[0109]所述柔性RAID算法具體是指在條帶大小為η的系統(tǒng)中,可以由條帶中全部η個存儲單元組建RAID (如邏輯子條帶),也可以使用n-m(〈0m〈n-2)個存儲單元組建RAID,即使用部分存儲單元組建RAID, m可根據(jù)當前條帶中的可用存儲單元動態(tài)調(diào)整。例如在條帶大小為16的情況下,可以使用全部16個存儲單元組建RAID ;當其中6個存儲單元不可用時,也可以使用10個存儲單元組建RAID。
[0110]進一步的,所述固態(tài)硬盤控制器中所述組建模塊5還用于將同一個所述垃圾回收條帶中包含的一個或多個所述空白數(shù)據(jù)塊之外的其他數(shù)據(jù)塊組建成第二邏輯子條帶,并對所述第二邏輯子條帶進行條帶化管理。
[0111]所述條帶確定模塊2具體用于計算所述固態(tài)硬盤包含的多個條帶中每個條帶的第一有效數(shù)據(jù)比例和所述第一有效數(shù)據(jù)比例的權(quán)重得到第一計算結(jié)果;計算所述固態(tài)硬盤包含的多個條帶中每個條帶的擦除次數(shù)和所述擦除次數(shù)的權(quán)重得到第二計算結(jié)果;計算所述固態(tài)硬盤包含的多個條帶中每個條帶的所述第一計算結(jié)果和所述第二計算結(jié)果的和值,并確定所述固態(tài)硬盤包含的多個條帶中每個條帶的優(yōu)先級,其中,所述和值大的條帶的優(yōu)先級高于所述和值小的條帶的優(yōu)先級;從所述固態(tài)硬盤包含的多個條帶中確定出優(yōu)先級最低的N個條帶為需要進行垃圾回收處理的所述垃圾回收條帶,其中,N為大于O的整數(shù)。
[0112]所述數(shù)據(jù)塊確定模塊3具體用于獲取所述垃圾回收條帶包含的一個以上數(shù)據(jù)塊中每個數(shù)據(jù)塊的第二有效數(shù)據(jù)比例;當所述垃圾回收條帶包含的數(shù)據(jù)塊的第二有效數(shù)據(jù)比例低于預設(shè)的回收閾值,則確定其第二有效數(shù)據(jù)比例低于所述預設(shè)的回收閾值的數(shù)據(jù)塊為垃圾回收數(shù)據(jù)塊。
[0113]進一步的,所述數(shù)據(jù)塊確定模塊3具體用于基于所述垃圾回收條帶包含的一個以上數(shù)據(jù)塊中每個數(shù)據(jù)塊預置的有效數(shù)據(jù)頁計數(shù)器獲取所述每個數(shù)據(jù)塊的有效數(shù)據(jù)頁數(shù);確定所述每個數(shù)據(jù)塊的有效數(shù)據(jù)頁數(shù)與所述每個數(shù)據(jù)塊的總數(shù)據(jù)頁數(shù)之比為所述每個數(shù)據(jù)塊的第二有效數(shù)據(jù)比例。
[0114]本發(fā)明實施例提供的固態(tài)硬盤控制器,在接收到對固態(tài)硬盤進行垃圾回收處理的命令時,可通過首先確定出所述固態(tài)硬盤中至少一個垃圾回收條帶及所述至少一個垃圾回收條帶中至少一個垃圾回收數(shù)據(jù)塊,然后針對所述垃圾回收數(shù)據(jù)塊執(zhí)行數(shù)據(jù)擦除和搬移操作得到至少一個空白數(shù)據(jù)塊,并對其組建邏輯子條帶以進行條帶化管理。在本發(fā)明實施例提供的固態(tài)硬盤控制器對垃圾數(shù)據(jù)塊進行擦除,并進行條帶化處理,與現(xiàn)有技術(shù)中對整個條帶進行擦除處理相比,本發(fā)明實施例提供的固態(tài)硬盤垃圾回收方法能夠提高垃圾回收效率,并降低系統(tǒng)的性能開銷,并改善了固態(tài)硬盤的處理性能。
[0115]請參見圖4,為本發(fā)明實施例提供的一種固態(tài)硬盤垃圾處理系統(tǒng),包括固態(tài)硬盤和上述發(fā)明實施例所述的固態(tài)硬盤控制器,其中,所述固態(tài)硬盤控制器用于控制對所述固態(tài)硬盤進行垃圾回收處理,可選的,所述固態(tài)硬盤包括多個Flash芯片組,支持多通道,每個通道上可連接多個Flash芯片(如圖4所示的本發(fā)明實施例以連接四個Flash芯片為例),按照RAID模式工作。
[0116]本發(fā)明實施例的固態(tài)硬盤控制器對多個Flash芯片組采用針對數(shù)據(jù)塊的垃圾回收處理,并對從垃圾回收條帶中回收到的空白數(shù)據(jù)塊和所述垃圾回收條帶中的回收到的空白數(shù)據(jù)塊之外的其他數(shù)據(jù)塊分別組建第一邏輯子條帶和第二邏輯子條帶,與現(xiàn)有技術(shù)相t匕,以數(shù)據(jù)塊為數(shù)據(jù)搬移和擦除單位,減少了數(shù)據(jù)搬移量,降低了固態(tài)硬盤的性能開銷,改善了固態(tài)硬盤的容量利用率和處理性能。
[0117]請參見圖5,為本發(fā)明實施例提供的一種具體的應(yīng)用固態(tài)硬盤垃圾回收的方法的示意圖,本發(fā)明實施例的前提是固態(tài)硬盤包含的每個條帶分別由6個數(shù)據(jù)塊構(gòu)成,采用上述實施例所述的確定垃圾回收條帶的方法,確定條帶η為“垃圾回收條帶”,條帶m為可用條帶,并且預設(shè)的回收閾值為70%.[0118]初始狀態(tài)如圖5所示,經(jīng)上述實施例的所述方法確定了條帶η的數(shù)據(jù)塊1、數(shù)據(jù)塊
2、數(shù)據(jù)塊3、數(shù)據(jù)塊4、數(shù)據(jù)塊5和數(shù)據(jù)塊6的第二有效數(shù)據(jù)比例分別為100%、90%、10%、10%、10%、10% ;
[0119]依據(jù)上述實施例所述的確定垃圾回收數(shù)據(jù)塊的方法,
[0120]數(shù)據(jù)塊I有效數(shù)據(jù)比例為100%,高于回收閾值70%,則所述數(shù)據(jù)塊I不作垃圾回收處理;
[0121]數(shù)據(jù)塊2有效數(shù)據(jù)比例為90%,高于回收閾值70%,則所述數(shù)據(jù)塊2不作垃圾回收處理;
[0122]數(shù)據(jù)塊3有效數(shù)據(jù)比例為10%,低于回收閾值70%,則所述數(shù)據(jù)塊3進行垃圾回收處理;
[0123]數(shù)據(jù)塊4有效數(shù)據(jù)比例為10%,低于回收閾值70%,則所述數(shù)據(jù)塊4進行垃圾回收處理;
[0124]數(shù)據(jù)塊5有效數(shù)據(jù)比例為10%,低于回收閾值70%,則所述數(shù)據(jù)塊5進行垃圾回收處理;
[0125]數(shù)據(jù)塊6有效數(shù)據(jù)比例為100%,低于回收閾值70%,則所述數(shù)據(jù)塊6進行垃圾回收處理;
[0126]執(zhí)行所述垃圾回收處理,即將所述條帶η中數(shù)據(jù)塊3、數(shù)據(jù)塊4、數(shù)據(jù)塊5和數(shù)據(jù)塊6的有效數(shù)據(jù)搬移到條帶m中的數(shù)據(jù)塊1,并將所述條帶η中數(shù)據(jù)塊3、數(shù)據(jù)塊4、數(shù)據(jù)塊5和數(shù)據(jù)塊6的數(shù)據(jù)擦除后,所述條帶η變?yōu)榭捎?,可重新寫入?shù)據(jù),即總?cè)萘繛?個數(shù)據(jù)塊,含有效數(shù)據(jù)的數(shù)據(jù)塊為2個,可用數(shù)據(jù)塊為4個,條帶m中數(shù)據(jù)塊I已寫入了 40%的有效數(shù)據(jù),其他塊均可用。
[0127]將所述條帶η中的數(shù)據(jù)塊I和數(shù)據(jù)塊2基于柔性RAID算法組建第一邏輯子條帶,將所述條帶η中的第二邏輯子條帶。
[0128]本發(fā)明實施例在執(zhí)行固態(tài)硬盤中數(shù)據(jù)塊的垃圾回收方法時,搬移數(shù)據(jù)量小,擦除數(shù)據(jù)塊少,并經(jīng)過垃圾回收處理,新增加了 3.6個數(shù)據(jù)塊的可用空間,提高了固態(tài)硬盤的空間利用率,并降低了性能開銷,從而增加了固態(tài)硬盤的使用壽命。
[0129]本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random AccessMemory, RAM)等。
[0130]以上所揭露的僅為本發(fā)明較佳實施例而已,當然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
【權(quán)利要求】
1.一種固態(tài)硬盤垃圾回收的方法,其特征在于,包括: 接收對固態(tài)硬盤進行垃圾回收處理的命令; 根據(jù)所述命令從所述固態(tài)硬盤包含的多個條帶中確定出需要進行垃圾回收處理的一個或多個垃圾回收條帶; 從所述垃圾回收條帶包含的多個數(shù)據(jù)塊中確定出需要進行垃圾回收處理的一個或多個垃圾回收數(shù)據(jù)塊; 將所述一個或多個垃圾回收數(shù)據(jù)塊中的有效數(shù)據(jù)寫入其他條帶的數(shù)據(jù)塊中,并對所述一個或多個垃圾回收數(shù)據(jù)塊進行擦除處理得到空白數(shù)據(jù)塊; 將同一個所述垃圾回收條帶中的一個或多個所述空白數(shù)據(jù)塊組建成第一邏輯子條帶,并對所述第一邏輯子條帶進行條帶化管理。
2.根據(jù)權(quán)利要求1所述的固態(tài)硬盤垃圾回收的方法,其特征在于,所述對所述一個或多個垃圾回收數(shù)據(jù)塊進行擦除處理得到空白數(shù)據(jù)塊之后,所述方法還包括: 將同一個所述垃圾回收條帶中包含的一個或多個所述空白數(shù)據(jù)塊之外的其他數(shù)據(jù)塊組建成第二邏輯子條帶,并對所述第二邏輯子條帶進行條帶化管理。
3.根據(jù)權(quán)利要求1或2所述的固態(tài)硬盤垃圾回收的方法,其特征在于, 所述從所述固態(tài)硬盤包含的多個條帶中確定出需要進行垃圾回收處理的垃圾回收條帶,包括: 計算所述固態(tài)硬盤包含的多個條帶中每個條帶的第一有效數(shù)據(jù)比例和所述第一有效數(shù)據(jù)比例的權(quán)重得到第一計算結(jié)果; 計算所述固態(tài)硬盤包含的多個條帶中每個條帶的擦除次數(shù)和所述擦除次數(shù)的權(quán)重得到第二計算結(jié)果; 計算所述固態(tài)硬盤包含的多個條帶中每個條帶的所述第一計算結(jié)果和所述第二計算結(jié)果的和值,并確定所述固態(tài)硬盤包含的多個條帶中每個條帶的優(yōu)先級,其中,所述和值大的條帶的優(yōu)先級高于所述和值小的條帶的優(yōu)先級; 從所述固態(tài)硬盤包含的多個條帶中確定出優(yōu)先級最低的N個條帶為需要進行垃圾回收處理的所述垃圾回收條帶,其中,N為大于O的整數(shù)。
4.根據(jù)權(quán)利要求1至3任一項所述的固態(tài)硬盤垃圾回收的方法,其特征在于, 所述從所述垃圾回收條帶包含的多個數(shù)據(jù)塊中確定出需要進行垃圾回收處理的垃圾回收數(shù)據(jù)塊,包括: 獲取所述垃圾回收條帶包含的多個數(shù)據(jù)塊中每個數(shù)據(jù)塊的第二有效數(shù)據(jù)比例; 當所述垃圾回收條帶包含的數(shù)據(jù)塊的第二有效數(shù)據(jù)比例低于預設(shè)的回收閾值,則確定其第二有效數(shù)據(jù)比例低于所述預設(shè)的回收閾值的數(shù)據(jù)塊為垃圾回收數(shù)據(jù)塊。
5.根據(jù)權(quán)利要求4所述的固態(tài)硬盤垃圾回收的方法,其特征在于,所述獲取所述垃圾回收條帶包含的多個數(shù)據(jù)塊中每個數(shù)據(jù)塊的第二有效數(shù)據(jù)比例,包括: 基于所述垃圾回收條帶包含的多個數(shù)據(jù)塊中每個數(shù)據(jù)塊預置的有效數(shù)據(jù)頁計數(shù)器獲取所述每個數(shù)據(jù)塊的有效數(shù)據(jù)頁數(shù); 確定所述每個數(shù)據(jù)塊的有效數(shù)據(jù)頁數(shù)與所述每個數(shù)據(jù)塊的總數(shù)據(jù)頁數(shù)之比為所述每個數(shù)據(jù)塊的第二有效數(shù)據(jù)比例。
6.一種固態(tài)硬盤控制器,其特征在于,包括:接收模塊,用于接收對固態(tài)硬盤進行垃圾回收處理的命令; 條帶確定模塊,用于根據(jù)所述命令從所述固態(tài)硬盤包含的多個條帶中確定出需要進行垃圾回收處理的一個或多個垃圾回收條帶; 數(shù)據(jù)塊確定模塊,用于從所述垃圾回收條帶包含的多個數(shù)據(jù)塊中確定出需要進行垃圾回收處理的一個或多個垃圾回收數(shù)據(jù)塊; 數(shù)據(jù)塊處理模塊,用于將所述一個或多個垃圾回收數(shù)據(jù)塊中的有效數(shù)據(jù)寫入其他條帶的數(shù)據(jù)塊中,并對所述一個或多個垃圾回收數(shù)據(jù)塊進行擦除處理得到空白數(shù)據(jù)塊; 組建模塊,用于將同一個所述垃圾回收條帶中的一個或多個所述空白數(shù)據(jù)塊組建成第一邏輯子條帶,并對所述第一邏輯子條帶進行條帶化管理。
7.根據(jù)權(quán)利要求6所述的固態(tài)硬盤控制器,其特征在于: 所述組建模塊還用于將同一個所述垃圾回收條帶中包含的一個或多個所述空白數(shù)據(jù)塊之外的其他數(shù)據(jù)塊組建成第二邏輯子條帶,并對所述第二邏輯子條帶進行條帶化管理。
8.根據(jù)權(quán)利要求6或7所述的固態(tài)硬盤控制器,其特征在于: 所述條帶確定模塊具體用于計算所述固態(tài)硬盤包含的多個條帶中每個條帶的第一有效數(shù)據(jù)比例和所述第一有效數(shù)據(jù)比例的權(quán)重得到第一計算結(jié)果;計算所述固態(tài)硬盤包含的多個條帶中每個條帶的擦除次數(shù)和所述擦除次數(shù)的權(quán)重得到第二計算結(jié)果;計算所述固態(tài)硬盤包含的多個條帶中每個條帶的所述第一計算結(jié)果和所述第二計算結(jié)果的和值,并確定所述固態(tài)硬盤包含的多個條帶中每個條帶的優(yōu)先級,其中,所述和值大的條帶的優(yōu)先級高于所述和值小的條帶的優(yōu)先級;從所述固態(tài)硬盤包含的多個條帶中確定出優(yōu)先級最低的N個條帶為需要進行垃圾回收處理的所述垃圾回收條帶,其中,N為大于O的整數(shù)。
9.根據(jù)權(quán)利要求6至8任一項所述的固態(tài)硬盤控制器,其特征在于: 所述數(shù)據(jù)塊確定模塊具體用于獲取所述垃圾回收條帶包含的多個數(shù)據(jù)塊中每個數(shù)據(jù)塊的第二有效數(shù)據(jù)比例;當所述垃圾回收條帶包含的數(shù)據(jù)塊的第二有效數(shù)據(jù)比例低于預設(shè)的回收閾值,則確定其第二有效數(shù)據(jù)比例低于所述預設(shè)的回收閾值的數(shù)據(jù)塊為垃圾回收數(shù)據(jù)塊。
10.根據(jù)權(quán)利要求9所述的固態(tài)硬盤控制器,其特征在于: 所述數(shù)據(jù)塊確定模塊具體用于基于所述垃圾回收條帶包含的多個數(shù)據(jù)塊中每個數(shù)據(jù)塊預置的有效數(shù)據(jù)頁計數(shù)器獲取所述每個數(shù)據(jù)塊的有效數(shù)據(jù)頁數(shù);確定所述每個數(shù)據(jù)塊的有效數(shù)據(jù)頁數(shù)與所述 每個數(shù)據(jù)塊的總數(shù)據(jù)頁數(shù)之比為所述每個數(shù)據(jù)塊的第二有效數(shù)據(jù)比例。
11.一種固態(tài)硬盤垃圾處理系統(tǒng),其特征在于,包括固態(tài)硬盤和如權(quán)利要求6至10任一項所述的固態(tài)硬盤控制器,其中,所述固態(tài)硬盤控制器用于控制對所述固態(tài)硬盤進行垃圾回收處理。
【文檔編號】G06F12/02GK103902465SQ201410102438
【公開日】2014年7月2日 申請日期:2014年3月19日 優(yōu)先權(quán)日:2014年3月19日
【發(fā)明者】陳建輝, 李挺 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1