CN105260164A - 一种支持多任务并行的多核SoC架构设计方法 - Google Patents
一种支持多任务并行的多核SoC架构设计方法 Download PDFInfo
- Publication number
- CN105260164A CN105260164A CN201510621521.3A CN201510621521A CN105260164A CN 105260164 A CN105260164 A CN 105260164A CN 201510621521 A CN201510621521 A CN 201510621521A CN 105260164 A CN105260164 A CN 105260164A
- Authority
- CN
- China
- Prior art keywords
- core
- fpga
- module
- microblaze
- double
- 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
Links
Landscapes
- Multi Processors (AREA)
Abstract
本发明涉及一种支持多任务并行的多核SoC架构设计方法,该方法主要包括:搭建MicroBlaze双核模块和ARM双核模块,并基于此设计基于多核多线程的多任务并行执行模块,同时基于FPGA设计硬件加速模块。本发明通过FPGA同时采集外部多路数据,然后将多路数据传输到不同核上并行执行,其中设计FPGA通过User-IP与MicroBlaze双核交互、FPGA通过User-IP和Linux驱动模块与ARM双核交互、MicroBlaze双核之间通过MailBox交互、ARM双核之间通过Cache交互、MicroBlaze双核与ARM双核之间通过OCM交互。本发明通过构建多核SoC架构,能够实现多任务在多核上的并行执行,极大地提升多任务的执行效率。
Description
技术领域
本发明属于电子工程和计算机科学领域。本发明具体涉及一种支持多任务并行的多核SoC架构设计方法,旨在通过构建多核SoC架构,实现多任务在多核上的并行执行,以提升多任务的执行效率。
背景技术
随着无人机技术及其装备的研究和应用,如何进一步提升无人机机载控制系统的性能就显得很有必要。无人机机载控制系统主要包括惯性导航模块、GPS/北斗导航模块、地形匹配导航模块以及各种参数的采集与计算等。目前对于这些数据的处理普遍采用的方式是:设计很多独立的控制模块,如ARM模块完成图像处理、DSP模块完成导航参数计算以及FPGA模块完成数据采集与转换等;设计模块阵列来处理数据,如ARM阵列、DSP阵列以及FPGA阵列等;利用多线程设计来并行处理数据;采用专用计算机。
上述采用的几种机载数据处理方式都存在着很大不足:ARM、DSP是一种传统的串行处理器,不适用于对实时性要求较高的场合,FPGA虽然具备高度的并行特性,但是其并行完全是以牺牲自身内部的逻辑资源为代价的,一个不算很复杂的算法就很有可能占据FPGA内部绝大部分硬件资源;不管是独立的模块还是模块阵列,它们之间的数据通信是一种具有很大延迟的片外总线通信方式,严重降低了数据处理的实时性;ARM模块往往是单核,系统移植后在其上进行多线程编程并不能真正提升数据并行处理的能力,因为对于单核CPU而言,多线程反映在微观层面上只是各个线程随着时间片的轮转分时被CPU处理而已,依然是串行;专用计算机的体积和重量都使得其不适合设计机载控制系统,数量众多的控制模块也严重限制了无人机向着高集成、小型化方向发展。
发明内容
本发明的目的在于克服现有技术的不足,提出一种支持多任务并行的多核SoC(片上系统)架构设计方法,实现多任务在多核上的并行执行,以提升多任务的执行效率。
本发明解决其技术问题是采取以下技术方案实现的:一种支持多任务并行的多核SoC架构设计方法,该方法包括如下步骤:
步骤(1)搭建MicroBlaze双核模块和ARM双核模块,并基于此设计基于多核多线程的多任务并行执行模块,同时基于FPGA设计硬件加速模块;
步骤(2)利用FPGA同时采集外部多路数据:
①在FPGA内部利用VHDL语言设计多个process模块;
②在FPGA内部利用VHDL语言设计SPI、I2C以及串口时序模块,并利用SPI、I2C、串口以及GPIO接口完成多路数据采集;
③在FPGA内部利用VHDL语言完成多路数据的预处理;
步骤(3)FPGA将多路数据传输到不同核上并行执行:
①FPGA通过User-IP与MicroBlaze双核交互;
②FPGA通过User-IP和Linux驱动模块与ARM双核交互;
③MicroBlaze双核之间通过MailBox交互;
④ARM双核之间通过Cache交互;
⑤MicroBlaze双核与ARM双核之间通过OCM交互;
步骤(4)ARM双核移植嵌入式Linux系统以便进行系统级编程;
步骤(5)搭建的多核SoC架构通过HDMI、VGA、UART、USB以及Ethernet接口将多路结果并行传输至上位机中。
其中,所述的SoC芯片型号为Xilinx公司的xc7z020clg484-1。
本发明与现有技术相比的优点在于:
(1)本发明通过构建多核SoC架构,能够使多种任务分别在多个核上并行处理,提升多任务的执行效率;
(2)本发明利用FPGA具备的高度并行特性并结合VHDL语言设计了基于多种接口的外部数据并行采集,提升了数据采集效率;
(3)本发明设计了多核间的片内数据交互方式,相比于片外数据交互方式,能大大提高数据交互的实时性;
(4)本发明能够通过多种接口将处理结果并行输出至上位机中;
(5)本发明设计的多核SoC架构能够代替传统的ARM、DSP以及FPGA模块,能够显著促进无人机向着高集成、小型化方向发展。
附图说明
图1为本发明的系统结构框图;
图2为本发明的多路数据并行采集与传输框图。
具体实施方式
下面结合附图对本发明做进一步详细的描述。
系统结构框图如图1所示,本发明涉及一种支持多任务并行的多核SoC架构设计方法,通过在SoC芯片内部搭建多核架构,使其具备多任务并行处理能力,与现有技术相比,本发明不仅能够明显提升数据并行采集、处理、输出以及核间交互的实时性,而且能够显著促进无人机向着高集成、小型化方向发展,所述的SoC芯片型号为Xilinx公司的xc7z020clg484-1。
(1)附图1中的模块1是多路数据的并行采集,为了能够采集外部具有不同接口(SPI、I2C、串口以及GPIO接口)的设备的数据,模块2基于FPGA和VHDL语言首先设计了这四种接口的时钟产生程序,然后设计了多个process模块,这些process模块按照各自的协议并行采集数据,接着对采集到的数据进行预处理(如去除首尾标志位、归一化等),最后将处理后的多路数据送到不同的处理器核上进行下一步处理。
(2)附图1中的模块3是搭建的MicroBlaze双处理器核(简称MicroBlaze双核),MicroBlaze双核间通过MailBox交互,即一个MicroBlaze核作为发送方,另一个MicroBlaze核作为接收方,发送方将数据流发送到MailBox中存储起来,然后接收方将数据从MailBox中取出。发送方与接收方之间可以同步,也可异步。
(3)附图1中的模块2与模块3之间通过User-IP交互,模块2与模块3一个作为发送方,另一个作为接收方。在模块2中利用VHDL语言将待发送的数据流存储到特定的I/O上,然后特定的I/O上的数据流就传输到了User-IP中特定寄存器中,最后模块3利用C语言读取User-IP中特定的寄存器以便得到数据流。
(4)附图1中的模块4是SoC内部固有的ARMCortex-A9双处理器核(简称ARM双核),ARM双核之间通过Cache高速缓存进行交互。本发明移植嵌入式Linux系统(模块5)到ARM双核上,以使其具备系统级编程的能力。
(5)模块2与模块4之间通过User-IP交互,但是Linux系统不能直接操作外部设备(这里Linux把User-IP当成一种外部设备),所以需要为User-IP编写驱动,在Linux系统启动后将此驱动挂载进内核,这样模块4就可以读取User-IP中存在的数据流了。
(6)本发明设计模块3与模块4之间通过OCM(片上RAM)交互,OCM是片内一种高速RAM,模块3与模块4一个作为发送方,另一个作为接收方。模块3将数据流传输至OCM中某段地址空间内,然后模块4读取这段地址空间内的数据流即可。
(7)为了将多核SoC处理的结果实时输出,本发明设计了多种数据输出接口:HDMI、VGA、UART、USB以及Ethernet。HDMI和VGA适合图形界面的输出,UART适合低速数据输出,USB适合高速数据输出,Ethernet适合高速且远距离的数据输出。
多路数据并行采集与传输框图如图2所示,本发明在FPGA内部基于VHDL语言设计了四种常用的数据接口时序模块,即SPI、I2C、串口以及GPIO接口。首先对主时钟(这里为100MHz)进行分频,得到SPI、I2C和串口的时钟,分别为10MHz、100KHz和9.6KHz;然后设计了多个process模块,由于每个process模块在FPGA内部是独立运行的,所以设计的四个process模块能够并行采集外部数据;接着对采集到的数据进行预处理,即去除首尾标志位、归一化等;最后通过User-IP和Linux驱动将数据流传送到不同的核上进行下一步处理。
综上所述,本发明设计的一种支持多任务并行的多核SoC架构设计方法能够通过构建多核SoC架构,实现多任务在多核上的并行执行,提升多任务的执行效率。
本发明说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (2)
1.一种支持多任务并行的多核SoC架构设计方法,其特征在于:该方法步骤如下:
步骤(1)搭建MicroBlaze双核模块和ARM双核模块,并基于此设计基于多核多线程的多任务并行执行模块,同时基于FPGA设计硬件加速模块;
步骤(2)利用FPGA同时采集外部多路数据:
①在FPGA内部利用VHDL语言设计多个process模块;
②在FPGA内部利用VHDL语言设计SPI、I2C以及串口时序模块,并利用SPI、I2C、串口以及GPIO接口完成多路数据采集;
③在FPGA内部利用VHDL语言完成多路数据的预处理;
步骤(3)FPGA将多路数据传输到不同核上并行执行:
①FPGA通过User-IP与MicroBlaze双核交互;
②FPGA通过User-IP和Linux驱动模块与ARM双核交互;
③MicroBlaze双核之间通过MailBox交互;
④ARM双核之间通过Cache交互;
⑤MicroBlaze双核与ARM双核之间通过OCM交互;
步骤(4)ARM双核移植嵌入式Linux系统以便进行系统级编程;
步骤(5)搭建的多核SoC架构通过HDMI、VGA、UART、USB以及Ethernet接口将多路结果并行传输至上位机中。
2.如权利要求1所述的一种支持多任务并行的多核SoC架构设计方法,其特征在于:所述的SoC芯片型号为Xilinx公司的xc7z020clg484-1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510621521.3A CN105260164B (zh) | 2015-09-25 | 2015-09-25 | 一种支持多任务并行的多核SoC架构设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510621521.3A CN105260164B (zh) | 2015-09-25 | 2015-09-25 | 一种支持多任务并行的多核SoC架构设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105260164A true CN105260164A (zh) | 2016-01-20 |
CN105260164B CN105260164B (zh) | 2017-05-10 |
Family
ID=55099870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510621521.3A Expired - Fee Related CN105260164B (zh) | 2015-09-25 | 2015-09-25 | 一种支持多任务并行的多核SoC架构设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105260164B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108073543A (zh) * | 2016-11-12 | 2018-05-25 | 北京迪文科技有限公司 | 一种8051处理器实现多核互联soc |
CN108153705A (zh) * | 2017-12-26 | 2018-06-12 | 北京航空航天大学 | 一种面向异构多源大数据的高效并行采集方法 |
CN108196953A (zh) * | 2017-12-28 | 2018-06-22 | 北京航空航天大学 | 一种面向异构多源大数据的异构多核并行处理装置及方法 |
CN109032010A (zh) * | 2018-07-17 | 2018-12-18 | 阿里巴巴集团控股有限公司 | Fpga器件及基于其的数据处理方法 |
CN109614124A (zh) * | 2018-12-12 | 2019-04-12 | 上海无线电设备研究所 | 基于zynq平台的信号处理架构移植方法 |
CN109634729A (zh) * | 2018-11-20 | 2019-04-16 | 中国船舶重工集团公司第七0七研究所 | 一种捷联惯导设备多核dsp并行解算方法 |
CN110380774A (zh) * | 2019-07-05 | 2019-10-25 | 东南大学 | 一种自适应距离的无人机通信多路并行传输方法与系统 |
CN110674078A (zh) * | 2019-10-08 | 2020-01-10 | 北京航空航天大学 | 一种数字孪生系统复杂任务异构多核并行高效求解方法和系统 |
CN111324063A (zh) * | 2020-01-21 | 2020-06-23 | 南方电网科学研究院有限责任公司 | 一种用于芯片化dtu的采集处理装置及其执行方法 |
CN111722821A (zh) * | 2020-06-18 | 2020-09-29 | 杭州海康威视数字技术股份有限公司 | 一种高清多媒体接口输入输出的实现方法以及装置 |
CN112506851A (zh) * | 2020-12-02 | 2021-03-16 | 广东电网有限责任公司佛山供电局 | 一种解决多核访问冲突的soc芯片架构构建方法 |
US11494511B2 (en) * | 2020-09-15 | 2022-11-08 | Alipay (Hangzhou) Information Technology Co., Ltd. | Data processing methods, apparatuses, and devices |
CN116090383A (zh) * | 2022-12-27 | 2023-05-09 | 广东高云半导体科技股份有限公司 | 实现静态时序分析的方法、装置、计算机存储介质及终端 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100198574A1 (en) * | 2009-01-30 | 2010-08-05 | Yossi Veller | Programmer View Timing Model For Performance Modeling And Virtual Prototyping |
CN102270189A (zh) * | 2011-06-17 | 2011-12-07 | 西安电子科技大学 | 基于fpga多核系统的核间通信方法 |
CN103714024A (zh) * | 2013-12-18 | 2014-04-09 | 国核自仪系统工程有限公司 | 一种基于SoC FPGA的多串口并行处理架构 |
CN104008024A (zh) * | 2014-06-12 | 2014-08-27 | 北京航空航天大学 | 基于fpga的动态重构技术应用平台 |
CN104820657A (zh) * | 2015-05-14 | 2015-08-05 | 西安电子科技大学 | 一种基于嵌入式异构多核处理器上的核间通信方法及并行编程模型 |
US20150229310A1 (en) * | 2014-02-11 | 2015-08-13 | BEEcube Inc. | Systems and methods for fpga development and operation |
-
2015
- 2015-09-25 CN CN201510621521.3A patent/CN105260164B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100198574A1 (en) * | 2009-01-30 | 2010-08-05 | Yossi Veller | Programmer View Timing Model For Performance Modeling And Virtual Prototyping |
CN102270189A (zh) * | 2011-06-17 | 2011-12-07 | 西安电子科技大学 | 基于fpga多核系统的核间通信方法 |
CN103714024A (zh) * | 2013-12-18 | 2014-04-09 | 国核自仪系统工程有限公司 | 一种基于SoC FPGA的多串口并行处理架构 |
US20150229310A1 (en) * | 2014-02-11 | 2015-08-13 | BEEcube Inc. | Systems and methods for fpga development and operation |
CN104008024A (zh) * | 2014-06-12 | 2014-08-27 | 北京航空航天大学 | 基于fpga的动态重构技术应用平台 |
CN104820657A (zh) * | 2015-05-14 | 2015-08-05 | 西安电子科技大学 | 一种基于嵌入式异构多核处理器上的核间通信方法及并行编程模型 |
Non-Patent Citations (2)
Title |
---|
侯宁等: "层次化架构嵌入式多核处理器原型设计及其编程研究", 《合肥工业大学学报(自然科学版)》 * |
李浩等: "基于异构多核的H.264编码器研究与实现", 《软件》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108073543A (zh) * | 2016-11-12 | 2018-05-25 | 北京迪文科技有限公司 | 一种8051处理器实现多核互联soc |
CN108153705A (zh) * | 2017-12-26 | 2018-06-12 | 北京航空航天大学 | 一种面向异构多源大数据的高效并行采集方法 |
CN108153705B (zh) * | 2017-12-26 | 2019-04-16 | 北京航空航天大学 | 一种面向异构多源大数据的高效并行采集方法 |
CN108196953A (zh) * | 2017-12-28 | 2018-06-22 | 北京航空航天大学 | 一种面向异构多源大数据的异构多核并行处理装置及方法 |
CN108196953B (zh) * | 2017-12-28 | 2018-11-23 | 北京航空航天大学 | 一种面向异构多源大数据的异构多核并行处理装置及方法 |
CN109032010A (zh) * | 2018-07-17 | 2018-12-18 | 阿里巴巴集团控股有限公司 | Fpga器件及基于其的数据处理方法 |
CN109634729A (zh) * | 2018-11-20 | 2019-04-16 | 中国船舶重工集团公司第七0七研究所 | 一种捷联惯导设备多核dsp并行解算方法 |
CN109614124A (zh) * | 2018-12-12 | 2019-04-12 | 上海无线电设备研究所 | 基于zynq平台的信号处理架构移植方法 |
CN110380774A (zh) * | 2019-07-05 | 2019-10-25 | 东南大学 | 一种自适应距离的无人机通信多路并行传输方法与系统 |
CN110674078A (zh) * | 2019-10-08 | 2020-01-10 | 北京航空航天大学 | 一种数字孪生系统复杂任务异构多核并行高效求解方法和系统 |
CN110674078B (zh) * | 2019-10-08 | 2020-11-10 | 北京航空航天大学 | 一种数字孪生系统复杂任务异构多核并行高效求解方法和系统 |
CN111324063A (zh) * | 2020-01-21 | 2020-06-23 | 南方电网科学研究院有限责任公司 | 一种用于芯片化dtu的采集处理装置及其执行方法 |
CN111722821A (zh) * | 2020-06-18 | 2020-09-29 | 杭州海康威视数字技术股份有限公司 | 一种高清多媒体接口输入输出的实现方法以及装置 |
CN111722821B (zh) * | 2020-06-18 | 2023-07-25 | 杭州海康威视数字技术股份有限公司 | 一种高清多媒体接口输入输出的实现方法以及装置 |
US11494511B2 (en) * | 2020-09-15 | 2022-11-08 | Alipay (Hangzhou) Information Technology Co., Ltd. | Data processing methods, apparatuses, and devices |
CN112506851A (zh) * | 2020-12-02 | 2021-03-16 | 广东电网有限责任公司佛山供电局 | 一种解决多核访问冲突的soc芯片架构构建方法 |
CN112506851B (zh) * | 2020-12-02 | 2022-02-11 | 广东电网有限责任公司佛山供电局 | 一种解决多核访问冲突的soc芯片架构构建方法 |
CN116090383A (zh) * | 2022-12-27 | 2023-05-09 | 广东高云半导体科技股份有限公司 | 实现静态时序分析的方法、装置、计算机存储介质及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN105260164B (zh) | 2017-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105260164A (zh) | 一种支持多任务并行的多核SoC架构设计方法 | |
CN105631798B (zh) | 低功耗便携式实时图像目标检测与跟踪系统及方法 | |
CN103116175B (zh) | 基于dsp和fpga的嵌入式导航信息处理器 | |
CN103323008A (zh) | 基于dsp的光纤陀螺捷联惯导计算机及其导航解算方法 | |
CN109656861A (zh) | 一种基于srio总线的多核并行信号处理系统及方法 | |
CN106289256A (zh) | 基于双dsp与fpga架构的计算信号处理系统 | |
CN107704413A (zh) | 一种基于vpx架构的加固型并行信息处理平台 | |
CN102378133A (zh) | 基于omap的传感网多媒体信息处理系统及方法 | |
CN102881159B (zh) | 一种嵌入式双dsp信息数据处理装置和方法 | |
CN107241591A (zh) | 一种机载雷达嵌入式3d视频图像显示方法及系统 | |
CN206224997U (zh) | 一种语音识别Soc芯片架构 | |
CN105676755A (zh) | 一种双核飞控计算机 | |
CN103544471B (zh) | 一种动平台对地固定目标异构并行自动目标识别器 | |
CN108628693B (zh) | 处理器调试方法和系统 | |
CN205644148U (zh) | 一种双核飞控计算机 | |
CN210515395U (zh) | 一种机载综合采集器 | |
CN107704407A (zh) | 一种用于spi和uart之间数据处理的系统和方法 | |
CN112416844A (zh) | 基于FPGA与GPU的Spike信号检测与分类装置 | |
CN101713796A (zh) | 车载微机频率量测量装置 | |
CN105241453A (zh) | 一种无人机导航系统及无人机 | |
CN204489201U (zh) | 基于stm32的四旋翼飞行器飞行系统 | |
CN214591389U (zh) | 一种可扩展的认知无线电系统 | |
CN102968080A (zh) | 低本底αβ测量仪控制装置 | |
CN109932963A (zh) | 基于dsp核的ads-b系统级芯片架构 | |
CN110442542B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170510 Termination date: 20200925 |
|
CF01 | Termination of patent right due to non-payment of annual fee |