CN1716211A - 数据差错检测和纠正用的交叉正反编码结构和解码的方法 - Google Patents

数据差错检测和纠正用的交叉正反编码结构和解码的方法 Download PDF

Info

Publication number
CN1716211A
CN1716211A CN200410025733.7A CN200410025733A CN1716211A CN 1716211 A CN1716211 A CN 1716211A CN 200410025733 A CN200410025733 A CN 200410025733A CN 1716211 A CN1716211 A CN 1716211A
Authority
CN
China
Prior art keywords
coding
positive
field
negative
supervision
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
Application number
CN200410025733.7A
Other languages
English (en)
Inventor
陈光重
李东
王跃林
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.)
Shanghai Institute of Microsystem and Information Technology of CAS
Original Assignee
Shanghai Institute of Microsystem and Information Technology of CAS
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 Shanghai Institute of Microsystem and Information Technology of CAS filed Critical Shanghai Institute of Microsystem and Information Technology of CAS
Priority to CN200410025733.7A priority Critical patent/CN1716211A/zh
Publication of CN1716211A publication Critical patent/CN1716211A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Detection And Correction Of Errors (AREA)

Abstract

本发明提供一种EDAC的交叉正反编码结构及解码的方法,其特征在于它基于概率判决的数据冗余存储编码,其特征在于:当有效信息字段长度M为≥4的偶数时,利用正反码的编码原理得到监督字段,再将信息字段和监督字段进行数据冗余备份,该编码结构中的四个字段交叉构成网状的相互监督的关系。编码结构中的信息字段和监督字段的顺序可依据实际需求进行调整;所得交叉正反码的最小码距为8。其解码方法有按字段解码和按比特操作,本发明提供的交叉正反码差错率极低,可纠错多位错码;高可靠性。

Description

