CN115617565A - 处理系统、相关集成电路、设备以及方法 - Google Patents
处理系统、相关集成电路、设备以及方法 Download PDFInfo
- Publication number
- CN115617565A CN115617565A CN202210817959.9A CN202210817959A CN115617565A CN 115617565 A CN115617565 A CN 115617565A CN 202210817959 A CN202210817959 A CN 202210817959A CN 115617565 A CN115617565 A CN 115617565A
- Authority
- CN
- China
- Prior art keywords
- data
- bits
- ecc
- circuit
- error
- 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
- 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/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本公开的实施例涉及处理系统、相关集成电路、设备以及方法。该处理系统包括:微处理器,发送读取请求或发送包括第二数据的写入请求;存储器控制器,从存储器读取第三数据;安全监控电路,包括接收数据位和相应的纠错码ECC位的错误检测电路;资源和通信系统。安全监控电路计算另外的ECC位并比较计算出的ECC位与接收到的ECC位而生成错误信号。故障收集和错误管理电路接收来自安全监控电路的错误信号。安全监控电路包括:测试电路,向错误检测电路提供经修改的数据位和/或经修改的ECC位,错误检测电路根据连接性测试控制信号使错误信号生效;连接性测试控制电路,包括经由微处理器可编程的控制寄存器,根据控制寄存器的内容来生成连接性测试控制信号。
Description
技术领域
本公开的实施例涉及诸如微控制器之类的处理系统内的错误管理。
背景技术
故障收集和错误管理电路可以是一个复杂的系统,还包括集成电路内故障收集和错误管理电路与各种安全监控电路之间的连接。此外,故障收集和错误管理电路的操作本身与安全相关。例如,未报告的错误(例如由于错误信号卡住或连接断开)可能会造成危险情况,例如在汽车应用环境中。
发明内容
本公开的各种实施例提供了用于监控安全监控电路的操作的解决方案,该安全监控电路包括被配置为验证纠错码(ECC)的电路。
如先前所提及,本公开的各种实施例涉及一种处理系统。该处理系统包括通信系统和处理核。例如,处理核包括微处理器和主通信接口,主通信接口被配置为将读取请求或写入请求从微处理器传输到通信系统。例如,读取请求包括物理目标地址并请求将第一数据从物理目标地址传输到处理核的主通信接口。相反,写入请求包括物理目标地址和要被传输到物理目标地址的第二数据。其他主接口(诸如DMA控制器)也可以生成类似的读取请求或写入请求。
在各种实施例中,处理系统还包括从电路,诸如被配置为接收读取和/或写入请求的存储器控制器和/或资源。
例如,在各种实施例中,存储器控制器被配置为基于存储器地址而从存储器读取第三数据或将第三数据写入到存储器。为此目的,存储器控制器可以被配置为接收寻址到与存储器控制器相关联的物理目标地址的第一子范围的请求,根据接收到的请求的内容(例如根据可以被映射到存储器地址的物理地址)来确定存储器地址,并且确定接收到的请求是读取请求还是写入请求。在接收到的请求是读取请求的情况下,存储器控制器从存储器地址读取第三数据,并将读取的第三数据作为第一数据传输到通信系统。相反,当接收到的请求是写入请求时,存储器控制器从写入请求提取第二数据,并将提取的第二数据作为第三数据写入到存储器地址。
在各种实施例中,资源包括一个或多个寄存器和从通信接口。该从通信接口连接到通信系统并且被配置为接收寻址到与一个或多个寄存器相关联的物理目标地址的第二子范围的请求,根据包括在接收到的请求中的物理目标地址来选择一个或多个寄存器中的一个寄存器,并确定接收到的请求是读取请求还是写入请求。因此,当接收到的请求是读取请求时,从通信接口可以将选定的寄存器的内容作为第一数据传输到通信系统。相反,当接收到的请求是写入请求时,从接口可以从写入请求提取第二数据,并将提取的第二数据写入到选定的寄存器。
例如,在各种实施例中,经由通信系统交换的事务和/或存储到由存储器控制器所管理的存储器的数据可以利用纠错码ECC位来进行保护。因此,在各种实施例中,处理系统包括一个或多个安全监控电路,该安全监控电路包括错误检测电路,该错误检测电路被配置为接收数据位和相应ECC位。例如,数据位可以对应于第一数据(即,响应于读取请求而接收的数据)、第二数据(即,与写入请求一起接收的数据)或第三数据(即,从存储器读取的数据)。
例如,在各种实施例中,每个错误检测电路被配置为依据给定的ECC方案/代码而根据相应的数据位来计算另外的ECC位,并且通过将计算出的ECC位与接收到的ECC位进行比较来生成校正子。通常,在错误检测代码的情况下,校正子可以指示可能的错误。相反,在纠错码的情况下,校正子也可以指示可能的不正确位的位置。因此,每个错误检测电路可以确定相应校正子的所有位是否都被取消生效,并且当校正子的至少一个位被生效时使错误信号生效。
在各种实施例中,由安全监控电路生成的各种错误信号被提供给故障收集和错误管理电路。例如,故障收集和错误管理电路可以包括一个或多个寄存器,并将错误信号的逻辑电平存储到一个或多个寄存器。在这种情况下,故障收集和错误管理电路可以被配置为接收寻址到与一个或多个另外的寄存器相关联的物理目标地址的第三子范围的读取请求,根据包括在接收到的读取请求中的物理目标地址来选择一个或多个寄存器中的一个寄存器,并将选定的另外的寄存器的内容作为第一数据传输到通信系统,从而例如将错误信号的逻辑电平提供给微处理器。通常,故障收集和错误管理电路还可以生成内部和/或外部反应信号,和/或实现日志记录功能。
例如,本公开的各种实施例涉及这种(ECC)安全监控电路与故障收集和错误管理电路之间的连接性的测试。
在各种实施例中,每个安全监控电路包括测试电路,该测试电路被配置为根据一个或多个连接性测试控制信号向相应的错误检测电路提供经修改的数据位和/或经修改的ECC位,由此错误检测电路根据连接性测试控制信号,使错误信号生效。
在各种实施例中,处理系统还包括连接性测试控制电路,该电路包括经由写入请求可编程的一个或多个控制寄存器,其中根据一个或多个控制寄存器的内容来生成一个或多个连接性测试控制信号。因此,微处理器可以通过向连接性测试控制电路发送相应的写入请求来使连接性测试控制信号生效。
例如,在各种实施例中,连接性测试控制电路被配置为例如经由组合逻辑电路根据一个或多个控制寄存器的相应的一个或多个位而为每个安全监控电路生成一个或多个相应的连接性测试控制信号。
例如,在各种实施例中,一个或多个控制寄存器的设置本身并不触发连接性测试,而只是激活数据位和/或ECC位的修改。
例如,关于读取请求,第一安全监控电路可以与处理核的主通信接口相关联。例如,主通信接口可以被配置为:除了第一数据之外,响应于读取请求还接收相应的第一ECC位(其由传输对读取请求的响应的电路(诸如存储器控制器或资源)相应地生成)。在这种情况下,一旦已经接收到第一数据和相应的第一ECC位,主通信接口可以将第一数据和相应的第一ECC位提供给第一安全监控电路。因此,只有在主通信接口接收到第一数据,并将接收到的数据提供给错误检测电路时,第一错误检测电路才会处理(经修改的)数据位和/或ECC位,并且根据一个或多个连接性测试控制信号选择性地使第一安全监控电路的错误信号生效。
类似地,关于写入请求,第二安全监控电路可以与存储器控制器或资源(或连接到通信系统的类似从设备)相关联。例如,在这种情况下,存储器控制器或资源可以被配置为:除了第二数据之外,还与写入请求一起接收相应的第二ECC位(其因此是由传输写入请求的电路生成的,例如处理核)。因此,一旦已经接收到写入请求,存储器控制器或资源可以将相应的第二数据和相应的第二ECC位提供给第二安全监控电路,从而一旦存储器控制器或资源接收到写入请求,就根据一个或多个连接性测试控制信号,选择性地使第二安全监控电路的错误信号生效。
在各种实施例中,连接到通信系统的这种从设备还可以验证包括在读取或写入请求中的地址。为此目的,第三安全监控电路可以例如与存储器控制器或资源相关联,其中存储器控制器或资源被配置为:除了地址之外,还与读取或写入请求一起接收相应的第三ECC位(其因此是由传输该请求的电路生成的),并且一旦接收到读取或写入请求,就将相应的地址和相应的第三ECC位提供给第三安全监控电路,从而一旦存储器控制器或资源接收到读取或写入请求就根据一个或多个连接性测试控制信号,选择性地使第三安全监控电路的错误信号生效。
最后,在存储器的读取操作的情况下,第四安全监控电路可以与存储器控制器相关联,其中存储器控制器被配置为:除了第三数据之外,还从存储器地址读取相应的第四ECC位。例如,在将将数据写入到存储器时,可以将第四ECC位存储到存储器。因此,一旦已经接收到第三数据和相应的第四ECC位,存储器控制器可以将第三数据和相应的第四ECC位提供给第四安全监控电路,从而一旦存储器控制器从存储器读取数据就根据一个或多个连接性测试控制信号,选择性地使第四安全监控电路的错误信号生效。
在各种实施例中,安全监控电路中的一个或多个安全监控电路还可以向故障收集和错误管理电路提供相应的校正子和/或地址信号。例如,第一安全监控电路可以被配置为响应于确定相应校正子的至少一个位被生效,将包括在相应的读取请求中的地址和/或相应校正子传输到故障收集和错误管理电路。类似地,第二安全监控电路可以被配置为响应于确定相应校正子的至少一个位被生效,将包括在相应的写入请求中的地址和/或相应校正子传输到故障收集和错误管理电路。最后,第四安全监控电路可以被配置为响应于确定相应校正子的至少一个位被生效,将被用于相应读取操作的存储器地址和/或相应校正子传送到故障收集和错误管理电路。
例如,在各种实施例中,这些附加信号可以经由错误总线而被传输到故障收集和错误管理电路,即,第一和/或第二安全监控电路可以被配置为经由错误总线传输校正子和/或地址和/或第四安全监控电路可以被配置为经由错误总线传输校正子和/或存储器地址。
在各种实施例中,验证数据信号的安全监控电路还可以允许校正子连接性测试。为此目的,第一安全监控电路、第二安全监控电路和/或第四安全监控电路可以包括多路复用器,该多路复用器被配置为当连接性测试控制信号具有第一值(对应于正常操作状态)时,选择性地向相应的错误检测电路分别提供第一数据、第二数据或第三数据,以及相应的第一ECC位、第二ECC位或第三ECC位。相反,当连接性测试控制信号具有第二值时,多路复用器提供第一位序列,其中第一位序列被配置为在由相应的错误检测电路进行处理时生成第一校正子。此外,当连接性测试控制信号具有第三值时,多路复用器提供第二位序列,其中第二位序列被配置为在由相应的错误检测电路进行处理时生成第二校正子,其中第二校正子对应于相对于第一校正子的位序列而具有反转值的位序列。因此,第一位序列和第二位序列可以被用来选择性地将被用来将校正子传输到故障收集和错误管理电路的数据线的所有位设置为高或低。
在各种实施例中,为了执行被用来将地址信号传输到故障收集和错误管理的数据线的连接性测试,针对具有互补位序列的两个地址而激活连接性测试便已足够。
因此,校验地址信号的(多个)错误检测电路不需要经由多路复用器的完全覆写功能。例如,第三安全监控电路可以仅包括组合逻辑电路,该组合逻辑电路被配置为选择性地反转地址和/或相应的第三ECC位中的一个或多个位(例如一位或两位)的逻辑电平。
通常,如下文将更详细描述的,连接性测试还可以被扩展到被配置为例如在单错误校正双错误检测代码的情况下通过生成不同的错误类型(诸如单位错误和双位错误)来生成多个错误信号的错误检测电路,和/或被配置为验证与控制信号相关联的ECC位的错误检测电路。
附图说明
现在将参考附图描述本公开的实施例,这些附图仅作为非限制性示例来提供,并且其中:
图1示出了包括多个处理系统的电子系统的示例;
图2和图3示出了处理系统的示例;
图4示出了包括故障收集和错误管理电路的处理系统的示例;
图5示出了图4的故障收集和错误管理电路的示例;
图6示出了多个安全监控电路与故障收集和错误管理电路的连接的示例;
图7示出了被配置为根据数据位来生成ECC位的处理系统的实施例;
图8示出了被配置为使用ECC位以用于检测,并且在一些实施例中校正数据位中的错误的处理系统的实施例;
图9示出了被配置为利用附加ECC位来保护写入请求的处理系统的实施例;
图10示出了被配置为利用附加ECC位来保护读取请求的处理系统的实施例;
图11示出了适于在图8、图9和/或图10的处理系统中使用的错误检测电路的实施例;
图12示出了包括连接性测试控制电路的处理系统的实施例;
图13示出了包括ECC错误检测电路和连接性测试电路的安全监控电路的第一实施例;
图14示出了包括ECC错误检测电路和连接性测试电路的安全监控电路的第二实施例;以及
图15示出了多个安全监控电路与故障收集和错误管理电路之间的连接的实施例。
具体实施方式
图1示出了典型的电子系统,诸如车辆的电子系统,其包括多个处理系统10,诸如嵌入式系统或集成电路,例如现场可编程门阵列(FPGA)、数字信号处理器(DSP)或微控制器(例如,专用于汽车市场)。
例如,在图1中示出了通过适当的通信系统20连接的三个处理系统(PS)101、102和103。例如,通信系统可以包括诸如控制器局域网(CAN)总线之类的车辆控制总线,以及诸如面向媒体的系统传送(MOST)总线之类的可能的多媒体总线,经由网关连接到车辆控制总线。通常,处理系统10位于车辆的不同位置处,并且可以包括例如发动机控制单元、变速器控制单元(TCU)、防抱死制动系统(ABS)、车身控制模块(BCM)和/或导航和/或多媒体音频系统。因此,处理系统10中的一个或多个处理系统也可以实现实时控制和调节功能。这些处理系统通常被标识为电子控制单元。
图2示出了诸如微控制器之类的示例性数字处理系统10的框图,其可以被用作图1的任何处理系统10。
在所考虑的示例中,处理系统10包括微处理器102(通常为中央处理单元(CPU)),经由软件指令而被编程。通常,由微处理器102执行的软件被存储在非易失性程序存储器104中,诸如闪存或EEPROM。因此,存储器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选自以下的组中:
一个或多个通信接口IF,例如,用于经由通信系统20交换数据,诸如通用异步接收器/发射器(UART)、串行外围接口总线(SPI)、内部集成电路(I2C)、控制器局域网(CAN)总线、和/或以太网接口、和/或调试接口;和/或
一个或多个模数转换器AD和/或数模转换器DA;和/或
一个或多个专用数字组件DC,诸如硬件计时器和/或计数器,或密码协处理器;和/或
一个或多个模拟组件AC,诸如比较器、传感器,诸如温度传感器等;和/或
一个或多个混合信号组件MSC,诸如PWM(脉冲宽度调制)驱动器。
通常,专用数字组件DC也可以对应于集成在处理系统10中的FPGA。例如,在这种情况下,存储器104还可以包括用于这种FPGA的程序数据。
因此,数字处理系统10可以支持不同的功能性。例如,微处理器102的行为由存储在存储器104中的固件(例如由微控制器10的微处理器102来执行的软件指令)来确定。因此,通过安装不同的固件,相同的硬件(微控制器)可以被用于不同的应用。
在这方面,这种处理系统10的未来一代,例如适于在汽车应用中使用的微控制器,预计会表现出增加的复杂性,这主要是由于所请求的功能性(新协议、新特征等)的数目增加以及执行条件的严格限制(例如,更低的功耗、更高的计算能力和速度等)。
例如,最近提出了更复杂的多核处理系统10。例如,这样的多核处理系统可以被用来(并行地)执行图1中所示的若干处理系统10,诸如车辆的若干个ECU。
图3示出了多核处理系统10的示例。具体地,在所考虑的示例中,处理系统10包括连接到(片上)通信系统114的多个n个处理核1021...102n。例如,在实时控制系统的语境中,处理核1021...102n可以是ARM-R52核。通常,通信系统114可以包括一个或多个总线系统,例如基于高级可扩展接口(AXI)总线架构和/或片上网络(NoC)。
例如,如处理核1021的示例所示,每个处理核102可以包括微处理器1020和被配置为管理微处理器1020和通信系统114之间的通信的通信接口1022。通常,接口1022是主接口,其被配置为将给定(读取或写入)请求从微处理器1020转发到通信系统114,并将可选响应从通信系统114转发到微处理器1020。然而,通信接口1022也可以包括从接口。例如,以这种方式,第一微处理器1020可以向第二微处理器1020发送请求(经由第一微处理器的通信接口1022、通信系统114和第二微处理器的通信接口1022)。
通常,每个处理核1021...102n还可以包括另外的本地资源,诸如一个或多个本地存储器1026,通常被标识为紧密耦合的存储器(TCM)。
如先前所提及,通常处理核1021...102n被布置为与非易失性存储器104和/或易失性存储器104b交换数据。在多核处理系统10中,这些存储器常常是系统存储器,即,为处理核1021...102n而共享。然而,如先前所提及,每个处理核1021...102n可以包括一个或多个附加的本地存储器1026。
例如,如图3中所示,处理系统10可以包括一个或多个存储器控制器100,其被配置为将至少一个非易失性存储器104和至少一个易失性存储器104b连接到通信系统114。如先前所提及,存储器104和/或104b中的一个或多个可以被集成在处理系统10的集成电路中或外部连接到集成电路。
如先前所提及,处理系统10可以包括一个或多个资源106,诸如一个或多个通信接口或协处理器(例如,密码协处理器)。资源106通常经由相应的通信接口1062而连接到通信系统114。通常,通信接口(CI)1062至少包括从接口。例如,以这种方式,处理核102可以向资源106发送请求并且资源返回给定数据。通常,通信接口1062中的一个或多个还可以包括相应的主接口。例如,这样的主接口在资源必须开始通信以便经由(读取和/或写入)请求来与连接到通信系统114的另一电路(诸如资源106或处理核102)交换数据的情况下可能是有用的。例如,为此目的,通信系统114实际上可以包括高级微控制器总线架构(AMBA)高性能总线(AHB)和被用来将资源/外围设备106连接到AMBA AHB总线的高级外围总线(APB)。
通常这样的处理系统10还包括一个或多个直接存储器访问(DMA)控制器110。例如,如图3中所示,基于从资源106接收到的请求,DMA控制器110可以被用来直接与存储器(例如存储器104b)交换数据。例如,以这种方式,通信接口IF可以直接从存储器104b读取数据(经由DMA控制器110)并传输这些数据,而不必与处理单元102进一步交换数据。通常,DMA控制器110可以经由通信系统114或者经由一个或多个专用通信信道来与一个或多个存储器通信。
在这方面,不管处理系统10的复杂性(例如,关于处理核102的数目和/或资源106的数目和类型)如何,典型的处理系统10还包括故障收集和错误管理(FCEM)电路120。
例如,欧洲专利申请号EP 3 534 261 A1公开了故障收集和错误管理电路120的可能实施例,为此目的通过引用将其并入于此。
具体地,如图4中所示,电路102、104和106中的至少一个可以生成一个或多个错误信号ERR1、...、ERRm。例如,此类错误信号ERR可能由以下中的至少一个生成:
存储器104支持错误检测和可选校正功能,当从存储器104读取的数据包含错误时和/或当数据不能被写入到存储器时,该存储器104生成错误信号ERR1;
处理核102,被配置为响应硬件和/或软件故障来生成错误信号ERR2;以及
通信接口,其被配置为生成错误信号ERR3,对应于指示硬件故障的硬错误信号和/或指示数据传输错误的软错误信号。
在所考虑的示例中,各种错误信号ERR1、...、ERRm被提供给故障收集和错误管理电路120。响应于错误信号ERR1、...、ERRm,故障收集和错误管理电路120可以执行各种操作。
例如,故障收集和错误管理电路120可以被配置为生成以下中的至少一个:
提供给处理核102的中断信号IRQ;
提供给处理系统10的复位管理电路的复位请求信号RST;
提供给处理系统10的端子EP的信号ET,例如,以便将错误用信号通知给外部电路;以及
被用来设置处理系统10的一个或多个安全关键端子SCP的输出电平的信号SET。
具体而言,由于错误,处理系统10的电路可能无法正确操作,可能在处理系统10的引脚/焊盘处生成不正确的信号。因此,处理系统10a的一些引脚/焊盘可能是安全关键引脚/焊盘,即,当不正确地驱动时可能产生严重情况的引脚/焊盘。例如,在图4中示意性地示出了由处理核102驱动的第一安全关键引脚SCP1和由诸如通信接口或PWM半桥驱动器之类的资源/外围设备106驱动的第二安全关键引脚SCP2。
通常,处理系统10的每个输入/输出引脚/焊盘通常与相应的驱动器电路IO相关联,该驱动器电路IO被配置为根据从相应块(例如,处理系统102和硬件资源106)接收到的信号来驱动相应的引脚/焊盘。通常,在驱动电路IO和处理系统10a的各块之间也可以布置有专用逻辑,诸如一个或多个多路复用器,以允许引脚映射的配置。
因此,与文件EP 3 534 261 A1的公开内容一致地,安全关键引脚/焊盘SCP的驱动电路IO可以被配置为响应于信号SET而将相应引脚的输出电平设置为给定的安全状态。诸如高阻抗状态或给定逻辑电平(高或低)的输出电平可以取决于特定的应用需求。优选地,这样的“安全状态”符合ISO2626规范。
图5示出了故障收集和错误管理电路120的可能实施方式。
在所考虑的示例中,故障收集和错误管理电路120包括寄存器1200。具体地,在所考虑的示例中,寄存器1200包括用于存储错误信号ERR的值的一个或多个错误位EB。例如,考虑三个错误信号ERR1..ERR3的示例性情况,寄存器1200可以包括对应数目的错误位EB。
在所考虑的示例中,故障收集和错误管理电路120包括内部反应电路1202。具体地,内部反应电路1202可以被配置为根据寄存器1200的错误位EB的内容来生成中断信号IRQ和/或复位请求信号RST。错误位EB是完全可选的,并且外部反应电路1202也可以直接根据(多个)错误信号ERR来生成中断信号IRQ和/或复位请求信号RST。
类似地,故障收集和错误管理电路120包括外部反应电路1204。具体地,外部反应电路1204可以被配置为根据寄存器1200的错误位EB的内容来生成错误触发信号ET和/或信号SET。同样,错误位EB是完全可选的,并且外部反应电路1204也可以直接根据(多个)错误信号ERR来生成信号ET和/或信号SET。
一般来说,例如,通过设置寄存器1200中的一个或多个配置位,反应电路1202和/或1204的行为也可以是可编程的。例如,在所考虑的示例中,寄存器1200包括:
用于每个错误信号ERR1…ERR3的相应中断使能位IE,即,当生效的错误信号ERR的相应中断使能位IE也被生效时,中断信号IRQ被生效;
用于每个错误信号ERR1…ERR3的相应错误触发使能位ETE,即,当生效的错误信号ERR的相应错误触发使能位ETE也被生效时,错误触发信号ET被生效。
类似地,寄存器1200可以包括用于复位请求信号REQ的相应复位使能位和/或用于安全信号SET的相应使能位。
为了简化处理单元102和寄存器1200之间的数据交换,寄存器1200可以由处理单元102直接寻址,这在图3中被示意性地示出,其中故障收集和错误管理电路120连接到通信系统114.
通常,如图6中所示,硬件错误信号ERR由专用安全监控电路SM生成。例如,这样的安全监控电路可以包括组合和/或顺序逻辑电路,其监控给定电路的操作。通常,这样的安全监控电路SM还可以包括模拟组件,例如用于检测模拟信号的超出范围的条件,诸如内部电源电压或指示处理系统的操作温度的信号或处理系统的特定电路。
例如,图6示出了被配置为监控存储器104的一个或多个信号的安全监控器电路SM104、被配置为监控处理核102的一个或多个信号的安全监控器电路SM102以及被配置为监控资源/外围设备106的一个或多个信号的安全监控器电路SM106。通常,安全监控电路也可以集成在相应的电路中。
因此,通常每个安全监控电路SM监控由相关联的电路生成的和/或提供给相关联的电路的一个或多个信号,并确定(一个或多个)信号的行为是否正常或指示错误。一般来说,由给定的安全监控电路SM执行的操作取决于相关联的电路,并且可以包括,例如:
组合分析,例如,通过组合相关联的电路的信号以便确定信号电平是否一致;
顺序分析,例如,通过比较一个或多个信号的时间演变与一个或多个参考信号的时间演变;
对一个或多个模拟信号的分析,例如,通过将模拟信号的值与一个或多个参考值进行比较;或者
上述分析的组合,以便实现更复杂的异常行为分析。
例如,安全监控电路SM104可以包括存储器104的错误检测电路,其(经由组合逻辑运算,并且在一些实施例中是顺序逻辑运算)计算用于从存储器读取的数据的纠错码,并(经由组合运算)比较计算出的纠错码与从存储器中读取的纠错码。
因此,响应于确定异常行为,安全监控电路SM可以使相应的错误信号ERR生效,其向故障收集系统120用信号通知该错误。
在以下描述中,给出了许多具体细节以提供对实施例的透彻理解。实施例可以在没有一个或几个具体细节的情况下被实践,或者使用其他方法、组件、材料等来实践。在其他实例中,未详细示出或描述众所周知的结构、材料或操作以避免模糊实施例的各方面。
在整个说明书中对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在至少一个实施例中。因此,在整个说明书的各个地方出现的短语“在一个实施例中”或“在实施例中”不一定都指代相同的实施例。此外,特定特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。
本文中提供的标题仅为方便起见,并不解释实施例的范围或含义。
在下面的图7到图15中,已经参照图1到图6描述过的部分、元件或组件由先前在这些图中使用的相同附图标记来标示;为了不使本详细描述负担过重,下面将不再重复对这些先前描述过的元件的描述。
如先前所提及,本公开的各种实施例涉及一种被配置为测试一个或多个安全监控电路与故障收集和错误管理电路之间的连接的处理系统。例如,在各种实施例中,处理系统被配置为测试包括ECC错误检测电路的一个或多个安全监控电路(即,被配置为验证纠错码(ECC)的电路)的连接。对于这些电路和相应的处理系统10的一般描述可以参考对图1至图6的先前描述。
图7和图8示出了包括主设备40和从设备42的通用处理系统10a,其中主设备40和从设备42使用传统的ECC保护方案。
例如,在图7中,主电路40将数据DATA传输到从设备42。例如,从设备42接收数据位DATA和由纠错码生成电路44生成的附加纠错码位ECC,纠错码生成电路44被配置为根据数据位DATA生成位ECC。
例如,在各种实施例中,主设备40可以是处理核102,例如微处理器1020,或DMA控制器110。相反,从设备42可以是存储器,诸如非易失性存储器104或易失性存储器104b,例如RAM存储器。例如,纠错码生成电路44可以被集成在存储器42的存储器控制器100中。例如,微处理器1020或DMA控制器110(主设备40)可以经由通信系统114将包括数据MDATA(对应于图7中的数据DATA)的写入请求发送到存储器控制器100。然后存储器控制器100可以经由相应的纠错码生成电路44计算位ECC并将数据位MDATA和位ECC写入到存储器,例如,写入到包括在写入请求中的存储器地址MADR。
相反,在图8中,主电路40从从设备42接收给定数据DATA。例如,从设备42提供数据位DATA和附加纠错码位ECC。
例如,为此目的,微处理器1020或DMA控制器110(主设备40)可以经由通信系统114向存储器控制器100发送读取请求。然后存储器控制器100可以从存储器(例如从读取请求中包含的存储器地址MADR)读取数据位MDATA和位ECC,并将数据位MDATA(对应于图8中的数据)传输到微处理器1020或DMA控制器110。
然而,如图8中所示,在这种情况下,错误检测电路46被配置为验证位DATA和ECC,并且可能生成一个或多个错误信号ERR。例如,可以将一个或多个错误信号ERR提供给主电路40和/或故障收集和错误管理电路120。
例如,错误检测电路46可以被集成在存储器控制器100中。例如,在简单的错误检测电路46的情况下,该电路仅验证位DATA和ECC的正确性。然而,错误检测电路46还可以提供关于错误的位置的信息,因此错误校正电路可以使用该信息来校正数据位DATA中的错误。通常,错误校正电路可以与错误检测电路集成在错误检测和校正电路46中,或者错误校正电路可以是单独的电路。因此,电路46实际上可以向主设备40提供经校正的数据位DATA。
此外,这样的ECC方案也可以被用于经由通信系统114交换的通信,即,连接到通信系统114的各种通信接口可以被配置为向经由通信系统114交换的事务添加一个或多个纠错码(ECC)。
例如,图9示出了一个实施例,其中主接口40,诸如处理核102或DMA控制器110的通信接口,经由通信系统114将写入请求发送到从接口42,诸如存储器控制器100或资源/外围设备106的通信接口。例如,在图9中,主接口40发送包括以下内容的写入请求:
与目标从接口42相关联的通信系统114的物理目标地址ADR,
数据位WDATA,包括要被传送/写入到从接口42的数据,以及
一个或多个请求控制位/信号REQC。
例如,请求控制数据REQC可以指示该请求是写入请求还是读取请求。请求控制信号REQC的集合取决于所使用的协议,并且还可以包括其他信息,例如,用于指示是否执行单个事务或者是否应执行多个读取或写入事务的突发。例如,存储器控制器可以将数据WDATA写入到根据物理目标地址ADR所确定的存储器地址,并且资源可以将数据WDATA写入到与物理目标地址ADR相关联的寄存器。
在各种实施例中,响应于写入请求,从接口42还可以返回一个或多个响应控制位RESC。响应控制信号RESC的集合取决于所使用的协议,并且可以包括如事务响应或确认信号之类的信号,被用来指示在事务中是否已经检测到任何错误和/或指示从电路42是否准备好接收新事务的就绪信号。
相反,图10示出了一个实施例,其中主接口40经由通信系统114向从接口42发送读取请求。例如,在图10中,主接口40发送读取请求,包括:
与目标从接口42相关联的通信系统114的物理目标地址ADR,以及
一个或多个请求控制位REQC。
例如,如先前所提及,请求控制数据REQC可以指示该请求是读取请求。
因此,响应于读取请求,从接口42返回数据位RDATA,数据位RDATA包括要被传送到主接口40的(读取)数据。在一些实施例中,从接口42也可以返回一个或多个响应控制位RESC。例如,存储器控制器可以返回从根据物理目标地址ADR所确定的存储器地址读取的数据,并且资源可以返回与物理目标地址ADR相关联的寄存器的内容。
因此,在各种实施例中,每个通信接口40或42可以被配置为:
根据要被传输到通信系统114的位来生成ECC位,并将这些ECC位与其他位一起传输到通信系统114;以及
验证从通信系统114接收的ECC位。
通常,ECC位可以被添加到所有位或仅添加到位的子集,例如,仅添加到地址ADR和数据位WDATA/RDATA。例如,为了保证符合ISO26262 ASIL级别的事务保护,所有信号(数据WDATA/RDATA、地址ADR、请求控制信号REQC和响应控制信号RESC)都可以通过ECC位进行保护。因此,在各种实施例中,主接口40可以被配置为将ECC位添加到地址位ADR、请求控制位REQC,并且在写入请求的情况下添加到相应的数据位WDATA。一般而言,主接口40可以为这些位组(ADR、REQC、WDATA)中的每一个或其组合生成ECC位。类似地,从接口42可以被配置为将ECC位添加到响应控制位RESC,并且在读取请求的情况下添加到相应的数据位RDATA。通常,从接口42可以为这些位组(RESC、RDATA)中的每一个或其组合生成ECC位。例如,在当前优选实施例中,ECC位分别被添加到每种类型的信号,即,第一ECC位用于数据WDATA或RDATA,第二ECC位用于地址ADR,第三ECC位用于请求控制信号REQC,并且第四ECC位用于响应控制信号RESC。
例如,这在图9和图10中被示意性地示出,其中主接口40包括一个或多个纠错码生成电路44a和一个或多个错误检测和可选的校正电路46a。类似地,从接口42包括一个或多个纠错码生成电路44b和一个或多个错误检测和可选的校正电路46b。例如,在将单独的ECC位添加到各种类型的信号并且为了允许并行处理的情况下,主接口40可以包括三个纠错码生成电路44a(用于地址ADR、请求控制位REQC和可选数据WDATA)和两个错误检测和可选校正电路46a(用于响应控制位RESC和可选数据RDATA)。相反,从接口42可以包括两个纠错码生成电路44b(用于响应控制位RESC和可选数据RDATA)和三个错误检测和可选校正电路46a(用于地址ADR、请求控制位REQC和可选数据WDATA)。
因此,连接到通信系统114并被配置为交换安全相关信息的每个接口电路应该能够生成和验证相应的ECC位。在这方面,这些接口电路中的每一个还可以包括多个纠错码生成电路44和多个错误检测和可选校正电路46。
通常,纠错码生成电路44不生成错误信号,因为与正在传输的信息相关联的ECC位的有效性是由接收它们的实体完成的。事实上,错误检测和校正电路46可以生成一个或多个错误信号ERR,例如,指示是否已经检测到错误,并且在一些实施例中,指示错误是否被校正。因此,在各种实施例中,处理系统10a被配置为测试处理系统10a的各种错误检测和可选校正电路46与故障收集和错误管理电路120之间的连接。
图11在这方面示出了错误检测电路46的实施例。
例如,在所考虑的实施例中,错误检测电路46接收数目为N的数据位DATA和数目为K的ECC位。通常,虽然一般用附图标记DATA来指示,但是实际上数据位DATA可以包括也与先前提及的地址ADR或MADR、数据WDATA、RDATA或MDATA、请求控制位REQC或响应控制位RESC相关的位。
通常,ECC位的数目K取决于DATA位的数目N和ECC方案,例如可以修复多少位,诸如64个数据位和8个ECC位。因此,取决于所实现的纠错码(ECC)的复杂性,电路46能够检测直到给定数目的翻转位并最终修复它们。例如,在适于在汽车市场中使用的微控制器领域中,所采用的ECC方案通常能够检测到最多两个错误位并修复一个错误位,即所谓的单错误校正(SEC)双错误检测(DED)码。对于错误检测和在一些实施例中对于校正码的一般描述,可以参考维基百科的对应网页“错误检测和校正(Error detection and correction)”,例如2021年5月6日的版本,其内容通过引用并入于此。例如,应用笔记XAPP383“使用CoolRunner-IITM CPLD的单错误校正和双错误检测(Single Error Correction andDouble Error Detection(SECDED)with CoolRunner-IITM CPLDs)”(v1.1,2003年8月1日)中描述了SECDED码的可能实施方式。另一种使用SECDED码的可能的错误检测和校正电路在文件US 8,381,083B2中被公开。该文件还公开了还可以为其他数据(例如为地址ADR的数据)计算位ECC。
例如,在所考虑的实施例中,错误检测电路46包括校正子计算电路460,其被配置为:
接收数据位DATA和ECC位;
计算接收到的数据位DATA的ECC位;以及
将计算出的ECC位与接收到的ECC位进行比较。
在纠错码的情况下,这种比较的结果,被称为校正子SYN,指示(一个或多个)不正确位的位置。校正子SYN对应于具有K位的位序列。
因此,在校正子SYN不同于被设置为零的K位的位序列(即,不同于值0)的情况下,检测到错误。例如,这在图11中被示意性地示出,其中逻辑门464,诸如逻辑或(OR)门,被用来根据校正子SYN生成错误信号ERR1,即,在校正子SYN的至少一个位被生效时错误信号ERR1被生效。然而,在SEC码的情况下,校正子计算电路460无法检测双位错误。事实上,错误信号ERR1将针对单位错误和双位错误都被生效。
因此,在各种实施例中,纠错码验证电路46还包括被配置为例如检测单位错误的电路462。例如,在最简单的情况下,单位错误检测电路46可以验证偶校验或奇校验,从而生成指示单位错误发生的信号SB。例如,在这种情况下,位ECC可以包括一个或多个专用奇偶校验位,该奇偶校验位也可以不被提供给校正子计算电路460。
然而,通常这种单位错误检测电路462不能在正确数据和双位错误之间进行区分。因此,通过组合错误信号ERR1(指示单位错误或双位错误)和信号SB(指示单位错误),可以经由组合逻辑电路生成指示双位错误发生的信号ERR2,例如,当错误信号ERR1被生效并且信号SB被取消生效时,使错误信号ERR2生效。例如,在所考虑的实施例中,组合逻辑电路包括反相器468和逻辑与门470。
因此,错误检测电路46可以被配置为使用校正子SYN和位SB来生成具有N+K位的单位错误签名SIG。例如,在所考虑的实施例中,该操作在单位错误检测电路462中被实现。
例如,在单位错误的情况下,即信号SB被生效,电路46/462被配置为使对应于由校正子SYN指示的位置的信号SIG的位生效,而信号SIG的其他位被取消生效。
在电路462不直接提供信号SB的情况下,对应的信号SB因此可以经由信号SIG的位的逻辑组合来生成,例如经由逻辑或门466,因为至多只有一个信号SIG的位应该被生效。
通常,还可以使用其他ECC方案/代码来生成位翻转签名SIG,这也可以指示一个以上的位应该被翻转,例如在双纠错码的情况下。类似地,在这种情况下,错误信号ERR1和ERR2一般来说可以指示错误发生(错误信号ERR1),并且在一些实施例中,错误是可校正或不可校正的(错误信号ERR2)。
因此,在各种实施例中,可以将信号ERR1、ERR2和SIG提供给例如在电路46中实现的错误校正电路,因此该错误校正电路可以:
在没有用信号通知错误的情况下(例如,信号ERR1被取消生效并且信号ERR2被取消生效),将原始数据DATA提供给相关联的主接口40或从接口42;
在可校正位错误的情况下(例如,信号ERR1被生效并且信号ERR2被取消生效),翻转(一个或多个)相应位的逻辑电平,例如,在位DATA中出现错误的情况下,如由签名SIG所指示的,并且将校正后的数据DATA提供给相关联的主接口40或从接口42;以及
在不可校正位错误的情况下(例如,信号ERR1被生效并且信号ERR2被生效),向相关联的主接口40或从接口42用信号通知错误。
因此,处理系统的各种ECC错误检测电路46本质上表示安全监控电路,其被配置为监控位DATA(可能包括地址ADD/MADR,或控制位REQC或RESC)并验证数据位DATA是否包含不正确的位,并且在一些实施例中,验证是否包含不可校正的位。因此,在各种实施例中,由错误检测电路46生成的错误信号(例如,ERR1和ERR2),以及在一些实施例中的校正子SYN和/或签名SIG被提供给处理系统110a的故障收集和错误管理电路120。
发明人已经观察到,用于测试ECC错误检测电路46与故障收集和错误管理电路120之间的连接性的可能解决方案包括向ECC错误检测电路46的输入提供包括一个或多个翻转位的位序列。通常,位序列因此表示一个位模式,例如,该位序列可以对应于:
正确模式,即数据位DATA和ECC位的序列根据所使用的ECC方案/代码而依据数据位DATA进行计算,
包括可校正错误的第一错误模式,即,具有在一和最大可校正位错误数目之间的位错误/翻转位的数目(相对于正确模式),例如在SEC码的情况下具有单位错误;或者
包括不可校正错误的第二错误模式,即,具有对应于可检测位错误的最大数目的多个位错误/翻转位(相对于正确模式),例如,在DED码的情况下具有双位错误。
例如,在易失性存储器104b的情况下,微处理器1020可以被配置为将错误模式写入到特定地址,然后对该地址执行读取请求,由此,相关联的ECC错误检测电路46验证位序列并使相应的错误信号生效。然而,由于ECC位(用于读取和写入请求)是由相关联的ECC生成电路44直接生成的这一事实,需要附加的电路将错误模式从微处理器1020路由到存储器104b,从而绕过ECC生成电路44。然而,这些附加电路也必须受到保护以防止故障。
此外,这样的测试可以用于存储器104b的ECC错误检测电路46的情况,但是不能容易地扩展到ECC错误检测电路46例如关于地址和控制信号而监控通信系统114的事务的测试。最后,生成损坏的数据和/或ECC信息并将其写入到存储器,使存储器处于“脏”状态,因为它包含带有错误ECC信息的存储器位置。例如,一些处理系统可以被配置为执行周期性存储器检查路由,其中通过读取和验证相应内容来测试所有(或随机选择的)存储器位置。因此在这种情况下,应该重置损坏的存储器位置,或者应该将正确的数据存储到存储器位置。
在任何情况下,这种基于软件的测试都会需要微处理器1020分别测试每个ECC错误检测电路46。然而,在现代微控制器中,需要测试大量ECC错误检测电路46,因此意味着执行时间长。例如,当处理系统10a的最大允许启动时间很短——这通常是汽车应用的情况,这可能是一个问题。然而,这样的测试只能在处理系统10a的启动阶段被执行,因为在运行时期间存储器104b可能已经存储了数据。
因此,在下文中将描述用于测试ECC错误检测电路46与系统故障收集和检测电路120之间的连接性的不同解决方案。
例如,在各种实施例中,当使用经由通信系统114交换的转变的ECC保护时,所公开的解决方案特别有用,因为这些解决方案可以被用来在任何类型的位序列中生成错误,并且例如前面提及的数据WDATA/RDATA、地址ADR和控制信号REQC/RESC。然而,所公开的解决方案也可以被用于ECC存储器保护的语境中,例如通过仅将解决方案用于存储到存储器的数据位MDATA或者通过还将附加ECC位存储到存储器104/104b,其中附加ECC位已根据相应的存储器地址MADR而被计算。
图12示出了根据本公开的处理系统10a。
例如,同样在这种情况下,处理系统10a包括至少一个处理核102a,该处理核102a包括至少一个微处理器1020,即,至少一个微处理器1020经由通信接口1022连接到例如包括系统总线或NoC的通信系统114。例如,通信接口1022是被配置为向通信系统114发送读取或写入请求的至少一个主通信接口,即,处理核102a是主电路40。在一些实施例中,处理系统10a还可以包括连接到通信系统114的一个或多个另外的主电路40,诸如DMA控制器110a。处理系统10a还包括至少一个从设备42,诸如存储器控制器100a或资源/外围设备106a。
如先前所提及,当对经由通信系统114交换的事务使用ECC保护时,至少安全相关电路或连接到通信系统114的所有电路包括ECC生成电路44,ECC生成电路44被配置为针对传输到通信系统114的多个位计算ECC位并验证从通信系统114接收到的ECC位(也参见图9和图10的描述)。例如,每个主电路40包括错误检测,并且在一些实施方式中包括校正电路46,其被配置为验证响应控制位RESC和/或数据RDATA的ECC位(在读取请求的情况下)。相反,每个从电路42包括错误检测(和可选的校正)电路46,其被配置为验证地址ADR、请求控制位REQC和/或数据WDATA的ECC位(在写入请求的情况下)。
相反,当对存储器104或104b使用ECC保护时,相应的存储器控制器100a可以包括ECC生成电路44,该ECC生成电路44被配置为计算存储到存储器的相应的数据MDATA的ECC位,其中存储器控制器100将ECC位存储到存储器。在各种实施例中,ECC生成电路44还计算被用来选择相应的存储器位置的地址MADR的另外的ECC位,其中存储器控制器100将另外的ECC位存储到存储器。因此,在这种情况下,当存储器控制器100a从存储器的给定地址MADR读取数据MDATA时,存储器控制器100a还可以读取相应的ECC位和可选的另外的ECC位,并且错误检测(和可选的校正)电路46可以被配置为验证读取数据MDATA的ECC位和/或在一些实施例中验证地址MADR的ECC位。通常,类似的ECC存储器保护也可以在(本地)存储器1026的处理核102a内被实现。
因此,每个错误检测电路46可以被配置为接收数据位DATA和ECC位。例如,如先前所提及,数据位DATA可以对应于数据WDATA/RDATA/MDATA、地址ADR/MADR或控制位REQ/RESC。接下来,错误检测电路46根据所使用的ECC方案/代码依据接收到的数据位DATA来计算另外的ECC位,通过将计算出的ECC位与接收到的ECC位进行比较来生成校正子SYN,并验证所述校正子SYN的所有位是否被取消生效。例如,当校正子SYN的至少一个位被生效时,错误检测电路46可以使错误信号ERR1生效。
例如,在各种实施例中,在数据位RDATA、WDATA或MDATA的情况下,电路46是错误检测和校正电路,被配置为校正多达给定数目的可校正位。例如,为此目的可以使用块码,诸如里德-索罗蒙(Reed-Solomon)码、戈莱(Golay)码、博斯-乔赫里-霍克文黑姆(BCH:Bose-Chaudhuri-Hocquenghem)码、多维奇偶校验码或汉明码,诸如SECDED汉明码。相反,在地址或控制位的情况下,电路46可以仅被配置为检测多达给定数目的可检测不正确位的错误检测电路。例如,在这种情况下,可以使用一个或多个奇偶校验位,诸如一个或两个奇偶校验位,由此校正子SYN不提供有关错误的位置的信息,而只是提供是否发生错误。
如图12中所示,各种错误信号ERR被提供给故障收集和错误管理电路120a。例如,故障收集和错误管理电路120a可以根据错误信号ERR来生成一个或多个内部和/或外部反应。在各种实施例中,故障收集和错误管理电路120a还可以实现日志记录功能,如经由列表示意性地示出的,例如利用与故障收集和错误管理电路120a相关联的存储器1220来实现。例如,为了允许适当的日志记录功能,当检测到错误时,错误检测电路46不仅可以向故障收集和错误管理电路120a提供(一个或多个)错误信号ERR,而且还可以提供另外的信息,例如相应的校正子SYN和/或所使用的地址,即,在ECC事务保护的情况下是地址ADR或在ECC存储器保护的情况下是地址MADR。
事实上,地址和校正子可能对错误管理和设备质量都很重要。例如,如果校正子SYN报告ECC错误,那么故障可能是由于不可修复的硬件故障(位卡住)或软错误(动态位翻转)造成的。因此,在后一种情况下,修复错误是可能的,例如通过覆写发生错误的地址MADR处的存储器。并且,错误管理电路120a可以使用校正子SYN来分析对于相同地址(例如,存储器地址MADR)是否已经发生类似错误。例如,如果已经报告了相同的错误(即,列表1220已经包括地址ADR/MADR和校正子SYN的相同组合),那么错误管理电路120a可以不添加附加的记录,而是增加与记录相关联的计数值。例如,以这种方式,错误管理电路120a可以验证计数值是否达到指示沿着设备寿命的可接受ECC位故障的最大数目的给定最大值。
例如,在各种实施例中,只有被配置为监控数据位WDATA、RDATA或MDATA的错误检测和在一些实施例中的校正电路46被配置为还传输地址(在WDATA或RDATA的情况下是ADR;在MDATA的情况下是MADR)和校正子SYN。相反,错误检测电路监控地址(ADR,MADR)或控制位(REQC,RESC)可能只报告是否发生错误,也可能传输相应的地址。例如,如先前所提及,仅针对数据位计算出的校正子SYN也可以指示错误位置,而简单的错误检测码可以被用于地址和控制信号。
如图12中所示,为了执行给定ECC错误检测电路46的连接性测试,处理系统10a包括ECC连接性测试电路130,ECC连接性测试电路130被配置为为每个ECC错误检测电路46生成一个或多个相应的连接性测试控制信号CT,诸如连接性测试控制信号CT1…CTk。
在各种实施例中,ECC连接性测试电路130,在此也被标识为操作安全检查和报告(OSCAR)电路,经由相应的从接口(图12中未示出)而连接到通信系统114,并且可以包括被用来生成连接性测试控制信号CT的一组寄存器。在所考虑的实施例中,ECC连接性测试电路130的这些寄存器可以通过经由通信系统114发送相应的写入请求而进行编程,由此ECC连接性测试电路130的操作可以经由通过微处理器1020执行的软件指令来控制。
附加地或替代地,ECC连接性测试电路130可以被配置为在处理系统10a开启时和/或响应于经由通信系统114接收到的给定命令而自动执行给定的ECC连接性测试序列。
因此,在各种实施例中,ECC连接性测试电路/OSCAR IP 130可以是用于所有ECC错误检测电路46或至少多个ECC错误检测电路46的系统IP。此外,在各种实施例中,ECC连接性测试电路130包括寄存器,寄存器被用来决定哪些ECC错误检测电路46应当被测试,以及在一些实施例中决定哪种类型的错误应当被生成。
因此,在各种实施例中,每个要被测试的ECC错误检测电路46具有相关联的专用测试电路,其被配置为根据相应的(一个或多个)连接性测试控制信号CT来修改ECC错误检测电路46的输入信号。
例如,如下文将更详细描述的,在各种实施例中,所提出的解决方案可以被用来:
为一个或多个(或者甚至所有)ECC错误检测电路46启用给定类型的连接性测试,其中一旦执行相应的写入或读取请求,就执行连接性测试;和/或
在给定ECC错误检测电路46中直接注入给定ECC错误。
因此,降低了被用来测试ECC错误检测电路46的SW的复杂性,因此也减少了运行ECC连接性测试所需的时间。此外,在各种实施例中,ECC连接性测试也可以在最终应用的运行时期间执行。例如,如下文将更详细描述的,ECC连接性测试可以被用来“运行中”测试连接性,而不需要将损坏的数据写入到存储位置,诸如存储器位置或寄存器。
例如,为了生成连接性测试控制信号CT,ECC连接性测试电路130可以包括:
可选的使能寄存器OEN;以及
多个控制寄存器OCTRL。
例如,使能寄存器OEN可以被用来根据连接性测试控制寄存器OCTRL的内容来实现控制信号CT的生成。通常,控制寄存器OCTRL的数目取决于连接到ECC连接性测试电路130的ECC错误检测电路46的数目,并且在一些实施例中取决于要被注入的ECC错误的类型,诸如单位错误或双位错误。例如,对于每个ECC错误检测电路46,控制寄存器OCTRL可以包括多个位,这些位控制应该在相应的ECC错误检测电路46中生成的错误的类型,诸如可校正错误(例如,单位错误)或不可校正错误(例如,双位错误)。
图13和图14示出了与给定ECC错误检测电路46相关联的测试电路的两个实施例。例如,图13和图14分别示出了包括ECC错误检测电路46的安全监控电路SMa和SMb的实施例。
例如,根据前面的描述,ECC错误检测电路46被配置为接收具有N位数据DATA和K个ECC位的位序列SEQ。基于ECC位的验证,ECC错误检测电路46被配置为生成:
被提供给故障收集和错误管理电路120a的信号,例如一个或多个错误信号ERR,以及在一些实施例中的校正子SYN和/或地址ADR/MADR;以及
被提供给相关联的主电路40或从电路42的信号,诸如:
在电路46仅实现错误检测功能的情况下的一个或多个错误信号ERR和可选的位翻转签名SIG,其可以被电路40/42的错误校正电路用来校正数据DATA;或者
在电路46还实现错误校正功能的情况下的校正数据。
例如,被提供给故障收集和错误管理电路120a的信号可以取决于由ECC错误检测电路46验证的数据位DATA的类型。例如,在ECC错误检测电路46被配置为验证地址ADR/MADR或控制信号REQC/RESC的ECC位的情况下,ECC错误检测电路46可以仅提供一个或多个错误信号ERR,其指示相应的位序列SEQ是否包括不正确位,在一些实施例中,还提供相应的地址ADR/MADR。相反,在ECC错误检测电路46被配置为验证数据WDATA、RDATA或MDATA的ECC位的情况下,ECC错误检测电路46可以提供一个或多个错误信号ERR、校正子SYN和相应的地址ADR(在事务的情况下)或MADR(在存储器访问的情况下)。
例如,可以针对数据MDATA进行校正子的日志记录以检查存储器位的质量,这可以是设备工艺和制造质量的指示。相反,地址位翻转通常是由于瞬态故障而发生的,是由于意外原因而发生的,并且不一定被认为是质量差的指示,因此不需要对相应校正子的日志记录。这同样适用于控制信号故障。
例如,在图13中所示的实施例中,安全监控电路SMa被配置为选择性地翻转位序列SEQ的给定数目的位。例如,如先前所提及,ECC码通常被配置为检测不正确位的给定最大数目,并且在一些实施例中,校正给定最大数目的不正确位,其中通常可检测的不正确位的最大数目对应于可校正的不正确位的最大数目加一,具体情况例如对于SECDED码,其中可检测的不正确位的最大数目对应于2,并且可校正的不正确位的最大数目对应于1。
因此,在各种实施例中,安全监控电路SMa被配置为翻转多达可检测的不正确位的最大数目,例如在SECDED码的情况下多达两个位。例如,在各种实施例中,安全监控电路SMa被配置为:
例如当相应的连接性测试控制信号CT1和CT2被取消生效时不翻转位序列SEQ的任何位;
例如当连接性测试控制信号CT1和CT2被生效时,翻转给定的第一数目的位,其中位的第一数目对应于可检测的不正确位的最大数目;以及
例如当连接性测试控制信号CT1被生效并且连接性测试控制信号CT2被取消生效时(或反之亦然),翻转给定的第二数目的位,其中位的第二数目选自1和可校正的不正确位的最大数目之间。
因此,安全监控电路SMa被配置为:根据相应的连接性测试控制信号CT,向ECC错误检测电路46提供原始位序列SEQ、具有不可校正错误的位序列SEQ或具有可校正错误的位序列SEQ。
例如,图13示出了在SECDED码的情况下的可能实施例,其中安全监控电路SMa被配置为:根据连接性测试控制信号CT1,例如经由多路复用器472和XOR门474,选择性地翻转序列SEQ的第一位,并且根据连接性测试控制信号CT2,例如经由多路复用器476和XOR门478,选择性地翻转序列SEQ的第二位。通常,代替使用多路复用器472/476和XOR门474/478,相应的位也可以直接经由XOR门在第一输入处接收序列SEQ的相应的位并且在第二输入处接收相应的连接性测试控制信号CT1/CT2来生成。
相反,在图14中所示的实施例中,安全监控电路SMb被配置为:根据相应的连接性测试控制信号CT,诸如连接性测试控制信号CT3,例如经由多路复用器480向ECC错误检测电路46提供:
原始位序列SEQ,
具有不可校正错误(例如,具有双位错误)的位序列DBE;
具有可校正错误的一个或多个位序列SBE,诸如具有单位错误的两个序列SBE1和SB2。
在各种实施例中,位序列DBE和SBE是固定的/硬连线的。
因此,在两个实施例中,通常两个位(测试控制信号CT1和CT2,或具有两个位的测试控制信号CT3)就足以将给定的错误模式应用于ECC错误检测电路46,即只有两个位线必须在ECC连接性测试电路130和各种ECC安全监控电路SMa/SMb之间进行连接。本领域技术人员将了解,图13中所示的实施例相对于图14中所示的实施例具有显著降低的复杂性。然而,如下文将更详细描述的,图14的解决方案允许用完全不同的值替换原始输入数据SEQ。
一般来说,图13和图14中所示的实施例可以被应用于任何类型的数据位,诸如数据WDATA/RDATA/MDATA、地址ADD/MADR和控制位REQC/RESC,因为它不依赖于写入永久损坏的数据。事实上,对于地址和控制信号,这通常是不可能的,因为这些信号是由主从电路40/42在运行中生成的。
在这方面,所提出的ECC连接性测试可以被用来选择性地触发不同类型的ECC错误,而无需将损坏的数据存储到存储器位置。这还允许验证安全监控电路SMa/SMb是否向故障收集和错误管理电路120a报告错误(可能包括相应的地址和/或校正子),以及故障收集和错误管理电路120a是否正确地管理所诉诸的错误。
如先前所提及,虽然安全监控电路SMa被配置为选择性地改变多达给定最大数目的位(对应于可检测的不正确位的最大数目),但是安全监控电路SMb允许替换完整的位序列。例如,安全监控电路SMb可以被用于ECC错误检测电路46,该ECC错误检测电路46被配置为还报告校正子SYN。例如,如先前所提及,这可以应用于被配置为验证数据RDATA、WDATA或MDATA的ECC错误检测电路46,其还可以报告地址ADR/MADR和/或校正子SYN。因此,在这种情况下,不仅应该验证错误信号ERR的传输,而且还该应验证地址ADR/MADR和/或校正子SYN的传输。
例如,图15示出了将多个安全监控电路连接到故障收集和错误管理电路120a的实施例。例如,在所考虑的实施例中,处理系统10a对于连接到通信系统114的给定从接口包括:
第一安全监控电路SMa1,被配置为接收地址位ADR和相应的位ECC1;
第二安全监控电路SMa2,被配置为接收请求控制位REQC和相应的位ECC2;以及
第三安全监控电路SMa2,被配置为接收请求控制位REQC和相应的位ECC3。
例如,在所考虑的实施例中,安全监控电路SMa1和SMa2对应于关于图13描述的安全监控电路SMa,例如,仅包括错误检测电路46。在这种情况下,安全监控电路SMa1和SMa2可以被配置为在错误的情况下将一个或多个相应的错误信号ERRa或ERRb传输到故障收集和错误管理电路120a,并且在一些实施例中,还传输地址位ADR。相反,安全监控电路SMb1对应于关于图14描述的安全监控电路SMb,例如,包括错误检测和校正电路46。在这种情况下,安全监控电路SMb1可以被配置为在错误的情况下将一个或多个相应的错误信号ERRc以及由安全监控电路SMb1的错误检测电路46生成的校正子SYN和/或地址位ADR传输到故障收集和错误管理电路120a。
例如,在各种实施例中,将各种错误信号ERR分别提供给故障收集和错误管理电路120a。相反,经由共享错误总线EBUS来传输地址和/或校正子SYN。
一般来说,为了测试报告地址ADR/MADR和/或校正子SYN的连接性,所报告的信号的每个位都应被设置为高和设置为低,从而允许检测线路被卡在低或被卡在高。因此,为了测试给定信号的连接性,信号的位应被设置为两个互补的位序列。
例如,在图15中所示的连接情况下,每个错误信号ERR应被设置为高和设置为低。此外,假设只有安全监控电路SMb向例如错误总线EBUS提供地址信号ADR和/或校正子SYN,则被提供给故障收集和错误管理电路120a的地址信号ADR和/或校正子SYN应被设置为两个互补的位序列。
如前所述,ECC校正子SYN对应于签名,该签名可以被用来修复故障数据。校正子SYN的值取决于翻转哪个(哪些)位并唯一地标识它们。因此,知道所使用的ECC方案/代码,例如在设计时,可以为安全监控电路SMb选择两个位序列,这会生成互补的校正子SYN。例如,这在图14中被示出,其中使用了具有可校正错误的两个位序列SBE1和SB2。例如,位序列SBE1包括可校正错误并生成第一校正子SYN1,并且位序列SBE2包括可校正错误并生成第二校正子SYN2,其中第二校正子SYN2的位值对应于反转版本的第一校正子SYN1的位值。
例如,为了测试正确的报告,由微处理器1020执行的软件可以激活第一值,例如SBE1,执行读取操作,并验证预期的校正子SYN是否已被日志记录到列表1220。软件然后可以激活第二值,例如SBE2,执行读取操作,并验证预期的校正子SYN是否已被日志记录到列表1220。通常,也可以使用多个位序列SBE以便设置校正子的每个位,至少一次为高并且至少一次为低。
相反,例如经由错误总线EBUS测试地址信号ADR/MADR的报告通常不需要安全监控电路SMb,因为微处理器1020在连接性测试功能已经被激活时可以执行两个(或更多)对地址的读取请求,从而例如通过使用具有互补位序列的两个地址,确保地址ADD/MADR的每个位被设置一次为高,一次为低。在这方面,这样的地址报告测试被简化,因为可以执行对几乎任何地址/存储器位置的读取请求,而不必将先前损坏的数据写入到目标地址。
因此,本文公开的解决方案可以在通信系统114或ECC存储器的ECC验证的语境中被使用。
在ECC存储器的情况下,与存储器控制器100a相关联的安全监控电路被配置为验证数据MDATA的ECC位。在这种情况下,可以使用安全监控电路SMb(数据MDATA的覆写)。安全监控电路SMb的ECC错误检测电路46也可以报告校正子SYN和/或地址MADR。因此,可以通过将地址MADR设置为两个互补的值来验证存储器地址MADR的地址报告,同时激活用于相应数据MDATA的错误模式SBE或DBE。相反,可以经由两个序列SBE1和SBE2来测试校正子报告。在一些实施例中,存储器控制器100a还可以具有相关联的安全监控电路,该安全监控电路被配置为验证存储器地址MADR的ECC位。然而,在这种情况下,安全监控电路SMa可能足以验证存储器地址MADR。
在ECC事务验证的情况下,主设备40可以将安全监控电路SMa用于响应控制信号RESC并且将安全监控电路SMb用于数据RDATA。安全监控电路SMb的ECC错误检测电路46也可以报告校正子SYN和/或地址ADR。因此,可以通过将地址ADR(包括在发送到通信系统114的相应读取请求中)设置为两个互补的值,同时激活用于相应数据RDATA的错误模式SBE或DBE,的方式验证地址报告。相反,可以经由被用于数据RDATA的安全监控电路SMb内的两个序列SBE1和SBE2来测试校正子报告。
类似地,从设备42可以将安全监控电路SMa用于地址ADR,将安全监控电路SMa用于请求控制信号REQC,而将安全监控电路SMb用于数据WDATA。
通常,在被配置为报告校正子和/或地址的各种安全监控电路被连接到总线EBUS的情况下,单个安全监控电路SMb也将足以用于测试错误总线。然而,由于各种ECC安全监控电路可能位于处理系统10a的集成电路内的不同位置,即错误总线EBUS可能很长的事实,用于数据MDATA、WDATA和RDATA的安全监控电路优选为如图14中所示的安全监控电路SMb,因此该安全监控电路允许测试从安全监控电路SMb到故障收集和错误管理电路120a的校正子的正确转发。
总之,ECC连接性测试电路130是通用控制器,其与被用来改变相应ECC错误检测电路36的输入的特定逻辑测试电路进行连接。它可以根据设备复杂性和ECC的数目容易地缩放安全监控电路SMa和SMb,从而允许轻易地集成并测试属于产品族的设备。
当然,在不损害本公开的原理的情况下,构造的细节和实施例可以相对于在本文中纯粹以示例的方式描述和说明的内容有很大的变化而不偏离本公开的范围,如由随后的权利要求所定义的。
处理系统(10a)可以被概括为包括:通信系统(114);处理核(102a),处理核(102a),包括微处理器(1020)和主通信接口(1022),主通信接口(1022)被配置为将读取请求或写入请求从所述微处理器(1020)传输到所述通信系统(114),其中读取请求包括物理目标地址(ADR)并请求将第一数据(RDATA)从所述物理目标地址(ADR)传输到所述主通信接口(1022),并且其中写入请求包括物理目标地址(ADR)和要被传输到所述物理目标地址(ADR)的第二数据(WDATA);存储器控制器(100a),其被配置为基于存储器地址(MADR)从存储器(104、104b)读取第三数据(MDATA)或将所述第三数据(MDATA)写入到所述存储器(104、104b),其中所述存储器控制器(100a)被配置为接收寻址到与所述存储器控制器(100a)相关联的所述物理目标地址(ADR)的第一子范围的请求,根据接收到的请求来确定所述存储器地址(MADR),确定接收到的请求是读取请求还是写入请求,响应于确定接收到的请求是读取请求,从所述存储器地址(MADR)中读取所述第三数据(MDATA),并将所述读取的第三数据(MDATA)作为所述第一数据(RDATA)传输到所述通信系统(114),并且响应于确定接收到的请求是写入请求,从所述写入请求提取所述第二数据(WDATA),并将提取的所述第二数据(WDATA)作为第三数据(MDATA)写入到所述存储器地址(MADR);资源(106a),其包括一个或多个寄存器和从接口(1062),该从接口(1062)被配置为接收寻址到与所述一个或多个寄存器相关联的所述物理目标地址(ADR)的第二子范围的请求,根据包括在接收到的请求中的物理目标地址(ADR)来选择所述一个或多个寄存器中的一个寄存器,确定接收到的请求是读取请求还是写入请求,响应于确定接收到的请求是读取请求,将选定的所述寄存器的内容作为所述第一数据(RDATA)传输到所述通信系统(114),以及响应于确定接收到的请求是写入请求,从所述写入请求提取所述第二数据(WDATA),并将提取的所述第二数据(WDATA)写入到选定的所述寄存器;包括错误检测电路(46)的一个或多个安全监控电路(SMa,SMb),该错误检测电路(46)被配置为接收数据位(DATA)和相应的纠错码(ECC)位(ECC),所述数据位(DATA)对应于所述第一数据(RDATA)、所述第二数据(WDATA)或所述第三数据(MDATA),根据适于检测多达给定最大数目的可检测的不正确位的给定ECC方案,根据所述数据位(DATA)来计算另外的ECC位,通过将所述计算出的ECC位与所述接收到的ECC位进行比较来生成校正子(SYN),确定所述校正子(SYN)的所有位是否被取消生效,并且响应于确定所述校正子的至少一个位校正子(SYN)被生效,使错误信号(ERR1)生效,故障收集和错误管理电路(120a),其被配置为从所述一个或多个安全监控电路(SMa,SMb)接收所述错误信号(ERR1);其中每个安全监控电路(SMa、SMb)包括测试电路(472-478;480),其被配置为根据一个或多个连接性测试控制信号(CT)向相应的错误检测电路(46)提供经修改的数据位(DATA)和/或经修改的ECC位(ECC),由此所述错误检测电路(46)根据所述连接性测试控制信号(CT),使所述错误信号(ERR1)生效;并且其中处理系统(10a)包括连接性测试控制电路(130),其包括一个或多个控制寄存器(OEN、OCTRL),该控制寄存器(OEN、OCTRL)经由所述写入请求是可编程的,其中根据所述一个或多个控制寄存器(OEN、OCTRL)的内容来生成所述一个或多个连接性测试控制信号(CT)。
所述连接性测试控制电路(130)可以被配置为根据所述一个或多个控制寄存器的相应的一个或多个位(OEN,OCTRL)为每个安全监控电路(SMa、SMb)生成一个或多个相应的连接性测试控制信号(CT)。
第一安全监控电路(SMa,SMb)可以与所述处理核(102a)的所述主通信接口(1022)相关联,其中所述主通信接口(1022)可以被配置为:响应于读取请求,除了接收所述第一数据(RDATA)之外,接收相应的第一ECC位(ECC),并且一旦接收到所述第一数据(RDATA)和相应的第一ECC位(ECC),就将所述第一数据(RDATA)和相应的第一ECC位(ECC)提供给所述第一安全监控电路(SMa,SMb),从而一旦所述主通信接口(1022)接收到所述第一数据(RDATA),根据所述一个或多个连接性测试控制信号(CT),选择性地使所述第一安全监控电路(SMa,SMb)的所述错误信号(ERR1)生效。
第二安全监控电路(SMa,SMb;SMb1)可以与所述存储器控制器(100a)或所述资源(106a)相关联,其中所述存储器控制器(100a)或所述资源(106a)可以被配置为:除了通过写入请求接收所述第二数据(WDATA)之外,还接收相应的第二ECC位(ECCc),并且一旦接收到写入请求,就将相应的第二数据(WDATA)和相应的第二ECC位(ECCc)提供给所述第二安全监控电路(SMa,SMb;SMb1),从而一旦所述存储器控制器(100a)或所述资源(106a)接收所述写入请求,根据所述一个或多个连接性测试控制信号(CT),选择性地使所述第二安全监控电路(SMa,SMb;SMb1)的所述错误信号(ERR1)生效。
第三安全监控电路(SMa,SMb;SMa1)可以与所述存储器控制器(100a)或所述资源(106a)相关联,其中所述存储器控制器(100a)或所述资源(106a)可以被配置为:除了通过读取请求或写入请求接收所述地址(ADR)之外,还接收相应的第三ECC位(ECCa),并且一旦接收到读取请求或写入请求,就将相应的地址(ADR)和相应的第三ECC位(ECCa)提供给所述第三安全监控电路(SMa,SMb;SMa1),从而一旦所述存储器控制器(100a)或所述资源(106a)接收到所述读取请求或写入请求,根据所述一个或多个连接性测试控制信号(CT),选择性地使所述第三安全监控电路(SMa,SMb;SMa1)的所述错误信号(ERR1)生效。
第四安全监控电路(SMa,SMb)可以与所述存储器控制器(100a)相关联,其中所述存储器控制器(100a)可以被配置为:除了读取所述第三数据(MDATA)之外,还从所述存储器地址(MADR)读取相应的第四ECC位(ECC),并且一旦接收到所述第三数据(MDATA)和相应的第四ECC位(ECC),就将所述第三数据(MDATA)和相应的第四ECC位(ECC)提供给所述第四安全监控电路(SMa,SMb),从而一旦所述存储器控制器(100a)从所述存储器(104、104b)读取数据,根据所述一个或多个连接性测试控制信号(CT),选择性地使所述第四安全监控电路(SMa,SMb)的所述错误信号(ERR1)生效。
所述第一安全监控电路(SMa,SMb)可以被配置为响应于确定相应校正子(SYN)的至少一个位可以被生效,将相应的读取请求中包括的地址(ADR)和/或相应校正子(SYN)传输到所述故障收集和错误管理电路(120a);和/或所述第二安全监控电路(SMa、SMb;SMb1)可以被配置为响应于确定相应校正子(SYN)的至少一个位可以被生效,将在相应写入请求中包括的地址(ADR)和/或相应校正子(SYN)传输到所述故障收集和错误管理电路(120a);和/或所述第四安全监控电路(SMa,SMb)可以被配置为响应于确定相应校正子(SYN)的至少一个位可以被生效,将相应校正子(SYN)和/或被用于相应读取操作的存储器地址(MADR)传输到所述故障收集和错误管理电路(120a)。
所述第一和/或第二安全监控电路(SMa,SMb)可以被配置为经由错误总线(EBUS)传输所述校正子(SYN)和/或所述地址(ADR),和/或所述第四安全监控电路(SMa,SMb)可以被配置为经由所述错误总线(EBUS)传输所述校正子(SYN)和/或所述存储器地址(MADR)。
所述第一安全监控电路、第二安全监控电路和/或第四安全监控电路(SMa、SMb)可以包括多路复用器(480),其被配置为根据所述连接性测试控制信号(CT)向相应的错误检测电路(46)提供:分别提供所述第一数据(RDATA)、所述第二数据(WDATA)或所述第三数据(MDATA),以及相应的第一ECC位、第二ECC位或第三ECC位(ECC);第一位序列(SBE1),所述第一位序列被配置为在由相应的错误检测电路(46)进行处理时生成第一校正子(SYN);第二位序列(SBE2),所述第二位序列被配置为在由相应的错误检测电路(46)进行处理时生成第二校正子(SYN),其中所述第二校正子(SYN)对应于相对于所述第一校正子(SYN)的位序列具有反转值的位序列。
所述第三安全监控电路(SMa,SMb;SMa1)可以包括组合逻辑电路(472-478),其被配置为选择性地反转所述地址(ADR)和/或相应的第三ECC位(ECCa)中的一个或多个位。
所述故障收集和错误管理电路(120a)可以包括一个或多个另外的寄存器(1200)并且可以被配置为将所述错误信号(ERR1)的逻辑电平存储到所述一个或多个另外的寄存器(1200);接收寻址到与所述一个或多个另外的寄存器(1200)相关联的所述物理目标地址(ADR)的第三子范围的读取请求,根据接收到的读取请求中包括的物理目标的函数地址(ADR)来选择所述一个或多个另外的寄存器(1200)中的一个另外的寄存器,并且将选定的所述另外的寄存器(1200)的内容作为所述第一数据(RDATA)传输到所述通信系统(114)。
集成电路可以被概括为包括处理系统(10a)。
诸如车辆之类的设备可以被概括为包括多个处理系统(10a),其中所述处理系统(10a)经由另外的通信系统(20)而连接。
一种操作处理系统(10a)的方法可以被概括为包括执行以下步骤,经由由所述微处理器(1020)执行的软件指令对所述一个或多个控制寄存器(OEN、OCTRL)进行编程以便生成所述一个或多个连接性测试控制信号(CT),以及向所述存储器控制器(100a)和/或所述资源(106a)传输一个或多个读取请求。
可以组合上述各种实施例以提供另外的实施例。在本说明书中提及和/或在申请数据表中列出的所有美国专利、美国专利申请公开、美国专利申请、外国专利、外国专利申请和非专利出版物通过引用整体并入于此。如果需要,可以修改实施例的各方面以采用各种专利、申请和出版物的概念来提供另外的实施例。
可以根据以上详细描述对实施例进行这些和其他改变。一般而言,在以下权利要求中,所使用的术语不应被解释为将权利要求限制为在说明书和权利要求中公开的特定实施例,而是应被解释为包括所有可能的实施例以及这些权利要求所享有的等同物的全部范围。因此,权利要求不受本公开的限制。
Claims (20)
1.一种处理系统,包括:
通信系统;
处理核,所述处理核包括微处理器和主通信接口,所述主通信接口被配置为将读取请求或写入请求从所述微处理器传输到所述通信系统,其中读取请求包括物理目标地址并且请求将第一数据从所述物理目标地址传输到所述主通信接口,并且其中写入请求包括物理目标地址和要被传输到所述物理目标地址的第二数据;
存储器控制器,所述存储器控制器被配置为基于存储器地址,从存储器读取第三数据或将所述第三数据写入到所述存储器,其中所述存储器控制器被配置为:
接收寻址到与所述存储器控制器相关联的物理目标地址的第一子范围的第一请求,
基于所述第一请求来确定存储器地址,
确定所述第一请求是读取请求还是写入请求,
响应于确定所述第一请求是读取请求,从所述存储器地址读取所述第三数据,并将所述第三数据作为所述第一数据传输到所述通信系统,以及
响应于确定所述第一请求是写入请求,从所述写入请求提取所述第二数据,并将提取的所述第二数据作为第三数据写入到所述存储器地址;
资源,包括一个或多个寄存器和从接口,所述从接口被配置为:
接收寻址到与所述一个或多个寄存器相关联的所述物理目标地址的第二子范围的第二请求,
基于包括在所述第二请求中的物理目标地址来选择所述一个或多个寄存器中的一个寄存器,
确定所述第二请求是读取请求还是写入请求,
响应于确定所述第二请求是读取请求,将选定的所述寄存器的内容作为所述第一数据传输到所述通信系统,以及
响应于确定所述第二请求是写入请求,从所述第二请求提取所述第二数据,并将提取的所述第二数据写入到选定的所述寄存器;一个或多个安全监控电路,包括错误检测电路,所述错误检测电路被配置为:
接收数据位和相应的纠错码ECC位,所述数据位对应于所述第一数据、所述第二数据或所述第三数据,
根据适于检测多达第一数目的可检测不正确位的ECC方案而基于所述数据位来计算另外的ECC位,
通过将所述另外的ECC位与接收到的所述ECC位进行比较来生成校正子,
确定所述校正子的所有位是否都被取消生效,以及
响应于确定所述校正子的至少一个位被生效,使错误信号生效;
故障收集和错误管理电路,所述故障收集和错误管理电路被配置为从所述一个或多个安全监控电路接收所述错误信号;以及
连接性测试控制电路,所述连接性测试控制电路包括经由所述写入请求可编程的一个或多个控制寄存器,
其中基于所述一个或多个控制寄存器的内容来生成一个或多个连接性测试控制信号,以及
其中每个安全监控电路包括测试电路,所述测试电路被配置为基于所述一个或多个连接性测试控制信号向相应的错误检测电路提供经修改的数据位或经修改的ECC位中的一个或多个,所述错误检测电路基于所述连接性测试控制信号来使所述错误信号生效。
2.根据权利要求1所述的处理系统,其中所述连接性测试控制电路被配置为基于所述一个或多个控制寄存器的相应的一个或多个位来为每个安全监控电路生成一个或多个相应的连接性测试控制信号。
3.根据权利要求1所述的处理系统,其中第一安全监控电路与所述处理核的所述主通信接口相关联,其中所述主通信接口被配置为:响应于读取请求,除了接收所述第一数据之外,还接收相应的第一ECC位,并且响应于已经接收到所述第一数据和所述相应的第一ECC位,将所述第一数据和所述相应的第一ECC位提供给所述第一安全监控电路,从而响应于所述主通信接口接收所述第一数据,基于所述一个或多个连接性测试控制信号,选择性地使所述第一安全监控电路的所述错误信号生效。
4.根据权利要求1所述的处理系统,其中第二安全监控电路与所述存储器控制器或所述资源相关联,其中所述存储器控制器或所述资源被配置为:除了通过写入请求接收所述第二数据之外,还接收相应的第二ECC位,并且响应于已经接收到写入请求,将相应的第二数据和所述相应的第二ECC位提供给所述第二安全监控电路,从而响应于所述存储器控制器或所述资源接收所述写入请求,基于所述一个或多个连接性测试控制信号,选择性地使所述第二安全监控电路的所述错误信号生效。
5.根据权利要求1所述的处理系统,其中第三安全监控电路与所述存储器控制器或所述资源相关联,其中所述存储器控制器或所述资源被配置为:除了通过读取请求或写入请求接收所述物理目标地址之外,还接收相应的第三ECC位,并且响应于已经接收到读取请求或写入请求,将所述物理目标地址和所述相应的第三ECC位提供给所述第三安全监控电路,从而响应于所述存储器控制器或所述资源接收所述读取请求或所述写入请求,基于所述一个或多个连接性测试控制信号,选择性地使所述第三安全监控电路的所述错误信号生效。
6.根据权利要求1所述的处理系统,其中第四安全监控电路与所述存储器控制器相关联,其中所述存储器控制器被配置为:除了读取所述第三数据之外,还从所述存储器地址读取相应的第四ECC位,并且响应于已经接收到所述第三数据和所述相应的第四ECC位,将所述第三数据和所述相应的第四ECC位提供给所述第四安全监控电路,从而响应于所述存储器控制器从所述存储器读取数据,基于所述一个或多个连接性测试控制信号,选择性地使所述第四安全监控电路的所述错误信号生效。
7.根据权利要求3所述的处理系统,其中:
所述第一安全监控电路被配置为响应于确定相应的校正子的至少一个位被生效,将所述读取请求中包括的所述相应的校正子或所述物理目标地址中的一个或多个传输到所述故障收集和错误管理电路;
所述第二安全监控电路被配置为响应于确定所述相应的校正子的至少一个位被生效,将所述写入请求中包括的所述相应的校正子或所述物理目标地址中的一个或多个传输到所述故障收集和错误管理电路;以及
所述第四安全监控电路被配置为响应于确定所述相应的校正子的至少一个位被生效,将所述相应的校正子或被用于所述读取操作的所述存储器地址中的一个或多个传输到所述故障收集和错误管理电路。
8.根据权利要求7所述的处理系统,包括错误总线,其中:
所述第一安全监控电路和所述第二安全监控电路被配置为经由所述错误总线传输所述相应的校正子或所述物理目标地址中的一个或多个,以及
所述第四安全监控电路被配置为经由所述错误总线传输所述相应的校正子或所述存储器地址中的一个或多个。
9.根据权利要求3所述的处理系统,其中所述第一安全监控电路、第二安全监控电路和第四安全监控电路中的每一个包括多路复用器,所述多路复用器被配置为基于所述连接性测试控制信号向所述相应的错误检测电路提供:
分别提供所述第一数据、所述第二数据或所述第三数据,以及所述相应的第一ECC位、第二ECC位或第三ECC位;
第一位序列,所述第一位序列被配置为在由所述相应的错误检测电路进行处理时生成第一校正子;以及
第二位序列,所述第二位序列被配置为在由所述相应的错误检测电路进行处理时生成第二校正子,其中所述第二校正子对应于相对于所述第一校正子的所述位序列具有反转值的位序列。
10.根据权利要求5所述的处理系统,其中所述第三安全监控电路包括组合逻辑电路,所述组合逻辑电路被配置为选择性地反转所述物理目标地址或所述相应的第三ECC位中的一个或多个位的逻辑电平。
11.根据权利要求1所述的处理系统,其中所述故障收集和错误管理电路包括一个或多个另外的寄存器,并且所述故障收集和错误管理电路被配置为:
将所述错误信号的逻辑电平存储到所述一个或多个另外的寄存器;
接收寻址到与所述一个或多个另外的寄存器相关联的所述物理目标地址的第三子范围的读取请求,
基于接收到的读取请求中包括的所述物理目标地址来选择所述一个或多个另外的寄存器中的一个另外的寄存器,以及
将选定的所述另外的寄存器的内容作为所述第一数据传输到所述通信系统。
12.一种具有处理系统的集成电路,所述处理系统包括:
通信系统;
处理核,所述处理核包括微处理器和主通信接口,所述主通信接口被配置为将读取请求或写入请求从所述微处理器传输到所述通信系统,其中读取请求包括物理目标地址并且请求将第一数据从所述物理目标地址传输到所述主通信接口,并且其中写入请求包括物理目标地址和要被传输到所述物理目标地址的第二数据;
安全监控电路,包括错误检测电路,所述错误检测电路被配置为:
接收数据位和相应的纠错码ECC位,所述数据位对应于所述第一数据或所述第二数据,
使用适于检测多达第一数目的可检测不正确位的ECC方案而基于所述数据位来计算新ECC位,
通过将所述新ECC位与接收到的所述ECC位进行比较来生成校正子,
确定所述校正子的一个位被生效,以及
响应于确定所述校正子的一个位被生效,使错误信号生效。
13.根据权利要求12所述的集成电路,其中所述处理系统包括:
故障收集和错误管理电路,所述故障收集和错误管理电路被配置为从所述安全监控电路接收所述错误信号;以及
连接性测试控制电路,所述连接性测试控制电路包括经由所述写入请求可编程的控制寄存器,
其中所述安全监控电路包括测试电路,所述测试电路被配置为基于所述连接性测试控制信号向所述错误检测电路提供经修改的数据位或经修改的ECC位中的一个或多个,所述错误检测电路基于所述连接性测试控制信号来使所述错误信号生效。
14.根据权利要求13所述的集成电路,其中所述连接性测试控制电路被配置为基于所述控制寄存器的内容来生成所述连接性测试控制信号。
15.一种设备,包括:
多个处理系统;以及
第一通信系统,所述多个处理系统经由所述第一通信系统而彼此耦合,
其中所述多个处理系统中的处理系统包括:
通信系统;
处理核,所述处理核包括微处理器和主通信接口,所述主通信接口被配置为将读取请求或写入请求从所述微处理器传输到所述通信系统,其中读取请求包括物理目标地址并且请求将第一数据从所述物理目标地址传输到所述主通信接口,并且其中写入请求包括物理目标地址和要被传输到所述物理目标地址的第二数据;
安全监控电路,包括错误检测电路,所述错误检测电路被配置为:
接收数据位和相应的纠错码ECC位,所述数据位对应于所述第一数据或所述第二数据,
使用适于检测多达第一数目的可检测不正确位的ECC方案而基于所述数据位来计算新ECC位,
通过将所述新ECC位与接收到的所述ECC位进行比较来生成校正子,
确定所述校正子的一个位被生效,以及
响应于确定所述校正子的一个位被生效,使错误信号生效。
16.根据权利要求15所述的设备,其中所述处理系统包括:
故障收集和错误管理电路,所述故障收集和错误管理电路被配置为从所述安全监控电路接收所述错误信号;以及
连接性测试控制电路,所述连接性测试控制电路包括经由所述写入请求可编程的控制寄存器,
其中所述安全监控电路包括测试电路,所述测试电路被配置为基于所述连接性测试控制信号向所述错误检测电路提供经修改的数据位或经修改的ECC位中的一个或多个,所述错误检测电路基于所述连接性测试控制信号来使所述错误信号生效。
17.根据权利要求16所述的设备,其中所述连接性测试控制电路被配置为基于所述控制寄存器的内容来生成所述连接性测试控制信号。
18.根据权利要求15所述的设备,其中所述处理系统包括:
存储器控制器,所述存储器控制器被配置为基于存储器地址,从存储器读取第三数据或将所述第三数据写入到所述存储器,其中所述存储器控制器被配置为:
接收寻址到与所述存储器控制器相关联的物理目标地址的第一子范围的第一请求,
基于所述第一请求来确定存储器地址,
确定所述第一请求是读取请求还是写入请求,
响应于确定所述第一请求是读取请求,从所述存储器地址读取所述第三数据,并将所述第三数据作为所述第一数据传输到所述通信系统,以及
响应于确定所述第一请求是写入请求,从所述写入请求提取所述第二数据,并将提取的所述第二数据作为第三数据写入到所述存储器地址。
19.根据权利要求18所述的设备,其中所述安全监控电路被配置为:
接收对应于所述第三数据的数据位和纠错码ECC位,以及
基于与所述第三数据相对应的所述数据位来计算新ECC位。
20.根据权利要求15所述的设备,其中所述安全监控电路包括组合逻辑电路,所述组合逻辑电路被配置为选择性地反转接收到的所述数据位或所述ECC位中的一个或多个位的逻辑电平。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT202100018440 | 2021-07-13 | ||
IT102021000018440 | 2021-07-13 | ||
US17/858,782 | 2022-07-06 | ||
US17/858,782 US11764807B2 (en) | 2021-07-13 | 2022-07-06 | Processing system, related integrated circuit, device and method |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115617565A true CN115617565A (zh) | 2023-01-17 |
Family
ID=84856406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210817959.9A Pending CN115617565A (zh) | 2021-07-13 | 2022-07-12 | 处理系统、相关集成电路、设备以及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115617565A (zh) |
-
2022
- 2022-07-12 CN CN202210817959.9A patent/CN115617565A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9477550B2 (en) | ECC bypass using low latency CE correction with retry select signal | |
US9207661B2 (en) | Dual core architecture of a control module of an engine | |
US8650440B2 (en) | Processor based system having ECC based check and access validation information means | |
US20120173924A1 (en) | Dual endianess and other configuration safety in lock step dual-core system, and other circuits, processes and systems | |
EP4141677A1 (en) | Processing system, related integrated circuit, device and method | |
US8566672B2 (en) | Selective checkbit modification for error correction | |
US11686767B2 (en) | System, apparatus and method for functional testing of one or more fabrics of a processor | |
EP2409231A1 (en) | Fault tolerance in integrated circuits | |
KR20160022250A (ko) | 메모리 장치 및 모듈 | |
US9542251B2 (en) | Error detection on a low pin count bus | |
US20140365813A1 (en) | Watchdogable register-based i/o | |
US11823759B2 (en) | Testing of fault detection circuit | |
WO2021088368A1 (zh) | 一种存储器的修复方法及装置 | |
US11764807B2 (en) | Processing system, related integrated circuit, device and method | |
CN115617565A (zh) | 处理系统、相关集成电路、设备以及方法 | |
CN111880961A (zh) | 用于透明寄存器数据错误检测和纠正的系统和方法 | |
CN116560902A (zh) | 处理系统、相关集成电路和方法 | |
US20230280933A1 (en) | Processing system, related integrated circuit, device and method | |
US12019118B2 (en) | Processing system, related integrated circuit, device and method | |
CN116701045A (zh) | 处理系统、相关集成电路、设备和方法 | |
US20240232007A9 (en) | Electronic device, electronic system, method for operating an electronic device, and method for operating an electronic system | |
US20240134743A1 (en) | Electronic device, electronic system, method for operating an electronic device, and method for operating an electronic system | |
EP4296850A1 (en) | Processing system, related integrated circuit, device and method | |
CN116893936A (zh) | 处理系统、相关集成电路、设备和方法 | |
US20140372837A1 (en) | Semiconductor integrated circuit and method of processing in semiconductor integrated circuit |
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 |