CN104979005B - 一种存储器编程方法和系统 - Google Patents
一种存储器编程方法和系统 Download PDFInfo
- Publication number
- CN104979005B CN104979005B CN201410128899.5A CN201410128899A CN104979005B CN 104979005 B CN104979005 B CN 104979005B CN 201410128899 A CN201410128899 A CN 201410128899A CN 104979005 B CN104979005 B CN 104979005B
- Authority
- CN
- China
- Prior art keywords
- programming
- memory
- voltage
- storage unit
- power supply
- 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.)
- Active
Links
Landscapes
- Read Only Memory (AREA)
Abstract
本发明公开了一种存储器编程方法和系统,以解决增加电荷泵中电容和二极管数量,导致占用更大的存储器面积,增加存储器的成本,影响存储器内其他器件使用的问题。其中方法包括:存储器在接收到编程指令后,确定编程指令对应的,需要被执行编程操作的多字节存储单元;存储器将电源电压与预设的内部电压阈值进行比较;如果内部电压阈值小于或等于电源电压,则选取内部电荷泵提供编程电压,对多字节存储单元执行编程操作;如果内部电压阈值大于电源电压,则选取外部电源转接板提供编程电压,对多字节存储单元执行编程操作。本发明不会增加存储器的面积,存储器成本较低,也不会影响存储器内其他器件的使用,并且所述外部电源转接板的使用更加灵活。
Description
技术领域
本发明涉及存储器技术领域,特别是涉及一种存储器编程方法和一种存储器编程系统。
背景技术
存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。计算机中的信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。有了存储器,计算机才有记忆功能,才能保证正常工作。
在对存储器进行编程操作时,为满足编程需求通常需要使用较高的编程电压,但是一般存储器的电源电压所提供的电压强度较低,无法满足对存储器的编程需求。因此,通常会在存储器内部设置升压电路以将电源电压提供的电压强度升高至对存储器编程时所需要的电压。目前的升压电路普遍采用电荷泵(charge pump),电荷泵的升压电路中包括多个电容和多个二极管,通过两相时钟信号控制电荷传输到各个电容上,电荷的累积使得电荷泵的输出电压强度升高,升高后的电压即可满足对存储器的编程需求。
随着存储器的发展,对于存储器编程速度的要求也在不断提高,为了提高编程速度,可以采用多字节同时编程的方式,即同时对存储器中的多字节存储单元执行编程操作。但是要实现多字节同时编程,则需要强度(强度指的是提供电流的能力)更高的编程电压。针对上述问题,目前的技术中通常是增大存储器内部电荷泵的能量,提高电荷泵提供电流的能力,例如,增加电荷泵中电容和二极管数量,使得电荷累积更多。
但是,上述方法中增加电荷泵中电容和二极管数量,将会占用更大的存储器面积,从而增加存储器的成本,甚至影响存储器内其他器件的使用。
发明内容
本发明提供了一种存储器编程方法和系统,以解决在对存储器进行多字节同时编程时,增加电荷泵中电容和二极管数量,导致占用更大的存储器面积,增加存储器的成本,甚至影响存储器内其他器件使用的问题。
为了解决上述问题,本发明公开了一种存储器编程方法,其特征在于,所述存储器外接有预先设置的外部电源转接板,所述存储器包括内部电荷泵和多个存储单元,所述内部电荷泵的输入电压为电源电压,
所述方法包括:
所述存储器在接收到编程指令后,确定所述编程指令对应的,需要被执行编程操作的多字节存储单元;
所述存储器将所述电源电压与预设的内部电压阈值进行比较;
如果所述预设的内部电压阈值小于或等于所述电源电压,则所述存储器选取所述内部电荷泵提供编程电压,对所述多字节存储单元执行编程操作;
如果所述预设的内部电压阈值大于所述电源电压,则所述存储器选取所述外部电源转接板提供编程电压,对所述多字节存储单元执行编程操作。
优选地,所述存储器选取所述外部电源转接板提供编程电压,对所述多字节存储单元执行编程操作的步骤包括:
所述存储器向所述外部电源转接板发送针对所述编程指令生成的编程使能信号;
所述存储器接收所述外部电源转接板在接收到所述编程使能信号之后输出的,与所述编程使能信号相对应的编程电压;
所述存储器将所述编程电压施加到所述多字节存储单元的漏极,对所述多字节存储单元执行编程操作。
优选地,所述编程指令包括编程数据,所述存储器上设有第一接口,所述外部电源转接板上设有第二接口,所述第一接口和所述第二接口相连接,
所述存储器向所述外部电源转接板发送针对所述编程指令生成的编程使能信号的步骤包括:
所述存储器获取所述编程数据的字节数,并根据预先设置的字节数与漏极编程电压强度的映射关系确定与所述字节数对应的漏极编程电压强度,将所述漏极编程电压强度确定为对所述存储器进行编程操作所需的漏极编程电压强度;
所述存储器生成包括所述漏极编程电压强度的编程使能信号,并通过所述第一接口和所述第二接口向所述外部电源转接板发送所述编程使能信号。
优选地,所述外部电源转接板的输出电压包括多个级别强度的编程电压,每个级别强度的编程电压分别具有自身对应的开关,
所述外部电源转接板提供的编程电压通过如下方式输出:
所述外部电源转接板确定所述漏极编程电压强度所对应级别强度的编程电压,并开启所述级别强度的编程电压所对应的开关,将所述级别强度的编程电压输出至所述存储器。
优选地,所述编程指令中包括编程起始地址和编程数据,
所述确定所述编程指令对应的,需要被执行编程操作的多字节存储单元的步骤包括:
所述存储器将所述编程起始地址对应的存储单元确定为当前存储单元,将所述编程数据的第一个比特确定为当前比特;
所述存储器将当前存储单元的数据与当前比特的数据进行比对;
如果所述当前存储单元的数据为逻辑1,所述当前比特的数据为逻辑0,则所述存储器确定所述当前存储单元为需要被执行编程操作的存储单元;
将下一个存储单元确定为当前存储单元,将下一个比特确定为当前比特,并返回所述将当前存储单元的数据与当前比特的数据进行比对的步骤,直至所述编程数据的所有比特全部比对完为止。
根据本发明的另一方面,还公开了一种存储器编程系统,其特征在于,所述存储器外接有预先设置的外部电源转接板,所述存储器包括内部电荷泵和多个存储单元,所述内部电荷泵的输入电压为电源电压,
所述系统包括:
确定模块,用于在接收到编程指令后,确定所述编程指令对应的,需要被执行编程操作的多字节存储单元;
比较模块,用于将所述电源电压与预设的内部电压进行比较;
第一选取模块,用于在所述预设的内部电压阈值小于或等于所述电源电压时,选取所述内部电荷泵提供编程电压,对所述多字节存储单元执行编程操作;
第二选取模块,用于在所述预设的内部电压阈值大于所述电源电压时,选取所述外部电源转接板提供编程电压,对所述多字节存储单元执行编程操作。
优选地,所述第二选取模块包括:
发送子模块,用于向所述外部电源转接板发送针对所述编程指令生成的编程使能信号;
接收子模块,用于接收所述外部电源转接板在接收到所述编程使能信号之后输出的,与所述编程使能信号相对应的编程电压;
编程子模块,用于将所述编程电压施加到所述多字节存储单元的漏极,对所述多字节存储单元执行编程操作。
优选地,所述编程指令包括编程数据,所述存储器上设有第一接口,所述外部电源转接板上设有第二接口,所述第一接口和所述第二接口相连接,
所述发送子模块包括:
确定子单元,用于获取所述编程数据的字节数,并根据预先设置的字节数与漏极编程电压强度的映射关系确定与所述字节数对应的漏极编程电压强度,将所述漏极编程电压强度确定为对所述存储器进行编程操作所需的漏极编程电压强度;
发送子单元,具体用于生成包括所述漏极编程电压强度的编程使能信号,并通过所述第一接口和所述第二接口向所述外部电源转接板发送所述编程使能信号。
优选地,所述外部电源转接板的输出电压包括多个级别强度的编程电压,每个级别强度的编程电压分别具有自身对应的开关,
所述外部电源转接板提供的编程电压通过如下方式输出:
所述外部电源转接板确定所述漏极编程电压强度所对应级别强度的编程电压,并开启所述级别强度的编程电压所对应的开关,将所述级别强度的编程电压输出至所述存储器。
优选地,所述编程指令中包括编程起始地址和编程数据,
所述确定模块包括:
第一确定子模块,用于将所述编程起始地址对应的存储单元确定为当前存储单元,将所述编程数据的第一个比特确定为当前比特;
比对子模块,用于将当前存储单元的数据与当前比特的数据进行比对;
第二确定子模块,用于在所述当前存储单元的数据为逻辑1,所述当前比特的数据为逻辑0时,确定所述当前存储单元为需要被执行编程操作的存储单元;
第三确定子模块,用于将下一个存储单元确定为当前存储单元,将下一个比特确定为当前比特,并调用所述比对子单元,直至所述编程数据的所有比特全部比对完为止。
与现有技术相比,本发明包括以下优点:
本发明中的存储器可以包括内部电荷泵,该内部电荷泵的输入电压为电源电压,还可以预先设置一外部电源转接板,然后将该外部电源转接板外接于存储器上,当存储器在接收到编程指令后,可以将所述电源电压与预设的内部电压阈值进行比较,如果内部电压阈值小于或等于电源电压,则存储器选取内部电荷泵提供编程电压;如果预设的内部电压阈值大于电源电压,则存储器选取外部电源转接板提供编程电压。本发明中可以根据电源电压的不同,选择不同的电源提供编程电压,因此,当进行多字节同时编程而需要较高强度的编程电压时,可以通过外部电源转接板提供存储器所需的编程电压,由于外部电源转接板外接于存储器,因此不会增加存储器的面积,存储器成本较低,也不会影响存储器内其他器件的使用,并且所述外部电源转接板的使用更加灵活。
附图说明
图1是本发明实施例一的一种存储器编程方法的流程图;
图2是本发明实施例二的一种存储器编程方法的流程图;
图3是本发明实施例三的一种存储器编程系统的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
现有技术中,为了实现多字节同时编程,提高编程效率,通常是通过增加存储器内部的电荷泵中电容和二极管数量,以提高电荷泵提供电流的能力,但是,该种方式将会占用更大的存储器面积,从而增加存储器的成本。针对上述问题,本发明提出了一种存储器编程方法和系统,预先设置外部电源转接板,并将该外部电源转接板外接于存储器,并且所述存储器内部还设置有内部电荷泵,所述内部电荷泵的输入电压为电源电压,当存储器需要强度较低的编程电压时,可以通过内部电荷泵提供,当存储器需要强度较高的编程电压时,可以通过外部电源转接板提供,从而避免了增加存储器面积、提高成本的问题。
下面,通过以下各个实施例分别对本发明的存储器编程方法和系统进行详细介绍。本发明中,所述存储器可以为非易失性存储器,例如可以为EEPROM(ElectricallyErasable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存(FlashMemory)等,当然所述存储器还可以为其他类型的存储器,本发明对此并不加以限制。
实施例一:
参照图1,示出了本发明实施例一的一种存储器编程方法的流程图,该方法具体可以包括以下步骤:
步骤101,所述存储器在接收到编程指令后,确定所述编程指令对应的,需要被执行编程操作的多字节存储单元。
本发明实施例中,所述存储器内部可以包括多个存储单元,对存储器的编程和擦除操作,即是指对所述存储器内部的存储单元进行编程和擦除操作。因此,所述存储器在接收到编程指令(例如“02H”、“F2H”等)后,首先可以确定所述编程指令对应的,需要被执行编程操作的多字节存储单元,即确定针对所述编程指令,需要对存储器内部的哪些存储单元进行编程操作。
步骤102,所述存储器将所述电源电压与预设的内部电压阈值进行比较。
所述存储器在接收到所述编程指令后,还可以将电源电压与预设的内部电压阈值进行比较,从而根据比较结果确定需要存储器的内部电荷泵提供编程电压,还是需要外接的外部电源转接板提供编程电压。其中,所述电源电压为内部电荷泵的输入电压,对于不同的存储器系统,内部电荷泵的输入的电源电压可能不同;所述内部电压阈值可以根据存储器系统的实际情况进行相关设定,对于不同的存储器系统,所设定的内部电压阈值可能不同,本发明实施例对此并不加以限制。
如果比较结果为所述预设的内部电压阈值小于或等于所述电源电压,则执行步骤103,如果比较结果为所述预设的内部电压阈值大于所述电源电压,则执行步骤104。
步骤103,所述存储器选取所述内部电荷泵提供编程电压,对所述多字节存储单元执行编程操作。
如果上述步骤102中的比较结果为所述预设的内部电压阈值小于或等于所述电源电压,则说明所述存储器的内部电荷泵可以提供对存储器进行编程操作所需强度的漏极编程电压,因此此时选择所述内部电荷泵提供编程电压即可,利用该内部电荷泵提供的编程电压对所述多字节存储单元执行编程操作,而无需通过外部电源转接板提供编程电压,不需要再与外部电源转接板进行通信,过程较为简单。
步骤104,所述存储器选取所述外部电源转接板提供编程电压,对所述多字节存储单元执行编程操作。
如果上述步骤102中的比较结果为所述预设的内部电压阈值大于所述电源电压,则说明所述存储器的内部电荷泵无法提供对存储器进行编程操作所需强度的漏极编程电压,因此此时可以选择所述外部电源转接板提供编程电压,利用该外部电源转接板提供的编程电压对所述多字节存储单元执行编程操作,而无需增大存储器内部电荷泵的能量,即无需对存储器的内部电荷泵进行改进,因此也不会造成占用更大的存储器面积的问题。
本发明实施例中可以根据所电源电压的不同,选择不同的电源提供编程电压,因此,当进行多字节同时编程而需要较高强度的编程电压时,可以通过外部电源转接板提供存储器所需的编程电压,由于外部电源转接板外接于存储器,因此不会增加存储器的面积,存储器成本较低,也不会影响存储器内其他器件的使用,并且所述外部电源转接板的使用更加灵活。
实施例二:
参照图2,示出了本发明实施例二的一种存储器编程方法的流程图,该方法具体可以包括以下步骤:
步骤201,所述存储器在接收到编程指令后,确定所述编程指令对应的,需要被执行编程操作的多字节存储单元。
本发明实施例中,所述存储器内部可以包括内部电荷泵,所述内部电荷泵的输入电压为电源电压,所述存储器内部还可以包括多个存储单元,对存储器的编程和擦除操作,即是指对所述存储器内部的存储单元进行编程和擦除操作。以非易失性存储器为例,所述非易失性存储器内部包括存储单元阵列,其中一个存储单元通常是一个拥有可存储电荷的浮栅器件,相比一般的MOS管(MOS管是金属(metal)-氧化物(oxid)-半导体(semiconductor)场效应晶体管),它除了拥有一个源极(source),一个漏极(drain),一个栅极(gate)之外,还额外拥有一个可存储电荷的浮动栅极(floating gate)。
对存储器进行擦除操作的目的就是将存储单元由编程(program)状态擦除为擦除(erase)状态,也即将存储单元中的数据由逻辑0擦除到逻辑1,具体是通过在存储单元的栅极和衬底施加擦除电压来实现的。对存储器进行编程操作的目的就是将存储单元由擦除(erase)状态编程为编程(program)状态,将存储单元中的数据由逻辑1编程到逻辑0,具体是通过在存储单元的栅极和漏极施加编程电压来实现的。
所述存储器在接收到编程指令后,首先可以确定所述编程指令对应的,需要被执行编程操作的多字节存储单元,即确定针对所述编程指令,需要对存储器内部的哪些存储单元进行编程操作。在本发明的一种优选实施例中,所述存储器内部的一个存储单元可以对应一个比特(bit),因此所述多字节存储单元即为多个存储单元。当然,一个存储单元还可以对应多个比特,本发明实施例对此并不加以限制,在本发明中均以一个存储单元对应一个比特为例进行说明。
在本发明的一种优选实施例中,所述编程指令中可以包括编程起始地址和编程数据,该步骤201可以包括以下子步骤:
子步骤a1,所述存储器将所述编程起始地址对应的存储单元确定为当前存储单元,将所述编程数据的第一个比特确定为当前比特;
子步骤a2,所述存储器将当前存储单元的数据与当前比特的数据进行比对;
子步骤a3,如果所述当前存储单元的数据为逻辑1,所述当前比特的数据为逻辑0,则所述存储器确定所述当前存储单元为需要被执行编程操作的存储单元;
子步骤a4,将下一个存储单元确定为当前存储单元,将下一个比特确定为当前比特,并返回所述子步骤a2,直至所述编程数据的所有比特全部比对完为止。
需要说明的是,本发明实施例中,在对存储器进行编程操作之前,首先要对所述编程指令对应的存储单元进行擦除操作,也即将所述编程指令对应的存储单元的数据均擦除到逻辑1,对于擦除操作的具体过程,本发明实施例在此不再详细论述。因此,在对所述编程指令对应的存储单元进行编程操作之前,这些存储单元的数据均为逻辑1,其中所述编程指令对应的存储单元表示从所述编程起始地址对应的存储单元开始,与所述编程数据的比特数相同个数的存储单元。
对于编程数据中的每一个比特的数据,其可能是逻辑0,也可能是逻辑1,对所述存储器进行编程操作即为将所述编程数据存入所述编程指令对应的存储单元中,即将所述编程数据的每一个比特的数据存储至与该比特对应的存储单元中。而由于在编程操作前这些存储单元中的数据均为逻辑1,因此如果要写入该存储单元的对应比特的数据本身为逻辑1,则此时可以不对该存储单元进行编程操作。
因此,可以通过上述子步骤a1~子步骤a4确定所述编程指令对应的存储单元中,需要被执行编程操作的多字节存储单元(即多个存储单元),在后续的编程过程中,仅对这些存储单元进行编程操作即可。
在本发明的一种优选实施例中,所述存储器内部还可以包括SRAM(StaticRandom-Access Memory,静态随机存储器),因此,所述存储器在接收到编程指令后,执行所述确定所述编程指令对应的,需要被执行编程操作的多字节存储单元的步骤之前,还可以将所述编程数据存储至所述SRAM,因此在上述的描述中所述当前存储单元的数据即为所述存储器从所述当前存储单元读出的数据,所述当前比特的数据为所述存储器从所述SRAM读出的数据。所述SRAM中也可以包括存储单元阵列,因此将所述编程数据存储至所述SRAM,可以为将所述编程数据中的每一个比特的数据按照顺序存储至所述SRAM中的一个存储单元中,因此即可将从该SRAM的存储单元中读出的数据与从存储器对应的存储单元中读出的数据进行比对。
步骤202,所述存储器将所述电源电压与预设的内部电压阈值进行比较。
本发明实施例中,所述存储器可以根据电源电压的不同选择不同的电源,因此,可以将所述电源电压与预设的内部电压阈值进行比较,如果比较结果为所述预设的内部电压阈值小于或等于所述电源电压,则执行步骤203,如果比较结果为所述预设的内部电压阈值大于所述电源电压,则执行步骤204。
步骤203,所述存储器选取所述外部电源转接板提供编程电压,对所述多字节存储单元执行编程操作。
如果上述步骤202中的比较结果为所述预设的内部电压阈值大于所述电源电压,则说明所述存储器的内部电荷泵无法提供对存储器进行编程操作所需强度的漏极编程电压,因此此时可以选择所述外部电源转接板提供编程电压。
在本发明的一种优选实施例中,该步骤203可以包括以下子步骤:
子步骤2031,所述存储器向所述外部电源转接板发送针对所述编程指令生成的编程使能信号。
本发明实施例中,由于采用通过外接于所述存储器的外部电源转接板提供给所述存储器所需的编程电压,因此,所述存储器在接收到编程指令之后,还可以向所述外部电源转接板发送针对所述编程指令生成的编程使能信号,以通知所述外部电源转接板需要为所述存储器输出编程电压。
为了实现外部电源转接板与存储器的通信,在本发明的一种优选实施例中,可以预先在存储器上设置第一接口,并在所述外部电源转接板上设置第二接口,并将所述第一接口和所述第二接口相连接,因此,外部电源转接板和存储器即可通过上述第一接口和第二接口进行通信。
因此,该子步骤2031可以包括:
(1)所述存储器获取所述编程数据的字节数,并根据预先设置的字节数与漏极编程电压强度的映射关系确定与所述字节数对应的漏极编程电压强度,将所述漏极编程电压强度确定为对所述存储器进行编程操作所需的漏极编程电压强度;
(2)所述存储器生成包括所述漏极编程电压强度的编程使能信号,并通过所述第一接口和所述第二接口向所述外部电源转接板发送所述编程使能信号。
由于对所述存储单元进行编程操作是通过在存储单元的栅极和漏极施加编程电压来实现的,而需要同时进行编程的字节数越多,所需要施加在漏极的编程电压的强度也就越大。因此,本发明实施例中,可以预先设置字节数与漏极编程电压强度的映射关系,根据所述映射关系即可获知当前编程数据的字节数所对应的漏极编程电压强度是多少,该漏极编程电压强度即为对所述存储器进行编程操作所需的漏极编程电压强度,也即此时需要所述外部电源转接板输出的编程电压是多少。在确定上述漏极编程电压强度之后,即可生成包括所述漏极编程电压强度的编程使能信号,并通过所述第一接口和所述第二接口向所述外部电源转接板发送所述编程使能信号。
子步骤2032,所述存储器接收所述外部电源转接板在接收到所述编程使能信号之后输出的,与所述编程使能信号相对应的编程电压。
外部电源转接板在接收到所述编程使能信号之后,即可获知所述存储器当前所需的编程电压强度为所述编程使能信号中所包括的漏极编程电压强度所对应的强度,因此外部电源转接板即可选择输出对应强度的编程电压至存储器。
在本发明的一种优选实施例中,所述外部电源转接板的输出电压可以包括多个级别强度的编程电压,每个级别强度的编程电压分别具有自身对应的开关,通过开关的开启和关闭即可选择对应级别强度的编程电压输出,即如果开启某一级别强度的编程电压对应的开关,则外部电源转接板将输出该级别强度的编程电压,如果关闭某一级别强度的编程电压对应的开关,则外部电源转接板将不能输出该级别强度的编程电压。所述外部电源转接板的组成可以和电荷泵类似,包括多个二极管和多个电容等,可以根据所述存储器中预置的字节数与漏极编程电压强度的映射关系,对所述外部电源转接板的电路进行设置,以确保外部电源转接板可以输出与各个字节对应的漏极编程电压强度对应级别强度的编程电压,例如,可以通过设置电容的容量、二极管的阈值电压等方式设置各个级别所输出的编程电压的强度,对于具体的设置过程,本年领域技术人员根据实际经验进行相关处理即可,本发明实施例在此不再详细论述。
本发明实施例中,外部电源转接板在接收到编程使能信号之后,可以通过如下方式输出对应的编程电压:所述外部电源转接板确定所述漏极编程电压强度所对应级别强度的编程电压,并开启所述级别强度的编程电压所对应的开关,将所述级别强度的编程电压输出至所述存储器。由于可以根据字节数与漏极编程电压强度的映射关系,设置外部电源转接板中各个级别强度的编程电压,因此可以设置所述外部电源转接板的输出电压分别为与所述漏极编程电压强度相等的各个级别强度的编程电压,则所述外部电源转接板所确定的所述漏极编程电压强度所对应级别强度的编程电压,即为与所述漏极编程电压强度相等级别强度的编程电压。当然,本发明实施例中,如果所述外部电源转接板的输出电压中没有与所述漏极编程电压强度相等级别强度的编程电压,则为了节省资源,也可以选择大于所述漏极编程电压强度、并且与所述漏极编程电压强度最接近的级别强度的编程电压。
由于外部电源转接板要将编程电压输出至存储器,因此,在所述外部电源转接板上还可以设置电压输出接口,对应的在所述存储器上还可以设置电压输入接口,所述外部电源转接板即可通过所述电压输出接口和所述电压输入接口将所述编程电压输出至所述存储器。
子步骤2033,所述存储器将所述编程电压施加到所述多字节存储单元的漏极,对所述多字节存储单元执行编程操作。
对存储单元进行编程操作时,要在存储单元的漏极施加编程电压,本发明实施例中所述外部电源转接板所输出的电压即为要施加到存储单元漏极的编程电压。因此,所述存储器接收到所述外部电源转接板在接收到所述编程使能信号之后输出的,与所述编程使能信号相对应的编程电压之后,还可以将所述编程电压施加到所述多字节存储单元的漏极,对所述多字节存储单元执行编程操作。
在本发明的一种优选实施例中,所述存储器内的存储单元的漏极可以均连接到上述存储器中接收所述编程电压的电压输入接口,并且可以设置每个存储单元的漏极都连接一个开关,通过控制所述开关的开启和关闭,可以控制是否在存储单元的漏极施加编程电压,即如果将与某个存储单元的漏极相连接的开关开启,则可以在该存储单元的漏极施加上述外部电源转接板输出的编程电压,反之,不能在该存储单元的漏极施加上述外部电源转接板输出的编程电压。
因此,该子步骤2033可以通过以下方式实现:将与所述多字节存储单元(即多个存储单元)的漏极相连接的开关开启,将所述编程电压施加到所述多字节存储单元的漏极,对所述多字节存储单元执行编程操作。
需要说明的是,在对存储单元进行编程操作时,还要在存储单元的栅极施加编程电压,该编程电压可以通过存储器内部提供,随着具体工艺的不同电压值也不同,对于具体实现方式,本领域技术人员根据实际经验进行相关处理即可,本发明实施例不再详细论述。
对所述多字节存储单元编程完成之后,即可将所述编程数据存入所述存储器中的从所述编程起始地址开始的、与所述编程数据的比特数相同个数的存储单元中。
步骤204,所述存储器选取所述内部电荷泵提供编程电压,对所述多字节存储单元执行编程操作。
如果上述步骤202中的比较结果为所述预设的内部电压阈值小于或等于所述电源电压,则说明所述存储器的内部电荷泵可以提供对存储器进行编程操作所需强度的漏极编程电压,因此此时可以选择所述内部电荷泵提供编程电压。
在本发明的一种优选实施例中,该步骤204可以包括以下子步骤:
子步骤b1,所述存储器向所述内部电荷泵发送针对所述编程指令生成的编程使能信号;
与上述子步骤2031类似,在该子步骤中,存储器可以向所述内部电荷泵发送针对所述编程指令生成的编程使能信号,以通知所述内部电荷泵需要输出编程电压强度。本发明实施例中,该子步骤b1可以包括:所述存储器获取所述编程数据的字节数,并根据预先设置的字节数与漏极编程电压强度的映射关系确定与所述字节数对应的漏极编程电压强度,将所述漏极编程电压强度确定为对所述存储器进行编程操作所需的漏极编程电压强度;所述存储器生成包括所述漏极编程电压强度的编程使能信号,并向所述内部电荷泵发送所述编程使能信号。
子步骤b2,所述存储器接收所述内部电荷泵在接收到所述编程使能信号之后输出的,与所述编程使能信号相对应的编程电压;
内部电荷泵在接收到所述编程使能信号之后,即可获知所述存储器当前所需的编程电压强度为所述编程使能信号中所包括的漏极编程电压强度,因此内部电荷泵即可选择输出对应强度的编程电压至存储器。该子步骤b2与上述子步骤2032类似,具体参照上述的相关描述即可,本发明实施例在此不再详细论述。
子步骤b3,所述存储器将所述编程电压施加到所述多字节存储单元的漏极,对所述多字节存储单元执行编程操作。
所述存储器在接收到所述内部电荷泵输出的编程电压后,即可将所述编程电压施加到所述多字节存储单元的漏极,对所述多字节存储单元执行编程操作,从而将所述编程数据存入所述存储器中的从所述编程起始地址开始的、与所述编程数据的比特数相同个数的存储单元中。该子步骤b3与上述子步骤2033类似,具体参照上述的相关描述即可,本发明实施例在此不再详细论述。
本发明实施例所述的存储器编程方法中,可以根据电源电压的不同,选择不同的电源提供编程电压,因此,当进行多字节同时编程而需要较高强度的编程电压时,可以通过外部电源转接板提供存储器所需的编程电压,由于外部电源转接板外接于存储器,因此不会增加存储器的面积,存储器成本较低,也不会影响存储器内其他器件的使用,并且所述外部电源转接板的使用更加灵活。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
实施例三:
参照图3,示出了本发明实施例三的一种存储器编程系统的结构框图,其中,所述存储器外接有预先设置的外部电源转接板,所述存储器包括内部电荷泵和多个存储单元,所述内部电荷泵的输入电压为电源电压,该系统具体可以包括以下模块:
确定模块301,用于在接收到编程指令后,确定所述编程指令对应的,需要被执行编程操作的多字节存储单元;
比较模块302,用于将所述电源电压与预设的内部电压进行比较;
第一选取模块303,用于在所述预设的内部电压阈值小于或等于所述电源电压时,选取所述内部电荷泵提供所述编程电压,对所述多字节存储单元执行编程操作;
第二选取模块304,用于在所述预设的内部电压阈值大于所述电源电压时,选取所述外部电源转接板提供所述编程电压,对所述多字节存储单元执行编程操作。
在本发明的一种优选实施例中,所述编程指令可以包括编程起始地址和编程数据,所述存储器上设有第一接口,所述外部电源转接板上设有第二接口,所述第一接口和所述第二接口相连接。
其中,所述确定模块可以包括以下子模块:
第一确定子模块,用于将所述编程起始地址对应的存储单元确定为当前存储单元,将所述编程数据的第一个比特确定为当前比特;
比对子模块,用于将当前存储单元的数据与当前比特的数据进行比对;
第二确定子模块,用于在所述当前存储单元的数据为逻辑1,所述当前比特的数据为逻辑0时,确定所述当前存储单元为需要被执行编程操作的存储单元;
第三确定子模块,用于将下一个存储单元确定为当前存储单元,将下一个比特确定为当前比特,并调用所述比对子单元,直至所述编程数据的所有比特全部比对完为止。
所述第二选取模块可以包括以下子模块:
发送子模块,用于向所述外部电源转接板发送针对所述编程指令生成的编程使能信号;
接收子模块,用于接收所述外部电源转接板在接收到所述编程使能信号之后输出的,与所述编程使能信号相对应的编程电压;
编程子模块,用于将所述编程电压施加到所述多字节存储单元的漏极,对所述多字节存储单元执行编程操作。
其中,所述发送子模块可以包括以下子单元:
确定子单元,用于获取所述编程数据的字节数,并根据预先设置的字节数与漏极编程电压强度的映射关系确定与所述字节数对应的漏极编程电压强度,将所述漏极编程电压强度确定为对所述存储器进行编程操作所需的漏极编程电压强度;
发送子单元,具体用于生成包括所述漏极编程电压强度的编程使能信号,并通过所述第一接口和所述第二接口向所述外部电源转接板发送所述编程使能信号。
在本发明的一种优选实施例中,所述外部电源转接板的输出电压可以包括多个级别强度的编程电压,每个级别强度的编程电压分别具有自身对应的开关,所述外部电源转接板提供的编程电压可以通过如下方式输出:所述外部电源转接板确定所述漏极编程电压强度所对应级别强度的编程电压,并开启所述级别强度的编程电压所对应的开关,将所述级别强度的编程电压输出至所述存储器。
所述存储器还可以包括SRAM,所述系统还可以包括:存储模块,用于在所述确定模块确定所述编程指令对应的,需要被执行编程操作的多字节存储单元之前,将所述编程数据存储至所述SRAM。因此,所述当前存储单元的数据可以为所述存储器从所述当前存储单元读出的数据,所述当前比特的数据可以为所述存储器从所述SRAM读出的数据。
最后,需要说明的是,上述各个模块均可以为存储器内的模块。
本发明实施例中存储器可以包括内部电荷泵,该内部电荷泵的输入电压为电源电压,还可以预先设置一外部电源转接板,然后将该外部电源转接板外接于存储器上,当存储器在接收到编程指令后,可以将所述电源电压与预设的内部电压阈值进行比较,如果内部电压阈值小于或等于电源电压,则存储器选取内部电荷泵提供编程电压;如果预设的内部电压阈值大于电源电压,则存储器选取外部电源转接板提供编程电压。本发明中可以根据电源电压的不同,选择不同的电源提供编程电压,因此,当进行多字节同时编程而需要较高强度的编程电压时,可以通过外部电源转接板提供存储器所需的编程电压,由于外部电源转接板外接于存储器,因此不会增加存储器的面积,存储器成本较低,也不会影响存储器内其他器件的使用,并且所述外部电源转接板的使用更加灵活。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种存储器编程方法和系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种存储器编程方法,其特征在于,所述存储器外接有预先设置的外部电源转接板,所述存储器包括内部电荷泵和多个存储单元,所述内部电荷泵的输入电压为电源电压,
所述方法包括:
所述存储器在接收到编程指令后,确定所述编程指令对应的,需要被执行编程操作的多字节存储单元;
所述存储器将所述电源电压与预设的内部电压阈值进行比较;
如果所述预设的内部电压阈值小于或等于所述电源电压,则所述存储器选取所述内部电荷泵提供编程电压,对所述多字节存储单元执行编程操作;
如果所述预设的内部电压阈值大于所述电源电压,则所述存储器选取所述外部电源转接板提供编程电压,对所述多字节存储单元执行编程操作;
所述存储器选取所述外部电源转接板提供编程电压,对所述多字节存储单元执行编程操作的步骤包括:
所述存储器向所述外部电源转接板发送针对所述编程指令生成的编程使能信号;
所述存储器接收所述外部电源转接板在接收到所述编程使能信号之后输出的,与所述编程使能信号相对应的编程电压;
所述存储器将所述编程电压施加到所述多字节存储单元的漏极,对所述多字节存储单元执行编程操作。
2.根据权利要求1所述的方法,其特征在于,所述编程指令包括编程数据,所述存储器上设有第一接口,所述外部电源转接板上设有第二接口,所述第一接口和所述第二接口相连接,
所述存储器向所述外部电源转接板发送针对所述编程指令生成的编程使能信号的步骤包括:
所述存储器获取所述编程数据的字节数,并根据预先设置的字节数与漏极编程电压强度的映射关系确定与所述字节数对应的漏极编程电压强度,将所述漏极编程电压强度确定为对所述存储器进行编程操作所需的漏极编程电压强度;
所述存储器生成包括所述漏极编程电压强度的编程使能信号,并通过所述第一接口和所述第二接口向所述外部电源转接板发送所述编程使能信号。
3.根据权利要求2所述的方法,其特征在于,所述外部电源转接板的输出电压包括多个级别强度的编程电压,每个级别强度的编程电压分别具有自身对应的开关,
所述外部电源转接板提供的编程电压通过如下方式输出:
所述外部电源转接板确定所述漏极编程电压强度所对应级别强度的编程电压,并开启所述级别强度的编程电压所对应的开关,将所述级别强度的编程电压输出至所述存储器。
4.根据权利要求1所述的方法,其特征在于,所述编程指令中包括编程起始地址和编程数据,
所述确定所述编程指令对应的,需要被执行编程操作的多字节存储单元的步骤包括:
所述存储器将所述编程起始地址对应的存储单元确定为当前存储单元,将所述编程数据的第一个比特确定为当前比特;
所述存储器将当前存储单元的数据与当前比特的数据进行比对;
如果所述当前存储单元的数据为逻辑1,所述当前比特的数据为逻辑0,则所述存储器确定所述当前存储单元为需要被执行编程操作的存储单元;
将下一个存储单元确定为当前存储单元,将下一个比特确定为当前比特,并返回所述将当前存储单元的数据与当前比特的数据进行比对的步骤,直至所述编程数据的所有比特全部比对完为止。
5.一种存储器编程系统,其特征在于,所述存储器外接有预先设置的外部电源转接板,所述存储器包括内部电荷泵和多个存储单元,所述内部电荷泵的输入电压为电源电压,
所述系统包括:
确定模块,用于在接收到编程指令后,确定所述编程指令对应的,需要被执行编程操作的多字节存储单元;
比较模块,用于将所述电源电压与预设的内部电压进行比较;
第一选取模块,用于在所述预设的内部电压阈值小于或等于所述电源电压时,选取所述内部电荷泵提供编程电压,对所述多字节存储单元执行编程操作;
第二选取模块,用于在所述预设的内部电压阈值大于所述电源电压时,选取所述外部电源转接板提供编程电压,对所述多字节存储单元执行编程操作;
所述第二选取模块包括:
发送子模块,用于向所述外部电源转接板发送针对所述编程指令生成的编程使能信号;
接收子模块,用于接收所述外部电源转接板在接收到所述编程使能信号之后输出的,与所述编程使能信号相对应的编程电压;
编程子模块,用于将所述编程电压施加到所述多字节存储单元的漏极,对所述多字节存储单元执行编程操作。
6.根据权利要求5所述的系统,其特征在于,所述编程指令包括编程数据,所述存储器上设有第一接口,所述外部电源转接板上设有第二接口,所述第一接口和所述第二接口相连接,
所述发送子模块包括:
确定子单元,用于获取所述编程数据的字节数,并根据预先设置的字节数与漏极编程电压强度的映射关系确定与所述字节数对应的漏极编程电压强度,将所述漏极编程电压强度确定为对所述存储器进行编程操作所需的漏极编程电压强度;
发送子单元,具体用于生成包括所述漏极编程电压强度的编程使能信号,并通过所述第一接口和所述第二接口向所述外部电源转接板发送所述编程使能信号。
7.根据权利要求6所述的系统,其特征在于,所述外部电源转接板的输出电压包括多个级别强度的编程电压,每个级别强度的编程电压分别具有自身对应的开关,
所述外部电源转接板提供的编程电压通过如下方式输出:
所述外部电源转接板确定所述漏极编程电压强度所对应级别强度的编程电压,并开启所述级别强度的编程电压所对应的开关,将所述级别强度的编程电压输出至所述存储器。
8.根据权利要求5所述的系统,其特征在于,所述编程指令中包括编程起始地址和编程数据,
所述确定模块包括:
第一确定子模块,用于将所述编程起始地址对应的存储单元确定为当前存储单元,将所述编程数据的第一个比特确定为当前比特;
比对子模块,用于将当前存储单元的数据与当前比特的数据进行比对;
第二确定子模块,用于在所述当前存储单元的数据为逻辑1,所述当前比特的数据为逻辑0时,确定所述当前存储单元为需要被执行编程操作的存储单元;
第三确定子模块,用于将下一个存储单元确定为当前存储单元,将下一个比特确定为当前比特,并调用所述比对子模块,直至所述编程数据的所有比特全部比对完为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410128899.5A CN104979005B (zh) | 2014-04-01 | 2014-04-01 | 一种存储器编程方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410128899.5A CN104979005B (zh) | 2014-04-01 | 2014-04-01 | 一种存储器编程方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104979005A CN104979005A (zh) | 2015-10-14 |
CN104979005B true CN104979005B (zh) | 2019-05-31 |
Family
ID=54275447
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410128899.5A Active CN104979005B (zh) | 2014-04-01 | 2014-04-01 | 一种存储器编程方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104979005B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109427399A (zh) * | 2017-08-31 | 2019-03-05 | 北京兆易创新科技股份有限公司 | 一种NOR Flash的编程方法和编程装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6005819A (en) * | 1998-02-10 | 1999-12-21 | Samsung Electronics Co., Ltd. | Demand-anticipating power control circuits for integrated circuit devices and methods of operation thereof |
US6418059B1 (en) * | 2000-06-26 | 2002-07-09 | Intel Corporation | Method and apparatus for non-volatile memory bit sequence program controller |
CN102651237A (zh) * | 2011-02-28 | 2012-08-29 | 三星电子株式会社 | 非易失性存储器件、包括其的存储器系统及其操作方法 |
CN102750981A (zh) * | 2011-04-20 | 2012-10-24 | 拉碧斯半导体株式会社 | 半导体存储器的内部电源电压生成电路及生成方法 |
-
2014
- 2014-04-01 CN CN201410128899.5A patent/CN104979005B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6005819A (en) * | 1998-02-10 | 1999-12-21 | Samsung Electronics Co., Ltd. | Demand-anticipating power control circuits for integrated circuit devices and methods of operation thereof |
US6418059B1 (en) * | 2000-06-26 | 2002-07-09 | Intel Corporation | Method and apparatus for non-volatile memory bit sequence program controller |
CN102651237A (zh) * | 2011-02-28 | 2012-08-29 | 三星电子株式会社 | 非易失性存储器件、包括其的存储器系统及其操作方法 |
CN102750981A (zh) * | 2011-04-20 | 2012-10-24 | 拉碧斯半导体株式会社 | 半导体存储器的内部电源电压生成电路及生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104979005A (zh) | 2015-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103903647B (zh) | 具有多个外部电源的非易失性半导体存储器 | |
JP4047375B2 (ja) | フラッシュeepromメモリの逐次プログラミング | |
CN101821812B (zh) | 存储器装置编程窗口调整 | |
CN103489479B (zh) | 半导体存储器件及其操作方法 | |
CN110400588A (zh) | 存储器装置以及该存储器装置的操作方法 | |
CN102800362B (zh) | 非易失存储器的过擦除处理方法和处理系统 | |
KR980005031A (ko) | 비휘발성 반도체 메모리에서 프로그램된 메모리 셀의 임께 전압이 협소 분포를 갖도록 하는 프로그래밍 방법 | |
CN102420013A (zh) | 半导体存储器设备 | |
CN104952485A (zh) | 一种电阻投切电路、存储电路以及耗材芯片 | |
CN102930899A (zh) | 一种非易失存储器的擦除方法及装置 | |
CN106373609A (zh) | 包括半导体存储装置的存储系统及其操作方法 | |
CN109254615A (zh) | 用于数据程序化操作的电源供应器及其电源供应方法 | |
CN101986389B (zh) | 闪存单元、闪存装置及其编程方法 | |
CN106560897B (zh) | 用于非易失性存储装置的感测电路以及非易失性存储装置 | |
CN102005243B (zh) | 差分闪存器件及提高差分闪存器件耐久性的方法 | |
CN103811068A (zh) | 非易失存储器的擦除方法及系统 | |
CN106384605B (zh) | 一种低功耗非易失性电子可编程存储器 | |
CN104979005B (zh) | 一种存储器编程方法和系统 | |
CN103632719B (zh) | 半导体存储器件及其制造方法 | |
CN106816170B (zh) | 电阻式记忆胞的写入方法及电阻式内存 | |
CN104979006B (zh) | 一种存储器编程方法和系统 | |
CN109801651A (zh) | 半导体存储装置以及读出方法 | |
CN107707115A (zh) | 电压控制电路 | |
CN204516363U (zh) | 一种新型NOR Flash译码电路 | |
CN105913875B (zh) | 控制电路、存储装置及操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: Room 101, Floor 1-5, Building 8, Yard 9, Fenghao East Road, Haidian District, Beijing 100094 Patentee after: Zhaoyi Innovation Technology Group Co.,Ltd. Address before: 100083 12 Floors, Block A, Tiangong Building, Science and Technology University, 30 College Road, Haidian District, Beijing Patentee before: GIGADEVICE SEMICONDUCTOR(BEIJING) Inc. |