用于直接内存访问读取操作的数据预读方法及介质技术

技术编号:37971197 阅读:13 留言:0更新日期:2023-06-30 09:46
本申请提供用于直接内存访问读取操作的数据预读方法及介质。方法包括:通过第一设备发送多个直接内存访问读取报文到第二设备,第一直接内存访问读取报文指示访问第二设备的第二存储器的第一数据空间并且读取第一数据;通过第二设备发送对应的多个直接内存访问应答报文到第一设备,第一直接内存访问应答报文指示第一数据空间中相对于第一数据的剩余数据的数据长度;通过第一设备,基于剩余数据的数据长度,选择性地发起对第一数据的第一直接内存访问读取操作或者对第一数据空间的第二直接内存访问读取操作。如此,提高业务吞吐性能,降低业务传输延时,达到业务处理性能提升的效果。的效果。的效果。

【技术实现步骤摘要】
用于直接内存访问读取操作的数据预读方法及介质


[0001]本申请涉及计算机
,尤其涉及用于直接内存访问读取操作的数据预读方法及介质。

技术介绍

[0002]随着数据中心、云计算等应用的发展,直接内存访问(Direct Memory Access,DMA)技术被广泛地用于提升输入输出效率和降低内存拷贝开销。为了提升数据处理速度,可以利用远程直接内存访问(Remote Direct Memory Access,RDMA)技术来将数据从一台机器快速移动到远程机器的存储器中且数据传输不涉及到系统内核。从数据生产和数据消费的角度来看,DMA和RDMA都是由数据消费方,例如要消费数据的外设设备,向数据生产方,例如存储了待消费数据的主机,发起DMA读取操作进而获取相应数据进行处理。但是,现有技术中用于数据读取的DMA技术和RDMA技术,在面对海量的数据读取业务请求时,在吞吐量和延时上表现不佳也在业务处理性能的指标上表现不佳,这是因为很多时候发起DMA读取操作以及做出应答所导致的处理带宽、算力和内存开销、业务延时等,超过了通过本次DMA读取操作能带来的收益。
[0003]为此,本申请提出了用于直接内存访问读取操作的数据预读方法及介质,以便应对现有技术中的技术难题。

技术实现思路

[0004]第一方面,本申请提供了一种用于直接内存访问读取操作的数据预读方法。所述数据预读方法包括:通过第一设备,发送多个直接内存访问读取报文到第二设备,其中,第一直接内存访问读取报文是所述多个直接内存访问读取报文中的任一直接内存访问读取报文,所述第一直接内存访问读取报文指示访问所述第二设备的第二存储器的第一数据空间并且读取位于所述第一数据空间的第一数据用于存储在所述第一设备的第一存储器;通过所述第二设备,发送与所述多个直接内存访问读取报文一一对应的多个直接内存访问应答报文到所述第一设备,其中,第一直接内存访问应答报文对应所述第一直接内存访问读取报文,所述第一直接内存访问应答报文指示所述第一数据空间中相对于所述第一数据的剩余数据的数据长度;通过所述第一设备,基于所述第一直接内存访问应答报文所指示的所述第一数据空间中相对于所述第一数据的剩余数据的数据长度,选择性地发起对所述第一数据的第一直接内存访问读取操作或者对所述第一数据空间的第二直接内存访问读取操作。
[0005]通过本申请的第一方面,提高业务吞吐性能,降低业务传输延时,达到业务处理性能提升的效果。
[0006]在本申请的第一方面的一种可能的实现方式中,所述第二直接内存访问读取操作包括对所述第一数据空间执行全量数据读取。
[0007]在本申请的第一方面的一种可能的实现方式中,所述第二直接内存访问读取操作
包括读取所述第一数据和所述第一数据空间中相对于所述第一数据的所述剩余数据。
[0008]在本申请的第一方面的一种可能的实现方式中,通过所述第一设备,基于所述第一直接内存访问应答报文所指示的所述第一数据空间中相对于所述第一数据的所述剩余数据的数据长度,选择性地发起对所述第一数据的所述第一直接内存访问读取操作或者对所述第一数据空间的所述第二直接内存访问读取操作,包括:通过所述第一设备,判断所述剩余数据是否是微量数据,当所述剩余数据不是微量数据时发起对所述第一数据的所述第一直接内存访问读取操作,当所述剩余数据是微量数据时发起对所述第一数据空间的所述第二直接内存访问读取操作。
[0009]在本申请的第一方面的一种可能的实现方式中,当所述剩余数据不是微量数据时,所述第二设备不将所述剩余数据发送给所述第一设备。
[0010]在本申请的第一方面的一种可能的实现方式中,当所述剩余数据的数据长度小于预设数据长度 时,所述第一设备判断所述剩余数据是微量数据。
[0011]在本申请的第一方面的一种可能的实现方式中,当所述剩余数据的数据长度小于所述第一直接内存访问读取报文的报文头的数据长度时,所述第一设备判断所述剩余数据是微量数据。
[0012]在本申请的第一方面的一种可能的实现方式中,当所述剩余数据的数据长度小于所述第一直接内存访问应答报文的报文头的数据长度时,所述第一设备判断所述剩余数据是微量数据。
[0013]在本申请的第一方面的一种可能的实现方式中,当所述剩余数据是微量数据时,所述第一设备所发起的对所述第一数据空间的所述第二直接内存访问读取操作包括对所述剩余数据执行数据预读用于存储在所述第一设备的所述第一存储器。
[0014]在本申请的第一方面的一种可能的实现方式中,所述第一数据位于所述第二设备的所述第二存储器的第一内存地址区域,所述第一数据空间是所述第二存储器中的一个或者多个分区,所述一个或者多个分区整体上包括所述第一内存地址区域。
[0015]在本申请的第一方面的一种可能的实现方式中,对所述第一数据空间的所述第二直接内存访问读取操作包括对所述一个或者多个分区分别执行全量数据读取。
[0016]在本申请的第一方面的一种可能的实现方式中,所述第一设备所发起的对所述第一数据空间的所述第二直接内存访问读取操作包括读取所述第一数据和所述第一数据空间中相对于所述第一数据的所述剩余数据用于存储在所述第一设备的所述第一存储器。
[0017]在本申请的第一方面的一种可能的实现方式中,第二直接内存访问读取报文是所述多个直接内存访问读取报文中的相对于所述第一直接内存访问读取报文的下一直接内存访问读取报文,所述第二直接内存访问读取报文指示至少访问所述第二设备的所述第二存储器的所述第一数据空间并且读取位于所述第一数据空间的所述剩余数据中的第二数据,所述第一设备通过存储在所述第一设备的所述第一存储器的所述剩余数据读取所述第二数据。
[0018]在本申请的第一方面的一种可能的实现方式中,所述第二直接内存访问读取报文还指示访问所述第二设备的所述第二存储器的不同于所述第一数据空间的第二数据空间并且读取位于所述第二数据空间的第三数据,所述第一设备通过发起对所述第三数据的第三直接内存访问读取操作来读取所述第三数据。
[0019]在本申请的第一方面的一种可能的实现方式中,所述第一设备是外设,所述第二设备是主机,所述第一存储器是所述外设的存储器,所述第二存储器是所述主机的内存。
[0020]第二方面,本申请实施例还提供了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据上述任一方面的任一种实现方式的方法。
[0021]第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。
[0022]第四方面,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的指令,当所述指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。...

【技术保护点】

【技术特征摘要】
1.一种用于直接内存访问读取操作的数据预读方法,其特征在于,所述数据预读方法包括:通过第一设备,发送多个直接内存访问读取报文到第二设备,其中,第一直接内存访问读取报文是所述多个直接内存访问读取报文中的任一直接内存访问读取报文,所述第一直接内存访问读取报文指示访问所述第二设备的第二存储器的第一数据空间并且读取位于所述第一数据空间的第一数据用于存储在所述第一设备的第一存储器;通过所述第二设备,发送与所述多个直接内存访问读取报文一一对应的多个直接内存访问应答报文到所述第一设备,其中,第一直接内存访问应答报文对应所述第一直接内存访问读取报文,所述第一直接内存访问应答报文指示所述第一数据空间中相对于所述第一数据的剩余数据的数据长度;通过所述第一设备,基于所述第一直接内存访问应答报文所指示的所述第一数据空间中相对于所述第一数据的剩余数据的数据长度,选择性地发起对所述第一数据的第一直接内存访问读取操作或者对所述第一数据空间的第二直接内存访问读取操作。2.根据权利要求1所述的数据预读方法,其特征在于,所述第二直接内存访问读取操作包括对所述第一数据空间执行全量数据读取。3.根据权利要求1所述的数据预读方法,其特征在于,所述第二直接内存访问读取操作包括读取所述第一数据和所述第一数据空间中相对于所述第一数据的所述剩余数据。4.根据权利要求1所述的数据预读方法,其特征在于,通过所述第一设备,基于所述第一直接内存访问应答报文所指示的所述第一数据空间中相对于所述第一数据的所述剩余数据的数据长度,选择性地发起对所述第一数据的所述第一直接内存访问读取操作或者对所述第一数据空间的所述第二直接内存访问读取操作,包括:通过所述第一设备,判断所述剩余数据是否是微量数据,当所述剩余数据不是微量数据时发起对所述第一数据的所述第一直接内存访问读取操作,当所述剩余数据是微量数据时发起对所述第一数据空间的所述第二直接内存访问读取操作。5.根据权利要求4所述的数据预读方法,其特征在于,当所述剩余数据不是微量数据时,所述第二设备不将所述剩余数据发送给所述第一设备。6.根据权利要求4所述的数据预读方法,其特征在于,当所述剩余数据的数据长度小于预设数据长度时,所述第一设备判断所述剩余数据是微量数据。7.根据权利要求4所述的数据预读方法,其特征在于,当所述剩余数据的数据长度小于所述第一直接内存访问读取报文的报文头的数据长度时,所述第一设备判断所述剩余数据是微量数据。8.根据权利要求4所述的数据预读方法,其特征在于,当所述剩余数据的数据长度小于所述第一直接内存访问...

【专利技术属性】
技术研发人员:彭海远
申请(专利权)人:珠海星云智联科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1