使用投票机制确定车辆控制命令的可靠性

文档序号:1367257 发布日期:2020-08-11 浏览:9次 >En<

阅读说明:本技术 使用投票机制确定车辆控制命令的可靠性 (Determining reliability of vehicle control commands using voting mechanism ) 是由 G·戈洛夫 于 2018-09-25 设计创作,主要内容包括:本发明揭示一种车辆,所述车辆具有针对所述车辆的速度、加速度或方向的控制元件、在所述车辆的自主驾驶期间并行地单独产生驾驶命令的多个相同或冗余的计算装置(例如,各自被实施为单芯片系统SoC)及耦合在所述控制元件与所述计算装置之间的命令控制器。所述命令可具有一或多个匹配群组,其中每一相应群组内的命令彼此一致且因此为表示所述群组的候选命令投票。所述计算装置输出表示最大群组的候选命令以由所述控制元件执行。(A vehicle having a control element for a speed, acceleration, or direction of the vehicle, a plurality of identical or redundant computing devices (e.g., each implemented as a system-on-a-chip (SoC)) that individually generate driving commands in parallel during autonomous driving of the vehicle, and a command controller coupled between the control element and the computing devices. The commands may have one or more matching groups, where the commands within each respective group are consistent with each other and thus are voted for candidate commands representative of the group. The computing device outputs a candidate command representing a largest group for execution by the control element.)

具体实施方式

本文中所揭示的至少一些实施例提供命令控制器,所述命令控制器通过测试计算装置的存储器的一部分来确定由车辆的用于自主驾驶的计算装置产生的命令的可靠性。当计算装置未通过存储器测试时,所述命令控制器阻止命令及/或起始紧急响应。

为减少在车辆自主驾驶期间执行的存储器测试量,车辆可任选地经配置以具有操作相同输入数据以产生冗余驾驶命令的相同或冗余计算装置。命令控制器核查从冗余计算装置接收到的命令以确定其是否彼此一致;且如果是,那么命令控制器认为命令是可靠的,跳过存储器测试,并允许执行彼此匹配的命令中的一者。然而,当由冗余计算装置产生的命令不匹配时,命令控制器对计算装置的存储器的部分进行测试以识别由计算装置中出错的计算装置产生的不可靠命令。不可靠命令被筛除及/或摒弃。任选地,命令控制器可使用冗余计算装置中健康的计算装置中的数据来修复计算装置中出错的计算装置的计算功能。

可通过使用投票机制从由冗余计算装置产生的不匹配命令中选择可靠命令来进一步减少对存储器测试及/或诊断的需要。举例来说,命令控制器可对所接收命令进行比较以识别一或多个匹配命令。与匹配命令一致的所接收命令为所述匹配命令提供一个投票。具有最多投票的匹配命令可被视为最可靠命令且因此被选定以在车辆自主驾驶时执行。当大多数所接收命令彼此一致时,无需进一步检查其余命令来确定所述其余命令是否与大多数命令一致。在一些例子中,当接收命令的数目高于预定阈值(可小于大多数)时,可选择匹配命令而无需进一步与所接收命令比较。

举例来说,当车辆使用单芯片系统(SoC)来产生使车辆自主操作的命令(例如,使车辆的车轮转向,调整车辆的电动机的速度,激活车辆的制动器)时,命令控制器基于确定SoC是否被损坏来确定命令是否可信。如果SoC被部分地损坏,由SoC产生的命令被视为不可靠且因此可被阻止以作出紧急响应。

SoC的存储器是否健康可被视为SoC整体是否健康的代理。当SoC的存储器的某些区域(尤其是存储器的任务关键部分)被损坏时,则认为SoC产生自主驾驶命令的可靠性考虑会打折扣。因此,当SoC未通过对其存储器的任务关键部分的测试时,可阻止SoC产生的自主驾驶命令;且可产生一或多个安全模式命令以将车辆置于安全状况下。

举例来说,可将命令控制器配置在从SoC到施行来自SoC的命令的控制元件的命令通信路径上。命令控制器经配置以拦截SoC所发布且影响车辆的控制元件的操作的命令。在一些例子中,控制元件直接执行命令;且在其它例子中,另一计算装置(例如,另一SoC)进一步处理命令以针对控制元件产生控制信号或命令。

响应于拦截从SoC到控制元件的命令,命令控制器针对SoC起始存储器测试,优选地测试SoC的存储器的一或多个任务敏感或关键区域,例如存储用于产生命令的软件/固件的存储器区域、存储作为命令产生依据的数据的存储器区域。

如果SoC的存储器的选定区域通过测试,那么控制器将所拦截的命令提供给车辆以由控制元件执行或施行;否则,SoC可被视为有缺陷,这致使命令控制器识别错误产生的命令且防止所述命令到达控制元件,及/或致使命令控制器产生一或多个基本取代命令以将车辆置于安全状况中。

举例来说,响应于SoC未通过存储器测试,命令控制器可请求车辆的人类操作者接过对车辆的控制,在适合的通信信道可用的情况下与远程服务器进行通信以获得取代命令,激活车辆的紧急信号,激活在紧急条件(例如,使车辆减速以停车)下操作车辆的预定紧急命令或例程。

在一些实施方案中,使用在SoC外部的使用硬件的计算装置来实施命令控制器。优选地,命令控制器的硬件比SoC更可靠及/或更耐久。另一选择为,在使用专用硬件电路系统及/或固件控制输出时,命令控制器可被实施为SoC的一部分。

图1展示具有命令控制器(107)、单芯片系统(SoC)(105)、一或多个传感器(103)及一或多个控制元件(109)的车辆(101)。

在图1中,命令控制器(107)具有存储器(113)以及一或多个处理器(111);且命令控制器(107)耦合在SoC(105)与控制器元件(109)之间以在确定由SoC(105)产生的命令不可靠时防止所述命令到达控制元件(109)。

通常,命令控制器(107)可以是用以评估SoC(105)(包含存储器(113)及处理器(111)在内)的健康状态的自诊断功能。可使用自诊断功能的结果来确定由SoC(105)产生的命令的可靠性。优选地,在自主驾驶期间至少部分地基于测试存储器(113)的一或多个选定部分的结果实时地测试(例如,每个命令地或周期性地)SoC(105)的命令或输出的可靠性。

图1的SoC(105)从传感器(103)接收数据并使用其处理器(111)执行存储器(113)中所存储的固件(115)以产生影响可施行车辆(101)的自主驾驶的控制元件(109)的命令。举例来说,传感器(103)可包含可见光相机、红外线辐射相机、光雷达(光检测与测距)、雷达(无线电检测与测距)等。

SoC(105)的处理器(111)及存储器(113)通常被密封在同一集成电路系统封装内。然而,处理器(111)及存储器(113)可或可不形成在单个硅衬底上。

当SoC(105)具有损坏的电路系统(例如,处理器(111))时,SoC(105)的存储器(113)可能也损坏。当在产生命令之后确定存储器(113)的存储固件(115)及/或f用于执行固件(115)的任务关键数据(119)的部分被损坏时,命令可能是执行固件(115)的错误结果。因此,SoC(105)的存储器测试结果可用作SoC(105)的健康的代理指标且在自主驾驶期间实时地评价。

通常,SoC(105)也可从配置在车辆(101)上的其它计算装置(图1中未展示)接收输入,例如来自另一SoC的输入或命令,所述另一SoC提供传感器(103)或另一传感器(图1中未展示)的预处理结果。

类似地,由SoC(105)产生的命令或输出也可用作去往其它计算装置(例如另一SoC)的输入,其它计算装置SoC(105)的命令或输出进行后处理以驱动控制元件(109)。

举例来说,车辆(101)可被配置为由电动机或内燃机驱动的汽车(car或automobile)。控制元件(109)可包含车辆(101)的制动器、车辆(101)的加速度控件、车辆(101)的转向控件、车辆控制(101)的转弯信号等。

为提高可靠性,响应于由SoC(105)产生的命令或输出对SoC(105)的健康实时地执行测试,尤其是当所述命令或输出对控制元件(109)的操作产生影响时。

对SoC(105)执行完整诊断可为耗时的,且如果对每一命令执行诊断,那么可造成在将命令/输出从SoC(105)提供到控制元件(109)时出现不可接受的延迟。任选地,可在某些时间周期期间(例如,当车辆(101)处于泊车模式中时、在车辆起动期间)对SoC(105)执行完整诊断,但在主动驾驶的时间周期期间不执行以避免干扰SoC(105)的自主驾驶功能。

优选地,命令控制器(107)起始对存储器(113)的任务关键部分的测试以平衡来自SoC(105)的命令/输出的可靠性检查的需要与避免命令/输出从SoC(105)传播到控制元件(109)的过度延迟的需要。

存储器(113)的任务关键部分可包含存储固件(115)以指令处理器(111)执行使得产生SoC(105)的命令/输出的计算的部分及/或存储器(113)中存储用于产生SoC(105)的命令/输出的任务关键数据(119)的部分。任务关键数据(119)的实例包含用于辨识由传感器(103)捕获的事件或对象及/或用于响应于事件或对象的辨识而产生驾驶决策的人工神经网络的突触权重。

存储器(113)可包含存储不用于产生SoC(105)的命令/输出的其它数据(117)的一部分及/或当SoC(105)输出其命令或控制信号时当前不存储任何有效数据的一部分。命令控制器(107)可跳过对SoC(105)的存储器(113)的此部分的测试。

存储器(113)的任务关键部分可以是预定义的。举例来说,固件(115)的模块及用于产生一个命令的任务关键数据(119)可经配置以存储在存储器(113)的预定义区域中。可通过物理地址或逻辑地址的一或多个块识别所述预定义区域。响应于在SoC(105)的输出中检测到命令,对存储器(113)的预定义区域进行测试以作为SoC(105)的健康的代理。可基于由SoC(105)根据负责产生某类型的命令/输出的模块及数据项的识别产生的命令/输出的类型来选择存储器(113)的任务关键部分。

另一选择为或组合地,可对存储器(113)的随机选定部分进行测试,其中测试结果用作SoC(105)整体的健康代理。

SoC(105)任选地被配置有对其存储器(113)的一部分进行自测试的电路。命令控制器(107)响应于由SoC(105)所产生的命令/输出激活所述电路以产生测试结果。在一些例子中,另一选择为,至少部分地由执行固件(115)的模块的处理器(111)实施自测试电路的功能。

另一选择为,命令控制器(107)可通过SoC(105)的测试接口通信以存取存储器(113)以对SoC(105)的存储器(113)的选定部分执行测试。

在一些例子中,单芯片系统(105)的功能不实施于单个集成电路芯片中。举例来说,多于一个集成电路芯片可用于实施图1中所图解说明的SoC(105)的功能。当用于实施单芯片系统(105)的功能的组件彼此靠近时,存储器测试也可用于指示全部组件的健康。

在一些例子中,命令控制器(107)被实施为单芯片系统或车辆(101)的车载计算机。另一选择为,命令控制器(107)可集成于SoC(105)内。

图2图解说明根据一个实施例命令控制器检查来自车辆的计算装置的命令的可靠性的操作。举例来说,可在图1中所图解说明的车辆(101)中或在另一系统中实施图2中所图解说明的操作。

在图2中,SOC(105)接收输入数据(121)以产生影响或控制控制元件(109)的操作的命令(123)。

命令控制器(107)拦截从SoC(105)到控制元件(109)的通信路径上的命令(123)。

响应于此命令(123),命令控制器(107)产生或起始存储器测试(125)。

在一些实施方案中,存储器测试(125)是针对SoC(105)的存储器(113)的预定区域,不受命令(123)的影响。

在其它实施方案中,命令控制器(107)基于命令(123)的内容选择存储器(113)的区域来接受存储器测试(125)。

举例来说,基于命令(123)的类型,命令控制器(107)识别用于产生命令(123)的固件(115)的模块并执行或请求对存储器(113)的存储固件(115)的经识别模块的部分的存储器测试(125)。

举例来说,基于命令(123)的类型,命令控制器(107)识别数据用于产生命令(123)的组件(例如,119),并执行或请求对存储器(113)的存储经识别数据组件(115)的部分的存储器测试(125)。

在一些例子中,固件(115)及/或任务关键数据(119)与冗余及/或奇偶性数据一起存储,所述冗余及/或奇偶性数据使得能够测试存储器(113)的存储固件(115)及/或数据(119)的部分的健康,而无需在SoC(105)的存储器(113)的受测试部分中执行写入操作。

图3展示根据一个实施例的处理来自车辆的计算装置的命令的方法。举例来说,可在图1的车辆(101)中实施图3的方法以执行图2中所图解说明的操作。

