CN117271232A - 处理系统、相关集成电路、设备和方法 - Google Patents
处理系统、相关集成电路、设备和方法 Download PDFInfo
- Publication number
- CN117271232A CN117271232A CN202310731330.7A CN202310731330A CN117271232A CN 117271232 A CN117271232 A CN 117271232A CN 202310731330 A CN202310731330 A CN 202310731330A CN 117271232 A CN117271232 A CN 117271232A
- Authority
- CN
- China
- Prior art keywords
- boot
- data
- configuration
- configuration data
- circuit
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 217
- 238000000034 method Methods 0.000 title claims abstract description 13
- 230000015654 memory Effects 0.000 claims abstract description 140
- 230000004044 response Effects 0.000 claims description 52
- 238000004891 communication Methods 0.000 claims description 35
- 238000001514 detection method Methods 0.000 claims description 14
- 238000012937 correction Methods 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 claims description 10
- 125000004122 cyclic group Chemical group 0.000 claims 1
- 230000026676 system process Effects 0.000 abstract 1
- 101000937756 Homo sapiens Box C/D snoRNA protein 1 Proteins 0.000 description 9
- 101001139126 Homo sapiens Krueppel-like factor 6 Proteins 0.000 description 9
- 102100020679 Krueppel-like factor 6 Human genes 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 8
- 238000012795 verification Methods 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 4
- 101000851696 Homo sapiens Steroid hormone receptor ERR2 Proteins 0.000 description 3
- 102100036831 Steroid hormone receptor ERR2 Human genes 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 108010032363 ERRalpha estrogen-related receptor Proteins 0.000 description 2
- 101150033269 ESRRG gene Proteins 0.000 description 2
- 102100031855 Estrogen-related receptor gamma Human genes 0.000 description 2
- 101100333774 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ERR3 gene Proteins 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 102100036832 Steroid hormone receptor ERR1 Human genes 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Classifications
-
- 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/2247—Verification or detection of system hardware configuration
-
- 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/4405—Initialisation of multiprocessor systems
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
本公开实施例涉及处理系统、相关集成电路、设备和方法。在实施例中,当处理系统接通时,复位管理电路执行复位、配置和软件运行时阶段,其中一个或多个微处理器在相应开始地址处开始。在配置阶段,电路从非易失性存储器中读取引导记录,并且将其存储到寄存器。电路从非易失性存储器中依次读取配置数据的数据记录,并且为每个数据记录生成写入请求,以将相应数据记录的数据存储到具有在相应数据记录中指示的相关联的地址数据的第二电路。处理系统处理引导记录和由第二电路提供的引导配置数据,以选择性地在默认开始地址处或由引导配置数据指示的开始地址处开始预定微处理器,或者在由引导记录指示的相应开始地址处开始一个或多个微处理器。
Description
相关申请的交叉引用
本申请要求于2022年6月21日提交的第102022000013099号意大利申请的优先权,该申请通过引用整体并入本文。
技术领域
本公开的实施例涉及用于配置多核处理系统(诸如多核微控制器)的引导阶段的解决方案。
背景技术
图1示出了诸如车辆电子系统的典型的电子系统,该电子系统包括多个处理系统10,诸如嵌入式系统或集成电路(例如,现场可编程门阵列(FPGA)、数字信号处理器(DSP)或微控制器(例如,专用于汽车市场))。
例如,在图1中示出了通过合适的通信系统20连接的三个处理系统101、102和103。例如,通信系统可以包括车辆控制总线(诸如控制器局域网(CAN)总线)和经由网关连接到车辆控制总线的可能的多媒体总线(诸如媒体导向系统传输(MOST)总线)。通常,处理系统10位于车辆的不同位置处,并且可以包括例如引擎控制单元、变速器控制单元(TCU)、防抱死制动系统(ABS)、车身控制模块(BCM)或导航或多媒体音频系统。因此,一个或多个处理系统10可以实现实时控制和调节功能。这些处理系统通常被标识为电子控制单元。
在这方面,预计未来几代这样的处理系统10(例如,适用于汽车应用的微控制器)将表现出复杂性的增加,这主要是由于所请求的功能(新协议、新特征等)的数目不断增加、以及执行条件的严格限制(例如,更低的功耗、增加的计算能力和速度等)。例如,最近提出了更复杂的多核处理系统10。例如,这样的多核处理系统可以用于执行(并行)图1所示的处理系统10中的若干处理系统10,诸如若干车辆ECU。
图2示出了处理系统10的示例,诸如多核处理系统。具体地,在所考虑的示例中,处理系统10包括连接到(片上)通信系统114的一个或多个处理核心102,诸如n个处理核心1021……102n。例如,在实时控制系统的上下文中,处理核心1021……102n可以是ARM核心。通常,通信系统114可以包括一个或多个总线系统,例如,基于高级可扩展接口(AXI)总线架构或片上网络(NoC)。
例如,如处理核心1021中所示,每个处理核心102可以包括微处理器1020和通信接口1022,该通信接口1022被配置为管理微处理器1020与通信系统114之间的通信。通常,接口1022是主接口,该主接口被配置为将给定(读取或写入)请求从微处理器1020转发到通信系统114,并且将可选的响应从通信系统114转发到微处理器1020。然而,通信接口1022还可以包括从接口。
例如,以这种方式,第一微处理器1020可以请求第二微处理器1020(经由第一微处理器的通信接口1022、通信系统114和第二微处理器的通信接口1022)。通常,每个处理核心1021……102n可以包括另外的本地资源,诸如一个或多个本地存储器1026,通常被标识为紧密耦合存储器(TCM)。
通常,处理核心102被布置为与一个或多个非易失性存储器104或一个或多个易失性存储器104b交换数据。通常,存储器104或104b可以与处理核心102集成在单个集成电路中,或者存储器104或104b可以是单独的集成电路的形式,并且例如经由印刷电路板的迹线连接到处理核心102。
具体地,在多核处理系统10中,这些存储器通常是系统存储器,即,为处理核心1021……102n共享。为此目的,与存储器104或104b的通信可以经由连接到通信系统114的一个或多个存储器控制器100来执行。如前所述,每个处理核心102可以包括一个或多个本地存储器1026。
例如,由(多个)微处理器1020执行的软件通常存储在非易失性(程序)存储器104中,诸如闪存或EEPROM,即,存储器104被配置为存储处理单元102的固件,其中固件包括要由微处理器102执行的软件指令。通常,非易失性存储器104也可以用于存储其它数据,诸如配置数据,例如校准数据。相反,诸如随机存取存储器(RAM)等易失性存储器104b可以存储临时数据。
通常,通常,处理系统10还包括例如选自以下各项中的一种或多种(硬件)资源/外围设备106:一个或多个通信接口,例如,用于经由通信系统20来交换数据,诸如通用异步接收器/传输器(UART)、串行外围接口总线(SPI)、集成电路间(I2C)、控制器局域网(CAN)总线或以太网接口、或调试接口;或者一个或多个模数转换器或数模转换器;或者一个或多个专用数字组件,诸如硬件定时器或计数器、或密码协处理器;或者一个或多个模拟组件,诸如比较器、传感器,诸如温度传感器等;或者一个或多个混合信号组件,诸如PWM(脉宽调制)驱动器。
资源106通常经由相应通信接口1062(诸如外围桥接器)连接到通信系统114。例如,为此目的,通信系统114实际上可以包括高级微控制器总线架构(AMBA)高性能总线(AHB)和用于将资源/外围设备106连接到AMBA AHB总线的高级外围总线(APB)。通常,通信接口1062至少包括从接口。例如,以这种方式,处理核心102可以向资源106发送请求,并且资源返回给定数据。通常,一个或多个通信接口1062可以包括主接口。
例如,在资源必须开始通信以经由(读取或写入)请求与连接到通信系统114的另一电路(诸如资源106或处理核心102)交换数据的情况下,这种通常被标识为集成直接存储器访问(DMA)控制器的主接口可以是有帮助的。
通常,这样的处理系统10包括一个或多个通用DMA控制器110。
例如,如图2所示,DMA控制器110可以用于基于从资源106接收的请求来直接与存储器(例如,存储器104b)交换数据。
例如,以这种方式,通信接口可以直接从存储器104b中读取数据(经由DMA控制器110),并且传输这些数据,而无需与处理单元102交换另外的数据。通常,DMA控制器110可以经由通信系统114或一个或多个专用通信信道与存储器通信。
在这点上,无论处理系统10的复杂性如何(例如,关于处理核心102的数目或资源106的数目和类型),典型的处理系统还包括复位管理电路116。
例如,这样的复位管理电路116可以被配置为接收指示给定事件的一个或多个复位请求信号RT,诸如信号RT1、……、RTm。例如,每个复位请求信号RT可以选自以下各项:由处理系统10的电源监测电路提供的复位请求信号,其中当处理系统10a的电源电压已经接通时,电源监测电路断言复位请求信号RT;由相应复位端子(诸如包括处理系统10的相应集成电路的引脚或焊盘)提供的复位请求信号;由被配置为经由软件指令来断言相应复位请求信号的处理核心102、特别是相应微处理器1020提供的复位请求信号;以及由故障收集和错误管理电路提供的复位请求信号,该故障收集和错误管理电路被配置为根据一个或多个错误信号ERR(诸如由存储器控制器100、处理核心102、资源106或DMA控制器提供的错误信号)来断言相应复位请求信号。
响应于(多个)复位请求信号RT,复位电路116断言一个或多个复位信号RST,诸如复位信号RST1、……、RSTp。例如,每个存储器控制器100可以接收复位信号;每个处理核心102可以接收复位信号;每个资源106可以接收复位信号;或者每个DMA控制器110可以接收复位信号。
通常,复位可以被应用于整个处理系统10或处理系统10的个体电路。例如,为了生成处理系统10的系统复位,复位管理电路116可以同时地或根据给定序列来断言所有复位信号RST。相反,为了生成个体电路或一组电路的复位,复位电路116可以断言相应复位信号RST。例如,响应于复位信号RST,相应电路通常复位相应电路的一个或多个(通常是全部)寄存器,从而使相应电路进入预定状态。
例如,响应于复位,例如,当相应复位信号再次被解除断言时,处理核心102的微处理器1020开始相应软件指令的执行。如上所述,由(多个)微处理器1020执行的软件通常存储在非易失性程序存储器104中。因此,在使用共享存储器104的多核处理系统的情况下,每个微处理器1020通常被配置为从相应的开始或启动地址开始软件指令的执行,例如,相应的开始/启动码所在的地址。在大多数处理系统10中,对于每个微处理器1020,该地址通常是不同的,即,唯一的。
例如,大多数旧的微处理器使用固定开始地址,这表示启动码必须精确地在该地址处被编程。相反,现代微处理器1020经常使用可配置开始地址,其中处理系统10的开始地址可以在硬件中配置。此外,各种现有解决方案基于指向某个初始化/引导软件的固定开始地址,其中该初始化/引导软件被配置为设置不同主应用入口点。
据观察,上述基于硬件的解决方案通常需要更加灵活、稳健和高效。相反,现有的基于软件的解决方案可能需要遵守关于软件开发和运行时错误管理的ISO26262要求,这在在初始化/引导软件执行期间实现目标安全性级别方面带来了问题。
发明内容
鉴于上述情况,本公开的各种实施例提供了用于配置多核处理系统的引导阶段的更灵活的解决方案。
根据一个或多个实施例,上述目的通过具有权利要求中具体阐述的特征的处理系统来实现。此外,实施例涉及相关的集成电路、设备和方法。
如前所述,本公开的各种实施例涉及处理系统,该处理系统包括多个微处理器。每个微处理器被配置为从相应开始地址开始软件指令的执行。
在各种实施例中,当处理系统接通时,电源监测电路生成复位请求信号。复位管理电路被配置为接收复位请求信号。具体地,响应于复位请求信号,复位管理电路依次执行复位阶段、配置阶段和软件运行时阶段。具体地,在软件运行时阶段期间,处理系统被配置为根据引导配置数据在相应开始地址处开始一个或多个微处理器。
具体地,在各种实施例中,处理系统包括被配置为存储第一引导配置数据(包括引导记录)的一个或多个寄存器。引导记录被配置为针对每个微处理器指示要在相应开始地址处开始的一个或多个微处理器。
此外,在各种实施例中,处理系统包括被配置为存储配置数据的多个配置数据客户端电路。每个配置数据客户端电路具有相关联的相应地址数据,其中每个配置数据客户端电路被配置为接收写入请求,并且当写入请求包括与与配置数据客户端电路相关联的地址数据相对应的地址数据时,将写入请求中包括的数据存储到配置数据客户端电路的寄存器。具体地,在各种实施例中,一个或多个配置数据客户端电路被配置为提供第二引导配置数据。第二引导配置数据指示处理系统应当使用默认引导配置还是用户定义的引导配置、以及开始地址。
因此,在各种实施例中,一个或多个非易失性存储器被布置为存储第一引导配置数据,包括预定存储器位置处的引导记录和数据记录形式的配置数据,其中配置数据的每个数据记录包括与配置数据客户端电路中的一个相关联的地址数据和要被存储到相应配置数据客户端电路的相应数据。
在各种实施例中,在配置阶段期间,硬件配置电路因此被配置为从一个或多个非易失性存储器的预定存储器位置中读取引导记录并且将引导记录存储在一个或多个寄存器中。例如,在各种实施例中,硬件配置电路被配置为确定预定存储器位置是否已经存储有效引导记录,并且响应于确定预定存储器位置已经存储有效引导记录,从一个或多个非易失性存储器中读取引导记录并且将引导记录存储到一个或多个寄存器。
例如,为此目的,硬件配置电路可以依次访问一个或多个非易失性存储器中的多个引导记录槽,直到引导记录槽中的一个已经存储有效引导记录。
例如,为此目的,硬件配置电路可以确定引导记录的一个或多个有效性标志是否被断言。
此外,在各种实现中,硬件配置电路被配置为从一个或多个非易失性存储器中依次读取配置数据的数据记录,并且为每个数据记录生成相应写入请求以将相应数据记录的数据存储到具有在相应数据记录中指示的地址数据的配置数据客户端电路。
因此,在各种实施例中,处理系统可以根据存储到一个或多个寄存器和配置数据客户端电路的数据来开始一个或多个微处理器。具体地,在各种实施例中,硬件配置或复位管理电路被配置为验证存储到一个或多个配置数据客户端电路的第二引导配置数据指示处理系统应当使用默认引导配置还是用户定义的引导配置。此外,硬件配置或复位管理电路被配置为验证一个或多个寄存器是否已经存储有效引导记录。
例如,响应于确定处理系统应当使用默认开始配置,处理系统可以在默认开始地址处开始预定微处理器。例如,默认开始地址可以对应于固定开始地址或由第二引导配置数据提供的开始地址的复位值。
此外,响应于确定处理系统应当使用用户定义的引导配置并且一个或多个寄存器尚未存储有效引导记录,处理系统可以在由第二引导配置数据指示的开始地址处开始预定微处理器。在这种情况下,引导固件可以存储在一个或多个非易失性存储器中,其中引导固件的开始地址对应于由第二引导配置数据指示的开始地址。在这种情况下,硬件配置电路还可以被配置为确定开始地址是否已经存储在一个或多个配置数据客户端电路中。在这种情况下,响应于确定开始地址已经存储在一个或多个配置数据客户端电路中,处理系统可以在由第二引导配置数据指示的开始地址处开始预定微处理器。相反,响应于确定开始地址尚未存储在一个或多个配置数据客户端电路中,处理系统可以在固定开始地址或由第二引导配置数据提供的开始地址的复位值处开始预定微处理器。
例如,在各种实施例中,该引导固件包括软件指令,该软件指令当在预定微处理器上执行时用于从一个或多个寄存器中读取引导记录,分析引导记录以确定要开始的一个或多个微处理器,并且对于每个要开始的微处理器,确定相应开始地址,并且在相应开始地址处开始一个或多个微处理器,即,引导固件可以使用引导记录经由软件指令开始相应微处理器。
相反,响应于确定处理系统应当使用用户定义的引导配置并且一个或多个寄存器已经存储有效引导记录,硬件配置电路或复位管理电路可以在由存储到一个或多个寄存器的引导记录指示的相应开始地址处(直接在硬件中)开始一个或多个微处理器。
在各种实施例中,对于每个要开始的微处理器,引导记录包括指示要验证的相应数据量的数据。在这种情况下,处理系统可以被配置为对于要开始的每个微处理器,从由引导记录指示的开始地址开始读取要验证的相应数据量。接下来,处理系统可以针对读取的数据量计算散列码、CRC码或签名,并且将计算的散列码、RC码或签名与期望参考值进行比较。例如,当计算的散列码、CRC码或签名不对应于期望参考值时,处理系统可以断言错误信号。例如,该验证可以在硬件中执行(在开始微处理器之前),或者当使用引导固件时,经由引导固件的相应软件指令来执行。
附图说明
现在将参考附图描述本公开的实施例,附图纯粹通过非限制性示例的方式提供,在附图中:
图1示出了包括多个处理系统的电子系统的示例;
图2示出了处理系统的示例;
图3示出了包括硬件配置电路和存储有引导配置数据的非易失性存储器的处理系统的实施例;
图4示出了图3的硬件配置电路的实施例;
图5示出了包括硬件配置电路和存储有引导配置数据的一个或多个非易失性存储器的处理系统的另一实施例;
图6示出了图5的处理系统的操作的实施例;以及
图7示出了硬件配置电路和非易失性存储器的实施例。
具体实施方式
在以下描述中,给出了很多具体细节,以提供对实施例的全面理解。实施例可以在没有一个或多个具体细节的情况下被实践,或者使用其它方法、组件、材料等实践。在其它情况下,公知的结构、材料或操作没有被详细地示出或描述,以避免模糊实施例的各方面。
本说明书自始至终对“一个实施例”或“实施例”的引用是指结合该实施例描述的特定的特征、结构或特性被包括在至少一个实施例中。因此,短语“在一个实施例中”或“在实施例中”在本说明书的各个地方出现的不一定都是指同一实施例。此外,在一个或多个实施例中,特定特征、结构或特性可以以任何合适的方式组合。
本文中提供的标题仅为方便目的,并不解释实施例的范围或含义。
在以下图3至图7中,已经关于图1至图2描述的部件、元件或组件由先前在这样的图中使用的相同附图标记来表示;以下将不重复对这样的先前描述的元件的描述,以免覆盖本详细描述。
如前所述,本公开的各种实施例提供了用于配置多核处理系统的引导阶段的解决方案。关于多核处理系统的一般描述,可以参考图1和图2的先前描述。
图3示出了根据本说明书的多核处理系统10a的实施例。
具体地,图3中示出了n个微处理器1020,即微处理器10201、……、1020n。如图2所示,这样的微处理器1020可以是一个或多个处理核心102的一部分。
在所考虑的实施例中,处理系统10a包括复位管理电路116a。通常,如上所述,处理系统10a还可以包括一个或多个其它电路,这些电路在图3中未示出,诸如一个或多个资源106、一个或多个DMA控制器110、一个或多个存储器控制器100、故障收集和错误管理电路等。
具体地,在所考虑的实施例中,复位管理电路116a被配置为接收由电源监测电路115提供的复位请求信号RT。例如,电源监测电路115可以被配置为当处理系统10a的电源电压VDD超过给定阈值电压时断言复位请求信号RT或在复位请求信号RT中生成触发。通常,如前面所描述的,复位管理电路116a还可以接收一个或多个另外的复位请求信号,例如,该复位请求信号是由复位端子、微处理器1020或故障收集和错误管理电路提供的。
因此,响应于接通处理系统10a,即,响应于复位请求信号RT(以及可能的其它复位请求信号),复位管理电路116a被配置为执行复位过程。例如,在各种实施例中,响应于(多个)复位请求信号RT,复位管理电路116执行(至少)复位步骤/阶段,在复位步骤/阶段,复位电路116a执行处理系统10a的系统复位;以及软件运行时阶段,在软件运行时阶段,复位电路116a开始一个或多个微处理器1020,从而开始执行相应软件指令。
通常,复位管理电路116a还可以被配置为执行更复杂的复位,例如,复位管理电路116a可以在复位步骤与软件运行时阶段之间执行诊断阶段,在该诊断阶段,处理系统10a的诊断电路执行处理系统10a的一个或多个测试;并且在诊断阶段之后执行可选的另外的复位步骤/阶段,在该另外的复位步骤/阶段,复位电路116执行处理系统10a的一个或多个(或全部)电路的另外的复位。
通常,微处理器1020可以使用相应复位信号RST1020或附加的开始信号来开始。例如,当使用微处理器1020的复位信号RST1020时,复位管理电路116a可以被配置为在复位阶段(以及可选的诊断阶段和可选的另外的复位阶段)期间断言复位信号RST1020,然后解除断言要开始的一个或多个微处理器1020的复位信号RST1020,从而开始软件运行时阶段。在这种情况下,已经开始的微处理器1020中的一个可以开始另一微处理器1020,例如,通过向复位管理电路116a发送请求以解除断言要开始的另外的微处理器1020的相应复位信号RST1020。
相反,当使用专用开始信号时,复位管理电路116a可以被配置为在复位阶段(以及可选地在诊断阶段或另外的复位阶段)期间断言微处理器1020的复位信号RST1020,然后解除断言所有微处理器1020的复位信号RST1020。接下来,复位管理电路116a可以断言要开始的一个或多个微处理器1020的开始信号,从而开始软件运行时阶段。在这种情况下,已经开始的微处理器1020中的一个可以通过断言相应开始信号来开始另一微处理器1020,例如,通过向复位管理电路116a发送请求以断言相应开始信号。
根据应用,处理系统10a的其它电路可以保持复位状态,也可以在软件运行时阶段之前开始。例如,在(第一)复位步骤结束时,存储器控制器110、诊断电路或故障收集和错误管理电路可能已经被激活/启用。
因此,在所考虑的实施例中,在复位过程完成之后,一个或多个微处理器1020(通常只有一个微处理器1020)开始。相反,其它微处理器1020稍后通过某种软件或硬件机制被唤醒。在复位之后开始的一个或多个微处理器1020(在下文中也被标识为引导CPU)具有在仍处于复位或停止状态的其它微处理器1020中的一个或多个被唤醒之前配置整个处理系统10a及其应用软件的任务。例如,(多个)引导CPU可以运行特定软件以测试处理系统10a的硬件的某个部分,诸如一些安全性检查或RAM初始化。此外,在安全性很重要的处理系统10a中,诸如对于汽车应用,启动/引导阶段可以保证由目标ASIL级别(ASIL-D)预见的故障度量,如ISO26262标准所要求的。引导CPU硬件和启动/初始化软件应当匹配相同ASIL度量级别。
在处理系统10a包括硬件保密性模块(HSM)的情况下,这样的HSM的微处理器通常也在(第一)复位阶段之后开始,通常与(多个)引导CPU同时开始,并且开始执行在HSM模块本身内编程的一些码。因此,虽然以下部分中的描述主要集中在单个引导CPU上,但本文中公开的解决方案也可以扩展到处理系统10a的其它微处理器(诸如HSM CPU)或多个微处理器1020的启动。
如图3所示,在各种实施例中,微处理器1020、特别是在软件运行时阶段开始时要开始的一个或多个微处理器1020(引导CPU),被配置为使用引导配置数据BCD。具体地,在各种实施例中,处理系统10a包括硬件配置电路108,该硬件配置电路108被配置为通过从一个或多个非易失性存储器104a(诸如非易失程序存储器104)中读取引导配置数据BCD'来生成引导配置BCD。通常,如将在以下更详细地描述的,引导配置数据BCD可以对应于引导配置数据BCD',或者配置电路108可以通过处理引导配置数据BCD'来生成引导配置数据BCD。
因此,在各种实施例中,复位管理电路116a被配置为在复位步骤/阶段与软件运行时阶段之间(例如,在诊断阶段(当使用时)之前)执行配置阶段。例如,如图3示意性地所示,复位管理电路116a可以断言配置阶段开始信号SCP以开始配置阶段。例如,一旦(第一)复位步骤完成,复位管理电路116a就可以断言信号SCP。
接下来,硬件配置电路108从非易失性存储器104a中读取引导配置数据BCD',并且生成引导配置数据BCD。
如图3所示,在各种实施例中,硬件配置电路108还可以从非易失性存储器104a中读取另外的配置数据CD。
一旦硬件配置电路108已经读取引导配置数据BCD'和可选的另外的配置数据CD,硬件配置电路108就可以断言配置阶段结束信号ECP,以发信号通知配置阶段的结束。因此,在各种实施例中,复位管理电路116a可以响应于确定信号ECP被断言而开始下一/后续阶段,例如软件运行时阶段或诊断阶段。
例如,类似的复位管理电路116a的操作(包括复位过程的相应阶段和处理系统内配置数据CD的管理)在意大利专利申请第10202100007379号公开,该申请通过引用并入本文。
在这点上,图4示出了根据文献10202100007379的公开的配置模块108与配置数据客户端112之间的通信的可能实施例。
具体地,在所考虑的实施例中,硬件配置模块108访问包含配置数据CD的非易失性存储器中的保留存储器区域,读取配置数据CD,并且将配置数据CD传输到处理系统10a内的相应电路110。通常,电路110可以对应于处理系统10a中需要配置数据的任何电路。它可以对应于例如处理单元102/微处理器1020、硬件资源/外围设备106、复位管理电路116a或存储器控制器100。
具体地,为了分发配置数据CD,每个电路110可以具有相关联的一个或多个相应配置数据客户端电路112。例如,图4中示出了三个电路110a、110b和110c以及三个配置数据客户端112a、112b和112c。通常,每个配置数据客户端112可以与单个硬件电路110唯一相关联,并且仅将配置数据提供给相关联的硬件块110,例如,特定硬件资源106,或者可以与多个硬件块110(例如,多个硬件资源106)相关联。通常,配置数据客户端112a、112b和112c也可以集成到相应块110a、110b和110c中。
因此,在各种实施例中,硬件配置电路108(在下文中也被标识为系统状态和配置模块(SSCM))被配置为从一个或多个非易失性存储器104a中读取配置数据CD,并且多个配置数据客户端112被配置为从电路108接收相应配置数据CD并且将它们提供给需要配置数据的多个电路110。
例如,在所考虑的实施例中,配置电路108包括数据读取电路1080和调度电路1082,数据读取电路1080被配置为例如经由存储器控制器100从存储器104a中读取配置数据CD,调度电路1082被配置为将配置数据传输到配置数据客户端112。
例如,在各种实施例中,配置数据CD按照给定格式以帧的形式存储,该给定格式在以下称为设备配置格式(DCF)。例如,在各种实施例中,每个数据帧包括两个字段:称为DCF格式有效载荷的有效载荷(即,真实数据)、以及可能的可以用于标识数据的接收方的附加数据属性(称为DCF格式属性),其中接收方是表示DCF客户端的配置数据客户端112中的一个。例如,数据属性可以由16或32位组成,其中给定数目的位指定配置数据客户端112中的一个的地址,并且有效载荷可以由16或32位组成。例如,在各种实施例中,数据读取电路1080被配置为从存储器104a中读取64位的块,其中第一32位包含数据属性(包括配置数据客户端的地址),并且第二32位具有要传输到在数据属性中指定的地址的配置数据。在各种实施例中,地址可以对应于通信系统114的物理地址或单独的通信总线。
在各种实施例中,配置电路108还可以包括状态控制电路1084,例如,以实现有限状态机的顺序逻辑电路的形式,该有限状态机被配置为管理处理系统10a的各种配置阶段。
例如,根据前面的描述,一旦处理系统10a接通(如经由电源监测电路115发信号通知的),处理系统10a的复位管理电路116a可以生成一个或多个复位信号RST,复位信号RST用于执行处理系统10a的各种组件的复位。例如,在所考虑的实施例中,复位信号RST可以由配置数据客户端电路112用来将内部寄存器设置为相应预定复位值。
类似地,响应于复位,复位管理电路116a可以例如经由信号SCP激活状态控制电路1084,以激活配置阶段。具体地,在配置阶段期间,数据读取电路1080可以从存储器104中读取配置数据CD。调度电路1082可以将配置数据CD发送到各种配置数据客户端电路112,从而重写复位值。
例如,在各种实施例中,调度电路1082可以生成具有给定位数(对应于有效载荷的位)的数据信号DATA,该数据信号DATA包含要传输到目标配置数据客户端112的配置数据和用于选择目标配置数据客户端112的另外的控制信号。例如,在所考虑的实施例中,调度模块1082生成包含目标配置数据客户端112地址的地址信号ADR,并且可选地生成用于发信号通知地址信号ADR和数据信号DATA是有效的芯片选择信号CS,其中信号ADR和CS的相应值被包括在相应DCF帧中。
例如,在各种实施例中,地址信号ADR(和芯片选择信号CS)可以被提供给地址解码器124,地址解码器124被配置为根据地址信号ADD激活/启用配置数据客户端112中的一个。例如,在所考虑的实施例中,当地址信号ADR对应于分配给配置数据客户端112a的地址(并且芯片选择信号CS被设置)时,解码器124可以设置芯片选择信号CSa以指示相应配置数据客户端112应当读取数据信号DATA。类似地,当地址信号ADR对应于分配给配置数据客户端112b的地址(并且芯片选择信号CS被设置)时,解码器124可以设置芯片选择信号CSb以指示配置数据客户端112应当读取数据信号DATA,等等。
通常,也可以使用多个地址解码器124。例如,在这种情况下,每个电路110可以具有相关联的(例如,可以包括)一个或多个配置数据客户端电路112和相应地址解码器124。因此,多个芯片选择信号CS可以用于启用地址解码器124中的一个,例如,通过在相应芯片选择信号CS被断言时启用地址解码器124中的一个,并且地址信号ADR可以指示由相应地址解码器124管理的配置数据客户端电路112中的一个。通常,地址数据ADR和可选芯片选择数据CS足以唯一地指示配置数据客户端电路112中的一个。
因此,在各种实施例中,DCF记录用于在非易失性存储器104a中“永久”存储要传输到给定配置数据客户端112的一组配置数据CD。例如,存储到配置数据客户端112的配置数据CD可以由用于确定特定逻辑110在可能的不同硬件有线行为中应当如何表现的位或位字段组成。
这样的DCF记录的优点在于,这些DCF记录一个接一个地连续地存储在非易失性存储器104a的受保护区域中。因此,记录可以在不同生产阶段被编程,即附加到先前记录,例如,硅供应商的设备生产、Tier 1的引擎控制单元生产、系统生产和汽车生产。
具体地,在所考虑的实施例中,硬件配置电路108被配置为从非易失性存储器104a中读取每个DCF记录,并且将DCF记录的有效载荷(即,相应配置数据CD)分配给目标配置数据客户端112。如上所述,为此目的,每个DCF记录包括标识目标配置数据客户端的数据,诸如地址字段和一个或多个可选芯片选择位。
例如,在各种实施例中,每个DCF记录包括32位配置数据CD和32个属性位,其包括用于标识目标配置数据客户端的30位,诸如用于芯片选择信号的16位,例如,用于选择与给定目标电路110相关联的给定地址解码器124;以及14个地址位,例如,用于选择由所选择的地址解码器124管理的给定目标配置数据客户端112;用于保护配置数据CD的可能的位翻转的可选的奇偶校验位;以及用于指示要由硬件配置电路108读取的最后的DCF记录的停止位。
由于存储在DCF记录中的配置数据CD也用于控制处理系统10a的基本部分,因此可能需要一些保密性和安全性保护。
例如,就保密性而言,有利的是,在对DCF记录进行编程之后这些记录不能再被更改。这可以使用处理系统10a来实现,该处理系统10a被配置为保护(至少)具有存储的DCF记录的存储器104a的已经编程的存储器位置,从而抑制编程的DCF记录可以被擦除或过度编程。例如,这可以经由一次性或可重新编程的非易失性存储器来实现。相应存储器控制器100禁止对已经存储DCF记录的存储器区域的写入访问。
此外,在各种实施例中,一个或多个配置数据客户端电路112可以被配置为仅第一次存储所接收的数据。如果配置数据客户端电路112接收到另外的配置数据(具有不同内容),则第一配置将被维持。例如,为此目的,美国专利申请公开第US 2019/0227747A1公开了配置数据客户端电路112的实施例,其中配置数据客户端可以被配置为根据至少一种类型标识信号来选择性地允许或禁止已经存储的配置数据的重写。因此,本文档通过引用并入本文以用于配置数据客户端112的可能实施例。
相反,就安全性而言,配置数据客户端112实际上可以使用多个冗余寄存器,诸如三重投票,例如,配置数据CD的每位可以被存储到三个锁存器或触发器,并且输出是通过存储到三个锁存器或触发器的值的三选二投票生成的。
在各种实施例中,硬件配置电路108还可以被配置为读取可能的其它系统配置数据。具体地,在各种实施例中,这些系统配置数据被编程到一个或多个非易失性存储器104a,诸如存储器104或一个或多个一次性可编程(OTP)存储器。通常,基于该实现,这样的系统配置数据可以部分地由处理系统10a的生产者编程,并且部分地由一个或多个软件开发者/客户端编程。
因此,在各种实施例中,响应于复位请求RT,由硬件配置电路108读取编程的系统配置数据,其中硬件配置电路108将系统配置数据存储到寄存器中,例如,用锁存器或触发器实现的寄存器。
在各种实施例中,系统配置数据因此包括作为DCF帧而存储的配置数据CD、以及可能的另外的系统配置数据,这些数据可以以专用格式存储,诸如生命周期数据、保密性密码或密码密钥。
例如,如上所述,作为DCF帧而存储的配置数据CD可以被传送到配置数据客户端电路112。相反,以专用格式存储的系统配置数据(诸如生命周期数据)可以存储在与配置电路108相关联(例如,集成到配置电路108中)的一个或多个寄存器中。
因此,原则上,每个微处理器1020可以具有相关联的一个或多个相应配置数据客户端112,该客户端112提供指定相应微处理器1020的开始地址的数据、或指定相应微处理器1020是否应当在软件运行时阶段的开始时开始的数据。
然而,如前所述,DCF记录被写入非易失性存储器104a的特定区域,通常是永久不可更改的(否则,系统配置可能被非法修改)。此外,如已经描述的,DCF记录包括用于指示最后的有效的DCF记录的数据,诸如用于停止扫描的位。因此,DCF记录在生产中被写入,然后被“关闭”,例如,通过断言最后的DCF记录的停止位。因此,在具有断言的停止位的DCF记录之后写入的任何附加DCF记录都将被忽略。DCF记录列表的“关闭”通常是可取的,以避免系统配置可能由于添加可能会取代先前编程值的新的DCF记录而被非法修改。结果,如果微处理器1020的开始地址经由DCF记录被编程,则开始地址不能再更改。
然而,在很多应用中,需要将处理系统10a配置为允许现场固件更新。但是,通过使用DCF记录,无法再更新CPU开始地址。
因此,发明人已经观察到,优选的是,直接在固件中指定(多个)引导CPU的开始地址,由此可以将(多个)开始地址与固件一起更新。
例如,在已知的解决方案中,引导配置数据BCD'可以包括引导记录,该引导记录直接被包括在固件中。引导记录包括微处理器1020的开始地址,并且微处理器1020中的一个或多个开始地址可以例如与存储在非易失性存储器104中的固件一起更新。
例如,在这种情况下,处理系统10a可以被配置为在预定开始地址处开始预定微处理器/引导CPU 1020,由此相应微处理器执行给定引导固件/软件。如前所述,处理系统10a还可以被配置为开始处理系统10a的其它微处理器,诸如可选HSM的微处理器。
例如,引导固件可以包括用于初始化或测试处理系统10a的一个或多个电路的软件指令。此外,引导固件被配置为从非易失性(程序)存储器104中读取引导记录。
具体地,在各种实施例中,引导记录包括一组数据,该组数据用于指示在引导CPU完成引导固件的执行之后哪个(哪些)微处理器1020应当被激活/开始、以及要开始的每个微处理器1020的相应开始地址。因此,在读取引导记录之后,引导固件可以包括用于配置每个微处理器1020的开始地址以开始相应的一个或多个微处理器1020的软件指令。
例如,在各种实施例中,引导记录包括指示引导记录是否有效的以下数据可选有效性数据,诸如引导记录有效标志;指示哪个微处理器1020应当开始的使能数据,诸如每个微处理器1020的相应引导使能标志;对于每个微处理器1020,允许指定微处理器1020的开始地址的相应引导记录数据、以及可选的另外的引导配置数据。
因此,由引导CPU 1020执行的引导固件可以使用使能数据来确定哪些微处理器1020应当开始。例如,使能数据可以被组织为使能标志/位的阵列,其中每个标志指示特定微处理器1020是否应当开始。通常,代替经由引导固件处理引导记录,还可以在硬件中处理相应数据,即,处理系统10a被配置为经由软件或硬件来处理引导记录以确定哪个微处理器1020应当开始和相应开始地址就足够了。例如,代替使用引导固件,处理系统10a可以使用引导记录在相应开始地址处直接开始所指示的(多个)微处理器1020,
因此,引导记录被写入非易失性存储器104的存储器区域,这些存储器区域不是一次性可编程的,并且因此可以例如通过重写引导记录来更新。以这种方式,不同于DCF记录,开始地址可以更新。
在各种实施例中,前面提到的可选的另外的引导配置数据可以包括指示要验证的软件指令的字节数或字数的数据。具体地,在这种情况下,引导固件可以被配置为从引导记录数据的开始地址开始读取由给定引导记录数据指示的字节数或字数。例如,引导固件可以被配置为通过使用密码密钥并且将计算的码或签名与固件中包括的相应参考码进行比较来计算所指示的字节数或字数的散列或CRC码或所指示的字节数或字数的签名。为此目的,引导固件也可以使用处理系统10a的HSM。HSM还可以使用引导记录数据来验证所指示的字节数或字数。
因此,在各种实施例中,处理系统10a可以被配置为经由引导固件或HSM来实现“安全引导”。具体地,这样的“安全引导”被配置为验证特定码是否未被更改。在这点上,散列或CRC码允许验证初始固件数据是否包含错误。相反,使用签名的优点是,如果密钥是秘密的,则软件代码无法更改。
最后,在各种实施例中,可选的有效性数据可以指示引导记录是否包含有效数据。在这种情况下,软件开发人员可以将多个引导记录编程到非易失性存储器104中的相应存储器位置,并且使用有效性数据来针对每个引导记录指示相应引导记录是否有效。因此,以这种方式,可以指定具有不同开始地址集的多个引导记录,并且可以通过对相应有效性数据进行编程来启用引导记录中的仅一个。此外,通过使用多个引导记录的有效性数据,非易失性存储器也可以是一次性可编程存储器。事实上,通过使用有效性数据,可以通过使引导记录有效标志无效并且将新的引导记录附加到更新后的开始地址值来更新开始地址。
然而,发明人已经观察到,这样的引导记录也不能提供足够的灵活性。例如,如前所述,引导记录要么在硬件中分析,要么在软件中分析,并且配置是固定的。此外,当使用引导固件时,相应开始地址必须固定。
因此,图5示出了经修改的处理系统10a。具体地,关于图3所示的实施例,配置电路108被配置为基于两种类型的信息生成引导配置数据BCD——与固件一起存储在非易失性程序存储器104中的引导配置数据的第一部分BCD1',其中引导配置数据BCD1'包括一个或多个引导记录槽BR,诸如k个引导记录槽BR1、……、BRk,其中每个引导记录槽BR被布置为存储相应引导记录;以及与配置数据CD一起存储在非易失性存储器104a(其也可以对应于非易失存储器104)中的引导配置数据的第二部分BCD2',即,引导配置数据BCD1'以DCF帧/记录的形式与配置数据CD一起存储。
在所考虑的实施例中,硬件配置电路108因此被配置为从非易失性存储器104a中读取包括引导配置数据BCD2'的配置数据CD,并且将配置数据CD传送到配置数据客户端电路112。例如,如图5示意性地所示,处理系统10a可以包括一个或多个配置数据客户端电路112,其中这些配置数据客户端电路112中的每个具有相关联的相应单音地址数据(诸如地址ADR和可选芯片选择数据CS),并且其中引导配置数据BCD2'的每个DCF帧包括标识这些配置数据客户端电路112中的一个的地址数据和相应引导配置数据BCD2'。
此外,在所考虑的实施例中,硬件配置电路108被配置为从非易失性存储器104中读取引导配置数据BCD1'。如果这些数据可以仅包括单个引导记录槽BR,则硬件配置电路108可以读取存储到引导记录槽BR的数据,并且将这些数据存储在与配置电路108相关联(例如,集成到配置电路108中)的一个或多个寄存器1086中。
相反,在引导配置数据BCD1'可以包括多个引导记录槽BR的情况下,硬件配置电路108可以依次读取存储到相应引导记录槽BR的数据,并且分析相应数据,特别是存储到给定槽的相应引导记录的有效性数据,以确定具有所存储的有效引导记录数据的第一引导记录槽(如由相应有效性数据指示的)。因此,在这种情况下,硬件配置电路108可以被配置为将包含有效引导记录数据的第一引导记录槽BR的数据存储到一个或多个寄存器1086。
因此,在所考虑的实施例中,存储到与引导配置数据BCD1'相关联的一个或多个配置数据客户端112的数据以及存储到一个或多个寄存器1086的数据对应于由处理系统10a用来激活处理系统的微处理器1020中的一个或多个的引导配置数据BCD。
具体地,如将在以下更详细地描述的,引导配置数据BCD指示要开始的微处理器1020中的至少一个微处理器,并且对于要开始的每个微处理器1020,指示相应开始地址。因此,在各种实施例中,处理系统10a(诸如硬件配置电路108)被配置为向每个微处理器1020提供相应开始地址并且向复位电路提供指示要开始的一个或多个微处理器1020的数据。
图6示出了用于根据引导配置数据BCD来确定要开始的一个或多个微处理器1020的开始地址的处理系统10a(诸如配置电路108)的操作的实施例。
在所考虑的实施例中,在开始步骤2000(例如,其是响应于信号SCP而开始的)之后,配置电路108在配置阶段的步骤2002读取配置数据CD,该配置数据CD可以(也可以不)包括引导配置数据BCD2'、以及至少第一引导记录槽BR1(以及可能的另外的引导记录槽BR,直到有效引导记录已经被找到或所有引导记录槽已经被分析为止)。
因此,在各种实施例中,配置电路108被配置为扫描一个或多个引导记录槽BR,并且确定任何有效引导记录是否被找到。为此目的,配置电路108可以依次分析引导记录槽BR的有效性数据,直到引导记录槽BR的有效性数据对应于预定的并且优选地固定的值。
例如,假定处理系统10a被配置为使用四个引导记录槽BR,其在非易失性存储器104中的地址是预定的并且优选地是固定的,则配置电路108至少读取第一槽BR1的有效性数据,并且将有效性数据与预定值进行比较。如果有效性数据对应于预定值,则配置电路108可以读取引导记录槽BR1的其它数据(如果尚未读取)并且停止扫描。否则,配置电路108可以分析下一引导记录槽的数据。
在各种实施例中,配置电路108还可以被配置为存储指示有效引导记录是否已经被找到的数据,诸如简单标志(有效引导记录是否已经被找到)或指示引导记录槽BR的数目的值,该引导记录槽BR的数据已经被传送到寄存器1086。因此,通常,引导配置数据BCD包括与引导记录相关联的数据,该引导记录可以包括也可以不包括有效引导记录(基于引导记录BR中的至少一个是否已经被编程)。
类似地,引导配置数据BCD2'可以被编程,也可以不被编程。例如,在各种实施例中,处理系统10a可以包括被配置为存储引导配置数据BCS_CTRL和BCS_ADDR的一个或多个配置数据客户端112。例如,在各种实施例中,处理系统10a包括被配置为存储数据BCS_CTRL的第一配置数据客户端电路112和被配置为存储数据BCS_ADDR的第二配置数据客户端电路112。因此,在各种实施例中,配置数据CD可以不包括用于数据BCS_CTRL和BCS_ADDR的任何DCF记录;或者包括用于数据BCS_CTRL或BCS_ADDR的一个或多个DCF记录。
在各种实施例中,处理系统10a(例如,配置电路108)因此被配置为分析引导配置数据BCD,该引导配置数据BCD可以被编程或不被编程。
具体地,在各种实施例中,处理系统10a被配置为使用数据BCS_CTRL。具体地,在各种实施例中,数据BCS_CTRL指示是要使用预定/默认引导配置;还是要使用用户定义的引导配置。
例如,在各种实施例中,在默认引导配置中,处理系统10a可以被配置为开始一个或多个预定微处理器1020,即引导CPU。
例如,在各种实施例中,处理系统10a被配置为开始单个预定微处理器1020。因此,在这种情况下,处理系统10a的生产者可以已经为每个要开始的微处理器1020将相应引导固件(也被指示为引导码软件(BCS))存储到相应给定预定存储器区域(也被指示为引导码扇区)。因此,默认引导配置可以对应于这种情况下的配置。处理系统10a在与相应引导固件的开始地址相对应的开始地址处开始一个或多个预定微处理器1020中的每个。在各种实施例中,要开始的一个或多个预定微处理器1020的开始地址在硬件中是固定的。然而,在各种实施例中,要开始的一个或多个预定微处理器1020的开始地址也可以是可编程的,例如,经由数据BCS_ADDR。
例如,在各种实施例中,用于存储数据BCS_ADDR的配置数据客户端电路112的默认/复位值对应于要开始的一个或多个预定微处理器1020的一个或多个预定/固定开始地址。
因此,在各种实施例中,处理系统10a在步骤2006分析数据BCS_CTRL是否指示是否应当使用默认引导配置。具体地,当数据BCS_CTRL指示应当使用默认引导记录时(验证步骤2006的输出“Y”),例如,当数据BCS_CTRL的一个或多个标志被断言时,处理系统10a可以进行到步骤2012,在步骤2012中,处理系统激活预定/默认引导配置,例如,在给定固定开始地址处开始单个微处理器1020,例如指向工厂编程的BCS。
在各种实施例中,处理系统10a还可以在步骤2004确定数据BCS_CTRL是否被编程,例如,通过验证数据BCS_CTRL的一个或多个位。因此,在这种情况下,当数据BCS_CTRL未被编程时(验证步骤2004的输出“N”),处理系统10a可以进行到步骤1012,或者当数据BCS_CTRL被编程时(验证步骤2004的输出“Y”),处理系统10a可以进行到验证步骤2006。
例如,该实施例的优点在于,处理系统10a的生产者可以通过对数据BCS_CTRL进行编程(经由相应DCF记录)而已经锁定默认引导配置,其中数据BCS_CTRL指示应当使用默认引导配置。具体地,在这种情况下,用于数据BCS_CTRL的配置数据客户端电路112应当被配置为一次写入寄存器。
例如,如前所述,美国专利申请公开号US 2019/0227747 A1公开了配置数据客户端112的实施例,其中配置数据客户端可以被配置为根据至少一种类型标识信号来选择性地允许或禁止已经存储的配置数据的重写。
相反,当数据BCS_CTRL指示应当使用用户定义的引导配置数据时(验证步骤2006的输出“Y”),例如,当数据BCS_CTRL的一个或多个标志被解除断言时,处理系统10a被配置为当有效引导记录被找到时,在步骤2016使用存储到寄存器1086的引导记录。相反,当没有有效引导记录被找到时,处理系统10a可以在步骤2014在相应开始地址处开始一个或多个预定微处理器1020。这些开始地址是经由数据BCS_ADDR来指示的。例如,在各种实施例中,处理系统10a可以在与数据BCS_ADDR的值相对应的开始地址处开始单个微处理器1020。
例如,在所考虑的实施例中,处理系统10a首先在步骤2008验证有效引导记录是否被找到。如果有效引导记录已经被找到(验证步骤2008的输出“Y”),则处理系统10a进行到步骤2016。
相反,如果没有有效引导记录被找到(验证步骤2008的输出“N”),则处理系统10a可以进行到步骤2014。
在各种实施例中,在进行到步骤2014之前,处理系统10a还可以在步骤2010验证数据BCS_ADDR是否被编程。具体地,在这种情况下,当数据BCS_ADDR被编程时(验证步骤2010的输出“Y”),处理系统10a可以进行到步骤2016。相反,当数据BCS_ADDR未编程时(验证步骤2010的输出“N”),处理系统10a可以使用默认引导配置进行到步骤2012。通常,步骤2010是纯粹可选的,因为数据BCS_ADDR的复位值也可以指示默认引导配置的(多个)开始地址。
因此,步骤2012、2014和2016用于例如经由配置电路108和复位管理电路116a在硬件中选择要开始的一个或多个微处理器1020和要使用的相应开始地址。最后,该过程在停止步骤2018处终止,该停止步骤2018例如可以用于断言信号ECP。
具体地,在所考虑的实施例中,如果数据BCS_CTRL未编程,则处理系统10a在步骤2012使用默认引导配置,例如,在固定开始地址或由数据BCS_ADDR指示的地址处开始单个预定微处理器1020。类似地,如果数据BCS_CTRL被编程,则在步骤2012使用默认引导配置,并且数据BCS_CTRL指示应当使用默认引导设置。
相反,当数据BCS_CTRL被编程,并且数据BCS_CTRL指示应当使用用户定义的引导配置时,处理系统10a在步骤2008验证有效引导记录是否已经被找到。如果有效引导记录已经被找到,则处理系统使用步骤2016引导记录来开始一个或多个微处理器1020。对于这样的引导记录的可能实施例、在相应开始地址处开始一个或多个微处理器1020的可能性、以及验证相应固件的可能性可以至少部分参考前面的描述。这种情况允许灵活地分配不同于BCS码的一个或多个开始地址。这个开始地址也可以改变,因为有效引导记录也可以改变。
否则,如果没有有效引导记录被找到,则处理系统10a在步骤2014在数据BCS_ADDR指示的相应开始地址处开始一个或多个预定微处理器1020。这种情况允许灵活地分配不同于(默认/工厂)BCS码的开始地址,即使相应地址不能再改变。
如前所述,在各种实施例中,数据BCS_ADDR的默认值对应于BCS码的一个或多个默认开始地址,由此一个或多个预定引导CPU从有效地址开始,该有效地址对应于(默认)BCS码的开始地址,即使当数据BCS_ADD未编程时也是如此。
此外,在所考虑的实施例中,已经在步骤2002分析了引导记录槽BR。然而,处理系统10a还可以被配置为在验证步骤2006与2008之间分析引导记录槽BR,即,一旦处理系统确定应当使用用户定义的引导配置。
如前所述,引导配置数据BCD的处理可以在处理系统10a内以任何合适的方式实现,例如,在硬件配置电路108或复位管理电路116a内。例如,基于数据BCD,硬件配置电路108可以向每个微处理器1020提供相应开始地址信号,并且向复位管理电路116a提供指示微处理器1020中的哪个应当被开始的数据/信号,诸如先前提到的复位信号或开始信号。
在各种实施例中,处理系统10a允许经由由一个或多个(并且可以是全部)微处理器1020执行的软件指令来访问引导配置数据BCD(的至少部分)。例如,为此目的,寄存器1086和配置数据客户端112可以连接到通信系统114。
如前所述,在步骤2016,引导记录用于在硬件中在相应开始地址处直接开始一个或多个微处理器1020。相反,当使用具有(默认或用户)BCS的引导配置时,BCS可以被配置为确定有效引导记录是否被找到,并且响应于确定有效引导记录被找到,使用存储到寄存器1086(经由软件指令)的引导记录在由引导记录指示的相应开始地址处开始相应的一个或多个微处理器。
相反,如果没有有效引导记录被找到,则BCS可以停止软件执行或保持循环,以等待可能的指令,例如经由通信接口接收的指令。备选地,BCS可以尝试在固定和预定开始地址处开始微处理器1020。
总之,软件开发人员可以灵活地从由处理系统10a的生产商编程的BCS码或自定义用户定义码开始,并且可以选择使启动码在固定地址(经由数据BCS_ADDR)或可改变(经由引导记录槽)。
如前所述,在各种实施例中,配置数据CD和引导记录BR存储在存储器104或104a中的预定存储器区域中。因此,处理系统10a可以限制对这些存储器区域的写入访问,以确保引导配置数据BCD1'和BCD2'不会被更改。
在各种实施例中,处理系统10a还可以被配置为监测引导配置数据BCD1'或BCD2'中的可能的错误、或者用于生成引导配置数据BCD的一个或多个电路中的硬件错误。
例如,在这点上,美国专利申请公开号US 2020/169459 A1公开(该申请为此目的通过引用并入本文)了将相应错误检测或校正数据ECC与每个DCF配置数据帧相关联的可能性;或者在配置数据CD本身中包括一个或多个错误检测数据,诸如奇偶校验位,由此配置数据客户端112可以包括错误检测电路,该错误检测电路被配置为验证存储到配置数据客户端112的相应寄存器的位。
此外,美国专利申请公开号US 2019/0258493A1(为此目的通过引用并入本文)公开了可以将所有配置数据CD的诸如散列码等签名数据存储在非易失性存储器12中。
例如,图7示出了处理系统10a的实施例,该处理系统10a被配置为验证从非易失性存储器104a中读取的数据的正确性,该非易失性存储器104a可以包括配置数据CD或引导记录槽BR。
在所考虑的实施例中,处理系统10a可以包括各种错误检测机制,这些机制可以单独使用或组合使用。
在各种实施例中,第一机制复制配置电路108。例如,第一配置电路108的输出信号可以连接到其它电路,诸如存储器控制器100、配置数据客户端112等。相反,第二配置电路108可以接收与第一配置电路108相同的输入信号。
因此,在所考虑的实施例中,组合逻辑电路1096(例如,包括一个或多个XOR门)可以被配置为当由第一配置电路108生成的给定信号不对应于由第二配置电路108生成的相应信号时断言错误信号ERR1。
虽然图7仅示意性地示出了单个信号,但实际上,组合逻辑电路1096优选地被配置为比较由配置电路108生成的所有信号,诸如用于从非易失性存储器108a中读取数据的信号,诸如地址信号ADDR,或者当读取请求必须被路由通过通信系统114时的更复杂的信号;用于将数据传送到配置数据客户端电路112的信号;以及用于指示引导配置数据BCD的其它数据的可能的其它信号。
因此,在所考虑的实施例中,当组合逻辑电路1096没有检测到失配/错误时,(第一)配置电路108正确地操作,这表示,例如,用于从非易失性存储器中读取数据、特别是引导配置数据BCD1'和BCD2'的信号(诸如地址信号ADDR)被正确地生成;并且数据被精确地传输到DCF客户端电路112。
在各种实施例中,第二机制验证从非易失性存储器104a中读取的数据的完整性。例如,众所周知,存储器104a可以是纠错码(ECC)存储器,其中除了给定数据DAT之外,存储器还存储相应ECC位。
例如,在图7中,存储器控制器100包括错误检测和可选的校正电路1002,该校正电路1002被配置为接收从非易失性存储器104a中读取的数据位DAT和ECC位,并且验证这些位是否有错误。例如,在各种实施例中,电路1002可以被配置为当位DAT和ECC包含未被校正或不能被校正的错误时断言错误信号UE。
例如,当仅使用错误检测电路1002时,错误检测电路1002可以在错误被检测到时断言信号UE。相反,当使用错误检测和校正电路时,电路1002可以在错误被检测到时断言信号UE。然而,当使用单错误校正(SEC)和双错误检测(DEC)ECC码时,电路1002不能校正错误,诸如双位错误。
因此,在各种实施例中,处理系统10a可以被配置为当信号UE被断言时,即,当从存储器104a中读取的位包含错误并且该错误不能被修复时,断言错误信号ERR2。
然而,在各种实施例中,存储器控制器100将数据位DAT和ECC位提供给配置电路108。因此,在各种实施例中,配置电路108可以包括另外的错误检测和可选的校正电路1090,电路1090例如可以具有与电路1002相同的结构。因此,电路1090可以验证电路1002的操作。
例如,在这种情况下,组合逻辑电路1092(诸如OR门)可以被配置为当电路1002检测到从存储器104a中读取的位中的错误,并且该错误没有被修复时;或者电路1090检测到从存储器104a中读取的位中的错误并且该错误没有被修复,断言错误信号ERR2。
通常,不仅从存储器104a中读取的数据可能被破坏,而且用于读取数据的地址也可能被破坏。例如,在图7中,存储器控制器100包括用于存储(例如,锁存)地址信号ADDR的寄存器1004。因此,由于配置电路108与存储器控制器100之间的连接、或寄存器1004中的缺陷,用于从存储器104a中读取数据的信号可能是不正确的。
在各种实施例中,第三机制验证提供给非易失性存储器104a的地址的正确性。例如,寄存器1004可以被配置为提供与用于从非易失性存储器104a中读取数据的所存储的地址信号相对应的反馈信号FADDR。因此,以这种方式,例如集成在配置电路108中的比较器电路1094可以被配置为当由配置电路108发送的地址ADDR不对应于环回反馈地址FADDR时断言错误信号ERR3。
在各种实施例中,第四机制验证存储在配置数据客户端电路112中的数据的正确性。例如,如上所述,为此目的,配置数据客户端电路112可以被配置为验证传输到数据客户端电路112的数据中的一个或多个错误检测位,诸如一个或多个奇偶校验位,或者配置电路108可以接收由配置数据客户端电路112存储的数据作为反馈。例如,如图7示意性地所示,配置数据客户端112可以基于一个或多个奇偶校验位断言错误信号ERR4。
通常,错误信号ERR1、ERR2、ERR3或ERR4可以存储到软件可读寄存器,或者提供给处理系统10a的故障收集和错误管理电路120。
因此,前面公开的解决方案允许灵活而稳健地配置系统启动/引导配置。
这些解决方案可以应用于单个引导CPU 1020,其引导固件可以配置处理系统10a并且开始一个或多个其它微处理器1020,可能为此目的而使用存储到寄存器1086的引导记录。在应当开始多个(或全部)微处理器的情况下,这些解决方案也可以应用于多个引导CPU。该解决方案可以用于开始具有多种配置的处理系统10a,从硅供应商测试到通过BCS的受控启动、或客户特定的启动码。
此外,通过采用附加控制机制,诸如固件验证(如关于引导记录数据所述)和附加错误检测机制,该解决方案能够符合ISO26262ASIL-D要求。
当然,在不影响本发明的原理的情况下,在不偏离如随后的权利要求所限定的本发明范围的情况下,结构和实施例的细节可以与本文中纯粹通过示例的方式而描述和说明的内容相差很大。
Claims (20)
1.一种处理系统,包括:
电源监测电路,被配置为响应于所述处理系统接通而生成复位请求信号;
多个微处理器,每个微处理器被配置为根据开始地址开始指令的执行;
复位管理电路,被配置为接收所述复位请求信号,并且作为响应,依次执行复位阶段、配置阶段和软件运行时阶段,其中所述处理系统被配置为根据引导配置数据开始由微处理器对指令的执行;
寄存器,被配置为存储第一引导配置数据,所述第一引导配置数据包括引导记录和相应开始地址,所述引导记录指示所述微处理器中的哪个微处理器要被开始;
多个配置数据客户端电路,被配置为存储配置数据,每个配置数据客户端电路具有地址数据,每个配置数据客户端电路被配置为接收写入请求,并且被配置为响应于所述写入请求具有与关联于所述配置数据客户端电路的所述地址数据相对应的地址数据而将所述写入请求中包括的数据存储到所述配置数据客户端电路的寄存器,其中配置数据客户端电路被配置为提供第二引导配置数据,所述第二引导配置数据指示开始地址以及指示所述处理系统是要使用默认引导配置还是用户定义的引导配置;
非易失性存储器,被配置为将所述第一引导配置数据存储在预定存储器位置处,所述第一引导配置数据以数据记录的形式被存储,所述第一引导配置数据的每个数据记录具有配置数据客户端电路的关联地址和要被存储在所述配置数据客户端电路处的关联数据;以及
硬件配置电路,被配置为:
从所述预定存储器位置中读取所述引导记录,
将所述引导记录存储到所述寄存器,
从所述非易失性存储器中依次读取所述第一引导配置数据的所述数据记录,以及
针对每个数据记录生成相应写入请求,所述写入请求用于将所述数据记录的数据存储到具有在所述数据记录中指示的所述地址数据的所述配置数据客户端电路,
其中所述硬件配置电路和所述复位管理电路被配置为:
响应于确定所述第二引导配置数据指示所述处理系统要使用所述默认引导配置,在默认开始地址处开始预定微处理器,
响应于确定所述第二引导配置数据指示所述处理系统要使用所述用户定义的引导配置并且所述寄存器已经存储有效引导记录,在由存储到所述寄存器的所述引导记录指示的所述开始地址处开始微处理器,以及
响应于确定所述第二引导配置数据指示所述处理系统要使用所述用户定义的引导配置并且所述寄存器不具有有效引导记录,在由所述第二引导配置数据指示的所述开始地址处开始所述预定微处理器。
2.根据权利要求1所述的处理系统,其中在所述配置阶段期间,所述硬件配置电路被配置为:响应于确定所述预定存储器位置已经存储有效引导记录,而从所述非易失性存储器中读取所述引导记录并且将所述引导记录存储到所述寄存器。
3.根据权利要求2所述的处理系统,其中确定所述预定存储器位置已经存储有效引导记录包括:依次访问所述非易失性存储器中的多个引导记录槽,直到引导记录槽已经存储有效引导记录。
4.根据权利要求2所述的处理系统,其中确定所述预定存储器位置已经存储有效引导记录包括:确定所述引导记录的有效性标志是否被断言。
5.根据权利要求1所述的处理系统,其中所述默认开始地址对应于固定开始地址或对应于由所述第二引导配置数据指示的所述开始地址的复位值。
6.根据权利要求5所述的处理系统,其中在所述配置阶段期间,所述硬件配置电路被配置为:
确定开始地址是否已经被存储到配置数据客户端电路;
响应于确定所述处理系统要使用所述用户定义的引导配置、所述寄存器不具有有效引导记录并且开始地址已经被存储到配置数据客户端电路,在所述固定开始地址处在由所述第二引导配置数据指示的所述开始地址处开始所述预定微处理器;以及
响应于确定所述处理系统要使用所述用户定义的引导配置、所述寄存器不具有有效引导记录并且所述开始地址尚未被存储到配置数据客户端电路,在所述固定开始地址处或由所述第二引导配置数据指示的所述开始地址的所述复位值处开始所述预定微处理器。
7.根据权利要求1所述的处理系统,其中包括软件指令的引导固件被存储在所述非易失性存储器中,所述引导固件的开始地址对应于由所述第二引导配置数据指示的所述开始地址,所述软件指令在由所述预定微处理器执行时使所述预定微处理器执行以下步骤:
从所述寄存器中读取所述引导记录;
确定要开始的微处理器和针对要开始的所述微处理器的相应开始地址;以及
在所述相应开始地址处开始所述微处理器。
8.根据权利要求1所述的处理系统,其中所述引导记录包括要由每个微处理器验证的数据量,所述处理系统被配置为:
对于要开始的所述微处理器,从由所述引导记录指示的所述开始地址中读取要验证的所述数据量;
计算针对所读取的数据量的散列码、循环冗余校验CRC码或签名;以及
响应于所述散列码、所述CRC码或所述签名未能与期望参考值相对应而断言错误信号。
9.根据权利要求1所述的处理系统,其中所述硬件配置电路是第一硬件配置电路,并且
其中所述处理系统包括第二硬件配置电路和组合逻辑电路,所述组合逻辑电路被配置为响应于所述第一硬件配置电路未能具有与所述第二硬件配置电路相同的输出信号而断言第一错误信号,或者
其中所述非易失性存储器提供数据位和纠错码位,并且其中所述第二硬件配置电路包括错误校正和检测电路,所述错误校正和检测电路被配置为响应于所述数据位和所述纠错码位具有不可校正的错误而断言第二错误信号,或者
其中所述非易失性存储器被配置为从所述第二硬件配置电路接收地址信号并且向所述第二硬件配置电路提供反馈,并且其中所述第二硬件配置电路被配置为响应于由所述第二硬件配置电路提供的所述地址信号不对应于所述反馈而断言第三错误信号。
10.一种包括处理系统的集成电路,所述处理系统包括:
电源监测电路,被配置为响应于所述处理系统接通而生成复位请求信号;
多个微处理器,每个微处理器被配置为根据开始地址开始指令的执行;
复位管理电路,被配置为接收所述复位请求信号,并且作为响应,依次执行复位阶段、配置阶段和软件运行时阶段,其中所述处理系统被配置为根据引导配置数据开始由微处理器对指令的执行;
寄存器,被配置为存储第一引导配置数据,所述第一引导配置数据包括引导记录和相应开始地址,所述引导记录指示所述微处理器中的哪个微处理器要被开始;
多个配置数据客户端电路,被配置为存储配置数据,每个配置数据客户端电路具有地址数据,每个配置数据客户端电路被配置为接收写入请求,并且被配置为响应于所述写入请求具有与关联于所述配置数据客户端电路的所述地址数据相对应的地址数据而将所述写入请求中包括的数据存储到所述配置数据客户端电路的寄存器,其中配置数据客户端电路被配置为提供第二引导配置数据,所述第二引导配置数据指示开始地址和所述处理系统要使用默认引导配置还是用户定义的引导配置;
非易失性存储器,被配置为将所述第一引导配置数据存储在预定存储器位置处,所述第一引导配置数据以数据记录的形式被存储,所述第一引导配置数据的每个数据记录具有配置数据客户端电路的关联地址和要存储在所述配置数据客户端电路处的关联数据;以及
硬件配置电路,被配置为:
从所述预定存储器位置中读取所述引导记录,
将所述引导记录存储到所述寄存器,
从所述非易失性存储器中依次读取所述第一引导配置数据的所述数据记录,以及
为每个数据记录生成相应写入请求,所述写入请求用于将所述数据记录的数据存储到具有在所述数据记录中指示的所述地址数据的所述配置数据客户端电路,
其中所述硬件配置电路和所述复位管理电路被配置为:
响应于确定所述第二引导配置数据指示所述处理系统要使用所述默认引导配置,在默认开始地址处开始预定微处理器,
响应于确定所述第二引导配置数据指示所述处理系统要使用所述用户定义的引导配置并且所述寄存器已经存储有效引导记录,在由存储到所述寄存器的所述引导记录指示的所述开始地址处开始微处理器,以及
响应于确定所述第二引导配置数据指示所述处理系统要使用所述用户定义的引导配置并且所述寄存器不具有有效引导记录,在由所述第二引导配置数据指示的所述开始地址处开始所述预定微处理器。
11.根据权利要求10所述的集成电路,其中在所述配置阶段期间,所述硬件配置电路被配置为:响应于确定所述预定存储器位置已经存储有效引导记录而从所述非易失性存储器中读取所述引导记录并且将所述引导记录存储到所述寄存器。
12.根据权利要求11所述的集成电路,其中确定所述预定存储器位置已经存储有效引导记录包括:依次访问所述非易失性存储器中的多个引导记录槽,直到引导记录槽已经存储有效引导记录。
13.根据权利要求11所述的集成电路,其中确定所述预定存储器位置已经存储有效引导记录包括:确定所述引导记录的有效性标志是否被断言。
14.根据权利要求10所述的集成电路,其中所述默认开始地址对应于固定开始地址或对应于由所述第二引导配置数据指示的所述开始地址的复位值。
15.一种包括多个处理系统的设备,每个处理系统包括:
电源监测电路,被配置为响应于所述处理系统接通而生成复位请求信号;
多个微处理器,每个微处理器被配置为根据开始地址开始指令的执行;
复位管理电路,被配置为接收所述复位请求信号,并且作为响应,依次执行复位阶段、配置阶段和软件运行时阶段,其中所述处理系统被配置为根据引导配置数据开始由微处理器对指令的执行;
寄存器,被配置为存储第一引导配置数据,所述第一引导配置数据包括引导记录和相应开始地址,所述引导记录指示所述微处理器中的哪个微处理器要被开始;
多个配置数据客户端电路,被配置为存储配置数据,每个配置数据客户端电路具有地址数据,每个配置数据客户端电路被配置为接收写入请求,并且被配置为响应于所述写入请求具有与关联于所述配置数据客户端电路的所述地址数据相对应的地址数据而将所述写入请求中包括的数据存储到所述配置数据客户端电路的寄存器,其中配置数据客户端电路被配置为提供第二引导配置数据,所述第二引导配置数据指示开始地址和所述处理系统是要使用默认引导配置还是用户定义的引导配置;
非易失性存储器,被配置为将所述第一引导配置数据存储在预定存储器位置处,所述第一引导配置数据以数据记录的形式被存储,所述第一引导配置数据的每个数据记录具有配置数据客户端电路的关联地址和要存储在所述配置数据客户端电路处的关联数据;以及
硬件配置电路,被配置为:
从所述预定存储器位置中读取所述引导记录,
将所述引导记录存储到所述寄存器,
从所述非易失性存储器中依次读取所述第一引导配置数据的所述数据记录,以及
为每个数据记录生成相应写入请求,所述写入请求用于将所述数据记录的数据存储到具有在所述数据记录中指示的所述地址数据的所述配置数据客户端电路,
其中所述硬件配置电路和所述复位管理电路被配置为:
响应于确定所述第二引导配置数据指示所述处理系统要使用所述默认引导配置,在默认开始地址处开始预定微处理器,
响应于确定所述第二引导配置数据指示所述处理系统要使用所述用户定义的引导配置并且所述寄存器已经存储有效引导记录,在由存储到所述寄存器的所述引导记录指示的所述开始地址处开始微处理器,以及
响应于确定所述第二引导配置数据指示所述处理系统要使用所述用户定义的引导配置并且所述寄存器不具有有效引导记录,在由所述第二引导配置数据指示的所述开始地址处开始所述预定微处理器。
16.根据权利要求15所述的设备,其中所述设备是车辆,并且其中所述多个处理系统中的每个处理系统使用通信系统来耦合。
17.根据权利要求15所述的装置,其中在所述配置阶段期间,所述硬件配置电路被配置为:响应于确定所述预定存储器位置已经存储有效引导记录而从所述非易失性存储器中读取所述引导记录并且将所述引导记录存储到所述寄存器。
18.根据权利要求17所述的设备,其中确定所述预定存储器位置已经存储有效引导记录包括:依次访问所述非易失性存储器中的多个引导记录槽,直到引导记录槽已经存储有效引导记录。
19.根据权利要求17所述的设备,其中确定所述预定存储器位置已经存储有效引导记录包括:确定所述引导记录的有效性标志是否被断言。
20.一种用于操作处理系统的方法,所述方法包括:
由所述处理系统的电源监测电路响应于所述处理系统接通而生成复位请求信号;
在所述处理系统中具有多个微处理器,每个微处理器根据开始地址开始指令的执行;
由所述处理系统的复位管理电路接收所述复位请求信号,并且作为响应,依次执行复位阶段、配置阶段和软件运行时阶段,其中所述处理系统将根据引导配置数据开始由微处理器对指令的执行;
由所述处理系统的寄存器存储第一引导配置数据,所述第一引导配置数据包括引导记录和相应开始地址,所述引导记录指示所述微处理器中的哪个微处理器要被开始;
由所述处理系统的多个配置数据客户端电路存储配置数据,每个配置数据客户端电路具有地址数据;
由配置数据客户端电路接收写入请求;
由所述配置数据客户端电路响应于所述写入请求具有与关联于所述配置数据客户端电路的所述地址数据相对应的地址数据,而将所述写入请求中包括的数据存储到所述配置数据客户端电路的寄存器;
由所述配置数据客户端电路提供第二引导配置数据,所述第二引导配置数据指示开始地址和所述处理系统是要使用默认引导配置还是用户定义的引导配置;
由非易失性存储器将所述第一引导配置数据存储在预定存储器位置处,所述第一引导配置数据以数据记录的形式被存储,所述配置数据的每个数据记录具有配置数据客户端电路的关联地址和要存储在所述配置数据客户端电路处的关联数据;以及
由硬件配置电路从所述预定存储器位置中读取所述引导记录;
由所述硬件配置电路将所述引导记录存储到所述寄存器;
由所述硬件配置电路从所述非易失性存储器中依次读取所述第一引导配置数据的所述数据记录;
由所述硬件配置电路为每个数据记录生成相应写入请求,所述写入请求用于将所述数据记录的数据存储到具有在所述数据记录中指示的所述地址数据的所述配置数据客户端电路;
由所述硬件配置电路和所述复位管理电路响应于确定所述第二引导配置数据指示所述处理系统要使用所述默认引导配置,而在默认开始地址处开始预定微处理器,
由所述硬件配置电路和所述复位管理电路响应于确定所述第二引导配置数据指示所述处理系统要使用所述用户定义的引导配置并且所述寄存器已经存储有效引导记录,而在由存储到所述寄存器的所述引导记录指示的所述开始地址处开始微处理器,以及
由所述硬件配置电路和所述复位管理电路响应于确定所述第二引导配置数据指示所述处理系统要使用所述用户定义的引导配置并且所述寄存器不具有有效引导记录,而在由所述第二引导配置数据指示的所述开始地址处开始所述预定微处理器。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT202200013099 | 2022-06-21 | ||
IT102022000013099 | 2022-06-21 | ||
US18/312,237 | 2023-05-04 | ||
US18/312,237 US20230409341A1 (en) | 2022-06-21 | 2023-05-04 | Processing system, related integrated circuit, device and method |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117271232A true CN117271232A (zh) | 2023-12-22 |
Family
ID=82943058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310731330.7A Pending CN117271232A (zh) | 2022-06-21 | 2023-06-20 | 处理系统、相关集成电路、设备和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230409341A1 (zh) |
EP (1) | EP4296850A1 (zh) |
CN (1) | CN117271232A (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101173539B1 (ko) * | 2006-02-15 | 2012-08-14 | 삼성전자주식회사 | 멀티프로세서 시스템 그리고 멀티프로세서 시스템의 초기화방법 |
IT201800001633A1 (it) | 2018-01-22 | 2019-07-22 | Stmicroelectronics Application Gmbh | Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento |
IT201800002895A1 (it) | 2018-02-21 | 2019-08-21 | Stmicroelectronics Application Gmbh | Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento |
US10855529B2 (en) | 2018-11-26 | 2020-12-01 | Stmicroelectronics Application Gmbh | Processing system, related integrated circuit, device and method |
-
2023
- 2023-05-04 US US18/312,237 patent/US20230409341A1/en active Pending
- 2023-06-01 EP EP23176646.0A patent/EP4296850A1/en active Pending
- 2023-06-20 CN CN202310731330.7A patent/CN117271232A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4296850A1 (en) | 2023-12-27 |
US20230409341A1 (en) | 2023-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11068255B2 (en) | Processing system, related integrated circuit, device and method | |
CN110502932B (zh) | 处理系统、相关集成电路和方法 | |
US11474752B2 (en) | Processing system including one-time programmable memory with original life cycle data, related integrated circuit, device and method | |
US9304943B2 (en) | Processor system and control method thereof | |
US10855529B2 (en) | Processing system, related integrated circuit, device and method | |
US11210161B2 (en) | Processing system, related integrated circuit, device and method | |
US10949570B2 (en) | Processing system, related integrated circuit and method | |
US11915008B2 (en) | Processing system, related integrated circuit, device and method | |
US10922015B2 (en) | Processing system, related integrated circuit, device and method | |
EP4296850A1 (en) | Processing system, related integrated circuit, device and method | |
US20230170006A1 (en) | Processing system, related integrated circuit, device and method | |
US20230017809A1 (en) | Indicating a type of secure boot to endpoint devices by a security processor | |
CN116893936A (zh) | 处理系统、相关集成电路、设备和方法 | |
CN115145753A (zh) | 处理系统、相关集成电路、设备和方法 | |
CN117253518A (zh) | 一次性可编程存储器控制器、相关处理系统、集成电路和方法 |
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 |