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

文档序号:31152171发布日期:2022-08-17 04:14阅读:60来源:国知局
存储器系统及存储器系统的操作方法与流程
存储器系统及存储器系统的操作方法
1.相关申请的交叉引用
2.本技术要求于2021年2月9日提交的申请号为10-2021-0018011的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
3.本公开的实施例涉及一种存储器系统及存储器系统的操作方法。


背景技术:

4.存储器系统包括数据存储装置,该数据存储装置基于来自诸如计算机、服务器、智能电话、平板电脑或其它电子装置的主机的请求来存储数据。存储器系统的示例涵盖传统的基于磁盘的硬盘驱动器(hdd)到诸如固态驱动器(ssd)、通用闪存(ufs)装置或嵌入式mmc(emmc)装置的基于半导体的数据存储装置。
5.存储器系统可以进一步包括用于控制存储器装置的存储器控制器。存储器控制器可以从主机接收命令,并且可以基于接收到的命令来运行命令或控制对存储器系统中的存储器装置的读取操作/写入操作/擦除操作。存储器控制器可以用于运行固件操作以执行用于控制这些操作的逻辑运算。
6.此外,在运行关闭操作(shutdown operation)的过程中,存储器系统可以将数据写入存储器装置的过程中改变的元数据存储在存储器装置中。


技术实现要素:

7.本公开的实施例可以提供一种存储器系统以及存储器系统的操作方法,其能够防止由于特定内核将元数据存储在存储器装置中的时间延迟而导致执行关闭操作的时间增加的问题。
8.一方面,本公开的实施例可以提供一种存储器系统,该存储器系统包括存储器装置和存储器控制器,该存储器装置包括多个存储器管芯,该存储器控制器用于与存储器装置通信并且控制存储器装置。
9.存储器控制器可以包括用于运行第一层的操作的主内核,以及用于运行第二层的操作的多个子内核,该第二层是第一层的下层。在这种情况下,多个子内核中的每一个可以运行将元数据存储在多个存储器管芯之中的相应存储器管芯中的操作。
10.当运行从主机接收的试图关闭存储器系统的关闭命令时,主内核可以控制多个子内核,使得多个子内核之中的第二子内核存储元数据段,该元数据段是待由多个子内核之中的第一子内核处理的元数据之中的改变部分的至少一部分。
11.另一方面,本公开的实施例可以提供一种存储器系统的操作方法,该存储器系统包括多个存储器管芯、运行第一层的操作的主内核以及运行第二层的操作的多个子内核,该第二层是第一层的下层,其中多个子内核中的每一个可以运行将元数据存储在多个存储器管芯之中的相应存储器管芯中的操作。
12.存储器系统的操作方法可以包括从主机接收试图关闭存储器系统的关闭命令。
13.存储器系统的操作方法可以包括在运行关闭命令期间,由主内核来选择处理元数据段的第二子内核,该元数据段是待由多个子内核之中的第一子内核处理的元数据之中的改变部分的至少一部分。
14.存储器系统的操作方法可以包括由主内核控制多个子内核,使得第二子内核处理元数据段。
15.另一方面,本公开的实施例可以提供一种控制器,具有:第一子内核和第二子内核,被配置为驱动第一闪存转换层(ftl)和第二闪存转换层(ftl),以控制非易失性存储器装置分别对该非易失性存储器装置中包括的第一管芯和第二管芯执行操作,第一ftl的操作和第二ftl的操作彼此独立;以及主内核。
16.当控制器关闭时,主内核可以控制第一子内核和第二子内核将在关闭之前由第一子内核处理的第一元段存储到第二管芯中。
17.当控制器在关闭之后启动时,主内核可以控制第一子内核和第二子内核将第一元段从第二管芯移动到第一管芯。
18.当第二子内核存储第一元段时,第二子内核可以向主内核提供关于第一子内核和第二子内核以及第二管芯内存储第一元段的位置的信息。
19.主内核可以在启动期间基于该信息控制第一子内核和第二子内核。
20.根据本公开的实施例,可以防止由于特定内核将元数据存储在存储器装置中的时间延迟而导致执行关闭操作的时间增加。
附图说明
21.图1是示出基于所公开技术的实施例的存储器系统的配置的示意图。
22.图2是示意性地示出基于所公开技术的实施例的存储器装置的框图。
23.图3是示出基于所公开技术的实施例的存储器装置的字线和位线的结构的示图。
24.图4是示出根据本公开的实施例的存储器系统的示意结构的示图。
25.图5是示出根据本公开的实施例的存储器系统运行关闭命令的操作的示图。
26.图6是示出根据本公开的实施例的主内核控制多个子内核的操作的示例的示图。
27.图7是示出根据本公开的实施例的存储器系统确定第二子内核的候选子内核的操作的示例的示图。
28.图8是示出根据本公开的实施例的在从图7中确定的候选子内核之中确定第二子内核的示例的示图。
29.图9是示出根据本公开的实施例的主内核对待由第二子内核处理的元数据段的控制操作的示例的示图。
30.图10是示出根据本公开的实施例的图9中描述的内核间通信消息的示例的示图。
31.图11是示出根据本公开的实施例的当存储器系统在关闭之后的第一次启动时运行的操作的示例的示图。
32.图12是示出根据本公开的实施例的存储器系统的操作方法的示图。
33.图13是示出基于所公开技术的实施例的计算系统的配置的示图。
具体实施方式
34.在下文中,参照附图详细描述本公开的实施例。在整个说明书中,对“一个实施例”、“另一实施例”等的引用不一定仅针对一个实施例,并且对任何这种短语的不同引用不一定针对相同的实施例。在本文中使用的术语“实施例”不一定指所有实施例。
35.图1是示出基于所公开技术的实施例的存储器系统100的示意性配置的示图。
36.在一些实施方案中,存储器系统100可以包括被配置为存储数据的存储器装置110以及被配置为控制存储器装置110的存储器控制器120。
37.存储器装置110可以包括多个存储块,每个存储块包括用于存储数据的多个存储器单元。存储器装置110可以被配置为响应于从存储器控制器120接收的控制信号而操作。例如,存储器装置110的操作可以包括读取操作、编程操作(也被称为“写入操作”)、擦除操作等。
38.存储器装置110中的存储器单元用于存储数据,并且可以以存储器单元阵列的形式布置。存储器单元阵列可以被划分为存储器单元的存储块,并且每个块包括存储器单元的不同页面。在nand闪速存储器装置的典型实施方案中,存储器单元的页面是可以编程或写入的最小存储器单位,并且存储器单元中存储的数据可以以块为单位进行擦除。
39.在一些实施方案中,存储器装置110可以被实施为各种类型,诸如双倍数据速率同步动态随机存取存储器(ddr sdram)、低功率双倍数据速率第4代(lpddr4)sdram、图形双倍数据速率(gddr)sdram、低功率ddr(lpddr)、rambus动态随机存取存储器(rdram)、nand闪速存储器、垂直nand闪速存储器、nor闪速存储器、电阻式随机存取存储器(rram)、相变随机存取存储器(pram)、磁阻随机存取存储器(mram)、铁电随机存取存储器(fram)或自旋转移力矩随机存取存储器(stt-ram)。
40.存储器装置110可以以三维阵列结构实施。所公开技术的一些实施例可应用于具有电荷存储层的任何类型的闪速存储器装置。在实施方案中,电荷存储层可以由导电材料形成,并且这种电荷存储层可以被称为浮置栅极。在另一实施方案中,电荷存储层可以由绝缘材料形成,并且这种闪速存储器装置可以被称为电荷撷取闪存(ctf)。
41.存储器装置110可以被配置为从存储器控制器120接收命令和地址,以访问存储器单元阵列的、使用该地址所选择的区域。也就是说,存储器装置110可以对存储器装置的、具有与从存储器控制器120接收到的地址相对应的物理地址的存储器区域执行与接收到的命令相对应的操作。
42.在一些实施方案中,存储器装置110可以执行编程操作、读取操作、擦除操作等。在编程操作期间,存储器装置110可以将数据写入由地址选择的区域。在读取操作期间,存储器装置110可以从由地址选择的存储器区域读取数据。在擦除操作期间,存储器装置110可以擦除由地址选择的存储器区域中存储的数据。
43.存储器控制器120可以控制对存储器装置110执行的写入操作(编程操作)、读取操作、擦除操作和后台操作。后台操作可以包括例如被实施为优化存储器装置110的整体性能的操作,诸如垃圾收集(gc)操作、损耗均衡(wl)操作和坏块管理(bbm)操作。
44.存储器控制器120可以在主机的请求下控制存储器装置110的操作。可选地,当存储器控制器120执行存储器装置的这种后台操作时,即使在没有来自主机的请求的情况下,存储器控制器120也可以控制存储器装置110的操作。
45.存储器控制器120和主机可以是分开的装置。在一些实施方案中,存储器控制器120和主机可以被集成并实施为单个装置。在下面的描述中,将以存储器控制器120和主机作为分开的装置作为示例进行讨论。
46.参照图1,存储器控制器120可以包括存储器接口122、控制电路123和主机接口121。
47.主机接口121可以被配置为提供用于与主机通信的接口。
48.当从主机host接收命令时,控制电路123可以通过主机接口121接收命令,并且可以执行处理接收到的命令的操作。
49.存储器接口122可以直接或间接地连接到存储器装置110以提供用于与存储器装置110通信的接口。也就是说,存储器接口122可以被配置为向存储器装置110和存储器控制器120提供接口,以使存储器控制器120基于来自控制电路123的控制信号和指令,对存储器装置110执行存储器操作。
50.控制电路123可以被配置为通过存储器控制器120来控制存储器装置110的操作。例如,控制电路123可以包括处理器124和工作存储器125。控制电路123可以进一步包括错误检测/校正电路(ecc电路)126等。
51.处理器124可以控制存储器控制器120的全部操作。处理器124可以执行逻辑运算。处理器124可以通过主机接口121与主机host通信。处理器124可以通过存储器接口122与存储器装置110通信。
52.处理器124可以用于执行与闪存转换层(ftl)相关联的操作,以有效地管理对存储器系统100的存储器操作。处理器124可以通过ftl将主机所提供的逻辑块地址(lba)转换为物理块地址(pba)。ftl可以接收lba,并且通过使用映射表将该lba转换为pba。
53.基于映射单位,ftl可以采用各种地址映射方法。典型的地址映射方法可以包括页面映射方法、块映射方法和混合映射方法。
54.处理器124可以被配置为使从主机接收的数据随机化,以将经随机化的数据写入存储器单元阵列。例如,处理器124可以通过使用随机化种子来使从主机接收的数据随机化。经随机化的数据被提供到存储器装置110并被写入存储器单元阵列。
55.处理器124可以被配置为在读取操作期间使从存储器装置110接收的数据去随机化。例如,处理器124可以通过使用去随机化种子来使从存储器装置110接收的数据去随机化。经去随机化的数据可以被输出到主机host。
56.处理器124可以运行固件(fw)以控制存储器控制器120的操作。也就是说,处理器124可以控制存储器控制器120的全部操作,并且为了执行逻辑运算,可以在启动期间运行(驱动)加载到工作存储器125中的固件。
57.固件是指在某个非易失性存储器上存储并且在存储器系统100内部运行的程序或软件。
58.在一些实施方案中,固件可以包括各种功能层。例如,固件可以包括闪存转换层(ftl)、主机接口层(hil)和闪存接口层(fil)中的至少一个:ftl被配置为将主机host请求中的逻辑地址转换为存储器装置110的物理地址;hil被配置为解译主机host向诸如存储器系统100的数据存储装置发出的命令,并且将该命令传递到ftl;以及fil被配置为将由ftl发出的命令传递到存储器装置110。
59.例如,固件可以被存储在存储器装置110中,然后被加载到工作存储器125中。
60.工作存储器125可以存储操作存储器控制器120所需的固件、程序代码、命令或数据。工作存储器125可以包括例如作为易失性存储器的静态ram(sram)、动态ram(dram)和同步ram(sdram)之中的至少一种。
61.错误检测/校正电路126可以被配置为通过使用错误检测和校正码来对数据中的一个或多个错误位进行检测和校正。在一些实施方案中,经过错误检测和校正的数据可以包括工作存储器125中存储的数据以及从存储器装置110检索的数据。
62.错误检测/校正电路126可以被实施为通过使用错误校正码来对数据进行解码。错误检测/校正电路126可以通过使用各种解码方案来实施。例如,可以使用执行非系统代码解码的解码器或执行系统代码解码的解码器。
63.在一些实施方案中,错误检测/校正电路126可以基于扇区来检测一个或多个错误位。也就是说,每条读取数据可以包括多个扇区。在本专利文件中,扇区可以指小于闪速存储器的读取单位(例如,页面)的数据单位。可以基于地址来映射构成每条读取数据的扇区。
64.在一些实施方案中,错误检测/校正电路126可以逐个扇区地计算位错误率(ber),并且确定数据中的错误位的数量是否在错误校正能力之内。例如,如果ber高于参考值,则错误检测/校正电路126可以确定相应扇区中的错误位是不可校正的,并且将相应扇区标记为“失败”。如果ber小于或等于参考值,则错误检测/校正电路126可以确定相应扇区是可校正的,或者可以将相应扇区标记为“通过”。
65.错误检测/校正电路126可以对所有的读取数据依次地执行错误检测和校正操作。当读取数据中包括的扇区是可校正的时,错误检测/校正电路126可以继续到下一个扇区,以检查是否需要对下一个扇区进行错误校正操作。在以这种方式完成对所有读取数据的错误检测和校正操作之后,错误检测/校正电路126可以获取关于读取数据中的哪个扇区被认为是不可校正的信息。错误检测/校正电路126可以将这种信息(例如,不可校正位的地址)提供到处理器124。
66.存储器系统100还可以包括总线127,以在存储器控制器120的构成元件121、122、124、125和126之间提供通道。总线127可以包括例如用于传递各种类型的控制信号和命令的控制总线以及用于传递各种类型的数据的数据总线。
67.通过示例的方式,图1示出了存储器控制器120的上述构成元件121、122、124、125和126。注意的是,可以省略附图所示的那些元件中的一些,或者可以将存储器控制器120的上述构成元件121、122、124、125和126中的一些集成到单个元件中。另外,在一些实施方案中,可以将一个或多个其它构成元件添加到存储器控制器120的上述构成元件。
68.图2是示意性地示出基于所公开技术的实施例的存储器装置110的框图。
69.在一些实施方案中,基于所公开技术的实施例的存储器装置110可以包括存储器单元阵列210、地址解码器220、读取/写入电路230、控制逻辑240和电压生成电路250。
70.存储器单元阵列210可以包括多个存储块blk1至blkz,其中z是等于或大于2的自然数。
71.在多个存储块blk1至blkz中,可以按行和列设置多个字线wl和多个位线bl,并且可以布置多个存储器单元mc。
72.多个存储块blk1至blkz可以通过多个字线wl连接到地址解码器220。多个存储块
blk1至blkz可以通过多个位线bl连接到读取/写入电路230。
73.多个存储块blk1至blkz中的每一个可以包括多个存储器单元。例如,多个存储器单元是非易失性存储器单元。在一些实施方案中,这种非易失性存储器单元可以以垂直沟道结构布置。
74.存储器单元阵列210可以被配置为具有二维结构的存储器单元阵列。在一些实施方案中,存储器单元阵列210可以以三维结构布置。
75.存储器单元阵列210中包括的多个存储器单元中的每一个可以存储至少一位数据。例如,存储器单元阵列210中包括的多个存储器单元中的每一个可以是被配置为存储一位数据的单层单元(slc)。作为另一示例,存储器单元阵列210中包括的多个存储器单元中的每一个可以是被配置为每个存储器单元存储两位数据的多层单元(mlc)。作为另一示例,存储器单元阵列210中包括的多个存储器单元中的每一个可以是被配置为每个存储器单元存储三位数据的三层单元(tlc)。作为另一示例,存储器单元阵列210中包括的多个存储器单元中的每一个可以是被配置为每个存储器单元存储四位数据的四层单元(qlc)。作为另一示例,存储器单元阵列210可以包括多个存储器单元,多个存储器单元中的每一个可以被配置为每个存储器单元存储至少五位数据。
76.参照图2,地址解码器220、读取/写入电路230、控制逻辑240和电压生成电路250可以作为被配置为驱动存储器单元阵列210的外围电路进行操作。
77.地址解码器220可以通过多个字线wl连接到存储器单元阵列210。
78.地址解码器220可以被配置为响应于控制逻辑240的命令和控制信号而操作。
79.地址解码器220可以通过存储器装置110内部的输入/输出缓冲器来接收地址。地址解码器220可以被配置为对接收到的地址之中的块地址进行解码。地址解码器220可以基于经解码的块地址来选择至少一个存储块。
80.地址解码器220可以从电压生成电路250接收读取电压vread和通过电压vpass。
81.在读取操作期间,地址解码器220可以将读取电压vread施加到所选择存储块内部的所选择字线wl,并且将通过电压vpass施加到其余的未选择字线wl。
82.在编程验证操作期间,地址解码器220可以将电压生成电路250所生成的验证电压施加到所选择存储块内部的所选择字线wl,并且可以将通过电压vpass施加到其余的未选择字线wl。
83.地址解码器220可以被配置为对接收到的地址之中的列地址进行解码。地址解码器220可以将经解码的列地址传输到读取/写入电路230。
84.存储器装置110可以逐个页面地执行读取操作和编程操作。在请求读取操作和编程操作时接收到的地址可以包括块地址、行地址和列地址中的至少一个。
85.地址解码器220可以基于块地址选择一个存储块并且基于行地址选择一个字线。列地址可以由地址解码器220解码并被提供到读取/写入电路230。
86.地址解码器220可以包括块解码器、行解码器、列解码器和地址缓冲器中的至少一个。
87.读取/写入电路230可以包括多个页面缓冲器pb。当存储器单元阵列210执行读取操作时,读取/写入电路230可以作为“读取电路”进行操作,并且当存储器单元阵列210执行写入操作时,读取/写入电路230可以作为“写入电路”进行操作。
88.上述读取/写入电路230也被称为页面缓冲器电路或数据寄存器电路,该页面缓冲器电路包括多个页面缓冲器pb。读取/写入电路230可以包括参与数据处理功能的数据缓冲器,并且在一些实施方案中,读取/写入电路230可以进一步包括用于数据高速缓存的高速缓存缓冲器。
89.多个页面缓冲器pb可以通过多个位线bl连接到存储器单元阵列210。为了在读取操作和编程验证操作期间检测或感测存储器单元的阈值电压vth,多个页面缓冲器pb可以向连接到存储器单元的位线bl连续地供应感测电流,以在感测节点处检测与电流量成比例的变化并且可以将相应电压保持或锁存为感测数据,其中该电流量根据相应存储器单元的编程状态而变化。
90.读取/写入电路230可以响应于从控制逻辑240输出的页面缓冲器控制信号而操作。
91.在读取操作期间,读取/写入电路230感测存储器单元的电压值,并且读出该电压值作为数据。读取/写入电路230临时存储检索到的数据,并且将数据data输出到存储器装置110的输入/输出缓冲器。在实施例中,除了页面缓冲器pb或页面寄存器之外,读取/写入电路230还可以包括列选择电路。
92.控制逻辑240可以连接到地址解码器220、读取/写入电路230和电压生成电路250。控制逻辑240可以通过存储器装置110的输入/输出缓冲器接收命令cmd和控制信号ctrl。
93.控制逻辑240可以被配置为响应于控制信号ctrl而控制存储器装置110的全部操作。控制逻辑240可以输出用于将多个页面缓冲器pb的感测节点的电压电平调节至预充电电压电平的控制信号。
94.控制逻辑240可以控制读取/写入电路230在存储器单元阵列210中执行读取操作。电压生成电路250可以响应于从控制逻辑240输出的电压生成电路控制信号,生成在读取操作期间使用的读取电压vread和通过电压vpass。
95.存储器装置110中包括的存储块blk可以包括多个页面pg。在一些实施方案中,按列布置的多个存储器单元形成存储器单元串,并且按行布置的多个存储器单元形成存储块。多个页面pg中的每一个联接到一个字线wl,并且存储器单元串str中的每一个联接到一个位线bl。
96.在存储块blk中,多个字线wl和多个位线bl可以按行和列布置。例如,多个字线wl中的每一个可以沿行方向布置,并且多个位线bl中的每一个可以沿列方向布置。作为另一示例,多个字线wl中的每一个可以沿列方向布置,并且多个位线bl中的每一个可以沿行方向布置。
97.在一些实施方案中,多个字线wl和多个位线bl可以彼此相交,从而在多个存储器单元mc的阵列中寻址单个存储器单元。在一些实施方案中,每个存储器单元mc可以包括晶体管tr,该晶体管tr包括可以保持电荷的材料层。
98.例如,每个存储器单元mc中布置的晶体管tr可以包括漏极、源极和栅极。晶体管tr的漏极(或源极)可以直接地或经由另一晶体管tr连接到相应位线bl。晶体管tr的源极(或漏极)可以直接地或经由另一晶体管tr连接到源极线(源极线可以是地)。晶体管tr的栅极可以包括浮置栅极(fg)和控制栅极(cg),其中浮置栅极由绝缘体包围,并且栅极电压被从字线wl施加到控制栅极。
99.在多个存储块blk1至blkz中的每一个中,第一选择线(也被称为源极选择线或漏极选择线)可以被另外布置在两个最外字线之中更靠近读取/写入电路230的第一最外字线的外侧,并且第二选择线(也被称为漏极选择线或源极选择线)可以另外布置在另一第二最外字线的外侧。
100.在一些实施方案中,可以在第一最外字线和第一选择线之间另外布置至少一个虚设字线。另外,可以在第二最外字线和第二选择线之间另外布置至少一个虚设字线。
101.可以逐个页面地执行存储块的读取操作和编程操作(写入操作),并且可以逐个存储块地执行擦除操作。
102.图3是示出基于所公开技术的实施例的存储器装置110的字线wl和位线bl的结构的示图。
103.参照图3,存储器装置110具有布置有存储器单元mc的内核区域,以及包括用于执行存储器单元阵列210的操作的电路的辅助区域(除了内核区域以外的其余区域)。
104.在内核区域中,沿一个方向布置的一定数量的存储器单元可以被称为“页面”pg,并且串联联接的一定数量的存储器单元可以被称为“存储器单元串”str。
105.字线wl1至wl9可以连接到行解码器310。位线bl可以连接到列解码器320。对应于图2的读取/写入电路230的数据寄存器330可以存在于多个位线bl和列解码器320之间。
106.多个字线wl1至wl9可以对应于多个页面pg。
107.例如,如图3所示,多个字线wl1至wl9中的每一个可以对应于一个页面pg。当多个字线wl1至wl9中的每一个的大小较大时,多个字线wl1至wl9中的每一个可以对应于至少两个(例如,两个或四个)页面pg。每个页面pg是编程操作和读取操作中的最小单位,并且当进行编程操作和读取操作时,相同页面pg内的所有存储器单元mc可以同时执行操作。
108.多个位线bl可以连接到列解码器320。在一些实施方案中,可以将多个位线bl划分为奇数编号位线bl和偶数编号位线bl,使得一对奇数编号位线和偶数编号位线共同联接到列解码器320。
109.在访问存储器单元mc时,行解码器310和列解码器320被用于基于地址来定位期望的存储器单元。
110.在一些实施方案中,因为存储器装置110进行的包括编程操作和读取操作的所有数据处理都经由数据寄存器330发生,所以数据寄存器330起着重要的作用。如果数据寄存器330进行的数据处理被延迟,则所有的其它区域都需要等待,直到数据寄存器330完成数据处理,这降低了存储器装置110的整体性能。
111.参照图3所示的示例,在一个存储器单元串str中,多个晶体管tr1至tr9可以分别连接到多个字线wl1至wl9。在一些实施方案中,多个晶体管tr1至tr9对应于存储器单元mc。在该示例中,多个晶体管tr1至tr9包括控制栅极cg和浮置栅极fg。
112.多个字线wl1至wl9包括两个最外字线wl1和wl9。第一选择线dsl可以另外布置在第一最外字线wl1的外侧,与另一最外字线wl9相比,该第一最外字线wl1更靠近数据寄存器330并具有更短的信号路径。第二选择线ssl可以另外布置在另一第二最外字线wl9的外侧。
113.由第一选择线dsl控制导通/关断的第一选择晶体管d-tr具有连接到第一选择线dsl的栅电极,但是不包括浮置栅极fg。由第二选择线ssl控制导通/关断的第二选择晶体管s-tr具有连接到第二选择线ssl的栅电极,但是不包括浮置栅极fg。
114.第一选择晶体管d-tr用作开关电路,该开关电路将相应存储器单元串str连接到数据寄存器330。第二选择晶体管s-tr用作开关电路,该开关电路将相应存储器单元串str连接到源极线sl。也就是说,第一选择晶体管d-tr和第二选择晶体管s-tr可以用于启用或停用相应存储器单元串str。
115.在一些实施方案中,存储器系统100向第一选择晶体管d-tr的栅电极施加预定的导通电压vcc,从而导通第一选择晶体管d-tr,并且向第二选择晶体管s-tr的栅电极施加预定的关断电压(例如,0v),从而关断第二选择晶体管s-tr。
116.在读取操作或验证操作期间,存储器系统100导通第一选择晶体管d-tr和第二选择晶体管s-tr两者。因此,在读取操作或验证操作期间,电流可以流经相应存储器单元串str并流到与地相对应的源极线sl,从而可以测量位线bl的电压电平。然而,在读取操作期间,第一选择晶体管d-tr和第二选择晶体管s-tr之间的导通/关断时刻可能存在时间差。
117.在擦除操作期间,存储器系统100可以通过源极线sl向衬底施加预定的电压(例如,+20v)。在擦除操作期间,存储器系统100施加一定的电压以允许第一选择晶体管d-tr和第二选择晶体管s-tr两者浮置。因此,所施加的擦除电压可以将电荷从所选择的存储器单元的浮置栅极fg中去除。
118.图4是示出根据本公开的实施例的存储器系统100的示意结构的示图。
119.参照图4,存储器系统100的存储器控制器120可以包括主内核mc和多个子内核sc。主内核mc和多个子内核sc中的每一个可以是图1的处理器124中包括的处理器内核,或者可以被实施为单独的处理器芯片中包括的内核。主内核mc和多个子内核sc可以彼此并行地运行各自的进程或各自的线程。另外,主内核mc和多个子内核sc可以在内核之间传输和接收内核间通信消息。
120.另外,存储器系统100的存储器装置110可以包括多个存储器管芯die。在这种情况下,每个存储器管芯die可以包括图1中描述的一个或多个存储块。
121.在本公开的实施例中,多个存储器管芯die中的每一个可以对应于多个子内核sc中的一个,并且多个子内核sc中的每一个可以对应于一个或多个存储器管芯die。每个子内核sc可以控制将数据写入相应存储器管芯die的操作。在这种情况下,数据可以是用户数据或用于管理用户数据的元数据。
122.每个子内核sc和一个或多个相应存储器管芯die可以使用公共通道进行通信。在这种情况下,不同子内核sc使用的通道彼此不同,并且每个子内核sc不能通过不同通道来访问除了相应存储器管芯die之外的其余存储器管芯die。
123.另外,存储器系统100可以处理从主机host接收的命令。例如,除了读取命令、写入命令和擦除命令之外,存储器系统100还可以处理请求关闭存储器系统100的关闭命令。处理从主机host接收的命令意味着执行从主机host接收的命令所指示的操作。
124.例如,当发生特定情况时,例如当用户终止主机host的操作时,当供应到主机host的电力不稳定时,或者当主机host中发生不可恢复的错误时,主机可以将关闭命令传输至存储器系统100以关闭存储器系统100或切换至低功耗模式。
125.进一步地,在接收到关闭命令时,存储器系统100可以在执行关闭所需的操作(诸如,将改变后的元数据存储到存储器装置110)之后关闭,以便存储器系统100可以在关闭之后重新启动时正常操作。
126.在下文中,将描述图5中的存储器系统100运行从主机host接收的关闭命令的操作。
127.图5是示出根据本公开的实施例的存储器系统100运行关闭命令的操作的示图。
128.参照图5,当存储器系统100从主机host接收到关闭命令时,存储器系统100的存储器控制器120中包括的主内核mc可以控制多个子内核sc,使得多个子内核sc分别执行关闭所需的操作。
129.主内核mc可以运行第一层layer_1的功能。例如,第一层layer_1可以是图1中描述的主机接口层hil。
130.多个子内核sc可以运行第二层layer_2的功能,该第二层layer_2位于第一层layer_1的下层。例如,第二层layer_2可以是图1中描述的闪存转换层ftl。
131.当存储器系统100从主机接收到关闭命令时,多个子内核sc中的每一个可以运行将改变后的元数据存储在相应存储器管芯die中的操作,从而执行关闭操作。
132.在这种情况下,改变后的元数据例如可以包括映射数据,在数据写入或诸如垃圾收集的后台操作期间创建的逻辑地址和物理地址之间的映射信息;有效页面表,指示存储器管芯die中包括的页面是否存储了有效数据;以及改变信息,用于存储器管芯die中包括的坏存储块中的一个。
133.多个子内核sc中的每一个可以将相应存储器管芯die的元数据之中的改变后的元数据存储在存储器装置110内的相应存储器管芯die中。
134.通常,多个子内核sc中的每一个仅处理相应存储器管芯die的元数据,而不处理由其它子内核管理的元数据。
135.另外,多个子内核sc中的每一个可以将相应存储器管芯die的元数据的改变部分存储在相应存储器管芯die中。为此,每个子内核sc可以通过分配给子内核sc和相应存储器管芯die的通道与相应存储器管芯die通信。
136.然而,在多个子内核sc中的每一个独立地处理相应存储器管芯die的元数据的情况下,主机处理关闭命令可能存在延迟。
137.作为示例,数据写入/擦除操作可能集中发生在与多个子内核sc之中的第一子内核相对应的存储器管芯中。如果主机反复请求存储器系统100刷新与第一子内核相对应的存储器管芯中存储的数据,则数据写入/擦除操作可能集中发生在与第一子内核相对应的存储器管芯中。
138.在这种情况下,由于在关闭操作期间第一子内核具有比其它子内核更大量的待处理的元数据,因此将元数据存储在与第一子内核相对应的存储器管芯中所需的时间比其它子内核的时间更长。
139.另一方面,尽管任何其余的子内核已经完成了其自身的将元数据存储到相应存储器管芯die中的操作,但是子内核需要等待,直到第一子内核完成将元数据存储在与第一子内核相对应的存储器芯片中的操作。
140.另外,在将元数据存储在与第一子内核相对应的存储器管芯中的操作完成之后,存储器系统100被关闭。因此,存储器系统100完成关闭操作所需的延迟时间可能由于第一子内核而增加。
141.因此,主内核mc可以在多个子内核sc之中识别需要大量时间来处理将元数据存储
在相应存储器管芯中的操作的子内核,并且可以控制其它子内核分担需要大量时间的操作的负担。因此,存储器系统100可以防止由于特定子内核将元数据存储在存储器装置中的时间延迟而导致执行关闭操作的时间整体增加的问题。
142.图6是示出根据本公开的实施例的主内核mc控制多个子内核sc的操作的示例的示图。
143.参照图6,主内核mc可以控制多个子内核sc,使得多个子内核sc之中的第二子内核sc2处理元数据段mds,该元数据段mds是待由多个子内核sc之中的第一子内核sc1处理的元数据之中的改变部分的至少一部分。
144.也就是说,主内核mc控制其余子内核之中的所选择子内核分担待由第一子内核sc1处理的改变后的元数据的未处理部分的负担,从而可以防止存储器系统100执行从主机host接收的关闭命令所需的总时间增加。
145.在这种情况下,元数据段mds不是存储在与第一子内核sc1相对应的存储器管芯die中,而是存储在与第二子内核sc2相对应的存储器管芯die中。
146.为此,主内核mc可以从多个子内核sc之中确定用于存储元数据段mds的第二子内核sc2,并且可以指示第二子内核sc2将元数据段mds存储在与第二子内核sc2相对应的存储器管芯die中。
147.在下文中,将描述主内核mc从多个子内核sc之中确定第二子内核sc2的操作。
148.图7是示出根据本公开的实施例的存储器系统100确定第二子内核sc2的候选子内核的操作的示例的示图。
149.如果存储器控制器120将尚未完成存储相应存储器管芯的元数据的操作的子内核确定为第二子内核sc2,则第二子内核sc2需要同时处理不仅仅是待自己处理的元数据,而且还包括待由第一子内核sc1处理的元数据。因此,由于第二子内核sc2处理关闭操作所需的时间增加,因此可能存在存储器系统100执行关闭操作所需的总时间增加的问题。
150.进一步地,当从主机接收关闭命令时,多个子内核sc中的一些可以通过处理关闭操作之外的操作,从空闲状态进入忙碌状态。在这种情况下,如果处于忙碌状态的子内核处理待由第一子内核sc1处理的元数据段mds,则元数据段mds存储在存储器管芯die中的时间可能会由于相应子内核所处理的其它操作而延迟。因此,仍然可能存在存储器系统100执行关闭操作所需的总时间增加的问题。
151.为了防止该问题,主内核mc可以在多个子内核sc之中确定一个或多个子内核作为第二子内核sc2的候选子内核,该一个或多个子内核已经完成其自身的将改变后的元数据存储在相应存储器管芯中的操作并且处于空闲状态。
152.在存在一个以上的已经完成了将改变后的元数据存储在相应存储器管芯中的操作并且处于空闲状态的候选子内核的情况下,主内核mc可以确定候选子内核中的一个作为第二子内核sc2。
153.例如,主内核mc可以将候选子内核中随机选择的子内核确定为第二子内核sc2。
154.作为另一示例,主内核mc可以将候选子内核之中满足特定条件的子内核确定为第二子内核sc2。
155.具体地,主内核mc可以将候选子内核之中、相应存储器管芯包括具有最小总擦除计数的元数据存储块的子内核确定为第二子内核sc2。在下文中,将在图8中对此进行详细
描述。
156.图8是示出根据本公开的实施例的从图7中确定的候选子内核之中确定第二子内核sc2的示例的示图。
157.参照图8,与候选子内核中的每一个相对应的存储器管芯die可以包括元数据存储块mblk。元数据存储块mblk可以是图1中描述的存储块或者一组的一个或多个存储块。
158.在图8中,与候选子内核中的每一个相对应的存储器管芯die中包括的元数据存储块的擦除计数的总和分别为200、150、300和100。
159.在这种情况下,主内核mc可以将相应存储器管芯包括具有总擦除计数为100的元数据存储块的子内核sc确定为第二子内核sc2。
160.在以上示例中,已经描述了主内核mc从多个子内核sc之中确定第二子内核sc2的操作。
161.在下文中,将描述主内核mc控制第二子内核sc2处理元数据段mds的操作。
162.图9是示出根据本公开的实施例的主内核mc对待由第二子内核sc2处理的元数据段mds的控制操作的示例的示图。
163.参照图9,主内核mc可以向第二子内核sc2传输指示第二子内核sc2处理元数据段mds的内核间通信消息cmsg,以使第二子内核sc2处理元数据段mds。
164.在从主内核mc接收到内核间通信消息之后,第二子内核sc2可以从第一子内核sc1获取元数据段mds。另外,第二子内核sc2可以将元数据段mds存储在与第二子内核sc2相对应的存储器管芯中。
165.在这种情况下,内核间通信消息cmsg可以通过各种进程间通信(ipc)技术从主内核mc传输到第二子内核sc2。例如,内核间通信消息cmsg可以通过邮槽、管道或套接字(socket)而传输到第二子内核sc2。
166.图10是示出根据本公开的实施例的图9中描述的内核间通信消息cmsg的示例的示图。
167.参照图10,内核间通信消息cmsg可以包括第一子内核sc1的标识符id_sc1以及存储元数据段mds的位置的地址addr_mds。第一子内核sc1的标识符id_sc1可以用于识别待存储在与第二子内核sc2相对应的存储器管芯中的元数据段mds的子内核。另外,可以使用存储元数据段mds的位置的地址addr_mds,以使第二子内核sc2获取元数据段mds的信息。地址addr_mds可以指示元数据段mds在第一子内核sc1中的位置。
168.在本公开的实施例中,本应存储在与第一子内核sc1相对应的存储器管芯die中的元数据段mds被存储在与第二子内核sc2相对应的存储器管芯die中。
169.因此,当存储器系统在运行关闭命令之后的第一次启动时,存储器系统100需要恢复将与第二子内核sc2相对应的存储器管芯中存储的元数据段mds存储在与第一子内核sc1相对应的存储器管芯中。
170.图11是示出根据本公开的实施例的当存储器系统100在关闭之后的第一次启动时运行的操作的示例的示图。
171.参照图11,主内核mc可以在运行关闭命令之后的第一次启动时,控制第一子内核sc1和第二子内核sc2将由第二子内核sc2处理的元数据段存储在与第一子内核sc1相对应的存储器管芯中。
172.作为示例,当第二子内核sc2将元数据段mds存储在相应存储器管芯中时,第二子内核sc2可以在上述第一层layer_1的元数据上反映关于元数据段mds的信息,例如,第一子内核sc1的标识符、第二子内核sc2的标识符、与第二子内核sc2相对应的存储器管芯内存储元数据段mds的位置。
173.在运行关闭命令之后的第一次启动时,主内核mc可以基于第一层layer_1的元数据来检查关于元数据段mds的信息,例如,第一子内核sc1的标识符、第二子内核sc2的标识符、与第二子内核sc2相对应的存储器管芯内存储元数据段mds的位置。
174.另外,主内核mc可以基于关于元数据段mds的信息来控制第一子内核sc1和第二子内核sc2,使得在关闭时存储在与第二子内核sc2相对应的存储器管芯中的元数据段mds被传输到第一子内核sc1。
175.在接收到元数据段mds之后,第一子内核sc1可以将元数据段mds存储在与第一子内核sc1相对应的存储器管芯die中。
176.图12是示出根据本公开的实施例的存储器系统100的操作方法的示图。
177.参照图12,存储器系统100的操作方法可以包括从主机host接收试图关闭存储器系统100的关闭命令(s1210)。
178.另外,存储器系统100的操作方法可以包括在运行关闭命令期间,通过运行第一层layer_1的操作的主内核mc来选择用于处理元数据段mds的第二子内核sc2,该元数据段mds是待由运行第二层layer_2的操作的多个子内核之中的第一子内核sc1处理的元数据之中的改变部分的至少一部分,该第二层layer_2是第一层layer_1的下层(s1220)。多个子内核sc中的每一个可以运行将元数据存储在存储器装置110中包括的多个存储器管芯die之中的相应存储器管芯die中的操作。
179.作为示例,第一层layer_1可以是主机接口层hil,并且第二层layer_2可以是闪存转换层ftl。
180.例如,在操作s1220中,主内核mc可以在多个子内核之中确定一个或多个子内核作为第二子内核sc2的候选子内核,该一个或多个子内核已经完成其自身的存储相应存储器管芯的改变后的元数据并且处于空闲状态。在这种情况下,在候选子内核之中,其中相应存储器管芯包括具有最小总擦除计数的元数据存储块mblk的子内核可以被确定为第二子内核sc2。
181.另外,存储器系统100的操作方法可以包括通过主内核mc控制多个子内核sc,使得第二子内核sc2处理元数据段mds(s1230)。
182.作为示例,主内核mc可以向第二子内核sc2传输内核间通信消息cmsg,以使第二子内核sc2处理本应由第一子内核sc1处理的元数据段mds。在这种情况下,内核间通信消息cmsg可以包括第一子内核sc1的标识符以及存储元数据段mds的位置的地址。
183.此外,存储器系统100的操作方法可以进一步包括,在运行关闭命令之后的第一次启动时,控制第一子内核sc1和第二子内核sc2将第二子内核sc2所处理的元数据段mds存储在与第一子内核sc1相对应的存储器管芯中。
184.图13是示出基于所公开技术的实施例的计算系统1300的配置的示图。
185.参照图13,基于所公开技术的实施例的计算系统1300可以包括:存储器系统100,电连接到系统总线1360;cpu 1310,被配置为控制计算系统1300的全部操作;ram 1320,被
配置为存储与计算系统1300的操作相关的数据和信息;用户接口/用户体验(ui/ux)模块1330,被配置为向用户提供用户环境;通信模块1340,被配置为作为有线和/或无线类型与外部装置通信;以及电源管理模块1350,被配置为管理计算系统1300使用的电力。
186.计算系统1300可以是个人计算机(pc),或者可以包括诸如智能电话、平板电脑或各种电子装置的移动终端。
187.计算系统1300可以进一步包括用于供应操作电压的电池,并且可以进一步包括应用芯片组、图形相关模块、相机图像处理器和dram。其它元件对于本领域技术人员而言将是显而易见的。
188.存储器系统100不仅可以包括被配置为将数据存储在磁盘中的装置,诸如硬盘驱动器(hdd),还可以包括被配置为将数据存储在非易失性存储器中的装置,诸如固态驱动器(ssd)、通用闪存装置或嵌入式mmc(emmc)装置。非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)、闪速存储器、相变ram(pram)、磁性ram(mram)、电阻式ram(rram)、铁电ram(fram)等。另外,存储器系统100可以被实施为各种类型的存储装置并且被安装在各种电子装置内部。
189.基于上述所公开技术的实施例,可以有利地使存储器系统的操作延迟时间减少或最小化。另外,基于所公开技术的实施例,可以有利地使在调用特定功能的过程中产生的开销减少或最小化。尽管已经出于说明的目的以特定的详情和变化的细节描述了所公开技术的各个实施例,但是本领域技术人员将理解的是,可以基于本公开以及以下权利要求书中公开或示出的内容进行各种修改、添加和替换。此外,可以对实施例进行组合,以形成另外的实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1