当前位置: 首页 > 专利查询>苹果公司专利>正文

利用排除区域的DSB操作制造技术

技术编号:37469805 阅读:13 留言:0更新日期:2023-05-06 09:49
公开了与数据同步屏障操作相关的技术。一种系统包括第一处理器,该第一处理器可从包括在该系统中的第二处理器接收数据屏障操作请求。基于从该第二处理器接收到该数据屏障操作请求,该第一处理器可确保由该第一处理器执行的指向排除区域之外的地址的未解决的加载/存储操作已经完成。该第一处理器可向该第二处理器回应该数据屏障操作请求在该第一处理器处完成,即使在指向该排除区域内的地址的一个或多个加载/存储操作是未解决的且在该第一处理器回应该数据屏障操作请求完成时未完成的情况下。况下。况下。

【技术实现步骤摘要】
【国外来华专利技术】利用排除区域的DSB操作

技术介绍


[0001]本公开整体涉及集成电路,并且更具体地涉及数据同步屏障(DSB)操作。
[0002]相关技术描述
[0003]现代计算机系统通常包括耦接到各种存储器设备(例如,随机存取存储器(RAM)、具有其自己的存储器的图形处理单元等)的多个处理器。在操作期间,那些处理器执行指令以实现各种软件例程,诸如用户软件应用程序和操作系统。作为实现这些软件例程的一部分,处理器通常检索数据、操纵数据、然后将该数据存储回到耦接到处理器的各种存储器设备中的一个存储器设备。为了管理数据,处理器执行加载/存储操作。加载操作将数据从存储器设备读取到处理器中,而存储操作将数据从处理器写入到存储器设备(尽管包括高速缓存的具体实施可在高速缓存中完成给定的加载或存储操作)。作为示例,处理器可执行加载操作以将数据从外围设备(例如,网卡)读取到处理器中。

技术实现思路

