一种基于核间中断的DSP多核并行计算调度方法技术

技术编号:20763613 阅读:40 留言:0更新日期:2019-04-03 14:13
本发明专利技术公开了一种基于核间中断的DSP多核并行计算调度方法。该调度方法包括:根据使用的并行计算模型,在源代码中配置核间关系数据结构;在源代码中为核间关系数据结构中的前向缓冲区和后向缓冲区配置缓冲区数据结构;将源代码编译成可执行的二进制文件,并下载到DSP中;DSP运行程序,其中核0通过核间中断控制各个处理周期的开始和结束,并对部分数据进行处理;同时,除核0以外的核按照核间中断的周期进行数据处理。本调度方法能够在不使用任何操作系统的情况下实现DSP的多核并行计算。并支持多种并行计算模型,使得其具有很高的通用性。

【技术实现步骤摘要】
一种基于核间中断的DSP多核并行计算调度方法
本专利技术涉及一种DSP多核并行计算调度方法,尤其涉及一种基于核间中断的DSP多核并行计算调度方法。
技术介绍
在DSP(数字信号处理器)领域,目前最为流行的多核并行计算机制是TI公司(TexasInstruments,美国德州仪器)的SYS/BIOS操作系统。这个操作系统对底层的硬件细节进行了封装,极大的降低了使用多核DSP的技术门槛。特别的,TI公司还将并行计算应用程序接口OpenMP移植到了SYS/BIOS操作系统中,使程序员能够较为容易的将原有的单核运行程序转化为多核并行计算的程序。但是,一些应用领域对处理数据的延时有着苛刻的要求。如果使用操作系统,将很难精确的控制每项计算任务所引起的延时。这在对延时特别敏感、可靠性要求特别高的应用场景中是不满足要求的。例如无线通信技术中,LTE等通信协议规定了物理层在一定的时间之内需要确保将接收到的数据包传递给上层。一旦超时就认为这个数据包传送失败。如果数据包中包含了通信协议中的控制信息,还会导致接下来的一连串数据包接收失败。此外,在现有文献中(如参考文献[1]杨方,基于TMS320C6678的多核DSP并行处理应用技术研究,北京理工大学硕士论文,2014年6月),针对FFT(快速傅里叶变换)、雷达成像等应用场景开发了专门的并行处理机制,但是这些并行处理机制大都针对具体的计算任务进行了定制化的设计,缺乏通用性,因而很难直接应用到其它计算任务中。例如,上述参考文献[1]中的并行机制只适合于主从模型,而无法实现通信系统中需要的数据流模型。
技术实现思路
本专利技术所要解决的技术问题在于提供一种基于核间中断的DSP多核并行计算调度方法。为了实现上述目的,本专利技术采用下述技术方案:一种基于核间中断的DSP多核并行计算调度方法,包括如下步骤:步骤S1:根据使用的并行计算模型,在源代码中配置核间关系数据结构;步骤S2:在源代码中为核间关系数据结构中的前向缓冲区和后向缓冲区配置缓冲区数据结构;步骤S3:将源代码编译成可执行的二进制文件,并下载到DSP中;步骤S4:DSP运行程序,其中核0通过核间中断控制各个处理周期的开始和结束,并对部分数据进行处理;同时,除核0以外的核按照核间中断的周期进行数据处理。其中较优地,所述核间关系数据结构用于描述DSP的各个核之间的输入输出关系,所述核间关系数据结构如下:其中,所述前向核,是指在核间关系连接示意图中与某个核直接相连且位于该核之前的核,所述前向核用于往核间缓冲区写数据;所述后向核,是指在核间关系连接示意图中与某个核直接相连且位于该核之后的核,所述后向核用于从核间缓冲区读数据;前向核/后向核的编号数组中包含了当前核所有的前向核/后向核的编号;前向缓冲区用于存放当前核的输入数据,后向缓冲区用于存放当前核的输出数据;前向/后向缓冲区指针数组中包含了所有指向前向/后向缓冲区的指针;前向/后向缓冲区指针的数量则说明了当前核有多少个前向/后向缓冲区指针。其中较优地,所述缓冲区数据结构作为前向缓冲区或后向缓冲区,用于放置两个直接相连的核之间的数据,所述缓冲区数据结构如下:其中,所述数据指针0和所述数据指针1分别用于指向乒乓结构的两块内存区域;所述缓冲区数据长度是指每块内存区域的长度;缓冲区读取指示器用来说明在当前周期内,两块内存区域中的哪一块存放有供读取的数据;缓冲区类型用来说明该缓冲区是否为乒乓结构。其中较优地,步骤S4中,核0通过核间中断控制各个处理周期的开始和结束,并对部分数据进行处理的过程,包括如下子步骤:步骤S41:核0向其它所有核发送中断信号,通知这些核开始进行数据处理;步骤S42:根据核间关系数据结构,获取核0的所有前向核的数量,各个前向核的编号,以及指向各个前向核对应的缓冲区数据结构的指针;步骤S43:根据所获取的所有前向核的相关信息,读入各个前向核在本周期内的输入数据;步骤S44:对获取的数据进行处理;步骤S45:根据核间关系数据结构,获取核0的所有后向核的数量,各个后向核的编号,以及指向各个后向核对应的缓冲区数据结构的指针;步骤S46:根据所获取的所有后向核的相关信息,写回核0在本周期内的输出数据;步骤S47:核0查询中断源标志位是否被清除,以此确认其它核是否完成了数据处理;步骤S48:待所有核都完成数据处理之后,转到步骤S41开始下一个周期的数据处理。其中较优地,步骤S4中,除核0以外的核按照核间中断的周期进行数据处理的过程,包括如下子步骤:步骤S41′:收到核0发来的中断信号后,进入中断服务程序;步骤S42′:确认中断源标志位是否为0;如果不为0,则转到步骤S50′;如果为0,则继续进入下一步;步骤S43′:检查缓冲区读取指示器的值;如果缓冲区读取指示器等于-1,那么没有输入数据,转到步骤S49′;如果缓冲区读取指示器等于0或1,那么当前周期有输入数据,继续进入下一步;步骤S44′:根据核间关系数据结构,获取当前核的所有前向核的数量,各个前向核的编号,以及指向各个前向核对应的缓冲区数据结构的指针;步骤S45′:根据所获取的所有前向核的相关信息,读入各个前向核在本周期内的输入数据;步骤S46′:对读入的数据进行处理;步骤S47′:根据核间关系数据结构,获取当前核的所有后向核的数量,各个后向核的编号,以及指向各个后向核对应的缓冲区数据结构的指针;步骤S48′:根据所获取的所有后向核的相关信息,写回当前核在本周期内的输出数据;步骤S49′:清除中断源标志位;步骤S50′:结束中断服务程序。其中较优地,在根据所获取的所有前向核的相关信息,读入各个前向核在本周期内的输入数据的过程中,依次对每一个前向核执行如下子步骤:步骤S120:丢弃预取器中的数据以及L1数据缓存中的旧数据;步骤S121:根据指向缓冲区数据结构的指针,读取到缓冲区数据结构;步骤S122:根据缓冲区读取指示器的值,找到指向输入数据的数据指针;步骤S123:丢弃预取器中的数据以及L1数据缓存中的旧数据;步骤S124:通过数据指针读取输入数据;步骤S125:判断是否已经遍历所有的前向核;如果否,则转到步骤S120;如果是,则结束。其中较优地,在根据所获取的所有后向核的相关信息,写回当前核在本周期内的输出数据的过程中,依次对每一个后向核执行如下子步骤:步骤S210:丢弃预取器中的数据以及L1数据缓存中的旧数据;步骤S211:根据指向缓冲区数据结构的指针,读取到缓冲区数据结构。步骤S212:根据缓冲区读取指示器的值,找到指向输出数据的数据指针;步骤S213:更新缓冲区读取指示器;步骤S214:对L1数据缓存执行写回的操作;步骤S215:通过数据指针写回输出数据;步骤S216:对L1数据缓存执行写回的操作;步骤S217:判断是否已经遍历所有的后向核;如果否,则转到步骤S210;如果是,则结束。本专利技术所提供的基于核间中断的DSP多核并行计算调度方法可以应用于多种并行计算模型中,使得其具有很高的通用性。并且,本调度方法能够在不使用任何操作系统的情况下实现DSP的多核并行计算,解决了现有调度方法使用操作系统后,很难精确的控制每项计算任务所引起的延时的问题。附图说明图1为本专利技术所提供的基于核间中断的DSP多核并行计算调度方法的流程图;图2本文档来自技高网...

【技术保护点】
1.一种基于核间中断的DSP多核并行计算调度方法,其特征在于包括如下步骤:步骤S1:根据使用的并行计算模型,在源代码中配置核间关系数据结构;步骤S2:在源代码中为核间关系数据结构中的前向缓冲区和后向缓冲区配置缓冲区数据结构;步骤S3:将源代码编译成可执行的二进制文件,并下载到DSP中;步骤S4:DSP运行程序,其中核0通过核间中断控制各个处理周期的开始和结束,并对部分数据进行处理;同时,除核0以外的核按照核间中断的周期进行数据处理。

【技术特征摘要】
1.一种基于核间中断的DSP多核并行计算调度方法,其特征在于包括如下步骤:步骤S1:根据使用的并行计算模型,在源代码中配置核间关系数据结构;步骤S2:在源代码中为核间关系数据结构中的前向缓冲区和后向缓冲区配置缓冲区数据结构;步骤S3:将源代码编译成可执行的二进制文件,并下载到DSP中;步骤S4:DSP运行程序,其中核0通过核间中断控制各个处理周期的开始和结束,并对部分数据进行处理;同时,除核0以外的核按照核间中断的周期进行数据处理。2.如权利要求1所述的DSP多核并行计算调度方法,其特征在于:所述核间关系数据结构用于描述DSP的各个核之间的输入输出关系,所述核间关系数据结构如下:其中,所述前向核,是指在核间关系连接示意图中与某个核直接相连且位于该核之前的核,所述前向核用于往核间缓冲区写数据;所述后向核,是指在核间关系连接示意图中与某个核直接相连且位于该核之后的核,所述后向核用于从核间缓冲区读数据;前向核/后向核的编号数组中包含了当前核所有的前向核/后向核的编号;前向缓冲区用于存放当前核的输入数据,后向缓冲区用于存放当前核的输出数据;前向/后向缓冲区指针数组中包含了所有指向前向/后向缓冲区的指针;前向/后向缓冲区指针的数量则说明了当前核有多少个前向/后向缓冲区指针。3.如权利要求2所述的DSP多核并行计算调度方法,其特征在于:所述缓冲区数据结构作为前向缓冲区或后向缓冲区,用于放置两个直接相连的核之间的数据,所述缓冲区数据结构如下:其中,所述数据指针0和所述数据指针1分别用于指向乒乓结构的两块内存区域;所述缓冲区数据长度是指每块内存区域的长度;缓冲区读取指示器用来说明在当前周期内,两块内存区域中的哪一块存放有供读取的数据;缓冲区类型用来说明该缓冲区是否为乒乓结构。4.如权利要求3所述的DSP多核并行计算调度方法,其特征在于:步骤S4中,核0通过核间中断控制各个处理周期的开始和结束,并对部分数据进行处理的过程,包括如下子步骤:步骤S41:核0向其它所有核发送中断信号,通知这些核开始进行数据处理;步骤S42:根据核间关系数据结构,获取核0的所有前向核的数量,各个前向核的编号,以及指向各个前向核对应的缓冲区数据结构的指针;步骤S43:根据所获取的所有前向核的相关信息,读入各个前向核在本周期内的输入数据;步骤S44:对获取的数据进行处理;步骤S45:根据核间关系数据结构,获取核0的所有后向核的数量,各个后向核的编号,以及指向各个后向核对应的缓冲区数据结构的指针;步骤S46:根据所获取的所有后向核的相关信息,写回核0在本周期内的输出数据;步骤S47:核0查询中断源标志位是否被清除,以此确认其它核是否完成了数据处理;步骤S48:...

【专利技术属性】
技术研发人员:王旭马慧舒睿俊徐景张武雄
申请(专利权)人:上海无线通信研究中心
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1