存储器和存储域之间的数据的虚拟传输的制作方法

文档序号:18214064发布日期:2019-07-19 22:30阅读:172来源:国知局
存储器和存储域之间的数据的虚拟传输的制作方法

存储器子系统可能是实现计算系统性能潜力的重要性能瓶颈。虽然对这瓶颈的一个解决方案是主要在计算机系统中仅使用非常快的存储器,例如静态随机存取存储器,但是这种存储器的成本使得这种潜在的解决方案变得令人望而却步。为了平衡成本与系统性能,存储器子系统架构通常以分层结构组织,更快的昂贵存储器在顶部处的处理器附近运行,而更慢的更便宜的存储器在底部处作为存储存储器运行,以及具有中速和成本的存储器在中间作为系统存储器运行。

持久性存储器技术的最新发展已经开始弱化中间系统存储器层和底部存储存储器层之间的性能差异。然而,由于传统的存储器子系统架构,系统存储器和存储存储器之间的分层区别仍然存在。

附图说明

图1a示出了传统存储器子系统的框图;

图1b示出了传统存储器子系统的框图;

图2示出了根据示例实施例的存储器子系统的框图;

图3示出了根据示例实施例的域映射的非易失性存储块地址条目的数据结构;

图4示出了根据示例实施例的计算系统的框图;

图5示出了根据示例实施例的用于将数据从存储器域传输到存储域的方法流程;

图6示出了根据示例实施例的用于将数据从存储域传输到存储器域的方法流程;以及

图7示出了根据示例实施例的计算系统的框图。

具体实施方式

尽管以下详细描述包含用于说明目的的许多细节,但是本领域普通技术人员将意识到,对以下细节的许多变化和改变可以做出并且认为包括在本文中。因此,阐述以下实施例而不失一般性,并且不对所提出的任何权利要求施加限制。还应理解,本文使用的术语仅用于描述特定实施方案,而不是限制性的。除非另外定义,否则本文使用的所有技术和科学术语具有与本公开所属领域的普通技术人员通常理解的含义相同的含义。而且,出现在不同附图中的相同附图标记表示相同元件。提供流程图和过程中提供的数字是为了清楚地说明步骤和操作,而并不一定指示特定的顺序或次序。

此外,所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。在以下描述中,提供了许多具体细节,诸如布局、距离、网络示例等的示例,以提供对各种实施例的透彻理解。然而,相关领域的技术人员将认识到,这些详细的实施例不限制本文所阐述的整体概念,而仅仅是其代表。相关领域的技术人员还将认识到,可以在没有具体细节中的一个或多个的情况下或者利用其他方法、组件、布局等来实践该技术。在其他实例中,众所周知的结构、材料或操作可能没有详细示出或描述以避免模糊本公开的各方面。

在本申请中,“包括”、“包括有”、“含有”和“具有”等可以具有美国专利法中赋予它们的含义,并且可以表示“包含”、“包括”等,并且通常被解释为开放式术语。术语“由......组成”或“由......构成”是封闭术语,并且仅包括结合这些术语具体列出的组件、结构、步骤等,以及依据美国专利法的那些。“基本上由......组成”或“基本上由......构成”具有美国专利法通常赋予它们的含义。特别是,这些术语通常是封闭的术语,但允许包含不会对与其结合使用的项目的基本和新颖特征或功能产生实质性影响的其他项目、材料、组件、步骤或元素。例如,组合物中存在但不影响组合物的性质或特征的微量元素,如果在“基本上由......组成”的语言下出现,即使没有在这些术语之后的项目清单中明确列举,也是允许的。当在本书面描述中使用开放式术语时,如“包括”或“包含”,应理解也应该直接支持“基本上由......组成”语言以及“由......组成”语言,如同明确说明一样,反之亦然。

在本文中使用的术语“基本上”是指动作、特征、性质、状态、结构、项或结果的完全或接近完全的程度或水平。例如,“基本上”封闭的对象意味着该对象要么完全封闭,要么几乎完全封闭。在某些情况下,与绝对完整性的确切允许偏差程度可能取决于具体情况。然而,一般而言,完成的接近程度将具有与获得绝对完成和完全完成相同的总体结果。当在负面含义中使用时,“基本上”的使用同样适用于指代完全或几乎完全缺乏动作、特征、属性、状态、结构、项或结果。例如,“基本上不含”颗粒的组合物要么完全没有颗粒,要么几乎完全没有颗粒,这种效果与完全缺少颗粒的效果相同。换句话说,“基本上没有一种成分或元素的组合物”,只要没有可测量的效果,实际上可能仍含有此项。

如本文所用,术语“约”用于通过提供给定值可以“略高于”或“略低于”端点来为数值范围端点提供灵活性。然而,应该理解,即使在本说明书中结合特定数值使用术语“约”时,也提供了对与“约”术语不同的精确数值的支持。

如本文所使用的,为方便起见,可以在共同列表中呈现多个项目、结构元素、组成元素和/或材料。但是,这些列表应该被解释为好像列表中的每个成员都被单独标识为一个独立且独特的成员。因此,此类列表中的任何个别成员不应仅仅在没有相反的指示的情况下基于其在一个共同组中的陈述而被解释为同一列表中任何其他成员的事实上的等同物。

浓度、量和其他数值数据可以以范围格式在本文中表达或呈现。应当理解,这样的范围格式仅仅是为了方便和简洁而使用,并且因此应该灵活地解释为不仅包括明确列举为范围限制的数值,而且还包括包含在该范围内的所有单独的数值或子范围,如同每个数值和子范围被明确地叙述。作为说明,“约1至约5”的数值范围应该被解释为不仅包括约1至约5的明确列举的值,而且还包括在所指示的范围内的单个值和子范围。因此,包括在该数值范围内的是单个值,例如2、3和4以及子范围,例如从1-3、从2-4和从3-5等,以及单个值1、1.5、2、2.3、3、3.8、4、4.6、5和5.1。

同样的原理适用于仅将一个数值叙述为最小值或最大值的范围。此外,无论范围的广度或所描述的特征如何,都应该适用这种解释。

贯穿本说明书对“示例”的引用意味着结合该示例描述的特定特征、结构或特性包括在至少一个实施例中。因此,贯穿本说明书在各个地方出现的包括“示例”或“实施例”的短语不一定都指代相同的示例或实施例。

说明书和权利要求书中的术语“第一”、“第二”、“第三”、“第四”等等用于区分相似的元件,而不一定用于描述特定的顺序或时间顺序。应当理解,如此使用的术语在适当的情况下是可互换的,使得本文描述的实施例例如能够以不同于本文所示或以其他方式描述的顺序操作。类似地,如果在本文中将方法描述为包括一系列步骤,则这里给出的这些步骤的顺序不一定是可以执行这些步骤的唯一顺序,并且某些所述步骤可能被省略和/或本文未描述的某些其他步骤可能可以添加到该方法中。

在说明书和权利要求书中的术语“左”、“右”、“前”、“后”、“顶部”、“底部”、“上方”、“下方”等等用于描述性目的,并且不一定用于描述永久相对位置。应当理解,如此使用的术语在适当的情况下是可互换的,使得本文描述的实施例例如能够以除了本文所示或以其他方式描述的方位之外的其他方位操作。

如本文所使用的,诸如“增加”、“减少”、“更好”、“更差”、“更高”、“更低”、“增强”等的比较术语是指与周围或相邻区域、单个设备或多个类似设备、组或类别、多个组或类别中的其他设备、组件或活动明显不同或者与已知现有技术相比明显不同的设备、组件或活动的属性。例如,具有“增加的”损坏风险的数据区域可以指代存储器设备的这样的区域,该区域比同一存储器设备中的其他区域更可能具有写入错误。许多因素可导致这种增加的风险,包括位置、制造过程、施加到该区域的编程脉冲的数量等。

下面提供实施例的初始概述,并且然后进一步详细描述具体实施例。该初始概述旨在帮助读者更快地理解本公开,但是不旨在确定关键或基本技术特征,也不旨在限制所要求保护的主题的范围。

计算设备和系统的性能需求不断增加,并且存储器设计和利用是实现性能提升的关键因素。在典型的计算系统中,处理器对数据进行操作,所述数据通常是沿着从处理器高速缓存到系统存储器(systemmemory)到存储存储器(storagememory)的存储器层次来存储的。由于与存储存储器相比系统存储器的容量较小,因此基于优先级在系统存储器中维护数据,这导致在数据优先级改变时将数据块传送到存储器存储器和从存储器存储器传送数据块。系统存储器和存储存储器传统上需要不同类型的存储介质,因此数据块从包含系统存储器的存储器设备发送到包含存储存储器的存储设备,反之亦然。图1a中示出了这种传统系统的简化示例,其包括处理器102,例如中央处理单元(cpu)、地址转换逻辑104、系统存储器设备106和存储存储器设备108。系统存储器控制器110耦合在地址转换逻辑104和系统存储设备106之间,控制它们之间的数据移动。存储存储器控制器112耦合在地址转换逻辑104与存储存储器设备108之间,控制它们之间的数据移动。这样,当用于将数据从系统存储器设备106移动到存储存储器设备108的请求通过地址转换逻辑104从处理器102发送时,数据由系统存储器控制器110从系统存储器设备106读取并且将其发送到存储存储器控制器112,存储存储器控制器112将数据写入存储存储器设备108中的适当位置。类似地,当用于将数据从存储存储器设备108移动到系统存储器设备106的请求通过地址转换逻辑104从处理器102发送时,数据由存储存储器控制器112从存储存储器设备108读取并且将其发送到系统存储器控制器110,系统存储器控制器110将数据写入系统存储器设备106中的适当位置。

易失性存储器传统上用于系统存储器,并且非易失性存储器(nvm)传统上用于存储存储器。nvm是持久存储介质,或者换句话说,是不需要电力来维持存储在其中的数据状态的存储介质,而存储在易失性存储器中的数据在电源中断时丢失。然而,新的和不断发展的存储器技术允许nvm用于超出传统存储存储器的角色,并且成为系统存储器等角色。与传统易失性存储器相比,非易失性系统存储器(nvmsys)具有许多优点,例如高密度、大容量、低功耗和降低的制造复杂性,仅举几例。例如,字节可寻址的就地写入nvm(例如三维(3d)交叉点存储器)可以作为类似于动态随机存取存储器(dram)的字节可寻址存储器进行操作,或作为类似于nand的块可寻址存储器进行操作。换句话说,这种nvm可以作为系统存储器或非易失性存储器(nvmstor)进行操作。在nvm用作nvmsys的一些情况下,当nvmsys的电源中断时,存储的数据可能被丢弃或以其他方式变得不可读,并且因此在这种情况下在技术上不会被认为是“持久的”。

当nvm用作系统中的系统存储器和存储存储器时,系统存储器数据和存储存储器数据可以驻留在同一存储器介质上。这种配置的一个示例如图1b所示,其中系统存储器和存储存储器存储在nvm114上。然而,由于传统的计算系统架构,nvm114被分区或以其他方式划分为存储器域(memorydomain)116和存储域(storagedomain)118,从而将系统存储器数据与存储存储器数据物理地分离。由于这种分离,数据从一个域到另一个域的移动在这种传统系统中仍然通过将数据从一个位置物理地移动到另一个位置来完成,如图1a所述。例如,数据从一个物理位置到同一介质上的另一个物理位置的移动会消耗能量,降低存储器系统性能,并且不必要地增加介质的磨损,仅举几例。

传统的存储器域和存储域至少部分地通过存储每个域的单独设备之间的物理划分来建立。为了从一个域移动到另一个域,数据在设备或分区之间物理地传输,并且用于该数据的地址映射在例如地址转换逻辑104中更新。换句话说,数据的物理位置定义了数据的域,无论是存储器还是存储。

本公开提供了一种用于管理nvmsys数据和nvmstor数据的新技术,其在不改变数据的物理位置的情况下或者换句话说,在不物理地移动数据的情况下,在存储器域和存储域之间传输数据。在一个示例中,这通过维护存储器域和存储域中的每一个中的nvm块地址的映射(即,域映射)来实现,并且因此位于给定nvm块地址中的数据在该地址映射到的域中。每个nvm块地址包括相关联的域属性,其被更新以考虑域之间的该地址处的数据的“移动”。换句话说,每个nvm块地址具有相关联的域属性,该域属性表示nvm块地址包括在存储器域中有效的数据还是在存储域中有效的数据。通过将域属性切换到适当的域来将数据从一个域传输到另一个域,这样更新域映射以反映数据传输,同时将数据保留在相同的物理nvm位置。因此,例如,对于用于将数据从存储器传输到存储装置的请求,与数据的nvmsys块地址相关联的域属性从“存储器域”切换到“存储域”,域映射被更新以反映传输,而现在数据是在存储域中nvmstor有效的,而没有实际移动。

图2示出了包括nvm202的存储器设备或子系统的一般示例,nvm202包括划分为在存储器域中有效的一组nvmsys204块地址,以及在该存储域中有效的一组nvmstor206块地址的nvm块地址。出于本公开的目的,术语“nvm块地址”通常用于描述地址,而不管在其中地址是有效的域,而术语“nvmsys”和“nvmstor”用于描述就在其中地址是有效的域而言的地址。该组nvmsys204块地址的至少一部分被映射到系统地址空间,并且因此对操作系统(os)可见。nvm块地址的大小或粒度可以根据使用存储器设备或子系统的系统的架构来建立,并且因此可以具有系统兼容的任何有用的粒度。在一个示例中,每个nvm块地址是页面帧或页面帧的可寻址部分。存储器设备另外包括域映射208,域映射208可以是用于维护构成存储器域的一组nvmsys204块地址以及构成存储域的一组nvmstor206块地址的数据结构。这样,存储器域是nvm202中的nvmsys204块地址的映射,而因此nvmsys204块地址在存储器域中是有效的。类似地,存储域是nvm202中的nvmstor206块地址的映射,而因此nvmstor206块地址在存储域中是有效的。

nvm域逻辑210在功能上耦合到域映射208,域映射208保持nvm块地址到各个域的映射。在一个示例中,如上所述,每个nvm块地址与域属性相关联,该域属性将地址标识为存储器域中的nvmsys204块地址或存储域中的nvmstor206块地址。当接收到存储器请求以将数据从一个域移动到另一个域时,nvm域逻辑210将数据的nvm块地址的域属性从其当前域切换到另一个域,并且nvm域逻辑210更新域映射208以反映域之间的数据传输。虽然数据尚未物理移动,但更新域映射208以反映地址的当前域属性会改变该地址对os的可见性,从而有效地将数据移入和移出系统存储器地址空间。仅通过改变数据的nvm块地址的域属性,存储器域和存储域之间的这种数据移动可以改善数据传输延迟、降低功耗、减少nvm介质上的磨损、减少系统上的数据传输负载,等等。由于数据尚未物理移动,因此传输的数据不需要将错误校正作为数据传输的一部分来执行。对于至少一些加密数据系统,可以另外改进系统效率,因为数据放在数据总线上不作为传输的一部分,因此避免了对在传输期间加密/解密过程以保护数据的需要。此外,如果要从存储器域传输到存储域的数据已标记为已修改,或者换句话说,如果已设置数据的脏位,则作为域传输的一部分系统可以清除脏位,因为数据的存储器域“复制”已经包含修改,并且已经在存储域“复制”的物理nvm位置处。

这样,nvm域逻辑210可以包括用于管理在存储器域中有效的一组nvmsys204块地址以及在存储域中有效的一组nvmstor206块地址的域映射208的电路。例如,响应于接收到用于将数据从存储器域移动到存储域的指令,nvm域逻辑210将与数据相关联的nvmsys204块地址从存储器域中有效改变为在存储域中有效而无需实际地移动数据。响应于接收到用于将数据从存储域移动到存储器域的请求,nvm域逻辑210将与nvmstor206块地址相关联的域属性从存储域中有效改变为在存储器域中有效,而无需物理地移动数据。

图2中例示的存储器设备或子系统还包括系统存储器控制器212和存储存储器控制器214,每个均耦合到nvm202。每个控制器可以包括一个或多个控制器,并且进一步预期系统存储器控制器和存储存储器控制器功能都可以集成到单个控制器中,例如,如图4所示。注意,在至少一些示例中,这些存储器控制器不参与存储器域和存储域之间的数据移动,而是涉及对其各自域中的每个域中的数据执行的其他读/写操作。系统存储器控制器212控制对在存储器域中有效的nvmsys204数据的系统存储器操作。

系统存储器控制器212可以是对系统存储器或nvmsys执行存储器操作的任何类型的控制器。例如,由系统存储器控制器212对存储器域中的nvmsys204块地址执行用于填充来自主机的读取存储器请求的针对数据块的读取操作。类似地,存储存储器控制器214可以是对存储存储器或nvmstor执行存储器操作的任何类型的控制器。例如,由存储存储器控制器214对存储域中的nvmstor206块地址执行用于填充来自主机的读取存储器请求的针对数据块的读取操作。系统存储器和存储存储器控制器可以独立地,例如,与主处理器集成在芯片上或封装在一起,在处理器封装的非核心部分内,或在与处理器封装分开的结构或组件中,例如现场可编程门阵列(fpga)、专用集成电路(asic)、输入/输出(i/o)集线器、北桥等。

图2中的在系统存储器控制器212和nvmsys204块地址中的每个之间的实线表示存储器域有效连接,并且多个nvmsys204块地址共同表示nvm202的存储器域。系统存储器控制器212和nvmstor206块地址中的每个之间的虚线表示当前在存储器域中无效的非活动连接。类似地,图2中的存储存储器控制器214和nvmstor206块地址中的每个之间的实线表示存储域有效连接,并且多个nvmstor206块地址共同表示nvm202的存储域。存储存储器控制器214和nvmsys204块地址中的每个之间的虚线表示当前在存储域中无效的非活动连接。

nvm可以包括能够在同一存储介质上一起存储系统存储器数据和存储存储器数据的任何类型的存储器。注意,“相同的存储介质”可以包括单个公共存储器介质,作为公共存储介质操作的分布式存储器介质集,具有专用系统和/或存储存储器控制器的独立存储器介质等。因此,本范围包括存储器介质的任何架构布置、分布或设计、任何寻址方案、控制器配置和/或布置等,条件是存储器系统能够以允许改变映射以反映存储器域和存储域之间的数据移动而不物理地移动数据的方式在存储器介质中映射nvmsys和nvmstor块地址。

关于可以使用的nvm的类型,非限制性示例可以包括平面或三维(3d)nand闪存,包括单阈值或多阈值级nand闪存、nor闪存、单级或多级相变存储器(pcm),例如硫属化物玻璃pcm、平面或3dpcm、交叉点阵列存储器,包括3d交叉点存储器、基于非易失性双列直插存储器模块(nvdimm)的存储器,例如基于闪存的(nvdimm-f)存储器,基于闪存/dram的(nvdimm-n)存储器、基于持久存储器的(nvdimm-p)存储器、基于3d交叉点的nvdimm存储器、电阻ram(reram),包括金属氧化物或基于氧空位的reram,如基于hfo2、hf/hfox、ti/hfo2、tiox和taox的reram、基于细丝的reram,如基于ag/ges2-,zrte/al2o3和ag的reram、可编程金属化单元(pmc)存储器,例如导电桥接ram(cbram)、氧化硅-氮化物-氧化物-硅(sonos)存储器、铁电ram(feram)、铁电晶体管ram(fe-tram)、反铁电存储器,聚合物存储器(例如,铁电聚合物存储器)、磁阻ram(mram)、就地写入非易失性mram(nvmram)、自旋转移扭矩(stt)存储器、自旋轨道扭矩(sot)存储器、纳米线存储器、电可擦除可编程只读存储器(eeprom)、纳米管ram(nram)、其他基于忆阻器和晶闸管的存储器、基于自旋电子磁结的存储器、基于磁隧道结(mtj)的存储器、基于畴壁(dw)的存储器等,包括其组合。术语“存储器设备”可以指管芯本身和/或封装的存储器产品。nvm可以是字节或块可寻址的。在一些示例中,nvm可以符合联合电子设备工程委员会(jedec)颁布的一个或多个标准,例如jesd21-c、jesd218、jesd219、jesd220-1、jesd223b、jesd223-1或其他合适的标准(此处引用的jedec标准可从wwwjedec.org获得)。在一个特定示例中,nvm是3d交叉点存储器。在另一具体示例中,nvm是基于3d交叉点的nvdimm存储器。

图3示出了用于域映射中的nvm块地址条目的数据结构的一个非限制性示例。用于nvm中的nvm块地址的nvm块地址条目用于促进nvmsys块地址的存储器域映射和nvmstor块地址的存储域映射的创建和维护。例如,nvm中的每个nvm块地址可以与域映射中的域映射条目相关联,该域映射条目包括nvm块地址,例如nvm逻辑块地址(lba)、逻辑块偏移和域属性位(图3中的da位)。nvmlba字段保存nvm块地址所在的帧的地址,并且逻辑块偏移保持从帧地址到与nvm块地址相关联的数据的偏移。n表示条目宽度,而m表示lba大小。da位是可切换位,其将与条目相关联的nvm块地址标识为在存储器域或存储域中。在一个示例中,当da位被置位时,nvm块地址在存储器域中有效,并且当da位清零时,nvm块地址在存储域中有效。在替代示例中,当da位被置位时,nvm块地址在存储域中有效,并且当da位清零时,nvm块地址在存储器域中有效。虽然根据lba寻址描述了该示例,但是应该理解,这不是限制性的,并且其他寻址方案被认为包括在本范围内。

图4示出了包括nvm402的计算系统的一般示例,nvm402包括划分为在存储器域中有效的一组nvmsys404块地址,以及在存储域中有效的一组nvmstor406块地址的nvm块地址。该组nvmsys404块地址被映射到系统地址空间,并且因此对os可见。计算系统还包括耦合到nvm402的组合系统和存储存储器控制器412。组合系统和存储存储器控制器412可以包括一个或多个组合控制器,并且还可以预期系统存储器和存储存储器控制器功能可以在单独的控制器中实现,例如,如图2中所示。注意,在至少一些示例中,组合系统和存储存储器控制器412不参与存储器域和存储域之间的数据移动,而是涉及对每个域中的数据执行的其他读/写操作。图4中在组合系统和存储存储器控制器412以及nvmsys404和nvmstor406块地址中的每一个之间的实线表示用于每个相应域的有效连接,并且虚线表示用于每个相应域的非活动连接。

计算系统还包括通信地耦合到系统和存储存储器控制器412的处理器414,系统和存储存储器控制器412可以包括单个处理器或多个处理器,包括单核处理器和多核处理器。处理器414还可以包括任何处理器类型或配置,其非限制性示例可以包括微处理器、嵌入式处理器、中央处理单元(cpu)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、网络处理器、手持式或移动处理器、专用处理器、协处理器等。处理器414可以以多种配置封装,其非限制性示例可以包括公共处理器封装、多核处理器封装、片上系统(soc)、封装中系统(sip)、封装上系统(sop)等。

计算系统还包括存储器管理单元(mmu)416,其可以实现为处理器414的一部分,实现为单独的集成电路等。mmu416包括nvm域逻辑410,其可以生成域映射408,该域映射408是用于维护构成存储器域的该组nvmsys404块地址和构成存储域的该组nvmstor406块地址的数据结构。这样,存储器域是nvm402中的nvmsys404块地址的映射,并且因此nvmsys404块地址在存储器域中是有效的。类似地,存储域是nvm402中的nvmstor406块地址的映射,并且因此所有nvmstor406块地址在存储域中都是有效的。nvm域逻辑410可以另外维护域映射408。在一个示例中,如上所述,每个nvm块地址与域属性相关联,该域属性将地址标识为存储器域中的nvmsys204块地址或存储域中的nvmstor206块地址。由于与地址相关联的数据在系统存储器和存储存储器之间来回传送,因此用于每个nvm块地址的域属性相应地改变,并且nvm域逻辑410可以更新域映射408以反映这些域属性改变。域映射408可以驻留在任何有用的位置或结构中,这不被视为是限制性的。作为一个示例,域映射408可以至少部分地驻留在mmu416中,诸如存储器阵列、寄存器等中。在另一示例中,域映射408可以驻留在nvm402中(例如,在nvmsys中)或驻留在计算系统的其他系统存储器中。

mmu416还包括转换后备缓冲器(tlb)418,并且通信地耦合到页表420。mmu416通过将虚拟地址转换为物理地址来支持虚拟存储器。在接收到存储器请求时,mmu416将与存储器请求相关联的虚拟地址转换为关联数据的物理地址。在一些示例中,mmu416将虚拟地址空间划分为虚拟页面,虚拟地址空间是处理器414使用的地址范围,每个虚拟页面具有虚拟地址。页表420包括针对每个虚拟页面的页表条目(pte),其包括映射到物理存储器中的相对应的物理地址的虚拟地址,包括相关的偏移。在针对每个存储器请求来搜索页表420可能对系统的性能具有显著的负面影响,并且tlb418用于最小化页表查找。tlb418是存储器结构,其将来自页表420的pte子集高速缓存以加速地址转换和许可检查。换句话说,tlb418是pte子集的关联高速缓存,用于避免针对每个存储器请求查找页表420。

在接收到存储器请求时,mmu416针对相关联的虚拟到物理地址转换信息执行对tlb418的查找。如果所请求的转换信息在tlb418中,则系统可以将虚拟地址转换为物理地址,而不需要页表420查找。如果在tlb418中未找到转换信息,或者换句话说,查找返回tlb未命中,则mmu416针对相关联的转换信息来搜索页表420。在成功的页表命时,可以将地址转换信息高速缓存在tlb418中以供将来使用。在一些示例中,页表420可以驻留在nvm402中(在nvmsys中)或驻留在计算系统中的其他系统存储器中。在其他示例中,页表420的至少一部分可以驻留在mmu416中,诸如存储器阵列、寄存器等中。

nvm域逻辑410提供从域映射408到在存储器域有效的nvmsys404块地址的mmu416的存储器域映射,其用于创建和管理页表420和tlb418。当对存储器域映射进行改变时,mmu416相应地改变页表420和tlb418。这样,虽然数据没有从其在nvm402中的物理位置移动,但是从mmu416的角度来看,已经发生了数据传输。这种“虚拟传输”关于修改的数据提供了额外的好处。在使用易失性系统存储器的系统的传统情况下,当系统断电时,无论是有意还是无意的电源中断,修改的数据或“脏”数据都会丢失,除非在数据总线掉电之前将其写回存储装置。这对于无意的电源丢失尤其重要,因为系统必须使用非常有限的电力来将数据写入存储装置。这甚至是利用nvm作为系统存储器的系统的问题,因为这样的系统经常使系统存储器中的数据在系统复位时不可读。然而,在当前情况下,修改的nvmsys404数据已经位于其nvmstor406块地址处,因此无论在其中相关联的地址是有效的域如何,都存在对数据的任何修改。

在某些情况下,域映射和页表可以合并到公共表中,或者换句话说,页表中的pte可以包括nvmsys和nvmstor块地址,具有域属性位或其他域标识符来表示哪些地址当前在存储器域中。因此,可以通过翻转用于该地址的相对应的pte中的域属性位,将nvm块地址从一个域传送到另一个域。

图5示出了将数据从存储器域传输到存储域的示例性方法。该方法可以包括502在某些情况下由mmu接收用于将数据从存储器域传输到存储域的请求,504nvm域逻辑定位与域映射中的数据相关联的nvmsys块地址,并且506nvm域逻辑将nvmsys块地址的域属性位设置为在存储域中有效,该nvmsys块地址现在是nvmstor块地址。508mmu从tlb(如果存在)并且从页表中移除用于nvmsys块地址(现在是nvmstor块地址)的pte,从而有效地将数据从系统域传送到存储域而无需物理地移动数据。响应于传输,510mmu发送将数据传输到存储域的确认。

图6示出了将数据从存储域传输到存储器域的示例性方法。该方法可以包括602在某些情况下由mmu接收用于将数据从存储域传输到存储器域的请求,604nvm域逻辑定位与域映射中的数据相关联的nvmstor块地址,并且606nvm域逻辑将nvmstor块地址的域属性位设置为在存储器域中有效,该nvmstor块地址现在是nvmsys块地址。608mmu将用于nvmstor块地址(现在是nvmsys块地址)的pte添加到页表,并且在一些情况下添加到tlb,从而有效地将数据从存储域传送到系统域而无需物理地移动数据。响应于传输,610mmu发送将数据传输到存储器域的确认。

作为另一个示例,图7示出了可以结合本技术的计算系统700的一般示例。虽然设想任何类型或配置的设备或计算系统在本发明的范围内,但是非限制性示例可以包括节点计算系统、片上系统(soc)系统、封装中系统(sip)系统、封装上系统(sop)系统、服务器系统、联网系统、高容量计算系统、数据中心、膝上型计算机、平板计算机、台式计算机、智能电话等。

计算系统700可以包括与存储器704通信的一个或多个处理器702。存储器704可以包括能够存储、访问、组织和/或取回数据的任何设备、设备的组合、电路等。另外,通信接口706(例如本地通信接口)例如提供系统的各种组件之间的连接。通信接口706可以取决于系统的处理器、芯片组和存储器架构而广泛变化。例如,通信接口706可以是本地数据总线、命令/地址总线、封装接口、结构等。

计算系统还可以包括i/o(输入/输出)接口708,用于控制系统的i/o功能,以及用于到计算系统外部的设备的i/o连接。还可以包括网络接口710以用于网络连接。网络接口710可以控制系统内和系统外部的网络通信,并且可以包括有线接口、无线接口、蓝牙接口、光学接口、通信结构等,包括其适当的组合。此外,计算系统还可以包括用户界面712、显示设备714以及对这种系统有益的各种其他组件。

处理器702可以是单个处理器或多个处理器,包括单核或多个处理器核,并且存储器可以是单个存储器或多个存储器。本地通信接口706可以用作用于促进任何有用组合中的任何单个处理器或处理器核、多个处理器或处理器核、单个存储器、多个存储器、各种接口等之间的通信的路径。在一些示例中,通信接口706可以是处理器702与系统的一个或多个其他组件(例如,存储器704)之间的单独接口。存储器704可包括如本文所述的系统存储器和存储存储器,以及附加的易失性或nvm。

各种技术或其某些方面或部分可以采取体现在有形介质中的程序代码(即,指令)的形式,例如cd-rom、硬盘驱动器、非暂时性计算机可读存储介质或任何其他机器可读存储介质,其中,当程序代码被加载到诸如计算机的机器中并由其执行时,该机器成为用于实践各种技术的装置。电路可以包括硬件、固件、程序代码、可执行代码、计算机指令和/或软件。非暂时性计算机可读存储介质可以是不包括信号的计算机可读存储介质。在可编程计算机上执行程序代码的情况下,计算设备可以包括处理器、处理器可读的存储介质(包括易失性和nvm和/或存储元件)、至少一个输入设备和至少一个输出设备。易失性和非易失性存储器和/或存储元件可以是ram、eprom、闪存驱动器、光盘驱动器、磁性硬盘驱动器、固态驱动器或用于存储电子数据的其他介质。

示例

以下示例涉及特定实施例,并指出可在实现这些实施例中使用或以其他方式组合的特定特征、元件或步骤。

在一个示例中,提供了一种存储器寻址设备,包括:非易失性存储器(nvm)域逻辑,其通信地耦合到nvm以包括多个nvm块地址,所述nvm块地址包括在存储器域中有效并映射到系统存储器地址空间的一组系统存储器(nvmsys)块地址,以及在存储域中有效的一组存储存储器(nvmstor)块地址,该nvm逻辑用于:管理所述nvmsys块地址中的每个和所述nvmstor块地址中的每个的条目域映射;以及响应于用于将数据从存储器域移动到存储域的请求,将相关联的nvmsys块地址条目从在存储器域中有效改变为在存储域中有效,而不移动数据;或者响应于用于将数据从存储域移动到存储器域的请求,将相关联的nvmstor块地址条目从在存储域中有效变为在存储器域中有效,而不移动数据。

在一个示例中,存储器寻址设备还可以包括:耦合到nvm的系统存储器控制器,所述系统存储器控制器用于控制对在存储器域中有效的nvmsys数据的系统存储器操作;以及耦合到nvm的存储存储器控制器,所述存储存储器控制器用于控制对在存储域中有效的nvmstor数据的存储存储器操作。

在该设备的一个示例中,所述域映射中的每个nvm块地址条目包括域状态位,以指示在存储器域中有效的nvmsys块地址或在存储域中有效的nvmstor块地址的相关联的nvm块地址的域状态。

在设备的一个示例中,为了将数据从存储器域移动到存储域,所述nvm域逻辑还用于通过翻转域状态位来将nvmsys块地址的域状态改变为nvmstor块地址从而将与数据相关联的nvmsys块地址条目从在存储器域中有效改变为在存储域中有效。

在该设备的一个示例中,在将nvmsys块地址的域状态改变为nvmstor块地址之后,nvm域逻辑还用于将向用于移动数据的指令的发起者发送确认。

在设备的一个示例中,为了将数据从存储域移动到存储器域,所述nvm域逻辑还用于通过翻转域状态位来将nvmstor块地址的域状态改变为nvmsys块地址从而将与数据相关联的nvmstor块地址条目从在存储域中有效改变为在存储器域中有效。

在设备的一个示例中,在将nvmstor块地址的域状态改变为nvmsys块地址之后,nvm域逻辑还用于向用于移动数据的指令的发起者发送确认。

在设备的一个示例中,域映射中的每个条目包括逻辑块地址(lba)、lba偏移和域状态位。

在一个示例中,存储器寻址设备还可以包括存储器管理单元(mmu),其包括nvm域逻辑和域映射的至少一部分。

在该设备的一个示例中,mmu还包括页表的至少一部分,用于将一组虚拟存储器地址映射到该组nvmsys块地址。

在该设备的一个示例中,页表和域映射包括公共表。

在一个示例中,存储器寻址设备还可以包括nvm。

在该设备的一个示例中,nvm包括从由下列构成的组中选择的存储器类型:基于闪存的闪存、相变存储器(pcm)、三维(3d)交叉点存储器、基于非易失性双列直插式存储器模块(nvdimm)的存储器、电阻ram(reram)、导电桥接ram(cbram)、氧化硅-氮化物-氧化物-硅(sonos)存储器、铁电ram(feram)、铁电晶体管ram(fe-tram)、反铁电存储器、铁电聚合物存储器、磁阻ram(mram)、就地写入非易失性mram(nvmram)、自旋转移力矩(stt)存储器、自旋轨道转矩(sot)存储器、纳米线存储器、纳米管ram(nram)、基于自旋电子磁结的存储器、基于磁隧道结(mtj)的存储器以及基于畴壁(dw)的存储器。

在该设备的一个示例中,nvm包括3d交叉点存储器。

在该设备的一个示例中,nvm包括基于3d交叉点的nvdimm存储器。

在一个示例中,提供了一种计算系统,包括:处理器;非易失性存储器(nvm),耦合到所述处理器并包括多个nvm块地址,所述多个nvm块地址包括在存储器域中有效并映射到系统地址空间的一组系统存储器(nvmsys)地址,以及在存储域中有效的一组存储存储器(nvmstor)地址;以及耦合到所述处理器的nvm域逻辑。该nvm域逻辑用于:管理用于nvmsys块地址中的每个和nvmstor块地址中的每个的条目域映射,以及响应于来自主机的用于将数据从存储器域移动到存储域的请求,将相关联的nvmsys块地址条目从在存储器域中有效改变为在存储域中有效,而不移动数据,或者,响应于来自主机的用于将数据从存储域移动到存储器域的请求,将相关联的nvmstor块地址条目从在存储域中有效改变为在存储器域中有效,而不移动数据。

在一个示例中,系统还包括:耦合到所述处理器和所述nvm的系统存储器控制器,所述系统存储器控制器用于控制对在存储器域中有效的nvmsys数据的系统存储器操作,以及耦合到所述处理器和所述nvm的存储存储器控制器,所述存储存储器控制器用于控制对在存储域中有效的nvmstor数据的存储存储器操作。

在该系统的一个示例中,每个nvm块地址条目包括域状态位,用于指示在存储器域中有效的nvmsys块地址或在存储域中有效的nvmstor块地址的相关联的nvm块地址的域状态。

在系统的一个示例中,为了将数据从存储器域移动到存储域,所述nvm域逻辑还用于通过翻转域状态位来将nvmsys块地址的域状态改变为nvmstor块地址改变从而将与数据相关联的nvmsys块地址条目从在存储器域中有效改变为在存储域中有效。

在系统的一个示例中,在将nvmsys块地址的域状态改变为nvmstor块地址之后,nvm域逻辑还用于向主机发送确认。

在系统的一个示例中,为了将数据从存储域移动到存储器域,所述nvm域逻辑还用于通过翻转域状态位以将nvmstor块地址的域状态改变为nvmsys块地址来将与数据相关联的nvmstor块地址条目从在存储域中有效改变为在存储器域中有效。

在系统的一个示例中,在将nvmstor块地址的域状态改变为nvmsys块地址之后,nvm域逻辑还用于向主机发送确认。

在系统的一个示例中,域映射中的每个条目包括逻辑块地址(lba)、lba偏移和域状态位。

在一个示例中,该系统还包括耦合到处理器的存储器管理单元(mmu),包括nvm域逻辑和域映射的至少一部分。

在一个示例中,该系统还包括:存储设备,耦合到所述处理器以存储指令,所述指令在被执行时使处理器在系统地址空间内分配虚拟存储器;以及功能上耦合到所述mmu的页表,用于存储映射到nvmsys块地址的一组虚拟存储器地址的条目。

在系统的一个示例中,为了将数据从存储器域移动到存储域,nvm域逻辑还用于通过翻转域映射中的域状态位以将nvmsys块地址的域状态改变为nvmstor块地址,来将与数据相关联的nvmsys块地址条目从在存储域中有效改变为在存储域中有效,并更新所述页表以移除对nvmsys块地址的引用。

在系统的一个示例中,为了将数据从存储域移动到存储器域,nvm域逻辑还用于通过翻转域映射中的域状态位以将nvmstor块地址的域状态改变为nvmsys块地址,来将与数据相关联的nvmstor块地址条目从在存储域中有效改变为在存储器域中有效,并更新所述页表以添加对nvmsys块地址的引用。

在该系统的一个示例中,页表和nvm映射表包括公共表。

在该系统的一个示例中,nvm包括从由下列构成的组中选择的存储器类型:基于闪存的闪存、相变存储器(pcm)、三维(3d)交叉点存储器、基于非易失性双列直插式存储器模块(nvdimm)的存储器、电阻ram(reram)、导电桥接ram(cbram)、氧化硅-氮化物-氧化物-硅(sonos)存储器、铁电ram(feram)、铁电晶体管ram(fe-tram)、反铁电存储器、铁电聚合物存储器、磁阻ram(mram)、就地写入非易失性mram(nvmram)、自旋转移力矩(stt)存储器、自旋轨道转矩(sot)存储器、纳米线存储器、纳米管ram(nram)、基于自旋电子磁结的存储器、基于磁隧道结(mtj)的存储器以及基于畴壁(dw)的存储器。

在该系统的一个示例中,nvm包括3d交叉点存储器。

在该系统的一个示例中,nvm包括基于3d交叉点的nvdimm存储器。

在系统的一个示例中,主机是处理器。

在系统的一个示例中,主机是直接存储器存取(dma)控制器。

在一个示例中,提供了一种用于在存储器域和存储域之间虚拟移动数据的方法,包括:利用非易失性存储器(nvm)域逻辑管理域映射,该域映射包括在存储器域中有效的多个系统存储器(nvmsys)块地址的存储器域和在存储域中有效的多个存储存储器(nvmstor)块地址的存储域;以及响应于用于将数据从存储器域移动到存储域的请求,将相关联的nvmsys块地址条目从在存储器域中有效改变为在存储域中有效,而不移动数据;或者响应于用于将数据从存储域移动到存储器域的请求,将相关联的nvmstor块地址条目从在存储域中有效变为在存储器域中有效,而不移动数据。

在一个示例中,该方法还包括:响应于用于将数据从存储器域移动到存储域的请求,利用nvm域逻辑来定位域映射中的相关联的nvmsys块地址条目,并且利用nvm域逻辑,将在存储器域中有效的相关联的nvmsys块地址条目切换到在存储域中有效的nvmstor块地址。

在一个示例中,该方法还包括:利用存储器管理单元(mmu)定位转换后备缓冲器(tlb)中的nvmstor块地址。如果在tlb中找到nvmstor块地址,则从tlb中移除该nvmstor块地址,以及利用mmu从页表中移除nvmstor块地址。

在一个示例中,该方法还包括:响应于用于将数据从存储域移动到存储器域的请求,利用nvm域逻辑定位域映射中的相关联的nvmstor块地址条目,并且利用nvm域逻辑,将在存储域中有效的相关联的nvmstor块地址条目切换到在存储器域中有效的nvmsys块地址。

在一个示例中,该方法还包括利用存储器管理单元(mmu)将nvmsys块地址添加到页表。

在一个示例中,该方法还包括利用mmu将nvmsys块地址添加到转换后备缓冲器(tlb)。

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