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

存储系统的制作方法

2022-07-27 21:24:56 来源:中国专利 TAG:

存储系统
1.相关申请的交叉引用
2.2021年1月25日向韩国知识产权局提交的题为“memory system”的韩国专利申请no.10-2021-0010170通过引用整体并入本文。
技术领域
3.实施例涉及存储系统。


背景技术:

4.根据对具有小尺寸和高容量的存储设备的需求的增加,已经积极地进行了对具有竖直堆叠存储单元的存储设备的研究。


技术实现要素:

5.实施例涉及一种存储系统,包括:非易失性存储设备,分别包括多个存储块,存储块中的每一个包括连接到多条字线的多个存储单元:以及存储控制器,确认非易失性存储设备中的每一个的每条字线的编程时间,并基于每条字线的编程时间计算目标编程时间。非易失性存储设备中的每一个可以从存储控制器接收目标编程时间,并基于目标编程时间调整每条字线的编程时间,并且当每条字线的编程时间调整完成后,存储控制器可以确认存储系统在预定时间内的写入速度的变化幅度,并且当写入速度的变化幅度小于参考值时,将目标编程时间设置为最终目标编程时间。
6.实施例涉及一种存储系统,包括:非易失性存储设备,包括多条字线;以及存储控制器,设置目标编程时间,使得存储系统在预定时间内的写入速度的变化幅度满足参考值。存储控制器可以向非易失性存储设备发送与要被编程的字线相对应的目标编程时间,并且当存储控制器向非易失性存储设备发送用于字线的编程命令时,非易失性存储设备可以确认字线的编程时间,并基于目标编程时间调整字线的编程时间。
7.实施例涉及一种存储系统,包括:非易失性存储设备,包括多个存储块;以及存储控制器,设置目标编程时间,使得存储系统在预定时间内的写入速度的变化幅度满足参考值。在存储系统通电时,当存储控制器向非易失性存储设备发送目标编程时间时,非易失性存储设备可以存储目标编程时间,并且当存储控制器向非易失性存储设备发送用于字线的编程命令时,非易失性存储设备可以确认字线的编程时间,并基于目标编程时间调整字线的编程时间。
附图说明
8.通过参考附图详细描述示例实施例,特征对于本领域技术人员将变得显而易见,在附图中:
9.图1是示出了根据示例实施例的包括存储设备的存储系统的示意性框图;
10.图2是示出了根据示例实施例的非易失性存储设备的示意性框图;
11.图3是示出了根据示例实施例的非易失性存储设备的存储块的示意性电路图;
12.图4和图5是示出了根据示例实施例的非易失性存储设备的示意图;
13.图6是用于描述根据示例实施例的存储系统的性能变化幅度的视图;
14.图7是用于描述根据示例实施例的非易失性存储设备的每条字线的编程时间差异的视图;
15.图8a和图8b是用于描述根据示例实施例的存储系统的性能变化幅度的视图;
16.图9是用于描述根据示例实施例的非易失性存储设备的每条字线的编程时间差异的视图;
17.图10和图11是用于描述根据示例实施例的性能平坦化工作的视图;
18.图12是示出了根据示例实施例的在存储控制器和非易失性存储设备之间交换的命令或数据的视图;
19.图13是用于描述根据示例实施例的确认字线的编程时间的方法的视图;
20.图14是示出了根据示例实施例的目标编程时间的视图;
21.图15是示出了根据示例实施例的在存储控制器和非易失性存储设备之间交换的命令或数据的视图;
22.图16是示出了根据示例实施例的目标编程时间的视图;以及
23.图17是示出了根据示例实施例的主机存储系统的框图。
具体实施方式
24.图1是示出了根据示例实施例的包括存储设备的存储系统的示意性框图。
25.参照图1,存储系统1可以包括存储器10和存储控制器20。存储系统1可以支持多个通道ch1至chm,并且存储器10和存储控制器20可以通过多个通道ch1至chm彼此连接。存储系统1可以被实现为例如诸如固态驱动器(ssd)之类的存储设备。
26.存储器10可以包括多个非易失性存储设备nvm11至nvmmn。非易失性存储设备nvm11至nvmmn中的每一个可以通过相应的方式连接到多个通道ch1至chm之一。例如,非易失性存储设备nvm11至nvm1n可以通过路径w11至w1n连接到第一通道ch1,并且非易失性存储设备nvm21至nvm2n可以通过路径w21至w2n连接到第二通道ch2。在示例实施例中,非易失性存储设备nvm11至nvmmn中的每一个可以在能够根据来自存储控制器20的单独命令进行操作的任意存储单元中实现。例如,非易失性存储设备nvm11至nvmmn中的每一个可以被实现为芯片或管芯。
27.存储控制器20可以通过多个通道ch1至chm向存储器10发送信号和从存储器10接收信号。例如,存储控制器20可以通过通道ch1至chm向存储器10发送命令cmda至cmdm、地址addra至addrm和数据dataa至datam,或者从存储器10接收数据dataa至datam。
28.存储控制器20可以选择通过每个通道连接到相应通道的非易失性存储设备之一,并且向所选择的非易失性存储设备发送信号,以及从所选择的非易失性存储设备接收信号。例如,存储控制器20可以选择连接到第一通道ch1的非易失性存储设备nvm11至nvm1n中的非易失性存储设备nvm11。存储控制器20可以通过第一通道ch1向所选择的非易失性存储设备nvm11发送命令cmda、地址addra和数据dataa,或者从所选择的非易失性存储设备nvm11接收数据dataa。
29.存储控制器20可以通过不同的通道并行地向存储器10发送信号,以及从存储器10接收信号。例如,存储控制器20可以通过第二通道ch2向存储器10发送命令cmdb,同时通过第一通道ch1向存储器10发送命令cmda。例如,存储控制器20可以通过第二通道ch2从存储器10接收数据datab,同时通过第一通道ch1从存储器10接收数据dataa。
30.存储控制器20可以控制存储器10的一般操作。存储控制器20可以通过向通道ch1至chm发送信号来控制连接到通道ch1至chm的非易失性存储设备nvm11至nvmmn中的每一个。例如,存储控制器20可以通过向第一通道ch1发送命令cmda和地址addra来控制在非易失性存储设备nvm11至nvm1n中选择的一个非易失性存储设备。
31.非易失性存储设备nvm11至nvmmn中的每一个可以在存储控制器20的控制下操作。例如,非易失性存储设备nvm11可以根据向第一通道ch1提供的命令cmda、地址addra和数据dataa对数据dataa进行编程。例如,非易失性存储设备nvm21可以根据向第二通道ch2提供的命令cmdb和地址addrb读取数据datab,并向存储控制器20发送读取的数据datab。
32.图1已经示出了存储器10通过m个通道与存储控制器20通信,并且存储器10包括与每个通道相对应的n个非易失性存储设备,但是通道数和连接到一个通道的非易失性存储设备的数量可以进行各种修改。
33.存储系统1的性能可以被定义为每单位时间编程的数据量(mb/s)。每单位时间编程的数据量(mb/s)可以指写入速度,并且存储系统1在预定时间内的写入速度可以改变。需要设计存储系统1在预定时间内的写入速度的变化幅度以满足参考值。参考值可以是客户要求的值。例如,存储系统1的写入速度的变化幅度可以是与写入速度的最大值和写入速度的平均值之间的差值相对应的值,或者可以是与写入速度的最小值和写入速度的平均值之间的差值相对应的值。根据示例实施例,存储系统1的写入速度的变化幅度可以是与写入速度的最大值和写入速度的平均值之间的差值以及与写入速度的最小值和写入速度的平均值之间的差值中的最坏情况相对应的值,但不限于此。
34.例如,存储系统1的写入速度的变化幅度可以指写入速度的最大值和写入速度的最小值之间的差值与写入速度的平均值的比值,并且参考值可以是10%。
35.根据示例性实施例,为了使存储系统1在预定时间内的写入速度的变化幅度满足参考值,存储控制器20可以确认非易失性存储设备nvm11至nvmmn中的每一个的每条字线的编程时间,并基于非易失性存储设备nvm11至nvmmn中的每一个的每条字线的编程时间确定目标编程时间。非易失性存储设备nvm11至nvmmn中的每一个可以基于目标编程时间来调整每条字线的编程时间。因此,通过将存储系统1在预定时间内的写入速度的变化幅度提高到客户要求的值,可以向客户提供恒定的服务质量。
36.在本示例实施例中,存储系统1的性能变化幅度可以指存储系统1的写入速度的变化幅度。
37.图2是示出了根据示例实施例的非易失性存储设备的示意性框图。
38.参照图2,非易失性存储设备30可以包括控制逻辑电路32、存储单元阵列33、页缓冲器单元34、电压发生器35和行解码器36。非易失性存储设备30还可以包括接口电路31,并且还可以包括列逻辑、预解码器、温度传感器、命令解码器、地址解码器、源极驱动器等。
39.控制逻辑电路32通常可以控制非易失性存储设备30内的各种操作。控制逻辑电路32可以响应于来自接口电路31的命令cmd和/或地址addr输出各种控制信号。例如,控制逻
辑电路32可以输出电压控制信号ctrl_vol、行地址x-addr和列地址y-addr。
40.存储单元阵列33可以包括多个存储块blk1至blkz(z是正整数),并且多个存储块blk1至blkz中的每一个可以包括多个存储单元。存储单元阵列33可以通过位线bl连接到页缓冲器单元34,并且可以通过字线wl、串选择线ssl和地选择线gsl连接到行解码器36。
41.在示例实施例中,存储单元阵列33可以包括三维(3d)存储单元阵列,并且3d存储单元阵列可以包括多个nand串。每个nand串可以包括各自连接到竖直堆叠在衬底上的字线的存储单元。美国专利no.7,679,133、美国专利no.8,553,466、美国专利no.8,654,587、美国专利no.8,559,235和美国专利申请公开no.2011/0233648通过引用并入本文。在示例实施例中,存储单元阵列33可以包括二维(2d)存储单元阵列,并且2d存储单元阵列可以包括沿行方向和列方向布置的多个nand串。
42.页缓冲器单元34可以包括多个页缓冲器pb1至pbn(n是3或更大的整数),并且多个页缓冲器pb1至pbn可以通过多条位线bl分别连接到存储单元。页缓冲器单元34可以响应于列地址y-addr选择位线bl中的至少一个位线。页缓冲器单元34可以根据操作模式用作写入驱动器或感测放大器。例如,在编程操作时,页缓冲器单元34可以将与要被编程的数据相对应的位线电压施加到所选位线。在读取操作时,页缓冲器单元34可以感测所选位线的电流或电压,以感测存储在存储单元中的数据。
43.电压发生器35可以基于电压控制信号ctrl_vol生成用于执行编程、读取和擦除操作的各种类型的电压。例如,电压发生器35可以生成编程电压、读取电压、通过电压、编程验证电压、擦除电压等。由电压发生器35生成的电压中的一些可以由行解码器36输入到字线wl作为字线电压vwl,而其他电压可以由源极驱动器输入到公共源极线。
44.响应于行地址x-addr,行解码器36可以选择多个字线wl之一,并且可以选择多个串选择线ssl之一。例如,行解码器360可以在编程操作时向所选字线施加编程电压和编程验证电压,并且可以在读取操作时向所选字线施加读取电压。
45.根据示例实施例,非易失性存储设备30可以从存储控制器接收目标编程时间。控制逻辑电路32可以基于目标编程时间调整字线的编程时间。例如,控制逻辑电路32可以计算字线的编程时间和目标编程时间之间的差值,并将字线的编程操作的结束时间延迟该差值以调整字线的编程时间。因此,可以将存储系统在预定时间内的写入速度的变化幅度提高到客户要求的值。
46.图3是示出了根据示例实施例的非易失性存储设备的存储块的示意性电路图。
47.图3所示的存储块blki是在衬底上以三维结构形成的三维存储块。例如,包括在存储器块blki中的多个nand串可以形成在垂直于衬底的方向上。
48.参照图3,存储块blki可以包括连接在位线bl1、bl2和bl3与公共源极线csl之间的多个nand串ns11至ns33。多个nand串ns11至ns33中的每一个可以包括串选择晶体管sst、多个存储单元mc1、mc2、...、mc8和地选择晶体管gst。在图3中示出了多个存储器nand串ns11至ns33中的每一个包括八个存储器单元mc1、mc2、...、mc8,但是多个存储器nand串ns11至ns33中的每一个可以变化。
49.串选择晶体管(sst)可以连接到相应的串选择线ssl1、ssl2或ssl3。多个存储单元mc1、mc2、...、mc8可以分别连接到相应的栅极线gtl1、gtl2、...、gtl8。栅极线gtl1、gtl2、...、gtl8可以对应于字线,并且栅极线gtl1、gtl2、...、gtl8中的一些可以对应于虚
设字线。地选择晶体管gst可以连接到相应的地选择线gsl1、gsl2或gsl3。串选择晶体管sst可以连接到相应的位线bl1、bl2或bl3。接地选择晶体管gst可以连接到与公共源极线csl。
50.具有相同高度的字线(例如,wl1)可以共同连接,并且地选择线gsl1、gsl2和gsl3与串选择线ssl1、ssl2和ssl3可以分别彼此分离。在图3中示出了存储块blki连接到八条栅极线gtl1、gtl2、...、gtl8和三条位线bl1、bl2和bl3,但是存储块blki可以变化。
51.随着字线数量的增加,对一个存储块进行编程所需的时间可能增加。存储系统的性能可以被定义为每单位时间编程的数据量(mb/s),并且可以以1秒为单位来测量存储系统的性能。然而,随着对一个存储块进行编程所需时间的增加,对一个存储块进行编程所需的时间可能比单位时间长。在这种情况下,存储系统在预定时间内的性能变化幅度可能变大。
52.根据示例实施例,存储系统可以基于目标编程时间来调整非易失性存储设备的每条字线的编程时间。因此,可以将存储系统的性能变化幅度提高到客户要求的值。
53.图4和图5是示出了根据示例实施例的非易失性存储设备的示意图。图5是示出了图4所示的非易失性存储设备100中的块blk1和blk2之一的透视图。
54.参照图4,根据示例实施例的非易失性存储设备100可以包括多个块blk1和blk2。多个块blk1和blk2可以具有相同的结构,并且可以被分离层140分开。
55.参照图4和图5,根据示例实施例的非易失性存储设备100可以包括彼此上下设置的单元区域c和外围电路区域p。外围电路区域p可以设置在单元区域c下方。外围电路区域p可以包括第一衬底101。单元区域c可以包括不同于第一衬底101的第二衬底102。
56.外围电路区域p可以包括设置在第一衬底101上的多个外围电路元件103、连接到外围电路元件103的多个布线105、覆盖外围电路元件103和布线105的第一层间绝缘层107等。包括在外围电路区域p中的外围电路元件103可以提供用于驱动诸如页缓冲器和行解码器之类的非易失性存储设备100的电路。
57.包括在单元区域c中的第二衬底102可以设置在第一层间绝缘层107上。单元区域c可以包括地选择线gsl、字线wl、串选择线ssl1和ssl2、以及堆叠在第二衬底102上的多个绝缘层il。绝缘层il可以与地选择线gsl、字线wl、以及串选择线ssl1和ssl2交替地堆叠。地选择线gsl以及串选择线ssl1和ssl2的数量可以从图5所示的那些进行各种修改。
58.单元区域c可以包括在垂直于第二衬底102的上表面的第一方向(z轴方向)上延伸的通道结构ch。通道结构ch可以穿过地选择线gsl、字线wl、以及串选择线ssl1和ssl2,然后连接到第二衬底102。通道结构ch中的每一个可以包括通道区域110、填充通道区域110的内部空间的掩埋绝缘层120、位线连接层130等。通道结构ch中的每一个可以通过位线连接层130连接到至少一条位线。地选择线gsl、字线wl、串选择线ssl1和ssl2、绝缘层il、通道结构ch等可以被定义为堆叠结构。
59.至少一个栅绝缘层可以设置在通道区域110的外部。在示例实施例中,栅绝缘层可以包括从通道区域110开始依次设置的隧道层、电荷存储层、阻挡层等。根据示例实施例,还可以形成隧道层、电荷存储层和阻挡层中的至少一个,以围绕地选择线gsl、字线wl、以及串选择线ssl1和ssl2。
60.地选择线gsl、字线wl、以及串选择线ssl1和ssl2可以覆盖有层间绝缘层150。地选择线gsl、字线wl、以及串选择线ssl1和ssl2可以被分离层140分成多个块blk1和blk2。在示
例实施例中,在第二方向(y轴方向)上彼此相邻的一对分离层140之间,串选择线ssl1和ssl2可以被上分离层160分成多个区域。
61.在示例实施例中,可以在设置上分离层160的区域中设置虚设通道结构dch。虚设通道结构dch可以具有与通道结构ch相同的结构,但是可以不连接到位线。
62.在图5所示的示例实施例中,通道结构ch和分离层140可以具有这样的形状,其中,它们在第一方向上延伸以伸长,并且因此,通道结构ch和分离层140的宽度可以在第一方向上改变。通道结构ch和分离层140可以具有锥形结构,其宽度随着它们变得更靠近第二衬底102而变得更窄。
63.可以以页为单位执行将数据编程到存储单元中或读取存储在存储单元中的数据的操作。可以以由分离层140分开的存储块blk1和blk2中的每一个为单位执行删除写入存储单元的数据的操作。
64.存储系统在预定时间内的性能变化幅度需要满足客户要求的参考值。存储系统的性能可以被定义为每单位时间编程的数据量(mb/s),并且可以以1秒为单位来测量存储系统的性能。然而,随着非易失性存储设备的堆叠级数的增加,对一个存储块进行编程所需的时间可能比单位时间长。每条字线对数据进行编程所需的时间(在下文中简称为“编程时间”)存在差异,并且当对一个存储块进行编程所需的时间长于单位时间时,存储系统在预定时间内的性能变化幅度可能变大。
65.根据示例实施例,存储系统可以通过调整非易失性存储设备的每条字线的编程时间来执行调整存储系统的性能的性能平坦化功能。
66.图6是用于描述根据示例实施例的存储系统的性能变化幅度的视图。
67.参照图6,x轴表示时间(s),并且y轴表示数据量(mb)。存储系统的性能可以被定义为每单位时间编程的数据量(mb/s),并且存储系统在预定时间内的性能变化幅度需要满足客户要求的参考值。
68.图7是用于描述根据示例实施例的非易失性存储设备的每条字线的编程时间差异的视图。
69.参照图7,x轴表示不同的字线wl,并且y轴表示编程时间(μs)。每条字线的编程时间可以不同。当每条字线的编程时间差异较大时,可能会影响存储系统的性能变化幅度。
70.图8a和图8b是用于描述根据示例实施例的存储系统的性能变化幅度的视图。
71.图8a示出了对一个存储块进行编程所需的时间比单位时间短的情况。
72.假设单位时间为1秒,在n秒内,可以对第0个存储块blk0的一部分进行编程,并且可以对第一存储块blk1的一部分进行编程。在(n 1)秒内,可以对第一存储块blk1的剩余部分进行编程,可以对第二存储块blk2的整体进行编程,并且可以对第三存储块blk3的一部分进行编程。
73.在n秒和(n 1)秒内彼此不重叠的字线接触部分(即,第0个存储块blk0的阴影部分、第一存储块blk1的阴影部分、以及第三存储块blk3的阴影部分)可以是影响存储系统的性能变化幅度的部分。
74.图8b示出了对一个存储块进行编程所需的时间长于单位时间的情况。
75.假设单位时间为1秒,在n秒内,可以对第0个存储块blk0的一部分进行编程。在(n 1)秒内,可以对第0存储块blk0的剩余部分进行编程,并且可以对第一存储块blk1的一部分
进行编程。
76.在n秒和(n 1)秒内彼此不重叠的字线接触部分(即,第0个存储块blk0的阴影部分和第一存储块blk1的阴影部分)可以是影响存储系统的性能变化幅度的部分。
77.与图8a不同,在图8b中,随着非易失性存储设备的堆叠级数的增加,对一个存储块进行编程所需的时间变得比单位时间长,并且因此,影响存储系统的性能变化幅度的部分可能变得相对更宽。尽管图8a和图8b中每条字线的编程时间存在差异,但在图8b中,在n秒和(n 1)秒之间接触的字线部分都彼此不同,并且因此,影响存储系统的性能变化幅度的部分变得相对更宽。因此,存储系统的性能变化幅度可能会变大。
78.图9是用于描述根据示例实施例的非易失性存储设备的每条字线的编程时间差异的视图。
79.参照图9,存储系统可以将每条字线的编程时间调整为目标编程时间t
target
。例如,当编程时间长于目标编程时间时,可以不调整编程时间,而当编程时间短于目标编程时间时,编程时间可以延迟到目标编程时间。因此,可以将字线之间的编程时间差减少间隔a。
80.图10和图11是用于描述根据示例实施例的性能平坦化工作的视图。
81.一起参照图10和图11,存储控制器50可以确认存储系统40在预定时间内的性能变化幅度(s310)。存储系统40的性能可以被定义为每单位时间编程的数据量(mb/s),并且存储系统40在预定时间内的写入速度的变化幅度需要满足参考值。当存储系统40在预定时间内的性能变化幅度为参考值或更大时(s320中的“是”),存储系统40可以执行性能平坦化工作,以将存储系统40在预定时间内的性能变化幅度调整为参考值。
82.存储控制器50可以确认包括在存储器60中的非易失性存储设备61和62中的每一个的每条字线的编程时间tprog(s330)。
83.存储控制器50可以基于每条字线的编程时间tprog计算目标编程时间t
target
(s340)。例如,假设参考值为10%。存储控制器50可以计算每条字线的编程时间的最大值和目标编程时间t
target
的平均值,并计算目标编程时间t
target
,使得最大值与目标编程时间t
target
之差与平均值的比值满足(10% α)。这里,α表示允许的误差范围。
84.当存储控制器50向非易失性存储设备61和62发送目标编程时间t
target
时,非易失性存储设备61和62中的每一个可以接收目标编程时间t
target
。非易失性存储设备61和62中的每一个的控制逻辑可以基于目标编程时间t
target
来调整每条字线的编程时间tprog(s350)。
85.考虑到数据完整性,控制逻辑可以调整每条字线的编程时间tprog。例如,当编程时间tprog长于目标编程时间t
target
时,可以不调整编程时间tprog,而当编程时间tprog短于目标编程时间t
target
时,编程时间tprog可以延迟到目标编程时间t
target
。因此,可以减少字线之间的编程时间差。
86.当每条字线的编程时间调整完成时,存储控制器50可以再次确认存储器系统40在预定时间内的性能变化幅度(s310)。可以重复性能平坦化工作,直到存储系统40的性能变化幅度满足参考值。当存储系统40的性能变化幅度等于或小于参考值时(s320),存储控制器50可以将目标编程时间t
target
设置为最终目标编程时间,并结束性能平坦化工作。
87.根据示例实施例,当编程/擦除(p/e)周期数是参考数或更多时,存储系统40可以再次执行性能平坦化工作,并且存储控制器50可以再次设置最终目标编程时间。
88.根据示例实施例,当存储系统40的外部温度超出参考温度范围时,存储系统40可以再次执行性能平坦化工作,并且存储控制器50可以再次设置最终目标编程时间。
89.性能平坦化操作可以在存储控制器50中的中央处理单元(cpu)51中被实现为软件,或者可以在存储控制器50中被实现为单独的硬件逻辑52。
90.图12是示出了根据示例实施例的在存储控制器和非易失性存储设备之间交换的命令或数据的视图。
91.参照图12,存储控制器mc可以最初确认非易失性存储设备nvm的每条字线的编程时间tprog以计算目标编程时间t
target
(s100)。为了确认非易失性存储设备nvm的每条字线的编程时间tprog,存储控制器mc可以向非易失性存储设备nvm发送编程命令cmd、数据data和地址addr,并且从非易失性存储设备nvm接收就绪/忙碌信号rb。将参照图13详细描述由存储控制器mc确认每条字线的编程时间tprog的方法。
92.存储控制器mc可以设置并存储目标编程时间t
target
,使得存储系统的写入速度的变化幅度满足参考值(s110)。图12中由存储控制器mc设置目标编程时间ttarget的方法与图10和图11中由存储控制器设置最终目标编程时间的方法相同,并因此省略对其的详细描述。
93.目标编程时间ttarget可以存储在存储系统内部的单独的非易失性存储设备中,或者可以存储在非易失性存储设备nvm中,如下面在步骤s120至s140中所述。将参照图14详细描述目标编程时间t
target