数据差错检测和纠正用的交叉正反编码结构和解码的方法
技术领域
本发明涉及一种用于数据差错检测和纠正(EDAC)的交叉正反编码结构和解码方法。更确切的说,主要针对由于空间高能粒子辐射而导致星载电子系统的数据存储发生单粒子翻转(Single event upset,SEU),提出一种新的纠错编码方法——交叉正反码,结构及其两种解码方法。它能很好的支持星载计算机和可编程逻辑器件协同实现软硬件EDAC的设计,属于航空航天领域。
背景技术
卫星在宇宙空间运行会受到各种高能粒子和射线的辐射,可能造成星内电子系统的损伤,甚至使之失效。据有关资料统计表明,卫星的故障主要来源于空间辐射,而在辐射造成的故障中,由单粒子事件导致的占了半数以上。星载电子系统中的CPU、RAM、FLASH等是单粒子翻转的主要作用对象。随着IC集成度的提高,单粒子效应也愈严重。通常航天上选用的存储芯片要经过严格的筛选,以保证其具有良好的抗辐照性能,而且目前我国所用的航天级芯片较大程度上依赖于进口,不仅价格昂贵,而且存在许多限制。因此,研究如何提高在卫星上使用工业级或商业级器件的可靠性,是非常有意义的。
为此,在卫星的EDAC设计中常用的二种方法是三倍冗余判决(Triplemodular redundancy,TMR)技术和汉明码。但其编码的检错和纠错能力均不尽人意,为此进行了不少研究。
如北京清华大学宇航中心蒋洵等人在“利用FPGA实现模式可变的卫星数据存储器纠错系统”(电子技术应用,2002年第8期第44-47页)一文中比较讨论了航天器数据存储器中汉明码和TMR两种典型纠错系统的原理、实现以及数据可靠性的估计,在此基础上提出了一种集成这两种系统模式并可在实际应用中根据需要切换模式的纠错系统设计方案,探讨了该系统的特点和优势,介绍了利用FPGA实现该系统的过程和经验。
又如99127001.0的发明专利申请,公开了一种卫星星载计算机软件单粒子翻转容错能力的测试仪及测试方法。它主要由计算机基本单元加双口共享存储器及总线转换接口组成,与被检测的卫星星载计算机形成紧耦合的双机系统。双口共享存储器作为被检测的卫星星载计算机的数据空间,测试仪改变双口共享存储器的存储位,模拟卫星在轨的星载计算机单粒子翻转事件,再通过扫描读取被卫星星载计算机纠正的存储位及时间,达到定量测试软件抗单粒子翻转能力的目的。
发明目的
本发明提供一种用于EDAC的交叉正反码编码结构和解码的方法,它是一种一种能显著提高数据存储抗单粒子翻转性能的纠错编码方法。
本发明提供的交叉正反码是基于概率判决的数据冗余存储编码特征在于:当有效信息字段长度为≥4的偶数时,利用正反码的编码原理得到监督字段,再将信息字段和监督字段进行数据冗余备份,该编码结构中的四个字段交叉构成网状的相互监督的关系;解码可以通过按字段或按比特操作两种不同的途径实现,能很的技持软硬件检测EDAC的实现。
本发明所述的编码结构,其特征在于:将长度为M(M为≥4的偶数)的有效信息字段利用正反码的编码原理得到监督字段,再将信息字段和监督字段进行数据冗余备份,得到总长度为4M的编码字段;编码结构中的信息字段和监督字段的顺序可依据实际需求进行调整;所得交叉正反码的最小码距为8。
本发明所述的编码结构,特征在于该码结构中的四个字段交叉构成网状的相互监督的关系,备份信息字段和监督字段的先后顺序,可依据实际需求决定。若有效信息字段长度M为奇数,按编码规则,信息字段和监督字段不能相互构成正反码关系。
当信息字段长度M为偶数时,信息字段和监督字段互为正反码,如图1,A<=>B,A<=>C,B<=>D,C<=>D构成了四组正反码,如果未发生单粒子翻转,且有A=D,B=C。若M<4,按上述方法所得编码的最小码距d0可能小于8。众所周知,一种编码的最小码距d0的大小直接关系着这种编码的检错和纠错能力。为检测e位错码,要求d0≥e+1;为纠正t位错码,要求d0≥2t+1。交叉正反码最小码距为8,因此,这种码能检测7位错码,或纠正3位错码。TMR和汉明码最小码距均为3,QMR的最小码距为5,因此交叉正反码在检、纠错位数上有较大优势,并具有差错率极低的显著特点。
本发明提供交叉正反码方案的错误检测方法是根据正反码原理,分别对四组正反码进行检错,并比较四个字段所含的信息是否一致。如果检错结果未发现错误,则无需继续纠错。由于其相互监督的机制,其检错能力比单一的正反码大大加强,如上所述,对于所有≤7个的错误均能检测,大部分8个以上的错误也能检测到。不可检测的情况如一个交叉正反码组中每一字段中的2n个相应位置比特,共8n个比特都发生翻转,即发生翻转后仍构成一组完整的交叉正反码,但其中的信息已经改变。这是概率极小的事件。
上述检错方法,对以下提出的两种交叉正反码解码方案是可以共用的。以有效信息字段长度M=8bit为例,编码后四个字段总长度为32bit,附图3提供了一种用硬件实现错误检测的简便方法,星载计算机通过32bit的数据读写总线访问外部数据存储器;EDAC模块主要包含双向三态寄存器、“1”奇偶判决器、校验码组生成器、全零判决器、时钟控制器等五大组成部分。当星载计算机从外部数据存储器读入四个字段A、B、C、D时,两个“1”奇偶判决器将分别对A和D中“1”的数目作奇偶判断,判断结果作为校验码组生成器的指示电平;双向三态寄存器输出的A<=>B,A<=>C,B<=>D,C<=>D四对正反码组输入校验码组生成器后输出四组8bit的校验码组;再利用全零判决器对每组校验码组进行全零判决。根据正反码原理,如果某对正反码组未发生错误,其校验码组中所有比特应全为零;故从全零判决器输出4bit信息中可知A、B、C、D四个字段中是否出现了错误。如果检测到有错误发生,星载计算机可通过后述的软件EDAC的方法进行纠错,并通过32bit的数据读写总线改写外部数据存储器。
本发明提供的交叉正反码解码方法有二种,即按字段操作和按比特操作。现分述如下:
1.按字段解码:先介绍这种方案的纠错原理:对于构成一组交叉正反码的四组正反码,分别采用正反码纠错后,若四个字段中仍至少有三个在信息上保持一致,则属于可以纠正的情况。具体步骤如下:
①对检错过程中发现的可纠正的各组正反码,先分别进行纠错。
②如果存在两组以上可纠正的正反码组,且这些码组在信息上保持一致,即有三个以上字段在信息上保持一致,则取其中纠正后的信息字段为真值。反之,不能纠错。
简言之,上述纠错方法就是先分别对每个正反码组纠错后,再进行3/4判决。
上述按字段操作的交叉正反码方案,具有纠正所有≤3位错误的能力。该方案对于4位错码,也有较好的纠错效果,仅当四个字段中每一字段各分布有1位错码,或存在两个各含2位错码的字段时不可纠正,其它的4位错码均可纠正。
据上所述,当交叉正反码的解码按字段操作时,可纠正的单粒子翻转事件的判据具体化,则描述为:每个有效字段的4个字段中,存在1个字段未翻转,其它字段中至少有2个其中翻转数≤1。
2.按比特操作解码:
第一步:编码规则预测,即判断信息字段与监督字段是否成反码关系。判断方法如下:
①分别将A<=>B,C<=>D两组正反码进行模2加,在未发生单粒子翻转的条件下,结果的M个比特位应全为“1“或全为“0”,前者说明信息字段是监督字段的反码,后者说明信息字段与监督字段相同;
②在每组正反码模2加结果中,“1”数目≤M/2-1的情况下,均判定信息字段与监督字段相同,“1”数目≥M/2+1,则判为信息字段与监督字段互成反码关系,对于“1”数目等于M/2的情况,可认为无法进行预测或归属为上述两种情况之一。分别进行预测后,再比照两组的结果,若判定结果一致,则作出预测,否则认为预测失败,可判定为发生了不可纠正的错误。
第二步:将四个字段按每字段对应位划分为M组,将每4比特组作3/4判决,如果信息字段等同于监督字段,直接将4个字节进行3/4判决;如果信息字段是监督字段的反码,则将两个监督字段取反后,再进行3/4判决。
第三步:标记出错位,标记出错位,将3/4判决时检测到的无错位、改正位和试判位进行标记。若4比特信息均一致记为无错位,仅有一个错位记为改正位,有两位错则记为试判位,不妨先判为“1”。
第四步:利用正反码的奇偶性质进行m-n判据分析,假设未翻转的一组正反码,其信息字段中的“1”数为m,监督字段中的“1”数为n,则m,n应同为偶数或奇数,前者对应于信息字段与监督字段互成反码的情况,后者对应于信息字段等于监督字段的情况。
第五步:修正试判位,即将试判位取反。在只有1个试判位时,该步骤能够纠正试判错误。即对于M组4比特信息中只有一组出现两个比特错误,而且其它组的错位数均≤1的情况,也能够实现纠错。比如,当信息字段与监督字段互成反码时,信息字段中“1”数应为偶数,若试判位发生错判,则“1”数变成奇数,由此可知应将试判位取反;当信息字段等于监督字段时,同理纠正试判位。
第六步:修正改正位。对于仅有一个改正位而其它4比特组均无错位,且改正位按3/4判决纠正后不符合m-n判据的情况,将该纠正位取反。
这种按比特进行的交叉正反码,也能够纠正所有3位以下的错误。对于出现4位错码的情况,仅当一个4比特组中出现≥3位错码,或者4位错码平均分布在两个4比特组中而产生两个试判位的情形,不可纠正。其余的4位错码都是可纠的。该方法相比按字段操作的解码方法,其优点在于它不需要存在一个无错字段。
由此可见,采用交叉正反码,不论是按比特,还是按字段操作,其编解码方法很简单;实际上交叉正反码是一种特殊的四倍冗余判决,由于4=22,可根据需要灵活地将信息字段和监督字段保存在不同的存储区域,并通过灵活配置地址线访问特定的信息字段或监督字段,这个优点也是TMR和QMR所没有的。这些特点很有利于用软硬件实现EDAC设计,附图3给出了利用软件方法实现EDAC的流程图。
综上所述,交叉正反码具有以下特点:差错率极低,可以纠错多位错码,编解码简单,易于实现,因此,交叉正反码比较适用的场合是可应用于星载计算机的少量关键数据、控制处理程序代码备份,基于可编程逻辑器件的EDAC设计等,其特征在于利用交叉正反码极强的纠错能力,获得了高可靠性保障。
附图说明
图1本发明提供的交叉正反码(a)编码结构;(b)关联示意图
图2几种不同纠错方法的差错率比较曲线图
纵座标为差错率,横座标为刷新间隔内单粒子翻转发生的概率(a)为10-15<Ψ<10-6;(b)为10-6<Ψ<1
曲线1为TMR方法  2为QMR方法  3和4分别为本发明提供的两种交叉正反码解码方法
图3本发明提供的交叉正反码的EDAC流程图
具体实施方式
下面通过具体实施方式结合附图进一步阐明本发明实质性特点和显著进步。
采用图1所示的交叉正反码M=4的结构和相互关联,采用本发明提出的二种解码方法,附图2给出了在此概率模型下,交叉正反码的两种解码方法和TMR及QMR的纠错差错率比较曲线,图(a)为为10-15<Ψ<10-6时,采用纵-横对数坐标系。在这个区间,差错率的绝对值都是很小的,这表明单粒子翻转发生概率极低时,几种方案提供的可靠性都很高,但采用交叉正反码可以得到更上的差错率,且两种交叉正反码解码方法的差错率非常接近;然而,差错率的相对值很大,这意味着平均发生一次不可纠正的错误,采用交叉正反码允许耐受的单粒子翻转次数比TMR方案,可以提高好几个数量级;图(b)为10-6<Ψ<1时,横坐标采用对数坐标,纵坐标取自然坐标。在这个区间内,当Ψ达到一定值时,差错率迅速上升,最终逼近于1。对于同样的差错率,比如取Ψ=0.01,即意味着对于不同的纠错编码方案,当同样要求以99%的可靠性概率实现纠错时,采用交叉正反码方案,能够允许Ψ比TMR和QMR方案大1-2个数量级,这非常有利于提高磁暴条件下数据存储抗单粒子翻转的可靠性。可见,交叉正反码的编码效率是介于TMR和QMR两种方法之间的,而却能够得到最高的可靠性。

