CN116340217A - 数据处理方法及相关装置 - Google Patents
数据处理方法及相关装置 Download PDFInfo
- Publication number
- CN116340217A CN116340217A CN202310006404.0A CN202310006404A CN116340217A CN 116340217 A CN116340217 A CN 116340217A CN 202310006404 A CN202310006404 A CN 202310006404A CN 116340217 A CN116340217 A CN 116340217A
- Authority
- CN
- China
- Prior art keywords
- soc
- data
- fifo register
- pcie
- transmission request
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 230000005540 biological transmission Effects 0.000 claims abstract description 104
- 238000012545 processing Methods 0.000 claims abstract description 62
- 238000000034 method Methods 0.000 claims abstract description 39
- 230000006870 function Effects 0.000 claims description 43
- 238000004590 computer program Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 7
- 239000000872 buffer Substances 0.000 claims 1
- 230000009471 action Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000000903 blocking effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/24—Interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/28—DMA
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Bus Control (AREA)
Abstract
本申请实施例提供一种数据处理方法及相关装置,应用于数据处理系统,该方法包括:第一SOC接收第一数据采集信号,以及第一SOC根据第一数据采集信号进行数据采集得到第一采集数据;第一SOC向第二SOC发送PCIe数据传输请求,PCIe数据传输请求用于传输第一采集数据;第二SOC在接收到PCIe数据传输请求后,向DMA控制器发送第一数据传输请求;第二SOC通过DMA控制器根据第一数据传输请求访问第一SOC的内存对第一采集数据进行传输,以获取第一采集数据,提升了第一SOC和第二SOC之间数据传输时的效率。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及一种数据处理方法及相关装置。
背景技术
在现有多芯片系统中芯片之间的数据交互方法有多种方式,通常使用的方式有通过通讯接口(UART、I2C、SPI等)来进行数据传输,采用上述方式进行数据传输时的最大传输速率较低,从而使得多个SOC之间进行数据传输效率较低,同时,SOC之间进行数据传输时需要CPU来进行参与数据传输,通常情况下内存的速度远远大于CPU运行的速度,因此,极大的增加了数据传输的时间,使得数据传输的效率较低。
发明内容
本申请实施例提供一种数据处理方法及相关装置,能够通过直接存储器访问DMA控制器来访问内存,以对第一SOC和第二SOC之间的数据进行传输,减少了CPU参与数据传输的动作,从而提升了第一SOC和第二SOC之间数据传输时的效率。
本申请实施例的第一方面提供了一种数据处理方法,应用于数据处理系统,所述数据处理系统包括第一片上系统SOC和第二SOC,所述第一SOC和所述第二SOC通过高速串行计算机扩展总线标准PCIe的接口相连接,所述第二SOC包括直接存储器访问DMA控制器,所述方法包括:
所述第一SOC接收第一数据采集信号,以及所述第一SOC根据所述第一数据采集信号进行数据采集得到第一采集数据;
所述第一SOC向所述第二SOC发送PCIe数据传输请求,PCIe数据传输请求用于传输所述第一采集数据;
所述第二SOC在接收到所述PCIe数据传输请求后,向所述DMA控制器发送第一数据传输请求;
所述第二SOC通过所述DMA控制器根据所述第一数据传输请求访问所述第一SOC的内存对所述第一采集数据进行传输,以获取所述第一采集数据。
在一个可能的实现方式中,所述第二SOC包括模拟FIFO寄存器,所述第二SOC通过所述FIFO寄存器从所述第一SOC传输的第一采集数据,所述方法还包括:
所述第二SOC从所述FIFO寄存器中读取第一采集数据时,判断所述FIFO寄存器的溢出标志是否标记;
若所述FIFO寄存器的溢出标志未被标记,则读取所述FIFO寄存器中的第一采集数据;
对所述第一采集数据进行数据处理,以得到数据处理结果;
若所述FIFO寄存器的溢出标志被标记,则将所述FIFO寄存器的读指针偏移所述第一采集数据的数据长度对应的数值。
在一个可能的实现方式中,所述方法还包括:
若所述FIFO寄存器的溢出标志被标记,则所述第二SOC获取所述FIFO寄存器的溢出位置;
所述第二SOC展示所述溢出位置。
在一个可能的实现方式中,所述第二SOC包括所述PCIe中断服务回调函数和DMA中断服务回调函数,方法还包括:
所述第二SOC在PCIe中断服务回调函数中在对DMA控制器进行初始化后向第一SOC发送第二数据采集信号,指示所述第一SOC获取第二采集数据;
所述第二SOC所述DMA中断服务回调函数中对读取到所述第一采集数据进行数据处理,以得到数据处理结果。
在一个可能的实现方式中,所述方法还包括:
所述第二SOC构建所述PCIe中断服务回调函数和DMA中断服务回调函数。
本申请实施例的第二方面提供了一种数据处理系统,所述数据处理系统包括第一片上系统SOC和第二SOC,所述第一SOC和所述第二SOC通过高速串行计算机扩展总线标准PCIe的接口相连接,所述第二SOC包括直接存储器访问DMA控制器,所述系统包括:
采集单元,用于通过所述第一SOC接收第一数据采集信号,以及所述第一SOC根据所述第一数据采集信号进行数据采集得到第一采集数据;
第一发送单元,用于通过所述第一SOC向所述第二SOC发送PCIe数据传输请求,PCIe数据传输请求用于传输所述第一采集数据;
第二发送单元,用于通过所述第二SOC在接收到所述PCIe数据传输请求后,向所述DMA控制器发送第一数据传输请求;
获取单元,用于通过所述第二SOC通过所述DMA控制器根据所述第一数据传输请求访问所述第一SOC的内存对所述第一采集数据进行传输,以获取所述第一采集数据。
在一个可能的实现方式中,所述第二SOC包括模拟FIFO寄存器,所述第二SOC通过所述FIFO寄存器从所述第一SOC传输的第一采集数据,所述系统还用于:
通过所述第二SOC从所述FIFO寄存器中读取第一采集数据时,判断所述FIFO寄存器的溢出标志是否标记;
若所述FIFO寄存器的溢出标志未被标记,则读取所述FIFO寄存器中的第一采集数据;
对所述第一采集数据进行数据处理,以得到数据处理结果;
若所述FIFO寄存器的溢出标志被标记,则将所述FIFO寄存器的读指针偏移所述第一采集数据的数据长度对应的数值。
在一个可能的实现方式中,所述系统还用于:
若所述FIFO寄存器的溢出标志被标记,则通过所述第二SOC获取所述FIFO寄存器的溢出位置;
通过所述第二SOC展示所述溢出位置。
在一个可能的实现方式中,所述第二SOC包括所述PCIe中断服务回调函数和DMA中断服务回调函数,所述系统还用于:
通过所述第二SOC在PCIe中断服务回调函数中在对DMA控制器进行初始化后向第一SOC发送第二数据采集信号,指示所述第一SOC获取第二采集数据;
通过所述第二SOC所述DMA中断服务回调函数中对读取到所述第一采集数据进行数据处理,以得到数据处理结果。
在一个可能的实现方式中,所述系统还用于:
通过所述第二SOC构建所述PCIe中断服务回调函数和DMA中断服务回调函数。
本申请实施例的第三方面提供一种芯片系统,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如本申请实施例第一方面中的步骤指令。
本申请实施例的第四方面提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。
本申请实施例的第五方面提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
实施本申请实施例,至少具有如下有益效果:
通过第一SOC接收第一数据采集信号,以及所述第一SOC根据所述第一数据采集信号进行数据采集得到第一采集数据,所述第一SOC向所述第二SOC发送PCIe数据传输请求,PCIe数据传输请求用于传输所述第一采集数据,所述第二SOC在接收到所述PCIe数据传输请求后,向所述DMA控制器发送第一数据传输请求,所述第二SOC通过所述DMA控制器根据所述第一数据传输请求访问所述第一SOC的内存对所述第一采集数据进行传输,以获取所述第一采集数据,因此,能够通过直接存储器访问DMA控制器来访问内存,以对第一SOC和第二SOC之间的数据进行传输,减少了CPU参与数据传输的动作,从而提升了第一SOC和第二SOC之间数据传输时的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A为本申请实施例提供了一种数据处理方法的流程示意图;
图1B为本申请实施例提供了一种FIFO寄存器的读、写指针的位置示意图;
图1C为本申请实施例提供了一种数据处理系统的控制结构示意图
图2为本申请实施例提供了另一种数据处理方法的流程示意图;
图3为本申请实施例提供的一种芯片系统的结构示意图;
图4为本申请实施例提供了一种数据处理系统的结构示意图。
具体实施方式
为下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
为了更好的理解本申请实施例提供的数据处理方法,下面首先对数据处理系统进行简要介绍。数据处理系统包括第一SOC和第二SOC,第一SOC和所述第二SOC通过高速串行计算机扩展总线标准PCIe的接口相连接,所述第二SOC包括直接存储器访问DMA控制器。第二SOC在接收到第一SOC发送的PCIe数据传输请求后,向DMA控制器发送第一数据传输请求,第二SOC通过DMA控制器根据第一数据传输请求访问第一SOC的内存对第一采集数据进行传输,以获取第一采集数据,因此,能够通过直接存储器访问DMA控制器来访问内存,以对第一SOC和第二SOC之间的数据进行传输,减少了CPU参与数据传输的动作,从而提升了第一SOC和第二SOC之间数据传输时的效率。
该数据处理系统可以应用于EIT(生物电阻抗成像)产品中,该EIT产品中包括有FPGA采集板卡(第一SOC)和ARM(第二SOC),其中,FPGA采集板卡可以用于进行数据采集,并将采集的数据发送至ARM,ARM进行数据处理,FPGA采集板卡(第一SOC)和ARM(第二SOC集成在同一个系统板块中。
请参阅图1A,图1A为本申请实施例提供了一种数据处理方法的流程示意图。如图1A所示,该方法应用于数据处理系统,所述数据处理系统包括第一片上系统SOC和第二SOC,所述第一SOC和所述第二SOC通过高速串行计算机扩展总线标准PCIe的接口相连接,由于PCIe Gen2具有极高的原始传输率(5.0GT/s)作为数据传输的基础,从而相对于现有方案中采用UART、I2C、SPI接口(上述接口的传输速率通常低于1Gbps)的方式进行数据传输可以实现对数据的高速传输,从而提升第一SOC与第二SOC之间进行数据传输的效率,节省传输时间。第二SOC包括直接存储器访问DMA控制器,DMA控制器用于控制DMA通道,DMA的用于将数据从一个地址空间复制到另一个地址空间,通常在第二SOC支持多条DMA通道,所以在针对第二SOC的PCIe驱动中添加了对应的DMA功能并且做出地址空间的映射,第二SOC在此基础上进行PCIe数据传输,该数据处理方法包括:
101、所述第一SOC接收第一数据采集信号,以及所述第一SOC根据所述第一数据采集信号进行数据采集得到第一采集数据。
所述第一SOC和所述第二SOC通过高速串行计算机扩展总线标准PCIe的接口相连接,第一SOC和所述第二SOC可以通过PCIe的接口进行数据传输,因此,第一SOC可以通过PCIe的接口接收第一数据采集信号,该第一数据采集信号指示第一SOC进行数据采集,以得到第一采集数据。第一采集数据可以是第一SOC所能采集的数据中的一种,例如,第一SOC可以与多种采集装置相连接,该采集装置对应能够采集的数据则可以为第一SOC能够采集的数据。
102、所述第一SOC向所述第二SOC发送PCIe数据传输请求,PCIe数据传输请求用于传输所述第一采集数据。
第一SOC向第二SOC发送PCIe数据传输请求的同时还可以发送中断信号,以通知第二SOC进行数据传输。
103、所述第二SOC在接收到所述PCIe数据传输请求后,向所述DMA控制器发送第一数据传输请求。
由于在现有的方案中,第二SOC接收到PCIe数据传输请求和中断信号之后,第二SOC中的CPU需要先将数据复制到暂存器中,再将数据写入到内存中,因此会导致由于CPU的暂用,导致了CPU在此期间无法进行其余数据的处理,或者进行其他动作,同时,由于内存的运行速度远远大于CPU的运行速度,所以造成了内存等待的情况,从而使得数据处理系统整体运行的效率降低。而本申请的技术方案为第二SOC接收到PCIe数据传输请求和中断信号之后,向DMA控制器发送第一数据传输请求,请求DMA控制器从第一SOC的内存中提取出第一采集数据,并通过PCIe的接口传输该第一采集数据至第二SOC,从而无需CPU在数据传输期间对第一采集数据进行复制,再进行写入的动作,减少了CPU的占用率,同时DMA控制器直接从内存中提取第一采集数据并进行传输,也极大的减少了数据处理的时间,进而减少了数据传输的时间,提升了传输效率。
104、所述第二SOC通过所述DMA控制器根据所述第一数据传输请求访问所述第一SOC的内存对所述第一采集数据进行传输,以获取所述第一采集数据。
DMA控制器在接收到第一数据传输请求后,向数据处理系统的总线裁决逻辑提出总线请求,在等待CPU执行完当前总线周期后,总线裁决逻辑输出总线应答,在DMA控制器获取到了总线控制权后,第二SOC就可以通过DMA控制器直接访问内存进行获取第一采集数据,并通过PCIe的接口对第一采集数据进行传输。
本示例中,通过第一SOC接收第一数据采集信号,以及所述第一SOC根据所述第一数据采集信号进行数据采集得到第一采集数据,所述第一SOC向所述第二SOC发送PCIe数据传输请求,PCIe数据传输请求用于传输所述第一采集数据,所述第二SOC在接收到所述PCIe数据传输请求后,向所述DMA控制器发送第一数据传输请求,所述第二SOC通过所述DMA控制器根据所述第一数据传输请求访问所述第一SOC的内存对所述第一采集数据进行传输,以获取所述第一采集数据,因此,能够通过直接存储器访问DMA控制器来访问内存,以对第一SOC和第二SOC之间的数据进行传输,减少了CPU参与数据传输的动作,从而提升了第一SOC和第二SOC之间数据传输时的效率。
在一个可能的实现方式中,第二SOC包括模拟FIFO(先进先出算法,First InputFirst Output)寄存器,所述第二SOC通过所述FIFO寄存器暂存所述第一SOC传输的第一采集数据,从而第二SOC可以从FIFO寄存器中读取第一采集数据,具体如下:
A1、所述第二SOC从所述FIFO寄存器中读取第一采集数据时,判断所述FIFO寄存器的溢出标志是否标记;
A2、若所述FIFO寄存器的溢出标志未被标记,则读取所述FIFO寄存器中的第一采集数据;
A3、对所述第一采集数据进行数据处理,以得到数据处理结果;
A4、若所述FIFO寄存器的溢出标志被标记,则将所述FIFO寄存器的读指针偏移所述第一采集数据的数据长度对应的数值。
其中,FIFO寄存器是通过内存模拟一个FIFO寄存器,其用于对采集到的数据进行缓存,具体可以为:在内存中申请出比规定的数据读取长(预先设定的数据读取长度)度五倍的数据空间来模拟一个深度为五的FIFO寄存器,再创建读指针、写指针、数据长度、错误标志、溢出标志的结构体等,对创建的FIFO寄存器进行管理。
在第二SOC从所述FIFO寄存器中读取第一采集数据时,依据FIFO寄存器的写指针来判断数据写入的地址,数据传输完成后对写入的数据长度进行记录,同时向后偏移数据长度大小的FIFO寄存器的写指针,如果在数据传输后FIFO寄存器写指针的位置位于读指针的前方则对FIFO寄存器的溢出标志进行标记,从而指示该FIFO寄存器溢出。
因此,在进行数据读取时,可以直接判断溢出标志是否被标记,在未被标记时,则数据正常存储,可以直接读取第一采集数据,并对第一采集数据进行后续的处理。若FIFO寄存器的溢出标志被标记,则将FIFO寄存器的读指针偏移第一采集数据的数据长度对应的数值,从而避免了数据覆盖的问题,提升了数据处理是的可靠性。如图1B所示,图1B示出了FIFO寄存器正常存储是的读指针和写指针的位置,以及FIFO寄存器溢出时读指针和写指针的位置,以及FIFO寄存器为空时的读指针和写指针的位置。
当如果在此次读取的过程中发生了错误,将对此次FIFO寄存器的错误标志进行标记,以指示此次读取中发生了读取错误。
在一个可能的实现方式中,在FIFO寄存器出现溢出时,还可以对其溢出位置进行展示,具体可以为:
B1、若所述FIFO寄存器的溢出标志被标记,则所述第二SOC获取所述FIFO寄存器的溢出位置;
B2、所述第二SOC展示所述溢出位置。
其中,在FIFO寄存器的溢出位置可以根据读指针和写指针的位置来确定出溢出位置,在溢出后,则将FIFO寄存器的读指针偏移第一采集数据的数据长度对应的数值,从而使得后续进行读写时避免数据覆盖的情况。同时第二SOC展示该溢出位置,能够使得用户获知溢出位置,从而提升了后续进行异常处理时的便捷性。
在一个具体的实现方式中,所述第二SOC构建所述PCIe中断服务回调函数和DMA中断服务回调函数。
在一个可能的实现方式中,所述第二SOC包括所述PCIe中断服务回调函数和DMA中断服务回调函数,所述本申请实施例还提供如下方法:
C1、所述第二SOC在PCIe中断服务回调函数中在对DMA控制器进行初始化后向第一SOC发送第二数据采集信号,指示所述第一SOC获取第二采集数据;
C2、所述第二SOC所述DMA中断服务回调函数中对读取到所述第一采集数据进行数据处理,以得到数据处理结果。
由于第一SOC进行数据的采集时,第二SOC通常都采用阻塞的方式等待第一SOC数据采集的完成,在采集完成之后再发起PCIe数据读取的操作,读取采集的数据,而第一SOC在第二SOC进行数据读取和处理的过程中也采用阻塞等待的方式等待第二SOC发送的启动信号(数据采集信息),从而导致了数据处理系统在进行数据处理时的效率。因此,通过构建PCIe中断服务回调函数和DMA中断服务回调函数的方式,并且在CIe中断服务回调函数中在对DMA控制器进行初始化后向第一SOC发送第二数据采集信号,DMA中断服务回调函数中对读取到所述第一采集数据进行数据处理,以得到数据处理结果,从而解决了第二SOC与第一SOC之间相互阻塞产生的系统效率低的问题,极大的提升了系统的运行效率。在得到数据处理结果后,还可以通过UI界面展示该数据处理结果。如图1C所示,图1C中示出了数据处理系统的控制结构示意图。其中,ARM为第二SOC,FPGA为第一SOC,第二SOC发送数据采集信号,第一SOC接收到该信号之后,进行数据采集,并写DDR,在写入完成后,第一SOC发送数据传输请求和中断信号,第二SOC接收到数据传输请求和中断信号后进行数据处理,通过PCIe读取DDR中的数据,然后进行数据处理,其中,第二SOC进行数据读取和处理时,第一SOC可以进行下一次的数据采集等操作。
请参阅图2,图2为本申请实施例提供了一种数据处理方法的流程示意图。如图2所示,该方法应用于数据处理系统,所述数据处理系统包括第一片上系统SOC和第二SOC,所述第一SOC和所述第二SOC通过高速串行计算机扩展总线标准PCIe的接口相连接,由于PCIeGen2具有极高的原始传输率(5.0GT/s)作为数据传输的基础,从而相对于现有方案中采用UART、I2C、SPI接口(上述接口的传输速率通常低于1Gbps)的方式进行数据传输可以实现对数据的高速传输,从而提升第一SOC与第二SOC之间进行数据传输的效率,节省传输时间第二SOC包括直接存储器访问DMA控制器,DMA控制器用于控制DMA通道,DMA的用于将数据从一个地址空间复制到另一个地址空间,通常在第二SOC支持多条DMA通道,所以在针对第二SOC的PCIe驱动中添加了对应的DMA功能并且做出地址空间的映射,第二SOC在此基础上进行PCIe数据传输,该数据处理方法包括:
201、所述第一SOC接收第一数据采集信号,以及所述第一SOC根据所述第一数据采集信号进行数据采集得到第一采集数据;
202、所述第一SOC向所述第二SOC发送PCIe数据传输请求,PCIe数据传输请求用于传输所述第一采集数据;
203、所述第二SOC在接收到所述PCIe数据传输请求后,向所述DMA控制器发送第一数据传输请求;
204、所述第二SOC通过所述DMA控制器根据所述第一数据传输请求访问所述第一SOC的内存对所述第一采集数据进行传输,以获取所述第一采集数据;
205、所述第二SOC从所述FIFO寄存器中读取第一采集数据时,判断所述FIFO寄存器的溢出标志是否标记;
206、若所述FIFO寄存器的溢出标志未被标记,则读取所述FIFO寄存器中的第一采集数据;
207、对所述第一采集数据进行数据处理,以得到数据处理结果;
208、若所述FIFO寄存器的溢出标志被标记,则将所述FIFO寄存器的读指针偏移所述第一采集数据的数据长度对应的数值。
本示例中,在进行数据读取时,可以直接判断溢出标志是否被标记,在未被标记时,则数据正常存储,可以直接读取第一采集数据,并对第一采集数据进行后续的处理。若FIFO寄存器的溢出标志被标记,则将FIFO寄存器的读指针偏移第一采集数据的数据长度对应的数值,从而避免了数据覆盖的问题,提升了数据处理是的可靠性。
与上述实施例一致的,请参阅图3,图3为本申请实施例提供的一种芯片系统的结构示意图,如图所示,包括处理器、输入设备、输出设备和存储器,处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,上述程序包括用于执行以下步骤的指令;
所述第一SOC接收第一数据采集信号,以及所述第一SOC根据所述第一数据采集信号进行数据采集得到第一采集数据;
所述第一SOC向所述第二SOC发送PCIe数据传输请求,PCIe数据传输请求用于传输所述第一采集数据;
所述第二SOC在接收到所述PCIe数据传输请求后,向所述DMA控制器发送第一数据传输请求;
所述第二SOC通过所述DMA控制器根据所述第一数据传输请求访问所述第一SOC的内存对所述第一采集数据进行传输,以获取所述第一采集数据。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,终端为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对终端进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
与上述一致的,请参阅图4,图4为本申请实施例提供了一种数据处理系统的结构示意图。如图4所示,所述数据处理系统包括第一片上系统SOC和第二SOC,所述第一SOC和所述第二SOC通过高速串行计算机扩展总线标准PCIe的接口相连接,所述第二SOC包括直接存储器访问DMA控制器,所述系统包括:
采集单元401,用于通过所述第一SOC接收第一数据采集信号,以及所述第一SOC根据所述第一数据采集信号进行数据采集得到第一采集数据;
第一发送单元402,用于通过所述第一SOC向所述第二SOC发送PCIe数据传输请求,PCIe数据传输请求用于传输所述第一采集数据;
第二发送单元403,用于通过所述第二SOC在接收到所述PCIe数据传输请求后,向所述DMA控制器发送第一数据传输请求;
获取单元404,用于通过所述第二SOC通过所述DMA控制器根据所述第一数据传输请求访问所述第一SOC的内存对所述第一采集数据进行传输,以获取所述第一采集数据。
在一个可能的实现方式中,所述第二SOC包括模拟FIFO寄存器,所述第二SOC通过所述FIFO寄存器从所述第一SOC传输的第一采集数据,所述系统还用于:
通过所述第二SOC从所述FIFO寄存器中读取第一采集数据时,判断所述FIFO寄存器的溢出标志是否标记;
若所述FIFO寄存器的溢出标志未被标记,则读取所述FIFO寄存器中的第一采集数据;
对所述第一采集数据进行数据处理,以得到数据处理结果;
若所述FIFO寄存器的溢出标志被标记,则将所述FIFO寄存器的读指针偏移所述第一采集数据的数据长度对应的数值。
在一个可能的实现方式中,所述系统还用于:
若所述FIFO寄存器的溢出标志被标记,则通过所述第二SOC获取所述FIFO寄存器的溢出位置;
通过所述第二SOC展示所述溢出位置。
在一个可能的实现方式中,所述第二SOC包括所述PCIe中断服务回调函数和DMA中断服务回调函数,所述系统还用于:
通过所述第二SOC在PCIe中断服务回调函数中在对DMA控制器进行初始化后向第一SOC发送第二数据采集信号,指示所述第一SOC获取第二采集数据;
通过所述第二SOC所述DMA中断服务回调函数中对读取到所述第一采集数据进行数据处理,以得到数据处理结果。
在一个可能的实现方式中,所述系统还用于:
通过所述第二SOC构建所述PCIe中断服务回调函数和DMA中断服务回调函数。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种数据处理方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种数据处理方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在申请明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括闪存盘、只读存储器、随机存取器、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据处理方法,其特征在于,应用于数据处理系统,所述数据处理系统包括第一SOC和第二SOC,所述第一SOC和所述第二SOC通过高速串行计算机扩展总线标准PCIe的接口相连接,所述第二SOC包括直接存储器访问DMA控制器,所述方法包括:
所述第一SOC接收第一数据采集信号,以及所述第一SOC根据所述第一数据采集信号进行数据采集得到第一采集数据;
所述第一SOC向所述第二SOC发送PCIe数据传输请求,PCIe数据传输请求用于传输所述第一采集数据;
所述第二SOC在接收到所述PCIe数据传输请求后,向所述DMA控制器发送第一数据传输请求;
所述第二SOC通过所述DMA控制器根据所述第一数据传输请求访问所述第一SOC的内存对所述第一采集数据进行传输,以获取所述第一采集数据。
2.根据权利要求1所述的方法,其特征在于,所述第二SOC包括模拟FIFO寄存器,所述第二SOC通过所述FIFO寄存器暂存所述第一SOC传输的第一采集数据,所述方法还包括:
所述第二SOC从所述FIFO寄存器中读取第一采集数据时,判断所述FIFO寄存器的溢出标志是否标记;
若所述FIFO寄存器的溢出标志未被标记,则读取所述FIFO寄存器中的第一采集数据;
对所述第一采集数据进行数据处理,以得到数据处理结果;
若所述FIFO寄存器的溢出标志被标记,则将所述FIFO寄存器的读指针偏移所述第一采集数据的数据长度对应的数值。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述FIFO寄存器的溢出标志被标记,则所述第二SOC获取所述FIFO寄存器的溢出位置;
所述第二SOC展示所述溢出位置。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述第二SOC包括所述PCIe中断服务回调函数和DMA中断服务回调函数,所述方法还包括:
所述第二SOC在PCIe中断服务回调函数中在对DMA控制器进行初始化后向第一SOC发送第二数据采集信号,指示所述第一SOC获取第二采集数据;
所述第二SOC所述DMA中断服务回调函数中对读取到所述第一采集数据进行数据处理,以得到数据处理结果。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述第二SOC构建所述PCIe中断服务回调函数和DMA中断服务回调函数。
6.一种数据处理系统,其特征在于,所述数据处理系统包括第一SOC和第二SOC,所述第一SOC和所述第二SOC通过高速串行计算机扩展总线标准PCIe的接口相连接,所述第二SOC包括直接存储器访问DMA控制器,所述系统包括:
采集单元,用于通过所述第一SOC接收第一数据采集信号,以及所述第一SOC根据所述第一数据采集信号进行数据采集得到第一采集数据;
第一发送单元,用于通过所述第一SOC向所述第二SOC发送PCIe数据传输请求,PCIe数据传输请求用于传输所述第一采集数据;
第二发送单元,用于通过所述第二SOC在接收到所述PCIe数据传输请求后,向所述DMA控制器发送第一数据传输请求;
获取单元,用于通过所述第二SOC通过所述DMA控制器根据所述第一数据传输请求访问所述第一SOC的内存对所述第一采集数据进行传输,以获取所述第一采集数据。
7.根据权利要求6所述的系统,其特征在于,所述第二SOC包括模拟FIFO寄存器,所述第二SOC通过所述FIFO寄存器从所述第一SOC传输的第一采集数据,所述系统还用于:
通过所述第二SOC从所述FIFO寄存器中读取第一采集数据时,判断所述FIFO寄存器的溢出标志是否标记;
若所述FIFO寄存器的溢出标志未被标记,则读取所述FIFO寄存器中的第一采集数据;
对所述第一采集数据进行数据处理,以得到数据处理结果;
若所述FIFO寄存器的溢出标志被标记,则将所述FIFO寄存器的读指针偏移所述第一采集数据的数据长度对应的数值。
8.根据权利要求7所述的系统,其特征在于,所述系统还用于:
若所述FIFO寄存器的溢出标志被标记,则所述第二SOC获取所述FIFO寄存器的溢出位置;
所述第二SOC展示所述溢出位置。
9.一种芯片系统,其特征在于,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-5任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310006404.0A CN116340217A (zh) | 2023-01-04 | 2023-01-04 | 数据处理方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310006404.0A CN116340217A (zh) | 2023-01-04 | 2023-01-04 | 数据处理方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116340217A true CN116340217A (zh) | 2023-06-27 |
Family
ID=86875418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310006404.0A Pending CN116340217A (zh) | 2023-01-04 | 2023-01-04 | 数据处理方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116340217A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117851303A (zh) * | 2023-12-28 | 2024-04-09 | 深圳市中承科技有限公司 | 一种多线程dma的高速数据传输方法及系统 |
-
2023
- 2023-01-04 CN CN202310006404.0A patent/CN116340217A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117851303A (zh) * | 2023-12-28 | 2024-04-09 | 深圳市中承科技有限公司 | 一种多线程dma的高速数据传输方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1730644B1 (en) | Deadlock avoidance in a bus fabric | |
KR101932920B1 (ko) | 비휘발성 메모리 카드를 제어하는 호스트, 이를 포함하는 시스템 및 이의 동작 방법 | |
CN108268414B (zh) | 基于spi模式的sd卡驱动器及其控制方法 | |
JP2004171209A (ja) | 共有メモリデータ転送装置 | |
JPH02227766A (ja) | デジタル・コンピユータのデータ転送装置 | |
JPH02227765A (ja) | デジタル・コンピユータのデータ転送装置 | |
US7263572B2 (en) | Bus bridge and data transfer method | |
CN110765058A (zh) | Gpio实现spi从机功能方法、系统、设备及介质 | |
CN103617138A (zh) | 多主机仲裁方法及多主机通信系统 | |
CN102073611B (zh) | 一种i2c总线控制系统及方法 | |
CN101160569A (zh) | 改进具有多个存储器控制器的电路的带宽的设备 | |
US20030046473A1 (en) | Method and interface for improved efficiency in performing bus-to-bus read data transfers | |
CN116340217A (zh) | 数据处理方法及相关装置 | |
US20020078282A1 (en) | Target directed completion for bus transactions | |
CN114691023A (zh) | 读写设备的读写操作方法、读写设备及可读存储介质 | |
CN101976230B (zh) | 通用序列总线传输转译器及输入请求同步传输方法 | |
CN115794701A (zh) | 一种dma功能虚拟串口的bmc芯片及方法 | |
CN115794713A (zh) | Axi总线读写事务均衡方法、装置、电子设备及介质 | |
KR101260313B1 (ko) | 전자장치 및 그 데이터 송수신방법과, 슬레이브 장치 및복수의 장치 간의 통신방법 | |
CN100365606C (zh) | 安全数字存储卡数据的存储器直接存取方法及其接口电路 | |
CN115237349A (zh) | 数据读写控制方法、控制装置、计算机存储介质和电子设备 | |
CN112835834B (zh) | 数据传输系统 | |
CN111579973B (zh) | 芯片同步测试方法、芯片、电子设备及存储介质 | |
CN118363901B (zh) | PCIe设备、电子组件及电子设备 | |
CN110399322B (zh) | 一种数据传输方法及乒乓dma架构 |
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 |