摘要:为满足对安全关键领域日益增长的可靠性需求,提出一种基于松耦合多处理器体系结构的双机容错实时嵌入式系统设计方案。该方案无缝整合了计算机硬件级、操作系统级、应用级的容错技术,以达到从整体上提高系统可靠性的目的。
关键词:容错 双机热备份 可靠性 实时嵌入式系统
引 言
实时系统的基本特性是任务响应时间的确定和系统处理任务的高吞吐量。相对于其他计算机系统而言,实时系统对可靠性和防危要求十分严格。特别是所谓的安全关键系统SCS(Safety Critical Systems),这类系统失效控制工程网版权所有,将带来灾难性的后果。在实时嵌入式系统的运行过程中,容错是最重要的可靠性保障手段。
容错实时系统的研究主要集中在两个方面[1]:① 改进实时调度算法,使之确保实时任务在正常运行和遇到错误时,均能在规定时限到来以前获得正确的输出。② 将过去应用于普通计算机系统中的冗余容错策略移植到实时系统中。
在具有硬件容错能力的计算机系统中,其失效65%来自软件[2],仅有8%来自于硬件。因此,软件容错能力成为决定计算机系统可靠性的关键。为了在出现硬件或软件的暂时或永久故障的情况下,保证关键任务仍能
1 双机容错实时系统的体系结构
本系统采用图1所示的双机容错系统硬件结构模型。该系统在双机比较系统的基础上,结合多处理机的松耦合与紧耦合系统结构CONTROL ENGINEERING China版权所有,在不同的处理机间通过通道互连实现通信,为在硬件容错中结合软件容错提供可能。
图1 双机容错系统结构模型
A机和B机各有独自的外围控制逻辑和外设,这样不会引起系统资源的竞争,增加整体系统的稳定性。当然,这样是以花费更多的硬件设施为代价的。比较器及不一致检测用专门设计的仲裁检测电路来实现,其根据A机与B机周期向其发送的自检测信号来判断A机系统和B机系统运行的状况。
双机系统的运行状态如下:
① 如果A机与B机均正常运行,则将计算机A作为主系统,计算机B作为备份使用,A机的运行结果作为系统输出,A机运行到检测点,向B机发送日志,B机更新日志列表。
② 如果A机正常而B机故障,亦将A机的运行结果作为系统输出CONTROL ENGINEERING China版权所有,同时将B机的运行故障状态报告给A机,并向B机进行复位控制操作。
③ 如果A机故障,B机正常,则进行开关切换操作,B机进行系统备份任务重调度,B机运行结果作为系统输出,并向A机进行复位控制操作,在检测点更新A机日志控制工程网版权所有,保持需要备份的任务状态一致。
2 软件设计与实现
图2所示模型结合嵌入式实时系统的体系结构,采用层次结构和模块结构相结合,无缝整合了计算机硬件、操作系统、应用软件级的软件容错设计。在整体上采用分层的结构模型,克服了软、硬件分离和脱节的问题,提高系统的灵活性和可移植性。模型的每一层均可以看作是一个相对独立的系统。在每一层中按照系统功能,划分不同的功能模块。
图2 双机容错系统软件体系结构
该系统采用对称结构,为支持容错处理,每个节点从下到上分为3个主要部分,即MCFT(Multiprocessor Communication for FaultTolerance)、RTOS系统级容错组件、任务级动态冗余组件。
2.1 多机容错通信模块MCFT
在操作系统与硬件之间加入MCFT层,MCFT作为BSP(Board Support Package)的一部分,作为硬件平台的抽象层,为操作系统提供统一的界面,提高系统的可移植性。有容错需求的任务,通过MCFT所提供的功能传递日志,保持主系统和备份系统的关键任务的状态和数据一致。MCFT屏蔽了底层通信的具体实现细节,使系统的实现与连接介质无关。
MPFT管理着一些数据包,并且在各个节点之间发送和接收这些数据包,数据包的结构如下:
typedef struct{
MP_packet_Classes the_class;
Ob jects_Id id;
Ob jects_Id source_tid;
Priority_Control source_priority;
unsigned32 return_code;
unsigned32 length;
unsigned32 to_convert;
Watchdog_Interval timeout;
}MP_packet_Prefix;