基于多优先级的缓存分发系统的制作方法

文档序号:32043340发布日期:2022-11-03 06:05阅读:75来源:国知局
基于多优先级的缓存分发系统的制作方法

1.本发明涉及计算机技术领域,尤其涉及一种基于多优先级的缓存分发系统。


背景技术:

2.在处理请求信息的场景中,通常会遇到多个发送端向多个接收端发送请求信息的情况,通常情况下,接收端需要通常需要一定时间来处理接收到的请求,且在处理过程中不能接收新的请求,现有技术中,通常在多个发送端和多个接收端之间设置一个fifo对请求信息进行缓存,从而平衡多个发送端和多个接收端的带宽和处理速率。但是,不同发送端的响应速率不同,有些响应慢,有些响应快,如果将所通道的请求信息均缓存到一个fifo中,则极易造成不同发送端的请求信息相互堵塞,缓存分发效率低。如果为每一发送端设置一个fifo进行缓存,会占用大量的面积,浪费资源,降低性能。由此可知,如何提供一种合理的缓存分发技术,提高缓存分发效率成为亟待解决的技术问题。
3.此外,如果接收端为cache,应用场景为多个发送端向多个cache请求信息时,在缓存分发后,如果将响应速率不同的发送端对接同一个cache终端,则会降低cache命中率,从而影响了请求信息的处理效率,由此可知,如何提高多个发送端向多个cache发送请求信息的处理效率,也成为亟待解决的技术问题。


技术实现要素:

4.本发明目的在于,提供一种基于多优先级的缓存分发系统,避免了缓存分发中高优先级请求信息的堵塞,提高了缓存分发效率。
5.本发明提供了一种基于多优先级的缓存分发系统,包括:缓冲存储器和至少一个状态更新器,其中,所述缓冲存储器一端与m个发送端相连接,另一端与n个接收端相连接,所述缓冲存储器用于缓存所述m个发送端发送的请求信息,所述m个发送端对应p个优先级,p≤n,每一优先级对应至少一个发送端;所述状态更新器分别与所述缓冲存储器和所述n个接收端相连接,用于存储当前每一缓存请求信息在所述缓冲存储器中的缓存地址信息、对应的发送端优先级信息、接收端标识信息,以及每一接收端当前的状态信息,所述接收端在处理请求信息过程中,对应的状态信息为非空闲状态,在不处理请求信息过程中,对应的状态信息为空闲状态;所述缓冲存储器基于所述状态更新器中当前所存储的信息,将当前能够发出的缓存请求信息中优先级最高的作为待发送的缓存请求信息并确定对应的接收端,将所述待发送的缓存请求信息发送给对应的接收端。
6.本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种基于多优先级的缓存分发系统可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有下列优点:本发明所述系统通过一个缓冲存储器与至少一个状态更新器相配合,使得高优先
级的发送端只受接收端状态影响,不受低优先级发送端的堵塞,状态更新器中仅存储少量信息,无需占用大量的物理空间,实现了不同优先级接收端的缓存请求的合理分发,避免了缓存分发中高优先级请求信息的堵塞,提高了缓存分发效率。
7.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
8.图1为本发明实施例提供的基于多优先级的缓存分发系统示意图;图2为本发明实施例提供的基于多优先级的cache查询系统示意图。
具体实施方式
9.为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种基于多优先级的缓存分发系统以及基于多优先级的cache查询系统的具体实施方式及其功效,详细说明如后。
10.实施例一、实施例一提供了一种基于多优先级的缓存分发系统,如图1所示,包括:缓冲存储器(buffer)和至少一个状态更新器,其中,需要说明的是,缓冲存储器只有一个输入端口和输出端口,在一个周期内只能存入一个请求信息,也只能输出一个请求信息,一个周期可以为一个时钟周期。
11.所述缓冲存储器一端与m个发送端相连接,另一端与n个接收端相连接,所述缓冲存储器用于缓存所述m个发送端发送的请求信息,所述m个发送端对应p个优先级,p≤n,每一优先级对应至少一个发送端。需要说明的是,发送端可以是不同响应等级的发送端,响应速率越高,响应等级越高,实时性要求越高,对应的优先级也越高。可以理解的是,发送端和接收端视具体应用场景而定,发送端具体可以为gpu核、dma(direct memory access,直接存储器访问)端等,接收端具体可以为cache终端等。通常情况下,通过设置缓冲存储器可以匹配多个发送端和多个接收端的速率和带宽等。缓冲存储器的具体大小根据发送端的数量、发送速率、发送频率以及接收端的数量、接收速率等因素来决定。
12.所述状态更新器分别与所述缓冲存储器和所述n个接收端相连接,用于存储当前每一缓存请求信息在所述缓冲存储器中的缓存地址信息、对应的发送端优先级信息、接收端标识信息,以及每一接收端当前的状态信息。需要说明的是,发送端优先级信息可以单独设置,也可以直接指定发送端标识信息对应的优先级,直接通过接收端标识信息来表示优先级信息。所述接收端在处理请求信息过程中,对应的状态信息为非空闲状态,在不处理请求信息过程中,对应的状态信息为空闲状态,可以理解的是,当接收端接收到一个分发的请求信息时,开始处理请求信息,此时进入非空闲状态,当处理完毕时,自动转换为空闲状态。
13.需要说明的是,发送端发送的请求信息中包括发送端标识信息、发送端优先级信息、接收端标识信息、以及请求数据信息,所述请求数据信息为具体所需请求的内容信息。请求信息对应的请求数据均缓存在缓冲存储器中,只有少量的请求信息和接收端所对应的少量标识信息存储在状态更新器中,因此,缓冲存储器的位宽是远大于状态更新器位宽的。
14.所述缓冲存储器基于所述状态更新器中当前所存储的信息,将当前能够发出的缓存请求信息中优先级最高的作为待发送的缓存请求信息并确定对应的接收端,将所述待发送的缓存请求信息发送给对应的接收端。
15.作为一种实施例,在第i周期内:所述缓冲存储器用于,将第i-1周期确定的待发送的缓存请求信息发送给对应的接收端,对应的接收端由空闲状态转换为非空闲状态,可以理解的是,在第i周期内,其他原处于非空闲状态的接收端,处理完对应的请求信息后,状态转换为空闲状态。
16.所述缓冲存储器还用于从m个发送端获取一个当前优先级最高的请求信息存储至所述缓冲存储器中。
17.所述状态更新器用于从所述缓冲存储器中获取第i周期存储的缓存请求信息的缓存地址信息、对应的发送端优先级信息和接收端标识信息,并更新至所述状态更新器中;可以理解的是,第i周期存储的缓存请求信息即为第i周期内,所述缓冲存储器从m个发送端获取的当前优先级最高的请求信息。
18.所述状态更新器还用于获取n个接收端的当前状态信息,并更新至所述状态更新器中。
19.所述状态更新器还用于基于第i周期更新后的信息,确定第i+1周期的待发送的缓存请求信息和对应的接收端,i的取值范围为1到i,i为周期总数。
20.所述缓冲存存储器通过与状态更新器中的状态信息相配合,能够尽可能将高优先级的请求信息分发出去,避免低优先级的发送端的请求信息堵塞高优先级的请求信息。
21.作为一种实施例,所述状态更新器用于执行以下步骤:步骤s1、基于第i周期更新后的接收端状态信息确定当前处于空闲状态的发送端标识信息;步骤s2、基于当前处于空闲状态的发送端标识信息确定候选缓存请求信息;步骤s3、从所述候选缓存请求信息中选择一个发送端优先级最高的缓存请求信息作为第i+1周期的待发送的缓存请求信息。
22.以下通过几个具体实施方式对状态更新器确定待发送的缓存请求信息的过程进行说明:实施方式一、所述步骤s2包括:步骤s211、将所述状态更新器中所有当前处于空闲状态的发送端标识信息对应的缓存请求信息确定为候选缓存请求信息。
23.所述步骤s3包括:步骤s311、判断所述候选缓存请求信息中发送端优先级最高的缓存请求信息数量是否大于1,若大于1,则执行步骤s312,若等于1,执行步骤s313;步骤s312、从所述候选缓存请求信息随机选择一个发送端优先级最高的缓存请求信息作为第i+1周期的待发送的缓存请求信息;步骤s313、直接将发送端优先级最高的缓存请求信息确定为第i+1周期的待发送的缓存请求信息。
24.通过实施方式一能够从当前处于空闲状态的发送端对应的缓存请求信息中随机
选择一个发送端优先级最高的缓存请求信息作为第i+1周期的待发送的缓存请求信息,可以理解的是,具体应用场景中,请求信息数量通常较大,因此,虽然随机选择,但也能实现一个较为均衡的选择概率。
25.实施方式二、所述步骤s2包括:步骤s221、从当前处于空闲状态的发送端标识信息中作为目标接收端;作为示例,所述步骤s221中,具体可采用时间片轮询的算法从当前处于空闲状态的发送端标识信息中选择一个接收端作为目标接收端。
26.通过步骤s221能够使得每一接收端可有均等的机会被选择为目标接收端。
27.步骤s222、将所述状态更新器中所述目标接收端对应的缓存请求信息确定为候选缓存请求信息。
28.所述步骤s3包括:步骤s311、判断所述候选缓存请求信息中发送端优先级最高的缓存请求信息数量是否大于1,若大于1,则执行步骤s312,若等于1,执行步骤s313;步骤s312、从所述候选缓存请求信息随机选择一个发送端优先级最高的缓存请求信息作为第i+1周期的待发送的缓存请求信息;步骤s313、直接将发送端优先级最高的缓存请求信息确定为第i+1周期的待发送的缓存请求信息。
29.实施方式三、所述步骤s2包括:步骤s211、将所述状态更新器中所有当前处于空闲状态的发送端标识信息对应的缓存请求信息确定为候选缓存请求信息。
30.所述步骤s3包括:步骤s321、判断所述候选缓存请求信息中发送端优先级最高的缓存请求信息数量是否大于1,若大于1,则执行步骤s322,若等于1,执行步骤s323;步骤s322、将所述候选缓存请求信息中最先存入所述缓冲存储器中的缓存请求信息确定为第i+1周期的待发送的缓存请求信息;步骤s323、直接将发送端优先级最高的缓存请求信息确定为第i+1周期的待发送的缓存请求信息。
31.实施方式四、所述步骤s2包括:步骤s221、从当前处于空闲状态的发送端标识信息中作为目标接收端;作为示例,所述步骤s221中,具体可采用时间片轮询的算法从当前处于空闲状态的发送端标识信息中选择一个接收端作为目标接收端。
32.通过步骤s221能够使得每一接收端可有均等的机会被选择为目标接收端。
33.步骤s222、将所述状态更新器中所述目标接收端对应的缓存请求信息确定为候选缓存请求信息。
34.所述步骤s3包括:步骤s321、判断所述候选缓存请求信息中发送端优先级最高的缓存请求信息数量
是否大于1,若大于1,则执行步骤s322,若等于1,执行步骤s323;步骤s322、将所述候选缓存请求信息中最先存入所述缓冲存储器中的缓存请求信息确定为第i+1周期的待发送的缓存请求信息;步骤s323、直接将发送端优先级最高的缓存请求信息确定为第i+1周期的待发送的缓存请求信息。
35.可以理解的是,在一些应用需求中,对同一优先级的请求信息有陷入先出的需求,通过实施方式三和实施方式四可以基于存入所述缓冲存储器的先后选择第i+1周期的待发送的缓存请求信息。
36.需要说明的是,以上仅列出了四种实施方式,其他类似的组合方式,以及本领域技术人员可以基于此得到其他实现方式及组合也落入本发明保护范围之内,在此不再一一列举。
37.作为一种实施例,所述系统包括一个状态更新器,所述状态更新器中存储有状态更新表,所述状态更新表用于存储每一缓存请求信息在所述缓冲存储器中的缓存地址信息、对应的发送端优先级信息、接收端标识信息,以及每一接收端当前的状态信息均存储在所述状态更新表中。
38.作为一种实施例,所述系统包括n个状态更新器,每一状态更新器对应一个接收端,每一状态更新器中对应存储一个状态更新表,每一状态更新表用于存储对应接收端当前的状态信息以及当前缓冲存储器中状态更新器对应的接收端所对应的缓存请求信息在所述缓冲存储器中的缓存地址信息和对应的发送端优先级信息。
39.需要说明的是,状态更新表可以在每条记录中记录时间、或者按照时间先后标注序号、或者直接以存入记录的前后顺序来确定请求信息存入缓冲存储器的先后顺序。当一个请求信息被选中为第i+1周期的待发送的缓存请求信息,在第i+1周期被发出后,对应缓冲存储器中删除对应的请求信息,对应的状态更新表中也删除对应的记录信息。
40.实施例一所述系统通过一个缓冲存储器与至少一个状态更新器相配合,使得高优先级的发送端只受接收端状态影响,不受低优先级发送端的堵塞,状态更新器中仅存储少量信息,无需占用大量的物理空间,实现了不同优先级接收端的缓存请求的合理分发,避免了缓存分发中高优先级请求信息的堵塞,提高了缓存分发效率。
41.实施例二、如果接收端为cache接收端,应用场景为多个发送端向多个cache请求信息时,在缓存分发后,如果将响应速率不同的发送端对接同一个cache终端,是存在cache冲突的,会降低cache命中率,尤其是低优先级的发送端会影响到高优先级的发送端的命中率,如果布置多组cache终端虽然可以避免不同发送端cache命中率的影响,但是会大大增加硬件面积和资源,显然不是好的解决方法。基于此,提出了实施例二、实施例二提供了一种基于多优先级的cache查询系统,如图2所示,包括第一缓冲模块和n个cache接收端,其中,所述第一缓冲模块一端与m个发送端相连接,另一端与n个cache接收端{c1,c2,
…cn
}相连接,ci表示第i个cache接收端,i的取值范围为1到n,所述第一缓冲存模块用于缓存所述m个发送端发送的请求信息,并向所述n个cache接收端分发请求信息,所述m个发送端对应p个优先级{w1,w2,
…wp
},w1,w2,
…wp
的优先级级别依次降低,p≤n,每一优先级对应至
少一个发送端,{w1,w2,
…wp
}分为q个优先级组{wr1,wr2,

wrq},q ≤p ,wr
q-1
中的最低优先级高于wrq中的最高优先级,q的取值范围为1到q;需要说明的是,第一缓冲模块可以直接使用实施例一中的缓冲存储器和状态更新器所构成的缓冲结构,也可以使用其他缓冲结构,实施例一的缓冲结构在此不再赘述。
42.每一ci对应一个地址请求范围zi,不同ci对应的zi不重叠,zi对应的cache包括q个独立的cache区域{cx
i1
,cx
i2
,

cx
iq
},cx
i1
,cx
i2
,

cx
iq
在物理上相互隔离,且对应的cache区域大小依次降低,cx
iq
对应的地址请求范围均为zi,当所述第一缓冲存模块为待发送的缓存请求信息确定对应的ci时,基于缓存请求信息对应的发送端优先级所属的wrq确定对应的cx
iq
,将待发送的缓存请求信息发送至对应的cx
iq
中进行处理。
43.需要说明的是,n个cache接收端{c1,c2,
…cn
}另一端与memory连接,memory通常为是高带宽存储器(hbm),每一ci对应一个地址请求范围zi,c1,c2,
…cn
对应的地址请求的最大总范围即为memory的范围,不同ci对应的zi不重叠。
44.作为一种实施例,若p≤px,且w
p
对应的发送端与其他优先级对应的发送端共享一个cache接收端时,cache命中率较独享一个cache接收端的cache命中率的差值大于预设的命中率差值阈值时,则将w
p
单独划分为一个优先级组中,其中,px预设的优先级标识阈值,px《 p。需要说明的是,通常情况下,高优先级的发送端的响应级别高,响应速率快,实时性要求高,优先级低的更容易影响到优先级高的cache命中率,因此主要需要为高优先级的发送端设置独立的cache区域。而低优先级的响应速率较慢,实时性要求低,因此cache命中率不易受到其他优先级发送端的影响。
45.作为一种实施例,q=2,wr1中仅包括w1,w1对应的发送端在每一cache终端中独享一个cache区域。wr2中包括{ w2,w3,
…wp
},w2,w3,
…wp
对应的发送端在每一cache终端中共享一个cache区域。这样可以仅为最高优先级单独划分cache区域,提高最高优先级的发送端的cache命中率。
46.作为一种实施例,若p小于预设的阈值,则q=p,每个优先级组中对应一个优先级,当优先级组别较少时,例如只有3个,则可以为每一个有优先级组设置独立的cache区域。
47.作为一种实施例,当请求信息进入cache中未查到目标数据时,则会向memory发送请求,通过memory获取数据,同一时间段内是可能出现多个发向memory的请求的,基于此,所述系统还包括第二缓冲模块,所述第二缓冲模块一端与n个cache接收端连接,另一端与memory连接,所述第二缓冲模块用于缓存n个cache接收端发送的请求信息,并向所述memory分发。所述第二缓冲模块包括q个缓冲fifo{f1,f2,
…fq
},fq用于接收所有cx
iq
输出的请求信息。这样即可将同一优先级组对应的发宋端所对应的memory请求信息存入一个队列中。f1,f2,
…fq
向所述memory发送请求信息优先级从高到低,所述第二缓冲模块将{f1,f2,
…fq
}中存储有请求信息且优先级最高的fq中的请求信息发送给所述memory。
48.实施例二所述系统通过对不同优先级进行优先级分组,将每一cache接收端划分不同的cache区域,使得不同优先级分组对应的发送端请求对应的cache区域物理分隔,彼此不会替换对应cache区域中的数据,增加了cache命中率,满足了cache的空间局限性和时间局限性需求,提高了多个发送端向多个cache发送请求信息的处理效率。
49.需要说明的是,实施例一和实施例二的相关技术细节是可以组合使用的,在此不再逐一列举。
50.在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
51.以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1