CN108958642B - 存储器***及其操作方法 - Google Patents
存储器***及其操作方法 Download PDFInfo
- Publication number
- CN108958642B CN108958642B CN201711474237.3A CN201711474237A CN108958642B CN 108958642 B CN108958642 B CN 108958642B CN 201711474237 A CN201711474237 A CN 201711474237A CN 108958642 B CN108958642 B CN 108958642B
- Authority
- CN
- China
- Prior art keywords
- data
- queue
- write
- unaligned
- command
- 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
- 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
-
- 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/0611—Improving I/O performance in relation to response time
-
- 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
- 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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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/0658—Controller construction arrangements
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- 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
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- 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
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种存储器***,其包括:非易失性存储器装置;以及适于处理从主机装置传输的第一数据的写入请求的控制器。控制器包括第一处理电路,适于基于写入请求生成提供有优先级的读取命令;以及第二处理电路,适于根据优先级处理读取命令,并且由此从非易失性存储器装置读取包括第一数据的旧数据的第二数据。
Description
相关申请的交叉引用
本申请要求于2017年5月17日提交的申请号为10-2017-0061105的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
本公开的各个实施例总体涉及一种存储器***。具体地,本公开的各个实施例涉及一种包括非易失性存储器装置的存储器***。
背景技术
存储器***响应于写入请求存储由外部装置提供的数据。存储器***也可以响应于读取请求向外部装置提供存储的数据。使用存储器***的外部装置的示例包括计算机、数码相机、移动电话等。存储器***可以在外部装置的制造期间嵌入到外部装置中,或者可以单独制造并随后与外部装置连接。
发明内容
各个实施例涉及一种提高未对齐(unaligned)写入请求的处理速度的存储器***及其操作方法。
在一个实施例中,存储器***可包括:非易失性存储器装置;以及控制器,适于处理从主机装置传输的第一数据的写入请求,控制器包括第一处理电路,适于基于写入请求生成提供有优先级的读取命令;以及第二处理电路,适于根据优先级处理读取命令,并且由此从非易失性存储器装置读取包括第一数据的旧数据的第二数据。
在一个实施例中,存储器***可包括:非易失性存储器装置;以及控制器,适于处理从主机装置传输的第一数据的写入请求,控制器包括优先队列以及普通队列;第一处理电路,适于基于写入请求将读取命令存储到优先队列中,以及将写入命令存储到普通队列中;以及第二处理电路,适于在处理普通队列之前处理优先队列,其中第二处理电路基于读取命令从非易失性存储器装置读取包括第一数据的旧数据的第二数据。
在一个实施例中,控制器可包括:第一队列和第二队列;第一处理电路,适于响应于用于包括在源数据中的未对齐数据的新版本的写入请求,将用于包括未对齐数据的旧版本的源数据的读取命令排队在第一队列中,以及将用于包括新版本的源数据的写入命令排队在第二队列中;以及第二处理电路,适于在响应于排队在第二队列中的命令之前,响应于排队在第一队列中的命令,控制存储器装置执行操作。
在一个实施例中,用于操作存储器***的方法可包括:从主机装置接收第一数据的写入请求;基于写入请求生成提供有优先级的读取命令;基于写入请求生成写入命令;根据优先级处理读取命令,并且由此从非易失性存储器装置读取包括第一数据的旧数据的第二数据;以及基于第二数据处理写入命令,并由此将第一数据写入在非易失性存储器装置中。
在一个实施例中,用于操作存储器***的方法可进一步包括将读取命令存储在优先队列中,其中存储在优先队列中的命令先于其它命令被处理。
在一个实施例中,写入可包括通过用第一数据替换第二数据中的旧数据,并将修改后的第二数据写入到非易失性存储器装置中。
在一个实施例中,生成读取命令可包括确定由主机装置分配给第一数据的一个或多个扇区地址是否与非易失性存储器装置的物理地址未对齐;以及基于确定结果生成读取命令。
根据实施例的存储器***及其操作方法可以提高未对齐写入请求的处理速度。
附图说明
通过参考附图描述本发明的各个实施例,本发明的上述和其它特征和优点对于本发明所属领域的技术人员将变得更加明显,其中:
图1是说明根据本公开的一个实施例的存储器***的框图;
图2是描述控制器的地址映射方法的简图;
图3是描述处理第一数据的未对齐写入请求的方法的简图;
图4是描述图1的控制器处理未对齐写入请求的方法的简图;
图5是描述图1的控制器处理对齐写入请求的方法的简图。
图6是说明将根据一个实施例的存储器***应用于数据处理***的示例的框图。
具体实施方式
在下文中,将通过本发明的示例性实施例参照附图描述根据本发明的数据存储装置及其操作方法。然而,本发明可以以不同的形式实施,并且不应被理解为限于本文中阐述的实施例。相反,提供这些实施例详细描述本发明到使本发明所属领域的技术人员能够实施本发明的技术构思的程度。
应当理解的是,本发明的实施例不限于附图中示出的细节,附图不一定按比例绘制,并且在一些情况下,可能已经放大了比例以便更清楚地描绘本发明的某些特征。尽管使用了特定的术语,但是应该理解,所使用的术语仅用于描述特定的实施方式,并不旨在限制本发明的范围。
将被进一步理解的是,当一个元件被称为“连接到”或“联接到”另一元件时,其可以直接在其它元件上、直接连接到或者直接联接到其它元件,或者可能存在一个或多个中间元件。此外,还将被理解的是,当元件被称为在两个元件“之间”时,其可以是两个元件之间唯一的元件,或者也可以存在一个或多个中间元件。
当短语“...以及...中的至少一个”在本文中与项目列表一起使用时,该短语是指来自列表的单个项目或者列表中项目的任意组合。例如,“A、B和C中的至少一个”是指仅A、或者仅B、或者仅C、或者A、B和C的任意组合。
本文所使用的术语“或”是指两个或更多个可选方案中的一个,而不是两者或其任意组合。
如本文所使用的,除非上下文明确相反地指出,单数形式也旨在包括复数形式。将被进一步理解的是,术语“包括”、“包括有”、“包含”和“包含有”当在本说明书中使用时指明所述元件的存在,并且不排除存在或添加一个或多个其它元件。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任意和所有组合。
除非另有定义,本文使用的包括技术和科学术语的所有术语,具有与本发明所属领域的普通技术人员基于本公开的通常理解相同的含义。将进一步被理解的是,除非在本文明中有明确的定义,诸如通常使用的字典中定义的那些术语,应当被解释为具有与其在本公开上下文和相关领域中的含义一致的含义,并且不应被解释为理想化或过于正式的含义。
在以下描述中,阐述了许多具体细节以便提供对本发明的透彻理解。本发明可以在没有这些具体细节中的一部分或全部的情况下实施。在其他情况下,没有详细描述公知的进程结构和/或进程,以免不必要地模糊本发明。
还要注意的是,在一些情况下,正如对相关领域技术人员而言是显而易见的,除非另有详细说明,结合一个实施例描述的元件,也称为特征,可单独使用或与另一实施例的其它元件结合使用。
在下文中,将参照附图详细描述本发明的各个实施例。
图1是说明根据本公开的一个实施例的存储器***10的框图。
存储器***10可响应来自主机装置(未示出)的写入请求,存储由主机装置提供的数据。并且,存储器***10可响应来自主机装置的读取请求,向主机装置提供存储的数据。
存储器***10可以以个人计算机存储卡国际协会(PCMCIA)卡、标准闪存(CF)卡、智能媒体卡、记忆棒、各种多媒体卡(MMC,eMMC,RS-MMC和微型-MMC)、各种安全数字卡(SD,迷你-SD和微型-SD)、通用闪速存储器(UFS)、固态驱动器(SSD)等的形式制备。
存储器***10可包括控制器100和非易失性存储器装置200。
控制器100可以控制存储器***10的一般操作。例如,控制器100可以响应于从主机装置传输的写入请求,将数据存储到非易失性存储器装置200中。就此而言,控制器100可根据写入请求数据(在下文中称为写入数据)是未对齐数据还是对齐数据,来以不同方式执行写入操作。未对齐数据可以是扇区地址与物理地址未对齐的数据,对齐数据可以是扇区地址与物理地址对齐的数据。扇区地址可以是通过主机装置与数据匹配的地址,而物理地址可以是非易失性存储器装置200的实际地址。如下文将详细描述的,未对齐数据的大小可以小于与单个物理地址对应的数据的大小。
此外,主机装置的写入请求可以分类为对齐写入请求或未对齐写入请求。对齐写入请求可以是写入数据仅包括对齐数据的写入请求。未对齐写入请求可以是写入数据的至少一部分是未对齐数据的写入请求。
如稍后将描述的,与对齐数据相比,控制器100可能需要更复杂的进程以将非对齐数据写入非易失性存储器装置200中。本实施例的控制器100可优先与写入操作相关的某些活动的进程,使得写入未对齐数据不花费太长时间。
控制器100可包括第一处理电路110、第二处理电路120、优先队列130、普通队列140和缓冲器150。
第一处理电路110可基于从主机装置传输的主机请求,诸如写入请求和读取请求,生成待由第二处理电路120执行的命令。第一处理电路110可以将生成的命令存储在优先队列130或普通队列140中,使得第二处理电路120根据命令的优先级执行命令。
具体地,第一处理电路110可基于来自主机装置的用于未对齐数据的未对齐写入请求,生成用于未对齐数据的读取命令,并且将读取命令存储到优先队列130中。第二处理电路120可以响应于对未对齐数据的读取命令,从非易失性存储器装置200读取包括未对齐数据的旧数据的源数据。旧数据可以对应于与未对齐数据相同的扇区地址,因此,针对相应的扇区地址,未对齐数据可以是比旧数据新的数据。不同于与物理地址未对齐的旧数据,源数据可以与物理地址对齐。换言之,源数据可以对应于某个单一的物理地址。
在将读取命令存储到优先队列130中之后,第一处理电路110可基于来自主机装置的未对齐写入请求,生成用于未对齐数据的特殊写入命令,并将特殊写入命令存储到普通队列140中。第二处理电路120可以响应特殊写入命令,通过将读取的源数据中的旧数据替换为未对齐数据来生成修改后的源数据,并且可以将修改后的源数据写入到非易失性存储器装置200中。
并且,第一处理电路110可基于来自主机装置的对齐写入请求,生成用于对齐数据的普通写入命令,并且将普通写入命令存储到普通队列140中。
此外,即使来自主机装置的未对齐写入请求与包括对齐写入数据以及未对齐写入数据的写入数据一起被接收,第一处理电路110也可生成用于相应对齐写入数据的普通写入命令以及用于相应未对齐写入数据的读取命令,并且在将用于相应未对齐写入数据的读取命令存储到优先队列130的同时,将用于相应对齐写入数据的普通写入命令存储到普通队列140中。
响应于普通队列140的普通写入命令,第二处理电路120可以将对齐数据写入在非易失性存储器装置200中,而不读取和替换对齐数据的旧数据。由于对齐数据的旧数据与至少一个物理地址对齐并匹配,因此对齐数据的旧数据可以物理地址为单元失效。
第二处理电路120可以在处理存储在普通队列140中的命令之前,处理存储在优先队列130中的命令。因此,响应用于存储在优先队列130中的用于未对齐数据的读取命令,第二处理电路120可在响应于存储在普通队列140中的命令的操作之前,执行用于未对齐数据的读取操作。第二处理电路120可以基于读取命令从非易失性存储器装置200读取包括未对齐数据的旧数据的源数据。第二处理电路120可以基于先到先服务的方式处理优先队列130的命令。
在处理优先队列130的所有命令之后,第二处理电路120可以处理存储在普通队列140中的命令。第二处理电路120可以基于先到先服务的方式处理普通队列140的命令。因此,第二处理电路120可以根据普通队列140中命令的排队顺序,处理存储在普通队列140中的特殊写入命令。第二处理电路120可以基于特殊写入命令,通过将源数据中的旧数据替换为未对齐数据来生成修改后的源数据,并将修改后的源数据写入到非易失性存储器装置200中。
优先队列130可存储比存储在普通队列140中的命令优先级高的命令。例如,如上文所述,优先队列130可存储用于未对齐数据的读取命令。
普通队列140可存储比存储在优先队列130中的命令优先级低的命令。例如,普通队列140可存储用于未对齐数据的特殊写入命令。此外,普通队列140可存储用于对齐数据的普通写入命令以及其它命令,诸如基于来自主机装置的简单读取请求的读取命令。
缓冲器150可以存储在主机装置和非易失性存储器装置200之间传输的数据。
非易失性存储器装置200可以根据控制器100的控制,存储从控制器100传输的数据,并且读出存储的数据以及将读出的数据传输到控制器100。非易失性存储器装置200可以基于由控制器100提供的物理地址,执行写入操作和读取操作。
非易失性存储器装置200可以包括多个存储器单元(未示出)。如本领域所公知的,多个存储器单元可以以二维阵列或三维阵列布置。每个存储器单元可以存储至少一个位。例如,当存储器单元是单层单元(SLC)时,每个存储器单元中可以存储一个位,而当存储器单元是多层单元(MLC)时,每个存储器单元中可以存储至少两个位。
非易失性存储器装置200可以包括诸如NAND闪存或NOR闪存的闪速存储器、铁电随机存取存储器(FeRAM)、相变随机存取存储器(PCRAM)、磁阻随机存取存储器(MRAM)、电阻式随机存取存储器(ReRAM)等。
尽管在图1中示出了存储器***10包括一个非易失性存储器装置200,但是应当注意,本公开不限于此,并且存储器***10可以包括多于一个非易失性存储器装置。
图2是描述控制器100的地址映射方法的简图。
参照图2,主机装置可以与写入数据一起传输写入请求,以第一大小(例如,512字节)为单位将扇区地址SA分配至写入数据。控制器100可以大于第一大小的第二大小(例如,4K字节)为单位管理地址。
具体地,控制器100可以第二大小为单位将连续的扇区地址SA转换成逻辑地址LA。例如,可以将连续的扇区地址SA“0”至“7”转换成逻辑地址LA“0”,并且可以将连续的扇区地址SA“8”至“15”转换成逻辑地址LA“1”。即,根据第一大小与第二大小的比值,可以通过简单的算术运算,例如除法,将扇区地址SA转换成逻辑地址LA。与预定数量的扇区地址SA(例如,8个连续的扇区地址SA“0”至“7”)对应的写入数据,可对应于由预定数量的扇区地址SA转换成的逻辑地址LA(例如,逻辑地址LA“0”)。
控制器100可以第二大小(例如,4K字节)为单位,将逻辑地址LA映射到物理地址PA。非易失性存储器装置200中的由物理地址PA表示的存储器区域可以存储映射到物理地址PA的逻辑地址LA的数据。逻辑地址LA和物理地址PA之间的映射关系可以通过映射数据来管理。
如上所述,当分配给写入数据的一个或多个扇区地址SA与物理地址PA对齐时,相应写入请求可以是对齐写入请求。例如,针对扇区地址SA“0”至“7”和/或SA“8”至“15”的写入请求可以是对齐写入请求。另外,相应写入数据可以是对齐数据。
相反,当分配给写入数据的一个或多个扇区地址SA与物理地址PA未对齐时,相应写入请求可以是未对齐写入请求。例如,针对扇区地址SA“2”和“3”的写入请求可以是未对齐写入请求。
并且,针对扇区地址SA“4”至“15”的写入请求也可以是未对齐写入请求。然而,在写入数据中,扇区地址SA“8”至“15”的数据是对齐数据,而扇区地址SA“4”至“7”的数据是未对齐数据。也就是说,写入数据可包括对齐数据和未对齐数据。因此,控制器100可以与处理对齐写入请求相同的方式,将写入数据的对齐数据写入,并且可以下面将描述的方式写入未对齐数据。
图3是描述写入未对齐数据DT1的方法简图。
参照图3,在步骤S1中,主机装置可以将四个连续的扇区地址SA“4”至“7”分配给例如2K字节的未对齐数据DT1,并传输未对齐写入请求。根据图2的转换原理,扇区地址SA“4”至“7”将被转换成逻辑地址LA“0”。
在步骤S2中,控制器100可以基于未对齐写入请求,从非易失性存储器装置200中读取包括未对齐数据DT1的旧数据ODT1的源数据SDT1。旧数据ODT1可以被预先分配给扇区地址SA“4”至“7”,并写入在非易失性存储器装置200中。当逻辑地址LA“0”被映射到预定物理地址PA“15”时,可以从物理地址PA“15”的存储器区域读取源数据SDT1。也就是说,源数据SDT1可以被预先分配给扇区地址SA“0”到“7”并写入在非易失性存储器装置200中。源数据SDT1可以与物理地址PA对齐,并且源数据SDT1的大小可以是与单个物理地址PA对应的4K字节。
在步骤S3中,控制器100可以通过将源数据SDT1中的旧数据ODT1替换为未对齐数据DT1,生成修改后的源数据MDT1,并将修改后的源数据MDT1写入非易失性存储器装置200中。修改后的源数据MDT1可以被写入在例如新物理地址PA“21”的存储器区域中。存储在物理地址PA“15”的存储器区域中的源数据SDT1可以失效,并且之后可以被擦除。这样,可以完成未对齐写入请求。
同时,写入对齐数据不需要读取源数据以及替换旧数据。例如,在接收到用于扇区地址SA“0”到“7”的对齐数据的对齐写入请求的情况下,对齐数据可以按原样被写入非易失性存储器装置200中。对齐数据的旧数据(在这种情况下,图3的整个源数据SDT1将是旧数据)可以物理地址为单位失效。换句话说,如图3所示,由于对齐数据可以物理地址为单位失效,因此不需要通过在源数据SDT1保留除了旧数据ODT1之外的剩余有效数据的方法写入对齐数据。
图4是详细描述图1的控制器100处理与未对齐数据DT1一起提供的未对齐写入请求WRQ1的方法的简图。尽管与未对齐写入请求WRQ1一起提供的写入数据除了未对齐数据DT1之外,还可包括对齐数据,但是在图4中省略了用于写入对齐数据的方法,并且可以与图5所示方法相似的方法执行。
参照图4,在步骤S11中,第一处理电路110可以从主机装置接收用于未对齐数据DT1的未对齐写入请求WRQ1。未对齐数据DT1可以被存储在缓冲器150中。未对齐写请求WRQ1可以包括分配给未对齐数据DT1的扇区地址的信息。
在步骤S12中,第一处理电路110可以基于由未对齐数据DT1的扇区地址转换的逻辑地址生成读取命令RCMD,并且将读取命令RCMD存储到优先队列130中。
在步骤S13中,第一处理电路110可以基于逻辑地址生成特殊写入命令WCMD1,并将特殊写入命令WCMD1存储到普通队列140中。
如上所述,第二处理电路120可以在处理普通队列140之前处理优先队列130。因此,在步骤S14中,即使普通队列140中存储有命令,第二处理电路120可读取来自优先队列130的读取命令RCMD,以首先处理存储在优先队列130中的读取命令RCMD。
在步骤S15中,第二处理电路120可通过参考映射数据MAP,确定映射到读取命令RCMD的逻辑地址的物理地址,并且控制非易失性存储器件装置200对物理地址的存储器区域执行读取操作。非易失性存储器装置200将读取包括未对齐数据DT1的旧数据的源数据SDT1。
在步骤S16中,第二处理电路120可以从非易失性存储器装置200接收源数据SDT1。源数据SDT1可以被存储在缓冲器150中。
在步骤S17中,如果优先队列130中没有另一个命令,则第二处理电路120可从普通队列140读取特殊写入命令WCMD1,以处理存储在普通队列140中的特殊写入命令WCMD1。如果在普通队列140中存在其它命令,其中其它命令具有与特殊写入命令WCMD1相同的优先级并且先于特殊写入命令WCMD1被存储,则第二处理电路120会在按照普通队列140中的命令在普通队列140中存储的顺序,顺序地处理命令后,处理特殊写入命令WCMD1。也就是说,第二处理电路120可以先来先服务的方式在处理普通队列140的命令之后,处理特殊写入命令WCMD1。
在步骤S18中,第二处理电路120可以将存储在缓冲器150中的源数据SDT1中的旧数据替换为未对齐数据DT1。
在步骤S19中,第二处理电路120可控制非易失性存储器装置200以将修改后的源数据MDT1写入在新物理地址的存储器区域中,并将新物理地址映射到映射数据MAP中的未对齐数据DT1的逻辑地址。
图5是详细描述图1的控制器100处理对齐写入请求WRQ2的方法的简图。
参照图5,在步骤S21中,第一处理电路110可以从主机装置接收与对齐数据DT2一起提供的对齐写入请求WRQ2。对齐数据DT2可以被存储在缓冲器150中。对齐写入请求WRQ2可以包括分配给对齐数据DT2的扇区地址的信息。
在步骤S22中,第一处理电路110可基于从对齐数据DT2的扇区地址转换的逻辑地址,生成普通写入命令WCMD2,并将普通写入命令WCMD2存储到普通队列140中。
在步骤S23中,如果优先队列130中没有任何命令,则第二处理电路120可从普通队列140读取普通写入命令WCMD2,以处理存储在普通队列140中的普通写入命令WCMD2。如果在普通队列140中存在其它命令,其中其它命令具有与普通写入命令WCMD2相同的优先级并且先于普通写入命令WCMD2被存储,则第二处理电路120可按照普通队列140中的命令在普通队列140中存储的顺序,顺序地处理命令后,处理普通写入命令WCMD2。也就是说,第二处理电路120可以先来先服务的方式在处理普通队列140的命令之后,处理普通写入命令WCMD2。
在步骤S24中,第二处理电路120可控制非易失性存储器装置200将对齐数据DT2写入新物理地址的存储器区域中,并将新物理地址映射到映射数据MAP中的对齐数据DT2的逻辑地址。
图6是说明将根据一个实施例的存储器***10应用于数据处理***2000的示例的框图。
参照图6,数据处理***2000可以包括计算机、笔记本电脑、上网本、智能手机、数字电视、数码相机、导航仪等。数据处理***2000可以包括主处理器2100、主存储器装置2200、存储器***2300和输入/输出装置2400。数据处理***2000的内部单元可以通过***总线2500交换数据、控制信号等。
主处理器2100可以控制数据处理***2000的一般操作。主处理器2100可以是诸如微处理器的中央处理单元。主处理器2100可以在主存储器装置2200上执行诸如操作***、应用程序、装置驱动程序等的软件。
主处理器2100可以与上文参考图1和5所述的主机装置相同的方式操作。也就是说,主处理器2100可以传输未对齐写入请求和对齐写入请求,以将数据存储到存储器***2300中。
主存储器装置2200可以存储待由主处理器2100使用的程序和程序数据。主存储器装置2200可以临时存储将要传输到存储器***2300和输入/输出装置2400的数据。
存储器***2300可以包括控制器2310和存储介质2320。存储器***2300可以以基本上类似于图1的存储器***10的方式来被配置并且操作。
输入/输出装置2400可以包括键盘、扫描仪、触摸屏、屏幕监视器、打印机、鼠标等,其能够与用户交换数据,例如从用户接收用于控制数据处理***2000的命令,或将处理结果提供给用户。
根据一个实施例,数据处理***2000可以通过诸如局域网(LAN)、广域网(WAN)、无线网络等的网络2600与至少一个服务器2700通信。数据处理***2000可以包括网络接口(未示出)以访问网络2600。
虽然上文已经描述了各种示例性实施例,但是本领域技术人员将会理解,所描述的实施例仅仅是示例。因此,本文描述的数据存储装置及其操作方法不应该基于所描述的实施例而被限制。在不脱离如所附权利要求中限定的本发明的精神和范围的情况下,相关领域技术人员可以想到许多其他实施例和/或其变型。
Claims (10)
1.一种存储器***,包括:
非易失性存储器装置;以及
控制器,适于处理从主机装置传输的第一数据的写入请求,其中所述第一数据包括未对齐数据,
所述控制器包括:
第一处理电路,适于基于所述写入请求生成写入命令和读取命令,所述读取命令具有高于所述写入命令的优先级;以及
第二处理电路,适于基于所述读取命令从所述非易失性存储器装置读取包括所述未对齐数据的旧数据的第二数据,并且基于所述写入命令通过用所述未对齐数据替换所述旧数据来生成修改后的第二数据,并将所述修改后的第二数据写入到所述非易失性存储器装置中。
2.根据权利要求1所述的存储器***,
其中所述第一处理电路将所述读取命令存储在优先队列中,并且
其中所述第二处理电路在处理其它命令之前处理存储在所述优先队列中的命令。
3.根据权利要求1所述的存储器***,其中,当不存在提供有所述优先级的命令时,所述第二处理电路按照命令被生成的顺序,处理提供有比所述优先级低的优先级的一个或多个命令。
4.根据权利要求1所述的存储器***,其中当由所述主机装置分配给所述未对齐数据的一个或多个扇区地址与所述非易失性存储器装置的物理地址未对齐时,所述第一处理电路生成所述读取命令。
5.根据权利要求1所述的存储器***,其中基于所述读取命令,所述第二处理电路将所述未对齐数据的一个或多个扇区地址转换成逻辑地址,通过参考映射数据确定映射到所述逻辑地址的物理地址,并从所述物理地址的存储器区域读取所述第二数据。
6.一种存储器***,包括:
非易失性存储器装置;以及
控制器,适于处理从主机装置传输的第一数据的写入请求,其中所述第一数据包括未对齐数据,
所述控制器包括:
优先队列以及普通队列;
第一处理电路,适于基于所述写入请求将读取命令存储到所述优先队列中,以及将写入命令存储到所述普通队列中,所述读取命令具有高于所述写入命令的优先级;以及
第二处理电路,适于在处理所述普通队列之前处理所述优先队列,
其中所述第二处理电路基于所述读取命令从所述非易失性存储器装置读取包括所述未对齐数据的旧数据的第二数据,并且基于所述写入命令通过用所述未对齐数据替换所述旧数据来生成修改后的第二数据,并将所述修改后的第二数据写入到所述非易失性存储器装置中。
7.根据权利要求6所述的存储器***,其中,当在所述优先队列中没有命令时,所述第二处理电路按照命令被生成的顺序,处理在普通队列中的一个或多个命令。
8.根据权利要求6所述的存储器***,其中当由所述主机装置分配给所述未对齐数据的一个或多个扇区地址与所述非易失性存储器装置的物理地址未对齐时,所述第一处理电路生成所述读取命令和所述写入命令。
9.根据权利要求6所述的存储器***,其中所述第二处理电路基于所述读取命令,将所述未对齐数据的一个或多个扇区地址转换成逻辑地址,通过参考映射数据确定映射到所述逻辑地址的物理地址,并从所述物理地址的存储器区域读取所述第二数据。
10.一种控制器,包括:
第一队列和第二队列;
第一处理电路,适于响应于包括在源数据中的未对齐数据的新版本的写入请求,将用于包括所述未对齐数据的旧版本的所述源数据的读取命令排队在所述第一队列中,以及将用于包括所述新版本的所述源数据的写入命令排队在所述第二队列中;以及
第二处理电路,适于在响应于排队在所述第二队列中的命令之前,响应于排队在所述第一队列中的命令,控制存储器装置进行操作,
其中所述第二处理电路基于所述读取命令从所述存储器装置读取包括所述旧版本的源数据,并且基于所述写入命令用所述新版本替换所述旧版本,并将所述源数据写入到所述存储器装置中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2017-0061105 | 2017-05-17 | ||
KR1020170061105A KR102349381B1 (ko) | 2017-05-17 | 2017-05-17 | 데이터 저장 장치 및 그것의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108958642A CN108958642A (zh) | 2018-12-07 |
CN108958642B true CN108958642B (zh) | 2021-05-28 |
Family
ID=64271655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711474237.3A Active CN108958642B (zh) | 2017-05-17 | 2017-12-29 | 存储器***及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10346052B2 (zh) |
KR (1) | KR102349381B1 (zh) |
CN (1) | CN108958642B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW202004504A (zh) * | 2018-05-24 | 2020-01-16 | 韓商愛思開海力士有限公司 | 記憶體裝置、記憶體裝置的控制方法及記錄媒體 |
KR20210013483A (ko) * | 2019-07-26 | 2021-02-04 | 삼성전자주식회사 | 불휘발성 메모리 모듈을 포함하는 스토리지 시스템 및 불휘발성 메모리 모듈의 동작 방법 |
US11513736B2 (en) * | 2021-03-08 | 2022-11-29 | Western Digital Technologies, Inc. | Revised host command generation for unaligned access |
KR102553878B1 (ko) * | 2021-11-25 | 2023-07-10 | 삼성전자주식회사 | 비휘발성 메모리 기반의 저장 장치, 장치 컨트롤러 및 방법 |
CN114911426B (zh) * | 2022-07-15 | 2022-10-18 | 北谷电子有限公司 | 一种数据存储方法、存储器件和高空车 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719052A (zh) * | 2009-12-22 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 一种写数据的方法、装置及*** |
CN103544118A (zh) * | 2012-07-17 | 2014-01-29 | 群联电子股份有限公司 | 存储器储存装置、其存储器控制器与数据写入方法 |
CN104866428A (zh) * | 2014-02-21 | 2015-08-26 | 联想(北京)有限公司 | 数据存取方法和数据存取装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9898402B2 (en) * | 2011-07-01 | 2018-02-20 | Micron Technology, Inc. | Unaligned data coalescing |
US8924631B2 (en) * | 2011-09-15 | 2014-12-30 | Sandisk Technologies Inc. | Method and system for random write unalignment handling |
JP2013077278A (ja) * | 2011-09-16 | 2013-04-25 | Toshiba Corp | メモリ・デバイス |
KR20140032789A (ko) | 2012-09-07 | 2014-03-17 | 삼성전자주식회사 | 불휘발성 메모리 장치의 컨트롤러 및 그것의 커멘드 스케줄링 방법 |
KR20160003530A (ko) * | 2014-07-01 | 2016-01-11 | 삼성전자주식회사 | 내장 저장 장치, 이와 통신 가능한 외장 저장 장치, 및 이를 포함하는 데이터 처리 시스템 |
-
2017
- 2017-05-17 KR KR1020170061105A patent/KR102349381B1/ko active IP Right Grant
- 2017-12-11 US US15/837,664 patent/US10346052B2/en active Active
- 2017-12-29 CN CN201711474237.3A patent/CN108958642B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719052A (zh) * | 2009-12-22 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 一种写数据的方法、装置及*** |
CN103544118A (zh) * | 2012-07-17 | 2014-01-29 | 群联电子股份有限公司 | 存储器储存装置、其存储器控制器与数据写入方法 |
CN104866428A (zh) * | 2014-02-21 | 2015-08-26 | 联想(北京)有限公司 | 数据存取方法和数据存取装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108958642A (zh) | 2018-12-07 |
KR102349381B1 (ko) | 2022-01-13 |
KR20180126656A (ko) | 2018-11-28 |
US10346052B2 (en) | 2019-07-09 |
US20180335943A1 (en) | 2018-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108958642B (zh) | 存储器***及其操作方法 | |
US11487666B2 (en) | Timed data transfer between a host system and a memory sub-system | |
US11573742B2 (en) | Dynamic data placement for collision avoidance among concurrent write streams | |
US10909031B2 (en) | Memory system and operating method thereof | |
US10860231B2 (en) | Memory system for adjusting map segment based on pattern and operating method thereof | |
CN108415663B (zh) | 数据存储装置的操作方法 | |
KR20190054426A (ko) | 메모리 시스템 및 그것의 동작 방법 | |
US11334493B2 (en) | Memory system and operating method thereof | |
US11507311B2 (en) | Storage device for accelerating write speed and read speed | |
US11507312B2 (en) | Storage device and method for accelerating storage device write and read speed | |
KR102596964B1 (ko) | 맵 캐시 버퍼 크기를 가변시킬 수 있는 데이터 저장 장치 | |
US11573732B2 (en) | Storage device, memory system comprising the same, and operation method thereof | |
KR20220127076A (ko) | 컨트롤러 및 컨트롤러의 동작 방법 | |
CN114253461A (zh) | 混合通道存储设备 | |
US10642534B2 (en) | Data storage device | |
KR102523967B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템 | |
CN109542336B (zh) | 存储设备及其操作方法 | |
KR102523965B1 (ko) | 데이터 저장 장치 | |
US11275694B2 (en) | Memory system and method of operating method thereof | |
US11586382B2 (en) | Memory system and data processing system for distributedly storing input data | |
US20230147477A1 (en) | Storage device, memory system comprising the same, and operation method thereof | |
CN114691534A (zh) | 控制器以及包括控制器的存储器*** | |
CN118051181A (zh) | 存储器子***中的服务质量管理 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |