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

存储器系统及其操作方法与流程

2022-03-19 12:38:03 来源:中国专利 TAG:

存储器系统及其操作方法
1.相关申请的交叉引用
2.本技术要求于2020年9月2日提交的、申请号为10-2020-0111438的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
3.实施例总体上涉及一种存储器系统及其操作方法。


背景技术:

4.存储器系统(例如,存储装置)基于来自诸如计算机、移动终端(例如,智能电话或平板电脑)或各种其它电子装置中的任意一种的主机的请求来存储数据。存储器系统可以是诸如硬盘驱动器(hdd)的将数据存储在磁盘中的装置类型,或者诸如固态驱动器(ssd)、通用闪存(ufs)装置或嵌入式mmc(emmc)装置的将数据存储在非易失性存储器中的装置类型。
5.存储器系统可以进一步包括用于控制存储器装置的存储器控制器。存储器控制器可以从主机接收命令,并且可以基于接收到的命令运行或控制用于在存储器系统中包括的易失性存储器或非易失性存储器中读取、写入或擦除数据的操作。存储器控制器可以驱动用于执行逻辑运算的固件来控制这些操作。
6.认识到存储器系统有时可能无法正确地将数据写入存储器装置,因此存储器系统可以将备份数据存储在单独的存储器中以重新写入该数据。将该单独的存储器实施为高速存储器提高了数据写入的速度,但是也增加了存储器系统的成本。
7.另一方面,将数据备份存储器实施为低速存储器比高速存储器的成本更低,但是由于存储器的速度更慢,因此数据写入过程的总体性能降低。


技术实现要素:

8.本公开的实施例可以提供一种能够优化满足主机所需的数据写入性能而需要的成本的存储器系统及其操作方法。
9.另外,本公开的实施例可以提供一种即使在主机的性能在将来迅速提高的情况下,也能够有效地将数据编程到存储器装置中的存储器系统及其操作方法。
10.一方面,本公开的实施例可以提供一种存储器系统,该存储器系统包括存储器装置以及用于与该存储器装置通信并且控制该存储器装置的存储器控制器。
11.存储器控制器可以包括第一存储器、第二存储器和缓冲器电路。
12.存储器控制器可以将作为待编程到存储器装置中的数据的目标数据存储在第一存储器中。
13.存储器控制器可以选择性地将目标数据存储在第二存储器中。
14.存储器控制器可以将第一存储器中存储的目标数据编程到存储器装置中。
15.当将第一存储器中存储的目标数据编程到存储器装置中失败时,存储器控制器可
以对第一存储器或第二存储器中存储的目标数据进行重新编程。
16.在这种情况下,第一存储器可以以比第二存储器更高的速度进行操作。
17.存储器控制器可以通过将目标数据提供到缓冲器电路以将目标数据输入到第二存储器中或者丢弃该目标数据来选择性地将目标数据存储在第二存储器中。
18.另一方面,本公开的实施例可以提供一种存储器系统的操作方法。
19.存储器系统的操作方法可以包括将待编程到存储器装置中的目标数据存储在第一存储器中。
20.存储器系统的操作方法可以包括选择性地将目标数据存储在第二存储器中。
21.存储器系统的操作方法可以包括将第一存储器中存储的目标数据编程到存储器装置中。
22.存储器系统的操作方法可以包括当将第一存储器中存储的目标数据编程到存储器装置中失败时,将第一存储器或第二存储器中存储的目标数据重新编程到存储器装置中。
23.在这种情况下,第一存储器可以以比第二存储器更高的速度进行操作。
24.选择性地将目标数据存储在第二存储器中可以包括将目标数据输入到缓冲器电路。
25.选择性地将目标数据存储在第二存储器中可以包括将缓冲器电路中的目标数据输入到第二存储器中或丢弃该目标数据。
26.另一方面,本公开的实施例可以提供一种控制器的操作方法。
27.控制器的操作方法可以将数据存储在第一存储器中。
28.控制器的操作方法可以在缓冲器具有用于缓冲数据的可用空间时,经由该缓冲器将数据存储在第二存储器中。
29.控制器的操作方法可以在所存储的数据被成功地编程到存储装置时,从第二存储器中移除所存储的数据。
30.控制器的操作方法可以1)当数据未被存储在第二存储器中并且所存储的数据被成功地编程到存储装置时,或者2)当数据被存储在第二存储器中并且所存储的数据被提供到存储装置时,从第一存储器中移除所存储的数据。
31.第一存储器和缓冲器中的每一个可以具有比第二存储器更高的操作速度。
32.根据本公开的实施例,可以优化满足主机所需的数据写入性能而需要的成本。
33.此外,根据本公开的实施例,即使在主机的性能在将来迅速提高的情况下,也可以有效地将数据编程到存储器装置中。
附图说明
34.图1是示出根据本公开的实施例的存储器系统的配置的示意图。
35.图2是示意性地示出根据本公开的实施例的存储器装置的框图。
36.图3是示出根据本公开的实施例的存储器装置的字线和位线的结构的示图。
37.图4是根据本公开的实施例的存储器系统的示意性配置图。
38.图5是示出根据本公开的实施例的由存储器系统将目标数据编程到存储器装置中的操作的示例的示图。
39.图6是示出根据本公开的实施例的由存储器系统将目标数据编程到存储器装置中的操作的另一示例的示图。
40.图7是示出根据本公开的实施例的缓冲器电路的结构的示图。
41.图8是示出根据本公开的实施例的缓冲器电路的操作的示例的流程图。
42.图9是示出根据本公开的实施例的由缓冲器电路丢弃目标数据的操作的示例的示图。
43.图10是示出根据本公开的实施例的由缓冲器电路将目标数据输入到第二存储器中的操作的示例的示图。
44.图11是示出根据本公开的实施例的在丢弃目标数据之后由存储器系统执行的操作的示例的示图。
45.图12是示出图11所示的第一存储器和第二存储器的状态的示图。
46.图13是示出如图11所示的当编程失败时由存储器系统对目标数据进行重新编程的操作的示图。
47.图14是示出根据本公开的实施例的在将目标数据存储在第二存储器中之后由存储器系统执行的操作的示例的示图。
48.图15是示出图14所示的第一存储器和第二存储器的状态的示图。
49.图16是示出如图14所示的当编程失败时对目标数据进行重新编程的操作的示图。
50.图17是示出根据本公开的实施例的第一信息和第二信息的格式的示例的示图。
51.图18是示出根据本公开的实施例的第一带宽和第二带宽之间的差值的示例的示图。
52.图19是示出根据图18中描述的第一带宽和第二带宽之间的差值将第一存储器或第二存储器用于重新编程操作的概率的示图。
53.图20是示出根据本公开的实施例的操作存储器系统的方法的示图。
54.图21是示出根据本公开的实施例的选择性地将目标数据存储在第二存储器中的示例的示图。
55.图22是示出根据本公开的实施例的计算系统的配置的示图。
具体实施方式
56.在下文中,参照附图详细描述本公开的实施例。在整个说明书中,对“实施例”、“另一实施例”等的引用不一定仅针对一个实施例,并且对任何这种短语的不同引用不一定针对相同的实施例。本文使用的术语“各个实施例”不一定指所有实施例。
57.图1是示意性地示出根据本公开的实施例的存储器系统100的配置的示图。
58.参照图1,存储器系统100可以包括被配置为存储数据的存储器装置110以及被配置为控制存储器装置110的存储器控制器120。
59.存储器装置110可以包括多个存储块。存储器装置110可以被配置为响应于从存储器控制器120接收的控制信号而操作。存储器装置110的操作可以包括例如读取操作、编程操作(也被称为“写入操作”)、擦除操作等。
60.存储器装置110可以包括存储器单元阵列,该存储器单元阵列包括被配置为存储数据的多个存储器单元(也被简称为“单元”)。存储器单元阵列可以存在于存储块内部。
61.例如,存储器装置110可以被实施为诸如以下的各种类型的存储器中的任何一种:双倍数据速率同步动态随机存取存储器(ddr sdram)、第四代低功率双倍数据速率(lpddr4)sdram、图形双倍数据速率(gddr)sdram、低功率ddr(lpddr)、rambus动态随机存取存储器(rdram)、nand闪速存储器、垂直nand闪速存储器、nor闪速存储器、电阻式随机存取存储器(rram)、相变存储器(pram)、磁阻随机存取存储器(mram)、铁电随机存取存储器(fram)和/或自旋转移扭矩随机存取存储器(stt-ram)。
62.存储器装置110可以以三维阵列结构实施。本公开的实施例不仅可应用于具有被配置为导电浮置栅极的电荷存储层的闪速存储器装置,而且可应用于具有电荷撷取闪存(ctf)的闪速存储器装置,该ctf具有被配置为绝缘膜的电荷存储层。
63.存储器装置110可以被配置为从存储器控制器120接收命令和地址,并且访问存储器单元阵列的、使用该地址所选择的区域。也就是说,存储器装置110可以在存储器装置的、物理地址与接收到的来自控制器的地址相对应的存储器区域中执行与接收到的命令相对应的操作。
64.例如,存储器装置110可以执行编程操作、读取操作、擦除操作等。在编程操作期间,存储器装置110可以将数据编程到由地址选择的区域。在读取操作期间,存储器装置110可以从由地址选择的区域读取数据。在擦除操作期间,存储器装置110可以擦除由地址选择的区域中存储的数据。
65.存储器控制器120可以控制关于存储器装置110的写入(或编程)操作、读取操作、擦除操作和后台操作。后台操作可以是例如垃圾收集(gc)操作、损耗均衡(wl)操作和/或坏块管理(bbm)操作。
66.存储器控制器120可以在主机的请求下控制存储器装置110的操作。可选地,存储器控制器120可以在没有主机的相应请求的情况下,例如在执行存储器装置的一个或多个后台操作时,控制存储器装置110的操作。
67.存储器控制器120和主机可以是分开的装置。在另一实施例中,存储器控制器120和主机可以被集成并且被实施为单个装置。在下面的描述中,存储器控制器120和主机是分开的装置。
68.存储器控制器120可以包括主机接口(i/f)121、存储器接口122和控制电路123。
69.主机接口121可以被配置为提供用于与主机通信的接口。
70.当从主机(host)接收命令时,控制电路123可以通过主机接口121接收命令,并且可以执行处理所接收到的命令的操作。
71.存储器接口122可以连接到存储器装置110,以提供用于与存储器装置110通信的接口。也就是说,存储器接口122可以被配置为响应于控制电路123的控制,向存储器装置110和存储器控制器120提供接口。
72.控制电路123可以被配置为通过执行用于存储器控制器120的全部控制的操作来控制存储器装置110的操作。例如,控制电路123可以包括处理器124和工作存储器125。控制电路123可以进一步包括错误检测和校正(检测/校正)电路(即,ecc电路)126。
73.处理器124可以控制存储器控制器120的全部操作。处理器124可以执行逻辑运算。处理器124可以通过主机接口121与主机通信。处理器124可以通过存储器接口122与存储器装置110通信。
74.处理器124可以执行闪存转换层(ftl)的功能。处理器124可以通过ftl将主机提供的逻辑块地址(lba)转换为物理块地址(pba)。ftl可以接收lba,并且通过使用映射表将该lba转换为pba。
75.根据映射单位,存在ftl可以采用的各种地址映射方法。典型的地址映射方法包括页面映射方法、块映射方法和混合映射方法。
76.处理器124可以被配置为对从主机接收的数据进行随机化。例如,处理器124可以通过使用随机化种子来对从主机接收的数据进行随机化。经随机化的数据作为待存储的数据被提供到存储器装置110,并且被编程到存储器单元阵列中。
77.处理器124可以被配置为在读取操作期间对从存储器装置110接收的数据进行去随机化。例如,处理器124可以通过使用去随机化种子来对从存储器装置110接收的数据进行去随机化。经去随机化的数据可以被输出到主机。
78.处理器124可以运行固件(fw)以控制存储器控制器120的操作。换句话说,处理器124可以控制存储器控制器120的全部操作,并且为了执行逻辑运算,可以运行(或驱动)在启动期间被加载到工作存储器125中的固件。
79.固件是指在存储器系统100内部运行的程序,并且可以包括各种功能层。
80.例如,固件可以包括闪存转换层(ftl)、主机接口层(hil)和/或闪存接口层(fil)。闪存转换层被配置为在主机请求存储器系统100提供的逻辑地址与存储器装置110的物理地址之间进行转换。主机接口层被配置为解释主机向存储器系统100(或存储装置)发出的命令并将该命令传递到ftl。闪存接口层被配置为将ftl发出的命令传递到存储器装置110。
81.例如,固件可以被存储在存储器装置110中,然后被加载到工作存储器125中。
82.工作存储器125可以存储固件、程序代码、命令或多条数据以驱动存储器控制器120。工作存储器125可以包括例如静态ram(sram)、动态ram(dram)和/或同步ram(sdram)作为易失性存储器。
83.错误检测/校正电路126可以被配置为通过使用错误校正码来检测目标数据的错误位,并且对检测到的错误位进行校正。例如,目标数据可以是工作存储器125中存储的数据、从存储器装置110检索的数据等。
84.错误检测/校正电路126可以被实施为通过使用错误校正码来对数据进行解码。错误检测/校正电路126可以通过使用各种代码解码器来实施。例如,可以使用执行非系统代码解码的解码器或执行系统代码解码的解码器。
85.例如,错误检测/校正电路126可以关于每条读取数据逐个扇区地检测错误位。也就是说,每条读取数据可以包括多个扇区。如本文所使用的,扇区可以指小于闪速存储器的读取单位(例如,页面)的数据单位。构成每条读取数据的扇区可以经由地址彼此对应。
86.错误检测/校正电路126可以计算位错误率(ber),并且确定是否可以逐个扇区进行校正。例如,如果ber高于参考值,则错误检测/校正电路126可以确定相应的扇区是不可校正的或“失败”。如果ber低于参考值,则错误检测/校正电路126可以确定相应的扇区是可校正的或“通过”。
87.错误检测/校正电路126可以关于所有各条读取数据连续地执行错误检测和校正操作。当读取数据中的扇区是可校正的时,错误检测/校正电路126可以关于下一条读取数据,省略与相应扇区有关的错误检测和校正操作。在以这种方式完成关于所有各条读取数
据的错误检测和校正操作之后,错误检测/校正电路126可以检测被认为是最终不可校正的扇区。可能存在被认为是不可校正的一个或多个扇区。错误检测/校正电路126可以将与被认为是不可校正的扇区有关的信息(例如,地址信息)传递到处理器124。
88.总线127可以被配置为在存储器控制器120的构成元件121、122、124、125和126(即,主机接口121、存储器接口122、处理器124、工作存储器125和错误检测/校正电路126)之间提供通道。总线127可以包括例如用于传递各种类型的控制信号和命令的控制总线,以及用于传递各种类型的数据的数据总线。
89.存储器控制器120的上述构成元件121、122、124、125和126仅作为示例提供。可以从存储器控制器120中省略上述构成元件中的一个或多个,并且/或者可以将上述构成元件中的一个或多个集成到单个元件中。另外,在一些情况下,除了存储器控制器120的上述构成元件之外,还可以添加一个或多个其它构成元件。
90.在下文中,参照图2更详细地描述存储器装置110。
91.图2是示意性示出根据本公开的实施例的存储器装置110的框图。
92.参照图2,存储器装置110可以包括存储器单元阵列210、地址解码器220,读取和写入(读取/写入)电路230、控制逻辑240和电压生成电路250。
93.存储器单元阵列210可以包括多个存储块blk1至blkz,其中z是大于或等于2的自然数。
94.在多个存储块blk1至blkz中,可以设置多个字线wl和多个位线bl,并且可以布置多个存储器单元mc。
95.多个存储块blk1至blkz可以通过多个字线wl连接到地址解码器220。多个存储块blk1至blkz可以通过多个位线bl连接到读取/写入电路230。
96.多个存储块blk1至blkz中的每一个可以包括多个存储器单元。例如,多个存储器单元可以是可以具有垂直沟道结构的非易失性存储器单元。
97.存储器单元阵列210可以被配置为具有二维结构的存储器单元阵列,并且在一些情况下,可以被配置为具有三维结构的存储器单元阵列。
98.存储器单元阵列210中的多个存储器单元中的每一个可以存储至少一位数据。例如,存储器单元阵列210中的多个存储器单元中的每一个可以是被配置为存储一位数据的单层单元(slc)、被配置为存储两位数据的多层单元(mlc)、被配置为存储三位数据的三层单元(tlc)或被配置为存储四位数据的四层单元(qlc)。作为另一示例,存储器单元阵列210可以包括多个存储器单元,该多个存储器单元中的每一个可以被配置为存储五位或更多位数据。
99.地址解码器220、读取/写入电路230、控制逻辑240和电压生成电路250可以作为被配置为驱动存储器单元阵列210的外围电路进行操作。
100.地址解码器220可以通过多个字线wl连接到存储器单元阵列210。
101.地址解码器220可以被配置为响应于控制逻辑240的控制而操作。
102.地址解码器220可以通过存储器装置110内部的输入/输出缓冲器来接收地址。地址解码器220可以被配置为对接收到的地址之中的块地址进行解码。地址解码器220可以根据解码后的块地址选择至少一个存储块。
103.地址解码器220可以从电压生成电路250接收读取电压vread和通过电压vpass。
104.在读取操作期间,地址解码器250可以将读取电压vread施加到所选择存储块内部的所选择字线wl,并且可以将通过电压vpass施加到剩余的未选择字线wl。
105.在编程验证操作期间,地址解码器220可以将电压生成电路250所生成的验证电压施加到所选择存储块内部的所选择字线wl,并且可以将通过电压vpass施加到剩余的未选择字线wl。
106.地址解码器220可以被配置为对接收到的地址之中的列地址进行解码。地址解码器220可以将解码后的列地址传输到读取/写入电路230。
107.存储器装置110可以逐个页面地执行读取操作和编程操作。在请求读取操作和编程操作时接收到的地址可以包括块地址、行地址和列地址中的至少一个。
108.地址解码器220可以根据块地址和行地址选择一个存储块和一个字线。列地址可以由地址解码器220解码,并且被提供到读取/写入电路230。
109.地址解码器220可以包括块解码器、行解码器、列解码器和/或地址缓冲器。
110.读取/写入电路230可以包括多个页面缓冲器pb。当存储器单元阵列210执行读取操作时,读取/写入电路230可以作为“读取电路”进行操作,并且当存储器单元阵列210执行写入操作时,读取/写入电路230可以作为“写入电路”进行操作。
111.上述读取/写入电路230也被称为页面缓冲器电路或数据寄存器电路,该页面缓冲器电路包括多个页面缓冲器pb。读取/写入电路230可以包括在数据处理功能中使用的数据缓冲器,并且在一些情况下,可以进一步包括在高速缓存功能中使用的高速缓存缓冲器。
112.多个页面缓冲器pb可以通过多个位线bl连接到存储器单元阵列210。为了在读取操作和编程验证操作期间感测存储器单元的阈值电压vth,多个页面缓冲器pb可以向连接到存储器单元的位线bl连续地供应感测电流,可以通过感测节点感测根据相应存储器单元的编程状态而流动的电流量的改变,并且可以将该电流量的改变锁存为感测数据。
113.读取/写入电路230可以响应于从控制逻辑240输出的页面缓冲器控制信号而操作。
114.在读取操作期间,读取/写入电路230感测存储器单元中的数据,临时存储检索到的数据,并且将该数据data输出到存储器装置110的输入/输出缓冲器。在实施例中,除了页面缓冲器pb或页面寄存器之外,读取/写入电路230还可以包括列选择电路。
115.控制逻辑240可以连接到地址解码器220、读取/写入电路230和电压生成电路250。控制逻辑240可以通过存储器装置110的输入/输出缓冲器接收命令cmd和控制信号ctrl。
116.控制逻辑240可以被配置为响应于控制信号ctrl而控制存储器装置110的全部操作。控制逻辑240可以输出用于调整多个页面缓冲器pb的感测节点的预充电电位电平的控制信号。
117.控制逻辑240可以控制读取/写入电路230以在存储器单元阵列210中执行读取操作。电压生成电路250可以响应于从控制逻辑240输出的电压生成电路控制信号,生成在读取操作期间使用的读取电压vread和通过电压vpass。
118.存储器装置110中的存储块blk可以包括多个页面pg和多个串。多个页面pg对应于多个字线wl,并且多个串str对应于多个位线bl。
119.在存储块blk中,多个字线wl和多个位线bl可以被布置成相交。例如,多个字线wl中的每一个可以沿行方向布置,并且多个位线bl中的每一个可以沿列方向布置。又例如,多
个字线wl中的每一个可以沿列方向布置,并且多个位线bl中的每一个可以沿行方向布置。
120.多个字线wl和多个位线bl可以彼此相交,从而定义多个存储器单元mc。每个存储器单元mc可以具有布置在其中的晶体管tr。
121.例如,每个存储器单元mc中布置的晶体管tr可以包括漏极、源极和栅极。晶体管tr的漏极(或源极)可以直接地或经由另一晶体管tr连接到相应的位线bl。晶体管tr的源极(或漏极)可以直接地或经由另一晶体管tr连接到源极线(其可以接地)。晶体管tr的栅极可以包括浮置栅极(fg)和控制栅极(cg),其中浮置栅极由绝缘体包围,并且栅极电压从字线wl施加到控制栅极。
122.在多个存储块blk1至blkz中的每一个中,第一选择线(也被称为源极选择线或漏极选择线)可以被另外布置在两个最外字线之中更靠近读取/写入电路230的第一最外字线的外侧,并且第二选择线(也被称为漏极选择线或源极选择线)可以另外布置在另一第二最外字线的外侧。
123.在一些情况下,可以在第一最外字线和第一选择线之间另外布置至少一个虚设字线。另外,可以在第二最外字线和第二选择线之间另外布置至少一个虚设字线。
124.可以逐个页面地执行对存储块的读取操作和编程操作(即,写入操作),并且可以逐个存储块地执行擦除操作。
125.图3是示出根据本公开的实施例的存储器装置110的字线wl和位线bl的结构的示图。
126.参照图3,存储器装置110具有存储器单元mc集中的内核区域,以及对应于剩余的非内核区域的辅助区域。该辅助区域支持存储器单元阵列210的操作。
127.内核区域可以包括页面pg和串str。在内核区域中,多个字线wl1至wl9和多个位线bl被布置成相交。
128.字线wl1至wl9可以连接到行解码器310。位线bl可以连接到列解码器320。对应于图2的读取/写入电路230的数据寄存器330可以存在于多个位线bl和列解码器320之间。
129.多个字线wl1至wl9可以对应于多个页面pg。
130.例如,如图3所示,多个字线wl1至wl9中的每一个可以对应于一个页面pg。当多个字线wl1至wl9中的每一个具有较大的大小时,多个字线wl1至wl9中的每一个可以对应于至少两个(例如,两个或四个)页面pg。每个页面pg是与进行编程操作和读取操作有关的最小单位,并且在进行编程操作和读取操作时,相同页面pg内的所有存储器单元mc可以同时执行操作。
131.多个位线bl可以连接到列解码器320,同时在奇数编号位线bl和偶数编号位线bl之间进行区分。
132.为了访问存储器单元mc,可以首先通过输入/输出端、然后通过行解码器310和列解码器320将地址输入到内核区域,从而可以指定相应的目标存储器单元。如本文所使用的,指定目标存储器单元是指访问连接到行解码器310的字线wl1至wl9与连接到列解码器320的位线bl之间的相交点处的存储器单元mc中的一个,以将数据编程到该存储器单元中或从该存储器单元读取被编程的数据。
133.第一方向(例如,如图3所示的水平方向)上的每个页面pg由被称为字线wl的共用线绑定,并且第二方向(例如,如图3所示的垂直方向)上的每个串str由被称为位线bl的公
共线绑定(即,连接)。如本文所使用的,被公共地绑定是指在结构上由相同材料连接并且在施加电压期间同时接收相同的电压。由于在串联连接的存储器单元mc之中在前存储器单元mc上的电压降,因此施加到存储器单元mc之中的更下游的存储器单元mc的电压可能与施加到更上游的存储器单元mc的电压略有不同。
134.因为存储器装置110进行的、包括编程操作和读取操作的所有数据处理都经由数据寄存器330发生,所以数据寄存器330起着重要的作用。如果数据寄存器330的数据处理被延迟,则所有其它区域都需要等待,直到数据寄存器330完成数据处理。另外,数据寄存器330的性能劣化可能会使存储器装置110的总体性能劣化。
135.在图3所示的示例中,在一个串str中,多个晶体管tr1至tr9可以分别连接到多个字线wl1至wl9。多个晶体管tr1至tr9对应于存储器单元mc。在该示例中,多个晶体管tr1至tr9中的每一个包括控制栅极cg和浮置栅极fg。
136.多个字线wl1至wl9包括两个最外字线wl1和wl9。第一选择线dsl可以另外布置在两个最外字线wl1和wl9之中就信号路径而言更靠近数据寄存器330的第一最外字线wl1的外侧。第二选择线ssl可以另外布置在另一第二最外字线wl9的外侧。
137.由第一选择线dsl控制以导通/关断的第一选择晶体管d-tr具有连接到第一选择线dsl的栅电极,但是不包括浮置栅极fg。由第二选择线ssl控制以导通/关断的第二选择晶体管s-tr具有连接到第二选择线ssl的栅电极,但是不包括浮置栅极fg。
138.第一选择晶体管d-tr起到接通或断开相应的串str和数据寄存器330之间的连接的开关的作用。第二选择晶体管s-tr起到接通或断开相应的串str和源极线sl之间的连接的开关的作用。第一选择晶体管d-tr和第二选择晶体管s-tr可以用来启用或禁用相应的串str。
139.在编程操作期间,存储器系统100向位线bl的、待被编程的目标存储器单元mc填充电子。因此,存储器系统100将导通电压vcc施加到第一选择晶体管d-tr的栅电极,从而导通第一选择晶体管d-tr,并且将关断电压(例如,0v)施加到第二选择晶体管s-tr的栅电极,从而关断第二选择晶体管s-tr。
140.在读取操作或验证操作期间,存储器系统100导通第一选择晶体管d-tr和第二选择晶体管s-tr两者。因此,在读取操作或验证操作期间,电流可以流经相应的串str并且流入对应于地的源极线sl,从而可以测量位线bl的电压电平。然而,在读取操作期间,第一选择晶体管d-tr和第二选择晶体管s-tr之间的通/断定时可能存在时间差。
141.在擦除操作期间,存储器系统100可以通过源极线sl向衬底供应电压(例如, 20v)。在擦除操作期间,存储器系统100使第一选择晶体管d-tr和第二选择晶体管s-tr两者浮置。因此,擦除电压可从所选择的存储块中的存储器单元的浮置栅极fg移除电荷。
142.图4是示出根据本公开的实施例的存储器系统100的配置的示意图。
143.参照图4,存储器系统100的存储器控制器120可以包括第一存储器mem_1、第二存储器mem_2和缓冲器电路buf_cir。
144.存储器控制器120可以将待编程到存储器装置110中的目标数据tgt_dta存储在第一存储器mem_1和第二存储器mem_2中的至少一个中。例如,存储器控制器120可以将目标数据tgt_dta存储在第一存储器mem_1和第二存储器mem_2两者中。又例如,存储器控制器120可以将目标数据tgt_dta仅存储在第一存储器mem_1和第二存储器mem_2中的一个中。
145.在本公开的实施例中,存储器控制器120将目标数据tgt_dta存储在第一存储器mem_1中,但是选择性地将该目标数据tgt_dta存储在第二存储器mem_2中。也就是说,目标数据tgt_dta可以不考虑特定条件而被存储在第一存储器mem_1中,但是仅当满足特定条件时才可以被存储在第二存储器mem_2中。
146.当主机请求存储器系统100写入目标数据tgt_dta时,存储器系统100可以将通过主机接口121从主机接收的目标数据tgt_dta存储在第一存储器mem_1和第二存储器mem_2中的至少一个中。更广泛地,主机可以代表任何合适的实体或控制源,存储器系统100对该实体或控制源进行响应。
147.例如,为了在执行后台操作(例如,垃圾收集、损耗均衡、读取回收等)的同时将已经存储在存储器装置110中的目标数据tgt_dta存储在存储器装置110中的新位置,存储器系统100的存储器控制器120可以通过存储器接口122从存储器装置110读取目标数据tgt_dta,并且将这些数据存储在第一存储器mem_1和第二存储器mem_2中的至少一个中,第一存储器mem_1和第二存储器mem_2中的每一个能够存储目标数据tgt_dta。
148.两个存储器可以以不同的速度操作。例如,第一存储器mem_1可以以比第二存储器mem_2更高的速度操作。例如,第一存储器mem_1可以是sram,并且第二存储器mem_2可以是dram。对于相同的存储容量,高速存储器(在上面的示例中为mem_1)比低速存储器(例如,mem_2)的成本更高。
149.目标数据tgt_dta可以经由缓冲器电路buf_cir存储在第二存储器mem_2中。也就是说,目标数据tgt_dta可以首先被临时存储在缓冲器电路buf_cir中,然后被存储在第二存储器mem_2中。
150.缓冲器电路buf_cir可以从存储器控制器120接收目标数据tgt_dta,并且可以将接收到的目标数据tgt_dta输入到第二存储器mem_2,或者可以丢弃接收到的目标数据tgt_dta。如果缓冲器电路buf_cir丢弃接收到的目标数据tgt_dta,则该目标数据tgt_dta可以不被存储在第二存储器mem_2中。
151.缓冲器电路buf_cir丢弃接收到的目标数据tgt_dta可以意为未将目标数据tgt_dta存储在第二存储器mem_2中或者未将目标数据tgt_dta传送到第二存储器mem_2。
152.另外,存储器控制器120可以将第一存储器mem_1或第二存储器mem_2中存储的目标数据tgt_dta编程到存储器装置110中。
153.如果存储器控制器120将目标数据tgt_dta编程到存储器装置110中的操作成功地完成,则存储器控制器120可以从第一存储器mem_1和第二存储器mem_2中存储了该目标数据tgt_dta的任意一个或两者中删除该数据。
154.另一方面,如果存储器控制器120将目标数据tgt_dta编程到存储器装置110中的操作失败,则存储器控制器120可以通过使用第一存储器mem_1和/或第二存储器mem_2中存储的目标数据tgt_dta将目标数据tgt_dta重新编程到存储器装置110中。
155.在下文中,描述存储器系统100将第一存储器mem_1或第二存储器mem_2中存储的目标数据tgt_dta编程到存储器装置110中的具体示例。
156.图5是示出根据本公开的实施例的由存储器系统100将目标数据tgt_dta编程到存储器装置110中的操作的示例的示图。
157.例如,目标数据tgt_dta可以被存储在第一存储器mem_1和第二存储器mem_2两者
中。在这种情况下,第二存储器mem_2可以存储从缓冲器电路buf_cir输入的目标数据tgt_dta。
158.存储器系统100的存储器控制器120可以将第一存储器mem_1或第二存储器mem_2中存储的目标数据tgt_dta编程到存储器装置110中。
159.在这种情况下,存储器控制器120可以以高于第二存储器mem_2中存储的目标数据tgt_dta的优先级,将第一存储器mem_1中存储的目标数据tgt_dta编程到存储器装置110中。也就是说,如果目标数据tgt_dta存储在第一存储器mem_1和第二存储器mem_2两者中,则存储器控制器120可以将第一存储器mem_1中存储的目标数据tgt_dta编程到存储器装置110中,而如果目标数据tgt_dta未被存储在第一存储器mem_1中,而是存储在第二存储器mem_2中,则存储器控制器120可以将第二存储器mem_2中存储的目标数据tgt_dta编程到存储器装置110中。
160.图6是示出根据本公开的实施例的由存储器系统100将目标数据tgt_dta编程到存储器装置110中的操作的另一示例的示图。
161.在图6中,缓冲器电路buf_cir可以丢弃从存储器控制器120接收的所输入的目标数据tgt_dta。在这种情况下,目标数据tgt_dta可以仅存储在第一存储器mem_1中,而不存储在第二存储器mem_2中。
162.存储器系统100的存储器控制器120可以将第一存储器mem_1中存储的目标数据tgt_dta编程到存储器装置110中。
163.如上所述,认识到目标数据tgt_dta可能未被正确地编程到存储器装置110中,即,tgt_dta的编程可能失败,存储器系统100可以在对目标数据tgt_dta进行编程的同时,将目标数据tgt_dta存储在以高速进行操作的第一存储器mem_1中或以低速进行操作的第二存储器mem_2中。
164.如果将快速地处理从主机接收的数据写入操作,则存储器系统100可以在对目标数据tgt_dta进行编程的同时将目标数据tgt_dta保持在高速的第一存储器mem_1中,从而提高整体编程速度。另一方面,如果可以缓慢地处理从主机接收的数据写入操作,则存储器系统100可以在对目标数据tgt_dta进行编程的同时将目标数据tgt_dta保持在低速的第二存储器mem_2中,从而降低存储目标数据tgt_dta所需的成本。因此,存储器系统100可以优化满足主机所需的数据写入性能而需要的成本。
165.在下文中,详细描述根据本公开的实施例的缓冲器电路buf_cir的结构和操作。
166.图7是示出根据本公开的实施例的缓冲器电路buf_cir的结构的示图。
167.参照图7,缓冲器电路buf_cir可以包括临时存储待输入到第二存储器mem_2的数据的缓冲存储器buf_mem。在这种情况下,该缓冲存储器可以由与第一存储器mem_1相同类型的存储器(例如,sram)形成,以便快速地存储输入数据。
168.缓冲器电路buf_cir可以计算缓冲存储器buf_mem中已经存储数据的空间的大小以及缓冲存储器buf_mem中可以存储新数据的空闲空间的大小,并且可以相应地确定将进行的操作。
169.在本公开的实施例中,缓冲器电路buf_cir可以根据所输入的目标数据tgt_dta的大小以及缓冲存储器的空闲空间的大小,丢弃从控制器120接收的目标数据tgt_dta,或者将接收到的目标数据tgt_dta存储在第二存储器mem_2中。缓冲器电路buf_cir可以进一步
包括控制电路,该控制电路被配置为计算缓冲存储器buf_mem的空闲空间,将目标数据tgt_dta的大小与缓冲存储器buf_mem的空闲空间的大小进行比较,并且丢弃目标数据tgt_dta或将目标数据tgt_dta存储在第二存储器mem_2中。
170.图8是示出根据本公开的实施例的缓冲器电路buf_cir的操作的示例的流程图。图8所示的操作可以由缓冲器电路buf_cir中的控制电路(未示出)执行。
171.参照图8,缓冲器电路buf_cir可以检查所输入的目标数据tgt_dta的大小a(s810)。所输入的目标数据tgt_dta可以从控制器120提供到缓冲器电路buf_cir。
172.另外,缓冲器电路buf_cir可以检查缓冲存储器buf_mem的空闲空间的大小b(s820)。
173.缓冲器电路buf_cir可以确定在操作s810中检查的值a(代表tgt_dta的大小)是否超过在操作s820中检查的值b(代表buf_cir中的空闲空间)(s830)。
174.如果a大于b(s830-是),则缓冲器电路buf_cir可以丢弃所输入的目标数据tgt_dta(s840)。这是因为缓冲存储器的空闲空间不足以存储所有的目标数据tgt_dta。
175.另一方面,当a小于或等于b(s830-否)时,缓冲器电路buf_cir可以将目标数据tgt_dta输入到第二存储器mem_2中(s850)。这是因为缓冲存储器的空闲空间足以存储所有的目标数据tgt_dta。
176.在这种情况下,缓冲器电路buf_cir可以临时存储目标数据tgt_dta,然后将该目标数据存储在第二存储器mem_2中。缓冲器电路buf_cir可以仅将目标数据tgt_dta单独存储在第二存储器mem_2中,或者可以将先前存储在缓冲存储器buf_mem中的其它数据以及目标数据tgt_dta同时存储在第二存储器mem_2中。如果缓冲器电路buf_cir以特定大小的数据单位将数据存储在第二存储器mem_2中,并且目标数据tgt_dta的大小小于该数据单位,则缓冲器电路buf_cir可以通过将目标数据tgt_dta与先前存储在缓冲存储器buf_mem中的其它数据进行组合来生成具有数据单位大小的数据,然后将该数据存储在第二存储器mem_2中。例如,如果第二存储器mem_2以8kb为单位存储数据并且目标数据tgt_dta的大小为4kb,则可以将4kb的目标数据tgt_dta以及先前存储在缓冲存储器buf_mem中的4kb大小的其它数据一起存储在第二存储器mem_2中。
177.在下文中,描述由缓冲器电路buf_cir丢弃目标数据tgt_dta的操作以及由缓冲器电路buf_cir将目标数据tgt_dta输入到第二存储器mem_2中的操作。
178.图9是示出根据本公开的实施例的缓冲器电路buf_cir丢弃目标数据tgt_dta的操作的示例的示图。
179.参照图9,b(缓冲存储器buf_mem的空闲空间的大小)小于a(目标数据tgt_dta的大小),缓冲器电路buf_cir可以丢弃目标数据tgt_dta。在这种情况下,缓冲存储器buf_mem的空闲空间的大小b不变。
180.图10是示出根据本公开的实施例的缓冲器电路buf_cir将目标数据tgt_dta输入到第二存储器mem_2中的操作的示例的示图。目标数据tgt_dta可以从控制器120提供到缓冲器电路buf_cir。
181.参照图10,如果缓冲存储器buf_mem的空闲空间的大小b大于或等于目标数据tgt_dta的大小a,则缓冲器电路buf_cir可以将目标数据tgt_dta临时存储在缓冲存储器buf_mem中。在这种情况下,缓冲存储器buf_mem的空闲空间的大小可以为(b-a)。
182.然后,缓冲器电路buf_cir可以将临时存储在缓冲存储器buf_mem中的目标数据tgt_dta输入到第二存储器mem_2中。在这种情况下,缓冲器电路buf_cir可以将目标数据tgt_dta单独输入到第二存储器mem_2,或者可以将目标数据tgt_dta以及先前存储在缓冲存储器buf_mem中的其它数据一起输入到第二存储器mem_2中。当缓冲器电路buf_cir将目标数据tgt_dta输入到第二存储器mem_2时,目标数据tgt_dta可以被存储在第二存储器mem_2中。
183.以上,已经描述了缓冲器电路buf_cir丢弃目标数据tgt_dta的操作以及缓冲器电路buf_cir将目标数据tgt_dta存储在第二存储器mem_2中的操作。
184.在下文中,描述缓冲器电路buf_cir丢弃目标数据tgt_dta之后存储器系统100的操作,以及缓冲器电路buf_cir将目标数据tgt_dta存储在第二存储器mem_2中之后存储器系统100的操作。
185.首先,描述缓冲器电路buf_cir丢弃目标数据tgt_dta之后存储器系统100的操作。
186.图11是示出根据本公开的实施例的在丢弃目标数据tgt_dta之后由存储器系统100执行的操作的示例的示图。
187.参照图11,如果缓冲器电路buf_cir丢弃目标数据tgt_dta,则目标数据tgt_dta不能存储在第二存储器mem_2中。因此,在丢弃目标数据tgt_dta之后,缓冲器电路buf_cir可以通知存储器控制器120将目标数据tgt_dta存储在第二存储器mem_2中的操作已经失败。
188.在这种情况下,缓冲器电路buf_cir可以输出例如指示将目标数据tgt_dta存储在第二存储器mem_2中的操作已经失败的第一信息info_1。第一信息info_1可以以特定格式配置的消息或电信号的形式输出。下面参照图17详细描述第一信息info_1的结构的示例。
189.另一方面,作为另一示例,缓冲器电路buf_cir可以不单独通知存储器控制器120将目标数据tgt_dta存储在第二存储器mem_2中的操作已经失败。在这种情况下,存储器控制器120可以在第一存储器mem_1和第二存储器mem_2中搜索目标数据tgt_dta,以确定目标数据tgt_dta存储在哪个存储器中。
190.在这种情况下,存储器控制器120可以仅使用第一存储器mem_1中存储的目标数据tgt_dta来完成将目标数据tgt_dta编程到存储器装置110中的操作。
191.因此,在将第一存储器mem_1中存储的目标数据tgt_dta编程到存储器装置110中的操作成功完成之后,存储器控制器120才可以从第一存储器mem_1中删除目标数据tgt_dta。这是因为,如果存储器控制器120在将目标数据tgt_dta编程到存储器装置110的操作成功完成之前(例如,在将目标数据tgt_dta输入到存储器装置110的操作完成时)从第一存储器mem_1中删除目标数据tgt_dta,此后,如果将目标数据tgt_dta编程到存储器装置110中的操作失败,则目标数据tgt_dta不存在于第一存储器mem_1中,并且不存在于第二存储器mem_2中,由此无法将目标数据tgt_dta重新编程到存储器装置110中。
192.图12是示出图11中的第一存储器mem_1和第二存储器mem_2的状态的示图。
193.参照图12,如果缓冲器电路buf_cir丢弃目标数据tgt_dta,则目标数据tgt_dta可以被存储在第一存储器mem_1中,但是目标数据tgt_dta可以不被存储在第二存储器mem_2中。在这种情况下,存储器控制器120可以通过使用第一存储器mem_1中存储的目标数据tgt_dta来将目标数据tgt_dta编程到存储器装置110中。
194.在完成将目标数据tgt_dta输入到存储器装置110中的操作之后,存储器控制器
120可以不立即从第一存储器mem_1中删除目标数据tgt_dta。
195.在第一存储器mem_1中存储的目标数据tgt_dta被成功地编程到存储器装置110中之后,存储器控制器120可以删除第一存储器mem_1中存储的目标数据tgt_dta。在将目标数据tgt_dta成功地编程到存储器装置110的情况下,不再需要将这种数据保持在存储器控制器120中。
196.图13是示出图11中的在编程失败时由存储器系统对目标数据tgt_dta进行重新编程的操作的示图。
197.参照图13,与图12一样,当缓冲器电路buf_cir丢弃目标数据tgt_dta时,目标数据tgt_dta可以被存储在第一存储器mem_1中,但是目标数据tgt_dta可以不被存储在第二存储器mem_2中。在这种情况下,存储器系统100的存储器控制器120可以通过使用第一存储器mem_1中存储的目标数据tgt_dta来将目标数据tgt_dta编程到存储器装置110中。
198.在完成将目标数据tgt_dta输入到存储器装置110中的操作之后,存储器控制器120可以不立即删除第一存储器mem_1中存储的目标数据tgt_dta。
199.在将第一存储器mem_1中存储的目标数据tgt_dta编程到存储器装置110中的操作已经失败的情况下,存储器控制器120可以将第一存储器mem_1中存储的目标数据tgt_dta重新编程到存储器装置110中。因此,存储器控制器120可以确认目标数据tgt_dta被编程到存储器装置110中。
200.在下文中,描述缓冲器电路buf_cir将目标数据tgt_dta存储在第二存储器mem_2中之后存储器系统100的操作。
201.图14是示出根据本公开的实施例的在将目标数据tgt_dta存储在第二存储器mem_2中之后由存储器系统100执行的操作的示例的示图。
202.参照图14,在将目标数据tgt_dta输入到缓冲存储器buf_mem中之后,缓冲器电路buf_cir可以通知存储器控制器120将目标数据tgt_dta存储在第二存储器mem_2中的操作已经成功。
203.在这种情况下,缓冲器电路buf_cir可以输出指示将目标数据tgt_dta存储在第二存储器mem_2中的操作已经成功的第二信息info_2。缓冲器电路buf_cir可以将临时存储在缓冲存储器buf_mem中的目标数据tgt_dta输入到第二存储器mem_2,然后将第二信息info_2传输到存储器控制器120。然而,一旦目标数据tgt_dta被临时存储在缓冲存储器buf_mem中,目标数据tgt_dta就可以被存储在第二存储器mem_2中,使得缓冲器电路buf_cir甚至在目标数据tgt_dta被实际存储在第二存储器mem_2中之前就可以输出第二信息info_2。在这种情况下,类似于上述第一信息info_1,第二信息info_2可以以特定格式配置的消息或电信号的形式输出。下面参照图17详细描述第二信息info_2的结构的示例。
204.作为另一示例,缓冲器电路buf_cir可以不单独通知存储器控制器120将目标数据tgt_dta存储在第二存储器mem_2中的操作已经成功。在这种情况下,存储器控制器120可以在第一存储器mem_1和第二存储器mem_2中搜索目标数据tgt_dta,以确定目标数据tgt_dta存储在哪个存储器中。
205.当缓冲器电路buf_cir将临时存储的目标数据tgt_dta输入到第二存储器mem_2中并且将目标数据tgt_dta存储在第二存储器mem_2中时,存储器控制器120可以通过使用第一存储器mem_1中存储的目标数据tgt_dta或第二存储器mem_2中存储的目标数据tgt_dta,
运行将目标数据tgt_dta编程到存储器装置110中的操作。在这种情况下,如上所述,存储器控制器120可以首先通过使用第一存储器mem_1中存储的目标数据tgt_dta来运行将目标数据tgt_dta编程到存储器装置110中的操作。
206.在这种情况下,在将目标数据tgt_dta输入到存储器装置110的操作完成之后,存储器控制器120可以从第一存储器mem_1中删除第一存储器mem_1中存储的目标数据tgt_dta。在将目标数据tgt_dta输入到存储器装置110的操作完成之后,在目标数据tgt_dta被编程到存储器装置110中之前可能需要预定时间,并且将目标数据tgt_dta编程到存储器装置110中的操作可能存在失败的可能性。即使在将目标数据tgt_dta输入到存储器装置110的操作完成之后,将目标数据tgt_dta编程到存储器装置110的操作失败,存储器控制器120也可以通过使用第二存储器mem_2中存储的目标数据tgt_dta来执行重新编程操作。
207.因此,从完成将目标数据tgt_dta输入到存储器装置110的操作到完成将目标数据tgt_dta编程到存储器装置110的操作,存储器控制器120不需要将目标数据tgt_dta存储在第一存储器mem_1中。因此,因为高速的第一存储器mem_1不需要具有较大的存储容量来存储目标数据tgt_dta,所以可以降低提供第一存储器mem_1的成本。
208.图15是示出图14中的第一存储器mem_1和第二存储器mem_2的状态的示图。
209.参照图15,当缓冲器电路buf_cir将临时存储的目标数据tgt_dta输入到第二存储器mem_2中时,目标数据tgt_dta同时存储在第一存储器mem_1和第二存储器mem_2中。在这种情况下,虽然目标数据tgt_dta被存储在第二存储器mem_2中,但是存储器控制器120可以通过使用第一存储器mem_1中存储的目标数据tgt_dta来将目标数据tgt_dta编程到存储器装置110中。
210.在目标数据tgt_dta被输入到存储器装置110之后,存储器控制器120可以从第一存储器mem_1中删除目标数据tgt_dta。这是因为,即使在第一存储器mem_1中存储的目标数据tgt_dta被删除之后编程操作失败,也可以确保通过使用第二存储器mem_2中存储的目标数据tgt_dta来将目标数据tgt_dta编程到存储器装置110中。
211.在将目标数据tgt_dta编程到存储器装置110中的操作成功完成之后,存储器控制器120可以删除第二存储器mem_2中存储的目标数据tgt_dta。这是因为目标数据tgt_dta被成功地编程到存储器装置110中,因此不需要将目标数据tgt_dta保持在存储器控制器120中。
212.图16是示出图14中的在编程失败时对目标数据进行重新编程的操作的示图。
213.参照图16,类似于图15,当缓冲器电路buf_cir将临时存储的目标数据tgt_dta输入到第二存储器mem_2中时,目标数据tgt_dta同时存储在第一存储器mem_1和第二存储器mem_2中。在这种情况下,存储器控制器120可以首先通过使用第一存储器mem_1中存储的目标数据tgt_dta来将目标数据tgt_dta编程到存储器装置110中。
214.在完成将第一存储器mem_1中存储的目标数据tgt_dta输入到存储器装置110中的操作之后,存储器控制器120可以删除第一存储器mem_1中存储的目标数据tgt_dta。
215.在将第一存储器mem_1中存储的目标数据tgt_dta编程到存储器装置110中的操作失败的情况下,存储器控制器120可以将第二存储器mem_2中存储的目标数据tgt_dta重新编程到存储器装置110中。
216.图17是示出根据本公开的实施例的第一信息info_1和第二信息info_2的格式的
示例的示图。
217.参照图17,图11中的第一信息info_1和图14中的第二信息info_2可以包括作为标识目标数据tgt_dta的信息的标识符信息id。
218.另外,第一信息info_1和第二信息info_2可以进一步包括作为指示目标数据tgt_dta是否已经被存储在第二存储器mem_2中的信息的存储结果信息store_result。
219.标识符信息id可以如下确定。
220.作为示例,标识符信息id可以是目标数据tgt_dta的物理地址。
221.作为另一示例,标识符信息id可以是目标数据tgt_dta的逻辑地址。
222.作为另一示例,标识符信息id可以是由存储器控制器120生成的用于区分被编程到存储器装置110中的数据的任意值。当将目标数据tgt_dta输入到缓冲器电路buf_cir时,存储器控制器120可以输入待用作标识符信息id的值以及目标数据tgt_dta。
223.第一信息info_1的存储结果信息store_result可以指示向第二存储器mem_2中存储目标数据tgt_dta已经失败,并且第二信息info_2的存储结果信息store_result可以指示向第二存储器mem_2中存储目标数据tgt_dta已经成功。
224.图18是示出根据本公开的实施例的第一带宽bw_1和第二带宽bw_2之间的差值的示例的示图。
225.参照图18,用于将数据输入到缓冲器电路buf_cir的第一带宽bw_1可以等于或大于用于将数据从缓冲器电路buf_cir输入到第二存储器mem_2的第二带宽bw_2。
226.在这种情况下,缓冲器电路buf_cir可以丢弃从存储器控制器120提供到缓冲器电路buf_cir的所有数据中、与第一带宽bw_1和第二带宽bw_2之间的差值相对应的数据的量。在这种情况下,由缓冲器电路buf_cir所丢弃的数据可以不存储在第二存储器mem_2中,而是可以仅存储在第一存储器mem_1中。
227.例如,假设第一带宽bw_1为每单位时间(例如,2ms)32mb,并且第二带宽bw_2为每单位时间(例如,2ms)24mb,则缓冲器电路buf_cir可以丢弃单位时间内提供的所有数据中多达8mb。这是因为每单位时间(例如,2ms)32mb数据之中仅24mb数据可以被输入到第二存储器mem_2,并且每单位时间(例如,2ms)剩余的8mb数据不能被输入到第二存储器mem_2。
228.图19是示出根据图18中描述的第一带宽bw_1和第二带宽bw_2之间的差值将第一存储器mem_1或第二存储器mem_2用于重新编程操作的概率的示图。
229.参照图19,用于将数据输入到第一存储器mem_1和缓冲器电路buf_cir的带宽为第一带宽bw_1,并且用于将来自缓冲器电路buf_cir的数据存储在第二存储器mem_2中的带宽为第二带宽bw_2,并且第一带宽bw_1等于或大于第二带宽bw_2。
230.在这种情况下,可以将与第二带宽bw_2相对应的数据存储在第二存储器mem_2中。因此,如果编程操作失败,则存储器控制器120可以针对与第二带宽bw_2相对应的数据,通过使用第二存储器mem_2来运行重新编程操作。
231.与第一带宽bw_1和第二带宽bw_2之间的差值相对应的数据可以不存储在第二存储器mem_2中,而是可以仅存储在第一存储器mem_1中。因此,如果编程操作失败,则存储器控制器120可以针对与第一带宽bw_1和第二带宽bw_2之间的差值相对应的数据,通过使用第一存储器mem_1来运行重新编程操作。
232.因此,在编程操作期间发生失败的情况下,可以如下确定将第一存储器mem_1和第
二存储器mem_2用于重新编程操作的概率。
233.使用第一存储器mem_1的概率:1-((bw_2)/(bw_1))。
234.使用第二存储器mem_2的概率:((bw_2)/(bw_1))。
235.例如,第一带宽bw_1为每单位时间(例如,2ms)32mb,并且第二带宽bw_2为每单位时间24mb。
236.在该示例中,由于第一带宽bw_1和第二带宽bw_2之间的差值,因此第二存储器mem_2可以存储总输入数据的24/32=75%,因此当编程操作失败时第二存储器mem_2将被用于重新编程操作的概率为75%,因为总输入数据的75%存储在第二存储器mem_2中。第一存储器mem_1将被用于重新编程操作的概率为25%。
237.因此,存储器系统100可以将第一存储器mem_1的存储容量减小到25%,即,第一带宽bw_1的1/4,因此,可以减少提供第一存储器mem_1和第二存储器mem_2的成本。
238.如果第一带宽bw_1和第二带宽bw_2是已知的,则可以优化第一存储器mem_1的存储容量与第二存储器mem_2的存储容量的比率。
239.例如,如果第一带宽bw_1为第二带宽bw_2的两倍,则使用第一存储器mem_1进行重新编程操作的概率为1/2,使用第二存储器mem_2进行重新编程操作的概率为1/2。因此,第一存储器mem_1的存储容量与第二存储器mem_2的存储容量的比率可以被确定为1:1。
240.作为另一示例,如果第一带宽bw_1为第二带宽bw_2的1.5倍,则使用第一存储器mem_1进行重新编程操作的概率为1/3,使用第二存储器mem_2进行重新编程操作的概率为2/3。因此,第一存储器mem_1的存储容量与第二存储器mem_2的存储容量的比率可以被确定为1:2。
241.因此,随着第一带宽bw_1和第二带宽bw_2之间的差值增加,未存储在第二存储器mem_2中而被丢弃的数据的量增加,因此第一存储器mem_1的存储容量可以更大。另一方面,随着第一带宽bw_1和第二带宽bw_2之间的差值减小,大部分数据可以被存储在第二存储器mem_2中,因此第一存储器mem_1的存储容量可以比其它情况下的存储容量更小。
242.如上所述,可以根据第一带宽bw_1和第二带宽bw_2之间的差值适当地确定第一存储器mem_1和第二存储器mem_2的存储容量。因此,即使由于将来主机性能的迅速提高而导致第一带宽bw_1和第二带宽bw_2之间的差值增加,存储器系统100也可以有效地将数据编程到存储器装置中。
243.图20是示出根据本公开的实施例的操作存储器系统100的方法的示图。
244.参照图20,存储器系统100的操作方法可以包括将待编程到存储器装置110中的目标数据tgt_dta存储到第一存储器mem_1中(s2010)。
245.另外,操作存储器系统100的方法可以包括选择性地将目标数据tgt_dta存储在第二存储器mem_2中(s2020)。
246.另外,操作存储器系统100的方法可以包括将第一存储器mem_1中存储的目标数据tgt_dta编程到存储器装置110中(s2030)。
247.另外,操作存储器系统100的方法可以包括当将第一存储器mem_1中存储的目标数据tgt_dta编程到存储器装置110的操作已经失败时,通过使用第一存储器mem_1或第二存储器mem_2进行重新编程(s2040)。
248.在这种情况下,第一存储器mem_1可以以比第二存储器mem_2更高的速度操作。
249.图21是示出根据本公开的实施例的选择性地将目标数据tgt_dta存储在第二存储器mem_2中的示例的示图。
250.参照图21,操作s2020可以包括将目标数据tgt_dta输入到缓冲器电路buf_cir(s2110)。
251.另外,操作s2020可以包括将输入到缓冲器电路buf_cir的所输入的目标数据tgt_dta输入到第二存储器mem_2中或丢弃所输入的目标数据tgt_dta(s2120)。
252.在操作s2120中,可以根据目标数据tgt_dta的大小以及缓冲器电路buf_cir中缓冲存储器buf_mem的空闲空间的大小,丢弃所输入的目标数据tgt_dta或将所输入的目标数据tgt_dta输入到第二存储器mem_2。
253.作为示例,在目标数据tgt_dta的大小超过缓冲存储器buf_mem的空闲空间的大小的情况下,可以在缓冲器电路buf_cir中丢弃所输入的目标数据tgt_dta。另一方面,如果目标数据tgt_dta的大小小于缓冲存储器buf_mem的空闲空间的大小,则可以将所输入的目标数据tgt_dta临时存储在缓冲存储器buf_mem中,然后可以将临时存储的目标数据tgt_dta输入到第二存储器mem_2。
254.在这种情况下,当在缓冲器电路buf_cir中丢弃所输入的目标数据tgt_dta时,在完成将目标数据tgt_dta编程到存储器装置110中的操作之后,可以从第一存储器mem_1中删除第一存储器mem_1中存储的目标数据tgt_dta。在这种情况下,存储器系统100的操作方法可以进一步包括当将目标数据tgt_dta编程到存储器装置110中的操作已经失败时,将第一存储器mem_1中存储的目标数据tgt_dta重新编程到存储器装置110中。
255.另一方面,当将临时存储的目标数据tgt_dta输入到第二存储器mem_2时,在目标数据tgt_dta被存储在第二存储器mem_2中的同时,在完成将第一存储器mem_1中存储的目标数据tgt_dta输入到存储器装置110中的操作之后,可以从第一存储器mem_1中删除第一存储器mem_1中存储的目标数据tgt_dta。在这种情况下,存储器系统100的操作方法可以进一步包括当将目标数据tgt_dta编程到存储器装置110中的操作已经失败时,将第二存储器mem_2中存储的目标数据tgt_dta重新编程到存储器装置110中。
256.上述存储器控制器120的操作可以由控制电路123控制,并且可以以使得处理器124运行或驱动编程了存储器控制器120的所有操作的固件的方式执行。
257.图22是示出根据本公开的实施例的计算系统2200的配置的示图。
258.参照图22,根据本公开的实施例的计算系统2200可以包括:存储器系统100,电连接到系统总线2260;cpu 2210,被配置为控制计算系统2200的全部操作;ram 2220,被配置为存储与计算系统2200的操作有关的数据和信息;用户接口/用户体验(ui/ux)模块2230,被配置为向用户提供用户环境;通信模块2240,被配置为与有线和/或无线类型的外部装置通信;以及电源管理模块2250,被配置为管理计算系统2200所使用的电力。
259.计算系统2200可以是个人计算机(pc),或者可以包括诸如智能电话、平板电脑或各种电子装置的移动终端。
260.计算系统2200可以进一步包括用于供应操作电压的电池,并且可以进一步包括应用芯片组、图形相关模块、相机图像处理器和dram。其它元件对于本领域技术人员而言将是显而易见的。
261.存储器系统100不仅可以包括诸如硬盘驱动器(hdd)的被配置为将数据存储在磁
盘中的装置,还可以包括诸如固态驱动器(ssd)、通用闪存装置或嵌入式mmc(emmc)装置的被配置为将数据存储在非易失性存储器中的装置。非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)、闪速存储器、相变ram(pram)、磁性ram(mram)、电阻式ram(rram)、铁电ram(fram)等。另外,存储器系统100可以被实施为各种类型的存储装置并且被安装在各种电子装置内部。
262.根据上述本公开的实施例,可以使存储器系统的操作延迟时间最小化。另外,根据本公开的实施例,可以使调用特定功能的过程中发生的开销最小化。
263.尽管已经示出和描述了本公开的各个实施例,但是本领域技术人员将理解,在不脱离所附权利要求书所限定的本发明的范围和精神的情况下,可以进行各种修改、添加和替换。本发明涵盖所有这样的变型,只要它们落在权利要求书、包括其等同方案的范围之内。
再多了解一些

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

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

相关文献