图3的方法包含:从计算装置(例如,SoC(105))接收(141)在车辆(101)中执行的命令(123);对计算装置(例如,SoC(105))的存储器(113)的一部分(例如,115及119)进行测试(143);从测试结果确定(145)计算装置(例如,SoC(105)的存储器(113)是已通过测试(125)还是未通过测试(125);及如果确定(145)存储器(113)已通过测试(125),那么转发(147)命令(123)以在车辆(101)中执行。

如果确定(145)存储器(113)未通过测试(125),那么图3的方法进一步包含:阻止(149)命令(123)在车辆(101)中执行;产生(151)安全模式命令;及提供(153)安全模式命令以在车辆(101)中执行。

图4展示根据一个实施例的提高具有自主驾驶功能的车辆的可靠性的详细方法。举例来说,可在图1的车辆(101)中实施图4的方法以执行图2中所图解说明的操作。

图4的方法包含:通过车辆(101)的一或多个传感器(103)(例如可见光相机、红外线相机、声纳、雷达、光雷达)针对车辆(101)的自主驾驶/在车辆(101)的自主驾驶期间产生(161)输入数据(121);通过单芯片系统(SoC)(105)使SoC(105)的固件(115)的一或多个模块对输入数据(121)及SoC(105)的存储器(113)中所存储的数据(119)进行操作来计算(163)驾驶命令(123);由耦合在SoC(105)与负责车辆(101)的速度、加速度或方向的控制元件(109)(例如,车辆的加速器、制动器、转向机构)之间的命令控制器(107)拦截(165)由SoC(105)产生的命令(123);起始(167)对SoC(105)的存储一或多个模块及用于产生命令(123)的所存储数据(119)的存储器(113)的一部分的测试(125);从测试结果确定(145)存储器(113)计算装置(例如,SoC(105)的部分是已通过测试(125)还是未通过测试(125);且如果计算装置(例如,SoC(105)的存储器(113)的所述部分已通过测试(125),那么命令控制器(107)提供(171)命令(123)以由控制元件(109)执行。

如果计算装置(例如,SoC(105)的存储器(113)的部分未通过测试(125),那么图4的方法进一步包含:由命令控制器(107)防止(173)命令(123)到达控制元件(109);由命令控制器(107)起始(175)紧急响应;及根据经预编程的例程操作(177)车辆(101)以提供紧急响应。

举例来说,紧急响应可包含:请求车辆(101)的人类操作者控制车辆(101);开始经预编程的紧急响应例程以将车辆(101)置于安全状况中;及/或减小车辆(101)的速度以停车。

在一些例子中,基于命令(123)的类型识别正被测试(125)的存储器(113)的部分。基于命令(123)的类型,命令控制器(107)及/或SoC(105)识别固件(115)的负责输出命令(123)的模块及负责输出命令(123)的其相关联数据(119)。识别存储器(113)的被测试部分以将存储器(113)的未被使用或存储不负责输出命令(123)的其它数据(117)或存储固件(115)的不负责输出命令(123)的其它模块的一部分排除在测试(125)之外。

在一些实施方案中,命令控制器(107)位于被密封在集成电路封装中的SoC(105)的外部。另一选择为,命令控制器(107)可以是SoC(105)的一部分,经由执行固件(115)的模块的处理器(111)来实施及/或经由硬件电路系统实施。

SoC(105)可包含响应于来自命令控制器(107)的请求执行测试(125)的存储器测试电路系统。

在一些例子中,期望减少在车辆的自主驾驶期间执行的存储器测试的数目。可经由在产生用于自主驾驶的命令时实施冗余使得在可能时基于冗余而非基于存储器测试来评价自主驾驶命令的可靠性来减少存储器测试。

举例来说,可使用至少两个相同SoC(例如,105)来处理同一输入数据(103)以产生用于车辆(101)的自主驾驶的命令(123)的冗余命令。在车辆(101)中使用冗余组件提高车辆(101)整体的可靠性。可通过对由一个SoC(105)产生的命令(123)的可靠性与由与所述SoC(105)相同且操作来自传感器(103)的同一输入数据(121)的另一冗余SoC产生的冗余命令进行比较来检验由一个SoC(105)产生的命令(123)的可靠性。当命令彼此匹配时,由SoC(105)产生的命令(123)被视为可靠的;且因此,命令控制器(107)可转发将由控制元件(109)执行及/或施行的命令(123),而无需进行存储器测试来确定命令(123)的可靠性。

通常,冗余组件不会同时出故障及/或以相同方式出故障。因此,当冗余组件自相同输入(121)产生不同结果时,不匹配结果指示冗余组件中的至少一者出错、错误、问题、毁坏或出故障,这会产生不可靠结果。为识别不同结果中的不可靠结果及/或出错组件,可如上文结合图2所论述地对冗余组件中的每一者执行存储器测试(125)。可并行地测试冗余组件。在清除由出错组件产生的不可靠结果之后,车辆最可能仍可使用仍健康的冗余组件中的一者操作,如通过通过存储器测试(例如,125)所指示。在所有的冗余组件皆未通过其存储器测试(例如,125)罕见事件中或当存储器测试(例如,125)未明确地识别出错组件时,可由命令控制器(107)以与上文结合图1至4所论述的方式类似的方式起始紧急响应或安全模式命令。

图5展示根据一个实施例的具有用于产生自主驾驶命令的冗余SoC的车辆。举例来说,可通过在图1的车辆(101)中添加与SoC(105)相同或具有针对命令控制器(107)产生驾驶命令这一相同功能的SoC(104)来实施图5的车辆(101)。

当图5的车辆(101)冗余组件(104及105)时,使用冗余组件(104及105)提高车辆(101)整体的可靠性。举例来说,如果SoC(104及105)中的一者完全出故障(例如,不再向命令控制器(107)产生输出),那么车辆(101)的自主驾驶仍可如预期使用SoC(104或105)中其余的SoC来发挥功能。

在图5中,SoC(104及105)从传感器(103)接收相同输入数据且经配置以通过根据任务关键数据(119)运行固件(115)的相关模块的处理器(111)以相同的方式处理所述输入数据,以处理来自传感器(103)的输入。当两个SoC(104及105)皆健康时,SoC(104及105)向命令控制器(107)产生相同或基本上相同的输出。

当SoC(104及105)向命令控制器(107)产生相同的输出时,可假定两个SoC(104及105)皆是健康的且SoC(104及105)的输出是可靠的。因此,命令控制器(107)可跳过经设计以测试SoC(104及105)的输出的可靠性的存储器测试。

然而,SoC(104及105)中的一者可出错、有错误、出问题、被毁坏或出故障,这导致出错SoC(104或105)产生不可靠的、出错的或错误的输出。当SoC(104及105)的输出不同时,可推测SoC(104及105)中的至少一者有缺陷。

在一些例子中,命令控制器(107)可基于检验由SoC(104及105)产生的输出来确定哪一SoC(104及105)有缺陷。

举例来说,当SoC(104及105)中的一者未输出时,未产生输出的SoC(104或105)有缺陷。

举例来说,当SoC(104及105)中的一者提供在预期范围之外的输出时,产生范围外输出的SoC(104或105)有缺陷。

举例来说,从先前输出来看,当SoC(104及105)中的一者提供与预定型式不一致的输出时,产生与预定型式冲突的输出的SoC(104或105)有缺陷。

然而,在诸多例子中,命令控制器(107)无法基于对SoC(104及105)的输出的分析来辨别哪一SoC(104及105)有缺陷。在其它例子中,详细分析SoC(104及105)的输出以在输出内识别出错输出可花费比自主驾驶的阈值长的时间周期及/或比执行存储器测试长的时间周期。

因此,当命令控制器(107)从SoC(104及105)接收不同的命令或控制信号时,命令控制器(107)可并行地对两个SoC(104及105)起始存储器测试,以识别(104及105)中具有至少部分地负责产生对应的出错的命令或控制信号的出错存储器(例如,113)的SoC。

对SoC(104及105)中的每一者执行的存储器测试经配置以确定相应SoC(104或105)的可靠性。如果SoC(104或105)未通过存储器测试,那么其向命令控制器(107)的输出不可靠且因此可被摒弃。

命令控制器(107)可对两个SoC(104及105)执行相同存储器测试。举例来说,无论受测试存储器块是否经配置以存储相同内容,命令控制器(107)皆可测试在SoC(104及105)内具有相同物理地址(或逻辑地址)的选定存储器块。举例来说,即使存储器块在不同SoC(104及105)内对应于不同物理及/或逻辑地址,命令控制器(107)仍可测试在SoC(104及105)存储相同内容(例如,固件(115)的相同模块及相同任务关键数据(119))的选定存储器块。

另一选择为,命令控制器(107)可以不同方式测试SoC(104及105)。举例来说,命令控制器可随机地选择SoC(105)的存储器(113)的一部分来进行测试且随机地选择SoC(104)(104)的存储器的另一部分来进行测试,其中SoC(104及105)的选定存储器部分可不具有任何明显的相关性。在一些例子中,命令控制器(107)可随机地测试SoC(104及105)的存储器的若干部分,直到SoC(104及105)中的一者未通过其测试或SoC(104及105)的整个存储器通过其测试为止。

任选地,SoC(104及105)在硬件及存储内容上是相同的。举例来说,SoC(104及105)不仅在其存储器(例如,113)内的同一位置存储相同固件(115),而且在其存储器(例如,113)内的同一位置存储相同任务关键数据(119)。当健康时,SoC(104及105)彼此不可区分且可互换。

另一选择为,在一些方面,SoC(104及105)车辆中的使用可不同。举例来说,不同SoC(104及105)的存储器(例如,113)可用于存储不同的其它数据(117)。举例来说,固件(115)及/或任务关键数据(119)可存储在不同SoC(104及105)的存储器(例如,113)内的不同位置处。

在一些实施方案中,SoC(104及105)在硬件上可不相同。举例来说,除SoC(104及105)经配置以基于来自传感器(103)的相同输入为命令控制器(107)产生相同输出之外,SoC(104及105)可具有其它功能。举例来说,SoC(104及105)可具有不同电路以用于其识别。举例来说,SoC(104)可包含SoC(105)所不具有的自诊断电路系统或模块。举例来说,SoC(104及105)可具有不同实施方案,这些不同实施方案形成在硬件成本及性能上(例如,在计算速度、耐久性、可靠性)的不同折衷。举例来说,SoC(104)经配置以提供SoC(105)向命令控制器(107)产生输出的冗余功能,但可具有SoC(105)中不具有的其它功能且可不具有SoC(105)中所具有的一些功能。

图6图解说明根据一个实施例的检查来自车辆的冗余计算装置的命令的可靠性的命令控制器的操作。举例来说,图6中所图解说明的操作可实施于图5中所图解说明的车辆(101)中或实施于另一系统中。

在图6中,两个SoC(104及105)接收相同输入数据(121)以产生相应命令(122及123),所述命令(122及123)影响或控制用于车辆(101)的自主驾驶的控制元件(109)的操作。

命令控制器(107)拦截从SoC(104及105)到控制元件(109)的通信路径上的命令(122及123)。

响应于此类命令(122及123),命令控制器(107)对命令(122及123)进行比较。

如果命令(122及123)相同或具有小于预定阈值的参数差,那么命令控制器(107)跳过经设计以测试命令(122及123)的可靠性的存储器测试(124及125)。命令(122及123)相匹配被视为两个命令(122及123)的可靠性的指示。

如果命令(122及123)不同或具有大于预定阈值的参数差,命令控制器(107)产生、起始或请求经设计以测试命令(122及123)的可靠性的存储器测试(124及125)。命令(122及123)不匹配被视为命令(122及123)中的至少一者的不可靠性的指示。存储器测试(122及123)用于识别来自SoC(105及104)中未通过对应存储器测试(例如,124或125)的一者的命令(122及123)中的不可靠命令。可以与图2的存储器测试(123)类似的方式建构及/或执行存储器测试(122及123)中的每一者。

命令控制器(107)经配置以摒弃与未通过存储器测试(例如,124或125)的SoC(例如,104或105)对应的命令(例如,122或123)。

如果在存储器测试(124及125)之后有一个命令(例如,123或122)未被摒弃,那么命令控制器(107)将此剩余命令(例如,123或122)提供给控制元件(109)以供执行,这与图2的命令控制(109)响应于SoC(105)通过图2中的存储器测试(125)而将命令(123)传递到命令元件(109)类似。

此外,命令控制器(109)可试图使用来自SoC(104及105)中通过存储器测试(例如,124或125)的健康SoC的数据来复原SoC(104及105)中的出错SoC的冗余功能。

举例来说,可将存储在出错SoC(105)的存储器(113)中的固件(115)及/或任务关键数据(119)移动到SoC(105)的存储器(113)内的不同位置。由于存储器(113)在用于存储固件(115)及/或任务关键数据(119)的新位置处仍可正确地发挥功能,因此可校正SoC(105)内的未通过的存储器元件所导致的错误。可阻由存储器测试(例如,125)的结果识别的存储器(113)的出错部分进一步使用。可从SoC中的健康SoC(例如,104)检索存储器(113)的出错部分中的已毁坏数据以加以修复。在在具有出错存储器元件的SoC(105)的存储器(113)中的新位置处复原固件(115)及/或任务关键数据(119)之后,可进一步对由SoC(104及105)产生的后续命令(122及123)进行比较以确定修复是否成功。举例来说,如果由SoC(104及105)产生的后续命令(122及123)彼此一致,那么SoC(104及105)的冗余功能可被视为已被复原。

如果在罕见情况下,两个不匹配命令(122及123)在存储器测试(124及125之后皆被摒弃,那么不将任何命令(例如,123或122)提供到控制元件(109);且命令控制器(107)可起始安全模式命令或紧急响应,这与图2的命令控制(109)对在SoC(105)未通过图2中的存储器测试(125)之后阻止命令(123)到达控制元件(109)做出响应类似。

如果在罕见情况下,不匹配命令(122及123)在存储器测试(124及125)之后皆被被摒弃,命令控制器(107)可阻止两个命令(例如,122及123)作为安全预防且起始安全模式命令或紧急响应,这与两个SoC(104及105)皆未通过存储器测试(124及125)的情况类似。

另一选择为,当不匹配命令(122及123)在存储器测试(124及125)之后皆未被摒弃时,那么命令控制器(107)可改变或扩展存储器测试(124及125)的范围;且可重复地调整存储器测试(124及125)直到发现SoC(104或105)中未通过其测试(例如,124或125)的至少一者或SoC(104或105)的所有存储器恰当地发挥功能为止。在一些例子中,命令控制器(107)可任选地在对于自主驾驶安全来说的预定时间周期内进一步测试SoC(104及105)的处理器(例如,111)。举例来说,命令控制器(107)可请求SoC(104及105)中的每一者运行自诊断以确定SoC(104及105)中的不可靠SoC。举例来说,命令控制器(107)可提供样本数据取代输入数据(121)以获得命令(122及123),可将所述命令和与样本数据相关联的预期命令进行比较。从样本数据产生与预期命令不一致的命令(122或123)的SoC(104或105)被识别为失灵组件。

图7展示根据一个实施例的处理用于车辆的冗余命令的方法。举例来说,可在图5的车辆(101)中实施图7的方法以执行图6中所图解说明的操作。

图7的方法包含:分别从两个冗余计算装置(例如,SoC(104及105))接收(181)两个命令(122及123);确定(183)从冗余计算装置(104及105)接收到的命令(122及123)是否彼此一致;且如果时,那么转发(185)将命令(122及123)中的任一者以在车辆(101)中执行。

如果确定(183)命令(122及123)彼此不一致,图7的方法进一步包含:对两个计算装置(104及105)执行(187)存储器测试(124及125);确定(189)计算装置(104及105)是否具有不同的测试结果;如果是(例如,一者通过存储器测试(例如,124或125)且另一者未通过存储器测试(例如,125或124)),那么选择(191)由计算装置(104及105)中已通过存储器测试(例如,124或125)的一者产生的命令(例如,122或123);及转发(185)由已通过存储器测试(例如,124或125)的计算装置(例如,104或105)产生的选定命令(例如,122或123)以在车辆(101)中执行。

如果确定(189)计算装置(104及105)具有相同的测试结果(例如,两个皆通过存储器测试(124及125)或两个未通过存储器测试(124及125)),那么图7的方法进一步包含:阻止(193)执行命令(122及123);产生(195)安全模式命令;提供(197)安全模式命令在车辆(101)中执行(例如,这与图3的对应操作(149、151及153)类似)。

图8展示提高根据一个实施例的具有冗余自主驾驶功能的车辆的可靠性的详细方法。举例来说,可在图5的车辆(101)中实施图8的方法以执行图6中所图解说明的操作。

图8的方法包含:从车辆(101)的一或多个传感器(103)接收(201)用于车辆(101)的自主驾驶的输入数据;两个相同SoC(104及105)通过使用存储在SoC(104及105)中的固件(115)的至少一个模块及任务关键数据(119)单独地处理SoC(104及105)中的输入数据(121)并行地产生(203)两个驾驶命令(122及123);在耦合在SoC(104及105)与负责车辆(101)的速度、加速度或方向的控制元件(109)(例如,车辆(101)的加速器、制动器或转向机构)之间的命令控制器(107)中接收(205)由SoC(104及105)产生的命令(122及123);通过命令控制器(107)确定(207)命令(122及123)是否相同;及如果(209)命令(122及123)相同,那么命令控制器(107)提供(211)来自SoC(104及105)中的任一者的命令(122或123)以由控制元件(109)执行。

如果(209)命令(122及123)不同,那么图8的方法进一步包含:测试(213)SoC(104及105)的存储器(例如,113);及基于测试结果做出(215)决策。

如果(215)存储器测试(124及125)中的一者具有通过的结果且存储器测试(124及125)中的另一者具有未通过的结果,那么图8的方法进一步包含:选择(217)由SoC(例如,104或105)中已通过存储器测试(例如,124或125)的一者产生的命令;及命令控制器(107)提供(211)来自SoC(例如,104或105)中已通过存储器测试(例如,124或125)的命令(122或123)以由控制元件(109)执行。

任选地,将存储在已通过存储器测试(124)的健康SoC(例如,104)中的数据复制到存储器(113)未通过存储器测试(125)的不健康SoC(例如,105)中以修复不健康SoC(例如,105)。将数据复制到不健康SoC(例如,105)的存储器(113)的与未通过存储器测试(125)的受测试区域不同的替代区域中,以取代先前存储在不健康SoC(例如,105)的受测试区域中的已毁坏数据。因此,如果不健康SoC(例如,105)中的损坏仅限于不健康SoC(例如,105)的受测试区域中的数据毁坏,那么将数据从来自健康SoC(例如,104)复制到不健康SoC(例如,105)的存储器(113)的替代区域中可复原不健康SoC(例如,105)的功能。可经由对来自SoC(104及105)的后续命令进行来检验不健康SoC(例如,105)的功能是否成功复原。如果来自不同SoC(104及105)的后续命令彼此匹配,那么复原是成功的。

如果(215)两个存储器测试(124及125)皆具有未通过的结果,那么图8的方法进一步包含:起始(219)紧急响应,这与图4的操作(175及177)类似。

如果(215)两个存储器测试(124及125)皆具有通过的结果,那么图8的方法进一步包含:执行(221)进一步处理,例如扩展存储器测试(124,125)、测试SoC(105)的处理器、请求SoC(104及105)的自诊断、阻止不匹配命令(122及123),及/或起始与图4的操作(175及177)类似的紧急响应。

当由冗余SoC产生的命令彼此不匹配时,可使用投票机制来识别由冗余SoC的子集产生的可靠命令,从而减小或消除对存储器测试及/或诊断的需要。

举例来说,当使用两个以上冗余SoC产生三个或多于三个冗余输出时,即使当一或多个出错SoC产生不同输出时,健康SoC的子集仍可产生匹配输出。因此,可识别匹配输出来作为可靠输出。

举例来说,当冗余SoC中的一者出错时,其输出与其余两个或多于两个健康SoC的输出不一致。出错SoC产生单个不匹配输出且健康SoC产生多个匹配输出的概率明显高于健康SoC产生单个不匹配输出且出错SoC产生多个匹配输出的概率。当SoC产生单个不匹配输出及多个匹配输出时,可假定所观测到的是大概率事件而不是小概率事件。因此,可推测多个健康SoC产生多个匹配输出,且单个出错SoC产生单个不匹配输出。基于此推测,即使SoC总体上产生不全部彼此一致的输出,仍可识别由两个或多于两个健康SoC产生的匹配输出中的任一者作为可靠命令以在车辆中执行,而无需执行存储器测试。通常,可使用投票机制来识别大概率情景,如下文进一步论述。

图9展示根据一个实施例的具有实施投票机制以评估冗余自主驾驶命令的可靠性的命令控制器的车辆。

可例如通过在图5的车辆(101)中添加另一SoC(106)来实施图9的车辆(101),所述另一SoC(106)具有SoC(104及105)基于来自用于自主驾驶的传感器(103)的数据向命令控制器(107)产生冗余输出的冗余功能。

额外SoC(106)可在硬件、固件及所存储数据上与SoC(104)及/或SoC(105)相同。举例来说,固件(115)、任务关键数据(119)、其它数据(117)可以相同方式存储在SoC(104、105及106)中的每一者的存储器(113)中。

另一选择为,额外SoC(106)在硬件、固件及/或存储数据上可不同于SoC(104)及/或SoC(105)。

举例来说,SoC(104、105及106)可存储不同的其它数据(117)。

举例来说,额外SoC(106)可具有与SoC(104)及/或SoC(105)不同的识别电路。

举例来说,SoC(106)可包含SoC(105)及/或SoC(104)中不存在的自诊断电路系统或固件模块。

举例来说,SoC(104、105及106)可具有不同硬件实施方案以平衡成本与性能(例如,在计算速度、耐久性、可靠性上的性能)。

举例来说,SoC(106)可不具有SoC(104)及/或SoC(105)中可存在的某些功能或固件模块。

然而,车辆(101)的SoC(104、105及106)经配置以至少提供使用从传感器(103)接收到的数据向命令控制器(107)产生输出的相同功能。

在产生时,在车辆(101)中配置三个或多于三个冗余SoC(例如,104、105、106)允许在命令控制器(107)中使用投票机制以选出由SoC(例如,104、105、106)产生的输出中的可靠输出。

当冗余SoC(例如,104、105及/或106)中的两者或多于两者向命令控制器(107)的输出彼此一致时,产生匹配输出的两个或多于两个冗余SoC(例如,104、105及/或106)被视为为表示匹配输出的输出候选投票。如果两个SoC(例如,104、105及/或106)的输出彼此不一致,那么具有不匹配输出的SoC(例如,104、105及/或106)不为表示不同输出的候选中的任一者投票。具有最多投票的候选表示来自配置在车辆(101)中的冗余SoC(104、105及106)的输出中如果不是全部也是最大子集的匹配输出。由于产生匹配输出的SoC(例如,104、105、106)的最大子集健康的概率明显高于与相同投票结果对应的其它情景的概率,因此可将表示匹配输出的获胜候选转发到控制元件(109)以用于车辆(101)的自主驾驶。

举例来说,当车辆(101)中配置有三个冗余SoC(104、105及106)时,由SoC(104、105及106)向命令控制器(107)提供的输出可全部彼此一致。在此情况中,SoC(104、105及106)全部为相同候选投票。SoC(104、105及106)全部出错但仍形成相同的匹配输出的概率是极低的,尤其是在SoC(104、105及106)以相同方式全部出错而产生匹配但错误的输出的时刻之前检测到SoC(104、105及106)中的任何出错SoC之前。SoC(104、105及106)全部健康而产生匹配输出的概率明显高于SoC(104、105及106)全部出错但仍产生匹配输出的概率。因此,候选错误的概率可忽略不计;且候选正确的概率明显高于候选错误的概率。因此,当所有的SoC(104、105及106)皆为表示SoC(104、105及106)的相同或匹配输出的同一候选投票时,可推测:SoC(104、105及106)全部健康而产生匹配输出;且冗余SoC(104、105及106)投出的候选足够可靠以在自主驾驶期间由控制元件(109)执行。

当不小于阈值数目个配置在车辆(101)中的SoC(104、105及106)(例如SoC(104及106))产生匹配输出且其余SoC(例如,SoC(105))产生不同输出时,与SoC(104、105、106)的健康状态相关的几种可能的情景。在SoC(104及106)产生匹配输出且SoC(105)产生不匹配输出的状况下,一种可能的情景是SoC(104及106)健康但SoC(105)出错。在另一可能的情景中,SoC(104及106)不健康,但SoC(105)健康。在另一可能的情景中,所有的SoC(104、105及106)皆不健康。然而,可确定SoC(104及106)健康且SoC(105)不健康的情景具有最高概率;且其它情景的组合概率可忽略不计及/或低于阈值概率。因此,当车辆(101)中的SoC(104、105及106)中有阈值数目个(例如,两个)SoC(例如,SoC(104及106))通过产生匹配输出投票给候选时,命令控制器(107)经配置以断定:产生匹配输出的SoC(104及106)是健康的;产生不匹配输出的SoC(105)是出错的;且可将由SoC(104及106)的匹配输出表示的候选提供给控制元件(109)以用于车辆(101)的自主驾驶。

在对SoC(104、105及106)的输出进行彼此匹配期间,命令控制器(107)可在完成对SoC(104、105及106)的所有输出的比较之前发现阈值数目个(例如,两个)SoC(104、105及106)彼此一致。在此情况中,命令控制器(107)可在确定候选与其余输出(例如,由SoC(105)产生的输出)是否匹配及/或一致之前将表示匹配输出(例如,由SoC(104及106)产生)的候选转发到控制元件(109)。

在将获胜候选(例如,表示来自SoC(104及106)的输出)转发到控制元件(109)之前,命令控制器(107)可任选地跳过候选与其余输出(例如,由SoC(105)产生的输出)是否一致的确定,或任选地进一步确定候选与其余输出(例如,由SoC(105)产生的输出)是否一致,以确定其余SoC(例如,105)的健康状态。如果获胜候选与其余SoC的输出(例如由SoC(105)产生的输出)不匹配,那么命令控制器(107)根据产生不匹配输出来识别其余SoC(例如SoC(105))出错。

一旦根据产生与获胜候选不一致的输出推测SoC(105)是不健康的,那么命令控制器(107)可在依靠健康SoC(104及106)在车辆(101)的自主驾驶时继续操作的同时执行操作以复原不健康SoC(105)的功能。修复操作对车辆(101)的自主驾驶性能的影响很小或没有影响。

举例来说,命令控制器(107)可逐个扇区地测试不健康SoC(105)的存储器(113),以检测不健康SoC(105)的存储器(113)的出错扇区。可通过对从不健康SoC(105)检索的存储器内容与从健康SoC(104或106)检索的对应内容进行比较(例如,固件(115)及/或任务关键数据(119))来执行测试。如果在不健康SoC(105)中检测到出错存储器扇区或识别到已毁坏数据项,那么可将来自健康SoC(104或106)的内容复制到不健康SoC(105)的存储器(113)的健康扇区以实施修复。

另一选择为或组合地,命令控制器(107)可请求不健康SoC(105)以执行自诊断以识别SoC(105)中的差错。

另一选择为或组合地,命令控制器(107)可与不健康SoC(105)通信以对不健康SoC(105)的处理器(111)进行测试。

举例来说,命令控制器(107)可请求不健康SoC(105)运行测试例程并对其计算结果与处理器(111)的功能的测试的预定结果进行比较。

举例来说,命令控制器(107)可请求不健康SoC(105)及健康SoC中的一者(例如SoC(104))运行测试相同例程以对其结果进行比较。

当SoC(104、105及106)的输出不匹配及/或没有用于控制元件(109)的获胜候选时,可能的是在一种情景中SoC(104、105及106)全部皆不健康的,且在另一情景中SoC(104、105及106)中的一者是健康的但另外两个是不健康的。在此情况中,当基于对输出进行比较及/或经由投票机制无法选择可靠输出时,命令控制器(107)可执行测试以明确地识别SoC(104、105及106)中的出错SoC以识别可靠输出,这与当图5或6中的SoC(104及105)产生彼此並不匹配的结果时在图5或6中由命令控制器(107)为控制元件(109)选择输出类似。在此情况中,可推测SoC(104、105及106)中的至少两者不健康,这具有明显小于SoC(104、105及106)中不超过一者不健康之发生概率。因此,图9的车辆(101)需要执行存储器测试之可能性明显低于图5的车辆(101)。

任选地,当SoC(104、105及106)之输出不匹配指示阈值数目个SoC(104、105及106)出错的概率高时,命令控制器(107)产生紧急响应,例如和与车辆(101)分离的远程服务器进行通信以寻求计算驾驶命令的辅助,请求车辆(101)的人类操作者控制车辆(101),开始经预编程的紧急响应例程以将车辆(101)至于安全状况中,及/或减小车辆(101)的速度以停车。

图10图解说明根据一个实施例的组合冗余命令以输出用于车辆自主驾驶的可靠命令的命令控制器。举例来说,可在图9中所图解说明的车辆(101)中或实施在另一系统中实施图10的命令控制器的操作。

在图10中,命令控制器(107)接收至少三个冗余命令(222、123、…、122),所述至少三个冗余命令分别由冗余SoC(106、105、…、104)使用相同输入数据(121)(例如,来自传感器(103)及/或来自车辆(101)的其它计算装置)产生。

基于输入命令(222、123、…、122),命令控制器(107)产生输出命令(224)以由控制命令(109)执行。

命令控制器(107)根据输入命令(222、123、…、122)合计投票。输入命令(222、123、…、122)中的每一者可被视为输出命令(224)的候选。当输入命令(222、123、…、或122)与候选匹配(例如,与候选相同或具有在预定范围内的差异)时,则输入命令(222、123、…、或122)被视为为所述候选投票。对匹配的候选加以整理;且提供获胜候选作为输出命令(224)。可响应于确定获胜候选具有比其它候选更多的投票,及/或获胜候选的得票计数高于阈值(例如,超过SoC(106、105、…、104)的数目的一半而选择所述获胜候选。

当配置在车辆(101)中的一组SoC(106、105、…、104)存在一或多个出错时,具有最高概率的情景是由SoC(106、105、…、104)的子集产生的命令(例如,222、123、…及/或122)彼此匹配而作为输出命令(224)的候选且其余的一或多个命令彼此不匹配且与所述候选不一致。在此情景中,命令控制器(107)经配置以断定:与匹配命令(例如,222、123、…及/或122)对应的候选因赢得大多数投票是可靠的;SoC子集中的SoC(例如,106、105、…及/或104)因产生与获胜候选一致的输出因而是健康的;且其余一或多个SoC因产生与获胜候选不一致的输出因而出错。命令控制器(107)提供获胜候选作为输出命令(224)。

当命令控制器(107)确定大多数SoC(106、105、…、104)投票给命令(224)的候选时,命令控制器(107)可提供获胜候选作为输出命令(224),而不再进一步确定由其余一或多个SoC产生的命令与所述大多数是否匹配。

任选地,在提供获胜候选作为输出命令(224)之后,命令控制器(107)进一步对其余一或多个命令与获胜候选进行比较以确定SoC中的任一者是否出错,其中依据产生与输出命令(224)不一致的命令来识别出错SoC。

在其中SoC(106、105、…、104)的两个子集分别使两个不同候选具有相同的最高投票的在罕见情况中,所述子集中的至少一者出错y。在此情景中,命令控制器(107)可测试SoC以明确地识别出错子集。举例来说,可执行与图6的测试(124及125)类似的存储器测试;且未通过测试的子集出错。

可并行地对子集执行存储器测试以缩短达到测试结果的时间周期。此外,对投票为相同候选的相同子集中的SoC的存储器测试可经配置以具有不同测试范围以缩短测试时间及/或增大在测试中找出错误的可能性。

在SoC(106、105、…、104)中的任一者与SoC(106、105、…、104)中的任何其它SoC皆不一致的罕见情况中,控制器(107)可测试SoC以明确地识别出错SoC(106、105、…及/或104)以将其清除。当仅一个SoC通过其测试时,可提供其命令作为输出命令(224)。

另一选择为,当投票机制未能识别获胜者时,命令控制器(107)产生安全模式命令或紧急响应命令,这与命令控制器(107)对未通过图2中的存储器测试(125)作出的响应类似。

图11展示根据一个实施例的使用投票机制为车辆处理冗余命令的方法。举例来说,可在图9的车辆(101)中实施图11的方法以执行图10中所图解说明的操作。

图11的方法包含:分别从多个冗余计算装置(106、105、…、104)接收(241)多个命令(222、123、…、122);及确定(243)阈值数目个命令(222、123、…、122)彼此是否一致。

阈值数目是至少两个。在一些例子中,阈值数目超过命令控制器(107)中接收到的命令(222、123、…、122)的总数目的一半,使得当阈值数目个命令(222、123、…123)彼此一致时,无论其余命令的投票状态如何,表示匹配输出的候选皆将会获胜。在其它例子中,阈值数目小于命令控制器(107)中接收到的命令(222、123、…、122)的总数目的一半;然而,阈值数目足够高使得,在计数命令的所有得票之后,匹配命令的候选未获胜的概率低于阈值。

如果确定(243)阈值数目个命令(222、123、…、122)彼此一致,那么图11的方法进一步包含:转发(245)匹配命令(例如,222、123、…或122)以在车辆(101)中执行;否则,图11的方法进一步包含确定(247)接收命令(222、123、…、122)内是否存在匹配命令。

如果确定(247)接收命令(222、123、…、122)内不存在匹配命令,那么图11的方法进一步包含测试(255)计算装置(106、105、…、104)以清除计算装置(106、105、…、104)中出错的计算装置且识别计算装置(106、105、…、104)中通过测试的单个计算装置。提供由通过其测试的单个计算装置(例如,106、105、…、104)产生的命令(例如,222、123、…或122)作为输出命令(224)。另一选择为或与测试(225)组合,图11的方法包含产生(151或195)安全模式命令,如在图3或图7中一样。

如果确定(247)在所接收命令(222、123、…、122)的集合中存在至少一个匹配命令,那么图11的方法进一步包含:确定(249)是否存在多个不同匹配命令(例如,命令(222、123、…、122)的多个子集,其中每一子集内的命令彼此匹配但不同子集之间不匹配);且如果不是,那么转发(245)匹配命令(例如,222、123、…或122)以在车辆(101)中执行。

如果确定(249)在所接收命令(222、123、…、122)的集合中存在多个不同匹配命令(例如,命令(222、123、…、122)的多个子集,其中每一子集内的命令彼此匹配但不同子集之间不匹配),那么图11的方法进一步包含:对匹配命令的得票进行计数(251);确定(253)匹配命令是否具有比其它命令多的得票;及如果是,那么转发(245)赢得最多得票的匹配命令(例如,222、123、…或122)以在车辆(101)中执行。否则,图11的方法进一步包含测试(255)对计算装置(106、105、…、104)进行测试及/或产生(151或195)安全模式命令,如在图3或图7中一样。

图12展示根据一个实施例的在自主驾驶中可靠地操作车辆的详细方法。举例来说,可在图9的车辆(101)中实施图12的方法以执行图10中所图解说明的操作。

图12的方法包含:从车辆(101)的一或多个传感器(103)接收(261)车辆(101)的自主驾驶的输入数据(121);由冗余SoC(106、105、…、104)使用固件(115)的至少一个模块在所述SoC(106、105、…、104)中单独地处理输入数据(121)来并行地产生(263)多个驾驶命令(222、123、…、122);对所述驾驶命令(例如,222,123)中的两者进行比较(265);确定(267)驾驶命令中正在被比较的两者是否匹配;及如果是,那么从正在被比较的两个命令识别(269)候选,递增(271)候选的得票计数,及确定(273)得票计数是否高于阈值。所述阈值可以是两个或多于两个,及/或少于或多于多个驾驶命令(222、123、…、122)的总数目的一半。

如果确定(273)候选的得票计数高于阈值,那么图12的方法进一步包含:选择(277)候选以供输出;及提供(279)选定命令以由控制元件(109)执行。

如果确定(267)驾驶命令中正在被比较的两者不匹配,或确定(273)候选的得票计数低于阈值,那么图12的方法进一步包含:确定(275)是否要准备下一对命令(222、123、…、122);且如果是,那么针对所述下一对命令重复比较(265)。否则,图11的方法进一步包含比较(281)候选的得票,如果有的话。

如果由于对成对的驾驶命令(222、123、…、122)进行比较(265)而确定(283)存在具有最多得票的获胜者,那么选择并提供(279)获胜候选以由控制元件(109)执行。否则,图12的方法包含执行(285)进一步处理,例如如在图3或图7一样产生(151或195)安全模式命令及/或如在图4或图8中一样起始(175或219)紧急响应。

任选地,当因未赢得投票及/或未通过存储器测试而识别出SoC(例如,106、105、…、或104)出错时,上文所论述的方法中的任一者可进一步包含通过从健康冗余SoC(例如,106、105、…或104)或从远程服务器复制对应数据来修复SoC(例如106、105、…或104)。

本发明包含方法及执行这些方法的设备(包含执行这些方法的数据处理系统)以及含有指令的计算机可读媒体,所述指令在数据处理系统上执行时致使系统执行这些方法。

用于车辆(101)自主驾驶的SoC(105)、命令控制器(107)及/或计算机系统可以一或多个数据处理系统的形式实施。

典型数据处理系统可包含互连微处理器与存储器的互连件(例如,总线及系统核心逻辑)。微处理器通常耦合到高速缓冲存储器。

互连件将微处理器与存储器互连在一起且也经由I/O控制器将微处理器及存储器互连至输入/输出(I/O)装置。I/O装置可包含显示装置及/或外围装置,例如鼠标、键盘、调制解调器、网络接口、打印机、扫描仪、摄像机及此项技术中已知的其它装置。在一个实施例中,当数据处理系统是服务器系统时,I/O装置中的一些I/O装置(例如打印机、扫描仪、鼠标及/或键盘)是任选的。

互连件可包含通过各种桥接器、控制器及/或适配器连接至彼此的一或多个总线。在一个实施例中,I/O控制器可包含用于控制USB(通用串行总线)外围装置的USB适配器及/或用于控制IEEE-1394外围装置的IEEE-1394总线适配器。

存储器可包含以下各项中的一或多者:ROM(唯读存储器)、易失性RAM(随机存取存储器)及非易失性存储器,例如硬盘驱动器、快闪存储器等。

易失性RAM通常被实施为动态RAM(DRAM),其连续地需要电力以刷新或维持存储器中的数据。非易失性存储器通常是磁性硬盘驱动器、磁性光驱、光驱(例如,DVD RAM)或即使在从系统移除电力之后仍能维持数据的其它类型的存储器系统。非易失性存储器也可以是随机存取存储器。

非易失性存储器可以是直接耦合至数据处理系统中的组件的其余部分的本机装置。也可使用远离系统的非易失性存储器(例如,通过例如调制解调器或以太网接口等网络接口耦合到数据处理系统的网络存储装置)。

在本发明中,将一些功能及操作描述为由软件代码执行或达成以简化说明。然而,此类表达也用于规定功能由例如微处理器等处理器执行代码/指令而达成。

另一选择为或组合地,可在有或没有软件指令的情况下使用专用电路系统(例如,使用特殊应用集成电路(ASIC)或现场可编程门阵列(FPGA)实施本文所描述功能及操作。可在没有软件指令的情况下或与软件指令组合地使用硬连线电路系统实施实施例。因此,技术既不限于硬件电路系统与软件的任何具体组合,也不限于由数据处理系统执行的指令的任何特殊源。

虽然一个实施例可在全功能计算机及计算机系统中实现,但各种实施例能够作为各种形式的计算产品分布,且能够被应用,而无论用于实际上实现分布的机器或计算机可读媒体的特定类型如何。

可至少部分地以软件体现所揭示的至少一些方面。也就是说,可在计算机系统或其它数据处理系统中响应于其处理器(例如微处理器)执行存储器(例如ROM、易失性RAM、非易失性存储器、高速缓冲存储器或远程存储装置)中所存储的指令序列来实施所述技术。

经执行以实施实施例的例程可被实现为操作系统或被称为“计算机程序”的特定应用、组件、程序、对象、模块或指令序列的一部分。计算机程序通常包含在不同时间设置在计算机中的各种存储器和存储装置中的一或多个指令,且所述一或多个指令在由计算机中的一或多个处理器读取及执行时致使计算机执行执行涉及各个方面的元素所必需的操作。

机器可读媒体可用于存储软件及数据,所述软件及数据在由数据处理系统执行时致使系统执行各种方法。可执行的软件及数据可存储在各种地方中,包含例如ROM、易失性RAM、非易失性存储器及/或高速缓冲存储器。此软件及/或数据的一些部分可存储在这些存储装置中的任一者中。此外,可从中央服务器或对等网络获得数据及指令。可在不同时间且在不同通信会话中或在相同通信会话中从不同中央服务器及/或对等网络获得数据及指令的不同部分。可在执行应用程序之前获得全部的数据及指令。或者,可在需要执行时动态地(例如,实时地)获得数据及指令的部分。因此,不要求在特定时刻数据及指令全部在机器可读媒体上。

计算机可读媒体的实例包含但不限于非暂时性的可记录及不可记录类型媒体,例如易失性存储器装置及非易失性存储器装置、唯读存储器(ROM)、随机存取存储器(RAM)、快闪存储器装置、软盘及其它可移除磁盘、磁盘存储媒体、光学存储媒体(例如,高密度盘只读存储器(CD ROM)、数字多功能盘(DVD)等)等等。计算机可读媒体可存储指令。

指令也可在数字通信链路及模拟通信链路中体现为电传播信号、光传播信号、声音传播信号或其它形式的传播信号,例如载波、红外线信号、数字信号等。然而,例如载波、红外线信号、数字信号等传播信号不是有形的机器可读媒体且不能经配置以存储指令。

通常,机器可读存储媒体包含以可由机器(例如,计算机、网络装置、个人数字助理、制造工具、具有一组一或多个处理器的任何装置等)存取的形式提供(即,存储及/或传输)信息的任何机制。

在各种实施例中,硬连线电路系统可与软件指令组合使用以实施诸多技术。因此,技术既不限于硬件电路系统与软件的任何具体组合也不限于任何由数据处理系统执行的指令的特殊源。

以上说明及图式是说明性的并不应被解释为具限制性。描述很多具体细节以提供透彻理解。然而,在某些例子中,未描述众所周知或常规的细节以免使说明模糊。在本发明中提及一个实施例或实施例未必指代同一实施例;且此提及意指至少一个。

在前述说明书中,已参考本发明的具体实施例描述本发明。显然,可在不背离随附权利要求书中所陈述的较宽广精神及范畴的情况下对本发明做出各种修改。因此,应将本说明书及图式视为具有说明性意义而非限制性意义。

31页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:云设备协同实时用户体验和性能异常检测的系统和方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!