CN111480147B - 用于针对纠错码功能的联机功能测试的系统和方法 - Google Patents

用于针对纠错码功能的联机功能测试的系统和方法 Download PDF

Info

Publication number
CN111480147B
CN111480147B CN201880079766.XA CN201880079766A CN111480147B CN 111480147 B CN111480147 B CN 111480147B CN 201880079766 A CN201880079766 A CN 201880079766A CN 111480147 B CN111480147 B CN 111480147B
Authority
CN
China
Prior art keywords
ecc
data
error
failure
check sub
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.)
Active
Application number
CN201880079766.XA
Other languages
English (en)
Other versions
CN111480147A (zh
Inventor
M·R·卡科伊
R·古拉蒂
E·马胡林
S·K·文库马汉蒂
D·全
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN111480147A publication Critical patent/CN111480147A/zh
Application granted granted Critical
Publication of CN111480147B publication Critical patent/CN111480147B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/02Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
    • B60W50/0205Diagnosing or detecting failures; Failure detection models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection 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
    • G06F11/2215Detection 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 to test error correction or detection circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/24Testing correct operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Probability & Statistics with Applications (AREA)
  • Debugging And Monitoring (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本文描述了用于纠错码(“ECC”)错误处理的系统和方法。在一个方面,该系统和方法可以对原始数据操作ECC功能。该ECC功能可以包括由ECC校验子数据生成模块生成ECC校验子数据。可以从原始数据导出ECC校验子数据。该系统和方法可以进一步基于ECC校验子数据或原始数据来注入差错。该系统和方法可以进一步确定由ECC检查器检测到的ECC错误是对应于ECC功能的故障还是对应于基于ECC校验子数据或原始数据注入的差错。

Description

用于针对纠错码功能的联机功能测试的系统和方法
要求优先权
本专利申请要求享受于2017年12月12日提交的标题为“SYSTEM AND METHOD FORONLINE FUNCTIONAL TESTING FOR ERROR-CORRECTING CODE FUNCTION”的美国非临时申请第15/838,777号的优先权,其已经转让给本申请的受让人并且以引用方式明确并入本文。
技术领域
概括地说,本公开内容涉及用于针对错误检测和校正功能的联机功能测试的系统和方法。
背景技术
因为车辆的动力源正在从利用化石燃料转为利用可再生燃料(例如,电力),汽车工业正在部分地改变。更多的车辆正在利用高级驾驶员辅助系统(“ADAS”),其提供不同级别的驾驶员辅助(例如,自适应巡航控制(“ACC”)、前向碰撞警告(“FCW”)等等)。
随着越来越多的车辆配备有电动发动机和ADAS,将相应地需要配备嵌入在车辆中的电路,以处理这些电路在其它操作环境(例如,智能电话、服务器等等)中面对的许多问题。一种这样问题是处理并可能地校正存储在存储器中的数据内的错误。在包含数据的任何地方(例如,存储器、高速缓存、总线、互连等等)都可能发生错误。与传统的操作环境不同,车辆中的电路可能不能脱机进行测试以确定存储在其子系统中的数据的准确性。例如,车辆可能在参与基于ADAS的复杂用例,该用例没有足够的脱机时间来进行测试(其包括但不限于可能的数据恢复)。
因此,需要用于当嵌入在车辆内的电路在操作中时,在该电路中利用纠错码(“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校验子数据生成模块,该ECC校验子数据生成模块被配置为从原始数据生成ECC校验子数据。该系统和方法可以进一步包括:测试检查器模块,其被配置为基于ECC校验子数据和原始数据来注入差错;ECC检查器,其被配置为检测ECC错误。测试检查器模块可以进一步被配置为确定ECC检查器检测到的ECC错误是对应于ECC功能的故障还是基于ECC校验子数据和原始数据注入的差错。
在另一方面,该系统和方法可以包括第一错误检测或校正路径。第一错误检测或校正路径可以被配置为对原始数据执行ECC功能。该系统和方法可以包括第二错误检测或校正路径,其被配置为当第一错误检测或校正路径联机时,检测由第一错误检测或校正路径中的故障引起的ECC错误。
该系统和方法可以进一步向外部系统发送实际中断,其中该外部系统可以被配置为处理该实际中断。在一个方面,该系统和方法可以在外部系统处接收该实际中断,其中该外部系统可以被配置为控制嵌入在车辆中的高级驾驶员辅助系统(“ADAS”)。此外,该外部系统可以被配置为处理影响车辆内的ADAS的可靠性的错误。该系统和方法可以进一步从多个数据源接收原始数据,以及可以在各源之间仲裁所生成的中断。在一个方面,该系统和方法可以推迟对ECC错误的检查,直到原始数据不在被存取为止,其中可以基于服务质量系统来接收原始数据。如果推迟超过容错期限,则该系统和方法可以调整服务质量系统以减少ECC错误检查的推迟。
附图说明
在附图中,除非另外指出,否则贯穿各个视图的类似的附图标记指代类似的部件。对于利用诸如“102A”或“102B”之类的字母字符进行命名的附图标记而言,字母字符命名可以区分在相同附图中给出的两个类似部件或者元素也可以不进行区分。当附图标记旨在涵盖所有附图之中具有相同附图标记的所有部件时,可以省略用于附图标记的字母字符命名。
图1示出了被配置为执行联机ECC功能和联机对ECC功能的联机故障检测的系统的方块图。
图2A示出了被配置为执行联机ECC功能和联机对ECC功能的联机故障检测的另一系统的方块图。
图2B是ECC诊断模块的方块图。
图3是示出用于确定和调用联机对ECC功能的联机故障检测的过程的流程图。
图4是示出用于进行联机对ECC功能的联机故障检测的过程的流程图。
图5是示出用于处理在联机对ECC功能的联机故障检测期间检测到的故障的过程的流程图。
图6是示出根据本公开内容的某些方面的另一个过程的流程图。
图7示出了正在进行操作的车辆的方块图,该车辆包含ADAS并被配置为执行联机对ECC功能的联机故障检测。
图8是用于包含本文所描述的系统和方法的移动计算设备的方面的方块图。
具体实施方式
本文所使用的“示例性的”一词意味着“用作示例、实例或说明”。本文中描述为“示例性”的任何方面不一定被解释为比其它方面更优选或更具优势。
在本说明书中,术语“应用”还可以包括具有可执行内容的文件,诸如:目标代码、脚本、字节代码、标记语言文件和补丁。此外,本文所提及的“应用”还可以包括:在本质上不可执行的文件,诸如,可能需要被打开的文档或者需要进行存取的其它数据文件。
术语“内容”也可以包括具有可执行内容的文件,诸如:目标代码、脚本、字节代码、标记语言文件和补丁。此外,本文所提及的“内容”还可以包括:在本质上不可执行的文件,诸如,需要被打开的文档或者需要进行存取的其它数据文件。
如本说明书中所使用的,术语“组件”、“数据库”、“模块”、“系统”等等旨在指代与计算机有关的实体,无论其是硬件、固件、硬件和软件的结合、软件或运行中的软件。例如,组件可以是,但不限于是:在处理器上运行的过程、处理器、对象、可执行文件、执行的线程、程序和/或计算机。举例而言,在计算设备上运行的应用和该计算设备都可以是组件。一个或多个组件可以存在于过程和/或执行线程内,组件可以位于一个计算机中和/或分布在两个或更多计算机之间。此外,这些组件可以从其上存储有各种数据结构的各种计算机可读介质来执行。组件可以诸如根据具有一个或多个数据分组的信号(例如,来自一个组件的数据,该组件与本地系统、分布式系统中的另一个组件进行交互和/或以信号的方式跨越诸如互联网之类的网络与其它系统进行交互),通过本地和/或远程过程的方式进行通信。
在本说明书中,术语“通信设备”、“移动计算设备”、“无线设备”、“无线电话”、“无线通信设备”、“无线手机”、“汽车”、“车辆”、“轿车”和“具备ADAS功能的车辆”可互换地使用。随着第三代(“3G”)、第四代(“4G”)和第五代(“5G”)无线技术的出现,更高的带宽可用性已经使得更多具有更多种多样无线能力的移动计算设备成为可能。因此,移动计算设备可以包括蜂窝电话、寻呼机、PDA、智能电话、导航设备、物联网(“IoT”)设备、可穿戴设备、具有无线连接的手持式计算机、或者具有ADAS和/或信息娱乐功能的车辆。
利用高级驾驶员辅助系统(“ADAS”)(其提供不同级别的驾驶员辅助(例如,自适应巡航控制(“ACC”))的车辆可以包含错误检测和/或校正功能以检测原始数据中的错误。在一些示例中,原始数据可以是在ADAS功能中使用的数据。例如,原始数据可以来自诸如雷达、激光雷达、照摄像机或无线接收器之类的原始数据源。可以经由错误检测和校正码(“ECC”)来操作错误检测和/或功能。
例如,车辆可以包括第一错误检测和/或校正路径(例如,执行第一错误检测和/或校正序列的电路的集合)以对原始数据执行ECC功能。ECC功能可以检测原始数据中的(ECC)错误。原始数据中的ECC错误可以称为实际ECC错误。
但是,故障可能产生于ECC功能本身中(例如,第一错误检测和/或校正路径中的故障)。为了针对在其中产生的故障(例如,失败)来测试第一错误检测和/或校正路径,车辆可能必须使第一错误检测和/或校正路径脱机以检测ECC功能中的故障。这样的脱机测试对于车辆的用户来说可能是不方便的,并且可能导致安全问题。
如本文所给出的,车辆可以进一步包括第二错误检测和/或校正路径(例如,执行不同于第一路径的第二错误检测和/或校正序列的电路的集合)。例如,第二错误检测和/或路径可以被配置为当第一错误检测和/或校正路径联机时,确定ECC错误是由第一错误检测和/或校正路径中的故障引起的联机。在一些示例中,联机可以指代第一错误检测和/或校正路径正在对原始数据执行ECC功能的操作中。例如,不停止由第一错误检测和/或校正路径执行的ECC功能。在一些示例中,不针对第二错误检测和/或校正路径检测由第一错误检测和/或校正路径中的故障导致的ECC错误(例如,ECC功能中的故障)而使第一错误检测和/或校正路径脱机、暂停或者置于不同的模式。以这样的方式,ECC功能(例如,由第一错误检测和/或校正路径执行)和对ECC功能的故障检测(例如,由第二错误检测和/或校正路径执行)二者可以并行地操作。例如,第一错误检测和/或校正路径和第二错误检测和/或校正路径可以在相同的时间段中均是联机的(例如,二者都在操作中)。第二错误检测和/或校正路径可以被配置为:通过对由第一错误检测和/或校正路径操作的相同原始数据或相同原始数据的副本执行测试,来检测第一错误检测和/或校正中的故障。
图1示出了被配置为执行联机ECC功能和联机对ECC功能的联机故障检测的系统100的方块图。系统100可以并入在例如计算机、移动计算设备和/或车辆内。SoC 102包含实现移动计算设备内的功能的若干子系统和逻辑方块。在一些示例中,SoC 102可以指代电路的集合、操作电路的软件或者其组合。中央处理单元(“CPU”)110可以经由总线116,电子耦合到SoC 102内的各个组件。总线116可以是逻辑结构、物理结构、片上网络(“NoC”)、或者任意数量的等效通信信道(或者“互连”)。静态随机存取存储器(“SRAM”)112可以经由总线116电子耦合到SoC 102内的各个组件。SRAM 112是一种使用双稳态锁存电路的半导体存储器,并且典型地用于与CPU有关的高速缓存操作。只读存储器(“ROM”)114可以经由总线116,电子耦合到SoC 102内的各个组件。ROM 114可以包含由CPU 110可存取的数据,数据包括与引导有关的代码和/或指令。
数字信号处理器(“DSP”)167可以经由总线116,电子耦合到SoC 102内的各个组件。DSP 167可以用于测量、滤波和/或压缩连续的现实模拟信号。在DSP 167内配置的算法中的很多算法都可以被配置为在CPU 110上执行。但是,对于某些操作而言,DSP 167可以具有更佳的功率效率和更高的性能。因此,系统可以将第一组操作分配给CPU 110,以及将第二组操作分配给DSP 167,使得可以利用这两个处理单元的优点。第一组操作和第二组操作可以是共同延伸的和/或有关的。
功率管理接口118可以经由总线124来连接到功率管理控制器108。同样,功率管理接口118可以经由总线116,电子耦合到SoC 102内的各个组件。移动计算设备可以使用功率管理控制器108来为若干个SoC(例如,SoC 102)供电。
RAM控制器121可以经由总线125,电子耦合到RAM 105。同样,RAM控制器121可以经由总线116,电子耦合到SoC 102内的各个组件。当SoC 102运行时,RAM 105可以用于对数据和可执行代码的操作性存储。
存储器控制器122可以经由总线128电子耦合到存储器106。同样,存储器控制器122可以经由总线116,电子耦合到SoC 102的各个组件。当SoC 102运行或掉电时,存储器106可以用于对数据的操作性存储、对可执行代码的非操作性存储。
外部处理器140可以经由总线142,电子耦合到SoC 102内的I/O控制器199,其允许在外部处理器140与SoC 102之间的通信。此外,外部处理器140和SoC 102可以选择性地共享在其各自域内的资源。外部处理器140和SoC 102之间的通信可以包括控制信号、状态消息和/或其它数据的双向传输。SoC 102和外部处理器140之间的共享资源可以包括任何内部状态或者功能特征(例如,永久只读存储器、易失性存储器、非易失性存储器、处理器、加速器、引擎等等)。在一个方面,外部处理器140可以是SoC 102的又一个示例。在另一个方面,外部处理器140可以是被配置用于补充SoC 102的功能的大量专用的任务(例如,应用处理、图形处理等等)的处理器。现代移动计算设备具有多个SoC、处理器、存储器等等。
进一步示出外部处理器140以强调又一个SoC和/或处理器可能需要与SoC 102进行交互以实现移动计算设备的期望功能(例如,通过蜂窝网络进行通信、捕获视频/图像、玩三维游戏等等)。例如,外部处理器140可以是图形处理单元(“GPU”),其被配置为向SoC 102提供图形处理辅助。在另一个示例中,外部处理器140可以是蜂窝通信SoC,其被配置为经由SoC 102实现移动通信设备的无线通信。在又一个示例中,外部处理器140可以具有与车辆的安全操作有关的操作,SoC 102和外部处理器140共同地嵌入在车辆中。在这样的示例中,外部处理器140可以支持ADAS功能,同样可能需要遵守与ADAS有关的安全和/或操作标准(本文将进一步描述)。
图2A是被配置为执行联机ECC功能和联机对ECC功能的联机故障检测的另一种系统200的方块图。系统200可以嵌入在SoC 102的RAM控制器121内,如上文在图1中所描述的。可以对于存储器(例如,RAM 105;参见图1)执行对ECC功能的故障检测。在一些示例中,系统200可以嵌入在总线116(图1)内,使得互连可以利用系统200提供的功能来校正通过总线116进行移动的错误。进一步地,系统200可以电子耦合到SRAM 112,使得对ECC功能的故障检测可以用于高速缓冲存储的数据。在一个方面,该高速缓冲存储的数据可以由CPU 110(图1)存取。在另一个方面,该高速缓冲存储的数据可以由DSP 167(图1)存取。在任一方面,都可以利用对ECC功能的故障检测。
系统200可以电子耦合到原始数据源210。在一个方面,原始数据源210可以是存储器106(参见图1)。在另一个方面,原始数据源210可以是来自外部处理器140(图1)的数据流。例如,外部处理器140可以控制用于车辆的备用照摄像机;原始数据源210中的数据可以是由备用照摄像机捕获的图像。在又一个方面,原始数据源210可以具有多个源(和对应的目的地)。在另一个方面,原始数据源210可以指代雷达、激光雷达、摄像机、无线接收器或者用于ADAS的其它数据源。
在一个方面,系统200可以包括第一错误检测和/或校正路径202,以对原始数据227(例如,用于ADAS功能的数据)执行ECC功能。第一错误检测和/或校正路径202可以包括至少一个存储器(例如,数据阵列225)和ECC校验子数据生成模块(例如,ECC生成器215)。在一些示例中,ECC校验子数据可以是从用于ECC功能的原始数据生成的数据。系统200可以进一步包括第二错误检测和/或校正路径203,第二错误检测和/或校正路径203可以至少包括ECC诊断模块220或者其模块中的任何模块。可以通过电路、软件、处理器或者其组合来实现系统200的模块或元素(例如,ECC校验子数据生成模块)。
在一个方面,数据阵列225可以是存储器,诸如RAM 105。原始数据源210经由总线255来连接到数据阵列225、ECC生成器215和ECC诊断模块220。数据阵列225可以被配置为存储经由总线255从原始数据源210接收的原始数据227。数据阵列225可以进一步被配置为存储经由总线260从ECC生成器215接收的ECC校验子数据229。ECC校验子数据229可以被配置为生成ECC校验子数据229,ECC校验子数据229可以是从原始数据227导出的(例如,用于原始数据227的错误检测和/或校正)。ECC生成器215可以以多种不同方式来实现ECC校验子数据逻辑,以使得检测到更少或更多的错误。例如,ECC生成器215可以被实现为生成散列(hash),该散列可以检测原始数据227的两个比特中的错误,但是仅被配置为校正那些错误比特中的一个比特。随着可检测和可校正的错误的数量增加,ECC生成器215的复杂度可能需要相应地增加。可以评估系统200的操作环境(例如,ADAS功能)以确定利用ECC生成器215检查的比特的适当数量。
由ECC生成器215从原始数据227导出的ECC校验子数据229可以存储在数据阵列225中。这样的ECC校验子数据229可以经由总线260来传送到数据阵列225。原始数据的示例可以包括提供给数据阵列225以用于错误检测和/或校正、以及用于ADAS功能的数据。数据阵列225可以是动态随机存取存储器(“DRAM”)的组。
ECC诊断模块220可以被配置为针对系统200检测第一错误检测和/或校正路径202中的故障(例如,检测在ECC功能中的故障)。首先,ECC诊断模块220可以生成用于基于原始数据227和/或ECC校验子数据229来引入或注入差错的测试数据。进一步地,ECC诊断模块220可以被配置为验证所创建的测试数据引起当实际上预期ECC错误时,这样的ECC错误是被检测到的。ECC诊断模块220具有ECC诊断寄存器222、ECC诊断掩码模块224、测试检查器模块226和仲裁器228。
总线260将ECC校验子数据229(例如,其一部分)传送到ECC诊断模块220。在ECC诊断模块220内,ECC诊断寄存器222可以存储ECC校验子数据229(或者其部分)。包含在数据阵列225中的原始数据227和ECC校验子数据229可以部分地复制存储在ECC诊断寄存器222中的数据。进一步地,数据阵列225的存储容量可以明显地大于ECC诊断寄存器222的存储容量。可能需要在SoC 102的实现方式内发现对竞争的资源的平衡,其中ECC诊断寄存器222具有足够的原始数据227和ECC校验子数据229以执行对系统200中的ECC功能的鲁棒性检查。
如上文所述,ECC诊断寄存器222可以被称为第二存储器以与数据阵列225的存储器进行区分。在一个方面,ECC诊断寄存器222可以存储数据阵列225中存储的原始数据227和/或ECC校验子数据229的至少一部分。ECC诊断寄存器222中保存的数据的量可以等于或小于在原始数据源210(或数据阵列225)中存储的全部数据量。在ECC诊断寄存器222中存储有实际原始数据的ECC诊断模块220的一个优点是:系统200可以对于通过ECC功能的相同原始数据提供对ECC功能的故障检测(由第一错误检测和/或校正路径202执行)。车辆制造商可能需要这样使用实际数据,因为实际数据可以涵盖更多现实场景,而合成数据(例如,其可以称为测试数据)可能不能完全地对系统200进行训练。
ECC诊断掩码模块224可以包含与要对ECC诊断寄存器222内的数据(例如,原始数据227和/或ECC校验子数据229)执行的期望ECC测试模式有关的数据和功能。在ECC诊断掩码模块224中可以存在比特反转器逻辑,使得可以改变测试比特以创建用于由系统200进行测试的测试场景。例如,可以配置特定的数据掩码以创建与两个比特有关的ECC错误,其中这两个比特都被检测为错误的,但实际上只有一个是经由ECC可校正的。
在一个方面,ECC诊断掩码模块224可以被配置为从存储在ECC诊断寄存器222中的ECC校验子数据229和原始数据227来生成已知的ECC错误。例如,ECC诊断掩码模块224可以是通过软件补丁(例如,其可以称为闪存)可更新的,其可以增加或减少特定的测试模式和/或场景。例如,ECC诊断掩码模块224可以将掩码输出为比特流。当流数据中的“1”与ECC校验子数据229进行组合时,可以切换原始数据227或ECC校验子数据229中的相应比特。在一个示例中,可以切换一个数据比特。由于ECC校验子数据229是基于实际的原始数据生成的(例如,ECC功能的对象),因此切换一比特可以在ECC检查器230的输出(例如,总线266)处产生单个错误。ECC诊断模块220可以例如通过软件来被配置成单个错误形式检查器。掩码和ECC诊断模块220中的预期结果都可以来自软件,并且可以是有关的。如果软件在数据中设置两比特切换,则软件可以将ECC诊断模块220中的预期结果设置为使来自ECC检查器230的输出的错误检测加倍(下文进一步详细论述)。ECC检查器230可以输出不同的错误状态:(1)无错误、(2)一比特可校正的错误、(3)两比特未校正的错误、以及(4)ECC比特切换。以这样的方式,ECC检查器230可以基于实现方式和ECC检查器230可以检测多少个错误的能力,来输出各种错误状态。ECC诊断模块220可以通过软件来被配置为预期针对每种掩码模式的输出错误状态。掩码模式同样可以是通过软件可编程的。车辆预期延续近200,000英里。如果用户每年驾驶12,000英里,则车辆可能运行超过十五年。因此,提供动态地更新ECC诊断掩码模块224中的测试的能力,为在其中布置有系统200的车辆提供进一步的可靠性和工作持续时间。
测试检查器模块226通常被配置为验证由ECC诊断模块220生成的基于ECC的测试的结果。仲裁器228通常被配置为使ECC诊断模块220能够服务于依赖ECC的多个逻辑块。例如,数据阵列225可以是跨移动计算设备(或车辆)布置的若干DRAM组。仲裁器228可以实现针对若干数据流和/或数据存储的对ECC诊断模块220的重用。回想一下,ECC诊断寄存器222可以存储数据以及来自被配置为生成这种数据的任何源的ECC校验子数据。因此,仲裁器228可以与ECC诊断寄存器222进行通信,以主动地选择应当在其中存储什么数据,使得ECC诊断模块220可以服务于所存储数据的源。在一个方面,测试检查器模块226可以触发中断297,以及将中断297提供给中断处理器250。下文将利用图2B来给出中断297的额外细节。
在一个方面,测试检查器模块226可以包含与何时应当进行测试和何时不应当执行测试有关的信息。在一个方面,测试检查器模块226可以不执行任何与ECC有关的测试,除非系统200接收到用于指示实际上期望ECC测试的输入。在另一个方面,测试检查器模块226可能需要等待机会来测试系统200,使得移动计算设备(或车辆)的操作不被中断。例如,测试检查器模块226可以等待直到没有数据正在被存取(例如,读取或写入)为止,使得可以执行本文所描述的ECC测试和/或ECC功能故障检测。在另一个方面,测试检查器模块226可以被配置为通过操纵存在于移动计算设备(或车辆)中的服务质量(“QoS”)参数,来控制进入系统200的信息流。例如,测试检查器模块226可以减少进来的数据的写入和读取(例如,QoS参数),使得提供足够的时间窗来测试系统200的ECC功能和/或检测ECC功能的故障。
ECC检查器230可以被配置为检测ECC错误(例如,作为ECC功能的一部分或者作为故障检测的一部分)。存储在数据阵列225中的原始数据227和ECC校验子数据229可以经由总线264传送到ECC检查器230。例如,作为检测原始数据227中的实际ECC错误的ECC功能的一部分,ECC检查器230可以包含被配置为确定原始数据227是否与ECC校验子数据229(二者均在总线264上接收)相符的逻辑。总线262还将ECC诊断模块连接到ECC检查器230。因此,ECC检查器230可以对从数据阵列225或者ECC诊断模块220发送的数据进行操作。例如,ECC检查器230可以包括复用器以选择总线264或总线262作为输入。ECC检查器230可以针对存储在数据阵列225中的原始数据227和ECC校验子数据229,选择总线264,来处理ECC功能(例如,作为ECC功能的一部分来检测原始数据227中的实际ECC错误)。周期性地(例如,不连续地),ECC检查器230可以针对来自ECC诊断模块220的数据,选择总线262,以检测ECC功能中的故障。ECC功能中的故障可能在第一错误检测和/或校正路径202的存储器(数据阵列225)和/或ECC校验子数据生成模块(ECC生成器215)内。例如,ECC检查器230可以检测来自总线262(来自ECC诊断模块220)的ECC错误,并且检测到的ECC错误可以对应于来自基于原始数据227和/或ECC校验子数据229来注入的差错的预期错误。例如,预期的错误可以是经由ECC诊断掩码模块224引入的错误。在ECC检查器230检测到来自总线262的ECC错误与预期的错误不对应的情况下,在这种情况下检测到的ECC错误可能是由ECC功能的故障引起的。例如,ECC错误可能是由存储器(例如,数据阵列225)或ECC校验子数据生成模块(例如,ECC生成器215)中的故障或差错引起的。以这种方式,作为ECC功能的一部分,ECC检查器230可以检测ECC错误(例如,经由总线264检测原始数据227中的实际ECC错误),并且交替地和/或周期性地,作为对ECC功能的故障检测的一部分(通过总线262)。
ECC检查器230可以经由总线266连接到ECC错误处理器240。在一个方面,ECC错误处理器240可以是先进先出错误队列,其管理原始数据227中的与ECC有关的错误(例如,实际的ECC错误)。ECC错误处理器240可以经由总线265连接到中断处理器250,中断处理器250可以连接到系统200的各种下游组件(例如,图1的外部处理器140,其被配置为执行ADAS功能)。在一个方面,ECC错误处理器240可以检测错误,以及创建跨总线265至中断处理器250的中断,以向下游组件发信号通知该错误。
回到ECC错误处理器240,总线267可以将ECC错误处理器240连接到ECC诊断模块220。在一个方面,总线267可以传送与ECC有关的信息,类似于发送到中断处理器250的中断数据。但是,ECC诊断模块220可以利用这样的中断数据来进一步诊断与ECC有关的信息。例如,如果ECC诊断模块220已经开始了创建预期错误和确定系统200是否被配置为检测该预期错误的过程,则可以预期与ECC有关的信息。取决于系统200准确地检查错误的能力,可以忽略至中断处理器250的中断,这是因为可能仅仅是为了测试系统200的ECC功能而产生该错误。ECC错误处理器240的能力是被配置为处理来自数据阵列225的“正常”数据流(ECC功能)以及来自ECC诊断模块220的ECC诊断数据(检测ECC功能中的故障)。进一步地,这样的配置基本上使得当系统200正在处理原始数据227时,系统200能够选择性地和/或周期性地(例如,不连续地)测试与ECC有关的功能/操作,以实现移动计算设备的预期功能(例如,控制车辆内的与ADAS有关的系统)。
此外,中断处理器250可以根据需要与SoC 102或外部处理器140进行通信。此外,在中断处理器250与其进一步通信的移动计算设备(或车辆)内可以存在子系统和组件。
图2B是根据本公开内容的方面的ECC诊断模块220(利用图2A来给出)的方块图。在示例中,ECC诊断模块220(如图2A中所给出的)进一步被配置为与输出到总线255_1至总线255_N的多个原始数据源210(图2A)和输出到总线260_1到总线260_N的多个ECC生成器215(图2A)一起操作。为了清楚起见,没有示出该多个原始数据源210和该多个ECC生成器215。复用器275(其标记为MUX1)可以接收并选择总线255_1至总线255_N中的一个总线和总线260_1到260_N中的一个总线。总线255和总线260中的所选择的总线被提供给ECC诊断寄存器222。
XOR切换285可以从ECC诊断寄存器222接收输出(例如,数据和ECC校验子)以及从ECC诊断掩码模块224接收输出(例如,掩码数据流)。XOR切换285可以通过例如XOR功能,将掩码流数据应用至来自ECC诊断寄存器222的数据和ECC校验子。例如,根据来自ECC诊断掩码模块224的掩码流数据,XOR功能可以翻转在掩码流数据是“1”处的ECC校验子数据229(图2A)中的一个或多个比特,以在XOR切换285的输出处引入或注入差错。以这样的方式,ECC诊断掩码模块224可以参考ECC功能的存储器(例如,数据阵列225),生成来自基于存储在第二或不同的存储器(例如,ECC诊断寄存器222)中的原始数据227和/或ECC校验子数据229来注入的差错的预期ECC错误。例如,存储器(例如,数据阵列225)可以位于与相同物理存储器内的第二存储器(例如,ECC诊断寄存器222)不同的存储器位置。在另一个示例中,存储器和第二存储器可以是两个不同的物理存储器。
复用器295(其标记为MUX2)可以被配置为从对应的ECC错误处理器240(参见图2A以供参考)接收多个总线267_1到267_N。为了清楚起见,没有示出该多个ECC错误处理器240_1到240_N。基于测试检查器模块226,仲裁器228可以控制对复用器275和复用器295的选择,以(例如,在多个ECC生成器215中)选择后续的ECC生成器215(图2A)用于测试。仲裁器228可以向测试检查器模块226通知例如被测的数据阵列225(图2A)的存储器的组号。测试检查器模块226可以接收所选择的ECC错误处理器240_1到240_N中的一个ECC错误处理器的输出,以及确定被测数据阵列225的存储器是否已故障。例如,测试检查器模块226可以被配置为确定ECC检查器230检测到的ECC错误是对应于(由ECC诊断掩码模块224注入的差错导致的)预期的ECC错误还是对应于ECC功能的故障。ECC功能可以包括:由第一错误检测和/或校正路径202执行的检测原始数据227中的实际ECC错误。
检测到的ECC错误可能是由ECC功能的故障引起的。例如,测试检查器模块226可以经由软件接收关于来自由ECC诊断掩码模块224引入/注入的差错的预期错误的信息,或者指导ECC诊断掩码模块224经由掩码流来引入差错。在测试检查器模块226确定由ECC检查器230检测到的ECC错误对应于预期错误的情况下,测试检查器模块226可以确定或者识别出第一错误检测和/或校正路径202正在适当地执行ECC功能。在测试检查器模块226确定由ECC检查器230检测到的ECC错误不对应于预期错误的情况下,测试检查器模块226可以确定或识别出检测到的ECC错误对应于ECC功能的故障。ECC功能的故障可能指示或者起因于第一错误检测和/或校正路径202中的故障。例如,存储器(例如,数据阵列225)或ECC校验子数据生成模块(例如,ECC生成器215)中的失败或差错(故障)可以导致ECC功能的故障。
响应于确定由ECC检查器230检测到的ECC错误对应于ECC功能的故障,测试检查器模块226可以输出中断297以向系统200通知该故障(例如,通知在ECC检测路径(诸如,数据阵列225的存储器)中存在故障)。例如,可以将中断297提供给中断处理器250或者经由中断处理器250提供给系统200的各个下游组件。中断处理器250可以确定所接收的中断是对应于由正常ECC功能导致的实际错误(例如,经由总线265从ECC错误处理器240接收的),还是对应于由ECC功能中的故障引起的实际错误(例如,从中断297接收)。系统200的某些下游组件(例如,执行ADAS功能的外部处理器140)可以响应于中断297,来调用与安全有关的措施以确保用户的安全操作。这种与安全有关的措施可以包括响应于检测到ECC功能的故障(例如,确定检测到的ECC错误对应于ECC的故障),向用户(例如,驾驶员或服务设施)通知(例如,通过显示或其它手段)系统故障。例如,当备用摄像机在操作中时,检测到ECC功能的故障的车辆(其包括系统100(参见图1)或系统200(参见图2))可以在摄像机显示器上显示警告,以向用户(例如,驾驶员)警告系统故障并且不要依赖备用摄像机。在另一个示例中,移动计算设备(其包括系统100(参见图1)或系统200(参见图2))可以响应于检测到ECC功能的故障,使用移动计算设备的显示器或扬声器向用户通知系统故障。
在一个方面,系统200可以经由软件来进一步测试ECC生成器215(图2A)是否正在正常工作。例如,系统200可以(例如,经由软件)读取ECC诊断寄存器222,ECC诊断寄存器222可能包含原始数据227和生成的相应ECC校验子数据229二者。例如,系统200可以(例如,经由软件)通过检查原始数据227和ECC校验子数据229(参见图2A),来确定ECC生成器215是否正在正常工作。对ECC生成器215的测试可以与任何常规或测试操作或ECC功能并行地执行。例如,对ECC生成器215(ECC功能的一部分)的测试可以与ECC检查器230(图2A)和/或ECC诊断模块220的操作并行地执行的测试。以这种方式,系统200可以测试ECC生成器215的功能,而不对系统的性能或QoS产生负面影响。
如利用图2A和图2B所给出的,系统200可以包括用于ECC功能的第一错误检测和/或校正路径202(例如,执行某种处理序列的电路的集合)。第一错误检测和/或校正路径202可以包括被配置为存储原始数据227和/或ECC校验子数据229的存储器(数据阵列225)。系统200可以包括第二错误检测和/或校正路径203(例如,执行不同的处理序列的电路的第二集合)以检测第一错误检测和/或校正路径中的故障。第二错误检测和/或校正路径可以包括寄存器(例如,ECC诊断寄存器222),该寄存器被配置为至少部分地存储原始数据227和/或ECC校验子数据229。在一个方面,ECC诊断寄存器222可以存储数据阵列225的至少一个重复部分。第二错误检测和/或校正路径203可以包括用于基于存储在ECC诊断寄存器222中的原始数据227和/或ECC校验子数据229来注入差错以产生预期的ECC错误的模块(例如,ECC诊断掩码模块224)。
在一个方面,第二错误检测和/或校正路径203可以在后台进行操作和/或与第一错误检测和/或校正路径202并行地操作。系统200不需要因为第二错误检测和/或校正路径203进行操作而暂停第一错误检测和/或校正路径202(例如,第一错误检测和/或校正路径202保持联机)。因此,第二错误检测和/或校正路径203可以在没有软件干预、以及不遭受性能损失的情况下,(例如,通过对相同原始数据227和/或经受ECC功能的ECC校验子数据229进行测试)检测第一错误检测和/或校正路径202中的故障。在利用图2A和2B所给出的示例中,系统200共享用于ECC功能以及对ECC功能的故障检测的ECC检查器230和ECC错误处理器240。这样的共享只是示例性的,而不是限制,
在一个方面,数据阵列225的存储器可以用作高速缓存(例如,CPU 110的高速缓存;参见图1)。对ECC功能的故障检测可以包括:在存储器中的测试地址上注入差错,并且该地址可能不能被软件使用。在数据阵列225的存储器用作高速缓存的情况下,这样的方案可能不起作用,因为软件可能不具有基于存储器地址的对高速缓存的接入(也就是说,不容易确定高速缓存的使用)。但是,即使在数据阵列225的存储器用作高速缓存的情况下,使用图2A和2B所描述的系统200也可以通过对原始数据227和相应的ECC校验子数据229的至少一部分的副本进行测试来起作用。
图3是示出用于确定和调用联机对ECC功能的联机故障检测的过程300的流程图。过程300起始于开始方块305。随后,过程300转到方块310,其中在方块310处,接收原始数据227。参见图2A,原始数据227可以源自于原始数据源210并被传送到ECC生成器215、数据阵列225和ECC诊断模块220。随后,过程300转到方块315。
在方块315处,将原始数据227存储在数据阵列225中。在一个方面,可以将原始数据227的至少一部分存储在ECC诊断寄存器222(图2A)中,使得原始数据227(或者其一部分)可以用于系统200(图2A)的后续ECC测试。随后,该过程转到方块320。
在方块320处,ECC生成器215创建与如存储在数据阵列225中的原始数据227相对应的必要的ECC校验子数据229(图2A)。随后,过程300转到方块325。
在方块325处,可以将ECC校验子数据229存储在数据阵列225(例如,用于ECC功能的存储器)中。在一个方面,将ECC校验子数据229存储在数据阵列225中将与系统200的正常ECC功能一致。在另一个方面,可以将ECC校验子数据229(或者其一部分)存储在ECC诊断寄存器222(例如,第二或不同的存储器)中,使得ECC诊断模块220可以经由系统200进行ECC功能故障检测。例如,可以将ECC校验子数据229存储在第二存储器中,以用于通过基于存储在第二存储器中的原始数据227和/或ECC校验子数据229(如利用图2B所给出的)来注入差错来生成预期的ECC错误,从而经由ECC诊断模块220来测试ECC功能。随后,过程300转到决策方块335。
在决策方块335处,做出关于是否期望进行联机ECC功能测试的确定。例如,联机ECC功能测试可以包括ECC功能故障检测。在一个方面,系统200可以从SoC 102(图1)接收指示以开始由ECC诊断模块220执行的联机ECC功能测试。在一个方面,进行ECC功能测试的确定可以是简单地基于周期定时器。在另一个方面,ECC功能测试确定可以是由过程300在先前进行ECC功能测试的尝试失败的结果;例如,过程300可能必须等待以进行测试,这是因为正在从数据阵列225写入或读取数据。因此,许多因素都可能对方块335中的确定起作用。如果确定进行ECC功能测试的结果是肯定的,则过程300沿着是分支转到决策方块340。
在决策方块340处,过程300确定数据阵列225中的原始数据227是否正在被存取(例如,读取或写入)。如果原始数据227不在被存取,则过程300沿着否分支转到参考方块A,参考方块A在下文的图4中继续。
返回到决策方块340,如果确定数据正在被存取,则过程300沿着是分支转到方块330。在方块330处,系统200可以向SoC 102(或者外部处理器140;参见图1)发送信号以指示应当调整QoS参数,使得在不存取(例如,读取或写入)原始数据227的情况下提供较大的窗。利用在不存取的情况下的较大窗,过程300可能具有调用联机对ECC功能的联机故障检测的更高的可能性。ADAS可以具有大约二百五十毫秒(250ms)的容错时间间隔(“FTTI”)。通常,250ms的FTTI足以提供联机对ECC功能的联机故障检测。可以调整QoS参数,使得不超过250ms的FTTI。否则,可能会违反ADAS要求,潜在地对用户造成严重伤害(包括失去生命)。注意的是,方块330利用虚线来示出,其指示方块330中的操作可以由过程300使用,也可以不由过程300使用,这取决于如何部署过程300(以及其对应的系统100、200)。以这种方式,可以推迟对ECC错误的检查,直到基于QoS参数来接收的原始数据227不被存取为止。如果对检查ECC错误的推迟超过容错期限(例如,250ms的FTTI),则可以调整QoS参数以减少ECC错误检查的推迟。
随后,过程300返回连接到确定块335。当在方块330中对QoS参数的调整发生时,可能已经过去一些实际时间,这是因为对QoS参数的调整可能花费一些时间来提供足够的时间窗,以便过程300执行联机对ECC功能的联机故障检测。
随后,过程300转到方块337。在方块337处,过程300根据移动计算设备(或车辆)在其指定的现实场景中的正常操作来操作系统100(图1)或系统200。例如,方块337中的操作可以涉及操作自适应巡航控制系统,该自适应巡航控制系统允许车辆在最小的用户交互情况下,以预定的距离或速度跟随另一个车辆。随后,过程300转到决策方块350。
在方块350处,确定是否由于原始数据227发生更新而更新ECC校验子数据229。在系统200在方块337中的操作期间发生的事件可能改变原始数据227。因此,可能需要更新ECC校验子数据229以便维持原始数据227本身以及与ECC有关的功能二者的完整性。如果应当更新ECC校验子数据229,则过程300沿着是分支转到方块310,在方块310处,过程300如先前所述地继续。
返回到决策方块350,如果不需要更新ECC校验子数据229,则过程300沿着否分支转到决策方块355。在决策方块355处,过程300确定系统200是否应当关闭。超出本说明书范围的许多因素都可能影响关闭系统200的需要。例如,移动计算设备(或车辆)可以简单地通过用户命令来关闭(例如,用户停放车辆并关闭发动机)。另一个示例可以是移动计算设备(或车辆)中的灾难性事件,其导致移动计算设备(或车辆)突然关闭(例如,与混凝土墙的高速碰撞)。如果移动计算设备(或车辆)仍然保持运行,则过程300沿着否分支转到方块337,在方块337处,过程300如方块337中所描述地操作设备。
返回到决策方块355,如果过程300确定移动计算设备(或车辆)应当关闭,则过程300沿着是分支转到结束方块390,此处过程300终止。
图4是示出用于进行联机对ECC功能的联机故障检测的过程400的流程图。该过程开始于参考方块A,其源自于图3,如上所述。参考图3的过程300可以实现成过程400的一部分。同样,过程300、400可以包括本文没有描述但与本说明书的精神和保护范围一致的进一步的子过程。过程400转到方块405。
在方块405处,ECC诊断模块220(图2A)在ECC诊断模块220(图2A)内发起ECC功能测试(例如,用于检测ECC功能的故障)。ECC诊断模块220可以利用ECC诊断寄存器222(图2A)内的原始数据227(或者其部分;参见图2A)和ECC校验子数据229(或者其部分;参见图2A)来确定对于原始数据227的正确的ECC校验子数据229应当是什么。随后,ECC诊断模块220可以利用ECC诊断掩码模块224(图2A)来改变ECC校验子数据229,使得预期的ECC错误状况被创建。在过程400中的此时,测试检查器模块226具有足以确定以下内容的信息:系统200的ECC功能的结果是实际上在操作的还是不在操作的。随后,过程400转到方块410。
在方块410处,ECC诊断模块220经由总线262(图2A),向ECC检查器230(图2A)发送预期的ECC错误状况。期望的ECC错误状况可以伴随有原始数据227(或者其一部分),使得可以相对于正在被系统200(图2A)使用的数据来利用预期的ECC错误状况。随后,过程400转到方块412。
在方块412处,ECC检查器230基于预期的ECC错误状况(以及相关联的原始数据227)来检测并用信号发送错误。回想上文,系统200可以被配置为生成预期的ECC错误,并且使它们通过现有的ECC检查模块和组件。由ECC检查器230检测到和用信号发送的错误可以是来自由ECC诊断模块220注入的差错的预期ECC错误、或者由ECC功能导致的实际ECC错误(例如,原始数据227中的错误)。
例如,ECC检查器230可以对从数据阵列225或ECC诊断模块220发送的数据进行操作。例如,ECC检查器230可以包括复用器,以选择总线264或总线262作为输入。ECC检查器230可以针对原始数据227和ECC校验子数据229选择总线264,以在正常读取情况下处理ECC功能(例如,检测原始数据227中的ECC错误)。周期性地(例如,不连续地),ECC检查器230可以针对来自ECC诊断模块220的数据选择总线262,以处理ECC功能故障检测(例如,ECC功能的故障可以是例如存储器或数据阵列225中的故障)。以这种方式,ECC检查器230可以替代地检测由ECC功能故障引起的错误和来自ECC功能的实际错误。随后,过程400转到方块415。
在方块415处,ECC错误处理器240可以经由总线265(图2A)来调用中断。随后,过程400转到方块420,在方块420处,ECC错误处理器240可以经由总线267(图2A)向ECC诊断模块220调用类似的中断或消息。随后,过程400转到决策方块425。
在决策方块425处,过程400确定ECC检查是否正在按预期进行操作。回想一下,在过程400中的此时,ECC错误处理器240和ECC诊断模块220都具有基本上足以确定以下内容的信息:ECC检查器230检测到的ECC错误是确实是ECC功能的故障(例如,由存储器或数据阵列225或者ECC校验子数据生成模块(例如,ECC生成器215)中的差错/故障引起的),还是预期的错误(例如,对应于由ECC诊断模块220经由ECC诊断掩码模块224注入的差错)。如果在方块412处由ECC检查器230检测或输出的ECC错误是由ECC诊断模块220产生的预期错误,则过程400沿着是分支转到参考方块B,参考方块B在图3中继续。预期的ECC错误的存在可能需要中断处理器250(图2A)与ECC诊断模块220之间的某种通信,使得中断处理器250接收的中断被忽略,这是因为该ECC错误是系统200故意产生的,以便功能性地测试系统200中的ECC功能。如先前所陈述的,可以当系统100、200在运行时执行这样的ECC功能测试(例如,故障检测)。
返回到决策方块425,如果由ECC检查器230在方块412处检测到的ECC错误对应于ECC功能的故障(例如,存储器或数据阵列225或者ECC校验子数据生成模块(例如,ECC功能的ECC生成器215)中的故障/失败),则过程400沿着否分支转到方块430。在方块430处,过程400通知ECC功能故障。例如,系统200可以向下游组件(诸如,执行ADAS功能的外部处理器140)通知ECC功能的故障。ECC功能的故障可能需要移动计算设备(或车辆)的进一步动作,使得安全操作可以继续。例如,响应于检测到ECC功能的故障,车辆可以经由显示器向用户(例如,驾驶员或服务设施)通知系统故障。随后,过程400转到参考方块C,参考方块C在图5中进一步描述。
图5是示出用于处理在联机对ECC功能的联机故障检测期间检测到的故障的过程500的流程图。过程500可以实现成过程300(图3)、过程400(图4)或者其组合的一部分。过程300、400、500可以包括多个子过程,子过程可以被配置为执行过程300、400、500的操作。过程500在参考方块C处开始,并且转到决策方块505。
在决策方块505处,确定移动计算设备(或车辆)是否可以继续以“故障操作”模式进行操作。“故障操作”模式通常与ISO 26262合规性有关,ISO 26262合规性用于解决单点故障指标(“SPFM”)、潜在故障指标(“LFM”)、用于汽车安全集成等级(“ASIL”)的概率性硬件失效指标(“PMHF”)等等。方块505处的确定可以由总线265下游的组件(图2A)来执行。例如,ECC错误处理器240可以确定系统200内发生了故障,在该情况下,ECC错误处理器240(图2A)可以(例如,经由中断处理器250;参见图2A)将故障传送到移动计算设备(或车辆)中的其它组件。但是,当移动计算设备(或车辆)接收到故障时,可以确定该故障是否需要转换到“故障操作”模式或者甚至“安全”模式。
“故障操作”模式是通常即使已经检测到故障也允许移动计算设备(或者车辆)基本上继续进行操作的一种模式;“故障操作”模式的目标可以是保护移动计算设备(或车辆)的用户,因为进入“安全”模式(例如,完全关闭车辆)将对用户或者其他旁观者构成潜在危险。举例而言,如果系统200(图2A)报告的故障涉及自适应巡航控制,则可以调用“故障操作”模式。车辆可以向用户给出触觉或听觉警告,使得用户知道自适应巡航控制处于“故障操作”模式。进一步地,用户可以随后安全地将车辆驾驶到路边,寻求道路救援。
另一方面,“安全”模式通常导致系统(或子系统)被禁用,这是因为系统(或子系统)可能没有被可靠地使用,并可能导致甚至更大的伤害。例如,如果车辆上的备用摄像机受到系统200报告的故障的影响,则备用摄像机系统可以被完全关闭以迫使用户利用传统的反光镜和驾驶技术来倒退地操作车辆,而不伤害财产或行人。
如果决策方块505中的确定导致确定应当启动“故障操作”模式,则过程500沿着是分支转到方块510。在方块510处,移动计算设备(或车辆)可以向用户关于故障进行警告。作为另一个说明性示例,车辆可以处于半自动驾驶模式,而用户仍然坐在驾驶员座椅中(并且被指示注意周围环境)。如果连接到摄像机子系统的存储器模块中的一个存储器模块经由系统200产生ECC错误,则“故障操作”模式可以通过听觉或触觉警报来警告用户,使得用户需要握住方向盘并操作加速度器和制动器。可以进一步指示用户停车和等待帮助。随后,过程500转到决策方块520。
在决策方块520处,过程500确定移动计算设备(或车辆)是否可以继续以“故障操作”模式进行操作。返回到上文关于半自动驾驶的示例,可以简单地向用户指示半自动驾驶系统处于故障状态,并且尽管存在故障,用户应当继续驾驶车辆到达目的地。一旦到达目的地,随后可以指示用户去找有资格的技术人员来解决该问题。因此,一些“故障操作”错误可能比其它错误更严重或者没有其它错误严重。如果过程500确定移动计算设备(或车辆)可以继续以“故障操作”模式进行操作,则过程500沿着是分支转到方块510。
返回到决策方块520,如果确定“故障操作”模式不足以满足用户或车辆安全标准,则过程沿着否分支转到方块515。为了完整性,决策方块505可能已经经由过程500做出进入“安全”模式的确定,并避免进入本文所描述的“故障操作”模式。在任一情况下,在方块515处,移动计算设备(或车辆)都可以在“安全”模式下进行操作。通常,用于车辆实现方式的“安全”模式可以导致系统(或子系统)的部分关闭或完全关闭。例如,如果系统200发送的故障指示了车辆电源不再能够运行(例如,电动发动机中的电气监控电路完全不可靠),则车辆可能需要直接进入“安全”模式,在该模式下,整个车辆掉电并完全停止。随后,过程500转到决策方块520。
在决策方块525处,确定移动计算设备(或车辆)是否可以继续以“安全”模式进行操作。“安全”模式操作的替代性示例可以与备用摄像机有关。如果由于ECC功能的故障导致车辆不能操作备用摄像机,则车辆可以简单地继续以“安全”模式进行操作,直到将车辆送至技术人员进行维修为止;同时,用户可以依靠传统工具(例如,反光镜、来自行人的声音警报、打破玻璃的声音等等)反向操作车辆。如果系统(或子系统)可以继续以“安全”模式进行操作(如上文的替代示例所演示的),则过程500沿着是分支转到方块515。
返回到决策方块525,过程500可以确定“安全”模式不再是移动计算设备(或车辆)的可行选项,因为例如用户和旁观者的安全可能会由于继续操作而受到危害。如果过程500确定移动计算设备(或车辆)不再可以在“安全”模式下进行操作,则过程500转到参考方块D,参考方块D在上文描述的图3中继续。
返回到图3,简言之,参考方块D在过程300的中间开始,基本上在决策方块355(图3)之上,在决策方块355处过程300确定移动计算设备(或车辆)是否应当关闭。灾难性故障(例如,来自系统200的大量ECC故障)可以通过沿着是分支转到结束方块390(图3),来通知过程300关闭车辆,过程300在结束方块390处终止。
图6是示出根据本公开内容的某些方面的另一个过程600的流程图。过程300(图3)、过程400(图4)和过程500(图5)可以是过程600的实现方式的示例。过程600的方块可以由如利用图1、图2A和图2B所给出的系统100或系统200来实现。在方块610处,ECC功能是对原始数据进行操作的。例如,参见图2A,第一错误检测或校正路径202进行操作来检测原始数据227中的实际ECC错误。ECC生成器215可以从原始数据227生成ECC校验子数据229。数据阵列225可以存储原始数据和ECC校验子数据229。ECC检查器230可以操作本领域已知的ECC算法来检测存储在数据阵列225中的原始数据内的实际ECC错误。
在方块615处,生成ECC校验子数据。例如,作为方块610的ECC功能的一部分,ECC生成器215(图2A)可以从原始数据227来生成ECC校验子数据229。在方块620处,可以基于ECC校验子数据和原始数据来注入差错。例如,参照图2B,ECC诊断寄存器222可以存储:在ECC诊断寄存器222中存储的ECC校验子数据229(图2A)和原始数据227(图2A)的至少一部分。ECC诊断掩码模块224可以输出掩码流。当XOR切换285将该掩码流与存储在数据阵列225(图2A)中的ECC校验子数据229(图2A)和原始数据227(图2A)进行组合时,该掩码流可以注入差错,以及引入预期的ECC错误作为总线262上的信令。以这种方式,基于存储在ECC诊断寄存器222中的ECC校验子数据229(图2A)和原始数据227(图2A)来引入或生成预期的ECC错误。在方块625处,检测ECC错误。例如,参见图2A,作为第一错误检测或校正路径202的一部分,ECC检查器230可以选择性地进行操作以基于存储在数据阵列225中的ECC校验子数据229(图2A)和原始数据227来检测ECC错误。进一步地,ECC检查器230可以检测经由总线262来自第二错误检测或校正路径203的ECC错误。检测到的ECC错误可以对应于ECC功能的故障或者基于ECC校验子数据或原始数据注入的差错(例如,检测到的ECC错误是预期的ECC错误)。
在方块635处,确定ECC错误是对应于ECC功能的故障还是基于ECC校验子数据或原始数据注入的差错。例如,参照图2A,ECC诊断模块220可以经由总线267从ECC错误处理器240接收检测到的ECC错误。参照图2B,ECC诊断模块220的测试检查器模块226可以确定经由总线267接收的检测到的ECC错误是否与预期的ECC错误相匹配。在经由总线267接收的检测到的ECC错误与预期的ECC错误不匹配的情况下,测试检查器模块226可以将中断297输出到例如中断处理器250(图2A)。在一个示例中,参照图2A,中断处理器250可以确定存储在数据阵列225和ECC诊断寄存器222中的相同原始数据227和ECC校验子数据229不触发作为ECC功能的一部分的ECC错误检测和/或中断。例如,在ECC功能的存储器中(例如,在第一错误检测或校正路径202的数据阵列225中)可能发生故障。ECC功能的存储器中的故障可能导致对原始数据执行ECC功能的第一错误检测或校正路径202没有检测到ECC错误。不在故障路径中的第二错误检测或校正路径203可以识别出ECC检查器230检测到的ECC错误与预期的ECC错误不匹配,以及向中断处理器250输出中断297。中断处理器250可以识别并确定对相同原始数据227的ECC功能确实导致了ECC检查器230检测到ECC错误作为对相同原始数据227的ECC功能的一部分(例如,在总线265上没有接收到中断)。以这种方式,系统200可以确定ECC检查器230检测到的ECC错误是对应于预期的ECC错误(由ECC诊断模块220生成)还是对应于ECC功能的故障(例如,第一错误检测或校正路径202的故障,如上文给出的)。
图7示出了系统700的方块图,系统700包含具备ADAS功能的车辆715,其被配置为执行联机对ECC功能的联机故障检测。车辆715可以由用户705操作。
系统720可以布置在车辆715内。在一个方面,系统720可以是上文在图1中所描述的系统100的示例。在另一个方面,系统720可以是上文在图2A中所描述的系统200的示例。在又一个方面,系统720可以是系统100(参见图1)或系统200(参见图2A)的混合版本。
系统720可以电子耦合到外部处理器725。在一个方面,外部处理器725可以是上文在图1中所描述的外部处理器140的示例。所描绘的外部处理器725可以包括若干个系统(和子系统),其中的许多系统被配置为操作车辆715内的ADAS。因此,系统720可以是车辆715内的许多模块中的一个,其被配置为使用上文所描述的过程300、400、500(分别为图3、4和5)来检查ECC错误。
用户705可以使用方向盘710来控制车辆715。在一个方面,方向盘710被配置为当系统700遇到ECC错误时向用户705给出触觉警告。例如,ECC诊断模块220(图2A)可以确定:ECC错误许可对上文在图5中所描述的过程500的调用。如果系统700能够按照方块505以“故障操作”模式进行操作,则用户705可以继续操作车辆715,从而确保用户705的安全。
当ECC诊断模块220检测到ECC错误时,用户705可以从扬声器735接收声音警告。如关于图5中的过程500所描述的,当车辆715处于“故障操作”模式时(例如,在过程500中的方块505处;参见图5),用户705可能需要采取校正动作。例如,因为作为车辆715的ADAS的一部分,车辆715正在自主驾驶,因此用户705可能没有将他们的手放在方向盘710上。因此,用户705可能需要听到与在过程300、400、500中的任何一个过程中检测到的与ECC错误有关的警报,在上文分别参照图3、图4和图5来描述了过程300、400、500。
车辆715还可以具有信息娱乐单元730。信息娱乐单元730可以布置在车辆715的仪表板中,使得用户705可以看到与车辆715的安全操作有关的视觉警告。再次,ECC诊断模块220可以通过上文所描述的过程300、400、500来检测ECC错误;信息娱乐单元730可以传送车辆715是否被配置为在“故障操作”模式或“安全”模式下继续。如果ECC诊断模块220检测到ECC错误,则方向盘710和扬声器735可能不足以警告用户705采取与车辆715的安全操作有关的校正动作。因此,信息娱乐单元730可以显示文本、图像、视频或者其组合,以通知用户705如何解决ADAS中的错误。
行人740可能在车辆715附近。例如,行人740可能在车辆715后面行走。在正常操作条件下,当车辆715倒退操作时,信息娱乐单元730可以被配置为向用户705显示备用摄像机视角。这样的备用摄像机(以及其相关联的系统)可以具有被配置为检测行人740的存在和运动的逻辑。在ECC错误和/或ECC功能的故障的情况下,过程500可以确定ECC错误和/或故障应当使系统720以“安全”模式进行操作(例如,在图5中所描述的方块515处)。此外,“安全”模式可以使信息娱乐单元730向用户705显示警告,以指示备用摄像机不在正常工作,用户705应当依靠反光镜和其它视觉辅助来确保行人740的安全。
具备ADAS功能的车辆(诸如,车辆715)可能需要符合某些安全标准。这样的标准可以包括标题为“道路车辆-功能安全(Road vehicles–Functional safety)”的ISO 26262。ISO 26262包含许多与具备ADAS功能的车辆的安全操作有关的要求。系统720和/或外部处理器725可以支持ISO26262,并被相应地进行配置。
各个方面(其包括但不限于上文参照图1至图6所论述的方面)可以在包括移动设备1000的各种各样的计算设备中的任何计算设备中实现,在图8中示出了移动设备1000的示例。随着越来越多的电子设备具备有无线技术,“移动设备”的定义是广泛的。因此,移动设备1000可以是上文所描述的系统100、200、700的示例。进一步地,移动设备1000可以实现如图3、图4和图5中分别所描述的过程300、400、500。例如,移动设备1000可以包括耦合到触摸屏控制器1004和内部存储器16002的处理器1001。处理器1001可以是指定用于通用或专用处理任务的一个或多个多核集成电路(IC)。在一个方面,处理器1001可以与上文所描述的SoC 102基本相同。内部存储器1002可以是易失性或非易失性存储器,还可以是安全的和/或加密的存储器、或者不安全的和/或未加密的存储器、或者其任何组合。触摸屏控制器1004和处理器1001还可以耦合到触摸屏面板1012,诸如,电阻感应触摸屏、电容感应触摸屏、红外感应触摸屏等等。
移动设备1000可以具有用于进行发送和接收的一个或多个无线电信号收发机1008(例如,
Figure BDA0002532686120000271
蓝牙、
Figure BDA0002532686120000272
Wi-Fi、RF、蜂窝等等)和天线1010,它们彼此相耦合和/或耦合到处理器1001。收发机1008和天线1010可以与上文所提及的电路一起使用,以实现各种无线传输协议栈和接口,并建立本文所论述的各种无线链路。移动设备1000可以包括经由一个或多个蜂窝网络来实现通信并耦合到处理器1001的一个或多个蜂窝网络无线调制解调器芯片1016,诸如,一个蜂窝网络无线调制解调器芯片、两个蜂窝网络无线调制解调器芯片、三个蜂窝网络无线调制解调器芯片、四个蜂窝网络无线调制解调器芯片、或者多于四个蜂窝网络无线调制解调器芯片。一个或多个蜂窝网络无线调制解调器芯片1016可以使移动设备1000能够从一个或多个蜂窝网络(例如,CDMA、TDMA、GSM、3G、4G、5G、LTE或者任何其它类型的蜂窝网络)接收服务,以及实现各种无线传输协议栈和接口,以及建立本文所论述的各种无线链路。
移动设备1000可以包括耦合到处理器1001的外围设备连接接口1018。外围设备连接接口1018可以被单独地配置为接受一种类型的连接,或者被多重地配置为接受各种类型的共同或专有的物理和通信连接(诸如,USB、火线(FireWire)、雷电(Thunderbolt)、以太网或PCIe)。此外,外围设备连接接口1018还可以耦合到相似地配置的外围设备连接端口(没有示出)。此外,移动设备1000还可以包括用于提供音频输出的扬声器1014。
移动设备700还可以包括由塑料、金属、或材料的组合构成的壳体1020,以用于包含本文所论述的所有部件或者一些部件。移动设备1000可以包括耦合到处理器1001的电源1022,诸如一次性或可充电电池。此外,可充电电池还可以耦合到外围设备连接端口,以便从移动设备1000之外的源接收充电电流。
另外,编程领域的普通技术人员能够编写计算机代码或者识别适当的硬件和/或电路,以例如基于本说明书中的流程图和相关联的描述,没有困难地实现所公开的发明。
因此,对于充分地理解如何实现和使用本发明来说,公开特定的程序代码指令集或者详细的硬件设备并不认为是必需的。结合可以说明各个过程流程的附图,在上文的描述中更详细地解释了所主张的计算机实现的过程的创造性功能。
在一个或多个示例性方面,本文所描述功能可以在硬件、软件、固件或其任意组合中实现。当在软件中实现时,可以将功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括促进将计算机程序从一个地方传送到另一个地方的任何介质。存储介质可以是计算机能够存取的任何可用介质。举例而言但并非限制,这样的计算机可读介质可以包括RAM、ROM、EEPROM、NAND闪存、NOR闪存、M-RAM、P-RAM、R-RAM、CD-ROM或者其它光盘存储器、磁盘存储器或其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。
此外,可以将任何连接适当地称作计算机可读介质。举例而言,如果软件是使用同轴电缆、光纤电缆、双绞线、数字用户线路(“DSL”)或者诸如红外线、无线和微波之类的无线技术从网站、服务器或其它远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在介质的定义中。
如本文所使用的,磁盘(disk)和光盘(disc)包括压缩光盘(“CD”)、激光光盘、光盘、数字通用光盘(“DVD”)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。上述的组合也应当包括在计算机可读介质的保护范围之内。
对于任何本领域普通技术人员来说,本发明相关的替代方面将变得显而易见,而不脱离本发明的精神和保护范围。因此,虽然已经详细地说明和描述了选定的方面,但将理解的是,可以在不脱离本发明的精神和保护范围的情况下,进行各种替代和改变,如所附权利要求书所限定的。

Claims (15)

1.一种用于纠错码(“ECC”)错误处理的方法,所述方法包括:
对原始数据操作ECC功能,所述ECC功能包括:
由ECC校验子数据生成模块生成ECC校验子数据,所述ECC校验子数据是从所述原始数据导出的;
基于所述ECC校验子数据或所述原始数据来注入差错;
由ECC检查器检测ECC错误;
确定由所述ECC检查器检测到的所述ECC错误是对应于所述ECC功能的故障还是基于所述ECC校验子数据或所述原始数据注入的所述差错;
推迟由所述ECC检查器检测所述ECC错误,直到所述原始数据不再被存取为止,所述原始数据是基于服务质量参数来接收的;以及
响应于对检测所述ECC错误的所述推迟超过容错期限,调整所述服务质量参数以减少对由所述ECC检查器检测所述ECC错误的所述推迟。
2.根据权利要求1所述的方法,还包括:
将所述原始数据或所述ECC校验子数据存储在存储器中;
将所述原始数据或所述ECC校验子数据存储在第二存储器中,所述差错是基于存储在所述第二存储器中的所述原始数据或所述ECC校验子数据来注入的。
3.根据权利要求1所述的方法,其中,所述ECC功能的所述故障包括:在存储所述原始数据或所述ECC校验子数据的存储器中的故障,或者在所述ECC功能的所述ECC校验子数据生成模块中的故障。
4.根据权利要求1所述的方法,其中,所述ECC功能还包括:
由所述ECC检查器使用所述ECC校验子数据来检测所述原始数据中的实际ECC错误。
5.根据权利要求1所述的方法,还包括:
响应于所述确定由所述ECC检查器检测到的所述ECC错误对应于所述ECC功能的所述故障,由移动计算设备或车辆中的一者向用户通知系统故障。
6.一种用于纠错码(“ECC”)错误处理的系统,所述系统包括:
存储器,所述存储器被配置为存储原始数据和ECC校验子数据;
耦合到所述存储器并且被配置为进行以下操作的至少一个处理器:
对原始数据操作ECC功能,所述ECC功能包括:
生成ECC校验子数据,所述ECC校验子数据是从所述原始数据导出的;
基于所述ECC校验子数据和所述原始数据来注入差错;
检测ECC错误;
确定所述ECC错误是对应于所述ECC功能的故障还是对应于基于所述ECC校验子数据和所述原始数据注入的所述差错,其中,所述至少一个处理器还被配置为:
推迟检测所述ECC错误,直到所述原始数据不再被存取为止,所述原始数据是基于服务质量参数来接收的,以及
响应于所述推迟超过容错期限,调整所述服务质量参数以减少所述推迟。
7.根据权利要求6所述的系统,还包括:
第二存储器,其被配置为存储所述原始数据和所述ECC校验子数据,其中,所述至少一个处理器还被配置为基于存储在所述第二存储器中的所述原始数据和所述ECC校验子数据来注入所述差错。
8.根据权利要求6所述的系统,其中,所述ECC功能的所述故障包括:在存储所述原始数据或所述ECC校验子数据的存储器中的故障,或者在所述ECC功能的ECC校验子数据生成模块中的故障。
9.根据权利要求6所述的系统,其中,所述ECC功能还包括:
使用所述ECC校验子数据来检测所述原始数据中的实际ECC错误。
10.根据权利要求6所述的系统,还包括包含所述存储器和所述至少一个处理器的移动计算设备和车辆中的一者,其中所述移动计算设备和所述车辆中的所述一者还被配置为:响应于所述至少一个处理器确定所述ECC错误对应于所述ECC功能的所述故障,向用户通知系统故障。
11.一种用于纠错码(“ECC”)错误处理的系统,所述系统包括:
错误检测或校正路径,其被配置为对原始数据执行ECC功能,其中所述错误检测或校正路径包括:
ECC校验子数据生成模块,其被配置为从所述原始数据生成ECC校验子数据;
测试检查器模块,其包括硬件,其被配置为基于所述ECC校验子数据和所述原始数据来注入差错;
ECC检查器,其被配置为检测ECC错误,其中所述测试检查器模块还被配置为:确定由所述ECC检查器检测到的所述ECC错误是对应于所述ECC功能的故障还是对应于基于所述ECC校验子数据和所述原始数据注入的所述差错,
其中,所述测试检查器模块还被配置为:
推迟由所述ECC检查器对所述ECC错误的检测,直到所述原始数据不再被存取为止,所述原始数据是基于服务质量参数来接收的,以及
响应于对由所述ECC检查器检测所述ECC错误的所述推迟超过容错期限,调整所述服务质量参数以减少对由所述ECC检查器对所述ECC错误的所述检测的所述推迟。
12.根据权利要求11所述的系统,还包括:
存储器,其被配置为存储所述原始数据或所述ECC校验子数据;以及
第二存储器,其被配置为存储所述原始数据或所述ECC校验子数据,其中,所述测试检查器模块还被配置为基于存储在所述第二存储器中的所述原始数据或所述ECC校验子数据来注入所述差错。
13.根据权利要求11所述的系统,其中,所述ECC功能中的所述差错包括:在被配置为存储所述原始数据或所述ECC校验子数据的存储器中的故障,或者在所述ECC功能的所述ECC校验子数据生成模块中的故障。
14.根据权利要求11所述的系统,其中,所述错误检测或校正路径还包括所述ECC检查器,所述ECC检查器还被配置为使用所述ECC校验子数据来检测所述原始数据中的实际ECC错误。
15.根据权利要求11所述的系统,还包括:
移动计算设备或车辆中的一者,其被配置为响应于所述测试检查器模块确定由所述ECC检查器检测到的所述ECC错误对应于所述ECC功能的所述故障,向用户通知系统故障。
CN201880079766.XA 2017-12-12 2018-10-12 用于针对纠错码功能的联机功能测试的系统和方法 Active CN111480147B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/838,777 2017-12-12
US15/838,777 US10625752B2 (en) 2017-12-12 2017-12-12 System and method for online functional testing for error-correcting code function
PCT/US2018/055654 WO2019118057A1 (en) 2017-12-12 2018-10-12 System and method for online functional testing for error-correcting code function

Publications (2)

Publication Number Publication Date
CN111480147A CN111480147A (zh) 2020-07-31
CN111480147B true CN111480147B (zh) 2021-04-02

Family

ID=64083172

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880079766.XA Active CN111480147B (zh) 2017-12-12 2018-10-12 用于针对纠错码功能的联机功能测试的系统和方法

Country Status (5)

Country Link
US (1) US10625752B2 (zh)
EP (1) EP3724763B1 (zh)
CN (1) CN111480147B (zh)
TW (1) TW201929441A (zh)
WO (1) WO2019118057A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190079809A (ko) * 2017-12-28 2019-07-08 현대자동차주식회사 결함 주입 테스트 장치 및 그 방법
US11144027B2 (en) * 2019-06-29 2021-10-12 Intel Corporation Functional safety controls based on soft error information
SE544204C2 (en) * 2020-04-15 2022-03-01 Scania Cv Ab Method and control arrangement for vehicle self-diagnosis
US20210089418A1 (en) * 2020-07-27 2021-03-25 Intel Corporation In-system validation of interconnects by error injection and measurement
CN113295943B (zh) * 2021-04-30 2023-03-24 地平线征程(杭州)人工智能科技有限公司 待测试模块的测试电路、方法及装置
US11593204B2 (en) * 2021-05-27 2023-02-28 Western Digital Technologies, Inc. Fleet health management device classification framework
KR20220168737A (ko) * 2021-06-17 2022-12-26 삼성전자주식회사 반도체 메모리 장치
US11461205B1 (en) 2021-08-24 2022-10-04 Nxp B.V. Error management system for system-on-chip
US11940872B2 (en) 2022-04-21 2024-03-26 Analog Devices International Unlimited Company Error correction code validation
US11852680B1 (en) * 2022-08-09 2023-12-26 Nanya Technology Corporation Test device and test method thereof
CN115831213A (zh) * 2023-01-28 2023-03-21 南京芯驰半导体科技有限公司 校验处理器的检测方法、装置、电子设备、存储介质
CN116341011B (zh) * 2023-05-11 2023-08-11 上海芯联芯智能科技有限公司 一种检测系统及方法
CN116467131B (zh) * 2023-06-19 2023-08-25 上海芯联芯智能科技有限公司 一种处理器的ecc功能验证方法、装置、介质和设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1160987A2 (en) * 2000-05-01 2001-12-05 Hewlett-Packard Company, A Delaware Corporation Method and apparatus for verifying error correcting codes
CN104765650A (zh) * 2014-01-08 2015-07-08 瑞萨电子株式会社 数据处理装置
WO2016161409A1 (en) * 2015-04-02 2016-10-06 Microchip Technology Incorporated Run time ecc error injection scheme for hardware validation

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4794597A (en) * 1986-03-28 1988-12-27 Mitsubishi Denki Kabushiki Kaisha Memory device equipped with a RAS circuit
US6044483A (en) * 1998-01-29 2000-03-28 International Business Machines Corporation Error propagation operating mode for error correcting code retrofit apparatus
US6701480B1 (en) * 2000-03-08 2004-03-02 Rockwell Automation Technologies, Inc. System and method for providing error check and correction in memory systems
US20030069963A1 (en) * 2001-09-27 2003-04-10 Nikil Jayant System and method of quality of service signaling between client and server devices
US20030182611A1 (en) * 2002-03-19 2003-09-25 Chung-Che Wu Method for verifying error correction code function of a computer system
US7900120B2 (en) * 2006-10-18 2011-03-01 Micron Technology, Inc. Memory system and method using ECC with flag bit to identify modified data
US7900100B2 (en) * 2007-02-21 2011-03-01 International Business Machines Corporation Uncorrectable error detection utilizing complementary test patterns
US8627163B2 (en) * 2008-03-25 2014-01-07 Micron Technology, Inc. Error-correction forced mode with M-sequence
WO2010047111A1 (ja) * 2008-10-23 2010-04-29 パナソニック株式会社 無線送信装置、無線受信装置、及び符号化データ送信方法
WO2010064312A1 (ja) * 2008-12-04 2010-06-10 富士通株式会社 記憶装置および故障診断方法
US8190744B2 (en) * 2009-05-28 2012-05-29 Palo Alto Research Center Incorporated Data center batch job quality of service control
JP5978219B2 (ja) * 2010-11-01 2016-08-24 トムソン ライセンシングThomson Licensing ネットワークサービスのための体感品質管理のための方法および装置
US8914687B2 (en) 2011-04-15 2014-12-16 Advanced Micro Devices, Inc. Providing test coverage of integrated ECC logic en embedded memory
US8707104B1 (en) * 2011-09-06 2014-04-22 Western Digital Technologies, Inc. Systems and methods for error injection in data storage systems
US8700928B2 (en) * 2012-05-21 2014-04-15 New Jersey Institute Of Technology Hierarchical energy optimization for datacenter networks
US10200914B2 (en) * 2017-01-20 2019-02-05 Microsoft Technology Licensing, Llc Responsive quality of service management
US10389379B2 (en) * 2017-05-12 2019-08-20 Qualcomm Incorporated Error correcting code testing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1160987A2 (en) * 2000-05-01 2001-12-05 Hewlett-Packard Company, A Delaware Corporation Method and apparatus for verifying error correcting codes
CN104765650A (zh) * 2014-01-08 2015-07-08 瑞萨电子株式会社 数据处理装置
WO2016161409A1 (en) * 2015-04-02 2016-10-06 Microchip Technology Incorporated Run time ecc error injection scheme for hardware validation

Also Published As

Publication number Publication date
US20190176838A1 (en) 2019-06-13
US10625752B2 (en) 2020-04-21
EP3724763A1 (en) 2020-10-21
TW201929441A (zh) 2019-07-16
WO2019118057A1 (en) 2019-06-20
CN111480147A (zh) 2020-07-31
EP3724763B1 (en) 2023-09-13

Similar Documents

Publication Publication Date Title
CN111480147B (zh) 用于针对纠错码功能的联机功能测试的系统和方法
US10579490B2 (en) Fast geo recovery method for elastic cloud storage
US9823983B2 (en) Electronic fault detection unit
US11686767B2 (en) System, apparatus and method for functional testing of one or more fabrics of a processor
CN111275605B (zh) 缓冲器检查器
US20080046603A1 (en) Line Diagnostic Device, Bus System, Line Diagnostic Method, Bus System Control Method, and Line Diagnostic Program
US9912474B2 (en) Performing telemetry, data gathering, and failure isolation using non-volatile memory
JP5973196B2 (ja) 1553バス動作の自己検査のためのシステムおよび方法
WO2019231602A1 (en) Determining validity of data read from memory by a controller
CN107534592B (zh) 用于保护数据总线收发器的配置数据的方法、数据总线收发器和数据总线系统
CN103164523A (zh) 数据一致性检查方法、装置及系统
EP3423849B1 (en) Ultra-fast autonomous clock monitoring circuit for safe and secure automotive applications
GB2579590A (en) Workload repetition redundancy
CN104914815A (zh) 处理器监控方法、装置及系统
CN108108262B (zh) 具有检查所选择的存储器访问的硬件检查单元的集成电路
US20220171855A1 (en) Electronic control device and security verification method for electronic control device
US11105854B2 (en) System, apparatus and method for inter-die functional testing of an integrated circuit
JP2016038599A (ja) マイクロコンピュータ及びマイクロコンピュータシステム
KR102016004B1 (ko) 록스텝 시스템들의 주기적인 비-간섭적 진단
JP2013250690A (ja) データ処理装置、マイクロコントローラ、およびデータ処理装置の自己診断方法
US20230019372A1 (en) Scheme for Transferring and Authenticating Data
CN110377272B (zh) 一种基于tbox的sdk的实现方法及装置
KR20150086215A (ko) 에러 상태 신호를 출력하기 위한 에러 신호 처리 유닛, 장치 및 방법
CN109710495A (zh) 一种信息处理方法及电子设备
CN116501156B (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
GR01 Patent grant
GR01 Patent grant