[发明专利]一种硬件队列多线程共享方法、装置、设备及存储介质有效
| 申请号: | 202010693183.5 | 申请日: | 2020-07-17 |
| 公开(公告)号: | CN111858095B | 公开(公告)日: | 2022-06-10 |
| 发明(设计)人: | 崔健;吴睿振;余洪斌;刘文涛;王芳;肖明;徐江波 | 申请(专利权)人: | 山东云海国创云计算装备产业创新中心有限公司 |
| 主分类号: | G06F9/54 | 分类号: | G06F9/54 |
| 代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 刘翠香 |
| 地址: | 250001 山东省济南市自由贸易试验*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 硬件 队列 多线程 共享 方法 装置 设备 存储 介质 | ||
本申请公开了一种硬件队列多线程共享方法,应用于共享硬件队列的多个线程中的任意一个线程,该方法包括以下步骤:在有N个请求要发送时,申请硬件队列中的N个节点,N≥1;依次向申请到的N个节点的每个节点写入请求内容;写入完成后,如果N个节点为当前第一组待提交节点,则提交N个节点的请求内容;向硬件队列的尾部方向搜索其他线程的待提交节点;提交搜索到的连续的待提交节点的请求内容。应用本申请所提供的技术方案,每个线程均可按照上述步骤进行相应操作,这样可以实现多线程并发进行请求的入队和提交,使得多个线程可以共享硬件队列。本申请还公开了一种硬件队列多线程共享装置、设备及存储介质,具有相应技术效果。
技术领域
本申请涉及计算机应用技术领域,特别是涉及一种硬件队列多线程共享方法、装置、设备及存储介质。
背景技术
队列为软件和硬件设备交互请求常用的一种方式。相比于一次只能下发单个请求的方式,队列方式允许软件批量的下发多个请求,而且不用管硬件当前的忙闲状态。硬件空闲时会自动按照顺序依次处理请求队列中的请求,并在完成后把结果填充到响应队列,之后硬件可通过各种方法,如写内存标志位、更新寄存器的值、或者上报中断等通知软件。
一种常见的硬件队列实现过程为:软件在内存中初始化一个请求队列和一个响应队列,并通过写寄存器等方式告知硬件这两个队列在内存的起始地址和大小。这两个队列共享一对头HEAD和尾TAIL寄存器。软件初始化这两个寄存器为队列中首个节点的位置,此时队列为空。当软件需要下发一个请求时,软件在HEAD寄存器指向的请求队列的节点填写请求,并把TAIL寄存器的值向后移动一个节点。硬件收到写TAIL寄存器的信号,就会从请求队列中取出请求并进行处理,处理完成后通知软件。软件收到通知后,从响应队列得知此请求的处理结果,把HEAD寄存器也向后移动一个节点,此时硬件得知软件已经成功完成了这次请求。
这种方式存在的问题是,一对请求、响应队列只能服务一个线程,如果多个线程上的多个业务流需要并行处理,则硬件需拥有同样数量的请求、响应队列,使得线程的扩充受到了硬件的限制。
综上所述,如何使得多线程共享硬件队列,是目前本领域技术人员急需解决的技术问题。
发明内容
本申请的目的是提供一种硬件队列多线程共享方法、装置、设备及存储介质,以使得多线程可并发访问硬件队列,实现硬件资源共享。
为解决上述技术问题,本申请提供如下技术方案:
一种硬件队列多线程共享方法,应用于共享硬件队列的多个线程中的任意一个线程,所述方法包括:
在有N个请求要发送时,申请所述硬件队列中的N个节点,N≥1;
依次向申请到的所述N个节点的每个节点写入请求内容;
写入完成后,如果所述N个节点为当前第一组待提交节点,则提交所述N个节点的请求内容;
向所述硬件队列的尾部方向搜索其他线程的待提交节点;
提交搜索到的连续的待提交节点的请求内容。
在本申请的一种具体实施方式中,所述申请所述硬件队列中的N个节点,包括:
获取内存中所述硬件队列的请求尾部变量的值;
将所述请求尾部变量的值确定为第一请求尾部旧值;
使用比较和交换CAS操作将所述内存中的所述请求尾部变量的值更新为所述第一请求尾部旧值+N;
如果CAS操作成功,则确定申请到所述硬件队列中的N个节点,所述N个节点中的第一个节点为所述第一请求尾部旧值指向的节点。
在本申请的一种具体实施方式中,在所述使用比较和交换CAS操作将所述内存中的所述请求尾部变量的值更新为所述第一请求尾部旧值+N之后,还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东云海国创云计算装备产业创新中心有限公司,未经山东云海国创云计算装备产业创新中心有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010693183.5/2.html,转载请声明来源钻瓜专利网。





