由NAND闪存控制器实现的电镜像的制作方法

    专利2022-07-08  108


    本公开涉及nand闪存控制器的架构和实现,尤其涉及多分支多负载nand接口拓扑,其中多个nand闪存设备与nand控制器共享公共数据总线。



    背景技术:

    固态硬盘(ssd)的出现在一定程度上推动了现代计算系统的发展,固态硬盘(ssd)的速度和延迟性能比传统硬盘更高。与依靠磁性来存储数据的硬盘不同,固态硬盘使用nand闪存设备来实现数据存储。nand闪存设备是通过先进的工艺和组装技术制造的集成电路系列,可实现多层存储单元垂直堆叠到较小的封装中,从而实现高存储容量。

    典型的ssd由一个控制器和多个nand闪存设备组成,这些设备放置在印刷电路板(pcb)上并通过它进行连接,并且具有各种消费者或企业类应用的标准尺寸。控制器和nand闪存设备之间的接口分组为通道,现代控制器通常具有4、8或16个nand通道。为了实现更高的存储容量,ssd需要将更多的nand闪存设备集成到pcb中,从而导致多个nand设备共享一个通道。结果,对于高密度固态硬盘的设计,通常采用多负载或多点pcb拓扑。



    技术实现要素:

    无论是在m.2还是u.2封装(formfactor)的典型高容量ssd多负载pcb,通常都采用所谓的nand闪存设备的翻盖(clamshell)拓扑。在这种拓扑中,pcb一侧的nand设备可以与另一侧的nand设备完全重叠。因为nand设备的引脚可能位于nand设备的一侧,两个nand设备之一可以翻转安装和放置。翻转的nand设备的引脚顺序会与非翻转的nand设备的引脚顺序完全镜像。例如,就dq[0…7]的八位数据总线的基于零的索引而言,这意味着翻转的nand设备的dq[0]将与非翻转的nand的dq[7]对齐,翻转的nand设备的dq[1]将与非翻转的nand设备的dq[6]对齐,依此类推。

    但是,这种设置给pcb布图和信号完整性带来了挑战。例如,翻转的nand设备和非翻转的nand设备的相同dq引脚将始终相对于nand设备的中心线处于镜像对称位置。即,例如,翻转的nand设备的dq[0]和非翻转的nand设备的dq[0]将相对于nand设备的中心线位于对称位置的相对侧。翻转的nand设备的dq[1]和非翻转的nand设备的dq[1]将相对于nand设备的中心线位于对称位置的相对侧,以此类推。结果,如果按照翻盖拓扑摆放的两个nand设备共享一个通道,则相同的两个dq引脚(例如,翻转的nand设备的dq[0]和非翻转的nand设备的dq[0])沿nand设备中心线放置的多个通孔正常连接,从通孔到引脚将有两条相对较长的走线。这些走线长度通常在300-mil(密耳)至500-mil的范围内。另一方面,高速nand接口的信号完整性规范要求这些走线长度要尽可能短,最大长度应小于200-mil。具有如此长的走线长度往往会导致nand性能下降一到两个速度等级,这对于电容负载较重的高容量nand设备而言尤其是挑战。

    解决信号完整性下降问题的一种方法可能是为同一nand设备设置两组引脚图(pinmap):常规引脚图和倒转引脚图。倒转引脚图可以具有倒转的数据引脚顺序。也就是说,可以将倒转引脚图中的dq[7]数据引脚设置在常规引脚图中dq[0]数据引脚的位置,将倒转引脚图中的dq[6]数据引脚设置在常规引脚图中dq[1]数据引脚的位置,依此类推。因此,具有常规引脚图的nand设备可以与具有倒转引脚图的nand设备匹配,并且两个nand设备的数据引脚可以在pcb的两侧匹配和镜像。这将使通孔设置在引脚旁边,并且可以将一条约20-mil长的非常短的走线从通孔布线到数据引脚。该解决方案将大大提高pcb布图质量并解决上述信号完整性下降的问题,以帮助使系统达到更高的nand接口速度。倒转或镜像nand数据引脚顺序的这种技术可以称为电镜像。

    现有解决方案在设备初始化后立即使用从控制器发送到nand闪存设备的专用电镜像命令。nand设备收到此命令,然后将其自身配置为镜像模式,其中dq引脚与常规引脚图倒转。也就是说,引脚dq0现在在nand设备内部配置为dq7,dq1变为dq6,依此类推。但是,nand设备必须配置为支持此电镜像功能。

    此外,电镜像配置命令具有零容错能力。必须在初始化之后立即发送此消息。由于它是在进行任何设备训练和调试之前发送的,因此出错和故障的可能性非常高。一旦失败,因为nand设备没有任何reset机制,整个nand设备将无法访问,直到下一个电源周期。而且,任何客户端或企业系统用户都不希望重新启动电源。实际上,由于高故障率,通常避免使用这种电镜像功能。

    因此,在本领域中需要一种更加灵活和强大的电镜像技术。可以在nand闪存控制器中开发和实现新的电镜像技术。在各种实施例中,需要镜像的nand设备将其数据引脚以倒转的顺序连接到控制器的数据引脚。控制器可以使用固件来确定是否为每个单独的nand设备启用或禁用了电镜像,并可以使用固件来配置一组寄存器,该寄存器组具有与在配置过程(例如,上电初始化)中由固件设置的每个单独的nand设备相对应的位。一旦为nand设备启用了电镜像,控制器就可以在将数据发送到具有倒转数据引脚的nand设备之前倒转数据位的顺序,并且还可以将从数据引脚倒转的nand设备接收到的数据进行倒转。

    在示例性实施例中,提供了一种方法,该方法可以包括确定非易失性存储系统的系统拓扑以及哪些目标位于镜像非易失性存储设备中,并且在存储控制器中为所有镜像非易失性存储设备中的所有目标设置相应的寄存器位。

    在另一个示例性实施例中,提供了一种非易失性存储系统。该非易失性存储系统可以包括多个非易失性存储设备和存储控制器。该存储控制器可以被配置为执行电镜像配置过程,该电镜像配置过程包括:确定非易失性存储系统的系统拓扑以及哪些目标位于镜像非易失性存储设备中,并在存储控制器中为所述多个非易失性存储设备中的所有镜像非易失性存储设备中的所有目标设置相应的寄存器位。

    在又一示例性实施例中,提供了一种非暂时性机器可读介质。该非易失性机器可读介质可以具有计算机指令,该计算机指令在由硬件处理器执行时可以使硬件处理器执行确定非易失性存储系统的系统拓扑以及哪些目标位于镜像非易失性存储设备中,并且在存储控制器中为所有镜像非易失性存储设备中的所有目标设置相应的寄存器位。

    附图简要说明

    图1示意性地示出了根据本公开一个实施例中的非易失性存储系统。

    图2示意性地示出了根据本公开一个实施例中的两个非易失性存储设备的镜像配置。

    图3示意性地示出了根据本公开一个实施例中的两个非易失性存储设备的镜像配置的细节。

    图4示意性地示出了根据本公开一个实施例中的2-通道非易失性存储系统。

    图5示意性地示出了根据本公开一个实施例中的用于2-通道非易失性存储系统的读取和写入信令。

    图6是根据本公开一个实施例中的电镜像配置过程的流程图。

    图7是根据本公开一个实施例中的对镜像的nand设备写入操作的过程的流程图。

    图8是根据本公开一个实施例中的从镜像的nand设备读取操作的过程的流程图。

    具体实施方式

    现在将参考附图详细描述根据本申请的具体实施例。为了一致性,各个图中的相同元件由相同的附图标记表示。

    本公开提供了通过存储控制器进行电镜像的系统和方法。在各种实施例中,诸如ssd之类的非易失性存储系统中的非易失性存储设备可以使其数据引脚以倒转的顺序连接到存储控制器的数据引脚。控制器可以让固件确定是否为每个单独的非易失性存储设备启用了或禁用了电镜像,并利用与固件将在配置过程中设置的每个单独的非易失性存储设备相对应的位来实现一组寄存器(例如,开机初始化)。一旦为非易失性存储设备启用了电镜像,控制器就可以倒转数据位的顺序,然后再使用倒转的数据引脚将其发送到非易失性存储设备,也可以倒转从具有倒转数据引脚的非易失性存储设备接收的数据位的顺序。

    如这里所使用的,非易失性存储器设备可以是计算机存储设备,其可以在断电之后保留存储的信息,并且可以在重新通电(关闭和重新打开)之后检索所存储的信息。非易失性存储设备可以包括nand闪存、nor闪存、磁阻随机存取存储器(mram)、电阻式随机存取存储器(rram)、相变随机存取存储器(pcram)、nano-ram等。nand闪存可以用作示例,以演示控制器实现的电镜像技术。然而,根据本公开的各种实施例可以利用其他类型的非易失性存储设备来实现该技术。

    图1示意性地示出了根据本公开的一个实施例的非易失性存储系统100。非易失性存储系统100可以包括非易失性存储控制器102和多个非易失性存储器(nvm)104。当非易失性存储系统100耦合到主机时,非易失性存储系统100可以向主机提供数据存储和/或对存储数据的访问。多个nvm104可以是例如nand设备。在一些实施例中,一个nand设备可以包括可以由芯片使能(ce)信号控制的一个nand目标。在一些其他实施例中,一个nand设备可以包括多个nand目标(例如,两个目标),每个nand目标可以具有其自己的ce信号。如本文所使用的,nvm存储设备中的存储目标可以是通过芯片使能信号访问的存储设备的单元,并且可以简称为目标。多个nvm104可以通过多个通道连接到非易失性存储控制器102,其中每个目标连接到一个通道,并且一个通道被多个目标共享。

    可以将多个nvm104中的至少两个nvm置于镜像配置中,其中两个nvm中的一个在pcb的一侧,而两个nvm中的另一个在pcb的相同位置但是相对的一侧。镜像配置中的两个nvm的一个的数据引脚可以以常规顺序连接到通道的数据总线,而镜像配置中的另一个nvm的数据引脚可以以倒转顺序连接到通道的数据总线。如本文所使用的,当nvm的数据引脚以倒转的顺序连接到数据总线时,nvm可以被称为以倒转的顺序连接,并且这种倒转连接的nvm也可以被称为翻转的nvm,镜像的nvm,或处于镜像模式的nvm。此外,以常规数据位顺序连接的nvm可以被称为非翻转nvm或非镜像nvm。

    非易失性存储控制器102可以包括处理器106、非易失性计算机可读存储介质108和多个寄存器110。处理器106可以是计算机处理器,例如但不限于微处理器或微控制器。在一些实施例中,多个寄存器110中的每个可以具有多个位,使得多个nvm104中的每个目标可以在多个寄存器110中具有对应的位。多个寄存器110可以被配置为指示多个nvm104中的哪个目标可以以倒转的顺序连接。在至少一个实施例中,处理器106、存储介质108和寄存器110中的一些或全部可以被集成在一个集成电路(ic)芯片中。

    在一个实施例中,可以将多个寄存器110中的每个寄存器分配给一个通道(例如,每个通道一个寄存器),并且可以将每个寄存器位分配给该通道的一个nvm设备的一个目标(例如,每个ce一个位)。在示例实现中,寄存器可以被指代为dq_mirror_en,如下面的表1所示,其中可以设置一个位(例如,设置为1)以启用对应的nand目标的电镜像模式。

    表1dq_mirror_en的寄存器定义

    在表1的示例中,寄存器可以为具有16位宽度。每个位对应一个nand目标,因此16位寄存器每个通道最多可支持16个目标。可以基于系统拓扑设置寄存器位。一旦将dq_mirror_en寄存器位设置为1,控制器102就可以被通知:相应的nand设备(例如,包含相应目标的nand设备)具有以倒转顺序连接的数据引脚,因此,控制器可能需要在发送数据之前或接收数据之后内部倒转数据位顺序。

    应当注意,该示例使用设置为一(1)的寄存器位来指示可以以倒转的顺序连接相应的nvm目标,但是在一些实施例中,可以使用设置为零(0)的寄存器位来指示。以倒转的顺序连接相应nvm目标。此外,应该注意的是,与数据总线相比,寄存器的位宽可以不同。在上面显示的示例中,数据总线可以具有8位宽度,但是寄存器可以具有16位宽度。

    在一些实施例中,可以在电镜像配置过程期间设置与多个nvm104中的倒转连接的nvm相对应的多个寄存器110的寄存器位。例如,电镜像配置过程可以是在非易失性存储系统100通电或复位时执行的非易失性存储系统100的初始化过程的一部分。在电镜像配置过程中,处理器106可以执行存储在非暂时性计算机可读存储介质108中的计算机指令(例如,固件),以确定系统拓扑并基于所确定的系统拓扑来设置寄存器位。在一些实施例中,非暂时性计算机可读存储介质108可以是通常用于存储固件的只读存储器(例如,可擦可编程只读存储器或其他合适的rom),其可以是低级软件指令,当由处理器106执行时,处理器106可以使处理器106直接访问控制器的寄存器,以配置、控制和编程控制器和系统的行为。

    在一个实施例中,处理器106可以执行存储在非暂时性计算机可读存储介质108中的计算机指令,以确定多个nvm中的哪个nvm可以以倒转的顺序连接,并在多个寄存器110中设置与以倒转的顺序连接的nvm中目标相对应的位。例如,固件可以被编程为将一侧指定为常规顺序连接侧(例如,顶侧),而另一侧指定为倒转顺序连接侧(例如,底侧),并且处理器106可以确定多个nvm104中的哪些nvm可以位于常规顺序连接侧,并且多个nvm104中的哪些nvm可以位于倒转顺序连接侧。

    在非易失性存储系统100的操作期间,非易失性存储控制器102可以被配置为在将数据发送到倒转连接的目标之前以及从倒转连接的目标接收数据之后倒转数据位顺序。在一个实施例中,处理器106可以执行软件指令以校验寄存器110以确定目标是否是倒转连接,并且如果需要的话执行数据倒转操作。如果按常规顺序连接nand目标,则可以无需任何数据倒转操作地从非易失性存储控制器102发送数据到nand目标和从nand目标接收数据。

    如果将nand目标倒转连接(例如,启用电镜像寄存器位),对于写入操作,非易失性存储控制器102可以在将数据发送到数据总线之前将数据位顺序从dq[7:0]倒转为dq[0:7]。即,非易失性存储控制器102可以针对所有数据位交换数据位dq[0]和dq[7],交换数据位dq[1]和dq[6],以此类推。nand设备可以以dq[7:0]的原始顺序接收数据。也就是说,因为nand设备的数据引脚以倒转的顺序连接到数据总线,nand设备的数据引脚dq[0]可以在倒转操作之前在非易失性存储控制器中接收dq[0]的数据位,nand设备的数据引脚dq[1]可以在倒转操作之前在非易失性存储控制器102中接收dq[1]的数据位,以此类推。

    对于用镜像的nand设备进行的读取操作,非易失性存储控制器102可以以倒转的顺序将dq[7:0]的数据接收为dq[0:7]。非易失性存储控制器102可以通过校验寄存器110中的相应寄存器位来确定接收到的数据处于倒转数据位顺序,然后执行数据位顺序倒转以按照原始顺序dq[7:0]恢复数据。

    图2示意性地示出了根据本公开的一个实施例中处于镜像配置的两个非易失性存储设备204和206。两个非易失性存储设备204和206可以分别附接到基板或基底202的相同位置但是两个相对侧。即,两个非易失性存储设备204和206可以在翻盖拓扑中彼此重叠。基板202可以是印刷电路板(pcb)或其他合适的基板。两个非易失性存储设备204和206可以是多个nvm104中的两个,并且基板202可以是非易失性存储系统100中的pcb。

    图3示意性地示出了根据本公开一个实施例中处于镜像配置的两个非易失性存储设备204和206的细节。在图3的示例中,通道的数据总线可以是8位。但是在其他实施例中,通道的数据总线可以是16位、32位或其他合适数量的位。非易失性存储设备204可以位于pcb202的顶侧上,并且具有数据引脚dq[0]302,dq[1]304,dq[2]306,dq[3]308,dq[4]310,dq[5]312,dq[6]314和dq[7]316。数据引脚dq[0]302,dq[1]304,dq[2]306,dq[3]308,dq[4]310,dq[5]312,dq[6]314和dq[7]316可以在非易失性存储设备204下方并且以虚线示出。非易失性存储设备206可以位于pcb202的底侧上,并且具有数据引脚dq[0]318,dq[1]320,dq[2]324,dq[3]326,dq[4]328,dq[5]330,dq[6]332和dq[7]334。非易失性存储设备206及其数据引脚dq[0]318,dq[1]320,dq[2]324,dq[3]326,dq[4]328,dq[5]330,dq[6]332和dq[7]334也可以用虚线示出。

    在图3的镜像配置中,非易失性存储设备204的dq[0]302可以处于非易失性存储设备206的dq[7]334的镜像位置,非易失性存储设备204的dq[1]304可以处于非易失性存储设备206的dq[6]332的镜像位置,非易失性存储设备204的dq[2]306可以处于非易失性存储设备206的dq[5]330的镜像位置,非易失性存储设备204的dq[3]308可以处于非易失性存储设备206的dq[4]328的镜像位置,非易失性存储设备204的dq[4]310可以处于非易失性存储设备206的dq[3]326的镜像位置,非易失性存储设备204的dq[5]312可以处于非易失性存储设备206的dq[2]324的镜像位置,非易失性存储设备204的dq[6]314可以处于非易失性存储设备206的dq[1]320的镜像位置,非易失性存储设备204的dq[7]316可以处于非易失性存储设备206的dq[0]318的镜像位置。如本文所使用的,镜像位置可以指pcb的相同位置但相对侧。

    如图3所示,非易失性存储设备204的dq[0]302可以通过走线340连接到通孔336,并且非易失性存储设备206的dq[7]334可以通过走线342连接到通孔336。通孔336可以连接到通道的数据总线的dq[0]的走线348。非易失性存储设备204的dq[7]316可以通过走线344连接到通孔338,并且非易失性存储设备206的dq[0]318可以通过走线346连接到通孔338。通孔338可以连接到通道的数据总线的dq[7]的走线350。因为通过通孔连接的每对数据引脚可以处于镜像位置,所以将数据引脚连接到通孔的走线(例如,走线340、342、344和346)可以很短。这可以允许高质量的pcb布图和更高速度的nand接口。数据连接可以在图3中以虚线显示,以指示它们可以被埋在pcb202内。应当注意,为简单起见,在图3中可以省略其他数据连接(例如,其他数据引脚的通孔和走线)。

    图4示意性地示出了根据本公开一个实施例中的2-通道非易失性存储系统400。2-通道非易失性存储系统400可以包括nand控制器402、第一nand设备404.1和第二nand设备404.2。第一nand设备404.1和第二nand设备404.2可以处于镜像配置。例如,第一nand设备404.1可以在pcb的顶侧上,而第二nand设备404.2可以在pcb的底侧上。2-通道非易失性存储系统400可以是非易失性存储系统100的实施例。

    第一nand设备404.1可以包括两个nand目标:nand目标406.1和nand目标406.2。第二nand设备404.2还可以包括两个nand目标:nand目标406.3和nand目标406.4。第一nand设备404.1的nand目标406.1和第二nand设备404.2的nand目标406.3可以连接到第一通道410.1。第一nand设备404.1的nand目标406.2和第二nand设备404.2的nand目标406.4可以连接到第二通道410.2。可以通过ce信号线408.1上的ce信号来选择nand目标406.1用于数据操作。可以通过ce信号线408.2上的ce信号来选择nand目标406.2用于数据操作。可以通过ce信号线408.3上的ce信号来选择nand目标406.3用于数据操作。可以通过ce信号线408.4上的ce信号来选择nand目标406.4用于数据操作。在一个实施例中,nand设备404.2可以是镜像设备。即,nand设备404.2的数据引脚可以以倒转的顺序连接到用于通道410.1和410.2的数据总线。

    应该注意的是,每个通道可以有自己的数据总线。在一些实施例中,nand存储设备可具有用于两个通道的两组数据引脚,所述两组数据引脚可彼此独立。在图4的示例中,nand存储设备可以具有两个目标,因此一个设备中的每个目标可以耦合至一个通道。在一些其他实施例中,nand存储设备可以具有两个以上的目标,并且一些目标可以共享用于数据总线的一组数据引脚。例如,如果设备具有4个目标,则每个2个目标可以共享一组用于通道的数据总线的数据引脚。如果设备有8个目标,则每个4个目标可以共享一组用于通道的数据总线的数据引脚。但是,不管nand存储设备中有多少个目标,如果nand存储设备位于需要以倒转的顺序连接nand存储设备的数据引脚的pcb的一侧,那么nand存储设备中的所有目标都可以在控制器中设置了相应的寄存器位,以指示它们被倒转连接。

    在一个实施例中,nand控制器402可以包括两个电镜像寄存器:一个用于通道410.1,另一个用于通道410.2。在用于通道410.1的电镜像寄存器中,可以在电镜像配置过程中设置与nand目标406.3相对应的位。另外,在用于通道410.2的电镜像寄存器中,可以在电镜像配置过程中设置与nand目标406.4相对应的位。对于写入和读取操作,nand控制器402可以校验电镜像寄存器以确定nand目标是否是倒转连接以及数据位顺序倒转操作是否必要。

    图5示意性地示出了根据本公开一个实施例中的用于图4的2-通道非易失性存储系统400的读取和写入信令。信号线502可以代表周期类型。信号块516可以表示对常规数据位顺序(例如,ce信号线408.1或408.2上的ce信号)的nand目标的写操作周期。信号块518可以表示对倒转的数据位顺序(例如,ce信号线408.3或408.4上的ce信号)的nand目标的写操作周期。信号块520可以表示从具有常规数据位顺序(例如,ce信号线408.1或408.2上的ce信号)的nand目标的读操作周期。信号块522可以表示从倒转的数据位顺序(例如,ce信号线408.3或408.4上的ce信号)的nand目标的读操作周期。

    信号线504可以表示nand控制器402中的数据。在块524、526、528和530中,nand控制器402中的数据全部是常规位顺序(例如,dq[7:0])。

    信号线506可以表示数据总线上的数据。在块532中,数据总线上的数据可以是常规数据位顺序,因为周期类型是常规数据位顺序nand目标的写操作周期。在块534中,数据周期上的数据可以是倒转的数据位顺序(例如,dq[0:7]),因为周期类型是镜像nand设备中的nand目标的写操作周期。在块536中,数据总线上的数据可以是常规数据位顺序,因为周期类型是常规数据位顺序nand目标的读操作周期。在块538中,数据总线上的数据可以是倒转的数据位顺序,因为周期类型是镜像nand设备中的nand目标的读操作周期。

    信号线508可以表示nand设备404.1上的数据,信号线510可以表示nand设备404.2上的数据。在块540和542中,nand设备404.1中的数据可以是常规数据位顺序。因为nand控制器402在将数据发送到镜像的nand设备之前和从镜像的nand设备接收数据之后可以倒转数据位顺序,所以在块544和546中,nand设备404.2中的数据也可以是常规数据位顺序。信号线512可以表示用于nand设备404.1的ce信号线(例如,ce信号线408.1或ce信号线408.2),并且示出可以在信号548(例如,写入到常规数据位顺序nand目标)和550(例如,从常规数据位顺序nand目标中读取)中设置(例如,下拉)ce信号。信号线514可以表示用于nand设备404.2的ce信号线(例如,ce信号线408.3或ce信号线408.4),并且示出可以在信号552(例如,写入到镜像nand设备中的nand目标)和554(例如,从镜像nand设备中的nand目标中读取)中设置(例如,下拉)ce信号。

    如图5所示,在对nand设备404.2的写操作(例如,在信号线408.3或信号线408.4上设置的ce信号)期间,nand控制器402可以在将数据发送到数据总线之前,将数据位顺序从常规数据位顺序(例如,dq[7:0])转换为倒转的数据位顺序(例如dq[0:7])。因为通过连接到数据总线的数据引脚可以再次被倒转该顺序,因此,nand设备404.2可以以常规数据位顺序接收数据。

    为了进行从nand设备404.2的读取操作(例如,在信号线408.3或信号线408.4上设置的ce信号),控制器402可以在数据总线上以倒转的顺序(例如,dq[0:7])接收数据。通过确定启用电镜像,控制器402可以执行另一数据位顺序翻转以恢复原始数据位顺序dq[7:0]。

    在对镜像设备(例如,nand设备404.2)的读取和写入操作中,nand通道数据总线上的数据可以总是具有与nand控制器402内部的数据的数据位顺序倒转的数据位顺序。nand控制器402可以通过对电镜像设备执行一轮数据倒转来管理数据位顺序。nand设备404.1可以以从dq[7:0]到dq[7:0]的匹配顺序连接到数据总线,并且对于nand设备404.1禁用电镜像。因此,对于nand设备404.1,数据总线上的数据可以始终与控制器402内部的数据具有相同的顺序。

    图6是根据本公开一个实施例中电镜像配置过程600的流程图。在框602中,可以确定非易失性存储系统的系统拓扑以及哪些目标位于镜像非易失性存储设备中。例如,在一些实施例中,nand控制器102可以被配置为确定系统拓扑以及在电镜像配置过程期间哪些目标位于非易失性存储系统100的镜像非易失性存储设备中。在一个实施例中,系统拓扑可以包括:非易失性存储系统100中有多少个非易失性存储设备,nvm104以多少个通道连接到控制器102,每个nvm104中有多少个目标,nvm104中的哪些目标属于哪个通道。

    在框604中,可以在存储控制器中为所有镜像非易失性存储设备的所有目标设置相应的寄存器位。例如,在一些实施例中,nand控制器102可以包括多个寄存器。在一个实施例中,可以为一个通道分配一个寄存器,寄存器的每一位对应于通道中的一个目标。可以设置镜像非易失性存储设备的目标的相应的寄存器位(例如,启用电镜像)。

    图7是根据本公开一个实施例中的用于对镜像nand设备的写入操作的过程700的流程图。在框702中,可以基于所设置的相应的寄存器位来确定非易失性存储系统的非易失性存储设备是倒转连接。在一个实施例中,可以设置与镜像nvm中的目标相对应的寄存器位,以指示可以倒转连接目标的数据引脚。在框704中,可以在存储控制器上倒转将存储在非易失性存储设备中的数据的数据位顺序。要存储在非易失性存储设备中的数据在存储控制器中在倒转之前可以是原始数据位顺序。在框706中,可以以倒转的数据位顺序在数据总线上发送将存储在非易失性存储设备的数据。在各种实施例中,由于目标位于镜像存储设备中,数据引脚是倒转连接,因此数据可以以其原始数据位顺序接收并存储在镜像存储设备中。

    图8是根据本公开一个实施例中的用于从镜像的nand设备读取操作的过程800的流程图。在框802中,可以在存储控制器上接收来自非易失性存储系统的非易失性存储设备的数据。在框804中,存储控制器可以基于被设置的相应寄存器位来确定非易失性存储设备是镜像非易失性存储设备。在框806中,存储控制器可以倒转所接收的数据的数据位顺序。

    可以使用软件(例如,可由计算机处理器(cpu、gpu或两者执行)执行),硬件(例如,现场可编程门阵列(fpga)或专用集成电路ic(asic)),固件或三者的任何适当组合来实现过程600、700和800中的每个过程。在一个实施例中,例如,电镜像配置过程600可以以硬件电路(例如,fpga或asic)来实现。在另一个实施例中,电镜像配置过程600可以在固件中实现并且存储在只读存储器(例如,存储器108)中,并且由执行固件的处理器106执行。此外,过程700和800可以在计算机处理器可执行指令中被编程,存储在非暂时性机器可读介质(例如,nvm104,cd,dvd等)中并且由执行可执行指令的计算机处理器(例如,微处理器或微控制器)执行。

    在示例性实施例中,提供了一种方法,该方法可以包括确定非易失性存储系统的系统拓扑以及哪些目标位于镜像非易失性存储设备中,并且在存储控制器中为所有镜像非易失性存储设备中的所有目标设置相应的寄存器位。

    在一个实施例中,所述系统拓扑可以包括所述非易失性存储系统中有多少个非易失性存储设备,所述非易失性存储设备以多少个通道连接到存储控制器,每个非易失性存储设备中有多少个目标,和所述非易失性存储设备中的哪些目标属于哪个通道。

    在一个实施例中,所述存储控制器可以包括多个寄存器,每个寄存器对应于一个通道。

    在一个实施例中,所述方法还可以包括基于所设置的相应的寄存器位确定所述非易失性存储系统的非易失性存储设备是镜像非易失性存储设备,对于将要以原始数据位顺序存储在所述非易失性存储设备中的数据,在所述存储控制器上倒转该数据的数据位顺序;将被倒转数据位顺序的数据发送到连接至所述非易失性存储设备的数据总线上,以便该数据以原始数据位顺序存储在所述非易失性存储设备中。

    在一个实施例中,所述方法还可以包括在所述存储控制器上接收来自所述非易失性存储系统的非易失性存储设备的数据,基于所设置的相应的寄存器位确定所述非易失性存储设备是镜像非易失性存储设备和在所述存储控制器上倒转所述接收的数据的数据位顺序。

    在一个实施例中,每个镜像非易失性存储设备在镜像配置中与非镜像非易失性存储设备配对,其中所述镜像非易失性存储设备的数据引脚通过通孔以倒转的顺序连接到所述非镜像非易失性存储设备的数据引脚。

    在另一个示例性实施例中,提供了一种非易失性存储系统。所述非易失性存储系统可以包括多个非易失性存储设备和存储控制器。所述存储控制器可以被配置为执行电镜像配置过程,该电镜像配置过程包括确定非易失性存储系统的系统拓扑以及哪些目标位于镜像非易失性存储设备中,和在存储控制器中为所述多个非易失性存储设备中的所有镜像非易失性存储设备中的所有目标设置相应的寄存器位。

    在一个实施例中,所述系统拓扑可以包括所述非易失性存储系统中有多少个非易失性存储设备,所述非易失性存储设备以多少个通道连接到存储控制器,哪些非易失性存储设备是镜像非易失性存储设备,和所述非易失性存储设备中的哪些目标属于哪个通道。

    在一个实施例中,所述存储控制器包括多个寄存器,每个寄存器对应于一个通道。

    在一个实施例中,所述存储控制器还可以被配置为基于所设置的相应的寄存器位确定所述多个非易失性存储设备中的非易失性存储设备是镜像非易失性存储设备,对于将要以原始数据位顺序存储在所述非易失性存储设备中的数据,在所述存储控制器上倒转该数据的数据位顺序;将被倒转数据位顺序的数据发送到连接至所述非易失性存储设备的数据总线上,以便该数据以原始数据位顺序存储在所述非易失性存储设备中。

    在一个实施例中,所述存储控制器还可以被配置为在所述存储控制器上接收来自所述多个非易失性存储设备的非易失性存储设备的数据,基于所设置的相应的寄存器位确定所述非易失性存储设备是镜像非易失性存储设备,在所述存储控制器上倒转所述接收的数据的数据位顺序。

    在一个实施例中,每个镜像非易失性存储设备在镜像配置中与非镜像非易失性存储设备配对,其中所述镜像非易失性存储设备的数据引脚通过通孔以倒转的顺序连接到所述非镜像非易失性存储设备的数据引脚。

    在一个实施例中,所述存储控制器可以包括存储固件的非易失性计算机可读存储介质以及被配置为执行所述固件以执行所述电镜像配置过程的处理器。

    在一个实施例中,所述存储控制器可以包括被配置为执行所述电镜像配置过程的硬件电路:

    在又一示例性实施例中,提供了一种非暂时性机器可读介质。非易失性机器可读介质可以具有计算机指令,该计算机指令在由硬件处理器执行时可以使硬件处理器执行确定非易失性存储系统的系统拓扑和哪些目标位于镜像非易失性存储设备中,在存储控制器中为所有镜像非易失性存储设备中的所有目标设置相应的寄存器位。

    在一个实施例中,所述系统拓扑可以包括所述非易失性存储系统中有多少个非易失性存储设备,所述非易失性存储设备以多少个通道连接到存储控制器,每个非易失性存储设备中有多少个目标,和所述非易失性存储设备中的哪些目标属于哪个通道。

    在一个实施例中,所述存储控制器可以包括多个寄存器,每个寄存器对应于一个通道。

    在一个实施例中,所述计算机指令在由所述硬件处理器执行时,还使所述硬件处理器执行:基于所设置的相应的寄存器位确定所述非易失性存储系统的非易失性存储设备是镜像非易失性存储设备,对于将要以原始数据位顺序存储在所述非易失性存储设备中的数据,在所述存储控制器上倒转该数据的数据位顺序;将被倒转数据位顺序的数据发送到连接至所述非易失性存储设备的数据总线上,以便该数据以原始数据位顺序存储在所述非易失性存储设备中。

    在一个实施例中,所述计算机指令在由所述硬件处理器执行时,还使所述硬件处理器执行:在所述存储控制器上接收来自所述非易失性存储系统的非易失性存储设备的数据,基于所设置的相应的寄存器位确定所述非易失性存储设备是镜像非易失性存储设备,和在所述存储控制器上倒转所述接收的数据的数据位顺序。

    在一个实施例中,每个镜像非易失性存储设备在镜像配置中与非镜像非易失性存储设备配对,其中所述镜像非易失性存储设备的数据引脚通过通孔以倒转的顺序连接到所述非镜像非易失性存储设备的数据引脚。

    任何公开的方法和操作可以被实现为存储在一个或多个计算机可读存储介质(例如,非暂时性计算机可读介质,例如,一个或更多个光盘介质,易失性存储组件(例如dram或sram),或非易失性存储组件(例如硬盘驱动器)上并在设备控制器(例如,asic执行的固件)上执行的计算机可执行指令(例如,本文描述的操作的软件代码)。可以将用于实现所公开的技术的任何计算机可执行指令以及在所公开的实施例的实现期间创建和使用的任何数据可以存储在一个或多个计算机可读介质(例如,非暂时性计算机可读介质)上。

    尽管本文已经公开了各个方面和实施例,但是其他方面和实施例对于本领域技术人员将是显而易见的。本文所公开的各个方面和实施例是出于说明的目的,而不是旨在进行限制,真实的范围和精神由所附权利要求书指示。


    技术特征:

    1.一种方法,包括:

    确定非易失性存储系统的系统拓扑和哪些目标位于镜像非易失性存储设备中;和

    在存储控制器中为所有镜像非易失性存储设备中的所有目标设置相应的寄存器位。

    2.根据权利要求1所述的方法,其特征在于,所述系统拓扑包括:所述非易失性存储系统中有多少个非易失性存储设备,所述非易失性存储设备以多少个通道连接到存储控制器,每个非易失性存储设备中有多少个目标,和所述非易失性存储设备中的哪些目标属于哪个通道。

    3.根据权利要求2所述的方法,其特征在于,所述存储控制器包括多个寄存器,每个寄存器对应于一个通道。

    4.根据权利要求1所述的方法,其特征在于,还包括:

    基于所设置的相应的寄存器位确定所述非易失性存储系统的非易失性存储设备是镜像非易失性存储设备;

    对于将要以原始数据位顺序存储在所述非易失性存储设备中的数据,在所述存储控制器上倒转该数据的数据位顺序;

    将被倒转数据位顺序的数据发送到连接至所述非易失性存储设备的数据总线上,以便该数据以原始数据位顺序存储在所述非易失性存储设备中。

    5.根据权利要求1所述的方法,其特征在于,还包括:

    在所述存储控制器上接收来自所述非易失性存储系统的非易失性存储设备的数据;

    基于所设置的相应的寄存器位确定所述非易失性存储设备是镜像非易失性存储设备;和

    在所述存储控制器上倒转所述接收的数据的数据位顺序。

    6.根据权利要求1所述的方法,其特征在于,每个镜像非易失性存储设备在镜像配置中与非镜像非易失性存储设备配对,其中所述镜像非易失性存储设备的数据引脚通过通孔以倒转顺序连接到所述非镜像非易失性存储设备的数据引脚。

    7.一种非易失性存储系统,其特征在于,包括:

    多个非易失性存储设备;和

    存储控制器,被配置为执行电镜像配置过程,包括:

    确定非易失性存储系统的系统拓扑和哪些目标位于镜像非易失性存储设备中;和

    在存储控制器中为所述多个非易失性存储设备中的所有镜像非易失性存储设备中的所有目标设置相应的寄存器位。

    8.根据权利要求7所述的非易失性存储系统,其特征在于,所述系统拓扑包括:所述非易失性存储系统中有多少个非易失性存储设备,所述非易失性存储设备以多少个通道连接到存储控制器,哪些非易失性存储设备是镜像非易失性存储设备,和所述非易失性存储设备中的哪些目标属于哪个通道。

    9.根据权利要求8所述的非易失性存储系统,其特征在于,所述存储控制器包括多个寄存器,每个寄存器对应于一个通道。

    10.根据权利要求7所述的非易失性存储系统,其特征在于,所述存储控制器还被配置为:

    基于所设置的相应的寄存器位确定所述多个非易失性存储设备中的非易失性存储设备是镜像非易失性存储设备;

    对于将要以原始数据位顺序存储在所述非易失性存储设备中的数据,在所述存储控制器上倒转该数据的数据位顺序;

    将被倒转数据位顺序的数据发送到连接至所述非易失性存储设备的数据总线上,以便该数据以原始数据位顺序存储在所述非易失性存储设备中。

    11.根据权利要求7所述的非易失性存储系统,其特征在于,所述存储控制器还被配置为:

    在所述存储控制器上接收来自所述多个非易失性存储设备的非易失性存储设备的数据;

    基于所设置的相应的寄存器位确定所述非易失性存储设备是镜像非易失性存储设备;和

    在所述存储控制器上倒转所述接收的数据的数据位顺序。

    12.根据权利要求7所述的非易失性存储系统,其特征在于,每个镜像非易失性存储设备在镜像配置中与非镜像非易失性存储设备配对,其中所述镜像非易失性存储设备的数据引脚通过通孔以倒转顺序连接到所述非镜像非易失性存储设备的数据引脚。

    13.根据权利要求7所述的非易失性存储系统,其特征在于,所述存储控制器包括存储固件的非易失性计算机可读存储介质以及被配置为执行所述固件以执行所述电镜像配置过程的处理器。

    14.根据权利要求7所述的非易失性存储系统,其特征在于,所述存储控制器包括被配置为执行所述电镜像配置过程的硬件电路。

    15.一种具有计算机指令的非暂时性机器可读介质,其特征在于,当所述计算机指令由硬件处理器执行时,所述计算机指令使所述硬件处理器执行如权利要求1-6中任意一项所述的步骤。

    技术总结
    提供通过非易失性存储系统中的存储控制器实现的电镜像的系统、装置和方法。在一个实施例中,非易失性存储系统可以包括多个非易失性存储设备和一个存储控制器。存储控制器可以被配置为执行电镜像配置过程,该过程包括:确定非易失性存储系统的系统拓扑和哪些目标位于镜像非易失性存储设备中;在存储控制器中为所述多个非易失性存储设备中的所有镜像非易失性存储设备中的所有目标设置相应的寄存器位。

    技术研发人员:不公告发明人
    受保护的技术使用者:英韧科技(上海)有限公司
    技术研发日:2020.11.30
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-23345.html

    最新回复(0)