固態硬盤訪問的方法及其固態硬盤的制作方法
【專利摘要】本發明適用于存儲【技術領域】,本發明提供一種固態硬盤訪問的方法及其固態硬盤,所述方法包括如下步驟:創建步驟:在固態硬盤的存儲空間創建多個預定大小的存儲池;存儲步驟:在所述存儲池中寫入數據,并為寫入數據的所述存儲池配置關鍵字;訪問步驟:通過所述關鍵字在對應的存儲池中訪問所述數據。借此,本發明實現了提高固態硬盤讀寫訪問的靈活性和效率。
【專利說明】固態硬盤訪問的方法及其固態硬盤
【技術領域】
[0001]本發明涉及存儲【技術領域】,尤其涉及一種固態硬盤訪問的方法及其固態硬盤。
【背景技術】
[0002]當前固態硬盤的使用方式如下,固態硬盤存在FTL (Flash translation layer,地址轉換層)管理邏輯頁地址(LPA, Logical Page Address)到物理頁地址(PPA, PhysicalPage Address)的映射表,固態硬盤在操作系統內被注冊為塊設備,并格式化為固定的文件系統,文件系統管理文件到邏輯地址的映射關系(LBA,LogicalBlock Address)。數據訪問時,文件系統下發LBA,FTL將LBA轉化為LPA,然后在將LPA轉化為PPA,最終找到用戶數據。該方法首先要將固態硬盤在系統內進行注冊設備、格式化等操作,同時存在地址關系的多次映射,訪問效率較低,靈活性不足。
[0003]綜上可知,現有的固態硬盤訪問技術在實際使用上,顯然存在不便與缺陷,所以有必要加以改進。
【發明內容】
[0004]針對上述的缺陷,本發明的目的在于提供一種固態硬盤訪問的方法及其固態硬盤,以提高固態硬盤讀寫訪問的靈活性和效率。
[0005]為了實現上述目的,本發明提供一種固態硬盤訪問的方法,其特征在于,所述方法包括如下步驟:
[0006]創建步驟:在固態硬盤的存儲空間創建多個預定大小的存儲池;
[0007]存儲步驟:在所述存儲池中寫入數據,并為寫入數據的所述存儲池配置關鍵字;
[0008]訪問步驟:通過所述關鍵字在對應的存儲池中訪問所述數據。
[0009]根據所述的方法,在所述創建步驟中,在所述固態硬盤的存儲空間創建多個不同大小的存儲池;
[0010]每個所述存儲池的大小大于或等于一個閃存頁的大小。
[0011]根據所述的方法,所述存儲步驟包括:
[0012]接收用戶在所述固態硬盤寫入數據的請求以及對存儲池指定的指令,將所述數據寫入用戶指定的存儲池;
[0013]為寫入所述數據的存儲池配置與所述存儲池的物理地址對應的關鍵字;
[0014]建立所述關鍵字與所述存儲池的物理地址的關系映射列表;
[0015]所述訪問步驟包括:
[0016]接收用戶對數據的訪問請求,并通過所述數據的關鍵字在所述關系映射列表查找對應的物理地址;
[0017]在所述物理地址下讀取對應的所述數據。
[0018]根據所述的方法,所述方法還包括:
[0019]修改步驟:根據用戶對所述存儲池存儲的數據進行修改的請求,對所述存儲池存儲的數據進行修改,并且調整所述關系映射列表;和/或
[0020]垃圾回收步驟:根據預設的垃圾回收機制,對所述存儲池執行垃圾回收。
[0021]根據所述的方法,所述修改步驟包括:
[0022]接收用戶對寫入的所述數據進行修改的指令,對所述數據及其對應的關鍵字進行修改;
[0023]從所述數據修改前存儲的存儲池中劃分出新的物理地址存儲修后的數據,并更新所述關系映射列表;
[0024]所述垃圾回收步驟包括:
[0025]接收用戶釋放或改寫任一所述關鍵字對應的數據的指令,將在所述關鍵字對應的物理地址下存儲的數據設置為無效;
[0026]當所述存儲池的物理塊中的數據全部無效時,將所述物理塊擦除;或者
[0027]當所述存儲池的物理塊中存在低于預設閾值大小的有效數據時,將所述有效數據遷移到新的物理地址中,并修改所述有效數據對應的物理地址,并將所述有效數據遷移前存儲的物理塊擦除;
[0028]在到達預設的所述固態硬盤的垃圾回收閾值時,啟動所述固態硬盤的垃圾回收。
[0029]為了實現本發明的另一發明目的,本發明還提供了一種固態硬盤,包括:
[0030]創建模塊,用于在固態硬盤的存儲空間創建多個預定大小的存儲池;
[0031]存儲模塊,用于在所述存儲池中寫入數據,并為寫入數據的所述存儲池配置關鍵字;
[0032]訪問模塊,通過所述關鍵字在對應的存儲池中訪問所述數據。
[0033]根據所述的固態硬盤,所述創建模塊在所述固態硬盤的存儲空間創建多個不同大小的存儲池;
[0034]每個所述存儲池的大小大于或等于一個閃存頁的大小。
[0035]根據所述的固態硬盤,所述存儲模塊包括:
[0036]寫入子模塊,用于接收用戶在所述固態硬盤寫入數據的請求以及對存儲池指定的指令,將所述數據寫入用戶指定的存儲池;
[0037]匹配字模塊,用于為寫入所述數據的存儲池配置與所述存儲池的物理地址對應的關鍵字;
[0038]建立子模塊,用于建立所述關鍵字與所述存儲池的物理地址的關系映射列表;
[0039]所述訪問模塊包括:
[0040]接收子模塊,用于接收用戶對數據的訪問請求,并通過所述數據的關鍵字在所述關系映射列表查找對應的物理地址;
[0041]讀取子模塊,用于在所述物理地址下讀取對應的所述數據。
[0042]根據所述的固態硬盤,所述固態硬盤還包括:
[0043]修改模塊:根據用戶對所述存儲池存儲的數據進行修改的請求,對所述存儲池存儲的數據進行修改,并且調整所述關系映射列表;和/或
[0044]垃圾回收模塊:根據預設的垃圾回收機制,對所述存儲池執行垃圾回收。
[0045]根據所述的固態硬盤,所述修改模塊包括:
[0046]修改子模塊,用于接收用戶對寫入的所述數據進行修改的指令,對所述數據對應的關鍵字進行修改;
[0047]更新子模塊,用于從所述數據修改前存儲的存儲池中劃分出新的物理地址存儲修后的數據,并更新所述關系映射列表;
[0048]所述垃圾回收模塊包括:
[0049]設置子模塊,用于接收用戶釋放或改寫任一所述關鍵字對應的數據的指令,將在所述關鍵字對應的物理地址下存儲的數據設置為無效;
[0050]擦除子模塊,用于當所述存儲池的物理塊中數據全部無效時,將所述物理塊擦除;或者
[0051]遷移子模塊,用于當所述存儲池的物理塊中存在低于預設閾值大小的有效數據時,將所述有效數據遷移到新的物理地址中,并修改所述有效數據對應的物理地址,并將所述有效數據遷移前存儲的物理塊擦除;
[0052]回收子模塊,用于在到達預設的所述固態硬盤的垃圾回收閾值時,啟動所述固態硬盤的垃圾回收。
[0053]本發明提出了固態硬盤訪問的方法及其固態硬盤,該方法通過用戶通過定義關鍵字申請固定大小的存儲空間,存儲空間寫入數據;讀取數據時,通過關鍵字進行獲取已寫入的數據;數據無效時,用戶主動刪除該關鍵字,該空間由系統回收;固態硬盤系統維護用戶關鍵字與閃存物理地址的映射關系;存儲池按照大小分級管理;在固態硬盤系統空間不足時,啟動垃圾回收機制釋放閃存頁或塊,將其再次加入分配池。實現用戶直接訪問和控制存儲資源,減少文件系統以及多次地址映射開銷,提高閃存讀寫訪問的靈活性和效率。
【專利附圖】
【附圖說明】
[0054]圖1是本發明第一實施例提供的固態硬盤結構示意圖;
[0055]圖2是本發明第二、三、四實施例提供的固態硬盤結構示意圖;
[0056]圖3是本發明第五實施例提供的固態硬盤訪問的方法流程圖;
[0057]圖4是本發明一個實施例提供的固態硬盤結構示意圖。
【具體實施方式】
[0058]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
[0059]參見圖1,在本發明的第一實施例中,提供了 一種固態硬盤100,包括:
[0060]創建模塊10,用于在固態硬盤100的存儲空間創建多個預定大小的存儲池;
[0061]存儲模塊20,用于在所述存儲池中寫入數據,并為寫入數據的所述存儲池配置關鍵字;
[0062]訪問模塊30,通過所述關鍵字在對應的存儲池中訪問所述數據。
[0063]在本發明的第一實施例中,提供的固態硬盤100包括創建模塊10、存儲模塊20以及訪問模塊30。首先,通過創建模塊10創建多個預定大小的存儲池;這些存儲池的大小可以根據用戶存儲數據的要求進行設定。在用戶寫入數據時,通過存儲模塊20將該數據寫入多個存儲池的一個或者多個,并且為已經寫入數據的存儲池配置關鍵字,該關鍵字是唯一的。最后在用戶需要訪問數據時,通過訪問模塊30輸入該數據的關鍵字,由關鍵字查找到對應的數據所存儲的存儲池,在該存儲池中讀取相應的數據。優選的,創建模塊10在固態硬盤100的存儲空間創建多個不同大小的存儲池;每個所述存儲池的大小大于或等于一個閃存頁的大小。即每個存儲池的大小是不同的,例如在固態硬盤100上創建不同級別的存儲池,每個存儲池存放不同大小的數據塊如512B、1KB、4KB、8KB、1MB等,存儲池占用最小空間不小于一個閃存頁。用戶可自定義存儲池中數據塊大小,數據塊大小為512B* (2~x),其中X為非負整數。
[0064]參見圖2,在本發明的第二實施例中,存儲模塊20包括:
[0065]寫入子模塊21,用于接收用戶在所述固態硬盤100寫入數據的請求以及對存儲池指定的指令,將所述數據寫入用戶指定的存儲池;
[0066]匹配子模塊22,用于為寫入所述數據的存儲池配置與所述存儲池的物理地址對應的關鍵字;
[0067]建立子模塊23,用于建立所述關鍵字與所述存儲池的物理地址的關系映射列表;
[0068]所述訪問模塊30包括:
[0069]接收子模塊31,用于接收用戶對數據的訪問請求,并通過所述數據的關鍵字在所述關系映射列表查找對應的物理地址;
[0070]讀取子模塊32,用于在所述物理地址下讀取對應的所述數據。
[0071]在該實施例中,寫入子模塊21接收用戶在所述固態硬盤100寫入數據的請求,并且用戶還根據其寫入數據的需求,指定將該數據存儲于固態硬盤100中已劃分的哪個存儲池中。匹配子模塊22將寫入的數據的存儲池的物理地址配置關鍵字,該關鍵字是唯一的,并且建立子模塊23將建立關鍵字與所述存儲池的物理地址的關系映射列表,多個存儲池與其對應的關鍵字的映射信息均顯示在該關系映射列表種。該關鍵字可以是字母或字母組合或者是數字組合,當然也可以是中文或者是字符串,例如:abc、123a、財務數據等。用戶在進行固態硬盤100存儲數據訪問時,接收子模塊31將接收用戶對已存儲的數據的訪問請求,并通過所述數據的關鍵字在所述關系映射列表查找對應的物理地址;最后,由讀取子模塊32在所述物理地址下讀取對應的數據。
[0072]參見圖2,在本發明的第三實施例中,固態硬盤100還包括:
[0073]修改模塊40,根據用戶對所述存儲池存儲的數據進行修改的請求,對所述存儲池存儲的數據進行修改,并且調整所述關系映射列表;和/或
[0074]垃圾回收模塊50,根據預設的垃圾回收機制,對所述存儲池執行垃圾回收。
[0075]在該實施例中,在用戶需要對存儲池存儲的數據進行修改時,將通過修改模塊40所述存儲池存儲的數據進行修改,在修改的過程中,需要將修改后的數據存儲到新的物理地址中去,因此需要調整所述關系映射列表,以使后續數據的讀取提供準確的關系映射列表信息。并且,在多次刪除及修改數據的過程中,將會不斷的產生垃圾,因此,可以預設垃圾回收機制,在達到需要執行垃圾回收條件時,通過垃圾回收模塊50對所述存儲池執行垃圾回收。
[0076]參見圖2,在本發明的第四實施例中,修改模塊40包括:
[0077]修改子模塊41,用于接收用戶對寫入的所述數據進行修改的指令,對所述數據及其對應的關鍵字進行修改;[0078]更新子模塊42,用于從所述數據修改前存儲的存儲池中劃分出新的物理地址存儲修后的數據,并更新所述關系映射列表;
[0079]所述垃圾回收模塊50包括:
[0080]設置子模塊51,用于接收用戶釋放或改寫任一所述關鍵字對應的數據的指令,將在所述關鍵字對應的物理地址下存儲的數據設置為無效;
[0081]擦除子模塊52,用于當所述存儲池的物理塊中數據全部無效時,將所述物理塊擦除;或者
[0082]遷移子模塊53,用于當所述存儲池的物理塊中存在低于預設閾值大小的有效數據時,將所述有效數據遷移到新的物理地址中,并修改所述有效數據對應的物理地址,并將所述有效數據遷移前存儲的物理塊擦除;
[0083]回收子模塊54,用于在到達預設的所述固態硬盤100的垃圾回收閾值時,啟動所述固態硬盤100的垃圾回收。
[0084]在該實施例中,修改子模塊41接收用戶對寫入的所述數據進行修改的指令,對所述數據進行修改,并且還將修改該數據對應的關鍵字;更新子模塊42將從所述數據修改前存儲的存儲池中劃分出新的物理地址存儲修后的數據,并更新所述關系映射列表,增加記錄修改后的數據所對應的物理地址。另一方面,設置子模塊51接收用戶釋放或改寫任一所述關鍵字對應的數據的指令,將在所述關鍵字對應的物理地址下存儲的數據設置為無效;由此保證有效數據的正常訪問。當所述存儲池的物理塊中的數據全部無效時,擦除子模塊52將所述物理塊擦除,以提供更多有效的存儲空間供用戶使用。當所述存儲池的物理塊中存在低于預設閾值大小的有效數據時,遷移子模塊53將所述有效數據遷移到新的物理地址中,并修改所述有效數據對應的物理地址,并將所述有效數據遷移前存儲的物理塊擦除;由此保證了有效數據的正常訪問,同時也將無效物理塊中進行擦除,以及時的進行固態硬盤100的垃圾回收。回收子模塊54在到達預設的所述固態硬盤100的垃圾回收閾值時,啟動所述固態硬盤100的垃圾回收。例如,預設定時每周對固態硬盤100進行一次垃圾回收;或者是在預設固態硬盤100可用的存儲空間剩余達到預設的20%時進行垃圾回收操作,將無效的物理塊進行擦除。
[0085]在上述多個實施例中,不需要將固態硬盤100在系統內注冊為塊設備及創建文件系統,同時不存在多次地址映射,用戶通過自定義的關鍵字,通過一級映射關系訪問數據,提高了訪問數據的效率和靈活性。并且固態硬盤100的多個模塊可以是內置于固態硬盤100的軟件單元,硬件單元或軟硬件結合單元。
[0086]參見圖3,在本發明的第五實施例中,提供了固態硬盤訪問的方法,所述方法包括如下步驟:
[0087]步驟S301中,創建模塊10在固態硬盤100的存儲空間創建多個預定大小的存儲池;該步驟為創建步驟;
[0088]步驟S302中,存儲模塊20在所述存儲池中寫入數據,并為寫入數據的所述存儲池配置關鍵字;該步驟為存儲步驟;
[0089]步驟S303中,訪問模塊30通過所述關鍵字在對應的存儲池中訪問所述數據。該步驟為訪問步驟。
[0090]在該實施例中,用戶可以通過創建模塊10可以定義關鍵字,并申請固定大小的存儲空間,存儲模塊20在存儲空間寫入數據;訪問模塊30讀取數據時,通過關鍵字進行獲取已寫入的數據;該方法實現用戶直接訪問和控制存儲資源,減少文件系統以及多次地址映射開銷,提高閃存讀寫訪問的靈活性和效率,以及提高數據讀寫訪問效率,用戶可根據應用特點以靈活高效的方式控制數據存儲和訪問。
[0091]在本發明的第六實施例中,所述步驟S301中,創建模塊10在所述固態硬盤100的存儲空間創建多個不同大小的存儲池;
[0092]每個所述存儲池的大小大于或等于一個閃存頁的大小。
[0093]在該實施例中,用戶可定制的存儲池數據塊大小級別;根據用戶的不同需求將固態硬盤的存儲空間劃分為多個不同大小的存儲池,當然也可以將多個存儲池劃分為同樣大小的。
[0094]在本發明的第七實施例中,所述存儲步驟包括:
[0095]寫入子模塊21接收用戶在所述固態硬盤100寫入數據的請求以及對存儲池指定的指令,將所述數據寫入用戶指定的存儲池;
[0096]匹配子模塊22為寫入所述數據的存儲池配置與所述存儲池的物理地址對應的關鍵字;
[0097]建立子模塊23建立所述關鍵字與所述存儲池的物理地址的關系映射列表;
[0098]所述訪問步驟包括:
[0099]接收子模塊31接收用戶對數據的訪問請求,并通過所述數據的關鍵字在所述關系映射列表查找對應的物理地址;
[0100]讀取子模塊32在所述物理地址下讀取對應的所述數據。
[0101]在該實施例中,通過鍵值對保存關鍵字到閃存物理地址映射關系。在訪問數據時通過關鍵字對固態硬盤數據進行讀寫訪問。
[0102]在本發明的第八實施例中,所述方法還包括:
[0103]修改步驟:修改模塊40根據用戶對所述存儲池存儲的數據進行修改的請求,對所述存儲池存儲的數據進行修改,并且調整所述關系映射列表;和/或
[0104]垃圾回收步驟:垃圾回收模塊50根據預設的垃圾回收機制,對所述存儲池執行垃圾回收。
[0105]在本發明的第九實施例中,所述修改步驟包括:
[0106]修改子模塊41接收用戶對寫入的所述數據進行修改的指令,對所述數據對應的關鍵字進行修改;
[0107]更新子模塊42從所述數據修改前存儲的存儲池中劃分出新的物理地址存儲修后的數據,并更新所述關系映射列表;
[0108]所述垃圾回收步驟包括:
[0109]設置子模塊51接收用戶釋放或改寫任一所述關鍵字對應的數據的指令,將在所述關鍵字對應的物理地址下存儲的數據設置為無效;
[0110]當所述存儲池的物理塊中的數據全部無效時,擦除子模塊52將所述物理塊擦除;或者
[0111]當所述存儲池的物理塊中存在低于預設閾值大小的有效數據時,遷移子模塊53將所述有效數據遷移到新的物理地址中,并修改所述有效數據對應的物理地址,并將所述有效數據遷移前存儲的物理塊擦除;
[0112]在到達預設的所述固態硬盤100的垃圾回收閾值時,回收子模塊54啟動所述固態硬盤100的垃圾回收。
[0113]由于用戶寫入數據時,需要指定數據存放的存儲池。同時需要申請關鍵字,分配存儲的物理地址,該關鍵字與物理地址的映射管理,將被記錄和保存下來;存儲池分配閃存物理地址用于寫入用戶數據;當存儲池中的有效頁被使用完時,自動對存儲池進行擴容。因此,在該實施例中,用戶改寫數據時,根據該數據的原關鍵字進行改寫,存儲池會分配新的物理地址,并更新該鍵值對;用戶讀取數據時,根據該數據的關鍵字,獲取對應的物理地址讀取數據。寫入數據時,通過獲取的物理地址,調用驅動程序接口,下發寫命令,將數據寫到對應的物理地址;讀取數據時,通過獲取的物理地址,調用驅動程序接口,下發讀命令,讀取對應物理地址的數據。
[0114]另外,當用戶釋放或改寫某個關鍵字數據時,對應的物理地址數據設置為無效;設置垃圾回收閾值,如剩余空間不足10%時,啟動垃圾回收;當閃存物理塊數據全部無無效時,該物理塊會被擦除,重新作為空閑塊被存儲池利用;當物理塊存在少量有效數據時,該數據被搬移到新的物理地址中,并修改該數據對應的鍵值對,搬移后該物理塊再被擦除。優選的,當系統上電時,從固態硬盤讀取信息,恢復存儲池信息,并恢復鍵值對映射關系。
[0115]參見圖4,在本發明的一個實施例中,提供的固態硬盤100包括:存儲池管理模塊101、鍵值對管理模塊102、讀寫訪問模塊103、垃圾回收模塊50以及上電恢復模塊105。其中,存儲池管理模塊101在固態硬盤上創建不同級別的存儲池,每個存儲池存放不同大小的數據塊如512B、1KB、4KB、8KB、1MB等,存儲池占用最小空間不小于一個閃存頁;用戶可自定義存儲池中數據塊大小,數據塊大小為512B* (2~x),其中X為非負整數;用戶寫入數據時,需要指定數據存放的存儲池。存儲池分配閃存物理地址用于寫入用戶數據;當存儲池中的有效頁被使用完時,自動對存儲池進行擴容。該存儲池管理模塊101實現創建模塊10和/或存儲模塊20的功能。
[0116]在用戶寫入新數據時,需要申請關鍵字,由存儲池管理模塊101分配存儲的物理地址,該關鍵字與物理地址的映射管理,將被鍵值對管理模塊102記錄和保存下來;用戶改寫數據時,根據該數據的原關鍵字進行改寫,存儲池會分配新的物理地址,并更新該鍵值對;用戶讀取數據時,根據該數據的關鍵字,獲取對應的物理地址讀取數據。該鍵值對管理模塊102實現修改模塊40和/或存儲模塊20的對關鍵字及物理地址管理的功能。
[0117]讀寫訪問模塊103在寫入數據時,通過獲取的物理地址,調用驅動程序接口,下發寫命令,將數據寫到對應的物理地址;讀取數據時,讀寫訪問模塊103通過獲取的物理地址,調用驅動程序接口,下發讀命令,讀取對應物理地址的數據。該讀寫訪問模塊103實現訪問模塊30的功能。
[0118]當用戶釋放或改寫某個關鍵字數據時,垃圾回收模塊50將對應的物理地址數據設置為無效;設置垃圾回收閾值,如剩余空間不足10%時,啟動垃圾回收;當閃存物理塊數據全部無無效時,該物理塊會被擦除,重新作為空閑塊被存儲池利用;當物理塊存在少量有效數據時,該數據被搬移到新的物理地址中,并修改該數據對應的鍵值對,搬移后該物理塊再被擦除。當固態硬盤100系統上電時,上電恢復模塊105從固態硬盤讀取信息,恢復存儲池信息,并恢復鍵值對映射關系。[0119]因此,該實施例提供的固態硬盤100是通過一級映射關系直接讀寫固態存儲設備;通過鍵值對保存關鍵字到閃存物理地址映射關系,通過關鍵字對固態硬盤數據進行讀寫訪問;用戶可定制的存儲池數據塊大小級別;存儲池根據數據多少可自動擴容。能夠提高數據讀寫訪問效率,用戶可根據應用特點以靈活高效的方式控制數據存儲和訪問。
[0120]綜上所述,本發明提出了固態硬盤訪問的方法及其固態硬盤,該方法通過用戶通過定義關鍵字申請固定大小的存儲空間,存儲空間寫入數據;讀取數據時,通過關鍵字進行獲取已寫入的數據;數據無效時,用戶主動刪除該關鍵字,該空間由系統回收;固態硬盤系統維護用戶關鍵字與閃存物理地址的映射關系;存儲池按照大小分級管理;在固態硬盤系統空間不足時,啟動垃圾回收機制釋放閃存頁或塊,將其再次加入分配池。實現用戶直接訪問和控制存儲資源,減少文件系統以及多次地址映射開銷,提高閃存讀寫訪問的靈活性和效率。
[0121]當然,本發明還可有其它多種實施例,在不背離本發明精神及其實質的情況下,熟悉本領域的技術人員當可根據本發明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發明所附的權利要求的保護范圍。
【權利要求】
1.一種固態硬盤訪問的方法,其特征在于,所述方法包括如下步驟: 創建步驟:在固態硬盤的存儲空間創建多個預定大小的存儲池; 存儲步驟:在所述存儲池中寫入數據,并為寫入數據的所述存儲池配置關鍵字; 訪問步驟:通過所述關鍵字在對應的存儲池中訪問所述數據。
2.根據權利要求1所述的方法,其特征在于,在所述創建步驟中,在所述固態硬盤的存儲空間創建多個不同大小的存儲池; 每個所述存儲池的大小大于或等于一個閃存頁的大小。
3.根據權利要求1所述的方法,其特征在于,所述存儲步驟包括: 接收用戶在所述固態硬盤寫入數據的請求以及對存儲池指定的指令,將所述數據寫入用戶指定的存儲池; 為寫入所述數據的存儲池配置與所述存儲池的物理地址對應的關鍵字; 建立所述關鍵字與所述存儲池的物理地址的關系映射列表; 所述訪問步驟包括: 接收用戶對數據的訪問請求,并通過所述數據的關鍵字在所述關系映射列表查找對應的物理地址; 在所述物理地址下讀取對應的所述數據。
4.根據權利要求3所述的方法,其特征在于,所述方法還包括: 修改步驟:根據用戶對所述存儲池存儲的數據進行修改的請求,對所述存儲池存儲的數據進行修改,并且調整所述關系映射列表;和/或 垃圾回收步驟:根據預設的垃圾回收機制,對所述存儲池執行垃圾回收。
5.根據權利要求4所述的方法,其特征在于,所述修改步驟包括: 接收用戶對寫入的所述數據進行修改的指令,對所述數據及其對應的關鍵字進行修改; 從所述數據修改前存儲的存儲池中劃分出新的物理地址存儲修后的數據,并更新所述關系映射列表; 所述垃圾回收步驟包括: 接收用戶釋放或改寫任一所述關鍵字對應的數據的指令,將在所述關鍵字對應的物理地址下存儲的數據設置為無效; 當所述存儲池的物理塊中的數據全部無效時,將所述物理塊擦除;或者當所述存儲池的物理塊中存在低于預設閾值大小的有效數據時,將所述有效數據遷移到新的物理地址中,并修改所述有效數據對應的物理地址,并將所述有效數據遷移前存儲的物理塊擦除; 在到達預設的所述固態硬盤的垃圾回收閾值時,啟動所述固態硬盤的垃圾回收。
6.一種固態硬盤,其特征在于,包括: 創建模塊,用于在固態硬盤的存儲空間創建多個預定大小的存儲池; 存儲模塊,用于在所述存儲池中寫入數據,并為寫入數據的所述存儲池配置關鍵字; 訪問模塊,通過所述關鍵字在對應的存儲池中訪問所述數據。
7.根據權利要求6所述的固態硬盤,其特征在于,所述創建模塊在所述固態硬盤的存儲空間創建多個不同大小的存儲池;每個所述存儲池的大小大于或等于一個閃存頁的大小。
8.根據權利要求6所述的固態硬盤,其特征在于,所述存儲模塊包括: 寫入子模塊,用于接收用戶在所述固態硬盤寫入數據的請求以及對存儲池指定的指令,將所述數據寫入用戶指定的存儲池; 匹配字模塊,用于為寫入所述數據的存儲池配置與所述存儲池的物理地址對應的關鍵字; 建立子模塊,用于建立所述關鍵字與所述存儲池的物理地址的關系映射列表; 所述訪問模塊包括: 接收子模塊,用于接收用戶對數據的訪問請求,并通過所述數據的關鍵字在所述關系映射列表查找對應的物理地址; 讀取子模塊,用于在所述物理地址下讀取對應的所述數據。
9.根據權利要求8所述的固態硬盤,其特征在于,所述固態硬盤還包括: 修改模塊:根據用戶對所述 存儲池存儲的數據進行修改的請求,對所述存儲池存儲的數據進行修改,并且調整所 述關系映射列表;和/或 垃圾回收模塊:根據預設的垃圾回收機制,對所述存儲池執行垃圾回收。
10.根據權利要求8所述的固態硬盤,其特征在于,所述修改模塊包括: 修改子模塊,用于接收用戶對寫入的所述數據進行修改的指令,對所述數據對應的關鍵字進行修改; 更新子模塊,用于從所述數據修改前存儲的存儲池中劃分出新的物理地址存儲修后的數據,并更新所述關系映射列表; 所述垃圾回收模塊包括: 設置子模塊,用于接收用戶釋放或改寫任一所述關鍵字對應的數據的指令,將在所述關鍵字對應的物理地址下存儲的數據設置為無效; 擦除子模塊,用于當所述存儲池的物理塊中數據全部無效時,將所述物理塊擦除;或者遷移子模塊,用于當所述存儲池的物理塊中存在低于預設閾值大小的有效數據時,將所述有效數據遷移到新的物理地址中,并修改所述有效數據對應的物理地址,并將所述有效數據遷移前存儲的物理塊擦除; 回收子模塊,用于在到達預設的所述固態硬盤的垃圾回收閾值時,啟動所述固態硬盤的垃圾回收。
【文檔編號】G06F3/06GK103744614SQ201310695406
【公開日】2014年4月23日 申請日期:2013年12月17日 優先權日:2013年12月17日
【發明者】李明星 申請人:記憶科技(深圳)有限公司