存储设备、其操作方法及包括存储设备的存储系统与流程

文档序号:17211685发布日期:2019-03-27 10:51阅读:274来源:国知局
存储设备、其操作方法及包括存储设备的存储系统与流程

本申请要求于2017年9月20日在韩国知识产权局递交的韩国专利申请no.10-2017-0121184的优先权,其全部公开内容通过引用合并于此。

本发明构思的示例性实施例涉及存储设备、其操作方法及包括存储设备的存储系统。



背景技术:

半导体存储设备通常划分为易失性存储设备和非易失性存储设备,易失性存储设备在电力中断时无法保留所存储的信息,非易失性存储设备即使电力中断也保留所存储的信息。nand闪速存储设备被广泛用作非易失性存储设备。

可以响应于对应的命令,对nand闪速存储设备的存储体执行读取、编程或擦除操作。操作的延迟时间由操作的执行时间与直到在相同的存储体中的先前操作已完成的等待时间之和来表示。然而,操作的延迟时间可以不利地影响用户对存储设备的性能的感知。因此,希望降低对读取、编程和擦除命令进行响应的延迟。



技术实现要素:

本发明构思的至少一个实施例提供了一种存储设备,包括各自存储有镜像数据的非易失性存储设备。

本发明构思的至少一个实施例还提供了一种用于操作存储设备的方法,该存储设备包括各自存储有镜像数据的非易失性存储设备。

本发明构思的至少一个实施例还提供了一种存储系统,包括各自存储有镜像数据的存储设备。

根据本发明构思的示例性实施例,存储设备包括第一非易失性存储器,第一非易失性存储器包括多个第一存储体,多个第一存储体具有根据第一指派策略指派给多个第一存储体的多个第一地址;第二非易失性存储器,第二非易失性存储器包括多个第二存储体,多个第二存储体具有根据与第一指派策略不同的第二指派策略指派给多个第二存储体的多个第二地址,其中,多个第二地址对应于多个第一地址,并且其中,第二非易失性存储器对存储在第一地址中的数据项目进行镜像以将经镜像的数据项目存储在第二地址中;以及控制器,被配置为从主机接收命令以控制第一非易失性存储器和第二非易失性存储器,其中,控制器将从主机接收的读取命令同时提供给第一非易失性存储器和第二非易失性存储器,并基于读取命令,向主机输出从第一非易失性存储器提供的数据和从第二非易失性存储器提供的数据中的较早的数据。

根据本发明构思的示例性实施例,存储系统包括第一存储设备,该第一存储设备包括多个第一非易失性存储器,多个第一非易失性存储器具有根据第一指派策略指派给多个第一非易失性存储器的多个第一地址;第二存储设备,该第二存储设备包括多个第二非易失性存储器,多个第二非易失性存储器具有根据与第一指派策略不同的第二指派策略指派给多个第二非易失性存储器的多个第二地址,其中,多个第二地址对应于多个第一地址,并且其中,第二存储设备对存储在第一地址中的数据项目进行镜像以将经镜像的数据项目存储在第二地址中;以及主机,被配置为控制第一存储设备和第二存储设备,其中,主机同时向第一存储设备和第二存储设备下发读取请求,并输出从第一存储设备提供的数据和从第二存储设备提供的数据中的较早的数据。

根据本发明构思的示例性实施例,提供了一种用于操作存储设备的方法,该存储设备包括第一非易失性存储器,第一非易失性存储器包括多个第一存储体,多个第一存储体具有根据第一指派策略指派给多个第一存储体的多个第一地址;以及第二非易失性存储器,第二非易失性存储器包括多个第二存储体,多个第二存储体具有根据与第一指派策略不同的第二指派策略指派给多个第二存储体的多个第二地址,其中,多个第二地址对应于多个第一地址,并且其中,第二非易失性存储器对存储在第一地址中的数据项目进行镜像以将经镜像的数据项目存储在第二地址中,该方法包括:主机向存储设备下发读取请求;存储设备的控制器基于读取请求,将读取命令同时应用于第一非易失性存储器和第二非易失性存储器;以及控制器基于读取命令向主机输出从第一非易失性存储器提供的数据和从第二非易失性存储器提供的数据中的较早的数据。

根据本发明构思的示例性实施例,存储设备包括:第一非易失性存储器,第一非易失性存储器包括具有多个第一地址的m行第一存储体,每一行第一存储体具有n个第一存储体;第二非易失性存储器,第二非易失性存储器包括具有多个第二地址的m行第二存储体,每一行第二存储体具有n个第二存储体;以及控制器。多个第二地址对应于多个第一地址。第二非易失性存储器对存储在第一地址中的数据项目进行镜像以将经镜像的数据项目存储在第二地址中。控制器被配置为将从主机接收的读取命令同时提供给第一非易失性存储器和第二非易失性存储器,并基于读取命令,向主机输出从第一非易失性存储器提供的数据和从第二非易失性存储器提供的数据中的较早的数据。控制器将属于给定行的第一存储体的第一地址移位mmodn个存储体以确定对应的具有第二地址的第二存储体。

附图说明

通过参考附图详细描述本发明构思的示例性实施例,本发明构思将变得更显而易见,在附图中:

图1是用于示出根据本发明构思的示例性实施例的存储设备的框图;

图2是用于示出根据本发明构思的示例性实施例的图1中所示出的存储设备的框图;

图3是用于示出根据本发明构思的示例性实施例的图1的控制器的框图;

图4a是用于概念性地示出指派给包括在第一非易失性存储器中的多个第一存储体的地址的示图;

图4b是用于概念性地示出指派给包括在第二非易失性存储器中的多个第二存储体的地址的示图;

图5是示出了根据本发明构思的示例性实施例的存储设备的操作的流程图;

图6是用于概念性地示出根据本发明构思的示例性实施例的当将数据读取请求提供给第一非易失性存储器和第二非易失性存储器时控制器的操作的示图;

图7a是用于概念性地示出响应于数据读取请求来访问第一非易失性存储器的地址和存储体的示图;

图7b是用于概念性地示出根据本发明构思的示例性实施例的响应于数据读取请求来访问第二非易失性存储器的地址和存储体的示图;

图8是用于示出根据本发明构思的示例性实施例的存储设备的操作的时序图;

图9是示出了根据本发明构思的示例性实施例的存储设备的操作的流程图;

图10a和图10b是用于示出根据本发明构思的示例性实施例的第一非易失性存储器和第二非易失性存储器之间的进程间通信(ipc)的示图;

图11是用于示出根据本发明构思的示例性实施例的第一非易失性存储器和第二非易失性存储器的操作时间同步的框图;

图12a和图12b是用于示出根据本发明构思的示例性实施例的第一非易失性存储器和第二非易失性存储器之间的操作时间同步的表格;

图13是用于示出根据本发明构思的示例性实施例的第一非易失性存储器和第二非易失性存储器的擦除/编程操作的流程图;以及

图14是用于示出根据本发明构思的示例性实施例的存储系统的框图。

具体实施方式

在下文中,将参考图1至图14描述根据本发明构思的示例性实施例的存储设备和包括该存储设备的存储系统。

图1是用于示出根据本发明构思的示例性实施例的存储设备的框图。图2是图1中所示出的存储设备的更详细的框图。

参考图1和图2,根据本发明构思的示例性实施例的存储设备100包括控制器110、第一非易失性存储器120_1和第二非易失性存储器120_2。

存储设备100可以连接到主机。存储设备100可以从主机接收读取命令read、编程命令program和擦除命令erase,并且可以执行与每个命令相关联的操作。

存储设备100可以是例如由第一非易失性存储器120_1和第二非易失性存储器120_2组成的固态驱动器(ssd)。

备选地,存储设备100可以是但不限于诸如以下各项的存储卡:pc卡或个人计算机存储卡国际协会(pcmcta)卡、紧凑型闪速(cf)卡、智能媒体(sm)卡或smc、记忆棒、多媒体卡(mmc、rs-mmc或微mmc)、sd卡(sd、迷你sd、微sd或sdhc)以及通用闪速存储设备(ufs)。

控制器110(例如,控制电路)可以控制第一非易失性存储器120_1和第二非易失性存储器120_2的操作。控制器110可以基于从主机接收的命令来控制第一非易失性存储器120_1和第二非易失性存储器120_2。将如下所述,第一非易失性存储器120_1和第二非易失性存储器120_2彼此镜像。因此,控制器110可以将从主机接收的命令均等地提供给第一非易失性存储器120_1和第二非易失性存储器120_2。

图3是示出了根据本发明构思的示例性实施例的图1的控制器的框图。

参考图3,控制器110包括命令队列111、命令解码器112和地址指派映射113。

命令队列111可以临时存储控制器110从主机接收的命令以及命令要访问的第一非易失性存储器120_1和第二非易失性存储器120_2的地址。因此,命令队列111可以包括存储元件(例如,存储设备、寄存器、缓冲器等)。命令队列111可以将存储的命令和地址提供给命令解码器112。

命令解码器112可以对从命令队列111接收的命令和地址进行解码。命令解码器112可以将解码的命令和地址提供给地址指派映射113。在实施例中,命令解码器112由解码器电路实现。

主机可以向控制器110提供用于访问第一非易失性存储器120_1和第二非易失性存储器120_2的逻辑地址。逻辑地址可以包括例如逻辑页编号(lpn)。

在实施例中,控制器110将从主机接收的逻辑地址转换为用于访问第一存储器单元130和第二存储器单元140的实际的物理地址。物理地址可以包括例如物理页编号(ppn)。

在实施例中,命令解码器112通过使用地址指派映射113来将从主机接收的逻辑地址转换为物理地址,并且将转换的物理地址提供给第一非易失性存储器120_1和第二非易失性存储器120_2。命令解码器112可以另外向与转换的物理地址相对应的非易失性存储器120_1和120_2提供命令(com)。

地址指派映射113包括第一映射114和第二映射115,第一映射114和第二映射115用于将从主机接收的逻辑地址转换为物理地址。

在第一映射114中,可以例如以表格的形式定义第一非易失性存储器120_1的物理地址与逻辑地址之间的关系。同样地,在第二映射115中,可以以表格的形式定义第二非易失性存储器120_2的物理地址与逻辑地址之间的关系。

命令解码器112将从主机接收的第一地址addr1提供给地址指派映射113。如上所述,第一地址addr1可以包括用于访问第一非易失性存储器120_1和第二非易失性存储器120_2的一个或多个逻辑地址。

地址指派映射113使用第一映射114将第一地址addr1转换为第二地址addr2。第二地址addr2可以包括用于访问第一非易失性存储器120_1的一个或多个物理地址。类似地,地址指派映射113使用第二映射115将第一地址addr1转换为第三地址addr3。第三地址addr3可以是用于访问第二非易失性存储器120_2的一个或多个物理地址。

