存储装置及其数据写入、读取、备份和恢复方法与流程

文档序号:21178506发布日期:2020-06-20 17:38阅读:191来源:国知局
存储装置及其数据写入、读取、备份和恢复方法与流程

本发明涉及存储器领域。更具体地,本发明涉及存储装置及其数据写入、读取、备份和恢复方法。



背景技术:

非易失性双列直插式存储模块(non-volatiledualin-linememorymodule,nvdimm)是一种集成动态随机访问存储器(randomaccessmemory,dram)和非易失性存储器(non-volatilememory,nvm)的存储模块。通常,当主机(host)/中央处理单元(centralprocessingunit,cpu)异常或掉电时,nvdimm会将其中dram中的数据备份到nvm中;然后,在主机重新上电时,nvm中所备份的数据会被恢复到dram中。因此,nvdimm能够在主机异常或掉电时避免数据丢失,提高了主机的可靠性。nvdimm在数据备份时由超级电容器供电,但超级电容器供电能力有限,且随服役时间和工作温度升高有较大衰减。对于nvdimm而言,数据备份的功耗和数据备份/恢复的时间是两个重要的产品性能指标,决定了超级电容器的容量、系统的可靠性和产品的成本。数据备份功耗增加势必需要提升超级电容器容量,而超级电容器容量增加会带来成本增加和可靠性降低;数据备份/恢复的时间决定了数据备份过程中的功耗及用户体验。当前,nvdimm具有不同的实现方式,其中p型nvdimm(nvdimm-p)由于将nvm配置成在正常工作时可以被主机访问,大大提升了nvm的利用率,进而能够实现超大容量。然而,nvdimm-p的数据备份和恢复机制并不明确。

图1示出了现有技术中的一种nvdimm-p的信号流向及接口示意图,其中数据缓冲器(databuffer,db)将数据(dq)信号连接到控制器(controller),控制器再驱动命令/地址(command/address,ca)信号和dq信号去访问存储器。然而,图1中示出的结构存在以下问题:数据信号经过数据缓冲器可以进行了驱动能力的增强,但是进入到控制器之后较难将经驱动增强的信号保持并传送至存储器,存储模块的可访问数量和访问速率将受限于控制器的驱动能力。

另外,虽然nvdimm-p中的非易失性存储器可以在正常工作时被读写,但是nvdimm中的非易失性存储器通常与dram相比读写速度更慢。



技术实现要素:

本发明的实施方案涉及存储装置、将数据写入到所述存储装置中的写入方法、从所述存储装置中读取数据的读取方法以及所述存储装置的数据备份方法和数据恢复方法。

根据本发明的第一方面,提供了一种存储装置,其中所述存储装置包括:

主机接口;

控制器;

数据缓冲器;

时钟驱动器;

第一存储区,用于存储具有在第一访问频率范围内的访问频率的数据;以及

第二存储区,用于存储具有在第二访问频率范围内的访问频率的数据;

其中,在所述第一访问频率范围内的访问频率高于在所述第二访问频率范围内的访问频率。

根据本发明的第二方面,提供了一种将数据写入到存储装置中的写入方法,其中所述存储装置包括第一存储区和第二存储区;

其中,所述写入方法包括:

将具有在第一访问频率范围内的访问频率的数据存储在所述第一存储区中;以及

将具有在第二访问频率范围内的访问频率的数据存储在所述第二存储区中;

其中在所述第一访问频率范围内的访问频率高于在所述第二访问频率范围内的访问频率。

根据本发明的第三方面,提供了一种将数据写入到存储装置中的写入方法,其中所述存储装置包括控制器、数据缓冲器、第一存储区和第二存储区,所述写入方法包括:

响应于接收到包含写命令的第一命令和地址信号且与所述写命令相关联的写地址在所述第二存储区上,将数据写入到所述第一存储区中;

将写入到所述第一存储区中的数据读取到所述控制器;以及

根据读取到所述控制器的数据的访问频率将数据写入到所述第二存储区的不同子存储区中。

根据本发明的第四方面,提供了一种从存储装置中读取数据的读取方法,其中所述存储装置包括第一存储区和第二存储区,所述读取方法包括将所述第二存储区中的数据经由所述第一存储区读取出。

根据本发明的第五方面,提供了一种存储装置的数据备份方法,其中所述存储装置包括控制器、第一存储区和第二存储区,所述第二存储区包括第一子存储区、第二子存储区和第三子存储区;

其中,所述数据备份方法包括:

接收待备份数据并且将所述待备份数据存储在所述第一存储区以及所述第一子存储区和所述第二子存储区中;

响应于接收到数据备份信号,将所述第一存储区中的数据读取到所述控制器,同时将所述第一子存储区和所述第二子存储区中的数据存储到所述第三子存储区;以及

将从所述第一存储区中读取到所述控制器的数据存储到所述第三子存储区中。

根据本发明的第六方面,提供了一种存储装置的数据恢复方法,其中所述存储装置包括第一存储区和第二存储区,所述第二存储区包括第一子存储区、第二子存储区和第三子存储区;

其中,所述数据恢复方法包括响应于接收到恢复数据命令,从所述第三子存储区将在数据备份期间存储的所述第一存储区中的数据恢复到所述第一存储区中。

本领域技术人员应理解,根据本发明的第二至第六方面能够实现如关于本发明的第一方面所记载的技术效果。本发明的存储装置及其数据写入、读取、备份和恢复方法能够提高系统的速率性能和可靠性以及降低数据备份时间和对电容的要求。

附图说明

将参考附图仅以实施例的方式描述本发明的其他细节、方面和实施方案。图中的元件出于简单明了的目的被例示,且所述元件不必按比例绘制。在附图中,

