在基于处理器的设备中支持跨连贯颗粒边界的原子存储器访问制造技术

技术编号:33850053 阅读:22 留言:0更新日期:2022-06-18 10:36
公开了在基于处理器的设备中支持跨连贯颗粒边界的原子存储器访问。在这方面,基于处理器的设备包括多个处理元件(PE),并且还包括被配置成分发连贯颗粒(“cogran”)对原子访问(CPAA)令牌的专用中央排序点(SPCOP)。为了在连贯颗粒对上执行原子存储器访问,在PE可以以独占状态获得连贯颗粒对中的每个连贯颗粒之前,PE必须持有针对包含该连贯颗粒对中的一个连贯颗粒的地址块的CPAA令牌。因为必须在获得对连贯颗粒对中的至少一个连贯颗粒的独占访问之前获取CPAA令牌,并且因为SPCOP被配置成只允许一个CPAA令牌针对给定的地址块活跃,因此可以避免寻求访问相同连贯颗粒的PE之间的死锁和活锁。死锁和活锁。死锁和活锁。

【技术实现步骤摘要】
【国外来华专利技术】在基于处理器的设备中支持跨连贯颗粒边界的原子存储器访问


[0001]本公开的技术涉及基于处理器的设备中的存储器访问操作,并且更具体地,涉及可以跨连贯颗粒边界发生的原子存储器访问。

技术介绍

[0002]由基于处理器的设备执行的“原子存储器访问”指的是存储器访问操作(例如,作为非限制性示例,存储器读取操作或存储器写入操作),其中所有被访问的数据字节都同时可观察。原子存储器访问确保了,即使多个代理尝试对相同存储器位置进行冲突操作,存储在该存储器位置处的所得值将是整个先前值或整个最终值,并且绝不是两者的组合。根据基于处理器的设备的指令集架构(ISA)所支持的存储器模型,基于处理器的设备可以预期或要求原子地执行一些或所有类型的存储器访问操作。例如,可以将基于处理器的设备的系统存储器组织成被称为“连贯颗粒(coherence granules)”的细分,连贯颗粒表示基于处理器的设备管理高速缓存连贯性的对齐大小(以字节为单位),并且基于处理器的设备可以要求原子地执行在单个连贯颗粒内的所有存储器访问操作。
[0003]然而,当原子存储器访问跨两个连贯颗粒之间的边界时,可能出现问题。考虑以下场景,其中系统存储器内的存储器地址0到63处的字节位于第一连贯颗粒内,而存储器地址64到127的字节位于第二连贯颗粒内。因此,从存储器地址62处开始写入四(4)字节数据的存储器存储操作将需要将前两(2)字节写入第一连贯颗粒,并且将后两(2)字节写入第二连贯颗粒。为了原子地执行存储器存储操作,需要以独占状态同时获取两个连贯颗粒。一旦处理元件(PE)(例如,处理器或处理器核)获得对两个连贯颗粒的独占访问,存储器存储操作就可以完成,然后另一个PE可以访问连贯颗粒中的一个或两个连贯颗粒。
[0004]然而,假设两个PE各自尝试在大致相同时间在相同的两个连贯颗粒上原子地执行存储器存储操作。第一PE可以以独占状态获得第一连贯颗粒,然后拒绝其他PE对第一连贯颗粒的访问,直到第一PE可以以独占状态获得第二连贯颗粒。同时,第二PE可以以独占状态获得第二连贯颗粒,并且拒绝其他PE对第一连贯颗粒的访问,直到第二PE可以以独占状态获得第一连贯颗粒。这导致了死锁,其中每个PE都拒绝交出其连贯颗粒,直到其他PE交出其连贯颗粒。避免这种死锁的一种技术是禁止PE以上述方式持有其相应的连贯颗粒,并且要求每个PE在完成其存储器存储操作之前等待,直到它获取对两个连贯颗粒的独占访问。然而,这种技术可能导致活锁,其中每个PE在请求时重复将其连贯颗粒放弃给其他PE。
[0005]一种用于跨连贯颗粒边界的原子存储器访问的常规技术,涉及基于处理器的设备检测到存储器访问操作跨越连贯颗粒边界,并且为了处理这种情况,处理器“锁定总线”或限制访问针对寻求执行存储器访问操作的PE的互连总线。在该PE获得了对两个连贯颗粒的独占访问并且原子地完成了存储器访问操作之后,互连总线被解锁。但是,锁定总线可能导致显著的性能损失,因为互连总线在被锁定时只能由一个PE访问。另一种常规技术涉及基于处理器的设备的底层ISA,它不保证存储器访问操作在跨越连贯颗粒边界时将被原子地
执行。在该情况下,软件必须检测存储器访问操作是否跨越连贯颗粒边界,并且尝试通过停止PE中所有其他正在执行的线程来执行一种基于软件的总线锁定来处理存储器访问操作。然而,这种基于软件的方法可能比基于硬件的方法更复杂并且更不可靠。
[0006]因此,需要更高效的机制来支持跨连贯颗粒边界的原子存储器访问。

