[發明專利]一種混合存儲系統有效
| 申請號: | 201310362037.4 | 申請日: | 2013-08-19 |
| 公開(公告)號: | CN103455283A | 公開(公告)日: | 2013-12-18 |
| 發明(設計)人: | 童薇;馮丹;劉景寧;蘇福欽;張建權 | 申請(專利權)人: | 華中科技大學 |
| 主分類號: | G06F3/06 | 分類號: | G06F3/06 |
| 代理公司: | 華中科技大學專利中心 42201 | 代理人: | 方放 |
| 地址: | 430074 湖北*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 混合 存儲系統 | ||
1.一種混合存儲系統,由N個存儲器和一個控制器構成,N=1~128,其特征在于:
A.所述每個存儲器包括控制器通信模塊、存儲介質和存儲器信息模塊,控制器通信模塊分別與存儲介質、存儲器信息模塊電信號連接;
A1.所述控制器通信模塊由高速串行總線和低速串行總線構成;
高速串行總線將存儲器控制模塊的存儲器通信子模塊發送的數據包解析為控制信號,發送給存儲介質;將存儲介質讀出的數據封裝為數據包,發送至存儲器控制模塊;
低速串行總線接收存儲器通信子模塊發送的讀信號,從存儲器信息模塊讀出存儲器的基本信息發送至存儲器通信子模塊;接收存儲器通信子模塊發送的寫信號和數據,將數據寫入存儲器通信子模塊;
A2.所述存儲介質用于存放數據,為閃存、PCM和磁盤中的一種或多種;
A3.所述存儲器信息模塊存放存儲器的基本信息,包括存儲器容量、存儲介質類型和存儲器狀態;存儲器容量表示存儲器內存儲介質總容量大小,存儲介質類型表示存儲器內存儲介質類型為閃存、PCM或磁盤,存儲器狀態分為正常或失效,表示存儲器的存儲介質正常或失效;
B.所述控制器包括主機通信模塊、負載控制模塊、陣列控制模塊、地址映射模塊、存儲器控制模塊和緩存;存儲器控制模塊包含通過內部總線一一對應連接的N個可編程子模塊和N個存儲器通信子模塊,并具有一個存儲器參數表,各存儲器通信子模塊由高速串行總線和低速串行總線構成;
主機通信模塊、負載控制模塊、陣列控制模塊和地址映射模塊依次兩兩之間通過內部總線連接,地址映射模塊與存儲器控制模塊的N個可編程子模塊通過內部總線連接,所述緩存分別與主機通信模塊、負載控制模塊、陣列控制模塊、地址映射模塊通過內部總線連接;
每個存儲器通信子模塊的高速串行總線和低速串行總線分別對應連接存儲器的控制器通信模塊的高速串行總線和低速串行總線,每個存儲器通信子模塊的高速串行總線將可編程子模塊的控制信號封裝成數據包,發送給存儲器的控制器通信模塊;將來自控制器通信模塊的數據包按照Aurora通信協議解析成數據,發送至可編程子模塊;
每個存儲器通信子模塊的低速串行總線為IIC總線,將存儲器控制模塊發送的寫信號和數據發送至存儲器的控制器通信模塊;將存儲器控制模塊發送的讀信號發送至存儲器通信模塊;
當存儲器的存儲介質類型分別為閃存、PCM和磁盤時,對應的可編程子模塊分別配置為閃存控制單元、PCM控制單元或磁盤控制單元;
所述存儲器參數表為N×4的數組,其中N為存儲器的序號,每個存儲器對應4個表項:存儲器通信子模塊狀態、存儲器容量、存儲介質類型和存儲器狀態,存儲器通信子模塊狀態分為連接和未連接,表示存儲器通信子模塊是否與存儲器的控制器通信模塊連接,存儲器容量表示存儲器的存儲介質總容量大小,存儲介質類型表示存儲器的存儲介質類型為閃存、PCM或磁盤,存儲器狀態分為正常或失效,表示存儲器的存儲介質正常或失效;
所述緩存為SDRAM構成的存儲空間,為待寫入數據、讀取數據的緩沖區;
B1.所述主機通信模塊執行如下操作:
B1-1.按照主機通信協議標準,對主機發送的請求數據包解析為寫請求或讀請求;所述請求數據包包括請求地址、請求長度、讀寫標志、內存地址;讀寫標志為0,執行B1-2;讀寫標志為1,執行B1-3;
B1-2.將內存地址中請求長度的數據存放在緩存中,作為待寫入數據,然后將請求數據包解析為寫請求,分別將請求數據包中請求地址、請求長度、內存地址作為寫請求的寫數據地址、寫數據長度、內存地址,將數據存放在緩存中的地址作為寫請求的緩存地址,再將寫請求發送至負載控制模塊;
B1-3.將請求數據包解析為讀請求,分別將請求數據包中請求地址、請求長度、內存地址作為讀請求的讀數據地址、讀數據長度、內存地址;再將讀請求發送至地址映射模塊,等待地址映射模塊發送來的讀請求完成包,將其封裝成請求完成數據包發送給主機;
B2.所述負載控制模塊執行如下操作:
B2-1.定義長度為m個單元的數組M,各單元內容初始化為0,m≥1024;
B2-2.當收到寫請求時,其中的寫數據地址,通過哈希函數集合H中的k個獨立哈希函數得到k個哈希值,每個哈希值對應數組M的一個單元地址;將k個哈希值所對應數組M的k個單元內容加1,然后判斷所述k個單元內容是否都大于閾值T,是則該寫請求對應的寫入數據為熱數據,否則該寫請求對應的寫入數據為冷數據,T≥10;
所述哈希函數集合H={h1,h2,…,hk},k<m,哈希值的值域為[0~m-1];
B2-3.判斷對所述寫請求中寫數據長度是否大于W,是則該寫請求對應的寫入數據為大塊數據,否則該寫請求對應的寫入數據為小塊數據,W=256KB~4MB;
B2-4.經過上述操作,將寫請求對應的寫入數據分為大塊熱數據、小塊熱數據、大塊冷數據或小塊冷數據,并針對不同類型的寫入數據,將對應的寫請求中寫數據地址轉換為存儲器地址,加入到寫請求中,同時寫請求中其它項不變,形成第二層寫請求,再將第二層寫請求發送到陣列控制模塊;
B3.所述陣列控制模塊執行如下操作:
B3-1.根據用戶設置的RAID0、RAID1或RAID5陣列類型,從存儲器控制模塊讀取存儲器參數表,對不同存儲介質的存儲器,將負載控制模塊送來的第二層寫請求中的存儲器地址重映射為寫數據邏輯地址,將寫數據邏輯地址加入第二層寫請求中,形成第三層寫請求,再將第三層寫請求送到地址映射模塊,組建RAID0、RAID1或RAID5的PCM陣列,組建RAID0、RAID1或RAID5的閃存陣列,組建RAID0、RAID1或RAID5的磁盤陣列;
B3-2.某存儲器失效時,待用戶以新的存儲器替換該失效存儲器后,根據存儲器控制模塊發送的數據恢復指令,按照陣列類型,陣列控制模塊對新的存儲器進行有選擇的數據恢復:對于RAID0陣列,數據無法恢復,陣列控制模塊運行結束;對于RAID1陣列,陣列控制模塊將鏡像數據拷貝到新的存儲器中;對于RAID5陣列,陣列控制模塊通過冗余存儲器的數據以及校驗值,進行異或操作,得到恢復數據,存放入新的存儲器中;
B4.所述地址映射模塊執行如下操作:
地址映射模塊維護一個地址映射表,地址映射表包含一一對應的數據邏輯地址和數據物理地址;
B4-1.收到第三層寫請求時,判斷寫數據邏輯地址是否在閃存的地址空間,是則執行B4-1a,否則執行B4-1b;
B4-1a.將第三層寫請求中的寫數據邏輯地址按照地址映射算法轉換為存儲介質物理地址,然后在地址映射表的表項數據邏輯地址中檢測是否存在第三層寫請求中的寫數據地址,是則將與所述寫數據地址相同的數據邏輯地址對應的數據物理地址更新為所述存儲介質數據物理地址,并將原數據物理地址標記為失效;否則在地址映射表的表項數據邏輯地址和數據物理地址中分別加入所述寫數據地址及其對應的存儲介質物理地址;將所述存儲介質物理地址發送至存儲器控制模塊,進行B4-1c;
B4-1b.在地址映射表的表項數據邏輯地址中檢測是否存在第三層寫請求中的寫數據地址,是則將與寫數據地址相同的數據邏輯地址對應的數據物理地址更新為第三層寫請求中的寫數據邏輯地址;否則在地址映射表的表項數據邏輯地址和數據物理地址中分別加入所述寫數據地址及其對應的寫數據邏輯地址;將所述寫數據邏輯地址發送至存儲器控制模塊,進行B4-1c;
B4-1c.根據第三層寫請求中的緩存地址,對緩存中的待寫入數據通過校驗算法生成校驗值,將待寫入數據加入校驗值后發送至存儲器控制模塊;
最后向存儲器控制模塊發送寫數據指令;
B4-2.收到主機通信模塊發來的讀請求時,在地址映射表的表項數據邏輯地址中檢測是否存在讀請求中的讀數據地址,是則執行B4-2a,否則向主機通信模塊發送讀請求完成包,表明讀請求錯誤;
B4-2a.將與讀數據地址相同的數據邏輯地址對應的數據物理地址發送至存儲器控制模塊,然后向存儲器控制模塊發送讀數據指令;
B4-2b.待收到存儲器控制模塊讀出數據后,對讀取數據通過校驗算法生成新校驗值,檢驗新校驗值是否與所述校驗值相同,是則將讀取數據存入緩存中,向主機通信模塊發送讀請求完成包,表明讀請求成功;否則進行B4-2c;
B4-2c.根據新校驗值和所述校驗值,判斷讀取數據是否能糾錯,是則進行糾錯,將糾錯后的讀取數據存入緩存中,向主機通信模塊發送讀請求完成包,表明讀請求成功;否則向主機通信模塊發送讀請求完成包,表明讀請求失敗;
所述讀請求完成包包括讀取數據地址、讀取數據長度、內存地址、緩存地址和讀取狀態標志,讀取數據地址、讀取數據長度和內存地址分別為讀請求的讀取數據地址、讀取數據長度、內存地址,緩存地址為讀取數據存放在緩存的地址,讀取狀態標志分為成功、失敗和錯誤三種,分別表示當前數據校驗成功、當前數據校驗失敗以及讀數據地址錯誤;當前數據校驗失敗定義為存放該待讀取數據的存儲器失效,提示用戶更換存儲器;
B5.所述存儲器控制模塊執行如下操作:
B5-1.當混合存儲系統上電時,根據存儲器的存儲介質類型,將存儲器控制模塊中對應的可編程子模塊分別配置為PCM控制單元、閃存控制單元或磁盤控制單元;
B5-2.判斷來自地址映射模塊的存儲介質物理地址、寫數據邏輯地址或數據物理地址是否存在于閃存的物理地址空間,是則執行B5-2a,否則判斷所述地址是否存在于PCM的物理地址空間,是則執行B5-2b,否則執行B5-2c;
B5-2a.對所述存儲介質物理地址、寫數據邏輯地址或數據物理地址進行取模運算,得到閃存控制單元號,然后將所述存儲介質物理地址、寫數據邏輯地址或數據物理地址存放于閃存控制單元號對應的閃存控制單元內的地址寄存器中;收到待寫入數據后,將待寫入數據存放于相應閃存控制單元內的數據寄存器中,執行B5-3;
B5-2b.對所述存儲介質物理地址、寫數據邏輯地址或數據物理地址進行取模運算,得到PCM控制單元號,然后將所述存儲介質物理地址、寫數據邏輯地址或數據物理地址存放于PCM控制單元號對應的PCM控制單元內的地址寄存器中;收到待寫入數據后,將待寫入數據存放于相應PCM控制單元內的數據寄存器中,執行B5-3;
B5-2c.對所述存儲介質物理地址、寫數據邏輯地址或數據物理地址進行取模運算,得到磁盤控制單元號,然后將所述存儲介質物理地址、寫數據邏輯地址或數據物理地址存放于磁盤控制單元號對應的磁盤控制單元內的地址寄存器中;收到待寫入數據后,將待寫入數據存放于相應磁盤控制單元內的數據寄存器中,執行B5-3;
B5-3.當收到地址映射模塊的寫數據指令,執行B5-3a;當收到地址映射模塊的讀數據指令,執行B5-3b;
B5-3a.閃存控制單元、PCM控制單元或磁盤控制單元生成控制信號,將其數據寄存器中的待寫入數據通過存儲器通信子模塊的高速串行總線寫入存儲器的存儲介質相應物理地址中;
B5-3b.閃存控制單元、PCM控制單元或磁盤控制單元生成控制信號,通過存儲器通信子模塊的高速串行總線從存儲器的存儲介質相應物理地址中讀取數據,放入數據寄存器中,然后發送至地址映射模塊;
B5-4.當某存儲器失效時,待用戶以新的存儲器替換該失效存儲器后,接到外部發送的中斷信息,根據新的存儲器的存儲介質類型,將存儲器控制模塊中對應的可編程子模塊配置為相應的PCM控制單元、閃存控制單元或磁盤控制單元,然后向陣列控制模塊發送數據恢復指令。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華中科技大學,未經華中科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310362037.4/1.html,轉載請聲明來源鉆瓜專利網。





