CN115509950A - 存储器系统、包括存储器系统的数据处理系统及操作方法 - Google Patents
存储器系统、包括存储器系统的数据处理系统及操作方法 Download PDFInfo
- Publication number
- CN115509950A CN115509950A CN202210172073.3A CN202210172073A CN115509950A CN 115509950 A CN115509950 A CN 115509950A CN 202210172073 A CN202210172073 A CN 202210172073A CN 115509950 A CN115509950 A CN 115509950A
- Authority
- CN
- China
- Prior art keywords
- host
- mapping
- memory
- segment
- memory system
- 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.)
- Withdrawn
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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- 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/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/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/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
- 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/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
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 Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种存储器系统、包括存储器系统的数据处理系统及其操作方法,该数据处理系统包括:存储器系统,适用于向主机提供包括多个映射片段的存储器映射段,每个映射片段包括逻辑地址和物理地址之间的映射关系;以及主机,适用于存储可以从存储器系统提供的存储器映射段作为主机映射段,并通过使用主机映射段将逻辑地址转换为物理地址。存储器系统可以进一步适用于:将多个映射片段之中的一个或多个改变后的映射片段存储在映射高速缓存中,在对主机的第一命令的响应中插入改变后的映射片段,并向主机提供响应。主机可以进一步适用于基于通过响应提供的改变后的映射片段更新主机映射段。
Description
相关申请的交叉引用
本申请要求于2021年6月7日提交的、申请号为10-2021-0073727的韩国专利申请的优先权,该韩国专利申请的公开内容通过引用整体并入本文。
技术领域
本公开的各个实施例总体上涉及一种存储器系统、包括存储器系统的数据处理系统及其操作方法。
背景技术
计算机环境范例已经转变为使得能够随时随地使用计算系统的普适计算。因此,诸如移动电话、数码相机和膝上型计算机的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有用于存储数据的一个或多个存储器装置的存储器系统。存储器系统可以用作便携式电子装置的主存储器装置或辅助存储器装置。
由于存储器系统没有移动部件,因此存储器系统提供了诸如优异的稳定性和耐用性、高信息访问速度以及低功耗的优点。具有这些优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
本公开的各个实施例涉及一种允许主机向存储器系统提供请求的存储器系统、包括存储器系统的数据处理系统及其操作方法,该请求包括待从存储器系统读取的数据的物理地址。
根据本公开的实施例,一种数据处理系统包括:存储器系统,适用于向主机提供包括多个映射片段(map piece)的存储器映射段(memory map segment),每个映射片段包括逻辑地址和物理地址之间的映射关系;以及主机,适用于存储可以从存储器系统提供的存储器映射段作为主机映射段,并通过使用主机映射段将逻辑地址转换为物理地址,存储器系统可以进一步适用于:将多个映射片段之中的一个或多个改变后的映射片段存储在映射高速缓存中,在对主机的第一命令的响应中插入改变后的映射片段,并向主机提供响应,主机可以进一步适用于基于通过响应提供的改变后的映射片段更新主机映射段,并且其中,当来自主机的读取命令包括逻辑地址和物理地址时,存储器系统可以进一步适用于通过根据读取命令中包括的逻辑地址是否被存储在映射高速缓存中来选择性地使用读取命令中包括的物理地址来访问存储器装置。
当读取命令中包括的逻辑地址未存储在映射高速缓存中时,存储器系统通过使用读取命令中包括的物理地址来访问存储器装置。
当读取命令中包括的逻辑地址被存储在映射高速缓存中时,存储器系统通过使用可以基于存储在映射高速缓存中的改变后的映射片段从读取命令中包括的逻辑地址转换而得到的物理地址来访问存储器装置。
当主机映射段的更新完成时,存储器系统可以进一步适用于从映射高速缓存中移除改变后的映射片段。
主机可以包括适用于将第一命令排队的时隙,主机可以进一步适用于:在主机映射段更新之后从时隙中移除第一命令,将第二命令排队在时隙中,并向存储器系统提供指示时隙的门铃信号,存储器系统可以进一步适用于:存储时隙的标识,并且通过接收门铃信号来检测主机映射段的更新完成。
存储器映射段对应于被超过阈值水平频繁地访问的逻辑地址区域。
存储器系统可以将存储器映射段的标识和存储器映射段内改变后的映射片段的位置信息与改变后的映射片段一起插入响应。
响应可以具有响应(response)UFS协议信息单元(UPIU)的格式。
存储器系统可以进一步适用于向主机提供关于包括改变后的映射片段的存储器映射段的提示信息,以使主机响应于该提示信息向存储器系统提供读取缓冲命令作为第一命令。
响应可以具有数据输入(data in)UFS协议信息单元(UPIU)的格式。
根据本公开的实施例,一种存储器系统包括:存储器装置,适用于存储数据;以及控制器,适用于:向主机提供可以包括多个映射片段的存储器映射段作为主机映射段,每个映射片段包括逻辑地址和物理地址之间的映射关系;将多个映射片段之中的一个或多个改变后的映射片段存储在映射高速缓存中,通过将改变后的映射片段插入对主机的第一命令的响应并向主机提供该响应使主机更新主机映射段,主机映射段基于通过响应而提供的改变后的映射片段被更新;并且当来自主机的读取命令包括逻辑地址和物理地址时,通过根据读取命令中包括的逻辑地址是否被存储在映射高速缓存中,选择性地使用读取命令中包括的物理地址来访问存储器装置。
当读取命令中包括的逻辑地址未存储在映射高速缓存中时,控制器通过使用读取命令中包括的物理地址来访问存储器装置。
当读取命令中包括的逻辑地址被存储在映射高速缓存中时,控制器通过使用以基于存储在映射高速缓存中的改变后的映射片段从读取命令中包括的逻辑地址转换而得到的物理地址来访问存储器装置。
当主机映射段的更新完成时,控制器可以进一步适用于从映射高速缓存中移除改变后的映射片段。
控制器可以进一步适用于:存储主机中包括的时隙的标识并将第一命令排队,并且通过接收指示时隙的门铃信号来检测主机映射段的更新完成,门铃信号可以在主机映射段更新之后从时隙中移除第一命令,并将第二命令排队在时隙时从主机被提供。
存储器映射段对应于被超过阈值水平频繁地访问的逻辑地址区域。
控制器可以将存储器映射段的标识和存储器映射段内改变后的映射片段的位置信息与改变后的映射片段一起插入响应。
响应可以具有响应UFS协议信息单元(UPIU)的格式。
控制器可以进一步适用于向主机提供关于包括改变后的映射片段的存储器映射段的提示信息,以使主机响应于该提示信息向控制器提供读取缓冲命令作为第一命令。
响应可以具有数据输入UFS协议信息单元(UPIU)的格式。
根据本公开的实施例,一种数据处理系统的操作方法,该操作方法包括:由主机将第一命令与从映射段中选择的映射片段一起提供到存储系统,该映射段是从存储系统中被复制到主机中的,第一命令排队在主机内的时隙中;由存储系统更新其中存储的映射片段作为其针对从主机提供的第一命令和映射片段的操作结果;由存储系统通过对主机的响应将更新后的映射片段与映射段内映射片段的位置信息一起提供到主机;由存储系统高速缓存其中更新的映射片段;由主机基于从存储系统提供的更新后的映射片段来更新复制到主机中的映射片段;并且由存储系统基于可以从时隙中移除第一命令的信息来移除高速缓存的映射片段,该信息是从主机提供的。
操作方法可以进一步包括由存储系统对映射片段内的物理地址执行操作,该映射片段可以与第二命令一起从主机提供并且可以包括与高速缓存的映射片段内的逻辑地址不同的逻辑地址。
操作方法可以进一步包括由存储系统忽略映射片段内的物理地址,该映射片段可以与第二命令一起从主机提供并且可以包括与高速缓存的映射片段内的逻辑地址相同的逻辑地址。
附图说明
图1是示出根据本公开实施例的共享映射数据的方法的示图。
图2是示意性地示出根据本公开实施例的包括存储器系统的数据处理系统的示例的示图。
图3是示出当主机映射数据被存储在主机中包括的主机高速缓存中时主机读取存储在存储器系统中的数据的操作的示图。
图4是示出根据本公开实施例的数据处理系统中的主机和存储器系统之间的事务的第一示例的示图。
图5是示出根据本公开实施例的数据处理系统中的主机和存储器系统之间的事务的第二示例的示图。
图6是示出根据本公开实施例的存储在存储器系统中的存储器映射数据的示图。
图7是示出根据本公开实施例的更新主机映射段的方法的第一示例的示图。
图8是示出根据本公开实施例的由存储器系统提供到主机的响应的第一格式的示图。
图9是示出根据本公开实施例的更新主机映射段的方法的第二示例的示图。
图10是示出根据本公开实施例的由存储器系统提供到主机的响应的第二格式的示图。
图11是示出根据本公开实施例的数据处理系统的操作的示图。
图12是示出根据本公开实施例的主机和存储器系统之间的事务的示图。
图13是示出根据本公开另一实施例的主机和存储器系统之间的事务的示图。
图14是示出根据本公开实施例的存储器系统的操作的示图。
具体实施方式
在下文中,将参照附图描述本公开的各个实施例。
然而,本公开不限于下面公开的实施例,而是可以以各种其他形式实施。提供所公开的实施例是为了使本公开完整并将本公开的范围充分地传达给本领域的技术人员。
图1是示出根据本公开实施例的共享映射数据的方法的示图。
参照图1,主机102和存储器系统110可以彼此交互。主机102可以被理解为计算装置,并且可以以移动装置、计算机、服务器等的形式实施。与主机102交互的存储器系统110可以从主机102接收命令,并且响应于接收到的命令而存储或输出数据。
主机102可以包括诸如移动电话、MP3播放器和膝上型计算机的各种便携式电子装置中的任意一种,或者诸如台式计算机、游戏机、电视(TV)和投影仪的各种非便携式电子装置中的任意一种。
主机102可以包括至少一个操作系统(OS),该OS可以管理和控制主机102的全部功能和操作,并且提供主机102与使用数据处理系统100或存储器系统110的用户之间的操作。OS可以支持与用户的使用、目的和用途相对应的功能和操作。例如,根据主机102的移动性,可以将OS划分为通用OS和移动OS。根据用户的环境,可以将通用OS划分为个人OS和企业OS。
存储器系统110可以响应于主机102的请求而操作以存储主机102的数据。存储器系统110的非限制性示例可以包括固态驱动器(SSD)、多媒体卡(MMC)、安全数字(SD)卡、通用串行总线(USB)装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体卡(SMC)、个人计算机存储卡国际协会(PCMCIA)卡和记忆棒。MMC可以包括嵌入式MMC(eMMC)、减小尺寸的MMC(RS-MMC)、微型MMC等。SD卡可以包括迷你SD卡和微型SD卡。
存储器系统110可以由各种类型的存储装置实现。这些存储装置的示例可以包括但不限于诸如动态随机存取存储器(DRAM)和静态RAM(SRAM)的易失性存储器装置,以及诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM或ReRAM)和闪速存储器的非易失性存储器装置。闪速存储器可以具有三维(3D)堆叠结构。
存储器系统110可以具有包括非易失性存储器单元的存储空间。
为了将主机102请求的数据存储在包括非易失性存储器单元的存储空间中,存储器系统110可以执行将主机102使用的文件系统连接到包括非易失性存储器单元的存储空间的映射操作。例如,根据主机102使用的文件系统的数据的地址可以被称为逻辑地址,包括非易失性存储器单元的存储空间中的数据的地址可以被称为物理地址。
存储器系统110可以将存储器映射数据存储在内部存储空间中。另外,存储器系统110可以包括用于管理存储器映射数据的映射管理器136。
当主机102将逻辑地址连同读取请求一起提供到存储器系统110时,存储器系统110可以基于其中存储的存储器映射数据搜索与逻辑地址相对应的物理地址,并且然后将所搜索到的物理地址中存储的数据输出到主机102。
如果主机102可以进行由存储器系统110所进行的物理地址搜索,则存储器系统110输出与主机102提供的读取请求相对应的数据所需的时间可以减少。主机102可以存储主机映射数据或直接访问主机映射数据以搜索物理地址并将所搜索到的物理地址提供到存储器系统110。
参照图1,存储器系统110可以向主机102提供存储器映射数据。
在下文中,由存储器系统110提供并存储在主机102中的映射数据可以被称为主机映射数据。另外,存储在存储器系统110中的映射数据可以被称为存储器映射数据。
当主机映射数据中包括待读取的逻辑地址时,主机102可以向存储器系统110提供通过参考主机映射数据而获得的物理地址。另一方面,当主机映射数据中不包括待读取的逻辑地址时,主机102可以向存储器系统110提供逻辑地址,并且存储器系统110可以通过参考存储器映射数据来访问内部存储空间。
由于主机102可以直接对与主机映射数据中包括的逻辑地址相对应的物理地址进行搜索,因此存储器系统110的访问性能可以随着主机映射数据中包括待由主机102读取的逻辑地址的概率增加而提高。因此,映射管理器136可以向主机102提供存储器映射数据之中的包括预计将被主机102频繁访问的逻辑地址的存储器映射数据以提高读取操作性能。主机102可以将从存储器系统110获得的存储器映射数据存储在内部主机高速缓存106中。
存储器映射数据可以包括多个映射片段。映射片段中的每一个,即,映射数据的最小单位,可以包括一个逻辑地址和一个物理地址的对应关系信息。
映射管理器136可以以存储器映射段为单位向主机102提供存储器映射数据。存储器映射段中的每一个可以包括连续逻辑地址的多个映射片段。图1示出了被提供到主机102的存储器映射段M_SEGMENT。主机102可以将从存储器系统110获得的存储器映射段存储在主机高速缓存106中。存储在主机高速缓存106中的映射段可以被称为主机映射段。图1示出了存储在主机高速缓存106中的主机映射段H_SEGMENT。
存储在存储器系统110中的存储器映射数据可以改变。例如,当存储器系统110响应于来自主机102的命令而更新存储在特定物理区域中的数据或者通过内部操作将数据移动并存储到另一个物理区域中时,与数据的逻辑地址相对应的映射片段可以被更新。即使特定存储器映射段中包括的映射片段发生改变,改变后的映射片段也可能不会反映在与存储器映射段相对应的主机映射段中。图1所示的主机映射段H_SEGMENT中由点阵图形表示的部分示出了未反映改变后的映射片段的部分。
当主机102通过使用其中未反映改变后的映射片段的主机映射段将逻辑地址转换为物理地址并基于该物理地址访问存储器系统110时,主机102可能会访问未更新的数据。在下文中,可以提供一种由主机102无错误地访问存储器系统110的最新数据的方法。
根据实施例,当存储器映射段中包括的映射关系改变时,存储器系统110可以将一部分改变的存储器映射数据提供到主机102,以支持主机102更新存储在主机高速缓存106中的主机映射数据。
参照图2至图14详细描述根据实施例的存储器系统110的结构和操作。
图2是示意性地示出根据本公开实施例的包括存储器系统110的数据处理系统100的示例的示图。
图2所示的主机102和存储器系统110对应于参照图1描述的主机102和存储器系统110。
存储器系统110可以包括控制器130和存储器装置150。存储器装置150可以为主机102存储数据,并且控制器130可以控制存储器装置150中的数据存储。
控制器130和存储器装置150可以被集成到单个半导体装置中。例如,控制器130和存储器装置150可以被集成为一个半导体装置以构成固态驱动器(SSD)。当存储器系统110用作SSD时,可以提高连接到存储器系统110的主机102的操作速度。另外,控制器130和存储器装置150可以被集成为一个半导体装置以构成存储卡。例如,控制器130和存储器装置150可以构成诸如以下的存储卡:个人计算机存储卡国际协会(PCMCIA)卡,紧凑型闪存(CF)卡,智能媒体(SM)卡,记忆棒,包括减小尺寸的多媒体卡(RS-MMC)和微型MMC的MMC,包括迷你SD卡、微型SD卡和SDHC卡的安全数字(SD)卡或通用闪存(UFS)装置。
存储器装置150可以是非易失性存储器装置,并且即使没有供应电力也可以保留所存储的数据。存储器装置150可以通过编程操作存储从主机102提供的数据,并且通过读取操作将所存储的数据提供到主机102。存储器装置150可以包括多个存储块152、154、156、……,多个存储块152、154、156、……中的每一个可以包括多个页面,并且多个页面中的每一个可以包括联接到字线的多个存储器单元。在实施例中,存储器装置150可以是闪速存储器。闪速存储器可以具有三维(3D)堆叠结构。
存储器装置150可以存储逻辑地址和物理地址之间的存储器映射数据。
控制器130可以响应于来自主机102的请求而控制存储器装置150。例如,控制器130可以将从存储器装置150读取的数据提供到主机102,并且将从主机102提供的数据存储到存储器装置150中。对于该操作,控制器130可以控制存储器装置150的读取操作、编程操作和擦除操作。
控制器130可以包括经由内部总线可操作地联接的主机接口(I/F)132、存储器处理器134、存储器I/F 142和存储器144。
主机I/F 132可以被配置为处理主机102的命令和数据,并且可以通过诸如以下的各种通信标准或接口中的一种或多种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)和电子器集成驱动器(IDE)。
可以通过被称为主机接口层(HIL)的固件来驱动主机I/F 132,以便与主机102交换数据。
存储器I/F 142可以用作将控制器130和存储器装置150接口连接的存储器/存储装置接口,使得控制器130响应于来自主机102的请求而控制存储器装置150。当存储器装置150是闪速存储器,或者具体地是NAND闪速存储器时,存储器I/F 142可以在存储器处理器134的控制下生成存储器装置150的控制信号并处理待提供到存储器装置150的数据。存储器I/F 142可以用作处理控制器130与存储器装置150之间的命令和数据的接口(例如,NAND闪存接口)。具体地,存储器I/F 142可以支持控制器130和存储器装置150之间的数据传送。
可以通过被称为闪存接口层(FIL)的固件来驱动存储器I/F 142,从而与存储器装置150交换数据。
存储器144可以用作存储器系统110和存储器控制器130的操作存储器,并且存储用于驱动存储器系统110和存储器控制器130的数据。存储器控制器130可以响应于来自主机102的请求而控制存储器装置150执行读取操作、编程操作和擦除操作。存储器控制器130可以向主机102提供从存储器装置150读取的数据,并且将主机110提供的数据存储在存储器装置150中。存储器144可以存储存储器控制器130和存储器装置150执行这些操作所需的数据。例如,存储器144可以存储每个逻辑地址区域的读取计数和逻辑地址区域队列。另外,存储器144可以高速缓存一部分存储器映射数据。
存储器144可以由易失性存储器实现。例如,存储器144可以由静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)实现。存储器144可以被设置在控制器130之内或之外。图2示出了设置在控制器130之内的存储器144。在实施例中,存储器144可以被实施为外部易失性存储器装置,并且存储器144可以具有用于向控制器130输入数据以及从控制器130输出数据的存储器接口。
存储器处理器134可以驱动固件以控制存储器系统110的全部操作。该固件可以被称为闪存转换层(FTL)。另外,存储器处理器134可以被实施为微处理器或中央处理单元(CPU)。
例如,存储器处理器134可以执行主机102请求的操作。存储器处理器134可以执行作为与从主机102接收的请求相对应的命令操作的前台操作。例如,存储器处理器134可以执行对应于写入请求的写入操作、对应于读取请求的读取操作、对应于擦除请求的擦除操作等。作为读取操作的第一示例,存储器处理器134可以参考主机102提供的逻辑地址和存储器映射数据来访问存储器装置150。作为读取操作的第二示例,存储器处理器134可以基于主机102提供的物理地址来访问存储器装置150。
存储器控制器130可以通过被实施为微处理器或中央处理单元(CPU)的存储器处理器134对存储器装置150执行后台操作。例如,对存储器装置150的后台操作可以包括垃圾收集(GC)操作、损耗均衡(WL)操作、映射清除操作、坏块管理操作等。
存储器处理器134可以包括映射管理器136。映射管理器136可以预测待从逻辑地址空间602频繁读取的逻辑地址区域,并向主机102提供与逻辑地址区域相对应的存储器映射段。
主机102可以包括主机处理器104、主机高速缓存106和主机控制器接口108。
主机102可以包括比与主机102交互的存储器系统110更高性能的主机处理器104以及更大容量的主机高速缓存106。不同于存储器系统110,主机102中包括的主机处理器104和主机高速缓存106可以具有较少的空间限制,并且在必要时可以在硬件方面进行升级。因此,为了提高存储器系统110的操作效率,可以利用主机102的资源。
根据实施例,主机102中包括的主机高速缓存106的存储空间可以是存储器控制器130可以使用的存储器144的存储空间的数十倍至数千倍。因此,存储器系统110可以将存储器控制器130所使用的存储器映射数据传输到主机102中包括的主机高速缓存106,并使主机高速缓存106能够用作存储器系统110执行的地址转换操作的高速缓存存储器。在这种情况下,主机102不会将逻辑地址与命令一起传输到存储器系统110,而是可以基于存储在主机高速缓存106中的主机映射数据将逻辑地址转换为物理地址,并且然后将物理地址连同命令一起传输到存储器系统110。存储器系统110可以省略将逻辑地址转换为物理地址的操作,并基于所传输的物理地址访问存储器装置150。在这种情况下,存储器控制器130可以减轻前述在存储器控制器130使用存储器144时出现的操作负担,从而可以极大地提高存储器系统110的操作效率。
即使存储器系统110向主机102传输存储器映射数据,存储器系统110也可以管理存储器映射数据,例如更新、删除或生成存储器映射数据。存储器系统110中包括的存储器控制器130可以根据存储器装置150的操作状态执行诸如垃圾收集操作和损耗均衡操作的后台操作,并确定从主机102传输的数据存储在存储器装置150中的物理位置,即物理地址。因此,存储器装置150中的数据的物理地址可能会改变。
换言之,当存储器系统110在管理存储器映射数据的过程中确定需要校正或更新传输到主机102的主机映射数据时,存储器系统110可以请求主机102更新主机映射数据。主机102可以响应于存储器系统110的请求而更新存储在主机高速缓存106中的主机映射数据。因此,主机映射数据可以保持最新状态,并且即使主机控制器接口108通过使用主机映射数据来转换待传输到存储器系统110的地址值,该操作也可以没有问题。
根据实施例,主机映射数据可以包括用于检查与逻辑地址相对应的物理地址的L2P映射数据。表示逻辑地址和物理地址之间的关系的元数据可以包括用于检查与逻辑地址相对应的物理地址的L2P映射数据以及用于检查与物理地址相对应的逻辑地址的P2L映射数据。在这些映射数据中,主机映射数据可以包括L2P映射数据。P2L映射数据可以主要用于存储器系统110的内部操作,而不用于主机102将数据存储在存储器系统110中或者从存储器系统110读取与特定逻辑地址相对应的数据的操作。根据实施例,存储器系统110可以不向主机102传输P2L映射数据。
存储器系统110中包括的存储器控制器130可以在管理(即,生成、删除或更新)L2P映射数据或P2L映射数据的同时将L2P映射数据或P2L映射数据存储在存储器装置150中。由于主机102中包括的主机高速缓存106是易失性存储器装置,因此当发生诸如供应到主机102和存储器系统110的电力中断的事件时,主机映射数据可能会消失。因此,存储器系统110中包括的存储器控制器130不仅可以将主机映射数据保持在最新状态,还可以将最新的L2P映射数据或P2L映射数据存储在存储器装置150中。
图3是示出根据本公开实施例的当主机映射数据被存储在主机102中包括的主机高速缓存106中时主机102读取存储在存储器系统110中的数据的操作的示图。
可以向主机102和存储器系统110供电,并且主机102和存储器系统110可以彼此交互。当主机102和存储器系统110彼此交互时,可以将存储在存储器装置150中的存储器映射数据L2P MAP传输到主机高速缓存106。
当主机102中包括的主机处理器104产生读取命令时,可以将读取命令传输到主机控制器接口108。在接收到读取命令之后,主机控制器接口108可以将与读取命令相对应的逻辑地址传输到主机高速缓存106。基于存储在主机高速缓存106中的主机映射数据L2PMAP,主机控制器接口108可以识别对应于逻辑地址的物理地址。
主机控制器接口108可以将读取命令与物理地址一起传输到包括在存储器系统110中的存储器控制器130。存储器控制器130可以基于接收到的读取命令和物理地址来访问存储器装置150。存储器装置150中与物理地址相对应的位置中存储的数据可以被传输到主机高速缓存106。
从包括非易失性存储器装置的存储器装置150读取数据的过程可能比从作为另一个非易失性存储器的主机高速缓存106读取数据的过程需要更多时间。在上述读取过程中,可以省略存储器控制器130从主机102接收逻辑地址并搜索与该逻辑地址相对应的物理地址的过程。特别地,在存储器控制器130搜索物理地址的过程中,访问存储器装置150以读取元数据的操作可以不存在。因此,可以加速主机102读取存储在存储器系统110中的数据的过程。
图4是示出根据本公开实施例的数据处理系统100中的主机102和存储器系统110之间的事务的第一示例的示图。
参照图4,存储主机映射数据HOST MAP DATA的主机102可以将包括逻辑地址LBA和物理地址PBA的读取命令READ CMD传输到存储器系统110。当与对应于读取命令READ CMD的逻辑地址LBA相对应的物理地址PBA存在于主机映射数据中时,主机102可以将包括逻辑地址LBA和物理地址PBA的读取命令READ CMD传输到存储器系统110。然而,当与对应于读取命令READ CMD的逻辑地址LBA相对应的物理地址PBA不存在于主机映射数据中时,主机102可以将仅包括逻辑地址LBA而没有物理地址PBA的读取命令READ CMD传输到存储器系统110。
尽管图4示出了读取命令READ CMD作为示例,但是根据实施例,本公开也可以应用于主机102可以传输到存储器系统110的写入命令或擦除命令。
图5是示出根据实施例的数据处理系统100中的主机102和存储器系统110之间的事务的第二示例的示图。
参照图5,存储器系统110可以将存储器映射数据MAP DATA传输到主机102。存储器系统110可以通过使用对主机102的命令的响应RESPONSE来将存储器映射数据MAP DATA传输到主机102。
存储器系统110和主机102可以根据基于预定协议而设置的格式来交换请求和响应。例如,主机102可以向存储器系统110提供读取缓冲命令以获得缓冲在存储器144中的数据。存储器系统110可以将缓冲在存储器144中的存储器映射数据MAP DATA传输到主机102作为对读取缓冲命令的响应RESPONSE。
图6是示出根据本公开实施例的存储在存储器系统110中的存储器映射数据的示图。
图6示出了逻辑地址空间602和存储器映射数据604。
逻辑地址空间602可以指在主机102的文件系统中使用的逻辑地址范围。逻辑地址空间602可以包括多个逻辑地址区域。在图6的示例中,逻辑地址空间602可以包括总共N个逻辑地址区域,即第一区域REGION1至第N区域REGION_N。多个逻辑地址区域中的每一个可以包括连续的逻辑地址。例如,第一区域REGION1可以包括LBA1至LBA1000,第二区域REGION2可以包括LBA1001至LBA2000,第三区域REGION3可以包括LBA2001至LBA3000。
存储器映射数据604可以是存储在存储器系统110中的映射数据。例如,存储器映射数据604可以包括逻辑地址空间602的全部映射数据。存储器映射数据604可以包括多个存储器映射段。在图6的示例中,存储器映射数据604可以包括总共N个存储器映射段,即第一存储器映射段M_SEGMENT1至第N存储器映射段M_SEGMENT_N。N个存储器映射段可以对应于N个逻辑地址区域。存储器映射段中的每一个可以包括指示相应逻辑地址区域中包括的逻辑地址和物理地址之间的映射关系的多个映射片段。在图6的示例中,第一存储器映射段M_SEGMENT1可以包括1000个映射片段,这1000个映射片段包括逻辑地址LBA1至LBA1000和相应的物理地址PBA1至PBA1000之间的映射关系。
如果存储器系统110向主机102提供其中存储的所有存储器映射数据并且主机102可以存储所有存储器映射数据,则存储器系统110不需要选择性地提供一部分存储器映射数据。然而,主机102可能难以在存储器中分配存储空间以便存储存储器系统110管理的所有存储器映射数据。因此,存储器系统110可以选择性地向主机102提供存储器映射数据中的一些。
根据存储器的空间区域性和时间区域性,最近频繁访问的逻辑地址以及与其相邻的逻辑地址在未来可能会被频繁访问。因此,映射管理器136可以基于主机102对每个逻辑地址区域的读取趋势来预测将被频繁访问的逻辑地址区域。
映射管理器136可以向主机102提供关于多个映射段之中的、与预计将被频繁读取的逻辑地址区域相对应的存储器映射段的提示信息。主机102可以响应于提示信息而向存储器系统110提供读取缓冲命令以获得存储器映射段。存储器系统110可以响应于读取缓冲命令而向主机102提供存储器映射段。
主机102可以将存储器映射段作为主机映射段存储在主机高速缓存106中。主机102可以使用存储在主机高速缓存106中的主机映射段并将逻辑地址转换为物理地址,以访问存储器系统110。
在更新存储器映射段之后,映射管理器136可以支持主机102更新相应的主机映射段。当主机映射段被更新时,主机102可以通过使用主机映射段来访问存储器系统110的最新数据。
在每当更新存储器映射段,映射管理器136就必须向主机102提供全部更新后的存储器映射段以便更新相应的主机映射段时,存储器系统110的性能可能会由于大量的数据传输而降低。
根据实施例,当提供对主机102的命令的响应时,映射管理器136可以将改变后的映射片段与响应一起提供到主机102。主机102可以从存储器系统110获得改变后的映射片段并更新主机映射段。根据实施例,可以减少用于更新主机映射段的数据传输量。存储器系统110可以在不降低其性能的情况下将主机映射段保持在最新状态。
图7是示出根据本公开实施例的更新主机映射段的方法的第一示例的示图。
图7示出了存储在存储器系统110中的第一存储器映射段M_SEGMENT1以及存储在主机102中的第一主机映射段H_SEGMENT1。第一存储器映射段M_SEGMENT1和第一主机映射段H_SEGMENT1彼此对应。
在图7的示例中,主机102可以向存储器系统110提供针对第二逻辑地址LBA2的写入命令。存储器处理器134可以响应于写入命令而对第二逻辑地址LBA2执行写入操作,并将与第二逻辑地址LBA2相对应的第二物理地址PBA2转换为第2000物理地址PBA2000。由于第二逻辑地址LBA2的映射片段被改变,所以可以更新第一存储器映射段M_SEGMENT1。图7中虚线所示的区域表示改变后的映射片段。
当改变后的映射片段没有反映在第一主机映射段H_SEGMENT1中时,主机102难以使用第一主机映射段H_SEGMENT1执行地址转换操作。例如,当主机102信任第一主机映射段H_SEGMENT1并对第二逻辑地址LBA2执行地址转换操作时,主机102可能会访问先前的数据而不是最新的数据。
映射管理器136可以向主机102提供包括改变后的映射片段的、对命令的响应,使得主机102可以将主机映射段保持在最新状态。
图8是示出根据本公开实施例的由存储器系统110提供到主机102的响应的第一格式的示图。
当存储器系统110基于UFS接口协议与主机102通信时,存储器系统110可以通过使用响应UFS协议信息单元(UPIU)向主机102提供响应。参照图8,响应UPIU(response UPIU)可以包括报头(header)和替换信息。替换信息可以包括改变后的映射片段信息、映射片段信息所属的主机映射段编号(#of segment)以及指示映射片段信息在主机映射段中的位置的索引。
主机102可以基于UPIU的报头识别出从存储器系统110提供的UPIU为响应UPIU,并获得随后的替换信息。主机102可以通过使用替换信息将存储器系统110中改变的映射片段反映在主机映射段中。根据实施方案,映射管理器136可以通过在响应UPIU中包括一条或多条替换信息并向主机102提供包括替换信息的响应UPIU来请求主机102更新一个或多个主机映射段。
已经参照图8描述了映射管理器136提供改变后的映射片的响应的第一格式。然而,本公开不限于此。例如,当响应UPIU的大小受标准限制时,映射管理器136可能不能通过使用响应UPIU一次向主机102提供预定数量或更多的映射片段。当多个映射片段被改变时,映射管理器136可以通过使用格式与响应UPIU的格式不同的响应一次向主机102提供多个映射片段。
图9是示出根据本公开实施例的更新主机映射段的方法的第二示例的示图。
图9示出了存储在存储器系统110中的第一存储器映射段M_SEGMENT1以及存储在主机102中的第一主机映射段H_SEGMENT1。
在图9的示例中,主机102可以向存储器系统110提供针对第一逻辑地址LBA1至第100逻辑地址LBA100的写入命令。当存储器处理器134响应于写入命令而对第一逻辑地址LBA1至第100逻辑地址LBA100执行写入操作时,对应于第一逻辑地址LBA1至第100逻辑地址LBA100的物理地址可以改变为第1501物理地址PBA1501至第1600物理地址PBA1600。映射管理器136可以更新第一存储器映射段M_SEGMENT1,因为第一逻辑地址LBA1至第100逻辑地址LBA100的映射片段已经改变。图9中虚线所示的区域表示改变后的映射片段。
映射管理器136可以首先向主机102提供关于包括改变后的映射片段的存储器映射段的提示信息作为对主机102的响应,以便一次向主机102提供预定数量或更多的改变后的映射片段。响应于该响应,主机102可以向存储器系统110提供读取缓冲命令以获得改变后的映射片段。映射管理器136可以向主机102提供改变后的映射片段作为对读取缓冲命令的响应。
图10是示出根据本公开实施例的由存储器系统110提供到主机102的响应的第二格式的示图。
当存储器系统110基于UFS接口协议与主机102通信时,存储器系统110可以响应于读取缓冲命令,通过使用数据输入UPIU(data in UPIU)向主机102提供响应。由于数据输入UPIU的大小可以大于响应UPIU,因此数据输入UPIU可以包括多个映射片段。
在图10的示例中,数据输入UPIU可以包括报头和替换信息。替换信息可以包括改变后的映射片段信息、映射片段信息所属的主机映射段编号(#of segment)以及改变后的映射片段在主机映射段中的索引范围(Range)。主机102可以基于UPIU的报头识别出从存储器系统110提供的UPIU是数据输入UPIU,并且通过使用替换信息将存储器系统110中改变的映射片段反映在相应的主机映射段中。
在存储器系统110改变映射片段然后主机102从存储器系统110获得改变后的映射片段以更新主机映射段之前,主机映射段可能仍然包括未更新的映射片段。提出了一种方法,其中即使当主机102通过使用先前的主机映射段来访问存储器系统110时,主机102也可以访问存储器系统110的最新位置。
图11是示出根据本公开实施例的数据处理系统100的操作的示图。
图11示出了主机102和存储器系统110。主机102可以包括用于对提供到存储器系统110的命令排队的命令队列CMDQ。命令队列CMDQ可以包括多个命令时隙。在图11的示例中,命令队列CMDQ可以包括M个时隙。
图11示出了第一命令CMD1排队在第二时隙中的状态。当第一命令CMD1排队在第二时隙中时,主机102可以向存储器系统110提供门铃信号以通知存储器系统110第一命令CMD1排队在第二时隙中。主机I/F 132可以响应于门铃信号而从主机102获得第一命令CMD1。存储器处理器134可以处理所获得的命令。
映射管理器136可以向主机102提供包括替换信息的、对第一命令CMD1的响应。在接收到对第一命令CMD1的响应时,主机102可以通过使用响应中包括的替换信息来更新主机映射段,并且从第二时隙中移除第一命令CMD1。替换信息中包括的映射片段可以是在处理第一命令CMD1时改变的映射片段,但本公开不限于此。例如,替换信息可以包括在处理比第一命令CMD1更早接收的主机命令时改变的映射片段或者通过存储器系统110的内部操作改变的映射片段。
根据本实施例,在主机102通过使用替换信息更新主机映射段之前,映射管理器136可以在内部存储替换信息中包括的映射片段。存储器系统110可以包括用于临时存储映射片段的临时映射高速缓存148。临时映射高速缓存148可以被包括在参照图2描述的存储器144中。在图11的示例中,临时映射高速缓存148可以临时存储指示第二逻辑地址LBA2和第2000物理地址PBA2000之间的关系的映射片段。临时存储在临时映射高速缓存148中的映射片段可以是通过替换信息提供到主机102并且待用于更新主机映射段的改变后的映射片段。
在主机102更新包括第二逻辑地址LBA2的主机映射段之前,主机102可以向存储器系统110提供第二逻辑地址LBA2以及包括先前物理地址的命令,以访问存储器系统110的第二逻辑地址LBA2。在改变后的映射片段表示第二逻辑地址LBA2和第2000物理地址PBA2000的情况下,先前的物理地址可以是在它改变为第2000物理地址PBA2000之前被提供的物理地址。
根据本实施例,主机I/F 132可以从主机102接收命令、逻辑地址和物理地址。存储器处理器134可以确定与从主机102接收的逻辑地址相对应的映射片段是否被存储在临时映射高速缓存148中。也就是说,存储器处理器134可以确定从主机102提供的逻辑地址是否为应该在主机映射段中更新的改变后的映射片段。当映射片段被存储在临时映射高速缓存148中时,从主机102接收的物理地址可以是先前的物理地址(例如,在改变后的映射片段表示第二逻辑地址LBA2和第2000物理地址PBA2000的情况下,第2000物理地址PBA2000之前的物理地址),因此存储器处理器134可以忽略该物理地址。存储器处理器134可以通过使用存储在临时映射高速缓存148中的映射片段将从主机102接收的逻辑地址转换为最新的物理地址,并访问与该逻辑地址相对应的最新数据。当映射片段未被存储在临时映射高速缓存148中时,存储器处理器134可以通过使用从主机102接收的物理地址来访问最新的数据。
当主机102对主机映射段的更新完成时,映射管理器136可以移除临时存储在临时映射高速缓存148中的映射片段。如果存储器系统110必须向主机102提供单独的命令并从主机102接收响应来检查主机102对主机映射段的更新是否完成,则存储器系统110的性能可能会降低。
根据实施例,当向主机102提供包括替换信息的响应时,映射管理器136可以在内部存储对应于响应的时隙编号信息。对应于响应的时隙编号信息可以指关于其中与响应相对应的命令排队的时隙的编号信息。例如,当向主机102提供包括替换信息的、对第一命令CMD1的响应时,映射管理器136可以存储时隙编号“2”。
主机102可以通过使用对第一命令CMD1的响应中包括的替换信息来更新主机映射数据,然后从第二时隙中移除第一命令CMD1。在第一命令CMD1被移除之后,主机102可以将新命令排队在第二时隙中,并且向存储器系统110提供门铃信号,该门铃信号通知新命令排队在第二时隙中。当通过主机I/F 132获得门铃信号时,映射管理器136可以注意到主机102已经基于对第一命令CMD1的响应完成了主机映射段的更新。响应于门铃信号,映射管理器136可以移除存储在临时映射高速缓存148中的映射片段。
下文中,描述了更新存储在主机高速缓存106中的主机映射段的操作。
图12是示出根据本公开第一实施例的主机102和存储器系统110之间的事务的示图。
具体地,图12示出了存储器系统110通过使用第一格式的响应向主机102提供映射片段的情况。
在操作S1202中,存储器系统110可以检测活动逻辑地址区域。例如,存储器系统110可以检测被超过阈值水平频繁地访问的逻辑地址区域作为活动逻辑地址区域。
在操作S1204中,主机102可以向存储器系统110提供命令。操作S1204中的命令不限于特定类型的命令。例如,该命令可以是引起映射片段改变的写入命令或修整命令,或者不引起映射片段改变的读取命令。
在操作S1206中,存储器系统110可以将与主机102的命令相对应的响应以及关于所检测到的活动逻辑地址区域的提示信息一起提供到主机102。
在操作S1208中,主机102可以响应于提示信息而向存储器系统110提供用于获得与活动逻辑地址区域相对应的存储器映射段的读取缓冲命令。
在操作S1210中,存储器系统110可以响应于读取缓冲命令而向主机102提供存储器映射段。主机102可以将存储器映射段作为主机映射段存储在主机高速缓存106中。主机102可以通过使用存储在主机高速缓存106中的主机映射段将活动逻辑地址区域中包括的逻辑地址转换为物理地址。
在操作S1212中,主机102可以向存储器系统110提供写入命令。写入命令可以是针对活动逻辑地址区域的写入命令。
在操作S1214中,存储器系统110可以通过改变与逻辑地址相对应的物理地址来改变映射片段。存储器系统110可以响应于写入命令而对改变后的物理地址执行写入操作。
在操作S1216中,存储器系统110可以将改变后的映射片段高速缓存在临时映射高速缓存148中。
在操作S1218中,存储器系统110可以在对第i时隙的命令的响应中插入包括改变后的映射片段的替换信息,并且可以向主机102提供包括替换信息的响应。第i时隙的命令不限于操作S1212的写入命令,并且可以是在改变映射片段之后向其提供响应的任何命令。
在操作S1220中,主机102可以基于从存储器系统110接收的替换信息来更新主机映射段。
在操作S1222中,主机102可以将新命令排队在第i时隙中,并且向存储器系统110提供与第i时隙相对应的门铃信号。
在操作S1224中,存储器系统110可以基于门铃信号检测到主机102已经完成主机映射段更新,并且从临时映射高速缓存148中移除改变后的映射片段。
图13是示出根据本公开另一实施例的主机102和存储器系统110之间的事务的示图。
具体地,图13示出了存储器系统110通过使用第二格式的响应向主机102提供映射片段的情况。
在操作S1302、S1304、S1306、S1308和S1310中,存储器系统110可以检测活动逻辑地址区域,并且向主机102提供活动逻辑地址区域的存储器映射段。操作S1302、S1304、S1306、S1308和S1310可以与操作S1202、S1204、S1206、S1208和S1210相同。
在操作S1312中,主机102可以向存储器系统110提供针对活动逻辑地址区域的写入命令。例如,写入命令可以是针对活动逻辑地址区域中包括的多个连续逻辑地址的写入命令。
在操作S1314中,存储器系统110可以通过改变与逻辑地址相对应的物理地址来改变存储器映射段中包括的多个映射片段。存储器系统110可以响应于写入命令而对改变后的物理地址执行写入操作。
在操作S1316中,存储器系统110可以将改变后的映射片段存储在临时映射高速缓存148中。
在操作S1318中,存储器系统110可以将对命令的响应与指示特定存储器映射段已经被更新的提示信息一起提供到主机102。例如,该命令可以是操作S1312的写入命令,但命令的类型不受限制。
在操作S1320中,主机102可以响应于提示信息而向存储器系统110提供读取缓冲命令。例如,当主机102将读取缓冲命令排队在命令队列CMDQ的第j时隙中并向存储器系统110提供第j时隙的门铃信号时,存储器系统110可以从第j时隙获得读取缓冲命令。
在操作S1322中,存储器系统110可以响应于读取缓冲命令而向主机102提供包括替换信息的响应,该替换信息包括多个映射片段。该响应可以对应于第j时隙,并且存储器系统110可以在其中存储第j时隙信息。
在操作S1323中,主机102可以基于替换信息更新主机映射段。在主机映射段更新之后,主机102可以移除排队在第j时隙中的读取缓冲命令。主机102可以将新读取命令排队在从其移除了读取缓冲命令的第j时隙中。在操作S1324中,主机102可以向存储器系统110提供第j时隙的门铃信号。
在操作S1326中,存储器系统110可以检测第j时隙的门铃信号。基于门铃信号,存储器系统110可以注意到主机102已经响应于与第j时隙相对应的响应完成了主机映射段更新。
在操作S1328中,存储器系统110可以从临时映射高速缓存148中移除多个映射片段。
在下文中,描述了存储器系统110可以响应于从主机102接收的读取命令而访问最新数据的方法。
图14是示出根据本公开实施例的存储器系统110的操作的示图。
在操作S1402中,存储器系统110可以从主机102接收读取命令。
在操作S1404中,存储器系统110可以确定从主机102接收的读取命令是否针对活动逻辑地址区域。例如,当读取命令是针对活动逻辑地址区域时,主机102可以将物理地址与读取命令和逻辑地址一起提供给存储器系统110。当读取命令不是针对活动逻辑地址区域时,主机102可以仅读取命令和逻辑地址提供给存储器系统110。
当读取命令不是针对活动逻辑地址区域(即,操作S1404中的“否”)时,在操作S1406中,存储器系统110可以通过使用其中存储的存储器映射段将逻辑地址转换为物理地址,并且然后通过使用该物理地址来访问存储器装置150。
当读取命令针对活动逻辑地址区域(即,操作S1404中的“是”)时,在操作S1408中,存储器系统110可以确定读取命令的逻辑地址是否被存储在临时映射高速缓存148中。
当读取命令的逻辑地址被存储在临时映射高速缓存148中(即,操作S1408中的“是”)时,与逻辑地址一起从主机102提供的物理地址可能是先前的物理地址,而存储在临时映射高速缓存148中的物理地址可以是最新的物理地址。因此,在操作S1410中,存储器系统110可以通过参考临时映射高速缓存148将逻辑地址转换为物理地址,并通过使用该物理地址来访问存储器装置150。
当读取命令的逻辑地址未存储在临时映射高速缓存148中(即,操作S1408中的“否”)时,与逻辑地址一起从主机102提供的物理地址可以是最新的物理地址。因此,在操作S1412中,存储器系统110可以通过使用从主机102提供的物理地址来访问存储器装置150。
根据实施例,当存储器映射段中包括的一个或多个映射片段被更新时,存储器系统110可以在对主机102的响应中插入更新后的映射片段并且可以向主机102提供包括更新后的映射片段的响应。在这种情况下,存储器系统110可以将更新后的映射片段存储在临时映射高速缓存148中,并存储其中与响应相对应的命令队列排队的时隙的命令队列CMDQ时隙编号。主机102可以获取响应中包括的映射片段,更新主机映射段,并从命令队列CMDQ中移除与时隙编号相对应的命令。当将新命令排队在具有命令队列CMDQ的时隙编号的时隙中时,主机102可以向存储器系统110提供门铃信号。存储器系统110可以响应于与时隙编号相对应的门铃信号从临时映射高速缓存148中移除更新后的映射片段。
根据实施例,存储器系统110可以使主机102能够对被频繁访问的逻辑地址区域执行地址转换操作,并且总是通过使用与逻辑地址一起从主机102接收的物理地址访问最新的数据。存储器系统110可以仅向主机102提供相应存储器映射段中的改变后的映射片段而不是向主机102提供全部的存储器映射段来将主机映射段更新为最新状态。因此,可以降低更新主机映射段的工作负载。
根据实施例,当从主机102接收物理地址以及逻辑地址时,存储器系统110可以通过仅搜索临时映射高速缓存148来检查物理地址是否为最新的物理地址。改变后的映射片段可以被存储在临时映射高速缓存148中,并且当被反映在主机映射段中时,可以从临时映射高速缓存148中移除所存储的映射片段。因此,临时映射高速缓存148包括的存储器映射数据的量可以小于全部的存储器映射数据604的量。因此,可以降低存储器系统110检查从主机102接收的物理地址是否为最新的物理地址的工作负载。
根据本公开的实施例,可以提供一种能够使主机向存储器系统提供包括待从存储器系统读取的数据的物理地址的请求的存储器系统。
尽管已经参考具体实施例描述了存储器系统及其操作方法,但是这些仅仅是示例,并且本公开不限于此,而是应当被解释为具有根据本公开所公开的基本思想的最广泛范围。本领域技术人员可以通过组合和替换所公开实施例来执行未说明的实施例,但是这些实施例也不脱离本公开的范围。另外,本领域技术人员可以基于本说明书容易地改变或修改所公开的实施例,显然,这种改变或修改也落入本公开和以下权利要求的范围内。此外,可以对实施例进行组合以形成另外的实施例。
Claims (23)
1.一种数据处理系统,包括:
存储器系统,向主机提供包括多个映射片段的存储器映射段,每个映射片段包括逻辑地址和物理地址之间的映射关系;以及
所述主机,存储从所述存储器系统提供的所述存储器映射段作为主机映射段,并通过使用所述主机映射段将逻辑地址转换为物理地址,
其中所述存储器系统进一步:
将所述多个映射片段之中的一个或多个改变后的映射片段存储在映射高速缓存中,
将所述改变后的映射片段插入对所述主机的第一命令的响应中,并且
向所述主机提供所述响应,
其中所述主机进一步基于通过所述响应提供的所述改变后的映射片段更新所述主机映射段,并且
其中,当来自所述主机的读取命令包括逻辑地址和物理地址时,所述存储器系统进一步通过根据所述读取命令中包括的逻辑地址是否被存储在所述映射高速缓存中选择性地使用所述读取命令中包括的物理地址来访问存储器装置。
2.根据权利要求1所述的存储器系统,其中,当所述读取命令中包括的逻辑地址未存储在所述映射高速缓存中时,所述存储器系统通过使用所述读取命令中包括的物理地址来访问所述存储器装置。
3.根据权利要求1所述的存储器系统,其中,当所述读取命令中包括的逻辑地址被存储在所述映射高速缓存中时,所述存储器系统通过使用基于存储在所述映射高速缓存中的所述改变后的映射片段从所述读取命令中包括的逻辑地址转换而得到的物理地址来访问所述存储器装置。
4.根据权利要求1所述的存储器系统,其中所述存储器系统进一步在所述主机映射段的更新完成时从所述映射高速缓存中移除所述改变后的映射片段。
5.根据权利要求4所述的数据处理系统,
其中所述主机包括排队所述第一命令的时隙,
其中所述主机进一步:
在更新所述主机映射段之后从所述时隙中移除所述第一命令,
将第二命令排队在所述时隙中,并且
向所述存储器系统提供指示所述时隙的门铃信号,并且
其中所述存储器系统进一步:
存储所述时隙的标识,并且
通过接收所述门铃信号来检测所述主机映射段的更新完成。
6.根据权利要求1所述的数据处理系统,其中所述存储器映射段对应于被超过阈值水平频繁地访问的逻辑地址区域。
7.根据权利要求1所述的数据处理系统,其中所述存储器系统将所述存储器映射段的标识和所述存储器映射段内的所述改变后的映射片段的位置信息与所述改变后的映射片段一起插入所述响应。
8.根据权利要求7所述的数据处理系统,其中所述响应具有响应UFS协议信息单元的格式,即响应UPIU的格式。
9.根据权利要求1所述的数据处理系统,其中所述存储器系统进一步向所述主机提供关于包括所述改变后的映射片段的所述存储器映射段的提示信息,以使所述主机响应于所述提示信息向所述存储器系统提供读取缓冲命令作为所述第一命令。
10.根据权利要求9所述的数据处理系统,其中所述响应具有数据输入UFS协议信息单元的格式,即数据输入UPIU的格式。
11.一种存储器系统,包括:
存储器装置,存储数据;以及
控制器:
向主机提供包括多个映射片段的存储器映射段作为主机映射段,每个映射片段包括逻辑地址和物理地址之间的映射关系,
将所述多个映射片段之中的一个或多个改变后的映射片段存储在映射高速缓存中,
通过将所述改变后的映射片段插入对所述主机的第一命令的响应中并向所述主机提供所述响应,使所述主机更新所述主机映射段,所述主机映射段基于通过所述响应而提供的所述改变后的映射片段被更新,并且
当来自所述主机的读取命令包括逻辑地址和物理地址时,通过根据所述读取命令中包括的逻辑地址是否被存储在所述映射高速缓存中选择性地使用所述读取命令中包括的物理地址来访问所述存储器装置。
12.根据权利要求11所述的存储器系统,其中,当所述读取命令中包括的逻辑地址未存储在所述映射高速缓存中时,所述控制器通过使用所述读取命令中包括的物理地址来访问所述存储器装置。
13.根据权利要求11所述的存储器系统,其中,当所述读取命令中包括的逻辑地址被存储在所述映射高速缓存中时,所述控制器通过使用基于存储在所述映射高速缓存中的所述改变后的映射片段从所述读取命令中包括的逻辑地址转换而得到的物理地址来访问所述存储器装置。
14.根据权利要求11所述的存储器系统,其中所述控制器进一步在所述主机映射段的更新完成时从所述映射高速缓存中移除所述改变后的映射片段。
15.根据权利要求14所述的存储器系统,
其中所述控制器进一步:
存储所述主机中包括的时隙的标识并将所述第一命令排队,并且
通过接收指示所述时隙的门铃信号来检测所述主机映射段的更新完成,并且
其中所述门铃信号在更新所述主机映射段之后从所述时隙中移除所述第一命令并将第二命令排队在所述时隙中时从所述主机被提供。
16.根据权利要求11所述的存储器系统,其中所述存储器映射段对应于被超过阈值水平频繁地访问的逻辑地址区域。
17.根据权利要求11所述的存储器系统,其中所述控制器将所述存储器映射段的标识和所述存储器映射段内的所述改变后的映射片段的位置信息与所述改变后的映射片段一起插入所述响应。
18.根据权利要求17所述的存储器系统,其中所述响应具有响应UFS协议信息单元的格式,即响应UPIU的格式。
19.根据权利要求11所述的存储器系统,其中所述控制器进一步向所述主机提供关于包括所述改变后的映射片段的所述存储器映射段的提示信息,以使所述主机响应于所述提示信息向所述控制器提供读取缓冲命令作为所述第一命令。
20.根据权利要求19所述的存储器系统,其中所述响应具有数据输入UFS协议信息单元的格式,即数据输入UPIU的格式。
21.一种数据处理系统的操作方法,所述操作方法包括:
由主机将第一命令与从映射段中选择的映射片段一起提供到存储系统,所述映射段是从所述存储系统中被复制到所述主机中的,所述第一命令排队在所述主机内的时隙中;
由所述存储系统更新所述存储系统中存储的所述映射片段作为所述存储系统针对从所述主机提供的所述第一命令和所述映射片段的操作结果;
由所述存储系统通过对所述主机的响应将更新后的映射片段与所述映射段内的所述映射片段的位置信息一起提供到所述主机;
由所述存储系统将所述更新后的映射片段高速缓存在所述存储系统中;
由所述主机基于从所述存储系统提供的所述更新后的映射片段来更新复制到所述主机中的映射片段;并且
由所述存储系统基于从所述时隙中移除所述第一命令的信息来移除高速缓存的映射片段,所述信息是从所述主机提供的。
22.根据权利要求21所述的操作方法,进一步包括由所述存储系统对映射片段内的物理地址执行操作,所述映射片段与第二命令一起从所述主机被提供,并且包括与所述高速缓存的映射片段内的逻辑地址不同的逻辑地址。
23.根据权利要求21所述的操作方法,进一步包括由所述存储系统忽略映射片段内的物理地址,所述映射片段与第二命令一起从所述主机被提供,并且包括与所述高速缓存的映射片段内的逻辑地址相同的逻辑地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2021-0073727 | 2021-06-07 | ||
KR1020210073727A KR20220165128A (ko) | 2021-06-07 | 2021-06-07 | 메모리 시스템 및 데이터 처리 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115509950A true CN115509950A (zh) | 2022-12-23 |
Family
ID=84284081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210172073.3A Withdrawn CN115509950A (zh) | 2021-06-07 | 2022-02-24 | 存储器系统、包括存储器系统的数据处理系统及操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11941246B2 (zh) |
KR (1) | KR20220165128A (zh) |
CN (1) | CN115509950A (zh) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9348537B2 (en) | 2013-09-10 | 2016-05-24 | Qualcomm Incorporated | Ascertaining command completion in flash memories |
US10229051B2 (en) * | 2015-12-30 | 2019-03-12 | Samsung Electronics Co., Ltd. | Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device |
KR20180045103A (ko) * | 2016-10-24 | 2018-05-04 | 삼성전자주식회사 | 적응형 인터럽트를 생성하는 데이터 저장 장치 및 그것의 동작 방법 |
US10915475B2 (en) * | 2017-10-12 | 2021-02-09 | Western Digital Technologies, Inc. | Methods and apparatus for variable size logical page management based on hot and cold data |
CN112166420B (zh) | 2018-04-23 | 2024-04-05 | 美光科技公司 | 用于刷新逻辑到物理信息的系统和方法 |
US20190369909A1 (en) * | 2018-05-29 | 2019-12-05 | Alibaba Group Holding Limited | Homogeneous in-storage computation system |
JP7091203B2 (ja) * | 2018-09-19 | 2022-06-27 | キオクシア株式会社 | メモリシステムおよび制御方法 |
KR20200114052A (ko) | 2019-03-27 | 2020-10-07 | 에스케이하이닉스 주식회사 | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 |
US11237953B2 (en) * | 2019-05-21 | 2022-02-01 | Micron Technology, Inc. | Host device physical address encoding |
JP2021149549A (ja) * | 2020-03-19 | 2021-09-27 | キオクシア株式会社 | ストレージ装置およびアドレス変換テーブルのキャッシュ制御方法 |
-
2021
- 2021-06-07 KR KR1020210073727A patent/KR20220165128A/ko unknown
- 2021-10-20 US US17/506,414 patent/US11941246B2/en active Active
-
2022
- 2022-02-24 CN CN202210172073.3A patent/CN115509950A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20220391093A1 (en) | 2022-12-08 |
US11941246B2 (en) | 2024-03-26 |
KR20220165128A (ko) | 2022-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11030094B2 (en) | Apparatus and method for performing garbage collection by predicting required time | |
KR20200022118A (ko) | 데이터 저장 장치 및 그 동작 방법 | |
US10860231B2 (en) | Memory system for adjusting map segment based on pattern and operating method thereof | |
KR20180121187A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US11526296B2 (en) | Controller providing host with map information of physical address for memory region, and operation method thereof | |
US11449418B2 (en) | Controller and method for selecting victim block for wear leveling operation | |
KR102649131B1 (ko) | 메모리 시스템 내 대용량 데이터 저장이 가능한 블록에서의 유효 데이터 체크 방법 및 장치 | |
US20200320012A1 (en) | Memory system and method for operating the same | |
US11200178B2 (en) | Apparatus and method for transmitting map data in memory system | |
KR20210027563A (ko) | 저장 장치 및 그 동작 방법 | |
KR20200020464A (ko) | 데이터 저장 장치 및 그 동작 방법 | |
US11422930B2 (en) | Controller, memory system and data processing system | |
US11334272B2 (en) | Memory system and operating method thereof | |
CN114371812B (zh) | 控制器及其操作方法 | |
KR20200137244A (ko) | 메모리 시스템 및 그것의 동작방법 | |
KR20210144249A (ko) | 저장 장치 및 이의 동작 방법 | |
KR102596964B1 (ko) | 맵 캐시 버퍼 크기를 가변시킬 수 있는 데이터 저장 장치 | |
CN115080457A (zh) | 控制器及其操作方法 | |
US12045163B2 (en) | Storage device for classifying data based on stream class number, storage system, and operating method thereof | |
CN110309075B (zh) | 存储器控制器以及具有存储器控制器的存储器系统 | |
US11941246B2 (en) | Memory system, data processing system including the same, and operating method thereof | |
CN114691534A (zh) | 控制器以及包括控制器的存储器系统 | |
CN114546885A (zh) | 控制器以及包括控制器的存储器系统和数据处理系统 | |
KR20200125216A (ko) | 데이터 저장 장치, 이를 포함하는 전자 장치 및 데이터 저장 장치의 동작 방법 | |
CN116795279A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20221223 |
|
WW01 | Invention patent application withdrawn after publication |