图1是现有技术中的一种nvdimm-p的一种nvdimm-p的信号流向及接口示意图;

图2是根据本发明的一个实施方案的nvdimm-p中的内存空间分布图。

图3是根据本发明的一个实施方案的nvdimm-p的示例性框图。

具体实施方式

虽然本发明可能有许多不同形式的实施方案,但是附图中示出了并且将在本文中详细描述一个或多个具体实施方案;应理解,本公开内容应被认为是本发明的原理的例示,而不意在将本发明限于所示出及所描述的具体实施方案。因此,可不描述本领域普通技术人员完全理解本发明的方面和特征所不需要的处理、元件和技术。

将理解,尽管可在本公开内容中使用术语“第一”、“第二”、“第三”等描述各种元件、组件、信号和/或频率,但是这些元件、组件、信号和/或频率范围不应该由这些术语限制。这些术语用于将一个元件、组件、信号或频率范围与另一个元件、组件、信号或频率范围进行区分。因此,在不脱离本发明的精神和范围的情况下,以下描述的第一元件、组件、信号或频率范围分可被称为第二元件、组件、信号或频率范围。

本公开内容中使用的术语仅出于描述特定实施例的目的,并不意图限制本发明。如本公开内容中所使用,除非上下文另外明确地指示,否则单数形式也意图包括复数形式。还将理解,当在本说明书中使用术语“包括”和“包含”时,说明存在描述的特征、整体、步骤、操作、元件和/或它们的组合,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组合。

本发明的实施方案涉及用于存储数据的存储装置及其数据写入、读取、备份和恢复方法。例如,本发明的实施方案中的存储装置可以是非易失性双列直插式存储器模块(nvdimm)装置,诸如p型nvdimm(nvdimm-p)装置。

根据本发明的第一方面,提供了一种存储装置,其中所述存储装置包括:主机接口;控制器;数据缓冲器;时钟驱动器;第一存储区,用于存储具有在第一访问频率范围内的访问频率的数据;以及第二存储区,用于存储具有在第二访问频率范围内的访问频率的数据;其中,在所述第一访问频率范围内的访问频率高于在所述第二访问频率范围内的访问频率。

根据本发明的第一方面的一个优选实施方案,其中所述第一存储区包括多个易失性存储器。

根据本发明的第一方面的一个优选实施方案,其中所述数据缓冲器为多个,分别与所述多个易失性存储器和所述主机接口的数据通道一一对应地连接。由于数据缓冲器直接与易失性存储器(诸如随机存取存储器(ram),例如,动态随机存取存储器(dram)、同步动态随机存取存储器(sdram)、静态随机存取存储器(sram)等)连接,所以主机可以通过所述数据通道和所述数据缓冲器访问所述易失性存储器,充分利用了数据缓冲器的驱动能力。因此,与通过控制器驱动易失性存储器的方案相比,本发明的实施方案的存储装置可以驱动更多易失性存储器模块,增加存储装置的存储空间,同时增加了对易失性存储器的访问速率。

根据本发明的第一方面的一个优选实施方案,其中所述数据缓冲器经由本地数据总线与所述控制器连接。

根据本发明的第一方面的一个优选实施方案,其中所述控制器与所述主机接口的命令和地址通道连接。

根据本发明的第一方面的一个优选实施方案,其中所述控制器分别经由命令和数据总线、本地命令总线与所述时钟驱动器连接。

根据本发明的第一方面的一个优选实施方案,其中所述时钟驱动器分别与所述第一存储区和所述数据缓冲器连接。

根据本发明的第一方面的一个优选实施方案,其中所述时钟驱动器经由数据缓冲器命令总线与所述数据缓冲器连接,以配置所述数据缓冲器。

根据本发明的第一方面的一个优选实施方案,其中所述第二存储区包括多个子存储区,所述第二访问频率范围包含多个子访问频率范围,所述多个子存储区分别用于存储具有在不同子访问频率范围内的访问频率的数据。

根据本发明的第一方面的一个优选实施方案,其中所述第二存储区包括第一子存储区、第二子存储区和第三子存储区;

所述第二访问频率范围包括访问频率由高到低的第一子访问频率范围、第二子访问频率范围和第三子访问频率范围;

其中,所述第一子存储区用于存储具有在所述第一子访问频率范围内的访问频率的数据,所述第二子存储区用于存储具有在所述第二子访问频率范围内的访问频率的数据,并且所述第三子存储区用于存储具有在所述第三子访问频率范围内的访问频率的数据。

根据本发明的第一方面的一个优选实施方案,其中所述第一子存储区位于所述控制器中。

根据本发明的第一方面的一个优选实施方案,其中所述第一子存储区是高速缓冲存储器,优选地,静态随机存储器。

根据本发明的第一方面的一个优选实施方案,其中所述第二子存储区是本地动态随机存取存储器。

根据本发明的第一方面的一个优选实施方案,其中所述第三子存储区是非易失性存储器。优选地,其中所述非易失性存储器是flash、相变存储器或阻变存储器。

根据本发明的第一方面的一个优选实施方案,其中所述控制器分别与所述第二子存储区和所述第三子存储区连接。

在写入数据时,主机会通过其上的驱动将数据分成频繁访问的数据(热数据)和不频繁访问的数据(冷数据),并且将“热数据”写入到易失性存储器的地址空间而将“冷数据”写入到冷数据存储区域的地址空间。如上所述,非易失性存储器相对于易失性存储器存在一些劣势。为了降低这些劣势,本发明的实施方案的存储装置将“冷数据”中具有相对较高访问频率的数据写入所述存储装置的缓冲存储器(诸如,sram、本地dram等)中,而将“冷数据”中具有相对较低访问频率的数据写入所述非易失性存储器。这样,进一步提高了所述存储装置的速率性能,避免了频繁地访问非易失性存储器。根据本发明的实施方案,根据所述存储装置中的各个缓冲存储器的可访问速度,将访问频率越高的数据存储在可访问速度越高的缓冲存储器中,使得所述存储装置的速率性能最优化。

