CN117472819A - 基于PXIe的DMA数据传输处理方法、系统及设备 - Google Patents
基于PXIe的DMA数据传输处理方法、系统及设备 Download PDFInfo
- Publication number
- CN117472819A CN117472819A CN202311407144.4A CN202311407144A CN117472819A CN 117472819 A CN117472819 A CN 117472819A CN 202311407144 A CN202311407144 A CN 202311407144A CN 117472819 A CN117472819 A CN 117472819A
- Authority
- CN
- China
- Prior art keywords
- dma data
- reading
- pointer
- read
- 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.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 71
- 238000003672 processing method Methods 0.000 title claims abstract description 31
- 239000000872 buffer Substances 0.000 claims abstract description 125
- 238000000034 method Methods 0.000 claims abstract description 46
- 238000012545 processing Methods 0.000 claims description 44
- 238000012546 transfer Methods 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000013524 data verification Methods 0.000 claims description 3
- 238000007405 data analysis Methods 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本申请实施例提供了一种基于PXIe的DMA数据传输处理方法、系统及设备,属于数据传输技术领域。该方法首先向主控制器发送DMA数据读请求,主控制器用于向主存储器申请环形缓存区,环形缓存区用于存储DMA数据对应的关键信息;接着,接收主控制器发送的DMA数据读指令,基于DMA数据读指令确定指向环形缓存区的读指针和写指针之间的读取差值,其中,读取差值是由主控制器通过计算读指针和写指针之间的差值得到的;根据读取差值从环形缓存区中读取目标DMA数据对应的目标关键信息,并更新读指针,以使读指针指向最新读取的关键信息。本申请能够在提高主控性能的同时,提高DMA数据传输的效率。
Description
技术领域
本申请涉及数据传输技术领域,尤其涉及一种基于PXIe的DMA数据传输处理方法、系统及设备。
背景技术
直接访问内存技术(Direct Memory Access,DMA)是一种常用于实现设备之间高速数据传输的计算机技术,例如,在PXIe(PCI eXtensions for InstrumentationExpress)系统中,常通过PXIe总线将设备与计算机连接起来并使用DMA数据传输技术以实现数据的高速传输,其中,利用DMA数据传输技术能够绕开CPU的介入,实现提高数据传输的速度。
然而,相关技术中当需要使用DMA数据传输技术对某一DMA数据进行传输时,传输设备会首先向CPU发起传输请求,接着,CPU在接收到该传输请求后将发起中断并通过访问与CPU相连的主寄存器以进行DMA数据传输,在此过程中,为保证每一DMA数据包能够被准确传输,CPU通常需要执行多次读写操作和中断处理。可以理解的是,计算机中其他多个设备同样也需要CPU进行控制与管理,如此频繁地读写主寄存器并进行多次地CPU中断,严重降低了DMA数据的数据传输效率以及CPU的性能。
发明内容
本申请实施例的主要目的在于提出一种基于PXIe的DMA数据传输处理方法、系统及设备,能够在提高主控性能的同时,提高DMA数据传输的效率。
为实现上述目的,本申请实施例的第一方面提出了一种基于PXIe的DMA数据传输处理方法,应用于外接设备,所述外接设备与主控制器连接,所述主控制器与主存储器连接,所述主存储器存储有DMA数据,所述方法包括:
向所述主控制器发送DMA数据读请求,所述主控制器用于向所述主存储器申请环形缓存区,所述环形缓存区用于存储所述DMA数据对应的关键信息;
接收所述主控制器发送的DMA数据读指令,基于所述DMA数据读指令确定指向所述环形缓存区的读指针和写指针之间的读取差值,其中,所述读取差值是由所述主控制器通过计算所述读指针和所述写指针之间的差值得到的,所述读指针用于指示最新读取的关键信息在所述环形缓存区对应的位置,所述写指针用于指示最新写入的关键信息在所述环形缓存区中对应的位置;
根据所述读取差值从所述环形缓存区中读取目标DMA数据对应的目标关键信息,并更新所述读指针,以使所述读指针指向最新读取的关键信息。
在一些实施例中,所述目标关键信息包括数据地址、数据长度和存储信息,所述存储信息包括时间信息或优先级信息;
在所述根据所述读取差值从所述环形缓存区中读取目标DMA数据对应的目标关键信息之后,包括:
根据所述数据地址和所述数据长度,从所述主存储器中读取对应的目标DMA数据;
若所述存储信息为时间信息,将至少一个所述目标DMA数据按照读取时间顺序依次存储在预设的DMA数据缓存区中;
若所述存储信息为优先级信息,将至少一个所述目标DMA数据按照优先级顺序依次存储在所述DMA数据缓存区中;
根据预设的读取需求,分批次从所述DMA数据缓存区中读取对应的所述目标DMA数据。
在一些实施例中,所述目标关键信息还包括控制信息;
在所述根据预设的读取需求,分批次从所述DMA数据缓存区中读取对应的所述目标DMA数据之后,还包括:
基于所述目标关键信息确定所述目标DMA数据对应的控制信息,依据所述控制信息对所述目标DMA数据执行数据处理操作,其中,所述数据处理操作包括数据校验、数据解析和数据转换中的至少一种。
在一些实施例中,所述方法还包括:
向所述主控制器发送DMA数据写请求,并接收所述主控制器发送的DMA数据写指令;
基于所述DMA数据写指令确定指向所述环形缓存区的读指针和写指针之间的存储差值,根据所述存储差值将目标DMA数据对应的目标关键信息写入所述环形缓存区中,并更新所述写指针,以使所述写指针指向最新写入的关键信息;
基于所述DMA数据写指令,将所述目标DMA数据写入所述主存储器中。
在一些实施例中,所述根据所述读取差值从所述环形缓存区中读取目标DMA数据对应的目标关键信息,包括:
获取所述环形缓存区的头部地址和环形缓存大小,根据所述头部地址和所述环形缓存大小确定所述环形缓存区的尾部地址;
若所述读指针大于所述写指针,确定所述读指针至所述尾部地址所指示的区域为第一读取区域;
若所述读指针小于所述写指针,确定所述读指针至所述写指针所指示的区域为第二读取区域;
根据所述第一读取区域或所述第二读取区域,从所述环形缓存区中读取目标DMA数据对应的目标关键信息。
在一些实施例中,所述根据所述存储差值将目标DMA数据对应的目标关键信息写入所述环形缓存区中,包括:
若所述读指针小于或等于所述写指针,确定所述写指针至所述尾部地址所指示的区域为第一存储区域;
若所述读指针大于所述写指针,且所述读指针和所述写指针所指示的存储差值大于预设间隔差,确定所述写指针至所述读指针指示的区域为第二存储区域;
根据所述第一存储区域或所述第二存储区域,将目标DMA数据对应的目标关键信息写入所述环形缓存区中。
为实现上述目的,本申请实施例的第二方面提出了一种基于PXIe的DMA数据传输处理方法,应用于主控制器,所述主控制器与外接设备连接,所述主控制器与主存储器连接,所述主存储器存储有DMA数据,所述方法包括:
接收所述外接设备发送的DMA数据读请求或DMA数据写请求,根据所述DMA数据写请求向所述主存储器申请环形缓存区;
根据所述DMA数据读请求或所述DMA数据写请求获取读指针和写指针,其中,所述读指针用于指示最新读取的关键信息在所述环形缓存区对应的位置,所述写指针用于指示最新写入的关键信息在所述环形缓存区中对应的位置;
计算所述读指针和所述写指针所指示的读取差值或存储差值,根据所述读取差值或所述存储差值,生成DMA数据读指令或DMA数据写指令;
并将所述DMA数据读指令或所述DMA数据写指令发送给所述外接设备,以使所述外接设备依据所述DMA数据读指令从所述环形缓存区中读取目标DMA数据对应的目标关键信息,或者,依据所述DMA数据写指令将所述目标DMA数据对应的目标关键信息写入所述环形缓存区中。
为实现上述目的,本申请实施例的第三方面提出了一种基于PXIe的DMA数据传输处理系统,所述系统包括:
发送模块,用于向所述主控制器发送DMA数据读请求,所述主控制器用于向所述主存储器申请环形缓存区,所述环形缓存区用于存储所述DMA数据对应的关键信息;
接收模块,用于接收所述主控制器发送的DMA数据读指令,基于所述DMA数据读指令确定指向所述环形缓存区的读指针和写指针之间的读取差值,其中,所述读取差值是由所述主控制器通过计算所述读指针和所述写指针之间的差值得到的,所述读指针用于指示最新读取的关键信息在所述环形缓存区对应的位置,所述写指针用于指示最新写入的关键信息在所述环形缓存区中对应的位置;
读取模块,用于根据所述读取差值从所述环形缓存区中读取目标DMA数据对应的目标关键信息,并更新所述读指针,以使所述读指针指向最新读取的关键信息。
为实现上述目的,本申请实施例的第四方面提出了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面实施例所述的方法,或实现上述第二方面实施例所述的方法。
为实现上述目的,本申请实施例的第五方面提出了一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面实施例所述的方法,或实现上述第二方面实施例所述的方法。
本申请提出的一种基于PXIe的DMA数据传输处理方法、系统及设备,其首先向主控制器发送DMA数据读请求,其中,主控制器用于向主存储器申请环形缓存区,环形缓存区用于存储DMA数据对应的关键信息;接着,接收主控制器发送的DMA数据读指令,基于DMA数据读指令确定指向环形缓存区的读指针和写指针之间的读取差值,其中,读取差值是由主控制器通过计算读指针和写指针之间的差值得到的,读指针用于指示最新读取的关键信息在环形缓存区对应的位置,写指针用于指示最新写入的关键信息在环形缓存区中对应的位置;之后,根据读取差值从环形缓存区中读取目标DMA数据对应的目标关键信息,并更新读指针,以使读指针指向最新读取的关键信息。如此,外接设备在向主控制器发送读请求后,于主控制器而言,仅需对存储有DMA数据对应关键信息的环形缓存区执行一次读写操作,并基于此生成对应地指令以使外接设备对DMA数据执行相应地读写操作,而无需频繁地使用主控制器,由此,提高了主控制器的性能,由于DMA数据传输与主控制器息息相关,当主控制器的性能提升后,进而能够提高DMA数据传输的效率。
附图说明
图1是本申请实施例提供的基于PXIe的DMA数据传输处理方法一个可选流程图;
图2是本申请实施例提供的基于PXIe的DMA数据传输处理方法一个连接示意图;
图3是图1中的步骤S103之后的一个实现流程图;
图4是本申请实施例提供的基于PXIe的DMA数据传输处理方法另一个可选流程图;
图5是图1中的步骤S103的一个实现流程图;
图6是本申请实施例提供的基于PXIe的DMA数据传输处理方法一个可选的传输示意图;
图7是本申请实施例提供的基于PXIe的DMA数据传输处理方法另一个可选的传输示意图;
图8是图4中的步骤S402的一个实现流程图;
图9是本申请实施例提供的基于PXIe的DMA数据传输处理方法又一个可选流程图;
图10是本申请实施例提供的基于PXIe的DMA数据传输处理系统的功能模块示意图;
图11是本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
直接访问内存技术(Direct Memory Access,DMA)是一种常用于实现设备之间高速数据传输的计算机技术,例如,在PXIe(PCI eXtensions for InstrumentationExpress)系统中,常通过PXIe总线将设备与计算机连接起来并使用DMA数据传输技术以实现数据的高速传输,其中,利用DMA数据传输技术能够绕开CPU的介入,实现提高数据传输的速度。
然而,相关技术中当需要使用DMA数据传输技术对某一DMA数据进行传输时,传输设备会首先向CPU发起传输请求,接着,CPU在接收到该传输请求后将发起中断并通过访问与CPU相连的主寄存器以进行DMA数据传输,在此过程中,为保证每一DMA数据包能够被准确传输,CPU通常需要执行多次读写操作和中断处理。可以理解的是,计算机中其他多个设备同样也需要CPU进行控制与管理,如此频繁地读写主寄存器并进行多次地CPU中断,严重降低了DMA数据的数据传输效率以及CPU的性能。
基于此,本申请实施例提供了一种基于PXIe的DMA数据传输处理方法、系统及设备,能够在提高主控性能的同时,提高DMA数据传输的效率。
本申请实施例提供的基于PXIe的DMA数据传输处理方法、系统及设备,具体通过如下实施例进行说明。
需要说明的是,在本申请的各个具体实施方式中,当涉及到需要根据DMA数据信息进行相关处理时,都会先获得相关工作人员的许可或者同意。并且,对这些DMA数据的收集、使用和处理等,都会遵守相关法律法规和标准。此外,当本申请实施例需要获取相关工作人员的敏感个人信息时,会在明确获得相关工作人员的单独许可或者单独同意之后,再执行本申请实施例中DMA数据的相关传输操作。
如图1所示,图1是本申请实施例提供的基于PXIe的DMA数据传输处理方法一个可选流程图,图1中的方法可以包括但不限于包括步骤S101至步骤S103。
步骤S101,向主控器发送DMA数据读请求,主控制器用于向主存储器申请环形缓存区,环形缓存区用于存储DMA数据对应的关键信息。
在一些实施例中,如图2所示,图2是本申请实施例提供的基于PXIe的DMA数据传输处理方法一个连接示意图,在PXIe系统进行DMA数据传输的过程中,外接设备(当外接设备接入PXIe插槽后,则将外接设备认为是PXIe系统的一部分)通常与主控制器(也可简称为“主控”)连接,需要说明的是,在计算机系统中,主控制器可以指代与CPU分离的独立硬件模块,也可以指代集成在CPU内部的控制逻辑。具体情况取决于系统的设计和架构。需要注意的是,主控制器这个术语在不同的上下文中可能会有不同的含义,但一般来说,它表示负责控制和管理特定任务或设备的硬件或软件组件;另一方面,主控制器与主存储器连接,主存储器用于存储DMA数据。
需要说明的是,由于PCIe(Peripheral Component Interconnect Express)是基于PXIe进一步扩展得到的,因此,本申请实施例提供的基于PXIe的DMA数据传输处理方法同样可以运用到PCIe系统中,以在PCIe系统中实现DMA数据的传输处理操作。
进一步地,外接设备可以是网络适配器、硬盘驱动器、板卡等,在本申请实施例中,外接设备可以是可编程逻辑器件(Field-Programmable Gate Array,FPGA),并且,可以理解的是,本申请所提出的基于PXIe的DMA数据传输处理方法还可以用于主控制器与其他所连的外接设备中,本申请实施例并不做具体地限制。另外,主控制器所连的外接设备可以有多台,本申请同样不做具体地限制,可以依据实际的情况进行设定。
在一些实施例中,当外接设备首次向主控制器申请进行DMA数据传输时,主控制器会向主存储器申请环形缓存区,当完成环形缓存区的申请后,若外接设备再次向主控制器发出DMA数据读请求,则此时主控制器可以直接基于之前已经申请好的环形缓存区进行操作,无需再次申请环形缓存区。
进一步地,环形缓存区的首尾相接,主控在写完环形缓存区的尾部后可以回到该环形缓存区的首部,另外,与主控相连的外接设备,如FPGA在读取环形缓存区的信息时,若读取到环形缓存区的尾部后也能够回到环形缓存区的首部。
进一步地,环形缓存区中存储的是所需传输的DMA数据对应的关键信息,关键信息包括控制信息、数据地址、数据大小和存储信息。其中,控制信息用于指示DMA数据对应的数据处理操作,数据地址用于指示DMA数据在主存储器中对应的存储位置,数据大小用于指示DMA数据在主存储器中对应所占的存储大小,存储信息用于表征从主存储器中对应读取的DMA数据在外接设备中的存储依据。
进一步地,同一DMA数据在主存储器中和外接设备中的地址通常是不一样的,为了便于实现主控和外接设备之间的有效访问和管理,可以采用基址寄存器(Base Register,BAR)进行主控与外接设备之间的地址映射管理。示例性地,BAR寄存器能够将环形缓存区对应的地址等信息经过转换后发送给外接设备,可以理解的是,转换后的地址信息与外接设备中的地址空间一致,这样,便于主存储器和外接设备之间的内存访问,无需手动计算对应的物理地址,提高了DMA数据传输效率。
进一步地,环形缓存区可以是主存储器中的一个内存块,或者是与主存储器相连的外部存储器中的一个内存块。环形缓存区的实际大小可以根据数据带宽进行自定义设置,其中,数据带宽是指在数据传输中单位时间内能够传输的数据量。例如,某一时刻的数据带宽表征每秒能够传输100个DMA数据对应的关键信息,其中,每个关键信息的数据大小为4字节,此时,可以计算得到每秒需要传输的关键信息量为100个数据*4字节/数据=400字节,因此,为了避免数据丢失,通常会将环形缓存区的大小设置至能够容纳最大传输速率的数据量,即,在该例子中,所设置的环形缓存区的环形缓存大小至少为400字节。
步骤S102,接收主控制器发送的DMA数据读指令,基于DMA数据读指令确定指向环形缓存区的读指针和写指针之间的读取差值,其中,读取差值是由主控制器通过计算读指针和写指针之间的差值得到的,读指针用于指示最新读取的关键信息在环形缓存区对应的位置,写指针用于指示最新写入的关键信息在环形缓存区中对应的位置。
在一些实施例中,当外接设备接收到主控器发送的DMA数据读指令后,即可根据DMA数据读指令从主存储器中读取对应的DMA数据,在读取DMA数据之前,需要从环形缓存区中读取DMA数据对应的关键信息。其中,DMA数据读指令除了能够向外接设备指示DMA读取信号之外,还能够向外接设备指示环形缓存区中读指针和写指针之间的读取差值情况,由于环形缓存区中存储的是DMA数据对应的关键信息,因此,DMA数据读指令实际上指示的是外接设备要对应读取的关键信息。
进一步地,读指针和写指针可以设置于外接设备、BAR寄存器或其他相关设备中,并且,读指针和写指针均指向环形缓存区。
步骤S103,根据读取差值从环形缓存区中读取目标DMA数据对应的目标关键信息,并更新读指针,以使读指针指向最新读取的关键信息。
在一些实施例中,环形缓存区中存储有多个关键信息,可以根据读指针和写指针来确定需要对应读取的目标关键信息。示例性地,当环形缓存区中的写指针大于读指针时,表示目前可读取的关键信息为写指针到读指针之间的数据。
进一步地,根据读取到的目标关键信息,可以进一步确定需要对应读取的目标DMA数据,相较于传统DMA数据传输中直接读取目标DMA数据,关键信息所占用的空间更小,读取关键信息也更不易出现数据丢失的情况且读取速度更快,同时,利用关键信息记录DMA数据对应的关键信息如数据大小时,即可根据计数器判断DMA数据是否已经传输完成,提高了DMA的数据传输效率;另一方面,在一次完整地DMA数据传输过程中,主控仅需要对主存储器中的环形缓存区执行一次读写操作,提高了主控的性能,进而提高了DMA数据的传输效率。
如图3所示,图3是图1中的步骤S103之后的一个实现流程图,在一些实施例中,步骤S103之后可以包括步骤S201至步骤S204。
步骤S201,根据数据地址和数据长度,从主存储器中读取对应的目标DMA数据。
在一些实施例中,目标关键信息包括数据地址和数据长度,例如,某一目标DMA数据在主存储器中所存储的地址即为目标关键信息中所包括的数据地址,并且,该目标DMA数据在主存储器中所占的存储空间即为目标关键信息中所包括的数据长度(也可称为数据大小)。
步骤S202,若存储信息为时间信息,将至少一个目标DMA数据按照读取时间顺序依次存储在预设的DMA数据缓存区中。
在一些实施例中,目标关键信息还包括存储信息,在外接设备从主存储器中读取出目标DMA数据之后,还需要将目标DMA数据存储到外接设备相应的地方,而存储信息正是用于表征目标DMA数据存储在外接设备中的存储依据。其中,存储信息可以是时间信息,例如,外接设备从主存储器中读取出多个目标DMA数据后,这些目标DMA数据对应的存储信息为时间信息,则按照时间的早晚顺序将多个目标DMA数据依次存储于外接设备中,这样,外接设备在对这些目标DMA数据进行后续地数据处理时,可以依照数据传输的早晚顺序执行。
进一步地,DMA数据缓存区是由外接设备预先划分得到的,其用于存储从主存储器中读取得到的目标DMA数据,或者,外接设备可以额外连接其他的外接存储设备,并将读取得到的目标DMA数据存储在该外接存储设备中。
进一步地,也可以划分为多个不同的时间段,依据不同的时间段将不同的目标DMA数据存储在不同的DMA数据缓存区中,以便外接设备后续在不同的DMA数据缓存区中对不同的目标DMA数据进行数据处理,如此,能够针对性地提高目标DMA数据的数据处理效率。
需要说明的是,在得到目标DMA数据对应的时间信息后,可以依照实际情况对目标DMA数据做不同的数据存储处理,本申请实施例仅以较佳实施例进行说明,而并不做具体地限制。
步骤S203,若存储信息为优先级信息,将至少一个目标DMA数据按照优先级顺序依次存储在DMA数据缓存区中。
在一些实施例中,存储信息也可以是优先级信息,其中,优先级信息用于指示对应的目标DMA数据的处理优先级,由于处理优先级越高的表示对应的目标DMA数据需要优先处理,因此,外接设备可以将优先级信息高的存储在优先处理的位置,如此,能够加快目标DMA数据的处理速度。
示例性地,优先级信息可以分为高、中、低三个等级,并且,外接设备可以划分出三个不同的DMA数据缓存区,用于存储不同优先级信息对应的目标DMA数据,当接收到优先级信息为高的关键信息时,外接设备依据数据地址和数据长度将对应的目标DMA数据从主存储器中读取出来,并将该目标DMA数据存储在第一DMA数据缓存区中,其中,第一DMA数据缓存区用于存储优先级信息为高的目标DMA数据。
需要说明的是,在得到目标DMA数据对应的优先级信息后,可以依照实际情况对目标DMA数据做不同的数据存储处理,本申请实施例仅以较佳实施例进行说明,而并不做具体地限制。
可以理解的是,灵活地设置存储信息能够使得外接设备在读取得到对应的目标DMA数据之后,依据不同外接设备的实际传输需要进行目标DMA数据的存储,从而提高了目标DMA数据的处理效率。
步骤S204,根据预设的读取需求,分批次从DMA数据缓存区中读取对应的目标DMA数据。
在一些实施例中,外接设备在将目标DMA数据存储至DMA数据缓存区后,外接设备通常还会根据自己的实际情况对目标DMA数据进行再次读取以执行后续地数据处理操作。此时,外接设备可以根据自己的实际预设的读取需求,分批次从DMA数据缓存区中读取对应的目标DMA数据。
示例性地,某一时刻,外接设备在从DMA数据缓存区读取目标DMA数据时的网络传输速度不高,此时,每次仅能够读取并处理10个目标DMA数据,因而,即使DMA数据缓存区中存储有多于10个的目标DMA数据,也可以不必一次性读取完毕。与传统DMA数据传输过程中,必须一次性从主存储器中读取对应的DMA数据相比,本申请实施例首先从环形缓存区中读取对应的关键信息,之后外接设备能够依据该关键信息并基于实际情况进行主动地数据读取,能够有效地减少CPU资源地浪费。
一些实施例中,步骤S204之后可以包括以下步骤。
在一些实施例中,基于目标关键信息确定目标DMA数据对应的控制信息,依据控制信息对目标DMA数据执行数据处理操作,其中,数据处理操作包括数据校验、数据解析和数据转换中的至少一种。
在一些实施例中,目标关键信息还包括控制信息,其中,控制信息用于指示外接设备需要对目标DMA数据执行的数据处理操作。
进一步地,控制信息用于指示对目标DMA数据的数据操作,例如,控制信息可以为报文序号、数据跳变信息指示、时间戳、校验信息等中的一个或多个,以执行对应的数据处理操作。当控制信息为报文序号时,可以在目标DMA数据后添加报文序号以使报文序号成为目标DMA数据的唯一表示;当控制信息为数据跳变信息时,可以根据该数据跳变信息对目标DMA数据进行特定位置的数据变化;当控制信息为时间戳时,可以依据时间戳验证目标DMA数据的完整性,其中,时间戳可以是秒时间,微秒时间,年月日时分秒等;当控制信息为校验信息时,可以依据校验信息对目标DMA数据进行数据校验操作。
可以理解的是,以可编程仪器扩展接口系统(PCI extensions forInstrumentation,PXIe)为例,主控资源是各系统应用的瓶颈,如果所有的目标DMA数据都经过主控CPU的处理,这将极大地占用CPU资源,那么会明显降低系统的传输效率和带宽。本申请实施例中每一目标DMA数据都将在关键信息中定义有控制信息,这样,CPU无需再对目标DMA数据进行处理,而是由外接设备读取对应的控制信息后再对目标DMA数据做相应地独立处理,如此,增加了目标DMA数据处理的灵活性。
如图4所示,图4是本申请实施例提供的基于PXIe的DMA数据传输处理方法另一个可选流程图,图4中的方法可以包括但不限于包括步骤S401至步骤S403。
步骤S401,向主控器发送DMA数据写请求,并接收主控制器发送的DMA数据写指令。
在一些实施例中,在DMA数据的数据传输过程中,除了包括外接设备从主存储中读取DMA数据,还包括外接设备向主存储器中写入DMA数据。当外接设备需要向主存储器中写入DMA数据时,外接设备会首先向主控发送DMA数据写请求,并且,外接设备在接收到主控发送的DMA数据写指令之后,即可开始进行目标DMA数据的写入操作。
步骤S402,基于DMA数据写指令确定指向环形缓存区的读指针和写指针之间的存储差值,根据存储差值将目标DMA数据对应的目标关键信息写入环形缓存区中,并更新写指针,以使写指针指向最新写入的关键信息;
在一些实施例中,外接设备所接收到的DMA数据写指令包括了指示当前环形缓存区中可写入的部分。并且,外接设备需要写入的信息包括DMA数据和DMA数据对应的关键信息,因此,需要将关键信息写入环形缓存区中,并将DMA数据写入主存储器中。
进一步地,在完成将关键信息写入环形缓存区后,需要对写指针进行更新,以便能够根据更新后的写指针确定下一次写入DMA数据的起始位置。
步骤S403,基于DMA数据写指令,将目标DMA数据写入主存储器中。
在一些实施例中,在将关键信息存储至环形缓存区后,还需要将关键信息对应的DMA数据存储至主存储器中,由于关键信息中包括了对应DMA数据存储于主存储器中的数据地址和数据长度,因此,可以基于数据地址和数据长度将该DMA数据存储至主存储器中相应地位置。
可以理解的是,外接设备可以仅对主存储器执行DMA数据读操作,此时,主控仅对环形缓存区执行一次读操作;或者,仅对主存储器执行DMA数据写操作,此时,主控仅对环形缓存区执行一次写操作;又或者,对主存储器执行DMA数据读写操作,此时,主控仅对环形缓存区执行一次读写操作,相较于传统DMA数据传输中主控需要多次读写对应寄存器,减少了主控地中断,极大地提高了主控的性能。
如图5所示,图5是图1中的步骤S103的一个实现流程图,在一些实施例中,步骤S103可以包括步骤S501至步骤S504。
步骤S501,获取环形缓存区的头部地址和环形缓存大小,根据头部地址和环形缓存大小确定环形缓存区的尾部地址。
在一些实施例中,环形缓存区的环形缓存大小可以依据实际情况进行设定,此时,并以主控返回的地址作为该环形缓存区的头部地址,通过头部地址和环形缓存大小地加和,可以确定该环形缓存区的尾部地址。
步骤S502,若读指针大于写指针,确定读指针至尾部地址所指示的区域为第一读取区域。
在一些实施例中,由于读指针和写指针均指向环形缓存区,因而可以通过读指针和写指针之间的差值确定主存储器中可供读取的区域。示例性地,如图6所示,图6是本申请实施例提供的基于PXIe的DMA数据传输处理方法一个可选的传输示意图,在图6中,环形缓存区1的头部地址为地址11,环形缓存大小为4单位数据,则确定地址14为尾部地址,此时,写指针指向地址11,而读指针指向地址13,表示环形缓存区1的地址11至地址13对应存储的DMA数据已经被读取,则确定读指针当前所指向的位置至尾部地址为可供读取的第一读取区域。
步骤S503,若读指针小于写指针,确定读指针至写指针所指示的区域为第二读取区域。
示例性地,如图7所示,图7是本申请实施例提供的基于PXIe的DMA数据传输处理方法另一个可选的传输示意图,在图7中,环形缓存区2的头部地址为地址21,环形缓存大小为4单位数据,则确定地址24为尾部地址,此时,读指针指向地址21,而写指针指向地址23,表示环形缓存区2的地址21对应存储的DMA数据已经被读取,则确定读指针当前所指向的位置至写指针当前所指向的位置为可供读取的第二读取区域。
步骤S504,根据第一读取区域或第二读取区域,从环形缓存区中读取目标DMA数据对应的目标关键信息。
示例性地,环形缓存大小可以设置为4MByte,且环形缓存区中的每一缓存可以设置为32Byte,此时,环形缓存区最大可容纳:4096*1024/32=131072个DMA数据,即,主控执行一次读写操作即可实现131072个DMA数据的发送,无需多次执行主控中断,提高了主控性能的同时,也提高了DMA数据的传输效率。
在一些实施例中,若读指针等于写指针,则表示环形缓存区中未存储有关键信息,无需执行后续的读取操作。
在一些实施例中,当可供读取的区域为第一读取区域时,从环形缓存区中的第一读取区域中读取对应的目标关键信息,或者,当可供读取的区域为第二读取区域时,从环形缓存区中的第二读取区域中读取对应的目标关键信息,并且,无论是从哪个读取区域完成目标关键信息地读取后,需要更新指向环形缓存区的读指针,以便能够根据更新后的读指针确定下一次读取DMA数据的起始位置。
如图8所示,图8是图4中的步骤S402的一个实现流程图,在一些实施例中,步骤S402可以包括步骤S601至步骤S603。
步骤S601,若读指针小于或等于写指针,确定写指针至尾部地址所指示的区域为第一存储区域。
在一些实施例中,当外接设备需要将DMA数据存储至主存储器中时,同样需要根据DMA数据写指令确定环形缓存区中可供存储的区域。示例性地,如图7所示,此时环形缓存区2中的读指针小于写指针,则表示环形缓存区2中地址21至地址23的部分已经写入相应地DMA数据,则此时写指针至尾部地址区域为可供写入的第一存储区域,即地址24。
在一些实施例中,当读指针等于写指针时,可供写入的部分同样为写指针至尾部地址区域。
步骤S602,若读指针大于写指针,且读指针和写指针所指示的存储差值大于预设间隔差,确定写指针至读指针指示的区域为第二存储区域。
在一些实施例中,如图6所示,此时环形缓存区1中的读指针大于写指针,则此时写指针至读指针区域为可供写入的第二存储区域,即地址11至地址13。
进一步地,预设的间隔差的设置时为了读取边界的保护。例如,预设的间隔差可以设置为4KByte,在执行DMA数据的写入操作时,若读指针大于写指针时且存储差值在4KByte以内时,表示此时写入速度比读取速度要快,且环形缓存区已满,为了保证环形缓存区不会受到损坏,此时不能再继续写入DMA数据。
需要说明的是,间隔差可以根据实际情况进行具体地设置,本申请实施例仅以较佳实施例进行说明,而不做具体地限制。
步骤S603,根据第一存储区域或第二存储区域,将目标DMA数据对应的目标关键信息写入环形缓存区中。
在一些实施例中,当可供存储的区域为第一存储区域时,向环形缓存区的第一存储区域中存储对应的目标关键信息,或者,当可供存储的区域为第二存储区域时,向环形缓存区的第二存储区域中存储对应的目标关键信息,并且,无论是在哪个存储区域完成目标关键信息地存储后,需要更新指向环形缓存区的写指针,以便能够根据更新后的写指针确定下一次存储关键信息的起始位置。
如图9所示,图9是本申请实施例提供的基于PXIe的DMA数据传输处理方法又一个可选流程图,图9中的方法可以包括但不限于包括步骤S701至步骤S703。
步骤S701,接收外接设备发送的DMA数据读请求或DMA数据写请求,根据DMA数据写请求向主存储器申请环形缓存区;
在一些实施例中,本申请提出的基于PXIe的DMA数据传输处理方法也可以应用于主控制器,其中,主控制器与外接设备连接,主控制器与主存储器连接,主存储器存储有DMA数据。
进一步地,当主控制器接收到外接设备发送的DMA数据写请求时,主控制器可以向主存储器申请环形缓存区,环形缓存区用于存储外接设备发送的DMA对应的关键信息;当主控制器接收到外接设备发送的DMA数据读请求时,主控制器可以从已经申请好环形缓存区中读取对应的关键信息。
步骤S702,根据DMA数据读请求或DMA数据写请求获取读指针和写指针,其中,读指针用于指示最新读取的关键信息在环形缓存区对应的位置,写指针用于指示最新写入的关键信息在环形缓存区中对应的位置。
在一些实施例中,当主控制器接收到DMA数据读请求或DMA数据写请求时,需要获取指向环形缓存区的读指针和写指针的指针状态。
步骤S703,计算读指针和写指针所指示的读取差值或存储差值,根据读取差值或存储差值,生成DMA数据读指令或DMA数据写指令。
在一些实施例中,根据读指针和写指针的指针状态,计算二者之间的读取差值或存储差值,可以理解的是,针对同一指针状态,如读指针大于写指针时,不同的DMA数据请求所对应生成的DMA数据指令是不同的。
示例性地,当主控制器接收到的是DMA数据读请求时,若此时读指针大于写指针,则生成DMA数据读指令,该指令用于指示读指针所指向的位置至环形缓存区尾部地址为外接设备能够读取的区域;或者,当主控制器接收到的是DMA数据写请求时,若此时读指针大于写指针,则生成DMA数据写指令,该指令用于指示写指针至读指针所指向的位置为外接设备能够存储DMA数据的区域。
步骤S704,并将DMA数据读指令或DMA数据写指令发送给外接设备,以使外接设备依据DMA数据读指令从环形缓存区中读取目标DMA数据对应的目标关键信息,或者,依据DMA数据写指令将目标DMA数据对应的目标关键信息写入环形缓存区中。
在一些实施例中,在生成DMA数据读指令或DMA数据写指令之后,主控制器能够将DMA数据读指令或DMA数据写指令发送给外接设备,当外接设备接收到主控器发送的DMA数据读指令或DMA数据写指令时,能够依据指令执行对应的DMA数据读取操作或DMA数据存储操作。
如图10所示,图10是本申请实施例提供的基于PXIe的DMA数据传输处理系统的功能模块示意图,本申请实施例还提供一种基于PXIe的DMA数据传输处理系统,可以实现上述基于PXIe的DMA数据传输处理方法,基于PXIe的DMA数据传输处理系统包括:
发送模块801,用于向主控制器发送DMA数据读请求,主控制器用于向主存储器申请环形缓存区,环形缓存区用于存储DMA数据对应的关键信息;
接收模块802,用于接收主控制器发送的DMA数据读指令,基于DMA数据读指令确定指向环形缓存区的读指针和写指针之间的读取差值,其中,读取差值是由主控制器通过计算读指针和写指针之间的差值得到的,读指针用于指示最新读取的关键信息在环形缓存区对应的位置,写指针用于指示最新写入的关键信息在环形缓存区中对应的位置;
读取模块803,用于根据读取差值从环形缓存区中读取目标DMA数据对应的目标关键信息,并更新读指针,以使读指针指向最新读取的关键信息。
该基于PXIe的DMA数据传输处理系统的具体实施方式与上述基于PXIe的DMA数据传输处理方法的具体实施例基本相同,在此不再赘述。在满足本申请实施例要求的前提下,基于PXIe的DMA数据传输处理系统还可以设置其他功能模块,以实现上述实施例中的基于PXIe的DMA数据传输处理方法。
本申请实施例还提供了一种电子设备,电子设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述基于PXIe的DMA数据传输处理方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。
如图11所示,图11是本申请实施例提供的电子设备的硬件结构示意图,电子设备包括:
处理器901,可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
存储器902,可以采用只读存储器(ReadOnly Memory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(Random Access Memory,RAM)等形式实现。存储器902可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器902中,并由处理器901来调用执行本申请实施例的基于PXIe的DMA数据传输处理方法;
输入/输出接口903,用于实现信息输入及输出;
通信接口904,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;
总线905,在设备的各个组件(例如处理器901、存储器902、输入/输出接口903和通信接口904)之间传输信息;
其中处理器901、存储器902、输入/输出接口903和通信接口904通过总线905实现彼此之间在设备内部的通信连接。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述基于PXIe的DMA数据传输处理方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”和“若干”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。
Claims (10)
1.一种基于PXIe的DMA数据传输处理方法,应用于外接设备,所述外接设备与主控制器连接,所述主控制器与主存储器连接,所述主存储器存储有DMA数据,其特征在于,所述方法包括:
向所述主控制器发送DMA数据读请求,所述主控制器用于向所述主存储器申请环形缓存区,所述环形缓存区用于存储所述DMA数据对应的关键信息;
接收所述主控制器发送的DMA数据读指令,基于所述DMA数据读指令确定指向所述环形缓存区的读指针和写指针之间的读取差值,其中,所述读取差值是由所述主控制器通过计算所述读指针和所述写指针之间的差值得到的,所述读指针用于指示最新读取的关键信息在所述环形缓存区对应的位置,所述写指针用于指示最新写入的关键信息在所述环形缓存区中对应的位置;
根据所述读取差值从所述环形缓存区中读取目标DMA数据对应的目标关键信息,并更新所述读指针,以使所述读指针指向最新读取的关键信息。
2.根据权利要求1所述的基于PXIe的DMA数据传输处理方法,其特征在于,所述目标关键信息包括数据地址、数据长度和存储信息,所述存储信息包括时间信息或优先级信息;
在所述根据所述读取差值从所述环形缓存区中读取目标DMA数据对应的目标关键信息之后,包括:
根据所述数据地址和所述数据长度,从所述主存储器中读取对应的目标DMA数据;
若所述存储信息为时间信息,将至少一个所述目标DMA数据按照读取时间顺序依次存储在预设的DMA数据缓存区中;
若所述存储信息为优先级信息,将至少一个所述目标DMA数据按照优先级顺序依次存储在所述DMA数据缓存区中;
根据预设的读取需求,分批次从所述DMA数据缓存区中读取对应的所述目标DMA数据。
3.根据权利要求2所述的基于PXIe的DMA数据传输处理方法,其特征在于,所述目标关键信息还包括控制信息;
在所述根据预设的读取需求,分批次从所述DMA数据缓存区中读取对应的所述目标DMA数据之后,还包括:
基于所述目标关键信息确定所述目标DMA数据对应的控制信息,依据所述控制信息对所述目标DMA数据执行数据处理操作,其中,所述数据处理操作包括数据校验、数据解析和数据转换中的至少一种。
4.根据权利要求3所述的基于PXIe的DMA数据传输处理方法,其特征在于,所述方法还包括:
向所述主控制器发送DMA数据写请求,并接收所述主控制器发送的DMA数据写指令;
基于所述DMA数据写指令确定指向所述环形缓存区的读指针和写指针之间的存储差值,根据所述存储差值将目标DMA数据对应的目标关键信息写入所述环形缓存区中,并更新所述写指针,以使所述写指针指向最新写入的关键信息;
基于所述DMA数据写指令,将所述目标DMA数据写入所述主存储器中。
5.根据权利要求4所述的基于PXIe的DMA数据传输处理方法,其特征在于,所述根据所述读取差值从所述环形缓存区中读取目标DMA数据对应的目标关键信息,包括:
获取所述环形缓存区的头部地址和环形缓存大小,根据所述头部地址和所述环形缓存大小确定所述环形缓存区的尾部地址;
若所述读指针大于所述写指针,确定所述读指针至所述尾部地址所指示的区域为第一读取区域;
若所述读指针小于所述写指针,确定所述读指针至所述写指针所指示的区域为第二读取区域;
根据所述第一读取区域或所述第二读取区域,从所述环形缓存区中读取目标DMA数据对应的目标关键信息。
6.根据权利要求5所述的基于PXIe的DMA数据传输处理方法,其特征在于,所述根据所述存储差值将目标DMA数据对应的目标关键信息写入所述环形缓存区中,包括:
若所述读指针小于或等于所述写指针,确定所述写指针至所述尾部地址所指示的区域为第一存储区域;
若所述读指针大于所述写指针,且所述读指针和所述写指针所指示的存储差值大于预设间隔差,确定所述写指针至所述读指针指示的区域为第二存储区域;
根据所述第一存储区域或所述第二存储区域,将目标DMA数据对应的目标关键信息写入所述环形缓存区中。
7.一种基于PXIe的DMA数据传输处理方法,应用于主控制器,所述主控制器与外接设备连接,所述主控制器与主存储器连接,所述主存储器存储有DMA数据,其特征在于,所述方法包括:
接收所述外接设备发送的DMA数据读请求或DMA数据写请求,根据所述DMA数据写请求向所述主存储器申请环形缓存区;
根据所述DMA数据读请求或所述DMA数据写请求获取读指针和写指针,其中,所述读指针用于指示最新读取的关键信息在所述环形缓存区对应的位置,所述写指针用于指示最新写入的关键信息在所述环形缓存区中对应的位置;
计算所述读指针和所述写指针所指示的读取差值或存储差值,根据所述读取差值或所述存储差值,生成DMA数据读指令或DMA数据写指令;
并将所述DMA数据读指令或所述DMA数据写指令发送给所述外接设备,以使所述外接设备依据所述DMA数据读指令从所述环形缓存区中读取目标DMA数据对应的目标关键信息,或者,依据所述DMA数据写指令将所述目标DMA数据对应的目标关键信息写入所述环形缓存区中。
8.一种基于PXIe的DMA数据传输处理系统,其特征在于,所述系统包括:
发送模块,用于向所述主控制器发送DMA数据读请求,所述主控制器用于向所述主存储器申请环形缓存区,所述环形缓存区用于存储所述DMA数据对应的关键信息;
接收模块,用于接收所述主控制器发送的DMA数据读指令,基于所述DMA数据读指令确定指向所述环形缓存区的读指针和写指针之间的读取差值,其中,所述读取差值是由所述主控制器通过计算所述读指针和所述写指针之间的差值得到的,所述读指针用于指示最新读取的关键信息在所述环形缓存区对应的位置,所述写指针用于指示最新写入的关键信息在所述环形缓存区中对应的位置;
读取模块,用于根据所述读取差值从所述环形缓存区中读取目标DMA数据对应的目标关键信息,并更新所述读指针,以使所述读指针指向最新读取的关键信息。
9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述的基于PXIe的DMA数据传输处理方法,或实现权利要求7所述的基于PXIe的DMA数据传输处理方法。
10.一种计算机可读存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一项所述的基于PXIe的DMA数据传输处理方法,或实现权利要求7所述的基于PXIe的DMA数据传输处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311407144.4A CN117472819A (zh) | 2023-10-26 | 2023-10-26 | 基于PXIe的DMA数据传输处理方法、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311407144.4A CN117472819A (zh) | 2023-10-26 | 2023-10-26 | 基于PXIe的DMA数据传输处理方法、系统及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117472819A true CN117472819A (zh) | 2024-01-30 |
Family
ID=89628580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311407144.4A Pending CN117472819A (zh) | 2023-10-26 | 2023-10-26 | 基于PXIe的DMA数据传输处理方法、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117472819A (zh) |
-
2023
- 2023-10-26 CN CN202311407144.4A patent/CN117472819A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3614253B1 (en) | Data processing method and storage system | |
EP2849076B1 (en) | Dma transmission method and system | |
US7433977B2 (en) | DMAC to handle transfers of unknown lengths | |
CN109558344B (zh) | 一种适用于网络传输的dma传输方法及dma控制器 | |
EP3792776B1 (en) | Nvme-based data reading method, apparatus and system | |
CN110119304B (zh) | 一种中断处理方法、装置及服务器 | |
CN101877666A (zh) | 基于零拷贝方式的多应用程序报文接收方法和装置 | |
US20090182798A1 (en) | Method and apparatus to improve the effectiveness of system logging | |
CN114461541A (zh) | 芯片数据读取方法、写入方法、装置、设备以及存储介质 | |
CN109857553B (zh) | 内存管理方法及装置 | |
JP2012089948A (ja) | データ転送装置及びデータ転送方法 | |
CN111078384A (zh) | 核心数据迁移的方法、装置、计算机设备及存储介质 | |
CN117472819A (zh) | 基于PXIe的DMA数据传输处理方法、系统及设备 | |
CN116483259A (zh) | 一种数据处理方法以及相关装置 | |
CN106776393B (zh) | 一种无中断的串口数据接收方法和装置 | |
US8151015B2 (en) | Systems and methods for effecting DMA data transfers | |
CN112732176B (zh) | 基于fpga的ssd访问方法及装置、存储系统及存储介质 | |
CN114691023A (zh) | 读写设备的读写操作方法、读写设备及可读存储介质 | |
CN105022707B (zh) | 接口单元装置 | |
CN111435332B (zh) | 数据处理方法及设备 | |
JP4282390B2 (ja) | マイコンのロジック開発装置 | |
CN116610608B (zh) | 直接内存访问描述符处理方法、系统、装置、设备及介质 | |
CN114546907B (zh) | 一种数据发送和接收方法、装置、设备及存储介质 | |
CN115297169B (zh) | 数据处理方法、装置、电子设备及介质 | |
CN117389685B (zh) | 虚拟机热迁移标脏方法及其装置、后端设备、芯片 |
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 |