CN105095096B - 存储交换方法、主机装置、存储装置和数据处理*** - Google Patents
存储交换方法、主机装置、存储装置和数据处理*** Download PDFInfo
- Publication number
- CN105095096B CN105095096B CN201510257186.3A CN201510257186A CN105095096B CN 105095096 B CN105095096 B CN 105095096B CN 201510257186 A CN201510257186 A CN 201510257186A CN 105095096 B CN105095096 B CN 105095096B
- Authority
- CN
- China
- Prior art keywords
- memory
- storage
- task
- page
- queue information
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- 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
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
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)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供一种存储交换方法和使用该存储交换方法的数据处理***,所述存储交换方法包括:从主机装置接收用于存储交换任务的队列信息;基于队列信息执行存储装置中的存储交换任务的一部分;在完成执行存储交换任务的所述一部分之后,从主机装置接收与队列信息对应的命令;以及根据命令通过利用预先执行的存储交换任务的所述一部分的结果来执行存储交换任务的剩余部分。
Description
要求于2014年5月19日在韩国知识产权局提交的第10-2014-0059962号韩国专利申请的优先权,该韩国专利申请的公开内容通过引用全部包含于此。
技术领域
在此描述的发明构思涉及用于控制存储器的方法和设备,更具体地,涉及一种存储交换方法和使用该存储交换方法的数据处理***。
背景技术
在虚拟存储***中,可以根据是否需要处理来改变存储器中存储区的分配。通常,可以反复执行把进程的一些或全部页从主存储器去除和加载回主存储器中的存储交换操作。执行存储交换操作的速度影响使用虚拟存储***的数据处理***的性能。
发明内容
发明构思的实施例提供一种用于提高存储交换速度的存储交换方法、一种用于提高存储交换速度的主机装置、一种用于提高存储交换速度的存储装置以及一种用于提高存储交换速度的数据处理***。
发明构思的实施例提供一种存储交换方法,所述存储交换方法包括:从主机装置接收用于存储交换任务的队列信息;基于队列信息执行存储装置中的存储交换任务的一部分;在完成执行存储交换任务的所述一部分之后,从主机装置接收与队列信息对应的命令;以及根据命令通过利用预先执行的存储交换任务的所述一部分的结果来执行存储交换任务的剩余部分。
在一些实施例中,队列信息可以包括与存储交换任务有关的信息和与根据存储交换任务被请求的数据的属性有关的信息。
在一些实施例中,队列信息还可以包括任务优先级信息。
在一些实施例中,队列信息可以被利用预设命令从主机装置发送到存储装置。
在一些实施例中,当针对读取命令的任务包括在队列信息中时,存储交换任务的所述一部分可以包括从存储装置的非易失性存储器装置读取数据并在存储装置的随机存取存储器中存储所读取的数据的操作。
在一些实施例中,当针对写入命令的任务包括在队列信息中时,存储交换任务的所述一部分可以包括通过从地址转换和存储交叉调度中选择的至少一者来执行在存储装置中写入数据的操作。
在一些实施例中,执行存储交换任务的一部分的步骤可以包括:执行地址转换,从而在存储装置的不同存储芯片中执行用于存储交换任务的页调出操作和页调入操作;以及基于地址转换的结果,执行从根据页调出操作的写入操作和根据页调入操作的读取操作中选择的至少一种操作的一部分。
在一些实施例中,可以执行页调入操作,其中,页调出操作的编程时间和页调入操作的读取时间彼此部分地重合。
在一些实施例中,执行存储交换任务的一部分的步骤可以包括:基于从主机装置接收的多条队列信息重建任务执行顺序;以及基于重建的任务执行顺序来执行存储装置中的存储交换任务的所述一部分。
在一些实施例中,重建任务执行顺序的步骤可以是基于包括在多条队列信息中的优先级信息来进行的。
在一些实施例中,接收命令的步骤可以包括:向主机装置发送表示存储装置的队列状态的信号;以及基于表示队列状态的信号从主机装置接收与队列信息对应的命令。表示队列状态的信号可以包括表示完成了所述基于队列信息来执行存储交换任务的一部分的信息。
发明构思的实施例提供一种主机装置,所述主机装置包括主存储器和被配置为利用加载到主存储器的数据来执行应用程序的处理器。处理器被配置为当发生页错误时,顺序地发送用于存储交换任务的队列信息和与所述队列信息对应的命令。
在一些实施例中,处理器可以被配置为根据存储交换任务向存储装置发送队列信息。队列信息可以包括关于从页调出操作和页调入操作中选择的至少一种操作的信息。
在一些实施例中,处理器可以被配置为利用预设命令向存储装置发送队列信息。
在一些实施例中,在向存储装置发送用于存储交换任务的队列信息之后,处理器可以被配置为基于存储装置的队列状态向存储装置发送与所述队列信息对应的命令。
发明构思的实施例提供一种存储装置,所述存储装置包括:存储器装置,向所述存储器装置分配存储交换空间;以及存储控制器,被配置为控制存储器装置的读取操作和写入操作。存储控制器被配置为接收用于存储交换任务的队列信息和与所述队列信息对应的命令,基于接收到的所述队列信息来控制存储器装置以执行存储交换任务的一部分,然后根据命令控制存储器装置以执行所述存储交换任务的剩余部分。
在一些实施例中,存储器装置可以包括多个闪存芯片,存储控制器被配置为执行地址转换以在存储器装置的不同闪存芯片中执行用于存储交换任务的页调出操作和页调入操作。
在一些实施例中,存储控制器可以被配置为确定操作时序,使得页调出操作的编程时间和页调入操作的读取时间彼此部分地重合。
在一些实施例中,存储控制器可以被配置为基于包括在队列信息中的优先级信息来重建存储交换任务的任务执行顺序。
在一些实施例中,当队列信息中包括用于存储交换任务的针对页调出操作的任务和针对页调入操作的任务时,存储控制器可以被配置为控制存储器装置的写入操作或读取操作以首先执行页调入操作。
在一些实施例中,存储控制器可以被配置为产生表示存储装置的队列信息的信号并将所述信号发送到主机装置。
发明构思的实施例提供一种数据处理***,所述数据处理***包括:主机装置,被配置为当发生页错误时,向存储装置顺序地发送用于存储交换任务的队列信息和与队列信息对应的命令。存储装置被配置为接收队列信息和命令,基于从主机装置接收的队列信息来执行存储交换任务的一部分,并利用存储交换任务的预先执行了的所述一部分的结果来执行存储交换任务的剩余部分。
在一些实施例中,当发生页错误时,在向存储装置发送用于存储交换任务的队列信息之后,主机装置可以被配置为基于存储装置的队列状态而向存储装置发送与队列信息对应的命令。
在一些实施例中,存储装置可以被配置为确定操作时序使得用于存储交换任务的页调出操作的编程时间与页调入操作的读取时间彼此部分地重合。
在一些实施例中,存储装置可以包括嵌入式多媒体卡。
附图说明
发明构思的实施例将根据下面结合附图进行的详细描述而被更清楚地理解,在附图中,除非另有说明,否则同样的附图标记在各幅附图中指示同样的元件。
图1是示出根据发明构思的实施例的数据处理***的框图。
图2是示出根据发明构思的实施例的在图1中示出的数据处理***的元件的框图。
图3是示出根据发明构思的实施例的存储在图2中示出的主存储器中的程序或多条数据的框图。
图4是示出根据发明构思的实施例的图2中示出的存储控制器的详细框图。
图5是示出根据发明构思的实施例的图2中示出的存储器装置的详细框图。
图6是示出根据发明构思的实施例的图5中示出的存储单元阵列的图。
图7是示出根据发明构思的实施例的包括在图5中示出的存储单元阵列中的第一存储块的电路图。
图8是示出根据发明构思的实施例的在图7中示出的第一存储块的变型的第一存储块沿位线方向的剖视图。
图9是示出根据发明构思的实施例的第一存储块沿字线方向的剖视图。
图10是示出根据发明构思的实施例的在图7中示出的第一存储块的变型的第一存储块沿位线方向的剖视图。
图11是示出根据发明构思的实施例的包括在图7中示出的第一存储块中的单元串的变型的单元串的电路图。
图12是示出根据发明构思的实施例的包括在图7中示出的第一存储块中的单元串的变型的单元串的电路图。
图13是示出根据发明构思的另一实施例的数据处理***的框图。
图14A、图14B、图14C、图14D、图14E、图14F和图14G是根据发明构思的实施例示出当数据处理***中调用新进程时主存储器的存储区分配改变的示例。
图15A、图15B和图15C是示出根据发明构思的实施例的在根据数据处理***中随机存取存储器(RAM)(主存储器的)与存储装置之间的存储交换操作的数据传输的图。
图16是示出根据发明构思的实施例的在数据处理***中的存储交换操作的图。
图17是示出根据发明构思的另一实施例的在数据处理***中的存储交换操作的图。
图18是示出根据发明构思的另一实施例的在数据处理***中的存储交换操作的图。
图19是示出根据发明构思的另一实施例的在数据处理***中的存储交换操作的图。
图20A和图20B是示出根据发明构思的另一实施例的在数据处理***中的存储交换操作的图。
图21是示出与发明构思有关的在多媒体卡***中根据高优先级中断(HPI)操作的任务执行状态的图。
图22是用于解释在根据发明构思的实施例的数据处理***中基于存储装置的队列状态的存储交换操作的图。
图23是示出根据发明构思的实施例的存储交换方法的流程图。
图24是示出根据发明构思的实施例的在图23中示出的存储交换方法中预先执行存储交换任务的一部分的操作的详细流程图。
图25是示出根据发明构思的另一实施例的在图23中示出的存储交换方法中预先执行存储交换任务的一部分的操作的详细流程图。
图26是示出根据发明构思的实施例的在图23中示出的存储交换方法中接收命令的操作的详细流程图。
图27是示出在根据发明构思的实施例的数据处理***的主机装置中执行的存储交换操作的流程图。
图28是示出在根据发明构思的另一实施例的数据处理***的主机装置中执行的存储交换操作的流程图。
图29是示出在根据发明构思的实施例的数据处理***的存储装置中执行的存储交换操作的流程图。
图30是示出在根据发明构思的另一实施例的数据处理***的存储装置中执行的存储交换操作的流程图。
图31是示出应用到根据发明构思的实施例的数据处理***的存储装置的存储器装置的透视图。
图32是示出应用到根据发明构思的实施例的数据处理***的存储装置的存储模块的图。
图33是示出根据发明构思的实施例的计算***的图。
图34是示出应用到根据发明构思的实施例的数据处理***的存储装置的存储卡的图。
具体实施方式
如这里所使用的,述语“和/或”包括相关列出项中的一个或更多个的任意和所有组合。当诸如“……中的至少一个(种)”的表述位于一系列的元件之后时,修饰元件的整个系列而不修饰该系列中的单个元件。
现在,将参照附图更充分地描述发明构思,在附图中示出了发明构思的示例性实施例。然而,应该理解的是,不意图把发明构思的示例实施例限制成所公开的具体形式,反之,发明构思的示例实施例将覆盖所有落入发明构思的精神和范围内的变型、等同物和替换物。相同的附图标记在附图中指示相同的元件。在附图中,为了清楚起见,可以夸大结构的尺寸。
在这里使用的术语仅出于描述具体实施例的目的,并且不意图限制本发明。如在这里使用的,单数形式“一”、“一个”和“该(所述)”也意图包括复数形式,除非上下文清楚地另行指示。还将理解的是,当本说明书中使用术语“包括”和/或其变型或“包含”和/或其变型时,指存在陈述的特征、区域、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或更多个其他特征、区域、整体、步骤、操作、元件、组件和/或它们的组。
除非另行定义,否则在此使用的术语(包括技术术语和科学术语)具有与本发明所属技术领域的普通技术人员所通常理解的意思相同的意思。还将理解的是,诸如在常用辞典中定义的术语将被解释为具有与它们在相关领域的上下文中的意思一致的意思,并且将不以理想化或过于形式化的含义来解释它们,除非这里明确地如此定义。
图1是示出根据发明构思的实施例的数据处理***1000的框图。
如图1中所示,数据处理***1000包括主机装置100和存储装置200。
主机装置100和存储装置200彼此电连接。主机装置100可以向存储装置200发送队列信息Q-CMD和命令CMD。数据可以在主机装置100和存储装置200之间发送/接收。例如,存储装置200可以是嵌入式多媒体卡(eMMC)。
当发生页错误时,主机装置100向存储装置200顺序地发送用于存储交换任务的队列信息Q-CMD和与该队列信息Q-CMD对应的命令CMD。将要被读取以使主机装置100执行应用处理的页未被存储在主机装置100中时会发生页错误。例如,队列信息Q-CMD可以包括与从用于存储交换操作的页调入操作和页调出操作中选择的至少一种操作有关的队列信息。队列信息Q-CMD是指示读取命令或写入命令来执行从用于存储交换操作的页调入操作和页调出操作中选择的至少一种操作的任务的信息。队列信息Q-CMD可以包括与存储交换任务有关的信息和与被主机装置100请求的数据的属性有关的信息。队列信息Q-CMD可以包括任务优先级信息。另外,可以使用预设命令将队列信息Q-CMD发送到存储装置200。
存储装置200基于从主机装置100发送的队列信息Q-CMD预先执行存储交换任务的一部分。接下来,当接收到与队列信息Q-CMD对应的命令CMD时,存储装置200利用存储交换任务的已经被预先执行了的部分来执行该存储交换任务的剩余部分。即,存储器装置可以基于队列信息Q-CMD来执行存储交换任务的一部分,然后基于命令CMD可以利用存储交换任务的预先或已经被执行了的部分来执行该存储交换任务的剩余部分。
可以经由数据总线在主机装置100和存储装置200之间发送和接收与用于存储交换任务的页调出操作或页调入操作相关的数据DATA。
图2是示出根据发明构思的实施例的在图1中示出的数据处理***1000的元件的框图。
如图2所示,数据处理***1000的主机装置100包括处理器110和主存储器120。
处理器110执行用于执行任务或特定计算的应用。例如,处理器110可以是微处理器或中央处理单元(CPU)。
处理器110电连接到主存储器120。处理器110可以经由包括地址总线、控制总线和/或数据总线的总线130连接到主存储器120。处理器110可以读取被加载到主存储器120中的数据并执行各种处理。
执行主机装置100中的处理所需要的数据存储在主存储器120中。这里,术语“数据”包括程序和堆栈信息。
主存储器120可以是例如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)。
处理器110可以利用虚拟存储***向每个程序分配虚拟存储地址而非实际存储地址。这种方法可以在多任务操作***中使用,并用作提供比主存储器120大的存储区的方法。由于虚拟存储***中的程序要使用比主存储器120的容量大的地址空间,所以不能把在程序数据中使用的所有地址空间的信息加载到主存储器120。因此,仅将执行程序所必须的一部分程序数据加载到主存储器120,而该程序数据的剩余部分被存储在用作交换空间的存储装置200的存储器装置220中。
存储交换操作用来在虚拟存储***中执行比主存储器120大的程序,或者存储交换操作可以用来在虚拟存储***中处理比主存储器120大的数据文件。例如,在存储交换期间,可以以页或段为单位来交换数据。
当需要从主存储器120去除进程的单个页或所有页时,处理器110利用存储交换操作在存储装置200的存储器装置220中存储将要被去除的数据。
当发生页错误时,处理器110经由有线或无线接口300将用于存储交换任务的队列信息Q-CMD和命令CMD顺序地发送到存储装置200。
当出现执行新进程的请求时,处理器110确定与被请求的进程有关的数据是否加载到了主存储器120。如果所述被请求的进程没有加载到主存储器120,则发生页错误。一旦发生页错误,处理器110首先向存储装置200发送用于存储交换任务的队列信息Q-CMD。接下来,处理器110向存储装置200发送用于存储交换任务的命令CMD。
例如,处理器110可以利用预设命令向存储装置200发送队列信息Q-CMD。例如,处理器110可以利用特定命令向存储装置200发送队列信息Q-CMD,其中,该特定命令表示以eMMC协议列队的任务的参数。
数据处理***1000的存储装置200包括存储控制器210和存储器装置220。
存储装置200的存储控制器210可以经由有线或无线接口300从主机装置100的处理器110接收信息或者可以向处理器110发送信息。
存储控制器210电连接到存储器装置220。存储控制器210可以经由包括地址总线、控制总线和/或数据总线的总线230连接到存储器装置220。
存储交换空间被分配给存储器装置220(非易失性存储器装置)。因此,存储交换数据可以被存储在存储器装置220的存储交换空间中。存储器装置220的示例可以包括闪存、相变RAM(PRAM)、铁电RAM(FRAM)和磁RAM(MRAM)等。例如,存储器装置220可以包括多个闪存芯片。
存储控制器210响应于从主机装置100接收的队列信息Q-CMD和命令CMD来控制存储器装置220的擦除操作、写入操作或读取操作。
存储控制器210控制存储器装置220的读取操作或写入操作,以基于从主机装置100发送的队列信息Q-CMD预先执行存储交换任务的一部分,并根据命令CMD利用该存储交换任务的已经被预先执行了的部分来执行该存储交换任务的剩余部分。
例如,存储控制器210可以执行地址转换,使得用于存储交换任务的页调出操作和页调入操作在存储装置220的不同闪存芯片中执行。
例如,存储控制器210可以确定操作时序,使得页调出操作的编程时间和页调入操作的读取时间彼此部分地重合。
例如,当队列信息Q-CMD中包括用于存储交换任务的页调出操作任务和页调入操作任务时,存储控制器210可以将存储器装置220的读取操作或写入操作的顺序控制为首先执行页调入操作。
例如,存储控制器210可以基于包括在队列信息Q-CMD中的优先级信息来重建任务执行顺序。即,存储控制器210可以将存储器装置220控制为根据包括在队列信息Q-CMD中的优先级来重建队列信息Q-CMD的顺序,并根据队列信息Q-CMD的重建顺序预先执行存储交换任务的一部分。存储控制器210可以将队列信息的重建顺序发送到主机装置100。
例如,存储控制器210可以将表示存储装置200的队列状态的信号发送到主机装置100。即,存储控制器210可以将表示存储装置200的队列准备就绪的信号发送到主机装置100。
图3是示出根据发明构思的实施例的存储在图2中示出的主存储器120中的程序或多条数据的框图。
参照图3,操作***120-1、应用120-2、文件***120-3、存储管理器120-4、设备驱动器120-5和页表120-6可以存储在主存储器120中。
操作***120-1是控制主机装置100的硬件和软件资源的程序。操作***120-1用作硬件与应用程序之间的接口,并管理主机装置100的资源。
应用120-2包括主机装置100中执行的各种应用程序。例如,应用120-2可以包括支持处理文件或数据的操作的程序。
文件***120-3是在主机装置100的主存储器120中或者在连接到主机装置100的存储装置200中管理逻辑地址和存储位置以存储或搜索文件或数据的程序。
存储管理器120-4是控制对主存储器120的存储存取操作或对连接到主机装置100的存储装置200的存储存取操作的程序。
设备驱动器120-5是支持与连接到主机装置100的存储装置200通信的程序。
存储在主存储器120和连接到主机装置100的存储装置200中的信息的页列表被存储在页表120-6中。例如,页列表可以包括关于与逻辑页地址对应的物理页地址的信息。例如,可以基于存储在页表120-6中的物理地址来确定将要被存取的信息是存储在主存储器120中还是存储在连接到主机装置100的存储装置200中。例如,页表120-6中可以包括存储映射信息。可选择地,存储映射信息可以与页表120-6分开存储。
参照图2和图3,处理器110可以利用从被加载到主存储器120的操作***120-1、文件***120-3和存储管理器120-4中选择的至少一个程序来搜索页表120-6,并可以确定新产生的进程中是否发生页错误。另外,当利用选自于操作***120-1、文件***120-3、存储管理器120-4和设备驱动器120-5中的至少一个程序确定发生了页错误时,处理器110可以向存储装置200顺序地发送用于存储交换任务的队列信息Q-CMD和命令CMD。
图4是示出根据发明构思的实施例的图2中示出的存储控制器210的详细框图。
如图4中所示,存储控制器210包括控制单元211、RAM 212、命令队列213、存储器接口214、主机接口215和总线216。
总线216指的是数据、地址和控制信号在存储控制器210的元件之间传输所经过的传输路径。
RAM 212中临时存储从主机装置100发送的数据和由控制单元211产生的数据,或者RAM 212中临时存储将要被发送到主机装置100的数据。另外,存储用于地址转换的参数值和元数据的区域被分配给RAM 212。存储从主机装置100发送的多条队列信息Q-CMD的区域也被分配给RAM 212。RAM 212的示例可以包括DRAM和SRAM。
从主机装置100接收的命令顺序地存储在命令队列213中。
控制单元211控制存储装置200的整体操作。详细地,控制单元211将从主机装置100接收的队列信息Q-CMD和命令CMD解码,并根据解码的结果控制存储装置200以执行操作。
控制单元211根据从主机装置100发送的队列信息Q-CMD预先执行存储交换任务的一部分。另外,当从主机装置100接收到与队列信息Q-CMD对应的命令CMD时,控制单元211利用该存储交换任务的已经被预先执行了的部分来控制存储装置200的写入操作或读取操作,以执行该存储交换任务的剩余部分。
例如,控制单元211可以执行地址转换,使得用于基于队列信息Q-CMD的存储交换任务的页调出操作和页调入操作在存储器装置220的不同闪存芯片中执行。例如,如图17中所示,控制单元211可以确定操作时序,使得页调出操作的编程时间和页调入操作的读取时间彼此部分地重合。
例如,控制单元211可以根据包括在队列信息Q-CMD中的优先级信息来重建任务执行顺序。即,控制单元211可以根据包括在队列信息Q-CMD中的优先级信息来重建多条队列信息Q-CMD的顺序,并可以根据所述多条队列信息Q-CMD的重建顺序来控制存储器装置220,以预先执行存储交换任务的一部分。
例如,控制单元211可以将表示命令队列213的状态的信号发送到主机装置100。即,控制单元211可以向主机装置100发送信号表示命令队列213准备就绪以待执行。例如,控制单元211可以向主机装置100发送信号表示根据队列信息Q-CMD完成了准备工作。
存储器接口214电连接到存储器装置220。存储器接口214在控制单元211的控制下与存储器装置220交换命令、地址和数据。存储器接口214可以被配置为支持NAND闪存或NOR闪存。存储器接口214可以被配置为通过多个通道来选择性地执行软件和硬件交叉操作。
主机接口215包括与主机装置100的数据交换协议,并且连接存储装置200和主机装置100。主机接口215的示例可以包括:高级技术附件(ATA)接口、串行高级技术附件(SATA)接口、并行高级技术附件(PATA)接口、通用串行总线(USB)或串行连接小型(SAS)计算机***接口、小型计算机***接口(SCSI)、eMMC接口和unix文件***(UFS)接口等。然而,示例实施例不限于上面提到的接口。详细地,主机接口215在控制单元211的控制下与主机装置100交换命令、地址和数据。
图5是示出根据发明构思的实施例的图2中示出的存储器装置220的详细框图。
参照图5,存储器装置220可以包括存储单元阵列11、控制逻辑12、电压产生器13、行解码器14和页缓冲器15。现在,将详细解释包括在存储器装置220中的元件。
存储单元阵列11可以连接到一条或更多条串选择线SSL、多条字线WL以及一条或更多条接地选择线GSL。另外,存储单元阵列11可以连接到多条位线BL。存储单元阵列11可以包括设置在多条字线WL与多条位线BL彼此交叉的点处的多个存储单元MC(见图7、图8和图10)。
当把擦除电压施加到存储单元阵列11时,多个存储单元MC变为擦除状态,当把编程电压施加到存储单元阵列11时,多个存储单元MC变为编程状态。在这种情况下,每个存储单元MC可以具有从根据阈值电压定义的第一编程状态P1至第n编程状态Pn和擦除状态中选择的一种状态。
这里,n可以是等于或大于2的自然数。例如,当每个存储单元MC为2比特级单元时,n可以为3。可选择地,当每个存储单元MC为3比特级单元时,n可以为7。可选择地,当每个存储单元MC为4比特级单元时,n可以为15。如此,多个存储单元MC可以包括多级单元。然而,本实施例不限于此,多个存储单元MC可以包括单级单元。
控制逻辑12可以基于从存储控制器210接收的命令CMD、地址ADDR和控制信号CTRL来输出用于向存储单元阵列11写入数据或从存储单元阵列11读取数据的各种控制信号。因此,控制逻辑12可以控制存储器装置220中的各种操作。
从控制逻辑12输出的各种控制信号可以被施加到电压产生器13、行解码器14和页缓冲器15。详细地,控制逻辑12可以将电压控制信号CTRL_vol施加到电压产生器13,将行地址X_ADDR施加到行解码器14,并将列地址Y_ADDR施加到页缓冲器15。
电压产生器13可以基于电压控制信号CTRL_vol产生用于对存储单元阵列11执行编程操作、读取操作和擦除操作的各种电压。详细地,电压产生器13可以产生用于驱动多条字线WL的第一驱动电压VWL、用于驱动多条串选择线SSL的第二驱动电压VSSL和用于驱动多条接地选择线GSL的第三驱动电压VGSL。
在这种情况下,第一驱动电压VWL可以是编程电压(或写入电压)、读取电压、擦除电压、通过电压或编程验证电压。另外,第二驱动电压VSSL可以是串选择电压,即,导通电压或截止电压。进一步地,第三驱动电压VGSL可以是接地选择电压,即,导通电压或截止电压。
在图5中,当基于电压控制信号CTRL_vol开始编程循环时,即,当编程循环次数为1时,电压产生器13可以产生编程起始电压作为编程电压。另外,随着编程循环次数的增加,电压产生器13可以产生从编程起始电压开始逐渐升高的电压作为编程电压,其中,电压升高的幅度达到阶电压。
行解码器14可以通过多条字线WL连接到存储单元阵列11,并且可以响应于从控制逻辑12接收的行地址X_ADDR而激活多条字线WL中的一些字线。详细地,在读取操作期间,行解码器14可以向选定字线施加读取电压而向非选定字线施加通过电压。
在编程操作期间,行解码器14可以向选定字线施加编程电压而向非选定字线施加通过电压。在图5中,在至少一次编程循环期间,行解码器14可以向选定字线和额外的选定字线施加编程电压。
页缓冲器15可以通过多条位线BL连接到存储单元阵列11。详细地,在读取操作期间,页缓冲器15可以作为感应放大器来操作并可以输出存储在存储单元阵列11中的数据DATA。在编程操作期间,页缓冲器15可以作为写入驱动器来操作并可以输入将要被存储在存储单元阵列11中的数据DATA。
图6是示出根据发明构思的实施例的图5中示出的存储单元阵列11的图。
参照图6,存储单元阵列11可以是闪存单元阵列。在这种情况下,存储单元阵列11可以包括a个(a是等于或大于2的整数)存储块BLK1至BLKa,存储块BLK1至BLKa中的每个存储块可以包括b个(b是等于或大于2的整数)页PAGE1至PAGEb,页PAGE1至PAGEb中的每个页可以包括c个(c是等于或大于2的整数)扇区SEC1至SECc。虽然为了便于解释而在图6中仅示出了用于存储块BLK1的页PAGE1至PAGEb和扇区SEC1至SECc,但是其他存储块BLK2至BLKa与存储块BLK1具有相同的结构。
图7是示出根据发明构思的实施例的包括在图5中示出的存储单元阵列11中的存储块BLK1a(在下文中,称作第一存储块BLK1a)的电路图。
参照图7,第一存储块BLK1a可以是垂直NAND闪存。在这种情况下,图6的存储块BLK1至BLKa中的每个存储块可以具有如图7中所示的结构。在图7中,第一方向为x方向,第二方向为y方向,第三方向为z方向。然而,本实施例不限于此,第一方向至第三方向可以改变。
第一存储块BLK1a可以包括多个单元串CST、多条字线WL、多条位线BL、多条接地选择线GSL(例如,第一接地选择线GSL1和第二接地选择线GSL2)、多条串选择线SSL(例如,第一串选择线SSL1和第二串选择线SSL2)以及共源极线CSL。可以根据实施例以各种方式改变单元串CST的个数、字线WL的条数、位线BL的条数、接地选择线GSL的条数以及串选择线SSL的条数。
每个单元串CST可以包括串联连接在相应位线BL与共源极线CSL之间的串选择晶体管SST、多个存储单元MC和接地选择晶体管GST。然而,本实施例不限于此,单元串CST还可包括至少一个虚设单元。可选择地,单元串CST可以包括至少两个串选择晶体管或至少两个接地选择晶体管。
另外,单元串CST可以沿第三方向(即,z方向)延伸。详细地,单元串CST可以沿与基底310(见图8)垂直的方向(z方向)延伸。因此,可以将包括单元串CST的第一存储块BLK1a称为垂直NAND闪存。如此,由于单元串CST沿与基底310垂直的方向(Z方向)延伸,因此可以提高存储单元阵列11的集成程度。
多条字线WL可以沿第一方向(即,x方向)和第二方向(即,y方向)延伸并可以分别连接到与字线WL对应的存储单元MC。因此,在同一层上沿第一方向(即,x方向)和第二方向(即,y方向)彼此相邻地布置的多个存储单元MC可以连接到同一条字线。详细地,每条字线WL可以连接到在同一层上沿第一方向(即,x方向)和第二方向(即,y方向)彼此相邻地布置的存储单元MC的栅极,并可以控制存储单元MC。在这种情况下,多个存储单元MC可以存储数据,并可以在连接到多个存储单元MC的字线WL的控制下执行编程操作、读取操作或擦除操作。
多条位线BL可以沿第一方向(即,x方向)延伸,并可以连接到串选择晶体管SST。因此,沿第一方向(即,x方向)彼此相邻地布置的多条串选择晶体管SST可以连接到同一条位线BL。详细地,每条位线BL可以连接到串选择晶体管SST的漏极。
多条串选择线SSL(例如,第一串选择线SSL1和第二串选择线SSL2)可以沿第二方向(即,y方向)延伸,并可以连接到串选择晶体管SST。因此,沿第二方向(y方向)彼此相邻地布置的多个串选择晶体管SST可以连接到同一条串选择线(例如,第一串选择线SSL1或第二串选择线SSL2)。详细地,第一串选择线SSL1和第二串选择线SSL2中的每条串选择线可以连接到串选择晶体管SST的栅极,并可以控制串选择晶体管SST。
多条接地选择线GSL(例如,第一接地选择线GSL1和第二接地选择线GSL2)可以沿第二方向(即,y方向)延伸,并可以连接到接地选择晶体管GST。因此,沿第二方向(即,y方向)彼此相邻地布置的多个接地选择晶体管GST可以连接到同一条接地选择线(例如,第一接地选择线GSL1或第二接地选择线GSL2)。详细地,第一接地选择线GSL1和第二接地选择线GSL2中的每条接地选择线可以连接到接地选择晶体管GST的栅极,并可以控制接地选择晶体管GST。
另外,包括在单元串CST中的接地选择晶体管GST可以共同连接到共源极线CSL。详细地,共源极线CSL可以连接到接地选择晶体管GST的源极。
可以将共同连接到同一条字线WL和同一条串选择线(例如,第一串选择线SSL1或第二串选择线SSL2)并沿第二方向(即,y方向)彼此相邻布置的多个存储单元MC称作页PAGE。例如,可以将共同连接到字线WL1(在下文中,称作第一字线WL1)、共同连接到第一串选择线SSL1并沿第二方向(即,y方向)彼此相邻布置的多个存储单元MC称作第一页PAGE1。另外,可以将共同连接到第一字线WL1、共同连接到第二串选择线SSL2并沿第二方向(即,y方向)彼此相邻布置的多个存储单元MC称作第二页PAGE2。
为了对存储单元MC执行编程操作,可以向位线BL施加0V电压、可以向串选择线SSL施加ON电压并可以向接地选择线GSL施加OFF电压。ON电压可以等于或大于阈值电压以使串选择晶体管SST导通,OFF电压可以小于阈值电压以使接地选择晶体管GST截止。另外,可以向从存储单元MC中选择的存储单元施加编程电压,并可以向剩余的存储单元施加通过电压。一旦施加了编程电压,电荷因F-N隧穿而注入到存储单元MC中。通过电压可以大于存储单元MC的阈值电压。
为了对存储单元MC执行擦除操作,可以向存储单元MC的主体施加擦除电压,并向字线WL施加0V电压。因此,可以一次性擦除存储单元MC的数据。
图8是示出根据发明构思的实施例的在图7中示出的第一存储块BLK1a的变型的第一存储块BLK1a'沿位线方向的剖视图。图9是示出根据发明构思的实施例的第一存储块BLK1a'沿字线方向的剖视图。
参照图8和图9,第一存储块BLK1a'可以包括基底310,其中,基底310具有沿第一方向(即,x方向)延伸的主表面。基底310可以包括半导体材料,例如,IV族半导体、III-V族化合物半导体或II-VI族氧化物半导体。IV族半导体的示例可以包括硅、锗和锗化硅。在这种情况下,基底310可以被提供为块体晶圆或外延层。
半导体柱320a和320b可以设置在基底310上,以从基底310垂直地延伸。半导体柱320a和320b中的每个半导体柱可以包括诸如多晶硅或非晶硅的半导体材料,并且该半导体材料可以不被掺杂,或者可以包括p型杂质或n型杂质。
基底310可以包括在半导体柱320a和320b下面形成的杂质区315。杂质区315可以是源极区,并可以与基底310的另一区形成PN结。图7的共源极线CSL可以连接到杂质区315。可选择地,杂质区315可以被限定为仅半导体柱320a和320b的下端。
每个存储单元MC可以包括形成在各半导体柱320a和320b的侧壁上的存储介质330以及形成在存储介质330上的控制栅电极360。每个存储介质330可以包括形成在各半导体柱320a和320b的侧壁上的隧穿绝缘层332、形成在隧穿绝缘层332上的电荷存储层334以及形成在电荷存储层334上的阻挡绝缘层336。
电荷存储层334可以存储电荷。例如,电荷存储层334可以是电荷捕获层,并可以包括例如氮化硅层、量子点或纳米晶体。量子点或纳米晶体可以包括诸如金属或半导体颗粒的导体。隧穿绝缘层332和阻挡绝缘层336中的每个可以包括氧化物膜、氮化物膜或高k膜。高k膜可以是介电常数比氧化物膜和氧化物膜高的介电膜。
串选择晶体管SST可以包括形成在各半导体柱320a和320b的侧壁上的串选择栅电极355。串选择晶体管SST可以连接到位线380。位线380可以具有沿第一方向(即,x方向)延伸的线性图案。接地选择晶体管GST可以包括形成在各半导体柱320a和320b的侧壁上的接地选择栅电极350。
位于串选择晶体管SST与各半导体柱320a和320b之间并位于接地选择晶体管GST与各半导体柱320a和320b之间的存储介质330可以用作栅极绝缘层,并可以用一个绝缘层来代替。层间绝缘层340可以设置在接地选择栅电极350、控制栅电极360和串选择栅电极355之间。存储介质330可以沿着层间绝缘层340的表面延伸。
第一单元串CST1和第二单元串CST2可以彼此相邻设置并且半导体柱320a位于它们中间,第三单元串CST3和第四单元串CST4可以彼此相邻设置并且半导体柱320b位于它们中间。绝缘层370可以设置在第二单元串CST2和第三单元串CST3之间。
串选择栅电极355可以通过接触塞385连接到串选择线SSL。控制栅电极360可以通过接触塞390连接到分别与控制栅电极360对应的相应字线WL1至WLn。接地选择栅电极350可以通过接触塞395连接到接地选择线GSL。
图10是示出根据发明构思的实施例的在图7中示出的第一存储块BLK1a的变型的第一存储块BLK1a”沿位线方向的剖视图。
参照图10,第一存储块BLK1a”可以包括基底410,基底410具有沿第一方向(即,x方向)延伸的主表面。基底410可以包括半导体材料,例如,IV族半导体、III-V族化合物半导体或II-VI族氧化物半导体。IV族半导体的示例可以包括硅、锗和锗化硅。在这种情况下,基底410可以被提供为块体晶圆或外延层。
半导体柱420可以设置在基底410上以从基底410垂直地延伸。半导体柱420可以包括诸如多晶硅或非晶硅的半导体材料,并且该半导体材料可以不被掺杂,或者可以包括p型杂质或n型杂质。
存储介质430可以被形成为沿半导体柱420的纵向延伸。存储介质430可以包括形成在各半导体柱420的侧壁上的隧穿绝缘层432、形成在隧穿绝缘层432上的电荷存储层434以及形成在电荷存储层434上的阻挡绝缘层436。
串选择晶体管SST可以包括形成在半导体柱420的侧壁上的串选择栅电极455。串选择晶体管SST可以连接到位线480。位线480可以具有沿第一方向(即,x方向)延伸的线性图案。每个接地选择晶体管GST可以包括形成在半导体柱420的侧壁上的接地选择栅电极450。
位于串选择晶体管SST与半导体柱420之间并位于接地选择晶体管GST与半导体柱420之间的存储介质430可以用作栅极绝缘层,并可以用一个绝缘层来代替。层间绝缘层440可以设置在接地选择栅电极450、控制栅电极460和串选择栅电极455之间。
图11是示出根据发明构思的实施例的包括在图7中示出的第一存储块BLK1a中的单元串CST的变型的单元串CST'的电路图。
参照图11,单元串CST'可以包括至少一对串选择晶体管SST1和SST2、多个存储单元MC以及至少一对接地选择晶体管GST1和GST2。位线BL可以连接到单元串CST'的一端,共源极线CSL可以连接到单元串CST'的另一端。
包括在图11的单元串CST'中的一些元件与包括在图7的单元串CST中的元件基本相同。采用相同的附同标记来标注相同的元件,并将不再给出重复的解释。下面的内容将侧重于图7的单元串CST与图11的单元串CST'之间的差异。
多个存储单元MC可以垂直地且串联地布置。存储单元MC可以存储数据。多条字线WL可以连接到存储单元MC并可以控制存储单元MC。存储单元MC的个数可以根据非易失性存储器装置的容量来适当地确定。
至少一对串选择晶体管SST1和SST2可以在存储单元MC的一侧彼此相邻地布置。例如,串选择晶体管SST1和SST2可以设置在位线BL和第n存储单元MCn之间,并可以串联地连接到第n存储单元MCn。串选择晶体管SST1和SST2可以控制位线BL与存储单元MC之间的信号传输。串选择线SSL可以共同连接到串选择晶体管SST1和SST2。因此,串选择晶体管SST1和SST2可以如一个晶体管般交互操作。
至少一对接地选择晶体管GST1和GST2可以在存储单元MC的与串选择晶体管SST1和SST2相对的另一侧彼此相邻地布置。例如,接地选择晶体管GST1和GST2可以设置在共源极线CSL与第一存储单元MC1之间,并可以串联地连接到第一存储单元MC1。接地选择晶体管GST1和GST2可以控制共源极线CSL与存储单元MC之间的信号传输。接地选择线GSL可以共同连接到接地选择晶体管GST1和GST2。因此,接地选择晶体管GST1和GST2可以如一个晶体管般交互操作。
在图11中,由于串选择晶体管SST1和SST2的个数至少为2,因此各个串选择栅电极355(见图8)的长度与串选择晶体管的个数为1时相比可以显著减小,从而无空隙地填充层间绝缘层340(见图8)之间的空间。另外,由于接地选择晶体管GST1和GST2的个数至少为2,因此各个接地选择栅电极350(见图8)的长度与串选择晶体管的个数为1时相比可以显著减小,从而无空隙地填充层间绝缘层340(见图8)之间的空间。
图12是根据发明构思的实施例示出包括在图7中示出的第一存储块BLK1a中的单元串CST的变型的单元串CST”的电路图。
参照图12,单元串CST”可以包括至少一对串选择晶体管SST1和SST2、多个存储单元MC以及至少一对接地选择晶体管GST1和GST2。位线BL可以连接到单元串CST”的一端,共源极线CSL可以连接到单元串CST”的另一端。
包括在图12的单元串CST”中的一些元件与包括在图7的单元串CST'中的元件基本相同。采用相同的附同标记来标注相同的元件,并将不再给出重复的解释。下面的内容将侧重于图11的单元串CST'与图12的单元串CST”之间的差异。
至少一对串选择晶体管SST1和SST2可以在存储单元MC的一侧彼此相邻地布置。例如,串选择晶体管SST1和SST2可以设置在位线BL和第n存储单元MCn之间,并可以串联地连接到第n存储单元MCn。串选择晶体管SST1和SST2可以控制位线BL与存储单元MC之间的信号传输。在这种情况下,第一串选择线SSLa可以连接到串选择晶体管SST1,第二串选择线SSLb可以连接到串选择晶体管SST2。
至少一对接地选择晶体管GST1和GST2可以在存储单元MC的与串选择晶体管SST1和SST2相对的另一侧彼此相邻地布置。例如,接地选择晶体管GST1和GST2可以设置在共源极线CSL与第一存储单元MC1之间,并可以串联地连接到第一存储单元MC1。接地选择晶体管GST1和GST2可以控制共源极线CSL与存储单元MC之间的信号传输。在这种情况下,第一接地选择线GSLa可以连接到接地选择晶体管GST1,第二接地选择线GSLb可以连接到接地选择晶体管GST2。
图13是示出根据发明构思的另一实施例的数据处理***2000的框图。
如图13中所示,数据处理***2000包括处理器2010、RAM 2020、请求队列2030、存储装置2040、输入/输出装置2050和总线2060。
虽然图13中没有示出,但数据处理***2000还可以包括可与视频卡、声卡、存储卡、USB设备和/或其他电子设备通信的端口。数据处理***2000可以是诸如个人电脑、笔记本电脑、蜂窝电话、个人数字助理(PDA)或者相机。
总线2060是在数据处理***2000的元件之间传输数据、地址和控制信号所经过的传输路径
处理器2010可以执行特定计算或任务。例如,处理器2010可以是微型处理器或CPU。处理器2010可以经由诸如地址总线、控制总线或数据总线的总线2060与RAM 2020、请求队列2030、存储装置2040和输入/输出装置2050通信。根据实施例,处理器2010可以连接到诸如外设组件互连(PCI)总线的扩展总线。
执行处理器2010中产生的进程所需要的数据被加载到RAM 2020。RAM 2020可以作为主存储器来操作,并且RAM 2020的示例可以包括DRAM和SRAM。
由处理器2010发布的请求被顺序地存储在请求队列2030中。请求可以包括写入请求、擦除请求或读取请求。例如,每个请求可以被定义为命令代码。因此,写入命令代码、擦除命令代码或读取命令代码可以存储在请求队列2030中。
存储装置2040包括存储控制器2041和存储器装置2042。例如,存储装置2040可以是eMMC。
存储控制器2041和存储器装置2042可以具有相同的电路结构,并且可以执行与图2中示出的存储控制器210和存储器装置220的操作相同的操作。因此,存储控制器2041可以控制存储器装置2042的写入操作和读取操作,以基于从处理器2010发送的队列信息Q-CMD预先执行存储交换任务的一部分并利用该存储交换任务的已经被预先执行了的部分来执行该存储交换任务的剩余部分。例如,存储控制器2041可以基于队列信息Q-CMD预先执行存储交换任务的一部分,并可以向处理器2010发送信号以表示用于执行与队列信息Q-CMD对应的命令CMD的命令队列准备就绪。
输入/输出装置2050可以包括诸如键盘、键区或鼠标的输入单元以及诸如打印机或显示单元的输出单元。
当通过输入/输出装置2050请求新进程时,处理器2010确定执行被请求的新进程所需要的数据是否加载到RAM 2020。当执行被请求的新进程所需要的数据加载到了RAM2020时,处理器2010利用被加载到RAM 2020的数据来执行对被请求的新进程的操作。
如果执行被请求的新进程所需要的数据没有加载到RAM 2020,处理器2010发布用于执行存储交换操作的请求,并将该请求存储在请求队列2030中。
接下来,处理器2010向存储装置2040顺序地发送存储在请求队列2030中的用于存储交换任务的队列信息Q-CMD和与该队列信息Q-CMD对应的命令CMD。例如,处理器2010可以利用预设命令来将存储在请求队列2030中的用于存储交换任务的队列信息Q-CMD发送到存储装置2040。例如,处理器2010可以利用表示列队任务的参数的特定命令来将队列信息Q-CMD发送到存储装置2040。
例如,队列信息Q-CMD中可以包括关于块计数、数据方向DD、请求优先级、任务ID和标记请求的多条信息。数据方向DD表示请求的内容是否与读取操作或写入操作有关。标记请求表示请求是被标记的数据。例如,可以使用上下文ID、任务ID和标记请求来表示数据的属性。
处理器2010将队列信息Q-CMD发送到存储控制器2041。接下来,当处理器2010从存储控制器2041接收表示命令队列准备就绪的信号时,处理器2010将与队列信息Q-CMD对应的命令CMD发送到存储控制器2041。
图14A、图14B、图14C、图14D、图14E、图14F和图14G是示出根据发明构思的实施例的当在数据处理***1000中调用新进程时主存储器的存储区分配被改变的示例。
现在将参照图2的数据处理***1000解释图14A、图14B、图14C、图14D、图14E、图14F和图14G中的当调用新进程时主存储器的存储区分配被改变的示例。
参照图14A、图14B、图14C、图14D、图14E、图14F和图14G,当在主机装置100中以A->B->C->D->A的顺序调用并执行进程时,主存储器120的存储区分配被改变。
首先,图14A示出根据进程A的调用来执行进程A所需要的数据被存储在主存储器120中的状态。图14B示出在执行了进程A之后根据进程B的调用来执行进程B所需要的数据存储在主存储器120中的状态。图14C示出在执行了进程B之后根据进程C的调用来执行进程C所需要的数据存储在主存储器120中的状态。
参照图14A至图14C,当用于进程A->B->C的数据被加载到主存储器120中时,在主存储器120中有空闲存储空间。
在图14D中,在执行了进程C之后,对于根据进程D的调用来执行进程D所需要的数据而言,在主存储器120中没有足够的存储空间。因此,图14D示出通过把用于进程A的数据转移到存储装置200来从主存储器120中去除了用于进程A的数据的状态。例如,可以将最旧的数据确定为首先从主存储器120中去除的数据。
图14E示出从主存储器120中去除用于进程A的数据之后的状态,执行被调用的进程D所需要的数据被存储在主存储器120中。
在图14F中,在执行了进程D之后再次调用进程A时,对于执行进程A所需要的数据而言,主存储器120中没有足够的存储空间。因此,图14F示出将已经被存储在存储装置200中的用于进程B的数据从主存储器120中去除的状态。
图14G示出从主存储器120中去除用于进程B的数据之后,执行被再次调用的进程A所需要的数据被存储在主存储器120中的状态。
参照图14A至图14G,伴随着存储交换操作,反复执行从主存储器120中去除和再次调用进程的所有页或每个页的过程。
如此,将在支持虚拟存储***的操作***中被用作实际扩展空间的存储装置200的存储区称作交换空间。例如,为了在主存储器120中形成将要在其中加载新程序的空间,可以选择主存储器120中已加载的程序中的至少一个程序并在存储交换任务期间将该程序移动到存储装置200的交换空间。
将解释在图13中示出的数据处理***2000或图1和图2中示出的数据处理***1000中执行的存储交换方法的各种实施例。
为了便于解释,将参照图15A至图22来解释在图13中示出的数据处理***2000中执行的存储交换方法的实施例。
例如,图15A至图22示出当存储装置2040的存储器装置2042包括多个闪存芯片时的存储交换操作。
图15A、图15B和图15C是示出在根据发明构思的实施例的数据处理***2000中根据存储交换操作在RAM 2020和存储装置2040之间移动数据的示例的图。
图15A示出处理器2010执行进程A和进程C,并且用于进程A和进程C的数据被加载到RAM 2020的状态。例如,用于进程A的数据包括执行进程A所需要的程序A-Program、数据A-Data和堆栈信息A-Stack。用于进程B、进程C和进程D的数据同上。
当在如图15A中所示地将数据加载到RAM 2020的状态下发生对于进程B和进程D的请求时,用于进程B的数据和用于进程D的数据当前没有加载到RAM 2020。因此,处理器2010确定发生页错误。接下来,当RAM 2020中没有空闲存储空间来加载用于进程B或进程D的数据时,处理器2010通过将已经被加载到RAM 2020的用于进程A的数据移动到并且存储在图15C中示出的存储器装置2042的交换空间CH1中,来执行页调出操作(由标号1表示),并且如图15B中所示,通过读取已经被存储在存储器装置2042的交换空间CH2中的用于进程B的数据并将所读取的数据加载到RAM 2020来执行页调入操作(由标号2表示)。
以同样的方式,处理器2010通过将已经被加载到RAM 2020的用于进程C的数据移动到并存储在存储器装置2042的交换空间CH3中来执行页调出操作(由标号3表示),并且如图15B中所示,通过读取已经被存储在存储器装置2042的交换空间CH4中的用于进程D的数据并将所读取的数据加载到RAM 2020来执行页调入操作(由标号4表示)。
参照图15A至图15C,根据存储交换操作,将用于进程A的数据页调出到存储器装置2042,并将用于进程B的数据从存储器装置2042页调入到RAM 2020。接下来,将用于进程C的数据页调出到存储器装置2042,然后将用于进程D的数据从存储器装置2042页调入到RAM2020。
在页调出操作和页调入操作结束之后,用于进程A的数据被存储在存储器装置2042的交换空间CH1中,用于进程C的数据被存储在存储器装置2042的交换空间CH3中。另外,如图15B中所示,用于进程B的数据和用于进程D的数据加载到RAM 2020中。即,通过利用其中已经预先加载了用于进程A的数据和用于进程C的数据的存储空间,来把用于进程B的数据和用于进程D的数据加载到RAM 2020中。
图16是示出根据发明构思的实施例的在数据处理***2000中的存储交换操作的图。图16示出根据eMMC协议使用命令CMD来执行存储交换操作的示例。
供参考,图16至图20中的"CMD"表示将处理器2010和存储控制器2041连接的命令总线,并且"DATA"表示将处理器2010和存储控制器2041连接的数据总线。另外,术语"闪存操作"指在存储装置2040中执行的操作。即,闪存操作指当存储器装置2042包括闪存芯片时在存储装置2040中执行的操作。
参照图16,为了把用于进程A的数据页调出到存储装置2040,处理器2010将用于进程A的数据和写入命令CMD Write A发送到存储装置2040。因此,存储装置2040的存储控制器2041识别写入命令CMD Write A,并通过将用于进程A的数据存储在存储器装置2042中来执行编程操作。
接下来,为了把用于进程B的数据从存储装置2040页调入到RAM 2020,处理器2010将读取命令CMD Read B发送到存储装置2040。因此,存储装置2040的存储控制器2041识别读取命令CMD Read B,并从存储器装置2042中读取用于进程B的数据。存储控制器2041将所读取的用于进程B的数据发送到处理器2010。接下来,处理器2010将用于进程B的数据加载到RAM2020。
以相同方式,可以执行用于进程C的页调出操作和用于进程D的页调入操作。
例如,在包括作为eMMC的存储装置2040的数据处理***2000中,由于eMMC协议的限制,直到多个写入或读取操作结束才会向存储装置2040发送新的命令。因此,如图16中所示,顺序地执行用于存储交换操作的页调入操作和页调出操作。结果,直接示出存储控制器2041中的编程操作时间和读取操作时间。
图17是示出根据发明构思的另一实施例的数据处理***2000中的存储交换操作的图。供参考,图17至图22示出通过利用队列信息Q-CMD和命令CMD来执行存储交换操作的新示例。
首先,为了把用于进程A的数据页调出到存储装置2040,处理器2010利用预设命令将用于进程A的数据以及表示将要执行下一个任务(写入用于进程A的数据的操作)的写入命令CMD Write A发送到存储装置2040。接下来,处理器2010经由命令总线CMD发送命令CMDWrite A来写入用于进程A的数据,并且经由数据总线DATA把用于进程A的数据发送到存储装置2040。
因此,存储装置2040的存储控制器2041识别队列信息Q-CMD Write A然后通过执行地址转换或存储交叉调度来优化存储器装置2042的操作,以利用诸如多信道操作或交叉存储的方法来改善写入性能。即,存储控制器2041通过使用队列信息Q-CMD Write A来在执行写入命令之前预先执行从地址转换和存储交叉调度中选择的至少一种。
存储控制器2041接收具有预设大小或更大的用于进程A的数据,然后在存储器装置2042中执行编程操作。例如,当存储器装置2042包括闪存芯片时,用于闪存操作的第一闪存芯片CH1的持续时间"A…A"是把从处理器2010接收的用于进程A的数据存储在图5的存储器装置的页缓冲器15中的持续时间。持续时间"Program"是存储单元阵列11的单元基于存储在页缓冲器15中的数据来编程的持续时间。
不论根据页调出A的页调出操作来写入用于进程A的数据的操作是否已经完成,处理器2010利用预设命令把表示将要执行下一个任务(读取用于进程B的数据的操作)的队列信息Q-CMD Read B发送到存储装置2040,以页调入用于进程B的数据。接下来,即使在页调出A的页调出操作期间,存储装置2040的存储控制器2041也识别队列信息Q-CMD Read B,然后存储控制器2041执行从存储器装置2042中读取用于进程B的数据的操作。即,存储装置2040可以通过利用队列信息Q-CMD Read B来预先准备页调入用于进程B的数据的操作。因此,读取用于进程B的数据的读取持续时间和写入用于进程A的数据的编程持续时间可以彼此重合。
例如,当存储器装置2042是闪存装置时,用于图17的闪存操作的第二闪存芯片CH2的持续时间"Read"是从存储单元阵列11的单元读取数据并在图5的存储器装置的页缓冲器15中存储该数据的持续时间,持续时间"B…B"是数据B从存储器装置220的页缓冲器15输出以及被传输到并被存储在存储控制器2041的缓冲存储器中的持续时间。例如,存储控制器2041的缓冲存储器对应于图4的存储控制器210的RAM 212。
接下来,处理器2010将命令CMD Read B发送到存储装置2040,以读取用于进程B的数据。例如,处理器2010可以通过检查存储装置2040的队列状态来从存储装置2040接收用于进程B的数据而不具有延迟。详细地,处理器2010可以通过检查存储装置2040的队列状态确定从存储控制器2041预先读取用于进程B的数据的操作准备就绪,然后可以将命令CMDRead B发送到存储装置2040来读取用于进程B的数据。例如,处理器2010可以通过从存储装置2040接收表示队列状态的信号来检查存储装置2040的队列状态。
如此,由于存储装置2040的存储控制器2041执行地址转换,使得写入用于进程A的数据的操作和读取用于进程B的数据的操作在不同的闪存芯片中进行,因此可以独立执行编程操作和读取操作。因此,存储交换操作时间可以通过使页调出A的页调出操作的编程时间和页调入B的页调入时间彼此部分地重合而减少。即,根据队列信息Q-CMD Read B对进程B的操作与写入用于进程A的数据的操作是否已经完成无关,可以以重合的方式来执行用于进程A的数据的页调出A的页调出操作和用于进程B的数据的页调入操作,从而改善页调入性能。
可以以与用于进程A的数据的页调出操作和用于进程B的数据的页调入操作的方式相同的方式来执行用于进程C的数据的页调出操作和用于进程D的数据的页调入操作。
图18是示出在根据发明构思的另一实施例的数据处理***2000中的存储交换操作的图。
参照图18,当有存储交换请求时,处理器2010向存储装置2040发送优先级高于用于页调出操作请求的队列信息Q-CMD Write的用于页调入操作请求的队列信息Q-CMDRead。
当有存储交换请求时,为了页调入用于进程B的数据,处理器2010利用预设命令向存储装置2040发送将要执行下一个任务(读取用于进程B的数据的操作)的队列信息Q-CMDRead B。接下来,存储装置2040的存储控制器2041识别队列信息Q-CMD Read B,然后执行从存储器装置2042读取用于进程B的数据的操作。
接下来,为了将用于进程A的数据页调出到存储装置2040,处理器2010利用预设命令向存储装置2040发送表示将要执行下一个任务(写入用于进程A的数据的操作)的队列信息Q-CMD Write A。接下来,处理器2010经由命令总线CMD发送命令CMD Write A来写入用于进程A的数据,并经由数据总线DATA将用于进程A的数据发送到存储装置2040。
因此,存储装置2040的存储控制器2041识别队列信息Q-CMD Write A然后通过执行地址转换或存储交叉调度来优化存储器装置2042的操作,以利用诸如多信道操作或交叉存取的方法改善写入性能。即,存储控制器2041在执行写入命令之前,通过利用队列信息Q-CMD Write A来预先执行选自于地址转换和存储交叉调度中的至少一种。接下来,存储控制器2041执行命令CMD Write A。即,存储控制器2041接收具有预设大小或更大的用于进程A的数据,然后在存储器装置2042中执行编程操作。
接下来,处理器2010向存储装置2040发送命令CMD Read B来读取用于进程B的数据。例如,处理器2010可以从存储装置2040接收用于进程B的数据而不被检查存储装置2040的队列状态所延迟。处理器2010可以通过检查存储装置2040的队列状态确定从存储控制器2041预先读取用于进程B的数据的操作准备就绪,然后可以将命令CMD Read B发送到存储装置2040来读取用于进程B的数据。
因此,用来写入用于进程A的数据的编程持续时间和用来读取用于进和B的数据的读取持续时间可以彼此重合。
可以以与用于进程B的数据的页调入操作和用于进程A的数据的页调出操作的方式相同的方式来执行用于进程D的数据的页调入操作和用于进程C的数据的页调出操作。
图19是示出在根据发明构思的另一实施例的数据处理***2000中的存储交换操作的图。
当因进程B的请求而有存储交换请求时,假设仍然有用于进程B的数据可以加载到作为主存储器的RAM 2020中的存储空间。在这种情况下,不需要对存储在RAM 2020中的用于进程A的数据的页调出操作
因此,在如图19中所示的数据处理***2000中,可以直接执行对用于进程B的数据的页调入操作。
在这种条件下,当有存储交换请求时,为了页调入用于进程B的数据,处理器2010利用预设命令向存储装置2040发送表示将要执行下一个任务(读取用于进程B的数据的操作)的队列信息Q-CMD Read B。接下来,存储装置2040的存储控制器2041识别队列信息Q-CMD Read B,然后执行从存储器装置2042读出用于进程B的数据的操作。即,存储装置2040可以通过使用队列信息Q-CMD Read B来预先准备用于进程B的数据的页调入操作。
接下来,处理器2010向存储装置2040发送命令CMD Read B来读取用于进程B的数据。例如,处理器2010可以从存储装置2040接收用于进程B的数据而不被检查存储装置2040的队列状态所延迟。详细地,处理器2010可以通过检查存储装置2040的队列状态确定从存储控制器2041预先读取用于进程B的数据的操作准备就绪,然后可以将命令CMD Read B发送到存储装置2040来读取用于进程B的数据。例如,处理器2010可以通过从存储装置2040接收表示队列状态的信号来检查存储装置2040的队列状态。
可以以与图17的用于进程A的数据的页调出操作和用于进程B的数据的页调入操作的方式相同的方式来执行用于进程C的数据的页调出操作和稍后将要执行的用于进程D的数据的页调入操作。
图20A和图20B是示出在根据发明构思的另一实施例的数据处理***2000中的存储交换操作的图。图20A和图20B示出当接收多条队列信息Q-CMD,重建任务执行顺序然后执行存储交换操作的示例。
如图20A中所示,当以Q-CMD Write A、Q-CMD Read B、Q-CMD Write C和Q-CMDWrite D的顺序从处理器2010向存储装置2040发送命令队列信息Q-CMD时,存储装置2040的存储控制器2041可以利用接收到的多条命令队列信息Q-CMD而针对存储交换操作来重建任务执行顺序。例如,存储控制器2041可以基于包括在命令队列信息Q-CMD中的优先级信息来针对存储交换操作重建任务执行顺序。可选择地,存储控制器2041可以通过向页调入操作分配比页调出操作高的优先级来重建任务执行顺序。可选择地,存储控制器2041可以重建任务执行顺序,以连续地执行多个读取操作并连续地执行多个写入操作。
如图20A和图20B中所示,存储装置2040的存储控制器2041通过向读取操作分配较高优先级来重建任务执行顺序,然后基于命令信息Q-CMD Read B和Q-CMD Read D预先执行从存储器装置2042读取用于进程B的数据的操作和读取用于进程D的数据的操作。
处理器2010通过检查存储装置2040的队列状态来确认队列操作准备就绪,然后将与准备好的队列信息Q-CMD Read B和Q-CMD Read D对应的读取命令CMD Read B和CMDRead D顺序地发送到存储控制器2041。存储控制器2041识别CMD Read B和CMD Read D,并将所读取的用于进程B的数据和所读取的用于进程D的数据顺序地发送到处理器2010。接下来,处理器2010将用于进程B的数据和用于进程D的数据加载到RAM 2020。
接下来,处理器2010将写入命令CMD Write A和用于进程A的数据以及写入命令CMD Write C和用于进程C的数据顺序地发送到存储装置2040的存储控制器2041。接下来,存储控制器2041执行用于向存储器装置2042写入用于进程A的数据和用于进程C的数据的编程操作。
图21是示出与发明构思有关的在多媒体卡***中根据高优先级中断(HPI)操作的任务执行状态的图。
处理器2010向存储装置2040的存储控制器2041提出用于快速页调入操作的HPI请求。在包括eMMC的数据处理***2000中,处理器2010可能在不知晓存储装置2040的状态的情况下提出HPI请求。在这种情况下,存储装置2040会在对存储器装置2042执行诸如垃圾收集的操作的状态下接收HPI。因此,会延迟存储装置2040可以处理HPI的时间。
另外,如图21中所示,在HPI操作结束之后,需要这样的进程:确定有多少数据在之前的写入操作中被编程,并重写(恢复)尚未被编程的数据。由于处理器2010可能无法准确地预知HPI的响应时间,因此可能不会在期望的时间执行页调入操作。
然而,根据发明构思,产生表示存储装置2040的队列状态的信号并向处理器2010发送该信号,以迅速而准确地执行页调入操作。
图22是用于解释在根据发明构思的实施例的数据处理***2000中基于存储装置2040的队列状态的存储交换操作的图。
参照图22,将命令队列信息Q-CMD以Q-CMD Write A、Q-CMD Write B、Q-CMD ReadC和Q-CMD Read D的顺序从处理器2010发送到存储装置2040。例如,在存储装置2040正在基于队列信息Q-CMD Write A执行写入用于进程A的数据的任务的状态下,处理器2010可以向存储装置2040顺序地发送表示将要读取用于进程C的数据和用于进程D的数据的队列信息Q-CMD Read C和Q-CMD Read D。在这种情况下,处理器2010可以利用包括在队列信息Q-CMD中的优先级信息来通知存储装置2040:针对读取操作的任务具有更高的优先级。
接下来,存储装置2040基于队列信息Q-CMD对任务执行调度和重排。因此,存储装置2040在内部操作被整理时,首先执行具有高优先级的任务操作。参照图22,存储装置2040结束写入用于进程A的数据的操作,然后在执行写入用于进程B的数据的操作之前,先执行具有较高优先级的读取用于进程C的数据和用于进程D的数据的操作。
接下来,存储装置2040将表示队列状态的信号发送到处理器2010。因此,处理器2010可以利用从存储装置2040接收的表示队列状态的信号来检测存储装置2040中队列操作准备就绪的时间。即,处理器2010可以利用表示队列状态的信号来检测针对队列信息Q-CMD的页调入操作或页调出操作的时间。
例如,由于处理器2010利用表示队列状态的信号来识别存储装置2040中针对队列信息Q-CMD的页调入操作准备就绪的时间,然后将读取命令发送到存储装置2040,因此可以在不延迟的情况下从存储装置2040接收用于进程C的数据和用于进程D的数据。
图23是示出根据发明构思的实施例的存储交换方法的流程图。
例如,在图1和图2的数据处理***1000或图13的数据处理***2000中执行图23中示出的存储交换方法。为了便于解释,将参照图23来解释在图1和图2的数据处理***1000中执行的存储交换方法。
在操作S110中,存储装置200从主机装置100接收用于存储交换任务的队列信息Q-CMD。例如,当主机装置100中发生页错误时,处理器110可以向存储装置200发送用于存储交换任务的队列信息Q-CMD。当主机装置100中没有存储将要被读取以在主机装置100中执行应用处理的页时,会发生页错误。例如,队列信息Q-CMD可以包括从用于存储交换操作的页调入操作和页调出操作中选择的至少一种操作的队列信息。例如,队列信息Q-CMD可以是表示针对读取命令或写入命令来执行从用于存储交换操作的页调入操作和页调出操作中选择的至少一种操作的任务的信息。
详细地,可以将队列信息Q-CMD Write A作为队列信息Q-CMD发送到存储装置200,其中,所述队列信息Q-CMD Write A表示针对页调出操作的任务,其中,所述页调出操作用于将加载到主存储器120的用于进程A的数据移动到并存储在存储装置200中。相应地,可以将队列信息Q-CMD Read B作为队列信息Q-CMD发送到存储装置200,其中,所述队列信息Q-CMD Read B表示针对页调入操作的任务,其中,所述页调入操作用于将存储在存储装置200中的用于进程B的数据加载到主存储器120。
接下来,在步骤S120中,存储装置200基于从主机装置100接收的队列信息Q-CMD预先执行存储交换任务的一部分。例如,存储装置200可以基于队列信息Q-CMD预先执行从存储交换任务的页调出操作和页调入操作中选择的至少一种操作的一部分。例如,存储装置200可以通过使页调出操作的编程时间与页调入操作的读取时间彼此重合来在存储装置200中预先执行页调入操作。
在操作S130中,已经预先执行了部分存储交换任务的存储装置200从主机装置100接收与队列信息Q-CMD对应的命令CMD。主机装置100可以在存储装置200的队列状态准备就绪时发送命令CMD。例如,主机装置100可以在队列状态表示基于队列信息Q-CMD的存储交换任务的一部分已经完成时发送命令CMD。
接下来,在步骤S140中,存储装置200根据接收到的命令CMD通过利用存储交换任务的已经被预先执行了的部分的结果来执行该存储交换任务的剩余部分。例如,假设在存储装置200中预先执行根据页调入操作的数据读取操作,则当存储装置200接收到用于执行页调入操作的读取命令时,存储装置200可以将预先读取的数据直接发送到主机装置100。例如,存储装置200可以利用队列信息Q-CMD在存储器装置220(图5中示出)的页缓冲器15或存储控制器210(图4中示出)的RAM 212中存储预先读取的数据。接下来,当存储装置200接收与队列信息Q-CMD对应的读取命令时,存储装置200可以从存储器装置220的页缓冲器15或存储控制器210的RAM 212读取数据并将所读取的数据发送到主机装置100。
图24是示出根据发明构思的实施例的在图23中示出的存储交换方法中与预先执行存储交换任务的一部分的操作S120对应的操作S120A的详细流程图。
在操作S120-1A中,存储装置200的存储控制器210执行地址转换,使得在存储装置200的不同存储芯片中基于接收到的队列信息Q-CMD来执行用于存储交换任务的页调出操作和页调入操作。例如,存储控制器210可以执行地址转换,从而利用存储交叉调度在不同存储芯片中执行页调出操作和页调入操作。
在操作S120-2A中,存储控制器210基于地址转换的结果预先执行从根据页调出操作的写入操作和根据页调入操作的读取操作中选择的至少一种操作的一部分。例如,存储控制器210可以通过使页调出操作的编程时间和页调入操作的读取时间彼此重合来预先执行页调入操作。
图25是示出根据发明构思的另一实施例的在图23中示出的存储交换方法中与预先执行存储交换任务的一部分的操作S120对应的操作S120B的详细流程图。
在操作S120-1B中,存储装置200的存储控制器210基于从主机装置100接收的多条队列信息Q-CMD来重建任务执行顺序。例如,存储控制器210可以基于包括在接收到的多条队列信息Q-CMD中的优先级信息来重建任务执行顺序。
在操作S120-2B中,存储控制器210基于重建的任务执行顺序在存储装置200中控制存储器装置220预先执行存储交换任务的一部分。
图26是示出根据发明构思的实施例的在图23中示出的存储交换方法中与接收命令CMD的操作S130对应的操作S130A的详细流程图。
在操作S130-1A中,存储控制器210将表示存储装置200的队列状态的信号发送到主机装置100。例如,存储控制器210可以在完成了根据存储装置200中的队列信息Q-CMD的存储交换任务的一部分之后,将表示存储装置200的队列准备就绪的信号发送到主机装置100。
在操作S130-2A中,存储装置200基于表示队列状态的信号从主机装置100接收与队列信息Q-CMD对应的命令CMD。例如,主机装置100可以确认存储装置200的队列准备就绪,然后可以向存储装置200发送与队列信息Q-CMD对应的命令CMD。详细地,在通过检查存储装置200的队列状态而确认预先读取用于进程B的数据的操作已完成并准备就绪之后,主机装置100可以向存储装置200发送命令CMD Read B来读取用于进程B的数据。
图27是示出在根据发明构思的实施例的数据处理***1000的主机装置110中执行的存储交换操作的流程图。
在操作S210中,主机装置100的处理器110按照新进程请求访问主存储器120。
在操作S211中,处理器110确定在访问主存储器120期间是否发生页错误。
当在操作S211中确定发生了页错误时,存储交换操作行进至步骤S212。在操作S212中,处理器110针对读取请求向存储装置200发送用于执行页调入操作的队列信息Q-CMD。术语“页调入操作”指从存储装置200读取发生了页错误的页并将所读取的页加载到主存储器120的任务。因此,用于页调入操作的队列信息Q-CMD是用于从存储装置200读取具有页错误的页的任务的队列信息Q-CMD READ。例如,可以利用预设命令向存储装置200发送队列信息Q-CMD。
在操作S213中,处理器110检查主存储器120。例如,处理器110检查主存储器120的空存储空间。
在操作S214中,处理器110确定具有页错误的页是否可以存储在主存储器120的空存储空间中。即,处理器110可以确定主存储器120中是否存在用于存储具有页错误的页的空闲存储空间。
如果在操作S214中确定了主存储器120中不存在可以存储具有页错误的页的空闲存储空间,则存储交换操作行进至操作S215。在操作S215中,处理器110向存储装置200发送针对用于执行页调出操作的写入请求的队列信息Q-CMD WRITE。
接下来,在操作S216中,处理器110向存储装置200发送针对用于执行页调出操作的写入请求的数据和写入命令。被发送的数据是从主存储器120读取的数据。例如,被发送的数据与将要被去除的数据对应,从而确保主存储器120中的存储空间。例如,处理器110可以确认存储装置200的队列准备就绪,然后可以向存储装置200发送与队列信息Q-CMDWRITE对应的命令CMD WRITE。
当在操作S214中确定了主存储器120中存在可以存储具有页错误的页的空闲存储空间时,存储交换操作行进至操作S217。在操作S217中,处理器110向存储装置200发送针对用于执行页调入操作的读取请求的读取命令。例如,处理器110可以确认存储装置200中的针对队列信息Q-CMD READ的预先操作已经完成并且存储装置200的队列准备就绪,然后可以向存储装置200发送与队列信息Q-CMD READ对应的命令CMD READ。
在操作S218中,处理器110根据读取命令从存储装置200接收数据。从存储装置200接收的数据被加载到主存储器120。
接下来,在操作S219中,处理器110利用加载到主存储器120的数据来执行新请求的进程。如果在操作S211中确定没有发生页错误,则存储交换操作行进至操作S219。
图28是示出在根据发明构思的另一实施例的数据处理***1000的主机装置100中执行的存储交换操作的流程图。
在操作S310中,主机装置100的处理器110按照新进程请求对主存储器120进行访问。
在操作S311中,处理器110确定在访问主存储器120期间是否发生页错误。
当在操作S311中确定发生了页错误时,存储交换操作行进至操作S312。在操作S312中,处理器110检查主存储器120。例如,处理器110检查主存储器120的空存储空间。
在操作S313中,处理器110确定发生页错误的页是否可以存储在主存储器120的空存储空间中。即,处理器110确定主存储器120中是否存在可以存储具有页错误的页的空闲存储空间。
如果操作S313中确定了主存储器120中不存在可以存储具有页错误的页的空闲存储空间,存储交换操作行进至操作S314。在操作S314中,处理器110向存储装置200顺序地发送针对写入请求和读取请求的用于执行页调出操作和页调入操作的队列信息Q-CMD WRITE和Q-CMD READ。
接下来,在操作S315中,处理器110向存储装置200顺序地发送针对写入请求的用于执行页调出操作的写入命令和针对读取请求的用于执行页调入操作的读取命令。例如,处理器110可以确定存储装置200的队列是否准备就绪,然后可以向存储装置200发送与队列信息Q-CMD对应的命令CMD。
接下来,在操作S316中,处理器110根据写入命令发送将要被写入存储装置200的数据,并根据读取命令从存储装置200接收读取的数据。被发送到存储装置200的数据是从主存储器120读取的数据并与将要被去除的数据对应,以确保主存储器120的存储空间。从存储装置200接收的数据(具有页错误的数据)被加载到主存储器120。
当操作S313中确定主存储器120中存在可以存储具有页错误的页的空闲存储空间时,存储交换操作行进至操作S317。在操作S317中,处理器110向存储装置200发送针对读取请求的用于执行页调入操作的队列信息Q-CMD READ。术语“页调入操作”指从存储装置200读取具有页错误的页并将所读取的具有页错误的页加载到主存储器120的任务。
接下来,在操作S318中,处理器110向存储装置200发送针对读取请求的用于执行页调入操作的读取命令。
在操作S319中,处理器110根据读取命令从存储装置200接收数据。所接收的数据被加载到主存储器120。
接下来,在操作S320中,处理器110使用加载到主存储器120的数据来执行新请求的进程。如果在操作S311中确定没有发生页错误,则存储交换操作直接行进至操作S320。
可选择地,可以省略操作S317。在这种情况下,可以省略在仅需要页调入操作的存储交换操作中向存储装置200发送队列信息Q-CMD的操作。
可选择地,处理器110可以通过对操作S314至S316进行组合而基于图17至图20的顺序来发送队列信息Q-CMD和命令CMD。
图29是示出在根据发明构思的实施例的数据处理***1000的存储装置200中执行的存储交换操作的流程图。
在操作S410中,存储装置200的存储控制器210从主机装置100接收队列信息Q-CMD。例如,可以通过使用预设命令来向主机装置100发送队列信息Q-CMD。队列信息Q-CMD可以是表示针对读取命令或写入命令来执行从用于存储交换操作的页调入操作和页调出操作中选择的至少一种操作的任务的信息。另外,队列信息Q-CMD可以包括与数据的属性有关的信息。
在操作S411中,存储控制器210将存储装置200控制为执行由从主机装置100接收的由队列信息Q-CMD表示的任务的一部分。例如,存储控制器210可以将存储装置200控制为基于队列信息Q-CMD预先执行存储交换任务的一部分。详细地,存储控制器210可以基于队列信息Q-CMD预先执行从根据页调出操作的写入操作和根据页调入操作的读取操作中选择的至少一种操作。存储控制器210可以将存储装置200控制为通过使页调出操作的编程时间和页调入操作的读取时间彼此部分地重合来预先执行页调入操作。
接下来,在操作S412中,存储控制器210向主机装置100发送表示存储装置200的队列状态的信号。例如,存储控制器210在完成了根据队列信息Q-CMD的存储交换任务的一部分之后,向主机装置100发送表示存储装置200的队列准备就绪的信号。
接下来,在操作S413中,存储控制器210从主机装置100接收与队列信息Q-CMD对应的命令CMD。例如,存储控制器210接收从与页调出操作的任务对应的写入命令和与页调入操作的任务对应的读取命令中选择的至少一个命令。
接下来,在操作S414中,存储控制器210利用已经基于队列信息Q-CMD被预先执行了的一部分任务的结果来执行接收到的命令CMD。
图30是示出在根据发明构思的另一实施例的数据处理***1000的存储装置200中执行的存储交换操作的流程图。
在操作S510中,存储装置200的存储控制器210从主机装置100顺序地接收多条队列信息Q-CMD。
在操作S511中,存储控制器210基于从主机装置100接收的多条队列信息Q-CMD重建任务执行顺序。例如,存储控制器210可以基于包括在所接收的多条队列信息Q-CMD中的优先级信息重建任务执行顺序。
在操作S512中,存储控制器210将存储器装置220控制为基于重建的任务执行顺序而预先执行存储装置200中的存储交换任务的一部分。
接下来,在操作S513中,存储控制器210向主机装置100发送表示存储装置200的队列状态的信号。例如,存储控制器210在完成了根据队列信息Q-CMD的存储交换任务的一部分之后,向主机装置100发送表示存储装置200的队列准备就绪的信号。
接下来,在操作S514中,存储控制器210从主机装置100接收与队列信息Q-CMD对应的命令CMD。例如,存储控制器210从主机装置100接收从与针对页调出操作的任务对应的写入命令和针对页调入操作的任务对应的读取命令中选择的至少一个命令。
接下来,在操作S515中,存储控制器210利用已经基于队列信息Q-CMD预先执行了的一部分任务的结果来执行接收到的命令CMD。
图31是示出应用到根据发明构思的实施例的数据处理***1000的存储装置200的存储器装置3000的透视图。
如图31中所示,存储器装置3000可以通过堆叠多个半导体层(例如,第一半导体层LA1至第n半导体层LAn)来形成。第一半导体层LA1至第n半导体层LAn中的每层可以是包括图2的存储器装置220的芯片,或者第一半导体层LA1至第n半导体层LAn中的一些层可以是与外部存储控制器连接的主芯片,第一半导体层LA1至第n半导体层LAn中其余的层可以是包括在图5的存储单元阵列11中的从属芯片。在图31中,第一半导体层LA1(最下面的半导体层)可以是主芯片,其余的第二半导体层LA2至第n半导体层可以是从属芯片。
第一半导体层LA1至第n半导体层LAn经由硅通孔(TSVs)彼此发送/接收信号,第一半导体层LA1利用形成在第一半导体层LA1的外表面上的导电单元(未示出)与外部存储控制器通信。将侧重于作为主芯片的第一半导体层LA1和作为从属芯片的第n半导体层LAn来解释存储器装置3000的结构和操作。第一半导体层LA1驱动设置在从属芯片中的存储单元阵列11。第一半导体层LA1可以包括用于从外部存储控制器接收数据、地址和命令并将所述数据、地址和命令发送到从属芯片的逻辑,并且可以包括用于将从每个从属芯片接收的数据发送到外部存储控制器的逻辑。每个半导体层(例如,第n半导体层LAn)可以包括存储单元阵列11和用于驱动存储单元阵列11的***电路PU。例如,每个从属芯片的存储单元阵列11可以是图5的存储单元阵列11,图5的控制逻辑12、电压产生器13、行解码器14和页缓冲电路15可以包括在每个从属芯片的***电路PU中。
图32是示出应用到根据发明构思的实施例的数据处理***1000的存储装置200的存储模块4000的图。
参照图32,存储模块4000可以包括存储芯片4100和控制芯片4200。存储芯片4100可以存储数据。例如,存储芯片4100中的每个可以是图2的存储器装置220。控制芯片4200可以响应于从外部存储控制器发送的各种信号而控制存储芯片4100。例如,控制芯片4200可以激活与从外部发送的芯片选择信号对应的一个存储芯片4100,并可以对从存储芯片4100读取的数据执行错误检查和校正。
图33是示出根据发明构思的实施例的计算***5000的图。
图33的计算***5000可以是移动设备或台式计算机,并可以包括电连接到总线5600的包含CUP的主机5100、RAM 5200、用户接口5300和设备驱动器5400。存储装置5500可以连接到设备驱动器5400。
主机5100和RAM 5200可以分别是图2的处理器110和主存储器120。另外,存储装置5500可以是图2的存储装置200。
主机5100可以控制计算***5000的整体操作,并可以执行与通过用户接口5300输入的用户的命令对应的计算或数据处理。RAM 5200可以用作主机5100的数据存储器,主机5100可以利用设备驱动器5400从存储装置5500读取用户数据或将用户数据写入存储装置5500。另外,虽然图33中用于控制存储装置5500的操作的设备驱动器5400设置在主机5100外部,但是设备驱动器5400可以设置在主机5100内部。
图34是示出应用到根据发明构思的实施例的数据处理***1000的存储装置200的存储卡6000的图。
存储卡6000可以是能通过连接到诸如移动设备或台式计算机的电子设备来使用的便携式存储器装置。如图34中所示,存储卡6000可以包括存储器装置6200、存储控制器6100和端口区6300。存储卡6000可以通过端口区6300与外部主机通信,存储控制器6100可以控制存储器装置6200。存储控制器6100和存储器装置6200可以分别是图2中的存储控制器210和存储器装置220。多个存储器装置6200可以包括在存储卡6000上。
根据发明构思的在图2中示出的存储装置200可以使用各种类型的封装来安装。例如,发明构思的存储装置200可以使用诸如层叠封装(PoP)、球栅阵列(BGA)、芯片级封装(CSP)、塑料引线芯片载体(PLCC)、塑料双列直插封装(PDIP)、华夫包式裸片、晶圆形式芯片、板上芯片(COB)、陶瓷双列直插封装(CERDIP)、塑料公制四方扁平封装(MQFP)、小外形封装(SOIC)、紧缩小外形封装(SSOP)、薄小外形封装(TSOP)、薄型四方扁平封装(TQFP)、***级封装(SIP)、多芯片封装(MCP)、晶圆级装配封装(WFP)或晶圆级处理堆栈封装(WSP)等的封装来安装。
虽然已经使用特定术语参照发明构思的示例性实施例具体地示出和描述了发明构思,但是实施例和术语仅用来解释发明构思,不应该被理解为限制发明构思的如权利要求所限定的范围。示例性实施例应该被视为仅描述性的含义而非出于限制的目的。因此,发明构思的范围不由发明构思的具体实施方式来限定而由权利要求来限定,在该范围内的所有差异将被解释为包括在发明构思中。
Claims (25)
1.一种存储交换方法,所述存储交换方法包括:
从主机装置接收用于存储交换任务的队列信息;
基于队列信息执行存储装置中的存储交换任务的一部分;
在完成执行存储交换任务的所述一部分之后,从主机装置接收与队列信息对应的命令;以及
根据命令通过利用预先执行的存储交换任务的所述一部分的结果来执行存储交换任务的剩余部分。
2.根据权利要求1所述的存储交换方法,其中,队列信息包括与存储交换任务有关的信息和与根据存储交换任务被请求的数据的属性有关的信息。
3.根据权利要求2所述的存储交换方法,其中,队列信息还包括任务优先级信息。
4.根据权利要求1所述的存储交换方法,其中,队列信息被利用预设命令从主机装置发送到存储装置。
5.根据权利要求1所述的存储交换方法,其中,当针对读取命令的任务包括在队列信息中时,存储交换任务的所述一部分包括从存储装置的非易失性存储器装置读取数据并在存储装置的随机存取存储器中存储所读取的数据的操作。
6.根据权利要求1所述的存储交换方法,其中,当针对写入命令的任务包括在队列信息中时,存储交换任务的所述一部分包括通过执行从地址转换和存储交叉调度中选择的至少一者来在存储装置中写入数据的操作。
7.根据权利要求1所述的存储交换方法,其中,所述执行存储交换任务的一部分的步骤包括:
执行地址转换,从而基于队列信息在存储装置的不同存储芯片中执行用于存储交换任务的页调出操作和页调入操作;以及
基于地址转换的结果,执行从根据页调出操作的写入操作和根据页调入操作的读取操作中选择的至少一种操作的一部分。
8.根据权利要求7所述的存储交换方法,其中,执行页调入操作,其中,页调出操作的编程时间和页调入操作的读取时间彼此部分地重合。
9.根据权利要求1所述的存储交换方法,其中,所述执行存储交换任务的一部分的步骤包括:
基于从主机装置接收的多条队列信息重建任务执行顺序;以及
基于重建的任务执行顺序来执行存储装置中的存储交换任务的所述一部分。
10.根据权利要求9所述的存储交换方法,其中,所述重建任务执行顺序的步骤是基于包括在多条队列信息中的优先级信息来进行的。
11.根据权利要求1所述的存储交换方法,其中,所述接收命令的步骤包括:
向主机装置发送表示存储装置的队列状态的信号;以及
基于表示队列状态的信号从主机装置接收与队列信息对应的命令,
其中,表示队列状态的信号包括表示完成了基于队列信息来执行的所述存储交换任务的一部分的信息。
12.一种主机装置,所述主机装置包括:
主存储器;以及
处理器,被配置为利用加载到主存储器的数据来执行应用程序,
其中,处理器被配置为当发生页错误时,向存储装置顺序地发送用于存储交换任务的队列信息和与所述队列信息对应的命令。
13.根据权利要求12所述的主机装置,其中,处理器被配置为根据存储交换任务向存储装置发送队列信息,所述队列信息包括关于从页调出操作和页调入操作中选择的至少一种操作的信息。
14.根据权利要求12所述的主机装置,其中,处理器被配置为利用预设命令向存储装置发送队列信息。
15.根据权利要求12所述的主机装置,其中,在向存储装置发送用于存储交换任务的队列信息之后,处理器被配置为基于存储装置的队列状态向存储装置发送与所述队列信息对应的命令。
16.一种存储装置,所述存储装置包括:
存储器装置,向所述存储器装置分配存储交换空间;以及
存储控制器,被配置为控制存储器装置的读取操作和写入操作,
其中,存储控制器被配置为接收用于存储交换任务的队列信息和与所述队列信息对应的命令,基于接收到的所述队列信息来控制存储器装置以执行存储交换任务的一部分,然后根据所述命令来控制存储器装置以执行所述存储交换任务的剩余部分。
17.根据权利要求16所述的存储装置,其中,存储器装置包括多个闪存芯片,存储控制器被配置为执行地址转换以在存储器装置的不同闪存芯片中执行用于存储交换任务的页调出操作和页调入操作。
18.根据权利要求17所述的存储装置,其中,存储控制器被配置为确定操作时序,使得页调出操作的编程时间和页调入操作的读取时间彼此部分地重合。
19.根据权利要求16所述的存储装置,其中,存储控制器被配置为基于包括在队列信息中的优先级信息来重建存储交换任务的任务执行顺序。
20.根据权利要求16所述的存储装置,其中,当队列信息中包括用于存储交换任务的针对页调出操作的任务和针对页调入操作的任务时,存储控制器被配置为控制存储器装置的写入操作或读取操作以首先执行页调入操作。
21.根据权利要求16所述的存储装置,其中,存储控制器被配置为产生表示存储装置的队列信息的信号并将所述信号发送到主机装置。
22.一种数据处理***,所述数据处理***包括:
主机装置,被配置为当发生页错误时,向存储装置顺序地发送用于存储交换任务的队列信息和与队列信息对应的命令,
存储装置,被配置为接收队列信息和命令,基于从主机装置接收的队列信息来执行存储交换任务的一部分,并根据命令利用存储交换任务的预先执行了的所述一部分的结果来执行存储交换任务的剩余部分。
23.根据权利要求22所述的数据处理***,其中,当发生页错误时,在向存储装置发送用于存储交换任务的队列信息之后,主机装置被配置为基于存储装置的队列状态而向存储装置发送与队列信息对应的命令。
24.根据权利要求22所述的数据处理***,其中,存储装置被配置为确定操作时序,使得用于存储交换任务的页调出操作的编程时间与页调入操作的读取时间彼此部分地重合。
25.根据权利要求22所述的数据处理***,其中,存储装置包括嵌入式多媒体卡。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2014-0059962 | 2014-05-19 | ||
KR1020140059962A KR102254099B1 (ko) | 2014-05-19 | 2014-05-19 | 메모리 스와핑 처리 방법과 이를 적용하는 호스트 장치, 스토리지 장치 및 데이터 처리 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105095096A CN105095096A (zh) | 2015-11-25 |
CN105095096B true CN105095096B (zh) | 2020-03-27 |
Family
ID=54538535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510257186.3A Active CN105095096B (zh) | 2014-05-19 | 2015-05-19 | 存储交换方法、主机装置、存储装置和数据处理*** |
Country Status (3)
Country | Link |
---|---|
US (1) | US9898423B2 (zh) |
KR (1) | KR102254099B1 (zh) |
CN (1) | CN105095096B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9880772B2 (en) | 2015-09-21 | 2018-01-30 | Micron Technology, Inc. | Systems and methods for providing file information in a memory system protocol |
KR102507743B1 (ko) * | 2016-02-04 | 2023-03-09 | 삼성전자주식회사 | 메모리 관리 방법 및 그 전자 장치 |
CN107885666B (zh) | 2016-09-28 | 2021-07-20 | 华为技术有限公司 | 一种内存管理方法和装置 |
CN107885594B (zh) * | 2016-09-30 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 分布式资源调度方法、调度节点及接入节点 |
US10552045B2 (en) * | 2016-11-16 | 2020-02-04 | Sandisk Technologies Llc | Storage operation queue |
KR102549540B1 (ko) * | 2017-09-22 | 2023-06-29 | 삼성전자주식회사 | 스토리지 장치 및 그 동작 방법 |
US11210026B2 (en) | 2019-02-28 | 2021-12-28 | Lg Electronics Inc. | Digital device and method for controlling the same |
KR102322727B1 (ko) * | 2019-07-29 | 2021-11-05 | 에스케이하이닉스 주식회사 | 데이터 스왑을 위한 메모리 시스템 및 그 동작방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1582428A (zh) * | 2001-11-07 | 2005-02-16 | 国际商业机器公司 | 用于在非均衡存储器存取计算机***中调度任务的方法和设备 |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63180828A (ja) | 1987-01-22 | 1988-07-25 | Agency Of Ind Science & Technol | 高速処理化カラ−センサ |
US4843541A (en) | 1987-07-29 | 1989-06-27 | International Business Machines Corporation | Logical resource partitioning of a data processing system |
US7546444B1 (en) | 1999-09-01 | 2009-06-09 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
WO2001016714A1 (en) | 1999-09-01 | 2001-03-08 | Intel Corporation | Fast write instruction for micro engine used in multithreaded parallel processor architecture |
US7681018B2 (en) | 2000-08-31 | 2010-03-16 | Intel Corporation | Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set |
US6910106B2 (en) | 2002-10-04 | 2005-06-21 | Microsoft Corporation | Methods and mechanisms for proactive memory management |
US7949806B2 (en) | 2004-11-18 | 2011-05-24 | International Business Machines Corporation | Apparatus and method to provide an operation to an information storage device including protocol conversion and assigning priority levels to the operation |
US8719819B2 (en) * | 2005-06-30 | 2014-05-06 | Intel Corporation | Mechanism for instruction set based thread execution on a plurality of instruction sequencers |
US7716388B2 (en) | 2005-05-13 | 2010-05-11 | Texas Instruments Incorporated | Command re-ordering in hub interface unit based on priority |
US7793059B2 (en) | 2006-01-18 | 2010-09-07 | Apple Inc. | Interleaving policies for flash memory |
US7562180B2 (en) | 2006-03-28 | 2009-07-14 | Nokia Corporation | Method and device for reduced read latency of non-volatile memory |
DE602007010439D1 (de) | 2006-03-31 | 2010-12-23 | Mosaid Technologies Inc | Flash-speichersystem-steuerverfahren |
US7356671B1 (en) | 2006-07-27 | 2008-04-08 | Vbridge Microsystem, Inc. | SoC architecture for voice and video over data network applications |
US20090094678A1 (en) * | 2007-10-05 | 2009-04-09 | Nokia Corporation | Mulimode device |
WO2009052525A1 (en) | 2007-10-19 | 2009-04-23 | Virident Systems, Inc. | Managing memory systems containing components with asymmetric characteristics |
US8458393B2 (en) * | 2008-03-31 | 2013-06-04 | Spansion Llc | Flash memory and operating system kernel |
US8214845B2 (en) * | 2008-05-09 | 2012-07-03 | International Business Machines Corporation | Context switching in a network on chip by thread saving and restoring pointers to memory arrays containing valid message data |
EP2192493A1 (en) | 2008-11-28 | 2010-06-02 | ST Wireless SA | Method of paging on demand for virtual memory management in a processing system, and corresponding processing system |
WO2010138628A1 (en) | 2009-05-28 | 2010-12-02 | Marvell World Trade Ltd. | Metadata management for virtual volumes |
EP2449469B1 (en) * | 2009-06-29 | 2019-04-03 | Hewlett-Packard Enterprise Development LP | Hypervisor-based management of local and remote virtual memory pages |
US8131889B2 (en) | 2009-11-10 | 2012-03-06 | Apple Inc. | Command queue for peripheral component |
JP5707911B2 (ja) | 2010-01-27 | 2015-04-30 | 富士通セミコンダクター株式会社 | データ転送制御装置 |
WO2012048444A1 (en) | 2010-10-14 | 2012-04-19 | Freescale Semiconductor, Inc. Are | Memory controller and method for accessing a plurality of non-volatile memory arrays |
US9009391B2 (en) | 2010-10-25 | 2015-04-14 | Fastor Systems, Inc. | Solid state drive architecture |
US9304774B2 (en) * | 2011-02-04 | 2016-04-05 | Qualcomm Incorporated | Processor with a coprocessor having early access to not-yet issued instructions |
US9021146B2 (en) | 2011-08-30 | 2015-04-28 | Apple Inc. | High priority command queue for peripheral component |
US8775722B2 (en) * | 2011-12-30 | 2014-07-08 | Sandisk Technologies Inc. | Storing data in parallel in a flash storage device using on chip page shifting between planes |
US8914458B2 (en) * | 2012-09-27 | 2014-12-16 | Mellanox Technologies Ltd. | Look-ahead handling of page faults in I/O operations |
US9519440B2 (en) * | 2013-09-10 | 2016-12-13 | Qualcomm Incorporated | Providing command queuing in embedded memories |
US9317204B2 (en) | 2013-11-14 | 2016-04-19 | Sandisk Technologies Inc. | System and method for I/O optimization in a multi-queued environment |
US10108372B2 (en) * | 2014-01-27 | 2018-10-23 | Micron Technology, Inc. | Methods and apparatuses for executing a plurality of queued tasks in a memory |
-
2014
- 2014-05-19 KR KR1020140059962A patent/KR102254099B1/ko active IP Right Grant
-
2015
- 2015-04-14 US US14/685,619 patent/US9898423B2/en active Active
- 2015-05-19 CN CN201510257186.3A patent/CN105095096B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1582428A (zh) * | 2001-11-07 | 2005-02-16 | 国际商业机器公司 | 用于在非均衡存储器存取计算机***中调度任务的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
US9898423B2 (en) | 2018-02-20 |
KR102254099B1 (ko) | 2021-05-20 |
CN105095096A (zh) | 2015-11-25 |
KR20150133084A (ko) | 2015-11-27 |
US20150331628A1 (en) | 2015-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105095096B (zh) | 存储交换方法、主机装置、存储装置和数据处理*** | |
KR101997572B1 (ko) | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 쓰기 방법 | |
US20160011971A1 (en) | Storage medium, memory system, and method of managing storage area in memory system | |
US9256528B2 (en) | Method for operating a memory controller and a system having the memory controller | |
US11226895B2 (en) | Controller and operation method thereof | |
KR102503177B1 (ko) | 메모리 시스템 및 그것의 동작 방법 | |
US9257192B2 (en) | Memory system performing multi-step erase operation based on stored metadata | |
US10970230B2 (en) | Memory system and operating method thereof | |
US11307803B2 (en) | Storage device for suspending program operation and performing read operation and operating method thereof | |
US20200201571A1 (en) | Memory system and operating method thereof | |
US20210382637A1 (en) | Storage device and method of operating the storage device | |
CN111752857A (zh) | 存储器控制器及操作存储器控制器的方法 | |
US10621036B2 (en) | Memory system and operation method thereof | |
US20210210148A1 (en) | Memory system and operating method thereof | |
US20200401328A1 (en) | Storage device and method of operating the same | |
US20200233812A1 (en) | Storage device and method of operating the same | |
US10942667B2 (en) | Storage device having variable erase unit size and storage system including the same | |
US12001709B2 (en) | Storage devices and operating methods of storage controllers | |
US11348647B2 (en) | Memory device and method of operating the same | |
US20220076750A1 (en) | Memory device and method of operating memory device | |
US11114172B2 (en) | Memory system and method of operating the same | |
US11055011B2 (en) | Storage device | |
CN114791887A (zh) | 存储器***以及操作存储器设备的方法 | |
CN114489467A (zh) | 存储器控制器及其操作方法 | |
US20240168669A1 (en) | Non-volatile memory device and storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |