|
Eonic Systems公司在ESC 2000(2000年嵌入系统会议,美国圣荷塞市,9月25日开始)会议及展览会中发布了它的Virtuoso 4.2集成开发环境,用于进行多处理器嵌入式DSP网络的设计,例如雷达、声纳和高档图象处理系统等。Virtuoso 4.2 IDE包含了Virtuoso 4.2 RTOS,工程管理程序,多线程异步网络主机服务器,一套图形化的分析与调试工具,以及针对TI公司的Code Composer Studio和ADI公司的Visual DSP的插入件(plug-ins)。最新版本的Virtuoso RTOS提供了其它RTOS不具有的多种功能,针对多处理器系统的单处理器编程方式,兼有通信顺序进程(CSP)和多线程多任务能力,静态存储器分配,允许以不同的数据率发送和接收数据、不带缓冲器的目标通道,以及分布式的、共享的存储器结构。 ---- 设计带有多DSP的高档系统面临多方面的挑战。首先,DSP应用是数据密集和计算密集型的,每秒钟要对数兆字节的数据执行几十亿次的运算。而且,每秒钟要出现数千次的中断处理。处理器本身的系统结构只包含极少的片上存储器,因而,代码的数量要保持到最低限度,对时间起关键作用的运算或数据必须放到最快速的处理器内存中。这些处理器具有多条内部的和外部的总线以支持并行处理,而且,它们具有多种中断处理。传统的多线程RTOS不具备支持上述应用或系统结构的能力。 ---- Eonic公司开发的Virtuoso IDE带有专门的RTOS,能够处理DSP应用中频繁的中断及数据处理要求,并能充分地发掘DSP结构的潜力,特别是针对多处理器的应用。Virtuoso RTOS发挥DSP系统结构中固有的并行性能力,用最少的代码实现最高的"硬"实时性能。 ---- Virtuoso的可扩展性和可移植性使设计人员能在今日的处理器上进行设计,当下一代的处理器出现后,可以不必重新编程地转移过去。新的处理器结构总是不断地在市场上出现,它们运算速度更快,功耗更低,占用板面积更小。例如,两款新的TMS 320C6X DSP的运算能力达到TMS 320C4X DSP的六倍。利用目前很多通用RTOS采取的传统多线程技术,设计人员要想把设计移到新的处理器上去几乎就等于从头进行新的设计。Virtuoso创造性地将多线程和通信顺序处理器(CSP)多任务技术结合起来,使得设计具有增减处理器的可缩放性,而且具有在不同的处理器结构间进行100%移植的特点,不需要改变代码。 多线程异步网络服务器 ---- 像工业控制系统,高速检测系统、雷达及声纳等这一类系统中的嵌入式网络常常需要有一个对操作员的图形界面。尽管几乎所有的RTOS都提供对多处理器的某些支持,但是,在网络主机端还没有支持多任务的集成解决方案。这样一来,在任何时间只有一个应用任务可以访问外部的世界。例如,当键盘正在使用的时候,就不能同时把数据从TCP/IP网络或以太网传送给主机。这种缺陷造成系统处理器与网络主机服务器之间的数据传输率受到严重的限制,通常不超过每秒几十万字节。 ---- Virtuoso 4.2是第一个能在网络服务器上实现异步多任务的RTOS。Virtuoso利用通信顺序进程(CSP)多任务模型,允许目标任务和基于网络主机服务器的应用之间直接通信。通信的一方可以是一个Virtuoso目标任务,它利用一个通道进行通信,而通信的另一方可以是一个基于主机的应用,它利用一个文件、一个命名的管道、一个COM端口或一个TCP/IP套接字进行通信。网络主机服务器多任务使数据传输率提高了几个数量级。Virtuoso 4.2在网络主机服务器与应用处理器之间的数据传输率达到每秒16兆字节,比采用传统的非多任务主机/目标通信协议快50倍以上。 通过结合CSP和多线程使RTOS具有100%的可缩放 ---- 大多数实时操作系统,如pSOS、VxWorks和Windows,利用线程实现多任务。每一个任务具有自己的线程,所有必须相互通信的线程共享相同的存储器空间。线程利用信号量(当数据准备好时给出信号)和mutex(封锁及开启使用中的资源)实现同步。在不需要"硬"实时操作的单处理器系统中,多线程很快而且有效率。但是,当系统中处理器数目增加,多个处理器对存储器的访问在总线上形成了瓶颈,使性能降低。在带有一个200MHz处理器的系统中,即使再增加一个处理器也会降低总的系统性能。共享存储器的另一个缺点是设计人员必须分别设计各个子应用程序,以及为系统中的每一个处理器管理存储器。简而言之,必须为系统中每一个处理器编写一个单独的程序。这种系统不能方便地增加或减少处理器。在处理器之间移动任务,或者把任务移至一个新处理器非常困难,可能产生错误的指针、过早地改写数据或者存储器碎片。如果要利用一种新的DSP系统结构,它能够以较少的DSP完成相同的工作,设计人员需要从头改写应用程序。因此,尽管应用差不多完全是用软件实现的,如果硬件发生变化,它还不能重用。 ---- 通过在同一RTOS中结合通信顺序进程(CSP)多任务模型和多线程模型,Virtuoso 4.2解决了多处理器瓶颈和可缩放性问题。在CSP模型中,任务(类似于线程)直接通过提供数据流管道的通道(channels)进行通信。通道利用多条外部总线或DSP上具有的直接连接端口,因此,DSP之间相互通信不使用系统总线。 CSP目标通道不再需要数据缓冲器 ---- 在Virtuoso 4.2中所有的处理器可以访问彼此的存储器(分布式存储器),而且每个任务具有自己的专用存储器空间。Virtuoso 4.2还提供"共用的"存储器,它是分布式存储器的一种变型,把所有系统存储器视为单个大块存储器,从而避免了存储碎片,使存储器的使用得到优化。 ---- 在CSP中,数据利用邮箱通过通道从一个任务直接复制到另一个任务。象信号量和关启量这样一些同步服务对CSP并不是必需的。在Virtuoso 4.2中专门的目标通道允许在通信的两端有任意不同的数据传输率而且无需任何缓冲。例如,一个驱动器任务能够从I/O卡一次仅取8个样本,而处理器一次需处理256个样本。典型的解决办法是,I/O驱动器任务或者处理器必须把数据存入缓冲区,直至处理器获得足够的数据。这种办法要进行缓存编程,使得驱动器任务与处理任务之间产生相互依赖性,从而更加难于在处理器之间移动任务或者转移到具有更高数据率的I/O设备上去,减低了系统的可缩放性。Virtuoso 4.2的目标通道允许驱动器任务读出小块数据并放在通道内,同时,也允许处理任务读出它进行处理所需的大块数据,无需专门的程序或缓冲区。在RTOS中的目标通道自动地处理数据传输率之间的不一致。 ---- Virtroso 4.2也提供使用共享存储器及通常与多线程相联的同步资源作为可选项。与CSP通道相比,共享存储器可能更快一些,而且使用较少的存储器;因而,对于交换参数、共享大的数据集,以及系统中的处理器数目相对较少时,都特别有用。实际上,Virtuoso允许设计人员在同一任务中进行多线程模型和CSP多任务模型之间的转换。Virtuoso 4.2是今日市场上唯一能提供多线程和CSP两种选项的RTOS。 虚拟单处理器模型 ---- Virtuoso的基于CSP的多任务允许设计人员针对单处理器系统编写代码,但是在任意数目的处理器上执行代码。可以添加处理器以便提高性能,或者在功能更强的处理器出现后减少处理器,用不着重新编写代码。设计人员在多个处理器或"结点"中间分配任务时,只需要从工程管理器中把它们拖、放出来即可。增添和删去处理器只不过是重新映射工程文件中的对象。 利用Jovian的Pegasus拖放DSP设计 ---- Jovian的Pegasus图形DSP设计环境已经与Virtuoso 4.2进行了无缝的集成。Pegasus允许设计人员通过以图形方式把预先定义的功能块拖放到方框图中,建立和模拟DSP设计。当设计人员对模拟结果感到满意时,Pegasus将自动生成所需的C代码。它的DSParCer把代码分解成各个任务,并且编写与DSP有关的代码,以便它们可以在一个或多个DSP处理器上并行地运行。 ---- Pegasus也编写makefile,可以运行DSP编译程序、连接程序以及Virtuoso RTOS配置工具。 静态存储器分配保证确定性的响应 ---- "硬"实时意味着任务在精确的时间段内百分之百地执行。多处理器系统中每秒钟的中断数以千计,带有多级优先级,在这种情况下达到硬实时是困难的。实际上,所有高端DSP都有存储最近执行的指令的内部高速缓冲器,还有外部存储器用于存储代码和数码。大多数RTOS把所有的存储器都当成是一个巨大的仓库,库里存储了所有的数据、堆栈和代码。尽管高速缓冲器中的指令可以非常迅速地执行,但是不可能有足够的cache去存储全部代码,产生的结果是从cache中得到所需的代码只有70%至80%的时间内才有可能。当对时间有关键作用的代码不在cache中时,性能就会下降。尤为重要的是,cache存储器的非确定性性质在硬实时系统中是完全不可接受的。Virtuoso解决这个问题的办法是允许系统存储器的每一段可由设计人员进行静态分配。这就保证必须被迅速处理的任务栈,如驱动器任务和中断服务例程等,放进内部存储器;那些不在关键路径上的任务,如后台控制任务等,存储在比较慢也较低廉的外部存储器中。Virtuoso检查存储器的分配,确保它们的容量大小恰当。 完备的调度选项 ---- Virtuoso 4.2提供了广泛的调度选项,包括:带优先级的循环路线,时间片,优先抢占式调度。Virtuoso还支持优先级"继承",可以在资源共享时保护任务不受阻拦。 多级微核结构使核最小 ---- Virtuoso 4.2有两个中断处理级,它们可以开启或关闭全局中断,能够在不到一微秒的时间内处理一个中断请求服务(IRS)。一个是"毫微核",它利用带优先级的循环路线调度管理系统级任务,其上下文转换时间只有500毫微秒(50MHz,ADSP21060);另一个是"微核",它管理由设计者定义的C语言应用级任务。每一个任务都有自己的处理器环境、优先级、堆栈和预定入口,而且所有任务都是有优先级和可抢占的。Virtuoso微核提供90个以上的核服务,包括任务、存储器、资源和定时器管理;以及队列、邮箱、信号量和事件服务。微核任务代码是完全可移植和可扩充的,而且可以移植至其它处理器。 ---- Virtuoso 4.2特有的结构使使用的寄存器数最少,加速了上下文转换时间,并且防止了中断使系统失效,因而最大地提高了系统的性能。Virtuoso 4.2的Soft Stealth技术自动地取消多余的代码,使OS核的存储器占有量达到最小为2K至15K指令,并保证最优性能。 进行系统优化的图形分析与调试工具 ---- Virtuoso是世界上唯一的集成开发环境,它为基于DSP的系统提供了图形设计分析与调试能力。Virtuoso 4.2的实时跟踪监控器允许用户以交互式图形方式详细地分析每个时钟周期的系统事件。对任何一个结点,实时跟踪监控器以图形方式显示该结点上任务的调度。在任何一个时间跟踪点上点击都会出现一个状态窗口,详细地显示这个时间点上的细节(跟踪器入口号、结点ID、激活的任务、事件系统名、定时值、所需相对时间、使用的核服务,以及事件描述)。通过考核任务执行的模式,设计人员可以确定调度是否正确。例如,如果空闲的任务被激活太长的时间,资源被浪费掉,这时就应该分配更多的任务给处理器。单个处理器或整个处理器网络只要用鼠标器加个点击就可以进行浏览。每个结点的信息都在各自的窗口中被显示。Virtuoso 4.2还包含了一个图形化实时任务级调试器。 支持的处理器及板卡 ---- Virtuoso支持高性能处理器核、DSP以及高档微处理器,包括Analog Devices公司的ADSP-21020,ADSP-2106x以及ADSP-21160 SHARC DSP系列;德州仪器的TSM320C3X,320C4X,320C54X,320C62XX,320C64XX以及320C67XX;Advanced RISC Machines公司的ARM,ARM7T,以及ARM9;IBM/Motorola的PowerPC G3及G4 Altivec;以及Infineon的Carmel。 ---- Virtuoso可以使用Analog Devices的ADSP-2120、2106X和2116x,以及德州仪器的TSM320C4X、320C62XX以及320C67XX来设计多处理器系统。 ---- Virtuoso 4.2实际上支持所有现成商品化的板。Eonic已经开发了它自己的高可用性Atlas Compact PCI板,以及专门支持Virtuoso RTOS中高级功能的Atlas通用数字信号计算机。利用Atlas计算机和Virtuoso,设计人员可以在选定硬件前或选择硬件的过程中就着手开发他们的软件。设计结果对不同的处理器结构可以移植,而且可以缩放到更多或更少数量的处理器。 对第三方工具的支持 ---- Virtuoso提供与第三方调试工具、编译程序、源码调试器和IDE的无缝集成。当前就支持的产品包括德州仪器的Code Composer Studio。对Allant Software公司的ASPEX以及Analog Devices的Visual DSP软件开发工具的支持正在开发中。使用德州仪器的Code Composer,可以利用RTDX机制建立主机与目标通过标准的JTAG仿真器缆线进行通信。 |