编程方法、存储电路结构、装置、电子设备及存储介质
技术领域
本申请涉及半导体
技术领域
,具体而言,涉及一种编程方法、存储电路结构、装置、电子设备及存储介质。背景技术
在NOR FLASH一次完整的编程操作中,需要不断的重复编程、编程校验、编程、编程校验......的操作,直至通过编程校验,然而,在NOR FLASH存储器的内部电路结构中,编程电路与校验电路并不能一起工作,因此在需要对存储器进行编程时,只能按照顺序对区块进行编程,目前的常规编程方式如图5所示,这种编程方式会导致后续的待编程的区块需要耗费大量的等待时间,这无疑严重拖慢了整体的编程效率。
针对上述问题,亟需进行改进。
发明内容
本申请实施例的目的在于提供一种编程方法、存储电路结构、装置、电子设备及存储介质,具有编程效率高的优点。
第一方面,本申请实施例提供了一种编程方法,技术方案如下:编程电路与编程校验电路各自使用独立的数据线,该方法的步骤包括:
获取用户发送的多区块编程指令;
根据所述多区块编程指令控制对应的两个区块执行编程操作或编程校验操作,使两个所述区块之间的编程操作与编程校验操作交替同步执行,两个所述区块为区块0和区块1;
根据编程校验结果选择执行编程操作直至所有区块通过编程校验。
进一步地,在本申请实施例中,所述根据所述多区块编程指令控制对应的两个区块执行编程操作或编程校验操作,使两个所述区块之间的编程操作与编程校验操作交替同步执行的步骤包括:
对所述区块0执行编程校验操作;
对所述区块0执行编程操作,同时对所述区块1执行编程校验操作。
进一步地,在本申请实施例中,所述根据所述多区块编程指令控制对应的两个区块执行编程操作或编程校验操作,使两个所述区块之间的编程操作与编程校验操作交替同步执行的步骤包括:
对所述区块0执行编程校验操作,同时对所述区块1执行编程操作;
对所述区块0执行编程操作,同时对所述区块1执行编程校验操作。
进一步地,在本申请实施例中,所述根据所述多区块编程指令控制对应的两个区块执行编程操作或编程校验操作的步骤包括:
根据所述多区块编程指令由逻辑电路产生pgm_en[1:0]控制信号以及verify_en[1:0] 控制信号;
根据所述pgm_en[1:0]控制信号将编程数据通过编程电路编程至对应的区块上;
根据所述verify_en[1:0] 控制信号将对应区块的编程校验数据输出至编程校验电路中执行编程校验操作。
进一步地,在本申请实施例中,所述根据所述pgm_en[1:0]控制信号将编程数据通过编程电路编程至对应的区块上的步骤包括:
使用单独的数据线将编程数据通过编程电路编程至对应的区块上。
进一步地,在本申请实施例中,所述根据所述verify_en[1:0] 控制信号将对应区块的编程校验数据输出至编程校验电路中执行编程校验操作的步骤包括:
使用单独的数据线将对应区块的编程校验数据输出至编程校验电路中执行编程校验操作。
第二方面,本申请还提供一种存储电路结构,包括:
存储模块,所述存储模块内包含有多个用于存储的区块;
逻辑电路模块,所述逻辑电路模块与所述存储模块电连接,用于传输多区块编程指令、编程信号以及编程校验信号至所述存储模块;
编程模块,所述编程模块与所述存储模块使用单独的数据线进行电连接,用于将编程数据编程至对应的所述区块内;
编程校验模块,所述编程校验模块与所述存储模块使用单独的数据线进行电连接,用于接收编程校检数据进而对所述区块进行编程校检。
第三方面,本申请还提供一种提高多区块编程效率的装置,包括:
第一获取模块,用于获取用户发送的多区块编程指令;
第一处理模块,用于根据所述多区块编程指令控制对应的两个区块执行编程操作或编程校验操作,使两个所述区块之间的编程操作与编程校验操作交替同步执行,两个所述区块为区块0和区块1;
第二处理模块,用于根据编程校验结果选择执行编程操作直至所有区块通过编程校验。
第四方面,本申请还提供一种电子设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上所述方法中的步骤。
第五方面,本申请还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,运行如上所述方法中的步骤。
由上可知,本申请实施例提供的一种提高多区块编程效率的方法、装置、电子设备及存储介质,在编程电路与编程校验电路上各自设置有独立的数据线,然后通过获取用户发送的多区块编程指令;根据多区块编程指令控制对应的两个区块执行编程操作或编程校验操作,使两个区块之间的编程操作与编程校验操作交替同步执行,两个区块为区块0和区块1;根据编程校验结果选择执行编程操作直至所有区块通过编程校验,具有编程效率高的有益效果。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
图1为本申请实施例提供的一种编程方法流程图。
图2为本申请实施例提供的一种编程装置结构示意图。
图3为本申请实施例提供的一种电子设备示意图。
图4为本申请实施例提供的一种存储电路结构示意图。
图5为现有现有编程手段中多区块编程与时间对比图。
图6为本申请实施例提供的多区块编程与时间对比图。
图7为本申请实施例提供的多区块编程与时间对比图。
图中:210、第一获取模块;220、第一处理模块;230、第二处理模块;300、电子设备;310、处理器;320、存储器;410、存储模块;420、逻辑电路模块;430、编程模块;440、编程校验模块。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1至图7,一种编程方法,其技术方案具体包括:编程电路与编程校验电路各自使用独立的数据线,该方法的步骤包括:
S110、获取用户发送的多区块编程指令;
S120、根据多区块编程指令控制对应的两个区块执行编程操作或编程校验操作,使两个区块之间的编程操作与编程校验操作交替同步执行,两个区块为区块0和区块1;
S130、根据编程校验结果选择执行编程操作直至所有区块通过编程校验。
通过上述技术方案,在对区块0和区块1进行编程时,传统的方案是需要等待区块0或区块1成功完成编程之后,才能对后续的区块执行编程操作,这是由于传统的编程电路与编程校验电路使用共同的数据线进行数据传输,为了不让数据发生冲突,因此将编程操作、编程校验操作彻底分开,导致编程和编程校验没有共同工作的时刻,而本申请通过分离编程电路、编程校验电路的数据总线,进而实现了不同区块之间同时交替执行编程操作与编程校验操作,在需要对区块0和区块1进行编程时,采用本申请的方案可以大幅度缩短甚至消除另一个区块的等待时间,极大的提高了整体的编程效率。
值得注意的是,在理论上,可以同时控制区块0和区块1执行编程操作,也可以同时控制区块0和区块1执行编程校验操作,但是,受限与NOR FLASH非易失性存储器的特点,要实现这一点会需要存储芯片的面积增大,芯片的面积增大会造成成本上升以及对一系列的工艺产生影响,因此对于NOR FLASH而言,这种方案在实际的生产中并不实用,而采用同时交替执行编程操作、编程校验操作则可以避免这个问题,因此本申请采用的是在区块0与区块1上交替执行编程操作与编程校验操作,在提升编程效率的同时,满足实际生产的需要。
具体的,在一些实施方式中,根据多区块编程指令控制对应的两个区块执行编程操作或编程校验操作,使两个区块之间的编程操作与编程校验操作交替同步执行的步骤包括:
对区块0执行编程校验操作;
对区块0执行编程操作,同时对区块1执行编程校验操作。
通过上述技术方案,在需要对区块0和区块1进行编程时,可以首先对区块0执行编程校验操作,这是为了检测在区块0上的数据是否和编程数据相同,如果是相同的,则不需要对区块0执行编程操作,如果是不同的,则需要对区块0执行编程操作,当区块0的编程校验不通过,则紧接着对区块0执行编程操作,与此同时,对区块1执行编程校验操作,可以检测区块1上的数据是否和编程数据相同,如果是相同的,则不需要对区块0执行编程操作,如果是不相同的,则需要对区块1执行编程操作,这样就可以避免不必要的编程操作,从而节省编程时间。
具体的,如图6所示,在t0到t1的时间内,对区块0执行编程校验操作,此时区块1处于等待状态,在t1到t2的时间段内,对区块0执行编程操作,同时对区块1执行编程校验操作......不断循环上述过程,直至区块0和区块1都通过了编程校验。可以对比图5和图6,在其余条件相同的情况下,使用本申请实施例的方案比现有的技术手段节省了t18-t10的时间,有效提高了整体的编程效率。
具体的,在另外一些实施例中,根据多区块编程指令控制对应的两个区块执行编程操作或编程校验操作,使两个区块之间的编程操作与编程校验操作交替同步执行的步骤包括:
对区块0执行编程校验操作,同时对区块1执行编程操作;
对区块0执行编程操作,同时对区块1执行编程校验操作。
通过上述技术方案,在需要对区块0和区块1进行编程时,可以首先对区块0执行编程校验操作,与此同时,对区块1执行编程操作,对区块0执行编程校验操作这是为了检测在区块0上的数据是否和编程数据相同,如果是相同的,则不需要对区块0执行编程操作,如果是不同的,则需要对区块0执行编程操作,当区块0的编程校验不通过,则紧接着对区块0执行编程操作,直接对区块1执行编程操作则可以节省在对区块0执行编程校验操作的等待时间,在区块1上的数据与编程数据不相同时,可以进一步提高整体的编程效率。
具体的,如图7所示,在t0到t1的时间内,对区块0执行编程校验操作,与此同时,对区块1执行编程操作,在t1到t2的时间段内,对区块0执行编程操作,同时对区块1执行编程校验操作......不断循环上述过程,直至区块0和区块1都通过了编程校验。可以对比图5和图7,在其余条件相同的情况下,使用本申请实施例的方案比现有的技术手段节省了t18-t9的时间,有效提高了整体的编程效率。
进一步地,在本申请实施例中,根据多区块编程指令控制对应的两个区块执行编程操作或编程校验操作的步骤包括:
根据多区块编程指令由逻辑电路产生pgm_en[1:0]控制信号以及verify_en[1:0]控制信号;
根据pgm_en[1:0]控制信号将编程数据通过编程电路与单独的数据线编程至对应的区块上;
根据verify_en[1:0] 控制信号将编程校验数据输出至编程校验电路中执行编程校验操作。
具体的,使用单独的数据线将编程数据通过编程电路与单独的数据线编程至对应的区块上。
具体的,使用单独的数据线将编程校验数据输出至编程校验电路中执行编程校验操作。
通过上述技术方案,在接收到用户发送的多区块编程指令后,由相关的逻辑电路产生pgm_en[1:0]控制信号以及verify_en[1:0] 控制信号,在pgm_en[1:0]控制信号的控制下,编程数据从SRAM取出,然后通过编程电路使用单独的数据线编程至指定的区块上,于此同时,verify_en[1:0] 控制信号控制另外一个对应的区块从单独的数据线中输出编程校验数据,编程校验数据被送入至编程校验电路中执行编程校验操作,同时,将编程校验结果反馈会逻辑电路,根据反馈结果pgm_en[1:0]控制信号决定是否继续执行编程操作,在这个过程中,执行编程操作的区块与执行编程校验操作的区块不断的交替同时工作,直至所有区块编程校验通过,由于编程操作与编程校验操作分别通过单独的数据线进行数据交换,因此不会产生相互干扰。
具体的,在一些实施例中,在对区块0和区块1进行编程时,用户发送对区块0和区块1进行编程的指令,逻辑电路接收该指令并产生了pgm_en[1:0]控制信号和verify_en[1:0]控制信号,在pgm_en[1:0]控制信号作用下,编程数据从SRAM中输出至编程电路,然后编程电路通过单独的数据线与区块0以及区块1连接,在一些具体实施方式中,编程电路将编程数据通过单独的数据线编程至区块0上,于此同时,在verify_en[1:0]控制信号的作用下,区块1通过另外一条单独的数据线将编程校验数据输出至编程校验电路中,在编程校验电路下执行编程校验操作,同时将编程校验的结果返回至逻辑电路中,如果编程校验不通过,则接下来在pgm_en[1:0]控制信号的作用下,编程电路将编程数据通过单独的数据线编程至区块1中,与此同时,由于区块0在刚才执行了一次编程操作,因此在verify_en[1:0]控制信号的作用下,控制区块0通过另外一条单独的数据线将编程校验数据输出至编程校验电路中,通过编程校验电路执行编程校验操作,然后不停的使区块0和区块1同时交替执行编程以及编程校验操作,通过这种编程方式,有效减少了编程等待时间,极大的提高了编程效率。
第二方面,本申请还提供一种存储电路结构,如图4所示,包括:
存储模块,存储模块内包含有多个用于存储的区块;例如区块0、区块1......
逻辑电路模块,逻辑电路模块与存储模块电连接,用于传输多区块编程指令、编程信号以及编程校验信号至存储模块;
编程模块,编程模块与存储模块使用单独的数据线进行电连接,用于将编程数据编程至对应的区块内;
编程校验模块,编程校验模块与存储模块使用单独的数据线进行电连接,用于接收编程校检数据对相应的区块进行编程校检。
通过上述技术方案,使用该存储电路结构可以实现独立的执行编程操作与编程校验操作,当需要对存储模块内的区块进行编程时,用户发送多区块编程指令,例如对区块0和区块1进行编程,逻辑电路模块在接收该指令后产生了相应的控制信号,例如pgm_en[1:0]控制信号和verify_en[1:0]控制信号,在pgm_en[1:0]控制信号作用下,编程数据从SRAM中输出至编程模块,然后编程模块通过单独的数据线与区块0以及区块1连接,在一些具体实施方式中,编程模块将编程数据通过单独的数据线编程至区块0上,于此同时,在verify_en[1:0]控制信号的作用下,区块1通过另外一条单独的数据线将编程校验数据输出至编程校验模块中,在编程校验模块下执行编程校验操作,同时将编程校验的结果返回至逻辑电路模块中,如果编程校验不通过,则接下来在pgm_en[1:0]控制信号的作用下,编程模块将编程数据通过单独的数据线编程至区块1中,与此同时,由于区块0在刚才执行了一次编程操作,因此在verify_en[1:0]控制信号的作用下,控制区块0通过另外一条单独的数据线将编程校验数据输出至编程校验模块中,通过编程校验模块执行编程校验操作,然后不停的使区块0和区块1同时交替执行编程以及编程校验操作,通过这种编程方式,有效减少了编程等待时间,极大的提高了编程效率。
第三方面,本申请还提供一种编程装置,包括:
第一获取模块,用于获取用户发送的多区块编程指令;
第一处理模块,用于根据多区块编程指令控制对应的两个区块执行编程操作或编程校验操作,使两个区块之间的编程操作与编程校验操作交替同步执行,两个区块为区块0和区块1;
第二处理模块,用于根据编程校验结果选择执行编程操作直至所有区块通过编程校验。
通过上述技术方案,通过第一获取模块来获取用户发送的多区块编程指令,然后第一处理模块根据区块编程指令控制对应的两个区块执行编程操作或编程校验操作,使两个区块之间的编程操作与编程校验操作交替同步执行,最后第二处理模块根据编程校验结果选择执行编程操作直至所有区块通过编程校验。在对区块0和区块1进行编程时,传统的方案是需要等待区块0或区块1成功完成编程之后,才能对后续的区块执行编程操作,这是由于传统的编程电路与编程校验电路使用共同的数据线进行数据传输,为了不让数据发生冲突,因此将编程操作、编程校验操作彻底分开,导致编程和编程校验没有共同工作的时刻,而本申请通过分离编程电路、编程校验电路的数据总线,进而实现了不同区块之间同时交替执行编程操作与编程校验操作,在需要对区块0和区块1进行编程时,采用本申请的方案可以大幅度缩短甚至消除另一个区块的等待时间,极大的提高了整体的编程效率。
第四方面,本申请还提供一种电子设备,包括处理器以及存储器,存储器存储有计算机可读取指令,当计算机可读取指令由所述处理器执行时,运行上述方法中的步骤。
通过上述技术方案,处理器和存储器通过通信总线和/或其他形式的连接机构(未标出)互连并相互通讯,存储器存储有处理器可执行的计算机程序,当计算设备运行时,处理器执行该计算机程序,以执行时执行上述实施例的任一可选的实现方式中的方法,以实现以下功能:获取用户发送的多区块编程指令;根据多区块编程指令控制对应的两个区块执行编程操作或编程校验操作,使两个区块之间的编程操作与编程校验操作交替同步执行,两个区块为区块0和区块1;根据编程校验结果选择执行编程操作直至所有区块通过编程校验。
第五方面,本申请还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,运行上述方法中的步骤。
通过上述技术方案,计算机程序被处理器执行时,执行上述实施例的任一可选的实现方式中的方法,以实现以下功能:获取用户发送的多区块编程指令;根据多区块编程指令控制对应的两个区块执行编程操作或编程校验操作,使两个区块之间的编程操作与编程校验操作交替同步执行,两个区块为区块0和区块1;根据编程校验结果选择执行编程操作直至所有区块通过编程校验。
其中,存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(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),磁存储器,快闪存储器,磁盘或光盘。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。