国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      固態(tài)硬盤(pán)訪(fǎng)問(wèn)的方法及其固態(tài)硬盤(pán)的制作方法

      文檔序號(hào):6524235閱讀:327來(lái)源:國(guó)知局
      固態(tài)硬盤(pán)訪(fǎng)問(wèn)的方法及其固態(tài)硬盤(pán)的制作方法
      【專(zhuān)利摘要】本發(fā)明適用于存儲(chǔ)【技術(shù)領(lǐng)域】,本發(fā)明提供一種固態(tài)硬盤(pán)訪(fǎng)問(wèn)的方法及其固態(tài)硬盤(pán),所述方法包括如下步驟:創(chuàng)建步驟:在固態(tài)硬盤(pán)的存儲(chǔ)空間創(chuàng)建多個(gè)預(yù)定大小的存儲(chǔ)池;存儲(chǔ)步驟:在所述存儲(chǔ)池中寫(xiě)入數(shù)據(jù),并為寫(xiě)入數(shù)據(jù)的所述存儲(chǔ)池配置關(guān)鍵字;訪(fǎng)問(wèn)步驟:通過(guò)所述關(guān)鍵字在對(duì)應(yīng)的存儲(chǔ)池中訪(fǎng)問(wèn)所述數(shù)據(jù)。借此,本發(fā)明實(shí)現(xiàn)了提高固態(tài)硬盤(pán)讀寫(xiě)訪(fǎng)問(wèn)的靈活性和效率。
      【專(zhuān)利說(shuō)明】固態(tài)硬盤(pán)訪(fǎng)問(wèn)的方法及其固態(tài)硬盤(pán)
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及存儲(chǔ)【技術(shù)領(lǐng)域】,尤其涉及一種固態(tài)硬盤(pán)訪(fǎng)問(wèn)的方法及其固態(tài)硬盤(pán)。
      【背景技術(shù)】
      [0002]當(dāng)前固態(tài)硬盤(pán)的使用方式如下,固態(tài)硬盤(pán)存在FTL (Flash translation layer,地址轉(zhuǎn)換層)管理邏輯頁(yè)地址(LPA, Logical Page Address)到物理頁(yè)地址(PPA, PhysicalPage Address)的映射表,固態(tài)硬盤(pán)在操作系統(tǒng)內(nèi)被注冊(cè)為塊設(shè)備,并格式化為固定的文件系統(tǒng),文件系統(tǒng)管理文件到邏輯地址的映射關(guān)系(LBA,LogicalBlock Address)。數(shù)據(jù)訪(fǎng)問(wèn)時(shí),文件系統(tǒng)下發(fā)LBA,F(xiàn)TL將LBA轉(zhuǎn)化為L(zhǎng)PA,然后在將LPA轉(zhuǎn)化為PPA,最終找到用戶(hù)數(shù)據(jù)。該方法首先要將固態(tài)硬盤(pán)在系統(tǒng)內(nèi)進(jìn)行注冊(cè)設(shè)備、格式化等操作,同時(shí)存在地址關(guān)系的多次映射,訪(fǎng)問(wèn)效率較低,靈活性不足。
      [0003]綜上可知,現(xiàn)有的固態(tài)硬盤(pán)訪(fǎng)問(wèn)技術(shù)在實(shí)際使用上,顯然存在不便與缺陷,所以有必要加以改進(jìn)。

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

      [0004]針對(duì)上述的缺陷,本發(fā)明的目的在于提供一種固態(tài)硬盤(pán)訪(fǎng)問(wèn)的方法及其固態(tài)硬盤(pán),以提高固態(tài)硬盤(pán)讀寫(xiě)訪(fǎng)問(wèn)的靈活性和效率。
      [0005]為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種固態(tài)硬盤(pán)訪(fǎng)問(wèn)的方法,其特征在于,所述方法包括如下步驟:
      [0006]創(chuàng)建步驟:在固態(tài)硬盤(pán)的存儲(chǔ)空間創(chuàng)建多個(gè)預(yù)定大小的存儲(chǔ)池;
      [0007]存儲(chǔ)步驟:在所述存儲(chǔ)池中寫(xiě)入數(shù)據(jù),并為寫(xiě)入數(shù)據(jù)的所述存儲(chǔ)池配置關(guān)鍵字;
      [0008]訪(fǎng)問(wèn)步驟:通過(guò)所述關(guān)鍵字在對(duì)應(yīng)的存儲(chǔ)池中訪(fǎng)問(wèn)所述數(shù)據(jù)。
      [0009]根據(jù)所述的方法,在所述創(chuàng)建步驟中,在所述固態(tài)硬盤(pán)的存儲(chǔ)空間創(chuàng)建多個(gè)不同大小的存儲(chǔ)池;
      [0010]每個(gè)所述存儲(chǔ)池的大小大于或等于一個(gè)閃存頁(yè)的大小。
      [0011]根據(jù)所述的方法,所述存儲(chǔ)步驟包括:
      [0012]接收用戶(hù)在所述固態(tài)硬盤(pán)寫(xiě)入數(shù)據(jù)的請(qǐng)求以及對(duì)存儲(chǔ)池指定的指令,將所述數(shù)據(jù)寫(xiě)入用戶(hù)指定的存儲(chǔ)池;
      [0013]為寫(xiě)入所述數(shù)據(jù)的存儲(chǔ)池配置與所述存儲(chǔ)池的物理地址對(duì)應(yīng)的關(guān)鍵字;
      [0014]建立所述關(guān)鍵字與所述存儲(chǔ)池的物理地址的關(guān)系映射列表;
      [0015]所述訪(fǎng)問(wèn)步驟包括:
      [0016]接收用戶(hù)對(duì)數(shù)據(jù)的訪(fǎng)問(wèn)請(qǐng)求,并通過(guò)所述數(shù)據(jù)的關(guān)鍵字在所述關(guān)系映射列表查找對(duì)應(yīng)的物理地址;
      [0017]在所述物理地址下讀取對(duì)應(yīng)的所述數(shù)據(jù)。
      [0018]根據(jù)所述的方法,所述方法還包括:
      [0019]修改步驟:根據(jù)用戶(hù)對(duì)所述存儲(chǔ)池存儲(chǔ)的數(shù)據(jù)進(jìn)行修改的請(qǐng)求,對(duì)所述存儲(chǔ)池存儲(chǔ)的數(shù)據(jù)進(jìn)行修改,并且調(diào)整所述關(guān)系映射列表;和/或
      [0020]垃圾回收步驟:根據(jù)預(yù)設(shè)的垃圾回收機(jī)制,對(duì)所述存儲(chǔ)池執(zhí)行垃圾回收。
      [0021]根據(jù)所述的方法,所述修改步驟包括:
      [0022]接收用戶(hù)對(duì)寫(xiě)入的所述數(shù)據(jù)進(jìn)行修改的指令,對(duì)所述數(shù)據(jù)及其對(duì)應(yīng)的關(guān)鍵字進(jìn)行修改;
      [0023]從所述數(shù)據(jù)修改前存儲(chǔ)的存儲(chǔ)池中劃分出新的物理地址存儲(chǔ)修后的數(shù)據(jù),并更新所述關(guān)系映射列表;
      [0024]所述垃圾回收步驟包括:
      [0025]接收用戶(hù)釋放或改寫(xiě)任一所述關(guān)鍵字對(duì)應(yīng)的數(shù)據(jù)的指令,將在所述關(guān)鍵字對(duì)應(yīng)的物理地址下存儲(chǔ)的數(shù)據(jù)設(shè)置為無(wú)效;
      [0026]當(dāng)所述存儲(chǔ)池的物理塊中的數(shù)據(jù)全部無(wú)效時(shí),將所述物理塊擦除;或者
      [0027]當(dāng)所述存儲(chǔ)池的物理塊中存在低于預(yù)設(shè)閾值大小的有效數(shù)據(jù)時(shí),將所述有效數(shù)據(jù)遷移到新的物理地址中,并修改所述有效數(shù)據(jù)對(duì)應(yīng)的物理地址,并將所述有效數(shù)據(jù)遷移前存儲(chǔ)的物理塊擦除;
      [0028]在到達(dá)預(yù)設(shè)的所述固態(tài)硬盤(pán)的垃圾回收閾值時(shí),啟動(dòng)所述固態(tài)硬盤(pán)的垃圾回收。
      [0029]為了實(shí)現(xiàn)本發(fā)明的另一發(fā)明目的,本發(fā)明還提供了一種固態(tài)硬盤(pán),包括:
      [0030]創(chuàng)建模塊,用于在固態(tài)硬盤(pán)的存儲(chǔ)空間創(chuàng)建多個(gè)預(yù)定大小的存儲(chǔ)池;
      [0031]存儲(chǔ)模塊,用于在所述存儲(chǔ)池中寫(xiě)入數(shù)據(jù),并為寫(xiě)入數(shù)據(jù)的所述存儲(chǔ)池配置關(guān)鍵字;
      [0032]訪(fǎng)問(wèn)模塊,通過(guò)所述關(guān)鍵字在對(duì)應(yīng)的存儲(chǔ)池中訪(fǎng)問(wèn)所述數(shù)據(jù)。
      [0033]根據(jù)所述的固態(tài)硬盤(pán),所述創(chuàng)建模塊在所述固態(tài)硬盤(pán)的存儲(chǔ)空間創(chuàng)建多個(gè)不同大小的存儲(chǔ)池;
      [0034]每個(gè)所述存儲(chǔ)池的大小大于或等于一個(gè)閃存頁(yè)的大小。
      [0035]根據(jù)所述的固態(tài)硬盤(pán),所述存儲(chǔ)模塊包括:
      [0036]寫(xiě)入子模塊,用于接收用戶(hù)在所述固態(tài)硬盤(pán)寫(xiě)入數(shù)據(jù)的請(qǐng)求以及對(duì)存儲(chǔ)池指定的指令,將所述數(shù)據(jù)寫(xiě)入用戶(hù)指定的存儲(chǔ)池;
      [0037]匹配字模塊,用于為寫(xiě)入所述數(shù)據(jù)的存儲(chǔ)池配置與所述存儲(chǔ)池的物理地址對(duì)應(yīng)的關(guān)鍵字;
      [0038]建立子模塊,用于建立所述關(guān)鍵字與所述存儲(chǔ)池的物理地址的關(guān)系映射列表;
      [0039]所述訪(fǎng)問(wèn)模塊包括:
      [0040]接收子模塊,用于接收用戶(hù)對(duì)數(shù)據(jù)的訪(fǎng)問(wèn)請(qǐng)求,并通過(guò)所述數(shù)據(jù)的關(guān)鍵字在所述關(guān)系映射列表查找對(duì)應(yīng)的物理地址;
      [0041]讀取子模塊,用于在所述物理地址下讀取對(duì)應(yīng)的所述數(shù)據(jù)。
      [0042]根據(jù)所述的固態(tài)硬盤(pán),所述固態(tài)硬盤(pán)還包括:
      [0043]修改模塊:根據(jù)用戶(hù)對(duì)所述存儲(chǔ)池存儲(chǔ)的數(shù)據(jù)進(jìn)行修改的請(qǐng)求,對(duì)所述存儲(chǔ)池存儲(chǔ)的數(shù)據(jù)進(jìn)行修改,并且調(diào)整所述關(guān)系映射列表;和/或
      [0044]垃圾回收模塊:根據(jù)預(yù)設(shè)的垃圾回收機(jī)制,對(duì)所述存儲(chǔ)池執(zhí)行垃圾回收。
      [0045]根據(jù)所述的固態(tài)硬盤(pán),所述修改模塊包括:
      [0046]修改子模塊,用于接收用戶(hù)對(duì)寫(xiě)入的所述數(shù)據(jù)進(jìn)行修改的指令,對(duì)所述數(shù)據(jù)對(duì)應(yīng)的關(guān)鍵字進(jìn)行修改;
      [0047]更新子模塊,用于從所述數(shù)據(jù)修改前存儲(chǔ)的存儲(chǔ)池中劃分出新的物理地址存儲(chǔ)修后的數(shù)據(jù),并更新所述關(guān)系映射列表;
      [0048]所述垃圾回收模塊包括:
      [0049]設(shè)置子模塊,用于接收用戶(hù)釋放或改寫(xiě)任一所述關(guān)鍵字對(duì)應(yīng)的數(shù)據(jù)的指令,將在所述關(guān)鍵字對(duì)應(yīng)的物理地址下存儲(chǔ)的數(shù)據(jù)設(shè)置為無(wú)效;
      [0050]擦除子模塊,用于當(dāng)所述存儲(chǔ)池的物理塊中數(shù)據(jù)全部無(wú)效時(shí),將所述物理塊擦除;或者
      [0051]遷移子模塊,用于當(dāng)所述存儲(chǔ)池的物理塊中存在低于預(yù)設(shè)閾值大小的有效數(shù)據(jù)時(shí),將所述有效數(shù)據(jù)遷移到新的物理地址中,并修改所述有效數(shù)據(jù)對(duì)應(yīng)的物理地址,并將所述有效數(shù)據(jù)遷移前存儲(chǔ)的物理塊擦除;
      [0052]回收子模塊,用于在到達(dá)預(yù)設(shè)的所述固態(tài)硬盤(pán)的垃圾回收閾值時(shí),啟動(dòng)所述固態(tài)硬盤(pán)的垃圾回收。
      [0053]本發(fā)明提出了固態(tài)硬盤(pán)訪(fǎng)問(wèn)的方法及其固態(tài)硬盤(pán),該方法通過(guò)用戶(hù)通過(guò)定義關(guān)鍵字申請(qǐng)固定大小的存儲(chǔ)空間,存儲(chǔ)空間寫(xiě)入數(shù)據(jù);讀取數(shù)據(jù)時(shí),通過(guò)關(guān)鍵字進(jìn)行獲取已寫(xiě)入的數(shù)據(jù);數(shù)據(jù)無(wú)效時(shí),用戶(hù)主動(dòng)刪除該關(guān)鍵字,該空間由系統(tǒng)回收;固態(tài)硬盤(pán)系統(tǒng)維護(hù)用戶(hù)關(guān)鍵字與閃存物理地址的映射關(guān)系;存儲(chǔ)池按照大小分級(jí)管理;在固態(tài)硬盤(pán)系統(tǒng)空間不足時(shí),啟動(dòng)垃圾回收機(jī)制釋放閃存頁(yè)或塊,將其再次加入分配池。實(shí)現(xiàn)用戶(hù)直接訪(fǎng)問(wèn)和控制存儲(chǔ)資源,減少文件系統(tǒng)以及多次地址映射開(kāi)銷(xiāo),提高閃存讀寫(xiě)訪(fǎng)問(wèn)的靈活性和效率。
      【專(zhuān)利附圖】

      【附圖說(shuō)明】
      [0054]圖1是本發(fā)明第一實(shí)施例提供的固態(tài)硬盤(pán)結(jié)構(gòu)示意圖;
      [0055]圖2是本發(fā)明第二、三、四實(shí)施例提供的固態(tài)硬盤(pán)結(jié)構(gòu)示意圖;
      [0056]圖3是本發(fā)明第五實(shí)施例提供的固態(tài)硬盤(pán)訪(fǎng)問(wèn)的方法流程圖;
      [0057]圖4是本發(fā)明一個(gè)實(shí)施例提供的固態(tài)硬盤(pán)結(jié)構(gòu)示意圖。
      【具體實(shí)施方式】
      [0058]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
      [0059]參見(jiàn)圖1,在本發(fā)明的第一實(shí)施例中,提供了 一種固態(tài)硬盤(pán)100,包括:
      [0060]創(chuàng)建模塊10,用于在固態(tài)硬盤(pán)100的存儲(chǔ)空間創(chuàng)建多個(gè)預(yù)定大小的存儲(chǔ)池;
      [0061]存儲(chǔ)模塊20,用于在所述存儲(chǔ)池中寫(xiě)入數(shù)據(jù),并為寫(xiě)入數(shù)據(jù)的所述存儲(chǔ)池配置關(guān)鍵字;
      [0062]訪(fǎng)問(wèn)模塊30,通過(guò)所述關(guān)鍵字在對(duì)應(yīng)的存儲(chǔ)池中訪(fǎng)問(wèn)所述數(shù)據(jù)。
      [0063]在本發(fā)明的第一實(shí)施例中,提供的固態(tài)硬盤(pán)100包括創(chuàng)建模塊10、存儲(chǔ)模塊20以及訪(fǎng)問(wèn)模塊30。首先,通過(guò)創(chuàng)建模塊10創(chuàng)建多個(gè)預(yù)定大小的存儲(chǔ)池;這些存儲(chǔ)池的大小可以根據(jù)用戶(hù)存儲(chǔ)數(shù)據(jù)的要求進(jìn)行設(shè)定。在用戶(hù)寫(xiě)入數(shù)據(jù)時(shí),通過(guò)存儲(chǔ)模塊20將該數(shù)據(jù)寫(xiě)入多個(gè)存儲(chǔ)池的一個(gè)或者多個(gè),并且為已經(jīng)寫(xiě)入數(shù)據(jù)的存儲(chǔ)池配置關(guān)鍵字,該關(guān)鍵字是唯一的。最后在用戶(hù)需要訪(fǎng)問(wèn)數(shù)據(jù)時(shí),通過(guò)訪(fǎng)問(wèn)模塊30輸入該數(shù)據(jù)的關(guān)鍵字,由關(guān)鍵字查找到對(duì)應(yīng)的數(shù)據(jù)所存儲(chǔ)的存儲(chǔ)池,在該存儲(chǔ)池中讀取相應(yīng)的數(shù)據(jù)。優(yōu)選的,創(chuàng)建模塊10在固態(tài)硬盤(pán)100的存儲(chǔ)空間創(chuàng)建多個(gè)不同大小的存儲(chǔ)池;每個(gè)所述存儲(chǔ)池的大小大于或等于一個(gè)閃存頁(yè)的大小。即每個(gè)存儲(chǔ)池的大小是不同的,例如在固態(tài)硬盤(pán)100上創(chuàng)建不同級(jí)別的存儲(chǔ)池,每個(gè)存儲(chǔ)池存放不同大小的數(shù)據(jù)塊如512B、1KB、4KB、8KB、1MB等,存儲(chǔ)池占用最小空間不小于一個(gè)閃存頁(yè)。用戶(hù)可自定義存儲(chǔ)池中數(shù)據(jù)塊大小,數(shù)據(jù)塊大小為512B* (2~x),其中X為非負(fù)整數(shù)。
      [0064]參見(jiàn)圖2,在本發(fā)明的第二實(shí)施例中,存儲(chǔ)模塊20包括:
      [0065]寫(xiě)入子模塊21,用于接收用戶(hù)在所述固態(tài)硬盤(pán)100寫(xiě)入數(shù)據(jù)的請(qǐng)求以及對(duì)存儲(chǔ)池指定的指令,將所述數(shù)據(jù)寫(xiě)入用戶(hù)指定的存儲(chǔ)池;
      [0066]匹配子模塊22,用于為寫(xiě)入所述數(shù)據(jù)的存儲(chǔ)池配置與所述存儲(chǔ)池的物理地址對(duì)應(yīng)的關(guān)鍵字;
      [0067]建立子模塊23,用于建立所述關(guān)鍵字與所述存儲(chǔ)池的物理地址的關(guān)系映射列表;
      [0068]所述訪(fǎng)問(wèn)模塊30包括:
      [0069]接收子模塊31,用于接收用戶(hù)對(duì)數(shù)據(jù)的訪(fǎng)問(wèn)請(qǐng)求,并通過(guò)所述數(shù)據(jù)的關(guān)鍵字在所述關(guān)系映射列表查找對(duì)應(yīng)的物理地址;
      [0070]讀取子模塊32,用于在所述物理地址下讀取對(duì)應(yīng)的所述數(shù)據(jù)。
      [0071]在該實(shí)施例中,寫(xiě)入子模塊21接收用戶(hù)在所述固態(tài)硬盤(pán)100寫(xiě)入數(shù)據(jù)的請(qǐng)求,并且用戶(hù)還根據(jù)其寫(xiě)入數(shù)據(jù)的需求,指定將該數(shù)據(jù)存儲(chǔ)于固態(tài)硬盤(pán)100中已劃分的哪個(gè)存儲(chǔ)池中。匹配子模塊22將寫(xiě)入的數(shù)據(jù)的存儲(chǔ)池的物理地址配置關(guān)鍵字,該關(guān)鍵字是唯一的,并且建立子模塊23將建立關(guān)鍵字與所述存儲(chǔ)池的物理地址的關(guān)系映射列表,多個(gè)存儲(chǔ)池與其對(duì)應(yīng)的關(guān)鍵字的映射信息均顯示在該關(guān)系映射列表種。該關(guān)鍵字可以是字母或字母組合或者是數(shù)字組合,當(dāng)然也可以是中文或者是字符串,例如:abc、123a、財(cái)務(wù)數(shù)據(jù)等。用戶(hù)在進(jìn)行固態(tài)硬盤(pán)100存儲(chǔ)數(shù)據(jù)訪(fǎng)問(wèn)時(shí),接收子模塊31將接收用戶(hù)對(duì)已存儲(chǔ)的數(shù)據(jù)的訪(fǎng)問(wèn)請(qǐng)求,并通過(guò)所述數(shù)據(jù)的關(guān)鍵字在所述關(guān)系映射列表查找對(duì)應(yīng)的物理地址;最后,由讀取子模塊32在所述物理地址下讀取對(duì)應(yīng)的數(shù)據(jù)。
      [0072]參見(jiàn)圖2,在本發(fā)明的第三實(shí)施例中,固態(tài)硬盤(pán)100還包括:
      [0073]修改模塊40,根據(jù)用戶(hù)對(duì)所述存儲(chǔ)池存儲(chǔ)的數(shù)據(jù)進(jìn)行修改的請(qǐng)求,對(duì)所述存儲(chǔ)池存儲(chǔ)的數(shù)據(jù)進(jìn)行修改,并且調(diào)整所述關(guān)系映射列表;和/或
      [0074]垃圾回收模塊50,根據(jù)預(yù)設(shè)的垃圾回收機(jī)制,對(duì)所述存儲(chǔ)池執(zhí)行垃圾回收。
      [0075]在該實(shí)施例中,在用戶(hù)需要對(duì)存儲(chǔ)池存儲(chǔ)的數(shù)據(jù)進(jìn)行修改時(shí),將通過(guò)修改模塊40所述存儲(chǔ)池存儲(chǔ)的數(shù)據(jù)進(jìn)行修改,在修改的過(guò)程中,需要將修改后的數(shù)據(jù)存儲(chǔ)到新的物理地址中去,因此需要調(diào)整所述關(guān)系映射列表,以使后續(xù)數(shù)據(jù)的讀取提供準(zhǔn)確的關(guān)系映射列表信息。并且,在多次刪除及修改數(shù)據(jù)的過(guò)程中,將會(huì)不斷的產(chǎn)生垃圾,因此,可以預(yù)設(shè)垃圾回收機(jī)制,在達(dá)到需要執(zhí)行垃圾回收條件時(shí),通過(guò)垃圾回收模塊50對(duì)所述存儲(chǔ)池執(zhí)行垃圾回收。
      [0076]參見(jiàn)圖2,在本發(fā)明的第四實(shí)施例中,修改模塊40包括:
      [0077]修改子模塊41,用于接收用戶(hù)對(duì)寫(xiě)入的所述數(shù)據(jù)進(jìn)行修改的指令,對(duì)所述數(shù)據(jù)及其對(duì)應(yīng)的關(guān)鍵字進(jìn)行修改;[0078]更新子模塊42,用于從所述數(shù)據(jù)修改前存儲(chǔ)的存儲(chǔ)池中劃分出新的物理地址存儲(chǔ)修后的數(shù)據(jù),并更新所述關(guān)系映射列表;
      [0079]所述垃圾回收模塊50包括:
      [0080]設(shè)置子模塊51,用于接收用戶(hù)釋放或改寫(xiě)任一所述關(guān)鍵字對(duì)應(yīng)的數(shù)據(jù)的指令,將在所述關(guān)鍵字對(duì)應(yīng)的物理地址下存儲(chǔ)的數(shù)據(jù)設(shè)置為無(wú)效;
      [0081]擦除子模塊52,用于當(dāng)所述存儲(chǔ)池的物理塊中數(shù)據(jù)全部無(wú)效時(shí),將所述物理塊擦除;或者
      [0082]遷移子模塊53,用于當(dāng)所述存儲(chǔ)池的物理塊中存在低于預(yù)設(shè)閾值大小的有效數(shù)據(jù)時(shí),將所述有效數(shù)據(jù)遷移到新的物理地址中,并修改所述有效數(shù)據(jù)對(duì)應(yīng)的物理地址,并將所述有效數(shù)據(jù)遷移前存儲(chǔ)的物理塊擦除;
      [0083]回收子模塊54,用于在到達(dá)預(yù)設(shè)的所述固態(tài)硬盤(pán)100的垃圾回收閾值時(shí),啟動(dòng)所述固態(tài)硬盤(pán)100的垃圾回收。
      [0084]在該實(shí)施例中,修改子模塊41接收用戶(hù)對(duì)寫(xiě)入的所述數(shù)據(jù)進(jìn)行修改的指令,對(duì)所述數(shù)據(jù)進(jìn)行修改,并且還將修改該數(shù)據(jù)對(duì)應(yīng)的關(guān)鍵字;更新子模塊42將從所述數(shù)據(jù)修改前存儲(chǔ)的存儲(chǔ)池中劃分出新的物理地址存儲(chǔ)修后的數(shù)據(jù),并更新所述關(guān)系映射列表,增加記錄修改后的數(shù)據(jù)所對(duì)應(yīng)的物理地址。另一方面,設(shè)置子模塊51接收用戶(hù)釋放或改寫(xiě)任一所述關(guān)鍵字對(duì)應(yīng)的數(shù)據(jù)的指令,將在所述關(guān)鍵字對(duì)應(yīng)的物理地址下存儲(chǔ)的數(shù)據(jù)設(shè)置為無(wú)效;由此保證有效數(shù)據(jù)的正常訪(fǎng)問(wèn)。當(dāng)所述存儲(chǔ)池的物理塊中的數(shù)據(jù)全部無(wú)效時(shí),擦除子模塊52將所述物理塊擦除,以提供更多有效的存儲(chǔ)空間供用戶(hù)使用。當(dāng)所述存儲(chǔ)池的物理塊中存在低于預(yù)設(shè)閾值大小的有效數(shù)據(jù)時(shí),遷移子模塊53將所述有效數(shù)據(jù)遷移到新的物理地址中,并修改所述有效數(shù)據(jù)對(duì)應(yīng)的物理地址,并將所述有效數(shù)據(jù)遷移前存儲(chǔ)的物理塊擦除;由此保證了有效數(shù)據(jù)的正常訪(fǎng)問(wèn),同時(shí)也將無(wú)效物理塊中進(jìn)行擦除,以及時(shí)的進(jìn)行固態(tài)硬盤(pán)100的垃圾回收?;厥兆幽K54在到達(dá)預(yù)設(shè)的所述固態(tài)硬盤(pán)100的垃圾回收閾值時(shí),啟動(dòng)所述固態(tài)硬盤(pán)100的垃圾回收。例如,預(yù)設(shè)定時(shí)每周對(duì)固態(tài)硬盤(pán)100進(jìn)行一次垃圾回收;或者是在預(yù)設(shè)固態(tài)硬盤(pán)100可用的存儲(chǔ)空間剩余達(dá)到預(yù)設(shè)的20%時(shí)進(jìn)行垃圾回收操作,將無(wú)效的物理塊進(jìn)行擦除。
      [0085]在上述多個(gè)實(shí)施例中,不需要將固態(tài)硬盤(pán)100在系統(tǒng)內(nèi)注冊(cè)為塊設(shè)備及創(chuàng)建文件系統(tǒng),同時(shí)不存在多次地址映射,用戶(hù)通過(guò)自定義的關(guān)鍵字,通過(guò)一級(jí)映射關(guān)系訪(fǎng)問(wèn)數(shù)據(jù),提高了訪(fǎng)問(wèn)數(shù)據(jù)的效率和靈活性。并且固態(tài)硬盤(pán)100的多個(gè)模塊可以是內(nèi)置于固態(tài)硬盤(pán)100的軟件單元,硬件單元或軟硬件結(jié)合單元。
      [0086]參見(jiàn)圖3,在本發(fā)明的第五實(shí)施例中,提供了固態(tài)硬盤(pán)訪(fǎng)問(wèn)的方法,所述方法包括如下步驟:
      [0087]步驟S301中,創(chuàng)建模塊10在固態(tài)硬盤(pán)100的存儲(chǔ)空間創(chuàng)建多個(gè)預(yù)定大小的存儲(chǔ)池;該步驟為創(chuàng)建步驟;
      [0088]步驟S302中,存儲(chǔ)模塊20在所述存儲(chǔ)池中寫(xiě)入數(shù)據(jù),并為寫(xiě)入數(shù)據(jù)的所述存儲(chǔ)池配置關(guān)鍵字;該步驟為存儲(chǔ)步驟;
      [0089]步驟S303中,訪(fǎng)問(wèn)模塊30通過(guò)所述關(guān)鍵字在對(duì)應(yīng)的存儲(chǔ)池中訪(fǎng)問(wèn)所述數(shù)據(jù)。該步驟為訪(fǎng)問(wèn)步驟。
      [0090]在該實(shí)施例中,用戶(hù)可以通過(guò)創(chuàng)建模塊10可以定義關(guān)鍵字,并申請(qǐng)固定大小的存儲(chǔ)空間,存儲(chǔ)模塊20在存儲(chǔ)空間寫(xiě)入數(shù)據(jù);訪(fǎng)問(wèn)模塊30讀取數(shù)據(jù)時(shí),通過(guò)關(guān)鍵字進(jìn)行獲取已寫(xiě)入的數(shù)據(jù);該方法實(shí)現(xiàn)用戶(hù)直接訪(fǎng)問(wèn)和控制存儲(chǔ)資源,減少文件系統(tǒng)以及多次地址映射開(kāi)銷(xiāo),提高閃存讀寫(xiě)訪(fǎng)問(wèn)的靈活性和效率,以及提高數(shù)據(jù)讀寫(xiě)訪(fǎng)問(wèn)效率,用戶(hù)可根據(jù)應(yīng)用特點(diǎn)以靈活高效的方式控制數(shù)據(jù)存儲(chǔ)和訪(fǎng)問(wèn)。
      [0091]在本發(fā)明的第六實(shí)施例中,所述步驟S301中,創(chuàng)建模塊10在所述固態(tài)硬盤(pán)100的存儲(chǔ)空間創(chuàng)建多個(gè)不同大小的存儲(chǔ)池;
      [0092]每個(gè)所述存儲(chǔ)池的大小大于或等于一個(gè)閃存頁(yè)的大小。
      [0093]在該實(shí)施例中,用戶(hù)可定制的存儲(chǔ)池?cái)?shù)據(jù)塊大小級(jí)別;根據(jù)用戶(hù)的不同需求將固態(tài)硬盤(pán)的存儲(chǔ)空間劃分為多個(gè)不同大小的存儲(chǔ)池,當(dāng)然也可以將多個(gè)存儲(chǔ)池劃分為同樣大小的。
      [0094]在本發(fā)明的第七實(shí)施例中,所述存儲(chǔ)步驟包括:
      [0095]寫(xiě)入子模塊21接收用戶(hù)在所述固態(tài)硬盤(pán)100寫(xiě)入數(shù)據(jù)的請(qǐng)求以及對(duì)存儲(chǔ)池指定的指令,將所述數(shù)據(jù)寫(xiě)入用戶(hù)指定的存儲(chǔ)池;
      [0096]匹配子模塊22為寫(xiě)入所述數(shù)據(jù)的存儲(chǔ)池配置與所述存儲(chǔ)池的物理地址對(duì)應(yīng)的關(guān)鍵字;
      [0097]建立子模塊23建立所述關(guān)鍵字與所述存儲(chǔ)池的物理地址的關(guān)系映射列表;
      [0098]所述訪(fǎng)問(wèn)步驟包括:
      [0099]接收子模塊31接收用戶(hù)對(duì)數(shù)據(jù)的訪(fǎng)問(wèn)請(qǐng)求,并通過(guò)所述數(shù)據(jù)的關(guān)鍵字在所述關(guān)系映射列表查找對(duì)應(yīng)的物理地址;
      [0100]讀取子模塊32在所述物理地址下讀取對(duì)應(yīng)的所述數(shù)據(jù)。
      [0101]在該實(shí)施例中,通過(guò)鍵值對(duì)保存關(guān)鍵字到閃存物理地址映射關(guān)系。在訪(fǎng)問(wèn)數(shù)據(jù)時(shí)通過(guò)關(guān)鍵字對(duì)固態(tài)硬盤(pán)數(shù)據(jù)進(jìn)行讀寫(xiě)訪(fǎng)問(wèn)。
      [0102]在本發(fā)明的第八實(shí)施例中,所述方法還包括:
      [0103]修改步驟:修改模塊40根據(jù)用戶(hù)對(duì)所述存儲(chǔ)池存儲(chǔ)的數(shù)據(jù)進(jìn)行修改的請(qǐng)求,對(duì)所述存儲(chǔ)池存儲(chǔ)的數(shù)據(jù)進(jìn)行修改,并且調(diào)整所述關(guān)系映射列表;和/或
      [0104]垃圾回收步驟:垃圾回收模塊50根據(jù)預(yù)設(shè)的垃圾回收機(jī)制,對(duì)所述存儲(chǔ)池執(zhí)行垃圾回收。
      [0105]在本發(fā)明的第九實(shí)施例中,所述修改步驟包括:
      [0106]修改子模塊41接收用戶(hù)對(duì)寫(xiě)入的所述數(shù)據(jù)進(jìn)行修改的指令,對(duì)所述數(shù)據(jù)對(duì)應(yīng)的關(guān)鍵字進(jìn)行修改;
      [0107]更新子模塊42從所述數(shù)據(jù)修改前存儲(chǔ)的存儲(chǔ)池中劃分出新的物理地址存儲(chǔ)修后的數(shù)據(jù),并更新所述關(guān)系映射列表;
      [0108]所述垃圾回收步驟包括:
      [0109]設(shè)置子模塊51接收用戶(hù)釋放或改寫(xiě)任一所述關(guān)鍵字對(duì)應(yīng)的數(shù)據(jù)的指令,將在所述關(guān)鍵字對(duì)應(yīng)的物理地址下存儲(chǔ)的數(shù)據(jù)設(shè)置為無(wú)效;
      [0110]當(dāng)所述存儲(chǔ)池的物理塊中的數(shù)據(jù)全部無(wú)效時(shí),擦除子模塊52將所述物理塊擦除;或者
      [0111]當(dāng)所述存儲(chǔ)池的物理塊中存在低于預(yù)設(shè)閾值大小的有效數(shù)據(jù)時(shí),遷移子模塊53將所述有效數(shù)據(jù)遷移到新的物理地址中,并修改所述有效數(shù)據(jù)對(duì)應(yīng)的物理地址,并將所述有效數(shù)據(jù)遷移前存儲(chǔ)的物理塊擦除;
      [0112]在到達(dá)預(yù)設(shè)的所述固態(tài)硬盤(pán)100的垃圾回收閾值時(shí),回收子模塊54啟動(dòng)所述固態(tài)硬盤(pán)100的垃圾回收。
      [0113]由于用戶(hù)寫(xiě)入數(shù)據(jù)時(shí),需要指定數(shù)據(jù)存放的存儲(chǔ)池。同時(shí)需要申請(qǐng)關(guān)鍵字,分配存儲(chǔ)的物理地址,該關(guān)鍵字與物理地址的映射管理,將被記錄和保存下來(lái);存儲(chǔ)池分配閃存物理地址用于寫(xiě)入用戶(hù)數(shù)據(jù);當(dāng)存儲(chǔ)池中的有效頁(yè)被使用完時(shí),自動(dòng)對(duì)存儲(chǔ)池進(jìn)行擴(kuò)容。因此,在該實(shí)施例中,用戶(hù)改寫(xiě)數(shù)據(jù)時(shí),根據(jù)該數(shù)據(jù)的原關(guān)鍵字進(jìn)行改寫(xiě),存儲(chǔ)池會(huì)分配新的物理地址,并更新該鍵值對(duì);用戶(hù)讀取數(shù)據(jù)時(shí),根據(jù)該數(shù)據(jù)的關(guān)鍵字,獲取對(duì)應(yīng)的物理地址讀取數(shù)據(jù)。寫(xiě)入數(shù)據(jù)時(shí),通過(guò)獲取的物理地址,調(diào)用驅(qū)動(dòng)程序接口,下發(fā)寫(xiě)命令,將數(shù)據(jù)寫(xiě)到對(duì)應(yīng)的物理地址;讀取數(shù)據(jù)時(shí),通過(guò)獲取的物理地址,調(diào)用驅(qū)動(dòng)程序接口,下發(fā)讀命令,讀取對(duì)應(yīng)物理地址的數(shù)據(jù)。
      [0114]另外,當(dāng)用戶(hù)釋放或改寫(xiě)某個(gè)關(guān)鍵字?jǐn)?shù)據(jù)時(shí),對(duì)應(yīng)的物理地址數(shù)據(jù)設(shè)置為無(wú)效;設(shè)置垃圾回收閾值,如剩余空間不足10%時(shí),啟動(dòng)垃圾回收;當(dāng)閃存物理塊數(shù)據(jù)全部無(wú)無(wú)效時(shí),該物理塊會(huì)被擦除,重新作為空閑塊被存儲(chǔ)池利用;當(dāng)物理塊存在少量有效數(shù)據(jù)時(shí),該數(shù)據(jù)被搬移到新的物理地址中,并修改該數(shù)據(jù)對(duì)應(yīng)的鍵值對(duì),搬移后該物理塊再被擦除。優(yōu)選的,當(dāng)系統(tǒng)上電時(shí),從固態(tài)硬盤(pán)讀取信息,恢復(fù)存儲(chǔ)池信息,并恢復(fù)鍵值對(duì)映射關(guān)系。
      [0115]參見(jiàn)圖4,在本發(fā)明的一個(gè)實(shí)施例中,提供的固態(tài)硬盤(pán)100包括:存儲(chǔ)池管理模塊101、鍵值對(duì)管理模塊102、讀寫(xiě)訪(fǎng)問(wèn)模塊103、垃圾回收模塊50以及上電恢復(fù)模塊105。其中,存儲(chǔ)池管理模塊101在固態(tài)硬盤(pán)上創(chuàng)建不同級(jí)別的存儲(chǔ)池,每個(gè)存儲(chǔ)池存放不同大小的數(shù)據(jù)塊如512B、1KB、4KB、8KB、1MB等,存儲(chǔ)池占用最小空間不小于一個(gè)閃存頁(yè);用戶(hù)可自定義存儲(chǔ)池中數(shù)據(jù)塊大小,數(shù)據(jù)塊大小為512B* (2~x),其中X為非負(fù)整數(shù);用戶(hù)寫(xiě)入數(shù)據(jù)時(shí),需要指定數(shù)據(jù)存放的存儲(chǔ)池。存儲(chǔ)池分配閃存物理地址用于寫(xiě)入用戶(hù)數(shù)據(jù);當(dāng)存儲(chǔ)池中的有效頁(yè)被使用完時(shí),自動(dòng)對(duì)存儲(chǔ)池進(jìn)行擴(kuò)容。該存儲(chǔ)池管理模塊101實(shí)現(xiàn)創(chuàng)建模塊10和/或存儲(chǔ)模塊20的功能。
      [0116]在用戶(hù)寫(xiě)入新數(shù)據(jù)時(shí),需要申請(qǐng)關(guān)鍵字,由存儲(chǔ)池管理模塊101分配存儲(chǔ)的物理地址,該關(guān)鍵字與物理地址的映射管理,將被鍵值對(duì)管理模塊102記錄和保存下來(lái);用戶(hù)改寫(xiě)數(shù)據(jù)時(shí),根據(jù)該數(shù)據(jù)的原關(guān)鍵字進(jìn)行改寫(xiě),存儲(chǔ)池會(huì)分配新的物理地址,并更新該鍵值對(duì);用戶(hù)讀取數(shù)據(jù)時(shí),根據(jù)該數(shù)據(jù)的關(guān)鍵字,獲取對(duì)應(yīng)的物理地址讀取數(shù)據(jù)。該鍵值對(duì)管理模塊102實(shí)現(xiàn)修改模塊40和/或存儲(chǔ)模塊20的對(duì)關(guān)鍵字及物理地址管理的功能。
      [0117]讀寫(xiě)訪(fǎng)問(wèn)模塊103在寫(xiě)入數(shù)據(jù)時(shí),通過(guò)獲取的物理地址,調(diào)用驅(qū)動(dòng)程序接口,下發(fā)寫(xiě)命令,將數(shù)據(jù)寫(xiě)到對(duì)應(yīng)的物理地址;讀取數(shù)據(jù)時(shí),讀寫(xiě)訪(fǎng)問(wèn)模塊103通過(guò)獲取的物理地址,調(diào)用驅(qū)動(dòng)程序接口,下發(fā)讀命令,讀取對(duì)應(yīng)物理地址的數(shù)據(jù)。該讀寫(xiě)訪(fǎng)問(wèn)模塊103實(shí)現(xiàn)訪(fǎng)問(wèn)模塊30的功能。
      [0118]當(dāng)用戶(hù)釋放或改寫(xiě)某個(gè)關(guān)鍵字?jǐn)?shù)據(jù)時(shí),垃圾回收模塊50將對(duì)應(yīng)的物理地址數(shù)據(jù)設(shè)置為無(wú)效;設(shè)置垃圾回收閾值,如剩余空間不足10%時(shí),啟動(dòng)垃圾回收;當(dāng)閃存物理塊數(shù)據(jù)全部無(wú)無(wú)效時(shí),該物理塊會(huì)被擦除,重新作為空閑塊被存儲(chǔ)池利用;當(dāng)物理塊存在少量有效數(shù)據(jù)時(shí),該數(shù)據(jù)被搬移到新的物理地址中,并修改該數(shù)據(jù)對(duì)應(yīng)的鍵值對(duì),搬移后該物理塊再被擦除。當(dāng)固態(tài)硬盤(pán)100系統(tǒng)上電時(shí),上電恢復(fù)模塊105從固態(tài)硬盤(pán)讀取信息,恢復(fù)存儲(chǔ)池信息,并恢復(fù)鍵值對(duì)映射關(guān)系。[0119]因此,該實(shí)施例提供的固態(tài)硬盤(pán)100是通過(guò)一級(jí)映射關(guān)系直接讀寫(xiě)固態(tài)存儲(chǔ)設(shè)備;通過(guò)鍵值對(duì)保存關(guān)鍵字到閃存物理地址映射關(guān)系,通過(guò)關(guān)鍵字對(duì)固態(tài)硬盤(pán)數(shù)據(jù)進(jìn)行讀寫(xiě)訪(fǎng)問(wèn);用戶(hù)可定制的存儲(chǔ)池?cái)?shù)據(jù)塊大小級(jí)別;存儲(chǔ)池根據(jù)數(shù)據(jù)多少可自動(dòng)擴(kuò)容。能夠提高數(shù)據(jù)讀寫(xiě)訪(fǎng)問(wèn)效率,用戶(hù)可根據(jù)應(yīng)用特點(diǎn)以靈活高效的方式控制數(shù)據(jù)存儲(chǔ)和訪(fǎng)問(wèn)。
      [0120]綜上所述,本發(fā)明提出了固態(tài)硬盤(pán)訪(fǎng)問(wèn)的方法及其固態(tài)硬盤(pán),該方法通過(guò)用戶(hù)通過(guò)定義關(guān)鍵字申請(qǐng)固定大小的存儲(chǔ)空間,存儲(chǔ)空間寫(xiě)入數(shù)據(jù);讀取數(shù)據(jù)時(shí),通過(guò)關(guān)鍵字進(jìn)行獲取已寫(xiě)入的數(shù)據(jù);數(shù)據(jù)無(wú)效時(shí),用戶(hù)主動(dòng)刪除該關(guān)鍵字,該空間由系統(tǒng)回收;固態(tài)硬盤(pán)系統(tǒng)維護(hù)用戶(hù)關(guān)鍵字與閃存物理地址的映射關(guān)系;存儲(chǔ)池按照大小分級(jí)管理;在固態(tài)硬盤(pán)系統(tǒng)空間不足時(shí),啟動(dòng)垃圾回收機(jī)制釋放閃存頁(yè)或塊,將其再次加入分配池。實(shí)現(xiàn)用戶(hù)直接訪(fǎng)問(wèn)和控制存儲(chǔ)資源,減少文件系統(tǒng)以及多次地址映射開(kāi)銷(xiāo),提高閃存讀寫(xiě)訪(fǎng)問(wèn)的靈活性和效率。
      [0121]當(dāng)然,本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
      【權(quán)利要求】
      1.一種固態(tài)硬盤(pán)訪(fǎng)問(wèn)的方法,其特征在于,所述方法包括如下步驟: 創(chuàng)建步驟:在固態(tài)硬盤(pán)的存儲(chǔ)空間創(chuàng)建多個(gè)預(yù)定大小的存儲(chǔ)池; 存儲(chǔ)步驟:在所述存儲(chǔ)池中寫(xiě)入數(shù)據(jù),并為寫(xiě)入數(shù)據(jù)的所述存儲(chǔ)池配置關(guān)鍵字; 訪(fǎng)問(wèn)步驟:通過(guò)所述關(guān)鍵字在對(duì)應(yīng)的存儲(chǔ)池中訪(fǎng)問(wèn)所述數(shù)據(jù)。
      2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述創(chuàng)建步驟中,在所述固態(tài)硬盤(pán)的存儲(chǔ)空間創(chuàng)建多個(gè)不同大小的存儲(chǔ)池; 每個(gè)所述存儲(chǔ)池的大小大于或等于一個(gè)閃存頁(yè)的大小。
      3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述存儲(chǔ)步驟包括: 接收用戶(hù)在所述固態(tài)硬盤(pán)寫(xiě)入數(shù)據(jù)的請(qǐng)求以及對(duì)存儲(chǔ)池指定的指令,將所述數(shù)據(jù)寫(xiě)入用戶(hù)指定的存儲(chǔ)池; 為寫(xiě)入所述數(shù)據(jù)的存儲(chǔ)池配置與所述存儲(chǔ)池的物理地址對(duì)應(yīng)的關(guān)鍵字; 建立所述關(guān)鍵字與所述存儲(chǔ)池的物理地址的關(guān)系映射列表; 所述訪(fǎng)問(wèn)步驟包括: 接收用戶(hù)對(duì)數(shù)據(jù)的訪(fǎng)問(wèn)請(qǐng)求,并通過(guò)所述數(shù)據(jù)的關(guān)鍵字在所述關(guān)系映射列表查找對(duì)應(yīng)的物理地址; 在所述物理地址下讀取對(duì)應(yīng)的所述數(shù)據(jù)。
      4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述方法還包括: 修改步驟:根據(jù)用戶(hù)對(duì)所述存儲(chǔ)池存儲(chǔ)的數(shù)據(jù)進(jìn)行修改的請(qǐng)求,對(duì)所述存儲(chǔ)池存儲(chǔ)的數(shù)據(jù)進(jìn)行修改,并且調(diào)整所述關(guān)系映射列表;和/或 垃圾回收步驟:根據(jù)預(yù)設(shè)的垃圾回收機(jī)制,對(duì)所述存儲(chǔ)池執(zhí)行垃圾回收。
      5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述修改步驟包括: 接收用戶(hù)對(duì)寫(xiě)入的所述數(shù)據(jù)進(jìn)行修改的指令,對(duì)所述數(shù)據(jù)及其對(duì)應(yīng)的關(guān)鍵字進(jìn)行修改; 從所述數(shù)據(jù)修改前存儲(chǔ)的存儲(chǔ)池中劃分出新的物理地址存儲(chǔ)修后的數(shù)據(jù),并更新所述關(guān)系映射列表; 所述垃圾回收步驟包括: 接收用戶(hù)釋放或改寫(xiě)任一所述關(guān)鍵字對(duì)應(yīng)的數(shù)據(jù)的指令,將在所述關(guān)鍵字對(duì)應(yīng)的物理地址下存儲(chǔ)的數(shù)據(jù)設(shè)置為無(wú)效; 當(dāng)所述存儲(chǔ)池的物理塊中的數(shù)據(jù)全部無(wú)效時(shí),將所述物理塊擦除;或者當(dāng)所述存儲(chǔ)池的物理塊中存在低于預(yù)設(shè)閾值大小的有效數(shù)據(jù)時(shí),將所述有效數(shù)據(jù)遷移到新的物理地址中,并修改所述有效數(shù)據(jù)對(duì)應(yīng)的物理地址,并將所述有效數(shù)據(jù)遷移前存儲(chǔ)的物理塊擦除; 在到達(dá)預(yù)設(shè)的所述固態(tài)硬盤(pán)的垃圾回收閾值時(shí),啟動(dòng)所述固態(tài)硬盤(pán)的垃圾回收。
      6.一種固態(tài)硬盤(pán),其特征在于,包括: 創(chuàng)建模塊,用于在固態(tài)硬盤(pán)的存儲(chǔ)空間創(chuàng)建多個(gè)預(yù)定大小的存儲(chǔ)池; 存儲(chǔ)模塊,用于在所述存儲(chǔ)池中寫(xiě)入數(shù)據(jù),并為寫(xiě)入數(shù)據(jù)的所述存儲(chǔ)池配置關(guān)鍵字; 訪(fǎng)問(wèn)模塊,通過(guò)所述關(guān)鍵字在對(duì)應(yīng)的存儲(chǔ)池中訪(fǎng)問(wèn)所述數(shù)據(jù)。
      7.根據(jù)權(quán)利要求6所述的固態(tài)硬盤(pán),其特征在于,所述創(chuàng)建模塊在所述固態(tài)硬盤(pán)的存儲(chǔ)空間創(chuàng)建多個(gè)不同大小的存儲(chǔ)池;每個(gè)所述存儲(chǔ)池的大小大于或等于一個(gè)閃存頁(yè)的大小。
      8.根據(jù)權(quán)利要求6所述的固態(tài)硬盤(pán),其特征在于,所述存儲(chǔ)模塊包括: 寫(xiě)入子模塊,用于接收用戶(hù)在所述固態(tài)硬盤(pán)寫(xiě)入數(shù)據(jù)的請(qǐng)求以及對(duì)存儲(chǔ)池指定的指令,將所述數(shù)據(jù)寫(xiě)入用戶(hù)指定的存儲(chǔ)池; 匹配字模塊,用于為寫(xiě)入所述數(shù)據(jù)的存儲(chǔ)池配置與所述存儲(chǔ)池的物理地址對(duì)應(yīng)的關(guān)鍵字; 建立子模塊,用于建立所述關(guān)鍵字與所述存儲(chǔ)池的物理地址的關(guān)系映射列表; 所述訪(fǎng)問(wèn)模塊包括: 接收子模塊,用于接收用戶(hù)對(duì)數(shù)據(jù)的訪(fǎng)問(wèn)請(qǐng)求,并通過(guò)所述數(shù)據(jù)的關(guān)鍵字在所述關(guān)系映射列表查找對(duì)應(yīng)的物理地址; 讀取子模塊,用于在所述物理地址下讀取對(duì)應(yīng)的所述數(shù)據(jù)。
      9.根據(jù)權(quán)利要求8所述的固態(tài)硬盤(pán),其特征在于,所述固態(tài)硬盤(pán)還包括: 修改模塊:根據(jù)用戶(hù)對(duì)所述 存儲(chǔ)池存儲(chǔ)的數(shù)據(jù)進(jìn)行修改的請(qǐng)求,對(duì)所述存儲(chǔ)池存儲(chǔ)的數(shù)據(jù)進(jìn)行修改,并且調(diào)整所 述關(guān)系映射列表;和/或 垃圾回收模塊:根據(jù)預(yù)設(shè)的垃圾回收機(jī)制,對(duì)所述存儲(chǔ)池執(zhí)行垃圾回收。
      10.根據(jù)權(quán)利要求8所述的固態(tài)硬盤(pán),其特征在于,所述修改模塊包括: 修改子模塊,用于接收用戶(hù)對(duì)寫(xiě)入的所述數(shù)據(jù)進(jìn)行修改的指令,對(duì)所述數(shù)據(jù)對(duì)應(yīng)的關(guān)鍵字進(jìn)行修改; 更新子模塊,用于從所述數(shù)據(jù)修改前存儲(chǔ)的存儲(chǔ)池中劃分出新的物理地址存儲(chǔ)修后的數(shù)據(jù),并更新所述關(guān)系映射列表; 所述垃圾回收模塊包括: 設(shè)置子模塊,用于接收用戶(hù)釋放或改寫(xiě)任一所述關(guān)鍵字對(duì)應(yīng)的數(shù)據(jù)的指令,將在所述關(guān)鍵字對(duì)應(yīng)的物理地址下存儲(chǔ)的數(shù)據(jù)設(shè)置為無(wú)效; 擦除子模塊,用于當(dāng)所述存儲(chǔ)池的物理塊中數(shù)據(jù)全部無(wú)效時(shí),將所述物理塊擦除;或者遷移子模塊,用于當(dāng)所述存儲(chǔ)池的物理塊中存在低于預(yù)設(shè)閾值大小的有效數(shù)據(jù)時(shí),將所述有效數(shù)據(jù)遷移到新的物理地址中,并修改所述有效數(shù)據(jù)對(duì)應(yīng)的物理地址,并將所述有效數(shù)據(jù)遷移前存儲(chǔ)的物理塊擦除; 回收子模塊,用于在到達(dá)預(yù)設(shè)的所述固態(tài)硬盤(pán)的垃圾回收閾值時(shí),啟動(dòng)所述固態(tài)硬盤(pán)的垃圾回收。
      【文檔編號(hào)】G06F3/06GK103744614SQ201310695406
      【公開(kāi)日】2014年4月23日 申請(qǐng)日期:2013年12月17日 優(yōu)先權(quán)日:2013年12月17日
      【發(fā)明者】李明星 申請(qǐng)人:記憶科技(深圳)有限公司
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1