基于数据访问次数的GPGPU的L1 Cache管理方法技术

技术编号:20484539 阅读:24 留言:0更新日期:2019-03-02 18:50
本发明专利技术公开一种基于数据访问次数的GPGPU的L1 Cache管理方法,具体包括:L1 Cache的硬件修改;基于DA计数器值的L1 Cache管理策略;周期地调整统一的默认DA值。本发明专利技术旨在解决GPGPU的L1 Cache数据块摇摆问题,主要方法是L1 Cache中的每个缓存块增加访问次数计数器,并且比较计数器的值与默认设定值的大小来决定缓存块的替换和bypass等操作,目标是将频繁被访问的缓存块保持在缓存中,提升命中率,将不会再次被访问的缓存块bypass,提升缓存空间的利用率,最大限度地解决L1 Cache的数据块摇摆问题。

【技术实现步骤摘要】
基于数据访问次数的GPGPU的L1Cache管理方法所属
本专利技术涉及一种面向GPGPU的L1Cache管理方法,针对L1Cache的数据块摇摆问题,提出基于数据访问次数的解决方案,实现将频繁被访问的缓存块保持在缓存中提升命中率,将不会再次被访问的缓存块bypass提升缓存空间的利用率,最大限度地解决L1Cache的数据块摇摆问题。
技术介绍
相比于传统处理器(CPU),通用图像处理器(GPGPU)更适用于高数据并行度的计算任务,具备更优的计算能效比。基于CUDA和OpenCL编程框架,GPGPU可以对很多领域的任务进行加速,比如时下热门的机器学习应用。GPGPU中包含多个独立的计算核心(SIMTCore),能够同时独立进行计算,具备高并发计算能力。与CPU类似,GPGPU依靠片外DRAM存储计算任务的代码和数据,而GPGPU处理器计算的速度远高于DRAM数据访问的速度,所以GPGPU也需要复杂的存储层次系统来填补处理器与DRAM之间的速度鸿沟。GPGPU的存储层次系统包括寄存器、L1缓存(cache)、共享的L2缓存以及片外的DRAM内存。一般GPGPU内部有多个SIMTCore,同时运行多个线程组(threadwarp)提升线程级并行度。每个SIMTCore包含一个私有的L1缓存,所有的SIMTCore通过内部总线连接一个共享的L2缓存。L2缓存负责缓存数据一致性的控制,并且采用分组(bank)的结构,每个bank通过一私有的内存通道(memorychannel)与片外的DRAM相连。如果一个访问请求的目标数据不在L1Cache中,则该请求归类为缺失请求并发往L2Cache,如果目标数据在L2Cache命中,则L2Cache将数据发给L1Cache;否则,L2Cache产生一个访问缺失请求,并且发往下一级存储器。GPGPU的L1Cache中基本的存储单元是缓存块,每个缓存块可容纳的数据块大小一般是128Byte,每四个缓存块构成一个缓存组(set)。读取的数据块会映射并存储于某特定缓存组的空闲缓存块中,如果对应缓存组没有空闲缓存块,则数据块既可以绕过(bypass)L1Cache直接到达处理核,也可以选定缓存组中的某缓存块,进行数据块替换。当被替换的数据块再次被访问时,就可能导致L1Cache的数据块摇摆(cacheblockthrashing)问题。缓存数据块摇摆发生在数据块取到缓存后,还没等到再次访问就因为缓存空间有限而被其他新到来的缓存块替换,以至于发生再次访问时,缓存块已经不在缓存中,必须经历很长的延时从下一级存储器取到缓存中,影响访问效率和性能。GPGPU中的每个SIMTCore会调度执行多个线程组,所有线程共享同一私有L1Cache,当前线程组在L1Cache中的数据块很容易被下一轮执行的线程组的数据块替换,因此GPGPU的多线程运行环境进一步加剧数据块摇摆问题。一种解决缓存数据块摇摆的方法是加大缓存容量,但L1Cache容量的增大会带来显著负面影响,比如能耗变大,数据访问延时增加,成本上升等问题,因此并不现实。另一方面,GPGPU上不同的应用程序呈现不同的缓存访问模式。部分应用程序将数据块读取到L1Cache后,数据块不会再次被访问,比如典型的流访问模式,就不存在缓存数据块摇摆问题。而部分应用程序读取到L1Cache中的数据块再次被访问率呈现明显的不均衡性:大量读取到L1Cache的数据块截止被替换前,都不会再次被访问,而少量的数据块会被反复地访问。如果频繁被访问的数据块过早地替换出L1Cache,则引起缓存数据块摇摆问题。因此,只要将不再被访问的数据块替换,同时保持少量的多次被访问的数据块在缓存中,就可以有效地避免缓存数据块摇摆问题。
技术实现思路
本专利技术要克服现有技术的上述缺陷,提出一种基于数据访问(DataAccess,DA)次数的L1Cache管理方法。本专利技术的内容和特征就是:L1Cache中的每个缓存块附加一DA计数器,根据DA值大小作出缓存块的替换、bypass等决定,将频繁被访问的数据块保持在缓存贡献命中率,将不会再次被访问的数据块bypass提升缓存空间利用率,从而最大限度地缓解L1Cache的缓存数据块摇摆问题。本专利技术的一种基于数据访问次数的GPGPU的L1Cache管理方法,包含以下的技术步骤:1)L1Cache的硬件修改;L1Cache中增加统计命中次数的命中计数器,发生数据访问请求时,如果数据块在L1Cache时,命中计数器加1;L1Cache中的每个缓存块增加4位的数据访问计数器DA,初始化为统一的默认值,每次数据访问到达缓存块所属的缓存组时,缓存组中的所有缓存块的DA值减1;L1Cache中增加bypass地址记录器,包括访问次数计数器、随机映射函数、数据位存储器与命中次数计数器;2)基于DA计数器值的L1Cache管理策略;数据访问请求的目标数据块不在L1Cache时,则需要访问L2Cache读取数据块;如果L1Cache的目标缓存组中存在空闲或者DA值为零的缓存块,则读取的数据块填充到该缓存块,否则对读取的数据块作bypass处理,将数据块绕过L1Cache,同时将数据块的地址发送到bypass地址记录器处理;3)周期地调整统一的默认DA值;不同的应用程序呈现不同的L1Cache访存模式,需要不同的默认DA值才能最有效地管理L1Cache,因此必须周期性地调整统一的默认DA值,bypass地址记录器根据截止当前的bypass数据块数量及地址信息,决定调整的周期;并且比较L1Cache与bypass地址记录器的命中比率,决定增大、减小还是保持当前的DA值。本专利技术的优点是:方法简单,基于每个缓存块附加的DA计数值,将频繁被访问的数据块保持在缓存提升命中率,将不会再次被访问的数据块bypass提升缓存空间利用率;另一方面,具有硬件代价低的优势。附图说明图1是本专利技术方法的GPGPU存储层次图图2是本专利技术方法的L1Cache缓存块图图3时本专利技术方法的bypass地址记录器图具体实施方式下面结合附图,进一步说明本专利技术方法的技术方案。图1是GPGPU的存储层次图,其中的每个SIMTCore拥有私有的L1Cache,并且通过内部总线连接到L2Cache,L2Cache分割为多个bank,每个bank经由私有的通道与外界的DRAM相连。图2是L1Cache缓存块,每个缓存块附加一4位的DA计数器,用于记录缓存组的访问次数。图3是bypass地址记录器,f(addr)是采用addr作为输入的随机映射函数,其输出指向数据位存储器的某位数据。本专利技术的一种基于数据访问次数的GPGPU的L1Cache管理方法,包含以下的技术步骤:1.L1Cache的硬件修改;增加记录L1Cache命中次数的命中计数器,发生数据访问请求时,如果目标数据块在L1Cache,命中计数器加1;L1Cache中的每个缓存块增加4位数据的DA计数器(图2所示),初始化为统一的默认值,每次有数据访问到达缓存块所属的缓存组时,该缓存组中的所有缓存块的DA值减1。增加bypass地址记录器(bypassaddressrecorder,BAR),包含访问次数计数器、随机映射函数、数据位存储器与命中次数计数器本文档来自技高网
...

