(计算机科学与技术专业论文)基于scratchpad+memory的低功耗技术研究.pdf_第1页
(计算机科学与技术专业论文)基于scratchpad+memory的低功耗技术研究.pdf_第2页
(计算机科学与技术专业论文)基于scratchpad+memory的低功耗技术研究.pdf_第3页
(计算机科学与技术专业论文)基于scratchpad+memory的低功耗技术研究.pdf_第4页
(计算机科学与技术专业论文)基于scratchpad+memory的低功耗技术研究.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

(计算机科学与技术专业论文)基于scratchpad+memory的低功耗技术研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 随着半导体制造工艺和大规模集成电路设计能力的发展,嵌入式 设备体积越来越小,功能却越来越强大,由此导致系统能耗问题日益 突出。研究表明,存储子系统的能耗是整个片上系统能耗的重要来源, 降低存储子系统的能耗可以有效降低整个片上系统的能耗。作为一个 片上s r a m ,s c r a t c h p a dm e m o r y ( s p m ) 因其体积小、功耗低、访问 快速、有实时性保证及片内外统一编址等优势有逐渐代替c a c h e 的趋 势。本文围绕这一主题,重点研究了如何利用s p m 进行嵌入式系统 能耗优化,降低因存储访问带来的能耗,提出了能降低存储子系统功 耗的编译期s p m 动态管理策略,并讨论了s p m 布局优化对系统功耗 的影响。 针对现有s p m 动态管理策略仅仅单独考虑程序指令或数据变量 作为置入s p m 的候选对象这一情况,提出了一种基于时间戳的s p m 动态管理算法。通过分析应用程序的动态调用情况,建立基于程序调 用关系和时间戳的扩展控制流图,综合考虑全局变量、堆栈变量、数 据、程序代码对系统能耗的影响,在每个程序点选择合适的程序元素 置入s p m 以降低存储子系统的能耗。针对现有s p m 低功耗管理策略 研究重点在于如何最大化地重复访问s p m 中的内容,而未考虑s p m 中不同的地址访问序列对功耗的影响,提出了一种基于电路活跃度的 s p m 布局优化策略。该优化策略在基本s p m 管理策略的基础上,通 过重新组织指令与数据在s p m 中的布局,降低访问s p m 中这些存储 对象时地址线上的电路活跃度,从而降低功耗。 仿真实验结果表明,同已有的s p m 静态管理策略相比,在s p m 容量相同且有限的情况下,采用基于时间戳的s p m 动态管理策略, 同一应用程序所产生功耗最多可减少3 1 3 。与未考虑布局优化的基 本策略相比,基于电路活跃度的s p m 布局优化策略可平均减少功耗 1 5 以上。 关键词:时间戳,电路活跃度,s p m 分配,动态功耗,布局优化 a b s t r a c t w i t ht h ea d v a n c e m e n to fs e m i c o n d u c t o rm a n u f a c t u r i n gp r o c e s sa n d i n t e g r a t e dc i r c u i td e s i g nc a p a b i l i t y , e m b e d d e dd e v i c e sb e c o m es m a l l e r b u tm o r ep o w e r f u l ,w h i c hl e dt oe n e r g yc o n s u m p t i o nh a v eb e c o m e i n c r e a s i n g l yp r o m i n e n t a c c o r d i n g t of o r m e r r e s e a r c h e s ,s t o r a g e s u b s y s t e mi sp l a ya ni m p o r t a n tr o l ei ns y s t e m - o n c h i p se n e r g yc o n s u m e s t h u s ,r e d u c i n ge n e r g yc o n s u m p t i o ni nm e m o r ys u b s y s t e m sb e c o m e so n e o ft h em o s te f f i c i e n tw a y st od e c r e a s et h es y s t e me n e r g yc o n s u m p t i o n s c r a t c h p a dm e m o r yi saf a s t d i r e c t l ya d d r e s s e dc o m p i l e r - m a n a g e d s r a mm e m o r yt h a tr e p l a c e sc a c h e ,i ti sm o t i v a t e db yi t sb e t t e rr e a l - t i m e g u a r a n t e e sv sc a c h ea n db yi t ss i g n i f i c a n t l yl o w e ro v e r h e a d si n a c c e s s t i m e ,e n e r g yc o n s u m p t i o n ,a r e aa n do v e r a l lr u n t i m e t h i st h e s i sc o n c e r n sh o wt ou s et h es p mt o o p t i m i z ee n e r g y c o n s u m p t i o no fe m b e d d e ds y s t e m s ,l o w e r t h ee n e r g yc o n s u m p t i o nc a u s e d b ym e m o r ya c c e s s ,ac o m p i l e r - d i r e c t e ds p md y n a m i cm a n a g e m e n t s t r a t e g yw h i c hc a nr e d u c et h ep o w e rc o n s u m p t i o no fs t o r a g es u b s y s t e m i s p r o p o s e d ,a n dt h el a y o u to p t i m i z a t i o no fs p mi m p a c to nt h es y s t e m p o w e rc o n s u m p t i o ni sd i s c u s s e d b u te x i s t i n gs p md y n a m i cm a n a g e m e n t s t r a t e g i e so n l yc o n s i d e ri s o l a t i o np r o g r a m i n s t r u c t i o n so rd a t av a r i a b l e sa s c a n d i d a t e sw h i c hw i l lb es t o r e di n t os p m t ot h i sq u e s t i o n ,as p m d y n a m i cm a n a g e m e n ta l g o r i t h mb a s e do nt i m e s t a m ph a sb e e np r o p o s e d b ya n a l y z i n gt h ea p p l i c a t i o n sd y n a m i ci n v o c a t i o ns i t u a t i o n ,e s t a b l i s h i n g c a l l r e l a t i o n s h i p b a s e da n dt i m e s t a m p b a s e de x t e n d e dc o n t r o lf l o wg r a p h , g e n e r a l l yc o n s i d e r i n gt h ee n e r g yc o n s u m p t i o no fa p p l i c a t i o np r o g r a m g l o b a lv a r i a b l e s ,d a t a ,c o d e ,a n ds t a c ko nt h es y s t e m ,s e l e c t i n gs u i t a b l e p r o g r a me l e m e n t sa n dt h e nm o v e t os p mf r o ms r a mi no r d e rt or e d u c e t h e e n e r g yc o n s u m p t i o no ft h es t o r a g es u b s y s t e m m o s te x i s t i n g r e s e a r c h e sf o c u so nh o wt om a x i m i z et h eu s eo fd a t ai ns p mw i t h o u t t a k i n gi n t o a c c o u n tt h e i m p a c to np o w e rc o n s u m p t i o nw h e na c c e s s d i f f e r e n ts p ma d d r e s s e ss e q u e n c e t ot h i sq u e s t i o n ,as p mo p t i o n a ll a y o u ts t r a t e g yb a s e do nc i r c u i ta c t i v i t yh a sb e e np r o p o s e dw h i c hr e o r g a n i z e t h el a y o u to fi n s t r u c t i o n sa n dd a t ai ns p m ,t or e d u c et h ec i r c u i ta c t i v i t y a n d p o w e rc o n s u m p t i o nw h e na c c e s sm e m o 巧o b j e c t si ns p m e x p e r i m e n t ss i m u l a t i o nr e s u l t ss h o wt h a tw h e nc o m p a r e dt oe x i s t i n g s p ms t a t i cm a n a g e m e n ts t r a t e g y , u n d e rt h es i t u a t i o no fs a m ea n dl i m i t e d c a p a c i t y , w i t ht h et i m e s t a m p b a s e ds p md y n a m i cm a n a g e m e n t s t r a t e g i e s , t h ee n e r g yr e d u c t i o n sg e n e r a t e db yt h es a m ea p p l i c a t i o nc a nu pt o31 3 a n dw h e nc o m p a r e dt ob a s i cs t r a t e g yw i t h o u tt h ec o n s i d e r a t i o no fc i r c u i t a c t i v i t y , u s i n gt h eo p t i o n a ll a y o u ts t r a t e g yc a nr e d u c ee n e r g yb yu p t o 18 7 o na v e r a g ef o ro u rb e n c h m a r k s k e yw o r d s :t i m e s t a m p ,c i r c u i ta c t i v i t y , s p ma l l o c a t i o n ,d y n a m i c p o w e r , o v e r l a yo p t i m i z a t i o n i i i 硕士学位论文第一章绪论 1 1 课题研究的背景 第一章绪论 嵌入式系统是以应用为中心,软硬件可裁减,适用于对功能、可靠性、成本、 体积、功耗等综合性要求严格的专用计算机系统。与普通的计算机系统不同,每 类嵌入式系统均为特定应用设计,具有集成度高、体积小、移动性强等特点。随 着现代制造工艺和设计能力的不断进步,随着微电子技术和计算机技术的迅猛发 展,半导体工艺向小型化,集成化演变,近年来将微处理器、存储器、接口逻辑 甚至射频电路集成到单一芯片的设计工艺运用,使得小型嵌入式设备取得了前所 未有的发展速度,保持每年增长2 0 左右,并广泛应用于工业、军事、通讯、运 输、金融、医疗、气象、航天等领域。 这种将系统集成到单一芯片的设计使得电子终端设备具有了前所未有的强 大处理能力,而且价格适中,越来越受到消费者的青睐,且在未来相当长一段时 间内将持续保持调整增长的势头。但这些产品不约而同地受到诸如体积、重量、 电池容量等因素的制约,单位面积上集成晶体管数量的增加使得芯片单位面积上 的功耗也急剧增加。依靠传统的方法,单纯通过电路级低功耗设计和芯片的封装 散热技术已经无法解决功耗密度增长带来的种种问题。由功耗引起的一系列问题 使得今天的芯片设计面临巨大的挑战。具体来说,能耗问题所带来的影响主要有 以下几个方面: ( 1 ) 阻碍性能的进一步提高。随着微处理器芯片上集成的晶体管数目越来越 多,继续提升主频将导致功耗的急剧提高。当主频提高到定程度时,由于功 耗的限制,继续提升主频的方式很难改善性能。此外,随着很多关键工艺参数的 改变,漏电电流功耗指数不断增加,这对工艺调整产生了巨大的挑战,是计算机 技术长期发展必须解决的问题昭,。 ( 2 ) 增加系统制造成本。芯片工作能耗过高将在许多方面提高同嵌入式设备 的成本。为了保证工作温度较高的芯片不被烧毁,需要采用高成本陶瓷封装,必 要时还需要增加空气或者液冷等散热装置,这些附加成本甚至可能超过芯片本身 的制造成本1 。同时,将处理器在特定的温度下工作需要额外的材料和散热装置, 随着功耗的进一步提高,常规的风扇冷却很难保证处理器稳定工作,必须采用昂 贵的封闭材料和散热装置,增加了系统成本h 1 。此外,为了测试在深亚微米或纳 米技术下由于功耗问题所引发的新故障,需要采用更先进的测试设备方法,也将 提高测试成本。 ( 3 ) 影响系统工作可靠性和稳定性。随着功耗增大,温度升高,器件的温 硕士学位论文 第一章绪论 度也将进一步提高。在8 5 - 1 0 0 0 c 以上的条件下连续操作系统将会大降低系统的 可靠性。一般来说,平均工作温度每提高1 0 度,电路系统的失效率将增加到1 倍u 1 。在嵌入式系统中,芯片面积相对较小,电路集成度较高,散热困难,而丰 富的应用又将产生大量热量,容易形成高温,从而加速硅电路失效原理、降低系 统工作可靠性与稳定性。 ( 4 ) 限制系统工作时间。随着移动设备的普及和发展,强大的多媒体功能离 不开高容量的电池供电。没有充足的电池容量作保证,再强大的功能也难发挥其 作用,因此,电池供电时间长短是衡量嵌入式设备优劣的重要标志。但是单位体 积电池容量年平均1 0 的增长速度无法满足系统对功耗的需要。同时,为了满足 设备的移动性、便携性,电池体积还在不断缩小,更使得电池能量的供给不足。 ( 5 ) 增加电力能源的消耗。2 0 0 2 年,世界范围内用于个人电脑的总功耗就已 达到了9 0 0 0 兆瓦,到2 0 0 7 年更是猛增到7 8 0 0 0 兆瓦乜1 。据美国相关部门统计, 2 0 0 2 年美国电力资源的8 都用于互联网,预计到2 0 2 0 年这一比例将增加到 3 0 1 。可以想象,随着信息产生的进一步发展,未来在这一方面所消耗的电力 能源还会呈上升趋势。 为解决能耗问题,研究人员最早主要从硬件层面来优化系统能耗并取得了广 泛的研究成果。这方面工作主要从工艺级、电路级、门级、体系结构级进行功耗 管理。如缩小制造工艺并降低电源电压口1 、研究各种各样的低功耗电路形式h 1 、 以电路单元为组件进行逻辑链路设计的综合优化璐 等。基于硬件层的优化技术对 降低嵌入式系统的能耗作用明显,然而单独从硬件层面进行低功耗的优化无法完 全解决系统能耗问题,随着能耗问题在嵌入式系统中日益严峻,软件层面、软 硬件协同式的功耗优化技术备受重视。这方面工作主要是从指令级、编译级、操 作系统级、应用软件级进行功耗管理的相关技术。如寻找软件和硬件之间任务的 最优划分和分配1 、动态电压调整技术口射、寄存器分配技术妇及基于 a c p i ( a d v a n c e dc o n f i g u r a t i o na n dp o w e ri n t e r f a c e ) 的电源管理n 2 3 等。 当前大量研究表明,在嵌入式系统中,处理器在总能耗预算中占的比重非常 有限,而存储子系统则是片上系统能量消耗的主要因素n 引。因此降低存储子系统 的能耗成为有效降低整个系统能耗的关键因素。特别是在多媒体、语音处理、 d s p ( d i g i t a ls i g n a lp r o c e s s ) 及无线通讯等应用中,能耗的来源不在于数据通 路和控制器,而是对存储器的频繁访问,其中片外存储器成为能耗的主要消费者。 为了解决这一问题,现在嵌入式系统考虑采用层次性的存储子系统结构,通过内 置片上存储器,力图减少处理器访问片外存储器的次数,进而减少存储子系统的 整体功耗。同时,研究人员发现,片上存储系统中最广泛使用的c a c h e 部件尽管 具有显著提升系统性能的效果,但由于其特殊的工作机制,在与片外存储器频繁 2 硕士学位论文第一章绪论 交换内容的过程中产生大量能耗,使得存储子系统的能耗占到整个片上能耗的 2 5 - 4 5 左右1 。因此,优化存储子系统的能耗成为降低整个系统能耗的关键。 针对片上存储系统中c a c h e 部件能耗过大的问题,嵌入式系统界有了采用 s p m ( s c r a t c h p a dm e m o r y ) 替代c a c h e 或作为c a c h e 的补充这一趋势。2 0 0 3 年, 美国国家半导体工业协会( s e m i c o n d u c t o ri n d u s t r ya s s o c i a t i o n ,s i a ) 在半导 体产业技术发展路线报告中预测了这一趋势乜1 5 1 。近年来嵌入式设备制造工业发 展也充分验证了该预测,大量嵌入式设备采用s p m 作为固定的配置集成处理器芯 片上n 引。与c a c h e 相比,s p m 所占用的片上面积更小,因而可以在片上集成更大 容量的存储器;由于s p m 在设计上比c a c h e 简单,访问通过寻址实现,访问s p m 的能耗比c a c h e 小;由于s p m 的可编程特点,这使得能够更好的对s p m 进行控制。 因此,s p m 在嵌入式系统中得到越来越广泛的使用。 因此,存储子系统的低功耗研究是当前的研究热点之一。基于s p m 的低功耗 优化技术研究,对进一步降低嵌入式系统能耗具有重要的理论意义与广泛的实用 价值。 1 2 研究现状 作为一个片上s r a m ,s c r a t c h p a dm e m o r y ( s p m ) 因其体积小、能耗低、访问 速度快、有实时性保证及片内外统一编址等优势在嵌入式系统中应用越来越广 泛,而它可由软件控制的特性更是倍受程序员欢迎,因此,目前国内外对s p m 的低功耗研究非常广泛。 s p m 低功耗管理策略主要是在编译时对应用程序源代码进行分析,基于程序 运行时统计信息和对应的功耗模型,选择频繁使用的程序元素置入s p m ,以减少 处理器访问片外存储器的频率,达到降低功耗的目的。根据应用程序运行时程序 元素与s p m 地址之间的映射关系可将s p m 管理策略分为动态管理策略与静态管理 策略两类。早期的s p m 管理策略主要是静态分配n 7 1 引,应用程序的程序元素在置 入s p m 某个地址空间后不再改变,直至程序结束。在文献 1 7 ,1 8 中,作者将s p m 静态分配问题转化为整数线性规划问题并求解,但i l p 解决规模较大的应用程序 时耗时太多。而且静态管理策略中,生命周期结束的程序元素仍然占据有限s p m 空间,s f m 利用率不高。针对此问题,现在研究方向转向动态管理策略n 眈,应 用程序中的程序元素置入s p m 后,当其生命周期结束时可以移出s p m 中,而由新 的程序元素占用其地址空间,s p m 利用率大大增加。文献 1 9 中,作者将频繁使 用的多维数组分割成许多数据块( d a t at i l e s ) ,并相应地将s p m 分成系列空间 以存储这些数据块,按照最大化s p m 中可存储数据变量的数目和最小化存储内容 在s p m 与片外存储器间传送次数的原则动态调整s p m 中的内容。文献 2 0 提出了 硕士学位论文第一章绪论 一种编译导向的s p m 动态指令分配方法。文章为指令动态分配问题建立整数线性 规划方程,针对复杂应用程序的解空间规模过大的问题,提出了用启发式算法求 解的思想。同指令c a c h e 技术相比,采用该分配方法的s p m 体系结构功耗更低。 文献【2 l 】将图着色的思想运用在s p m 动态管理算法中,把s p m 划分成一系列假 想的寄存器文件,然后确定各程序元素的生命周期,最后为存储着色阶段,利用 经典的寄存器分配算法将程序元素置入s p m 中。 上述管理策略在一定程度上可以降低系统功耗,但都有各自的不足之处,静 态管理策略普遍对s p m 的利用率不高,动态管理策略能提高s p m 的利用率,但 都没有考虑存储对象在s p m 中的布局对系统功耗的影响。 1 3 论文的主要工作 s p m 存储介质因其体积小、功耗低、访问快速、有实时性保证及片内外统一 编址等优势而逐渐成为嵌入式存储系统中日益重要的组成部份,在降低功耗与成 本、提高芯片可靠性、改善系统性能等方面起到了积极的作用。但由于s p m 没有 附加的硬件电路对数据进行管理,需要软件人员通过软件手段进行干预,那么对 于空间有限的s p m 来说,如何确定哪些程序元素被置入s p m 中,以最大限度的减 少功耗,成为摆在软件人员面前的关键问题。 本文的研究内容正在于此,针对不同的应用环境,寻找到一种合适的优化方 法,在s p m 容量一定的情况下,选择合适的程序对象置入移出s p m 中,并通过 s p m 的布局优化以最大程度地减少存储子系统的能耗,研究工作主要从以下几个 方面展开: ( 1 ) 对现代编译框架以及基于编译框架的低功耗编译技术的研究。详细介绍 了当前主流的s p m 管理算法,并指出了这些管理策略的不足之处;介绍了 s i m p l e s c a l a r 性能模拟器与s u i f 编译器的架构与内核组成,并对s u i f 原型系 统进行扩展,使其适合采用s p m 管理策略管理的应用程序编译。 ( 2 ) 基于时间戳的s p m 低功耗管理策略的研究。s p m 低功耗管理涉及置入s p m 的程序对象选择、程序对象的生命周期分析、s p m 空间分配策略等问题,主要通 过减少程序运行时对片外存储器访问来降低整个存储子系统的功耗。针对静态管 理策略s p m 利用率不高的问题,提出了基于一种时间戳的s p m 动态分配算法,通 过在程序运行时选择合适的程序元素置入移出s p m ,达到减少处理器对片外存 储器访问的目的,从而降低整个存储子系统功耗。 ( 3 ) 基于电路活跃度的s p m 布局优化技术的研究。现有的s p m 管理算法的研 究通常是如何最大化重复访问s p m 中的内容,而未考虑s p m 中不同的地址访问序 列对功耗的影响。针对这一问题,提出了考虑电路活跃度的s p m 布局优化技术, 4 硕士学位论文 第一章绪论 通过调整存储对象在s p m 中的布局来降低程序运行时s p m 电路活跃度,以期降低 功耗。仿真实验和实测实验都表明,与未考虑电路活跃度的s p m 管理策略相比, 该技术可以有效地降低存储子系统的功耗,平均节省功耗可达到1 5 以上。 1 4 论文的组织结构 论文共分为六个部分进行阐述: 第一章介绍了课题的选题背景与研究意义,以及课题的主要研究内容。 第二章综述了s p m 管理策略的相关研究工作。首先比较了s p m 与c a c h e 不同 点,指出s p m 与c a c h e 相比的优点,从而提出管理s p m 的关键问题,并从功耗 模型研究,降低存储子系统功耗的管理研究两方面进行介绍。 第三章主要研究了s p m 低功耗管理的编译框架。详细介绍了s i m p l e s c a l a r 性能模拟器与s u i f 编译框架的系统结构与其内核组织,并对编译过程中常用的 遍( p a s s ) 编译机制进行了详细介绍,最后通过增加编译遍对s u i f 原型系统进行 扩展,使其适合采用s p m 管理策略分配后的应用程序编译。 第四章提出了一种基于时间戳的s p m 动态管理策略。针对静态管理策略中 s p m 利用率不高的缺点,提出了一种考虑程序元素生存期的s p m 动态管理策略, 基于应用程序的扩展控制流图,在每个程序点将下一个程序区域中部分变量与代 码置入s p m 中,并将活跃期结束的程序元素移出s p m ,使活跃期不同的程序元素 共享同一s p m 空间,功耗降低更为明显。 第五章提出了基于电路活跃度的布局优化策略。指出连续访问s p m 中系列指 令或数据时,这些程序元素在s p m 中的位置不同,地址线上电路片翻转次数也各 不相同,从而产生的功耗也不尽相同,从而在现有管理策略的基础上,通过重新 调整存储对象块中指令与数据在s p m 中的布局,使处理器访问这些程序元素时地 址线上电路片翻转减少,电路活跃度降低从而降低功耗。 第六章总结论文的主要工作和研究成果,并提出了进一步的研究方向。 5 硕士学位论文 第二章s p m 低功耗编译技术综述 第二章s p m 低功耗编译技术综述 低功耗编译优化技术是指在编译期对应用程序进行分析、调整、以达到在运 行时降低程序执行功耗的技术。本章详细介绍了低功耗编译技术在国内外的发 展。本章节首先从电路结构、性能特性方面对s p m 与c a c h e 进行了较为详细的 比较,分析了s p m 与c a c h e 相比的优缺点,并指出了s p m 管理中的关键问题。 其次重点介绍了近几年来合理利用s p m 进行存储子系统优化的研究成果,并提 出了当前研究工作中有待解决的问题。最后概述了近十年来国际上围绕片上存储 器的体系结构所做的研究。 2 1s c r a t c h p a dm e m o r y 概述 2 1 1s p m 和c a c h e 的比较 目前常见的片上存储器可以分为两种:c a c h e ,s c r a t c h p a dm e m o r y ( s p m ) 。 前者就是内部高速缓存存储器,后者是由基于的s r a m 体构成。它们在系统中 的位置如图2 1 所示。 地 址 线 | 地 ; i 址 l 线 l | ; ( b ) s p m 在系统中的位置 v 图2 - 1c a c h o 与s p m 在系统中的位置 从图2 1 可以清楚地看出,c a c h e 位于主存和处理器内核之间,不占有独立 的地址空间,保存最近一段时间内处理器访问的主存内容。在需要进行数据指令 6 硕士学位论文第二章s p m 低功耗编译技术综述 读取操作时,处理器总是从c a c h e 中读取,根据地址检查是否命中。如果命中, 则直接将数据或指令传送给处理器;否则就从主存储器中该地址附近读取固定数 目的字送入c a c h e ,然后再送给处理器。从访问的局部性原理来考虑,当把一块 数据送入c a c h e 以满足某一次存储器访问时,将来访问这块中其它字的可能性也 比较大。这样就在减少外部慢速存储器访问的同时,也降低了能耗。c a c h e 经常 与写缓冲器( w r i t eb u 腩r ) 一起配合将处理器内核和c a c h e 从较慢的主存写操作中 解脱出来。 s p m 通过片上高速总路线和处理器直接连接,独占一段地址空间,保存着部 分指令和数据。当处理器需要进行指令和数据读取时,首先根据访问地址判断地 址空间,选择s p m 或s d r a m 。前者直接操作,后者则需要通过外部存储器接 口模块对s d r a m 访问,需要时序上的等待和片外总路线驱动等,极大地影响了 速度和能耗。 在电路结构方面,s p m 由s r a m 存储阵列、地址译码电路及输出电路组成, 通过片上高速总线和处理器直接相连;在c a c h e 部件中,除了s r a m 存储单元 构成的存储阵列、地址译码电路以及输出电路外,还有t a gr a m 和比较逻辑电 路。t a gr a m 用于存储高速缓存数据的索引地址、记录c a c h e 中所缓存内容的 实际地址;比较逻辑电路用于判断访存操作是否命中,其结构如图2 2 所示。 命中率 数据 ( a ) c a c h e 结构图 ( b s p m 结构图 图2 - 2c a c h e 和s p m 的电路结构图 在二者能耗方面,s p m 的单次访问操作能耗更低。如图2 3 所示。每次处理 器访存操作时,c a c h e 的比较器和t a g 存储器等硬件逻辑均会产生额外的能耗开 7 硕- 上学位论文 第二章s p m 低功耗编译技术综述 销;同时,c a c h e 为了获取高命中率,将按局部性原理转换缓冲的内容,故经常 需要对片上和片外存储器进行访问、交换内容,这部分操作也将产生大量功耗。 s p m 不仅没有由t a g 电路产生的能耗,并且在处理器对s p m 访问中不会与外存 进行交换操作,单次访问操作能耗远小于c a c h e ,在相同工艺条件下,能耗约为 c a c h e 的6 0 1 1 刀。 - 、 。1 c 巢 督 垦 怒 耻 3 哿 d 、 一一 6 41 2 82 5 6 5 1 2 s r a m 容量( k b ) 图2 - 3s p m 与c a c h e 单次访问操作功耗比较图 0 0 2 5 0 0 2 薯0 0 1 5 o 鬟o 0 1 0 0 0 5 o = = 兰= 兰 o 。一 o 一一 5 0 1 0 0 2 0 05 0 0 s r n d 容量( k b ) 图2 - , ts p m 与c a c h e 体积比较图 每次访问操作功耗的降低同样有助于s p m 体积的减小,从图2 4 中可以看出, 相同容量的s c r a t c h - p a dm e m o r y 与各种c a c h e 设备相比,s p m 由于没有用于存 储地址的t a gr a m 和用于判断命中与否的比较电路,硬件结构相对简单,在相 同制造工艺下,存储容量相同的s p m 芯片面积公约为c a c h e 的6 6 。体积越小 的嵌入式设备所产生的漏电电流更低,从而使产生的功耗也相应降低,而且体积 更小的存储设备使得整个嵌入式设备更为小巧,方面携带。 此外,两者在访问操作的时延确定性方面区别亦十分明显。使用c a c h e 部件 重 硕士学位论文 第二章s p m 低功耗编译技术综述 时,由于存在命中与否的问题,内容可直接从c a c h e 返回,也可能需要从片外主 存中临时读取,因此很难预测在实际运行过程中访存操作的时延;而s p m 对于 处理器可见,并可直接由处理器访问,因此,对其访问操作的时延确定,有助于 在实时系统、特别是硬实时系统中保障系统的实时性能。 两者具体比较如表2 1 所示,通过对比可以看出,s p m 在面积、能耗、实时 性方面优势明显。对于体积小、电池供电、能耗要求严格的嵌入式多媒体和通讯 占主导的手持设备中,相对于c a c h e ,内置软件控制的s p m 是一个更为理想的 选择。正因为如此,s p m 在各大厂商生产的嵌入式芯片中应用越来越广泛,合 理有效的使用s p m 成为研究热点。 表2 - is p m 与c a c h e 的比较 2 1 2 集成s p m 的片上系统结构 集成s p m 的片上系统主要分为两类:( 1 ) 只包含s p m 部件作为二级缓存的片 上系统;( 2 ) s p m 与c a c h e 并存的片上系统,两者结构见图2 4 。 在s p m 与c a c h e 并存的片上系统中,二者在存储层次的地位相同。当c p u 请求数据时,如果c a c h e 命中,则c a c h e 发出命中信号通过数据总线对c a c h e 的 数据进行操作,这些数据就不会先进入s p m ;如果s p m 命中,则由s p m 发出 命中信号并对s p m 中的数据进行读写,这些数据也不会进入c a c h e 。如果二者均 未命中,则由外部存储接口与片外存储器进行交互,从而读写数据。 对于s p m 的编址,往往采用s p m 与内存共用地址空间的方法,即将s p m 的地址空间映射到内存空间上,映射方法既可以是将整个s p m 地址空间映射到 内存空间,也可以是分段映射,与具体的c p u 实现有关。这样,尽管s p m 在片 上,但是c p u 对s p m 的访问仍可以像c p u 访问内存一样,并且访问周期数与 c p u 访问c a c h e 的周期数相同。但c p u 访问内存时仍然要通过c a c h e 进行,只 有当c a c h e 失效时,才通过外部存储器访问内存。 在只包含s p m 的片上系统中,s p m 完全取代了c a c h e ,c p u 直接通过片上 9 硕士学位论文 第二章s p m 低功耗编译技术综述 总线与s p m 相连,且对内存的操作也不需要经过c a c h e ,但对s p m 的操作方式 并未改变。只要在编译时制定合适的分配算法,c p u 在对s p m 进行读写时不会 降低s p m 的性能。 2 2s p m 管理算法研究 为了提高嵌入式系统的性能,减少功耗,增加程序的可预测性,不同的基于 s c r a t c h p a dm e m o r y 的优化方法被提出并被实现。它们的主要思路都是通过在编 译期对源程序进行分析,基于程序运行时信息和存储子系统的功耗模型、性能模 型,分配程序元素至s p m ,达到优化目的。图2 5 描述了该类研究中常见的工作 流程:编译器结合未优化前的应用程序在模拟器中运行产生的p r o f i l e 信息来分 析源程序,并基于性能、功耗模型提供的性能指标值生成优化管理方案。由于 s p m 的可见性,对s p m 的使用要由程序员控制,正因为s p m 软件控制的特征, 使得在使用s p m 进行优化时面临的最大问题是如何将代码或者数据映射到s p m 上,映射的方式各不相同,具体可以将这些管理策略分为硬件管理策略和软件管 理策略。其中软件管理策略包括软件c a c h e 方法、静态分配方法和动态分配方法 等,如图2 - 6 所示。下面将分别介绍这些管理方法的发展研究。 2 2 1 软件c a c h i n g 方法 软件c a c h i n g 方法 1 8 ,1 9 】是一种动态管理方法,它是通过软件控制将s p m 模 拟硬件c a c h e 行为的一种优化技术。在软件模拟的硬件c a c h e 行中储存包含t a g 地址值,该地址值由高到低位存储。在每次l o a d s t o r e 指令之前由模拟软件在编 译期插入新的指令取出t a g 地址值,并将变量地址与t a g 地址值进行比较,并依 靠比较结果跳转至命中或非命中处理模块执行相应的操作,如果命中,则通过一 个映射表将该存取地址指向该变量在s p m 中的实际位置;如果未命中,首先将 该新变量置入s p m 中存储,然后更新映射表。其中文献【1 8 】在s p m 中模拟了一 级c a c h e ,文献 1 9 】在s p m 中模拟了二级c a c h e ,对原来由硬件管理的t a g 标志、 数据有效标志等,由编译期插入到程序中的附加代码管理。作为一种运行时动态 管理策略,该策略在一定程度上可以降低功耗,特别是对于随着程序运行程序数 据变化较大的应用程序效果更佳。 然而,这种额外添加管理代码的管理方法有一些缺陷:增加了应用程序的执 行时间、代码体积变大、t a g 标志中数据量增多、更高的能耗和同c a c h e 一样存 在不可预测性,这对有硬实时性需求的应用程序非常不适合。 针对上述问题,文献【2 0 】【2 1 】提出了编译期s p m 管理方法,尽管也是在编译 期生成s p m 管理代码,但实现s p m 管理的代码只使用l 0 a d 和s t o r e 两种存储 1 0 硕士学位论文 第二章s p m 低功耗编译技术综述 指令,程序元素置a 移出分配操作都是在编译时确定,并且不会改变原程序的 控制流。 图2 - 5 编译期s p m 管理方法研究技术流程图 图2 - 6s p m 管理算法分类 l l 硕士学位论文 第二章s p m 低功耗编译技术综述 2 2 2s p m 静态管理算法 s p m 静态管理算法是通过编译器对应用程序进行编译分析,从分析结果中选 取最合适的程序元素,并将这些程序元素分配到s p m 中,在程序运行过程中, 这些程序元素一直存储在s p m 中,即s p m 中存储单元与程序元素的映射关系不 发生改变。图2 7 为s p m 静态管理算法的一个简单示例图。 # d e f i n ea r r a ya 1 0 0 1 0 0 】; # d e f i n ea r r a yb 1o o 【10 0 】; f o r ( i - - 0 ;i 10 0 ;i + + ) f o r ( j = 0 ;j l0 0 j + + ) a 【i 】d 】_ a 【i 】d 】奉1o ; f u n a o ) 其它存储对象 f o r ( i = 0 ;i l0 0 ;i + + ) f o r ( j = o ;j lo o j + + ) b 【i 】d 】= b 【i 】【j 】10 ; ( a ) 冻代码 ( b ) 变量在s p m 中的分配 图2 - 7s p m 静态管理策略示意图 最早的s p m 管理算法主要考虑的是根据存储对象的类型将存储对象置入 s p m 中。这些方法主要解决哪些存储对象一直放在主存,哪些存储对象可以置 入s p m 中,置入s p m 的空间位置。在这些技术中,由于考虑到s p m 的容量限 制,那些较少使用的存储对象存放于主存,而频繁使用的变量则尽可能的置入 s p m 中。这些方法都是通过应用程序编译时得到的p r o f i l e 值来确定存储对象的 存取频率,以此确定应该置入s p m 与存放在主存中的存储对象。为了解决这一 问题,多数方法都是将此问题模拟成0 1 整数线性规划问题,然后利用商业的i l p 求解工具求解。 p a n d a 等人 2 2 ,2 3 首次提出了利用s p m 降低存储子系统功耗的方法。该方法 基于s p m 与c a c h e 共存的体系结构,根据数组变量访问频度较高的事实,提出 了将程序中部分常量、全局变量与数组变量分配到s p m 中,不仅s p m 的低能耗 操作可以降低程序运行能耗,并且由于数组变量占有较大的存储空间,当其不由 c a c h e 缓冲时有助于降低c a c h e 冲突,因此同时也降低了c a c h e 部件的使用能耗。 对于常量和全局变量,通过分析编译后的p r o f i l e 信息,统计常量和全局变量的 1 2 硕士学位论文第二章s p m 低功耗编译技术综述 访问次数,再根据访问次数的多少来决定是否分配到s p m 中;对于数组变量, 则分析数组的大小、生命周期、访问冲突等特征,然后选出合适的数组分配到 s p m 上。针对文献 2 2 1 1 2 3 】中仅按变量结构类型来确定是否选择置入s p m 的限 制,并考虑到不是所有的数组变量均具有很高的访问频度,文献【2 4 】提出了基于 数据变量访问频度信息的s p m 分配算法,该算法通过分析变量的访问情况,依 照变量访问频度与变量尺寸的比值来排序,按照贪心算法选择比值最大的变量置 入s p m 中。而针对数组过大而无法完全置入s p m 的问题,文献 2 5 1 提出了数组 分割的方法,将尺寸较大的数组分割为几个互不干扰的子数据块,每一个子数据 块相当于一个存储对象,然后将分配问题转化为0 1 背包问题并采用整数线性规 划求出最佳分配方案。由于数组划分后分配粒度更小,优化效果更佳。 上述文献只考虑将数据变量置入s p m 中来降低存储系统功耗,而未考虑应 用程序中别的可能降低功耗的部分。文献 2 6 】 2 7 】【2 8 】 2 9 】则将研究重点扩展到指 令片段,函数等所有可能降低功耗的部分。其中文献 2 6 1 提出了将指令片段分配 到s p m 中的方法。通过分析应用程序编译后的二进制代码,统计二进制代码的 执行次数排序,然后将这些二进制代码分成一系列存储对象,确定好将要置入 s p m 中的存储对象后,通过采取打补丁程序的方式,将存储对象置入s p m 中, 以此达到降低功耗的目的。该方法不需要了解应用程序源代码,只要能得到程序 编译后的二进制代码即可,但也正因为如此,通过打补丁程序方式修改程序二进 制代码时容易错误,实现较为复杂。与文献【2 6 】不同,文献 2 7 1 分析应用程序的 源代码来选择存储目标,并且将候选存储对象扩展到指令片段和数据变量。该方 法将应用程序划分为函数块、基本块、和数据块等几部份,并为这几个部分分别 建立精确的功耗模型。将各块在执行过程中的访问次数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论