CN103559166A - 一种多核之间的高速数据传输的方法 - Google Patents

一种多核之间的高速数据传输的方法 Download PDF

Info

Publication number
CN103559166A
CN103559166A CN201310555626.4A CN201310555626A CN103559166A CN 103559166 A CN103559166 A CN 103559166A CN 201310555626 A CN201310555626 A CN 201310555626A CN 103559166 A CN103559166 A CN 103559166A
Authority
CN
China
Prior art keywords
cppi
data
kernel
multinuclear
index value
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
Application number
CN201310555626.4A
Other languages
English (en)
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.)
Xiamen Yealink Network Technology Co Ltd
Original Assignee
Xiamen Yealink Network Technology 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 Xiamen Yealink Network Technology Co Ltd filed Critical Xiamen Yealink Network Technology Co Ltd
Priority to CN201310555626.4A priority Critical patent/CN103559166A/zh
Publication of CN103559166A publication Critical patent/CN103559166A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

本发明提出了一种多核之间的高速数据传输的方法。首先在内核之间开辟一段固定大小的共享内存,并将该共享内存设计为环形缓冲区的形式,初始化CPPI,之后发送方内核有数据要发送,判断CPPI中是否有空闲的缓冲区,最后CPPI中有空闲的缓冲区,接收方内核从CPPI中取出CPPE指针,并直接对数据进行处理,完成数据传输。本发明能够减少数据拷贝及避免共享内存的数据读写冲突问题,在高数据率情况下提高数据的传输效率及传输稳定性。

Description

一种多核之间的高速数据传输的方法
技术领域
本发明涉及无线通信领域,特别涉及一种多核之间的高速数据传输的方法。
背景技术
在VOIP终端设备设计中经常会遇到有大量的网络音频数据需要实时传输,这种数据传输要求一般都比较高,如稳定性、可靠性、低延时性都会比较苛刻。特别是在通信终端设备的CPU主频不高的情况下,这些音频数据在多核之间要求高速稳定的传输和存储,这无疑是一个困难的问题。
发明内容
有鉴于此,本发明的目的是提供一种多核之间的高速数据传输的方法,能够提升系统的和速率性能。
为了实现上述目的,本发明提出一种多核之间的高速数据传输的方法,其包括: 
步骤10,内核之间开辟一段固定大小的共享内存,并将该共享内存设计为环形缓冲区的形式,初始化CPPI,所述CPPI为Communications Port Programing Interface,即通讯端口程序处理接口;
步骤20,发送方内核有数据要发送,判断CPPI中是否有空闲的缓冲区,所述CPPE为Communications Port Programing Element,即通讯端口程序处理元素;
步骤30,若CPPI中有空闲的缓冲区,接收方内核从CPPI中取出CPPE指针,并直接对数据进行处理,完成数据传输。
进一步地,步骤20具体包括:
步骤21,发送方内核有数据要发送;
步骤22,发送方内核检查CPPI的写索引值进行自增或自减之后的值是否等于读索引值;
步骤23,若不相等,发送方内核转载数据到CPPE并将CPPI的写索引值采用与所述步骤22一样的方式进行自增或自减,并通知接收方内核接收数据,否则返回步骤21。
进一步地,步骤30进一步具体为:
步骤31,接收方内核接收通知,说明CPPI中有空闲的缓冲区,接收方内核从CPPI中取出CPPE的指针,并直接对数据进行处理,最后将读索引值采用与所述步骤22一样的方式进行自增或自减,数据传输结束。
进一步地,所述初始化CPPI包括设置写索引值和读索引值的范围及初始值。
进一步地,所述CPPE用于存放数据的地址指针及BUF的控制处理元素。
本发明提出了一种多核之间的高速数据传输的方法,本发明避免了使用数据拷贝及共享内存的锁保护等效率不高的旧方法,同时也避免了数据流在多核之间的速度不均衡的情况发生。能够减少数据拷贝及避免共享内存的数据读写冲突问题,在高数据率情况下提高数据的传输效率及传输稳定性。
附图说明
图1是本发明的多核间数据传输流程图。
图2是本发明的多核间数据传输流程图。
图3是本发明的多核间数据传输的示意图。
具体实施方式
下面是对本发明一种多核之间的高速数据传输的方法进行具体说明。
如图1-3所示,本发明一种多核之间的高速数据传输的方法的一种实施例方式包括:
步骤10,内核之间开辟一段固定大小的的共享内存,并将该共享内存设计为环形缓冲区的形式,这种设计方式可以使内存得到充分的使用,同时又不占用过多的内存,避免造成资源的浪费。并初始化CPPI,所述CPPI为Communications Port Programing Interface,即通讯端口程序处理接口;
步骤20,发送方内核有数据要发送,判断CPPI中是否有空闲的缓冲区;
步骤30,若CPPI中有空闲的缓冲区,接收方内核从CPPI中取出CPPE指针,所述CPPE为Communications Port Programing Element,即通讯端口程序处理元素,并直接对数据进行处理,完成数据传输;
其中,步骤20具体包括:
步骤21,发送方内核有数据要发送;
步骤22,发送方内核检查CPPI的写索引值进行自增或自减之后的值是否等于读索引值;
步骤23,若不相等,发送方内核转载数据到CPPE并将CPPI的写索引值自增或自减,并通知接收方内核接收数据,否则返回步骤21;
其中,步骤30进一步具体为:
步骤31,接收方内核接收通知,说明CPPI中有空闲的缓冲区,接收方内核从CPPI中取出CPPE的指针,并直接对数据进行处理,最后将读索引值做与写索引值相同的改变,数据传输结束。
CPPI在初始化时会设置写索引值和读索引值的范围,例如最大值设置为100,最小值设置为0。在使用时,用一次,写索引值和读索引值就加“1”一次。当用到最大值100后就自动回归到最小值0开始使用,如此循环使用。采用CPPE接口方式,可以跨平台使用。
例如:将这两个数据成员分别命名为write_index和read_index。索引值的范围设计为 0—100 。
当CPPI在初始化时,会将write_index和read_index的值分别设置为0。此时write_index与read_index的值相等,表示没有数据要接收,系统处于空闲状态。
当发送方内核要发送数据时,将write_index的值加1,因为是共享内存,所以接收方内核的线程会侦测到write_index与read_index不相等了,即write_index = 1 ,read_index = 0,说明有数据要接收了。接收方内核会根据read_index值取出共享内存中相对应的数据(也就是内存区块0的数据),然后将read_index的值加1。这时write_index与read_index的值又相等了,即write_index = 1 ,read_index = 1,系统又处于空闲状态。完成了一次数据传输。
如果发送方内核发送数据太快了,而接收方内核接收数据比较慢,那么write_index的值可能为100了,而read_index的值才90,这时write_index的值自动回归到0,并将旧数据(即内存区块0的数据)覆盖了。因为read_index的值已经为90,说明接收方内核在接收内存区块90的数据,而内存区块0的数据早已接收完成,所以覆盖内存区块0的数据也就不会有影响了。最终实现了循环使用内存的目的。
与现有的技术相比较,本发明提出了一种多核之间的高速数据传输的方法,本发明避免了使用数据拷贝及共享内存的锁保护等效率不高的旧方法,同时也避免了数据流在多核之间的速度不均衡的情况发生。能够减少数据拷贝及避免共享内存的数据读写冲突问题,在高数据率情况下提高数据的传输效率及传输稳定性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进,这些改进也应视为本发明的保护范围。