根据本发明的第一方面的一个优选实施方案,其中具有在所述第二访问频率范围内的访问频率的数据经由所述第一存储区被存储到所述第二存储区中。

根据本发明的第一方面的一个优选实施方案,其中所述控制器被配置成:响应于接收到包含写命令的第一命令和地址信号且与所述写命令相关联的写地址在所述第二存储区上,将所述主机接口的数据通道上的数据写入到第一存储区中;将写入到所述第一存储区中的数据读取到所述控制器;根据读取到所述控制器的数据的访问频率将数据写入到所述第二存储区的不同子存储区中。

由此,在正常工作时,主机可以通过主机接口将数据写入非易失性存储器,诸如flash(例如,nandflash)、相变存储器(phase-changememory,pcm,例如x-point)或阻变存储器(rram)等,增加了存储装置的存储空间。

根据本发明的第一方面的一个优选实施方案,其中所述控制器从所述主机接口的命令和地址通道接收所述第一命令和地址信号。

根据本发明的第一方面的一个优选实施方案,其中所述第一存储区包括多个易失性存储器;所述控制器被配置成:

对所述写地址编码以使得经编码的写地址在所述第一存储区上,并且得到经编码的第一命令和地址信号;

经由所述控制器与所述时钟驱动器之间的命令和数据总线向所述时钟驱动器发送所述经编码的第一命令和地址信号;并且

所述时钟驱动器被配置成将所述经编码的第一命令和地址信号转发至所述多个易失性存储器,以将所述数据通道上的数据写入到所述多个易失性存储器的所述经编码的写地址。

根据本发明的第一方面的一个优选实施方案,其中所述数据缓冲器经由本地数据总线与所述控制器连接;

所述控制器被配置成在将所述数据通道上的数据写入到所述经编码的写地址之后,经由本地命令总线向所述时钟驱动器发送包含读取命令和所述经编码的写地址的第二命令和地址信号;并且

所述时钟驱动器被配置成,响应于接收到所述第二命令和地址信号,配置所述数据缓冲器并且将所述第二命令和地址信号转发至所述多个易失性存储器,以将所述经编码的写地址中的数据经由所述数据缓冲器和所述本地数据总线读取到所述控制器。

在本发明的实施方案中,由于所述时钟驱动器设置在所述控制器(诸如,非易失性控制器(non-volatilecontroller,nvc))后端,所述控制器直接接收主机下发的命令和地址信号,并且可以对命令和地址信号中的地址编码,使得访问非易失性存储器的地址在易失性存储器上,从而易失性存储器可以充当非易失性存储器的缓冲区。此外,通过控制器缓存的方式,平衡了易失性存储器和非易失性存储器之间的速率差,使得主机能够以较低的开销稳定地访问非易失性存储器。

根据本发明的第一方面的一个优选实施方案,其中所述第二存储区中的数据经由所述第一存储区读取出。

根据本发明的第一方面的一个优选实施方案,其中所述控制器被配置成:

响应于接收到包含内部写命令的第三命令和地址信号,并且与所述内部写命令相关联的访问地址在所述第二存储区上,从所述访问地址在数据写入阶段对应的实际存储地址中读取数据;

将读取的数据从所述控制器写入到所述第一存储区中;以及

响应于接收到包含读取命令的第四命令和地址信号且与所述读取命令相关联的读地址与所述访问地址相同,从所述第一存储区读取出所述数据。

由此,在正常工作时,主机可以通过主机接口读取出非易失性存储器中的数据。

根据本发明的第一方面的一个优选实施方案,其中所述控制器从所述主机接口的命令和地址通道接收所述第三命令和地址信号以及所述第四命令和地址信号。

根据本发明的第一方面的一个优选实施方案,其中所述第一存储区包括多个易失性存储器,所述数据缓冲器经由本地数据总线与所述控制器连接;

所述控制器被配置成经由本地命令总线向所述时钟驱动器发送第五命令和地址信号,所述第五命令和地址信号包含写命令和在所述多个易失性存储器上的写地址;

所述时钟驱动器被配置成,响应于接收到所述第五命令和地址信号,配置所述数据缓冲器并且将所述第五命令和地址信号转发至所述多个易失性存储器;并且

所述控制器还被配置成经由所述本地数据总线和所述数据缓冲器将从所述实际存储地址中读取的数据写入到所述写地址。

根据本发明的第一方面的一个优选实施方案,其中所述控制器被配置成:对所述读地址编码以使得经编码的读地址与所述写地址相同,并且得到经编码的第四命令和地址信号;以及经由所述控制器与所述时钟驱动器之间的命令和地址总线向所述时钟驱动器发送所述经编码的第四命令和地址信号;并且

所述时钟驱动器被配置成,响应于接收到所述经编码的第四命令和地址信号,配置所述数据缓冲器并且将所述经编码的第四命令和地址信号转发至所述多个易失性存储器,以经由所述数据通道读取出所述写地址中的数据。

在本发明的实施方案中,由于所述时钟驱动器设置在所述控制器后端,所述控制器直接接收主机下发的命令和地址信号,通过先将所述非易失性存储器中的数据写入到所述易失性存储器,而将所述易失性存储器作为所述非易失性存储器的缓冲区。此外,通过控制器缓存的方式,平衡了易失性存储器和非易失性存储器之间的速率差,使得主机能够以较低的开销稳定地访问非易失性存储器。

根据本发明的第一方面的一个优选实施方案,其中所述存储装置被配置成接收待备份数据并且将所述待备份数据存储在所述第一存储区以及所述第一子存储区和所述第二子存储区中;

所述控制器被配置成:

响应于接收到数据备份信号,将所述第一存储区中的数据读取到所述控制器,同时将所述第一子存储区和所述第二子存储区中的数据存储到所述第三子存储区;并且

将从所述第一存储区中读取到所述控制器的数据存储到所述非易失性存储器中。

在主机异常或掉电时,主机会将其缓存中的数据刷新到存储装置中,根据本发明的实施方案的存储装置能够在主机异常或掉电时将数据备份到非易失性存储器中。

根据本发明的第一方面的一个优选实施方案,其中所述第一存储区包括多个易失性存储器,所述数据缓冲器经由本地数据总线与所述控制器连接;

所述控制器被配置成,响应于接收到所述数据备份信号,经由本地命令总线向所述时钟驱动器发送包含备份命令和备份地址的第六命令和地址信号;

所述时钟驱动器被配置成,响应于接收到所述第六命令和地址信号,配置所述数据缓冲器并且将所述第六命令和地址信号转发至所述多个易失性存储器,以经由所述数据缓冲器和所述本地数据总线将所述多个易失性存储器中的数据读取到所述控制器。

本发明的存储装置一边读取易失性存储器中的数据,另一边同时将所述存储装置的高速缓冲存储器中的数据备份到所述非易失性存储器中,提高了数据备份速度,进而降低了对超级电容器的要求。

根据本发明的第一方面的一个优选实施方案,其中所述控制器包括处理单元并且被配置成,响应于接收到所述数据备份信号,在将所述多个易失性存储器中的数据读取到所述控制器期间依次执行以下步骤:

-将所述第一子存储区的被所述处理单元占用的空间中的数据存储到所述第二子存储区;

-将所述第一子存储区的未被所述处理单元占用的空间中的数据存储到所述第三子存储区;以及

-将所述第二子存储区中的数据存储到所述第三子存储区。

根据本发明的第一方面的一个优选实施方案,其中还包括用于连接备用电源的紧急供电接口,所述控制器被配置成,响应于接收到所述数据备份信号,将所述存储装置切换到通过所述紧急供电接口供电。可选地或替代地,所述存储装置中可以设置有备用电源,以在主机异常或掉电时供电。此外,本领域技术人员应理解,所述备用电源可以是电池、电容器(优选地,超级电容器)和/或用于电力存储的任何其它合适的机制和/或设备。

根据本发明的第一方面的一个优选实施方案,其中所述控制器被配置成,在将从所述第一存储区中读取到的数据存储到所述第三子存储区之后,执行所述存储装置的掉电。

根据本发明的第一方面的一个优选实施方案,其中所述存储装置被配置成,响应于接收到恢复数据命令,从所述第三子存储区将在数据备份期间存储的所述第一存储区中的数据恢复到所述第一存储区中。

根据本发明的第一方面的一个优选实施方案,其中所述控制器被配置成,响应于接收到所述恢复数据命令,向所述时钟驱动器发送所述恢复数据命令,同时从所述第三子存储区中读取在数据备份期间存储的所述第一存储区中的数据;

所述时钟驱动器被配置成,响应于接收到所述恢复数据命令,配置所述数据缓冲器并且将所述恢复数据命令转发至所述第一存储区;并且

所述控制器还被配置成,在所述时钟驱动器配置所述数据缓冲器并且将所述恢复数据命令转发至所述第一存储区之后,将从所述第三子存储区中读取的数据回写到所述第一存储区。

由此,本发明的存储装置可以将在主机异常或掉电时备份在非易失性存储器中的数据读取到易失性存储器中,以供主机读取使用。

根据本发明的第一方面的一个优选实施方案,其中所述控制器被配置成经由所述主机接口的系统管理总线接收所述恢复数据命令,经由本地命令总线向所述时钟驱动器发送所述恢复数据命令,并且经由本地数据总线和所述数据缓冲器将从所述第三子存储区中读取的数据回写到所述第一存储区。

根据本发明的第二方面,提供了一种将数据写入到存储装置中的写入方法,其中所述存储装置包括第一存储区和第二存储区;其中,所述写入方法包括:

将具有在第一访问频率范围内的访问频率的数据存储在所述第一存储区中;以及

将具有在第二访问频率范围内的访问频率的数据存储在所述第二存储区中;

其中,在所述第一访问频率范围内的访问频率高于在所述第二访问频率范围内的访问频率。

根据本发明的第二方面的一个优选实施方案,其中所述写入方法包括:将具有在所述第二访问频率范围内的访问频率的数据经由所述第一存储区存储到所述第二存储区中。

根据本发明的第二方面的一个优选实施方案,其中所述第一存储区包括多个易失性存储器。

根据本发明的第二方面的一个优选实施方案,其中所述第二存储区包括多个子存储区;其中,所述写入方法包括:

将所述第二访问频率范围划分为多个子访问频率范围;以及

将具有在不同子访问频率内的访问频率的数据分别存储到所述多个子存储区中相应的子存储区。

根据本发明的第二方面的一个优选实施方案,其中所述第二存储区包括第一子存储区、第二子存储区和第三子存储区;其中,所述写入方法包括:

将所述第二访问频率范围划分出访问频率由高到低的第一子访问频率范围、第二子访问频率范围和第三子访问频率范围;

将具有在所述第一子访问频率范围内的访问频率的数据存储在所述第一子存储区;

