一种支持多任务并行的多核SoC架构设计方法

文档序号:9505974阅读:994来源:国知局
一种支持多任务并行的多核SoC架构设计方法
【技术领域】
[0001]本发明属于电子工程和计算机科学领域。本发明具体涉及一种支持多任务并行的多核SoC架构设计方法,旨在通过构建多核SoC架构,实现多任务在多核上的并行执行,以提升多任务的执行效率。
【背景技术】
[0002]随着无人机技术及其装备的研究和应用,如何进一步提升无人机机载控制系统的性能就显得很有必要。无人机机载控制系统主要包括惯性导航模块、GPS/北斗导航模块、地形匹配导航模块以及各种参数的采集与计算等。目前对于这些数据的处理普遍采用的方式是:设计很多独立的控制模块,如ARM模块完成图像处理、DSP模块完成导航参数计算以及FPGA模块完成数据采集与转换等;设计模块阵列来处理数据,如ARM阵列、DSP阵列以及FPGA阵列等;利用多线程设计来并行处理数据;采用专用计算机。
[0003]上述采用的几种机载数据处理方式都存在着很大不足:ARM、DSP是一种传统的串行处理器,不适用于对实时性要求较高的场合,FPGA虽然具备高度的并行特性,但是其并行完全是以牺牲自身内部的逻辑资源为代价的,一个不算很复杂的算法就很有可能占据FPGA内部绝大部分硬件资源;不管是独立的模块还是模块阵列,它们之间的数据通信是一种具有很大延迟的片外总线通信方式,严重降低了数据处理的实时性;ARM模块往往是单核,系统移植后在其上进行多线程编程并不能真正提升数据并行处理的能力,因为对于单核CPU而言,多线程反映在微观层面上只是各个线程随着时间片的轮转分时被CPU处理而已,依然是串行;专用计算机的体积和重量都使得其不适合设计机载控制系统,数量众多的控制模块也严重限制了无人机向着高集成、小型化方向发展。

【发明内容】

