(计算机系统结构专业论文)cpufpga混合系统中软硬件任务转换器的设计与实现.pdf_第1页
(计算机系统结构专业论文)cpufpga混合系统中软硬件任务转换器的设计与实现.pdf_第2页
(计算机系统结构专业论文)cpufpga混合系统中软硬件任务转换器的设计与实现.pdf_第3页
(计算机系统结构专业论文)cpufpga混合系统中软硬件任务转换器的设计与实现.pdf_第4页
(计算机系统结构专业论文)cpufpga混合系统中软硬件任务转换器的设计与实现.pdf_第5页
已阅读5页,还剩72页未读 继续免费阅读

(计算机系统结构专业论文)cpufpga混合系统中软硬件任务转换器的设计与实现.pdf.pdf 免费下载

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

文档简介

at h e s i sf o r t h ed e g r e eo fm a s t e ri n d e s i g na n di m p l e m e n t a t i o no f a t r a n s f o r m a t i o nm o d e lf o rs o f t w a r et a s k st o h a r d w a r et a s k si nh y b r i dc p u f p g a s y s t e m b yz h a n gw e n m i n g s u p e r v i s o r :a s s o c i a t ep r o f e s s o rd e n gq i n g x u n o r t h e a s t e r nu n i v e r s i t y j u n e2 0 0 8 本人 的研究成 的研究成 作的同志 = 亡巴 恩。 本学 文的规定 磁盘,允 或部分内 作者 半年 学位论文 签字日期 东北大学硕士学位论文摘要 c p u f p g a 混合系统中软硬件任务转换器的设计与实现 摘要 随着可重构计算技术的发展,嵌入式系统已经由传统的基于微控制器的体系结构 向软硬件混合系统结构发展。在一个复杂嵌入式应用系统中,为了提高系统的整体处 理能力,更好地发挥硬件任务的并行性特点,因此对灵活性要求高的部分用软件实现, 而运算密集型的任务可以用硬件实现并在f p g a 上执行。软硬件混合系统的出现,有 助于设计开发人员挖掘应用自身的并行性,从而满足用户对系统性能r 益增长的需 求。 另一方面,软硬件混合系统对系统开发设计方法也提出了很大的挑战:它要求系 统开发人员必须同时对高级编程语言和硬件描述语言都有深入的了解,而传统的开发 人员往往仅熟练掌握其中一类语言,这就严重的影响了系统的开发效率。基于这一问 题,本课题设计了一个软件任务向硬件任务转化的工具h t t m ,该工具可以将c 语言 编写的程序自动转化为对应功能的硬件描述语言程序,使得开发人员仅采用高级语言 就可以开发可以运行在软硬件混合系统上的应用,从而降低了系统的设计难度,提高 了设计效率。 h t t m 以c 语言源程序为输入,首先将其转化为扩展的有限状态机的表示以解析 程序本身的潜在并行性。该表示进一步被转化为扩展的b i f 语言,并根据指定的规则 生成对应的v h d l 语言程序。生成的v h d l 程序可以交付硬件集成环境进行仿真和 综合。实验表明h t t m 满足预定的设计目标,生成的r t l 级v h d l 程序在i s e 仿真 环境下的测试表明功能正常。论文最后对h q t m 的设计进行了总结,并提出了下一步 的改进方向。 关键词:软硬件混合系统,并行性,高级语言,v h d l ,设计效率 东北大学硕士学位论文 a b s tr a c t d e s i g na n di m p l e m e n t a t i o no f at r a n s f o r m a t i o nm o d e l f o rs o f t w a r et a s k sh a r d w a r et a s k si nh y b r i d c p u f p g a s y s t e m a b s t r a c t w i t ht h ed e v e l o p m e n to fr e c o n f i g u r a b l ec o m p u t i n gt e c h n o l o g y , e m b e d d e ds y s t e m sa r e e x p e r i e n c i n gas h i f tf r o mt r a n d i t i o n a lm i c r o - c o n t r o l l e r - b a s e ds y s t e ma r c h i t e c t u r e t ot h e h a r d w a r e s o f t w a r eh y b r i ds y s t e ma r c h i t e c t u r e i nac o m p l e xe m b e d d e da p p l i c a t i o n ,a st h e r e a s o no fi m p r o v i n gt h eh o l i s t i cp r o c e s s i n gc a p a b i l i t ya n dt a k i n gt h ea d v a n t a g eo ft h e h a r d w a r et a s k s ,t h et a s k st h a tr e q u i r eh i g hf l e x i b i l i t ya r ei m p l e m e n t e di ns o f t w a r e , a n d c o m p u t a t i o n i n t e n s i v et a s k sa r ei m p l e m e n t e da sh a r d w a r et a s k s t h a tc a ne x e c u t eo nf p g a s h a r d w a r e s o f t w a r eh y b r i ds y s t e m se n a b l es y s t e md e s i g n e r st oe x p l o i tt h ep o t e n t i a lp a r a l l i s m o fa na p p l i c a t i o n ,w h i c hc a nm e e tt h ei n c r e a s i n gd e m a n d so ns y s t e mp e r f o r m a n c e b u th a r d w a r e s o f t w a r e h y b r i ds y s t e m sp o s eg r e a tc h a l l e n g e s t o s y s t e md e s i g n m e t h o d o l o g y :s u c hs y s t e m sr e q u i r es y s t e md e s i g n e r st oh a v ee x p e r i e n c ei nb o t hh i g h l e v e l l a n g u a g e sa n dh a r d w a r ed e s c r i p t i o nl a n g u a g e s ,w h i l em o s ts y s t e md e s i g n e r sa r ee x c e l l e n ti n o n l yo n eo ft h e m ,w h i c hg r e a t l yi m p a r e sd e i s g ne f f i c i e n c y b a s e do n t h i ss t u a t i o n ,w e d e s i g n e das o f t w a r e t o h a r d w a r et r a n s f o r m a t i o nt o o lh t t m ,w h i c hc a nt r a n s f o r mc c o d e s i n t ot h ec o r r e s p o n d i n gv h d lc o d e sw i t h o u ta f f e c t i n gt h es e m a n t i c so ft h ep r o g r a m w i t ht h i s t o o l ,s y s t e md e s i g n e r sc a nd e s i g nt h es y s t e mo n l yi nt h eh i g h - l e v e ll a n g u a g el e v e l ,w h i c h r e d u c e ss y s t e md e s i g nc o m p l e x i t ya n di m p r o v e sd e s i g ne f f i c i e n c y h t t mt a k e scp r o g r a m sa si t si n p u t ,a n df i r s tt r a n s f o r m st h e mi n t oe x t e n d e df s m r e p r e s e n t a t i o n s ,w h i c ha r ef u r t h e rt r a n s l a t e di n t ot h ee x t e n d e db i fl a n g u a g ef i l e s a c c o r d i n g t oas e to fr u l e s ,h eb i ff i l e sa r ef i n a l l yc o m p i l e di n t ov h d ll a n g u a g ef i l e s ,w h i c hc a nb ef e d t ot h ei s ei n t e g r a t e dd e v e l o p m e n te n v i r o n m e n tt od os i m u l a t i o na n ds y n t h e s i s e x p e r i m e n t r e s u l t ss h o wt h a th t t mr e a l i z e so u rd e s i g ng o a l ,a n dt h eg e n e r a t e dv h d lf i l e sa r ev a l i d a t e d f o rf u n c t i o n a lc o r r e c t n e s s c o n c l u s i o n sa n df u r t h e rw o r ka r ep r e s e n t e di nt h el a s ts e c t i o n k e y w o r d s :s w h wh y b r i ds y s t e m ,p a r a l l e l i s m ,h i g h l e v e ll a n g u a g e ,v h d l ,d e s i g n e f f i c i e n c y i i i 3 3 2 前端处理18 3 3 3 对b i f 的改进1 9 i v 目录 一21 构21 2 4 现流程2 5 2 5 2 5 2 6 2 9 3 2 3 5 3 6 4 0 4 2 7 中间b i f 生成4 3 4 2 8 目标代码生成4 3 4 3 任务通信接口生成4 6 4 4 代码优化策略4 9 4 5h t t m 对动态任务转换的支持5 0 4 6 本章小结5 0 第5 章h 1 口实验数据分析5 l 5 1h t t m 设计流程的验证5 l 5 2h t t m 对特殊数据结构的实验验证”5 4 5 3 本章小结5 6 第6 章结论与展望。5 7 6 1 结论5 7 6 2 未来的研究5 7 参考文献5 9 致谢6 3 研究生阶段的科研情况6 5 v 东北大学硕士学位论文 第1 章引言 1 1 课题的背景和意义 第1 章引言 随着可编程逻辑器件的迅速发展,新的可重构计算技术层出不穷,因此软硬件协同 设计也面临着很大的机遇和挑战。传统软硬件混合系统设计方法是静态的,即先对系统 进行软硬件任务划分,然后对软件和硬件分别进行设计,软件任务部分由通用的g c c 编译器进行编译和连接生成目标可执行文件,硬件任务部分则是由硬件工程师用h d l 语言进行硬件电路的设计并综合生成b i t 文件,最后再将软硬件目标文件映射到不同的 处理器上。然而新的软硬件混合系统设计方法是基于可重构技术的,系统设计人员希望 用熟悉的高级语言进行软硬件混合系统的设计,用高级语言进行系统建模、系统划分, 然后由专用映射工具进行软硬件任务到不同处理器的映射。映射工具的开发一直是业内 公认的难题,目前世界上还没有形成一个能适用于不同f p g a 厂商系列产品的通用标 准。 经过大量的实验证明,硬件描述语言( h d l ) 在被用作系统建模语言时突显出很多缺 点,例如( 1 ) 很少应用程序开发者能深入了解h d l ,( 2 ) 利用h d l 开发应用程序过程比 较复杂,( 3 ) h d l 缺乏设计灵活性。因此世界上很多研究机构致力于开发出一种系统平 台,通过该平台系统开发人员可以很好的控制硬件处理器,并能丌发出高效率的软硬件 混合系统。而由于传统的h d l 目前还达不到通用编程语言的效率,于是可以考虑用更 加抽象的高级语言作为混合系统丌发的源语言。目前很多研究机构对a n s ic 进行修改, 使之满足系统平台的开发要求,从而使得该系统平台能够被大部分的程序员所应用, t o r o n d o 大学的t m c c 和n a l l a t e c h 的d i m e c 就是其中的例子。 在确定了一种抽象高级语言作为系统描述语言之后,源抽象语言向h d l 的转换可 以通过转换工具( 映射工具) 来执行。这一转换过程也正是本文最关心的问题。众所周知, 高级语言与硬件描述语言在语法结构和语义描述上存在着很大差异。因此在转换过程中 要保证源语言和目标语言在语义上的等价性,这就要求设计的转换算法在处理语法转换 时充分考虑到源语言和目标语言在语义上的各自特点,做到正确地转换。 本文所提出的转换器是以任务为基本转换单元的,因此除了要考虑到语言转换之外, 还应该注意以下几个问题:首先必须保证软件任务和目标硬件任务在功能上的等价性; 其次需要保证生成的硬件任务能被混合操作系统正确地调度;最后要保证软件任务和硬 东北大学硕士学位论文第1 章引言 件任务之问能够实现准确地通信。 本文设计的软硬件任务转换模型服务于特定的软硬件混合系统平台,该平台使得混 合系统开发人员能够用比较熟悉的高级语言进行混合系统的开发。这样开发人员就可以 将主要精力集中在算法的功能性上面,而不用关心具体硬件电路的复杂结构,从而可以 有助于提高软硬件混合系统的运行效率和缩短软硬件混合系统开发的周期。 1 2 国内外研究动态 上世纪九十年代前后,国内外就有很多专家研究过有关高级语言和硬件描述语言之 间的转换模型,比如s t a n f o r d 大学的m i c h e l i 分别在1 9 8 8 和1 9 9 0 年提出了o l y m p u s 系 统【1 】【2 1 ,该系统将h a r d w a r ec 转换生成描述底层硬件的网表,从而实现了将类高级语言 转换为硬件描述语言的功能。但h a r d w a r ec 本身是硬件行为的描述语言,其抽象程度 太低,不能满足设计者的设计需求。1 9 9 4 、1 9 9 5 年z e b o p e n g 和j h a l l b e r g 分别提出了 c a m a d 系纠3 】【4 】,该系统能将输入的类p a s c a l 的a d d l 语言转换成r t l 级的v h d l 。 该模型提出了用p e t r i 网作为转换的中间形式。法国的gf m a r c h i o r o 分别在1 9 9 7 和1 9 9 8 年提出的c o s m o s s 0 1 a r l 5 】【引,该系统在进行进程间通信接1 3 的转换时充分借助了有限状 态机模型,提高了进程间通信的可控制性。1 9 9 9 年英国o x f o r d 大学j m s a u l 设计的混 合线程编译器d a s h 。7 1 ,它能够将类c 语言转换成r t l 级的v h d l 语言,但它并没有充 分考虑进程控制信息以及进程问的通信接口的转换。 2 0 0 1 、2 0 0 2 年t e n n e s s e et e c h n o l o g i c a lu n i v e r s i t y 的s o b h as a n k a r a n 和v i s h n uv s a n v e v e l l y 分别提出了由c 向v h d l 的转换算法以及优化技术【8 】【9 1 。该转换算法在转换 c 语言时还受到很多语法结构上的限制,如不支持可变长度的参数列表、浮点数、g o t o 语句、动态类型转换等。2 0 0 1 年北京理工大学的吴清平等提出了一个v h d l 向c + + 的 翻译器【l o 】,2 0 0 2 年清华大学赵建洲提出了s o c 中将c 转换为v h d l 的方法【1 1 】等等。 他们在语言转换上面做出了一定的贡献,但是这些研究好很不完善,因此也不能很好的 应用到实际系统中去。 最近几年很多研究机构已经做出了一些成型的语言转换工具,如d a v i dp e l l e r i n 等人 开发的基于i m p u l s e c 语言的c o d e v e l o p e r ,c a l i f o r n i a 大学的s p e c c ,n a l l a t e c h 的 d i m e cc o m p i l e r l l6 1 ,以及k a n s a s 大学所设计的h t c t l 2 1 等。其中c o d e v e l o p e r 支持进程 的描述语言i m p u l s e c ,可以模拟软硬件进程之间的协同调度过程,它也可以将i m p u l s e c 描述的进程转换成用有限状态机模型描述的v h d l 实体。另外c o d e v e l o p e r 和s p e c c 虽然在高级语言程序的指令级并行性分析方面做出了很多工作,但是程序的并行性抽取 一2 东北大学硕士学位论丈 第1 章引言 主要还是依靠手动进行。 k a n s a s 大学所做的h t c 在p o s i xc 线程向r t l 硬件线程转换方面做出了突出了贡 献,h t c 主要足服务于h t h r e a d s t 2 0 1 混合系统,该系统能协同调度软件线程和硬件线程。 然而目前的h t c 仍存在很多不足,如h t c 在处理全局变量和静态变量的u j 题上还没有 提出一个有效的解决方案;h t c 不支持函数指针:h t c 目前还不能进行浮点数的转换。 由以上各种映射工具可知它们虽然分别针对不同的应用平台,但仍然存在着共同点, 首先就系统抽象语言而言,都是以a n s ic 为基础,添加相应的附加语义,然后就是为 了做到尽可能的优化而都依赖于某种编程模型,最后就是每种映射工具都在硬件电路的 生成和i o 接口的依赖性上做了很多工作。然而以上映射工具本身都存在一定的不足, 在进程( 任务) 和线程级别转换过程中还没有一种高效的转换策略。 1 3 课题研究的目标 本课题是进行软硬件任务之问的转换,目的就是将用一个扩展a n s ic 描述的软件 任务转换成用r t l 级v h d l 描述的硬件任务。在转换过程中首先应保证语义正确性, 即生成的目标v h d l 能被i s e 综合工具正确地识别。另外该转换模型应该保证目标硬件 任务和软件任务之间的功能等价性。然后应该保证目标硬件任务能够被软硬件混合系统 正确地识别和调度,并且能保证软件任务和目标任务之间的正确通信。 一个好的软硬件任务转换模型除了能解决好上面提到的问题,还应该在目标任务的 执行效率和任务尺寸方面有足够的考虑。如果一个由高级语言组成的进程代码中包含迭 代、递归函数调用等复杂问题,很有可能会影响该任务的执行效率降低,那么针对迭代 和递归调用函数进行并行性分析,把循环问题划分为并行执行的多个子问题,将会大大 提高程序执行的效率。另外本文之所以选择v h d l 作为目标语言,首先是因为它具有很 好的并行性,其次是因为v h d l 代码紧密性很高,这样也可以保证布局布线后所生成的 硬件电路中不同的部分之间是紧密耦合的,从而v h d l 在减少硬件任务区域大小方面起 到很大帮助。因此本文所设计的软硬件转换模型的另一目标就是实现目标任务和任务尺 寸的折中优化。 1 4 论文的主要工作 本文设计并实现了一个基于行为级中间描述b i f ”1 的软硬件任务转换模型 h t t m ( h y b r i dt a s k st r a n s f o r m a t i o nm o d e l ) 。h t t m 输入语言是a n s ic 的子集,增强了 该模型的通用性。本文之所以选择b i f 作为转换的中问形式,首先因为b 1 f 描述的是扩 3 第二章介绍了展开课题研究工作所需要的基础知识,分别阐述了软硬件混合系统、 软硬件协同设计方法、编译器的基本原理以及编译器的开发技术等。 第三章介绍了本课题所提出的软硬件转换器。包括基本设计要求、软硬件转换器总 体设计和模块设计以及设计过程中所用到的主要算法和数据结构。 第四章介绍了软硬件转换器的的具体实现流程。详细阐述了该转换器的的词法分析 阶段、语法分析阶段、语义分析和并行处理、中间b i f 代码生成、代码生成阶段和代码 优化阶段的具体工作、实现思路和方法。 第五章结合实验数据对该模型的工作原理进行了分析。 第六章对本论文的工作和试验结果进行总结,并对下一步的工作进行了展望。 一4 东北大学硕士学位论文 第2 章课题研究的相关技术 第2 章课题研究的相关技术 本章讨论了软硬件任务转换模型所涉及的相关技术,阐述了h t t m 课题研究的理论 基础。从软硬件混合系统【伸】展开讨论,对软硬件协h 设计流程的方法学进行了研究,之 后对编译程序设计原理进行了分析。 2 1 软硬件混合系统概述 软硬件混合系统是由硬件部分和软件部分组成,硬件部分一般是由可编程逻辑器件 和通用嵌入式处理器共同组成。可编程逻辑器件是指f p g a 、c p l d 等,通用的嵌入式 处理器如a r m 、p o w e r p c 、a s i c 等。不同的处理器之间可以通过总线连接,也可以通 过互联网络进行连接,处理器之问的通信也是基于硬件体系结构的。软件部分一般是由 嵌入式操作系统、b s p ( 板级支持包) 以及i pc o r e 组成。目前世界上比较流行的嵌入式操 作系统有u c o s i i 、l i n u x 、r t e m s 以及v x w o r k s 等,b s p 则是有不同的处理器厂商 提供,i pc o r e 是指可复用的应用程序软核,目前很多研究机构针对不同型号的可编程 逻辑芯片开发出了很多i pc o r e ,基于x i l i n x 公司不同型号f p g a 的i pc o r e 目前应用 很广泛。 软硬件混合系统实质上是一个可重构的并行系统,它是未来并行计算系统发展的主 要趋势。目前出于研究的目的,很多研究机构在单个或少量可编程逻辑芯片上开发软硬 件混合系统,其中嵌入式操作系统运行在通用处理器( 如p o w e r p c ) 上面,而硬件任务则 是配置在f p g a 中的硬件电路组成,目前很多f p g a 产品都支持局部动态可重配置,为 硬件任务的重构提供了方便。如果从不同处理器间通信类型划分可将软硬件混合系统划 分为两大类,第一类系统中的软硬件任务管理、调度和任务间通信均是由硬件实现,该 类系统最为典型的是k a n s a s 大学所开发的h t h r e a d s 系统,该系统的硬件体系结构如图 2 1 所示,图中的m u t e x e s 、c o n d i t i o n a lv a r i a b l e s 、t h r e a dm a n a g e r 、t h r e a ds c h e d u l e r 、 c b i s 和s h a r e dm e m o r y 与任务管理和调度有关的控制单元都是由硬件实现,其中硬件 任务都扩展了一个硬件任务接i s i ( h w t i ) 。第二类混合系统中任务管理、任务调度以及任 务间通信则是由扩展嵌入式操作系统内核实现。该类混合系统比较典型的就是c a l i f o m i a 大学b e r k e r l y 分校开发的b o r p h 2 1 】系统,如图2 2 所示,在该系统中任务管理和任务 调度都是通过扩展l i n u x 内核实现的,其中l i n u x 内核是运行在p o w e r p c 硬核上, 软件任务和硬件的通信则是以共享总线方式实现的。 一5 硕士学位论文 第2 章课题研究的相关技术 甲甲 圄固匝咽回圃 图2 1k a n s a s 混合系统体系结构 f i g 2 1t h ea r c h i t e c t u r eo fk a n s a s h y b r i ds y s t e m 图2 2b o r p h 混合系统体系结构 f i g 2 2t h ea r c h i t e c t u r eo fb o r p h 2 2 软硬件协同设计流程 软硬件协同设计【2 2 】从方法学上讲是一个十分复杂的过程。往往一个软硬件混合系统 在设计之前需要进行大量的需求论证,设计过程需要多个设计人员协同进行设计不同的 模块,模块与模块之间要求有很好的连接性和适当的耦合度。设计完一个混合系统之后 需要进行功能测试和验证,另外设计人员还要考虑软硬件混合系统的效率和开发成本问 题。 软硬件系统设计一般要经历以下几个主要阶段,即指需求分析、系统建模、系统功 一6 该流程对应的模块设计如图2 4 所示,图中央的系统级软硬件协同设计模块主要涉 及硬件行为组件的设计、实时操作系统的扩展、通信网络的生成以及存储器映射等部分。 7 一个软件任务实现单一的功能,可以是负责全局应用的一个模块,也可以实现特定的额 外功能,这样嵌入式操作系统就能协调地调度和管理多个任务,从而实现多个任务的分 8 住- 仑文第2 章课题研究的相关技术 行执行。就单个软件任务而言,其是严格按照源程序中的指令顺序执行的。 操作系统中,内核通过管理任务上下文以及任务控制块对软件任务进行管 理和调度,任务i 、h j 的通信则是通过特定管道、消息队列、信号量等机制来实现。 软件任务一般是通过高级语言来设计的,因此设计起来比较灵活,设计人员在设计 软件任务时首要关心的就是相应的算法的执行效率。如在l i n u x 和r t e m s 等系统中, 软件任务是基于p o s i xt h r e a dc 语言设计的,而在i lc o s i l 系统中,任务就是通过扩展 a n s ic 语言描述实现的。以| jc o s l i 为例,在该操作系统中常以一个任务描述符数据 结构来表示一个任务。该描述符是指任务控制块o st c b ) ,在任务控制块旱,详细地 定义了和一个任务相关的各种属性,如在o st c b ) 中定义了和任务相关的任务链表 ( 以o s t c b n e x t 和o s t c b p r e v 表示指向在任务链表中当前任务的后一个任务和前一 个任务) 、代表任务占用的堆栈的o s t c b s t k s i z e 、代表任务优先级的o s t c b p r i o 等数 据结构。 硬件任务【2 3 】是指嵌入式系统中基于可编程逻辑芯片实现的功能模块。硬件任务的主 要特性包括( 1 ) 硬件任务在可重配置硬件资源上执行,任务数量受限于可重配置资源的 数量; ( 2 ) 硬件任务的实现需要预先分配资源并配置后才能开始执行,配置耗时长;( 3 ) 一个硬件任务配置完成后即可开始执行,在完成之前一般不会释放其占用的可重配置资 源;( 4 ) 一定数量的硬件任务可以并行执行。通常我们所说的硬件任务是经过内部综合, 具有固定长度和宽度、固定时钟频率界限的矩形逻辑功能模块,可由4 维向量t ( h ,w ,a , 曲描述,其中h 、w 分别代表硬件任务的长和宽,a 是任务的到达时问,e 是执行时间。 在实际的软硬件混合操作系统中,硬件任务也被操作系统视为基本的调度单元,因 此硬件任务也应该有一个能与操作系统进行通信的接口。以k a n s a s 大学的h t h r e a d s 系统 为例,硬件任务通过h w t i 接口和混合操作系统进行通信。 硬件任务在进行抽象描述时可以由门级硬件电路表示,也可以由硬件描述语言表示。 在用h d l 描述硬件任务时,可以屏蔽底层门级电路的复杂性,就v h d l 而言,硬件任务 既可以用实体、模块、进程等基本结构表示,又可以借助于例化元件对多个硬件任务进 行连接。v h d l 语言中p r o c e s s 内部是顺序执行的,而p r o c e s s # b 部则是并行执行的。用 v h d l 进行硬件任务设计时可以充分利用该语言本身的特点。在数字电路设计过程中, v h d l 只是用来对硬件任务进行抽象,需要转换成具体的配置文件才可以下载到底层可 编程逻辑芯片中。 本研究课题中所提出的转换模型的目标硬件任务是由v h d l 语言来描述的,该目标 任务需要经过i s e i 具综合和优化才能形成一定规模的硬件电路。 9 东北大学硕士学位论文第2 章课题研究的相关技术 2 4v h d l 语言 v h d l 2 4 】语言是一种功能全面的硬件描述语言,支持数字系统的设计、验证、综合、 测试,以及硬件设计数据的交换、维护和修改,它可以从行为、功能或结构等不同的层 次描述硬件电路。山于v h d l 语言可以用前后一致的语法和语义描述数字系统的多个层 次,并且可以在同一设计中混合各种层次的描述,所以它特别适合于对同一系统的不同 层次的设计实现进行模拟验证,以支持系统的维护和重新设计。在自顶向下设计的全过 程中,设计者均可方便地使用同一种语言。v h d l 设计并不十分关心一个具体逻辑是靠 何种方式实现的,设计人员不需使用门级原理图来描述电路,而是针对目标进行功能描 述,把开发者的精力集中到逻辑所实现的功能上,将设计人员的工作重心提高到了系统 功能的实现与调试上,只需花较少的精力用于物理实现。由于摆脱了电路细节的束缚, 设计人员可以专心于设计方案和构思,使得设计工作省时省力,加快了设计周期。 v h d l 语言具有如下特点: ( 1 ) 与其他的硬件描述语言相比,v h d l 具有更强的行为描述能力。强大的行为描述 能力避开了具体的器件结构,是在逻辑行为上描述和设计大规模电子系统的重要保证。 v h d l 的宽范围描述能力使它成为高层次设计的核心,从而决定了它成为系统设计领域 最佳的硬件描述语言,并可进行系统的早期仿真以保证设计的正确性。 ( 2 ) v h d l 丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系 统功能的可行性,随时可对设计进行仿真模拟。 ( 3 ) v h d l 语句的行为描述能力和程序结构,决定了它具有支持大规模设计的分解和 已有设计的复用功能。 ( 4 ) 对于用v h d l 完成的一个确定的设计,可以利用e d a 工具进行逻辑综合和优化, 并自动地把v h d l 描述设计转变成门级网表。 ( 5 ) v h d l 对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必知道 最终设计实现的目标器件是什么,而进行独立的设计。 ( 6 ) v h d l 的设计不依赖于特定的器件,方便了工艺的转换。 ( 7 ) v h d l 是一个标准语言,为众多的e d a 厂商支持,移植性好。 v h d l 描述系统时,一般有三种描述层次:行为描述、数据流描述、结构描述。行为 级描述注重描述对象的功能,表示输入与输出之间的转换行为,不包含结构信息:数据流 描述用逻辑方程描述对象的关系;结构描述( f l 级描述) 直接给出实体实现的逻辑网表。 如下图2 5 所示,使用行为级描述来表示一个带有使能控制端的半加器设计描述: 输入输出为lb i t ,使能端e n a b l e 为l 时,r e s u l t 为+ x y ,c a r r y 为x + y 的进位;使能端 10 东北大学硕士学位论文 第2 章课题研究的相关技术 e n a b l e 为0 时,输出全为0 。 e n a b l e - :, r e s u l t x卜、 h a l f a d d e r c a r r y y 图2 5 半加器结构 f i g 2 5t h ea r c h i t e c t u r eo fh a l fa d d e r 行为级源描述如下: e n t l t yh a l f a d d e ri s p o r t ( x ,y ,e n a b l e :i nb i t ; r e s u l t ,c a r r y :o u tb i t ) ; e n d h a l f _ a d d e r ; a r c h i t e c t u r eb e ho fh a l f a d d e ri s b e g i n p r o c e s s ( e n a b l e ) 。 b e g i n i fe n a b l e = l t h e n r e s u l t - - xx o r y : c a r r y = xa n dy ; e l s e r e s u l t = 0 ; c a r r y = 0 ; e n d i f , e n d p r o c e s s ; e n d b e h ; 2 5 编译器的基本原理 本文所设计的h t t m 的主体工作还是进行a n s ic 语言到r t l 级v h d l 语言的转 换,这一部转换的实现就要借助于特定的编译器,该编译器主要进行两种语言的翻译转 换。严格地说,编译器是一个将高级语言源程序转换成能在一台计算机上执行的等价目 标代码或机器语言程序的软件系统。 在通常情况下,一个编译器应由一系列的阶段组成【2 5 1 ,这些阶段从源程序的字符序 - 1 1 内部表示从头到尾扫视一次,并进行有关的加工处理工作,每一遍的工作都是从获取上 一遍的工作结果开始,经过本次处理之后,将结果保存起来以便交给下一遍。例如,对 于要求经一遍扫描就能完成从源代码到目标代码翻译的编译程序,我们可以语法分析程 序为中心来组织它的工作流程,这样就不必产生中间代码,显然,这种做法所得到的目 一1 2 东北大学硕士学位论文 第2 章课题研究的相关技术 标代码的质量足不能保证的,总体来说弊大于利。 对于绝大部分语言( 例如p a s c a l 或c ) ,实现一遍扫描的编译程序是非常困难的,所 以宜于采用多遍扫描的编译程序结构。具体的做法是将整个编译程序划分为若干个相继 执行的模块,每一模块都对它前一模块的输出扫描一遍,并在扫描过程中完成前述6 个 阶段中的一个或几个,然后将处理结果保存下来,供后面的模块进行分析。显然,第一 个模块所扫捕的是字符序列形式的源程序,最后一个模块所输出的是目标代码,而每一 个中问模块输出的是与源程序等价的内部表示或中间代码。 2 5 2 分遍编译的设计 在设计一个编译程序时,如何确定扫描遍数,如何组织好每一遍的工作,主要取决 于源语言的具体情况及编译程序运行的具体环境,如语言的结构、计算机软硬件的配置, 以及对编译程序本身运行效率的要求等等。一般而言,多遍扫描源程序具有如下优点: ( 1 ) 由于采用了模块结构,每一遍处理的功能相对独立,整个编译程序的结构比较 清晰。 ( 2 ) 由于对源程序及其内部表示进行多次扫视和加工,有利于进行比较细致和充分 的代码优化处理。 ( 3 ) 由于可将编译程序按模块依次调入内存,有利于采用覆盖技术,以减少执行编 译程序时所占的内存空间。 本文所设计的h t t m 中编译部分采用多遍扫面的语法制导的翻译策略,中间语言采 用具有层次结构的有限状态机( f s m ) 形式,代码生成阶段则分为两部分,首先第一部分 是简单语法的直接转换,第二部分则是特定语义的间接转换。 2 6 编译程序开发 为了提高软件开发的效率和保证开发质量,人们除了要遵循软件工程中对软件开发 过程的规范化或标准化之外,还应尽量使用先进的软件丌发技术和相应的软件工具,而 大部分软件工具的开发,常常要用到编译技术和方法。实际上编译程序本身也是一种软 件开发工具。为了提高编程效率,缩短调试时间,软件工作人员研制了不少对源程序处 理的工具,这些工具的丌发不同程度地用到编译程序各个部分的技术和方法,典型的有 下面几种: ( 1 ) 语言的结构化编辑器:结构化编辑器是引导用户在语言的语法制导下编制程序, 能自动地提供关键字和与其匹配的关键字,这样可以减少语法上的错误,加快对源程序 1 3 - 东北大学硕士学位论文 第2 章课题研究的相关技术 的输入和调试,提高效率和质量。现在的可视化开发工具基本都具备了这个功能。 ( 2 ) 语言程序的调试工具:调试是软件开发过程中一个重要环节,凡是对算法的实 现错误或程序没能反映算法的功能等错误就需用调试器来协助解决。调试器的功能越强 则实现越复杂,它必须与语法分析、语义处理有紧密联系。 ( 3 ) 语言程序测试工具:对源程序进行语法分析并制定相应表格,检查变量定值与 引用的关系;也可在源程序的适当位置插入某些信息,并用测试用例记录程序运行时的 实际路径,将运行结果与期望的结果进行比较分析,帮助编程人员快速查找问题所在。 ( 4 ) 高级语言之问的转换工具:为了减少重新编制程序所耗费的人力和时间,就要 解决如何把一种高级语言转换成另一种高级语言,乃至汇编语言转换成高级语言的问 题,这种异种程序设计语言之间的翻译转换工作要对被转换的语言进行词法和语法分 析,只不过生成的目标语言是另一种高级语言而已,这与实现一个完整的编译程序相比 工作量要少些。 ( 5 ) 并行编译技术:随着并行机及多处理机的发展,对软件的并行处理提出了新的 要求,特别是并行编译技术发展很快。运用重构技术把已有的串行语言编写的程序经过 分析分解成可并行的成分,然后分配到多处理机上运行。如果编程人员能按程序设计情 况写出并行语言程序,那么两者结合将产生更高的效率。 h t t m 涉及到的a n s ic 和v h d l 之间的语言转换,本文首先借助于l e x 和y a c c 程 序进行词法分析和语法分析,在符号表中增加f s m 相关的数据结构,编译过程采用多遍 扫描的自底向上规约的分析策略,在语义分析生成之前调用并行分析算法,从顺序源程 序中抽取并行性,为并行v h d l 代码生成做准备。然后进行语义分析,得到软件任务的 有限状态机并生成b i f 中间形式,最后进行代码生成,将b i f 翻译成v h d l 代码。整个编 译转换过程是借助于l i n u x 环境下的f l e x 、b i s o n 工具和g c c 编译环境来实现,即首先由 b i s o n 编译l e x 和y a c c 程序生成相应的c 目标程序,然后再由g c c 编译链接生成可执行 的h t t m 目标程序。 2 7 本章小结 本章从总体上介绍了本课题相关的基础知识,其中对软硬件混合系统和软硬件协同 设计流程进行了概括性的描述,对软硬件协同设计流程做出了改进,针对编译原理进行 了分析,并在最后提出本文所运用的编译环境。下面一章将介绍本课题h t i m 的基本 结构。 一1 4 , 东北大学硕士学位论文 第3 章h t t m 的总体设计 第3 章h t t m 的总体设计 本章主要围绕混合系统中软硬件任务之i 日j 转换时需要满足的设计要求展丌讨论,考 虑到软件任务和硬件任务各自的特点,从而提出软硬件转换模型的总体结构,并针对各 个模块进行了概括性的分析,最后分析了h 1 v r m 中所使用的主要算法和数掘结构。 3 1 转换模型的基本设计要求 h t t m 是实现从软件任务到

温馨提示

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

评论

0/150

提交评论