一种对多区块同时编程的方法装置、电子设备及存储介质
技术领域
本申请涉及半导体
技术领域
,具体而言,涉及一种对多区块同时编程的方法装置、电子设备及存储介质。背景技术
NOR FLASH 一次完整的编程操作包括编程及编程校验,在单次的编程操作完成后,如果编程校验不通过,会接着再做一次编程操作,如此循环直至编程校验通过。其中,用于编程和编程校验的电路是分开的,但共用一组数据总线. 这就决定了在编程以及编程校验的过程中,为避免数据在总线上冲突,两部分电路不能同时工作,即编程和编程校验无法同时进行。
如图4所示,在现有的编程方式中,当用户需要对区块0和区块1编程时,只有区块0的编程算法结束后才能对区块1开始编程。这样就会导致用户需要等区块0编程结束后,才可以对区块1操作,从而使整体编程效率不高。
针对上述问题,亟需执行改进。
发明内容
本申请实施例的目的在于提供一种对多区块同时编程的方法、装置、电子设备及存储介质,具有提高整体编程效率的优点。
第一方面,本申请实施例提供了一种对多区块同时编程的方法,技术方案如下:
包括:
根据用户发送的多区块编程指令对相应的多区块同时执行编程操作;
对执行完编程操作的对应的所述多区块分别执行单独连续的编程校验操作,并根据编程校验结果选择继续执行编程操作直至所述多区块全部通过编程校验。
进一步地,在本申请实施例中,在执行所述根据用户发送的多区块编程指令对相应的多区块同时执行编程操作的步骤之前还包括:
获取用户发送的多区块编程指令;
根据所述用户发送的多区块编程指令对所述多区块执行编程校验操作。
进一步地,在本申请实施例中,所述根据所述用户发送的多区块编程指令对所述多区块执行编程校验操作的步骤包括:
对所述多区块执行单独连续的编程校验操作。
进一步地,在本申请实施例中,所述对所述多区块执行单独连续的编程校验操作的步骤包括:
根据所述多区块的具体数量划分时间周期,所述时间周期指的是单个区块执行编程校验操作所需要的时间;
根据所述时间周期依次对所述多区块执行编程校验,每一个区块分别对应一个时间周期,其中一个区块执行编程校验时,其它区块处于等待状态。
进一步地,在本申请实施例中,所述对执行完编程操作的对应的所述多区块分别执行单独连续的编程校验操作的步骤包括:
根据所述多区块的具体数量划分时间周期,所述时间周期指的是单个执行编程校验所需要的时间;
根据所述时间周期依次对所述多区块执行编程校验,每一个区块分别对应一个时间周期,其中一个区块执行编程校验时,其它区块处于等待状态。
进一步地,在本申请实施例中,还包括:
判断是否有区块提前通过编程校验;
如果有区块提前通过编程校验,则将该区块排除,并依次调节剩余各区块在执行编程校验操作时的等待时间周期,使剩余各区块的编程校验操作变得连续。
进一步地,在本申请实施例中,还包括:
在只剩余最后一个区块需要执行编程操作或编程校验操作时,该剩余的最后一个区块的编程操作与编程校验操作连续。
第二方面,本申请还提供一种对多区块同时编程的装置,包括:
第一执行模块,用于根据用户发送的多区块编程指令对相应的多区块同时执行编程操作;
第二执行模块,用于对执行完编程操作的对应的所述多区块分别执行单独连续的编程校验操作,并根据编程校验结果选择继续执行编程操作直至所述多区块全部通过编程校验。
第三方面,本申请还提供一种电子设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上所述方法中的步骤。
第四方面,本申请还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,运行如上所述方法中的步骤。
由上可知,本申请实施例提供的一种对多区块同时编程的方法装置、电子设备及存储介质,通过根据用户发送的多区块编程指令对相应的多区块同时执行编程操作;对执行完编程操作的对应的所述多区块分别执行单独连续的编程校验操作直至所有区块的编程校验通过,本身请提供的方案具有提高整体编程效率的有益效果。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
图1为本申请实施例提供的一种对多区块同时编程的方法流程图。
图2为本申请实施例提供的一种对多区块同时编程的装置结构图。
图3为本申请实施例提供的一种电子设备结构图。
图4为现有编程手段中多区块编程与时间对比图。
图5为本申请中多区块编程与时间对比图。
图中:210、第一获取模块;220、第一处理模块;300、电子设备;310、处理器;320、存储器。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案执行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其执行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1至图5,一种对多区块同时编程的方法,其技术方案具体包括:
S110、根据用户发送的多区块编程指令对相应的多区块同时执行编程操作;
S120、对执行完编程操作的对应的多区块分别执行单独连续的编程校验操作,并根据编程校验结果选择继续执行编程操作直至多区块全部通过编程校验。
其中,在执行完编程校验操作之后,如果编程校验通过,则进入结束状态,如果编程校验不通过,则继续执行编程操作,然后再执行编程校验操作,并循环上述操作直至编程校验通过。
具体的,在用户发送多区块的编程指令之后,通过相关的逻辑电路来处理该指令然后产生相应的控制信号,并将控制信号送往对应的模拟电路,在获取用户发送的多区块的编程指令后,将需要编程的数据依次送至对应的区块上,然后在对应的区块的字线施加高电压同时执行编程操作,在执行完编程操作之后,由相关的模拟电路产生相应的控制信号反馈至数字电路中,接着依次对多区块执行编程校验操作,然后根据编程校验的结果判断是否需要再次执行编程操作。
通过上述技术方案,由于在编程过程中,不同区块的物理地址不同,因此可以同时对不同区块同时执行编程操作,在同时执行编程操作时,对多个区块的字线同时加上高电压,就可以同时执行编程操作了,在同时执行完编程操作之后,再对多个区块分别执行编程校验操作,相对于现有技术中的必须先对一个区块执行编程、编程校验、编程、编程校验......直至编程校验通过,然后才可以对下一个区块执行相关操作,本申请的技术方案通过并行编程,然后分块校验的方式,可以有效缩短整体的编程时间。
值得注意的是,之所以对多区块执行单独连续的编程校验操作,这是从实际生产成本考虑,理论上可以对多区块同时执行编程校验操作,但是如果对多区块同时执行编程校验操作,则需要用到SA电路,这会导致成本急剧上升,同时,由于多区块的编程内容不同,因此在执行编程校验时也会存在区别,这会大幅度的增加电路结构的复杂程度,也就说同时执行编程校验对于实际生产而言非常不划算,而同时执行编程只需要对多区块上的字线同时施加高电压即可,因此优选采用对多区块单独执行编程校验的方案,并且,由于编程的时间要长于编程校验的时间,在实际的产品中,编程校验的时间很短暂,多区块采用分块校验的方式也不会占用太多时间,因此使用同时执行编程操作,然后分别执行编程校验操作的方式来缩短整体的编程时间。
进一步地,在其中一些实施例中,在执行根据用户发送的多区块编程指令对相应的多区块同时执行编程操作的步骤之前还包括:
获取用户发送的多区块编程指令;
根据用户发送的多区块编程指令对多区块执行编程校验操作。
通过上述技术方案,在执行编程操作之前,首先需要获取用户发送的多区块编程指令,在接收到该指令后,首先对多区块执行一次编程校验操作来检测各区块上的数据是否与编程数据相同,如果相同,则不需要执行编程操作,如果不相同,则再执行编程操作,这样就可以避免编程相同的数据造成不必要的时间浪费,从而缩短整体的编程时间。
进一步地,在其中一些实施例中,根据用户发送的多区块编程指令对多区块执行编程校验操作的步骤包括:
对多区块执行单独连续的编程校验操作。
具体的,就是根据多区块的具体数量划分时间周期,时间周期指的是单个区块执行编程校验操作所需要的时间;
根据时间周期依次对多区块执行编程校验,每一个区块分别对应一个时间周期,其中一个区块执行编程校验时,其它区块处于等待状态。
通过上述技术方案,通过对多区块执行单独连续的编程校验操作,使多区块的编程校验操作为逐个交替进行,当其中一个区块在执行编程校验时,其它区块处于等待状态,这样就可以在低成本下使编程校验操作稳定有序的进行,同时保证了后续在对多区块执行编程操作时,确保编程操作是在同时进行的,缩短了整体的编程时间。
进一步地,在其中一些实施例中,对执行完编程操作的对应的所述多区块分别执行单独连续的编程校验操作的步骤包括:
根据多区块的具体数量划分时间周期,时间周期指的是单个执行编程校验所需要的时间;
根据时间周期依次对多区块执行编程校验,每一个区块分别对应一个时间周期,其中一个区块执行编程校验时,其它区块处于等待状态直至所有编程校验通过。
通过上述技术方案,在对多区块执行完编程操作之后,多区块开始执行编程校验操作,通过对多区块执行单独连续的编程校验操作,使多区块的编程校验操作为逐个交替进行,当其中一个区块在执行编程校验时,其它区块处于等待状态,这样就可以在低成本下使编程校验操作稳定有序的进行,同时保证了后续在对多区块执行编程操作时,确保编程操作是在同时进行的,缩短了整体的编程时间。
具体的,参照图5,在一些具体实施方式中,在需要对两个区块进行编程时,两个区块分别为区块0和区块1,在获取了用户发送的多区块编程指令后,在t0到t1的时间周期内,对区块0执行编程校验操作,当区块0编程校验完成后,在t1到t2的时间周期内,对区块1执行编程校验操作,当区块1编程校验完成后,如果区块0和区块1的编程校验均不通过,那么在t2到t3的时间段内同时对区块0和区块1执行编程操作,当区块0和区块1的第一次编程操作结束后,在t3到t4的时间周期内对区块0/区块1执行编程校验操作,在t4到t5的时间周期内对区块1/区块0执行编程校验操作,并不断循环上述操作直至区块0和区块1的编程校验通过。
对比图4与图5,在现有的编程手段下,对区块0和区块1完成整个编程需要t18的时间长度,在各条件均相同的条件下,使用本申请所提供的方案只需要t14的时间长度,所节省的时间为t18-t14。
值得注意的是,在实际的产品中,编程操作所需要的时间是长于编程校验操作的时间的。
进一步地,在其中一些实施例中,还包括:
判断是否有区块提前通过编程校验;
如果有区块提前通过编程校验,则将该区块排除,并依次调节剩余各区块在编程校验时的等待时间周期,使剩余各区块的编程校验变得连续。
通过上述技术方案,在对多个区块进行编程时,如果有区块提前通过了编程校验,则将该区块排除,即,剩余的各区块在继续执行编程校验操作时,可以去除一个等待的时间周期,这样就可以进一步的提高整体的编程效率。
其中,在只剩余最后一个区块需要执行编程操作或编程校验操作时,该剩余的最后一个区块的编程操作与编程校验操作连续。
具体的,在一些实施方式中,在需要对两个区块进行编程时,两个区块分别为区块0和区块1,在获取了用户发送的多区块编程指令后,在t0到t1的时间周期内,对区块0执行编程校验操作,当区块0编程校验完成后,在t1到t2的时间周期内,对区块1执行编程校验操作,当区块1编程校验完成后,如果区块0和区块1的编程校验均不通过,那么在t2到t3的时间段内同时对区块0和区块1执行编程操作,当区块0和区块1的第一次编程操作结束后,在t3到t4的时间周期内对区块0执行编程校验操作,在t4到t5的时间周期内对区块1执行编程校验操作,如果区块1通过了在t4到t5的这次编程校验,那么区块0在t5到t6执行编程操作,在t6到t7执行编程校验操作,在t7到t8执行编程操作......重复该循环直至区块0通过了编程校验。
第二方面,本申请还提供一种装置,包括:
第一执行模块,用于根据用户发送的多区块编程指令对相应的多区块同时执行编程操作;
第二执行模块,对执行完编程操作的对应的多区块分别执行单独连续的编程校验操作,并根据编程校验结果选择继续执行编程操作直至多区块全部通过编程校验。
通过上述技术方案,由于在编程过程中,不同区块的物理地址不同,因此可以同时对不同区块同时执行编程操作,因此通过第一执行模块来根据用户发送的多区块编程指令对相应的多区块同时执行编程操作,在同时执行编程操作时,对多个区块的字线同时加上高电压,就可以同时执行编程操作了,在同时执行完编程操作之后,第二执行模块再对多个区块分别执行编程校验操作,相对于现有技术中的必须先对一个区块执行编程、编程校验、编程、编程校验......直至编程校验通过,然后才可以对下一个区块执行相关操作,本申请的技术方案通过并行编程,然后分块校验的方式,可以有效缩短整体的编程时间
第三方面,本申请还提供一种电子设备300,包括处理器310以及存储器320,存储器320存储有计算机可读取指令,当计算机可读取指令由所述处理器310执行时,运行上述方法中的步骤。
通过上述技术方案,处理器310和存储器320通过通信总线和/或其他形式的连接机构(未标出)互连并相互通讯,存储器320存储有处理器310可执行的计算机程序,当计算设备运行时,处理器310执行该计算机程序,以执行时执行上述实施例的任一可选的实现方式中的方法,以实现以下功能:根据用户发送的多区块编程指令对相应的多区块同时执行编程操作;对执行完编程操作的对应的多区块分别执行单独连续的编程校验操作,并根据编程校验结果选择继续执行编程操作直至多区块全部通过编程校验。
第四方面,本申请还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,运行上述方法中的步骤。
通过上述技术方案,计算机程序被处理器执行时,执行上述实施例的任一可选的实现方式中的方法,以实现以下功能:根据用户发送的多区块编程指令对相应的多区块同时执行编程操作;对执行完编程操作的对应的多区块分别执行单独连续的编程校验操作,并根据编程校验结果选择继续执行编程操作直至多区块全部通过编程校验。
其中,存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory, 简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory, 简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory, 简称EPROM),可编程只读存储器(Programmable Red-Only Memory, 简称PROM),只读存储器(Read-OnlyMemory, 简称ROM),磁存储器,快闪存储器,磁盘或光盘。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。