一次性可编程存储器的制作方法

文档序号:13080557阅读:439来源:国知局
一次性可编程存储器的制作方法与工艺

相关申请案的交叉引用

本申请案主张2015年3月20日申请的共同拥有的第62/136,061号美国临时专利申请案的优先权,出于所有目的,其以引用的方式并入本文中。

本发明涉及一次性可编程存储器,且特定来说,涉及用于最小化编程此类存储器的方法及系统。



背景技术:

如与快闪技术比较,一次性可编程(otp)存储器的编程时间会大约长一个数量级。另外,编程时间取决于被编程到特定经编程状态(通常‘1’)的位的数目。在许多otp实施方案中,编程到相对经擦除状态(通常‘o’)无需执行,因为当全部位完成制作时所述otp存储器中的全部位处在其经擦除状态。然而,归因于无法预知otp内容中的偏向(‘o’的数目对‘1’的数目)的事实,我们仍然被迫接受假设全部位被编程的最大编程时间值。



技术实现要素:

根据各种不同实施例,otp编程时间可通过在反相与非反相编程字之间的算法性选择而最小化。

根据各种不同实施例,揭示用于控制一次性可编程(otp)存储器的编程的系统及方法。所述系统及方法包含包括经组织成n+1位的线的阵列的otp存储器阵列,其中n是指定所述otp存储器的字大小的整数数目,其中额外位指示存储器线是以反相方式还是非反相方式存储,编码逻辑经配置以确定字是待被反相还是非反相存储,及解码逻辑经配置以解码存储字且通过指示字已被反相还是非反相存储的所述额外位控制。

在一些实施例中,所述系统及方法包含用于编程一次性可编程(otp)存储器的电路布置。所述电路布置可包含otp存储器阵列,所述otp存储器阵列包括经组织成n+1位的线的阵列,其中n是指定所述otp存储器的字大小的整数数目,其中额外位指示存储器线是以反相方式还是非反相方式存储;编码逻辑,其经配置以确定字是待被反相还是非反相存储;及解码逻辑,其经配置以解码存储字且通过所述指示字是已被反相还是非反相存储的额外位控制。在一些实施例中,“n”可等于三十二。在一些实施例中,所述otp存储器可包含地址及用于读取及写入字的控制输入。

在一些实施例中,如果具有‘1’值的位的数目多于n/2,那么所述编码逻辑还可存储经反相字且将额外位设置于所述字中,且如果不是,那么所述编码逻辑存储非反相字且不设置额外位。在此类实施例中,所述编码逻辑可包含用于反相待被存储在所述otp存储器中的字的反相器、接收字及反相字的多路复用器及经配置以计数所述字中的逻辑‘1’的数目的计数器,所述计数器可操作以控制所述多路复用器在所述字中的逻辑‘1’的数目多于n/2的情况下选择所述反相字,否则选择用于存储在所述otp存储器中的字。

在一些实施例中,所述解码逻辑可包含经配置以反相存储n位字的反相器及接收所述经存储字及所述反相字的多路复用器,其中所述多路复用器通过额外位控制。

在一些实施例中,如果具有‘1’值的位的数目多于或等于n/2,那么所述编码逻辑还可存储反相字且将额外位设置于所述字中,且如果不是,那么所述编码逻辑存储非反相字且不设置额外位。

在替代性实施例中,如果具有‘1’值的位的数目多于反相阈值,那么所述编码逻辑还可存储反相字且将额外位设置于所述字中,且如果不是,那么所述编码逻辑存储非反相字且不设置额外位。

在一些实施例中,所述系统及方法可包含一种用于编程一次性可编程(otp)存储器的方法。所述方法可包含:在otp存储器阵列中存储数据字,所述otp存储器阵列包括经组织成n+1位的线的阵列,其中n是指定所述otp存储器的数据字大小的整数数目,其中额外位指示存储器线是以反相还是非反相方式存储;确定字待被反相还是非反相存储;及解码经存储字且通过指示字已被反相还是非反相存储的额外位控制。

在一些实施例中,存储经反相数据字可包含如果具有‘1’值的位的数目多于n/2,那么存储经反相数据字且将额外位设置在所述字中,且如果不多于n/2,那么所述编码逻辑存储非反相字且不设置额外位。

在此类实施例中,存储数据字可包含经由编码逻辑存储数据字,其中所述编码逻辑包括用于反相待被存储在otp存储器中的字的反相器、接收所述字及所述反相字的多路复用器及经配置以计数所述字中的逻辑‘1’的数目的计数器,所述计数器可操作以控制所述多路复用器如果所述字中的逻辑‘1’的数目多于n/2那么选择所述经反相字,否则选择用于存储在所述otp存储器中的字。

在一些实施例中,解码所述经存储字可包含经由解码逻辑解码所述经存储字,且其中所述解码逻辑包括经配置以反相经存储n位字的反相器,及接收所述经存储字及所述经反相字的多路复用器,其中所述多路复用器是由额外位控制。

在一些实施例中,所述系统及方法可包含一种用于通过处理器执行经存储于非暂时性计算机可读媒体上的程序指令的计算机实施方法,其中当通过所述处理器实施时,所述指令执行以下步骤,所述步骤包含在otp存储器阵列中存储数据字,所述otp存储器阵列包括经组织成n+1位的线的阵列,其中n是指定otp存储器的数据字大小的整数数目,其中额外位指示存储器线是以反相方式还是非反相方式存储;确定字待被反相还是非反相存储;及解码经存储字,且是由指示字已被反相还是非反相存储的所述额外位控制。

附图说明

图1说明根据本发明的某些实施例的用于确定是否反相读取数据以产生原始程序数据的实例编程方案;及

图2说明根据本发明的某些实施例的用于编程用于编程一次性可编程存储器的方案的编程值的实例表。

具体实施方式

根据各种不同实施例,可通过反相与非反相编程字之间的算法性选择来最小化otp编程时间。为了将最大值放到用于整个阵列的编程时间,可能引入经编程为‘1’的位的数目的限制,且因此引入总编程时间的限制。这可在添加用于每一n位字(其中n个位表示所述otp阵列的读取/写入宽度)的额外otp位的成本情况下来完成。举例来说,32位宽度otp阵列可被更新为33个位宽度。

如此,使用用于otp阵列中的每一字的所述额外位以确定是否对应字是所需值的反相或非反相表示。当写入此字时,所述otp控制器(或在此情况下所述otp控制器外部的逻辑)计数被写入数据中的‘1’的数目。如果所述数目多于n/2(即,用于32位宽度otp阵列的16个位),那么在被写入所述阵列前所述数据被反相,且所述(n+1)位(此后称为“inv”位)被写为‘1’。如果‘1’的数目少于n/2,那么所述inv位不编程(即,写为‘o’)。

当任何字被写到所述阵列之外,所述inv位读作所述字的部分,且是用以确定反相还是不反相所述读取数据以产生被编程到所述阵列中的原始数据。

因此,使用位宽度编程及奇数大小otp存储器配置以实施各种不同实施例。

举例来说,对于novocellotp阵列,用于32位字的总编程时间取决于编程为‘1’的位的数目,且所述总编程时间是典型数目,因为阵列内的每一位的编程是自定时的。另外,由于所述otp阵列在出厂时是制造成具有未经编程状态‘0’,所述仅需要编程‘1’位,不需要‘0’位的编程且可在otp阵列内有效地跳过此操作。这导致用于阵列必须被给予特定“偏向”(即,所述阵列中有多少位被编程为‘1’及有多少位被编程为‘0’)的总编程时间的情况。

为了将最大值放到用于整个阵列的编程时间,可能引入编程为‘1’的位的数目的限制,及因此引入总编程时间值限制。根据各种不同实施例,这可在添加用于每一n位字(其中n个位表示所述otp阵列的读取/写入宽度)的额外otp位的成本的情况下完成。举例来说,32位宽度otp阵列可被更新成33个位宽。

如此,使用用于otp阵列中的每一字的所述额外位以确定是否对应字是所要值的反相或非反相表示。当写入此字时,所述otp控制器(或在此情况下所述otp控制器外部的逻辑)计数被写入数据中的‘1’的数目。如果所述数目多于n/2(即,用于32位宽度otp阵列的16个位),那么在被写入所述阵列前所述数据被反相,且所述(n+1)位(此后称为“inv”位)被写为‘1’。如果‘1’的数目少于n/2,那么所述inv位不编程(即,写为‘o’)。

虽然还可使用所述inv位(即,inv=1指示对应字未反相)的相反极性,在用于任何n位二进制字的一些配置中,在此方案下的需要反相的字的数目少于50%。如果所述1的计数使用小于n/2函数(如以上描述,相对于多于n/2)比较,那么所述相对极性(即,inv=0指示所述编程字是反相)将导致总体编程位的最少数目。

图1说明根据本发明的某些实施例的用于确定是否反相读取数据以产生原始程序数据的实例编程方案100。当任何字写在阵列之外,所述inv位被读取作为所述字的部分,且经使用以确定反相还是不反相所述读取数据以产生被编程到所述阵列中的原始数据。

在方案100的一些实施例中,由于仅需要确定‘1’的数目是多于、等于还是少于n/2,因此可无需计数整个n位字以确定‘1’的数目。如此,在逻辑上对位对进行or运算且接着确定所述计数是否多于n/4是较容易的。

如用于32位otp阵列的实例,系统可对位32及位31、位30及位29、……、位1及位0进行or运算且接着计数在所得16位二进制数目中的‘1’的数目以确定其是否大于8。如果数目大于8,那么将反相所述32位字且将inv编程为‘1’。否则不反相所述字,且将让inv未编程。

在一些实施例中,方案100可包含以通信方式耦合到otp阵列104的otp控制器102。otp控制器102可为任何适当otp控制器,例如在microchippic系列中可发现的所述控制器。otp阵列104可为任何适当otp阵列,例如在microchippic系列中发现的所述otp阵列。

在一些实施例中,otp控制器102可通过一或多个控制信号以通信方式耦合到otp阵列104。控制信号的数目及类型可根据方案100的特定配置变化。举例来说,otp控制器102可通过终端重发(例如,“rstn”)信号、命令启用(例如,“cen”)信号、二次启用(例如,“wen”)信号,及/或多个地址信号(例如,“a[m:0]”)以通信方式耦合到otp阵列104。otp控制器102还可通过一或多个数据信号(例如,“d[31:0]”,其将说明32位数据总线)以及一或多个第二或返回数据信号(例如,“q[31:0]”,其将说明32位数据总线)以通信方式耦合到otp阵列104。

在一些实施例中,otp控制器102与otp阵列104之间的通信耦合可包含多个额外组件作为数据传送的部分。举例来说,方案100还可包含反相器106、‘1’计数器108、多路复用器110、反相器112及多路复用器114。在一些实施例中,otp控制器102通过多个数据信号发送的数据可经所述相同数据的反相多路复用(经由多路复用器110)。所述数据将通过反相器106被反相。在多路复用器108处,哪个信号将被多路复用的选择可通过‘1’计数器108提供。‘1’计数器108可为可操作以提供通过otp控制器102写入otp阵列104的以字大小被存储的‘1’的数目的计数的任何适当电路。‘1’计数器108可操作以计算此数目,且使用所述数目来确定是所述原始数据还是反相数据将被写入otp阵列104。另外,‘1’计数器108可输出将在otp阵列104处被写入作为每一经存储字中的额外位的最后逻辑‘1’。

在一些实施例中,方案100还可包含反相器114及多路复用器112。在一些实施例中,otp阵列104通过多个返回数据信号(例如,用于读取)发送的数据可经所述相同数据(如经反相器114提供)的反相多路复用(经由多路复用器112)。另外,可通过来自otp阵列104的信号切换多路复用器112,其中所述信号可为附加到经存储于otp阵列104中的每一字的末端的最后的、额外位。

图2说明根据本发明的某些实施例的用于编程用于编程一次性可编程存储器的方案100的编程值200的实例表。提供编程值200的表为本发明的理解的帮助,且不应理解为对本发明的限制。

在一些实施例中,表200可包含数据列202、零偏向列204、反相指示列206及经编程值列208。数据列202包含用于根据方案100将被编程的数据值的每一可能数据。在实例中,为便于说明,数据范围列202仅指示四位范围。在不脱离本发明的范围的情况下,可在任何特定配置中呈现更多、较少,及/或不同值。

在特定数据是零的情况下,可使用零偏向列204以指示数据值的百分比。在实例表200中,虽然可使用指示方案的任何数目,但是零偏向列204指示是否特定数据具有少于百分之五十、正好百分之五十,或多于百分之五十的零。接着,反相指示列206可指示是否在特定数据处至少基于所述数据位置处的零偏向是否大于特定阈值反相数据。举例来说,如果所述零偏向大于百分之五十,那么反相所述数据。反相指示列206可包含与指示是否反相所述数据的特定数据值相关的数据值。举例来说,如果所述数据被反相,那么表可包含“是(yes)”。在其它配置中,反相指示列206可包含逻辑零用于“不反相”,及逻辑一用于“反相”,且反之亦然。在不脱离本发明的范围的情况下,所属领域的技术人员可用其它指示方案。

在一些实施例中,表200还可包含经编程值列208。经编程值列208可包含通过(举例来说)otp控制器102写入特定数据中的值。举例来说,在第一行中,表200指示应将值“0000”写入所述数据值中。这是因为零偏向小于百分之五十(如在零偏向列204的第一行中指示),且因此无反相发生(如在反相指示列206的第一行中指示)。在图2中说明其它实例值。

因此,揭示用于反相与非反相编程字之间的算法性选择的最小化otp编程时间的系统及方法。为了将最大值放到用于整个阵列的编程时间,可能引入经编程为‘1’的位的数目的限制,且因此引入总编程时间的限制。这可在添加用于每一n位字(其中n个位表示所述otp阵列的读取/写入宽度)的额外otp位的成本的情况下完成。举例来说,可将32位宽度otp阵列更新为33个位宽度。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1