CN105487991B - 一种多核共用单一edma通道的方法 - Google Patents

一种多核共用单一edma通道的方法 Download PDF

Info

Publication number
CN105487991B
CN105487991B CN201510974858.2A CN201510974858A CN105487991B CN 105487991 B CN105487991 B CN 105487991B CN 201510974858 A CN201510974858 A CN 201510974858A CN 105487991 B CN105487991 B CN 105487991B
Authority
CN
China
Prior art keywords
edma
channel
param
core
data
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
Application number
CN201510974858.2A
Other languages
English (en)
Other versions
CN105487991A (zh
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.)
Guangzhou Huiruisitong Technology Co Ltd
Original Assignee
Guangzhou Huiruisitong Information 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 Guangzhou Huiruisitong Information Technology Co Ltd filed Critical Guangzhou Huiruisitong Information Technology Co Ltd
Priority to CN201510974858.2A priority Critical patent/CN105487991B/zh
Publication of CN105487991A publication Critical patent/CN105487991A/zh
Application granted granted Critical
Publication of CN105487991B publication Critical patent/CN105487991B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer

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

本发明涉及一种多核共用单一EDMA通道的方法,包括以下步骤:1、分配EDMA Channelh和硬件信号量HwSemh到主核,分配EDMA Channels到从核,并初始化EDMA Channelh、硬件信号量HwSemh和EDMA Channels;2、主核和从核通过硬件信号量HwSemh申请EDMA Channelh;3、申请到EDMA Channelh的主核或者从核配置PaRAM;4、使能EDMA进行数据传输,并接收数据传输完毕所产生的EDMA中断;5、数据传输完毕后,释放硬件信号量HwSemh和PaRAM资源。具有每个核可以直接通过EDMA通道发送数据,无需通过核间转发等优点。

Description

一种多核共用单一EDMA通道的方法
技术领域
本发明涉及一种数字通信技术领域,特别涉及一种多核共用单一EDMA通道的方法。
背景技术
单核DSP已经不能满足数字通信领域的发展需求,多核DSP芯片应运而生,在通信领域得到迅猛发展,获得广泛应用。本发明对多核DSP芯片约定如下:共有N个核,记为Core1、Core2…CoreN;共有L个硬件信号量HwSem,硬件信号量是一种互斥信号量,用于同一资源多核访问保护;共有M个共用接口,记为Interface1、Interface2、…、InterfaceM;共有X个EDMACC(EDMA Channel Control,即为EDMA通道控制器),记为EDMACC1、EDMACC2…EDMACCX;第x个EDMACC共有xH个EDMA通道,记为Channelx_1、Channelx_2…Channelx_H;共有Y个EDMAShadow Region(EDMA影区),记为Region1、Region2…RegionY;与公共接口Interfacem数据发送绑定的EDMA通道记为Channelh。其中N、M、X、Y、H、L、m、h都是自然数,N≥2,M≥1,X≥1,Y≥1,H≥1,L≥1,M≥m≥1,xH≥h≥1。
EDMA是Enhanced Direct Memory Access的缩写,即增强型直接存储访问,能够完成数据快速搬移,工作过程无需CPU介入。为减轻CPU负荷,同时满足数据的快速收发存储,嵌入式系统设计广泛采用将芯片数据收发端口与EDMA绑定,实现协同工作。EDMA资源主要包括EDMA Channel及配置参数PaRAM。EDMA的使用具有极高的灵活性,同一个EDMACC中的EDMA资源之间可以使用Link和Chain方法,不同EDMACC中的EDMA资源之间可以使用ShadowRegion方法。Link方法是指在EDMA通道Channeli按照配置信息传输完毕时,会将Link指向的配置信息复制过来,按照Link指向的配置信息进行新的传输。Chain方法是指在EDMA通道Channeli按照配置信息传输完毕时,产生EDMA通道Channelj的事件,开始Channelj的传输,其中,H≥i,j≥1。Shadow Region方法可将位于EDMACCx1的通道Channelx1_u和位于EDMACCx2的通道Channelx2_v配置到同一Regiony中,但同一EDMA Channel不能同时配置到两个Region中,通道Channelx1_u和通道Channelx2_v产生的中断记为Interruptx1_y和Interruptx2_y,Interruptx1_y和Interruptx2_y可以合并为一个中断,记为Interrupty,Interrupty只能送给一个核,记为Coren,其中X≥x1、x2≥1,x1 H≥u≥1,x2 H≥v≥1,Y≥y≥1,N≥n≥1。通过将Core和Shadow Region进行一对一映射,并将单个核中所用EDMA资源配置到同一Shadow Region中,因不同核访问不同的Shadow Region,不同ShadowRegion中的EDMA资源不同,这就避免了EDMA资源的多核访问冲突。这也造成了在使用Shadow Region方法时,与共用接口Interfacem数据发送绑定的EDMAChannelh只能配置到其中一个Shadow Region中,记为Regionk,与Regionk映射的核称为主核,其它核称为从核。EDMA PaRAM可以根据需要进行配置,有一种特殊的配置称为Dummy PaRAM,Dummy PaRAM方法是保证EDMA PaRAM中的ACNT、BCNT和CCNT三个计数至少有一个计数是0,一个计数非0,用来传输0个字节数据,并能根据配置信息正常产生中断或者Chain事件。
EDMA使用方法在201510024762.X(一种EDMA控制器分离式并行数据通道的设计方法)、201510123172.2(一种多核DSP系统中EDMA控制器并行控制的方法)等中国专利中已经涉及,但是在所有现有方法中并未涉及多核如何共用单一EDMA通道达到共用接口充分利用的方法,同时做到避免EDMA资源多核访问冲突和避免发送需经核间转发,则是现有技术中亟待解决的问题。
发明内容
本发明的目的在于克服现有技术的缺点与不足,提供一种多核共用单一EDMA通道的方法,该方法解决了芯片设计时将共用接口与单一EDMA通道绑定可能引起多核共用此接口造成的资源访问冲突问题,并能做到每个核可以直接通过EDMA通道实现数据发送,无需核间转发,简化了数据发送流程。
本发明的目的通过下述技术方案实现:一种多核共用单一EDMA通道的方法,包括以下步骤:
步骤1、分配EDMA Channelh和硬件信号量HwSemh到主核,分配EDMA Channels到从核,并初始化EDMA Channelh、硬件信号量HwSemh和EDMA Channels;所述EDMA Channelh为与共用接口绑定的用于进行数据传输的EDMA通道,所述EDMAChannels为分配给从核的用于进行数据传输的EDMA通道;
步骤2、主核和从核通过硬件信号量申请EDMA Channelh
步骤3、申请到EDMA Channelh的主核或者从核配置PaRAM;
步骤4、使能EDMA进行数据传输,并接收数据传输完毕所产生的EDMA中断;
步骤5、数据传输完毕后,释放硬件信号量HwSemh和PaRAM资源。
本发明使用了Chain方法和Dummy PaRAM方法,并配合HwSem方法,可以在使用Shadow Region的前提下,无需核间转发,大大简化了数据的发送流程。
为了EDMA资源的多核访问冲突,在步骤2中,所有核包括主核和从核必须先获取到硬件信号量HwSemh后才能使用Channelh资源,保证了在同一时刻只有一个核能申请到EDMAChannelh
为便于使用Link和Chain方法,在步骤1中,所述EDMA Channels与EDMAChannelh位于同一EDMACC中。
在步骤3中,对申请到EDMA Channelh的主核配置的PaRAM资源为PaRAMh,所述PaRAMh用于使能EDMA在数据发送完毕后产生与EDMA Channelh对应的中断;对申请到EDMAChannelh的从核配置的PaRAM资源包括PaRAMh和PaRAMs,所述PaRAMh用于使能主核在数据发送完毕后产生Channels事件,使能Channels数据传输,所述PaRAMs配置成Dummy PaRAM,用于数据发送完毕后产生与EDMAChannels对应的中断。
所述步骤4中,主核在数据传输中,EDMA根据PaRAMh的配置进行数据搬移,主核数据传输完毕后,进入中断处理程序,释放硬件信号量,让从核利用EDMAChannelh进行数据发送;从核在数据传输中,EDMA根据PaRAMh的配置进行数据搬移,并在PaRAMh的数据搬移完成后,发出chain Event信号,使能Channels进行工作,当Dummy PaRAM处理完毕后,产生与EDMA Channels对应的中断,从核接收Channels产生的中断,进入中断处理程序,释放硬件信号量,让其它核利用EDMA Channelh进行数据发送。
本发明同时采用Shadow Region方法、Chain方法、Dummy PaRAM方法和HwSem方法。采用Shadow Region方法和HwSem方法对EDMA资源做多核保护,避免资源访问冲突。采用Chain方法和Dummy PaRAM方法可以解决只有主核可以收到EDMA Channelh数据发送完毕产生的EDMA中断,从核获取不了中断信息的问题。
本发明相对于现有技术具有如下的优点及效果:
1、本发明充分利用EDMA配置的灵活性,省去从核通过共用接口Interface向外发送数据时必须通过主核转发的过程,每个核可以直接通过EDMA通道发生数据,无需通过核间转发,从而简化了从核发送流程,提高了发送效率,并显著降低了代码的复杂度。
2、本发明使得主核和从核都能直接通过EDMA进行数据发送,并通过ShadowRegion和HwSem避免了多核对同一EDMA资源的访问冲突,保证了Edma资源访问的安全性。
3、本发明通过使用Chain方法和Dummy PaRAM方法解决只有主核可以收到EDMAChannelh数据发送完毕产生的EDMA中断,从核获取不了中断信息的问题,保证了在使用Shadow Region时,从核也可获取数据发送完毕的信息。
附图说明
图1是程序初始化主要流程图,描述了程序初始化过程中与多核共用单一EDMA通道相关的初始化流程。
图2是主核数据发送流程图,描述了主核在多核共用单一EDMA通道发送数据的流程。
图3是从核数据发送流程图,描述了从核在多核共用单一EDMA通道发送数据的流程。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例
本实施例中共有N个核,其中只有一个主核Coreh,其余的都是从核Cores(N≥s≥1,且s≠h);
如图1所示,程序的初始化流程如下:
分配与共用接口数据发送绑定的EDMA通道Channelh到主核;
分配与Channelh在同一EDMACC的EDMA通道Channels到从核;
创建具有互斥功能的硬件信号量HwSeme,并将其初始化为空闲状态,以被具有数据发送需求的核获取。
如图2所示,主核Coreh的数据发送流程如下:
在程序初始化阶段,将EDMA Channelh分配到主核中,并对其资源进行必要的初始化;
在数据发送前,主核获取硬件信号量HwSeme,确保其它核没有正在使用EDMAChannelh发送数据,主核对EDMA Channelh对应的PaRAM(本发明记为PaRAMh)进行配置,使能数据发送完毕产生EDMA Channelh中断功能;
在数据传输中,EDMA根据PaRAMh的配置进行数据搬移;
在数据发送完毕后,产生EDMA Channelh对应的中断,主核进入中断处理程序,释放硬件信号量HwSeme,让其它核可以利用EDMA Channelh进行数据发送,并进行后续处理;
至此,完成整个数据发送过程。
如图3所示,从核Cores的数据发送流程如下:
在程序初始化阶段,给Cores分配了一个属于本核的EDMA Channels及相应的PaRAMs等资源,并保证EDMA Channels与EDMA Channelh位于同一EDMACC中,将PaRAMs配置成Dummy PaRAM,仅用来产生EDMA Channels对应的中断;
在数据发送前,利用所有核通过Shadow Regionk访问到EDMAChannelh资源,Cores对EDMA Channelh对应的PaRAM(本发明记为PaRAMh)进行配置,使能Channelh的chain功能,并将chain Event设置为ChannelsEvent。但为了避免资源访问冲突,在使用Channelh资源前,Cores必须获取硬件信号量HwSeme,确保其它核没有正在使用Channelh发送数据;
在数据传输中,EDMA根据PaRAMh的配置进行数据搬移,PaRAMh的数据搬移完成后,发出chain Event,使能Channels进行工作,Dummy PaRAM处理完毕,产生Channels对应的EDMA中断;
在数据发送完毕后,因Channels被分配到Cores,Channels产生的EDMA中断就会被Cores获取,进入中断处理程序,释放硬件信号量HwSeme,让其它核可以利用Channelh进行数据发送,并依此确定数据已传输完毕,进行后续处理。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (4)

1.一种多核共用单一EDMA通道的方法,其特征在于,包括以下步骤:
步骤1、分配EDMA Channelh和硬件信号量HwSemh到主核,分配EDMA Channels到从核,并初始化EDMA Channelh、硬件信号量HwSemh和EDMA Channels;所述EDMA Channelh为与共用接口绑定的用于进行数据传输的EDMA通道,所述EDMA Channels为分配给从核的用于进行数据传输的EDMA通道;
步骤2、主核和从核通过硬件信号量申请EDMA Channelh,具体为:所有核包括主核或从核必须先获取硬件信号量HwSemh后才能使用Channelh资源,保证在同一时刻只有一个核能申请到EDMA Channelh
步骤3、申请到EDMA Channelh的主核或者从核配置PaRAM;
步骤4、使能EDMA进行数据传输,并接收数据传输完毕所产生的EDMA中断;
步骤5、数据传输完毕后,释放硬件信号量HwSemh和PaRAM资源。
2.根据权利要求1所述的多核共用单一EDMA通道的方法,其特征在于,所述步骤1中,所述EDMA Channels与EDMA Channelh位于同一EDMACC中。
3.根据权利要求1所述的多核共用单一EDMA通道的方法,其特征在于,在步骤3中,对申请到EDMA Channelh的主核配置的PaRAM资源为PaRAMh,所述PaRAMh在主核中用于使能EDMA在数据发送完毕后产生与EDMA Channelh对应的中断;
对申请到EDMA Channelh的从核配置的PaRAM资源包括PaRAMh和PaRAMs,所述PaRAMh为主核所有,从核通过Shadow Regionk对PaRAMh配置,所述PaRAMh用于使能主核在数据发送完毕后产生Channels事件和使能Channels数据传输,所述PaRAMs配置成Dummy PaRAM,所述PaRAMs用于数据发送完毕后产生与EDMAChannels对应的中断。
4.根据权利要求3所述的多核共用单一EDMA通道的方法,其特征在于,所述步骤4中,主核在数据传输中,EDMA根据PaRAMh的配置进行数据搬移,主核数据传输完毕后,进入中断处理程序,释放硬件信号量,让从核利用EDMA Channelh进行数据发送;
从核在数据传输中,EDMA根据PaRAMh的配置进行数据搬移,并在PaRAMh的数据搬移完成后,发出chain Event信号,使能Channels进行工作,当Dummy PaRAM处理完毕后,产生与EDMA Channels对应的中断,从核接收Channels产生的中断,进入中断处理程序,释放硬件信号量,让其它核利用EDMA Channelh进行数据发送。
CN201510974858.2A 2015-12-18 2015-12-18 一种多核共用单一edma通道的方法 Active CN105487991B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510974858.2A CN105487991B (zh) 2015-12-18 2015-12-18 一种多核共用单一edma通道的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510974858.2A CN105487991B (zh) 2015-12-18 2015-12-18 一种多核共用单一edma通道的方法

