故障诊断系统、用于车辆的电子控制单元、故障诊断方法

文档序号:6348660阅读:345来源:国知局
专利名称:故障诊断系统、用于车辆的电子控制单元、故障诊断方法
技术领域
本发明涉及一种用于具有多个CPU核的多核中央处理单元(CPU)的故障诊断系统并且更具体地涉及一种分别地进行各CPU核的故障诊断的故障诊断系统、一种用于车辆的电子控制单元(ECU)和一种故障诊断方法。
背景技术
有时通过以下方式检测LSI (大规模集成电路)或者微计算机中的异常来进行相互异常检测使用将多个LSI或者微计算机安装于一个系统中的配置,并且监视从一个大规模集成电路(LSI)(微计算机)向另一 LSI (微计算机)发送的监视信号。另外,在一个微计算机带有多个CPU核这样的多核处理器中,通过在多个CPU中执行相同处理并且比较处理结果来检测异常。另外,公开号为7-230392的日本专利申请(JP-A-7-230392)公开如下方法,按照该方法,CPU通过自诊断来检测异常。图14是根据JP-A-7-230392进行自诊断的处理器的框图。指令代码生成单元根据建立的规则来生成指令本征代码并且在代码比较单元中输入该代码。指令执行代码生成单元根据参照指令代码生成单元的规则而言反转的规则来生成指令本征代码,并且向代码比较单元4中输入生成的指令本征代码。代码比较单元比较两个指令本征代码,如果代码互不相同则检测到处理器中的故障。然而如图14中所示,在多个CPU中执行相同处理或者执行用于异常检测的某个指令可能给微计算机或者处理器的资源带来压力,由此影响标准处理(比如作为处理器的基本需要的控制或者数据处理)的执行速度(标准处理的执行速度相对于通常执行速度降低)。常规多核处理器具有对称多处理(或者称为SMP)的处理模式、不对称多处理(或者称为AMP)的处理模式和将SMP与AMP组合的混合多处理(或者称为BMP)的处理模式。另外例如公开号为2008-123439的日本专利申请(JP-A-2008-123439)公开了一种配置成用于BMP模式的处理器,其中当在任何CPU核中出现异常时,把分配给其中已经出现异常的CPU核的处理分配到另一 CPU核。就JP-A-2008-123439中公开的操作系统(OS)而言,当向另一个核分配处理时,向正常CPU分配优先级顺序高的处理而不进行优先级顺序低的处理,由此使得可以以与在已经检测到异常之前的效率相同的效率执行优先级顺序高的处理。然而,当检测到异常时,JP-A-2008-123439中公开的OS与JP-A-7-230392中公开的OS在给微计算机或者处理器的资源带来压力这一点上(例如CPU核进行“1+1”的相加)并没有不同,因此可能影响标准处理的执行速度。

发明内容
本发明提供一种可以从多个CPU核中确定其中已经出现异常的CPU核而不影响标准处理的执行速度的故障诊断系统以及一种用于车辆的ECU(电子控制单元)和一种故障诊断方法。本发明的第一方面涉及用于多核CPU的故障诊断系统,所述多核CPU具有安装于其中的多个CPU核,所述CPU核被配置成从SMP (对称多处理)模式切换成AMP (非对称多处理)模式,所述系统包括负荷预测装置,用于预测所述多核CPU的处理负荷;模式切换装置,用于在所述处理负荷小于阈值时将至少一个所述CPU核切换成AMP模式;以及故障诊断装置,用于对已经被切换成AMP模式的所述CPU核进行故障诊断。在根据第一方面的故障诊断系统中,所述负荷预测装置对所述多核CPU在所述故障诊断装置执行故障诊断所需的时间段内的处理负荷进行预测。另外,在根据第一方面的故障诊断系统中,所述负荷预测装置建立在如下时间点开始的时间段,所述时间点是要被切换成AMP模式的所述CPU核执行的任务结束的时间 点。另外,根据第一方面的故障诊断系统还可以包括第一数据总线,专用于在SMP模式下的所述CPU核;第二数据总线,专用于在AMP模式下的所述CPU核;以及数据控制装置,用于把在SMP模式下的所述CPU核连接至所述第一数据总线,把在AMP模式下的所述CPU核连接至所述第二数据总线。。另外,在根据第一方面的故障诊断系统中,所述数据控制装置具有分别连接至所述多个CPU核的多个复用器单元;并且所述模式切换装置将连接至已被切换成AMP模式的所述CPU核的所述复用器单元的连接目的地从所述第一数据总线切换为所述第二数据总线。另外,在根据第一方面的故障诊断系统中,述故障诊断装置将用于故障诊断的测试数据的处理结果与已经预先存储的期望值进行比较,并且根据所述处理结果和所述期望值是否一致来对已被切换成AMP模式的所述CPU核执行故障诊断。另外,根据第一方面的故障诊断系统还可以包括存储所述测试数据和所述期望值的外部存储器,其中,所述故障诊断装置经由所述第二数据总线读取所述测试数据和所述期望值。另外,在根据第一方面的故障诊断系统中,将所述测试数据的所述处理结果与所述期望值之间的比较结果存储在所述外部存储器中。另外,在根据第一方面的故障诊断系统中,所述数据控制装置存储所述测试数据和所述期望值。另外,在根据第一方面的故障诊断系统中,当所述故障诊断装置检测到所述CPU核的故障时,所述CPU核被从所述多核CPU断开,并且仅向未被诊断为已发生故障的其余CPU核分配任务。另外,在根据第一方面的故障诊断系统中,处理负荷的所述阈值被设置为如下的值,所述值使得当切换成AMP模式的所述CPU核经受故障诊断时处在SMP模式下的所述CPU核中的标准处理的处理能力不降低。另外,在根据第一方面的故障诊断系统中,所述标准处理是要求实时执行能力的处理。另外,根据第一方面的故障诊断系统还可以包括用于将已进行故障诊断的时间作为信息来存储的存储装置,其中在从最后一次故障诊断起经过的时间超过预定时间的情况下再次执行故障诊断。。
根据本发明第二方面的一种用于车辆的ECU包括根据第一方面的故障诊断系统;导航装置;视频输出装置;以及音频输出装置。。本发明的第三方面涉及一种用于多核CPU的故障诊断方法,该多核CPU具有安装于其中的多个CPU核,所述CPU核被配置成从SMP模式切换成AMP模式,所述方法包括预测所述多核CPU的处理负荷;在所述处理负荷小于阈值时将至少一个所述CPU核切换成AMP模式;以及对已经被切换成AMP模式的所述CPU核进行故障诊断。本发明可以提供一种可以从多个CPU核中确定其中已经出现异常的CPU核而不影响标准处理的执行速度的故障诊断系统以及一种用于车辆的ECU和一种故障诊断方法。


