一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

存储器控制器及其操作方法与流程

2021-10-29 21:01:00 来源:中国专利 TAG:存储器 控制器 操作方法 引用 申请

存储器控制器及其操作方法
1.相关申请的交叉引用
2.本技术要求于2020年4月29日提交的申请号为10

2020

0052851的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
3.本公开总体涉及一种电子装置,且更特别地,涉及一种存储器控制器及其操作方法。


背景技术:

4.存储装置在诸如计算机或智能电话的主机装置的控制下存储数据。存储装置可以包括用于存储数据的存储器装置以及用于控制存储器装置的存储器控制器。通常,存在两种类型的存储器装置:易失性存储器装置和非易失性存储器装置。
5.在易失性存储器装置中,仅当供电时才存储数据;当电力供应中断时,所存储的数据丢失。易失性存储器装置的示例包括静态随机存取存储器(sram)、动态随机存取存储器(dram)等。
6.在非易失性存储器装置中,即使在电力供应中断时也保留数据。非易失性存储器装置的示例包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除rom(eerom)、闪速存储器等。


技术实现要素:

7.实施例提供一种用于高效地执行后台操作的存储器控制器以及该存储器控制器的操作方法。
8.根据本公开的一方面,提供了一种控制存储器装置的存储器控制器,该存储器控制器包括:主机接口,被配置为通过链路与主机通信,通过监测链路的质量来确定链路的质量是否已经劣化,并且当确定链路的质量劣化时对该链路执行链路恢复操作;以及后台控制器,被配置为在链路恢复操作正被执行的同时,控制存储器装置以执行后台操作。
9.根据本公开的另一方面,提供了一种操作存储器控制器的方法,该存储器控制器用于控制存储器装置,该方法包括:基于通过监测与主机通信的链路的质量而获得的结果,确定链路的质量是否已经劣化;当确定链路的质量劣化时,对链路执行链路恢复操作;并且在链路恢复操作正被执行的同时,控制存储器装置以执行后台操作。
10.根据本公开的另一方面,提供了一种操作存储器控制器的方法,该存储器控制器通过链路与主机通信并且控制存储器装置,该操作方法包括:恢复链路;并且在恢复期间,控制存储器装置以执行一个或多个后台操作。
附图说明
11.下面参照附图更全面地描述各个实施例;然而,本发明可以以不同的形式实现,因
此不应该被解释为限于本文所阐述的实施例。相反,提供这些实施例是为了使本公开是彻底且完整的,并且向本领域技术人员全面地传达实施例的范围。
12.图1是示出根据本公开的实施例的存储装置的示图。
13.图2是示出图1所示的存储器装置的结构的示图。
14.图3是示出诸如2所示的存储器单元阵列的示图。
15.图4是示出诸如图1所示的存储器控制器的配置和操作的示图。
16.图5是示出根据本公开的实施例的链路管理操作的示图。
17.图6是示出图5所示的链路质量劣化检测的示图。
18.图7是示出根据本公开的实施例的链路管理操作的示图。
19.图8是示出图7所示的链路质量劣化检测的示图。
20.图9是示出图5和图7所示的链路恢复操作的示图。
21.图10是示出根据本公开的实施例的存储器控制器的操作的流程图。
22.图11是示出根据本公开的实施例的存储器控制器的操作的流程图。
23.图12是示出图1所示的存储器控制器的另一实施例的示图。
24.图13是示出根据本公开的实施例的应用了存储装置的卡系统的框图。
25.图14是示出根据本公开的实施例的存储装置的框图。
26.图15是示出根据本公开的实施例的应用了存储装置的用户系统的框图。
具体实施方式
27.本文所公开的特定结构或功能描述仅是为了描述根据本公开的构思的实施例的目的。然而,本发明可以以各种形式实施,因此不限于本文所阐述的实施例。
28.图1是示出根据本公开的实施例的存储装置的示图。
29.参照图1,存储装置50可以包括存储器装置100和被配置为控制存储器装置100的操作性能的存储器控制器200。存储装置50可以在诸如移动电话、智能电话、mp3播放器、膝上型计算机、台式计算机、游戏机、tv、平板pc或车载信息娱乐系统的主机300的控制下存储数据。
30.可以根据作为与主机300的通信方案的主机接口,将存储装置50配置为各种类型的存储装置中的任意一种。例如,存储装置50可以利用诸如以下的各种类型的存储装置中的任意一种来实施:固态驱动器(ssd)、多媒体卡(mmc)、嵌入式mmc(emmc)、缩小尺寸的mmc(rs

mmc)、微型mmc(micro

mmc)、安全数字(sd)卡、迷你sd卡、微型sd卡、通用串行总线(usb)存储装置、通用闪存(ufs)装置、紧凑型闪存(cf)卡、智能媒体卡(smc)和/或记忆棒。
31.存储装置50可以被制造为各种封装类型中的任意一种。例如,存储装置50可以被制造为堆叠封装(pop)、系统级封装(sip)、片上系统(soc)、多芯片封装(mcp)、板上芯片(cob)、晶圆级制造封装(wfp)和/或晶圆级堆叠封装(wsp)。
32.存储器装置100可以存储数据。存储器装置100在存储器控制器200的控制下操作。存储器装置100可以包括存储器单元阵列,该存储器单元阵列包括用于存储数据的多个存储器单元。
33.存储器单元中的每一个可以被配置为存储一个数据位的单层单元(slc)、存储两个数据位的多层单元(mlc)、存储三个数据位的三层单元(tlc)或存储四个数据位的四层单
元(qlc)。
34.存储器单元阵列可以包括多个存储块。每个存储块可以包括多个存储器单元。一个存储块可以包括多个页面。在实施例中,页面可以是用于将数据存储在存储器装置100中或读取存储器装置100中存储的数据的单位。
35.存储块可以是用于擦除数据的单位。在实施例中,存储器装置100可以是双倍数据速率同步动态随机存取存储器(ddr sdram)、低功率双倍数据速率4(lpddr4)sdram、图形双倍数据速率(gddr)sram、低功率ddr(lpddr)、rambus动态随机存取存储器(rdram)、nand闪速存储器、垂直nand闪速存储器、nor闪速存储器、电阻式随机存取存储器(rram)、相变随机存取存储器(pram)、磁阻随机存取存储器(mram)、铁电随机存取存储器(fram)、自旋转移扭矩随机存取存储器(stt

ram)等。在本说明书中,通过示例的方式,在存储器装置100是nand闪速存储器的背景下描述本发明。
36.存储器装置100从存储器控制器200接收命令和地址,并且访问存储器单元阵列中的通过地址选择的区域。也就是说,存储器装置100可以对通过地址选择的区域执行由命令指示的操作。例如,存储器装置100可以执行写入(编程)操作、读取操作和擦除操作。在编程操作中,存储器装置100可以将数据编程在通过地址选择的区域中。在读取操作中,存储器装置100可以从通过地址选择的区域中读取数据。在擦除操作中,存储器装置100可以擦除通过地址选择的区域中存储的数据。
37.存储器控制器200可以控制存储装置50的全部操作。
38.当向存储装置50供应电力时,存储器控制器200可以运行固件(fw)。当存储器装置100是闪速存储器装置时,存储器控制器200可以运行诸如闪存转换层(ftl)的fw,以用于控制主机300和存储器装置100之间的通信。
39.在实施例中,存储器控制器200可以从主机300接收数据和逻辑块地址(lba),并且将lba转换为物理块地址(pba),该pba表示存储器装置100中包括的、将存储数据的存储器单元的地址。
40.存储器控制器200可以响应于来自主机300的请求,控制存储器装置100以执行编程操作、读取操作、擦除操作等。在编程操作中,存储器控制器200可以向存储器装置100提供编程命令、pba和数据。在读取操作中,存储器控制器200可以向存储器装置100提供读取命令和pba。在擦除操作中,存储器控制器200可以向存储器装置100提供擦除命令和pba。
41.在实施例中,存储器控制器200可以自主地生成命令、地址和数据而无需来自主机300的请求,并且将命令、地址和数据传输到存储器装置100。例如,存储器控制器200可以将命令、地址和数据提供到存储器装置100以执行后台操作,诸如用于损耗均衡的编程操作以及用于垃圾收集的编程操作。
42.在实施例中,存储器控制器200可以控制至少两个存储器装置100。存储器控制器200可以根据交错方案来控制存储器装置,以便提高操作性能。该交错方案可以是允许至少两个存储器装置100的操作时间彼此重叠的操作方案。
43.在实施例中,存储器控制器200可以包括主机接口210和后台控制器220。
44.主机接口210可以通过链路与主机300通信。
45.在实施例中,主机接口210可以包括诸如物理层、数据链路层、网络层和传输层的各种层。在实施例中,应用于物理层的协议可以包括应用于传输层的协议可以包
括用于ufs通信的但是,各个层的协议不限于这些示例。
46.主机接口210可以监测主机300和存储装置50之间的链路的质量。主机接口210可以基于监测结果来生成表示链路质量是否已经劣化的链路质量信息。
47.在实施例中,主机接口210可以基于链路质量信息来执行链路恢复操作。例如,当基于链路质量信息确定了链路的质量已经劣化时,主机接口210可以执行链路恢复操作。在各个实施例中,主机接口210可以响应于主机300的请求来执行链路恢复操作。
48.链路恢复操作可以补偿由于链路的电压条件的改变、链路的电流条件的改变和/或链路的温度条件的改变而导致的链路的质量劣化。当主机接口210执行链路恢复操作时,主机接口210可以使得链路的电压条件、链路的电流条件和/或链路的温度条件等同于参考条件。
49.在实施例中,可以根据应用于链路的协议来确定参考条件。例如,当链路中的物理层对应于协议时,该参考条件可以包括以用于在发送器和接收器之间交换的物理信号的正确通信的协议标准定义的电压条件、电流条件和/或温度条件。
50.在另一实施例中,可以根据主机300的请求确定参考条件。例如,主机300可以将用于主机300和主机接口210之间的合适通信的电压条件、电流条件和/或温度条件设置为参考条件。主机300可以向主机接口210提供关于所设置的参考条件的信息。
51.主机接口210可以生成关于链路恢复操作的链路恢复时间信息。主机接口210可以将链路恢复时间信息提供到后台控制器220。主机接口210可以生成表示开始链路恢复操作的时间的链路恢复开始信息。主机接口210可以生成表示链路恢复操作完成的时间的链路恢复完成信息。在链路恢复操作正被执行的同时,即在链路恢复时间期间,后台控制器220可以控制存储器装置100以执行后台操作。后台操作可以包括不考虑主机300的任何请求而执行的、以保持存储器装置100的性能的一般操作。在实施例中,后台操作可以包括读取回收操作、垃圾收集操作、损耗均衡操作等。读取回收操作可以根据多个存储块中的每一个的读取计数,将存储块中存储的数据移动到另一存储块,以使得多个存储块的读取计数均匀。垃圾收集操作可以通过将当前存储在牺牲块中的有效数据存储在另一存储块中,然后擦除该牺牲块中的剩余数据以生成空闲块,来获得空闲块。损耗均衡操作可以根据多个存储块中的每一个的擦除/写入计数,将存储块中存储的数据移动到另一存储块,以使得多个存储块的擦除/写入计数均匀。
52.后台控制器220可以包括后台队列。在各个实施例中,后台队列可以位于后台控制器220的外部。后台队列可以存储指示对存储器装置100的后台操作的至少一个后台命令。
53.后台控制器220可以基于关于链路恢复操作的链路恢复时间信息来确定将后台队列中存储的后台命令输出到存储器装置100的顺序。在链路恢复操作正被执行的同时,后台控制器220可以根据所确定的顺序向存储器装置100提供后台队列中存储的后台命令。
54.在实施例中,后台控制器220可以存储关于后台命令中的每一个的命令处理时间信息。后台控制器220可以将命令处理时间信息与关于链路恢复操作的链路恢复时间信息进行比较。后台控制器220可以基于比较结果,提供后台队列中存储的后台命令之中的、待优先提供到存储器装置100的目标后台命令。
55.在实施例中,后台控制器220可以响应于链路恢复开始信息而向存储器装置100提供后台队列中存储的后台命令。后台控制器220可以响应于链路恢复完成信息而暂停或停
止将后台队列中剩余的任何后台命令提供到存储器装置100。
56.主机300可以使用诸如以下的各种通信协议中的至少一种与存储装置50通信:通用串行总线(usb)、串行at附件(sata)、高速芯片间(hsic)、小型计算机系统接口(scsi)、火线、外围组件互连(pci)、高速pci(pcie)、高速非易失性存储器(nvme)、通用闪存(ufs)、安全数字(sd)、多媒体卡(mmc)、嵌入式mmc(emmc)、双列直插式存储器模块(dimm)、寄存式dimm(rdimm)和/或低负载dimm(lrdimm)。
57.图2是示出图1所示的存储器装置的结构的示图。
58.参照图2,存储器装置100可以包括存储器单元阵列110、外围电路120和控制逻辑130。
59.存储器单元阵列110包括通过行线rl联接到地址解码器121的多个存储块blk1至blkz。多个存储块blk1至blkz通过位线bl1至blm联接到读取/写入电路123。多个存储块blk1至blkz中的每一个包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。联接到相同字线的存储器单元可以被定义为一个物理页面。也就是说,存储器单元阵列110可以配置有多个物理页面。根据本公开的实施例,存储器单元阵列110中的多个存储块blk1至blkz中的每一个可以包括多个虚设单元。一个或多个虚设单元可以串联联接在漏极选择晶体管和存储器单元之间以及源极选择晶体管和存储器单元之间。
60.存储器装置的存储器单元中的每一个可以被配置为存储一个数据位的单层单元(slc)、存储两个数据位的多层单元(mlc)、存储三个数据位的三层单元(tlc)或存储四个数据位的四层单元(qlc)。
61.外围电路120可以包括地址解码器121、电压生成器122、读取/写入电路123、数据输入/输出电路124和感测电路125。
62.外围电路120驱动存储器单元阵列110。例如,外围电路120可以驱动存储器单元阵列110以执行编程操作、读取操作和擦除操作。
63.地址解码器121通过行线rl联接到存储器单元阵列110。行线rl可以包括漏极选择线、字线、源极选择线和公共源极线。根据本公开的实施例,字线可以包括正常字线和虚设字线。根据本公开的实施例,行线rl可以进一步包括管道选择线。
64.地址解码器121可以在控制逻辑130的控制下操作。地址解码器121从控制逻辑130接收地址addr。
65.地址解码器121可以对所接收的地址addr中的块地址进行解码。地址解码器121根据解码后的块地址来选择存储块blk1至blkz之中的至少一个存储块。地址解码器121可以对所接收的地址addr中的行地址进行解码。地址解码器121可以在根据解码后的行地址而选择的存储块的字线之中选择至少一个字线。地址解码器121可以将从电压生成器122供应的操作电压vop施加到所选择的字线。
66.在编程操作中,地址解码器121可以将编程电压施加到所选择的字线,并且将低于编程电压的通过电压施加到未选择的字线。在编程验证操作中,地址解码器121可以将验证电压施加到所选择的字线,并且将高于验证电压的验证通过电压施加到未选择的字线。
67.在读取操作中,地址解码器121可以将读取电压施加到所选择的字线,并且将高于读取电压的读取通过电压施加到未选择的字线。
68.根据本公开的实施例,以存储块为单位执行存储器装置100的擦除操作。在擦除操
作中,输入到存储器装置100的地址addr包括块地址。地址解码器121可以对块地址进行解码,并且根据解码后的块地址选择至少一个存储块。在擦除操作中,地址解码器121可以将接地电压施加到与所选择的存储块联接的字线。
69.根据本公开的实施例,地址解码器121可以对所传输的地址addr中的列地址进行解码。可以将解码后的列地址传输到读取/写入电路123。在示例中,地址解码器121可以包括诸如行解码器、列解码器和地址缓冲器的组件。
70.电压生成器122可以通过使用供应到存储器装置100的外部电源电压来生成多个操作电压vop。电压生成器122在控制逻辑130的控制下操作。
71.在实施例中,电压生成器122可以通过调节外部电源电压来生成内部电源电压。将通过电压生成器122生成的内部电源电压用作存储器装置100的操作电压。
72.在实施例中,电压生成器122可以使用外部电源电压或内部电源电压来生成多个操作电压vop。电压生成器122可以生成供存储器装置100使用的各种电压。例如,电压生成器122可以生成多个擦除电压、多个编程电压、多个通过电压、多个选择读取电压和多个未选择读取电压。
73.为了生成具有各种电压电平的多个操作电压vop,电压生成器122可以包括用于接收内部电源电压的多个泵浦电容器,并且可以在控制逻辑130的控制下,通过选择性地启用多个泵浦电容器来生成多个操作电压vop。
74.可以通过地址解码器121将多个所生成的电压vop提供到存储器单元阵列110。
75.读取/写入电路123包括通过各自的第一至第m位线bl1至blm联接到存储器单元阵列110的第一至第m页面缓冲器pb1至pbm。第一至第m页面缓冲器pb1至pbm在控制逻辑130的控制下操作。
76.第一至第m页面缓冲器pb1至pbm与数据输入/输出电路124通信数据data。在编程操作中,第一至第m页面缓冲器pb1至pbm通过数据输入/输出电路124和数据线dl接收待存储的数据data。
77.在编程操作中,当将编程脉冲施加到所选择的字线时,第一至第m页面缓冲器pb1至pbm可以通过位线bl1至blm将通过数据输入/输出电路124接收的数据data传送到所选择的存储器单元。根据所传送的数据data对所选择的存储器单元中的存储器单元进行编程。联接到施加编程允许电压(例如,接地电压)的位线的存储器单元可以具有增加的阈值电压。可以保持联接到施加编程禁止电压(例如,电源电压)的位线的存储器单元的阈值电压。在编程验证操作中,第一至第m页面缓冲器pb1至pbm通过位线bl1至blm从所选择的存储器单元读取所选择的存储器单元中存储的数据data。
78.在读取操作中,读取/写入电路123可以通过位线bl从所选择的页面的存储器单元读取数据data,并且将所读取的数据data存储在第一至第m页面缓冲器pb1至pbm中。
79.在擦除操作中,读取/写入电路123可以使位线bl浮置。在实施例中,读取/写入电路123可以包括列选择电路。
80.数据输入/输出电路124通过数据线dl联接到第一至第m页面缓冲器pb1至pbm。数据输入/输出电路124在控制逻辑130的控制下操作。
81.数据输入/输出电路124可以包括接收输入数据data的多个输入/输出缓冲器(未示出)。在编程操作中,数据输入/输出电路124可以从外部控制器(未示出)接收待存储的数
据data。在读取操作中,数据输入/输出电路124将从读取/写入电路123中包括的第一至第m页面缓冲器pb1至pbm传输的数据输出到外部控制器。
82.在读取操作或验证操作中,感测电路125可以响应于通过控制逻辑130生成的允许位vrybit信号而生成参考电流,并且作为将从读取/写入电路123接收的感测电压vpb与由参考电流生成参考电压进行比较的结果,将通过信号或失败信号输出到控制逻辑130。
83.控制逻辑130可以联接到地址解码器121、电压生成器122、读取/写入电路123、数据输入/输出电路124和感测电路125。控制逻辑130可以控制存储器装置100的全部操作。控制逻辑130可以响应于从外部装置传送的命令cmd而操作。
84.控制逻辑130可以通过响应于命令cmd和地址addr而生成若干信号来控制外围电路120。例如,控制逻辑130可以响应于命令cmd和地址addr而生成操作信号opsig、行地址radd、读取/写入电路控制信号pbsignals和允许位vrybit。控制逻辑130可以将操作信号opsig输出到电压生成器122,将行地址radd输出到地址解码器121,将读取/写入电路控制信号pbsignals输出到读取/写入电路123,并且将允许位vrybit输出到感测电路125。而且,控制逻辑130可以响应于由感测电路125输出的通过或失败信号pass/fail来确定验证操作是通过还是失败。
85.图3是示出图2所示的存储器单元阵列的示图。
86.参照图3,第一至第z存储块blk1至blkz共同联接到第一至第m位线bl1至blm。在图3中,示出并描述了多个存储块blk1至blkz之中的第一存储块blk1中包括的组件;省略了其他存储块blk2至blkz中的每一个中包括的组件。将理解的是,其他存储块blk2至blkz中的每一个与第一存储块blk1相同地配置。
87.存储块blk1可以包括多个单元串cs1_1至cs1_m(m是正整数)。第一至第m单元串cs1_1至cs1_m分别联接到第一至第m位线bl1至blm。第一至第m单元串cs1_1至cs1_m中的每一个包括漏极选择晶体管dst、串联联接的多个存储器单元mc1至mcn(n是正整数)和源极选择晶体管sst。
88.第一至第m单元串cs1_1至cs1_m中的每一个中包括的漏极选择晶体管dst的栅极端子联接到漏极选择线dsl1。第一至第m单元串cs1_1至cs1_m中的每一个中包括的第一至第n存储器单元mc1至mcn的栅极端子分别联接到第一至第n字线wl1至wln。第一至第m单元串cs1_1至cs1_m中的每一个中包括的源极选择晶体管sst的栅极端子联接到源极选择线ssl1。
89.通过示例的方式,描述了多个单元串cs1_1至cs1_m之中的第一单元串cs1_1的结构。其他单元串cs1_2至cs1_m中的每一个与第一单元串cs1_1相同地配置。
90.第一单元串cs1_1中包括的漏极选择晶体管dst的漏极端子联接到第一位线bl1。第一单元串cs1_1中包括的漏极选择晶体管dst的源极端子联接到第一单元串cs1_1中包括的第一存储器单元mc1的漏极端子。第一至第n存储器单元mc1至mcn彼此串联联接。第一单元串cs1_1中包括的源极选择晶体管sst的漏极端子联接到第一单元串cs1_1中包括的第n存储器单元mcn的源极端子。第一单元串cs1_1中包括的源极选择晶体管sst的源极端子联接到公共源极线csl。在实施例中,公共源极线csl可以共同联接到第一至第z存储块blk1至blkz。
91.漏极选择线dsl1、第一至第n字线wl1至wln以及源极选择线ssl1被包括在图2所示
的行线rl中。漏极选择线dsl1、第一至第n字线wl1至wln以及源极选择线ssl1由图2所示的地址解码器121控制。公共源极线csl可以由图2所示的控制逻辑130控制。第一至第m位线bl1至blm由图2所示的读取/写入电路123控制。
92.图4是示出图1所示的存储器控制器的配置和操作的示图。
93.在实施例中,存储器控制器200可以包括主机接口210和后台控制器220。存储器控制器200可以通过主机接口210与主机300通信。
94.主机接口210可以包括链路监测组件211和链路管理器212。链路监测组件211可以监测链路,例如存储器控制器200和主机300之间的链路的质量。链路监测组件211可以基于监测结果来生成表示链路的质量是否已经劣化的链路质量信息。
95.链路管理器212可以基于链路质量信息执行链路恢复操作。例如,当基于链路质量信息确定链路的质量已经劣化时,链路管理器212可以执行链路恢复操作。在各个实施例中,链路管理器212可以响应于主机300的请求来执行链路恢复操作。
96.当链路管理器212执行链路恢复操作时,链路管理器212可以使得链路的电压条件、链路的电流条件和/或链路的温度条件等同于各自的参考条件。
97.在实施例中,可以根据应用于链路的协议来确定参考条件。例如,当链路中的物理层对应于协议时,参考条件可以是电压条件、电流条件和/或温度条件,该电压条件、电流条件和温度条件中的每一个以用于发送器和接收器之间的正常通信的来定义。
98.在另一实施例中,可以根据主机300的请求来确定参考条件。例如,主机300可以将用于主机300和主机接口210之间的合适通信的电压条件、电流条件和/或温度条件设置为参考条件。主机300可以向链路管理器212提供关于所设置的参考条件的信息。
99.链路管理器212可以生成关于链路恢复操作的链路恢复时间信息lrt_inf。链路管理器212可以将链路恢复时间信息lrt_inf提供到队列控制器221。链路管理器212可以生成表示开始链路恢复操作的时间的链路恢复开始信息lri_inf。链路管理器212可以生成表示链路恢复操作完成的时间的链路恢复完成信息lrf_inf。
100.在链路恢复操作正被执行的同时,后台控制器220可以控制存储器装置100以执行后台操作。后台操作可以包括在没有主机300的任何请求的情况下执行的、以维持存储器装置100的性能的一般操作。在实施例中,后台操作可以包括读取回收操作、垃圾收集操作、损耗均衡操作等。
101.后台控制器220可以包括队列控制器221和后台队列222。在各个实施例中,后台队列222可以在后台控制器220内部或外部。后台队列222可以存储指示对存储器装置100的后台操作的至少一个后台命令。
102.队列控制器221可以基于关于链路恢复操作的链路恢复时间信息lrt_inf来确定将后台队列222中存储的后台命令输出到存储器装置100的顺序。在链路恢复操作正被执行的同时,队列控制器221可以根据所确定的顺序来向存储器装置100提供后台队列222中存储的后台命令。
103.在实施例中,队列控制器221可以存储关于后台命令中的每一个的命令处理时间信息。队列控制器221可以将命令处理时间信息与链路恢复操作的链路恢复时间信息lrt_inf进行比较。队列控制器221可以基于比较结果,来确定将后台队列222中存储的后台命令
之中的一个或多个后台命令提供到存储器装置100的顺序。
104.可以以各种方式确定命令提供顺序。例如,队列控制器221可以确定提供命令的顺序,以使得在链路恢复操作正被执行的同时处理最大数量的后台命令。例如,队列控制器221可以确定提供命令的顺序,以使得在链路恢复操作正被执行的同时优先处理所排队的后台命令之中的需要最长处理时间的后台命令。例如,队列控制器221可以确定提供命令的顺序,以使得优先处理所排队的后台命令之中的命令处理时间为参考时间或更短的后台命令。例如,队列控制器221可以确定提供命令的顺序,以使得优先处理所排队的后台命令之中的命令处理时间为参考时间或更长的后台命令。
105.在实施例中,队列控制器221可以基于所确定的顺序,向存储器装置100提供后台队列222中存储的后台命令之中的待优先处理的目标后台命令。
106.在实施例中,队列控制器221可以响应于链路恢复开始信息lri_inf而向存储器装置100提供后台队列222中存储的后台命令。队列控制器221可以响应于链路恢复完成信息lrf_inf而暂停或停止将后台队列222中剩余的任何后台命令提供到存储器装置100。
107.图5是示出根据本公开的实施例的链路管理操作的示图。
108.参照图5,参照图1描述的主机可以包括主机应用程序(host app)、主机设备管理实体(host dme)和主机ufs互连层(host uic)。图1的存储装置可以包括装置应用程序(device app)、装置设备管理实体(device dme)和装置ufs互连层(device uic)。
109.主机可以通过host app生成用于存储装置的命令,并且通过host dme和host uic将所生成的命令提供到存储装置。存储装置可以通过device uic和device dme接收主机所生成的命令,并且通过device app执行所接收的命令。
110.在实施例中,主机和存储装置可以通过交换物理信号来彼此通信。可以通过在host uic和device uic之间生成的链路来交换物理信号。host dme可以控制host uic,并且device dme可以控制device uic。
111.在图5中,由host app发出的读取命令可以通过host dme和host uic传送到device uic。传送到device uic的读取命令可以经由device dme传送到device app。
112.响应于读取命令,device app可以对存储器装置执行读取操作并且从存储器装置获取读取数据(读取净负荷)。所获取的读取数据可以通过device dme和device uic传送到host uic。传送到host uic的读取数据可以经由host dme传送到host app。
113.结合图5,描述了当检测到链路质量劣化时执行链路恢复操作的链路管理操作,以及在链路恢复操作正被执行的同时对存储器装置执行的后台操作。
114.可在host uic和device uic中检测到链路的质量劣化(s501)。
115.当在device uic中检测到链路的质量劣化时,device dme可以向device app提供表示由于链路质量劣化而有必要进行链路恢复操作的指示符dme_qos.ind(s503)。
116.当在host uic中检测到链路的质量劣化时,host dme可以向host app提供表示由于链路质量劣化而有必要进行链路恢复操作的指示符dme_qos.ind(s505)。
117.当device app从device dme接收指示符dme_qos.ind时,device app可以控制存储器装置以开始后台操作(s507)。
118.host uic可以在host dme的控制下传送请求改变电源配置的指示符pwr_req(s509)。
119.当device uic接收请求改变电源配置的指示符pwr_req时,device uic可以在device dme的控制下,向host uic传送表示是否已经接受或拒绝改变电源配置的请求的响应指示符pwr_cnf(s511)。
120.可以执行用于恢复host uic和device uic之间的链路质量的链路恢复操作(s513)。链路恢复操作可以使得链路的电压条件、电流条件或温度条件等同于相应的参考条件。可以对host uic和device uic中的至少一个执行链路恢复操作。
121.在实施例中,可以根据主机的请求来执行链路恢复操作。在另一实施例中,可以在存储装置的控制下执行链路恢复操作。
122.当链路恢复操作完成时,device uic可以向device dme提供包括通过改变电源模式而获得的结果的指示符pwr_mode_changed.ind(s515)。与device uic类似,host uic可以向host dme提供包括通过改变电源模式而获得的结果的指示符pwr_mode_changed.ind(s517)。
123.当device dme接收指示符pwr_mode_changed.ind时,device dme可以向device app提供包括用于电源模式改变的参数的指示符dme_powermode.ind(s519)。
124.当host dme接收包括通过改变电源模式而获得的结果的指示符pwr_mode_changed.ind时,host dme可以向host app提供包括用于电源模式改变的参数的指示符dme_powermode.ind(s521)。
125.当device app接收包括用于电源模式改变的参数的指示符dme_powermode.ind时,device app可以控制存储器装置以暂停后台操作(s523)。
126.当链路恢复操作完成时,主机与存储装置之间的通信可以恢复,如同检测到链路质量劣化之前那样。
127.在实施例中,device uic和device dme可以由参照图1描述的主机接口来实施。device app可以由参照图1描述的后台控制器来实施。
128.图6是示出图5所示的链路质量劣化检测的示图。
129.参照图6,device uic可以向host uic提供读取数据(读取净负荷)。每当host uic正常地接收读取数据时,host uic可以向device uic提供确认流控制afc。当host uic没有从device uic接收读取数据或者从device uic异常地接收读取数据时,host uic可以向device uic提供否定确认nac。
130.每当host uic向device uic提供否定确认nac时,host uic可以增加错误计数。每当device uic从host uic接收否定确认nac时,device uic可以增加错误计数。当所计数的错误数量超过阈值时,host uic和device uic中的每一个可以检测到已经发生了在host uic和device uic之间的链路的质量劣化。
131.图7是示出根据本公开的实施例的链路管理操作的示图。
132.参照图7,可以通过host dme和host uic将由host app发出的写入命令传送到device uic。传送到device uic的写入命令可以经由device dme传送到device app。
133.device app可以响应于写入命令,将表示device app已准备好接收写入数据的准备传送rtt通过device dme和device uic传送到host uic。传送到host uic的准备传送rtt可以经由host dme传送到host app。
134.响应于准备传送rtt,host app可以通过host dme和host uic将写入数据传送到
device uic。传送到device uic的写入数据可以经由device dme传送到device app。device app可以控制存储器装置以对所接收的写入数据进行编程。
135.在图7中,可以执行当检测到链路的质量劣化时执行链路恢复操作的链路管理操作。s701至s723分别与参照图5所描述的s501至s523相同。
136.当链路恢复操作完成时,主机与存储装置之间的通信可以恢复,如同检测到链路质量劣化之前那样。
137.在实施例中,device uic和device dme可以由参照图1描述的主机接口来实施。device app可以由参照图1描述的后台控制器来实施。
138.图8是示出图7所示的链路质量劣化检测的示图。
139.参照图8,host uic可以向device uic提供写入数据。每当device uic正常地接收写入数据时,device uic可以向host uic提供确认流控制afc。当device uic没有从host uic接收写入数据或者从host uic异常地接收写入数据时,device uic可以向host uic提供否定确认nac。
140.每当device uic向host uic提供否定确认nac时,device uic可以增加错误计数。每当host uic从device uic接收否定确认nac时,host uic可以增加错误计数。当所计数的错误超过阈值时,host uic和device uic中的每一个可以检测到已经发生了在host uic和device uic之间的链路的质量劣化。
141.图9是示出图5和图7所示的链路恢复操作的示图。
142.图9示出在链路恢复操作中的构成链路的发送器tx和接收器rx之间的信号和定时。
143.在t1处,发送器可以向接收器提供请求改变电源配置的指示符pwr_req。
144.在t2处,接收器可以向发送器提供表示是否已经接受或拒绝改变电源配置的请求的响应指示符pwr_cnf。在实施例中,改变电源配置可以包括改变链路的电压条件、电流条件或温度条件。
145.在t3处,发送器或接收器可以等待第一时间configtime1,使得另一端可以传输下一数据。
146.在t4处,发送器和接收器可以通过改变电源配置来执行链路恢复操作(“adpat sequence”)。当链路恢复操作完成时,在开始传输下一数据之前,发送器和接收器中的每一个可以等待第二时间configtime2。
147.图10是示出根据本公开的实施例的存储器控制器的操作的流程图。
148.参照图10,在操作s1001中,存储器控制器可以监测用于与主机通信的链路的质量,并且检测该链路的质量劣化。
149.在操作s1003中,存储器控制器可以开始链路恢复操作。链路恢复操作可以是使得链路的电压条件、链路的电流条件或链路的温度条件等同于参考条件,以便补偿链路质量劣化的操作。
150.在操作s1005中,存储器控制器可以控制存储器装置以执行后台操作。该后台操作可以包括读取回收操作、损耗均衡操作和垃圾收集操作。
151.在操作s1007中,存储器控制器可以确定是否已经完成链路恢复操作。当作为确定结果,链路恢复操作完成时,存储器控制器可以进行到操作s1009。当链路恢复操作未完成
时,存储器控制器可以进行到操作s1005。
152.在操作s1009中,存储器控制器可以控制存储器装置以完成后台操作。
153.在操作s1011中,存储器控制器可以恢复与主机的通信。
154.图11是示出根据本公开的实施例的存储器控制器的操作的流程图。
155.参照图11,在操作s1101中,存储器控制器可以将链路恢复操作的链路恢复时间与后台命令处理时间进行比较。
156.在操作s1103中,存储器控制器可以基于比较结果来确定向存储器装置提供后台命令的顺序。
157.可以各种方式确定提供命令的顺序。
158.例如,存储器控制器可以确定提供命令的顺序,以使得在链路恢复操作正被执行的同时处理最大数量的后台命令。例如,存储器控制器可以确定提供命令的顺序,以使得在链路恢复操作正被执行的同时优先处理所排队的后台命令之中的需要最长时间处理的后台命令。例如,存储器控制器可以确定提供命令的顺序,以使得优先处理所排队的后台命令之中的命令处理时间为参考值或更短的后台命令。例如,存储器控制器可以确定提供命令的顺序,以使得优先处理所排队的后台命令之中的命令处理时间为参考值或更长的后台命令。
159.在操作s1105中,在链路恢复操作正被执行的同时,存储器控制器可以根据所确定的顺序向存储器装置提供后台命令。
160.在操作s1107中,当链路恢复操作完成时,存储器控制器可以暂停或停止向存储器装置提供任何后台命令。
161.图12是示出图1所示的存储器控制器的另一实施例的示图。
162.参照图12,存储器控制器1000联接到主机和存储器装置。存储器控制器1000可以响应于从主机接收的请求来访问存储器装置。例如,存储器控制器1000可以控制存储器装置的写入操作、读取操作、擦除操作和后台操作。存储器控制器1000可以提供存储器装置和主机之间的接口。存储器控制器1000可以驱动固件来控制存储器装置。
163.存储器控制器1000可以包括处理器1010、存储器缓冲器1020、错误校正码(ecc)电路1030、主机接口1040、缓冲器控制电路1050、存储器接口1060和总线1070。
164.总线1070可以被配置为提供存储器控制器1000的组件之间的通道。
165.处理器1010可以控制存储器控制器1000的全部操作,并且可以执行逻辑操作。处理器1010可以通过主机接口1040与外部主机通信,并且可以通过存储器接口1060与存储器装置通信。而且,处理器1010可以通过缓冲器控制电路1050与存储器缓冲器1020通信。处理器1010可以通过将存储器缓冲器1020用作工作存储器、高速缓存存储器或缓冲存储器来控制存储装置的操作。
166.处理器1010可以执行闪存转换层(ftl)的功能。处理器1010可以通过ftl将由主机提供的逻辑块地址(lba)转换为物理块地址(pba)。ftl可以接收lba,并且使用映射表将lba转换成pba。根据映射单元,存在ftl的若干地址映射方法。代表性地址映射方法包括页面映射方法、块映射方法和混合映射方法。
167.处理器1010可以将从主机接收的数据随机化。例如,处理器1010可以使用随机化种子来将从主机接收的数据随机化。将经随机化的数据作为待存储的数据提供到存储器装
置,以编程在存储器单元阵列中。
168.在读取操作中,处理器1010可以将从存储器装置接收的数据去随机化。例如,处理器1010可以使用去随机化种子将从存储器装置接收的数据去随机化。经去随机化的数据可以输出到主机。
169.在实施例中,处理器1010可以通过驱动软件或固件来执行随机化和去随机化。
170.可以将存储器缓冲器1020用作处理器1010的工作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可以存储由处理器1010运行的代码和命令。存储器缓冲器1020可以包括静态ram(sram)或动态ram(dram)。
171.ecc电路1030可以执行ecc操作。ecc电路1030可以对将通过存储器接口1060写入存储器装置的数据执行ecc编码。经ecc编码的数据可以通过存储器接口1060传送到存储器装置。ecc电路1030可以对通过存储器接口1060从存储器装置接收的数据执行ecc解码。在示例中,ecc电路1030可以作为存储器接口1060的组件而被包括在存储器接口1060中。
172.主机接口1040可以在处理器1010的控制下与外部主机通信。主机接口1040可以使用诸如以下的各种通信协议中的至少一种与主机通信:通用串行总线(usb)、串行at附件(sata)、高速芯片间(hsic)、小型计算机系统接口(scsi)、火线、外围组件互连(pci)、高速pci(pcie)、高速非易失性存储器(nvme)、通用闪存(ufs)、安全数字(sd)、多媒体卡(mmc)、嵌入式mmc(emmc)、双列直插式存储器模块(dimm)、寄存式dimm(rdimm)和/或低负载dimm(lrdimm)。
173.缓冲器控制电路1050被配置为在处理器1010的控制下控制存储器缓冲器1020。
174.存储器接口1060被配置为在处理器1010的控制下与存储器装置通信。存储器接口1060可以通过通道与存储器装置通信命令、地址和数据。
175.在示例中,处理器1010可以通过使用代码来控制存储器控制器1000的操作。处理器1010可以从在存储器控制器1000中设置的非易失性存储器装置(例如,只读存储器(rom))加载代码。在另一实施例中,处理器1010可以通过存储器接口1060从存储器装置加载代码。
176.在示例中,存储器控制器1000的总线1070可以分为控制总线和数据总线。数据总线可以被配置为在存储器控制器1000中传输数据,并且控制总线可以被配置为在存储器控制器1000中传输诸如命令和地址的控制信息。数据总线和控制总线彼此分开,以便不相互干扰或影响。数据总线可以联接到主机接口1040、缓冲器控制电路1050、ecc电路1030和存储器接口1060。控制总线可以联接到主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。
177.在实施例中,主机接口1040可以与参照图1描述的主机接口210相同地操作。处理器1010可以与参照图1描述的后台控制器220相同地操作。
178.图13是示出根据本公开的实施例的应用了存储装置的卡系统的框图。
179.参照图13,存储卡系统2000包括存储器控制器2100、存储器装置2200和连接器2300。
180.存储器控制器2100联接到存储器装置2200。存储器控制器2100可以访问存储器装置2200。例如,存储器控制器2100可以控制存储器装置2200的写入操作、读取操作、擦除操作和后台操作。存储器控制器2100可以提供存储器装置2200和主机之间的接口。存储器控
制器2100可以驱动固件来控制存储器装置2200。存储器控制器2100可以与参照图1描述的存储器控制器200相同地实施。
181.在示例中,存储器控制器2100可以包括诸如随机存取存储器(ram)、处理器、主机接口、存储器接口和ecc电路的组件。
182.存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以根据特定的通信协议与外部装置(例如,主机)通信。在示例中,存储器控制器2100可通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(usb)、多媒体卡(mmc)、嵌入式mmc(emmc)、外围组件互连(pci)、高速pci(pcie)、高级技术附件(ata)、串行ata(sata)、并行ata(pata)、小型计算机系统接口(scsi)、增强型小型磁盘接口(esdi)、电子集成驱动器(ide)、火线、通用闪存(ufs)、wi

fi、蓝牙和/或nvme。
183.在示例中,存储器装置2200可以利用诸如以下的各种非易失性存储器装置中的任意一种来实施:电可擦除可编程rom(eeprom)、nand闪速存储器、nor闪速存储器、相变ram(pram)、电阻式ram(reram)、铁电ram(fram)和/或自旋转移扭矩磁性ram(stt

mram)。
184.存储器控制器2100和存储器装置2200可被集成到单个半导体装置中以构成诸如以下的存储卡:pc卡(个人计算机存储卡国际协会(pcmcia))、紧凑型闪存(cf)卡、智能媒体卡(sm和smc)、记忆棒、多媒体卡(mmc、rs

mmc、微型mmc和emmc)、sd卡(sd、迷你sd、微型sd和sdhc)和/或通用闪存(ufs)。
185.图14是示出根据本公开的实施例的应用了存储装置的固态驱动器(sdd)的框图。
186.参照图14,ssd系统3000包括主机3100和ssd 3200。ssd 3200通过信号连接器3001与主机3100交换信号sig,并且通过电源连接器3002接收电力pwr。ssd 3200包括ssd控制器3210、多个闪速存储器3221至322n、辅助电源3230和缓冲存储器3240。
187.在实施例中,ssd控制器3210可以用作参照图1描述的存储器控制器200。
188.ssd控制器3210可以响应于从主机3100接收的信号sig来控制多个闪速存储器3221至322n。在示例中,信号sig可以基于主机3100和ssd 3200之间的接口。例如,信号sig可以通过诸如以下的各种接口中的至少一种来定义:通用串行总线(usb)、多媒体卡(mmc)、嵌入式mmc(emmc)、外围组件互连(pci)、高速pci(pcie)、高级技术附件(ata)、串行ata(sata)、并行ata(pata)、小型计算机系统接口(scsi)、增强型小型磁盘接口(esdi)、电子集成驱动器(ide)、火线、通用闪存(ufs)、wi

fi、蓝牙和/或nvme。
189.辅助电源3230通过电源连接器3002联接到主机3100。当来自主机3100的电力供应不平稳时,辅助电源3230可以提供ssd 3200的电力。在示例中,辅助电源3230可以设置在ssd 3200内部或外部。例如,辅助电源3230可以设置在主板上,并且向ssd 3200提供辅助电力。
190.缓冲存储器3240作为ssd 3200的缓冲存储器来操作。例如,缓冲存储器3240可以临时存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如dram、sdram、ddr sdram、lpddr sdram和gram的易失性存储器或诸如fram、reram、stt

mram和/或pram的非易失性存储器中的任意一个。
191.图15是示出根据本公开的实施例的应用了存储装置的用户系统的框图。
192.参照图15,用户系统4000包括应用处理器4100、存储器模块4200、网络模块4300、
存储模块4400和用户接口4500。
193.应用处理器4100可以驱动用户系统4000中包括的组件、操作系统(os)、用户程序等。在示例中,应用处理器4100可以包括用于控制用户系统4000中包括的组件、接口、图形引擎等的控制器。应用处理器4100可以被设置为片上系统(soc)。
194.存储器模块4200可以作为用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器来操作。存储器模块4200可以包括诸如dram、sdram、ddr sdram、ddr2 sdrm、ddr3 sdram、lpddr sdram、lpddr2 sdram和/或lpddr3 sdram的易失性随机存取存储器或者诸如pram、reram、mram和/或fram的非易失性随机存取存储器。在示例中,应用处理器4100和存储器模块4200可以通过基于堆叠封装(pop)来封装而被设置为一个半导体封装。
195.网络模块4300可以与外部装置通信。在示例中,网络模块4300可以支持诸如以下的无线通信:码分多址(cdma)、全球移动通信系统(gsm)、宽带cdma(wcdma)、cdma

2000、时分多址(tdma)、长期演进(lte)、wimax、wlan、uwb、蓝牙和wi

fi。在示例中,网络模块4300可以被包括在应用处理器4100中。
196.存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。可选地,存储模块4400可以将所存储的数据传输到应用处理器4100。在示例中,存储模块4400可以利用诸如相变ram(pram)、磁性ram(mram)、电阻式ram(rram)、nand闪存、nor闪存或具有三维结构的nand闪存的非易失性半导体存储器装置来实施。在示例中,存储模块4400可以被设置为诸如用户系统4000的存储卡或外部驱动器的可移除驱动器。
197.在示例中,存储模块4400可以包括多个非易失性存储器装置,多个非易失性存储器装置中的每一个可以与参照图1描述的存储器装置100相同地操作。存储模块4400可以与参照图1描述的存储装置50相同地操作。
198.用户接口4500可以包括用于将数据或命令输入到应用处理器4100或将数据输出到外部装置的接口。在示例中,用户接口4500可以包括用户输入接口,诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电元件。用户接口4500可以包括用户输出接口,诸如液晶显示器(lcd)、有机发光二极管(oled)显示装置、有源矩阵oled(amoled)显示装置、led、扬声器和监控器。
199.根据本公开的实施例,提供了一种高效地执行后台操作的存储器控制器以及该存储器控制器的操作方法。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