CN118426679A - 包括存储装置和控制器的电子装置及其操作方法 - Google Patents
包括存储装置和控制器的电子装置及其操作方法 Download PDFInfo
- Publication number
- CN118426679A CN118426679A CN202311395011.XA CN202311395011A CN118426679A CN 118426679 A CN118426679 A CN 118426679A CN 202311395011 A CN202311395011 A CN 202311395011A CN 118426679 A CN118426679 A CN 118426679A
- Authority
- CN
- China
- Prior art keywords
- mapping
- map
- segment
- controller
- log data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title description 10
- 238000013507 mapping Methods 0.000 claims abstract description 612
- 230000015654 memory Effects 0.000 claims description 153
- 238000013500 data storage Methods 0.000 claims description 104
- 230000008859 change Effects 0.000 claims description 15
- 238000004891 communication Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 34
- 230000004044 response Effects 0.000 description 29
- 239000010410 layer Substances 0.000 description 10
- 101000648827 Homo sapiens TPR and ankyrin repeat-containing protein 1 Proteins 0.000 description 7
- 102100028173 TPR and ankyrin repeat-containing protein 1 Human genes 0.000 description 7
- 230000001174 ascending effect Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000014616 translation Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 238000011017 operating method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101150101057 PBA1 gene Proteins 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000002346 layers by function Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 229910052715 tantalum Inorganic materials 0.000 description 1
- GUVRBAGPIYLISA-UHFFFAOYSA-N tantalum atom Chemical compound [Ta] GUVRBAGPIYLISA-UHFFFAOYSA-N 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- 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]
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种存储装置,包括:非易失性存储区域,存储包括一个或多个映射条目的信息的多个映射段,一个或多个映射条目的信息表示由外部装置提供的逻辑地址和与该逻辑地址相对应的物理地址之间的映射信息;易失性存储区域,临时存储日志数据,该日志数据包括跟踪映射信息的变化以能够更新映射信息的信息;以及控制器,与非易失性存储区域和易失性存储区域通信并且对存储更新的映射信息的第一映射段的数量进行计数,并根据日志数据中包括的逻辑地址的数量与第一映射段的数量的比率来更新非易失性存储区域中的映射信息。
Description
相关申请的交叉引用
本专利文件要求于2023年2月1日提交的申请号为10-2023-0013681的韩国专利申请的优先权和权益,该韩国专利申请通过引用全部并入本文。
技术领域
本专利文件中公开的技术和实施方式涉及一种电子装置,并且更具体地,涉及一种控制器及其操作方法。
背景技术
存储装置是指被配置为基于诸如计算机或智能电话的主机装置的控制来存储数据的电子组件。数据存储装置可以包括存储数据的存储器装置和控制存储器装置的存储器控制器。存储器装置根据其在断电时保存所存储数据的能力而分为易失性存储器装置或非易失性存储器装置。
易失性存储器装置仅在供应电力时才可以存储数据。因此,这种易失性存储器装置在断电的情况下丢失其数据。易失性存储器装置的示例包括静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。
非易失性存储器装置是在断电时可以保留其数据的存储器装置。非易失性存储器装置的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除ROM(EEROM)或闪速存储器。
存储器控制器可以将数据编程到与由主机提供的逻辑地址相对应的物理地址区域中。存储器控制器可以在包括逻辑地址和物理地址之间的映射信息的映射数据被高速缓存在易失性存储器装置中的状态下将逻辑地址转换为物理地址,或者将逻辑地址反映在关于与逻辑地址相对应的更新的物理地址的信息映射数据上。当易失性存储器装置中可以高速缓存的映射数据的容量有限时,可能基本上会伴随对所需映射数据的读取操作和编程操作。当有效地使用有限的映射高速缓存区域时,可以防止不必要的读取和编程操作的执行。
发明内容
实施例提供一种能够有效地使用映射高速缓存区域的电子装置以及该电子装置的操作方法。虽然映射高速缓存区域在电子装置中大小有限,但是所公开的技术的实现允许通过有效地使用映射高速缓存区域来提高电子装置的性能。
根据本公开的一方面,提供一种存储装置,包括:非易失性存储区域,被配置为存储包括一个或多个映射条目的信息的多个映射段,一个或多个映射条目的信息表示由外部装置提供的逻辑地址和与该逻辑地址相对应的物理地址之间的映射信息;易失性存储区域,被配置为临时存储日志数据,该日志数据包括跟踪映射信息的变化以能够更新映射信息的信息;以及控制器,与非易失性存储区域和易失性存储区域通信并且被配置为对存储更新的映射信息的第一映射段的数量进行计数,并根据日志数据中包括的逻辑地址的数量与第一映射段的数量的比率来更新非易失性存储区域中的映射信息。
根据本公开的另一方面,提供一种操作控制器的方法,该方法包括:存储日志数据,该日志数据包括由外部装置提供的逻辑地址的更新的映射信息;更新与映射段相对应的映射段位图表,更新的映射信息属于该映射段;计算日志数据中包括的日志条目的数量与脏映射段的数量的比率;并且基于该比率来读取脏映射段。
根据本公开的又一方面,提供一种电子装置,包括:主机,包括主机存储缓冲器;以及存储装置,被配置为与主机通信以基于比率将包括映射段的数据存储在主机存储缓冲器中,每个映射段覆盖由主机提供的相应逻辑地址区域,该比率指示覆盖逻辑地址区域的映射段的数量相对于逻辑地址区域的大小。
根据本公开的又一方面,提供一种存储装置,包括:非易失性存储器装置,被配置为存储映射段,该映射段包括由主机提供的逻辑地址与物理地址之间的映射信息;日志数据存储器件,被配置为存储日志数据,该日志数据包括由主机提供的逻辑地址的更新的映射信息;映射存储器件,被配置为存储待基于日志数据更新的脏映射段;供电电路,被配置为向非易失性存储器装置提供电力;以及映射控制器,被配置为基于由供电电路提供的电力的容量来确定待存储在映射存储器件中的脏映射段的数量的最大值。
根据本公开的又一方面,提供一种操作存储装置的方法,该方法包括:确定待存储的脏映射段的数量的最大值;存储日志数据,该日志数据为由主机提供的逻辑地址的更新的映射信息;确定待读取的脏映射段;以及读取脏映射段,直到脏映射段的数量等于最大值。
根据本公开的又一方面,提供一种控制器,包括:日志数据存储器件,被配置为响应于与逻辑地址相对应的数据的更新而存储日志条目,该日志条目为逻辑地址的更新的映射信息;映射存储器件,被配置为临时存储映射段;位图表,表示映射段的状态以识别待基于日志条目更新的第一映射段;以及映射控制器,被配置为基于日志条目中包括的逻辑地址的数量与第一映射段的数量的比率来确定是否存储第一映射段。
映射控制器可以确定:在日志条目的数量等于由一个映射段覆盖的逻辑地址的数量并且比率等于或大于通过将由一个映射段覆盖的逻辑地址的数量除以2获得的值时,将第一映射段存储在映射存储器件中。
附图说明
现在将在下文中参照附图更充分地描述示例实施例;然而,实施例可以以不同的形式实现并且不应被解释为限于本文中阐述的实施例。相反,提供这些实施例是为了使得本公开将是彻底和完整的,并且将把示例实施例的范围充分传达给本领域技术人员。
在附图中,为了清楚地说明,可以放大尺寸。将理解的是,当一个元件被称为在两个元件“之间”时,它可以是两个元件之间的唯一元件,或者也可以存在一个或多个中间元件。在整个申请中,相同的附图标记指代相同的元件。
图1是示出根据本公开的实施例的电子装置的示图。
图2是示出根据本公开的实施例的控制器的示图。
图3是示出根据本公开的实施例的电子装置的操作的示图。
图4是示出根据本公开的实施例的映射段的示图。
图5是示出根据本公开的实施例的日志数据存储器件的示图。
图6是示出根据本公开的实施例的映射段位图表的示图。
图7是示出根据本公开的实施例的更新映射段位图表的操作的示图。
图8是示出根据本公开的实施例的存储有映射段的控制器的示图。
图9是示出根据本公开的另一实施例的更新映射段位图表的操作的示图。
图10是示出根据本公开的另一实施例的存储有映射段的控制器的示图。
图11是示出根据本公开的实施例的存储映射段的操作的示图。
图12是示出根据本公开的实施例的所需的连续脏映射段的数量的示图。
图13是示出根据本公开的实施例的不存储脏映射段的操作的示图。
图14是示出根据本公开的实施例的存储脏映射段的操作的示图。
图15是示出根据本公开的实施例的将脏映射段存储在主机存储缓冲器和映射存储器件中的操作的示图。
图16是示出根据本公开的实施例的确定待存储在主机存储缓冲器和映射存储器件中的脏映射段的过程的示图。
图17是示出根据本公开的实施例的控制器的操作的流程图。
图18是示出根据本公开的另一实施例的控制器的操作的流程图。
图19是示出根据本公开的另一实施例的控制器的操作的流程图。
图20是示出根据本公开的实施例的存储装置的操作的流程图。
图21是示出根据本公开的实施例的应用了存储装置的用户系统的示图。
具体实施方式
为了描述根据本公开的构思的实施例,本文中所公开的特定结构或功能描述仅是说明性的。根据本公开的构思的实施例可以以各种形式来实施,并且不能被解释为限于本文中阐述的实施例。
图1是示出根据本公开的实施例的电子装置的示图。
参照图1,电子装置1可以包括主机100和存储装置1000。
存储装置1000可以包括控制器1100、非易失性存储区域1200和供电电路1300。
存储装置1000可以连接到主机100并且基于主机100的请求来操作。主机100可以包括移动电话、智能电话、膝上型计算机、台式计算机、TV、游戏机、平板PC、车载信息娱乐系统、无人机、自动驾驶车辆等。主机100可以控制存储装置1000,从而将数据存储在非易失性存储区域1200中。
根据确定与主机100的通信方案的主机接口,存储装置1000可以被制造为各种类型的存储装置中的任意一种。例如,存储装置1000可以被配置为诸如以下的各种类型的存储装置中的任意一种:固态驱动器(SSD),MMC、eMMC、RS-MMC和微型MMC形式的多媒体卡,SD、迷你SD和微型SD形式的安全数字卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-E)卡型存储装置,紧凑型闪速(CF)卡,智能媒体卡或者记忆棒。
存储装置1000可以被制造为各种封装类型中的任意一种。例如,存储装置1000可以被制造为诸如以下的各种封装类型中的任意一种:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)或晶圆级堆叠封装(WSP)。
非易失性存储区域1200可以被配置为存储数据。非易失性存储区域1200基于控制器1100的控制来操作。非易失性存储区域1200可以包括存储器单元阵列,该存储器单元阵列包括多个存储器单元并且每个存储器单元被配置为存储数据。存储器单元阵列中的存储器单元可以被组织为由存储器单元构成的多个存储块。每个存储块可以包括多个存储器单元。一个存储块可以包括由存储器单元构成的多个页面。因此,非易失性存储区域1200可以包括用于存储数据的多个存储器单元,其中存储器单元被组织和分组以形成由存储器单元构成的多个页面,并且由存储器单元构成的页面被组织和分组以形成由存储器单元构成的块。每个页面包括不同的存储器单元并且每个块包括由存储器单元构成的不同页面。
在实施例中,由存储器单元构成的页面可以是用于将数据编程到非易失性存储区域1200或读取存储在非易失性存储区域1200中的数据使得页面中的存储器单元可以被一起编程或读取的单位。存储块可以是用于擦除存储在非易失性存储区域1200中的数据使得块的所有存储器单元可以被一起擦除的单位。
在实施例中,非易失性存储区域1200可以是NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩随机存取存储器(STT-RAM)等。在本说明书中,为了便于描述,假定和描述非易失性存储区域1200是NAND闪速存储器的情况。
在实施例中,非易失性存储区域1200可以被实施为三维阵列结构。本公开不仅可以应用于电荷存储层用导电浮栅(FG)来配置的闪速存储器装置,而且可以应用于电荷存储层用绝缘层来配置的电荷撷取闪存(CTF)。
在实施例中,非易失性存储区域1200中包括的存储器单元中的每一个可以被配置为存储一个数据位的单层单元(SLC)。此外,非易失性存储区域1200中包括的存储器单元中的每一个可以被配置为存储两个数据位的多层单元(MLC)、存储三个数据位的三层单元(TLC)或存储四个数据位的四层单元(QLC)。
在实施例中,非易失性存储区域1200可以包括映射数据存储区域1210。映射数据存储区域1210可以包括用于存储映射数据的由存储器单元构成的多个存储块。映射数据可以包括由主机100提供的逻辑块地址(LBA)和物理块地址(PBA)之间的映射信息。映射数据存储区域1210可以通过使用映射段作为单位将映射数据存储在映射段中。
控制器1100可以与非易失性存储区域1200通信并控制非易失性存储区域1200的整体操作。
控制器1100可以被配置为执行各种控制功能,其中一些控制功能可以包括或可以分为三个功能层。具体地,控制器1100可以包括主机接口层(HIL)、闪存接口层(FIL)以及闪存转换层(FTL),主机接口层(HIL)用于管理与读取存储装置1000的存储区域1200中的存储器单元中的数据或将数据写入存储装置1000的存储区域1200中的存储器单元的操作相关的、与主机的接口,闪存接口层(FIL)用于管理与存储装置1000的存储区域1200的接口,该存储装置1000可以包括闪速存储器装置,闪存转换层(FTL)用于管理HIL和FIL两个层之间的转换。
当向存储装置1000施加电力时,控制器1100可以运行固件(FW)。当非易失性存储区域1200被配置为闪速存储器装置时,控制器1100可以运行诸如用于控制主机100和非易失性存储区域1200之间的通信的闪存转换层(FTL)的FW。当向存储装置1000施加电力时,控制器1100可以从ROM(未示出)读取启动存储装置1000所需的数据。
在实施例中,控制器1100可以接收从主机100输入的数据和LBA,并且将LBA转换为PBA,PBA表示非易失性存储区域1200中包括且待存储数据的存储器单元的地址。在一些实施方案中,控制器1100可以在缓冲存储器(未示出)中存储表示LBA和PBA之间的映射关系的逻辑-物理地址映射表。
控制器1100可以与主机100通信。在实施例中,控制器1100可以使用诸如以下的各种通信方案中的至少一种来与主机100通信:通用串行总线(USB)、串行AT附件(SATA)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、火线、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)或低负载DIMM(LRDIMM)。
主机100可以包括主机存储缓冲器110。主机存储缓冲器110可以临时存储用户数据。主机存储缓冲器110可以存储关于存储装置1100的信息。在实施例中,主机存储缓冲器110可以与控制器1100通信,从而存储映射段。主机100可以是提供用于将数据存储在存储装置1000中、读取存储在存储装置1000中的数据或者擦除存储在存储装置1000中的数据的请求的外部装置。
供电电路1300可以响应于突然断电(SPO)而向控制器1100和非易失性存储区域1200提供电力。供电电路1300可以包括钽聚合物固体电容器(POSCAP)。供电电路1300向控制器1100和非易失性存储区域1200提供的电力可以根据POSCAP的电容而变化。
图2是示出根据本公开的实施例的控制器的示图。
参照图2,存储装置1000中的控制器1100可以包括多个存储单元,多个存储单元包括映射存储器件1110、日志数据存储器件1120、映射段位图表1130和映射控制器1140。
控制器1100可以基于图1所示的主机100的请求来控制存储装置1000中的非易失性存储区域1200中的存储器单元执行编程操作、读取操作或擦除操作。在编程操作中,控制器1100可以向非易失性存储区域1200提供编程命令和数据。在读取操作中,控制器1100可以向非易失性存储区域1200提供读取命令。在擦除操作中,控制器1100可以向非易失性存储区域1200提供擦除命令。
非易失性存储区域1200可以从控制器1100接收命令和地址,并且访问存储器单元阵列中由该地址选择的区域。因此,非易失性存储区域1200可以对由地址选择的区域执行与命令相对应的操作。例如,非易失性存储区域1200可以执行编程(写入)操作、读取操作和擦除操作。在编程操作中,非易失性存储区域1200可以将数据编程到由该地址选择的区域中。在读取操作中,非易失性存储区域1200可以从由该地址选择的区域读取数据。在擦除操作中,非易失性存储区域1200可以擦除由该地址选择的区域中存储的数据。
映射存储器件1110可以存储映射数据。映射数据可以包括主机提供的LBA和PBA之间的映射信息。控制器1100可以基于存储在映射存储器件1110中的映射数据将LBA转换为PBA。
控制器1100中的映射存储器件1110可以被配置为易失性存储器装置。映射存储器件1110可以是静态随机存取存储器(SRAM)。映射存储器件1110可以存储如上面参照图2所描述的非易失性存储区域1200的映射数据存储区域1210中存储的多个映射段之中的一些映射段。在实施例中,映射存储器件1110可以以映射段为单位存储映射数据。
日志数据存储器件1120可以存储用于跟踪或记录PBA和LBA之间的映射变化的日志数据。日志数据可以包括例如由图1所示的主机100提供的LBA的更新的映射信息以反映LBA和PBA之间的映射变化。当更新与由主机100提供的LBA相对应的数据时,控制器1100中的日志数据存储器件1120中存储的日志数据可以包括关于LBA、与LBA相对应的PBA以及更新的PBA的信息。
控制器1100中的映射段位图表1130可以是与图2所示的非易失性存储区域1200中的映射数据存储区域1210中存储的映射段中的每一个相对应的一组位图。映射段位图表1130可以是一组位图,其中一个位与一个映射段相对应。例如,当N(N是任意自然数)个映射段存储在映射数据存储区域1210中时,映射段位图表1130可以是N位位图表。映射段位图表1130可以按照LBA的顺序来布置。
控制器1100中的映射控制器1140可以控制控制器1100中的映射存储器件1110、日志数据存储器件1120和映射段位图表1130。
映射控制器1140可以更新映射段位图表1130。在实施例中,当日志数据存储在日志数据存储器件1120中时,映射控制器1140可以搜索包括关于所存储的日志数据的映射信息的映射段,并且更新与搜索到的映射段相对应的位图。在一些实施方式中,当基于日志数据存储器件1120中存储的日志数据更新映射存储器件1110中存储的映射段时,映射控制器1140可以更新与更新的映射段相对应的位图。
映射控制器1140可以通过控制非易失性存储区域1200将映射段存储在映射存储器件1110中。映射控制器1140可以向非易失性存储区域1200提供映射读取命令MAP_READ。在一些实施方案中,映射控制器1140可以将由非易失性存储区域1200提供的映射段存储在映射存储器件1110中。
映射控制器1140可以更新存储在映射存储器件1110中的映射段。在一些实施方案中,映射控制器1140可以基于存储在日志数据存储器件1120中的日志数据,将LBA与PBA之间的更新的映射信息反映在存储在映射存储器件1110中的映射段上。
映射控制器1140可以在从非易失性存储区域1200接收的映射段之中确定待存储在映射存储器件1110中的映射段。
映射控制器1140可以基于图1所示的供电电路1300的容量来确定可以存储的映射段的数量的最大值。映射控制器1140可以将响应于突然断电而能够存储在非易失性存储区域1200中的映射段的最大数量确定为最大值。该最大值可以由图1所示的供电电路1300的电容来确定。映射控制器1140可以从非易失性存储区域1200读取“脏”映射段,直到存储在映射存储器件1110中的映射段的数量变得等于最大值,其中脏映射段可以对应于如本专利文件中稍后进一步讨论的待更新的映射段。
映射存储器件1110、日志数据存储器件1120和映射段位图表1130可以包括在易失性存储区域中。在实施例中,易失性存储区域可以与存储器控制器集成以形成一个芯片。
图3是示出根据本公开的实施例的电子装置的操作的示图。
参照图3,控制器1100可以将映射段存储在主机存储缓冲器110中。
控制器1100可以将映射段存储在主机存储缓冲器110中。映射控制器1140可以在从非易失性存储区域1200接收到的映射段之中确定待存储在主机存储缓冲器110中的映射段。此后,控制器1100可以与主机100通信以将映射段存储在主机存储缓冲器110中。
稍后将参照图16描述控制器1100确定待提供给主机存储缓冲器110的映射段的过程。
图4是示出根据本公开的实施例的存储在非易失性存储区域1200的映射数据存储区域1210中的映射段的结构的示图。
参照图4,映射数据存储区域1210可以在非易失性存储区域1200内存储多个映射段。
一个映射段可以存储在映射数据存储区域1210中的存储区域中,该存储区域与用于存储LBA和PBA之间的映射信息且由存储器单元构成的一个页面相对应。例如,如图4所示,映射段1可以存储在存储映射信息且由存储器单元构成的一个页面中。类似地,映射段2可以存储在存储映射信息的一个页面中。
一个映射段可以对应于由存储器单元构成的一个页面中存储的映射信息的数据。因此,在一些实施方案中,一个映射段可以具有16KB的大小。在图4所示的示例中,映射段1和映射段2中的每一个可以具有与页面相同的大小16KB。
LBA和PBA之间的映射信息的一部分可以是映射条目。例如,映射条目1可以包括LBA1和PBA1之间的映射信息。类似地,映射条目4096可以包括LBA 4096和PBA 4096之间的映射信息。
在一些实施方案中,一个映射条目可以具有4个字节的大小。例如,映射条目1可以具有4个字节的大小。类似地,映射条目4096可以具有4个字节的大小。因此,一个映射段可以包括4096个映射条目。
一个映射段可以包括一组多个映射条目。例如,当假设映射段1包括最低LBA的映射条目时,映射段1可以包括与LBA 1至LBA 4096相对应的映射条目。类似地,映射段2可以包括对应于LBA 4097至LBA 8192的映射条目。
在一些实施方案中,一个映射段中包括的映射条目可以按LBA的升序排列。例如,映射段1可以包括按照从与LBA 1相对应的映射条目1到与LBA 4096相对应的映射条目4096的升序排列的映射条目。
类似地,映射段2可以包括按照从与LBA 4097相对应的映射条目4097到与LBA8192相对应的映射条目8192的升序排列的映射条目。
一个映射段的大小和一个映射条目的大小仅是说明性的,并且本公开不限于本实施例。
图5是示出根据本公开的实施例的控制器1100内的日志数据存储器件1120中存储的日志数据的示图。
参照图5,在所示示例中,日志数据存储器件1120可以存储日志数据1和日志数据2。
当在根据先前的写入请求已经将某个数据存储在与LBA相对应的PBA中之后,控制器1100从主机接收到将数据编程到与该LBA相对应的区域中的写入请求时,控制器1100可以将数据存储在改变后的PBA中。在实施方案中,日志数据可以包括关于LBA的信息和改变后的信息,改变后的信息包括与LBA相对应的PBA以及新的PBA区域(即,改变后的PBA)。
例如,如图5所示,所示的日志数据1可以包括关于改变后的PBA的信息,该PBA从“PBA 1”改变为“PBA A”且对应于相同的对应LBA 1。
响应于来自主机100的写入请求,图1所示的控制器1100可以将由主机100提供的数据存储在与由主机100提供的LBA相对应的PBA区域中。此外,当控制器1100接收到使用待编程的数据对同一LBA进行附加编程的写入请求时,控制器1100可以基于日志数据1中针对LBA 1的更新的映射,将待编程的数据存储在新的PBA区域“PBA A”中,而不是与现有LBA相对应的先前的PBA区域“PBA 1”中。
具体地,当控制器1100接收到包括待编程到与LBA 1相对应的区域中的数据的写入请求时,控制器1100可以将数据存储在与PBA A而不是PBA 1相对应的区域中。
类似地,当控制器1100接收到包括待编程到与LBA 101至LBA 120相对应的区域中的数据的写入请求时,控制器1100可以基于日志数据2中的针对LBA 101至LBA 120的更新的映射,将数据存储在与PBA B到PBA C相对应的区域中。
图2所示的映射控制器1140可以响应于由主机100提供的写入请求而将数据存储在非易失性存储区域1200中,然后将日志数据存储在日志数据存储器件1120中,该日志数据包括从主机100接收的LBA和记录数据的PBA。
日志数据存储器件1120可以通过使用日志条目作为用于存储与一个LBA相关联的改变信息的单位来存储日志数据。日志条目可以包括关于一个LBA以及存储与该一个LBA相对应的数据的PBA的改变信息。
在实施例中,日志数据1可以包括一个日志条目,该日志条目包括LBA 1以及PBA的改变信息(PBA 1→PBA A)。
在实施例中,日志数据2可以包括20个日志条目,20个日志条目包括LBA101至LBA120以及与其相对应的PBA的改变信息(PBA101至PBA 120→PBA B至PBA C)。
图6是示出根据本公开的实施例的映射段位图表的示图。
参照图6,映射段位图表1130可以包括分别与映射段相对应的位图。
下面,为了便于描述,假设一个映射段包括100个映射条目。例如,映射段1可以包括与LBA 1至LBA 100相对应的映射条目。映射段2可以包括与LBA 101至LBA 200相对应的映射条目。映射段3可以包括与LBA 201至LBA 300相对应的映射条目。然而,本公开不限于本实施例,并且一个映射段中包括的映射条目的数量可以变化。
映射段位图表1130可以包括分别与存储在非易失性存储区域中的映射段相对应的位图。映射段位图表1130可以包括映射段编号和与对应的映射段中包括的映射条目相对应的LBA。如上参照图4所述,每个映射段中包括的映射条目按照LBA的升序排列,因此,映射段位图表1130也可以按照LBA的升序对齐。
例如,映射段位图表1130可以包括与映射段1相对应的1位位图、与映射段编号2相对应的1位位图、与映射段编号3相对应的1位位图、与映射段编号4相对应的1位位图以及与映射段编号5相对应的1位位图。
映射段位图表1130可以包括关于每个映射段中包括的映射条目的LBA的信息。例如,映射段位图表1130可以包括关于与映射段编号1中包括的映射条目相对应的LBA LBA 1至LBA 100、与映射段编号2中包括的映射条目相对应的LBA LBA 101至LBA 200、与映射段编号3中包括的映射条目相对应的LBA LBA 201至LBA 300、与映射段编号4中包括的映射条目相对应的LBA LBA 301至LBA 400以及与映射段编号5中包括的映射条目相对应的LBALBA 401至LBA 500的信息。
与每个映射段相对应的1位位图可以表示设定状态(例如,位“1”)或释放状态(例如,位“0”)。与设定状态相对应的映射段可以被称为“脏”映射段。与释放状态相对应的映射段可以被称为净映射段。具有设定状态的映射段(脏映射段)可以对应于待基于图5所示的日志数据存储器件1120中存储的日志数据更新的映射段。处于释放状态的映射段(净映射段)可以对应于已经基于图5所示的日志数据存储器件1120中的日志数据而更新的映射段。可选地,处于释放状态的映射段(净映射段)可以对应于不需要更新的映射段。
例如,如图5所示,假设与LBA 1相对应的数据存储在PBA A区域中。尚未基于日志数据1更新包括与LBA 1相对应的映射条目1的映射段1,并且因此,映射段1中包括的映射条目1可以包括与LBA 1-PBA 1相对应的逻辑-物理块地址映射信息。与映射段1相对应的位图可以表示“1”。映射段1可以处于设定状态。映射段1可以是待基于日志数据1更新的映射段。
类似地,如图5所示,假设与LBA 101至LBA 120相对应的数据存储在与PBA B至PBAC相对应的区域中。尚未基于日志数据2更新包括与LBA 101至LBA 120相对应的映射条目(映射条目101至映射条目120)的映射段2,并且因此,映射段2中包括的映射条目(映射条目101至映射条目120)可以包括与LBA 101-PBA 101至LBA 120-PBA 120相对应的逻辑-物理地址映射信息。与映射段编号2相对应的位图可以表示“1”。映射段2可以处于设定状态。映射段2可以是待基于日志数据2更新的映射段。
参照图6,与映射段编号3至映射段编号5相对应的位图可以全部表示“0”。在实施例中,映射段编号3至映射段编号5可以处于释放状态。因此,映射段编号3至映射段编号5可以是已经基于存储在日志数据存储器件1120中的日志数据更新的映射段。可选地,映射段编号3至映射段编号5可以是由于没有从图1所示的主机100接收至LBA而不需要更新的映射段。
图7是示出根据本公开的实施例的更新映射段位图表的操作的示图。
参照图7,每当日志数据存储在日志数据存储器件1120中时,图2所示的映射控制器1140就可以更新映射段位图表1130。
为了便于描述,假设映射存储器件(未示出)中没有存储映射段。
如图7所示,假设主机提供对与LBA区域1(LBA 14至LBA 30)相对应的PBA区域的写入请求,提供对与LBA区域2(LBA 41至LBA 50)相对应的PBA区域的写入请求,并且提供对与LBA区域3(LBA 61至LBA 90)相对应的PBA区域的写入请求。
图2所示的控制器1100可以响应于主机提供的写入请求而将数据存储在与由主机提供的LBA相对应的PBA区域中。此后,映射控制器1140可以将作为关于LBA和与其相对应的改变后的PBA的信息的日志数据存储在日志数据存储器件1120中。
在实施例中,当数据存储在与LBA区域1相对应的PBA区域中时,映射控制器1140可以将日志数据1存储在日志数据存储器件1120中。日志数据1可以包括多个日志条目。例如,日志数据1可以包括作为分别与LBA 14至LBA 30相对应的PBA的改变信息的日志条目。
映射存储器件(未示出)中当前没有存储任何映射段,并且因此,包括关于与日志数据1中包括的日志条目相对应的LBA的映射信息的映射段将被存储在映射存储器件1110中,以便反映包括关于映射段的更新的映射信息的日志数据1。包括关于LBA 14至LBA 30的映射信息的映射段1可以是脏映射段。
映射控制器1140可以检查日志数据存储器件1120中存储的日志数据中包括的LBA。映射控制器1140可以基于映射段位图表1130获取包括关于所检查的LBA的映射信息的映射段编号。映射控制器1140可以基于获取的映射段编号将位图更新为处于设定状态。
在实施例中,映射控制器1140可以检查日志数据存储器件1120中存储的日志数据1中包括的LBA LBA 14至LBA30。映射控制器1140可以基于映射段位图表1130获取包括关于所检查的LBA LBA 14至LBA 30的映射信息的映射段编号。映射控制器1140可以基于图5所示的映射段位图表1130来获取映射段1。映射控制器1140可以将与映射段1相对应的位图更新为处于设定状态。与映射段1相对应的位图可以是位“1”。
在实施例中,当数据存储在与由主机提供的LBA区域2相对应的PBA区域中时,映射控制器1140可以将日志数据2存储在日志数据存储器件1120中。日志数据2可以包括多个日志条目。例如,日志数据2可以包括作为分别与LBA 41至LBA 50相对应的PBA的改变信息的日志条目。
映射存储器件(未示出)中当前没有存储任何映射段,并且因此,包括关于与日志数据2中包括的日志条目相对应的LBA的映射信息的映射段将被存储在映射存储器件1110中,以便反映包括关于映射段的更新的映射信息的日志数据2。包括关于LBA 41至LBA 50的映射信息的映射段1可以是脏映射段。
映射控制器1140可以检查日志数据存储器件1120中存储的日志数据2中包括的LBA 41至LBA 50。映射控制器1140可以基于映射段位图表1130获取包括关于所检查的LBALBA41至LBA50的映射信息的映射段编号。映射控制器1140可以基于图5所示的映射段位图表1130来获取映射段1。
在示例中,与映射段1相对应的位图已经将状态设置为位“1”,因此,映射控制器1140可以跳过更新与映射段1相对应的位图,而不重复更新与映射段1相对应的位图。
在实施例中,当数据存储在与主机提供的LBA区域3相对应的PBA区域中时,映射控制器1140可以将日志数据3存储在日志数据存储器件1120中。日志数据3可以包括多个日志条目。例如,日志数据3可以包括作为分别与LBA61至LBA 90相对应的PBA的改变信息的日志条目。
映射控制器1140可以检查存储在日志数据存储器件1120中的日志数据3中包括的LBA 61至LBA90。映射控制器1140可以基于映射段位图表1130获取包括关于所检查的LBALBA 61至LBA 90的映射信息的映射段编号。映射控制器1140可以基于图5所示的映射段位图表1130来获取映射段1。
类似地,与映射段1相对应的位图已经将设定状态表示为位“1”,因此,映射控制器1140可以跳过更新与映射段1相对应的位图,而不重复更新与映射段1相对应的位图。
图8是示出根据本公开的实施例的存储有映射段的控制器的示图。
参照图8,映射控制器(未示出)可以将映射段1存储在映射存储器件1110中。日志数据存储器件1120可以存储如图7所示的日志数据1至日志数据3。如上参照图7所述,映射段位图表1130中存储的与映射段1相对应的位图可以处于设定状态。
在示例中,假设映射存储器件1110可以存储两个映射段。
映射控制器(未示出)可以向非易失性存储区域(未示出)提供映射读取命令MAP_READ,以便将映射段存储在映射存储器件1110中。非易失性存储区域(未示出)可以响应于映射读取命令MAP_READ向控制器1100提供相应的映射段。映射控制器(未示出)可以将接收到的映射段存储在映射存储器件1110中。
在实施例中,映射控制器(未示出)可以向非易失性存储区域(未示出)提供映射读取命令MAP_READ,并将接收到的映射段1存储在映射存储器件1110中。
如上参照图7所述,在实施例中,由主机提供的LBA区域可以是或者包括LBA区域1(LBA 14至LBA 30)、LBA区域2(LBA 41至LBA 50)和LBA区域3(LBA 61至LBA 90)。返回参照图8,示出了主机工作负载,其中主机提供的LBA区域被划分为100个LBA单元。
由主机提供的LBA区域的大小可以基于由主机提供的LBA的数量。在实施例中,由主机提供的LBA区域1的大小可以对应于17个LBA。由主机提供的LBA区域2的大小可以对应于10个LBA。由主机提供的LBA区域3的大小可以对应于30个LBA。在图8中,在与映射段1(LBA1至LBA 100)相对应的LBA区域中标记了与LBA区域1、LBA区域2和LBA区域3相对应的主机工作负载。
存储在映射存储器件1110中的映射段1可以覆盖LBA区域(LBA 1至LBA 100)。因此,映射控制器(未示出)可以仅将映射段1存储在映射存储器件1110中,并且基于日志数据1至日志数据3(J_DATA1至J_DATA3)来更新存储在映射存储器件1110中的映射段1。由主机提供的LBA区域1至LBA区域3全部包括在LBA区域(LBA 1至LBA 100)中,并且因此,映射控制器(未示出)可以仅基于映射段1将存储在日志数据存储器件1120中的日志数据反映在映射段1上。
图9是示出根据本公开的另一实施例的更新映射段位图表的操作的示图。
参照图9,每当日志数据被存储在日志数据存储器件1120中时,图2所示的映射控制器1140就可以更新映射段位图表1130。
为了便于描述,假设映射存储器件(未示出)中没有存储映射段。
如图9所示,假设主机提供对与LBA区域1(LBA14至LBA 30)相对应的PBA区域的写入请求,提供对与LBA区域2(LBA 250至LBA 254)相对应的PBA区域的写入请求,提供对与LBA区域3(LBA 331至LBA 360)相对应的PBA区域的写入请求,并且提供对与LBA区域4(LBA131至LBA 140)相对应的PBA区域的写入请求。
图2所示的控制器1100可以响应于主机提供的写入请求而将数据存储在与主机提供的LBA相对应的PBA区域中。此后,映射控制器1140可以将作为关于LBA和与其相对应的改变后的PBA的信息的日志数据存储在日志数据存储器件1120中。
在实施例中,当数据存储在与LBA区域1相对应的PBA区域中时,映射控制器1140可以将日志数据1存储在日志数据存储器件1120中。日志数据1可以包括多个日志条目。例如,日志数据1可以包括作为分别与LBA 14至LBA 30相对应的PBA的改变信息的日志条目。
映射存储器件(未示出)中当前没有存储任何映射段,因此,包括关于与日志数据1中包括的日志条目相对应的LBA的映射信息的映射段将被存储在映射存储器件1110中,以便反映包括关于映射段的更新的映射信息的日志数据1。包括关于LBA 14至LBA 30的映射信息的映射段1可以是脏映射段。
映射控制器1140可以检查日志数据存储器件1120中存储的日志数据中包括的LBA。映射控制器1140可以基于映射段位图表1130获取包括关于所检查的LBA的映射信息的映射段编号。映射控制器1140可以基于获取的映射段编号将位图更新为处于设定状态。
在实施例中,映射控制器1140可以检查日志数据存储器件1120中存储的日志数据1中包括的LBALBA14至LBA 30。映射控制器1140可以基于映射段位图表1130获取包括关于所检查的LBA LBA 14至LBA 30的映射信息的映射段编号。映射控制器1140可以基于图5所示的映射段位图表1130来获取映射段1。映射控制器1140可以将与映射段1相对应的位图更新为处于设定状态。与映射段1相对应的位图可以是位“1”。
在实施例中,当数据存储在与主机提供的LBA区域2相对应的PBA区域中时,映射控制器1140可以将日志数据2存储在日志数据存储器件1120中。日志数据2可以包括多个日志条目。例如,日志数据2可以包括作为分别与LBA 250至LBA 254相对应的PBA的改变信息的日志条目。
映射存储器件(未示出)中当前没有存储任何映射段,因此,包括关于与日志数据2中包括的日志条目相对应的LBA的映射信息的映射段将被存储在映射存储器件1110中,以便反映包括关于映射段的更新的映射信息的日志数据2。包括关于LBA 250至LBA 254的映射信息的映射段3可以是脏映射段。
在实施例中,映射控制器1140可以检查日志数据存储器件1120中存储的日志数据2中包括的LBA LBA 250至LBA 254。映射控制器1140可以基于映射段位图表1130获取包括关于所检查的LBA LBA 250至LBA 254的映射信息的映射段编号。映射控制器1140可以基于图5所示的映射段位图表1130来获取映射段编号3。映射控制器1140可以将与映射段编号3相对应的位图更新为处于设定状态。与映射段编号3相对应的位图可以是位“1”。
在实施例中,当数据存储在与主机提供的LBA区域3相对应的PBA区域中时,映射控制器1140可以将日志数据3存储在日志数据存储器件1120中。日志数据3可以包括多个日志条目。例如,日志数据3可以包括作为分别与LBA331至LBA 360相对应的PBA的改变信息的日志条目。
映射存储器件(未示出)中当前没有存储任何映射段,因此,包括关于与日志数据3中包括的日志条目相对应的LBA的映射信息的映射段将被存储在映射存储器件1110中,以便反映包括关于映射段的更新的映射信息的日志数据3。包括关于LBA 331至LBA360的映射信息的映射段4可以是脏映射段。
在实施例中,映射控制器1140可以检查日志数据存储器件1120中存储的日志数据3中包括的LBA LBA 331至LBA 360。映射控制器1140可以基于映射段位图表1130获取包括关于所检查的LBA LBA 331至LBA 360的映射信息的映射段编号。映射控制器1140可以基于图5所示的映射段位图表1130来获取映射段编号4。映射控制器1140可以将与映射段编号4相对应的位图更新为处于设定状态。与映射段编号4相对应的位图可以是位“1”。
在实施例中,当数据存储在与主机提供的LBA区域4相对应的PBA区域中时,映射控制器1140可以将日志数据4存储在日志数据存储器件1120中。日志数据4可以包括多个日志条目。例如,日志数据4可以包括作为分别与LBA 131至LBA 140相对应的PBA的改变信息的日志条目。
映射存储器件(未示出)中当前没有存储任何映射段,因此,包括关于与日志数据4中包括的日志条目相对应的LBA的映射信息的映射段将被存储在映射存储器件1110中,以便反映包括关于映射段的更新的映射信息的日志数据4。包括关于LBA 131至LBA 140的映射信息的映射段2可以是脏映射段。
在实施例中,映射控制器1140可以检查日志数据存储器件1120中存储的日志数据4中包括的LBA LBA131至LBA 140。映射控制器1140可以基于映射段位图表1130获取包括关于所检查的LBA LBA 131至LBA 140的映射信息的映射段编号。映射控制器1140可以基于图5所示的映射段位图表1130来获取映射段编号2。映射控制器1140可以将与映射段编号2相对应的位图更新为处于设定状态。与映射段编号2相对应的位图可以是位“1”。
图10是示出根据本公开的另一实施例的存储有映射段的控制器的示图。
参照图10,映射控制器(未示出)可以将映射段1和映射段2存储在映射存储器件1110中。日志数据存储器件1120可以存储如图9所示的日志数据1至日志数据4。如上参照图9所述,映射段位图表1130中与映射段编号1、映射段编号2、映射段编号3和映射段编号4相对应的位图可以处于设定状态。
在示例中,假设映射存储器件1110可以存储两个映射段。
映射控制器(未示出)可以向非易失性存储区域(未示出)提供映射读取命令MAP_READ,以便将映射段存储在映射存储器件1110中。非易失性存储区域(未示出)可以响应于映射读取命令MAP_READ而向控制器1100提供相应的映射段。映射控制器(未示出)可以将接收到的映射段存储在映射存储器件1110中。
在实施例中,映射控制器(未示出)可以向非易失性存储区域(未示出)提供映射读取命令MAP_READ,并将接收到的映射段1和接收到的映射段2存储在映射存储器件1110中。
如上参照图9所述,在实施例中,主机提供的LBA区域可以是LBA区域1(LBA 14至LBA 30)、LBA区域2(LBA 250至LBA 254)、LBA区域3(LBA 331至LBA 360)和LBA区域4(LBA131至LBA 140)。返回参照图10,示出了主机工作负载,其中由主机提供的LBA区域被划分为100个LBA单元。
存储在映射存储器件1110中的映射段1可以覆盖LBA区域(LBA 1至LBA 100)。因此,映射控制器(未示出)可以将映射段1存储在映射存储器件1110中,并且基于日志数据1来更新存储在映射存储器件1110中的映射段1。由主机提供的LBA区域1包括在LBA区域(LBA1至LBA 100)中,因此,映射控制器(未示出)可以基于映射段1将存储在日志数据存储器件1120中的日志数据反映在映射段1上。
类似地,存储在映射存储器件1110中的映射段2可以覆盖LBA区域(LBA101至LBA200)。因此,映射控制器(未示出)可以将映射段2存储在映射存储器件1110中,并且基于日志数据4来更新存储在映射存储器件1110中的映射段2。由主机提供的LBA区域4包括在LBA区域(LBA 101至LBA 200)中,因此,映射控制器(未示出)可以基于映射段2将存储在日志数据存储器件1120中的日志数据反映在映射段2上。
由于假设映射存储器件1110只能存储两个映射段,因此将对存储在映射存储器件1110中的映射段1和映射段2执行编程操作,以便将存储在日志数据存储器件1120中的日志数据2和日志数据3反映在映射段上。另外,将对映射段3和映射段4执行读取操作,从而将读取的数据存储在映射存储器件1110中。
如上所述,当映射存储器件1110可以存储的映射段的数量有限时,可以重复执行编程操作和读取操作以反映更新的映射信息。
图11是示出根据本公开的实施例的存储映射段的操作的示图。
参照图11,映射控制器(未示出)可以将映射段存储在映射存储器件1110中。
为了便于描述,假设映射存储器件1110可以存储三个映射段,并且一个映射段可以覆盖100个LBA。
控制器可以响应于主机提供的写入请求而将数据存储在与主机提供的LBA相对应的PBA区域中。映射控制器可以在日志数据存储器件1120中存储包括由主机提供的LBA的更新的映射信息的日志数据。
映射控制器可以响应于由主机提供的写入请求而将数据存储在与LBA区域1(LBA1至LBA50)相对应的PBA区域中,并且将包括LBA 1至LBA 50的更新的映射信息的日志数据1存储在日志数据存储器件1120中。类似地,映射控制器可以响应于由主机提供的写入请求而将数据存储在与LBA区域2(LBA 101至LBA150)相对应的PBA区域中,并且将包括LBA 101至LBA150的更新的映射信息的日志数据2存储在日志数据存储器件1120中。
每当存储在日志数据存储器件1120中的日志条目的数量变为由一个映射段覆盖的LBA的数量的N(N是正整数)倍时,映射控制器就可以计算比率。该比率可以是通过将存储在日志数据存储器件1120中的日志条目的数量除以脏映射段的数量而获得的值。
在实施例中,分别对应于LBA 1至LBA 50的50个日志条目和分别对应于LBA 101至LBA 150的另外50个日志条目可以存储在日志数据存储器件1120中。
因此,由一个映射段覆盖的LBA的数量为100,并且存储在日志数据存储器件1120中的日志条目的数量为100,即100的一倍。因此,N的值为1。因此,映射控制器可以计算比率。
映射控制器可以通过将存储在日志数据存储器件1120中的日志条目的数量除以脏映射段的数量来计算该比率。脏映射段的数量可以基于映射段位图表1130来获取。
在实施例中,映射控制器可以通过将存储在日志数据存储器件1120中的日志条目的数量100除以脏映射段的数量2来计算该比率。映射控制器可以基于映射段位图表1130对处于设定状态(位“1”)的位图的数量进行计数。也就是说,映射控制器可以对与映射段1和映射段2相对应的具有设定状态的位图的数量进行计数。映射控制器可以通过将日志条目的数量除以脏映射段的数量来计算该比率为50。
当N为1,并且计算出的比率等于或大于第一参考值时,映射控制器可以向非易失性存储区域1200提供映射读取命令MAP_READ,以将脏映射段存储在映射存储器件1110中。第一参考值可以是通过将由一个映射段覆盖的LBA的数量除以2得到的值。
在实施例中,由一个映射段覆盖的LBA的数量为100,并且100除以2得到的值为50。因此,第一参考值可以是50。
映射控制器可以将计算出的比率与第一参考值进行比较。由于计算出的比率是50,50等于或大于第一参考值,因此映射控制器可以将映射读取命令MAP_READ提供给非易失性存储区域1200。具体地,映射控制器可以向非易失性存储区域1200提供针对作为脏映射段的映射段1和映射段2的映射读取命令。映射控制器可以将非易失性存储区域1200响应于映射读取命令MAP_READ而提供的映射段1和映射段2存储在映射存储器件1110中。
映射控制器可以基于映射段位图表1130来检查处于设定状态的连续位图的数量。当处于设定状态的连续位图的数量等于或大于M(M是正数)时,映射控制器可以将与处于设定状态的连续位图的下一位图相对应的映射段预先存储到映射存储器件1110中。映射控制器可以向非易失性存储区域1200提供针对与处于设定状态的连续位图的下一位图相对应的映射段的映射读取命令MAP_READ。
在实施例中,M的值可以是2。
在实施例中,当向非易失性存储区域1200提供针对映射段1和映射段2的映射读取命令MAP_READ时,映射控制器可以检查处于设定状态的连续位图的数量。映射控制器可以检查出与映射段1相对应的位图处于设定状态并且与映射段2相对应的位图处于设定状态。由于处于设定状态的连续位图的数量等于或大于M的值2,因此映射控制器可以向非易失性存储区域1200提供映射读取命令MAP_READ以读取映射段3,映射段3是与处于设定状态的连续位图的下一位图相对应的映射段。映射控制器可以将非易失性存储区域1200响应于映射读取命令MAP_READ而提供的映射段3存储在映射存储器件1110中。
然而,本公开不限于本实施例,并且待附加读取的映射段的数量也可以根据映射存储器件的容量而变化。
图12是示出根据本公开的实施例的所需的连续脏映射段的数量的示图。
映射控制器可以存储非易失性存储区域中存储的映射段之中的一些映射段。当包括关于由主机提供的LBA的映射信息的映射段没有存储在映射存储器件中时,映射控制器将向非易失性存储区域提供映射读取命令以对映射段执行读取操作。而且,为了确保映射存储器件的空间,映射控制器将向非易失性存储区域提供编程命令,以将反映更新的映射信息的映射段编程到非易失性存储区域中。
如上参照图11所述,当处于设定状态的连续位图出现M(M是正数)次或更多次时,映射控制器可以将包括关于预计由主机提供的LBA的映射信息的映射段预先存储到映射存储器件中。
参照图12,在映射存储器件中预先存储包括关于预计由主机提供的LBA的映射信息的映射段所需的处于设定状态的连续位图的数量M的值可以根据映射存储器件的容量而变化。
例如,假设映射存储器件可以存储相对较多数量的映射段。尽管在处于设定状态的后续连续位图的数量较少的状态下,映射存储器件存储与处于设定状态的后续连续位图相对应的映射段,但是映射存储器件可以保留剩余容量。
相反,假设映射存储器件可以存储相对较少数量的映射段。当在处于设定状态的后续连续位图的数量较少的状态下映射存储器件另外存储与处于设定状态的后续连续位图相对应的映射段时,映射存储器件可能不会保留任何剩余容量。当没有从主机输入与另外存储的映射段相对应的LBA时,另外存储的映射段将被重新编程到非易失性存储区域中。
因此,为了防止出现不必要的延迟,表示处于设定状态的连续位图的数量M的值将随着映射存储器件的容量变小而增大。也就是说,当确定由主机提供的LBA是连续的时,映射控制器可以预先存储预计的映射段。
图13是示出根据本公开的实施例的不存储脏映射段的操作的示图。
参照图13,映射控制器可以不在映射存储器件1110中存储映射段。
为了便于描述,假设映射存储器件1110可以存储两个映射段,并且一个映射段可以覆盖100个LBA。
控制器可以响应于由主机提供的写入请求而将数据存储在与由主机提供的LBA相对应的PBA区域中。映射控制器可以将包括由主机提供的LBA的更新的映射信息的日志数据存储到日志数据存储器件1120中。
映射控制器可以响应于主机提供的写入请求而将数据存储在与LBA区域1(LBA1至LBA50)相对应的PBA区域中,并且将包括LBA 1至LBA50的更新的映射信息的日志数据1存储在日志数据存储器件1120中。
映射控制器可以响应于主机提供的写入请求而将数据存储在与LBA区域2(LBA101至LBA 125)相对应的PBA区域中,并且将包括LBA101至LBA 125的更新的映射信息的日志数据2存储在日志数据存储器件1120中。
映射控制器可以响应于主机提供的写入请求而将数据存储在与LBA区域3(LBA301至LBA 325)相对应的PBA区域中,并且将包括LBA301至LBA 325的更新的映射信息的日志数据3存储在日志数据存储器件1120中。
每当存储在日志数据存储器件1120中的日志条目的数量变为由一个映射段覆盖的LBA的数量的N(N是正整数)倍时,映射控制器可以计算比率。该比率可以是通过将存储在日志数据存储器件1120中的日志条目的数量除以脏映射段的数量而获得的值。
在实施例中,分别对应于LBA1至LBA50的50个日志条目、分别对应于LBA 101至LBA125的25个日志条目以及分别对应于LBA301至LBA325的25个日志条目可以存储在日志数据存储器件1120中。
也就是说,由一个映射段覆盖的LBA的数量为100,并且存储在日志数据存储器件1120中的日志条目的数量为100,即100的一倍。因此,N的值为1。因此,映射控制器可以计算比率。
映射控制器可以通过将存储在日志数据存储器件1120中的日志条目的数量除以脏映射段的数量来计算该比率。脏映射段的数量可以基于映射段位图表1130来获取。
在实施例中,映射控制器可以通过将存储在日志数据存储器件1120中的日志条目的数量100除以脏映射段的数量3来计算该比率。映射控制器可以基于映射段位图表1130对处于设定状态(位“1”)的位图的数量进行计数。也就是说,映射控制器可以对与映射段1、映射段2和映射段4相对应的具有设定状态的位图的数量进行计数。映射控制器可以通过将日志条目的数量除以脏映射段的数量来计算该比率为33。
当N为1,并且计算出的比率小于第一参考值时,映射控制器可以不将脏映射段存储在映射存储器件1110中。第一参考值可以是通过将一个映射段覆盖的LBA的数量除以2得到的值。
在实施例中,一个映射段覆盖的LBA的数量为100,并且100除以2得到的值为50。因此,第一参考值可以是50。
映射控制器可以将计算出的比率与第一参考值进行比较。由于映射控制器计算出的比率是33,33小于第一参考值,因此映射控制器可以不向非易失性存储区域1200提供映射读取命令MAP_READ。
当N为1,并且计算出的比率小于第一参考值时,映射控制器不将脏映射段存储在映射存储器件1110中,但是可以响应于由主机提供的写入请求而将包括由主机提供的LBA的更新的映射信息的日志数据继续存储到日志数据存储器件1120中。
映射控制器可以将日志数据存储在日志数据存储器件1120中,直到N变成2。当N变为2时,映射控制器可以重新计算比率。例如,当200个日志条目存储在日志数据存储器件1120中时,映射控制器可以计算比率。
图14是示出根据本公开的实施例的存储脏映射段的操作的示图。
参照图14,映射控制器可以另外将日志数据4和日志数据5存储在图13所示的日志数据存储器件1120中。
如上参照图13所述,映射控制器不在映射存储器件1110中存储映射段,但是可以响应于主机提供的写入请求而将包括由主机提供的LBA的更新的映射信息的日志数据继续存储到日志数据存储器件1120中。
为了便于描述,假设映射存储器件1110可以存储两个映射段,并且一个映射段可以覆盖100个LBA。
映射控制器可以响应于由主机提供的写入请求而将数据存储在与LBA区域4(LBA51至LBA100)相对应的PBA区域中,并且将包括LBA51至LBA 100的更新的映射信息的日志数据4存储在日志数据存储器件1120中。
映射控制器可以响应于由主机提供的写入请求而将数据存储在与LBA区域5(LBA401至LBA 450)相对应的PBA区域中,并且将包括LBA 401至LBA 450的更新的映射信息的日志数据5存储在日志数据存储器件1120中。
每当存储在日志数据存储器件1120中的日志条目的数量变为由一个映射段覆盖的LBA的数量的N(N是正整数)倍时,映射控制器可以计算比率。该比率可以是通过将存储在日志数据存储器件1120中的日志条目的数量除以脏映射段的数量而获得的值。
在实施例中,分别对应于LBA 1至LBA 50的50个日志条目、分别对应于LBA 101至LBA 125的25个日志条目、分别对应于LBA 301至LBA 325的25个日志条目、分别对应于LBA51至LBA 100的50个日志条目以及分别对应于LBA 401至LBA 450的50个日志条目可以存储在日志数据存储器件1120中。
也就是说,由一个映射段覆盖的LBA的数量为100,并且存储在日志数据存储器件1120中的日志条目的数量为200,即100的两倍。因此,N的值为2。因此,映射控制器可以计算比率。
映射控制器可以通过将存储在日志数据存储器件1120中的日志条目的数量除以脏映射段的数量来计算该比率。脏映射段的数量可以基于映射段位图表1130来获取。
在实施例中,映射控制器可以通过将存储在日志数据存储器件1120中的日志条目的数量200除以脏映射段的数量4来计算该比率。映射控制器可以基于映射段位图表1130对处于设定状态(位“1”)的位图的数量进行计数。也就是说,映射控制器可以对与映射段1、映射段2、映射段4和映射段5相对应的具有设定状态的位图的数量进行计数。映射控制器可以通过将日志条目的数量除以脏映射段的数量来计算该比率为50。
当N为2,并且计算出的比率等于或大于第二参考值时,映射控制器可以向非易失性存储区域提供映射读取命令MAP_READ,以将脏映射段存储在映射存储器件1110中。
第二参考值可以是小于第一参考值的值。例如,第二参考值可以是通过将一个映射段覆盖的LBA的数量除以4得到的值。在另一示例中,第二参考值可以是通过将一个映射段覆盖的LBA的数量除以3得到的值。
例如,当假设第二参考值是通过将由一个映射段覆盖的LBA的数量除以4得到的值时,第二参考值可以是通过将100除以4得到的值25。在另一示例中,当假设第二参考值是通过将由一个映射段覆盖的LBA的数量除以3得到的值时,第二参考值可以是通过将100除以3得到的值33。
映射控制器可以将计算出的比率与第二参考值进行比较。由于计算出的比率是50,50等于或大于第二参考值,因此映射控制器可以将映射读取命令MAP_READ提供给非易失性存储区域1200。
在实施例中,映射控制器可以向非易失性存储区域提供针对作为脏映射段的映射段1和映射段2的映射读取命令MAP_READ。映射控制器可以将非易失性存储区域1200响应于映射读取命令MAP_READ而提供的映射段1和映射段2存储在映射存储器件1110中。映射存储器件可以基于映射段位图表1130按照升序存储脏映射段。
映射存储器件可以基于日志数据存储器件1120中存储的日志数据1、日志数据2和日志数据4来更新映射段。在实施例中,映射存储器件可以基于日志数据存储器件1120中存储的日志条目来更新映射段1和映射段2中包括的映射信息。
当更新映射段1和映射段2中包括的映射信息时,映射控制器可以向非易失性存储区域1200提供针对映射段1和映射段2的编程命令。更新的映射段1和更新的映射段2可以存储在非易失性存储区域1200中。特别地,如图1所示,更新的映射段1和更新的映射段2可以存储在映射数据存储区域1210中。
在实施例中,映射控制器可以向非易失性存储区域1200提供针对作为脏映射段的映射段4和映射段5的映射读取命令MAP_READ。映射控制器可以响应于映射读取命令MAP_READ而将映射段4和映射段5存储在映射存储器件1110中。
映射存储器件可以基于日志数据存储器件1120中存储的日志数据3和日志数据5来更新映射段。在实施例中,映射存储器件可以基于日志数据存储器件1120中存储的日志条目来更新映射段4和映射段5中包括的映射信息。
当更新映射段4和映射段5中包括的映射信息时,映射控制器可以向非易失性存储区域1200提供针对映射段4和映射段5的编程命令。更新的映射段4和更新的映射段5可以存储在非易失性存储区域1200中。特别地,如图1所示,更新的映射段4和更新的映射段5可以存储在映射数据存储区域1210中。
映射控制器可以基于日志数据中包括的日志条目来更新脏映射段,然后更新映射段位图表1130。当更新脏映射段时,映射控制器可以将与更新的脏映射段相对应的位图更新为处于释放状态。对应于释放状态的位图可以表示位“0”。
在实施例中,当通过将日志数据1和日志数据4反映在映射段1上来更新映射段1时,映射存储器件可以将与映射段1相对应的位图更新为处于释放状态。与映射段1相对应的位图可以改变为位“0”。
在实施例中,当通过将日志数据2反映在映射段2上来更新映射段2时,映射存储器件可以将与映射段2相对应的位图更新为处于释放状态。与映射段2相对应的位图可以改变为位“0”。
在实施例中,当通过将日志数据3反映在映射段4上来更新映射段4时,映射存储器件可以将与映射段4相对应的位图更新为处于释放状态。与映射段4相对应的位图可以改变为位“0”。
在实施例中,当通过将日志数据5反映在映射段5上来更新映射段5时,映射存储器件可以将与映射段5相对应的位图更新为处于释放状态。与映射段5相对应的位图可以改变为位“0”。
图15是示出根据本公开的实施例的将脏映射段存储在主机存储缓冲器和映射存储器件中的操作的示图。
参照图15,映射控制器可以将映射段存储在映射存储器件1110和主机存储缓冲器110中。
如上参照图13所述,每当存储在日志数据存储器件1120中的日志条目的数量变为由一个映射段覆盖的LBA的数量的N(N是正整数)倍时,映射控制器可以计算比率。该比率可以是通过将存储在日志数据存储器件1120中的日志条目的数量除以脏映射段的数量而获得的值。
参照图15,分别对应于LBA 1至LBA 30的30个日志条目、分别对应于LBA101至LBA120的20个日志条目、分别对应于LBA201至LBA 210的10个日志条目以及分别对应于LBA301至LBA 340的40个日志条目可以存储在日志数据存储器件1120中。
由一个映射段覆盖的LBA的数量为100,并且存储在日志数据存储器件1120中的日志条目的数量为100,即100的一倍。因此,N的值为1。因此,映射控制器可以计算该比率。
映射控制器可以通过将存储在日志数据存储器件1120中的日志条目的数量除以脏映射段的数量来计算该比率。脏映射段的数量可以基于映射段位图表1130来获取。
在实施例中,映射控制器可以通过将存储在日志数据存储器件1120中的日志条目的数量100除以脏映射段的数量4来计算该比率。映射控制器可以基于映射段位图表1130对处于设定状态(位“1”)的位图的数量进行计数。也就是说,映射控制器可以对与映射段1、映射段2、映射段3和映射段4相对应的具有设定状态的位图的数量进行计数。映射控制器可以通过将日志条目的数量除以脏映射段的数量来计算该比率为25。
当N为1,并且计算出的比率等于或大于第三参考值时,映射控制器可以向非易失性存储区域1200提供映射读取命令MAP_READ,以将脏映射段存储在映射存储器件1110和主机存储缓冲器110中。第三参考值可以是通过将由一个映射段覆盖的LBA的数量除以4得到的值。
在实施例中,由一个映射段覆盖的LBA的数量为100,并且由一个映射段覆盖的LBA的数量除以4得到的值为25。因此,第三参考值可以为25。
映射控制器可以将计算出的比率与第三参考值进行比较。由于计算出的比率是25,25等于或大于第三参考值,因此映射控制器可以将映射读取命令MAP_READ提供给非易失性存储区域1200。在实施例中,映射控制器可以向非易失性存储区域1200提供针对作为脏映射段的映射段1至映射段4的映射读取命令。
映射控制器可以确定待存储在映射存储器件1110中的映射段和待存储在主机缓冲存储器110中的映射段。将参照图16描述确定待存储在主机存储缓冲器110中的映射段的方法。
映射控制器可以将非易失性存储区域1200响应于映射读取命令MAP_READ而提供的映射段1和映射段4存储在映射存储器件1110中。
映射控制器可以将非易失性存储区域1200响应于映射读取命令MAP_READ而提供的映射段2和映射段3提供给主机100以存储在主机存储缓冲器110中。
图16是示出根据本公开的实施例的确定待存储在主机存储缓冲器和映射存储器件中的脏映射段的过程的示图。
映射控制器可以将脏映射段之中包括大量日志条目的脏映射段存储在映射存储器件1110中。
在本说明书中,脏映射段可以根据待更新的LBA区域的大小相对地分为热段和冷段。热段可以是在由相应的映射段覆盖的LBA区域中待更新的LBA区域较大的映射段。类似地,冷段可以是在相应的映射段所覆盖的LBA区域中待更新的LBA区域较小的映射段。可以基于待更新的映射条目的数量来划分热段和冷段。
在实施例中,由于映射段1覆盖的LBA区域是LBA 1至LBA100,因此日志数据1中包括的LBA1至LBA30可以被覆盖。也就是说,映射段1包括关于30个日志条目的映射信息。换言之,映射段1可以处于30个映射条目将被更新的状态。
类似地,由于映射段2覆盖的LBA区域是LBA101至LBA 200,因此日志数据2中包括的LBA 101至LBA 120可以被覆盖。也就是说,映射段2包括关于20个日志条目的映射信息。换言之,映射段2可以处于20个映射条目将被更新的状态。
类似地,由于映射段3覆盖的LBA区域是LBA201至LBA 300,因此日志数据3中包括的LBA 201至LBA 210可以被覆盖。也就是说,映射段3包括关于10个日志条目的映射信息。换言之,映射段3可以处于10个映射条目将被更新的状态。
类似地,由于映射段4覆盖的LBA区域是LBA 301至LBA 400,因此日志数据4中包括的LBA 301至LBA 340可以被覆盖。也就是说,映射段4包括关于40个日志条目的映射信息。换言之,映射段4可以处于40个映射条目将被更新的状态。
由于作为脏映射段的映射段1至映射段4中待更新的映射条目的数量分别为30、20、10和40,因此待更新的映射条目数量最多的映射段4相对可以是热段。另外,待更新的映射条目的数量最少的映射段3相对可以是冷段。映射控制器可以基于每个脏映射段覆盖的LBA的数量来确定待存储在映射存储器件1110中的映射段。映射控制器可以优先将脏映射段之中的热段存储在映射存储器件1110中。
当假设两个映射段可以存储在映射存储器件1110中时,映射控制器可以确定待存储在映射存储器件1110中的两个映射段。
在实施例中,映射控制器可以将覆盖的LBA的数量最多的映射段4和覆盖的LBA的数量次多的映射段1存储在映射存储器件1110中。
当映射控制器不能在映射存储器件1110中存储任何脏映射段时,映射控制器可以向主机提供脏映射段以将脏映射段存储在主机存储缓冲器110中。
在实施例中,映射控制器可以向主机提供覆盖的LBA的数量较少的映射段2和覆盖的LBA的数量最小的映射段3,以将映射段2和映射段3存储在主机缓冲存储器110中。
图17是示出根据本公开的实施例的控制器的操作的流程图。
在步骤S1701中,控制器可以响应于由主机提供的写入请求而将数据存储在与由主机提供的LBA相对应的PBA区域中,并且存储日志数据,该日志数据包括由主机提供的LBA的更新的映射信息。日志数据可以是作为一个逻辑地址的更新的映射信息的一组日志条目。
在步骤S1703中,控制器可以更新表示脏映射段的映射段位图表。控制器可以获取日志数据存储器件中存储的日志条目中包括的逻辑地址,并且将包括关于所获取的逻辑地址的映射信息的映射段确定为脏映射段。控制器可以将与脏映射段相对应的位图更新为处于设定状态。处于设定状态的位图可以是位“1”。
在步骤S1705中,控制器可以计算脏映射段的数量相对于日志条目的数量的比率。每当日志条目的数量变为由一个映射段覆盖的LBA的数量的N(N是正整数)倍时,控制器就可以计算该比率。控制器可以基于映射段位图表对处于设定状态的位图的数量进行计数。控制器可以通过将日志条目的数量除以脏映射段的数量来计算比率。
控制器可以将计算出的比率与第一参考值进行比较。当N为1时,控制器可以检查计算出的比率是否等于或大于第一参考值。当计算出的比率小于第一参考值时,控制器可以重新存储由主机提供的日志数据(S1701)。第一参考值可以是通过将一个映射段中包括的映射条目的数量除以2获得的值。
在步骤S1707中,当计算出的比率等于或大于第一参考值时,控制器可以读取脏映射段。控制器可以基于映射段位图表检查脏映射段,并向非易失性存储区域提供映射读取命令以读取所检查的脏映射段。
图18是示出根据本公开的另一实施例的控制器的操作的流程图。
在步骤S1801中,控制器可以读取脏映射段。脏映射段可以是待基于日志数据更新的映射段。控制器可以基于映射段位图表检查脏映射段,并向非易失性存储区域提供映射读取命令以读取所检查的脏映射段。
在实施例中,步骤S1801可以与上面参照图17描述的步骤S1707相同。
在步骤S1803中,控制器可以基于映射段位图表来检查脏映射段的连续性。控制器可以检查连续出现的脏映射段的数量。例如,控制器可以基于映射段位图表来检查处于设定状态的位图是否出现M(M是正整数)次。M的值是预定值,并且可以根据设计而变化。
在实施例中,当处于设定状态的位图在映射段位图表中出现M次时,在步骤S1805中,控制器可以进一步读取与脏映射段连续的映射段。也就是说,控制器可以读取与处于释放状态的位图相对应的映射段,处于释放状态的该位图为处于设定状态的位图的下一位图,处于设定状态的该位图在映射段位图表中连续出现M次。
图19是示出根据本公开的另一实施例的控制器的操作的流程图。
在步骤S1901中,控制器可以响应于由主机提供的写入请求而将数据存储在与主机提供的LBA相对应的PBA区域中,并且存储日志数据,该日志数据包括由主机提供的LBA的更新的映射信息。日志数据可以是作为一个逻辑地址的更新的映射信息的一组日志条目。
在步骤S1903中,控制器可以更新表示脏映射段的映射段位图表。控制器可以获取日志数据存储器件中存储的日志条目中包括的逻辑地址,并且将包括关于所获取的逻辑地址的映射信息的映射段确定为脏映射段。控制器可以将与脏映射段相对应的位图更新为处于设定状态。处于设定状态的位图可以是位“1”。
在步骤S1905中,控制器可以计算脏映射段的数量相对于日志条目的数量的比率。每当日志条目的数量变为由一个映射段覆盖的LBA的数量的N(N是正整数)倍时,控制器就可以计算该比率。控制器可以基于映射段位图表对处于设定状态的位图的数量进行计数。控制器可以通过将日志条目的数量除以脏映射段的数量来计算比率。
控制器可以将计算出的比率与第三参考值进行比较。当N为1时,控制器可以检查计算出的比率是否等于或大于第三参考值。当计算出的比率小于第三参考值时,控制器可以重新存储由主机提供的日志数据(S1901)。第三参考值可以是通过将一个映射段中包括的映射条目的数量除以4获得的值。
在步骤S1907中,控制器可以计算由每个脏映射段覆盖的日志条目的数量。具体地,控制器可以比较由各个脏映射段覆盖的日志条目的数量,从而确定所覆盖的日志条目的数量较少的映射段存储在主机存储缓冲器中。
在步骤S1909中,控制器可以将覆盖的LBA区域较大的脏映射段存储在映射存储器件中。
在步骤S1911中,控制器可以将覆盖的LBA区域较小的脏映射段存储在主机存储缓冲器中。在实施例中,控制器可以比较由各个脏映射段覆盖的日志条目的数量,从而向主机提供映射段以将覆盖的日志条目的数量较少的映射段存储在主机存储缓冲器中。
在实施例中,步骤S1909和S1911可以同时执行。
图20是示出根据本公开的实施例的存储装置的操作的流程图。
在步骤S2001中,存储装置可以确定待存储的脏映射段的数量的最大值。可以基于供电电路的容量来确定待存储的脏映射段的数量的最大值。待存储的脏映射段的数量的最大值可以是基于供电电路响应于突然断电而提供的电力而将被存储在非易失性存储区域中的映射段的数量的最大值。
在步骤S2003中,存储装置可以存储日志数据,该日志数据包括由主机提供的逻辑地址的更新的映射信息。日志数据可以是作为一个逻辑地址的更新的映射信息的一组日志条目。
在步骤S2005中,存储装置可以确定待读取的脏映射段。存储装置可以将通过将日志条目的数量除以脏映射段的数量所获得的比率与参考值进行比较,从而确定待读取的脏映射段。
在步骤S2007中,存储装置可以读取脏映射段。读取的脏映射段可以是待基于日志条目更新的映射段。
在步骤S2009中,存储装置可以检查读取的脏映射段的数量是否与所确定的最大值一致。存储装置可以读取脏映射段,直到读取的脏映射段的数量变得等于所确定的最大值(S2003至S2007)。
在步骤S2011中,存储装置可以基于日志数据更新所存储的脏映射段。存储装置可以基于日志条目来更新脏映射段中包括的映射条目。例如,存储装置可以基于日志条目来改变映射条目中包括的PBA。
在步骤S2013中,存储装置可以将更新的映射段存储在非易失性存储区域中。
图21是示出根据本公开的实施例的应用了存储装置的用户系统的示图。
参照图21,用户系统4000包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以驱动用户系统4000中包括的组件、操作系统(OS)、用户程序等。作为示例,应用处理器4100可以包括用于控制用户系统4000中包括的组件的控制器、接口、图形引擎等。应用处理器4100可以被设置为片上系统(SoC)。
存储器模块4200可以作为用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器进行操作。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3 SDRAM、LPDDR SDRAM、LPDDR2 SDRAM或LPDDR3 SDRAM的易失性随机存取存储器,或者诸如PRAM、ReRAM、MRAM或FRAM的非易失性随机存取存储器。示例性地,应用处理器4100和存储器模块4200可以基于堆叠封装(POP)进行封装以作为一个半导体封装提供。
网络模块4300可以与外部装置通信。示例性地,网络模块4300可以支持诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、Wimax、WLAN、UWB、蓝牙与Wi-Fi的无线通信。作为示例,网络模块4300可以包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。可选地,存储模块4400可以将存储在其中的数据传输到应用处理器4100。作为示例,存储模块4400可以通过诸如以下的非易失性半导体存储器装置来实施:相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪存、NOR闪存或具有三维结构的NAND闪存。作为示例,存储模块4400可以被设置为诸如用户系统4000的存储卡的可移动驱动器或外部驱动器。
示例性地,存储模块4400可以包括多个非易失性存储器装置,并且多个非易失性存储器装置可以与参照图1描述的非易失性存储区域1200相同地操作。存储模块4400可以以与参照图1描述的存储装置1000相同的方式进行操作。
用户接口4500可以包括将数据或命令输入到应用处理器4100或者将数据输出到外部装置的接口。示例性地,用户接口4500可以包括诸如以下的用户输入接口:键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件。用户接口4500可以包括诸如以下的用户输出接口:液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监控器。
所公开的技术的一些实施方案提供一种能够有效地使用电子装置的映射高速缓存区域的电子装置。
尽管已经参考本公开的某些示例性实施例示出和描述了本公开,但是本领域技术人员将理解的是,可以进行各种改变。
在文件中公开的实施例仅是为了促进对本公开的理解的示例,并且所公开的技术不限于此。
虽然上面已经描述了各个实施例,但是可以基于在本文件中描述或图示的内容来得到所公开的实施例和其它实施例的变型和改进。
Claims (19)
1.一种存储装置,包括:
非易失性存储区域,存储包括一个或多个映射条目的信息的多个映射段,所述一个或多个映射条目的信息表示由外部装置提供的逻辑地址和与所述逻辑地址相对应的物理地址之间的映射信息;
易失性存储区域,临时存储日志数据,所述日志数据包括跟踪所述映射信息的变化以能够更新所述映射信息的信息;以及
控制器,与所述非易失性存储区域和所述易失性存储区域通信并且对存储更新的映射信息的第一映射段的数量进行计数,并根据所述日志数据中包括的逻辑地址的数量与所述第一映射段的数量的比率来更新所述非易失性存储区域中的映射信息。
2.根据权利要求1所述的存储装置,其中,所述易失性存储区域包括:
日志数据存储器件,存储用于反映所述映射信息的变化的日志数据;
映射存储器件,临时存储所述第一映射段;以及
位图表,表示所述多个映射段中的每一个是否将被更新。
3.根据权利要求1所述的存储装置,其中,所述控制器包括映射控制器,所述映射控制器基于所述日志数据中包括的逻辑地址来更新与所述第一映射段相对应的位图,并且基于所述日志数据来更新所述第一映射段。
4.根据权利要求3所述的存储装置,其中,所述映射控制器基于所述日志数据中包括的逻辑地址将所述位图改变为设定状态,所述位图对应于所述第一映射段,与所述日志数据中包括的逻辑地址相对应的映射信息属于所述第一映射段。
5.根据权利要求4所述的存储装置,其中,在与所述第一映射段相对应的位图已经改变为所述设定状态的状态下另外存储属于所述第一映射段的日志数据的情况下,所述映射控制器不更新与所述第一映射段相对应的位图。
6.根据权利要求4所述的存储装置,其中,每当所述日志数据存储器件中存储的日志条目的数量变为由一个映射段覆盖的逻辑地址的数量的N倍时,所述映射控制器计算所述比率,N是正整数。
7.根据权利要求6所述的存储装置,其中,当N等于1并且所述比率等于或大于第一参考值时,所述映射控制器控制所述非易失性存储区域将与被更新为所述设定状态的位图相对应的第一映射段存储在所述映射存储器件中。
8.根据权利要求6所述的存储装置,其中,当N等于1并且所述比率小于第一参考值时,所述映射控制器将由所述外部装置提供的日志数据存储在所述日志数据存储器件中,直到N变为2。
9.根据权利要求8所述的存储装置,其中,当N等于2并且所述比率等于或大于第二参考值时,所述映射控制器控制所述非易失性存储区域将与更新为所述设定状态的位图相对应的第一映射段存储在所述映射存储器件中。
10.根据权利要求9所述的存储装置,其中,所述第二参考值是小于所述第一参考值的值。
11.一种操作存储器装置的控制器,包括:
日志数据存储器件,存储日志条目,所述日志条目用于反映存储数据的存储器装置中的物理地址与所述数据的对应逻辑地址之间的映射的变化;
映射段位图表,通过使用分别指示设定状态和释放状态的第一值和第二值来表示映射段的状态,所述映射段位图表用于识别具有所述设定状态并且将基于所述日志条目更新的第一映射段;
映射存储器件,存储所述第一映射段;并且
映射控制器,基于所述映射段位图表存储所述第一映射段和第二映射段,所述映射段位图表包括与所述第一映射段相对应的M个连续设定状态,其中所述第二映射段对应于状态值紧接着所述映射段位图表中所述第一映射段的状态值出现的映射段,M为正整数。
12.根据权利要求11所述的控制器,其中,M的值与所述映射存储器件的容量成反比。
13.一种电子装置,包括:
主机,包括主机存储缓冲器;以及
存储装置,与所述主机通信,以基于比率将包括映射段的数据存储在所述主机存储缓冲器中,其中,每个映射段覆盖由所述主机提供的相应逻辑地址区域,所述比率指示覆盖所述逻辑地址区域的映射段的数量相对于所述逻辑地址区域的大小。
14.根据权利要求13所述的电子装置,其中,所述存储装置包括:
非易失性存储区域,存储多个映射段,所述多个映射段包括由所述主机提供的逻辑地址和用于存储与所述逻辑地址相关联的数据的位置的物理地址之间的映射信息;
日志数据存储器件,存储包括由所述主机提供的逻辑地址的更新的映射信息的日志数据;
位图表,表示待基于所述日志数据更新的第一映射段;
映射存储器件,存储映射段;以及
映射控制器,计算所述比率,并与所述主机通信以根据通过计算所述比率获得的结果将所述第一映射段存储在所述主机存储缓冲器和所述映射存储器件中。
15.根据权利要求14所述的电子装置,其中,每当由所述主机提供的逻辑地址区域的大小变为由一个映射段覆盖的逻辑地址区域的大小的N倍时,所述映射控制器计算所述比率,N是正整数。
16.根据权利要求15所述的电子装置,其中,当N为1并且所述比率等于或大于第三参考值时,所述映射控制器控制所述非易失性存储区域将所述第一映射段中的一些存储在所述映射存储器件中。
17.根据权利要求16所述的电子装置,其中,所述映射控制器与所述主机通信,以将与由所述主机提供的逻辑地址区域之中由所述第一映射段覆盖的区域最小的逻辑地址区域相对应的第一映射段存储在所述主机存储缓冲器中。
18.根据权利要求17所述的电子装置,其中,所述映射控制器基于所述位图表检查所述第一映射段的连续性,并在所述第一映射段连续出现M次时,与所述主机通信以将连续的第一映射段的下一映射段存储在所述主机存储缓冲器中,M是正整数。
19.根据权利要求18所述的电子装置,其中,M的值与所述映射存储器件的容量成反比。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020230013681A KR20240120996A (ko) | 2023-02-01 | 2023-02-01 | 저장 장치 및 컨트롤러를 포함하는 전자 장치 및 이의 동작 방법 |
KR10-2023-0013681 | 2023-02-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118426679A true CN118426679A (zh) | 2024-08-02 |
Family
ID=91964526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311395011.XA Pending CN118426679A (zh) | 2023-02-01 | 2023-10-26 | 包括存储装置和控制器的电子装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240256177A1 (zh) |
KR (1) | KR20240120996A (zh) |
CN (1) | CN118426679A (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150106132A (ko) * | 2014-03-11 | 2015-09-21 | 삼성전자주식회사 | 전자 장치의 캐시 메모리 제어 방법 및 장치 |
KR20190087217A (ko) * | 2018-01-16 | 2019-07-24 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US11422942B2 (en) * | 2019-04-02 | 2022-08-23 | SK Hynix Inc. | Memory system for utilizing a memory included in an external device |
US11269737B2 (en) * | 2019-09-16 | 2022-03-08 | Microsoft Technology Licensing, Llc | Incrementally updating recovery map data for a memory system |
KR102456176B1 (ko) * | 2020-05-21 | 2022-10-19 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR102495910B1 (ko) * | 2020-04-13 | 2023-02-06 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
US11755476B2 (en) * | 2020-04-13 | 2023-09-12 | SK Hynix Inc. | Memory controller, storage device including the memory controller, and method of operating the memory controller and the storage device |
KR102406449B1 (ko) * | 2020-06-25 | 2022-06-08 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
-
2023
- 2023-02-01 KR KR1020230013681A patent/KR20240120996A/ko unknown
- 2023-07-27 US US18/360,139 patent/US20240256177A1/en active Pending
- 2023-10-26 CN CN202311395011.XA patent/CN118426679A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240256177A1 (en) | 2024-08-01 |
KR20240120996A (ko) | 2024-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11360707B2 (en) | Memory controller for replacing bad blocks with reserved blocks and operating method thereof | |
KR20210126984A (ko) | 스토리지 장치 및 그 동작 방법 | |
US11561785B2 (en) | Storage device and method of operating the same | |
KR20210113905A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
CN111913556A (zh) | 储存装置及储存装置的操作方法 | |
CN114579475A (zh) | 电子系统及其操作方法 | |
KR20230037240A (ko) | 호스트 장치, 메모리 컨트롤러 및 이를 포함하는 컴퓨팅 시스템 | |
CN114115708A (zh) | 存储装置及其操作方法 | |
CN115390746A (zh) | 主机设备、存储设备以及电子设备 | |
US11474723B2 (en) | Storage device and operating method thereof | |
US11561712B2 (en) | Storage device and method of operating the same | |
US20220114087A1 (en) | Storage device and method of operating the same | |
JP2022074016A (ja) | ストレージシステム | |
CN114356209A (zh) | 存储装置及其操作方法 | |
CN114115709A (zh) | 存储器控制器及其操作方法 | |
US20220083258A1 (en) | Storage device and method of operating the storage device | |
CN115576869A (zh) | 存储装置及其操作方法 | |
CN115454886A (zh) | 存储装置及其操作方法 | |
KR20220111566A (ko) | 메모리 컨트롤러 및 이를 포함하는 저장 장치 | |
KR20220066688A (ko) | 스토리지 장치 및 그 동작 방법 | |
KR20220005322A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
US20240256177A1 (en) | Electronic device including storage device and controller and operating method thereof | |
US11841795B2 (en) | Storage device for setting a flag in a mapping table according to a sequence number and operating method thereof | |
TW202433299A (zh) | 包括儲存裝置和控制器的電子裝置及其操作方法 | |
US11726694B2 (en) | Storage device and operating method thereof |
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 |