用于优化功率利用的存储模块和方法与流程

文档序号:11160831阅读:299来源:国知局
用于优化功率利用的存储模块和方法与制造工艺

一些存储模块(如固态驱动器(SSD))包含可以被并行地读取或写入的多个存储器管芯(例如,在多管芯封装体中)。这些存储模块通常具有限制在任何给定时间可执行的操作数量的最大功率阈值。当实际功耗接近最大功率阈值时,为了使功率不超过极限,存储模块中的控制器可以阻止新操作(例如,通过NAND接口传送和/或写操作)。理想地,存储模块中消耗的实际功率等于最大功耗极限。然而,因为不同的操作可能消耗不同量的功率,所以以这种方式节制操作时所消耗的实际功率通常小于最大功耗,造成了低效功率利用。



技术实现要素:

本发明的实施例由权利要求书限定,并且不能将此部分的任何内容作为对那些权利要求的限制。

通过介绍的方式,以下实施例涉及用于优化功率利用的存储模块和方法。在一个实施例中,提供了一种存储模块,所述存储模块包括存储控制器以及与所述存储控制器通信的多个存储器管芯。所述存储控制器判定是否有充足的功率可用于在所述存储器管芯中的一个存储器管芯上执行操作。响应于确定没有充足的功率可用于在所述存储器管芯中的一个存储器管芯上执行所述操作,所述存储控制器判定在所述存储器管芯中的另一个存储器管芯上暂停进行中操作是否将提供充足的功率来执行所述操作。响应于确定暂停所述进行中操作将提供充足的功率来执行所述操作,所述存储控制器暂停所述进行中操作并执行所述操作。所述存储控制器可以替代地使用所述操作或进行中操作的降低功率版本,而非暂停所述进行中操作。

其他实施例是可能的,并且实施例中的每个实施例可以单独或一起组合使用。因此,现在将参照附图对各实施例进行描述。

附图说明

图1是实施例的示例性存储模块的框图。

图2A是实施例的主机的框图,其中,图1的示例性存储模块被嵌入在主机中。

图2B是图1的示例性存储模块可拆卸地连接至主机的框图,其中,存储模块和主机是可分离可拆卸的设备。

图3是图表,示出了当使用节制操作时的平均浪费功率。

图4是图表,示出了当使用实施例的用于优化功率利用的方法时的平均浪费功率。

图5是实施例的用于优化功率利用的方法的流程图。

图6是实施例的使用新操作的降低功率版本的方法的流程图。

图7是实施例的使用现有操作的降低功率版本的方法的流程图。

具体实施方式

如在以上

背景技术:
部分所述,为了避免超过存储模块的最大功率阈值而阻止新操作(例如,通过NAND接口传送和/或写入操作)通常是低效的,因为这种节制通常导致消耗的功率远远小于准许的功率。以下实施例可以用于提供一种功率管理的更高效方法。在转到这些及其他实施例之前,以下段落提供对可以与这些实施例一起使用的示例性存储模块的讨论。当然,这些仅仅是示例,并且可以使用其他合适类型的存储模块。

如图1中所展示的,一个实施例的存储模块100包括存储控制器110和包含多个存储器管芯(管芯0至管芯N)的非易失性存储器封装体120。尽管图1中仅示出了一个非易失性存储器封装体120和一个存储器接口111,但应理解的是,存储模块100可以具有多于一个非易失性存储器封装体和/或存储器接口111。存储控制器110包括用于与非易失性存储器封装体120接口连接的存储器接口(例如,NAND接口)111以及用于使存储模块100与主机控制器操作性地通信的主机接口112。如在本文中所使用的,短语“操作性地通信”可以指通过一个或多个部件直接通信或间接(有线或无线)通信,这可以或可以不在本文中示出或描述。