Claims (8)

1.一种数据差错检测和纠正用的交叉正反编码结构,其特征在于:当有效信息字段长度M为≥4的偶数时,利用正反码的编码原理得到监督字段,再将信息字段和监督字段进行数据冗余备份,该编码结构中的四个字段交叉构成网状的相互监督的关系。
2.按权利要求1所述的编码结构,其特征在于:编码结构中的信息字段和监督字段的顺序可依据实际需求进行调整;所得交叉正反码的最小码距为8。
3.一种按权利要求1所述的正反交叉编码的解码方法,其特征在于:按字段解码时先分别对每个正反码组纠码后,再进行3/4判决,具体是对构成一组交叉正反码的四组正反码,分别利用正反码原理纠错后,若四个字段中仍至少有三个在信息上保持一致,则取其中纠正后的信息字段为真值;反之,不能纠错。
4.一种按权利要求1所述的正反交叉编码的的解码方法,其特征在于解码步骤如下:
(1)编码规则预测;判断信息字段与监督字段是否成反码关系;
(2)根据预测结果决定是否对监督字段取反,并按相应比特位置进行4比特组划分后,再进行3/4判决;
(3)标记3/4判决时检测到的无错位、改正位和试判位;
(4)利用正反码的奇偶性进行m-n判据分析;
(5)修正试判位;
(6)修正改正位;
(7)给出纠错结果。
5.按权利要求4所述的正反交叉编码的解码方法,其特征在于所述的反码关系判断程序是:
①分别将A<=>B,C<=>D两组正反码进行模2加,在未发生单粒子翻转的条件下,结果的M个比特位应全为“1“或全为“0”,前者说明信息字段是监督字段的反码,后者说明信息字段与监督字段相同;
②在每组正反码模2加结果中,“1”数目≤M/2-1的情况下,均判定信息字段与监督字段相同,“1”数目≥M/2+1,则判为信息字段与监督字段互成反码关系,对于“1”数目等于M/2的情况,可认为无法进行预测或归属为上述两种情况之一。
6.按权利要求4所述的正反交叉编码的解码方法,其特征在于利用正反编码的奇偶性质进行m-n数据分析时,假设未翻转的一组正反码,其信息字段中的“1”数为m,监督字段中的“1”数为n,则m,n应同为偶数或奇数,前者对应于信息字段与监督字段反码的情况,后者对应于信息字段等于监督字段的情况。
7.按权利要求4所述的正反交叉编码的解码方法,其特征在于修正试判位时,在只有1个试判位时,该步骤能够纠正试判错误,即对于M组4比特信息中只有一组出现两个比特错误,而且其它组的错位数均≤1的情况,也能够实现纠错。
8.按权利要求4所述的正反交叉编码的解码方法,其特征在于所述的修正改正位,对于仅有一个改正位而其它4比特组均无错位,且改正位按3/4判决纠正后不符合m-n判据的情况,将该纠正位取反;对于出现4位错码的情况,仅当一个4比特组中出现≥3位错码,或者4位错码平均分布在两个4比特组中而产生两个试判位的情形,不可纠正;其余的4位错码都是可纠的。
CN200410025733.7A 2004-07-02 2004-07-02 数据差错检测和纠正用的交叉正反编码结构和解码的方法 Pending CN1716211A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200410025733.7A CN1716211A (zh) 2004-07-02 2004-07-02 数据差错检测和纠正用的交叉正反编码结构和解码的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200410025733.7A CN1716211A (zh) 2004-07-02 2004-07-02 数据差错检测和纠正用的交叉正反编码结构和解码的方法

Publications (1)

Publication Number Publication Date
CN1716211A true CN1716211A (zh) 2006-01-04

Family

ID=35822064

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200410025733.7A Pending CN1716211A (zh) 2004-07-02 2004-07-02 数据差错检测和纠正用的交叉正反编码结构和解码的方法

Country Status (1)

Country Link
CN (1) CN1716211A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102063343A (zh) * 2010-12-29 2011-05-18 北京空间机电研究所 一种基于编码方式的防止sram单粒子翻转的方法
CN102306213A (zh) * 2011-07-19 2012-01-04 西安电子科技大学 基于帧数据处理的抗单粒子辐照方法及抗单粒子辐照系统
CN101411109B (zh) * 2006-08-14 2013-08-14 摩托罗拉解决方案公司 用于数据块中的差错检测的方法和装置
CN101764672B (zh) * 2009-07-24 2013-10-09 美的集团股份有限公司 一种应用于电磁炉数据通信的校验系统及其应用方法
CN105915234A (zh) * 2015-02-25 2016-08-31 爱思开海力士有限公司 避免对涡轮乘积码误校正的方案
CN104035834B (zh) * 2014-07-02 2017-02-15 东南大学 一种考虑防护措施的缓存可靠性分析方法
CN108173619A (zh) * 2016-12-07 2018-06-15 华为技术有限公司 一种信息编码方法、解码方法及装置
CN109766213A (zh) * 2018-12-28 2019-05-17 上海微阱电子科技有限公司 一种基于汉明码实现数据纠错的存储器电路
CN112052117A (zh) * 2020-06-28 2020-12-08 南京理工大学 一种基于冗余api接口的星载系统软件防护方法
CN114679263A (zh) * 2022-02-18 2022-06-28 青岛理工大学 基于纠缠态粒子的超密编码通信协议

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101411109B (zh) * 2006-08-14 2013-08-14 摩托罗拉解决方案公司 用于数据块中的差错检测的方法和装置
CN101764672B (zh) * 2009-07-24 2013-10-09 美的集团股份有限公司 一种应用于电磁炉数据通信的校验系统及其应用方法
CN102063343B (zh) * 2010-12-29 2012-07-18 北京空间机电研究所 一种基于编码方式的防止sram单粒子翻转的方法
CN102063343A (zh) * 2010-12-29 2011-05-18 北京空间机电研究所 一种基于编码方式的防止sram单粒子翻转的方法
CN102306213A (zh) * 2011-07-19 2012-01-04 西安电子科技大学 基于帧数据处理的抗单粒子辐照方法及抗单粒子辐照系统
CN102306213B (zh) * 2011-07-19 2013-01-23 西安电子科技大学 基于帧数据处理的抗单粒子辐照方法及抗单粒子辐照系统
CN104035834B (zh) * 2014-07-02 2017-02-15 东南大学 一种考虑防护措施的缓存可靠性分析方法
CN105915234B (zh) * 2015-02-25 2020-10-30 爱思开海力士有限公司 避免对涡轮乘积码误校正的方案
CN105915234A (zh) * 2015-02-25 2016-08-31 爱思开海力士有限公司 避免对涡轮乘积码误校正的方案
CN108173619A (zh) * 2016-12-07 2018-06-15 华为技术有限公司 一种信息编码方法、解码方法及装置
CN109766213A (zh) * 2018-12-28 2019-05-17 上海微阱电子科技有限公司 一种基于汉明码实现数据纠错的存储器电路
CN109766213B (zh) * 2018-12-28 2022-09-06 上海微阱电子科技有限公司 一种基于汉明码实现数据纠错的存储器电路
CN112052117A (zh) * 2020-06-28 2020-12-08 南京理工大学 一种基于冗余api接口的星载系统软件防护方法
CN112052117B (zh) * 2020-06-28 2023-07-25 南京理工大学 基于冗余api接口的星载系统软件防护方法
CN114679263A (zh) * 2022-02-18 2022-06-28 青岛理工大学 基于纠缠态粒子的超密编码通信协议
CN114679263B (zh) * 2022-02-18 2023-08-11 青岛理工大学 基于纠缠态粒子的超密编码通信协议

Similar Documents

Publication Publication Date Title
CN100347677C (zh) 空间计算机抗单粒子翻转的存储器纠检错与自动回写方法
CN101281481B (zh) 一种存储器抗单粒子翻转的纠错检错方法
CN107403646B (zh) 闪存装置及闪存存储管理方法
Dahbura et al. The comparison approach to multiprocessor fault diagnosis
CN1755638A (zh) 潜在错误检测
CN107391026A (zh) 闪存装置及闪存存储管理方法
CN108874576B (zh) 一种基于纠错编码的数据存储系统
CN1117619A (zh) 执行模糊逻辑运算的数字处理器及其执行方法
CN1716211A (zh) 数据差错检测和纠正用的交叉正反编码结构和解码的方法
CN101615147A (zh) 皮卫星基于fpga的存储模块的容错方法
CN104409103A (zh) 一种新颖的宇航用存储器二维编码加固方法及电路装置
Naeimi et al. Fault secure encoder and decoder for memory applications
CN111710358A (zh) 闪存装置、闪存控制器及闪存存储管理方法
Ghosh et al. Reducing power consumption in memory ECC checkers
CN112181709A (zh) 一种fpga芯片的ram存储区单粒子效应容错方法
CN112000526B (zh) 一种低成本小卫星重要数据容错方法
CN1896959A (zh) 一种静态数据存储的纠错编码装置
Li et al. Designs of bisimilar petri net controllers with fault tolerance capabilities
CN105027084B (zh) 在移动通信系统中控制存储器的装置和方法
CN112269686B (zh) 一种基于冷备份双模检错码的lutram自修复结构及自修复方法
CN105320575A (zh) 一种双模冗余流水线的自校验及恢复装置与方法
CN103137213A (zh) 具有低密度奇偶校验码译码能力的存储器控制装置及方法
Li et al. Tier-code: An XOR-based RAID-6 code with improved write and degraded-mode read performance
Nair et al. Maximally recoverable codes with hierarchical locality
CN107301881A (zh) 一种基于4位相邻和3位突发纠错码的sram存储器抗辐射加固方法及存储器系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication