(控制理论与控制工程专业论文)智能吸尘器嵌入式软硬件协同设计方法的改进.pdf_第1页
(控制理论与控制工程专业论文)智能吸尘器嵌入式软硬件协同设计方法的改进.pdf_第2页
(控制理论与控制工程专业论文)智能吸尘器嵌入式软硬件协同设计方法的改进.pdf_第3页
(控制理论与控制工程专业论文)智能吸尘器嵌入式软硬件协同设计方法的改进.pdf_第4页
(控制理论与控制工程专业论文)智能吸尘器嵌入式软硬件协同设计方法的改进.pdf_第5页
已阅读5页,还剩73页未读 继续免费阅读

(控制理论与控制工程专业论文)智能吸尘器嵌入式软硬件协同设计方法的改进.pdf.pdf 免费下载

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

文档简介

独创性声明 伽眦f j f f i f f i f i l f l f i f 佣 y 18 2 4 7 0 2 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研 究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得重废由电太堂或其他教育 机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡 献均已在论文中作了明确的说明并表示谢意。 学位论文作者签名:拥仃 刀啦 学位论文版权使用授权书 本学位论文作者完全了解重庞自g 电太堂有关保留、使用学位论文的规 定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查 阅和借阅。本人授权 重庞由电盔堂可以将学位论文的全部或部分内容编入 有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论 文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:各刁诺包 签字日期:川年6 月l 阳 导师虢绍f 副主 替醐:砰台刖胡 重庆邮电大学硕士论文摘要 摘要 软硬件协同设计方法是:通过对电子系统软件部分和硬件部分的同时设计, 协同优化软硬两部分的设计方案,从而达到设计性能最优的目的。在传统的嵌入 式系统设计方法中,系统的设计是一个从硬件到软件逐步完成的串联过程,软硬 件设计过程的割裂使得设计方案不能达到最大限度的优化,调整系统设计也很不 方便。协同设计方法统一考虑系统设计,一方面可以缩短设计周期,提高设计效 率;另一方面可以根据系统各个部分的特点和设计指标,对软件部分和硬件部分 依据具体使用情况进行划分,得到高性能、低成本的优化设计方案。与此同时, 计算机辅助设计技术的进步、芯片集成度的提高、f p g a 的普及使用,都为将软硬 件协同设计方法应用于嵌入式系统开发提供了条件,也为开发功能更丰富、性能 更优越的嵌入式系统奠定了技术基础。 针对这一机遇,重庆邮电大学自动化学院和韩国i t r c 下一代嵌入式系统开发 环境研究中心在嵌入式系统协同设计方法研究上开展了合作。 本文将介绍实验室在嵌入式系统协同设计开发方法以及开发工具的研究上所 取得的进展,并着重介绍本文作者在这方面所做的一些工作。首先,对协同设计 方法的产生和发展、所遇到的困难与机遇进行背景概述,并结合现时嵌入式系统 开发方法中的一些不便之处,简要介绍一下经典的协同设计方法学理论;第二, 以作者设计的智能吸尘器为例,讲解处于研究中的嵌入式系统协同设计开发方法 的具体步骤、演示仿真结果,通过这个实例展示协同设计的便利处和有效性,并 结合实际设计经验探讨这项正在研究中的协同设计方法的不足之处;第三,针对 上述设计方法中的不足,尝试首次将先进的c e c 编译算法应用于e s t e r e l 语言翻译 机之中。为此,作者设计了整个翻译器结构框架,完成了词法分析、语法分析、 语义树遍历器的制作,完成了用户界面的制作,定义了其中的通讯接口,并为集 成c e c 核心算法的工作做了前瞻性研究。最后,对所做的工作和下一步研究方向 进行总结。 l 一一一一一_ _ _ 一_ 重庆邮电人学硕士论文摘要 通过本文的介绍,读者将能看到软硬件协同设计方法在嵌入式系统设计中的 独特优势;通过实例以及仿真认识到这项处于研究中的嵌入式系统协同设计方法 是行之有效,且行之高效的;并且看到作者在建立基于c e c 编译算法的翻译器上 所做的工作,为后续研究打下了基础。 关键词:软硬件协同设计,e s t e r e l ,c e c ,翻译机,a n t l r 一一一一一一。 重庆邮电大学硕士论文 a b s t r a c t a b s t r a c t h a r d w a r es o f w a r ec o d e s i g nm e a n sm e e ts y s t e m l e v e lo b j e c t i v e sb y e x p l o i t i n gt h e s y n e 唱i s mo fh a r d w a r ea n ds o f h a r et h r o u g h t h e i rc o n c u r r e n t d e s i g n e m b e d d e d s y s t e m sa r eu s u a l l yc o n s i d e r e da st 1 1 ec o m b i n a t i o n so fs o n w a r ea n dh a r d w a r ef o ra s p e c i a lt a s k i nt h en a d i t i o n a lw a yo fe m b e d d e ds y s t e md e s i g n ,s y s t e m sa r ed e s i g n e di n s e r i e sf 沁mh 莉w a r et os o 鲰7 忸r e ,w h i c hw a ym a k e ss o f h v a r ed e s i g n i n gs e p a r a t e d 自d m h 川w a r ed e s i g n i n g ,c o n s t r a j n t sd e s i g n e r s 矗o mo p t i m i z i n ga ne m b e d d e ds y s t e ma sa 、v h o l e t h en e wh a r d w a r es o f h a 鹏 c o d e s i g nm e t h o dl e t s as y s t e mb e d e s i g n e d c o n c u r r e n t l yb o t hi nh a r d w a r es i d ea 1 1 ds o f c 、v a r es i d e i td e c r e a s e sm u c ho ft h ed e s i g n p e r i o d ,i n c r e a s e st l l ed e s i g ne m c i e n c yd r a m a t i c a l l y ;o nt h eo m e ri 啪d ,i tl e t sd e s i g n e r s g e t a no p t i m i z e ds y s t e mf b mt h e i rs o p l l i s t i c a t e dh a r d w a r es o 鲰v a r e p a n i t i o np l a n a c c o r d i n gt 0a l lt h eo b j e c t i v e sa n ds p e c i a lc h a r a c t e r so fe a c hp a j t a tt h em e a n t i m e ,t h e e v o l u t i o no fi n t e 笋a t e dc i r c u i tt e c h n o l o g y ,m ed e v e l o p m e n to fc o m p u t e ra i dd e s i g nt o o l s a n dt h ei n t r o d u c t i o no ff i e l dp r o g r a m m a b l eg a t ea r r a y ( f p g a ) m o t i v a t er e s e a r c h e r st o d e v e l o ph a r d w a r es o f h ,a r ec o d e s i g nm e t l l o df o rm o r ep o 、v e r f u le m b e d d e ds y s t e m s 础m i n gt ot l l i sn e wc h a l l e n g e ,t l l ea u t o m a t i o nc o l l e g eo fc h o n g q i n gu i l i v e r s i 够o f p o s t sa i l dt b l e c o m m u l l i c a t i o n sa i l dt 量l en e x tg e n e r a t i o ne m b e d d e ds y s t e md e v e l o p m e n t e n v i r o 胁e mr e s e a r c hc e n t e ro fi t r ck o f e am a d eal o to fe 肋r tt oi m p l e m e n tt h e h a r d w a r es o 厅w a r em e m o d o l o g yt oe m b e d d e ds y s t e m s a sau s e f h lt 0 0 1f o re m b e d d e ds y s t e mc o d e s i g i la p p r o a c h ,i t sn e c e s s a r yt om a k ea c u s t o m - b u i i ti n t e 印r e t e rf o rt h es y s t e md e s c r i p t i o nv e r i f i c a t i o n u s u a l l y ,d e s i g n e r sn e e d t ow r i t et 1 1 e i rp r o g r a mt os i m u l a t et l l ee n v i r o 姗e n tt h e i rs y s t e mw o r k si n s o m e t i o n e s m a 虹n gt h es i m u l a t i o ne n v i r o i l i l l e n tc o n s 眦e sd e s i g n e r sm o r et i m ea n de n e 唱yt h a n d e c r i b i n gm e i re m b e d d e ds y s t e m t h ei m e 印r e t e rs a v e st i l ec o s tt h a ti ss p e n to nm a k i n g s u c ha ne n v i r o i l i l l e n t i nm yt h e s i s ,t t l en e c e s s i t ) ,a n dm o t i v a t i o no ft 1 1 ei 1 1 t e 印r e t e r 州1 l b ei n 仃o d u c e dn r s t ,a 1 1 dt h e nt h ed e t a i l sa b o u te a c hp a r to fi t 、v i l lb ei l l u s t r a t e d k e yw o r d s :h a r d w a r es o 胁a r ec o d e s i g i l ,e s t e r e l c e c ,i n t e 印r e t e r ,a n t l r u i 重庆邮电大学硕士论文 目录 目录 摘要i a b s t r a c t i i i 第一章软硬件协同设计与嵌入式系统1 1 1 软硬件协同设计简介1 1 1 1 软硬件协同设计发展动力2 1 1 2 嵌入式系统与软硬件协同设计3 1 1 3 软硬件协同设计思想的产生和发展6 1 1 4 软硬件协同设计发展方向1 1 1 2 软硬件协同设计的主要步骤和设计流程1 3 1 2 1 软硬件协同设计的主要步骤1 3 1 2 2 软硬件协同设计的经典流程1 5 1 3 本文主要内容1 6 第二章软硬件协同设计方法实例1 7 2 1 软硬件协同设计实现方法1 7 2 1 1 e s t e r e l 语言简介1 7 2 1 2 第三代e s t e r e l 编译器c e c 1 9 2 1 3 软硬件协同设计实现方法2 0 2 2 软硬件协同设计方法实例验证:智能吸尘器2 2 2 2 1 智能吸尘器e s t e r e l 控制程序的编写2 3 2 2 2 智能吸尘器系统仿真测试2 7 2 3 关于设计方法的讨论2 9 第三章一种基于c e c 编译算法的e s t e r e l 翻译器设计3 1 3 1 翻译器设计构想3 1 3 2 翻译器的总体设计框架3 3 3 3 用a n t l r 制作剖析器和语义树遍历3 5 3 3 1 用a n 孔r 制作剖析器3 6 3 3 2 使用a n t l r 剖析器4 3 3 3 3 用a n t l r 制作遍历器4 4 3 3 4 使用a n t l r 遍历器4 7 3 4 用户图形界面的制作4 8 3 5 内部通讯接口的定义5 1 t v 重庆邮电人学硕士论文 目录 3 6 关于翻译器核心算法的研究5 2 3 6 1 翻译e s t e r e l 语言的主要困难5 2 3 6 2 通过程序依赖关系图方法产生e s t e r e l 语言模拟代码5 4 3 6 3 通过动态链接方法产生e s t e r e l 语言模拟代码5 6 3 6 4 关于翻译器核心算法的研究小议5 8 第四章总结与展望6 0 4 1 论文总结6 0 4 2 后续工作6 1 致谢6 3 攻读硕士学位期间从事的科研工作6 4 参考文献6 5 附录智能吸尘器控制核心e s t e r e l 代码6 8 v 重庆邮电入学硕士论文 第一章软硬件协同设计与嵌入式系统 第一章软硬件协同设计与嵌入式系统 1 1 软硬件协同设计简介 在工程上,系统的定义多种多样,例如,多个提供不同功能组件的集合可称 之为系统。这些组件可能在物理属性上是不一样,但是他们在一些或简单或复杂 的手段控制下互相配合形成统一整体。在很多系统中,电子元件都是作为系统的 控制核心出现的。绝大部分电子系统是可编程的,它们都包含有硬件部分和软件 部分。虽然对一个系统,由于其运用领域的不同,可以用多种指标来衡量( 例如, 性能,设计工艺,工程造价,可控性等等) ,但是大体上我们都能从软件部分和硬 件部分的角度去评估。 传统的先硬件后软件的系统设计模式需要反复修改、反复试验,整个设计过 程在很大程度上依赖于设计者的经验,设计周期长、开发成本高,在反复修改过 程中,常常会在某些方面背离原始设计的要求,很多设计中出现的问题都是靠有 经验的系统设计人员来解决。然而这样来解决系统设计中的琐碎问题,既容易出 错,也相当耗费时间。并且,系统设计中涉及的大量信息使得很难单纯依靠设计 人员来优化系统设计以达到各项指标最优,这会导致产品不能充分发挥其潜在价 值。 软硬件协同设计( h 捌佬鹏s o f h v a r ec o d e s i g n ) 的核心思想即:通过同时对软 件部分和硬件部分进行综合设计,平衡设计方案,来达到系统设计的各项指标最 优。 重庆邮电大学硕士论文第一章软硬件协同设计与嵌入式系统 s w w 传统设计方式软硬件协同 图1 1 传统设计思想与协同设计思想的对比 如图1 1 所示,左边的传统设计方法中,软件和硬件的设计是独立进行的,软 件的设计是建立在固定的硬件电路连接基础上的;右边软硬件协同设计思想则不 同。从图中可以看出,和传统的设计方式相比,软硬件协同方法学更强调整体权 衡,更强调一个系统的整体性。它试图让设计者的想法在设计过程中尽量的保留 为一个整体,直到最后具体实现再进行分割。 软硬件协同设计是为解决现存问题而提出的一种全新的系统设计思想。他依 据系统目标要求,通过综合分析系统软硬件功能及现有资源,最大限度地挖掘系 统软硬件之间的并发性,协同设计软硬件体系结构,以便系统能工作在最佳工作 状态。这种设计方法,可以充分利用现有的软硬件资源,缩短系统开发周期、降 低开发成本、提高系统性能,避免由于独立设计软硬件体系结构而带来的弊端。 以此同时,随着技术的不断发展进步,新兴技术的出现也极大地提高了人们 对软硬件协同设计的研究兴趣。 1 1 1 软硬件协同设计发展动力 最近几年,随着计算机辅助设计工具c a d 的逐步普及,人们普遍希望这类工 具能解决协同设计中的一些问题,提高产品的品质,缩短设计开发时间,业界对 研究软硬件系统设计方法和工具投入了极大的热情。在激烈的市场竞争环境下, 协同设计工具很可能会扮演一个至关重要的角色。这一判断可以在很多市场统计 数据中得到有力支持。 集成电路技术的进步同样不断激励着开发新的数字电路设计方法。不断进步 2 重庆邮电大学硕士论文第一章软硬件协同设计与嵌入式系统 的制造工艺提高了集成度也提升了造价,因此也使得硬件设计成本需要很长的一 个周期才能收回。正因如此,人们希望在同一种硬件上通过不同的软件设计来异 化产品功能。由于软件和硬件设计的复杂性,重用功能往往能增加商业收益。 最近出现的可编程逻辑门电路f p g a 技术模糊了软件与硬件之间的区别。传 统意义上,硬件在出厂以前就已经是设置好了的。硬件功能的使用可以由软件选 择决定。虽然软件参数可以在运行时被改变,但是硬件结构是不变的。f p g a 却能 让用户在硬件出厂之后,改变硬件内部的门电路连接方式。这种特性为数字电路 的应用打开了新的空间,也为软硬件系统设计提出了新的问题。例如,f p g a 电路 在运行中改变电路连接后,能比用处理器执行相关代码更好的实现相同的功能。 接着f p g a 能被重新设置,从而在不改变底层电路设计的情况下实现其他特殊功 能。在用户看来,这和传统的处理器系统没有什么不同,可是在编程机理和程序 员的角度来看,这和传统意义的处理器系统完全不同。 上述三种趋势,扩展了协同设计技术的发展前景。然而,软硬件协同设计是一 个很复杂的学科,它综合了很多领域的研究,如软件编译,计算机体系结构和超 大规模集成电路制造。协同设计很重要,但是研究起来却很琐碎,其研究方向很 大程度上决定于应用领域的不同。 1 1 2 嵌入式系统与软硬件协同设计 计算机从1 9 4 6 年诞生以来,经历了一个快速发展的过程,现在的计算机没有 变成科幻片电影中那样贪婪、庞大的怪物,而是变得小巧玲珑、无处不在,它们 藏身在任何地方,又消失在所有地方,功能强大,却又无影无踪,这就是嵌入式 系统。嵌入式系统是以应用为中心、计算机技术为基础、软件硬件可剪裁、适应 系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系 统是将先进的计算机技术、微电子技术和现代电子系统技术与各个行业的具体应 用相结合的产物,这一点决定了它必然是一个技术密集、高度分散、不断创新的 知识集成系统。嵌入式系统广泛应用于国民经济和国防建设的各个领域,发展非 常迅速,调查数据表明,嵌入式系统的增长为每年1 8 ,大约是整个信息技术产 3 重庆邮电大学硕士论文第一章软硬件协同设计与嵌入式系统 业平均增长的两倍,目前世界上大约有2 亿台通用计算机,而嵌入式处理器大约 6 0 亿个,嵌入式系统产业是二十一世纪信息产业的重要增长点。 系统设计是指将用户的客观需求转换成与之对应的技术系统的过程,是应用 计算机技术建立起的一个从现实世界到抽象世界的映射。随着嵌入式系统用户需 求和相关技术的迅速发展,嵌入式系统设计的发展趋势可以概括为: ( 1 ) 随着用户需求不断增加,嵌入式系统设计复杂性不断提高,设计规模不断 增大,设计对象由单机走向分布式系统; ( 2 ) 随着嵌入式系统应用领域不断扩大,不同场合对系统设计的功能、功耗、 成本、面积等需求各不相同,嵌入式系统设计要求由单目标走向多目标; ( 3 ) 随着嵌入式技术大量应用于手机等用电池供电的移动设备中,系统设计的 功耗和体积限制要求不断增强,嵌入式产品的集成度越来越高; ( 4 ) 随着嵌入式产品更新速度加快,系统设计周期不断缩短,新产品问世时间 不断减小,系统设计更加强调设计重用: ( 5 ) 不同于在通用计算机系统上开发软件,嵌入式系统是一个软件和硬件并存 的系统,设计时要从软件和硬件两个领域来综合考虑问题,它们互相联系、相互 补充和互相制约。 过去的嵌入式系统硬件部分设计相对于软件部分来说更容易,系统开发主要 是在电路板上进行编程和交叉调试,所以那时的嵌入式系统开发很大精力都放在 软件上,认为只要软件开发质量能够很好地保证,就可以很好地满足整个系统的 功能和性能。 传统的嵌入式系统设计流程如图1 2 所示。系统软件和硬件划分完成以后,首 先硬件子系统的设计与实现,再进行软件子系统的设计与实现,因此整个系统的 设计过程基本上是一个串行过程。 4 重庆邮电大学硕士论文第一章软硬件协同设计与嵌入式系统 软 硬 件 划 分 错 误 图1 2 传统嵌入式系统设计流程 随着微电子技术的飞速发展,硬件的集成度越来越高,使得传统的嵌入式系 统开发方法逐渐暴露出很多不足之处。 ( 1 ) 软件和硬件的开发过程割裂,缺乏沟通。传统的开发方法在设计早期软件、 硬件开发就分开进行,由于异构型系统软硬件复杂,这种设计过程使软件和硬件 不能得到协调优化,导致了设计效率低下。 ( 2 ) 设计自动化层次低。系统级设计由设计人员手工完成,设计的好坏依赖于 设计人员的经验,而随着系统规模不断提高,设计复杂度将往往超出人的思维范 围,导致设计不当。 ( 3 ) 设计过程串行化增加了设计周期。目前的设计流程主要采用先硬件后软件 的开发模式,即实现了硬件的物理原型后再开始开发软件,因此串行设计不能充 分及时地进行全系统综合考虑,导致设计失误增加,设计过程拖延。 ( 4 ) 缺乏设计重用支持。目前的嵌入式系统设计几乎都是从零开始的,没有很 好的利用过去开发的成果,导致产品问世周期增长,市场竞争力下降。 普遍认为,目前嵌入式系统地设计生产率的提速度赶不上设计复杂度增加的 速度,设计方法和工具成为制约嵌入式系统发展的瓶,嵌入式系统设计方法学期 待革新。 针对嵌入式系统设计面临的问题与挑战,研究者们开始将目光投入到新兴的 5 重庆邮电大学硕士论文第一章软硬件协同设计与嵌入式系统 电子系统设计方法学“软硬件协同设计”技术上来。 1 1 3 软硬件协同设计思想的产生和发展 正因为上述的各种原因,9 0 年代初,各方面逐渐把目光投入到了系统设计方 法学的研究上来。不论是工业界的开发人员,还是学术界的研究人员,都寄希望 于在设计方法上找到突破口,使得系统设计更方便、效率更高。然而正是由于这 项方法学的研究涉及面广泛,小到集成电路芯片及其内嵌软件的设计,大到各种 各样的分布式系统、控制系统,使得这项研究所涉及的知识领域众多。因此要深 入了解这项技术的发展,不妨浏览一下其历史沿革。 “软硬件协同设计”( h a r d 、v a r es o 胁a r ec o d e s i g l l ) 这个概念形成于上世纪9 0 年代早期,它主要用来处理当时集成电路( i n t e g r a t e dc i r c u i t ) 设计中出现的一系 列问题。在当时,微处理器已经被广泛使用了十余年,然而大多数微处理器系统 仍然是排他性电路板系统。有一些设计师已经从单纯的集成电路设计师群体中独 立出来,专注于将微处理器芯片和附加硬件电路组件制作成功能独立的智能板卡 系统。他们的主要工作就是编写底层汇编代码。 到了9 0 年代,板卡系统的设计已经明显成为集成电路设计中比较重要的一部 分。由于1 6 位、3 2 位微处理器逐渐应用于板卡系统,在摩尔定律的驱动下,业界 出现了对包含主中央处理器和更多附加子功能的,更大功能更强劲芯片的要求。 由此便不可避免的产生了这样两个问题:首先,系统设计的方法必须能很好的处 理既有中央处理器和所设计系统地融合问题;其次,软件理应作为系统芯片设计 中首先考虑的问题。 研究人员找到了一些方法来开发用于底层中央处理器的嵌入式软件,这些开 发方法也就成为了软硬件协同设计方法学的最初形态。软硬件协同设计方法研究 的最原始动力来源于:找到能让设计者可以预测并快速评估他们设计的系统是否 达到他们所希望的,诸如运算能力、功耗、芯片面积等性能指标的设计方法,以 此来促进系统开发的效率和确定性。 经过了多年的研究,虽然距离我们的目标还有很长的路要走,但是前人的成 6 重庆邮电大学硕士论文第一章软硬件协同设计与嵌入式系统 果还是比较丰硕的。 1 1 3 1 迈出第一步 最早在协同设计方面做出的努力是美国南加州大学的s o s 系统,这个系统可 以综合处理某种专用处理器的拓扑模型并且在多个该种处理器间调配进程。这个 系统将处理器的配合作为混合整形线性问题来看待,所以它工作起来比较慢而且 很难扩大处理量。不过重要的是,这个系统在协同设计的发展上做出了基础性的 工作。 大约一年以后,科罗拉多的c o d e s 工作组和奥地利的c h s h e 工作组引入了 一些具有重要意义的研究,这些研究都和并行问题有关。从这些工作开始,软硬 件的分割问题便成了创造模型和算法之前最重要的第一步。两个最早的系统:斯 坦福的v u l c a l l 和不伦克理技术大学( t e c h j l i c a ju n i v e r s i t yo fb r a u n s h w e i g ) 的 c o s y m a 就用了两者互为补充的办法来处理这个基本问题。 如图1 3 所示,软硬件分割的作用是将设计人员的想法映射到目标系统的体系 结构上去。图中的系统将一个处理器,一个或多个专用i c 芯片用总线连接起来。 图1 3 用于软硬件分割的专用i c 体系结构 在早期的设计中,专用集成电路( a s i c ) 扮演着加速器的作用,而不是作为 一个协同处理芯片,在这种情况下,处理器不能向其分配独立任务。设计者大多 假设处理器和专用集成电路芯片作为各自独立的芯片出现,虽然有时候本质上并 不是这样的。它们之间的通讯通过共享存储器和内存单元实现。这种体系让系统 7 重庆邮电大学硕士论文 第一章软硬件协同设计与嵌入式系统 能够将大运算量的任务分配给专用芯片,而将其他不适合直接由硬件执行的任务 分配给处理器。 v u l c a n 和c o s y m a 的输入同为类c 语言。对每个程序的多种实现方法的性能 和代价进行分析的基础上,系统将会决定程序的哪些功能将由专用芯片来执行, 哪些部分将由处理器来完成。然而,v u l c a n 和c o s 肿a 实现以上功能的办法差别确 很大。v u l c a l l 首先将所有功能分配给硬件芯片去实现,然后将一些不能执行的操 作交给处理器来完成,以此减少操作成本;而c o s y m a 的所有任务起始于处理器, 然后把适合硬件芯片执行的部分分配出来,以此来追求性能指标。 两种系统的设计者都必须在三个方面作性能分析:硬件、软件和整体系统。 在这三者当中,由于硬件底层结构是很清楚的,硬件性能分析最容易。它的目标 是分析出硬件单元的最快时钟频率,但是分析的过程必须足够快,才能让设计者 在综合考虑的时候能够尝试多种不同的设计想法。 软件性能分析更多的表现为大量的工作。这个任务很像硬件中的最坏情况执 行时间问题,不过很少有学者研究这个方面的软件性能。9 0 年代早期提出的“路径 列举算法”( p a t l - e n 啪e r a t i o na l g o r i t h m ) 便是其中之一。然而,软硬件协同设计的研 究者们并没有注意到这项工作,c o s y m a 就通过在所要使用的处理器上测试各种情 况的性能来完成软件性能评估,而v u l c a n 则通过分析程序数据流来完成。 系统性能分析也相当复杂。总体上来说,一个处理器专用芯片系统既是一个 多种程序混编的系统,也是一个多进程的系统。系统能够将不同的进程,进程中 的不同片断进行调度发挥出最大的效能。 v h l c a n 和c o s y m a 都使用了简化的计算模型来使问题简单化。他们都假设系统 执行是单线程的,在专用芯片运行的时候处理器处于忙等待状态。这样,设计者 就能通过系统进程执行的顺序知道系统的执行时间。 1 1 3 2 走向成熟 软硬件协同设计在c o d e s 和c a s h e 工作组成立后有了很快的发展。在接下 来的几年里,研究人员攻克了其中很多问题,使得协同设计的方法能够更广泛的 8 重庆邮电大学硕士论文第一章软硬件协同设计与嵌入式系统 被应用。 早期也有研究涉足于软硬件协同模拟( h a r d w a r es o f 时a r ec o s i m u l a t i o n ) ,并 且很快研究人员发现,实质上它也是软硬件协同设计方法学的一部分。这方面的 挑战在于是否能够在多项指标上进行综合的系统模拟。在这种模拟中,设计者能 够通过对系统设计细节的改变来达到对系统模拟性能的精确调整。 关于软件方面的最坏情况执行时间问题( n l ew o r s t c a s ee x e c u t i o nt i m e p r o b l e m ) 在协同设计概念得到更多认同以后得到了更多的注意。后来研究人员开 发出的隐性路径分析算法比前述的路径列举算法更为高效,接着该算法被扩展以 用来对指令缓存的影响建模。 另外一些研究人员将注意力重新转回系统性能问题方面,采用为实时系统开 发的模型作为部分解决方案。单纯的速率调度( r a t e - m o n o t o l l i cs c h e d u l i n g ) 作为 一种分析在单一处理器上多进程系统性能的算法,也得到了重视。多处理器性能 算法被用于分析应用单纯速率调度作为处理器调度策略的处理器网络的性能。与 此同时,硬件代价评估的研究也得到了相当的重视。 当软硬件协同设计技术成熟以后,研究人员开始对将此项方法学应用于嵌入 式领域进行探索。c 语言有被广泛使用的优势,然而用它来描述并发系统效果却不 是很理想。在控制领域,m c h i o d a 和他的同事们建立e s t e r e l 来开发有限状态协同 设计模型,以此来描述并发的交互式进程。另一方面,同步数据流模型被逐步发 展来描述多速率数据计算,例如信号处理。 还有研究人员致力于开发能够用于更广泛体系结构的软硬件协同设计模型。 追求低功耗成为9 0 年代后系统设计的主要问题之一,由此也激励了更多的研 究专注于系统低功耗方面的综合分析。 体系化的方法成熟之后,研究转向了系统应用方向,其中之一便是界面生成。 对于界面生成的一个挑战是怎么综合分析在嵌入式系统上运行的软件,因为 软件结构会极大地影响系统的性能和能耗表现。例如,很多工作都致力于综合分 析系统设计有限状态模型。在数据处理方面,b h a t t a c h a r ) ,y a 和他的同事发表了一 些由数据流模型产生高效代码的方法。 q 重庆邮电人学硕士论文 第一章软硬件协同设计与嵌入式系统 1 1 3 3 成为主流 得益于可重置计算的发展,软硬件分割变得切实可行。一些制造厂商发布了 将一个和多个处理器与可编程逻辑电路结构组合成的逻辑门电路平台( f p g a ) 。 f p g a 平台的产生和软硬件协同综合分析的思想一拍即合:这类芯片的内部结构十 分符合软硬件分割概念的需要。然而,在协同综合分析成为f p g a 平台设计的主 要步骤之前,研究人员还需要解决一些问题。 最大限度的利用f p g a 平台要求能够鉴别出是否将应用程序很好的映射到芯 片上。在处理器专用芯片结构的一个中心问题就是处理器和专用芯片的通讯问题。 譬如物理层通讯延迟、系统同步延迟等,只用几个延迟就能让使用专用芯片获得 的性能提升变得毫无意义。一个使用这种结构的应用方案,必须使其相应操作由 处理器转移到专用芯片中去的通讯消耗降至最低,这样才能让系统将不同的工作 相互交织起来交给处理器来完成。 在每个系统的f p g a 侧和处理器侧,也需要研究者开发出可行的办法能简单 的产生各自的通讯接口。在处理器侧,要求驱动程序能够将软件操作快速浏览并 交代给相应的硬件部分。在f p g a 侧,连接系统总线的接口必需能够建立。这样 处理器和f p g a 之间便能简单的通过共享内存实现通讯。 然而时至今日,仍然有很多争论,诸如什么才是描述软硬件分割算法最好的 语言。软件语言例如c 侧重于在软件应用,而硬件语言例如v e r i l o g 侧重于硬件电 路。一种选择则是用两种语言来描述系统:用一种硬件描述语言来描述出显而易 见的系统硬件功能,同时用软件语言来编写剩余的系统功能。结果便是,当要对 系统分割进行改动时,只需要“翻译”其中的小部分。 片上系统( s y s t e mo nc 1 1 i p ) 也是软硬件协同设计方法运用的重要领域。因为 片上系统没有固定的体系结构,片上系统的协同综合分析需要多种算法来对片上 系统的体系结构进行分析评估。片上系统是基于i p 的,所以设计者能使用处理器、 预定义特殊用途硬件逻辑、甚至f p g a 作为其组件。片上系统的协同综合分析涉 及定义在不需要设计人员直接编写模块的情况下,大规模使用i p 模块能够发挥出 l o 一一一 重庆邮电大学硕士论文第一章软硬件协同设计与嵌入式系统 多大的硬件性能。设计领域同样很广泛而且不规则,这使得探索这片领域变得很 有挑战性。 在最近几年里,基于平台设计( p l a t f 0 肌- b a s e dd e s i g n ) 成为了比较流行的片上 芯片设计方法。平台是指预先定义的,设计者可以用来对特定范围应用直接建立 片上系统的体系结构。f p g a 平台便是其中的一个例子,但是平台也可以是任何由 处理器、特定逻辑电路、或者互连接硬件电路构成的体系结构。 在很多情况下,基于平台的设计方法反而是软硬件协同设计的对立面,因为 设计人员就仅仅基于平台设计系统而不做任何改动。这样的设计方式没有任何对 系统的综合考虑与平衡,也就偏离了协同设计的基本出发点。然而,平台必须在 某种程度上适应相应的应用条件和限制。协同设计便是一种理想的方法来拓展其 设计空间和开发适合的平台结构。 1 1 4 软硬件协同设计发展方向 现在的嵌入式系统和十几年前比起来更为先进精密。很多嵌入式系统诸如汽 车引擎控制器,或者个人电子助手等,都用到了3 2 位的处理器。例如,很典型的, 一台激光打印机就会用到多个运算器件;高端照相机大多拥有一个中央处理器和 多个运算器件;一台数字机顶盒也会用到多个运算器。p e r 一一种复杂的现代嵌 入式系统就用到了两个协同运算器,一个3 2 位m i p s 中央处理器,一个超长字 处理器嘶m e d i a ,另加三条系统总线和多种特殊用途功能单元。 也有一些长期存在的问题。研究人员们仍旧在定义和精炼出某种计算模型, 使其能够很好的描述软硬件系统。由于需要在不同操作环境下,不同的应用情境 下都能应付自如,系统层面的性能分析作为一个复杂问题至今没能解决。开发演 化出各种能够帮助设计者用于拓展设计空间的算法,也始终是协同设计的研究人 员进行的工作之一。 由于存储系统的设计方案能够极大的影响系统的性能以及能量消耗,存储系 统始终是研究的主题之一。再深入理解存储系统方面,缓存模型的研究显得极其 重要。更好的缓存模型能够更容易推测出软件或者硬件的改动将在多大程度上影 1 1 重庆邮电大学硕士论文第一章软硬件协同设计与嵌入式系统 响系统的性能及其功耗。 软件优化能够让设计人员在既有缓存的基础上取得最优的软件应用。得益于 缓存综合分析( c a c h es y n t h e s i s ) ,设计人员对特定应用能够选择与其相适应的缓存 设置。很多研究者也在开始思考有没有能够代替传统缓存的方案。举个例子,便 签簿存储( t h es c r a t c h p a dm e m o 巧) 就是软件维护一小块自己的快速存储单元从而 避免访问整个内存系统所需要的工作负担。 不断涌现的问题有时也会给业界的研究人员提出新的研究热点。除了作为理 论研究之外,研究建立新的建模语言就是其中之一。例如,s y s t e m c 和s p e c c 作 为系统层面的设计语言被开发出来。设计一个这类语言需要考虑计算模型,系统 设计方法,模拟办法,语言的被接受度等很多因素。 除此之外,研究人员们正热衷于找出适用于嵌入式系统中涌现来并逐渐被人 们接受的一些新体系结构的分析方法。举个例子,超长字处理器( v l i wp r o c e s s o r s ) 已经在信号处理和网络应用中逐步普及。这驱使着研究者们去开发能让超长字处 理器结构更高效的性能分析工具和代码产生工具。f p g a 体系作为另外一个例子, 也需要人们做一些工作才能让它更方便的被应用于嵌入式系统的开发。 系统层面的能源管理与软硬件协同设计是十分契合的,因为设计人员能够根 据实际应用的特点去优化管理策略并且调整软件和硬件设计。在能源管理成为数 字电路设计首要目标的前提下,我们可能会看见越来越多的成果在在方面涌现。 另外还有一个受到重视的问题既是,协同设计怎么去评估片上网络( n e 帆o r k s o nc h i p s ) 的效果。一方面,片上网络有着更结构化的体系,更容易分析。另一方 面,片上网络的自身复杂性虽然不难分析,但是将其与其他体系结构混合使用时 怎么去评估确不是很容易。 随着越来越多的嵌入式系统连接到互联网,设计者需要考虑新的工作效率, 同时也要对软硬件的设计指标进行调整。开发着眼于能进行网络连接功能的综合 分析技术将很可能效果更好。网络连接应用也将同时催生对根据环境变化自行调 整的自组织系统( s e l f - o 昭a i l i z i n gs y s t e m s ) 的需求。 最后,随着超大规模集成电路变得越来越复杂,协同设计的应用也将拓展到 1 2 一一 重庆邮电大学硕士论文 第一章软硬件协同设计与嵌入式系统 由很多片上芯片子系统组成的大规模系统上去。很多嵌入式应用案例需要将系统 在物理上分布到不同的位置上去,以期能更快的应对实时变化。例如汽车电子就 是分布式嵌入系统的一个最好应用平台。设计者必须将所有物理上分布的部分作 为一个整体来考虑,并保证最终能够满足实际应用的性能需求。 软硬件协同设计需要对多种性能指标进行综合调整。计算机体系结构能够给出 关于单处理器或者多处理器性能表现和能量管理方面的信息,实时系统原理能够 帮助我们找出嵌入式系统在最恶劣情况下的工作效率,计算机辅助设计的研究能 够协助人们评估系统的硬件代价并拓展系统地设计空间。各方面的知识组合起来 将使软硬件协同设计由一个概念变为一门学科。集成电路变得越复杂,协同设计 的技术挑战就会越多,这门不断变化的学科将还有很长的路要走。 1 2 软硬件协同设计的主要步骤和设计流程 软硬件协同设计的思想在上世纪9 0 年代产生之后,历经演变和发展,逐渐走 向规范。虽然它的中心思想是,通过对软件和硬件部分的同时设计,综合考虑权 衡,优化各项性能指标,以期发挥出系统的最大性能,但是具体实现的操作方法 却各有不同。这里,我们先来看一看对协同设计流程的经典总结。 1 2 1 软硬件协同设计的主要步骤 总体上来说,可以概括为以下一些步骤 1 】: 第一步、高层系统描述一在系统层面,通过抽象性的语言从总体上描述系统。 第二步、高层描述转换一将用抽象语言描述的系统,转化为可以由计算机识别 或编译的高级语言。例如:v e r i l o gh d l 、e s t e r c l 、c 语言、s t a t e c h a r t 等等。这种 转换理想情况下应该由计算机辅助工具来完成,设计人员只需要对结果进行一些 适当的修改调整即可。然而实际上,很多协同设计方法或开发环境并没有达到如 此高度。很多情况下这一步需要设计人员认为为完成,并且这才是实际意义上设 计系统地第一步。 第三步、协同模拟一在虚拟情况下,将整个系统作为一个整体,不去考虑其软 1 3 重庆邮电大学硕士论文第一章软硬件协同设计与嵌入式系统 硬件实际划分的情况下,模拟其运行状况。这一步现在正是研究的重点。根据前 述章节的介绍,我们知道,协同设计方法现在正被是用到越来越多的领域中去。 而对一个系统开发环境来说,在不同应用领域下,需要找到一个统一的方法对所 有的应用项目都适用。 第四步、系统验证将第二步所得到的高级语言系统描述转化为经典的有限状 态机f s m ( f i n i t es t a t em a c h i n e ) ,这样这种容易被计算机处理和识别的结构将被 验证模块直接使用。当然,系统验证的方法多种多样,并且视所开发的系统类型 不

温馨提示

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

评论

0/150

提交评论