94.当存储系统通电时(s120),存储控制器mc可以向非易失性存储设备nvm发送目标编程时间t
target
(s130)。非易失性存储设备nvm可以存储目标编程时间t
target
(s140)。
95.存储控制器mc可以向非易失性存储设备nvm发送编程命令cmd、数据data和地址addr,以在非易失性存储设备nvm中对数据进行编程(s150)。非易失性存储设备nvm可以执行编程操作,然后确认每条字线的编程时间tprog(s160)。
96.非易失性存储设备nvm可以基于目标编程时间t
target
来调整每条字线的编程时间tprog。例如,当字线的编程时间tprog短于目标编程时间t
target
时(s170中的“是”),非易失性存储设备nvm可以延迟编程操作的结束时间。例如,非易失性存储设备nvm可以计算目标编程时间t
target
和字线的编程时间tprog之间的差值作为虚设编程时间(虚设tprog)(s180)。
97.非易失性存储设备nvm可以将编程操作的结束时间延迟虚设编程时间(虚设tprog)。例如,非易失性存储设备(nvm)可以将指示非易失性存储设备(nvm)处于就绪状态的就绪/忙碌信号rb'延迟虚设编程时间(虚设tprog),然后向存储控制器mc发送就绪/忙碌信号rb'(s190)。
98.当字线的编程时间tprog等于或长于目标编程时间t
target
时(s170中的“否”),非易失性存储设备(nvm)可以不调整每条字线的编程时间(tprog)。
99.根据示例实施例,非易失性存储设备nvm可以基于目标编程时间t
target
调整每条字线的编程时间(tprog),从而可以将存储系统的写入速度的变化幅度提高到客户要求的值。
100.图13是用于描述根据示例实施例的确认字线的编程时间的方法的视图。
101.参照图13,存储控制器可以通过输入/输出线向非易失性存储设备提供命令cmd1和cmd2、地址addr和数据data。非易失性存储设备可以通过就绪/忙碌线向存储控制器提供
就绪/忙碌信号rb。在示例实施例中,命令可以包括用于执行编程操作的命令。该命令可以包括设置命令cmd1和确认命令cmd2。可以根据设置命令cmd1来确定将由非易失性存储设备执行的命令。确认命令cmd2可以是指示非易失性存储设备执行操作的命令。编程命令可以由设置命令cmd1确定,并且非易失性存储设备可以通过确认命令cmd2执行编程操作。存储控制器可以在输出设置命令cmd1之后向非易失性存储设备提供由设置命令确定的命令的地址addr。地址addr是指要在其中执行设置命令cmd1的区域。地址addr可以包括行地址和列地址。非易失性存储设备可以访问由地址addr选择的区域。在示例实施例中,存储控制器可以在输出地址之后向非易失性存储设备提供数据data。在编程操作时,非易失性存储设备将在由地址选择的区域中对数据data进行编程。在示例实施例中,存储控制器可以在向非易失性存储设备输出数据之后输出确认命令cmd2。确认命令cmd2可以是指示非易失性存储设备100执行操作的命令。存储控制器可以向非易失性存储设备提供确认命令cmd2。存储控制器可以将从存储控制器向非易失性存储设备提供确认命令cmd2的时间点t1确定为编程操作的开始时间点。通过就绪/忙碌线从非易失性存储设备向存储控制器提供就绪/忙碌信号rb。就绪/忙碌信号指示非易失性存储设备是处于就绪状态还是处于忙碌状态。当就绪/忙碌信号处于低状态时,其指示非易失性存储设备处于忙碌状态。当就绪/忙碌信号处于高状态时,其指示非易失性存储设备处于就绪状态。存储控制器可以将就绪/忙碌信号的状态从忙碌状态改变为就绪状态的时间点t2确定为编程操作的结束时间点。非易失性存储设备可以在编程时间tprog期间执行编程操作。
102.编程时间可以指从编程操作的开始时间点t1到编程操作的结束时间点t2的时间。
103.图14是示出了根据示例实施例的目标编程时间的视图。
104.非易失性存储设备的多个存储块可以被分组为多个组,并且属于同一组的存储块可以具有相同的目标编程时间。参照图14,第一存储块blk1至第一百存储块blk100的目标编程时间可以被设置为第一目标编程时间t
target
1,第一百零一存储块blk101至第二百存储块blk200的目标编程时间可以被设置为第二目标编程时间t
target
2,并且第k存储块blkk至第m存储块blkm的目标编程时间可以被设置为第n目标编程时间t
target
n。k等于(201 100*x)(其中x为整数),m等于min(k 99,总存储块数),并且n等于ceil(m/100)。
105.例如,第一存储块的第一字线的目标编程时间可以是第一目标编程时间t
target
1。当第一字线的第一编程操作时间短于第一目标编程时间t
target
1时,非易失性存储设备可以将第一编程操作时间和第一目标编程时间t
target
1之间的差值设置为虚设编程时间。非易失性存储设备可以将就绪/忙碌信号延迟虚设编程时间,然后将就绪/忙碌信号输出到存储控制器。
106.例如,第一百零一存储块的第二字线的目标编程时间可以是第二目标编程时间t
target
2。当第二字线的第二编程操作时间短于第二目标编程时间t
target
2时,非易失性存储设备可以将第二编程操作时间和第二目标编程时间t
target
2之间的差值设置为虚设编程时间。非易失性存储设备可以将就绪/忙碌信号延迟虚设编程时间,然后将就绪/忙碌信号输出到存储控制器。
107.图15是示出了根据示例实施例的在存储控制器和非易失性存储设备之间交换的命令或数据的视图。
108.参照图15,存储控制器mc可以最初确认非易失性存储设备nvm的每条字线的编程
时间tprog以计算目标编程时间t
target
(s200)。为了确认非易失性存储设备nvm的每条字线的编程时间tprog,存储控制器mc可以向非易失性存储设备nvm发送编程命令cmd、数据data和地址addr,并且从非易失性存储设备nvm接收就绪/忙碌信号rb。
109.存储控制器mc可以设置并存储目标编程时间t
target
,使得存储系统的性能变化幅度满足参考值(s210)。图15中由存储控制器mc设置目标编程时间t
target
的方法与图10和图11中由存储控制器设置最终目标编程时间的方法相同,并因此省略对其的详细描述。目标编程时间t
target
可以存储在存储系统内部的单独的非易失性存储设备中。将参照图16详细描述目标编程时间t
target

110.存储系统可以通电(s220),并且存储控制器mc可以向非易失性存储设备nvm发送与要被编程的字线相对应的目标编程时间t
target
(s225)。存储控制器mc可以向非易失性存储设备nvm发送编程命令cmd、数据data和地址addr,以在字线中对数据进行编程(s230)。根据示例实施例,存储控制器mc可以将目标编程时间t
target
与编程命令cmd、数据data和地址addr一起发送。非易失性存储设备nvm可以执行编程操作,然后确认每条字线的编程时间tprog(s240)。
111.非易失性存储设备nvm可以基于目标编程时间t
target
来调整每条字线的编程时间tprog。例如,当字线的编程时间tprog短于目标编程时间t
target
时(s250中的“是”),非易失性存储设备nvm可以延迟编程操作的结束时间。例如,非易失性存储设备nvm可以计算目标编程时间t
target
和字线的编程时间tprog之间的差值作为虚设编程时间(虚设tprog)(s260)。
112.非易失性存储设备nvm可以将编程操作的结束时间延迟虚设编程时间(虚设tprog)。例如,非易失性存储设备(nvm)可以将指示非易失性存储设备处于就绪状态的就绪/忙碌信号rb'延迟虚设编程时间(虚设tprog),然后向存储控制器mc发送就绪/忙碌信号rb'(s270)。
113.当字线的编程时间tprog等于或长于目标编程时间t
target
时(s250中的“否”),非易失性存储设备(nvm)可以不调整每条字线的编程时间(tprog)。
114.根据示例实施例,非易失性存储设备nvm可以基于目标编程时间t
target
调整每条字线的编程时间(tprog),从而可以将存储系统的写入速度的变化幅度提高到客户要求的值。
115.图16是示出了根据示例实施例的目标编程时间的视图。
116.每条字线的目标编程时间可以不同。参照图16,第一字线wl1的目标编程时间可以被设置为第一目标编程时间t
target
1,并且第二字线wl2的目标编程时间可以被设置为第二目标编程时间t
target
2,并且第n字线wln的目标编程时间可以被设置为第n目标编程时间t
target
n。
117.例如,适合于第一存储块的第一字线的目标编程时间可以是第一目标编程时间t
target
1。当第一字线的第一编程操作时间短于第一目标编程时间t
target
1时,第一编程操作时间和第一目标编程时间t
target
1之间的差值可以被设置为虚设编程时间。非易失性存储设备可以将就绪/忙碌信号延迟虚设编程时间,然后将就绪/忙碌信号输出到存储控制器。
118.例如,适合于第一存储块的第二字线的目标编程时间可以是第二目标编程时间t
target
2。当第二字线的第二编程操作时间短于第二目标编程时间t
target
2时,第二编程操作时间和第二目标编程时间t
target
2之间的差值可以被设置为虚设编程时间。非易失性存储设
备可以将就绪/忙碌信号延迟虚设编程时间,然后将就绪/忙碌信号输出到存储控制器。
119.图17是示出了根据示例实施例的主机存储系统的框图。
120.主机存储系统500可以包括主机300和存储设备400。主机300和存储设备400中的每一个可以根据所采用的标准协议来生成和发送分组。
121.根据示例实施例,主机300可以包括主机控制器310和主机存储器320。主机存储器320可以用作缓冲存储器,该缓冲存储器用于临时存储要向存储设备400发送的数据或从存储设备400发送的数据。
122.存储设备400可以包括存储控制器410和非易失性存储设备(nvm)420。存储设备400可以包括用于根据来自主机300的请求存储数据的存储介质。作为示例,存储设备400可以包括固态驱动器(ssd)、嵌入式存储器和可移动外部存储器中的至少一种。当存储设备400是ssd时,存储设备400可以是符合非易失性存储器快速(nvme)标准的设备。当存储设备400是嵌入式存储器或外部存储器时,存储设备400可以是符合通用闪存(ufs)或嵌入式多媒体卡(emmc)标准的设备。
123.当存储设备400的非易失性存储设备420包括闪存时,该闪存可以包括2d nand存储器阵列或3d(或竖直)nand(vnand)存储器阵列。作为另一示例,存储设备400可以包括各种其他类型的非易失性存储设备。例如,存储设备400可以包括磁性随机存取存储器(mram)、自旋转移矩mram、导电桥接ram(cbram)、铁电ram(feram)、相位ram(pram)、电阻式ram和各种其他类型的存储器。
124.根据示例实施例,主机控制器310和主机存储器320可以被实现为单独的半导体芯片。备选地,在一些示例实施例中,主机控制器310和主机存储器320可以集成在同一半导体芯片上。主机控制器310可以是应用处理器中包括的多个模块中的任何一个,并且应用处理器可以被实现为片上系统(soc)。此外,主机存储器320可以是设置在应用处理器中的嵌入式存储器,或者可以是设置在应用处理器外部的非易失性存储设备或存储器模块。
125.主机控制器310可以管理将主机存储器320的数据(例如,写入数据)存储在非易失性存储设备420中或将非易失性存储设备420的数据(例如,读取数据)存储到主机存储器320中的操作。
126.存储控制器410可以包括主机接口411、存储器接口412和中央处理单元(cpu)413。存储控制器410还可以包括闪存转换层(ftl)414、分组管理器415、缓冲存储器416、纠错码(ecc)引擎417和高级加密标准(aes)引擎418。存储控制器410还可以包括加载闪存转换层(ftl)414的工作存储器,并且非易失性存储设备的数据写入和读取操作可以由执行闪存转换层的cpu 413控制。
127.主机接口411可以向主机300发送分组和从主机300接收分组。从主机300向主机接口411发送的分组可以包括命令、写入非易失性存储设备420的数据等。从主机接口411向主机300发送的分组可以包括对命令的响应、从非易失性存储设备420读取的数据等。存储器接口412可以向非易失性存储设备420发送要写入非易失性存储设备420的数据,或者可以接收从非易失性存储设备420读取的数据。这种存储器接口412可以被实现为符合标准约定,例如,切换或开放nand闪存接口(onfi)。
128.闪存转换层414可以执行若干功能,例如,地址映射、磨损均衡和垃圾收集。地址映射操作是将从主机接收到的逻辑地址转换为用于在非易失性存储设备420中实际存储数据
的物理地址的操作。磨损均衡是通过允许统一使用非易失性存储设备420中的块来防止特定块过度恶化的技术,并且可以通过例如平衡物理块的擦除计数的固件技术来实现。垃圾收集是用于以将块的有效数据复制到新块然后擦除现有块的方式来确保非易失性存储设备420中的可用容量的技术。
129.分组管理器415可以根据与主机300协商的接口协议生成分组,或者可以根据从主机300接收到的分组解析各种信息。
130.缓冲存储器416可以临时存储要写入非易失性存储设备420的数据或要从非易失性存储设备420读取的数据。缓冲存储器416可以设置在存储控制器410中,但也可以设置在存储控制器410的外部。
131.ecc引擎417可以对从非易失性存储设备420读取的读取数据执行错误检测和纠正功能。例如,ecc引擎417可以针对要写入非易失性存储设备420的写入数据生成奇偶校验位,并且如上所述产生的奇偶校验位可以与写入数据一起存储在非易失性存储设备420中。在从非易失性存储设备420读取数据时,ecc引擎417可以使用从非易失性存储设备420读取的奇偶校验位连同读取数据一起来校正读取数据的错误,并输出校正了错误的读取数据。
132.aes引擎418可以使用对称密钥算法对输入到存储控制器410的数据执行加密操作和解密操作中的至少一种。
133.根据示例实施例,存储控制器410可以设置目标编程时间,使得存储设备400在预定时间内的性能变化幅度满足参考值。根据示例实施例,主机300还可以向存储控制器410发送预定目标编程时间。非易失性存储设备420可以使用目标编程时间来调整每条字线的编程时间。因此,可以将存储设备400的性能变化幅度提高到客户要求的值。
134.本说明书中已经说明和描述了确定每条字线的编程时间,并基于目标编程时间调整每条字线的编程时间,但也可以确定和调整每页的编程时间。
135.根据示例性实施例,存储系统可以将每条字线的编程时间调整为目标编程时间,从而可以将存储系统在预定时间内的性能变化幅度提高到客户要求的值。因此,可以向客户提供恒定的服务质量(qos)。
136.通过总结和回顾的方式,随着存储设备的集成度的提高,竖直堆叠的存储单元数有增加的趋势,并且因此,已经考虑了能够补偿多个存储单元表现出其间的特性差异的特性的各种方法。
137.如上所述,实施例可以提供将每条字线的编程时间调整为目标编程时间的存储系统。
138.本文已经公开了示例实施例,并且尽管采用了特定术语,但是它们仅用于且应被解释为一般的描述性意义,而不是为了限制的目的。在一些情况下,如提交本技术的本领域普通技术人员应认识到,除非另有明确说明,否则结合特定实施例描述的特征、特性和/或元件可以单独使用或与其他实施例描述的特征、特性和/或元件相结合使用。因此,本领域技术人员将理解,在不脱离所附权利要求中阐述的本发明的精神和范围的前提下,可以进行形式和细节上的各种改变。
再多了解一些

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

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

相关文献