CN107844265B - 操作计算***的方法以及操作计算***中的存储器控制器的方法 - Google Patents
操作计算***的方法以及操作计算***中的存储器控制器的方法 Download PDFInfo
- Publication number
- CN107844265B CN107844265B CN201710822187.7A CN201710822187A CN107844265B CN 107844265 B CN107844265 B CN 107844265B CN 201710822187 A CN201710822187 A CN 201710822187A CN 107844265 B CN107844265 B CN 107844265B
- Authority
- CN
- China
- Prior art keywords
- data
- buffer
- size
- host
- 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.)
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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
- 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
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- 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/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0647—Migration 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/0656—Data buffering 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/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]
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)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
提供了一种操作存储器控制器的方法和操作包括存储器控制器的计算***的方法。根据本发明构思的示例实施例的操作存储器控制器的方法包括:通过存储器控制器按顺序地从主机接收每一个均具有第一尺寸的第一数据段;通过存储器控制器在缓冲器中按顺序地存储第一数据段,直到存储在存储器控制器中所包括的缓冲器中的数据当中的被改变的数据的尺寸总和为第二尺寸;以及通过存储器控制器将具有第二尺寸的被改变的数据编写在非易失性存储器的存储器空间中,作为第二数据段。
Description
相关申请的交叉引用
本申请要求于2016年9月20日提交的韩国专利申请No.10-2016-0119990的优先权,该申请的全部内容以引用方式并入本文中。
技术领域
本发明构思的实施例涉及操作存储器控制器的方法,并且更具体地涉及使用存储装置缓冲器和非易失性存储器之间的存储器地址映射将数据编写(programming)(或写入)到非易失性存储器中的方法。
背景技术
存储器通常包括易失性存储器和非易失性存储器。当外部电压的供应停止时,存储在易失性存储器中的数据丢失,而非易失性存储器具有即使外部电压的供应停止也会保留存储在非易失性存储器中的数据的优点。
在计算***中,使用易失性存储器来处理需要高速处理的数据,但是当需要保留数据时,将数据存储在非易失性存储器中。
用于在主机中处理数据的单位不同于用于在非易失性存储器中存储数据的单位,并因此,当与在非易失性存储器装置中处理的数据相比尺寸较小的数据被存储在非易失性存储器中时,比在主机中所必要的更频繁地发生多个写入请求。因此,存在使用主机的处理器来处理大量指令的负担,并且非易失性存储器可能由于耗尽而具有寿命缩短的问题。
发明内容
在一个实施例中,本发明的构思提供一种操作存储装置中的存储器控制器的方法,其中所述存储器控制器包括存储器处理器和缓冲器。所述方法包括:在所述存储器处理器的控制下,按顺序地从主机接收第一数据段,其中每一个第一数据段具有第一尺寸;在所述缓冲器中按顺序地存储所接收到的第一数据段,直到所接收的第一数据段的累积尺寸达到第二尺寸;以及将具有第二尺寸且包括所存储的第一数据段的第二数据段编写在非易失性存储器中。
在另一实施例中,本发明的构思提供一种操作计算***的方法,计算***包括主机和存储装置,存储装置包括包含缓冲器的存储器控制器和非易失性存储器。所述方法包括:按顺序地将第一数据段从所述主机传送到所述存储装置,其中每一个第一数据段具有第一尺寸;以及在所述缓冲器中按顺序地且暂时地存储所述第一数据段,直到所存储的第一数据段的累积尺寸等于或超过第二尺寸,其中所述第一尺寸对应于针对所述存储装置从所述主机接收到的数据的处理单位,或者针对在将所述第一数据段传送到所述存储装置之前由主机暂时存储的数据的处理单位,并且所述第二尺寸是针对由所述存储器控制器处理的数据的处理单位,或针对在所述非易失性存储器中编写的数据的处理单位。
在另一实施例中,本发明的构思提供一种操作计算***的方法,计算***包括主机和存储装置,存储装置包括包含缓冲器的存储器控制器和非易失性存储器(NVM)。所述方法包括:在所述主机中生成待被编写到所述NVM的程序数据;如果所述程序数据的尺寸至少等于第二尺寸,则使用由所述主机提供的装置驱动器执行数据块输出操作,以将所述程序数据的数据块传送到所述存储装置,并且之后将所述数据块编写到所述NVM中;如果所述程序数据的尺寸比第二尺寸小,则按顺序地将第一数据段从主机传送到存储装置,其中每一个第一数据段具有小于第二尺寸的第一尺寸;以及在所述缓冲器中按顺序地且暂时地存储所述第一数据段,直到所存储的第一数据段的累积尺寸等于或超过第二尺寸,其中所述第一尺寸对应于针对由所述存储装置从所述主机接收到的数据的处理单位,或者针对在将所述第一数据段传送到所述存储装置之前由主机暂时存储的数据的处理单位,并且所述第二尺寸是针对在所述非易失性存储器中编写的数据的处理单位。
附图说明
图1是根据本发明构思的实施例的计算***的框图;
图2是进一步示出图1所示的存储器控制器的一个示例的框图;
图3是进一步示出图1和图2所示的存储器接口和主机接口的一个示例的框图;
图4示出了根据本发明构思的实施例的缓冲器地址-非易失性存储器地址映射表;
图5是示出根据本发明构思的示例性实施例的在非易失性存储器的存储器空间中编写第一数据段的过程的概念图;以及
图6是根据本发明构思的示例性实施例的概括主机在非易失性存储器中编写数据的方法的流程图。
具体实施方式
图1是根据本发明构思的示例性实施例的计算***100的框图。参照图1,计算***100通常可包括通过存储总线160连接的主机120和存储装置140。计算***100可以是服务器-客户机***(server-client system)、个人计算机(PC)或移动计算装置,如移动电话、平板电脑、物联网(IoT)装置或万联网(IoE)装置。
图1所示的主机120包括通过主机总线250相互连接的主机处理器210、主机存储器220、输入/输出(I/O)接口230和存储器接口240。
在本发明构思的某些实施例中,主机120可按照存储器映射的输入/输出(I/O)方法操作。例如,此后被假设为示意性示例的存储器映射I/O方法可以将与构成的I/O接口230相关联的地址空间和/或主机存储器220的地址空间作为单个存储空间来进行操纵(例如,写入、读取、指定、分配、解除分配、分派、配置和/或安排存储空间),而不考虑物理上的设置或分离。因此,主机120可以将与I/O接口230相关联的(多个)存储器资源(可能包括一个或多个存储器寄存器)识别为整个存储器的完整的部分,并可因此对与整个存储器地址空间内的特定数据相对应的地址进行分配/解除分配。
此处,术语“整个存储器”可指包含在主机120中的可访问的存储器资源,但是具体地排除在存储装置140中所包含的存储器资源。术语“整个存储器地址空间”可指与整个存储器对应的地址空间,并且具体地至少包括用于访问主机存储器220的地址空间以及用于访问I/O接口230的地址空间。
如上所述,主机120通过存储总线160连接到存储装置140,其中例如,存储总线160可以是***组件互连(PCI)总线。
主机处理器210通常可控制主机120的操作。例如,主机处理器210可控制主机存储器220、I/O接口230、存储器接口240和/或主机总线250的操作和/或它们之间的互操作。
主机处理器210可利用存储器控制器300将第一数据段(例如,“Di”,其中‘i’是自然数)编写到非易失性存储器(NVM)400。在此上下文中,“数据段”可以指一组数据位。
主机处理器210可将第一数据段Di中的每一个按顺序地传送到存储装置140。假设第一数据段Di中的每一个具有第一尺寸。这里,术语“第一尺寸”可以指响应于主机指令所处理的(例如,暂时存储的)数据的基本(或最小)单位尺寸(例如,主机的“处理单位”尺寸,其与“将数据段传送到存储装置140”以及“在主机中进行内部处理”中的至少一个相关)。例如,主机120可响应于对主机指令进行的处理,将具有第一尺寸的数据暂时存储在整个存储器和/或外部存储器(诸如NVM 400)中的某处。在本发明构思的某些实施例中,第一尺寸可以是64字节,但本领域技术人员将认识到第一尺寸的任何合理的定义可用于本发明构思的实施例中。
鉴于对术语“第一尺寸”的这种理解,主机处理器210可确定是否将具有不同于(即,大于)第一尺寸的“第二尺寸”的数据编写在外部存储器资源(诸如NVM 400)中。可替代地或者额外地,主机处理器210可确定是否利用包括在主机120中的装置驱动器来将第一数据段Di中的每一个编写在NVM 400中。在本发明构思的某些实施例中,第二尺寸是指与存储装置的存储器处理器的数据处理相关联的、或者与NVM 400中的数据的编写相关联的基本(或最小)单位。第二尺寸可以是,例如,512字节或4千字节。也就是说,第二尺寸可以按照计算***的数据处理和/或数据存储要求而被不同地定义。
就这一点而言,主机处理器210可将具有第一尺寸的第一数据段Di中的一个或多个传送到存储装置140,从而降低对存储总线160的要求,按照惯例会要求存储总线160将第二尺寸的数据块编写到NVM 400。也就是说,根据本发明构思的某些实施例的主机处理器210可通过存储器接口240将一个或多个第一数据段Di传送到存储装置140。
按照这种方式,主机处理器210无需使用通常在主机120和存储装置140之间控制数据传送的装置驱动器,就可传送第一数据段Di。也就是说,主机处理器210可分配与由存储器控制器300可访问的缓冲器(例如,图2所示的缓冲器340)有关的整个存储器地址空间(即,可由主机处理器210访问的存储器地址空间)的一部分。例如,可利用整个存储器地址空间的所分配的部分,将一个或多个第一数据段Di暂时存储在与存储器控制器300相关联的缓冲器中。
回到图1,主机存储器220可存储主机120的操作所需要的数据,诸如暂时存储处理主机指令所需要的数据。例如,主机存储器220在主机处理器210的控制下,可接收具有第一尺寸的数据。
响应于主机处理器210做出的各种I/O请求,I/O接口230可用于控制各种I/O装置(例如,键盘、鼠标和/或显示装置)的操作。
存储器接口240可用于改变(或转换)传送到存储器控制器300的第一数据段Di的格式,以使第一数据段Di的格式将被存储器控制器300识别,并可进行处理。就这一点而言,存储器接口240可在第一数据段Di通过存储总线160提供到存储器控制器300之前,转换第一数据段Di的格式。此外,存储器接口240可接收从存储器控制器300传送的数据,并按需要改变数据的格式。因此,本发明构思的某些实施例可包括存储器接口240,其具有用于传送和接收数据的完整的收发器。
存储器接口240可实现为提供一个或多个数据接口,诸如,例如SATA接口、SATAe接口、SAS接口和PCIe接口。
例如,主机总线250可以实现为高级微控制器总线架构(AMBA)、高级高性能总线(AHB)、高级***总线(APB)、高级可扩展接口(AXI)、高级***总线(ASB),或者它们的结合。
如上所述,存储装置140可配置为接收和存储由主机120传送的第一数据段Di。存储装置140可按照缓冲器地址到NVM存储器地址映射表(此后称为“缓冲器到NVM映射表”(buffer-to-NVM mapping table))来存储数据,在该映射表中,与包括在存储器控制器300中的缓冲器340相关联的缓冲器地址以一一对应的关系分别映射至与NVM 400相关联的存储器地址。
存储装置140可在初始化操作期间从主机120接收缓冲器到NVM映射表。此外,因为缓冲器到NVM映射表需要更新,存储装置140可从主机120接收这些更新。在本发明构思的某些实施例中,当存储装置连接到主机时,计算***初始化或者存储装置初始化过程可包括从数据存储装置到主机的特定初始化信息的传送,其中初始化信息包括缓冲器到NVM映射表的最后已知的、有效的状态。此后,响应于主机指令,缓冲器到NVM映射表可在主机和存储装置中的至少一个中更新。
存储装置140可以各种形式实现,例如,作为固态驱动器(SSD)、通用闪存(UFS)、多媒体卡(MMC)、嵌入式MMC(eMMC)、或完美页面新(PPN)NAND。
如图1所示,存储装置140包括存储器控制器300、NVM 400,以及存储缓冲器410。存储器控制器300可通常用于控制存储装置140的操作。存储器控制器300可从NVM 400读取数据,并通过存储总线160将作为结果的读取的数据传送给主机120。可替代地或额外地,存储器控制器300可通过存储缓冲器410将从主机120接收到的数据编写在NVM 400中。
存储器控制器300可暂时地并递增地将从主机120接收到的第一数据段Di存储在包含在存储器控制器300内的缓冲器(例如,图2所示的缓冲器340)中。一旦暂时存储在缓冲器340中的所接收的数据(例如,第一数据段Di序列)的总(或累积)尺寸达到第二尺寸,在缓冲器340中累积存储的数据可在存储器控制器300的控制下编写到NVM 400。
在上述配置中,存储装置140参考缓冲器到NVM地址映射表,可确定特定缓冲器地址和对应的NVM存储器地址之间的地址映射关系。因此,主机120可将数据传送到与NVM存储器地址具有一一对应关系的缓冲器地址,以将数据编写在NVM 400的特定存储器地址中。
NVM 400可以各种形式配置为存储从主机120接收到的数据。例如,NVM 400可包括多个NAND闪速存储器。NVM 400可配置为三维(3D)存储器单元阵列,其是单片地形成在存储器单元阵列的一个或多个物理级中,所述存储器单元阵列具有布置在硅衬底之上的有源区和与那些存储器单元的操作相关联的电路,无论这样的相关联的电路位于这样的衬底之上还是之内。这里,术语“单片”意味着阵列的每一级的各层都是直接沉积在阵列的每一下级的各层上。
在本发明构思的某些实施例中,3D存储器单元阵列包括垂直的NAND串,其是垂直取向的,以使至少一个存储器单元位于另一存储器单元之上。至少一个存储器单元可包括电荷陷阱层。
存储缓冲器410可用于作为存储装置的缓存(cache)(或缓存缓冲器),以暂时存储稍后要被存储在NVM 400中的接收到的数据、或从NVM 400读取的数据。存储缓冲器410可使用易失性存储器实现,诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。
为方便下面详细描述,假设存储缓冲器410设置在存储器控制器300的外部(或与存储器控制器300分离)。然而,在本发明构思的某些实施例的情况下不必是这样的。也就是说,存储缓冲器410可提供在存储器控制器300的内部。
图2是进一步示出了图1的存储器控制器300的一个示例的框图。共同参照图1和图2,存储器控制器300可包括存储器处理器310、主机接口320、缓冲器控制器330、缓冲器340、缓冲器控制电路350、存储缓冲器控制器360及NVM控制器370。
存储器处理器310通常可用于控制存储器控制器300的操作。例如,存储器处理器310可控制主机接口320、缓冲器340、缓冲器控制电路350、存储缓冲器控制器360和/或NVM控制器370的操作和/或它们之间的互操作。
存储器处理器310可从缓冲器控制电路350接收存储信息SI,存储信息SI指示是否将从主机120接收到的第一数据段Di编写在NVM 400中。例如,存储信息SI可指示通过对接收到的第一数据段Di的数目进行计数而得到的计数值,或以其它方式监测存储在缓冲器340中的所接收到的数据的累计尺寸。也就是说,存储信息SI可以是以各种方式指示是否将累积地接收到的第一数据段Di编写在NVM 400中的信息(或数据)。
就这一点而言,存储器处理器310可用于基于存储信息SI来确定是否将累积地接收到的、暂时存储在缓冲器340中的第一数据段Di编写在NVM 400中。当确定编写累积地接收到的第一数据段Di时,存储器处理器310可将相应的缓冲器指示信号BIS传送到缓冲器控制电路350。按照这种方式,存储器处理器310可利用例如存储缓冲器控制器360和存储缓冲器410使第二数据段DATA2被编写在NVM 400中。此处,第二数据段DATA2(至少包括累积地接收到的第一数据段Di)可以具有第二尺寸。
换句话说,存储器处理器310可在存储缓冲器410中累积(例如,以递增的方式暂时存储)第二数据段DATA2之后,将第二数据段DATA2编写在NVM 400中。或者,可利用NVM控制器370将第二数据段DATA2编写在NVM 400中,而无需在存储缓冲器410中存储第二数据段。
主机接口320可用于改变要被传送到主机120的数据的格式,以使数据的格式可被主机120识别并利用。然后主机接口320可用于将具有改变后的格式的数据通过存储总线160传送到主机120。另外,主机接口320可接收从主机120传送的第一数据段Di,改变所接收到的第一数据段Di的格式,并在缓冲器340中暂时存储具有改变后的格式的第一数据段Di。根据示例实施例,主机接口320可包括收发机,用于传送和接收数据。因此,主机接口320可实现为例如一个或多个SATA接口、SATAe接口、SAS接口和/或PCIe接口。
缓冲器控制器330可在存储器处理器310的全面控制下用于控制缓冲器340的操作。从主机120接收到的第一数据段Di可在缓冲器控制器330的控制下按顺序地存储在缓冲器340中。
缓冲器340可暂时存储每一个均具有第一尺寸的第一数据段Di。第一数据段Di可按顺序地存储在缓冲器340中。将参照图3更详细地描述缓冲器340的一个示例。
缓冲器控制电路350可将存储信息SI传送到存储器处理器310,存储信息SI指示是否将从主机120接收到的第一数据段Di编写在NVM 400中。缓冲器控制电路350可根据从存储器处理器310传送的缓冲器指示信号BIS将存储在缓冲器340中并具有第二尺寸的第二数据段DATA2编写在NVM 400中。例如,第二数据段DATA2可包括第一数据段Di中的至少一个。
虽然为清楚地描述而在图2中分别示出了缓冲器控制器330和缓冲器控制电路350,但是在本发明构思的不同实施例中这些元件可在单个电路或集成电路中实现。
存储缓冲器控制器360在存储器处理器310的全面控制下,可用于在存储缓冲器410中写入数据或从存储缓冲器410中读取数据。由存储缓冲器控制器360处理的数据可以传送到NVM控制器370或主机接口320。
NVM控制器370在存储器处理器310的全面控制下,可用于控制NVM 400。根据NVM控制器370的控制,存储在NVM 400中的数据可被读取或者数据可被写入到NVM 400。
图3是进一步示出了一个实施例中的图1和图2的存储器接口240和主机接口320之间的操作关系的框图。参照图1、图2和图3,存储器接口240可包括第一输出选择器242、第一接口244和第二接口246。
第一输出选择器242可用于在第一路径PATH1和第二路径PATH2之中进行选择。也就是说,第一输出选择器242可选择是通过第一接口244和第二接口246,还是通过第二接口246来传送第一数据段Di。此处,第一输出选择器242可例如在主机处理器210的控制下进行操作。
当第一输出选择器242选择第一路径PATH1时,可利用第一接口244和第二接口246依次转换第一数据段Di的格式。或者,当第一输出选择器242选择第二路径PATH2时,第一数据段Di的格式不会通过第一接口244改变,而是可仅通过第二接口246被处理。因此,第一接口244可转换(或变换)从第一输出选择器242接收到的第一数据段Di的格式,以使第一数据段的作为结果的格式与存储装置140兼容。例如,第一接口244可实现为NVMe协议。
第二接口246可进一步处理重格式化的第一数据段Di,以使作为结果的第一数据段Di与存储总线160的要求兼容。因此,第二接口244可实现为例如PCIe接口。
如图3的示例所示,主机接口320可包括第三接口322、第二输出选择器324和第四接口326。
第三接口322可对从主机120接收到的第一数据段Di执行第二接口246所执行的变换的逆变换。因此,第二接口246和第三接口322可以是相同类型的接口。
第二输出选择器324可选择第三路径PATH3和第四路径PATH4中之一。也就是说,第二输出选择器324可选择是否将通过第三接口322转换格式的第一数据段Di传送到第四接口326。第二输出选择器326可根据存储器处理器310的控制而进行操作;然而,并不限于此。
第二输出选择器324的操作可与第一输出选择器242的操作配对。也就是说,当第一输出选择器242选择第一路径PATH1时,第二输出选择器324选择第三路径PATH3,并且当第一输出选择器242选择第二路径PATH2时,第二输出选择器324选择第四路径PATH4。
第四接口326可对从第二输出选择器324接收到的第一数据段Di执行第一接口244所执行的变换的逆变换。因此,第一接口244和第四接口326可以是相同类型的接口。
主机120可通过第二路径PATH2和第四路径PATH4将每一个具有第一尺寸的第一数据段Di传送到存储器控制器300。此时,主机120可将第一数据段Di传送到存储器控制器300,而无需利用第一接口244执行格式转换。因此,所接收到的第一数据段Di可存储在缓冲器340中,而无需利用第四接口326执行格式逆变换。
主机处理器210不执行利用第一接口244的格式转换,并因此能减少要通过主机处理器210执行的指令的数目。
此处应该注意:主机可利用一个或多个不同的接口给将数据编写到NVM 400的某些方法提供某种形式的错误检测和/或纠正(以下一般地称为“错误检测”)。例如,在定义的特定数据格式转换期间,一个或多个错误检测位(例如,一个或多个检验位)可添加到每一个第一数据段。此后,当第二数据段编写在NVM 400中时,存储器控制器300可运行错误检测程序,以判定包含在第二数据段内的各个第一数据段的准确性。
图4是进一步示出了一个示例中的可用于本发明构思的某些实施例中的缓冲器到NVM地址映射表312的概念示意图。参照图4,缓冲器到NVM地址映射表312可包括:与缓冲器340相关联的缓冲器地址数据结构(此后称为“缓冲器地址BAn”),例如BAn,其中‘n’是(例如)从1到8的范围内的自然数;以及与NVM 400相关联的存储器地址数据结构(此后称为“存储器地址MAn”),例如,MAn,其中存储器地址中的各个元素具有与缓冲器地址元素BAn一一对应(或者映射)的关系。
在缓冲器地址BAn中每一个元素(例如,存储器位置或空间)的规定尺寸可以与在存储器地址MA中每一个元素的规定尺寸相同。此外,完整的缓冲器地址BAn的累积尺寸和/或完整的存储器地址MAn的累积尺寸可以与第二尺寸相同。
为了描述方便,仅描述了八(8)个缓冲器地址元素BA1至BA8和八个相应的存储器地址元素MA1至MA8,但是本发明构思不限于该示例。也就是说,通过缓冲器到NVM地址映射表312所考虑的元素(例如,地址位置)的数目可以根据(例如)缓冲器340的尺寸、NVM 400的尺寸和/或结构、所要求的第一尺寸、所要求的第二尺寸等而不同。
缓冲器到NVM地址映射表312可存储在存储器处理器310中。当存储信息SI指示第一数据段Di将编写在NVM 400中时,存储器处理器310可参照缓冲器到NVM地址映射表312将数据(例如,第二数据段DATA2)编写在NVM 400中。
因此,当存储在对应于特定缓冲器地址BAn元素(例如,BA1)的存储器空间中的具有第二尺寸的第二数据段DATA2编写在NVM 400中时,存储器处理器310可参照缓冲器到NVM地址映射表312将第二数据段DATA2编写在由对应的存储器地址MAn元素(例如,MA1)所限定的存储器空间中。
多个子缓冲器地址BA1-1至BA1-8中的每一个可表示第一数据段Di可暂时存储在其中的存储器空间中的地址。因此,多个子缓冲器地址BA1-1至BA1-8中的每一个的尺寸可以与第一数据段Di(例如,第一尺寸)相同。
为了描述方便,图4中示出了八(8)个子缓冲器地址BA1-1至BA1-8。然而,本发明的构思不限于此。也就是说,存储在缓冲器地址-非易失性存储器地址映射表312中的缓冲器地址BA1至BA8中的每一个可包括八个子缓冲器地址,但是包括在缓冲器地址BA1至BA8中的每一个中的子缓冲器地址的尺寸和/或数目可根据计算***100进行各种改变。
图5是进一步示出了根据本发明构思的实施例的在一个示例中的可将数据段编写在NVM 400中所采用的步骤或方法的概念示意图。参照图1、图2、图3、图4和图5,主机120可将每一个具有第一尺寸S 1的各个数据段(例如,D1至D8)编写在NVM 400中。此处,假设各个数据段D1至D8按顺序地存储在包括在存储装置140中的缓冲器340中。
在图5示出的示例的环境中,主机120可将数据段D1存储在对应于缓冲器340的第一子缓冲器地址BA1-1的存储器空间中,并且然后将数据段D2存储在对应于缓冲器340的第二子缓冲器地址BA1-2的存储器空间中。主机120可将数据段D3至D8中的每一个存储在对应于子缓冲器地址BA1-3至BA1-8中的每一个的每一个存储器空间中。
当包括按顺序地存储在缓冲器340中的数据段D1至D8的数据的累积尺寸等于第二尺寸S2时,存储器处理器310可将数据段D1至D8全体编写在NVM 400中,作为第二数据段DATA2。也就是说,存储器处理器310可参照存储在存储器处理器310中的缓冲器到NVM地址映射表312,确定在NVM 400的存储器空间当中的将在其中存储第二数据段DATA2的存储器空间中的位置。
在此环境中并参照图4和图5,缓冲器地址的第一元素BA1被一对一地映射到存储器地址的第一元素MA1上。因此,存储在缓冲器340的对应于缓冲器地址的第一元素BA1的存储器空间中的数据段D1至D8可编写在NVM 400的对应于存储器地址的第一元素MA1的存储器空间中。
与缓冲器地址的元素BAn相关联的存储器空间和与存储器地址的元素MAn相关联的存储器空间可具有相同的尺寸(例如,第二尺寸S2)。因此,存储器处理器310可参照缓冲器到NVM地址映射表312,容易地将存储在对应于缓冲器340的缓冲器地址BA1的存储器空间中的数据段D1至D8编写在NVW 400的存储器空间当中的对应于存储器地址MA1的存储空间中。
图6是概括根据本发明构思的实施例的方法的流程图,根据该方法主机可高效地将数据编写在非易失性存储器中。参照图1、图2、图3、图4、图5和图6,假设存储器控制器300从主机120顺序地接收一组第一数据段D1至D8(S610),其中还假设第一数据段D1至D8中的每一个具有第一尺寸S1。
作为回应,存储器控制器300可在缓冲器340中按顺序地以及暂时地存储所接收到的第一数据段D1至D8(S620)。
当存储信息SI指示第一数据段D1至D8应全体地编写在NVM 400中时,存储器控制器300可将具有第二尺寸S2的第二数据段DATA2编写在NVM 400的存储器空间中。例如,当存储在缓冲器340中的数据当中的第一数据段D1至D8的累积尺寸达到第二尺寸S2(S630=是)时,对应于第二尺寸S2的第一数据段D1至D8的累积组可在NVM 400的存储器空间中被编写为第二数据段DATA2(S640)。
另一方面,只要所接收到的第一数据段的累积尺寸保持小于第二尺寸(S630=否),就重复步骤S610至S630,直到所接收到的第一数据段的累积尺寸达到第二尺寸S2。
在某些与本发明构思的实施例相一致的某些计算***中,可能希望提供一种传统的功能,其中,在所述主机中常规地提供的装置驱动器能够执行块I/O操作(block I/Ooperation)。当程序数据的数据块至少与上述第二尺寸一样大时,可以执行该块I/O操作。因此,在操作包括如上示出的主机和存储装置的计算***的某些方法中,方法可以在主机中产生要被编写到NVM的程序数据。如果程序数据的尺寸至少等于第二尺寸,则可以使用由主机提供的装置驱动器来执行数据块I/O(或输出)操作,以将程序数据的数据块传输到存储装置中。此后,可以在NVM中进行数据块的编写。然而,如果程序数据具有比第二尺寸更小的尺寸,则前述实施例中的一个可以用于顺序地将第一数据段从主机传送到存储装置,其中每一个第一数据段具有比第二尺寸更小的第一尺寸。此后,第一数据段可以被顺序地和暂时地存储在缓冲器中,直到所存储的第一数据段的累积尺寸等于或超过第二尺寸。
根据本发明构思的实施例的计算***减少了将数据编写(或写入)在连接到主机的非易失性存储器中所需的指令的数量,从而减少了必须由主机进行处理的指令的数量。此外,这样的计算***减少了对非易失性存储器的编写事件的数量,从而增加了在非易失性存储器中的存储器单元的有效使用寿命。此外,这样的计算***仅需要将需要改变的数据发送到非易失性存储器,从而增加了主机接口的效率。
尽管总的发明构思的几个实施例已被示出和描述,但是本领域的技术人员可以理解,在不脱离由所附权利要求和其等价物限定的本发明构思的范围的情况下,可对这些实施例做出改变。
Claims (11)
1.一种操作存储装置中的存储器控制器的方法,其中,所述存储装置包括非易失性存储器,所述存储器控制器包括存储器处理器、缓冲器和缓冲器控制电路,所述方法包括:
使用所述存储器处理器从主机接收数据块,将所述数据块存储在所述缓冲器中,并且随后如果接收到的数据块的尺寸至少等于第二尺寸,则将该数据块编写在所述非易失性存储器中;以及
使用所述存储器处理器,以:
按顺序地从所述主机接收第一数据段,其中每一个第一数据段具有第一尺寸;
在所述缓冲器中按顺序地存储所接收到的各个第一数据段,直到所接收的各个第一数据段的累积尺寸达到所述第二尺寸;然后
将按顺序存储的各个第一数据段编写在所述非易失性存储器中,
其中,所述第一尺寸对应于由所述主机处理的数据的单位尺寸,所述第二尺寸是所述第一尺寸的整数倍并且对应于在所述非易失性存储器中编写的数据的单位尺寸,
所述缓冲器控制电路确定所接收到的各个第一数据段的累积尺寸,生成对应于所接收到的各个第一数据段的存储信息,并且将所述存储信息提供给所述存储器处理器,并且
当所接收到的各个第一数据段的累积尺寸达到所述第二尺寸时,所述存储器处理器响应于所述存储信息而生成缓冲器指示信号,所述缓冲器指示信号使得按顺序存储在所述缓冲器中的各个第一数据段被编写在所述非易失性存储器中。
2.根据权利要求1所述的方法,其中根据包括多个缓冲器地址元素的缓冲器地址数据结构以及包括多个非易失性存储器地址元素的非易失性存储器地址数据结构来布置存储在所述缓冲器中的数据,
所接收到的各个第一数据段分别存储在从所述多个缓冲器地址元素当中选择出的缓冲器地址元素中,并且
每一个缓冲器地址元素包括分别用于存储所接收到的各个第一数据段中的一个的多个子缓冲器地址。
3.根据权利要求2所述的方法,还包括:
在所述主机中生成缓冲器到非易失性存储器地址映射表,其中所述缓冲器到非易失性存储器地址映射表将所述多个缓冲器地址元素中的每一个映射到所述多个非易失性存储器地址元素中的对应的一个。
4.根据权利要求3所述的方法,还包括:
在所述存储装置初始化过程期间,将所述缓冲器到非易失性存储器地址映射表从所述主机接收到所述存储装置中。
5.根据权利要求1所述的方法,其中在所述存储装置的初始化期间,所述方法还包括:
将初始化信息传送到所述主机,其中所述初始化信息包括缓冲器到非易失性存储器地址映射表。
6.根据权利要求5所述的方法,还包括以下步骤中的至少一个:
使用所述存储器控制器来更新存储在所述存储装置中的缓冲器到非易失性存储器地址映射表的副本;以及
使用所述存储器控制器来启动存储在所述主机中的缓冲器到非易失性存储器地址映射表的副本的更新,将变化的一一映射信息传送到所述主机。
7.根据权利要求6所述的方法,其中所述非易失性存储器包括三维存储器单元。
8.一种操作包括主机和存储装置的计算***的方法,所述存储装置包括存储器控制器和非易失性存储器,所述存储器控制器包括缓冲器,所述方法包括:
在所述主机中生成程序数据;
如果所述程序数据的尺寸小于第二尺寸,则按顺序地将所述程序数据作为第一数据段从所述主机传送到所述存储装置,其中每一个第一数据段具有第一尺寸,在所述缓冲器中存储各个第一数据段,直到所存储的各个第一数据段的累积尺寸等于或超过所述第二尺寸,然后在所述存储器控制器的控制下将所存储的各个第一数据段编写在所述非易失性存储器中;以及
如果所述程序数据的尺寸等于所述第二尺寸,则将所述程序数据作为数据块从所述主机传送到所述存储装置,在所述缓冲器中存储所述数据块,然后在所述存储器控制器的控制下将所述数据块编写在所述非易失性存储器中,
其中,所述第一尺寸对应于在所述主机中处理数据的单位尺寸,并且所述第二尺寸是在所述非易失性存储器中编写数据的单位尺寸。
9.一种操作包括主机和存储装置的计算***的方法,所述存储装置包括存储器控制器和非易失性存储器,所述存储器控制器包括缓冲器,所述方法包括:
在所述主机中生成将被编写到所述非易失性存储器的程序数据;
如果所述程序数据的尺寸至少等于第二尺寸,则使用由所述主机提供的装置驱动器来执行数据块输出操作,以将所述程序数据的数据块传送到所述存储装置,并且之后将所述数据块编写在所述非易失性存储器中;
如果所述程序数据的尺寸比所述第二尺寸小,则在不使用所述装置驱动器的情况下,顺序地将第一数据段从所述主机传送到所述存储装置,其中每一个第一数据段具有小于所述第二尺寸的第一尺寸,
在所述缓冲器中按顺序地且暂时地存储各个第一数据段,直到所存储的各个第一数据段的累积尺寸等于或超过所述第二尺寸,以及
将具有所述第二尺寸且包括按顺序地且暂时地存储的各个第一数据段的第二数据段编写在所述非易失性存储器中,
其中所述第一尺寸对应于针对由所述存储装置从所述主机接收到的数据的处理单位,或者对应于针对在将所述第一数据段传送到所述存储装置之前由所述主机暂时存储的数据的处理单位,并且所述第二尺寸是针对在所述非易失性存储器中编写的数据的处理单位。
10.根据权利要求9所述的方法,其中根据包括多个缓冲器地址元素的缓冲器地址数据结构以及包括多个非易失性存储器地址元素的非易失性存储器地址数据结构来布置存储在所述缓冲器中的数据,
所接收到的各个第一数据段分别存储在从所述多个缓冲器地址元素当中选择出的缓冲器地址元素中,并且
每一个缓冲器地址元素包括分别用于存储所接收到的各个第一数据段中的一个的多个子缓冲器地址。
11.根据权利要求10所述的方法,还包括:
在所述主机中生成缓冲器到非易失性存储器地址映射表,其中所述缓冲器到非易失性存储器地址映射表将所述多个缓冲器地址元素中的每一个映射到所述多个非易失性存储器地址元素中的对应的一个,
其中在所述存储装置初始化过程期间,从所述主机接收所述缓冲器到非易失性存储器地址映射表。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160119990A KR20180031412A (ko) | 2016-09-20 | 2016-09-20 | 메모리 컨트롤러의 동작 방법과, 이를 포함하는 장치들의 동작 방법들 |
KR10-2016-0119990 | 2016-09-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107844265A CN107844265A (zh) | 2018-03-27 |
CN107844265B true CN107844265B (zh) | 2022-12-06 |
Family
ID=61618067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710822187.7A Active CN107844265B (zh) | 2016-09-20 | 2017-09-13 | 操作计算***的方法以及操作计算***中的存储器控制器的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10445014B2 (zh) |
KR (1) | KR20180031412A (zh) |
CN (1) | CN107844265B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200048318A (ko) * | 2018-10-29 | 2020-05-08 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US11249648B2 (en) * | 2019-07-26 | 2022-02-15 | Kioxia Corporation | Transfer and processing unit for IOD SSD |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1950804A (zh) * | 2004-03-08 | 2007-04-18 | 桑迪士克股份有限公司 | 闪速存储器控制器高速缓存架构 |
CN102156676A (zh) * | 2010-02-10 | 2011-08-17 | 富士通株式会社 | 高速缓存*** |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5924121A (en) * | 1996-12-23 | 1999-07-13 | International Business Machines Corporation | Adaptive writeback of cache line data in a computer operated with burst mode transfer cycles |
JP2000181784A (ja) | 1998-12-18 | 2000-06-30 | Hitachi Ltd | 書き換え可能な不揮発性記憶装置 |
WO2002001375A1 (en) * | 2000-06-27 | 2002-01-03 | Koninklijke Philips Electronics N.V. | Integrated circuit with flash |
JP4713867B2 (ja) * | 2004-09-22 | 2011-06-29 | 株式会社東芝 | メモリコントローラ,メモリ装置及びメモリコントローラの制御方法 |
US7882299B2 (en) * | 2004-12-21 | 2011-02-01 | Sandisk Corporation | System and method for use of on-chip non-volatile memory write cache |
US8307149B2 (en) | 2005-12-09 | 2012-11-06 | Panasonic Corporation | Nonvolatile memory device including a logical-to-physical logig-to-physical address conversion table, a temporary block and a temporary table |
JP2009075759A (ja) * | 2007-09-19 | 2009-04-09 | Hitachi Ltd | ストレージ装置及びストレージ装置におけるデータの管理方法 |
JP2009181314A (ja) * | 2008-01-30 | 2009-08-13 | Toshiba Corp | 情報記録装置およびその制御方法 |
JP2009211192A (ja) | 2008-02-29 | 2009-09-17 | Toshiba Corp | メモリシステム |
KR101581859B1 (ko) | 2009-02-27 | 2016-01-21 | 삼성전자주식회사 | 메모리 시스템 및 그것의 플래시 변환 계층의 데이터 관리 방법 |
KR101117390B1 (ko) | 2010-03-12 | 2012-03-07 | 성균관대학교산학협력단 | 비휘발성 메모리 장치의 데이터 접근 방법 및 이를 수행하는 프로그램을 기록한 기록매체 |
KR101401379B1 (ko) | 2010-10-13 | 2014-05-30 | 한국전자통신연구원 | 낸드 플래시 메모리의 데이터 입출력 방법과 그 방법을 이용한 임베디드 시스템 |
KR101717081B1 (ko) * | 2011-03-23 | 2017-03-28 | 삼성전자주식회사 | 비휘발성 램과 휘발성 램을 버퍼 메모리로 사용하는 저장 장치 |
JP5329689B2 (ja) | 2011-06-08 | 2013-10-30 | パナソニック株式会社 | メモリコントローラ、不揮発性記憶装置 |
TWI521343B (zh) * | 2011-08-01 | 2016-02-11 | Toshiba Kk | An information processing device, a semiconductor memory device, and a semiconductor memory device |
JP2013077278A (ja) | 2011-09-16 | 2013-04-25 | Toshiba Corp | メモリ・デバイス |
JP6034183B2 (ja) | 2012-12-27 | 2016-11-30 | 株式会社東芝 | 半導体記憶装置 |
KR102119817B1 (ko) | 2014-01-02 | 2020-06-05 | 엘지이노텍 주식회사 | 발광소자 |
KR102168169B1 (ko) * | 2014-01-07 | 2020-10-20 | 삼성전자주식회사 | 비휘발성 메모리 시스템의 메모리 맵핑 방법 및 이를 제공하는 시스템 |
KR20160144574A (ko) | 2015-06-08 | 2016-12-19 | 삼성전자주식회사 | 불휘발성 메모리 모듈 및 그것의 데이터 쓰기 방법 |
-
2016
- 2016-09-20 KR KR1020160119990A patent/KR20180031412A/ko not_active Application Discontinuation
-
2017
- 2017-08-14 US US15/676,651 patent/US10445014B2/en active Active
- 2017-09-13 CN CN201710822187.7A patent/CN107844265B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1950804A (zh) * | 2004-03-08 | 2007-04-18 | 桑迪士克股份有限公司 | 闪速存储器控制器高速缓存架构 |
CN102156676A (zh) * | 2010-02-10 | 2011-08-17 | 富士通株式会社 | 高速缓存*** |
Non-Patent Citations (1)
Title |
---|
高速大容量NAND FLASH存储***的设计与实现;李晴;《中国优秀硕士学位论文全文数据库》;20150731;全文 * |
Also Published As
Publication number | Publication date |
---|---|
KR20180031412A (ko) | 2018-03-28 |
CN107844265A (zh) | 2018-03-27 |
US20180081584A1 (en) | 2018-03-22 |
US10445014B2 (en) | 2019-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106294194B (zh) | 数据存储装置和具有该数据存储装置的数据处理*** | |
CN110781096B (zh) | 用于通过预测需求时间来执行垃圾收集的设备和方法 | |
US10678476B2 (en) | Memory system with host address translation capability and operating method thereof | |
US8850158B2 (en) | Apparatus for processing remote page fault and method thereof | |
US11747989B2 (en) | Memory system and method for controlling nonvolatile memory | |
US20210382864A1 (en) | Key-value storage device and operating method thereof | |
CN111459844B (zh) | 数据储存装置及用于存取逻辑至物理地址映射表的方法 | |
US11169736B2 (en) | Data storage device equipped to reduce page faults in host device | |
US20190324689A1 (en) | Memory controller and memory system having the same | |
KR20120063734A (ko) | 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법 | |
KR101041837B1 (ko) | 파일저장 제어장치 및 방법 | |
US10990539B2 (en) | Controller, memory system including the same, and method of operating memory system | |
CN110647475A (zh) | 存储装置和包括存储装置的存储*** | |
KR20190044968A (ko) | 메모리 시스템 및 그것의 동작 방법 | |
KR20190130805A (ko) | 메모리 컨트롤러 및 이의 동작 방법 | |
CN111666223B (zh) | 控制器、包括控制器的存储器***和操作该***的方法 | |
CN110781093B (zh) | 能够改变映射高速缓存缓冲器大小的数据存储设备 | |
US10466938B2 (en) | Non-volatile memory system using a plurality of mapping units and operating method thereof | |
CN107844265B (zh) | 操作计算***的方法以及操作计算***中的存储器控制器的方法 | |
US20150254188A1 (en) | Memory system and method of controlling memory system | |
US9501401B2 (en) | Method of operating a memory system, the memory system, and a memory controller | |
US20150074334A1 (en) | Information processing device | |
CN110309075B (zh) | 存储器控制器以及具有存储器控制器的存储器*** | |
CN111723023A (zh) | 存储器***、计算设备及其操作方法 | |
JP6260395B2 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |