一种基于路预测的选择性可重构Cache方案
一种基于可重构的路由协议的设计与实现的开题报告

一种基于可重构的路由协议的设计与实现的开题报告一、选题背景在现代通信网络中,路由协议是非常重要的一个组成部分。
路由协议主要负责决定数据包在网络中的传输路径,避免数据包丢失、延迟、重复等问题。
目前主流的路由协议有 OSPF、BGP、RIP 等。
这些路由协议已经被广泛应用在互联网和企业内部网络中,取得了很好的效果。
但是,在一些特殊的应用场景下,这些传统的路由协议存在一些问题:1. 灵活性不足。
传统路由协议通常是预定好的,难以进行扩展和修改。
如需修改需要重新设计协议,这样就极大限制了协议的灵活性和可扩展性。
2. 性能受限。
随着网络规模的增加,传统的路由协议容易出现性能瓶颈。
在大规模网络中,路由器需要维护的路由表和协议信息会变得非常庞大,导致路由器处理速度变慢,延迟增大。
为解决这些问题,研究人员提出了一种基于可重构的路由协议设计。
通过可重构的路由协议,可以在不重构硬件的情况下修改路由协议,提高路由协议的灵活性和可扩展性。
此外,可重构路由器的多核架构和高性能硬件资源也可以提高路由器的运行性能。
二、研究目标本课题旨在研究可重构的路由协议设计,并实现一个基于可重构路由器的路由协议系统。
具体目标包括:1. 研究现有的基于可重构的路由协议设计方案,了解其原理和性能。
2. 分析路由协议的重要特性和性能指标,如路由计算时间、路由表大小、收敛时间等。
3. 设计一种基于可重构的路由协议,并实现在可重构路由器上。
4. 在模拟器上对基于可重构路由器实现的路由协议进行性能测试,并与现有的路由协议进行对比。
5. 验证基于可重构路由器的路由协议的灵活性和可扩展性。
三、研究内容本课题的研究内容主要包括以下方面的工作:1. 研究基于可重构路由器的硬件架构和编程模型,了解可重构路由器的工作原理和编程方法。
2. 研究现有的可重构路由协议设计方案,了解其实现细节和优缺点。
重点研究如何在可重构路由器上实现常见的路由协议,如 OSPF、BGP 等,并分析其性能。
一种低功耗动态可重构cache算法的研究

随着嵌入式微处理器的集成度和速度 的发展 , 性能得 到了
极 大 地 提 升 。然 而 , 随 着 社 会 的进 步 和 发 展 , 能 量 的 消 耗 在 不
优化 的 c a c h e架构 , 它有效 地利用嵌 入式 系统 中 c a c h e的设 计 空 间去 寻找适 合功耗 和性 能最优 化 的 c a c h e容 量大 小 。实 际
上, 随着程序的运行 , c a c h e的最 优 结 构 会 不 断 地 改 变 。 所 以 ,
断地增加 , 特别是集成 电路 芯片 的能量消耗 。因此 , 低 功耗设 计 日渐成为嵌入式微处理器与数字信号处理器 中的主要 目标 。 而C P U运算速度和主存 速度不 匹配 的情况 在逐 渐地扩 大 , 因 此 由高速 缓存 c a c h e来解决 主存与 C P U之 间速度不匹 配的问 题 。C a c h e的能耗在嵌入式系统 中 占了非常大 的 比重… , 因此 低缺 失率 、 低功耗 c a c h e 成 为了研究 的方 向。 程序 的时间和空 间局部性 原理是 当前 c a c h e技术 产 生和 发展的前 提条件。随着低功耗 c a c h e 成 为人们研究 的热点 , 降 低c a c h e 功耗 的技术就层 出不 穷。I n o u e等人 提 出了路预测 c a c h e 算法 。其主要 思想是直 接访 问预测表 中的预 测路 、 预测 命中 , 把数据送 给 C P U, 预测失败 , 则访 问 c a c h e中其他路 的 t a g 和d a t a 。R a v e e n d r a n等人 提 出 的基 于 预测放 置方 法 的路预 测算法 , 通 过增 加最小 预测位 来减少 t a g的 比较 次数 , 增加路
面向流水线设计的可重构算法设计

面向流水线设计的可重构算法设计何乃味【摘要】为了优化在可编程逻辑器件上所设计的功能算法执行速度,提出了一种面向流水线设计的可重构算法.通过对用户预先设计的逻辑功能进行结构分析,采用标准化的流程对用户逻辑功能进行分解,自动形成适合流水线设计的可重构逻辑单元,实现面向流水线设计的可重构设计方案.应用新型的可重构算法,对选定的两组逻辑功能,分别用传统的逻辑设计方法及面向流水线设计的可重构设计方案,进行对比测试.测试结果表明:新型算法能够使逻辑功能整体运行速度,提高42.5%.【期刊名称】《柳州师专学报》【年(卷),期】2014(029)001【总页数】4页(P138-140,143)【关键词】可重构;流水线;逻辑芯片;功能分解;运行速度【作者】何乃味【作者单位】柳州职业技术学院,广西柳州545006【正文语种】中文【中图分类】TN791应用流水线技术是提高可编程逻辑芯片运算算法的一种有效途径,使用流水线设计技术提高可编程逻辑器件运算算法的速度,其原理是以资源换取速度[1-3].而且在实际的逻辑芯片设计和应用过程中,人们一些典型的应用算法比如:AES加密算法、傅立叶变换运算算法、小波变换算法等,都有采用流水线技术进行算法优化的设计.然而在进行流水线设计过程中,必须很好的解决流水线结构的编排,需要将传统的运算算法拆分成符合流水线结构的多个运算单元,解决好流水线运行时数据的关联性,以及流水线断流等问题.目前针对可编程逻辑器件应用流水线技术进行设计的相关文献有不少,比如:蔡启先、蔡洪波、黄晓璐等人以协处理器和LEON2通用处理器作为研究平台,提出了一种基于FPGA的动态可重构系统的设计方案,并对该设计方案进行了实现与验证[4].巩蓓蓓、任爱锋、胡方明等人研究了FPGA基本数据流的下载控制方式,设计了基于遗传算法的FPGA编程配置方案,能够实现FPGA逻辑功能的自动重构,解决了FPGA芯片的自适应、自组织的应用需求[5].谷銮、徐贵力、王友仁等人深入研究了动态可重构的实现方法和技术,详细阐述了系统重构设计的流程,重点分析了PGA动态可重构技术实现过程中的难点和未来发展趋势[6].为了能够在可编程逻辑器件上更好的应用流水线技术,开发和设计运算速度更快、流水线总体性能更优的运算算法,本文研究并设计了面向流水线应用的可重构算法.通过对流水线结构及设计要求进行分析,建立一种具有较强通用性的,能够将多类型的应用算法转换成适应可编程逻辑器件的重构算法[7-8].流水线设计是提高算法运算速度的一种有效途径.然而在进行流水线设计时,由于数据的关联性的问题,会使得流水线往往出现数据断流的现象,因此要设计一个性能相对较优的流水线算法必须确保流水线中的每个计算单元之间,数据不存在反向关联性.即前一个计算单元的数据不依赖于后一个计算单元的输出结果,只有这样才能够确保流水线能够正确顺利的运行[9].然而即便是进行流水线算法设计时,解决了数据相关性的问题.但是要保证流水线能够以较高的效率进行运行,还必须要解决流水线实现过程中相邻计算单元之间的计算延时,尽可能保持一致,才能够使得流水线在满负荷运行时,能够获得较高的计算效率[10].如图1所示,给出了流水线设计过程中相邻计算单元计算延时之间的关系示意图.从图1可以看出,如果相邻计算单元之间的计算延时几乎相等,则流水线在运行过程中,数据在每一个计算单元上所消耗的时间是大体相当的,因此在流水线满负荷运转时,几乎不存在哪一个计算单元会出现等待数据的情况.而在图1中所表示的单元执行时间非均匀分布的情况时,当流水线满负荷运行时,如果数据在一个计算延时相对较长的单元内执行,则该数据消耗较长的时间.而其它计算单元,则早已把数据计算完了,在等待计算延时最长的那个计算单元完成其计算任务.在这种环境下,必然会带来较大的计算延时,从而不利于发挥流水线的高效率计算优势,因此流水线设计时,必须要解决计算单元延时不一致的这种情况[11].针对流水线重构设计过程中存在的问题,在设计流水线算法时,首先按照传统的流水线设计策略,将任务尽可能拆成若干个计算延时相当的计算单元,但事实上每一个计算单元其完成的功能是不一样的,因此并不能保证每一个计算单元所消耗的计算延时能够大体相当[12-13].但计算单元之间的计算延时相关较大时,则此时需要对流水线结构进行优化设计,以解决各计算单元延时不一致的问题.本文通过将计算延时较大的计算单元进行并发设计,来解决流水线中计算延时不一致的问题.假如一个流水线上绝大多数计算单元所消耗的计算延时为时间t,某一个计算单元计算延时较大,其消耗的计算延时为2t,则设计流水线时对计算延时较大的计算单元,设计两个同样的计算单元,当流水线运行是,在两个计算单元之间不断进行切换,从而保证流水线执行时,各计算单元不会出现数据的等待时间. 由于各计算单元之间的时间差值,未必正好是倍数关系,为此本文设计流水线拆分算法时,采用如下策略算法进行实现:若有计算任务被拆分成n个模块实现,每个模块独立执行的延时为ti(1≤ti≤n). 选取计算延时最短的模块,假设其计算延时为tc0,则依次计算每个模块的延时Δti=ti-tc0.若Δti/ti.>α,其中α为计算模块之间的残缺度,高于此值认为两个模块的残缺度很大,需要拆分成并行的方式进行执行.则寻找x,使得:在所有满足条件的x中取值最大.则在流水线中,模块i需要并行部署x,以保证流水线的执行效率.最后根据本文设计的流水线设计和实现过程,本文给出了流水线拆分算法实现流程如图2所示.从图2中可以看出在进行流水线拆分设计时,首先根据任务的规模计算出合适的流水线单元颗粒度,然后对计算任务进行拆分,统计拆分之后每一个计算单元所消耗的大概时延.并根据计算时延的差值关系,构建并发功能的流水线计算单元,最后在每个并发单元之间要设计任务切换的配置表,以确保流水线在运行得,能够按配置表的约束选取合适的并发计算单元,完成流水线的计算任务.为了验证本文设计的流水线重构算法,对FPGA芯片计算性能的提高程序,本文选取了RC4序列密码算法,作为测试对象.测试过程中,分别采用两种策略进行测试,首先统计一段时间内该苾片正常使用时间内,其计算任务所消耗的时间对比.另一种测试方式则是通过构造专门的数据,让重构设计之后的芯片能够满负荷的运行.测试结果如图3和图4所示.图3给出的结果反应的是在一段时间内统计的测试结果,从图3可以看出选取的测试时间为300s的时间,由于在300s时间之内,使用传统的方法设计的FPGA芯片,由于其算法是固定的,每一次执行RC4式运算,处消耗的延时都是相同的.因此使用传统方法设计的RC4算法,其执行延时是很稳定的,每一次执行时间都是36.7ms.而使用流水线重构设计之后的芯片,如果在运行时送给该芯片的数据延时相对较短,则有可能会发挥流水线的计算优势,因此从测试统计时间也看到,使用流水线优化之后的算法,其实现RC4运算的时间并不固定,而是动态变化,其计算时延最低的一次为29.3ms.图4反应的结果是当重构设计之后的芯片,能够满负荷运行时,其完成RC4运算的时间对比结果.从图4中可以看出,采用传统的方法设计的FPGA芯片完成RC4运算所消耗的时间,仍然为36.7ms.而当FPGA芯片满负荷运行时,其消耗的时间为21.1ms,经过计算发现新型的算法能够使RC4运算,最快提高42.6%.由此也表明通过本文设计的面向流水线的可重构设计算法,能够具备提高算法运行速度的较大潜力,尤其是当算法满足流水线满负荷运行条件时,其算法的提升潜力达到最大.通过引入流水线技术,能够在可编程逻辑器件上开发并设计综合运算速度更快的计算算法.然而当用户需要在可编程逻辑器件上实现多种不同运算算法时,如何能够快速的将多种运算算法分别采用流水线技术,在可编程逻辑器件上进行实现是一个难以解决的问题.本文通过面向流水线设计的可重构算法的设计方法,建立了一种将用户逻辑功能快速形成适合流水线设计的可重构逻辑单元,使得用户需要实现的多种逻辑算法,能够以流水线的方式在可编程逻辑器件上快速的得到实现.通过测试结果也表明,本文提出的可重构算法能够比传统的运算算法提高42.5%的速度.【相关文献】[1]周盛雨,孙辉先,等.基于FPGA的动态可重构系统实现[J].电子器件,2007.30(2):304-308.[2]吴慧中,王英林.一种立体空间布局模型及布局算法[J].计算机学报,1994,17(11):835-841.[3]王颖,周学功,游红俊,彭澄廉.支持动态可重构的软/硬件统一多线程编程模型[J].计算机辅助设计与图形学学报,2009,21(6):26-35.[4]蔡启先,蔡洪波,黄晓璐,蔡启仲.基于FPGA的动态可重构体系结构[J].计算机应用,2006,26(7):251-253.[5]巩蓓蓓,任爱锋,胡方明.基于FPGA数据流控制动态可重构的实现[J].电子科技,2011,24(3):53-56.[6]谷銮,徐贵力,王友仁.FPGA动态可重构理论及其研究进展[J].计算机测量与控制,2007,15(11):5-8.[7]刘沙,周学功,王颖,王伶俐.可重构系统在线任务预约重调度算法[J].计算机工程,2011,37(8):271-274.[8]焦铬,李仁发,彭日光,李浪,邹祎.一种动态可重构系统的实时任务调度算法[J].计算机工程与科学,2010,32(12):145-148.[9]李涛,刘培峰,杨愚鲁.动态部分重配置及其FPGA实现[J].计算机工程.2006,32(14):224-226.[10]南希,龚龙庆,田卫,李潇.基于FPGA的动态可重构系统设计与实现[J].现代电子技术,2009,32(6):11-14,18.[11]龚育昌,齐骥,胡楠,王立刚.一种支持动态可重构系统的布局碎片量化方法[J].小型微型计算机系统,2007,28(5):944-947.[12]黄勋章,周学功,彭澄廉.可重构系统中高效的二维任务放置策略[J].计算机工程与设计,2008,29(7):1745-1749.[13]刘彦,李仁发,许新达,徐成.一种异构可重构片上系统的实时任务调度算法[J].计算机研究与发展,2010,47(6):1116-1124.。
面向低功耗的多核处理器Cache设计方法

F A N G J u a n’ ,G U O Me i ,D U We n j u a n ,L E I D i n g
( C o l l e g e o f C o m p u t e r S c i e n c e ,B e j i i n g U n i v e r s i t y f o T e c h n o l o g y ,B e i j i n g 1 0 0 1 2 4 ,C h i n a )
b a s e d o n L 2 c a c h e P a r t i t i o n a l g o r i t h m ( WP P — L 2) .L P HP a n d CR A c l o s e d t h e c o l u mn s t h a t we r e n o t i n u s e d y n a mi c a l l y .
A b s t r a c t :T h i s p a p e r p r o p o s e d a L o w — P o w e r o i r e n t e d c a c h e D e s i g n( L P D) o f L e v e l 2( I 2 )c a c h e f o r m u l t i — c o r e
L P D方案 中, 分别通过低 功耗 的共享 C a c h e混合 划分 算法( L P H P ) 、 可重构 C a c h e算 法( C R A) 和基 于 C a c h e划 分的路
预测 算法( WP P — L 2 ) 来达到 降低 C a c h e 功耗 的 目的, 同时保证 系统的性能 良好 。在 L P H P和 C R A中, 程序运行 时动 态 地 关闭 C a c h e中空闲的 C a c h e列, 节省 了对空 闲列的访 问功耗 。在 WP P . L 2中, 利 用路预 测技术在 C a c h e访 问前给 出
一种面向多核的可重构容错方法

一种面向多核的可重构容错方法张绍林;杨孟飞;刘鸿瑾;姜宏;王若川【期刊名称】《计算机科学》【年(卷),期】2014(041)005【摘要】随着二代导航、载人航天、深空探测等空间应用对星载电子产品的低功耗和抗辐射容错能力提出更高的需求,传统多机冗余设计星载计算机面临着亟需进行设计升级换代.将可重构技术应用到多核片上系统的设计中,提出了一种基于动态可重构的容错体系结构,在硬件层提高系统的容错能力和扩展性对未来空间工程应用具有重要意义.首先介绍了多核片上系统和可重构技术的基本概念,简要分析了国际宇航可重构系统的研究案例.随后提出了一种基于动态可重构的容错体系结构,即通过基于系统降级的重构策略来实现系统级容错.在方案验证环节,采用LE-ON3作为处理单元,对容错模块功能进行了仿真验证.仿真结果表明,容错控制满足预期的设计需求.最后对后续工作做了简要规划,并对可重构容错方法设计进行了总结.【总页数】5页(P59-63)【作者】张绍林;杨孟飞;刘鸿瑾;姜宏;王若川【作者单位】北京控制工程研究所北京100190;北京控制工程研究所北京100190;中国空间技术研究院北京100094;北京控制工程研究所北京100190;北京控制工程研究所北京100190;北京控制工程研究所北京100190【正文语种】中文【中图分类】TP302.8【相关文献】1.一种面向多核处理器I/O系统软错误容错方法 [J], 郭御风;郭诵忻;龚锐2.一种面向多核处理器粗粒度的应用级Cache划分方法 [J], 所光3.面向混联机床的机械系统容错重构规划方法研究 [J], 李登静;范守文;姬鹏升4.一种面向多核DSP芯片的低功耗验证方法 [J], 孙健;时鹏飞;冯春阳;蒙玲;张辉5.一种面向嵌入式多核系统的任务调度方法 [J], 吕鹏伟;刘从新;沈绪榜因版权原因,仅展示原文概要,查看原文内容请购买。
基于价值预测的ICN缓存替换方法

基于价值预测的ICN缓存替换方法
沈皓珂;陈君;韩锐
【期刊名称】《网络新媒体技术》
【年(卷),期】2022(11)1
【摘要】网内缓存是信息中心网络(ICN)的主要特征之一,是减小内容获取时延和提高网络资源利用率的重要环节。
内容流行度越高,下一次请求时间越近,请求的次数越多,该内容价值就越大。
针对海量缓存对象与有限缓存空间之间的矛盾,基于内容的“未来”价值,本文提出了一种基于价值预测的ICN缓存替换方法,结合内容流行度和新近频率值,构建内容价值预测模型,计算价值预测值,将“未来”价值最小的内容替换掉。
仿真结果表明,本文提出的方法与最近最少使用、先进先出、随机替换等缓存替换方法相比,具有更高的缓存命中率,更低的请求响应时延。
【总页数】8页(P35-42)
【作者】沈皓珂;陈君;韩锐
【作者单位】中国科学院声学研究所;中国科学院大学
【正文语种】中文
【中图分类】TP3
【相关文献】
1.基于概率的启发式ICN缓存内容放置方法
2.基于节点热度与缓存替换率的ICN 协作缓存
3.一种基于内容流行度和社团重要度的ICN缓存与替换策略
4.基于期望预测价值的时移代理缓存替换算法
5.基于指令流访存模式预测的缓存替换策略
因版权原因,仅展示原文概要,查看原文内容请购买。
多核处理器片上可重构Cache系统及其机制设计

多核处理器片上可重构Cache系统及其机制设计
谢憬;章裕;王琴;毛志刚
【期刊名称】《微电子学与计算机》
【年(卷),期】2016(33)12
【摘要】针对多核处理器规模化数据访存与并行线程交叉数据使用的特性,提出了一种可重构Cache的设计方案,包含其基本硬件逻辑结构和工作机制;同时提出了一种可在线动态重构Cache结构配置字生成的DCAC配置方法。
实验证明,上述设计方案配合在线配置方法工作,能有效实现多核处理器系统根据不同的应用实时地配置共享Cache的组相联度,使得近处理器内核的Cache系统有效提升了命中率,在硬件开销增加4.07%的情况下,缺失代价平均下降约16.13%,从而达到了多核处理器性能优化的目标。
【总页数】5页(P1-5)
【关键词】多核;可重构;Cache;配置;缺失代价
【作者】谢憬;章裕;王琴;毛志刚
【作者单位】上海交通大学电子信息与电气工程学院
【正文语种】中文
【中图分类】TN4
【相关文献】
1.多核处理器片上Cache的选择性复制策略 [J], 郭惠芳;姜鲲鹏;赵荣彩;姚远
2.片上多核处理器共享Cache划分的公平性研究 [J], 方娟;蒲江;张欣
3.片上多核处理器Cache一致性协议优化研究综述 [J], 胡森森;计卫星;王一拙;陈旭;付文飞;石峰
4.片上多核处理器Cache访问均衡性研究 [J], 王子聪; 陈小文; 郭阳
因版权原因,仅展示原文概要,查看原文内容请购买。
一种低功耗动态可重构cache方案

一种低功耗动态可重构cache方案
赵欢;苏小昆;李仁发
【期刊名称】《计算机应用》
【年(卷),期】2009(029)005
【摘要】嵌入式系统中,处理器功耗是十分受关注的,研究表明嵌入式系统中cache 存储器的功耗占处理器总功耗的30%~60%.为此提出一种低功耗动态可重构的cache方案Tournament cache,该cache方案通过在传统cache结构的基础上增加三个计数器和一个寄存器,在程序运行的过程中,根据计数器统计的结果动态调整cache的相联度,使得相联度在1、2或4路之间变化,以适应不同程序段的需要,从而降低系统的功耗.实验结果表明,此cache方案对比传统的四路组相联的cache能耗节省超过40%,而且性能的降低几乎可以忽略.
【总页数】4页(P1446-1448,1451)
【作者】赵欢;苏小昆;李仁发
【作者单位】湖南大学,计算机与通信学院,长沙,410082;湖南大学,计算机与通信学院,长沙,410082;湖南大学,计算机与通信学院,长沙,410082
【正文语种】中文
【中图分类】TP302
【相关文献】
1.一种低功耗动态可重构cache算法的研究 [J], 任小西;刘清
2.一种低功耗的动态可重构Cache设计 [J], 何勇;肖斌;陈章龙;涂时亮
3.嵌入式系统中低功耗动态可重构Cache的研究 [J], 刘楚;
4.一种改进的记录缓冲低功耗指令cache方案 [J], 马志强;季振洲;胡铭曾
5.用于低功耗的动态可重构cache结构 [J], 陈黎明;邹雪城;雷鑑铭;刘政林
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
彭蔓蔓,彭方湖南大学计算机与通信学院,长沙(410082)E-mail: melaniepf@摘要:在嵌入式系统中,性能和功耗是设计者最关心的两大要素。
路预测是一种基于传统组相联Cache的低功耗优化策略,以一定的性能损失为代价来减少系统功耗,但在预测准确性较低的情况下,不仅无助于功耗的降低,而且会导致性能的退化。
本文在路预测的基础上,提出一种可重构Cache方案,通过动态地开启和关闭路预测功能,并根据路预测表的记录选择性调整Cache相联度,消除路预测机制带来的不利影响,极大地减少预测失效开销,满足高性能低功耗的要求。
关键字:路预测; 可重构Cache;高性能;低功耗1.引言随着超大规模集成电路技术的不断发展,处理器的运算速度与内存容量都在飞速增长。
然而,这种快速发展也扩大了处理器运算速度与访存速度之间的瓶颈。
Cache作为处理器与主存之间的桥梁,能够从主存中移入部分数据,利用所访问数据的空间局部性(Spatial Locality)和时间局部性(Temporal Locality),减少访存时间,提高系统性能。
然而,Cache的存在不仅占据了大量的芯片面积,也带来了较大的能耗。
例如:片内Cache分别占用了Alpha 21264和Strong ARM微处理器面积的30%和60%,它们的功耗分别占整个芯片功耗的16%和43%[1]。
因此,从体系结构上优化Cache设计,能够给系统的性能和功耗带来很大的改善。
传统的组相联Cache在进行标识比较的同时,读取并放大各路数据部分的信号,当标识比较结果确定后,将命中数据送往总线。
这样索引(Index)映射组(Set)所有路(Way)标识和数据,不管是否命中,Cache都将被激活,导致不必要的功耗产生。
为此,Hasegawa等人提出了一种称为分阶段组相联Cache(phased set-associative Cache)[2]的路预测算法,即在第一个周期进行标识比较,在第二个周期读取命中数据,从而避免了不必要的功耗开销,但增加了一个周期的比较时间,对性能造成了一定影响。
Michael D. Powell,等人使用路预测和选择性直接映射Cache相结合的方法,利用局部性原理,在指令Cache中使用路预测算法,而在数据Cache中采用直接映射方法,在不影响性能的前提下减少L1 Cache的能耗[3]。
带有效位预判的路预测Cache(WPD-V)[4]在路预测的基础上排除了对有效位为0的空块的访问。
它在MRU 表中读取预测路的同时,访问相应的有效位。
若有效位为0,说明预测路为空块,直接对剩下各路进行组相联访问;若有效位为1,则按路预测的方式访问。
有效位预判减少了对无效块的预测访问,节省了Cache能耗。
路预测Cache的性能与功耗,很大程度上取决于预测的准确性和预测失败的代价,而其准确性与所访问数据的时间局部性和空间局部性有关。
在预测失效率很高的情况下,路预测Cache比传统组相联Cache要多出接近一个时钟周期的访存时间,导致性能退化。
本文采用的基于路预测的选择性可重构(WPSC:Way-Predict Selective Configurable) Cache方案在此背景下提出,它在映射组中预先指定一路作为访问对象,在进行数据访问时,先采用直接映射2.WPSC Cache方案本文从体系结构的层次提出Cache的优化方案。
2.1节介绍方案的基本思想,2.2节设计Cache模型的组织结构和附加硬件构成,2.3节说明Cache的工作过程。
2.1 WPSC Cache的基本思想一个稳定的系统应该在运行各种应用程序时均表现良好的性能,但事实上,不同程序的特点很不一致,有的程序循环模块较多,具有很好的空间和时间局部性;有的程序分支较多,数据的空间分布不太均匀。
因此需要综合考虑这些情况,设计一种较为均衡的Cache方案。
Cache的功耗主要来自于SRAM访问产生的能耗,传统组相联Cache的功耗和时间公式如下所示:E cache = N tag * E tag + N data * E data (1)T cache = 1 (2)其中,N tag和N data分别为需要访问的标识和数据的路数,E tag和E data分别为访问每一路标识和数据的能耗。
T cache是Cache访问时间,固定为1个时钟周期。
在四路组相联Cache中,公式(1)可写为E cache = 4* E tag + 4* E data = 4*( E tag + E data) (3)在路预测Cache中,采用直接映射的方式访问预测路,在预测失败的情况下,采用组相联的方式访问其它路。
若用phr(predict hit rate)表示预测命中率,则有E cache = (E tag + E data) + (1-phr) * (3E tag + 3 E data) (4)T cache = 1 + (1-phr) * 1 (5)从以上公式可以看出,若phr较低,对比传统Cache,路预测对E cache的降低十分有限;而T cache则增加近一个时钟周期,几乎是原来的2倍。
另外,预测失败的功耗代价为3E tag + 3E data,若能减少这部分功耗,整体功耗则会明显下降。
基于以上情况,本文设计了一种选择性可重构Cache(WPSC)。
它在每一个时间片内,统计预测路的命中次数和总访存次数,若命中次数在总访存次数中超过一定比例,则在下一时间片内采用路预测策略;否则,关闭路预测,采用传统组相联方式。
并且通过统计Cache 命中率,采用有限状态机的方式,动态地调整Cache相联度,这样不仅可以减少采用传统组相联方式时的功耗开销,而且当启用路预测机制时,其预测失败的功耗代价将减少30%到60%。
在开启或关闭Cache路时,为避免统一关闭某一Cache路造成的数据抖动,引入了一种分组选择性策略。
这种策略的思想是在每一个Cache组中,关闭最近最少使用的一路。
由于路预测表中保存的是最近访问的一路,这一路必然不能被关闭,在总路数小于或等于4的情况下,为了简化硬件实现,我们将同一组中预测路的临近路开启或关闭,以减少重构Cache时带来的数据抖动。
2.2 组织结构如图1所示,与传统4路组相联Cache类似,访问地址的索引决定要访问的组,通过标识比较来决定命中的一路数据。
不同的是,优化后的Cache模型增加了几个模块,主要有路预侧器、路预测表、重构状态机、路开关表以及访问控制器。
路预测器用于根据本次Cache访问的结果来决定同一个数据组中下一次预先访问的数据路。
由于许多程序具有较高的访问局部性,因此最近被访问的数据路很可能在下一次被重新访问。
形式化地说,若A为Cache的关联度,i为本次访问的数据路,j为本次访问的数据组,有0≤i≤A-1。
在本次访问之后的最近一次访问组j时,处理器需要的数据很可能位于路i中,这称为MRU(Most Recently Used)算法。
路预测器根据标识比较结果,可分为以下三种情况得到新的预测路:z若本次预测路正确,路预测器将不改变预测路。
z若本次预测路错误,但是同组其它路命中,则将根据标识比较结果,将本次命中的路作为新的预测路。
z若本次预测路错误,且同组其它路均失效(Cache失效),则将新的置换数据路作为新的预测路。
路预测表用于存储各个数据组的预测路,由于Cache相联度为4,因此需要2bit存储预测路。
路预测表的信息由路预测器修改,每次进行访问时,由地址的索引部分使能相应组的预测路,并通过访问控制器解码指定访问路径。
图1 WPSC Cache整体结构图1)Cache访问次数Cache Access Number(CAN):用以记录时间片内Cache的访问次数。
Cache的访问次数用来判断Cache的访问频度,如果在一个时间片内,Cache访问次数较少,则该阶段的统计数据可信度较低,不能作为重构的依据。
2)Cache访问次数阀值Cache Access Bound(CAB):用以设定Cache访问次数的最低限制值,只有访问次数高于该值,统计数据才能作为重构判断的依据。
3)路预测命中次数Prediction Hit Number(PHN):用以记录时间片内Cache的路预测命中次数。
若其超过一定阀值,则在下一时间片内开启或保持开启路预测策略,否则,则关闭或保持关闭路预测策略。
4)路预测命中阀值Prediction Hit Bound(PHB):用以设定采用路预测机制的命中次数最低限制值。
5)Cache命中次数Cache Hit Number(CHN):用以记录Cache的命中次数,若在时间片内其超过最高阀值,则进行Cache路关闭重构;若低于最低阀值,则进行路开启重构。
6)路关闭阀值Way Close Bound(WCB):用以设定进行路关闭重构的Cache命中次数限制值。
7)路开启阀值Way Open Bound(WOB):用以设定进行路开启重构的Cache命中次数限制值。
如图2所示,路预测重构状态机有4种状态,其中S0为起始状态,表示处于路预测开启的正常态;S1表示路预测关闭的正常态;S2表示路关闭重构态;S3表示路开启重构态。
在每个时间片结束后,状态机会根据不同的条件进行状态转换。
条件A:CAN< CAB或CAN≥CAB,且WOB <CHN< WCB。
条件A表明当Cache访问次数没有超过阀值,或者Cache命中次数在路重构阀值之间时,状态不作改变。
条件B:CAN≥CAB,且PHN<PHB。
条件B是当路预测命中次数低于阀值时,关闭路预测功能。
条件C:CAN≥CAB,且PHN≥PHB。
条件C是当路预测命中次数大于或等于阀值时,开启路预测功能。
条件D:CAN≥CAB,且CHN≤WOB。
条件D是当Cache命中次数低于路开启阀值时,进行路开启重构。
条件E:CAN≥CAB,且WCB≤CHN。
条件D是当Cache命中次数高于路关闭阀值时,进行路关闭重构。
图2 路预测重构状态机状态变化示意图图3 WPSC Cache工作过程示意图路开关表用于记录分组选择性策略下路的开关情况,其记录数与Cache 的组数(set)相同,每一条记录有4bit ,用以记录对应组路的开启和关闭情况。
’0’表示路开启,’1’表示路关闭。
例如,当路开关表记录为”1110”时,表明Cache 有3路开启,1路关闭,即该组第4路关闭,其他路开启。
访问控制器用于控制对Cache 各路的访问。
通过路开关表的输入,指定可访问路径。
路预测重构状态机的输入,可以判定是否采用路预测策略。
在路预测的机制下,通过路预测表的输入指定相关预测路。
2.3 工作过程Cache 的工作流程图如图3所示,首先初始化各个参数(CAB 、PHB 、WCB 、WOB),以及清空各个计数器(CAN 、PHN 、CHN),接着进入访存处理循环。