[發明專利]一種優化固態硬盤緩存管理方法在審
| 申請號: | 201811336073.2 | 申請日: | 2018-11-10 |
| 公開(公告)號: | CN109446113A | 公開(公告)日: | 2019-03-08 |
| 發明(設計)人: | 不公告發明人 | 申請(專利權)人: | 蘇州韋科韜信息技術有限公司 |
| 主分類號: | G06F12/0871 | 分類號: | G06F12/0871 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 215500 江蘇省蘇州市常熟市高*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 緩存管理單元 邏輯鏈 分配 固態硬盤 緩存管理 索引 管理單元 子緩存 表頭 移除 優化 回收 申請 | ||
本發明提出了一種優化固態硬盤緩存管理方法,其特征在于通過邏輯鏈表的索引,將連續的2個索引值作為一個緩存管理單元,每個緩存管理單元每分配一個子緩存管理單元,分配數加1,當分配數為2時,將該緩存管理單元從邏輯鏈表中移除。其特征在于當已分配使用的緩存管理單元的兩個子緩存管理單元都被回收時,將該緩存管理單元掛到邏輯鏈表尾部。其特征在于每次申請緩存管理單元時都從邏輯鏈表的表頭開始分配緩存管理單元。
技術領域
本發明涉及固態硬盤控制技術,特別涉及一種優化固態硬盤緩存管理方法。
背景技術
SATASSD的控制器設計和固件(FW)設計需要遵循ATA接口協議,ATA協議規定原生命令隊列NCQ(NativeCommandQueuing)讀寫命令數據傳輸的數據幀信息結構DataFISDataFrameInformationStructure,簡稱數據包)最大也建議為8KB,因為每次建立數據包的傳輸需要消耗一定的時間,所以單個命令形成的數據包越少,建立數據包傳輸造成的時間消耗越少。最理想的情況是命令的每個數據包都是8KB的,最后一筆不足8KB的數據包除外。
當前SATASSD的固件設計中閃存轉換層FTL(FlashTranslationLayer)采用4KB的映射機制,理所當然的緩存管理模塊也是以4KB為單位管理且以鏈表形式管理,這樣比較簡單實用,如圖1是常規的緩存管理示意圖,邏輯鏈表上維護的是物理緩存塊的索引值,緩存Buffer管理模塊每次從邏輯鏈表頭部摘下一個索引值,計算出該索引值對應的4KB物理緩存塊的地址給申請者,申請者使用完歸還后,緩存管理模塊根據緩存塊地址逆向計算出對應的索引值,把該索引值掛到鏈表尾部。由于固件設計中命令重排序的策略,最先申請出去的緩存塊不一定優先與主機傳輸數據,所以也并不能保證優先申請出去的緩存塊優先返還給緩存管理模塊,即最后邏輯鏈表上相鄰的索引值對應的物理塊地址不一定是物理連續的,見圖1中邏輯索引與物理塊的對應關系,存在交錯情況。
為了提高8KBDataFIS的個數,在固件中增加一個拼接模塊,如圖2所示,4KB的buffer首先放入拼接模塊,由拼接模塊嘗試拼成8KB的DataFIS后再傳給SSD控制器,但是這技術依賴于連續兩個從buffer模塊申請出的4KBbuffer在物理上也是連續的,但是由于SSD內部存在命令重排序的策略,在SSD運行期間,buffer模塊中邏輯鏈表上相鄰的索引值不一定都是物理連續的,如果這種不連續概率很大,那么拼接模塊的作用也不大。
為了保證8KBDataFIS的拼成,現有技術中存在一個拼接8KBDataFIS的模塊,圖2是增加拼接模塊后的數據結構圖,提交至DataFISFIFO的buffer塊地址段首先送入拼接模塊,由拼接模塊決定是否形成DataFIS描述符,該模塊維護了以下字段:
1.start_addr:緩存的buffer塊起始地址。
2.end_addr:緩存的buffer塊末尾地址。
3.is_valid:指示是否有有效緩存。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于蘇州韋科韜信息技術有限公司,未經蘇州韋科韜信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811336073.2/2.html,轉載請聲明來源鉆瓜專利網。





