发明名称 无锁先入先出
摘要 本发明的一个实施例阐述了允许多生产者和/或消费者使用“无锁”机制来访问先入先出子系统(FIFO)的技术。当两个或两个以上生产者尝试同时推入数据到FIFO上时,仅一个生产者成功。类似地,当两个或两个以上消费者尝试同时从FIFO取出数据时,仅一个消费者成功。然而,每个生产者和消费者被提供以其各自的访问是否成功的指示。可在接下来的时钟周期中重试不成功的访问,以便将同时的访问序列化。
申请公布号 CN103294753A 申请公布日期 2013.09.11
申请号 CN201310036660.0 申请日期 2013.01.30
申请人 辉达公司 发明人 斯蒂芬·琼斯;黄晓煌
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 北京市磐华律师事务所 11336 代理人 董巍;徐丁峰
主权项 一种访问无锁先入先出(FIFO)子系统的方法,所述方法包括:接收从所述无锁FIFO取出FIFO头节点的取出请求;从无锁FIFO数据结构读取FIFO头指针值;读取包括在所述FIFO头节点中并且识别在所述无锁FIFO中的第二FIFO节点的next值;实施原子的比较和交换操作以将所述FIFO头指针值与存储在所述无锁FIFO数据结构中的当前FIFO头指针值加以比较;以及如果对于所述原子的比较和交换操作所述FIFO头指针值等于所述当前FIFO头指针值,那么将所述next值与在所述无锁FIFO数据结构中的所述当前FIFO头指针值进行互换以更新所述FIFO头指针值,或者如果对于所述原子的比较和交换操作所述FIFO头指针值不等于所述当前FIFO头指针值,那么重复所述FIFO头指针值的读取、所述next值的读取以及所述原子的比较和交换操作的实施。
地址 美国加利福尼亚州