用于支持多处理器架构的系统缓存架构和芯片技术方案

技术编号:37053635 阅读:14 留言:0更新日期:2023-03-29 19:30
本发明专利技术公开了一种用于支持多处理器架构的系统缓存架构和芯片。该架构包括:侦听流水线交换端口与多处理器架构的至少两个处理器的最后一级内存总线连接,将来自任一处理器的内存读写请求通过内存请求仲裁器转发至内存系统或者将内存读写请求发送至至少两个高速缓存段中的任一高速缓存段;一致性互连侦听请求器将来自DMA主机的侦听读写请求发送至至少两个高速缓存段中的任一高速缓存段;至少两个高速缓存段用于响应来自侦听流水线交换端口或一致性互连侦听请求器的并发的读写请求,并在存储的缓存数据与内存读写请求或侦听读写请求对应时反馈或更新缓存数据。本发明专利技术实施例的技术方案,对多处理器架构的高性能扩展提供了支持。了支持。了支持。

【技术实现步骤摘要】
用于支持多处理器架构的系统缓存架构和芯片


[0001]本专利技术实施例涉及芯片技术,尤其涉及一种用于支持多处理器架构的系统缓存架构和芯片。

技术介绍

[0002]高性能扩展是高性能计算中大规模多处理器架构的目标。其中,中央处理单元(Central Processing Unit,CPU)芯粒(chiplet)是一种能够有效扩展CPU性能的技术架构。Chiplet技术通过使用多个较小的芯粒进行芯片设计,既可以降低制造成本,又可以提高计算性能。采用CPU集群(clusters)同样能够有效扩展CPU性能。但CPU chiplet架构和CPU集群在实现高性能扩展时,多个CPU或多个CPU chiplet 之间的一致性互连(coherent interconnect)性能均是影响性能充分发挥的关键。
[0003]图1示出包括32个内核的4个CPU集群的两个系统,如图1所示,左侧示出的是嵌入式CPU系统,所有CPU集群都在一个片上系统(System On Chip,SOC)中。右侧示出的是CPU chiplet系统,部分或全部CPU可以是驻留在SOC之外的CPU chiplet。从图1中可以看出,无论哪种架构,CPU集群中的各CPU以及CPU chiplet架构中的各CPU chiplet均通过一致性互连(coherent interconnect)与内存系统(Memory System)以及通过coherent interconnect和直接内存访问(Direct Memory Access,DMA)主机(master)交互(例如高速外设组件互连(Peripheral Component Interconnect express,PCIe)或计算高速连接(Compute EXpress Link,CLX)或加速的缓存一致性互连(Cache Coherent Interconnect for Accelerators,CCIX)。
[0004]当系统执行对称对处理(Symmetrical Multi

Processing,SMP)操作系统(Operating System,OS)内核时,所有CPU之间需要保持缓存一致性。缓存一致性协议的机制将决定系统执行并发多线程任务的性能。如何能够在多处理器架构下,解决缓存一致性的问题,是实现多处理器架构的高性能扩展的关键因素。

技术实现思路

[0005]本专利技术提供一种用于支持多处理器架构的系统缓存架构和芯片,降低了一致性互连与处理器之间的数据请求交互,对多处理器架构的高性能扩展提供了支持。
[0006]第一方面,本专利技术实施例提供了一种对多处理器架构的高性能扩展提供了支持,包括:侦听流水线交换端口、至少两个高速缓存段、内存请求仲裁器、一致性互连侦听请求器;
[0007]侦听流水线交换端口与多处理器架构的至少两个处理器的最后一级内存总线连接,将来自任一处理器的内存读写请求通过内存请求仲裁器转发至内存系统或者将内存读写请求发送至至少两个高速缓存段中的任一高速缓存段;
[0008]内存请求仲裁器通过一致性互连与内存系统连接;
[0009]一致性互连侦听请求器通过一致性互连与DMA主机连接,将来自DMA主机的侦听读
写请求发送至至少两个高速缓存段中的任一高速缓存段;
[0010]至少两个高速缓存段用于响应来自侦听流水线交换端口或一致性互连侦听请求器的并发的读写请求,存储与内存读写请求或侦听读写请求对应的缓存数据,并在存储的缓存数据与内存读写请求或侦听读写请求对应时反馈或更新缓存数据。
[0011]在第一方面一种可能的实现方式中,侦听流水线交换端口还用于在将来自任一处理器的内存读写请求通过内存请求仲裁器转发至内存系统或者将内存读写请求发送至至少两个高速缓存段中的任一高速缓存段之前,确定内存读写请求是否位于可缓存周期,若是则将内存读写请求发送至至少两个高速缓存段中的任一高速缓存段,若否则将内存读写请求通过内存请求仲裁器转发至内存系统。
[0012]在第一方面一种可能的实现方式中,若内存读写请求为内存读取请求,则侦听流水线交换端口根据来自第一处理器的内存读取请求在第一高速缓存段中查询对应的第一缓存数据,若缓存未命中则通过内存请求仲裁器从内存系统中获取对应的第一缓存数据发送至第一处理器并存储至第一高速缓存段,若缓存命中则从第一处理器以外的其他处理器中侦听第一缓存数据对应的脏数据,若侦听到脏数据则将脏数据发送至第一处理器并刷新第一高速缓存段中的数据,第一处理器为多处理器架构中的任一处理器,第一高速缓存段为至少两个高速缓存段中任一空闲高速缓存段。
[0013]在第一方面一种可能的实现方式中,若来自第一处理器的内存读取请求在第一高速缓存段中查询对应的第一缓存数据时缓存命中,且从第一处理器以外的其他处理器中未侦听到第一缓存数据对应的脏数据,则侦听流水线交换端口将第一高速缓存段中的第一缓存数据发送至第一处理器。
[0014]在第一方面一种可能的实现方式中,若内存读写请求为内存写入请求,则侦听流水线交换端口确定内存写入请求为部分写入请求时,在第一高速缓存段中存储内存写入请求,并向第一处理器以外的其他处理器发送侦听请求阻止其他处理器更新内存写入请求所在缓存行并将内存写入请求通过内存请求仲裁器转发至内存系统,若侦听流水线交换端口确定内存写入请求为全部写入请求时直接将内存写入请求通过内存请求仲裁器转发至内存系统。
[0015]在第一方面一种可能的实现方式中,侦听流水线交换端口将内存写入请求通过内存请求仲裁器转发至内存系统之后,还将第一高速缓存段中存储的内容写入请求标记为脏数据。
[0016]在第一方面一种可能的实现方式中,当侦听读写请求为侦听读取请求时,接收到侦听读取请求的第一高速缓存段,用于确定侦听读写请求是否缓存命中,若未命中则不响应侦听读取请求。
[0017]在第一方面一种可能的实现方式中,第一高速缓存段,还用于在接收到侦听读取请求时,确定侦听读取请求缓存命中时,确定与侦听读取请求对应的第二缓存数据是否为脏数据,若是则反馈第二缓存数据并将第二缓存数据标记为干净数据,若否则通过侦听流水线交换端口在至少两个处理器中查询与侦听读取请求对应的脏数据并将脏数据缓存并反馈。
[0018]在第一方面一种可能的实现方式中,第一高速缓存段还用于在接收到侦听读取请求时,确定侦听读取请求缓存命中时,确定侦听读取请求对应的第二缓存数据为干净数据
时,若通过侦听流水线交换端口在至少两个处理器中未查询到与侦听读取请求对应的脏数据则将反馈第二缓存数据。
[0019]在第一方面一种可能的实现方式中,当侦听读写请求为侦听写入请求时,接收到侦听写入请求的第一高速缓存段,用于确定侦听读写请求是否缓存命中,若未命中则将侦听写入请求写入内存系统目录。
[0020]在第一方面一种可能的实现方式中,第一高速缓存段,还用于在接收到侦听写入请求时,确定侦听写入请求缓存命中时,当确定侦听写入请求为脏数据命中时则将侦听写入本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于支持多处理器架构的系统缓存架构,其特征在于,包括:侦听流水线交换端口、至少两个高速缓存段、内存请求仲裁器、一致性互连侦听请求器;所述侦听流水线交换端口与多处理器架构的至少两个处理器的最后一级内存总线连接,将来自任一处理器的内存读写请求通过所述内存请求仲裁器转发至内存系统或者将所述内存读写请求发送至所述至少两个高速缓存段中的任一高速缓存段;所述内存请求仲裁器通过一致性互连与内存系统连接;所述一致性互连侦听请求器通过一致性互连与直接内存访问DMA主机连接,将来自DMA主机的侦听读写请求发送至所述至少两个高速缓存段中的任一高速缓存段;所述至少两个高速缓存段用于响应来自所述侦听流水线交换端口或所述一致性互连侦听请求器的并发的读写请求,存储与所述内存读写请求或所述侦听读写请求对应的缓存数据,并在存储的缓存数据与所述内存读写请求或所述侦听读写请求对应时反馈或更新所述缓存数据。2.根据权利要求1所述的用于支持多处理器架构的系统缓存架构,其特征在于,所述侦听流水线交换端口还用于在将来自任一处理器的内存读写请求通过所述内存请求仲裁器转发至内存系统或者将所述内存读写请求发送至所述至少两个高速缓存段中的任一高速缓存段之前,确定所述内存读写请求是否位于可缓存周期,若是则将所述内存读写请求发送至所述至少两个高速缓存段中的任一高速缓存段,若否则将所述内存读写请求通过所述内存请求仲裁器转发至内存系统。3.根据权利要求1所述的用于支持多处理器架构的系统缓存架构,其特征在于,若所述内存读写请求为内存读取请求,则所述侦听流水线交换端口根据来自第一处理器的内存读取请求在第一高速缓存段中查询对应的第一缓存数据,若缓存未命中则通过所述内存请求仲裁器从内存系统中获取对应的第一缓存数据发送至所述第一处理器并存储至所述第一高速缓存段,若缓存命中则从所述第一处理器以外的其他处理器中侦听所述第一缓存数据对应的脏数据,若侦听到所述脏数据则将所述脏数据发送至所述第一处理器并刷新所述第一高速缓存段中的数据,所述第一处理器为所述多处理器架构中的任一处理器,所述第一高速缓存段为所述至少两个高速缓存段中任一空闲高速缓存段。4.根据权利要求3所述的用于支持多处理器架构的系统缓存架构,其特征在于,若来自第一处理器的内存读取请求在第一高速缓存段中查询对应的第一缓存数据时缓存命中,且从所述第一处理器以外的其他处理器中未侦听到所述第一缓存数据对应的脏数据,则所述侦听流水线交换端口将所述第一高速缓存段中的第一缓存数据发送至所述第一处理器。5.根据权利要求1所述的用于支持多处理器架构的系统缓存架构,其特征在于,若所述内存读写请求为内存写入请求,则所述侦听流水线交换端口确定所述内存写入请求为部分写入请求时,在第一高速缓存段中存储所述内存写入请求,并向第一处理器以外的其他处理器发送侦听请求阻止其他处理器更新所述内存写入请求所在缓存行并将所述内存写入请求通过所述内存请求仲裁器转发至内存系统,若所述侦听流水线交换端口确定所述内存写入请求为全部写入请求时直接将所述内存写入请求通过所述内存请求仲裁器转发至内存系统。6.根据权利要求5所述的用于支持多处理器架构的系统缓存架构,其特征在于,所述侦
听流水线交换端口将所述内存写入请求通过所述内存请求仲裁器转发至内存系统之后,还将所述第一高速缓存段中存储的内容写入请求...

【专利技术属性】
技术研发人员:李晓均
申请(专利权)人:芯砺智能科技上海有限公司
类型:发明
国别省市:

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

1