用于數(shù)據(jù)存儲系統(tǒng)的基于優(yōu)先級的垃圾收集的制作方法
【技術領域】
[0001]本公開涉及用于計算機系統(tǒng)的數(shù)據(jù)存儲系統(tǒng)。更特別地,本公開涉及用于數(shù)據(jù)存儲系統(tǒng)的基于優(yōu)先級的垃圾收集。
【背景技術】
[0002]數(shù)據(jù)存儲系統(tǒng)在其正常操作過程中執(zhí)行很多整理操作。例如,經(jīng)常對可能同時包含有效和無效數(shù)據(jù)兩者的存儲器區(qū)域執(zhí)行垃圾收集。當選擇用于垃圾收集的一個區(qū)域時,垃圾收集操作將該存儲器區(qū)域內(nèi)的有效數(shù)據(jù)復制到存儲器中的新位置,并接著擦除或釋放整個區(qū)域,從而使該區(qū)域可用于未來的數(shù)據(jù)存儲。然而,執(zhí)行垃圾收集涉及很大的開銷,例如在使用固態(tài)存儲器存儲數(shù)據(jù)的情況下導致增大的寫入放大。因此,期望提供更高效的垃圾收集機制。
【附圖說明】
[0003]現(xiàn)在將參考以下繪圖描述實施本發(fā)明的各個特征的系統(tǒng)和方法,其中:
[0004]圖1示出了根據(jù)本發(fā)明的一個實施例的實現(xiàn)基于優(yōu)先級的垃圾收集的主機系統(tǒng)和數(shù)據(jù)存儲系統(tǒng)的組合。
[0005]圖2示出了根據(jù)本發(fā)明的一個實施例的基于優(yōu)先級信息的排序。
[0006]圖3示出了根據(jù)本發(fā)明的一個實施例的基于優(yōu)先級的垃圾收集的操作。
[0007]圖4示出了根據(jù)本發(fā)明的另一實施例的基于優(yōu)先級的垃圾收集的流程圖。
[0008]圖5示出了根據(jù)本發(fā)明的一個實施例選擇用于垃圾收集的一個或多個區(qū)域。
【具體實施方式】
[0009]雖然描述了一些實施例,但這些實施例僅是通過示例的方式呈現(xiàn),并不是為了限制保護的范圍。事實上,本文中描述的新穎的方法和系統(tǒng)可以以多種其他形式實施。并且,可以對本文中描述的方法和系統(tǒng)的形式進行各種省略、替換或改變而不背離保護的范圍。
[0010]
[0011]數(shù)據(jù)存儲系統(tǒng)(例如閃速存儲設備)執(zhí)行內(nèi)部系統(tǒng)操作,例如垃圾收集、損耗均衡、壞塊管理等,以提高性能和壽命。垃圾收集可涉及將存儲在一存儲器區(qū)域中的有效數(shù)據(jù)復制到另一存儲器區(qū)域,并進一步指示之前的存儲器區(qū)域不再存儲任何有效數(shù)據(jù)。為了確定優(yōu)先次序,垃圾收集可利用仍然保留在待被垃圾收集的存儲器區(qū)域中的無效數(shù)據(jù)的量。然而,垃圾收集操作涉及可觀的開銷,并且僅基于無效數(shù)據(jù)的量來確定垃圾收集的優(yōu)先次序可引入不合需要的低效率。例如,所存儲的數(shù)據(jù)可與不同的優(yōu)先等級相關聯(lián),并且當執(zhí)行垃圾收集時考慮數(shù)據(jù)的優(yōu)先級是有利的。
[0012]本發(fā)明的實施例涉及在執(zhí)行垃圾收集時考慮所存儲數(shù)據(jù)的優(yōu)先級的垃圾收集。在一個實施例中,非易失性固態(tài)存儲器(NVSM)作為混合磁盤驅(qū)動器中的高速緩存,該混合磁盤驅(qū)動器用旋轉(zhuǎn)磁介質(zhì)與NVSM配對。在對NVSM中的存儲區(qū)域進行垃圾收集期間,優(yōu)先級信息可用于確定是否,例如,要從高速緩存中移動數(shù)據(jù)、逐出數(shù)據(jù),整合高速緩存中的數(shù)據(jù)等。例如,高優(yōu)先級數(shù)據(jù)可被移動到不同的存儲器區(qū)域以保留在垃圾收集期間所收集的有效數(shù)據(jù),而低優(yōu)先級數(shù)據(jù)可從高速緩存中被逐出。在略高于被逐出的數(shù)據(jù)的優(yōu)先級的某個優(yōu)先級范圍內(nèi)的數(shù)據(jù)可在另一存儲器區(qū)域中被整合。由于這樣的數(shù)據(jù)很有可能在稍后被逐出并且從垃圾收集的角度來看成為無效數(shù)據(jù),在垃圾收集時對很可能被無效的數(shù)據(jù)執(zhí)行這樣的整合能夠減少開銷并提高與未來的垃圾收集操作相關聯(lián)的效率。此外,優(yōu)先級信息可用于決定將數(shù)據(jù)從高速緩存清理到另一存儲介質(zhì),例如磁盤。例如,可以周期性地將存儲在高速緩存中的非冗余的低優(yōu)先級數(shù)據(jù)清理到另一存儲介質(zhì)。這可保證可能在稍后成為從高速緩存逐出的候選的數(shù)據(jù)被同步。
[0013]在一些實施例中,優(yōu)先級信息可以是下面中的一個或多個的組合:由主機系統(tǒng)提供的優(yōu)先級(例如,作為寫數(shù)據(jù)指令的一部分)、訪問數(shù)據(jù)的頻率、自最后一次訪問數(shù)據(jù)以來的持續(xù)時間、讀取數(shù)據(jù)對寫入數(shù)據(jù)的頻率(例如,讀寫比)、優(yōu)先等級內(nèi)數(shù)據(jù)的相對重要性、數(shù)據(jù)是否已經(jīng)與其他存儲設備同步,等等。例如,頻繁被訪問的數(shù)據(jù)可被賦予更高的優(yōu)先級,這是因為將頻繁被訪問的數(shù)據(jù)保持在高速緩存中能夠提高數(shù)據(jù)存儲系統(tǒng)的性能。另例,比其他數(shù)據(jù)較新近地被訪問的數(shù)據(jù)可被賦予更高的優(yōu)先級,這是因為這樣較新近地被訪問的數(shù)據(jù)很有可能在未來再次被訪問。再例如,讀比寫更頻繁的數(shù)據(jù)可被賦予更高的優(yōu)先級,這是因為將這樣頻繁被讀取的數(shù)據(jù)保持在高速緩存中能夠在降低NVSM損耗的同時提高性能。在一些實施例中,可基于一個或多個上述因素的加權組合來賦予優(yōu)先級。
[0014]為了簡化和說明的目的,下面的描述將集中在非易失性存儲器陣列150作為磁存儲設備160的高速緩存存儲器這樣的示例實施例。然而,本公開的范圍并不限于這樣的實施例。例如,在其他實施例中,代替磁存儲設備160,數(shù)據(jù)存儲系統(tǒng)120可包括另一類型的數(shù)據(jù)存儲器,例如第二非易失性存儲器陣列。例如,非易失性存儲器陣列150可包括一種存儲器,這種存儲器提供比第二非易失性存儲器陣列中所使用的那種存儲器更快的寫/讀性能。在一些實施例中,非易失性存儲器陣列150可作為在遠程位置的數(shù)據(jù)存儲設備的高速緩存,并且數(shù)據(jù)的同步可通過一個或多個網(wǎng)絡連接發(fā)生。
[0015]系統(tǒng)概沐
[0016]圖1示出了根據(jù)本發(fā)明的一個實施例的實現(xiàn)基于優(yōu)先級的垃圾收集的主機系統(tǒng)和數(shù)據(jù)存儲系統(tǒng)的組合100。如圖所示,數(shù)據(jù)存儲系統(tǒng)120(例如,混合磁盤驅(qū)動器)包括控制器130和非易失性存儲器陣列150,以及包括磁介質(zhì)164的磁存儲設備160。非易失性存儲器陣列150可包括非易失性存儲器,例如閃速集成電路、硫化物RAM(C-RAM)、相變存儲器(PC-RAM或PRAM)、可編程金屬化單元RAM(PMC_RAM或PMCm)、雙向統(tǒng)一存儲器(OUM)、電阻RAM(RRAM)、NAND存儲器(例如,單級單元(SLC)存儲器、單級單元(MLC)存儲器或它們的任意組合)、N0R存儲器、EEPR0M、鐵電存儲器(FeRAM)、磁阻RAM(MRAM)、其他分離的NVM(非易失性存儲器)芯片或它們的任意組合。非易失性存儲器陣列150可包括一個或多個存儲器區(qū)域,例如塊、頁等。存儲器區(qū)域可包括存儲器單元。在一個實施例中,非易失性存儲器陣列150可作為磁存儲設備160的高速緩存。數(shù)據(jù)存儲系統(tǒng)120可進一步包括其他類型的存儲器。
[0017]控制器130可被配置為從主機系統(tǒng)110的存儲設備接口模塊112 (例如,設備驅(qū)動器)接收數(shù)據(jù)和/或存儲器訪問命令。通過存儲器接口 112傳輸?shù)拇鎯υO備訪問命令可包括由主機系統(tǒng)110發(fā)布的寫數(shù)據(jù)和讀數(shù)據(jù)命令。讀和寫命令可指定用于訪問數(shù)據(jù)存儲系統(tǒng)120的邏輯地址(例如,邏輯塊地址或LBA)??刂破?30可在非易失性存儲器陣列150中執(zhí)行接收到的命令。
[0018]數(shù)據(jù)存儲系統(tǒng)120可存儲由主機系統(tǒng)110傳輸?shù)臄?shù)據(jù)。換言之,數(shù)據(jù)存儲系統(tǒng)120可作為主機系統(tǒng)110的存儲器。為了便于實現(xiàn)該功能,控制器130可實現(xiàn)邏輯接口。邏輯接口可將數(shù)據(jù)存儲系統(tǒng)的存儲器作為一組可用戶可在該處存儲數(shù)據(jù)的邏輯地址(例如,連續(xù)的地址)呈現(xiàn)給主機系統(tǒng)110。在內(nèi)部,控制器130可將邏輯地址映射到非易失性存儲器陣列150、磁存儲設備160、和/或其他存儲模塊中的各個物理位置或地址。物理位置可被配置為存儲數(shù)據(jù)??刂破?30包括被配置為執(zhí)行非易失性存儲器陣列150的垃圾收集的垃圾收集模塊132和被配置為將非易失性存儲器陣列150中存儲的(例如,高速緩存的)數(shù)據(jù)與磁存儲設備160、和/或其他存儲模塊進行同步的數(shù)據(jù)清理模塊134。在一個實施例中,垃圾收集模塊132被配置為執(zhí)行基于優(yōu)先級的垃圾收集,包括選擇將要對其執(zhí)行垃圾收集的存儲器單元(例如,塊)的任務。在一個實施例中,數(shù)據(jù)清理模塊134被配置為執(zhí)行對數(shù)據(jù)的基于優(yōu)先級的清理。
[0019]基于優(yōu)先級的垃圾收集
[0020]圖2示出了根據(jù)本發(fā)明的一個實施例的基于數(shù)據(jù)單元的優(yōu)先級信息的數(shù)據(jù)單元的排序200??墒褂眠m當?shù)臄?shù)據(jù)結構,例如列表、隊列、表格、哈希表、圖等來表示排序200。在一個實施例中,排序200可被表示為根據(jù)優(yōu)先級信息排序的隊列。例如,排序200可指示根據(jù)與所存儲數(shù)據(jù)相關聯(lián)的優(yōu)先級信息排序的存儲在非易失性存儲器陣列150中的數(shù)據(jù)單元的位置(例如,邏輯地址)。在一個實施例中,可主要根據(jù)從主機