彩票平台 分类>>

官网合法彩票平台_赛车_时时彩_体彩【官方推荐】一种信息缓存方法、装置和通信设备pdf

2025-10-04 08:28:48
浏览次数:
返回列表

  时时彩平台,腾讯分分彩,北京赛车,北京赛车pk10,北京赛车pk10技巧,幸运飞艇,彩票平台推荐,飞艇开奖,幸运飞艇官网,大发彩票,彩票平台推荐,500彩票,六合彩,大乐透,双色球,体彩足球,体育彩票2、装置和通信设备 (57) 摘要 本发明实施例公开了信息缓存方法、 装置和 通信设备, 应用于通信技术领域。当包括 RDMA 模 块的通信设备在按照队列对的形式进行传输数 据的过程中, 在首次需要用到队列对的某一关联 数据时, RDMA 模块就将该队列对的关联数据获取 到, 并连同该关联数据的优先级信息一起对应地 储存到RDMA模块的缓存单元中。 这样在后续如果 需要用到该关联数据时, RDMA 模块就不需要通过 与其相连的处理器接口从存储模块来获取, 而直 接从缓存单元中获取, 避免了 RDMA 模块与存储器 之间频繁的读写操作 ; 同时 RDMA 模块根据优先级 别缓存队列对的关联数据, 在。

  3、 RDMA 模块中缓存空 间有限的情况下, 优先将高优先级别的队列对的 关联数据缓存。 (51)Int.Cl. 权利要求书 2 页 说明书 13 页 附图 6 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书13页 附图6页 (10)申请公布号 CN 103647807 A CN 103647807 A 1/2 页 2 1. 一种信息缓存方法, 其特征在于, 应用于通信设备包括的远端数据直接存取 RDMA 模 块中, 所述方法包括 : 获取所述通信设备传输数据的队列对的关联数据 ; 确定所述队列对的关联数据的优先级信息 ; 将所述队列对的关联数据和所述关联。

  4、数据的优先级信息对应地储存到所述 RDMA 模块 的缓存单元中。 2. 如权利要求 1 所述的方法, 其特征在于, 所述确定所述队列对的关联数据的优先级 信息, 具体包括 : 在所述队列对的队列对上下文的服务级别字段或自定义字段中确定所述关联数据的 优先级信息。 3. 如权利要求 1 所述的方法, 其特征在于, 所述将所述队列对的关联数据和所述关联 数据的优先级信息对应地储存到所述 RDMA 模块的缓存单元中, 具体包括 : 在所述 RDMA 模块中选择空闲的缓存单元, 作为第一缓存单元, 并将所述队列对的关联 数据和所述关联数据的优先级信息储存到所述第一缓存单元中 ; 如果所述 RDMA 模。

  5、块中没有空闲的缓存单元, 在所述非空闲的缓存单元中选择优先级 比所述队列对的关联数据的优先级低的缓存单元, 作为第二缓存单元, 并用所述队列对的 关联数据和所述关联数据的优先级信息替换所述第二缓存单元中的信息 ; 如果存在非空闲的缓存单元的优先级与所述队列对的关联数据的优先级相同, 则在所 述非空闲的缓存单元中按照预置的策略选择缓存单元, 作为第三缓存单元, 并用所述队列 对的关联数据和所述关联数据的优先级信息替换所述第三缓存单元中的信息 ; 其中, 缓存单元的优先级与所述缓存单元中储存的关联数据的优先级一致。 4. 如权利要求 1 至 3 任一项所述的方法, 其特征在于, 所述方法还包括 :。

  6、 当所述队列对注销时, 将所述 RDMA 模块中的所述缓存单元置为空闲的缓存单元。 5. 如权利要求 1 至 4 任一项所述的方法, 其特征在于, 所述缓存单元包括标签域和内容域, 所述标签域用于储存所述队列对的标识和所述关 联数据的优先级信息 ; 所述内容域用于储存所述队列对的关联数据。 6. 如权利要求 5 所述的方法, 其特征在于, 所述关联数据中包括如下任一个或多个信息 : 所述队列对的队列上下文、 传输数据的 内存翻译保护表和所述队列对的完成队列上下文 ; 在所述内容域中, 将所述队列上下文、 内存翻译保护表和完成队列上下文按照预置的 顺序储存。 7.如权利要求1至6任一项所述的方法。

  7、, 其特征在于, 所述缓存单元的关联数据包括一 种或多种, 所述方法还包括 : 对所述缓存单元中的任一种或多种关联数据进行更新。 8. 一种信息缓存装置, 其特征在于, 包括 : 关联数据获取单元, 用于获取所述通信设备传输数据的队列对的关联数据 ; 优先级确定单元, 用于确定所述队列对的关联数据的优先级信息 ; 储存单元, 用于将所述关联数据获取单元获取的队列对的关联数据和所述优先级确定 单元确定的关联数据的优先级信息对应地储存到所述信息缓存装置的缓存单元中。 权 利 要 求 书 CN 103647807 A 2 2/2 页 3 9. 如权利要求 8 所述的装置, 其特征在于, 所述优先级确。

  8、定单元, 具体用于在所述队列 对的队列对上下文的服务级别字段或自定义字段中确定所述关联数据的优先级信息。 10. 如权利要求 8 所述的装置, 其特征在于, 所述储存单元包括 : 第一储存单元, 用于在所述信息缓存装置中选择空闲的缓存单元作为第一缓存单元, 并将所述队列对的关联数据和所述关联数据的优先级信息储存到所述第一缓存单元中 ; 第二储存单元, 用于如果所述信息缓存装置中没有空闲的缓存单元, 在所述非空闲的 缓存单元中选择优先级比所述队列对的关联数据的优先级低的缓存单元, 作为第二缓存单 元, 并用所述队列对的关联数据和所述关联数据的优先级信息替换所述第二缓存单元中的 信息 ; 第三储存。

  9、单元, 用于如果存在非空闲的缓存单元的优先级与所述队列对的关联数据的 优先级相同, 则在所述非空闲的缓存单元中按照预置的策略选择缓存单元, 作为第三缓存 单元, 并用所述队列对的关联数据和所述关联数据的优先级信息替换所述第三缓存单元中 的信息 ; 其中, 缓存单元的优先级与所述缓存单元中储存的关联数据的优先级一致。 11. 如权利要求 8 至 10 任一项所述的装置, 其特征在于, 还包括 : 注销单元, 用于当所述队列对注销时, 将所述信息缓存装置中的缓存单元置为空闲的 缓存单元。 12. 如权利要求 8 至 11 任一项所述的装置, 其特征在于, 所述缓存单元包括标签域和内容域, 所述标签。

  10、域用于储存所述队列对的标识和所述关 联数据的优先级信息 ; 所述内容域用于储存所述队列对的关联数据。 13. 如权利要求 12 所述的装置, 其特征在于, 所述关联数据中包括至少一个如下的信息 : 所述队列对的队列上下文、 传输数据的内 存翻译保护表和所述队列对的完成队列上下文 ; 在所述内容域中, 将所述队列上下文、 内存翻译保护表和完成队列上下文按照预置的 顺序储存。 14.如权利要求8至13任一项所述的装置, 其特征在于, 所述缓存单元的关联数据包括 一种或多种, 所述装置还包括 : 更新单元, 用于对所述缓存单元中的任一种或多种关联数据进行更新。 15. 一种通信设备, 其特征在于, 。

  11、包括处理器、 远端数据直接存取 RDMA 模块和存储模 块 ; 所述 RDMA 模块与所述处理器连接, 是如权利要求 8 至 14 中任一项所述的信息缓存装 置。 权 利 要 求 书 CN 103647807 A 3 1/13 页 4 一种信息缓存方法、 装置和通信设备 技术领域 0001 本发明涉及通信技术领域, 特别涉及信息缓存方法、 装置和通信设备。 背景技术 0002 远端数据直接存取 (Remote Direct Memory Access, RDMA) 技术可以降低服务器 之间进行数据处理的延迟问题, 能降低服务器中中央处理器 (Central Processing Unit, C。

  12、PU) 处理数据传输的负荷。 具体地, 在RDMA系统中的服务器包括CPU、 存储模块比如双列直 插式存储模块 (Dual-Inline-Memory-Modules, DIMM) 和主机端通道适配器 (Host Channel Adapter, HCA) 等, 且服务器之间是通过 HCA 之间的线缆互联, 以实现服务器之间的通信。 0003 其中, 一个服务器中的HCA可以通过CPU向存储模块得到发送数据后, 发送给另一 服务器的 HCA, 并由另一服务器的 HCA 将接收的数据通过 CPU 储存到存储模块中。这样在 数据传输的过程中, CPU 只是负责将数据写入存储模块和将传输数据的任务写。

  13、入到发送队 列中等, 而数据传输协议的控制处理比如解析数据报文、 封装数据报文和应答数据报文等 由 HCA 来执行, 而不需要 CPU 来参与, 从而不需要用到大量 CPU 的处理能力, 降低了 CPU 的 负荷。 0004 但是上述数据传输的过程中, 当服务器中的 HCA 在发送数据时, 需要将发送数据 所关联的信息比如内存翻译保护表 (Memory Translate Protect Table, MTPT) 等信息通过 CPU 向存储模块获取到, 使得 HCA 与 CPU 之间会频繁的进行读写存储模块。 发明内容 0005 本发明实施例提供信息缓存方法、 装置和通信设备, 减少通信设备中。

  14、处理器与具 有 RDMA 功能的模块之间频繁的操作。 0006 本发明实施例第一方面提供一种信息缓存方法, 应用于通信设备包括的远端数据 直接存取 RDMA 模块中, 所述方法包括 : 0007 获取所述通信设备传输数据的队列对的关联数据 ; 0008 确定所述队列对的关联数据的优先级信息 ; 0009 将所述队列对的关联数据和所述关联数据的优先级信息对应地储存到所述 RDMA 模块的缓存单元中。 0010 本发明实施例第一方面的第一种可能的实现方式中, 所述确定所述队列对的关联 数据的优先级信息, 具体包括 : 0011 在所述队列对的队列对上下文的服务级别字段或自定义字段中确定所述关联数 。

  15、据的优先级信息。 0012 本发明实施例第一方面的第二种可能的实现方式中, 所述将所述队列对的关联数 据和所述关联数据的优先级信息对应地储存到所述 RDMA 模块的缓存单元中, 具体包括 : 0013 在所述 RDMA 模块中选择空闲的缓存单元作为第一缓存单元, 并将所述队列对的 关联数据和所述关联数据的优先级信息储存到所述第一缓存单元中 ; 说 明 书 CN 103647807 A 4 2/13 页 5 0014 如果所述 RDMA 模块中没有空闲的缓存单元, 在所述非空闲的缓存单元中选择优 先级比所述队列对的关联数据的优先级低的缓存单元作为第二缓存单元, 并用所述队列对 的关联数据和所述关。

  16、联数据的优先级信息替换所述第二缓存单元中的信息 ; 0015 如果存在非空闲的缓存单元的优先级与所述队列对的关联数据的优先级相同, 则 在所述非空闲的缓存单元中按照预置的策略选择缓存单元作为第三缓存单元, 并用所述队 列对的关联数据和所述关联数据的优先级信息替换所述第三缓存单元中的信息 ; 0016 其中, 缓存单元的优先级与所述缓存单元中储存的关联数据的优先级一致。 0017 结合本发明实施例第一方面, 或第一方面的第一种或第二种可能的实现方式, 本 发明实施例第一方面的第三种可能的实现方式中, 所述方法还包括 : 0018 当所述队列对注销时, 将所述 RDMA 模块中的所述缓存单元置为空。

  17、闲的缓存单元。 0019 结合本发明实施例第一方面, 或第一方面的第一种到第三种可能的实现方式中任 一可能实现方式, 本发明实施例第一方面的第四种可能的实现方式中 : 0020 所述缓存单元包括标签域和内容域, 所述标签域用于储存所述队列对的标识和所 述关联数据的优先级信息 ; 所述内容域用于储存所述队列对的关联数据。 0021 结合本发明实施例第一方面第四种可能的实现方式, 本发明实施例第一方面的第 五种可能的实现方式中 : 0022 所述关联数据中包括如下任一个或多个信息 : 所述队列对的队列上下文、 传输数 据的内存翻译保护表和所述队列对的完成队列上下文 ; 0023 在所述内容域中, 。

  18、将所述队列上下文、 内存翻译保护表和完成队列上下文按照预 置的顺序储存。 0024 结合本发明实施例第一方面, 或第一方面的第一种到第五种可能的实现方式中任 一可能实现方式, 本发明实施例第一方面的第六种可能的实现方式中, 所述缓存单元的关 联数据包括一种或多种, 所述方法还包括 : 0025 对所述缓存单元中的任一种或多种关联数据进行更新。 0026 本发明实施例第二方面提供一种信息缓存装置, 包括 : 0027 关联数据获取单元, 用于获取所述通信设备传输数据的队列对的关联数据 ; 0028 优先级确定单元, 用于确定所述队列对的关联数据的优先级信息 ; 0029 储存单元, 用于将所述关。

  19、联数据获取单元获取的队列对的关联数据和所述优先级 确定单元确定的关联数据的优先级信息对应地储存到所述信息缓存装置的缓存单元中。 0030 在本发明实施例第二方面的第一种可能的实现方式中, 所述优先级确定单元, 具 体用于在所述队列对的队列对上下文的服务级别字段或自定义字段中确定所述关联数据 的优先级信息。 0031 在本发明实施例第二方面的第二种可能的实现方式中, 所述储存单元包括 : 0032 第一储存单元, 用于在所述信息缓存装置中选择空闲的缓存单元作为第一缓存单 元, 并将所述队列对的关联数据和所述关联数据的优先级信息储存到所述选择的第一缓存 单元中 ; 0033 第二储存单元, 用于如。

  20、果所述信息缓存装置中没有空闲的缓存单元, 在所述非空 闲的缓存单元中选择优先级比所述队列对的关联数据的优先级低的缓存单元作为第二缓 存单元, 并用所述队列对的关联数据和所述关联数据的优先级信息替换所述第二缓存单元 说 明 书 CN 103647807 A 5 3/13 页 6 中的信息 ; 0034 第三储存单元, 用于如果存在非空闲的缓存单元的优先级与所述队列对的关联数 据的优先级相同, 则在所述非空闲的缓存单元中按照预置的策略选择缓存单元作为第三缓 存单元, 并用所述队列对的关联数据和所述关联数据的优先级信息替换所述第三缓存单元 中的信息 ; 0035 其中, 缓存单元的优先级与所述缓存单。

  21、元中储存的关联数据的优先级一致。 0036 结合本发明实施例第二方面, 或第二方面的第一种或第二种可能的实现方式, 本 发明实施例第二方面的第三种可能的实现方式中, 还包括 : 0037 注销单元, 用于当所述队列对注销时, 将所述信息缓存装置中的缓存单元置为空 闲的缓存单元。 0038 结合本发明实施例第二方面, 或第二方面的第一种到第三种可能的实现方式中任 一可能实现方式, 本发明实施例第二方面的第三种可能的实现方式中 : 0039 所述缓存单元包括标签域和内容域, 所述标签域用于储存所述队列对的标识和所 述关联数据的优先级信息 ; 所述内容域用于储存所述队列对的关联数据。 0040 结合。

  22、本发明实施例第二方面第三种可能的实现方式, 本发明实施例第二方面的第 四种可能的实现方式中 : 0041 所述关联数据中包括至少一个如下的信息 : 所述队列对的队列上下文、 传输数据 的内存翻译保护表和所述队列对的完成队列上下文 ; 0042 在所述内容域中, 将所述队列上下文、 内存翻译保护表和完成队列上下文按照预 置的顺序储存。 0043 结合本发明实施例第二方面, 或第二方面的第一种到第四种可能的实现方式中任 一可能实现方式, 本发明实施例第二方面的第五种可能的实现方式中, 所述缓存单元的关 联数据包括一种或多种, 所述装置还包括 : 0044 更新单元, 用于对所述缓存单元中的任一种或。

  23、多种关联数据进行更新。 0045 本发明实施例第三方面还提供一种通信设备, 包括处理器、 远端数据直接存取 RDMA 模块和存储模块 ; 0046 所述 RDMA 模块与所述处理器连接, 是本发明实施例第二方面, 或第二方面的第一 种到第六种可能的实现方式中任一可能实现方式所述的信息缓存装置。 0047 可见, 在本实施例中, 当包括 RDMA 模块的通信设备在按照队列对的形式进行传输 数据的过程中, 在首次需要用到队列对的某一关联数据时, RDMA 模块就将该队列对的关联 数据获取到, 并连同该关联数据的优先级信息一起对应地储存到 RDMA 模块的缓存单元中。 这样在后续如果需要用到任一关联。

  24、数据时, RDMA 模块就不需要通过与其相连的处理器接口 从存储模块来获取, 而直接从缓存单元中获取, 避免了 RDMA 模块与存储模块之间频繁的读 写操作 ; 同时, 由于一个队列对的关联数据可以对应一个优先级别, 这样 RDMA 模块根据优 先级别缓存队列对的关联数据, 在 RDMA 模块中缓存空间有限的情况下, 优先将高优先级别 的队列对的关联数据缓存。 附图说明 0048 为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施例或现 说 明 书 CN 103647807 A 6 4/13 页 7 有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅。

  25、是本 发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动性的前提下, 还可 以根据这些附图获得其他的附图。 0049 图 1 是本发明实施例中通信设备的结构示意图 ; 0050 图 2 是本发明实施例提供的一种信息缓存方法的流程图 ; 0051 图 3 是本发明实施例中通信设备包括的 RDMA 模块中缓存单元的结构示意图 ; 0052 图 4 是本发明实施例提供的另一种信息缓存方法的流程图 ; 0053 图 5 是本发明应用实施例中通信设备内 HCA 卡的结构示意图 ; 0054 图6是本发明实施例的通信设备中HCA卡包括的缓存管理模块执行的申请缓存单 元操作的流程图 ; 0。

  26、055 图7是本发明实施例的通信设备中HCA卡包括的缓存管理模块执行的读取操作的 流程图 ; 0056 图8是本发明实施例的通信设备中HCA卡包括的缓存管理模块执行的写入操作的 流程图 ; 0057 图 9 是本发明实施例提供的一种信息缓存装置的结构示意图 ; 0058 图 10 是本发明实施例提供的另一种信息缓存装置的结构示意图 ; 0059 图 11 是本发明实施例提供的一种通信设备的结构示意图。 具体实施方式 0060 下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完 整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。基于 本发明。

  27、中的实施例, 本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例, 都属于本发明保护的范围。 0061 本发明实施例提供一种信息缓存方法, 主要是针对如图 1 所示的通信设备传输数 据的过程中的信息缓存。在该通信设备中包括处理器 (比如 CPU) 、 存储模块 (比如 DIMM) 和 RDMA 模块 (比如 HCA 卡) , 其中处理器主要负责将数据写入存储模块和将传输数据的任务写 入到发送队列中等 ; 而 RDMA 模块可以通过外部设备互连高速通道 (Peripheral Component Interconnect Express, PCIE) 与处理器连接, 主要负责数。

  28、据传输协议的控制处理比如解析 数据报文、 封装数据报文和应答数据报文等。通信设备之间可以通过 RDMA 模块之间的线缆 互联, 该线缆可以是以太网线或 Infiniband 网线, 具体由 RDMA 模块的端口类型决定。 0062 本实施例的方法是通信设备中的 RDMA 模块所执行的方法, 流程图如图 2 所示, 包 括 : 0063 步骤 101, 获取通信设备传输数据的队列对 (Queue Pair, QP) 的关联数据, 其中一 个队列对可以包括发送队列 (Send Queue, SQ) 和接收队列 (ReceiveQueue, RQ) , 队列对的关 联数据是队列对的配置信息, 可以包。

  29、括在传输数据过程中需要用到的信息, 比如队列上下 文 (Queue Pair Context, QPC) 、 完成队列上下文 (Complete Queue Context, CQC) 和数据的 MTPT 表等, 在有些实施例中, 该关联数据还可以包括共享接收队列 (SRQ) 等信息。 0064 可以理解, 如果需要传输数据, 则通信设备中的处理器会先创建队列对, 并设置队 列对的关联数据, 比如队列对上下文、 数据的 MTPT 表和完成队列上下文等关联数据, 在该 说 明 书 CN 103647807 A 7 5/13 页 8 MTPT 表中储存有在通信设备的存储模块中储存数据的物理地址和逻。

  30、辑地址的对应关系 ; 然后处理器将传输的数据写入到存储模块中 ; 再次, 处理器将传输数据的类型 (比如写操 作) 、 传输数据的起始地址和传输数据的长度信息等内容写入到队列对的发送队列中。本实 施例中, 处理器在设置队列对的关联数据时, 还需要在队列上下文中设置用于指示该队列 对优先级的优先级信息, 具体地, 可以使用队列上下文的服务级别 (servicelevel) 字段或 其它的自定义字段来指示该优先级信息。该优先级信息可以由用户根据需要进行设置, 比 如为用户关心的任务的队列对设置较高的优先级。需要说明的是, 通信设备的处理器所创 建的一个队列对的关联数据不会因传输数据的不同而不同, 。

  31、即在首次创建了队列对并初始 化了该队列对的关联数据后, 该队列对的关联数据在数据传输的过程中就不会改变, 但是 不同队列对的关联数据确不同。 0065 当处理器创建了队列对后, 通知RDMA模块有任务需要执行, 并告诉RDMA模块需要 执行任务对应的队列对的标识比如序号。这样 RDMA 模块就可以根据该队列对的标识, 通过 PCIE 经过处理器向存储模块获取到该队列对的关联数据, 进而从关联数据中得到待传输数 据的物理地址 ; 然后根据该物理地址通过处理器向存储模块获取到待传输数据后, 将待传 输数据封装成 RDMA 报文, 通过该 RDMA 模块与其它通信设备的接口发送给 RDMA 报文。 。

  32、0066 其中 RDMA 模块可以一次性地获取到该队列对的所有关联数据, 也可以获取到部 分关联数据, 同时可以按照如下步骤102和103, 将这些关联数据储存到RDMA模块的缓存单 元中。 0067 步骤 102, 确定队列对的关联数据的优先级信息, 该关联数据的优先级信息可以从 获取到的关联数据中的队列上下文包括的服务级别字段或自定义字段中确定。 0068 步骤 103, 将队列对的关联数据和关联数据的优先级信息对应地储存到 RDMA 模块 的缓存单元中, 具体地, RDMA 模块可以先分配一个足够储存该队列对所有关联数据的缓存 空间作为缓存单元, 并可以设置该缓存单元包括标签 (tag)。

  33、 域和内容域。 0069 参考图 3 所示, 标签域用于储存队列对的标识和关联数据的优先级信息, 还可以 储存标签域的标识和有效位等, 其中标签域的标识可以唯一确定一个缓存单元, 有效位可 以指示该缓存单元是否处于空闲状态, 如果该缓存单元中未储存数据或存储的数据处于无 效状态, 则说明该缓存单元空闲, 即缓存单元未使用或使用后被无效, 否则缓存单元处于非 空闲状态 ; 内容域用于储存队列对的关联数据, 且 RDMA 模块可以为这些关联数据进行编号 以指代具体是哪个关联数据, 内容域的尺寸由关联数据的大小来决定, 其中一种类型的关 联数据可以称为该缓存单元的一个成员。进一步地, RDMA 模块。

  34、可以规定内容域中各个关联 数据的存放顺序, 这样在内容域中, 将队列对的关联数据比如队列上下文、 内存翻译保护表 和完成队列上下文等就会按照预置的顺序储存, 比如图 3 中按照队列上下文、 完成队列上 下文和内存翻译保护表的顺序存放。 0070 可见, 在本实施例中, 当包括 RDMA 模块的通信设备在按照队列对的形式进行传输 数据的过程中, 在首次需要用到队列对的某一关联数据时, RDMA 模块就将该队列对的关联 数据获取到, 并连同该关联数据的优先级信息一起对应地储存到 RDMA 模块的缓存单元中。 这样在后续如果需要用到任一关联数据时, RDMA 模块就不需要通过与其相连的处理器接口 从。

  35、存储模块来获取, 而直接从缓存单元中获取, 避免了 RDMA 模块与存储模块之间频繁的读 写操作 ; 同时, 由于一个队列对的关联数据可以对应一个优先级别, 这样 RDMA 模块根据优 说 明 书 CN 103647807 A 8 6/13 页 9 先级别缓存队列对的关联数据, 在 RDMA 模块中缓存空间有限的情况下, 优先将高优先级别 的队列对的关联数据缓存。 0071 参考图 4 所示, 在一个具体的实施例中, RDMA 模块在执行上述步骤 103 时, 具体可 以通过如下的步骤来实现, 具体包括 : 0072 步骤201, 判断RDMA模块中是否有空闲的缓存单元, 如果有, 则执行步骤。

  36、202 ; 如果 没有, 继续执行步骤 203 中的判断。其中 RDMA 模块在判断是否有空闲的缓存单元时, 具体 可以查找缓存单元内标签域中的有效位, 是否指示该缓存单元空闲。 0073 步骤 202, 在 RDMA 模块中选择空闲的缓存单元作为第一缓存单元, 并将队列对的 关联数据和关联数据的优先级信息储存到第一缓存单元中。 0074 步骤 203, 判断在非空闲的缓存单元中是否有优先级比上述步骤 101 中获取的 队列对的关联数据的优先级低的缓存单元, 如果有, 则执行步骤 204 ; 如果没有, 在非空闲 的缓存单元的优先级与队列对的关联数据的优先级相同的情况下, RDMA 模块会执行。

  37、步骤 205, 而非空闲的缓存单元的优先级比队列对的关联数据的优先级都高的情况, 则不能将缓 存单元中的信息置换出去, 此时, RDMA 模块不会缓存该获取的关联数据。其中缓存单元的 优先级与缓存单元中储存的关联数据的优先级一致。 0075 步骤 204, 选择优先级比队列对的关联数据的优先级低的缓存单元作为第二缓存 单元, 并用队列对的关联数据和关联数据的优先级信息替换第二缓存单元中的信息。 0076 步骤 205, 在非空闲的缓存单元中按照预置的策略选择缓存单元作为第三缓存单 元, 并用队列对的关联数据和关联数据的优先级信息替换第三缓存单元中的信息。其中预 置的策略可以包括 : 最近最少使。

  38、用算法 (Least Recently Used, LRU) 等算法。 0077 可见, 通过上述步骤201到205, RDMA模块可以保证优先级较高的队列对的关联数 据的缓存。 0078 需要说明的是, 由于 RDMA 模块在首次分配缓存单元的资源时, 是根据需要储存的 队列对的关联数据的大小来分配的, 则在 RDMA 模块中非空闲的缓存单元的粒度与该非空 闲的缓存单元当前储存的关联数据的大小一致。 因此, RDMA模块在上述步骤204和205时, 需要为上述步骤 101 和 102 获取的信息选择一个存储空间足够大且不会浪费的缓存单元, 即选择的缓存单元的大小要等于需要储存的关联数据和关联。

  39、数据的优先级信息的总体大 小, 这样在替换信息时, 上述队列对的关联数据和关联数据的优先级信息才能完全地储存 到选择的缓存单元中。 0079 另外需要说明的是, 当上述队列对的关联数据和关联数据的优先级信息首次被储 存到缓存单元后, 在后续传输数据的过程中, 其中某些关联数据可能会发生改变, 则 RDMA 模块还可以对缓存单元中储存的关联数据进行更新, 其中可以对某一个或多个关联数据进 行修改。且当队列对注销时后, 为了提高 RDMA 模块中缓存单元的利用率, RDMA 模块可以 将上述的缓存单元置为空闲的缓存单元, 则该缓存单元中储存的数据无效, 这样该缓存单 元就可以储存任意优先级的队列对。

  40、的关联数据, 即该缓存单元中的数据可以被任意关联数 据替换。其中, 队列对的注销可以由通信设备中包括的 RDMA 模块的驱动下发注销命令, 当 RDMA 模块接收到注销命令就可以对相应的队列对进行注销, 而驱动模块发起的注销命令可 以是由用户调用该 RDMA 模块的驱动执行注销队列对功能的操作等来触发 0080 以下以一个具体的实施例来说明本发明实施例提供的信息缓存方法, 主要应用于 说 明 书 CN 103647807 A 9 7/13 页 10 如图1所示的通信设备中, 在通信设备中的处理器为CPU, RDMA模块为HCA卡, 该HCA卡可以 是一块现场可编程逻辑门阵列 (Field Pr。

  42、务和从线缆上接收过来的RDMA报文, 并 终结 RDMA 协议。 0083 具体地, 当协议引擎接收到 PCIE 接口下发的任务时, 分析任务并从队列管理模块 读取对应的队列对的关联数据, 根据读取的关联数据向 PCIE 接口请求获取待传输数据, 并 按照RDMA协议构造头部, 将待传输数据封装成完整的RDMA报文, 传递给收发接口发送到线 另一方面, 当协议引擎接收到收发接口的 RDMA 报文时, 会分析报文头部, 根据头 部标识的目的队列对的序号, 从队列管理模块获取相应的关联数据, 并将待传输数据通过 PCIE 接口写到通信设备的存储模块中 ; 同时协议引擎会向收发接口。

  43、回送应答报文, 或者通 过 PCIE 接口从存储模块中读取目标数据, 然后构造读应答报文传递给收发接口发送到线) 收发接口是与其它通信设备中 HCA 卡的连接接口, 通过该收发接口实现协议 引擎上的逻辑报文与符合线路电气规则的物理信号之间的转换, 进而可以实现与其它通信 设备之间的通信。 0086 (4) 队列管理模块, 用于从缓存管理模块中获取需要的队列对的关联数据, 如果在 HCA 卡中不存在该关联数据, 则需要通过协议引擎和 PCIE 接口从存储模块中获取这些关联 数据, 并向缓存模块申请通过缓存单元来储存获取到的关联数据。 0087 (5) 缓存管理模块用来响应。

  44、队列管理模块发出的申请、 搜索、 释放、 读出、 写入缓存 单元的命令。 0088 具体地, 当队列管理模块未能从缓存管理模块读出需要的队列对的关联数据, 则 当通过 PCIE 接口从通信设备的存储模块中获取到关联数据后, 可以向缓存管理模块发出 申请缓存单元的命令 ; 则缓存管理模块依据内部算法, 确定是否允许缓存该关联数据, 如果 允许, 则可以向队列管理模块返回缓存单元的标识比如序号 ; 否则, 返回非法值指示不允许 缓存该关联数据。 0089 当队列管理模块需要向协议引擎提供关联数据时, 首先向缓存管理模块发出搜索 命令, 以确认是否存在相应的关联数据 ; 另一种情况下, 当队列管理模。

  45、块接收到 PCIE 接口 下发的注销队列对的操作时, 会向缓存管理模块发出搜索命令, 以确认是否存在该队列对 对应的缓存单元。 如果存在, 缓存管理模块会返回储存关联数据的缓存单元的序号 ; 不存在 则返回无效序号。 0090 当队列管理模块接收到注销队列对的操作, 且已经搜索到存在该队列对对应的缓 存单元时, 队列管理模块会向缓存管理模块下发释放缓存单元的命令 ; 当缓存单元中存在 队列管理模块需要使用的队列对的关联数据时, 队列管理模块可以向缓存管理模块下发读 说 明 书 CN 103647807 A 10 8/13 页 11 出缓存单元中信息的命令, 以获得相应的关联数据 ; 当缓存管理。

  46、模块允许储存某个队列对 对应的关联数据时, 在给出缓存单元的序号后, 队列管理模块可以通过缓存管理模块向给 出序号的缓存单元写入关联数据。 0091 当两个上述的通信设备 (比如通信设备 A 和 B) 在传输数据时, 具体可以通过如下 方法来实现 : 0092 (1) 通信设备 A 发送待传输数据 0093 A1 : 通信设备A中的CPU将待传输数据写入到存储模块中, 且将传输的任务写入到 存储模块的发送队列中, 并通过门铃通知 HCA 卡执行相应的任务。其中门铃可以为一个通 知消息, 在该通知消息中可以包括队列对的序号。 0094 B1 : HCA 卡中的 PCIE 接口接收到该门铃传输给协。

  47、议引擎, 由协议引擎解析该门铃, 得到其中包含的队列对的序号后, 通过PCIE接口向通信设备A的存储模块获取该队列对的 关联数据, 可以包括如下至少一个信息 : 队列对的队列上下文, 待传输数据的 MTPT 表和队 列对的完成队列上下文等数据。 0095 C1 : 在执行步骤 B1 的同时, HCA 卡中的协议引擎可以触发队列管理模块向缓存管 理模块下发申请缓存单元的命令, 并在命令中携带队列对的序号和优先级信息。 如果在HCA 卡的缓存单元中按照上述图 3 的结构储存关联数据, 当缓存管理模块接收该命令后, 可以 按照如下的步骤来执行申请缓存单元的操作, 流程图如图 6 所示, 包括 : 0。

  48、096 C11 : 缓存管理模块根据接收命令中的队列对的序号再次确认在缓存单元中是否 储存该队列对对应的关联数据, 如果储存有, 则向队列管理模块返回已存在的信息, 并结束 流程 ; 如果未储存有, 则执行步骤 C12。 0097 C12 : 判断是否有空闲的缓存单元, 主要是遍历缓存单元中的有效位, 该有效位用 来指示缓存单元是否空闲, 如果有, 则向队列管理模块返回其中一个空闲的缓存单元的序 号 ; 如果没有, 则执行步骤 C13。 0098 C13 : 判断是否存在优先级比上述步骤 C11 中接收的命令中优先级信息所指示的 优先级低的缓存单元, 具体可以遍历缓存单元中的优先级位并与接收命。

  49、令中的优先级信息 进行比较, 如果存在, 则执行步骤 C14 ; 如果不存在, 则向队列管理模块返回不允许缓存的 信息。 0099 C14 : 选择一个优先级较低的非空闲缓存单元, 并向队列管理模块返回该缓存单元 的序号, 并允许将队列对的关联数据储存到该缓存单元中。 0100 D1 : 当队列管理模块接收到缓存单元的序号和允许将队列对的关联数据储存到该 缓存的信息后, 会向缓存管理单元发起写入缓存单元的请求, 在请求中还可以携带队列对 的序号、 优先级信息、 缓存单元的序号和需要储存的关联数据, 这样当缓存模块单元接收到 该请求后, 就会将优先级信息、 队列对的序号和关联数据按照上述图 3 所示的结构储存到 相应的缓存单元中。 0101 E1 : HCA 卡中的协议引擎分析关联数据中的队列上下文, 得到队列对中发送队列 的物理地址, 则协议引擎会根据该物理地址通过PCIE接口从通信设。

  本发明实施例公开了信息缓存方法、装置和通信设备,应用于通信技术领域。当包括RDMA模块的通信设备在按照队列对的形式进行传输数据的过程中,在首次需要用到队列对的某一关联数据时,RDMA模块就将该队列对的关联数据获取到,并连同该关联数据的优先级信息一起对应地储存到RDMA模块的缓存单元中。这样在后续如果需要用到该关联数据时,RDMA模块就不需要通过与其相连的处理器接口从存储模块来获取,而直接从缓存单元中获取,避免了RDMA模块与存储器之间频繁的读写操作;同时RDMA模块根据优先级别缓存队列对的关联数据,在RDMA模块中缓存空间有限的情况下,优先将高优先级别的队列对的关联数据缓存。

  远端数据直接存取(RemoteDirectMemoryAccess,RDMA)技术可以降低服务器之间进行数据处理的延迟问题,能降低服务器中中央处理器(CentralProcessingUnit,CPU)处理数据传输的负荷。具体地,在RDMA系统中的服务器包括CPU、存储模块比如双列直插式存储模块(Dual-Inline-Memory-Modules,DIMM)和主机端通道适配器(HostChannelAdapter,HCA)等,且服务器之间是通过HCA之间的线缆互联,以实现服务器之间的通信。

  其中,一个服务器中的HCA可以通过CPU向存储模块得到发送数据后,发送给另一服务器的HCA,并由另一服务器的HCA将接收的数据通过CPU储存到存储模块中。这样在数据传输的过程中,CPU只是负责将数据写入存储模块和将传输数据的任务写入到发送队列中等,而数据传输协议的控制处理比如解析数据报文、封装数据报文和应答数据报文等由HCA来执行,而不需要CPU来参与,从而不需要用到大量CPU的处理能力,降低了CPU的负荷。

  可见,在本实施例中,当包括RDMA模块的通信设备在按照队列对的形式进行传输数据的过程中,在首次需要用到队列对的某一关联数据时,RDMA模块就将该队列对的关联数据获取到,并连同该关联数据的优先级信息一起对应地储存到RDMA模块的缓存单元中。这样在后续如果需要用到任一关联数据时,RDMA模块就不需要通过与其相连的处理器接口从存储模块来获取,而直接从缓存单元中获取,避免了RDMA模块与存储模块之间频繁的读写操作;同时,由于一个队列对的关联数据可以对应一个优先级别,这样RDMA模块根据优先级别缓存队列对的关联数据,在RDMA模块中缓存空间有限的情况下,优先将高优先级别的队列对的关联数据缓存。

  本发明实施例提供一种信息缓存方法,主要是针对如图1所示的通信设备传输数据的过程中的信息缓存。在该通信设备中包括处理器(比如CPU)、存储模块(比如DIMM)和RDMA模块(比如HCA卡),其中处理器主要负责将数据写入存储模块和将传输数据的任务写入到发送队列中等;而RDMA模块可以通过外部设备互连高速通道(PeripheralComponentInterconnectExpress,PCIE)与处理器连接,主要负责数据传输协议的控制处理比如解析数据报文、封装数据报文和应答数据报文等。通信设备之间可以通过RDMA模块之间的线缆互联,该线缆可以是以太网线或Infiniband网线,具体由RDMA模块的端口类型决定。

  步骤101,获取通信设备传输数据的队列对(QueuePair,QP)的关联数据,其中一个队列对可以包括发送队列(SendQueue,SQ)和接收队列(ReceiveQueue,RQ),队列对的关联数据是队列对的配置信息,可以包括在传输数据过程中需要用到的信息,比如队列上下文(QueuePairContext,QPC)、完成队列上下文(CompleteQueueContext,CQC)和数据的MTPT表等,在有些实施例中,该关联数据还可以包括共享接收队列(SRQ)等信息。

  可以理解,如果需要传输数据,则通信设备中的处理器会先创建队列对,并设置队列对的关联数据,比如队列对上下文、数据的MTPT表和完成队列上 下文等关联数据,在该MTPT表中储存有在通信设备的存储模块中储存数据的物理地址和逻辑地址的对应关系;然后处理器将传输的数据写入到存储模块中;再次,处理器将传输数据的类型(比如写操作)、传输数据的起始地址和传输数据的长度信息等内容写入到队列对的发送队列中。本实施例中,处理器在设置队列对的关联数据时,还需要在队列上下文中设置用于指示该队列对优先级的优先级信息,具体地,可以使用队列上下文的服务级别(servicelevel)字段或其它的自定义字段来指示该优先级信息。该优先级信息可以由用户根据需要进行设置,比如为用户关心的任务的队列对设置较高的优先级。需要说明的是,通信设备的处理器所创建的一个队列对的关联数据不会因传输数据的不同而不同,即在首次创建了队列对并初始化了该队列对的关联数据后,该队列对的关联数据在数据传输的过程中就不会改变,但是不同队列对的关联数据确不同。

  当处理器创建了队列对后,通知RDMA模块有任务需要执行,并告诉RDMA模块需要执行任务对应的队列对的标识比如序号。这样RDMA模块就可以根据该队列对的标识,通过PCIE经过处理器向存储模块获取到该队列对的关联数据,进而从关联数据中得到待传输数据的物理地址;然后根据该物理地址通过处理器向存储模块获取到待传输数据后,将待传输数据封装成RDMA报文,通过该RDMA模块与其它通信设备的接口发送给RDMA报文。

  参考图3所示,标签域用于储存队列对的标识和关联数据的优先级信息, 还可以储存标签域的标识和有效位等,其中标签域的标识可以唯一确定一个缓存单元,有效位可以指示该缓存单元是否处于空闲状态,如果该缓存单元中未储存数据或存储的数据处于无效状态,则说明该缓存单元空闲,即缓存单元未使用或使用后被无效,否则缓存单元处于非空闲状态;内容域用于储存队列对的关联数据,且RDMA模块可以为这些关联数据进行编号以指代具体是哪个关联数据,内容域的尺寸由关联数据的大小来决定,其中一种类型的关联数据可以称为该缓存单元的一个成员。进一步地,RDMA模块可以规定内容域中各个关联数据的存放顺序,这样在内容域中,将队列对的关联数据比如队列上下文、内存翻译保护表和完成队列上下文等就会按照预置的顺序储存,比如图3中按照队列上下文、完成队列上下文和内存翻译保护表的顺序存放。

  可见,在本实施例中,当包括RDMA模块的通信设备在按照队列对的形式进行传输数据的过程中,在首次需要用到队列对的某一关联数据时,RDMA模块就将该队列对的关联数据获取到,并连同该关联数据的优先级信息一起对应地储存到RDMA模块的缓存单元中。这样在后续如果需要用到任一关联数据时,RDMA模块就不需要通过与其相连的处理器接口从存储模块来获取,而直接从缓存单元中获取,避免了RDMA模块与存储模块之间频繁的读写操作;同时,由于一个队列对的关联数据可以对应一个优先级别,这样RDMA模块根据优先级别缓存队列对的关联数据,在RDMA模块中缓存空间有限的情况下,优先将高优先级别的队列对的关联数据缓存。

  步骤203,判断在非空闲的缓存单元中是否有优先级比上述步骤101中获 取的队列对的关联数据的优先级低的缓存单元,如果有,则执行步骤204;如果没有,在非空闲的缓存单元的优先级与队列对的关联数据的优先级相同的情况下,RDMA模块会执行步骤205,而非空闲的缓存单元的优先级比队列对的关联数据的优先级都高的情况,则不能将缓存单元中的信息置换出去,此时,RDMA模块不会缓存该获取的关联数据。其中缓存单元的优先级与缓存单元中储存的关联数据的优先级一致。

  需要说明的是,由于RDMA模块在首次分配缓存单元的资源时,是根据需要储存的队列对的关联数据的大小来分配的,则在RDMA模块中非空闲的缓存单元的粒度与该非空闲的缓存单元当前储存的关联数据的大小一致。因此,RDMA模块在上述步骤204和205时,需要为上述步骤101和102获取的信息选择一个存储空间足够大且不会浪费的缓存单元,即选择的缓存单元的大小要等于需要储存的关联数据和关联数据的优先级信息的总体大小,这样在替换信息时,上述队列对的关联数据和关联数据的优先级信息才能完全地储存到选择的缓存单元中。

  另外需要说明的是,当上述队列对的关联数据和关联数据的优先级信息首次被储存到缓存单元后,在后续传输数据的过程中,其中某些关联数据可能会发生改变,则RDMA模块还可以对缓存单元中储存的关联数据进行更新,其中可以对某一个或多个关联数据进行修改。且当队列对注销时后,为了提高RDMA模块中缓存单元的利用率,RDMA模块可以将上述的缓存单元置为空闲的缓存单元,则该缓存单元中储存的数据无效,这样该缓存单元就可以 储存任意优先级的队列对的关联数据,即该缓存单元中的数据可以被任意关联数据替换。其中,队列对的注销可以由通信设备中包括的RDMA模块的驱动下发注销命令,当RDMA模块接收到注销命令就可以对相应的队列对进行注销,而驱动模块发起的注销命令可以是由用户调用该RDMA模块的驱动执行注销队列对功能的操作等来触发

  以下以一个具体的实施例来说明本发明实施例提供的信息缓存方法,主要应用于如图1所示的通信设备中,在通信设备中的处理器为CPU,RDMA模块为HCA卡,该HCA卡可以是一块现场可编程逻辑门阵列(FieldProgrammableGateArray,FPGA)或固化的专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC),HCA卡与CPU之间通过PCIE接口连接。本实施例中的HCA卡的结构可以如图5所示,包括PCIE接口、协议引擎、收发接口、队列管理模块和缓存(cache)管理模块,其中:

  另一方面,当协议引擎接收到收发接口的RDMA报文时,会分析报文头部,根据头部标识的目的队列对的序号,从队列管理模块获取相应的关联数据,并将待传输数据通过PCIE接口写到通信设备的存储模块中;同时协议引擎会向收发接口回送应答报文,或者通过PCIE接口从存储模块中读取目标数据,然后构造读应答报文传递给收发接口发送到线)收发接口是与其它通信设备中HCA卡的连接接口,通过该收发接口实现协议引擎上的逻辑报文与符合线路电气规则的物理信号之间的转换,进而可以实现与其它通信设备之间的通信。

  当队列管理模块接收到注销队列对的操作,且已经搜索到存在该队列对对应的缓存单元时,队列管理模块会向缓存管理模块下发释放缓存单元的命令;当缓存单元中存在队列管理模块需要使用的队列对的关联数据时,队列管理模块可以向缓存管理模块下发读出缓存单元中信息的命令,以获得相应的关联数据;当缓存管理模块允许储存某个队列对对应的关联数据时,在给出缓存单元的序号后,队列管理模块可以通过缓存管理模块向给出序号的缓存单元写入关联数据。

  A2:通信设备B中HCA卡所包括的收发接口接收到RDMA报文后,传输给协议引擎分析该RDMA报文,得到传输的数据、操作类型(本实施例中为写操作)、待操作的目的队列对的序号以及目的虚拟地址。其中待操作的目的队列对与通信设备A中传输数据时的队列对相对应,通信设备A在传输数据时设置队列对时,可以设置通信设备A传输数据的发送队列和通信设备B接收数据的接收队列,则该待操作的目的队列对的信息即为接收队列的信息。

  可见,在本实施例的信息缓存装置中,在传输数据的过程中,如果在首次需要用到队列对的某些关联数据时,关联数据获取单元10会将通信设备传输数据的队列对的关联数据获取到,并由储存单元12连同该关联数据的优先 级信息一起对应地储存到信息缓存装置的缓存单元13中。这样在后续如果需要用到该关联数据时,信息缓存装置就不需要通过与通信设备中处理器的接口从存储模块来获取,而直接从缓存单元中获取,避免信息缓存装置与存储模块之间频繁的读写操作;同时,由于一个队列对的关联数据可以对应一个优先级别,这样信息缓存装置就根据优先级别缓存队列对的关联数据,在信息缓存装置中缓存空间有限的情况下,优先将高优先级别的队列对的关联数据缓存。

  需要说明的是,由于信息缓存装置在首次分配缓存单元的资源时,是根据需要储存的队列对的关联数据的大小来分配的,则非空闲的缓存单元的粒度与该非空闲的缓存单元当前储存的关联数据的大小一致。因此,上述第二储存单元121和第三储存单元122在替换缓存单元的信息时,需要为关联数据获取单元10获取的关联数据选择一个存储空间足够大的缓存单元,即选择的缓存单元的大小等于需要储存的关联数据和关联数据的优先级信息的总体大小,这样在替换信息时,队列对的关联数据和关联数据的优先级信息才能完全地储存到选择的缓存单元中。

  RDMA模块22可以与输出装置24连接,并与其它通信设备之间连接,用于获取所述通信设备传输数据的队列对的关联数据;确定所述队列对的关联数据的优先级信息;将所述队列对的关联数据和所关联数据的优先级信息对应地储存到该RDMA模块22的缓存单元中,其中,RDMA模块22可以在所述队列对的队列对上下文的服务级别字段或自定义字段中确定所述关联数据的优先级信息。这样在后续如果需要用到任一关联数据时,RDMA模块22就不需要通过与通信设备中处理器21的接口从存储器20来获取,而直接从缓存单元中获取,避免RDMA模块22与存储器20之间频繁的读写操作;同时,由于一个队列对的关联数据可以对应一个优先级别,这样RDMA模块22就根据优 先级别缓存队列对的关联数据,在RDMA模块22中缓存空间有限的情况下,优先将高优先级别的队列对的关联数据缓存。

  进一步地,RDMA模块22在储存关联数据和关联数据的优先级信息时,可以在RDMA模块22的缓存单元中选择空闲的缓存单元作为第一缓存单元,并将所述队列对的关联数据和关联数据的优先级信息储存到所述第一缓存单元中,其中缓存单元的优先级与所述缓存单元中储存的关联数据的优先级一致。如果所述RDMA模块22的缓存单元中没有空闲的缓存单元,在所述非空闲的缓存单元中选择优先级比所述队列对的关联数据的优先级低的缓存单元作为第二缓存单元,并用所述队列对的关联数据和关联数据的优先级信息替换所述第二缓存单元中的信息。如果所述非空闲的缓存单元的优先级与所述队列对的关联数据的优先级相同,则在所述非空闲的缓存单元中按照预置的策略选择缓存单元作为第三缓存单元,并用所述队列对的关联数据和关联数据的优先级信息替换所述第三缓存单元中的信息。

  需要说明的是,由于RDMA模块22在首次分配缓存单元的资源时,是根据需要储存的队列对的关联数据的大小来分配的,则非空闲的缓存单元的大小与该非空闲的缓存单元当前储存的关联数据的大小一致。因此,RDMA模块22在替换缓存单元的信息时,需要为关联数据选择一个存储空间足够大的缓存单元,即选择的缓存单元的大小要大于或等于需要储存的关联数据和关联数据的优先级信息的总体大小,这样在替换信息时,队列对的关联数据和关联数据的优先级信息才能完全地储存到选择的缓存单元中。

  另外需要说明的是,当上述队列对的关联数据和关联数据的优先级信息首次被储存到缓存单元后,在后续传输数据的过程中,其中某些关联数据可能会发生改变,则RDMA模块22还可以对缓存单元中储存的关联数据进行更 新;且当队列对注销时,为了提高RDMA模块22中缓存单元的利用率,RDMA模块22可以将上述储存队列对的关联数据的缓存单元置为空闲的缓存单元,这样该缓存单元就可以储存任意优先级的队列对的关联数据。具体地,RDMA模块22可以修改该缓存单元中的有效位,以指示该缓存单元是空闲的缓存单元。

搜索