存储器系统及其操作方法转让专利

申请号 : CN201811470074.6

文献号 : CN110032333A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 裵德镐

申请人 : 三星电子株式会社

摘要 :

一种存储器系统包括多个存储器芯片和控制器,该多个存储器芯片包括第一存储器芯片和第二存储器芯片。控制器包括处理从主机接收的请求的第一中央处理单元(CPU)和通过多个通道分别控制多个存储器芯片的操作的多个第二CPU。控制器中存储重要性表,并且重要性表包括关于存储在存储器系统中的数据的数据编程方法的信息,该关于数据编程方法的信息与数据的重要性信息相对应。第二CPU被配置为基于重要性表在第一存储器芯片和第二存储器芯片两者中编程数据中的至少一些,使得数据中的至少一些被存储在第一存储器芯片和第二存储器芯片两者中作为相同的数据。

权利要求 :

1.一种存储器系统,包括:

多个存储器芯片,包括第一存储器芯片和第二存储器芯片;以及控制器,被配置为访问所述多个存储器芯片,

其中所述控制器包括:

第一中央处理单元(CPU),被配置为处理从主机接收的请求;以及多个第二CPU,被配置为通过多个通道分别控制所述多个存储器芯片的操作,其中在所述控制器中存储重要性表,所述重要性表包括关于存储在所述存储器系统中的数据的数据编程方法的信息,所述关于数据编程方法的信息与数据的重要性信息相对应,并且其中第二CPU被配置为基于所述重要性表在第一存储器芯片和第二存储器芯片两者中编程数据中的至少一些,使得数据中的至少一些作为相同的数据被存储在第一存储器芯片和第二存储器芯片两者中。

2.根据权利要求1所述的存储器系统,其中,所述重要性表包括与数据的重要性信息相对应的、关于要在其中编程数据的多个存储器芯片的数量的信息。

3.根据权利要求1所述的存储器系统,其中,所述重要性表包括关于选择多个存储器芯片当中的要在其中编程数据的存储器芯片的方法的信息。

4.根据权利要求1所述的存储器系统,其中,第二CPU被配置为基于所述重要性表在两者都连接到多个通道中的一个通道的第一存储器芯片和第二存储器芯片中编程相同的数据。

5.根据权利要求1所述的存储器系统,其中,第一存储器芯片和第二存储器芯片两者都由多个第二CPU中的相同的一个第二CPU来编程。

6.根据权利要求1所述的存储器系统,其中,第一存储器芯片和第二存储器芯片由多个第二CPU当中的彼此不同的第二CPU来编程。

7.一种包括第一存储器芯片和第二存储器芯片的存储器系统的操作方法,所述操作方法包括:响应于对第一数据的编程请求,在第一存储器芯片和第二存储器芯片两者中编程第一数据,使得第一数据作为相同的数据被存储在第一存储器芯片和第二存储器芯片两者中;

响应于对第一数据的读取请求,确定第一存储器芯片和第二存储器芯片是否正在对与第一数据不同的数据执行操作;以及在确定第一存储器芯片和第二存储器芯片中的另一个正在对与第一数据不同的数据执行操作时,从第一存储器芯片和第二存储器芯片中的一个读取第一数据。

8.根据权利要求7所述的操作方法,其中,第一数据的读取包括:在确定第一存储器芯片正在对与第一数据不同的数据执行擦除或编程操作时,读取存储在第二存储器芯片中的第一数据。

9.根据权利要求7所述的操作方法,其中,第一数据的编程包括:从外部设备接收述第一数据的重要性信息;以及

基于从外部设备接收的第一数据的重要性信息,在第一存储器芯片和第二存储器芯片两者中编程第一数据。

10.根据权利要求9所述的操作方法,其中,第一数据的重要性信息被包括在对第一数据的编程请求中。

11.根据权利要求7所述的操作方法,其中,所述存储器系统还包括:第一中央处理单元(CPU),被配置为处理从主机接收的请求;以及第二CPU,被连接到第一通道和第二通道,

其中第二CPU被配置为通过第一通道控制第一存储器芯片和第二存储器芯片的操作。

12.根据权利要求11所述的操作方法,其中,第一存储器芯片和第二存储器芯片中的每一个包括多个页面,并且其中第一数据被存储在包括具有第一存储器芯片和第二存储器芯片两者中的相同的物理地址的页面的页面阵列条带中。

13.根据权利要求12所述的操作方法,其中,在第一存储器芯片中编程第一数据之后,在第二存储器芯片中编程第一数据。

14.根据权利要求7所述的操作方法,其中,第一数据的编程还包括:接收第一逻辑地址;

将第一逻辑地址转换为与第一存储器芯片相对应的第一物理地址;以及将第一逻辑地址和第一物理地址存储在映射表中。

15.根据权利要求14所述的操作方法,其中,第一数据的读取包括基于所述映射表的第一物理地址来读取存储在第二存储器芯片中的第一数据。

16.根据权利要求14所述的操作方法,其中,在所述映射表中存储还包括:在所述映射表中存储与第二存储器芯片相对应的第二物理地址,并且其中第一数据的读取包括基于所述映射表的第二物理地址来读取存储在第二存储器芯片中的第一数据。

17.如权利要求7所述的操作方法,其中所述存储器系统还包括:第一CPU,被配置为处理从主机接收的请求;以及第二CPU,被连接到第一通道和第二通道,

其中第二CPU被配置为通过第一通道控制第一存储器芯片的操作并且通过第二通道控制第二存储器芯片的操作。

18.如权利要求7所述的操作方法,其中所述存储器系统还包括:第一CPU,被配置为处理从主机接收的请求;

第二CPU,被配置为控制第一存储器芯片的操作;以及第三CPU,被配置为控制第二存储器芯片的操作。

19.一种包括多个存储器芯片的存储器系统的操作方法,所述操作方法包括:基于第一数据的第一重要性,在多个存储器芯片当中的多个第一存储器芯片中编程第一数据,使得第一数据作为相同的数据被存储在所述多个第一存储器芯片的全部中;

基于第二数据的第二重要性,仅在所述多个存储器芯片当中的单个第二存储器芯片中编程第二数据;

在第一映射表中存储与在其中存储了第一数据的多个第一存储器芯片中的至少一个相对应的第一物理地址;以及在第二映射表中存储与在其中存储了第二数据的单个第二存储器芯片相对应的第二物理地址。

20.根据权利要求19所述的操作方法,其中,第一映射表和第二映射表配置一个映射表。

21.根据权利要求19所述的操作方法,其中,第一映射表和第二映射表配置两个不同的映射表。

22.根据权利要求19所述的操作方法,还包括从外部设备接收关于第一重要性和第二重要性的信息。

23.根据权利要求19所述的操作方法,其中,在所述多个第一存储器芯片中编程第一数据包括:基于第一重要性确定要在其中编程第一数据的多个第一存储器芯片的数量。

24.根据权利要求19所述的操作方法,其中,在所述多个第一存储器芯片中编程第一数据包括:基于第一重要性,选择多个存储器芯片当中的要在其中编程第一数据的多个第一存储器芯片。

25.根据权利要求24所述的操作方法,其中所述存储器系统还包括:第一中央处理单元(CPU),被配置为处理从主机接收的请求;以及第二CPU,被连接到第一通道和第二通道,

其中所述多个第一存储器芯片通过第一通道被连接到第二CPU。

说明书 :

存储器系统及其操作方法

[0001] 相关申请的交叉引用
[0002] 本申请要求于2017年11月29日向韩国知识产权局提交的韩国专利申请NO.10-2017-0161842的权益,其公开通过引用整体被并入本文。

技术领域

[0003] 本发明构思涉及存储器系统,并且更具体地,涉及能够将相同的数据复制并存储在多个存储器芯片中的存储器系统以及存储器系统的操作方法。

背景技术

[0004] 存储器设备被分类为易失性存储器设备和非易失性存储器设备。易失性存储器设备包括,例如,动态随机存取存储器(Dynamic Random Access Memory,DRAM)和静态随机存取存储器(Static Random Access Memory,SRAM)。非易失性存储器设备包括,例如,闪速存储器、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)和电阻存储器。
[0005] 在半导体存储设备当中,非易失性存储设备(例如,闪速存储器设备)被设计成具有多平面结构以增加其存储容量。多平面非易失性存储器设备包括多个平面,每个平面包括多个存储器块。
[0006] 主机可以向存储器系统发送编程、读取和擦除请求。存储器系统响应于从主机接收的编程、读取和擦除请求而执行编程、读取和擦除操作,并且由存储器系统执行编程、读取和擦除操作所用的时间彼此不同。

发明内容

[0007] 本发明构思提供了一种存储器系统以及存储器系统的操作方法,该存储器系统能够通过在多个存储器芯片中复制和编程相同的数据并从多个存储器芯片中的一个读取数据来提高数据读取操作速度。
[0008] 根据本发明构思的一方面,提供了一种存储器系统,其包括:包括第一存储器芯片和第二存储器芯片的多个存储器芯片,和访问多个存储器芯片的控制器。控制器包括被配置为处理从主机接收的请求的第一中央处理单元(Central Processing Unit,CPU)和被配置为通过多个通道分别控制多个存储器芯片的操作的多个第二CPU。在控制器中存储重要性表,并且重要性表包括关于用于存储在存储器系统中的数据的数据编程方法的信息,并且所述关于数据编程方法的信息与数据的重要性信息相对应。第二CPU被配置为基于重要性表编程第一存储器芯片和第二存储器芯片中的数据的至少一些,使得数据中的至少一些作为相同的数据被存储在第一存储器芯片和第二存储器芯片两者中。
[0009] 根据本发明构思的另一方面,提供了一种包括第一存储器芯片和第二存储器芯片的存储器系统的操作方法。该操作方法包括:响应于对第一数据的编程请求,在第一存储器芯片和第二存储器芯片两者中编程第一数据,使得第一数据作为相同的数据被存储在第一存储器芯片和第二存储器芯片两者中;响应于对第一数据的读取请求,确定第一存储器芯片和第二存储器芯片是否正在对与第一数据不同的数据执行操作,并在确定第一存储器芯片和第二存储器芯片中的另一个正在对与第一数据不同的数据执行操作时,从第一存储器芯片和第二存储器芯片中的一个读取第一数据。
[0010] 根据本发明构思的另一方面,提供了一种包括多个存储器芯片的存储器系统的操作方法。该操作方法包括:基于第一数据的第一重要性,在多个存储器芯片当中的多个第一存储器芯片中编程第一数据,使得第一数据作为相同的数据被存储在多个第一存储器芯片的全部中;基于第二数据的第二重要性仅在多个存储器芯片当中的单个第二存储器芯片中编程第二数据;在第一映射表中存储与在其中存储了第一数据的多个第一存储器芯片中的至少一个存储器芯片相对应的物理地址;以及在第二映射表中存储与在其中存储了第二数据的单个第二存储器芯片相对应的物理地址。
[0011] 根据本发明的又一方面,一种存储器系统包括:多个存储器芯片;和被配置为控制多个存储器芯片的操作的控制器。控制器包括具有包括第一条目和第二条目的多个条目的重要性表。第一条目包括第一重要性信息和指示多个存储器芯片的第一数量的第一编程信息,并且第二条目包括第二重要性信息和指示多个存储器芯片的第二数量的第二编程信息。控制器被配置为根据第一编程信息在第一数量的多个存储器芯片中存储具有第一重要性的第一数据,并且还被配置为根据第二编程信息在第二数量的多个存储器芯片中存储具有第二重要性的第二数据,使得第二数据作为相同的数据被存储在第二数量的多个存储器芯片中的每一个中。

附图说明

[0012] 从以下结合附图的详细描述中将更清楚地理解本发明构思的实施例。
[0013] 图1是包括存储器系统的系统的示例性实施例的框图。
[0014] 图2是图1的控制器的示例性实施例的框图。
[0015] 图3是存储器系统的示例性实施例的框图。
[0016] 图4是存储器系统的操作方法的示例性实施例的流程图。
[0017] 图5是用于描述图3的操作S120和操作S130的示例性实施例的流程图。
[0018] 图6是存储器系统的示例性实施例的框图。
[0019] 图7是用于描述在存储器系统的示例性实施例中形成一对芯片的第一存储器芯片和第二存储器芯片的框图。
[0020] 图8是存储器系统的操作方法的示例性实施例的流程图。
[0021] 图9显示了存储器系统的示例性实施例中的映射表,该映射表包括逻辑地址和在其中存储数据的页面的物理地址之间的映射信息。
[0022] 图10A和图10B显示了在存储器系统的示例性实施例中的第一映射表和第二映射表,该第一映射表和第二映射表包括逻辑地址和要在其中存储数据的页面的物理地址之间的映射信息。
[0023] 图11是存储器系统的示例性实施例的框图。
[0024] 图12是存储器系统的示例性实施例的框图。
[0025] 图13是存储器系统的示例性实施例的操作方法的流程图。
[0026] 图14显示了在存储器系统的示例性实施例中的映射表,该映射表包括逻辑地址和要在其中存储数据的页面的物理地址之间的映射信息。
[0027] 图15是存储器系统的操作方法的示例性实施例的流程图。
[0028] 图16是用于描述图15的操作S210的示例性实施例的流程图。
[0029] 图17是从图1的控制器修改的控制器的框图。
[0030] 图18A、图18B和图19显示了存储在存储器系统的示例性实施例的本地存储器中的重要性表。

具体实施方式

[0031] 图1是根据本发明构思的示例性实施例的包括存储器系统1000的系统10的框图。
[0032] 参考图1,系统10可以包括主机2000和存储器系统1000。存储器系统1000可以是固态驱动器(Solid State Drive,SSD)。然而,实施例不限于此,并且存储器系统1000可以被实施为嵌入式多媒体卡(Embedded Multimedia Card,Emmc)、通用闪存(UFS)、独立磁盘冗余阵列(redundant array of independent disk,RAID)等。
[0033] 主机2000可以与存储器系统1000通信并且可以包括各种设备。例如,主机2000可以包括诸如便携式媒体播放器(Portable Media Player,PMP)、个人数字助理(Personal Digital Assistant,PDA)或智能电话的便携式电子设备、诸如计算机或高清晰度电视(High-Definition Television,HDTV)的电子设备、或安装在电子设备中的应用处理器。存储器系统1000可以响应于从主机2000接收的请求Req(例如,数据访问请求),执行对在与逻辑地址ADD_L相对应的位置中的数据DATA进行编程或从与逻辑地址ADD_L相对应的位置读取数据DATA的存储器操作。
[0034] 存储器系统1000可以包括控制器100和一个或多个非易失性存储器芯片200。控制器100可以通过一个或多个通道访问非易失性存储器芯片200。例如,存储器系统1000可以包括n个通道Ch1至Chn,并且控制器100可以通过n个通道Ch1至Chn访问非易失性存储器芯片200。例如,控制器100可以并行访问与不同的通道相对应的非易失性存储器芯片200。
[0035] 非易失性存储器芯片200可以包括闪速存储器。然而,闪速存储器仅仅是一个示例,实施例不限于此。例如,非易失性存储器芯片200可以包括诸如电阻随机存取存储器(Resistive Random Access Memory,ReRAM)、磁阻随机存储器(Magnetoresistive Random Memory,MRAM)或相变随机存取存储器(Phase-Change Random Access Memory,PRAM)的非易失性存储器。
[0036] 控制器100可以包括用于基于主机2000的请求Req控制存储器操作的一个或多个中央处理单元(CPU)。在实施例中,控制器100可以包括用于执行与主机2000相接口相关的操作的一个或多个第一CPU 110,以及用于执行与存储器相接口相关的操作的一个或多个第二CPU 120。第一CPU 110可以能够并行处理从主机2000接收的请求。第二CPU 120可以能够并行处理对非易失性存储器芯片200的访问。
[0037] 第一CPU 110和第二CPU 120可以以各种方式被包括在存储器系统1000中。例如,控制器100可以包括一个第一CPU 110和多个第二CPU 120。可替换地,控制器100可以包括多个第一CPU 110和多个第二CPU 120。在实施例中,第一CPU 110和第二CPU 120可以具有相同的操作速度,或者在另一实施例中具有不同的操作速度。
[0038] 当非易失性存储器芯片200包括闪速存储器时,控制器100可以包括闪存转换层(Flash Translation Layer,FTL)。FTL可以包括用于管理例如闪速存储器的编程、读取和擦除操作的系统软件(或固件),并且可以被加载在控制器100的内部操作存储器中并且由第二CPU 120驱动。
[0039] 第一CPU 110可以通过处理从主机2000提供的数据访问请求来生成内部命令,并将其发送到第二CPU 120。在闪速存储器系统中,第二CPU 120可以通过驱动FTL来执行地址转换操作或控制与非易失性存储器芯片200的数据交换的操作。因为第一CPU 110执行与主机2000的相接口相关的操作,所以第一CPU 110可以被称为主机CPU(host CPU,HCPU),并且因为第二CPU 120执行用于驱动FTL的操作,所以第二CPU 120可以被称为FTL CPU(FTL CPU,FCPU)。
[0040] 根据示例性实施例的存储器系统1000可以在非易失性存储器芯片200中包括的多个不同的存储器芯片中编程相同的数据。在这种情况下,在实施例中,存储器系统1000可以基于从主机2000发送的编程请求Req中包括的数据的重要性信息,在非易失性存储器芯片200中包括的多个不同的存储器芯片中编程相同的数据。在实施例中,当基于从主机2000发送的命令执行读取操作时,存储器系统1000可以例如取决于不同的存储器芯片的当前可用性从存储数据的多个存储器芯片中的一个选择性地读取数据。因此,可以减少读取数据所花费的时间。
[0041] 图2是图1的控制器100的示例性实施例的框图。
[0042] 参考图1和图2,控制器100可以包括HCPU 110、FCPU 120、本地存储器130、映射表140、主机接口150和存储器接口160。例如,一个HCPU 110和一个FCPU 120被包括在控制器
100中。然而,如上所描述,各种数量的HCPU和FCPU可以被包括在控制器100中。在实施例中,控制器100可以包括多个FCPU 120。HCPU 110和FCPU 120可以被实施为一个物理元件并且在设备中功能地被划分。
[0043] FCPU 120可以通过使用FTL来执行用于将逻辑地址转换为物理地址的地址转换操作。在映射表140中,FTL可以具有虚拟块设备(例如,主机2000)上的逻辑地址和非易失性存储器芯片上的物理地址之间的映射信息。当接收到对预定逻辑地址的编程请求或读取请求时,FTL可以通过使用映射信息将逻辑地址转换为物理地址。无论何时将从主机2000接收的数据DATA存储在控制器100的内部RAM中,都可以更新映射表140。尽管映射表140被示出为单独的元素,但是根据实施例,映射表140可以被包括在RAM或FCPU 120中。
[0044] 主机接口150可以基于连接到存储器系统1000的主机2000的协议来接口主机2000和控制器100之间的数据交换。
[0045] 主机接口150提供主机2000和非易失性存储器系统1000之间的物理连接。例如,主机接口150可以支持各种接口标准或协议,诸如高级技术附件(Advanced Technology Attachment,ATA)、串行ATA(Serial ATA,SATA)、外部SATA(External SATA,E-SATA)、小型计算机小型接口(Small Computer Small Interface,SCSI)、串行附接SCSI(Serial Attached SCSI,SAS)、外围组件互联(Peripheral Component Interconnection,PCI)、PCI快速(PCI Express,PCI-E)、IEEE 1394、通用串行总线(Universal Serial Bus,USB)、安全数字(Secure Digital,SD)卡、多媒体卡(Multimedia Card,MMC)、嵌入式多媒体卡(embedded Multimedia Card,eMMC)以及紧凑型闪存(Compact Flash,CF)卡接口标准和协议。
[0046] 存储器接口160提供控制器100和非易失性存储器芯片200之间的物理连接。例如,命令、地址和数据可以通过存储器接口160在控制器100和非易失性存储器芯片200之间交换。
[0047] 本地存储器130可以包括用于缓冲器存储器、高速缓冲存储器或操作存储器的随机存取存储器(Random Access Memory,RAM)。例如,控制器100可以将从主机2000接收的数据DATA存储在RAM中,并且在非易失性存储器芯片200中编程存储在RAM中的数据DATA。控制器100可以将从非易失性存储器芯片200读取的数据DATA存储在RAM中,并将存储在RAM中的数据DATA输出到主机2000。
[0048] 控制器100可以将管理非易失性存储器芯片200所需的数据或代码存储在RAM中。例如,控制器100可以从非易失性存储器芯片200读取管理非易失性存储器芯片200所需的数据或代码,并将数据或代码加载到RAM中以驱动数据或代码。RAM可以包括诸如动态RAM(Dynamic RAM,DRAM)、静态RAM(Static RAM,SRAM)、同步DRAM(Synchronous DRAM,SDRAM)、相变RAM(Phase-Change RAM,PRAM)、磁RAM(Magnetic RAM,MRAM)、电阻RAM(Resistive RAM,RRAM)和铁电RAM(Ferroelectric RAM,FeRAM)的各种随机存取存储器中的至少一个。
[0049] 图3是存储器系统的示例性实施例的框图。图4是存储器系统的操作方法的示例性实施例的流程图。
[0050] 参考图3,控制器100可以包括HCPU 110和FCPU 120。FCPU 120可以包括第一至第k FCPU 120_1至120_3。第一至第k FCPU 120_1至120_3中的每一个可以通过第一通道CH_A、CH_C或CH_E和第二通道CH_B、CH_D或CH_F连接到非易失性存储器芯片。例如,第一FCPU 120_1可以通过第一通道CH_A和第二通道CH_B连接到非易失性存储器芯片。
[0051] 第一通道CH_A、CH_C或CH_E和第二通道CH_B、CH_D或CH_F中的每一个可以被电连接到m个非易失性存储器芯片200a_1至200a_4、200b_1至200b_4、200c_1至200c_4、200d_1至200d_4、200e_1至200e_4、或200f_1至200f_4。在这种情况下,k和m可以是等于或大于4的自然数。尽管在图3中两个通道被连接到第一至第k FCPU 120_1至120_3中的每一个,但是实施例不限于此,并且三个或更多通道可以被连接到第一至第k FCPU 120_1至120_3中的每一个。
[0052] 第一通道CH_A、CH_C或CH_E和第二通道CH_B、CH_D或CH_F中的每一个可以指能够向与其对应的非易失性存储器芯片200a_1至200a_4、200b_1至200b_4、200c_1至200c_4、200d_1至200d_4、200e_1至200e_4、或200f_1至200f_4发送命令、物理地址和数据并从其接收命令、物理地址和数据的独立总线。因此,连接到不同的通道的非易失性存储器芯片
200a_1至200a_4、200b_1至200b_4、200c_1至200c_4、200d_1至200d_4、200e_1至200e_4、和
200f_1至200f_4可以彼此独立地操作。
[0053] 参考图3和图4,响应于第一数据的单个编程请求Req_p,控制器100可以在第一存储器芯片和第二存储器芯片两者中编程第一数据(S110)。也就是说,相同的数据或同一(identical)的数据(例如,相同的第一数据或同一第一数据)可以被存储在第一存储器芯片和第二存储器芯片两者中。控制器100可以从主机接收编程请求Req_p、第一数据和第一逻辑地址。HCPU 110可以通过处理从主机接收的编程请求Req_p来生成内部编程命令CMD_p。基于从HCPU 110接收的内部编程命令CMD_p,FCPU 120可以在两个或多个不同的存储器芯片(例如,第一存储器芯片和第二存储器芯片)中的每一个中编程第一数据。也就是说,FCPU 120可以在第一存储器芯片和第二存储器芯片两者中编程相同的数据或同一数据(例如,相同的第一数据或同一第一数据)。
[0054] FCPU 120可以基于第一数据的重要性信息来确定是在一个存储器芯片中还是在多个存储器芯片中编程第一数据。在确定在多个存储器芯片中编程第一数据时,FCPU 120可以确定要在其中编程第一数据的存储器芯片的数量和编程第一数据的方法。
[0055] 在实施例中,第一数据的重要性信息可以被包括在对从主机接收的第一数据的编程请求Req_p中,或者可以作为单独的命令从主机接收。在实施例中,可以基于对接收到第一数据的读取请求Req_r的次数,在存储器系统中生成第一数据的重要性信息。下面将关于图15来描述基于要被编程的数据的重要性编程数据的操作。
[0056] 在实施例中,HCPU 110可以将内部编程命令CMD_p发送到第一至第kFCPU 120_1至120_3中的一个,例如,第一FCPU 120_1。第一FCPU 120_1可以从HCPU 110接收内部编程命令CMD_p,并且将第一逻辑地址转换为与其对应的第一物理地址和第二物理地址。第一FCPU 
120_1可以在与第一物理地址相对应的第一存储器芯片和与第二物理地址相对应的第二存储器芯片中编程第一数据。在这种情况下,第一存储器芯片和第二存储器芯片可以是连接到相同的通道的存储器芯片(例如,连接到CH_A的200a_1和200a_2),或者连接到不同的通道的存储器芯片(例如,连接到CH_A的200a_1和连接到CH_B的200b_1)。下面将关于图6描述第一存储器芯片和第二存储器芯片连接到相同的通道(例如,CH_A)的情况,以及下面将关于图11描述第一存储器芯片和第二存储器芯片连接到不同的通道(例如,CH_A和CH_B)的情况。
[0057] 在实施例中,HCPU 110可以将内部编程命令CMD_p发送到第一至第kFCPU 120_1至120_3中的两个或多个。例如,HCPU 110可以将内部编程命令CMD_p发送到第一FCPU 120_1和第二FCPU 120_2。第一FCPU 120_1可以从HCPU 110接收内部编程命令CMD_p,并且将第一逻辑地址转换为与其对应的第一物理地址。第一FCPU 120_1可以在与第一物理地址相对应的第一存储器芯片(例如,200a_1)中编程第一数据。第二FCPU 120_2可以从HCPU 110接收内部编程命令CMD_p,并且将第一逻辑地址转换为与其对应的第二物理地址。第二FCPU 
120_2可以在与第二物理地址相对应的第二存储器芯片(例如,200c_1或200d_1)中编程第一数据。下面将关于图12描述其中相同的第一数据被存储在由两个或多个不同的FCPU控制的存储器芯片中的情况。
[0058] 如上面关于图3和图4所描述,尽管相同的数据(例如,第一数据)被编程在两个不同的存储器芯片中,但是实施例不限于此,并且相同的数据可以被编程在三个或更多不同的存储器芯片中。
[0059] 响应于对第一数据的读取请求Req_r,控制器100可以确定第一存储器芯片和第二存储器芯片是否正在对与第一数据不同的数据执行操作(S120)。控制器100可以从主机接收对第一数据的读取请求Req_r。HCPU 110可以通过处理从主机接收的读取请求Req_r来生成内部读取命令CMD_r,并且将内部读取命令CMD_r发送到FCPU 120以用于执行对第一存储器芯片和第二存储器芯片的操作。FCPU 120可以接收内部读取命令CMD_r,并确定第一存储器芯片和第二存储器芯片是否正在对与第一数据不同的数据执行操作。
[0060] 当第一存储器芯片正在对与第一数据不同的数据执行操作时,FCPU 120可以从第二存储器芯片读取第一数据(S130)。下面将关于图5详细描述操作S120和操作S130。
[0061] 在确定仅将第一数据存储在第一存储器芯片中并且当第一存储器芯片正在对与第一数据不同的数据执行操作时,FCPU 120应该等待,直到操作终止,以从第一存储器芯片读取第一数据。因此,从第一存储器芯片读取第一数据所花费的时间可能增加。具体地,由于数据编程或擦除操作所花费的时间可能比数据读取操作所花费的时间更长,因此当第一存储器芯片正在对与第一数据不同的数据执行编程或擦除操作时,从第一存储器芯片读取第一数据所花费的时间可能进一步增加。
[0062] 根据示例性实施例的存储器系统可以在不同的存储器芯片(例如,第一存储器芯片和第二存储器芯片)中编程相同的数据(例如,第一数据),然后从第一存储器芯片和第二存储器芯片中的一个选择性地读取第一数据。因此,即使当第一存储器芯片正在对与第一数据不同的数据执行操作时,也可以从第二存储器芯片读取第一数据,并且因此可以减少读取第一数据所花费的时间。
[0063] 图5是用于描述图3的操作S120和操作S130的示例性实施例的流程图。
[0064] 参考图5,控制器100响应于从主机接收的对第一数据的读取请求Req_r确定第一存储器芯片和第二存储器芯片是否正在对与第一数据不同的数据执行操作的操作S120可以包括:确定第一存储器芯片是否正在对与第一数据不同的数据执行擦除或编程操作(S121),以及确定第二存储器芯片是否正在对与第一数据不同的数据执行擦除或编程操作(S123)。在实施例中,当第一存储器芯片和第二存储器芯片正在对与第一数据不同的数据执行操作时,可以生成忙标志并将其临时存储在本地存储器(例如,图2的本地存储器130)中。控制器100可以基于存储在本地存储器130中的忙标志确定第一存储器芯片正在对与第一数据不同的数据执行操作。
[0065] 当第一存储器芯片没有对与第一数据不同的数据执行擦除或编程操作时,控制器100可从第一存储器芯片读取第一数据(S140)。例如,当第一存储器芯片没有对与第一数据不同的数据执行任何操作时,控制器100可以立即从第一存储器芯片读取第一数据。并且,当第一存储器芯片正在对与第一数据不同的数据执行读取操作时,控制器100可在读取操作终止之后从第一存储器芯片读取第一数据。
[0066] 当第一存储器芯片正在对与第一数据不同的数据执行擦除或编程操作时,控制器100可以确定第二存储器芯片是否正在对与第一数据不同的数据执行擦除或编程操作(S123)。当第二存储器芯片没有对与第一数据不同的数据执行擦除或编程操作时,控制器
100可以从第二存储器芯片读取第一数据(S130)。例如,当第二存储器芯片没有对与第一数据不同的数据执行任何操作时,控制器100可以立即从第二存储器芯片读取第一数据。并且,当第二存储器芯片正在对与第一数据不同的数据执行读取操作时,控制器100可以在读取操作终止之后从第二存储器芯片读取第一数据。
[0067] 当第二存储器芯片正在对与第一数据不同的数据执行擦除或编程操作时,控制器100可以确定第一存储器芯片是否正在对与第一数据不同的数据执行擦除或编程操作(S121)。
[0068] 尽管在图5中,操作S123在操作S121之后执行,但是实施例不限于此,并且操作S121可以在操作S123之后执行或者操作S121和操作S123可以同时执行。
[0069] 根据示例性实施例的存储器系统可以在不同的存储器芯片(例如,第一存储器芯片和第二存储器芯片)中编程相同的数据(例如,第一数据),然后从第一存储器芯片和第二存储器芯片中的没有正在对与第一数据不同的数据执行擦除或编程操作一个存储器芯片选择性地读取第一数据。因此,可以减少读取第一数据所花费的时间。
[0070] 图6是存储器系统的示例性实施例的框图。图7是用于描述在存储器系统的示例性实施例中形成一对芯片的第一存储器芯片和第二存储器芯片的框图。图6和图7是作为图4的操作S110的示例性实施例的用于描述在连接到相同的通道(例如,CH_A)的多个存储器芯片中存储相同的数据的操作的框图。
[0071] 参考图6,HCPU 110可以响应于对第一数据的编程请求Req_p,将内部编程命令CMD_p发送到第一FCPU 120_1。第一FCPU 120_1可以在连接到第一通道CH_A的第一存储器芯片(例如,200a_1)和第二存储器芯片(例如,200a_2)中编程第一数据。
[0072] 参考图6和图7,连接到第一通道CH_A的m个存储器芯片200a_1、200a_2、200a_3和200a_4中的每一个可以包括第一至第a区块(cell block)BLK1至BLKa,并且第一至第a区块BLK1至BLKa中的每一个可以包括第一至第b页面Page1至Pageb。在这种情况下,a和b可以是等于或大于2的自然数。在实施例中,m可以是偶数,但不限于此。第一至第a区块BLK1至BLKa中的每一个可以与数据擦除单元相对应,并且第一至第b页面Page1至Pageb中的每一个可以与区块中的数据编程或读取单元相对应。
[0073] 当控制器100从主机接收到编程请求Req_p、数据和逻辑地址时,数据可以被存储在控制器100的缓冲器(例如,本地存储器130)中,然后被编程在页面阵列条带(Page Array stripe,PAstripe)单元中的存储器芯片200a_1、200a_2、200a_3和200a_4中。
[0074] 在存储器芯片200a_1、200a_2、200a_3和200a_4的相同的位置(例如,具有相同的物理地址的页面)处提供的页面可以形成页面组,并且在这种情况下,PAstripe可以指存储在页面组中的数据。例如,存储器芯片200a_1、200a_2、200a_3和200a_4的第一区块BLK1中包括的第一页面page1可以形成页面组,并且PAstripe单元的数据可以被存储在包括第一页面page1的页面组中。
[0075] 当控制器100从主机接收到读取请求Req_r时,可以从PAstripe单元中的存储器芯片200a_1、200a_2、200a_3和200a_4读取数据。例如,可以一起读取存储在存储器芯片200a_1、200a_2、200a_3和200a_4的第一区块BLK1中包括的第一页面Page1中的数据。
[0076] 提供在存储器芯片200a_1、200a_2、200a_3和200a_4的相同的位置处的区块(例如,具有相同的物理地址的区块)可以形成块组,并且在这种情况下,块阵列条带(Block Array stripe,BAstripe)可以指存储在块组中的数据。例如,存储器芯片200a_1、200a_2、200a_3和200a_4的第一区块BLK1可以形成块组,并且当控制器100从主机接收到擦除请求时,数据可以以BAstripe单元被擦除。
[0077] 在实施例中,第一数据DATA1可以被编程在第一存储器芯片200a_1和第二存储器芯片200a_2的相同的位置处提供的第一页面Page1中。因此,在第一存储器芯片200a_1和第二存储器芯片200a_2中存储第一数据DATA1的位置可以具有相同的物理地址。
[0078] 当控制器100从主机接收到对第一数据DATA1的编程请求Req_p时,包括第一数据DATA1并形成PAstripe的数据被存储在控制器100的缓冲器(例如,本地存储器130)中。第一FCPU 120_1可以在存储器芯片200a_1、200a_2、200a_3和200a_4的页面中编程存储在缓冲器中的PAstripe。
[0079] 在这种情况下,第一FCPU 120_1可以优先将数据存储在奇数编号的编号的存储器芯片(例如,200a_1和200a_3)中,然后基于连接到第一通道CH_A的存储器芯片的顺序将数据存储在偶数编号的存储器芯片(例如,200a_2和200a_4)中。然而,实施例不限于此,并且数据可以被存储在偶数编号的存储器芯片(例如,200a_2和200a_4)中,然后被存储在奇数编号的存储器芯片(例如,200a_1和200a_3)中。
[0080] 在实施例中,顺序地连接到第一通道CH_A的第一存储器芯片200a_1和第二存储器芯片200a_2可以形成一对芯片PC,并且第一存储器芯片200a_1可以是连接到第一通道CH_A的奇数编号的存储器芯片,而第二存储器芯片200a_2可以是连接到第一通道CH_A的偶数编号的存储器芯片。因此,数据可以不是同时而是顺序地被存储在第一存储器芯片200a_1和第二存储器芯片200a_2中。在相同的第一数据DATA1被编程在第一存储器芯片200a_1和第二存储器芯片200a_2中之后,当第一存储器芯片200a_1正在对与第一数据DATA1不同的数据执行编程操作时,第二存储器芯片200a_2没有在执行编程操作,并且因此可以执行第一数据DATA1的读取操作。
[0081] 在实施例中,当第一数据DATA1被编程在在第一存储器芯片200a_1和第二存储器芯片200a_2的相同的位置处提供的第一页面Page1中的每一个中时,在第一数据DATA1的擦除操作中,由于以BAstripe单元执行擦除操作,因此存储在第一存储器芯片200a_1和第二存储器芯片200a_2中的第一数据DATA1可以从其中同时被擦除。
[0082] 然而,根据实施例的示例性实施例的存储器系统不限于对具有顺序地连接到相同的通道(例如,CH_A)的第一存储器芯片200a_1和第二存储器芯片200a_2的相同的物理地址的页面中的相同的数据的编程。相同的数据可以被存储在具有顺序地连接到相同的通道CH_A的第一存储器芯片200a_1和第二存储器芯片200a_2的不同的物理地址的页面中,或者被存储在没有被顺序地连接到相同的通道CH_A的多个存储器芯片中。
[0083] 图8是存储器系统的操作方法的示例性实施例的流程图,并且是用于描述图4的操作S110和操作S130的示例性实施例的流程图。图9显示了在存储器系统的示例性实施例中的映射表140,该映射表包括逻辑地址和要在其中存储数据的页面的物理地址之间的映射信息。例如,图9显示了逻辑页面号码(logical page number,LPN)和物理页面号码(physical page number,PPN)之间的映射信息。
[0084] 参考图6、图8和图9,控制器100可以在映射表140中存储从主机接收的第一逻辑地址和与第一存储器芯片相对应的第一物理地址(S115)。已经接收到内部编程命令CMD_p的第一FCPU 120_1可以将第一逻辑地址转换为其对应的第一物理地址和与第二物理地址,并且在与第一物理地址相对应的第一存储器芯片200a_1中和与第二物理地址相对应的第二存储器芯片200a_2中编程第一数据。在这种情况下,第一FCPU 120_1可以将第一逻辑地址和与第一存储器芯片200a_1相对应的第一物理地址存储在映射表140中。
[0085] 映射表140可以存储指示在非易失性存储器芯片200中的数据存储位置的映射信息。例如,在映射表140中,用于指定要在其中编程数据的页面的逻辑地址Page_ADD_L1至Page_ADD_Lb可以被1:1映射到指示要在其中编程数据的页面的物理位置的物理地址Page_ADD_P1至Page_ADD_Pb。
[0086] 在这种情况下,在确定在不同的存储器芯片(例如,第一存储器芯片200a_1和第二存储器芯片200a_2)中编程相同的第一数据编程时,与在其中存储第一数据的第一存储器芯片200a_1的页面相对应的第一物理地址可以被存储映射表140中,但是与在其中存储第一数据的第二存储器芯片200a_2的页面相对应的第二物理地址可以不被存储在映射表140中。然而,在确定在不同的存储器芯片中存储相同的数据时,关于在其中存储数据的存储器芯片的数量的信息可以被附加地存储在映射表140中,并且用于基于第一物理地址计算第二物理地址的计算信息可以被存储在本地存储器(例如,图2的本地存储器130)中。
[0087] 例如,如图7中,要在不同的存储器芯片中编程的第一数据DATA1可以被编程到第一存储器芯片200a_1中包括的第一区块BLK1的第一页面Page1中和第二存储器芯片200a_2中包括的第一区块BLK1的第一页面Page1中。在映射表140中,可以存储用于指定要在其中编程第一数据DATA1的页面的第一逻辑地址(例如,PAGE_ADD_L1)和与第一存储器芯片200a_1中包括的第一区块BLK1的第一页面Page1相对应的第一物理地址(例如,PAGE_ADD_P1),并且可以附加地存储指示第一数据DATA1被存储在总共两个存储器芯片(例如,第一存储器芯片200a_1和第二存储器芯片200a_2)中的信息。由于第一数据DATA1被编程在第一存储器芯片200a_1和第二存储器芯片200a_2的相同的物理位置中,因此即使在没有附加地存储与第二存储器芯片200a_2中包括的第一区块BLK1的第一页面Page1相对应的第二物理地址时,第一FCPU 120_1也可以基于第一物理地址PAGE_ADD_P1计算第二物理地址。
[0088] 响应于对第一数据DATA1的读取请求Req_r,控制器100可以确定第一存储器芯片200a_1和第二存储器芯片200a_2是否正在对与第一数据DATA1不同的数据执行操作(S120)。当从主机接收到对第一数据DATA1的读取请求Req_r时,HCPU 110可以将内部读取命令CMD_r发送到第一FCPU 120_1。
[0089] 控制器100可以基于映射表140的第一物理地址PAGE_ADD_P1从第二存储器芯片200a_2读取第一数据DATA1(S135)。在实施例中,当第一存储器芯片200a_1正在对与第一数据DATA1不同的数据执行操作时,第一FCPU 120_1可以基于映射表140的第一物理地址PAGE_ADD_P1计算第二物理地址,并且从与第二物理地址相对应的第二存储器芯片200a_2读取第一数据DATA1(S135)。
[0090] 然而,在根据示例性实施例的存储器系统中,在确定在第一存储器芯片200a_1和第二存储器芯片200a_2中编程相同的第一数据时,与第二存储器芯片200a_2相对应的第二物理地址也可以被存储在映射表140中。
[0091] 图10A和图10B显示了在存储器系统的示例性实施例中的第一映射表140_1和第二映射表140_2,该第一映射表140_1和第二映射表140_2包括逻辑地址和要在其中存储数据的页面的物理地址之间的映射信息。图10A和图10B显示了在确定在多个存储器芯片中编程相同的数据时,逻辑地址和物理地址之间的映射信息被存储在单独的映射表中。
[0092] 参考图10A和图10B,不管数据是被编程在一个存储器芯片中还是被编程在多个存储器芯片中,在第一映射表140_1中,用于指定要在其中编程数据的页面的逻辑地址Page_ADD_L1至Page_ADD_Lb可以被1:1映射到指示要在其中编程数据的页面的物理位置的物理地址Page_ADD_P1至Page_ADD_Pb。
[0093] 在确定在多个存储器芯片中编程相同的数据时,在第二映射表140_2中,用于指定要在其中编程数据的页面的逻辑地址Page_ADD_L1和Page_ADD_Lb可以被1:1映射到指示要在其中编程数据的页面的物理位置的第一物理地址Page_ADD_P1和Page_ADD_Pb。关于在其中存储数据的存储器芯片的数量的信息可以被附加地存储在第二映射表140_2中。用于基于第一物理地址Page_ADD_P1和Page_ADD_Pb计算与除第一存储器芯片之外的第二存储器芯片相对应的第二物理地址的计算信息可以被存储在本地存储器(例如,图2的本地存储器130),其中第一存储器芯片与第一物理地址Page_ADD_P1和Page_ADD_Pb相对应。使用计算信息,FCPU(例如,图3的FCPU 120)可以基于第一物理地址Page_ADD_P1和Page_ADD_Pb计算第二物理地址,并且从与第二物理地址相对应的第二存储器芯片读取数据。
[0094] 图11是存储器系统的示例性实施例的框图。图11是作为图4的操作S110的示例实施例的用于描述将相同的数据存储在其操作由相同的FCPU(例如,第一FCPU 120_1)控制的多个存储器芯片中的操作的框图。
[0095] 参考图11,HCPU 110可以响应于对第一数据的编程请求Req_p,将内部编程命令CMD_p发送到第一FCPU 120_1。第一FCPU 120_1可以在连接到第一通道CH_A的第一存储器芯片(例如,200a_1)中和连接到第二通道CH_B的第二存储器芯片(例如,200b_1)中编程第一数据。
[0096] 第一FCPU 120_1可以将第一逻辑地址转换为与其对应的第一物理地址和第二物理地址,并且在与第一物理地址相对应的第一存储器芯片200a_1中和与第二物理地址相对应的第二存储器芯片200b_1中编程第一数据。第一FCPU 120_1可以将第一逻辑地址和与第一存储器芯片200a_1相对应的第一物理地址存储在映射表中。映射表可以包括图9的映射表140或者图10的第一映射表140_1和第二映射表140_2。第一物理地址和第二物理地址之间的映射信息可以被存储在本地存储器(例如,图2的本地存储器130)中,并且FCPU 120可以基于第一物理地址通过使用映射信息来计算第二物理地址。在实施例中,第一数据可以被编程到具有基于连接到第一FCPU 120_1的第一通道CH_A和第二通道CH_B的相同的物理地址的第一存储器芯片200a_1和第二存储器芯片和200b_1中,但是不限于此。
[0097] 因此,第一FCPU 120_1可以确定第一存储器芯片200a_1和第二存储器芯片200b_1是否正在对与第一数据不同的数据执行操作,然后通过使用第一物理地址从第一存储器芯片200a_1读取第一数据,或者通过基于第一物理地址计算第二物理地址从第二存储器芯片200b_1读取第一数据。
[0098] 图12是存储器系统的示例性实施例的框图。图12是作为图4的操作S110的示例实施例的用于描述将相同的数据存储在其操作由不同的FCPU(例如,第一FCPU 120_1和第二FCPU 120_2)控制的多个存储器芯片中的操作的框图。
[0099] 参考图12,响应于对第一数据的编程请求Req_p,HCPU 110可以将内部编程命令CMD_p发送到不同的FCPU,例如,第一FCPU 120_1和第二FCPU 120_2。第一FCPU 120_1可以在第一存储器芯片(例如,200a_1)中编程第一数据,并且第二FCPU 120_2可以在第二存储器芯片(例如,200c_1)中编程第一数据。
[0100] 第一FCPU 120_1可以将第一逻辑地址转换为与其对应的第一物理地址,并且第二FCPU 120_2可以将第一逻辑地址转换为与其对应的第二物理地址。第一FCPU 120_1可以在与第一物理地址相对应的第一存储器芯片200a_1中编程第一数据,并且第二FCPU 120_2可以在与第二物理地址相对应的第二存储器芯片200c_1中编程第一数据。
[0101] 第一FCPU 120_1可以将第一逻辑地址和与第一存储器芯片200a_1相对应的第一物理地址存储在映射表中,并且第二FCPU 120_2可以将第一逻辑地址和与第二存储器芯片200c_1相对应的第二物理地址存储在映射表中。下面将关于图13和图14来描述映射表。
[0102] 响应于对第一数据的读取请求Req_r,HCPU 110可以将内部读取命令CMD_r发送到第一FCPU 120_1或第二FCPU 120_2。例如,HCPU 110可以基于存储在本地存储器(例如,本地存储器130)中的忙标志,确定第一存储器芯片200a_1和第二存储器芯片200c_1是否正在对与第一数据不同的数据执行操作,并且将内部读取命令CMD_r发送到第二FCPU 120_2以在第二存储器芯片200c_1中编程第一数据,该第二存储器芯片200c_1没有正在对与第一数据不同的数据执行编程或擦除操作。
[0103] 在实施例中,HCPU 110可以将内部读取命令CMD_r发送到第一FCPU 120_1和第二FCPU 120_2两者,并且控制第一存储器芯片200a_1或第二存储器芯片200c_1以第一FCPU 120_1和第二FCPU 120_2中的能够比另一个更快地读取第一数据来读取第一数据的方式读取第一数据。
[0104] 相比于图6、图11和图12,与相同的第一数据被编程到连接到相同的通道的多个存储器芯片中的情况(例如,图19的编程类型A)相比,在相同的第一数据被编程到连接到不同的通道并由相同的FCPU控制的多个存储器芯片中的情况(例如,图19的编程类型B)下,可以提高对于第一数据的读取操作速度,并且因为在其中存储第一数据的存储器芯片的操作之间的相互影响被减少,所以在相同的第一数据被编程在由不同的FCPU控制的多个存储器芯片中情况(例如,图19的编程类型C的)下,可以甚至进一步提高第一数据的读取操作速度。然而,控制器100在编程类型B中比在编程类型C中可以更容易控制存储器芯片要在其中编程相同的第一数据的操作,并且在编程类型A中比在编程类型B中可以更容易控制存储器芯片要在其中编程相同的第一数据的操作。
[0105] 另外,当增加要在其中编程相同的第一数据的存储器芯片的数量时,由于至少一个或多个存储器芯片没有正在对与第一数据不同的数据执行操作的可能性增加,因此可以提高第一数据的读取操作速度。
[0106] 因此,基于第一数据的重要性,可以确定要在其中编程第一数据的存储器芯片的数量,并且确定在其中存储第一数据的多个存储器芯片的方法可以变化。下面将关于图15等来描述第一数据的重要性。
[0107] 图13是存储器系统的操作方法的示例性实施例的流程图,并且是用于描述图4的操作S110和操作S130的示例性实施例的流程图。图14显示了在存储器系统的示例性实施例中的映射表140a,该映射表140a包括逻辑地址和要在其中存储数据的页面的物理地址之间的映射信息。
[0108] 参考图12至图14,控制器100可以将从主机接收的第一逻辑地址和与第二存储器芯片相对应的第二物理地址存储在映射表140a中(S117)。当从主机接收到对第一数据的编程请求Req_p和第一逻辑地址(例如,PAGE_ADD_L1)时,HCPU 110可以将内部编程命令CMD_p发送到多个FCPU 120中的一些(例如,第一FCPU 120_1和第二FCPU 120_2)。第一FCPU 120_1可以将第一逻辑地址PAGE_ADD_L1转换为第一物理地址(例如,PAGE_ADD_P1_1),并且将第一逻辑地址PAGE_ADD_L1和与第一存储器芯片200a_1相对应的第一物理地址PAGE_ADD_P1_
1存储在映射表140a中。第二FCPU 120_2可以将第一逻辑地址PAGE_ADD_L1转换为第二物理地址(例如,PAGE_ADD_P1_2),并且将第一逻辑地址PAGE_ADD_L1和与第二存储器芯片200c_
1相对应的第二物理地址PAGE_ADD_P1_2存储在映射表140a中。
[0109] 映射表140a可以将指示数据存储位置的映射信息存储在非易失性存储器芯片200中。例如,在确定将数据存储在一个存储器芯片中时,逻辑地址(例如,Page_ADD_L2和Page_ADD_L3)和与其对应的物理地址(例如,Page_ADD_P2和Page_ADD_P3)可以以1:1的对应被存储在映射表140a中。在确定将数据存储在多个存储器芯片中时,逻辑地址(例如,Page_ADD_L1和Page_ADD_Lb)和物理地址(例如,Page_ADD_P1_1和Page_ADD_P1_2以及Page_ADD_Pb_1、Page_ADD_Pb_2和Page_ADD_Pb_3)可以以1:i的对应被存储在映射表140a中。在这种情况下,i可以表示在其中存储相同的数据的存储器芯片的数量。
[0110] 当从主机接收到对第一数据的读取请求Req_r时,响应于读取请求Req_r,控制器100可以确定第一存储器芯片200a_1和第二存储器芯片200c_1是否正在对与第一数据不同的数据执行操作(S120)。
[0111] 控制器100可以基于映射表140a的第二物理地址PAGE_ADD_P1_2从第二存储器芯片200c_1读取第一数据(S137)。在实施例中,当第一存储器芯片200a_1正在对与第一数据不同的数据执行操作时,第二FCPU 120_2可以从与映射表140a中的第二物理地址PAGE_ADD_P1_2相对应的第二存储器芯片200c_1读取第一数据。
[0112] 图15是存储器系统的操作方法的示例性实施例的流程图。
[0113] 参考图3和图15,控制器100可以从主机接收编程请求Req_p、第一数据、第一逻辑地址、第二数据和第二逻辑地址。HCPU 110可以通过处理从主机接收的编程请求Req_p来生成内部编程命令CMD_p。
[0114] FCPU 120可以基于第一数据的第一重要性在多个不同的存储器芯片中编程第一数据(S210),以及基于第二数据的第二重要性在一个存储器芯片中编程第二数据(S220)。第二重要性可能低于或少于第一重要性。在这种情况下,可以通过使用上面关于图6、图11和图12所描述的方法中的至少一种来将第一数据编程在多个存储器芯片中。
[0115] 数据重要性可以充当当FCPU 120确定是将数据存储在多个存储器芯片中还是仅存储在单个存储器芯片中时使用的标准。例如,需要短时间读取的数据可能具有高重要性。在实施例中,FCPU 120可以将相同的数据与数据的重要性成比例地存储在多个存储器芯片中。
[0116] 在实施例中,第一数据的重要性信息可以被包括在从主机接收的对第一数据的编程请求Req_p中,或者可以作为单独的命令从主机接收。在实施例中,可以基于接收到对第一数据的读取请求Req_r的次数而在存储器系统中生成第一数据的重要性信息。
[0117] FCPU 120可以将第一逻辑地址转换为与要在其中存储第一数据的多个存储器芯片相对应的物理地址,并且将第一逻辑地址和与存储器芯片中的至少一个相对应的物理地址存储在第一映射表中(S230)。第一映射表可以包括图9的映射表140、图10的第一映射表140_1和第二映射表140_2或图14的映射表140a。
[0118] FCPU 120可以将第二逻辑地址转换为与要在其中存储数据的一个存储器芯片相对应的物理地址,并且将第二逻辑地址和转换的物理地址存储在第二映射表中(S240)。
[0119] 与图15相关的第一映射表和第二映射表可以被配置为像图9的映射表140或图14的映射表140a一样的一个映射表,或者被配置为像图10的第一映射表140_1和第二映射表140_2一样的不同的映射表。
[0120] 图16是用于描述图15的操作S210的示例性实施例的流程图。
[0121] 参考图16,控制器100可以从外部设备(例如,主机)接收关于第一数据的第一重要性和第二数据的第二重要性的信息(S211)。在实施例中,关于第一重要性和第二重要性的信息可以被包括在从主机接收的编程请求(例如,图1的编程请求Req_p)中,但是不限于此,并且可以作为与编程请求不同的单独的命令而从主机接收。在实施例中,从外部设备接收的关于第一重要性和第二重要性的信息可以包括指示要在其中编程第一数据和第二数据中的每一个的存储器芯片的数量的信息,但是不限于此。在实施例中,存储器系统可以包括重要性表,并且基于从外部设备接收的关于第一重要性和第二重要性的信息、以及重要性表确定要在其中编程第一数据和第二数据的存储器芯片的数量。
[0122] 控制器100可以基于第一重要性确定要在其中编程第一数据的存储器芯片的数量(S213)。控制器100可以基于第二重要性确定要在其中编程第二数据的存储器芯片的数量。然而,根据示例性实施例的存储器系统不限于此,并且控制器100可以基于第一重要性在非易失性存储器芯片当中选择要在其中编程第一数据的多个存储器芯片。下面将关于图19来提供其描述。
[0123] 然而,根据示例性实施例的存储器系统不限于从外部设备接收关于第一重要性和第二重要性的信息。例如,存储器系统可以收集关于要被重复读取的数据的信息。存储器系统可以基于接收到的对第一数据和第二数据的读取请求的次数生成关于第一数据的重要性的信息和关于第二数据的重要性的信息,并将其存储在本地存储器中。
[0124] 当在第一数据已经被编程之后从外部设备接收到关于第一重要性的信息时,根据本发明构思的示例性实施例的存储器系统可以基于接收到的关于第一重要性的信息从要在其中编程第一数据的多个存储器芯片的部分中擦除第一数据。例如,擦除第一数据的操作可以与垃圾收集操作一起执行。另外,当在第一数据和第二数据已经被编程之后从外部设备接收到关于第一重要性和第二重要性的信息时,根据示例性实施例的存储器系统还可以基于接收到的关于第一重要性和第二重要性的信息在附加的存储器芯片中编程第一数据和第二数据。
[0125] 图17是从图1的控制器100修改的控制器100a的框图。关于图17将不会重复描述上面关于图2描述的元件。图18A、图18B和图19显示了存储在存储器系统的示例性实施例的本地存储器130a中的重要性表131a、131b和131c。
[0126] 参考图17,控制器100a可以包括HCPU 110、FCPU 120、本地存储器130a、映射表140、主机接口150和存储器接口160。本地存储器130a可以存储重要性表131,并且重要性表
131可以存储关于与要被编程到非易失性存储器芯片中的数据的重要性信息相对应的数据编程方法的信息。FCPU 120可以基于重要性表131确定要在其中编程第一数据的存储器芯片的数量。在确定在多个存储器芯片中编程第一数据时,FCPU 120可以基于重要性表131选择要在其中编程第一数据的多个存储器芯片。
[0127] 参考图17和图18A,重要性表131a可以存储数据的重要性信息DATA_I和要在其中编程数据的不同的存储器芯片的数量。例如,重要性信息DATA_I可以具有从0到3的总共四个值,并且以从0到3的方向指示高重要性。因此,重要性信息DATA_I的大值可以指示数据的读取操作应该被快速执行。然而,上面的描述仅仅是为了方便解释,并且根据示例性实施例的存储器系统不限于此。
[0128] 重要性表131a可以以这样的方式来配置,该方式是要在其中编程相同的数据的不同的存储器芯片的数量与要被编程的数据的重要性信息DATA_I的值成比例地增加。当增加要在其中编程相同的数据的存储器芯片的数量时,存储器芯片中的至少一个可能没有正在对除了接收到读取请求的数据之外的数据执行操作的机会增加,并且因此可以增加快速响应从主机接收的读取请求的可能性。
[0129] 参考图17和图18B,重要性表131a可以存储数据的重要性信息DATA_I和要在其中编程数据的不同的存储器芯片的数量。例如,重要性信息DATA_I可以具有从0到3的总共四个值。重要性表131b可以被配置为当要被编程的数据的重要性信息DATA_I具有等于或大于特定值(例如,2)的值时在两个存储器芯片中编程数据,并且当要被编程的数据的重要性信息DATA_I具有小于特定值的值时在一个存储器芯片中编程数据。
[0130] 由于非易失性存储器芯片的总容量在相同的数据被编程到多个存储器芯片中时可能减少,因此可以考虑数据的快速读取和非易失性存储器芯片的总容量的增益两者来确定特定值。
[0131] 参考图17和图19,重要性表131c可以存储数据的重要性信息DATA_I和关于数据编程方法的信息。例如,重要性信息DATA_I可以具有从0到3的总共四个值,并且以从0到3的方向指示较高的重要性。重要性表131c可以被配置为当重要性信息DATA_I具有值0时在一个存储器芯片中编程数据(例如,编程类型N)。重要性表131c可以被配置为当重要性信息DATA_I具有值1时,如上面关于图6所描述的,在连接到相同的通道的多个存储器芯片中编程相同的数据(例如,编程类型A)。重要性表131c可以被配置为当重要性信息DATA_I具有值2时,如上面关于图11所描述的,在连接到不同的通道并由相同的FCPU控制的多个存储器芯片中编程相同的数据(例如,编程类型B)。重要性表131c可以被配置为当重要性信息DATA_I具有值3时,如上面关于图12所描述的,在由不同的FCPU控制的多个存储器芯片中编程相同的数据(例如,编程类型C)。
[0132] 图17的重要性表131可以包括图18A的重要性表131a、图18B的重要性表131b和图19的重要性表131c中的至少一个。基于根据本发明构思的存储器系统及其操作方法,由于数据可以被编程在多个不同的存储器芯片中并且可以从存储器芯片中的一个中读取,因此可以提高读取操作速度。此外,由于确定是否在多个存储器芯片中编程数据,因此基于数据的重要性信息,可以防止非易失性存储器芯片的容量的过度消耗。
[0133] 虽然已经参考本发明构思的实施例具体地显示和描述了本发明构思,但是将理解,在不脱离以下权利要求的精神和范围的情况下,可以在其中进行形式和细节上的各种改变。