CN116701284B - 一种cpu间数据高速同步方法、装置、设备及介质 - Google Patents
一种cpu间数据高速同步方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116701284B CN116701284B CN202310762338.XA CN202310762338A CN116701284B CN 116701284 B CN116701284 B CN 116701284B CN 202310762338 A CN202310762338 A CN 202310762338A CN 116701284 B CN116701284 B CN 116701284B
- Authority
- CN
- China
- Prior art keywords
- cpu
- data
- memory
- transmitting
- spi
- 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
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000005540 biological transmission Effects 0.000 claims description 82
- 230000002093 peripheral effect Effects 0.000 claims description 22
- 238000012795 verification Methods 0.000 claims description 14
- 238000012546 transfer Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 238000012937 correction Methods 0.000 claims description 2
- 230000001360 synchronised effect Effects 0.000 abstract description 9
- 238000012545 processing Methods 0.000 abstract description 4
- 230000006854 communication Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 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
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4295—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
-
- 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/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7864—Architectures of general purpose stored program computers comprising a single central processing unit with memory on more than one IC chip
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请提供了一种CPU间数据高速同步方法、装置、设备及介质,涉及数据处理技术领域,将协同工作的第一CPU和第二CPU均划分出发送内存和接收内存;其中,所述发送内存和所述接收内存的内存大小相同;在所述第一CPU作为发送端以及所述第二CPU接收端时,将应用数据实时同步至所述第一CPU的所述发送内存中;将所述第一CPU的所述发送内存中的应用数据通过SPI接口循环发送至所述第二CPU,并且将所述第二CPU将接收到的应用数据存储至其所述接收内存中,从而使协同工作的两个CPU之间,无需软件干预即可基于SPI进行数据的高速传输,进而提高系统的工作效率。
Description
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种CPU间数据高速同步方法、装置、设备及介质。
背景技术
嵌入式系统是由多个CPU组成的电子系统,常用于控制、监控、通讯等领域。在嵌入式系统中,多个CPU需要协同工作,完成各种任务。为了确保系统的正常运行,需要对数据进行传输,保证各个CPU在时限内获取有效数据。CPU间数据传输需要考虑传输速率、数据稳定性、数据同步以及实现复杂程度等问题。常用的传输方法是各类通信接口,如串口、USB、CAN、网口等,这些数据通信传输速率和方式各异,适用的场合也不尽一致,但无一例外的都需要有软件的介入,消耗一定的计算资源才能实现,并且传输速率较低。
发明内容
鉴于此,本申请的目的在于提供一种CPU间数据高速同步方法、装置、设备及介质,数据基于SPI传输,不使用软件就能够实现CPU之间内存数据的高速同步。
第一方面,本申请实施例提供一种CPU间数据高速同步方法,所述方法包括以下步骤:
将协同工作的第一CPU和第二CPU均划分出发送内存和接收内存;其中,所述发送内存和所述接收内存的内存大小相同;
在所述第一CPU作为发送端以及所述第二CPU作为接收端时,将应用数据实时同步至所述第一CPU的所述发送内存中;
将所述第一CPU的所述发送内存中的应用数据通过SPI接口循环发送至所述第二CPU,并且将所述第二CPU将接收到的应用数据存储至其所述接收内存中。
在一些实施例中,其中,所述应用数据包括外设接口数据,所述将应用数据实时同步至所述第一CPU的所述发送内存中,包括以下步骤:
若所述外设接口数据支持DMA传输,基于硬件的数据触发传输原理,当产生新的数据时,立即启动一次DMA传输,将产生的新数据由外设接口传送到所述第一CPU的所述发送内存中;
若所述外设接口数据不支持DMA传输,将硬件产生的新数据定时拷贝到所述第一CPU的所述发送内存中。
在一些实施例中,所述第一CPU将其所述发送内存中的应用数据通过SPI接口循环发送至所述第二CPU,包括以下步骤:
基于DMA控制器将所述第一CPU的所述发送内存中的应用数据传输至其SPI发送缓存,并且基于基于SPI接口将所述第一CPU的SPI发送缓存中的应用数据传输至所述第二CPU的SPI接收缓存;
基于DMA控制器将所述第二CPU的SPI接收缓存中的应用数据传输至所述第二CPU的接收内存;并且依此,完成所述第一CPU和所述第二CPU之间的数据循环发送和接收。
在一些实施例中,所述基于DMA控制器将所述第一CPU的所述发送内存中的应用数据传输至其SPI发送缓存,并且基于基于SPI接口将所述第一CPU的SPI发送缓存中的应用数据传输至所述第二CPU的SPI接收缓存,包括以下步骤:
在所述第一CPU的所述发送内存中的应用数据中添加校验数据;
基于DMA控制器将所述第一CPU的所述发送内存中的应用数据和校验数据一并传输至其SPI发送缓存;并且基于SPI接口将所述第一CPU的SPI发送缓存中的应用数据和校验数据一并传输至所述第二CPU的SPI接收缓存。
在一些实施例中,所述基于DMA控制器将所述第二CPU的SPI接收缓存中的应用数据传输至所述第二CPU的接收内存,包括以下步骤:
对所述第二CPU接收到的所述校验数据进行验证;
若验证成功,基于DMA控制器将所述第二CPU的SPI接收缓存中的应用数据传输至所述第二CPU的接收内存;若验证失败,重启所述第一CPU的SPI传输过程。
在一些实施例中,所述方法还包括以下步骤:
配置SPI接口的数据传输速度;其中,所述数据传输速度的最大值不超过CPU的工作时钟频率。
第二方面,本申请实施例提供一种CPU间数据高速同步装置,所述装置包括:
初始化模块,用于将协同工作的第一CPU和第二CPU均划分出发送内存和接收内存;其中,所述发送内存和所述接收内存的内存大小相同;
触发模块,用于在所述第一CPU作为发送端以及所述第二CPU作为接收端时,将应用数据实时同步至所述第一CPU的所述发送内存中;
传输模块,用于将所述第一CPU的所述发送内存中的应用数据通过SPI接口循环发送至所述第二CPU,并且将所述第二CPU将接收到的应用数据存储至其所述接收内存中。
在一些实施例中,所述装置还包括:
纠错模块,用于在所述第一CPU的所述发送内存中的应用数据中添加校验数据,以及对所述第二CPU接收到的所述校验数据进行验证。
第三方面,本申请实施例提供的一种电子设备,包括处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面任一项所述的CPU间数据高速同步方法的步骤。
第四方面,本申请实施例提供的一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面任一项所述的CPU间数据高速同步方法的步骤。
本申请所述的一种CPU间数据高速同步方法、装置、设备及介质,将协同工作的第一CPU和第二CPU均划分出发送内存和接收内存;其中,所述发送内存和所述接收内存的内存大小相同;在所述第一CPU作为发送端以及所述第二CPU接收端时,将应用数据实时同步至所述第一CPU的所述发送内存中;将所述第一CPU的所述发送内存中的应用数据通过SPI接口循环发送至所述第二CPU,并且将所述第二CPU将接收到的应用数据存储至其所述接收内存中,从而使协同工作的两个CPU之间,无需软件干预即可基于SPI进行数据的高速传输,进而提高系统的工作效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所述CPU间数据高速同步方法的流程图;
图2示出了本申请实施例两个CPU间基于SPI接口的连接示意图;
图3示出了本申请实施例对两个CPU划分发送内存和接收内存的结构示意图;
图4示出了本申请实施例所述第一CPU将其所述发送内存中的应用数据通过SPI接口循环发送至所述第二CPU的流程图;
图5示出了本申请实施例两个CPU间基于SPI接口进行数据传输的过程示意图;
图6示出了本申请实施例所述CPU间数据高速同步装置的结构示意图;
图7示出了本申请实施例所述电子设备的结构框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
在嵌入式系统中,CPU间获取对方数据的一般方法是:由发起方通过通信接口向接收方发送获取数据的命令,接收方接收到命令后,将需要的数据也通过通信接口发送给发送方。可见,整个过程需要至少来回两个通信过程才能完成,并且如果考虑到通信失败的情况,所需要消耗的时间则会更多,从而大大降低了关键数据获取实时性。基于此,本申请提供一种CPU间数据高速同步方法、装置、设备及介质,能够使协同工作的两个CPU之间,基于SPI进行数据的高速传输,提高系统的工作效率。
参见说明书附图1,本申请实施例提供的一种CPU间数据高速同步方法,包括以下步骤:
S1、将协同工作的第一CPU和第二CPU均划分出发送内存和接收内存;其中,所述发送内存和所述接收内存的内存大小相同;
S2、在所述第一CPU作为发送端以及所述第二CPU接收端时,将应用数据实时同步至所述第一CPU的所述发送内存中;
S3、将所述第一CPU的所述发送内存中的应用数据通过SPI接口循环发送至所述第二CPU,并且将所述第二CPU将接收到的应用数据存储至其所述接收内存中。
本申请实施例提供的一种CPU间数据高速同步方法,主要应用于由多个CPU组成的嵌入式系统,以对系统间的关键数据进行双向同步传输,在本申请实施例中,即是实现所述第一CPU和所述第二CPU之间的高速数据同步,具体的,是在两个CPU之间建立硬件的SPI传输通道,数据采用SPI传输,进而达到两个CPU之间数据双向高速自动传输的目的。
其中,两个CPU间基于SPI接口进行连接的示意图可以参见说明书附图2。所述SPI接口(Serial Peripheral Interface,串行外设接口)是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,分别为MOSI、MISO、CLK和CS,具体的,MISO(Master Input Slave Output)用于主设备数据输入,从设备数据输出;MOSI(Master Output Slave Input)用于主设备数据输出,从设备数据输入;CLK(SerialClock)为时钟信号,由主设备产生;CS(Chip Select)为从设备使能信号,由主设备控制。SPI接口的工作原理应为本领域技术人员所熟知的技术手段,在此不做赘述。而在本申请实施例中,所述主设备可以是发送端的CPU,所述从设备可以是接收端的CPU。
在步骤S1中,由于本申请要采用SPI接口进行数据传输,所以会涉及到两个给定了字长的移位寄存器。在本申请中,是将协同工作的第一CPU和第二CPU均划分出发送内存和接收内存。即,要想实现所述第一CPU和所述第二CPU之间数据的自动化高速传输,就应当根据应用需求,在程序初始化时首先在两个CPU内部各自划分出两块相同大小内存空间,其中一块空间即为发送内存,用于存储本地数据,另一块空间即为接收内存,用于接收来自对方的数据。对于需要传输到对方的数据,需要实时同步到发送内存对应位置。
并且在本申请中,两个CPU之间采用SPI传输的方式,将发送内存的数据循环发送到对端的接收内存内,同时将对端发送的数据存储到接收内存内。因此在初始化时,将本端CPU的SPI设置为主动的循环传输模式,传输大小为前述划分的内存空间大小,配置SPI与发送内存和接收内存之间数据采用DMA传输方式。所述DMA(Direct Memory Access,直接存储器访问)传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM与I/O设备开辟一条直接传送数据的通路,能使CPU的效率大为提高。其传输原理应为本领域技术人员所熟知的技术手段,在此不做赘述。
在初始化时,由于定义了发送内存,该空间的数据会被循环发送到对端。而本地应用中定义的数据分为两种,一种为外设接口数据,如ADC转换数据,定时器计数数据等,这些数据需要同步到发送内存内;另一种为定义在内存其它地址内的数据,这些数据可以和发送内存通过编程语言的联合体的形式定义在同一个地址空间内,无需额外的同步过程,也可以采用数据变化时主动拷贝到发送内存对应地址空间。
所以在步骤S2中,在所述第一CPU作为发送端以及所述第二CPU接收端时,需要将应用数据实时同步至所述第一CPU的所述发送内存中,这里的应用数据主要针对的就是上述第一种数据。通常CPU内部各类外设数据都支持DMA传输,因此基于硬件的数据触发传输原理,当产生新的数据时,立即启动一次DMA传输,将数据由外设端口传送到发送内存内,这个过程也是由硬件自动完成。若外设本身不支持DMA触发传输,则需要由软件定时将数据由外设拷贝到发送内存。
在步骤S3中,参见说明书附图4,所述第一CPU将其所述发送内存中的应用数据通过SPI接口循环发送至所述第二CPU,包括以下步骤:
S301、基于DMA控制器将所述第一CPU的所述发送内存中的应用数据传输至其SPI发送缓存,并且基于基于SPI接口将所述第一CPU的SPI发送缓存中的应用数据传输至所述第二CPU的SPI接收缓存;
S302、基于DMA控制器将所述第二CPU的SPI接收缓存中的应用数据传输至所述第二CPU的接收内存;并且依此,完成所述第一CPU和所述第二CPU之间的数据循环发送和接收。
具体的,可以参见说明书附图5,基于SPI和DMA实现所述第一CPU和所述第二CPU之间的高速数据同步,即DMA完成将发送内存的数据顺序传输到SPI发送缓存和将SPI接收缓存的数据传送到接收内存的工作,四线SPI则自动完成数据的发送和接收。工作过程为:当启动传输之后,作为发送端的第一CPU的SPI通知DMA将第一个待发送的数据传输到SPI发送缓存,数据准备好后就在发送线上将数据发送给作为接收端的第二CPU,第二CPU在接收线上将第一CPU发送的数据接收到接收缓存,接收完成后,第二CPU通知DMA将接收数据传输到接收内存内。在第一个数据完成收发后,立即启动对第二个数据的收发,以此循环。
由于数据的高速同步,实时性高,CPU之间数据传输时延可低于us级,本地CPU可以像使用本地数据一样使用对端CPU的数据,其中,SPI接口的数据传输速度需要在初始化时进行配置,完成整个数据块的传输依赖于该参数,其中,所述数据传输速度的最大值不超过CPU的工作时钟频率。例如,若SPI接口的数据传输速度配置为30MHz,则传输完512字节的数据块所需要的时间为512*8/30Mhz,约为136us。
需要说明的是,在上述实施例中,只是记载了在所述第一CPU作为发送端以及所述第二CPU接收端时,两个CPU之间进行数据传输的过程,在其他实施例中,在所述第一CPU作为接收端以及所述第二CPU发送端时,两个CPU之间进行数据传输的过程相似,在此不做赘述。
进一步的,考虑到SPI传输可能会收到外界的干扰而错位,如果发生一个比特位错位,则会导致所有的数据都错位,这是不可接受的,因此本申请需要对传输数据进行校验。具体的,在所述第一CPU的所述发送内存中的应用数据中添加校验数据;基于DMA控制器将所述第一CPU的所述发送内存中的应用数据和校验数据一并传输至其SPI发送缓存;并且基于SPI接口将所述第一CPU的SPI发送缓存中的应用数据和校验数据一并传输至所述第二CPU的SPI接收缓存;对所述第二CPU接收到的所述校验数据进行验证;若验证成功,基于DMA控制器将所述第二CPU的SPI接收缓存中的应用数据传输至所述第二CPU的接收内存;若校验失败,若验证失败,重启所述第一CPU的SPI传输过程。
在一实施例中,考虑到CRC校验会消耗计算时间,因此在发送内存最后添加固定的4个字节的特定数据,例如,该特定数据为0xAA55AA55,将发送内存中的待发送数据和该特定数据一并发送到对端,对端在使用数据时首先检查最后4字节数据是否为该特定数据,符合,则说明未出现错位,若不符合,则说明数据错位,此时,将重启SPI传输过程,以再次同步数据。同时,本端接收的数据在使用的时候也会先检查接收内存内最后4字节数据是否为该特定数据,以确认数据的合法性。
可见,本申请提供的一种CPU间数据高速同步方法,初始化时,在CPU内部各自划分大小内存空间相同的发送内存和接收内存,同时在CPU之间建立硬件的SPI传输通道,并设置为主动的循环传输模式,即可在启动后,将应用数据实时同步到发送内存中,完成CPU之间的数据循环发送和接收,从而大大提高了系统的工作效率,实现对系统间的关键数据进行双向同步传输。
基于同一发明构思,本申请实施例中还提供了一种CPU间数据高速同步装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述一种CPU间数据高速同步方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
如说明书附图6所示,本申请还提供了一种CPU间数据高速同步装置,所述装置包括:
初始化模块601,用于将协同工作的第一CPU和第二CPU均划分出发送内存和接收内存;其中,所述发送内存和所述接收内存的内存大小相同;
触发模块602,用于在所述第一CPU作为发送端以及所述第二CPU作为接收端时,将应用数据实时同步至所述第一CPU的所述发送内存中;
传输模块603,用于将所述第一CPU的所述发送内存中的应用数据通过SPI接口循环发送至所述第二CPU,并且将所述第二CPU将接收到的应用数据存储至其所述接收内存中。
在一些实施例中,所述应用数据包括外设接口数据,所述触发模块602将应用数据实时同步至所述第一CPU的所述发送内存中,包括:
若所述外设接口数据支持DMA传输,基于硬件的数据触发传输原理,当产生新的数据时,立即启动一次DMA传输,将产生的新数据由外设接口传送到所述第一CPU的所述发送内存中;
若所述外设接口数据不支持DMA传输,将硬件产生的新数据定时拷贝到所述第一CPU的所述发送内存中。
在一些实施例中,所述传输模块603将所述第一CPU的所述发送内存中的应用数据通过SPI接口循环发送至所述第二CPU,包括:
基于DMA控制器将所述第一CPU的所述发送内存中的应用数据传输至其SPI发送缓存,并且基于基于SPI接口将所述第一CPU的SPI发送缓存中的应用数据传输至所述第二CPU的SPI接收缓存;
基于DMA控制器将所述第二CPU的SPI接收缓存中的应用数据传输至所述第二CPU的接收内存;并且依此,完成所述第一CPU和所述第二CPU之间的数据循环发送和接收。
在一些实施例中,所述传输模块603基于DMA控制器将所述第一CPU的所述发送内存中的应用数据传输至其SPI发送缓存,并且基于基于SPI接口将所述第一CPU的SPI发送缓存中的应用数据传输至所述第二CPU的SPI接收缓存,包括:
在所述第一CPU的所述发送内存中的应用数据中添加校验数据;
基于DMA控制器将所述第一CPU的所述发送内存中的应用数据和校验数据一并传输至其SPI发送缓存;并且基于SPI接口将所述第一CPU的SPI发送缓存中的应用数据和校验数据一并传输至所述第二CPU的SPI接收缓存。
在一些实施例中,所述传输模块603基于DMA控制器将所述第二CPU的SPI接收缓存中的应用数据传输至所述第二CPU的接收内存,包括:
对所述第二CPU接收到的所述校验数据进行验证;
若验证成功,基于DMA控制器将所述第二CPU的SPI接收缓存中的应用数据传输至所述第二CPU的接收内存;若校验失败,若验证失败,重启所述第一CPU的SPI传输过程。
本申请提供的一种CPU间数据高速同步装置,通过初始化模块将协同工作的第一CPU和第二CPU均划分出发送内存和接收内存;其中,所述发送内存和所述接收内存的内存大小相同;通过触发模块在所述第一CPU作为发送端以及所述第二CPU接收端时,将应用数据实时同步至所述第一CPU的所述发送内存中;通过传输模块将所述第一CPU的所述发送内存中的应用数据通过SPI接口循环发送至所述第二CPU,并且将所述第二CPU将接收到的应用数据存储至其所述接收内存中,从而使协同工作的两个CPU之间,无需软件干预即可基于SPI进行数据的高速传输,进而提高系统的工作效率。
基于本发明的同一构思,说明书附图7所示,本申请实施例提供的一种电子设备700的结构,该电子设备700包括:至少一个处理器701,至少一个网络接口704或者其他用户接口703,存储器705,至少一个通信总线702。通信总线702用于实现这些组件之间的连接通信。该电子设备700可选的包含用户接口703,包括显示器(例如,触摸屏、LCD、CRT、全息成像(Holographic)或者投影(Projector)等),键盘或者点击设备(例如,鼠标,轨迹球(trackball),触感板或者触摸屏等)。
存储器705可以包括只读存储器和随机存取存储器,并向处理器701提供指令和数据。存储器705的一部分还可以包括非易失性随机存取存储器(NVRAM)。
在一些实施方式中,存储器705存储了如下的元素,可保护模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统7051,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;
应用程序模块7052,包含各种应用程序,例如桌面(launcher)、媒体播放器(MediaPlayer)、浏览器(Browser)等,用于实现各种应用业务。
在本申请实施例中,通过调用存储器705存储的程序或指令,处理器701用于执行如一种CPU间数据高速同步方法中的步骤,能够使协同工作的两个CPU之间,无需软件干预即可基于SPI进行数据的高速传输,进而提高系统的工作效率。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如CPU间数据高速同步方法中的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述CPU间数据高速同步方法。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (8)
1.一种CPU间数据高速同步方法,其特征在于,所述方法包括以下步骤:
将协同工作的第一CPU和第二CPU均划分出发送内存和接收内存;其中,所述发送内存和所述接收内存的内存大小相同;
在所述第一CPU作为发送端以及所述第二CPU作为接收端时,将应用数据实时同步至所述第一CPU的所述发送内存中;其中,所述应用数据包括外设接口数据,并且若所述外设接口数据支持DMA传输,基于硬件的数据触发传输原理,当产生新的数据时,立即启动一次DMA传输,将产生的新数据由外设接口传送到所述第一CPU的所述发送内存中;若所述外设接口数据不支持DMA传输,将硬件产生的新数据定时拷贝到所述第一CPU的所述发送内存中;
将所述第一CPU的所述发送内存中的应用数据通过SPI接口循环发送至所述第二CPU,并且将所述第二CPU将接收到的应用数据存储至其所述接收内存中;其中,基于DMA控制器将所述第一CPU的所述发送内存中的应用数据传输至其SPI发送缓存,并且基于SPI接口将所述第一CPU的SPI发送缓存中的应用数据传输至所述第二CPU的SPI接收缓存;基于DMA控制器将所述第二CPU的SPI接收缓存中的应用数据传输至所述第二CPU的接收内存;并且依此,完成所述第一CPU和所述第二CPU之间的数据循环发送和接收。
2.根据权利要求1所述的一种CPU间数据高速同步方法,其特征在于,所述基于DMA控制器将所述第一CPU的所述发送内存中的应用数据传输至其SPI发送缓存,并且基于SPI接口将所述第一CPU的SPI发送缓存中的应用数据传输至所述第二CPU的SPI接收缓存,包括以下步骤:
在所述第一CPU的所述发送内存中的应用数据中添加校验数据;
基于DMA控制器将所述第一CPU的所述发送内存中的应用数据和校验数据一并传输至其SPI发送缓存;并且基于SPI接口将所述第一CPU的SPI发送缓存中的应用数据和校验数据一并传输至所述第二CPU的SPI接收缓存。
3.根据权利要求2所述的一种CPU间数据高速同步方法,其特征在于,所述基于DMA控制器将所述第二CPU的SPI接收缓存中的应用数据传输至所述第二CPU的接收内存,包括以下步骤:
对所述第二CPU接收到的所述校验数据进行验证;
若验证成功,基于DMA控制器将所述第二CPU的SPI接收缓存中的应用数据传输至所述第二CPU的接收内存;若验证失败,重启所述第一CPU的SPI传输过程。
4.根据权利要求3所述的一种CPU间数据高速同步方法,其特征在于,所述方法还包括以下步骤:
配置SPI接口的数据传输速度;其中,所述数据传输速度的最大值不超过CPU的工作时钟频率。
5.一种CPU间数据高速同步装置,其特征在于,所述装置包括:
初始化模块,用于将协同工作的第一CPU和第二CPU均划分出发送内存和接收内存;其中,所述发送内存和所述接收内存的内存大小相同;
触发模块,用于在所述第一CPU作为发送端以及所述第二CPU作为接收端时,将应用数据实时同步至所述第一CPU的所述发送内存中;其中,所述应用数据包括外设接口数据,并且若所述外设接口数据支持DMA传输,基于硬件的数据触发传输原理,当产生新的数据时,立即启动一次DMA传输,将产生的新数据由外设接口传送到所述第一CPU的所述发送内存中;若所述外设接口数据不支持DMA传输,将硬件产生的新数据定时拷贝到所述第一CPU的所述发送内存中;
传输模块,用于将所述第一CPU的所述发送内存中的应用数据通过SPI接口循环发送至所述第二CPU,并且将所述第二CPU将接收到的应用数据存储至其所述接收内存中;其中,基于DMA控制器将所述第一CPU的所述发送内存中的应用数据传输至其SPI发送缓存,并且基于SPI接口将所述第一CPU的SPI发送缓存中的应用数据传输至所述第二CPU的SPI接收缓存;基于DMA控制器将所述第二CPU的SPI接收缓存中的应用数据传输至所述第二CPU的接收内存;并且依此,完成所述第一CPU和所述第二CPU之间的数据循环发送和接收。
6.根据权利要求5所述的一种CPU间数据高速同步装置,其特征在于,所述装置还包括:
纠错模块,用于在所述第一CPU的所述发送内存中的应用数据中添加校验数据,以及对所述第二CPU接收到的所述校验数据进行验证。
7.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至4任一所述的CPU间数据高速同步方法的步骤。
8.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至4任一所述的CPU间数据高速同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310762338.XA CN116701284B (zh) | 2023-06-26 | 2023-06-26 | 一种cpu间数据高速同步方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310762338.XA CN116701284B (zh) | 2023-06-26 | 2023-06-26 | 一种cpu间数据高速同步方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116701284A CN116701284A (zh) | 2023-09-05 |
CN116701284B true CN116701284B (zh) | 2024-02-09 |
Family
ID=87832265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310762338.XA Active CN116701284B (zh) | 2023-06-26 | 2023-06-26 | 一种cpu间数据高速同步方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116701284B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09305549A (ja) * | 1996-05-21 | 1997-11-28 | Fujitsu Ltd | マルチcpuシステムのデータ処理方法 |
US6044225A (en) * | 1996-03-13 | 2000-03-28 | Diamond Multimedia Systems, Inc. | Multiple parallel digital data stream channel controller |
JP2010198138A (ja) * | 2009-02-23 | 2010-09-09 | Ricoh Co Ltd | データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体 |
CN207817702U (zh) * | 2018-02-24 | 2018-09-04 | 丰郅(上海)新能源科技有限公司 | 用于提高数据处理速度的数据处理系统 |
CN111427821A (zh) * | 2020-03-19 | 2020-07-17 | 深圳震有科技股份有限公司 | 双核amp系统共用spi接口的方法、系统及存储介质 |
CN111737175A (zh) * | 2020-06-12 | 2020-10-02 | 明见(厦门)技术有限公司 | 一种高速spi主从机通信方法、终端设备及存储介质 |
WO2021109707A1 (zh) * | 2019-12-02 | 2021-06-10 | 湖南明康中锦医疗科技发展有限公司 | 多模块通信控制方法及呼吸支持设备 |
CN114328320A (zh) * | 2021-12-30 | 2022-04-12 | 北京航天测控技术有限公司 | 一种dma数据传输方法、装置及系统 |
WO2023061172A1 (zh) * | 2021-10-14 | 2023-04-20 | 华为技术有限公司 | 应用升级方法、装置、计算设备和芯片系统 |
CN116204485A (zh) * | 2021-11-30 | 2023-06-02 | 比亚迪股份有限公司 | 多处理器系统及其通信方法、处理器内核 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9236064B2 (en) * | 2012-02-15 | 2016-01-12 | Microsoft Technology Licensing, Llc | Sample rate converter with automatic anti-aliasing filter |
-
2023
- 2023-06-26 CN CN202310762338.XA patent/CN116701284B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6044225A (en) * | 1996-03-13 | 2000-03-28 | Diamond Multimedia Systems, Inc. | Multiple parallel digital data stream channel controller |
JPH09305549A (ja) * | 1996-05-21 | 1997-11-28 | Fujitsu Ltd | マルチcpuシステムのデータ処理方法 |
JP2010198138A (ja) * | 2009-02-23 | 2010-09-09 | Ricoh Co Ltd | データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体 |
CN207817702U (zh) * | 2018-02-24 | 2018-09-04 | 丰郅(上海)新能源科技有限公司 | 用于提高数据处理速度的数据处理系统 |
WO2021109707A1 (zh) * | 2019-12-02 | 2021-06-10 | 湖南明康中锦医疗科技发展有限公司 | 多模块通信控制方法及呼吸支持设备 |
CN111427821A (zh) * | 2020-03-19 | 2020-07-17 | 深圳震有科技股份有限公司 | 双核amp系统共用spi接口的方法、系统及存储介质 |
CN111737175A (zh) * | 2020-06-12 | 2020-10-02 | 明见(厦门)技术有限公司 | 一种高速spi主从机通信方法、终端设备及存储介质 |
WO2023061172A1 (zh) * | 2021-10-14 | 2023-04-20 | 华为技术有限公司 | 应用升级方法、装置、计算设备和芯片系统 |
CN116204485A (zh) * | 2021-11-30 | 2023-06-02 | 比亚迪股份有限公司 | 多处理器系统及其通信方法、处理器内核 |
CN114328320A (zh) * | 2021-12-30 | 2022-04-12 | 北京航天测控技术有限公司 | 一种dma数据传输方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116701284A (zh) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6145045A (en) | System for sending and receiving data on a Universal Serial Bus (USB) using a memory shared among a number of end points | |
US6678760B2 (en) | Apparatus and method of transmitting and receiving USB isochronous data | |
US4965793A (en) | Method and apparatus for interfacing a system control unit for a multi-processor | |
CN109726163B (zh) | 一种基于spi的通信系统、方法、设备和储存介质 | |
CN111124993B (zh) | 减小i/o处理时缓存数据镜像时延的方法、设备和程序产品 | |
US8386908B2 (en) | Data transmission methods and universal serial bus host controllers utilizing the same | |
US9473273B2 (en) | Memory system capable of increasing data transfer efficiency | |
CN102890622A (zh) | 一种基于协处理器的sata控制器 | |
US7143206B2 (en) | Method for controlling data transfer unit having channel control unit, storage device control unit, and DMA processor | |
CN114826542B (zh) | 基于异步串行通信的数据传输方法、装置、设备及介质 | |
CN1322444C (zh) | 传输和处理命令与数据的方法 | |
US6070208A (en) | Apparatus and method for implementing a versatile USB endpoint pipe | |
JPH02149051A (ja) | 通信リンク・インターフェースの初期化および同期方法および通信リンクの受信機 | |
CN116701284B (zh) | 一种cpu间数据高速同步方法、装置、设备及介质 | |
US5761422A (en) | Transferring address of data in buffer memory between processors using read-only register with respect to second processor | |
JP2001519060A (ja) | コントローラレスモデム | |
US20230137609A1 (en) | Data synchronization method and apparatus | |
CN111427815A (zh) | 一种基于spi接口的核间通讯方法、终端及存储介质 | |
CN111427813A (zh) | 一种基于串口的核间通讯方法、终端及存储介质 | |
CN113986808B (zh) | 一种发送bmc码的方法、系统及计算机设备 | |
JPH0612269A (ja) | バス通信手段 | |
CN116909954A (zh) | Dma控制电路 | |
CN118192759B (zh) | 时钟同步方法、装置、设备及存储介质 | |
CN115729863A (zh) | 数据传输方法、装置、电子设备及介质 | |
CN109165099B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |