欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

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

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

【發(fā)明內容】

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

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