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

技术编号:30155586 阅读:15 留言:0更新日期:2021-09-25 15:06
本发明专利技术公开了一种GPU缓存子系统互联的数字电路设计方法,包括划分GPU的设备内存地址;设置区域内独立的交叉通路,该交叉通路连接该区域的包含L1缓存片的计算核心作为请求发起方,该区域的L2缓存片作为请求接收方;设置区域内L2缓存片的缓存方式;连接区域内L2缓存片与设备内存及其内存控制器;设置区域内的原始拥有者缓存,负责其区域内设备内存地址的初次读取和最终写回;将本区域的每个L2缓存片和另一半区域的一个L2缓存片组成镜像L2缓存片组。本发明专利技术可节省芯片走线面积,缩短平均访问延时,提高运算核心访问缓存数据的效率,支持在硬件层面完成不同缓存层级间的数据共享和同步的处理。步的处理。步的处理。

【技术实现步骤摘要】
一种GPU缓存子系统互联的数字电路设计方法


[0001]本专利技术属于数字电路
,具体涉及一种GPU缓存子系统互联的数字电路设计方法。

技术介绍

[0002]图1是一个GPU常规片内缓存子系统的互联结构。每一组运算核心共享一个独立的私有缓存L1,所有的运算核心再共享一个容量较大的二级缓存L2缓存片。L2缓存片为了能够同时提供所有的运算核心足够的访问带宽,L2缓存片一般用分布式缓存的方式来组织,即根据访问的地址所属的空间,将L2缓存片分成若干L2缓存片,每个L2缓存片都能提供一份访问带宽,所有的运算核心和所有的L2缓存片以交叉总线相互连接。一个常规的4X4的交叉总线互联如图2所示。该常规方法通常再配和访存请求地址哈希等功能来达到交叉通路根据地址路由各个L2缓存片片时,访问均衡的目的,以充分利用所有L2缓存片片带宽。
[0003]随着GPU片内规模的不断扩大,使用上述分布式缓存的方式组织GPU缓存访问,主要面临以下几个问题:
[0004]1.越多的运算核心,访存总带宽需求更大,也需要提供更大的L2缓存片访问总带宽。这要求将L2缓存片分成更多的L2缓存片,实现更多路的交叉总线通路以满足需要。交叉通路走线的面积可能成为瓶颈。
[0005]2.更多的运算核心和更多的L2缓存片使得交叉通路的最长走线越来越长,当单个运算核心的任务希望使用所有地址空间即访存请求关联所有的L2缓存片,则一次数据块的搬移最终会取决于该运算核心到某个最长走线路径L2缓存片的延时。
[0006]所以在GPU缓存子系统及其互联的数字设计中,需解决上述问题,此外,早期GPU既不频繁同步也不共享数据,而是通过把线程信息和缓存结构暴露给程序员,让程序员在没有硬件一致性的情况下,通过软件实现同步和数据共享。
[0007]现在,GPGPU越来越流行。技术人员开始用GPU架构做通用的任务(general purposeworkloads),这对GPU实现硬件缓存一致性有了要求。LRCC(LAZY released consistency

directcoherence)是一种适合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所示。

技术实现思路

