助力医疗设备向多核设计转移的操作系统特点
2012-03-23
医疗设备制造商在将产品推向市场所面临的诸多挑战中,获得监管部门的批准是必过一关,只有获得相应核准,制造商才能出售其设备。为此,许多医疗设备制造商在采用多核系统设计时倍加小心,他们担心多核的复杂性会妨碍其产品顺利通过监管机构的审核。
的确,多核处理使软件系统更趋复杂。但是无论系统运行在一个、两个或16个处理器之上,当今的系统都已太过复杂,以致无法通过单独测试来进行验证。因此,设备制造商应该熟悉针对多核系统开发他们所需的验证技术。
本文讨论基于多核处理器的医疗设备系统的安全要求验证问题,并分析可助力医疗设备向多核设计转移的操作系统具有哪些特点。
医疗设备对日益复杂的用户界面和高清成像(两者都对计算能力有巨大需求)等特性的需求不断攀升,这使得对多核处理的需求水涨船高。即便医疗系统支持越来越丰富的先进功能,它们通常也还必须满足轻便、低功耗和低发热的要求。
单核难以满足上述这些要求,因为通过增加处理器时钟速率提升计算能力的方法存在三个局限性。首先,功耗和发热的增加速度快于时钟速率的提升速度。其次,存储器的速度跟不上处理器的速度。最后,资源、控制和数据间的依赖关系限制了单指令流所允许的并行程度。
关键的操作系统要求
对可靠性和可用性都是必要条件的医疗设备来说,可能会需要实时操作系统(RTOS),而这种RTOS需要支持对称多处理。推荐使用一款可将进程分配给多个内核处理的单一操作系统,因为这种方法会比支持异步处理、且在每个处理器上采用不同操作系统,甚至是在不同核上采用不同操作系统等情况更容易。
选定的RTOS必须能防范由系统引发的故障,而且必须在出现故障时能够重启相应组件。在大多数情况下,最优选择是一个微核架构。其中,应用、设备驱程、文件系统和网络协议栈都驻留在核外的独立地址空间,因而它们彼此之间,以及它们与核之间都是隔离的。
多核系统存在大量的进程和线程,因此具有软件看门狗至关重要。看门狗是一个用户空间的故障恢复过程,它可以检测出故障,并立即将系统恢复到安全状态,或在不牺牲安全性的前提下,重启失败的进程。
为确保系统的可靠性,RTOS还应支持:1. 时间分割(最好自适应),以确保关键流程不会因CPU周期不够用而无法完成;2. 优先级继承,以防止优先级倒置;3. 处理器亲和性,它允许设计师将特定的父进程和子进程仅指派给特定内核。
设计者可以确切地决定他们要如何使用系统内可用的多个核。例如,他们可将非关键的、但计算密集的进程交由任何可用的内核处理,或是仅分配给一个有限的内核子集,同时将关键部分交由一个固定核处理,从而简化设计、调试和验证。
开发工具
开发人员需要为支持多核开发、调试和优化而专门设计的工具。一个工具集应支持多核RTOS,该RTOS允许开发者评估负载平衡、识别瓶颈、确定并发可能性、表征和调试运行于多个CPU上的线程间的相互作用;在内核间移动线程或进程,并测度其对系统造成的影响。时序和阻塞是棘手的问题,所以工具集应为设计师提供一种探究处理器和线程正在做什么的手段。
满足认证要求
符合要求是医疗设备准入市场的必要条件——是投资可以转化成收入前必须满足的必要条件。因此,除了合适的OS特性和工具集功能外,医疗设备需要一个精心策划的审批策略。
多核系统的复杂性可能会妨碍最终产品的认证,因而一些医疗制造商对采用多核处理犹豫不决。但值得注意的是,单核系统也存在固有的复杂性,这意味着,在实践中,即便是单核系统也不可能仅借助测试就可对其进行验证。多核和单核系统都是如此复杂,要展示它们的功能安全就需要技术组合,相同的技术能够且应该同时用于验证单核和多核系统。
为验证软件系统,无论其是运行在单核或多核之上,测试、统计分析和设计验证要互为补充、统筹考虑。对于经历过系统通过认证或批准过程的人来说,他们应该熟知所需的必要技术。这些技术包括:
测试。虽然测试只能证明缺陷的存在,而无法证明不存在缺陷,但在任何系统验证策略中,测试仍是关键要素。
统计分析。对于现场用过的设备或部件的使用数据,统计分析可被用作支持可靠性要求。在验证时,它也可与故障注入一起使用,用以评估系统中残留的故障。
故障树分析。以潜在或实际的故障开始,故障树分析可用于推断出可能的故障原因。
设计验证。通过在开发过程中应用并借助Spin和NuSMV等工具进行回顾性分析,设计验证可为系统的可靠性声明提供强有力的证据支持。
设计构件。一个具有所有相关设计构件(从项目计划到可追溯性矩阵)的成熟软件生命周期,是任何认证案例的标准及必要组成部分。
除了最简单的医疗设备之外,多核处理很可能是未来医疗设备的发展方向。仔细选择操作系统,尤其要关注体系结构、处理器对线程亲和性的支持以及工具集,可以减轻这些挑战对系统设计、开发和验证的影响。
图1.随着设备对计算能力要求的不断增长,甚至一款相对小型的医疗设备可能也会受益于多核处理技术。
图2.使用四核CPU的一种系统概述屏幕截图。
图3、测试、统计分析和设计验证互为补充以共同验证软件系统,无论它是运行在单核或多核上。