![(电路与系统专业论文)嵌入式处理器指令预取关键技术设计研究[电路与系统专业优秀论文].pdf_第1页](http://file.renrendoc.com/FileRoot1/2019-12/13/7aeeb08f-35bf-490f-948f-cfef84cdc884/7aeeb08f-35bf-490f-948f-cfef84cdc8841.gif)
![(电路与系统专业论文)嵌入式处理器指令预取关键技术设计研究[电路与系统专业优秀论文].pdf_第2页](http://file.renrendoc.com/FileRoot1/2019-12/13/7aeeb08f-35bf-490f-948f-cfef84cdc884/7aeeb08f-35bf-490f-948f-cfef84cdc8842.gif)
![(电路与系统专业论文)嵌入式处理器指令预取关键技术设计研究[电路与系统专业优秀论文].pdf_第3页](http://file.renrendoc.com/FileRoot1/2019-12/13/7aeeb08f-35bf-490f-948f-cfef84cdc884/7aeeb08f-35bf-490f-948f-cfef84cdc8843.gif)
![(电路与系统专业论文)嵌入式处理器指令预取关键技术设计研究[电路与系统专业优秀论文].pdf_第4页](http://file.renrendoc.com/FileRoot1/2019-12/13/7aeeb08f-35bf-490f-948f-cfef84cdc884/7aeeb08f-35bf-490f-948f-cfef84cdc8844.gif)
![(电路与系统专业论文)嵌入式处理器指令预取关键技术设计研究[电路与系统专业优秀论文].pdf_第5页](http://file.renrendoc.com/FileRoot1/2019-12/13/7aeeb08f-35bf-490f-948f-cfef84cdc884/7aeeb08f-35bf-490f-948f-cfef84cdc8845.gif)
已阅读5页,还剩52页未读, 继续免费阅读
(电路与系统专业论文)嵌入式处理器指令预取关键技术设计研究[电路与系统专业优秀论文].pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江大学硕:l 学位论文 摘要 摘要 随着嵌入式系统应用的不断发展和深入,高性能低功耗的嵌入式处 理器是未来发展的必然趋势。本文围绕嵌入式处理器指令预取单元的架 构设计,以提高预取性能和降低整体功耗为主要目标,重点研究了应用 于嵌入式处理器指令预取单元的两大关键技术,主要的研究内容和创新 点包括: l 、在分析多重嵌套溢出、分支预测错误情况下的异常更新和指令预 取单元流水线化的返回延时等函数返回地址栈问题产生的原因和对流水 线性能造成的影响的基础上,提出了一种基于指针纠错的无延时高精度 函数返回地址栈技术,利用栈顶指针、检验指针和退休指针的协同工作, 配合函数返回地址后备栈对分支预测错误路径上的函数调用和返回指令 的跟踪,实现对函数返回地址栈状态错误更新的纠错和恢复。应用本方 法的3 2 位高性能嵌入式处理器c k 6 1 0 很好地满足了嵌入式应用需求, 获得了较高的函数返回分支指令预测精度,处理器运行d h r y s t o n e 测试 基准程序的执行效率提高了1 7 8 。 2 、针对现代嵌入式处理器中指令高速缓存功耗显著的问题,提出一 种基于c a c h e 行间访问历史链接关系的指令高速缓存低功耗方法。通过 创建独立可配置的顺序及跳转链接表项,利用链接表项中缓存的历史信 息,消除c a c h e 行间访问时对标志位存储器和冗余路数据存储器的访问 功耗。进一步提出可复用的链接状态单元,克服了传统方法中由于缓存 缺失引起的清空和重建链接表项的缺陷,显著降低了指令高速缓存访问 功耗。实验表明,与传统指令高速缓存相比,本方法在取指单元面积仅 浙江大学硕士学位论文 摘要 增加1 3 5 的情况下,可平均减少标志位存储器访问次数9 6 3 8 。 本文提出的指令预取单元关键技术对于嵌入式处理器提升性能、降 低功耗等方面具有积极的作用。 关键词嵌入式处理器;指令预取单元;函数返回地址栈;指针纠错; 函数返回后备栈;指令高速缓存低功耗;链接表项;链接状态单元; 浙江大学硕士学位论文a b s t r a c t a b s t r a c t w i t ht h ed e v e l o p m e n to fe m b e d d e da p p l i c a t i o n s ,h i g hp e r f o r m a n c ea n d l o w p o w e re m b e d d e dp r o c e s s o rw i l lb e c o m et h ei n e v i t a b l et r e n di nt h ef u t u r e t h i s t h e s i sf o c u s e do nt h ea r c h i t e c t u r ed e s i g no ft h ei n s t r u c t i o np r e f e t c hu n i ti n e m b e d d e dp r o c e s s o r s t oi m p r o v et h ei n s t r u c t i o np r e f e t c hp e r f o r m a n c ea n d r e d u c et h eo v e r a l lp o w e rc o n s u m p t i o n ,w ea n a l y z e dt w oi m p o r t a n tt e c h n i q u e sf o r t h ei m p l e m e n t a t i o no fi n s t r u c t i o np r e f e t c hu n i t t h eo r i g i n a lc o n t r i b u t i o n so ft h i s t h e s i sa r ea sf o l l o w s : 1 b a s e do nt h ea n a l y s i so ft h eo v e r f l o wi nm u l t i p l en e s t e dp r o c e d u r e s ,t h e w r o n gu p d a t eu n d e rb r a n c hp r e d i c t i o na n dt h ep r o d e d u r er e t u r nd e l a yc a u s e db y i n s t r u c t i o np r e f e t c hp i p e l i n i n g ,t h i st h e s i si l l u s t r a t e dt h er e a s o n sa n dt h ei m p a c t o ft h e s ep r o b l e m s ,a n dp r o p o s e daz e r o d e l a yh i g h p r e c i s i o nr e t u r na d d r e s ss t a c k t e c h n o l o g yw i t ht h ep o i n t e r - b a s e dc o r r e c t i o nm e c h a n i s m w i t ht h eh e l po f c o o p e r a t i o no ft h et o pp o i n t e r , t h ec h e c kp o i n t e ra n dt h er e t i r ep o i n t e r , t o g e t h e r w i t ht h et r a c ef o rt h ep r o c e d u r ec a l la n dr e t u r no nw r o n gp r e d i c t e dp a t ho f f e r e d b yr e t u ms t a c kb a c k u p ,t h em e t h o dr e a l i z e dt h ec o r r e c t i o na n dr e c o v e r yt ot h e r e t u r na d d r e s ss t a c k a p p l i c a t i o no ft h i sm e t h o di n3 2 一b i th i g h p e r f o r m a n c e e m b e d d e dp r o c e s s o rc k 6 10w e l lm e tt h en e e d so fe m b e d d e da p p l i c a t i o n sa n d o b t a i n e dh i g h e rp r e d i c t i o na c c u r a c yo fp r o c e d u r er e t u r ni n s t r u c t i o n r u n n i n g d h r y s t o n eb e n c h m a r kp r o g r a m ,t h ep r o c e s s o re x e c u t i o ne f f i c i e n c yi m p r o v e db y 1 7 8 2 t or e d u c et h ep o w e rd i s s i p a t i o no fi n s t r u c t i o nc a c h e ,w h i c hi sm o r e 浙江大学硕士学位论文a b s t r a c t s i g n i f i c a n ti nm o d e me m b e d d e dp r o c e s s o r , al o wp o w e ri n s t r u c t i o nc a c h e a c c e s s i n gm e t h o d ,b a s e do ni n t e r l i n el i n k i n gh i s t o r y , w a sp r o p o s e d b yc r e a t i n g c o n f i g u r a b l es e q u e n t i a la n dj u m p i n gl i n k i n gt a b l e ( s j l t ) ,t h i sm e t h o de l i m i n a t e d t h ei n t e r - l i n ea c c e s s i n gp o w e ro ft a ga n dr e d u n d a n td a t am e m o r y 。m o r e o v e r , a r e u s a b l el i n k i n gs t a t u su n i t ( l s u ) w a sa l s oc r e a t e dt os o l v et h el i n k i n gt a b l ef l u s h a n dr e c o n s t r u c t i o np r o b l e mc a u s e db yc a c h em i s si nt r a d i t i o n a lm e t h o d s u t i l i z i n gb o t hs j l ta n dl s ue f f e c t i v e l y , s i g n i f i c a n tr e d u c t i o no nd y n a m i cp o w e r c o n s u m p t i o nw a ss u c c e s s f u l l ya c h i e v e d e x p e r i m e n ts h o w e dt h a t ,i nc o m p a r i s o n w i t ht h et r a d i t i o n a li n s t r u c t i o nc a c h e ,t h en o v e lm e t h o dr e d u c e d9 6 3 8 o ft h e t a ga c c e s sw i t ho n l y1 35 a r e ai n c r e m e n to fi n s t r u c t i o nf e t c hu n i t t e c h n i q u e sp r o p o s e di nt h i st h e s i sh a dp o s i t i v ee f f e c t so np e r f o r m a n c ea n d p o w e ro fe m b e d d e dp r o c e s s o r s k e y w o r d s e m b e d d e dp r o c e s s o r ;i n s t r u c t i o np r e f e t c hu n i t ;r e t u r na d d r e s s s t a c k ;p o i n t e rc o r r e c t i o n ;r e t u r ns t a c kb a c k u p ;i n s t r u c t i o nc a c h el o wp o w e r ; l i n k i n gt a b l e ;l i n k i n gs t a t u su n i t 浙江大学硕上学位论文 图目录 图目录 图1 1 一个典型的嵌入式应用系统l 图1 2 两级分支预测器硬件结构图一4 图1 3 指令高速缓存基本硬件结构7 图1 4c k 5 1 0 6 1 0 简化逻辑设计框图1 0 图2 1( a ) 不采用返回栈的流水线状态( b ) 传统返回栈的流水线状态1 5 图2 2 传统函数返回地址栈的硬件结构1 6 图2 3 传统投机执行策略在分支预测错误下的清空流水线操作1 8 图2 4 函数返回地址栈的多重嵌套溢出问题1 9 图2 5 函数返回地址栈在投机执行下的错误更新问题2 0 图2 6 函数返回地址栈在投机执行下的错误更新问题( 续1 ) 2 1 图2 7 函数返回地址栈在投机执行下的错误更新问题( 续2 ) 2 2 图2 8 指令预取单元流水线化造成的函数返回延时2 2 图2 9 一种快速返回栈设计方法的硬件结构2 4 图2 1 0 基于指针纠错的无延时高精度函数返回栈技术主要硬件框图一2 5 图2 1 l 函数返回栈的三套指针协同工作恢复机制2 7 图2 1 2 函数调用和返回指令序列跟踪状态机2 8 图3 1 标志位比较消除方法表项结构3 2 图3 2 短循环指令流的链接表项填充3 4 图3 3 基于链接表项的指令缓存低功耗方法3 5 图3 4 短循环指令流的链接状态单元3 6 图3 5 基于链接状态单元的缓存缺失处理机制3 6 浙江人学硕:e 学位论文表目录 表目录 表1 1p o w e r s t o n e 测试基准中的堆栈操作的分析5 表2 1 经典的r i s c 处理器五级流水线结构1 5 表3 1p o w e r s t o n e 测试基准的统计信息3 7 表3 2 固定表项深度下a c a c h e 和b c a c h e 访问次数对比3 8 表3 3 不同表项深度下的b c a c h e 访问次数对比3 9 浙江大学硕:e 学位论文浙江大学研究生学位论文独创性声明 浙江大学研究生学位论文独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取 得的研究成果。除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得逝垄盘堂或其他教育 机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签名:名贮、中、中签字日期: 年月 日 学位论文版权使用授权书 本学位论文作者完全了解逝姿盘堂有权保留并向国家有关部门或 机构送交本论文的复印件和磁盘,允许论文被查阅和借阅。本人授权瞧 盍生可以将学位论文的全部或部分内容编入有关数据库进行检索和传播, 可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名: 毋、呻、岬 导师签名: 签字日期:年月日签字日期:年月日 浙江大学硕:匕学位论文致谢 致谢 光阴似箭,日月如梭,不知不觉间已临近硕士毕业了。 回首近三年的学 - - j 生涯,我首先最想感谢的是我的导师吴晓波教授,感 谢吴老师这三年来对我的悉心指导和关怀。吴老师不仅慷慨地传授专业知识, 善待学生,而且积极为我们创造良好的实验室氛围、提供细致的科研指导, 并注重培养我们解决实际问题的能力,对我们各方面素质的全面发展具有非 常重要的意义。吴老师高尚的人格、谦逊的作风和严谨的治学,使我受益匪 浅。 其次要感谢严晓浪教授为我们提供了丰富的科学研究和工程实践机会, 研究所的发展和严老师的辛勤工作密不可分,作为研究所的一员,我的每一 次进步和提高都和研究所的发展紧密相连。我也要感谢葛海通老师多年来在 学 - j 生活等多方面给予我的关心和指导,以及在工程实践方面传授的诸多经 验。还要感谢浙江大学超大规模集成电路设计研究所的沈海斌、史峥、何乐 年、王国雄、王维维、竺红卫、罗小华、张培勇、赵梦恋等老师多年来给予 我的指导和帮助。 同时我还要感谢曾经在一起学 - - j 工作的实验室的同学们和中天微系统公 司的同事们:孟建熠、丁永林、黄凯、李春强、杨军、刘智力、吕冬明、郑 丹丹、冯炯、莫鹏飞、刘兵、殷燎、陈志坚、彭信民、张欣、徐鸿明、傅可 威、沙子岩、林锋毅、黄雪维、张强、张杰、张波、陈晨、项晓燕、刘磊、 王荣华、武淑丽、高金加、刘畅等。尤其要感谢孟建熠师兄在我研究生学 - - j 阶段给予我的悉心指导,帮助我从无到有地深入了解集成电路设计领域的重 要问题,顺利解决在嵌入式处理器研究和开发过程中遇到的诸多问题,使我 浙江大学硕上学位论文致谢 可以很好地适应研究生阶段的学习和生活,为离开校园踏入社会奠定了坚实 的基础。另外,还要感谢孟建熠、丁永林师兄对我毕业论文相关研究工作的 热心指导和大力支持,感谢与我一同参与c k 6 1 0 设计验证的所有同学,正是 大家的共同努力,帮助我顺利完成了嵌入武处理器指令预取关键技术的设计 研究工作。 我还要感谢母校浙江大学对我近七年的培养,感谢杭州中天微系统有限 公司为我提供的良好的实践平台,感谢求学途中所有曾经给予过我帮助的人 们。最后,我要由衷的感谢父母二十五年来对我的辛勤培养和忘我奉献,感 谢他们对我一直以来的信任支持和无微不至的关怀照顾,教育我成为一个诚 实、上进、积极、乐观的人。父母对我的殷切希望促使我努力完成学业,尽 早承担起应尽的责任和义务,这也必将成为我今后人生路上不懈奋斗的最大 动如, i l 龚帅帅于求是园 2 0 1 0 1 1 5 浙江大学硕士学位论文 第1 章绪论 1 1 研究背景与意义 第1 章绪论 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于 应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统【l 】。 嵌入式系统的核心是嵌入式微处理器,一般具备很强的实时多任务支持能力、较 强的存储区保护功能、可扩展的处理器结构和极低的功耗【2 1 。以a r m 系列处理器 为典型代表的嵌入式处理器,主要面临着提高性能和降低功耗的双重挑战,性能、 功耗等因素已经成为主要的设计指标【3 】。在如图1 1 所示的典型的嵌入式应用系 统中,嵌入式处理器通过总线和各个i p 交互,是整个嵌入式系统的核心。 图1 1一个典型的嵌入式应用系统 现代嵌入式处理器普遍采用流水线技术,一般将指令的执行分解为多个独立 的子任务( 如取指、译码、执行、寄存器访问和回写等) ,让多个子任务在同一 个时间点上独立和并行执行,从而显著提升处理器的频率和吞吐率。指令预取单 元作为流水线中的最前级,其主要任务是提高指令存储空间的访问效率、加快指 令获取速度、降低指令预取的功耗开销,这对于整个处理器的性能、功耗有着极 为重要的影响【4 1 。采用合理的流水线架构优化指令预取单元,已经作为一系列关 浙江大学硕上学位论文 第l 章绪论 键技术成为嵌入式处理器领域的研究重点。 程序执行过程中普遍存在着用于控制程序执行流程的分支指令,因此流水线 将会不同程度地受到打断。在指令预取过程中,为了确保流水线的不间断,需要 对分支指令的后续指令进行预测预取,但是一旦在流水线后级发现分支预测错 误,分支指令后的预取指令需要被丢弃,从而致使流水线中出现多个周期的空操 作,造成性能损失。分支指令预测错误发现越晚,进入流水线的无效指令越多, 性能损失就越大。因此提高处理器的分支处理能力,即采用优越的分支预测技术, 历来是嵌入式处理器指令预取单元的重要研究内容1 5 1 。 作为一种重要的分支指令,函数调用和返回指令大量出现在处理器指令流 中,对于函数调用和返回指令的准确预测,可以极大减少由于分支预测错误引起 的性能损失。由于函数调用和返回指令的特殊性,利用通常的分支预测技术并不 能获得函数返回指令的目标程序地址。在各类指令集中,对于函数调用指令基本 上根据偏移量可以直接或者间接寻址,无需对这类分支指令进行预测,但函数返 回指令需要访问寄存器组,有一定的时间延时,而仅仅利用分支预测器又无法获 得准确的返回地址。目前业界最常见的针对函数返回指令的优化技术称为硬件返 回栈技术,即采用专门的硬件堆栈记录函数调用时的返回地址,从而确保无延时 的精确函数返回【6 】。根据不同应用,硬件堆栈的深度可以自行配置,但函数返回 栈的设计必须保证函数调用时的地址入栈和函数返回时的地址出栈的准确配合, 同时还要负责在分支预测错误或者函数嵌套调用出现溢出时对函数返回栈的正 确恢复。 当前嵌入式处理器中,指令高速缓存的功耗十分显著,如s t r o n g a r ms a l l 0 中指令高速缓存功耗约占处理器总功耗的2 5 【7 1 。降低指令高速缓存功耗是嵌入 式处理器实现低功耗的重要方法之一。指令高速缓存的访问分为c a c h e 行内访问 和c a c h e 行间访i j 司【8 l 。c a c h e 行内访问空间特性较好,相同行的数据固定存放在 同一个数据存储器中,通常采用c a c h e 行共用标志位的结构【8 】即可消除行内访问 时标志位存储器的动态功耗。而c a c h e 行间访问空间性相对较差,不同行的数据 分散在不同的数据存储器中,需要并行比较标志位才能确定缓存是否命中。在多 路组相联结构下,各路数据存储器的并行访问和标志位存储器的并行比较将产生 浙江大学硕上学位论文 第1 章绪论 明显的动态功耗。因此降低c a c h e 行间访问功耗已成为当前高速缓存低功耗方法 的研究重点和难点。 1 2 嵌入式处理器指令预取技术研究现状 嵌入式处理器指令预取技术目前的研究重点包括基于硬件返回栈的函数返 回分支指令预测技术和指令高速缓存低功耗技术。这两类研究的目标是集中解决 嵌入式处理器中性能和功耗两大根本问题。在处理器的指令流执行过程中,分支 指令的预测错误将会极大影响处理器的性能,而高速缓存的访问功耗又在嵌入式 处理器总功耗中非常显著,因而提高分支指令( 特别是函数调用和返回指令) 的 执行预测精度和指令高速缓存单位功耗的访问效率已经成为了嵌入式处理器设 计技术的重要研究内容。 1 2 1 嵌入式处理器分支预测技术 嵌入式处理器的性能需求日益提高,超标量和深流水线已经成为提高处理器 性能的重要技术。两项技术在提升处理器性能的同时,也受到了程序中普遍存在 的条件分支指令的制约。条件分支指令在超标量和深流水线处理器中造成的流水 线性能损失更为严重,已经成为处理器性能进一步提升的主要瓶颈t 9 1 。 为了减小条件分支指令造成的性能损失,尤其是缓解其对超标量和深流水线 处理器性能提升的严重制约,现代嵌入式处理器普遍采用了分支预测技术,在分 支条件尚未确定的情况下利用时间和空间上的历史信息预测分支跳转状态,从而 实现对分支指令后续程序段的预测预取。分支预测的核心问题就是分支预测的精 度,只有高精度的分支预测才能保证流水线的连续运行,提升嵌入式处理器的性 能。 由于程序的分支行为非常复杂,对于性能的影响又十分明显,因而一直是处 理器设计研究领域的重点内容。最初的分支预测呆用了静态预测的方法【1 0 】,简单 将分支跳转状态预测为跳转( t a k e n ) 或者不跳转( n o tt a k e n ) ,硬件实现非常简 单。但是由于其充分利用了程序中大量存在的具有确定方向性的循环等分支指令 的特点,在很多嵌入式领域的应用场合取得了理想的预测效果,通常预测精度在 4 0 9 0 左右【10 1 。 浙江大学硕上学位论文 第1 章绪论 随着分支预测技术的研究不断深入,业界提出了大量的动态分支预测方法, 主要经历了两级分支预测、全局和局部历史相结合的分支预测和神经网络分支预 测三个阶段的发展演化 1 1 - 1 2 1 ,分支预测精度提升的同时,硬件设计的复杂度也随 之提升。两级分支预测机制1 3 1 的最大进步是发现了分支跳转的历史信息对于分支 预测的重要价值,其技术核心在于结合时间和空间历史相关性的索引机制,即采 用分支历史移位寄存器和空间索引寄存器的联合索引,选择对应的预测器来决定 分支指令的预取方向。图1 2 所示的两级分支预测器就采用了8 位历史信息和2 位地址信息的联合索引机制。 图1 2 两级分支预测器硬件结构图 全局和局部历史相结合的分支预测是对两级分支预测技术的改进。在a l p h a 2 1 2 6 4 中提出的锦标赛分支预测机制【4 】作为一种组合分支预测方法,采用两组相 互独立的预测器,即局部分支历史预测和全局分支历史预测,并由处理器动态自 适应地选择其中的一个预测结果。这一方法有效减少了由于历史信息相同而造成 的分支历史别名 1 5 1 ,进一步提高了分支预测的准确率。而近年提出的基于神经网 络的分支预测器【1 6 】贝0 将神经网络算法引入分支预测领域,通过感受器预测分支跳 转,赋予了分支预测一种类似神经网络的学习功能,不仅获得了较高的分支预测 精度,而且其硬件资源与分支历史位宽成线性关系,相对于锦标赛分支预测机制 而言,可以明显降低硬件开销。 4 浙江大学硕上学位论文第l 章绪论 1 2 2 函数返回指令的堆栈预测技术 随着嵌入式系统的不断发展升级,硬件复杂度不断提高,相应的嵌入式软件 的层次调用也不断增多【1 7 】,程序中出现了大量的函数调用和函数返回指令。根据 对p o w e r s t o n e 测试基准中的堆栈操作的分析3 1 ,可以发现大量的函数调用和函数 返回指令存在于这些应用程序中,其结果如表1 1 所示。 表1 1p o w e r s t o n e 测试基准中的堆栈操作的分析 对于这些大量存在的函数调用和返回分支指令,如果不仔细加以处理,将会 严重制约嵌入式处理器性能的进一步提升。 - 3 前嵌入式处理器的设计研究中,一 般对分支指令均采取预测预取机制,准确的分支预测可以保证流水线的完全填 充,最大限度地提升处理器性能。但是函数返回分支指令和一般的分支指令有着 明显区别,函数调用和函数返回指令必定成对出现,即一次函数返回必定和前一 次的函数调用相对应。正是基于这一典型特征,基于硬件堆栈的函数返回分支指 令预测技术在嵌入式处理器领域得到了广泛的应用。 针对函数返回分支指令的硬件堆栈技术称为返回地址栈( r e t u r na d d r e s s s t a c k ,简称返回栈) 技术。其主要思想是利用一个深度固定或者可配置的硬件 地址栈,在函数调用时将对应的返回地址( 即函数调用指令的后一条指令的地址) 压入这一硬件地址栈中,而在执行到对应的函数返回指令时将之前的地址弹出, 利用这一地址作为函数返回分支指令的目标地址继续预取指令,避免了流水线的 停顿。这一技术已经在业内主流的嵌入式处理器中得到了实际运用,如a r m 公 司在其a r m l l 产品中提出的3 个表项深度的返回地址栈r a s ( r e t u r na d d r e s s s t a c k ) 【1 3 1 结构和m i p s 公司在其m i p s 4 k e 产品中提出的支持4 个表项深度的返 回预测栈r p s ( r e t u r np r e d i c t i o ns t a c k ) 结构【1 9 j 。 浙江大学硕上学位论文第1 章绪论 在现代嵌入式处理器中,基于投机的执行机制得到了广泛的应用。这些嵌入 式处理器根据分支指令的预测预取结果,投机执行尚未得到确认的分支指令的后 续指令。传统的返回地址栈在分支预测后,仍然继续追踪后续的函数调用和函数 返回指令,根据指令预解码的结果更新返回栈。一旦分支指令的预测出现错误, 返回地址栈在异常的程序轨迹上追踪到函数调用和函数返回指令后,将更新返回 栈中的内容,即出现错误的入栈或者出栈操作,引发后续函数返回分支指令的预 测错误。最新研究提出了一种硬件方式解决上述问题的恢复机n t 2 0 1 ,在传统函数 返回栈的基础上,通过增加一个分支恢复表项( b r a n c hr e c o v e r yt a b l e ) 和一个 返回栈回收表项( r e t u ms t a c kt r a s h c a n ) ,在分支预测错误时对返回栈中的内容 进行恢复,显著提高函数返回分支指令的预测正确率。除此以外,函数返回地址 栈在流水线技术发展过程中,还遇到了多重嵌套溢出、指令预取单元流水线化的 返回延时等一系列问题。 1 2 3 嵌入式处理器指令高速缓存低功耗技术 在处理器中采用高速缓存的目的是为了让指令或者数据的访问速度适应处 理器的处理速度,其基于的原理是内存中程序执行与数据访问的局部性,即在一 定程序执行时间和空间内,被访问的代码集中于一部分【1 4 】。指令预取时,处理器 往往先通过总线请求访问片外存储器,需要相对较长的访问周期,从而引起处理 器处理速度和指令获取速度之间的矛盾。利用指令高速缓存可以保存最近最常访 问的指令,从而缓解甚至在一定程度上解决了嵌入式处理器执行速度和片外存储 器访问速度之间的矛盾。一种典型的嵌入式处理器指令高速缓存的结构如图1 3 所示。 指令高速缓存由数据存储器( d a t aa r r a y ) 和标志位存储器( t a ga r r a y ) 组 成。数据存储器存放待执行的程序,标志位存储器则根据缓存大小和组相联结构 存储处理器p c ( 程序计数器) 的一部分。处理器在指令预取时将优先访问指令 高速缓存,在多路组相联结构中需要并行比较标志位存储器,用以判断高速缓存 是否命中。当标志位存储器和p c 的标志位比较相同时,高速缓存访问命中,直 接从对应的数据存储器中读取指令;而当多路标志位存储器的比较均不相同时, 高速缓存访问缺失,处理器将通过总线访问片外存储器,并在获得指令信息后回 6 浙江大学硕士学位论文 第l 章绪论 填高速缓存。 b l o c ka d d r e = s sb l o c ko f f s e t 图1 3 指令高速缓存基本硬件结构 指令高速缓存在大幅度提升处理器指令预取效率的同时,也消耗了嵌入式处 理器大量的功耗。指令高速缓存消耗的功耗主要来自译码、数据和标志位存储器 的访问、数据输出驱动,即: e c 幽e = e d e 曩e + e d 醇o + e m g + e d t 删 其中最为重要的部分是数据和标志位存储器的访问。很显然,在指令高速缓存的 访问过程中,数据存储器的访问只在缓存命中的情况下有效,并且多路组相联结 构中至多只有一路数据有效;而标志位存储器的并行比较结果也至多只有一路相 同。因此,减少冗余路数据存储器的访问、减少不必要的标志位存储器的访问和 并行比较,都可以极大降低高速缓存的功耗。目前业内关于指令高速缓存低功耗 的研究主要包括两大类方法:基于指令缓冲的低功耗方法和基于历史访问记录的 低功耗方法。 基于指令缓冲是目前主流的指令高速缓存低功耗方法,主要包括b l o c k b u f f e r 2 1 1 、f i l t e rc a c h e t 2 2 - 2 3 1 和h o t s p o tc a c h e t 2 4 1 等。它们的共同特征是使用比传统 高速缓存面积功耗更小的存储单元( 零级缓存) 临时缓存最近访问的c a c h e 行, 在指令和数据读取时优先访问零级缓存,减少传统高速缓存的访问次数,降低访 问功耗。基于指令缓冲的高速缓存低功耗方法实现简单,硬件开销小;但是该类 方法对程序空间局部性的依赖强,在零级缓存访问缺失时仍然需要重新访问一级 浙江大学硕上学位论文第1 章绪论 缓存,引起额外的运行周期,降低处理器的性能。 基于历史访问记录是另一类指令高速缓存低功耗方法,包括路记忆方法【2 卯、 标志位比较消除方法闭和标志位编码方法鲫等。它们的主要特征是在指令高速 缓存访问前通过历史信息的有效判断提前确定访问的路,关闭无关的数据和标志 位存储器。应用该类方法的嵌入式处理器取得了较好的低功耗效果,但由于增加 的逻辑单元会引起额外的硬件开销,这部分硬件资源的利用效率有待进一步提 高。同时,指令高速缓存的硬件结构变得更加复杂,可能会引起关键路径问题, 引起处理器频率等性能的恶化。 1 3 论文的技术路线 随着应用领域的日益广泛,嵌入式处理器在性能和功耗方面的要求进一步提 高,高性能、低功耗的嵌入式处理器技术成为其研究发展的主要方向。处理器中 的指令预取效率直接影响后级流水线的执行,而指令高速缓存的功耗在现有嵌入 式处理器中的功耗比例也e t 益提高,提高指令预取单元的效率、降低平均每条指 令的预取功耗将为高性能、低功耗嵌入式处理器的研究设计提供强有力的技术支 持。本文的研究课题主要针对嵌入式处理器指令预取单元性能和功耗的优化,分 析对比了现有嵌入式处理器中函数返回分支预测技术和指令高速缓存低功耗技 术,提出了进一步优化这两项指令预取单元关键技术的方法。两项关键技术的研 究始终围绕着提升嵌入式处理器性能和降低硬件功耗展开,针对复杂的硬件逻辑 结构,在性能提升和功耗降低两方面做出了有效的平衡。具体而言,重点解决了 以下两方面的问题: 1 优化的函数返回地址栈技术。由于分支指令会中断流水线中指令的顺序 执行,极大影响处理器指令预取的效率,成为制约现代处理器性能提升的重要瓶 颈。高效率的分支预测技术可以避免指令预取时的流水线停顿,在很大程度上减 小了分支指令造成的性能损失,是目前提高分支处理性能的主流方法。分支预测 技术主要包括静态分支预测和动态分支预测两大类别,其中动态分支预测技术已 经可以获得很高的分支预测精度,在现有嵌入式处理器中广为采用。函数调用和 函数返回指令作为一种特殊的分支指令,在程序应用中大量存在,针对其调用和 浙江大学硕士学位论文第1 章绪论 返回成对出现的程序特征,采用硬件堆栈技术可以轻松实现无流水线停顿的指令 预取。这种函数返回地址栈技术已经在主流的嵌入式处理器中得到普遍采用,但 由于大量分支指令的影响和多重嵌套函数调用的存在,返回栈技术在实际应用过 程中仍然受到多重嵌套溢出、分支预测错误情况下的异常更新和指令预取单元流 水线化的返回延时等问题的影响,返回地址栈的预取精度受到极大限制。目前研 究的返回地址栈技术通常需要设计专门的硬件表项存储相关信息,资源开销较 大,功耗也不够优化。本文将重点研究高精度、低硬件代价、低功耗的函数返回 地址栈技术,用以进一步提升嵌入式处理器的函数调用和返回指令的预取性能。 2 高效的指令高速缓存低功耗技术。嵌入式处理器中高速缓存的功耗日益 明显,指令高速缓存的功耗开销促使其成为低功耗嵌入式处理器的研究重点。指 令高速缓存的功耗主要由标志位存储器的访问和比较功耗、数据存储器的访问功 耗组成,尤其在多路组相联结构中,冗余路的访问比较功耗成为各类低功耗方法 集中解决的核心问题。目前普遍采用基于指令缓冲和基于历史访问记录的方法来 降低指令高速缓存的功耗,但现有方法存在着对程序局部性依赖较强、容易造成 额外性能损失或者硬件开销太大、新增硬件逻辑单元利用效率较低等问题。本文 将利用嵌入式处理器中指令预取存在的特殊关系和特点,重点研究硬件资源开销 小、设计方案简单易实现的指令高速缓存低功耗技术,用以进一步解决嵌入式处 理器日益敏感的功耗问题。 本文的总体技术路线是优化函数返回指令的预取技术以提升嵌入式处理器 性能,优化指令高速缓存低功耗技术以降低嵌入式处理器的动态功耗。这两项关 键技术是指令预取单元技术研究的核心内容,对于高性能低功耗嵌入式处理器的 研究有着极为重要的意义。 1 4 论文的研究基础 本文的研究内容基于c c o r e 系列嵌入式处理器的设计平台,并以浙江大学 和杭州中天微系统公司联合研制的c k 5 1 0 6 1 0 系列处理器为主要研究依据,其 中c k 5 1 0 是第一代单发射嵌入式r i s c 处理器,而c k 6 1 0 是第二代双发射嵌入 式r i s c 处理器。这两款处理器在高性能低功耗处理器方面的技术积淀和实践经 9 浙江大学硕上学位论文第1 章绪论 验是本文重要的研究基础,而本课题的探索性研究也为c c o r e 系列处理器的升 级提供了理论参考。 c k 5 1 0 6 1 0 处理器指令预取单元均采用了两级流水线的设计结构,其简化的 逻辑结构框图如图1 4 所示。在这两款嵌入式处理器中集成了容量可配置的指令 高速缓存( i n s t r u c t i o nc a c h e ) 和精度在9 2 以上的高效的两级分支预测器( b r a n c h p r e d i c t i o n ) 。为了提高程序的指令预取效率,指令预取单元对分支指令进行了预 解码,并采用四个表项深度的返回栈( r e t u r ns t a c k ) 加速函数返回指令的预取 和执行。本课题研究针对返回地址栈的高性能低硬件开销和指令高速缓存的低功 耗策略展开,提出了全新的返回地址栈和指令高速缓存设计结构,并通过在 c k 5 1 0 6 1 0 处理器中的设计,实现对全新技术优越效果的有效验证。 图1 4c k 5 1 0 6 1 0 简化逻辑设计框图 1 5 论文研究内容和组织结构 本文以c k 5 1 0 6 1 0 处理器的技术资源为研究基础,重点围绕嵌入式处理器 指令预取单元提高性能和降低功耗两方面问题展开研究,着重解决优化函数返回 指令的预取精度和降低指令高速缓存的动态功耗两大问题。针对嵌入式处理器指 令预取单元关键技术的设计研究,本文主要的研究内容和创新点包括: 1 基于指针纠错的无延时高精度函数返回栈技术 1 0 浙江大学硕士学位论文第l 章绪论 通过对函数返回地址栈多重嵌套溢出、分支预测错误情况下的异常更新和指 令预取单元流水线化的返回延时等问题的分析,提出一种基于指针纠错的函数返 回栈技术。该方法充分利用嵌入式处理器中函数调用和函数返回指令成对出现的 特点,由处理器指令预取单元和综合执行单元共同维护栈顶指针、检查指针和退 休指针,实现在多重函数嵌套和分支预测错误时对返回栈错误更新的正确恢复。 三套返回地址栈指针的协同工作,配合函数返回地址后备栈对分支预测错误路径 上的函数调用和返回指令的跟踪,以简单的硬件设计和极小的逻辑开销,取得了 优越的函数返回指令预测精度。同时,根据嵌入式处理器指令预取单元流水线设 计的特点,对函数返回这类特殊的分支指令采用跨流水线的旁路处理,实现对函 数返回指令的无延时预取。基于指针纠错的无延时高精度函数返回栈技术结合了 当今嵌入式处理器中函数返回栈技术的优点,并成功克服了其硬件开销较大的缺 陷,对于指令预取单元有效提高函数返回分支指令的预取效率有着非常重要的意 义。 2 基于历史链接关系的指令高速缓存低功耗方法 通过对现有指令高速缓存低功耗方法的分析,对比了基于指令缓冲和基于历 史访问记录的低功耗方法,分析两种方法的优势和主要存在的问题,并在这些技 术的基础上,根据指令预取过程中存在的顺序和跳转链接关系,提出了一种基于 c a c h e 行间访问历史链接关系的指令高速缓存低功耗方法。在这一方法中,通过 创建独立可配置的顺序及跳转链接表项,利用链接表项中缓存的历史信息,消除 c a c h e 行间访问时指令预取单元对标志位存储器和冗余路数据存储器的访问功 耗。这一方法在恰当复用链接表项的情况下,可以进一步减小硬件开销,优化链 接表项的利用效率。同时为了克服传统方法中由于缓存缺失引起的清空和重建链 接表项的缺陷,本方法还提出了可复用的链接状态单元,使得链接表项中的历史 链接关系在高速缓存出现缺失的情况仍然可以被有效利用,显著降低了指令高速 缓存访问功耗。 本文的组织结构如下: 第一章为绪论,讨论了嵌入式处理器指令预取单元关键技术的研究背景和意 义,介绍了提高函数返回分支指令预取效率和降低指令高速缓存功耗这两大关键 浙江大学硕士学位论文 第1 章绪论 技术的研究现状和主要特征。在此基础上提出了本文在优化取指性能和降低取指 功耗方面的技术路线,以及以c c o r e 系列处理器为对象的技术基础,并对本文 的主要研究内容和创新点进行了概括。 第二章研究函数返回地址栈技术。在对嵌入式处理器中传统的硬件堆栈技术 进行分析的基础上,研究了现有函数返回地址栈技术在深流水线处理器和复杂程 序应用中容易出现的多重嵌套溢出、分支预测错误情况下的异常更新和指令预取 单元流水线化的返回延时等问题,提出一种基于指针纠错的无延时高精度函数返 回栈技术,优化指令预取单元对函数返回分支指令的预取效率。 第三章研究指令高速缓存的低功耗技术。在对嵌入式处理器指令高速缓存的 物理结构和功耗特征进行分析的基础上,研究了现有指令高速缓存低功耗方法设 计思想,对比各类方法的优缺点,提出一种基于历史链接关系的指令高速缓存低 功耗方法,明显降低指令预取单元在嵌入式处理器中所占的功耗比例。 第四章对全文进行了总结,并展望下一阶段研究工作。 浙江大学硕士学位论文第2 章函数返回地址栈技术研究 第2 章函数返回地址栈技术研究 现代处理器往往采用流水线技术来提高处理器的频率,通过对程序执行任务 的有效划分,采用多级流水线来完成处理器的设计工作。随着流水线技术的日益 发展,处理器的性能也不断提高。指令预取单元作为流水线的最前级,其重要职 责是迅速而准确的填充流水线,为后级执行单元的处理做好充分的准备。 普遍存在于指令流中的分支指令打破了指令预取单元顺序预取指令的流畅 性,对于分支指令后续指令的预测预取已经成为现代处理器设计研究的重要内 容,优越的分支处理能力可以有效减少流水线中由于分支预测错误而引起的损 失,显著提高处理器性能。而函数返回指令作为一类特殊的分支指令,在日益复 杂的嵌入式应用程序中也频繁出现,根据函数返回指令和函数调用指令成对出现 的特点,现代处理器中采用函数返回地址栈实现对函数返回分支指令目标地址的 预测,取得了明显的效果。 但随着流水线技术的发展,函数返回地址栈也遇到一系列问题,影响了其对 函数返回指令目标地址的预测精度。本文针对函数返回地址栈发展过程中的三大 问题展开分析研究,着力探求一种性能资源比更为优化的嵌入式处理器应用方 案。通过对比现有函数返回栈技术的优势和缺陷,本文提出了一种基于指针纠错 的无延时高精度函数返回地址栈技术,并在c k 6 1 0 系列嵌入式处理器中取得了 很好的应用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软木制品生命周期评价与环境影响考核试卷
- 足浴店顾客投诉预防与应对考核试卷
- 纺纱生产过程中的节能减排考核试卷
- 烘炉热效率计算与优化考核试卷
- 纸质汽车内饰设计创新与市场分析考核试卷
- 羽绒制品消费者需求分析与产品设计考核试卷
- 葡萄酒酿造可持续发展战略考核试卷
- 定制型国际商务考察旅游合作协议
- 高端展览活动安保及安全检查服务协议
- 美团新员工培训
- 骨科疑难病种清单(2021年版)
- 农村常用法律法规知识讲座课件(村干部培训)
- 电力工程电缆敷设记录表
- 调机品管理规定
- DB63∕T 1683-2018 青海省农牧区公共厕所工程建设标准
- 专题21 当代世界发展的特点与主要趋势含答案解析2023年山东历史新高考【3年真题+1年模考】
- 六年级下册数学课件--总复习《图形的运动》北师大版.--共20张PPT
- 加油站操作员职业技能鉴定试习题库(中级工版)
- 最新房地产开发预算表
- 弱电智能化物业人员人员培训记录
- 线性代数期末试题同济大学第五版附答案
评论
0/150
提交评论