将具有在所述第二子访问频率范围内的访问频率的数据存储在所述第二子存储区;以及

将具有在所述第三子访问频率范围内的访问频率的数据存储在所述第三子存储区。

根据本发明的第二方面的一个优选实施方案,其中所述存储装置包括控制器,所述第一子存储区位于所述控制器中。

根据本发明的第二方面的一个优选实施方案,其中所述第一子存储区是高速缓冲存储器,优选地,静态随机存储器。

根据本发明的第二方面的一个优选实施方案,其中所述第二子存储区是本地动态随机存取存储器。

根据本发明的第二方面的一个优选实施方案,其中所述第三子存储区是非易失性存储器。优选地,所述非易失性存储器是flash、相变存储器或阻变存储器。

根据本发明的第三方面,提供了一种将数据写入到存储装置中的写入方法,其中所述存储装置包括控制器、数据缓冲器、第一存储区和第二存储区,所述写入方法包括:

响应于接收到包含写命令的第一命令和地址信号且与所述写命令相关联的写地址在所述第二存储区上,将数据写入到所述第一存储区中;

将写入到所述第一存储区中的数据读取到所述控制器;以及

根据读取到所述控制器的数据的访问频率将数据写入到所述第二存储区的不同子存储区中。

根据本发明的第三方面的一个优选实施方案,其中所述第一存储区包括多个易失性存储器,所述存储装置还包括时钟驱动器,所述写入方法包括:

对所述写地址编码以使得经编码的写地址在所述多个易失性存储器上,并且得到经编码的第一命令和地址信号;

向所述时钟驱动器发送所述经编码的第一命令和地址信号;以及

将所述经编码的第一命令和地址信号转发至所述多个易失性存储器,以将所述数据写入到所述多个易失性存储器的所述经编码的写地址。

根据本发明的第三方面的一个优选实施方案,其中所述数据缓冲器与所述多个易失性存储器连接并且经由本地数据总线与所述控制器连接,所述写入方法包括:

将所述数据写入到所述经编码的写地址之后,向所述时钟驱动器发送包含读取命令和所述经编码的写地址的第二命令和地址信号;

配置所述数据缓冲器并且将所述第二命令和地址信号转发至所述多个易失性存储器;以及

将所述经编码的写地址中的数据经由所述数据缓冲器和所述本地数据总线读取到所述控制器。

根据本发明的第三方面的一个优选实施方案,其中所述写入方法包括:

将具有在第一访问频率范围内的访问频率的数据存储在所述第一存储区中;以及

将具有在第二访问频率范围内的访问频率的数据存储在所述第二存储区中;

其中,在所述第一访问频率范围内的访问频率高于在所述第二访问频率范围内的访问频率。

根据本发明的第三方面的一个优选实施方案,其中所述第二存储区包括第一子存储区、第二子存储区和第三子存储区;其中,所述写入方法包括:

将所述第二访问频率范围划分出访问频率由高到低的第一子访问频率范围、第二子访问频率范围和第三子访问频率范围;

将具有在所述第一子访问频率范围内的访问频率的数据存储在所述第一子存储区;

将具有在所述第二子访问频率范围内的访问频率的数据存储在所述第二子存储区;以及

将具有在所述第三子访问频率范围内的访问频率的数据存储在所述第三子存储区。

根据本发明的第四方面,提供了一种从存储装置中读取数据的读取方法,其中所述存储装置包括第一存储区和第二存储区,所述读取方法包括将所述第二存储区中的数据经由所述第一存储区读取出。

根据本发明的第四方面的一个优选实施方案,其中所述存储装置包括控制器,所述读取方法包括:

响应于接收到包含内部写命令的第三命令和地址信号,并且与所述内部写命令相关联的访问地址在所述第二存储区上,从所述访问地址在数据写入阶段对应的实际存储地址中读取数据;

将所述数据从所述控制器写入到所述第一存储区中;以及

响应于接收到包含读取命令的第四命令和地址信号且与所述读取命令相关联的读地址与所述访问地址相同,从所述第一存储区读取出所述数据。

根据本发明的第四方面的一个优选实施方案,其中所述储装置包括数据缓冲器,所述第一存储区包括多个易失性存储器,所述读取方法包括:

向所述时钟驱动器发送第五命令和地址信号,所述第五命令和地址信号包含写命令和在所述多个易失性存储器上的写地址;

配置所述数据缓冲器并且将所述第五命令和地址信号转发至所述多个易失性存储器;以及

将所述数据写入到所述多个易失性存储器上的写地址。

根据本发明的第四方面的一个优选实施方案,其中所述读取方法包括:

对所述读地址编码以使得经编码的读地址与所述写地址相同,并且得到经编码的第四命令和地址信号;

向所述时钟驱动器发送所述经编码的第四命令和地址信号;

配置所述数据缓冲器并且将所述经编码的第四命令和地址信号转发至所述多个易失性存储器;以及

从所述多个易失性存储器的写地址读取出所述数据。

根据本发明的第五方面,提供了一种存储装置的数据备份方法,其中所述存储装置包括控制器、第一存储区和第二存储区,所述第二存储区包括第一子存储区、第二子存储区和第三子存储区;其中,所述数据备份方法包括:

接收待备份数据并且将所述待备份数据存储在所述第一存储区以及所述第一子存储区和所述第二子存储区中;

响应于接收到数据备份信号,将所述第一存储区中的数据读取到所述控制器,同时将所述第一子存储区和所述第二子存储区中的数据存储到所述第三子存储区;以及

将从所述第一存储区中读取到所述控制器的数据存储到所述第三子存储区中。

根据本发明的第五方面的一个优选实施方案,其中所述存储装置包括时钟驱动器和数据缓冲器,所述第一存储区包括多个易失性存储器;其中,所述数据备份方法包括:

响应于接收到所述数据备份信号,向所述时钟驱动器发送包含备份命令和备份地址的第六命令和地址信号;

配置所述数据缓冲器并且将所述第六命令和地址信号转发至所述多个易失性存储器;以及

将所述多个易失性存储器中的数据读取到所述控制器。

根据本发明的第五方面的一个优选实施方案,其中所述控制器包括处理单元,所述数据备份方法包括:

在将所述多个易失性存储器中的数据读取到所述控制器期间依次执行以下步骤:

-将所述第一子存储区的被所述处理单元占用的空间中的数据存储到所述第二子存储区;

-将所述第一子存储区的未被所述处理单元占用的空间中的数据存储到所述第三子存储区;以及

-将所述第二子存储区中的数据存储到所述第三子存储区。

根据本发明的第五方面的一个优选实施方案,其中所述存储装置包括用于连接备用电源的紧急供电接口,所述备用电源优选地是超级电容器;其中,所述数据备份方法包括:响应于接收到所述数据备份信号,将所述存储装置切换到通过所述紧急供电接口供电。

根据本发明的第五方面的一个优选实施方案,其中所述数据备份方法包括:在将从所述第一存储区中读取到的数据存储到所述第三子存储区之后,执行所述存储装置的掉电。

根据本发明的第六方面,提供了一种存储装置的数据恢复方法,其中所述存储装置包括第一存储区和第二存储区,所述第二存储区包括第一子存储区、第二子存储区和第三子存储区;

其中,所述数据恢复方法包括响应于接收到恢复数据命令,从所述第三子存储区将在数据备份期间存储的所述第一存储区中的数据恢复到所述第一存储区中。

根据本发明的第六方面的一个优选实施方案,其中所述存储装置包括时钟驱动器和数据缓冲器,所述数据恢复方法包括:

向所述时钟驱动器发送所述恢复数据命令,同时从所述第三子存储区中读取在数据备份期间存储的所述第一存储区中的数据;

配置所述数据缓冲器并且将所述恢复数据命令转发至所述第一存储区;以及

将从所述第三子存储区中读取的数据回写到所述第一存储区。

根据本发明的第六方面的一个优选实施方案,其中所述存储装置包括主机接口,所述数据恢复方法包括:

经由所述主机接口的系统管理总线接收所述恢复数据命令;

经由本地命令总线向所述时钟驱动器发送所述恢复数据命令;以及

经由本地数据总线和所述数据缓冲器将从所述第三子存储区中读取的数据回写到所述第一存储区。

下面将结合附图来对本发明的实施方案进行进一步详述。

图2是根据本发明的一个实施方案的nvdimm-p中的内存空间分布图。如图2中所示,非易失性双列直插式存储模块nvdimm20的内存空间总体包括第一存储区(“热区”)21和第二存储区(“冷区”)22。

在本发明的实施方案中,“热区”指的是主机或中央处理单元频繁读写的区域(即,存储主机或中央处理单元频繁访问的数据),“冷区”指的是主机或中央处理单元不频繁读写的区域(即,存储主机或中央处理单元频不繁访问的数据)。在此,关于是否频繁读写是根据具体情形来界定的。

根据主机或中央处理单元的访问频率,所述第二存储区(“冷区”)22分为第一子存储区221、第二子存储区222……第n子存储区22n,主机或中央处理单元对这些子存储区221、222…22n各自具有不同的读写频率,即,这些子存储区存储具有不同访问频率范围的主机访问频率的数据。

图3是根据本发明的一个实施方案的nvdimm-p的示例性框图。如图3所示,该实施方案的非易失性双列直插式存储模块nvdimm300包括多个动态随机存取存储器dram301、nandflash302、本地dram303、控制器304、时钟驱动器rcd305以及多个数据缓冲器db306。控制器304与nandflash302、本地dram303连接,通过本地命令总线lcom和命令和地址总线ca2与时钟驱动器305连接,并且通过本地数据总线ldq与多个数据缓冲器306连接。时钟驱动器305与多个动态随机存取存储器301连接,并且通过数据缓冲器命令总线bcom配置数据缓冲器306。nvdimm300还包括主机接口,nvdimm300通过所述主机接口与主机或中央处理单元连接,所述主机接口包括命令和地址引脚ca1、一个save_n引脚、系统管理总线引脚smbus以及数据引脚dq。

此外,多个数据缓冲器306分别与多个动态随机存取存储器301和dq引脚一一对应地连接。与图1中的技术方案相比,在本发明的实施方案中,主机能够通过数据缓冲器306直接访问动态随机存取存储器301,而不是通过控制器访问动态随机存取存储器。这样,充分利用了数据缓冲器306的驱动能力,增加了存储模块的访问速度,同时使得存储模块能够配置更多的动态随机存取存储器301。

在本发明的实施方案中,动态随机存取存储器最终用于存储“热数据”,而非易失性存储器最终用于存储“冷数据”。在本发明中,“热数据”指的是主机或中央处理单元频繁访问的数据,“冷数据”指的是主机或中央处理单元不频繁访问的数据。如上所述,动态随机存取存储器属于“热区”,非易失性存储器属于“冷区”。在写入数据时,主机上的驱动会将“热数据”(具有在第一访问频率范围内的访问频率)和“冷数据”(具有在第二访问频率范围内的访问频率)区分开,同时所述驱动也知道存储模块上动态随机存取存储器和非易失性存储器的地址空间。应理解,在本发明中,非易失性存储器可以是flash(例如,nandflash)、相变存储器(phase-changememory,pcm,例如x-point)或阻变存储器(rram)等。

