没有合适的资源?快使用搜索试试~ 我知道了~
论文研究-基于循环体访问过滤的低功耗分支目标缓冲器.pdf
需积分: 15 1 下载量 82 浏览量
2019-07-22
18:26:10
上传
评论
收藏 495KB PDF 举报
温馨提示
试读
4页
分支目标缓存(BTB)是高端嵌入式CPU的主要耗能部件之一。针对BTB访问中引入的冗余功耗问题,提出了一种循环体访问过滤机制消除循环体指令流中顺序指令对BTB的无效访问。进一步提出了一种分支跟踪方法补偿循环过滤机制对循环体中非循环类分支指令的错误过滤造成的性能损失,节省了循环体指令流中顺序指令访问BTB的大量冗余功耗。基于Powerstone基准程序的仿真实验表明,在128表项BTB配置下,二级循环过滤器和4表项分支踪迹表可以减少约71.9%的BTB功耗,而平均每条指令周期数(CPI)退化仅为0.66%。
资源详情
资源评论
资源推荐
收稿日期: 2011唱08唱10; 修回日期: 2011唱09唱20
作者简介:高金加(1986唱),男,浙江嘉兴人,硕士研究生,主要研究方向为计算机体系结构、超大规模集成电路设 计 ( gaojj@ vlsi.zju.edu.cn) ;
孟建熠(1982唱),男,博士,主要研究方向为高性能低功耗嵌入式 CPU 设计、超大规模集成电路 设计;陈志坚 (1984唱) ,男,博士,主 要 研究方向为 高
性能低功耗嵌入式 CPU 设计、超大规模集成电路设计.
基 于 循 环 体 访 问 过 滤 的 低 功 耗 分 支 目 标 缓 冲 器
高金加, 孟建熠, 陈志坚
(浙江大学 超大规模集成电路设计研究所, 杭州 310027)
摘 要: 分支目标缓存(BTB)是高端嵌入式 CPU 的主要耗能部件之一。 针对 BTB 访问中引入的冗余功耗问题,
提出了一种循环体访问过滤机制消除循环体指令流中顺序指令对 BTB 的无效访问。 进一步提出了一种分支跟踪
方法补偿循环过滤机制对循环体中非循环类分支指令的错误过滤造成的性能损失,节省了循环体指令流中顺序指
令访问 BTB 的大量冗余功耗。 基于 Powerstone 基准程序的仿真实验表明,在 128 表项 BTB 配置下,二级循环过滤
器和 4 表项分支踪迹表可以减少约 71.9%的 BTB 功耗,而平均每条指令周期数(CPI)退化仅为 0.66%。
关键词: 分支目标缓存; 循环过滤; 分支踪迹; 功耗节省; 性能补偿
中图分类号: TP393畅04 文献标志码: A 文章编号: 1001唱3695(2012)03唱0998唱04
doi:10.3969 /j.issn.1001唱3695.2012.03.054
Low power branch target buffer based on loop access filtering
GAO Jin唱jia, MENG Jian唱yi, CHEN Zhi唱jian
( Institute of VLSI Design, Zhejiang University, Hangzhou 310027, China)
Abstract: Branch target buffer (BTB) is one of the most power唱hungry components in high唱performance embedded CPUs.
This paper proposed a loop access filtering mechanism to eliminate the redundant BTB operations for sequential instructions in
loops.Furthermore, it proposed a branch tracing method to compensate the performance penalty due to the over唱filtering of the
loop filter for the not唱loop branch instructions.It could reduce remarkable BTB power consumption by removing sequential in唱
structions accessing the BTB.Simulation on Powerstone benchmark demonstrates that under the configuration of 128唱entry
BTB, two唱level loop filter and 4唱entry branch trace table can achieve approximately 71.9% power reduction while only bring
0.66% cycle loss per instruction(CPI) on average.
Key words: branch target buffer; loop filtering; branch tracing; power reduction; performance compensation
0 引言
深流水线技术是高端嵌入式 CPU 的主要发展趋势,而以
分支为代表的控制相关性问题对性能的负面影响随着流水线
深度的增加而不断增大。 据统计,当流水线深度增加至 7 ~8
级时,处理器平均吞吐率的下降幅度超过 30%
[1]
。 降低控制
相关性对流水线造成的影响已成为嵌入式 CPU 的重要研究
内容。
目前,嵌入式处理器主要通过分支预测技术来解决控制相
关性。 分支目标缓存(BTB)通过在流水线前级提前进行分支
目标地址预测,实现分支指令的快速处理与目标指令的预取,
可有效减少程序流分支延时。 由于 BTB 需要缓存分支指令地
址与分支目标地址,硬件开销与访问功耗都较大。 以 Pentium
Pro 为例,512 表项的 BTB 功耗占了整个处理器功耗的 5%
[2]
。
在传统 BTB 设计中,BTB 与指令高速缓存(cache) 的访问
通常是并行的,因此 BTB 访问阶段尚不能获得指令的解码信
息。 为了不丢失指令流中随时可能出现的分支指令的目标地
址,取指单元每个取指周期都需要对 BTB 进行访问。 但实际
统计表明,分支指令仅占指令总数的 12%
[3]
,意味着约 88%的
BTB 访问功耗是冗余的。
当前 BTB 低功耗相关研究主要包括两方面:a) 降低每次
BTB 访问的动态功耗;b)减少 BTB 的冗余访问次数。 Wang 等
人
[4]
提出了一种 BTB 访问过滤方法( BAF),该方法增加了一
个 Filter BTB(FB),仅当分支预测跳转且 FB 缺失时,才会访问
主 BTB。 该方法中 FB 会引入较大的额外硬件开销,且 FB 缺
失会导 致 BTB 访 问 延 时 增 加。 Petrov 等 人
[5]
提 出 了 一 种
ACBTB(application customizable branch target buffer) 的软/硬件
协同优化方法,通过软件 profiling 获取程序的精确控制流信
息,从而控制 BTB 只在分支指令取指时访问。 ACBTB 使用静
态编译技 术, 不 适 用 于 已 完 成 编 译 链 接 的 可 执 行 程 序, 且
ACBTB 需要一个可编程的硬件架构,增加了设计复杂度和硬
件成本。 Chang
[6]
提出了一种 Lazy BTB 的方法,将若干基本块
折合成一个 taken trace,仅在 taken trace 末尾访问 BTB;喻明艳
等人
[7]
利用程序流中分支指令间距固定的特性提出了一种基
于跳转访问控制的 HA唱BTB(hop access BTB)。 这两种方法均
需在 BTB 表项中增加额外的域记录分支间距,硬件开销较大,
且消耗额外功耗。 陈志坚
[8]
提出了一种指令类型预测与分支
方向预测相结合的 BTB 访问过滤方案,只有当当前取指指令
是一条分支指令且预测跳转时,才允许访问 BTB。 该方案的缺
点是指令 Cache 需增加额外域存储分支信息,同时跨 Cache
块
第 29 卷第 3 期
2012 年 3 月
计 算 机 应 用 研 究
Application Research of Computers
Vol.29 No.3
Mar.2012
weixin_39840387
- 粉丝: 784
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0