Publications (2)

Publication Number Publication Date
CN105487991A CN105487991A (zh) 2016-04-13
CN105487991B true CN105487991B (zh) 2018-04-06

Family

ID=55674979

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510974858.2A Active CN105487991B (zh) 2015-12-18 2015-12-18 一种多核共用单一edma通道的方法

Country Status (1)

Country Link
CN (1) CN105487991B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106155960B (zh) * 2016-06-29 2019-03-22 广州慧睿思通信息科技有限公司 基于gpio握手和edma的uart串口通信方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7577774B2 (en) * 2005-05-13 2009-08-18 Texas Instruments Incorporated Independent source read and destination write enhanced DMA
CN102510481A (zh) * 2011-11-10 2012-06-20 中国科学院上海技术物理研究所 低功耗红外实时信号处理系统的信号处理方法
CN104536921A (zh) * 2015-01-19 2015-04-22 浪潮电子信息产业股份有限公司 一种edma控制器分离式并行数据通道的设计方法
CN104699641A (zh) * 2015-03-20 2015-06-10 浪潮集团有限公司 一种多核dsp系统中edma控制器并行控制的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7577774B2 (en) * 2005-05-13 2009-08-18 Texas Instruments Incorporated Independent source read and destination write enhanced DMA
CN102510481A (zh) * 2011-11-10 2012-06-20 中国科学院上海技术物理研究所 低功耗红外实时信号处理系统的信号处理方法
CN104536921A (zh) * 2015-01-19 2015-04-22 浪潮电子信息产业股份有限公司 一种edma控制器分离式并行数据通道的设计方法
CN104699641A (zh) * 2015-03-20 2015-06-10 浪潮集团有限公司 一种多核dsp系统中edma控制器并行控制的方法

