新技术改变了RTOS游戏

不久前,为实时应用程序构建数字控制系统相对简单。从您最喜欢的实时操作系统(RTOS)开始,选择1)该RTOS支持的微控制器,以及2)具有满足应用程序需求的价格、性能、I/O特性和内存。

C.G. Masi,控制工程 二零零八年十一月一日

不久前,为实时应用程序构建数字控制系统相对简单。从您最喜欢的实时操作系统(RTOS)开始,选择1)该RTOS支持的微控制器,以及2)具有满足应用程序需求的价格、性能、I/O特性和内存。然后,您编写应用程序软件,利用您的RTOS的特性,以最好地保证您的控制器将在需要时做它需要做的事情。

事情不再那么简单了。从某种意义上说,多核微控制器技术和软件虚拟化使嵌入式系统和运动控制设计工程师的工作变得更加复杂。然而,在许多方面,它们使工作更容易。要了解这个矛盾的根源,需要对RTOS、多核和虚拟化有基本的了解。让我们从基本的RTOS技术开始。

实时操作系统的生死取决于对中断的处理。

准时,每次都是

维基百科说:

“实时操作系统(RTOS;通常发音为“are-toss”)是一种多任务操作系统,用于实时应用程序。RTOS有助于创建实时系统,但不能保证最终结果是实时的;这需要正确的软件开发。RTOS更看重的是它对特定事件的响应速度和/或可预测性,而不是它在一段时间内可以执行的给定工作量。因此,RTOS的关键因素是最小的中断延迟和最小的线程切换延迟。

RTOS使得在多任务环境中编写关键任务成为可能。在非多任务情况下,没有多个任务争夺计算系统资源,一切都是实时完成的。也就是说,当需要CPU关注的事件发生时,它会立即获得CPU关注。由于CPU没有其他事情要做,所以没有任何事情会妨碍它。

在多任务环境中,CPU必须在多个任务之间进行多路复用,实时意味着一些东西。当需要CPU注意的事件发生时,CPU可能已经在忙于其他事情。它不能立即对事件作出反应。它必须以某种方式把它已经在做的事情放在一边,允许它在对中断事件做出反应后返回。然后,它必须对事件做出反应。最后,它必须重新拾起之前正在做的事情。

工业RTOS的生死取决于服务中断标记事件。中断是由外部代理发送的信号,它将CPU中断线拉到高位,并(对于大多数CPU)保持高位,直到CPU确认中断。CPU应该在一定时间内响应中断——它的截止日期。

管理程序位于硬件和操作系统的一个或多个实例之间。

虚拟世界

操作系统是一种软件。软件就是关于位模式和操纵它们的。对软件来说,硬件只是一堆位模式,用来定义地址空间中的位置以及与这些位置临时关联的数据字。

虚拟化依赖于这样一个事实:软件不知道这些模式来自哪里,也不知道它们要去哪里,它也不在乎。它只处理出现的模式。

假设你有一台非常快的计算机,但你真正需要的是两台速度没那么快的计算机。也许你想在其中一台电脑上运行微软Vista(但你没有),而在另一台电脑上运行风河的VxWorks RTOS。Vista可以提供人机界面(HMI),并通过互联网自动将数据归档到位于巴基斯坦的服务器上,而VxWorks可以实时控制您的进程。

您可以使用软件虚拟化来“克隆”您拥有的快速处理器,并将其变成两个相同的虚拟处理器,但运行速度没有那么快。在一个虚拟处理器上运行Vista,在另一个虚拟处理器上运行VxWorks。

为实现这一点而设计的虚拟化软件称为“虚拟机管理程序”。管理程序夹在硬件和多个操作系统实例之间。硬件在任何给定的时间查看管理程序,认为它看到的是一个普通的操作系统。每个操作系统都从自己的角度看待虚拟机管理程序,认为自己看到的是硬件。

hypervisor有三个任务:

  • 它为多个操作系统提供对硬件(包括处理器、内存和I/ o)的访问。它确保其他不兼容的操作系统可以很好地配合。管理程序是为支持实时操作而设计的。也就是说,它们对可用的硬件资源进行分区,以保持RTOS的确定性。

  • 它提供了操作系统之间的隔离,包括数据和系统安全功能,因此,当黑客进入巴基斯坦的服务器时,他们可能能够通过互联网到达并看到运行在Vista上的HMI,他们无法进入运行在RTOS上的控制系统,即使它在同一处理器上。

  • 提供操作系统间安全的数据共享。

注意术语“实例”;这是理解虚拟化的关键。同一个操作系统可能有多个实例。例如,您可以建立多个RTOS实例,每个实例支持一个单独的控制回路。您还可以有两个桌面(非实时)操作系统,一个用于连接Internet,另一个用于在安全环境中运行办公应用程序。如果黑客渗透到与互联网连接的实例中,只有与该实例直接关联的数据文件可能会受到损害。

虚拟化环境提供防火墙来保护共享文件。只要删除受影响的实例,就可以清除感染OS实例的恶意软件。与第二个实例共享的数据将不受影响。要重新连接到Internet,只需启动新的Internet连接的OS实例。

最后,管理程序使混合实时和非实时操作系统成为可能。在这种情况下,管理程序的工作是维护RTOS的确定性——即使是以牺牲非实时操作系统的性能为代价。对于控制工程师来说,这显然是有价值的,因为控制工程师的系统通常有多个任务同时运行,并具有一系列确定性需求。

多核硬件

多核微控制器技术是一种完全集成的多处理体系结构。多处理硬件由多个共享内存空间的cpu组成。这种技术

对称多处理系统具有多个相同的CPU内核,它们共享内存和其他资源。

几十年来,多个微处理器在板级相互连接,以共享I/O和内存资源。

在过去的几年里,半导体制造商已经推出了越来越复杂的半导体设备,将多个CPU核心封装在一个芯片上。这使得集成更加紧密,数据通信更快。展示这种紧密集成的硬件的术语是“多核”。

多处理架构分为两种类型:对称多处理(SMP)和非对称多处理(AMP)。SMP使用许多相同的(即对称的)cpu,而AMP使用的cpu并不完全相同。

大多数商用多核设备都使用SMP架构。AMP架构往往是特定于应用程序的,因此很难实现大规模生产,从而降低每个设备的成本。

双核SMP设备,将两个相同的CPU内核集成到同一个IC中,现在很容易获得,如果不是很常见的话。四核SMP设备,有四个相同的核心,也已经有几年了。最近,飞思卡尔半导体推出了一款用于通信应用的8核微处理器设备。其他半导体生产商至少已经谈到了拥有更多(在某些情况下是非常多)内核的产品。

也许多核集成最明显的好处是非常“绿色”的效果。集成N一个CPU内核允许一个量子飞跃(大约0.8个)N)增加整体处理器速度,而时钟速率没有增加。

德州仪器的高级架构开发经理Ray Simar描述了一种三核处理器,它的三个核心都运行在1ghz,提供了一个运行在3ghz的单个处理器的计算能力。然后,他指出了另一种集成了6个核心的集成电路,每个核心都运行在500mhz,提供了同样的计算能力,但功耗只是它的一小部分。

非对称多处理系统包括多个不完全相同的CPU内核。

多核技术还可以将计算任务分成几个部分,这一策略在控制系统中具有特殊的应用。例如,多核设备的一个核心可能专门用于实时运行严密的控制循环,从而释放其他核心来执行时间要求较低的多任务作业,这些作业加在一起可能会产生巨大的计算负载。如果不能在专用核心上隔离控制循环,它将不得不与其他任务竞争CPU关注。

把它们放在一起

围绕2008年6月飞思卡尔QorIQ P4080 8核SMP设备推出的事件说明了RTOS、虚拟化和多核技术联合起来为控制工程师提供新的系统架构选择的多种方式。这一声明促使许多嵌入式系统软件公司立即(实际上是同时)发布了后续公告。

Green Hills Software展示了它的Multi IDE,它可以在Virtutech Simics系统模拟器上调试飞思卡尔处理器上的8个内核。演示还包括带有填充Cell管理程序托管应用程序和客户操作系统的Green Hills Integrity RTOS。Virtutech宣布了一种混合仿真功能,可以在其Simics仿真环境中支持多级模型抽象。

风河系统公司宣布了自己的软件开发解决方案,为多核设备上的VxWorks及其Linux发行版提供预硅支持,以及该公司基于eclipse的工作台开发套件,运行在Virtutech的Simics模拟器上。

对于控制工程师来说,这些趋势意味着他们不再需要根据现有硬件和软件的限制来定制应用程序。他们现在可以自由地创建具有他们想要的性能和特性的虚拟系统。

然而,伴随着自由而来的是责任。拥有更多的选择意味着你现在必须做出更多的选择。它还要求控制工程师学习新的技术和技术,以便做出好的选择。

作者信息
C.G Masi是控制工程。与他联系:charlie.masi@reedbusiness.com