如图2A所示,可以将存储模块100嵌入在具有主机控制器220的主机210中。也就是说,主机210包括主机控制器220和存储模块100,从而使得主机控制器220与嵌入的存储模块100接口连接以便管理其操作。例如,储存模块100可以采用SanDisk公司的iNANDTMeSD/eMMC嵌入式闪存驱动器的形式,或更普遍地,任何类型的固态驱动器(SSD)、混合存储设备(具有硬盘驱动器和固态驱动器两者)和存储器缓存系统。主机控制器220可以使用例如eMMC主机接口或UFS接口与嵌入的存储模块100接口连接。主机210可以采用任何形式,如但不限于:移动电话、平板计算机、数字媒体播放器、游戏设备、个人数字助理(PDA)、移动(例如,笔记本电脑、膝上型计算机)个人计算机(PC)或阅读器。如图2A所示,主机210可以包括可选的其他功能模块230。例如,如果主机210是移动电话,则其他功能模块230可以包括用于拨打和接听电话的硬件和/或软件部件。作为另一个示例,如果主机210具有网络连接能力,则其他功能模块230可以包括网络接口。当然,这些仅仅是一些示例,并且可以使用其他实施方式。而且,主机210可以包括其他部件(例如,音频输出、输入输出端口等),为了简化附图,这些部件在图2A中未被示出。应注意的是,尽管主机控制器220可以控制存储模块100,但是存储模块100可以具有其自己的控制器以便控制其内部存储器操作。而且,通常主机控制器可以是能够与存储模块接口连接的任何控制器,可以是单片形式的控制器、整体控制器或独立功能模块。

如图2B所示,存储模块100可以具有允许存储模块100经由配合连接器可拆卸地连接至主机240(具有主机控制器245)的物理的和电连接器,而非作为主机中的嵌入式设备。这样,存储模块100是来自主机240的独立设备(并且未嵌入在主机中)。例如,在此示例中,存储模块100可以是手持可拆卸存储器设备(如安全数字(SD)存储器卡、微型SD存储器卡、紧凑型闪存(CF)存储器卡、通用串行总线(USB)设备(具有连接至主机的USB接口)或固态驱动器(SSD)),并且主机240是独立设备,如移动电话、平板计算机、数字媒体播放器、游戏设备、个人数字助理(PDA)、移动(例如笔记本电脑、膝上型计算机)个人计算机(PC)或阅读器。

在图2A和2B中,存储模块100经由图1所示的主机接口112与主机控制器220或主机240通信。主机接口112可以采用任何合适的形式,如但不限于eMMC主机接口、UFS接口和USB接口。存储模块110中的主机接口110将存储器管理命令从主机控制器220(图2A)或主机240(图2B)传递到存储控制器110,并且还将存储器响应从存储控制器110传递到主机控制器220(图2A)或主机240(图2B)。而且,应注意的是,当存储模块110嵌入在主机210中时,本文中所描述的由存储模块100中的存储控制器110执行的功能中的一些或全部功能可以替代地由主机控制器220执行。

返回至图1,当被使用时,存储控制器110包括中央处理单元(CPU)113、可操作用于提供加密和/或解密操作的可选硬件加密引擎114、读访问存储器(RAM)215、可以存储用于存储模块100的基本操作的固件的只读存储器(ROM)116以及可以存储用于加密/解密操作的设备特定秘钥的非易失性存储器(NVM)117。可以采用任何合适的方式来实施存储控制器110。例如,存储控制器110可以采用微处理器或处理器,以及存储例如由(微)处理器执行的计算机可读程序代码(例如,软件或固件)、逻辑门、开关、专用集成电路(ASIC)、可编程逻辑控制器以及嵌入式微控制器的计算机可读介质的形式。合适的控制器可以从SanDisk或其他供应商处获得。存储控制器110可以被配置有硬件和/或软件以便执行下文描述的以及流程图所示的各种功能。而且,示出为在存储控制器110内部的部件中的一些部件也可以存储在存储控制器110的外部,并且可以使用其他部件。例如,RAM 115(或附加RAM单元)可位于控制器管芯的外部并且被用作页面缓冲器以便从存储器封装体120中读取数据和/或将数据写入存储器封装体120。

非易失性存储器封装体120中的存储器管芯也可以采用任何合适的形式。例如,在一个实施例中,存储器管芯中的一个或多个存储器管芯采用固态(例如,闪存)存储器的形式,并且可以是一次可编程的、几次可编程的或多次可编程的。存储器管芯也可以使用单层单元(SLC)、多层单元(MLC)、三层单元(TLC)或现在已知的或后来开发的其他存储器技术。而且,存储器管芯可以是二维存储器或三维存储器。

如上所述,存储模块100需要确保消耗的实际功率小于最大功耗阈值。为此,存储模块的控制器110可以基于将在存储模块100的(多个)存储器管芯中执行的操作(例如,通过存储器接口111的数据传送、写入操作、读出操作或擦除操作)来预计总功耗。如果预计的消耗大于阈值,则可以阻止操作,使其不被执行。然而,不同的操作可能会以不均衡的方式消耗不同的功率量。例如,当在NAND接口(用于读取或写入操作)上传送数据时,这种传送在相对短的持续时间可以消耗300毫瓦(或3个功率单位)。尽管读取通常是低功率的并且在此示例中被假设为消耗0个功率单位,但是写入操作在很长的持续时间内可以消耗100毫瓦(或1个功率单位)。如图3的图表中所展示的,当存储模块(如SSD)以接近功率极限的高并行性运行时,这种功率不平衡可能导致低效功耗。

图3示出了将数据写入四管芯存储模块的功耗的示例,其中,在任何给定时间段,阈值功率极限为5个单位。在此写过程开始时,将三页数据发送至存储模块100以存储在NAND管芯0、1和2中。如图3所示,在时间1处,以3个功率单位上传送第一页数据。由于在这个时间没有发生其他操作,所以浪费了2个功率单位(即,功率极限为5个单位,但只使用了3个单位)。在时间2处,在时间1处接收的第一页数据开始被写入NAND管芯0中。写入这页数据将花费6个时间段,每时间段1个功率单位。所以,在时间2至7中写入这页数据将需要1个功率单位。类似地,在时间2处接收的这页数据将在时间3至8被写入NAND管芯1中,每时间段1个功率单位。并且,在时间3处接收的这页数据将在时间4至9被写入NAND管芯2中,每时间段1个功率单位。如图表所示,从时间1至时间7,数据传送和/或写入操作在任何给定时间段花费3至5个功率单位,使得在任何给定时间段剩余0至2个功率单位。由于接收另一页数据需要3个功率单位,所以0至2个功率单位不是足够的功率来通过存储器接口111接收附加页数据。因此,存储模块100需要等待直到时间8,此时将有足够的功率用于经由存储器接口111接收来自控制器110的新一页数据。也就是说,即使在时间2至7有剩余功率,但所述剩余功率不足以给接口供电以便或者接受待写入的新数据或者发送从存储器中读取的数据。这个问题传播遍及其他时间段。

所以,在此示例中,如果存储模块100从所述极限阈值中运行3个或更多个功率单位且NAND传送操作未决,则允许所述NAND传送操作。然而,如果小于3个功率单位可用,则阻止所述NAND传送操作直到一些进行中操作(例如,程序)结束,并且通过这种方式,释放1个功率单位以允许NAND传送操作开始。在此示例中,这样的节制操作造成以平均低于阈值极限1.2个功率单位运行存储模块100,由此浪费1.2个功率单位。

为了提供避免超过最大功率阈值的更高效方式,以下实施例可以用于优化功率利用。在一个实施例中,存储模块使用手动暂停/恢复特征来控制功耗,而非阻止新操作。此实施例利用这样的事实:当暂停程序操作时,存储器管芯(例如NAND)消耗无关紧要的功率;并且当恢复程序操作时,存储器管芯从其暂停的点恢复操作。根据此实施例,当请求一个新操作(例如,通过存储器接口111的数据传送)时,假如满足功率极限,则存储模块100可以暂停一个或多个正在进行的(例如,程序)操作直到有足够的功率来发出新操作。在新操作完成之后,可以恢复暂停的(多个)操作。

图4示出了类似图3中的图表,以便展示此实施例提供的功率节省。在图3所示的功率节制情形中,时间4剩下了2个功率单位——不足以为3个功率单位的接口传送供电。在此实施例中,暂停时间4中的NAND管芯0的写入操作(图4中标记了此操作及其他暂停操作),并且替代地使用将被花费在写入操作上的1个功率单位连同剩下的2个功率单位一起用于为3个功率单位的接口传送供电。在接口传送完成后,在时间5恢复写入操作。尽管这延长了需要完成对NAND管芯0的写入操作的时间(从图3所示的6个时间段至图4所示的7个时间段),但此实施例总体上给存储模块100提供更高效的功耗(在此示例中,平均浪费了0.6个功率单位,在图3的未优化情形上提升了1个功率单位)。由此,通过使用此实施例,存储模块100通过最大程度地利用功率可以达到更高的性能。

这种暂停/恢复技术可以采用任何合适的方式来实施,并且图5为一个合适技术的流程图500,所述合适技术可以在存储模块的控制器110的软件和/或硬件中被实施。如图5的流程图500所示,存储控制器110判定是否接收到新操作请求(动作505)。如果是,则控制器110将新操作请求添加到操作队列中(动作510)。然后,控制器110判定操作请求是否被插入到队列中或者是否有任何现有操作完成(动作520)。如果是,则控制器110选择尚未评估的最高优先级操作(动作530)并且判定是否有充足的功率来执行所述操作(动作540)。如果有充足的功率,则控制器110执行所述操作(或恢复暂停的操作)(动作550)。如果没有充足的功率,则控制器110判定所述操作是否具有比现有操作更高的优先级(动作560)。如果是,则控制器110判定:如果暂停现有更低优先级操作,是否可以执行所述操作(动作570)。如果是,则控制器110确定并暂停最低优先级操作(动作580)并且将暂停的操作插入到操作队列中(动作590)。