在图3的nvdimm300中,主机能够在正常工作时访问动态随机存取存储器301和“冷区”中的nandflash302,从而增加了系统的内存空间。因此,在本发明的实施方案中,nvdimm300实现了p型nvdimm(nvdimm-p)的功能。

下面结合主机向本发明的存储装置的“冷区”中写“冷数据”和从本发明存储装置的“冷区”中读“冷数据”(即,主机写“冷数据”和读“冷数据”)的过程来进一步描述图3中nvdimm300的构造。

所述主机写“冷数据”包含两个步骤:

第一步,将冷数据从“主机”写入到“动态随机存取存储器”中:

当主机上的驱动判定要存储在nvdimm300上的数据是“冷数据”时,主机通过nvdimm300的主机接口向nvdimm300发送所述“冷数据”以及写命令和冷数据的写地址(即,主机发出冷数据及其命令和地址信号)。控制器304通过命令和地址引脚ca1接收命令和地址信号,并且对所述命令和地址信号重新编码以得到经编码的命令和地址信号,其中所述经编码的命令和地址信号中的写地址(即,经编码的写地址)落在动态随机存取存储器301上。然后,控制器304通过控制器304和时钟驱动器305之间的命令和地址总线ca2向时钟驱动器305发送经编码的命令和地址信号。时钟驱动器305响应于经编码的命令和地址信号,配置数据缓冲器306并且将经编码的命令和地址信号发送给动态随机存取存储器301,以使得主机具有动态随机存取存储器301的操作控制权,由此,主机可以将所述“冷数据”从主机写入到多个动态随机存取存储器301的一个或多个中。

第二步,将冷数据从“动态随机存取存储器”写入“冷数据存储区域”(即,“冷区”22)中:

控制器304经由本地命令总线lcom向时钟驱动器305发送命令和地址信号,该命令和地址信号包含读取命令和地址(所述“冷数据”在动态随机存取存储器301中的地址),时钟驱动器305经由数据缓冲器命令总线bcom配置数据缓冲器306并且将该命令和地址信号发送给动态随机存取存储器301,以使得动态随机存取存储器301的操作控制权切换至控制器304,由此,控制器304可以将上述动态随机存取存储器301中的“冷数据”经由数据缓冲器306和本地数据总线ldq读取到控制器304中的缓存空间。

可见,动态随机存取存储器301起到缓存数据的作用。

在本发明的实施方案中,多个动态随机存取存储器301中的每一个都预留了具有固定空间大小的用于缓存冷数据的缓存区。优选地,这些缓存区的空间大小各自都大于64kb。开辟这些缓存区的空间大小时,需要考虑的因素为诸如主机访问动态随机存取存储器的速率、控制器访问动态随机存取存储器的速率以及控制器访问非易失性存储器的速率等。

在本发明的实施方案中,控制器304具有高速缓冲存储器(诸如,sram)和处理单元。这里控制器304的高速缓冲存储器即为前述控制器304中的缓存空间。

需要注意的是,在本发明的实施方案中,如果有掉电等异常发生时,“冷数据”最终是存储在存储装置的非易失性存储器(即图3所示的nandflash302)中;反之,如果没有掉电等异常发生时,“冷数据”是不需存储在存储装置的非易失性存储器中。

为了进一步提高存储模块的速率性能,避免频繁访问非易失性存储器,从而避免对非易失性存储器造成损坏,在本发明的实施方案中,控制器304会根据缓存算法将这些“冷数据”依次写入到控制器304的高速缓冲存储器、本地dram303或者nandflash302中。

所述缓存算法的总体思路是:将存储装置的冷数据存储区域划分成不同的子存储区域;将“冷数据”根据其访问频率属于不同的子访问频率范围相应地存储在不同的子存储区域中。

更具体地,第二访问频率范围包含访问频率由高到低的第一子范围、第二子范围和第三子范围;具有在第一子范围内的访问频率的“冷数据”缓存到控制器304的高速缓冲存储器(诸如,sram)中,具有在第二子范围内的访问频率的“冷数据”缓存到本地dram303中,具有在第三范围内的访问频率(即,相对最低的访问频率)的“冷数据”存储在nandflash302中。

在写入“冷数据”时,控制器304中会分配一个映射表,将主机输入的“冷数据”的写地址与“冷数据”实际的存储地址一一对应。

所述主机从“冷区”读取“冷数据”包含两个步骤:

第一步,将冷数据从“冷区”读取到“动态随机存取存储器”中:

当主机需要从“冷区”读取“冷数据”时,主机首先向nvdimm300发送内部写命令和“冷数据”的理论存储地址(即,主机发出将“冷数据”写到dram中的命令和地址信号)。该理论存储地址是从主机希望写入和读取的地址。具体地,控制器304经由命令和地址引脚ca1接收该命令和地址信号,并且根据写入阶段存储的映射表得到“冷数据”的理论存储地址对应的nandflash302、本地dram303或者控制器304的sram中的实际存储地址,从而将实际存储地址中的“冷数据”读取到控制器304。在读取出这些“冷数据”之后,控制器304经由本地命令总线lcom向时钟驱动器305发送命令和地址信号,该命令和地址信号内部写命令和动态随机存取存储器301上的地址,时钟驱动器305经由数据缓冲器命令总线bcom配置数据缓冲器306并且将该命令和地址信号发送给动态随机存取存储器301,以使得控制器304具有动态随机存取存储器301的操作控制权,由此,控制器304可以将所述“冷数据”经由本地数据总线ldq和数据缓冲器306存储到动态随机存取存储器301中。

