容错计算
容错计算,就是在系统存在故障的情况下,仍能正确地执行给定的算法。为了实现这一点,必须使系统具有故障检测与诊断、功能切换与系统重组(reconfiguration)、系统恢复与重新运行、系统的重构(reintegration)与可扩展等功能,而且这些功能不能影响系统的正常运行或至少不能使系统的性能下降到不能容忍的程度。
基本信息
- 中文名
容错计算
- 外文名
fault-tolerant computing
- 学科
计算机科学与技术
- 基本技术
冗余、故障检测与诊断等
- 相关技术
VLSI
- 类别
计算机系统
定义
容错计算,就是在系统存在故障的情况下,仍能正确地执行给定的算法。容错计算技术随计算技术发展而发展,特别是与VLSI的发展密切相关。早期50~60年代,计算机硬件由分立元件组成,与之相应,容错计算技术集中在器件级和基本功能部件级(运算器、控制器、寄存器等)进行研究,提出了大量的方法来提高逻辑电路的可靠性,大部分检错、纠错码也在这期间广泛应用。
基本技术
计算机系统的RAM技术主要就是容错计算(Fault-Tolerant Computing)技术。所谓容错计算,就是在系统存在故障的情况下,仍能正确地执行给定的算法。为了实现这一点,必须使系统具有故障检测与诊断、功能切换与系统重组(reconfiguration)、系统恢复与重新运行、系统的重构(reintegration)与可扩展等功能,而且这些功能不能影响系统的正常运行或至少不能使系统的性能下降到不能容忍的程度。对非容错系统,当故障导致系统发生算法执行错误并被发现后,系统要停止运行,由专门的维修人员进行检测、诊断,找到故障发生的原因。维修人员根据系统的构成将故障部件拆除,将剩下的正常部件构成一个功能有所降低的系统继续运行或将备用的正常部件装入,重新起动系统运行。但此时,发生故障时执行的算法(程序)已被破坏,系统重起后必须重新运行算法(程序)甚至重新装入算法(程序)。而容错系统中上述人的工作绝大部分由系统自行完成。
容错的基本技术是冗余(redundancy)及其管理、故障检测与诊断和系统状态的维护与恢复。冗余概念中,从方式上可分为静态、动态冗余;从种类上可分为时间、空间冗余,从对象上可分为器件、部件、模块、系统、数据冗余。下图出容错计算技术的基本分类:
故障检测与诊断
故障检测与诊断就是当系统部件的故障引起算法执行发生错误时,能发现并确定其具体位置的技术,它是容错系统首先要解决的问题。故障检测与诊断技术的主要内容有三个:故障检测、故障隔离(在故障导致系统不可恢复的损坏之前,将故障的影响封闭起来)和故障诊断。其技术评估的主要标准有:故障的复盖率、诊断率和对故障的反应时间(平均值)。它们分别代表故障检测能力、故障的定位能力和检测与诊断的实时性。这项技术分为联机或脱机方式,可以用硬件、软件或固件实现。
静态冗余
静态冗余又称故障屏蔽,其基本思想是利用多个部件或系统以固定的结构和运行方式同时执行相同的功能,利用多个一致的结果来屏蔽掉某些故障部件或系统的错误结果。其墓本的模型如下图:
从系统容错运行和可靠性的角度来说,静态冗余不需要其它容错功能(如检测与诊断、恢复等等)就可满足要求。静态冗余技术的难点在它的表决机构可靠性与同步问题。而它的最大缺点就是当系统运行一定的时间后由于故障子系统多于正常子系统使系统的可靠性小于单个子系统的可靠性,因此静态冗余一般要与其它容错技术结合使用。静态冗余的主要优点是系统在故障条件下对外界的快速响应性,对于某些极快速响应要求的实时应用要采用静态冗余技术。
静态冗余技术的实现方式主要有双重冗余和TMR(三重冗余)。均可以在系统的任何层次上用任何方法实现。
动态冗余
由于静态冗余的固有缺陷,大部分应用领域都采用动态冗余技术。动态冗余的基本思想是:系统不仅能保证故障的屏蔽,而且还要定位并自动切换故障子系统或改变系统的结构,不让故障部分的积累造成一系统的错误动作。动态冗余以高覆盖率、快响应时间的故障检测与诊断技术为基础。其关键技术是重组、恢复和重构。动态冗余为联机修复(系统运行中修复)提供了必要条件。
动态冗余不仅使系统的可靠性大大提高,而且极大地缩短了故障部件的修复时间,使系统的可用性也大大提高。所以动态冗余是容错计算技术中最主要最常用的技术,也是最复杂的技术。对于新型系统结构和分布式处理动态冗余又具有新的内容。
容错方法
软件容错方法
70年代中期出现了新的容错方法。它采用多处理器和特别设计的操作系统来达到容错。避免了上一代容错系统处理器的主从关系及连接至所有子系统的双路径。更重要的是.新方法在商业应用中第一次提供联机修理功能,即故障部分的移出和更换都不影响正在运行的应用程序。具有这种性能的系统的主要结构特点包括处理器重复、双存取输入输出控制器、冗余电源系统和一个以信息为基础的操作系统。