CN101553789A - 管理快闪存储器中挂起请求的方法及系统 - Google Patents

管理快闪存储器中挂起请求的方法及系统 Download PDF

Info

Publication number
CN101553789A
CN101553789A CNA2006800025394A CN200680002539A CN101553789A CN 101553789 A CN101553789 A CN 101553789A CN A2006800025394 A CNA2006800025394 A CN A2006800025394A CN 200680002539 A CN200680002539 A CN 200680002539A CN 101553789 A CN101553789 A CN 101553789A
Authority
CN
China
Prior art keywords
hang
retouching operation
sequence
microcontroller
flash memory
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.)
Pending
Application number
CNA2006800025394A
Other languages
English (en)
Inventor
斯蒂芬诺·苏里克
西蒙娜·巴托丽
莫尼卡·马兹阿尼
卢卡·菲吉尼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Atmel Corp
Original Assignee
Atmel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Atmel Corp filed Critical Atmel Corp
Publication of CN101553789A publication Critical patent/CN101553789A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Debugging And Monitoring (AREA)

Abstract

管理快闪存储设备中挂起请求的系统及方法。该系统包括执行快闪存储阵列修改操作的微控制器,耦合至所述微控制器且存储挂起序列代码的存储器,所述挂起序列代码由所述微控制器执行时挂起所述修改操作,以及从用户处接收挂起请求以挂起所述修改操作并且开始执行所述挂起序列代码的挂起电路。

Description

管理快闪存储器中挂起请求的方法及系统
技术领域
本发明涉及一种快闪存储设备以及类似的非易失性电子设备,尤其涉及一种快闪存储设备中的挂起请求。
技术背景
快闪存储设备是应用广泛的便捷的电子存储设备。快闪存储设备提供数据的非易失性存储,且亦允许将该数据编程到该存储器中及从该存储器擦除多次,因此有大量的灵活应用及使用。
现今的快闪存储器设备包括执行该快闪存储器所有的修改操作的嵌入方法或算法,其是通过存储于只读存储器(ROM)中的代码实现且由微控制器执行。该修改操作包括诸如以数据对该快闪存储器进行编程、从该快闪存储器擦除数据等操作。由于该快闪存储单元的物理结构及该单元阵列的排列,一些修改操作需要较长的执行时间。由于这些原因,快闪存储器须具有这样一种特性,即可对诸如编程或擦除的较长修改操作挂起一段时间以允许用户立即存取该快闪存储器。例如,当该用户需读取该快闪存储器中的一些阵列位置而其中之一的较长修改操作正在运行时,该用户可通过如该快闪存储器的输入/输出(I/O)焊盘之类的命令接口向该快闪存储器发出挂起请求(命令)。
该命令接口(微控制器)对该挂起命令进行解码,且当该修改操作的挂起在预定时间内完成,容许该用户所需的读取操作(或其他的用户执行的修改操作)存取该快闪存储器。该用户的操作完成后,恢复命令使该中断的修改操作在该挂起点恢复运行,并且正确终止,如同该操作所应当终止的那样。
一般的快闪存储器中,以软件模式管理用户的挂起请求,即利用可实现该嵌入方法或算法的软件代码。大多数快闪存储器的实现中,当修改操作期间发生挂起请求时,在寄存器中设置标志。该嵌入软件代码使用查询指令通过检查或测试该寄存器来检查该用户是否发出挂起请求。查询后,若该寄存器标志指示挂起请求已发出,该嵌入软件代码请求跳转至某个为挂起序列的代码序列。该挂起序列通过关断所有用于运行该修改操作的电荷泵及高电压且保存恢复该修改操作时使用的配置(如状态变量及时间安排参数)。
必须定期地执行上述该标志的软件查询来检查该寄存器及判定挂起请求是否发生。可根据该快闪存储器的预定义的时间特征,称为“挂起时间”,来判定查询的数量,即查询之间的时间量。这是从挂起请求至该挂起完成之间(该修改操作的中断)所允许的最大时间量,其后允许用户存取。为了满足该挂起时间,所执行的查询需在软件代码占最小比例。这要求该嵌入代码中所包括的查询代码指令(比较指令)的数量最小,以及需要相等数量的跳转指令(或类似指令),所述跳转指令在发现该寄存器标志已设置时使该代码跳转至存储该挂起序列的代码分枝。
由此,任意两条查询之间的时间安排期间必须保证满足该挂起时间,就需要相对大量的查询指令。此外,该指令数量的增加使得复杂性及该嵌入软件代码的长度增加。现有快闪存储器较复杂,其中的嵌入代码必须执行几种类型的操作及特征,包括工厂程序、增强工厂程序、扇区的非易失性保护等;并且多级快闪存储设备需要附加的复杂算法。重要的是,在不额外增加该嵌入代码的长度且遵守该设备所需的时间安排的情况下能够实现该些特征。由此,尽可能地优化及减少该存储于该快闪设备ROM或SRAM嵌入代码的长度以改进区域效率是重要的,并且,更重要的是,减少执行代码所需持续时间以遵守该时间条件。例如,若该嵌入代码在修改操作期间执行1000次查询指令,且执行该指令的该微控制器时钟为100纳秒,则单单用于执行这些查询就多花了10微妙。该缺陷在各存储单元中可存储多位(bit)的多级快闪设备中尤为明显,所述多级快闪设备中该嵌入代码重复执行极多次的指令序列。由于必须遵守查询之间的时间为该设备的挂起时间,向该嵌入代码加入新的代码行及特征必然会增加代码指令的数量。
因此,需要一种管理快闪存储设备中挂起请求的装置或方法,其不增加执行该嵌入代码所需的持续时间也不减少该代码的长度以及存储该代码的空间。本发明解决了该需求。
发明内容
本发明涉及快闪存储设备中的挂起请求管理。本发明之一方面,一种管理快闪存储器中挂起请求的系统,包括执行快闪存储阵列修改操作的微控制器;耦合至所述微控制器且存储挂起序列代码的存储器,所述挂起序列代码由所述微控制器执行时用于实现挂起序列以使所述修改操作挂起;及耦合至所述微控制器及所述存储器的挂起电路,其中所述挂起电路从用户处接收挂起请求以挂起所述修改操作,并且其中所述挂起电路开始执行所述挂起序列代码。
本发明之另一方面,一种管理快闪存储器中挂起请求的方法,包括从用户处接收挂起请求信号以挂起快闪存储阵列的修改操作;锁存所述挂起请求信号直至所述修改操作可被挂起而不会造成所述修改操作的错误;及通过执行存储于存储器的挂起序列代码以挂起所述修改操作。
本发明之再一方面,一种管理快闪存储器中挂起请求的方法,包括执行所述快闪存储器中的嵌入软件代码指令一实现快闪存储阵列的修改操作;从用户处接收挂起请求信号以挂起所述修改操作;及不执行检查所述挂起请求是否已收到的软件代码指令而使用硬件挂起电路挂起所述修改操作。
本发明提供了不必使用由该微控制器执行的嵌入代码中的软件查询而可正确及有效管理修改操作中快闪存储设备的挂起管理。这使得该代码更为紧凑,藉此节省了存储区域及成本。此外,由于执行该更紧凑代码所需的持续时间减少,本发明在修改操作的时间安排上具有优点,使得更容易满足快闪存储设备的该挂起时间安排条件。
附图说明
图1为说明本发明的硬件快闪存储系统的方块图;
图2为说明图1的快闪存储系统所使用的逻辑电路及一些元件的实例的示意图;
图3为说明本发明的管理快闪存储设备中挂起请求的方法的流程图。
具体实施方式
本发明涉及快闪存储设备及类似的非易失性电子设备,尤其涉及快闪存储设备中的挂起请求。以下作为专利申请及其要件而提供的描述使得本领域的技术人员能够制造及利用本发明。较佳实施例的多种修改以及本文中所描述的普遍原理及特征对于本领域的技术人员来说是清楚明了的。由此,本发明并不意欲限制为所示的实施例,而应具有与本文所描述的原理及特征相一致的最大范围。
本发明主要根据某些实现中的某些系统来描述。然而,本领域的技术人员可容易地认识到此方法及系统可在其他实现中有效运行。例如,可用于本发明的处理元件及存储器可有多种其他形式。本发明亦以具有特定步骤的某些方法为背景描述。然而,对于其他具有与本发明不一致的不同及/或附加步骤,该方法及系统亦可有效运行。
本发明描述了一种可以正确及有效地管理在修改操作期间用户发出的挂起请求的构架,其不使用嵌入代码中由微控制器执行的软件查询,由此达成修改操作中在时间安排上的优点以及更短、更紧凑的代码从而节省快闪设备代码存储存储器,如ROM中的存储区域。
为了更具体地描述本发明的特征,敬请结合下文的描述并参见图1至3。
图1为本发明的不使用软件查询来管理挂起请求的快闪存储系统10的方块图。系统10可被包含在电子设备、计算机,或者其他使用快闪存储器来存储数据的设备或装置。公知地,该装置可包括一或多种处理器(微处理器、专用集成电路等)、各种类型的存储器及输入/输出(I/O)元件(网络接口,诸如键盘或按钮的设备、显示屏、打印机、鼠标、麦克风及扫描仪等)。更具体地,本发明的快闪存储系统10包括微控制器12、只读存储器(ROM)14及快闪存储阵列16,以及多种下文所述的其他元件。
微控制器12用于控制快闪存储系统10的操作,包括从ROM14获取代码并执行之,以及将数据存储至快闪存储阵列16或从快闪存储阵列16中获取。微控制器12可为任意一种合适的控制器设备,包括微控制器、专用集成电路(ASICs)或其他控制器。微控制器12可包括多个寄存器13,所述寄存器在数字信息载入及存储于其中时,控制快闪存储系统10的操作参数。
只读存储器(ROM)14存储程序指令(即嵌入代码),其用于实现对快闪存储系统10进行修改或操纵的操作。ROM14储存由微控制器12获取并且为操作该快闪存储系统而执行的指令。尽管本说明书中将存储器14称为“ROM”,但其他实施例中可使用其他类型的存储器作为存储器14来存储该嵌入代码,如静态随机存取存储器(SRAM)或其他公知的类型。
快闪存储阵列16为存储单元阵列,且为可存储数据且容许擦除数据及/或以其他数据改写多次的系统10中的非易失性存储器存储。典型的快闪存储单元可一次将该存储器内的所有内容快速擦除,这与需要单独擦除各存储单元的通用电可擦除可编程只读存储器(EEPROM)不同。阵列16根据实施例的需要可包括单级单元或多级单元。单级单元存储两个不同的电荷值(0或1),而多级单元可存储四个或更多不同的电荷值,由此每单元可存储更多数据,但需更长的执行操作时间。
如图1所示,快闪存储系统10剩余的硬件元件在本发明中用来管理用户的挂起请求。其他在图1中未示出的快闪存储系统通常包括的元件与本发明关系不大。
触发器20能够接收用户的挂起请求22,所述挂起请求要求中断及暂停执行当前修改操作以使该用户的其他操作可存取该快闪存储器,如读取操作。该用户的操作一旦完成,恢复执行该已挂起修改操作。
例如,该用户可使用诸如I/O焊盘的命令用户接口(CUI)输入挂起请求命令。图1中示为D触发器的触发器20,以电压VDD作为D输入端,且以挂起请求22作为其时钟输入。当该挂起请求上升为高电平时,触发器20锁存该挂起请求。该触发器产生该高电平输出信号SUSP_REQ。当该修改操作结束时或者下一操作或挂起开始时,由逻辑电路(未示)发出重置触发器20的RESET_MICRO_N信号。
多路复用器24、逻辑电路26及触发器28组成逻辑开关30以在适当之时应答该用户的挂起请求。逻辑电路26检查该挂起请求信号SUSP_REQ是否允许通过,即是否应答及执行修改操作的挂起。仅当该修改操作(及嵌入代码)处于可被中断的点或状态之时,即“真条件”,该挂起请求被应答且成为可执行的。逻辑电路26根据当前运行的修改操作的类型(程序、擦除)以及根据微控制器12当前执行的指令在适当的时间提供真条件。一般地,该真条件根据状态变量及微处理器输出而引发。参考图2描述逻辑电路26的一个实例。
在检测到该真条件为止,多路复用器24选择该多路复用器24的接地的FALSE输入。一旦逻辑电路26检测到允许应答该挂起请求的真条件,逻辑电路26向多路复用器24发送该适当信号,且该多路复用器24从FALSE输入转换为连接该触发器20的SUSP_REQ信号的TRUE输入。该SUSP_REQ信号由多路复用器24输出,且输入至触发器28的时钟输入端。触发器28将SUSP_REQ信号锁存为SUSP_REQ_ACC,且在其输出端以高电平输出该信号。由此,包括多路复用器24、逻辑电路26及触发器28的逻辑开关30在该挂起请求被应答且将实现该修改操作的挂起之时,即挂起序列开始,提供高电平的该SUSP_REQ_ACC信号。
触发器32为D型且在其D输入端接收该SUSP_REQ_ACC信号。微控制器12发出的时钟信号输入该触发器32的时钟输入端,且该触发器32的Q输出端输出FORCE_SUSP_INSTR信号。如前所述的该用户接口发出的RESET_MICRO_N信号重置触发器32。该FORCE_SUSP_INSTR信号与该微控制器时钟信号同步。该同步确保该FORCE_SUSP_INSTR信号的正确功能性,其包括两种功能。第一功能为重置触发器28,其通过将该FORCE_SUSP_INSTR信号反馈至触发器28的重置端(且在反相器29处反相)而达成。当该FORCE_SUSP_INSTR信号上升为高电平时,该挂起请求已被应答,这使得在该微控制器的下一活动时钟跳变时关断该FORCE_SUSP_INSTR,以使从ROM14读取该正确的挂起代码指令(参加下文)。
FORCE_SUSP_INST的第二功能为将多路复用器(或开关)36的输入转换为存储于ROM14中已知储存位置的固定指令SUSP_INSTR。该SUSP_INSTR指令为转移至ROM14中第一地址的一个跳转(JMP),所述地址中存储用于挂起序列的该代码指令。由此,在FORCE_SUSP_INSTR上升为高电平的时钟周期内,多路复用器36的输出(CURR_INSTR)为SUSP_INSTR。微控制器12接收该输出(SUSP_INSTR),其中该微控制器逻辑电路将该输出解码并执行之以使指向下一代码的指针移动(跳转)至该由SUS_INST指示的ROM14中的地址。微控制器12的算术逻辑单元(ALU)载入位于ROM地址逻辑电路38的第一计数器地址,该逻辑电路向ROM14输出该地址以读取该位于该地址的指令,该指令为该挂起序列的第一指令。由此该SUSP_INST输入指示该微控制器载入该挂起序列代码的第一指令。由于该下一微处理器时钟周期将FORCE_SUSP_INSTR设置为低电平(在上述的触发器28处),然后多路复用器36转换为其另一输入NEXT_INSTR以将该ROM14中的挂起序列的下一条指令输入多路复用器36,然后从该多路复用器将该指令输出至微控制器12。ROM地址逻辑电路38总是提供该挂起序列的下一条指令的地址以供执行。
该挂起序列的顺序指令类似地连续提供至微控制器12直至该挂起序列位于该ROM中的所有指令已被微控制器12载入及执行。该挂起序列关断所有用于运行该已挂起修改操作的电荷泵(未示)以及高电压,且在恢复该修改操作时,保存所使用的配置变量及值,如状态变量及时间安排值。该些配置变量及值可存储于方便的存储位置,例如未示逻辑元件的寄存器。
一旦该挂起序列完成,该快闪设备10的修改操作已完全挂起,且向触发器20提供该RESET_MICRO_N信号以关断该触发器。然后该用户通过该快闪存储设备执行所需操作,如在该快闪系统10的读取阵列模式下从阵列16的读取操作。
某些点上,当该用户的读取操作(及/或其他操作)完成,该快闪存储设备恢复该中断的修改操作。微控制器12读取该由挂起序列保存的配置变量及值,接通必需的电荷泵及电压,且恢复该中断的修改操作。
图2为电路50的实例的示意图,所述电路50实现了图1的该快闪存储设备10的逻辑电路26,以及实现了图1所示的一些其他元件。当条件适于应答该挂起请求及启动该挂起序列时,逻辑电路26向多路复用器24生成“真条件”。该真条件的生成及该挂起序列的启动根据任何实施例中的该特定中断修改操作及其特性与必要条件决定,并且可根据特定实现所需的该修改操作,如快闪储存器是单级或多级的等决定。电路50是用于多级快闪存储设备的电路实例,例如来自加利福尼亚州圣何塞的爱特梅尔股份有限公司(Atmel Corp.)多级快闪存储设备。
电路50将逻辑电路26实现为若干个处理状态变量及微控制器输出52的逻辑门。通过该微控制器或通过内部逻辑电路来设置诸如ERASE_STAT、SOFTP_STAT、PROG_COMM及PGM_ALL0_STAT的状态变量。例如,ERASE_STAT为由该微控制器设置的向电路指示擦除操作正在进行的状态变量。SOFTP_STAT为由该微控制器设置的指示恢复相正在进行的状态变量。PGM_ALL0_STAT为由该微控制器设置的指示程序相正在进行的状态变量。PROG_COMM为当该用户提供缓冲程序命令时由该用户命令接口设置的信号。诸如VERIFY、INC_DAC、CAN_SUSPEND及MODIFY的微控制器输出为该微控制器根据该嵌入代码生成的输出信号。例如,VERIFY为激活及指示校验操作的微控制器输出,所述校验操作用于校验已完成操作,而INC_DAC可为另一微控制器输出;例如,在所示实现中,INC_DAC为一微控制器输出,其累加该“DAC”输出值以增加在对快闪存储阵列16中的单元进行编程或擦除时由独立的数字-模拟控制器(DAC)所生成的电压。CAN_SUSPEND为指示可在该当前操作期间接收挂起请求的微控制器输出,及MODIFY为指示修改操作已开始的命令用户接口输出。
逻辑电路26包括接收该SOFTP_STAT及ERASE_STAT信号且向NAND门56输出的OR门54,所述NAND门56亦接收该VERIFY信号作为输入。该NAND门56的输出作为3输入NAND门58的输入之一。类似地,OR门60接收该PROG_COMM及PGM_ALL0_STAT信号且向NAND门62输出,所述NAND门62亦接收信号INC_DAC作为输入。NAND门62的输出作为NAND门58的输入之一。最后,AND门64接收CAN_SUSPEND及MODIFY信号作为输入,且其输出为NAND门58的输入之一。NAND门58的输出传送至多路复用器24以指示该真条件(当该输出为高电平)。
多路复用器24在图2的实例中示为包括从触发器20(图1)接收该SUSP_REQ信号及接收RP_REQ信号(例如来自该用户输入板的重置请求)的OR门70。OR门70的输出为AND门72的输入之一,所述AND门72亦从逻辑电路26的NAND门58接收该真条件信号作为其另一输入。AND门72的输出为多路复用器24的输出,其由触发器28作为时钟输入而接收,如先前参考图1所作的描述。触发器28亦从AND门74接收CDN输入,所述AND门74的输入为该经反相器反相的FORCE_SUSP_INSTR信号以及该MODIFY信号,因为该逻辑电路74仅需在修改操作期间起作用。如上述参考图1所述,触发器28输出为该SUSP_REQ_ACC信号,经触发器28输出端的缓冲器后输出。
应注意,在本发明的代替实施例中可提供逻辑电路26、多路复用器24及/或电路50中所示的其他逻辑电路的其他实现。
图3为说明本发明管理快闪存储器的挂起请求的方法100的流程图。方法100最好使用硬件以及可由微控制器12(或其他合适的处理器或计算机系统)执行的程序指令或代码来实现,并且存储于计算机可读介质,如存储器(ROM14或其他存储器)、硬盘驱动器、光盘(CD-ROM、DVD-ROM等)、磁盘等。较佳实施例中,某些特定的方法步骤以硬件(逻辑门等)实现,而诸如实现该挂起序列的其他步骤最好使用ROM14中的由微控制器12获取以执行的软件指令来实现。
该方法开始于步骤102,在步骤104中,启动并且处理修改操作。如上所述,该修改操作可为对该快闪储存阵列16进行修改或添加新值的程序操作、从该阵列16擦除值的擦除操作,或者其他修改该阵列内容的操作。
步骤106中,在该步骤104的修改操作继续运行且还未结束之时从该用户(或者其他来源,在此亦称为用户,如应用程序)接收挂起请求22。如前所述,可通过该用户使用与该快闪储存系统相适应的用户接口将该挂起请求输入快闪存储系统10。一般地,该用户输入该挂起请求作为执行读取该快闪存储系统操作的需求的一部分,如读取快闪存储阵列16中的存储器。
步骤108中,该方法检查该状态是否适于挂起该步骤104的修改操作。本发明中,当逻辑电路26根据状态变量及微控制器输出生成“真条件”时,该状态适于挂起,这些变量及输出本身基于该当前修改操作中的当前执行指令是否是可挂起的或可中断的。例如,该修改操作的当前指令可能无法中断而不造成功能性错误或问题(在此俱简略为错误);例如,一些类型的该修改操作指令被中断后可能难以正确地恢复该修改操作。该当前指令是否可被中断是根据状态变量及微控制器输出来判定的,如上述的逻辑电路26所执行的。由此,若该当前执行指令不应被执行,逻辑电路26不会生成真条件。
应注意,步骤108并非是在寄存器执行或者标志或其他数据的实际比较操作;而是该步骤仅仅表示只有在该状态适当时才执行步骤112。由于本发明无需执行特定的比较操作来检查寄存器标志以判定何时挂起该修改操作,由此该代码指令紧凑得多,因此,本发明较之现有实现优势明显。
步骤108中,若该条件不适于挂起,则在步骤108中执行该修改操作的下一条指令,并且该处理返回步骤108以再次判定该条件是否适于挂起。例如,典型的快闪存储器嵌入代码中,有大量不可中断的指令,但那些不可中断的指令一般在该代码中是不连续,藉此使得可在跟随该不可中断指令之后的可中断指令执行期间进行挂起操作。
一旦状态适于挂起该修改操作,步骤112中,该用户挂起请求发出的挂起信号与该微控制器时钟同步。如参考图1所描述的,可使用触发器32来执行之。下一步骤114中,通过跳转至存储于ROM14中的适当代码指令序列来启动该挂起序列。图1的实例中,这是通过使用多路复用器36来达成的,所述多路复用器由该FORCE_SUSP_INSTR信号转换以允许该微控制器跳转至ROM14中的该适当挂起序列。
步骤116中,执行该挂起序列直至其完成且该修改操作被挂起。如上所述,这可以通过执行ROM14中的所有该挂起代码指令来实现。可(在寄存器中)保存任何状态变量及其他特征从而在稍后正确地恢复该修改操作。
随着该修改操作被挂起,可在步骤118执行该用户对快闪存储设备10的读取操作(及/或其他所需的操作)。一旦该用户的操作完成,在步骤120恢复该挂起的修改操作,该步骤中可获取任何保存的状态变量及其他数据以正确恢复该修改操作。由此,该处理在步骤122完成。
由于本发明的处理使用的是挂起请求及修改操作挂起的自动检测(如使用硬件),其不需使用现有的每隔几行代码就执行一次查询以判定是否已接收到挂起请求软件方法,即使无挂起请求。现有技术中,查询指令须在最短时间段内执行以满足挂起该操作所需的该快闪存储器10的时间安排条件。本发明中,由于无需执行这些比较指令,因此更易满足该时间安排条件。此外,由于去除了该比较指令,本发明的嵌入代码极其紧凑,由此节省了存储该代码的成本。
尽管已根据所示的实施例描述了本发明,本技术领域的技术人员可容易地认识到可在本发明的精神及范围之内对这些实施例作出修改。因此,本技术领域的技术人员可在不脱离所附的权利要求书的精神及范围的情况下作出许多修改。

Claims (33)

1、一种管理快闪存储器中挂起请求的系统,所述系统包括:
执行快闪存储阵列修改操作的微控制器;
耦合至所述微控制器且存储挂起序列代码的存储器,所述挂起序列代码由所述微控制器执行时用于实现挂起序列以使所述修改操作挂起;及
耦合至所述微控制器及所述存储器的挂起电路,其中所述挂起电路从用户处接收挂起请求以挂起所述修改操作,并且其中所述挂起电路开始执行所述挂起序列代码。
2、如权利要求1所述的系统,其中当所述修改操作可被挂起而不会造成所述修改操作的错误之时,所述挂起电路开始执行所述挂起序列代码。
3、如权利要求2所述的系统,其中当所述修改操作的当前执行指令可被挂起而不会造成所述修改操作的错误之时,所述挂起电路开始执行所述挂起序列代码。
4、如权利要求1所述的系统,其中所述挂起电路包括锁存所述挂起请求直至所述挂起请求可被实现而不发生错误的触发器。
5、如权利要求1所述的系统,其中所述挂起电路包括开关及逻辑电路,其中所述逻辑电路判定所述挂起序列何时可以开始。
6、如权利要求5所述的系统,其中所述逻辑电路接收状态变量并且接收所述微控制器输出以判定所述挂起序列何时可以开始。
7、如权利要求1所述的系统,其中所述挂起电路包括至少一个用于提供信号的触发器,所述信号用于依照所述微控制器的时钟启动所述挂起序列。
8、如权利要求1所述的系统,其中所述挂起电路包括多路复用器,所述多路复用器用于当所述挂起序列开始之时选择所述挂起序列的开始代码地址,其中所述开始代码地址引用所述存储器中的存储位置。
9、如权利要求8所述的系统,其中所述多路复用器在所述微控制器开始所述挂起序列后选择所述挂起序列中的下一条指令。
10、如权利要求9所述的系统,其中来自触发器的信号设置所述多路复用器去选择开始代码地址,并且其中所述触发器关断所述信号以设置所述多路复用器以选择所述挂起序列中的下一条指令。
11、如权利要求1所述的系统,其中所述存储器为只读存储器(ROM)。
12、一种管理快闪存储器中挂起请求的方法,所述方法包括:
从用户处接收挂起请求信号以挂起快闪存储阵列的修改操作;
锁存所述挂起请求信号直至所述修改操作可被挂起而不会造成所述修改操作的错误;及
通过执行存储于存储器的挂起序列代码以挂起所述修改操作。
13、如权利要求12所述的方法,其中所述挂起请求的锁存由触发器执行。
14、如权利要求12所述的方法,其中当所述修改操作执行可中断指令时,可挂起所述修改操作。
15、如权利要求12所述的方法,其中硬件逻辑电路根据状态变量及微控制器输出来判定所述修改操作何时可被挂起。
16、如权利要求15所述的方法,其中当所述修改操作可被挂起时,允许所述挂起请求信号通过开关输入挂起请求电路,其中所述开关由所述硬件逻辑电路控制。
17、如权利要求12所述的方法,其中挂起所述修改操作包括向开关提供所述挂起请求信号,来向微控制器指示所述存储于所述存储器的挂起序列代码的开始地址。
18、如权利要求17所述的方法,其中所述开关在所述微控制器开始挂起序列后选择所述挂起序列中的下一条指令。
19、如权利要求18所述的方法,其中来自触发器的信号设置所述开关以选择开始代码地址,并且其中所述触发器设置所述信号以使所述开关选择所述挂起序列中的所述下一条指令。
20、如权利要求12所述的方法,进一步包括,当所述修改操作挂起时,从所述用户接收实现至少一项用户操作的信号。
21、如权利要求20所述的方法,其中所述用户操作为从所述快闪存储单元读取数据的读取操作。
22、如权利要求21所述的方法,进一步包括在所述至少一项用户操作完成后恢复所述修改操作。
23、如权利要求12所述的方法,其中利用至少一个触发器依照所述微控制器的时钟开始所述挂起序列。
24、一种管理快闪存储器中挂起请求的方法,所述方法包括:
执行来自所述快闪存储器的储存器中的嵌入软件代码指令以实现快闪存储阵列的修改操作;
从用户处接收挂起请求信号以挂起所述修改操作;及
使用硬件挂起电路挂起所述修改操作,而不执行检查所述挂起请求是否已收到的软件代码指令。
25、如权利要求24所述的方法,其中挂起所述修改操作包括当该指令可被中断而不会导致所述修改操作的错误之时,中断运行所述修改操作的指令。
26、如权利要求25所述的方法,其中当中断所述当前运行指令无法避免造成所述修改操作的错误之时,挂起所述修改操作包括等待并中断所述修改操作的下一条可被中断而不会造成所述修改操作错误的指令。
27、如权利要求26所述的方法,其中硬件逻辑电路根据状态变量及微控制器输出来判定所述修改操作何时可被中断及挂起。
28、如权利要求24所述的方法,进一步包括锁存挂起请求信号直至所述修改操作可被中断。
29、如权利要求24所述的方法,其中挂起所述修改操作包括执行存储于所述存储器的挂起序列代码。
30、如权利要求29所述的方法,其中挂起所述修改操作包括向开关提供挂起请求信号,来向微控制器指示所述存储于所述存储器的挂起序列代码的开始地址。
31、如权利要求30所述的方法,其中所述开关在所述微处理器开始挂起序列后选择所述挂起序列中的下一条指令。
32、如权利要求24所述的方法,进一步包括,当所述修改操作挂起时,从所述用户接收实现至少一项用户操作的信号。
33、如权利要求32所述的方法,进一步包括在所述至少一项用户操作完成后恢复所述修改操作。
CNA2006800025394A 2005-01-20 2006-01-19 管理快闪存储器中挂起请求的方法及系统 Pending CN101553789A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IT000063A ITMI20050063A1 (it) 2005-01-20 2005-01-20 Metodo e sistema per la gestione di una richiesta di sospensione in una memoria flash
ITMI2005A000063 2005-01-20
US11/145,457 2005-06-02

