2.1.2 DaVinci软件平台
DaVinci处理器最具革命性意义的在于其全平台开放性,不同于用硬件直接做多媒体加速的应用处理器,DaVinci处理器提供的ARM,DSP和VICP是全部开放的可编程内核。达芬奇技术的核心并不在于硅片本身,而是基于 Linux的整套软件框架(TI,2010)。如下图2(TI,2010)所示,它把一个基于多媒体应用的嵌入式软件抽象为应用软件和算法软件,采用Codec Engine框架组件规范了算法软件的开发标准(xDAIS)和统一接口(xDM)。应用软件通过Codec Engine来调用算法软件,在这个层面上,应用软件只运行于Linux之上,并不关心Linux运行于何种处理器内核上,算法软件被Codec Engine统一管理,所以应用软件也无需关心算法软件运行于何种处理器内核上。用CMEM组件来管理DSP和ARM之间的共享内存,用DSPLink把DSP和ARM之间的通信模拟成一个类似于Linux多进程之间的RPC(Remote-Procedure-Call),可以使得DSP算法工程师和ARM应用工程师并行工作而又确保了最后软件集成的统一规范(王丹,2007;TI,2010)。
ARMApplication Layer(APL)GUIMux/DemusMaster threadAV SyncCODECenginestubLinkDSPSignal Processing Layer(SPL)CODEC engine Resource ServerVISA APIskeletonNetworkRTP/RTSPUser SpaceDriver APIKernel SpaceVideoUARTI2CAudioEMACSPIFile/ATA2 TimersxDMAudioCODECAPIxDMAudioCODECAPIxDMAudioCODECAPIDSP LinkxDMAudioCODECAPIxDMAudioCODECAPIDSP/BIOSDSKT MEM,TAK APIDMAN, ACPYUSB2.02 WDDSP/LinkMMC/SDI/OBuffersShared Memory
图2 DaVinci技术的软件架构
2.2 MontaVista Linux与实时系统
MontaVista Linux是MontaVista提供的嵌入式Linux实时操作系统,提供了对DaVinci系列处理器的支持。MontaVista Software成立于1999年,目前提供三个版本的Linux:电信(telecommunications)设备用的Carrier Grade Edition(简称CGE,电信运营等级版),手机用的Mobilinux(Consumer Electronic Edition-简称CEE,手机版),以及消费电子产
6
品及其他设备用的Professional Edition(简称pro,专业版)(何小庆,2007)。目前有超过2000家公司在他们的产品中使用 MontaVista Linux。现在MontaVista的最新版本是MontaVista Linux 6,而本文要移植和评估的MontaVista Linux是基于MontaVista Linux Professional 5.0(简称pro 5.0)。
MontaVista专门提供实时嵌入式Linux操作系统和嵌入式开发工具,虽然它进入中国的时间较晚,但它的大名早就为国人所熟知,而且通常会将它的MontaVista Linux(即原来的Hard Har Linux)与VxWorks和Windows CE相提并论。不同的是MontaVista Linux是基于Linux内核开发的嵌入式操作系统。MontaVista Linux不需要用户支付版税,而且MontaVista Linux提供的所有开发工具和附加应用包都是开放源码的;MontaVista Linux基于Linux内核,而Linux是从Unix发展而来,所以它很稳定;MontaVista Linux能够支持广泛的CPU芯片系列,支持多种目标板结构,并提供强大的网络协议支持,而且拥有丰富的驱动程序和API(王丹,2007)。
1999年,MontaVista发布抢占式内核,后来成为Linux 2.6内核的一部分,在Linux Symmetric Multi-Processing(SMP)内核中使用自旋锁(spinlock)来判断临界区。2000年,MontaVista为多处理器系统提供了cpu相关的API到Linux社区的O(1)调度器中。2002年,MontaVista为要求更好的定时器需求的系统和软件提出了High Resolution Timers (HRT),比Linux 2.4标准内核10毫秒一次时钟中断更好,增强了对实时任务行为的控制。下图3来自MontaVista官网(www.mvista.com),反映了MontaVista Linux自2000年至2005年5年内各版本实时响应时间变化。由图可知,在4.0版本中,系统响应时间已降至100us,其实时性能已得到较大提高。
7
目前MontaVista主要的工作是进一步提高现有社区的实时基础,推动了Linux内核的性能和可预见性。今天的实时内核具有里程碑意义地提出内核有可预见的响应时间,这成为Linux内核硬实时化要面临的最后一个障碍。
作为实时Linux开发的先锋,MontaVista正引导着Linux成为要求苛刻的软件一种新的选择。 2.3 本章小结
本章介绍了DM6441的硬件结构和DaVinci技术的软件架构。MontaVista Linux是本文要移植到DM6441上的嵌入式Linux,本章对MontaVista Linux的发展概况和对实时性能的贡献进行了说明。
图3 MontaVista Linux各版本实时响应时间变化
8
3 嵌入式Linux系统实时响应特性分析
一般来讲,性能是一个软件系统或组件对时间要求满足程度的一种指示。这里的时间要求可以用响应时间和吞吐量来衡量,该时间值是指响应某种要求所需的时间,而吞吐量是指系统在特定时间内能够处理的请求数量(张帆,等,2011)。实时操作系统与一般商用多任务操作系统如Unix、Windows有共同的特点,也有不同的特点。对于商用多任务操作系统,其目的是方便用户管理计算机资源,追求吞吐量;而实时操作系统要求在限定时间内完成特定任务,追求实时性、可确定性、可靠性。下面将从性能指标和实时化方法的角度对嵌入式Linux系统的实时响应特性进行分析。 3.1 嵌入式系统的实时性能指标
早在1989年,Kar就提出了实时操作系统的的六个关键时间参数,即任务切换时间、中断响应时间、抢占时间、信号混洗时间、死锁解除时间和消息传递延迟时间(王蕾,等,2011)。实时系统最为重要的特性在于能够在限定的时间内完成指定功能并对外部事件做出正确的响应。这一特性要求系统的任务响应时间足够小,中断处理足够快。因此,下面详细阐述任务切换时间和中断响应时间,并将其作为本论文测试的时间指标。 3.1.1 任务切换时间
在实时多任务操作系统中任务切换是一个频繁发生的操作。任务切换时间是指CPU的控制权由运行的任务转移到另一个就绪任务时所经历的时间,操作系统需要对任务进行调度管理。那么任务切换时间包括保存当前任务上下文的时间,选择下一个任务调度时间及其加载该任务的时间(Robert Love,2004;王蕾,等,2011)。任务切换时间反映了系统任务调度的能力,是衡量操作系统性能的重要指标参数。
设当前正在运行的任务为TASK1,将要运行的新任务为TASK2。用T1表示任务TASK1的激活时刻,T2表示新任务TASK2开始运行的时刻,则可以用T2-T1来近似表示两个任务之间的切换时间。两个任务切换过程如下图4(王蕾,等,2011)所示:
Task1保存Task1T1任务调度Task2T2时间
图4 任务切换时间时序图
9
任务调度可以采用非抢占和抢占两种方式(Robert Love,2004)。非抢占方式是只有在进程自愿调度的时候才能进行调度;抢占方式允许调度程序根据某种原则停止正在执行的进程,将CPU的使用权分配给另一进程。当时钟中断到来或当前进程自动放弃处理器时重新调度,执行任务切换程序。因为调度频繁,所以任务切换时间不能太长以免影响系统的时间性能,应对其进行测量以验证其性能优劣。 3.1.2 中断响应时间
中断是指CPU在执行任务的过程中,出现了某些突发事件时CPU必须暂停执行当前的任务,转去处理突发事件,处理完毕后CPU又返回原任务被中断的位置并继续执行。 作为一种重要的异步事件,中断机制的引入大大地提高人了系统的效率。在中断驱动的系统中,CPU正常时执行程序,当收到中断申请时通过中断服务程序快速对其作出响应(Robert Love,2004;Jonatban Corbet,et al,2006;朱宝华,2008)。
中断会打断内核中进程的正常调度和运行,系统对更高吞吐率的追求势必要求中断服务程序尽可能地短小精悍。然而在实际的系统中,当中断到来时,要完成的工作往往不会短小的,它可能要进行较大量耗时处理。另一方面,为保证系统资源的互斥操作性,即原子操作的不可中断,进入核心态运行,为屏蔽中断模式(黄廷辉,等,2002)。如果关中断的时间过长,可能丢失其它外部中断信号,导致一些实时任务不能及时处理,因而也要求中断处理程序应尽可能短。
为了在中断执行时间尽可能短和中断处理需完成大量工作之间取得平衡,Linux将中断处理程序分解为两个半部(Robert Love,2004;朱宝华,2008):上半部(top half)和下半部(bottom half),下图5为Linux内核的中断处理机制示意图。
中断上半部(紧急的硬件处理)调度下半部(延缓的耗时处理)
图5 Linux中断处理机制示意图
10
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Linux系统实时响应特性分析与实验验证——基于Ti达芬奇DSP系列TM(3)在线全文阅读。
相关推荐: