存储器控制器及操作其的方法
[0001]
相关申请的交叉引用
[0002]
本申请要求于2019年7月26日提交的申请号为10-2019-0091200的韩国专利申请的优先权,其全部内容通过引用整体并入本文。
技术领域
[0003]
本公开涉及一种电子装置,并且更具体地,涉及一种存储器控制器及操作其的方法。
背景技术:[0004]
存储装置是一种在诸如计算机或智能电话的主机装置的控制下存储数据的装置。存储装置可以包括其中存储数据的存储器装置和控制该存储器装置的存储器控制器。存储器装置分为易失性存储器装置和非易失性存储器装置。
[0005]
易失性存储器装置是一种仅在供电时存储数据而在断电时丢失存储的数据的装置。易失性存储器装置包括静态随机存取存储器(sram)、动态随机存取存储器(dram)等。
[0006]
非易失性存储器装置是一种即使切断电源也不丢失数据的装置。非易失性存储器装置包括只读取存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)、闪速存储器等。
技术实现要素:[0007]
本公开的实施例提供了一种具有改进的映射更新性能的存储器控制器及操作其的方法。
[0008]
根据本公开的实施例,一种存储器控制器控制存储器装置,该存储器装置存储指示数据的逻辑地址和物理地址之间的映射关系的逻辑到物理映射数据。存储器控制器包括映射数据储存器和映射数据管理器。映射数据储存器存储基于与从主机接收的请求对应的逻辑地址生成的物理到逻辑(p2l)映射数据。映射数据管理器根据映射数据储存器中存储的p2l映射数据的数量,通过使用映射数据储存器中存储的全部p2l映射数据中的一些p2l映射数据来对l2p映射数据执行映射更新操作。
[0009]
根据本公开的实施例,一种操作存储器控制器的方法,该存储器控制器控制存储器装置且包括映射数据储存器,该存储器装置存储指示数据的逻辑地址和物理地址之间的映射关系的逻辑到物理映射数据,该方法包括:将基于与从主机接收的请求对应的逻辑地址生成的物理到逻辑(p2l)映射数据存储在映射数据储存器中;并且根据映射数据储存器中存储的p2l映射数据的数量,通过使用映射数据储存器中存储的全部p2l映射数据中的一些p2l映射数据来对l2p映射数据执行映射更新操作。
[0010]
根据本公开的实施例,一种存储器系统包括存储器装置、映射存储电路和映射数据管理器。存储器装置存储第一类型映射数据的第一组别。映射存储电路根据循环存储方案生成并临时存储第二类型映射数据的第二组别。映射数据管理器控制映射存储电路将第
二组别之中的一个或多个组别清除到存储器装置中,并控制存储器装置根据第二组别的清除更新第一组别。其中,第一类型映射数据和第二类型映射数据表示存储器装置中存储的数据的物理地址与从主机接收的逻辑地址之间的不同关系。
[0011]
根据本技术,提供了一种具有改进的映射更新性能的存储器控制器及操作其的方法。
附图说明
[0012]
图1是描述根据本公开的实施例的存储装置的示图。
[0013]
图2是描述图1的存储器装置的结构的示图。
[0014]
图3是描述图1的存储器控制器的配置和操作的示图。
[0015]
图4是描述图3的映射数据储存器的示图。
[0016]
图5是描述图4的l2p映射管理表的示图。
[0017]
图6是描述图4的p2l映射表储存器的示图。
[0018]
图7a至图7c是描述根据实施例的图4的p2l映射表的示图。
[0019]
图7a是描述在将数据顺序写入到开放块时的p2l映射表的示图。
[0020]
图7b是描述在将数据写入到开放块时的p2l映射表的示图。
[0021]
图7c是描述在取消映射操作期间的p2l映射表的示图。
[0022]
图8a至图8c是描述根据另一实施例的图4的p2l映射表的示图。
[0023]
图8a是描述在将数据顺序写入到开放块时的p2l映射表的示图。
[0024]
图8b是描述在将数据写入到开放块时的p2l映射表的示图。
[0025]
图8c是描述在擦除操作期间的p2l映射表的示图。
[0026]
图9是描述根据实施例的完全清除操作的示图。
[0027]
图10是描述图9的p2l映射表的映射数据管理结构的示图。
[0028]
图11是描述根据另一实施例的部分清除操作的示图。
[0029]
图12是描述图11的p2l映射表的映射数据管理结构的示图。
[0030]
图13是描述图12中的p2l映射段的存储操作(入队)的流程图。
[0031]
图14是描述图12中的p2l映射段的清除操作(出队)的流程图。
[0032]
图15是描述根据实施例的存储器控制器的操作的流程图。
[0033]
图16是详细描述图15的流程图。
[0034]
图17是描述根据另一实施例的存储器控制器的操作的流程图。
[0035]
图18是描述图1的存储器控制器的另一实施例的示图。
[0036]
图19是示出应用了根据本公开实施例的存储装置的存储卡系统的框图。
[0037]
图20是示出应用了根据本公开实施例的存储装置的固态驱动器(ssd)系统的框图。
[0038]
图21是示出应用了根据本公开实施例的存储装置的用户系统的框图。
具体实施方式
[0039]
在下文中,将参照附图详细描述本公开的实施例。
[0040]
图1是描述根据本公开的实施例的存储装置的示图。
[0041]
参照图1,存储装置50可以包括存储器装置100和控制存储器装置100的操作的存储器控制器200。存储装置50是在诸如蜂窝电话、智能电话、mp3播放器、膝上型计算机、台式计算机、游戏机、tv、平板pc或车载信息娱乐系统的主机300的控制下存储数据的装置。
[0042]
存储装置50可以根据作为与主机300的通信方法的主机接口被制造为各种类型的存储装置之一。例如,存储装置50可以被配置为诸如以下的各种类型的存储装置中的任意一种:ssd,mmc、emmc、rs-mmc和微型mmc形式的多媒体卡,sd、迷你sd和微型sd形式的安全数字卡,通用串行总线(usb)存储装置,通用闪存(ufs)装置,个人计算机存储卡国际协会(pcmcia)卡类型存储装置。外围组件互连(pci)卡类型存储装置,高速pci(pci-e)卡类型存储装置,紧凑型闪存(cf)卡,智能媒体卡和记忆棒。
[0043]
存储装置50可以被制造为各种类型的封装中的任意一种。例如,存储装置50可以被制造为诸如以下的各种类型的封装类型中的任意一种:堆叠封装(pop)、系统级封装(sip)、片上系统(soc)、多芯片封装(mcp)、板上芯片(cob)、晶圆级制造封装(wfp)和晶圆级堆叠封装(wsp)。
[0044]
存储器装置100可以存储数据。存储器装置100响应于存储器控制器200的控制而操作。存储器装置100可以包括存储器单元阵列,该存储器单元阵列包括存储数据的多个存储器单元。
[0045]
存储器单元中的每个可被配置为存储一个数据位的单层单元(slc)、存储两个数据位的多层单元(mlc)、存储三个数据位的三层单元(tlc)位或存储四个数据位的四层单元(qlc)。
[0046]
存储器单元阵列可以包括多个存储块。每个存储块可以包括多个存储器单元。一个存储块可以包括多个页面。在实施例中,页面可以是用于将数据存储在存储器装置100中或读取存储器装置100中存储的数据的单元。
[0047]
存储块可以是用于擦除数据的单元。在实施例中,存储器装置100可以是双倍数据速率同步动态随机存取存储器(ddr sdram)、低功率双倍数据速率4(lpddr4)sdram、图形双倍数据速率(gddr)sdram、低功率ddr(lpddr)、rambus动态随机存取存储器(rdram)、nand闪速存储器、垂直nand闪速存储器、nor闪速存储器装置、电阻式随机存取存储器(rram)、相变存储器(pram)、磁阻随机存取存储器(mram)、铁电随机存取存储器(fram)、自旋转移力矩随机存取存储器(stt-ram)等。在本说明书中,为了便于描述,存储器装置100是nand闪速存储器。
[0048]
将存储器装置100被配置为从存储器控制器200接收命令和地址,并访问通过该地址在存储器单元阵列中选择的区域。即,存储器装置100可以对由地址选择的区域执行由命令指示的操作。例如,存储器装置100可以执行写入操作(编程操作)、读取操作和擦除操作。在编程操作期间,存储器装置100可以将数据编程到由地址选择的区域。在读取操作期间,存储器装置100可以从由地址选择的区域读取数据。在擦除操作期间,存储器装置100可以擦除由地址选择的区域中存储的数据。
[0049]
在实施例中,存储器装置100可以包括逻辑到物理(l2p)映射数据储存器140。l2p映射数据储存器140可以存储指示由主机提供的数据的逻辑地址和存储该数据的存储器装置100的物理地址之间的映射关系的l2p映射数据。
[0050]
l2p映射数据储存器140可以存储多个l2p映射段。每个l2p映射段可以具有预定大
小。一个l2p映射段可以包括指示多个逻辑地址和多个物理地址之间的映射关系的l2p映射数据。
[0051]
根据由映射数据管理器210提供的读取命令,l2p映射数据储存器140中存储的l2p映射数据之中待更新的l2p映射数据可以提供到存储器控制器200。
[0052]
根据由映射数据管理器210提供的编程命令,可以将映射更新缓冲器230中存储的更新的l2p映射数据存储在l2p映射数据储存器140中。
[0053]
在实施例中,l2p映射数据储存器140可以对应于存储元数据的元区域。每个元区域可以对应于一个存储器单元、多个存储器单元、一个页面、多个页面、一个存储块或多个存储块。
[0054]
存储器控制器200控制存储装置50的全部操作。
[0055]
当向存储装置50供应电力时,存储器控制器200可以运行固件fw。当存储器装置100是闪速存储器装置时,存储器控制器200可以操作诸如闪存转换层(ftl)的固件,用以控制主机300与存储器装置100之间的通信。
[0056]
在实施例中,存储器控制器200可以从主机300接收数据和逻辑块地址(lba),并且将该逻辑块地址(lba)转换为物理块地址(pba),该物理块地址(pba)指示待存储存储器装置100中包括的数据的存储器单元的地址。
[0057]
存储器控制器200可以响应于来自主机300的请求,控制存储器装置100执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可以将编程命令、物理块地址和数据提供到存储器装置100。在读取操作期间,存储器控制器200可以将读取命令和物理块地址提供到存储器装置100。在擦除操作期间,存储器控制器200可以将擦除命令和物理块地址提供到存储器装置100。
[0058]
在实施例中,存储器控制器200可以生成命令、地址和数据,并将命令、地址和数据传送到存储器装置100,而无论来自主机300的请求如何。例如,存储器控制器200可以向存储器装置100提供命令、地址和的数据以执行后台操作,诸如用于损耗均衡的编程操作和用于垃圾收集的编程操作。
[0059]
在实施例中,存储器控制器200可以控制至少两个存储器装置100。在这种情况下,存储器控制器200可以根据交错方法控制存储器装置100以提高操作性能。交错方法可以是使至少两个存储器装置100的操作时段重叠的操作方法。
[0060]
在实施例中,存储器控制器200可以包括映射数据管理器210、映射数据储存器220和映射更新缓冲器230。
[0061]
映射数据管理器210可以接收来自主机300的请求连同与该请求对应的逻辑地址。该请求可以是写入请求和取消映射请求中的任意一个。映射数据管理器210可以将从主机300接收的逻辑地址提供到映射数据储存器220。
[0062]
映射数据管理器210可以控制映射数据储存器220以取消映射映射数据储存器220中存储的l2p映射数据。
[0063]
映射数据管理器210可以控制映射数据储存器220以清除映射数据储存器220中存储的物理到逻辑(p2l)映射数据。
[0064]
映射数据管理器210可以基于在映射数据储存器220中所清除的p2l映射数据,控制映射更新缓冲器230和存储器装置100以更新l2p映射数据储存器140中存储的l2p映射数
据。
[0065]
映射数据储存器220可以存储指示多个l2p映射段存储在l2p映射数据储存器140中的位置的映射数据地址。映射数据储存器220可以在映射数据管理器210的控制下取消映射l2p映射数据。
[0066]
映射数据储存器220可以存储基于从映射数据管理器210接收的逻辑地址而生成的p2l映射数据。
[0067]
例如,当映射数据管理器210从主机300接收的请求是写入请求时,p2l映射数据可以指示物理地址与所接收的逻辑地址之间的映射关系,物理地址指示存储根据写入请求的写入数据的位置。在实施例中,当映射数据管理器210从主机300接收的请求是取消映射请求时,p2l映射数据可以指示取消映射数据与所接收的逻辑地址之间的映射关系。
[0068]
映射数据储存器220可以以预定大小的p2l映射数据段为单位存储p2l映射数据。因此,映射数据储存器220可以将p2l映射数据存储为至少一个映射段。
[0069]
映射数据储存器220可以包括存储映射段的预设数量的时隙(slot)。映射数据存储装置220可以通过指示每个时隙的索引来记录待存储的映射段的起点和终点。
[0070]
在实施例中,映射数据储存器220可以从所记录的终点顺序地存储新的映射段并更新终点。映射数据储存器220可以从所记录的起点顺序地清除所存储的映射段并更新起点。
[0071]
映射数据储存器220可以存储由映射到逻辑地址的连续物理地址的长度信息表示的p2l映射数据。例如,当映射到逻辑地址的物理地址是连续的时,映射数据储存器220可以存储指示连续物理地址的起始地址和连续物理地址的数量的长度信息。
[0072]
映射数据储存器220可以在映射数据管理器210的控制下清除映射数据储存器220中存储的全部或一些p2l映射数据。映射数据储存器220可以将所清除的p2l映射数据提供到映射更新缓冲器230。
[0073]
映射更新缓冲器230可以从存储器装置100接收l2p映射数据储存器140中存储的l2p映射数据之中的待更新的l2p映射数据,并存储待更新的l2p映射数据。
[0074]
映射更新缓冲器230在映射数据管理器210的控制下基于所清除的p2l映射数据来更新l2p映射数据,并将所更新的l2p映射数据提供到存储器装置100。
[0075]
主机300可以使用诸如以下的各种通信方法中的至少一种与存储装置50通信:通用串行总线(usb)、串行at附件(sata)、串列scsi(sas)、高速芯片间(hsic)、小型计算机系统接口(scsi)、外围组件互连(pci)、高速pci(pcie)、高速非易失性存储器(nvme)、通用闪存(ufs)、安全数字(sd)、多媒体卡(mmc)、嵌入式mmc(emmc)、双列直插式存储器模块(dimm)、寄存式dimm(rdimm)和低负载dimm(lrdimm)。
[0076]
图2是描述图1的存储器装置的结构的示图。
[0077]
参照图2,存储器装置100可以包括存储器单元阵列110、外围电路120和控制逻辑130。
[0078]
存储器单元阵列110包括多个存储块blk1至blkz。多个存储块blk1至blkz通过行线rl连接到地址解码器121。多个存储块blk1至blkz通过位线bl1至blm连接到读取和写入电路123。多个存储块blk1至blkz中的每个存储块包括多个存储器单元。作为实施例,多个存储器单元是非易失性存储器单元。多个存储器单元之中的连接到同一字线的存储器单元
被定义为一个物理页面。即,存储器单元阵列110被配置有多个物理页面。根据本公开的实施例,存储器单元阵列110中包括的多个存储块blk1至blkz中的每个存储块可以包括多个虚设单元。虚设单元中的至少一个可以串联连接在漏极选择晶体管与存储器单元之间以及源极选择晶体管与存储器单元之间。
[0079]
存储器装置100的存储器单元中的每个可以被配置为存储一个数据位的单层单元(slc)、存储两个数据位的多层单元(mlc)、存储三个数据位的三层单元(tlc)或存储四个数据位的四层单元(qlc)。
[0080]
外围电路120可以包括地址解码器121、电压生成器122、读取和写入电路123、数据输入/输出电路124和感测电路125。
[0081]
外围电路120驱动存储器单元阵列110。例如,外围电路120可以驱动存储器单元阵列110执行编程操作、读取操作和擦除操作。
[0082]
地址解码器121通过行线rl连接到存储器单元阵列110。行线rl可以包括漏极选择线、字线、源极选择线和公共源极线。根据本公开的实施例,字线可以包括正常字线和虚设字线。根据本公开的实施例,行线rl可以进一步包括管道选择线。
[0083]
在实施例中,行线rl可以是局部线组中包括的局部线。局部线组可以对应于一个存储块。局部线组可以包括漏极选择线、局部字线和源极选择线。
[0084]
地址解码器121被配置为响应于控制逻辑130的控制而操作。地址解码器121从控制逻辑130接收地址addr。
[0085]
地址解码器121被配置为解码所接收的地址addr的块地址。地址解码器121根据经解码的块地址来在存储块blk1至blkz之中选择至少一个存储块。地址解码器121被配置为解码所接收的地址addr的行地址radd。地址解码器121可以根据经解码的行地址radd通过将从电压生成器122提供的电压施加到至少一个字线wl来选择所选择的存储块的至少一个字线。
[0086]
在编程操作期间,地址解码器121可以将编程电压施加到所选择的字线,并且将电平小于编程电压的电平的通过电压施加到未选择的字线。在编程验证操作期间,地址解码器121可以将验证电压施加到所选择的字线,并且将电平大于验证电压的电平的验证通过电压施加到未选择的字线。
[0087]
在读取操作期间,地址解码器121可以将读取电压施加到所选择的字线,并且将电平大于读取电压的电平的读取通过电压施加到未选择的字线。
[0088]
根据本公开的实施例,以存储块为单位来执行存储器装置100的擦除操作。在擦除操作期间输入到存储器装置100的地址addr包括块地址。地址解码器121可以对该块地址进行解码并根据经解码的块地址选择一个存储块。在擦除操作期间,地址解码器121可以将接地电压施加到输入到所选择的存储块的字线。
[0089]
根据本公开的实施例,地址解码器121可以被配置为对所传送的地址addr的列地址进行解码。经解码的列地址可以被传送到读取和写入电路123。作为示例,地址解码器121可以包括诸如行解码器、列解码器和地址缓冲器的组件。
[0090]
电压生成器122被配置为通过使用供应到存储器装置100的外部电源电压来生成多个操作电压vop。电压生成器122响应于控制逻辑130的控制而操作。
[0091]
作为示例,电压生成器122可以通过调节外部电源电压来生成内部电源电压。通过
电压生成器122生成的内部电源电压用作存储器装置100的操作电压。
[0092]
作为实施例,电压生成器122可使用外部电源电压或内部电源电压来生成多个操作电压vop。电压生成器122可以被配置为生成存储器装置100所需的各种电压。例如,电压生成器122可以生成多个擦除电压、多个编程电压、多个通过电压、多个选择读取电压和多个未选择读取电压。
[0093]
为了生成具有各种电压电平的多个操作电压vop,电压生成器122可以包括接收内部电压的多个泵浦电容器,并选择性地激活多个泵浦电容器来生成多个操作电压vop。
[0094]
多个操作电压vop可以通过地址解码器121供应到存储器单元阵列110。
[0095]
读取和写入电路123包括第一至第m页面缓冲器pb1至pbm。第一至第m页面缓冲器pb1至pbm分别通过第一至第m位线bl1至blm连接到存储器单元阵列110。第一至第m页面缓冲器pb1至pbm响应于控制逻辑130的控制来操作。
[0096]
第一至第m页面缓冲器pb1至pbm与数据输入/输出电路124通信数据data。在编程操作时,第一至第m页面缓冲器pb1至pbm通过数据输入/输出电路124和数据线dl来接收待被存储的数据data。
[0097]
在编程操作期间,当将编程脉冲施加到所选择的字线时,第一至第m页面缓冲器pb1至pbm可以通过通过位线bl1至blm将待被存储的数据data,即通过数据输入/输出电路124接收的数据data传送到所选择的存储器单元。根据所传送的数据data对所选择的页面的存储器单元进行编程。连接到施加编程允许电压(例如,接地电压)的位线的存储器单元可以具有增加的阈值电压。连接到施加编程禁止电压(例如,电源电压)的位线的存储器单元的阈值电压可被保持。在编程验证操作期间,第一至第m页面缓冲器pb1至pbm通过位线bl1至blm从所选择的存储器单元读取存储器单元中存储的数据data。
[0098]
在读取操作期间,读取和写入电路123可以通过位线bl从所选择的页面的存储器单元中读取数据data,并将所读取的数据data存储在第一至第m页面缓冲器pb1至pbm中。
[0099]
在擦除操作期间,读取和写入电路123可以使位线bl浮置。作为实施例,读取和写入电路123可以包括列选择电路。
[0100]
数据输入/输出电路124通过数据线dl连接到第一至第m页面缓冲器pb1至pbm。数据输入/输出电路124响应于控制逻辑130的控制而操作。
[0101]
数据输入/输出电路124可以包括接收输入数据data的多个输入/输出缓冲器(未示出)。在编程操作期间,数据输入/输出电路124从外部控制器(未示出)接收待被存储的数据data。在读取操作期间,数据输入/输出电路124将从读取和写入电路123中包括的第一至第m页面缓冲器pb1至pbm传送的数据data输出到外部控制器。
[0102]
在读取操作或验证操作期间,感测电路125可以响应于由控制逻辑130生成的允许位vrybit的信号来生成参考电流,并且可以将从读取和写入电路123接收的感测电压vpb与由参考电流生成的参考电压进行比较,以将通过信号或失败信号输出到控制逻辑130。
[0103]
控制逻辑130可以连接到地址解码器121、电压生成器122、读取和写入电路123、数据输入/输出电路124和感测电路125。控制逻辑130可以被配置为控制存储器装置100的所有操作。控制逻辑130可以响应于从外部装置传送的命令cmd而操作。
[0104]
控制逻辑130可以响应于命令cmd和地址addr生成各种信号,以控制外围电路120。例如,控制逻辑130可以响应于命令cmd和地址addr生成操作信号opsig、行地址radd、读取
和写入电路控制信号pbsignals和允许位vrybit。控制逻辑130可以将操作信号opsig输出到电压生成器122,将行地址radd输出到地址解码器121,将读取和写入控制信号pbsignals输出到读取和写入电路123,并且将允许位vrybit输出到感测电路125。另外,控制逻辑130可以响应于感测电路125输出的通过或失败信号pass/fail来确定验证操作是已通过还是已失败。
[0105]
在实施例中,参照图1描述的l2p映射数据储存器可以对应于存储存储器单元阵列100的元数据的元区域。每个元区域可以对应于一个存储器单元、多个存储器单元、一个页面、多个页面、一个存储块或多个存储块。
[0106]
图3是描述图1的存储器控制器的配置和操作的示图。
[0107]
参照图3,存储器装置100可以包括l2p映射数据储存器140。
[0108]
l2p映射数据储存器140可以存储指示由主机提供的数据的逻辑地址和存储该数据的存储器装置100的物理地址之间的映射关系的l2p映射数据。
[0109]
l2p映射数据储存器140可以存储多个l2p映射段。每个l2p映射段可以具有预定大小。一个l2p映射段可以包括指示多个逻辑地址和多个物理地址之间的映射关系的l2p映射数据。
[0110]
存储器控制器200可以包括映射数据管理器210、映射数据储存器220和映射更新缓冲器230。
[0111]
映射更新缓冲器230可以从存储器装置100接收l2p映射数据储存器140中存储的l2p映射数据之中的待更新的l2p映射数据,并存储待更新的l2p映射数据。
[0112]
当映射更新缓冲器230接收映射更新控制信息时,映射更新缓冲器230可以基于从p2l映射表储存器222(参见图4)提供的清除的p2l映射数据来更新l2p映射数据。映射更新缓冲器230可以将所更新的l2p映射数据提供到存储器装置100。
[0113]
映射数据管理器210可以接收来自主机300的请求连同与请求对应的逻辑地址。请求可以是写入请求和取消映射请求中的任意一个请求。映射数据管理器210可以将从主机300接收的逻辑地址提供到映射数据储存器220。
[0114]
映射数据管理器210可以生成取消映射进程信息用于取消映射l2p映射管理表储存器221(参见图4)中存储的l2p映射数据的映射数据地址。映射数据管理器210可以将取消映射进程信息提供到l2p映射管理表储存器221。
[0115]
映射数据管理器210可以生成映射清除控制信息,用于将p2l映射表储存器222中存储的p2l映射数据清除到映射更新缓冲器230中。映射数据管理器210可以将映射清除控制信息提供到p2l映射表储存器222。
[0116]
映射数据管理器210可以基于从p2l映射表储存器222中清除的p2l映射数据,生成映射更新控制信息,用于更新l2p映射数据储存器140中存储的l2p映射数据。映射数据管理器210可以将映射更新控制信息提供到映射更新缓冲器230。映射更新缓冲器230响应于映射更新控制信息,基于从p2l映射表储存器222中清除的p2l映射数据,更新l2p映射数据储存器140中存储的l2p映射数据。
[0117]
映射数据管理器210可以将读取命令提供到存储器装置100,该读取命令用于读取l2p映射数据储存器140中存储的l2p映射数据之中的待更新的l2p映射数据。
[0118]
映射数据管理器210可以向存储器装置100提供编程命令,该编程命令用于将映射
更新缓冲器230中存储的更新的l2p映射数据存储到l2p映射数据储存器140中。
[0119]
映射数据储存器220可以包括l2p映射管理表储存器221和p2l映射表储存器222。
[0120]
l2p映射管理表储存器221可以存储指示多个l2p映射段存储在l2p映射数据储存器140内的位置的映射数据地址。
[0121]
l2p映射管理表储存器221可以响应于取消映射进程信息取消映射l2p映射段的映射数据地址。
[0122]
p2l映射表储存器222可以存储基于从映射数据管理器210接收的逻辑地址而生成的p2l映射数据。
[0123]
例如,当通过映射数据管理器210从主机300接收的请求是写入请求时,p2l映射表储存器222可以存储指示物理地址与所接收的逻辑地址之间的映射关系的p2l映射数据,该物理地址指示根据写入请求的写入数据的存储位置。当通过映射数据管理器210从主机300接收的请求是取消映射请求时,p2l映射表储存器222可以存储指示取消映射数据和所接收的逻辑地址之间的映射关系的p2l映射数据。
[0124]
p2l映射表储存器222可以以具有预定大小的p2l映射数据段为单位来存储p2l映射数据。一个映射段可包括至少一个或多个映射数据组块。一个映射数据组块可以是指示一个逻辑地址和一个物理地址之间的映射关系的数据。因此,p2l映射表储存器222可以以p2l映射段为单位来存储p2l映射数据。
[0125]
p2l映射表储存器222可以包括存储p2l映射段的预设数量的时隙。p2l映射表储存器222可以通过指示每个时隙的索引来记录所存储的p2l映射段的起点和终点。起点可以是存储至少一个p2l映射段之中的第一p2l映射段的时隙的索引。终点可以是存储至少一个p2l映射段之中的最后一个p2l映射段的时隙的索引。
[0126]
当将新的p2l映射段存储(入队)在时隙中时,p2l映射表储存器222可以更新终点。当清除(出队)时隙中存储的p2l映射段时,p2l映射表储存器222可以更新起点。
[0127]
p2l映射表储存器222可以存储由映射到逻辑地址的连续物理地址的长度信息表示的p2l映射数据。例如,当映射到逻辑地址的物理地址是连续的时,p2l映射表储存器222可以存储指示连续物理地址的起始地址和连续物理地址的数量的长度信息。
[0128]
当p2l映射表储存器222接收映射清除控制信息时,p2l映射表储存器222可以清除p2l映射表储存器222中存储的全部或一些p2l映射数据。所清除的p2l映射数据的大小可以根据主机的请求或存储装置的操作环境进行不同地设置。p2l映射表储存器222可以将所清除的p2l映射数据提供到映射更新缓冲器230。
[0129]
图4是描述图3的映射数据储存器的示图。
[0130]
参照图4,映射数据储存器220可以包括l2p映射管理表储存器221和p2l映射表储存器222。
[0131]
l2p映射管理表储存器221可以存储指示多个l2p映射段的存储位置的映射数据地址。l2p映射段可以包括指示存储器装置100中存储的数据的逻辑地址和物理地址之间的映射关系的映射数据。
[0132]
l2p映射管理表储存器221可以响应于取消映射进程信息,将取消映射请求的l2p映射段的映射数据地址改变为取消映射数据。
[0133]
p2l映射表储存器222可以存储基于从映射数据管理器210接收的逻辑地址而生成
的p2l映射数据。
[0134]
在实施例中,p2l映射数据可以指示物理地址与所接收的逻辑地址之间的映射关系,该物理地址指示根据写入请求的写入数据的存储位置。在另一实施例中,p2l映射数据可以指示取消映射数据和所接收的逻辑地址之间的映射关系。
[0135]
p2l映射表储存器222可以以具有预定大小的p2l映射数据段为单位来存储p2l映射数据。因此,p2l映射表储存器222可以将p2l映射数据存储为至少一个p2l映射段。
[0136]
p2l映射表储存器222可以包括存储p2l映射段的预设数量的时隙。预设数量可以根据参照图1描述的存储装置的操作环境来进行不同地确定。p2l映射表储存器222可以通过指示每个时隙的索引来记录所存储的p2l映射段的起点和终点。
[0137]
例如,当p2l映射表储存器222顺序地存储至少一个p2l映射段时,p2l映射表储存器222可以记录该至少一个p2l映射段的起点和终点。起点可以是存储至少一个p2l映射段之中的第一个p2l映射段的时隙的索引。终点可以是存储至少一个p2l映射段之中的最后一个p2l映射段的时隙的索引。
[0138]
在实施例中,p2l映射表储存器222可以从第一时隙开始顺序存储p2l映射段。当所有先前存储的p2l映射段被清除时,p2l映射表储存器222可以再次从第一时隙开始顺序存储新的p2l映射段。
[0139]
以这种方式,p2l映射表储存器222可以以线性结构管理p2l映射段。后面将参照图10描述线性结构的详细说明。
[0140]
在另一实施例中,p2l映射表储存器222可以从记录的终点开始顺序存储新的p2l映射段。此后,p2l映射表储存器222可以通过存储新的p2l映射段的时隙的索引来更新终点。当p2l映射段存储在最后的时隙中时,p2l映射表储存器222可以从第一时隙再次存储新的p2l映射段。
[0141]
p2l映射表储存器222可以清除从记录的起点开始顺序存储的p2l映射段。此后,p2l映射表储存器222可以将起点更新为在清除p2l映射段之后p2l映射表存储装置222中剩余的p2l映射段之中的第一p2l映射段所在的时隙的索引。
[0142]
以这种方式,p2l映射表储存器222可以以循环结构管理p2l映射段。后面将参照图12描述循环结构的详细说明。
[0143]
p2l映射表储存器222可以存储由映射到逻辑地址的连续物理地址的长度信息表示的p2l映射数据。例如,当映射到逻辑地址的物理地址是连续的时,p2l映射表储存器222可以存储指示连续物理地址的起始地址和连续物理地址的数量的长度信息。后面将参照图8a至8c描述长度信息的详细说明。
[0144]
当p2l映射表储存器222接收到映射清除控制信息时,p2l映射表储存器222可以清除至少一个p2l映射段,该至少一个p2l映射段是多个时隙中存储的所有多个p2l映射段的一部分。p2l映射表储存器222可以将所清除的至少一个p2l映射段提供到参照图3描述的映射更新缓冲器。p2l映射表储存器222可以清空存储所清除的至少一个p2l映射段的时隙。
[0145]
图5是描述图4的l2p映射管理表的示图。
[0146]
参照图5,l2p映射管理表可以包括指示存储l2p映射段的位置的映射数据地址。在实施例中,l2p映射管理表可以称为l1表。当存储器控制器读取与映射数据地址对应的位置中存储的数据时,存储器控制器可以获取l2p映射数据储存器140中存储的l2p映射段。一个
l2p映射段可以包括指示存储器装置中存储的数据的逻辑地址和物理地址之间的映射关系的多条l2p映射数据。
[0147]
在图5中,l2p映射管理表可以包括第一至第四映射数据地址addr1至addr4,该第一至第四映射数据地址addr1至addr4指示第一至第四l2p映射段map seg1至map seg4分别存储在l2p映射数据储存器140内的位置。
[0148]
从主机请求取消映射的l2p映射段的映射数据地址可以改变为取消映射数据。取消映射数据可以具有表示特定值的预定位样式。当映射数据地址被改变为取消映射数据时,可以对取消映射请求的l2p映射段中包括的所有多条l2p映射数据执行取消映射进程操作。
[0149]
因此,当取消映射请求的l2p映射段的大小很大时,与针对指示一个逻辑地址和一个物理地址之间的映射关系的单个l2p映射数据的取消映射进程操作相比,l2p映射段的取消映射进程操作可以执行得更快、更有效。
[0150]
例如,可以针对第四l2p映射段map seg4中包括的所有l2p映射数据请求取消映射请求。可替代地,可以针对第四l2p映射段map seg4本身请求取消映射请求。在这种情况下,在l2p映射管理表中,可以将指示第四l2p映射段map seg4在存储器装置中存储的位置的第四映射数据地址addr4改变为取消映射数据unmap。
[0151]
通过将第四映射数据地址addr4改变为取消映射数据,与对第四l2p映射段map seg4中包括的所有逻辑地址单独执行取消映射进程操作相比,取消映射进程操作可以执行得更快。
[0152]
图6是描述图4的p2l映射表储存器的示图。
[0153]
参照图6,开放块池可以包括预设数量的开放块。
[0154]
开放块可以对应于一个存储块来存储数据。可替代地,开放块可以对应于一个超级块来存储数据。超级块可以是多个存储器装置之中的不同存储器装置中包括的至少两个存储块的组。
[0155]
p2l映射表储存器222可以存储指示其中存储有写入数据的开放块的物理地址与该写入数据的逻辑地址之间的映射关系的p2l映射数据。
[0156]
在图6中,开放块池可以包括第一至第三开放块blk1至blk3。开放块池中包括的开放块的数量不限于本实施例。
[0157]
打开操作open可以是将存储数据的存储块分配给开放块池的操作。关闭操作close可以是从开放块池中释放完成数据写入的存储块的操作。
[0158]
第一开放块blk1可以被分配来存储数据。因为数据被完全写入,所以可以释放第二开放块blk2。当从开放块池释放一个存储块时,可以将存储数据的另一存储块新分配给开放块池。
[0159]
图7a至图7c是描述根据实施例的图4的p2l映射表的示图。
[0160]
图7a是描述当将数据顺序写入开放块时的p2l映射表的示图。
[0161]
p2l映射表可以包括指示其中存储有写入数据的物理地址(物理页面号)ppn与由主机提供的写入数据的逻辑地址(逻辑块地址)lba之间的映射关系的映射数据。物理地址ppn可以包括块号blk#和偏移量offset,块号blk#包括物理页面,偏移量offset指示物理页面在块中的位置。
[0162]
在图7a中,一个开放块可以包括四个物理页面。开放块中包括的物理页面的数量不限于本实施例。一个p2l映射段可以包括指示一个逻辑地址和一个物理地址之间的映射关系的三条映射数据。p2l映射段中包括的映射数据条的数量不限于本实施例。
[0163]
在各个实施例中,一个p2l映射段中包括的物理地址的数量可以与一个开放块中包括的物理地址的数量不同。即,当一个p2l映射段中包括的物理地址的数量小于一个开放块中包括的物理地址的数量时,几个p2l映射段可以对应于一个开放块。相反,当一个p2l映射段中包括的物理地址的数量大于一个开放块中包括的物理地址的数量时,几个开放块可以对应于一个p2l映射段。在另一实施例中,一个p2l映射段中包括的物理地址的数量可以与一个开放块中包括的物理地址的数量相同。在这种情况下,一个开放块可以一对一地对应于一个p2l映射段。
[0164]
p2l映射表的容量可以根据存储装置的操作环境进行不同的设置。在图7a中,p2l映射表的容量可以是能够存储与三个开放块对应的映射数据的大小。在这种情况下,p2l映射表可以管理与三个开放块对应的映射数据。在各个实施例中,p2l映射表的容量可以是能够存储与一个开放块对应的映射数据的大小。p2l映射表可以一对一地对应于一个开放块来管理映射数据。
[0165]
可以提供连续逻辑地址lba1到lba12,其中写入数据待与来自主机的写入数据一起存储在其中。可以执行将写入数据存储在第一至第三开放块blk1至blk3中的写入操作。可以按照第一开放块blk1、第二开放块blk2和第三开放块blk3的顺序执行写入操作。
[0166]
因此,写入数据顺序地被存储在第一开放块blk1的物理地址ppn1至ppn4中,并且物理地址ppn1至ppn4可以分别一对一地映射到逻辑地址lba1至lba4。
[0167]
具体地,由于物理地址ppn1的块号blk#为1并且偏移量offset为1,所以物理地址ppn1可以是第一开放块blk1中包括的第一物理页面的地址。当与逻辑地址lba1对应的写入数据被存储在物理地址ppn1中时,可以生成指示物理地址ppn1和逻辑地址lba1之间的映射关系的映射数据。以相同的方式,可以生成指示物理地址ppn2至ppn4与逻辑地址lba2至4之间的映射关系的映射数据。
[0168]
此后,写入数据可以顺序存储在第二开放块blk2的物理地址ppn5至ppn8中,并且物理地址ppn5至ppn8可以分别一对一地映射到逻辑地址lba5至lba8。写入数据可以顺序存储在第三开放块blk3的物理地址ppn9至ppn12中,并且物理地址ppn9至ppn12可以分别一对一地映射到逻辑地址lba9至lba12。
[0169]
在图7a中,物理逻辑映射段map seg1可以包括关于逻辑地址lba1至lba3的映射数据。物理逻辑映射段map seg2可以包括关于逻辑地址lba4至lba6的映射数据。物理逻辑映射段map seg3可以包括关于逻辑地址lba7至lba9的映射数据。物理逻辑映射段map seg4可以包括关于逻辑地址lba10至lba12的映射数据。
[0170]
包括在p2l映射表中的p2l映射段可以通过将逻辑地址映射到指示写入数据存储位置的物理地址的方法来生成,并且可以基于该物理地址来布置。
[0171]
存储器装置100中存储的l2p映射段可以是指示物理地址与逻辑地址之间的映射关系l2p映射数据,该物理地址指示写入数据存储的位置。可以基于该逻辑地址来布置l2p映射段。
[0172]
因此,p2l映射段和l2p映射段可以以映射段为单元来管理,但是可以是布置参照
分别不同于物理地址和逻辑地址的映射数据。一个映射段可以包括指示一个逻辑地址和一个物理地址之间的映射关系的预定数量条的映射数据。
[0173]
图7b是描述在将数据写入到开放块时的p2l映射表的示图。
[0174]
参照图7b,可以以与图7a不同的顺序将与逻辑地址lba1至12对应的写入数据写入第一至第三开放块blk1至blk3。
[0175]
即使从主机提供的逻辑地址是连续的,也不能保证存储与逻辑地址对应的写入数据的物理地址的连续性。换句话说,根据存储装置的操作环境,可以在任意一个开放块上连续执行写入操作,并且中间可以在另一个开放块上执行写入操作。
[0176]
例如,可以将与逻辑地址lba1和lba2对应的写入数据顺序存储在第一开放块blk1的物理地址ppn1和ppn2中,并且物理地址ppn1和ppn2可以分别一对一地映射到逻辑地址lba1和lba2。
[0177]
此后,不对第一开放块blk1的剩余物理地址ppn3和ppn4连续执行写入操作,并且可以对第二开放块blk2的物理地址ppn5至ppn8执行写入操作。
[0178]
因此,对应于逻辑地址lba3至lba6的写入数据可以存储在第二开放块blk2的物理地址ppn5至ppn8中,并且物理地址ppn5至ppn8可以分别一对一地映射到逻辑地址lba3至lba6。
[0179]
对应于逻辑地址lba7和lba8的写入数据可以存储在第一开放块blk1的剩余物理地址ppn3和ppn4中,并且物理地址ppn3和ppn4可以分别一对一地映射到逻辑地址lba7和lba8。
[0180]
对应于逻辑地址lba9至lba12的写入数据可以存储在第三开放块blk3的物理地址ppn9至ppn12中,并且物理地址ppn9至ppn12可以分别一对一地映射到逻辑地址lba9至lba12。
[0181]
与图7a相比,相同的是将与连续逻辑地址lba1至lba12对应的写入数据存储在第一至第三开放块blk1至blk3中,但是可以根据执行写入操作的顺序不同地生成p2l映射数据。
[0182]
图7c是描述在取消映射操作期间的p2l映射表的示图。
[0183]
参照图7c,在完成参照图7a描述的对第一至第三开放块blk1至blk3的写入操作之后,可以执行对第一开放块blk1的取消映射操作。
[0184]
取消映射操作可以是断开逻辑地址和物理地址之间的映射关系的操作。具体地,取消映射操作可以是将映射到逻辑地址的物理地址改变为取消映射数据的操作。
[0185]
在图7c中,可以向映射到包括在第一开放块中的物理页面的物理地址ppn1至ppn4的逻辑地址lba1至lba4请求取消映射。可以将取消映射请求的逻辑地址lba1至lba4映射到取消映射数据,而不是指示写入数据的存储位置的物理地址。可以将映射到取消映射数据的逻辑地址lba1至lba4识别为在主机和存储装置中擦除写入数据的区域。
[0186]
在各个实施例中,在对存储块执行擦除操作的同时,还可以对存储块执行取消映射操作。然而,实际执行擦除操作的时间点和通过从主机接收对逻辑地址的取消映射请求而执行取消映射操作的时间点可以彼此不同。
[0187]
图8a至图8c是根据另一实施例的描述图4的p2l映射表的示图。
[0188]
图8a是描述当将数据顺序写入开放块时的p2l映射表的示图。
[0189]
参照图8a,与图7a相比,p2l映射表可以管理由映射到逻辑地址的连续物理地址的长度信息length表示的p2l映射数据。
[0190]
因此,在图8a中,物理地址ppn可以包括存储写入数据的连续物理地址的起始地址和连续物理地址的长度(连续物理地址的数量)。物理地址可以包括块号blk#和偏移量offset,块号blk#包括物理页面,偏移量offset指示物理页面在相应块中的位置。
[0191]
另外,p2l映射表可以以p2l映射数据段为单位来管理p2l映射数据。映射数据可以包括连续物理地址的起始地址的物理起始地址、连续物理地址的数量的长度信息以及对应于物理地址的连续逻辑地址的起始地址的逻辑起始地址。逻辑地址lba1至lba12可以映射到物理地址ppn1至ppn12。
[0192]
例如,第一p2l映射段map seg1可以包括与逻辑地址lba1至lba3对应的映射数据。逻辑地址lba1至lba3可以映射到连续物理地址ppn1至ppn3。因此,第一p2l映射段map seg1可以包括具有物理起始地址为ppn1、长度信息为3以及逻辑起始地址为lba1的映射数据。因此,与图7a相反,通过长度信息,可以用较少的数据来表示相同的映射数据。
[0193]
尽管与连续逻辑地址lba1至lba4对应的写入数据存储在连续物理地址ppn1至ppn4中,但是由于p2l映射数据以p2l映射数据段为单位进行管理,因此可以单独生成与包括在第二p2l映射段map seg2中的逻辑地址lba4对应的映射数据。
[0194]
第二p2l映射段map seg2可以包括与逻辑地址lba4至lba6对应的映射数据。物理地址ppn4至ppn6可以映射到逻辑地址lba4至lba6。逻辑地址lba4至lba6是连续的,但是物理地址ppn4至ppn6可以不是连续的。
[0195]
具体地,物理地址ppn4可以是与第一开放块blk1对应的物理地址,但是物理地址ppn5和ppn6是与第二开放块blk2对应的物理地址,因此,对应于不同开放块的物理地址可以彼此不是连续的。
[0196]
因此,第二p2l映射段map seg2可以包括两条映射数据。一条映射数据的物理起始地址可以为ppn4、长度信息为1、逻辑起始地址为lba4。另一条映射数据的物理起始地址可以为ppn5、长度信息为2、逻辑起始地址为lba5。
[0197]
以类似的方式,第三p2l映射段map seg3可以包括与逻辑地址lba7至lba9对应的映射数据。第三p2l映射段map seg3可以包括两条映射数据。一条映射数据的物理起始地址可以为ppn7、长度信息为2、逻辑起始地址为lba7。另一条映射数据的物理起始地址可以为ppn9、长度信息为1、逻辑起始地址为lba9。
[0198]
第四p2l映射段map seg4可以包括与逻辑地址lba10至lba12对应的映射数据。第四p2l映射段map seg4可以包括一条映射数据。映射数据的物理起始地址可以为ppn10、长度信息为3、逻辑起始地址为lba10。
[0199]
在图8a的情况下,与图7a相比,通过长度信息,可以用较少数量条的映射数据来表示相同的映射段。因此,可以更有效地利用有限的p2l映射表。
[0200]
图8b是描述在将数据写入到开放块时的p2l映射表的示图。
[0201]
参照图8b,当以与图7b中相同的方式执行写入操作时,p2l映射表包括以与图8a中相同的方式生成的p2l映射数据。
[0202]
第一p2l映射段map seg1可以包括与逻辑地址lba1至lba3对应的映射数据。第一p2l映射段map seg1可以包括两条映射数据。一条映射数据的物理起始地址可以为ppn1、长
度信息为2、逻辑起始地址为lba1。另一条映射数据的物理起始地址可以为ppn5、长度信息为1、逻辑起始地址为lba3。由于物理地址ppn1和ppn2与物理地址ppn5对应于不同的开放块,因此物理地址ppn1和ppn2与物理地址ppn5可以不连续。
[0203]
第二p2l映射段map seg2可以包括与逻辑地址lba4至lba6对应的映射数据。第二p2l映射段map seg2可以包括一条映射数据。映射数据的物理起始地址可以为ppn6、长度信息为3、逻辑起始地址为lba4。
[0204]
第三p2l映射段map seg3可以包括与逻辑地址lba7至lba9对应的映射数据。第三p2l映射段map seg3可以包括两条映射数据。一条映射数据的物理起始地址可以为ppn3、长度信息为2、逻辑起始地址为lba7。另一条映射数据的物理起始地址可以为ppn9、长度信息为1、逻辑起始地址为lba9。
[0205]
第四p2l映射段map seg4可以包括与逻辑地址lba10至lba12对应的映射数据。第四p2l映射段map seg4可以包括一条映射数据。映射数据的物理起始地址可以为ppn10、长度信息为3、逻辑起始地址为lba10。
[0206]
图8c是描述在擦除操作期间的p2l映射表的示图。
[0207]
参照图8c,当以与图7c中相同的方式执行擦除操作时,p2l映射表包括以与图8a中相同的方式生成的p2l映射数据。可以从主机提供对连续逻辑地址lba1到lba4的取消映射请求。
[0208]
在p2l映射表中,映射到取消映射请求的逻辑地址的物理地址可以改变为取消映射数据。因此,取消映射进程操作中的长度信息可以指示p2l映射表中取消映射请求的连续逻辑地址的长度。
[0209]
即使在取消映射进程操作中,p2l映射表也可以以p2l映射数据段为单位来管理p2l映射数据。
[0210]
第一p2l映射段map seg1可以包括与逻辑地址lba1至lba3对应的映射数据。映射数据可以包括取消映射数据和作为取消映射请求的连续逻辑地址lba1至lba3的长度信息的3。
[0211]
第二p2l映射段map seg2可以包括逻辑地址lba4至lba6之中的取消映射请求的逻辑地址lba4的映射数据。映射数据可以包括取消映射数据和作为取消映射请求的逻辑地址lba4的长度信息的1。
[0212]
因此,与图7c相比,通过长度信息,可以用较少的数据来表示相同的映射数据。
[0213]
图9是描述根据实施例的完全清除操作的示图。
[0214]
参照图9,p2l映射表储存器可以具有预定大小。具体地,p2l映射表储存器可以包括存储预定数量的p2l段的时隙。
[0215]
另外,p2l映射表储存器可以以p2l映射数据段为单位来存储或清除p2l映射数据。
[0216]
当多个p2l映射段顺序存储时,可以记录多个p2l映射段的起点和终点。起点可以是存储多个p2l映射段之中的第一个p2l映射段的时隙的索引。终点可以是存储多个p2l映射段之中的最后一个p2l映射段的时隙的索引。
[0217]
在实施例中,当p2l映射表中存储的p2l映射段的数量等于或大于阈值数量时,可以执行清除p2l映射表中存储的所有p2l映射段的完全清除操作。
[0218]
在另一实施例中,当p2l映射表中存储的p2l映射段的进程期望时间等于或大于阈
值时间时,可以执行清除p2l映射表中存储的所有p2l映射段的完全清除操作。
[0219]
在图9中,p2l映射表可以包括存储四个p2l映射段的四个时隙s1到s4。第一至第五p2l映射段map seg1至map seg5可以顺序地存储在p2l映射表中。发生清除的阈值数量可以是3。
[0220]
首先,第一至第三p2l映射段map seg1至map seg3可以顺序地存储在第一至第三时隙s1至s3中。起点sp1可以是指示其中存储第一p2l映射段map seg1的时隙s1的索引。第一p2l映射段map seg1可以是第一至第三p2l映射段map seg1至map seg3中的第一个。终点ep1可以是指示其中存储第三p2l映射段map seg3的时隙s3的索引。第三p2l映射段map seg3可以是第一至第三p2l映射段map seg1至map seg3中的最后一个。
[0221]
在这种情况下,由于满足清除条件,因此可以对p2l映射表中存储的所有p2l映射段执行完全清除操作。
[0222]
在完全清除操作完成之后,第四和第五p2l映射段map seg4和map seg5可以顺序地存储在第一时隙s1和第二时隙s2中。起点sp2可以是指示其中存储第四p2l映射段map seg4的时隙s1的索引。第四p2l映射段map seg4可以是第四和第五p2l映射段map seg4和map seg5之中的第一个。终点ep2可以是指示其中存储第五p2l映射段map seg5的时隙s2的索引。第五p2l映射段map seg5可以是第四和第五p2l映射段map seg4和map seg5之中的最后一个。
[0223]
图10是描述图9的p2l映射表的映射数据管理结构的示图。
[0224]
参照图10,当执行完全清除操作时,可以重新记录起点sp2和终点ep2,而不论先前的起点sp1和终点ep1如何。
[0225]
因此,从起点到终点的方向可以是一个方向。在p2l映射表中,可以以线性结构管理p2l映射段。
[0226]
在这种情况下,清除之前的p2l映射表t1中的起点sp1和清除之后的p2l映射表t2中的起点sp2可同样地固定到时隙s1的索引。
[0227]
图11是描述根据另一实施例的部分清除操作的示图。
[0228]
参照图11,与图9相反,可以执行清除p2l映射表中存储的所有p2l映射段中的一些p2l映射段的部分清除操作。
[0229]
也就是说,即使满足清除条件,也不清除p2l映射表中存储的所有p2l映射段,而是可以仅清除预定数量的一些p2l映射段。因此,对p2l映射段执行部分清除操作的该p2l映射段的数量可以小于发生清除的p2l映射段的阈值数量。
[0230]
在图11中,发生清除的p2l映射段的阈值数量可以是三。对其执行部分清除操作的p2l映射段的数量可以是二。
[0231]
第一至第五p2l映射段map seg1至map seg5可以顺序地存储在p2l映射表中。
[0232]
首先,第一至第三p2l映射段map seg1至map seg3可以顺序地存储在第一至第三时隙s1至s3中。起点sp1'可以是指示存储第一p2l映射段map seg1的时隙s1的索引。第一p2l映射段map seg1可以是第一至第三p2l映射段map seg1至map seg3之中的第一个。终点ep1'可以是指示存储第三p2l映射段map seg3的时隙s3的索引。第三p2l映射段map seg3可以是第一至第三p2l映射段map seg1至map seg3之中的最后一个。
[0233]
在这种情况下,由于满足清除条件,因此可以对作为p2l映射表中存储的所有p2l
映射段中的一些p2l映射段的第一和第二p2l映射段map seg1和map seg2执行部分清除。
[0234]
在部分清除操作完成之后,可以将起点sp1'更新为起点sp2'。起点sp2'可以是存储最后被清除的p2l映射段map seg2的下一个p2l映射段map seg3的时隙s3的索引。
[0235]
在部分清除操作完成之后,第四和第五p2l映射段map seg4和map seg5可以顺序存储在第四和第一时隙s4和s1中。可以将终点ep1'更新为终点ep2'。终点ep2'可以是存储最后存储的p2l映射段map seg5的时隙s1的索引。
[0236]
当第四和第五p2l映射段map seg4和map seg5的存储完成时,由于满足清除条件,因此可以以同样的方式对第二和第三p2l映射段map seg3和map seg4执行部分清除。
[0237]
在图9中,执行了一次完全清除操作,并且一次清除的p2l映射段的数量可以是三。相反,在图11中,执行两次部分清除操作,并且一次清除的p2l映射段的数量可以是二。
[0238]
也就是说,在部分清除操作的情况下,由于与完全清除操作相比,一次清除的映射数据量减少了,因此映射更新操作所需的时间可减少。即,映射更新时间可以根据存储装置的操作环境,通过将映射更新操作分配为多个部分清除操作而不是一次完全清除操作来分配和管理。
[0239]
因此,当一次清除的映射数据量较大时,可以防止映射数据进程时间超过时间限制的映射更新超时问题。
[0240]
图12是描述图11的p2l映射表的映射数据管理结构的示图。
[0241]
参照图12,当执行部分清除操作时,从先前的起点sp1'顺序清除p2l映射段,并且可以将起点从起点sp1'更新到起点sp2'。
[0242]
另外,可以从先前的终点ep1'顺序存储新的p2l映射段,并且可以将终点从终点ep1'更新到终点ep2'。
[0243]
因此,可以在p2l映射表储存器222中存储的p2l映射表内将起点到终点进行循环定向。在p2l映射表中,可以以循环结构管理p2l映射段。
[0244]
在这种情况下,可以在每次执行部分清除操作时更新起点,并且可以在每次存储新的p2l映射段时更新终点。
[0245]
为了执行部分清除操作而不是完全清除操作,与图10不同的是,可以在图12中以循环结构管理p2l映射数据。
[0246]
图13是描述图12中的p2l映射段的存储操作(入队)的流程图。
[0247]
参照图13,在步骤s1301中,可以生成p2l映射段。
[0248]
在步骤s1303中,可以从记录在p2l映射表中的终点开始顺序存储p2l映射段,每当存储p2l映射段时就更新终点。
[0249]
在步骤s1305中,可以确定所记录的终点的索引是否是最后一个。具体地,可以确定所记录的终点是否是p2l映射表储存器中包括的最后一个时隙的索引。作为确定的结果,当终点是最后一个时隙时,进程进行到步骤s1307,否则,进程进行到步骤s1309。
[0250]
在步骤s1307中,可以将终点初始化为1。即,可以将终点更新为p2l映射表储存器中包括的第一时隙的索引。
[0251]
在步骤s1309中,终点可以增加1。即,可以将终点更新为在步骤s1303之前存储最后的p2l映射段的时隙的下一个时隙的索引。
[0252]
图14是描述图12中的p2l映射段的清除操作(出队)的流程图。
[0253]
参照图14,在步骤s1401中,可以从记录在p2l映射表中的起点开始顺序清除p2l映射段,每当清除p2l映射段就更新起点。
[0254]
在步骤s1403中,可以确定所记录的起点的索引是否是最后一个。具体地,可以确定所记录的起点是否是p2l映射表储存器中包括的最后一个时隙的索引。作为确定的结果,当起点是最后一个时隙时,进程进行到步骤s1405,否则,进程进行到步骤s1407。
[0255]
在步骤s1405中,可以将起点初始化为1。即,可以将起点更新为p2l映射表储存器中包括的第一时隙的索引。
[0256]
在步骤s1407中,起点可以增加1。即,可以将起点更新为存储最后清除的p2l映射段的时隙的下一个时隙的索引。
[0257]
图15是描述根据实施例的存储器控制器的操作的流程图。
[0258]
参照图15,在步骤s1501中,存储器控制器可以基于与主机的写入请求或取消映射请求对应的逻辑地址来存储p2l映射数据。与写入请求对应的逻辑地址可以是主机提供的数据的逻辑地址。与取消映射请求对应的逻辑地址可以是将待从现有物理地址取消映射的逻辑地址。
[0259]
在步骤s1503中,存储器控制器可以感测p2l映射数据清除条件。例如,当存储的p2l映射数据的大小或进程期望时间等于或大于阈值时,可以执行清除操作。
[0260]
在步骤s1505中,存储器控制器可以对一些存储的p2l映射数据执行清除操作。
[0261]
在步骤s1507中,存储器控制器可以基于一些所清除的p2l映射数据来执行更新存储器装置中存储的l2p映射数据的映射更新操作。
[0262]
图16是详细描述图15的流程图。
[0263]
参照图16,在步骤s1601中,存储器控制器可以接收与主机的写入请求或取消映射请求对应的逻辑地址。
[0264]
在步骤s1603中,存储器控制器可以基于所接收的逻辑地址来生成并存储p2l映射数据。具体地,当所接收的逻辑地址是写入请求的逻辑地址时,存储器控制器可以生成指示物理地址与逻辑地址之间的映射关系的p2l映射数据,该物理地址指示写入数据的存储位置。当所接收的逻辑地址是取消映射请求的逻辑地址时,存储器控制器可以生成通过将映射到取消映射请求的逻辑地址的现有物理地址改变为取消映射数据而获得的p2l映射数据。
[0265]
在步骤s1605中,存储器控制器可以确定是否满足p2l映射段清除条件。作为确定的结果,当满足清除条件时,进程进行到步骤s1607,否则,进程进行到步骤s1601。
[0266]
具体地,当存储的p2l映射段的数量等于或大于阈值数量时,或者当存储的p2l映射段的进程期望时间等于或大于阈值时间时,存储器控制器可以确定满足清除条件。
[0267]
在步骤s1607中,存储器控制器可以对包括在p2l映射表中的所有p2l映射段中的一些p2l映射段执行清除操作。
[0268]
在步骤s1609中,存储器控制器可以基于所清除的一些p2l映射段来更新映射更新缓冲器中存储的l2p映射数据。
[0269]
在步骤s1611中,存储器控制器可以基于映射更新缓冲器中存储的更新的l2p映射数据来更新存储器装置中存储的l2p映射数据。
[0270]
图17是描述根据另一实施例的存储器控制器的操作的流程图。
[0271]
参照图17,在步骤s1701中,存储器控制器可以接收来自主机的取消映射请求。存储器控制器可以接收取消映射请求连同取消映射请求的逻辑地址。
[0272]
在步骤s1703中,存储器控制器可以取消映射l2p映射管理表中的取消映射请求的l2p段的映射数据。l2p映射管理表可以包括指示在存储器装置中存储多个l2p映射段的位置的映射数据地址。具体地,存储器控制器可以将取消映射请求的l2p段的映射数据地址改变为取消映射数据。在这种情况下,可以将在包括在取消映射的l2p段中的物理地址中存储的数据识别为主机和存储装置中的擦除数据。
[0273]
图18是描述图1的存储器控制器的另一实施例的示图。
[0274]
参照图18,存储器控制器1000连接到主机host和存储器装置。存储器控制器1000被配置为响应于来自主机host的请求访问存储器装置。例如,存储器控制器1000被配置为控制存储器装置的写入操作、读取操作、擦除操作和后台操作。存储器控制器1000被配置为提供存储器装置和主机host之间的接口。存储器控制器1000被配置为驱动固件以控制存储器装置。
[0275]
存储器控制器1000可以包括处理器1010、存储器缓冲器1020、错误校正器(ecc)1030、主机接口1040、缓冲器控制电路1050、存储器接口1060和总线1070。
[0276]
总线1070可以被配置为提供存储器控制器1000的组件之间的通道。
[0277]
处理器1010可以控制存储器控制器1000的全部操作,并且可以执行逻辑操作。处理器1010可以通过主机接口1040与外部主机通信,并通过存储器接口1060与存储器装置通信。此外,处理器1010可以通过缓冲器控制器1050与存储器缓冲器1020通信。处理器1010可以使用存储器缓冲器1020作为操作存储器、高速缓存存储器或缓冲存储器来控制存储装置的操作。
[0278]
处理器1010可以执行闪存转换层(ftl)的功能。处理器1010可以通过闪存转换层(ftl)将由主机提供的逻辑块地址(lba)转换成物理块地址(pba)。闪存转换层(ftl)可以使用映射表来接收逻辑块地址(lba),并且可以将逻辑块地址(lba)转换成物理块地址(pba)。根据映射单元,存在各种闪存转换层的地址映射方法。代表性的地址映射方法包括页面映射方法、块映射方法和混合映射方法。
[0279]
处理器1010配置为使从主机host接收的数据随机化。例如,处理器1010可以使用随机化种子来使从主机host接收的数据随机化。将经随机化的数据作为待存储的数据提供到存储器装置,并被编程到存储器单元阵列中。
[0280]
在读取操作期间,处理器1010被配置为使从存储器装置接收的数据去随机化。例如,处理器1010可以使用去随机化种子使从存储器装置接收的数据去随机化。经去随机化的数据可输出到主机host。
[0281]
作为实施例,处理器1010可以通过驱动软件或固件来执行随机化和去随机化。
[0282]
存储器缓冲器1020可以用作处理器1010的操作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可以存储由处理器1010执行的代码和命令。存储器缓冲器1020可以存储由处理器1010处理的数据。数据存储缓冲器1020可以包括静态ram(sram)或动态ram(dram)。
[0283]
错误校正器1030可以执行错误校正。错误校正器1030可以基于待通过存储器接口1060写入存储器装置的数据执行错误校正编码(ecc编码)。经错误校正编码的数据可以通
过存储器接口1060传送到存储器装置。错误校正器1030可以对通过存储器接口1060从存储器装置接收的数据执行错误校正解码(ecc解码)。作为示例,错误校正器1030可以作为存储器接口1060的组件而包括在存储器接口1060中。
[0284]
主机接口1040被配置为在处理器1010的控制下与外部主机进行通信。主机接口1040可以配置为使用诸如以下的各种通信方法中的至少一种来执行通信:通用串行总线(usb)、串行at附件(sata)、串列scsi(sas)、高速芯片间(hsic)、小型计算机系统接口(scsi)、外围组件互连(高速pci)、非易失性高速存储器(nvme)、通用闪存(ufs)、安全数字(sd)、多媒体卡(mmc)、嵌入式mmc(emmc)、双列直插式存储器模块(dimm)、寄存式dimm(rdimm)和低负载dimm(lrdimm)。
[0285]
缓冲器控制器1050被配置为在处理器1010的控制下控制存储器缓冲器1020。
[0286]
存储器接口1060被配置为在处理器1010的控制下与存储器装置通信。存储器接口1060可以通过通道与存储器装置通信命令、地址和数据。
[0287]
作为示例,存储器控制器1000可以不包括存储器缓冲器1020和缓冲器控制器1050。
[0288]
作为示例,处理器1010可以使用代码来控制存储器控制器1000的操作。处理器1010可以从设置在存储器控制器1000内部的非易失性存储器装置(例如,只读存储器)中加载代码。作为另一示例,处理器1010可以通过存储器接口1060从存储器装置中加载代码。
[0289]
作为示例,存储器控制器1000的总线1070可以被划分为控制总线和数据总线。数据总线可以被配置为在存储器控制器1000内传送数据,控制总线可以被配置为在存储器控制器1000内传送诸如命令和地址的控制信息。数据总线和控制总线可以彼此分开,并且不会彼此干扰或影响。数据总线可以连接到主机接口1040、缓冲器控制器1050、错误校正器1030和存储器接口1060。控制总线可以连接到主机接口1040、处理器1010、缓冲器控制器1050、存储器缓冲器1020和存储器接口1060。
[0290]
图19是示出应用了根据本公开实施例的存储装置的存储卡系统的框图。
[0291]
参照图19,存储卡系统2000包括存储器控制器2100、存储器装置2200和连接器2300。
[0292]
存储器控制器2100连接到存储器装置2200。存储器控制器2100被配置为访问存储器装置2200。例如,存储器控制器2100可以被配置为控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100被配置为提供存储器装置2200和主机host之间的接口。存储器控制器2100被配置为驱动固件来控制存储器装置2200。存储器控制器2100可以以与参照图1描述的存储器控制器200相同的方式来实施。
[0293]
作为示例,存储器控制器2100可以包括诸如随机存取存储器(ram)、处理器、主机接口、存储器接口和错误校正器的组件。
[0294]
存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以根据特定的通信标准与外部装置(例如,主机)通信。作为示例,存储器控制器2100被配置为通过诸如以下的各种通信标准中的至少一种与外部装置进行通信:通用串行总线(usb)、多媒体卡(mmc)、嵌入式mmc(mcm)、外围组件互连(pci)、高速pci(pci-e)、高级技术附件(ata)、串行ata、并行ata、小型计算机系统接口(scsi)、增强型小型磁盘接口(esdi)、电子集成驱动器(ide)、火线、通用闪存(ufs)、wi-fi、蓝牙和nvme。作为示例,连接器2300可以由
上述各种通信标准中的至少一种来定义。
[0295]
作为示例,存储器装置2200可以被配置为诸如以下的各种非易失性存储器元件:电可擦除可编程rom(eeprom)、nand闪速存储器、nor闪速存储器、相变ram(pram)、电阻式ram(reram)、铁电ram(fram)和自旋力矩转移磁性ram(stt-mram)。
[0296]
存储器控制器2100和存储器装置2200可以集成到一个半导体装置中以配置存储卡。例如,存储器控制器2100和存储器装置2200可以集成到一个半导体装置中以配置诸如pc卡(个人计算机存储卡国际协会(pcmcia))、紧凑型闪存卡(cf)、智能媒体卡(sm或smc)、记忆棒、多媒体卡(mmc、rs-mmc、mmcmicro或emmc)、sd卡(sd、迷你sd、微型sd或sdhc)和通用闪存(ufs)的存储卡。
[0297]
图20是示出应用了根据本公开实施例的存储装置的固态驱动器(ssd)系统的框图。
[0298]
参照图20,ssd系统3000包括主机3100和ssd3200。ssd3200通过信号连接器3001与主机3100交换信号sig,并通过电源连接器3002接收电力pwr。ssd3200包括ssd控制器3210、多个闪速存储器3221至322n、辅助电源装置3230和缓冲存储器3240。
[0299]
根据本公开的实施例,ssd控制器3210可以执行参照图1描述的存储器控制器200的功能。
[0300]
ssd控制器3210可以响应于从主机3100接收的信号sig控制多个闪速存储器3221至322n。作为示例,信号sig可以是基于主机3100和ssd3200之间的接口的信号。例如,信号sig可以是由诸如以下的各种接口中的至少一种限定的信号:通用串行总线(usb)、多媒体卡(mmc)、嵌入式mmc(mcm)、外围组件互连(pci)、高速pci(pci-e)、高级技术附件(ata)、串行ata、并行ata、小型计算机系统接口(scsi)、增强型小型磁盘接口(esdi)、电子集成驱动器(ide)、火线、通用闪存(ufs)、wi-fi、蓝牙和nvme。
[0301]
辅助电源装置3230通过电源连接器3002连接到主机3100。辅助电源装置3230可以从主机3100接收电力pwr并可以充电。当来自主机3100的电力供应不平稳时,辅助电源装置3230可以提供ssd 3200的电力。作为示例,辅助电源装置3230可以位于ssd 3200之中或者可以位于ssd 3200外部。例如,辅助电源装置3230可以位于主板上,并且可以向ssd 3200提供辅助电力。
[0302]
缓冲存储器3240操作为ssd 3200的缓冲存储器。例如,缓冲存储器3240可以临时存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者可以临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如dram、sdram、ddr sdram、lpddr sdram和gram的易失性存储器,或者诸如fram、reram、stt-mram和pram的非易失性存储器。
[0303]
图21是示出应用了根据本公开实施例的存储装置的用户系统的框图。
[0304]
参照图21,用户系统4000包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
[0305]
应用处理器4100可以驱动用户系统4000中包括的组件、操作系统(os)、用户程序等。作为示例,应用处理器4100可以包括控制用户系统4000中包括的组件的控制器、接口、图形引擎等。应用处理器4100可以设置为片上系统(soc)。
[0306]
存储器模块4200可以操作为用户系统4000的主存储器、操作存储器、缓冲存储器
或高速缓存存储器。存储器模块4200可以包括诸如dram、sdram、ddr sdram、ddr2 sdram、ddr3 sdram、lpddr sdarm、lpddr2 sdram和lpddr3 sdram的易失性随机存取存储器或诸如pram、reram、mram和fram的非易失性随机存取存储器。作为示例,应用处理器4100和存储模块4200可以基于堆叠封装(pop)来封装,并且被设置为一个半导体封装。
[0307]
网络模块4300可以与外部装置通信。作为示例,网络模块4300可以支持诸如码分多址(cdma)、全球移动通信系统(gsm)、宽带cdma(wcdma)、cdma-2000、时分多址(tdma)、长期演进、wimax、wlan、uwb、蓝牙和wi-fi的无线通信。作为示例,网络模块4300可以包括在应用处理器4100中。
[0308]
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。可替换地,存储模块4400可以将存储在存储模块4400中的数据传送到应用处理器4100。作为示例,存储模块4400可以被实施为诸如相变ram(pram)、磁性ram(mram)、电阻式ram(rram)、nand闪存、nor闪存和三维nand闪存的非易失性半导体存储器元件。作为示例,存储模块4400可以设置为可移动存储装置(可移动驱动器),诸如存储卡和用户系统4000的外部驱动器。
[0309]
作为示例,存储模块4400可以包括多个非易失性存储器装置,并且多个非易失性存储器装置可以与参照图1描述的存储器装置100等同地操作。存储模块4400可以与参照图1描述的存储装置50等同地操作。
[0310]
用户接口4500可以包括用于向应用处理器4100输入数据或指令或者用于将数据输出到外部装置输出的接口。作为示例、用户接口4500可以包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口。用户接口4500可以包括诸如液晶显示器(lcd)、有机发光二极管(oled)显示装置、有源矩阵oled(amoled)显示装置、led、扬声器和电动机的用户输出接口。