第二步,将冷数据从“动态随机存取存储器”读取到“主机”中:

在将这些“冷数据”存储到动态随机存取存储器301后,主机会发送读取命令和“冷数据”的理论存储地址(即,读取“冷数据”的命令和地址信号)。控制器304经由命令和地址引脚ca1接收该命令和地址信号,并且对“冷数据”的理论存储地址重新编码以得到经编码的命令和地址信号,其中经编码的读取地址落在动态随机存取存储器301存储“冷数据”的地址上。然后,控制器304通过控制器304和时钟驱动器305之间的命令和地址总线ca2向时钟驱动器305发送经编码的命令和地址信号。时钟驱动器305响应于经编码的命令和地址信号,配置数据缓冲器306并且将经编码的命令和地址信号发送给动态随机存取存储器301,以使得主机具有动态随机存取存储器301的操作控制权,由此,主机可以读取出上述“冷数据”。

非易失性双列直插式存储模块能够在主机异常或掉电时将主机中的数据存储备份到存储模块中的非易失性存储器中,从而实现非易失性。在设置有非易失性双列直插式存储模块的系统中,系统上电后,主机可以获取上次是否异常掉电的信息:如果上次为正常关机,则主机正常启动;否则主机进入数据恢复状态。下面结合主机异常掉电时将数据备份到nvdimm300中以及从nvdimm300中恢复数据的过程来进一步描述图3中nvdimm300的构造。

当主机的基板管理控制器(baseboardmanagementcontroller,bmc)或功能类似的模块检测到交流电跌落时,主机adr将缓存数据刷新到动态随机存取存储器dram301或非易失性双列直插式存储模块的缓冲存储器(诸如,控制器304的sram、本地dram303等)中。然后,主机将save_n引脚拉低再拉高以通知非易失性双列直插式存储模块进行数据备份。控制器304接收到数据备份信号后,将nvdimm300切换至由其连接的超级电容器400供电。然后,控制器304经由本地命令总线lcom向时钟驱动器305发送备份dram301中的数据的命令和地址信号,该命令和地址信号包括dram301中的数据要存储到nandflash302中的地址。时钟驱动器305响应于该命令和地址信号,经由数据缓冲器命令总线bcom配置数据缓冲器306并且将该命令和地址信号发送至dram301,以使得控制器304获得dram301的控制权,由此,控制器304可以将dram301中的数据经由数据缓冲器306和本地数据总线ldq读取到控制器304中。在读取dram301中的数据同时,控制器304先将其处理单元占用的高速缓冲存储器中的数据刷新到本地dram303中,然后将控制器304的sram中的数据存储到nandflash302中,最后将本地dram303中的数据存储到nandflash302中。由于读取dram301中的数据需要一定的时间周期,所以并行备份处理单元占用的高速缓冲存储器、控制器304的sram和本地dram303中的数据缩短了整体的备份时间,从而降低了对超级电容器400的要求。

在控制器304读取到dram301中的数据之后,控制器304将所述数据存储到nandflash302中的上述地址中。随后,控制器304执行nvdimm300的掉电,即超级电容器400不再供电。

如果主机在系统上电后检测到上次为异常掉电且nvdimm300中有正确的数据备份,则主机会通过系统管理总线引脚smbus下发数据恢复命令。控制器304在接收到恢复数据命令后,经由本地命令总线lcom向时钟驱动器305发送恢复数据命令,同时从nandflash302中读取在数据备份期间存储的dram301中的数据。时钟驱动器305响应于恢复数据命令,经由数据缓冲器命令总线bcom配置数据缓冲器306并且将恢复数据命令发送至dram301,以使得控制器304具有dram301的操作控制权。由此,在从nandflash302中读取到数据之后,控制器304可以经由本地数据总线ldq和数据缓冲器306将数据回写到dram301中。随后,主机可以读取出回写到dram301中的数据。

如本领域的技术人员将明了的,许多不同的执行所述方法的方式是可能的。例如,所述步骤的顺序可以变化或一些步骤可以并行执行。此外,在步骤之间可以插入其他方法步骤。所插入的步骤可以表示诸如在本文中所描述的所述方法的改进,或可以与所述方法无关。此外,在开始下一步骤之前,一个给定的步骤可能还未完全完成。

在一个或多个实施例中,系统和/或模块和/或单元和/或电路和/或框可以整体地或部分地以硬件和/或固件提供,包括但不限于:一个或多个专用集成电路(asic)、数字信号处理器、分立电路、逻辑门、标准集成电路、状态机、查找表、控制器(例如,通过执行适当的指令,并且包括微控制器和/或嵌入式控制器)、现场可编程门阵列(fpga)、复杂可编程逻辑器件(cpld)等及其各种组合。特别地,在一个或多个实施例中,控制器、处理单元、时钟驱动器、易失性存储器、非易失性存储器、数据缓冲器、高速缓冲存储器等可以整体地或部分地被实施为所谓的专用集成电路(asic),即针对它们的特定用途所定制的集成电路(ic)。此外,在一个或多个实施例中,可以使用软件执行根据本发明的方法,该软件可能已经被下载和/或被存储在对应的存储器内,例如,易失性存储器(诸如,ram、dram、sram等)或非易失性存储器(诸如,cd-rom、闪存装置等)。替代地,设备可以整体地或部分地以可编程逻辑实施为例如现场可编程门阵列(fpga)。例如,所述电路可以被实施在cmos中,例如使用硬件描述语言(诸如verilog、vhdl等)。

虽然在上文展示和描述了多种优选实施方案,但对本领域技术人员显而易见的是,可以在不背离所附权利要求书所定义的本发明范围的前提下做出修改和变化。

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