CN111143233A - 存储设备及操作存储设备的方法 - Google Patents
存储设备及操作存储设备的方法 Download PDFInfo
- Publication number
- CN111143233A CN111143233A CN201910773518.1A CN201910773518A CN111143233A CN 111143233 A CN111143233 A CN 111143233A CN 201910773518 A CN201910773518 A CN 201910773518A CN 111143233 A CN111143233 A CN 111143233A
- Authority
- CN
- China
- Prior art keywords
- storage
- host
- memory
- storage device
- buffer
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/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/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
- 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/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
-
- 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
- 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
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- 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
- 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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Memory System (AREA)
Abstract
本公开涉及存储设备及操作存储设备的方法。该存储设备包括主存储装置和用于控制所述主存储的存储控制器。主存储装置存储数据并包括多个非易失性存储器件。存储控制器基于外部主机设备中包括的主机存储缓冲器的大小和与外部主机设备的数据访问模式相关联的局部性信息,将(a)和(b)中的至少一项加载到主机存储缓冲器:(a)映射表中的至少一部分映射表;(b)目录中的一部分目录中的至少一个目录。映射表被存储在非易失性存储器件中,映射表被存储在非易失性存储器件中,映射表指示非易失性存储器件中的对应的非易失性存储器件的物理地址与逻辑地址之间的映射关系。目录被配置为存储在非易失性存储器件中存储的映射表的地址信息。
Description
相关申请的交叉引用
要求于2018年11月1日在韩国知识产权局(KIPO)提交的韩国专利申请编号No.10-2018-0132843的优先权,其全部内容通过引用整体并入本文。
技术领域
本发明构思一般涉及数据处理,并且更具体地涉及存储设备、包括该存储设备的存储系统以及操作存储设备的方法。
背景技术
主机通常使用包括诸如闪存的非易失性存储器的数据存储设备。闪存转换层(FTL)与闪存一起使用以映射由主机生成的逻辑地址和由数据存储设备使用的相应物理地址。与FTL相关联的一个或更多个映射表可以存储在数据存储设备中。
数据存储设备可以包括可以用于快速访问映射表的单独的易失性存储器(例如,动态随机存取存储器(DRAM)或静态RAM(SRAM))。然而,当提供给数据存储设备的电源中断时,存储在易失性存储器中的映射表可能丢失。此外,随着映射表的大小的增加,用于存储映射表的易失性存储器的量也增加了,从而提高了数据存储设备的成本和物理大小。
发明内容
本发明构思的实施例提供了一种能够减少访问映射表的访问时间的存储设备、包括了能够减少访问映射表的访问时间的存储设备的存储系统以及对能够减少访问映射表的访问时间的存储设备进行操作的方法。
本发明构思的实施例提供了一种存储设备,所述存储设备包括主存储装置和控制所述主存储装置的存储控制器。所述主存储装置存储数据并包括多个非易失性存储器件。所述存储控制器基于外部主机设备中包括的主机存储缓冲器的大小和与所述外部主机设备的数据访问模式相关联的局部性信息,将(a)和(b)中的至少一项加载到所述主机存储缓冲器:(a)映射表中的至少一部分映射表;(b)目录中的一部分目录中的至少一个目录。所述映射表被存储在所述非易失性存储器件中,所述映射表指示所述非易失性存储器件中的对应的非易失性存储器件的物理地址与逻辑地址之间的映射关系。所述目录存储所述非易失性存储器件中存储的所述映射表的地址信息。
本发明构思的实施例还提供了一种存储系统,所述存储系统包括存储设备和主机设备。所述存储设备包括存储数据的主存储装置和控制所述主存储装置的存储控制器,所述主存储装置包括多个非易失性存储器件。所述主机设备包括主机存储器并控制所述存储设备。所述主机设备响应于来自所述存储设备的请求,将所述主机存储器的一部分分配为所述存储控制器可访问的主机存储缓冲器。所述存储控制器基于所述主机存储缓冲器的大小和与所述主机设备的数据访问模式相关联的局部性信息中的至少一个,将(a)和(b)中的至少一项加载到所述主机存储缓冲器:(a)映射表中的至少一部分映射表;(b)目录中的一部分目录中的至少一个目录。所述映射表被存储在所述非易失性存储器件中,所述映射表指示所述非易失性存储器件中的对应的非易失性存储器件的物理地址与逻辑地址之间的映射关系。所述目录存储所述非易失性存储器件中存储的所述映射表的地址信息。
本发明构思的实施例还提供了一种操作存储设备的方法,该存储设备包括存储数据的主存储装置和控制所述主存储装置的存储控制器。所述主存储装置包括多个非易失性存储器件。所述方法包括:由所述存储控制器从控制所述存储设备的外部主机设备接收所述外部主机设备中包括的主机存储缓冲器的大小信息;由所述存储控制器基于所述主机存储缓冲器的大小信息和与所述外部主机设备的数据访问模式相关联的局部性信息,将(a)和(b)中的至少一项加载到所述主机存储缓冲器:(a)映射表中的至少一部分映射表、(b)目录中的一部分目录中的至少一个目录。所述映射表被存储在所述非易失性存储器件中,所述映射表指示所述非易失性存储器件中的对应的非易失性存储器件的物理地址与逻辑地址之间的映射关系,所述目录被配置为存储所述映射表的地址信息。所述方法还包括由所述存储控制器基于从所述主机设备接收的命令和地址通过参考所述主机存储缓冲器,在由所述地址指定的所述非易失性存储器件的存储区域执行由所述命令指定的存储操作。
本发明构思的实施例还提供了一种存储设备,所述存储设备包括主存储装置和存储控制器。所述主存储装置包括存储目录和映射表的非易失性存储器件,其中,所述映射表指示所述非易失性存储器件中的对应的非易失性存储器件的物理地址与逻辑地址之间的映射关系,所述目录存储所述非易失性存储器件中存储的映射表的地址信息。所述存储控制器被配置为基于外部主机设备的主机存储缓冲器的大小和指示从所述外部主机设备接收的逻辑地址与所述主机存储缓冲器中的条目中的任何一个条目不匹配的未命中的数目的计数值,以多个模式来控制所述主存储装置并选择性地将所述目录和所述映射表从所述非易失性存储器件加载到所述主机存储缓冲器。所述多个模式包括第一模式、第二模式和第三模式,所述第一模式包括优先将所述目录从所述非易失性存储器件加载到所述主机存储缓冲器,所述第二模式包括将所述目录和所述映射表从所述非易失性存储器件合并加载到所述主机存储缓冲器,所述第三模式包括优先将所述映射表从所述非易失性存储器件加载到所述主机存储缓冲器。
因此,当所述主机存储器缓冲区的大小不能够覆盖所述存储设备中的主存储装置的映射表的整体地址空间时,所述存储控制器可以基于所述主机存储缓冲器的大小和与数据访问模式相关联的所述局部性信息中的至少一个,将所述映射表的至少一部分和所述目录的一部分动态地加载到所述主机存储缓冲器。所述存储控制器可以通过参考所述主机存储缓冲器在由与逻辑地址对应的物理地址指定的存储器位置执行存储操作。所述存储控制器可以减少访问所述映射表的访问时间。
附图说明
通过以下结合附图的详细描述,将更清楚地理解说明性的非限制性示例实施例。
图1示出了根据本发明构思的实施例的数据存储系统(或存储系统)的框图。
图2示出了根据本发明构思的实施例的图1中的主机设备的框图。
图3示出了根据实施例的图2中的主机存储器的示例。
图4示出了根据本发明构思的实施例的图1中的存储控制器的框图。
图5示出了根据本发明构思的实施例的图4中的加载控制器的示例的框图。
图6示出了图1的存储系统的操作的示例。
图7A示出了存储在图1的每个非易失性存储器件中的目录和映射表。
图7B示出了图7A中的目录的示例。
图8示出了图1中的存储系统的操作的另一示例。
图9示出了当执行与图8相关联的操作时的主机存储缓冲器。
图10示出了图1中的存储系统的操作的另一示例。
图11示出了当执行与图10相关联的操作时的主机存储缓冲器。
图12示出了根据本发明构思的实施例的图1中的主存储装置的多个信道和路的示例。
图13示出了图1的存储设备中的存储控制器和一个非易失性存储器件之间的关系的框图。
图14示出了根据本发明构思的实施例的图13中的非易失性存储器件的框图。
图15示出了图14的非易失性存储器件中的存储单元阵列的框图。
图16示出了图15的存储块中的一个的电路图。
图17示出了图16的存储块中的单元串CS的结构的示例。
图18示出了根据本发明构思的实施例的操作存储设备的方法的流程图。
图19示出了图18中的加载目录和映射表的操作的流程图。
图20示出了根据本发明构思的实施例的示出存储系统的框图。
图21示出了根据本发明构思的实施例的图20中的存储控制器的框图。
图22A示出了根据图1中的存储系统中的主机存储缓冲器的大小来访问映射表的访问时间的曲线图。
图22B示出了根据图20的存储系统中的缓冲存储器的大小和图21的存储控制器来访问映射表的访问时间的曲线图。
图23示出了根据本发明构思的实施例的包括数据存储设备的系统的框图。
图24示出了根据本发明构思的实施例的移动设备的框图。
具体实施方式
以下将参考附图更全面地描述各种示例实施例,附图中示出了一些示例实施例。
如在本发明构思的领域中的传统,可以按照执行所描述的一个或多个功能的块来描述和说明实施例。这些块(这里可称为单元或模块等)在物理上由模拟和/或数字电路来实现,诸如逻辑门、集成电路、微处理器、微控制器、存储器电路、无源电子组件、有源电子组件、光学组件、硬连线电路等,并且可以可选地由固件和/或软件进行驱动。例如,电路可以体现在一个或更多个半导体芯片中,或者体现在诸如印刷电路板等的衬底支撑件上。构成块的电路可以由专用硬件,或者由处理器(例如,一个或更多个编程的微处理器和相关电路),或者由执行块的一些功能的专用硬件及执行块的其他功能的处理器的的组合来实现。在不脱离本发明构思的范围的情况下,可以将实施例的每个块物理地分成两个或更多个交互且分立的块。同样地,在不脱离本发明构思的范围的情况下,可以将实施例的块物理地组合成更复杂的块。
图1示出了根据本发明构思的实施例的存储系统(或数据存储系统)的框图。
参照图1,存储系统10包括主机设备100和存储设备(或固态硬盘(即,SSD))200。
主机设备100可以控制存储设备200的整体操作。主机设备100可以与存储设备(SD)200交换信号。在主机设备100和存储设备200之间交换的信号例如可以包括命令、地址、数据,或其他类型的信号。
存储设备200包括存储控制器300和主存储装置400,主存储装置400可以包括多个非易失性存储装置(即,非易失性存储器件)410~4k0。每个非易失性存储装置410~4k0(即,NVM1~NVMk)可以包括NAND闪存。这里,k是大于2的整数。
存储设备200还可以包括高速缓存210。高速缓存210连接到存储控制器300和主存储装置400,并且可以将存储在非易失性存储装置410~4k0中的元数据临时地存储。存储控制器300可以基于临时存储在高速缓存210中的元数据来设置主存储装置400。
存储控制器300可以与主机设备100交换诸如命令、地址、数据的信号或其他类型的信号。存储控制器300可以根据命令将数据写入相应的非易失性存储装置中以及从相应的非易失性存储装置中读取数据。
多个非易失性存储装置410~4k0可以被用作存储设备200的存储介质。非易失性存储装置410~4k0可以通过多个信道组CHG1~CHGk连接到存储控制器300。每个信道组CHG1~CHGk可以包括至少一个信道。一个或更多个非易失性存储装置可以连接到一个信道组。连接到一个信道组的非易失性存储装置可以连接到同一数据总线。
尽管未示出,但是存储设备200还可以包括要连接到主机设备100的焊盘。存储设备200可以通过焊盘容易地附接到主机设备100或从主机设备100拆卸。
焊盘可以形成在存储设备200内部,或者可以以存储设备200外部的连接器的形式形成。在一些实施例中,存储设备200可以不包括焊盘并且可以通过路由过程(routingprocess)连接到主机设备100。
图2示出了根据本发明构思的实施例的图1中的主机设备的框图。
参照图2,主机设备100包括处理器110、只读存储器(ROM)120、主机存储器130、用户接口(I/F)140、存储接口(I/F)150、存储器控制器160和总线170。
总线170可以指传输信道,通过该传输信道在主机设备100的处理器110、ROM 120、主机存储器130、用户接口140、存储接口150和存储器控制器160之间传输数据。
ROM 120可以存储各种应用程序。例如,可以将支持诸如高级技术附件(ATA)、小型计算机系统接口(SCSI)、嵌入式多媒体卡(eMMC)和通用闪存存储(UFS)协议和NVMe的存储协议的应用程序存储在ROM120中。
主机存储器130可以临时存储数据或程序。
存储接口150可以包括支持诸如SATA、SAS、eMMC、UFS和NVMe的存储协议的接口。主机设备100可以通过NVMe协议执行与存储设备200的接口连接。
用户接口140可以是用于在用户和主机设备100之间交换信息的物理或虚拟介质、计算机程序等,并且包括物理硬件和逻辑软件。例如,用户接口140可以包括用于允许用户操纵主机设备100的输入设备,以及用于输出处理用户的输入的结果的输出设备。
处理器110可以控制主机设备100的整体操作。处理器110例如可以通过使用存储在ROM 120中的应用来生成用于在存储设备200中存储数据的请求(或命令)或用于从存储设备200读取数据的请求(或命令),并经由存储接口150将该请求发送到存储设备200。
存储器控制器160可以在处理器110的控制下控制主机存储器130。存储器控制器160可以将主机存储器130的一部分分派为主机存储缓冲器,其可以在处理器110的控制线由存储设备200访问。
图3示出了根据本发明构思的实施例的图2中的主机存储器的示例。
参照图3,主机存储器130包括主机区域(HREG)131和主机存储缓冲器(HMB)133。主机区域131可以由主机设备100使用,并且主机存储缓冲器133可以由存储设备200使用。
主机存储缓冲器133可以存储元数据MTDT,诸如存储控制器300可以加载的目录DIR1和映射表MT1~MTp。
映射表MT1~MTp中的每一个指示非易失性存储装置410~4k0中所包括的对应的一个非易失性存储器件的物理地址与逻辑地址之间的映射关系,目录DIR1可以对存储在一个非易失性存储器件中的映射表的地址信息进行存储。存储控制器300可以通过参考元数据MTDT将来自主机设备100的逻辑地址映射(转换)为物理地址,并且可以基于物理地址对至少一个非易失性存储器件执行存储操作。
处理器110可以将存储在主存储装置400中的源代码加载到主机存储器130中的主机区域131,并且可以通过执行加载到主机区域131的代码来运行诸如操作系统和应用的各种软件。另外,处理器110加载存储在存储设备200中的数据并处理加载到主机区域131的数据。处理器110可以将加载到主机区域131的数据中的一部分数据存储在存储设备200中,该部分数据被确定要保留很长时间。
图4示出了根据本发明构思的实施例的图1中的存储控制器的框图。
参照图4,存储控制器300包括:处理器310(诸如中央处理单元(CPU))、局部性监视器320、纠错码(ECC)单元330、主机接口(I/F)340、加载控制器360、非易失性存储器接口(NVM I/F)350和总线315。
总线315可以指传输信道,通过该传输信道在存储控制器300的处理器310、局部性监视器320、ECC单元330、主机接口340、加载控制器360和非易失性存储器接口350之间传输数据。
处理器310可以执行用于主机设备100和非易失性存储装置410~4k0之间的数据交换的操作。处理器310可以执行固件(F/W)311和闪存转换层(FTL)313。
主机接口340连接到主机设备100,非易失性存储器接口350连接到非易失性存储装置410~4k0。处理器310可以经由主机接口340与主机设备100进行通信。主机接口340例如可以使用但不限于SATA接口、并行高级技术附件(PATA)接口、USB或SAS接口、eMMC接口、UFS接口或eMMC接口来实现。
处理器310可以通过非易失性存储器接口350与非易失性存储装置410~4k0通信。非易失性存储器接口350可以连接到非易失性存储装置410~4k0中的每一个。
ECC单元330可以在写入操作期间使用各种引擎为从主机设备100接收到的数据生成纠错码(ECC)。在读取操作期间,ECC单元330可以对从非易失性存储装置410~4k0读取的数据执行错误检测和错误校正,然后将数据提供给主机设备100。
局部性监视器320可以基于从主机设备100接收到的主机地址HADDR(即,逻辑地址)来监视物理地址的局部性,主机地址HADDR可以指示主机设备100对主存储装置400的访问,并且可以向加载控制器360提供指示物理地址具有局部性的局部性信息LIN。
这里,局部性指示数据被使用的频率,当同一数据在短时间内被重复使用,或者空间上靠近的数据在短时间内被访问时,数据可被称为具有高局部性。局部性监视器320可以将使用次数多或使用频率高的数据确定为具有高局部性,将使用次数少或使用频率低的数据确定为具有低局部性。在这种情况下,局部性信息LIN可以基于数据的使用频率指示高局部性或低局部性。
数据的局部性也可以被称为存储相应数据的存储器地址的局部性。因此,局部性监视器320可以将在某个时间段期间访问次数多或者访问频率高的存储器地址确定为具有高局部性,并且可以将访问次数少或访问频率低的存储器地址确定为具有低局部性。在这种情况下,局部性信息LIN可以基于对存储器地址的访问次数来指示高局部性或低局部性。
加载控制器360可以基于局部性信息LIN和与主机存储缓冲器133的大小相关联的大小信息HMSN来控制目录和映射表向主机存储缓冲器133的加载。加载控制器360可以生成与控制目录和映射表的加载相关联的加载模式信号LMS,并且可以通过非易失性存储器接口350向非易失性存储装置410~4k0提供加载模式信号LMS。加载控制器360可以包括存储参考值的寄存器363。
每一个非易失性存储装置410~4k0可以接收加载模式信号LMS,并且可以基于多个加载模式中的由加载模式信号LMS指定的一个加载模式,通过存储控制器300将存储在该非易失性存储装置中的目录和一部分映射表加载到主机存储缓冲器133。
图5示出了根据本发明构思的实施例的图4中的加载控制器的示例的框图。
参照图5,加载控制器360包括第一比较器(比较器1)361、计数器362、寄存器363、第二比较器(比较器2)364和加载模式信号生成器365。
第一比较器361将大小信息HMSN与第一参考值SREF进行比较,以输出第一比较信号CS1。计数器362通过计数指示从主机设备100接收到的逻辑地址不匹配主机存储缓冲器133中的任何一个条目的未命中MISS的数目,来输出计数值CV。计数值CV可以表征为主机存储缓冲器133的访问请求的未命中率。第二比较器364将计数值CV与第二参考值CREF进行比较,以输出第二比较信号CS2。寄存器363存储第一参考值SREF和第二参考值CREF,并将第一参考值SREF提供给第一比较器361,将第二参考值SREF提供给第二比较器364。
加载模式信号生成器365接收第一比较信号CS1、第二比较信号CS2和局部性信息LIN,并基于第一比较信号CS1、第二比较信号CS2和局部性信息LIN生成加载模式信号LMS。
当第一比较信号CS1指示大小信息HMSN小于第一参考值SREF(即,大小参考值)时,加载模式信号生成器365可以响应于第一比较信号CS1和局部性信息LIN生成指定优先加载目录中的一部分目录的加载模式信号LMS。该部分目录可以与具有高局部性的地址相关联。当第一比较信号CS1指示大小信息HMSN等于或大于第一参考值SREF时,加载模式信号生成器365可以响应于第一比较信号CS1和局部性信息LIN,生成指定合并加载至少一个目录和映射表中的一部分映射表的加载模式信号LMS。该至少一个目录可以与具有高局部性的地址相关联,该部分映射表可以与具有高局部性的地址相关联,或者该至少一个目录和该部分映射表可以分别与具有高局部性的地址相关联。当加载模式信号LMS指定合并加载时,存储控制器300以1:N(N是大于2的自然数)的比率将至少一个目录和至少一个映射表加载到主机存储缓冲器133。
在示例实施例中,存储控制器300可以基于主机存储缓冲器133的大小信息HMSN(或大小)来确定N的值。在示例实施例中,存储控制器300可以基于局部性信息LIN和主机存储缓冲器133的大小信息HMSN来确定N的值。例如,可以基于局部性信息LIN和/或主机存储缓冲器133的大小信息HMSN,来确定和与具有高局部性的地址相关联的映射表的数目有关的N的值。即,存储控制器300可以基于局部性信息LIN和主机存储缓冲器133的大小信息HMSN中的至少一个来确定将目录和映射表加载到主机存储缓冲器133的比率。例如,如果与具有高局部性的地址相关联的映射表的数量增加,则存储控制器300可以增加N的值。例如,如果与具有高局部性的地址相关联的映射表的数量减少,则存储控制器300可以减小N的值。
当第二比较信号CS2指示计数值CV等于或大于第二参考值CREF(即,未命中参考值)时,加载模式信号生成器365可以响应于第二比较信号CS2生成指定更新所加载的目录中的一部分目录和映射表中的一部分映射表的加载模式信号LMS。当加载模式信号LMS指定更新时,每个非易失性存储装置410~4k0可以通过存储控制器300向主存储缓冲器133加载目录中的另一部分目录或映射表中的另一部分映射表。
加载模式信号LMS可以指定多个加载模式中的一个。多个加载模式可以包括第一加载模式、第二加载模式和第三加载模式。如上所述,第一加载模式可以指定优先加载目录中的一部分目录。如上所述,第二加载模式可以指定合并加载至少一个目录和映射表中的一部分映射表。第三加载模式可以指定优先加载映射表。
图6示出了图1的存储系统的操作的示例。
参照图1至图6,操作S10表示存储系统10的启动过程(或启动序列)。可以在操作S10期间执行操作S11、S12、S13、S14和S16。在操作S11中,处理器110识别存储控制器300。即,处理器110识别存储设备200。在操作S12中,存储控制器300向处理器110发出与使用主机存储缓冲器133相关联的请求。
在操作S13中,处理器110通过参考存储控制器300的请求来分派(或分配)主机存储器130的一部分作为主机存储缓冲器133。在操作S14中,处理器110通过设置特征命令向存储控制器300通知分配结果和大小信息。在操作S16中,存储控制器300基于大小信息将(a)和(b)中的至少一项加载到主机存储缓冲器133,其中(a)为目录中的一部分目录,(b)为映射表中的至少一部分映射表。
在操作S20中,主机设备100和存储设备200执行正常操作。可以在操作S20中执行操作S21和S23。
在操作S21中,主机设备100将命令CMD和地址ADDR发送到存储设备200。在操作S23中,存储控制器300通过参考加载到主机存储缓冲器133的映射表中的至少一部分映射表和目录中的一部分目录,将地址ADDR转换为物理地址,并在由物理地址所指定的存储器位置执行由命令CMD指定的存储操作。根据存储操作的结果,可以在存储设备200和主机设备100之间交换数据DATA。
图7A示出了存储在图1中的每个非易失性存储器件中的目录和映射表。
参照图7A,示出了包括在主存储装置400中的非易失性存储器件NVM1~NVMk。
例如,目录DIR1和映射表MT11~MT1s可以被存储在非易失性存储器件NVM1~NVMk中的非易失性存储器件NVM1中的元区域中,目录DIRg和映射表MTg1~MTgs可以被存储在非易失性存储器件NVM1~NVMk中的非易失性存储器件NVMg中的元区域中,以及目录DIRk和映射表MTk1~MTks可以被存储在非易失性存储器件NVM1~NVMk中的非易失性存储器件NVMk中的元区域中。
映射表MT11可以存储非易失性存储器件NVM1中的存储块的逻辑页号(逻辑地址)LPN1~LPNj、分别与逻辑页号LPN1~LPNj相对应的物理页号(物理地址)PPN1~PPNj、位图(bit map)BM和第一优先级信息PR11。位图BM可以表示映射表MT11的局部性,并且可以具有高/低值。第一优先级信息PR11可以表示映射表MT11的访问重要度。
存储控制器300的处理器310可以确定位图BM的逻辑值,并且可以基于在每个非易失性存储器件NVM1~NVMk中的每个存储块的编程操作以及读取操作期间对特定存储块的访问频率和局部性来确定第一优先级信息PR11的值。
图7B示出了图7A中的目录的示例。
参照图7B,目录DIR1可以分别存储映射表MT11~MT1s的地址信息MPPN1~MPPNs和第二优先级信息PR21。地址信息MPPN1可以包括存储映射表MT11的存储块BLK1的页PG2的物理地址信息。存储控制器300的处理器310可以基于位图BM和根据目录DIR1被存储的每个映射表MT11~MT1的第一优先级信息来确定第二优先级信息PR21的值。
图8示出了图1的存储系统的操作的另一示例。
在图8中,假设主机存储缓冲器133的大小比第一参考值小。
与图8相关联的操作和与图6相关联的操作不同,与图8相关联的操作还包括操作S15,图8中的操作S16a与图6中的操作S16不同。因此,图8中的启动过程S10a与图6中的启动过程S10不同。以下可以省略图8中的与图6中操作相同的操作描述。
参照图8,操作S10a表示存储系统10的启动过程。可以在操作S10a期间执行操作S11、S12、S13、S14、S15和S16a。在操作S15中,存储控制器300将主机存储缓冲器133的大小信息HMSN与第一参考值(SREF)进行比较,并向主存储装置400提供指示了大小信息HMSN小于第一参考值的加载模式信号LMS。在操作S16a中,存储控制器300基于目录的第二优先级信息(PR21)优选地将目录中的一部分目录加载到主机存储缓冲器133。
图9示出了当执行与图8相关联的操作时的主机存储缓冲器。
参照图9,当主机存储缓冲器133的大小比第一参考值小时,目录DIR1~DIRk中的目录DIR1~DIRg可以由存储控制器300加载到主机存储缓冲器133。
图10示出了图1的存储系统的操作的另一示例。
在图10中,假设主机存储缓冲器133的大小等于或大于第一参考值。
与图10相关联的操作和与图6相关联的操作不同,与图10相关联的操作还包括操作S15,图10中的操作S16b与图6中的操作S16不同。因此,图10中的启动过程S10b与图6中的启动过程S10不同。以下可以省略图10中的与图6中的操作相同的操作描述。
参照图10,操作S10b表示存储系统10的启动过程。可以在操作S10b期间执行操作S11、S12、S13、S14、S15和S16b。在操作S15中,存储控制器300将主机存储缓冲器133的大小信息HMSN与第一参考值进行比较,并向主存储400提供指示了大小信息HMSN等于或大于第一参考值的加载模式信号LMS。在操作S16b中,存储控制器300基于优先级信息和局部性信息LIN将目录中的至少一个目录和映射表中的一部分映射表加载到主机存储缓冲器133。
图11示出了当执行与图10相关联的操作时的主机存储缓冲器。
参照图11,当主机存储缓冲器133的大小等于或大于第一参考值时,目录DIR1~DIRk中的目录DIR1以及一些映射表MT21~MT2q和MTg1~MTgq可以通过存储控制器被加载到主机存储缓冲器133。目录DIR1以及映射表MT21~MT2q和MTg1~MTgq可以以1:N的比率加载到主机存储缓冲器133(N是大于2的自然数)。存储控制器300可以基于大小信息HMSN和局部性信息LIN来调整N的值。也就是说,存储控制器300可以在主机存储缓冲器133的给定大小下,根据与具有高局部性的地址相关联的映射表的数量来调整N的值。与具有高局部性的地址相关联的映射表的数量可以从局部性信息LIN获得。
目录DIR1以及映射表MT21~MT2q和MTg1~MTgq可以分别与不同的非易失性存储器件相关联。目录DIR1以及映射表MT21~MT2q和MTg1~MTgq可以彼此独立。
图12示出了根据本发明构思的实施例的图1中的主存储装置的多个信道和路的示例。
参照图12,非易失性存储装置410~4k0耦接到多个信道组CHG1~CHGk中的相应信道组。如图所示,耦接到信道组CHG1的非易失性存储装置410的多个非易失性存储器件411~41m、耦接到信道组CHG2的非易失性存储420的多个非易失性存储器件421~42m,……,以及耦接到信道组CHGk的非易失性存储4k0的多个非易失性存储器件4k1~4km可以形成多个路:路1~路m(Way1~Waym)。这里,m是大于2的自然数。也就是说,在每个信道组CHG1~CHGk中可以以m个路包括相应的m个非易失性存储器件411~41m、421~42m、......、4k1~4km。
路指示了用于划分共享相同信道的非易失性存储器件的单位。可以根据信道号和路号来识别每个非易失性存储器件。
图13示出了图1的存储设备中的存储控制器与一个非易失性存储器件(即,一个非易失性存储装置)之间的关系的框图。
参照图13,非易失性存储器件411可以在存储控制器300的控制下执行擦除操作、编程操作或写入操作。非易失性存储器件411通过输入/输出线从存储控制器300接收命令CMD、地址ADDR和数据DATA来执行此种操作。
另外,非易失性存储器件411通过控制线接收控制信号CTRL,并通过电源线从存储控制器300接收电力PWR。
图14示出了根据本发明构思的实施例的图13中的非易失性存储器件的框图。
参照图14,非易失性存储器件411包括存储单元阵列420、地址译码器450、页面缓冲器电路430、数据输入/输出(I/O)电路440、控制电路460和电压生成器470。
存储单元阵列420可以通过串选择线SSL、多条字线WL和接地选择线GSL耦接到地址译码器450。另外,存储单元阵列420可以通过多条位线BL耦接到页面缓冲器电路430。
存储单元阵列420可以包括耦接多条字线WL和多条位线BL的多个存储单元。
在一些示例实施例中,存储单元阵列420可以是三维存储单元阵列,其以三维结构(或垂直结构)形成在衬底上。在这种情况下,存储单元阵列420可以包括垂直方向的垂直单元串,使得至少一个存储单元位于另一个存储单元上。
在其他示例实施例中,存储单元阵列420可以是二维存储单元阵列,其以二维结构(或水平结构)形成在衬底上。
图15示出了图14的非易失性存储器件中的存储单元阵列的框图。
参照图15,存储单元阵列420可以包括多个存储块BLK1至BLKz。存储块BLK1至BLKz沿第一方向D1、第二方向D2和第三方向D3延伸。在实施例中,存储块BLK1至BLKz由图14中的地址译码器450进行选择。例如,地址译码器450可以选择与存储块BLK1至BLKz中的块地址对应的存储块BLK。
图16示出了图15的存储块中的一个的电路图。
图16的存储块BLKi可以以三维结构(或垂直结构)形成在衬底SUB上。例如,包括在存储块BLKi中的多个存储单元串可以沿垂直于衬底SUB的方向PD形成。
参照图16,存储块BLKi可以包括耦接在位线BL1、BL2和BL3与公共源极线CSL之间的存储单元串NS11、NS12、NS13、NS21、NS22、NS23、NS31、NS32和NS33(以下可以称为存储单元串NS11至NS33)。存储单元串NS11至NS33中的每个均可以包括串选择晶体管SST、多个存储单元MC1、MC2、MC3、MC4、MC5、MC6、MC7和MC8(以下可以称为存储单元MC1至MC8)以及接地选择晶体管GST。在图16中,存储单元串NS11至NS33中的每个被示出为包括八个存储单元MC1至MC8。然而,示例实施例不限于此。在一些示例实施例中,存储单元串NS11至NS33中的每一个可以包括任何数量的存储单元。
串选择晶体管SST可以连接到相应的串选择线SSL1、SSL2和SSL3。多个存储单元MC1至MC8可以分别连接到相应的字线WL1、WL2、WL3、WL4、WL5、WL6、WL7和WL8(下文中可以将其称为字线WL至WL8)。接地选择晶体管GST可以连接到相应的接地选择线GSL1、GSL2和GSL3。串选择晶体管SST可以连接到相应的位线BL1、BL2和BL3,并且接地选择晶体管GST可以连接到公共源极线CSL。
具有相同高度的字线(例如,WL1)可以被连接在一起,接地选择线GSL1至GSL3与串选择线SSL1至SSL3可以被分离。在图16中,存储块BLKi被示出为耦接到八条字线WL1至WL8和三条位线BL1至BL3。然而,示例实施例不限于此。在一些示例实施例中,存储单元阵列420可以耦接到任何数量的字线和位线。
图17示出了图16的存储块中的单元串CS(例如,存储单元串NS11)的结构的示例。
参照图16和图17,柱PL设置在衬底SUB上,使得柱PL沿垂直于衬底SUB的方向延伸,以与衬底SUB接触。图17中所示的接地选择线GSL(例如,接地选择线GSL1)、字线WL1至WL8和串选择线SSL(例如,串选择线SSL1)中的每一个可以由与衬底SUB平行的导电材料形成,例如,金属材料。柱PL可以通过形成串选择线SSL、字线WL1至WL8和接地选择线GSL的导电材料与衬底SUB接触。
在图17中还示出了沿着线A-A'截取的截面图。在实施例中,示出了对应于第一字线WL1的第一存储单元MC1的截面图。柱PL可以包括圆柱形本体BD。可以在本体BD的内部限定气隙AG。
本体BD可以包括P型硅,并且可以是将形成信道的区域。柱PL还可以包括围绕本体BD的圆柱形隧道绝缘层TI和围绕隧道绝缘层TI的圆柱形电荷俘获层CT。阻挡绝缘层BI可以被设置在第一字线WL和柱PL之间。本体BD、隧道绝缘层TI、电荷俘获层CT、阻挡绝缘层BI和第一字线WL可以构成电荷俘获型晶体管,该电荷俘获型晶体管沿与衬底SUB或衬底SUB的上表面垂直的方向形成。串选择晶体管SST、接地选择晶体管GST和其他存储单元可以具有与第一存储单元MC1相同的结构。
返回参照图14,控制电路460可以从存储控制器300接收命令(信号)CMD和地址(信号)ADDR,并且基于命令信号CMD和地址信号ADDR控制非易失性存储器件411的擦除循环、编程循环和读取操作。编程循环可以包括编程操作和编程验证操作。擦除循环可以包括擦除操作和擦除验证操作。
例如,控制电路460可以基于命令信号CMD生成用于控制电压生成器470的控制信号CTL,并且基于地址信号ADDR生成行地址R_ADDR和列地址C_ADDR。控制电路460可以将行地址R_ADDR提供给地址译码器450,并将列地址C_ADDR提供给数据输入/输出电路440。
地址译码器450可以通过串选择线SSL、多条字线WL和接地选择线GSL耦接到存储单元阵列420。在编程操作或读取操作期间,地址译码器450可以基于行地址R_ADDR将多条字线WL中的一条确定为第一字线(即,所选择的字线),并且将多条字线WL中除了第一字线外的其余字线确定为未选择的字线。
电压生成器470可以基于控制信号CTL生成字线电压VWL,该字线电压VWL是非易失性存储器件411的操作所需的。电压生成器470可以从存储控制器300接收电力PWR。字线电压VWL可以通过地址译码器450施加到多条字线WL。
例如,在擦除操作期间,电压生成器470可以将擦除电压施加到存储块的阱,并且可以将接地电压施加到存储块的全部字线(即,所有字线)。在擦除验证操作期间,电压生成器470可以将擦除验证电压施加到存储块的全部字线,或者逐字线地将擦除验证电压顺序地施加到字线。
例如,在编程操作期间,电压生成器470可以将编程电压施加到第一字线,并且可以将免编程(program pass)电压施加到未选择的字线。另外,在编程验证操作期间,电压生成器470可以将编程验证电压施加到第一字线,并且可以将免验证(verification pass)电压施加到未选择的字线。
另外,在读取操作期间,电压生成器470可以将读取电压施加到第一字线,并且可以将免读取(read pass)电压施加到未选择的字线。
页面缓冲器电路430可以通过多条位线BL耦接到存储单元阵列420。页面缓冲器电路430可以包括多个页面缓冲器。在一些示例实施例中,一个页面缓冲器可以连接到一条位线。在其他示例实施例中,一个页面缓冲器可以连接到两条或更多条位线。
页面缓冲器电路430可以临时存储要在所选择的页面中编程的数据或从所选择的页面读出的数据。
数据输入/输出电路440可以通过数据线DL耦接到页面缓冲器电路430。在编程操作期间,数据输入/输出电路440可以从存储控制器300接收数据DATA,并且基于从控制电路460接收到的列地址C_ADDR将数据DATA提供给页面缓冲器电路430。在读取操作期间,数据输入/输出电路440可以基于从控制电路460接收到的列地址C_ADDR将存储在页面缓冲器电路430中的数据DATA提供给存储控制器300。
另外,页面缓冲器电路430和数据输入/输出电路440从存储单元阵列420的第一区域读取数据,并将所读取的数据写入存储单元阵列420的第二区域。即,页面缓冲器电路430和数据输入/输出电路440可以执行回写(copy-back)操作。页面缓冲器电路430和数据输入/输出电路440可以由控制电路460控制。
图18示出了根据本发明构思的实施例的操作存储设备的方法的流程图。
参照图1至图18,提供了一种操作存储设备200的方法,该存储设备200包括主存储装置400以及存储控制器300,其中主存储装置400存储数据并包括多个非易失性存储器件(即,非易失性存储装置),存储控制器300控制主存储装置400。在操作S610中,存储控制器300从主机设备100接收控制存储设备200的主机设备100中包括的主机存储缓冲器133的大小信息HMSN。主机设备100可以响应于来自存储控制器300的请求将主机存储器130的一部分分配为主机存储缓冲器133,并且可以将分配结果和主机存储缓冲器133的大小信息HMSN发送到存储控制器300。
在操作S620中,存储控制器300可以基于大小信息HMSN和与主机设备100的数据访问模式相关联的局部性信息LIN中的至少一个,将(a)和(b)中的至少一项加载到主机存储缓冲器133中,其中(a)为映射表MT中的至少一部分映射表;(b)为目录DIR中的一部分目录中的至少一个目录。如前所述,局部性信息LIN涉及数据的使用频率和/或对存储器地址的访问次数,因此,与主机设备100的访问模式相关联,或者换句话说,与主机设备100如何访问存储设备200中的数据相关联。映射表MT被存储在非易失性存储器件中,每个映射表MT表示对应的非易失性存储器件的物理地址与逻辑地址之间的映射关系。目录存储映射表MT的地址信息。
在操作S670中,存储控制器300基于来自主机设备100的命令CMD和地址ADDR,通过参考主机存储缓冲器133在由地址ADDR指定的存储器位置执行由命令CMD指定的存储操作。
图19示出了图18中的加载目录和映射表的操作的流程图。
参照图19,操作S620包括操作S630、S640和S650。
在操作S630中,存储控制器300的加载控制器360将主机存储缓冲器133的大小信息HMSN与第一参考值SREF进行比较,并确定主机存储缓冲器133的大小是否小于第一参考值SREF。
当主机存储缓冲器133的大小小于第一参考值SREF时(S630中的是),在操作S640中,存储控制器300基于目录的第二优先级信息优先将目录中的一部分目录加载到主机存储缓冲器133。
当主机存储缓冲器133的大小等于或大于第一参考值SREF时(S630中的否),在操作S640中,存储控制器300基于局部性信息LIN、映射表的第一优先级信息和目录的第二优先级信息,将目录中的至少一个目录和映射表中的一部分映射表加载到主机存储缓冲器133。
因此,当主机存储缓冲器133的大小不能够覆盖存储设备200中的主存储装置400的映射表的整体地址空间时,存储控制器300可以基于主机存储缓冲器133的大小和与数据访问模式相关联的局部性信息LIN中的至少一者,将至少一部分映射表和一部分目录动态地加载到主机存储缓冲器133。存储控制器300可以通过参考主机存储缓冲器133在由与逻辑地址对应的物理地址指定的存储器位置执行存储操作。存储控制器300可以减少访问映射表的访问时间。
图20示出了根据本发明构思的实施例的存储系统的框图。
参照图20,存储系统10a包括主机设备100a和存储设备200a。
图20中的存储系统10a与图1的存储系统10不同之处在于:图20中的主机设备100a没有将主机存储器的一部分作为主机存储缓冲器,并且图20中的存储控制器300a在基于缓冲存储器的大小和局部性信息将一部分目录和一部分映射表加载到存储控制器300a中包括的缓冲存储器之后,执行存储操作。以下可以省略图20中的与图1中的结构和功能相同的结构和功能的描述。
存储设备200a包括存储控制器300a和主存储装置400。主存储装置400包括多个非易失性存储装置410~4k0。存储设备200a还可以包括DRAM 220。DRAM 220连接到存储控制器300a和主存储装置400,并且可以对存储在非易失性存储装置410~4k0中的元数据进行临时存储。
图21示出了根据本发明构思的实施例的图20中的存储控制器的框图。
参照图21,存储控制器300a包括处理器310a,诸如中央处理单元(CPU)、局部性监视器320、ECC单元330、主机接口(I/F)340、缓冲存储器370、非易失性存储器接口(I/F)350和总线315。处理器310a可以包括加载控制器360a。
在示例实施例中,加载控制器360a可以作为单独的组件包括在存储控制器300a中,而不是包括在处理器310a中。
存储控制器300a的配置和操作可以基本上类似于图4的存储控制器300的配置和操作。因此,以下可以省略图21中的与图4中的结构和功能相同的结构和功能的描述。
在图21中,假设缓冲存储器370的大小不能覆盖存储设备300a中的主存储装置400的映射表的整个地址空间。
局部性监视器320可以基于从主机设备100a接收的主机地址HADDR(即,逻辑地址)来监视物理地址的位置,并且可以向加载控制器360提供指示物理地址具有局部性的局部性信息LIN。
加载控制器360a可以基于局部性信息LIN和与缓冲存储器370的大小相关联的大小信息BMSN来控制目录和映射表向缓冲存储器370的加载。加载控制器360a可以生成与控制目录和映射表的加载相关联的加载模式信号LMS1,并且可以通过非易失性存储器接口350向非易失性存储400a~400k提供加载模式信号LMS1。加载控制器360a可以包括存储参考值的寄存器。
加载控制器360a可以将大小信息BMSN与第一参考值进行比较,并且可以响应于大小信息BMSN小于第一参考值,生成加载模式信号LMS1,该加载模式信号LMS1指定将目录371中的一部分目录优先加载到缓冲存储器370。
加载控制器360a可以将大小信息BMSN与第一参考值进行比较,并且可以响应于大小信息BMSN等于或大于第一参考值,生成加载模式信号LMS1,该加载模式信号LMS1指定将目录371中的一部分目录和映射表373中的一部分映射表合并加载到缓冲存储器370。
因此,当缓冲存储器370的一部分或整体的大小不能够覆盖存储设备200a中的主存储装置400的映射表的整体地址空间时,存储控制器300a可以基于缓冲存储器370的大小和与数据访问模式相关联的局部性信息LIN中的至少一个,将映射表中的至少一部分映射表和目录中的一部分目录动态地加载到缓冲存储器370。存储控制器300a可以通过参考缓冲存储器370在由与逻辑地址对应的物理地址指定的存储器位置执行存储操作。存储控制器300a可以减少访问映射表的访问时间。
图22A示出了根据图1中的存储系统中的主存储缓冲器的大小访问映射表的访问时间的曲线图。
在图22A中,假设N是32。
在图22A中,附图标记711(第一种情况)表示当目录中的一部分目录被加载到主机存储缓冲器HMB(例如,主机设备100的主机存储器130中的主机存储缓冲器133)时的访问时间,附图标记712(第二种情况)表示当基于主机存储缓冲器HMB的大小和局部性将目录和映射表以1:N的比率加载到主机存储缓冲器HMB时的访问时间,附图标记713(第三种情况)表示当映射表中的一部分映射表被加载到主机存储缓冲器HMB时的访问时间。
参照图22A,当主机存储缓冲器HMB的大小小于第一参考大小SREF11时,第一种情况的访问时间短于第二种情况的访问时间和第三种情况的访问时间。当主机存储缓冲器HMB的大小等于或大于第一参考大小SREF11时,第二种情况的访问时间短于第一种情况的访问时间和第三种情况的访问时间。
另外,当主机存储缓冲器HMB的大小大于第二参考大小SREF12时,第二种情况的访问时间和第三情况的访问时间短于第一种情况的访问时间。
图22B示出了根据图20的存储系统中的缓冲存储器(例如,存储设备200a的存储控制器300a中的缓冲存储器370)的大小和图21的存储控制器访问映射表的访问时间的曲线图。
在图22B中,假设N是32。
在图22B中,附图标记721(第一种情况)表示当目录中的一部分目录被加载到缓冲存储器370时的访问时间,附图标记722(第二种情况)表示当基于缓冲存储器370的大小和局部性将目录和映射表以1:N的比率加载到缓冲存储器370时的访问时间,附图标记723(第三种情况)表示当映射表中的一部分映射表被加载到缓冲存储器370时的访问时间。
参照图22B,当缓冲存储器370的大小小于第一参考大小SREF21时,第一种情况的访问时间短于第二种情况的访问时间和第三种情况的访问时间。
当缓冲存储器370的大小等于或大于第一参考大小SREF21时,第二种情况的访问时间与第一种情况的访问时间基本相同。
图23示出了根据本发明构思的实施例的包括数据存储设备的系统的框图。
参照图23,系统1000包括主机设备2000和存储设备3000。例如,主机设备2000可以是嵌入式多媒体卡(eMMC)、固态硬盘(SSD)等。
主机设备2000可以被配置为控制数据处理操作,例如数据读取操作和数据写入操作。
主机设备2000可以包括通过总线20连接的处理器(CPU)2100、主机存储器(HMEM)2200、主机控制器接口(HCI)2300和存储器控制器2400。主机存储器2200可以分配存储目录的一部分和映射表的一部分的主机存储缓冲器2210。操作系统(OS)和/或主机固件(FW)2110可以由处理器2100运行。处理器2100可以运行操作系统和主机固件2110以执行这些操作。存储器控制器2400可以在处理器2100的控制下控制主存储器2200。存储器控制器2400可以将主机存储器2200的一部分分派为可在处理器2100的控制下由存储设备3000访问的主机存储缓冲器2210。
主机控制器接口2300可以与存储设备3000接口连接。例如,主机控制器接口2300被配置为向存储设备3000发出命令CMD,从存储设备3000接收对命令CMD的响应RES,向存储设备3000发送写入数据,并从存储设备3000接收读取数据。
存储设备3000可以包括多个非易失性存储器件(NVM)3100和存储控制器3200。
可选地,可以向非易失性存储器件3100提供外部高电压VPP。存储控制器3200可以通过多个信道CH1至CHi连接到非易失性存储器件3100。存储控制器3200可以包括通过总线30连接的一个或更多个处理器CPU3210、ECC引擎3220、主机接口3230、加载控制器3240、非易失性存储器接口3250和局部性监视器3260。
处理器3210被配置为控制存储控制器3200的整体操作。例如,处理器3210可以运行具有闪存转换层(FTL)的固件3212,并且可以包括其他固件。FTL可以执行各种功能,例如地址映射、读取校准、纠错以及其他功能。
如上所述,当监视数据的局部性时,局部性监视器3260监视数据的局部性并向加载控制器3240提供局部性信息。
如上所述,加载控制器3240基于主机存储缓冲器2210的大小和局部性信息中的至少一个,将至少一部分映射表和一部分目录动态地加载到主机存储缓冲器2210。
主机接口3230可以提供与诸如主机设备2000的外部设备连接的接口。非易失性存储器接口3250可以提供与非易失性存储器件3100连接的接口。主机设备2000和存储设备3000可以通过总线15连接。
图24是示出根据示例实施例的移动设备的框图。
参照图24,移动设备4000可以包括应用处理器4100(包括一个或更多个应用处理器)、通信模块4200、显示/触摸模块4300、数据存储设备4400和移动RAM 4500。
应用处理器4100控制移动设备4000的操作。通信模块4200被实现为执行与外部设备的无线或有线通信。显示/触摸模块4300被实现为显示由应用处理器4100处理后的数据和/或通过触摸板(未示出)接收数据。数据存储设备4400用于存储用户数据。
数据存储设备4400可以是例如嵌入式多媒体卡(eMMC)、固态硬盘(SSD)、通用闪存(UFS)设备等。数据存储设备4400可以包括加载控制器4410,该加载控制器4410如上所述的将至少一部分映射表和一部分目录动态地加载到移动RAM 4500中的主机存储缓冲器4510。
移动RAM 4500临时存储用于处理移动设备4000的操作的数据。例如,移动RAM4500可以是例如双倍数据速率(DDR)同步DRAM(SDRAM)、低功率DDR(LPDDR)SDRAM、图形DDR(GDDR)SDRAM、Rambus DRAM等。
如上所述,存储控制器可以基于主存储器缓冲区的大小和与数据访问模式相关联的局部性信息中的至少一个,将至少一部分映射表和一部分目录动态地加载到主存储器缓冲区,并且可以减少访问映射表的访问时间。
本公开可以应用于包括存储设备的各种电子设备。例如,本公开可以应用于以下系统:诸如移动电话、智能电话、个人数字助理(PDA)、便携式多媒体播放器(PMP)、数码相机、便携式摄像机、个人计算机(PC)、服务器计算机、工作站、膝上型计算机、数字电视、机顶盒、便携式游戏机、导航系统等。
前述内容是对示例实施例的说明,而不应解释为对其进行限制。尽管已经描述了一些示例实施例,但是本领域技术人员将容易理解,在示例实施例中可以进行许多修改而不会实质上脱离本发明构思的新颖教导和优点。因此,所有这些修改旨在包括在权利要求中限定的本发明构思的范围内。
Claims (20)
1.一种存储设备,包括:
主存储装置,所述主存储装置被配置为存储数据并且包括多个非易失性存储器件;以及
存储控制器,所述存储控制器被配置为控制所述主存储装置,
其中,所述存储控制器被配置为基于外部主机设备中包括的主机存储缓冲器的大小和与所述外部主机设备的数据访问模式相关联的局部性信息,将(a)和(b)中的至少一项加载到所述主机存储缓冲器:(a)映射表中的至少一部分映射表;(b)目录中的一部分目录中的至少一个目录,
其中,所述映射表被存储在所述非易失性存储器件中,所述映射表指示所述非易失性存储器件中的对应的非易失性存储器件的物理地址与逻辑地址之间的映射关系,以及
其中,所述目录被配置为存储在所述非易失性存储器件中存储的所述映射表的地址信息。
2.根据权利要求1所述的存储设备,其中,所述映射表被配置为存储指示所述映射表的访问重要程度的第一优先级信息,并且
所述目录被配置为存储指示所述目录的访问重要程度的第二优先级信息。
3.根据权利要求2所述的存储设备,其中,所述存储控制器进一步被配置为:响应于确定所述主机存储缓冲器的大小小于参考值,基于所述第二优先级信息优先将所述的目录中的一部分目录中的至少一个目录加载到所述主机存储缓冲器。
4.根据权利要求2所述的存储设备,其中,所述存储控制器进一步被配置为响应于确定所述主机存储缓冲器的大小等于或大于参考值,基于所述第一优先级信息、所述第二优先级信息和所述局部性信息,既将所述的目录中的一部分目录中的至少一个目录也将所述的映射表中的至少一部分映射表,加载到所述主机存储缓冲器。
5.根据权利要求4所述的存储设备,其中,所述的目录中的一部分目录中的至少一个目录和所述的映射表中的至少一部分映射表与所述多个非易失性存储器件中的不同的非易失性存储器件相关联。
6.根据权利要求4所述的存储设备,其中,所述存储控制器进一步被配置为将所述的目录中的一部分目录中的至少一个目录和所述的映射表中的至少一部分映射表以1:N的比率加载到所述主机存储缓冲器,其中N是大于2的自然数。
7.根据权利要求6所述的存储设备,其中,所述存储控制器还被配置为基于所述主机存储缓冲器的大小来确定N的值。
8.根据权利要求1所述的存储设备,其中,所述存储控制器进一步被配置为:
基于所述主机存储缓冲器的大小和所述局部性信息,确定所述目录和所述映射表的加载比率;以及
根据所确定的所述加载比率,将所述的目录中的一部分目录中的至少一个目录和所述映射表中的至少一部分映射表加载到所述主机存储缓冲器。
9.根据权利要求8所述的存储设备,其中,
所述映射表被配置为存储指示所述映射表的访问重要程度的第一优先级信息;
所述目录被配置为存储指示所述目录的访问重要程度的第二优先级信息;以及
所述存储控制器被配置为基于所述第一优先级信息和所述第二优先级信息,选择要被加载到所述主机存储缓冲器的所述的目录中的一部分目录中的至少一个目录和所述映射表中的至少一部分映射表。
10.根据权利要求1所述的存储设备,其中,所述存储控制器包括:
局部性监视器,所述局部性监视器被配置为通过监视指示所述外部主机设备对所述主存储装置的访问的主机访问地址来生成所述局部性信息;以及
加载控制器,所述加载控制器被配置为基于所述局部性信息和与所述主机存储缓冲器的大小相关联的大小信息,控制所述目录和所述映射表向所述主机存储缓冲器的加载。
11.根据权利要求10所述的存储设备,其中,所述加载控制器包括:
第一比较器,所述第一比较器被配置为将所述大小信息与第一参考值进行比较,以输出第一比较信号;
计数器,所述计数器被配置为通过对未命中的数目进行计数来输出计数值,所述未命中是指从所述外部主机设备接收的所述逻辑地址不匹配所述主机存储缓冲器中的条目中的任一个条目;
第二比较器,所述第二比较器被配置为将所述计数值与第二参考值进行比较,以输出第二比较信号;
加载模式信号生成器,所述加载模式信号生成器被配置为基于所述第一比较信号、所述第二比较信号和所述局部性信息,生成指定多个加载模式中的一个加载模式的加载模式信号;以及
寄存器,所述寄存器被配置为存储所述第一参考值和所述第二参考值。
12.根据权利要求11所述的存储设备,其中所述加载模式信号生成器被配置为响应于所述第一比较信号指示所述大小信息小于所述第一参考值,生成指定优先加载所述的目录中的一部分目录中的至少一个目录的加载模式信号。
13.根据权利要求11所述的存储设备,其中,所述加载模式信号生成器被配置为响应于所述第一比较信号指示所述大小信息等于或大于所述第一参考值,生成指定合并加载所述的目录中的一部分目录中的至少一个目录和所述的映射表中的至少一部分映射表的加载模式信号。
14.根据权利要求1所述的存储设备,其中,所述存储控制器进一步被配置为在所述存储设备的启动序列期间,将(a)和(b)中的至少一项加载到所述主机存储缓冲器:(a)所述的映射表中的至少一部分映射表和(b)所述的目录中的一部分目录中的至少一个目录。
15.根据权利要求14所述的存储设备,其中,所述存储控制器还被配置为在所述启动序列完成之后,执行以下操作:
从所述外部主机设备接收命令和地址;
通过参考所述主机存储缓冲器,搜索由所述地址指定的物理地址;以及
在由所述物理地址指定的存储区域执行由所述命令指定的存储操作。
16.一种操作存储设备的方法,所述存储设备包括存储数据的主存储装置和控制所述主存储装置的存储控制器,所述主存储装置包括多个非易失性存储器件,所述方法包括:
由所述存储控制器从控制所述存储设备的外部主机设备接收所述外部主机设备中包括的主机存储缓冲器的大小信息;
由所述存储控制器基于所述主机存储缓冲器的大小信息和与所述外部主机设备的数据访问模式相关联的局部性信息,将(a)和(b)中的至少一项加载到所述主机存储缓冲器:(a)映射表中的至少一部分映射表、(b)目录中的一部分目录中的至少一个目录,其中所述映射表被存储在所述非易失性存储器件中,所述映射表指示所述非易失性存储器件中的对应的非易失性存储器件的物理地址与逻辑地址之间的映射关系,其中所述目录被配置为存储所述映射表的地址信息;以及
由所述存储控制器基于从所述主机设备接收的命令和地址通过参考所述主机存储缓冲器,在由所述地址指定的所述非易失性存储器件的存储区域执行由所述命令指定的存储操作。
17.一种存储设备,包括:
主存储装置,所述主存储装置包括存储目录和映射表的非易失性存储器件,其中,所述映射表指示所述非易失性存储器件中的相应非易失性存储器件的物理地址与逻辑地址之间的映射关系,所述目录存储所述非易失性存储器件中存储的映射表的地址信息;以及
存储控制器,所述存储控制器被配置为基于外部主机设备的主机存储缓冲器的大小和指示从所述外部主机设备接收的逻辑地址与所述主机存储缓冲器中的条目中的任何一个条目不匹配的未命中的数目的计数值,以多个模式来控制所述主存储装置并选择性地将所述目录和所述映射表从所述非易失性存储器件加载到所述主机存储缓冲器,
其中,所述多个模式包括第一模式、第二模式和第三模式,所述第一模式包括优先将所述目录从所述非易失性存储器件加载到所述主机存储缓冲器,所述第二模式包括将所述目录和所述映射表从所述非易失性存储器件合并加载到所述主机存储缓冲器,所述第三模式包括优先将所述映射表从所述非易失性存储器件加载到所述主机存储缓冲器。
18.根据权利要求17所述的存储设备,其中,所述存储控制器进一步被配置为当所述主机存储缓冲器的大小比大小参考值小时,选择所述第一模式。
19.根据权利要求17所述的存储设备,其中,所述存储控制器进一步被配置为当所述计数值等于或大于未命中参考值时,选择所述第三模式。
20.根据权利要求17所述的存储设备,其中所述存储控制器进一步被配置为:在所述第二模式期间,将所述目录中的至少一个目录和所述映射表中的至少一个映射表以1:N的比率从所述非易失性存储器件加载到所述主机存储缓冲器,其中N是大于2的自然数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180132843A KR20200050169A (ko) | 2018-11-01 | 2018-11-01 | 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법 |
KR10-2018-0132843 | 2018-11-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111143233A true CN111143233A (zh) | 2020-05-12 |
Family
ID=67742329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910773518.1A Pending CN111143233A (zh) | 2018-11-01 | 2019-08-21 | 存储设备及操作存储设备的方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11036425B2 (zh) |
EP (1) | EP3647958B1 (zh) |
KR (1) | KR20200050169A (zh) |
CN (1) | CN111143233A (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210143387A (ko) * | 2020-05-20 | 2021-11-29 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 |
US11734018B2 (en) | 2020-07-17 | 2023-08-22 | Western Digital Technologies, Inc. | Parallel boot execution of memory devices |
KR20230037240A (ko) * | 2021-09-09 | 2023-03-16 | 에스케이하이닉스 주식회사 | 호스트 장치, 메모리 컨트롤러 및 이를 포함하는 컴퓨팅 시스템 |
KR102497130B1 (ko) * | 2021-11-11 | 2023-02-07 | 삼성전자주식회사 | 스토리지 장치 및 그것의 동작 방법 |
US11704236B2 (en) * | 2021-11-17 | 2023-07-18 | Western Digital Technologies, Inc. | Method and storage system with a layered caching policy |
US20240086071A1 (en) * | 2022-09-12 | 2024-03-14 | Western Digital Technologies, Inc. | Ssd use of host memory buffer for improved performance |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6377500B1 (en) * | 1999-11-11 | 2002-04-23 | Kabushiki Kaisha Toshiba | Memory system with a non-volatile memory, having address translating function |
US7509474B2 (en) * | 2005-06-08 | 2009-03-24 | Micron Technology, Inc. | Robust index storage for non-volatile memory |
US9244833B2 (en) * | 2012-05-30 | 2016-01-26 | Silicon Motion, Inc. | Data-storage device and flash memory control method |
US20140181402A1 (en) * | 2012-12-21 | 2014-06-26 | Advanced Micro Devices, Inc. | Selective cache memory write-back and replacement policies |
KR102254392B1 (ko) | 2014-05-12 | 2021-05-25 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템 |
US9507722B2 (en) * | 2014-06-05 | 2016-11-29 | Sandisk Technologies Llc | Methods, systems, and computer readable media for solid state drive caching across a host bus |
US9563382B2 (en) | 2014-06-05 | 2017-02-07 | Sandisk Technologies Llc | Methods, systems, and computer readable media for providing flexible host memory buffer |
US10007433B2 (en) | 2015-01-21 | 2018-06-26 | Sandisk Technologies Llc | Systems and methods for performing adaptive host memory buffer caching of transition layer tables |
CN106033319A (zh) * | 2015-03-11 | 2016-10-19 | 广明光电股份有限公司 | 固态硬盘动态建立转换层的方法 |
US20170235681A1 (en) * | 2016-02-12 | 2017-08-17 | Kabushiki Kaisha Toshiba | Memory system and control method of the same |
US10642496B2 (en) | 2016-04-01 | 2020-05-05 | Sandisk Technologies Inc. | Out of order read transfer with host memory buffer |
US10102135B2 (en) | 2016-04-06 | 2018-10-16 | Dell Products, Lp | Dynamically-adjusted host memory buffer |
US20170300422A1 (en) * | 2016-04-14 | 2017-10-19 | Micron Technology, Inc. | Memory device with direct read access |
US20170351452A1 (en) | 2016-06-01 | 2017-12-07 | Intel Corporation | Dynamic host memory buffer allocation |
KR102667430B1 (ko) | 2016-08-04 | 2024-05-23 | 삼성전자주식회사 | 호스트 메모리를 이용하는 데이터 저장 장치 및 그것의 동작 방법 |
US10055164B2 (en) | 2016-09-07 | 2018-08-21 | Sandisk Technologies Llc | Data storage at an access device |
KR20180054394A (ko) | 2016-11-15 | 2018-05-24 | 삼성전자주식회사 | 호스트 메모리 버퍼(Host Memory Buffer)를 관리하기 위한 NVMe(Non-Volatile Memory Express) 컨트롤러를 포함하는 솔리드 스테이트 저장 장치(solid state storage device), 이를 포함하는 시스템 및 호스트의 호스트 메모리 버퍼를 관리하는 방법 |
JP2019020788A (ja) * | 2017-07-11 | 2019-02-07 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
-
2018
- 2018-11-01 KR KR1020180132843A patent/KR20200050169A/ko not_active Application Discontinuation
-
2019
- 2019-07-09 US US16/506,793 patent/US11036425B2/en active Active
- 2019-08-21 CN CN201910773518.1A patent/CN111143233A/zh active Pending
- 2019-08-23 EP EP19193480.1A patent/EP3647958B1/en active Active
-
2021
- 2021-05-10 US US17/316,422 patent/US11513728B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3647958B1 (en) | 2022-06-08 |
US20200142630A1 (en) | 2020-05-07 |
US11036425B2 (en) | 2021-06-15 |
EP3647958A1 (en) | 2020-05-06 |
KR20200050169A (ko) | 2020-05-11 |
US11513728B2 (en) | 2022-11-29 |
US20210263675A1 (en) | 2021-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3647958B1 (en) | Storage devices methods of operating storage devices and storage systems | |
CN109783009B (zh) | 存储器系统及其操作方法 | |
US11068408B2 (en) | Memory system and operating method thereof | |
US11150837B2 (en) | Method, device and system for processing sequential groups of buffered write data | |
US10719264B2 (en) | Solid state drive device and storage system having the same | |
KR102285462B1 (ko) | 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 메모리 시스템의 동작 방법 | |
US20120066438A1 (en) | Non-volatile memory device, operation method thereof, and device having the same | |
US11386005B2 (en) | Memory system, memory controller, and method of operating memory system for caching journal information for zone in the journal cache | |
KR20190106228A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
US11875055B2 (en) | Storage device that receives inode address information to reduce external communication overhead | |
CN111338564B (zh) | 包括数据存储设备的系统和控制丢弃操作的方法 | |
KR20190083148A (ko) | 데이터 저장 장치 및 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템 | |
CN110888597A (zh) | 存储设备、存储系统以及操作存储设备的方法 | |
US20220253245A1 (en) | Storage device and method of operating the same | |
US10936421B2 (en) | Memory system having storage device and memory controller and operating method thereof | |
KR20200044461A (ko) | 메모리 시스템 및 그것의 동작방법 | |
KR20200079852A (ko) | 메모리 시스템 및 그것의 동작방법 | |
US10942667B2 (en) | Storage device having variable erase unit size and storage system including the same | |
CN113806240A (zh) | 存储装置及其操作方法 | |
US12001709B2 (en) | Storage devices and operating methods of storage controllers | |
KR20200113990A (ko) | 메모리 시스템 내 메모리 장치의 동작 상태를 확인하는 방법 및 장치 | |
US20210334173A1 (en) | Storage device and method of operating the same | |
KR20160144574A (ko) | 불휘발성 메모리 모듈 및 그것의 데이터 쓰기 방법 | |
KR20200031886A (ko) | 메모리 시스템 및 그것의 동작방법 | |
CN115132252A (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 |