CN115129511A - 处理***、相关集成电路、设备和方法 - Google Patents
处理***、相关集成电路、设备和方法 Download PDFInfo
- Publication number
- CN115129511A CN115129511A CN202210307487.2A CN202210307487A CN115129511A CN 115129511 A CN115129511 A CN 115129511A CN 202210307487 A CN202210307487 A CN 202210307487A CN 115129511 A CN115129511 A CN 115129511A
- Authority
- CN
- China
- Prior art keywords
- reset
- lifecycle
- circuit
- processing system
- phase
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Hardware Redundancy (AREA)
- Advance Control (AREA)
Abstract
本公开的各实施例涉及处理***、相关集成电路、设备和方法。一种硬件配置电路对经编码的生命周期数据进行读取和解码,并且将经解码的生命周期数据提供给硬件电路。复位电路监测经由复位端子接收的外部复位信号,并且响应于确定外部复位信号而具有第一逻辑电平,执行复位、配置和等待阶段。复位电路等待直至外部复位信号具有第二逻辑电平。通信接口在等待阶段期间被激活,并且被配置为接收请求。当请求包括给定参考密码并且复位电路处于等待阶段时,硬件验证电路生成生命周期提前请求信号。当生命周期提前请求信号被设置时,写入电路写入被存储在非易失性存储器中的经编码的生命周期数据的位,从而使生命周期提前到给定预定生命周期阶段。
Description
相关申请的交叉引用
本申请要求于2021年3月26日提交的意大利专利申请号102021000007475的优先权,该申请的全部内容通过引用并入本文。
技术领域
本公开总体涉及故障分析,并且在特定实施例中,涉及对微控制器的故障分析。
背景技术
图1示出了具有处理***10的典型电子***,诸如车辆的电子***。处理***10可以是嵌入式***或集成电路(例如,现场可编程门阵列(FPGA)、数字信号处理器(DSP))或微控制器(例如,专用于汽车市场)。
在图1中,三个处理***101、102和103被示为通过合适的通信***20连接。通信***可以包括车辆控制总线,诸如控制器局域网(CAN)总线,并且可能包括经由网关被连接到车辆控制总线的多媒体总线,诸如面向媒体的***传输(MOST)总线。
通常,处理***10位于车辆的不同位置,并且可以包括例如发动机控制单元、变速器控制单元(TCU)、防抱死制动***(ABS)、车身控制模块(BCM)、导航或多媒体音频***。因而,一个或多个处理***10还可以实现实时控制和调节功能。这些处理***通常被标识为电子控制单元。
图2示出了可以用作图1的处理***10中的任一处理***的诸如微控制器之类的数字处理***10的电路图。
在所考虑的示例中,处理***10包括微处理器102,通常是中央处理器(CPU),该微处理器经由软件指令进行编程。通常,由微处理器102执行的软件被存储在诸如闪存或EEPROM之类的非易失性程序存储器104中。因此,存储器104被配置为存储处理器102的固件。固件包括要由微处理器102执行的软件指令。通常,非易失性存储器104还可以用于存储其他数据,诸如配置数据(例如,校准数据)。
微处理器102通常还具有关联的易失性存储器104b,诸如随机存取存储器(RAM)。例如,存储器104b可以用于存储临时数据。
如图2所示,通常,与存储器104或存储器104b的通信经由一个或多个存储器控制器100执行。存储器控制器100可以被集成到微处理器102中或经由诸如处理***10的***总线之类的通信信道被连接到微处理器102。同样,存储器104或存储器104b可以与微处理器102被集成在单个集成电路中,或者存储器104或存储器104b可以采用单独的集成电路的形式,并且(例如,经由印刷电路板的迹线)被连接到微处理器102。
在所考虑的示例中,微处理器102可能已经关联了一个或多个(硬件)资源/***设备106,该一个或多个(硬件)资源/***设备106选自经由通信***20的一个或多个通信接口IF(例如,用于交换数据)的组,诸如通用异步接收器/发送器(UART)、串行***接口总线(SPI)、内部集成电路(I2C)、控制器局域网(CAN)总线、或以太网接口、或调试接口;一个或多个模数转换器AD或数模转换器DA;一个或多个专用数字部件DC,诸如硬件计时器或计数器,或暗码协处理器;一个或多个模拟部件AC,诸如比较器、传感器,诸如温度传感器等;或一个或多个混合信号部件MSC,诸如PWM(脉冲宽度调制)驱动器。
通常,专用数字部件DC也可以对应于被集成到处理***10中的FPGA。例如,在这种情况下,存储器104还可以包括用于这种FPGA的编程数据。
因而,数字处理***10可以支持不同的功能。例如,微处理器102的行为由被存储在存储器104中的固件(例如,要由微控制器10的微处理器102执行的软件指令)确定。因此,通过安装不同的固件,可以将相同的硬件(微控制器)用于不同的应用。
在这方面,这种处理***10(例如,适用于汽车应用的微控制器)的未来几代预计表现出复杂性的增加,这主要是由于所请求的功能(新协议、新功能等)的数目增加和执行条件的严格约束(例如,更低功耗、更高计算能力和速度等)。
例如,最近,已经提出了更为复杂的多核心处理***10。例如,这样的多核心处理***可以用于(并行)执行图1所示的处理***10中的若干处理***10,诸如车辆的若干处理***。
图3示出了多核心处理***10的示例。具体地,在所考虑的示例中,处理***10包括被连接到(片上)通信***114的多个(n个)处理核心1021…102n。
例如,如处理核心1021的示例所示,每个处理核心102可以包括微处理器1020和被配置为管理微处理器1020与通信***114之间的通信的通信接口1022。通常,接口1022是主接口,被配置为将给定(读取或写入)请求从微处理器1020转发到通信***114,并且将可选响应从通信***114转发到微处理器1020。然而,通信接口1022还可以包括从接口。例如,这样,第一微处理器1020可以(经由第一微处理器的通信接口1022、通信***114和第二微处理器的通信接口1022)向第二微处理器1020发送请求。
通常,每个处理核心1021…102n还可以包括其他本地资源,诸如一个或多个本地存储器1026,通常被标识为紧密耦合存储器(TCM)。
如之前所提及的,通常,处理核心1021…102n被布置为与非易失性存储器104或易失性存储器104b交换数据。在多核心处理***10中,这些存储器通常是***存储器(即,为处理核心1021…102n所共享)。然而,如之前所提及的,每个处理核心1021…102n可以包括一个或多个附加本地存储器1026。
例如,如图3所示,处理***10可以包括一个或多个存储器控制器100,该一个或多个存储器控制器100被配置为将至少一个非易失性存储器104和至少一个易失性存储器104b连接到通信***114。如之前所提及的,存储器104或存储器104b中的一个或多个存储器可以被集成到处理***10的集成电路中或外部被连接到集成电路。
例如,处理***10可以包括第一易失性存储器104b,该第一易失性存储器104b被集成到处理***10的集成电路中,并且经由第一存储器控制器100被连接到通信***114;以及第二易失性存储器104b,该第二易失性存储器104b关于处理***10的集成电路位于外部并且经由第二存储器控制器100被连接到通信***114。
如之前所提及的,处理***10可以包括一个或多个资源106,诸如一个或多个通信接口或协处理器(例如,暗码协处理器)。资源106通常经由相应通信接口1062被连接到通信***114。一般而言,通信接口1062包括至少一个从接口。
例如,这样,处理核心102可以向资源106发送请求,并且资源返回给定数据。通常,通信接口1062中的一个或多个通信接口1062还可以包括相应主接口。
例如,如果资源必须开始通信以经由(读取或写入)请求与被连接到通信***114的另一电路(诸如资源106或处理核心102)交换数据,则这种主接口1064可能有用。
例如,为此,通信***114可以包括高级微控制器总线架构(AMBA)高性能总线(AHB)和用于将资源/***设备106连接到AMBA AHB总线的高级***总线(APB)。
通常,这样的处理***10还包括一个或多个直接存储器访问(DMA)控制器110。例如,如图3所示,DMA控制器110可以用于基于从资源106接收的请求来直接与存储器(例如,存储器104b)交换数据。例如,这样,通信接口IF可以(经由DMA控制器110)直接从存储器104b读取数据并且发送这些数据,而无需与处理器102交换其他数据。通常,DMA控制器110可以经由通信***114或经由一个或多个专用通信信道与一个或多个存储器通信。
在这方面,不管处理***10的复杂性(例如,关于处理核心102的数目或资源106的数目和类型),典型的产品开发牵涉到若干实体,诸如包括处理***10的集成电路的生产者、实现更为复杂的电子电路的一个或多个硬件开发者、以及为处理***10写入固件的一个或多个软件开发者。
一方面,这暗示在相应开发阶段验证每个处理***10的各种硬件或软件功能可能牵涉到总开发成本的很大一部分:这适用于生产处理***10的公司和开发应用的客户端两者。
另一方面,处理***10内实现安全功能的硬件模块也变得越来越重要。
例如,这可以应用于调试接口或对非易失性存储器104或易失性存储器104b中的给定存储器位置的访问。
例如,各种处理***10提供了配置经由调试接口对处理***10的内部资源的访问是被循环还是被准许的(可能指定数据是只能被读取还是也可以被写入)的可能性。
例如,通常,在开发阶段期间,应当可以以给定自由度来控制处理***10的资源,同时当处理***10在“现场”(即,在最终应用中运行)时,处理***10应当被配置为激活某些安全功能(其可能不会被更改)。
例如,大多数现代微控制器使用的解决方案是通过对非易失性存储器中的开/关状态进行编程来实现安全特征的启用。然后,在复位阶段期间读取这些配置数据以启用或禁用相关保护(例如,禁用微控制器的调试接口)。因此,在相应配置信息已经被编程到非易失性存储器中之后,安全配置的相关部分不能够再更改(例如,因为一旦调试接口被停用,也就不可能重写配置数据)。因而,大多数安全配置一旦实施就不可更改,并且保护始终处于活动状态。遗憾的是,这样也难以分析处理***10仅在现场发生的可能故障。
因而,也如在全部内容通过引用并入本文的欧洲专利申请号EP 3 413 194 A1所描述的,各种现代处理***准许基于所谓的生命周期数据LCD来激活处理***10的安全功能。
例如,如EP 3 413 194 A1中所公开的,位序列LCD可以指示以下阶段中的一个阶段:“生产”(LC1),处理***10(例如,微控制器)处于芯片结构时;“客户交付”(LC2),处理***10已经被运送到第一层客户(例如,发动机控制单元的生产者)时;“OEM生产”(LC3),设备已经运送到下一级客户(例如,汽车制造者);以及“现场”(LC4),设备安装在最终产品中(例如,在市场上出售的汽车中)时。
通常,生命周期数据LCD被写入使得一旦达到某个阶段,就不可能将其恢复回到前一阶段,即,生命周期只能提前。因而,生命周期数据LCD是写入非易失性存储器的永久签名,该永久签名确定处理***10在其生命周期中的阶段。
例如,可以使用相应位序列对每个生命周期进行编码。
例如,如图3所示,该位序列LCD可以被存储到一次性可编程存储器126。
例如,这可以使用独热编码来实现,其中每次已经达到给定阶段时熔断器就被烧毁。一般而言,生命周期数据LCD也可以被存储在非易失性存储器104的预留存储器位置处。
因而,生命周期提前到下一阶段可以由在当前生命周期阶段拥有设备的实体完成(例如,芯片生产者将在将其运送到客户交付阶段时提前生命周期;第一层客户将在将其运送到OEM生产阶段时提前生命周期等)。
如之前所提及的,通常,当提前生命周期阶段时,处理***10的越来越多的安全特征被激活。通常,这样的安全功能针对若干微资源的保护,以便循环对它们的访问。
例如,生命周期数据LCD可以提供给资源106,诸如调试接口,该资源106根据数据LCD被启用或禁用;存储器104或存储器104b,该存储器104或存储器104b禁止(读取或写入)对给定存储器地址范围的访问;或处理核心102,该处理核心102可以执行基于数据LCD来改变操作的固件,从而实现基于软件的保护机制。
因此,该操作电路可能进行未经授权的访问(例如,黑客),但也限制了测试/分析设备的可能性,并且最为关键的场景是设备由于失灵而返回时。事实上,为了能够分析故障的根本原因,需要绕过第一层客户和OEM客户可以落实到位的若干安全层。对于硬故障单元,该操作可能很困难。因此,通常采用称为故障分析的阶段,该阶段会自动删除一些非安全关键保护,从而当设备被运回(例如,运回到处理***10的生产者或硬件或软件开发者)用于诊断目的时,可以运行故障分析测试(即,生命周期数据LCD可能指示以下其他阶段:“故障分析”(LC5))。
因此,故障分析阶段表示特殊情况,因为故障分析阶段可以通过提前生命周期阶段来达到,但是先前激活的安全机制中的一个或多个安全机制现在被禁用(例如,调试接口再次被启用)。在这方面,一旦设备到达故障分析阶段,现代处理***10就可以启用其他保护机制,如在故障分析阶段开始之后永久不可能在汽车中重复使用该设备。
因而,为了避免可能攻击并且从安全角度来看,故障分析阶段的入口必须是良好控制的操作并且决不能意外发生。
例如,当设备在现场仍处于活动状态时,意外激活实时电子控制***中的故障分析阶段可能会产生灾难性后果。
发明内容
鉴于上述情况,提供用于对处理***的生命周期阶段进行编程的解决方案是有利的。
根据一个或多个实施例,上述目标中的一个或多个目标借助于具有在所附权利要求中具体阐述的特征的处理***来实现。实施例还涉及相关集成电路、设备和方法。
如之前所提及的,本公开的各种实施例涉及一种处理***(例如,在集成电路中实现的处理***)。
在各种实施例中,处理***包括数字处理核心,该数字处理核心包括微处理器,该微处理器被配置为执行软件指令。处理***还包括硬件电路(例如,处理***的***设备),该硬件电路被配置为根据指示生命周期阶段的经解码的生命周期数据来改变操作。具体地,非易失性存储器被配置为存储指示生命周期阶段的经编码的生命周期数据。因而,处理***还包括硬件配置电路,该硬件配置电路被配置为从非易失性存储器读取经编码的生命周期数据,通过对经编码的生命周期数据进行解码来生成经解码的生命周期数据,并且将经解码的生命周期数据提供硬件电路。
在各种实施例中,处理***包括复位端子(例如,相应集成电路的焊盘或引脚),该复位端子被配置为接收外部复位信号;以及复位电路端子,该复位电路端子被配置为监测经由复位端子接收的外部复位信号。在各种实施例中,复位电路被配置为响应于确定外部复位信号具有第一逻辑电平而执行操作序列。具体地,在复位阶段期间,复位电路生成处理***的复位。在配置阶段期间,复位电路激活硬件配置电路,从而硬件配置电路读取经编码的生命周期数据,解码经编码的生命周期数据,并且将经解码的生命周期数据提供给硬件电路。在等待阶段期间,复位电路一直等待,直至外部复位信号具有第二逻辑电平。相反,响应确定外部复位信号具有第二逻辑电平,复位电路启动微处理器(即,微处理器开始执行软件指令)。
在各种实施例中,处理***包括通信接口,该通信接口在等待阶段期间激活并且被配置为从外部设备接收请求。
在各实施例中,通信接口可以是串行通信接口,优选地,JTAG接口。
在各种实施例中,处理***包括硬件验证电路。具体地,该验证电路被配置为验证(至少)请求是否包括给定参考密码以及复位电路是否处于等待阶段。
在各种实施例中,响应于确定请求包括给定参考密码并且复位电路处于等待阶段,验证电路生成生命周期提前请求信号,该生命周期提前请求信号指示以下请求:使由经编码的生命周期数据指示的生命周期阶段提前到给定预定生命周期阶段。
通常,验证电路还可以验证其他条件。
在各实施例中,处理***包括测试模式端子,该测试模式端子被配置为接收外部测试模式信号。在这种情况下,验证电路可以被配置为验证外部测试模式信号是否具有给定逻辑电平,并且仅当外部测试模式信号具有给定逻辑电平时,才生成生命周期提前请求信号。
附加地或备选地,验证电路可以使用启用标志。
在各实施例中,处理***在各种实施例中包括多个配置数据客户端,每个配置数据客户端包括用于存储配置数据的寄存器。在这种情况下,非易失性存储器可以被配置为还存储配置数据,并且硬件配置电路可以被配置为在配置阶段期间从非易失性存储器读取配置数据并且将配置数据传输到多个配置数据客户端。因而,在这种情况下,验证电路可以被配置为从配置数据客户端接收启用标志,验证启用标志是否具有给定逻辑电平,并且仅当启用标志具有给定逻辑电平时,才生成生命周期提前请求信号。
在各种实施例中,验证电路可以被配置为以类似方式从配置数据客户端接收参考密码。
因此,在各种实施例中,非易失性存储器的写入电路可以被配置为监测生命周期提前请求信号,并且响应于确定生命周期提前请求信号被设置,写入被存储在非易失性存储器中的经编码的生命周期数据的一个或多个位,从而将经编码的生命周期数据所指示的生命周期阶段提前到给定预定生命周期阶段。
在各种实施例中,处理***包括至少三个寄存器,其中生命周期提前请求信号被存储到至少三个寄存器。在这种情况下,写入电路可以使用诸如硬件状态机或其他微处理器之类的状态机来实现,其中状态机被配置为读取至少三个寄存器的内容,确定至少三个寄存器的大部分位的逻辑电平,并且响应于确定大部分位被设置,写入被存储在非易失性存储器中的经编码的生命周期数据的一个或多个位。
在各实施例中,在状态机使用(或包括)其他微处理器实现的情况下,至少三个寄存器可以使用其他微处理器的寄存器接口来实现。因而,在这种情况下,其他微处理器可以被配置为经由其他微处理器所执行的软件指令读取至少三个寄存器的内容并且确定至少三个寄存器的大部分位的逻辑电平。
附图说明
为了更完整地理解本公开及其优点,现在,结合附图参考以下描述,其中
图1是示例电子***的图;
图2和图3是示例处理***的图;
图4是处理***的实施例的图;
图5和图6是用于在处理***中分配配置数据和生命周期数据的实施例的图;
图7是用于操作处理***的实施例方法的流程图;
图8是实施例处理***的示意图;以及
图9、图10、图11、图12和图13是处理***的细节的实施例的图。
具体实施方式
本公开提供了可以在多种特定背景下体现的广泛多种可适用发明概念。特定实施例仅用于说明特定配置,并不限制所要求保护的实施例的范围。除非另有说明,否则来自不同实施例的特征可以组合以形成其他实施例。
对实施例中的一个实施例所描述的变体或修改也可以应用于其他实施例。进一步地,应当理解,在没有背离由所附权利要求限定的本公开的精神和范围的情况下,可以在本文中进行各种改变、替换和变更。
在以下描述中,给出了许多具体细节以提供对实施例的透彻理解。实施例可以在没有一个或多个具体细节的情况下或使用其他方法、部件、材料等来实施。在其他情况下,未详细示出或描述众所周知的结构、材料或操作,以免模糊实施例的方面。
在整个说明书中对“一个实施例”或“一实施例”的引用意味着结合该实施例所描述的特定特征、结构或特点包括在至少一个实施例中。因此,在整个说明书的各个地方出现的短语“在一个实施例中”或“在一实施例中”不一定都是指相同的实施例。更进一步地,特定特征、结构或特点可以在一个或多个实施例中以任何合适方式组合。
本文中所提供的标题仅为方便起见,并不解释实施例的范围或含义。
在以下图4至图13的各部分中,已经参考图1至图3所描述的部件、元件或部件由先前在该图中使用的相同附图标记表示;以下不再重复对这些先前描述的元件的描述,以免使本具体实施方式繁琐。
如上文所描述的,现代处理***可以使用生命周期数据LCD来激活给定安全保护机制(即,处理***的硬件或软件行为可以根据生命周期数据LCD改变)。
通常,安全特征并非仅仅基于生命周期数据LCD来激活,而是使用附加安全配置数据SCD来指定是否应当激活给定安全特征(例如,一旦给定生命周期阶段已经达到)。通常,这些安全配置数据SCD与其他配置数据CD一起被存储到非易失性存储器104(例如,被配置为存储一个或多个处理器102的固件的非易失性存储器104的预留存储器位置)。这些配置数据CD通常在处理***的复位阶段期间由一些电路读取,并且被分配到各种部件(例如,处理核心102、存储器控制器100或资源106),由此安全配置数据SCD被提供给安全框架,并且安全配置数据SCD也根据生命周期数据LCD用于启用或禁用相关保护。
在这方面,如文件EP 3 413 194 A1中所公开的,配置数据CD的至少一部分(特别是安全配置数据SCD)在被存储到非易失性存储器之后可能不能够再更改。原因是为了保证某个安全配置被强制执行并且不可更改,以便保护始终处于活动状态。
在各实施例中,准许对处理***进行调试/测试的常规解决方案包括:处理***的调试接口被禁用并且可以通过处理核心102访问一个或多个部件。
因而,这样,处理核心102可以经由处理***的通信接口IF(诸如CAN接口)接收命令,并且根据所接收的命令执行给定(软件)操作(例如,从给定存储器地址读取数据或将数据写入给定存储器地址),其中存储器地址相关联(例如,与存储器104或存储器104b或资源106中的给定存储器位置相关联)。
在各实施例中,处理核心102甚至可以被配置为重写给定安全配置数据SCD,从而禁用给定安全机制(例如,再次启用调试接口)。
因而,处理核心102可以实现软件调试接口(本质上为后门),该软件调试接口可以验证通常不在硬件调试接口中实现的其他条件(例如,验证命令是否包括正确密码)。
这意味着,一旦启用了某种安全保护,可能就需要“做某事”(例如,提供正确密码)作为能够运行预定测试例程或调试处理***的前提条件。然而,这种密码验证操作可能牵涉到各种操作。
在各实施例中,密码必须经由通信接口IF提供给处理核心102,密码必须被验证,并且最终,请求的结果必须经由通信接口IF再次传输。
另外,密码验证操作还可以牵涉到加密密码,其中处理核心102必须将加密通信或仅将加密密码转发到处理***的硬件安全模块/暗码协处理器以获得用于验证操作的明文密码。这意味着,在一些情况下,一些(硬件或软件)暗码操作可能会在密码可以用于绕过某个安全保护之前执行。
因此,虽然这种软件调试接口对于监测处理***的操作可能有用,但是当处理***正常使用时(在“现场”阶段中),在设备故障的情况下,它可能更适合将处理***的生命周期阶段提前到故障分析阶段(如果支持),由此处理***本身停用给定硬件安全保护(例如,自动重新激活处理***的调试接口)。
然而,由于调试接口通常在“现场”阶段被禁用,所以生命周期阶段的提前也只能经由处理核心102来执行。因此,为了将设备提前到故障分析阶段,需要经由处理核心102执行一些软件。
在各实施例中,处理核心102可以经由通信接口接收命令,验证密码(可能包括暗码操作),并且执行操作以提前生命周期阶段。
因而,使用微处理器102作为调试接口或用于提前生命周期阶段可能不那么合适,因为可能牵涉到大量资源,诸如处理核心102、已存储由处理核心102执行的软件的非易失性存储器104、用于存储处理核心102的临时结果的易失性存储器104b、通信接口IF、以及可能的其他资源106(诸如暗码协处理器)。
事实上,通常,故障分析阶段应当在处理***出现硬件故障的情况下启动。因而,因为牵涉到处理***的基本所有主要部件,所以这种软件方法可能不那么适合,并且这些部件中的一个部件的故障可能会抑制处理核心102可以执行软件调试操作或提前处理***的生命周期阶段。
因而,以下将描述准许以更为有效的方式管理处理***的生命周期的解决方案。
图4示出了根据本描述的处理***10a的实施例。
在各实施例中,处理***10a的底层架构与关于图2和图3所描述的处理***相对应,并且相应描述以其整体适用。此外,因此,在这种情况下,诸如集成电路之类的处理***10a包括至少一个处理核心102、被配置为被连接到(内部或外部)非易失性存储器104的存储器控制器100、至少一个资源106、以及连接一个或多个处理核心102、存储器控制器100和一个或多个资源106的通信***114。
如之前所提及的,处理***10a的行为也可以基于配置数据CD和生命周期数据LCD而发生变化。
在各实施例中,根据EP 3 413 194 A1的描述,这些配置数据CD和生命周期数据LCD可以写入非易失性存储器104的特定区域中,并且当处理***10a通电时,进行检索。优选地,非易失性存储器104被集成在集成电路中,还可以用于存储一个或多个处理核心102的固件。
然而,固件也可以被存储在单独的非易失性存储器104中。
在各实施例中,在程序存储器被集成到集成电路中的情况下,可以使用非易失性程序存储器。
相反,在程序存储器是外部存储器的情况下,可以使用附加(小)内部非易失性存储器104。因而,在各种实施例中,配置数据CD和生命周期数据LCD被存储在集成电路的非易失性存储器中,该非易失性存储器包括需要配置数据的电路,诸如处理器102或硬件资源106中的一个或多个硬件资源106。
在各实施例中,配置数据CD可以包括用于保证硬件行为一致的校准数据,从而补偿可能的生产过程容差。
在各实施例中,这通常适用于处理***的模拟部件的校准,诸如温度传感器、模数转换器、电压参考等。
在各实施例中,模拟比较器的电压监测器阈值电平可以通过使用配置/校准数据调整一些电平来“修整”到精确的预期值,这些配置/校准数据由处理***的硬件的生产者(例如,微控制器生产者)写入。
而且,配置数据CD还可以用于根据不同的应用需要来定制硬件(例如,硬件资源106)的行为。
在各实施例中,一旦处理***的固件已经被存储在处理***10a中,就可以写入一些配置数据CD(即,安全配置数据SCD)以停用调试接口,该调试接口例如可以用来下载处理***10a的固件。备选地,可以仅禁用经由调试接口对非易失性存储器的访问(即,可以不禁用整个调试接口),但可以限制调试接口对其他电路的访问。
因此,通常,配置数据CD的第一部分可以由处理***的硬件的生产者(例如,集成电路的生产者)写入,或配置数据CD的第二部分可以由处理***10a的固件的开发者编写。
如之前所提及的,可以在复位阶段期间读取经编程的配置数据CD,该复位阶段通常在处理***10a一通电就开始。
具体地,如图4所示,处理***10a可以为此目的包括硬件配置电路108,该硬件配置电路108被配置为从非易失性存储器104读取配置数据CD和生命周期数据LCD,并且将这些数据分配在处理***10a内。
在各种实施例中,硬件配置模块108可以被配置为通过经由通信***114向存储器控制器100发送读取请求来从非易失性存储器104读取配置数据CD和生命周期数据LCD。附加地或备选地,硬件配置模块108还可以被直接连接到存储器控制器100或被配置为直接从存储器104读取数据。
同样,硬件配置模块108可以被配置为通过经由通信***114发送写入请求来将配置数据CD和生命周期数据LCD发送到各个电路。然而,硬件配置模块108还可以使用配置数据CD或生命周期数据LCD的单独的通信信道。
图5示出了配置电路108的可能实施例。配置数据CD被存储在预留存储器区域中(例如,以多个连续存储器位置的形式)。因而,配置模块108访问包含配置数据CD的预留存储器区域,读取配置数据CD,并且将配置数据CD传输到处理***10a内的相应电路110。
通常,电路110可以与处理***10a的需要配置数据的任何电路相对应,并且可以与处理器102、硬件资源106或甚至存储器104或存储器104b相对应。
在各实施例中,电路110可以是处理***10a的调试接口,该调试接口基于配置数据CD来被启用或禁用。同样,配置数据CD可以用于配置存储器的读取或写入保护区域。
在各实施例中,为了分配配置数据CD,每个电路110可能已经关联了相应配置数据客户端112。
在各实施例中,图5中示出了三个电路110a、110b和110c以及三个配置数据客户端112a、112b和112c。通常,每个配置数据客户端112可以明确关联到单个硬件电路110,并且仅向关联的硬件电路110(例如,特定硬件资源106)提供配置数据,或可以与多个硬件电路110(例如,多个硬件资源106)相关联。一般而言,配置数据客户端112a、112b和112c还可以被集成到相应电路110a、110b和110c中。
因而,在所考虑的实施例中,配置模块108可以针对每个要配置目标电路110确定相应配置数据(选自配置数据CD的配置数据)并且将与目标电路110相关联的配置数据传输到与目标电路110相关联的配置数据客户端112。
同样,在从存储器104读取配置数据CD时,配置模块108可以确定当前配置信息的一个或多个目标电路,并且将当前配置数据发送到与一个或多个相应目标电路相关联的一个或多个配置数据客户端。
通常,任何通信都可以用于将配置数据传输到配置数据客户端112,包括串行通信和并行通信。
在各实施例中,配置模块108和配置数据客户端112可以经由通信***114或附加总线连接,并且每个配置数据客户端112可能已经关联了相应目标地址。
因而,每个配置数据客户端112被配置为从模块108接收配置数据,将它们存储到内部寄存器中(例如,将它们存储到一个或多个内部触发器或锁存器中)。然后,可以使用被存储在寄存器中的数据来生成一个或多个信号,该一个或多个信号影响一个或多个硬件电路110的行为。
图6在这方面示出了配置模块108与配置数据客户端112之间的通信的可能实施例。处理***10a包括配置模块108,该配置模块108被配置为从一个或多个非易失性存储器104读取配置数据CD;以及多个配置数据客户端112,该多个配置数据客户端112被配置为从模块108接收相应配置数据并且将它们分配在需要配置数据的多个电路110(未示出)之间。
在各实施例中,每个配置数据客户端112可以与相应电路110明确相关联。
在各实施例中,处理***10a包括三个配置数据客户端112a、112b和112c。
配置模块108包括数据读取模块1080,该数据读取模块1080被配置为从存储器104读取配置数据CD;以及调度模块1082,该调度模块1082被配置为将配置数据传输到配置数据客户端112。
如之前所提及的,可以使用任何通信在调度模块1082与配置数据客户端112之间进行通信。
在各实施例中,调度模块1082与配置数据客户端112之间的通信基于根据下文被称为设备配置格式(DCF)的给定格式的数据帧。
在各实施例中,每个数据帧包括两个字段:有效载荷(即,真实数据),称为DCF格式有效载荷;以及可能用于标识数据的接收者的附加数据属性,称为DCF格式属性,其中接收者是表示DCF客户端的配置数据客户端112中的一个配置数据客户端。
在各实施例中,数据属性可以由16个位或32个位组成,其中给定数目的位指定配置数据客户端112中的一个配置数据客户端的地址,并且有效载荷可以由16个位或32个位组成。
在各实施例中,数据读取模块1080被配置为从存储器104读取64个位的电路,其中前32个位包含数据属性(包括配置数据客户端的地址),而后32个位包含要传输到数据属性中指定的地址的配置数据。如之前所提及的,该地址可以与通信***114的物理地址或单独的通信总线的物理地址相对应。
每个配置数据客户端/DCF客户端112可以是硬件模块,通常包括组合电路,该组合电路被配置为将所接收的数据存储在(例如,使用触发器/锁存器)所实现的内部寄存器中,从而准许经由根据被存储在内部寄存器中的数据生成一个或多个内部信号将所接收的配置数据分配到一个或多个关联硬件电路110的各个部分。
在各实施例中,每个配置数据客户端112可能已经关联了单意地址(即,每个处理***10a内的单意地址),并且分析由调度模块1082传输的数据以确定附加数据属性(DCF格式属性)是否包含与配置数据客户端112相关联的地址。
在各种实施例中,模块108还可以包括状态控制模块1084,该状态控制模块1084被配置为管理处理***10a的各种配置阶段。
在各实施例中,一旦处理***10a被开启,处理***10a的复位模块116就可以生成复位信号RESET,该复位信号RESET用于执行处理***10a的各种部件的复位。
在各实施例中,复位信号RESET可以与提供给处理***10a的电路110的给定数目的时钟周期的复位脉冲相对应。
在各实施例中,配置数据客户端112可以使用复位信号RESET来将内部寄存器设置为给定复位值。
同样,响应于复位,复位电路116可以激活状态控制模块1084,从而激活配置阶段。具体地,在配置阶段期间,数据读取模块1080可以从存储器104中读取配置数据CD。调度模块1082可以将配置数据CD发送到各个配置数据客户端112,从而重写复位值。
在各实施例中,调度模块1082可以生成具有给定数目的位(对应于有效载荷的位)的数据信号DATA,该数据信号DATA包含要传输到给定配置数据客户端112的配置数据以及用于选择目标配置数据客户端112的其他控制信号。
在各实施例中,调度模块1082还生成地址信号ADR,该地址信号ADR包含目标配置数据客户端112的地址以及可选地用于发信号通知地址信号ADR和数据信号DATA有效的芯片选择信号CS。
在各实施例中,地址信号ADR(和芯片选择信号CS)被提供给解码器124,该解码器124被配置为根据地址信号ADD激活配置数据客户端112中的一个配置数据客户端。
在各实施例中,解码器124对芯片选择信号CSa进行设置以指示当地址信号ADR对应于指派给配置数据客户端112a的地址(以及芯片选择信号CS被设置)时,配置数据客户端112a应当读取数据信号DATA。
在各实施例中,解码器124对芯片选择信号CSb进行设置以指示当地址信号ADR对应于指派给配置数据客户端112b的地址(以及芯片选择信号CS被设置)时,配置数据客户端112b应当读取数据信号DATA。
因而,配置数据CD还可以包括用于激活或停用处理***10a的给定安全功能的安全配置数据SCD,诸如:对调试接口的外部访问;对给定存储器位置的(读取或写入)访问等。
而且,配置数据CD可以包括两个配置数据子集,由处理***10a的生产者(例如,芯片制造者)写入的第一配置数据(例如,校准数据)组以及稍后阶段期间写入的第二配置数据(诸如由固件开发者或***集成者(诸如发动机控制单元的生产者)写入的配置数据)组。
在各种实施例中,这些配置数据组被写入存储器104的不同区域,从而准许这些组可以独立配置,或第二配置数据组可以附加到第一配置数据组。
在各实施例中,包括在第一配置数据组中的安全配置数据SCD还可以准许设置对其中存储第一配置数据组的存储器位置的访问权限。
在各实施例中,第一配置数据组可以不被重写,或存储器接口可以禁止对第一配置数据组(例如,处理器102)的读取访问。
相反,包括在第二配置数据组中的配置数据CD/安全配置数据SCD可以用于从功能的角度配置电路110的行为(例如,启用或禁用调试接口等)。因此,一旦调试接口被停用或相应存储器位置被保护,第二配置数据组就不能被重写或读取。
同样,数据读取模块1080也可以从存储器104读取生命周期数据LCD并且将其提供给生命周期电路1102。
在各实施例中,生命周期电路1102可以包括内部寄存器,其中存储从存储器104读取的生命周期数据LCD。更具体地,在各种实施例中,生命周期电路1102被配置为接收经编码的生命周期数据LCD,将生命周期数据LCD解码为标识当前生命周期阶段的经解码的数据LC,即,标识当前生命周期阶段的数据LC。当前生命周期阶段可以被存储在生命周期电路1102中,并且提供给其他电路。
在各实施例中,该操作可以由状态控制模块1084管理(例如,状态控制模块可以驱动生命周期模块1102),使生命周期模块1102解码生命周期数据LCD并且将经解码的数据LC存储在内部寄存器中(例如,当处理***10a处于配置阶段时——在复位状态之后)。
然后,生命周期电路1102可以将经解码的生命周期数据LC提供给各个电路110。优选地,因为单独的通信信道使用(例如,配置数据客户端112中的)附加寄存器来存储已经被存储在生命周期电路1102的寄存器中的信息可能相当无用,所以该单独的通信信道用于向各个电路110提供相同的经解码的生命周期数据LC。
因而,在各种实施例中,硬件配置电路108被配置为从非易失性存储器104读取(经由合适的通信信道)配置数据CD和生命周期数据LCD,并且将配置数据CD和经解码的生命周期数据LC传输到各种电路110(例如,一个或多个处理核心102、存储器控制器100和资源106)。
具体地,基于状态控制电路1084中实现的控制,例如,以实现状态机的时序逻辑电路的形式,硬件配置电路在复位之后但在一个或多个处理核心102被激活之前读取配置数据CD和生命周期数据LCD。
如其全部内容通过引用并入本文的欧洲专利申请号EP 3 719 636A1所公开的,两种类型的复位可以用于传统处理***中。第一复位对应于基本上如前所述的“简单”复位,其中某种复位事件激活内部复位阶段116以执行处理***的功能复位。第二类型的复位对应于可以执行其他操作的复杂复位。
图7示意性地示出了复位电路116的操作的实施例。
在步骤3000处,激活复位,并且在步骤3002处执行复位。
在各实施例中,复位模块116可以在步骤3002处对信号RESET进行设置。因而,响应于在步骤3002处请求的复位,处理***10a的各种锁存器/寄存器被复位(例如,配置数据客户端112和配置模块108的内容)。
接下来,复位模块116例如通过对信号SCP进行设置开始于步骤3004(配置阶段),该信号SCP提供给状态控制模块1084。响应于信号SCP,配置电路108读取并分配配置数据CD和生命周期数据LCD。通常,因为当复位信号RESET被取消断言时,配置阶段可以自动启动,所以信号SCP纯粹是可选的。
在配置阶段结束时,配置电路108可以对信号ECP进行设置以指示配置阶段完成。
因而,如图7所示,复位电路116可以从步骤3004进行到验证步骤3006。复位模块116一直等待,直至信号ECP通过配置电路108进行设置(验证步骤3006的输出“N”)。一旦对信号ECP进行了设置(验证步骤3006的输出“Y”),就配置处理***10a。因而,步骤3004和3006实现处理***10a的配置阶段CP1。
因而,一般而言,在验证步骤3006之后,处理核心102可以开始于步骤3022,并且复位过程可以终止于步骤3024。因而,步骤3022作为软件运行时阶段SW开始。
然而,如图7所示,处理***10a还可以被配置为运行诊断阶段DP,其中处理***10a执行一个或多个可选的***诊断操作(即,处理***10a执行内置自测(BIST))。
在各实施例中,处理***10a包括硬件诊断电路118,该硬件诊断电路118经由信号SDP激活。
因而,在各种实施例中,一旦信号ECP被设置(验证步骤3006的输出“Y”),复位电路116就可以在步骤3010处对信号SDP进行了设置,从而启动诊断电路118。接下来,复位模块116可以在步骤3012处一直等待,直至诊断操作已经被执行(即,自测试已经完成)。
在各实施例中,一旦执行了诊断操作,诊断电路118就可以对信号EDP进行设置。
因而,复位电路116可以从步骤3010进行到验证步骤3012。复位模块116一直等待,直至诊断电路118对信号EDP进行设置(验证步骤3012的输出“N”)。一旦信号EDP被设置(验证步骤3012的输出“Y”),就完成了诊断阶段DP(步骤3010和3012)。
在各种实施例中,由诊断电路118执行的自测试操作可以测试通常牵涉到写入操作或读取操作的处理***10a的一个或多个寄存器,从而可以修改这些寄存器的内容。
因而,在各种实施例中,一旦已经执行了诊断阶段DP,复位模块就可以在步骤3014处执行处理***10a的其他复位。
在各实施例中,复位电路116可以在步骤3014处再次对信号RESET进行设置。
通常,在步骤3002处执行的表示第一复位的复位和在步骤301处6执行的表示第二复位的复位可以例如关于通过复位电路116复位的寄存器或电路不同。
在各实施例中,复位电路116生成复位模式信号RM,该复位模式信号RM在步骤3002处被设置为第一逻辑电平并且在步骤3014处被设置为第二逻辑电平。然而,复位电路也可以在步骤3002处对第一复位信号RESET1进行设置(用于复位第一电路子集)并且在步骤3014处对第二复位信号RESET2进行设置(用于复位第二电路子集)。
在各种实施例中,诊断电路118还可以测试配置数据客户端112和生命周期电路1102的寄存器。因而,在这种情况下,在第二配置阶段CP2读取配置数据CD或生命周期数据LCD也是有用的。
因而,在各种实施例中,复位模块116可以从步骤3014进行到步骤3016,其中复位电路116例如通过对提供给状态控制模块1084的信号SCP进行设置来开始配置阶段。响应于信号SCP,配置电路108读取并分配配置数据CD和生命周期数据LCD。在配置阶段结束时,配置电路108对信号ECP进行设置以指示配置阶段完成。
因而,复位电路116可以从步骤3016进行到验证步骤3018,其中复位模块116一直等待,直至信号ECP通过配置电路108进行设置(验证步骤3018的输出“N”)。一旦信号ECP被设置(验证步骤3018的输出“Y”),处理电路因此可以进行到步骤3022用于启动处理核心102。
在各实施例中,复位电路116可以被配置为在配置阶段CP1之后可选地开始诊断阶段DP。这种配置可以是硬连线的或可编程的。具体地,配置数据CD已经在配置阶段CP1结束时分配。因而,配置数据CD还可以包括指示自测试功能是否应当被激活的数据,该数据可能包括指定应当执行哪个自测试的数据。
在各实施例中,可以通过将相应配置数据客户端112与这些电路相关联来将这些数据提供给复位电路116或诊断电路118。
因而,在步骤3006结束时,复位电路116可以进行到验证步骤3008。具体地,当启用诊断阶段DP的执行时(验证步骤3008的输出“Y”),复位模块116进行到步骤3010。相反,当自测试的执行被禁用时(验证步骤3008的输出“N”),过程可以直接进行到步骤3022以启动处理***的正常操作模式。
因此,简单复位仅实现单个复位(步骤3002)和配置阶段CP1。相反,复杂复位实现诊断阶段DP、步骤3014处的其他复位以及可选地其他配置阶段CP2。通常,处理***10a可以支持两种类型的复位,其中响应于第一事件集合而执行复杂复位而响应于第二事件集合而执行简单复位(例如,在步骤3008处验证)。
在各实施例中,响应于处理***10a的启动或响应于给定(关键)误差,可以执行复杂复位,而响应于处理器102的复位请求,可以执行简单复位。通常,复位事件可以是静态的/硬连线的或可以是可配置的。
通常,步骤3002的第一复位被称为“破坏性复位”DR,因为通常处理***10a的所有寄存器都被复位为复位值,而因为不一定所有处理***的寄存器(诸如资源106中的一个或多个资源的寄存器)都被复位,所以步骤3014处的第二复位通常被标识为功能复位FR。
在各实施例中,复位模块116的寄存器不能在步骤3016处复位,因为否则复位模块116将丢失是否已经在步骤3002处执行了第一复位的信息。
通常,在BIST没有测试配置数据客户端112和生命周期模块1102的寄存器的情况下,步骤3014的功能复位还可以是所谓的“短功能复位”,其中处理***10a被复位,但配置电路108不再读取配置数据CD,并且生命周期数据LCD(即,配置阶段CP2)可以被省略。
在这方面,给定事件(诸如处理***10a的通电)可以触发图7所示的复杂复位过程(开始于破坏性复位3002),而其他事件(例如,资源106所请求的复位)可以仅触发功能复位(即,立即开始步骤3016)。
而且,其他事件(例如,处理器102所请求的复位)可以仅触发短功能复位。通常,复位触发器在设计时被分类为功能性、短功能性或破坏性,或可以经由配置数据CD进行配置。同样,如之前所提及的,BIST的执行可以在设计时设置,或可以可能针对与破坏性复位相关联的每个触发器经由配置数据CD进行配置。
因而,在各种实施例中,当执行复杂或简单复位时(即,在步骤3002与步骤3020之间),一个或多个处理核心102没有正在运行(即,一个或多个处理核心102没有执行任何软件)。
在各实施例中,这可以通过保持一个或多个处理核心102处于复位状态来获得。相反,处理***10a的其他电路可以是可操作的,例如,复位电路116、诊断电路118、硬件配置电路108、非易失性存储器104、资源106中的一个或多个资源等。
在各实施例中,至少电路104、108和116用于管理处理***10a的复位阶段,包括一个或多个配置阶段和诊断阶段,从而确保一旦在步骤3022处激活一个或多个处理核心102,配置数据CD和生命周期数据LCD就可用。
在这方面,复位电路116或状态控制模块1084还可以实现其他步骤,诸如初始化阶段,其中复位电路116或状态控制模块1084例如等待非易失性存储器104完成其初始化,从而确保数据读取电路1080可以从非易失性存储器104读取配置数据CD和生命周期数据LCD。
在各种实施例中,复位电路116被配置为响应于经由处理***10a的复位端子RP(诸如相应集成电路管芯的焊盘或相应封装集成电路的引脚)接收的信号而复位处理***10a。
例如,这在图6中示意性地示出。而且,在各种实施例中,复位电路116被配置为在步骤3030处(在进行到步骤3022之前)验证被施加到复位端子RP的信号是否被取消断言。
在各实施例中,处理***10a可以被配置为当被施加到复位端子RP的信号具有例如低的第一逻辑值时,在步骤3000处开始复杂复位。接下来,复位电路执行步骤3002至3018,处理***10a停留在步骤3020,同时当被施加到复位端子RP的信号的逻辑电平具有例如高的第二逻辑电平时,被施加到复位端RP的信号具有第一逻辑电平(验证步骤3020的输出“Y”)(即,处理***图10a从步骤3020进行到步骤3022(验证步骤3020的输出“N”)。因而,在所考虑的实施例中,当被施加到复位端子RP的信号具有第二逻辑电平时,一个或多个处理核心仅在步骤3022处启动。
而且,在各种实施例中,至少一个通信接口IF_JTAG(优选地,串行通信接口,诸如JTAG(联合测试行动组)接口)在步骤3020期间是可操作的。
因此,在各种实施例中,在读取配置数据CD和生命周期数据LCD之后,可以通过将复位端子RP保持处于第一逻辑电平(例如,低)来延长复位阶段。这使得可以保持处理***10a处于复位状态,并且在该阶段期间,经由诸如JTAG接口之类的接口IF_JTAG发送一个或多个命令。
通常,虽然图7示出了各种复位阶段由复位电路116管理的实施例,但是这些阶段也可以由状态控制电路1084或另一状态机管理。因此,一般而言,图7所示的操作可以由处理***10a以任何合适方式实现。
发明人应当观察到,上文所描述的行为可以用于经由接口IF_JTAG(优选地,串行通信接口,诸如JTAG接口)来管理生命周期阶段的提前,而无需干预一个或多个处理核心102。
在各种实施例中,处理***10a被配置为根据生命周期数据LCD和可选的安全配置数据SCD启用或禁用给定安全功能。
在各实施例中,生命周期数据LCD可以标识多个生命周期阶段中的一个生命周期阶段,诸如“生产”,处理***10(例如,微控制器)采用芯片结构时;“客户交付”(LC2),处理***10已经被运送到第一层客户(例如,发动机控制单元的生产者)时;“OEM生产”(LC3),设备被运送到下一级客户(例如,汽车制造者)时;“现场”(LC4),设备安装在最终产品中时(例如,在市场上出售的汽车中);“故障分析”(LC5),设备被运回(例如,运回处理***10的生产者或硬件或软件开发者)用于诊断目的时。
通常,与本申请相关的是管理至少三个生命周期阶段:一个或多个开发阶段,例如,经由阶段LC1、LC2和LC3;“现场”阶段LC4;以及“故障分析”阶段LC5所标识的。
具体地,在各种实施例中,在一个或多个开发阶段期间,一个或多个安全机制可能已经被激活,并且在“现场”阶段期间,最大保护级别被激活。相反,在“故障分析”阶段,在“现场”阶段期间被激活的一个或多个安全机制被停用。
通常,哪个位序列标识给定生命周期阶段并非特别相关。
在各实施例中,生命周期数据LCD可以包括给定数目的位,诸如32个位或64个位,并且多个位的子集可以与每个生命周期阶段(诸如4个位或8个位)相关联。在这种情况下,生命周期电路108可以被配置为读取生命周期数据LCD;针对每个位子集确定大部分位是否具有非易失性存储器104的复位值;确定其中大部分位未被设置为非易失性存储器104的复位值的最高生命周期阶段;并且对信号LC进行设置以指示该最高生命周期阶段。
通常,第一生命周期LC1可以由具有被设置为非易失性存储器的复位值的所有位的生命周期数据LCD来标识。
在各实施例中,假设生命周期数据LCD具有32个位,具有以下位子集:[0..7]:LC2、[8..15]:LC3、[16..23]:LC4、[24..31]:LC5.
而且,假设非易失性存储器的给定位的复位值对应于“1”。因而,在这种情况下,当所有位都被设置为“1”时,标识第一生命周期阶段LC1,并且当相应位子集中的至少五个位(即,大部分)被设置为“0”时,假设达到给定另一生命周期。在这些生命周期阶段中,当位子集[24..31]的至少五个位被设置为“0”时,生命周期电路1102然后选择最高生命周期阶段,例如,对信号LC进行设置以指示生命周期阶段LC5。
然而,其他编码方案还可以用于生命周期数据LCD。事实上,对生命周期数据LCD的编码必须进行配置,使生命周期阶段只能提前(即,它永远不能恢复到早期阶段)。
图8示出了根据本公开的处理***10a的实施例。
具体地,该实施例基本基于图4所示的实施例,另外还包括通信接口IF_JTAG,优选地,串行通信接口,诸如JTAG接口,该通信接口IF_JTAG被连接到诸如相应集成电路的引脚或焊盘之类的处理***10a的一个或多个端子(未示出)以接收来自诸如外部调试设备之类的外部设备的一个或多个请求REQ;以及验证电路130,该验证电路130被配置为分析请求REQ并且确定请求REQ是否指示用于使处理***10a的生命周期阶段提前的请求。
因而,在所考虑的实施例中,验证电路130是单独的硬件电路,并且可以请求生命周期阶段的提前而无需一个或多个处理核心102的干预。具体地,在各种实施例中,验证电路130被配置为仅管理使生命周期阶段提前到故障分析阶段LC5,同时其他生命周期阶段(LC1至LC4)的提前仍可以由处理核心102管理,例如,通过经由CAN接口接收相应请求。
因而,在各实施例中,当请求REQ指示将生命周期阶段提前到故障分析阶段LC5的请求时,验证电路130生成信号LCFA_REQ。
更具体地,该信号LCFA_REQ直接提供给已经存储了生命周期数据LCD的非易失性存储器104,从而避免了必须通过通信信道114传输通信。
例如,图9示出了根据本公开的非易失性存储器104的实施例。具体地,在所考虑的实施例中,非易失性存储器104包括一个或多个物理非易失性存储器区域1048,诸如多个闪存体;以及控制电路1040。
具体地,在各种实施例中,控制电路1040包括安全管理电路1042和读取和写入管理电路1044,该读取和写入管理电路1044被配置为管理寻址到非易失性存储器区域1048的给定存储器区域的读取和写入请求。
通常,如图9所示,读取和写入管理电路1044可以包括两个单独的电路,即,读取管理电路1044r,被配置为管理读取请求,而写入管理电路1044w。被配置为管理写入请求。
因而,在所考虑的实施例中,存储器控制器100从通信***114接收读取或写入请求并且将该请求转发给控制电路1040。通常,虽然单独示出,但是存储器控制器100还可以形成控制电路1040的一部分。
具体地,在各种实施例中,控制电路1040(特别是安全管理电路1042)被配置为确定是否准许读取或写入请求。
在各实施例中,安全管理电路1042可以基于配置数据CD(特别是安全配置数据SCD)或生命周期数据LCD来确定读取请求或写入请求是否可以访问给定存储器区域。
在各实施例中,控制电路1040可能已经关联了相应配置数据客户端112(带有相应地址),并且可以通过将安全配置数据SCP与配置数据CD一起存储在非易失性存储器104中来将安全配置数据SCP提供给安全管理电路1042,其中安全配置数据SCP以DCF数据分组的形式被存储在存储器104中,还包括与控制电路1040相关联的配置数据客户端112的地址。因而,这样,配置电路108将读取配置数据CD并且将相应安全配置数据SCP传输到与控制电路1040相关联的配置数据客户端112。
在安全管理电路1042确定请求被准许的情况下,安全管理电路1042将请求转发给读取和写入管理电路1044(1044r或1044w),该读取和写入管理电路1044执行读取或写入请求。
而且,在所考虑的实施例中,控制电路1040包括生命周期编程电路1046,该生命周期编程电路1046被配置为当信号LCFA_REQ被设置时,生成对存储器区域1048的给定存储器位置的写入请求。在各种实施例中,生命周期编程电路1046还可以验证一个或多个其他条件COND1,这将在下文进行更详细地描述。
附加地或备选地,如图10所示,验证电路130还可以根据请求REQ和一个或多个条件COND2生成信号LCFA_REQ。
因而,验证电路130和生命周期编程电路1046准许通过使用最小设备资源集合并且绕过到目前为止描述的所有保护层来将生命周期阶段提前到故障分析阶段,例如,安全管理电路1042。因而,生命周期阶段前进到故障分析阶段(并且优选地,仅前进到该阶段)可以分开完成,所牵涉的电路数量减少,从而降低了在提前生命周期阶段时失灵的风险电路。
在各实施例中,该机制仍然可以保证所需安全级别,以确保不会被恶意提前,并且还可以保证所需安全和可用性级别,以使在处理***10a的运行时期间,生命周期不能提前到故障分析阶段。
因而,在图8、图9和图10所示的实施例中,牵涉到两个电路,即,第一电路130(关于非易失性存储器104位于外部),充当提前到故障分析阶段的发起者,被配置为验证若干条件(特别是请求REQ的内容和附加条件COND2)并且生成信号LCFA_REQ,该信号LCFA_REQ指示(经授权的)请求以将生命周期阶段提前到故障分析阶段;以及第二电路1046(关于非易失性存储器104位于内部),根据信号LCFA_REQ执行非易失性存储器104的编程。
图11和图12示出了验证电路130的可能实施例。具体地,图11示出了被配置为验证验证电路130的附加条件COND2的电路的实施例。然而,一般而言,相应电路也可以被直接集成在验证电路130内。
具体地,如图12所示,验证电路130被配置为接收:通信接口IF_JTAG所提供的请求REQ;以及附加条件COND2(如图11所示)。
具体地,在各种实施例中,选取输入条件集合以保证安全性、保障性和可用性,例如,这些条件必须确保1)当处理***10a处于使用时,操作不会由于差错而启动(可用性保护);2)不可能恶意启动操作(安全保护);以及3)操作只能在处理***10a处于安全状态时执行(安全保护)。
在各实施例中,第一条件通过监测被施加到诸如相应集成电路的引脚或焊盘之类的端子TP的信号TESTMODE来验证。
在各实施例中,当处理***10a在使用中时,端子TP(以及因此信号TESTMODE)被连接到第一逻辑电平,例如,高电平。相反,为了确保处理***10a不在使用中而是在实验室环境中,验证电路130可以验证被施加到端子TP的信号TESTMODE是否具有第二逻辑电平,例如,低电平。
在各实施例中,为了把引脚TP设置为低,处理***10a必须从应用(例如,引擎控制单元)中移除,并且被连接到某个测试板。在各种实施例中,端子TP也可以通过上拉电阻器被连接到电源电压(即,逻辑高电平),从而确保将封装引脚或焊球连接到焊盘的导线意外断开也不会让焊盘处于未定义状态。通常,如果信号TESTMODE为高电平有效,将使用下拉电阻器(即,当端子TP外部被连接到逻辑高电平时,激活测试模式)。
在各种实施例中,通过在验证电路130内提供密码验证电路1300来验证第二条件(安全性),该密码验证电路1300被配置为验证请求REQ是否包含参考密码/关键字RK。通常,由于假设处理***10a现在处于实验室环境中,所以优选的是密码以明文形式在请求REQ中提交,从而避免了对复杂暗码操作的需要。因而,在各种实施例中,电路1300被配置为当经由通信接口IF_JTAG提供的请求REQ对应于包括参考关键字RK的给定预定位序列时,生成信号PW_OK。
在各实施例中,参考密码RK可以被硬连线或被存储在配置数据CD中。
在各实施例中,验证电路130可能已经关联了相应配置数据客户端112(带有相应地址),并且可以通过将参考密码RK与配置数据CD一起存储在非易失性存储器104中来将参考密码RK提供给验证电路130,其中参考密码RK以DCF数据分组的形式被存储在存储器104中,还包括与验证电路130相关联的配置数据客户端112的地址。因而,配置电路108读取配置数据CD并且将相应参考密码RK传输到与验证电路130相关联的配置数据客户端112。
在各实施例中,对于密码验证电路的可能实现方式可以引用欧洲专利申请号EP 3432 190 A1,其通过引用并入本文。
在各种实施例中,通过确保处理***10a处于复位状态来验证第三条件(安全性),因为这被ISO26262标准视为安全状态。
具体地,如上文关于图7所描述的,通过将给定逻辑电平(例如,低)施加到复位端子/引脚/焊盘RP,复位电路116将在步骤3000开始复位过程。因而,复位电路116执行复位和配置阶段CP1(以及可选地诊断阶段DP和配置阶段CP2)。而且,复位电路116一直保持在步骤3020,直至复位端子/引脚/焊盘RP处的逻辑电平被设置为第二逻辑电平(例如,高)。
在各实施例中,通信接口IF_JTAG在步骤3022期间处于活动状态,因此准许可以经由接口IF_JTAG发送请求REQ。因为当处理核心正在运行时,通信接口IF_JTAG通常也处于活动状态,所以验证电路130被配置为确定复位电路116是否处于步骤3022。
在各实施例中,验证电路130从复位电路116接收指示复位模块116在步骤3022正在等待的信号RA。在各种实施例中,验证电路130还可以监测指示配置阶段已经完成的信号ECP。
在各实施例中,信号RA也可以对应于端子RP处的信号(或其反相版本)。在各种实施例中,验证电路130可以验证区分第一复位阶段和第二复位阶段的信号RM。
验证电路130可以验证在各种实施例中是否设置了启用或禁用所描述的用于提前生命周期阶段的操作的给定标志。
在各实施例中,验证电路130监测由与验证电路130相关联的配置数据客户端112提供的信号LCFA_EN。因而,可以通过将具有该配置数据客户端的地址的相应DCF数据分组存储到配置数据CD来生成信号LCFA_EN。
在图11和图12所示的实施例中,上述条件通过根据信号TESTMODE、ECP、LCFA_EN和RA经由组合逻辑电路132生成信号COND2来验证。相反,验证电路130通过根据信号PW_OK和COND2经由组合逻辑电路1302生成信号LCFA_REQ。因此,一般而言,组合逻辑电路132和1302也可以组合。
在各种实施例中,信号LCFA_REQ被存储到寄存器1304,优选地,多个冗余寄存器/触发器,诸如三个并行触发器。
因而,在各种实施例中,仅在以下情况下对信号LCFA_REQ进行设置:经由信号LCFA_EN启用生命周期提前到故障分析阶段;如所指示的,处理***10a例如经由信号RA处于复位状态;如所指示的,配置数据CD和生命周期数据LCD已经例如经由信号ECP被读取;请求REQ对应于有效请求,例如,正确密码RK已经包含在请求REQ中,如经由电路1300验证/经由信号PW_OK指示的;并且端子/引脚/焊盘TP已经被设置为指示测试模式的正确电平。
因而,在所考虑的实施例中,用户可以通过设置端子TP和RP处的逻辑电平来对信号LCFA_REQ进行设置,并且一旦完成了配置CP2阶段,就经由通信接口IF_JTAG发送给定请求REQ(具有参考密钥RK)。事实上,因为一个或多个处理核心102还没有启动,所以这种请求不能经由软件提供,在这个阶段期间,不执行该软件。
具体地,在各种实施例中,一个或多个寄存器/一个或多个触发器1304仅响应于在步骤3002生成的复位而非响应于在步骤3014处生成的复位而被复位。
如图12所示,寄存器/触发器1304可以被配置为:当信号RESET被设置并且信号RM具有在步骤3002处设置的第一逻辑电平(例如,高)时,复位信号LCFA_REQ;以及当信号RESET被设置并且信号RM具有在步骤3016处设置的第二逻辑电平(例如,低)时,禁止信号LCFA_REQ的复位。
备选地,寄存器/触发器1304可以仅响应于复位信号RESETl(在步骤3002生成的复位信号/破坏性复位DR)而非复位信号RESET2(在步骤3016生成的复位信号/功能复位FR)而复位。
在各种实施例中,信号LCFA_REQ也被提供给复位电路116。下文关于生命周期编程电路1046对该反馈的操作进行更详细地描述。
在进入生命周期编程电路1046的细节之前,值得简要描述将数据编程到诸如闪存之类的非易失性存储器的方式。
通常,将数据写入非易失性存储器比将数据写入RAM更为复杂,其中一个单个写入指令将一些数据直接移动到RAM中,然后将数据立即锁存在存储器中。相反,在非易失性存储器的情况下,编程通常需要操作序列。
在各实施例中,为了对非易失性存储器进行编程,可能需要把存储器的电源电压设置为较高电压。这可能牵涉到电压稳定到新值之前的给定时间。同样,一旦编程操作完成,就应当移除较高电压。而且,单个编程/写入操作可能牵涉到复杂微操作序列来控制整个编程操作。原因是对于非易失性存储器,非期望模拟效应可能会因所使用的非易失性存储器技术而有所不同,这可能会阻碍编程操作的成功完成。
在各实施例中,在闪存的情况下,电池可能变得“耗尽”,这是电池已经失去其所捕获的电荷的条件;在这种情况下,电池沿着其所连接的位线驱动过多电流流动,并且极难恢复电池并将其带入经编程的状态。而且,可能需要专门算法来恢复所耗尽的电池。
因而,通常,处理核心102必须执行操作序列以将数据写入非易失性存储器104。
在各实施例中,处理核心102可以被配置为执行以下步骤用于将数据编程到非易失性存储器104:1)配置非易失性存储器104,以使其处于编程模式;2)提供要(经由存储器控制器100)编程到非易失性存储器104的数据;3)把非易失性存储器104的电源电压设置为较高(写入)电压;4)一直等待,直至编程操作完成;5)把非易失性存储器104的电源电压设置为较低(读取)电压;6)(经由存储器控制器100)执行非易失性存储器104的读取操作以验证数据是否已被正确编程;以及7)配置非易失性存储器104,以使其处于正常操作模式。
通常,通过经由软件指令从处理核心102向控制电路1040发送请求来执行上述操作。
在各实施例中,控制电路1040还可以管理寄存器接口,其中每个寄存器(诸如写入数据寄存器、读取数据寄存器、地址寄存器和控制寄存器)可能已经关联了相应地址。
在各实施例中,在第四步骤期间,执行存储器区域1048的实际编程操作。在该步骤期间,软件可以一直等待,直至非易失性存储器104完成编程。从软件的角度来看,这只是个简单的等待步骤,但实际上,在该时间框架期间,非易失性存储器104会执行复杂微操作序列,如给出短电压脉冲,然后比较当前电池与参考电池,如果电流不是目标电流,则给出另一脉冲,依此类推。通常,在正在被编程的电池与参考之间施加电池VI(电压-电流)特点中的不平衡比率,以使当在读取操作期间使用不平衡VI比率时,其标志是经编程的电池的电流已经达到与参考电池的电流相距的足够距离的结束操作会提供更大的余量(就经编程的电池与参考电池之间的当前距离而言)。本领域技术人员应当领会,这是对非易失性存储器的编程操作的简化,实际上,内部操作序列可能更为复杂,这取决于针对非易失性存储器所采用的技术类型。
因而,写入管理电路1044w必须执行微操作序列以实现编程操作。
为此,写入管理电路1044w可以使用硬件有限状态机或经由软件指令编程的微处理器来实现。
在各实施例中,微处理器可能已经关联了可编程电压源,用于设置存储器区域1048的电源电压;以及模数转换器,用于监测存储器区域1048等的给定电池的电压。
在各实施例中,微处理器的使用对于准许改进编程操作特别有用。
在各实施例中,这种微处理器准许(至少在开发阶段期间)使用不同序列或甚至更晚更新不同序列。这种由微处理器执行的微操作序列通常被称为“嵌入式算法”。
因此,微处理器提供比固定状态机更多的灵活性。这种微处理器可以仅用于管理更为复杂的写入操作,而读取操作仍然可以经由专用硬件电路1044r来执行。事实上,虽然微处理器提供了更大的灵活性,但这种微处理器通常比专用硬件电路具有更高的功耗。由于这个原因,微处理器(但对于管理写入操作的复杂状态机1044w也可能存在类似问题)在读取操作期间通常被关闭(或至少暂停)。事实上,在运行时期间,非易失性存储器104主要被读取而很少被写入。
在各实施例中,当处理核心102激活非易失性存储器104的编程模式时,该步骤可以接通非易失性存储器104的写入电路/微处理器1044w。
然而,这可能意味着生命周期编程电路1046也必须以某种方式激活写入电路1044w,例如,相应微处理器。事实上,如之前所提及的,控制电路1040通常仅响应于从存储器控制器100接收的一个或多个命令而激活写入电路1044w。
在各实施例中,控制电路1040被配置为仅在以下情况下激活写入电路1044w:接收到第一请求,其中第一请求激活编程模式,例如,通过设置控制电路1040的控制寄存器的位激活编程模式;以及第二请求是接收器,其中第二请求提供待写入数据,例如,通过将数据存储到控制电路1040的写入数据寄存器来提供待写入数据。
在各实施例中,这允许避免写入电路1044w由于错误的(隔离的)第一请求或第二请求而被激活。
因而,在各种实施例中,生命周期编程电路1046也必须以某种方式激活写入电路1044w以对非易失性存储器区域1048进行编程。因而,生命周期编程电路1046可以执行上文所提及的用于启动写入电路1044的操作。
相反,在本公开的各种实施例中,上文所描述的信号LCFA_REQ到复位电路116的反馈用于该目的。
具体地,在各种实施例中,在步骤3002或3014处的破坏性或功能性复位期间,实现写入电路1044w的诸如微处理器或状态机之类的电路也被激活例如以执行若干内部初始化,然后电路被停用,即,在各种实施例中,实现写入电路1044w的电路响应于在步骤3002处生成的复位和在步骤3014处生成的复位而被激活,并且一旦非易失性存储器104被初始化,实现写入电路1044的电路就被停用。
然而,如关于图7所描述的,在步骤3002处的复位之后,复位电路116激活配置阶段CP1,在该配置阶段CP1期间,读取配置数据CD和生命周期数据LCD。仅一旦读取了配置数据,可能还执行诊断阶段DP、其复位3014和其他配置阶段CP2,就可以在复位端子RP处经由信号把处理***10a维持处于复位阶段。因此,当可以经由通信接口IF_JTAG发送请求REQ并且验证电路130验证了请求REQ和附加条件COND2时,实现写入电路1044w的电路可能已经被停用。
在这方面,如之前所提及的,一个或多个寄存器/一个或多个触发器1304被配置为仅响应于步骤3002处的复位/破坏性复位DR而被复位,同时一个或多个寄存器/一个或多个触发器1304响应于步骤3014处的复位/功能复位FR而维持它们的值。因此,实现写入电路1044w的电路可以通过在步骤3014处开始功能复位FR来激活,即,复位电路116被配置为响应于信号LCFA_REQ被设置而在步骤3014开始功能复位。可选地,复位电路116还可以验证附加条件,诸如端子TP或端子RP的逻辑电平(参见验证电路130的相应描述)。
因此,当在步骤3014开始复位过程时,寄存器/触发器1304没有被复位,但是实现写电路1044w的电路被激活。
因而,在各种实施例中,实现写入电路1044w的电路可以被配置为当电路被激活时(例如,响应于复位),验证信号LCFA_REQ。而且,响应于确定信号LCFA_REQ被设置,写入电路1044w可以对存储器区域1048中的生命周期数据LCD进行编程,以将生命周期阶段提前到故障分析阶段。
具体地,一旦处理***10a被接通,复位电路116将在步骤3002处执行复位,并且开始配置阶段CPl(并且可选地诊断阶段DP、步骤3014处的第二复位、以及第二配置阶段CP2)。因而,当实现写入电路1044w的电路响应于步骤3002处的复位(以及可选地步骤3014处的复位)而被初始化时,信号LCFA_REQ未被设置(例如,为低)。
接下来,当验证电路130对信号LCFA_REQ进行设置时,该信号还将在步骤3014处触发新复位。具体地,如之前所提及的,在所考虑的实施例中,寄存器1304在步骤3014处的复位期间维持其内容。
因此,当实现写入电路1044w的电路响应于步骤3014处的复位而被初始化时,信号LCFA_REQ现在被设置(例如,为高)。
图13在这方面示出了编程电路1046的可能实施例。通常,如之前所提及的,信号LCFA_REQ还可以直接提供给写入电路1044(即,编程电路1046纯粹是可选的)。
然而,如图13所示,可以使用附加编程电路1046:在信号LCFA_REQ由多个寄存器/触发器提供的情况下,以经由电路1052通过组合信号LCFA_REQ生成信号LCFA_REQ',例如,通过把信号LCFA_REQ'设置为信号LCFA_REQ的大多数值的位值,诸如三票决定;或根据信号LCFA_REQ(或信号LCFA_REQ')和一个或多个可选的其他条件COND1经由电路134和1050确定信号FCFA。
在各实施例中,编程电路1046可以经由组合逻辑电路134和1050验证端子TP(即,信号TESTMODE)或端子RP的逻辑电平中的至少一个(参见验证电路130的相应描述);或在步骤3014处验证是否已经响应于功能复位FM(例如,通过验证信号RM的逻辑值)而激活了实现写入电路1044的电路。
在各实施例中,生命周期数据LCD的编程操作仅当写入电路例如经由编程电路1046在初始化阶段期间确定以下条件时才开始:信号LCFA_REQ的大多数位被设置;以及被施加到端子TP的信号TESTMODE被设置。
通常,虽然图13中未示出,但是信号LCFA_REQ、LCFA_REQ'或LCFA可以提供给微处理器1044w的寄存器接口,例如,实现写入电路1044w的微处理器的所谓的特殊功能寄存器(SFR)。通常,虽然附加条件COND1的验证经由硬件组合电路134或硬件组合电路1050示出,但是这些验证的至少一部分可以经由软件指令来执行。同样,(投票)电路1052的操作可以经由微处理器1044所执行的软件指令来执行。
通常,因为信号LCFA_REQ'可以用于向复位模块116发信号通知复位请求(即,复位电路116可以被配置为响应于信号LCFA_REQ'(而非信号LCFA_REQ)而启动功能复位,所以即使在软件实现方式中,也可以使用专用表决电路1052。
在各实施例中,类似表决电路可以直接在复位电路116中实现。
因此,在各种实施例中,电路1052可以对应于实现写入电路1044w的微处理器的寄存器接口,从而直接向微处理器提供(由寄存器1304提供的)信号LCFA_REQ。
优选地,信号LCFA_REQ的投票以及至少与电路1050处的附加条件的组合(以及可选地还有电路134的操作)直接经由软件指令执行。将所有信号LCFA_REQ镜像到微处理器1044的相应寄存器位(例如,3个位)的原因是为了保护该机制免受虚假激活的影响,这对于应用而言可能具有灾难性,因为设备将进入其中应用可能不再运行的故障分析阶段。
然而,在各种实施例中,根据ISO26262规范,非易失性存储器104内的微处理器未被分类为ASIL-D部件,最终它可能会发生故障。相反,ASIL-D微处理器以附加面积和功耗为代价。因此,通过读取信号LCFA_REQ的多个独立位并且经由软件指令实现表决,诸如三票决定,失败的概率显着降低。
如之前所提及的,当响应于信号LCFA_REQ而触发步骤3014的功能复位时,非易失性存储器104再次开始其自身的初始化,并且在该时间期间,因为信号LCFA_REQ维持其值,所以激活了把生命周期阶段提前到故障分析阶段的请求。
在这方面,因为生命周期数据LCD在非易失性存储器1048中的存储器位置固定并且把生命周期阶段提前到故障分析阶段的待编程签名也固定,所以无需附加信息来把生命周期阶段提前到故障分析阶段。如先前所描述的,如何对生命周期数据LCD进行编码并不特别相关。
在各实施例中,给定位序列和与故障分析阶段相关联的位子集相关联就已足够。因而,通过对相应位子集进行编程,生命周期阶段可以提前到故障分析阶段,而与先前生命周期阶段无关。然而,当使用更为复杂的编码方案时,写入电路1044也可以首先读取旧生命周期数据LCD。
通常,一旦写入电路1044完成了对生命周期数据LCD的编程,处理电路10a就需要再次读取生命周期数据LCD。然而,还需要复位一个或多个信号LCFA_REQ。
在各实施例中,这通过执行在步骤3000处开始的新复位来实现,从而在步骤3002处执行一个或多个寄存器1304的复位。
通常,新复位还可以手动执行(例如,一旦发送了正确请求REQ),用户可以等待给定时间,例如,超过1s,由此写入电路1044w完成对生命周期数据LCD的编程操作;解除断言复位端子RP处的信号;并且再次断言复位端子RP处的信号,从而在步骤3000处开始新复位。
因此,在各种实施例中,使循环阶段提前可以牵涉到以下各项:1)经由端子RP激活破坏性复位(步骤3002);2)响应于破坏性复位DR,配置模块108读取配置数据CD和生命周期数据LCD(配置阶段CP1),并且可选地执行其他操作,直至步骤3020;3)一旦终止了配置阶段CP1和可选的CP2,验证电路就被激活;4)为了具有足够的时间来提交请求,复位端子保持设置(步骤3020);5)使用正确密码提交请求REQ;6)一旦请求REQ被验证,信号LCFA_REQ就被设置;7)信号LCFA_REQ用于生成处理***10a的功能复位(步骤3016);8)响应于功能复位,实现写入电路1044w的电路被激活,并且执行其初始化;9)实现写入电路1044w的电路在初始化期间读取信号LCFA_REQ;10)写入电路1044w或编程电路1046验证信号LCFA_REQ的大部分位是否被设置;11)由于LCFA_REQ信号被设置,写入电路1044w写入生命周期数据LCD以提前到故障分析阶段;以及12)手动或自动开始新破坏性复位(步骤3002)。
通常,代替通过响应于一个或多个信号LCFA_REQ(或信号LCFA_REQ')生成复位来间接激活实现写入电路1044w的电路,响应于对一个或多个信号LCFA_REQ进行设置,实现写入电路1044w的电路还可以以其他方式被激活。
在各实施例中,实现写入电路1044w的电路可以响应于信号LCFA_REQ或信号LCFA_REQ'而直接被激活,例如,通过将一个或多个相应信号配置为实现写入电路1044w的电路的唤醒信号而直接被激活。
因而,本公开提出了一种新方案以容易把发生故障的设备提前到故障分析阶段,从而绕过通常涉及提前生命周期阶段的大部分电路***。通过采用所提出的解决方案,与经由应用软件进行生命周期编程的标准方法相比较,保证以更高概率提前到故障分析阶段。所采用的解决方案不会损害整体安全性,因为它仅在成功挑战秘密密码后才允许生命周期提前。另外,因为操作仅在复位阶段期间执行,所以所提出的解决方案不会损害安全性,这被ISO26262标准视为保证状态。最后,所提出的解决方案不包括可用性,因为条件集合得以落实到位以避免生命周期提前的任何虚假激活。
当然,在不损害本发明的原理的情况下,构造的细节和实施例可以相对于本文中纯粹通过示例描述和说明的内容发生很大的变化,而不因此背离如所附权利要求所定义的本发明的范围。
虽然上文中已经对把生命周期阶段提前到故障分析阶段的机制进行了描述,但是现代处理***可以备选地或附加地包括测试生命周期阶段。与故障分析阶段相比较,测试生命周期阶段对整体安全性的影响通常较小。因此,写入电路1044还可以提前到测试生命周期阶段,而非提前到故障分析阶段。事实上,与本公开相关的是使用单独的机制把生命周期阶段提前到与现场阶段相比处于活动状态的安全机制减少的阶段。
尽管已经详细描述了该说明书,但是应当理解,在没有背离由所附权利要求限定的本公开的精神和范围的情况下,可以进行各种改变、替换和变更。在各个附图中,相同的元件使用相同的附图标记表示。而且,由于本领域的普通技术人员根据本公开容易领会,现在存在的或以后将要开发的过程、机器、制造、物质组成、器件、方法或步骤可以执行与本文中所描述的对应实施例基本相同的功能或实现基本相同的结果,所以本公开的范围不旨在限于本文中所描述的特定实施例。因而,所附权利要求旨在将这些过程、机器、制造、物质组成、器件、方法或步骤包括在它们的范围内。
因此,说明书和附图要被简单视为由所附权利要求限定的本公开的说明,并且预期涵盖落入本公开的范围内的任何和所有修改、变化、组合或等同物。
Claims (20)
1.一种处理***,包括:
微处理器,被配置为执行软件指令;
硬件电路,被配置为根据经解码的生命周期数据改变操作;
复位电路,被配置为响应于确定经由复位端子接收的外部复位信号具有第一逻辑电平,使所述复位电路:
在复位阶段期间生成所述处理***的第一复位,
在配置阶段期间激活硬件配置电路,其中所述硬件配置电路读取被存储在非易失性存储器中的经编码的生命周期数据,对经编码的所述生命周期数据进行解码,并且将经解码的所述生命周期数据提供给所述硬件电路,以及
响应于确定所述外部复位信号在等待阶段期间具有第二逻辑电平而启动所述微处理器;
通信接口,在所述等待阶段期间被激活,并且被配置为接收请求;以及
硬件验证电路,被配置为响应于确定所述请求包括参考密码并且所述复位电路处于所述等待阶段,而生成生命周期提前请求信号,所述生命周期提前请求信号指示以下请求:使所述生命周期阶段提前到由经编码的所述生命周期数据指示的给定预定生命周期阶段。
2.根据权利要求1所述的处理***,其中所述非易失性存储器包括写入电路,所述写入电路被配置为:响应于确定所述生命周期提前请求信号被设置,写入被存储在所述非易失性存储器中的经编码的所述生命周期数据的一个或多个位,所述写入使所述生命周期阶段提前到所述给定预定生命周期阶段。
3.根据权利要求2所述的处理***,还包括测试模式端子,所述测试模式端子被配置为接收外部测试模式信号,并且其中所述硬件验证电路被配置为:仅当所述外部测试模式信号具有给定逻辑电平时,才生成所述生命周期提前请求信号。
4.根据权利要求2所述的处理***,还包括至少三个寄存器,其中所述生命周期提前请求信号被存储在所述至少三个寄存器中。
5.根据权利要求4所述的处理***,其中所述写入电路利用状态机来实现,所述状态机被配置为:
读取所述至少三个寄存器的内容;以及
响应于确定大部分位被设置,写入被存储在所述非易失性存储器中的经编码的所述生命周期数据的所述一个或多个位。
6.根据权利要求5所述的处理***,其中所述状态机是硬件状态机或第二微处理器中的一种,其中所述至少三个寄存器利用所述第二微处理器的寄存器接口来实现,并且其中所述第二微处理器被配置为经由所述第二微处理器执行的软件指令来读取所述至少三个寄存器的内容并且确定所述至少三个寄存器的所述大部分位的逻辑电平。
7.根据权利要求5所述的处理***,其中所述复位电路被配置为监测内部复位信号,并且响应于确定所述内部复位信号被设置,生成所述处理***的第二复位,其中所述至少三个寄存器被配置为响应于所述第一复位而被复位,并且响应于所述第二复位而维持由所述至少三个寄存器存储的值,并且其中所述内部复位信号对应于所述生命周期提前请求信号。
8.根据权利要求7所述的处理***,其中所述状态机被配置为响应于由所述复位电路生成的所述第一复位和所述第二复位而被激活,并且其中所述状态机被配置为响应于被激活而读取所述至少三个寄存器的内容。
9.根据权利要求1所述的处理***,还包括多个配置数据客户端,每个配置数据客户端具有用于存储配置数据的寄存器,其中所述非易失性存储器被配置为存储所述配置数据,并且其中所述硬件配置电路被配置为在所述配置阶段期间从所述非易失性存储器读取所述配置数据,并且将所述配置数据传输到所述多个配置数据客户端。
10.根据权利要求9所述的处理***,其中所述硬件验证电路被配置为从配置数据客户端接收启用标志,并且其中所述硬件验证电路被配置为仅当所述启用标志具有给定逻辑电平时,才生成所述生命周期提前请求信号。
11.根据权利要求9所述的处理***,其中所述硬件验证电路被配置为从配置数据客户端接收所述参考密码。
12.根据权利要求1所述的处理***,其中所述通信接口是串行通信接口。
13.根据权利要求1所述的处理***,其中所述通信接口是联合测试行动组JTAG接口。
14.一种设备,包括多个处理***,每个处理***包括:
微处理器,被配置为执行软件指令;
硬件电路,被配置为根据经解码的生命周期数据改变操作;
复位电路,被配置为响应于确定经由复位端子接收的外部复位信号具有第一逻辑电平,使所述复位电路:
在复位阶段期间生成所述处理***的第一复位,
在配置阶段期间激活硬件配置电路,其中所述硬件配置电路读取被存储在非易失性存储器中的经编码的生命周期数据,对经编码的所述生命周期数据进行解码,并且将经解码的所述生命周期数据提供给所述硬件电路,以及
响应于确定所述外部复位信号在等待阶段期间具有第二逻辑电平而启动所述微处理器;
通信接口,在所述等待阶段期间被激活,并且被配置为接收请求;以及
硬件验证电路,被配置为响应于确定所述请求包括参考密码并且所述复位电路处于所述等待阶段,而生成生命周期提前请求信号,所述生命周期提前请求信号指示以下请求:使所述生命周期阶段提前到由经编码的所述生命周期数据指示的给定预定生命周期阶段。
15.根据权利要求14所述的设备,其中所述设备是车辆。
16.根据权利要求14所述的设备,其中每个处理***经由通信***被连接到另一处理***。
17.根据权利要求14所述的设备,其中所述非易失性存储器包括写入电路,所述写入电路被配置为:响应于确定所述生命周期提前请求信号被设置,写入被存储在所述非易失性存储器中的经编码的所述生命周期数据的一个或多个位,所述写入使所述生命周期阶段提前到所述给定预定生命周期阶段。
18.一种用于操作处理***的方法,包括:
响应于确定经由复位端子接收的外部复位信号具有第一逻辑电平,通过复位电路在复位阶段期间生成所述处理***的第一复位,
在配置阶段期间通过所述复位电路激活硬件配置电路,其中所述硬件配置电路读取被存储在非易失性存储器中的经编码的生命周期数据,对经编码的所述生命周期数据进行解码,并且将经解码的所述生命周期数据提供给硬件电路,所述硬件电路根据经解码的生命周期数据改变操作;以及
响应于确定所述外部复位信号在等待阶段期间具有第二逻辑电平,启动所述处理***的微处理器;
在所述等待阶段期间激活通信接口;
在所述等待阶段期间接收请求;以及
响应于确定所述请求包括给定参考密码并且所述复位电路处于所述等待阶段,通过硬件验证电路生成生命周期提前请求信号,所述生命周期提前请求信号指示以下请求:使所述生命周期阶段提前到由经编码的所述生命周期数据指示的给定预定生命周期阶段。
19.根据权利要求18所述的方法,还包括:响应于确定所述生命周期提前请求信号被设置,通过写入电路写入被存储在所述非易失性存储器中的经编码的所述生命周期数据的一个或多个位,所述写入使所述生命周期阶段提前到所述给定预定生命周期阶段。
20.根据权利要求18所述的方法,还包括:
将所述第一逻辑电平施加到所述处理***的所述复位端子,其中所述复位电路执行所述复位阶段、所述配置阶段和所述等待阶段;以及
经由所述处理***的所述通信接口发送所述请求,所述请求包括所述给定参考密码,其中所述硬件验证电路生成所述生命周期提前请求信号。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT102021000007475 | 2021-03-26 | ||
IT102021000007475A IT202100007475A1 (it) | 2021-03-26 | 2021-03-26 | Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento |
US17/654,537 | 2022-03-11 | ||
US17/654,537 US11915008B2 (en) | 2021-03-26 | 2022-03-11 | Processing system, related integrated circuit, device and method |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115129511A true CN115129511A (zh) | 2022-09-30 |
Family
ID=76375528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210307487.2A Pending CN115129511A (zh) | 2021-03-26 | 2022-03-25 | 处理***、相关集成电路、设备和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11915008B2 (zh) |
EP (1) | EP4064100B1 (zh) |
CN (1) | CN115129511A (zh) |
IT (1) | IT202100007475A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4138343B1 (en) * | 2021-08-20 | 2024-02-21 | STMicroelectronics Application GmbH | Processing system, related integrated circuit, device and method |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT201700062788A1 (it) | 2017-06-08 | 2018-12-08 | Stmicroelectronics Application Gmbh | Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento |
IT201700082176A1 (it) | 2017-07-19 | 2019-01-19 | Stmicroelectronics Application Gmbh | Sistema di elaborazione, relativo circuito integrato e procedimento |
IT201900005020A1 (it) | 2019-04-03 | 2020-10-03 | Stmicroelectronics Application Gmbh | Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento |
-
2021
- 2021-03-26 IT IT102021000007475A patent/IT202100007475A1/it unknown
-
2022
- 2022-03-11 US US17/654,537 patent/US11915008B2/en active Active
- 2022-03-14 EP EP22161788.9A patent/EP4064100B1/en active Active
- 2022-03-25 CN CN202210307487.2A patent/CN115129511A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
IT202100007475A1 (it) | 2022-09-26 |
EP4064100B1 (en) | 2024-07-31 |
US11915008B2 (en) | 2024-02-27 |
EP4064100A1 (en) | 2022-09-28 |
US20220308892A1 (en) | 2022-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6433198B2 (ja) | 安全なブートromパッチのためのシステム及び方法 | |
JP5540155B2 (ja) | プラットフォーム独立メモリ論理の提供 | |
US11210161B2 (en) | Processing system, related integrated circuit, device and method | |
US9304943B2 (en) | Processor system and control method thereof | |
KR20060032954A (ko) | 액세스 허용을 결정하는 방법 및 장치 | |
US10740041B2 (en) | Processing system, related integrated circuit, device and method | |
WO2016176126A1 (en) | Secure access in a microcontroller system | |
US20220318109A1 (en) | Processing system, related integrated circuit, device and method | |
TW201220040A (en) | Method to ensure platform silicon configuration integrity | |
JP7091486B2 (ja) | 電子制御装置、電子制御装置のセキュリティ検証方法 | |
US11915008B2 (en) | Processing system, related integrated circuit, device and method | |
EP3432190B1 (en) | Processing system and related integrated circuit for handling password management | |
US10922015B2 (en) | Processing system, related integrated circuit, device and method | |
KR20180066601A (ko) | 메모리 시스템의 구동 방법 | |
CN116893930A (zh) | 处理***、相关集成电路以及设备和方法 | |
CN115129510A (zh) | 处理***、相关集成电路、设备和方法 | |
EP4296850B1 (en) | Processing system, related integrated circuit, device and method | |
EP4187415A1 (en) | Processing system, related device and method for protecting latches or flip-flops of a register | |
CN115145753A (zh) | 处理***、相关集成电路、设备和方法 | |
US20240004804A1 (en) | Method for managing access rights of memory regions and corresponding system on chip |
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 |