CN1892611B - 减少可编程装置在配置错误检测中的虚假肯定 - Google Patents
减少可编程装置在配置错误检测中的虚假肯定 Download PDFInfo
- Publication number
- CN1892611B CN1892611B CN200610091577.3A CN200610091577A CN1892611B CN 1892611 B CN1892611 B CN 1892611B CN 200610091577 A CN200610091577 A CN 200610091577A CN 1892611 B CN1892611 B CN 1892611B
- Authority
- CN
- China
- Prior art keywords
- data
- error
- mask
- bit
- detecting
- 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.)
- Expired - Fee Related
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 26
- 230000000873 masking effect Effects 0.000 claims abstract description 20
- 230000004044 response Effects 0.000 claims abstract description 9
- 238000000034 method Methods 0.000 claims description 55
- 238000004364 calculation method Methods 0.000 claims description 8
- 125000004122 cyclic group Chemical group 0.000 claims description 4
- 238000003860 storage Methods 0.000 claims description 4
- 238000012360 testing method Methods 0.000 claims description 4
- 230000035945 sensitivity Effects 0.000 abstract description 63
- 230000006870 function Effects 0.000 description 12
- 241001269238 Data Species 0.000 description 9
- 238000012795 verification Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- LBDSXVIYZYSRII-IGMARMGPSA-N alpha-particle Chemical compound [4He+2] LBDSXVIYZYSRII-IGMARMGPSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- JJWKPURADFRFRB-UHFFFAOYSA-N carbonyl sulfide Chemical compound O=C=S JJWKPURADFRFRB-UHFFFAOYSA-N 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- 230000002269 spontaneous effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Tests Of Electronic Circuits (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种装置利用掩码单元和敏感掩码数据将存储器的未用部分从错误检测运算中排除以减少存储器错误检测的虚假肯定。一种装置包含从存储器中读取数据并校验数据完整性的错误检测单元。敏感掩码数据指出了存储器的未用部分。存储器的未用部分可对应可编程装置的未用部分的配置数据。敏感掩码数据的每一个比特可指出存储器中数据的一个或多个比特的使用。响应掩码数据,掩码单元将存储器未用部分的数据设置为不改变错误检测运算结果的值。这样阻止了存储器未用部分的错误数据发出出错信号。
Description
相关申请的交叉参照
本申请要求美国临时专利申请No.(15114-080200US)的优先权,它所揭示的内容全部用途通过在此引用而结合。本申请涉及美国专利申请No.(Altera A2085),通过在此引用而结合。
技术领域
本发明涉及可编程装置领域,以及在其中检测配置错误的系统和方法。
背景技术
可编程装置,如FPGA(现场可编程门阵列),一般包含数千个可编程逻辑单元,它们利用逻辑门和/或查找表的结合执行逻辑运算。可编程装置还包含一定数量的功能块,具有专用逻辑装置适于特定的逻辑运算,例如加法器、乘法及累加电路、锁相环,及存储器。逻辑单元和功能块与可配置开关电路内联。可配置开关电路选择性地路由逻辑单元和功能块间的联结。通过配置逻辑单元、功能块以及开关电路的组合,可编程装置可适用于虚拟实现任何类型的信息处理功能。
诸如FPGA的可编程装置的功能,通常通过存储于一组配置RAM单元(CRAM)或配置存储器中的配置数据来控制。CRAM中的配置数据提供逻辑信号用于配置可编程装置来实现其期望的功能。通常,CRAM中的数据包含定义逻辑单元功能的查找表的值;可配置开关电路用于路由输入、输出、逻辑单元和功能块之间信号的多路器和其他开关装置的控制信号值;以及指定可编程装置的配置的其他方面的值,如可编程装置及其相关功能块和逻辑单元的运行模式。配置数据的备份通常存储于非易失性存储器,诸如快闪存储器或ROM,它处于可编程装置的同一芯片封装内部或处于与可编程存储装置相连接的外部配置装置上。配置数据的这个备份加载到可编程装置的CRAM单元中来配置可编程装置以实现期望的功能。
随着CRAM单元的物理尺寸因为制造方法的进步而减小,CRAM单元变得更加容易受到自发的“软错误”的影响。软错误可能由诸如α粒子或宇宙射线的背景辐射引起,导致CRAM单元自发地改变状态,从“0”到“1”或反过来。因为可编程装置的功能由存储于CRAM单元中的数据决定,CRAM单元状态的一个单一的变化就可改变或者废除可编程装置的功能。此外,随着可编程装置变得更加复杂而需要更多的CRAM单元来存储它们的配置数据,软错误的频率也就增高了。
现有解决软错误的办法包括可编程装置中的错误检测电路,从CRAM中读取配置数据并产生相应的错误检测码。一旦检测到错误,错误检测电路通常产生一个出错信号,使得可编程装置重新载入其配置数据并重新配置以正确运行。在另一个方法中,配置数据也可包含错误纠正码。这些错误纠正码和错误检测与纠正电路一起用于纠正CRAM中的配置数据,无需重新载入一整套配置数据。在重新载入或纠正配置数据时,可编程装置暂停其常规运行。
许多应用没有有效地使用可编程装置的CRAM中的大部分。例如,典型的应用可能只用到可编程装置的CRAM的40%来配置本应用已用的逻辑单元、功能块、和/或开关电路的运行。CRAM的剩余部分,虽然设置了一些逻辑值,但不影响可编程装置的功能,因为CRAM的未用部分配置本应用未用的逻辑单元、功能块、和/或开关电路的运行。控制本应用未用的逻辑单元、功能块、和/或开关电路的那部分CRAM指的就是CRAM未用的部分。CRAM未用部分的软错误无关紧要可被忽略。
因为错误检测电路不能区分CRAM的已用和未用部分,所以现有可编程装置通常在一旦检测到CRAM中的任何错误时重新载入配置数据。然而,因为CRAM中很大一部分不被可编程装置的应用用到,所以这些软错误中许多都是“虚假肯定”,对可编程装置的功能没有影响。因此,可编程装置常常因虚假肯定而不必要地重新载入了配置数据,因为载入配置数据过程中的暂停期而降低了可编程装置的性能,且因不必要的载入和存储配置数据而增加了电力消耗。
因此,需要一种装置和方法来检测虚假肯定软错误,以避免不必要的重新载入和重新配置可编程装置。
发明内容
在本发明的一个实施例中,一个装置通过使用掩码单元和敏感掩码数据来将存储器未用的部分从错误检测运算中排除,从而减少存储器错误检测的虚假肯定。装置包括错误检测单元,用来从存储器读取数据并校验数据完整性。敏感掩码数据指出了存储器中未用部分。存储器未用部分与可编程装置未用部分的配置数据相对应。敏感掩码数据的每一个比特可指出存储器中数据的一个或多个比特的使用。作为对掩码数据的响应,掩码单元将存储器未用部分的数据设置为不改变错误检测运算结果的值。这阻止了来自存储器未用部分数据中的任何错误产生出错信号。
在一个实施例中,测试存储器中存储的数据的完整性的方法,包括取回存储器的第一数据并将掩码数据用于第一数据以产生第二数据。掩码数据适于从错误检测运算中排除至少一部分第一数据。该方法还包括在第二数据上执行错误检测运算来决定错误检测结果,评价错误检测结果以决定是否在第一数据中存在至少一个重大错误,并响应第一数据中存在至少一个重大错误的结论,输出出错信号。
在另一个实施例中,错误检测运算适于检测至少一个软错误。在进一步的实施例中,掩码数据适于将第一数据排除的部分设置为不影响错误检测运算的值。在又一个实施例中,第一数据排除的部分对应未用于存储有用数据的那部分存储器。在还有一个实施例中,存储器的这一部分适于为可编程装置的未用部分存储配置数据。
在一个实施例中,掩码数据包含多个掩码比特,每个掩码比特对应第一数据的一个比特。在又一个实施例中,掩码数据包含多个掩码比特,每个掩码比特对应第一数据的多个比特。在实施例中,第一数据的各个多个比特可以具有同样的尺寸,和/或第一数据的多个比特可对应与该可编程装置的一个资源关联的配置数据。
附图说明
本发明将结合附图进行描述,其中:
图1示出了根据本发明的实施例,检测可编程装置中软错误的系统;
图2示出了根据本发明的实施例,检测可编程装置中软错误的系统的细节;
图3A-3C示出了根据本发明的实施例,在检测可编程装置中软错误时,用于减少虚假肯定的发生的敏感掩码数据的示例性排列;
图4示出了根据本发明的实施例,检测可编程装置的配置数据中软错误的方法:
图5示出了根据本发明的另一个实施例,检测可编程装置的配置数据中软错误的方法;
图6示出了适用于实现本发明实施例的可编程装置的范例:以及
图7示出了用来产生用于本发明实施例的配置数据和掩码数据的编辑过程的范例。
具体实施方式
图1示出了根据本发明的实施例,检测可编程装置中软错误的系统100。系统100包含连接到配置装置110的可编程装置105。可编程装置105包含用于存储定义可编程装置功能的配置数据的配置存储器120。配置装置110在非易失性存储器中存储了配置数据的备份113。在激活或重置可编程装置105后,配置装置110适于将它的配置数据备份113提供给可编程装置105来存储在它的配置存储器120中。
为了检测软错误的发生,可编程装置105包含错误检测单元115。错误检测单元115用校验和值(checksum value)或其他类型用于校验数据完整性的代码进行初始化。错误检测单元115从配置存储器120中读取全部配置数据,并且执行错误检测计算,诸如循环冗余校验(CRC)或者任何其他本领域技术人员所知的错误检测算法。错误检测单元115在配置存储器120的所有配置数据上完成其错误检测计算后,错误检测单元将这些计算的结果值与校验和对比。如果这些值不匹配,则发生了软错误,然后错误检测单元115在输出125上产生一个错误标记。响应错误标记,可编程装置的实施例从配置装置重新载入配置数据。在一个实施例中,错误检测单元115再三重复错误检测计算,连续筛选软错误。
如上面所讨论的,可编程装置105的许多配置不用到配置存储器120的大部分。为防止虚假肯定即配置存储器120未用部分中不需要做出错误标记的软错误的发生,错误检测单元115的一个实施例将敏感掩码数据合并入它的错误检测计算。敏感掩码数据指出配置存储器120的那个部分用于指定可编程装置的现有配置。
在一个实施例中,敏感掩码数据112存储于配置装置110的一部分。错误检测单元115根据需要从配置装置110取回敏感掩码数据112。错误检测单元115利用这些敏感掩码数据来将配置存储器120的未用部分排除在它的错误检测计算之外。结果,发生在配置存储器未用部分的软错误将不影响错误检测计算,因此不会导致做出错误标记。依赖于敏感掩码数据的间隔粒度,充分地减少或消除了在配置存储器120中未用部分软错误中出现的虚假肯定的发生。
图2示出了根据本发明的实施例,检测可编程装置中软错误的系统的细节200。错误检测单元215包含控制单元220、错误检测码发生器225,以及掩码单元230。在这个实施例中,错误检测单元不断读取并检测存储在可编程装置的配置存储器235中的配置数据。为实现此,控制单元220发出命令取回存储于配置存储器235中的部分配置数据。控制单元220还取回存储于配置装置210中的部分敏感掩码数据212。在一个替代实施例中,敏感掩码数据212可被存储于配置存储器235的一部分中。在本实施例中,敏感掩码数据212除了屏蔽其他配置数据,本身应该被包含于错误检测运算中。这部分敏感掩码数据212对应存储于可编程装置的配置存储器235中的配置数据的取回部分。而在另一个实施例中,敏感掩码数据212可被存储于不同于配置数据213的存储器中。在这个实施例中,敏感掩码数据212可通过不同的I/O插脚和/或如用于配置数据213的不同的存储器接口来和可编程装置通讯。
配置数据取回的部分和敏感掩码数据212对应部分指向掩码单元230。掩码单元230利用敏感掩码数据来屏蔽或消除配置存储器未用部分对错误检测计算的影响。掩码单元230的输出指向错误检测码发生器225,它执行诸如校验和或CRC码的错误检测计算。当错误检测码发生器225完成了配置存储器235中所有配置数据的错误检测计算,可由控制单元220评价错误检测码结果,以确定是否发生错误。
在一个实施例中,配置存储器235的未用部分被设为值“0”。配置存储器235的已用部分根据可编程装置期望的功能,被设为值“0”或“1”。对应敏感掩码已用部分的敏感掩码数据部分被设为“1”,而对应敏感掩码未用部分的敏感掩码数据部分被设为“0”。如下面详细讨论,敏感掩码数据可结合可编程装置配置数据的产生而产生。
在一个实施例中,掩码单元230采用布尔运算,诸如在取回的配置数据和对应敏感掩码数据之间的AND。如果取回的配置数据来自配置存储器235的已用部分,对应敏感掩码数据将为“1”。来自敏感掩码的“1”与取回的配置数据的布尔AND,将使配置数据不变。掩码单元230将向错误检测码发生器225输出结果数据,在这种情况下是未变的配置数据。
如果取回的配置数据来自配置存储器235的未用部分,对应敏感掩码数据将为“0”。来自敏感掩码的“0”与取回的配置数据的布尔AND,将总是得到“0”。通常,配置存储器235的未用部分设为“0”。因此,用于配置存储器235的未用部分的来自掩码单元230的结果数据“0”将还是“0”。如果在配置存储器235的未用部分发生了软错误,“0”将会被变成“1”。然而,对应敏感掩码数据将还是具有值“0”。因此,掩码单元输出还是“0”。
因为掩码单元230总是输出“0”给来自配置存储器235的未用部分的配置数据,错误检测计算的结果无论在配置存储器235的未用部分发生任何软错误时都不会改变。因此,来自配置存储器235的未用部分的软错误的虚假肯定将被充分地减少或消除。
图3A-3C示出了根据本发明的实施例,在检测可编程装置中软错误时,用于减少虚假肯定的发生的掩码数据的示例性排列。图3A示出了配置存储器305的一部分以及敏感掩码310的对应部分。在这个范例中,敏感掩码的每个比特对应配置存储器的单一比特。如果配置存储器305的比特315未用,那么敏感掩码310的对应比特317设为“0”。同样,如果配置存储器305的比特320用于指定可编程装置的配置,那么敏感掩码310的对应比特322设为“1”。
图3B示出了配置存储器325的一部分以及敏感掩码330的对应部分。这个范例中,敏感掩码的每个比特对应配置存储器325的一对比特。如果配置存储器325的比特331和332未用,那么敏感掩码330的对应比特333设为“0”。如果配置存储器325的比特334和335未用,那么敏感掩码330的对应比特336设为“0”。反过来,如果配置存储器325的比特337和338用于指定可编程装置的配置,那么敏感掩码330的对应比特339设为“1”。此外,如果配置存储器中一对比特只有一个比特已用,敏感掩码中对应比特必须仍被设为“1”。因此,因为比特340未用而比特341已用,而敏感掩码342被设为“1”。在图3B的进一步实施例的范例中,敏感比特对应配置存储器的二维范围的比特,如一行或者多行配置存储器比特和一列或多列配置存储器比特的矩形。
图3C示出了配置存储器350的一部分以及敏感掩码355的对应部分。这个范例中,敏感掩码的每个比特对应可编程装置的资源,诸如特定的逻辑单元、功能块、I/O单元、存储单元、MAC单元、或多路器。如果可编程装置配置没有使用给出的可编程装置的资源,那么对应该资源的敏感掩码的比特设为“0”。在这个实施例中,每个敏感掩码比特可对应配置存储器350的不同数量的比特,依赖于与基础可编程装置资源关联的比特数。例如,如果配置存储器350的指定逻辑单元365的配置的一个或多个比特360已用,那么敏感掩码355的比特367设为“1”。反过来,指定多路器375的配置的一个或多个比特370,以及指定I/O单元385的配置的一个或多个比特380未用,那么敏感掩码355的比特37和387设为“0”。
图4示出了根据本发明的实施例,检测可编程装置的配置数据中软错误的方法400。步骤405初始化错误检测单元。步骤405可包括重置错误检测码值以及将一个期望的错误检测结果,诸如正确的校验和或CRC值加载到检测单元。
步骤410取回敏感掩码数据的一部分。在一个实施例中,步骤410从配置装置取回敏感掩码数据。在另一个实施例中,敏感掩码数据存储在可编程装置本身,在配置存储器的一部分或者在可编程装置的其他存储器单元。在又一个实施例中,敏感掩码数据储存在可编程装置以外的其他存储器中。
步骤415取回对应步骤410取回的敏感掩码数据的配置数据的一部分。步骤420执行一个对配置数据的错误评估。步骤420的一个实施例可包括用敏感掩码数据屏蔽取回的配置数据以减少虚假肯定的可能性,如前所述。步骤420对屏蔽的配置数据结果执行错误检测运算。错误检测运算的结果可和前面运算过的错误检测操作累加,来为整个配置存储器决定一个错误检测码。
步骤425判决是否配置存储器中所有的配置数据都评估了。如果没有,方法400回到步骤410,为配置存储器的剩余部分重复步骤410-425。反过来,如果配置存储器中所有的配置数据都评估了,方法400进行到步骤430。步骤430评估错误检测运算的结果。在一个实施例中,步骤430将错误检测运算的结果和期望的错误检测结果比较。如果这两个值不匹配,那么发生了软错误,做出错误标记信号。接着步骤430,方法400可重复不断地为软错误监控配置数据并在检测到软错误时做出错误标记。
方法400的实施例频繁地访问敏感掩码数据。如果敏感掩码数据存储于可编程装置以外,例如在一个配置装置中,那么电力消耗将会因外部数据总线通讯量而增加。本发明进一步的实施例减少对敏感掩码数据的访问频率以减少电力消耗。
图5示出了根据本发明的另一个实施例,检测可编程装置的配置数据中软错误的方法500。步骤505以类似步骤405的方式初始化错误检测单元。步骤510在可编程装置的配置存储器中的所有配置数据上执行错误检测运算。步骤510不使用任何敏感掩码数据来执行该运算。
步骤515评估错误检测运算的结果。如果在配置数据中没有检测到错误,实施例方法500根据需要回到步骤505并重复步骤505、510和515为软错误监控配置数据。
反过来,如果步骤515判定发生软错误,方法500进行到步骤520。步骤520用来判定前面在步骤515中检测的软错误是发生在配置存储器的已用还是未用部分。步骤520利用敏感掩码数据,在可编程装置的配置存储器中的所有配置数据上执行错误检测运算。在一个实施例中,步骤520以类似方法400的方式执行。
接着步骤520,步骤525评估步骤520的结果以判定是否发生软错误。如果步骤520的结果指出有软错误发生,那么方法500进行到步骤530来做出错误标记,指出可编程装置的配置数据需要重新载入。如果步骤520的结果没有检测到软错误,那么步骤515检测到的软错误发生在配置存储器的未用部分。因此,此错误可被忽略而方法500从步骤525回到步骤505进一步监控配置数据。此外,因为敏感掩码数据只在检测到潜在的软错误时才被访问,电力消耗减少了。
图6示出了适用于实现本发明实施例的可编程装置的范例。可编程装置600包含多个逻辑阵列块(LAB),如LAB 605、610、615。装置600的LAB排列成行630、635、640和645,在图6中没有按比例显示。每个LAB包括多个利用逻辑门和/或查找表来执行逻辑运算的可编程逻辑单元,以及存储和取回数据的寄存器。LAB 605示出了详细的逻辑单元620、621、622、623、624、625、626和627。为了清楚起见,图6中其他LAB省略了逻辑单元。在一个实施例中,逻辑单元在一个LAB内以及多个LAB在行内的排列提供了一个可编程开关多路的可配置连接的分等级的系统,其中在一个LAB内的逻辑单元之间、在同一行中不同LAB中的单元之间、以及在不同行中LAB中的单元之间的连接需要越来越多的资源。
除了排列在LAB中的逻辑单元,可编程装置600还包含特定的功能块,例如乘法加法块(MAC)655以及随机存取存储器块(RAM)660。可编程装置的配置至少部分是通过存储于配置存储器675中的配置数据指定的。配置数据可包括查找表定义逻辑单元功能的值;可编程开关电路用来路由输入、输出、逻辑单元和功能块之间信号的多路器以及其他开关装置的控制信号值;以及指定可编程装置配置的其他方面的值,诸如可编程装置及其相关功能块和逻辑单元的运算模式。尽管配置存储器675在图6中显示为单片电路单元,在一些可编程装置中,配置存储器675在可编程装置的一定范围内散布。在这些类型的可编程装置中,配置存储器的部分可存在于可编程装置的逻辑单元、功能块、和可编程开关电路中。
为清楚起见,图6所示可编程装置600的部分只包含了很少的逻辑单元、LAB、和功能块。典型的可编程装置将包含成千上万的这些单元。在一些应用中,上面讨论的错误检测单元可由专门的功能块实现。在另一些应用中,所有或一部分错误检测单元可由逻辑单元和可编程装置600的其他可编程资源实现。
图7示出了适于产生用于本发明实施例的配置数据的编辑过程800的一个范例。编辑过程800将用户意图转换为适合配置可编程装置以实现用户意图的可编程装置配置。提取阶段805将如用硬件描述语言表达的用户意图描述,转换为寄存器传送层的描述。
合成阶段810将用户意图的寄存器传送层描述转换为一套逻辑门。合成阶段810的实施例可在同等的逻辑门之间做选择以提高对软错误的抵抗力,如前所述。技术映射阶段815将一套逻辑门细分为一套原子,即是与可编程装置的逻辑单元或其他功能块的能力匹配的多组逻辑门。依赖用于执行用户意图的可编程装置的基础硬件,给出的用户意图可被转换成任何数量的不同原子组。
接着技术映射阶段815,成串(cluster)阶段820将相关的原子组合成串。放置阶段825将原子串分配到可编程装置的多个位置。路由阶段830决定可编程装置的可配置开关电路的配置,用来连接实现用户意图的原子。
延迟注释阶段835利用可编程装置的定时模型决定原子组的信号延迟以及它们在可配置开关电路中的相关连接。定时分析阶段840决定可编程装置在实现用户意图时的最大运算速度,例如通过决定用户意图的部分具有最大信号延迟。
汇编阶段845产生一组配置信息,指定可编程装置实现用户意图的配置,包括用于实现用户意图的每一个逻辑单元的配置,以及用于连接逻辑单元的可配置开关电路的配置。在一个实施例中,汇编阶段845还产生对应配置数据的敏感掩码数据。在这个实施例中,汇编阶段确定用户意图使用的配置存储器的部分并相应地设置敏感掩码数据。汇编阶段845可将配置信息写入配置文件,可随后用于配置一个或多个可编程装置以实现用户意图的实例。
在阅读附加的文件之后,本领域技术人员可以想象到更多的实施例。例如,虽然本发明参考可编程装置进行讨论,它同样可以应用到任何类型的需要防止软错误保持完整性的数字装置中,包括标准或结构的ASIC、门阵列、以及通用数字逻辑设备。在其他实施例中,可方便地做出上面所揭示的发明的组合或二级组合。结构块图和流程图为了便于理解进行组合。然而,可以理解,在本发明的可替代的实施例中能想到组合块,增加新块,重新排列块等。
因此,说明书和附图应被看作示例而不是限制理解。然而,很明显,在不偏离权利要求所述的略宽的精神和本发明的范围的前提下,可做出不同的改变和变化。
Claims (39)
1.一种检测存储于存储器中的数据的完整性的方法,该方法包括:
从存储器中取回第一数据;
将掩码数据应用于第一数据以产生第二数据,其中掩码数据适合从错误检测运算中排除至少一部分第一数据,其中所述掩码数据的一比特对应第一数据的一个或多个比特;
在第二数据上执行错误检测运算以确定错误检测结果;
评估该错误检测结果以决定在第一数据中是否存在至少一个明显错误;以及
响应在第一数据中存在至少一个明显错误的结论,输出出错信号。
2.如权利要求1所述方法,其特征在于,错误检测运算适合检测至少一个软错误。
3.如权利要求1所述方法,其特征在于,掩码数据适合将第一数据的排除部分设置为不影响错误检测运算的值。
4.如权利要求1所述方法,其特征在于,第一数据的排除部分对应存储器中未用于存储有用数据的部分。
5.如权利要求4所述方法,其特征在于,存储器的部分适合为可编程装置的未用部分存储配置数据。
6.如权利要求1所述方法,其特征在于,掩码数据包含多个掩码比特,每个掩码比特对应第一数据的一个或多个比特。
7.如权利要求1所述方法,其特征在于,掩码数据包含多个掩码比特,至少一个掩码比特对应第一数据的多个比特。
8.如权利要求7所述方法,其特征在于,第一数据的各组多个比特尺寸相同。
9.如权利要求7所述方法,其特征在于,第一数据中与一掩码比特关联的至少一组多个比特对应于可编程装置的一个资源关联的配置数据。
10.如权利要求1所述方法,其特征在于,应用掩码数据包括:
从掩码数据存储器中取回掩码数据;以及
在掩码数据的一个比特和第一数据的一个或多个对应比特之间执行布尔运算。
11.如权利要求10所述方法,其特征在于,布尔运算是AND运算。
12.如权利要求10所述方法,其特征在于,掩码数据存储器包含在存储器中。
13.如权利要求10所述方法,其特征在于,掩码数据存储器包含在通过外部数据总线访问的分开的存储器中。
14.如权利要求1所述方法,其中执行错误检测运算包括执行循环冗余校验。
15.一种测试存储器中存储数据的完整性的方法,该方法包括:
从存储器中取回第一数据;
在第一数据上执行错误检测运算以确定错误检测结果;
评估该错误检测结果以决定在第一数据中是否存在至少一个错误;以及
响应在第一数据中存在至少一个错误的结论:
将掩码数据应用于第一数据以产生第二数据,其中掩码数据适合从错误检测运算中排除至少一部分第一数据;
在第二数据上执行错误检测运算以确定错误检测结果;
评估该错误检测结果以决定在第一数据中是否存在至少一个明显错误;以及
响应在第一数据中存在至少一个明显错误的结论,输出出错信号。
16.如权利要求15所述方法,其特征在于,错误检测运算适合检测至少一个软错误。
17.如权利要求15所述方法,其特征在于,掩码数据适合将第一数据的排除部分设置为不影响错误检测运算的值。
18.如权利要求15所述方法,其特征在于,第一数据的排除部分对应存储器中未用于存储有用数据的部分。
19.如权利要求18所述方法,其特征在于,存储器的部分适合为可编程装置的未用部分存储配置数据。
20.如权利要求15所述方法,其特征在于,掩码数据包含多个掩码比特,每个掩码比特对应第一数据的一个比特。
21.如权利要求15所述方法,其特征在于,掩码数据包含多个掩码比特,至少一个掩码比特对应第一数据的多个比特。
22.如权利要求21所述方法,其特征在于,第一数据的各组多个比特尺寸相同。
23.如权利要求21所述方法,其特征在于,第一数据中与掩码比特关联的至少一组多个比特对应于可编程装置的一个资源关联的配置数据。
24.如权利要求15所述方法,其特征在于,应用掩码数据包括:
从掩码数据存储器中取回掩码数据;以及
在掩码数据的一个比特和第一数据的至少一个对应比特之间执行布尔运算。
25.如权利要求24所述方法,其特征在于,布尔运算是AND运算。
26.如权利要求24所述方法,其特征在于,掩码数据存储器包含在存储器中。
27.如权利要求24所述方法,其特征在于,掩码数据存储器包含在通过外部数据总线访问的分开的存储器中。
28.如权利要求15所述方法,其中执行错误检测运算包括执行循环冗余校验。
29.如权利要求15所述方法,其中掩码数据的一比特对应第一数据的多比特。
30.一种测试第一存储器中存储数据的完整性的系统,该系统包括:
控制单元;
第一接口,用于响应控制单元的第一信号,从第一存储器中取回第一数据;第二接口,用于响应控制单元的第二信号,从第二存储器中取回掩码数据,其中所述掩码数据的一比特对应第一数据的一个或多个比特;
掩码单元,与第一接口和第二接口连接,并包含适合于将掩码数据应用于第一数据的第一逻辑单元,从而产生第二数据,其中掩码单元包含适合于将第一数据的至少一部分从错误检测运算中排除的第二逻辑单元;以及
错误检测运算单元,与所述掩码单元连接,并包含适合于在第二数据上执行错误检测运算以确定错误检测结果的第三逻辑单元,所述错误检测运算包括循环冗余校验;
其中控制单元包含适合于评估错误检测结果以决定在第一数据中是否存在至少一个明显错误的第四逻辑单元,以及适合于响应第一数据中存在至少一个明显错误的结论输出出错信号的第五逻辑单元。
31.如权利要求30所述系统,其特征在于,掩码单元适合响应掩码数据,将第一数据的排除部分设置为不影响错误检测运算的值。
32.如权利要求30所述系统,其特征在于,第一数据的排除部分对应第一存储器中未用于存储有用数据的部分。
33.如权利要求32所述系统,其特征在于,第一存储器的部分适合为可编程装置的未用部分存储配置数据。
34.如权利要求30所述系统,其特征在于,掩码数据包含多个掩码比特,且所述掩码单元包含适合将每一个掩码比特应用于第一数据的对应比特的第六逻辑单元。
35.如权利要求30所述系统,其特征在于,掩码数据包含多个掩码比特,且所述掩码单元包含适合将多个掩码比特中的至少一个应用于第一数据的对应多个比特的第六逻辑单元。
36.如权利要求35所述系统,其特征在于,第一数据的每一组对应多个比特具有同样的尺寸。
37.如权利要求35所述系统,其特征在于,第一数据中至少一组对应多个比特对应于可编程装置的一个资源关联的配置数据。
38.如权利要求30所述系统,其特征在于,所述掩码单元包含适合于在掩码数据的一个比特和第一数据的至少一个对应比特之间执行布尔运算的第一逻辑单元。
39.如权利要求30所述系统,其中掩码数据的一比特对应第一数据的多比特。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US68898005P | 2005-06-08 | 2005-06-08 | |
US60/688,980 | 2005-06-08 | ||
US11/407,519 US7620876B2 (en) | 2005-06-08 | 2006-04-19 | Reducing false positives in configuration error detection for programmable devices |
US11/407,519 | 2006-04-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1892611A CN1892611A (zh) | 2007-01-10 |
CN1892611B true CN1892611B (zh) | 2010-07-14 |
Family
ID=36790879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200610091577.3A Expired - Fee Related CN1892611B (zh) | 2005-06-08 | 2006-06-08 | 减少可编程装置在配置错误检测中的虚假肯定 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7620876B2 (zh) |
EP (1) | EP1732083A1 (zh) |
JP (1) | JP5048972B2 (zh) |
CN (1) | CN1892611B (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8612772B1 (en) | 2004-09-10 | 2013-12-17 | Altera Corporation | Security core using soft key |
US8566616B1 (en) * | 2004-09-10 | 2013-10-22 | Altera Corporation | Method and apparatus for protecting designs in SRAM-based programmable logic devices and the like |
US7596744B1 (en) * | 2006-02-24 | 2009-09-29 | Lattice Semiconductor Corporation | Auto recovery from volatile soft error upsets (SEUs) |
US7702978B2 (en) * | 2006-04-21 | 2010-04-20 | Altera Corporation | Soft error location and sensitivity detection for programmable devices |
US7844886B1 (en) * | 2006-05-16 | 2010-11-30 | Altera Corporation | Parallel processing error detection and location circuitry for configuration random-access memory |
US20080172659A1 (en) * | 2007-01-17 | 2008-07-17 | Microsoft Corporation | Harmonizing a test file and test configuration in a revision control system |
US8065574B1 (en) | 2007-06-08 | 2011-11-22 | Lattice Semiconductor Corporation | Soft error detection logic testing systems and methods |
JP5014899B2 (ja) * | 2007-07-02 | 2012-08-29 | ルネサスエレクトロニクス株式会社 | 再構成可能デバイス |
US7865788B2 (en) * | 2007-11-15 | 2011-01-04 | Verigy (Singapore) Pte. Ltd. | Dynamic mask memory for serial scan testing |
US8656082B2 (en) | 2008-08-05 | 2014-02-18 | Micron Technology, Inc. | Flexible and expandable memory architectures |
CN102169711A (zh) * | 2010-02-25 | 2011-08-31 | 复旦大学 | 带电阻随机存储器模块的单芯片结构可编程逻辑器 |
US8522126B1 (en) | 2010-12-22 | 2013-08-27 | Lattice Semiconductor Corporation | Blocking memory readback in a programmable logic device |
US9230683B2 (en) | 2012-04-25 | 2016-01-05 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device and driving method thereof |
KR20140120100A (ko) * | 2013-04-02 | 2014-10-13 | 에스케이하이닉스 주식회사 | 수신회로를 포함하는 데이터전송시스템 및 데이터전송방법 |
US9658920B1 (en) * | 2013-06-21 | 2017-05-23 | Altera Corporation | Method for reconfiguring an erroneous memory frame in an integrated circuit |
US9529673B2 (en) * | 2013-07-30 | 2016-12-27 | Taiwan Semiconductor Manufacturing Company, Ltd. | Memory device having adjustable refresh period and method of operating the same |
JP2015201813A (ja) * | 2014-04-10 | 2015-11-12 | 株式会社日立製作所 | プログラマブルゲートアレイ |
JP2016167669A (ja) * | 2015-03-09 | 2016-09-15 | 富士通株式会社 | プログラマブル論理回路装置及びそのエラー検出方法 |
JP6145482B2 (ja) * | 2015-08-13 | 2017-06-14 | 富士通株式会社 | 伝送装置および故障検出方法 |
JP6717059B2 (ja) * | 2016-06-06 | 2020-07-01 | オムロン株式会社 | 制御システム |
JP6880795B2 (ja) * | 2017-02-08 | 2021-06-02 | オムロン株式会社 | 制御装置およびその制御方法 |
JP6546213B2 (ja) | 2017-04-13 | 2019-07-17 | ファナック株式会社 | 回路構成最適化装置及び機械学習装置 |
JP6502998B2 (ja) | 2017-04-13 | 2019-04-17 | ファナック株式会社 | 回路構成最適化装置及び機械学習装置 |
US11562101B2 (en) * | 2017-11-13 | 2023-01-24 | Intel Corporation | On-device bitstream validation |
US10684913B2 (en) * | 2018-04-25 | 2020-06-16 | Dell Products L.P. | Systems and methods for detecting errors and/or restoring non-volatile random access memory using error correction code |
JP7427000B2 (ja) * | 2018-08-08 | 2024-02-02 | ヌマスカル エイエス | デジタル回路試験及び分析モジュール、システム及びそれの方法 |
CN111984457B (zh) | 2019-05-23 | 2022-09-02 | 华为技术有限公司 | 对存储信息更新的方法和装置 |
US11294804B2 (en) | 2020-03-23 | 2022-04-05 | International Business Machines Corporation | Test case failure with root cause isolation |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4369511A (en) * | 1979-11-21 | 1983-01-18 | Nippon Telegraph & Telephone Public Corp. | Semiconductor memory test equipment |
US6553523B1 (en) * | 1999-08-13 | 2003-04-22 | Jeffrey V. Lindholm | System and method for verifying configuration of a programmable logic device |
CN1529853A (zh) * | 2001-10-11 | 2004-09-15 | 阿尔特拉公司 | 可编程逻辑设备上的错误检测 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4389511A (en) * | 1981-12-04 | 1983-06-21 | General Electric Company | Blends of polyphenylene ether resins and styrene-tert-butylstyrene copolymers |
JPH10146437A (ja) * | 1996-11-18 | 1998-06-02 | Sankyo Kk | 遊技機 |
JPH11161559A (ja) * | 1997-11-28 | 1999-06-18 | Oki Electric Ind Co Ltd | パリティチェック機能付き記憶装置 |
US6886116B1 (en) * | 2001-07-26 | 2005-04-26 | Emc Corporation | Data storage system adapted to validate error detection logic used in such system |
US7257750B1 (en) * | 2005-01-13 | 2007-08-14 | Lattice Semiconductor Corporation | Self-verification of configuration memory in programmable logic devices |
JP2006221334A (ja) * | 2005-02-09 | 2006-08-24 | Tdk Corp | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |
-
2006
- 2006-04-19 US US11/407,519 patent/US7620876B2/en not_active Expired - Fee Related
- 2006-06-07 EP EP06252942A patent/EP1732083A1/en not_active Withdrawn
- 2006-06-08 CN CN200610091577.3A patent/CN1892611B/zh not_active Expired - Fee Related
- 2006-06-08 JP JP2006159772A patent/JP5048972B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4369511A (en) * | 1979-11-21 | 1983-01-18 | Nippon Telegraph & Telephone Public Corp. | Semiconductor memory test equipment |
US6553523B1 (en) * | 1999-08-13 | 2003-04-22 | Jeffrey V. Lindholm | System and method for verifying configuration of a programmable logic device |
CN1529853A (zh) * | 2001-10-11 | 2004-09-15 | 阿尔特拉公司 | 可编程逻辑设备上的错误检测 |
Also Published As
Publication number | Publication date |
---|---|
CN1892611A (zh) | 2007-01-10 |
JP2006344223A (ja) | 2006-12-21 |
US20070011578A1 (en) | 2007-01-11 |
EP1732083A1 (en) | 2006-12-13 |
JP5048972B2 (ja) | 2012-10-17 |
US7620876B2 (en) | 2009-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1892611B (zh) | 减少可编程装置在配置错误检测中的虚假肯定 | |
JP4960137B2 (ja) | プログラマブルデバイスに対するソフトエラーロケーションおよび感度検出 | |
US8130574B2 (en) | Error detection on programmable logic resources | |
US7328377B1 (en) | Error correction for programmable logic integrated circuits | |
EP0427464B1 (en) | Asychronous leading zero counter employing iterative cellular array | |
Blaum et al. | The reliability of single-error protected computer memories | |
He et al. | A hierarchical scrubbing technique for SEU mitigation on SRAM-based FPGAs | |
Fisher et al. | Design of the PSC: A programmable systolic chip | |
US7617428B2 (en) | Circuits and associated methods for improved debug and test of an application integrated circuit | |
CN112462229A (zh) | 一种芯片及其芯片内部信号的监测系统 | |
US20230384375A1 (en) | Method and circuit for performing error detection on a clock gated register signal | |
Lv et al. | Efficient repair analysis algorithm exploration for memory with redundancy and in-memory ECC | |
CN116893927A (zh) | 用于对时钟选通寄存器信号执行错误检测的方法和电路 | |
CN106951955B (zh) | 总线胚胎电子细胞阵列中电子细胞数目选择方法 | |
CN112798944B (zh) | 基于在线实时数据的fpga硬件错误归因分析方法 | |
CN111341374A (zh) | 存储器的测试方法、装置及可读存储器 | |
Li | Transparent-test methodologies for random access memories without/with ECC | |
Wu et al. | Algorithm level RE-computing with shifted operands-a register transfer level concurrent error detection technique | |
Zhang et al. | Speculative ECC and LCIM Enabled NUMA Device Core | |
CN112949235B (zh) | 电子设备的配置方法、装置、处理器及存储介质 | |
Saha et al. | A fault tolerant test hardware for L1 cache module in tile CMPs architecture | |
CN114996646A (zh) | 一种基于查找表的运算方法、装置、介质、及电子设备 | |
Chakraborty et al. | Design of coherence verification unit for CMPs realizing dragon protocol | |
CN116893926A (zh) | 用于对时钟选通寄存器信号执行错误检测的方法和电路 | |
Love et al. | A knowledge-based approach for detection and diagnosis of out-of-control events in manufacturing processes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100714 Termination date: 20210608 |