结合指令预取和缓存划分的多核缓存WCEC优化
发布时间:2021-01-03 00:41
对于能量供应有限制的硬实时多核系统,最差情况下的能量消耗WCEC(Worst-Case Energy Consumption)是一个非常关键的问题。随着芯片工艺的发展,顺序指令预取技术可以减少缓存WCEC。为了提高指令预取的最差情况下的节能效率,提出结合指令预取和共享缓存划分的硬实时多核系统缓存WCEC优化方法。该方法通过线性规划方程ILP(Integer-Linear Programing)为每个核分配L2缓存划分因子和调整每个硬实时子任务的指令预取度,在保证硬实时系统满足时间截止期的情况下,最小化其缓存WCEC。对DEBIE系统进行实例分析,实验结果表明优化方法是有效的,在保证系统满足时间截止期的情况下,优化后的缓存WCEC比没有指令预取优化的缓存WCET平均减少了22.5%。
【文章来源】:计算机工程与应用. 2020年01期 北大核心
【文章页数】:7 页
【部分图文】:
图1 支持指令预取器的嵌入式多核架构
如图1是一种支持指令预取的嵌入式多核模型。有NC个同构的处理器核。每个核有私有的L1指令/数据缓存,所有的核共享L2联合缓存,共享L2缓存有W路(way),通过路缓存划分技术[13],它被分成了NC部分,即P={p1,p2,…,pNC},,L2缓存划分因子pi(i=1,2,…,NC)路被分给了运行硬实时任务的核Ci(i=1,2,…,NC)。缓存的替换策略是LRU(Least Recently Used)。L1和L2缓存通过硬实时总线连接。如图2是一个基于路划分的例子(4核,1组,8路组关联),L2缓存通过路的粒度进行划分,每个处理器核被分配了一些路,并且此处理器只允许访问分给它的那些路。顺序指令预取器采用支持Prefetch-on-Miss预取策略的Next-N-Line指令预取。如果处理器需要处理的当前指令i被映射到L1指令缓存行p在L1指令缓存上没有命中,那么L1指令缓存预取器I-prefetcher就会发出预取L1指令缓存行p+1,p+2,…,p+N的操作请求。如果需要预取的指令行已经在L1指令缓存,预取请求被丢弃,否则预取请求进入一个FIFO(First In First Out)队列,随后请求会被发送到L2缓存。为了支持指令预取优化机制,采用文献[15]的方法,利用编译器在任务之间留下程序预取度信息指示,在程序运行的时候,预取硬件检测到这些指示的预取度,然后用检测到的预取度来预取指令。
对文献[19]中的硬实时M?lardalen wcet benchmarks,如图3是不同预取度下支持指令预取的缓存WCEC,结果被不支持指令预取(预取度N是0)的结果归一化了。这里假设有4个同构的处理器核,32 nm工艺,芯片的频率是1.0 GHz,5阶段流水,顺序执行,分支预测是完美的(perfect),L1指令/数据缓存大小是256 Byte,缓存行大小是16 Byte,直接映射。L2缓存大小是1 KB,缓存行大小是32 Byte,2路组关联。从图可以看出顺序指令预取在不同的预取度下获得的能量效率不同,cnt最大,预取度是4时,最差情况下的能量减少43.7%,bsort100最差,在预取度是4时,能量反而增加了43.9%。这是因为由公式(4)可知,指令预取的能量获益是减少的缓存静态能耗和增加的预取器与缓存动态能耗中和的结果,每个程序的特性不同,预取效率不同,所以WCEC呈现的结果是非线性的。
【参考文献】:
期刊论文
[1]支持指令预取的多核缓存WCET分析方法[J]. 安立奎,韩丽艳. 计算机工程. 2018(10)
[2]空间碎片探测软件的并行化及WCRT分析[J]. 康少华,古志民,付引霞,安立奎. 计算机应用研究. 2015(11)
本文编号:2953966
【文章来源】:计算机工程与应用. 2020年01期 北大核心
【文章页数】:7 页
【部分图文】:
图1 支持指令预取器的嵌入式多核架构
如图1是一种支持指令预取的嵌入式多核模型。有NC个同构的处理器核。每个核有私有的L1指令/数据缓存,所有的核共享L2联合缓存,共享L2缓存有W路(way),通过路缓存划分技术[13],它被分成了NC部分,即P={p1,p2,…,pNC},,L2缓存划分因子pi(i=1,2,…,NC)路被分给了运行硬实时任务的核Ci(i=1,2,…,NC)。缓存的替换策略是LRU(Least Recently Used)。L1和L2缓存通过硬实时总线连接。如图2是一个基于路划分的例子(4核,1组,8路组关联),L2缓存通过路的粒度进行划分,每个处理器核被分配了一些路,并且此处理器只允许访问分给它的那些路。顺序指令预取器采用支持Prefetch-on-Miss预取策略的Next-N-Line指令预取。如果处理器需要处理的当前指令i被映射到L1指令缓存行p在L1指令缓存上没有命中,那么L1指令缓存预取器I-prefetcher就会发出预取L1指令缓存行p+1,p+2,…,p+N的操作请求。如果需要预取的指令行已经在L1指令缓存,预取请求被丢弃,否则预取请求进入一个FIFO(First In First Out)队列,随后请求会被发送到L2缓存。为了支持指令预取优化机制,采用文献[15]的方法,利用编译器在任务之间留下程序预取度信息指示,在程序运行的时候,预取硬件检测到这些指示的预取度,然后用检测到的预取度来预取指令。
对文献[19]中的硬实时M?lardalen wcet benchmarks,如图3是不同预取度下支持指令预取的缓存WCEC,结果被不支持指令预取(预取度N是0)的结果归一化了。这里假设有4个同构的处理器核,32 nm工艺,芯片的频率是1.0 GHz,5阶段流水,顺序执行,分支预测是完美的(perfect),L1指令/数据缓存大小是256 Byte,缓存行大小是16 Byte,直接映射。L2缓存大小是1 KB,缓存行大小是32 Byte,2路组关联。从图可以看出顺序指令预取在不同的预取度下获得的能量效率不同,cnt最大,预取度是4时,最差情况下的能量减少43.7%,bsort100最差,在预取度是4时,能量反而增加了43.9%。这是因为由公式(4)可知,指令预取的能量获益是减少的缓存静态能耗和增加的预取器与缓存动态能耗中和的结果,每个程序的特性不同,预取效率不同,所以WCEC呈现的结果是非线性的。
【参考文献】:
期刊论文
[1]支持指令预取的多核缓存WCET分析方法[J]. 安立奎,韩丽艳. 计算机工程. 2018(10)
[2]空间碎片探测软件的并行化及WCRT分析[J]. 康少华,古志民,付引霞,安立奎. 计算机应用研究. 2015(11)
本文编号:2953966
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2953966.html