[0004]公开了与实现DSB操作相关的各种实施方案,该DSB操作可在不必完成以限定的排除存储区域为目标的所有未解决的加载/存储操作的情况下完成。一般来讲,片上系统(SOC)包括被配置为执行加载/存储操作的处理器,这些加载/存储操作可涉及向外部存储器(诸如外围设备的存储器和/或系统存储器)发出对数据的请求。在操作期间,第一处理器可响应于执行数据屏障指令而向第二处理器发出DSB操作请求。基于从该第一处理器接收到该DSB操作请求,该第二处理器可确保由第二处理器执行的指向排除区域之外的地址的未解决的加载/存储操作已经完成。在一些情况下,该排除区域被映射到外围设备的存储器空间。该第二处理器可向第一处理器回应该DSB操作请求在该第二处理器处完成,即使在指向排除区域内的地址的一个或多个加载/存储操作是未解决的且在该第二处理器回应DSB操作请求完成时未完成的情况下。在一些情况下,在处理该DSB操作请求时,该第二处理器可接收来自另一处理器的另一DSB操作请求,并且该DSB操作可为与该第一处理器所请求的该DSB操作不同类型的。该第二处理器可基于那些DSB操作对应于不同类型的DSB操作而并行地处理那些DSB操作。
附图说明
[0005]图1是例示根据一些实施方案的耦接到存储器的片上系统(SOC)的示例性元件的框图。
[0006]图2是例示根据一些实施方案的涉及DSB操作的两个处理器之间的交互的示例性元件的框图。
[0007]图3是例示根据一些实施方案的涉及并发DSB操作的三个处理器之间的交互的示例性元件的框图。
[0008]图4是例示根据一些实施方案的被配置为实现DSB操作的处理器的示例性元件的框图。
[0009]图5至图6是例示根据一些实施方案的与处理DSB操作请求相关的示例性方法的流程图。
[0010]图7是例示根据一些实施方案的制造SOC的至少一部分的示例性过程的框图。
[0011]图8是例示根据一些实施方案的可在各种类型的系统中使用的示例性SOC的框图。
具体实施方式
[0012]在许多情况下,当处理器进行局部改变(例如,重新映射转换页面并且使转换后备缓冲器(TLB)的条目无效)时,处理器必须确保改变的效果由系统中的其他处理器实现和解释。为了确保实现改变的效果,处理器可执行致使该处理器连同其他处理器一起完成其未解决的加载/存储操作中的所有未解决的加载/存储操作的数据同步屏障(DSB)指令以及其他影响内存的指令,诸如使TLB的条目无效的TLB无效指令。在一些情况下,发起DSB的处理器确保其自己未解决的加载/存储操作以及其他影响内存的指令在其向其他处理器广播DSB操作请求之前已经完成(按程序顺序)。响应于接收到DSB操作请求,其他处理器在将确认发送回到发起DSB的处理器之前完成其未解决的加载/存储操作以及其他影响内存的指令。
[0013]但在一些情况下,从发起DSB的内核接收DSB操作的处理器(例如,“接收处理器”)的未解决的加载/存储操作中的至少一个未解决的加载/存储操作可能花费长时间来完成。由于加载/存储操作是未解决的,因此它通常将需要在完成DSB操作之前完成。例如,作为加载/存储操作的一部分,处理器可能出于各种原因诸如到目标设备的外围部件互连快速(PCIe)链路的热拔插、加电/掉电等而向目标设备发出花费长时间来响应(例如,非响应目标设备可能引起50毫秒延迟)的数据请求。因为加载/存储操作花费长时间来完成,所以处理器在向发起DSB的处理器确认DSB操作的完成时会合理地延迟。由于发起DSB的处理器直到其从该另一处理器接收到完成确认之后才恢复其正常执行,因此发起DSB的处理器由于由另一处理器发出的长时延数据请求而受到负面影响(经受长延迟)。本公开尤其解决了发起DSB的处理器由于其他处理器的长时延操作而受到负面影响的这种技术问题。
[0014]本公开描述了用于实现可在不必完成以特定地址空间为目标的所有未解决的加载/存储操作的情况下完成的DSB操作的各种技术。如本文所用,此DSB操作称为“弱DSB操作”或简称为“弱DSB”。这与上述“强DSB操作”或“强DSB”相反,在上述“强DSB操作”或“强DSB”中,所有未解决的加载/存储操作都必须在强DSB操作之前完成。广义地说,DSB操作被视为一种类型的同步指令(有时称为“屏障”或“栅栏”指令),该同步指令使得系统中的多个处理器能够共享共享存储器的一致且连贯的视图(例如,以便避免竞态状况或其中处理器对存储器内容的视图取决于完成存储器操作的可能不可预测的顺序的其他情况)。强类型的同步指令(例如,强DSB)通常将所有未解决的加载/存储操作在它们明显影响存储器状态的可能性方面视为等同。通过要求所有此类操作在允许继续处理之前完成,强同步指令以性能为潜在代价提供关于存储器保证的最大保证。相比之下,区分未解决的加载/存储操作可使得能够识别某些不需要严格排序来保持正确的程序执行的加载/存储操作。“弱化”或“松弛”的同步指令诸如弱DSB可利用这些区别来在保持正确性的同时改善性能。
[0015]在下文所述的各种实施方案中,一种系统包括耦接到一组存储器设备的一组处理器。这些处理器被配置为执行各种指令,包括用于从那些存储器设备加载数据或将数据存储在那些存储器设备处的加载/存储指令,以及其他影响内存的指令。在各种实施方案中,处理器被配置为执行DSB指令以致使系统的一组处理器执行DSB操作。DSB指令可由处理器响应于各种事件中的任一事件的发生而执行。例如,处理器可使页面映射无效,从而影响高速缓存那些映射的其他处理器。因此,处理器可执行DSB指令以在系统的处理器之间全局地同步无效。处理器可基于影响内存的指令(例如,页面映射无效)是否影响对应于特定存储器区域的存储器地址而执行两个DSB指令中的一者。如果处理器确定影响存储器的指令不与特定存储器区域相关联,则处理器可执行第一类型的DSB指令以致使其他处理器执行弱DSB操作;否则,处理器可执行第二类型的DSB指令以致使其他处理器执行强DSB操作。
[0016]在各种实施方案中,响应于接收到执行弱DSB操作的DSB操作请求,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种系统,包括:多个处理器,其中所述多个处理器各自包括能够编程以限定存储器地址空间的排除区域的一个或多个寄存器,并且其中所述多个处理器通信地耦接,其中:所述多个处理器中的第一处理器被配置为响应于执行数据屏障指令而发出第一数据屏障操作请求;所述多个处理器中的第二处理器被配置为基于从所述第一处理器接收到所述第一数据屏障操作请求:确保由所述第二处理器执行的指向所述排除区域之外的地址的未解决的加载/存储操作已经完成;并且向所述第一处理器回应所述第一数据屏障操作请求在所述第二处理器处完成,即使在指向所述排除区域内的地址的一个或多个加载/存储操作是未解决的且在所述第二处理器回应所述第一数据屏障操作请求完成时未完成的情况下。2.根据权利要求1所述的系统,其中所述第二处理器被配置为:将加载/存储操作与标识所述加载/存储操作是否指向所述排除区域内的地址的指示相关联,其中为了确保指向所述排除区域之外的地址的所述未解决的加载/存储操作已经完成,所述第二处理器被进一步配置为确定是否存在以下未解决的加载/存储操作,所述未解决的加载/存储操作具有标识所述未解决的加载/存储操作指向所述排除区域之外的地址的指示。3.根据权利要求1所述的系统,其中所述第二处理器被配置为:基于由未解决的加载/存储操作标识的地址和与所述排除区域相关联的地址范围之间的比较来确定所述未解决的加载/存储操作是否指向所述排除区域内的地址。4.根据权利要求1所述的系统,其中所述第二处理器被配置为响应于接收到第二数据屏障操作请求而执行以下操作,其中所述第二数据屏障操作请求指示所述第二处理器在考虑何时响应所述第一处理器时包括指向所述排除区域内的地址的未解决的加载/存储操作:确保由所述第二处理器执行的所有未解决的加载/存储操作已经完成;并且向所述第一处理器回应所述第二数据屏障操作请求在所述第二处理器处完成。5.根据权利要求1所述的系统,其中所述第二处理器被配置为:在处理所述第一数据屏障操作请求时,从所述多个处理器中的第三处理器接收第二数据屏障操作请求;并且响应于所述第二数据屏障操作请求为与所述第一数据屏障操作请求不同类型的,并发地处理所述第一数据屏障操作请求和所述第二数据屏障操作请求。6.根据权利要求1所述的系统,其中所述第二处理器被配置为:在处理所述第一数据屏障操作请求时,从所述多个处理器中的第三处理器接收第二数据屏障操作请求;并且响应于所述第二数据屏障操作请求为与所述第一数据屏障操作请求相同类型的,串行地处理所述第一数据屏障操作和所述第二数据屏障操作。7.根据权利要求1所述的系统,其中所述排除区域包括映射到所述多个处理器外部的I/O设备的一组地址。
8.根据权利要求1所述的系统,其中所述第一处理器被配置为发出两种不同类型的数据屏障操作请求,并且其中所述第二处理器被配置为:保持第一刷新指针和第二刷新指针,所述第一刷新指针和所述第二刷新指针中的每个刷新指针标识将在那里刷新所述第二处理器的加载/存储单元的相应加载/存储操作;响应于检测到所述第一数据屏障操作请求是所述两种不同类型中的第一类型,在所述第一刷新指针处刷新所述加载/存储单元;并且响应于检测到所述第一数据屏障操作请求是所述两种不同类型中的第二类型,在所述第二刷新指针处刷新所述加载/存储单元。9.根据权利要求8所述的系统,其中所述第二处理器被配置为:响应于完成未解决的加载/存储操作,修改所述第一刷新指针以标识按照指令顺序紧接在所述未解决的加载/存储操作之后发生的加载/存储操作。10.根据权利要求8所述的系统,其中所述第二处理器被配置为:响应于发起指向所述排除区域内的地址的加载/存储操作,将所述第一刷新指针设定为允许所述第二处理器在所述第一刷新指针处刷新所述加载/存储单元的有效状态。11.一种方法,包括:由第一处理器从第二处理器接收第一数据屏障操作请求;基于从所述第二处理器接收到所述第一数据屏障操作请求,所述第一处理器确保由所述第一处理器执行的指向排除区域之外的地址的未解决的加载/存储操作已经完成;并且由所述第一处理器向所述第二处理器回应所述第一数据屏障操作请求在所述第一处理器处完成,即使在指向所述排除区域内的地址的一个或多个加载/存储操作是未解决的且在所述第一处理器回应...

【专利技术属性】
技术研发人员:J
申请(专利权)人:苹果公司
类型:发明
国别省市:

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

1