当前位置: 首页 > 专利查询>ARM有限公司专利>正文

处理环形缓冲器更新制造技术

技术编号:30667734 阅读:21 留言:0更新日期:2021-11-06 08:47
公开了环形缓冲器存储电路,该环形缓冲器存储电路存储包括多个插槽的环形缓冲器以保持数据项的排队序列。数据处理电路执行多个过程以将待处理的一个或多个数据项添加到排队序列以及从排队序列中移除一个或多个数据项以供处理。每个过程被布置成执行获取过程以获取环形缓冲器中的至少一个插槽以及随后执行释放过程以释放该至少一个插槽。环形缓冲器元数据存储电路存储环形缓冲器的元数据,该元数据包括第一参考指示符和第二参考指示符。第一参考指示符包括指示当前插槽的位置的当前插槽指示符和指示环形缓冲器的多个插槽中的一个或多个未决插槽的存在和位置的未决插槽指示符。第二参考指示符包括指示当前插槽的预期位置的预期插槽指示符,一个或多个未决插槽已在当前插槽之后被获取。释放过程包括尝试更新环形缓冲器的第一参考指示符,包括原子操作,在该原子操作中将预期插槽指示符与当前插槽指示符进行比较。当当前插槽指示符匹配预期插槽指示符时,通过将当前插槽指示符的值修改预定值来更新至少当前插槽指示符。当当前插槽指示符不匹配预期插槽指示符时,通过修改未决插槽指示符的值来更新未决插槽指示符,以指示环形缓冲器的一个或多个未决插槽的存在和位置,而不更新当前插槽指示符。还公开了对应的方法和使用说明。和使用说明。和使用说明。

【技术实现步骤摘要】
【国外来华专利技术】处理环形缓冲器更新
[0001]本公开涉及数据处理。更具体地讲,本公开涉及数据处理装置中环形缓冲器的管理。
[0002]各种数据处理上下文可生成要以特定顺序进行进一步处理的数据项,并且可对其进行管理的一种机制用于将那些生成的数据项保持在环形缓冲器中的排队序列中,其中将新生成的数据项添加到该排队序列的尾端,而从该排队序列的头端移除数据项以供进一步处理。保持在环形缓冲器中的该数据项排队序列可提供需要进一步处理的所生成的数据项的集中存储,在数据处理系统中操作的多个“生产者”可将所生成的数据项添加到该集中存储中,并且数据处理系统中的多个“消费者”可从该集中存储中移除数据项以供进一步处理。然而,多个生产者和消费者与环形缓冲器的这种交互可能意味着一个生产者或消费者相对于环形缓冲器的内容的动作可阻止其他生产者或消费者执行其自身与环形缓冲器的交互。在基于锁的方法中,一次只有一个生产者或消费者可访问环形缓冲器,并且因此这可能成为吞吐量的显著瓶颈。此外,即使在“无锁”环形缓冲器设计中,一个生产者或消费者仍可阻止其他生产者或消费者完成,这是由于以下约束条件,即其必须按照环形缓冲器获取顺序(即,按照数据项的排队序列的顺序)释放其对环形缓冲器的更新,以便保留环形缓冲器的正确排序和对其进行的更新。如果较早的生产者或消费者停下来(例如,在与另一个系统部件的交互中,例如高速缓存存储器未命中或被操作系统抢占),则较晚的生产者或消费者必须等待直到较早的生产者或消费者完成。这会产生非确定性(一个线程中的延迟和停顿可能传播到其他线程)并且还会产生可扩展性问题(因为多个线程正在它们之间有效地传递符号令牌以便完成,并且这会产生所有所涉及线程的序列化)。反之,将单个线程指定用于处理重新排序结果有可能导致单线程瓶颈。
[0003]在一个示例性实施方案中,存在一种装置,该装置包括:环形缓冲器存储电路,该环形缓冲器存储电路用于存储包括多个插槽的环形缓冲器以保持数据项的排队序列;数据处理电路,该数据处理电路用于执行多个过程以将待处理的一个或多个数据项添加到该排队序列以及从该排队序列中移除一个或多个数据项以供处理,其中每个过程被布置成执行获取过程以获取环形缓冲器中的至少一个插槽以及随后执行释放过程以释放该至少一个插槽;和环形缓冲器元数据存储电路,该环形缓冲器元数据存储电路用于存储环形缓冲器的元数据,该元数据包括第一参考指示符和第二参考指示符,该第一参考指示符包括指示当前插槽的位置的当前插槽指示符和指示环形缓冲器的多个插槽中的一个或多个未决插槽的存在和位置的未决插槽指示符,并且该第二参考指示符包括指示当前插槽的预期位置的预期插槽指示符,一个或多个未决插槽已在当前插槽之后被获取,其中当该过程执行获取过程以获取环形缓冲器中的至少一个插槽时,预期插槽值是预期插槽指示符的值,其中释放过程包括尝试更新环形缓冲器的第一参考指示符,包括原子操作,在该原子操作中将过程的预期插槽值与当前插槽指示符进行比较,并且当当前插槽指示符匹配预期插槽值时,通过将当前插槽指示符的值修改预定值来更新至少当前插槽指示符,并且当当前插槽指示符不匹配预期插槽值时,通过修改未决插槽指示符的值来更新未决插槽指示符,以指示环形缓冲器的一个或多个未决插槽的存在和位置,而不更新当前插槽指示符。
[0004]在另一个示例性实施方案中,存在一种操作数据处理装置的方法,该方法包括以下步骤:为包括多个插槽的环形缓冲器分配存储装置以保持数据项的排队序列;执行多个过程以将待处理的一个或多个数据项添加到该排队序列以及从该排队序列中移除一个或多个数据项以供处理,其中执行获取过程以获取环形缓冲器中的至少一个插槽,并且随后执行释放过程以释放该至少一个插槽;为环形缓冲器的元数据分配存储装置,该元数据包括第一参考指示符和第二参考指示符,该第一参考指示符包括指示当前插槽的位置的当前插槽指示符和指示环形缓冲器的多个插槽中的一个或多个未决插槽的存在和位置的未决插槽指示符,并且该第二参考指示符包括指示当前插槽的预期位置的预期插槽指示符,一个或多个未决插槽已在当前插槽之后被获取,其中当该过程执行获取过程以获取环形缓冲器中的至少一个插槽时,预期插槽值是预期插槽指示符的值,其中释放过程包括尝试更新环形缓冲器的第一参考指示符,包括原子操作,在该原子操作中将过程的预期插槽值与当前插槽指示符进行比较,并且当当前插槽指示符匹配预期插槽值时,通过将当前插槽指示符的值修改预定值来更新至少当前插槽指示符,并且当当前插槽指示符不匹配预期插槽值时,通过修改未决插槽指示符的值来更新未决插槽指示符,以指示环形缓冲器的一个或多个未决插槽的存在和位置,而不更新当前插槽指示符。
[0005]在另一个示例性实施方案中,存在一种装置,该装置包括:环形缓冲器存储电路,该环形缓冲器存储电路用于存储包括多个插槽的环形缓冲器以保持数据项的排队序列;指令解码器电路,该指令解码器电路用于对指令进行解码;数据处理电路,该数据处理电路用于执行多个过程以将待处理的一个或多个数据项添加到该排队序列以及从该排队序列中移除一个或多个数据项以供处理,其中每个过程被布置成执行获取过程以获取环形缓冲器中的至少一个插槽以及随后执行释放过程以释放该至少一个插槽;和环形缓冲器元数据存储电路,该环形缓冲器元数据存储电路用于存储环形缓冲器的元数据,该元数据包括第一参考指示符和第二参考指示符,该第一参考指示符包括指示当前插槽的位置的当前插槽指示符和指示环形缓冲器的多个插槽中的一个或多个未决插槽的存在和位置的未决插槽指示符,并且该第二参考指示符包括指示当前插槽的预期位置的预期插槽指示符,一个或多个未决插槽已在当前插槽之后被获取,其中当该过程执行获取过程以获取环形缓冲器中的至少一个插槽时,预期插槽值是预期插槽指示符的值,其中指令解码器电路对要由数据处理电路执行的环形缓冲器释放指令做出响应,以控制数据处理电路执行释放过程,该释放过程包括以下步骤:尝试更新环形缓冲器的第一参考指示符,包括原子操作,在该原子操作中将过程的预期插槽值与当前插槽指示符进行比较,并且当当前插槽指示符匹配预期插槽值时,通过将当前插槽指示符的值修改预定值来更新至少当前插槽指示符,并且当当前插槽指示符不匹配预期插槽值时,通过修改未决插槽指示符的值来更新未决插槽指示符,以指示环形缓冲器的一个或多个未决插槽的存在和位置,而不更新当前插槽指示符。
[0006]在另一个示例性实施方案中,存在一种计算机程序,该计算机程序用于控制主机数据处理装置来提供指令执行环境,并且包括:环形缓冲器存储逻辑,该环形缓冲器存储逻辑用于存储包括多个插槽的环形缓冲器以保持数据项的排队序列;指令解码器逻辑,该指令解码器逻辑用于对指令进行解码;数据处理逻辑,该数据处理逻辑用于执行多个过程以将待处理的一个或多个数据项添加到该排队序列以及从该排队序列中移除一个或多个数据项以供处理,其中每个过程被布置成执行获取过程以获取环形缓冲器中的至少一个插槽
以及随后执行释放过程以释放该至少一个插槽;和环形缓冲器元数据存储逻辑,该环形缓冲器元数据存储逻辑用于存储环形缓冲器的元数据,该元数据包括第一参考指示符和第二参考指示符,该第一参考指示本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种装置,所述装置包括:环形缓冲器存储电路,所述环形缓冲器存储电路用于存储包括多个插槽的环形缓冲器以保持数据项的排队序列;数据处理电路,所述数据处理电路用于执行多个过程以将待处理的一个或多个数据项添加到所述排队序列以及从所述排队序列中移除一个或多个数据项以供处理,其中每个过程被布置成执行获取过程以获取所述环形缓冲器中的至少一个插槽以及随后执行释放过程以释放所述至少一个插槽;和环形缓冲器元数据存储电路,所述环形缓冲器元数据存储电路用于存储所述环形缓冲器的元数据,所述元数据包括第一参考指示符和第二参考指示符,所述第一参考指示符包括指示当前插槽的位置的当前插槽指示符和指示所述环形缓冲器的所述多个插槽中的一个或多个未决插槽的存在和位置的未决插槽指示符,并且所述第二参考指示符包括指示所述当前插槽的预期位置的预期插槽指示符,所述一个或多个未决插槽已在所述当前插槽之后被获取,其中当所述过程执行所述获取过程以获取所述环形缓冲器中的所述至少一个插槽时,预期插槽值是所述预期插槽指示符的值,其中所述释放过程包括尝试更新所述环形缓冲器的所述第一参考指示符,包括原子操作,在所述原子操作中将所述过程的所述预期插槽值与所述当前插槽指示符进行比较,并且当所述当前插槽指示符匹配所述预期插槽值时,通过将所述当前插槽指示符的值修改预定值来更新至少所述当前插槽指示符,并且当所述当前插槽指示符不匹配所述预期插槽值时,通过修改所述未决插槽指示符的值来更新所述未决插槽指示符,以指示所述环形缓冲器的一个或多个未决插槽的所述存在和所述位置,而不更新所述当前插槽指示符。2.根据权利要求1所述的装置,其中当所述当前插槽指示符不匹配所述预期插槽值,并且所述预期插槽值指示所述当前插槽的相对于所述排队序列的顺序不位于由所述当前插槽指示符指示的所述当前插槽之后的预期位置时,不更新所述第一参考指示符。3.根据权利要求1所述的装置,其中当所述当前插槽指示符不匹配所述预期插槽值时,通过修改所述未决插槽指示符的所述值来更新所述未决插槽指示符,以指示所述环形缓冲器中的一个或多个未决插槽相对于由所述当前插槽指示符指示的所述当前插槽的所述存在和所述位置。4.根据权利要求1所述的装置,其中所述未决插槽指示符包括极限指示符,所述极限指示符指示相对于所述排队序列的顺序位于距所述环形缓冲器中的所述当前插槽最远的最远未决插槽的位置。5.根据权利要求4所述的装置,其中所述未决插槽指示符包括变化指示符,所述变化指示符的变化指示所述当前插槽与所述最远未决插槽之间的未决插槽的数量的变化。6.根据权利要求5所述的装置,其中当所述当前插槽指示符不匹配所述预期插槽值时,通过修改所述极限指示符和所述变化指示符中的至少一者来更新所述未决插槽指示符。7.根据权利要求6所述的装置,其中当所述预期插槽值指示相对于所述排队序列的顺序比由所述极限指示符指示的所述最远未决插槽位于距所述环形缓冲器中的所述当前插槽更远的插槽时,更新所述极限指示符。8.根据权利要求7所述的装置,其中基于所述预期插槽值来更新所述极限指示符,以指
示所述最远未决插槽的不同位置。9.根据权利要求5所述的装置,其中当所述预期插槽值指示位于所述当前插槽与所述最远未决插槽之间的插槽时,更新所述变化指示符而不更新所述极限指示符。10.根据任一前述权利要求所述的装置,其中当所述当前插槽指示符匹配所述预期插槽值并且所述未决插槽指示符指示所述环形缓冲器的一个或多个未决插槽的存在时,通过根据与所述当前插槽邻接的连续未决插槽的数量修改所述当前插槽指示符的所述值来更新所述当前插槽指示符。11.根据权利要求10所述的装置,其中所述当前插槽指示符的所述值被修改以指示所述一个或多个连续未决插槽中的最远未决插槽,并且其中所述最远未决插槽是所述一个或多个连续未决插槽中位于距所述环形缓冲器中的所述当前插槽最远的未决插槽。12.根据权利要求1所述的装置,其中所述当前插槽指示符指示处于所述数据项排队序列的头端或尾端处的所述当前插槽的所述位置,并且所述预期插槽指示符指示处于所述数据项排队序列的所述同一端处的所述当前插槽的所述预期位置。13.根据权利要求1所述的装置,其中所述第一参考指示符是对于从所述排队序列中移除数据项的所述过程所述数据项排队序列的所述尾端的尾部指示符,并且所述第二参考指示符是对于将数据项添加到所述排队序列的所述过程所述数据项排队序列的所述尾端的尾部指示符。14.根据权利要求13所述的装置,其中将数据项添加到所述排队序列的所述过程被布置成执行所述获取过程以获取所述环形缓冲器中的至少下一个未占用插槽,所述获取过程包括尝试根据原子操作来更新所述第二参考指示符。15.根据权利要求1所述的装置,其中所述第一参考指示符是对于将数据项添加到所述排队序列的所述过程所述数据项排队序列的所述头端的头部指示符,并且所述第二参考指示符是对于从所述排队序列中移除数据项的所述过程所述数据项排队序列的所述头端的头部指示符。16.根据权利要求15所述的装置,其中从所述排队序列中移除数据项的所述过程被布置成执行所述获取过程以获取所述环形缓冲器中的至少下一个占用插槽,所述获取过程包括尝试根据原子操作来更新所述第二参考指示符。17.根据任一前述权利要求所述的装置,其中当所述过程执行所述获取过程以获取所述环形缓冲器中的所述至少一个插槽时,通过根据由所述过程中的一个过程获取的插槽的数量修改所述预期插槽指示符的所述值来更新所述第二参考指示符。18.根据权利要求13所述的装置,其中所述数据处理电路被布置成并行地执行将数据项添加到所述排队序列的所述过程,并且每个过程同时尝试根据所述原子操作来更新所述第一参考指示符。19.根据权利要求15所述的装置,其中所述数据处理电路被布置成并行地执行从所述排队序列中移除数据项的所述过程,并且每个过程同时尝试根据所述原子操作来更新所述第一参考指示符。20.一种操作数据处理装置的方法,所述方法包括以下步骤:为包括多个插槽的环形缓冲器分配存储装置以保持数据项的排队序列;执行多个过程以将待处理的一个或多个数据项添加到所述排队序列以及从所述排队
序列中移除一个或多个数据项以供处理,其中执行获取过程以获取所述环形缓冲器中的至少一个插槽,并且随后执行释放过程以释放所述至少一个插槽;为所述环形缓冲器的元数据分配存储装置,所述元数据包括第一参考指示符和第二参考指示符,所述第一参考指示符包括指示当前插槽的位置的当前插槽指示符和指示所述环形缓冲器的所述多个插槽中的一个或多个未决插槽的存在和位置的未决插槽指示符,并且所述第二参考指示符包括指示所述当前插槽的预期位置的预期插槽指示符,所述一个或多个未决插槽已在所述当前插槽之后被获取,其中当所述过程执行所述获取过程以获取所述环形缓冲器中的所述至少一个插槽时,预期插槽值是所述预期插槽指示符的值,其中所述释放过程包括尝试更新所述环形缓冲器的所述第一参考指示符,包括原子操作,在所述原子操作中将所述过程的所述预期插槽值与所述当前插槽指示符进行比较,并且当所述当前插槽指示符匹配所述预期插槽值时,通过将所述当前插槽指示符的值修改预定值来更新至少所述当前插槽指示符,并且当所述当前插槽指示符不匹配所述预期插槽值时,通过修改所述未决插槽指示符的值来更新所述未决插槽指示符,以指示所述环形缓冲器的一个或多个未决插槽的所述存在和所述位置,而不更新所述当前插槽指示符。21.一种装置,所述装置包括:环形缓冲器存储电路,所述环形缓冲器存储电路用于存储包括多个插槽的环形缓冲器以保持数据项的排队序列;指令解码器电路,所述指令解码器电路用于对指令进行解码;数据处理电路,所述数据处理电路用于执行多个过程以将待处理的一个或多个数据项添加到所述排队序列以及从所述排队序列中移除一个或多个数据项以供处理,其中每个过程被布置成执行获取过程以获取所述环形缓冲器中的至少一个插槽以及随后执行释放过程以释放所述至少一个插槽;和环形缓冲器元数据存储电路,所述环形缓冲器元数据存储电路用于存储所述环形缓冲器的元数据,所述元数据包括第一参考指示符和第二参考指示符,所述第一参考指示符包括指示当前插槽的位置的当前插槽指示符和指示所述环形缓冲器的所述多个插槽中的一个或多个未决插槽的存在和位置的未决插槽指示符,并且所述第二参考指示符包括指示所述当前插槽的预期位置的预期插槽指示符,所述一个或多个未决插槽已在所述当前插槽之后被获取,其中当所述过程执行所述获取过程以获取所述环形缓冲器中的所述至少一个插槽时,预期插槽值是所述预期插槽指示符的值,其中所述指令解码器电路对要由所述数据处理电路执行的环形缓冲器释放指令做出响应,以控制所述数据处理电路执行所述释放过程,所述释放过程包括以下步骤:尝试更新所述环形缓冲器的所述第一参考指示符,包括原子操作,在所述原子操作中将所述过程的所述预期插槽值与所述当前插槽指示符进行比较,并且当所述当前插槽指示符匹配所述预期插槽值时,通过将所述当前插槽指示符的值修改预定值来更新至少所述当前插槽指示符...

【专利技术属性】
技术研发人员:E
申请(专利权)人:Arm有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1