[0008]本专利技术所要解决的技术问题是针对上述现有技术的不足,提供一种GPU缓存子系统互联的数字电路设计方法。
[0009]为实现上述技术目的,本专利技术采取的技术方案为:
[0010]一种GPU缓存子系统互联的数字电路设计方法,包括:
[0011]步骤1:划分GPU的设备内存地址,设置计算核心、L1缓存片、L2缓存片、设备内存及其内存控制器;
[0012]步骤2:设置区域内独立的交叉通路,该交叉通路连接该区域的包含L1缓存片的计算核心作为请求发起方,该区域的L2缓存片作为请求接收方;
[0013]步骤3:设置区域内L2缓存片的缓存方式;
[0014]步骤4:连接区域内L2缓存片与设备内存及其内存控制器;
[0015]步骤5:设置区域内的原始拥有者缓存,负责其区域内设备内存地址的初次读取和最终写回;
[0016]步骤6:将本区域的每个L2缓存片和另一半区域的一个L2缓存片组成镜像L2缓存片组。
[0017]为优化上述技术方案,采取的具体措施还包括:
[0018]上述的步骤1具体为:
[0019]将GPU的设备内存地址分为两个区域,每个区域内设有:GPU一半计算核心和其私有的L1缓存片,共享的、占L2缓存片总容量一半的L2缓存片,占总容量一半的设备内存及其内存控制器。
[0020]上述的步骤2具体为:
[0021]设置区域内独立的交叉通路,该交叉通路连接该区域的包含L1缓存片的计算核心作为请求发起方,该区域的L2缓存片作为请求接收方。
[0022]上述的步骤3具体为:
[0023]设置区域内L2缓存片的缓存方式:
[0024]每个区域的L2缓存片,采用常规的分布式缓存方式,根据系统的实际带宽要求分成若干 L2缓存片与交叉通路相连接。
[0025]上述的步骤4具体为:
[0026]连接L2缓存片与设备内存及其内存控制器,以几个L2缓存片与一条设备内存通路存在对应关系,用单独连线表示。
[0027]上述的步骤5中,直接与设备内存相连的L2片定义为对应设备内存通路地址的原始拥有者缓存。
[0028]上述的步骤1中,镜像L2缓存片组内的L2缓存片之间用一个单独通路相连。
[0029]所设计GPU缓存子系统互联的数字电路的路由逻辑是为:
[0030]包含L1缓存片的计算核心访问L2缓存片请求时,首先通过其区域的交叉通路进行路由,交叉通路根据请求地址路由到其区域的某个L2缓存片;
[0031]路由到L2缓存片的地址有一半本身属于该作为原始拥有者的L2缓存片地址区域;
[0032]一个L2缓存片可能收到来自交叉总线或者镜像L2缓存片的访问请求,对于缓存未命中的请求根据地址判断是否属于本区域,属于本区域的请求,通过L2缓存片与设备内存的通路,去对应的设备内存通路读取,非属于本区域的请求通过镜像L2缓存片组直连通路去其镜像 L2缓存片的L2缓存片读取。
[0033]通过改进LRCC协议,将其扩展到L2缓存片层级并定义其逻辑行为来实现GPU L2缓存片层级的基于LRCC的缓存一致性。
[0034]本专利技术具有以下有益效果:
[0035]1.本专利技术连接方式对比常规GPU的L2缓存片连接方式,M表示GPU请求发起者的总数量,N表示GPU L2缓存片的总数量,常规方法达到相同的连接效果(能够访问所有的 L2缓存片)需要的连接通路一共是M*N组,本专利技术方法的连接通路一共是M*(N/2)+本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种GPU缓存子系统互联的数字电路设计方法,其特征在于,包括:步骤1:划分GPU的设备内存地址,设置计算核心、L1缓存片、L2缓存片、设备内存及其内存控制器;步骤2:设置区域内独立的交叉通路,该交叉通路连接该区域的包含L1缓存片的计算核心作为请求发起方,该区域的L2缓存片作为请求接收方;步骤3:设置区域内L2缓存片的缓存方式;步骤4:连接区域内L2缓存片与设备内存及其内存控制器;步骤5:设置区域内的原始拥有者缓存,负责其区域内设备内存地址的初次读取和最终写回;步骤6:将本区域的每个L2缓存片和另一半区域的一个L2缓存片组成镜像L2缓存片组。2.根据权利要求1所述的一种GPU缓存子系统互联的数字电路设计方法,其特征在于,所述步骤1具体为:将GPU的设备内存地址分为两个区域,每个区域内设有:GPU一半计算核心和其私有的L1缓存片,共享的、占L2缓存片总容量一半的L2缓存片,占总容量一半的设备内存及其内存控制器。3.根据权利要求2所述的一种GPU缓存子系统互联的数字电路设计方法,其特征在于,所述步骤2具体为:设置区域内独立的交叉通路,该交叉通路连接该区域的包含L1缓存片的计算核心作为请求发起方,该区域的L2缓存片作为请求接收方。4.根据权利要求3所述的一种GPU缓存子系统互联的数字电路设计方法,其特征在于,所述步骤3具体为:设置区域内L2缓存片的缓存方式:每个区域的L2缓存片,采用常规的分布式缓存方式,根据系统的实际带宽要求分成若干L2缓存片与交叉通路相连接。5.根据权利要求4所述的一种GPU缓存子系统互联的数...

【专利技术属性】
技术研发人员:王俊
申请(专利权)人:上海天数智芯半导体有限公司
类型:发明
国别省市:

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

1