[发明专利]一种混合存储系统有效

专利信息
申请号: 201310362037.4 申请日: 2013-08-19
公开(公告)号: CN103455283A 公开(公告)日: 2013-12-18
发明(设计)人: 童薇;冯丹;刘景宁;苏福钦;张建权 申请(专利权)人: 华中科技大学
主分类号: G06F3/06 分类号: G06F3/06
代理公司: 华中科技大学专利中心 42201 代理人: 方放
地址: 430074 湖北*** 国省代码: 湖北;42
权利要求书: 查看更多 说明书: 查看更多
摘要: 一种混合存储系统,属于计算机存储领域,解决现有混合存储系统需要多个控制器且各控制器所控制的存储介质单一导致的系统复杂和成本高的问题。本发明由N个存储器和一个控制器构成,每个存储器包括控制器通信模块、存储介质和存储器信息模块;控制器包括主机通信模块、负载控制模块、阵列控制模块、地址映射模块、存储器控制模块和缓存。控制器能够识别主机到达的读写请求并判断写请求的冷热程度与大小,进行负载控制,实现多种存储器的混合存储,由于存储器为存储介质芯片和简单的信息存储芯片,降低混合存储系统替换成本;利用控制器中的阵列控制模块进行数据恢复,提高混合存储系统性能和寿命,降低混合存储系统组建以及使用的成本。
搜索关键词: 一种 混合 存储系统
【主权项】:
一种混合存储系统,由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控制单元、闪存控制单元或磁盘控制单元,然后向阵列控制模块发送数据恢复指令。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201310362037.4/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top