通过如下参照附图对示例实施例的说明,本发明的前述和/或更多目的、特征和优点将变得明显,附图中,相似的符号用来代表相似的单元,其中图I是示意地图示根据本发明第一实施例的微计算机的故障诊断的示例图;图2图示了根据本发明第一和第二实施例的带有多核CPU的微计算机的框图的例子;图3图示了根据本发明第一和第二实施例的ECU的系统层的例子;图4图示了根据本发明第二实施例的数据控制单元的配置图的例子;图5图示了根据本发明第二实施例的OS提供的功能块的例子;图6A和6B示意地图示了根据本发明第二实施例的负荷预测的例子;图7示出了紧接在根据本发明第二实施例的模式切换单元已经向模式控制单元输出控制信号之后的数据控制单元;图8说明当根据本发明第二实施例的CPU核0读取故障诊断测试数据和期望值时的数据流;图9图示了在根据本发明第二实施例的CPU核0已经执行故障诊断测试数据之后的数据流;图10示出了在完成根据本发明第二实施例的诊断处理时的数据控制单元;图IlA和图IlB是图示了如下过程的流程图的例子,在该过程中根据本发明第二实施例的微计算机对各CPU核执行故障诊断;图12示出了根据本发明第三实施例的微计算机的框图的例子,该微计算机具有安装于其中的具有四个CPU核0至3的多核CPU ;图13是根据本发明第四实施例的微计算机的框图的例子,该微计算机中在数据控制单元中设置有外部存储器;并且图14是根据有关技术进行自诊断的处理器的框图。
具体实施例方式下文将参照

本发明的实施例。首先将说明第一实施例。图I是示意地图示了根据本发明第一实施例的微计算机100的故障诊断的示例图。图2图示了根据本发明第一和第二实施例的带有多核CPU的微计算机的框图的例子。图3图示了根据本发明第一和第二实施例的ECU的系统布局例子。微计算机100具有CPU核0和CPU核I (如图2中所示,在未区分CPU核0和CPU核I的情况下,这称为CPU核11,而由CPU核0和CPU核I构成的一个系统称为多核CPU 13)。安装于微计算机100中的OS 21可以使CPU核0和CPU核I各自在SMP (对称多处理)与AMP (不对称多处理)处理模式(下文将SMP处理模式和AMP处理模式分别称为“SMP模式”和“AMP模式”)之间切换。因此,动态地(进行故障诊断时暂时)将OS 21和CPU核11从SMP模式切换成BMP处理模式,而不是完全按照BMP处理,从而提高了处理效率。SMP模式一般是如下处理模式,在该处理模式中一个OS 21具有CPU核O、CPU核I和一个存储器,并且OS 21向处理负荷小的CPU核11动态分配任务。因此,在任务与CPU核11之间无联系,并且从OS 21的观点来看,各CPU核是等同的。AMP模式一般是如下处理模式,在该处理模式中预先确定向CPU核11分配的任务。在这一模式中,即使某个CPU核11的处理负荷小,除非作为执行目标的任务是已经向处理负荷小的CPU核11分配的任务,这一 CPU核11仍然可以不执行作为执行目标的任务。另外,BMP模式是如下处理模式,在该处理模式中一个OS 21向特定的CPU核分配特定任务而向其余CPU核动态分配其它任务。参照图I,CPU核0和CPU核I起初以SMP模式执行标准处理(图I中的“ I ”)。标准处理是根据车辆驾驶员进行的操作、车辆的行驶状态或者车辆状态,随时要求CPU核11执行的控制或者数据处理(换言之,除了检测故障的任务以外的处理)。标准处理通常由多个不同任务构成。在CPU核0的故障诊断时间,OS 21在将CPU核0从SMP模式切换成AMP模式之前进行检查以确认即使在只有CPU核I执行标准处理时也不会对标准处理的执行速度产生影响(处理负荷在阈值以下)(图I中的“II”)。因而即使在CPU核0处于AMP模式并且在进行故障诊断时仅执行故障诊断任务时,仍可保证执行标准处理而无延迟。OS 21将作为故障诊断目标的CPU核(在这一情况下为CPU核0) 11从SMP模式切换为AMP模式。CPU核0在AMP模式下执行的特定任务是故障诊断任务。CPU核0在AMP模式下不执行除了故障诊断任务之外的任何任务。对照而言,CPU核I保持于SMP模式并且CPU核I继续标准处理(图I中的“III”)。一旦CPU核0完成故障诊断任务,OS 21将CPU核0从AMP模式切换成SMP模式(图I中的“IV”)。另外,在CPU核I的故障诊断时间,OS 21以与图I中所示CPU核0的故障诊断类似的过程将CPU核I从SMP模式切换成AMP模式并且向CPU核I分配故障诊断任务。通过安装可以在SMP模式与AMP模式之间切换的多核CPU 13和OS 21并且在切换之前检查处理负荷是否可以由一个CPU核11进行标准处理而无延迟,可以进行多核CPU13的各CPU核11的个别故障诊断而不影响标准处理的执行速度。下文将说明第二实施例。在图2中,微计算机100具有多核CPU 13、数据存取控制器14、存储器存取控制器15和数据总线16、17。多核CPU13具有CPU核0、CPU核I和数据控制单元12。数据存取控制器14连接到外部存储器18,并且存储器存取控制器15连接到外部存储器19。多核CPU 13可以安装于LSI而不是微计算机100。安装于车辆的电子控制单元(E⑶)200可以由微计算机100、外部存储器18和外部存储器19实现。例如在多媒体系统的ECU 200中,基于全球定位系统(GPS)接收器检测到的位置信息在显示设备上显示道路地图并且搜索通向目的地的路线这样的处理、电视或者、相机图像的视频处理和无线接收装置或者CD播放器的语音处理是标准处理的例子。在引擎ECU中,标准处理是充分控制燃料注入量、燃料注入时序、进气阀和排气阀的开-关时序、风门打开程度和点火器的点火时序这样的处理。另外,还可以安装车体ECU、刹车ECU和各种ECU来用于辅助驾驶。在该实施例中在不影响这些种类的标准处理的执行速度的情况下执行故障诊断。因此也可以将需要实时执行能力的处理定义为标准处理。数据控制单元12控制CPU核0与CPU核I之间的CPU通信。在各周期时间通知CPU核11的状态的功能和经由共享存储器在CPU核0与CPU核I之间发送和接收数据的功能可以视为CPU通信的典型功能。例如在两个CPU核11执行相同应用并且使用相互获得的处理结果的情况下,数据控制单元12检查处理结果的兼容性。另外,CPU核11可以通过使用预备的应用编程接口(API)并且向数据控制单元12发送请求来从CPU核0中断CPU
核I (并且反之亦然)。数据总线17是CPU核11在标准处理期间使用的总线。数据总线16是CPU核11在故障诊断期间使用的总线。在故障诊断时间,数据控制单元12使CPU核11经由数据总线16存取外部存储器18。例如由于CPU核I即使在CPU核0执行故障诊断任务时仍然进行标准处理,所以通过单独提供在标准处理期间使用的数据总线17和在故障诊断期间使用的数据总线16,可以增加数据总线17在故障诊断期间的总线负荷并且防止对标准处理的执行速度的任何影响。数据存取控制器14在故障诊断期间响应于来自数据控制单元12的请求来存取外部存储器18并且读取下述测试数据和期望值。外部存储器19是容量相对较大的存储器设备(例如硬盘驱动器(HDD)或者固态盘(SSD)),其存储应用程序、OS 21和标准处理所必需的文件。数据控制单元12经由数据总线17向存储器存取控制器15发送执行标准处理的CPU核11的存取请求。各种智能设备(IP, Intellectual Property)(图中未示出)连接到总线10。这些IP是集成电路、比如电源电路、I/O接口电路、控制区域网络(CAN)通信电路和马达控制电路。在微计算机100安装于多媒体系统的ECU 200的情况下,比如无线电调谐器、电视调谐器、AV解码器、声音识别/合成电路、蓝牙电路和触摸屏传感器电路这样的IC是IP。音频系统的IP经由放大器连接到扬声器,而视频系统的IP连接到显示器。图3示出了 E⑶200的系统层的例子。因此图3示出了如下系统层,在这些系统层中微计算机100安装于多媒体系统的E⑶200。与多核CPU13最近的层是OS 21这一层。OS 21这一层实际上包括如下中间件,该中间件提供用于控制激励器的设备驱动器和虚拟执行环境并且执行特定计算(比如协议处理或者数据压缩和展开)。在该实施例中,OS 21控制将CPU核11从SMP模式切换成AMP模式的操作。在OS 21上方的层是用户接口(UI)控制应用22和功能逻辑23的层。n控制应用22控制由多媒体系统的E⑶200显示在显示器上的W。如图中所示,最上层是用于各种功能的n应用29,这些功能控制n以使它可为用户所见。用于导航的人机接口(HMI)应用25生成与导航功能有关的UI或者生成将由用户操作的菜单的UI。视频系统的HMI应用26生成用于视频如DVD或者电视的UI或者生成由用户用来操作这一功能的菜单的UI。音频系统的HMI应用27生成与音频功能如无线电或者电视声音有关的UI或者生成将由用户操作的菜单的UI。与车辆有关的HMI应用程序28例如生成用于让用户操作与使用位置信息的车辆控制有关的功能的n或者用于显示警报信号或者消息的n。n控制应用22可以控制由各功能的n应用29生成的n的显示。例如可以进行控制,使得仅预定功能的UI被显示在显示器的整个屏幕上,或者所有UI被划分并显示在显示器上,或者仅预定功能的UI不显示。HMI-API 24(位于UI控制应用22与用于各功能的UI应用29之间的层)代表用于让各功能的UI应用29调用功能逻辑23的API。例如当用户输入针对预定UI应用29的操作时,被操作的UI应用29调用与针对HMI-API 24的操作对应的API,并且HMI-API 24根据调用的API来调用预定功能逻辑23。功能逻辑23是导航逻辑23a、视频系统逻辑23b、音频系统逻辑23c和与车辆有关的逻辑23d。该逻辑用于ECU 200的各功能。当这样分离用于各功能的n逻辑29和功能逻辑23时,增加了开发的自由度。例如可以仅改变UI而使功能逻辑23不变。下文将参照图4描述数据控制单元12。数据控制单元12具有三个复用器 (MUX) 41,42和45、模式控制单元43、CPU数字编号寄存器44和比较块46。CPU核0连接到MUX 41,而CPU核I连接到MUX 42。MUX 41连接到数据存取控制器14和存储器存取控制器15这两者。MUX42也连接到数据存取控制器14和存储器存取控制器15。模式控制单元43 连接到 MUX 41、MUX 42、CPU 核 0 和 CPU 核 I。MUX 45 连接到 CPU 核 0 和 CPU 核 I。MUX45也连接到比较块46。模式控制单元43切换CPU核0和CPU核I的处理模式。因此,模式控制单元43将CPU核0切换成AMP模式而使CPU核I处于SMP模式,以及将CPU核I切换成AMP模式而使CPU核0处于SMO模式。具体而言,例如向要被切换成AMP模式的CPU核11输入“High”信号。在这种情况下接通/关断已经被切换成AMP模式的CPU核11的内部开关以形成针对故障诊断而设计的连接线或者逻辑电路。例如通过使得可以获得若干块中的故障诊断的处理结果,用于故障诊断的逻辑电路可以在短时间内完成故障诊断。另外,已经被切换成AMP模式的CPU核0将处理结果输出至MUX45,并且已经被切换成AMP模式切换的CPU核I将处理结果输出至MUX45。因此,在MUX 45中输入仅来自处于AMP模式的CPU核11的处理结果。模式控制单元43也切换MUX 41和42的处理模式。在SMP模式下,MUX 41和42向存储器存取控制器15输出存取请求,在AMP模式下向数据存取控制器14输出存取请求。因而在将CPU核0切换成AMP模式的情况下,模式控制单元43将MUX 41切换成AMP模式而使MUX 42处于SMP模式。具体而言,模式控制单元43例如向MUX 41输入“High”信号。类似地,在将CPU核I切换成AMP模式的情况下,模式控制单元43将MUX 42切换成AMP模式而使MUX 41处于SMP模式。具体而言,模式控制单元43例如向MUX 42输入“High”信号。MUX 45在比较块46中输入从处于AMP模式的CPU核11输入的处理结果。比较块46具有存储处理结果的处理结果存储单元46a、比较器46b和期望值存储单元46c。处理结果存储单元46a存储处理结果。期望值存储单元46c存储处理结果的期望值38、也就是正确处理结果。期望值38预先存储于外部存储器18中,并且当OS 21将任一 CPU核11切换成AMP模式时,OS 21将期望值从外部存储器18读取至存储单元46c。处理结果存储单元46a和期望值存储单元46c例如由动态随机存取存储器(DRAM)或者寄存器构成并且未必在物理上分离。比较器46b比较处理结果存储单元46a的处理结果与期望值存储单元46c的期望值38并且确定结果是否匹配。例如当结果匹配时输出“High”信号。也可以确定处理结果 和期望值38中的任一个是否在预定阈值以下。确定结果是故障诊断结果。CPU数字编号寄存器44是存储CPU核的标识号的寄存器。例如模式控制单元43在CPU编号寄存器44中存储接下来经受故障诊断的CPU核11的标识号。每当完成一个(PU核11的故障诊断时,模式控制单元43递增CPU编号寄存器44。另外,当达到安装于多核CPU 13中的CPU核11的“个数-I”时,CPU编号寄存器44的存储内容返回至“O”。因而多个CPU核可以均等地经受故障诊断而不是对同一 CPU核11进行故障诊断。图5示出了 OS 21提供的功能块的例子。图6A和6B示出了示意地图示负荷预测的说明图的例子。OS 21 (例如调度器)在查询CPU核11的处理负荷时向CPU核11分配任务A至C。在图5中,在CPU核0的任务提示31中登记任务B、A,而在CPU核I的任务提示32中登记任务A至C。因此可以通过查询任务提示31、31来预测将来的处理负荷。负荷预测单元34存储如下表33,在该表中任务与每秒百万指令(MIPS)值关联。例如任务A是每秒发出1,000, 000个指令的程序并且具有比其它任务B和C的处理负荷更高的处理负荷。CPU核11的处理负荷往往对于MIPS值高的任务而言更高。负荷预测单元34读取在CPU核11中执行的任务和任务提示31、32的任务,从表33读取MIPS值并且预测多核CPU 13的处理负荷。图6A示出了如下例子,该例子图示对CPU核11的处理负荷随时间的改变的预测。在组合型系统中,已经预先已知应用,因此可以针对应用的各任务指定MIPS 值。到负载要被预测的某一将来时刻的时间(下文将从预测负荷的当前时刻到将来时刻的间隔称为“时段”)是至少执行故障诊断任务所需的时间。故障诊断任务对应于测试数据37,或者测试数据37的执行。这是因为,已经执行故障诊断任务的CPU核11返回至标准处理,不会对标准处理的执行速度产生任何影响,除非多核CPU 13的处理负荷在故障诊断任务执行完成之前超过CPU核11的处理负荷。最长时段约为I秒,并且考虑到诸如从SMP模式向AMP模式切换和读取测试数据37等开销,可以认为该时段会在小于I秒到若干秒之内完成。如图6A中所示,考虑到各任务的完成时间,当CPU核11的处理负荷重叠时,可以获得对多核CPU 13的处理负荷进行预测的图6B。就典型OS 21而言,静态监视这样的处理负荷,并且执行处理使得优先向任务提示31、32为空的CPU核11分配任务。因此优选的是负荷预测不对标准处理产生影响。虽然可以将负荷处理预测认为是多核CPU 13的额外处理(因为可以通过从正在执行的任务和任务提示31、32中指定任务并且匹配MIPS值来进行负荷预测),但是处理负荷预测没有变为对标准处理有影响的负荷。如图6B中所示,当获得多核CPU 13的处理负荷与时间之间的关系时,负荷预测单元34确定所述时段的处理负荷是否超过在SMP模式下连续执行标准处理的CPU核11 (这里为CPU核I)的处理能力。由于CPU核11的处理能力已知并且也可以由MIPS值表示,所以可以容易地进行比较。如图6B中所示,确定时段A的处理负荷超过CPU核I的处理负荷,但是未确定时段B的处理负荷超过CPU核I的处理负荷。因此从时段A结束的时间点t2 (下文称为“可以开始故障诊断的时间”)执行CPU核0的故障诊断任务。与预测处理负荷进行比较的CPU核11的处理能力是所有其余的未接受故障诊断的CPU核11的处理能力的总和。因此例如在CPU核11的数目为四的情况下,与预测处理负荷比较的对象是三个CPU核11的处理能力的总和。然而在存在已经向任务提示31、32分配的任务的情况下,假设在已经执行所有这些任务之后进行故障诊断。在这一情况下,假设所述时段始于作为故障诊断对象的CPU核11的任务完成的时间。因此,必须预测的处理负荷也变成该时段的处理负荷。因此如图6A中所示,在CPU核0经受故障诊断的情况下,在CPU核0中完成任务提示31的最终任务A的时间变成该时段的起点。具体而言,有可能的是每当该“时段”从起点起流逝时可以开始故障诊断。负荷预测单元34预测其它CPU核I从完成任务A的时间起执行的任务C和后续任务的处理负荷(在图6B中示出了任务C,但是CPU核I在CPU核0结束任务A时执行的任务根据CPU核I对各任务的执行时间而改变)。当曾经分配给任务提示31的任务可能被再次分配时,负荷预测单元34可以找出 多核CPU 13的处理负荷未超过处理能力的时段并且可以在该时段内把已经分配给CPU核0的任务重新分配给并非故障诊断目标的CPU核I。当负荷预测单元34找到有可能进行故障诊断的时段时,负荷预测单元向模式切换单元35通知可以开始故障诊断的时间。当达到可以开始故障诊断的时间时,模式切换单元35 (实际上为CPU核11)向数据控制单元12的模式控制单元43输出控制信号。因而如上文所述,数据控制单元12切换CPU核11和MUX 41,42的处理模式以便执行故障诊断任务。被模式控制单元43切换成AMP模式的CPU核11执行故障诊断任务。因此CPU核11通过执行故障诊断任务来实现故障诊断单元36。图7至图10图示了数据控制单元12在CPU核11被切换成AMP模式时的操作的一个例子。图7示出了紧接在模式切换单元35已经向模式控制单元43输出控制信号之后的数据控制单元12。在图7中对与图4中所示部件相同的部件赋予相同附图标记并且省略其说明。当模式控制单元43查询CPU编号寄存器44并且检测到“0”时,模式控制单元将CPU核(^PMUX 41切换为AMP模式。因而MUX 41可以访问数据存取控制器14,而CPU核0可以访问MUX 45。图8图示了当CPU核0读出故障诊断测试数据37和期望值38时的数据流。已经被切换成AMP模式的CPU核0请求数据存取控制器14经由MUX 41从外部存储器18读取测试数据37和期望值38。因而CPU核0高速缓存测试数据37并且向寄存器中设置测试数据37的地址。另外,数据存取控制器14把期望值38直接从外部存储器18读入至比较块46 (直接存储器存取(DMA))。测试数据37可以是如下的适当数据,该数据可以被输入到微计算机100中以便使故障诊断单元36能够将与标准处理的指令相同的指令用于故障诊断。因此,当期望值38 (该期望值是在正常CPU核11中执行测试数据37时获得的处理结果)已知时可以使用任何测试数据37。优选的是测试数据37限于最少的必需数据,因为可以使故障诊断所必需的时间(前述“时段”)最少。包括指令的测试数据37也可以用于故障诊断。在这种情况下测试数据37是用于确定CPU核11是否正常的指令(操作码)和最少必需参数(操作数)。使用如下简单指令和参数,这些指令和参数由CPU核11的算术和逻辑单元(ALU)或用于扩展功能的运算电路处理。图9图示了在CPU核0已经执行故障诊断的测试数据37之后的数据流。当执行测试数据37时,CPU核0向MUX 45输出处理结果。MUX 45把处理结果存储在比较块46的处理结果存储单元中。在这种情况下,可以将期望值38和处理结果输入到比较器46b中,并且比较器46b比较二者并且保持比较结果,或者将结果输出到数据存取控制器14。数据存取控制器14将比较结果存储在外部存储器18中。可以仅在处理结果不同于期望值时向外部存储器18输出在比较期望值38和处理结果时获得的比较结果。在这种情况下可以缩短故障诊断任务的执行时间。CPU核I在故障诊断期间执行标准处理,但是由于数据控制单元12经由数据总线17访问外部存储器19或者IP,所以故障诊断引起的总线负荷增加并不影响标准处理的执行速度。图10示出了在故障诊断完成时的数据控制单元12。模式控制单元43紧接在CPU核0的处理模式已被切换之后递增CPU编号寄存器44的值。因此,CPU编号寄存器44的值变成“I”。因而CPU核I执行下一故障诊断的任务(测试数据37)。图IlA和图IlB示出了如下的流程图的示例,该流程示微计算机100针对各CPU核进行的故障诊断过程。在图IlA和图IlB中,将CPU核0当作故障诊断对象。无需这样频繁地执行故障诊断。例如,即使可能由于时间导致老化而出现故障,以约每天一次的频率进行故障诊断也足够了。出于这一目的,OS 21存储与最近的故障诊断有关的日期-时间信息。例如,对于每次点火接通,在参照日期-时间信息确定在最近一次故障诊断之后经过了等于或长于故障诊断时间间隔(例如一天)的时间时,开始图IlA和图IlB中所示处理。当以一天为故障诊断时间间隔时,可以在车辆运转时以至少一天间隔进行故障诊断。日期-时间信息与CPU核关联地存储于外部存储器18中,并且可以针对各个CPU核设置诊断间隔。当接通点火并且激活OS 21时,OS 21从外部存储器18读取日期-时间信息和故障诊断时间间隔(Sio)并且把在当前时间点以前已经经过的时间与故障诊断时间间隔(S20)进行比较。在经过的时间超过故障诊断时间间隔的情况下(在步骤S20中为是),使负荷预测单元34预测处理负荷(S30)。负荷预测单元34根据CPU编号寄存器44的值指定作为故障诊断目标的CPU核O。负荷预测单元34预测向CPU核0的任务提示31分配的最近任务的结束时间并且预测从结束时间起的各时段的处理负荷(S30)。然后针对各时段确定处理负荷是否超过CPU核I的处理能力(S40)。在处理负荷超过CPU核I的处理能力的情况下(在S40中为否),可能影响标准处理的执行速度。因此,模式切换单元35不将CPU核0切换为AMP模式。因而OS 21在SMP模式下在所有CPU核0与CPU核I之间分散负荷(S50)并且继续标准处理(S60)。负荷预测单元34等待直到经过预测处理负荷的时段(S70)并且一旦该时段经过就返回至步骤S30并且再次预测负荷。在步骤S40中,当一个CPU核I的处理能力大于处理负荷时(在S40中为是),模式切换单元35根据CPU编号寄存器44的值指定作为故障诊断目标的CPU核0 (S80)。模式切换单元35从负荷预测单元34接收可以开始故障诊断的时间。模式切换单元35等待,直至可以开始故障诊断的时间(S90)。作为故障诊断目标的CPU核0仍然以SMP模式执行已经分配至任务提示31的任务,直至能够开始故障诊断的时间(S100)。可以在能够开始故障诊断的时间之前立即再次预测处理负荷。当能够开始故障诊断的时间到来时,模式切换单元35请求数据控制单元12切换CPU核0的处理模式(SllO)。因而数据控制单元12的模式控制单元43将CPU核0从SMP模式切换成AMP模式,并且将MUX 41的处理模式从SMP模式切换成AMP模式。
在这种情况下,已经被切换成AMP模式的CPU核0开始故障诊断(S120)。如上文所述,CPU核0从外部存储器18读取测试数据37并且实现故障诊断单元36,并且数据存取控制器14把期望值从外部存储器18读入至期望值存储单元46c。故障诊断单元36确定诊断是否已经完成(S130)。例如,可以基于是否在测试数据37完全结束之前已经执行诊断,或者比较器46b是否已经输出比较结果来确定诊断是否已经完成。在尚未完成故障诊断的情况下(在S130中为否),故障诊断单元36继续在AMP模式下执行测试数据37(S140)。在完成故障诊断的情况下(在S130中为是),故障诊断单元36请求模式切换单元35切换处理模式。因而模式切换单元35请求数据控制单元12切换CPU核0的处理模式,并且数据控制单元12的模式控制单元43把CPU核0从AMP模式切换成SMP模式,并且把MUX 41的处理模式从AMP模式切换成SMP模式(S150)。另外,模式控制单元43在存在诊断尚未完成的CPU核时递增CPU编号寄存器44的值(S160)。因而在CPU编号寄存器44中将接下来要经受故障诊断的CPU核的编号设置成 “ I ”。因此完成一个CPU核0的故障诊断。因此处理流程返回至步骤S30并且OS 21执行CPU核I的故障诊断。例如,对于每次点火接通,可以通过将上述过程重复与多核CPU 13中的CPU核的数目相等的次数来执行所有CPU核11的故障诊断。在检测到CPU核11的故障的情况下,多核CPU 13将该CPU核11从多核CPU 13断开并且标准处理可以仅由其余CPU核11执行。在这种情况下,虽然处理能力已经减少,但是可以在已经确保标准处理的处理结果之后继续标准处理。在这种处理中,优选的是建立优先级顺序高的重要任务并且仅执行标准处理任务中的所述建立的任务。这样,可以实现微计算机100的失效保险模式,提高对微计算机的故障保护。下文将说明使用第一和第二实施例中说明的故障诊断的微计算机100作为第三实施例。图12示出了微计算机100的框图的例子,该微计算机具有安装于其中的具有四个CPU核0至3的多核CPU 13。在图12中对与图2中所示部件相同的部件赋予相同的附图标记并且省略其说明。当两个CPU核0和I中的一个经历故障诊断时,向另一个CPU核11施加较大负荷。因此可以缩短预测的处理负荷未超过一个CPU核11的处理能力的时段,并且在这种情况下有时可以不必选取用于故障诊断所需要的时间(对照而言,在存在四个CPU核的情况下,未超过处理能力的时段相对较长,因此故障诊断通常是可能的)。对照而言,即使来自四个CPU核0至3之中的一个CPU核11经历故障诊断,OS 21仍然分散负荷而三个CPU核11仍然在SMP模式中。因此可以容易检测到所述时段。因此,该实施例的故障诊断无论CPU核11的数目如何都可以应用于任何多核CPU 13。在多核CPU 13具有四个CPU核11的情况下,如图12中所示,以两比特的配置来使用数据控制单元12的CPU编号寄存器44以使其适合于四个CPU核11。另外,在数据控制单元12的数据存取控制器14这一侧提供共计四个MUX,并且各MUX连接到相应的CPU核0至3。分别连接MUX 45和CPU核0至3。模式控制单元43交替地将CPU核0至3中的一个和四个MUX中的一个(该MUX对应于所述的CPU核0至3中的一个从SMP模式切换成AMP模式,由此使OS 21能够执行各CPU核11的故障诊断。故障诊断处理类似于图IlA和图IlB中所示故障诊断处理,并且可以将步骤SlO至S160重复与CPU核11的数目相等的次数。如果有可能并行进行多个CPU核的故障诊断而不影响标准处理的执行速度,则可以并行进行多个CPU核的故障诊断。在图2中所示配置中,外部存储器18从外部附接至微计算机100,但外部存储器 18也可以被设置在微计算机100中。图13示出了第四实施例的微计算机100的框图的例子,其中外部存储器18设置在数据控制单元12中。图13中,与图2中所示部件相同的部件被赋予相同的附图标记并且这里省略其说明。测试数据37可以是相同的而与时间的流逝无关,并且当测试数据37不变时,期望值也可以相同。因此,外部存储器可以由此并入数据控制单元12中。在这种情况下,数据存取控制器14不必从外部存储器18读取测试数据37和期望值,并且可以缩短故障诊断时间。并入数据控制单元12中的外部存储器18是只读存储器(ROM)、随机存取存储器(RAM)或电可擦除可编程存储器(EEPROM)等形式。在并入RAM的情况下,例如,当启动微计算机100时从外部存储器19读取数据并存储在RAM中。如上文所述,通过仅在可以执行标准处理时把作为故障诊断目标的CPU核11从SMP模式切换成AMP模式(不受并非故障诊断目标的CPU核11所阻碍),该实施例的微计算机100可以针对多核CPU 13的各CPU核11个别地进行故障诊断而不影响标准处理。尽管已经参照本发明的作为举例的实施方式描述本发明,但是应当理解本发明并不限于作为举例的实施方式或者构造。恰好相反,本发明意图覆盖各种修改和等效布置。此夕卜,尽管在各种示例组合和配置中示出了作为举例的实施方式的各种单元,但是包括更多、更少或者仅单个单元的其它组合和配置也在本发明的精神实质和范围内。
权利要求
1.一种用于多核CPU的故障诊断系统,所述多核CPU具有安装于其中的多个CPU核,所述CPU核被配置成从SMP模式切换成AMP模式,所述系统的特征在于包括 负荷预测装置,用于预测所述多核CPU的处理负荷; 模式切换装置,用于在所述处理负荷小于阈值时将至少一个所述CPU核切换成AMP模式;以及 故障诊断装置,用于对已经被切换成AMP模式的所述CPU核进行故障诊断。
2.根据权利要求I所述的故障诊断系统,其中所述负荷预测装置对所述多核CPU在所述故障诊断装置执行故障诊断所需的时间段内的处理负荷进行预测。
3.根据权利要求2所述的故障诊断系统,其中所述负荷预测装置建立在如下时间点开始的时间段,所述时间点是要被切换成AMP模式的所述CPU核执行的任务结束的时间点。
4.根据权利要求I至3中任意一项所述的故障诊断系统,还包括 第一数据总线,专用于在SMP模式下的所述CPU核; 第二数据总线,专用于在AMP模式下的所述CPU核;以及 数据控制装置,用于把在SMP模式下的所述CPU核连接至所述第一数据总线,把在AMP模式下的所述CPU核连接至所述第二数据总线。
5.根据权利要求4所述的故障诊断系统,其中 所述数据控制装置具有分别连接至所述多个CPU核的多个复用器单元;并且 所述模式切换装置将连接至已被切换成AMP模式的所述CPU核的所述复用器单元的连接目的地从所述第一数据总线切换为所述第二数据总线。
6.根据权利要求4所述的故障诊断系统,其中所述故障诊断装置将用于故障诊断的测试数据的处理结果与已经预先存储的期望值进行比较,并且根据所述处理结果和所述期望值是否一致来对已被切换成AMP模式的所述CPU核执行故障诊断。
7.根据权利要求6所述的故障诊断系统,还包括存储所述测试数据和所述期望值的外部存储器,其中, 所述故障诊断装置经由所述第二数据总线读取所述测试数据和所述期望值。
8.根据权利要求7所述的故障诊断系统,其中将所述测试数据的所述处理结果与所述期望值之间的比较结果存储在所述外部存储器中。
9.根据权利要求6所述的故障诊断系统,其中所述数据控制装置存储所述测试数据和所述期望值。
10.根据权利要求I至9中任意一项所述的故障诊断系统,其中当所述故障诊断装置检测到所述CPU核的故障时,所述CPU核被从所述多核CPU断开,并且仅向未被诊断为已发生故障的其余CPU核分配任务。
11.根据权利要求I至10中任意一项所述的故障诊断系统,其中处理负荷的所述阈值被设置为如下的值,所述值使得当切换成AMP模式的所述CPU核经受故障诊断时处在SMP模式下的所述CPU核中的标准处理的处理能力不降低。
12.根据权利要求11所述的故障诊断系统,其中所述标准处理是要求实时执行能力的处理。
13.根据权利要求I至12中任意一项所述的故障诊断系统,还包括用于将已进行故障诊断的时间作为信息来存储的存储装置,其中在从最后一次故障诊断起经过的时间超过预定时间的情况下再次执行故障诊断。
14.一种用于车辆的电子控制单元,其特征在于包括 根据权利要求I至13中任意一项所述的故障诊断系统; 导航装置; 视频输出装置;以及 音频输出装置。
15.一种用于多核CPU的故障诊断方法,所述多核CPU具有安装于其中的多个CPU核,所述CPU核被配置成从SMP模式切换成AMP模式,所述方法包括 预测所述多核CPU的处理负荷; 在所述处理负荷小于阈值时将至少一个所述CPU核切换成AMP模式;以及 对已经被切换成AMP模式的所述CPU核进行故障诊断。
全文摘要
一种用于多核CPU的故障诊断系统(100),该多核CPU具有安装于其中的多个CPU核(11),该多核CPU被配置成从对称多处理模式切换成非对称多处理模式切换,该系统包括负荷预测装置,用于预测所述多核CPU的处理负荷;模式切换装置,用于在所述处理负荷小于阈值时将至少一个所述CPU核(11)切换成非对称多处理模式;以及故障诊断装置,用于对已经被切换成非对称多处理模式的所述CPU核进行故障诊断。
文档编号G06F11/07GK102741818SQ201080012408
公开日2012年10月17日 申请日期2010年2月2日 优先权日2009年3月17日
发明者繁原英一郎 申请人:丰田自动车株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1