计算机存储器管理方法和系统与流程

文档序号:14958930发布日期:2018-07-18 00:07阅读:227来源:国知局
本专利申请主张2015年12月3日提交的名称为“计算机存储器管理方法和系统(computermemorymanagementmethodandsystem)”的第14/957,799号美国专利申请书的优先权,所述申请书由此以引用的方式并入本文中,好像全文复制一样。本发明的改进大体上和计算机存储器系统的领域相关,且更具体来说,和相同速度级的存储器单元群组内的数据的计算机管理相关。
背景技术
:存在各种形式的计算机存储器。在提交本说明书时,表达“存储器”在本领域中通常用于指代处理器可快速访问的存储器。存储器可包含高速缓存,所述高速缓存常常呈静态随机存取存储器形式(staticrandom-accessmemory,sram)。静态随机存取存储器通常是指并入到相关联的处理器的芯片中的存储器。存储器还可包含片外存储器,所述片外存储器也被称作主存器。常常提供呈动态随机存取存储器(randomaccess-memory,dram)形式的片外存储器,所述动态随机存取存储器为一个或多个基于硅的芯片的部分。针对不同形式的存储器,存储器单元具有不同构造。可在芯片上使用其它形式的存储器,例如嵌入式dram(embeddeddram,edram),或可在芯片外使用其它形式的存储器,例如混合存储器魔方(hybridmemorycube,hmc)或高带宽存储器(highbandwidthmemory,hbm)。尽管针对每一类型,存储器的精确构造都不同,但是存储器通常设置为呈有组织的存储器单元形式。每一存储器单元可容纳少量数据。每种类型的单元和存储器构造具有相关联的特征,这可被视为有利的或不利的。例如,片上存储器通常比片外存储器更快,但是更加昂贵和/或耗电。大多数计算机使用不止一种类型的存储器,旨在利用各种存储器类型的优点来实现对应功能。各种存储器类型共同组成计算机的存储器系统。不同的存储器类型通常按被称为存储器层次的结构组织。更小、更快、更昂贵的存储器的位置更接近处理器,且较便宜的存储器的位置距离处理器较远。存储器层次常常包含不止一个速度级的片上存储器、片外存储器,或片上和片外存储器。可被称为存储器控制器的存储器逻辑控制提供为呈硬件、软件或硬件和软件的组合形式,并执行旨在以一种有组织的方式使用各种存储器层级的各种算法。目前可用的技术在一定程度上是令人满意的,但仍存在改进的空间。例如,已知的高速缓存的使用很大程度上取决于局部性原理(所述原理是存储器访问很有可能在邻近存储器地址周围聚集)的适用性。在此原理无法充分应用的应用中,例如,在联网和数据中心计算中的一些超高效应用的情况下,高速缓存系统的效率可为有限的。技术实现要素:提供一种存储器系统和存储器管理方法,其中相同速度级的存储器单元群组可进一步细分到具有不同有效速度(带宽)的不同区域中。可以基于片上或片外存储器的特定速度级构造区域。接着,使用这些区域形成存储器层次,其中一个区域对应于表示特定速度和容量的存储器层次的一个层级。所述区域可各自具有特定复制单元(被复制的数据结构的位的数量)和复制因数(数据结构被复制的次数)。可以确定所存储的数据结构在将来将会经历高访问速度。此类确定可基于过去的访问速度或预计的访问速度。处理器可使此类数据结构与对应区域相关联。这种关联可基于复制单元、复制因数或复制单元和复制因数的组合。例如,区域可基于它的已被特定数据结构大小(位的数量)的复制单元而选择,且区域可基于它的基于数据结构的预期访问速度的复制因数而选择。接着,可在区域中将数据结构自动复制数个复制本,所述复制本的数量对应于所述区域的复制因数。复制本的位置可被追踪。处理器可将对数据结构的后续请求引导到区域中的复制本中的连续复制本。可基于特定应用的要求预先确定区域的特征和数量,或者举例来说,可动态地管理区域的特征和数量。动态管理可指代基于举例来说,来自使用的实时反馈而修改区域的特征。复制区域可由硬件、软件或硬件与软件的组合限定。通常,还将使用特定速度级的存储器单元的基础区域,所述基础区域不同于上文所描述的“复制”区域。可监控基础区域中的数据结构的访问速度,并且此监控可用作识别待复制的数据结构的基础。还可监控复制区域的访问速度。一旦逻辑控制的复制区域的访问速度下降到特定阈值以下,逻辑控制就可用于从复制区域移出被复制的数据结构。例如,被复制的数据结构的移出可通过完全删除复制本或通过将被复制的数据结构移动到具有较低复制因数的另一区域来执行。在通常的存储器类型中,每一速度级的存储器单元按具有特定条目宽度的组组织。条目宽度有时被称作“字”,且通常具有不止一个位。特定组中的所有条目共享针对处理器的一个或两个访问端口。复制单元可小于组的大小,并且区域可以一种在不同组中提供不同复制本的方式跨越多个组。以此方式,处理器对相同数据结构的连续请求可被引导到不同组,且避免了对单个组的访问端口的争夺。在组组织中,可监控组端口的访问速度,并且可以使用算法来校平多组之间的访问速度。举例来说,在较高访问组中的较高访问数据结构可与较低访问组的具有相应大小的数据结构调换。存储器单元的基础区域可为水平的(即,与复制区域共享组)或竖直的(即,具有专用组)。根据一个方面,提供一种计算机,包括:具有至少一个处理单元的处理器芯片;存储器系统,所述存储器系统具有可由处理单元读取和写入的多个存储器单元,且包含相同速度级的存储器单元的至少第一群组;多个复制区域,所述多个复制区域各自具有第一群组中的存储器单元的对应部分和复制单元与复制因数的不同组合,所述复制单元对应于特定数量的存储器单元;所述至少一个处理单元用于:获得复制存储于存储器系统中的数据结构的指示;基于对应的复制单元和复制因数的组合,使数据结构与复制区域中的一个相关联;将数据结构复制数个复制本到相关联的复制区域,所述复制本的数量等于对应的复制因数;以及连续访问数据结构的复制本中的不同复制本。根据一个方面,提供一种计算机,所述计算机可包含存储器系统,所述存储器系统具有可由处理单元读取和写入的多个存储器单元,且包含相同速度级的存储器单元的至少第一群组。多个复制区域各自具有第一群组中的存储器单元的对应部分以及复制单元和复制因数的不同组合,所述复制单元对应于特定数量的存储器单元。处理单元可用于:获得复制存储于存储器系统中的数据结构的指示;基于对应的复制单元和复制因数的组合,使数据结构与复制区域中的一个相关联;将数据结构复制数个复制本到相关联的复制区域,所述复制本的数量等于对应的复制因数;以及连续访问数据结构的复制本中的不同复制本。根据另一方面,提供一种管理计算机的存储器系统中的数据的方法,所述存储器系统至少具有相同速度级的存储器单元的第一群组,所述第一群组具有多个复制区域,所述多个复制区域各自具有复制单元和复制因数的不同组合;所述方法由计算机实施且包括:获得复制存储于存储器系统中的数据结构的指示;基于对应的复制单元和复制因数的组合,使数据结构与复制区域中的一个相关联;将数据结构复制数个复制本到相关联的复制区域,所述复制本的数量等于对应的复制因数;以及连续访问数据结构的复制本中的不同复制本。根据另一方面,提供一种计算机,具有:具有至少一个处理单元的处理器芯片;存储器系统,所述存储器系统具有多个存储器单元且包含被分割在多个组中的相同速度级的存储器单元的至少第一群组,每一组具有特定数量的条目,并且针对每一条目特定数个存储器单元,每一组的条目共享至少一个访问端口,所述条目可由处理单元通过至少一个访问端口读取和写入;以及至少第一复制区域,所述至少第一复制区域具有第一群组中的存储器单元的第一部分,所述第一复制区域跨越多个所述组,且具有对应于所跨越的组中的任一个的特定数量个条目的一部分的第一复制单元和第一复制因数;所述至少一个处理单元用于:获得复制存储于存储器中的数据结构的指示;基于所述获得的指示,在第一复制区域中将数据结构复制数个复制本,所述复制本的数量等于对应的复制因数,其中复制本中的每一个在对应的所跨越的组中的不同一个组中;以及连续访问数据结构的复制本中的不同复制本。计算机可具有至少第二复制区域,所述至少第二复制区域具有第一群组中的存储器单元的第二部分和复制单元和复制因数的第二组合,所述第二组合不同于第一群组的组合;其中处理器进一步用于基于对应的复制单元和复制因数的组合,使数据结构与复制区域中的一个相关联,并在相关联的区域中复制数据结构。应理解,如本文所使用的表达“计算机”不以限制性方式进行解释。而是在广泛意义上使用以大体上指代某一形式的一个或多个处理单元和某一形式的可由处理单元访问的存储器系统的组合。计算机可为网络节点、个人计算机、智能手机、家用计算机等。计算机中与存储器的管理相关联的部分可被称为存储器控制器,并且可包含呈硬件、软件或硬件和软件形式的逻辑控制。应理解,计算机,或更具体地说,处理单元或存储器控制器的各种功能可由硬件、软件或硬件和软件的组合来执行。例如,硬件可包含逻辑门,所述逻辑门被包含为处理器的硅芯片的部分。软件可呈存储于存储器单元中的数据形式,例如存储于存储器系统中的可编程指令。相对于计算机、处理单元、存储器控制器或处理器芯片,表达“用于”是指存在硬件、软件或硬件与软件的组合以允许执行相关联的功能。在阅读本公开内容后,所属领域的技术人员将了解有关本发明的改进的许多其它特征及其组合。附图说明在图中,图1为相同速度级的存储器单元群组的简化示意图;图2为具有不止一个如图1中所示的存储器单元群组的示例计算机的框图,其中每一存储器单元群组具有不同速度级;图3和4是说明在计算机中使用图1的存储器单元群组的示例方法的流程图;图5为相同速度级的存储器单元的另一群组的简化示意图,所述群组中的存储器单元按组组织;图6示出具有示例竖直基础区域的图5的存储器单元群组;图7示出具有示例水平基础区域的图5的存储器单元群组;图8为说明可用于进一步管理图6或图7的存储器单元群组的示例方法的流程图;图9为示出图2的计算机的监控单元的示例的放大框图;以及图10为示出图2的计算机的存储器控制器的示例的放大框图。具体实施方式图1示意性地表示相同特定速度级的存储器单元10的群组。在存储器单元10的群组内,限定一个或多个复制区域(12、14)。复制区域(12、14)可各自占据存储器单元10的群组中的对应部分。存储器单元的群组可具有除复制区域(12、14)以外的区域,例如基础区域16,举例来说,所述基础区域16可以传统方式管理。在图1中示出的示例中,限定第一复制区域12和第二复制区域14。复制区域(12、14)可由对应的存储器单元18的位置(地址)的跨度并由复制单元和复制因数的组合限定。以复制到复制区域(12、14)中的对应复制区域(12、14)中的任何数据结构具有数量对应于复制单元的位且以基于复制因数的次数进行复制的方式限定复制单元和复制因数。每一复制区域(12、14)可具有复制单元和复制因数的标准组合。此组合可不同于其它区域的对应组合。相同速度级的存储器单元10的特定群组中的所有区域的复制单元和复制因数的组合的列表可被称作区域表。区域表的示例呈现如下:复制单元复制因数第一区域48第二区域84………………第n区域xy表1:区域表的示例区域的划界可呈每一对应表的存储器单元的地址列表或那些地址的界限列表的形式。在一些实施例中,区域的划界还可被视为形成区域表的部分。图2为计算机20的示例。相同速度级的存储器单元10的群组可形成计算机20的存储器系统22的部分。计算机20包含处理单元24,所述处理单元24与存储器系统22相关联。存储器系统22可具有片上存储器、片外存储器或片上存储器与片外存储器。表达“片上”是指提供存储器作为同一集成电路的部分或提供芯片26作为处理单元24的事实。存储器单元10的群组可为片上或片外的。存储器单元10的群组可具有任何合适类型的存储器,例如dram或sram。不同类型的存储器可以在存储器单元的不同群组中使用。举例来说,可以在芯片上使用一个或多个速度级的sram,且可以在芯片外使用一个或多个速度级的dram。其它类型的存储器也可为合适的片上存储器或片外存储器。存储器单元10可由处理单元24读取和写入。图3为示出具有图1的存储器单元10的群组的图2的处理单元24的操作100的方法的流程图。在操作期间,处理单元24可获得102复制数据结构的指示。待复制的数据结构可为具有复制区域(12、14)的相同速度级的存储器单元10的群组的部分,或可处于存储器系统22中的另一位置中。举例来说,待复制的数据结构可为另一速度级的存储器单元的群组的部分。待复制的示例数据结构30在图1中示出。在此示例中,待复制的数据结构30处于存储器单元10的群组的基础区域16中。处理单元24使数据结构30与复制区域12、14中的一个相关联104。所述关联是基于对应的复制单元和复制因数组合,并且可因此被称为取决于区域表28。数据结构30具有数量对应于相关联的复制区域的复制单元(举例来说,14)的位。接着,处理单元24在相关联的复制区域(12、14)中将数据结构30复制106数个复制本,所述复制本的数量等于复制因数的值。复制数量等于复制因数的值的复制本的步骤106可由计算机自动进行。处理单元24对数据结构30的连续后续访问被引导108到复制本32中的连续复制本32,并且可任选地与原始数据结构30交替。处理单元24对数据结构30的连续后续访问可穿插有也可未穿插处理单元24对其它数据结构的访问。存储器映射34可用于指出被复制的数据结构的存储器单元位置。举例来说,在处理对复制本32的连续后续访问的过程中,存储器映射34可供处理单元24查阅。处理单元24中与存储器的管理相关联的部分可被称为“存储器控制器”36,并且可包含呈硬件、软件或硬件和软件形式的逻辑控制。如上文所描述,通过复制数据结构30和引导另外处理单元访问,可以获得以下区域吞吐量:区域吞吐量=(复制因数)*(特定速度级的存储器速度)其条件是对复制本的后续访问不会争夺有限的带宽。通常,将获得复制数据结构的指示,以及对数据结构的大小的指示和对数据结构的预期未来访问速度的指示。因此,数据结构与区域的关联可基于匹配数据结构的大小与相关联的复制区域的复制单元。此外,数据结构与区域的关联可基于预期未来访问速度的指示与相关联的复制区域的相容复制因数的匹配。在计算机高度专业化的一些实施例中,可基于已知功能预先确定预期的未来访问速度。在计算机更加通用的实施例中,举例来说,可基于所存储的数据的过去访问速度确定预期的未来访问速度。举例来说,可通过监控110访问速度来获得所存储的数据的过去访问速度。可使用具有复制单元和复制因数的不同组合的多个复制区域。因此,可通过复制具有不同大小和不同的预期未来访问速度的数据结构来实现令人满意的通用程度。复制区域的限定可为静态的或动态的。举例来说,可基于针对特定功能的预期访问速度预先确定静态的复制区域。或者,可动态地调整复制区域的限定,例如存储器单元量和地址的组合、复制单元和复制因数的组合。举例来说,动态调整可基于访问速度的监控。在一些实施例中,处理单元进一步具有从复制区域移出被复制的数据结构的功能120可为有意义的。此类功能120在图4中示意性地示出。此功能可包含以下步骤:获得122将从复制区域移出被复制的数据结构32的指示。在一个实施例中,可基于监控124被复制的数据的访问速度的先前步骤而获得此指示。实际上,被复制的数据的访问速度降低到特定阈值以下可提供此类指示。在另一实施例中,可基于确定从已经访问数据结构的复制本已过去特定时间段而获得此指示。在替代实施例中,可在另一基础或基础的组合上而获得指示。在获得移出的指示之后,可简单地删除126数据结构的复制本。例如,数据结构的复制本可通过用识别为具有较高预期访问速度的另一数据结构的复制本替换来删除126。任选地,处理单元24可支持确定128具有较低复制因数的另一适当的复制区域(12、14)是否可用的功能。举例来说,这可基于监控具有较低复制因数的另一复制区域的访问速度来实现。在支持确定128功能的情况下,可将数据结构移动130到另一复制区域,然后再在初始复制区域中删除或替换数据结构。现参考图5,应理解,许多常用的存储器系统22具有以组结构布置的相同速度级的存储器单元的一个或多个群组210。组结构通常包含多个组240。每一个别组240可具有极大数量的存储器单元,所述存储器单元可被分类在具有不同容量的子群组中。子群组中的最小一个可被称为“条目”。组240的特征在于以下事实:组240中的所有条目具有相同数量的位并且可通过一个或多个共享端口由处理单元24访问。特定组的条目中的位的标准数量有时被称为“字长”,且通常大于一个位。特定组的条目全部可通过一个或多个端口由处理器24读取和写入。在读取或写入步骤期间,通常同时访问特定条目中的不同位。因此,处理单元24的连续访问和组的连续条目跨越共享端口而与彼此争夺带宽。组通常具有一个或两个端口。在向组结构应用上文所描述的复制区域的概念的实施例中,复制区域可跨越多个组240。数据结构的复制本可被放置在不同组240中。因此,对数据结构的复制本的连续后续访问被引导到不同组,从而避免与彼此争夺相同端口和带宽。使用图5中所示的组结构的两个示例应用在下文加以描述。在这些示例应用中,组240中的条目在页242中进行分组,各自具有相同数量的条目。页在片段244中进行分组。因此,在指定条目之前,条目的地址可包含组240、片段244和页242的标识。组的宽度或特定组中的每一条目的位的数量可在特定速度级内变化。例如,在此实施例中,组的宽度可在32、64和128位之间变化。或者,相同速度级内的组240可具有相同大小,这可有助于存储器管理。类似地,片段244可具有相同或不同大小。一个实施选择方案是使所有片段244具有相同大小以便于存储器管理。页242可具有相同或不同大小。一个实施选择方案是使所有页242具有相同大小以便于存储器管理。片段244的大小和页242的大小是可依据应用定制的实施参数。应理解,可以在替代实施例中使用除片段244和页242以外的层次或更小层次。在图5中所示的存储器单元210的示例群组中,组240被划分成64个片段244,所述64个片段244随后又各自被划分成128个页242。页中的每一个具有特定数量的条目。具有特定速度级的存储器单元210的群组被划分成多个区域,其中每一区域通过产生所识别条目的不同数量个复制本而实现目标吞吐量。每一复制本驻存在不同组中。区域的数量和区域中的复制本的数量(即复制因数)是可依据应用定制的实施参数。特定区域的复制单元可为单个条目、页或片段。当复制单元为单个条目时,容纳相同数据作为条目(例如,复制本)的存储器位置集合被称作“条目群组”。类似地,当复制单元为页或片段时,容纳相同页或片段的所有复制本的页集合或片段集合可被称作“页群组”或“片段群组”。当选择更小的复制单元时,存储器占用率可变得更高效。然而,当复制单元的大小减小时,存储器管理的面积成本增加;在这种情况下,存储器管理可变得更复杂。特定复制区域的复制单元为可依据应用定制的实施参数。区域可进行灵活分配,并且可由软件或硬件管理。软件管理提供最大灵活性,但是在管理更新速度方面可能较为缓慢。硬件管理提供快速管理更新速度,但是不具有通过软件管理得到的灵活性。软件还可能借助于硬件来管理区域。软件管理、硬件管理或组合的硬件/软件管理的选择为可依据应用进行的实施方案选择。低存储器浪费的灵活分配方案使得区域的条目能够分配在特定速度级的存储器内的任何位置。后一种方法的缺点在于它可能会使得存储器管理的面积成本更加昂贵,且更复杂。在另一种极端情况下,每一区域可被分配数个专用存储器组。这一方法的缺点在于它可能会消耗大量的存储器组和很少使用的区域的存储器空间,从而产生浪费。在这两种极端情况之间的是各种中间方法。参考图6详述具有“竖直”基础区域的示例。参考图7描述具有“水平”基础区域的第二示例。在这两个示例中,特定速度级具有五个复制区域,以及基础区域。这些复制区域分别具有1、2、4、8和16的复制因数。这两个实例中的任一个中的基础区域可由软件、硬件或软件和硬件的组合管理。现参考图6,描绘竖直基础区域方案的示例。此处,区域0250存储原始软件表,其中复制因数为1。它还可被称作“基础区域”250。基础区域250包含预分配的专用组240。区域1到4是由硬件和软件共同管理的复制区域,并且共享数个预分配的组240。区域1提供最高吞吐量,其中复制因数为16,且复制单元为一个条目。区域2提供次高吞吐量,其中复制因数为8,且复制单元为一个页。区域3和4类似于区域2,除了复制因数分别为4和2。可使用不同方案来决定区域的大小,并且区域的大小可进行动态调整或静态配置。对于具有用于所有表的已知总计吞吐量的应用,区域1到4的大小可根据以下公式进行静态配置:区域中的条目的数量=(总计吞吐量)÷(最大区域吞吐量)。此存储器系统示例的第二可能实施方案在图7中说明。此方法还具有在特定速度级中形成的5个区域。这些区域分别具有1、2、4、8和16的复制因数。区域1到4是以类似于限定竖直存储器区域中的那些复制区域的方式限定的复制区域,除了每一区域占用特定速度级处的所有可用组的一部分。然而,区域0为占用多个组240的一部分而不是具有专用组的基础区域260。竖直基础区域的优点在于基础区域(区域0)的吞吐量未受到其它区域的影响,但是区域1到4的总计存储器带宽限于预分配的组。水平基础区域的优点在于区域1到4的吞吐量可达到特定速度级中的存储器所提供的最大吞吐量,但是基础区域的吞吐量受到区域1到4的影响。又一方法是混合水平基础区域和竖直基础区域,由此组合这两种方法的益处。在此方法中,区域1到4可共享区域0不可用的预分配的组。同时,区域1到4还可与区域0共享组。当应用到具有存储器系统的计算机时,所述存储器系统具有两个片上速度级和一个片外速度级,应用到每一速度级的上述实例实施方案可提供总共15个层级的存储器层次。每一速度级的每一区域具有一个层次层级。现将呈现以上文所描述的方式使用计算机的示例方法。在基础区域中,存储器管理识别访问速度高于特定“热”访问速度阈值的数据结构。为了易于参考,这些数据结构可被称为“热数据结构”。热数据结构的大小可以变化。具有高访问速度的条目可被称作“热条目”。具有高访问速度的页可被称作“热页”。具有高访问速度的片段可被称作“热片段”。在在本文中将被称作“动态复写”的过程中,存储器管理处理热数据结构。它基于热数据结构的访问速度而选择复制单元调适成用于热数据结构且具有足够吞吐量的复制区域。热数据结构被复制到所选择的复制区域中。接着,对热数据结构的另外访问可被引导到所选择的区域中的复制本。任选地,可使用调度算法在相关联的复制区域和原始区域之间调度对热数据结构的另外访问。出于此目的可以使用各种调度算法,其中一些调度算法比其它调度算法更适用于某些应用。公平队列调度和简单加权轮循队列调度是调度算法的两个示例。存储器管理还可包含用于校平组的占用率的功能。此功能在本文中将被称作“动态表移动”。此功能300在图8中说明。计算机可识别访问速度低于特定“冷”访问速度阈值的数据结构。为了易于参考,这些数据结构可被称为“冷数据结构”。还可提供额外分类。举例来说,冷访问速度阈值和热访问速度阈值之间的数据结构可被分类为“温数据结构”。组、片段、页和条目可被指派除“热”、“温”和“冷”以外的额外访问速度级,并因此允许更精细的存储器管理动作。更具体地说,计算机可识别302访问速度比第二冷组高的第一温组。计算机还可识别304第一组中的访问速度比位于第二组中的第二大小相同的冷数据结构高的第一温数据结构。可基于所存储的数据306的所监控访问速度来执行识别(302、304)。接着,计算机可交换308第一数据结构与第二数据结构的位置。可独立地基于特定的大小单位对具有相同大小的数据结构执行交换308(例如,可交换条目、片段或页)。较高访问速度组中的较高访问速度数据结构可与较低访问速度组中的较低访问速度数据结构互换(交换)。互换的数据结构具有相同大小。然后,对温条目、温页或温片段的另外访问可被引导到所选择的冷组,而对所选择的冷条目、所选择的冷页或所选择的冷片段的另外访问可被引导到温组。图9示出可用作访问速度的指示的输入的监控单元40的示例。可提供监控单元40以监控处理器对大量存储器单元、少量存储器单元或对不同数量的存储器单元的访问。例如,监控单元40可用于对条目、页242、片段244和/或组240的访问速度进行分类。监控单元40可实施在软件或硬件中。软件实施方案提供最佳灵活性,但具有可能较慢的监控速度。硬件实施方案可提供更好的监控速度,但是具有相关联的面积成本。下文描述基于分层方案的具有令人满意的面积成本的硬件实施方案。在此示例中,监控单元40可实施按组计数器42,且每一按组计数器42可具有数个按片段计数器44以监控访问速度。可通过各种算法,例如漏桶算法的变化形式,来实施计数器42、44。按组比较器46和按片段比较器48可用于比较所监控的访问速度与静态或动态阈值。阈值可用于将所监控的组240或片段244分类成热、温或冷。在此示例中,对于温或热组240内的每一温或热片段244,使用页计数器50的一个或多个集合来并行监控片段244内的页242的访问速度。一个简单方法是使每一集合中的页计数器的数量等于片段中的页242的数量。在此情况下,针对所选择的片段244,每一页242可指派有一个计数器。可替代地,集合中的页计数器的数量可为片段244中的页242的数量的一部分。在此情况下,页计数器可指派数个页242,并且可以对分搜索方式监控这些页242的访问速度。例如,如果片段大小为128页,那么可使用16页计数器的集合,其中每一页计数器用于监控8页的访问速度。页计数器可以用于以对分搜索方式操作。它可首先在配置的时间间隔内监控4页的总计访问速度。如果总计访问速度为高,那么它在这4页中选择2页来监控等。否则,它开始在配置的时间间隔内监控另外4页等。此外,对于温或热组240内的每一温或热页242,可使用条目计数器集合来并行监控片段244内的条目的访问速度。这些条目计数器的操作可类似于页计数器的操作。对于除基础区域以外的区域,可使用类似于用于基础区域的那些方案的方案来执行通过访问速度对数据结构进行的分类。这使得热条目群组、热页群组或热片段群组能够通过动态表复写而被复制到具有足够吞吐量的另一适当的存储器层次。此外,存储器管理可使温条目群组、温页群组或温片段群组互换到相同区域或另一适当区域内的另一组集合。存储器管理还可支持从具有较高吞吐量的存储器区域将冷条目群组、冷页群组或冷片段群组移出到具有较低吞吐量的另一适当存储器区域。可采用各种移出策略,例如使用频率最低或最近最少使用等。基于监控结果,可使用各种算法来选择存储器区域、存储器组、片段或片段群组、页或页群组、条目或条目群组以供动态表复写或动态表移动。例如,可使用各种在线装箱算法(on-linebin-packingalgorithms)和逼近,例如首次拟合递减装箱算法(firstfitdecreasingbin-packingalgorithm)等。算法可实施在软件或硬件中。软件实施方案可提供更好的灵活性,但具有可能较慢的速度,而硬件实施方案可提供更快的速度,但相关联的面积成本较高且灵活性更低。算法还可由硬件和软件共同实施。为了减少存储器管理消耗的存储器带宽,需要降低热或温数据结构的可能性。可使用负载均衡算法来校平组之间的复制本的访问负载。负载均衡算法可通过软件或硬件实施。软件实施方案可提供更好的灵活性,但具有可能较慢的速度,而硬件实施方案可提供更快的速度,但具有更低的灵活性。简单的硬件实施方案将使用地址加扰以向组或组集合指派数据结构。可使用各种散列方案来进行地址加扰。与存储器加速组合,上述地址加扰还可减小装箱算法的硬件-软件共同实施方案所需的速度。这实现了动态表复写和动态表移动的实施方案的简化和权衡。可使用存储器映射34来追踪数据结构的地址。此处,处理器使用逻辑地址访问数据结构,而数据结构的物理地址可由于动态表复写或动态表移动而随着时间推移改变。因此,存储器映射34将逻辑地址映射到物理地址。存储器映射34使得处理器能够在动态表复写和动态表移动下访问正确数据。在例如图2中示出的实施例的实施例中,存储器系统22可包含不止一个速度级的存储器。因此,存储器系统22可包含特定速度级的存储器单元的不止一个群组,其中不同群组的速度级不同。存储器系统22可包含一个或多个速度级的片上群组、一个或多个速度级的片外群组或具有两个或更多个速度级的片上和片外群组的组合。图10示出具有不止一个速度级群组的存储器系统22的示例存储器控制器36。更具体地说,每一速度级具有数个存储器层次。每一存储器层次与具有比速度级高得多的可能吞吐量的存储器区域相关联。如图10中所示出,通过针对每一个别速度级群组使用专用存储器映射34和区域表28来管理此系统可为有利的。类似地,存储器控制器36可包含用于每一群组的专用逻辑控制,被称作表r&m引擎35,所述专用逻辑控制所述群组内的管理动态表复写和动态表移动。在一些替代实施例中,这些资源可在两个或更多个群组之间共享。在替代实施例中,举例来说,可针对每一速度级群组使用专用监控单元。在图10中所示的示例中,共享监控单元40的资源。可使用高速监控、快速表r&m引擎、地址加扰、动态表复写和动态表移动来促进快速存储器映射,所述存储器映射通过在线装箱算法更新,所述在线装箱算法例如首次拟合递减装箱算法等。对于要求高的应用,整个存储器系统可实现令人满意的吞吐量。可理解,上文所描述和说明的示例仅意图为示例性的。鉴于特定应用,针对上文提供的示例到替代方案是可能的。上文所描述的示例可用于各种形式的计算机,例如具有网络处理单元(networkprocessingunit,npu)的网络计算机、具有中央处理单元(centralprocessingunit,cpu)的个人计算机、智能手机、工业计算机、智能电器设备的处理单元等。新兴的5g技术以及未来技术将需要更高性能的处理器来满足不断增长的数据带宽和低时延连接要求。新装置必须更小、更好、更快且更高效。本发明的一些实施例可经特别设计以满足此类技术的各种要求,并且可用于升级本领域中的设备以支持新技术。本发明的实施例还可用于在现有功率约束内改进未来性能,同时保持低替换成本。具体地说,特定实施例可处理硅装置、4g/5g基站和手机(其中,举例来说,手机应用可能集中在低功耗上以节省电池电力)、现有网络设备替换物、未来网络设备部署、通用处理器要求,和/或更一般来说,处理器性能的增加。本发明的范围通过所附权利要求书指示。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1