[发明专利]一种硬件队列多线程共享方法、装置、设备及存储介质有效
| 申请号: | 202010693183.5 | 申请日: | 2020-07-17 |
| 公开(公告)号: | CN111858095B | 公开(公告)日: | 2022-06-10 |
| 发明(设计)人: | 崔健;吴睿振;余洪斌;刘文涛;王芳;肖明;徐江波 | 申请(专利权)人: | 山东云海国创云计算装备产业创新中心有限公司 |
| 主分类号: | G06F9/54 | 分类号: | G06F9/54 |
| 代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 刘翠香 |
| 地址: | 250001 山东省济南市自由贸易试验*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 硬件 队列 多线程 共享 方法 装置 设备 存储 介质 | ||
1.一种硬件队列多线程共享方法,其特征在于,应用于共享硬件队列的多个线程中的任意一个线程,所述方法包括:
在有N个请求要发送时,获取内存中硬件队列的请求尾部变量的值;
将所述请求尾部变量的值确定为第一请求尾部旧值;
使用比较和交换CAS操作将所述内存中的所述请求尾部变量的值更新为所述第一请求尾部旧值+N;N≥1;
如果CAS操作成功,则确定申请到所述硬件队列中的N个节点,所述N个节点中的第一个节点为所述第一请求尾部旧值指向的节点;
从申请到的所述N个节点的最后一个节点开始,依次向所述N个节点的每个节点写入请求内容;
将所述N个节点的每个节点对应的请求标记为有效请求;
写入完成后,如果所述N个节点为当前第一组待提交节点,则提交所述N个节点的请求内容;
向所述硬件队列的尾部方向,检查下一个请求是否为有效请求;
如果是,则重复所述检查下一个请求是否为有效请求的步骤,直至检查到无效请求时,将搜索到的连续的有效请求对应的节点确定为其他线程的待提交节点;
提交搜索到的连续的待提交节点的请求内容。
2.根据权利要求1所述的方法,其特征在于,在所述使用比较和交换CAS操作将所述内存中的所述请求尾部变量的值更新为所述第一请求尾部旧值+N之后,还包括:
如果CAS操作失败,重复执行所述获取内存中所述硬件队列的请求尾部变量的值的步骤。
3.根据权利要求1所述的方法,其特征在于,通过以下步骤确定所述N个节点是否为当前第一组待提交节点:
以所述第一请求尾部旧值为旧值,所述第一请求尾部旧值+N为新值,使用所述CAS操作更新所述内存中尾部填充变量的值;
如果CAS操作成功,则确定所述N个节点为当前第一组待提交节点。
4.根据权利要求3所述的方法,其特征在于,所述提交搜索到的连续的待提交节点的请求内容,包括:
将更新后的所述请求尾部变量的值确定为第二请求尾部旧值;
以所述第二请求尾部旧值为旧值,所述第二请求尾部旧值+M为新值,使用所述CAS操作更新所述内存中所述尾部填充变量的值,M为搜索到的连续的待提交节点的数量;
如果CAS操作成功,则将所述尾部填充变量的值写入尾部寄存器,触发硬件工作。
5.一种硬件队列多线程共享装置,其特征在于,应用于共享硬件队列的多个线程中的任意一个线程,所述装置包括:
节点申请模块,用于在有N个请求要发送时,获取内存中硬件队列的请求尾部变量的值;将所述请求尾部变量的值确定为第一请求尾部旧值;使用比较和交换CAS操作将所述内存中的所述请求尾部变量的值更新为所述第一请求尾部旧值+N;N≥1;
请求写入模块,用于如果CAS操作成功,则确定申请到所述硬件队列中的N个节点,所述N个节点中的第一个节点为所述第一请求尾部旧值指向的节点;从申请到的所述N个节点的最后一个节点开始,依次向所述N个节点的每个节点写入请求内容;将所述N个节点的每个节点对应的请求标记为有效请求;
请求提交第一模块,用于写入完成后,如果所述N个节点为当前第一组待提交节点,则提交所述N个节点的请求内容;
节点搜索模块,用于向所述硬件队列的尾部方向,检查下一个请求是否为有效请求;如果是,则重复所述检查下一个请求是否为有效请求的步骤,直至检查到无效请求时,将搜索到的连续的有效请求对应的节点确定为其他线程的待提交节点;
请求提交第二模块,用于提交搜索到的连续的待提交节点的请求内容。
6.一种硬件队列多线程共享设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述硬件队列多线程共享方法的步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述硬件队列多线程共享方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东云海国创云计算装备产业创新中心有限公司,未经山东云海国创云计算装备产业创新中心有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010693183.5/1.html,转载请声明来源钻瓜专利网。