【技术保护点】
1.基于数据访问次数的GPGPU的L1 Cache管理方法,包括以下步骤:1)L1 Cache的硬件修改;L1 Cache中增加统计命中次数的命中计数器,发生数据访问请求时,如果数据块在L1 Cache时,命中计数器加1;L1 Cache中的每个缓存块增加4位的数据访问(Data Access,DA)计数器,初始化为统一的默认值,每次数据访问到达缓存块所属的缓存组时,缓存组中的所有缓存块的DA值减1;L1 Cache中增加bypass地址记录器,包括访问次数计数器、随机映射函数、数据位存储器与命中次数计数器;2)基于DA计数器值的L1 Cache管理策略;数据访问请求的目标数据块不在L1 Cache时,则需要访问L2 Cache读取数据块;如果L1 Cache的目标缓存组中存在空闲或者DA值为零的缓存块,则读取的数据块填充到该缓存块,否则对读取的数据块作bypass处理,将数据块绕过L1 Cache,同时将数据块的地址发送到bypass地址记录器处理;3)周期地调整统一的默认DA值;不同的应用程序呈现不同的L1 Cache访存模式,需要不同的默认DA值才能最有效地管理L1 Cache,因此必须周期性地调整统一的默认DA值,bypass地址记录器根据截止当前的bypass数据块数量及地址信息,决定调整的周期;并且比较L1 Cache与bypass地址记录器的命中比率,决定增大、减小还是保持当前的DA值。...

【技术特征摘要】
1.基于数据访问次数的GPGPU的L1Cache管理方法,包括以下步骤:1)L1Cache的硬件修改;L1Cache中增加统计命中次数的命中计数器,发生数据访问请求时,如果数据块在L1Cache时,命中计数器加1;L1Cache中的每个缓存块增加4位的数据访问(DataAccess,DA)计数器,初始化为统一的默认值,每次数据访问到达缓存块所属的缓存组时,缓存组中的所有缓存块的DA值减1;L1Cache中增加bypass地址记录器,包括访问次数计数器、随机映射函数、数据位存储器与命中次数计数器;2)基于DA计数器值的L1Cache管理策略;数据访问请求的目标数据块不在L1Cache时,则...

【专利技术属性】
技术研发人员:章铁飞傅均
申请(专利权)人:浙江工商大学
类型:发明
国别省市:浙江,33

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

1