命令解码器112可以将从地址指派映射113接收的第二地址addr2和第三地址addr3分别提供给第一非易失性存储器120_1和第二非易失性存储器120_2。

综上所述,控制器110可以将从主机接收的数据访问请求中包括的第一地址addr1转换为用于访问第一非易失性存储器120_1的第二地址addr2,可以将第一地址addr1转换为用于访问第二非易失性存储器120_2的第三地址addr3。在实施例中,两个映射114和115被单个映射替代,单个映射包括可通过第一地址addr1编写索引的条目,其中每个条目包括对应的第二地址addr2和第三地址addr3。

控制器110可以将从主机接收的数据访问请求同时提供给第一非易失性存储器120_1和第二非易失性存储器120_2。例如,如果主机下发针对第一地址addr1的数据读取命令,则控制器110将针对第二地址addr2的读取命令提供给第一非易失性存储器120_1,并且将针对第三地址addr3的读取命令提供给第二非易失性存储器120_2。控制器110可以将读取命令同时提供给第一非易失性存储器120_1和第二非易失性存储器120_2,并且可以返回来自第一非易失性存储器120_1的读取数据或者来自第二非易失性存储器120_2的读取数据(以较早完成的为准)。

再次参考图2,第一非易失性存储器120_1包括第一nvm控制器125_1(例如,存储器控制器或控制电路)和第一存储器单元130。第一nvm控制器125_1可以基于从控制器110接收的命令来控制第一存储器单元130的操作。第一nvm控制器125_1连接到第一总线135_1。

第一存储器单元130可以包括但不限于nand闪速存储器单元。也就是说,第一存储器单元130可以包括能够在半导体设备上存储数据的非暂时性存储器单元,并且可以采用任何存储器单元,只要它可能由于对相同的存储体的读取、编程和擦除操作的相互干扰而导致延迟。

在下面的描述中,第一存储器单元130被描述为包括nand闪速存储器单元。尽管未在图2中明确示出,但是第一存储器单元130可以是但不限于由多个nand闪速存储器芯片(即,封装成单个封装的集成存储器芯片)组成。第一存储器单元130可以包括单个nand闪速存储器芯片。

当第一存储器单元130包括nand闪速存储器单元时,第一存储器单元130可以包括单级单元(slc)。slc针对每个存储器单元存储一比特的信息。尽管与多级单元(mlc)或三级单元(tlc)相比,slc针对每个存储器单元具有更小的容量,但是与mlc和tlc相比,slc可以具有用于访问数据所需的更低的延迟。应理解的是,第一存储器单元130不限于slc。

第一非易失性存储器120_1包括多个存储体130_1、130_2、……、130_n。多个存储体130_1至130_n中的每个存储体是地址单元,控制器110使用该地址单元执行读取、编程或擦除操作。

第二非易失性存储器120_2包括第二nvm控制器125_2和第二存储器单元140。第二nvm控制器125_2可以基于从控制器110接收的命令来控制第二存储器单元140的操作。第二nvm控制器125_2连接到第二总线135_2。

第二存储器单元140可以具有与第一存储器单元130相同的配置。因此,第二存储器单元140可以包括能够在半导体设备上存储数据的非暂时性存储器单元,例如nand闪速存储器单元。同样地,第二存储器单元140不限于nand闪速存储器单元,并且可以包括任何存储设备,只要它可能由于对相同的存储体的读取、编程和擦除操作的相互干扰而导致延迟。

在下面的描述中,为了便于讨论,第二存储器单元140将被描述为类似于第一存储器单元130的nand闪速存储器单元。

在实施例中,第一存储器单元130和第二存储器单元140彼此镜像。因此,第一存储器单元130和第二存储器单元140存储相同的数据。控制器110可以根据从主机提供的命令和地址,访问第一存储器单元130和第二存储器单元140上的存储有相同的数据的区域,并且可以针对第一存储器单元130和第二存储器单元140执行相同的命令。在实施例中,存储在第一存储器单元130中的第一位置中的数据的第一部分存储在第二存储器单元140中的与第一位置不同的第二位置中,并且数据的第二部分存储在第一存储器单元130和第二存储器单元140中的相同的第三位置中。

图4a是用于概念性地示出指派给包括在第一非易失性存储器中的多个第一存储体的地址的示图。图4b是用于概念性地示出指派给包括在第二非易失性存储器中的多个第二存储体的地址的示图。

首先,参考图4a,第一非易失性存储器120_1包括多个存储体130_0、130_1、130_2和130_3。尽管为了便于说明,第一非易失性存储器120_1被示出为包括第零存储体130_0至第三存储体130_3这四个存储体,但是应理解的是,这仅仅是说明性的。例如,第一非易失性存储器120_1可以包括少于四个的存储体或多于四个的存储体。

另外,第一非易失性存储器120_1可以被划分为多个行r1_0、r1_1、r1_2、r1_3、r1_4。多个存储体130_0、130_1、130_2和130_3中的每一个可以包括逻辑地址0至19中的相应的逻辑地址,其中每一个逻辑地址被指派给多个行r1_0至r1_4中的一行。

例如,地址0、4、8、12和16包括在第一非易失性存储器120_1的第零存储体130_0中。地址1、5、9、13和17包括在第一存储体130_1中。地址2、6、10、14和18包括在第二存储体130_2中。地址3、7、11、15和19包括在第三存储体130_3中。以这种方式,第一非易失性存储器120_1的逻辑地址可以顺序地指派给多个存储体130_0至130_3。

在指派给多个存储体130_0至130_3的逻辑地址之中,地址4可以由例如第一行第零存储体(bank0、#1)的物理地址来表示。在另一示例中,地址11可以由第二行第三存储体(bank3、#2)的物理地址来表示。

如上所述,第一非易失性存储器120_1逐个存储体地执行读取、编程和擦除命令。如果从主机接收到针对地址0和4的读取命令,则第一非易失性存储器120_1不能立即对其进行处理。也就是说,第一非易失性存储器120_1必须在两个数据周期期间读取第零存储体130_0中的数据,然后将数据提供给主机。这就是所谓的存储体冲突。例如,第一非易失性存储器120_1在第一数据周期期间读取与第零存储体130_0中的地址0相关联的数据,并且在已完成与地址0相关联的读取之后,在第二数据周期期间读取与第零存储体130_0中的地址4相关联的数据。

相反,让我们假设在第一非易失性存储器120_1中从主机接收到针对存储在地址0和地址1中的数据的读取命令。由于地址0被指派给第零存储体130_0并且地址1被指派给第一存储体130_1,所以第一非易失性存储器120_1可以在单个数据周期中读取存储在地址0和地址1中的数据并将数据提供给主机。

在通常的nand闪速存储设备中,已知存储器单元逐页地处理读取请求和编程请求。因此,如本文所述,在第一非易失性存储器120_1和第二非易失性存储器120_2中逐个存储体地处理读取请求可以被解释为逐页地处理读取请求。应理解的是,这仅仅是说明性的,并且包括在第一非易失性存储器120_1和第二非易失性存储器120_2中的多个存储体可以指代多个页。

参考图4b,第二非易失性存储器120_2具有与第一非易失性存储器120_1的配置类似的配置。应理解的是,第二非易失性存储器120_2对存储在第一非易失性存储器120_1中的数据进行镜像和存储。

具体地,第二非易失性存储器120_2包括的存储体的数量与第一非易失性存储器120_1包括的存储体的数量相同,并且第二非易失性存储器120_2包括的指派给存储体的逻辑地址的数量与第一非易失性存储器120_1包括的指派给存储体的逻辑地址的数量相同。然而,用于将逻辑地址指派给相同存储体的指派策略是不同的。例如,当将不同的指派策略用于不同的非易失性存储器时,应用于两个非易失性存储器的给定读取请求可以在非易失性存储器中的一个中导致更少的存储体冲突。

尽管为了便于说明,在图4b中,第二非易失性存储器120_2被示出为包括第零存储体140_0至第三存储体140_3这四个存储体,但是应理解的是,这仅仅是说明性的。例如,第二非易失性存储器120_2可以包括少于四个的存储体或多于四个的存储体。

第二非易失性存储器120_2被划分为多个行r2_0至r2_4。多个存储体140_0、140_1、140_2和140_3中的每一个可以包括逻辑地址0至19中的相应的逻辑地址,其中每一个逻辑地址被指派给多个行r2_0至r2_4中的一行。

例如,地址0、7、10、13和16包括在第二非易失性存储器120_2的第零存储体140_0中。地址1、4、11、14和17包括在第一存储体140_1中。地址2、5、8、15和18包括在第二存储体140_2中。地址3、6、9、12和19包括在第三存储体140_3中。

在指派给多个存储体140_0至140_3的逻辑地址之中,地址4可以由例如第一行第一存储体(bank1、#1)的物理地址来表示。又例如,地址12可以由第三行第三存储体(bank3、#3)的物理地址来表示。

与第一非易失性存储器120_1的指派给多个存储体130_0至130_3的逻辑地址相比,第二非易失性存储器120_2的指派给多个存储体140_0至140_3的逻辑地址已经被移位了几个存储体。

具体地,第二非易失性存储器120_2的第零行r2_0中的地址0至3被顺序地指派给第零行r2_0中的第零存储体140_0至第三存储体140_3。第一行r2_1中的地址4至7被移位了一个存储体以指派给第一行r2_1中的第零存储体140_0至第三存储体140_3。第二行r2_2中的地址8至11被移位了两个存储体以指派给第二行r2_2中的第零存储体140_0至第三存储体140_3。第三行r2_3中的地址12至15被移位了三个存储体以指派给第三行r2_3中的第零存储体140_0至第三存储体140_3。概括地说,当非易失性存储器包括n个存储体时,属于第m行的地址被移位mmodn个存储体以进行指派,其中mod是取模运算。

这样,包括在第二非易失性存储器120_2中的地址可以以与将第一非易失性存储器120_1的地址指派给多个存储体130_1至130_3的方式不同的方式指派给多个存储体140_1至140_3。

尽管以上已经参考图4b描述了包括在第二非易失性存储器120_2中的地址的存储体指派策略,但本公开不限于此。可以根据不同的策略将包括在第二非易失性存储器120_2中的地址指派给多个存储体140_0至140_3,只要其具有顺序性即可。

第一非易失性存储器120_1和第二非易失性存储器120_2具有不同的地址指派策略,这与根据本发明构思的示例性实施例的用于操作存储设备的方法有关。将参考图5至图7b更详细地描述存储设备的操作。

图5是示出了根据本发明构思的示例性实施例的存储设备的操作的流程图。图6是用于概念性地示出根据本发明构思的示例性实施例的当将数据读取请求提供给第一非易失性存储器和第二非易失性存储器时控制器的操作的示图。图7a是用于概念性地示出响应于数据读取请求来访问第一非易失性存储器的地址和存储体的示图。图7b是用于概念性地示出根据本发明构思的示例性实施例的响应于数据读取请求来访问第二非易失性存储器的地址和存储体的示图。

参考图5,根据本发明构思的示例性实施例的存储设备100同时向第一非易失性存储器120_1和第二非易失性存储器120_2发送读取请求(步骤s110)。然后,将较早从第一非易失性存储器120_1接收的数据提供给主机(步骤s120),而忽略较迟从第二非易失性存储器120_2接收的数据(步骤s130)。

通常,数据镜像用于数据备份的目的。在根据本发明构思的示例性实施例的存储设备中,通过同时向第一非易失性存储器120_1和与第一非易失性存储器120_1镜像的第二非易失性存储器120_2提供读取命令(步骤s110),可以改善由于读取请求引起的延迟。在实施例中,控制器110不向主机提供被忽略的数据。如果取而代之地较早从第二非易失性存储器120_2接收到数据,则可以将该数据提供给主机,而忽略较迟从第一非易失性存储器120_1接收的数据。

参考图6,示出了当控制器110从主机接收到针对逻辑地址0、4、8、12和16的读取命令时,命令解码器112和地址指派映射113的操作。

命令解码器112将包括地址0、4、8、12和16的第一地址addr1提供给地址指派映射113。地址指派映射113使用第一映射114将从第一地址addr1转换而来的第二地址addr2返回给命令解码器112。图6示出了地址指派映射113返回与第零行第零存储体至第四行第零存储体(bank0、#0至#4)相对应的物理地址的示例。

地址指派映射113使用第二映射115将从第一地址addr1转换而来的第三地址addr3返回给命令解码器112。图6示出了地址指派映射113返回第零行第零存储体(bank0、#0)、第一行第一存储体(bank1、#1)、第二行第二存储体(bank2、#2)、第三行第三存储体(bank3、#3)以及第四行第零存储体(bank0、#4)的物理地址的示例。

控制器110可以基于从地址指派映射113提供给命令解码器112的物理地址来访问第一非易失性存储器120_1和第二非易失性存储器120_2。

参考图7a,逻辑地址0、4、8、12和16被指派给第零存储体130_0。由于与逻辑地址0、4、8、12和16相对应的物理地址分别位于第零行第零存储体至第四行第零存储体(bank0、#0至#4),因此针对来自主机的读取请求发生至少四次存储体冲突。因此,针对读取请求的延迟增加,这可能不利地影响数据并行性。

参考图7b,逻辑地址0、4、8、12和16被适当地指派给第零存储体140_0至第三存储体140_3。在图7b所示的示例中,针对来自主机的读取请求仅发生一次数据冲突。如果第二非易失性存储器120_2也根据相同的策略将逻辑地址指派给多个存储体140_1至140_3,则可能存在类似于第一非易失性存储器120_1中的四次存储体冲突。

因此,第二非易失性存储器120_2可以首先处理来自主机的读取请求,并较早地将读取的数据提供给控制器110。控制器110可以将从第二非易失性存储器120_2接收的数据提供给主机。另一方面,控制器110可以忽略从第一非易失性存储器120_1读取的数据。

应该理解的是,以上示例针对第二非易失性存储器120_2是理想的。如果主机下发针对不同的逻辑地址的读取命令,则可能存在不同的延迟。

然而,根据本发明构思的示例性实施例,与第一非易失性存储器120_1镜像的第二非易失性存储器120_2采用与第一非易失性存储器120_1的策略不同的用于将逻辑地址指派给多个存储体140_1至140_3的策略,进而抑制了针对相同的读取请求的存储体冲突,其中第二非易失性存储器120_2中的存储体冲突少于第一非易失性存储器120_1的存储体冲突。

因此,响应于来自于主机的读取请求,控制器110可以返回从第一非易失性存储器120_1读取的数据或从第二非易失性存储器120_2读取的数据(以较早接收到的为准)。换句话说,控制器110可以向主机提供从第一非易失性存储器120_1接收的数据或从第二非易失性存储器120_2接收的数据(以具有较少存储体冲突的为准)。

除了上述的存储体冲突之外,还可以基于其他因素来确定第一非易失性存储器120_1和第二非易失性存储器120_2关于来自于主机的读取请求的延迟。在根据本发明构思的示例性实施例的存储设备中,假设对读取请求的处理由于先前处理的擦除或编程请求而延迟。

图8是用于示出根据本发明构思的示例性实施例的存储设备的操作的时序图。

参考图8,示出了存在针对第一非易失性存储器120_1的第零存储体130_0和第二非易失性存储器120_2的第零存储体140_0的读取请求的示例。在每个读取请求之前,来自于主机的擦除或编程命令被发送到存储设备100,并且存储设备100可以对该擦除或编程命令进行处理。

例如,假设在第二时间点t2,从主机接收到针对第一非易失性存储器120_1的第零存储体130_0和第二非易失性存储器120_2的第零存储体140_0的读取请求,并且在第二时间点t2,第一非易失性存储器120_1和第二非易失性存储器120_2正在处理来自于主机的针对第零存储体130_0和140_0的擦除命令。

如上所述,由于第一非易失性存储器120_1不能同时处理针对相同的存储体的不同命令,因此第一非易失性存储器120_1直到针对第零存储体的擦除命令完成,才能处理读取命令。同样地,由于第二非易失性存储器120_2不能同时处理针对相同的存储体的不同命令,因此第二非易失性存储器120_2直到针对第零存储体的擦除命令完成,才能处理读取命令。

为了避免两个非易失性存储器120_1和120_2等待完成针对相同的存储体的先前的擦除/编程命令的处理的情况,第一非易失性存储器120_1和第二非易失性存储器120_2相互排他地处理擦除/编程命令。例如,当第一非易失性存储器120_1正在处理针对第零存储体的擦除命令时,第二非易失性存储器120_2不处理针对第零存储体的擦除命令。

具体地,如图8所示,第一非易失性存储器120_1在第一时间点t1开始处理擦除命令c1_0,并且在第二时间点t2完成对擦除命令c1_0的处理。第二非易失性存储器120_2在第二时间点t2开始处理擦除命令c1_1,并且在第三时间点t3完成对擦除命令c1_1的处理。下发到第一非易失性存储器120_1的擦除命令c1_0与下发到第二非易失性存储器120_2的擦除命令c1_1相同,并且包括针对相同的逻辑地址的擦除请求。

如果在第二时间点t2下发来自于主机的读取命令,则尚未完成对擦除命令c1_1的处理的第二非易失性存储器120_2无法在第二时间点t2开始对读取命令的处理。另一方面,已完成对擦除命令c1_0的处理的第一非易失性存储器120_1可以较早地开始并完成对读取命令的处理。

在下文中,将描述存储设备100的其中第一非易失性存储器120_1和第二非易失性存储器120_2相互排他地处理从主机下发的擦除/编程命令的操作。

图9是示出了根据本发明构思的示例性实施例的存储设备的操作的流程图。

参考图9,检查是否正在第一非易失性存储器120_1中处理擦除/编程命令(步骤s210)。当正在第一非易失性存储器120_1中处理擦除/编程命令时,第二非易失性存储器120_2等待而不处理擦除/编程命令(步骤s220)。如果未正在第一非易失性存储器120_1中处理擦除/编程命令或者处理已经完成,则第二非易失性存储器120_2处理擦除/编程命令(步骤s230)。

图9中描述的第一非易失性存储器120_1和第二非易失性存储器120_2的操作仅仅是说明性的。也就是说,如图9所示,第二非易失性存储器120_2可以检查第一非易失性存储器120_1是否正在处理擦除/编程命令。应理解的是,第一非易失性存储器120_1也可以检查第二非易失性存储器120_2是否正在处理擦除/编程命令。

图10a和图10b是用于示出根据本发明构思的示例性实施例的第一非易失性存储器和第二非易失性存储器之间的进程间通信(ipc)的示图。

参考图10a,第二非易失性存储器120_2可以使用ipc来检查第一非易失性存储器120_1是否正在处理擦除/编程命令。具体地,在第一nvm控制器125_1和第二nvm控制器125_2之间形成通道,使得可以经由该通道检查第一非易失性存储器120_1或第二非易失性存储器120_2是否正在处理擦除/编程命令。

例如,当第一非易失性存储器120_1正在处理擦除/编程命令时,第一nvm控制器125_1向第二nvm控制器125_2发送忙碌信号。当完成了对擦除/编程命令的处理时,第一nvm控制器125_1停止发送忙碌信号。当第一nvm控制器125_1正在发送忙碌信号时,第二nvm控制器125_2识别出第一非易失性存储器120_1正在处理擦除/编程命令并等待直到对擦除/编程命令的处理已完成为止。

同样地,当第二非易失性存储器120_2正在处理擦除/编程命令时,第二nvm控制器125_2向第一nvm控制器125_1发送忙碌信号。当第二非易失性存储器120_2完成对擦除/编程命令的处理时,第二nvm控制器125_2停止发送忙碌信号。当第二nvm控制器125_2正在发送忙碌信号时,第一nvm控制器125_1识别出第二非易失性存储器120_2正在处理擦除/编程命令并等待直到对擦除/编程命令的处理已完成为止。

可以例如在没有控制器110的情况下执行上述第一非易失性存储器120_1和第二非易失性存储器120_2之间的ipc。例如,ipc可以由控制器125_1和125_2操控。

参考图10b,在备选的实施例中,存储设备100还包括用于ipc的内部存储器150。内部存储器150存储指示第一非易失性存储器120_1或第二非易失性存储器120_2是否正在处理擦除/编程命令的忙碌标志。

例如,当第一非易失性存储器120_1正在处理擦除/编程命令时,第一nvm控制器125_1将忙碌标志设置为1。在实施例中,当完成了对擦除/编程命令的处理时,第一nvm控制器125_1将忙碌标志设置为0。在处理擦除/编程命令之前,第二nvm控制器125_2检查忙碌标志。当忙碌标志被设置为1时,第二nvm控制器125_2识别出第一非易失性存储器120_1正在处理擦除/编程命令并等待直到对擦除/编程命令的处理已完成为止。

例如,当第二非易失性存储器120_2正在处理擦除/编程命令时,第二nvm控制器125_1将忙碌标志设置为1。当完成了对擦除/编程命令的处理时,第二nvm控制器125_2将忙碌标志设置为0。在处理擦除/编程命令之前,第一nvm控制器125_1检查忙碌标志。当忙碌标志被设置为1时,第一nvm控制器125_1识别出第二非易失性存储器120_2正在处理擦除/编程命令并等待直到对擦除/编程命令的处理已完成为止。在实施例中,使用机制来防止控制器125_1和125_2同时对忙碌标志进行设置。例如,可以调整控制器125_1和125_2试图设置忙碌标志的定时,因此它们不能同时设置忙碌标志。

同样地,可以例如在没有控制器110的情况下执行使用内部存储器150的第一非易失性存储器120_1和第二非易失性存储器120_2之间的ipc。

图11是用于示出根据本发明构思的示例性实施例的第一非易失性存储器和第二非易失性存储器的操作时间同步的框图。图12a和图12b是用于示出根据本发明构思的示例性实施例的第一非易失性存储器和第二非易失性存储器之间的操作时间同步的表格。

参考图11至图12b,将描述根据本发明构思的示例性实施例的由存储设备100的第一非易失性存储器120_1或第二非易失性存储器120_2排他地处理从主机接收的擦除/编程命令的操作。

存储设备100包括同步定时器160(例如,定时器电路)。同步定时器160向第一非易失性存储器120_1和第二非易失性存储器120_2提供时间同步信号。由同步定时器160提供给第一非易失性存储器120_1和第二非易失性存储器120_2的时间同步信号可以是例如时钟信号,更具体地,可以是实时时钟(rtc)信号。

第一nvm控制器125_1从同步定时器160接收时间同步信号。第一nvm控制器125_1基于时间同步信号开始对擦除/编程命令的处理。

第二nvm控制器125_2从同步定时器160接收时间同步信号。第二nvm控制器125_2基于时间同步信号开始对擦除/编程命令的处理。

图12a描绘了示出由第一非易失性存储器120_1和第二非易失性存储器120_2处理擦除命令的开始时间点的示例的表格。数字的单位是毫秒(ms)。在从参考时间点开始经过由数字指示的时间之后,第一非易失性存储器120_1和第二非易失性存储器120_2对擦除命令进行处理。假设第一非易失性存储器120_1和第二非易失性存储器120_2需要2ms来处理擦除命令。

第一非易失性存储器120_1在从参考时间点开始经过0、4、8、12、16、……、4nms的时间之后开始对擦除命令进行处理例如,返回参考图8,第一时间点t1是参考时间点之后的0ms,并且第三时间点t3是参考时间点之后的4ms。第一非易失性存储器120_1从参考时间点开始以预定的时间间隔开始对擦除命令进行处理。

第二非易失性存储器120_2在从参考时间点开始经过2、6、10、14、18、……、(4n+2)ms的时间之后开始对擦除命令进行处理参考图8,第二时间点t2是参考时间点之后的2ms,并且第四时间点t4是参考时间点之后的6ms。也就是说,第二非易失性存储器120_2可以在从参考时间点开始经过偏移时间(例如,2ms)之后,以预定的时间间隔开始对擦除命令进行处理。

第一nvm控制器125_1基于从同步定时器160提供的时间同步信号设置参考时间点。第一nvm控制器125_1可以从参考时间点开始以预定的时间间隔向第一存储器单元130下发擦除/编程命令。

第二nvm控制器125_2基于从同步定时器160提供的时间同步信号设置参考时间点。第二nvm控制器125_2可以在从参考时间点开始经过偏移时间之后,以预定的时间间隔向第二存储器单元130下发擦除/编程命令。偏移时间可以是例如第一非易失性存储器120_1或第二非易失性存储器120_2处理擦除/编程命令所需的时间。

通过这样做,当第一非易失性存储器120_1处理擦除/编程命令时,第二非易失性存储器120_2等待而不处理擦除/编程命令。也就是说,第一非易失性存储器120_1和第二非易失性存储器120_2对擦除/编程命令的处理时间是相互排他的,而不彼此重叠。

与图12a所示出的示例不同,图12b描绘了示出第一非易失性存储器120_1和第二非易失性存储器120_2对擦除命令的处理时间彼此部分地重叠的示例的表格。

第一非易失性存储器120_1的操作与以上参考图12a描述的操作相同;因此,将省略冗余的描述。

在从参考时间点开始经过2-k、6-k、10-k、14-k、18-k、...、(4n+2)-kms(例如,k可以是诸如1的整数)的时间之后,第二非易失性存储器120_2开始对擦除命令进行处理。也就是说,第二非易失性存储器120_2处理擦除/编程命令的时间可能与第一非易失性存储器120_1处理擦除/编程命令的时间重叠kms。

换句话说,在图12b所示出的示例中,第一非易失性存储器120_1和第二非易失性存储器120_2对擦除/编程命令的处理时间部分地重叠。

在本发明构思的示例性实施例中,k值满足条件0≤k<m,这取决于用户的设置,其中m是处理擦除/编程命令所需要的时间。

图13是用于示出根据本发明构思的示例性实施例的第一非易失性存储器和第二非易失性存储器的擦除/编程操作的流程图。

参考图13,根据本发明构思的示例性实施例,即使当第一非易失性存储器120_1正在执行擦除/编程命令时,第二非易失性存储器120_2也执行擦除/编程命令。如上所述,第二非易失性存储器120_2可以检查第一非易失性存储器120_1是否正在处理擦除/编程命令,并且第一非易失性存储器120_1也可以检查第二非易失性存储器120_2是否正在处理擦除/编程命令。

首先,在第一非易失性存储器120_1中开始擦除/编程操作(步骤s310)。

随后,将与相同的擦除/编程操作相对应的命令提供给第二非易失性存储器120_2。第二非易失性存储器120_2检查在命令队列111中存储的命令中是否存在预设范围内的针对第二非易失性存储器120_2的读取命令(步骤s320)。例如,第二nvm控制器125_2可以访问命令队列111以检查是否存在预设范围内的提供给第二非易失性存储器120_2的读取命令。

如果不存在预设范围内的提供给第二非易失性存储器120_2的读取命令,则第二非易失性存储器120_2立即执行擦除/编程操作(s340)。在这种情况下,第二非易失性存储器120_2不检查第一非易失性存储器120_1是否正在执行擦除/编程操作。

如果存在预设范围内的提供给第二非易失性存储器120_2的读取命令,则根据预定规则,第二非易失性存储器120_2排他地执行擦除/编程操作(s330)。例如,预定规则对应于以上参考图9至图12b描述的规则。在实施例中,当与读取命令一起存储在命令队列111中的地址大于或等于第一地址并且小于或等于第二地址时,读取命令在预设范围内。

如前所述,第二非易失性存储器120_2检查第一非易失性存储器120_1是否正在执行擦除/编程操作,使得第一非易失性存储器120_1和第二非易失性存储器120_2可以相互排他地处理擦除/编程命令,进而减少读取命令的延迟。然而,如果在命令队列111中存储的命令中不存在预设范围内的读取命令,则不必在第一非易失性存储器120_1和第二非易失性存储器120_2之间相互排他地处理擦除/编程命令。由此,第二非易失性存储器120_2可以立即处理擦除/编程命令。

图14是用于示出根据本发明构思的示例性实施例的存储系统的框图。

参考图14,根据本发明构思的示例性实施例的存储系统包括主机10(例如,诸如计算机的主机设备)、第一存储设备200和第二存储设备300。

主机10可以生成控制第一存储设备200和第二存储设备300的读取、编程和擦除操作的请求。

第一存储设备200可以是例如包括多个非易失性存储器220_1、220_2、……、220_n的固态驱动器(ssd)。多个非易失性存储器220_1至220_n可以封装成例如单个芯片。

备选地,第一存储设备200可以是但不限于诸如以下各项的存储卡:pc卡或个人计算机存储卡国际协会(pcmcta)卡、紧凑型闪速(cf)卡、智能媒体(sm)卡或smc、记忆棒、多媒体卡(mmc、rs-mmc或微mmc)、sd卡(sd、迷你sd、微sd或sdhc)以及通用闪速存储设备(ufs)等。

第二存储设备300可以对存储在第一存储设备200中的数据进行镜像。因此,第二存储设备300可以包括与第一存储设备200的配置类似的配置。第二存储设备300可以是多个非易失性存储器320_1、320_2、……、320_n、ssd或存储卡(例如,紧凑型闪速卡、智能媒体卡、记忆棒、多媒体卡、sd卡和通用闪速存储设备等)。

主机10可以执行与包括在上述示例性实施例中的控制器110的操作类似的操作。因此,主机可以同时向彼此镜像的第一存储设备200和第二存储设备300发送读取请求,并且可以接收从第一存储设备200或第二存储设备300提供的数据(以较早的为准),而忽略较迟提供的数据。

第一存储设备200包括第一控制器210,第一控制器210用于控制多个非易失性存储器220_1至220_n。第一控制器210可以针对多个非易失性存储器220_1至220_n中的每个非易失性存储器处理从主机10接收的命令。也就是说,针对访问第一非易失性存储器220_1的两个不同的命令,第一控制器210可以在两个数据周期期间逐个地对这两个不同的命令进行处理,而不是同时对这两个不同的命令进行处理。第一控制器210可以包括地址指派映射,地址指派映射用于将从主机10接收的逻辑地址分别转换为与多个非易失性存储器220_1至220_n相对应的物理地址。

第二存储设备300包括第二控制器310,第二控制器310用于控制多个非易失性存储器320_1至320_n。第二控制器310可以针对多个非易失性存储器320_1至320_n中的每个非易失性存储器处理从主机10接收的命令。也就是说,针对访问第二非易失性存储器320_1的两个不同的命令,第二控制器310可以在两个数据周期期间逐个地对这两个不同的命令进行处理,而不是同时对这两个不同的命令进行处理。第二控制器310可以包括地址指派映射,地址指派映射用于将从主机10接收的逻辑地址分别转换为与多个非易失性存储器320_1至320_n相对应的物理地址。

本发明构思的至少一个实施例提供了对计算机的功能的改进。例如,由于存储设备100的控制器对存储设备100中的两个镜像的存储设备区别地应用地址映射规则,以防止对相同的存储体执行读取操作或减少对相同的存储体执行读取操作的情况,因此包括图1的存储设备100的计算机可以将读取命令应用于存储设备100,并且比传统计算机更快地完成那些读取命令。例如,当包括传统的存储设备的计算机提供针对相同的逻辑地址的读取命令时,读取命令的执行由于存储体冲突而延迟,这在计算机使用本发明构思的存储设备100时不会发生或者不太可能发生。此外,由于存储设备100的控制器可以防止读取操作与擦除或编程操作同时执行,因此包括存储设备100的计算机可以以较少的延迟时间处理擦除、编程和读取操作。因此,包括存储设备100的计算机可以比包括传统的存储设备的计算机更快地完成访问(例如,读取、写入、删除等)存储设备100的操作因此,包括本发明构思的存储设备100的计算机比传统计算机表现得更好。

已经参考附图描述了本发明构思的实施例,但是本领域普通技术人员应理解的是,在不改变本发明构思的技术构思或主要特征的情况下,本领域普通技术人员可以以其它特定形式来执行本发明构思。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1