CN111459845B - 存储装置、包括存储装置的计算系统及其操作方法 - Google Patents
存储装置、包括存储装置的计算系统及其操作方法 Download PDFInfo
- Publication number
- CN111459845B CN111459845B CN201911067060.4A CN201911067060A CN111459845B CN 111459845 B CN111459845 B CN 111459845B CN 201911067060 A CN201911067060 A CN 201911067060A CN 111459845 B CN111459845 B CN 111459845B
- Authority
- CN
- China
- Prior art keywords
- logical
- host
- address
- memory
- physical address
- 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
- 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/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
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- 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
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
-
- 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
- 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/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/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/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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
-
- 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 (AREA)
- Read Only Memory (AREA)
Abstract
本申请公开一种存储器控制器。该存储器控制器可以控制用于存储逻辑到物理(L2P)映射信息的存储器装置,该存储器控制器包括:映射数据存储装置,被配置为存储包括在L2P映射信息中的多个L2P地址段;以及映射数据管理器,被配置为:响应于主机的映射数据请求,将多个L2P地址段中的至少一个L2P地址段提供给主机;以及从映射数据存储装置中移除L2P地址段,其中基于最近最少使用(LRU)频率和是否将L2P地址段提供给主机,在多个L2P地址段之中选择L2P地址段。
Description
相关申请的交叉引用
本申请要求于2019年1月22日提交的申请号为10-2019-0008172的韩国专利申请的优先权,其全部公开内容通过引用整体并入本文。
技术领域
本公开的各个实施例总体涉及一种电子装置,更具体地,涉及一种存储装置、包括该存储装置的计算系统、以及操作该计算系统的方法。
背景技术
通常,存储装置在诸如计算机或智能电话的主机装置的控制下存储数据。存储装置可以包括:存储器装置,被配置为存储数据;以及存储器控制器,被配置为控制存储器装置。存储器装置主要分为易失性存储器装置和非易失性存储器装置。
易失性存储器装置仅在向其供电时存储数据;当电源关闭时,存储在其中的数据会丢失。易失性存储器装置的示例包括静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。
在非易失性存储器装置中,即使在电源关闭时也保留存储在其中的数据。非易失性存储器装置的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)和闪速存储器。
发明内容
本公开的各个实施例涉及一种具有增强的映射数据访问性能的存储器装置、包括该存储器装置的计算系统以及操作该计算系统的方法。
本公开的实施例可以提供一种存储器控制器,该存储器控制器被配置为控制用于存储逻辑到物理(L2P)映射信息的存储器装置,该存储器控制器包括:映射数据存储装置,被配置为存储包括在L2P映射信息中的多个L2P地址段;以及映射数据管理器,被配置为:响应于主机的映射数据请求,将多个L2P地址段中的至少一个L2P地址段提供给主机;以及从映射数据存储装置中移除L2P地址段,其中基于最近最少使用(least recently used,LRU)频率和是否将L2P地址段提供给主机,在多个L2P地址段之中选择L2P地址段。
本公开的实施例可以提供一种操作存储器控制器的方法,该存储器控制器包括被配置为存储映射数据的映射高速缓存,该方法包括:将从存储器装置接收的多个逻辑到物理(L2P)地址段存储在映射高速缓存;响应于主机的映射数据请求,将多个L2P地址段中的至少一个L2P地址段提供给主机;基于最近最少使用(LRU)频率和是否将L2P地址段提供给主机,在多个L2P地址段之中选择L2P地址段;并且从映射高速缓存中移除所选择的L2P地址段。
本公开的实施例可以提供一种计算系统,该计算系统包括:存储装置;以及主机,被配置为访问该存储装置,其中该存储装置包括:存储器装置,被配置为存储包括多个L2P地址段的逻辑到物理(L2P)映射信息;以及存储器控制器,包括用于存储映射数据的映射高速缓存,并被配置为:存储从存储器装置接收的多个L2P地址段;响应于主机的映射数据请求,将多个L2P地址段中的至少一个L2P地址段提供给主机;以及从映射高速缓存中移除L2P地址段,其中基于最近最少使用(LRU)频率和是否将L2P地址段提供给主机,在多个L2P地址段之中选择L2P地址段。
本公开的实施例可以提供一种计算系统,该计算系统包括:主机,被配置为提供访问请求以及存储在其中的映射数据;存储器装置,被配置为存储多条映射数据;映射高速缓存,被配置为高速缓存来自存储器装置的一条或多条映射数据;以及控制器,被配置为:响应于访问请求并根据提供的映射数据或高速缓存的数据,控制存储器装置执行操作;通过向主机提供一条或多条高速缓存的数据,将一条或多条高速缓存的数据与主机同步;以及从映射高速缓存中逐出一条或多条同步的数据的最近最少高速缓存命中数据。
本公开的实施例可以提供一种控制器,该控制器包括:映射高速缓存,被配置为高速缓存来自存储器装置的一条或多条映射数据;以及处理器,被配置为:响应于与来自主机的映射数据一起提供的访问请求,根据提供的映射数据或高速缓存的数据,控制存储器装置执行操作;通过向主机提供高速缓存的数据中的一条或多条,使高速缓存的数据中的一条或多条与主机同步;以及从映射高速缓存中逐出一条或多条同步的数据的最近最少高速缓存命中数据。
本公开的实施例可以提供一种操作控制器的方法,该操作方法包括:高速缓存来自存储器装置的一条或多条映射数据;响应于与来自主机的映射数据一起提供的访问请求,并根据提供的映射数据或高速缓存的数据,控制存储器装置执行操作;通过向主机提供一条或多条高速缓存的数据,将一条或多条高速缓存的数据与主机同步;并且从高速缓存的数据中逐出一条或多条同步的数据的最近最少高速缓存命中数据。
附图说明
图1是示出根据本公开的实施例的存储装置的示图。
图2是示出存储器装置,例如在图1的存储器装置的配置的示图。
图3是示出图2的存储器单元阵列的实施例的示图。
图4是示出根据本发明的实施例的图3的存储块BLK1至BLKz中的任意一个存储块BLKa的电路图。
图5是示出根据本发明的实施例的图3的存储块BLK1至BLKz中的任意一个存储块BLKb的电路图。
图6是示出根据实施例的存储器控制器的配置和操作的示图。
图7是示出根据实施例的映射数据管理器,诸如图6的映射数据管理器的操作的示图。
图8是示出根据实施例的映射数据管理器,诸如图6的映射数据管理器的操作的示图。
图9是示出根据实施例的存储器控制器的操作的流程图。
图10是详细示出图9的存储器控制器的操作的流程图。
图11是详细示出图9的存储器控制器的操作的流程图。
图11A是示出根据本发明的实施例的存储器控制器200的操作的流程图。
图12是示出图1的存储器控制器的示例的示图。
图13是示出根据本公开的实施例的应用存储装置的存储卡系统的框图。
图14是示出根据本公开的实施例的应用存储装置的固态驱动器(SSD)系统的框图。
图15是示出根据本公开的实施例的应用存储装置的用户系统的框图。
具体实施方式
下面参照附图详细解释本公开的实施例。
图1是示出根据本公开的实施例的存储装置50的示图。
参照图1,计算系统可以包括存储装置50和主机300。主机300可以在用户的控制下访问存储装置50。该计算系统可以对应于以下描述的图15的用户系统。
存储装置50可以包括存储器装置100和存储器控制器200,存储器控制器200被配置为控制存储器装置100的操作。存储装置50可以被配置为在诸如蜂窝电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV、平板PC或车载信息娱乐系统的主机300的控制下存储数据。
根据与主机300通信的主机接口,存储装置50可以被配置为各种存储装置中的任意一种。例如,数据存储装置50可以被配置为:SSD、MMC、eMMC、RS-MMC或微型-MMC型多媒体卡、SD、迷你-SD、微型-SD型的安全数字卡、通用串行总线(USB)存储装置、通用闪存(UFS)装置、个人计算机存储卡国际协会(PCMCIA)卡型存储装置、外围组件互连(PCI)卡型存储装置、高速PCI(PCI-E)卡型存储装置、紧凑型闪存(CF)卡、智能媒体卡和/或记忆棒。
存储装置50可以以各种封装类型中的任意一种的形式被制造。例如,存储装置50可以被制造为:堆叠封装(POP)类型、系统级封装(SIP)类型、片上系统(SOC)类型、多芯片封装(MCP)类型、板上芯片(COB)类型、晶圆级制造封装(WFP)类型和晶圆级堆叠封装(WSP)类型。
存储器装置100可将数据存储在其中。存储器装置100可以在存储器控制器200的控制下进行操作。存储器装置100可以包括存储器单元阵列,该存储器单元阵列包括被配置为在其中存储数据的多个存储器单元。
存储器单元可以包括:能够存储单个数据位的单层单元(SLC)、能够存储两个数据位的多层单元(MLC)、能够存储三个数据位的三层单元(TLC),或者能够存储四个数据位的四层单元(QLC)。
存储器单元阵列可包括多个存储块。每个存储块可以包括多个存储器单元。每个存储块可包括多个页面。在实施例中,每个页面可以是将数据存储在存储器装置100中或从存储器装置100读取存储的数据的单位。每个存储块可以是擦除数据的单位。
在实施例中,存储器装置100可以是双倍数据速率同步动态随机存取存储器(DDRSDRAM)、低功率双倍数据速率第四代(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SRAM、低功耗DDR(LPDDR)、rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或自旋转移力矩随机存取存储器(STT-RAM)。在以下描述的背景下,存储器装置100是NAND闪速存储器。
存储器装置100可以从存储器控制器200接收命令和地址,并访问由该地址选择的存储器单元阵列的区域。换言之,存储器装置100可执行与对由地址选择的区域的命令相对应的操作。例如,存储器装置100可执行写入(编程)操作、读取操作和擦除操作。在编程操作期间,存储器装置100可以将数据编程到由地址选择的区域。在读取操作期间,存储器装置100可以从由地址选择的区域读取数据。在擦除操作期间,存储器装置100可以从由地址选择的区域擦除数据。
在实施例中,存储器装置100可以包括逻辑到物理映射信息存储装置111。
逻辑到物理映射信息存储装置111可以存储逻辑到物理映射信息。逻辑到物理映射信息可以是指示从主机300提供的数据的逻辑地址与存储数据的存储器装置100的物理地址之间的映射关系的信息。
在实施例中,逻辑到物理映射信息可以包括多个逻辑到物理地址段。每个逻辑到物理地址段可以包括多个逻辑地址,以及分别映射到多个逻辑地址的多个物理地址。多个逻辑地址可以是从主机300提供的数据的逻辑地址,以将数据存储在存储器装置100中。多个物理地址可以是其中存储了从主机300提供的数据的存储器装置100的物理地址。
在实施例中,逻辑到物理映射信息存储装置111可以由包括在存储器单元阵列中的多个存储块的各个备用区域形成。在实施例中,逻辑到物理映射信息存储装置111可以由存储器单元阵列中包括的多个存储块之中的、存储系统信息的至少一个系统块形成。在实施例中,逻辑到物理映射信息存储装置111可以由设置在存储器单元阵列中包括的多个相应存储块中包括的字线之中的特定位置处的字线形成。
存储器控制器200可以控制存储装置50的全部操作。
当向存储装置50供电时,存储器控制器200可执行固件。在存储器装置100是闪速存储器装置的情况下,存储器控制器200可以执行诸如闪速转换层(FTL)的固件,以用于控制主机300和存储器装置100之间的通信。
在实施例中,存储器控制器200可以从主机300接收数据和逻辑块地址(LBA),并且将LBA转换为指示待存储数据的存储器单元的地址的物理块地址(PBA),该存储器单元被包括在存储器装置100中。
存储器控制器200可以控制存储器装置100,以响应于来自主机300的请求执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可向存储器装置100提供编程命令、PBA和数据。在读取操作期间,存储器控制器200可以向存储器装置100提供读取命令和PBA。在擦除操作期间,存储器控制器200可以向存储器装置100提供擦除命令和PBA。
在实施例中,存储器控制器200可以自主地生成编程命令、地址和数据,而不管来自主机300的请求,并且将它们传送到存储器装置100。例如,存储器控制器200可将命令、地址和数据提供给存储器装置100以执行诸如用于耗损均衡的编程操作和用于垃圾收集的编程操作的后台操作。
在实施例中,存储器控制器200可以控制至少两个或更多个存储器装置100。在这种情况下,存储器控制器200可以以交错方式控制存储器装置100,以便提高操作性能。交织方案可以是至少两个或更多个存储器装置100的重叠操作时段的操作方案。
在实施例中,存储器控制器200可以包括映射数据管理器210和映射数据存储装置220。
存储器控制器200可以从存储器装置100接收存储在存储器装置100中的一些逻辑到物理映射信息,并且存储所接收到的逻辑到物理映射信息。存储器控制器200可以使用所存储的一些逻辑到物理映射信息来增强访问存储在存储器装置100中的数据的性能。
在实施例中,映射数据管理器210可以从存储器装置100请求多个逻辑到物理地址段。多个逻辑到物理地址段可以是逻辑到物理映射信息存储装置111中存储的逻辑到物理映射信息中包括的逻辑到物理地址段。映射数据管理器210可以在映射数据存储装置220中存储从存储器装置100获得的多个逻辑到物理地址段。
响应于从主机300提供的映射数据请求,映射数据管理器210可以将存储在映射数据存储装置220中的多个逻辑到物理地址段中的至少一个提供给主机300。
映射数据管理器210可以选择至少一个逻辑到物理地址段以提供给主机300。在实施例中,映射数据管理器210可以基于响应于主机300提供的读取请求访问多个逻辑到物理地址段中的每一个的次数(访问计数),来选择待提供给主机300的至少一个逻辑到物理地址段。在实施例中,映射数据管理器210可以基于待响应于从主机300提供的读取请求使用多个逻辑到物理地址段中的每一个来访问的数据的大小,来选择待提供给主机300的至少一个逻辑到物理地址段。
映射数据管理器210可以基于响应于从主机300提供的请求对多个逻辑地址到物理地址段中的每一个的访问频率或新近度(recency),来确定多个逻辑地址到物理地址段之间的优先级。
详细地,映射数据管理器210可以基于待响应于从主机300提供的请求而访问的多个逻辑到物理地址段中的每一个的最近最少使用(LRU)频率,来设置多个逻辑到物理地址段之间的优先级。LRU频率可以是指示响应于从主机300提供的请求访问每个逻辑到物理地址段的频率的相对索引。例如,在两个逻辑到物理地址段中,具有高LRU频率值的逻辑到物理地址段响应于从主机300提供的请求的访问频率可以小于具有低LRU频率值的逻辑到物理地址段的访问频率。
在实施例中,映射数据管理器210可以设置逻辑到物理地址段的优先级,使得逻辑到物理地址段的LRU频率值越小,则逻辑到物理地址段的优先级越高。映射数据管理器210可以设置逻辑到物理地址段的优先级,使得逻辑到物理地址段的LRU频率值越大,则逻辑到物理地址段的优先级越低。
映射数据管理器210可以将存储在映射数据存储装置220中的至少一个逻辑到物理地址段的优先级设置为可以预先确定的特定优先级。至少一个逻辑到物理地址段可以是从映射数据管理器210提供给主机300的逻辑到物理地址段。可以考虑将至少一个逻辑到物理地址段从映射数据存储装置220中移除所花费的时间来确定特定优先级。换言之,基于从映射数据存储装置中逐出至少一个L2P地址段的估计时间来确定特定优先级。确定特定优先级以防止在将至少一个逻辑到物理地址段提供给主机300之后立即将至少一个逻辑到物理地址段从映射数据存储装置220中逐出。
如果响应于从主机300接收的读取请求而待读取的数据的逻辑地址不包括在多个逻辑到物理地址段中,则映射数据管理器210可以从存储器装置100接收并存储新逻辑到物理地址段。新逻辑到物理地址段可以是包括待读取的数据的逻辑地址的逻辑到物理地址段。映射数据管理器210可以将新逻辑到物理地址段的优先级设置为特定优先级,该特定优先级可以是预定的和/或可以是最高优先级。换言之,可以将特定优先级设置为最高值。
当从主机300接收到读取请求时,映射数据管理器210可以更新多个逻辑到物理地址段的优先级。
在实施例中,响应于从主机300接收的读取请求,可以访问多个逻辑到物理地址段中的任意一个。如果访问逻辑到物理地址段,则可以改变多个逻辑到物理地址段的各个LRU频率。可以根据对每个逻辑到物理地址段的访问频率来确定每个逻辑到物理地址段的LRU频率。因此,映射数据管理器210可以基于多个逻辑到物理地址段的各自改变的LRU频率来更新多个逻辑到物理地址段的优先级。
在实施例中,如果响应于从主机300接收的读取请求而待读取的数据的逻辑地址不包括在多个逻辑到物理地址段中,则映射数据管理器210可以从存储器装置100接收并存储新逻辑到物理地址段。映射数据管理器210可以设置新逻辑到物理地址段的优先级。映射数据管理器210可以更新包括新逻辑到物理地址段的多个逻辑到物理地址段的优先级。
映射数据管理器210可以基于多个逻辑到物理地址段的优先级,在存储在映射数据存储装置220中的多个逻辑到物理地址段中选择至少一个待移除的逻辑地址到物理地址段。
在实施例中,映射数据管理器210可以按照从多个逻辑到物理地址段中的最低优先级的顺序选择至少一个逻辑到物理地址段,作为待移除的逻辑到物理地址段。
在实施例中,映射数据管理器210可以在多个逻辑到物理地址段中选择具有低于阈值优先级的优先级的至少一个逻辑到物理地址段作为待移除的逻辑到物理地址段。
在实施例中,映射数据管理器210可以基于逻辑到物理地址段是否是主机300中提供的逻辑到物理地址段,来在多个逻辑到物理地址段中选择待移除的逻辑到物理地址段。
映射数据存储装置220可以在映射数据管理器210的控制下存储从存储器装置100接收的多个逻辑到物理地址段。多个逻辑到物理地址段可以被包括在存储器装置100中存储的逻辑到物理映射信息的一部分中。
在实施例中,可以在映射数据管理器210的控制下将存储在映射数据存储装置220中的至少一个逻辑到物理地址段提供给主机300。在实施例中,可以在映射数据管理器210的控制下从映射数据存储装置220中移除存储在映射数据存储装置220中的至少一个逻辑到物理地址段。
主机300可以使用诸如通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和低负载DIMM(LRDIMM)通信方法的各种通信方法中的至少一种与存储装置50通信。
在实施例中,主机300可以包括主机存储器310。
主机300可以向存储器控制器200提供映射数据请求,以请求存储在存储器控制器200中的一些映射数据。主机300可响应于映射数据请求而将从存储器控制器200获得的至少一个逻辑到物理地址段存储在主机存储器310中。
主机300可以基于存储在主机存储器310中的至少一个逻辑到物理地址段,向存储器控制器200提供读取存储在存储器装置100中的数据的请求。详细地,主机300可以将与待读取的数据的逻辑地址映射的物理地址以及读取请求提供给存储器控制器200。与待读取的数据的逻辑地址一起映射的物理地址可以是包括在主机存储器310中存储的至少一个逻辑到物理地址段中的物理地址。
由主机300提供给存储器控制器200的物理地址可以预先由存储器控制器200通过同步操作提供给主机300,该同步操作将在下面参照图9的步骤S903和S905进行描述。该物理地址也可以被高速缓存在映射数据存储装置220中,如下面也参照图9的步骤S901所描述的。例如,当根据由主机300提供的物理地址成功地执行了读取操作时,基于响应于主机的请求而访问的多个逻辑到物理地址段的各个LRU频率,与该物理地址相对应并高速缓存在映射数据存储装置220中的逻辑到物理映射段可以被视为已经在步骤S907中被访问(即,被视为高速缓存命中),在步骤S907中,设置高速缓存在映射数据存储装置220中的多个逻辑到物理地址段的优先级。
图2是示出图1的存储器装置100的配置的示图。
参照图2,存储器装置100可包括存储器单元阵列110、外围电路120和控制逻辑130。
存储器单元阵列110可以包括多个存储块BLK1至BLKz。多个存储块BLK1至BLKz通过行线RL联接到地址解码器121。存储块BLK1至BLKz可以通过位线BL1至BLm联接到读取和写入电路123。存储块BLK1至BLKz中的每一个可以包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。联接到多个存储器单元中的相同字线的存储器单元被定义为一个页面。换言之,存储器单元阵列110可以由多个物理页面形成。在实施例中,包括在存储器单元阵列110中的存储块BLK1至BLKz中的每一个可包括多个虚设单元。一个或多个虚设单元可以串联联接在漏极选择晶体管和存储器单元之间以及源极选择晶体管和存储器单元之间。
存储器装置100的存储器单元中的每一个可以被形成为能够存储单个数据位的单层单元(SLC)、能够存储两个数据位的多层单元(MLC)、能够存储三个数据位的三层单元(TLC),或者能够存储四个数据位的四层单元(QLC)。
在实施例中,存储器单元阵列110可以包括逻辑到物理映射信息存储装置(未示出)。
逻辑到物理映射信息存储装置可以存储逻辑到物理映射信息。逻辑到物理映射信息可以指示从参照图1描述的主机提供的数据的逻辑地址和其中存储数据的存储器单元阵列110的物理地址之间的映射关系。
在实施例中,逻辑到物理映射信息可以包括多个逻辑到物理地址段。每个逻辑到物理地址的段可包括多个逻辑地址,以及分别映射到所述多个逻辑地址的多个物理地址。可以从主机提供多个逻辑地址。多个物理地址可以是存储从主机提供的数据的存储块的物理地址,该物理地址包括在存储器单元阵列110中。
在实施例中,逻辑到物理映射信息存储装置可以由存储器单元阵列110中包括的多个存储块的各个备用区域形成。在实施例中,逻辑到物理映射信息存储装置可以由存储器单元阵列110中包括的多个存储块之中的至少一个存储系统信息的系统块形成。在实施例中,逻辑到物理映射信息存储可以由设置在存储器单元阵列110中包括的多个存储块中包括的字线之中的特定位置处的字线形成。
外围电路120可以包括地址解码器121、电压生成器122、读取/写入电路123、数据输入/输出电路124和感测电路125。
外围电路120可以驱动存储器单元阵列110。例如,外围电路120可驱动存储器单元阵列110,以执行编程操作、读取操作或擦除操作。
地址解码器121通过行线RL联接到存储器单元阵列110。行线RL可以包括漏极选择线、字线、源极选择线和公共源极线。在实施例中,字线可包括正常字线和虚设字线。在实施例中,行线RL可进一步包括管道选择线。
地址解码器121可以在控制逻辑130的控制下进行操作。地址解码器121从控制逻辑130接收地址ADDR。
地址解码器121可以对所接收的地址中的块地址进行解码。地址解码器121可以根据所解码的块地址选择存储块BLK1至BLKz中的至少一个。地址解码器121可以对所接收的地址ADDR中的行地址RADD进行解码。地址解码器121可以通过根据所解码的行地址RADD将从电压生成器122供应的电压施加到至少一个字线WL来选择所选择的存储块的至少一个字线WL。
在编程操作期间,地址解码器121可以将编程电压施加到所选择的字线,并将具有低于编程电压的电平的通过电压施加到未选择的字线。在编程验证操作期间,地址解码器121可以将验证电压施加到所选择的字线,并且将具有高于验证电压的电平的验证通过电压施加到未选择的字线。
在读取操作期间,地址解码器121可以将读取电压施加到所选择的字线,并且将具有高于读取电压的电平的读取通过电压施加到未选择的字线。
在实施例中,可以基于存储块执行存储器装置100的擦除操作。在擦除操作期间,待被输入到存储器装置100的地址ADDR包括块地址。地址解码器121可以解码块地址并响应于解码的块地址选择对应的存储块。在擦除操作期间,地址解码器121可以将接地电压施加到与所选择的存储块联接的字线。
在本公开的实施例中,地址解码器121可以对传送的地址ADDR中的列地址进行解码。所解码的列地址(DCA)可被传送至读取/写入电路123。例如,地址解码器121可包括诸如行解码器、列解码器和地址缓冲器的组件。
电压生成器122可以使用供应给存储器装置100的外部电源电压生成多个操作电压Vop。电压生成器122可在控制逻辑130的控制下进行操作。
在实施例中,电压生成器122可以通过调节外部电源电压来生成内部电源电压。从电压生成器122生成的内部电源电压可以用作存储器装置100的工作电压。
在实施例中,电压生成器122可以使用外部电源电压或内部电源电压生成多个操作电压。电压生成器122可以生成存储器装置100所需的各种电压。例如,电压生成器122可以生成多个擦除电压、多个编程电压、多个通过电压、多个选择读取电压和多个未选择读取电压。
电压生成器122可以包括被配置为接收内部电源电压的多个泵浦电容器,以生成具有各种电压电平的多个工作电压Vop,并且可以在控制逻辑130的控制下通过选择性地启用多个泵浦电容器来生成多个工作电压Vop。
所生成的操作电压Vop可以由地址解码器121提供给存储器单元阵列110。
读取/写入电路123可以包括可以分别通过第一至第m位线BL1至BLm被联接到存储器单元阵列110的第一至第m页面缓冲器PB1至PBm。第一至第m页面缓冲器PB1至PBm在控制逻辑130的控制下进行操作。
第一至第m页面缓冲器PB1至PBm可以与数据输入/输出电路124进行数据DATA通信。在编程操作期间,第一至第m页面缓冲器PB1至PBm可以通过数据输入/输出电路124和数据线DL接收待被存储的数据DATA。
在编程操作期间,当编程脉冲施加到每个所选择的字线时,第一到第m页面缓冲器PB1到PBm可以通过位线BL1到BLm将通过数据输入/输出电路124接收的数据DATA传送到所选择的存储器单元。基于传送的数据DATA对所选择的页面中的存储器单元进行编程。联接到施加有编程启用电压(例如,接地电压)的位线的存储器单元可以具有增加的阈值电压。联接到施加有编程禁止电压(例如,电源电压)的位线的存储器单元的阈值电压可以被保持。在编程验证操作期间,第一至第m页面缓冲器PB1至PBm可以通过位线BL1至BLm从所选择的存储器单元读取数据DATA。
在读取操作期间,读取/写入电路123可以通过位线BL从所选择的页面的存储器单元读取数据DATA,并将所读取的数据DATA存储到第一至第m页面缓冲器PB1至PBm。
在擦除操作期间,读取/写入电路123可允许位线BL浮置。在实施例中,读取/写入电路123可包括列选择电路。
在实施例中,虽然将存储在读取/写入电路123中包括的多个页面缓冲器中的一些页面缓冲器中的数据被编程到存储器单元阵列110,但是其它页面缓冲器可以从存储器控制器200接收新数据并存储新数据。
数据输入/输出电路124通过数据线DL联接到第一至第m页面缓冲器PB1至PBm。数据输入/输出电路124可以在控制逻辑130的控制下进行操作。
数据输入/输出电路124可以包括用于接收输入数据DATA的多个输入/输出缓冲器(未示出)。在编程操作期间,数据输入/输出电路124可以从外部控制器(未示出)接收待被存储的数据DATA。在读取操作期间,数据输入/输出电路124可以向外部控制器输出从读取/写入电路123中包括的第一至第m页面缓冲器PB1至PBm接收的数据DATA。
在读取操作或验证操作期间,感测电路125可以响应于由控制逻辑130生成的使能位信号VRYBIT而生成参考电流,将从读取/写入电路123接收的感测电压VPB与由参考电流生成的参考电压进行比较,将通过或失败信号输出到控制逻辑130。
控制逻辑130可以联接到地址解码器121、电压生成器122、读取/写入电路123、数据输入/输出电路124和感测电路125。控制逻辑130可以控制存储器装置100的全部操作。控制逻辑130可以响应于从外部装置传送的命令CMD而操作。
控制电路130可以响应于命令CMD和地址ADD生成各种信号并控制外围电路120。例如,控制逻辑130可以响应于命令CMD和地址ADD生成操作信号OPSIG、行地址RADD、读取/写入电路控制信号PBSIGNALS和启用位VRYBIT。控制逻辑130可以将操作信号OPSIG输出到电压生成器122,将行地址RADD输出到地址解码器121,将读取/写入控制信号输出到读取/写入电路123,并将启用位VRYBIT输出到感测电路125。此外,控制逻辑130可以响应于从感测电路125输出的通过信号PASS或失败信号FAIL,确定目标存储器单元在验证操作期间是通过验证还是未通过验证。
图3是示出图2的存储器单元阵列110的实施例的示图。
参照图3,存储器单元阵列110可以包括多个存储块BLK1至BLKz。每个存储块具有三维结构。每个存储块可以包括堆叠在衬底上的多个存储器单元。该存储器单元沿+X方向、+Y方向和+Z方向布置。下面参照图4和图5更详细地描述每个存储块的结构。
图4是示出根据本发明的实施例的图3的存储块BLK1到BLKz的任意一个存储块BLKa的电路图。
参照图4,存储块BLKa可包括多个单元串CS11至CS1m和CS21至CS2m。在实施例中,单元串CS11至CS1m和单元串CS21至CS2m中的每一个可以形成为“U”形。在存储块BLKa中,m个单元串可以沿行方向(即,+X方向)布置。在图5中,两个单元串被示出为沿列方向(即,+Y方向)布置。但是,此示图是为了清楚起见;应该理解,可以在列方向上布置三个或更多个单元串。
多个单元串CS11至CS1m和单元串CS21至CS2m中的每一个包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn、管道晶体管PT以及至少一个漏极选择晶体管DST。
选择晶体管SST和DST以及存储器单元MC1至MCn可以分别具有类似的结构。在实施例中,选择晶体管SST和DST以及存储器单元MC1至MCn中的每一个可以包括沟道层、隧道绝缘层、电荷存储层以及阻挡绝缘层。在实施例中,可以在每个单元串中设置用于提供沟道层的柱。根据本公开的实施例,可以为每个单元串提供用于提供沟道层、隧道绝缘层、电荷存储层以及阻挡绝缘层中的至少一个的柱。
每个单元串的源极选择晶体管SST联接在公共源极线CSL和存储器单元MC1至MCp之间。
在实施例中,布置在同一行中的单元串的源极选择晶体管联接到沿行方向延伸的源极选择线,并且布置在不同行中的单元串的源极选择晶体管联接到不同的源极选择线。在图4中,第一行中的单元串CS11至CS1m的源极选择晶体管联接到第一源极选择线SSL1。第二行中的单元串CS21至CS2m的源极选择晶体管联接到第二源极选择线SSL2。
在实施例中,单元串CS11至CS1m和CS21至CS2m的源极选择晶体管可以共同联接到单个源极选择线。
每个单元串中的第一至第n存储器单元MC1至MCn联接在源极选择晶体管SST和漏极选择晶体管DST之间。
第一至第n存储器单元MC1至MCn可以被划分为第一至第p存储器单元MC1至MCp以及第p+1至第n存储器单元MCp+1至MCn。第一至第p存储器单元MC1至MCp在-Z方向上连续布置,并且串联联接在源极选择晶体管SST和管道晶体管PT之间。第p+1至第n存储器单元MCp+1至MCn沿+Z方向连续布置并且串联联接在管道晶体管PT和漏极选择晶体管DST之间。第一至第p存储器单元MC1至MCp和第p+1至第n存储器单元MCp+1至MCn通过管道晶体管PT彼此联接。每个单元串的第一至第n存储器单元MC1至MCn的栅极分别联接至第一至第n字线WL1至WLn。
单元串的管道晶体管PT的各个栅极联接到管线PL。
每个单元串的漏极选择晶体管DST连接在相应位线和存储器单元MCp+1至MCn之间。沿行方向布置的单元串联接到沿行方向延伸的漏极选择线。第一行中的单元串CS11至CS1m的漏极选择晶体管联接至第一漏极选择线DSL1。第二行中的单元串CS21至CS2m的漏极选择晶体管联接至第二漏极选择线DSL2。
沿列方向布置的单元串可联接到沿列方向延伸的位线。在图4中,第一列中的单元串CS11和CS21联接到第一位线BL1。第m列中的单元串CS1m和CS2m联接到第m位线BLm。
联接到沿行方向布置的单元串中的相同字线的存储器单元形成单个页面。例如,第一行中的单元串CS11至CS1m之中的、联接到第一字线WL1的存储器单元形成单个页面。在第二行中的单元串CS21至CS2m之中的、联接到第一字线WL1的存储器单元形成另一单个页面。当选择漏极选择线DSL1和DSL2中的任意一个时,可以选择沿单个行方向布置的相应单元串。当选择字线WL1至WLn中的任意一个时,可以从所选择的单元串中选择相应的单个页面。
在实施例中,可以提供偶数位线和奇数位线来代替第一至第m位线BL1至BLm。沿行方向布置的单元串CS11至CS1m或CS21至CS2m的第偶数个单元串可以联接到相应的偶数位线。沿行方向布置的单元串CS11至CS1m或CS21至CS2m的第奇数个单元串可以联接到相应的奇数位线。
在实施例中,第一存储器单元MC1至第n存储器单元MCn中的至少一个可以用作虚设存储器单元。例如,可提供一个或多个虚设存储器单元以减小源极选择晶体管SST与存储器单元MC1至MCp之间的电场。可选地,可以提供一个或多个虚设存储器单元以减小漏极选择晶体管DST与存储器单元MCp+1至MCn之间的电场。随着虚设存储器单元的数量增加,可以增加存储块BLKa的操作可靠性,同时可以增加存储块BLKa的大小。随着虚设存储器单元的数量减少,存储块BLKa的尺寸可以减小,但是存储块BLKa的操作可靠性可以降低。
为了有效地控制虚设存储器单元,每个虚设存储器单元可以具有所需的阈值电压。在执行对存储块BLKa的擦除操作之前或之后,可以对所有或一些虚设存储器单元执行编程操作。在已经执行编程操作之后执行擦除操作的情况下,通过控制待被施加到联接到各个虚设存储器单元的虚设字线的电压,虚设存储器单元可以具有所需的阈值电压。
图5是示出根据本发明的实施例的图3的存储块BLK1到BLKz的任意一个存储块BLKb的电路图。
参照图5,存储块BLKb可以包括多个单元串CS11'至CS1m'和CS21'至CS2m'。单元串CS11'至CS1m'和CS21'至CS2m'中的每一个在+Z方向上延伸。单元串CS11'至CS1m'和CS21'至CS2m'中的每一个可以包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn、以及堆叠在设置在存储块BLK1'的下部的衬底(未示出)上的至少一个漏极选择晶体管DST。
每个单元串的源极选择晶体管SST联接在公共源极线CSL和存储器单元MC1至MCn之间。布置在同一行中的单元串的源极选择晶体管联接到相同的源极选择线。布置在第一行中的单元串CS11至CS1m的源极选择晶体管可以联接到第一源极选择线SSL1。布置在第二行中的单元串CS21至CS2m的源极选择晶体管可以联接到第二源极选择线SSL2。在实施例中,单元串CS11至CS1m和CS21至CS2m的源极选择晶体管可以共同联接到单个源极选择线。
每个单元串中的第一至第n存储器单元MC1至MCn串联联接在源极选择晶体管SST和漏极选择晶体管DST之间。第一至第n存储器单元MC1至MCn的栅极分别联接至第一至第n字线WL1至WLn。
每个单元串的漏极选择晶体管DST联接在相应的位线和存储器单元MC1至MCn之间。沿行方向布置的单元串的漏极选择晶体管可以联接到沿行方向延伸的漏极选择线。第一行中的单元串CS11'至CS1m'的漏极选择晶体管联接至第一漏极选择线DSL1。第二行中的单元串CS21'至CS2m'的漏极选择晶体管可以联接到第二漏极选择线DSL2。
因此,除了从每个单元串中排除管晶体管PT之外,图5的存储块BLKb可以具有与图4的存储块BLKa类似或等效的电路。
在实施例中,可以设置偶数位线和奇数位线来代替第一至第m位线BL1至BLm。沿行方向布置的单元串CS11'至CS1m'或CS21'至CS2m'中的第偶数个单元串可以联接到相应的偶数位线,并且沿行方向布置的单元串CS11'至CS1m'或CS21'至CS2m'中的第奇数个单元串可以联接到相应的奇数位线。
在实施例中,第一存储器单元MC1至第n存储器单元MCn中的至少一个可以用作虚设存储器单元。例如,可以提供一个或多个虚设存储器单元以减小源极选择晶体管SST与存储器单元MC1至MCn之间的电场。可选地,可以设置一个或多个虚设存储器单元以减小漏极选择晶体管DST与存储器单元MC1至MCn之间的电场。随着虚设存储器单元的数量增加,可以增加存储块BLKb的操作可靠性,同时可以增加存储块BLKb的大小。随着虚设存储器单元的数量减少,存储块BLKb的尺寸可以减小,但是存储块BLKb的操作可靠性可以降低。
为了有效地控制虚设存储器单元,每个虚设存储器单元可以具有所需的阈值电压。在执行对存储块BLKb的擦除操作之前或之后,可以对所有或一些虚设存储器单元执行编程操作。在已经执行编程操作之后执行擦除操作的情况下,通过控制待被施加到联接到各个虚设存储且单元的虚设字线的电压,虚设存储器单元可以具有所需的阈值电压。
图6是示出根据本公开的实施例的存储器控制器,例如存储器控制器200的配置和操作的示图。
参照图6,存储器装置100可以包括逻辑到物理映射信息存储装置111。
逻辑到物理映射信息存储装置111可以存储逻辑到物理映射信息。逻辑到物理映射信息可以指示从主机300提供的数据的逻辑地址与其中存储数据的存储器装置100的物理地址之间的映射关系。
在实施例中,存储器控制器200可以包括映射数据管理器210和映射数据存储装置220。映射数据管理器210可以包括映射数据处理器211和映射数据优先级控制器212。
在实施例中,映射数据处理器211可以从存储器装置100请求多个逻辑到物理地址段。映射数据处理器211可以在映射数据存储装置220中存储从存储器装置100获得的多个逻辑到物理地址段。
响应于从主机300提供的映射数据请求,映射数据处理器211可以将存储在映射数据存储装置220中的多个逻辑到物理地址段中的至少一个提供给主机300。
如果响应于从主机300接收的读取请求而待读取的数据的逻辑地址不包括在多个逻辑到物理地址段中,则映射数据处理器211可以从存储器装置100接收并存储新逻辑到物理地址段。新逻辑到物理地址段可以是包括在逻辑到物理映射信息中包括的逻辑到物理地址段之中的待读取的数据的逻辑地址的逻辑到物理地址段。
映射数据处理器211可以从映射数据存储装置220中移除由映射数据优先级控制器212选择的至少一个逻辑到物理地址段。映射数据优先级控制器212可以在存储在映射数据存储装置220中的多个逻辑到物理地址段中选择至少一个待移除的逻辑到物理地址段。
在实施例中,映射数据优先级控制器212可以选择待提供给主机300的至少一个逻辑到物理地址段。
在实施例中,映射数据优先级控制器212可以基于响应于主机300提供的读取请求访问多个逻辑到物理地址段中的每一个的次数(访问计数),来选择待提供给主机300的至少一个逻辑到物理地址段。
详细地,在第一写入操作和第二写入操作之间的时间段期间,对至少一个L2P地址段的访问被计数。这里,第一写入操作和第二写入操作可以是连续的写入操作。对至少一个L2P地址段的访问计数大于预设计数。
换言之,在已经对物理地址执行了数据写入操作之后,对物理地址执行数据读取操作直到执行随后的数据写入操作的计数可以是预定计数或更多。
在实施例中,映射数据优先级控制器212可以基于待响应于从主机300提供的读取请求使用多个逻辑到物理地址段中的每一个来访问的数据的大小,来选择待提供给主机300的至少一个逻辑到物理地址段。
详细地,通过读取存储在所选择的至少一个逻辑到物理地址段中包括的物理地址中的数据的读取操作而读取的数据的整体大小可以大于预定大小。当数据的整体大小大于预定大小时,确定至少一个逻辑到物理地址段是热数据。可以在将数据存储在物理地址中的第一和第二写入操作之间的时间段期间访问数据。具体地,可以在该时间段期间执行读取存储在物理地址中的数据的读取操作。这里,第一写入操作和第二写入操作可以是连续的写入操作。
换言之,在已经对物理地址执行了数据写入操作之后,通过对物理地址执行的数据读取操作直到执行后续的数据写入操作而读取的数据的整体大小可以是固定大小。
例如,可以执行将数据存储在至少一个逻辑到物理地址段中包括的物理地址中的第一和第二写入操作。在已经执行了第一写入操作之后,可以在执行第一写入操作随后的第二写入操作之前执行读取存储在物理地址中的数据的第一到第三读取操作。在第一读取操作期间读取的数据大小可以是4kb。在第二读取操作期间读取的数据的大小可以是8kb。在第三读取操作期间读取的数据的大小可以是8kb。因此,在第一写入操作和第二写入操作之间的时间段内执行的读取操作期间读取的数据的整体大小可以是20kb,这是在各个读取操作期间读取的数据的大小之和。
映射数据优先级控制器212可以基于响应于从主机300提供的请求对多个逻辑地址到物理地址段中的每一个的访问频率,来确定多个逻辑地址到物理地址段之间的优先级。
详细地,映射数据优先级控制器212可以基于待响应于从主机300提供的请求而访问的多个逻辑到物理地址段中的每一个的最近最少使用(LRU)频率,来设置多个逻辑到物理地址段之间的优先级。LRU频率可以是指示响应于从主机300提供的请求访问每个逻辑到物理地址段的频率的相对索引。
在实施例中,映射数据优先级控制器212可以设置逻辑到物理地址段的优先级,使得逻辑到物理地址段的LRU频率值越小,则逻辑到物理地址段的优先级越高。映射数据优先级控制器212可以设置逻辑到物理地址段的优先级,使得逻辑到物理地址段的LRU频率值越大,则逻辑到物理地址段的优先级越低。
映射数据优先级控制器212可以将存储在映射数据存储装置220中的至少一个逻辑到物理地址段的优先级设置为特定优先级。至少一个逻辑到物理地址段可以是从映射数据处理器211提供给主机300的逻辑到物理地址段。可以考虑将至少一个逻辑到物理地址段从映射数据存储装置220中移除所花费的时间来确定特定优先级。
映射数据优先级控制器212可以将新逻辑到物理地址段的优先级设置为特定优先级。特定优先级可以是最高优先级。当响应于从主机300接收的读取请求而待读取的数据的逻辑地址不包括在多个逻辑到物理地址段中时,可以响应于映射数据处理器211的请求而从存储器装置100提供新逻辑到物理地址段。在实施例中,特定优先级可以是最高有效优先级。
当从主机300接收到读取请求时,映射数据优先级控制器212可以更新多个逻辑到物理地址段的优先级。
在实施例中,响应于从主机300接收的读取请求,可以访问多个逻辑到物理地址段中的任意一个。如果访问逻辑到物理地址段,则可以改变多个逻辑到物理地址段的各个LRU频率。可以根据对每个逻辑到物理地址段的访问频率来确定每个逻辑到物理地址段的LRU频率。因此,映射数据优先级控制器212可以基于多个逻辑到物理地址段的各自改变的LRU频率来更新多个逻辑到物理地址段的优先级。
在实施例中,映射数据优先级控制器212可以更新包括新逻辑到物理地址段的多个逻辑到物理地址段的优先级。当响应于从主机300接收的读取请求而待读取的数据的逻辑地址不包括在多个逻辑到物理地址段中时,可以响应于映射数据处理器211的请求而从存储器装置100提供新逻辑到物理地址段。
映射数据优先级控制器212可以基于多个逻辑到物理地址段的优先级,在存储在映射数据存储装置220中的多个逻辑到物理地址段中选择至少一个待移除的逻辑地址到物理地址段。
在实施例中,映射数据优先级控制器212可以按照从多个逻辑到物理地址段中的最低优先级的顺序选择至少一个逻辑到物理地址段,作为待移除的逻辑到物理地址段。
在实施例中,映射数据优先级控制器212可以在多个逻辑到物理地址段中选择具有低于阈值优先级的优先级的至少一个逻辑到物理地址段作为待移除的逻辑到物理地址段。
在实施例中,映射数据优先级控制器212可以基于逻辑到物理地址段是否是主机300中提供的逻辑到物理地址段,来在多个逻辑到物理地址段中选择待移除的逻辑到物理地址段。
例如,映射数据优先级控制器212可以在多个逻辑到物理地址段中选择具有低于阈值优先级的优先级并且被提供给主机300的至少一个逻辑到物理地址段。映射数据优先级控制器212可以按照在所选择的逻辑到物理地址段中从最低优先级的顺序选择逻辑到物理地址段,作为待被移除的逻辑到物理地址段。
在实施例中,主机300可以包括主机存储器310。
主机300可以向映射数据处理器211提供映射数据请求,以请求存储在存储器控制器200中的一些映射数据。主机300可以将响应于映射数据请求而从映射数据处理器211获得的至少一个逻辑到物理地址段存储在主机存储器310中。
主机300可以基于存储在主机存储器310中的至少一个逻辑到物理地址段,向存储器控制器200提供读取存储在存储器装置100中的数据的请求。详细地,主机300可以将与待读取的数据的逻辑地址映射的物理地址以及读取请求一起提供给存储器控制器200。与待读取的数据的逻辑地址一起映射的物理地址可以是包括在主机存储器310中存储的至少一个逻辑到物理地址段中的物理地址。
图7是示出根据实施例的图6的映射数据管理器的操作的示图。
参照图7,逻辑到物理映射信息存储装置111可以包括多个逻辑到物理地址段,该多个逻辑到物理地址段包括第五逻辑到物理地址段S5。
映射数据存储装置220可以包括第一至第四逻辑到物理地址段S1至S4。主机存储器310可以包括第一和第二逻辑到物理地址段S1和S2。然而,存储在逻辑到物理映射信息存储装置111、映射数据存储装置220和主机存储器310中的逻辑到物理地址段的数量不限于该布置。
在实施例中,图6描述的映射数据管理器可以响应于主机的请求而执行将存储装置中存储的逻辑到物理地址段提供给主机的同步操作。详细地,映射数据管理器可以响应于主机的请求将存储在映射数据存储装置220中的逻辑到物理地址段提供给主机存储器310。图7中的阴影的逻辑到物理地址段可以是提供给主机的逻辑到物理地址段。
例如,映射数据管理器可以响应于主机的请求,将存储在映射数据存储装置220中的第一至第四逻辑到物理地址段S1至S4中的第一和第二逻辑到物理地址段S1和S2提供给主机存储器310。
在实施例中,映射数据管理器可以接收待从主机读取的数据的逻辑地址以及主机的读取请求。映射数据管理器可以确定所接收的待读取数据的逻辑地址是否包括在映射数据存储装置220中。
如果待读取的数据的逻辑地址未包括在存储在映射数据存储装置220中的多个逻辑到物理地址段中,则映射数据管理器可以从参照图6描述的存储器装置请求新逻辑到物理地址段。新逻辑到物理地址段可以是包括在逻辑到物理映射信息存储装置111中的逻辑到物理地址映射信息中的待读取的数据的逻辑地址的逻辑到物理地址段。映射数据管理器可以将从存储器装置获得的新逻辑到物理地址段存储在映射数据存储装置220中。
例如,响应于主机的读取请求而由存储装置读取的数据的逻辑地址可以是包括在第五逻辑到物理地址段S5中的逻辑地址。待读取的数据的逻辑地址可以不包括在映射数据存储装置220中存储的第一至第四逻辑地址至物理地址段S1至S4中。因此,映射数据管理器可以从存储器装置请求第五逻辑到物理地址段S5,该第五逻辑到物理地址段S5是包括待读取的数据的逻辑地址的新逻辑到物理地址段。映射数据管理器可以从存储器装置获得存储在逻辑到物理映射信息存储器111中的第五逻辑到物理地址段S5。映射数据管理器可以将所获得的第五逻辑到物理地址段S5存储在映射数据存储装置220中。
图8是示出根据实施例的图6的映射数据管理器的操作的示图。
参照图8,映射数据存储装置220可以存储参照图7描述的第一至第五逻辑到物理地址段S1至S5。第一和第二逻辑到物理地址段S1和S2可以是提供给主机的逻辑到物理地址段。第五逻辑到物理地址段可以是新逻辑到物理地址段。映射数据存储装置220中存储的逻辑到物理地址段的数量不限于该实施例。
映射数据管理器可以基于响应于从主机提供的请求对多个逻辑地址到物理地址段中的每一个的访问频率,来确定多个逻辑地址到物理地址段之间的优先级。
详细地,映射数据管理器可以基于待响应于从主机提供的请求而访问的多个逻辑到物理地址段中的每一个的最近最少使用(LRU)频率,来设置多个逻辑到物理地址段之间的优先级。LRU频率可以是指示响应于从主机提供的请求访问每个逻辑到物理地址段的频率的相对索引。
例如,随着响应于主机的请求访问逻辑到物理地址段的频率增大,逻辑到物理地址段的LRU频率值可以减小。映射数据管理器可以设置逻辑到物理地址段的优先级,使得逻辑到物理地址段的LRU频率值越小,则逻辑到物理地址段的优先级越高。逻辑到物理地址段可以从最高优先级到最低优先级地(在图8中为从左到右)排列在映射数据存储装置220中。
随着响应于主机的请求访问逻辑到物理地址段的频率降低,逻辑到物理地址段的LRU频率值可以增大。映射数据管理器可以设置逻辑到物理地址段的优先级,使得逻辑到物理地址段的LRU频率值越大,则逻辑到物理地址段的优先级越低。如图8所示,逻辑到物理地址段的优先级越低,它在映射数据存储装置220中的位置就越靠右。换言之,随着逻辑到物理地址段的位置从左向右移动,逻辑到物理地址段的优先级可以降低。
在实施例中,响应于从主机接收的读取请求,可以访问多个逻辑到物理地址段中的任意一个。如果访问逻辑到物理地址段,则可以改变多个逻辑到物理地址段的各个LRU频率。因此,映射数据管理器可以基于多个逻辑到物理地址段的各自改变的LRU频率来更新多个逻辑到物理地址段的优先级。
在实施例中,如果新逻辑到物理地址段存储在映射数据存储装置220中,则映射数据管理器可以更新包括新逻辑到物理地址段的多个逻辑到物理地址段的优先级。映射数据管理器可以将新逻辑到物理地址段的优先级设置为可以被预定为最高优先级的优先级。
在实施例中,映射数据管理器可以设置存储在映射数据存储装置220中的多个逻辑到物理地址段中的提供给主机的至少一个逻辑到物理地址段的优先级。可以考虑将至少一个逻辑到物理地址段从映射数据存储装置220中移除所花费的时间来确定或设置优先级。可以设置优先级以防止在将至少一个逻辑到物理地址段提供给主机300之后立即将至少一个逻辑到物理地址段从映射数据存储装置220中逐出。可以将优先级设置为预设值,该预设值是基于从映射数据存储装置220中逐出至少一个L2P地址段所估计的时间确定的。
例如,映射数据管理器可以将作为新逻辑到物理地址段的第五逻辑到物理地址段S5的优先级设置为作为最高优先级的第一优先级。映射数据管理器可以将作为提供给主机的逻辑到物理地址段的第一逻辑到物理地址段S1的优先级设置为被预定的第四优先级。映射数据管理器可以将作为提供给主机的逻辑到物理地址段的第二逻辑到物理地址段S2的优先级设置为可以被预定的第二优先级。
可以基于相应的LRU频率来设置第三和第四逻辑到物理地址段S3和S4的优先级。可以基于响应于主机的请求而访问每个逻辑到物理地址段的频率来确定LRU频率。在图8中,第三逻辑到物理地址段S3的优先级可以是第三优先级。第四逻辑到物理地址段S4的优先级可以是作为最低优先级的第五优先级。
映射数据管理器可以从存储在映射数据存储装置220中的多个逻辑到物理地址段中选择至少一个优先级低于阈值优先级的逻辑到物理地址段。阈值优先级可以根据映射数据管理策略而改变。
映射数据管理器可以在所选择的逻辑到物理地址段中选择优先级相对较低的逻辑到物理地址段作为待移除的逻辑到物理地址段。映射数据管理器可以基于是否是在所选择的逻辑到物理地址段中被提供给主机的逻辑到物理地址段,来确定相应的逻辑到物理地址段是否是待移除的逻辑到物理地址段。
在图8中,阈值优先级可以是第三优先级。映射数据管理器可以选择每一个的优先级都低于作为阈值优先级的第三优先级的第一逻辑到物理地址段S1和第四逻辑到物理地址段S4。
映射数据管理器可以确定在所选择的第一和第四逻辑到物理地址段S1和S4之间具有较低优先级的第四逻辑到物理地址段S4是否是首先被移除的逻辑到物理地址段。由于尽管第四逻辑到物理地址段S4的优先级低于第一逻辑到物理地址段S1的优先级,但是第四逻辑到物理地址段S4不是已经提供给主机的逻辑到物理地址段,所以映射数据管理器可以确定第四逻辑到物理地址段S4不是待移除的逻辑到物理地址段。
随后,映射数据管理器可以确定第一逻辑到物理地址段S1是否是待移除的逻辑到物理地址段。尽管第一逻辑到物理地址段S1的优先级高于第四逻辑到物理地址段S4的优先级,但是由于第一逻辑到物理地址段S1是已经提供给主机的逻辑到物理地址段,所以可以将第一逻辑到物理地址段S1确定为待移除的逻辑到物理地址段。
映射数据管理器可以从映射数据存储装置220中移除已经被确定为待移除的逻辑到物理地址段的第一逻辑到物理地址段S1。
在实施例中,与未被提供给主机的逻辑到物理地址段的地址相比,从存储器控制器中移除在同步操作期间已提供给主机的任意逻辑到物理地址段的损失相对较低。原因在于,从存储器控制器中移除了已提供给主机的逻辑到物理地址段,可以再次从主机提供该逻辑到物理地址段,但是如果从存储器控制器中移除了尚未提供给主机的逻辑到物理地址段,则必须从存储器装置中获取该逻辑到物理地址段。因此,映射数据管理器可以基于是否已经向主机提供了相应的逻辑到物理地址段,来确定是否从映射数据存储装置220中移除该逻辑到物理地址段。
在实施例中,术语“最近最常使用(most recently used,MRU)频率”可以与LRU频率相反。随着LRU频率值增大,MRU频率值可以减小。随着LRU频率值减小,MRU频率值可以增大。
图9是示出根据实施例的存储器控制器的操作的流程图。
参照图9,在步骤S901中,存储器控制器可以存储从存储器装置接收的多个逻辑到物理地址段。
在步骤S903中,存储器控制器可以从主机接收映射数据请求。
在步骤S905中,存储器控制器可以响应于从主机接收到的映射数据请求,将多个存储的逻辑到物理地址段中的至少一个逻辑到物理地址段提供给主机。
在步骤S907中,存储器控制器可以基于响应于主机的请求而访问的多个逻辑到物理地址段的各个LRU频率来设置多个逻辑到物理地址段的优先级。
在步骤S909中,存储器控制器可以移除基于多个逻辑到物理地址段的优先级而选择的至少一个逻辑到物理地址段。
图10是示出图9的存储器控制器的操作的流程图。
参照图10,在步骤1001中,存储器控制器可以从主机接收读取请求。
在步骤S1003中,存储器控制器可以确定响应于读取请求而待读取的数据的逻辑地址是否包括在多个逻辑到物理地址段中。作为确定的结果,如果待读取的数据的逻辑地址包括在多个逻辑到物理地址段中,则进程进行到步骤S1009。如果不是,则进程进行到步骤S1005。
在步骤S1005中,存储器控制器可以从存储器装置接收包括待读取的数据的逻辑地址的新逻辑到物理地址段,并且存储新逻辑到物理地址段。
在步骤S1007中,存储器控制器可以将新逻辑到物理地址段的优先级设置为可被预定为最高优先级的优先级。
在步骤S1009中,存储器控制器可以更新多个逻辑到物理地址段的优先级。在实施例中,存储器控制器可以访问多个逻辑到物理地址段中包括待读取的数据的逻辑地址的任意一个逻辑到物理地址段。如果访问逻辑到物理地址段,则可以改变多个逻辑到物理地址段的访问频率。存储器控制器可以基于多个逻辑到物理地址段的各自改变的访问频率来更新多个逻辑到物理地址段的优先级。
在实施例中,存储器控制器可以更新包括新逻辑到物理地址段的优先级的多个逻辑到物理地址段的优先级。
图11是详细示出图9的存储器控制器的操作的流程图。
参照图11,在步骤S1101中,存储器控制器可以在多个逻辑到物理地址段中选择每个的优先级低于阈值优先级的一个或多个逻辑到物理地址段。所选择的逻辑到物理地址段可以从存储器控制器中移除。
在步骤S1103中,存储器控制器可以将优先级设置为最低优先级。最低优先级可以是存储在存储器控制器中的多个逻辑到物理地址段之间的优先级中的最低优先级。
在步骤S1105中,存储器控制器可以确定在所选择的逻辑到物理地址段中具有最低优先级的逻辑到物理地址段是否是已经提供给主机的逻辑到物理地址段。作为确定的结果,如果具有这种优先级的逻辑到物理地址段是已经提供给主机的逻辑到物理地址段,则进程进行到步骤S1109。如果不是,则进程进行到步骤S1107。
在步骤S1107中,存储器控制器可以将优先级增加1。存储器控制器可增加的优先级的最大值可以低于阈值优先级。
在步骤S1109中,存储器控制器可以在多个逻辑到物理地址段中移除具有优先级的逻辑到物理地址段。
图11A是示出根据本发明的实施例的存储器控制器200的操作的流程图。
计算系统可以包括主机300、存储器控制器200和存储器控制器100。存储器控制器200可以包括映射高速缓存。
在步骤S1201中,映射高速缓存可以从被配置为存储多条映射数据的存储器装置100中高速缓存一条或多条映射数据。在实施例中,映射数据可以与上述逻辑到物理地址段相对应,但是不限于此。
在实施例中,存储器控制器200可以在映射高速缓存未命中时控制映射高速缓存以高速缓存一条或多条映射数据(参照图9的步骤S901、图10的步骤S1003和S1005以及图7的第五逻辑到物理地址段S5)。当映射高速缓存当前未在其中高速缓存与主机300提供的访问请求相对应的映射数据时,在映射高速缓存中可以发生高速缓存未命中。
存储器控制器200可以在映射高速缓存的高速缓存命中时不控制映射高速缓存来高速缓存一条或多条映射数据(参见图10的步骤S1003和S1009)。当映射高速缓存当前正在其中高速缓存与从主机300提供的访问请求相对应的映射数据时,在映射高速缓存中可以发生高速缓存命中。存储器控制器200可以响应于访问请求来控制存储器装置100根据高速缓存命中映射数据来执行操作。在高速缓存命中时,由于映射高速缓存内的高速缓存命中映射数据,高速缓存的数据的LRU值(例如,LRU频率)可能在映射高速缓存内改变。
如上所述,如参照图9的步骤S903和步骤S905和图11A的步骤S1203所描述的,由主机300向存储器控制器200提供的物理地址和访问请求可能已经预先通过同步操作由存储器控制器200提供给主机300。如参照图9的步骤S901、图10的步骤S1003和S1005、图7的第一和第二逻辑到物理地址段S1和S2以及图11A的步骤S1201所描述的,也可以将对应于该物理地址的映射数据高速缓存在映射高速缓存中。
例如,当根据从主机300提供的物理地址成功地服务访问请求时,可以将与成功的物理地址相对应并高速缓存在映射高速缓存中的映射数据视为高速缓存命中。
在实施例中,映射高速缓存可以对应于映射数据存储装置220,但不限于此。
在步骤S1203中,存储器控制器200可以向主机300提供在映射高速缓存中高速缓存的多条数据中的一条或多条,以使所提供的一条或多条高速缓存的数据与主机300同步。在实施例中,步骤S1203可以对应于图9的步骤S903和S905,但不限于此。如上所述,主机300可以向存储器控制器200提供访问请求以及所同步的映射数据的条目或条。当根据所提供的同步映射数据成功地服务访问请求时,由于同步也被视为高速缓存命中,所以成功映射数据也被高速缓存在映射高速缓存中。在高速缓存命中时,由于映射高速缓存中的高速缓存命中映射数据,高速缓存的数据的LRU值(例如,LRU频率)可以在映射高速缓存内改变。
在步骤S1205中,存储器控制器200可以从映射高速缓存中逐出在步骤S1203同步的最近最少高速缓存命中数据(least recently cache-hit piece(s))。高速缓存命中数据可以是与高速缓存命中映射数据相对应的映射数据。
可以基于LRU方案来选择最近最少高速缓存命中数据。在实施例中,可以如参照图9的步骤S907和S909、图10的S1007和S1009以及图11的S1101至S1109所描述的选择和逐出最近最少高速缓存命中数据,然而选择和逐出不限于此。
根据步骤S1205,即使在映射高速缓存内的高速缓存数据(参照图8的第一和第四段S1和S4)具有最大LRU值(例如,LRU频率)时,在映射高速缓存和主机300之间不同步的高速缓存数据也可以不从映射高速缓存中逐出。
图12是示出图1的存储器控制器的示例的示图。
参照图12,存储器控制器1000联接到主机和存储器装置。响应于来自主机的请求,存储器控制器1000可以访问存储器装置。例如,存储器控制器1000可以控制存储器装置的写入操作、读取操作、擦除操作和后台操作。存储器控制器1000可以提供存储器装置和主机之间的接口。存储器控制器1000可以驱动用于控制存储器装置的固件。
存储器控制器1000可以包括处理器1010、存储器缓冲器1020、错误校正码(ECC)电路1030、主机接口1040、缓冲器控制电路1050、存储器接口1060和总线1070。
总线1070可以在存储器控制器1000的组件之间提供通道。
处理器1010可以控制存储器控制器1000的全部操作,并且执行逻辑操作。处理器1010可以通过主机接口1040与外部主机通信,并且通过存储器接口1060与存储器装置通信。另外,处理器1010可以通过缓冲器控制电路1050与存储器缓冲器1020通信。处理器1010可以通过使用存储器缓冲器1020作为操作存储器、高速缓存存储器或缓冲存储器来控制存储装置的操作。
处理器1010可以执行闪存转换层(FTL)的功能。处理器1010可以通过FTL将由主机提供的逻辑块地址(LBA)转换为物理块地址(PBA)。FTL可以接收LBA并且使用映射表将LBA转换成PBA。可以根据映射单位以各种方式修改使用FTL的地址映射方法。代表性地址映射方法包括页面映射方法、块映射方法和混合映射方法。
处理器1010可以对从主机接收的数据进行随机化。例如,处理器1010可以使用随机化种子来对从主机接收的数据进行随机化。可以将随机化数据作为待被存储的数据提供给存储器装置,并且可以将随机化数据编程到存储器单元阵列。
在读取操作期间,处理器1010可以对从存储器装置100接收的数据进行去随机化。例如,处理器1010可以使用去随机化种子来对从存储器装置接收的数据进行去随机化。可以将去随机化数据输出到主机。
在实施例中,处理器1010可以驱动软件或固件以执行随机化操作或去随机化操作。
存储器缓冲器1020可以用作处理器1010的操作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可以存储待由处理器1010执行的代码和命令。存储器缓冲器1020可以存储待由处理器1010处理的数据。存储器缓冲器1020可以包括静态RAM(SRAM)或动态RAM(DRAM)。
ECC电路1030可以执行错误校正。ECC电路1030可以基于待被通过存储器接口1060写入存储器装置100的数据来执行ECC编码操作。ECC编码数据可以通过存储器接口1060传送到存储器装置。ECC电路1030可以对通过存储器接口1060从存储器装置接收的数据执行ECC解码操作。例如,ECC电路1030可以包括在存储器接口1060中作为存储器接口1060的组件。
主机接口1040可以在处理器1010的控制下与主机通信。主机接口1040可以使用诸如通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和低负载DIMM(LRDIMM)通信方法的各种通信方法中的至少一种来执行通信。
缓冲器控制电路1050可以在处理器1010的控制下控制存储器缓冲器1020。
存储器接口1060可以在处理器1010的控制下与存储器装置100通信。存储器接口1060可通过通道与存储器装置进行命令、地址和数据通信。
在实施例中,存储器控制器1000可以既不包括存储器缓冲器1020也不包括缓冲器控制电路1050。这些组件可以是独立的,或者它们的功能可以分布在存储器控制器1000的其它组件中。
例如,处理器1010可以使用代码来控制存储器控制器1000的操作。处理器1010可以从存储器控制器1000中设置的非易失性存储器装置(例如,只读存储器)中加载代码。可选地,处理器1010可以通过存储器接口1060从存储器装置加载代码。
例如,存储器控制器1000的总线1070可以分为控制总线和数据总线。数据总线可以在存储器控制器1000中传送数据。控制总线可以在存储器控制器1000中传送诸如命令和地址的控制信息。数据总线和控制总线可以彼此独立,以便不会相互干扰或相互影响。数据总线可以联接到主机接口1040、缓冲器控制电路1050、ECC电路1030和存储器接口1060。控制总线可以联接到主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。
在实施例中,处理器1010可以执行参照图1描述的映射数据管理器的操作。存储器缓冲器1020可以包括参照图1描述的映射数据存储装置。
图13是示出根据本公开的实施例的应用存储装置的存储卡系统2000的框图。
参照图13,存储卡系统2000可以包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100联接到存储器装置2200。存储器控制器2100可以访问存储器装置2200。例如,存储器控制器2100可以控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100可以提供存储器装置2100和主机之间的接口。存储器控制器2100可以驱动用于控制存储器装置2200的固件。存储器控制器2100可以以与参照图1描述的存储器控制器200相同的方式实施。
在实施例中,存储器控制器2100可以包括诸如随机存取存储器(RAM)、处理器、主机接口、存储器接口和ECC电路的组件。
存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以基于特定通信协议与外部装置(例如,主机)通信。在实施例中,存储器控制器2100可以通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机小型接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和高速非易失性存储器(NVMe)协议。在实施例中,连接器2300可以由上述各种通信协议中的至少一种来定义。
在实施例中,存储器装置2200可以被实施为诸如以下的各种非易失性存储器装置中的任意一种:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)、自旋力矩磁性RAM(STT-MRAM)。
在实施例中,存储器控制器2100和存储器装置2200可以集成到单个半导体装置中以形成如下的存储卡:个人计算机存储卡国际协会(PCMCIA)、标准闪存卡(CF)、智能媒体卡(SM或SMC)、记忆棒多媒体卡(MMC、RS-MMC或MMCmicro)、SD卡(SD、迷你SD、微型SD或SDHC)或通用闪存(UFS)。
图14是示出根据本公开的实施例的应用存储装置的固态驱动器(SSD)系统的框图。
参照图14,SSD系统3000可以包括主机3100和SSD 3200。SSD3200可以通过信号连接器3001与主机3100交换信号SIG,并且可以通过电源连接器3002接收电力PWR。SSD 3200可以包括SSD控制器3210、多个闪速存储器3221至322n、辅助电源3230和缓冲存储器3240。
在实施例中,SSD控制器3210可以执行上面参照图1描述的存储器控制器200的功能。
SSD控制器3210可以响应于从主机3100接收的信号SIG来控制多个闪速存储器3221至322n。在实施例中,信号SIG可以是基于主机3100和SSD 3200之间的接口的信号。例如,信号SIG可以由诸如通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机小型接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和高速非易失性存储器(NVMe)接口的各种接口中的至少一种定义。
辅助电源3230可以通过电源连接器3002联接到主机3100。辅助电源3230可以由主机3100供应电力PWR,并且可以由电力PWR充电。当来自主机3100的电力供应没有被平稳地供应时,辅助电源3230可以向SSD 3200供应电力。在实施例中,辅助电源3230可以在SSD3200的内部或外部。例如,辅助电源3230可以设置在主板中,并且可以向SSD 3200提供辅助电力。
缓冲存储器3240用作SSD 3200的缓冲存储器。例如,缓冲存储器3240可以临时存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者可以临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器或诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器中的任意一种。
图15是示出根据本公开的实施例的应用存储装置的用户系统4000的框图。
参照图15,用户系统4000可以包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400、用户接口4500。
应用处理器4100可以运行包括在用户系统4000中的组件、操作系统(OS)或用户程序。在实施例中,应用处理器4100可以包括用于控制包括在用户系统4000中的部件的控制器、接口、图形引擎等。应用处理器4100可以被设置为片上系统(SoC)。
存储器模块4200可用作用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3SDRAM、LPDDR SDARM、LPDDR2 SDRAM和LPDDR3 SDRAM的易失性RAM,或者诸如PRAM、ReRAM、MRAM和/或FRAM的非易失性RAM。在实施例中,应用处理器4100和存储器模块4200可以基于堆叠封装(POP)被封装,并且然后可以被设置为单个半导体封装。
网络模块4300可以与外部装置通信。例如,网络模块4300可以支持无线通信,例如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、WiMAX、WLAN、UWB、蓝牙或Wi-Fi通信。在实施例中,网络模块4300可以包括在应用处理器4100中。
存储模块4400可以在其中存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。或者,存储模块4400可以将存储在存储模块4400中的数据传送到应用处理器4100。在实施例中,存储模块4400可以被实施为非易失性半导体存储器装置,诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪速存储器、NOR闪速存储器或具有三维(3D)结构的NAND闪速存储器。在实施例中,存储模块4400可以被设置为诸如存储卡的可移动存储介质(即,可移动驱动器),或者用户系统4000的外部驱动器。
在实施例中,存储模块4400可以包括多个非易失性存储器装置,并且多个非易失性存储器装置中的每一个可以以与上面参照图1描述的存储器装置100相同的方式操作。存储模块4400可以以与上面参照图1描述的存储装置50相同的方式操作。
用户接口4500可以包括用于将数据或指令输入到应用处理器4100或用于将数据输出到外部装置的接口。在实施例中,用户接口4500可以包括用户输入界面,诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电装置。用户接口4500还可以包括用户输出接口,诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器。
Claims (17)
1.一种存储器控制器,控制用于存储逻辑到物理映射信息,即L2P映射信息的存储器装置,所述存储器控制器包括:
映射数据存储装置,存储包括在所述L2P映射信息中的多个L2P地址段;以及
映射数据管理器:
响应于主机的映射数据请求,将所述多个L2P地址段中的至少一个L2P地址段提供给所述主机;以及
从所述映射数据存储装置中移除L2P地址段,
其中基于最近最少使用频率即LRU频率和是否将所述L2P地址段提供给所述主机,在所述多个L2P地址段之中选择所述L2P地址段,
其中所述映射数据管理器包括:
映射数据优先级控制器,基于各个LRU频率来设置所述多个L2P地址段之间的优先级;以及
映射数据处理器:
响应于所述主机的所述映射数据请求,将所述至少一个L2P地址段提供给所述主机;以及
基于所述优先级从所述映射数据存储装置中移除所选择的L2P地址段。
2.根据权利要求1所述的存储器控制器,其中当响应于所述主机的读取请求而访问所述多个L2P地址段中的任意一个L2P地址段时,所述映射数据优先级控制器更新所述优先级。
3.根据权利要求1所述的存储器控制器,其中所述映射数据优先级控制器将提供给所述主机的所述至少一个L2P地址段的优先级设置为预设值,
其中所述预设值是基于从所述映射数据存储装置中逐出所述至少一个L2P地址段的估计时间来确定的。
4.根据权利要求1所述的存储器控制器,其中当响应于所述主机的读取请求而待读取的数据的逻辑地址未包括在所述多个L2P地址段中时,所述映射数据处理器从所述存储器装置接收所述L2P映射信息中的包括待读取的所述数据的所述逻辑地址的新L2P地址段,并将所述新L2P地址段存储在所述映射数据存储装置中。
5.根据权利要求4所述的存储器控制器,其中所述映射数据优先级控制器将所述新L2P地址段的优先级设置为最高值,并且更新包括所述新L2P地址段的所述多个L2P地址段之间的优先级。
6.根据权利要求1所述的存储器控制器,其中在提供给所述主机的所述至少一个L2P地址段之中,所选择的L2P地址段是优先级低于阈值优先级的L2P地址段。
7.根据权利要求1所述的存储器控制器,其中在从所述映射数据存储装置中移除所选择的L2P地址段之前,将所选择的L2P地址段提供给所述主机。
8.根据权利要求1所述的存储器控制器,其中所述映射数据优先级控制器基于对所述多个L2P地址段中的每一个的访问计数或使用所述多个L2P地址段中的每一个而访问的数据的大小,选择待提供给所述主机的所述至少一个L2P地址段。
9.根据权利要求8所述的存储器控制器,
其中在第一写入操作和第二写入操作之间的时间段期间,对所述至少一个L2P地址段的访问被计数,
其中对所述至少一个L2P地址段的访问计数大于预设计数。
10.一种操作存储器控制器的方法,所述存储器控制器包括存储映射数据的映射高速缓存,所述方法包括:
将从存储器装置接收的多个逻辑到物理地址段,即L2P地址段存储在所述映射高速缓存;
响应于主机的映射数据请求,将所述多个L2P地址段中的至少一个L2P地址段提供给所述主机;
基于最近最少使用频率即LRU频率和是否将L2P地址段提供给所述主机,在所述多个L2P地址段中选择L2P地址段;以及
从所述映射高速缓存中移除所选择的L2P地址段,
其中选择所述L2P地址段包括:
基于各个LRU频率设置所述多个L2P地址段之间的优先级;以及
当访问所述多个L2P地址段中的任意一个L2P地址段时,更新所述优先级。
11.根据权利要求10所述的方法,其中在提供给所述主机的所述至少一个L2P地址段之中,所选择的L2P地址段是优先级低于阈值优先级的L2P地址段。
12.根据权利要求10所述的方法,进一步包括:基于对所述多个L2P地址段中的每一个的访问计数或使用所述多个L2P地址段中的每一个而访问的数据的大小,选择待提供给所述主机的所述至少一个L2P地址段。
13. 一种计算系统,包括:
存储装置;以及
主机,访问所述存储装置,
其中所述存储装置包括:
存储器装置,存储包括多个L2P地址段的逻辑到物理映射信息即L2P映射信息;以及
存储器控制器,包括用于存储映射数据的映射高速缓存,并且:
存储从所述存储器装置接收的所述多个L2P地址段;
响应于所述主机的映射数据请求,将所述多个L2P地址段中的至少一个L2P地址段提供给所述主机;以及
从所述映射高速缓存中移除L2P地址段,
其中基于最近最少使用频率即LRU频率和是否将所述L2P地址段提供给所述主机,在所述多个L2P地址段之中选择所述L2P地址段,
其中所述存储器控制器基于各个LRU频率来设置所述多个L2P地址段之间的优先级,并且基于所述优先级从所述映射高速缓存中移除所选择的L2P地址段。
14. 根据权利要求13所述的计算系统,其中在提供给所述主机的所述至少一个L2P地址段之中,所选择的L2P地址段是优先级低于阈值优先级的L2P地址段。
15.根据权利要求13所述的计算系统,其中所述存储器控制器将提供给所述主机的所述至少一个L2P地址段的优先级设置为预设值,以及
其中所述预设值是基于从映射数据存储装置中逐出所述至少一个L2P地址段的估计时间来确定的。
16.根据权利要求13所述的计算系统,其中所述存储器控制器基于对所述多个L2P地址段中的每一个的访问计数或使用所述多个L2P地址段中的每一个而访问的数据的大小,选择待提供给所述主机的所述至少一个L2P地址段。
17.根据权利要求13所述的计算系统,其中所述主机存储响应于所述映射数据请求而获得的所述至少一个L2P地址段,并且基于所述至少一个L2P地址段向所述存储装置提供读取请求。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190008172A KR20200091199A (ko) | 2019-01-22 | 2019-01-22 | 저장 장치, 저장 장치를 포함하는 컴퓨팅 시스템 및 그 동작 방법 |
KR10-2019-0008172 | 2019-01-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111459845A CN111459845A (zh) | 2020-07-28 |
CN111459845B true CN111459845B (zh) | 2023-05-05 |
Family
ID=71609900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911067060.4A Active CN111459845B (zh) | 2019-01-22 | 2019-11-04 | 存储装置、包括存储装置的计算系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10922223B2 (zh) |
KR (1) | KR20200091199A (zh) |
CN (1) | CN111459845B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11650932B2 (en) * | 2020-10-25 | 2023-05-16 | Western Digital Technologies, Inc. | Integrated non-volatile memory assembly with address translation |
KR20220113159A (ko) * | 2021-02-05 | 2022-08-12 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US20230367706A1 (en) * | 2021-03-16 | 2023-11-16 | Micron Technology, Inc. | Managing regions of a memory system |
US11941285B2 (en) * | 2021-04-20 | 2024-03-26 | Micron Technology, Inc. | Mitigating slow read disturb in a memory sub-system |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598877A (zh) * | 2015-10-15 | 2017-04-26 | 爱思开海力士有限公司 | 存储器系统及该存储器系统的操作方法 |
CN107943719A (zh) * | 2017-11-28 | 2018-04-20 | 杭州电子科技大学 | 一种基于请求分类的闪存转换层控制方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7509473B2 (en) * | 2003-08-27 | 2009-03-24 | Adaptec, Inc. | Segmented storage system mapping |
US9104327B2 (en) * | 2011-05-17 | 2015-08-11 | Sandisk Technologies Inc. | Fast translation indicator to reduce secondary address table checks in a memory device |
CN103530062B (zh) * | 2012-07-03 | 2016-12-21 | 群联电子股份有限公司 | 数据存储方法、存储器控制器与存储器存储装置 |
KR20140057454A (ko) | 2012-11-02 | 2014-05-13 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 이와 통신하는 호스트 장치 |
US20140181402A1 (en) * | 2012-12-21 | 2014-06-26 | Advanced Micro Devices, Inc. | Selective cache memory write-back and replacement policies |
US10178147B1 (en) * | 2014-01-02 | 2019-01-08 | Instart Logic, Inc. | Client-side location address translation |
CN111638852A (zh) * | 2014-12-31 | 2020-09-08 | 华为技术有限公司 | 将数据写入固态硬盘的方法及固态硬盘 |
KR20160148952A (ko) | 2015-06-17 | 2016-12-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US20170024326A1 (en) * | 2015-07-22 | 2017-01-26 | CNEX-Labs, Inc. | Method and Apparatus for Caching Flash Translation Layer (FTL) Table |
KR20170061218A (ko) * | 2015-11-25 | 2017-06-05 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10387329B2 (en) * | 2016-02-10 | 2019-08-20 | Google Llc | Profiling cache replacement |
US10489299B2 (en) * | 2016-12-09 | 2019-11-26 | Stormagic Limited | Systems and methods for caching data |
CN107220185A (zh) * | 2017-05-23 | 2017-09-29 | 建荣半导体(深圳)有限公司 | 基于闪存的数据存储方法、装置以及闪存芯片 |
KR20180128588A (ko) * | 2017-05-24 | 2018-12-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
KR102310117B1 (ko) * | 2017-07-07 | 2021-10-08 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
-
2019
- 2019-01-22 KR KR1020190008172A patent/KR20200091199A/ko unknown
- 2019-10-10 US US16/598,724 patent/US10922223B2/en active Active
- 2019-11-04 CN CN201911067060.4A patent/CN111459845B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598877A (zh) * | 2015-10-15 | 2017-04-26 | 爱思开海力士有限公司 | 存储器系统及该存储器系统的操作方法 |
CN107943719A (zh) * | 2017-11-28 | 2018-04-20 | 杭州电子科技大学 | 一种基于请求分类的闪存转换层控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111459845A (zh) | 2020-07-28 |
US10922223B2 (en) | 2021-02-16 |
KR20200091199A (ko) | 2020-07-30 |
US20200233796A1 (en) | 2020-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111435289B (zh) | 映射数据访问性能提高的存储器控制器及其操作方法 | |
CN111459845B (zh) | 存储装置、包括存储装置的计算系统及其操作方法 | |
KR102620255B1 (ko) | 저장 장치 및 그 동작 방법 | |
US11543986B2 (en) | Electronic system including host, memory controller and memory device and method of operating the same | |
CN111352855B (zh) | 具有提高的映射更新速度的存储装置及其操作方法 | |
CN112905502A (zh) | 存储装置及其操作方法 | |
CN114267392A (zh) | 存储器控制器、存储装置及其操作方法 | |
CN111444115B (zh) | 存储装置及其操作方法 | |
US11567863B2 (en) | Storage device and operating method thereof | |
CN111105832A (zh) | 存储装置和操作存储装置的方法 | |
KR20220113159A (ko) | 저장 장치 및 그 동작 방법 | |
CN111445939B (zh) | 存储装置及其操作方法 | |
CN111258931A (zh) | 存储器控制器及操作该存储器控制器的方法 | |
US10996881B2 (en) | Storage device and method of operating the same | |
CN113448892A (zh) | 存储器控制器及其操作方法 | |
US11636899B2 (en) | Memory device and method of operating the same | |
CN112445420B (zh) | 存储控制器、存储装置以及操作该存储装置的方法 | |
CN114968080A (zh) | 存储器控制器及操作存储器控制器的方法 | |
US11645197B2 (en) | Memory controller and method of operating the same | |
US11500768B2 (en) | Storage device performing garbage collection and method of operating the same | |
CN111190535B (zh) | 存储装置及其操作方法 | |
CN114385413A (zh) | 存储器控制器及操作该存储器控制器的方法 | |
CN114300021A (zh) | 存储装置及其操作方法 | |
CN110737403A (zh) | 存储装置及操作该存储装置的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |