存取存储器的方法

文档序号:6758370阅读:128来源:国知局
专利名称:存取存储器的方法
技术领域
本发明提供一种存取存储器的方法,尤其指一种存取一次可编程存储器的方法。
背景技术
近来非易失性存储器(non-volatile memory)愈来愈广泛地应用于各种电子产品上,例如移动电话、数字相机、数字音乐播放器等。这类的非易失性存储器通常可以包括硬盘、闪速存储器以及一次可编程存储器(one timeprogrammable memory)。闪速存储器以及一次可编程存储器是两种较普遍的存储器,两者最主要的差别在于,存储于闪速存储器中的数据可以被更新,也就是说闪速存储器可以重复读写,然而一次可编程存储器却只能写入一次,一旦数据写入一次可编程存储器,则该一次可编程存储器就不能再被用来记录其他数据。
因为闪速存储器是一种可以重复清除以及写入的存储器,所以闪速存储器是一种多次可编程(multi-time programmable,MTP)的存储器,其必须包含有特定的电路来执行清除、写入以及读取等操作。但由于一次可编程存储器只有写入以及读取的操作而没有清除的操作,所以在操作上,一次可编程存储器相较于多次可编程存储器可以节省下控制清除操作的电路,因此电路变得较为简单,使得实际上的电路制造步骤变得更为精简,而且电路的花费也较为低廉。因此在重复读写次数不多的情况下,可以利用多个一次可编程存储器来模拟多次可编程存储器,如此一来就可以产生类似多次可编程存储器的效果,然而却不需要额外的清除电路。
美国专利案号6,728,137公开一种控制读写多个一次可编程存储器的方法,利用多个一次可编程存储器来模拟多次可编程存储器。请参阅图1,图1显示一存储器元件的结构图,该存储器元件100包含有存储器110、控制电路120、行解码器130、到解码器140、以及记录块150。存储器110中包含有N个一次可编程存储块112,每个一次可编程存储块112还包含有多个存储单元(未显示),每个存储单元用来存储一位(1bit)的数据。由于每个存储单元皆为一次可编程,所以已经完成编程(programmed)的存储单元就无法再被写入数据,即无法再次编程。记录块150由多个记录单元152所组成,每个记录单元152包含有一个或一个以上的存储单元,而且每个记录单元152分别对应到一个一次可编程存储块112,用来记录相对应的一次可编程存储块112的使用状态。举例来说,记录单元#A记录一次可编程存储块#1的使用状态,记录单元#B记录一次可编程存储块#2的使用状态,以此类推。在该专利所公开的实施例中,如果某一记录单元152所存储的数值为“0”,则表示该记录单元152所对应的一次可编程存储块尚未编程(un-programmed),如果存储的数值为“1”,则表示该记录单元152所对应的一次可编程存储块已完成编程(programmed)。请注意,存储器110以及记录块150的最小单位都是存储单元,因此可以利用相同的制程方法来制作存储器110以及记录块150。
控制电路120连接至该记录块150、该行解码器130以及该到解码器140,控制电路120可以根据记录块150中所存储的数值,来送出一控制信号,控制信号经行解码器130以及到解码器140的解码后,来选取适当的一次可编程存储块112来加以编程或读取其所存储的数据。虽然存储器110中所包含的一次可编程存储块112只能记录一次而且不能重复写入数据,然而利用多个一次可编程存储块112配合适当的控制方法,可以模拟多次可编程存储器。
上述的专利主要是利用位于存储器110的外的记录块150来记录每个一次可编程存储块112的使用状态,因此控制电路120就可以读取记录块150所存储的数据来选取适当的一次可编程存储块112来加以编程或读取。

