CN103019838B - 一种基于多dsp处理器平台的分布式实时多任务操作系统 - Google Patents
一种基于多dsp处理器平台的分布式实时多任务操作系统 Download PDFInfo
- Publication number
- CN103019838B CN103019838B CN201210459048.XA CN201210459048A CN103019838B CN 103019838 B CN103019838 B CN 103019838B CN 201210459048 A CN201210459048 A CN 201210459048A CN 103019838 B CN103019838 B CN 103019838B
- Authority
- CN
- China
- Prior art keywords
- task
- unit
- scheduling
- communication unit
- ready
- 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
Links
Landscapes
- Multi Processors (AREA)
Abstract
一种基于多DSP处理器平台的分布式实施多任务操作系统属于嵌入式操作系统领域,其特征在于,这是一个在多DSP处理器平台的每个DSP处理器上对内设的多个处理模块进行实时调度的分布式实时操作系统,设有:存储并管理各输入、各输出任务的存储管理模块、与主控机或内设的任务调度模块进行内外通信的是输入待处理任务或输出已处理任务的任务通信模块以及所述的任务调度模块,所述任务调度模块把来自所述任务通信模块的待处理任务按任务的实时状态动态的分成等待态任务、就绪态任务和输出态任务,按任务处理过程依次扫描以完成等待——就绪、就绪——输出的任务实时状态的转换过程。本发明能在一个多DSP处理器平台的每一个处理节点上同时对各个任务模块进行实时调度并保证完成处理任务并输出。
Description
技术领域
本发明属于嵌入式操作系统领域,尤其涉及基于多DSP处理器平台的分布式实时多任务操作系统。
背景技术
随着现今DSP技术的发展,DSP被越来越多的用于消费电子、通信、军事等领域,基于DSP系统的软件开发经历了无操作系统开发和基于操作系统开发两个阶段。在无操作系统的开发阶段中,系统没有操作系统的支持,通常通过汇编语言来访问底层硬件资源。这类系统一般功能单一,针对性强,且无用户接口。在有操作系统的开发阶段中,系统能够支持多任务处理,具有通信管理、内存管理、调度管理等功能,开发人员无须了解底层硬件结构便能进行软件开发。尽管基于操作系统的DSP开发有若干优势,在实时性要求非常强的场合,系统一般还是会采取无操作系统的开发方法,这是因为使用操作系统会带来额外的开销。VDK(VisualDSPKernel)是ADI公司推出的商业操作,随VisualDSP一起出售。其特点是(1)基于优先级的调度系统,对于不同优先级的任务来说,处理器资源优先分配给高优先级任务,对于同一优先级任务来说,处理器轮流分配给不同任务。(2)使用信号量、消息通信机制完成线程间同步。
经过对现有技术的研究,VDK具有一下不足之处:
(1)作为一款商业操作系统,VDK并不开源,因而不能根据实际处理任务需求对其进行改进(2)对多DSP处理器平台支持不好(3)实时性差,面对高速信号处理系统性能有待提高(4)支持任务个数有限,无法处理复杂的多任务处理任务。
发明内容
本发明针对现有技术存在的上述不足,提出一种基于多DSP处理器平台的分布式实时多任务处理系统,采用非抢占调度策略作为调度内核,支持任意多个处理任务,改善了系统实时性。
本发明的特征在于,这是一个在多DSP处理器平台的每个DSP处理器上对内部建立的多个处理模块进行实时调度的分布式实时操作系统,包括:任务调度模块,存储管理模块和任务通信模块,其中:
存储管理模块,包括相互连接的内存池管理单元和内存池单元,以传输任务访问请求,其中:
内存池单元,共有N个内存块,分别存储每个处理任务的任务输入数据,每个处理任务的任务输出数据和所有所述DSP处理器任务的中间变量缓存数据,
内存池管理单元,用以维护分别记录了N个内存块使用情况的共N个使用信息mem_use_info的数据结构,
所述内存池管理单元按以下步骤进行管理:
第一步:各内存块初始化,
第二步:判断是否接收到包括对内存池的存储空间的申请及其容量在内的内存使用信息:
若不存在,则返回第一步,
若存在,则查找所述各条使用信息中是否存在满足申请大小的内存块,若不存在,则返回第一步,若存在,则获取内存起始地址ptr,
第三步,更新第二步中找到的内存块中的内存使用信息,返回第一步,
任务通信管理模块,包括:任务信息通信单元,和任务数据通信单元,其中:
任务信息通信单元,传输来自主控机或者所述任务调度模块的定长的任务信息字,长度为64字,包括:发送任务编号、发送任务的DSP处理器、接受任务编号、接受任务的DSP处理器、任务数据长度和任务模式码,
任务数据通信单元,传输来自所述主控机或DSP处理器的任务长度的任务数据,
所述任务通信单元,按以下步骤与作为发送节点的所述主控机进行任务通信:
第一步,所述任务通信单元获得所述任务信息字,
第二步,作为所述发送节点的主控机或DSP处理器生成任务信息字并发送,
第三步,所述任务信息通信单元接受任务信息字,并配置所述任务数据通信单元,
第四步,所述任务通信单元接受来自所述发送单元的指定长度、指定任务的数据,
任务调度模块,包括:调度模块单元、等待态任务队列单元、就绪态任务队列单元和输出态任务队列单元,所述任务调度模块按以下步骤进行任务调度执行,
第一步,初始状态下,所述调度执行单元把从所述任务通信模块接收到的所有任务置于等待态任务队列单元,
第二步,所述调度执行单元扫描所述等待态任务队列单元,判断是否存在准备就绪的任务,
若:有准备就绪的任务,则把所述准备就绪任务置于就绪态任务队列单元,
若:没有,则返回第一步,
第三步,所述调度执行单元扫描所述就绪态任务队列单元,判断是否存在已处理就绪的任务:
若:存在则把所述已处理就绪的任务置于输出态任务队列中,
若:没有,返回第二步,
第四步,所述调度执行单元扫描输出态任务队列单元,判断是否存在等待输出的任务,
若:有,则把所述等待输出的任务发送给所述任务信息通信单元和任务数据通信单元,供向所述主控机或DSP处理器节点发送用,
若:没有,则返回第三步,
第五步,循环第二步到第四步,一直到全部处理并输出所有已接收的任务后,返回第一步。
本发明具有以下有益效果及优点:
在多DSP处理器平台的一个处理节点上,可以同时处理多个任务模块,对各个任务模块进行实时调度并保证每个任务模块都能正确运行;分布式实时多任务处理系统保证处理过程满足雷达信号处理的实时性要求。
附图说明
图1为分布式实时操作系统的结构框图;
图2为分布式实时操作系统存储管理模块框图;
图3为分布式实时操作系统任务通信流程图;
图4为分布式实时操作系统多任务调度方法流程图。
具体实施方式
本发明是通过以下技术方案实现的,本发明包括:存储管理模块、任务通信模块、任务调度模块,其中:存储管理模块与处理任务相连接并传输内存访问信息,任务调度模块和任务通信模块相连接并传输任务数据通信信息。
所述的任务存储管理模块包括:内存池管理单元和内存池单元,其中内存池管理单元和内存池单元连接并传输内存访问请求信息。
所述的任务通信模块管理模块包括:任务信息通信单元和任务数据通信单元,任务信息通信单元传输定长的任务信息字,任务数据通信单元传输任意长度的任务数据。任务间的通信有以下步骤:
步骤1:接收节点任务信息通信单元等待接受任务信息字;
步骤2:发送节点任务信息通信单元生成任务信息字并发送;
步骤3:接收节点任务信息通信单元接受任务信息字并配置任务数据通信单元;
步骤4:发送节点任务数据通信单元发送任务数据;
步骤5:接收节点任务数据通信单元接收任务数据。
所述的任务调度模块包括:调度执行单元、等待态任务队列单元、就绪态任务队列单元和输出态任务队列单元。任务执行步骤是:
步骤1:初始状态下,调度执行单元将所有任务置于等待态任务队单元列中;
步骤2:调度执行单元扫描等待态任务队列单元,若有任务准备好运行,将该任务置于就绪态任务队列单元中;
步骤3:调度执行单元扫描就绪态队列任务单元中,若有任务存在,执行该任务,并将该任务置于输出态任务队列单元中;
步骤4:调度执行单元扫描输出态任务队列单元中,若有任务存在,将该任务信息发送给任务通信单元,任务通信模块将任务输出数据发送后,调度执行单元将该任务置于等待态队列单元中。
下面结合附图,对优选实施例作详细说明。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。
如图1所示,本实施例包括以下模块:存储管理模块、任务通信模块、任务调度模块,其中:存储管理模块与处理任务相连接并传输内存访问信息,任务调度模块和任务通信模块相连接并传输任务通信信息,任务调度模块与处理任务相连接并在处理任务输入数据准备好时选中处理任务执行。
如图2所示,本实施例存储管理模块包括:内存池管理单元和内存池单元,其中内存池管理单元和内存池单元连接并传输内存访问请求信息。本实施例中,内存池单元中有6个内存块,内存池管理单元中维护6个mem_use_info数据结构,分别记录6个内存块的使用情况。处理任务对内存的操作分为两种:申请空间和释放空间。
存储管理模块处理申请空间的步骤是:
第一步:各内存块初始化,
第二步:判断是否接收到对内存池的存储空间的申请及其容量,
若不存在,则返回第一步,
若存在,则查找所述各条使用信息中是否存在满足申请大小的内存块,若不存在,则返回第一步,若存在,则获取内存起始地址ptr,
第三步,更新第二步中找到的内存块中的内存使用信息,返回第一步
所述的任务通信模块管理模块包括:任务信息通信单元和任务数据通信单元,任务信息通信单元传输定长的任务信息字,任务数据通信单元传输任意长度的任务数据。任务间的通信步骤如图3所示。
本实例中,任务信息字是一个长度为64字的信息字,其内容包括发送任务编号、发送任务所在节点、接收任务编号、接收任务所在节点、任务数据长度、任务模式码。接收端任务信息通信单元收到该信息字后配置任务数据通信单元,任务数据通信单元接收指定长度、指定任务的数据。
所述的任务调度模块包括:调度执行单元、等待态任务队列单元、就绪态任务队列单元和输出态任务队列单元。任务执行步骤如图4所示。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (1)
1.一种基于多DSP处理器平台的分布式实时多任务操作系统,其特征在于,这是一个在多DSP处理器平台的每个DSP处理器上对内部建立的多个处理模块进行实时调度的分布式实时操作系统,包括:任务调度模块,存储管理模块和任务通信模块,其中:
存储管理模块,包括相互连接的内存池管理单元和内存池单元,以传输任务访问请求,其中:
内存池单元,共有N个内存块,分别存储每个处理任务的任务输入数据,每个处理任务的任务输出数据和所有所述DSP处理器任务的中间变量缓存数据,
内存池管理单元,用以维护分别记录了N个内存块使用情况的共N个使用信息mem_use_info的数据结构,
所述内存池管理单元按以下步骤进行管理:
第一步:各内存块初始化,
第二步:判断是否接收到包括对内存池的存储空间的申请及其容量在内的内存使用信息:
若不存在,则返回第一步,
若存在,则查找所述各条使用信息中是否存在满足申请大小的内存块,若不存在,则返回第一步,若存在,则获取内存起始地址ptr,
第三步,更新第二步中找到的内存块中的内存使用信息,返回第一步,
任务通信管理模块,包括:任务信息通信单元,和任务数据通信单元,其中:
任务信息通信单元,传输来自主控机或者任务调度模块的定长的任务信息字,长度为64字,包括:发送任务编号、发送任务的DSP处理器、接受任务编号、接受任务的DSP处理器、任务数据长度和任务模式码,
任务数据通信单元,传输来自所述主控机或DSP处理器的任务长度的任务数据,
所述任务通信单元,按以下步骤与作为发送节点的所述主控机进行任务通信:
第一步,所述任务通信单元获得所述任务信息字,
第二步,作为所述发送节点的主控机或DSP处理器生成任务信息字并发送,
第三步,所述任务信息通信单元接受任务信息字,并配置所述任务数据通信单元,
第四步,所述任务通信单元接受来自发送单元的指定长度、指定任务的数据,
任务调度模块,包括:调度模块单元、等待态任务队列单元、就绪态任务队列单元和输出态任务队列单元,所述任务调度模块按以下步骤进行任务调度执行,
第一步,初始状态下,调度执行单元把从任务通信模块接收到的所有任务置于等待态任务队列单元,
第二步,所述调度执行单元扫描等待态任务队列单元,判断是否存在准备就绪的任务,
若:有准备就绪的任务,则把所述准备就绪任务置于就绪态任务队列单元,
若:没有,则返回第一步,
第三步,所述调度执行单元扫描就绪态任务队列单元,判断是否存在已处理就绪的任务:
若:存在则把所述已处理就绪的任务置于输出态任务队列中,
若:没有,返回第二步,
第四步,所述调度执行单元扫描输出态任务队列单元,判断是否存在等待输出的任务,
若:有,则把所述等待输出的任务发送给所述任务信息通信单元和任务数据通信单元,供向所述主控机或DSP处理器节点发送用,
若:没有,则返回第三步,
第五步,循环第二步到第四步,一直到全部处理并输出所有已接收的任务后,返回第一步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210459048.XA CN103019838B (zh) | 2012-11-14 | 2012-11-14 | 一种基于多dsp处理器平台的分布式实时多任务操作系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210459048.XA CN103019838B (zh) | 2012-11-14 | 2012-11-14 | 一种基于多dsp处理器平台的分布式实时多任务操作系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103019838A CN103019838A (zh) | 2013-04-03 |
CN103019838B true CN103019838B (zh) | 2015-07-08 |
Family
ID=47968469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210459048.XA Active CN103019838B (zh) | 2012-11-14 | 2012-11-14 | 一种基于多dsp处理器平台的分布式实时多任务操作系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103019838B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103440373A (zh) * | 2013-08-25 | 2013-12-11 | 浙江大学 | 一种多dsp系统的互联配置模拟方法 |
US9367504B2 (en) * | 2013-12-20 | 2016-06-14 | International Business Machines Corporation | Coherency overcommit |
CN104360962B (zh) * | 2014-11-21 | 2015-10-28 | 北京应用物理与计算数学研究所 | 匹配于高性能计算机结构的多级嵌套数据传输方法与系统 |
JP6796589B2 (ja) * | 2015-02-10 | 2020-12-09 | ピュア ストレージ, インコーポレイテッド | ストレージシステムアーキテクチャー |
CN107832129B (zh) * | 2017-10-24 | 2020-05-19 | 华中科技大学 | 一种面向分布式流计算系统的动态任务调度优化方法 |
CN109840137B (zh) * | 2017-11-28 | 2021-01-22 | 大唐移动通信设备有限公司 | 一种跨核调度方法和装置 |
CN109309672B (zh) * | 2018-09-17 | 2020-11-13 | 南京海兴电网技术有限公司 | 一种基于Web的空间数据实时推送多任务调度方法 |
CN111324427B (zh) * | 2018-12-14 | 2023-07-28 | 深圳云天励飞技术有限公司 | 一种基于dsp的任务调度方法及装置 |
CN110245127A (zh) * | 2019-06-12 | 2019-09-17 | 成都九洲电子信息系统股份有限公司 | 一种基于流程控制的数据迁移方法 |
CN111767141A (zh) * | 2020-06-22 | 2020-10-13 | 北京紫玉伟业电子科技有限公司 | 一种基于多处理器的分布式实时多任务调度方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070090649A (ko) * | 2006-03-03 | 2007-09-06 | 삼성전자주식회사 | 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법 |
CN101261591A (zh) * | 2008-04-28 | 2008-09-10 | 艾诺通信系统(苏州)有限责任公司 | 多核dsp系统中自适应的任务调度方法 |
CN102073481A (zh) * | 2011-01-14 | 2011-05-25 | 上海交通大学 | 多核dsp可重构专用集成电路系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8463865B2 (en) * | 2010-03-09 | 2013-06-11 | Texas Instruments Incorporated | Video synchronization with distributed modules |
-
2012
- 2012-11-14 CN CN201210459048.XA patent/CN103019838B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070090649A (ko) * | 2006-03-03 | 2007-09-06 | 삼성전자주식회사 | 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법 |
CN101261591A (zh) * | 2008-04-28 | 2008-09-10 | 艾诺通信系统(苏州)有限责任公司 | 多核dsp系统中自适应的任务调度方法 |
CN102073481A (zh) * | 2011-01-14 | 2011-05-25 | 上海交通大学 | 多核dsp可重构专用集成电路系统 |
Non-Patent Citations (2)
Title |
---|
汤小为,汤俊,彭应宁.《数字阵列雷达并行信号处理算法及实现》.《信息与电子工程》.2009,第7卷(第4期), * |
陆俊江,汤俊,张曦,汤小为.《一种雷达信号处理多任务调度算法》.《信息与电子工程》.2012,第10卷(第4期), * |
Also Published As
Publication number | Publication date |
---|---|
CN103019838A (zh) | 2013-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103019838B (zh) | 一种基于多dsp处理器平台的分布式实时多任务操作系统 | |
CN112465129B (zh) | 片内异构人工智能处理器 | |
US20130283286A1 (en) | Apparatus and method for resource allocation in clustered computing environment | |
US8209690B2 (en) | System and method for thread handling in multithreaded parallel computing of nested threads | |
CN101887382B (zh) | 动态优先级的仲裁方法及装置 | |
CN106648896B (zh) | 一种Zynq芯片在异构称多处理模式下双核共享输出外设的方法 | |
CN108351783A (zh) | 多核数字信号处理系统中处理任务的方法和装置 | |
CN104657308A (zh) | 一种用fpga实现的服务器硬件加速的方法 | |
CN116243995B (zh) | 通信方法、装置、计算机可读存储介质以及电子设备 | |
CN112035388B (zh) | 一种基于PCI-e通道的高性能加解密方法 | |
CN112612523B (zh) | 一种嵌入式设备驱动系统及方法 | |
CN116244229B (zh) | 硬件控制器的访问方法、装置、存储介质和电子设备 | |
CN110990154A (zh) | 一种大数据应用优化方法、装置及存储介质 | |
CN102760073B (zh) | 一种任务调度方法、系统及装置 | |
CN116795647A (zh) | 一种数据库异构资源管理与调度方法、装置、设备及介质 | |
CN112395056A (zh) | 一种嵌入式非对称实时系统及电力二次设备 | |
CN113608861B (zh) | 一种软件化载荷计算资源虚拟化分配方法及装置 | |
CN113076180B (zh) | 上行数据通路的构建方法及数据处理系统 | |
CN113076189B (zh) | 具有多数据通路的数据处理系统及用多数据通路构建虚拟电子设备 | |
CN113721989A (zh) | 一种多处理器并行操作系统及计算机架构 | |
CN111767141A (zh) | 一种基于多处理器的分布式实时多任务调度方法 | |
CN112883110A (zh) | 一种基于nifi的终端大数据分发方法、存储介质及系统 | |
KR100921504B1 (ko) | 다중 프로세서를 구비한 시스템 온 칩 시스템 내의프로세서간 통신 장치 및 방법 | |
CN113806064A (zh) | 作业调度方法、装置、系统及作业派发装置 | |
Yazdanpanah et al. | A comprehensive view of MapReduce aware scheduling algorithms in cloud environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CB03 | Change of inventor or designer information |
Inventor after: Tang Jun Inventor after: Zhang Xi Inventor after: Tang Xiaowei Inventor after: Lu Junjiang Inventor after: Li Ning Inventor before: Tang Jun Inventor before: Zhang Xi Inventor before: Tang Xiaowei Inventor before: Lu Junjiang Inventor before: Li Ning Inventor before: Du Jinsong |
|
CB03 | Change of inventor or designer information |