CN108700633A - 针对安全并且有保障的汽车应用的超快自主时钟监测电路 - Google Patents
针对安全并且有保障的汽车应用的超快自主时钟监测电路 Download PDFInfo
- Publication number
- CN108700633A CN108700633A CN201780013804.7A CN201780013804A CN108700633A CN 108700633 A CN108700633 A CN 108700633A CN 201780013804 A CN201780013804 A CN 201780013804A CN 108700633 A CN108700633 A CN 108700633A
- Authority
- CN
- China
- Prior art keywords
- clock
- value
- trigger
- encoded
- monitored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31727—Clock circuits aspects, e.g. test clock circuit details, timing aspects for signal generation, circuits for testing clocks
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/319—Tester hardware, i.e. output processing circuits
- G01R31/31917—Stimuli generation or application of test patterns to the device under test [DUT]
- G01R31/31922—Timing generation or clock distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/02—Generators characterised by the type of circuit or by the means used for producing pulses
- H03K3/027—Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
- H03K3/037—Bistable circuits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K5/13—Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
- H03K5/14—Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals by the use of delay lines
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K2005/00013—Delay, i.e. output pulse is delayed after input pulse and pulse length of output pulse is dependent on pulse length of input pulse
- H03K2005/00019—Variable delay
- H03K2005/00058—Variable delay controlled by a digital setting
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Nonlinear Science (AREA)
- Debugging And Monitoring (AREA)
Abstract
各个方面包括时钟监测单元/组件,其被配置为在不使用参考时钟的情况下,利用要求的用于支持汽车自动化系统的速度来重复/持续地监测时钟。时钟监测单元/组件可以被配置为对被监测的时钟的变化或异常进行识别、报告和/或响应,并且发起动作以防止变化造成或导致故障或针对攻击的弱点。各个方面中的时钟监测单元/组件可以被配置、被组织或者被安排为进行操作,使得电路不受操控、修改、篡改、黑客攻击和其它攻击的影响或者对以上各项有抵抗力。
Description
背景技术
在过去的几年中,现代汽车已经从自推进的机动车辆转变成强大且复杂的机电系统,所述机电系统包括对车辆的功能、特征和操作中的许多项进行控制的大量的处理器、传感器和片上系统(SOC)。最近,制造商已经开始将汽车配备有高级驾驶员辅助系统(ADAS),所述ADAS使车辆的操作自动化、适应性地调整或增强车辆的操作。例如,ADAS可以被配置为使用从汽车的传感器(例如,加速计、雷达、激光雷达、地理空间定位等)收集的信息来自动地检测潜在道路危险,并且接管对车辆的操作(例如,制动、转向(steering)等)中的全部或部分操作的控制,以避免检测到的危险。通常与ADAS相关联的特征和功能包括:自适应巡航控制、自动车道检测、车道偏离警告、自动转向、自动制动和自动事故避免。
由于汽车行驶的速度以及汽车对乘客和行人生命造成的重大风险,当今的汽车越来越依赖嵌入的电子组件的速度、准确性、安全性(safety)和保障性(security)。在用于汽车应用的SOC(例如,包括或控制车辆的ADAS的SOC)中,速度、准确性、安全性和保障性是尤其重要的。因此,更好地满足现代和将来汽车(包括自驾汽车和自主汽车)的这些和其它需求的较新的以及改进的电路、组件、系统和解决方案将有益于汽车制造商、汽车工程师、消费者和行人。
发明内容
各个方面包括时钟监测电路,其可以包括多个级联触发器,其中,每个触发器的时钟输入与要监测的时钟是相同的,以及每个触发器的数据输入是由被监测的时钟的分频版本来驱动的,使得多个级联触发器中的每个触发器的数据输入是经由一个或多个可编程延迟元件相对于其它级联触发器来延迟的。方面时钟监测电路还可以包括:编码器,其耦合到级联触发器的输出并且被配置为生成表示级联触发器的输出的经编码的输出值;比较器,其被配置为:当经编码的输出值与经编程的值不匹配时,生成并且存储中断;以及纠错码生成器,其被配置为:生成并且存储针对每个存储的中断的纠错码。
在一个方面中,多个级联触发器和可编程延迟元件可以是包括在时钟监测组件中的,并且被配置使得在每个容错时间间隔(FTTI)中至少评估要监测的时钟一次。在另外的方面中,要监测的时钟可以是被配置为包括在机动车辆(例如,自主车辆等)的控制系统中的时钟。在另外的方面中,要监测的时钟可以是被配置为包括在片上系统(SOC)中的时钟,所述SOC被配置为对针对机动车辆的ADAS的操作进行控制。
在另外的方面中,时钟监测电路可以包括耦合到系统时钟和要监测的时钟的内置自检选择器组件。在另外的方面中,纠错码生成器可以被配置为:响应于确定中断已经被存储在状态寄存器中来生成纠错码。在另外的方面中,纠错码生成器可以被配置为:响应于确定信息已经被写入配置寄存器来生成第二纠错码。在另外的方面中,时钟监测电路可以包括管理器组件,其被配置为基于中断和纠错码来生成错误信号。在另外的方面中,时钟监测电路可以包括管理器组件,其被配置为:在不使用参考时钟的情况下,确定要监测的时钟(或监测时钟)是否正确地或按预期地进行操作。
另外的方面可以包括利用电路监测组件来监测时钟的方法,包括:配置要监测的时钟;配置电路监测组件中的多个延迟元件;清除电路监测组件中的多个触发器;将来自时钟的时钟脉冲传递通过多个延迟元件和多个触发器,并且进行等待,直到电路监测组件中的多个触发器被加载为止;对加载的触发器值进行编码,以生成经编码的值;确定经编码的值是否与经编程的值相匹配;以及响应于确定经编码的值与经编程的值不匹配来生成中断。
一些方面方法可以包括重复以下操作:清除多个触发器;将时钟脉冲传递通过多个延迟元件和多个触发器;对加载的触发器值进行编码;以及响应于确定经编码的值与经编程的值不匹配,来确定经编码的值是否与经编程的值相匹配。一些方面方法可以包括:确定是否启用加电自检;以及响应于确定启用加电自检来执行自检。在一些方面中,执行自检可以包括:配置期望计数;清除电路监测组件中的多个触发器;生成时钟脉冲电路监测组件并且进行等待,直到多个触发器被加载为止;对加载的触发器值进行编码,以生成经编码的值;确定经编码的值是否与期望计数相匹配以及是否已经断言中断;响应于确定经编码的值与期望计数相匹配并且已经断言中断,来确定自检完成并且失败;以及响应于确定经编码的值与期望计数不匹配或者尚未断言中断,来确定自检完成并且通过。一些方面方法可以包括:在不使用参考时钟的情况下,确定要监测的时钟是否正确地进行操作。一些方面方法可以包括:响应于确定中断已经被存储在状态寄存器中,来生成纠错码。
另外的方面可以包括时钟监测电路,其包括:多个触发器;多个延迟元件,其中的每个延迟元件耦合到多个触发器中的一个触发器;用于配置要监测的时钟的单元;用于配置多个延迟元件的单元;用于清除多个触发器的单元;用于将来自时钟的时钟脉冲传递通过多个延迟元件和多个触发器,并且进行等待,直到多个触发器被加载为止的单元;用于对加载的触发器值进行编码,以生成经编码的值的单元;用于确定经编码的值是否与经编程的值相匹配的单元;以及用于响应于确定经编码的值与经编程的值不匹配来生成中断的单元。
在一些方面中,时钟监测电路还可以包括用于重复以下操作的单元:清除多个触发器;将时钟脉冲传递通过多个延迟元件和多个触发器;对加载的触发器值进行编码;以及响应于确定经编码的值与经编程的值不匹配,来确定经编码的值是否与经编程的值相匹配。在一些方面中,时钟监测电路可以包括:用于确定是否启用加电自检的单元;以及用于响应于确定启用加电自检来执行自检的单元。
在一些方面中,用于执行自检的单元包括:用于配置期望计数的单元;用于清除多个触发器的单元;用于生成时钟脉冲电路监测组件并且进行等待,直到多个触发器被加载为止的单元;用于对加载的触发器值进行编码,以生成经编码的值的单元;用于确定经编码的值是否与期望计数相匹配以及是否已经断言中断的单元;用于响应于确定经编码的值与期望计数相匹配并且已经断言中断,来确定自检完成并且失败的单元;以及用于响应于确定经编码的值与期望计数不匹配或者尚未断言中断,来确定自检完成并且通过的单元。在一些方面中,时钟监测电路可以包括:用于在不使用参考时钟的情况下,确定要监测的时钟是否正确地进行操作的单元。在一些方面中,时钟监测电路可以包括:用于响应于确定中断已经被存储在状态寄存器中,来生成纠错码的单元。
另外的方面可以包括片上系统,其包括:要监测的时钟;以及时钟监测电路,其耦合到要监测的时钟。时钟监测电路可以包括:多个级联触发器,其中,每个触发器的时钟输入与要监测的时钟是相同的,以及每个触发器的数据输入是由被监测的时钟的分频版本来驱动的,使得多个级联触发器中的每个触发器的数据输入是经由一个或多个可编程延迟元件相对于其它级联触发器来延迟的。在一些方面,时钟监测电路还可以包括:编码器,其耦合到级联触发器的输出并且被配置为生成表示级联触发器的输出的经编码的输出值;比较器,其被配置为:当经编码的输出值与经编程的值不匹配时,生成并且存储中断;以及纠错码生成器,其被配置为:生成并且存储针对每个存储的中断的纠错码。
在一些方面中,多个级联触发器和可编程延迟元件被配置使得在每个容错时间间隔(FTTI)中至少评估要监测的时钟一次。在一些方面中,片上系统可以被配置为包括在车辆的控制系统中。在一些方面中,片上系统可以被配置为用于高级驾驶员辅助系统(ADAS)的操作进行控制,所述ADAS被配置为包括在机动车辆中。在一些方面中,片上系统可以包括系统时钟,并且时钟监测电路还可以包括耦合到系统时钟和要监测的时钟的内置自检选择器组件。在一些方面中,纠错码生成器可以被配置为:响应于确定中断已经被存储在状态寄存器中来生成纠错码。在一些方面中,纠错码生成器还可以被配置为:响应于确定信息已经被写入配置寄存器来生成第二纠错码。在一些方面中,时钟监测电路还包括管理器组件,所述管理器组件被配置为:基于中断和纠错码来生成错误信号。在一些方面中,时钟监测电路还包括管理器组件,所述管理器组件被配置为:在不使用片上系统中的另一个时钟的情况下,确定要监测的时钟是否正确地进行操作。
附图说明
并入本文并且构成该说明书的部分的附图示出了权利要求的示例性方面,并且与以上给出的总体描述以及以下给出的详细描述一起用于解释权利要求的特征。
图1是示出了根据各个方面的示例片上系统的组件的框图,在一方面所述片上系统可以包括在计算设备中并且被配置为用于监测时钟。
图2和3示出了根据各个方面的适于在汽车应用中使用的示例时钟监测系统。
图4是根据一方面的可以在汽车应用中使用的时钟监测系统的时序图。
图5和6是示出了根据一方面的监测时钟的方法的处理器流程图。
图7是适于在一方面中使用的移动设备的组件框图。
具体实施方式
将参照附图来详细地描述各个方面。在任何可能的情况下,相同的附图标记将贯穿各个图来使用,以指代相同或类似的部分。对特定示例和实现方式的提及是出于说明性的目的,并且不旨在限制本权利要求的范围。
各个方面包括超快、安全且有保障的自主时钟监测单元、电路和/或组件,其适于在不使用参考时钟的情况下,在计算机化系统中准确、高效并且有保障地监测关键时钟。各个方面克服了传统解决方案的许多限制,并且作为结果,非常适于包括到当前和将来的汽车应用(例如,包括或实现车辆的高级驾驶员辅助系统(ADAS)的SOC,所述ADAS负责控制车辆的操作或者使车辆的操作自动化)中并且在其中使用。
时钟监测是对车辆的操作进行控制的计算机化系统(例如,包括或实现车辆的高级驾驶员辅助系统(ADAS)的SOC)的重要和关键方面。然而,传统的时钟监测解决方案不适于用在汽车应用中使用。这是因为传统的时钟监测解决方案不足够快以用在汽车系统中,并且不足够有保障以用在汽车系统中,并且不充分地遵循许多相关和重要的汽车安全标准和要求。
许多传统的时钟监测解决方案要求使用参考时钟。这种传统解决方案将监测的时钟的输出与参考时钟的输出进行比较,以识别不一致或异常。然而,参考时钟具有与被监测的时钟相同的限制。例如,参考时钟易受到与被监测的时钟相同类型的故障和攻击的影响,参考时钟必须一直保持运行状态,参考时钟必须一直是准确的,等等。此外,包括并且使用参考时钟可能是对系统的有限资源的低效利用,并且通常减慢或限制系统的性能和响应性。例如,使用参考时钟的解决方案可能要求使用两个计数器(例如,针对每个时钟使用一个计数器),要求用于以规律的间隔来对计数器进行轮询的软件,要求用于比较的30到40个之间的循环(取决于时钟频率),等等。出于这些和其它原因,传统解决方案不充分适于在汽车应用中使用。
对于汽车应用(例如,ADAS),存在车辆的计算机化组件必须满足的多个安全标准。例如,每个供应商或制造商可以定义容错时间间隔(FTTI),在所述FTTI期间,任何异常(例如,变化、故障等)都应当被检测到、被标记并且被报告。例如,在每个间隔(例如,200毫秒等的FTTI)中应当至少监测针对汽车应用的关键时钟一次,以确保时钟在正确地或者按预期进行操作。该安全性要求确保系统/车辆有足够的时间来在异常造成灾难性故障(例如,制动或转向系统等失灵)之前采取纠正动作。传统的时钟监测解决方案不足够快速或高效,以在监测操作不对系统的性能或响应性造成显著负面影响的情况下,每个容错时间间隔(FTTI)监测时钟一次。
通常,计算机化系统中的关键时钟的波形或频率的任何变化可能导致故障。由于现代汽车依靠这种计算机化系统来对其操作(例如,制动、转向等)中的许多操作进行控制,因此这种故障可能导致碰撞、财产损坏或丧失生命。因此,重复或持续地监测汽车系统中的关键时钟以确保时钟正确地或按预期(例如,没有变化或故障等)进行操作是重要的。此外,由于汽车可以行驶的速度和汽车对人类生命造成的重大风险,因此,快速并且高效地对这种变化或异常进行识别、报告和响应也是重要的。
除了造成故障之外,时钟频率或波形的任何变化(或其它不一致)可以用于攻击(例如,保障性黑客攻击)或者可以是攻击的结果。例如,未检测到的变化可能允许黑客或攻击方发动故障注入或“时钟故障”攻击。这样的攻击可以用于改变软件的执行流,并且潜在地允许攻击方在设备/系统中引入和/或执行恶意软件(或非计划中的/错误的代码路径)。在现代汽车中,这样的攻击可能导致车辆的处理器和/或SOC失灵,造成碰撞或事故。这样的攻击还会向攻击方提供对个人和/或机密信息(例如,驾驶员的当前位置、驾驶员当前是否离开家等)的访问。
因此,时钟监测对于防止故障以及维护系统的安全性和保障性而言是重要的。出于这些原因,应当配置时钟监测器使得其不易于受攻击的影响。例如,为了避免检测,攻击方可能尝试禁用或修改时钟监测器,以使得时钟监测器无法检测到由攻击造成/使用的变化或异常。
各个方面包括时钟监测单元/组件,其可以被配置为在不使用参考时钟的情况下,利用要求的用于支持汽车自动化系统(例如,ADAS组件)的速度来重复/持续地监测时钟。时钟监测单元/组件可以被配置为对被监测的时钟的变化或异常进行识别、报告、和/或响应。时钟监测单元/组件可以检测时钟的波形或频率的变化,并且发起动作(例如,通过发出处理器可以对其作出反应的中断)以防止变化造成或导致故障或对于攻击的弱点。此外,各个方面中的时钟监测单元/组件可以被配置、被组织或者被安排为进行操作,使得电路不受操控、修改、篡改、黑客攻击和其它攻击的影响或者对以上各项有抵抗力。
在各个方面中,时钟监测单元/组件可以被配置、被组织或者被安排为以足够的准确度、速度和效率进行操作,使得电路可以每个容错时间间隔(FTTI)监测时钟一次。作为结果,时钟监测单元/组件可以在操作不对系统的性能或响应性产生负面影响的情况下对异常进行检测和响应。
在一些方面中,时钟监测单元/组件可以包括自检(self test)能力,所述自检能力允许电路对自身进行评估并且确定电路是否在正确地或者按预期进行操作。时钟监测单元/组件可以被配置为按需和/或以用户可编程的或周期性的间隔来执行自检。另外,时钟监测单元/组件可以被配置,使得自检的性能和自检生成的结果不受操控、修改、篡改、黑客攻击和其它攻击的影响或者对以上各项有抵抗力。
在一些方面中,时钟监测单元/组件可以包括时钟监测电路,所述时钟监测电路包括多个级联触发器(flop),其中,每个触发器的时钟输入与要监测的时钟相同。每个触发器的数据输入可以由被监测的时钟的分频版本驱动,使得对多个级联触发器中的每个触发器的数据输入经由一个或多个可编程延迟元件,相对于其它级联触发器被延迟。时钟监测电路还可以包括耦合到级联触发器的输出的编码器组件。编码器组件可以配置为生成表示级联触发器的输出的经编码的输出值。时钟监测电路还可以包括耦合到编码器组件的比较器组件。比较器组件可以被配置为:响应于确定(来自编码器组件的)经编码的输出值与经编程的值不匹配,来生成并且存储中断值/信号。在一些方面中,时钟监测电路还可以包括耦合到比较器组件的纠错码生成器。纠错码生成器可以被配置为生成并且存储针对每个存储的中断的纠错码。
在一些方面中,多个级联触发器和可编程延迟元件可以包括在时钟监测组件中并且被安排或被配置,使得在每个容错时间间隔(FTTI)中至少监测、评估或测试“要监测的时钟”一次(例如,每200毫秒一次)。在一个方面中,要监测的时钟可以是包括在机动车辆的控制系统中或者被配置为在其中使用的时钟。在一个方面中,要监测的时钟可以是包括在片上系统(SOC)中的时钟,所述SOC被配置为:对包括在机动车辆(例如,自主车辆)中或者被配置为在其中使用的高级驾驶员辅助系统(ADAS)的操作进行控制。
在一些方面中,时钟监测电路可以包括耦合到系统时钟和要监测的时钟的内置自检选择器组件。在一个方面中,纠错码生成器可以被配置为:响应于确定中断已经被存储在状态寄存器中和/或响应于确定信息已经被写入到配置寄存器中,来生成纠错码。
在一些方面中,时钟监测电路可以包括管理器组件,所述管理器组件可以被配置为:在不使用参考时钟的情况下,确定要监测的时钟是否正确地进行操作,以及响应于基于中断和纠错码来确定被监测的时钟没有正确地或按预期进行操作,来生成错误或故障信号。
各个方面可以实现和/或被包括在多个单处理器和多处理器计算机系统(包括片上系统(SOC))中。图1示出了可以在实现各个方面的计算设备中使用的示例片上系统(SOC)100架构。SOC 100可以包括多个异构处理器,例如,数字信号处理器(DSP)103、调制解调器处理器104、图形处理器106、移动显示处理器(MDP)107、应用处理器108和资源与功率管理(PRM)处理器117。SOC 100还可以包括一个或多个协处理器110(例如,向量协处理器),所述协处理器连接到异构处理器103、104、106、107、108、117中的一个或多个处理器。处理器中的每个处理器可以包括一个或多个内核以及独立/内部时钟。每个处理器/内核可以独立于其它处理器/内核来执行操作。例如,SOC 100可以包括执行第一类型的操作系统(例如,FreeBSD、LINUX、OS X等)的处理器和执行第二类型的操作系统(例如,Microsoft Windows)的处理器。在一些方面中,应用处理器108可以是SOC 100的主处理器、中央处理单元(CPU)、微处理器单元(MPU)、算法逻辑单元(ALU)等。图形处理器106可以是图形处理单元(GPU)。
SOC 100可以包括模拟电路与定制电路114,用于管理传感器数据、模数转换、无线数据传输,并且用于执行其它专用操作,例如,处理经编码的音频和视频信号,以用于呈现在网页浏览器中。SOC 100还可以包括系统组件与资源116,例如,用于支持在计算设备上运行的处理器和软件客户端(例如,网页浏览器)的电压调节器、振荡器、锁相环、外围桥接器、数据控制器、存储器控制器、系统控制器、访问端口、定时器、以及其它类似组件。SOC 100还包括专用电路(CAM)105,所述CAM 105包括、提供、控制和/或管理一个或多个相机(例如,主相机、网络摄像头、3D相机等)的操作、来自相机固件的视频显示数据、图像处理、视频预处理、视频前端(VFE)、内嵌(in-line)JPEG、高清视频编解码器等。CAM 105可以是独立处理单元和/或包括独立或内部时钟。
系统组件与资源116、定制电路114和/或CAM 105可以包括用于与外围设备(例如,相机、电子显示器、无线通信设备、外部存储器芯片等)对接的电路。处理器103、104、106、107、108可以经由互连/总线模块124(其可以包括可配置逻辑门的阵列和/或实现总线架构(例如,CoreConnect、AMBA等))来与一个或多个存储器元件112、系统组件、与资源116、定制电路114、CAM 105和RPM 117互连。可以通过高级互连(例如,高性能片上网络(NoC))来提供通信。
SOC 100还可以包括用于与在SOC外部的资源(例如,时钟118和电压调节器120)进行通信的输入/输出模块(未示出)。在SOC外部的资源(例如,时钟118或电压调节器120)可以由内部SOC处理器/内核(例如,DSP 103、调制解调器处理器104、图形处理器106、应用处理器108等)中的两项或更多项共享。
在一个方面中,SOC 100可以包括在计算设备102中,所述计算设备102可以包括在汽车中。计算设备102可以包括用于与电话网络、互联网和/或网络服务器的通信的通信链路。在计算设备102和网络服务器之间的通信可以是通过电话网络、互联网、私有网络或其任何组合来实现的。
SOC 100还可以包括适于从传感器收集传感器数据的额外硬件和/或软件组件,所述传感器包括扬声器、用户接口元件(例如,输入按钮、触摸屏显示器等)、麦克风阵列、用于监测物理状况(例如,位置、方向、运动、朝向、振动、压力等)的传感器、相机、指南针、全球定位系统(GPS)接收机、通信电路(例如,WLAN、Wi-Fi等)以及现代电子设备的其它公知组件(例如,加速计等)。
除了上文论述的计算设备102和SOC 100之外,各个方面还可以实现在广泛的多种计算系统中,所述计算系统可以包括单个处理器、多个处理器、多核处理器或其任何组合。
图2示出了根据各个方面的适于在提供安全并且有保障的应用(例如,汽车和ADAS应用)中使用的示例时钟监测系统。在图2中示出的示例中,系统包括应用处理器(AP/CPU)108、图形处理器(GPU)106、MDP 107、CAM 105、RPM 117、时钟监测单元/组件202和错误信令组件204(以上各项中的任何项或所有项可以包括在上文论述的SOC 100中)。AP/CPU 108、GPU 106、MDP 107、CAM 105和RPM 117中的每一项可以包括要求监测的独立时钟。因此,这些组件中的每个组件的时钟输出可以耦合到时钟监测单元/组件202。
时钟监测单元/组件202可以被配置为接收各种时钟输入,例如,所示出的CPU时钟、GPU时钟、MDP时钟、CAM时钟和RPM时钟。时钟监测单元/组件202可以被配置为基于时钟输入(例如,CPU时钟、GPU时钟、MDP时钟、CAM时钟、RPM时钟)中的一个或多个时钟输入来生成中断输出(INTERRUPT),并且将中断输出发送给错误信令组件204。
错误信令组件204可以被配置为接收中断输出(INTERRUPT)和系统时钟输入(FUNC_CLK)。错误信令组件204可以生成错误输出(ERROR)和/或故障输出(FAULT)。错误信令组件204可以将所生成的输出(ERROR、FAULT等)发送给AP/CPU 108(或MPU、故障聚合器或任何其它板上处理单元),以发起纠正性动作/操作,例如,用于关闭SOC 100、重启设备等的操作。
图3示出了根据各个方面的适于在提供安全并且有保障的应用中使用的另一个示例时钟监测系统300。在图3中示出的示例中,时钟监测系统300包括时钟监测组件202、中断生成器组件302、被监测时钟(CLK_MON)304和时钟分频器组件(CLK分频器)306。时钟监测组件202可以包括可编程延迟元件314和D触发器316。中断生成器组件302可以包括编码器组件(N:M编码器)318、纠错码(ECC)生成器组件320、内置自检(BIST)配置组件322、配置寄存器324、BIST选择器组件(BIST_SEL)326、第二ECC生成器组件330和状态寄存器332。
在一些方面中,第二ECC生成器组件330可以包括在ECC生成器组件320中、实现成ECC生成器组件320的一部分、或者是与ECC生成器组件320相同的组件。在一些方面中,中断生成器组件302可以包括在时钟监测组件202中、实现成时钟监测组件202的一部分、或者是与时钟监测组件202相同的组件。在一些方面中,时钟监测系统300可以可选地包括(或者访问)系统时钟(FUNC_CLK)310、系统时钟计数器(FUNC_CLK计数器)312和第二BIST选择器组件(BIST_SEL)308。
时钟监测组件202中的D触发器316可以是级联的,并且每个触发器316的“D”或“数据”输入可以被设置,使得进入到每个后续触发器316的数据通过可编程延迟元件314来被递增地延迟。换句话说,可编程延迟元件314可以包括在D线中,使得每个可编程延迟元件在每个触发器316与下一个触发器316之间引入延迟。在任何时间处,可以基于D线上的值和中间的可编程延迟元件314的数量来设置或清除每个单独触发器316的Q输出Q(0)–Q(n)(一或零等)。每个触发器316的时钟输入可以耦合到被监测时钟(CLK_MON)304的输出。
被监测时钟(CLK_MON)304可以直接或间接地耦合到时钟分频器组件(CLK分频器)306和时钟监测组件202的第二输入线354。时钟分频器组件(CLK分频器)306可以将被监测时钟(CLK_MON)304的输出分成两半或者除以二,以生成脉冲350,所述脉冲350作为到时钟监测组件202的第一输入线352的输入来馈送。
中断生成器组件302中的编码器组件(N:M编码器)318可以被配置为接收触发器316的输出(即,Q(0)–Q(n)),并且使用该信息来生成经编码的值。比较器组件328可以被配置为接收经编码的值并且将所述经编码的值与(例如,存储器中存储的)经编程或预编程的值进行比较。如果经编码的值不是如预期的(即,经编码的值与经编程的值不匹配,等等),则这指示在将被监测时钟(CLK_MON)304中存在操控、变化或异常。
第二BIST选择器组件(BIST_SEL)308可以被配置为在每次加电时、周期性地或者按需地(例如,当用户想要时,等等)来执行内置的自检。另外,第二BIST选择器组件(BIST_SEL)308可以被配置为选择被监测时钟(CLK_MON)304或系统时钟(FUNC_CLK)310作为对时钟分频器组件(CLK分频器)306以及对脉冲350的生成的输入。由于系统时钟(FUNC_CLK)310是已知时钟/值,因此时钟/值可以用于生成脉冲350和对组件(例如,编码器318、比较器328等)的操作和/或经编程的值的有效性进行自检。可以周期性地对系统时钟计数器(FUNC_CLK计数器)312进行轮询,以确保系统时钟(FUNC_CLK)310按期望运行和操作。该操作向系统提供经由传统的时间监测解决方案是不可用的额外的安全特征/能力。
ECC生成器320、330可以被配置为:每次信息被写入到配置寄存器324(例如,经由高级高性能总线(AHB)从设备等)中或者中断被写入到状态寄存器332中时,在写入数据/线上生成ECC。ECC可以连同相同寄存器中的数据一起存储在存储器中,并且随后用于验证数据。例如,如果配置寄存器324被黑客攻击,则从配置寄存器324读取信息的任何应用可以确定:所读取的信息与其对应的ECC不一致,并且因此是无效或者被破坏的。该配置向系统提供在传统的时间监测解决方案上是不可用的额外的保障性特征和能力。
因此,系统300包括级联触发器,其中,每个触发器的“D”由被监测的时钟的分频版本来驱动,并且到每个触发器的数据“D”被延迟了可配置延迟。延迟缓冲器的数量可以可配置为允许监测宽范围的频率。取决于分频时钟输出(即,脉冲350)的脉冲宽度,将设置某个数量的触发器。编码器318可以提供针对其“设置”输出Q的一数量的触发器的经编码的值。可以经由比较器328将经编码的值与经编程的值进行比较,并且在失配的情况下,可以生成中断并且将所述中断提供给组件(例如,给故障聚合器等)。中断还可以存储在状态寄存器332中。这些操作可以允许系统比传统的时钟监测解决方案快得多地监测时钟。
在一些方面中,系统300还可以包括管理器组件351,其被配置为接收中断生成器组件302所生成的中断信号,并且使用所述中断信号来确定被监测时钟(CLK_MON)304是否正确地或者按预期进行操作。由于对时钟监测组件202和中断生成器组件302中的元件的配置,因此管理器组件351可以在不使用第二时钟或参考时钟的情况下完成该操作。换句话说,管理器组件351可以仅基于被监测时钟(CLK_MON)304的输出来确定被监测时钟(CLK_MON)304是否正确地或者按预期进行操作。
图4是示出了根据一个方面的适于在提供安全且有保障的应用中使用的示例时钟监测系统(例如,时钟监测系统300)的操作的时序图。在图4中示出的示例中,CLK_MON是被监测的时钟(例如,上文论述的被监测时钟304)的信号。CLK_MON/2是时钟(CLK)分频器组件(例如,CLK分频器306)的信号。D(0)至D(N)是来自触发器的Q个输出的信号。D(n:0)是由编码器(例如,编码器组件318)输出的值。ENC_OP是选择的由比较器(例如,比较器组件328)使用的经编程或经预编程的值。INTERRUPT是在经编码的值(例如,D(n:0))与经编程的值(例如,ENC_OP)不匹配时由中断生成器组件302生成的信号。
图4示出的是,当在时间402处填充触发器时,D(n:0)的值更新为*_7fff_ffff,以及经编程值的值更新为1f。系统检测到在这些值之间存在失配,并且在时间404处,生成中断(即,INTERRUPT被设置或者为高)。作为结果,触发器是D(0)至D(N)被清除的,并且过程在时间406处重新开始。
图5示出了根据各个方面的、用于由计算设备(例如,参照图1描述的计算设备102)使用电路监测单元/组件(例如,参照图2和3描述的电路监测单元/组件202)执行时钟监测的方法500。在框502中,计算设备中的电路监测单元/组件可以将设备加电或重置。
在确定框504中,电路监测单元/组件可以确定是否启用加电自检。在一些方面中,这可以通过测试加电自检比特或标记来完成。在一些方面中,加电自检比特可以是可编程和/或用户可控制比特。在一些方面中,可以基于用户输入/编程来将加电自检比特设置为“开启”或“启用”。
响应于确定没有启用加电自检(即,确定框504=“否”),在确定框506中,电路监测单元/组件可以确定是否启用监测。在一些方面中,这可以通过测试“启用监测”比特或标记来完成。在一些方面中,启用监测比特可以是可编程和/或用户可控制比特。在一些方面中,可以基于用户输入/编程来将启用监测比特设置为“开启”或“启用”。
响应于确定启用监测(即,确定框506=“是”),在框508中,电路监测单元/组件可以配置要监测的时钟。在一些方面中,作为框508中的操作的一部分,电路监测单元/组件可以执行时钟选择操作,以选择多个系统时钟中的一个系统时钟用于监测。电路监测单元/组件可以动态地、智能地和/或基于用户输入或配置,来选择用于监测的时钟。
在框510中,电路监测单元/组件可以配置延迟元件。作为这些操作的一部分,电路监测单元/组件可以选择用于加载的延迟元件。在一些方面中,配置延迟元件可以包括“延迟选择”、“负载选择”和/或用于在每个延迟元件的输出处进行加载的选择。该延迟选择可以影响缓冲器的延迟。该负载选择可以是可编程的。延迟元件可以被配置为已知加载值,使得对于给定的时钟频率,触发器产生期望或预测的计数值。
在框512中,电路监测单元/组件可以配置期望计数,所述期望计数可以是当在给定的延迟/负载条件之下被提供有已知频率的时钟时,触发器的输出的值。
在框514中,电路监测单元/组件可以将所有触发器清除。在框516中,电路监测单元/组件可以将时钟脉冲传递通过多个延迟元件和多个触发器,并且进行等待,直到触发器被加载为止。
在框518中,电路监测单元/组件可以对加载的触发器值进行编码,以生成经编码的值。经编码的值可以是二进制数,所述二进制数以紧凑格式来对触发器值进行编码或概括,如上文参照图4描述的。
在确定框520中,电路监测单元/组件可以确定经编码的值是否与经编程的值相匹配,例如,通过将经编码的值与经编程的值进行比较。期望值可以是根据已知时钟频率和特定延迟配置的值。在一些方面中,系统可以实时地操作,使得当时钟频率改变时,比较标记错误。
响应于确定经编码的值与经编程的值相匹配(即,确定框520=“是”),电路监测单元/组件可以重复框506-522中的操作。因此,当经编码的值与经编程的值相匹配时,被监测的时钟被确定为正在容限内执行。
响应于确定经编码的值与经编程的值不匹配(即,确定框520=“否”),在框522中,电路监测单元/组件可以生成中断。因此,当经编码的值与经编程的值不匹配时,可以指示监测的时钟中的错误。
返回到确定框506,响应于确定没有启用监测(即,确定框506=“否”),在框524中,电路监测单元/组件可以确定是否启用运行时自检。
响应于确定没有否启用运行时自检(即,确定框524=“否”),在确定框506中,电路监测单元/组件可以再次确定是否启用监测。
响应于确定启用加电自检(即,确定框504=“是”)或者启用运行时自检(即,确定框524=“是”),在框526中,电路监测单元/组件可以执行自检。在自检之后,电路监测单元/组件可以在确定框506中确定是否启用监测并且如上所述继续进行。
图6示出了根据一个方面的用于执行自检的方法600。可以将方法600的操作作为图5中示出的框526的操作的一部分来执行。方法600的操作中的一些操作可以由处理器(例如,参照图1描述的应用处理器108、协处理器110、数字信号处理器103、调制解调器处理器104或RPM处理器117中的任何处理器)来执行,而其它操作可以由专用硬件(例如,参照图2和3描述的时钟监测组件202)来执行。
在框602中,电路监测单元/组件可以配置已知时钟(例如,系统时钟、FUNC_CLK等)。
在框604中,电路监测单元/组件可以配置延迟元件。
在框606中,电路监测单元/组件可以配置期望计数。
在框608中,电路监测单元/组件可以将所有触发器清除。在框610中,电路监测单元/组件可以生成时钟脉冲(例如,FUNC_CLK)并且进行等待,直到触发器被加载为止。
在框612中,电路监测单元/组件可以对加载的触发器值进行编码,以生成经编码的值,所述经编码的值可以是对加载的触发器值进行编码或概括的二进制数。
在确定框614中,电路监测单元/组件可以确定经编码的值是否与期望计数相匹配以及是否已经断言中断。
响应于确定经编码的值与期望计数相匹配并且已经断言中断(即,确定框614=“是”),在框616中,电路监测单元/组件可以确定自检完成并且失败。
响应于确定经编码的值与期望计数不匹配,或者经编码的值与期望计数相匹配并且尚未断言中断(即,确定框614=“否”),在框618中,电路监测单元/组件可以确定自检完成并且通过。当自检完成时,电路监测单元/组件可以执行方法500的操作。
各个方面可以在多种计算设备上实现,在图7中以智能电话的形式示出了所述计算设备的示例。智能电话700可以包括处理器702,所述处理器702耦合到内部存储器704、显示器712和扬声器714。另外地,智能电话700可以包括用于发送和接收电磁辐射的天线,所述天线可以连接到无线数据链路和/或耦合到处理器702的蜂窝电话收发机708。智能电话700通常还包括用于接收用户输入的菜单选择按钮或摇臂开关720。
典型的智能电话700还包括声音编码/解码(CODEC)电路706,所述CODEC电路706将从麦克风接收的声音数字化成适于无线传输的数据分组,并且对接收到的声音数据分组进行解码,以生成被提供给扬声器用于生成声音的模拟信号。此外,处理器702、无线收发机708和CODEC 706中的一项或多项可以包括数字信号处理器(DSP)电路(未单独示出)。
处理器702可以是可以由软件指令(应用)配置为执行多种功能(包括下文描述的各个方面的功能)的任何可编程微处理器、微计算机或多处理器芯片。在一些移动设备中,可以提供多个处理器702,例如,专用于无线通信功能的一个处理器和专用于运行其它应用的一个处理器。通常,在访问软件应用并且将其加载在处理器702中之前,可以将软件应用存储在内部存储器704中。处理器702可以包括足以存储应用软件指令的内部存储器。
前述方法描述和过程流程图仅是作为说明性示例来提供的,而并非旨在要求或者暗示各个方面的步骤必须以所给出的次序来执行。如本领域技术人员将明白的,可以以任何次序来执行前述方面中的步骤的次序。诸如“之后”、“然后”、“接下来”等的词语不旨在限制步骤的次序;这些词语仅用于引导读者通读对方法的描述。此外,以单数对权利要求元素的任何提及(例如,使用冠词“一(a)”、“一个(an)”或者“所述(the)”)不被解释为将元素限制为单数。
如在本申请中使用的,术语“组件”、“比较器”、“编码器”、“元件”、“系统”等旨在包括被配置为执行特定操作或功能的计算机相关的实体,例如但不限于:硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,组件可以是,但不限于:在处理器上运行的进程、处理器、对象、可执行文件、执行的线程、程序和/或计算机。通过说明的方式,在计算设备运行上的应用和计算设备两者都可以被称为组件。一个或多个组件可以存在于进程和/或执行的线程中,并且组件可以位于一个处理器或内核上和/或分布在两个或更多个处理器或内核之间。另外,这些组件可以从具有存储在其上的各种指令和/或数据结构的各种非暂时性计算机可读介质中执行。组件可以通过以下方式来进行通信:本地和/或远程过程、功能或步骤流、电子信号、数据分组、存储器读取/写入、以及其它已知网络、计算机、处理器和/或与过程相关的通信方法。
结合本文公开的方面描述的各个说明性的逻辑框、模块、电路和算法步骤可以实现成电子硬件、计算机软件或这二者的组合。为了清楚地说明硬件和软件之间的这种可交换性,上文对各个说明性的组件、框、模块、电路和步骤均已经围绕其功能进行了总体描述。至于这种功能是实现为硬件还是实现为软件,取决于特定的应用和对整个系统所施加的设计约束。本领域技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是这种实现方式决策不应解释为造成脱离权利要求的范围。
利用被设计为执行本文所述功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件或者其任意组合,可以实现或执行用于实现结合本文公开的方面所描述的各个说明性的逻辑单元、逻辑框、模块和电路的硬件。通用处理器可以是多处理器,但是在替代方案中,处理器可以是任何常规的处理器、控制器、微控制器或状态机。处理器还可以实现为计算设备的组合,例如,DSP和多处理器的组合、多个多处理器、一个或多个多处理器结合DSP内核、或任何其它这种配置。替代地,一些步骤或方法可以由特定于给定功能的电路来执行。
在一个或多个示例性方面中,所描述的功能可以用硬件、软件、固件、或其任意组合来实现。如果用软件来实现,则功能可以作为一个或多个处理器可执行指令或代码存储在非暂时性计算机可读存储介质或者非暂时性处理器可读存储介质上。本文公开的方法或算法的步骤可以体现在处理器可执行软件模块中,其可以位于非暂时性计算机可读或处理器可读存储介质上。非暂时性计算机可读或者处理器可读存储介质可以是可以由计算机或处理器存取的任何存储介质。通过举例而非限制的方式,这种非暂时性计算机可读或处理器可读介质可以包括RAM、ROM、EEPROM、闪速存储器、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或者可以用于存储具有指令或数据结构形式的期望程序代码并且可以由计算机存取的任何其它介质。如本文中所使用的,磁盘(disk)和光盘(disc)包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。上文的组合也包括在非暂时性计算机可读和处理器可读介质的范围之内。另外,方法或算法的操作可以作为代码和/或指令中的一者或任意组合或集合位于非暂时性处理器可读介质和/或计算机可读介质上,其可以并入计算机程序产品中。
为了使本领域任何技术人员能够实现或使用权利要求,提供了对所公开的方面的先前描述。对于本领域技术人员而言,对这些方面的各种修改将是显而易见的,并且在不脱离权利要求的范围的情况下,本文中定义的通用原理可以应用于其它方面。因此,权利要求不旨在限于本文中所示的方面,而是被赋予与所附权利要求和本文公开的原理和新颖特征相一致的最广范围。
Claims (30)
1.一种时钟监测电路,包括:
多个级联触发器,其中,每个触发器的时钟输入与要监测的时钟是相同的,每个触发器的数据输入是由被监测的所述时钟的分频版本来驱动的,使得所述多个级联触发器中的每个触发器的所述数据输入是经由一个或多个可编程延迟元件相对于其它级联触发器来延迟的;
编码器,其耦合到所述级联触发器的输出并且被配置为生成表示所述级联触发器的所述输出的经编码的输出值;
比较器,其被配置为:当所述经编码的输出值与经编程的值不匹配时,生成并且存储中断;以及
纠错码生成器,其被配置为:生成并且存储针对每个存储的中断的纠错码。
2.根据权利要求1所述的时钟监测电路,其中,所述多个级联触发器和可编程延迟元件是包括在时钟监测组件中的,并且被配置使得在每个容错时间间隔(FTTI)中至少评估所述要监测的时钟一次。
3.根据权利要求1所述的时钟监测电路,其中,所述要监测的时钟是包括在车辆的控制系统中的时钟。
4.根据权利要求1所述的时钟监测电路,其中,所述要监测的时钟是包括在片上系统(SOC)中的时钟,所述SOC被配置为:在机动车辆中包括高级驾驶员辅助系统(ADAS)时,对所述ADAS的操作进行控制。
5.根据权利要求1所述的时钟监测电路,还包括耦合到系统时钟和所述要监测的时钟的内置自检选择器组件。
6.根据权利要求1所述的时钟监测电路,其中,所述纠错码生成器被配置为:响应于确定所述中断已经被存储在状态寄存器中来生成所述纠错码。
7.根据权利要求6所述的时钟监测电路,其中,所述纠错码生成器还被配置为:响应于确定信息已经被写入配置寄存器来生成第二纠错码。
8.根据权利要求1所述的时钟监测电路,还包括管理器组件,所述管理器组件被配置为:基于所述中断和所述纠错码来生成错误信号。
9.根据权利要求1所述的时钟监测电路,还包括管理器组件,所述管理器组件被配置为:在不使用参考时钟的情况下,确定所述要监测的时钟是否正确地进行操作。
10.一种利用电路监测组件来监测时钟的方法,包括:
配置所述要监测的时钟;
配置所述电路监测组件中的多个延迟元件;
清除所述电路监测组件中的多个触发器;
将来自所述时钟的时钟脉冲传递通过所述多个延迟元件和所述多个触发器,并且进行等待,直到所述电路监测组件中的所述多个触发器被加载为止;
对加载的触发器值进行编码,以生成经编码的值;
确定所述经编码的值是否与经编程的值相匹配;以及
响应于确定所述经编码的值与所述经编程的值不匹配来生成中断。
11.根据权利要求10所述的方法,还包括:
重复以下操作:清除所述多个触发器;将所述时钟脉冲传递通过所述多个延迟元件和所述多个触发器;对所述加载的触发器值进行编码;以及响应于确定所述经编码的值与所述经编程的值不匹配,来确定所述经编码的值是否与所述经编程的值相匹配。
12.根据权利要求10所述的方法,还包括:
确定是否启用加电自检;以及
响应于确定启用所述加电自检来执行自检。
13.根据权利要求12所述的方法,其中,执行自检包括:
配置期望计数;
清除所述电路监测组件中的所述多个触发器;
生成时钟脉冲电路监测组件并且进行等待,直到所述多个触发器被加载为止;
对加载的触发器值进行编码,以生成经编码的值;
确定所述经编码的值是否与所述期望计数相匹配以及是否已经断言中断;以及
响应于确定所述经编码的值与所述期望计数相匹配并且已经断言中断,来确定所述自检完成并且失败;以及
响应于确定所述经编码的值与所述期望计数不匹配或者尚未断言中断,来确定所述自检完成并且通过。
14.根据权利要求10所述的方法,还包括:
在不使用参考时钟的情况下,确定所述要监测的时钟是否正确地进行操作。
15.根据权利要求10所述的方法,还包括:
响应于确定所述中断已经被存储在状态寄存器中,来生成纠错码。
16.一种时钟监测电路,其包括:
多个触发器;
多个延迟元件,其中的每个延迟元件耦合到所述多个触发器中的一个触发器;
用于配置要监测的时钟的单元;
用于配置所述多个延迟元件的单元;
用于清除所述多个触发器的单元;
用于将来自所述时钟的时钟脉冲传递通过所述多个延迟元件和所述多个触发器,并且进行等待,直到所述多个触发器被加载为止的单元;
用于对加载的触发器值进行编码,以生成经编码的值的单元;
用于确定所述经编码的值是否与经编程的值相匹配的单元;以及
用于响应于确定所述经编码的值与所述经编程的值不匹配来生成中断的单元。
17.根据权利要求16所述的时钟监测电路,还包括:
用于重复以下操作的单元:清除所述多个触发器;将所述时钟脉冲传递通过所述多个延迟元件和所述多个触发器;对加载的触发器值进行编码;以及响应于确定所述经编码的值与所述经编程的值不匹配,来确定所述经编码的值是否与所述经编程的值相匹配。
18.根据权利要求16所述的时钟监测电路,还包括:
用于确定是否启用加电自检的单元;以及
用于响应于确定启用所述加电自检来执行自检的单元。
19.根据权利要求18所述的时钟监测电路,其中,用于执行自检的单元包括:
用于配置期望计数的单元;
用于清除所述多个触发器的单元;
用于生成时钟脉冲电路监测组件并且进行等待,直到所述多个触发器被加载为止的单元;
用于对加载的触发器值进行编码,以生成经编码的值的单元;
用于确定所述经编码的值是否与所述期望计数相匹配以及是否已经断言中断的单元;以及
用于响应于确定所述经编码的值与所述期望计数相匹配并且已经断言中断,来确定所述自检完成并且失败的单元;以及
用于响应于确定所述经编码的值与所述期望计数不匹配或者尚未断言中断,来确定所述自检完成并且通过的单元。
20.根据权利要求16所述的时钟监测电路,还包括:
用于在不使用参考时钟的情况下,确定所述要监测的时钟是否正确地进行操作的单元。
21.根据权利要求16所述的时钟监测电路,还包括:
用于响应于确定所述中断已经被存储在状态寄存器中,来生成纠错码的单元。
22.一种片上系统,包括:
要监测的时钟;以及
时钟监测电路,其耦合到所述要监测的时钟,其中,所述时钟监测电路包括:
多个级联触发器,其中,每个触发器的时钟输入与所述要监测的时钟是相同的,每个触发器的数据输入是由被监测的所述时钟的分频版本来驱动的,使得所述多个级联触发器中的每个触发器的数据输入是经由一个或多个可编程延迟元件相对于其它级联触发器来延迟的;
编码器,其耦合到所述级联触发器的输出并且被配置为生成表示所述级联触发器的所述输出的经编码的输出值;
比较器,其被配置为:当所述经编码的输出值与经编程的值不匹配时,生成并且存储中断;以及
纠错码生成器,其被配置为:生成并且存储针对每个存储的中断的纠错码。
23.根据权利要求22所述的片上系统,其中,所述多个级联触发器和可编程延迟元件被配置使得在每个容错时间间隔(FTTI)中至少评估所述要监测的时钟一次。
24.根据权利要求22所述的片上系统,其中,所述要监测的时钟是被配置为包括在车辆的控制系统中的时钟。
25.根据权利要求22所述的片上系统,其中,所述要监测的时钟是被配置为用于对机动车辆中包括的高级驾驶员辅助系统(ADAS)的操作进行控制的时钟。
26.根据权利要求22所述的片上系统,还包括系统时钟,其中,所述时钟监测电路还包括耦合到所述系统时钟和所述要监测的时钟的内置自检选择器组件。
27.根据权利要求22所述的片上系统,其中,所述纠错码生成器被配置为:响应于确定所述中断已经被存储在状态寄存器中来生成所述纠错码。
28.根据权利要求27所述的片上系统,其中,所述纠错码生成器还被配置为:响应于确定信息已经被写入配置寄存器来生成第二纠错码。
29.根据权利要求22所述的片上系统,其中,所述时钟监测电路还包括管理器组件,所述管理器组件被配置为:基于所述中断和所述纠错码来生成错误信号。
30.根据权利要求22所述的片上系统,其中,所述时钟监测电路还包括管理器组件,所述管理器组件被配置为:在不使用所述片上系统中的另一个时钟的情况下,确定所述要监测的时钟是否正确地进行操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/059,341 | 2016-03-03 | ||
US15/059,341 US9897651B2 (en) | 2016-03-03 | 2016-03-03 | Ultra-fast autonomous clock monitoring circuit for safe and secure automotive applications |
PCT/US2017/015992 WO2017151265A1 (en) | 2016-03-03 | 2017-02-01 | Ultra-fast autonomous clock monitoring circuit for safe and secure automotive applications |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108700633A true CN108700633A (zh) | 2018-10-23 |
CN108700633B CN108700633B (zh) | 2019-09-03 |
Family
ID=58163194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780013804.7A Active CN108700633B (zh) | 2016-03-03 | 2017-02-01 | 针对安全并且有保障的汽车应用的超快自主时钟监测电路 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9897651B2 (zh) |
EP (1) | EP3423849B1 (zh) |
CN (1) | CN108700633B (zh) |
WO (1) | WO2017151265A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112286083A (zh) * | 2019-07-23 | 2021-01-29 | 珠海零边界集成电路有限公司 | 一种控制电路 |
CN116724298A (zh) * | 2021-01-29 | 2023-09-08 | 高通股份有限公司 | 汽车系统的动态地可重新配置的现场自测试能力 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10649487B2 (en) * | 2018-07-05 | 2020-05-12 | Microchip Technology Incorporated | Fail-safe clock monitor with fault injection |
US10901020B2 (en) * | 2018-08-30 | 2021-01-26 | Qualcomm Incorporated | Digital duty-cycle monitoring of a periodic signal |
US11544160B2 (en) * | 2019-06-28 | 2023-01-03 | Intel Corporation | IPS SOC PLL monitoring and error reporting |
KR20210010761A (ko) | 2019-07-19 | 2021-01-28 | 삼성전자주식회사 | 시스템 온 칩 및 그 동작 방법 |
DE102019212813A1 (de) * | 2019-08-27 | 2021-03-04 | Robert Bosch Gmbh | Verfahren und Überprüfungseinheit zum Überprüfen von Daten in einer Speichereinheit eines System-on-a-Chip |
US20220407506A1 (en) * | 2021-06-10 | 2022-12-22 | Microsoft Technology Licensing, Llc | Clock monitor |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0854481A (ja) * | 1994-08-10 | 1996-02-27 | Advantest Corp | 時間間隔測定装置 |
US20090183046A1 (en) * | 2008-01-13 | 2009-07-16 | Cisco Technology, Inc., A Corporation Of California | Programmable Test Clock Generation Responsive to Clock Signal Characterization |
CN102073008A (zh) * | 2010-11-08 | 2011-05-25 | 北京龙芯中科技术服务中心有限公司 | 片上时钟不确定性的测量电路装置及系统 |
CN103119455A (zh) * | 2010-09-14 | 2013-05-22 | 菲尼克斯电气公司 | 用于集成电路运行参数监测的装置和具有运行参数监测装置的集成电路 |
US20140184243A1 (en) * | 2012-12-31 | 2014-07-03 | Advanced Micro Devices, Inc. | Adaptive digital delay line for characterization of clock uncertainties |
CN104931869A (zh) * | 2014-08-29 | 2015-09-23 | 杭州广立微电子有限公司 | 可寻址环形振荡器测试芯片 |
US20160033576A1 (en) * | 2014-08-01 | 2016-02-04 | Oracle International Corporation | High sensitivity digital voltage droop monitor for integrated circuits |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IN146507B (zh) * | 1975-09-29 | 1979-06-23 | Ericsson Telefon Ab L M | |
US6983394B1 (en) * | 2003-01-24 | 2006-01-03 | Xilinx, Inc. | Method and apparatus for clock signal performance measurement |
US7684533B2 (en) * | 2005-05-26 | 2010-03-23 | International Business Machines Corporation | Phase lock loop jitter measurement |
US20070210846A1 (en) * | 2006-03-10 | 2007-09-13 | Himax Technologies, Inc. | Inverter gate delay line with delay adjustment circuit |
US7423928B2 (en) | 2007-01-30 | 2008-09-09 | Atmel Corporation | Clock circuitry for DDR-SDRAM memory controller |
US8020026B1 (en) | 2008-02-29 | 2011-09-13 | Rf Micro Devices, Inc. | Phase-aligning corrected and uncorrected clocks |
US9404966B2 (en) * | 2012-07-13 | 2016-08-02 | Arm Limited | Performance characteristic monitoring circuit and method |
US8963587B2 (en) | 2013-05-14 | 2015-02-24 | Apple Inc. | Clock generation using fixed dividers and multiplex circuits |
US9135431B2 (en) * | 2013-07-26 | 2015-09-15 | Apple Inc. | Harmonic detector of critical path monitors |
US8937496B1 (en) | 2014-08-20 | 2015-01-20 | Xilinx, Inc. | Clock monitor |
US9735679B2 (en) * | 2015-12-03 | 2017-08-15 | Nuvoton Technology Corporation | Method and apparatus for a delay locked power supply regulator |
-
2016
- 2016-03-03 US US15/059,341 patent/US9897651B2/en active Active
-
2017
- 2017-02-01 EP EP17707436.6A patent/EP3423849B1/en active Active
- 2017-02-01 CN CN201780013804.7A patent/CN108700633B/zh active Active
- 2017-02-01 WO PCT/US2017/015992 patent/WO2017151265A1/en active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0854481A (ja) * | 1994-08-10 | 1996-02-27 | Advantest Corp | 時間間隔測定装置 |
US20090183046A1 (en) * | 2008-01-13 | 2009-07-16 | Cisco Technology, Inc., A Corporation Of California | Programmable Test Clock Generation Responsive to Clock Signal Characterization |
CN103119455A (zh) * | 2010-09-14 | 2013-05-22 | 菲尼克斯电气公司 | 用于集成电路运行参数监测的装置和具有运行参数监测装置的集成电路 |
CN102073008A (zh) * | 2010-11-08 | 2011-05-25 | 北京龙芯中科技术服务中心有限公司 | 片上时钟不确定性的测量电路装置及系统 |
US20140184243A1 (en) * | 2012-12-31 | 2014-07-03 | Advanced Micro Devices, Inc. | Adaptive digital delay line for characterization of clock uncertainties |
US20160033576A1 (en) * | 2014-08-01 | 2016-02-04 | Oracle International Corporation | High sensitivity digital voltage droop monitor for integrated circuits |
CN104931869A (zh) * | 2014-08-29 | 2015-09-23 | 杭州广立微电子有限公司 | 可寻址环形振荡器测试芯片 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112286083A (zh) * | 2019-07-23 | 2021-01-29 | 珠海零边界集成电路有限公司 | 一种控制电路 |
CN116724298A (zh) * | 2021-01-29 | 2023-09-08 | 高通股份有限公司 | 汽车系统的动态地可重新配置的现场自测试能力 |
Also Published As
Publication number | Publication date |
---|---|
US20170255223A1 (en) | 2017-09-07 |
EP3423849A1 (en) | 2019-01-09 |
EP3423849B1 (en) | 2021-04-21 |
WO2017151265A1 (en) | 2017-09-08 |
US9897651B2 (en) | 2018-02-20 |
CN108700633B (zh) | 2019-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108700633B (zh) | 针对安全并且有保障的汽车应用的超快自主时钟监测电路 | |
US9823983B2 (en) | Electronic fault detection unit | |
EP3757833A1 (en) | Implicit integrity for cryptographic computing | |
US20170213053A1 (en) | Firmware security interface for field programmable gate arrays | |
US7987385B2 (en) | Method for high integrity and high availability computer processing | |
CN109923494B (zh) | 可编程时钟监测器 | |
CN104866443B (zh) | 可中断存储独占 | |
EP3188065A1 (en) | Secure intelligent terminal device and information processing method | |
JP6054010B2 (ja) | データ判定装置、データ判定方法及びプログラム | |
US20180129970A1 (en) | Forward-looking machine learning for decision systems | |
US7581222B2 (en) | Software barrier synchronization | |
US10185633B2 (en) | Processor state integrity protection using hash verification | |
EP2531920A1 (en) | Apparatus and method for recording reboot reason of equipment | |
WO2021087417A1 (en) | Alert handling | |
CN105074656B (zh) | 管理并发谓词表达式的方法和装置 | |
US9785587B2 (en) | Method for executing, within a multitasking onboard system, an application timed according to a plurality of different time domains including interruption management | |
US11061840B2 (en) | Managing network interface controller-generated interrupts | |
JP5436422B2 (ja) | 高インテグリティと高可用性のコンピュータ処理モジュール | |
US20040250178A1 (en) | Secure watchdog timer | |
US20210006576A1 (en) | Speculative and Accelerated Classification based on Incomplete Feature Sets | |
CN102822805A (zh) | 监控路由单元的循环持续时间的方法和硬件数据处理单元 | |
US20200134235A1 (en) | Physical and logical attack resilient polymorphic hardware | |
US9898301B2 (en) | Framework to provide time bound execution of co-processor commands | |
US9563588B1 (en) | OS bypass inter-processor interrupt delivery mechanism | |
Price | Implementation of a Hierarchical, Embedded, Cyber Attack Detection System for SPI Devices on Unmanned Aerial Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |