首页> 中国专利> 用于串行闪存的写操作的方法和串行闪存

用于串行闪存的写操作的方法和串行闪存

摘要

本发明提供一种用于串行闪存的写操作的方法和串行闪存,所述方法包括:基于一次传送的写指令、待写地址和待写数据进行多次写操作。本发明所提供的用于串行闪存的写操作的方法和串行闪存能够一次准备好待写指令、待写地址和待写数据用于多次写操作,无需每次写操作准备一次,从而节省准备地址和数据的时间,实现快速写操作。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-02

    授权

    授权

  • 2017-12-22

    实质审查的生效 IPC(主分类):G06F3/06 申请日:20160520

    实质审查的生效

  • 2017-11-28

    公开

    公开

说明书

技术领域

本发明涉及串行存储器技术领域,具体而言涉及一种用于串行闪存的写操作的方法和串行闪存。

背景技术

目前,以闪存存储器(flash memory)为主流的非易失性存储芯片在嵌入式系统中是必不可少的一部分,闪存承担着存储嵌入式系统软件和用户数据的重要使命。非易失性的闪存芯片保证了软件和用户数据在掉电后能够长期稳定不变。相比于磁盘,闪存有读写性能高、防震、功耗低、封装体积小巧等优点。闪存以其丰富种类和较低的成本在几乎所有的嵌入式系统中都是非易失性存储方案的最佳选择。

基于性能需求,闪存具有不同的结构,例如使用或非结构的闪存(NORflash)和使用与非结构的闪存(NANDflash)。其中,在NORflash系列闪存中,通常有并口和串口两种接口。其中,串口闪存时序简单,节省引脚。串口闪存遵循串行外围接口(SPI)协议,基于SPI控制器而操作。对于串行闪存来说,其每个写操作均需要控制器传送一次指令代码、地址和数据,多个写操作就需要多次传送指令代码、地址和数据,这样非常浪费时间。

发明内容

针对现有技术的不足,一方面,本发明提供一种用于串行闪存的写操作的方法,所述方法包括:基于一次传送的写指令、待写地址和待写数据进行多次写操作。

在本发明的一个实施例中,所述待写地址和/或所述待写数据在所述多次写操作中随着写操作的次数而自动变化。

在本发明的一个实施例中,所述待写地址的值在所述多次写操作中随着写操作的次数自动增加预定值。

在本发明的一个实施例中,所述待写地址的值在所述多次写操作中随着写操作的次数奇数或偶数地递增。

在本发明的一个实施例中,所述待写数据的值在所述多次写操作中随着写操作的次数自动增加预定值。

在本发明的一个实施例中,所述待写数据在所述多次写操作中保持不变。

在本发明的一个实施例中,所述一次传送的待写地址和待写数据用于所述多次写操作中的第一次写操作,所述第一次写操作之后的写操作中所使用的待写地址和待写数据基于所述一次传送的待写地址和待写数据而产生、并通过所述一次传送的写指令进行管理。

另一方面,本发明还提供一种串行闪存,所述串行闪存基于一次传送的写指令、待写地址和待写数据进行多次写操作。

在本发明的一个实施例中,所述待写地址和/或所述待写数据在所述多次写操作中随着写操作的次数而自动变化。

在本发明的一个实施例中,所述一次传送的待写地址和待写数据用于所述多次写操作中的第一次写操作,所述第一次写操作之后的写操作中所使用的待写地址和待写数据基于所述一次传送的待写地址和待写数据而产生、并通过所述一次传送的写指令进行管理。

本发明所提供的用于串行闪存的写操作的方法和串行闪存能够一次准备好待写指令、待写地址和待写数据用于多次写操作,无需每次写操作准备一次,从而节省准备地址和数据的时间,实现快速写操作。

附图说明

本发明的下列附图在此作为本发明的一部分用于理解本发明。附图中示出了本发明的实施例及其描述,用来解释本发明的原理。

附图中:

图1示出了现有的用于串行闪存的写操作的时序波形图;

图2示出了根据本发明实施例的用于串行闪存的写操作的时序波形图;

图3示出了本发明实施例的用于串行闪存的写操作的状态机;以及

图4示出了如图3所示实施例下的用于串行闪存的写操作的时序波形图。

具体实施方式

在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员而言显而易见的是,本发明可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行描述。

应当理解的是,本发明能够以不同形式实施,而不应当解释为局限于这里提出的实施例。相反地,提供这些实施例将使公开彻底和完全,并且将本发明的范围完全地传递给本领域技术人员。

在此使用的术语的目的仅在于描述具体实施例并且不作为本发明的限制。在此使用时,单数形式的“一”、“一个”和“所述/该”也意图包括复数形式,除非上下文清楚指出另外的方式。还应明白术语“组成”和/或“包括”,当在该说明书中使用时,确定所述特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或更多其它的特征、整数、步骤、操作、元件、部件和/或组的存在或添加。在此使用时,术语“和/或”包括相关所列项目的任何及所有组合。

为了彻底理解本发明,将在下列的描述中提出详细的步骤以及详细的结构,以便阐释本发明提出的技术方案。本发明的较佳实施例详细描述如下,然而除了这些详细描述外,本发明还可以具有其他实施方式。

串行闪存是一种尺寸和功耗都很小的采用SPI总线的NOR闪存芯片。SPI又叫“四线”串行总线,用于顺序数据缓存器。当被嵌入式系统用于代码或参数存储器时,串行闪存在印制电路板上需要的连线数量比并行闪存少。因为串行闪存是把数据串行化,所需的输入/输出引脚比较少,每个时钟周期只传送一位数据。这些特性有助于降低电路板空间、功耗和系统总体成本。因此,串行闪存在嵌入式系统的设计中受到了广泛的应用。

作为一种存储器,串行闪存的基本操作方式就是读(read)、写(program)和擦(erase)。对于串行闪存的写操作,在写之前需要先执行写使能(write enable)指令,在写使能指令执行完成后将串行闪存的状态寄存器中的写使能锁位(write enable latchbit,即WEL)置为1值,然后主控制器的片选信号拉低,再依次发出写指令、地址值和待写数据,之后再拉高片选信号,最后串行闪存的状态寄存器中的写时忙状态位(write inprogress bit,即WIP)恢复0,则一次写操作完成。在写指令发出并拉高片选信号后,串行闪存的状态寄存器中的忙状态位WIP会一直被置为1值,指示写操作仍然在串行闪存中执行,直到写操作完成,WIP才会恢复0值。

图1示出了现有的用于串行闪存的写操作的时序波形图。如图1所示,在片选信号SCE拉低后,在时钟信号SCLK下,对于一次写操作,串行输入输出SIO需要传送一次指令、地址和数据,然后进行写操作。对于下次写操作,要再次传送指令、地址和数据,然后进行写操作。也就是说,每个写操作均需要传送一次指令、地址和数据,多个写操作就需要多次传送指令代码、地址和数据,这样非常浪费时间。

为了克服上述问题,本发明提供了一种用于串行闪存的写操作的方法,所述方法包括:基于一次传送的写指令、待写地址和待写数据进行多次写操作。

图2示出了根据本发明实施例的用于串行闪存的写操作的时序波形图。如图2所示,在片选信号SCE拉低后,在时钟信号SCLK下,串行输入输出SIO仅传送一次指令、地址和数据,然后基于该一次传送的指令、地址和数据进行第一次写、第二次写……最后一次写等。

由此可见,本发明所提供的方法将多个写指令、待写地址和待写数据一次准备好,将多次写操作合在一起执行,可以节约在串行闪存的写操作期间准备指令代码/地址/数据的时间,从而实现快速写操作。

在本发明的实施例中,该一次传送的写指令是特殊的写指令,通过这条特殊的写指令,可以对后续写操作的地址和数据进行管理,决定地址和数据的具体管理方法。

示例性地,该一次传送的待写地址和待写数据用于所述多次写操作中的第一次写操作,第一次写操作之后的写操作中所使用的待写地址和待写数据基于该一次传送的待写地址和待写数据而产生、并通过该一次传送的写指令进行管理。

在一个实施例中,该一次传送的待写地址和/或待写数据在所述多次写操作中可以随着写操作的次数而自动变化。

例如,该一次传送的待写地址和待写数据分别为第一地址和第一数据,该第一地址和第一数据用于第一次写操作。在进行第二次写操作时,用于第二次写操作的地址和数据基于第一地址和第一数据生成。例如,第一地址经过某种运算生成第二地址,第二数据经过某种运算生成第二数据。该第二地址和第二数据可用于第二次写操作。第三次写操作、第四次写操作……一直到最后一次写操作的过程以此类推。这样,仅通过一次传送的指令、地址和数据就可进行多次写操作。其中,写操作的次数可以根据需求而设置。

值得注意的是,虽然此处将用于第一次写操作和第二次写操作的地址称为第一地址和第二地址,但是并不意味着第一地址和第二地址一定是不同的地址,相反,第一地址和第二地址也可以是相同的地址。类似地,虽然此处将用于第一次写操作和第二次写操作的地址称为第一数据和第二数据,但是并不意味着第一数据和第二数据一定是不同的数据,相反,第一数据和第二数据也可以是相同的数据。用于每次写操作的地址和数据可以根据需求任意设置。

在一个示例中,待写地址的值在所述多次写操作中可以随着写操作的次数奇数或偶数地递增。例如,用于第一次写操作的第一地址为address:1,用于第二次写操作的第二地址为address:3,用于第三次写操作的第三地址为address:5,用于第N次写操作的第N地址为address:2N-1,其中N为自然数。再如,用于第一次写操作的第一地址为address:0,用于第二次写操作的第二地址为address:2,用于第三次写操作的第三地址为address:4,用于第N次写操作的第N地址为address:2N,其中N为自然数。

