存中所述邏輯區(qū)塊地址所對(duì)應(yīng)的三級(jí)映射表中之后,還包括:
[0123]將所述物理頁號(hào)寫入所述固態(tài)硬盤中;或,將所述邏輯區(qū)塊地址與所述物理頁號(hào)寫入主存中后,將所述物理頁號(hào)寫入所述固態(tài)硬盤中。
[0124]結(jié)合第九方面第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述處理器,在所述將所述物理頁號(hào)寫入所述固態(tài)硬盤中之后,還包括:
[0125]將所述邏輯區(qū)塊地址與所述物理頁號(hào)在所述2級(jí)映射表與I級(jí)映射表中進(jìn)行更新。
[0126]結(jié)合第九方面至第九方面第三種可能的實(shí)現(xiàn)方式中的任一可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述處理器,在所述如果所述主存中不存在所述邏輯區(qū)塊地址所對(duì)應(yīng)的3級(jí)映射表,則根據(jù)所述全局2級(jí)映射表索引所述固態(tài)硬盤中的3級(jí)映射表中,將所述邏輯區(qū)塊地址所對(duì)應(yīng)的所述固態(tài)硬盤中的3級(jí)映射表讀出并存儲(chǔ)到所述主存中之后,還包括:
[0127]將所述3級(jí)映射表中的所述邏輯區(qū)塊地址所對(duì)應(yīng)的計(jì)數(shù)器加一;
[0128]在所述控制固態(tài)硬盤控制器為所述邏輯區(qū)塊地址分配物理頁號(hào),并將所述物理頁號(hào)存儲(chǔ)在所述主存中所述邏輯區(qū)塊地址所對(duì)應(yīng)的三級(jí)映射表中之后,對(duì)所述三級(jí)映射表中的所述邏輯區(qū)塊地址所對(duì)應(yīng)的計(jì)數(shù)器減一,以確認(rèn)所述待寫入數(shù)據(jù)的所述邏輯區(qū)塊地址獲得了對(duì)應(yīng)的物理頁號(hào)。
[0129]本發(fā)明通過根據(jù)將要被讀或?qū)懭氲臄?shù)據(jù)的邏輯區(qū)塊地址,在2級(jí)映射表中查找所述邏輯區(qū)塊地址對(duì)應(yīng)的3級(jí)映射表,從所述3級(jí)映射表中讀出所述數(shù)據(jù)或者在為所述邏輯區(qū)塊地址分配的物理頁號(hào)中寫入所述數(shù)據(jù)的多級(jí)順序映射方案,由于在2級(jí)映射表中僅存儲(chǔ)3級(jí)映射表的索引,而且只有在主存中的3級(jí)映射表沒有存儲(chǔ)所述待讀或待寫入數(shù)據(jù)時(shí),才將固態(tài)硬盤中的所述邏輯區(qū)塊地址所對(duì)應(yīng)的3級(jí)映射表寫入主存。因?yàn)楸痉桨笩o需直接從固態(tài)硬盤的3級(jí)映射表中遍歷查詢所述邏輯區(qū)塊地址所對(duì)應(yīng)的物理頁號(hào),且在主存僅僅存有一部分經(jīng)常被訪問的熱數(shù)據(jù)對(duì)應(yīng)的3級(jí)映射表,從而解決了在大容量存儲(chǔ)的情形下頁級(jí)映射由于映射粒度小需要消耗大量主存存儲(chǔ)空間的問題,也避免了塊級(jí)映射進(jìn)行塊操作時(shí)涉及數(shù)據(jù)較多導(dǎo)致的性能不穩(wěn)定問題,從而達(dá)到了簡化映射關(guān)系以減少主存存儲(chǔ)空間的消耗并且維持性能穩(wěn)定的效果。
【附圖說明】
[0130]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0131]圖1為本發(fā)明實(shí)施例提供的一種基于大容量固態(tài)存儲(chǔ)的地址映射方法的流程圖;
[0132]圖2為本發(fā)明實(shí)施例提供的另一種基于大容量固態(tài)存儲(chǔ)的地址映射方法的流程圖;
[0133]圖3為本發(fā)明實(shí)施例提供的另一種基于大容量固態(tài)存儲(chǔ)的地址映射方法的流程圖;
[0134]圖4為本發(fā)明實(shí)施例提供的另一種基于大容量固態(tài)存儲(chǔ)的地址映射方法的流程圖;
[0135]圖5為本發(fā)明實(shí)施例提供的一種基于大容量固態(tài)存儲(chǔ)的地址映射的裝置的結(jié)構(gòu)圖;
[0136]圖6為本發(fā)明實(shí)施例提供的另一種基于大容量固態(tài)存儲(chǔ)的地址映射的裝置的結(jié)構(gòu)圖;
[0137]圖7為本發(fā)明實(shí)施例提供的另一種基于大容量固態(tài)存儲(chǔ)的地址映射的裝置的結(jié)構(gòu)圖;
[0138]圖8為本發(fā)明實(shí)施例提供的另一種基于大容量固態(tài)存儲(chǔ)的地址映射的裝置的結(jié)構(gòu)圖;
[0139]圖9為本發(fā)明實(shí)施例提供的一種基于大容量固態(tài)存儲(chǔ)的地址映射表;
[0140]圖10為本發(fā)明實(shí)施例提供的另一種基于大容量固態(tài)存儲(chǔ)的地址映射表;
【具體實(shí)施方式】
[0141]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0142]如圖1所示,本發(fā)明實(shí)施例提供的一種基于大容量固態(tài)存儲(chǔ)的地址映射方法,其特征在于,包括:
[0143]步驟S101,獲取用于將數(shù)據(jù)寫入固態(tài)硬盤的寫命令,所述寫命令攜帶待寫入數(shù)據(jù)及所述待寫入數(shù)據(jù)的邏輯區(qū)塊地址;
[0144]步驟S102,根據(jù)所述全局2級(jí)映射表,查詢所述邏輯區(qū)塊地址所對(duì)應(yīng)的主存中的所述3級(jí)映射表,所述全局2級(jí)映射表用于索引所述主存中3級(jí)映射表和固態(tài)硬盤中的3級(jí)映射表,所述3級(jí)映射表用于存儲(chǔ)所述邏輯區(qū)塊地址及與所述邏輯區(qū)塊地址對(duì)應(yīng)的物理頁號(hào)的映射關(guān)系;
[0145]步驟S103,如果所述主存中不存在所述邏輯區(qū)塊地址所對(duì)應(yīng)的3級(jí)映射表,則根據(jù)所述全局2級(jí)映射表索引所述固態(tài)硬盤中的3級(jí)映射表中,將所述邏輯區(qū)塊地址所對(duì)應(yīng)的所述固態(tài)硬盤中的3級(jí)映射表讀出并存儲(chǔ)到所述主存中;
[0146]步驟S104,控制固態(tài)硬盤控制器為所述邏輯區(qū)塊地址分配物理頁號(hào),并將所述物理頁號(hào)存儲(chǔ)在所述主存中所述邏輯區(qū)塊地址所對(duì)應(yīng)的三級(jí)映射表中;
[0147]步驟S105,在所述主存中所述邏輯區(qū)塊地址所對(duì)應(yīng)的三級(jí)映射表中,將待寫入數(shù)據(jù)寫入所述物理頁號(hào)所對(duì)應(yīng)的存儲(chǔ)空間。
[0148]有益效果:通過根據(jù)將要被讀或?qū)懭氲臄?shù)據(jù)的邏輯區(qū)塊地址,在2級(jí)映射表中查找所述邏輯區(qū)塊地址對(duì)應(yīng)的3級(jí)映射表,從所述3級(jí)映射表中讀出所述數(shù)據(jù)或者在為所述邏輯區(qū)塊地址分配的物理頁號(hào)中寫入所述數(shù)據(jù)的多級(jí)順序映射方案,由于在2級(jí)映射表中僅存儲(chǔ)3級(jí)映射表的索引,而且只有在主存中的3級(jí)映射表沒有存儲(chǔ)所述待讀或代寫入數(shù)據(jù)時(shí),才將固態(tài)硬盤中的所述邏輯區(qū)塊地址所對(duì)應(yīng)的3級(jí)映射表寫入主存,從而解決了在大容量存儲(chǔ)的情形下頁級(jí)映射由于映射粒度小需要消耗大量主存存儲(chǔ)空間的問題,也避免了塊級(jí)映射進(jìn)行塊操作時(shí)涉及數(shù)據(jù)較多導(dǎo)致的性能不穩(wěn)定問題,從而達(dá)到了簡化映射關(guān)系以減少主存存儲(chǔ)空間的消耗并且維持性能穩(wěn)定的效果。
[0149]如圖2所示,本發(fā)明實(shí)施例提供的另一種基于大容量固態(tài)存儲(chǔ)的地址映射方法,其特征在于,包括:
[0150]步驟S201,獲取用于將數(shù)據(jù)寫入固態(tài)硬盤的寫命令,所述寫命令攜帶待寫入數(shù)據(jù)及所述待寫入數(shù)據(jù)的邏輯區(qū)塊地址;
[0151]步驟S202,根據(jù)所述全局2級(jí)映射表,查詢所述邏輯區(qū)塊地址所對(duì)應(yīng)的所述主存中的所述3級(jí)映射表,所述全局2級(jí)映射表用于索引所述主存中3級(jí)映射表和固態(tài)硬盤中的3級(jí)映射表,所述3級(jí)映射表用于存儲(chǔ)所述邏輯區(qū)塊地址及與所述邏輯區(qū)塊地址對(duì)應(yīng)的物理頁號(hào)的映射關(guān)系;
[0152]步驟S203,如果所述主存中不存在所述邏輯區(qū)塊地址所對(duì)應(yīng)的3級(jí)映射表,則根據(jù)所述全局2級(jí)映射表索引所述固態(tài)硬盤中的3級(jí)映射表中,將所述邏輯區(qū)塊地址所對(duì)應(yīng)的所述固態(tài)硬盤中的3級(jí)映射表讀出并存儲(chǔ)到所述主存中;
[0153]步驟S204,控制固態(tài)硬盤控制器為所述邏輯區(qū)塊地址分配物理頁號(hào),并將所述物理頁號(hào)存儲(chǔ)在所述主存中所述邏輯區(qū)塊地址所對(duì)應(yīng)的三級(jí)映射表中;
[0154]步驟S205,在所述主存中所述邏輯區(qū)塊地址所對(duì)應(yīng)的三級(jí)映射表中,將待寫入數(shù)據(jù)寫入所述物理頁號(hào)所對(duì)應(yīng)的存儲(chǔ)空間。
[0155]進(jìn)一步地,步驟S206,在所述如果所述主存中不存在所述邏輯區(qū)塊地址所對(duì)應(yīng)的3級(jí)映射表,則根據(jù)所述全局2級(jí)映射表索引所述固態(tài)硬盤中的3級(jí)映射表中,將所述邏輯區(qū)塊地址所對(duì)應(yīng)的所述固態(tài)硬盤中的3級(jí)映射表讀出并存儲(chǔ)到所述主存中之前,其特征在于,還包括:
[0156]判斷所述主存中存儲(chǔ)所述3級(jí)映射表的空間是否到達(dá)預(yù)設(shè)閾值,在達(dá)到所述預(yù)設(shè)閾值的情況下,則根據(jù)預(yù)設(shè)緩存規(guī)則將冷數(shù)據(jù)從所述主存移出并寫入到所述固態(tài)硬盤中,以為將所述固態(tài)硬盤中的邏輯區(qū)塊地址所對(duì)應(yīng)的3級(jí)映射表寫入所述主存提供存儲(chǔ)空間。
[0157]進(jìn)一步地,步驟S207,在所述控制固態(tài)硬盤控制器為所述邏輯區(qū)塊地址分配物理頁號(hào),并將所述物理頁號(hào)存儲(chǔ)在所述主存中所述邏輯區(qū)塊地址所對(duì)應(yīng)的三級(jí)映射表中之后,還包括:
[0158]將所述物理頁號(hào)寫入所述固態(tài)硬盤中;或,將所述邏輯區(qū)塊地址與所述物理頁號(hào)寫入主存中后,將所述物理頁號(hào)寫入所述固態(tài)硬盤中。
[0159]進(jìn)一步地,步驟S208,在所述將所述物理頁號(hào)寫入所述固態(tài)硬盤中之后,還包括:
[0160]將所述邏輯區(qū)塊地址與所述物理頁號(hào)在所述2級(jí)映射表與I級(jí)映射表中進(jìn)行更新。
[0161]進(jìn)一步地,步驟S209,在所述如果所述主存中不存在所述邏輯區(qū)塊地址所對(duì)應(yīng)的3級(jí)映射表,則根據(jù)所述全局2級(jí)映射表索引所述固態(tài)硬盤中的3級(jí)映射表中,將所述邏輯區(qū)塊地址所對(duì)應(yīng)的所述固態(tài)硬盤中的3級(jí)映射表讀出并存儲(chǔ)到所述主存中之后,還包括:
[0162]將所述3級(jí)映射表中的所述邏輯區(qū)塊地址所對(duì)應(yīng)的計(jì)數(shù)器加一;
[0163]在所述控制固態(tài)硬盤控制器為所述邏輯區(qū)塊地址分配物理頁號(hào),并將所述物理頁號(hào)存儲(chǔ)在所述主存中所述邏輯區(qū)塊地址所對(duì)應(yīng)的三級(jí)映射表中之后,對(duì)所述三級(jí)映射表中的所述邏輯區(qū)塊地址所對(duì)應(yīng)的計(jì)數(shù)器減一,以確認(rèn)所述待寫入數(shù)據(jù)的所述邏輯區(qū)塊地址獲得了對(duì)應(yīng)的物理頁號(hào)。
[0164]有益效果:通過根據(jù)將要被讀或?qū)懭氲臄?shù)據(jù)的邏輯區(qū)塊地址,在2級(jí)映射表中查找所述邏輯區(qū)塊地址對(duì)應(yīng)的3級(jí)映射表,從所述3級(jí)映射表中讀出所述數(shù)據(jù)或者在為所述邏輯區(qū)塊地址分配的物理頁號(hào)中寫入所述數(shù)據(jù)的多級(jí)順序映射方案,由于在2級(jí)映射表中僅存儲(chǔ)3級(jí)映射表的索引,而且只有在主存中的3級(jí)映射表沒有存儲(chǔ)所述待讀或代寫入數(shù)據(jù)時(shí),才將固態(tài)硬盤中的所述邏輯區(qū)塊地址所對(duì)應(yīng)的3級(jí)映射表寫入主存,從而解決了在大容量存儲(chǔ)的情形下頁級(jí)映射由于映射粒度小需要消耗大量主存存儲(chǔ)空間的問題,也避免了塊級(jí)映射進(jìn)行塊操作時(shí)涉及數(shù)據(jù)較多導(dǎo)致的性能不穩(wěn)定問題,從而達(dá)到了簡化映射關(guān)系以減少主存存儲(chǔ)空間的消耗并且維持性能穩(wěn)定的效果。
[0165]如圖3所示,本發(fā)明實(shí)施例提供的另一種基于大容量固態(tài)存儲(chǔ)的地址映射方法,其特征在于,包括:
[0166]步驟S301,獲取用于讀固態(tài)硬盤中數(shù)據(jù)的讀命令,所述讀命令攜帶待寫入數(shù)據(jù)的邏輯區(qū)塊地址;
[0167]步驟S302,在主存中通過全局2級(jí)映射表,查詢所述主存中3級(jí)映射表中存儲(chǔ)的所述邏輯區(qū)塊地址所對(duì)應(yīng)的物理頁號(hào),所述全局2級(jí)映射表用于索引所述主存中的3級(jí)映射表和固態(tài)硬盤中的3級(jí)映射表;
[0168]步驟S303,如果所述主存中的所述3級(jí)映射表中未存儲(chǔ)所述邏輯區(qū)塊地址所對(duì)應(yīng)的物理頁號(hào),則根據(jù)所述全局2級(jí)映射表索引所述固態(tài)硬盤中的所述3級(jí)映射表,將所述固態(tài)硬盤中的所述3級(jí)映射表中存儲(chǔ)的所述邏輯區(qū)塊地址及與所述邏輯區(qū)塊地址對(duì)應(yīng)的物理頁號(hào)讀出;
[0169]步驟S304,從所述物理頁上讀取所述數(shù)據(jù)。
[0170]有益效果:通過根據(jù)將要被讀或?qū)懭氲臄?shù)據(jù)的邏輯區(qū)塊地址,在2級(jí)映射表中查找所述邏輯區(qū)塊地址對(duì)應(yīng)的3級(jí)映射表,從所述3級(jí)映射表中讀出所述數(shù)據(jù)或者在為所述邏輯區(qū)塊地址分配的物理頁號(hào)中寫入所述數(shù)據(jù)的多級(jí)順序映射方案,由于在2級(jí)映射表中僅存儲(chǔ)3級(jí)映射表的索引,而且只有在主存中的3級(jí)映射表沒有存儲(chǔ)所述待讀或代寫入數(shù)據(jù)時(shí),才將固態(tài)硬盤中的所述邏輯區(qū)塊地址所對(duì)應(yīng)的3級(jí)映射表寫入主存,從而解決了在大容量存儲(chǔ)的情形下頁級(jí)映射由于映射粒度小需要消耗大量主存存儲(chǔ)空間的問題,也避免了塊級(jí)映射進(jìn)行塊操作時(shí)涉及數(shù)據(jù)較多導(dǎo)致的性能不穩(wěn)定問題,從而達(dá)到了簡化映射關(guān)系以減少主存存儲(chǔ)空間的消耗并且維持性能穩(wěn)定的效果。
[0171]如圖4所示,本發(fā)明實(shí)施例提供的另一種基于大容量固態(tài)存儲(chǔ)的地址映射方法,其特征在于,包括:
[0172]步驟S401,獲取用于讀或?qū)懝虘B(tài)硬盤中數(shù)據(jù)的命令,所述命令包括讀命令或?qū)懨睿?br>[0173]步驟S402,判斷所述命令是讀命令或?qū)懨睿?br>[0174]步驟S403,如果所述命令是讀命令,所述讀命令攜帶邏輯區(qū)塊地址,在主存中通過全局2級(jí)映射表,查詢所述主存中3級(jí)映射表中存儲(chǔ)的所述邏輯區(qū)塊地址所對(duì)應(yīng)的物理頁號(hào),所述全局2級(jí)映射表用于索引所述主存中的3級(jí)映射表和固態(tài)硬盤中的3級(jí)映射表;
[0175]步驟S404,如果所述王存中的所述3級(jí)映射表中未存儲(chǔ)所述邏區(qū)塊地址所對(duì)應(yīng)的物理頁號(hào),則根據(jù)所述全局2級(jí)映射表索引所述固態(tài)硬盤中的所述3級(jí)映射表,將所述固態(tài)硬盤中的所述3級(jí)映射表中存儲(chǔ)的所述邏輯區(qū)塊地址及與所述邏輯區(qū)塊地址對(duì)應(yīng)的物理頁號(hào)讀出;
[0176]步驟S405,從所述物理頁上讀取所述數(shù)據(jù);
[0177]步驟S406,如果所述命令是寫命令,所述寫命令攜帶待寫入數(shù)據(jù)及所述待寫入數(shù)據(jù)的邏輯區(qū)塊地址,根據(jù)所述全局2級(jí)映射表,查詢所述邏輯區(qū)塊地址所對(duì)應(yīng)的所述主存中的所述3級(jí)映射表,所述全局2級(jí)映射表用于索引所述主存中3級(jí)映射表和固態(tài)硬盤中的3級(jí)映射表,所述3級(jí)映射表用于存儲(chǔ)所述邏輯區(qū)塊地址及與所述邏輯區(qū)塊地址對(duì)應(yīng)的物理頁號(hào)的映射關(guān)系;
[0178]步驟S407,如果所述主存中不存在所述邏輯區(qū)塊地址所對(duì)應(yīng)的3級(jí)映射表,則根據(jù)所述全局2級(jí)映射表索引所述固態(tài)硬盤中的3級(jí)映射表中,將所述邏輯區(qū)塊地址所對(duì)應(yīng)的所述固態(tài)硬盤中的3級(jí)映射表讀出并存儲(chǔ)到所述主存中;
[0179]步驟S408,控制固態(tài)硬盤控制器為所述邏輯區(qū)塊地址分配物理頁號(hào),并將所述物理頁號(hào)存儲(chǔ)在所述主存中所述邏輯區(qū)塊地址所對(duì)應(yīng)的三級(jí)映射表中;
[0180]步驟S409,在所述主存中所述邏輯區(qū)塊地址所對(duì)應(yīng)的三級(jí)映射表中,將待寫入數(shù)據(jù)寫入所述物理頁號(hào)所對(duì)應(yīng)的存儲(chǔ)空間。
[0181]有益效果:通過根據(jù)將要被讀或?qū)懭氲臄?shù)據(jù)的邏輯區(qū)塊地址,在2級(jí)映射表中查找所述邏輯區(qū)塊地址對(duì)應(yīng)的3級(jí)映射表,從所述3級(jí)映射表中讀出所述數(shù)據(jù)或者在為所述邏輯區(qū)塊地址分配的物理頁號(hào)中寫入所述數(shù)據(jù)的多級(jí)順序映射方案,由于在2級(jí)映射表中僅存儲(chǔ)3級(jí)映射表的索引,而且只有在主存中的3級(jí)映射表沒有存儲(chǔ)所述待讀或代寫入數(shù)據(jù)時(shí),才將固態(tài)硬