Also Published As

Publication number Publication date
CN105487991A (zh) 2016-04-13

Similar Documents

Publication Publication Date Title
CN105518620B (zh) 一种网卡配置方法及资源管理中心
CN102880573B (zh) 一种基于Linux系统的串行RapidIo数据传输方法
CN110099014A (zh) 云计算系统中报文处理的方法和主机
CN106094801A (zh) 一种新型can fd控制器
CN105244065B (zh) 一种基于fpga技术的核电站dcs控制站架构
CN104518987A (zh) 并行多线程报文处理的方法和装置
CN102811152B (zh) 一种多主总线网络通讯实时交易数据交换实现方法
CN105988948B (zh) 一种数据传输的方法及设备
CN106094800A (zh) 一种新型can fd控制器的管理系统
CN104798010A (zh) 至少部分的串行存储协议兼容帧转换
CN105487991B (zh) 一种多核共用单一edma通道的方法
CN105530157B (zh) Afdx网络交换机多个虚拟链路共享信用的架构及方法
CN104917771B (zh) 一种用单cpu实现安全系统对外安全通讯的装置
CN105487992B (zh) 多通道软硬件并行串口通讯处理方法
CN104767664B (zh) 一种环形通信网络增减从节点的方法、装置及系统
CN106874228A (zh) 基于i2c总线的控制器及通信方法、多控制器间的通信方法
CN103699461A (zh) 一种双主机相互冗余热备份方法
CN108616435A (zh) 基于高速串行总线的双余度系统数据传输方法
CN103617048A (zh) 一种虚拟机连接池分组系统及分组连接方法
CN106896956A (zh) 一种“道”系统下多点触控的实现方法
CN103984544A (zh) 一种避免任务同时执行的方法
CN105634960A (zh) 基于分形树结构的数据发布装置、方法、控制装置及智能芯片
CN105550157B (zh) 一种分形树结构通信结构、方法、控制装置及智能芯片
CN105939242B (zh) 实现虚拟系统的方法及装置
CN104636206A (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
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method for sharing single EDMA (Enhanced Direct Memory Access) channel by multiple cores

Effective date of registration: 20200212

Granted publication date: 20180406

Pledgee: China Co. truction Bank Corp Guangzhou Panyu branch

Pledgor: GUANGZHOU HUIRUI SITONG INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2020980000240

CP03 Change of name, title or address

Address after: 510000 no.2-8, North Street, Nancun Town, Panyu District, Guangzhou City, Guangdong Province

Patentee after: Guangzhou huiruisitong Technology Co.,Ltd.

Address before: No.2, Nancun North Street, Nancun Town, Panyu District, Guangzhou, Guangdong 511442

Patentee before: GUANGZHOU HUIRUI SITONG INFORMATION TECHNOLOGY Co.,Ltd.

CP03 Change of name, title or address
PP01 Preservation of patent right

Effective date of registration: 20221228

Granted publication date: 20180406

PP01 Preservation of patent right
PD01 Discharge of preservation of patent

Date of cancellation: 20240327

Granted publication date: 20180406

PD01 Discharge of preservation of patent