本申请涉及计算机领域,尤其涉及一种查表系统、设备以及集群。
背景技术:
1、网卡接收到的数据流通常需要通过查表来完成转发。由于网卡支持的数据流的数量比较多,例如,可以是1兆以上,而数据流的数量和流表项的数量是1:1的关系。因此,在需要选择容量较大的双倍速率(double data rate,ddr)的内存来作为流表项的存储设备。内存中包括多个存储库,每个存储库包括多个存储行。存储行在被使用之前,需要先进行激活。但是,存储行被频繁激活时,可能会存在增加功耗,导致电气噪声和干扰,影响内存芯片的稳定性,过度的激活影响内存性能和寿命等等的问题。因此,需要设置4次激活窗口时间(four activate window time,tfaw),即,假如前4次激活的间隔加起来小于tfaw,则需要等待直到大于tfaw之后才可进行第5次激活。但是,在这个等待的过程中,内存不能工作,自然没有数据进行传输,降低了内存的使用效率。
技术实现思路
1、本申请提供了一种查表系统、设备以及集群,能够有效提高内存的使用效率。
2、第一方面,提供了一种查表系统,包括:
3、寄存器,用于存储多个查表请求;
4、内存,包括多个存储库,所述多个存储库用于存储多个流表项;
5、调度模块,用于从所述寄存器中获取第一查表请求,其中,所述第一查表请求为所述多个查表请求中的其中一个查表请求;
6、内存控制器,用于接收第一查表请求,根据所述第一查表请求中的第一地址从第一存储库的第一存储行中读取第一流表项,所述第一流表项属于所述多个流表项,所述第一地址为所述第一流表项的存储地址;
7、所述调度模块,还用于获取第二查表请求,其中,所述第二查表请求属于所述多个查表请求,所述第二查表请求中的第二地址属于所述第一存储库中的第一存储行,或者,所述第二查表请求的查表长度大于2;
8、所述内存控制器,用于接收第二查表请求,在执行完第一查表请求之后,优先根据所述第二查表请求中的第二地址读取第二流表项,所述第二流表项属于所述多个流表项,所述第二地址为所述第二流表项的存储地址。
9、上述方案中,将同一存储库的同一存储行的查询请求集中到一起执行,因为同一存储库的同一存储行的查询请求不需要再次激活存储行,能够避免触发tfaw参数,从而提高查询的效率,又或者,将长度比较长的查询请求优先进行调度,使得4次激活的时间总和尽量接近tfaw参数或者大于tfaw参数,减少内存等待时间或者避免内存等待时间,从而提高内存的使用效率。
10、在一些可能的设计中,所述寄存器中还存储有第三查表请求,其中,所述第三查表请求中的第三地址不属于所述第一存储库中的第一存储行,
11、所述寄存器接收到所述第一查表请求的时间早于所述寄存器接收到所述第三查表请求的时间,所述寄存器接收到所述第三查表请求的时间早于所述寄存器接收到所述第二查表请求的时间。
12、在一些可能的设计中,所述调度模块,还用于获取所述第三查表请求,其中,所述第三查表请求属于所述多个查表请求,所述第三查表请求中的第三地址属于所述第一存储库中的第二存储行,或者,第二存储库中的第三存储行;
13、所述内存控制器,用于接收第三查表请求,在执行所述第二查表请求之后,根据所述第三查表请求中的第三地址从所述第一存储库中的第二存储行或者所述第二存储库中的第三存储行中读取第三流表项,所述第三流表项属于所述多个流表项,所述第三地址为所述第三流表项的存储地址。
14、上述方案中,尽管第二查表请求的接收时间晚于第三查表请求的接收时间,但是,由于第二查表请求和第一查表请求的地址是属于同一存储库的同一存储行,或者,第二查表请求的长度比较长,所以,第二查表请求优先于第三查表请求执行。
15、在一些可能的设计中,所述系统还包括:
16、数据缓存器,用于按照所述第一流表项、第二流表项以及第三流表项的顺序将查询得到的所述第一流表项、第二流表项以及第三流表项顺序进行存储,并按照所述第一流表项、所述第三流表项以及所述第二流表项的顺序将第一流表项、所述第三流表项以及所述第二流表项发送给用户。
17、上述方案中,可以通过数据缓存器将查询到的流表项进行保存,并按照接收到查询请求的时间返回,从而确保返回的顺序是按序的,例如,接收到查询请求的顺序为第一查询请求、第三查询请求以及第二查询请求,那么,返回的流表项的顺序也是第一流表项、第三流表项以及第二流表项。
18、在一些可能的设计中,所述寄存器中还存储有第四查表请求,其中,所述第四查表请求中的第四地址和所述第三查表请求中的第三地址属于同一存储库中的同一存储行,
19、所述调度模块,还用于获取所述第四查表请求,其中,所述第四查表请求属于所述多个查表请求;
20、所述内存控制器,用于接收第四查表请求,在执行所述第三查表请求之后,优先根据所述第四查表请求中的第四地址读取第四流表项,所述第四流表项属于所述多个流表项,所述第四地址为所述第四流表项的存储地址。
21、在一些可能的设计中,所述多个查表请求中的每个查表请求都包括标志位,在所述标志位为第一值的情况下,表示该标志位对应的查表请求尚未进行处理,在所述标志位为第二值的情况下,表示该标志位对应的查表请求已经进行处理;
22、所述寄存器还用于在标志位不全为第一值的情况下,根据标志位不为第一值的查表请求的数据预取新的查表请求到所述寄存器中。
23、在一些可能的设计中,所述寄存器还用于在执行完所述第一查表请求之后,将所述第一查表请求中的标志位从所述第一值修改为所述第二值。
24、在一些可能的设计中,所述第二查表请求的数量为一个或者多个。
25、第二方面,提供了一种计算设备,包括处理器以及查表系统,所述处理器和所述查表系统之间能够进行通信,所述查表系统为如第一方面任一项所述的系统。
26、第三方面,提供了一种计算设备集群,包括多个计算设备,所述计算设备包括处理器以及查表系统,所述处理器和所述查表系统之间能够进行通信,所述查表系统为如第一方面任一项所述的系统。
1.一种查表系统,其特征在于,包括:
2.根据权利要求1所述的系统,其特征在于,所述寄存器中还存储有第三查表请求,其中,所述第三查表请求中的第三地址不属于所述第一存储库中的第一存储行,
3.根据权利要求2所述的系统,其特征在于,
4.根据权利要求3所述的系统,其特征在于,所述系统还包括:
5.根据权利要求3所述的系统,其特征在于,所述寄存器中还存储有第四查表请求,其中,所述第四查表请求中的第四地址和所述第三查表请求中的第三地址属于同一存储库中的同一存储行,
6.根据权利要求1至5任一项所述的系统,其特征在于,所述多个查表请求中的每个查表请求都包括标志位,在所述标志位为第一值的情况下,表示该标志位对应的查表请求尚未进行处理,在所述标志位为第二值的情况下,表示该标志位对应的查表请求已经进行处理;
7.根据权利要求6所述的系统,其特征在于,
8.根据权利要求1至5任一项所述的系统,其特征在于,所述第二查表请求的数量为一个或者多个。
9.一种计算设备,其特征在于,包括处理器以及查表系统,所述处理器和所述查表系统之间能够进行通信,所述查表系统为如权利要求1-8任一项所述的系统。
10.一种计算设备集群,其特征在于,包括多个计算设备,所述计算设备包括处理器以及查表系统,所述处理器和所述查表系统之间能够进行通信,所述查表系统为如权利要求1-8任一项所述的系统。