存在可以与这些实施例一起使用的若干种替代方案。例如,存储模块的控制器110可以替代地使用新操作的降低功率版本,而非暂停/恢复操作。例如,如果新操作是通常以触发模式200MHz运行的NAND接口传送并且消耗3个功率单位,则可能存在以触发模式100MHz运行并且仅消耗2个功率单位的降低功率NAND接口传送。如果只有2个功率单位可用,则可以使用此降低功率NAND接口触发,同时阻止“正常”3个功率单位替代。图6是此替代实施例的一个示例性实施方式的流程图600。

如图6的流程图600所示,控制器110判定是否接收到新操作请求(动作605)。如果是,则控制器110将新操作请求添加到操作队列中(动作610)。然后,控制器110判定操作请求是否被插入到队列中或者是否有任何现有操作完成(动作620)。如果是,则控制器110选择尚未评估的最高优先级操作(动作630)并且判定是否有充足的功率来执行所述操作(动作640)。如果有充足的功率,则控制器110执行所述操作(动作650)。如果没有足够的功率,则控制器110判定所述操作是否具有降低功率模式(动作660)。如果有,则控制器110判定:如果切换至降低功率版本,是否可以执行所述操作(动作670)。如果可以,则控制器110降低操作功率模式(动作680)并执行所述操作(动作650)。

在另一替代实施例中,存储模块的控制器110可以使用进行中操作的降低功率版本,而非使用新操作的降低功率版本。例如,如果进行中操作是NAND程序操作,则每个进行中操作消耗1个功率单位,可能存在仅消耗0.8个功率单位的降低功率NAND程序操作(例如,较慢的编程)。通过将10个NAND切换至此降低功率替代方案,收回2个功率单位,并且可以执行新NAND接口操作。然后,降低功率的NAND程序管芯可以切换回消耗1个功率单位的正常程序模式。图7是此替代实施例的一个示例性实施方式的流程图700。

如图7的流程图700所示,控制器110判定是否接收到新操作请求(动作705)。如果是,则控制器110将新操作请求添加到操作队列中(动作710)。然后,控制器110判定操作请求是否被插入到队列中或者是否有任何现有操作完成(动作720)。如果是,则控制器110选择尚未评估的最高优先级操作(动作730)并且判定是否有充足的功率来执行所述操作(动作740)。如果有充足的功率,则控制器110执行所述操作(或切换回全功率操作模式)(动作750)。如果没有充足的功率,则控制器110判定所述操作是否具有比现有操作更高的优先级(动作760)。如果是,则控制器110判定如果将现有更低优先级操作切换至降低功率模式,是否可以执行所述操作(动作770)。如果可以,控制器110判定应将哪个操作降低至降低功率模式(动作780)。然后,控制器110将降低的操作插入到队列中以便切换回全功率(动作790)。

最后,如上所述,可以使用任何合适类型的存储器。半导体存储器设备包括易失性存储器设备(如动态随机存取存储器(“DRAM”)或静态随机存取存储器(“SRAM”))、非易失性存储器设备(如电阻式随机存取存储器(“ReRAM”)、电可擦除可编程只读存储器(“EEPROM”)、闪存(其还可以被考虑为EEPROM的子集)、铁电随机存取存储器(“FRAM”)、和磁阻随机存取存储器(“MRAM”))、以及能够存储信息的其他半导体元件。每种类型的存储器设备可以具有不同的配置。例如,闪存设备可以被配置成NAND或NOR配置。

存储器设备可由无源和/或有源元件以任何组合来形成。通过非限制性示例的方式,无源半导体存储器元件包括ReRAM设备元件,在一些实施例中,所述元件包括如反熔丝相变材料等电阻率切换存储元件以及(可选地)如二极管等操控元件。进一步通过非限制性示例的方式,有源半导体存储器元件包括EEPROM和闪存设备元件,在一些实施例中,所述元件包括如浮栅、导电纳米颗粒、或电荷存储介电材料等包含了电荷存储区域的元件。

