本发明专利技术涉及嵌入式信息处理领域,具体为基于模型驱动的多核DSP自动存储分配技术。其包括如下步骤:S1、建立满足DSP运行的模型/组件设计规范;S2、采用基于“层次化类库”的自动代码生成技术创建模型所需的数据类型、标量、向量,采用“自由组合联合体”功能自动生成单处理器内各模型可共同使用的联合体变量,同时自动生成跨处理器联合体变量,将上述过程融入模型设计规范并由IDE辅助实现;S3、采用基于模板的配置文件生成技术,自动生成工程及相应的存储配置文件。本发明专利技术解决了常规多DSP软件系统存储定义与分配时的问题,极大提升了存储分配时的编码效率、显著降低了出错概率,还从机制上确保了存储资源的节约使用。确保了存储资源的节约使用。确保了存储资源的节约使用。
【技术实现步骤摘要】
基于模型驱动的多核DSP自动存储分配技术
[0001]本专利技术涉及嵌入式信息处理领域,特别是涉及基于模型驱动的多核DSP自动存储分配技术。
技术介绍
[0002]目前,进口TI(C5X、C6X系列)及国产FT(M6678)等多核DSP广泛应用于军事、民用嵌入式处理领域。与X86平台不同,上述DSP(进口TI及国产FT等多核DSP)采用多级数据缓存形式,靠近内核的为L1程序缓存和L1数据缓存,向外依次是L2缓存和多核共享存储器(MSM,MultiCore Shared Memory)及DDR3存储器(Double
‑
Data
‑
Rate Three Synchronous Dynamic Random Access Memory)。存储器越靠近内核,存储器的存储容量越小,但存储器的访问速度越快;存储器越远离内核,存储器的存储容量越大,但存储器的访问速度越低。在内核主频为1GHz的情况下,L1数据缓存和L1程序缓存的通信带宽为32GB/s,L2缓存的通信带宽为16GB/s,多核共享存储器的通信带宽为64GB/s。DDR3存储器在主频为1333MHz的情况下,带宽为10.664GB/s,如图1中C66XX/FT6678存储架构示意图所示,L1数据缓存和L1程序缓存为32KB,L2缓存为512KB,多核共享存储器为4MB,DDR3为2GB。从多核C6678DSP的架构可以看出,当将数据放置在越靠近内核的存储器中时,计算性能越高,但是受存储容量的限制,能完成的任务量较小。
[0003]从上述分析可知,基于多核DSP的软件开发,变量开辟的策略直接决定了代码最终的运行效率与系统的实时性,有时可达5
‑
10倍。常规的变量开辟策略如表1所示:
[0004]表1常规变量开辟策略
[0005][0006][0007]基于表1的变量开辟策略,由多个DSP构成的嵌入式系统,其存储定义与分配通常遵循以下步骤:
[0008]步骤1,编写存储配置文件(CMD文件),设置堆栈与DDR空间。这些操作与硬件底层关系较为紧密,对开发人员要求较高,一旦CMD文件设置有误,将会导致软件运行崩溃或者结果莫名其妙,排查困难且耗时。
[0009]步骤2,确定每个处理器上实现的软件功能,在部署到该处理器的各源文件(一般为C/C++)中定义各种标量、向量、矩阵。往往不同的设计人员有其自己的定义风格,代码不易维护。
[0010]步骤3,根据性能要求,将步骤2中定义的变量合理分配到不同的存储区(L2/MSM/DDR)。
[0011]步骤4,随着功能的增加,变量越来越多,分布范围较广。与此同时,L2/MSM存储区可能会溢出,需要花费大量时间去统筹众多文件中的各种向量/矩阵,否则就需要新增处理器,造成硬件资源浪费。
[0012]步骤5,为了降低复杂系统(多DSP)的软件调试与维护难度,需将若干处理器代码放入同一个工程内,这将导致不同处理器上同一存储区开辟的变量相互叠加,浪费存储空间。为避免此问题,需要定义“联合体变量”,这进一步增加了变量/存储的设计难度,如图2所示。
[0013]目前,在基于多核DSP的嵌入式领域软件开发的存储分配环节,存在如下问题:
[0014]第一,存储分配往往缺乏统一的框架和规范,开发人员的习惯占据主导因素,变量被随意分配到不同文件中,不但容易出错,而且维护和升级困难。
[0015]第二,大都采用完全人工方式进行类型声明和变量定义。不但效率低下还容易出错。
[0016]第三,不同功能间所需的向量往往独占DSP存储,造成存储资源的浪费。当无存储
资源可用时,只能通过扩展硬件的方式来解决,造成系统硬件规模的扩大的成本的增加。
[0017]第四,大都采用人工方式创建工程和存储配置文件,对开发人员的能力提出了更高要求,项目间重复劳动、效率较低,同时也容易出错。
技术实现思路
[0018]本专利技术目的是针对
技术介绍
中存在的问题,提出基于模型驱动的多核DSP自动存储分配技术,有效解决了上述问题,极大提升了存储分配时的编码效率、显著降低了出错概率,还从机制上确保了存储资源的节约使用并支撑了基于模型的系统工程(MBSE)中“信号级”建模与仿真。
[0019]本专利技术的技术方案,基于模型驱动的多核DSP自动存储分配技术,包括如下步骤:
[0020]S1、建立满足DSP运行的模型/组件设计规范;
[0021]S2、采用基于“层次化类库”的自动代码生成技术创建模型所需的数据类型、标量、向量,采用“自由组合联合体”功能自动生成单处理器内各模型可共同使用的联合体变量,同时自动生成跨处理器联合体变量,将上述过程融入模型设计规范并由IDE辅助实现;
[0022]S3、采用基于模板的配置文件生成技术,自动生成工程及相应的存储配置文件。
[0023]优选的,步骤S1中,按照面向对象的设计思想以及MBSE模型抽象的要求,从输入/输出端口、功能实现、控制和接口维度建立模型设计规范,各部分功能如下:
[0024]输入/输出端口:负责模型的I/O,收发数据;
[0025]功能实现:负责模型的功能实现,是文件的集合,每个文件里有若干功能函数,当用户完成配置后,这些文件及功能调度的主入口函数由工具自动生成;
[0026]控制:负责模型功能的调度,决定何种条件、何种时机/时刻调度功能函数;
[0027]接口:负责实现模型的存储与恢复、调试、监控、文件操作。
[0028]优选的,步骤S2中,IDE辅助实现的步骤如下:
[0029]S21、设置模型基本信息:名字、作者、日期、版本和说明;
[0030]S22、设置模型输入、输出、功能实现时所需的可配置参数及运行所需向量。
[0031]优选的,步骤S22包含以下子步骤:
[0032]子步骤1、创建层次化类库,支撑自动生成数据类型定义以及变量开辟,对于用户经常编辑的代码、变量,采用跟随用户编辑而生成变量字符串并写入文件的方式实现自动代码生成,其本质包含字符串生成以及文件生成两个主要流程;
[0033]子步骤2、使用层次化类库,分别生成描述变量类型的头文件、变量定义源文件、描述模型的相关文件;
[0034]子步骤3、合理规划变量的分配方式。
[0035]优选的,子步骤3的具体策略如下:
[0036]首先,针对多个模型运行在同一处理器的单处理器多模型场景,分析模型运行顺序,将串行执行的模型中相同存储空间的向量进行组合,形成跨模型的联合体变量;
[0037]其次,针对同属一个工程的多处理器多模型场景,IDE自动将每个处理器的数组、结构体、联合体组合成最顶层的“大结构体”,然后将该工程下的所有顶层“大结构体”自动联合;
[0038]最后,调用模型文件生成类创建每个模型对应的.h和.cpp文件。
[0039]优选的,步骤S3的具体步骤如下:
[0040]S本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.基于模型驱动的多核DSP自动存储分配技术,其特征在于,包括如下步骤:S1、建立满足DSP运行的模型/组件设计规范;S2、采用基于“层次化类库”的自动代码生成技术创建模型所需的数据类型、标量、向量,采用“自由组合联合体”功能自动生成单处理器内各模型可共同使用的联合体变量,同时自动生成跨处理器联合体变量,将上述过程融入模型设计规范并由IDE辅助实现;S3、采用基于模板的配置文件生成技术,自动生成工程及相应的存储配置文件。2.根据权利要求1所述的基于模型驱动的多核DSP自动存储分配技术,其特征在于,步骤S1中,按照面向对象的设计思想以及MBSE模型抽象的要求,从输入/输出端口、功能实现、控制和接口维度建立模型设计规范,各部分功能如下:输入/输出端口:负责模型的I/O,收发数据;功能实现:负责模型的功能实现,是文件的集合,每个文件里有若干功能函数,当用户完成配置后,这些文件及功能调度的主入口函数由工具自动生成;控制:负责模型功能的调度,决定何种条件、何种时机/时刻调度功能函数;接口:负责实现模型的存储与恢复、调试、监控、文件操作等。3.根据权利要求1所述的基于模型驱动的多核DSP自动存储分配技术,其特征在于,步骤S2中,IDE辅助实现的步骤如下:S21、设置模型基本信息:名字、作者、日期、版本和说明;S22、设置模型输入、输出、功能实现时所需的可配置参数及运行所需向量。4.根据权利要求3所述的基于模型驱动的多核DSP自动存储分配技术,其特征在于,步骤S22包含以下子步骤:子步骤1、创建...
【专利技术属性】
技术研发人员:周鸣刚,付海帆,
申请(专利权)人:数字源生武汉科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。