发明内容
本发明的目的的一在于提供一种存取一存储器的方法,不需要以额外的存储单元来记录存储块的使用状态。
根据本发明的实施例,其公开一种存取一存储器的方法,该存储器包含有至少一一次可编程(one time programmable)的存储块(memory block),每一存储块包含有一第一存储区段以及一第二存储区段,该方法包含有选取一第一目标存储块;读取该第一目标存储块;以及若该第一目标存储块的一第一存储区段纪录一第一数值,则输出一预定数据来作为该第一目标存储块所存储的数据,以及若该第一目标存储块的该第一存储区段纪录一第二数值,则输出该第一目标存储块的该第二存储区段所纪录的数据来作为该第一目标存储块所存储的数据。
根据本发明的实施例,其亦公开一种存取一存储器的方法,该存储器包含有至少一一次可编程(one time programmable)的存储块(memory block),每一存储块包含有一第一存储区段以及一第二存储区段,以及每一存储块于尚未编程前,其每一存储单元均纪录一第一逻辑值,该方法包含有选取一第一目标存储块;以及编程该第一目标存储块的该第二存储区段以使其纪录一预定数据,来清除该第一目标存储块。
根据本发明的实施例,其还公开一种存取一存储器的方法,该存储器包含有至少一一次可编程(one time programmable)的存储块(memory block),每一存储块包含有一第一存储区段以及一第二存储区段,以及每一存储块于尚未编程前,其每一存储单元均纪录一第一逻辑值,该方法包含有选取一目标存储块;以及将一待存储数据写入该目标存储块,其中若该待存储数据对应于一预定数据,则仅编程该目标存储块的一第一存储区段来存储一第一数值,以及若该待存储数据并未对应于该预定数据,则仅依据该待存储数据来编程该目标存储块的一第二存储区段。


图1为公知存储器元件的结构图。
图2为本发明的存储器元件的结构图。
图3为图2所示的一次可编程存储块的内部结构示意图。
图4为图2所示的存储器的第一操作状态示意图。
图5为图2所示的存储器的第二操作状态示意图。
图6为图2所示的存储器的第三操作状态示意图。
图7为图2所示的存储器的第四操作状态示意图。
图8为图2所示的存储器的第五操作状态示意图。
图9为循序搜寻法的示意图。
图10为二分搜寻法的示意图。
主要元件符号说明100、200存储器元件
110、210存储器112、212、401-408一次可编程存储块120、220控制电路130、230行解码器140、240到解码器150记录块152记录单元214存储单元310第二存储区段320第一存储区段具体实施方式
请参阅图2,图2为本发明优选实施例的示意图。图2为根据本发明优选实施例的存储器元件200的结构图,存储器元件200包含有存储器210、控制电路220、行解码器230以及到解码器240。存储器210中包含有多个一次可编程存储块212,请参阅图3,图3为一次可编程存储块212的内部结构示意图,每个一次可编程存储块212还包含有多个存储单元214,同公知的存储器元件110,每个存储单元用来存储一位的数据。在本实施例中,多个存储单元214可以区分为两区段,亦即一次可编程存储块212包含有一第一存储区段320以及一第二存储区段310,每一存储区段可以包含一个或一个以上的存储单元,在本实施例中,第一存储区段320包含一次可编程存储块212的最后一个存储单元214,而第二存储区段310则包含有除了最后一个存储单元214以外的其他所有存储单元214。
请参阅图2,控制电路220用来控制如何选取适当的一次可编程存储块212,并控制如何编程或读取一次可编程存储块212中的每一个存储单元214。控制单元220送出的控制信号经由行解码器230以及到解码器240的解码后,控制电路220就可以选取特定的一次可编程存储块212,并对其中所包含的存储单元214来加以编程或读取。
以下将叙述存取某一特定的一次可编程存储块212的方法。首先需注意的是,一次可编程存储块212中的每一个存储单元214于编程前(un-programmed)皆对应至同一逻辑值,例如逻辑值“1”,而编程后(programmed)则对应至另一逻辑值,例如逻辑值“0”。请参阅图4,图4为图2中存储器210的细部结构图,在以下的实施例中,将以八个一次可编程存储块212为例,并且将其重新编号为401-408,来说明存取一次可编程存储块401-408的步骤,然而不应以此实施例所举例的个数,来限制本发明的范围。假设每个一次可编程存储块401-408皆包含有9个存储单元214,将这9个存储单元214分成两个区段,即第一存储区段320以及第二存储区段310,其中第二存储区段310包含有8个存储单元,亦即可以存储8位的数据,另一第一存储区段320则包含剩下的1个存储单元,亦即具有1位的数据存储空间。在未编程存储器210之前,所有一次可编程存储块401-408中的每个存储单元214所记录的逻辑值皆为1,并且在存取时,依序由上往下对每个一次可编程存储块401-408做编程的操作,也就是说先使用一次可编程存储块401,若欲清除原数据并写入新数据时,则使用一次可编程存储块402,依此类推。第一次写入数据时,选取一次可编程存储块401,假设待写入的数据是70,则将70所对应的数值“01000110”写入一次可编程存储块401中,的后存储器210则形成如图5所示的状态。读取时,控制电路220会读取存储器210中每一个一次可编程存储块中的第二存储区段310,并且在这些依序排列的一次可编程存储块中,找出第一个第二存储区段310中所记录的逻辑值不为代表已被清除块的预定数据的一次可编程存储块,以目前的状态而言,该一次可编程存储块为一次可编程存储块401。因此接下来要读取存储器210时,便会选取一次可编程存储块401,选取后首先读取第一存储区段320所存储的数值,此时第一存储区段320所存储的数值为1,因此则继续读取第二存储区段310所存储的数值,并将依据读取的结果“01000110”,而输出其所对应的数据70。当要继续在存储器210中写入数据时,必须先对目前正在使用中的一次可编程存储块401作“清除”的操作。对一次可编程存储块而言,并无实际上的清除操作,在本发明中,藉由在第二存储区段310中记录一预定数据,来代表该一次可编程存储块已经清除。举例来说,假设该预定数据为最高二位为0的某值(“00XXXXXX”),例如63(“00111111”),则当第二存储区段310的状态为“00111111”时,则代表该一次可编程存储块已经清除,然而,当该一次可编程存储块待存储的数据为该最高二位为0的某值(“00XXXXXX”),例如63(“00111111”)时,将第二存储区段310的状态维持在“11111111”,并且将第一存储区段320中所存储的数值由“1”改为“0”,来代表该一次可编程存储块目前记录的数据为63。而且在选取待处理的一次可编程存储块时,会找出第一个其第二存储区段310的状态其最高两位非为0的一次可编程存储块。在本实施例中,该预定数据设定为全0(“00000000”),因此当该第一存储区段320中所存储的数值为“0”时,代表一次可编程存储块目前记录的数据为0,也就是说,在本实施例中,令其第二存储区段310中所有的存储单元皆记录逻辑值0,来代表该一次可编程存储块401已经清除。因此清除后便如图6所示,一次可编程存储块401的第二存储区段310中的存储单元全数记录逻辑值0。完成清除的操作后,便可以继续对下一个一次可编程存储块写入第二组数据。
写入第二组数据时,选取一个一次可编程存储块,该一次可编程存储块的第二存储区段310中的存储单元必须全数记录逻辑值1,这代表该一次可编程存储块未编程,未编程的一次可编程存储块可能同时有很多个,由于存储器210中一次可编程存储块的使用顺序是由上而下依序使用,因此写入数据时,也就会选取所有未编程的一次可编程存储块的第一个,以这个实施例而言,目前要写入第二组数据,所以会选取一次可编程存储块402。假设第二组数据为0,其所对应的数值即为“00000000”,但若将一次可编程存储块402的第二存储区段310的存储单元全数编程为0,则这种情况会与已清除的一次可编程存储块相冲突,所以当要记录的数据为0时,不编程第二存储区段310,而仅编程第一存储区段320,将第一存储区段320中的数值编程为0,即代表一次可编程存储块402目前所记录的数据为0,如图7所示。
接下来要读取时,同样是对比每一个一次可编程存储块的第二存储区段310,直到选定一个一次可编程存储块,该一次可编程存储块本身的第二存储区段310的状态非为“00000000”,代表其以上所有的一次可编程存储块皆已清除,也就是第二存储区段310的状态为“00000000”,而且以下所有的一次可编程存储块皆未编程,也就是其第一存储区段320及第二存储区段310的状态分别为“1”及“11111111”,因此,在这个实施例中,就会选取一次可编程存储块402。读取时,先读取第一存储区段320所记录的数值,此处记录为0,即表示该一次可编程存储块402存储的数据为0,所以即读取到一个为0的数据。
接下来要清除时,同样是对比每一个一次可编程存储块的第二存储区段310,直到选定一个一次可编程存储块,该一次可编程存储块本身的第二存储区段310的状态非为“00000000”,代表其以上所有的一次可编程存储块皆已清除,也就是第二存储区段310的状态为“00000000”,而且以下所有的一次可编程存储块皆未编程,也就是第一存储区段320及第二存储区段310的状态分别为“1”及“11111111”,因此,在这个实施例中,就会选取一次可编程存储块402。清除时同样把其第二存储区段310的状态编程为“00000000”,清除后的结果如图8所示。
的后可以再重复上述的写入、读取、清除等操作,直到存储器210中所有的一次可编程存储块皆已编程为止。
在本发明中,主要利用两种搜寻规则来选取适当的一次可编程存储块,本发明以这两种规则为例,来说明搜寻的程序,但不应以这两种搜寻规则来限制本发明的实施方式。第一种搜寻方式为循序搜寻法(SequentialSearch),请参阅图9,在此仍以八个一次可编程存储块为例,来说明搜寻的程序。当要执行读取、清除或是写入的操作时,会先判断一次可编程存储块401中的第二存储区段310是否为全0状态(“00000000”),如果是,则再判断下一个一次可编程存储块,也就是一次可编程存储块402,以此顺序依序往下搜寻,直到找到第一个其第二存储区段310不全为0的一次可编程存储块为止,该一次可编程存储块就是目前应该要选取的存储块。假若该选取的存储块的第二存储区段310的原始状态不为全1(“11111111”),也就是说该选取的存储块已经编程过,则这次执行写入操作时,写入的数据会与上次写入的数据形成交集,例如,上次写入的数据为“10111111”,这次待写入的数据为“11110010”,则完成此次的写入操作后,该选取的存储块会形成“10110010”,也就是说,即使该选取的存储块的第二存储区段310和第一存储区段320的原始状态不为全1,亦可执行写入的操作,唯有写入的数据可能无法正确被读取。
第二种规则为二分搜寻法(Binary Search)。请参阅图10,第一次搜寻时,会从所有一次可编程存储块的中间一个开始判别,在这个实施例中,会从一次可编程存储块404开始判别。当要执行读取、清除或写入的操作时,会先判断一次可编程存储块404中的第二存储区段310是否为全0状态(“00000000”),如果是全0状态,则代表一次可编程存储块401-404皆已清除,因此第二次判断时就会沿着实线的指示,来判断一次可编程存储块406;如果一次可编程存储块404中的第二存储区段310为非全0且非全1状态,则选择该一次可编程存储块404;如果一次可编程存储块404中的第二存储区段310为全1状态(“11111111”),则会再判断一次可编程存储块404中的第一存储区段320为1或0,如果为0,则代表一次可编程存储块404已经记录数据0,所以此时就会选取一次可编程存储块404来作为目前待处理的一次可编程存储块,然而如果为1,则代表一次可编程存储块404以下的所有一次可编程存储块皆为未编程,所以第二次判断时就会沿着虚线的指示,来判断一次可编程存储块402。同样地,无论第二次判断时是判断一次可编程存储块402或406,都会重复执行上述的规则,直到找到第一个其第二存储区段310不全为0的一次可编程存储块为止,该一次可编程存储块就是目前被选取的存储块。同样地,假若该选取的存储块的第二存储区段310的原始状态不为全1(“11111111”),也就是说该选取的存储块已经编程过,则这次执行写入操作时,写入的数据会与上次写入的数据形成交集,例如,上次写入的数据为“10111111”,这次待写入的数据为“11110010”,则完成此次的写入操作后,该选取的存储块会形成“10110010”,也就是说,即使该选取的存储块的第二存储区段310和第一存储区段320的原始状态不为全1,亦可执行写入的操作,唯有写入的数据可能无法正确被读取。
综合上述,不论是循序搜寻法或是二分搜寻法,主要都是判别一次可编程存储块的第二存储区段310,通过对比一次可编程存储块的第二存储区段310来找出适当的一次可编程存储块,而后再执行读取、清除或写入的操作。因此,藉由将一次可编程存储块划分成两个存储区段(第一存储区段320以及第二存储区段310)的方式,本发明所提出的存储器元件不需要额外的存储单元来记录每个一次可编程存储块的使用状态(已编程或未编程),仅需要通过对比的方式,就可以找出待处理的一次可编程存储块。
以上所述仅为本发明的优选实施例,凡依本发明权利要求所进行的等效变化与修改,皆应属本发明的涵盖范围。
权利要求
1.一种存取一存储器的方法,该存储器包含有至少一一次可编程的存储块,每一存储块包含有一第一存储区段以及一第二存储区段,该方法包含有选取一第一目标存储块;读取该第一目标存储块;以及若该第一目标存储块的一第一存储区段纪录一第一数值,则输出一预定数据来作为该第一目标存储块所存储的数据,以及若该第一目标存储块的该第一存储区段纪录一第二数值,则输出该第一目标存储块的该第二存储区段所纪录的数据来作为该第一目标存储块所存储的数据。
2.如权利要求1所述的方法,其中每一存储块于尚未编程前,其每一存储单元均纪录一第一逻辑值,以及该方法还包含有编程该第一目标存储块的该第二存储区段以使该第二存储区段记录该预定数据,来清除该第一目标存储块。
3.如权利要求2所述的方法,其中该存储器包含有多个依序排列的一次可编程的存储块,以及该方法还包含有将一待存储数据写入该第一目标存储块的后一第二目标存储块,其中若该待存储数据对应于该预定数据,则仅编程该第二目标存储块的一第一存储区段来存储该第一数值,以及若该待存储数据并未对应于该预定数据,则仅依据该待存储数据来编程该第二目标存储块的一第二存储区段。
4.如权利要求1所述的方法,其中该存储器包含有M个一次可编程的存储块,以及选取该第一目标存储块的步骤还包含有依据一搜寻规则来比较该M个存储块中N个存储块的第二存储区段以选定该第一目标存储块。
5.如权利要求4所述的方法,其中该搜寻规则为一循序搜寻法或一二分搜寻法。
6.一种存取一存储器的方法,该存储器包含有至少一一次可编程的存储块,每一存储块包含有一第一存储区段以及一第二存储区段,以及每一存储块于尚未编程前,其每一存储单元均纪录一第一逻辑值,该方法包含有选取一第一目标存储块;以及编程该第一目标存储块的该第二存储区段以使其纪录一预定数据,来清除该第一目标存储块。
7.如权利要求6所述的方法,其中该存储器包含有多个依序排列的一次可编程的存储块,以及该方法还包含有将一待存储数据写入该第一目标存储块的后一第二目标存储块,其中若该待存储数据对应于该预定数据,则仅编程该第二目标存储块的一第一存储区段来存储该第一数值,以及若该待存储数据并未对应于该预定数据,则仅依据该待存储数据来编程该第二目标存储块的一第二存储区段。
8.如权利要求6所述的方法,其中该存储器包含有M个一次可编程的存储块,以及选取该第一目标存储块的步骤还包含有依据一搜寻规则来比较该M个存储块中N个存储块的第二存储区段以选定该第一目标存储块。
9.如权利要求8所述的方法,其中该搜寻规则为一循序搜寻法或一二分搜寻法。
10.一种存取一存储器的方法,该存储器包含有至少一一次可编程的存储块,每一存储块包含有一第一存储区段以及一第二存储区段,以及每一存储块于尚未编程前,其每一存储单元均纪录一第一逻辑值,该方法包含有选取一目标存储块;以及将一待存储数据写入该目标存储块,其中若该待存储数据对应于一预定数据,则仅编程该目标存储块的一第一存储区段来存储一第一数值,以及若该待存储数据并未对应于该预定数据,则仅依据该待存储数据来编程该目标存储块的一第二存储区段。
11.如权利要求10所述的方法,还包含有读取该目标存储块;以及若该目标存储块的该第一存储区段纪录该第一数值,则输出该预定数据来作为该目标存储块所存储的数据,以及若该目标存储块的该第一存储区段纪录一第二数值,则输出该目标存储块的该第二存储区段所纪录的数据来作为该目标存储块所存储的数据。
12.如权利要求10所述的方法,其中该存储器包含有M个一次可编程的存储块,以及选取该第一目标存储块的步骤还包含有依据一搜寻规则来比较该M个存储块中N个存储块的第二存储区段以选定该第一目标存储块。
13.如权利要求12所述的方法,其中该搜寻规则为一循序搜寻法或一二分搜寻法。
全文摘要
本发明提供一种存取一存储器的方法,该存储器包含有M个一次可编程的存储块,每一存储块包含有一第一存储区段以及一第二存储区段,该方法包含有选取一第一目标存储块并读取该第一目标存储块。其中该选取该第一目标存储块的步骤依据一搜寻规则来比较该M个存储块中N个存储块的第二存储区段以选定该第一目标存储块。
文档编号G11C16/06GK1866400SQ20051009906
公开日2006年11月22日 申请日期2005年9月6日 优先权日2005年5月19日
发明者林庆源, 廖弘毅, 林元泰, 林诗芸, 卢俊宏 申请人:力旺电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1