在另一个示例中,待写地址的值在所述多次写操作中可以随着写操作的次数自动增加预定值。例如,用于第一次写操作的第一地址为address:0,用于第二次写操作的第二地址为address:1,用于第三次写操作的第三地址为address:2,用于第N次写操作的第N地址为address:N-1,其中N为自然数。

类似地,在一个示例中待写数据的值在所述多次写操作中可以随着写操作的次数自动增加预定值。

在一个示例中,用于第一次写操作的第一数据为’data0’,用于第二次写操作的第二数据为’data1’=’data0’+1,用于第三次写操作的第三数据为’data2’=’data0’+2,用于第N次写操作的第N数据为’datan’=’data0’+N-1,其中N为自然数。

在另一个示例中,待写数据在所述多次写操作中保持不变。例如对于每次写操作,待写数据都和第一数据相同,即均为’data0’,或均为55aa等。

图3示出了本发明实施例的用于串行闪存的写操作的状态机。如图3所示,在SPI开始后,依次为写指令状态、地址状态、数据状态然后是写,之后回到SPI重新开始。或者从SPI开始后的其他选项。其中,地址状态可以通过一次传送的写指令受到地址管理,例如自动加1;数据状态也可以通过一次传送的写指令受到数据管理,以用于下一次的写操作。

图4示出了如图3所示实施例下的用于串行闪存的写操作的时序波形图。如图4所示,在片选信号SCE拉低后,在时钟信号SCLK下,串行输入输出SIO仅传送一次指令、地址和数据,然后基于该一次传送的指令、地址和数据进行第一次写、第二次写……最后一次写等。其中,在进行第一次写操作时,地址为address:0,数据为data:0;在进行第二次写操作时,地址为address:1,数据为data:1;……在进行最后一次写操作时,地址为address:n,数据为data:n。

由此可见,基于上述实施例的用于串行闪存的写操作的方法将多个写指令、待写地址和待写数据一次准备好,将多次写操作合在一起执行,可以节约在串行闪存的写操作期间准备指令代码/地址/数据的时间,从而实现快速写操作。

值得注意的是,虽然上述实施例示出了写操作中所使用具体的地址和数据,但是它们仅为示例,本领域普通技术人员可以根据需要任意设置地址和数据。

根据本发明的另一方面,还提供一种串行闪存,所述串行闪存基于一次传送的写指令、待写地址和待写数据进行多次写操作。

在本发明的实施例中,该一次传送的写指令是特殊的写指令,通过这条特殊的写指令,可以对后续写操作的地址和数据进行管理,决定地址和数据的具体管理方法。

示例性地,该一次传送的待写地址和待写数据用于所述多次写操作中的第一次写操作,第一次写操作之后的写操作中所使用的待写地址和待写数据基于该一次传送的待写地址和待写数据而产生、并通过该一次传送的写指令进行管理。

在一个实施例中,该一次传送的待写地址和/或待写数据在所述多次写操作中可以随着写操作的次数而自动变化。

例如,该一次传送的待写地址和待写数据分别为第一地址和第一数据,该第一地址和第一数据用于第一次写操作。在进行第二次写操作时,用于第二次写操作的地址和数据基于第一地址和第一数据生成。例如,第一地址经过某种运算生成第二地址,第二数据经过某种运算生成第二数据。该第二地址和第二数据可用于第二次写操作。第三次写操作、第四次写操作……一直到最后一次写操作的过程以此类推。这样,仅通过一次传送的指令、地址和数据就可进行多次写操作。其中,写操作的次数可以根据需求而设置。

值得注意的是,虽然此处将用于第一次写操作和第二次写操作的地址称为第一地址和第二地址,但是并不意味着第一地址和第二地址一定是不同的地址,相反,第一地址和第二地址也可以是相同的地址。类似地,虽然此处将用于第一次写操作和第二次写操作的地址称为第一数据和第二数据,但是并不意味着第一数据和第二数据一定是不同的数据,相反,第一数据和第二数据也可以是相同的数据。用于每次写操作的地址和数据可以根据需求任意设置。

在一个示例中,待写地址的值在所述多次写操作中可以随着写操作的次数奇数或偶数地递增。

在另一个示例中,待写地址的值在所述多次写操作中可以随着写操作的次数自动增加预定值。

类似地,在一个示例中待写数据的值在所述多次写操作中可以随着写操作的次数自动增加预定值。

在另一个示例中,待写数据在所述多次写操作中保持不变。

本领域普通技术人员可以结合先前描述用于串行闪存的写操作的方法的具体实施例理解根据本发明实施例的串行闪存的写操作过程,并基于该过程设置串行闪存的具体结构或对串行闪存进行操作。

尽管已经参考附图描述了上述示例实施例,但应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号