緩存方法及控制系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,特別是涉及一種緩存方法及控制系統(tǒng)。
【背景技術(shù)】
[0002]在計(jì)算機(jī)存儲領(lǐng)域中,由于NAND Flash (資料儲存型閃存)的讀寫是以page (頁)為單位,而文件系統(tǒng)中的讀寫則以sector (扇區(qū))為單位,因此NAND Flash與文件系統(tǒng)之間需要一種緩存系統(tǒng),該緩存系統(tǒng)在延緩數(shù)據(jù)寫入NAND Flash設(shè)備期間,還可以過濾掉短期數(shù)據(jù)。通常,采用的方法是將sector地址與page地址進(jìn)行轉(zhuǎn)換,完成緩存層;但是,該緩存層不能夠?qū)?shù)據(jù)的先后順序進(jìn)行排序,因此采用該緩存層進(jìn)行數(shù)據(jù)讀寫時(shí),時(shí)效性較差。
【發(fā)明內(nèi)容】
[0003]基于此,有必要針對傳統(tǒng)的緩存層時(shí)效性較差的問題,提供一種緩存方法及控制系統(tǒng)。
[0004]一種緩存方法,包括如下步驟:
[0005]S100,控制緩存以頁為單位組織為緩存層,并控制所述緩存層分為讀緩存層和寫緩存層;
[0006]S200,根據(jù)數(shù)據(jù)讀取或?qū)懭氲臅r(shí)間先后順序,實(shí)時(shí)動態(tài)調(diào)整所述讀緩存層中頁緩存的排列順序,以及所述寫緩存層中頁緩存的排列順序。
[0007]在其中一個(gè)實(shí)施例中,步驟S200包括如下步驟:
[0008]當(dāng)輸入設(shè)備寫入所述數(shù)據(jù)時(shí),檢測所述寫緩存層中是否存在所述數(shù)據(jù)對應(yīng)的頁數(shù)據(jù);
[0009]當(dāng)所述寫緩存層中存在所述數(shù)據(jù)對應(yīng)的頁數(shù)據(jù)時(shí),控制所述數(shù)據(jù)直接存儲至所述寫緩存層中與所述頁數(shù)據(jù)對應(yīng)的頁緩存中;
[0010]當(dāng)所述寫緩存層中不存在所述數(shù)據(jù)對應(yīng)的頁數(shù)據(jù)時(shí),檢測所述讀緩存層;
[0011]當(dāng)所述讀緩存層中存在所述數(shù)據(jù)對應(yīng)的頁數(shù)據(jù)時(shí),控制所述讀緩存層中與所述頁數(shù)據(jù)對應(yīng)的頁緩存移至所述寫緩存層最前端;
[0012]當(dāng)所述讀緩存層中不存在所述數(shù)據(jù)對應(yīng)的頁數(shù)據(jù)時(shí),檢測所述緩存是否存在第一空緩存層;
[0013]當(dāng)所述緩存存在所述第一空緩存層時(shí),控制所述數(shù)據(jù)存儲至所述第一空緩存層中;
[0014]當(dāng)所述緩存不存在所述第一空緩存層時(shí),控制所述讀緩存層中最末端的頁緩存作為第二空緩存層,并控制所述數(shù)據(jù)存儲至所述第二空緩存層。
[0015]較佳地,還包括如下步驟:
[0016]實(shí)時(shí)檢測所述寫緩存層中的頁緩存數(shù)目;
[0017]當(dāng)所述寫緩存層中的頁緩存數(shù)目大于第一預(yù)設(shè)值時(shí),控制所述寫緩存層中最末端的頁緩存移至Nand Flash中,并控制所述寫緩存層中最末端的頁緩存數(shù)據(jù)存儲至所述讀緩存層,直至所述寫緩存層中的頁緩存數(shù)目小于或等于所述第一預(yù)設(shè)值。
[0018]作為一種可實(shí)施方式,步驟S200還包括如下步驟:
[0019]當(dāng)輸出設(shè)備讀取所述數(shù)據(jù)時(shí),檢測所述寫緩存層中是否存在所述數(shù)據(jù)對應(yīng)的頁數(shù)據(jù);
[0020]當(dāng)所述寫緩存層中存在所述數(shù)據(jù)對應(yīng)的頁數(shù)據(jù)時(shí),控制所述輸出設(shè)備直接讀取所述數(shù)據(jù)對應(yīng)的頁數(shù)據(jù);
[0021]當(dāng)所述寫緩存層中不存在所述數(shù)據(jù)對應(yīng)的頁數(shù)據(jù)時(shí),檢測所述讀緩存層;
[0022]當(dāng)所述讀緩存層中存在所述數(shù)據(jù)對應(yīng)的頁數(shù)據(jù)時(shí),控制與所述頁數(shù)據(jù)對應(yīng)的頁緩存移至所述讀緩存層的最前端;
[0023]當(dāng)所述讀緩存層中不存在所述數(shù)據(jù)對應(yīng)的頁數(shù)據(jù)時(shí),檢測所述緩存是否存在第三空緩存層;
[0024]當(dāng)所述緩存存在所述第三空緩存層時(shí),控制所述數(shù)據(jù)存移至所述第三空緩存層;
[0025]當(dāng)所述緩存不存在所述第三空緩存層時(shí),控制所述讀緩存層中最末端的頁緩存作為第四空緩存層,并控制所述數(shù)據(jù)存移至所述第四空緩存層。
[0026]相應(yīng)的,為實(shí)現(xiàn)上述緩存方法,本發(fā)明還提供了一種緩存控制系統(tǒng),包括第一控制模塊和第二控制模塊,其中:
[0027]所述第一控制模塊,用于控制緩存以頁為單位組織為緩存層,并將所述緩存層分為讀緩存層和寫緩存層;
[0028]所述第二控制模塊,用于根據(jù)數(shù)據(jù)讀取或?qū)懭氲臅r(shí)間先后順序,實(shí)時(shí)動態(tài)調(diào)整所述讀緩存層中頁緩存的排列順序,以及所述寫緩存層中頁緩存的排列順序。
[0029]在其中一個(gè)實(shí)施例中,所述第二控制模塊包括第一檢測單元、第一控制單元、第二檢測單元、第二控制單元、第三檢測單元、第三控制單元和第四控制單元,其中:
[0030]所述第一檢測單元,用于當(dāng)輸入設(shè)備寫入所述數(shù)據(jù)時(shí),檢測所述寫緩存層中是否存在所述數(shù)據(jù)對應(yīng)的頁數(shù)據(jù);
[0031]所述第一控制單元,用于當(dāng)所述寫緩存層中存在所述數(shù)據(jù)對應(yīng)的頁數(shù)據(jù)時(shí),控制所述數(shù)據(jù)直接存儲至所述寫緩存層中與所述頁數(shù)據(jù)對應(yīng)的頁緩存中;
[0032]所述第二檢測單元,用于當(dāng)所述寫緩存層中不存在所述數(shù)據(jù)對應(yīng)的頁數(shù)據(jù)時(shí),檢測所述讀緩存層;
[0033]所述第二控制單元,用于當(dāng)所述讀緩存層中存在所述數(shù)據(jù)對應(yīng)的頁數(shù)據(jù)時(shí),控制所述讀緩存層中與所述頁數(shù)據(jù)對應(yīng)的頁緩存移至所述寫緩存層最前端;
[0034]所述第三檢測單元,用于當(dāng)所述讀緩存層中不存在所述數(shù)據(jù)對應(yīng)的頁數(shù)據(jù)時(shí),檢測所述緩存是否存在第一空緩存層;
[0035]所述第三控制單元,用于當(dāng)所述緩存存在所述第一空緩存層時(shí),控制所述數(shù)據(jù)存儲至所述第一空緩存層中;
[0036]所述第四控制單元,用于當(dāng)所述緩存不存在所述第一空緩存層時(shí),控制所述讀緩存層中最末端的頁緩存作為第二空緩存層,并控制所述數(shù)據(jù)存儲至所述第二空緩存層。
[0037]較佳地,還包括第一檢測模塊和第三控制模塊,其中:
[0038]所述第一檢測模塊,用于實(shí)時(shí)檢測所述寫緩存層中的頁緩存數(shù)目;
[0039]所述第三控制模塊,用于當(dāng)所述寫緩存層中的頁緩存數(shù)目大于第一預(yù)設(shè)值時(shí),控制所述寫緩存層中最末端的頁緩存移至Nand Flash中,并控制所述寫緩存層中最末端的頁緩存數(shù)據(jù)存儲至所述讀緩存層,直至所述寫緩存層中的頁緩存數(shù)目小于或等于所述第一預(yù)設(shè)值。
[0040]作為一種可實(shí)施方式,所述第二控制模塊還包括第一檢測子單元、第一控制子單元、第二檢測子單元、第二控制子單元、第三檢測子單元、第三控制子單元和第四控制子單元,其中:
[0041]所述第一檢測子單元,用于當(dāng)輸出設(shè)備讀取所述數(shù)據(jù)時(shí),檢測所述寫緩存層中是否存在所述數(shù)據(jù)對應(yīng)的頁數(shù)據(jù);
[0042]所述第一控制子單元,用于當(dāng)所述寫緩存層中存在所述數(shù)據(jù)對應(yīng)的頁數(shù)據(jù)時(shí),控制所述輸出設(shè)備直接讀取所述數(shù)據(jù)對應(yīng)的頁數(shù)據(jù);
[0043]所述第二檢測子單元,用于當(dāng)所述寫緩存層中不存在所述數(shù)據(jù)對應(yīng)的頁數(shù)據(jù)時(shí),檢測所述讀緩存層;
[0044]所述第二控制子單元,用于當(dāng)所述讀緩存層中存在所述頁數(shù)據(jù)對應(yīng)的頁數(shù)據(jù)時(shí),控制與所述數(shù)據(jù)對應(yīng)的頁緩存移至所述讀緩存層的最前端;
[0045]所述第三檢測子單元,用于當(dāng)所述讀緩存層中不存在所述數(shù)據(jù)對應(yīng)的頁數(shù)據(jù)時(shí),檢測所述緩存是否存在第三空緩存層;
[0046]所述第三控制子單元,用于當(dāng)所述緩存存在所述第三空緩存層時(shí),控制所述數(shù)據(jù)存移至所述第三空緩存層;
[0047]所述第四控制子單元,用于當(dāng)所述緩存不存在所述第三空緩存層時(shí),控制所述讀緩存層中最末端的頁緩存作為第四空緩存層,并控制所述數(shù)據(jù)存移至所述第四空緩存層。
[0048]本發(fā)明提供了一種緩存方法及控制系統(tǒng),其中緩存方法為:將緩存以頁為單位組織成緩存層,將該緩存層分為讀緩存層和寫緩存層,并根據(jù)數(shù)據(jù)讀取或?qū)懭氲臅r(shí)間先后順序,實(shí)時(shí)動態(tài)調(diào)整讀緩存層中的頁緩存和寫緩存層中的頁緩存的排列順序。其通過共用讀緩存層和寫緩存層,并實(shí)時(shí)動態(tài)調(diào)整讀緩存層中的頁緩存和寫緩存層中的頁緩存的排列順序,提高了緩存的命中率,有效地解決了傳統(tǒng)的緩存層時(shí)效性較差的問題。
【附圖說明】
[0049]圖1為緩存方法流程圖;
[0050]圖2為緩存方法一具體實(shí)施例示意圖;
[0051]圖3為緩存方法另一具體實(shí)施例示意圖;
[0052]圖4為緩存方法又一具體實(shí)施例示意圖;
[0053]圖5為緩存控制系統(tǒng)一具體實(shí)施例