分组编程方法及其电路
技术领域
本发明涉及半导体存储器领域,尤其涉及一种分组编程方法及其电路。
背景技术
近年来,随着消费类电子产品的迅猛发展,越来越多的便携式数码产品已日益融入了人们的日常生活中,极大地丰富了人们的业余文化生活。其中以数码相机、手机和U盘为代表的相关产品最为实用化和普及化。这些产品以半导体存储器(闪存)作为最基本的数据存储介质。所述半导体存储器在进行编程操作时,需要消耗电荷泵的电流,然而,电荷泵输出电流的能力是有一定限制的,因此当编程数据中包含的有效数据数目较大时,所需的编程时间较长,在有限的电荷泵能力下,编程效率较低。
发明内容
本发明要解决的技术问题是提供一种分组编程方法及其电路,其可以解决当编程数据中包含的高电平数目较大时,所需的编程时间较长,在有限的电荷泵能力下,编程效率较低的问题。
为了解决上述技术问题,本发明的第一方面提供了一种分组编程方法,所述方法包括:对低电平的输入数据进行统计;判断统计结果是否小于等于第一阈值;以及根据判断结果对所述输入数据进行分组编程。
优选地,所述统计过程包括:对所述输入数据的第一部分中的低电平数据进行统计,得到第一统计结果;对所述输入数据的第二部分中的低电平数据进行统计,得到第二统计结果;以及对全部所述输入数据中的低电平数据进行统计,得到第三统计结果,其中,所述输入数据包括且仅包括所述第一部分和所述第二部分,所述第一部分和所述第二部分中的数据容量相等,且相互之间无数据交叉。
优选地,所述判断过程包括:所述第一统计结果小于等于第一阈值时,得到第一判断信号为高电平,否则,得到第一判断信号为低电平;所述第二统计结果小于等于第一阈值时,得到第二判断信号为高电平,否则,得到第二判断信号为低电平;以及所述第三统计结果小于等于第一阈值时,得到第三判断信号为高电平,否则,得到第三判断信号为低电平。
优选地,所述分组编程过程包括:根据所述第一判断信号、所述第二判断信号以及所述第三判断信号对所述输入数据进行分组编程。
优选地,所述第一判断信号为高电平,所述第二判断信号为高电平且所述第三判断信号为高电平时,全部所述输入数据被分配到第一组进行编程。
优选地,所述第一判断信号为高电平,所述第二判断信号为高电平且所述第三判断信号为低电平时,所述输入数据的第一部分被分配到第一组,所述输入数据的第二部分被分配到第二组,所述第一组和所述第二组中的数据同时进行编程。
优选地,所述第一判断信号为高电平,所述第二判断信号为低电平且所述第三判断信号为低电平时,所述输入数据的第一部分被分配到第一组,所述输入数据的第二部分被平均分配到第二组和第三组,所述第一组、所述第二组以及所述第三组中的数据同时进行编程。
优选地,所述第一判断信号为低电平,所述第二判断信号为高电平且所述第三判断信号为低电平时,所述输入数据的第一部分被平均分配到第一组和第二组,所述输入数据的第二部分被分配到第三组,所述第一组、所述第二组以及所述第三组中的数据同时进行编程。
优选地,所述第一判断信号为低电平,所述第二判断信号为低电平且所述第三判断信号为低电平时,所述输入数据的第一部分被平均分配到第一组和第二组,所述输入数据的第二部分被平均分配到第三组和第四组,所述第一组、所述第二组、所述第三组以及所述第四组中的数据同时进行编程。
本发明的第二方面提供了一种分组编程电路,包括:第一模块,所述第一模块用于根据输入数据的第一部分,产生第一判断信号;第二模块,所述第二模块用于根据输入数据的第二部分,产生第二判断信号;第三模块,所述第三模块用于根据全部输入数据,产生第三判断信号;以及分组编程模块,所述分组编程模块用于根据第一判断信号、第二判断信号以及第三判断信号,对全部所述输入数据进行分组编程,其中所述输入数据包括且仅包括所述第一部分和所述第二部分,所述第一部分和所述第二部分中的数据容量相等,且相互之间无数据交叉。
优选地,所述第一模块包括:第一统计模块,所述第一统计模块用于对输入数据的第一部分中的低电平数据进行统计,并得到第一统计结果;以及第一判断模块,所述第一判断模块根据对所述第一统计结果的判断分别得到电平不同的第一判断信号,所述第一统计结果小于等于第一阈值时,所述第一判断模块输出第一判断信号为高电平,否则,所述第一判断模块输出第一判断信号为低电平;所述第二模块包括:第二统计模块,所述第二统计模块用于对输入数据的第二部分中的低电平数据进行统计,并得到第二统计结果;以及第二判断模块,所述第二判断模块根据对所述第二统计结果的判断分别得到电平不同的第二判断信号,所述第二统计结果小于等于第一阈值时,所述第二判断模块输出第二判断信号为高电平,否则,所述第二判断模块输出第二判断信号为低电平;所述第三模块包括:第三统计模块,所述第三统计模块用于对全部的所述输入数据中的低电平数据进行统计,并得到第三统计结果;以及第三判断模块,所述第三判断模块根据对所述第三统计结果的判断分别得到电平不同的第三判断信号,所述第三统计结果小于等于第一阈值时,所述第三判断模块输出第三判断信号为高电平,否则,所述第三判断模块输出第三判断信号为低电平。
优选地,所述第一判断信号为高电平,所述第二判断信号为高电平且所述第三判断信号为高电平时,全部所述输入数据被分配到第一组进行编程。
优选地,所述第一判断信号为高电平,所述第二判断信号为高电平且所述第三判断信号为低电平时,所述输入数据的第一部分被分配到第一组,所述输入数据的第二部分被分配到第二组,所述第一组和所述第二组中的数据同时进行编程。
优选地,所述第一判断信号为高电平,所述第二判断信号为低电平且所述第三判断信号为低电平时,所述输入数据的第一部分被分配到第一组,所述输入数据的第二部分被平均分配到第二组和第三组,所述第一组、所述第二组以及所述第三组中的数据同时进行编程。
优选地,所述第一判断信号为低电平,所述第二判断信号为高电平且所述第三判断信号为低电平时,所述输入数据的第一部分被平均分配到第一组和第二组,所述输入数据的第二部分被分配到第三组,所述第一组、所述第二组以及所述第三组中的数据同时进行编程。
优选地,所述第一判断信号为低电平,所述第二判断信号为低电平且所述第三判断信号为低电平时,所述输入数据的第一部分被平均分配到第一组和第二组,所述输入数据的第二部分被平均分配到第三组和第四组,所述第一组、所述第二组、所述第三组以及所述第四组中的数据同时进行编程。
采用本发明的技术方案后,可以在有限的电荷泵能力下节约编程时间,提高编程效率。
附图说明
通过以下参照附图对发明实施例的描述,本发明的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示出本发明一实施例提供的分组编程电路的示意性框图。
图2示出了对应于图1所示分组编程电路的分组方法对照表。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明实施例的细节描述中,详尽描述了一些特定的细节部分,对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。
在各个附图中,相同的元件采用类似的附图标记来表示。为了清楚起见,附图中的各个部分没有按比例绘制。此外,在图中可能未示出某些公知的部分。附图中的流程图、框图图示了本发明的实施例的系统、方法、电路的可能的体系框架、功能和操作,附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对发明本身的限制。
图1示出本发明一实施例提供的分组编程电路的示意性框图。如图1所示,本发明一实施例提供的分组编程电路主要由四部分构成,分别为:第一模块110、第二模块120、第三模块130以及分组编程模块140。
所述第一模块110包括第一统计模块111和第一判断模块112,所述第一统计模块111接受输入数据PGM_DATA<15:0>的第一部分PGM_DATA<7:0>作为输入信号,所述第一统计模块111对输入数据PGM_DATA<15:0>的第一部分PGM_DATA<7:0>中低电平数据进行检测,并对检测确认为的低电平的数据进行计数统计,得到并输出第一统计结果T1。所述第一判断模块112接收所述第一统计模块111所提供的第一统计结果T1,并将所述第一统计结果T1与第一阈值进行比较。在本实施例中,所述第一阈值为5。当所述第一统计结果T1小于等于5时,所述第一判断模块112输出第一判断信号X5DECT_LB为高电平,否则,所述第一判断模块112输出第一判断信号X5DECT_LB为低电平。
类似地,所述第二模块120包括第二统计模块121和第二判断模块122,所述第二统计模块121接受输入数据PGM_DATA<15:0>的第二部分PGM_DATA<15:8>作为输入信号,所述第二统计模块121对输入数据PGM_DATA<15:0>的第二部分PGM_DATA<15:8>中低电平数据进行检测,并对检测确认为的低电平的数据进行计数统计,得到并输出第二统计结果T2。所述第二判断模块122接收所述第二统计模块121所提供的第二统计结果T2,并将所述第二统计结果T2与第一阈值进行比较。在本实施例中,所述第一阈值为5。当所述第二统计结果T2小于等于5时,所述第二判断模块122输出第二判断信号X5DECT_HB为高电平,否则,所述第二判断模块122输出第二判断信号X5DECT_HB为低电平。
类似地,所述第三模块130包括第三统计模块131和第三判断模块132,所述第三统计模块131接受输入数据PGM_DATA<15:0>作为输入信号,所述第三统计模块131对输入数据PGM_DATA<15:0>中低电平数据进行检测,并对检测确认为的低电平的数据进行计数统计,得到并输出第三统计结果T3。所述第三判断模块132接收所述第三统计模块131所提供的第三统计结果T3,并将所述第三统计结果T3与第一阈值进行比较。在本实施例中,所述第一阈值为5。当所述第三统计结果T3小于等于5时,所述第三判断模块132输出第三判断信号X5DECT_WB为高电平,否则,所述第三判断模块132输出第三判断信号X5DECT_WD为低电平。
所述分组编程模块140接受所述第一判断信号X5DECT_LB、第二判断信号X5DECT_HB以及第三判断信号X5DECT_WD对PGM0、PGM1、PGM2以及PGM3进行分组编程。
需要说明的是,将输入数据PGM_DATA<15:0>的第一部分PGM_DATA<7:0>中的数据平均分为两组得到PGM0和PGM1,所述PGM0对应为PGM_DATA<3:0>,所述PGM1对应为PGM_DATA<7:4>;将输入数据PGM_DATA<15:0>的第二部分PGM_DATA<15:8>中的数据平均分为两组得到PGM2和PGM3,所述PGM2对应为PGM_DATA<11:8>,所述PGM1对应为PGM_DATA<15:12>。
所述分组编程模块140还包括使能端和时钟端,所述使能端用于输入使能信号EN,所述时钟端用于输入时钟脉冲信号CLK,所述使能信号EN有效时,所述分组编程模块140对输入信号PGM0、PGM1、PGM2以及PGM3进行分组编程操作。
当所述使能信号EN有效,且所述时钟脉冲信号CLK由低电平跳变为高电平时,所述分组编程模块140接受所述第一判断信号X5DECT_LB、第二判断信号X5DECT_HB以及第三判断信号X5DECT_WD,并根据所述第一判断信号X5DECT_LB、第二判断信号X5DECT_HB以及第三判断信号X5DECT_WD对PGM0、PGM1、PGM2以及PGM3进行分组编程。
具体分组方法可参考图2,图2示出了对应于图1所示分组编程电路的分组方法对照表。
如图2所示,第一判断信号X5DECT_LB为高电平,第二判断信号X5DECT_HB为高电平且第三判断信号X5DECT_WD为高电平时,将PGM0、PGM1、PGM2以及PGM3分配到第一组进行编程。
第一判断信号X5DECT_LB为高电平,第二判断信号X5DECT_HB为高电平且第三判断信号X5DECT_WD为低电平时,将PGM0以及PGM1分配到第一组,将PGM2以及PGM3分配到第二组,并对第一组和第二组中数据同时进行编程操作。
第一判断信号X5DECT_LB为高电平,第二判断信号X5DECT_HB为低电平且第三判断信号X5DECT_WD为低电平时,将PGM0以及PGM1分配到第一组,将PGM2分配到第二组,将PGM3分配到第三组,并对第一组、第二组以及第三组中数据同时进行编程操作。
第一判断信号X5DECT_LB为低电平,第二判断信号X5DECT_HB为高电平且第三判断信号X5DECT_WD为低电平时,将PGM0分配到第一组,将PGM1分配到第二组,将PGM2以及PGM3分配到第三组,并对第一组、第二组以及第三组中数据同时进行编程操作。
第一判断信号X5DECT_LB为低电平,第二判断信号X5DECT_HB为低电平且第三判断信号X5DECT_WD为低电平时,将PGM0分配到第一组,将PGM1分配到第二组,将PGM2分配到第三组,将PGM3分配到第四组,并对第一组、第二组、第三组以及第四组中数据同时进行编程操作。
当时间脉冲信号CLK由高电平跳变到低电平时,此次分组编程过程结束,待到时间脉冲信号CLK再次由低电平跳变到高电平时,开始下一次分组编程过程。
应当说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
依照本发明的实施例如上文所述,这些实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施例。显然,根据以上描述,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地利用本发明以及在本发明基础上的修改使用。本发明仅受权利要求书及其全部范围和等效物的限制。