存储管理方法、存储管理装置以及计算机系统

文档序号:829259 发布日期:2021-03-30 浏览:15次 >En<

阅读说明:本技术 存储管理方法、存储管理装置以及计算机系统 (Storage management method, storage management device and computer system ) 是由 杨凯歌 林江 曹俊 于 2020-12-09 设计创作,主要内容包括:本公开提供一种存储管理方法、存储管理装置以及计算机系统,该存储管理装置包括存储通道组,每个存储通道组包括:至少两个存储通道;以及共享目录,其中,每个存储通道包括一致性主代理,共享目录被配置为存储多个并列的缓存中的缓存数据的缓存状态信息,可分别由每个存储通道的一致性主代理访问,一致性主代理被配置为根据接收的存储访问请求,访问共享目录,并根据共享目录存储的缓存状态信息对多个并列的缓存进行缓存一致性维护。该存储管理装置的多个存储通道共享一个目录,以进行缓存一致性维护,整个共享目录处于工作状态,即存储通道不会出现有目录闲置不工作的情况,从而使得存储管理装置和计算机系统的性能更好。(The present disclosure provides a storage management method, a storage management apparatus, and a computer system, the storage management apparatus including storage channel groups, each storage channel group including: at least two storage channels; and the shared directory is configured to store cache state information of cache data in a plurality of parallel caches, and can be accessed by the consistency master agent of each storage channel respectively, and the consistency master agent is configured to access the shared directory according to a received storage access request and perform cache consistency maintenance on the plurality of parallel caches according to the cache state information stored by the shared directory. A plurality of storage channels of the storage management device share one directory to maintain cache consistency, and the whole shared directory is in a working state, namely the storage channels do not have the situation that the directory is idle and does not work, so that the performance of the storage management device and a computer system is better.)

存储管理方法、存储管理装置以及计算机系统

技术领域

本公开的实施例涉及一种存储管理方法、存储管理装置以及计算机系统。

背景技术

随着半导体技术的进步,处理器设计者可以利用更多的晶体管资源来实现更高性能的芯片。与此同时,目标工作负载也在不停地变化,从早期以科学计算为主到今天个人面应用、服务器事务处理、电子商务应用和各种嵌入式应用并存。

在应用需求和半导体工艺水平提升的双重推动下,更高并行度的片上多处理器结构应运而生,并成为目前高性能处理器体系结构发展的最新方向。Cache(高速缓存,简称缓存)一致性作为多处理器的一大核心技术成为学术界和工业界研究的热点,并且为了进一步提高多核处理器的性能,高速缓存的管理成为多核处理器研究中的一个重要问题。

发明内容

本公开的实施例提供了一种存储管理方法、存储管理装置以及计算机系统,由多个存储通道共享一个共享目录,以进行缓存一致性维护,使得存储管理装置和计算机系统的性能更好。

本公开至少一实施例提供了一种存储管理装置,包括存储通道组,每个所述存储通道组包括:

至少两个存储通道;以及

共享目录,

其中,每个所述存储通道包括一致性主代理,所述共享目录被配置为存储多个并列的缓存中的缓存数据的缓存状态信息,可分别由每个所述存储通道的一致性主代理访问,

所述一致性主代理被配置为根据接收的存储访问请求,访问所述共享目录,并根据所述共享目录存储的所述缓存状态信息对所述多个并列的缓存进行缓存一致性维护。

例如,在本公开至少一实施例提供的一种存储管理装置中,所述缓存状态信息包括所述缓存中的缓存数据的一致性状态以及所述缓存中的缓存数据的缓存地址,所述缓存中的缓存数据由至少一个存储装置提供,所述缓存数据的缓存状态信息包括的缓存地址为提供所述缓存数据的所述存储装置中存储所述缓存数据的存储器地址。

例如,在本公开至少一实施例提供的一种存储管理装置中,所述存储访问请求包括由处理器发送的待处理的操作以及与所述操作对应的目标存储访问地址,所述目标存储访问地址为用于待访问的存储通道的所述存储装置中存储目标数据的存储器地址,所述处理器根据所述目标存储访问地址将所述存储访问请求发送至所述待访问的存储通道的一致性主代理。

例如,在本公开至少一实施例提供的一种存储管理装置中,所述待处理的操作为读操作,所述存储访问请求包括所述读操作以及与所述读操作对应的目标存储访问地址,以用于读取所述目标数据;或者,

所述待处理的操作为写操作,所述存储访问请求包括所述写操作,以及包括与所述写操作对应的目标存储访问地址和待写入所述目标存储访问地址的修改数据,以用于将所述目标存储访问地址存储的所述目标数据替换成所述修改数据。

例如,在本公开至少一实施例提供的一种存储管理装置中,所述共享目录包括目录存储器,所述目录存储器按照目录存储地址存储所述缓存状态信息,所述存储访问请求包括的目标存储访问地址与所述目录存储地址相对应,使得所述一致性主代理根据所述存储访问请求的目标存储访问地址访问所述共享目录中与所述目标存储访问地址相对应的目录存储地址。

例如,在本公开至少一实施例提供的一种存储管理装置中,每个所述目录存储地址存储一个或多个缓存状态信息,每个所述缓存状态信息分别与所述目录存储地址的地址子空间相对应。

例如,在本公开至少一实施例提供的一种存储管理装置中,所述共享目录还包括仲裁分发模块,所述仲裁分发模块包括仲裁子模块,所述仲裁分发模块包括的仲裁子模块被配置为,响应于多个所述存储通道的一致性主代理同时访问所述共享目录,通过仲裁以确定多个所述一致性主代理按照访问次序访问所述目录存储器,获取所述缓存状态信息。

例如,在本公开至少一实施例提供的一种存储管理装置中,所述目录存储器包括N个子目录存储器,每个子目录存储器包括一个或多个用于存储所述一个或多个缓存状态信息的所述目录存储地址,N为大于等于1的整数,

所述仲裁分发模块确定在同一时刻可访问所述目录存储器的一致性主代理的个数M小于等于N,每个所述子目录存储器在所述同一时刻前来访问的所述一致性主代理的个数不超过1个,M为大于等于1的整数。

例如,在本公开至少一实施例提供的一种存储管理装置中,所述仲裁分发模块还包括分发子模块,所述分发子模块被配置为将从所述目录存储器读取的所述缓存状态信息分别分发给对应存储通道的一致性主代理。

例如,在本公开至少一实施例提供的一种存储管理装置中,所述目录存储地址的每个所述地址子空间还分别用于存储通道信息,使得所述一致性主代理根据同一目录存储地址的同一地址子空间一并读取所述缓存状态信息和所述通道信息,所述仲裁分发模块根据所述通道信息将与所述通道信息存于所述同一地址子空间的所述缓存状态信息分发给对应存储通道的一致性主代理。

本公开至少一实施例提供了一种存储管理方法,包括:

对于包括至少两个存储通道的存储通道组,提供至少一个共享目录,其中,所述共享目录存储多个并列的缓存中的缓存数据的缓存状态信息;

通过向所述存储通道组中至少一个所述存储通道的一致性主代理分别发送存储访问请求,以访问所述共享目录,并根据所述共享目录存储的所述缓存状态信息对所述多个并列的缓存进行缓存一致性维护。

例如,在本公开至少一实施例提供的一种存储管理方法中,所述缓存状态信息包括:所述缓存中的缓存数据的一致性状态以及所述缓存中的缓存数据的缓存地址,所述缓存中的缓存数据由至少一个存储装置提供,所述缓存数据的缓存状态信息包括的缓存地址为提供所述缓存数据的所述存储装置中存储所述缓存数据的存储器地址。

例如,在本公开至少一实施例提供的一种存储管理方法中,通过向所述存储通道组中至少一个所述存储通道的一致性主代理分别发送存储访问请求,以访问所述共享目录,包括:

使得所述存储访问请求包括待处理的操作以及与所述操作对应的目标存储访问地址,其中,所述目标存储访问地址为用于待访问的存储通道的所述存储装置中存储目标数据的存储器地址,

根据所述目标存储访问地址将所述存储访问请求分别发送至所述待访问的存储通道的一致性主代理。

例如,在本公开至少一实施例提供的一种存储管理方法中,所述待处理的操作为读操作,所述存储访问请求包括所述读操作以及与所述读操作对应的目标存储访问地址,以用于读取所述目标数据;或者,

所述待处理的操作为写操作,所述存储访问请求包括所述写操作,以及包括与所述写操作对应的目标存储访问地址和待写入所述目标存储访问地址的修改数据,以用于将所述目标存储访问地址存储的所述目标数据替换成所述修改数据。

例如,在本公开至少一实施例提供的一种存储管理方法中,访问所述共享目录,包括:从所述共享目录读取所述缓存状态信息,和/或,将所述缓存状态信息写入所述共享目录。

例如,在本公开至少一实施例提供的一种存储管理方法中,从所述共享目录读取所述缓存状态信息,和/或,将所述缓存状态信息写入所述共享目录,包括:所述共享目录按照目录存储地址存储所述缓存状态信息,所述存储访问请求包括的目标访问地址和所述目录存储地址相对应,使得根据所述存储访问请求的目标访问地址访问所述共享目录中相对应的目录存储地址,以读取所述目录存储地址存储的缓存状态信息,和/或,以写入缓存状态信息至所述目录存储地址。

例如,在本公开至少一实施例提供的一种存储管理方法中,每个所述目录存储地址存储一个或多个缓存状态信息,每个所述缓存状态信息分别与所述目录存储地址的地址子空间相对应。

例如,在本公开至少一实施例提供的一种存储管理方法中,从所述共享目录读取所述缓存状态信息,还包括:

同时向所述存储通道组中多个所述存储通道的一致性主代理分别发送所述存储访问请求后,通过仲裁以确定按照访问次序来根据所述存储访问请求访问所述共享目录,分别获取所述缓存状态信息。

例如,在本公开至少一实施例提供的一种存储管理方法中,所述共享目录读取所述缓存状态信息,还包括:

将从所述共享目录读取的所述缓存状态信息分发到对应存储通道的一致性主代理。

例如,在本公开至少一实施例提供的一种存储管理方法中,将从所述共享目录读取的所述缓存状态信息分发到对应存储通道的一致性主代理,包括:

根据所述目录存储地址的每个所述地址子空间存储的通道信息,将与所述通道信息存于同一地址子空间且被一并读出的所述缓存状态信息分发到对应存储通道的一致性主代理,其中,所述目录存储地址的地址子空间存储的所述通道信息是和所述缓存状态信息一并被写入至所述地址子空间。

例如,在本公开至少一实施例提供的一种存储管理方法中,根据所述共享目录存储的所述缓存状态信息对所述多个并列的缓存进行缓存一致性维护,包括:

响应于所述存储访问请求并得到访问结果,将与所述访问结果和所述存储访问请求匹配的缓存状态信息写入所述共享目录以更新所述共享目录。

例如,在本公开至少一实施例提供的一种存储管理方法中,响应于所述存储访问请求并得到访问结果,将与所述访问结果和所述存储访问请求匹配的缓存状态信息写入所述共享目录以更新所述共享目录,包括:

响应于所述共享目录的目录存储地址包括缓存地址与所述存储访问请求的目标访问地址相同的第一缓存状态信息,将与所述访问结果和所述存储访问请求匹配的第二缓存状态信息写入所述目录存储地址,使得所述目录存储地址的对应地址子空间的第一缓存状态信息被更新为所述第二缓存状态信息;

或者,响应于所述共享目录的目录存储地址包括的所有第一缓存状态信息的缓存地址与所述存储访问请求的目标存储访问地址均不相同,将与所述访问结果和所述存储访问请求匹配的第二缓存状态信息写入所述目录存储地址,使得所述目录存储地址中未存储所述第一缓存状态信息的地址子空间来存储所述第二缓存状态信息,或者,选择所述目录存储地址中用于存储所述第一缓存状态信息的其中一个地址子空间来存储所述第二缓存状态信息。

本公开至少一实施例提供了一种计算机系统,包括:

多个并列的处理节点,其中,每个所述处理节点包括处理器以及缓存;

存储管理装置,其中,所述存储管理装置包括存储通道组,每个所述存储通道组包括:至少两个存储通道;以及共享目录,其中,每个所述存储通道包括一致性主代理,所述共享目录被配置为存储多个并列的缓存中的缓存数据的缓存状态信息,可分别由每个所述存储通道的一致性主代理访问,所述一致性主代理被配置为根据接收的存储访问请求,访问所述共享目录,并根据所述共享目录存储的所述缓存状态信息对所述多个并列的处理节点的缓存进行缓存一致性维护;

至少一个存储装置,被配置为与所述存储管理装置通信,且通过所述至少两个存储通道向所述多个并列的处理节点的缓存提供缓存数据。

附图说明

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为一种基本的多核处理器多缓存的计算机系统的示意图;

图2为本公开一些实施例提供的一种包括存储管理装置的计算机系统的示意图;

图3为本公开又一些实施例提供的一种包括存储管理装置的计算机系统的示意图;以及

图4为本公开一些实施例提供的一种共享目录的组成示意图。

具体实施方式

下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。

除非另有定义,本公开实施例使用的所有术语(包括技术和科学术语)具有与本公开所属领域的普通技术人员共同理解的相同含义。还应当理解,诸如在通常字典里定义的那些术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非本公开实施例明确地这样定义。

本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。同样,“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。

如今在多核处理器和多高速缓存(Cache,简称缓存)的计算机系统中,缓存可以缓存大量数据,这些缓存数据可能是独占的,也可能在不同缓存中保存有相同存储器地址的缓存数据副本。当不同的缓存对所缓存的相同存储器地址的缓存数据进行操作时,会产生一致性问题。

目前也出现了很多方法来维护一致性,例如,当多个缓存具有相同缓存数据副本时,若计算机系统的其中某个处理器想修改某个缓存数据时,该数据在其他缓存的副本将被标记无效,以避免发生一致性错误。

一般来说,实现缓存一致性维护的方式有两种,一种是基于广播,另一种是基于目录。随着多核多处理器系统的规模越来越大,基于目录的缓存一致性协议成为当今的主流,使得多核多处理器系统能提高缓存一致性维护的效率。基于目录的一致性协议可以帮助追踪多个缓存中的缓存状态,例如缓存中只有单一副本、有多个副本、或者该数据只存在主存中等状态。

多核处理器系统通常包含多个存储通道,处理器根据访问地址访问不同存储通道的存储器。在基于目录的一致性协议的系统中,每个存储器通道通常分别与一个目录相关,该目录会追踪访问该存储通道的缓存的状态,并把追踪到的缓存状态信息存储在目录中。当一致性代理发现一致性事务(例如需要维护缓存一致性的各种请求及其处理过程等)之后,会查询目录中追踪的缓存状态信息并发出相应的探针完成缓存一致性维护。

图1为一种基本的多核处理器多缓存的计算机系统的示意图。如图1所示,计算机系统的存储管理装置包括两个存储通道,每个存储通道上分别包括一个一致性主代理,每个一致性主代理分别与一个目录相连,每个目录分别记录缓存状态信息以用于维护缓存一致性。

发明人发现:在图1所示的计算机系统中,存储管理装置的多个存储通道中每个存储通道都包含一个一致性主代理以及一个与之对应的目录,当需要访问某个存储通道的时候,先由一致性主代理查询目录并完成一致性维护并且访问相应的存储器或缓存。多存储通道对应多个目录,每个目录与存储通道一一对应,并且系统中的存储器通道通常可以不用全部启用,即多个存储通道中只有部分存储通道有连接存储器,其他通道不连接存储器,多核处理器多缓存的计算机系统仍能正常工作,但是在存储通道没有完全使用的情况下,未使用的存储通道的一致性主代理以及目录也是处于闲置未工作的状态,而且由于包括闲置目录在内的每个目录都需要存储大量缓存状态信息,因此会占用较大的电路面积,即该闲置不工作的目录会浪费大量的电路面积。

本公开至少一实施例提供了一种存储管理装置,包括存储通道组,每个存储通道组包括:

至少两个存储通道;以及

共享目录,

其中,每个存储通道包括一致性主代理,共享目录被配置为存储多个并列的缓存中的缓存数据的缓存状态信息,可分别由每个存储通道的一致性主代理访问;一致性主代理被配置为根据接收的存储访问请求,访问共享目录,并根据共享目录存储的缓存状态信息对多个并列的缓存进行缓存一致性维护。

该实施例的存储管理装置的多个存储通道共享一个目录,进行缓存一致性维护,该整个共享目录处于工作状态,相较于上述多个存储通道分别对应一个独立目录的情况,即使在有通道未被使用的情况下,该实施例也不会出现有目录闲置不工作的情况,从而使得存储管理装置和计算机系统的性能更好。

本公开至少一实施例提供了一种存储管理装置,例如,该存储管理装置包括一个存储通道组或包括多个存储通道组,其中,每个存储通道组分别包括多个存储通道和一个共享目录。下文主要是以存储管理装置的一个存储通道组包括2个存储通道和1个共享目录为例进行说明,但是本公开实施例对存储通道组的数目以及每个存储通道组中包括的存储通道的数目并不作限制,例如,一个存储通道组中的3个存储通道共享1个共享目录,或者,一个存储通道组中的4个存储通道共享2个共享目录(比如每两个存储通道分别共享一个共享目录),又或者,5个存储通道共享2个共享目录(比如两个存储通道共享一个共享目录,另外三个存储通道共享另一个共享目录),只要让每个存储通道组中的多个存储通道共享一个共享目录即可,本公开实施例在此不做穷举和赘述。

本公开至少一实施例还提供了一种存储管理方法。

本公开至少一实施例还提供了一种包括存储管理装置的计算机系统。

图2为本公开一些实施例提供的一种包括存储管理装置的计算机系统的示意图。

例如,如图2所示,计算机系统包括存储管理装置、多个并列的处理节点和两个存储装置(例如图2所示的存储器501和存储器502),该存储管理装置包括一个存储通道组,该存储通道组包括2个存储通道和1个共享目录。

每个处理节点包括一个处理器节点(下文简称为处理器)以及一个高速缓存(下文简称缓存),每个处理节点的处理器配置为在工作中访问对应的缓存或者通过存储管理装置访问存储器。本公开对于处理器和存储器的类型以及实现方式不作限制,例如处理器可以是单核处理器或多核处理器,可以是RISC或CISC处理器等,例如存储器可以是半导体存储器,例如易失性存储器或非易失性存储器。例如,在一些示例中,如图2所示,第一处理器节点包括处理器节点101和高速缓存201,第二处理器节点包括处理器节点102和高速缓存202,第三处理器节点包括处理器节点103和高速缓存203,以及第四处理器节点包括处理器节点104和高速缓存204。

存储器501和存储器502被配置为与存储管理装置通信,并且通过两个存储通道向多个并列的处理节点的缓存提供缓存数据。

需要说明的是,图2的四个处理节点和两个存储器仅为一种示例,并不是对本公开的限制,具体可以根据实际需要进行自由调整,本公开实施例在此不做穷举和赘述。

例如,在一些示例中,每个存储通道包括一致性主代理(HomeAgent)。一致性主代理是计算机系统用于缓存一致性维护技术领域的一个概念,其在芯片中是一个用于处理存储器相关缓存一致性事务的电路模块,例如一致性主代理包含各种对存储器的访问事务的处理和维护一致性的探针处理模块,即一致性主代理的具体电路设计只要以本文实施例实现的功能和操作为准即可,本公开实施例对此不作限制,并且在此不做赘述。

如图2所示,存储通道组包括的2个存储通道分别记为第一存储通道和第二存储通道,第一存储通道包括一致性主代理301,第二存储通道包括一致性主代理302。一致性主代理301和一致性主代理302共享一个目录,即一致性主代理301和一致性主代理302与共享目录4通信连接,该共享目录4被配置为存储多个并列的缓存中的缓存数据的缓存状态信息,可分别由每个存储通道的一致性主代理(例如一致性主代理301和一致性主代理302)访问。

例如,在一些示例中,一个存储通道是指从一个存储器到相连的一致性主代理再到一致性互联的通道。例如,在图2示例中,第一存储通道是指从存储器501到相连的一致性主代理301再到一致性互联6的通道,第二存储通道是指从存储器502到相连的一致性主代理302再到一致性互联6的通道。该一致性互联例如可以通过采用总线且采用适当的内部通信协议实现,本公开对此不作限制。

例如,在一些示例中,一致性主代理(例如一致性主代理301和一致性主代理302)被配置为根据接收的存储访问请求,访问共享目录4,并根据共享目录4存储的缓存状态信息对多个并列的处理节点的缓存进行缓存一致性维护。例如,有关第一存储通道和第二存储通道的缓存状态信息存储在同一个共享目录4中,当需要进行一致性维护时也访问这同一个共享目录4。

例如,在一些示例中,缓存状态信息包括缓存中的缓存数据的一致性状态以及缓存中的缓存数据的缓存地址,其中,缓存中的缓存数据由至少一个存储器提供,缓存数据的缓存状态信息中包括的缓存地址为提供该缓存数据的存储器中存储该缓存数据的存储器地址。例如,缓存数据的缓存状态信息中包括的一致性状态可以是修改(M)或独占(E)或共享(S)或无效(I)等等,本公开实施例对此不作限制。

例如,在一些示例中,一致性主代理接收到的存储访问请求包括:由处理器发送的待处理的操作以及与该操作对应的目标存储访问地址,其中,该目标存储访问地址为用于待访问的存储通道的存储器中存储目标数据的存储器地址,因此,处理器根据该目标存储访问地址将相应的存储访问请求发送至待访问的存储通道的一致性主代理。比如,一致性主代理301接收到处理器101发送的待处理的读操作以及用于存储器501中存储目标数据的存储器地址。

例如,在一些示例中,处理器发送的待处理的操作为读写操作。

例如,当该待处理的操作为读操作时,则该存储访问请求包括该读操作以及与该读操作对应的目标存储访问地址,以用于读取目标存储访问地址存储的目标数据。示例地,当某一个处理节点的处理器需要向缓存进行读操作时,若在缓存找不到所需的数据时,此时该处理器需要发出存储访问请求以向其他高速缓存或存储器获取所需的数据;具体而言,处理器向存储通道发出的存储访问请求,需要先经过待访问的存储通道的一致性主代理,该一致性主代理通过访问共享目录4的缓存状态信息,并通过存储访问请求的目标存储访问地址寻找共享目录中对应的缓存状态信息,再根据访问结果,以使处理器从其他缓存或存储器获取所需的数据。

例如,当该待处理的操作为写操作时,存储访问请求包括该写操作以及包括与该写操作对应的目标存储访问地址和待写入目标存储访问地址的修改数据,以用于将目标存储访问地址存储的目标数据替换成该修改数据。

值得说明的是,本公开实施例对某一个处理器发出的存储访问请求的次数或用于发出存储访问请求的处理器的数目等均不作限制,可以根据实际需要进行自由调整。

例如,在一些示例中,当一致性主代理访问共享目录4时,可以是从共享目录读取缓存状态信息,也可以是将缓存状态信息写入共享目录。

图3为本公开又一些实施例提供的一种包括存储管理装置的计算机系统的示意图。

例如,如图3所示,存储管理装置的存储通道组中的其中一个存储通道的一致性主代理301与存储器501通信连接,另外一个存储通道的一致性主代理302未与相应的一个存储器进行通信连接,这意味着共享目录4此时由一致性主代理301所在的一个存储通道独占。例如,将已与存储器进行通信连接的一致性主代理所在的存储通道记为可用存储通道,以及未与存储器进行通信连接的一致性主代理所在的存储通道记为不可用存储通道,则任一处理器根据系统的存储通道使能,向可用存储通道发送存储访问请求,而不会向不可用存储通道发送存储访问请求。

例如,在一些示例中,图2和图3的虚框表示计算机系统的内部的处理器芯片,虚框外的装置均是表示计算机系统的外部的器件,例如,电脑上设置存储器插槽,当存储通道组包括两个一致性主代理时,则对应有两个存储器插槽,在实际使用时,这两个存储器插槽可以都插上存储器,即两个存储通道均为可用存储通道,或者,这两个存储器插槽可以只选择其中一个存储器插槽插上存储器,即此时只有一个可用存储通道,本公开实施例对此不作限制,可以根据应用场景或运行速度或成本等进行自由调整。

值得注意的是,无论存在多少个存储通道的一致性主代理,计算机系统中至少存在一个可用存储通道(即至少有一个存储器插槽插有存储器),使得计算机系统能够正常运行,否则计算机系统的高速缓存均没有缓存目标,没办法正常使用。

另外,对于系统的存储通道使能,可以理解为:虽然存储通道组包括多个存储通道以及一致性主代理,但是可能有部分一致性主代理与外部的存储器通信连接,也有另一部分一致性主代理不与外部的存储器通信连接,而处理器需要将存储访问请求发送到与外部的存储器进行通信连接的可用存储通道,即处理器事先通过计算机系统的其他功能模块获知可用存储通道的相关信息,并发出相应的存储访问请求与之对应的可用存储通道。

值得注意的是,尽管图3示例中只有一致性主代理301所在的一个存储通道可用并且共享目录由这一个存储通道独占,但是本公开该示例的共享目录4仍然为共享目录,其相较于两个分离的独立目录在一个存储通道可用时会出现一个目录闲置不工作的情况,本公开该示例的整个共享目录4处于工作状态,则不会出现有目录闲置不工作的情况,并且共享目录4在单个存储通道可用情况下的目录容量大小翻倍(例如等于2倍或接近2倍),相较于两个分离的独立目录在单个存储通道可用情况,本公开该示例的整个共享目录可以被使用,共享目录不容易出现降级等影响性能的问题,局部不均匀的耐受程度越好,系统的性能会更好。

图4为本公开一些实施例提供的一种共享目录的组成示意图。

如图4所示,共享目录4包括目录存储器401,其中,目录存储器401按照目录存储地址存储各个缓存状态信息,并且,存储访问请求包括的目标存储访问地址与目录存储器401的目录存储地址相对应,使得一致性主代理根据存储访问请求的目标存储访问地址去访问共享目录4中与目标存储访问地址对应的目录存储地址,以读取目录存储地址存储的缓存状态信息,和/或,以写入缓存状态信息至目录存储地址。

需要注意的是,有关存储访问请求包括的目标存储访问地址与目录存储器401的目录存储地址相对应的方式,本公开实施例对此不作限制,例如,目录存储地址1能够存储10条缓存状态信息,该目录存储地址1中存储的缓存地址均为偶数,目录存储地址2也能够存储10条缓存状态信息,该目录存储地址2中存储的缓存地址均为奇数,若当前的存储访问请求包括的目标存储访问地址是偶数,此时需要从目录存储地址1中去访问查询,而不能去目录存储地址2中去访问查询,此方式仅仅为一个示例,其不会对本公开实施例的使用范围带来任何限制,并且本公开实施例在此不做赘述。

例如,在一些示例中,为了响应某个处理器发出的存储访问请求,与存储访问请求相应存储通道的一致性主代理会得到相应的访问结果(例如共享目录4的目录存储地址包括缓存地址与存储访问请求的目标访问地址相同的缓存状态信息,或者,共享目录4的目录存储地址包括的所有第一缓存状态信息的缓存地址与存储访问请求的目标存储访问地址均不相同),一致性主代理会将与该访问结果和该存储访问请求所匹配的缓存状态信息写入到共享目录4以更新共享目录4。

例如,在一些示例中,每个目录存储地址可以存储一个缓存状态信息,也可以存储多个缓存状态信息,每个缓存状态信息分别与目录存储地址的地址子空间相对应。比如,目录存储地址的位宽为32bit并且目录存储地址包括两个缓存状态信息,将第一个缓存状态信息置于目录存储地址的低16bit(即一个地址子空间,该低16bit可以称之为目录存储地址的第一个空位)进行存储,以及第二个缓存状态信息置于目录存储地址的高16bit(即另一个地址子空间,该高16bit可以称之为目录存储地址的第二个空位)进行存储。当然,此仅仅为一个示例,而不是对本公开的限制,即本公开实施例对每个目录存储地址存储的缓存状态信息不作限制,并且在此不做赘述。

值得说明的是,无论是否能够根据存储访问请求找到一个缓存状态信息的缓存地址与存储访问请求的目标存储访问地址相同,该目录存储器401都会具有一个与该存储访问请求的目标存储访问地址相对应的一个目录存储地址供一致性主代理进行访问,只是本公开实施例针对不同的访问结果去进行不同的一致性维护。

例如,在一些示例中,当共享目录4的目录存储地址包括缓存地址与存储访问请求的目标访问地址相同的缓存状态信息(记为第一缓存状态信息),此时一致性主代理将与访问结果和存储访问请求匹配的新的缓存状态信息(记为第二缓存状态信息)写入该目录存储地址,使得该目录存储地址的对应地址子空间的第一缓存状态信息被更新为该第二缓存状态信息。

又例如,在一些示例中,当共享目录4的目录存储地址包括的所有第一缓存状态信息的缓存地址与存储访问请求的目标存储访问地址均不相同,此时一致性主代理将与访问结果和存储访问请求匹配的第二缓存状态信息写入该目录存储地址,使该第二缓存状态信息存到目标存储访问地址中适当的地址子空间。更进一步地,比如,当目标存储访问地址还有空余的地址子空间(即未存储第一缓存状态信息的地址子空间)时,则让目录存储地址中任一空余的地址子空间存储该第二缓存状态信息;又比如,当目标存储访问地址没有空余的地址子空间(即未存储第一缓存状态信息的地址子空间)时,可以选择目录存储地址中用于存储第一缓存状态信息的其中一个地址子空间来存储第二缓存状态信息,即让第二缓存状态信息替换掉该地址子空间中原本存储的第一缓存状态信息,其中,至于选择哪一个已存储第一缓存状态信息的地址子空间,可以根据具体情况进行自由调整,本公开实施例对此不作限制和详细阐述。

据前所述,由于存储访问的局部不均匀性,本公开上述实施例使用1个更大容量的共享目录,比使用2个独立目录可以容纳的不均匀的缓存状态信息更多,不容易出现降级等影响性能的问题,降低了因局部不均匀所导致的驱逐目录的缓存状态信息发生的概率。具体而言,为了平衡多个存储通道的访问数目,通过各种办法让多个存储通道访问数目较为平均,通常是让访问能随机分布在多个存储通道上,但是在较小的时间或者空间局部这种随机的平均效果会变差,而本公开实施例中因为共享目录的容量上升,则可以容纳的空间局部性会变大,不均匀度就变小了,即降低了由于目录组相联个数或每组的容量限制而导致局部分布不均匀的概率。

值得注意的是,本公开上述实施例使用一个更大容量的共享目录,其电路面积与两个独立目录的电路面积之和相比,可以基本相等,也可以稍微小一点,也可以稍微大一点,本公开实施例对此不做限制,但是本公开实施例在只有一个存储通道可用时,不会出现有目录闲置不工作的的情况,因此,本公开实施例共享目录相比分离的独立目录的技术方案,仅增加了很少额外电路,对整体电路面积影响小。

例如,共享目录可由SRAM(静态随机存取存储器,Static Random-Access Memory)实现,该SRAM电路同时支持1个读或写访问,当多个一致性主代理同时访问就会出现并发冲突。为了解决该技术问题,例如,如图4所示,共享目录4设置仲裁分发模块402,其中,该仲裁分发模块402用于多个一致性主代理同时访问共享目录4时处理并发冲突。

例如,在一些示例中,仲裁分发模块402包括仲裁子模块,其中,当多个存储通道的一致性主代理同时访问共享目录4(例如图4中一致性主代理301和一致性主代理302同时访问共享目录4)时,需要仲裁分发模块402的仲裁子模块通过仲裁,将冲突或不冲突的访问处理好,使得一致性主代理顺利地访问目录存储器401。例如,仲裁分发模块402的仲裁子模块通过仲裁来确定多个一致性主代理按照设定的访问次序访问共享目录4的目录存储器401,分别获取相应缓存状态信息,具体实现方案本公开实施例不作限定。

值得注意的是,本公开实施例不仅适用于多个存储通道的一致性主代理同时访问共享目录4,同样适用于某一时候只有一个存储通道的一致性主代理访问共享目录4,本公开实施例对此不作限制。

具体而言,当某一时候只有一个存储通道的一致性主代理访问共享目录4,仲裁分发模块402包括的仲裁子模块依然可以发挥仲裁作用,让这唯一的一致性主代理访问共享目录。或者,当某一时候只有一个存储通道的一致性主代理访问共享目录4,仲裁分发模块402包括的仲裁子模块此时不执行仲裁作用,即这唯一的一致性主代理直接访问共享目录,本公开实施例对具体实现方式不作限制,并且在此不做赘述。

例如,在一些示例中,图4中的目录存储器401包括N个子目录存储器,N为大于等于1的整数。每个子目录存储器包括一个或多个目录存储地址,并且每个目录存储地址可以存储一个缓存状态信息或多个缓存状态信息。

例如,在一些示例中,每个子目录存储器在同一时刻前最多只能有一个一致性主代理前来进行访问,对应地,仲裁分发模块402的仲裁子模块确定在同一时刻可访问整个目录存储器401的一致性主代理的个数M小于等于N,M为大于等于1的整数。比如,即使各个一致性主代理访问的不是同一个目录存储地址,只要这些一致性主代理待访问的地址落在同一个子目录存储器,则仲裁分发模块402的仲裁子模块需要使在同一时刻就只能让其中的一个致性主代理进行访问。值得说明的是,本公开实施例对目录存储器401包括的子目录存储器的数目以及每个子目录存储器的具体设计不作限制,可以根据电路设计需要考虑的一些面积和时序、成本等因素进行确定,本公开实施例在此不做赘述。

例如,如图4所示,仲裁分发模块402还包括分发子模块,仲裁分发模块402的分发子模块被配置为将从目录存储器401读取的缓存状态信息分别分发给对应存储通道的一致性主代理(例如一致性主代理301或一致性主代理302)。

由上可知,仲裁分发模块402中的仲裁子模块是一致性主代理访问共享目录以读取缓存状态信息时发挥仲裁作用,而仲裁分发模块402中的分发子模块是在将读取出的缓存状态信息提供给一致性主代理使发挥分发作用。

与分离的目录相比,例如,本公开实施例的共享目录4的目录存储地址的每个地址子空间不仅存储缓存状态信息,同时还用于额外存储通道信息。例如,在一些示例中,目录存储地址的地址子空间存储的通道信息是和缓存状态信息一并被写入至地址子空间,如图4示例中的缓存状态信息A1与通道信息B1,以及缓存状态信息A2与通道信息B2。

由此,一致性主代理可以根据同一目录存储地址的同一地址子空间一并读取出缓存状态信息和通道信息,例如,一致性主代理可以一并读取出缓存状态信息A1与通道信息B1或一并读取出缓存状态信息A2与通道信息B2。

例如,当从共享目录开辟出一定内存空间的目录存储地址,再将目录存储地址继续划分得出相应的地址子空间,若缓存状态信息与对应的通道信息一起被读或一起被写时,可以通过确定读写首地址以及读写的字节数或bit数来实现。示例地,比如一个目录存储地址位宽为64bit,该目录存储地址划分了四个空位(即四个地址子空间),并将每16bit作为一个空位,则第一缓存状态信息和对应的第一通道信息占用了一个16bit,第二缓存状态信息和对应的第二通道信息占用了一个16bit,第三缓存状态信息和对应的第三通道信息占用了一个16bit,第四缓存状态信息和对应的第四通道信息也占用了一个16bit。

据前所述,仲裁分发模块402的分发子模块根据通道信息将与通道信息存于同一地址子空间的缓存状态信息分发给对应存储通道的一致性主代理。比如,仲裁分发模块402的分发子模块根据通道信息B1将与通道信息B1存于同一地址子空间的缓存状态信息A1分发给对应存储通道的一致性主代理301,又根据通道信息B2将与通道信息B2存于同一地址子空间的缓存状态信息A2分发给对应存储通道的一致性主代理302。

例如,在一些示例中,地址子空间存储的通道信息可以是通道编号,比如道信息B1为编号1、道信息B2为编号2,但是本公开实施例的通道信息并不仅限于此,即本公开实施例对通道信息的具体形式不作限制。值得注意的是,为了实现将从目录存储器读取的缓存状态信息分发给对应存储通道的一致性主代理,本公开实施例也不仅限于根据通道信息进行对应分发,任何能够实现缓存状态信息和存储通道的一致性主代理相互对应的方法均属于本公开实施例的保护范围。由此,基于仲裁分发模块402的分发子模块,本公开实施例能够根据读或写访问回复给相应的一致性主代理,可以避免回复给错误的一致性主代理,使得顺利完成缓存一致性维护。

例如,如图4所示,共享目录4还包括共享目录控制模块403,该共享目录控制模块403用于对共享目录4进行配置和控制操作等,以使共享目录的各个部分可以正常配合工作。另外,例如,共享目录4除了包括上述的目录存储器401、仲裁分发模块402和共享目录控制模块403,还包括周围电路与接口,对此本公开实施例不做赘述。

例如,在一些示例中,共享目录控制模块403可以控制协调共享目录4内各模块的相互协同工作(例如共享目录中还包括接口模块等等),以及共享目录控制模块403还可以对仲裁分发模块402进行配置和控制,比如共享目录控制模块403控制仲裁分发模块402进行仲裁和分发。

例如,当多个一致性主代理访问共享目录时,共享目录控制模块403可以通知控制仲裁分发模块402一些存储通道的一致性主代理可以用,以及一些存储通道的一致性主代理不可以用,并且共享目录控制模块403配置仲裁分发模块402的仲裁模式(例如控制仲裁分发模块402应该以何种方式去决定这访问顺序),而仲裁分发模块402本身去确定一致性主代理访问目录存储器的访问顺序。值得注意的是,本公开实施例的共享目录控制模块403的作用不仅限于此,具体需要根据实际情况进行自由调整,并且,本公开实施例对共享目录控制模块403的具体电路设计不作限制,只要以本文实施例实现的功能和操作为准,并且本领域技术人员可以根据本文实施例的相关描述能够得知实现共享目录控制模块403的电路设计的具体方案,本公开实施例也不做赘述。

本公开上述实施例的存储管理装置的多个存储通道共享一个目录,进行缓存一致性维护,该共享目录利用了全部的目录空间,相较于上述多个存储通道分别对应一个独立目录的情况,该实施例在单个存储通道可用时也不会出现有目录闲置不工作的情况,并且共享目录不容易出现降级等影响性能的问题,局部不均匀的耐受程度越好,使得存储管理装置和计算机系统的性能会更好。

本公开至少一实施例还提供了一种存储管理方法,该方法包括:

对于包括至少两个存储通道的存储通道组,提供至少一个共享目录,其中,共享目录存储多个并列的缓存中的缓存数据的缓存状态信息;

通过向存储通道组中至少一个存储通道的一致性主代理分别发送存储访问请求,以访问共享目录,并根据共享目录存储的缓存状态信息对多个并列的缓存进行缓存一致性维护。

需要说明的是,本公开的实施例中,存储管理方法的具体过程和技术效果可以参考上文中关于存储管理装置的描述,此处不再赘述。

本公开至少一实施例提供了一种计算机系统,包括:多个并列的处理节点、存储管理装置和至少一个存储装置。

多个并列的处理节点中每个处理节点包括处理器以及缓存。存储管理装置包括存储通道组,每个存储通道组包括:至少两个存储通道;以及共享目录,其中,每个存储通道包括一致性主代理,共享目录被配置为存储多个并列的缓存中的缓存数据的缓存状态信息,可分别由每个存储通道的一致性主代理访问,一致性主代理被配置为根据接收的存储访问请求,访问共享目录,并根据共享目录存储的缓存状态信息对多个并列的处理节点的缓存进行缓存一致性维护。至少一个存储装置被配置为与存储管理装置通信,且通过至少两个存储通道向多个并列的处理节点的缓存提供缓存数据。

需要说明的是,本公开的实施例中,计算机系统包括的存储管理装置可以参考上文中关于存储管理装置的描述,此处不再赘述。

本公开以上实施例中的各个模块可被分别配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,这些模块可对应于专用的集成电路,也可对应于纯粹的软件代码,还可对应于软件与硬件相结合的模块。

需要说明的是,尽管以上在描述存储管理装置时将其划分为用于分别执行相应处理的模块,然而,本领域技术人员清楚的是,各模块执行的处理也可以在存储管理装置不进行任何具体模块划分或者各模块之间并无明确划界的情况下执行。

有以下几点需要说明:

(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。

(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。

以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:数据处理方法、数据处理装置和计算装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类