




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于s y s t e m c 的硬件,软件协同设计虚拟机 摘要 在传统的系统设计流中,往往要在设计的末期即在进行软件和硬件整合时才 能对整个目标系统的性能进行验证,许多重要的性质如性能、成本、实时性等很 大程度上在设计的早期决定的,在传统的设计流程中,设计者要到设计的最后阶 段进行系统整合和验证时才能发现,这时再返回设计的开始阶段修改设计,必然 会大大延长了设计周期,增加了设计成本,而对于复杂的嵌入式系统,这是灾难 性的。这就是所谓问题的产生在设计的初期,但问题的发现要到设计的未期。 为了解决这问题,本文在首先简要地介绍了嵌入式系统的特点以及系统级 设计技术的发展,并大致地对硬件软件协同设计技术进行了概括,在此基础上, 提出使用协同设计虚拟机作为系统设计、综合的研究对象,以实现在真正的硬件 平台未实现之前,就可以对软硬件进行协同验证,以发现设计瓶颈。 在对硬件软件协同综合的过程的详细分析的基础上,本文将协同设计虚拟机 划分为三层:系统层次、宏观体系结构层次、微观体系结构层次。并在文中使用 一个简单的f i f o 系统作为实例,详细地剖析了系统层虚拟机、宏观体系结构层 次虚拟机的构造技术。 在今后的工作中,我们希望在此基础上能够形成一个虚拟机构造与使用的通 用和完备的方法论和工具集。 关键字: s y s t e m c 、硬件软件协同设计、系统规格描述、虚拟机、系统级设计、宏观 体系结构、微观体系结构 第2 页共4 6 页 基于s y s t e m c 的硬件软件协同设计虚拟机 a b s t r a c t t h ep r o b l e mo ft r a d i t i o n a ld e s i g nf l o wi st h a tt h ev a l i d a t i o np r o c e d u r e a p p l i e st o c o m p l e t e ds y s t e ma tt h ee n do ft h ed e s i g nf l o w , b u tt h ei m p o r t a n tc h a r a c t e r i s t i c so f t h es y s t e m - - i t sp e r f o r m a n c ea n di t s c o s 卜一a r et oal a r g ee x t e n td e t e r m i n e db ye a r l y d e s i g nd e c i s i o n s i fa na r c h i t e c t u r ei ss e l e c t e dw h i c hi sn o tp o w e r f u le n o u g h ,t h i si s n o t l i k e l yt ob ef o u n do u tu n t i lt h ef i n a lv a l i d a t i o np h a s e ,w h e nt h ed e s i g n e ra t t e m p t s t op r o v et h a tt h ed e a d l i n e sa r er e a c h e d t h i s m i g h t m e a nt h a ts o m eo f t h ef u n d a m e n t a l d e s i g n d e c i s i o n sh a v et ob e r e v i s e d ,l e a d i n g t os e r i o u s d e l a y s a n dah i g h e r d e v e l o p m e n t c o s t i no t h e r w o r d s ,p r o b l e m s a r ec r e a t e d e a r l ya n d d i s c o v e r e dl a t e a f t e rt h ei n t r o d u c t i o no ft h ec h a r a c t e r i s t i c so fe m b e d d e d s y s t e m a n dt h e d e v e l o p m e n to fs y s t e m l e v e ld e s i g n ,w ep r e s e n tac o d e s i g nv i r t u a lm a c h i n ea st h e o b j e c ti nt h ed e s i g na n ds y n t h e s i st oe a r l yd e s i g ne x p l o r a t i o nf o re m b e d d e ds y s t e m s b e f o r et h ef i n a li m p l e m e n t a t i o n i nt h i sp a p e r ,w ed i v i d e dt h ec o - d e s i g nv i r t u a lm a c h i n ei n t ot h r e el e v e l :s y s t e m l e v e lv i r t u a lm a c h i n e ,m a c r o a r c h i t e c t u r ev i r t u a l m a c h i n e ,a n dm i c r o a r c h i t e c t u r e v i r t u a lm a c h i n eb a s e do nt h ea n a l y s i so f h a r d w a r e s o f t w a r ec o s y n t h e s i s i nt h ee n do f t h i sp a p e r ,w eu s ea s i m p l ef i f os y s t e m a se x a m p l et od e m o n s t r a t et h e t e c h n o l o g yo f c o n s t r u c t i o no f s y s t e mv i r t u a lm a c h i n ea n d m i c r o - a r c h i t e c t u r ev i r t u a lm a c h i n e i nt h ef u t u r e ,w ew i l lp r e s e n tag e n e t i ca n dc o m p l e t e dm e t h o d o l o g ya n dt o o l k i t t h a th e l p su s e r sc r e a t ea n d a n a l y s i st h ec o d e s i g n v i r t u a lm a c h i n eb a s e do nt h i sp a p e r k e y w o r d : s y s t e m c ,h a r d w a r e s o f t w a r ec o d e s i g n ,s y s t e ms p e c i f i c a t i o n ,v i r t u a lm a c h i n e , s y s t e m l e v e ld e s i g n ,m a c r o a r c h i t e c t u r e ,m i c r o a r c h i t e c t u r e 第3 页共4 6 页 基于s y s t e m c 的硬件,软件协同设计虚拟机 第一章、引言 1 1 嵌入式系统应用及特点 与通用的计算系统如p c 、工作站、服务器以及超级计算机相比,嵌入式系 统往往不为许多人所认识,其实在我们的生活中嵌入式系统无处不在,尤其是随 着后p c 时代的到来,嵌入式系统的应用会越来越普遍,从微波炉、移动电话、 电子游艺机、汽车、p d a 、机顶盒、智能家电到工业流程控制、航天飞机、g p s 、 星载计算机系统等等。嵌入式系统是任意包含一个可编程计算机的设备,但这个 设备不是作为通用计算机而设计的。与通用的计算系统相比,嵌入式系统有许多 自身的特点,它通常需要考虑一些除了功能以外的约束条件,称为非功能性约束 1 2 ,主要有以下几个方面: 经常在极端的环境下运行,嵌入式系统也许运行在飞行器上、两极的冰 天雪地中、烈日下的汽车里,严酷的环境一般意味着更高的温度和湿度,而军用 设备更是必须达到一长串环境要求指标,并且还要有翔实的测试数据来进行证 明,这就要求处理器必须与外界隔绝,因而要把它们密封在硅胶涂层下,这将严 重削弱了散热能力,使得处理器的类型和速度成为制约因素。 一般专用于特定的任务,是一个专用计算系统,嵌入式系统的微处理器 也称为专用微处理器,它专用于某个特定的任务,或者是很少几个任务,如果要 更改其任务,就要废弃整个系统并重新进行设计,例如用于心肌震颤消除器上的 处理器用不着运行电子表格或者是字处理软件的。 通常极其关注成本,在大多数情况下需要注意的是整个系统的成本,而 不单单是处理器的成本。与通用的计算系统不同,嵌入式系统对性价比的要求十 分严格,如果成本超出了预算,可能就需要对嵌入式系统的性能和功能要重新进 行定位。 对开发周期和上市时间极其敏感,工程师倾向于低估上市时间的重要 性,如果设计者不能以足够快地速度向市场推出新产品以迎接市场的挑战,会对 产品造成很大的影响。 需要满足一定的实时约束,实时特性是嵌入式系统区别于其它计算系统 的主要特性之一,实时性又可以分为硬实时和软实时两种 1 2 : 硬实时、又称为时间关键性约束,如果任务是硬实时的,它必须在某个时间 范围内完成,否则由其控制的功能就会失效,引发系统灾难。例如飞机的控制系 统,一次超过时限的后果可能是灾难性的。 软实时、又称为时间敏感性约束,如果任务是时间软实时的,偶尔的超过时 限或者微小的超过时限是允许的,软实时任务能以平和得多的方式处理超时引起 第4 页共4 6 页 基于s y 吼e m c 的硬件软件协同设计虚拟机 的后果。例如一台打印机平均处理周期从45 m s 延长到6 3 m s ,后果不过是打印 速度从每分钟3 页下降到每分钟2 页。 嵌入式计算系统还需要满足功耗、尺寸、重量、安全性等功能约束。许 多嵌入式系统在工作环境中没有充足的电能供应,像p d a 、手机等,只能凭电 池供电,整个系统的设计往往有严格的功耗预算,有些系统中的处理器必须在大 部分时问处于“睡眠模式”,只有在定时器发出脉冲时它才会“醒来”,这种功耗 约束会影响到系统设计决策的方方面面。另外,系统的是否安全可靠、尺寸大小 以及重量等都可成以设计必须满足的约束条件。 这些非功能性约束决定了嵌入式系统的设计方法与一般的通用计算系统设 计存在着很大的不同。 1 2 异质系统( h e t e r o g e n e o u ss y s t e m s ) 近二十年来,半导体制造技术的迅猛发展验证了摩尔定律,即芯片中半导 体晶体管数量的集成度每隔两年就会提高一倍,今天,0 1 3 微米技术代表了主流 i c 的制造能力,0 0 8 微米技术也已出现,每次电路尺寸的“缩小”意味着更大 的电路密度,其数量大概与尺寸之比的平方呈反比增长,减小几何尺寸意味着更 快的速度,这是由于半导体之间排列得更紧密了,并且更小的设备能比大一些设 备更快地进行状态切换。随着芯片尺寸的缩小,放置a s i c 芯片的晶片尺寸却在 增长,由于制造i c 的大部分成本在处理晶片的过程,有了更大的晶片,更多的 芯片就能从晶片上切割下来,这样每个芯片成本就会更低,因此,技术正快速地 改变着自身、器件正变得越来越便宜,现在,许多在过去是非常昂贵的复杂硬件 都可以廉价的获取,像由s g i 公司和f l o a t i n gp o i n ts y s t e m s 这样的公司制造的 插入到d e cv a x 或d a t ag e n e r a ln o v a 计算机中执行硬件图像加速功能的硬件 设备非常昂贵且复杂,而现在这样的技术已经使用在每一台桌面p c 中了。 因此现在的嵌入式系统已变得越来越复杂,使用一个微处理器已经是十分 普遍,除此而外,还可能包括第二个甚至第三个微处理器( u p 核) 、d s p 核、标 准接口逻辑、用户逻辑、内存或者第三方的i p 核( a i s c ) 等许多模块,这样的 系统称为异质系统 1 4 ,如图1 1 所示。 现在的嵌入式系统通常是一个异质系统,这是由以下几个方面因素决定的: 性能,嵌入式系统设计是要在满足实时约束的条件下实现最优的性能, 在许多强实时的应用中,可能需要在非常短的时限内完成大量的计算,这不得不 引入硬件加速器( a s i c ) 来实现,通过硬件并发性来满足计算需求。 成本,制造a s i c 或者使用高性能的微处理器都是非常昂贵的,对于嵌入 式系统而言,在满足时限要求的前提下任何多余的性能都是不必要的,另一方面, 满足要求的微处理器中很可能含有一些嵌入式系统不需要的性能,因此开发只含 第5 页,共4 6 页 基于s y s t e m c 的硬件软件协同设计虚拟机 图1 1 典型的异质系统 有系统需要的性能的a s i c 核变得十分经济可行。 灵活性,如果系统在运行中需要修改某个部分的行为,或者在开发某个 系统的系列产品,那么允许尽可能方便地修改系统就十分重要,这样的功能适合 用软件来实现。 功耗,目前的微处理器的时钟频率越来越高,时钟频率是导致系统功耗 上升的重要因素,因此在功耗要求严格的情况下,需要使用较低时钟频率的a s i c 来代替微处理器,而通过提高硬件的并发度来达到性能。 重量,像移动电话或航天飞机等系统对重量有特殊的要求,这时设计者 希望用单个芯片实现尽可能多的功能,以减少板卡和外部总线的数目。 容错性:对于系统可靠性要求高的嵌入式系统需要使用不同的技术来实 现相同的功能,以实现系统的冗余,增加系统的可靠性。 因此,本文的研究涉及的嵌入式系统都是包含有微处理器和a s i c 核、内存 等模块的异质系统。把整个异质系统整合到一块电路板上来实现的系统称为单板 系统,如前所述,在i c 制造技术上的先进技术使设计人员能建造设计更复杂、 速度更快的设备,技术的发展己允许我们将整个异质的嵌入式系统整合到单个的 芯片上来实现,这样的芯片称为系统芯片( s o cs y s t e mo nc h i p ) 。相比单板系 统,系统芯片更可靠,性能更强,制造成本也更低,另一方面,系统芯片的设计 制造更加复杂。 1 3 系统级设计技术的发展 如上所述,技术的发展为嵌入式计算系统带来许多变化: 第6 页共4 6 页 基于s y s t e m c 的硬件软件协同设计虚拟机 嵌入式计算系统变得越来越复杂,随着微处理器能力的增强,嵌入式软件 在系统中所占的比例越来越大,在许多设计中软件设计的复杂度已超过了硬件, 将来的嵌入式软件部分可能会需要成百上千个人年来完成。 随着系统复杂度的提高,硬件和软件的重用变得越来越重要,使用基于 构件的技术来设计系统,可以大大的提高设计的可靠性,缩短开发周期,降低开 发成本。 对设计的可靠性要求越来越高,如果到了设计的未期进行协同验证时才 发现系统的算法错误,或者设计未能满足某种约束条件,那么需要将整个设计推 倒重来,对于一个复杂的嵌入式系统这无疑是灾难性的。 这些变化使得原来的嵌入式系统的设计技术已远远不能满足需要,传统的嵌 入式计算系统设计方法将硬件和软件分为两个独立的部分,如图1 2 ( a ) 1 4 所 示,由硬件工程师和软件工程师按照拟定的设计流程分别完成,硬件设计和软件 设计被分裂为两个不同的设计过程,软件设计一般使用c ,c + + 语言和交叉编译技 术进行开发,而硬件设计则使用某种硬件描述性语言如v e r i l o g 、v h d l 进行开 发。必须等到硬件平台开发完成后才可以进行软件测试和软硬件协同性的验证。 因此,设计中的错误和缺陷往往要到开发的未期才能发现,这将大大增加了开发 成本,延长了开发周期。同时,由于硬件和软件的设计过程是分裂的,无法做到 对软件和硬件进行统一的权衡,以得到优化的硬件引擎。这种设计方法只能改善 硬件,软件各自的性能,而有限的设计空间不可能对系统做出较好的性能综合优 化。 系统级设计技术正越来越流行,从系统级进行设计,使用硬件软件协同设计 技术,在设计的初期发现整个系统的性能瓶颈和设计错误,缩短上市时间,同时 可以方便地进行软硬件的复用。从系统级进行设计的方法必须要能够做到: 在整个系统成片之前便可以测试嵌入式软件。 制定有效的测试基准,用于确保在模拟真实的条件下整个目标系统的功 能正确性。 确保在高层可以验证算法使用是否无误,是否满足设计规范等,以免将 错误带入实现的细节中。 能够方便有效地进行不同的设计小组,如软件、硬件设计小组之问的交 流。 从理论上来说,每一个应用系统,都存在一个适合于该系统的硬件、软件功 能的最佳组合,如何从应用系统需求出发,依据一定的指导原则和分配算法对硬 件、软件功能进行分析及合理的划分,从而使系统的整体性能、运行时间、电耗、 存储容量等达到最佳状态,已成为硬件软件协同设计的重要研究内容之一。 第7 页共4 6 页 基于s y s t e m c 的硬件,软件协同设计虚拟机 图1 2( a ) 传统的设计流( b ) 硬件做件协同设计流 典型的硬件软件协同设计流程如图( b ) ,首先应用独立于任何硬件和软件的 功能性规格说明方法对系统进行描述,采用的方法如有限状态机( f s m ) ,统一的 规格描述语言或其它基于图形的表示工具,其作用是以硬件软件进行统一的表 示,便于功能的划分和综合;接着,在些基础上对硬件软件进行划分,这种划 分可以是手动的,也可以是自动的,划分的实质是对硬件软件功能模块的分配, 但这种功能分配不是随意的,而是从系统功能要求和限制条件出发,依据算法进 行的,完成硬件软件功能划分之后,需要对划分结果作出评估,方法之一是性 能评估,另一种方法是对硬件软件综合之后的系统依据指令级评价参数做出评 估,如果评估结果不满足要求,说明划分方案选择不合理,需要重新划分软件硬 件模块,以上过程不断重复直到系统获得一个满意的硬件软件实现为止。 1 4 本文的工作 相对于许多其它的软硬件协同设计方法的研究工作,本文的研究工作目的并 不是要提供一个整套的自动化设计方法,恰恰相反,我们认为许多由设计者根据 自身经验和知识作出的判断往往是无法替代的,过度地自动化反而会导致系统的 低效,甚至于偏离最初的设计目标。设计者在设计过程中所作出的许多判断是无 法在优化工具中定性地说明的,例如,设计者可能会根据自己的经验认为设计的 某一个部分会在将来的设计中会有所改变,因而决定牺牲某些性能暂时决定此部 分的设计由软件来实现,类似这样的行为很难用一种定性或者定量的形式在设计 的初期来描述的。同样,关于微处理器的选择也需要设计者的经验。 虽然完全依靠自动化工具是不现实的,但是不能否定自动化设计在e d a 设 第8 页,共4 6 页 基于s y s t e m c 的硬件软件协同设计虚拟机 计中的重要作用。系统设计者依靠自动化设计可以在设计初期判断出是否存在更 加有效的设计方案,同时从自动化工具产生的设计出发,设计者可以得到一个相 对满意的解决方案。 本文的研究旨在提供一个方法,帮助系统设计者在系统的硬件平台还没有真 正实现之前便可以验证系统的各种设计约束。 在传统的系统设计流中,往往要在设计的未期即在进行软件和硬件整合时才 能对整个目标系统的性能进行验证,但许多重要的性质如性能、成本、实时性等 很大程度上在设计的早期决定的,例如硬件体系结构的选择,涉及到划分为几个 处理单元,功能如何在处理单元上进行分配等,如果在设计初期所作出选择无法 满足实时系统的实时约束,在传统的设计流程中,设计者要到设计的最后阶段进 行系统整合和验证时才能发现,这时再返回设计的开始阶段修改设计,必然会大 大延长了设计周期,增加了设计成本,而对于复杂的嵌入式系统,这是灾难性的。 这就是所谓问题的产生在设计的初期,但问题的发现要到设计的未期。 以上目标是通过硬件软件协同设计虚拟机来实现的。在总结了现有的硬件, 软件协同设计技术的基础上,本文提出硬件软件协同设计虚拟机的概念,通过 构件技术构建出协同设计虚拟机,用于在不同的设计层次描述系统,使得设计者 可以在硬件平台没有真正实现之前就可以进行实时眭、成本等性能分析。与以往 的研究不同,本文的设计流中采用s y s t e m c 作为统一的硬件、软件描述的系统 级语言,各个层次的虚拟机都是用s y s t e m c 来实现的,这就避免了像以往的设 计方法中那样依靠多种复杂的工具来在各个设计层次之间整合c c + + 语言和 v h d l 代码流。 第9 页,共4 6 页 基于s y s t e m c 的硬件,软件协j 可设计虚拟机 第二章、硬件软件协同设计技术 2 1 概述 如前所述,与传统的系统的设计流相比,使用硬件软件协同设计技术进行嵌 入式系统设计的好处主要体现在以下几个方面: 可以方便地进行模块复用,提高设计效率和可靠性 在硬件平台实现之前就可以对整个系统功能进行功能验证和性能评估 在系统级进行设计空间的探索,寻找在满足设计约束的最优解 硬件软件协同设计技术的主要目标是尽可能将在低层所做的决策和分析移 到高层上来做。为此,硬件软件协同设计技术必须要考虑如何封装i p 核( 知识 产权数字电路) 和嵌入式软件系统的模块以实现系统层次的复用,如何在设计早 期分析和验证由设计未期的实现所决定的系统性能。硬件软件协同设计技术主 要组成包括 1 2 : 规格说明:对整个异质系统进行独立于实现的抽象的功能性规格说明 分析技术:基于高层的功能性规格说明对由系统的最终实现确定的性能指 标进行早期分析和估计,以便于系统设计者在不同的实现方案之间进行比较和取 舍。 综合工具:理想的综合工具是全自动化的,它从系统抽象的高层设计出发, 不断地向设计中增加与实现相关的细节,取舍的标准是满足各种设计约束条件, 通过这种分层次地不断的细化的方式最终实现目标系统。通常这样的综合过程是 基于某种优化算法,以迭代地方式进行的。 验证技术:尽可能早地对系统的功能和性能指标进行验证,以尽早的发现 设计中的错误。这种验证需要在设计的各个层次上进行的,验证方式有形式验证、 模拟验证和仿真验证。 形式验证是通过形式化的方法从理论上来证明系统的正确性,这种方式得到 的结论是完备的,这种验证通常是在系统层进行的。 模拟验证是通过输入一些测试基准来验证系统的正确性,在大多数情况下, 只能模拟部分的测试基准,因此,模拟验证只能保证系统在大多数情况下是正确 的。模拟验证可以在设计的各个层次上进行。 仿真验证是为了加速系统模拟验证的速度,仿真系统就是将目标系统中的用 a s i c 部分映射到可编程器件如f p g a 上来实现,将它与测试板上的处理器耦合, 因此仿真系统提供了最接近于目标系统的真实原型。 硬件软件协同设计技术的关键是将系统的功能规格描述尽可能地与硬件体 系结构和硬件软件划分独立开来,但实际上明确地将规格描述和实现划分开来通 第1 0 页共4 6 页 基于s y s t e m c 的硬件,软件协同设计虚拟机 常是不可能的。例如考察一个由多个并发的任务组成的一个系统,可以用多种实 现方法来实现这个系统,我们研究其中一个性能参数一并发任务的数量。如果用 a s i c 来实现,由于硬件电路支持真正意义上的并行,因此系统倾向于使用大量 的小型并发任务来实现系统:但是如果使用软件来实现,由于每次在微处理器上 进行任务切换时存在着额外的开销,因此需要尽可能地减少并发任务的数量。很 显然。在这里系统的功能描述依赖于系统的不同部分采用的不同的实现技术,因 此在实际操作中,系统的功能描述、体系结构选择和硬件软件划分可能是交替进 行、相互影响的。 2 2 系统规格描述和验证 2 2 1 计算模型 在开始进行硬件软件协同设计时,首先需要设计者对要实现的功能进行规 格描述( s y s t e ms p e c i f i c a t i o n ) ,这种系统的规格描述应该是与实现与关的,既不 倾向于硬件实现,又不倾向于软件实现。 一般目标系统被认为由一堆简单一些的子系统或片段按照一定的规则组合 而成,这种方法称作模型法,用于嵌入式系统的系统层次的规格描述的计算模型 应具有以下几点特征 3 : 形式化,以便于对系统的功能进行分析和验证 完备化,能够描述系统设计中所需的各种性能,如l - 1 节中所述,在系统 设计中,不仅需要对系统的功能性进行描述,还需要描述许多非功能性的约束, 这些复杂而琐碎的信息在进行系统规格描述时必须能够表达出来。 可理解性,必须方便系统设计者阅读、理解和修改。 层次化和模块化,对于较为复杂的系统,离不开层次化和模块化这两种建 模方式。 抽象化,以保证功能描述与具体实现无关。 模型是由对象及组合规则构成的形式化系统,用于表达系统的特性,通常设 计者使用一些特定的模型将系统分解为小片段,然后再用某一特定的语言表达这 些小片段,一种语言可以表达多个模型,一个模型也可以用多种语言来表达。设 计者在设计过程的不同阶段可以选用不同的计算模型。在硬软件协同设计领域存 在着大量的各种各样的计算模型,以至于对于某一特定的系统设计,总是很难断 定哪一种是最适合的计算模型。 g a j s k i 3 将计算模型归纳为以下五类: ( 1 ) 面向状态的模型:例如p e t r i 网、有限状态机、层次化并发有限状态机, 它们将系统描述由为一组状态以及状态之间的迁移组成,这些状态迁移反映了外 第1 i 页共4 6 页 基于s y s t c m c 的硬件软件协同设计虚拟机 部环境对系统的刺激,所以这类模型适合于描述面向控制领域的嵌入式系统。 ( 2 ) 面向活动的模型:例发数据流图( d f g ) 、控制流图( c f g ) ,将系统描述为 由一组与数据依赖或者控制依赖相关的活动组成,相比面向状态的模型,它们不 需要内部状态,所以这类模型适合于描述面向数据流领域的嵌入式系统,例如数 字信号处理器。 ( 3 ) 面向结构的模型:此类模型通常用于后期设计阶段,与描述系统功能的 面向状念和面向活动的模型相比,面向结松的模型用于描述物理模块及其相互连 接,例如系统块图、寄存器传送级网表、门级网表。一般面向结构的模型都是层 次化的,一个系统模块可以包含子模块。 ( 4 ) 面向数据的模型:此类模型提供了一个描述系统的不同角度,它定义了 系统中消费的数据及其关系,适合于描述信息系统,例如实体关系图。 ( 5 ) 异构系统:上述四种模型的组合,如控制数据流图。 2 2 2 系统级设计语言 在实际的设计中,对嵌入式系统的功能描述存在两种方法:第一种称为均一 化建模,即使用单个语言进行系统描述;第二种称为异构化建模,对硬件部份和 软件部分使用不同的描述语言。采用异构化建模在系统层次就必须要考虑硬件软 件的划分,违背了系统层设计的初衷,因而采用这种方式的硬软件协同系统较少, 大多数系统还是采用单一的语言进行系统级设计。 近年来,在硬件软件协同设计领域出现了大量的系统级语言,如l o t o s 、s d l 、 e s t e r e 、s t a e c h a r t s 、s p e c c 、v h d l 、v e r i l o g 、s i l a g e 等等,他们都有各 自的优点,分别应用在不同的领域,到目前为止,尚没有一个单个的语言能够支 持所有应用 ,在选择系统级设计语言时,除了需要考虑系统的应用领域以外, 还应该考虑以下几个方面 2 : ( 1 ) 语言的表达能力:表达能力强的语言通常能够支持多种计算模型,一种语 言的表达能力主要体现在并发、通讯、同步、数据描述、时间模型等方面。 ( 2 ) 语言的分析能力:分析能力与语言的形式语义有很强的联系,有一些语言 具有形式语义,在这种情况下,就可以使用数学推理的方式来变换、分析、证明 系统描述,对系统的一致性、等价性、死锁等问题可以较方便地进行论证。 ( 3 ) 可用性:包括标准化、可读性和工具支持。 2 3 硬软件划分 得到了理解中的系统规格描述后,下一步的工作便是将这些功能说明映射到 一个实现架构上来,具体地说,就是在保证系统满足各种约束条件的前提下,从 第l2 页共4 6 负 基于s y s t e m c 的硬件,软件协同设计虚拟机 设计的体系结构库中选择适合的系统体系结构模型,将系统的不同功能模块映射 为不同的硬件实现模块或者是软件实现模块,以得到在满足性能和约束的条件下 最优化最经济的实现方案,这就是硬件软件划分工作。这是一个复杂的优化问题。 从另一角度上来说,硬件软件协同设计问题也可归结为系统的功能说明与体系结 构的协同设计。 在硬件软件分区中会面临很多的取舍:为什么我们要选择一个c p u 而不是一 个专门的硬件功能模块来实现,为什么我们不选择更快或最快的c p u ,为什么某 些功能又必须选择硬件来实现,诸如此类的选择繁多而复杂,做出决定需要两方 面的帮助:性能估计与硬件软件划分算法。 性能估计就是对系统的各个模块的实现代价进行预先估测,得到一些定量的 指标,用于定量的分析整个系统的实现代价,以决定划分方案,得到最优解。这 些需要估测的指标种类复杂,不同的应用领域各不相同,主要有软件的内存使用、 软件的执行时间、硬件的面积、执行时间、通讯时间等等。这些指标可以通过工 具进行评测,也可以利用库的信息来获取。 硬件软件分区问题是个最优化的求解问题,这是一个n - p 难题,自1 9 9 3 年 e r n s t 等人把模拟退火算法用开硬软件划分 1 6 并用于c o s y m a 系统以来,人们 在这个问题上已经做了大量的工作,取得了许多成果。目前在划分问题上采用的 方法归纳起来主要有: ( 1 ) 整数线性规划i l p ( i n t e g e rl i n e a rp r o g r a h u n i n g ) 混合整型线性规划 m i l p ( m i x e di n t e g e rl i n e a rp r o g r a m m i n g ) 1 7 1 8 1 9 法。线性规划方法的最 大问题是需要比较长的时间,特别是随着节点数的增加,求得优化解的时间代价 将变得非常大。 ( 2 ) 启发式算法,如模拟退火算法 2 0 2 1 2 2 、遗传算法 2 3 2 4 、禁忌搜索 2 1 。启发式算法在解决硬件软件划分问题上已经取得了很好的效果,但是, 它们存在的问题是最后的优化结果的好坏往往与给定的初始解和迭代过程中设 定的一些系数有关,而这些系数在不同的情况下又不一样。此外,有时很难判定 所得到的解是否是全局最优,寻找最优解所需要的时间长短难以确定。 ( 3 ) 其它一些方法,例如,基于簇的算法 2 5 、动态规划法 2 6 、p a c e 法 2 7 、 双向搜索 2 8 、k e r n i g h a n 1 i n 算法 2 9 、g c l p i b s 算法 3 0 等。 2 4 协同综合实现 根据高层的系统规格描述得到具体的系统实现的过程称为硬件软件协同综 合的过程。如图2 1 中示例 1 5 ,协同综合的过程可以划分为三个层次:系统层 次、宏观体系结构层次、微观体系结构层次。 第1 3 页共4 6 页 基于s y s t e m c 的硬件软件协同设计虚拟机 系统层次 体系结构的定义 硬件软件分废 通讯协议的选样 宏观体系结构 层次 接l _ l 综台 r t o s f | 勺综合 软件h 标化 任务调度 内存体系结构定义 微观体系结构 层次 软忭辅译 碰件部分的r t l 综合 l 一一一一一一苎氅遥塑箩望一一一一j l逻辑互连 l 一一 i 一一一一一一一一一蹩里 兰一一一一一一一一一一l 图2 1 硬件软件协同设计一从规格描述到综合实现 从设计需求出发,经过系统规格描述选,目标系统被描述成一组通过抽象的 协议和信道进行通讯的层次化的模块和进程的集合,处理不同的抽象数据类型的 高层通讯协议和通讯原语被隐含在抽象的信道中,这一层次称为系统层次。在这 一层次,可以进行协同模拟来验证系统的功能是否正确。从这一层次出发,需要 进行的硬件软件协同综合包括:体系结构的选择、通讯协议的选择、硬件软件 划分。 经过第一次综合,设计者可以得到系统的宏观体系结构模型,这个层次的系 统由通过逻辑端口、逻辑线相互连接的模块组成,每一个模块代表最终的体系结 第1 4 页共4 6 史 基于s y s t e m c 的硬件,软件协同设计虚拟机 构中的处理模块,这个处理模块可阻是软件处理模块,例如在d s p 或微控制器 上执行的软件,也可以是一个硬件处理模块,也可以是一个现成的i p ,如内存、 外设、总线控制器等等,逻辑线还是传输固定数据类型的抽象信道,低层通讯协 议如握手或内存映射等同样隐含在抽象信道中。在这一层次进行协同模拟可以验 证硬件软件划分的结果以及抽象通讯。从这一层次出发,需要进行的硬件软件 协同综合包括:接口综合、r t o s 综合、软件目标化、任务调度、内存体系结构 的定义。 经过第二次综合,设计者可以得到系的微观体系结构模型,这是系统最终的 体系结构,软件模块被映射到微处理器上,需要进行硬件接口的综合将处理器与 系统的其它部分连接起来,如果软件存在并行任务,还需要进行r t o s 的综合, 硬件模块需要细化到时钟周期级,i p 核需要使用一个接口封装起来以适应最终 的通讯协议,模块之间通过具体的物理连线进行连接以实现通讯协议,如果需要, 接口模块可能包括控制器或者b u f f e r 。在这一层次进行协同模拟可以在硬件时钟 周期级验证系统性能。从这一层次出发进行协同综合包括:软件编译和硬件部分 的r t l 级综合。 经过第三次综合可以最终得到系统的硬件平台和软件的机器代码。具体来说 就是将上一层次所得到的软件部分通过所选处理器的c c + + 编译器生成目标代 码,硬件部分通过硅编译器生成网表。这一步骤存在多种方式,可以将每一个硬 件模块生成专门的电路模块,然后再将这些模块和微处理器连接起来得到上文如 述的单板系统;或者将整个硬件平台包括微处理器全部经硅编译器生成一个系统 芯片,即上文中所说的s o c 。一般来说得到的最终的系统芯片通过定制逻辑方式 生成一个a s i c 模块,近年来也有公司如a l t e r a 将整个系统芯片通过可编程逻辑 的方式用一个f p g a 模块来实现,这也被称为s o p c 。 弟l5 页共4 6 页 基于s y s t e m c 的硬件,软件协同设计虚拟机 第三章、协同设计虚拟机的构造 3 1 虚拟机的工作原理 在本文的研究中,提出将硬件软件协同设计语义抽象为一个协同设计虚拟 机,( c o d e s i g nv i r t u a lm a c h i n e ) ,作为整个协同设计中描述、分析、综合的平台, 如图3 1 中所示,这样,使用协同设计方法设计一个嵌入式系统的过程,就被抽 象为从一个高层的虚拟机经过不断的综合实现最终生成物理系统的过程。 构 图3 1 协同设计虚拟机的工作流 在以往的协同设计研究中,往 往对系统进行形式化的描述作为设 计中描述、分析和综合的对象,称 为虚拟平台,它需要复杂的工具来 整合不同软硬件设计语言和进行协 合验证。本文的研究采用s y s t e m c 作为系统级规格描述语言,由于 s y s t e m c 的强大的建模能力和可执 行性,现在的设计过程中设计者可 以始终使用一个可执行的s y s t e m c 描述作为设计对象,这种可执行的s y s t e m c 描述可以方便地进行协同模拟验证, 因此在我们称之为硬件软件协同设计虚拟机。 与上文2 4 节中所述相对应,本文将协同设计虚拟机划分为三层:系统层次、 宏观体系结构层次、微观体系结构层次。如图3 1 所示,首先由系统的规格描述 得一个系统层虚拟机,可以模拟运行验证功能的正确性、算法的优越等,在这层 虚拟机中硬件和软件都是用统一的构件模块的方式来表达的,模块之间通过抽象 的信道进行相互通讯。 然后进行第一次综合,将系统层次虚拟机映射到所选定的体系结构上,这需 要使用相应的分析技术工具和使用构件库的相关信息来确定采用不同的体系结 构、不同的硬软件划分和不同的通讯协议的代价,从而进行权衡取舍,通过综合 工具进行变换后得到宏观体系统结构层次的协同设计虚拟机。这种取舍的过程可 以自动化或者半自动化的算法进行。所得到的协同设计虚拟机可发进行协同模 拟,其结果又可以反过来指导这样取舍的过程。这一层次所得到的虚拟机将执行 方式完全不同的软件计算模型和硬件计算模型统一到一个公共的调度语义中,真 正实现在物理平台未实现之前进行软件和硬件的协同模拟。这一层次的虚拟机也 是本文研究的重点。 然后进行第二次综合,同样经过分析、综合和变换得到微观体系结构层次的 第1 6 页共4 6 页 基于s y s t e m c 的硬件1 软件协同设计虚拟机 虚拟机模型,这一层次中硬件接口模块一般为r t l 级表述,硬件模块可以是r t l 级或者行为级的表述,软件模块为目标机器码,所以这一层次的虚拟机可以在硬 件周期级协同模拟整个系统的运行,但进行这样的协同模拟离不开指令集虚拟器 ( i n s t r u c t i o ns e ts i m u l a t i o n ) 这样的工具的支持,并且模拟速度较慢。 每一个层次的虚拟机的协同模拟的结果都可以反过来影响分析和综合的过 程级及上一层次的虚拟机。直到这一层次,真正的系统硬件平台仍未生成( 这也 是我们称之为虚拟机的原因) ,但设计者已经进行了很多功能验证和性能测试, 所有与实现相关的决策已经尽可能地完成,最终的实现也不会严重偏离原有的设 计。因此这样的虚拟机是能够满足前文1 4 节中提出的研究目标的。 需要指出的是整个设计过程都是基于c c + + 语义的,包括所有的分析和综合 的工具,这避免了使用复杂的中间形式在不同的设计语言之间进行转换,这也是 使用s y s e m c 作为系统设计语言的优点之一。 下面是各层次协同设计虚拟机的构造过程。 3 2 系统层虚拟机 在进行协同设计之前,首先要进行系统要实现的功能和需要满足的约束条件 作出规格说明,如上文中所述,可以通过许多种方式如文本、图形或者各种形式 描述语言按照不同的计算模型方式来进行规格说明,将系统按功能划分成为不同 方式的功能模块的组合。s y s t e m c 作为一种系统级描述语言,不仅具有强大的建 模语义,支持多种计算模型,而且具有可执行性,这样,在系统级不但可以得到 一个完整的系统规格说明,还可以进行功能性的模拟验证,因此,系统层虚拟机 就是一个可执行的系统规格说明。 需要指出的是,系统层虚拟机的模拟运行只能验证系统的功能、算法的正确 性。而其中对于各种约束条件只能进行规格说明,在这一层次是无法验证,也是 不需要验证的,因为在这一层次是不考虑具体的模块实现的,即不考虑每一个功 能模块是用硬件来做还是用软件来做,所以只需要在系统的规格说明中描述出需 要满足的约束条件即可。 使用s y s t e m c 构造系统层虚拟机,可以根据不同的应用,选用适合的计算模 型,来构造系统。如前所述,使用一定的计算模型来描述系统,可以根据模型的 数学理论对系统性能进行形式分析,例如使用静态或动态数据流图来对系统建 模,可以采用数学推断来对系统性能如死锁问题进行分析等,此外,利用模型的 数学分析还可以为系统的硬件软件划分提供指导,目前许多研究人员在这方面开 展了大量的工作 1 儿2 3 。如4 5 节中所述,s y s t e m c2 0 语言支持大多数常 见的计算模型,而且在s y s t e m c 中可以充分利用c c + + 的强大的表述能力,因此 这些研究成果可以很方便地移植到基于s y s t e m c 实现的系统级虚拟机中来,用于 第l7 页共4 6 页 基于s y s t e m c 的硬件软件协| 一j 设计虚拟机 系统级虚拟机性能分析,并可以指导宏观体系结构层虚拟机的综合。 其中有两个方面的问题还没有很好地解决 2 : ( 1 ) 不同的计算模型只适合于不同的应用领域,没有一种单个的模型可以适 用于嵌入式系统所有的应用领域。近年来u m l 在软件工程领域得到了较好地应 用,但其对嵌入式系统的建模描述尚处于研究阶段 i 。 ( 2 ) 应用s y s t e m c 对各类模型进行建模的过程还没有标准化,缺乏一个统一 的方法论和工具集,在设计中应用s y s t e m c 描述各类设计约束规范的方法也同样 需要一个标准化的过程圈。 3 3 硬件软件体系划分 在得到了系统层的虚拟机后,设计者必须要意识到,系统层次的描述只是功 能规格说明,离真正的实现还有很长的一段距离,设计者必须要按照某种细化的 方式将虚拟机映射到一个具体的体系结构上来,由于我们所要设计系统是一个复 杂的异质系统,其硬件软件组织体系十分复杂,因此首先要对目标系统的软硬件 体系进行简单的划分,如图3 2 所示 1 5 ,其中,硬件部分划分为两层: ( 1 ) 低层由硬件原件组成,如处理器、内存、a s i c 等 ( 2 ) 在硬件原件之上覆盖了一层片上通讯网络层,它将各种原件胶合在一起 在硬件部分之上的软件部分划分为4 层: ( 1 ) 在低层是驱动程序和一些与低层体系结构相关的控制 ( 2 ) 通讯管理和资源管理组成的一个软件服务调用层,它向高层提供任务管理和 内存管理这样的服务调用,而高层应用则通过一个a p i 层来访问软件服务调用 层。 ( 3 ) 最高层是应用层。 广 软件通讯层i l 软件 咔z 软件服务调用 磷浏程睁 片上通讯网络 c p u 、i p 核、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药品采用周期管理制度
- 药库药品批次管理制度
- 药店培训档案管理制度
- 营业终端安全管理制度
- 设备修理量化管理制度
- 设备安装公司管理制度
- 设备搭建维护管理制度
- 设备清扫润滑管理制度
- 设备维修清场管理制度
- 设备设施维护管理制度
- 《事业单位人事管理条例》考试参考题库100题(含答案)
- 通用包装作业指导书SOP
- 浙江中考生物知识点大全
- 2023宿迁地生中考试卷
- 一人力资源转型和价值
- 国家公务员考试准考证模板
- 设备采购质量保证措施
- 《可见的学习与深度学习》读书笔记思维导图PPT模板下载
- GB/T 97.1-2002平垫圈A级
- GB/T 5121.27-2008铜及铜合金化学分析方法第27部分:电感耦合等离子体原子发射光谱法
- GB/T 4436-2012铝及铝合金管材外形尺寸及允许偏差
评论
0/150
提交评论