CN112416251A - 计算系统 - Google Patents
计算系统 Download PDFInfo
- Publication number
- CN112416251A CN112416251A CN202011327689.0A CN202011327689A CN112416251A CN 112416251 A CN112416251 A CN 112416251A CN 202011327689 A CN202011327689 A CN 202011327689A CN 112416251 A CN112416251 A CN 112416251A
- Authority
- CN
- China
- Prior art keywords
- data
- request
- read
- buffer
- data storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 239000000872 buffer Substances 0.000 claims abstract description 77
- 238000013500 data storage Methods 0.000 claims description 70
- 230000003139 buffering effect Effects 0.000 claims description 17
- 238000000034 method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 5
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种计算系统。该计算系统包括:多个计算集群,每个计算集群包括给定数量的计算处理器、缓冲、一级缓存以及与该缓冲相关联的缓冲处理子模块;二级缓存,其与该多个计算集群相连;以及多播同步模块,其被配置为接收来自该缓冲处理子模块的数据请求,如果确定该数据请求是数据读请求,则将请求计数值加一,并确定该请求计数值是否等于该给定数量,以及如果确定该请求计数值等于该给定数量,则向该二级缓存发送第二多播读请求以从该二级缓存中读取该数据请求中所指示的数据,其中该第二多播读请求的目的地包括发出该数据读请求的所有发送方。该计算系统大大降低了数据同步的开销。
Description
技术领域
本发明概括而言涉及集群计算领域,更具体地,涉及一种包括多个计算集群的计算系统。
背景技术
在现代计算系统中,通常将计算系统设计为具有多个计算集群,以实现更好的可扩展性。图1示出了一种现有技术中的计算系统1的示意图。如图1所示,计算系统1包括多个计算集群10-1、10-2、…… 10-N(以下有时也统称为计算集群10)、与多个计算集群10相连的二级缓存20。二级缓存20可以与外部存储器30相连。其中,每个计算集群10包括给定数量的计算处理器,如计算集群10-1包括n个计算处理器110-11、110-12、……110-1n,计算集群10-2包括n个计算处理器110-21、110-22、……110-2n,……计算集群10-N包括n个计算处理器110-N1、110-N2、……110-Nn,以下有时也统称为计算处理器110。每个计算集群10还包括一个缓冲和一个一级缓存,如计算集群10-1包括一个缓冲120-1和一个一级缓存130-1,计算集群10-2 包括一个缓冲120-2和一个一级缓存130-2,……计算集群10-N包括一个缓冲120-N和一个一级缓存130-1,以下有时也统称为缓冲120 和一级缓存130。
每个计算集群10中的每个计算处理器110可以访问该计算集群内的缓冲120和一级缓存130以获取所需要的数据。如果该计算集群 10的一级缓存130内没有该计算处理器110所需要的数据,则可以继续从二级缓存20中获取该数据。
一个计算集群10内的计算处理器110可能常常需要访问其他计算集群10的缓冲120中存储的数据。例如,如图1所示的计算集群 10-1中的计算处理器110-11可能想要访问计算集群10-2的缓冲120-2 中的数据。在这种情况下,常规的做法是:将缓冲120-2中的数据读取到计算集群10-2的计算处理器110中,并通过一级缓存130-2和二级缓存20将数据存储到外部存储器30中,然后,每个计算处理器110 可以发出刷新指令,以使数据在外部存储器30中可见。当所涉及的所有计算处理器110都同步之后,每个计算处理器110都可以发出加载指令以从外部存储器30获取其所需的任何数据。
然而,这种方案的读取数据的开销非常大。例如,将数据读入计算处理器110,然后将其存储到外部存储器30,最后进行刷新和同步,尤其是同步的开销非常大。
发明内容
针对上述问题,本发明提供了一种计算系统,能够显著降低跨计算集群读取数据的开销。
根据本发明的一个方面,提供了一种计算系统。该计算系统包括:多个计算集群,每个计算集群包括给定数量的计算处理器、缓冲、一级缓存以及与该缓冲相关联的缓冲处理子模块;二级缓存,其与该多个计算集群相连;以及多播同步模块,其被配置为接收来自该缓冲处理子模块的数据请求,如果确定该数据请求是数据读请求,则将请求计数值加一,并确定该请求计数值是否等于该给定数量,以及如果确定该请求计数值等于该给定数量,则向该二级缓存发送第二多播读请求以从该二级缓存中读取该数据请求中所指示的数据,其中该第二多播读请求的目的地包括发出该数据读请求的所有发送方。
附图说明
通过参考下列附图所给出的本发明的具体实施方式的描述,将更好地理解本发明,并且本发明的其他目的、细节、特点和优点将变得更加显而易见。
图1示出了一种现有技术中的计算系统的示意图。
图2示出了根据本发明实施例的计算系统的示意图。
图3示出了根据本发明实施例的缓冲处理子模块中执行的数据访问过程的流程图。
图4示出了根据本发明的实施例的计算系统的存储空间的示意图。
图5示出了根据本发明实施例的多播同步模块中执行的多播同步过程的流程图。
具体实施方式
下面将参照附图更详细地描述本发明的优选实施例。虽然附图中显示了本发明的优选实施例,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一些实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。
图2示出了根据本发明实施例的计算系统2的示意图。与图1所示的计算系统1类似,计算系统2也包括多个计算集群10-1、 10-2、……10-N(以下有时也统称为计算集群10)、与多个计算集群 10相连的二级缓存20。二级缓存20可以与外部存储器30相连。其中,每个计算集群10包括给定数量的计算处理器,如计算集群10-1 包括n个计算处理器110-11、110-12、……110-1n,计算集群10-2包括n个计算处理器110-21、110-22、……110-2n,……计算集群10-N 包括n个计算处理器110-N1、110-N2、……110-Nn,以下有时也统称为计算处理器110。更具体地,计算处理器110可以是向量处理器。每个计算集群10还包括一个缓冲和一个一级缓存,如计算集群10-1 包括一个缓冲120-1和一个一级缓存130-1,计算集群10-2包括一个缓冲120-2和一个一级缓存130-2,……计算集群10-N包括一个缓冲120-N和一个一级缓存130-1,以下有时也统称为缓冲120和一级缓存130。
与图1所示的计算系统1不同,计算系统2的每个计算集群10 还包括与该计算集群10的缓冲120相关联的缓冲处理子模块,例如计算集群10-1包括一个缓冲处理子模块140-1,……计算集群10-N 包括一个缓冲处理子模块140-N,以下有时也统称为缓冲处理子模块140。此外,计算系统2还包括多播同步模块40,其位于多个计算集群10和二级缓存20之间,用于处理计算集群10与二级缓存20之间的数据请求,如下所述。
在本文中,将多个计算集群10中的至少一部分计算集群10共享的数据称为数据存储面(或数据图像)。共享同一数据存储面的计算集群10运行相同的内核(即计算程序),并且该计算集群10中的每个计算处理器110都使用相同的指令访问缓冲120中的数据。对于图2所示的计算系统2来说,取决于共享数据的计算集群10的成员不同,可以为其设定多个数据存储面,每个数据存储面可以使用唯一标识符进行标识。以下,为了方便描述起见,假设图2所示的计算系统2的计算集群10-1、10-2、……10-N都共享同一数据存储面。该数据存储面中的数据被预先存储在各个计算集群10的缓冲120中。
在一些实施例中,各个计算集群10的缓冲120中存储的数据量基本相同。具体地,如图2中所示,假设该数据存储面的大小(即数据量)为M,其被基本上平均地存储到N个计算集群10,则每个计算集群10的缓冲120中被分配存储的数据量可以基于以下公式(1) 来确定。
如果M/N不是整数,则N个计算集群10中的任意N-1个计算集群10中存储的数据量为m,另一个计算集群10中存储的数据量可以基于以下公式(2)确定。
mN=M–(N-1)*m (2)
在这种情况下,可以在计算系统2中保存有该数据平面的描述信息,该描述信息可以包括:数据存储面的标识符、数据存储面的基准地址、数据存储面的大小M、数据存储面的通道数量N、数据存储面的存储分布(如哪N-1个计算集群10中存储数据量m,哪个计算集群10中存储数据量mN)。
此外,如上所述,计算系统2中的多个计算集群10可以共享不同的数据存储面,每个数据存储面的数据在每个计算集群10中占用的存储空间不同。因此,对于特定数据存储面,其描述信息还可以包括该数据存储面在共享该数据存储面的各个计算集群10中的部分的缓冲起始地址和大小。
在另一些实施例中,各个计算集群10的缓冲120中存储的数据量各不相同,例如可以由软件进行管理和配置。在这种情况下,每个计算集群10中保存的该数据平面的描述信息可以包括:数据存储面的标识符、数据存储面的基准地址、数据存储面的大小M、数据存储面的通道数量N、数据存储面的存储分布、该数据存储面在各个计算集群10中的部分的缓冲起始地址和大小。
各个数据存储面的描述信息可以由软件预先配置在计算系统2 中,并且可以被缓冲处理子模块140和多播同步模块40访问。
注意,数据存储面的上述描述信息并不都是必须的,在一些情况下,计算系统2中可以仅保存该描述信息的一部分。例如,在上述基本上平均分配的情况下,每个计算集群10可以根据数据存储面的大小M、数据存储面的通道数量N和数据存储面的存储分布确定其中存储的数据量大小,因此计算系统2中存储的数据存储面的描述信息可以不包括该数据存储面在各个计算集群10中的部分的大小。此外,在数据存储面的存储分布为默认分布(例如N个计算集群10中的前 N-1个计算集群10存储数据量m,第N个计算集群10存储数据量 mN)的情况下,计算系统2中存储的该数据存储面的描述信息可以不包括该数据存储面的存储分布。或者,在整个计算系统2仅共享一个数据存储面或者该数据存储面的基准地址为0的情况下,计算系统2 中存储的数据存储面的描述信息可以不包括数据存储面的标识符或数据存储面的基准地址。
以下,以一个计算集群10发起对一个数据存储面的数据的访问为例,对根据本发明的计算系统2的数据访问过程进行描述。
图3示出了根据本发明实施例的缓冲处理子模块140中执行的数据访问过程300的流程图。图4示出了根据本发明的实施例的计算系统2的存储空间400的示意图。在图4中,示出了整个存储空间400 中包含的一个数据存储面410以及该数据存储面410在N个计算集群10中分别存储的数据部分。
在步骤310,计算集群10中的缓冲处理子模块140接收一个多播读请求Mcast_read。这里,该多播读请求Mcast_read可以是从该计算集群10中的任一计算处理器110接收的,也可以是从计算集群10内的任何固定功能模块接收的。该多播读请求Mcast_read至少包括待读取的数据420的地址(例如数据420的起始地址422)。这里,待读取的数据420的地址可以是该数据的绝对地址,例如其可以是在整个计算系统2的存储空间400中的地址。此外,在存在多个数据存储面 410的情况下,该多播读请求Mcast_read还包括待读取的数据所属的数据存储面410的标识符。
接下来,在步骤320,缓冲处理子模块140基于待读取的数据420 的地址和该数据所属的数据存储面410的描述信息确定待读取的数据 420是否在与该缓冲处理子模块140相关联的缓冲120中。
具体地,缓冲处理子模块140可以基于待读取的数据420的地址 (这里是起始地址422)和该数据所属的数据存储面410的基准地址 412确定待读取的数据420的相对地址432。
接下来,缓冲处理子模块140将相对地址432减去该数据存储面 410在该计算集群10中的部分的缓冲起始地址414以确定待读取的数据420的相对偏移量416。这里,当方法300在各个计算集群10内执行时,由相应的计算集群10的缓冲处理子模块140分别减去该数据存储面410在该计算集群10中的部分的缓冲起始地址414。图4中出于示例起见仅示出了计算集群10-2(#2)的部分的缓冲起始地址414 以及相对地址432相对于该缓冲起始地址414的相对偏移量416。
接下来,缓冲处理子模块140基于该数据存储面410的描述信息确定该相对偏移量416是否小于该数据存储面410在该计算集群10 中的部分的大小(即该数据存储面410在该计算集群10中的数据量)。
结合图2,如果计算集群10-1的缓冲处理子模块140-1执行上述数据访问过程300,其确定的数据偏移量416等于上述相对地址432 (假设如图所示,该数据存储面410在该计算集群10-1中的部分的缓冲起始地址414与数据存储面410的基准地址412重合),其大于数据存储面410在计算集群10-1中的数据部分的大小。在这种情况下,在步骤320,缓冲处理子模块140-1确定多播读请求Mcast_read 待读取的数据不在计算集群10-1的缓冲120-1中而在二级缓存20或外部存储器30中。另一方面,如果计算集群10-2的缓冲处理子模块 140-2执行上述数据访问过程300,其确定的数据偏移量416小于数据存储面410在计算集群10-2中的数据部分的大小,如图所示。在这种情况下,在步骤320,缓冲处理子模块140-2确定多播读请求 Mcast_read待读取的数据在计算集群10-2的缓冲120-2中。
接下来,如果确定待读取的数据不在该计算集群10的缓冲120 中(步骤320的判断为“否”,如上述计算集群10-1的情况),则在步骤330,缓冲处理子模块140-1基于该多播读请求Mcast_read产生一个数据请求Mcast_req并在步骤360将该数据请求Mcast_req发送至多播同步模块40。
另一方面,如果确定待读取的数据在该计算集群10的缓冲120 中(步骤320的判断为“是”,如上述计算集群10-2的情况),则在步骤340,缓冲处理子模块140-2从该计算集群10-2的缓冲120-2 中读取待读取的数据并将所读取的数据发送给多播读请求Mcast_read的发送方(即计算集群10-2中的计算处理器110或其他固定功能模块)。此外,在这种情况下,缓冲处理子模块140-2还基于该多播读请求Mcast_read产生一个数据请求Mcast_req(步骤350),并且向多播同步模块40发送该数据请求Mcast_req(步骤360)。
可以为该数据请求Mcast_req设置专门的多播标志位以指示该请求是使用本发明的系统和方法所产生的请求。
这里,虽然步骤330和350中产生的请求都称为数据请求 Mcast_req,但是其含义并不相同。具体地,在步骤330中产生的数据请求Mcast_req用于向二级缓存20请求待读取的数据420,其是一个数据读请求(或者称为多播读请求),为了区别于上述多播读请求Mcast_read,将步骤330产生的多播读请求称为第二多播读请求 Mcast_read2,与之相对应的,上述步骤310的多播读请求Mcast_read 也可以称为第一多播读请求Mcast_read1。在步骤350产生的数据请求Mcast_req用于将步骤340读取的数据写入到二级缓存20中,因此其可以称为数据写请求。在数据请求Mcast_req是数据写请求的情况下,该数据写请求中可以包括数据的写入地址。
如上所述,多播同步模块40将接收到来自某个计算集群10的缓冲处理子模块140的数据请求Mcast_req,并且执行相应的多播同步过程。图5示出了根据本发明实施例的多播同步模块40中执行的多播同步过程500的流程图。
在步骤510,多播同步模块40接收来自缓冲处理子模块140的数据请求Mcast_req,并且在步骤520,多播同步模块40确定该数据请求Mcast_req是数据写请求还是数据读请求。例如,多播同步模块40 可以根据接收到的数据请求Mcast_req的发起方和目的地以及是否伴随有数据确定该数据请求Mcast_req是数据读请求还是数据写请求。
如果在步骤520,多播同步模块40确定该数据请求Mcast_req是数据读请求,则在步骤530,多播同步模块40将其中维护的请求计数器的请求计数值加一。
另一方面,如果在步骤520,多播同步模块40确定该数据请求 Mcast_req是数据写请求,则在步骤560,多播同步模块40将该数据写请求所指示的数据写入二级缓存20并在步骤530将其中维护的请求计数器的请求计数值加一。
然后,在步骤540,多播同步模块40确定请求计数值是否达到给定数量n。这里,给定数量n是一个计算集群10所包含的计算处理器 110的数量,即一个计算集群10中的所有计算处理器110运行相同的内核,会使用相同的指令访问缓冲120中的数据。
如果确定请求计数值等于给定数量n(步骤540的判断为“是”),则在步骤550,多播同步模块40向二级缓存20发送第二多播读请求 Mcast_read2以从二级缓存20中读取数据请求Mcast_req中所指示的数据,其中第二多播读请求Mcast_read2的目的地包括发出该数据读请求的所有发送方。这样,二级缓存20可以将该数据以多播方式发送给该第二多播读请求Mcast_read2中所指示的所有目的地(不包括数据请求是数据写请求时的发送者)。
此外,如果第二多播读请求Mcast_read2所指示的数据不在二级缓存20中,则二级缓存20可以进一步将该第二多播读请求 Mcast_read2转发给与其相连的外部存储器30,并且外部存储器30可以经由二级缓存20将该数据以多播方式发送给该第二多播读请求Mcast_read2中所指示的所有目的地。
另一方面,如果在步骤520,多播同步模块40确定该数据请求 Mcast_req是数据写请求,则在步骤560,多播同步模块40将该数据写请求所指示的数据写入二级缓存20。
通过上述设计的计算系统,消除了将数据从缓冲区120读入计算处理器110的开销,并且消除了数据存储到外部存储器30后的刷新开销。此外,计算系统2中的多播同步模块40实现了一个计算集群 10中的数据读请求的显式同步,以多播方式同时将数据返回给所有目的地大大减少了对下游缓存的访问次数。
根据本发明的思想适用于将计算集群与外部存储器连接的任何片上网络。多播同步模块可以放置在计算系统中的任何位置,以使来自计算集群的任何请求都可以到达该模块。并且,计算系统中可以设置多个多播同步模块,例如在分布式存储系统的情况下,可以为分布式存储系统的每个部分配置一个多播同步模块。
此外,虽然在图2中将缓冲处理子模块140显示为计算集群10 内的单独的模块,但是本领域技术人员可以理解,缓冲处理子模块140 可以是对应的缓冲120的一部分。此外,虽然在图2中将多播同步模块40显示为计算系统2中的单独的模块,但是本领域技术人员可以理解,多播同步模块40可以是二级缓存20的一部分。
在一个或多个示例性设计中,可以用硬件、软件、固件或它们的任意组合来实现本发明所述的功能。例如,如果用软件来实现,则可以将所述功能作为一个或多个指令或代码存储在计算机可读介质上,或者作为计算机可读介质上的一个或多个指令或代码来传输。
本文公开的计算系统的各个组成部分可以使用分立硬件组件来实现,也可以集成地实现在一个硬件组件上。例如,可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件或用于执行本文所述的功能的任意组合来实现或执行结合本发明所描述的各种示例性的逻辑块、模块和电路。
本领域普通技术人员还应当理解,结合本发明的实施例描述的各种示例性的逻辑块、模块、电路和算法步骤可以实现成电子硬件、计算机软件或二者的组合。
本发明的以上描述用于使本领域的任何普通技术人员能够实现或使用本发明。对于本领域普通技术人员来说,本发明的各种修改都是显而易见的,并且本文定义的一般性原理也可以在不脱离本发明的精神和保护范围的情况下应用于其它变形。因此,本发明并不限于本文所述的实例和设计,而是与本文公开的原理和新颖性特性的最广范围相一致。
Claims (8)
1.一种计算系统,包括:
多个计算集群,每个计算集群包括给定数量的计算处理器、缓冲、一级缓存以及与所述缓冲相关联的缓冲处理子模块;
二级缓存,与所述多个计算集群相连;以及
多播同步模块,被配置为:
接收来自所述缓冲处理子模块的数据请求,
如果确定所述数据请求是数据读请求,将请求计数值加一,
确定所述请求计数值是否等于所述给定数量,以及
如果确定所述请求计数值等于所述给定数量,向所述二级缓存发送第二多播读请求,以从所述二级缓存中读取所述数据请求中所指示的数据,其中所述第二多播读请求的目的地包括发出所述数据读请求的所有发送方。
2.如权利要求1所述的计算系统,其中所述多播同步模块还被配置为:
如果确定所述数据请求是数据写请求,向所述二级缓存写入所述数据写请求所指示的数据并且将所述请求计数值加一。
3.如权利要求1所述的计算系统,其中所述缓冲处理子模块被配置为:
接收第一多播读请求,所述第一多播读请求至少包括待读取的数据的地址;
基于待读取的数据的地址和所述数据所属的数据存储面的描述信息确定待读取的数据是否在与所述缓冲处理子模块相关联的缓冲中;以及
如果确定待读取的数据不在所述缓冲中,基于所述第一多播读请求产生所述数据请求并将所述数据请求发送至所述多播同步模块。
4.如权利要求3所述的计算系统,其中所述缓冲处理子模块还被配置为:
如果确定待读取的数据在所述缓冲中,从所述缓冲中读取所述数据并将所读取的数据发送给所述第一多播读请求的发送方,并且
基于所述第一多播读请求产生所述数据请求,以便向所述多播同步模块发送所述数据请求。
5.如权利要求3所述的计算系统,其中所述缓冲处理子模块被配置为:
从所述计算集群的计算处理器接收所述第一多播读请求。
6.如权利要求3所述的计算系统,其中所述数据存储面可由所述多个计算集群中的至少部分计算集群共享,所述数据存储面的描述信息包括以下各项中的至少一部分:
所述数据存储面的标识符,
所述数据存储面的基准地址,
所述数据存储面的大小,
所述数据存储面的通道数量,
所述数据存储面的存储分布,
所述数据存储面在所述至少部分的计算集群中的每个计算集群的缓冲中的部分的缓冲起始地址,以及
所述数据存储面在所述至少一些计算集群中的每个计算集群的缓冲中的部分的大小。
7.如权利要求6所述的计算系统,其中所述数据存储面的描述信息由软件预先配置在所述计算系统中并可被所述缓冲处理子模块访问。
8.如权利要求6所述的计算系统,其中基于待读取的数据的地址和数据存储面的描述信息确定待读取的数据是否在所述缓冲中包括:
基于待读取的数据的地址和所述数据存储面的基准地址确定待读取的数据的相对地址;
将所述相对地址减去所述数据存储面在所述计算集群中的缓冲起始地址,以确定待读取的数据的相对偏移量;
基于所述数据存储面的描述信息,确定所述相对偏移量是否小于所述数据存储面在所述计算集群的缓冲中的部分的大小;
如果所述相对偏移量小于所述数据存储面在所述计算集群的缓冲中的部分的大小,则确定待读取的数据在与所述缓冲处理子模块相关联的缓冲中;以及
如果所述相对偏移量大于或等于所述数据存储面在所述计算集群的缓冲中的部分的大小,则确定待读取的数据不在与所述缓冲处理子模块相关联的缓冲中而在所述二级缓存或者所述外部存储器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011327689.0A CN112416251B (zh) | 2020-11-24 | 2020-11-24 | 计算系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011327689.0A CN112416251B (zh) | 2020-11-24 | 2020-11-24 | 计算系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112416251A true CN112416251A (zh) | 2021-02-26 |
CN112416251B CN112416251B (zh) | 2023-02-10 |
Family
ID=74778056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011327689.0A Active CN112416251B (zh) | 2020-11-24 | 2020-11-24 | 计算系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112416251B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104516940A (zh) * | 2013-08-30 | 2015-04-15 | 凯为公司 | 用于处理有限自动机的引擎架构 |
KR20170035093A (ko) * | 2015-09-22 | 2017-03-30 | 목포대학교산학협력단 | 다중 채널 토폴로지 관리 방법 |
CN107295080A (zh) * | 2017-06-19 | 2017-10-24 | 北京百度网讯科技有限公司 | 应用于分布式服务器集群的数据存储方法和服务器 |
CN107368583A (zh) * | 2017-07-21 | 2017-11-21 | 郑州云海信息技术有限公司 | 一种多集群信息查询的方法及系统 |
WO2018059353A1 (zh) * | 2016-09-29 | 2018-04-05 | 广州华多网络科技有限公司 | 消息处理方法及装置 |
CN109753445A (zh) * | 2017-11-02 | 2019-05-14 | 华为技术有限公司 | 一种缓存访问方法、多级缓存系统及计算机系统 |
CN111919202A (zh) * | 2018-03-31 | 2020-11-10 | 美光科技公司 | 多线程自调度可重新配置计算架构的执行控制 |
-
2020
- 2020-11-24 CN CN202011327689.0A patent/CN112416251B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104516940A (zh) * | 2013-08-30 | 2015-04-15 | 凯为公司 | 用于处理有限自动机的引擎架构 |
KR20170035093A (ko) * | 2015-09-22 | 2017-03-30 | 목포대학교산학협력단 | 다중 채널 토폴로지 관리 방법 |
WO2018059353A1 (zh) * | 2016-09-29 | 2018-04-05 | 广州华多网络科技有限公司 | 消息处理方法及装置 |
CN107295080A (zh) * | 2017-06-19 | 2017-10-24 | 北京百度网讯科技有限公司 | 应用于分布式服务器集群的数据存储方法和服务器 |
CN107368583A (zh) * | 2017-07-21 | 2017-11-21 | 郑州云海信息技术有限公司 | 一种多集群信息查询的方法及系统 |
CN109753445A (zh) * | 2017-11-02 | 2019-05-14 | 华为技术有限公司 | 一种缓存访问方法、多级缓存系统及计算机系统 |
CN111919202A (zh) * | 2018-03-31 | 2020-11-10 | 美光科技公司 | 多线程自调度可重新配置计算架构的执行控制 |
Also Published As
Publication number | Publication date |
---|---|
CN112416251B (zh) | 2023-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7406568B2 (en) | Buffer allocation for split data messages | |
US8521962B2 (en) | Managing counter saturation in a filter | |
CA2170458C (en) | Multi-cluster computer system | |
CN114827145B (zh) | 服务器集群系统、元数据的访问方法及装置 | |
US20080162872A1 (en) | Data processing system, method and interconnect fabric supporting high bandwidth communication between nodes | |
CN110858188B (zh) | 具有分布式信箱结构的多处理器系统及其沟通方法 | |
US6484240B1 (en) | Mechanism for reordering transactions in computer systems with snoop-based cache consistency protocols | |
US10545898B2 (en) | Shared resource access arbitration method, and shared resource access arbitration device and shared resource access arbitration system for performing same | |
CN115361336B (zh) | 具有缓存的路由器、路由交换网络系统、芯片及路由方法 | |
US7916720B2 (en) | Slave network interface circuit for improving parallelism of on-chip network and system thereof | |
US9207753B2 (en) | Multiple-queue multiple-resource entry sleep and wakeup for power savings and bandwidth conservation in a retry based pipeline | |
US7610463B2 (en) | Method and apparatus for performing an atomic semaphore operation | |
US20130019032A1 (en) | Apparatus and method for generating interrupt signal that supports multi-processor | |
US9697118B1 (en) | Memory controller with interleaving and arbitration scheme | |
CN112416251B (zh) | 计算系统 | |
JP2007094649A (ja) | アクセス調停回路 | |
US10445267B2 (en) | Direct memory access (DMA) unit with address alignment | |
US8433859B2 (en) | Apparatus and method for buffer management for a memory operating | |
US8521968B2 (en) | Memory controller and methods | |
US8769239B2 (en) | Re-mapping memory transactions | |
US20210011716A1 (en) | Processing circuit, information processing apparatus, and information processing method | |
EP2911061A2 (en) | Buffer processing method and device | |
JP2537526B2 (ja) | マルチプロセッサシステム | |
US20230342314A1 (en) | Memory Request Timeouts Using a Common Counter | |
JPH11120157A (ja) | 並列コンピュータシステム内の高速通信のための方法及びこの方法によって操作される並列コンピュータシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 201114 room 1302, 13 / F, building 16, 2388 Chenhang Road, Minhang District, Shanghai Patentee after: Shanghai Bi Ren Technology Co.,Ltd. Country or region after: China Address before: 201114 room 1302, 13 / F, building 16, 2388 Chenhang Road, Minhang District, Shanghai Patentee before: Shanghai Bilin Intelligent Technology Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |