CN115622954B - 数据传输方法、装置、电子设备及存储介质 - Google Patents
数据传输方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115622954B CN115622954B CN202211196510.1A CN202211196510A CN115622954B CN 115622954 B CN115622954 B CN 115622954B CN 202211196510 A CN202211196510 A CN 202211196510A CN 115622954 B CN115622954 B CN 115622954B
- Authority
- CN
- China
- Prior art keywords
- prp
- pointer data
- data
- command
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 88
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000015654 memory Effects 0.000 claims abstract description 101
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 5
- 238000000605 extraction Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 239000000284 extract Substances 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000007405 data analysis Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6245—Modifications to standard FIFO or LIFO
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
Abstract
本公开涉及一种数据传输方法、装置、电子设备及存储介质。本公开通过接收至少一条NVMe命令,所述NVMe命令包括Admin命令、NVM命令,对每条NVMe命令进行提取,得到PRP指针数据、PRP列表指针数据,将所述PRP指针数据写入先进先出存储器中,基于所述PRP列表指针数据得到目标PRP指针数据,将所述目标PRP指针数据写入所述先进先出存储器中,对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行传输。由于将解析PRP列表指针数据和传输PRP指针数据的过程分离,传输时无需等待,不传输无用的列表指针数据,可以提高数据传输速度,提升数据传输效率。并将所有PRP指针数据以及目标PRP指针数据并行传输,进一步提高数据传输速度,提升数据传输效率。
Description
技术领域
本公开涉及数据处理领域,尤其涉及一种数据传输方法、装置、电子设备及存储介质。
背景技术
PRP是NVMe协议定义了的一种数据传输的格式,用来描述内存中的一段数据空间,这段数据空间在物理上可能连续的,也可能是不连续的。
每一个64B的命令中,都有128bit数据指针,有两个PRP指针。现有技术中,通过判断NVMe命令中的两个PRP指针是PRP指针数据还是PRP列表指针数据。如果是PRP指针数据,通过DMA搬运PRP指针数据;如果是PRP列表指针数据,则先通过DMA搬运PRP列表,再通过DMA搬运PRP列表中的PRP指针数据,然后判断是否还有PRP列表指针数据,如果有,则执行循环,直到搬完为止。
但是,如果PRP列表嵌套了很多层,需要等当前层的PRP指针解析完毕时,才能获取下一层PRP列表的地址,然后去解析下一层,需要一层一层解析、搬运,上述方法通过串行的方式搬运PRP指针数据,数据传输速度较慢,而且需要搬运无用的PRP列表指针数据,导致数据传输效率较低。
发明内容
为了解决上述技术问题,本公开提供了一种数据传输方法、装置、电子设备及存储介质,以提高数据传输速度,提升数据传输效率。
第一方面,本公开实施例提供一种数据传输方法,所述方法包括:
接收至少一条NVMe命令,所述NVMe命令包括Admin命令、NVM命令;
对每条NVMe命令进行提取,得到PRP指针数据、PRP列表指针数据;
将所述PRP指针数据写入先进先出存储器中;
基于所述PRP列表指针数据得到目标PRP指针数据;
将所述目标PRP指针数据写入所述先进先出存储器中;
对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行传输。
在一些实施例中,所述对每条NVMe命令进行提取,得到PRP指针数据、PRP列表指针数据,包括:
分别得到每条NVMe命令对应的PRP请求;
从所述PRP请求中提取PRP指针数据、PRP列表指针数据。
在一些实施例中,在所述分别得到每条NVMe命令对应的PRP请求之前,所述方法还包括:
为每条NVMe命令分别配置一个通路;
相应地,所述分别得到每条NVMe命令对应的PRP请求,包括:
获取每个通路上的NVMe命令对应的PRP请求。
在一些实施例中,所述获取每个通路上的NVMe命令对应的PRP请求,包括:
对每个通路的NVMe命令进行解析,得到所述NVMe命令中的PRP请求。
在一些实施例中,所述基于所述PRP列表指针数据得到目标PRP指针数据,包括:
计算所述PRP列表指针的物理地址;
从所述物理地址获取到所述目标PRP指针数据。
在一些实施例中,所述对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行传输,包括:
通过分散聚集式直接内存访问的方式从所述先进先出存储器中搬运所述PRP指针数据以及所述目标PRP指针数据;
将搬运的所述PRP指针数据以及所述目标PRP指针数据进行传输。
在一些实施例中,所述对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行传输之前,所述方法还包括:
判断所述先进先出存储器中是否有数据。
第二方面,本公开实施例提供一种数据传输装置,包括:
接收模块,用于接收至少一条NVMe命令,所述NVMe命令包括Admin命令、NVM命令;
提取模块,用于对每条NVMe命令进行提取,得到PRP指针数据、PRP列表指针数据;
第一写入模块,用于将所述PRP指针数据写入先进先出存储器中;
得到模块,用于基于所述PRP列表指针数据得到目标PRP指针数据;
第二写入模块,用于将所述目标PRP指针数据写入所述先进先出存储器中;
传输模块,用于对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行传输。
第三方面,本公开实施例提供一种电子设备,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如第一方面所述的方法。
第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现如第一方面所述的方法。
第五方面,本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或指令,该计算机程序或指令被处理器执行时实现如第一方面所述的方法。
本公开实施例提供的数据传输方法、装置、电子设备及存储介质,通过接收至少一条NVMe命令,所述NVMe命令包括Admin命令、NVM命令,对每条NVMe命令进行提取,得到PRP指针数据、PRP列表指针数据,将所述PRP指针数据写入先进先出存储器中,基于所述PRP列表指针数据得到目标PRP指针数据,将所述目标PRP指针数据写入所述先进先出存储器中,对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行传输。由于将解析PRP列表指针数据和传输PRP指针数据的过程分离,传输时无需等待,不传输无用的列表指针数据,可以提高数据传输速度,提升数据传输效率。并将所有PRP指针数据以及目标PRP指针数据并行传输,进一步提高数据传输速度,提升数据传输效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的数据传输方法流程图;
图2为本公开实施例提供的数据传输流程的示意图;
图3为本公开另一实施例提供的数据传输方法流程图;
图4为本公开另一实施例提供的数据传输方法流程图;
图5为本公开实施例提供的数据传输装置的结构示意图;
图6为本公开实施例提供的电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
PRP请求是NVMe协议定义了的一种数据传输的格式,用来描述内存中的一段数据空间,这段数据空间在物理上可能连续的,也可能是不连续的。主机通过NVMe命令中的PRP请求告诉NVMe控制器需要传输的数据在内存的什么位置(物理地址),或者从闪存上读取的数据应该放到内存的什么位置(物理地址)。
每一个64B的命令中,都有128bit数据指针,有两个PRP指针。现有技术中,通过判断NVMe命令中的两个PRP指针是PRP指针数据还是PRP列表指针数据。如果是PRP指针数据,通过DMA搬运PRP指针数据;如果是PRP列表指针数据,则先通过DMA搬运PRP列表,再通过DMA搬运PRP列表中的PRP指针数据,然后判断是否还有PRP列表指针数据,如果有,则执行循环,直到搬完为止。
但是,如果PRP列表嵌套了很多层,需要等当前层的PRP指针解析完毕时,才能获取下一层PRP列表的地址,然后去解析下一层,需要一层一层解析、搬运,上述方法通过串行的方式搬运PRP指针数据,数据传输速度较慢,而且需要搬运无用的PRP列表指针数据,导致数据传输效率较低。
针对该问题,本公开实施例提供了一种数据传输方法,下面结合具体的实施例对该方法进行介绍。
图1为本公开实施例提供的数据传输方法流程图。该方法可以应用于电子设备,该方法可以应用于搬运PRP指针数据的场景,可以提高数据传输速度,提升数据传输效率。可以理解的是,本公开实施例提供的数据传输方法还可以应用在其他场景中。
下面对图1所示的的数据传输方法进行介绍,该方法包括如下几个步骤:
S101、接收至少一条NVMe命令,所述NVMe命令包括Admin命令、NVM命令。
在一些可选的实施方式中,电子设备接收至少一条NVMe命令。所述NVMe命令包括Admin命令、NVM命令。PRP是NVMe最基本的数据传输方式,所以Admin命令与NVM命令都需要提取出PRP请求,但Admin命令中一般不存在PRP列表指针数据,NVM命令中一般会存在PRP列表指针数据。如图2所示,电子设备可以同时接收多条NVMe命令,多条NVMe命令中,有Admin命令和NVM命令。
S102、对每条NVMe命令进行提取,得到PRP指针数据、PRP列表指针数据。
在接收到至少一条NVMe命令之后,电子设备对每条NVMe命令进行提取,得到PRP指针数据、PRP列表指针数据。其中,PRP指针数据会指向一个物理地址,物理地址通常为64位;PRP列表指针数据会指向一个PRP列表,该PRP列表中有PRP指针数据,PRP指针数据会指向一个物理地址,该PRP列表中可能还有另一个PRP列表指针数据,另一个PRP列表指针数据会指向另一个PRP列表,另一个PRP列表中有PRP指针数据,PRP指针数据也会指向一个物理地址,这种列表中嵌套列表的方式,只有当所有PRP列表中的PRP指针数据均搬运完,数据传输才算完成。
如图2所示,在接收到多条NVMe命令之后,电子设备中的PRP提取组件,对每条NVMe命令进行提取,得到PRP指针数据、PRP列表指针数据。
在一些实施例中,S102包括但不限于S1021、S1022:
S1021、分别得到每条NVMe命令对应的PRP请求。
在接收到至少一条NVMe命令之后,电子设备可以从每条NVMe命令得到该NVMe命令对应的PRP请求。
S1022、从所述PRP请求中提取PRP指针数据、PRP列表指针数据。
在得到每条NVMe命令对应的PRP请求之后,进一步,电子设备可以从所述PRP请求中提取PRP指针数据、PRP列表指针数据。
S103、将所述PRP指针数据写入先进先出存储器中。
如图2所示,在得到PRP指针数据之后,电子设备将所述PRP指针数据写入先进先出存储器中。具体的,电子设备中的PRP提取组件将提取到的所述PRP指针数据写入先进先出存储器中。先入先出存储器配置了多个,电子设备根据先入先出存储器是否空闲,灵活选择写入哪一个先进先出存储器中。
S104、基于所述PRP列表指针数据得到目标PRP指针数据。
在得到PRP列表指针数据之后,电子设备根据所述PRP列表指针数据得到目标PRP指针数据。如图2所示,电子设备中的DMA组件可以根据所述PRP列表指针数据找到PRP列表,从PRP列表中得到目标PRP指针数据。
S105、将所述目标PRP指针数据写入所述先进先出存储器中。
在得到目标PRP指针数据之后,电子设备将所述目标PRP指针数据写入所述先进先出存储器中。具体的,电子设备中的DMA组件在得到所述目标PRP指针数据之后,将所述目标PRP指针数据写入所述先进先出存储器中。
S106、对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行传输。
电子设备对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行传输。具体的,电子设备中的SG DMA组件对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行搬运,从而对数据进行传输。通过将解析PRP列表指针数据和传输PRP指针数据的过程分离,传输时无需等待,不传输无用的列表指针数据,可以提高数据传输速度,提升数据传输效率。并将所有PRP指针数据以及目标PRP指针数据并行传输,进一步提高数据传输速度,提升数据传输效率。
本公开实施例通过接收至少一条NVMe命令,所述NVMe命令包括Admin命令、NVM命令,对每条NVMe命令进行提取,得到PRP指针数据、PRP列表指针数据,将所述PRP指针数据写入先进先出存储器中,基于所述PRP列表指针数据得到目标PRP指针数据,将所述目标PRP指针数据写入所述先进先出存储器中,对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行传输。由于将解析PRP列表指针数据和传输PRP指针数据的过程分离,传输时无需等待,不传输无用的列表指针数据,可以提高数据传输速度,提升数据传输效率。并将所有PRP指针数据以及目标PRP指针数据并行传输,进一步提高数据传输速度,提升数据传输效率。
图3为本公开另一实施例提供的数据传输方法流程图,如图3所示,该方法包括如下几个步骤:
S301、接收至少一条NVMe命令,所述NVMe命令包括Admin命令、NVM命令。
具体的,S301和S101的实现过程和原理一致,此处不再赘述。
S302、为每条NVMe命令分别配置一个通路。
可选的,电子设备可以为每条NVMe命令分别配置一个通路。充分发挥NVMe无锁多队列的特点,根据需求配置通路数量,可以同时处理多条命令,节省时间。
S303、获取每个通路上的NVMe命令对应的PRP请求。
为每条NVMe命令分别配置一个通路之后,进一步,电子设备获取每个通路上的NVMe命令对应的PRP请求。如图2所示,电子设备中的PRP提取组件可以每个通路上的NVMe命令对应的PRP请求。
可选的,所述获取每个通路上的NVMe命令对应的PRP请求,包括:对每个通路的NVMe命令进行解析,得到所述NVMe命令中的PRP请求。
具体的,电子设备可以对每个通路的NVMe命令进行解析,得到所述NVMe命令中的PRP请求。
S304、从所述PRP请求中提取PRP指针数据、PRP列表指针数据。
电子设备从所述PRP请求中提取PRP指针数据、PRP列表指针数据。如图2所示,电子设备中的PRP提取组件在提取出PRP请求之后,可以从所述PRP请求中提取PRP指针数据、PRP列表指针数据。
S305、将所述PRP指针数据写入先进先出存储器中。
具体的,S305和S103的实现过程和原理一致,此处不再赘述。
S306、计算所述PRP列表指针的物理地址。
在得到PRP列表指针数据之后,电子设备计算所述PRP列表指针的物理地址。具体的,电子设备中的DMA组件根据PRP列表指针数据计算所述PRP列表指针的物理地址。
S307、从所述物理地址获取到所述目标PRP指针数据。
电子设备在计算出所述PRP列表指针的物理地址之后,从所述物理地址获取到所述目标PRP指针数据。如图2所示,电子设备中的DMA组件从所述物理地址获取到所述目标PRP指针数据。
S308、将所述目标PRP指针数据写入所述先进先出存储器中。
具体的,S308和S105的实现过程和原理一致,此处不再赘述。
S309、对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行传输。
电子设备对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行传输。例如,电子设备可以判断所述先进先出存储器中是否有数据,如果有,则对所述先进先出存储器中的数据进行传输。
在一些实施例中,S309包括但不限于S3091、S3092:
S3091、通过分散聚集式直接内存访问的方式从所述先进先出存储器中搬运所述PRP指针数据以及所述目标PRP指针数据。
电子设备可以通过分散聚集式直接内存访问的方式对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行搬运,从而对数据进行传输。如图2所示,电子设备中的SG DMA组件将所有PRP指针数据以及目标PRP指针数据并行传输,可以提高数据传输速度,提升数据传输效率。
S3092、将搬运的所述PRP指针数据以及所述目标PRP指针数据进行传输。
进一步,电子设备将搬运的所述PRP指针数据以及所述目标PRP指针数据进行传输。如图2所示,电子设备中的SG DMA组件将所有PRP指针数据以及目标PRP指针数据将数据传输到PCIe存储器中。
本公开实施例通过接收至少一条NVMe命令,所述NVMe命令包括Admin命令、NVM命令,为每条NVMe命令分别配置一个通路,获取每个通路上的NVMe命令对应的PRP请求。进一步,从所述PRP请求中提取PRP指针数据、PRP列表指针数据,将所述PRP指针数据写入先进先出存储器中,计算所述PRP列表指针的物理地址,从所述物理地址获取到所述目标PRP指针数据。并将所述目标PRP指针数据写入所述先进先出存储器中,进而对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行传输。相较于现有技术,由于将解析PRP列表指针数据和传输PRP指针数据的过程分离,传输时无需等待,不传输无用的列表指针数据,可以提高数据传输速度,提升数据传输效率。并将所有PRP指针数据以及目标PRP指针数据并行传输,进一步提高数据传输速度,提升数据传输效率。
图4为本公开另一实施例提供的数据传输方法流程图,如图4所示,该方法包括如下几个步骤:
S401、接收至少一条NVMe命令,所述NVMe命令包括Admin命令、NVM命令。
具体的,S401和S101的实现过程和原理一致,此处不再赘述。
S402、分别得到每条NVMe命令对应的PRP请求。
在接收到至少一条NVMe命令之后,电子设备可以从每条NVMe命令得到该NVMe命令对应的PRP请求。
S403、从所述PRP请求中提取PRP指针数据、PRP列表指针数据。
在得到每条NVMe命令对应的PRP请求之后,进一步,电子设备可以从所述PRP请求中提取PRP指针数据、PRP列表指针数据。
S404、将所述PRP指针数据写入先进先出存储器中。
具体的,S404和S103的实现过程和原理一致,此处不再赘述。
S405、基于所述PRP列表指针数据得到目标PRP指针数据。
具体的,S405和S104的实现过程和原理一致,此处不再赘述。
S406、将所述目标PRP指针数据写入所述先进先出存储器中。
具体的,S406和S105的实现过程和原理一致,此处不再赘述。
S407、判断所述先进先出存储器中是否有数据,若是,则执行S408,否则执行S409。
电子设备判断所述先进先出存储器中是否有数据。如果所述先进先出存储器中有数据,则执行S408;如果所述先进先出存储器中没有数据,则执行S409。
S408、对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行传输。
如果所述先进先出存储器中有数据,则对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行传输。具体的,电子设备如果判断出所述先进先出存储器中有数据,则通过分散聚集式直接内存访问的方式从所述先进先出存储器中搬运所述PRP指针数据以及所述目标PRP指针数据,并将搬运的所述PRP指针数据以及所述目标PRP指针数据进行传输。
如图2所示,电子设备中的SG DMA组件将所有PRP指针数据以及目标PRP指针数据并行传输,可以提高数据传输速度,提升数据传输效率,进一步,电子设备中的SG DMA组件将所有PRP指针数据以及目标PRP指针数据将数据传输到PCIe存储器中。
S409、结束。
如果所述先进先出存储器中没有数据,则结束。
本公开实施例通过接收至少一条NVMe命令,所述NVMe命令包括Admin命令、NVM命令,分别得到每条NVMe命令对应的PRP请求,从所述PRP请求中提取PRP指针数据、PRP列表指针数据,将所述PRP指针数据写入先进先出存储器中。进一步,基于所述PRP列表指针数据得到目标PRP指针数据,将所述目标PRP指针数据写入所述先进先出存储器中。判断所述先进先出存储器中是否有数据。如果所述先进先出存储器中有数据,则对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行传输。相较于现有技术,本公开实施例将解析PRP列表指针数据和传输PRP指针数据的过程分离,传输时无需等待,不传输无用的列表指针数据,可以提高数据传输速度,提升数据传输效率。在传输之前增加了判断,如果有数据,则对数据进行传输,提高了数据传输的灵活性。并将所有PRP指针数据以及目标PRP指针数据并行传输,进一步提高数据传输速度,提升数据传输效率。
图5为本公开实施例提供的数据传输装置的结构示意图。该数据传输装置可以是如上实施例的电子设备,或者数据传输装置可以该电子设备中的部件或组件。本公开实施例提供的数据传输装置可以执行数据传输方法实施例提供的处理流程,如图5所示,数据传输装置50包括:接收模块51、提取模块52、第一写入模块53、得到模块54、第二写入模块55、传输模块56;其中,接收模块51用于接收至少一条NVMe命令,所述NVMe命令包括Admin命令、NVM命令;提取模块52用于对每条NVMe命令进行提取,得到PRP指针数据、PRP列表指针数据;第一写入模块53用于将所述PRP指针数据写入先进先出存储器中;得到模块54用于基于所述PRP列表指针数据得到目标PRP指针数据;第二写入模块55用于将所述目标PRP指针数据写入所述先进先出存储器中;传输模块56用于对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行传输。
可选的,所述提取模块52对每条NVMe命令进行提取,得到PRP指针数据、PRP列表指针数据时,具体用于:分别得到每条NVMe命令对应的PRP请求;从所述PRP请求中提取PRP指针数据、PRP列表指针数据。
可选的,所述装置还包括:配置模块57;配置模块57用于为每条NVMe命令分别配置一个通路;
相应地,所述提取模块52分别得到每条NVMe命令对应的PRP请求时,具体用于:获取每个通路上的NVMe命令对应的PRP请求。
可选的,所述提取模块52获取每个通路上的NVMe命令对应的PRP请求时,具体用于:对每个通路的NVMe命令进行解析,得到所述NVMe命令中的PRP请求。
可选的,所述得到模块54基于所述PRP列表指针数据得到目标PRP指针数据时,具体用于:计算所述PRP列表指针的物理地址;从所述物理地址获取到所述目标PRP指针数据。
可选的,所述传输模块56对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行传输时,具体用于:通过分散聚集式直接内存访问的方式从所述先进先出存储器中搬运所述PRP指针数据以及所述目标PRP指针数据;将搬运的所述PRP指针数据以及所述目标PRP指针数据进行传输。
可选的,所述装置还包括:判断模块58;判断模块58用于判断所述先进先出存储器中是否有数据。
图5所示实施例的数据传输装置可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图6为本公开实施例提供的电子设备的结构示意图。该电子设备可以是如上实施例所述的电子设备。本公开实施例提供的电子设备可以执行数据传输方法实施例提供的处理流程,如图6所示,电子设备60包括:存储器61、处理器62、计算机程序和通讯接口63;其中,计算机程序存储在存储器61中,并被配置为由处理器62执行如上所述的数据传输方法。
另外,本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的数据传输方法。
此外,本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或指令,该计算机程序或指令被处理器执行时实现如上所述的数据传输方法。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:
接收至少一条NVMe命令,所述NVMe命令包括Admin命令、NVM命令;
对每条NVMe命令进行提取,得到PRP指针数据、PRP列表指针数据;
将所述PRP指针数据写入先进先出存储器中;
基于所述PRP列表指针数据得到目标PRP指针数据;
将所述目标PRP指针数据写入所述先进先出存储器中;
对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行传输。
另外,该电子设备还可以执行如上所述的数据传输方法中的其他步骤。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据传输方法,其特征在于,所述方法包括:
接收至少一条非易失性内存主机控制器接口规范NVMe命令,所述NVMe命令包括管理Admin命令、非易失性存储器NVM命令;
对每条NVMe命令进行提取,得到物理区页面PRP指针数据、物理区页面PRP列表指针数据;
将所述PRP指针数据写入先进先出存储器中;
基于所述PRP列表指针数据得到目标PRP指针数据;
将所述目标PRP指针数据写入所述先进先出存储器中;
对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行传输。
2.根据权利要求1所述的方法,其特征在于,所述对每条NVMe命令进行提取,得到PRP指针数据、PRP列表指针数据,包括:
分别得到每条NVMe命令对应的PRP请求;
从所述PRP请求中提取PRP指针数据、PRP列表指针数据。
3.根据权利要求2所述的方法,其特征在于,在所述分别得到每条NVMe命令对应的PRP请求之前,所述方法还包括:
为每条NVMe命令分别配置一个通路;
相应地,所述分别得到每条NVMe命令对应的PRP请求,包括:
获取每个通路上的NVMe命令对应的PRP请求。
4.根据权利要求3所述的方法,其特征在于,所述获取每个通路上的NVMe命令对应的PRP请求,包括:
对每个通路的NVMe命令进行解析,得到所述NVMe命令中的PRP请求。
5.根据权利要求1所述的方法,其特征在于,所述基于所述PRP列表指针数据得到目标PRP指针数据,包括:
计算所述PRP列表指针的物理地址;
从所述物理地址获取到所述目标PRP指针数据。
6.根据权利要求1所述的方法,其特征在于,所述对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行传输,包括:
通过分散聚集式直接内存访问的方式从所述先进先出存储器中搬运所述PRP指针数据以及所述目标PRP指针数据;
将搬运的所述PRP指针数据以及所述目标PRP指针数据进行传输。
7.根据权利要求1所述的方法,其特征在于,所述对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行传输之前,所述方法还包括:
判断所述先进先出存储器中是否有数据。
8.一种数据传输装置,其特征在于,所述装置包括:
接收模块,用于接收至少一条非易失性内存主机控制器接口规范NVMe命令,所述NVMe命令包括管理Admin命令、非易失性存储器NVM命令;
提取模块,用于对每条NVMe命令进行提取,得到物理区页面PRP指针数据、物理区页面PRP列表指针数据;
第一写入模块,用于将所述PRP指针数据写入先进先出存储器中;
得到模块,用于基于所述PRP列表指针数据得到目标PRP指针数据;
第二写入模块,用于将所述目标PRP指针数据写入所述先进先出存储器中;
传输模块,用于对所述先进先出存储器中的所述PRP指针数据以及所述目标PRP指针数据进行传输。
9.一种电子设备,其特征在于,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求1-7中任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211196510.1A CN115622954B (zh) | 2022-09-29 | 2022-09-29 | 数据传输方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211196510.1A CN115622954B (zh) | 2022-09-29 | 2022-09-29 | 数据传输方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115622954A CN115622954A (zh) | 2023-01-17 |
CN115622954B true CN115622954B (zh) | 2024-03-01 |
Family
ID=84860651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211196510.1A Active CN115622954B (zh) | 2022-09-29 | 2022-09-29 | 数据传输方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115622954B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117234998B (zh) * | 2023-09-12 | 2024-06-07 | 中科驭数(北京)科技有限公司 | 一种多主机数据访问方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108572933A (zh) * | 2017-03-07 | 2018-09-25 | 西部数据技术公司 | 用于直接存储器存取的数据缓冲器指针找取 |
CN110825669A (zh) * | 2018-08-08 | 2020-02-21 | 马维尔国际贸易有限公司 | 修改NVMe PRP列表指针和数据指针以利于路由PCIe存储器请求 |
CN113064558A (zh) * | 2021-06-04 | 2021-07-02 | 广东汇天航空航天科技有限公司 | 一种数据存储方法和装置 |
CN113296691A (zh) * | 2020-07-27 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 数据处理系统、方法、装置以及电子设备 |
CN113485643A (zh) * | 2021-07-01 | 2021-10-08 | 成都忆芯科技有限公司 | 用于数据存取的方法及数据写入的控制器 |
CN114780458A (zh) * | 2018-06-30 | 2022-07-22 | 华为技术有限公司 | 数据处理的方法和存储系统 |
-
2022
- 2022-09-29 CN CN202211196510.1A patent/CN115622954B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108572933A (zh) * | 2017-03-07 | 2018-09-25 | 西部数据技术公司 | 用于直接存储器存取的数据缓冲器指针找取 |
CN114780458A (zh) * | 2018-06-30 | 2022-07-22 | 华为技术有限公司 | 数据处理的方法和存储系统 |
CN110825669A (zh) * | 2018-08-08 | 2020-02-21 | 马维尔国际贸易有限公司 | 修改NVMe PRP列表指针和数据指针以利于路由PCIe存储器请求 |
CN113296691A (zh) * | 2020-07-27 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 数据处理系统、方法、装置以及电子设备 |
CN113064558A (zh) * | 2021-06-04 | 2021-07-02 | 广东汇天航空航天科技有限公司 | 一种数据存储方法和装置 |
CN113485643A (zh) * | 2021-07-01 | 2021-10-08 | 成都忆芯科技有限公司 | 用于数据存取的方法及数据写入的控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN115622954A (zh) | 2023-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140215178A1 (en) | Resource management in mapreduce architecture and architectural system | |
US8706927B2 (en) | Method for the recovery of a clock and system for the transmission of data between data memories by remote direct memory access and network station set up to operate in the method as a transmitting or, respectively, receiving station | |
CN111367687A (zh) | 进程间数据通信方法和装置 | |
US9276879B2 (en) | Memory transfer optimization of network adapter data placement when performing header-data split operations | |
CN115622954B (zh) | 数据传输方法、装置、电子设备及存储介质 | |
CN115733832A (zh) | 计算设备、报文接收方法、可编程网卡及存储介质 | |
CN111580974B (zh) | Gpu实例分配方法、装置、电子设备和计算机可读介质 | |
US20110153882A1 (en) | Apparatus and method for transforming content | |
CN104991883A (zh) | 片间互联的发送、接收装置及发送、接收方法及系统 | |
CN116235156A (zh) | 组合大写入的写入事务 | |
CN111756649A (zh) | 一种数据传输方法、装置、设备及计算机可读存储介质 | |
CN112783827A (zh) | 多传感器数据存储方法和装置 | |
US8804764B2 (en) | Data path for data extraction from streaming data | |
US8954974B1 (en) | Adaptive lock list searching of waiting threads | |
CN111898061B (zh) | 搜索网络的方法、装置、电子设备和计算机可读介质 | |
CN110795405B (zh) | 一种分片数据还原方法、终端设备及存储介质 | |
US10762017B2 (en) | USB transmission system, USB device, and host capable of USB transmission | |
CN118012798B (zh) | 芯片间互联控制方法、装置和存储介质 | |
US11240178B2 (en) | Data transmission method and data transmission system | |
US9679033B2 (en) | Run time insertion and removal of buffer operators | |
CN117234998B (zh) | 一种多主机数据访问方法及系统 | |
WO2021135763A1 (zh) | 数据处理方法和装置、存储介质及电子装置 | |
CN111092929B (zh) | 文件下发方法、装置及电子设备 | |
CN117112596A (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
US20150180777A1 (en) | Data processing apparatus and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |