下一个大的计算机趋势可能涉及精准度而不是速度
实时计算并不只是指在按下回车键后得到立即响应,事实上,它的真正含义是在实时与做实际事情的真实的机器进行交互。
例如Gleason 600HTL Turbo Lapper型锥齿轮研齿机,其控制器由Viewpoint Systems公司设计。Viewpoint公司副总裁John Campbell表示,基本上,它会磨合斜齿轮直到它们完全契合,对于使用斜齿轮的汽车制造商而言,这是非常重要的属性。
两个齿轮被打磨相互成直角,同时以3100rpm的相同速度旋转,每秒传递约52次相同的接触点。Viewpoint在这个控制器中添加了National Instruments(NI)公司的实时计算系统,它可以齿轮的响应,约快20倍,或者说约每秒1000次。
Campbell表示:“通过观察旋转速度的变化,我们能够检测齿轮中的高和低点,并启动第二组电机来调整扭矩。”这样它可以在发现问题点时纠正问题点,同时旋转齿轮仍然在这个位置契合。他补充说:“最终我们能够提高30%的研磨时间,因为机器准确知道何时将完成齿轮抛光,而不是依靠平均水平。”
实时 vs. 真正的快速
虽然这些结果很好,但每秒千次的频率在这个千兆赫处理器时代似乎不值得一提。但事实证明,实时计算不是关于速度。
“当人们在谈论实时计算时,存在一些共同的误解,他们认为在微妙或纳秒水平做出反应才可称为实时系统,五分钟不是实时,”英特尔子公司同时也是VxWorks实时操作系统制造商Wind River Systesm公司产品管理高级主管Prashant Dubal表示,“”但实时意味着系统在做某件事情时每次都是使用相同的事件,间隔时间不计算在内。
Dubal解释说:“如果系统的最高优先工作是闪烁红色LED,那么无论发生什么其他事情,这将总是它的优先事项,当灯需要闪烁时,它会抛开一切做到这一点,并且非常快速进行。”
“传统上来看,实时是从人的耐心角度来衡量,当你按下按钮时,在一秒内获得信息,这就是实时,”系统集成商Real-Time Innovations公司副总裁David Barnett表示同意,“但实时系统是以确定性工作的系统,它会对输入或环境变化做出可预见的响应。通常来说,这些都是网络物理系统,曾通过物理过程来管理。”
“观察家经常混淆实时计算与高速计算,例如金融交易和体育博彩,”Barnett补充说,“高速计算和实时计算之间的区别是,对于高速计算你谈论的是平均数,你可以说,平均来说,一个操作需要一毫秒。而对于实时计算,你会很确定操作会在限期内进行,或者你知道这并没有发生。”
确定性响应不是偶然,而需要实时操作系统(RTOS),在市场上有几十个这种产品,其中有三家领导供应商。
“Wind River是主要的领导者,其产品为VxWorks,”Barnett称(+本站微信networkworldweixin),“然后是Green Hills Software公司,其Integrity主要在航空航天和国防领域受欢迎;还有QNX Software Sysmtes公司的QNX,主要在汽车和医疗保健领域受欢迎。”Wind River还有实时版的Linux。
“确定性很重要;你不会在台式机中看到确定性,”QNX公司产品管理主管Grant Courville表示,“你需要关注每个CPU周期和每个微妙,需要确保一致性。”
虽然NI能够制造实时版的Linux(NI Linux Real-Time),其中需要大量的工作,该公司嵌入式系统产品营销主管Jamie Smith表示,“我们在内核级别做了评估,并进行了广泛的修改和测试,这个团队非常大,但这可以将实时计算推广到非嵌入式软件工程师的手中。”
当然,在不同的时候,让系统执行相同任务的时间会存在细微差异,这种差异被称为抖动。
“这可以确定RTOS有多好,但这也是非常依靠硬件,”Dubal表示,“我们通常为两位数纳秒。”
Barnett称,对于现代处理器,抖动通常以微妙计算,这对于大多数应用已经足够好了。
对于通用变成环境(例如Java),抖动不值得一提,因为它们都是专门优化用于典型的用例。Barnett称:“如果内存不足,需要清理垃圾来释放内存,它会停止这样做,并阻止所有其他处理。在实时计算中,你不需要额外的工作,以避免以后再拖延。”