由于用户开始放心地让电子设备去收集关键信息和进行实时事务处理,对超可靠系统的需求正在从企业级扩展到整个嵌入系统领域。
随着当今嵌入设计中应用日益复杂,容错和可用性高业已成为标准的系统要求。最可靠设备的典型技术规范要求正常运行时间达到99.999%,航天、医疗、汽车和电信领域的有些用户认为这样的性能水平也是不能接受的。嵌入系统设计师认为,尽管因故障而停机会付出高昂的代价,甚至可能威胁人的生命安全,但是所有系统随时都会出现故障。高可用性系统设计的高明之处在于经济地处置不可避免的故障,从而确保不中断基本的嵌入功能或服务,或者将这种中断减至最少程度。
虽然任何一个嵌入系统都是旨在完成某一项任务或为用户提供某一种服务而设计的,但是高可用性系统被称为对任务、对收益或对安全起关键作用的系统,以表明其可靠性的重要意义。一个系统的可用性通常用它所提供的服务来表述;你中断这些服务,可能有种种原因,例如:硬件故障;操作系统故障;应用软件故障;操作员出错;外部影响,如断电;以及计划中的维修。高可用性系统采用了各种内置技术,以便在这些硬件或软件发生故障时仍然能够连续地提供服务。
可用性是系统可靠性和恢复运行所需要时间的函数。换一种说法,可用性就是某种服务或系统随时可以使用的概率。可靠性是系统的连续正常运行时间的测度,通常以平均无故障工作时间(mtbf)来表示。硬件制造商根据某一产品或系统中所用部件的统计故障率来推导出mtbf的理论计算值。mil-hdbk-217 和 bellcore tr-332是人们公认的用来进行硬件可靠性预测的标准中的两种。可用性的第2个要素是在发生故障后使一个系统恢复正常运行所需要的时间。这一修复时间又称平均修复时间(mttr)。即使一个系统频繁地出故障,只要你能够快速地使它恢复工作,该系统仍然具有很高的可用性。可用性的表达式为:
可用性 = 平均无故障工作时间 / (平均无故障工作时间+平均修复时间)。即可用性=mtbf/(mtbf+mttr)。
如果系统能够在99.999 % 时间里提供不间断的服务,则一般称该系统为高可用性系统。99.999%,常常称为“五个9”,相当于每年的停机时间大约5分钟。有些新的通信交换设备规范则要求“六个9”,即99.9999 %,也就是说每年的停机时间约30秒钟。
延长平均无故障工作时间
提高可靠性的最基本方法之一是审查你的系统中各个电路的设计。只要保证你的设计中所有的元器件在其规定的工作范围内正常工作,就能消除许多故障。改进可靠性的另一种方法是用牢固的固态器件取代故障率较高的器件,如旋转式存储器。你可以在设计交付生产之前使用电路仿真工具来发现未被怀疑的高应力元件。另外,你也可以通过改善电路的冷却方法和加大空气流量来帮助散热,从而延长平均无故障工作时间。在将系统投入运行之前,通过极端温度、湿度和震动等形式的环境应力试验筛选,也可以发现早期的故障。
除了认真仔细地设计电路以外,你可以采用容错技术,以便你的系统存在故障时仍可继续工作。对于硬件来说,只要给系统增加备份元件就可实现容错。备份的最基本方法就是给系统增加一个部件。所增加的部件到主部件出故障时才工作,这种方法被称作“备用”或“带电备份”。这种系统需要一个电路或软件来确定哪些部件在工作,哪些部件是备用的。负载共享是备用系统的延伸,它使用冗余硬件来提供部分服务。采用此方式时,如果所有部件都正常工作,则系统提供某一等级的服务;如果其中一个冗余部件出现故障,则系统提供较低等级但仍然令人满意的服务。实现高可用性的另一种经典方法,是利用两个或3个同样的电路,并用最后检查的办法来比较每个电路的结果。如采用两个电路,则要识别出故障;如采用3个电路,则只要使用两个电路的相一致的结果,就可以继续运行。
在设计冗余部件时,你必须考虑故障的范围,以保证一个故障不会导致备用部件也无法工作。有几种故障会影响多块电路板,因为与背板信号直接有关的任何故障可能会中断所有的数据传输。基于总线的系统中出现的故障,就是这几种故障的主要实例。系统供应商采用两块背板和自动切换装置来解决总线类型的故障。