技术实现思路

[0007]本文公开的示例性实施例包括在基于处理器的设备中支持跨连贯颗粒边界的原子存储器访问。在这方面,在一个示例性实施例中,包括多个处理元件(PE)的基于处理器的设备还包括专用中央排序点(SPCOP),专用中央排序点(SPCOP)被配置成分发连贯颗粒(“cogran”)对原子访问(CPAA)令牌。为了在连贯颗粒对上执行原子存储器访问,在PE能够要求以独占状态获得连贯颗粒对之前,PE必须持有针对包含连贯颗粒对中的至少一个连贯颗粒的存储器对齐地址块的CPAA令牌。基于例如用于选择连贯颗粒的存储器地址的最低阶位的值,连贯颗粒中的每个连贯颗粒可以被认为是“偶数”或“奇数”。因此,在本文描述的每个地址块恰好包含一(1)个连贯颗粒的实施例中,SPCOP可以将CPAA令牌与每个仅包含“偶数”连贯颗粒(或仅包含“奇数”连贯颗粒)的地址块相关联。因为CPAA令牌总是与包含“偶数”连贯颗粒(或“奇数”连贯颗粒,取决于实现)的地址块相关联,并且SPCOP一次仅允许一个CPAA令牌针对给定地址块活跃,所以寻求访问原子存储器访问的相同连贯颗粒的多个PE之间的死锁和活锁可以被避免。一旦PE获得针对包含连贯颗粒对中的第一连贯颗粒的地址块的CPAA令牌,PE就以独占状态获得连贯颗粒对中的第一连贯颗粒,然后以独占状态获得连贯颗粒对中的第二连贯颗粒。然后PE完成原子存储器访问请求,并且将CPAA令牌返回给SPCOP。一些实施例可以进一步规定,SPCOP包括CPAA访问队列,用于跟踪访问受CPAA令牌保护的连贯颗粒的请求,而在一些实施例中,SPCOP可以包括CPAA预留队列,用于跟踪对针对给定连贯颗粒的CPAA令牌的多个请求。
[0008]在另一示例性实施例中,提供了一种基于处理器的设备。基于处理器的设备包括系统存储器和SPCOP,系统存储器包括多个地址块和多个连贯颗粒,SPCOP包括SPCOP逻辑电路。基于处理器的设备还包括多个PE,每个PE包括存储器访问逻辑电路。多个PE中的第一PE的存储器访问逻辑电路被配置成:检测跨越系统存储器的第一连贯颗粒与第二连贯颗粒之间的边界的原子存储器访问请求。第一PE的存储器访问逻辑电路还被配置成:向SPCOP发送针对CPAA令牌的请求,该CPAA令牌针对包含第一连贯颗粒的地址块。第一PE的存储器访问逻辑电路还被配置成:从SPCOP接收针对包含第一连贯颗粒的地址块的CPAA令牌,该CPAA令牌指示多个PE中的第一PE被允许保护包含第一连贯颗粒的地址块。第一PE的存储器访问逻辑电路还被配置成:以独占状态获得第一连贯颗粒和第二连贯颗粒。第一PE的存储器访问逻辑电路还被配置成完成原子存储器访问请求。第一PE的存储器访问逻辑电路还被配置成:发送请求,以向SPCOP返回针对包含第一连贯颗粒的地址块的CPAA令牌。
[0009]在另一示例性实施例中,提供了一种用于支持跨连贯颗粒边界的原子存储器访问的方法。该方法包括:由基于处理器的设备的多个PE中的第一PE,检测跨越基于处理器的设备的系统存储器的第一连贯颗粒与第二连贯颗粒之间的边界的原子存储器访问请求。该方法还包括:由第一PE向SPCOP发送针对CPAA令牌的第一请求,该CPAA令牌针对包含第一连贯颗粒的地址块。该方法还包括:由第一PE,从SPCOP接收针对包含第一连贯颗粒的地址块的
CPAA令牌,该CPAA令牌指示多个PE中的第一PE被允许保护包含第一连贯颗粒的地址块。该方法还包括:由第一PE以独占状态获得第一连贯颗粒和第二连贯颗粒。该方法还包括:由第一PE本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种基于处理器的设备,包括:系统存储器,包括多个地址块和多个连贯颗粒;专用中央排序点(SPCOP),包括SPCOP逻辑电路;以及多个处理元件(PE),每个处理元件包括存储器访问逻辑电路;所述多个PE中的第一PE的所述存储器访问逻辑电路被配置成:检测跨越所述系统存储器的第一连贯颗粒与第二连贯颗粒之间的边界的原子存储器访问请求;向所述SPCOP发送针对连贯颗粒对原子访问(CPAA)令牌的请求,所述连贯颗粒对原子访问(CPAA)令牌针对包含所述第一连贯颗粒的地址块;从所述SPCOP接收针对包含所述第一连贯颗粒的所述地址块的所述CPAA令牌,所述CPAA令牌指示所述多个PE中的所述第一PE被允许保护包含所述第一连贯颗粒的所述地址块;以独占状态获得所述第一连贯颗粒和所述第二连贯颗粒;完成所述原子存储器访问请求;以及发送请求,以向所述SPCOP返回针对包含所述第一连贯颗粒的所述地址块的所述CPAA令牌。2.根据权利要求1所述的基于处理器的设备,其中所述第一PE的所述存储器访问逻辑电路还被配置成:在所述第一PE持有所述CPAA令牌的同时,从所述多个PE中的第二PE接收针对所述第一连贯颗粒的第一窥探请求;以及响应于接收到针对所述第一连贯颗粒的所述第一窥探请求,向所述第二PE发送第一响应,所述第一响应指示所述第二PE应当将针对所述第一连贯颗粒的所有请求重定向到所述SPCOP,直到所述CPAA令牌被返回。3.根据权利要求2所述的基于处理器的设备,其中所述SPCOP的所述SPCOP逻辑电路被配置成:从所述第二PE接收针对所述第一连贯颗粒的第二请求;确定所述第二请求的存储器地址是否对应于活跃CPAA令牌;响应于确定所述第二请求的所述存储器地址不对应于活跃CPAA令牌,向所述第二PE发送第二响应,所述第二响应指示所述第二PE应返回到常规存储器连贯处理;响应于确定所述第二请求的所述存储器地址对应于活跃CPAA令牌,确定所述SPCOP的CPAA访问队列是否已满;响应于确定所述SPCOP的所述CPAA访问队列已满,向所述第二PE发送第三响应,所述第三响应指示所述第二PE应当向所述SPCOP重试所述第二请求;以及响应于确定所述SPCOP的所述CPAA访问队列未满:将所述第二PE的标识符记录在所述CPAA访问队列中;以及在所述第一PE返回所述CPAA令牌时,基于所述CPAA访问队列中的所述第二PE的所述标识符来向所述第二PE发送第四响应,所述第四响应指示所述第二PE应返回到常规存储器连贯处理。4.根据权利要求1所述的基于处理器的设备,其中所述SPCOP的所述SPCOP逻辑电路被
配置成:从所述第一PE接收针对CPAA令牌的请求;确定CPAA令牌是否可用;响应于确定CPAA令牌可用,确定所述原子存储器访问请求是否对应于活跃CPAA令牌;以及响应于确定所述原子存储器访问请求不对应于活跃CPAA令牌,将所述CPAA令牌分发给所述第一PE。5.根据权利要求4所述的基于处理器的设备,其中所述SPCOP的所述SPCOP逻辑电路还被配置成:通过被配置成进行以下操作,将所述CPAA令牌分发给所述第一PE:确定所述第一PE是否是所述SPCOP的CPAA预留队列中的下一个;以及响应于确定所述第一PE是所述SPCOP的所述CPAA预留队列中的下一个,将所述CPAA令牌分发给所述第一PE。6.根据权利要求5所述的基于处理器的设备,其中所述SPCOP的所述SPCOP逻辑电路还被配置成:响应于确定CPAA令牌不可用,将所述第一PE添加到所述CPAA预留队列;响应于确定所述原子存储器访问请求对应于活跃CPAA令牌,将所述第一PE添加到所述CPAA预留队列;以及响应于确定所述第一PE不是所述CPAA预留队列中的下一个,将所述第一PE添加到所述CPAA预留队列。7.一种用于支持跨连贯颗粒边界的原子存储器访问的方法,包括:由基于处理器的设备的多个处理元件(PE)中的第一PE检测原子存储器访问请求,所述原子存储器访问请求跨越所述基于处理器的设备的系统存储器的第一连贯颗粒与第二连贯颗粒之间的边界;由所述第一PE,向专用中央排序点(SPCOP)发送针对连贯颗粒对原子访问(CP...

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

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

1