在多处理器系统中构建相干存储器的系统及方法技术方案

技术编号:18824776 阅读:49 留言:0更新日期:2018-09-01 13:42
数据单元存储在多处理器系统的节点中的专用高速缓冲中,每一个节点包含至少一个处理器(CPU)、节点专用的至少一个高速缓冲及节点专用的至少一个高速缓冲位置缓冲器{CLB}。在每一个CLB中存储有位置信息值,每一位置信息值指示与相应的数据单元相关联的位置,其中存储在给定的CLB中的每一位置信息值指示位置是设置在与给定的CLB处于同一节点中的专用高速缓冲内的位置、是其他节点中的一个节点中的位置或者是主存储器中的位置。数据单元的值的相干性是使用高速缓冲相干性协议得到维持。高速缓冲相干性协议根据位置信息值各自的数据单元的移动来更新存储在CLB中的位置信息值。

【技术实现步骤摘要】
【国外来华专利技术】在多处理器系统中构建相干存储器的系统及方法[相关申请]本申请与以下美国临时专利申请相关且主张以下美国临时专利申请的优先权:艾瑞克·哈哥斯坦等人在2015年11月4日提出申请且名称为“高速缓冲存储器存储系统的节能技术”第62/250,653号的美国临时专利申请;以及艾瑞克·哈哥斯坦等人在2015年11月23日提出申请且名称为“直接对主机:统一跟踪方法、逐出及保持数据相干性”的美国临时专利申请第62/258,692号,以上两个美国临时专利申请的公开内容并入本申请供参考。
本文所公开主题的实施例大体来说涉及在计算机存储装置中存取数据的方法及系统,且更具体来说,涉及构建相干高速缓冲层次结构的机制及技术。
技术介绍
如今的处理器常常配备有高速缓冲,高速缓冲可存储在一些大容量存储器中存储的数据及指令的副本。这种大容量存储器如今最流行的实例是动态随机存取存储器(DRAM)。在本文中,将使用用语“存储器”来笼统地指代所有现有的及未来的存储器实施方式。高速缓冲存储器(或简称为高速缓冲)”通常是由比其他存储器实施方式小得多且快得多的存储器构建的且随后仅可在任何给定时间保存在主存储器或辅助存储装置中存储的数据中的一部分数据的副本。如今,高速缓冲常常使用静态随机存取存储器来实施且大的高速缓冲可使用动态随机存取存储器来实施。本文所述高速缓冲可使用任何现有的及未来的存储技术来实施。常常,计算机系统的存储系统包括一系列高速缓冲,其中靠近主存储器的高速缓冲(此处称为较高级的高速缓冲)更大且更慢且靠近处理器的高速缓冲(此处称为较低级的高速缓冲)更小且更快。这种配置通常被称为高速缓冲层次结构、存储器层次结构或存储系统。高速缓冲层次结构中的每一级被称为高速缓冲级。图1绘示其中每一个CPU101均被指派有各自的第一级专用高速缓冲102(L1高速缓冲)的计算机系统。专用高速缓冲是仅可对高速缓冲本地的CPU(或者与高速缓冲处于同一节点中的CPU,其中,所述高速缓冲专用于这一节点)的活动作出响应的数据单元的空间的高速缓冲。在此实例中,第二级高速缓冲103是由所有中央处理器101共享且可包含由所有CPU101存取的数据及指令。高速缓冲103是全局高速缓冲,这是由于数据单元的空间可响应于任何CPU101的活动。另外,高速缓冲103是共享高速缓冲,这是由于每一个数据单元可仅存在于一个共享副本中(而每一个专用高速缓冲均可具有自己的复制副本)。存储器105也存储由所有CPU101存取的指令及数据。(主)存储器105通常是使用物理地址(或简称为PA)来存取的,而CPU101产生的地址通常是虚拟地址。具有多个CPU及多个专用高速缓冲的计算机系统(例如图1所示系统)需要高效的机制来寻找高速缓冲中的一个高速缓冲中的所请求数据单元以及使数据的存储在不同节点中的多个副本保持相干。除包括主存储器及高速缓冲存储器之外,这种计算机系统通常还将包括一个或多个辅助存储装置。这些辅助存储装置可包括硬盘驱动器、光盘驱动器、闪存驱动器等中的一者或多者,硬盘驱动器、光盘驱动器、闪存驱动器等在此处由盘104来笼统地表示。盘或辅助存储装置104可存储比存储器105的数据多出多个数量级,但不能使用物理地址直接存取。如果CPU101想要对存储在盘104上的数据进行存取,则虚拟存储系统(图1未示出)将数据块(通常被称为“页”)从盘104移动到存储器105,并进行从与所述页对应的虚拟地址到物理地址的变换。一种特殊类型的变换高速缓冲(图1未示出)(通常被称为“变换旁查缓冲器”或简称为TLB)对从虚拟页到物理页的变换映射进行高速缓冲。虚拟存储系统可被视为高速缓冲系统,所述高速缓冲系统将位于盘104中的数据的一部分存储在存储器105中。图2示出图1中的高速缓冲组织的更详细的视图,其中中央处理器204被示出为包含多个高速缓冲式结构,例如指令TLB(ITLB,201)及数据TLB(DTLDB,205)以及CPU核心202。1级高速缓冲102被示出为包括指令高速缓冲200及数据高速缓冲206,指令高速缓冲200及数据高速缓冲206夹置在CPU204与2级(及潜在较高级的)高速缓冲207之间。图2还示出连接到高速缓冲层次结构的大容量存储器208。当CPU204请求高速缓冲中存在的数据(称为“高速缓冲命中”)时,所述请求可比对高速缓冲中不存在的数据进行存取(称为“高速缓冲未命中”)快得多地得到服务。通常,假设两种版本的应用原本具有相似的性质,则在CPU204上运行的经历较少高速缓冲未命中的应用与遭受较多高速缓冲未命中的相同应用相比将执行得更快并消耗较少的能量。因此,已对用于避免高速缓冲未命中的技术投入了相当大的努力,且还设计了可使高速缓冲命中及高速缓冲未命中就它们的存取延迟以及这些存储器事务所消耗的能量而言高效的实施方式。为了理解如何开发针对此高速缓冲命中/高速缓冲未命中问题的解决方案,理解高速缓冲组织及术语将是有用的。通常,数据是以比处理器的字的大小大的固定块(被称为高速缓冲行)的形式配置到高速缓冲中。如今常用的高速缓冲行大小例如为32字节、64字节及128字节,但如所属领域中的技术人员将理解,对于各种高速缓冲实施方式而言也存在更大及更小的高速缓冲行大小。对于一些高速缓冲实施方式而言,高速缓冲行大小也可为可变的。在存储器208中组织数据布局的常用方式是采用对每一个数据字进行静态映射以使每一个数据字驻留在一个特定高速缓冲行中的方式。每一个高速缓冲通常具有索引功能,所述索引功能对高速缓冲的可供每一个高速缓冲行驻留的部分(被称为组)进行标识。所述组可包含用于同时保存一个或多个高速缓冲行的空间。组可保存的高速缓冲行的数目被称为组的关联性。常常说,高速缓冲中所有组的关联性是相同的。这些高速缓冲常常被称为组关联高速缓冲。关联性也可在各个组之间变化。组中的每一个可保存高速缓冲行的空间被称为路。为确定存储在每一组中的每一个高速缓冲行的身份,高速缓冲中的高速缓冲行各自具有相关联的某一标识符。这种标识符的一个常用实例是地址标签。当在高速缓冲中查找特定高速缓冲行时,可使用高速缓冲行的地址来确定高速缓冲中可供所述高速缓冲行驻留的组。将对应组的高速缓冲行的地址标签与用于标识高速缓冲行的地址的标签部分(参见,例如图3所绘示的且在以下阐述的TAG及ATAG)进行比较来判断所需要的高速缓冲行是否驻留在所述高速缓冲中,且如果是,则判断所需要的高速缓冲行驻留在哪一路中,即所需要的高速缓冲行驻留在可保存高速缓冲行的组中的空间中的哪一个空间中。常常,每一个高速缓冲具有内置方略来判断将哪一个高速缓冲行保留在组中且将哪一个高速缓冲行逐出(也被称为“替换”)以为被放入到所述组中的新的高速缓冲行腾出空间,此被称为高速缓冲的替换策略。被替换的高速缓冲行被称为牺牲者或被替换的高速缓冲行。与高速缓冲存储器结合使用的流行的替换策略包括但不限于:最近最少使用(LRU)替换策略、伪最近最少使用替换策略及随机替换策略。所谓的包容性高速缓冲层次结构要求存在于一个高速缓冲级中的数据块(例如,L1高速缓冲中的数据块)的副本(例如,高速缓冲行)也存在于更高的高速缓冲级(此处,更高是指具有比1高的编号的高速缓冲级)中,例如存在于L2高速缓冲及L3高速缓冲中。独占型本文档来自技高网...

【技术保护点】
1.一种多处理器系统,包括:多个节点及至少一个存储器,其中每一个节点包含至少一个处理器(CPU)、所述节点专用的至少一个高速缓冲及所述节点专用的至少一个高速缓冲位置缓冲器(CLB),其中每一个高速缓冲位置缓冲器存储位置信息值,每一个位置信息值指示与相应的数据单元相关联的位置,其中在给定的高速缓冲位置缓冲器中存储的每一位置信息值指示所述位置是设置在与所述给定的高速缓冲位置缓冲器处于同一节点中专用的所述高速缓冲内的位置、是其他节点中的一个节点中的位置或者是存储器中的位置,其中所述数据单元的值通过高速缓冲相干性协议被保持为相干的,且所述高速缓冲相干性协议根据所述位置信息值各自的数据单元的移动来更新所述位置信息值。

【技术特征摘要】
【国外来华专利技术】2015.11.04 US 62/250,653;2015.11.23 US 62/258,6921.一种多处理器系统,包括:多个节点及至少一个存储器,其中每一个节点包含至少一个处理器(CPU)、所述节点专用的至少一个高速缓冲及所述节点专用的至少一个高速缓冲位置缓冲器(CLB),其中每一个高速缓冲位置缓冲器存储位置信息值,每一个位置信息值指示与相应的数据单元相关联的位置,其中在给定的高速缓冲位置缓冲器中存储的每一位置信息值指示所述位置是设置在与所述给定的高速缓冲位置缓冲器处于同一节点中专用的所述高速缓冲内的位置、是其他节点中的一个节点中的位置或者是存储器中的位置,其中所述数据单元的值通过高速缓冲相干性协议被保持为相干的,且所述高速缓冲相干性协议根据所述位置信息值各自的数据单元的移动来更新所述位置信息值。2.根据权利要求1所述的多处理器系统,还包括:至少一个全局高速缓冲,不驻留在所述节点中的任一个节点中,且其中所述位置信息值还能够标识所述至少一个全局高速缓冲内的位置。3.根据权利要求1或2所述的多处理器系统,其中如果数据单元只将各自的位置信息值存储在专用于同一个节点的一个或多个高速缓冲位置缓冲器中,则所述相干性协议将数据单元的连续区分类为专用区。4.根据权利要求3所述的多处理器系统,其中专用分类还指示只有所述同一个节点能够具有存储在所述同一个节点的至少一个专用高速缓冲中的区的所述数据单元中的任一个。5.根据权利要求3或4所述的多处理器系统,其中所述同一个节点中的至少一个高速缓冲位置缓冲器项存储与指示为被分类为专用区的区相关联的信息。6.根据权利要求3到5中任一项所述的多处理器系统,其中对于在节点中产生的针对具有所述节点中可用的地点信息的专用区的数据单元的写入请求,所述数据单元不被记录为在所述节点专用的所述高速缓冲中的任一个高速缓冲中具有写入许可,且所述数据单元被记录为在所述节点专用的所述高速缓冲中的至少一个高速缓冲中具有读取许可,所述节点能够对所述数据单元授予写入许可而不在所述节点外产生任何全局相干性请求。7.根据权利要求3到6中任一项所述的多处理器系统,其中为从节点中逐出来自具有在所述节点中可用的地点信息的专用区的脏数据单元,能够在不需要与其他节点或与目录进行通信的情况下进行所述逐出。8.根据权利要求1所述的多处理器系统,还包括至少一个全局目录,所述至少一个全局目录存储关于所述数据单元的位置信息,其中所述全局目录用于构建所述相干性协议,且其中所述节点能够向所述全局目录溢出位置信息以及从所述全局目录填充所述位置信息。9.根据权利要求8所述的多处理器系统,其中数据单元的连续区具有与所述全局目录中所述数据单元的对应的位置信息相关联的地址标签,且所述地址标签标识数据区。10.根据权利要求1到9中任一项所述的多处理器系统,其中所述连续区具有相关联的信息,所述信息是关于哪些节点具有与存储在所述节点专用的高速缓冲位置缓冲器中的所述连续区相关联的所述数据单元的位置信息。11.根据权利要求10所述的多处理器系统,其中只有被指示为具有与存储在所述节点专用的高速缓冲位置缓冲器中的所述连续区相关联的所述数据单元的位置信息的节点才能够具有存储在各自的专用高速缓冲中的相关联的所述数据单元的副本。12.根据权利要求8到11中任一项所述的多处理器系统,其中处理从发出请求的节点发送到目录的对于数据单元的全局无效化请求涉及到以下步骤:在所述目录中进行查找,以找到与所述数据单元及所述数据单元的区相关联的信息;使所述数据单元在除所述发出请求的节点之外的被指示为在各自的专用高速缓冲中可能具有副本的节点中的副本无效化;以及更新与被指示为具有所述数据单元的位置信息的节点相关联的专用的所述高速缓冲位置缓冲器中的位置信息。13.根据权利要求12所述的多处理器系统,其中所述无效化步骤及所述更新步骤是作为单个操作同时进行的。14.根据权利要求8到13中任一项所述的多处理器系统,其中处理从节点向新位置逐出数据单元涉及以下步骤:将所述数据单元的值复制到所述新位置;以及更新与存储所述数据单元的位置信息的节点相关联的专用的所述高速缓冲位置缓冲器中的所述数据单元的位置信息。15.根据权利要求8到14中任一项所述的多处理器系统,其中目录构建阻止功能,所述阻止功能阻止所述目录服务于某些相干性请求。16.根据权利要求15所述的多处理器系统,其中对于相干性请求,如果其他相干性请求是针对与所述相干性请求相同的地址范围,则所述相干性请求能够激活所述阻止功能阻止所述其他相干性请求。17.根据权利要求16所述的多处理器系统,其中完成所述相干性请求会将所述阻止功能去激活。18.根据权利要求16所述的多处理器系统,其中在所述相干性请求中规定的动作会将所述阻止功能去激活。19.根据权利要求8到18中任一项所述的多处理器系统,其中全部存储有位置信息的专用的所述高速缓冲位置缓冲器及目录形成单独的包容性高速缓冲层次结构,且其中存储所述数据单元的本地高速缓冲及全局高速缓冲形成非包容性层次结构。20.一种多处理器系统,包括:多个节点、多于一个全局高速缓冲及至少一个存储器,其中每一个节点包含至少一个处理器(CPU)及所述节点专用的至少一个高速缓冲,其中存储在所述高速缓冲中的数据单元的值通过高速缓冲相干性协议保持为相干的,所述高速缓冲相干性协议在存储所述数据单元的地点信息的目录中进行查找;其中所述位置信息将其中驻留有所述数据单元的位置标识为以下中的一者:节点、全局高速缓冲或存储器。21.根据权利要求20所述的多处理器系统,其中标识全局高速缓冲的所述位置信息还将所述高速缓冲内的位置标识为所述数据单元的位置。22.根据权利要求20或21所述的多处理器系统,还包括:多个全局高速缓冲,在所述多个全局高速缓冲中的每一个全局高速缓冲中,多于一个节点能够为所请求的数据单元分配空间,其中一个或多个节点使所述多个全局高速缓冲中的一个全局高速缓冲放置得比其他全局高速缓冲更靠近所述一个或多个节点,且其中数据单元放置向全局高速缓冲的映射是与所述数据单元的地址无关地进行。23.根据权利要求20到22中任一项所述的多处理器系统,还包括与所述全局高速缓冲相关联的放置计数器,所述放置计数器用于确定应在哪一全局高速缓冲中分配数据单元。24.根据权利要求20到23中任一项所述的多处理器系统,其中所述全局高速缓冲能够被配置成使所有所述节点存取存储在一个全局高速缓冲中的数据单元的一个公共副本,或者可动态地决定在特定的全局高速缓冲中创建数据单元的额外的复制副本。25.根据权利要求24所述的多处理器系统,其中如果第二高速缓冲的位置比第一全局高速缓冲更靠近产生由命中所述第一全局高速缓冲的指令提取引起的读取存取的所述节点,则所述读取存取将使被存取的所述数据单元在所述第二全局高速缓冲中被复制。26.根据权利要求24或25所述的多处理器系统,其中在节点中发出的要存取远离所述节点的全局高速缓冲中的热数据的请求将使被存取的所述数据单元在更靠近所述节点的全局高速缓冲中被复制。27.根据权利要求26所述的多处理器系统,其中热数据是所述多处理器系统以超过阈值的频率进行存取的数据。28.根据权利要求26所述的多处理器系统,其中热数据是在远程全局高速缓冲中被存取的数据,且所述热数据被确定为其高速缓冲组的最新使用(MRU)的数据。29.根据权利要求20到28中任一项所述的多处理器系统,其中数据单元的连续区具有与所述目录中所述数据单元的对应的位置信息相关联的地址标签,且所述地址标签标识所述区。30.根据权利要求29所述的多处理器系统,其中所述数据单元的连续区具有与一组节点相关的关联信息,所述一组节点当前能够存取所述区的任一数据单元,且对所述区的数据单元的写入请求将使得向所述一组节点发送无效命令。31.根据权利要求20到28中任一项所述的多处理器系统,其中每一个节点还包含所述节点专用的至少一个高速缓冲位置缓冲器(CLB),其中每一个高速缓冲位置缓冲器存储位置信息值,每一个位置信息值指示与相应的数据单元相关联的位置,其中在给定的高速缓冲位置缓冲器中存储的每一位置信息值指示所述位置是设置在与所述给定的高速缓冲位置缓冲器处于同一节点中的专用的所述高速缓冲内的位置、是其他节点中的一个节点中的位置、是存储器中的位置或者是全局高速缓冲中的位置。32.根据权利要求31所述的多处理器系统,其中数据单元的连续区在全局目录中具有与所述数据单元的对应的位置信息相关联的地址标签,且所述地址标签标识数据区。33.根据权利要求32所述的多处理器系统,其中所述连续区具有相关联的信息,所述信息是关于哪些节点具有与存储在所述节点专用的高速缓冲位置缓冲器中的所述连续区相关联的所述数据单元的位置信息。34.根据权利要求33所述的多处理器系统,其中只有被指示为具有与存储在所述节点专用的高速缓冲位置缓冲器中的所述连续区相关联的所述数据单元的位置信息的节点能够具有存储在各自的专用高速缓冲中的相关联的所述数据单元的副本。35.一种多处理器系统,包括:多个节点及至少一个存储器,其中每一个节点包含至少一个处理器(CPU)、及所述节点专用的至少一个高速缓冲,网络,连接所述节点,其中存储在所述高速缓冲中的数据单元的值通过分布式高速缓冲相干性协议而保持为相干的,所述分布式高速缓冲相干性协议在所述网络上发送相干性消息,其中所述网络构建阻止功能,所述阻止功能阻止在所述网络上发送一些相干性消息,其中对于相干性消息,如果其他相干性消息是针对与所述相干性消息相同的地址区,则发送所述相干性消息会激活所述阻止功能来阻止所述其他相干性消息。36.根据权利要求35所述的多处理器系统,其中所述相干性消息是广播类型的且被发送到多个节点。37.根据权利要求35或36所述的多处理器系统,其中在所述阻止功能能够被解除阻止之前,接收到所述相干性消息的一个或多个节点各自通知所述网络。38.根据权利要求35到37中任一项所述的多处理器系统,其中当已由其他相干性消息的发送方发起的所述阻止功能被解除阻止时,所述发送方将得到通知。39.根据权利要求35到38中任一项所述的多处理器系统,还包括:每一节点专用的至少一个高速缓冲位置缓冲器(CLB),其中每一个高速缓冲位置缓冲器将与数据单元相关联的指示包含所述数据单元的副本的其他节点的身份的信息存储在所述其他节点本地的高速缓冲存储器中。40.根据权利要求35到38中任一项所述的多处理器系统,还包括:每一节点专用的至少一个高速缓冲位置缓冲器(CLB),其中每一个高速缓冲位置缓冲器存储与数据单元相关联的信息,所述信息指示包含具有所述数据单元的位置信息的至少一个高速缓冲位置缓冲器的其他节点的身份。41.根据权利要求39或40所述的多处理器系统,其中所述高速缓冲位置缓冲器存储指示与数据单元相关联的位置的位置信息,其中每一位置信息能够将位置标识为位于与所述高速缓冲位置缓冲器处于同一节点中的专用高速缓冲内的位置、位于其他节点中的一个节点中或者是位于存储器中。42.根据权利要求39到41中任一项所述的多处理器系统,其中如果数据单元只将各自的位置信息值存储在专用于同一个节点中的一个或多个高速缓冲位置缓冲器中,则所述相干性协议将数据单元的连续区分类为专用区。43.根据权利要求42所述的多处理器系统,其中专用分类还指示只有所述同一个节点能够具有存储在所述同一个节点的至少一个专用高速缓冲中的区的所述数据单元中的任一个。44.根据权利要求42或43所述的多处理器系统,其中所述同一个节点中的至少一个高速缓冲位置缓冲器项存储与指示为被分类为专用区的区相关联的信息。45.根据权利要求42到44中任一项所述的多处理器系统,其中对于在节点中产生的针对具有所述节点中可用的地点信息的专用区的数据单元的写入请求,所述数据单元不被记录为在所述节点专用的所述高速缓冲中的任一个中具有写入许可,且所述数据单元被记录为在所述节点专用的所述高速缓冲中的至少一个高速缓冲中具有读取许可,所述节点能够对所述数据单元授予写入许可而不在所述节点外产生任何全局相干性请求。4...

【专利技术属性】
技术研发人员:艾瑞克·哈格斯顿安德莉亚斯·森布兰特大卫·布雷克沙佛
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:韩国,KR

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利