技术中心
 
 

实时操作系统——因为新技术而不同

   日期:2009-03-22     作者:管理员    

  多核微控制器与虚拟化软件的出现,让实时控制成为可能。  

多核微控制器与虚拟化软件的出现

  几年前,为实时应用构建一个数字控制系统还是比较容易的。你可以先选定一款自己最熟悉的实时操作系统(RTOS)和一款微控制器。这款微控制器必须支持你采用的RTOS,此外在价格、性能、输入/输出特性和储存能力方面也能够满足应用要求。然后,你就可以编写应用软件了。软件要能够利用到RTOS的特性,从而保证你的控制器可以在指定的时刻完成指定的工作。  

实时操作系统的基本使命
实时操作系统的基本使命是处理中断。当一个中断出现,RTOS必须先把当前程序的相关数据保存好,
然后切换到一个独立的中断服务流程来处理这个中断事件。处理完中断事件之后,RTOS
先恢复先前储存的数据,再继续运行先前的程序。

  如今,构建这样一个数字控制系统已经不那么容易了。从某种意义上说,多核微控制器和软件虚拟化技术的问世,使得嵌入式系统设计师与运动控制工程师的工作更加复杂了。然而在许多方面,这些技术又为他们的工作带来了便利。要弄明白这个看似矛盾的说法,你需要掌握一些RTOS、多核和软件虚拟化技术的基础知识。下面,让我们从RTOS基本技术谈起。
 
  让实时性深入每一


  维基百科中写道: “实时操作系统(RTOS;通常被读作‘阿-陶思’)是一种专为实时应用而设计的多任务操作系统。RTOS为实时系统设计提供了便利,但它并不能够保证最终的结果是实时的;要做到这一点还需要正确开发相应的软件。RTOS的价值并不体现在数据处理能力方面,而是主要在于对特定事件的响应速度与预见性方面。因此最小中断响应延迟和最小线程切换延迟是衡量一款RTOS的重要参数。”
  RTOS具备了在多任务环境下对任务关键性进行编排的能力。在单任务系统中,由于不会出现多个任务同时竞争计算资源的情况,每个任务都是实时运行的。这种情况下,当任何一个事件发生并对CPU发出请求时,CPU就会立刻对它作出响应。这是因为CPU在同一时刻不会执行其他操作,也不会被其他事件所阻碍。
  在多任务环境下,CPU需要在多个任务之间进行切换,这时,实时性的价值才能得到体现。当一个事件出现并对CPU发出请求时,CPU很可能正忙于处理其他事件,因而不能立即对该请求做出响应。它必须以某种方式把正在处理的任务搁置起来,便于CPU在处理完中断事件之后重新回到之前的任务上,然后,CPU才会响应中断事件。最后,它必须在处理完中断事件后重新回到之前的任务线程上。
  一款工业级实时操作系统的使命就是处理中断标志事件。中断是由外部电路发出的信号。外部电路把CPU的中断管脚拉到高电平(对绝大多数CPU是这样的)并长期保持该信号,直到CPU识别出该中断信号。CPU一般会在一段确定的时间内对中断信号做出响应,这是强制规定的。

  虚拟世界
  操作系统(OS)作为一种软件,最根本的任务是对位组合进行操作。对于软件而言,硬件只是一连串代表它们在地址空间内位置的位组合以及临时与这些位置有关的数据字。
  虚拟化技术正是依赖于这样一个事实:软件不知道也不必去关心这些位组合的来龙去脉,它只需要在位组合出现时对其进行处理。
  假设你拥有一台运行速度飞快的计算机,但是你需要的却是两台对速度要求不高的计算机。也许你想在其中一台上运行Microsift的Vista操作系统(当然你缺少这台电脑),而在另一台上运行WindRiver的VxWorks RTOS。Vista 可以提供人机界面(HMI)并且能够通过因特网自动把数据上传到位于巴基斯坦的服务器里,与此同时VxWorks会对流程进行实时控制。
  

管理程序的地位介于硬件与操作系统实例之间

  管理程序的地位介于硬件与操作系统实例之间。它对操作系统进行划分,
以虚拟形式把不同硬件分别呈现给不同的操作系统。

  你可以应用软件虚拟化技术“克隆”你所拥有的这个高速处理器,并把它分身为两个相同的虚拟处理器。当然,这两个虚拟处理器的运行速度会减慢。其中一个处理器可以运行Vista,另一个运行VxWorks。
  用来实现上述技术的虚拟化软件被称为“管理程序”。管理程序在计算机结构中的位置介于硬件与各个操作系统实例之间。从硬件层面看,管理程序永远只是一个普通的操作系统。从操作系统层面看,管理程序就像是一种硬件。
  管理程序有三大功能:
  ■  它为各种OS提供了访问硬件的途径。这些硬件包括处理器、内存以及输入/输出接口。它能确保相互不兼容的操作系统在一起融洽地工作。管理程序在设计上满足实时操作性要求。也就是说,为了维持RTOS的决策,管理软件会对所有硬件资源进行分配。
  ■  它提供了不同OS之间的隔离机制,包括数据和系统安全。这样的话,如果一名黑客入侵了位于巴基斯坦的服务器,那么他应该可以通过因特网看到你Vista系统上运行的人机界面。但是他不可能接触到你运行在RTOS上的控制系统, 即便两个操作系统共用同一个处理器也不可能。
  ■  它提供了OS之间安全的数据共享机制。
  想要真正理解虚拟化,那么你必须记住下面这个关键词——“实例”,同一款OS可能拥有多个实例。例如,你可以建立多个RTOS实例,每个实例服务于一条独立的控制回路。你还可以拥有两个(非实时)桌面操作系统实例,一个连接到因特网,另一个用来在安全机制下运行办公软件。如果有黑客入侵到连接因特网的那个实例,那么只有与该实例直接相关的数据文件才可能受到牵连。
  管理软件通过防火墙来保护共享文件。用户只需要简单地删除受到病毒感染的实例就可以清除OS实例内的恶意软件,与另一个实例共享的数据则安然无恙。如果用户要想重新连接到互联网,只需要启用一个新的连接互联网的实例即可。
  最后,管理程序实现了实时OS和非实时OS的共存。这种情况之下,管理程序为了维持RTOS的决策,可能会降低非实时OS的部分性能。如果某位控制工程师要设计一套多个任务同时运行、而且需要作大量判断的控制系统,那么这项功能可能会为他带来极大的帮助。

  多核硬件
  多核微控制器是一种多处理架构的整合形式。多处理器硬件由多个共享同一片储存空

