CN101183345B - 控制非易失性存储器中的操作处理的设备和方法 - Google Patents
控制非易失性存储器中的操作处理的设备和方法 Download PDFInfo
- Publication number
- CN101183345B CN101183345B CN2007101675517A CN200710167551A CN101183345B CN 101183345 B CN101183345 B CN 101183345B CN 2007101675517 A CN2007101675517 A CN 2007101675517A CN 200710167551 A CN200710167551 A CN 200710167551A CN 101183345 B CN101183345 B CN 101183345B
- Authority
- CN
- China
- Prior art keywords
- general
- value
- request
- preemption
- nonvolatile 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2216/00—Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
- G11C2216/12—Reading and writing aspects of erasable programmable read-only memories
- G11C2216/20—Suspension of programming or erasing cells in an array in order to read other cells in it
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
一种控制非易失性存储器中的操作处理的设备,该设备包括:紧急请求管理单元,当发送来基于紧急请求的操作时,设置先占标志和状态备份标志的值;状态检查单元,检查先占标志和状态备份标志的设置值;操作处理单元,根据检查的值来处理基于紧急请求的操作和基于一般请求的操作。
Description
本申请要求于2006年11月14日提交到韩国知识产权局的第2006-112411号韩国专利申请的权益,该申请公开于此以资参考。
技术领域
本发明的各方面涉及一种控制非易失性存储器中的操作处理的设备和方法,更具体地讲,涉及这样一种控制操作处理的设备和方法,其中,当在一般操作正被处理时发送来用于紧急请求的操作时,该设备和方法暂停一般操作,然后优先执行紧急操作。
背景技术
近来,由于对执行各种复杂功能且具有改善的多媒体功能的移动装置的需求,消费者对移动装置中的更大的软件和更大的用户数据容量的需求正在增加。相应地,对用于存储代码和用户数据的大的非易失性存储器以及用于对代码进行操作的大的易失性存储器的需求增加,因此增加了移动装置的成本。
传统的移动装置使用NOR闪存作为用于引导和存储代码的非易失性存储器,使用NAND闪存来存储用户数据,使用DRAM来用作易失性存储器。然而,许多移动装置制造商使用将代码和用户数据都存储在NAND闪存中的方法,以便减小成本并提高功能性。由于NAND闪存不能进行芯片内执行(“XIP”),而NOR闪存可以进行芯片内执行,所以NAND闪存将所有代码载入RAM中以便运行所述代码。近来,已开发出使用请求分页调度(demandpaging)的虚拟存储器系统,以便减小RAM的大小。请求分页调度指NAND闪存被用作辅助后备(backing)装置的一种技术。在请求分页调度中,不是将代码一次载入RAM,而是如果访问的页不存在于RAM中,则该页单独地被载入RAM中。
访问的页不存在于RAM中的情况被称为例外情况(exceptional case)。如果例外情况没有被处理,则不能执行系统操作。因此,必须从NAND闪存中读取访问的页,然后将其载入RAM中,以便运行代码。由于NAND闪存不仅存储代码,而且存储用户数据,所以当在例外情况中下载代码页时,NAND闪存可能还被用于存储和提取用户数据。在这种情况下,例外情况应该被优先处理。因此,在例外情况发生时正在执行的读取、写入或擦除操作应该被暂停(suspend),以优先处理例外情况。
图1示出在普通NAND闪存中执行的读取和写入操作。如图1所示,非易失性存储器,例如NAND闪存20一页一页地执行写入和读取操作。当NAND闪存20接收到执行读取操作的命令时,NAND闪存20将相应的页载入页寄存器21中。此时,NAND闪存20的状态为“busy(忙)”。当所有的数据都被载入页寄存器21中时,所述数据被发送给主机存储器10。在数据被发送时,NAND闪存20的状态为“ready(准备就绪)”。在“ready”状态时,NAND闪存20能够接收命令。因此,读取操作直到所有的数据都从页寄存器21发送到主机存储器10才完成。
与之相比,写入操作将数据从主机存储器10发送到页寄存器21。在数据从主机存储器10被发送到页寄存器21时,NAND闪存20的状态为“ready”。在所有数据都从主机存储器10发送到页寄存器21之后,当接收到写入命令时,存储在页寄存器21中的数据被写入到NAND单元22中。在页寄存器21的数据被写入时,NAND闪存20的状态改变为“busy”。在“busy”状态时,NAND闪存20不能接收另外的命令。在完成写入之后,写入操作的结果被存储在NAND闪存20的状态寄存器中。
第2001-026600号韩国未审查专利公开了“A Method of Processing FlashMemory in Real Time(实时处理闪存的方法)”。根据该方法,当请求访问闪存的预定块以便执行读取或写入操作时,确定是否可进行访问,并且如果可进行这样的访问,则确定是否正在处理擦除操作,并且如果需要,随后暂停擦除操作以便执行读取或写入操作。然而,第2001-026600号韩国未审查专利没有公开当在一般操作正在执行时发送来用于执行紧急操作的请求时,优先执行该紧急操作的任何技术。
发明内容
本发明的各个方面和示例性实施例涉及当在基于一般请求的操作正被处理时发送来紧急请求时优先处理基于紧急请求的紧急操作。
另外,本发明的各方面提高使用非易失性存储器的装置的性能。
根据本发明的一方面,一种控制非易失性存储器的操作的设备包括:紧急请求管理单元,当发送来紧急请求时,设置先占标志的值以指示基于一般请求的操作是否被暂停,设置状态备份标志的值以指示基于一般请求的操作的结果是否被存储;状态检查单元,检查先占标志和状态备份标志的设置值;操作处理单元,当发送来紧急请求时,暂停基于一般请求的操作,优先处理基于紧急请求的操作,并且在基于紧急请求的操作完成之后,根据检查的先占标志和状态备份标志的值来继续处理暂停的基于一般请求的操作。
根据本发明的另一方面,一种与控制非易失性存储器中的操作处理的设备对应的控制非易失性存储器的操作的方法,该方法包括:当发送来用于处理操作的紧急请求时,暂停基于一般请求的操作,优先处理基于紧急请求的操作;设置先占标志的值以指示基于一般请求的操作被暂停,设置状态备份标志的值以指示基于一般请求的操作的结果是否被存储;在基于紧急请求的操作完成之后,根据检查的先占标志和状态备份标志的值来继续处理暂停的基于一般请求的操作。
本发明的另外方面和/或优点将在下面的描述中被部分地阐述,并且部分地根据描述将变得明显,或者可通过实施本发明而了解。
附图说明
通过下面结合附图对实施例的描述,本发明的这些和/或其他方面和优点将变得清楚并更容易理解,其中:
图1示出在普通NAND闪存中执行的读取和写入操作;
图2示出根据本发明示例性实施例的在非易失性存储器中的装置驱动器中执行基于紧急请求或一般请求的操作;
图3是示出根据本发明示例性实施例的控制非易失性存储器中的操作的主机设备的框图;
图4是根据本发明示例性实施例的处理非易失性存储器中的基于一般读取请求的操作的流程图;
图5是根据本发明示例性实施例的非易失性存储器中的基于一般写入请求的操作的流程图;
图6是根据本发明示例性实施例的非易失性存储器中的基于一般擦除请求的操作的流程图;
图7是根据本发明示例性实施例的非易失性存储器中基于紧急读取请求的操作的流程图。
具体实施方式
现在,将详细描述本发明的当前实施例,附图中示出了其示例,在附图中,相同的标号始终表示相同的部件。下面,将参照附图描述实施例以解释本发明。通过参照下面对示例性实施例的详细描述及附图,本发明以及实现本发明的方法的优点和特点可更容易理解。然而,本发明的各方面可以以许多不同的形式实施,而不应被解释为限于这里阐述的实施例。相反,提供这些实施例是为了本公开将全面和完整,并将充分向本领域技术人员传达本发明的构思,本发明的各方面将仅由权利要求限定。
图2示出根据本发明示例性实施例的在具有非易失性存储器的存储装置100中执行用于处理紧急请求或一般请求的操作。如图2所示,具有非易失性存储器的存储装置100包括装置驱动器200和闪存240。装置驱动器200处理基于一般请求的操作(也被称为一般操作)以将数据记录到非易失性存储器和/或从非易失性存储器再现数据,并处理基于紧急请求的操作(也被称为紧急操作)以将另外的数据记录到非易失性存储器和/或从非易失性存储器再现另外的数据,当发送来基于紧急请求的操作时,该装置驱动器200暂停处理基于一般请求的操作,然后处理基于紧急请求的操作。在下面的附图中,装置驱动器200将被描述为“操作处理控制”装置。闪存240(例如,NAND闪存)存储装置驱动器200所处理的数据。应该理解,闪存240不限于NAND闪存,相反,闪存240可以是现有技术中已知的各种其它类型的非易失性存储器,如EEPROM等。
在图2所示的存储装置100中,使用信号量(semaphore)以便基于其它一般请求的其它操作不被处理,直到基于最初发送来的一般请求的最初的操作完成为止。然而,即使在一般请求正被处理时,紧急请求的发送也能够通过暂停基于该一般请求的操作来处理读取、写入或擦除操作。因此,存储装置100能够快速响应于紧急请求以处理应该被快速处理的紧急操作,例如,处理使用实时应用所需的代码。
当一般请求处理例程(routine)230正在运行时,紧急请求处理例程210暂停基于一般请求的操作的处理。为了暂停处理基于一般请求的操作,一般请求处理例程230检查用于处理一般请求的操作是否已在该一般操作正被处理时为了用于处理紧急请求的操作而被暂停。具体地讲,一般请求处理例程230检查先占(pre-empt)标志226,该先占标志226指示基于一般请求的操作是否被暂停。
例如,一般请求处理例程230在处理一般请求之前将先占标志设置为“0”,并处理基于一般请求的操作。此外,紧急请求处理例程210每当处理紧急请求时就将先占标志设置为“1”。然后,一般请求处理例程230通过检查先占标志226来确定是否重新处理用于一般读取、写入或擦除请求的操作。如果具有非易失性存储器的存储装置100支持暂停或恢复(resume)命令,则存储装置100通过使用暂停和恢复命令来保持读取、写入和/或擦除操作的处理,而无需重新执行写入或擦除。
当具有非易失性存储器的存储装置100正在处理基于一般请求的操作时,可在暂停用于一般请求的操作之后处理紧急请求,或者可在完成用于一般请求的操作之后处理紧急请求。在处理基于一般请求的操作期间,存储装置100准备好存储数据,但是一般请求处理例程230还没有检查状态寄存器值。如果紧急请求处理例程210执行读取、写入或擦除操作,则紧急请求的处理结果被反映在存储装置100的状态寄存器中。因此,存在这样的问题:一般请求处理例程230不能确定已执行的基于一般请求的操作的结果。为了解决这一问题,紧急请求处理例程210将已执行的操作的结果存储在备份状态224中,并将状态备份标志222设置为“1”,以指示基于一般请求的操作已执行。当先占标志226被设置为“1”并且状态备份标志222也被设置为“1”时,一般请求处理例程230通过检查标志单元220中的存储的备份状态224来校验已执行的操作的处理结果。
此外,紧急请求处理例程210根据正在处理的操作的类型来执行其它操作。为了执行这些其它操作,紧急请求处理例程210应该确定处理的基于一般请求的操作的类型。闪存240使用状态寄存器来指示正被处理的操作的类型。然而,在一些情况下,使用不是作为硬件而被支持的存储器。在这种情况下,当基于一般请求的操作被执行时,使用操作类型标志来设置相应的操作类型,以使紧急请求处理例程210能够在随后确定处理信息。
在一些情况下闪存240可能需要重置存储装置100,以便暂停正在执行的闪速输入/输出(I/O)操作,而执行新的闪速I/O操作。在这种情况下,当闪存240在暂停正在执行的闪速I/O操作之后开始执行新的闪速I/O操作时,紧急请求处理例程210将重置命令发送给存储装置100,并处理基于紧急请求的操作。
图3是示出根据本发明示例性实施例的控制非易失性存储器中的操作的主机设备300的框图。这样的主机设备可以是例如移动电话、膝上型计算机、PDA和任何其它类型的移动装置。然而,本发明的各方面不限于在移动装置中使用,而是还可以用在固定装置,如台式计算机中。如图3所示,主机设备300包括输入单元310、紧急请求管理单元320、状态检查单元330、操作处理单元340、存储单元350和控制单元360。
这里使用的术语“单元”表示(但不限于)执行特定任务的软件和/或硬件组件,如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。模块可方便地构造为位于可寻址存储介质上,并被构造为在一个或多个处理器上运行。因此,模块可包括(例如)诸如软件组件、面向对象的软件组件、类组件和任务组件的组件、进程、函数、属性、过程、子程序、程序代码段、驱动器、固件、微码、电路、数据、数据库、数据结构、表、数组和变量。组件和模块中提供的功能可被组合为更少的组件和模块,或者被进一步分为另外的组件和模块
输入单元310接收从用户输入单元(未示出)发送来的用于处理基于一般请求和紧急请求的操作的命令。用户输入单元可以以各种形式(例如键盘、按钮、计算机鼠标、触摸屏等)来实现,并且可与主机存储器或应用一起使用。
紧急请求管理单元320设置先占标志226和状态备份标志222的值。如果由于在用于处理一般请求的操作正被处理时发送来用于处理紧急请求的操作,从而用于处理一般请求的操作被暂停,则紧急请求管理单元320将先占标志226设置为“1”。另外,当用于处理一般请求的操作被处理时,先占标志226被初始化(或设置)为“0”。
如果由于在基于一般请求的操作完成之后发送来基于紧急请求的操作,从而基于一般请求的操作的处理结果没有被校验,则紧急请求管理单元320命令控制单元360将基于一般请求的操作的处理结果存储在存储单元350中。如果基于一般请求的操作的处理结果被存储在存储单元350中,则紧急请求管理单元320将状态备份标志222设置为“1”,以便指示基于一般请求的操作的处理结果被存储在存储单元350中。
检查由紧急请求管理单元320设置的先占标志226和状态备份标志222的设置值的状态检查单元330利用先占标志226检查基于紧急请求的操作是否被执行,并利用状态备份标志222检查基于一般请求的操作是否被执行。如果操作控制设备200在基于一般请求的操作完成之后执行基于紧急请求的操作,则基于一般请求的操作的结果被存储在存储单元350中,并且紧急请求管理单元320将状态备份标志222设置为“1”。然后,状态检查单元330可通过检查状态备份标志222来确定基于一般请求的操作的处理结果是否被存储。
操作处理单元340处理基于一般请求的操作和基于紧急请求的操作。当发送来基于紧急请求的操作时,操作处理单元340暂停基于一般请求的操作的处理,并优先执行基于紧急请求的操作。根据本发明的一方面,操作处理单元340具有两个不同的处理单元,这两个处理单元分别用于执行基于一般请求的操作和基于紧急请求的操作。当用户向操作处理单元340发送用于紧急请求的操作时,操作处理单元340自动暂停正在处理的基于一般请求的操作的处理,或者针对基于一般请求的操作切换到待机模式并保持待机模式,直到正在处理的操作完成为止。应该理解,操作处理单元340不限于具有分别用于处理基于一般请求的操作和基于紧急请求的操作的两个不同的处理单元,相反,操作处理单元340可具有用于处理一般请求和紧急请求二者的一个处理单元,或者可具有超过两个的处理单元,这些处理单元分别处理各种类型的一般和/或紧急请求,例如读取、写入和擦除操作。
在操作处理单元340完成基于紧急请求的操作之后,操作处理单元340根据状态检查单元330所检查的先占标志226的值来执行基于一般请求的操作。如果状态检查单元330所检查的先占标志226为“1”,则操作处理单元340确定在用于处理一般请求的操作正被处理时用于处理紧急请求的操作被处理,并重新执行用于处理一般请求的操作。应该理解,先占标志226不限于用“1”来表示紧急请求被处理,相反,先占标志226可被设置为任何预定值以表示紧急请求被处理。另外,应该理解,状态备份标志222不限于用“1”来表示基于一般请求的操作的结果被存储,而是可以被设置为任何预定值。
如果状态检查单元330所检查的先占标志226为“1”并且状态检查单元330所检查的状态备份标志222也为“1”,则操作处理单元340确定在用于处理一般请求的操作完成之后基于紧急请求的操作被处理。然后,操作处理单元340检查存储在存储单元350中的基于一般请求的操作的处理结果。
存储单元350存储操作处理单元340所处理的数据以及由于经输入单元310发送来的紧急请求而被暂停的基于一般请求的操作的处理结果。存储单元350可以是各种类型的存储器,如NAND闪存、NOR闪存或其它类型的存储器。
控制单元360控制主机设备300中的由方框310、320、330、340和350表示的每一功能组件。控制单元360可以是本领域公知的各种类型的控制单元,如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、微处理器等。
图4是根据本发明示例性实施例的处理基于发送到非易失性存储器的一般读取请求的操作的流程图。假设非易失性存储器指示正被执行的操作的类型。
在操作S410,操作处理单元340处理通过输入单元310请求的读取操作。此时,先占标志226已被设置为“0”。操作S410、S430、S450、S460和S470被称为“临界区(critical section area)”,由这些操作周围绘制的虚线框表示。在临界区中,不发生软件上下文切换(context switching)。换言之,由于在临界区中不处理其它操作,所以临界区中没有紧急请求。
在操作S420,操作处理单元340将请求的数据加载到存储单元350中。在操作S430,操作处理单元340检查由状态检查单元330检查的先占标志226是否为“1”。执行操作S430是为了检查用于处理紧急请求的操作是否正被执行。
如果在操作S430,操作处理单元340确定先占标志226不为“1”,则在操作S440,操作处理单元340将加载的数据发送到主机存储器。在操作S440,在加载的数据已从操作处理单元340发送到主机存储器之后,在操作S450,操作处理单元340通过重新检查先占标志226来检查是否为了处理基于紧急请求的操作而暂停数据发送。
如果在操作S450,操作处理单元340确定先占标志226不为“1”,则在操作S460,操作处理单元340校验发送的数据的纠错码(ECC)。应该理解,发送的数据可使用各种ECC,如Hamming码、Reed-Solomon码等。还应该理解,发送的数据不是必须使用ECC。
如果在操作S430,操作处理单元340确定先占标志226为“1”,则操作处理单元340确定用于处理紧急请求的操作被处理。然后,在操作S470,操作处理单元340将先占标志226设置为“0”,然后在操作S410中从“开始”处理读取操作。
图5是根据本发明示例性实施例的处理基于发送到非易失性存储器的一般写入请求的操作的流程图。首先,在操作S510,用户输入单元向输入单元310发送将写入闪存300的数据。此时,先占标志226被初始化(或设置)为“0”。
在操作S510中数据已被发送给输入单元310之后,在操作S520,状态检查单元330检查先占标志226的设置值以检查是否正在执行用于处理紧急请求的操作。这里,操作S520、S530、S540、S560、S570和S590是如上面参照图4所描述的临界区一样的临界区。如上所述,在临界区中没有软件上下文切换,换言之,由于在临界区中不处理其它操作,所以在临界区中不处理紧急请求。
如果在操作S520,状态检查单元330确定先占标志226被设置为“1”,则状态检查单元330确定在写入操作正被处理时用于处理操作的紧急请求被处理。因此,在操作S580,操作处理单元340将先占标志226初始化(或设置)为“0”,然后在操作S510从“开始”处理写入操作。
如果在操作S520,状态检查330确定先占标志226不为“1”,则在操作S530,操作处理单元340处理对加载的数据的写入操作,并在操作S540对写入操作进行初始化,或者换句话说,将状态备份标志222设置为“0”。如果在操作S530,在写入操作正被处理时基于紧急请求的操作被处理,则在操作S530中处理的写入操作的最近的处理结果丢失。因此,在用于紧急请求的操作被执行时,执行操作S540以通过将状态备份标志222初始化为“0”来存储写入操作的最近的处理结果。
在操作S550中操作处理单元340完成写入操作的处理之后,在操作S560,状态检查单元330检查先占标志226和状态备份标志222,以便检查先占标志226是否为“1”以及状态备份标志222是否为“1”。如果在操作S560,状态检查单元330确定先占标志226和状态备份标志222均为“1”,则状态检查单元330确定在写入操作完成之后用于处理紧急请求的操作被执行。因此,操作处理单元340将在用于紧急请求的操作被处理之前被处理的操作的结果存储在了存储单元350中。在操作S590,操作处理单元340校验存储在存储单元350中的写入操作的结果。
如果在操作S560,状态检查单元330确定先占标志226和状态备份标志222都不为“1”,则状态检查单元330确定在写入操作被处理时没有用于紧急请求的操作被处理。因此,在操作S570,操作处理单元340将写入操作的结果存储在非易失性存储器,如闪存240(图2)中,并校验存储在非易失性存储器中的写入操作的结果。
图6是根据本发明示例性实施例的处理基于发送到非易失性存储器的一般擦除请求的操作的流程图。在操作S610,操作处理单元340处理通过用户输入单元310请求的擦除操作。对此,先占标志226和状态备份标志222被初始化(或设置)为“0”。操作S610、S630、S640和S650是如上面参照图4所描述的临界区一样的临界区。如上所述,在临界区中没有软件上下文切换,换言之,由于在临界区中不处理其它操作,所以在临界区中不处理紧急请求。
在操作S620,操作处理单元340完成擦除操作。在操作S630,状态检查单元330检查先占标志226和状态备份标志222是否都为“1”。
如果在操作S630,状态检查单元330确定先占标志226和状态备份标志222都为“1”,则状态检查单元330确定在操作S620中完成擦除操作之后基于紧急请求的操作被处理。因此,操作处理单元340将在基于紧急请求的操作被处理之前被处理的操作的结果存储在了存储单元350中。在操作S650,操作处理单元340校验存储在存储单元350中的擦除操作的结果。
如果在操作S630,状态检查单元330确定先占标志226和状态备份标志222都不为“1”,则状态检查单元330确定在擦除操作期间,操作处理单元340没有处理基于紧急请求的任何操作。在操作S640,操作处理单元340校验非易失性存储器中的擦除操作的结果。
图7是根据本发明示例性实施例的处理基于发送到非易失性存储器的紧急读取请求的操作的流程图。当发送来基于紧急读取请求的操作时,在操作S710,通过检查关于执行的操作的信息来检查最近执行的操作。图7中执行的每一操作均在如上面参照图4所描述的临界区中。如上所述,在临界区中没有软件上下文切换,换言之,由于在临界区中不处理其它操作,所以没有紧急请求的处理。
在操作S710之后,如果在操作S712,操作处理单元340执行基于一般写入请求的操作,则在操作S714,主机设备300进入待机模式,直到主机设备300的状态为“ready”。当主机设备300的状态为“ready”时,在操作S716,状态检查单元330检查状态备份标志222的值是否为“0”。
如果在操作S716,状态检查单元330确定状态备份标志222为“0”,则在操作S718,在处理基于紧急读取请求的操作之前,操作处理单元340存储基于一般写入请求的操作的结果。然后,在操作S720,紧急请求管理单元320将状态备份标志222设置为“1”。另一方面,如果在操作S716,状态检查单元330确定状态备份标志222不为“0”,即状态备份标志222为“1”,则由于写入操作的结果被存储在存储单元350中,所以操作处理单元340在不执行操作S718和S720的情况下处理基于紧急读取请求的操作。当在操作S722,操作处理单元340完成基于紧急读取请求的操作的处理时,在操作S724,紧急请求管理单元320将先占标志226设置为“1”。然后,在操作S726,操作处理单元340重新开始基于一般写入请求的操作。
在操作S710之后,在操作S730,如果操作处理单元340处理基于一般读取请求的操作,则在操作S732,操作处理单元340进入待机模式,直到主机设备300的状态改变为“ready”为止。当主机设备300的状态为“ready”时,在操作S720,紧急请求管理单元230将状态备份标志222的设置值设置为“1”。然后,执行操作S722、S724和S726。
在操作S710之后,在操作S740,如果操作处理单元340处理基于一般擦除请求的操作,则在操作S742,检查主机设备300是处于ready状态还是busy状态。如果主机设备300不处于ready状态,即,如果主机设备300处于busy状态,则在操作S744,暂停正在处理的擦除操作,并且在操作S746,操作处理单元340进入待机模式,直到主机设备300变为“ready”状态为止。当主机设备300处于“ready”状态时,在操作S722,操作处理单元340处理基于紧急读取请求的操作。然后,执行操作S724和S726。
如上参照图7所述,操作处理单元340直到主机设备300处于“ready”状态才处理基于紧急请求的操作。然而,本发明的各方面不限于等待直到主机设备300处于“ready”状态才处理基于紧急请求的操作的操作处理单元340。例如,操作处理单元340可以自动处理基于紧急请求的操作,而非等待主机设备300改变为“ready”状态。
本发明的各方面不仅可应用于基于紧急读取请求的操作,而且可应用于基于紧急写入和/或擦除请求的操作。另外,本发明的各方面不限于执行单个读取、写入或擦除操作,而是可以执行这些操作的组合,或者可执行其它类型的操作。
如上所述,根据本发明各方面的控制非易失性存储器中的操作处理的设备和方法产生下列效果中的一个或多个。对于不支持硬件划分(hardwarepartition)的非易失性存储器,根据本发明各方面的设备和方法使用软件暂停正在处理的操作,以便处理紧急读取、写入或擦除操作。
如图3所示的主机设备300的各个组件,如紧急请求管理单元320、状态检查单元330和操作处理单元340可被集成为单个控制单元,或者可选地,可用软件或硬件(例如,专用集成电路(ASIC))来实现。同样,这里所描述的处理应该被宽泛地解释为由软件、硬件或其组合等同地执行。如上所述,可通过各种软件语言(包括C、C++、Java、Visual Basic等)来编写软件模块。软件程序或模块的指令还可以以许多不同的方式之一载入或传送到无线网络中的无线卡或任何计算装置中。例如,包含存储在软盘、CD或DVD介质、硬盘或者通过网络接口卡、调制解调器或其它接口装置传送的指令的代码段可被加载到系统中并作为相应的软件程序或模块运行。在加载或传送过程中,实现为载波(通过电话线、网络线、无线链接、线缆等传输)的数据信号可将包含指令的代码段传输给网络节点或部件。这种载波可以是电、光、声、电磁或其它类型的信号的形式。
此外,本发明的各方面还可被实现为计算机可读记录介质上的计算机可读代码。计算机可读记录介质是能够存储可在随后由计算机系统读取的数据的任何数据存储装置。计算机可读记录介质的例子还可包括只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘、光学数据存储装置和载波(如通过互联网的数据传输)。计算机可读记录介质还可分布于联网的计算机系统,以使得计算机可读代码以分布式方式存储和执行。此外,实现本发明的各方面的功能程序、代码和代码段可容易地由本发明的各方面所属的技术领域的程序员构建。
尽管已经示出和描述了本发明的示例性实施例,但是本领域技术人员应该理解,随着技术进步,在不脱离本发明的真正范围的情况下,可进行各种改变和修改,并且可对其部件进行等同替换。在不脱离本发明的范围的情况下,可进行许多修改、置换、添加和子组合,以使本发明的教导适应于特定情形。本发明的可选实施例可被实现为与计算机系统一起使用的计算机程序产品。这种计算机程序产品可以是例如存储在有形的数据记录介质(如磁盘、CD-ROM、ROM或硬盘)上或者通过计算机数据信号(该信号通过有形介质或无线介质(例如微波或红外线)来传输)实现的一系列计算机指令。因此,本发明不限于所公开的各个示例性实施例,相反,本发明包括落入权利要求的范围内的所有实施例。
Claims (17)
1.一种控制非易失性存储器的操作的设备,该设备包括:
紧急请求管理单元,当发送来紧急请求时,设置先占标志的值以指示基于一般请求的操作是否被暂停,设置状态备份标志的值以指示基于一般请求的操作的结果是否被存储;
状态检查单元,检查先占标志和状态备份标志的设置值;
操作处理单元,当发送来紧急请求时,暂停基于一般请求的操作,优先处理基于紧急请求的操作,并且在基于紧急请求的操作完成之后,根据检查的先占标志和状态备份标志的值来继续处理暂停的基于一般请求的操作。
2.如权利要求1所述的设备,还包括:
存储单元,用于存储基于一般请求的操作的结果。
3.如权利要求1所述的设备,还包括输入单元,用于输入紧急请求和一般请求。
4.如权利要求1所述的设备,其中,所述非易失性存储器包括NAND闪存。
5.如权利要求1所述的设备,其中,所述非易失性存储器不支持硬件划分。
6.如权利要求1所述的设备,其中,所述操作处理单元包括分别用于处理基于紧急请求的操作和基于一般请求的操作的单独的处理器。
7.一种控制非易失性存储器的操作的方法,该方法包括:
当发送来用于处理操作的紧急请求时,暂停基于一般请求的操作,优先处理基于紧急请求的操作;
设置先占标志的值以指示基于一般请求的操作被暂停,设置状态备份标志的值以指示基于一般请求的操作的结果是否被存储;
在基于紧急请求的操作完成之后,根据检查的先占标志和状态备份标志的值来继续处理暂停的基于一般请求的操作。
8.如权利要求7所述的方法,还包括:
处理基于一般请求的操作;
在基于一般请求的操作完成之后,存储基于一般请求的操作的处理结果。
9.如权利要求7所述的方法,其中,如果状态备份标志的值和先占标志的值都被设置为预定值,则检查基于一般请求的操作的处理结果。
10.如权利要求7所述的方法,还包括:
在处理基于一般请求的操作之前,检查先占标志的值;
如果作为检查的结果,先占标志被设置为指示基于一般请求的操作被暂停,则将先占标志的值初始化为指示基于一般请求的操作没有被暂停;
处理基于一般请求的操作。
11.一种控制非易失性存储器的操作的设备,该设备包括:
输入单元,输入用于执行一般操作的请求和用于执行紧急操作的请求,所述一般操作用于将用户数据记录到非易失性存储器和/或从非易失性存储器再现用户数据,所述紧急操作具有比一般操作高的优先级,所述紧急操作用于将其它数据记录到非易失性存储器和/或从非易失性存储器再现其它数据;
操作处理单元,用于处理所述一般操作和所述紧急操作,其中,当用于执行紧急操作的请求被输入到输入单元时,操作处理单元暂停一般操作,优先处理紧急操作;
紧急请求管理单元,设置先占标志的值以指示一般操作被暂停,设置状态备份标志的值以指示一般操作的结果是否被存储。
12.如权利要求11所述的设备,还包括:
状态检查单元,用于检查先占标志的设置值和状态备份标志的设置值,
其中,所述操作处理单元在紧急操作完成之后,根据检查的值来继续处理暂停的一般操作。
13.如权利要求12所述的设备,其中,在处理一般操作之前,如果状态检查单元确定先占标志的设置值指示一般操作被暂停,则操作处理单元将先占标志的值初始化为指示一般操作没有被暂停。
14.如权利要求12所述的设备,其中,如果状态检查单元确定状态备份标志的设置值指示一般操作的结果被存储,则操作处理单元校验存储的一般操作的结果。
15.如权利要求11所述的设备,其中,所述非易失性存储器不支持硬件划分。
16.一种控制非易失性存储器的操作的方法,该方法包括:
输入用于执行一般操作的请求和用于执行紧急操作的请求,所述一般操作用于将用户数据记录到非易失性存储器和/或从非易失性存储器再现用户数据,所述紧急操作具有比一般操作高的优先级,所述紧急操作用于将其它数据记录到非易失性存储器和/或从非易失性存储器再现其它数据;
当用于执行紧急操作的请求被输入时,暂停一般操作,优先执行紧急操作;
设置先占标志的值以指示一般操作被暂停,设置状态备份标志的值以指示一般操作的结果是否被存储。
17.如权利要求16所述的方法,其中,优先执行紧急操作的步骤包括:
针对一般操作保持待机模式;
在保持待机模式期间执行紧急操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060112411 | 2006-11-14 | ||
KR1020060112411A KR100843136B1 (ko) | 2006-11-14 | 2006-11-14 | 비휘발성 메모리에서 연산 처리를 제어하는 장치 및 그방법 |
KR10-2006-0112411 | 2006-11-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101183345A CN101183345A (zh) | 2008-05-21 |
CN101183345B true CN101183345B (zh) | 2010-06-23 |
Family
ID=39370528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101675517A Expired - Fee Related CN101183345B (zh) | 2006-11-14 | 2007-10-26 | 控制非易失性存储器中的操作处理的设备和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20080114923A1 (zh) |
JP (1) | JP5027610B2 (zh) |
KR (1) | KR100843136B1 (zh) |
CN (1) | CN101183345B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2417102B (en) * | 2004-07-23 | 2007-11-28 | Hewlett Packard Development Co | System and method for managing memory |
KR101420798B1 (ko) * | 2007-11-23 | 2014-07-17 | 삼성전자주식회사 | 실시간 응답성이 요구되는 코드를 위한 요구 페이징 방법및 단말 |
DE112009004900T5 (de) * | 2009-06-10 | 2012-08-16 | Micron Technology, Inc. | Vertagen von Speicheroperationen zum Reduzieren von Leselatenz in Speicherfeldern |
US9129090B2 (en) * | 2009-09-14 | 2015-09-08 | Blackboard Inc. | Distributed service point transaction system |
US8131889B2 (en) | 2009-11-10 | 2012-03-06 | Apple Inc. | Command queue for peripheral component |
WO2012063183A2 (en) * | 2010-11-08 | 2012-05-18 | Koninklijke Philips Electronics N.V. | Low latency signaling over digital network |
US8943510B2 (en) * | 2010-12-17 | 2015-01-27 | Microsoft Corporation | Mutual-exclusion algorithms resilient to transient memory faults |
US9021146B2 (en) | 2011-08-30 | 2015-04-28 | Apple Inc. | High priority command queue for peripheral component |
KR20130081459A (ko) * | 2012-01-09 | 2013-07-17 | 삼성전자주식회사 | 휴대단말기의 pre―load 어플리케이션 탑재를 위한 메모리 영역구분 장치 |
JP2016026345A (ja) * | 2015-09-03 | 2016-02-12 | マイクロン テクノロジー, インク. | メモリアレイにおける読み出し待ち時間を短縮するためのメモリ操作の一時停止 |
JP6444475B1 (ja) * | 2017-11-28 | 2018-12-26 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
JP7165151B2 (ja) * | 2020-02-18 | 2022-11-02 | ウィンボンド エレクトロニクス コーポレーション | 半導体装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1465013A (zh) * | 2001-05-22 | 2003-12-31 | 皇家菲利浦电子有限公司 | 访问公共存储器的方法和系统 |
CN1637714A (zh) * | 2003-11-26 | 2005-07-13 | 株式会社日立制作所 | 远程复制网络 |
US20060161727A1 (en) * | 2005-01-20 | 2006-07-20 | Stefano Surico | Method and system for managing a suspend request in a flash memory |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5509134A (en) * | 1993-06-30 | 1996-04-16 | Intel Corporation | Method and apparatus for execution of operations in a flash memory array |
FR2711831B1 (fr) * | 1993-10-26 | 1997-09-26 | Intel Corp | Procédé et circuit de mémorisation et de hiérarchisation d'ordres d'effacement dans un dispositif de mémoire. |
JPH07261997A (ja) * | 1994-03-22 | 1995-10-13 | Fanuc Ltd | フラッシュrom管理方式 |
JPH09251783A (ja) * | 1996-03-14 | 1997-09-22 | Hitachi Ltd | リフレッシュ制御方法、半導体記憶装置、データ処理装置 |
US5805501A (en) * | 1996-05-22 | 1998-09-08 | Macronix International Co., Ltd. | Flash memory device with multiple checkpoint erase suspend logic |
US6201739B1 (en) * | 1996-09-20 | 2001-03-13 | Intel Corporation | Nonvolatile writeable memory with preemption pin |
GB2317721B (en) * | 1996-09-30 | 2001-09-12 | Nokia Mobile Phones Ltd | Memory device |
JP3489708B2 (ja) * | 1996-10-23 | 2004-01-26 | シャープ株式会社 | 不揮発性半導体記憶装置 |
KR100232889B1 (ko) * | 1996-12-31 | 1999-12-01 | 김영환 | 데이타 충돌시 데이타 손실 방지 방법 및 그 장치 |
US20010011318A1 (en) * | 1997-02-27 | 2001-08-02 | Vishram P. Dalvi | Status indicators for flash memory |
US5956743A (en) * | 1997-08-25 | 1999-09-21 | Bit Microsystems, Inc. | Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations |
JPH11167494A (ja) * | 1997-12-03 | 1999-06-22 | Toshiba Corp | 演算処理装置、及び演算処理装置のレジスタ管理方法 |
KR100257868B1 (ko) * | 1997-12-29 | 2000-06-01 | 윤종용 | 노어형 플래시 메모리 장치의 소거 방법 |
US6122713A (en) * | 1998-06-01 | 2000-09-19 | National Instruments Corporation | Dual port shared memory system including semaphores for high priority and low priority requestors |
KR100451722B1 (ko) * | 2000-02-25 | 2004-10-08 | 엘지전자 주식회사 | 직접 메모리 액세스 제어 장치 |
JP3839288B2 (ja) * | 2001-09-12 | 2006-11-01 | 株式会社ルネサステクノロジ | メモリカード |
JP2004030438A (ja) * | 2002-06-27 | 2004-01-29 | Renesas Technology Corp | マイクロコンピュータ |
JP4342223B2 (ja) | 2002-10-31 | 2009-10-14 | 富士通マイクロエレクトロニクス株式会社 | 半導体メモリ |
JP2005190238A (ja) * | 2003-12-26 | 2005-07-14 | Matsushita Electric Ind Co Ltd | リアルタイム制御方式 |
US7437499B2 (en) * | 2005-12-30 | 2008-10-14 | Intel Corporation | Dividing a flash memory operation into phases |
-
2006
- 2006-11-14 KR KR1020060112411A patent/KR100843136B1/ko not_active IP Right Cessation
-
2007
- 2007-07-27 US US11/829,524 patent/US20080114923A1/en not_active Abandoned
- 2007-10-15 JP JP2007268128A patent/JP5027610B2/ja not_active Expired - Fee Related
- 2007-10-26 CN CN2007101675517A patent/CN101183345B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1465013A (zh) * | 2001-05-22 | 2003-12-31 | 皇家菲利浦电子有限公司 | 访问公共存储器的方法和系统 |
CN1637714A (zh) * | 2003-11-26 | 2005-07-13 | 株式会社日立制作所 | 远程复制网络 |
US20060161727A1 (en) * | 2005-01-20 | 2006-07-20 | Stefano Surico | Method and system for managing a suspend request in a flash memory |
Also Published As
Publication number | Publication date |
---|---|
KR20080043633A (ko) | 2008-05-19 |
US20080114923A1 (en) | 2008-05-15 |
JP5027610B2 (ja) | 2012-09-19 |
CN101183345A (zh) | 2008-05-21 |
KR100843136B1 (ko) | 2008-07-02 |
JP2008123503A (ja) | 2008-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101183345B (zh) | 控制非易失性存储器中的操作处理的设备和方法 | |
JP4205560B2 (ja) | ディスクレスネットワークブータブルコンピュータにおける不揮発性メモリキャッシュを用いた信頼性の改善 | |
US8751862B2 (en) | System and method to support background initialization for controller that supports fast rebuild using in block data | |
US9367400B2 (en) | System reset | |
CN101131671A (zh) | 控制对非易失性存储器的访问 | |
JPH11272427A (ja) | データ退避方法および外部記憶装置 | |
US8271968B2 (en) | System and method for transparent hard disk drive update | |
US10289339B2 (en) | System and method for storing modified data to an NVDIMM during a save operation | |
CN114138838A (zh) | 数据处理方法及装置、设备和介质 | |
KR20200089939A (ko) | 메모리 시스템 및 그 동작 방법 | |
US11126502B2 (en) | Systems and methods for proactively preventing and predicting storage media failures | |
US20090240877A1 (en) | Virtual tape device and method for controlling the same | |
KR20110054788A (ko) | 비-휘발성 버퍼를 이용한 데이터 저장 장치 및 방법 | |
KR20110052902A (ko) | 컴퓨팅 시스템 및 컴퓨팅 시스템의 메모리 관리 방법 | |
CN110704091A (zh) | 一种固件升级方法及装置 | |
JP2002229742A (ja) | アクセス切替制御装置、および、アクセス切替制御方法 | |
US20100146227A1 (en) | Machine-Implemented Method For Categorizing Storage Media, And Machine-Implemented Method For Storing Target Codes | |
CN112784101B (zh) | 视频数据存储方法及装置、数据存储设备 | |
JP3428350B2 (ja) | 記憶装置システム | |
US11836355B2 (en) | Systems and methods for resetting a degraded storage resource | |
US12216938B2 (en) | Interworking method external device and storage device | |
US11340835B2 (en) | Virtual non-volatile memory system | |
US7757072B2 (en) | Method and apparatus for presenting drivers stored on utility partition of hard disk through virtual floppy to operating system installer | |
US20090240933A1 (en) | Computer system architecture and operating method for the operating system thereof | |
CN116627515A (zh) | 嵌入式系统的分区切换启动方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100623 Termination date: 20141026 |
|
EXPY | Termination of patent right or utility model |