數(shù)據(jù)讀取、寫入方法和裝置及數(shù)據(jù)存儲結(jié)構(gòu)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,特別是涉及一種數(shù)據(jù)讀取、寫入方法和裝置及數(shù)據(jù)存 儲結(jié)構(gòu)。
【背景技術(shù)】
[0002] SSD(Solid State Disk,固態(tài)硬盤)是一種基于閃存的存儲設(shè)備,用固態(tài)電子存 儲芯片陣列而制成的硬盤,由控制單元和存儲單元(FLASH芯片或DRAM (Dynamic Random Access Memory,動態(tài)隨機存取存儲器)芯片)組成。SSD插到I/O總線上標準硬盤插槽中, 處理來自CPU (Central Processing Unit,中央處理器)的讀寫邏輯磁盤塊的請求。一個 SSD包括一個或多個閃存芯片和閃存翻譯層,閃存芯片替代傳統(tǒng)磁盤中的機械驅(qū)動器,而閃 存翻譯層則是一個硬件/固件設(shè)備,與磁盤控制器的作用相同,將對邏輯塊的請求翻譯成 對底層物理設(shè)備層的訪問。
[0003] 如表1所示,目前SSD盤的順序讀操作(CPU按順序訪問邏輯磁盤塊)和順序?qū)懖?作的性能相當。不過,當CPU按照隨機順序訪問邏輯磁盤塊時,寫操作比讀操作慢一個數(shù)量 級。
[0004] 表 1
【主權(quán)項】
1. 一種數(shù)據(jù)讀取方法,其特征在于,包括步驟: 獲取數(shù)據(jù)塊的地址號; 根據(jù)所述地址號和數(shù)據(jù)索引,獲取所述數(shù)據(jù)索引中的索引內(nèi)容,其中所述索引內(nèi)容包 括數(shù)據(jù)塊頁數(shù)W及數(shù)據(jù)塊全局頁號; 根據(jù)所述數(shù)據(jù)塊全局頁號W及硬盤數(shù)量,獲取所述數(shù)據(jù)塊的硬盤盤號W及數(shù)據(jù)塊局部 頁號; 根據(jù)所述數(shù)據(jù)塊頁數(shù)、所述硬盤盤號W及所述數(shù)據(jù)塊局部頁號,提交數(shù)據(jù)塊的異步讀 取請求;W及 操作系統(tǒng)讀取數(shù)據(jù)塊后,根據(jù)所述異步讀取請求,回調(diào)到相應(yīng)的處理流程中; 其中所述硬盤W所述硬盤的物理頁面進行分頁處理,W形成包括至少一個所述硬盤的 物理頁面的所述硬盤的存儲頁面;每一所述存儲頁面對應(yīng)一所述數(shù)據(jù)塊;根據(jù)所述數(shù)據(jù)塊 的存儲頁面生成所述數(shù)據(jù)塊全局頁號,根據(jù)所述數(shù)據(jù)塊的大小生成所述數(shù)據(jù)塊頁數(shù)。
2. 根據(jù)權(quán)利要求1所述的數(shù)據(jù)讀取方法,其特征在于,所述數(shù)據(jù)塊的地址號和相應(yīng)的 索引內(nèi)容W鍵-值的形式進行存儲。
3. 根據(jù)權(quán)利要求1所述的數(shù)據(jù)讀取方法,其特征在于,所述索引內(nèi)容還包括用于判斷 是否存在與所述索引內(nèi)容對應(yīng)的硬盤數(shù)據(jù)的數(shù)據(jù)存在標識; 所述獲取所述數(shù)據(jù)索引中的索引內(nèi)容的步驟包括: 如所述索引內(nèi)容的所述數(shù)據(jù)存在標識為否,則返回所述地址號錯誤;W及 如所述索引內(nèi)容的所述數(shù)據(jù)存在標識為是,則返回所述索引內(nèi)容的所述數(shù)據(jù)塊頁數(shù)W 及所述數(shù)據(jù)塊全局頁號。
4. 根據(jù)權(quán)利要求1所述的數(shù)據(jù)讀取方法,其特征在于,所述數(shù)據(jù)塊的首部包括數(shù)據(jù)的 校驗和、數(shù)據(jù)塊全局頁號W及數(shù)據(jù)真實長度。
5. 根據(jù)權(quán)利要求1所述的數(shù)據(jù)讀取方法,其特征在于,所述數(shù)據(jù)索引還包括索引首部, 所述索引首部包括硬盤的使用信息、索引的使用信息W及共享標記信息;所述硬盤的使用 信息包括硬盤數(shù)量、硬盤頁數(shù)、硬盤頁大小W及當前追加頁號;所述索引的使用信息包括已 使用的索引數(shù)量W及未使用的索引數(shù)量;所述共享標記信息包括用于校驗有效性的魔數(shù)和 用于表示所述數(shù)據(jù)索引使用狀態(tài)的使用標記。
6. -種數(shù)據(jù)寫入方法,其特征在于,包括步驟: 根據(jù)數(shù)據(jù)索引,獲取所述硬盤的空白的存儲頁面的數(shù)據(jù)塊全局頁號; 根據(jù)所述數(shù)據(jù)塊W及所述空白的存儲頁面的數(shù)據(jù)塊全局頁號,生成與所述數(shù)據(jù)塊對應(yīng) 的索引內(nèi)容及地址號,其中所述索引內(nèi)容包括數(shù)據(jù)塊頁數(shù)W及數(shù)據(jù)塊全局頁號; 根據(jù)所述數(shù)據(jù)塊全局頁號W及硬盤數(shù)量,生成所述數(shù)據(jù)塊的硬盤盤號W及數(shù)據(jù)塊局部 頁號; 根據(jù)所述數(shù)據(jù)塊頁數(shù)、所述硬盤盤號W及所述數(shù)據(jù)塊局部頁號,提交數(shù)據(jù)塊寫入請求; W及 根據(jù)所述寫入請求的結(jié)果,使用所述索引內(nèi)容更新所述數(shù)據(jù)索引; 其中所述硬盤W所述硬盤的物理頁面進行分頁處理,W形成包括至少一個所述硬盤的 物理頁面的所述硬盤的存儲頁面;每一所述存儲頁面對應(yīng)一所述數(shù)據(jù)塊;根據(jù)所述數(shù)據(jù)塊 的存儲頁面生成所述數(shù)據(jù)塊全局頁號,根據(jù)所述數(shù)據(jù)塊的大小生成所述數(shù)據(jù)塊頁數(shù)。
7. 根據(jù)權(quán)利要求6所述的數(shù)據(jù)寫入方法,其特征在于,所述數(shù)據(jù)塊的地址號和相應(yīng)的 索引內(nèi)容W鍵-值的形式進行存儲。
8. 根據(jù)權(quán)利要求6所述的數(shù)據(jù)寫入方法,其特征在于,所述索引內(nèi)容還包括用于判斷 是否存在與所述索引內(nèi)容對應(yīng)的硬盤數(shù)據(jù)的數(shù)據(jù)存在標識; 所述數(shù)據(jù)寫入方法還包括步驟: 根據(jù)所述寫入請求的結(jié)果,生成所述索引內(nèi)容的所述數(shù)據(jù)存在標識。
9. 根據(jù)權(quán)利要求6所述的數(shù)據(jù)寫入方法,其特征在于,所述數(shù)據(jù)寫入方法還包括步驟: 對所述數(shù)據(jù)塊進行處理,W生成所述數(shù)據(jù)塊的首部;其中所述數(shù)據(jù)塊的首部包括數(shù)據(jù) 的校驗和、數(shù)據(jù)塊全局頁號W及數(shù)據(jù)真實長度。
10. 根據(jù)權(quán)利要求6所述的數(shù)據(jù)寫入方法,其特征在于,所述數(shù)據(jù)索引還包括索引首 部,所述索引首部包括硬盤的使用信息、索引的使用信息W及共享標記信息;所述硬盤的使 用信息包括硬盤數(shù)量、硬盤頁數(shù)、硬盤頁大小W及當前追加頁號;所述索引的使用信息包括 已使用的索引數(shù)量W及未使用的索引數(shù)量;所述共享標記信息包括用于校驗有效性的魔數(shù) 和用于表示所述數(shù)據(jù)索引使用狀態(tài)的使用標記。
11. 一種數(shù)據(jù)存儲結(jié)構(gòu),其特征在于,包括: 數(shù)據(jù)存儲部,包括多個硬盤,所述硬盤W所述硬盤的物理頁面進行分頁處理,W形成包 括至少一個所述硬盤的物理頁面的所述硬盤的存儲頁面;其中每一所述存儲頁面對應(yīng)一數(shù) 據(jù)塊; 數(shù)據(jù)索引部,包括索引內(nèi)容,包括: 數(shù)據(jù)塊頁數(shù),用于表示所述數(shù)據(jù)塊的大?。籛及 數(shù)據(jù)塊全局頁號,用于表示所述數(shù)據(jù)塊的存儲位置;W及 地址號,與所述索引內(nèi)容相對應(yīng),用于提供給用戶,W讀取數(shù)據(jù)塊。
12. 根據(jù)權(quán)利要求11所述的數(shù)據(jù)存儲結(jié)構(gòu),其特征在于,所述數(shù)據(jù)塊的地址號和相應(yīng) 的索引內(nèi)容W鍵-值的形式進行存儲。
13. 根據(jù)權(quán)利要求11所述的數(shù)據(jù)存儲結(jié)構(gòu),其特征在于