(计算机系统结构专业论文)支持异构多核的嵌入式实时操作系统.pdf_第1页
(计算机系统结构专业论文)支持异构多核的嵌入式实时操作系统.pdf_第2页
(计算机系统结构专业论文)支持异构多核的嵌入式实时操作系统.pdf_第3页
(计算机系统结构专业论文)支持异构多核的嵌入式实时操作系统.pdf_第4页
(计算机系统结构专业论文)支持异构多核的嵌入式实时操作系统.pdf_第5页
已阅读5页,还剩80页未读 继续免费阅读

(计算机系统结构专业论文)支持异构多核的嵌入式实时操作系统.pdf.pdf 免费下载

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

文档简介

浙江大学硕士学位论文摘要 摘要 在嵌入式系统飞速发展的今天,各种嵌入式系统正广泛应用于生产和生活的 各个领域。面对嵌入式系统功能的复杂化,对性能要求、功耗要求的不断提高, 越来越多的嵌入式应用需要基于异构多核处理器的硬件环境。但由于目前国内支 持异构多核处理器结构的嵌入式实时操作系统产品并不多见,导致基于异构多核 的嵌入式系统开发周期冗长,软件产品可维护性弱,系统移植性差。 本文在分析了目前异构多核处理器环境下的应用需求的基础上,结合多核处 理器的硬件特性和s m a r t o s e ko s 现状,并基于t m s 3 2 0 d m 6 4 4 6 异构多核处理 器,设计和实现了一个支持异构多核的嵌入式实时操作系统s m a r t o s e ko s m , 并在此基础上设计了一种基于该操作系统的编程模型,为异构多核处理器环境下 的嵌入式应用提供了一个系统级的支撑平台,对于异构多核环境下的嵌入式软件 开发具有重要的现实意义。 本文的主要工作可以总结为以下几个方面: 1 1 设计了一个支持异构多核的实时操作系统s m a r t o s e ko s m 的整体架 构,在具体的异构多核处理器上完成了实际系统的构建,并设计了一种 在s m a r t o s e ko s m 操作系统之上的编程模型。 2 ) 实现了s m a r t o s e k o s m 的多核支持服务,设计实现了核间的任务同步 和任务通信,并对原有的任务模型进行了扩展,实现了对共享内存的管 理,并实现了一个用于核问互相引用彼此符号的符号表系统。 3 1 采用层次化的设计方法,将多核硬件相关的底层处理与上层的多核支持 服务分离,设计并实现了支持多核服务的多核基础支持层。 关键词:异构多核、实时操作系统、任务同步、任务通信、符号表、共享内存 浙江大学硕士学位论文 a b s t r a c t a b s 仃a c t a st h ee m b e d d e ds y s t e mb e i n gd e v e l o p e dr a p i d l yt h e s ey e a r s ,也e ya r ew i d e l y a p p l y i n gt ov a r i o u sf i e l d so f i n d u s t r i a lp r o d u c t i o na n dc i v i ll i f e w l l i l em a n ye m b e d d e d s y s t e m sf u n c t i o n a l i t ya n dp e r f o r m a n c er e q u i r e m e n ti si n c r e a s i n g , t h ed e v e l o p e r sw a n t t ob eb u i l dt h e i re m b e d d e da p p l i c a t i o n so l lt h eh e t e r o g e n e o u sm u l t i c o r ep m e e s 娜 h o w e v e r , i nc h i n a , t h e r e sf e wo p e r a t i n gs y s t e ms u p p o r t i n gt h eh e t e r o g e n e o u s m u l t i c o r ep r o c e s s o r s ,w h i c hc a u s e st h ee m b e d d e ds y s t e md e v e l o p m e n to nm u l t i c o r e s t ob eal o n gp e r i o d ,w h i c hl e a d st oa nu n - p o r t a b l ep r o d u c tw i t hl o wm a i n t a i n a b i l i t y a f t e rt h ei n v e s t i g a t i o no ft h er e q u i r e m e n t so nh e t e r o g e n e o u sm u l t i - c o r ep l a t f o r m s a n ds m a r t o s e ko s ,t h i st h e s i sd e s c r i b e st h ed e s i g na n di m p l e m e n t a t i o no fa h e t e r o g e n e o u sm u l t i - c o r es u p p o r t i n gr e a l - t i m eo p e r a t i n gs y s t e mc a l l e ds m a r t o s e k o s - mb a s e do nt h em u l t i - c o r ep l a t f o r mt m s 3 2 0 d m 6 4 4 6 s m a r t o s e ko s mp r o v i d e as y s t e ml e v e ls u p p o r t i n gp l a t f o r mf o rt h ee m b e d d e ds o f t w a r eo nh e t e r o g e n e o u s m u l t i - c o r ep r o c e s s o r s ,w h i c hh a sm u c hp o s i t i v ep r a c t i c a li m p a c to nt h ee m b e d d e d s y s t e md e v e l o p m e n t i nt h e s eh a r d w a r ee n v i r o n m e n t 1 1 1 ec o r ew o r ko f t h et h e s i sc a nb eg e n e r a l i z e da sf o l l o w i n g : 1 11 h et h e s i sd e s i g n e dt h ea r c h i t e c t u r eo far e a l - t i m eo p e r a t i n gs y s t e m s u p p o r t i n gh e t e r o g e n o u sm u l t i c o r e s ,i m p l e m e n t e dt h ea r c h i t e e u r ei nar e a l h e t e r o g e n o u sm u l i t c o r ep r o c e s s o ra n dd e s i g n e dap r o g r a m m i n gm o d e lo ni t 2 、s m a r t o s e ko s mi nt h et h e s i ss c a l e dt h et a s km o d e la n dd e s i g n e dt h e “m u l t i - c o r es e r v i c e l a y e r ,i n c l u d i n gd i s t r i b u t e d t a s k s y n c h r o n i z a t i o n , d i s t r i b u t e dt a s k c o m m u n i c a t i o n ,s h a r e dm e m o r ym a n a g e m e n t a n dt h e d i s 仃i b u t e ds y m b o lt a b l e 3 ) s m a r t o s e ko s - mi nt h et h e s i sd e s i g n e dt h e m u l t i - c o r es u p p o r t i n gl a y e r , w h i c hs e p a r a t e st h eo p e r a t i o n sr e l a t e dt oh a r d w a r ea n di su s e df o rs u p p o r t i n g t h e “m u l t i c o r es e r v i c el a y e r ” k e y w o r d s :h e t e r o g e n e o u sm u l t i c o r ep r o c e s s o r , r e a l - t i m eo p e r a t i n gs y s t e m ,t a s k s y n c h r o n i z a t i o n ,t a s kc o m m u n i c a t i o n ,s y m b o lt a b l e ,s h a r e dm e m o r y “ 浙江大学硕士学位论文圈目录 图目录 图2 1 基本任务模型8 图2 2 扩展任务模型8 图2 3s m a r t o s e ko s 任务通信10 图2 4s m a r t o s e ko s 时间管理1 1 图2 5c e l l 异构多核处理器结构图【1 3 】1 3 图2 - 6t m s 3 2 0 d m 6 4 4 6 异构多核处理器结构刚1 5 1 1 4 图3 1s m a r t o s e ko s m 系统结构图2 l 图3 2s m a r t o s e ko s m 编程模型2 3 图4 1 改进的二进制指数回退算法3 2 图4 2 获取访问控制权流程图一3 3 图4 3i n t g e n 寄存器3 7 图4 。4 符号表结构3 9 图4 5 增加一个核问符号4 1 图4 6 删除一个核问符号4 2 图4 7 查询一个核间符号4 3 图4 8 核间信号量与其悬挂任务队列结构4 5 图4 9 新的任务模型4 6 图4 1 0 获取核涮信号量流程图4 9 图4 1 l 主动释放核间信号量流程图5 0 图4 1 2 核问消息队列结构5 2 图4 1 3 核问任务通信模块初始化5 3 图4 1 4 发送一个核间消息5 4 图4 1 5 接收一个核间消息5 6 图4 1 6 空闲内存表初始状态5 8 图4 1 7 空闲内存管理结构图5 9 图4 - 1 8 伙伴判断方法示意图6 1 图5 1 测试案例a r m 端测试结果6 8 图5 。2 测试案例d s p 端测试结果6 9 图5 3 应用实例计算功能实现流程图7 1 图5 - 4 案例运行结果串口截图7 2 图5 。5 案例运行结果实拍图7 2 i v 浙江大学硕士学位论文表目录 表目录 表4 1a r m 核的堆栈中的任务上下文保存结构2 7 表4 2d s p 核的堆栈中的任务上下文保存结构3 0 表4 3 基于t m s 3 2 0 d m 6 4 4 6 的电源管理服务表3 8 表4 _ 4 无占用时间设置的信号量死锁实例4 8 表4 5 有占用时间设置的信号量无死锁实例4 8 表4 6 共享内存系统数据地址映射表6 2 表4 - 7 各模块系统调用错误代码表6 3 表4 8 配置宏定义表6 4 表4 - 9 多核系统调用的错误处理钩子函数6 5 表4 1 0 核间任务通信的通知机制涉及的回调函数6 5 表5 1 应用实例a r m 端任务描述7 0 v 浙江大学研究生学位论文独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发 表或撰写过的研究成果,也不包含为获得逝姿盘茎或其他教育机构的学位或 证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示谢意。 学位论文作者签名:前娥、 签字日期: 硝年月 日 学位论文版权使用授权书 本学位论文作者完全了解盘姿盘茎有权保留并向国家有关部门或机构 送交本论文的复印件和磁盘,允许论文被查阅和借阅。本人授权堑姿盘堂可 以将学位论文的全部或部分内容编入有关数据库进行检索和传播,可以采用影 印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 躲儆像名;肇酗荨 签字日期:衙月f 日 签字醐:砂扩月日 砂y 浙江大学硕士学位论文第1 章绪论 第1 章绪论 1 1 项目背景 一直以来,处理器芯片厂商都通过不断地提高主频来提高处理器的性能。但 随着芯片制造工艺的不断进步,传统的处理器体系结构技术已面临瓶颈【1 1 。晶体 管的集成度已超过上亿个,很难单纯地通过提高主频来提升性能,“微处理器的 性能每隔1 8 个月提高一倍,而价格下降一倍”的摩尔定律已经受到了巨大的挑 战。另一方面,主频提高同时也带来功耗的提高,但是日益复杂的科学计算,多 媒体处理,虚拟化等多个应用领域都需要更为强大的计算能力。因此,在这样的 背景下,各个主流处理器厂商先后将处理器战略从单核转移到了多核处理器,其 中比较知名的有用于p c 机i n t e l 的酷睿2 双核处理器,m m 、索尼和东芝联 合推出的用于索尼p s 3 和微软) ( b o x 3 6 0 的c e l l 9 核异构处理器等。 多核处理器的出现,给在此之上的软件开发提出了一个前所未有的挑战,包 括多核的编译器,新的支持多核的编程语言,以及支持多核的操作系统。其中, 操作系统作为软件系统的核心和基础,能否给开发者提供更为方便和高效的编程 方法和编程接口,显得尤为重要。特别是在蓬勃发展的嵌入式领域,随着异构多 核处理器【2 1 的应用日益广泛,急需一个支持多核的嵌入式实时操作系统平台来为 开发人员提供更为方便的内核服务和编程模型。 s m a r t o s e ko s 是浙江大学e s e 工程中心开发的符合o s e k v d x 标准的超 微内核、强实时的嵌入式实时操作系统。s m a r t o s e ko s 是一个适用于多种嵌入 式设备的实时操作系统,具有可裁剪、可配置、代码效率高、硬件要求低、运行 可确定等特点。 s m a r t o s e ko s 版本是国内唯一通过国际o s e k 组织认证的嵌入式实时操作 系统,并且已经在奇瑞、一汽和其它一些单位的项目中得到实际的应用。浙江大 学e s e 工程中心通过反复测试并且优化了部分内核,并继续推广应用,因此 s m a r t o s e ko s 被认为是一个高效、安全、可靠的多任务实时内核。 浙江大学硕士学位论文 第1 章绪论 但是,目前s m a r t o s e ko s 只能应用在单核的处理器平台上,并不支持多核 环境下的应用。因此,为了满足嵌入式领域中多核处理器日益广泛的应用需求, 急切需要在目前s m a r t o s e k o s 的基础之上,扩展内核功能,使其能够支持嵌入 式领域的异构多核处理器环境,研发一个支持异构多核的嵌入式实时操作系统 s m a r t o s e ko s m 。 1 2 研究基础与现状 多处理器系统与多核处理器系统具有一定的硬件相似度,支持多处理器的嵌 入式操作系统对本文支持多核的操作系统的研究具有借鉴意义,本节简要介绍了 目前嵌入式领域的一些支持多处理器的操作系统。同时本节还介绍了s m a r t o s e k o s 的现状,并提出了其与支持异构多核的s m a r t o s e ko s m 之间的差距。 1 2 1 支持多处理器的嵌入式操作系统 , 目前在嵌入式操作系统领域存在着多种支持多处理器的操作系统,其中比较 著名的有v x w o r k s 、r t e m s 和q n x ,以及由研究者将g c o s 进行改造而形成的 增加了多处理器支持的版本,特别是q n x ,支持所有的多核架构。本节着重介绍 这4 个操作系统,以及它们对多处理器或多核的支持。 1 、v x w o r k s 【3 】 v x w o r k s 是一个很著名的商用实时操作系统。v x w o r k s 实时操作系统凭借其 良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操 作系统领域占据一席之地。 v x w o r k s 对多处理器的支持主要体现在它的可选库v x m p 4 1 ,v x m p 最大可 支持2 0 个c p u ,允许不同c p u 上的任务进行同步,数据交换等操作。目前支持 的体系结构有:6 8 0 x 0 、6 8 3 x x 系列,s p a r c ,s p a r cl i t e ,i n t e l8 0 9 6 0 系列和m i p s r 3 0 0 0 、r 4 0 0 0 等。 v x w o r k s 以其良好的可靠性和卓越的实时性被广泛地应用在军事、航空、航 天等高精尖技术等实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、 2 浙江大学硕士学位论文第1 章绪论 飞机导航等。在美国的f 1 6 、f a 1 8 战斗机、b 2 隐形轰炸机和爱国者导弹上, 甚至连1 9 9 7 年4 月在火星表面登陆的火星探测器上也使用到了v x w o r k s 。 2 1r t e m s r t e m s ,即实时多处理器系统限e a lt i m ee x e c u t i v ef o rm u l t i p r o c e s s o r s y s t e m s ) ,是一个开源的无版税实时嵌入操作系统( r t o s ) 【5 1 。它最早用于美国 国防系统,早期的名称为实时导弹系统( r e a l t i m e e x e c u t i v e f o r m i s s i l es y s t e m s ) , 后来改名为实时军用系统( r e a l t i m e e x e c u t i v e f o r m i l i t a r y s y s t e m s ) ,现在由o a r 公司负责版本的升级与维护。 对于多处理器系统的支持,r t e m s 提供了一系列灵活有效的机制。目前支 持的多处理器系统不但包括传统的紧耦合系统与松耦合系统,还对混合耦合系 统、异构系统以及混合异构系统都提供了强有力的支持。r t m e s 屏蔽了底层通 信的细节,允许整个多处理器系统的软硬件在逻辑上表现为一个系统。 目前无论是航空航天、军工,还是民用领域,r t e m s 都有着极为广泛的应 用。 3 1 改造后的i t c o s l _ t c o s 6 1 是开源的实时操作系统,是专门为计算机的嵌入式应用设计的实时 操作系统,绝大部分代码是用c 语言编写的。c p u 硬件相关部分是用汇编语言编 写的、总量约2 0 0 行的汇编语言部分被压缩到最低限度,为的是便于移植到任何 一种其它的c p u 上。许多移植的范例可以从网站上得到。用户只要有标准的a n s i 的c 交叉编译器,有汇编器、连接器等软件工具,就可以将肛c o s 嵌入到开发的 产品中。 t c o s 具有执行效率高、占用空间小、实时性能优良和可扩展性能等特点, 最小内核可编译至2 k b 。p c o s 已经移植到了几乎所有知名的c p u 上。 然而,r l c o s 不支持在多处理器环境下的应用,“c o s 本身只是一个在单处 理器环境下的实时操作系统,但是通过适当的改造,p c o s 可以变成一个在非对 称多处理器环境下的操作系统m 。通过将肛c o s 移植到不同的核上,然后通过简 浙江大学硕士学位论文第1 章绪论 单的中断和共享内存通信机制,实现简单的多处理器操作系统平台。 4 1 支持多核的嵌入式实时操作系统一q n x q n x 是一个真正的微内核操作系统,它的驱动程序,应用程序,协议栈和文 件系统都在内核外作为进程运行,从而几乎所有组件都可以失败再重启,而不影 响内核或其他组件。q n x 使用消息传递作为进程间通信( p c ) 的基本方式,因 此其系统可扩展性强,模块化程度高和易于使用。q n x 提供高级图形用户接口、 网络支持、j a v a 环境和驱动程序开发工具。q n x 已经被成功地应用在成千上万的 关键系统中,包括:9 1 1 报警系统、高端路由器、医疗仪器、车内电子系统平台、 过程控制系统、航空航天系统,等等。 q n x 是目前唯一的一个全面支持多核解决方案的嵌入式操作系统,它支持对 称多处理( s m p ) ,非对称多处理( a m p ) 和b o u n d 多处理等模型【引。 q n x 还提供了一套用于开发多核程序的工具,包括监控核间通信工具,应用 p r o f i l e 工具,多个核上的源码级调试等。 对于本文关注的非对称多处理模型,q n x 在每个核上运行一个操作系统实 例,并且提供了一种能够透明地在核间通信的机制。 1 2 2s m a r t o s e ko s 现状 s m a r t o s e k o s 是由浙江大学e s e 工程中心开发的符合o s e k v d x 9 惦准的 嵌入式实时操作系统,是一套面向汽车电子控制的软件开发平台。s m a r t o s e ko s 是第一款国内自主研发的面向汽车电子控制领域的嵌入式实时操作系统,也是目 前唯通过o s e k 国际认证的操作系统。 虽然s m a r t o s e ko s 是一个安全稳定的多任务实时操作系统,能够很好的承 担单核环境下用户的各种应用要求,但是对于日益扩张的嵌入式异构多核处理环 境下的应用缺乏有效的支持,目前无法在多核环境下工作。 1 3 研究目的 本项目的主要目的是对现有的s m a r t o s e ko s 进行改进和扩展,在一定程度 4 浙江大学硕士学位论文 第1 章绪论 上对现有内核功能进行提升和革新,设计实现一个高效、可靠并支持异构多核的 嵌入式实时操作系统s m a r t o s e ko s m ,以满足目前的嵌入式异构多核硬件环境 的需求,尤其是未来汽车电子和车载系统的需求。其具体目标有: 1 ) 继承s m a r t o s e ko s 系统高效、可靠的优点。 2 ) 设计一种易于扩展和配置的整体架构。 3 ) 设计一种用于异构多核的软件开发模式 4 1 设计和实现基于共享内存的多核核间任务消息通信系统 5 ) 设计和实现基于共享内存和核间中断的核间任务同步系统 6 1 设计和实现用于核问变量引用的核问符号表系统 7 1 扩展s m a r t o s e ko s 内存管理,使其能够高效管理共享内存,支持高效 的动态内存管理 1 4 论文主要内容和贡献 本文在调研总结多个嵌入式操作系统的各种支持多处理器的基本技术的基 础上,提出了对于s m a r t o s e ko s m 的整体设计方案,为s m a r t o s e ko s m 设 计了一种易于移植、可扩展的整体架构,并详细说明了s m a r t o s e ko s m 各个模 块的设计与实现,包括各个核上的单核操作系统的移植,核间操作系统任务的通 信和同步,核问符号表系统,共享内存和独享内存的管理和多核的芯片能源管理。 目前业界支持嵌入式异构多核的操作系统很少,导致应用开发周期较长,滞 后的软件开发平台发展的滞后制约了上层应用的发展。因此,研发一个支持异构 多核的嵌入式实时操作系统具有很重要的现实意义。 1 5 论文组织结构 本文的内容和结构安排如下: 第一章为绪论。该章节蜕明了论文的项目背景,简单说明了相关的研究基础 和现状,明确了项目目标。 第二章介绍s m a r t o s e ko s m 的技术基础。该章节在调研目前常见的支持多 浙江大学硕士学位论文 第1 章绪论 处理器实时操作系统的基础上,对开发一个支持多核的操作系统的基本技术和本 项目用到的一些其他技术进行了总结。 第三章为s m a r t o s e ko s m 的整体设计,说明了s m a r t o s e ko s m 的整体 设计方案以及各个模块的主要功能。 第四章为s m a r t o s e ko s - m 各模块设计与实现,详细说明了s m a r t o s e k o s m 各个模块的具体设计实现方法。 第五章为s m a r t o s e ko s - m 的测试和应用实例。 第六章为工作总结与展望,总结了本文的工作,并对未来工作进行了展望。 6 浙江大学硕士学位论文 第2 章s m a r t o s e ko s - m 技术基础 第2 章s m a r t o s e ko s m 技术基础 支持异构多核的嵌入式实时操作系统s m a r t o s e ko s - m 的研发是一个软硬 件涉及范围很广的工程,在研发s m a r t o s e ko s m 的过程中需要用到的技术和理 论基础包括s m a r t o s e ko s 单核版本的内核功能及其目前应对支持多核所存在的 缺陷,面向嵌入式领域的异构多核处理器及其开发环境的选择,此外最重要的是 如何构建一个基于异构多核环境的系统。 2 1 实时操作系统s m a r t o s e ko s 实时多任务操作系统( r e a lt i m em u l t i t a s k i n go p e r a t i o ns y s t e m ,r t o s ) 是嵌入 式应用软件的基础开发平台。s m a r t o s e ko s 管理硬件资源,为嵌入式软件提供 各种服务。实时系统封装底层的复杂硬件操作,方便开发人员管理硬件,同时为 嵌入式开发者提供各种内核服务。使用嵌入式实时操作系统,加快了嵌入式软件 开发的速度,增强了各个嵌入式软件的可移植性。当嵌入式系统中软件比重不断 上升,嵌入式操作系统为嵌入式软件开发引入了一种新的管理方法,提升了嵌入 式软件的软件开发过程。 o s e k n d x 标准是欧洲汽车工业标准,其目的是为汽车电子控制软件开发提 供一统一开放的系统接口。s m a r t o s e ko s 嵌入式实时操作系统是由浙江大学嵌 入式系统工程中心( e s e ) 开发的符合o s e k 标准的嵌入式实时操作系统,是一套 面向汽车电子控制的软件开发平台。同时s m a r t o s e ko s 实现了作为一个嵌入式 操作系统应有的任务调度,任务同步,任务间通信,内存管理,中断管理,时间 管理等内核服务。 本节将从任务的调度和同步,任务通信,内存管理,时间管理等方面着重介 绍目前s m a r t o s e k o s 己经实现的内容与支持异构多核的操作系统的要求之间存 在的差距。 2 1 1 任务调度和同步 s m a r t o s e ko s 根据了o s e k 标准定义了两类任务: 浙江大学硕士学位论文 第2 章s m a r t o s e ko s - m 技术基础 基本任务( b a s i ct a s k s ) 扩展任务( e x t e n dt a s k s ) 基本任务和扩展任务的状态模型如图2 - 1 和图2 - 2 所示,基本任务有三个任 务状态:就绪、运行、挂起。扩展任务有四个任务状态:就绪、运行、等待、挂 起。扩展任务与基本任务的区别在于扩展任务可以调用操作系统提供的系统调用 而改变自己的状态到等待状态【l o l 。 因此,扩展任务相比基本任务多了一个同步点,即“等待”状态。但是,目前 s m a r t o s e ko s 的实现对于“等待”状态的管理比较简单,只是将进入等待状态的 任务设置为“等待”,却不关注任务等待的次序。若要将任务的“等待”机制运用到 s m a r t o s e ko s m 中,则需要改进,使o s 能够管理“等待”的顺序状态。 图2 - 1 基本任务模型 图2 - 2 扩展任务模型 浙江大学硕士学位论文第2 章s m a r t o s e ko s - m 技术基础 s m a r t o s e ko s 用于任务间同步的方法有2 种:事件机制和资源机制。 1 1 事件机制即上述包含“等待”状态的扩展任务所特有的机制。事件机制 是同步的一种实现方式,它只对扩展任务有效。它开始了任务状态从或 向等待状态转换。每个扩展任务都有一定数量的事件。而这个任务成为 事件的属主,一个独立的事件可以通过它的属主和名字识别。当激活了 一个扩展任务之后,它的事件被操作系统清除【1 0 1 。应用程序定义事件的 含义,比如一个定时器到时,资源的可用性改变,接收到信息等等。事 件的触发是扩展任务由等待状态向就绪状态的转化标准。操作系统需提 供设置、清除以及等待事件发生的服务。 2 ) 资源机制则没有任务模型的限制,可以应用于o s e k 标准规定的2 个任 务模型。资源机制是用来处理系统对于资源的独占访问时出现的任务同 步问题。资源机制用来协调多个优先级不同任务对共享资源的访问,比 如,管理实体( 调度器) ,程序序列,内存,硬件等。资源管理是强制的, 能随意的扩展,协调对并发任务和中断的访问。主要能保证:两个任务 不能在同一时刻占有相同的资源,不会发生优先级反转,使用资源时不 会发生死锁,使用资源不会导致循环等待状态等【l 叭。 上述两种任务同步方法在单核的系统上,可以很好的满足上层应用程序的要 求。但是对于一个在多核环境下运行的应用程序来说,它不能满足不同核之问的 任务同步要求,需要在原有的任务模型和同步方式的基础上,设计一种用于核间 任务同步的新方法。 2 1 2 任务通信 s m a r t o s e ko s 的任务通信遵循o s e kc o m 标准,o s e kc o m 标准 1 1 】是 o s e k n d x 的重要组成部分,旨在为汽车电子控制元件提供一个统一的通信环 境,增强通信软件的可移植性,提高通信软件的开发速度。 s m a r t o s e ko s 的任务间通信利用消息对象实现一种任务间及中断间通信机 制,并提供消息过滤、接受通知等功能。s m a r t o s e ko s 的内部通讯实现了在单 9 浙江大学硕士学位论文第2 章s m a r t o s e ko s - m 技术基础 处理器上任务与任务( 或中断) 之间数据的交换,是e c u 内部的消息传送过程, 不需要经过下层网络,消息对象直接通过交互层进行数据交换,不需要最后期限 监控。消息发送者的消息可以发送给多个消息接受者,而且可以选择消息以队列 或非队列的方式接型1 0 1 ,如图2 3 所示。 图2 - 3s m a r t o s e ko s 任务通信 但是s m a r t o s e ko s 的任务间通信的应用场景仅限于单处理器系统,对于多 核的硬件环境却无能为力,因此需要扩展任务间的通信方式,使得处于不同核上 的任务能够互相发送消息,实现核问任务的通信。 2 1 3 内存管理 s m a r t o s e ko s 对于内存的管理比较简单。其特点是只有静态内存分配。由 于s m a r t o s e ko s 的应用领域主要是汽车电子控制领域,因此要求具有很强的实 时性,在时间上要求确定,代码效率高,因此没有将动态内存作为一个选项。 对于内存管理,s m a r t o s e ko s 的作用范围为:系统堆栈,任务堆栈,系统 代码段,系统数据段等。其中任务堆栈为用户静态定义,而其他则是操作系统在 编译阶段或编译之前就确定的内部内存。 面对多核的体系结构,内存管理的作用范围显然要比单处理器大。一般来说, 一个多核处理器的内存主要包括各个核独占的内存和共享内存。特别是共享内 存,其特点是多个核都具有对其的访问权限,因此也需要特殊的机制来保证这部 1 0 浙江大学硕士学位论文第2 章s m m t o s e ko s m 技术基础 分内存的正确访问和高效管理。 2 1 4 时间管理 s m a r t o s e ko s 提供处理重复事件的服务。这些事件可能会使用一个例子定 时器提供一个周期的中断或者当一个轮轴角度发生固定的变化的时候,编码器产 生一个中断,或者其他定义了跟踪器的规则应用。 s m a r t o s e ko s 的时间管理,提供了3 种基本的定时服务:周期或非周期定 时激活任务,周期或非周期定时设置事件,周期或非周期激活回调函数。对处理 这样的事件,我们参照o s e k 标准引入了两级管理的概念。通过执行一个特制的 计数器,这些重复事件被注册。然后根据这个计数器,操作系统为应用软件提供 了a l a r m 机制。对于计数器的值,我们可以通过系统的时钟t i c k s 来衡量。系统 提供最少一个计数器,它来自系统的硬件或软件定时器【”l 。 应用层 系统实现层 硬件中断层 图2 - 4s m a r t o s e ko s 时间管理 因为,s m a r t o s e ko s 这种计时功能的实现依赖于硬件时钟,而在异构多核 架构下,各个核的时钟源可能不是同一个,为了多个核之间的计时单位需要统一, 在原有的时间管理基础上需要做适当的改进。 2 2 面向嵌入式领域的异构多核处理器 多核处理器,即片上多核处理器( c h i pm u l t i p r o c e s s o r ,c m p ) 就是将多 浙江大学硕士学位论文第2 章s m a i i o s e ko s - m 技术基础 个计算内核集成在一个处理器芯片中,从而提高计算能力。多核处理器按照内核 的对等与否,多核处理器又可以分为同构多核和异构多核。 同构多核【i 】指的是计算内核相同,具有相同的体系结构,指令集,且地位对 等的多核处理器。现在的i n t e l 和a m d 主推的双核处理器就是同构的双核处理 器。一般同构多核在桌面系统,服务器等领域应用比较广泛。 异构多核【l 】指的是计算内核不同,体系结构,指令集等不同,且地位不对等 的多核处理器。异构多核通常采用的是“通用处理核+ 专用处理核”的设计,m m 、 索尼和东芝推出的c e l l 处理器正是这种异构架构的典范。根据a m d a l h l 定理,程 序的加速比决定于串行部分的性能,所以,从理论上来看异构多核处理器具有更 好的性能。 在嵌入式领域,异构多核的处理器比较常见,这是因为一些专用硬件在性能 和功耗方面在处理一些特殊的事务时会比通用处理器更有优势。一般的异构多核 的处理器采用“通用处理核+ 专用处理核”的设计,比如采用a r m 核作为通用处 理核,而将x m l 处理核、d s p 核,t c p i p 协议处理核等作为专用处理核。 目前市场上有许多比较成熟的异构多核处理器,比较著名和成熟的有以下一 坞: 2 2 1c e l l 异构多核处理器 c e l l 是由i b m 、索尼和东芝等公司共同研发的多核处理器【1 2 1 1 3 】。c e l l 内部共 有9 个c p u 内核,包括一个6 4 位p o w e r p c 微处理器部件( p o w e rp r o c e s s i n g e l e m e n t ,p p e ) 和8 个协处理器部件( s y n e r g i s t i cp r o c e s s i n ge l e m e n t s ,s p e ) 。 c e l l 主核p p e 是一个p o w e r 架构r i s c 型6 4 位c p u ,协处理核是8 个浮点 处理用的3 2 位8 路s i m d 型c p u 。p o w e r 微处理器内核是c e l l 处理器的大脑, 是运行设备的主操作系统,并为8 个“协处理器”分配任务。 c d l 的p p e 的一级c a c h e 配备1 6 k b 指令c a c h e 和1 6 k b 数据c a c h e 以及5 1 2 k b 的二级c a c h e 。1 个s p e 的最大单精度浮点运算速度为3 2 g 每秒,8 个s p e 的峰 值性能为2 5 6 每秒,9 个核心同步时钟运行。c e l l 采用灵活的架构设计,使得它 1 2 浙江大学硕士学位论文 第2 章s m a r t o s e ko s - m 技术基础 相对于传统处理器提供了一种突破性的解决方案【1 2 】【1 3 l 。 如图2 - 5 所示,c e l l 的协处理核s p e 通过d m a 部件与内部总线相连接,与 存储器,主核p p e 和8 个协处理核相连接。为了便于核间通信,整个c e l l 内部是 统一编址的。部件互联总线( e l e m e n ti n t e r c o n n e c tb u s ,e m ) 将p p e 、s p e 、存 储器控制器和i o 控制器连接在一起。部件互联总线由四组环组成,每一组环都 是1 2 8 位的【1 4 1 。 c e l ip r o c e s s o ra r c h i t e c t u r e 世曲 工 l捌 殛r厂帼 露露翳霪圈 彩耩 磨j 纂拳二霪尹h 鬃蘸囊蒸霪 隧辫瑟阉 f 嚣蕾曜鞫 图2 - 5c e l l 异构多核处理器结构图【1 3 】 2 2 2d a v i n c i 系列异构多核处理器 d a v i n c i 系列多核处理器,以t m s 3 2 0 d m 6 4 4 6 。5 1 为例,是德州仪器( t i ) 推 出的,面向多媒体处理的异构双核处理器。如图2 - 6 所示,它采用的是 浙江大学硕士学位论文第2 章s m a r t o s e ko s - m 技术基础 “a r m + d s p ”的体系结构。 1 m s 3 2 0 d m 6 4 4 6 的a r m 端采用的是a r m 9 2 6 e i s 具有2 9 7 m h z 的时钟频 率,支持3 2 位和1 6 位t h u m b 模式指令,具有d s p 扩展指令,具有1 6 k b 的指 令c a c h e 和8 k b 的数据c a c h e ,1 6 k b 的内部r a m 和1 6 k b 的内部r o m 。 t m s 3 2 0 d m 6 4 4 6 的d s p 端是一个t i 推出的c 6 4 x + 系列d s p ,指令执行速度 可达4 7 5 2 ( m i l l i o ni n s t r u c t i o n sp e rs e c o n d ) m i p s ,具有8 个独立的功能单元,包 括6 个a l u 和2 个乘法器。具有3 2 k b 的一级可配置指令缓存,8 0 k b 的一级可 配置数据缓存,和6 4 k b 的二级可配置缓存。 图2 - 6t m s 3 2 0 d m 6 4 4 6 异构多核处理器结构图 t m s 3 2 0 d m 6 4 4 6 的a r m 核和d s p 核与外围的资源通过资源交换中心 ( s w i t c h e dc e n t r a lr e s o u r c e ,s c r ) 相连1 1 6 1 ,由于d s p 的主要优点在于多媒体的计 算,基本上a r m 具有大多数的控制功能,比如a r m 独享( d s p 不可用1u a r t , 1 2 c ,p w m 等。 1 4 浙江大学硕士学位论文 第2 章s m a r t o s e ko s - m 技术基础 本文采用的开发平台就是这款达芬奇系列的t m s 3 2 0 d m 6 4 4 6 异构多核处理 器。 2 3 支持多核调试的开发环境c o d ec o m p o s e rs t u d i ov 3 3 本文开发的s m a r t o s e ko s m 的开发平台是基于t i 达芬奇系列的 t m s 3 2 0 d m 6 4 4 6 ,而在此之上的使用的开发环境是c o d ec o m p o s e rs t u d i ov 3 3 ( c c s3 3 ) 。 c c s3 3 是一个用于嵌入式开发的集成开发环境。它集成了编辑器、调试器、 项目管理器和测试工具,c c h 交叉编译器、优化器、汇编器和连接器,软件仿 真器等功能。c c s3 3 最大的特点还在于它支持多核的调试,适合本项目的研发。 c c s3 3 还提供了基于g e l ( g e n e r a le x t e n s

温馨提示

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

评论

0/150

提交评论