向具有共享存储器的共享处理元件的系统传递可编程数据技术方案

技术编号:25636917 阅读:30 留言:0更新日期:2020-09-15 21:29
提供了用于实现多个计算组件之间的通信存储器的实施例。在一个实施例中,一种装置包括驻留在处理芯片上的多个存储器组件,该多个存储器组件在处理芯片的至少一个处理核心的多个处理元件和处理芯片外部的至少一个外部存储器组件之间互连。该装置还包括处理芯片上的多个加载代理和多个存储代理,每个加载代理和每个存储代理与多个存储器组件接口。多个加载代理和多个存储代理中的每一个执行独立程序,该独立程序指定在多个存储器组件、至少一个外部存储器组件和多个处理元件之间交易的数据的目的地。

【技术实现步骤摘要】
向具有共享存储器的共享处理元件的系统传递可编程数据
本专利技术总体上涉及计算系统,并且更具体地,涉及用于在多处理器环境中实现通信存储器的各种实施例。
技术介绍
传统上,具有多个具有共享存储器的处理元件的系统将片上存储器作为高速缓存子系统来管理。中央处理单元(CPU)高速缓存由硬件自动管理,使得当请求的存储器内容不在高速缓存中时,数据从外部(片外)存储器中检索。除了实现共享高速缓存存储器之外,还可能希望实现暂存(scratchpad)存储器,该暂存存储器可以被保留用于微处理器的直接和私有使用,用于诸如临时存储或用于进程之间的通信的任务。暂存存储器通常作为片上静态或“从属(slave)”存储器手动管理,使得软件程序显式地寻址存储器。这允许并行进程的低延迟,以高可靠性和可预测性临时存储和访问数据、计算或指令。
技术实现思路
公开了用于实现多个计算组件之间的通信存储器的各种实施例。在一个实施例中,一种装置包括驻留在处理芯片上的多个存储器组件,该多个存储器组件在处理芯片的至少一个处理核心的多个处理元件和处理芯片外部的至少一个外部存储器组件之间互连。该装置还包括处理芯片上的多个加载代理和多个存储代理,每个加载代理和每个存储代理与多个存储器组件接口。多个加载代理和多个存储代理中的每一个异步地执行独立程序,该独立程序指定在多个存储器组件、至少一个外部存储器组件和多个处理元件之间交易(transacted)的数据的目的地。执行独立程序还包括使用多个加载代理和多个存储代理中的每一个之间的握手操作来执行显式同步指令,以避免在数据被交易到目的地时的写前读(read-before-write)冲突。除了前述示例性实施例,还提供了各种其他方法和计算机程序产品实施例,并提供了相关的优点。提供前述
技术实现思路
是为了以简化的形式介绍构思的选择,这些构思将在下面的具体实施方式中进一步描述。本
技术实现思路
不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。要求保护的主题不限于解决
技术介绍
中提到的任何或所有缺点的实施方式。附图说明为了使本专利技术的优点容易理解,将通过参考附图中示出的具体实施例来呈现上面简要描述的本专利技术的更具体的描述。应当理解,这些附图仅描绘了本专利技术的典型实施例,因此不应被认为是对其范围的限制,将通过使用附图以附加的特征和细节来描述和解释本专利技术,其中:图1是描绘根据本专利技术实施例的示例性计算节点的框图;图2是描绘根据本专利技术实施例的高级通信存储器和接口组件的框图;图3是描绘根据本专利技术实施例的通信存储器体系结构的框图;图4是描绘根据本专利技术实施例的用于通信存储器的硬件/软件接口的组件的框图;图5是描绘根据本专利技术实施例的实现通信存储器的硬件装置的组件的框图;图6是描绘根据本专利技术实施例的实现通信存储器的硬件装置的组件的附加框图;图7是描绘根据本专利技术实施例的用于在通信存储器内引导数据的具有显式目的地标识的示例指令的附加框图;和图8是描绘根据本专利技术实施例的用于实现多个计算组件之间的通信存储器的方法的流程图。具体实施方式如上所述,传统上,具有共享存储器的多个处理元件的系统将片上存储器作为高速缓存子系统来管理。这种系统的示例包括几种商业可用的通用处理器和图形处理单元(GraphicalProcessingUnits,GPU)。由于高速缓存完全由硬件管理,所以存储器地址的映射并不总是适合于请求或写入临时存储在其中的数据的应用的数据访问模式。此外,硬件支持用于替换来自高速缓存的数据以管理其有限容量,并且用于替换的候选数据也不是基于每个应用的数据访问要求来选择的。最后,如果多个处理器正在从高速缓存中读取/写入该相同的数据,还需要硬件支持来管理访问顺序,以保证预期的行为。随着处理元件数量的持续增长,不仅需要增加片上高速缓存的容量,而且高速缓存管理的硬件开销也需要持续扩展。此外,硬件高速缓存以不能显式地利用可用的容量和带宽的方式,对于应用程序员来说是不可见的,从而使得难以保持多个处理元件被充分利用。因此,在具有共享存储器(例如,高速缓存)的多个处理元件和互连网络的这样一个系统中,以以下这样的方式管理处理元件之间的数据传递是必要的:a)在访问数据(尤其是对于数据更新)时最小化冲突;b)映射共享数据,以便于通过互连网络的数据的多播;以及c)利用应用的数据访问模式来确定何时保存/丢弃来自有限片上存储器的数据。与硬件管理的高速缓存不同,显式软件管理的暂存存储器已经被提议在片上存储器中实现软件引导的数据布置和替换。这种存储器具有它们自己的私有地址空间,或者充当片外存储器的扩展地址空间。因此,本专利技术引入了新颖的技术来存储和检索来自这些软件管理的暂存存储器的数据,这些暂存存储器用于实现编程指令和其他数据的应用感知(application-aware)存储,以减少延迟并改善存储布置和执行该数据的处理元件的整体性能。与针对常规数据访问的编译器引导的软件管理的存储器的现有工作不同,本公开特别针对(a)在硬件支持下增加暂存存储器的带宽效率;(b)由软件控制的分层结构(hierarchy)中的层级(level)的旁路,将数据最优地布置在多层级的暂存存储器分层结构的期望层级中;以及(c)通过将双重缓冲写入的完成与数据到特定层级或其他目的地(例如,外部、片外存储器)的后续读取显式地同步,来对双重缓冲数据进行软件支持。本专利技术进一步考虑设计和操作硬件/软件共同管理的片上存储器的新颖方法和装置,其利用了如下知识:利用应用的数据访问模式来将数据映射到由其间具有互连网络的多个处理元件和数据流体系结构组成的系统的片上存储器。本公开包括硬件机制,以保证处理元件之间的数据访问没有冲突,以及软件支持,以在数据的使用之前将数据传递到片上存储器。下面将进一步描述该功能及其伴随的益处。现在参考图1,示出了包含前述处理元件的计算节点的示例的示意图。计算节点10仅仅是合适的计算节点的一个示例,并且不旨在对这里描述的本专利技术的实施例的使用范围或功能提出任何限制。无论如何,计算节点10能够被实现和/或执行所阐述的任何功能。在计算节点10中,存在计算机系统/服务器12,其可与许多其他通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器12一起使用的众所周知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户机、胖客户机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消耗电子产品、网络PC、小型计算机系统、大型计算机系统以及包括上述任何系统或设备的分布式云计算环境等。计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般上下文中描述。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。在一些实施例中,计算机系统/服务器12可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备来执行。在分布式云计算环境本文档来自技高网
...

【技术保护点】
1.一种用于由处理器实现多个计算组件之间的通信存储器的方法,所述方法包括:/n提供驻留在处理芯片上的多个存储器组件,所述多个存储器组件在所述处理芯片的至少一个处理核心的多个处理元件和所述处理芯片外部的至少一个外部存储器组件之间互连;/n提供所述处理芯片上的多个加载代理和多个存储代理,每个加载代理和每个存储代理与所述多个存储器组件接口;和/n由所述多个加载代理和所述多个存储代理中的每一个执行独立程序,所述独立程序指定在所述多个存储器组件、至少一个外部存储器组件和所述多个处理元件之间交易的数据的目的地。/n

【技术特征摘要】
20190307 US 16/295,4081.一种用于由处理器实现多个计算组件之间的通信存储器的方法,所述方法包括:
提供驻留在处理芯片上的多个存储器组件,所述多个存储器组件在所述处理芯片的至少一个处理核心的多个处理元件和所述处理芯片外部的至少一个外部存储器组件之间互连;
提供所述处理芯片上的多个加载代理和多个存储代理,每个加载代理和每个存储代理与所述多个存储器组件接口;和
由所述多个加载代理和所述多个存储代理中的每一个执行独立程序,所述独立程序指定在所述多个存储器组件、至少一个外部存储器组件和所述多个处理元件之间交易的数据的目的地。


2.根据权利要求1所述的方法,还包括以分层结构将所述多个存储器组件排列成多个层级;其中所述多个层级中的最低层级被分成多个存储体,每个存储体在多个端口处从所述多个层级中的较高层级接受数据。


3.根据权利要求1所述的方法,其中,所述多个加载代理和所述多个存储代理中的每一个经由接口并发地将数据异步地传送到所述多个处理元件、所述多个存储器组件和至少一个外部存储器组件中的至少一个内的目的地。


4.根据权利要求3所述的方法,其中,所述接口包括先进先出(FIFO)接口或片外互连网络。


5.根据权利要求3所述的方法,其中,执行所述独立程序还包括使用所述多个加载代理和所述多个存储代理中的每一个之间的握手操作来执行显式同步指令,以避免在数据被交易时的数据冲突。


6.根据权利要求5所述的方法,还包括按照并发地传送数据,使用仲裁逻辑来处理对由目标标识符标识的相同目的地的并发数据请求。


7.根据权利要求1所述的方法,其中,所述多个存储器组件中的每一个包括暂存存储器。


8.一种用于实现多个计算组件之间的通信存储器的系统,包括:
驻留在处理芯片上的多个存储器组件,所述多个存储器组件在所述处理芯片的至少一个处理核心的多个处理元件和所述处理芯片外部的至少一个外部存储器组件之间互连;和
所述处理芯片上的多个加载代理和多个存储代理,每个加载代理和每个存储代理与所述多个存储器组件接口;其中:
所述多个加载代理和所述多个存储代理中的每一个执行独立程序,所述独立程序指定在所述多个存储器组件、至少一个外部存储器组件和所述多个处理元件之间交易的数据的目的地。


9.根据权利要求8所述的系统,其中,所述多个存储器组件以分层结构排列成多个层级;并且其中所述多个层级中的最低层级被分成多个存储体,每个存储体在多个端口处从所述多个层级中的较高层级接受数据。


10.根据权利要求8所述的系统,其中,所述多个加载代理和所述多个存储代理中的每一个经由接口并发地将数据异步地传送到所述多个处理元件、所述多个存储器组件和至少一个外部存储器组件...

【专利技术属性】
技术研发人员:陈家佑崔正旭B库兰B弗莱施尔K戈帕拉克里山吴珍旭SK舒克拉V斯里尼瓦桑S文卡塔拉马尼
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

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

1