间的CPU构成。多年来,该技术已经在板级多核互连以及I/O通道、内存资源共享方面得到了广泛应用。  

非对称多处理器系统包含了多个不同的CPU内核
  非对称多处理器系统包含了多个不同的CPU内核。

  非对称多处理器系统包含了多个不同的CPU内核。
  在过去几年里,半导体制造商开发的产品在复杂度上有了极大的提高,以至于能够把多个CPU内核做在一片晶元上。这项技术大大提高了电路集成度以及数据传输速度。这类高密度集成硬件被称作“多核”。
  多处理器构架分为两类:对称多处理器(SMP)和非对称多处理器(AMP) 。SMP由多个相同的(或对称的)CPU构成,而构成AMP的CPU则不尽相同。
  大多数商业化的多核设备都使用对称多处理器架构。非对称多处理架构主要针对一些特殊的应用,所以它很难实现批量生产,单片价格居高不下。
  如今,在一片IC上整合了两枚相同CPU内核的双核对称多处理器虽然还没有完全普及,但是已经能购买到了。整合了四枚相同CPU内核的四核对称多处理器也已经在几年前面世。最近,飞思卡尔半导体公司推出了一款面向通信领域的8核微处理器。其他一些半导体公司也纷纷宣布他们的处理器产品将采用更多(甚至是超多)的CPU内核。
  也许,集成多核技术带来的最明显好处是大幅降低了能耗。如果一片晶元上集成了N个CPU,那么在不增加时钟频率的情况下,芯片的整体处理速度就会呈现成倍的增长(大约增长0.8N倍)。
  德州仪器的系统架构高级开发经理Ray Simar为我们介绍了一款三核处理器。该处理器每个内核的时钟频率都是1GHz,而运算性能等同于一个时钟频率为3GHz的单核处理器。他还指出,另一块包含六个内核,每个内核时钟频率为500MHz的芯片也能够提供同样的运算性能,但功耗只是单核处理器的一小部分。
  有了多核技术,我们可以把计算任务拆分为多个部分。这种方案在一些控制系统特殊应用中有用武之地。 例如,多核处理器的一个内核可以专门用来对某个回路作实时控制,其余内核则可以解放出来,共同完成一些实时性要求不高,但计算量非常繁重的任务。要是我们没有专门分配一个内核作回路控制,那么回路控制程序就不得不与其他任务竞争CPU资源了。

  全面整合
  2008年6月飞思卡尔公司推出了QorIQ P4080多核处理器。这款8核对称架构处理器为我们展示了多种将RTOS、虚拟化技术和多核技术结合的方案,为控制工程师设计系统架构提供了新的选择。该产品一经推出,几乎在同一时期,多家嵌入式系统软件公司都做出了响应。
  Green Hills软件公司展示了他们的Multi集成开发环境(IDE)是如何在Virtutech Simics系统仿真器中对Freescale 8核处理器进行调试的。该公司还同时展示了他们的Green Hills Integrity RTOS。该系统包含了Padded Cell主机管理程序和客户端操作系统。
  Virtutech公司宣布,他们的产品具备了混合仿真功能,能够在Simics仿真环境下支持多层次抽象模型的仿真。
  风河系统公司发布了他们为VxWorks和Linux 操作系统在多核设备上的运行提供前期支持的软件开发方案。此外,该公司还展示了他们基于Eclipse架构的Workbench开发套件。这套开发工具可以在Virtutech Simics仿真器中运行。
  在这种趋势下,控制工程师不必再因为硬件或软件的限制,对应用程序作裁减。如今,他们能够随意创造出满足性能、特点要求的虚拟系统。
  然而自由总是与责任并存的。你拥有更多的选择也就意味着你必须做出更多的选择。控制工程师只有掌握了新的技术和知识,才能够做出正 确的选择。

  翻译:陈剑锋

  更多资讯,请访问以下网站:
  en.wikipedia.org/wiki/Real_time_operating_system
  en.wikipedia.org/wiki/Multi-core_(computing)
  en.wikipedia.org/wiki/Virtualization

 
  
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作
 
推荐图文
推荐技术
可能喜欢