使用数据编码以减少存储器装置的编程时间的方法和装置与流程

文档序号:13703334阅读:156来源:国知局
本发明关于一种数据存储器,特别是关于一种用于减少使用数据编码的存储器装置的编程时间的方法和装置。
背景技术
::一次性可编程存储器是一种内部的编程存储器采用一次性可编程只读存储器(one-timeprogrammablereadonlymemory,otprom,简称otp)的存储装置。otprom的数据写入原理同可抹除可编程唯读存储器(erasableprogrammablereadonlymemory,eprom),可利用编程烧录工具的高电压将数据编程写入。otp存储装置为一次性可编程存储装置,将应用程序代码烧录到芯片中,就能按程序代码的功能运作。这为开发验证和量产提供了极大的方便和灵活性。一般而言,存储器装置的编程持续时间取决于数据中的“1”位值的数目与“0”位值的数目变化。例如,在某些一次性可编程(one-timeprogrammable,otp)存储器装置中,存储器预设编程为全“0”,并且只有“1”位值必须被写入存储器。据此,编程具有大量“1”位值的数据比具有少量“1”位值的数据要花费更长的时间。因此,若开发商的输入数据字(inputdatawords)中具有大量的“1”位值,则存储器控制器于接收到此输入数据字时,往往需要花费较长的编程持续时间来将此输入数据字编程于存储器中。由以上可知,需要一种新的数据存储方法,以辅助使用者妥善地解决既有的问题。技术实现要素:本文所描述的本发明的实施例提供了一种使用数据编码以减少存储器装置的编程时间的装置,其包含用于与存储器沟通的接口以及编码电路。存储器在编程第一位值时用了第一位编程持续时间,并且在编程与第一位值相反的第二位值时用了比第一位编程持续时间长的第二位编程持续时间。编码电路配置来接收用于存储在存储器中的输入数据字(datawords),以对输入数据字进行编码,以产生相应的编码数据字,其中编码数据字(i)比输入数据字多位,但是(ii)以比输入数据字更短的编程持续时间编程于存储器中,并且经由接口传送编码数据字以存储在存储器中。通常,所有编码数据字的第二位值的总出现次数大于所有输入数据字的第二位值的总出现次数。在一些实施例中,编码数据字由所有2m个可能的m位字(m-bitwords)中具有第二位值的最小出现次数的2n个m位字的子集组成。在一实施例中,编码电路还配置来经由接口接收从存储器读取的一或多个编码数据字,并且对编码数据字进行解码,以重建相应的输入数据字。根据本发明的一实施例,另外提供一种使用数据编码以减少存储器装置的编程时间的方法,其包含接收用于存储在存储器中的输入数据字。存储器在编程第一位值时用了第一位编程持续时间,并且在编程与第一位值相反的第二位值时用了比第一位编程持续时间长的第二位编程持续时间。对输入数据字进行编码,以产生相应的编码数据字。编码数据字(i)比各个输入数据字多位,但是(ii)以比输入数据字更短的编程持续时间编程于存储器中。传送编码的数据字以存储在存储器中。根据本发明的实施例,还提供了一种电脑程序产品,该产品包含其中存储有多个程序指令的有形非暂态电脑可读取媒体,该些指令在被处理器读取时使得处理器与存储器沟通,在编程第一位值时用了第一位编程持续时间,并且在编程与第一位值相反的第二位值时用了比第一位编程持续时间长的第二位编程持续时间,以接收用于存储在存储器中的输入数据字,以对输入数据字进行编码以产生相应的编码数据字,其中编码数据字(i)比输入数据字多位,但是(ii)以比输入数据字更短的编程持续时间被编程在存储器中,并且经由接口传送编码数据字以存储在存储器中。附图说明从下面结合附图与实施例的详细描述中将更充分地理解本发明,其中:图1为根据本发明的实施例示意性地说明存储器系统的方块图;图2为根据本发明的实施例示意地说明用于设计存储器系统的编码机制的方法的流程图;图3为根据本发明的实施例的用于存储器系统的编码机制的例示性能表。符号说明:20存储器控制器24存储器装置28主机32主机接口36编码器40存储器接口50、54、58步骤流程具体实施方式在某些类型的存储器装置中,编程持续时间取决于数据中的“1”位值的数目与“0”位值的数目而变化。例如,在一些一次性可编程(one-timeprogrammable,otp)存储器装置中,存储器预设编程为全“0”,并且只有“1”位值必须被写入存储器。据此,编程具有大量“1”位值的数据比具有少量“1”位值的数据要花费更长的时间。一般而言,在某些类型的存储器中,编程某个位值会花费一定的位编程持续时间,并且编程相反的位值会花费更长的位编程持续时间。在本发明中,编程所需时间较长的位值(例如,在otp例子中为“1”)称为“慢编程位值”。相反的位值(例如,在otp例子中为“0”)在本文中被称为“快编程位值”。本文所描述的本发明的实施例提供了编程存储器装置的改良方法和系统。在一些实施例中,存储器控制器接收用于存储在具有慢编程位值和快编程位值的存储器中的输入数据字。存储器控制器对每个输入数据字进行编码,以产生相应的编码数据字。编码机制被设计为使得尽管每个编码数据字比相应的输入数据字多两个或更多个位,但实际上却减少了要编程的慢编程位值的数量。存储器控制器使用编码数据字而不是原始输入数据字来编程存储器。据此,减少了编程持续时间。在所揭露的实施例中,可能的编码数据字集合上的慢编程位值的总数小于可能的输入数据字集合上的慢编程位值的总数。因此,平均上可减少编程持续时间,但不一定对于每个数据字皆可减少编程持续时间。每个输入数据字中的位数表示为n,每个编码数据字中的位数表示为m,其中m-n≥2。换句话说,编码操作将数据字的大小增加了至少两位。在一例示性实施例中,通过从2m个可能的m位字中选择具有最少的慢编程位值的2n个m位字的子集合来设计该组编码数据字。只要编码数据字集合中的慢编程位值的数量小于输入数据字集合的慢编程位值的数量,其它选择标准也是可能的。原则上可以仅使用单个附加位对输入数据字进行编码。例如,可以反转包含比“0”位值更多的“1”位值的任何输入数据字的位,并且添加指示数据字是否被反转的“极性位”(polaritybit)。然而,所揭露的技术显著优于这种单位(single-bit)机制。例如,以n=8为例,所揭露的技术使用m=10将编程时间减少了约24%。对每个8位输入数据字添加第9位的可比较的单位机制,编程时间减少了约18.2%。n=16和m=18(每个16位输入数据字添加2位)的机制也显示了优于对每个8位输入数据字添加1位的单位机制,具有完全相同的存储器开销(相对减少编程时间为约21.3%vs.约18.2%)。本文中提及了具有m-n≥2的编码机制以及相关减少编程持续时间的几个实施例。图1为根据本发明的实施例示意性地说明存储器系统的方块图。图1中的存储器系统包含代表主机28在存储器装置24中存储数据的存储器控制器20。在例示性实施例中,存储器系统可为个人或可携式电脑的一部分,在这种情况下,主机28包含电脑的cpu芯片组。或者,所揭露的技术可用于各种其它应用及主机系统中。存储器装置24的特征在于取决于数据(data-dependent)的编程持续时间。具体而言,当存储包含多个位的数据字时,编程某个位值导致某个位编程持续时间,并且编程相反的位值导致更长的位编程持续时间。例如,在一些实施例中,存储器装置24包含初始预设编程为全“0”的一次性可编程(otp)存储器装置。在这种存储器中,只有“1”位值必须实际编程。因此,具有大量“1”位值的数据比具有少量“1”位值的数据需要更长的编程时间。需要较长时间编程(在本实施例中为“1”)的位值在本文被称为“慢编程位值”,并且相反位值(在本实施例中为“0”)被称为“快编程位值”。在不失一般性的情况下,为了清楚起见,下面的描述将“1”作为慢编程位值以及将“0”作为快速编程位值。然而,也许在其它类型的存储器中,“1”位值可比“0”位值更快地编程。所揭露的技术可以直接的方式适用于这种存储器类型。因此,存储器装置24可包含任何合适类型的存储器,其中一个位值比相对位值花费更长的时间编程。存储器控制器20包含用于与主机28沟通的主机接口32,用于与存储器装置24沟通的存储器接口40,以及配置来对要写入存储器装置的数据字进行编码的编码电路。在图1的实施例中,编码电路包含编码器36,其对输入数据字进行编码,以产生具有较短编程持续时间的编码数据字。下面将详细解释编码机制的实施例。在一例示性实施例中,编码器36包含将n位输入数据字映射到相应的m位编码数据字的查找表(look-uptable,lut),其中m-n≥2。例如,此查找表可实现于唯读存储器(rom)中。图1所示的存储器系统的配置是纯粹为了概念清楚的目的而描绘的例示性配置。在替代实施例中,可使用任何其它合适的配置。例如,所揭露的技术可与其他类型的存储器一起使用,例如某些类型的快闪存储器。作为另一实施例,编码电路不必要为存储器控制器的一部分。例如,编码电路可在与存储器装置24相同的装置中实现,或者在主机28中实现。为了清楚起见,图式中省略了对于理解所揭露的技术非必要的系统元件。例如,编码电路通常包含解码器(未显示),其从存储器装置24读取编码数据字并应用反向映射来重建相应的输入数据字。在各种实施例中,存储器系统的不同元件(包含存储器控制器20的不同元件)可使用任何合适的硬件来实现,例如在专用集成电路(asic)或现场可编程逻辑阵列(field-programmablegatearray,fpga)。或者,存储器控制器一些功能(例如编码器36的编码功能)可在合适的处理器(例如存储器控制器20或主机28中的处理器)中执行的软件中实现。在后面的实施例中,处理器可包含通用处理器(general-purposeprocessor),其在软件中被编程以执行本文所描述的功能。例如,软件可通过网路以电子形式下载到处理器,或者可替换地或附加地,可被提供及/或存储在诸如磁、光或电子存储器之类的非暂态有形介质上。在一些实施例中,编码器36接收n位输入数据字,并且通过将每个n位输入数据字映射到相应的m位编码数据字来编码,其中m-n≥2。由编码器36应用的映射被设计为使得尽管编码数据字比输入数据字多两个或更多个位,但是实际上却减少了要编程的慢编程位值的数量。图2为根据本发明的实施例示意地说明用于设计存储器系统的编码机制的方法的流程图。此方法开始于数据字大小选择步骤50,用以选择m和n的数值,使得m-n≥2。在一些实施例中,虽然不是必须的,但是给定n的数值(输入数据字的大小),而m的数值(编码数据字的大小)是可受实现约束的设计选择。在一例示性实施例中,n=8且m=10。在另一例示性实施例中,n=16且m=18。下面将进一步分析两种机制的性能。在子集合选择步骤54中,从2m个可能的m位字中选择2n个m位字的子集合,以作为编码数据字的集合。在一些实施例中,选择子集,并且2n个m位字具有最少的慢编程位值(在本实施例中为最少的“1”位值)。在映射定义步骤58中,映射各个可能的2n个n位输入数据字到所选择子集合的相应的m位编码数据字。由于步骤54选择子集合的方式,将编码数据字编程到存储器装置24比编程原始输入数据字更快(即使编码数据字具有比输入数据字更多的位)。在替代实施例中,可以使用其它选择标准来从2m个可能的m位字中选择2n个m位编码数据字。一般而言,可使用导致编码数据字集合上的慢编程位值的数量小于输入数据字集合上的慢编程位值的数量的任何选择标准。换句话说,编码数据字集合不必具有最小可能数量的慢编程位值。任何小于原始输入数据字中的慢编程位值数量的数量将减少平均编程时间。编码数据字集合的选择及/或输入数据字和编码数据字之间的映射可考虑诸如编码和解码操作的实现复杂度的附加因素。图3为根据本发明的实施例的用于存储器系统的编码机制的例示性能表。在图3的实施例中,n=8和m=10。表格的两个左侧列对28=256个可能的8位输入数据字的“1”位值的数目进行计数。从表中可以看出,256个可能的输入数据字的全部集合由不具有“1”位值的1个字、具有一个“1”位值的8个字、具有两个“1”位值的28个字、具有三个“1”位值的56个字等等组合。因此,每个输入数据字的“1”位值的平均数为4。表格的两个右侧行对210=1024个可能的10位字的“1”位值的数目进行计数。从表中可以看出,1024个10位字的全部集合由不具有“1”位值的1个字、具有一个“1”位值的10个字、具有两个“1”位值的45个字、具有三个“1”位值的120个字等等组成。在本实施例中,从1024个可能的10位字中选择具有最少“1”位值的256个10位字的子集合。为了达到总共256个字,子集合包含具有多达三个“1”位值(总共176个字)的所有10位字,加上具有四个“1”位值的10位字中的90个。该子集合作为10位编码数据字的集合。以此选择,每个编码数据字的“1”位值的平均数约为3.04。在本实施例中,所揭露的编码机制以额外的25%的存储器使用为代价将平均编程时间减少了约24%(3.04对比于4)。这种折衷方式在许多实际实现中是有利的。在替代实施例中,可以通过分别选择n及/或m来在编程时间和存储器开销之间设置不同的折衷方式。例如,对于n=8,可通过选择m=255来设置极端的折衷方式。256个255位编码数据字的子集如下:{0000000...00000},{0000000...00001},{0000000...00010},{0000000...00100},{0000000...01000},...,{0100000...00000},{1000000...00000}。每个编码的255位编码数据字具有至多一个“1”位值。在此实施例中,所揭露的编码机制将平均编程时间减少了75%,但是将存储器开销增加了约30倍。在另一极端实施例中,n=4和m=15,并且十六个15位编码数据字的子集合如下:{00000...000},{00000...001},{00000...010},{00000...100},...,{01000...000},{10000......000}。在此实施例中,每个15位编码数据字也具有至多一个“1”位值。所揭露的编码机制将平均编程时间减少了50%,但是将存储器开销增加了约3.75倍。另外,所揭露的技术可使用任何其他合适选择的n、m,任何其他合适选择的编码数据字子集合,以及输入数据字和编码数据字之间的任何合适映射选择来执行。虽然本文描述的实施例主要在于减少编程时间,但是本文所描述的方法和系统也可以用于其他应用中,诸如用于改善存储器或系统整体的其他性能计量。例如,如果一个位值的编程比相反位值的编程消耗更多的功率,则所揭露的技术可以用于降低功率消耗。因此,应当理解的是,上述实施例以示例的方式引用,并且本发明不限于上文所具体显示和说明的内容。反之,本发明的范围包含上文所述的各种特征的组合和子组合,以及本领域技术人员在阅读前述说明时将想到的以及在现有技术中没有公开的变化和修改。本专利申请中参考并入的文件被视为是本申请的整体部分,除非在这些并入的文件中以与本说明书中明确或隐含地做出的定义冲突的方式定义的任何术语,应考虑本说明书中的定义。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1