Claims (5)

1.一种多核之间的高速数据传输的方法,其特征在于,包括:
步骤10,内核之间开辟一段固定大小的共享内存,并将该共享内存设计为环形缓冲区的形式,初始化CPPI;
步骤20,发送方内核有数据要发送,判断CPPI中是否有空闲的缓冲区;
步骤30,若CPPI中有空闲的缓冲区,接收方内核从CPPI中取出CPPE指针,并直接对数据进行处理,完成数据传输。
2.如权利要求1所述的一种多核之间的高速数据传输的方法,其特征是:步骤20具体包括:
步骤21,发送方内核有数据要发送;
步骤22,发送方内核检查CPPI的写索引值进行自增或自减之后的值是否等于读索引值;
步骤23,若不相等,发送方内核转载数据到CPPE并将CPPI的写索引值采用与所述步骤22一样的方式进行自增或自减,并通知接收方内核接收数据,否则返回步骤21。
3.如权利要求1或2所述的一种多核之间的高速数据传输的方法,其特征是:步骤30进一步具体为:
步骤31,接收方内核接收通知,说明CPPI中有空闲的缓冲区,接收方内核从CPPI中取出CPPE的指针,并直接对数据进行处理,最后将读索引值采用与所述步骤22一样的方式进行自增或自减,数据传输结束。
4.如权利要求1所述的一种多核之间的高速数据传输的方法,其特征是:所述初始化CPPI包括设置写索引值和读索引值的范围及初始值。
5.如权利要求1所述的一种多核之间的高速数据传输的方法,其特征是:所述CPPE用于存放数据的地址指针及BUF的控制处理元素。
CN201310555626.4A 2013-11-11 2013-11-11 一种多核之间的高速数据传输的方法 Pending CN103559166A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310555626.4A CN103559166A (zh) 2013-11-11 2013-11-11 一种多核之间的高速数据传输的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310555626.4A CN103559166A (zh) 2013-11-11 2013-11-11 一种多核之间的高速数据传输的方法

Publications (1)

Publication Number Publication Date
CN103559166A true CN103559166A (zh) 2014-02-05

Family

ID=50013415

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310555626.4A Pending CN103559166A (zh) 2013-11-11 2013-11-11 一种多核之间的高速数据传输的方法

Country Status (1)

Country Link
CN (1) CN103559166A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107241409A (zh) * 2017-06-05 2017-10-10 武汉虹信通信技术有限责任公司 用于lte中rlc与相邻层的数据传输方法
CN107632945A (zh) * 2016-07-18 2018-01-26 大唐移动通信设备有限公司 一种共享内存的数据读写方法和装置
CN108664233A (zh) * 2018-03-29 2018-10-16 百度在线网络技术(北京)有限公司 无人驾驶车辆中的数据处理方法、装置、系统及存储介质
CN114490127A (zh) * 2022-01-20 2022-05-13 Oppo广东移动通信有限公司 核间通信方法、装置、电子设备及存储介质
CN115080277A (zh) * 2022-07-21 2022-09-20 佛山智能装备技术研究院 一种多核系统的核间通信系统
WO2022267676A1 (zh) * 2021-06-23 2022-12-29 北京车和家信息技术有限公司 共享内存的数据处理方法、装置、设备和介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040160446A1 (en) * 2003-02-18 2004-08-19 Gosalia Anuj B. Multithreaded kernel for graphics processing unit
CN1529256A (zh) * 2003-10-17 2004-09-15 中兴通讯股份有限公司 基于双环形队列、非中断式pci通信方法
CN101105786A (zh) * 2006-07-14 2008-01-16 中兴通讯股份有限公司 一种基于共享存储器的双cpu通信方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040160446A1 (en) * 2003-02-18 2004-08-19 Gosalia Anuj B. Multithreaded kernel for graphics processing unit
CN1529256A (zh) * 2003-10-17 2004-09-15 中兴通讯股份有限公司 基于双环形队列、非中断式pci通信方法
CN101105786A (zh) * 2006-07-14 2008-01-16 中兴通讯股份有限公司 一种基于共享存储器的双cpu通信方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
孙涛等: "FTPA:一种具有可配置核的灵活多核处理器结构", 《中国科学院研究生院学报》, vol. 30, no. 2, 31 March 2013 (2013-03-31), pages 257 - 263 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107632945A (zh) * 2016-07-18 2018-01-26 大唐移动通信设备有限公司 一种共享内存的数据读写方法和装置
CN107241409A (zh) * 2017-06-05 2017-10-10 武汉虹信通信技术有限责任公司 用于lte中rlc与相邻层的数据传输方法
CN108664233A (zh) * 2018-03-29 2018-10-16 百度在线网络技术(北京)有限公司 无人驾驶车辆中的数据处理方法、装置、系统及存储介质
WO2022267676A1 (zh) * 2021-06-23 2022-12-29 北京车和家信息技术有限公司 共享内存的数据处理方法、装置、设备和介质
CN114490127A (zh) * 2022-01-20 2022-05-13 Oppo广东移动通信有限公司 核间通信方法、装置、电子设备及存储介质
CN115080277A (zh) * 2022-07-21 2022-09-20 佛山智能装备技术研究院 一种多核系统的核间通信系统

Similar Documents

Publication Publication Date Title
CN103559166A (zh) 一种多核之间的高速数据传输的方法
CN106790599B (zh) 一种基于多核无锁环形缓冲区的共生虚拟机通信方法
CN103150149B (zh) 处理数据库重做数据的方法和装置
CN106095604A (zh) 一种多核处理器的核间通信方法及装置
US10762003B2 (en) State change in systems having devices coupled in a chained configuration
CN103714026B (zh) 一种支持原址数据交换的存储器访问方法及装置
US11010094B2 (en) Task management method and host for electronic storage device
US20150356050A1 (en) Interface Emulator using FIFOs
CN114328350B (zh) 一种基于axi总线的通讯方法、装置以及介质
US20240095172A1 (en) Data packet processing method and appratus
CN103885900B (zh) 数据访问处理方法、PCIe设备和用户设备
CN104424142B (zh) 一种多核处理器系统中访问共享资源的方法与装置
US10748233B2 (en) Full screen processing in multi-application environments
CN102053937A (zh) 在lpc总线中调用spi接口的闪存的方法及系统
CN103838694A (zh) 一种fpga高速读取usb接口数据的方法
WO2023030128A1 (zh) 通信方法、装置、电子设备、存储介质及片上系统
CN110597643A (zh) 核间通信方法、处理器以及电子设备
CN104461937A (zh) 一种机顶盒浏览器内存优化的方法和系统
CN110825326A (zh) 提升ssd随机读性能的方法、装置、计算机设备及存储介质
CN107870885A (zh) 通信系统、装置及方法
CN107870878A (zh) 存储系统、终端及计算机装置
WO2021042836A1 (zh) 一种去除毛刺的方法、装置及状态机
CN109614359B (zh) 一种基于axi总线的数据发送方法、装置和存储介质
CN103647728B (zh) 一种STM32单片机与Linux系统高速串口抗干扰通讯方法
CN207835492U (zh) 一种双缓存载波解调系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140205

WD01 Invention patent application deemed withdrawn after publication