Publications (1)

Publication Number Publication Date
CN101553789A true CN101553789A (zh) 2009-10-07

Family

ID=36685302

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006800025394A Pending CN101553789A (zh) 2005-01-20 2006-01-19 管理快闪存储器中挂起请求的方法及系统

Country Status (4)

Country Link
US (1) US7302518B2 (zh)
CN (1) CN101553789A (zh)
IT (1) ITMI20050063A1 (zh)
TW (1) TWI358069B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101051703B1 (ko) 2004-08-09 2011-07-25 삼성전자주식회사 서스펜드/리쥼 기능을 갖는 집적 회로 카드 및 집적 회로카드 시스템
KR100725417B1 (ko) * 2006-02-22 2007-06-07 삼성전자주식회사 우선 순위에 따른 플래시 메모리의 연산 처리 장치 및 방법
KR20070089460A (ko) * 2006-02-28 2007-08-31 삼성전자주식회사 우선 순위에 따른 비휘발성 메모리의 연산 처리 장치 및방법
KR100843136B1 (ko) * 2006-11-14 2008-07-02 삼성전자주식회사 비휘발성 메모리에서 연산 처리를 제어하는 장치 및 그방법
US7414891B2 (en) 2007-01-04 2008-08-19 Atmel Corporation Erase verify method for NAND-type flash memories
US7882405B2 (en) * 2007-02-16 2011-02-01 Atmel Corporation Embedded architecture with serial interface for testing flash memories
US20080276050A1 (en) * 2007-05-02 2008-11-06 Yu-Cheng Hsieh Erase handling method for non-volatile memory and electronic apparatus thereof
US7969803B2 (en) * 2008-12-16 2011-06-28 Macronix International Co., Ltd. Method and apparatus for protection of non-volatile memory in presence of out-of-specification operating voltage
US8850103B2 (en) * 2009-08-28 2014-09-30 Microsoft Corporation Interruptible NAND flash memory
JP5597104B2 (ja) * 2010-11-16 2014-10-01 キヤノン株式会社 データ転送装置及びその制御方法
US8819328B2 (en) 2010-12-30 2014-08-26 Sandisk Technologies Inc. Controller and method for performing background operations
US9298910B2 (en) * 2011-06-08 2016-03-29 Mcafee, Inc. System and method for virtual partition monitoring
US20130318285A1 (en) * 2012-05-23 2013-11-28 Violin Memory Inc Flash memory controller
CN104471549B (zh) * 2012-06-28 2017-06-16 三菱电机株式会社 读取请求处理装置
US11733908B2 (en) * 2013-01-10 2023-08-22 Pure Storage, Inc. Delaying deletion of a dataset
US9857988B1 (en) * 2016-07-10 2018-01-02 Winbond Electronics Corporaiton Data management in multiply-writeable flash memories
US11036544B2 (en) * 2019-02-12 2021-06-15 Samsung Electronics Co., Ltd. Memory controller and method controlling suspend mode
KR20210108466A (ko) * 2019-05-05 2021-09-02 양쯔 메모리 테크놀로지스 씨오., 엘티디. 시퀀스 프로세싱 유닛이 있는 메모리 제어 시스템
US11556485B1 (en) * 2021-08-31 2023-01-17 Apple Inc. Processor with reduced interrupt latency

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5333300A (en) 1991-02-11 1994-07-26 Intel Corporation Timing circuitry and method for controlling automated programming and erasing of a non-volatile semiconductor memory
US5355464A (en) 1991-02-11 1994-10-11 Intel Corporation Circuitry and method for suspending the automated erasure of a non-volatile semiconductor memory
US5737748A (en) 1995-03-15 1998-04-07 Texas Instruments Incorporated Microprocessor unit having a first level write-through cache memory and a smaller second-level write-back cache memory
US5805501A (en) * 1996-05-22 1998-09-08 Macronix International Co., Ltd. Flash memory device with multiple checkpoint erase suspend logic
US6148360A (en) * 1996-09-20 2000-11-14 Intel Corporation Nonvolatile writeable memory with program suspend command
US6201739B1 (en) * 1996-09-20 2001-03-13 Intel Corporation Nonvolatile writeable memory with preemption pin
US5940861A (en) * 1996-09-20 1999-08-17 Intel Corporation Method and apparatus for preempting operations in a nonvolatile memory in order to read code from the nonvolatile memory
JPH10177563A (ja) * 1996-12-17 1998-06-30 Mitsubishi Electric Corp フラッシュメモリ内蔵マイクロコンピュータ
US20010011318A1 (en) * 1997-02-27 2001-08-02 Vishram P. Dalvi Status indicators for flash memory
US6189070B1 (en) * 1997-08-28 2001-02-13 Intel Corporation Apparatus and method for suspending operation to read code in a nonvolatile writable semiconductor memory
US5822244A (en) * 1997-09-24 1998-10-13 Motorola, Inc. Method and apparatus for suspending a program/erase operation in a flash memory
US6081870A (en) * 1997-11-06 2000-06-27 Micron Technology, Inc. Method and apparatus to achieve fast suspend in flash memories
JPH11203266A (ja) * 1998-01-07 1999-07-30 Mitsubishi Electric Corp マイクロコンピュータ
KR100290474B1 (ko) * 1998-06-11 2001-06-01 박종섭 다단계 펄스 발생 회로 및 이를 이용한 플래쉬 메모리 셀의소거 방법
US6604136B1 (en) 1998-06-27 2003-08-05 Intel Corporation Application programming interfaces and methods enabling a host to interface with a network processor
KR100351934B1 (ko) * 1999-06-22 2002-09-12 삼성전자 주식회사 상태 읽기 동작을 갖는 플래시 메모리 장치
US7032081B1 (en) * 2000-07-31 2006-04-18 M-Systems Flash Disk Pioneers Ltd. System and method for enabling non-volatile memory to execute code while operating as a data storage/processing device
DE60042272D1 (de) 2000-10-06 2009-07-09 St Microelectronics Srl Interne Addressierungsstruktur eines Halbleiterspeichers
DE60129294D1 (de) 2001-02-19 2007-08-23 St Microelectronics Srl Verfahren zur Auffrischung der gespeicherten Daten in einem elektrisch lösch- und programmierbaren nichtflüchtigen Speicher
US6715101B2 (en) 2001-03-15 2004-03-30 Hewlett-Packard Development Company, L.P. Redundant controller data storage system having an on-line controller removal system and method
US6802023B2 (en) 2001-03-15 2004-10-05 Hewlett-Packard Development Company, L.P. Redundant controller data storage system having hot insertion system and method
US6708285B2 (en) 2001-03-15 2004-03-16 Hewlett-Packard Development Company, L.P. Redundant controller data storage system having system and method for handling controller resets
US6754854B2 (en) 2001-06-04 2004-06-22 Motorola, Inc. System and method for event monitoring and error detection
US7062616B2 (en) * 2001-06-12 2006-06-13 Intel Corporation Implementing a dual partition flash with suspend/resume capabilities
US6552935B2 (en) 2001-08-02 2003-04-22 Stmicroelectronics, Inc. Dual bank flash memory device and method
US6725178B2 (en) 2002-01-15 2004-04-20 International Business Machines Corporation Use of hidden partitions in a storage device for storing BIOS extension files
US6934873B2 (en) 2002-02-28 2005-08-23 Dell Products L.P. Automatic BIOS recovery in a multi-node computer system
US7263512B2 (en) 2002-04-02 2007-08-28 Mcgoveran David O Accessing and updating views and relations in a relational database
US7424268B2 (en) 2002-04-22 2008-09-09 Cisco Technology, Inc. System and method for management of a shared frequency band
US7203939B2 (en) 2002-06-04 2007-04-10 Mirapoint, Inc. Dense allocation for data storage
JP2004030438A (ja) * 2002-06-27 2004-01-29 Renesas Technology Corp マイクロコンピュータ
US7408907B2 (en) 2002-09-11 2008-08-05 Cisco Technology, Inc. System and method for management of a shared frequency band using client-specific management techniques
US7237102B2 (en) 2002-10-30 2007-06-26 Intel Corporation Methods and apparatus for configuring hardware resources in a pre-boot environment without requiring a system reset
ITRM20030198A1 (it) * 2003-04-28 2004-10-29 Micron Technology Inc Monitor ad unita' di controllo basata su rom in un
US6930925B2 (en) * 2003-10-14 2005-08-16 Atmel Corporation Suspend-resume programming method for flash memory
KR101051703B1 (ko) * 2004-08-09 2011-07-25 삼성전자주식회사 서스펜드/리쥼 기능을 갖는 집적 회로 카드 및 집적 회로카드 시스템

