CN111177054B - 数据传输方法、装置、设备及存储介质 - Google Patents

数据传输方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111177054B
CN111177054B CN201911399205.0A CN201911399205A CN111177054B CN 111177054 B CN111177054 B CN 111177054B CN 201911399205 A CN201911399205 A CN 201911399205A CN 111177054 B CN111177054 B CN 111177054B
Authority
CN
China
Prior art keywords
memory access
direct memory
data
address
storage space
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
Application number
CN201911399205.0A
Other languages
English (en)
Other versions
CN111177054A (zh
Inventor
杨子
刘永钦
梅超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Comba Network Systems Co Ltd
Original Assignee
Comba Network Systems Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Comba Network Systems Co Ltd filed Critical Comba Network Systems Co Ltd
Priority to CN201911399205.0A priority Critical patent/CN111177054B/zh
Publication of CN111177054A publication Critical patent/CN111177054A/zh
Priority to PCT/CN2020/139522 priority patent/WO2021136099A1/zh
Application granted granted Critical
Publication of CN111177054B publication Critical patent/CN111177054B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

本申请公开了一种数据传输方法、装置、设备及存储介质,属于计算机技术领域。所述方法包括:在向上位机传递第一数据时,生成第一直接内存访问指令,其中,第一直接内存访问指令用于指示源地址和第一目标地址,第一目标地址为主内存中的第一存储空间的地址,第一存储空间为预先设置的用于存储上位机和下位机通过直接内存访问操作相互传递的数据的存储空间;根据第一直接内存访问指令执行第一直接内存访问操作;其中,第一直接内存访问操作包括从源地址对应的存储空间中获取第一数据,并根据第一目标地址将第一数据传递至第一存储空间。本申请实施例提供的技术方案能够在一定程度上提高上位机和下位机之间数据传输的效率,降低数据传输时延。

Description

数据传输方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据传输方法、装置、设备及存储介质。
背景技术
PCIe是一种高速串行计算机扩展总线标准。典型的PCIe总线架构包括上位机、下位机(英文:endpoint)、主内存(英文:main memory)、根组件(英文:root complex)以及交换器(英文:switch)等。
其中,上位机和下位机之间可以进行数据传输,当前,如何提高上位机和下位机之间数据传输的效率,降低其数据传输时延已经成为了一个亟待解决的问题。
发明内容
基于此,有必要针对提高上位机和下位机之间数据传输的效率,降低数据传输时延的这一亟待解决的问题,提供一种数据传输方法、装置、设备及存储介质。
第一方面,提供了一种数据传输方法,用于PCIe总线架构的下位机中,该PCIe总线架构包括上位机、主内存和该下位机,该数据传输方法包括:
在向该上位机传递第一数据时,生成第一直接内存访问指令,其中,该第一直接内存访问指令用于指示源地址和第一目标地址,该源地址为该第一数据在该下位机中的存储地址,该第一目标地址为该主内存中的第一存储空间的地址,该第一存储空间为预先设置的用于存储该上位机和该下位机通过直接内存访问操作相互传递的数据的存储空间;根据该第一直接内存访问指令执行第一直接内存访问操作;其中,该第一直接内存访问操作包括从该源地址对应的存储空间中获取该第一数据,并根据该第一目标地址将该第一数据传递至该第一存储空间。
在其中一个实施例中,该数据传输方法还包括:
接收该上位机发送的数据下行指示信息;根据该数据下行指示信息的指示生成第二直接内存访问指令,该第二直接内存访问指令用于指示该第一目标地址;根据该第二直接内存访问指令执行第二直接内存访问操作;其中,该第二直接内存访问操作包括从该第一存储空间中获取第二数据,并将该第二数据存储至该下位机中。
在其中一个实施例中,该数据传输方法还包括:
在该第一直接内存访问操作或者该第二直接内存访问操作执行完毕后,生成执行完毕信息,并根据第二目标地址将该执行完毕信息传递至该主内存中的第二存储空间;其中,该第二目标地址为该第二存储空间的地址,该第二存储空间为预先设置的用于存储该下位机传递的执行完毕信息的存储空间。
在其中一个实施例中,生成第一直接内存访问指令之前,该数据传输方法还包括:
接收该上位机传递的该第一目标地址和该第二目标地址;其中,该第一目标地址和该第二目标地址是该上位机在对该第一存储空间和该第二存储空间进行设置后发送的,该第一存储空间和该第二存储空间是该上位机在对该下位机的驱动加载完毕后设置的。
在其中一个实施例中,该下位机包括主控制器、控制状态适配器以及PCIe HIP元件,接收该上位机传递的该第一目标地址和该第二目标地址,包括:
通过该PCIe HIP元件接收该上位机传递的第一bar地址写指令,并将该第一bar地址写指令传递至该控制状态适配器,该第一bar地址写指令携带该第一目标地址和该第二目标地址;通过该控制状态适配器将该第一bar地址写指令转换为第一主控制器控制信息,并将该第一主控制器控制信息传递至该主控制器,该第一主控制器控制信息携带该第一目标地址和该第二目标地址。
在其中一个实施例中,生成第一直接内存访问指令,包括:通过该主控制器生成该第一直接内存访问指令。
在其中一个实施例中,该下位机还包括用户数据接口适配器、上行数据缓存和缓存监控元件;通过该主控制器生成该第一直接内存访问指令之前,该数据传输方法还包括:
通过该用户数据接口适配器接收应用层产生的该第一数据,并将该第一数据存储至该上行数据缓存;通过该缓存监控元件对该上行数据缓存进行监控,通过监控得到该第一数据在该上行数据缓存中的存储地址,将该第一数据在该上行数据缓存中的存储地址作为该源地址,并将该源地址传递至该主控制器。
在其中一个实施例中,根据该第一直接内存访问指令执行第一直接内存访问操作,包括:
通过该主控制器将该第一直接内存访问指令传递至该控制状态适配器;通过该控制状态适配器将该第一直接内存访问指令转换为第一PCIe HIP控制指令;通过该控制状态适配器将该第一PCIe HIP控制指令传递至该PCIe HIP元件;通过该PCIe HIP元件根据该第一PCIe HIP控制指令执行该第一直接内存访问操作。
在其中一个实施例中,该下位机包括主控制器、控制状态适配器以及PCIe HIP元件,接收该上位机发送的数据下行指示信息,包括:
通过该PCIe HIP元件接收该上位机传递的第二bar地址写指令,并将该第二bar地址写指令传递至该控制状态适配器;通过该控制状态适配器将该第二bar地址写指令转换为第二主控制器控制信息,并将该第二主控制器控制信息传递至该主控制器。
在其中一个实施例中,根据该数据下行指示信息的指示生成第二直接内存访问指令,包括:通过该主控制器生成该第二直接内存访问指令。
在其中一个实施例中,根据该第二直接内存访问指令执行第二直接内存访问操作,包括:
通过该主控制器将该第二直接内存访问指令传递至该控制状态适配器;通过该控制状态适配器将该第二直接内存访问指令转换为第二PCIe HIP控制指令;通过该控制状态适配器将该第二PCIe HIP控制指令传递至该PCIe HIP元件;通过该PCIe HIP元件根据该第二PCIe HIP控制指令执行该第二直接内存访问操作。
在其中一个实施例中,该下位机包括主控制器、控制状态适配器以及PCIe HIP元件,生成执行完毕信息,并根据第二目标地址将该执行完毕信息传递至该主内存中的第二存储空间,包括:
通过该PCIe HIP元件生成执行完毕指令,并将该执行完毕指令传递至该控制状态适配器;通过该控制状态适配器将该执行完毕指令转换为第三主控制器控制信息,并将该第三主控制器控制信息传递至该主控制器;通过该主控制器根据该第三主控制器控制信息生成中间执行完毕信息,并将该中间执行完毕信息传递至该控制状态适配器;通过该控制状态适配器将该中间执行完毕信息转换为该执行完毕信息,并将该执行完毕信息传递至该PCIe HIP元件;通过该PCIe HIP元件根据该第二目标地址将该执行完毕信息传递至该第二存储空间。
第二方面,提供了一种数据传输装置,其特征在于,用于PCIe总线架构的下位机中,该PCIe总线架构包括上位机、主内存和该下位机,该数据传输装置包括:
第一生成模块,用于在向该上位机传递第一数据时,生成第一直接内存访问指令,其中,该第一直接内存访问指令用于指示源地址和第一目标地址,该源地址为该第一数据在该下位机中的存储地址,该第一目标地址为该主内存中的第一存储空间的地址,该第一存储空间为预先设置的用于存储该上位机和该下位机通过直接内存访问操作相互传递的数据的存储空间;
第一执行模块,用于根据该第一直接内存访问指令执行第一直接内存访问操作;其中,该第一直接内存访问操作包括从该源地址对应的存储空间中获取该第一数据,并根据该第一目标地址将该第一数据传递至该第一存储空间。
在其中一个实施例中,该数据传输装置还包括:
第一接收模块,用于接收该上位机发送的数据下行指示信息;
第二生成模块,用于根据该数据下行指示信息的指示生成第二直接内存访问指令,该第二直接内存访问指令用于指示该第一目标地址;
第二执行模块,用于根据该第二直接内存访问指令执行第二直接内存访问操作;其中,该第二直接内存访问操作包括从该第一存储空间中获取第二数据,并将该第二数据存储至该下位机中。
在其中一个实施例中,该数据传输装置还包括:
发送模块,用于在该第一直接内存访问操作或者该第二直接内存访问操作执行完毕后,生成执行完毕信息,并根据第二目标地址将该执行完毕信息传递至该主内存中的第二存储空间;其中,该第二目标地址为该第二存储空间的地址,该第二存储空间为预先设置的用于存储该下位机传递的执行完毕信息的存储空间。
在其中一个实施例中,该数据传输装置还包括:
第二接收模块,用于接收该上位机传递的该第一目标地址和该第二目标地址;其中,该第一目标地址和该第二目标地址是该上位机在对该第一存储空间和该第二存储空间进行设置后发送的,该第一存储空间和该第二存储空间是该上位机在对该下位机的驱动加载完毕后设置的。
在其中一个实施例中,该下位机包括主控制器、控制状态适配器以及PCIe HIP元件,该第二接收模块,具体用于:
通过该PCIe HIP元件接收该上位机传递的第一bar地址写指令,并将该第一bar地址写指令传递至该控制状态适配器,该第一bar地址写指令携带该第一目标地址和该第二目标地址;通过该控制状态适配器将该第一bar地址写指令转换为第一主控制器控制信息,并将该第一主控制器控制信息传递至该主控制器,该第一主控制器控制信息携带该第一目标地址和该第二目标地址。
在其中一个实施例中,该第一生成模块,具体用于:通过该主控制器生成该第一直接内存访问指令。
在其中一个实施例中,该下位机还包括用户数据接口适配器、上行数据缓存和缓存监控元件;该数据传输装置还包括:
第三接收模块,用于通过该用户数据接口适配器接收应用层产生的该第一数据,并将该第一数据存储至该上行数据缓存;
监控模块,用于通过该缓存监控元件对该上行数据缓存进行监控,通过监控得到该第一数据在该上行数据缓存中的存储地址,将该第一数据在该上行数据缓存中的存储地址作为该源地址,并将该源地址传递至该主控制器。
在其中一个实施例中,该第一执行模块,具体用于:通过该主控制器将该第一直接内存访问指令传递至该控制状态适配器;通过该控制状态适配器将该第一直接内存访问指令转换为第一PCIe HIP控制指令;通过该控制状态适配器将该第一PCIe HIP控制指令传递至该PCIe HIP元件;通过该PCIe HIP元件根据该第一PCIe HIP控制指令执行该第一直接内存访问操作。
在其中一个实施例中,该下位机包括主控制器、控制状态适配器以及PCIe HIP元件,该第一接收模块,具体用于:通过该PCIe HIP元件接收该上位机传递的第二bar地址写指令,并将该第二bar地址写指令传递至该控制状态适配器;通过该控制状态适配器将该第二bar地址写指令转换为第二主控制器控制信息,并将该第二主控制器控制信息传递至该主控制器。
在其中一个实施例中,该第二生成模块,具体用于通过该主控制器生成该第二直接内存访问指令。
在其中一个实施例中,该第二执行模块,具体用于:通过该主控制器将该第二直接内存访问指令传递至该控制状态适配器;通过该控制状态适配器将该第二直接内存访问指令转换为第二PCIe HIP控制指令;通过该控制状态适配器将该第二PCIe HIP控制指令传递至该PCIe HIP元件;通过该PCIe HIP元件根据该第二PCIe HIP控制指令执行该第二直接内存访问操作。
在其中一个实施例中,该下位机包括主控制器、控制状态适配器以及PCIe HIP元件,该发送模块,具体用于:通过该PCIe HIP元件生成执行完毕指令,并将该执行完毕指令传递至该控制状态适配器;通过该控制状态适配器将该执行完毕指令转换为第三主控制器控制信息,并将该第三主控制器控制信息传递至该主控制器;通过该主控制器根据该第三主控制器控制信息生成中间执行完毕信息,并将该中间执行完毕信息传递至该控制状态适配器;通过该控制状态适配器将该中间执行完毕信息转换为该执行完毕信息,并将该执行完毕信息传递至该PCIe HIP元件;通过该PCIe HIP元件根据该第二目标地址将该执行完毕信息传递至该第二存储空间。
第三方面,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该计算机程序被该处理器执行时实现如上述第一方面任一所述的数据传输方法。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面任一所述的数据传输方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
PCIe总线架构的下位机在向上位机传递第一数据时,可以生成第一直接内存访问指令,并根据该第一直接内存访问指令执行第一直接内存访问操作,以通过该第一直接内存访问操作将第一数据从下位机传递至主内存的第一存储空间中,其中,该第一存储空间为预先设置的用于存储上位机和下位机通过直接内存访问操作相互传递的数据的存储空间,由于预先设置了主内存中用于存储上位机和下位机通过直接内存访问操作相互传递的数据的第一存储空间,因此,在下位机向上位机传递第一数据的过程中,也即是,在进行上行数据传输的过程中,就不需要上位机通过系统调用的方式获取主内存中能够存储下位机所传输的数据的存储空间的地址了,由于预先设置了第一存储空间,因此,下位机可以预先获取到该第一存储空间的地址,故而,在进行上行数据传输的过程中,也不需要上位机向下位机发送该地址了,这样,就可以简化上行数据传输过程中上位机和下位机之间的交互流程,从而可以减小上行数据传输的时延,提高上行数据传输的效率。
附图说明
图1为一种典型的PCIe总线架构的示意图。
图2为本申请实施例提供的一种下位机的结构示意图;
图3为本申请实施例提供的一种数据传输方法的流程图;
图4为本申请实施例提供的一种数据传输方法的流程图;
图5为本申请实施例提供的一种数据传输方法的流程图;
图6为本申请实施例提供的一种数据传输方法的流程图;
图7为本申请实施例提供的一种数据传输装置的框图;
图8为本申请实施例提供的另一种数据传输装置的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
PCIe(英文:peripheral component interconnect express)是一种高速串行计算机扩展总线标准。
请参考图1,其示出了一种典型的PCIe总线架构的示意图,如图1所示,PCIe总线架构可以包括上位机00、下位机01、主内存03、根组件04以及交换器05。其中,上位机00、主内存03以及交换器05均与根组件04连接,下位机01与交换器05连接。上位机00可以通过多级缓存机制将数据存放于主内存03之中,上位机00可以通过根组件04访问主内存03;同时,下位机01可以通过交换器05以及根组件04访问主内存03。
实际应用中,PCIe总线架构中的上位机00可以为CPU(英文:central processingunit;中文:中央处理器),下位机01也可以被称为终端(英文:PCIe endpoint),其可以为FPGA(英文:Field Programmable Gate Array)芯片。
通常情况下,PCIe架构中的上位机和下位机之间可以进行数据传输,其中,PCIe架构中上位机和下位机之间的数据传输可以包括上行数据传输和下行数据传输。其中,上行数据传输指的是下位机将数据传输至上位机中,在上行数据传输中,数据由下位机的存储空间转移至主内存中,下行数据传输指的是上位机将数据传输至下位机中,在下行数据传输中,数据由主内存转移至下位机的存储空间中。
在上行数据传输的过程中,上位机需要通过系统调用的方式获取主内存中能够存储下位机所传输的数据的存储空间的地址(以下简称为第一地址),而后,上位机可以触发下位机执行上行数据的传输过程,并在触发的过程中向下位机发送该第一地址,下位机接收到该第一地址之后,可以将下位机中存储的数据转移至该第一地址对应的主内存的存储空间中。
在下行数据传输的过程中,上位机需要通过系统调用的方式获取主内存中存储需要进行传输的数据的存储空间的地址(以下简称为第二地址),而后,上位机可以将该第二地址发送至下位机中,下位机接收到该第二地址之后,可以从该第二地址对应的主内存的存储空间中获取该需要进行传输的数据,并将该需要进行传输的数据存储至下位机的存储空间中。
根据以上说明可知,在上行数据和下行数据的传输过程中,上位机都需要向下位机发送地址信息(上文所述的第一地址和第二地址),这导致在上行数据和下行数据的传输过程中,上位机和下位机之间的交互流程较为繁琐,因而,导致数据传输的时延较长,继而影响数据的传输效率。
有鉴于此,本申请实施例提供了一种数据传输方法,该数据传输方法可以简化数据传输过程中上位机和下位机之间的交互流程,减小数据传输时延,提高数据传输效率。
下面,本申请将以下位机为FPGA为例,对下位机的结构进行简要说明,请参考图2,该下位机可以包括主控制器(英文:main controller)、控制状态适配器(英文:controland status adaptor)、PCIe HIP元件、用户数据接口适配器(英文:user logic dataadaptor)、缓存监控元件(英文:buffer monitor)、上行数据缓存(英文:uplink buffer)、下行数据缓存(英文:downlink buffer)、PCIe HIP数据接口适配器(英文:PCIe HIP dataadaptor)和驱动。
其中,主控制器用于提供处理及控制功能,例如,主控制器可以控制下位机与上位机进行数据交互等。
控制状态适配器用于对主控制器和PCIe HIP元件之间的数据交互进行适配。在许多情况下,PCIe HIP元件通常并不能直接对主控制器产生的数据进行解析,同时,主控制器通常也不能直接对PCIe HIP元件产生的数据进行解析,因此,为了实现主控制器和PCIeHIP元件之间的数据交互,本申请实施例可以设置控制状态适配器,该控制状态适配器可以对PCIe HIP元件产生的数据进行适配,以通过适配使主控制器能够解析PCIe HIP元件产生的数据,此外,该控制状态适配器还可以对主控制器产生的数据进行适配,以通过适配使PCIe HIP元件能够解析主控制器产生的数据。
需要指出的是,主控制器和控制状态适配器之间的适配不随着下位机平台的变化而变化,因此,当本申请实施例提供的技术方案在不同的下位机平台(例如,Xilinx或者Intel)上部署时,主控制器和控制状态适配器之间的适配不需要进行修改。
PCIe HIP元件可以在主控制器的控制下执行下位机与上位机之间的数据交互。
用户数据接口适配器是下位机的缓存接口,其可以接收应用层产生的数据,并将其存储于上行数据缓存中,同时,用户数据接口适配器还可以将下行数据缓存中存储的数据传递至应用层。
上行数据缓存用于存储应用层产生的数据,在数据传输的过程中,下位机可以将上行数据缓存中存储的数据传输至上位机(也即是主内存中)中。下行数据缓存用于存储上位机发送的数据。
缓存监控元件可以对上行数据缓存和下行数据缓存的状态进行监控。
PCIe HIP数据接口适配器用于对PCIe HIP元件、上行数据缓存以及下行数据缓存之间的数据交互进行适配,以提供PCIe HIP元件、上行数据缓存以及下行数据缓存之间的数据传输通道。
请参考图3,其示出了本申请实施例提供的一种数据传输方法的流程图,其中,该数据传输方法可以应用于PCIe总线架构的下位机中,如图3所示,该数据传输方法可以包括如下步骤:
步骤101、在向上位机传递第一数据时,下位机生成第一直接内存访问指令。
在上行数据传输的过程中,也即是,在向上位机传递第一数据的过程中,下位机可以生成第一直接内存访问指令。其中,该第一直接内存访问指令可以指示源地址和第一目标地址,所谓源地址指的是第一数据在下位机中的存储地址,也即是,该源地址指的是下位机的上行数据缓存中存储该第一数据的地址,所谓第一目标地址为主内存中的第一存储空间的地址,其中,该第一存储空间为预先设置的用于存储上位机和下位机通过直接内存访问操作(英文:direct memory access;简称:DMA)相互传递的数据的存储空间,直接内存访问操作指的是不通过CPU直接将数据从一个存储空间传递到另外一个存储空间的技术。
需要指出的是,这里的源地址以及第一目标地址均为地址段,所谓地址段包括存储空间的起始地址以及存储空间的偏移大小。
在本申请的可选的实施例中,下位机中的缓存监控元件可以对下位机的上行数据缓存进行监控,当缓存监控元件监控到上行数据缓存中存储入数据时,该缓存监控元件可以向主控制器发送上行数据缓存状态信息,该上行数据缓存状态信息用于指示上行数据缓存中存入数据,主控制器接收到该上行数据缓存状态信息之后,即可生成上述第一直接内存访问指令。
步骤102、下位机根据第一直接内存访问指令执行第一直接内存访问操作。
其中,第一直接内存访问操作包括从源地址对应的存储空间中获取第一数据,并根据第一目标地址将第一数据传递至主内存的第一存储空间。
如上所述,在本申请的可选的实施例中,主控制器可以生成上述第一直接内存访问指令,在生成该第一直接内存访问指令之后,主控制器可以将该第一直接内存访问指令传递至控制状态适配器,控制状态适配器可以将该第一直接内存访问指令转换为第一PCIeHIP控制指令,该第一PCIe HIP控制指令为PCIe HIP元件能够直接解析的指令,而后,控制状态适配器可以将该第一PCIe HIP控制指令传递至PCIe HIP元件,该PCIe HIP元件可以根据该第一PCIe HIP控制指令执行上文所述的第一直接内存访问操作。
综上所述,本申请实施例提供的数据传输方法,PCIe总线架构的下位机在向上位机传递第一数据时,可以生成第一直接内存访问指令,并根据该第一直接内存访问指令执行第一直接内存访问操作,以通过该第一直接内存访问操作将第一数据从下位机传递至主内存的第一存储空间中,其中,该第一存储空间为预先设置的用于存储上位机和下位机通过直接内存访问操作相互传递的数据的存储空间,由于预先设置了主内存中用于存储上位机和下位机通过直接内存访问操作相互传递的数据的第一存储空间,因此,在下位机向上位机传递第一数据的过程中,也即是,在进行上行数据传输的过程中,就不需要上位机通过系统调用的方式获取主内存中能够存储下位机所传输的数据的存储空间的地址了,由于预先设置了第一存储空间,因此,下位机可以预先获取到该第一存储空间的地址,故而,在进行上行数据传输的过程中,也不需要上位机向下位机发送该地址了,这样,就可以简化上行数据传输过程中上位机和下位机之间的交互流程,从而可以减小上行数据传输的时延,提高上行数据传输的效率。
此外,由于本申请实施例中,在上行数据的传输过程中,上位机不需要向下位机发送地址,因此,本申请实施例中上行数据的传输可以不由上位机进行触发,而可以由下位机自主进行启动,这样可以提高上行数据传输的灵活性,进一步减小上行数据传输的时延。
请参考图4,在上文所述实施例的基础上,本申请实施例提供的数据传输方法还可以包括以下步骤:
步骤201、下位机通过用户数据接口适配器接收应用层产生的该第一数据,并将该第一数据存储至上行数据缓存中。
步骤202、下位机通过缓存监控元件对上行数据缓存进行监控,通过监控得到第一数据在该上行数据缓存中的存储地址,将第一数据在上行数据缓存中的存储地址作为源地址,并将该源地址传递至主控制器。
通过步骤201和步骤202的技术过程,主控制器可以获取到该源地址,继而,主控制器就可以根据该源地址生成上述第一直接内存访问指令。
请参考图5,在上文所述实施例的基础上,本申请实施例提供的数据传输方法还可以包括以下步骤:
步骤301、下位机接收上位机发送的数据下行指示信息。
如上文所述,上位机和下位机之间的数据传输可以包括上行数据传输和下行数据传输,在步骤301至步骤303中,本申请实施例将对下行数据传输的过程进行说明。
在下行数据传输的过程中,上位机可以将第二数据(待下行传输的数据)存储至主内存的第一存储空间中,而后,上位机可以生成数据下行指示信息,并将该数据下行指示信息发送至下位机中。该数据下行指示信息用于触发下位机进行下行数据传输。
在本申请的一个可选的实施例中,该数据下行指示信息可以为第二bar地址写指令,在下行数据传输的过程中,下位机中的PCIe HIP元件可以接收上位机传递的该第二bar地址写指令,并将该第二bar地址写指令传递至控制状态适配器,该控制状态适配器可以将该第二bar地址写指令转换为第二主控制器控制信息,其中,该第二主控制器控制信息为主控制器能够直接解析的信息,而后,控制状态适配器可以将该第二主控制器控制信息传递至主控制器。这样,下位机就实现了对数据下行指示信息的接收。
步骤302、下位机根据数据下行指示信息的指示生成第二直接内存访问指令。
其中,该第二直接内存访问指令用于指示上文所述的第一目标地址。
在本申请的一个可选的实施例中,主控制器在接收到该第二主控制器控制信息之后,即可生成该第二直接内存访问指令。
步骤303、下位机根据第二直接内存访问指令执行第二直接内存访问操作。
其中,该第二直接内存访问操作包括从第一存储空间中获取第二数据,并将该第二数据存储至下位机中,可选的,该第二直接内存访问操作可以将第二数据存储至下位机的下行数据缓存中。
如上所述,在本申请的可选的实施例中,主控制器可以生成上述第二直接内存访问指令,在生成该第二直接内存访问指令之后,主控制器可以将该第二直接内存访问指令传递至控制状态适配器,该控制状态适配器可以将该第二直接内存访问指令转换为第二PCIe HIP控制指令,该第二PCIe HIP控制指令为PCIe HIP元件能够直接解析的指令,而后,控制状态适配器可以将该第二PCIe HIP控制指令传递至PCIe HIP元件,该PCIe HIP元件可以根据该第二PCIe HIP控制指令执行第二直接内存访问操作。
综上所述,本申请实施例提供的数据传输方法,PCIe架构的下位机可以接收上位机传输的数据下行指示信息,并根据该数据下行指示信息的指示生成第二直接内存访问指令,而后,根据该第二直接内存访问指令执行第二直接内存访问操作,以通过该第二直接内存访问操作将第二数据从主内存的第一存储空间传递至下位机中,其中,该第一存储空间为预先设置的用于存储上位机和下位机通过直接内存访问操作相互传递的数据的存储空间,由于预先设置了主内存中用于存储上位机和下位机通过直接内存访问操作相互传递的数据的第一存储空间,因此,在上位机向下位机传递第二数据的过程中,也即是,在进行下行数据传输的过程中,就不需要上位机通过系统调用的方式获取主内存中存储需要进行传输的数据(也即是第二数据)的存储空间的地址了,由于预先设置了第一存储空间,因此,下位机可以预先获取到该第一存储空间的地址,故而,在进行下行数据传输的过程中,也不需要上位机向下位机发送该地址了,这样,就可以简化下行数据传输过程中上位机和下位机之间的交互流程,从而可以减小下行数据传输的时延,提高下行数据传输的效率。
请参考图6,在上文所述实施例的基础上,本申请实施例提供的数据传输方法还可以包括以下步骤:
步骤401、在第一直接内存访问操作或者第二直接内存访问操作执行完毕后,下位机生成执行完毕信息。
可选的,在本申请的一个实施例中,由于是由PCIe HIP元件执行第一直接内存访问操作以及第二直接内存访问操作的,因此,在第一直接内存访问操作或者第二直接内存访问操作执行完毕后,该PCIe HIP元件可以生成执行完毕指令,并将该执行完毕指令传递至控制状态适配器,该控制状态适配器可以将该执行完毕指令转换为第三主控制器控制信息,其中,该第三主控制器控制信息为主控制器能够直接解析的信息,而后,控制状态适配器可以将该第三主控制器控制信息传递至主控制器,该主控制器可以根据该第三主控制器控制信息生成中间执行完毕信息,并将该中间执行完毕信息传递至该控制状态适配器,该控制状态适配器可以将该中间执行完毕信息转换为执行完毕信息,其中,该执行完毕信息为PCIe HIP元件可以直接解析的信息,接着,该控制状态适配器可以将该执行完毕信息传递至PCIe HIP元件中,这样,下位机就完成了执行完毕信息的生成过程。
步骤402、下位机根据第二目标地址将执行完毕信息传递至主内存中的第二存储空间。
其中,该第二目标地址为第二存储空间的地址,该第二存储空间为预先设置的用于存储下位机传递的执行完毕信息的存储空间,这里的第二目标地址也可以为地址段,其可以包括存储空间的起始地址以及存储空间的偏移大小。
在控制状态适配器将该执行完毕信息传递至PCIe HIP元件之后,该PCIe HIP元件可以根据该第二目标地址将该执行完毕信息传递至该第二存储空间。
上位机可以在需要时查看该第二存储空间,以通过第二存储空间中的执行完毕信息确定上行数据传输或者下行数据传输是否完成。
例如,上位机在需要进行下行数据传输时,可以查看该第二存储空间,以确定下位机是否还有未执行完成的第一直接内存访问操作或者第二直接内存访问操作,当确定下位机不存在未执行完成的第一直接内存访问操作或者第二直接内存访问操作时,上位机可以进行下行数据传输,从而避免下位机同时执行两个直接内存访问操作的情况的发生,继而可以避免系统异常。
又例如,上位机在需要使用下位机传输的数据时,可以查看该第二存储空间,以确定下位机是否已经执行完毕第一直接内存访问操作,当确定下位机已经执行完毕第一直接内存访问操作时,说明下位机已经将数据完整地传输至主内存中,此时,上位机可以正常地使用下位机传输的数据。
再例如,当上位机需要在主内存的第一存储空间中存储数据时,可以查看该第二存储空间,以确定下位机是否已经执行完毕第二直接内存访问操作,当确定下位机已经执行完毕第二直接内存访问操作时,说明第一存储空间中的数据已经完整地传递至下位机中,此时,可以释放该第一存储空间,同时,上位机可以将数据存储至该第一存储空间中。
在本申请的一个实施例中,该上位机可以为多核CPU,在这种情况下,可以采用一个CPU实时监控第二存储空间,此时,上位机就可以不仅仅在需要时查看该第二存储空间了,而是可以实时地查看该第二存储空间。
在上文所述实施例的基础上,本申请实施例提供的数据传输方法还可以包括以下步骤:
下位机接收上位机传递的该第一目标地址和该第二目标地址。
可选的,在本申请的一个实施例中,下位机中的PCIe HIP元件可以接收上位机传递的第一bar地址写指令,并将该第一bar地址写指令传递至控制状态适配器,其中,该第一bar地址写指令携带第一目标地址和第二目标地址,接着,控制状态适配器可以将第一bar地址写指令转换为第一主控制器控制信息,该第一主控制器控制信息为主控制器可以直接解析的信息,而后,控制状态适配器可以将第一主控制器控制信息传递至主控制器,该第一主控制器控制信息携带第一目标地址和第二目标地址。这样,下位机就实现了对上位机传递的该第一目标地址和该第二目标地址的接收。
其中,该第一目标地址和该第二目标地址是上位机在对第一存储空间和第二存储空间进行设置后发送的,该第一存储空间和该第二存储空间是上位机在对下位机的驱动加载完毕后设置的。
需要指的是,本申请实施例提供的数据传输方法可以应用于部署于5G基站(例如,5G室内基站)中的PCIe总线架构中,在5G基站中,上位机可以为CPU,下位机可以为FPGA,该CPU可以利用自身的通用计算能力处理L2和L3协议,FPGA可以利用自身的并行处理能力处理L1协议。
在5G基站中,上位机和下位机之间可以传输业务数据或者操作维护管理数据(简称:OAM)。
请参考图7,其示出了本申请实施例提供的一种数据传输装置700的框图,该数据传输装置700可以配置于上文所述的下位机中。如图7所示,该数据传输装置700可以包括:第一生成模块701和第一执行模块702。
该第一生成模块701,用于在向上位机传递第一数据时,生成第一直接内存访问指令,其中,该第一直接内存访问指令用于指示源地址和第一目标地址,该源地址为该第一数据在该下位机中的存储地址,该第一目标地址为该主内存中的第一存储空间的地址,该第一存储空间为预先设置的用于存储该上位机和该下位机通过直接内存访问操作相互传递的数据的存储空间。
该第一执行模块702,用于根据该第一直接内存访问指令执行第一直接内存访问操作;其中,该第一直接内存访问操作包括从该源地址对应的存储空间中获取该第一数据,并根据该第一目标地址将该第一数据传递至该第一存储空间。
在本申请的一个实施例中,该第一生成模块701,具体用于:通过主控制器生成该第一直接内存访问指令。
在本申请的一个实施例中,该第一执行模块702,具体用于:通过主控制器将该第一直接内存访问指令传递至控制状态适配器;通过该控制状态适配器将该第一直接内存访问指令转换为第一PCIe HIP控制指令;通过该控制状态适配器将该第一PCIe HIP控制指令传递至PCIe HIP元件;通过该PCIe HIP元件根据该第一PCIe HIP控制指令执行该第一直接内存访问操作。
请参考图8,本申请实施例还提供了另外一种数据传输装置800,该数据传输装置800除了包括数据传输装置700包括的各模块外,可选的,该数据传输装置800还可以包括第一接收模块703、第二生成模块704、第二执行模块705、发送模块706、第二接收模块707、第三接收模块708和监控模块709。
该第一接收模块703,用于接收该上位机发送的数据下行指示信息。
该第二生成模块704,用于根据该数据下行指示信息的指示生成第二直接内存访问指令,该第二直接内存访问指令用于指示该第一目标地址。
该第二执行模块705,用于根据该第二直接内存访问指令执行第二直接内存访问操作;其中,该第二直接内存访问操作包括从该第一存储空间中获取第二数据,并将该第二数据存储至该下位机中。
该发送模块706,用于在该第一直接内存访问操作或者该第二直接内存访问操作执行完毕后,生成执行完毕信息,并根据第二目标地址将该执行完毕信息传递至该主内存中的第二存储空间;其中,该第二目标地址为该第二存储空间的地址,该第二存储空间为预先设置的用于存储该下位机传递的执行完毕信息的存储空间。
该第二接收模块707,用于接收该上位机传递的该第一目标地址和该第二目标地址;其中,该第一目标地址和该第二目标地址是该上位机在对该第一存储空间和该第二存储空间进行设置后发送的,该第一存储空间和该第二存储空间是该上位机在对该下位机的驱动加载完毕后设置的。
其中,该第二接收模块707,具体用于:通过该PCIe HIP元件接收该上位机传递的第一bar地址写指令,并将该第一bar地址写指令传递至该控制状态适配器,该第一bar地址写指令携带该第一目标地址和该第二目标地址;通过该控制状态适配器将该第一bar地址写指令转换为第一主控制器控制信息,并将该第一主控制器控制信息传递至该主控制器,该第一主控制器控制信息携带该第一目标地址和该第二目标地址。
该第三接收模块708,用于通过该用户数据接口适配器接收应用层产生的该第一数据,并将该第一数据存储至该上行数据缓存。
该监控模块709,用于通过该缓存监控元件对该上行数据缓存进行监控,通过监控得到该第一数据在该上行数据缓存中的存储地址,将该第一数据在该上行数据缓存中的存储地址作为该源地址,并将该源地址传递至该主控制器。
其中,该第一接收模块703,具体用于:通过PCIe HIP元件接收该上位机传递的第二bar地址写指令,并将该第二bar地址写指令传递至该控制状态适配器;通过该控制状态适配器将该第二bar地址写指令转换为第二主控制器控制信息,并将该第二主控制器控制信息传递至该主控制器。
该第二生成模块704,具体用于通过该主控制器生成该第二直接内存访问指令。
该第二执行模块705,具体用于:通过该主控制器将该第二直接内存访问指令传递至该控制状态适配器;通过该控制状态适配器将该第二直接内存访问指令转换为第二PCIeHIP控制指令;通过该控制状态适配器将该第二PCIe HIP控制指令传递至该PCIe HIP元件;通过该PCIe HIP元件根据该第二PCIe HIP控制指令执行该第二直接内存访问操作。
该发送模块706,具体用于:通过该PCIe HIP元件生成执行完毕指令,并将该执行完毕指令传递至该控制状态适配器;通过该控制状态适配器将该执行完毕指令转换为第三主控制器控制信息,并将该第三主控制器控制信息传递至该主控制器;通过该主控制器根据该第三主控制器控制信息生成中间执行完毕信息,并将该中间执行完毕信息传递至该控制状态适配器;通过该控制状态适配器将该中间执行完毕信息转换为该执行完毕信息,并将该执行完毕信息传递至该PCIe HIP元件;通过该PCIe HIP元件根据该第二目标地址将该执行完毕信息传递至该第二存储空间。
本申请实施例提供的确定CPU利用率的装置,可以实现上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
关于确定数据传输装置的具体限定可以参见上文中对于确定数据传输方法的限定,在此不再赘述。上述确定数据传输装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在本申请的一个实施例中,提供了一种计算机设备,该计算机设备包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
在向上位机传递第一数据时,生成第一直接内存访问指令,其中,该第一直接内存访问指令用于指示源地址和第一目标地址,该源地址为该第一数据在该下位机中的存储地址,该第一目标地址为该主内存中的第一存储空间的地址,该第一存储空间为预先设置的用于存储该上位机和该下位机通过直接内存访问操作相互传递的数据的存储空间;根据该第一直接内存访问指令执行第一直接内存访问操作;其中,该第一直接内存访问操作包括从该源地址对应的存储空间中获取该第一数据,并根据该第一目标地址将该第一数据传递至该第一存储空间。
在本申请的一个实施例中,处理器执行计算机程序时还实现以下步骤:接收该上位机发送的数据下行指示信息;根据该数据下行指示信息的指示生成第二直接内存访问指令,该第二直接内存访问指令用于指示该第一目标地址;根据该第二直接内存访问指令执行第二直接内存访问操作;其中,该第二直接内存访问操作包括从该第一存储空间中获取第二数据,并将该第二数据存储至该下位机中。
在本申请的一个实施例中,处理器执行计算机程序时还实现以下步骤:在该第一直接内存访问操作或者该第二直接内存访问操作执行完毕后,生成执行完毕信息,并根据第二目标地址将该执行完毕信息传递至该主内存中的第二存储空间;其中,该第二目标地址为该第二存储空间的地址,该第二存储空间为预先设置的用于存储该下位机传递的执行完毕信息的存储空间。
在本申请的一个实施例中,处理器执行计算机程序时还实现以下步骤:接收该上位机传递的该第一目标地址和该第二目标地址;其中,该第一目标地址和该第二目标地址是该上位机在对该第一存储空间和该第二存储空间进行设置后发送的,该第一存储空间和该第二存储空间是该上位机在对该下位机的驱动加载完毕后设置的。
该下位机包括主控制器、控制状态适配器以及PCIe HIP元件,在本申请的一个实施例中,处理器执行计算机程序时还实现以下步骤:通过该PCIe HIP元件接收该上位机传递的第一bar地址写指令,并将该第一bar地址写指令传递至该控制状态适配器,该第一bar地址写指令携带该第一目标地址和该第二目标地址;通过该控制状态适配器将该第一bar地址写指令转换为第一主控制器控制信息,并将该第一主控制器控制信息传递至该主控制器,该第一主控制器控制信息携带该第一目标地址和该第二目标地址。
在本申请的一个实施例中,处理器执行计算机程序时还实现以下步骤:通过该主控制器生成该第一直接内存访问指令。
该下位机还包括用户数据接口适配器、上行数据缓存和缓存监控元件,在本申请的一个实施例中,处理器执行计算机程序时还实现以下步骤:通过该用户数据接口适配器接收应用层产生的该第一数据,并将该第一数据存储至该上行数据缓存;通过该缓存监控元件对该上行数据缓存进行监控,通过监控得到该第一数据在该上行数据缓存中的存储地址,将该第一数据在该上行数据缓存中的存储地址作为该源地址,并将该源地址传递至该主控制器。
在本申请的一个实施例中,处理器执行计算机程序时还实现以下步骤:通过该主控制器将该第一直接内存访问指令传递至该控制状态适配器;通过该控制状态适配器将该第一直接内存访问指令转换为第一PCIe HIP控制指令;通过该控制状态适配器将该第一PCIe HIP控制指令传递至该PCIe HIP元件;通过该PCIe HIP元件根据该第一PCIe HIP控制指令执行该第一直接内存访问操作。
该下位机包括主控制器、控制状态适配器以及PCIe HIP元件,在本申请的一个实施例中,处理器执行计算机程序时还实现以下步骤:通过该PCIe HIP元件接收该上位机传递的第二bar地址写指令,并将该第二bar地址写指令传递至该控制状态适配器;通过该控制状态适配器将该第二bar地址写指令转换为第二主控制器控制信息,并将该第二主控制器控制信息传递至该主控制器。
在本申请的一个实施例中,处理器执行计算机程序时还实现以下步骤:通过该主控制器生成该第二直接内存访问指令。
在本申请的一个实施例中,处理器执行计算机程序时还实现以下步骤:通过该主控制器将该第二直接内存访问指令传递至该控制状态适配器;通过该控制状态适配器将该第二直接内存访问指令转换为第二PCIe HIP控制指令;通过该控制状态适配器将该第二PCIe HIP控制指令传递至该PCIe HIP元件;通过该PCIe HIP元件根据该第二PCIe HIP控制指令执行该第二直接内存访问操作。
该下位机包括主控制器、控制状态适配器以及PCIe HIP元件,在本申请的一个实施例中,处理器执行计算机程序时还实现以下步骤:通过该PCIe HIP元件生成执行完毕指令,并将该执行完毕指令传递至该控制状态适配器;通过该控制状态适配器将该执行完毕指令转换为第三主控制器控制信息,并将该第三主控制器控制信息传递至该主控制器;通过该主控制器根据该第三主控制器控制信息生成中间执行完毕信息,并将该中间执行完毕信息传递至该控制状态适配器;通过该控制状态适配器将该中间执行完毕信息转换为该执行完毕信息,并将该执行完毕信息传递至该PCIe HIP元件;通过该PCIe HIP元件根据该第二目标地址将该执行完毕信息传递至该第二存储空间。
本申请实施例提供的计算机设备,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
在本申请的一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
在向上位机传递第一数据时,生成第一直接内存访问指令,其中,该第一直接内存访问指令用于指示源地址和第一目标地址,该源地址为该第一数据在该下位机中的存储地址,该第一目标地址为该主内存中的第一存储空间的地址,该第一存储空间为预先设置的用于存储该上位机和该下位机通过直接内存访问操作相互传递的数据的存储空间;根据该第一直接内存访问指令执行第一直接内存访问操作;其中,该第一直接内存访问操作包括从该源地址对应的存储空间中获取该第一数据,并根据该第一目标地址将该第一数据传递至该第一存储空间。
在本申请的一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收该上位机发送的数据下行指示信息;根据该数据下行指示信息的指示生成第二直接内存访问指令,该第二直接内存访问指令用于指示该第一目标地址;根据该第二直接内存访问指令执行第二直接内存访问操作;其中,该第二直接内存访问操作包括从该第一存储空间中获取第二数据,并将该第二数据存储至该下位机中。
在本申请的一个实施例中,计算机程序被处理器执行时还实现以下步骤:在该第一直接内存访问操作或者该第二直接内存访问操作执行完毕后,生成执行完毕信息,并根据第二目标地址将该执行完毕信息传递至该主内存中的第二存储空间;其中,该第二目标地址为该第二存储空间的地址,该第二存储空间为预先设置的用于存储该下位机传递的执行完毕信息的存储空间。
在本申请的一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收该上位机传递的该第一目标地址和该第二目标地址;其中,该第一目标地址和该第二目标地址是该上位机在对该第一存储空间和该第二存储空间进行设置后发送的,该第一存储空间和该第二存储空间是该上位机在对该下位机的驱动加载完毕后设置的。
该下位机包括主控制器、控制状态适配器以及PCIe HIP元件,在本申请的一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过该PCIe HIP元件接收该上位机传递的第一bar地址写指令,并将该第一bar地址写指令传递至该控制状态适配器,该第一bar地址写指令携带该第一目标地址和该第二目标地址;通过该控制状态适配器将该第一bar地址写指令转换为第一主控制器控制信息,并将该第一主控制器控制信息传递至该主控制器,该第一主控制器控制信息携带该第一目标地址和该第二目标地址。
在本申请的一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过该主控制器生成该第一直接内存访问指令。
该下位机还包括用户数据接口适配器、上行数据缓存和缓存监控元件,在本申请的一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过该用户数据接口适配器接收应用层产生的该第一数据,并将该第一数据存储至该上行数据缓存;通过该缓存监控元件对该上行数据缓存进行监控,通过监控得到该第一数据在该上行数据缓存中的存储地址,将该第一数据在该上行数据缓存中的存储地址作为该源地址,并将该源地址传递至该主控制器。
在本申请的一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过该主控制器将该第一直接内存访问指令传递至该控制状态适配器;通过该控制状态适配器将该第一直接内存访问指令转换为第一PCIe HIP控制指令;通过该控制状态适配器将该第一PCIe HIP控制指令传递至该PCIe HIP元件;通过该PCIe HIP元件根据该第一PCIe HIP控制指令执行该第一直接内存访问操作。
该下位机包括主控制器、控制状态适配器以及PCIe HIP元件,在本申请的一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过该PCIe HIP元件接收该上位机传递的第二bar地址写指令,并将该第二bar地址写指令传递至该控制状态适配器;通过该控制状态适配器将该第二bar地址写指令转换为第二主控制器控制信息,并将该第二主控制器控制信息传递至该主控制器。
在本申请的一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过该主控制器生成该第二直接内存访问指令。
在本申请的一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过该主控制器将该第二直接内存访问指令传递至该控制状态适配器;通过该控制状态适配器将该第二直接内存访问指令转换为第二PCIe HIP控制指令;通过该控制状态适配器将该第二PCIe HIP控制指令传递至该PCIe HIP元件;通过该PCIe HIP元件根据该第二PCIe HIP控制指令执行该第二直接内存访问操作。
该下位机包括主控制器、控制状态适配器以及PCIe HIP元件,在本申请的一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过该PCIe HIP元件生成执行完毕指令,并将该执行完毕指令传递至该控制状态适配器;通过该控制状态适配器将该执行完毕指令转换为第三主控制器控制信息,并将该第三主控制器控制信息传递至该主控制器;通过该主控制器根据该第三主控制器控制信息生成中间执行完毕信息,并将该中间执行完毕信息传递至该控制状态适配器;通过该控制状态适配器将该中间执行完毕信息转换为该执行完毕信息,并将该执行完毕信息传递至该PCIe HIP元件;通过该PCIe HIP元件根据该第二目标地址将该执行完毕信息传递至该第二存储空间。
本实施例提供的计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (15)

1.一种数据传输方法,其特征在于,用于PCIe总线架构的下位机中,所述PCIe总线架构包括上位机、主内存和所述下位机,所述数据传输方法包括:
接收所述上位机传递的第一目标地址,其中,所述第一目标地址是所述上位机在对第一存储空间进行设置后发送的,所述第一存储空间是所述上位机在对所述下位机的驱动加载完毕后设置的,所述第一目标地址为所述主内存中的第一存储空间的地址,所述第一存储空间为预先设置的用于存储所述上位机和所述下位机通过直接内存访问操作相互传递的数据的存储空间;
在向所述上位机传递第一数据时,生成第一直接内存访问指令,其中,所述第一直接内存访问指令用于指示源地址和所述第一目标地址,所述源地址为所述第一数据在所述下位机中的存储地址;
根据所述第一直接内存访问指令执行第一直接内存访问操作;
其中,所述第一直接内存访问操作包括从所述源地址对应的存储空间中获取所述第一数据,并根据所述第一目标地址将所述第一数据传递至所述第一存储空间。
2.根据权利要求1所述的数据传输方法,其特征在于,所述数据传输方法还包括:
接收所述上位机发送的数据下行指示信息;
根据所述数据下行指示信息的指示生成第二直接内存访问指令,所述第二直接内存访问指令用于指示所述第一目标地址;
根据所述第二直接内存访问指令执行第二直接内存访问操作;
其中,所述第二直接内存访问操作包括从所述第一存储空间中获取第二数据,并将所述第二数据存储至所述下位机中。
3.根据权利要求2所述的数据传输方法,其特征在于,所述数据传输方法还包括:
在所述第一直接内存访问操作或者所述第二直接内存访问操作执行完毕后,生成执行完毕信息,并根据第二目标地址将所述执行完毕信息传递至所述主内存中的第二存储空间;
其中,所述第二目标地址为所述第二存储空间的地址,所述第二存储空间为预先设置的用于存储所述下位机传递的执行完毕信息的存储空间。
4.根据权利要求3所述的数据传输方法,其特征在于,所述生成第一直接内存访问指令之前,所述数据传输方法还包括:
接收所述上位机传递的所述第二目标地址;
其中,所述第二目标地址是所述上位机在对所述第二存储空间进行设置后发送的,所述第二存储空间是所述上位机在对所述下位机的驱动加载完毕后设置的。
5.根据权利要求4所述的数据传输方法,其特征在于,所述下位机包括主控制器、控制状态适配器以及PCIe HIP元件,所述接收所述上位机传递的所述第一目标地址和所述第二目标地址,包括:
通过所述PCIe HIP元件接收所述上位机传递的第一bar地址写指令,并将所述第一bar地址写指令传递至所述控制状态适配器,所述第一bar地址写指令携带所述第一目标地址和所述第二目标地址;
通过所述控制状态适配器将所述第一bar地址写指令转换为第一主控制器控制信息,并将所述第一主控制器控制信息传递至所述主控制器,所述第一主控制器控制信息携带所述第一目标地址和所述第二目标地址。
6.根据权利要求5所述的数据传输方法,其特征在于,所述生成第一直接内存访问指令,包括:
通过所述主控制器生成所述第一直接内存访问指令。
7.根据权利要求6所述的数据传输方法,其特征在于,所述下位机还包括用户数据接口适配器、上行数据缓存和缓存监控元件;所述通过所述主控制器生成所述第一直接内存访问指令之前,所述数据传输方法还包括:
通过所述用户数据接口适配器接收应用层产生的所述第一数据,并将所述第一数据存储至所述上行数据缓存;
通过所述缓存监控元件对所述上行数据缓存进行监控,通过监控得到所述第一数据在所述上行数据缓存中的存储地址,将所述第一数据在所述上行数据缓存中的存储地址作为所述源地址,并将所述源地址传递至所述主控制器。
8.根据权利要求6所述的数据传输方法,其特征在于,所述根据所述第一直接内存访问指令执行第一直接内存访问操作,包括:
通过所述主控制器将所述第一直接内存访问指令传递至所述控制状态适配器;
通过所述控制状态适配器将所述第一直接内存访问指令转换为第一PCIe HIP控制指令;
通过所述控制状态适配器将所述第一PCIe HIP控制指令传递至所述PCIe HIP元件;
通过所述PCIe HIP元件根据所述第一PCIe HIP控制指令执行所述第一直接内存访问操作。
9.根据权利要求2所述的数据传输方法,其特征在于,所述下位机包括主控制器、控制状态适配器以及PCIe HIP元件,所述接收所述上位机发送的数据下行指示信息,包括:
通过所述PCIe HIP元件接收所述上位机传递的第二bar地址写指令,并将所述第二bar地址写指令传递至所述控制状态适配器;
通过所述控制状态适配器将所述第二bar地址写指令转换为第二主控制器控制信息,并将所述第二主控制器控制信息传递至所述主控制器。
10.根据权利要求9所述的数据传输方法,其特征在于,所述根据所述数据下行指示信息的指示生成第二直接内存访问指令,包括:
通过所述主控制器生成所述第二直接内存访问指令。
11.根据权利要求10所述的数据传输方法,其特征在于,所述根据所述第二直接内存访问指令执行第二直接内存访问操作,包括:
通过所述主控制器将所述第二直接内存访问指令传递至所述控制状态适配器;
通过所述控制状态适配器将所述第二直接内存访问指令转换为第二PCIe HIP控制指令;
通过所述控制状态适配器将所述第二PCIe HIP控制指令传递至所述PCIe HIP元件;
通过所述PCIe HIP元件根据所述第二PCIe HIP控制指令执行所述第二直接内存访问操作。
12.根据权利要求3所述的数据传输方法,其特征在于,所述下位机包括主控制器、控制状态适配器以及PCIe HIP元件,所述生成执行完毕信息,并根据第二目标地址将所述执行完毕信息传递至所述主内存中的第二存储空间,包括:
通过所述PCIe HIP元件生成执行完毕指令,并将所述执行完毕指令传递至所述控制状态适配器;
通过所述控制状态适配器将所述执行完毕指令转换为第三主控制器控制信息,并将所述第三主控制器控制信息传递至所述主控制器;
通过所述主控制器根据所述第三主控制器控制信息生成中间执行完毕信息,并将所述中间执行完毕信息传递至所述控制状态适配器;
通过所述控制状态适配器将所述中间执行完毕信息转换为所述执行完毕信息,并将所述执行完毕信息传递至所述PCIe HIP元件;
通过所述PCIe HIP元件根据所述第二目标地址将所述执行完毕信息传递至所述第二存储空间。
13.一种数据传输装置,其特征在于,用于PCIe总线架构的下位机中,所述PCIe总线架构包括上位机、主内存和所述下位机,所述数据传输装置包括:
第一生成模块,用于在向所述上位机传递第一数据时,生成第一直接内存访问指令,其中,所述第一直接内存访问指令用于指示源地址和第一目标地址,所述源地址为所述第一数据在所述下位机中的存储地址,所述第一目标地址为所述主内存中的第一存储空间的地址,所述第一存储空间为预先设置的用于存储所述上位机和所述下位机通过直接内存访问操作相互传递的数据的存储空间;
第一执行模块,用于根据所述第一直接内存访问指令执行第一直接内存访问操作;
其中,所述第一直接内存访问操作包括从所述源地址对应的存储空间中获取所述第一数据,并根据所述第一目标地址将所述第一数据传递至所述第一存储空间;
第二接收模块,用于接收所述上位机传递的所述第一目标地址,其中,所述第一目标地址是所述上位机在对所述第一存储空间进行设置后发送的,所述第一存储空间是所述上位机在对所述下位机的驱动加载完毕后设置的。
14.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至12任一所述的数据传输方法。
15.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至12任一所述的数据传输方法。
CN201911399205.0A 2019-12-30 2019-12-30 数据传输方法、装置、设备及存储介质 Active CN111177054B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911399205.0A CN111177054B (zh) 2019-12-30 2019-12-30 数据传输方法、装置、设备及存储介质
PCT/CN2020/139522 WO2021136099A1 (zh) 2019-12-30 2020-12-25 数据传输方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911399205.0A CN111177054B (zh) 2019-12-30 2019-12-30 数据传输方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111177054A CN111177054A (zh) 2020-05-19
CN111177054B true CN111177054B (zh) 2021-09-03

Family

ID=70623585

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911399205.0A Active CN111177054B (zh) 2019-12-30 2019-12-30 数据传输方法、装置、设备及存储介质

Country Status (2)

Country Link
CN (1) CN111177054B (zh)
WO (1) WO2021136099A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111177054B (zh) * 2019-12-30 2021-09-03 京信网络系统股份有限公司 数据传输方法、装置、设备及存储介质
CN112765057B (zh) * 2020-12-30 2024-04-30 京信网络系统股份有限公司 数据传输方法、pcie系统、设备及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8769168B2 (en) * 2006-10-17 2014-07-01 International Business Machines Corporation Method for communicating with a network adapter using a queue data structure and cached address translations
US9467512B2 (en) * 2012-01-17 2016-10-11 Intel Corporation Techniques for remote client access to a storage medium coupled with a server
CN102968395B (zh) * 2012-11-28 2015-04-15 中国人民解放军国防科学技术大学 用于微处理器的内存拷贝加速方法及装置
CN103885900B (zh) * 2012-12-20 2017-03-08 北京华为数字技术有限公司 数据访问处理方法、PCIe设备和用户设备
CN107291629B (zh) * 2016-04-12 2020-12-25 华为技术有限公司 一种用于访问内存的方法和装置
CN108804356A (zh) * 2017-04-26 2018-11-13 上海寒武纪信息科技有限公司 数据传输装置及方法
CN109491587B (zh) * 2017-09-11 2021-03-23 华为技术有限公司 数据访问的方法及装置
CN108334470A (zh) * 2018-01-10 2018-07-27 西安万像电子科技有限公司 数据处理方法、装置和系统
CN111177054B (zh) * 2019-12-30 2021-09-03 京信网络系统股份有限公司 数据传输方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN111177054A (zh) 2020-05-19
WO2021136099A1 (zh) 2021-07-08

Similar Documents

Publication Publication Date Title
CN109766302B (zh) 设备管理的方法和装置
CN111177054B (zh) 数据传输方法、装置、设备及存储介质
EP3352083A1 (en) Debugging method, multi-core processor, and debugging equipment
CN110532205B (zh) 数据传输方法、装置、计算机设备和计算机可读存储介质
JP2019516171A5 (zh)
CN100570566C (zh) 一种异构多核间协调调度的方法及异构多核系统
CN108958880B (zh) 数据处理方法与数据处理系统
CN108141471B (zh) 压缩数据的方法、装置和设备
US10198374B2 (en) Configurable on-chip interconnection system and method and apparatus for implementing same, and storage medium
CN111149097B (zh) 一种主芯片、从芯片及芯片间的dma传输系统
US9239804B2 (en) Back-off mechanism for a peripheral page request log
CN111190854A (zh) 通信数据处理方法、装置、设备、系统和存储介质
WO2018076882A1 (zh) 存储设备的操作方法及物理服务器
US20210294761A1 (en) Systems and methods for message tunneling
CN110995617A (zh) 基于mqtt的数据报送方法装置计算机设备和存储介质
CN110737618B (zh) 内嵌处理器进行快速数据通信的方法、装置及存储介质
CN108132811A (zh) 一种fpga程序数据的加载方法及装置
CN112765057B (zh) 数据传输方法、pcie系统、设备及存储介质
CN112068860B (zh) 基于wifi的胎压诊断仪升级方法、装置、设备及介质
US11115474B2 (en) Data transmission and network interface controller
US9772882B2 (en) Detecting and selecting two processing modules to execute code having a set of parallel executable parts
KR20120134918A (ko) 복수의 프로세서를 포함하는 전자 장치
CN113094296A (zh) Ssd读加速的实现方法、装置、计算机设备及存储介质
CN110687854B (zh) 一种pa总线控制器以及一种pa总线控制系统
EP4120080A1 (en) Data processing method and apparatus, electronic device, and system

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
CB02 Change of applicant information

Address after: 510663 Shenzhou Road 10, Guangzhou Science City, Guangzhou economic and Technological Development Zone, Guangzhou, Guangdong

Applicant after: Jingxin Network System Co.,Ltd.

Address before: 510663 Shenzhou Road 10, Guangzhou Science City, Guangzhou economic and Technological Development Zone, Guangzhou, Guangdong

Applicant before: Comba Telecom System (China) Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant