亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種提高固態(tài)硬盤順序?qū)懢彺嫘实姆椒ㄅc流程

文檔序號:11677203閱讀:372來源:國知局
一種提高固態(tài)硬盤順序?qū)懢彺嫘实姆椒ㄅc流程

本發(fā)明涉及固態(tài)硬盤控制技術(shù),特別涉及一種提高固態(tài)硬盤順序?qū)懢彺嫘实姆椒ā?/p>



背景技術(shù):

主機每次發(fā)起的對ssd的操作的數(shù)據(jù)都對應(yīng)了一段邏輯塊地址lba(logicalblockaddress)地址,即[lba_x,lba_y],lba_x表示這段lba區(qū)間的起始地址,lba_y表示這段lba區(qū)間的末尾地址,每個lba對應(yīng)512b的數(shù)據(jù)。為保證數(shù)據(jù)一致性,ssd的固件需要記錄數(shù)據(jù)緩存datacache中有緩存數(shù)據(jù)的lba地址,以便判斷主機后續(xù)發(fā)起的寫操作數(shù)據(jù)是否命中了datacache,如果命中則需要把數(shù)據(jù)緩存datacache中的舊數(shù)據(jù)覆蓋掉。順序?qū)懼傅氖侵鳈C發(fā)起寫數(shù)據(jù)的lba都是連續(xù)的。通過分析主機對ssd普遍都存在順序讀寫的特征,因此存儲最近一段時間的操作數(shù)據(jù)有利于提升順序讀寫的性能。

目前的固件設(shè)計中datacache的緩存方式為線性緩存,假設(shè)datacache大小為4kb,主機向ssd發(fā)起4kb的數(shù)據(jù),對應(yīng)的lba地址段為[lba0,lba7],則固件按照這個順序記錄這些lba,圖1是現(xiàn)有技術(shù)線性緩存示例。當(dāng)后續(xù)主機又向ssd發(fā)起512b的數(shù)據(jù),對應(yīng)的lba地址為lba8,那么固件需要判斷datacache中是否已存在lba8,線性cache對應(yīng)的遍歷方式也是線性遍歷,從datacache中第一個緩存內(nèi)容開始向后一個個查找,則需要查找8次才能判斷為非命中。該技術(shù)的時間復(fù)雜度為o(n),n為datacache中的有效lba地址個數(shù)。因此存在系統(tǒng)消耗大,效率低的問題。



技術(shù)實現(xiàn)要素:

針對以上缺陷,本發(fā)明目的如何提升緩存數(shù)據(jù)的遍歷效率,實現(xiàn)提升寫緩存效率的目的。

為了解決以上問題本發(fā)明提出了一種提高固態(tài)硬盤順序?qū)懢彺嫘实姆椒?,固態(tài)硬盤創(chuàng)建緩存數(shù)據(jù)地址列表,固態(tài)硬盤接收到主機發(fā)起的寫操作,通過檢索緩存數(shù)據(jù)地址列表判定是否命中,其特征在于緩存數(shù)據(jù)地址列表包括緩存數(shù)據(jù)的lba地址和緩存數(shù)據(jù)的lba地址對應(yīng)的哈希值key,key_x=lba_x%n,key_x為主機發(fā)起的寫操作的lba地址,n=每個緩存塊大小/512;固態(tài)硬盤接收到主機發(fā)起的寫操作先計算該寫操作的對應(yīng)lba地址對應(yīng)的哈希值key_n;直接判斷緩存數(shù)據(jù)地址列表是否存在哈希值為key_n的緩存數(shù)據(jù),如果存在則判定當(dāng)前寫操作命中;否則則判定當(dāng)前寫操作沒有命中。

根據(jù)權(quán)利要求1所述的提高固態(tài)硬盤順序?qū)懢彺嫘实姆椒?,其特征在于固態(tài)硬盤接收到主機發(fā)起的寫操作先計算該寫操作的對應(yīng)lba地址對應(yīng)的哈希值key_n;直接判斷緩存數(shù)據(jù)地址列表是否存在哈希值為key_n的緩存數(shù)據(jù),如果存在則判定當(dāng)前寫操作命中,將寫入的數(shù)據(jù)覆蓋掉該lba地址對應(yīng)的緩存中舊數(shù)據(jù);否則則判定當(dāng)前寫操作沒有命中,把lba地址掛到哈希值key_n對應(yīng)的緩存數(shù)據(jù)地址列表中,對應(yīng)的寫數(shù)據(jù)會直接寫到緩存中。

本發(fā)明通過改進緩存數(shù)據(jù)地址列表結(jié)構(gòu),降低寫操作對緩存數(shù)據(jù)的遍歷時間復(fù)雜度,達到提升順序?qū)懢彺嫘实募夹g(shù)效果。

附圖說明

圖1是現(xiàn)有技術(shù)線性緩存示例;

圖2是改進后的緩存方式示例。

具體實施方式

下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

圖2是改進后的緩存方式示例,改進后的緩存數(shù)據(jù)地址列表新增加了緩存數(shù)據(jù)的lba地址對應(yīng)的哈希值key,key_x=lba_x%n,key_x為主機發(fā)起的寫操作的lba地址,n=每個緩存塊大小/512;固態(tài)硬盤接收到主機發(fā)起的寫操作先計算該寫操作的對應(yīng)lba地址對應(yīng)的哈希值key_n;直接判斷緩存數(shù)據(jù)地址列表是否存在哈希值為key_n的緩存數(shù)據(jù),如果存在則判定當(dāng)前寫操作命中;否則則判定當(dāng)前寫操作沒有命中,本例中假設(shè)每個緩存塊大小為4kb,每個lba對應(yīng)512b的數(shù)據(jù);主機向ssd發(fā)起4kb的數(shù)據(jù),對應(yīng)的lba地址段為[lba0,lba7],lba0對應(yīng)的哈希值為key0,所以將lba0掛載到key0對應(yīng)的列表下,以此類推,lba0~lba7在緩存數(shù)據(jù)地址列表中的分布情況如圖2所示。當(dāng)主機再發(fā)起對lba8的順序?qū)?,固件直接計算出lba8對應(yīng)的哈希值key=8%8=0,然后直接檢查緩存數(shù)據(jù)地址列表中key0對應(yīng)的列中有無lba8,發(fā)現(xiàn)該列中只有l(wèi)ba0,并沒有l(wèi)ba8,所以為非命中。在順序?qū)憟鼍跋滦录夹g(shù)的時間復(fù)雜度為o(1),大大提升了遍歷的效率。

以上所揭露的僅為本發(fā)明一種實施例而已,當(dāng)然不能以此來限定本之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于本發(fā)明所涵蓋的范圍。



技術(shù)特征:

技術(shù)總結(jié)
本發(fā)明公開了一種提高固態(tài)硬盤順序?qū)懢彺嫘实姆椒?,其特征在于緩存?shù)據(jù)地址列表包括緩存數(shù)據(jù)的LBA地址和緩存數(shù)據(jù)的LBA地址對應(yīng)的哈希值Key,Key_x=LBA_x%N,Key_x為主機發(fā)起的寫操作的LBA地址,N=每個緩存塊大小/512;固態(tài)硬盤接收到主機發(fā)起的寫操作先計算該寫操作的對應(yīng)LBA地址對應(yīng)的哈希值Key_n;直接判斷緩存數(shù)據(jù)地址列表是否存在哈希值為Key_n的緩存數(shù)據(jù),如果存在則判定當(dāng)前寫操作命中;否則則判定當(dāng)前寫操作沒有命中。通過改進緩存數(shù)據(jù)地址列表結(jié)構(gòu),降低寫操作對緩存數(shù)據(jù)的遍歷時間復(fù)雜度,達到提升順序?qū)懢彺嫘实募夹g(shù)效果。

技術(shù)研發(fā)人員:許毅;姚蘭;鄭春陽
受保護的技術(shù)使用者:記憶科技(深圳)有限公司
技術(shù)研發(fā)日:2017.03.07
技術(shù)公布日:2017.07.25
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1