[0004]本发明的目的在于克服现有技术的不足,提出一种支持多任务并行的多核SoC(片上系统)架构设计方法,实现多任务在多核上的并行执行,以提升多任务的执行效率。
[0005]本发明解决其技术问题是采取以下技术方案实现的:一种支持多任务并行的多核SoC架构设计方法,该方法包括如下步骤:
[0006]步骤(1)搭建MicroBlaze双核模块和ARM双核模块,并基于此设计基于多核多线程的多任务并行执行模块,同时基于FPGA设计硬件加速模块;
[0007]步骤⑵利用FPGA同时采集外部多路数据:
[0008]①在FPGA内部利用VHDL语言设计多个process模块;
[0009]②在FPGA内部利用VHDL语言设计SP1、I2C以及串口时序模块,并利用SP1、I2C、串口以及GP10接口完成多路数据采集;
[0010]③在FPGA内部利用VHDL语言完成多路数据的预处理;
[0011]步骤(3)FPGA将多路数据传输到不同核上并行执行:
[0012]①FPGA 通过 User-1P 与 MicroBlaze 双核交互;
[0013]②FPGA通过User-1P和Linux驱动模块与ARM双核交互;
[0014]③MicroBlaze双核之间通过MailBox交互;
[0015]④ARM双核之间通过Cache交互;
[0016]⑤MicroBlaze双核与ARM双核之间通过0CM交互;
[0017]步骤(4) ARM双核移植嵌入式Linux系统以便进行系统级编程;
[0018]步骤(5)搭建的多核SoC架构通过HDM1、VGA、UART、USB以及Ethernet接口将多路结果并行传输至上位机中。
[0019]其中,所述的SoC芯片型号为Xilinx公司的xc7z020clg484_l。
[0020]本发明与现有技术相比的优点在于:
[0021](1)本发明通过构建多核SoC架构,能够使多种任务分别在多个核上并行处理,提升多任务的执行效率;
[0022](2)本发明利用FPGA具备的高度并行特性并结合VHDL语言设计了基于多种接口的外部数据并行采集,提升了数据采集效率;
[0023](3)本发明设计了多核间的片内数据交互方式,相比于片外数据交互方式,能大大提高数据交互的实时性;
[0024](4)本发明能够通过多种接口将处理结果并行输出至上位机中;
[0025](5)本发明设计的多核SoC架构能够代替传统的ARM、DSP以及FPGA模块,能够显著促进无人机向着高集成、小型化方向发展。
【附图说明】
[0026]图1为本发明的系统结构框图;
[0027]图2为本发明的多路数据并行采集与传输框图。
【具体实施方式】
[0028]下面结合附图对本发明做进一步详细的描述。
[0029]系统结构框图如图1所示,本发明涉及一种支持多任务并行的多核SoC架构设计方法,通过在SoC芯片内部搭建多核架构,使其具备多任务并行处理能力,与现有技术相比,本发明不仅能够明显提升数据并行采集、处理、输出以及核间交互的实时性,而且能够显著促进无人机向着高集成、小型化方向发展,所述的SoC芯片型号为Xilinx公司的xc7z020clg484-l。
[0030](1)附图1中的模块1是多路数据的并行采集,为了能够采集外部具有不同接口(SP1、I2C、串口以及GP10接口 )的设备的数据,模块2基于FPGA和VHDL语言首先设计了这四种接口的时钟产生程序,然后设计了多个process模块,这些process模块按照各自的协议并行采集数据,接着对采集到的数据进行预处理(如去除首尾标志位、归一化等),最后将处理后的多路数据送到不同的处理器核上进行下一步处理。
[0031](2)附图1中的模块3是搭建的MicroBlaze双处理器核(简称MicroBlaze双核),MicroBlaze双核间通过MailBox交互,即一个MicroBlaze核作为发送方,另一个MicroBlaze核作为接收方,发送方将数据流发送到MailBox中存储起来,然后接收方将数据从MailBox中取出。发送方与接收方之间可以同步,也可异步。
[0032](3)附图1中的模块2与模块3之间通过User-1P交互,模块2与模块3 —个作为发送方,另一个作为接收方。在模块2中利用VHDL语言将待发送的数据流存储到特定的I/O上,然后特定的I/O上的数据流就传输到了 User-1P中特定寄存器中,最后模块3利用C语言读取User-1P中特定的寄存器以便得到数据流。
[0033](4)附图1中的模块4是SoC内部固有的ARM Cortex_A9双处理器核(简称ARM双核),ARM双核之间通过Cache高速缓存进行交互。本发明移植嵌入式Linux系统(模块5)到ARM双核上,以使其具备系统级编程的能力。
[0034](5)模块2与模块4之间通过User-1P交互,但是Linux系统不能直接操作外部设备(这里Linux把User-1P当成一种外部设备),所以需要为User-1P编写驱动,在Linux系统启动后将此驱动挂载进内核,这样模块4就可以读取User-1P中存在的数据流了。
[0035](6)本发明设计模块3与模块4之间通过0CM(片上RAM)交互,0CM是片内一种高速RAM,模块3与模块4 一个作为发送方,另一个作为接收方。模块3将数据流传输至0CM中某段地址空间内,然后模块4读取这段地址空间内的数据流即可。
[0036](7)为了将多核SoC处理的结果实时输出,本发明设计了多种数据输出接口:HDM1、VGA、UART、USB以及Ethernet。HDMI和VGA适合图形界面的输出,UART适合低速数据输出,USB适合高速数据输出,Ethernet适合高速且远距离的数据输出。
[0037]多路数据并行采集与传输框图如图2所示,本发明在FPGA内部基于VHDL语言设计了四种常用的数据接口时序模块,即SP1、I2C、串口以及GP10接口。首先对主时钟(这里为100MHz)进行分频,得到SP1、I2C和串口的时钟,分别为10MHz、ΙΟΟΚΗζ和9.6KHz ;然后设计了多个process模块,由于每个process模块在FPGA内部是独立运行的,所以设计的四个process模块能够并行采集外部数据;接着对采集到的数据进行预处理,即去除首尾标志位、归一化等;最后通过User-1P和Linux驱动将数据流传送到不同的核上进行下一步处理。
[0038]综上所述,本发明设计的一种支持多任务并行的多核SoC架构设计方法能够通过构建多核SoC架构,实现多任务在多核上的并行执行,提升多任务的执行效率。
[0039]本发明说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
[0040]以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【主权项】
1.一种支持多任务并行的多核SoC架构设计方法,其特征在于:该方法步骤如下:步骤(I)搭建MicroBlaze双核模块和ARM双核模块,并基于此设计基于多核多线程的多任务并行执行模块,同时基于FPGA设计硬件加速模块; 步骤(2)利用FPGA同时采集外部多路数据: ①在FPGA内部利用VHDL语言设计多个process模块; ②在FPGA内部利用VHDL语言设计SP1、I2C以及串口时序模块,并利用SP1、I2C、串口以及GP1接口完成多路数据采集; ③在FPGA内部利用VHDL语言完成多路数据的预处理; 步骤(3)FPGA将多路数据传输到不同核上并行执行: ①FPGA通过User-ΙΡ与MicroBlaze双核交互; ②FPGA通过User-1P和Linux驱动模块与ARM双核交互; ③MicroBlaze双核之间通过MailBox交互; ④ARM双核之间通过Cache交互; ⑤MicroBlaze双核与ARM双核之间通过OCM交互; 步骤(4) ARM双核移植嵌入式Linux系统以便进行系统级编程; 步骤(5)搭建的多核SoC架构通过HDM1、VGA、UART、USB以及Ethernet接口将多路结果并行传输至上位机中。2.如权利要求1所述的一种支持多任务并行的多核SoC架构设计方法,其特征在于:所述的SoC芯片型号为Xilinx公司的xc7z020clg484_l。
【专利摘要】本发明涉及一种支持多任务并行的多核SoC架构设计方法,该方法主要包括:搭建MicroBlaze双核模块和ARM双核模块,并基于此设计基于多核多线程的多任务并行执行模块,同时基于FPGA设计硬件加速模块。本发明通过FPGA同时采集外部多路数据,然后将多路数据传输到不同核上并行执行,其中设计FPGA通过User-IP与MicroBlaze双核交互、FPGA通过User-IP和Linux驱动模块与ARM双核交互、MicroBlaze双核之间通过MailBox交互、ARM双核之间通过Cache交互、MicroBlaze双核与ARM双核之间通过OCM交互。本发明通过构建多核SoC架构,能够实现多任务在多核上的并行执行,极大地提升多任务的执行效率。
【IPC分类】G06F15/16, G06F9/38
【公开号】CN105260164
【申请号】CN201510621521
【发明人】陶飞, 邹孝付, 张霖
【申请人】北京航空航天大学
【公开日】2016年1月20日
【申请日】2015年9月25日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1