多个存储器元件可以被配置为使得它们串联或使得每个元件是可单独访问的。通过非限制性示例的方式,NAND配置(NAND存储器)中的闪存设备通常包含串联的存储器元件。NAND存储器阵列可以被配置为使得阵列包括多个存储器串,其中,串包括共享单个位线并作为群组被访问的多个存储器元件。可替代地,存储器元件可以被配置为使得每一个元件是可单独访问的(例如,NOR存储器阵列)。NAND和NOR存储器配置是示例性的,并且存储器元件可以以其他方式配置。

位于基板内和/或上方的半导体存储器元件可以被安排在两个或三个维度(如二维存储器结构或三维存储器结构)中。

在二维存储器结构中,半导体存储器元件被安排在单个平面或单个存储器设备级中。通常,在二维存储器结构中,存储器元件被安排在基本上平行于支撑存储器元件的基板的主要表面而延伸的平面中(例如,在x-z方向平面中)。基板可以是在其上方或在其中形成存储器元件层的晶片,或者其可以是在形成存储器元件之后附接至其上的载体基板。作为非限制性示例,基板可以包括如硅等半导体。

可以在单个存储器设备级中将存储器元件安排成有序阵列,如在多个行和/或列中。然而,可以在非规则或非正交配置中排列存储器元件。存储器元件中的每个存储器元件可以具有两个或更多个电极或接触线,如位线和字线。

三维存储器阵列被安排成使得存储器元件占据多个平面或多个存储器设备级,由此在三个维度(即,在x方向、y方向和z方向上,其中,y方向基本上垂直于并且x和z方向基本上平行于基板的主表面)中形成结构。

作为非限制性示例,三维存储器结构可以被垂直地安排成多个二维存储器设备级的堆叠。作为另一个非限制性示例,三维存储器阵列可以被安排成多个垂直列(例如,基本上垂直于基板的主表面延伸的列,即,在y方向上),每列在每列中具有多个存储器元件。可以在二维配置中(例如,在x-z平面中)安排所述列,导致存储器元件的三维安排,元件位于多个垂直堆叠的存储器平面上。存储器元件在三个维度中的其他配置也可以构成三维存储器阵列。

通过非限制性示例的方式,在三维NAND存储器阵列中,存储器元件可以被耦合在一起,以便在单个水平(例如,x-z)存储器设备级内形成NAND串。可替代地,存储器元件可以被耦合在一起,以便形成横跨多个水平存储器设备级的垂直NAND串。可以设想其他三维配置,其中,一些NAND串包含单个存储器级中的存储器元件,而其他串包含跨越多个存储器级的存储器元件。还可以在NOR配置中和在ReRAM配置中设计三维存储器阵列。

通常,在单片式三维存储器阵列中,在单个基板上方形成一个或多个存储器设备级。可选地,单片式三维存储器阵列还可以具有至少部分地位于单个基板内的一个或多个存储器层。作为非限制性示例,基板可以包括如硅等半导体。在单片式三维阵列中,构成阵列的每个存储器设备级的层通常在阵列的基础存储器设备级的层上形成。然而,单片式三维存储器阵列的邻近存储器设备级的层可以被共享或在存储器设备级之间存在中间层。

然后,再次,二维阵列可以被单独地形成并且然后被封装在一起,以便形成具有多个存储器层的非单片式存储器设备。例如,非单片式堆叠存储器可以通过在单独地基板上形成存储器级然后将存储器级堆叠在彼此顶上来构造。可以减薄基板或者可以在堆叠之前将其从存储器设备级中移除,但是因为存储器设备级最初地在单独的基板上方形成,所以所产生的存储器阵列不是单片式三位存储器阵列。此外,多个二维存储器阵列或三维存储器阵列(单片式或非单片式)可以在单独的芯片上形成然后被封装在一起,以便形成堆叠芯片存储器设备。

存储器元件的操作以及与存储器元件的通信通常需要相关联的电路。作为非限制性示例,存储器设备可以具有用于控制和驱动存储器元件完成如编程和读取等功能的电路。此相关联的电路可以位于与存储器元件相同的基板上和/或位于单独的基板上。例如,用于存储器读-写操作的控制器可以位于单独的控制器芯片上和/或位于与存储器元件相同的基板上。

本领域的技术人员将意识到,本发明不限于所描述的二维和三维示例性结构,但涵盖了如此处描述的本发明的精神和范围内的和如本领域的技术人员理解的所有相关存储器结构。

上述详细说明旨在被理解为本发明可以采用的而不是被理解为本发明的定义的选择形式的展示。仅以下权利要求、包括所有等效物意在限定所要求保护的发明的范围。最后,应注意的是,可彼此单独地或组合地使用在此描述的任何优选实施例的任何方面。

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