[发明专利]无锁先入先出无效
申请号: | 201310036660.0 | 申请日: | 2013-01-30 |
公开(公告)号: | CN103294753A | 公开(公告)日: | 2013-09-11 |
发明(设计)人: | 斯蒂芬·琼斯;黄晓煌 | 申请(专利权)人: | 辉达公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京市磐华律师事务所 11336 | 代理人: | 董巍;徐丁峰 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 无锁先入先出 | ||
1.一种访问无锁先入先出(FIFO)子系统的方法,所述方法包括:
接收从所述无锁FIFO取出FIFO头节点的取出请求;
从无锁FIFO数据结构读取FIFO头指针值;
读取包括在所述FIFO头节点中并且识别在所述无锁FIFO中的第二FIFO节点的next值;
实施原子的比较和交换操作以将所述FIFO头指针值与存储在所述无锁FIFO数据结构中的当前FIFO头指针值加以比较;以及
如果对于所述原子的比较和交换操作所述FIFO头指针值等于所述当前FIFO头指针值,那么将所述next值与在所述无锁FIFO数据结构中的所述当前FIFO头指针值进行互换以更新所述FIFO头指针值,或者
如果对于所述原子的比较和交换操作所述FIFO头指针值不等于所述当前FIFO头指针值,那么重复所述FIFO头指针值的读取、所述next值的读取以及所述原子的比较和交换操作的实施。
2.根据权利要求1所述的方法,其中从所述无锁FIFO取出所述FIFO头节点的所述取出请求从第一处理线程接收并且从所述无锁FIFO取出所述FIFO头节点的附加的取出请求同时从第二处理线程接收。
3.根据权利要求1所述的方法,其中所述FIFO头指针值是与基础值组合以计算所述FIFO头节点存储在存储器中的位置的索引。
4.根据权利要求1所述的方法,在实施所述原子的比较和交换操作之前,进一步包括:
读取FIFO尾指针值;以及
将所述FIFO头指针值与所述FIFO尾指针值加以比较来确定所述无锁FIFO是否为空。
5.根据权利要求4所述的方法,进一步包括在实施所述原子的比较和交换操作之前进行等待直到所述无锁FIFO不为空为止。
6.根据权利要求1所述的方法,进一步包括用附加的FIFO节点重新填充所述无锁FIFO。
7.根据权利要求1所述的方法,在将所述next值存储为所述当前FIFO头指针值之后,进一步包括如果所述无锁FIFO为空,那么用附加的FIFO节点重新填充所述无锁FIFO。
8.根据权利要求1所述的方法,在将所述next值存储为所述当前FIFO头指针值之后,进一步包括如果所述无锁FIFO的深度小于阈值,那么用附加的FIFO节点重新填充所述无锁FIFO。
9.根据权利要求1所述的方法,进一步包括:
接收推入FIFO节点到所述无锁FIFO的推入请求;
从所述无锁FIFO数据结构读取FIFO尾指针值;
读取包括在所述FIFO尾节点中的第二next值;
实施第二原子的比较和交换操作以将所述第二next值与包括在所述FIFO尾节点中的当前第二next值加以比较;以及
如果对于所述第二比较和交换操作所述第二next值等于所述当前第二next值,那么实施第三原子的比较和交换操作以将所述第二next值与包括在所述FIFO尾节点中的当前第二next值加以比较,或者
如果对于所述第二原子的比较和交换操作所述第二next值不等于所述当前第二next值,那么重复所述FIFO尾指针值的读取、所述第二next值的读取以及实施所述第二原子的比较和交换操作。
10.一种无锁先入先出(FIFO)子系统,包括:
存储器,配置为存储无锁FIFO数据结构和FIFO头节点;以及
取出引擎,配置为:
接收从所述无锁FIFO取出所述FIFO头节点的取出请求;
从所述无锁FIFO数据结构读取FIFO头指针值;
读取包括在所述FIFO头节点中并且识别在所述无锁FIFO中的第二FIFO节点的next值;
实施原子的比较和交换操作以将所述FIFO头指针值与存储在所述无锁FIFO数据结构中的当前FIFO头指针值加以比较;以及
如果对于所述原子的比较和交换操作所述FIFO头指针值等于所述当前FIFO头指针值,那么将所述next值与在所述无锁FIFO数据结构中的所述当前FIFO头指针值进行互换以更新所述FIFO头指针值,或者
如果对于所述原子的比较和交换操作所述FIFO头指针值不等于所述当前FIFO头指针值,那么再次读取所述FIFO头指针值、读取所述next值并且实施所述原子的比较和交换操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于辉达公司,未经辉达公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310036660.0/1.html,转载请声明来源钻瓜专利网。