CN117827733A - 双核处理器的通讯方法、装置、设备及存储介质 - Google Patents
双核处理器的通讯方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117827733A CN117827733A CN202311592485.3A CN202311592485A CN117827733A CN 117827733 A CN117827733 A CN 117827733A CN 202311592485 A CN202311592485 A CN 202311592485A CN 117827733 A CN117827733 A CN 117827733A
- Authority
- CN
- China
- Prior art keywords
- data
- reading
- writing
- shared memory
- address
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 79
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000012545 processing Methods 0.000 claims abstract description 39
- 230000004044 response Effects 0.000 claims abstract description 34
- 230000005540 biological transmission Effects 0.000 claims abstract description 32
- 238000012795 verification Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 8
- 238000013524 data verification Methods 0.000 claims description 4
- 238000012546 transfer Methods 0.000 claims 2
- 230000009977 dual effect Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
Landscapes
- Multi Processors (AREA)
Abstract
本申请提供了一种双核处理器的通讯方法、装置、设备及存储介质,属于双核通讯技术领域。该方法包括:响应于数据写入端发送的通讯信号,生成临时缓冲区;按照预设方向从共享内存中持续读取数据,并将读取到的数据存入临时缓冲区进行数据处理;响应于读取位置达到结束位置,将读取位置偏移至起始位置继续进行数据读取。当数据的写入或读取到达共享内存尾部时偏移至开头继续写入或读取,将共享内存具象为一种环形区域,一方面双核间以实时写实时读的方式进行通讯可以提升双核处理器的数据传输效率,另一方面数据读取端持续将数据存入临时缓冲区,可以减少双核处理间数据丢失的概率。
Description
技术领域
本申请涉及双核通讯技术领域,特别涉及一种双核处理器的通讯方法、装置、设备及存储介质。
背景技术
双核处理器是指在一个处理器上集成两个运算核心,能够提高处理器的计算能力。通常双核处理器会使用共享内存方式进行双核间通讯,它们拥有共同地址的一段内存,两个处理器有读和写的权限,一般会分为两段进行相互的读和写。
然而,目前的双核通讯通常是以发一包收一包再发一包的形式传输数据,即其中一方写入数据后通知对方读取数据,并暂停数据写入,进入等待队列,当对方完成数据读取后再写入下一数据,直至全部数据写入完成。这种方式会导致当数据量较大时,存在通讯效率慢、数据丢包等异常现象。
发明内容
本申请提供了一种双核处理器的通讯方法、装置、设备及存储介质,能够提升双核处理器的数据传输效率,减少双核处理间数据丢失的概率。该技术方案如下:
一方面,本申请实施例提供了一种双核处理器的通讯方法,应用于双核处理器中的数据读取端,所述方法包括:
响应于数据写入端发送的通讯信号,生成临时缓冲区,所述临时缓冲区用于存放数据;
按照预设方向从共享内存中持续读取数据,并将读取到的数据存入所述临时缓冲区进行数据处理,所述数据写入端用于按照所述预设方向将数据写入所述共享内存,并在写入位置达到所述共享内存的结束位置的情况下,将所述写入位置偏移至所述共享内存的起始位置继续进行数据写入;
响应于读取位置达到所述结束位置,将所述读取位置偏移至所述起始位置继续进行数据读取。
可选的,所述数据写入端用于每写入一包数据后向所述数据读取端发送数据传输信号,所述数据传输信号中包含当前写入地址;
所述按照预设方向从共享内存中持续读取数据,并将读取到的数据存入所述临时缓冲区进行数据处理,包括:
响应于所述当前写入地址与当前读取地址不一致,按照所述预设方向从所述共享内存中读取下一包数据,并将读取到的数据存入所述临时缓冲区进行数据处理;
所述方法还包括:
响应于所述当前写入地址与所述当前读取地址一致,确认数据读取完成,并在数据处理完成后删除所述临时缓冲区。
可选的,所述数据传输信号中还包含所述当前写入地址的写入次数;
所述响应于所述当前写入地址与所述当前读取地址一致,确认数据读取完成,包括:
响应于所述当前写入地址与所述当前读取地址一致,且所述当前写入地址的写入次数与读取次数一致,确认数据读取完成;
所述方法还包括:
响应于所述当前写入地址与所述当前读取地址一致,且所述当前写入地址的写入次数与所述读取次数不一致,向所述数据写入端发送暂停信号,所述数据写入端用于接收到所述暂停信号后暂停数据写入。
可选的,所述数据写入端写入的数据包中包含数据头、数据长度、实际数据以及校验位;
所述按照预设方向从共享内存中持续读取数据,包括:
按照所述预设方向,基于所述数据头以及所述数据长度从所述共享内存中读取数据;
所述将读取到的数据存入所述临时缓冲区进行数据处理,包括:
基于所述校验位对所述临时缓冲区中的数据进行数据校验,并对校验合法的数据进行数据处理。
可选的,所述方法还包括:
响应于读取到一个数据包,将所述共享内存中读取到的数据包进行数据清除。
另一方面,本申请实施例提供了一种双核处理器的通讯方法,应用于双核处理器中的数据写入端,所述方法包括:
向共享内存中写入数据;
向数据读取端发送通讯信号,所述数据读取端用于在接收到所述通讯信号后生成临时缓冲区;
按照预设方向持续将数据写入所述共享内存,所述数据读取端用于按照所述预设方向从所述共享内存中持续读取数据,并将读取到的数据存入所述临时缓冲区进行数据处理;
响应于数据的写入位置达到所述共享内存的结束位置,将所述写入位置偏移至所述共享内存的起始位置继续进行数据写入,所述数据读取端用于在数据的读取位置达到所述结束位置的情况下,将所述读取位置偏移至所述起始位置继续进行数据读取。
可选的,所述按照预设方向持续将数据写入所述共享内存,包括:
响应于完成一个数据包的写入,向所述数据读取端发送数据传输信号,所述数据传输信号中包含当前写入地址;
所述数据读取端用于在所述当前写入地址与当前读取地址不一致的情况下继续进行数据读取,以及在所述当前写入地址与所述当前读取地址一致的情况下确认数据读取完成。
可选的,所述数据传输信号中还包含所述当前写入地址的写入次数;
所述数据读取端用于在所述当前写入地址与所述当前读取地址一致,且所述当前写入地址的写入次数与读取次数一致的情况下,确认数据读取完成,以及在所述当前写入地址与所述当前读取地址一致,且所述当前写入地址的写入次数与所述读取次数不一致的情况下向所述数据写入端发送暂停信号;
所述方法还包括:
响应于所述暂停信号,暂停数据写入。
另一方面,本申请实施例提供了一种双核处理器的通讯装置,应用于双核处理器中的数据读取端,所述装置包括:
生成模块,用于响应于数据写入端发送的通讯信号,生成临时缓冲区,所述临时缓冲区用于存放数据;
读取模块,用于按照预设方向从共享内存中持续读取数据,并将读取到的数据存入所述临时缓冲区进行数据处理,所述数据写入端用于按照所述预设方向将数据写入所述共享内存,并在写入位置达到所述共享内存的结束位置的情况下,将所述写入位置偏移至所述共享内存的起始位置继续进行数据写入;
所述读取模块,还用于响应于读取位置达到所述结束位置,将所述读取位置偏移至所述起始位置继续进行数据读取。
另一方面,本申请实施例提供了一种双核处理器的通讯装置,应用于双核处理器中的数据写入端,所述装置包括:
写入模块,用于向共享内存中写入数据;
发送模块,用于向数据读取端发送通讯信号,所述数据读取端用于在接收到所述通讯信号后生成临时缓冲区;
所述写入模块,还用于按照预设方向持续将数据写入所述共享内存,所述数据读取端用于按照所述预设方向从所述共享内存中持续读取数据,并将读取到的数据存入所述临时缓冲区进行数据处理;
所述写入模块,还用于响应于数据的写入位置达到所述共享内存的结束位置,将所述写入位置偏移至所述共享内存的起始位置继续进行数据写入,所述数据读取端用于在数据的读取位置达到所述结束位置的情况下,将所述读取位置偏移至所述起始位置继续进行数据读取。
另一方面,本申请实施例提供了一种电子设备,所述电子设备包括存储器和处理器;所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时实现如上述方面所述的方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序由处理器加载并执行以实现如上述方面所述的方法。
本申请提供的技术方案至少包括以下有益效果:
本申请提供的双核处理器的通讯方法、装置、设备及存储介质,数据的写入和读取持续进行无需等待一包数据处理完成后再写入下一包数据,当数据的写入或读取到达共享内存尾部时偏移至开头继续写入或读取,将共享内存具象为一种环形区域,并且数据读取端开辟临时缓冲区用于存放未处理的数据,一方面双核间以实时写实时读的方式进行通讯可以提升双核处理器的数据传输效率,另一方面数据读取端持续将数据存入临时缓冲区,能够避免数据量较大的情况下数据写入端的数据被覆盖的情况,可以减少双核处理间数据丢失的概率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。
图1是本申请一个示例性实施例提供的双核处理器的结构示意图;
图2是本申请一个示例性实施例提供的双核处理器的通讯方法的流程图;
图3是本申请一个示例性实施例提供的双核处理器的数据通讯示意图;
图4是本申请另一个示例性实施例提供的双核处理器的通讯方法的流程图;
图5是本申请另一个示例性实施例提供的双核处理器的通讯方法的流程图;
图6是本申请另一个示例性实施例提供的双核处理器的通讯方法的流程图;
图7是本申请一个示例性实施例提供的双核处理器的通讯装置的结构框图;
图8是本申请另一个示例性实施例提供的双核处理器的通讯装置的结构框图;
图9是本申请一个示例性实施例提供的电子设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
如图1所示,双核通讯机理是指双核处理器使用共享内存方式进行双核间通讯,它们拥有共同地址的一段内存,两个处理器均有读和写的权限,一般共享内存会分为两段进行相互的读和写。
常规的双核处理器间的通讯流程为:当处理器A(以下统称A)有数据需要发送到处理器B(以下统称B),是以发一包收一包再发一包的形式传输,A向共享内存中写一包数据,然后进入等待队列,通知B进行读取,B读完之后唤醒A,继续进行数据写。由于共享内存固定且相对较小,当数据量大时会有通讯效率慢、数据丢包异常的情况,例如A还没唤醒又有两包数据需要发送,前一包数据就容易被覆盖。
值得一提的是,本申请中的数据写入端和数据读取端并非特指双核处理器中的某一个处理器。双核处理器中双方均具有数据读取和数据写入的功能,当某一处理器进行数据写入时该处理器即为数据写入端,当某一处理器进行数据读取时该处理器即为数据读取端,即本申请的方法可应用于双核处理器的任意一个处理器。
请参考图2,其示出了本申请一个示例性实施例提供的双核处理器的通讯方法的流程图,该方法应用于双核处理器中的数据读取端。该方法包括如下步骤:
步骤201,响应于数据写入端发送的通讯信号,生成临时缓冲区,临时缓冲区用于存放数据。
在一种可能的实施方式中,数据写入端在开始进行数据写入时向对方(即数据读取端)发送通讯信号,通知数据读取端准备进行数据接收。可选的,数据写入端在向共享内存中写入第一包数据后发送通讯信号,或者在写入数据之前发送通讯信号。
数据读取端在接收到通讯信号后开辟一个临时缓冲区,用于存放读取到但未处理的数据。为了确保数据能够存放,避免数据量较大时部分数据被覆盖,该临时缓冲区的容量相对较大,例如为共享内存容量的三倍,技术人员可基于实际需求设置临时缓冲区的大小。
步骤202,按照预设方向从共享内存中持续读取数据,并将读取到的数据存入临时缓冲区进行数据处理。
其中,数据写入端用于按照预设方向将数据写入共享内存,并在写入位置达到共享内存的结束位置的情况下,将写入位置偏移至共享内存的起始位置继续进行数据写入。
在一种可能的实施方式中,共享内存预设有起始位置和结束位置,数据写入端从起始位置开始按照预设方向进行数据写入,当写入至结束位置后偏移至起始位置继续进行数据写入。同时,数据读取端从起始位置开始进行数据读取,当读取到结束位置后,便宜至起始位置继续进行数据读取,直至全部数据读取完成,形成一个前面写后面读的通讯形式。如图3所示,数据写入端和数据读取端均设置有指针,双方基于指针指示的位置进行数据写入和数据读取,完成一包数据的写入或读取后更新指针位置,当指针移动至末尾时,将指针便宜至起始位置继续进行数据写入或读取。
步骤203,响应于读取位置达到结束位置,将读取位置偏移至起始位置继续进行数据读取。
实时写实时读的方式,将共享内存具象为一种环形缓冲区,双核处理器可以一边写一边读,同时在读取端开辟一个相对大的临时缓冲区来缓存数据,等待B慢慢处理。
综上所述,本申请提供的双核处理器的通讯方法,数据的写入和读取持续进行无需等待一包数据处理完成后再写入下一包数据,当数据的写入或读取到达共享内存尾部时偏移至开头继续写入或读取,将共享内存具象为一种环形区域,并且数据读取端开辟临时缓冲区用于存放未处理的数据,一方面双核间以实时写实时读的方式进行通讯可以提升双核处理器的数据传输效率,另一方面数据读取端持续将数据存入临时缓冲区,能够避免数据量较大的情况下数据写入端的数据被覆盖的情况,可以减少双核处理间数据丢失的概率。
请参考图4,其示出了本申请另一个示例性实施例提供的双核处理器的通讯方法的流程图。该方法包括如下步骤:
步骤401,响应于数据写入端发送的通讯信号,生成临时缓冲区,临时缓冲区用于存放数据。
步骤401的具体实施方式可以参考上述步骤201,本申请实施例在此不再赘述。
步骤402,响应于当前写入地址与当前读取地址不一致,按照预设方向从共享内存中读取下一包数据,并将读取到的数据存入临时缓冲区进行数据处理。
在一种可能的实施方式中,数据写入端用于每写入一包数据后向数据读取端发送数据传输信号,数据传输信号中包含当前写入地址。当前写入地址为数据写入端最后写入的一包数据对应的数据地址。
数据读取端判断最近一次接收到的数据传输信号中的当前写入地址与自身的当前读取地址是否一致,若不一致(即数据写入位置与读取位置之间仍存在数据未读取)则说明数据仍未读取完成,继续进行数据读取。
此外,数据读取端在进行数据读取的同时还负责进行共享内存的数据清除,本申请实施例提供的方法还包括如下步骤:
响应于读取到一个数据包,将共享内存中读取到的数据包进行数据清除。
步骤403,响应于读取位置达到结束位置,将读取位置偏移至起始位置继续进行数据读取。
步骤403的具体实施方式可以参考上述步骤203,本申请实施例在此不再赘述。
步骤404,响应于当前写入地址与当前读取地址一致,确认数据读取完成,并在数据处理完成后删除临时缓冲区。
数据读取端判断最近一次接收到的数据传输信号中的当前写入地址与自身的当前读取地址是否一致,若一致,则说明数据写入已完成并且数据读取至最后一个数据包。
进一步的,数据传输信号中还包含当前写入地址的写入次数。步骤404还包括如下步骤:
响应于当前写入地址与当前读取地址一致,且当前写入地址的写入次数与读取次数一致,确认数据读取完成。
相应的,本申请实施例的方法还包括如下步骤:
响应于当前写入地址与当前读取地址一致,且当前写入地址的写入次数与读取次数不一致,向数据写入端发送暂停信号,数据写入端用于接收到暂停信号后暂停数据写入。
处理器在正常运行情况下写数据和读数会保持一个相对平行的环形运动状态,很难出现越界现象。当某些外部因素导致读数据异常,导致共享内存内未被读取的数据即将被覆盖(即写入位置将读取位置“套圈”)时,数据读取端会根据数据写入端的写入地址进行出错处理,向数据写入端发送信号,数据写入端暂停发送数据,并丢弃之前的数据,然后重新进行数据发送。
本申请实施例中,将共享内存具象为一种环形区域,并且数据读取端开辟临时缓冲区用于存放未处理的数据,一方面双核间以实时写实时读的方式进行通讯可以提升双核处理器的数据传输效率,另一方面数据读取端持续将数据存入临时缓冲区,可以减少双核处理间数据丢失的概率。此外,通过比较数据的写入位置以及读取位置是否一致可判断数据读取是否完成。
在一种可能的实施方式中,数据写入端写入的数据包中包含数据头、数据长度、实际数据以及校验位。
上述步骤202具体包括如下步骤:
步骤202a,按照预设方向,基于数据头以及数据长度从共享内存中读取数据。
步骤202b,基于校验位对临时缓冲区中的数据进行数据校验,并对校验合法的数据进行数据处理。
数据读取端从临时缓冲区中读取一个数据(查找数据头),如果为数据头则认为数据开始,然后读取数据长度,根据数据长度读取实际数据,最后进行数据校验。如果校验通过则认为数据合法,使用该包数据,如果不合法,则丢弃该数据,重新进行数据头查找。数据读取端每次数据读取之后进行对应数据清除。
请参考图5,其示出了本申请一个示例性实施例提供的双核处理器的通讯方法的流程图,该方法应用于双核处理器的数据写入端。该方法包括如下步骤:
步骤501,向共享内存中写入数据。
数据写入端在执行通讯指令时,将需要发送给另一处理器的数据按顺序写入共享内存中。
步骤502,向数据读取端发送通讯信号,数据读取端用于在接收到通讯信号后生成临时缓冲区。
数据写入端在开始进行数据写入时向对方(即数据读取端)发送通讯信号,通知数据读取端准备进行数据接收。可选的,数据写入端在向共享内存中写入第一包数据后发送通讯信号,或者在写入数据之前发送通讯信号。
数据读取端在接收到通讯信号后开辟一个临时缓冲区,用于存放读取到但未处理的数据。为了确保数据能够存放,避免数据量较大时部分数据被覆盖,该临时缓冲区的容量相对较大,例如为共享内存容量的三倍,技术人员可基于实际需求设置临时缓冲区的大小。
步骤503,按照预设方向持续将数据写入共享内存。
其中,数据读取端用于按照预设方向从共享内存中持续读取数据,并将读取到的数据存入临时缓冲区进行数据处理。
在一种可能的实施方式中,共享内存预设有起始位置和结束位置,数据写入端从起始位置开始按照预设方向进行数据写入。
步骤504,响应于数据的写入位置达到共享内存的结束位置,将写入位置偏移至共享内存的起始位置继续进行数据写入.
其中,数据读取端用于在数据的读取位置达到结束位置的情况下,将读取位置偏移至起始位置继续进行数据读取。
当写入至结束位置后偏移至起始位置继续进行数据写入。同时,数据读取端从起始位置开始进行数据读取,当读取到结束位置后,便宜至起始位置继续进行数据读取,直至全部数据读取完成,形成一个前面写后面读的通讯形式。如图3所示,数据写入端和数据读取端均设置有指针,双方基于指针指示的位置进行数据写入和数据读取,完成一包数据的写入或读取后更新指针位置,当指针移动至末尾时,将指针便宜至起始位置继续进行数据写入或读取。
本申请提供的双核处理器的通讯方法,数据的写入和读取持续进行无需等待一包数据处理完成后再写入下一包数据,当数据的写入或读取到达共享内存尾部时偏移至开头继续写入或读取,将共享内存具象为一种环形区域,并且数据读取端开辟临时缓冲区用于存放未处理的数据,一方面双核间以实时写实时读的方式进行通讯可以提升双核处理器的数据传输效率,另一方面数据读取端持续将数据存入临时缓冲区,能够避免数据量较大的情况下数据写入端的数据被覆盖的情况,可以减少双核处理间数据丢失的概率。
请参考图6,其示出了本申请另一个示例性实施例提供的双核处理器的通讯方法的流程图,该方法应用于双核处理器的数据写入端。该方法包括如下步骤:
步骤601,向共享内存中写入数据。
步骤602,向数据读取端发送通讯信号,数据读取端用于在接收到通讯信号后生成临时缓冲区。
步骤601至步骤602的具体实施方式可以参考上述步骤501至步骤502,本申请实施例在此不再赘述。
步骤603,响应于完成一个数据包的写入,向数据读取端发送数据传输信号,数据传输信号中包含当前写入地址。
在一种可能的实施方式中,数据写入端通过数据传输信号通知数据读取端当前数据写入的位置。对应的,数据读取端在当前写入地址与当前读取地址不一致的情况下继续进行数据读取,以及在当前写入地址与当前读取地址一致的情况下确认数据读取完成。数据读取端判断最近一次接收到的数据传输信号中的当前写入地址与自身的当前读取地址是否一致,若不一致(即数据写入位置与读取位置之间仍存在数据未读取)则说明数据仍未读取完成,继续进行数据读取。
进一步的,数据传输信号中还包含当前写入地址的写入次数。数据读取端在当前写入地址与当前读取地址一致,且当前写入地址的写入次数与读取次数一致的情况下,确认数据读取完成,以及在当前写入地址与当前读取地址一致,且当前写入地址的写入次数与读取次数不一致的情况下向数据写入端发送暂停信号。
本申请实施例提供的方法还包括如下步骤:
响应于暂停信号,暂停数据写入。
数据写入端接收到暂停信号后暂停数据写入,并丢弃之前的数据,然后重新进行数据发送。
步骤604,响应于数据的写入位置达到共享内存的结束位置,将写入位置偏移至共享内存的起始位置继续进行数据写入。
步骤604的具体实施方式可以参考上述步骤504,本申请实施例在此不再赘述。
本申请实施例中,将共享内存具象为一种环形区域,并且数据读取端开辟临时缓冲区用于存放未处理的数据,一方面双核间以实时写实时读的方式进行通讯可以提升双核处理器的数据传输效率,另一方面数据读取端持续将数据存入临时缓冲区,可以减少双核处理间数据丢失的概率。此外,通过比较数据的写入位置以及读取位置是否一致可判断数据读取是否完成。
请参考图7,其示出了本申请一个示例性实施例提供的双核处理器的通讯装置的结构框图,应用于双核处理器中的数据读取端,该装置包括:
生成模块701,用于响应于数据写入端发送的通讯信号,生成临时缓冲区,所述临时缓冲区用于存放数据;
读取模块702,用于按照预设方向从共享内存中持续读取数据,并将读取到的数据存入所述临时缓冲区进行数据处理,所述数据写入端用于按照所述预设方向将数据写入所述共享内存,并在写入位置达到所述共享内存的结束位置的情况下,将所述写入位置偏移至所述共享内存的起始位置继续进行数据写入;
所述读取模块702,还用于响应于读取位置达到所述结束位置,将所述读取位置偏移至所述起始位置继续进行数据读取。
可选的,所述数据写入端用于每写入一包数据后向所述数据读取端发送数据传输信号,所述数据传输信号中包含当前写入地址;
所述读取模块702,还用于响应于所述当前写入地址与当前读取地址不一致,按照所述预设方向从所述共享内存中读取下一包数据,并将读取到的数据存入所述临时缓冲区进行数据处理;
所述装置还包括:
确认模块,用于响应于所述当前写入地址与所述当前读取地址一致,确认数据读取完成,并在数据处理完成后删除所述临时缓冲区。
可选的,所述数据传输信号中还包含所述当前写入地址的写入次数;
所述确认模块,还用于:
响应于所述当前写入地址与所述当前读取地址一致,且所述当前写入地址的写入次数与读取次数一致,确认数据读取完成;
响应于所述当前写入地址与所述当前读取地址一致,且所述当前写入地址的写入次数与所述读取次数不一致,向所述数据写入端发送暂停信号,所述数据写入端用于接收到所述暂停信号后暂停数据写入。
可选的,所述数据写入端写入的数据包中包含数据头、数据长度、实际数据以及校验位;
所述读取模块702,还用于:
按照所述预设方向,基于所述数据头以及所述数据长度从所述共享内存中读取数据;
基于所述校验位对所述临时缓冲区中的数据进行数据校验,并对校验合法的数据进行数据处理。
可选的,所述装置还包括:
清楚模块,用于响应于读取到一个数据包,将所述共享内存中读取到的数据包进行数据清除。
请参考图8,其示出了本申请一个示例性实施例提供的双核处理器的通讯装置的结构框图,应用于双核处理器中的数据写入端,该装置包括:
写入模块801,用于向共享内存中写入数据;
发送模块802,用于向数据读取端发送通讯信号,所述数据读取端用于在接收到所述通讯信号后生成临时缓冲区;
所述写入模块801,还用于按照预设方向持续将数据写入所述共享内存,所述数据读取端用于按照所述预设方向从所述共享内存中持续读取数据,并将读取到的数据存入所述临时缓冲区进行数据处理;
所述写入模块801,还用于响应于数据的写入位置达到所述共享内存的结束位置,将所述写入位置偏移至所述共享内存的起始位置继续进行数据写入,所述数据读取端用于在数据的读取位置达到所述结束位置的情况下,将所述读取位置偏移至所述起始位置继续进行数据读取。
可选的,所述写入模块801,还用于响应于完成一个数据包的写入,向所述数据读取端发送数据传输信号,所述数据传输信号中包含当前写入地址;
所述数据读取端用于在所述当前写入地址与当前读取地址不一致的情况下继续进行数据读取,以及在所述当前写入地址与所述当前读取地址一致的情况下确认数据读取完成。
可选的,所述数据传输信号中还包含所述当前写入地址的写入次数;
所述数据读取端用于在所述当前写入地址与所述当前读取地址一致,且所述当前写入地址的写入次数与读取次数一致的情况下,确认数据读取完成,以及在所述当前写入地址与所述当前读取地址一致,且所述当前写入地址的写入次数与所述读取次数不一致的情况下向所述数据写入端发送暂停信号;
所述装置还包括:
控制模块,用于响应于所述暂停信号,暂停数据写入。
本申请实施例提供一种电子设备;图9为本申请实施例提供的电子设备的组成结构示意图,如图9所示,所述电子设备900包括:一个处理器901、至少一个通信总线902、用户接口903、至少一个外部通信接口904、存储器905。其中,通信总线902配置为实现这些组件之间的连接通信。其中,用户接口903可以包括显示屏,外部通信接口904可以包括标准的有线接口和无线接口。所述处理器901配置为执行存储器中存储的双核处理器的通讯方法的程序,以实现以上述实施例提供的方法中的步骤。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如上述实施例所述的方法。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品在计算机设备的处理器上运行,使得所述计算机设备执行如上述实施例所述的方法。
这里需要指出的是:以上存储介质、电子设备、遥控器实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、对象或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、对象或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、对象或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台控制器执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种双核处理器的通讯方法,其特征在于,应用于双核处理器中的数据读取端,所述方法包括:
响应于数据写入端发送的通讯信号,生成临时缓冲区,所述临时缓冲区用于存放数据;
按照预设方向从共享内存中持续读取数据,并将读取到的数据存入所述临时缓冲区进行数据处理,所述数据写入端用于按照所述预设方向将数据写入所述共享内存,并在写入位置达到所述共享内存的结束位置的情况下,将所述写入位置偏移至所述共享内存的起始位置继续进行数据写入;
响应于读取位置达到所述结束位置,将所述读取位置偏移至所述起始位置继续进行数据读取。
2.根据权利要求1所述的方法,其特征在于,所述数据写入端用于每写入一包数据后向所述数据读取端发送数据传输信号,所述数据传输信号中包含当前写入地址;
所述按照预设方向从共享内存中持续读取数据,并将读取到的数据存入所述临时缓冲区进行数据处理,包括:
响应于所述当前写入地址与当前读取地址不一致,按照所述预设方向从所述共享内存中读取下一包数据,并将读取到的数据存入所述临时缓冲区进行数据处理;
所述方法还包括:
响应于所述当前写入地址与所述当前读取地址一致,确认数据读取完成,并在数据处理完成后删除所述临时缓冲区。
3.根据权利要求2所述的方法,其特征在于,所述数据传输信号中还包含所述当前写入地址的写入次数;
所述响应于所述当前写入地址与所述当前读取地址一致,确认数据读取完成,包括:
响应于所述当前写入地址与所述当前读取地址一致,且所述当前写入地址的写入次数与读取次数一致,确认数据读取完成;
所述方法还包括:
响应于所述当前写入地址与所述当前读取地址一致,且所述当前写入地址的写入次数与所述读取次数不一致,向所述数据写入端发送暂停信号,所述数据写入端用于接收到所述暂停信号后暂停数据写入。
4.根据权利要求1至3任一所述的方法,其特征在于,所述数据写入端写入的数据包中包含数据头、数据长度、实际数据以及校验位;
所述按照预设方向从共享内存中持续读取数据,包括:
按照所述预设方向,基于所述数据头以及所述数据长度从所述共享内存中读取数据;
所述将读取到的数据存入所述临时缓冲区进行数据处理,包括:
基于所述校验位对所述临时缓冲区中的数据进行数据校验,并对校验合法的数据进行数据处理。
5.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
响应于读取到一个数据包,将所述共享内存中读取到的数据包进行数据清除。
6.一种双核处理器的通讯方法,其特征在于,应用于双核处理器中的数据写入端,所述方法包括:
向共享内存中写入数据;
向数据读取端发送通讯信号,所述数据读取端用于在接收到所述通讯信号后生成临时缓冲区;
按照预设方向持续将数据写入所述共享内存,所述数据读取端用于按照所述预设方向从所述共享内存中持续读取数据,并将读取到的数据存入所述临时缓冲区进行数据处理;
响应于数据的写入位置达到所述共享内存的结束位置,将所述写入位置偏移至所述共享内存的起始位置继续进行数据写入,所述数据读取端用于在数据的读取位置达到所述结束位置的情况下,将所述读取位置偏移至所述起始位置继续进行数据读取。
7.根据权利要求6所述的方法,其特征在于,所述按照预设方向持续将数据写入所述共享内存,包括:
响应于完成一个数据包的写入,向所述数据读取端发送数据传输信号,所述数据传输信号中包含当前写入地址;
所述数据读取端用于在所述当前写入地址与当前读取地址不一致的情况下继续进行数据读取,以及在所述当前写入地址与所述当前读取地址一致的情况下确认数据读取完成。
8.根据权利要求7所述的方法,其特征在于,所述数据传输信号中还包含所述当前写入地址的写入次数;
所述数据读取端用于在所述当前写入地址与所述当前读取地址一致,且所述当前写入地址的写入次数与读取次数一致的情况下,确认数据读取完成,以及在所述当前写入地址与所述当前读取地址一致,且所述当前写入地址的写入次数与所述读取次数不一致的情况下向所述数据写入端发送暂停信号;
所述方法还包括:
响应于所述暂停信号,暂停数据写入。
9.一种双核处理器的通讯装置,其特征在于,应用于双核处理器中的数据读取端,所述装置包括:
生成模块,用于响应于数据写入端发送的通讯信号,生成临时缓冲区,所述临时缓冲区用于存放数据;
读取模块,用于按照预设方向从共享内存中持续读取数据,并将读取到的数据存入所述临时缓冲区进行数据处理,所述数据写入端用于按照所述预设方向将数据写入所述共享内存,并在写入位置达到所述共享内存的结束位置的情况下,将所述写入位置偏移至所述共享内存的起始位置继续进行数据写入;
所述读取模块,还用于响应于读取位置达到所述结束位置,将所述读取位置偏移至所述起始位置继续进行数据读取。
10.一种双核处理器的通讯装置,其特征在于,应用于双核处理器中的数据写入端,所述装置包括:
写入模块,用于向共享内存中写入数据;
发送模块,用于向数据读取端发送通讯信号,所述数据读取端用于在接收到所述通讯信号后生成临时缓冲区;
所述写入模块,还用于按照预设方向持续将数据写入所述共享内存,所述数据读取端用于按照所述预设方向从所述共享内存中持续读取数据,并将读取到的数据存入所述临时缓冲区进行数据处理;
所述写入模块,还用于响应于数据的写入位置达到所述共享内存的结束位置,将所述写入位置偏移至所述共享内存的起始位置继续进行数据写入,所述数据读取端用于在数据的读取位置达到所述结束位置的情况下,将所述读取位置偏移至所述起始位置继续进行数据读取。
11.一种电子设备,其特征在于,包括存储器和处理器;所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至5或6至8中任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至5或6至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311592485.3A CN117827733A (zh) | 2023-11-24 | 2023-11-24 | 双核处理器的通讯方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311592485.3A CN117827733A (zh) | 2023-11-24 | 2023-11-24 | 双核处理器的通讯方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117827733A true CN117827733A (zh) | 2024-04-05 |
Family
ID=90503425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311592485.3A Pending CN117827733A (zh) | 2023-11-24 | 2023-11-24 | 双核处理器的通讯方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117827733A (zh) |
-
2023
- 2023-11-24 CN CN202311592485.3A patent/CN117827733A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8832407B2 (en) | Communication device with storage function | |
US10489322B2 (en) | Apparatus and method to improve performance in DMA transfer of data | |
JP2007259274A (ja) | 再送制御回路、送信装置、再送制御方法及び再送制御プログラム | |
CN111400213B (zh) | 传输数据的方法、装置及系统 | |
CN117827733A (zh) | 双核处理器的通讯方法、装置、设备及存储介质 | |
JP2778373B2 (ja) | 再送機能付きバッファ装置 | |
KR100736902B1 (ko) | 복수의 프로세서에 의한 메모리 공유 방법 및 장치 | |
CN112764673B (zh) | 高光谱线阵数据存储速率优化方法、装置和存储介质 | |
CN110187891B (zh) | 一种用于多核可编程控制器的程序开发方法及系统 | |
US20010018732A1 (en) | Parallel processor and parallel processing method | |
JP4703462B2 (ja) | 受信装置、バッファ管理方法、およびコンピュータプログラム | |
CN104102619B (zh) | 第一操作系统对第二操作系统的dsp进行操作的方法及系统 | |
CN111371799A (zh) | Mctp控制器收发数据的控制方法、装置及设备 | |
CN105099948A (zh) | 一种报文信息处理方法及装置 | |
CN117312201B (zh) | 一种数据传输方法、装置及加速器设备、主机和存储介质 | |
CN212873459U (zh) | 一种用于数据压缩存储的系统 | |
US6711179B1 (en) | Signal processing apparatus with three layer processing sections, and signal processing system with said two signal processing apparatuses | |
CN114741214B (zh) | 一种数据传输方法、装置及设备 | |
CN114942900A (zh) | 嵌入式系统双缓冲数据串行发送方法 | |
JP3064688B2 (ja) | データ受信装置 | |
US20060066630A1 (en) | Apparatus and method for transmitting data between graphics controller and external storage | |
CN118012351A (zh) | 基于远程存储协议的数据读写保序方法、装置、电子设备及存储介质 | |
US6910176B2 (en) | Method for communicating data between digital camera and portable electronic communication device | |
CN117743252A (zh) | 基于Mailbox的异构Soc子系统间通信的方法 | |
CN117579232A (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 |