一种gpu缓存子系统互联的数字电路设计方法

文档序号:35155 发布日期:2021-09-24 浏览:30次 >En<

阅读说明:本技术 一种gpu缓存子系统互联的数字电路设计方法 (Method for designing digital circuit interconnected by GPU (graphics processing Unit) cache subsystems ) 是由 王俊 于 2021-06-04 设计创作,主要内容包括:本发明公开了一种GPU缓存子系统互联的数字电路设计方法,包括划分GPU的设备内存地址;设置区域内独立的交叉通路,该交叉通路连接该区域的包含L1缓存片的计算核心作为请求发起方,该区域的L2缓存片作为请求接收方;设置区域内L2缓存片的缓存方式;连接区域内L2缓存片与设备内存及其内存控制器;设置区域内的原始拥有者缓存,负责其区域内设备内存地址的初次读取和最终写回;将本区域的每个L2缓存片和另一半区域的一个L2缓存片组成镜像L2缓存片组。本发明可节省芯片走线面积,缩短平均访问延时,提高运算核心访问缓存数据的效率,支持在硬件层面完成不同缓存层级间的数据共享和同步的处理。(The invention discloses a design method of a digital circuit interconnected by GPU cache subsystems, which comprises the steps of dividing the memory address of GPU equipment; setting an independent cross path in a region, wherein the cross path connects a computing core containing an L1 cache slice of the region as a request initiator, and an L2 cache slice of the region as a request receiver; setting a cache mode of an L2 cache slice in the region; l2 cache slice and device memory and its memory controller in the connection area; setting an original owner cache in the region, and taking charge of the initial reading and the final write-back of the memory address of the equipment in the region; each L2 slice of the region and one L2 slice of the other half region are combined into a mirror L2 slice group. The invention can save the wiring area of the chip, shorten the average access delay, improve the efficiency of accessing the cache data by the operation core and support the completion of data sharing and synchronous processing among different cache layers on the hardware level.)

一种GPU缓存子系统互联的数字电路设计方法

技术领域

本发明属于数字电路

技术领域

,具体涉及一种GPU缓存子系统互联的数字电路设计方法。

背景技术

图1是一个GPU常规片内缓存子系统的互联结构。每一组运算核心共享一个独立的私有缓存L1,所有的运算核心再共享一个容量较大的二级缓存L2缓存片。L2缓存片为了能够同时提供所有的运算核心足够的访问带宽,L2缓存片一般用分布式缓存的方式来组织,即根据访问的地址所属的空间,将L2缓存片分成若干L2缓存片,每个L2缓存片都能提供一份访问带宽,所有的运算核心和所有的L2缓存片以交叉总线相互连接。一个常规的4X4的交叉总线互联如图2所示。该常规方法通常再配和访存请求地址哈希等功能来达到交叉通路根据地址路由各个L2缓存片片时,访问均衡的目的,以充分利用所有L2缓存片片带宽。

随着GPU片内规模的不断扩大,使用上述分布式缓存的方式组织GPU缓存访问,主要面临以下几个问题:

1.越多的运算核心,访存总带宽需求更大,也需要提供更大的L2缓存片访问总带宽。这要求将L2缓存片分成更多的L2缓存片,实现更多路的交叉总线通路以满足需要。交叉通路走线的面积可能成为瓶颈。

2.更多的运算核心和更多的L2缓存片使得交叉通路的最长走线越来越长,当单个运算核心的任务希望使用所有地址空间即访存请求关联所有的L2缓存片,则一次数据块的搬移最终会取决于该运算核心到某个最长走线路径L2缓存片的延时。

所以在GPU缓存子系统及其互联的数字设计中,需解决上述问题,此外,早期GPU既不频繁同步也不共享数据,而是通过把线程信息和缓存结构暴露给程序员,让程序员在没有硬件一致性的情况下,通过软件实现同步和数据共享。

现在,GPGPU越来越流行。技术人员开始用GPU架构做通用的任务(generalpurpose workloads),这对GPU实现硬件缓存一致性有了要求。LRCC(LAZY releasedconsistency-direct coherence)是一种适合GPU实现数据同步和共享的缓存一致性协议。该协议主要基于“生产者-消费者”访存一致性模型,通过acquire-release(消费者-生产者)机制实现片内L1缓存片之间的数据共享和同步,同步发生在消费者去试图获取(acquire)生产者已经释放(release) 的flag,作为生产者一侧的L1缓存片在发生同步时把缓存内已更新的共享数据写回到消费者可见的点(一般是公共可见的L2缓存片),而作为消费者一侧的L1缓存片则需要在完成同步时无效缓存内旧的数据,以避免后续访存请求仍旧读到过时的缓存数据,而是可以从同步点读取到最新的数据。L2缓存片作为L1缓存片共享数据的同步点,负责记录缓存行的状态 --归属情况,当发生同步时,作为生产者、消费者的桥梁,通过请求交互,来指示生产者、消费者的L1开始数据同步及完成数据同步。其中L1在LRCC协议中的逻辑行为如图3所示, L2缓存片在LRCC协议中的逻辑行为如图4所示。图中的GetV和GetO是LRCC定义的两种类型的读请求,GetV不要求获得该地址的所有权(owner),GetO需要获得该地址的所有权。具体LRCC协议缓存一致性数据同步流程如图5所示。

发明内容

本发明所要解决的技术问题是针对上述现有技术的不足,提供一种GPU缓存子系统互联的数字电路设计方法。

为实现上述技术目的,本发明采取的技术方案为:

一种GPU缓存子系统互联的数字电路设计方法,包括:

步骤1:划分GPU的设备内存地址,设置计算核心、L1缓存片、L2缓存片、设备内存及其内存控制器;

步骤2:设置区域内独立的交叉通路,该交叉通路连接该区域的包含L1缓存片的计算核心作为请求发起方,该区域的L2缓存片作为请求接收方;

步骤3:设置区域内L2缓存片的缓存方式;

步骤4:连接区域内L2缓存片与设备内存及其内存控制器;

步骤5:设置区域内的原始拥有者缓存,负责其区域内设备内存地址的初次读取和最终写回;

步骤6:将本区域的每个L2缓存片和另一半区域的一个L2缓存片组成镜像L2缓存片组。

为优化上述技术方案,采取的具体措施还包括:

上述的步骤1具体为:

将GPU的设备内存地址分为两个区域,每个区域内设有:GPU一半计算核心和其私有的L1缓存片,共享的、占L2缓存片总容量一半的L2缓存片,占总容量一半的设备内存及其内存控制器。

上述的步骤2具体为:

设置区域内独立的交叉通路,该交叉通路连接该区域的包含L1缓存片的计算核心作为请求发起方,该区域的L2缓存片作为请求接收方。

上述的步骤3具体为:

设置区域内L2缓存片的缓存方式:

每个区域的L2缓存片,采用常规的分布式缓存方式,根据系统的实际带宽要求分成若干 L2缓存片与交叉通路相连接。

上述的步骤4具体为:

连接L2缓存片与设备内存及其内存控制器,以几个L2缓存片与一条设备内存通路存在对应关系,用单独连线表示。

上述的步骤5中,直接与设备内存相连的L2片定义为对应设备内存通路地址的原始拥有者缓存。

上述的步骤1中,镜像L2缓存片组内的L2缓存片之间用一个单独通路相连。

所设计GPU缓存子系统互联的数字电路的路由逻辑是为:

包含L1缓存片的计算核心访问L2缓存片请求时,首先通过其区域的交叉通路进行路由,交叉通路根据请求地址路由到其区域的某个L2缓存片;

路由到L2缓存片的地址有一半本身属于该作为原始拥有者的L2缓存片地址区域;

一个L2缓存片可能收到来自交叉总线或者镜像L2缓存片的访问请求,对于缓存未命中的请求根据地址判断是否属于本区域,属于本区域的请求,通过L2缓存片与设备内存的通路,去对应的设备内存通路读取,非属于本区域的请求通过镜像L2缓存片组直连通路去其镜像 L2缓存片的L2缓存片读取。

通过改进LRCC协议,将其扩展到L2缓存片层级并定义其逻辑行为来实现GPU L2缓存片层级的基于LRCC的缓存一致性。

本发明具有以下有益效果:

1.本发明连接方式对比常规GPU的L2缓存片连接方式,M表示GPU请求发起者的总数量,N表示GPU L2缓存片的总数量,常规方法达到相同的连接效果(能够访问所有的 L2缓存片)需要的连接通路一共是M*N组,本发明方法的连接通路一共是M*(N/2)+N/2组。即本发明方法比常规方法少(MN-N)/2组的连接通路,如图2与图10的4X4连接对比所示,可以节省6组连接通路,节省了芯片走线面积,对于越大的GPU设计,M和N越大,该方法节省的走线面积越显著。

2.本发明分区域的方法和基于L2缓存片镜像组的连接方式,将交叉通路的路由目标减少了一半,有助于一个区域内路由的路径长度。原本对于运算核心访问地址处于另一区域的远端的数据也能通过L2缓存片镜像组,缓存在同区域的较近的L2缓存片中提供访问,缩短了平均访问延时,提高了运算核心访问缓存数据的效率。

3.本发明L2缓存片镜像组的连接方式本质上是在系统中存在非唯一L2缓存片,存在 L2缓存片-L2缓存片的缓存一致性问题,将LRCC协议扩展到L2缓存片,根据本发明定义的缓存逻辑行为,本发明方法支持在硬件层面完成不同缓存层级间的数据共享和同步的处理。

附图说明

图1为GPU常规片内缓存子系统的互联结构;

图2是常规的4X4的交叉总线互联;

图3是L1缓存片在LRCC协议中的逻辑行为;

图4是L2缓存片在LRCC协议中的逻辑行为

图5是LRCC协议缓存一致性数据同步流程;

图6是本发明访存子系统连接关系示意图;

图7是本发明实施例中区域1计算核心1读请求访问L2缓存片1缓存未命中后的取数据路径示意图;

图8是本发明扩展的LRCC协议中,L1缓存片的逻辑行为;

图9是本发明扩展的LRCC协议中,L2缓存片的逻辑行为;

图10是本发明在4个请求者,4个L2缓存片时,交叉总线连接示意图;

图11是一例基于本发明数字电路设计方法的普通访存请求访问非属于本区域地址空间,及最终利用软件同步的方式写回到设备内存的流程示意图;

图12是本发明利用扩展的LRCC算法实现硬件一致性,完成数据同步的流程;

图13是本发明实施例中场景2生产者、消费者属于区域1,要同步的数据属于区域2的情况下的同步流程示意图;

图14是本发明实施例中场景3,生产者和需同步数据属于区域1,消费者属于区域2的情况下的同步流程示意图;

图15是本发明实施例中场景4,生产者属于区域1,消费者和数据属于区域2的情况下的同步流程示意图。

具体实施方式

以下结合附图对本发明的实施例作进一步详细描述。

参见图6,一种GPU缓存子系统互联的数字电路设计方法,包括:

步骤1:划分GPU的设备内存地址,设置计算核心、L1缓存片、L2缓存片、设备内存及其内存控制器;

实施例中,将GPU的设备内存地址分为两个区域,每个区域内设有:GPU一半计算核心和其私有的L1缓存片,共享的、占L2缓存片总容量一半的L2缓存片,占总容量一半的设备内存及其内存控制器;

步骤2:设置区域内独立的交叉通路,该交叉通路连接该区域的包含L1缓存片的计算核心作为请求发起方,该区域的L2缓存片作为请求接收方;

实施例中,每个区域设置一个独立的交叉通路,该交叉通路连接该区域的包含L1缓存片的计算核心作为请求发起方,该区域的L2缓存片作为请求接收方;

步骤3:设置区域内L2缓存片的缓存方式;

实施例中,每个区域的L2缓存片,采用常规的分布式缓存方式,根据系统的实际带宽要求分成若干L2缓存片与交叉通路相连接;

步骤4:连接区域内L2缓存片与设备内存及其内存控制器;

L2缓存片与设备内存及其内存控制器的连接方式非本发明讨论重点;

实施例中,连接L2缓存片与设备内存及其内存控制器,以几个L2缓存片与一条设备内存通路存在对应关系,用单独连线表示;

步骤5:设置区域内的原始拥有者缓存,负责其区域内设备内存地址的初次读取和最终写回;

实施例中,直接与设备内存相连的L2片定义为对应设备内存通路地址的原始拥有者缓存;

步骤6:将本区域的每个L2缓存片和另一半区域的一个L2缓存片组成镜像L2缓存片组。

实施例中,镜像L2缓存片组内的L2缓存片之间用一个单独通路相连。

所设计GPU缓存子系统互联的数字电路的路由逻辑是为:

包含L1缓存片的计算核心访问L2缓存片请求时,首先通过其区域的交叉通路进行路由,交叉通路根据请求地址路由到其区域的某个L2缓存片;

路由到L2缓存片的地址有一半本身属于该作为原始拥有者的L2缓存片地址区域(一个区域内只包含一半地址空间,而请求地址可能属于另一个区域);

一个L2缓存片可能收到来自交叉总线或者镜像L2缓存片的访问请求,对于缓存未命中的请求根据地址判断是否属于本区域,属于本区域的请求,通过L2缓存片与设备内存的通路,去对应的设备内存通路读取,非属于本区域的请求通过镜像L2缓存片组直连通路去其镜像 L2缓存片的L2缓存片读取,如图7所示。

实施例中,通过改进LRCC协议,将其扩展到L2缓存片层级并定义其逻辑行为来实现 GPU L2缓存片层级的基于LRCC的缓存一致性。

即,GPU中L2缓存片间采用扩展的LRCC协议完成硬件缓存,扩展的协议中,L1缓存片的逻辑行为如图8所示。L2缓存片的逻辑行为如图9所示。

实施例

图11是一例基于本发明数字电路设计方法的普通访存请求访问非属于本区域地址空间,及最终利用软件同步(软件指示请求写穿并无效)的方式写回到设备内存的流程示意图(以下例图都为着重说明访存和数据同步等过程,为了使图片更简洁,将不再根据实际的L2缓存片——根据缓存分布方式组织成若干L2缓存片,而是只把一个区域的L2缓存片作为一个逻辑整体抽象表示,下同):

①区域1计算核心产生访存指令,地址A属于区域2,L1缓存片访存未命中,发送读请求给区域1交叉总线,区域1交叉总线将请求路由到区域1的L2缓存片

②区域1L2缓存片也访存未命中,请求地址A属于非本区域空间,将请求通过镜像L2 缓存片组直连通路发送给区域2的L2缓存片

③区域2L2缓存片也访存未命中,请求地址A属于本区域空间,将请求发送给对应设备内存

④设备内存返回数据给区域2的L2缓存片,区域2的L2缓存片返回数据给区域1的L2 缓存片,区域1的L2缓存片返回数据给区域1L1缓存片,并缓存数据。区域1L1缓存片收到数据并缓存。

⑤区域1计算核心将更新后的A通过指示写穿并无效(软件控制)写给区域1L1缓存片,L1缓存片访存命中,对于写穿并无效请求,无效自己的A地址缓存数据,并将该请求及数据继续发给区域1L2缓存片

⑥区域1L2缓存片也访存命中,对于写穿并无效请求,无效自己的A地址缓存数据,并将该请求及数据继续发给区域2L2缓存片

⑦区域2L2缓存片访存未命中,对于写穿并无效请求,直接将该请求及数据写穿,写入对应的设备内存。

图12展示了本发明利用扩展的LRCC算法实现硬件一致性,完成数据同步的流程,本例是场景1生产者、消费者,要同步的数据都属于同一个区域,基本同步流程:

①生产者(对应L1缓存片,下同不重复)release flag,根据图8的行为逻辑,发送GetO flag请求到交叉总线,交叉总线将请求路由到L2缓存片

②消费者(对应L1缓存片,下同不重复)acquire flag,根据图8的行为逻辑,发送GetV flag请求到交叉总线,交叉总线将请求路由到L2缓存片

③L2缓存片根据图9的行为逻辑,发送“请求写回”给生产者

④生产者根据图8的行为逻辑,写回同步数据和flag

⑤L2缓存片根据图9的行为逻辑,响应消费者的GetV flag请求。消费者收到响应,根据图8的行为逻辑,无效自己的非占有数据,完成数据一致性同步。

图13展示了场景2生产者、消费者属于区域1,要同步的数据属于区域2的情况下的同步流程示意图。基本同步流程:

①生产者release flag,根据图8的行为逻辑,发送GetO flag请求到区域1交叉总线,交叉总线将请求路由到区域1的L2缓存片。

②区域1的L2缓存片根据图9的行为逻辑,将GetO通过镜像L2缓存片组直连通路发给作为flag原始拥有者的区域2的L2缓存片,区域2的L2缓存片根据图9的行为逻辑,更新flag占有状态。

③消费者acquire flag,根据图8的行为逻辑,发送GetV flag请求到区域1交叉总线,交叉总线将请求路由到区域1的L2缓存片。

④区域1的L2缓存片根据图9的行为逻辑,发送“请求写回”给生产者。

⑤生产者根据图8的行为逻辑,写回同步数据和flag到区域1的L2缓存片。

⑥区域1的L2缓存片根据图9的行为逻辑,响应消费者的GetV flag请求。消费者收到响应,根据图8的行为逻辑,无效自己的非占有数据,完成数据一致性同步。

图14展示了场景3,生产者和需同步数据属于区域1,消费者属于区域2的情况下的同步流程示意图。基本同步流程:

①生产者release flag,根据图8的行为逻辑,发送GetO flag请求到区域1交叉总线,交叉总线将请求路由到区域1的L2缓存片。

②消费者acquire flag,根据图8的行为逻辑,发送GetV flag请求到区域2交叉总线,交叉总线将请求路由到区域2的L2缓存片。

③区域2的L2缓存片的flag为无效状态,根据图9的行为逻辑将GetV通过镜像L2缓存片组直连发给flag的原始拥有者,区域1的L2缓存片。

④区域1的L2缓存片根据图9的行为逻辑,发送“请求写回”给生产者

⑤生产者根据图8的行为逻辑,写回同步数据和flag

⑥区域1的L2缓存片根据图9的行为逻辑,响应GetV flag请求。区域2的L2缓存片收到响应,根据图9的行为逻辑,无效自己的非占有数据。

⑦区域2的L2缓存片完成无效后响应消费者GetV flag请求。消费者收到响应,根据图 4的行为逻辑,无效自己的非占有数据。完成整个数据同步。(生产者写回,消费者和区域2 的L2缓存片无效旧数据)

图15展示了场景4,生产者属于区域1,消费者和数据属于区域2的情况下的同步流程示意图。基本同步流程:

①生产者release flag,根据图8的行为逻辑,发送GetO flag请求到区域1交叉总线,交叉总线将请求路由到区域1的L2缓存片。

②区域1的L2缓存片根据图9的行为逻辑,将GetO flag请求通过镜像L2缓存片组直连发给flag的原始拥有者,区域2的L2缓存片。区域2的L2缓存片根据图9的行为逻辑,更新flag占有状态。

③消费者acquire flag,根据图8的行为逻辑,发送GetV flag请求到区域2交叉总线,交叉总线将请求路由到区域2的L2缓存片。

④flag原始拥有者,区域2的L2缓存片根据图9的行为逻辑,发送“请求写回”通过镜像L2缓存片组直连,发给区域1的L2缓存片。

⑤区域1的L2缓存片根据图9的行为逻辑,发送“请求写回”给生产者。

⑥生产者根据图8的行为逻辑,写回同步数据和flag到区域1的L2缓存片。

⑦区域1的L2缓存片根据图9的行为逻辑,在收到生产者写回的flag后,将自己非占有非原始拥有的数据也全部通过镜像L2缓存片组直连写回。再将flag写回原始拥有者L2缓存片。

⑧flag原始拥有者,区域2的L2缓存片收到区域1L2缓存片写回的flag后,根据图9的行为逻辑,响应消费者的GetV flag请求。消费者收到响应,根据图8的行为逻辑,无效自己的非占有数据,完成数据一致性同步。

本发明通过组成镜像直连L2缓存片片组,能够有效减少交叉通路的走线面积,解决大 GPU设计走线面积成为瓶颈的问题,并能减少交叉通路的长度,减少访问缓存的时延,提高大GPU设计的访存效率。但该方法破坏了常规GPU设计所有核心共享一个L2缓存片的基础,即存在多份L2缓存片。引入了可能存在的L2缓存片层级的缓存一致性问题。

对于该问题除了常规的,同解决GPU私有L1缓存片可能存在的缓存一致性问题一样,通过把线程信息和新的缓存结构暴露给程序员,让程序员在没有硬件一致性的情况下,通过软件实现同步和数据共享的手段外,本发明也通过改进LRCC协议,将其扩展到L2缓存片层级并定义其逻辑行为来实现GPU L2缓存片层级的基于LRCC的缓存一致性解决方案,支持存在非唯一L2缓存片的情况下的,不同缓存层级间的数据共享和同步的处理。

以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种芯片及其pin出线设计方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类