面向Cell多核处理器不规则引用的自适应行大小缓存方案
1. 背景与动机
在缓存设计中,传统的4路组相联缓存存在一定局限性,例如ESC的自适应策略仅适用于并行循环,对循环迭代间的变化不敏感,且存储开销大。为此,提出一种自适应缓存行大小策略及相应的自适应行大小缓存(ALSC)设计,以根据不规则引用的特性自适应调整缓存行大小。
2. 自适应软件缓存行算法
该算法基于先前工作,包含四个步骤:
1. 初始化缓存行 :为简化,引入128B和256B两种缓存行。
2. 划分地址 :应用于每个迭代范围,采用动态地址收集方案,遇到首个组冲突时停止收集。
- 示例代码如下:
for(k=0; k<ub; k++)
sum += a[k]*p[colidx[k]];
/*step1: initialization*/
lb_tmp=0;
Longln=256; //size of long line
Shortln=128; //size of short line
do{
/*step2: the addresses dividing process*/
ub_tmp = collect_dynamic(lb_tmp, ub_tmp);
for(k=lb_tmp; k<ub_tmp; k++)
ea[k] = &p[colidx[k]];
/*align the addresses collected to a 256B boundary*/
Cell多核处理器不规则引用自适应缓存方案
超级会员免费看
订阅专栏 解锁全文
24

被折叠的 条评论
为什么被折叠?



