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

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

Info

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

Claims (5)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106155960A (zh) * 2016-06-29 2016-11-23 广州慧睿思通信息科技有限公司 基于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控制器并行控制的方法

Cited By (2)

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

Also Published As

Publication number Publication date
CN105487991B (zh) 2018-04-06

Similar Documents

Publication Publication Date Title
JP6653366B2 (ja) 計算タスクを処理するためのコンピュータクラスタ構成、およびそれを動作させるための方法
CN102880573B (zh) 一种基于Linux***的串行RapidIo数据传输方法
CN110099014A (zh) 云计算***中报文处理的方法和主机
CN103248700B (zh) 云平台虚拟机内外网不同级别限速的方法
WO2024032017A1 (zh) 一种多核并行仿真方法及实现多核并行仿真的平台架构
CN109447225A (zh) 一种高速安全加密Micro SD卡
CN104317661A (zh) 嵌入式双***的***间通信方法及装置
CN113032166B (zh) 核间通信的方法、处理器、核间通信***及计算机可读存储介质
CN107450987A (zh) 一种高可用的异构服务器
CN102811152B (zh) 一种多主总线网络通讯实时交易数据交换实现方法
CN103746959A (zh) OSGi环境下Java和C的通信机制的实现方法
CN109284192A (zh) 参数配置方法及电子设备
CN110213147A (zh) 一种云网络互通方法、装置、存储介质及终端设备
CN109542832B (zh) 一种无锁机制的异构多核cpu间通信***及方法
CN102063337A (zh) 多处理器核的信息交互和资源分配的方法及***
CN105487991A (zh) 一种多核共用单一edma通道的方法
CN103617048B (zh) 一种虚拟机连接池分组***及分组连接方法
CN109729731B (zh) 一种加速处理方法及设备
CN109669788A (zh) 面向直接内存访问互连通信的多核芯片的mpi实现方法
CN102841875A (zh) 一种具有智能总线接口的主机及安防***
CN104104594B (zh) Vsu的协议报文发送与接收方法、设备及***
CN204390237U (zh) 一种基于pci-e总线技术的加解密卡
CN103984544A (zh) 一种避免任务同时执行的方法
CN102299820A (zh) 一种盟员节点装置及hla***构架的实现方法
CN109376106A (zh) 一种用于服务器的pcie扩展***及方法

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