(计算机软件与理论专业论文)硬件任务抽象及软硬件任务通信机制的研究与实现.pdf_第1页
(计算机软件与理论专业论文)硬件任务抽象及软硬件任务通信机制的研究与实现.pdf_第2页
(计算机软件与理论专业论文)硬件任务抽象及软硬件任务通信机制的研究与实现.pdf_第3页
(计算机软件与理论专业论文)硬件任务抽象及软硬件任务通信机制的研究与实现.pdf_第4页
(计算机软件与理论专业论文)硬件任务抽象及软硬件任务通信机制的研究与实现.pdf_第5页
已阅读5页,还剩76页未读 继续免费阅读

(计算机软件与理论专业论文)硬件任务抽象及软硬件任务通信机制的研究与实现.pdf.pdf 免费下载

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

文档简介

i 一 ;1,ol。 一。 lj*-ii、 ,一 b ; j 1 r am a s t e rt h e s i si nc o m p u t e rs o f t w a r ea n d t h e o r y s t u d y a n di m p l e m e n t a t i o no fh a r d w a r et a s k e n c a p s u l a t i o na n d c o m m u n i c a t i o nm e c h a n i s m b e t w e e ns o f t w a r et a s ka n dh a r d w a r et a s k b yl v y a n s u p e r v i s o r :p 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 9 jiiil 【 i i 每 1j,1 1 i k,曩0二=一 ,jrue : 独创性声明 本人声明,所呈交的学位论文是在导师的指导下完成的。论文中取得 的研究成果除加以标注和致谢的地方外,不包含其他人己经发表或撰写过 的研究成果,也不包括本人为获得其他学位而使用过的材料。与我一同工 作的同志对本研究所做的任何贡献均己在论文中作了明确的说明并表示谢 = t 思。 学位论文作者签名:吕岩 日 期:枷夕、7 7 学位论文版权使用授权书 本学位论文作者和指导教师完全了解东北大学有关保留、使用学位论 文的规定:即学校有权保留并向国家有关部门或机构送交论文的复印件和 磁盘,允许论文被查阅和借阅。本人同意东北大学可以将学位论文的全部 或部分内容编入有关数据库进行检索、交流。 作者和导师同意网上交流的时间为作者获得学位后: 半年口一年一年半口 学位论文作者签名:p 1 7 岩 签字日期:z 伊哆7 7 两年口 导师签名:瓦r 反彳尚 签字日期:加。夕7 7 t j 东北大学硕士学位论文摘要 硬件任务抽象及软硬件任务通信机制的研究与实现 摘要 随着现在计算机技术的快速发展,传统的处理器架构和解决方案已经不再能够满足 未来应用的需求,因此基于多处理器及多核系统的研究已成为了人们研究的热门方向。 近年来,随着f p g a 器件的快速发展,基于该器件的可重配置技术和理论研究的不断突 破为复杂嵌入式应用提供了一条新的实现途经。 f p g a 的动态可重配置技术的出现,使得c p u 以外的计算资源的地位得到了根本 改善。在传统设计中,c p u 以外的计算资源都是被视为系统中的i o 设备或者协处理器 来管理。现在可重配置计算器件可以成为系统中与c p u 并列的计算资源,这样一来可 以更好地发挥硬件在解决计算密集型任务时的优势。然而,传统的设计思想限制了可重 配置技术的广泛应用。为此,国内外的相关研究人员提出了采用任务模型,即硬件任务 的方法管理f p g a ,以克服f p g a 作为系统计算资源时的诸多局限。 本文分别从硬件任务在l i n u x 操作系统中运行的原理设计和具体功能实现这两个 方面对在l i n u x 系统中实现完整的硬件任务机制进行了深入研究,比较了不同设计方案 的优势与不足,提出了将硬件任务进行抽象的思想。本研究根据对硬件任务抽象的需要 将硬件任务分成弱耦合的两个部分:硬件任务的软件部分代理进程和硬件部分一 在f p g a 上实现硬件任务功能的硬件电路。同时在硬件任务的内核抽象、硬件任务加载、 软硬件任务通信、硬件任务终结等方面进行了内核级的研究。在实现示例中,通过对 l i n u x 操作系统内核的修改,使得软硬件任务能够通信并且在用户空间上达到了透明操 作硬件任务的目的。 关键词:l i n u x 操作系统;动态可重配置;硬件任务抽象;代理进程;软硬件任务通信 i i , 一 1 东北大学硕士学位论文 a b s t r a c t s t u d ya n di m p l e m e n t a t i o no f h a r d w a r et a s k e n c a p s u l a t i o na n dc o m m u n i c a t i o n m e c h a n i s m b e t w e e ns o f t w a r et a s ka n dh a r d w a r et a s k a bs t r a c t f 纡功t h ec u r r e n tr a p i dd e v e l o p m e n ti nc o m p u t e rt e c h n o l o g y , t r a d i t i o n a lc o m p u t e r a r c h i t e c t u r e sa n ds o l u t i o n sa r en ol o n g e ra b l et om e e tt h ed e m a n d so ff u t u r ea p p l i c a t i o n s ,a n d t h es t u d yb a s e do nt h em u l t i p r o c e s s o ra n dm u l t i c o r ea r c h i t e c t u r eh a sb e c o m et h em a i n s t r e a m r e c e n t l y , f p g aa p p l i c a t i o n sh a v ed e v e l o p e dv e r yf a s t a st h er e c o n f i g u r a t i o nt e c h n o l o g ya n d i m p l e m e n t a t i o nb a s e d o nf p g am a k eag r e a tb r e a k t h r o u g h i ti sp a v i n ga n o t h e rw a yt os o l v e c o m p l i c a t e de m b e d d e da p p l i c a t i o np r o b l e m s t h ee m e r g e n c eo ft h e p a r t i a lr e c o n f i g u r a t i o nt e c h n o l o g yo nf p g ah a sm a d et h e c o m p u t i n gr e s o u r c e so t h e rt h a nc p um o r ep i v o t a l c o n v e n t i o n a l l y , t h ec o m p u t i n gr e s o u r c e s e x c l u d i n gc p u i ns y s t e ma r ev i e w e da si od e v i c eo rc o p r o c e s s o r n o wi ti sp o s s i b l et ot r e a t t h er e c o n f i g u r a b l ef a b r i c sa st h eo t h e rc o m p u t i n gr e s o u r c ee q u i v a l e n tt oc p ui ns y s t e m ,s oa s t om a k et h em o s to ft h eh a r d w a r e sa d v a n t a g eo fs o l v i n gc o m p u t e i n t e n s i v et a s k s h o w e v e r , t h et r a d i t i o n a ld e s i g nm e t h o dr e s t r i c t st h i sa p p l i c a t i o n t h e r e f o r e ,s o m er e s e a r c h e r sp u t f o r w a r dt h ei d e ao fu s i n gt a s km o d e l ,n a m e l yh a r d w a r et a s kt o o r g a n i z ef p g a ,t h u s c o n q u e r i n gi t sl i m i t a t i o nf o rf p g a a sc o m p u t i n gr e s o u r c e t h i st h e s i se x p l o r e st h er e a l i z a t i o no fh a r d w a r et a s k sm e c h a n i s mi nl i n u xs y s t e mb o t h t h e o r e t i c a l l ya n dt e c h n i c a l l y , e v a l u a t e sd i f f e r e n td e s i g nm e t h o d s ,a n dp r o p o s e sa l li d e ao f a b s t r a c t i n gh a r d w a r et a s k i nt h i ss t u d yb a s e do nt h ei d e ao fa b s t r a c t i n gh a r d w a r et a s k , h a r d w a r et a s ki sd i v i d e di n t ot w ow e a kc o u p l i n gp a r t s :t h es o f t w a r ep a r t - - a g e n tp r o c e s sa n d t h eh a r d w a r ep a r t - - t h eh a r d w a r ec i r c u i to nf p g at oa c h i e v et h ef u n c t i o no fh a r d w a r et a s k a l s o ,t h i st h e s i sd o e ss o m ek e r n e l l e v e lr e s e a r c hi n t oh a r d w a r et a s ki nh a r d w a r ea b s t r a c t i o n , h a r d w a r et a s kl o a d i n g ,c o m m u n i c a t i o nb e t w e e nh a r d w a r et a s ka n ds o f t w a r et a s ka n d h a r d w a r et a s kt e r m i n a t i n g i nt h ei m p l e m e n t a t i o n ,t h ek e r n e lo f l i n u xo si sm o d i f i e dt o e n a b l eh a r d w a r et a s k st oc o m m u n i c a t ea n da l l o wt r a n s p a r e n to p e r a t i o nt oh a r d w a r et a s k si n u s e rs p a c e k e yw o r d s :l i n u xo s ;p a r t i a lr e c o n f i g u r a t i o n ;h a r d w a r et a s ke n c a p s u l a t i o n ;a g e n tp r o c e s s ; c o m m u n i c a t i o nb e t w e e nh a r d w a r et a s ka n ds o f t w a r et a s k i i i , l1,;j0 东北大学硕士学位论文 目录 目录 独创性声明i 摘要 a b s t r a c t h i 第1 章绪论1 1 1 研究背景1 1 2 知识简介及问题定义2 1 3 国内外相关研究介绍4 1 4 论文主要工作5 1 5 论文结构6 第2 章课题相关的技术及研究7 2 1c p u f p g a 混合平台的原型系统的基本原理7 2 2 软件任务与硬件任务模型概述8 2 3l i n u x 操作系统和内核简介9 2 4 本章小结:1 1 第3 章硬件任务抽象的研究13 3 1 系统整体模型设计1 3 3 1 1 可重配置硬件的组织1 3 3 1 2 整体模型设计1 4 3 2 代理进程1 6 3 2 1 代理进程的引入1 6 3 2 2 代理进程的设计1 7 3 3 硬件任务接口设计2 l 3 3 1 系统接口2 2 3 3 2 硬件任务接口2 3 3 3 3 通信接口2 4 3 4 硬件任务的运行状态2 5 3 5 硬件任务终结2 7 3 6 本章小结2 8 i v 东北大学硕士学位论文 目录 第4 章软硬件任务通信机制的研究2 9 4 1 进程间通信机制2 9 4 2 软硬件任务通信机制的选择3 0 4 3 中断下半部机制的选择3 2 4 4 软件任务与硬件任务间的通信3 4 4 4 1 硬件任务向软件任务通信3 4 4 4 2 软件任务向硬件任务通信3 5 4 5 硬件任务间的通信3 7 4 6 本章小结3 7 第5 章硬件任务抽象及软硬件任务通信机制的实现3 9 5 1 硬件任务的加载3 9 5 1 1 代理进程的创建3 9 5 1 2 调度器下载硬件任务到f p g a 4 3 5 2 中断与硬件任务的绑定4 3 5 3 软硬件任务间通信的实现4 4 5 3 1 硬件任务向软件任务通信实现4 5 5 3 2 软件任务向硬件任务通信实现。4 6 5 4 硬件任务终结的实现4 8 5 5 系统用户接口的实现4 9 5 5 1 系统调用4 9 5 5 2 p r o c 文件系统5 l 5 6 本章小结5 1 第6 章实验结果及应用实例5 3 6 1 硬件任务抽象实现5 3 6 1 1 生成h w t 可执行文件。5 3 6 1 2 硬件任务加载过程演示5 4 6 2 软硬件任务通信实验结果演示5 7 6 3 本章小结5 8 第7 章结论与展望5 9 7 1 结论5 9 7 2 未来的研究5 9 v l 0 东北大学硕士学位论文 目录 参考文献6 0 致谢。6 0 研究生阶段的科研情况6 0 v i 010+0 东北大学硕士学位论文第1 章绪论 1 1 研究背景 第1 章绪论 现如今,嵌入式系统得到了快速的发展,嵌入式系统已经逐步渗透到社会领域的各 个方面。嵌入式系统的性能受到越来越多的关注,在诸如图像处理、数据通信、语音识 别以及多媒体应用方面。计算密集型任务越来越多,要求嵌入式系统的处理能力越来越 强以便保证应用的需要。在要求性能的同时,嵌入式系统又需要保持较强的设计灵活性。 由于它运用的领域极其广泛,系统开发者要尽可能减少由领域变化或需求调整所带来的 重新设计和重新实现的时间和成本开销,所以系统灵活性也是嵌入式系统设计者追求的 一个重要指标。 为了提高计算性能,专家们从不同的角度和方面,对嵌入式系统不断进行改进 体系结构的设计者们通过改变核心结构( 从冯诺依曼结构到哈佛结构的转变是当代高性 能嵌入式处理器变革的重大趋势) 、使用多级流水、指令预取、分支预测和乱序执行等 技术来提高处理器的处理能力;系统组织结构的设计者通过提出集群计算、分布式计算 和并行计算等不同的拓扑结构来组织和构建新型的整体系统;而微电子开发工程师们则 通过提高频率、总线宽度以及制造工艺来改善系统的微观性能。 嵌入式系统开发者们有两种途径在嵌入式系统的性能和设计灵活性之间进行权衡。 第一种途径是通过开发专用用途的硬件电路来处理某种单一的功能任务,比如众多的 a s i c ( a p p l i c a t i o ns p e c i f i ci m e g r a t e dc i r c u i t ) 芯片已经在嵌入式系统中广泛使用。面向 功能的硬件电路能极大提高系统的性能,但是使系统的灵活性大大降低,一旦硬件电路 设计完成,便不易进行更改。第二种途径是使用通用用途处理器来增加系统的灵活性, 系统的各种功能可以以软件的方式在通用处理器上得以实现,系统功能的变更只是依赖 于软件代码的变更,大大减少了重新开发整个系统的耗费,尤其是开发硬件系统所带来 的开销j 。但是系统的所有功能不能都依赖于软件来完成,在高实时和高计算密度的领 域,软件处理往往不能满足系统的时限要求和服务质量,必须依赖于硬件电路的加速。 传统的软硬件协同设计方法【2 】的研究就是为了兼顾系统的整体性能和设计灵活性, 根据不同需求和约束对软硬件任务进行划分【3 】,提出了种种划分的算法和思想【4 】【5 1 。影 响系统性能的操作或运算用专用用途的硬件电路或是a s i c 加以实现,而需要反复修改 或变更的业务控制流程则通过软件程序来实现,软硬件间通过优化的接口完成交互,整 体系统通过硬件和软件的协同工作达到应用需求。但是软硬件划分一旦确定,特别是硬 】 东北大学硕士学位论文第1 章绪论 件实现一旦完成,再次更改就需要大量的重新设计的开销,尤其是硬件电路的重设计就 会大大影响工程或项目的进度。从大多数的实验和工程经验来看,软硬件最初的划分往 往是不够准确的,甚至是满足不了系统需求的。在开发阶段的后期,需要根据实验结果 和系统运转的实际情况不断调整最初的划分和设计,所以这无疑会使系统开发的周期大 大延长,同时也造成了大量的人力、物力等方面消耗。 但是随着可重配置计算技术及其相应器件的出现和快速发展,为上述问题的解决带 来了全新的解决途径。可重配置计算技术的核心突破就是能够动态进行硬件电路配置, 这种配置方式灵活而高效,通过硬件描述语言h d l ( h a r d w a r ed e s c r i p t i o nl a n g u a g e ) 以可编程的方式来完成并实现电路的构建。通过引入可重配置计算技术,整个嵌入式系 统既保持了设计灵活性,同时也获得了专有用途硬件电路的等价性能。硬件和软件越来 越趋向一致、等效和统一。原有的高实时的、计算密集型的软件任务可以灵活的在可重 配置器件中以硬件电路的形式加以实现并运行。软硬件协同设计的领域也因可重配置计 算技术而出现了新的机遇和挑战,软硬件划分的界限逐渐模糊起来【6 j ,二者的融合和设 计方法的统一一直一来是众多嵌入式系统设计者和开发者追求的目标【7 j ,而可重配置计 算技术就是这个目标追求过程中的具有重要意义的里程碑。 1 2 知识简介及问题定义 f p g a ( f i e l dp r o g r a m m a b l eg a t e a r r a y ) ,即现场可编程门阵列。是可重配置计算技 术中最具代表性且使用最为广泛的器件之一。f p g a 采用了逻辑单元阵列l c a ( l o g i c c e l la r r a y ) 这一概念,内部包括可配置逻辑模块c l b ( c o n f i g u r a b l el o g i cb l o c k ) 、输 出输入模块l o b ( i n p u to u t p u tb l o c k ) 和内部连接( i n t e r c o n n e c t ) 三个部分。 f p g a 是通过基于s r a m ( 静态随机存储器,s t a t i cr a m ) 的查找表( l o o k u pt a b l e ) 技术完成可重配置功能的,其中的逻辑功能和布线资源的状态都依赖于配置电路中 s r a m 所存储的数值,通过该数值来构造逻辑运算的真值表或者使其充当线路的开关和 连接点。这样,f p g a 就可以根据用户的需要改变s r a m 中的数值,从而使f p g a 中 的电路完成不同的逻辑功能和布线连接。因此,f p g a 就变为一种灵活可编程的计算资 源。 f p g a 依赖于其中s r a m 的数值,称配置电路中s r a m 数值的写入过程为配置 ( c o n f i g u r a t i o n ) ,其写入的数据就称为配置文件,或者比特流( b i ts t r e a m ) 。不同的配 置会导致f p g a 不同的逻辑行为。在f p g a 器件上配置不但可以在整个器件上电后就立 即完成,而且配置也可以在该器件运行的过程中对其部分区域进行修改而不影响其他部 2 东北大学硕士学位论文第1 章绪论 分的运作。上述的机制就是运行时局部可重配置技术( p r t r , p a r t i a lr u n t i m e r e c o r t f i g u r a t i o n ) ,也称为动态局部可重配置技术。有了该技术就意味着整个f p g a 区域 成为了一个可以不断复用的硬件资源池,不但其可以在运行的过程中动态改变逻辑功 能,使不同的任务复用f p g a 中同一区域,而且还可以把整个f p g a 区域划分成若干个 子区域,使得多个不同的任务可以在同一时间的不同区域中得以运行。因此,f p g a 成 为一个多任务的并行处理器,使得整个计算系统的体系结构发生了根本性的变革。 但是可重构计算的发展现状是硬件远远领先于软件,在可重构计算中需要一个操 作系统来管理新的可重构硬件资源,屏蔽硬件细节,并向开发人员提供高层次的编程模 型。面对这一问题,a n d r e w s 等人在文献【8 j 中提出了将由可编程器件实现的硬件功能模 块抽象为硬件任务,并纳入操作系统管理范围内的观点,并采用统一多任务模型对嵌入 式系统进行了抽象。w a l d e r 等人也认为操作系统对可编程器件进行抽象是必须的,而且 在文献一】中定义了一种能够支持可重配置硬件的操作系统框架。 硬件任务( h a r d w a r et a s k ) 在这样的环境下就应运而生了。所谓硬件任务,是指 由可重构硬件资源实现的功能模块。我们知道,硬件和软件在逻辑功能上存在完全等效 的性质,即对于给定的输入,经过传统的软件程序处理而得到的结果与功能等效的硬件 电路处理的结果应该是完全相同的。软件和硬件之间存在必然的功能等效性。硬件任务 以模块的形式在f p g a 中加以配置,并得到执行。 然而要使硬件任务在系统中真正有意义的存在并且承担类似传统软件任务一样的 作用,它自身就不能孤立地存在,它必须要与其他软件任务相互合作才可能发挥作用。 在现有的系统设计过程中,软硬件的设计是相互分离的。因为在之前的概念中,c p u 以外的的硬件资源是从属于c p u 的。并且以往在设计f p g a 硬件功能的时候也没有过 多考虑过如何在硬件自身上实现类似任务的相关功能。当试图在系统中将可重配置的 f p g a 资源以硬件任务的方式进行管理和组织的时候,就有必要研究如何合理的实现这 一功能。 在现有的系统中硬件的工作方式相对于操作系统的行为是独立的。由于软、硬件设 计所面对的问题各异,处理问题的手段和方法不同,使得一直以来生成硬件逻辑的文件 格式和代码格式相对于软件都是不一致的。虽然随着诸如i m p u l s ec 【1 0 】【1 1 】、s y s t e m c 【1 2 】【1 3 1 、等工具的出现和使用,已经可以在高层次系统建模和仿真的过程中采用统一的 语言和设计模型,但是当生成底层执行代码的时候,由于软、硬件的工作方式以及行为 上的巨大差异,软硬件二者的代码仍然是不可兼容的。所以仅依靠在语言层面上解决支 持硬件任务功能的问题是很困难的。同时由于描述硬件的语言在功能和描述对象方面的 3 东北大学硕士学位论文第1 章绪论 限制,使得在硬件上实现现有操作系统的语义行为是十分有限和低效的。 根据以上的情况,系统选择在操作系统的语义层次上添加相应的硬件任务的功能是 很有意义的。 1 3 国内外相关研究介绍 在进行本课题的研究工作时,本文查阅了大量国内外在基于可重配置的软硬件任务 混合系统设计中已经进行的相关工作,同时也借鉴了一些实现实际系统的技术经验。通 过学习为本文所提出的系统机制的设计也实现奠定了基础。 w i g l e y 等人在【1 4 】中提出了构建可重配置的操作系统中存在的问题,诸如任务下载、 可重配置器件的空间管理、调度、存储管理和保护、i o 等,同时还提出了任务间通信 问题和碎片度指标问题。但是w i g l e y 只是谈及了上述系统模型中相关的概念,没有以 实践的方式尝试搭建可重配置的操作系统。 w a l d e r 和p l a t z n e r 在【1 5 1 中描述了他们所设计实现的原型系统,其中对支持硬件任务 的系统结构设计进行了初步的尝试,用系统实践的方式描述了实现可支持软硬件协同调 度的操作系统的若干基本方法和概念并反映出了这些方法、概念实体在系统中的实现过 程。 b a s k a r a n 和s r i k a n t h a n 在【1 6 】中比较详细的提出了一个运行时可重配置的基本结构, 并且描述了h o p e s ( h a r d w a r eo p e r a t i n gs y s t e m ) 实现的一些具体技术。但是该文中只 是提出了一些系统所涉及的调度问题、区域划分问题和通信问题,同时针对这些问题在 文中都没有给出它们具体的解决方案。 n i i t t y l a h t i 和r i s s a 在 1 7 】中提出了他们所设计的混合原型系统平台。在这个平台中 f p g a 被构造在一块p c i 板卡上,通过p c i 总线与p c 上的通用c p u 进行通信。 w i a n g t o n g 、y k c h e u n g 等人在【ls 】中也用类似的结构实现了u l t r a s o n i c 的可重配 置系统,在该文中关注的的核心问题是硬件任务如何在软硬件协同设计中加以体现。 k w o k h a ys o 、t k a c h e n k o 和b r o d e r s e n 等在【1 9 】中提出了b o r p h 系统,该系统是在 操作系统内核级别中明确的支持软硬件任务的系统。这个系统是通过修改l i n u x 操作系 统内核实现的,文中提出了遵循u n i x 标准统一的访问接1 2 i 、以e l f 为基本格式的硬件任 务文件,实现了硬件任务的概念,统一了文件操作并且使其和任务间通信联系起来,提 出了具体的软硬件任务间通信的操作机制。在本文中给出了其运行的系统平台b e e 2 的 简要介绍,但是并没有关于具体的硬件平台设计实现和运行机制的描述。 p e c k 、a g r o n 、a n d r e w s 和a n d e r s o n 等人在 2 0 1 中提出了在c s o c 中实现的c p u f p g a 4 - 一 。气 0 东北大学硕士学位论文第1 章绪论 混合系统平台。在该文中他们将协同调度器、中断处理等传统操作系统重要的构件以硬 件电路的形式在f p g a 中加以实现,使c p u 从传统操作系统中的调度开销中解放出来 使其成为一个纯软件任务的平台,从而使得系统效率大大提高,对于实时系统的可预测 性更强。以硬件方式实现的调度器使得首次实现了软硬件任务的统一。同时该混合系统 为上层的开发者也提供了统一的接口和编程模型,尤其在软硬件任务的开发上提供中间 语言层,使得将硬件描述语言和高级语言做到了进一步的统一。然而本文提出的 c p u f p g a 混合系统平台设计复杂度较高,虽然给出了一些硬件调度排序单元的模型, 但是没有关注于其具体的实现细节。 相比于国外的研究工作,国内的相关研究开展较晚,进展的较慢,目前还没有实际 的原型系统和平台。仅仅有一些概念性的系统框架提出。例如b oz h o u 等在【2 l 】中提出 了s h u m l x c o s 的系统框架,这是对p c o s 系统的改造,但是由于 t c o s 本身的功能 有限且不具有控制台,使该系统的灵活性和通用性都不够理想。 1 4 论文主要工作 通过考虑硬件任务提出后对计算机体系结构的重大影响和现有系统中软硬件面临 的问题。本课题将基于c p u f p g a 混合软硬件平台的系统模型在操作系统的语义层次 上添加相应的硬件任务的功能,以力图在已有进程模型下实现对f p g a 资源的动态管 理。使操作系统中不但包含传统的软件任务,还包含以局部配置文件形式存在晦硬件任 务。 本文重点对硬件任务抽象及软硬件任务间通信机制进行了研究。通过引入代理进程 的概念对硬件任务在l i n u x 内核中进行了合理而有效的抽象。实现了在l i n u x 操作系统 中使硬件任务和软件任务成为完全对等的概念实体。为了使代理进程的语义在内核中得 以实现,本文深入研究了软硬件任务间的特点和联系。完成了代理进程的加载、硬件任 务的调度接口、软硬件任务通信、代理进程的终结等一整套内核机制的研究和实现。另 外,为了使代理进程能够代表硬件任务在l i n u x 操作系统中运行,本文为硬件任务在操 作系统上的系统接口、硬件任务接口、通信接口、用户接口等进行了设计,并且实现了 软硬件任务的通信。使在操作系统的功能上对硬件任务的通用行为进行了支持。实现了 在已有进程模型下对f p g a 资源的动态管理。并且能够在用户层使用现有进程的用户接 口管理硬件任务,屏蔽了软硬件任务的底层差异。 5 - 东北大学硕士学位论文 笫1 章绪论 1 5 论文结构 本文一共包括七章。内容安排如下: 第1 章为引言,介绍了本课题研究的背景以及背景知识和研究问题的提出。并对国 内外相关课题研究工作给予了介绍;另外对本论文的主要工作进行了阐述。 第2 章,阐述了本课题相关的技术以及原理,为后面系统的设计与实现提供理论与 技术支撑。 第3 章,对l i n u x 中硬件任务抽象进行了研究和设计。深入研究了硬件任务的行为 特点并添加了系统实现机制使在操作系统的功能上对硬件任务的通用行为进行支持。 第4 章,对软硬件任务通信机制进行了研究和设计。对比研究了l i n u x 中进程间通 信的各种手段。通过改造操作系统现有的通信机制设计出了适合软硬件任务间通信的一 套机制。 第5 章,结合3 、4 章硬件任务抽象和软硬件任务通信机制的设计研究,对其中的 具体技术给予了实现。 第6 章,给出了课题研究的实验结果和应用实例。 第7 章,对论文工作进行了总结,并提出进一步的研究方向和对未来工作的展望。 6 一 l 白 j 东北大学硕士学位论文第2 章课题相关的技术及研究 第2 章课题相关的技术及研究 本章从混合系统架构和硬件任务基本模型的角度研究软硬件混合系统。分析混合平 台的原型系统的基本原理。给出软硬件任务模型的概述。最后根据系统在l i n u x 系统上 实现的现状,阐述l i n u x 操作系统和内核的相关知识,为读者以后更好的认识硬件任务 的抽象以及其运行过程打一个基础。 2 1c p u f p g a 混合平台的原型系统的基本原理 c p u 作为软件任务的通用处理器,可以运行多种传统的操作系统,如w i n d o w s 、 l i n u x 等。由c p u 和操作系统构成了支持多任务( 多进程或多线程) 的并发执行环境。 f p g a 作为一个硬件任务的并行处理器,用户可以通过对其中逻辑资源和电路进行局部 配置从而完成不同的逻辑功能。由此,c p u 和f p g a 就形成了组建混合系统的硬件基m 础【2 2 1 。 c p u f p g a 混合平台是所有软硬件混合系统和软硬件协同设计的实验基础 2 3 】。 s t e i g e r 等人在文献【2 4 1 中给出了c p u f p g a 混合平台的系统模型,如图2 1 所示。通过i 两个双向通道,一个局部可重构f p g a 和一个主c p u 耦合。一个通道是配置和回读端 口( c 瓜) ,它使得主c p u 完全控制重构设备的配置,也就是说全局或局部的配置信息 可以下载到器件中,还有器件的状态信息可以回读给主c p u 。另一个是通信端口 ( c o m m ) ,它提供主c p u 和可重构设备之间的信号交互。这个端口连接映射到c p u 和可重构设备上的操作系统的功能。c p u 和可重构器件( r c ) 都和一些外围设备c i 相 连,这些外设包括r a m 、n a n df l a s h 、u a r t 等。 图2 1c p u f p g a 混合系统结构模型 f i g 2 1c p u f p g ah y b r i da r c h i t e c t u r em o d e l 7 东北大学硕士学位论文 第2 章课题相关的技术及研究 在c p u f p g a 混合平台中,c p u 和f p g a 并不是孤立运作的两个部分,而是相互 合作的一个完整的整体。在该平台中操作系统仍然以软件的形式运行于c p u 之上。完 成软硬件任务的加载、软硬件任务的通信、任务调度以及任务从系统中退出等一系列工 作。而硬件任务的执行,比特流文件的下载等工作就交给f p g a 上的硬件完成。 f p g a 和c p u 之间必须进行必要的系统级通信。硬件任务的状态信息、f p g a 中的 区域使用信息等以及软件任务的变量,数据等信息都要通过系统级通信使c p u 中运行 的操作系统和f p g a 上运行的硬件进行信息的交互。同时,整体系统中多个软件任务和 硬件任务也并非独自运行,它们之间可能存在数据或规程的依赖关系,它们必须协同工 作才能达到功能目标,所以软硬件任务间的通信( 如互斥、同步) 及任务间的数据传输 是系统中必不可少的组成部分。这也依赖于c p u 和f p g a 间的接口来完成。综上,系 统级和任务级的通信信道应存在于c p u 和f p g a 相应的接口之间。 c p u 和f p g a 间除了上述的通信接口,还应存在一组专门用于配置f p g a 的接口。 c p u 从文件系统中读出硬件任务对应的局部配置文件,将其中的数据以比特流的形式 转发到f p g a 专有的配置端口上,通过此配置端口传入配置电路之中,从而实现硬件任 务的加载,使之在f p g a 上得以运行。 2 2 软件任务与硬件任务模型概述 为了更好的理解软硬件任务混合系统,下面就软件任务和硬件任务模型给予简要描 述。 混合系统模型要求软硬件任务对设计者透明,但是硬件任务和软件任务由于实现方 式和物理基础的不同,存在很大差异,因此操作系统设计者需要关注软硬件任务的根本 区别,这也是系统成功的关键: ( 1 ) 硬件任务的数量受限于可重配置资源数量;而软件任务的数量受限于存储器 容量,实时任务还受限于c p u 的运行能力总和。 ( 2 ) 软件任务必须通过任务切换分享c p u 计算资源,硬件任务通常创建后就独占 相应计算资源,因此硬件任务在运行态不必进行任务切换。 ( 3 ) 通过保存内部寄存器以及任务堆栈,软件任务较容易实现运行上下文的保护; 硬件任务的上下文保护则非常困难,需要可重构器件提供特殊的支持。这使得对硬件任 务一般只能采用非剥夺式调度。 ( 4 ) 软件任务只能串行运行,在任意时刻,一个c p u 上只能有一个软件任务运行; 与软件任务不同,同一时刻可以有多个硬件任务处于激活状态,硬件任务可以并行运行, 8 。 匀 东北大学硕士学位论文第2 章课题相关的技术及研究 甚至是具有同样功能的多个硬件任务并行运行也是允许的。 软件任务又可以被称为进程,是指普通嵌入式操作系统能够管理和调度的单元,一 般一个软件任务实现单一的功能,可以是负责全局应用的一个模块,也可以实现特定的 额外功能,这样嵌入式操作系统就能协调地调度和管理多个任务,从而实现多个任务的 分时复用或者并行执行。对单个软件任务而言,它是严格按照源程序中的指令顺序执行 的。在一个嵌入式操作系统中,内核通过管理任务上下文以及任务控制块对软件任务进 行管理和调度,任务间的通信则是通过特定管道、消息队列、信号量等机制来实现。 软件任务一般是通过高级语言来设计,因此设计起来比较灵活,设计人员在设计软 件任务时首要关心的就是相应的算法的执行效率。如在l i n u x 和r t e m s 等系统中, 软件任务是基于p o s i xt h r e a dc 语言设计的,而在i t c o s i i 系统中,任务就是通过扩展 a n s ic 语言描述实现的。 硬件任务【2 5 】是指嵌入式系统中基于可编程逻辑芯片实现的功能模块。硬件任务的主 要特性包括:( 1 ) 硬件任务在可重配置硬件资源上执行,任务数量受限于可重配置资 源的数量;( 2 ) 硬件任务的实现需要预先分配资源并配置后才能开始执行,配置耗时 长;( 3 ) 一个硬件任务配置完成后即可开始执行,在完成之前一般不会释放其占用的 可重配置资源;( 4 ) 一定数量的硬件任务可以并行执行。通常我们所说的硬件任务是 经过内部综合,具有固定长度和宽度、固定时钟频率界限的矩形逻辑功能模块,可由四 维向量t ( h ,w ,a ,e ) 描述,其中h 、w 分别代表硬件任务的长和宽,a 是任务的到达时间, e 是执行时间【2 6 】。 在实际的软硬件混合操作系统中,硬件任务也被操作系统视为基本的调度单元,因 此硬件任务也应该有一个能与操作系统进行通信的接口。 2 3l i n u x 操作系统和内核简介 本文是以l i n u x 操作系统为软件平台进行课题的研究。下面对l i n u x 操作系统及其 内核功能进行介绍。 操作系统是指在整个系统中负责完成最基本功能和系统管理的那些部分。这些部分 应该包括内核、设备驱动程序、启动引导程序、命令行s h e l l 或者其他种类的用户界面、 基本的文件管理工具和系统工具【2 7 1 。 内核是操作系统的内在核心。操作系统其他部分必须依靠内核提供的服务,像管理 硬件设备,分配系统资源等等。内核有时候也被

温馨提示

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

评论

0/150

提交评论