Also Published As

Publication number Publication date
TWI358069B (en) 2012-02-11
TW200632936A (en) 2006-09-16
US20060161727A1 (en) 2006-07-20
ITMI20050063A1 (it) 2006-07-21
US7302518B2 (en) 2007-11-27

Similar Documents

Publication Publication Date Title
CN101553789A (zh) 管理快闪存储器中挂起请求的方法及系统
US20190107948A1 (en) Method and apparatus for memory management
US7321951B2 (en) Method for testing flash memory power loss recovery
US7322029B2 (en) Method and system for recovering program code in a computer system
KR100988157B1 (ko) 메모리 디바이스 구성을 검출하기 위한 방법 및 장치와, 메모리 디바이스 구성을 검출하기 위한 방법을 수행하기 위한 명령들을 포함하는 컴퓨터 판독 가능 매체
US9146691B2 (en) Method for managing commands in command queue, memory control circuit unit and memory storage apparatus
CN102023908A (zh) 一种引导程序备份方法及装置
US6189070B1 (en) Apparatus and method for suspending operation to read code in a nonvolatile writable semiconductor memory
EP1934727A1 (en) Method and system for in-place updating content stored in a storage device
KR100604877B1 (ko) 내장 시스템의 메모리 어드레스의 매핑을 제어하는 장치와방법
JP2008009721A (ja) 評価システム及びその評価方法
US9858366B2 (en) Simulator and simulating method for flash memory background
CN109240729A (zh) 一种修复固件代码的方法及系统
CN104035757A (zh) 基于MIPS处理器的u-boot移植的实现方法
US7590793B2 (en) Data access controlling method in flash memory and data access controlling program
CN115576766A (zh) 闪存管理算法调试方法、系统、设备和可读存储介质
CN110383232B (zh) 具有序列处理单元的存储器控制系统
KR100325702B1 (ko) 플래쉬메모리셀의소거방법및그회로
JP2012238277A (ja) フラッシュメモリ装置
KR20000033437A (ko) 부트스트랩로더 기능 구현 장치
CN116185457A (zh) 数据更新方法、集成电路芯片、电子设备和存储介质
CN114281351A (zh) 应用操作方法、电子设备及存储介质
WO2006078744A2 (en) Method and system for managing a suspend request in a flash memory
CN117494407A (zh) 一种加速中央处理单元验证的方法及计算设备
KR100640612B1 (ko) 메인 코드 기입 방법 및 장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20091007