CN110928487A - 存储装置和存储装置的操作方法 - Google Patents
存储装置和存储装置的操作方法 Download PDFInfo
- Publication number
- CN110928487A CN110928487A CN201910890993.7A CN201910890993A CN110928487A CN 110928487 A CN110928487 A CN 110928487A CN 201910890993 A CN201910890993 A CN 201910890993A CN 110928487 A CN110928487 A CN 110928487A
- Authority
- CN
- China
- Prior art keywords
- area
- controller
- external host
- storage device
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 10
- 230000015654 memory Effects 0.000 claims abstract description 179
- 230000004048 modification Effects 0.000 claims abstract description 29
- 238000012986 modification Methods 0.000 claims abstract description 29
- 238000011084 recovery Methods 0.000 claims description 11
- 239000003990 capacitor Substances 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 3
- 229910052715 tantalum Inorganic materials 0.000 claims description 2
- GUVRBAGPIYLISA-UHFFFAOYSA-N tantalum atom Chemical compound [Ta] GUVRBAGPIYLISA-UHFFFAOYSA-N 0.000 claims description 2
- 230000002085 persistent effect Effects 0.000 description 93
- 238000013507 mapping Methods 0.000 description 33
- 101150080085 SEG1 gene Proteins 0.000 description 6
- 101100421134 Schizosaccharomyces pombe (strain 972 / ATCC 24843) sle1 gene Proteins 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 239000003550 marker Substances 0.000 description 3
- 101100202858 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SEG2 gene Proteins 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000010926 purge Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- 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/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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C14/00—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
- G11C14/0009—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/206—Memory mapped I/O
-
- 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/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
- G06F2212/2228—Battery-backed RAM
-
- 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)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
提供了一种存储装置和存储装置的操作方法。所述存储装置包括:非易失性存储器装置;随机存取存储器,其包括第一区和第二区;以及控制器,其被构造为使用随机存取存储器的第一区作为用于指示第二区的数据修改的日志的日志存储器,将非易失性存储器装置的用户区暴露于外部主机装置作为块单位的第一访问区,并将随机存取存储器的第二区暴露于外部主机装置作为块单位的第二访问区和字节单位的第三访问区二者。
Description
技术领域
本文所述的一些本发明构思的一些示例实施例涉及半导体装置,并且更具体地说,涉及允许对一部分存储区进行块单位访问和存储器映射访问的存储装置和这种存储装置的操作方法。
背景技术
操作系统或应用程序可使用主存储器和辅助存储器。主存储器可用于临时存储数据,辅助存储器可用于以持久方式存储数据而不丢失信息。操作系统可基于文件系统管理辅助存储器。文件系统可包括有关文件的各种描述性信息,诸如存储各文件的数据的存储器位置的地址和文件的大小。
当操作系统或应用程序修改或更新存储在辅助存储器中的数据(下文中称作“用户数据”)时,可更新文件系统。为用户数据的个别修改或更新而更新文件系统会导致访问辅助存储器的次数增加,这会增加辅助存储器的等待时间(latency)和/或缩短辅助存储装置的寿命。
另一操作系统可在主存储器中存储用户数据和可与用户数据关联的文件系统的描述性特征(下文中称作“元数据”)。操作系统可执行提交以使操作系统驱动的用户数据和文件系统以及存储在辅助存储器中的用户数据和文件系统同步。该提交包括这样的处理:操作系统在辅助存储器的用户区中写入用户数据,并在辅助存储器的日志区中写入元数据。一旦执行该提交,在突然断电(SPO)的情况下,操作系统可能能够基于日志区恢复用户数据和文件系统。
操作系统可在诸如通电和/或断电的事件中或在单独的时间将日志区的数据和元数据应用到用户区。例如,操作系统可将日志区的用户数据复制或移动到用户区。此外,操作系统可将日志区的元数据应用于存储在用户区中的文件系统的数据。
如上所述,该提交伴随着在辅助存储器中写入用户数据和元数据的操作。如果针对在辅助存储器中写入用户数据和/或元数据的每种情况都执行该提交,则这些操作会增加执行该提交的时间,会增加辅助存储器的等待时间和/或会缩短存储装置的寿命。
发明内容
根据一些示例实施例,一种存储装置可包括:非易失性存储器装置;随机存取存储器,其包括第一区和第二区;以及控制器,其被构造为使用随机存取存储器的第一区作为用于指示第二区的数据修改的日志的日志存储器,将非易失性存储器装置的用户区暴露于外部主机装置作为块单位的第一访问区,并将随机存取存储器的第二区暴露于外部主机装置作为块单位的第二访问区和字节单位的第三访问区二者。
根据一些示例实施例,一种存储装置可包括:非易失性存储器装置;动态随机存取存储器,其包括第一区和第二区;以及控制器,其被构造为使用第一区作为用于指示第二区的数据修改的日志的日志存储器,将非易失性存储器装置的用户区暴露于外部主机装置作为块单位的第一访问区。第二区包括各个区段。控制器选择各个区段中的第一区段,选择各个区段中的除第一区段之外的其余区段中的至少两个第二区段,并且为选择的区段提供非易失性。所述至少两个第二区段在其余区段中按照环缓冲方式动态地改变。
根据一些示例实施例,一种可包括控制器、非易失性存储器装置和动态随机存取存储器的存储装置的操作方法,其中,所述方法包括以下步骤:通过控制器将非易失性存储器装置的一部分存储空间提供至外部主机装置作为用户区;以及通过控制器将动态随机存取存储器的一部分存储空间提供至外部主机装置作为日志区,允许字节单位的写入操作和块单位的读取操作。日志区的存储空间包括各个区段,并且提供动态随机存取存储器的一部分存储空间包括:通过控制器向来自各个区段中的第一区段和至少两个第二区段提供非易失性,第一区段固定,并且所述至少两个第二区段动态地改变。
根据一些示例实施例,一种存储装置可包括:非易失性存储器装置;随机存取存储器,其包括第一区和第二区;以及控制器,其被构造为针对作为块单位可访问的用户数据将第二区暴露于外部主机装置,在第一区中存储指示第二区的数据的修改的日志,并且通过提交由日志指示的块单位的子块将第二区清空至非易失性存储器存储,其中,日志指示待提交至非易失性存储器装置的块单位的子块。
附图说明
通过参照附图详细描述本发明构思的示例性实施例,一些本发明构思的一些示例实施例的以上和其它方面和特征将变得清楚。
图1示出了根据一些本发明构思的示例实施例的存储装置。
图2示出了存储装置在初始化操作中将装置信息提供至外部主机装置的示例。
图3示出了存储装置的物理存储区的容量和通过外部主机装置可见的区的容量。
图4示出了包括基于逻辑块地址在存储装置中处理的正常访问请求的示例实施例。
图5示出了包括基于在存储装置中处理的存储器映射输入/输出的写入请求的示例实施例。
图6示出了包括被构造为基于发生突然断电事件备份持久存储器区的数据的存储装置的示例实施例。
图7示出了包括被构造为基于来自外部主机装置的电力的恢复将数据加载至持久存储器区上以恢复的存储装置的示例实施例。
图8示出了包括被构造为管理持久存储器区的控制器的示例实施例。
图9示出了包括被构造为处理清空请求的存储装置的示例实施例。
图10示出了包括基于清空请求管理的持久存储器区的示例实施例。
图11示出了包括被构造为基于逻辑块地址处理读取请求的控制器的示例实施例。
图12示出了包括计算系统的示例实施例。
图13示出了包括更新第一用户数据的第一应用的示例实施例。
图14示出了第一用户数据、第一元数据和第一位图的示例。
图15示出了包括在图13之后修改第二用户数据的第二应用的示例实施例。
图16示出了包括在图15之后分别修改第三用户数据和第四用户数据的第一应用和第三应用的示例实施例。
图17示出了包括在图16之后在计算系统中执行的提交的示例实施例。
图18示出了包括在图17之后修改第五用户数据至第七用户数据的第一应用至第三应用的示例实施例。
具体实施方式
下面,详细描述一些本发明构思的一些示例实施例,达到使本领域普通技术人员可实施一些本发明构思的程度。
图1示出了根据一些本发明构思的一些示例实施例的存储装置100。参照图1,存储装置100包括第一非易失性存储器装置111和第二非易失性存储器装置112、动态随机存取存储器120和控制器130。存储装置100可包括固态驱动器(SSD)。第一非易失性存储器装置111和第二非易失性存储器装置112可在控制器130的控制下执行写入操作、读取操作和/或擦除操作。第一非易失性存储器装置111和第二非易失性存储器装置112可通过不同的信道与控制器130通信,并且可彼此独立地操作。
在包括如图1中所示的一些示例实施例中,控制器130可被构造为将第一非易失性存储器装置111和第二非易失性存储器装置112的一部分存储空间暴露至外部主机装置。第一非易失性存储器装置111和第二非易失性存储器装置112可包括各种非易失性存储器装置,诸如闪速存储器装置、相变存储器装置、磁存储器装置、电阻存储器装置和/或铁电存储器装置。
在包括如图1中所示的一些示例实施例中,动态随机存取存储器120可被构造为在控制器130的控制下执行写入操作和/或读取操作。动态随机存取存储器120的存储空间可通过控制器130分为装置存储器区121和持久存储器区122。作为示例,持久存储器区122可包括易失性存储器,诸如动态随机存取存储器(DRAM),数据首先存储在其中,并且其与例如定期地备份该数据的非易失性存储器关联。在电力循环事件之后,可从非易失性存储器恢复主存储器的内容,从而即使数据首先存储在其中的主存储器可为易失性的,由主存储器存储的数据也能够持久(例如,不由于断电而丢失)。
在一些示例实施例中,控制器130可被构造为将持久存储器区122暴露于外部主机装置。例如,控制器130可被构造为将持久存储器区122暴露于外部主机装置作为存储器映射区。在一些示例实施例中,持久存储器区122可暴露于外部主机装置作为其中允许基于块的访问的区。装置存储器区121可不暴露于外部主机装置并且可通过控制器130访问。装置存储器区121可用于存储在管理存储装置100时会涉及的管理数据(或元数据)和/或代码。装置存储器区121可用作日志存储器和/或高速缓冲存储器。
在本文讨论的一些示例实施例中,可利用装置存储器区121和持久存储器区122的特定名称描述动态随机存取存储器120的存储区。然而,对装置存储器区121和持久存储器区122在本文所用的名称是为了描述清楚,并且应该理解,装置存储器区121和持久存储器区122的功能和特性不受名称限制。
在一些示例实施例中,控制器130可被构造为控制第一非易失性存储器装置111和/或第二非易失性存储器装置112以及/或者动态随机存取存储器120。控制器130可与外部主机装置通信。控制器130可包括接口块131、装置信息块132、第一控制块133、第二控制块134、日志块135、存储器控制块136、第一管理块137、第二管理块138和辅助电力块139。一些示例实施例可包括控制器130,其包括诸如逻辑电路的硬件;诸如执行软件的处理器的硬件/软件组合;或它们的组合。例如,处理器可包括(但不限于)中央处理单元(CPU)、算术逻辑单元(ALU)、数字信号处理器、微计算机、现场可编程门阵列(FPGA)、片上系统(SOC)、可编程逻辑单元、微处理器、专用集成电路(ASIC)等。
在一些示例实施例中,接口块131、第一控制块133、第二控制块134、日志块135、存储器控制块136、第一管理块137和/或第二管理块138可通过内部总线彼此通信,并且/或者接口块131可与外部主机装置通信。在其它示例实施例中,一些或全部识别的元件可诸如经直接耦合元件的走线或布线直接通信,并且/或者例如通过第三元件更加间接地通信。
在一些示例实施例中,基于(例如,通过外部主机装置)正在将电力供应至存储装置100,接口块131可被构造为从装置信息块132接收存储装置100的装置信息和/或将存储装置100的装置信息提供至外部主机装置。例如,存储装置100的装置信息可包括关于第一非易失性存储器装置111和/或第二非易失性存储器装置112和/或持久存储器区122的一部分的信息。作为初始化操作的一部分,接口块131可被构造为例如从外部主机装置接收和/或向外部主机装置发送存储装置100的装置信息。
在一些示例实施例中,可基于初始化操作的完成在正常模式下执行正常操作。例如,接口块131可被构造为从外部主机装置接收请求和/或解析接收到的请求。例如,接口块131可被构造为允许外部主机装置的基于块的请求和/或存储器映射请求。基于块的请求可包括逻辑块地址(LBA)。基于块的请求可被构造为基于逻辑块地址(LBA)指示其中将被写入的数据的位置和/或其中将被读取的数据的位置。存储器映射请求可包括字节单位的虚拟地址(VA)。存储器映射请求可基于虚拟地址(VA)指示其中将被写入数据的位置和/或其中将被读取数据的位置。接口块131可被构造为将基于块的请求提供至第一控制块133和/或将存储器映射请求提供至第二控制块134。
在一些示例实施例中,接口块131可基于快速外围部件互连(PCIe)和快速非易失性存储器(NVMe)。接口块131可被构造为从PCIe或NVMe的存储器映射输入/输出(I/O)接收存储器映射请求和/或接收PCIe或NVMe的块I/O模式的基于块的请求。接口块131可被构造为通过存储器控制块136将从外部主机装置接收的数据提供至装置存储器区121和/或将从装置存储器区121提供的数据输出至外部主机装置。
在一些示例实施例中,装置信息块132可被构造为例如在初始化操作中将存储装置100的装置信息提供至接口块131。装置信息块132可包括各种非易失性存储器装置,诸如EEPROM、闪速存储器装置、相变存储器装置、磁存储器装置、铁电存储器装置和电阻存储器装置。
在一些示例实施例中,第一控制块133可被构造为从接口块131接收基于块的请求。第一控制块133可被构造为确定基于块的请求为第一类型还是第二类型。例如,基于包括在基于块的请求中的逻辑块地址(LBA)指示第一非易失性存储器装置111和第二非易失性存储器装置112中的至少一个,可确定基于块的请求为第一类型。作为另一示例,基于包括在基于块的请求中的逻辑块地址(LBA)指示持久存储器区122,可确定基于块的请求为第二类型。基于该基于块的请求对应于第一类型,第一控制块133可被构造为参照第一映射表。基于该基于块的请求对应于第二类型,第一控制块133可被构造为参照第二映射表。第一映射表可包括第一非易失性存储器装置111和/或第二非易失性存储器装置112的物理块地址(PBA)和/或逻辑块地址(LBA)之间的映射信息。第二映射表可包括持久存储器区122的物理地址(PA)和/或逻辑块地址(LBA)之间的映射信息。第一映射表和/或第二映射表可存储在动态随机存取存储器120的装置存储器区121中。第一控制块133可被构造为基于第一映射表将第一类型的基于块的请求的逻辑块地址(LBA)转换为物理块地址(PBA)。第一控制块133可被构造为将转换的物理块地址(PBA)与写入命令和/或读取命令一起提供至第一管理块137和/或第二管理块138。
在一些示例实施例中,第一控制块133可被构造为基于第二映射表将第二类型的基于块的请求的逻辑块地址(LBA)转换为持久存储器区122的物理地址(PA)。第一控制块133可被构造为基于转换的物理地址(PA)通过存储器控制块136访问持久存储器区122。第一控制块133可被构造为执行直接存储器访问(DMA)控制,使得通过接口块131从外部主机装置提供的数据写入装置存储器区121中和/或使得存储在装置存储器区121中的数据通过接口块131输出至外部主机装置。
在一些示例实施例中,基于突然断电(SPO)事件(诸如来自外部主机装置的电源的中断),存储装置100可被构造为从向存储装置100供电的辅助电源(诸如辅助电力块139)接收辅助电力。虽然通过辅助电源供应辅助电力,但是第一控制块133可被构造为将至少一部分持久存储器区122中的数据备份至第一非易失性存储器装置111和第二非易失性存储器装置112中的至少一个。第一控制块133还可被构造为执行针对作为备份目标的数据(包括诸如映射表的元数据和/或存储在装置存储器区121中的数据)的备份,以释放第一非易失性存储器装置111和第二非易失性存储器装置112中的至少一个的存储空间。基于来自外部主机装置的电力的恢复,第一控制块133可被构造为将备份的数据加载至持久存储器区122和/或从装置存储器区121加载对应于装置存储器区121的备份的数据。第一控制块133可被构造为例如通过基于辅助电力块139执行备份操作和/或加载操作来为持久存储器区122提供非易失性。第二控制块134可被构造为从接口块131接收存储器映射请求。第二控制块134可参照第三映射表,其可包括存储器映射请求的虚拟地址(VA)和/或持久存储器区122的物理地址(PA)之间的映射信息。第三映射表可存储在动态随机存取存储器120的装置存储器区121和/或持久存储器区122中。第二控制块134可被构造为例如基于第三映射表将存储器映射请求的虚拟地址(VA)转换为物理地址(PA),和/或基于转换的物理地址(PA)通过存储器控制块136访问持久存储器区122。
在一些示例实施例中,日志块135可被构造为存储将由第一控制块133和/或第二控制块134执行的代码和/或指令。日志块135可被构造为存储将被第一控制块133和/或第二控制块134使用的数据(诸如元数据)。
在一些示例实施例中,存储器控制块136可被构造为控制动态随机存取存储器120。存储器控制块136可被构造为例如根据动态随机存取存储器120的命令系统和/或地址系统将命令和/或地址提供至动态随机存取存储器120。存储器控制块136可被构造为基于动态随机存取存储器120的数据通信系统与动态随机存取存储器120交换数据。
在一些示例实施例中,第一管理块137可被构造为控制第一非易失性存储器装置111,并且/或者第二管理块138可被构造为控制第二非易失性存储器装置112。第一管理块137和/或第二管理块138可被构造为例如根据第一非易失性存储器装置111和/或第二非易失性存储器装置112的命令系统和/或地址系统将命令和/或地址提供至第一非易失性存储器装置111和第二非易失性存储器装置112。第一管理块137和/或第二管理块138可例如根据第一非易失性存储器装置111和第二非易失性存储器装置112的数据通信系统与第一非易失性存储器装置111和/或第二非易失性存储器装置112交换数据。
在一些示例实施例中,辅助电力块139可被构造为基于突然断电(SPO)事件为存储装置100供电。当诸如基于来自外部主机装置的电力的恢复而从外部主机装置正常供电时,辅助电力块139可被充电。辅助电力块139可包括钽电容器或超级电容器。示例实施例被示出为辅助电力块139设置在控制器130中,但是在其他示例实施例中,辅助电力块139可设置在控制器130外部。
图2示出了其中诸如图1的存储装置100的装置可在初始化操作中将装置信息提供至外部主机装置的示例实施例。参照图2的示例实施例,在操作S110中,控制器130将第一非易失性存储器装置111和第二非易失性存储器装置112的用户区的容量暴露于外部主机装置作为逻辑块地址(LBA)区。例如,LBA区可指示外部主机装置能够基于逻辑块地址(LBA)访问的区。外部主机装置可被构造为将逻辑块地址(LBA)分配给在操作S110中暴露的容量。外部主机装置可被构造为基于逻辑块地址(LBA)识别在操作S110中暴露的容量。
在操作S120中,控制器130将至少一部分持久存储器区122的容量暴露于外部主机装置作为字节可寻址区。例如,字节可寻址区可为可通过外部主机装置被包括在存储器映射中的区。外部主机装置可被构造为将虚拟地址(VA)分配至在操作S120中暴露的容量。外部主机装置可被构造为基于虚拟地址(VA)识别在操作S120中暴露的容量。
在操作S130中,控制器130将至少一部分持久存储器区122的容量暴露于外部主机装置作为LBA区。例如,外部主机装置可被构造为将逻辑块地址(LBA)分配给在操作S130中暴露的容量。外部主机装置可被构造为基于逻辑块地址(LBA)识别在操作S130中暴露的容量。
在一些示例实施例中,持久存储器区122的在操作S120和操作S130中暴露的容量可作为环状围绕区而被访问。例如,持久存储器区122可被构造为通过外部主机装置的操作系统而保留为日志区和/或用作日志区。
在一些示例实施例中,关于持久存储器区122,控制器130可被构造为支持外部主机装置的基于块的读取操作和/或支持外部主机装置的存储器映射的写入操作。关于持久存储器区122,控制器130可被构造为抑制外部主机装置的基于块的写入操作和/或抑制外部主机装置的存储器映射的读取操作。
在一些示例实施例中,控制器130可被构造为对动态随机存取存储器120的装置存储器区121和/或持久存储器区122执行基于物理地址(PA)的访问。即,独立于允许外部主机装置的基于块的读取操作和/或存储器映射的写入操作,控制器130可被构造为自由访问装置存储器区121和持久存储器区122。
图3示出了存储装置100的物理存储区的容量和对外部主机装置可见的区的容量的示例。参照图1和图3,控制器130可被构造为将来自非易失性存储器装置111和112的容量20中的除超额配置区的容量22之外的用户区的容量21暴露于外部主机装置。超额配置区的容量22可用于外部主机装置、控制器130和/或存储装置的各种背景操作(诸如读取回收操作、磨损平衡操作和垃圾收集操作)。超额配置区的容量22可用于写入容量21中写入的数据的更新数据。例如,由于存储装置100的写入前擦除特性,因此超额配置区的容量22的使用可防止或减少存储装置100的等待时间和/或可提高存储装置100的寿命。
在一些示例实施例中,外部主机装置和/或控制器130可被构造为识别用户区的容量21作为向其分配逻辑块地址(LBA)的一部分。外部主机装置和/或控制器130可被构造为将逻辑块地址(LBA)分配给用户区的容量21和/或基于逻辑块地址(LBA)访问用户区的容量21。
在一些示例实施例中,控制器130可被构造为将持久存储器区122的容量10暴露于外部主机装置。例如,控制器130可被构造为将持久存储器区122的容量10暴露于外部主机装置作为用于基于块的访问和/或存储器映射访问的容量。外部主机装置可被构造为识别其中允许基于块的访问的持久存储器区122的容量10作为第一持久存储器区(PMR)(即一部分区)的容量11。外部主机装置可被构造为将逻辑块地址(LBA)分配给第一持久存储器区(PMR)的容量11和/或基于逻辑块地址(LBA)来访问第一持久存储器区(PMR)的容量11。外部主机装置可被构造为识别其中允许存储器映射访问的持久存储器区122的容量10作为第二持久存储器区(PMR)(即存储器映射区32)的容量12。外部主机装置可被构造为将虚拟地址(VA)分配给第二持久存储器区(PMR)的容量12和/或基于虚拟地址(VA)来访问第二持久存储器区(PMR)的容量12。
在一些示例实施例中,外部主机装置可被构造为识别存储装置100的存储容量作为向其分配逻辑块地址(LBA)的区和存储器映射区32。当外部主机装置访问向其分配逻辑块地址(LBA)的容量31当中的用户区的容量21时,存储装置100可被构造为基于外部主机装置的请求访问第一非易失性存储器装置111和/或第二非易失性存储器装置112。当外部主机装置访问(例如,读取)向其分配逻辑块地址(LBA)的容量31当中的第一持久存储器区(PMR)的容量11时,存储装置100可被构造为基于外部主机装置的请求来访问持久存储器区122。当外部主机装置访问(例如,写入)向其分配虚拟地址(VA)的容量32当中的第二持久存储器区(PMR)的容量12时,存储装置100可被构造为基于外部主机装置的请求来访问(例如,写入)持久存储器区122。第二持久存储器区(PMR)的容量12可用作其中将提交文件系统的用户数据和修改数据(例如,元数据)的日志区。第一持久存储器区(PMR)的容量11可用作这样的日志区:一旦恢复文件系统和/或一旦将日志区的信息应用于文件系统就从其中读取用户数据和元数据。
图4示出了包括基于逻辑块地址(LBA)通过存储装置100处理的正常访问请求的示例实施例。例如,正常访问请求可为包括第一非易失性存储器装置111和/或第二非易失性存储器装置112的逻辑块地址(LBA)的第一类型的访问请求。接口块131可被构造为将访问请求提供至第一控制块133。第一控制块133可被构造为基于第一映射表来控制伴随着访问请求的操作和/或将逻辑块地址(LBA)转换为物理块地址(PBA)。第一控制块133可被构造为将访问请求提供至第一非易失性存储器装置111和/或第二非易失性存储器装置112。可利用装置存储器区121来处理访问请求。例如,当访问请求为写入请求时,可将从外部主机装置接收到的用户数据写入装置存储器区121中的日志中和/或可将其写入第一非易失性存储器装置111和/或第二非易失性存储器装置112中。当访问请求是读取请求时,可在装置存储器区121中缓存从第一非易失性存储器装置111和/或第二非易失性存储器装置112读取的用户数据和/或可将其输出至外部主机装置。
图5示出了包括基于存储器映射输入/输出(I/O)(MMIO)的写入请求的示例实施例,其中,在存储装置100中处理该请求。例如,基于MMIO的访问请求可包括用于日志区的写入请求。参照图5,接口块131可被构造为将基于MMIO的访问请求提供至第二控制块134。第二控制块134可被构造为基于第三映射表来控制伴随着基于MMIO的访问请求的操作和/或将虚拟地址(VA)转换为物理地址(PA)。第二控制块134可被构造为基于物理地址(PA)通过存储器控制块136将数据(例如,元数据)写入持久存储器区122中。
图6示出了包括基于突然断电(SPO)事件备份持久存储器区122的数据的存储装置100的示例实施例。参照图3和图6,基于从外部主机装置供应的的电力的中断,辅助电力块139可被构造为为存储装置100供电。
在一些示例实施例中,基于辅助电力供应至存储装置100,第一控制块133可被构造为将存储在持久存储器区122中的数据备份至第一非易失性存储器装置111和/或第二非易失性存储器装置112。例如,第一控制块133可被构造为将特定范围的地址存储在持久存储器区122中。基于供应辅助电力,第一控制块133可被构造为将在特定范围的地址存储的数据备份至第一非易失性存储器装置111和/或第二非易失性存储器装置112。例如,第一控制块133可被构造为将在持久存储器区122、与持久存储器区122关联的第二映射表和/或第三映射表中存储的数据的地址备份至第一非易失性存储器装置111和/或第二非易失性存储器装置112。第一控制块133可被构造为将包括存储在装置存储器区121中的数据的数据(例如,存储在装置存储器区121中的元数据,诸如映射表)备份至第一非易失性存储器装置111和/或第二非易失性存储器装置112。
在一些示例实施例中,可将从持久存储器区122读取的数据写入第一非易失性存储器装置111和/或第二非易失性存储器装置112的用户区的容量21的空的存储容量中和/或第一非易失性存储器装置111和/或第二非易失性存储器装置112的超额配置区的容量22的空的存储容量中。可将从持久存储器区122读取的数据写入第一非易失性存储器装置111和/或第二非易失性存储器装置112的固定空间中。可按可变方式选择其中存储从持久存储器区122读取的数据的第一非易失性存储器装置111或第二非易失性存储器装置112的空间。
图7示出了包括存储装置100的示例实施例,该存储装置100在基于诸如突然断电(SPO)事件之后来自外部主机装置的电力的恢复的恢复模式下将数据加载至持久存储器区122中用于恢复。参照图7,基于从外部主机装置供应电力,第一控制块133可被构造为确定是否存在用于恢复的数据。例如,第一控制块133可被构造为通过识别在备份持久存储器区122的数据时增加的标识或信息来确定是否存在用于恢复的数据。作为另一示例,第一控制块133可被构造为通过检查将从第一非易失性存储器装置111和/或第二非易失性存储器装置112恢复的有效数据来确定是否存在用于恢复的数据。
在一些示例实施例中,基于存在用于恢复的数据,第一控制块133可被构造为从第一非易失性存储器装置111和/或第二非易失性存储器装置112读取用于恢复的数据和/或通过将读取的数据加载至持久存储器区122上来执行恢复。第一控制块133可被构造为从第一非易失性存储器装置111和/或第二非易失性存储器装置112读取备份的地址和/或基于读取的地址将数据加载至持久存储器区122上。第一控制块133可被构造为通过从第一非易失性存储器装置111和/或第二非易失性存储器装置112读取备份的第二映射表和/或备份的第三映射表来执行恢复。第一控制块133可被构造为将读取的第二映射表和/或第三映射表加载至装置存储器区121和/或持久存储器区122上。例如,第一控制块133可被构造为通过从第一非易失性存储器装置111和/或第二非易失性存储器装置112读取由装置存储器区121备份的数据和/或将读取的数据加载至装置存储器区121上来执行恢复。
图8示出了包括管理持久存储器区122的控制器130的示例实施例。参照图1和图8,作为示例,控制器130可被构造为将持久存储器区122划分为区段SEG1至SEG8。控制器130可被构造为管理作为第一区的来自第一区段SEG1至第八区段SEG8中的可固定其位置的第一区段SEG1。控制器130可被构造为管理作为第二区的其余区段SEG2至SEG8。基于突然断电(SPO)事件,控制器130可被构造为备份存储在作为第一区123的第一区段SEG1中的数据。例如,第一区段SEG1可具有持久存储器区122的最低物理地址或最高物理地址。另外,控制器130可被构造为还备份来自存储在第二区124的第二区段SEG2至第八区段SEG8当中的属于选择区125的第三区段SEG3至第五区段SEG5中的数据。例如,控制器130可被构造为存储选择区125的第三区段SEG3至第五区段SEG5的地址。当发生突然断电(SPO)事件时,控制器130可被构造为基于存储的地址备份选择区125的第三区段SEG3至第五区段SEG5的数据。
在一些示例实施例中,作为第一区123的第一区段SEG1可被构造为存储日志区的超级块。超级块可包括关于日志区的信息,诸如存储数据的位置和存储的数据的长度。存储超级块的位置可固定,并且控制器130可备份存储超级块的固定的第一区123的数据。
在一些示例实施例中,第二区124可被构造为存储日志区的用户数据和/或元数据。控制器130可被构造为仅针对第二区124的选择区125确保非易失性。当外部主机装置写入第二区124中的数据的大小大于选择区125的容量时,针对一些部分的数据无法确保非易失性。为了防止或减少这个问题,根据一些本发明构思的一些示例实施例的存储装置100可支持清空请求。当从外部主机装置接收到清空请求时,控制器130可被构造为执行用于确保从外部主机装置提供并且写入第二区124中的数据的非易失性的操作。
图9示出了包括处理清空请求的存储装置100的示例实施例。图10示出了包括基于清空请求而被管理的持久存储器区122的示例实施例。参照图9和图10,可从外部主机装置接收清空请求。基于清空请求,第一控制块133可被构造为从持久存储器区122读取数据。例如,头指针可指示与选择区125的头部对应的第三区段SEG3,尾指针可指示与选择区125的尾部对应的第五区段SEG5,反之亦然。第一控制块133可被构造为从由头指针和/或尾指针指示的区段(即,从第三区段SEG3至第五区段SEG5)和/或头指针与尾指针之间的一个或更多个区段读取数据。写入日志区中的用户数据可包括数据和逻辑块地址(LBA)。第一控制块133可被构造为将逻辑块地址(LBA)转换为物理块地址(PBA)。第一控制块133可被构造为基于物理块地址(PBA)将用户数据写入第一非易失性存储器装置111或第二非易失性存储器装置112中。即,响应于清空请求,由选择区125的头指针指示的第三区段SEG3可被选为清空区126,并且清空区126的数据可被清空至第一非易失性存储器装置111或第二非易失性存储器装置112。因此,可确保第三区段SEG3的数据的非易失性。
还如图9的示例实施例中所示的,在执行清空操作之后,控制器130可被构造为从选择区125去除清空区126的第三区段SEG3。因此,可更新头指针以指示第四区段SEG4。控制器130可被构造为在选择区125中包括选择区125的尾指针之后的第六区段SEG6。因此,尾指针可更新为包括第六区段SEG6。控制器130可被构造为在第二区124中按照环缓冲方式分配选择区125。例如,控制器130可被构造为将存储在选择区125的至少两个区段中的具有最低地址的区段(或者由头指针指示的区段)中的数据写入非易失性存储器装置111或112中和/或取消选择具有最低地址的区段。控制器130还可被构造为选择与连续地址(即,与选择区125的至少两个区段的地址中的最高地址连续的地址和/或高于最高地址的地址)的区对应的区段(例如,由尾指针指示的区段)作为选择区125。即,当选择区125的容量不足时,控制器130可被构造为清空与选择区125的头部对应的数据和/或移动选择区125。因此,可确保通过外部主机装置写入的数据的非易失性。例如,根据清空请求的第一非易失性存储器装置111和/或第二非易失性存储器装置112的写入操作可具有高优先级。可早于任何其它写入操作和/或读取操作首先执行清空请求的写入操作。基于首先执行清空请求的写入操作,控制器130可被构造为减少会由于外部主机装置对日志区执行写入操作而发生的等待时间。
图11示出包括基于逻辑块地址(LBA)处理读取请求的控制器130的示例实施例。参照图3和图11,逻辑块地址(LBA)可指示向其分配逻辑块地址(LBA)的第一持久存储器区(PMR)的容量11。第一控制块133可被构造为基于第二映射表将逻辑块地址(LBA)转换为物理地址(PA)。第一控制块133可被构造为基于物理地址(PA)从持久存储器区122读取数据。
图12示出了包括计算系统200的示例实施例。参照图3和图12,计算系统200可包括处理器210、主存储器220、根复合体230和/或存储装置240。处理器210可驱动操作系统和/或应用。处理器210可包括中央处理单元(CPU)和/或应用处理器。主存储器220可为被处理器210使用的系统存储器。主存储器220可包括动态随机存取存储器。处理器210可被构造为将存储在存储装置240中的用户数据和/或元数据(例如,文件系统)加载至主存储器220上和/或使用它们。根复合体230可被构造为提供允许处理器210控制外围装置的装置。存储装置240可连接至根复合体230。存储装置240可包括参照图1至图11描述的存储装置100。当从处理器210观看时,存储装置240可包括向其分配逻辑块地址(LBA)的用户区241、向其分配逻辑块地址(LBA)的持久存储器区242(下文中,称作“第一持久存储器区”)和/或存储器映射的持久存储器区243(下文中,称作“第二持久存储器区”)。
图13示出了包括在处理器210上驱动的第一应用更新第一用户数据D1的情况的示例实施例。参照图12和图13,在处理器210上驱动的第一应用、第二应用和/或第三应用可被构造为分别执行第一线程T1、第二线程T2和第三线程T3。第一应用的第一线程T1可被构造为修改存储在存储装置240中的第一用户数据D1。在这种情况下,如参照图5描述的,第一应用可被构造为将修改的第一用户数据D1直接写入存储装置240的第一持久存储器区242(即,日志区)而不是主存储器220中。例如,第一应用可被构造为直接写入第一用户数据D1,和/或调用在内核上驱动的日志驱动器,其可被称作和被构造为写入第一使用数据D1。第一持久存储器区242可为存储器映射区。因此,在处理器210上驱动的第一应用或日志驱动器可被构造为将第一用户数据D1以字节为单位直接写入第一持久存储器区242中。例如,可将第一用户数据D1写入作为日志区的第一持久存储器区242中作为第一业务TX1的一部分。基于被修改的第一用户数据D1,可修改与第一用户数据D1关联的文件系统。日志驱动器可被构造为将文件系统的修改数据存储在主存储器220中作为第一元数据M1。日志驱动器可被构造为在主存储器220的日志区中存储包括关于文件系统的修改的信息的第一位图B1和/或管理第一位图B1。基于存储在主存储器220中的指示文件系统的修改的第一元数据M1,日志驱动器可被构造为在第一位图B1记录指示第一元数据M1的位置的信息。
图14示出了包括第一用户数据D1、第一元数据M1和第一位图B1的示例实施例。参照图12和图14,构造计算系统200管理的数据的单位可为块(例如,逻辑块)。计算系统200可被构造为以块为单位对存储装置240的用户区241执行写入操作和/或读取操作。例如,第一用户数据D1可对应于四个块。当处理器210的第一应用请求访问第一用户数据D1时,第一用户数据D1的四个块可从存储装置240的用户区241被加载至主存储器220。处理器210的第一应用可被构造为以字节为单位访问加载至主存储器220上的第一用户数据D1。例如,处理器210的第一应用可被构造为以字节为单位修改第一用户数据D1。第一用户数据D1的以斜线外观显示的部分(“斜线部分”)可与通过处理器210的第一应用修改的部分对应。基于修改第一用户数据D1的处理器210的第一应用,可将第一用户数据D1写入作为日志区的第一持久存储器区242中。基于被修改的第一用户数据D1,也可修改与第一用户数据D1关联的文件系统FS。例如,可以以块为单位管理文件系统FS。文件系统FS的数据可以以块为单位进行管理,但是一小部分可对应于第一用户数据D1。在文件系统FS的块中,斜线部分可对应于修改的部分。在文件系统FS的块中,修改的部分可对应于四个子块。
在一些示例实施例中,处理器210的日志驱动器可被构造为仅允许文件系统FS的块中的四个修改的子块等待提交作为第一元数据M1,而不是让文件系统FS的整个块等待提交。指示第一元数据M1在文件系统FS的块中的位置的信息可被记录在第一位图B1。例如,第一位图B1可包括与属于文件系统FS的块的修改单元的数量(例如,一个或多个字节)一样多的比特。与块中的位置对应的各个比特可设为指示块的修改单元是否被修改的值。在一些示例实施例中,修改单元被识别为基于包括未被提交至非易失性存储的修改单元的写入请求而修改,并且被识别为基于不存在包括未被提交至非易失性存储的写入请求而不被修改。在一些示例实施例中,修改单元被识别为基于包括与用于修改单元的已经被提交至非易失性存储的数据不同的用于修改单元的数据的写入请求而修改,并且被识别为基于不存在包括与用于修改单元的已经被提交至非易失性存储的数据不同的用于修改单元的数据的写入请求(使得可忽略包括与用于修改单元的已经被提交至非易失性存储的数据相同的用于修改单元的数据的写入请求)而不被修改。第一位图B1中的比特的值可指示文件系统FS的块的修改的部分。
在一些示例实施例中,控制器(例如,日志驱动器)可被构造为针对作为块单位可访问的用户数据将第二区暴露给外部主机装置,并且将指示修改第二区的数据的日志存储在第一区中,其中日志指示待提交至非易失性存储器装置的块单位的子块,并且通过提交由日志指示的块单位的子块将第二区清空至非易失性存储器存储。例如,不是让文件系统FS的整个块等待提交,而是仅日志驱动器可被构造为使与文件系统FS的块的修改的部分对应的第一元数据M1和指示块中的第一元数据M1的位置的第一位图B1等待提交。因此,可减少在执行提交时要写入作为日志区的第一持久存储器区242中的数据量和/或可减少执行提交的时间。另外,当修改第一用户数据D1时,可将第一用户数据D1(例如,立即或迅速地)写入作为日志区的第一持久存储器区242中,而不等待提交。因此,因为在执行提交时可能没必要写入第一用户数据D1,因此可减少用于提交的数据量和/或可减少执行提交的时间。
图15示出了包括诸如图13中所示的修改第二用户数据D2的第二应用的示例实施例。参照图12、图13和图15,第二应用可被构造为修改第二用户数据D2。如参照图5描述的,第二应用可被构造为将修改的第二用户数据D2(例如,立即或迅速地)写入作为日志区的第一持久存储器区242中作为一部分第一业务TX1。基于被修改的第二用户数据D2,如参照图14描述的,处理器210的日志驱动器可被构造为将文件系统的与第二用户数据D2对应的修改数据存储在主存储器220中作为第二元数据M2。另外,处理器210的日志驱动器可被构造为在第一位图B1记录第二元数据M2的位置。
图16示出了图15之后的包括分别修改第三用户数据D3和第四用户数据D4的第一应用和第三应用的示例实施例。参照图12、图15和图16,第一应用可被构造为修改第三用户数据D3。如参照图5描述的,第一应用可被构造为将修改的第三用户数据D3(例如,立即或迅速地)写入作为日志区的第一持久存储器区242中作为一部分第一业务TX1。基于被修改的第三用户数据D3,如参照图14描述的,处理器210的日志驱动器可被构造为将文件系统的与第三用户数据D3对应的修改数据存储在主存储器220中作为第三元数据M3。另外,处理器210的日志驱动器可被构造为在第一位图B1记录第三元数据M3的位置。第三应用可被构造为修改第四用户数据D4。如参照图5描述的,第三应用可被构造为将修改的第四用户数据D4(例如,立即或迅速地)写入作为日志区的第一持久存储器区242中作为一部分第一业务TX1。基于被修改的第四用户数据D4,如参照图14描述的,处理器210的日志驱动器可被构造为将文件系统的与第四用户数据D4对应的修改数据存储在主存储器220中作为第四元数据M4。另外,处理器210的日志驱动器可被构造为在第一位图B1记录第四元数据M4的位置。
图17示出了图16之后的包括在计算系统200中执行的提交的示例实施例。参照图12、图16和图17,基于达到由日志驱动器指示的阈的第一业务TX1的数据量和/或基于请求同步的第一应用至第三应用中的任一个,可执行提交。在执行提交时,可阻止第一应用至第三应用的用户数据的修改。如参照图5描述的,处理器210的日志驱动器可被构造为将存储在主存储器220中的第一元数据M1至第四元数据M4写入作为日志区的第一持久存储器区242中作为一部分第一业务TX1。另外,处理器210的日志驱动器可将存储在主存储器220中作为第二位图B2的第一位图B1写入作为日志区的第一持久存储器区242中作为一部分第一业务TX1。处理器210的日志驱动器可被构造为将可指示完成提交的提交标记CM写入作为日志区的第一持久存储器区242中作为一部分第一业务TX1。基于添加的提交标记CM,可完成第一业务TX1。在实施例中,随着提交完成,可使第一位图B1初始化。这样,可仅通过写入第一元数据M1至第四元数据M4和添加提交标记CM的操作来完成提交,而不用提交整个块。因此,可减少要在提交期间写入的数据量和/或可减少执行提交的时间和/或可增加存储装置240和/或计算系统200操作的速度。
图18示出了图17之后的包括修改第五用户数据D5至第七用户数据D7的第一应用至第三应用的示例实施例。参照图12、图17和图18,如参照图5描述的,第五用户数据D5至第七用户数据D7可写入作为日志区的第一持久存储器区242中作为一部分第二业务TX2。可将分别与第五用户数据D5至第七用户数据D7对应的第五元数据M5至第七元数据M7存储在主存储器220中。第五元数据M5至第七元数据M7的位置可记录在第一位图B1。如上所述,根据一些本发明构思的一些示例实施例的存储装置100或240可被构造为将动态随机存取存储器120的一部分存储容量暴露于处理器210作为字节可寻址存储器映射区(例如,持久存储器区122或242)。因此,如参照图5描述的,处理器210的应用或操作系统可被构造为将修改的用户数据直接写入持久存储器区122或242。通过直接写入修改的用户数据和通过仅允许文件系统的修改数据作为元数据等待提交,可减少用于计算系统200的提交的数据量,和/或可减少执行提交的时间。如参照图11描述的,在突然断电(SPO)事件之后恢复持久存储器区122或243的数据之后,处理器210的日志驱动器可被构造为读取提交的业务(例如,TX1),以恢复文件系统。可替代地或额外地,当将提交的业务TX1应用于用户区241时,处理器210的日志驱动器可被构造为从持久存储器区122或243读取提交的业务TX1。可基于逻辑块地址(LBA)执行在持久存储器区122或243中执行的读取操作。将MMIO模式与PCIe或NVMe的基于块的I/O进行比较,随着数据量增加,以块为单位执行读取操作的速度可变得高于执行MMIO的读取操作的速度。通过允许基于MMIO的写入操作和/或相对于持久存储器区122的基于块的读取操作,可进一步增大读取提交的业务TX1的速度。
在本文所给出的一些示例实施例中,通过利用术语“第一”、“第二”、“第三”等来描述存储装置100的一些部件。然而,术语“第一”、“第二”、“第三”等可用于将部件彼此区分开,而不限制一些本发明构思。例如,除明确陈述之外,术语“第一”、“第二”、“第三”等可不旨在指示次序或任何形式的数字含义。相反,诸如“第一”、“第二”、“第三”等的术语仅用作将一个元件与另一元件进行区分的标签,而不必意指标签标记的元件之间和签标记的元件之中的次序、等级等。作为示例,包括“第一”元件和“第二”元件的排列可以可替代性地分别描述为“第二”元件和“第一”元件。所有合理和逻辑上是可能的并且作为与其他陈述不矛盾的解释的这样的解释均意图包括在本公开中,其范围将被理解为仅受权利要求限制。
如附图所示,通过利用块来描述根据一些本发明构思的一些示例实施例的一些部件。所述块可利用硬件装置(诸如集成电路(IC)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和复杂可编程逻辑装置(CPLD))、硬件装置中驱动的固件、诸如应用的软件或者硬件装置与软件的组合来实现。另外,所述块可包括利用集成电路中的半导体元件实施的电路或知识产权(IP)。另外,本文给出的一些示例实施例可表现出这些部件的示例组织。在不脱离本公开的范围的情况下,其它示例实施例可包括部件的不同组织,诸如例如重命名、重新排列、添加、分区、复制、合并和/或删除部件、部件集以及它们之间的关系。所有在技术上合理和逻辑上可能的且不与其它陈述相矛盾的变化意图包括在本公开中,其范围将被理解为仅受权利要求限制。
根据一些本发明构思的一些示例实施例,存储装置可设置允许基于块的访问和存储器映射访问的存储区。存储区可被构造为支持操作系统的提交。因此,存储装置和存储装置的操作方法可能能够减少等待时间和/或执行提交的时间。
虽然参照一些本发明构思的一些示例实施例描述了一些本发明构思,但是对本领域普通技术人员而言可显而易见的是,在不脱离如所附权利要求中阐述的一些本发明构思的精神和范围的情况下,可对其作出各种改变和修改。
Claims (20)
1.一种存储装置,包括:
非易失性存储器装置;
随机存取存储器,其包括第一区和第二区;以及
控制器,其被构造为,
使用所述随机存取存储器的第一区作为用于指示所述第二区的数据的修改的日志的日志存储器,
将所述非易失性存储器装置的用户区暴露于外部主机装置作为块单位的第一访问区,以及
将所述随机存取存储器的第二区暴露于所述外部主机装置作为所述块单位的第二访问区和字节单位的第三访问区二者。
2.根据权利要求1所述的存储装置,其中,所述控制器被构造为支持关于所述第二区的所述字节单位的写入操作和关于所述第二区的所述块单位的读取操作。
3.根据权利要求2所述的存储装置,其中,所述控制器被构造为,
基于所述存储装置的正常模式来抑制关于所述第二区的所述块单位的读取操作,以及
基于所述存储装置的恢复模式来抑制关于所述第二区的所述字节单位的写入操作。
4.根据权利要求1所述的存储装置,其中,所述控制器被构造为:基于从所述外部主机装置接收到的请求,
基于所述请求包括所述用户区中的逻辑块地址,将所述请求提供至所述非易失性存储器装置,以及
基于所述请求包括所述第二区中的逻辑块地址,将所述请求提供至所述第二区。
5.根据权利要求1所述的存储装置,其中,所述控制器被构造为:基于从所述外部主机装置接收到的请求,
基于所述请求包括所述第二区中的逻辑块地址,将所述逻辑块地址转换为所述第二区的各个物理地址当中的与所述逻辑块地址对应的第一物理地址,以及
基于所述请求包括所述第二区中的虚拟地址,将所述虚拟地址转换为所述第二区的各个物理地址当中的与所述虚拟地址对应的第二物理地址。
6.根据权利要求1所述的存储装置,其中,所述控制器还被构造为,
基于来自所述外部主机装置的电力的中断而将存储在所述第二区中的数据备份至所述非易失性存储器装置,以及
基于来自所述外部主机装置的电力的恢复而将所述数据加载至所述第二区。
7.根据权利要求6所述的存储装置,还包括辅助电源,所述辅助电源包括钽电容器或超级电容器,其中,所述辅助电源被构造为,
当通过所述外部主机装置供电时被充电,以及
在来自所述外部主机装置的电力的中断期间将电力供应至所述存储装置。
8.根据权利要求6所述的存储装置,
其中,所述非易失性存储器装置还包括不暴露于所述外部主机装置的超额配置区,
其中,所述控制器还被构造为将存储在所述第二区中的数据备份至所述用户区的可用存储空间或者所述非易失性存储器装置的超额配置区。
9.根据权利要求6所述的存储装置,
其中,所述第二区包括各个区段,并且
其中,所述控制器被构造为:通过将位于从所述第二区的各个区段中选择的区段中的数据存储在所述非易失性存储器装置中,来备份存储在所述第二区中的数据。
10.根据权利要求9所述的存储装置,
其中,所述控制器被构造为,
从所述第二区的各个区段当中固定地选择具有最低地址或最高地址的第一区段,以及
从所述第二区的各个区段中的除所述第一区段之外的其余区段当中选择具有连续地址的至少两个第二区段,
其中,所述至少两个第二区段的地址可变。
11.根据权利要求10所述的存储装置,其中,所述控制器被构造为基于所述外部主机装置的请求选择所述至少两个第二区段的地址。
12.根据权利要求11所述的存储装置,其中,所述控制器被构造为,
将存储在所述至少两个第二区段当中的具有最低地址的区段中的数据写入所述非易失性存储器装置中,
取消对所述至少两个第二区段当中的具有最低地址的区段的选择,以及
选择对应于一地址的区段,所述一地址与所述至少两个第二区段的地址中的最高地址连续且高于所述至少两个第二区段的最高地址。
13.根据权利要求12所述的存储装置,
其中,所述数据包括逻辑块地址,并且
其中,所述控制器还被构造为,
将所述数据的逻辑块地址转换为所述非易失性存储器装置的物理块地址,以及
基于所述物理块地址将所述数据写入所述非易失性存储器装置中。
14.根据权利要求10所述的存储装置,其中,所述控制器还被构造为按照环缓冲方式选择所述其余区段中的所述至少两个第二区段。
15.根据权利要求1所述的存储装置,其中,所述控制器还被构造为将所述第二区提供至所述外部主机装置作为日志区。
16.一种存储装置,包括:
非易失性存储器装置;
动态随机存取存储器,其包括第一区和具有一组区段的第二区;以及
控制器,其被构造为,
使用所述第一区作为用于指示所述第二区的数据的修改的日志的日志存储器,
将所述非易失性存储器装置的用户区暴露于外部主机装置作为块单位的第一访问区,
选择所述一组区段中的第一区段,并且从所述一组区段中的除所述第一区段之外的其余区段中选择至少两个第二区段,以及
为所选择的区段提供非易失性,
其中,所述至少两个第二区段在所述其余区段中按照环缓冲方式动态地改变。
17.根据权利要求16所述的存储装置,其中,所述控制器还被构造为,
基于来自所述外部主机装置的电力的中断将存储在所选择的区段中的数据备份至所述非易失性存储器装置,以及
基于来自所述外部主机装置的电力的恢复将所述数据加载至所选择的区段。
18.根据权利要求16所述的存储装置,其中,所述控制器还被构造为,
提供所述第一区段作为所述外部主机装置的日志区的超级块的存储空间,以及
提供所述至少两个第二区段作为所述外部主机装置的日志区的至少一个业务的存储空间。
19.根据权利要求16所述的存储装置,其中,所述控制器还被构造为将所述第二区暴露于所述外部主机装置作为所述块单位的第二访问区和字节单位的第三访问区二者。
20.一种存储装置的操作方法,所述存储装置包括控制器、非易失性存储器装置和动态随机存取存储器,所述方法包括步骤:
通过所述控制器将所述非易失性存储器装置的一部分存储空间提供至外部主机装置作为用户区;
通过所述控制器将所述动态随机存取存储器的一部分存储空间提供至所述外部主机装置作为日志区,允许字节单位的写入操作和块单位的读取操作,所述日志区包括区段;以及
通过所述控制器向所述区段当中的第一区段和至少两个第二区段提供非易失性,所述第一区段固定,并且所述至少两个第二区段动态地改变。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20180113169 | 2018-09-20 | ||
KR10-2018-0113169 | 2018-09-20 | ||
KR1020190038028A KR20200034560A (ko) | 2018-09-20 | 2019-04-01 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
KR10-2019-0038028 | 2019-04-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110928487A true CN110928487A (zh) | 2020-03-27 |
Family
ID=67810560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910890993.7A Pending CN110928487A (zh) | 2018-09-20 | 2019-09-20 | 存储装置和存储装置的操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11301331B2 (zh) |
EP (1) | EP3627328A1 (zh) |
CN (1) | CN110928487A (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10776009B2 (en) * | 2019-01-03 | 2020-09-15 | International Business Machines Corporation | Journaling on an appendable non-volatile memory module |
US11645241B2 (en) * | 2019-09-13 | 2023-05-09 | Oracle International Corporation | Persistent memory file store for directly mapped persistent memory database |
CN113467698A (zh) * | 2020-03-30 | 2021-10-01 | 珠海全志科技股份有限公司 | 基于文件系统的写方法、装置、计算机设备和存储介质 |
US11520523B2 (en) | 2020-05-26 | 2022-12-06 | Western Digital Technologies, Inc. | Data integrity protection of ZNS needs |
US11561717B2 (en) * | 2020-05-26 | 2023-01-24 | Western Digital Technologies, Inc. | Data integrity protection of SSDs utilizing streams |
US20210389885A1 (en) * | 2020-06-16 | 2021-12-16 | Western Digital Technologies, Inc. | Fast Recovery For Persistent Memory Region (PMR) of a Data Storage Device |
US11704029B2 (en) * | 2021-04-16 | 2023-07-18 | Micron Technology, Inc. | Elastic persistent memory regions |
US11861222B2 (en) * | 2021-05-17 | 2024-01-02 | Micron Technology, Inc. | Object management in tiered memory systems |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105745627A (zh) * | 2013-08-14 | 2016-07-06 | 思凯拉有限责任公司 | 用于非易失性存储器存储设备的地址转换 |
US20160342487A1 (en) * | 2014-02-20 | 2016-11-24 | Rambus Inc. | High performance persistent memory |
US20170308464A1 (en) * | 2016-04-21 | 2017-10-26 | JooYoung HWANG | Method of accessing storage device including nonvolatile memory device and controller |
US20180018171A1 (en) * | 2014-04-24 | 2018-01-18 | Xitore, Inc. | Apparatus, system, and method of byte addressable and block addressable storage and retrival of data to and from non-volatile storage memory |
CN107632939A (zh) * | 2016-07-19 | 2018-01-26 | 西部数据技术公司 | 用于存储装置的映射表 |
CN108108308A (zh) * | 2016-11-24 | 2018-06-01 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100501414B1 (ko) | 2003-11-28 | 2005-07-18 | 한국전자통신연구원 | 파일 시스템의 메타 데이터 회복을 위한 로깅과 회복 방법및 장치 |
US7584222B1 (en) * | 2004-06-01 | 2009-09-01 | Sanbolic, Inc. | Methods and apparatus facilitating access to shared storage among multiple computers |
US7613750B2 (en) | 2006-05-29 | 2009-11-03 | Microsoft Corporation | Creating frequent application-consistent backups efficiently |
US9460177B1 (en) | 2012-09-25 | 2016-10-04 | Emc Corporation | Managing updating of metadata of file systems |
US9311333B1 (en) | 2012-12-28 | 2016-04-12 | Emc Corporation | Managing files of file systems |
CN105556462A (zh) | 2013-07-29 | 2016-05-04 | 惠普发展公司,有限责任合伙企业 | 写入文件和文件元数据 |
CN105612503B (zh) | 2013-08-09 | 2018-10-23 | 桑迪士克科技有限责任公司 | 持久性数据结构 |
KR101584760B1 (ko) | 2014-06-30 | 2016-01-22 | 성균관대학교산학협력단 | 순서 모드 저널링 파일 시스템을 위한 블록 그룹 단위 저널링 방법 및 장치 |
KR20160004486A (ko) | 2014-07-02 | 2016-01-13 | 지인정보기술 주식회사 | 파일시스템의 신뢰성을 보장하기 위한 트랜잭션 기반의 파일시스템 메타데이터 관리 방법 |
US20170230180A1 (en) * | 2014-10-29 | 2017-08-10 | Hewlett Packard Enterprise Development Lp | Including node and process identifiers in a transaction |
US20160291887A1 (en) | 2015-03-30 | 2016-10-06 | Kabushiki Kaisha Toshiba | Solid-state drive with non-volatile random access memory |
US9864774B2 (en) | 2015-06-23 | 2018-01-09 | International Business Machines Corporation | Granular buffering of metadata changes for journaling file systems |
US10108542B2 (en) | 2016-01-04 | 2018-10-23 | Avalanche Technology, Inc. | Serial link storage interface (SLSI) hybrid block storage |
US10318175B2 (en) | 2017-03-07 | 2019-06-11 | Samsung Electronics Co., Ltd. | SSD with heterogeneous NVM types |
-
2019
- 2019-08-01 US US16/529,320 patent/US11301331B2/en active Active
- 2019-08-30 EP EP19194786.0A patent/EP3627328A1/en active Pending
- 2019-09-20 CN CN201910890993.7A patent/CN110928487A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105745627A (zh) * | 2013-08-14 | 2016-07-06 | 思凯拉有限责任公司 | 用于非易失性存储器存储设备的地址转换 |
US20160342487A1 (en) * | 2014-02-20 | 2016-11-24 | Rambus Inc. | High performance persistent memory |
US20180018171A1 (en) * | 2014-04-24 | 2018-01-18 | Xitore, Inc. | Apparatus, system, and method of byte addressable and block addressable storage and retrival of data to and from non-volatile storage memory |
US20170308464A1 (en) * | 2016-04-21 | 2017-10-26 | JooYoung HWANG | Method of accessing storage device including nonvolatile memory device and controller |
CN107632939A (zh) * | 2016-07-19 | 2018-01-26 | 西部数据技术公司 | 用于存储装置的映射表 |
CN108108308A (zh) * | 2016-11-24 | 2018-06-01 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200097367A1 (en) | 2020-03-26 |
EP3627328A1 (en) | 2020-03-25 |
US11301331B2 (en) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144888B (zh) | 存储器系统 | |
US11301331B2 (en) | Storage device and operating method of storage device | |
CN110678836B (zh) | 用于键值存储的持久性存储器 | |
US8489854B1 (en) | Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table | |
TWI566097B (zh) | 邏輯區塊位址位元映射之使用 | |
US10061710B2 (en) | Storage device | |
CN110806984B (zh) | 在存储器系统中搜索有效数据的设备和方法 | |
US9141302B2 (en) | Snapshots in a flash memory storage system | |
CN110928807B (zh) | 用于检查存储器系统中的有效数据的设备和方法 | |
US9009396B2 (en) | Physically addressed solid state disk employing magnetic random access memory (MRAM) | |
US10310764B2 (en) | Semiconductor memory device and storage apparatus comprising semiconductor memory device | |
US20120246397A1 (en) | Storage device management device and method for managing storage device | |
KR20130066525A (ko) | 데이터 이용가능성의 마운트타임 조정 | |
US10120583B2 (en) | Performance penalty avoidance for solid state drive | |
TW202230110A (zh) | 記憶體系統及控制方法 | |
JP7475989B2 (ja) | メモリシステムおよび制御方法 | |
US20140047161A1 (en) | System Employing MRAM and Physically Addressed Solid State Disk | |
JP2013196155A (ja) | メモリシステム | |
KR20200034560A (ko) | 스토리지 장치 및 스토리지 장치의 동작 방법 | |
US12039193B2 (en) | Apparatus, method and computer program for managing memory page updates within non-volatile memory | |
US12105621B2 (en) | Logical to physical (L2P) address mapping with fast L2P table load times | |
US20240256465A1 (en) | Method of handling trim command in flash memory and related memory controller and storage system thereof | |
US10817215B2 (en) | Data storage system and control method for non-volatile memory | |
US20230236964A1 (en) | Storage controller deallocating memory block, method of operating the same, and method of operating storage device including the same | |
JP2024043063A (ja) | メモリシステムおよび制御方法 |
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 |