[发明专利]一种存储控制器及IO请求处理方法有效
申请号: | 201710008824.7 | 申请日: | 2017-01-05 |
公开(公告)号: | CN106775493B | 公开(公告)日: | 2019-01-25 |
发明(设计)人: | 余思;龚骏辉;赵聪;王成;卢玥 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 存储 控制器 io 请求 处理 方法 | ||
1.一种存储控制器,其特征在于,所述存储控制器适用于有多个存储单元的存储系统,包括分发核心、多个排序核心、请求处理核心和内存设备,所述内存设备内存储有多个输入输出IO请求,每个IO请求指向一个存储单元,所述内存设备内还为每个存储单元设置有对应的共享处理排序索引;
所述分发核心,用于接收IO请求,并将所述接收的IO请求分发至所述多个排序核心;
各个排序核心,用于:
获取由所述分发核心分发的待生成处理排序索引的IO请求;
确定所述待生成处理排序索引的IO请求指向的目标存储单元;
获取所述目标存储单元的IO每秒参数;
根据所述目标存储单元对应的共享处理排序索引的值和所述目标存储单元的IO每秒参数,为所述待生成处理排序索引的IO请求生成处理排序索引;
用所述待生成处理排序索引的IO请求的处理排序索引,更新所述目标存储单元对应的共享处理排序索引;
将所述待生成处理排序索引的IO请求的处理排序索引存入所述各个排序核心对应的索引队列中,所述各个排序核心对应的索引队列存储于所述内存设备且包含了所述各个排序核心为指向所述多个存储单元的IO请求生成的处理排序索引;
所述请求处理核心,用于周期性的处理所述各个排序核心对应的索引队列中最小的处理排序索引对应的IO请求。
2.如权利要求1所述的存储控制器,其特征在于,所述各个排序核心通过以下操作为所述待生成处理排序索引的IO请求生成处理排序索引:
根据所述目标存储单元对应的共享处理排序索引的值与K和所述目标存储单元的IO每秒参数之比的和,计算所述待生成处理排序索引的IO请求的处理排序索引,K为正数。
3.如权利要求2所述的存储控制器,其特征在于,所述各个排序核心在计算所述待生成处理排序索引的IO请求的处理排序索引前,还用于获取当前系统时间;则
所述各个排序核心通过以下操作计算所述待生成处理排序索引的IO请求的处理排序索引:
将根据所述目标存储单元对应的共享处理排序索引的值与K和所述目标存储单元的IO每秒参数之比的和,与所述当前系统时间之间的较大者,作为所述待生成处理排序索引的IO请求的处理排序索引。
4.如权利要求2或3所述的存储控制器,其特征在于,所述各个排序核心,还用于:
在为所述待生成处理排序索引的IO请求生成处理排序索引后的时刻,确定没有被分发至所述各个排序核心的指向所述目标存储单元的还未被生成索引的IO请求;
计算所述时刻下的所述目标存储单元对应的共享处理排序索引的值,与K和所述目标存储单元的IO每秒参数之比的和,以作为等待处理排序索引;
将所述等待处理排序索引存入所述各个排序核心对应的索引队列中。
5.如权利要求4所述的存储控制器,其特征在于,所述等待处理排序索引在所述各个排序核心对应的索引队列的存在期间,所述各个排序核心对应的索引队列包含的大于所述等待处理排序索引的处理排序索引对应的IO请求不能被所述请求处理核心处理;
所述各个排序核心还用于,在所述时刻后所述各个排序核心被分发了指向所述目标存储单元的IO请求或所述等待处理排序索引在所述各个排序核心对应的索引队列的存在时间超过预设的阈值的情况下,从所述各个排序核心对应的索引队列中消除所述等待处理排序索引。
6.如权利要求1至3或5任一所述的存储控制器,其特征在于,所述请求处理核心通过以下操作周期性的处理所述各个排序核心对应的索引队列中最小的处理排序索引对应的IO请求:
周期性的访问所述各个排序核心对应的索引队列;
处理每次访问中,所述各个排序核心对应的索引队列中最小的处理排序索引对应的IO请求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710008824.7/1.html,转载请声明来源钻瓜专利网。