CN102763090B - 用于利用nand存储器件同时读写的系统和方法 - Google Patents
用于利用nand存储器件同时读写的系统和方法 Download PDFInfo
- Publication number
- CN102763090B CN102763090B CN201080062374.6A CN201080062374A CN102763090B CN 102763090 B CN102763090 B CN 102763090B CN 201080062374 A CN201080062374 A CN 201080062374A CN 102763090 B CN102763090 B CN 102763090B
- Authority
- CN
- China
- Prior art keywords
- subregion
- queue
- content
- reading
- high priority
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Read Only Memory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
用于将在NAND型存储器件(14)中执行同时读取和写入操作的系统、方法和程序,包括:在NAND型存储器件中分配第一分区(P1),其中第一分区被构造为对高优先级读取内容执行读取操作;在NAND型存储器件中分配第二分区,其中第二分区(P2)被构造为执行读取操作和写入操作,其中对非高优先级读取内容执行读取操作;以及控制第一分区和第二分区以同时的方式进行操作。
Description
相关申请数据
本申请要求2010年1月28日提交的美国临时申请No.61/299065和2010年3月22日提交的美国申请No.12/728472的优先权,通过引用将它们并入这里。
技术领域
本公开的技术一般地涉及非易失性存储器件,特别地涉及具有NAND型架构的闪存器件并且更特别地涉及用于在NAND型存储器件中执行同时读取操作和写入操作的系统和方法。
背景技术
诸如在电子装置(例如,台式计算机、手持计算机、移动电话、数字相机或任何其他类型的能够使用非易失性存储器作为存储介质的基于计算机/微控制器的终端)中使用的闪存器件的闪存器件可以具有多个分区。在写入操作期间,在写入操作完成之前不能从该存储器读取数据。这引起读取延迟,而读取延迟可能对于例如请求调页的时间紧迫的使用情况来说是不想要的或不可接受的。在任何应用中,如果能够在处理写入操作的同时从只读分区读取数据则整个系统性能将会更快。
读取延迟很关键的应用的示例是按请求调页技术,其中直到需要数据的页面时才将数据的页面从数据存储器复制到RAM。以所谓的块和页面来组织存储器,其中在请求调页的情况下,一个页面通常由1kB或4kB构成。一个块组合若干页并且通常具有16kB的大小。为了减少所要求的存储器大小,仅加载应用程序当前需要的页面。因此,请求调页要求同时读取和写入处理。在NAND闪存系统中,可以应用按请求调页,但是用于该技术的系统的主要缺陷在于不能够同时执行读取和写入操作。
JEDEC固态技术协会提出的一个处理当存在正在进行的写入操作并且嵌入式存储器(eMMC)请求另一写入操作提议时的情况的提议是在允许请求的读取操作之前等待直到写入操作结束。另一提议是允许中断正在进行的写入操作并且从而缩短高优先级读取的延迟。这些解决方案存在各种问题。例如,考虑已经请求将十(10)个块写入eMMC中的写入操作。在写入四(4)个块之后,该操作或处理被高优先级读取操作或处理中断。当高优先级读取操作已经结束时,文件系统恢复写入操作以便于写入剩余的六(6)个块,但是可能出现新的高优先级读取请求,并且该写入操作被再次中断。高优先级读取的来源之一是请求调页,这是代码执行方法。在电子装置的启动过程中或当启动新应用程序时,能够存在将会请求高优先级读取操作的整个一系列页面错误。在前述情况下,在写入命令能够结束之前可能存在若干秒的延迟。
前述特点和问题中的任一个在基于闪存的存储卡或嵌入式大容量存储器件中都存在。因此,需要提供一种控制NAND闪存卡和嵌入式大容量存储器件的读取处理以便于减少读取延迟时间的方法。
发明内容
根据本发明的方面,公开了一种方法、器件和计算机程序,其通过定义构造为仅用于读取内容(例如,高优先级读取内容)的分区来支持NAND存储器件中的同时读取和写入操作。一般来说,一个或多个分区被分配用于高优先级读取内容(例如,读取编程代码等等)。剩余分区中的一个或多个然后用于支持写入和非优先读取。存储器件的控制器部分将一个公共队列分为至少两个队列,其中第一队列被构造为从只读分区进行读取并且第二队列用于读取和写入分区。并行地执行这两个分区。当已经请求向只读分区进行写入操作时,将进行到具有读取和写入能力的分区中的由存储器控制器保持的临时写入。然后,在系统空闲时间期间,该临时写入的内容将在后台操作中被传输到只读分区中。
本发明的一个方面涉及一种用于将在NAND型存储器件中执行的同时读取和写入操作的方法,该方法包括:在NAND型存储器件中分配第一分区,其中第一分区被构造为对高优先级读取内容执行读取操作;在NAND型存储器件中分配第二分区,其中第二分区被构造为执行读取操作和写入操作,其中对非高优先级读取内容执行读取操作;以及控制第一分区和第二分区以同时的方式进行操作。
本发明的另一方面涉及控制的步骤包括:从主队列形成第一队列和第二队列,其中第一队列执行与第一分区关联的读取操作并且第二队列执行与第二分区关联的读取和写入操作。
本发明的另一方面涉及并行地执行第一队列和第二队列。
本发明的另一方面涉及当要求将额外的内容写入到第一分区时,对第二分区进行临时写入以存储该额外的内容。
本发明的另一方面涉及当关联的主机装置请求将额外的内容写入到第一分区时,对第二分区进行临时写入以存储该额外的内容。
本发明的另一方面涉及在与其中耦接NAND型存储器件的系统关联的空闲时间期间将额外的内容转移到第一分区。
本发明的另一方面涉及分配一个或多个额外的分区,其中该额外的分区中的至少一个被构造为执行读取操作和写入操作。
本发明的另一方面涉及对非高优先级读取内容执行由一个或多个额外的分区执行的读取和/或写入操作。
本发明的另一方面涉及并行地控制第一分区、第二分区和一个或多个额外的分区。
本发明的另一方面涉及控制的步骤包括:从主队列形成第一队列和第二队列以及用于额外的分区中的每一个额外的分区的额外的队列,其中第一队列执行与第一分区关联的读取操作并且第二队列执行与第二分区关联的读取操作和写入操作并且额外的队列中的每一个额外的队列执行与一个或多个额外的分区中的每一个额外的分区关联的读取操作和写入操作。
本发明的另一方面涉及一种非易失性存储器件包括:NAND型存储器芯片,该NAND型存储器芯片包括被构造为对高优先级读取内容执行读取操作的第一分区和被构造为执行读取操作和写入操作的第二分区,其中对非高优先级读取内容执行读取操作;以及存储器控制器,该存储器控制器被构造为控制第一分区和第二分区以同时的方式进行操作,从而第一分区可以在第二分区正在读取或写入内容时读取高优先级内容。
本发明的另一方面涉及存储器控制器包括用于执行与第一分区关联的读取操作的第一队列和用于执行与第二分区关联的读取和写入操作的第二队列。
本发明的另一方面涉及第一队列和第二队列被构造为并行地执行。
本发明的另一方面涉及当要求将额外的内容写入到第一分区时,存储器控制器被构造为允许对第二分区进行临时写入以存储该额外的内容。
本发明的另一方面涉及当关联的主机装置请求将额外的内容写入到第一分区时,对第二分区进行临时写入以存储该额外的内容。
本发明的另一方面涉及存储器控制器在与其中耦接NAND型存储器件的主机装置关联的空闲时间期间将额外的内容转移到第一分区。
本发明的另一方面涉及包括NAND型存储器件中的一个或多个额外的分区,其中额外的分区中的至少一个额外的分区被构造为执行读取操作和写入操作。
本发明的另一方面涉及存储器控制器被构造为并行地控制第一分区、第二分区和一个或多个额外的分区。
本发明的另一方面涉及存储器控制器包括用于控制第一分区的执行的第一队列、用于控制第二分区的执行的第二队列和用于NAND型存储器芯片上包含的每个额外的分区的额外的队列。
本发明的另一方面涉及用于在电子主机装置中使用以控制将在NAND型存储器件中执行的同时读取和写入操作的程序,其中NAND型存储器包括第一分区和第二分区;以及存储器控制器,该存储器控制器被构造为控制第一分区和第二分区以同时的方式执行,其中第一分区是专用于高优先级读取内容的只读分区并且第二分区是读取和写入分区,该程序包括可执行逻辑用于:将高优先级读取内容置于第一分区上;接收用于对第一分区写入额外的内容的请求;将额外的内容写入第二分区;以及当从主机电子装置到存储器控制器接收到指示该主机电子装置处于空闲状态的信号时将额外的内容转移到第一分区。
参考下面的描述和附图,这些和进一步的特征将更加明显。在描述和附图中,已经详细地公开了表示可以采用本发明的原则的一些方式的本发明的特定实施方式,但是理解的是,本发明的范围没有受到相应的限制。相反地,本发明包括落入所附权利要求的范围内的所有改变、修改和等价物。
对于一个实施方式描述和/或示出的特征可以以相同的方式或以类似的方式应用于一个或多个其它实施方式和/或与其它实施方式的特征组合或替代其它实施方式的特征。应强调的是,本申请中使用的术语“包括”用于描述所述特征、组成部分、步骤或组件的存在,但是不排除一个或多个其它特征、组成部分、步骤、组件或其组的存在或添加。
能够参考下面的附图更好地理解本发明的很多方面。附图中的组件不必按比例,相反地,施加强调以清楚地示出本发明的原理。为了有利于示出和描述本发明的一些部分,可以夸大附图的对应部分的尺寸,例如使得一些部分与其它部分相关地比根据本发明实际上获得的示例性装置中的尺寸更大。在本发明的一个附图或实施方式中示出的元素和特征可以与在一个或多个额外的附图或实施方式中描述的元素和特征组合。此外,在附图中,相同的附图标记指示对应的部分并且可以用于在多于一个的实施方式中指定相同或类似的部分。
在本申请中,在电子装置的情况下描述本发明的实施方式。将了解的是,本发明意在被宽泛地解释为包括任何类型的适合的电子装置,其示例包括媒体播放器、游戏装置、PDA、计算机、数码相机、移动电话、膝上计算机、平板电脑、能够示出图像或运行计算机应用程序的其它移动装置等等。
附图说明
图1是根据本发明的方面的系统的示例性实施方式。
图2是执行本发明的方法的示例性方法和根据本发明的方法的设备和程序的示例性功能的流程图或逻辑图。
图3是执行本发明的方法的示例性方法和根据本发明的方法的设备和程序的示例性功能的流程图或逻辑图。
图4是执行本发明的方法的示例性方法和根据本发明的方法的设备和程序的示例性功能的流程图或逻辑图。
具体实施方式
现在将参考附图描述实施方式,其中相同的附图标记用于表示相同的元件。将理解的是,附图不必是按比例的。
将结合通用主机装置描述本发明。将了解的是,所公开的方法的方面可以应用于电子装置,这些电子装置例如为(但不限于)台式计算机、手持计算机、平板计算机、移动电话、数码相机、个人数字助理、音乐播放器和任何其它类型的能够使用非易失性存储器作为存储介质的基于计算机/微控制器的装置。
下面对于包括用于同时执行读取和写入操作的NAND型存储器件的主机装置描述本发明。在一般意义上,NAND型存储器件分配被构造为专用于读取高优先级内容(例如,程序代码等等)的第一分区。可以为高优先级读取内容分配一个或多个分区。剩余的分区然后用于支持写入操作和非优先读取操作。存储器件的控制器部分将把一个公共队列分为两个队列,其中第一队列用于从只读分区进行读取并且第二队列用于控制其它分区(例如,被构造为执行读取操作和写入操作的分区)。两个队列并行地执行。当进行写入到第一分区(例如,只读分区)的请求时,将进行临时写入操作,该临时写入操作将内容置于第二分区(例如,允许读取操作和写入操作的分区)中。然后,在系统空闲时间期间,临时写入的内容将在后台操作中转移到只读分区中。
参考图1,示出了主机12和存储器件14的形式的系统10。主机12和存储器件14可以通过接口16通信。外部主机装置12可以由包括用于执行存储在存储介质中的程序代码的处理器的终端来表示。主机12可以需要存储在存储器件14上的信息以执行程序代码或在主机12上显示信息,例如电子装置中的闪存卡或内部闪存。主机12可以能够控制该存储器访问并且与存储器件14通信数据。为此,主机12连接到存储器件14的存储器控制器。通过接口16进行主机12和存储器件之间的这样的通信。如上所述,主机12可以例如是台式计算机、手持计算机、移动电话、数码相机或能够使用非易失性存储器作为存储介质的任何其他种类的基于计算机/微控制器的终端。
存储器件14是非易失性存储器件并且可以提供为例如可移除存储元件(存储卡)或布置在装置内的嵌入式大容量存储器。非易失性存储器件14包括至少一个NAND型闪存芯片,其包括存储器控制器20和存储元件22。存储器件14包括端口24,该端口24用于有利于通过接口16在主机装置12和存储器件14之间的通信。
存储器控制器20包括主队列26。队列是特定种类的集合,其中按顺序保持该集合中的条目(例如,将由存储器件14执行的读取/写入操作)并且对于该集合的主要操作是将条目添加到末尾的位置和从前端位置移除条目。
主队列26可以具有形成在主队列26内的多个队列(例如,队列28A、28B、…、28N)。例如,如图1中所示,队列28A、28B、…、28N可以形成在主队列26中,其中N可以取决于例如在存储元件22中形成的分区(30A、30B、…、30N)的数目。队列(28A、28B、…、28N)中的每一个可以被分配为对存储元件22中的特定分区进行操作。本领域技术人员将容易地了解的是,队列的数目可以与存储元件22的分区数目无关。例如,主队列26中形成的队列的数目可以少于存储元件22中的分区的数目。队列28A、28B、…、28N被设计为并行地操作。即,队列28A、28B、…、28N可以同时执行在每个单独队列中存储的任务。
例如,队列中的一个(例如,28A)可以专用于在专用于执行高优先级读取操作的分区(例如,30A)中执行高优先级读取操作。可以存在也分配为执行高优先级读取操作的更多队列(例如,28B)。
存储元件22包括多个分区(例如,30A、30B、…、30N)。在存储器件14中分配至少一个分区(例如,分区30A)并且该至少一个分区被构造为对高优先级读取内容执行读取操作。可以存在也可以分配为对高优先级内容执行读取操作的额外的分区。为了本公开的目的,我们将假设分区30A已经被分配并构造为仅对高优先级读取内容执行读取操作。
可以以各种方式确定高优先级读取内容。例如,包含应用程序的文件可以被分配为在特定分区上进行操作。当已经请求对文件的访问时,存储器控制器20自动地将该应用程序分配给高优先级读取分区和/或对应的队列。替代地或另外地,例如,文件可以具有指示文件是高优先级读取内容的标志。
存储元件22还包括被分配且构造为对非高优先级读取内容执行读取和写入操作的至少一个分区(例如,分区30B)。
主机12可以经由主机接口16与存储器控制器20通信,从而可以由主机12可选地执行读取和写入操作的控制。将写入到存储器件14或将从存储器件14读取的数据也经由主机接口进行传输。存储器控制器20包括可以用于访问分区(例如,P1、P2、…、PN)的存储器控制器14的一个或多个读取/写入端口32。例如,根据预定义的规格,可以存在一个端口32或可以存在用于控制特定分区是否对存储器芯片14执行读取和/或写入操作的多个端口。如上所述,存储元件22包括多个分区(例如,P1、P2、…、PN),其中分区中的至少一个(例如,P1)专用于对高优先级读取内容执行读取操作(例如,程序代码)。其它分区(例如,P2、…、PN)中的一个或多个可以执行读取/写入操作。
存储器控制器20被构造为允许到一个分区(例如,P1)的读取访问,同时允许对存储器件14的第二分区(例如,P2)进行读取或写入。例如,当第一分区(P1)正在读取高优先级读取内容并且额外的内容(例如,高优先级读取内容)要求写入到该第一分区(P1)时,可以对可以执行读取/写入操作的分区(例如,P2、…、PN)进行临时写入。
存储器控制器20防止存储器访问的重叠(例如,防止向单个分区发出超过一个的请求)。为了防止这样的重叠,存储器控制器20应了解存储器件14上任何地方正在进行的操作。当存在正在进行的操作或存储器控制器20接收到若干请求时,控制器将以例如确保一次只有一个命令针对一个分区的方式发出命令。
当NAND 芯片支持同时读取/写入操作时,存储卡控制器可以向存储器件14的不同分区发出命令。存储器控制器20被构造为同时控制多个队列(例如,28A、28B、…、28N)和多个分区(例如,P1、P2、…、PN)上的操作(例如,并行地进行)。控制的步骤包括从主队列形成第一队列和第二队列,其中第一队列执行与第一分区关联的读取操作并且第二队列执行与第二分区关联的读取和写入操作。例如,第一队列(例如,Q1)可以控制与专用于执行高优先级读取内容的分区(例如,P1)关联的读取操作并且第二队列(例如,Q2)可以控制与其它分区关联的读取和写入操作。
参考图2,下面将参考其中示出的逻辑图或流程图描述从主机视角12执行本发明的方法100。图2中所示的若干块将被称为块、步骤或功能,其根据上下文具有相同的含义。
在块102,主机装置12上的应用程序(例如,应用程序X)请求对于非高优先级内容的写入操作。在块104,该写入请求被置于由存储器控制器20管理的队列中。
在块106,主机装置12上的另一应用程序(例如,应用程序Y)请求对于非高优先级读取内容的读取操作。在块108,该读取请求被置于由存储器控制器20管理的队列中
在块110,主机装置12上的另一应用程序(例如,应用程序Z)请求从只读分区上的文件进行读取。在块112,该高优先级读取请求被置于由存储器控制器20管理的队列中。
在块114,另一应用程序(例如,应用程序XY)请求将内容写入只读分区中。在块116,该写入请求被置于由存储器控制器20管理的队列中。
参考图3,示出了存储器控制器视角的计算机程序流程图200的逻辑图作为执行本发明的方法的示例并且示出了本发明的部件和功能的操作交互和特征描述。图3中示出的若干块将被称为块、步骤或功能,其根据上下文具有相同的含义。
在块202,存储器件12从存储器件14读取队列。在块204,确定请求了高优先级读取还是请求了非高优先级读取。如本领域技术人员所了解的,存在确定文件是否请求了高优先级读取的各种方式。例如,应用程序文件可以被构造为被置于特定分区(例如,专用于高优先级读取内容的分区)上;该应用程序也可以包括处于文件中或附于文件的标志或其它标识符以指示该应用程序文件包含高优先级读取内容。
如果队列包含高优先级读取内容,则程序流程移动至块206。在块206,该高优先级读取内容被置于用于读取高优先级内容的队列(例如,Q1)中。在块208,确定是否在队列(例如,Q1)中存在将要读取的额外的高优先级内容。如果不存在将要读取的额外的高优先级内容,则程序流程循环回块208,直到队列包含高优先级内容。如果存在将要读取的额外的高优先级内容,则程序流程移动至块210,其中执行高优先级读取操作。程序流程然后继续到块208以确定是否在队列中剩余将要读取的高优先级内容。
如果在块204中确定队列不包含高优先级读取内容,则程序流程移动至块212。在块212,确定队列是否包含向高优先级分区(例如,P1)进行写入的命令。如果在块212处的确定为“是”(例如,队列包含向高优先级分区进行写入的命令),则程序流程移动至块214。在块214,设置优先级写入标志。优先级写入标志表示存在将写入到第一分区中的额外的内容。
从块214开始并且在块212确定为否定结果,程序流程移动至块216。在块216,额外的内容被置于用于第二分区的队列中。在块218,确定在队列中是否存在将要读取的任何内容(例如,命令)。如果在队列为空,则程序流程循环回块218直到在队列中存在新的命令。如果在队列中存在将读取的新的命令,则程序流程移动至块220,其中执行所请求的命令。程序流程然后继续到块222。
在块222,确定是否已经为当前命令设置了高优先级标志。如果确定为否定,则程序流程移动至块224。在块224,提供非优先分区的正常操作。如果块222的确定为肯定,则程序流程移动至块226。在块226,内容被写入到用于高优先级读取的缓冲器。程序流程移动至块228。在块228,“移动”(或类似的)命令存储在存储器控制器中的后台操作队列中。后台操作队列是专用于后台操作的存储器控制器中的队列。
图4是根据本发明的方面的另一示例性方法300。方法30通常与上述示例性方法200并行地操作。在块302,确定主机装置12是否已经将系统空闲指示发送到存储器件14。如果块302处的确定为“否”,则程序流程继续返回到块302并且等待直到从主机接收到系统空闲指示。如果主机装置12已经将系统空闲指示发送到存储器件14,则块302处的确定为“是”,这意味着主机处于空闲。程序流程然后移动至块304。在块304,开始后台操作。在块306,读取包含与在读取和写入分区中存储的额外的高优先级读取内容关联的移动命令的队列。在块308,确定队列是否包含任何信息。如果队列为空,则程序流程移动返回块302以继续监视主机装置12是否空闲,如上所述。如果队列非空,则在读取和写入分区(例如,第二分区)中临时存储的额外的内容被转移到第一分区,如块310中所示。在块312,从其中临时存储额外的内容的分区移除该额外的内容。程序流程继续到块308并且如上所述地进行处理。
如何对主机装置12进行编程以操作和执行与电子装置关联的一般逻辑功能和参考逻辑图在上面描述的功能和操作对于计算机编程领域(特别是使用NAND型存储器件的电子装置的应用程序编程领域)中的技术人员来说是显而易见的。因此,为了简洁起见,省略具体编程代码的细节。而且,虽然可以通过根据实施方式的各处理装置执行功能,但是也能够经由专用硬件或固件或硬件、固件和/或软件的某种组合执行这样的功能。
虽然已经示出和描述了某些实施方式,但是理解的是,在阅读和理解本申请时,本领域技术人员将能够了解所附权利要求的范围内的等价物和修改。
Claims (2)
1.一种用于将在NAND型存储器件(14)中执行的同时读取和写入操作的方法,所述方法包括:
在NAND型存储器件中分配第一分区(P1),其中,所述第一分区被构造为对高优先级读取内容执行读取操作;
在所述NAND型存储器件中分配第二分区(P2),其中,所述第二分区被构造为执行读取操作和写入操作,其中,对非高优先级读取内容执行所述读取操作;以及
控制所述第一分区和所述第二分区以同时的方式进行操作,
其中,控制的步骤包括:从主队列(26)形成第一队列(Q1)和第二队列(Q2),其中,所述第一队列执行与所述第一分区关联的读取操作并且所述第二队列执行与所述第二分区关联的读取和写入操作,
其中,并行地执行所述第一队列和所述第二队列,
其中,当要求将额外的内容写入到所述第一分区时,对所述第二分区进行临时写入以存储所述额外的内容,
在与其中耦接所述NAND型存储器件的系统关联的空闲时间期间将所述额外的内容转移到所述第一分区。
2.一种非易失性存储器件,所述非易失性存储器件包括:
NAND型存储器芯片(14),所述NAND型存储器芯片包括:被构造为对高优先级读取内容执行读取操作的第一分区(P1)和被构造为执行读取操作和写入操作的第二分区(P2),其中,对非高优先级读取内容执行所述读取操作;以及
存储器控制器(20),所述存储器控制器被构造为控制所述第一分区和所述第二分区以同时的方式进行操作,从而所述第一分区可以在所述第二分区正在读取或写入内容时读取高优先级内容,
其中,所述存储器控制器包括:从主队列(26)形成的第一队列(Q1)和第二队列(Q2),
其中,所述第一队列执行与所述第一分区关联的读取操作,并且所述第二队列执行与所述第二分区关联的读取和写入操作的第二队列,
其中,所述第一队列和所述第二队列被构造为并行地执行,
其中,当要求将额外的内容写入到所述第一分区时,所述存储器控制器被构造为允许对所述第二分区进行临时写入以存储所述额外的内容,并且与其中耦接所述NAND型存储器件的系统关联的空闲时间期间将所述额外的内容转移到所述第一分区。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US29906510P | 2010-01-28 | 2010-01-28 | |
US61/299,065 | 2010-01-28 | ||
US12/728,472 US8429374B2 (en) | 2010-01-28 | 2010-03-22 | System and method for read-while-write with NAND memory device |
US12/728,472 | 2010-03-22 | ||
PCT/IB2010/003120 WO2011092543A1 (en) | 2010-01-28 | 2010-12-06 | A system and method for read-while-write with nand memory device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102763090A CN102763090A (zh) | 2012-10-31 |
CN102763090B true CN102763090B (zh) | 2015-04-29 |
Family
ID=44309837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080062374.6A Active CN102763090B (zh) | 2010-01-28 | 2010-12-06 | 用于利用nand存储器件同时读写的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8429374B2 (zh) |
EP (1) | EP2529308B1 (zh) |
CN (1) | CN102763090B (zh) |
WO (1) | WO2011092543A1 (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112009004900T5 (de) * | 2009-06-10 | 2012-08-16 | Micron Technology, Inc. | Vertagen von Speicheroperationen zum Reduzieren von Leselatenz in Speicherfeldern |
US8356137B2 (en) * | 2010-02-26 | 2013-01-15 | Apple Inc. | Data storage scheme for non-volatile memories based on data priority |
US9767058B2 (en) * | 2011-11-17 | 2017-09-19 | Futurewei Technologies, Inc. | Method and apparatus for scalable low latency solid state drive interface |
US20130318285A1 (en) * | 2012-05-23 | 2013-11-28 | Violin Memory Inc | Flash memory controller |
US10725997B1 (en) * | 2012-06-18 | 2020-07-28 | EMC IP Holding Company LLC | Method and systems for concurrent collection and generation of shared data |
WO2014068620A1 (en) * | 2012-10-31 | 2014-05-08 | Hitachi, Ltd. | Storage system and access arbitration method |
US9164888B2 (en) * | 2012-12-10 | 2015-10-20 | Google Inc. | Using a logical to physical map for direct user space communication with a data storage device |
US9741442B2 (en) * | 2013-03-12 | 2017-08-22 | Sandisk Technologies Llc | System and method of reading data from memory concurrently with sending write data to the memory |
US9235504B2 (en) | 2013-07-16 | 2016-01-12 | Kabushiki Kaisha Toshiba | Prioritizing read-command issuance in a data storage apparatus |
CN104090795B (zh) * | 2014-07-08 | 2017-05-24 | 三星电子(中国)研发中心 | 实现多核移动终端升级的方法、系统及装置 |
US10067905B2 (en) * | 2015-05-26 | 2018-09-04 | Plasmability, Llc | Digital interface for manufacturing equipment |
CN106469156B (zh) * | 2015-08-17 | 2019-10-18 | 华为终端有限公司 | 数据库读写方法及装置 |
US9627016B2 (en) * | 2015-09-10 | 2017-04-18 | Cypress Semiconductor Corporation | Systems, methods, and devices for parallel read and write operations |
EP3153971B1 (en) * | 2015-10-08 | 2018-05-23 | Huawei Technologies Co., Ltd. | A data processing apparatus and a method of operating a data processing apparatus |
KR20170136382A (ko) * | 2016-06-01 | 2017-12-11 | 주식회사 맴레이 | 메모리 컨트롤러, 그리고 이를 포함하는 메모리 모듈 및 프로세서 |
CN108735263A (zh) * | 2017-04-19 | 2018-11-02 | 北京兆易创新科技股份有限公司 | 一种提高操作效率的方法和装置 |
KR102386811B1 (ko) * | 2017-07-18 | 2022-04-15 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US11294594B2 (en) | 2017-08-07 | 2022-04-05 | Kioxia Corporation | SSD architecture supporting low latency operation |
CN108021516B (zh) * | 2017-12-19 | 2020-12-25 | 联芸科技(杭州)有限公司 | 一种并行存储介质存储控制器的命令调度管理系统与方法 |
US11593262B1 (en) * | 2018-04-25 | 2023-02-28 | Seagate Technology Llc | Garbage collection command scheduling |
US10684964B1 (en) * | 2018-08-01 | 2020-06-16 | Lightbits Labs Ltd. | System and method for reducing read latency in storage devices |
US11693790B2 (en) | 2019-05-24 | 2023-07-04 | Texas Instmments Incorporated | Methods and apparatus to facilitate write miss caching in cache system |
US11435942B2 (en) * | 2020-07-10 | 2022-09-06 | Korea Electronics Technology Institute | Method and apparatus for processing read-write-operation instruction in processing-in-memory |
CN116225345B (zh) * | 2023-05-08 | 2023-08-11 | 珠海妙存科技有限公司 | 一种eMMC的数据存储方法、控制器及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1961302A (zh) * | 2004-04-28 | 2007-05-09 | 英特尔公司 | 具有命令前瞻的存储器控制器 |
CN101082891A (zh) * | 2007-05-10 | 2007-12-05 | 忆正存储技术(深圳)有限公司 | 并行闪存控制器 |
CN101498994A (zh) * | 2009-02-16 | 2009-08-05 | 华中科技大学 | 一种固态硬盘控制器 |
CN101615162A (zh) * | 2008-06-23 | 2009-12-30 | 株式会社理光 | 存储器管理单元、图像形成设备、存储器管理方法和程序 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2744564A1 (de) | 1977-10-04 | 1979-04-05 | Schmidt Rimpler Reimar Dr | Werkzeugkombination zur einsetzung von zahnimplataten |
IT1237496B (it) * | 1989-10-26 | 1993-06-08 | Giuseppe Vrespa | Dispositivo a vite per l'ancoraggio di protesi alle ossa, metodo per l'applicazione di tale dispositivo e relativa attrezzatura |
US6687798B1 (en) * | 2001-05-31 | 2004-02-03 | Oracle International Corporation | Methods for intra-partition parallelism for inserts |
US7062616B2 (en) * | 2001-06-12 | 2006-06-13 | Intel Corporation | Implementing a dual partition flash with suspend/resume capabilities |
US7603533B1 (en) * | 2003-07-22 | 2009-10-13 | Acronis Inc. | System and method for data protection on a storage medium |
US7987160B2 (en) * | 2006-01-30 | 2011-07-26 | Microsoft Corporation | Status tool to expose metadata read and write queues |
US7562180B2 (en) * | 2006-03-28 | 2009-07-14 | Nokia Corporation | Method and device for reduced read latency of non-volatile memory |
US20080294813A1 (en) * | 2007-05-24 | 2008-11-27 | Sergey Anatolievich Gorobets | Managing Housekeeping Operations in Flash Memory |
US7855916B2 (en) * | 2007-10-24 | 2010-12-21 | Rao G R Mohan | Nonvolatile memory systems with embedded fast read and write memories |
KR100940040B1 (ko) * | 2007-11-26 | 2010-02-04 | 김수홍 | 임플란트 시술용 탭드릴 |
US8856464B2 (en) * | 2008-02-12 | 2014-10-07 | Virident Systems, Inc. | Systems for two-dimensional main memory including memory modules with read-writeable non-volatile memory devices |
US20090216960A1 (en) * | 2008-02-27 | 2009-08-27 | Brian David Allison | Multi Port Memory Controller Queuing |
US8209439B2 (en) * | 2008-08-25 | 2012-06-26 | Sandisk Il Ltd. | Managing multiple concurrent operations with various priority levels in a local storage device |
-
2010
- 2010-03-22 US US12/728,472 patent/US8429374B2/en active Active
- 2010-12-06 CN CN201080062374.6A patent/CN102763090B/zh active Active
- 2010-12-06 EP EP10809331.1A patent/EP2529308B1/en active Active
- 2010-12-06 WO PCT/IB2010/003120 patent/WO2011092543A1/en active Application Filing
-
2013
- 2013-03-21 US US13/848,369 patent/US20130219111A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1961302A (zh) * | 2004-04-28 | 2007-05-09 | 英特尔公司 | 具有命令前瞻的存储器控制器 |
CN101082891A (zh) * | 2007-05-10 | 2007-12-05 | 忆正存储技术(深圳)有限公司 | 并行闪存控制器 |
CN101615162A (zh) * | 2008-06-23 | 2009-12-30 | 株式会社理光 | 存储器管理单元、图像形成设备、存储器管理方法和程序 |
CN101498994A (zh) * | 2009-02-16 | 2009-08-05 | 华中科技大学 | 一种固态硬盘控制器 |
Also Published As
Publication number | Publication date |
---|---|
EP2529308B1 (en) | 2018-12-05 |
US20110185114A1 (en) | 2011-07-28 |
WO2011092543A1 (en) | 2011-08-04 |
CN102763090A (zh) | 2012-10-31 |
US20130219111A1 (en) | 2013-08-22 |
US8429374B2 (en) | 2013-04-23 |
EP2529308A1 (en) | 2012-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102763090B (zh) | 用于利用nand存储器件同时读写的系统和方法 | |
US11042297B2 (en) | Techniques to configure a solid state drive to operate in a storage mode or a memory mode | |
TWI641952B (zh) | 記憶體裝置、方法、及電腦程式產品 | |
US20120137057A1 (en) | Memory device | |
KR20120112965A (ko) | 비휘발성 메모리 장치, 이를 스왑 메모리로 이용하는 데이터 처리 장치, 및 이를 이용한 스왑 방법 | |
US20110231599A1 (en) | Storage apparatus and storage system | |
US8914571B2 (en) | Scheduler for memory | |
CN102279712A (zh) | 一种适用于互联网存储系统的存储控制方法、系统和装置 | |
TWI710905B (zh) | 資料儲存裝置及邏輯至物理位址映射表之載入方法 | |
CN110647359B (zh) | 半导体装置、其操作方法和具有其的层叠存储装置 | |
US11520520B2 (en) | Memory system and method of controlling nonvolatile memory | |
EP2054800A2 (en) | Flash memory access circuit | |
US20120124320A1 (en) | Memory management device, memory management method, memory management program, computer-readable recording medium recording memory management program and integrated circuit | |
US9934100B2 (en) | Method of controlling memory swap operation and data processing system using same | |
US8386725B2 (en) | USB host controller and controlling method for USB host controller | |
US7969781B2 (en) | Method of controlling memory system | |
CN111045961B (zh) | 数据处理方法及使用所述方法的存储控制器 | |
US20110161566A1 (en) | Write timeout control methods for flash memory and memory devices using the same | |
JP2009020776A (ja) | スワップアウト制御装置 | |
US11010318B2 (en) | Method and apparatus for efficient and flexible direct memory access | |
US20030041190A1 (en) | System and method for efficiently performing a command swapping procedure | |
JP5231496B2 (ja) | 情報処理装置及びそのサスペンド/リジューム方法 | |
JP2013045218A (ja) | データコピー処理システム、ストレージ装置、及びデータコピー処理方法 | |
KR20220036169A (ko) | 메모리 시스템 및 데이터 처리 시스템 | |
JP2004355039A (ja) | ディスクアレイ装置及び同装置に適用されるキャッシュ一致化制御方法 |
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 |