循序存取偵測(cè)系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)存取技術(shù)領(lǐng)域,尤其涉及一種循序存取偵測(cè)系統(tǒng)及方法。
【背景技術(shù)】
[0002] 在計(jì)算機(jī)系統(tǒng)上,磁盤IO的管理是關(guān)乎系統(tǒng)效能的關(guān)鍵。而在新興的儲(chǔ)存型快閃 記憶體磁盤(NAND flash disk)上,由于其高速的讀寫速度,可為計(jì)算機(jī)系統(tǒng)效能帶來(lái)顯 著提升,故已開始被數(shù)據(jù)庫(kù)系統(tǒng)所重視。然而NAND flash對(duì)于隨機(jī)存取的讀寫效率雖遠(yuǎn)高 于磁盤,但其連續(xù)存取的讀取效率則可被多顆硬盤的獨(dú)立冗余磁盤陣列(Redundant Array of Independent Disk, RAID)系統(tǒng)追平。為了保存NAND flash珍貴的寫入次數(shù)限制,進(jìn)而 提高其使用年限,降低建置成本,目前已經(jīng)有算法可以通過記錄磁盤存取的行為次數(shù)中看 出該存取是不是為連續(xù)存取。若該存取是連續(xù)存取,則不予寫入NAND flash。此法可藉由 記錄每一筆進(jìn)入的扇區(qū)編號(hào)(sector number),進(jìn)而得知該存取是不是為連續(xù)性的存取或 是隨機(jī)性存取,此方法被稱之為"循序存取偵測(cè)法"(sequential I/O detection)。
[0003] 然而,目前的循序存取偵測(cè)法是主要使用最近引用串行內(nèi)存塊LRU(Least Recently Used)中的LRU列表(LRU串列),LRU列表的特性是最近被參考到的元素會(huì)排在 LRU列表的最前面,而越久沒被用到的元素則會(huì)排在越后面。而當(dāng)LRU列表空間不足以容納 新數(shù)據(jù)時(shí),則將LRU列表的尾端的元素刪除,并將新數(shù)據(jù)插入到LRU列表中,再將該新數(shù)據(jù) 移至LRU列表的最前端。如此可以達(dá)到不需使用計(jì)數(shù)器的情況下就能知道LRU列表中各個(gè) 元素被參考的頻繁度。但是此LRU列表的搜尋方法為循序搜尋,所以在最差的狀況下,有可 能從LRU列表的最頭端搜尋到最尾端,因而造成了搜尋效率很低。
【發(fā)明內(nèi)容】
[0004] 鑒于以上內(nèi)容,有必要提供一種循序存取偵測(cè)系統(tǒng)及方法,其可以減少NAND flash的扇區(qū)的寫入次數(shù),便可節(jié)省大量的逐筆統(tǒng)計(jì)所需的時(shí)間和空間。
[0005] -種循序存取偵測(cè)系統(tǒng),該系統(tǒng)包括:判斷模塊,用于當(dāng)儲(chǔ)存型快閃記憶體磁盤 NAND flash端收到某個(gè)存取文件的一個(gè)存取單元時(shí),判斷所述存取單元所對(duì)應(yīng)的存取文件 是否為連續(xù)存取文件;標(biāo)識(shí)模塊,用于當(dāng)所述存取單元所對(duì)應(yīng)的存取文件是連續(xù)存取文件 時(shí),將該存取文件所對(duì)應(yīng)的循序存取標(biāo)記標(biāo)識(shí)為是循序存取任務(wù)的標(biāo)記。
[0006] -種循序存取偵測(cè)方法,該方法包括:判斷步驟,當(dāng)儲(chǔ)存型快閃記憶體磁盤NAND flash端收到某個(gè)存取文件的一個(gè)存取單元時(shí),判斷所述存取單元所對(duì)應(yīng)的存取文件是否 為連續(xù)存取文件;標(biāo)識(shí)步驟一,當(dāng)所述存取單元所對(duì)應(yīng)的存取文件是連續(xù)存取文件時(shí),將該 存取文件所對(duì)應(yīng)的循序存取標(biāo)記標(biāo)識(shí)為是循序存取任務(wù)的標(biāo)記。
[0007] 相較于現(xiàn)有技術(shù),本發(fā)明循序存取偵測(cè)系統(tǒng)及方法,通過采用二叉查找樹及LRU 列表的方法來(lái)建立列表中每個(gè)結(jié)點(diǎn)間的聯(lián)系,這樣列表具有二叉查找樹及LRU列表兩種數(shù) 據(jù)結(jié)構(gòu),故不需要以指針等方式再去進(jìn)行搜尋列表中各個(gè)結(jié)點(diǎn)的連結(jié),因此結(jié)點(diǎn)間可快速 的互相參照,提高了搜尋效率,減少NAND flash的扇區(qū)的寫入次數(shù),便可節(jié)省大量的逐筆統(tǒng) 計(jì)所需的時(shí)間。
【附圖說明】
[0008] 圖1是本發(fā)明循序存取偵測(cè)系統(tǒng)的應(yīng)用環(huán)境圖。
[0009] 圖2是本發(fā)明循序存取偵測(cè)系統(tǒng)的較佳實(shí)施例的模塊圖。
[0010] 圖3及圖4是本發(fā)明循序存取偵測(cè)方法的較佳實(shí)施例的流程圖。
[0011] 圖5是列表的二叉查找樹數(shù)據(jù)結(jié)構(gòu)示意圖。
[0012] 圖6是重排后的二叉查找樹數(shù)據(jù)結(jié)構(gòu)示意圖。
[0013] 主要元件符號(hào)說明
[0014]
[0015]
【主權(quán)項(xiàng)】
1. 一種循序存取偵測(cè)系統(tǒng),其特征在于,該系統(tǒng)包括: 判斷模塊,用于當(dāng)儲(chǔ)存型快閃記憶體磁盤NAND flash端收到某個(gè)存取文件的一個(gè)存取 單元時(shí),判斷所述存取單元所對(duì)應(yīng)的存取文件是否為連續(xù)存取文件; 標(biāo)識(shí)模塊,用于當(dāng)所述存取單元所對(duì)應(yīng)的存取文件是連續(xù)存取文件時(shí),將該存取文件 所對(duì)應(yīng)的循序存取標(biāo)記標(biāo)識(shí)為是循序存取任務(wù)的標(biāo)記。
2. 如權(quán)利要求1所述的循序存取偵測(cè)系統(tǒng),其特征在于,所述標(biāo)識(shí)模塊,還用于當(dāng)所述 存取單元所對(duì)應(yīng)的存取文件不是連續(xù)存取文件時(shí),將該存取文件所對(duì)應(yīng)的循序存取標(biāo)記標(biāo) 識(shí)為是不循序存取任務(wù)的標(biāo)記。
3. 如權(quán)利要求1所述的循序存取偵測(cè)系統(tǒng),其特征在于,該系統(tǒng)還包括: 查找模塊,用于當(dāng)最近引用串行內(nèi)存塊LRU的列表的所有結(jié)點(diǎn)中不存在與所述存取單 元相連續(xù)的存取單元時(shí),先根據(jù)所述列表的LRU列表數(shù)據(jù)結(jié)構(gòu)查找將要存儲(chǔ)所述存取單元 的結(jié)點(diǎn),該結(jié)點(diǎn)記為第二結(jié)點(diǎn),及在所述列表中查找數(shù)值與所述存取單元的編號(hào)相同的結(jié) 點(diǎn),將該結(jié)點(diǎn)記為第H結(jié)點(diǎn); 記錄模塊,用于記錄第H結(jié)點(diǎn)所對(duì)應(yīng)的累加連續(xù)存取次數(shù); 更新模塊,用于將所述第二結(jié)點(diǎn)的數(shù)值更新為所述存取單元的編號(hào); 移動(dòng)模塊,用于移動(dòng)所述第二結(jié)點(diǎn)在所述列表的LRU列表數(shù)據(jù)結(jié)構(gòu)中的位置使第二結(jié) 點(diǎn)排在所述列表的LRU列表數(shù)據(jù)結(jié)構(gòu)的最前面; 重排模塊,用于根據(jù)二叉查找樹的特點(diǎn)及所述第二結(jié)點(diǎn)的數(shù)值重排所述列表的二叉查 找樹數(shù)據(jù)結(jié)構(gòu); 累加模塊,用于將所述存取單元的存取的一次次數(shù)及所記錄的第H結(jié)點(diǎn)所對(duì)應(yīng)的累加 連續(xù)存取次數(shù)進(jìn)行累加計(jì)算更新后的第二結(jié)點(diǎn)所對(duì)應(yīng)的累加連續(xù)存取次數(shù)。
4. 如權(quán)利要求3所述的循序存取偵測(cè)系統(tǒng),其特征在于,記錄模塊還用于,當(dāng)在所述列 表中沒有查找數(shù)值與所述存取單元的編號(hào)相同的結(jié)點(diǎn)時(shí),記錄第H結(jié)點(diǎn)所對(duì)應(yīng)的累加連續(xù) 存取次數(shù)為0。
5. 如權(quán)利要求3所述的循序存取偵測(cè)系統(tǒng),其特征在于,所述重排模塊,還用于當(dāng)所述 列表中存在第H結(jié)點(diǎn)時(shí),先刪除所述第H結(jié)點(diǎn),再重排所述列表的二叉查找樹數(shù)據(jù)結(jié)構(gòu)。
6. 如權(quán)利要求3所述的循序存取偵測(cè)系統(tǒng),其特征在于,該系統(tǒng)還包括: 所述查找模塊,還用于當(dāng)LRU的列表中存在與所述存取單元相連續(xù)的存取單元時(shí),將 與所述存