一种硬件可编程异构多核片上系统的制作方法

文档序号:21779077发布日期:2020-08-07 19:53阅读:120来源:国知局
一种硬件可编程异构多核片上系统的制作方法

本发明涉及集成电路技术领域,特别涉及一种硬件可编程异构多核片上系统。



背景技术:

当前,通信、机器视觉、辅助驾驶、医学/生物成像、航空电子、大数据分析、物联网等应用领域都需要高性能的数字信号处理、密集数据计算能力以及很强的图形图像处理显示功能,并且还需要系统和算法具有灵活性、自适应能力。现在整机系统的更新换代速度加快,整机系统应要具有一定的升级能力,这需要产品制造后,系统中的芯片能提供一定的修改、优化和重构能力。

为了满足上述需求,业界做了很多尝试,推出了相应的产品。首先是异构多核处理器,risc通用处理器和dsp相结合的异构处理核架构具备更好的性能和更有效率的能耗。在此架构下,dsp用来处理密集数据处理、复杂算法,例如数据滤波、fft运算等。dsp之所以实现起来效率更高,这得益于dsp的哈佛结构、simd结构以及特殊寻址、零开销循环方面的硬件支持等。通用处理器如arm用来处理用户界面、控制事务、网络连接、运行操作系统和应用程序等,混合系统的总体性能得到大大的提高。

传统的dsp处理器核心是一个高性能的运算单元,算法实施时运算是串行进行的,因此比较复杂的算法计算可能需要来回循环几百次才能完成,故dsp处理器处理算法总的运算速度并不是很快。在大规模数据计算时,往往需要数据运算的并行处理和高吞吐率,这样单dsp的劣势就更明显了。当单个处理器性能不能满足需求时,通常的处理方法是提高处理器的工作频率或增加处理器的数量,由于工艺、电路结构、功耗等方面的限制,处理器的工作频率提高的余地有限。

现场可编程门阵列(fpga)在并行计算方面具有较大性能优势,fpga对信号、数据处理可以采用并行处理结构,fpga能够实现几十乃至几百个运算单元同时进行运算。但传统的fpga功能比较单一,主要集中在数据运算和电路控制方面;在电路规模过大时,其芯片配置时间过长。虽然fpga有动态重配置功能使实现的电路具有一定的灵活性,但还是满足不了算法的动态快速切换以及日益的智能化、系统灵活性的需求。并且fpga为了保证可编程逻辑块及互连具有灵活的通用编程特性,其综合实现后的实际电路延迟较大,工作频率并不高,并且相对于asic其电路面积利用效率偏低,难以获得像asic那样的高性能、高集成度、低功耗的目标。

在通用处理器和dsp芯片领域,为了支持特定应用领域一些复杂的协议和算法,提升数据处理能力,在处理器中加入了专用的加速器模块,但专用的加速器功能在器件制造之后很难进行修改、扩展,系统的灵活性受到了限定。如通信所要求的带宽依赖于加速器的数量和类型,同时要求加速器具有适应性、灵活性,因此对对异构多核soc来说,其可扩展性、适应性也是一个问题。硬件可编程异构多核片上系统可以克服上面这个问题,它将通用处理器的灵活性和fpga的并行计算、硬件加速能力很好地结合起来,是面向大规模计算中比较理想的解决方案。但目前硬件可编程片上系统的研究主要集中在将通用risc处理器如arm和fpga结合起来。很少将通用处理器、dsp、fpga三者集成在一个芯片中,发挥各自的特长,提供单芯片全可编程异构多核片上系统。

经对现有技术文献的检索发现,申请号为201410273439.1、名称为“基于arm、dsp及fpga的异构多核处理器及任务调度方法”的专利发明公开了一种异构多核处理器技术,该方案同类处理器没有采用多核结构、异构处理器之间的互连采用pci外设互连总线或简单总线网络,不能解决当前soc存储界面和总线的瓶颈问题,也没有提出可编程加速器功能,其用于密集数据处理能力、实际应用能力还有待加强。申请号为201110008399.4、名称为“多核dsp可重构专用集成电路系统”的专利发明公开了一种用于数字信号处理技术领域的多核dsp可重构专用集成电路系统,以多核dsp为运算核心,根据不同的执行任务由fpga来实现dsp之间的互连拓扑结构,多核dsp的运算数据由控制处理器通过存储器接口获取并传输给dsp,多核dsp的任务调度和控制是由中央处理器实施;其不足之处是多核dsp之间的互连拓扑结构根据算法运算过程需求进行硬件互连,这样互连拓扑结构参与了运算,这样虽dsp任务块的分配比较清晰,但应用适应性略差,不方便dsp多核的扩展,不方便dsp多核之间的灵活调度,另外多核dsp的任务调度还需由中央处理器实施控制,该可重构专用集成电路系统的应用还是偏重于信号处理、底层数据处理。



技术实现要素:

本发明的目的在于提供一种硬件可编程异构多核片上系统,在保持dsp、mpu灵活的软件编程、低功耗特点的基础上,增强处理器的能力,具有硬件可编程、并行计算能力和业务功能均衡全面、应用范围广的特点。

为解决上述技术问题,本发明提供一种硬件可编程异构多核片上系统,包括:

多核dsp、多核mpu、gpu、fpga、fpga配置外设模块、io外设a和io外设b;其中,

所述io外设a通过fe总线与所述多核dsp和所述fpga连接,向所述多核dsp和所述fpga中传输待处理数据;

所述多核dsp通过dsp-pl总线与所述fpga实现信号、数据处理任务的切换;所述多核dsp和所述fpga用于高吞吐率的数据预处理、密集数据处理和底层算法运算;

所述多核dsp和所述多核mpu均连接有ps总线;所述fpga配置外设模块与所述ps总线连接;所述fpga通过be总线连接所述io外设b;

所述fpga通过aip_dsp总线和aip_mpu总线分别对所述多核dsp和所述多核mpu实现可编程硬件加速;所述gpu和所述多核mpu连接,所述多核mpu实现系统控制、用户界面及高层次算法运算,所述gpu用于图形加速。

可选的,所述fpga中包括可编程dsp加速器和可编程mpu加速器,对所述多核dsp和所述多核mpu提供可编程硬件加速;所述可编程dsp加速器通过aip_dsp总线与所述多核dsp相连,所述可编程mpu加速器通过aip_mpu总线与所述多核mpu相连。

可选的,所述aip_dsp总线和所述aip_mpu总线为支持cache一致性的高速总线,分别连到多核dsp的l2cache存储器和所述多核mpu的l1cache存储器处;所述ps总线是所述多核dsp和所述多核mpu之间的高速总线。

可选的,所述多核dsp和所述多核mpu共享所述fpga配置外设模块,所述fpga配置外设模块用于对所述fpga进行静态配置和动态重构。

可选的,所述多核dsp配置片上sram、多级cache以实现加速指令和数据的存取,所述多核dsp的l1、l2cache/sram能够配置成cache,或片上sram。

可选的,所述fe总线、所述dsp-pl总线、所述ps总线和所述be总线之间通过拓扑互连相连,提供整个系统互连的层次性、灵活性。

可选的,所述fpga还包括sram、硬件ip、软件可定义ip、宏模块、片上内存和接口控制器,通过可编程交叉总线或片上网络和处理器系统相连,以实现并行数据运算、硬件加速和soc资源配置。

可选的,所述硬件可编程异构多核片上系统还包括dsp加速器固件和mpu加速器固件,分别连接所述多核dsp和所述多核mpu。

本发明具有以下有益效果:

(1)本发明的系统集成了多核dsp、多核mpu、gpu、fpga等异构组件,各组件各有所长,使构成的soc器件结构均衡、全面、应用面广;

(2)fpga和多核dsp结合紧密,并共享高速io总线,便于当今数字化界面日益向前端转移、高速率数据的接收和处理。数据送入fpga或多核dsp,进行高带宽数据处理,降低数据速率后,送往多核dsp、多核mpu作进一步的处理分析;

(3)fpga和多核dsp之间配备多条高速片内总线,便于数据处理任务在fpga和多核dsp之间多次切换,充分利用处理核的异构特性,提高了数据处理的灵活性;

(4)fpga为多核dsp和多核mpu提供可编程硬件加速,同时fpga集成了大量硬件ip资源,并且这些硬件ip资源和多核dsp、多核mpu的连接是可编程的,方便多核dsp、多核mpu的资源共享和系统集成,降低系统bom成本和减小pcb尺寸,并且整机系统定型后还可以进一步修改、优化和升级;

(5)本soc芯片的硬件可编程范围并不局限于fpga区域,还提供了多核dsp、多核mpu、gpu、互连、其它组件组成的处理器系统的部分可编程特性,使得常规硬件固定的处理器系统架构有一定的灵活性,可以根据应用作调整和优化。

附图说明

图1是本发明提供的硬件可编程异构多核片上系统结构示意图。

具体实施方式

以下结合附图和具体实施例对本发明提出的一种硬件可编程异构多核片上系统作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。

实施例一

本发明提供了一种硬件可编程异构多核片上系统,如图1所示,包括多核dsp1、多核mpu2、gpu3、dsp加速器固件4、mpu加速器固件5、fpga6、fpga配置外设模块7、io外设a8、io外设b9和片上高速总线互连网络。所述fpga6中可实现可编程dsp加速器16和可编程mpu加速器17;所述片上高速总线互连网络包括fe总线10、dsp-pl总线11、ps总线12、be总线13、aip_dsp总线14以及aip_mpu总线15,各功能模块通过片上高速总线互连网络相连。

请继续参阅图1,所述io外设a8通过所述fe总线10与所述多核dsp1和所述fpga6连接,向所述多核dsp1和所述fpga6中传输待处理数据;所述多核dsp1通过所述dsp-pl总线11与所述fpga6实现信号、数据处理任务的切换;所述多核dsp1和所述fpga6用于高吞吐率的数据预处理、密集数据处理和底层算法运算;所述多核dsp1和所述多核mpu2均连接有所述ps总线12;所述dsp加速器固件4和所述mpu加速器固件5分别连接所述多核dsp1和所述多核mpu2;所述fpga配置外设模块7与所述ps总线12连接;所述fpga6通过所述be总线13连接所述io外设b9;所述fpga6通过所述aip_dsp总线14和所述aip_mpu总线15分别对所述多核dsp1和所述多核mpu2实现可编程硬件加速;所述gpu3和所述多核mpu2连接,所述多核mpu2实现系统控制、用户界面及高层次算法运算,所述gpu3用于图形加速。所述可编程dsp加速器16和所述可编程mpu加速器17分别对所述多核dsp1和所述多核mpu2提供可编程硬件加速;所述可编程dsp加速器16通过所述aip_dsp总线14与所述多核dsp1相连,所述可编程mpu加速器17通过所述aip_mpu总线15与所述多核mpu2相连。所述fe总线10、所述dsp-pl总线11、所述ps总线12和所述be总线13之间通过拓扑互连相连,提供整个系统互连的层次性、灵活性。除了上述总线,还有桥进行片内高速总线和io外设低速总线的转换,以及处理器系统区域和fpga的的互连。总线互连网络还能实现配置和一定程度的重构,以满足实际系统的需要,提高soc系统的灵活性。

所述aip_dsp总线14和所述aip_mpu总线15为支持cache一致性的高速总线,分别连到多核dsp1的l2cache存储器和所述多核mpu2的l1cache存储器处;所述ps总线12是所述多核dsp1和所述多核mpu2之间的高速总线。所述多核dsp1和所述多核mpu2共享所述fpga配置外设模块7,以便多核dsp1、多核mpu2根据需要通过所述fpga配置外设模块7对所述fpga6进行静态配置和动态重构。一般来说上电时的静态配置由多核mpu2实施会更方便管理,而更多的动态重配置由多核dsp1来实施。为了支持多核dsp1的高速运算,所述多核dsp1配置片上sram、多级cache以实现加速指令和数据的存取,所述多核dsp1的l1、l2cache/sram能够配置成cache,或片上sram。多核dsp1和多核mpu2通过共享内存,连接fpga6中的接口控制器,和外存相连。所述fpga6还包括sram、硬件ip、软件可定义ip、宏模块、片上内存和接口控制器,通过可编程交叉总线或片上网络和处理器系统相连,以实现并行数据运算、硬件加速和soc资源配置。

从顶层上看,可分为处理器系统区域18、fpga区域和io外设区域,处理器系统区域18包含上述的多核dsp1、多核mpu2、gpu3、dsp加速器固件4、mpu加速器固件5、fpga配置外设模块7和部分片上高速总线互连网络等。本系统有两个大的业务区域,一个是多核dsp1和fpga6组成的区域,实现高吞吐率数据预处理、密集数据运算、底层算法等业务;一个是多核mpu2、gpu3、可编程mpu加速器17组成的区域,实现用户界面、高层算法、网络传输、应用程序运行等业务。fpga6还实现多核dsp1、多核mpu2中所需要的硬件加速功能。fpga6实现的硬件加速功能是可以现场可编程的,虽然性能与asic实现的加速器固件有一定的差距,但是具有灵活性和运算性能的兼顾。

多核mpu2不仅可以利用mcu加速器固件5、可编程mpu加速器17进行加速,也可以将多核dsp1、fpga6、可编程dsp加速器整合起来,或一部分也作为多核mpu2的加速模块,这时加速模块是硬件+软件编程的,实际应用时更加灵活,此时处理数据的来源更多地来自于多核mpu2的高速网络接口、sata、pci等接口等。多核dsp1、多核mpu2之间还有共享内存模块,通过共享内存模块和位于fpga区域中的外存控制器相连。架构中还实现了核间通信、edma等功能和模块,片内高速总线根据需要,在存储器接口、加速器接口连接处实现cache一致性、电源管理功能、带宽管理功能、fifo缓冲等功能,以满足高性能、高质量的运用。另外还实现电源管理、时钟管理功能,总线实现电源管理功能,这些措施保证soc芯片的低功耗。

多核dsp、多核mpu、gpu、io外设(包括io外设a和io外设b)、存储器之间的总线连接和共享资源可根据实际应用需求通过可编程资源作适当的调整、优化,也就是说本片上系统的可编程范围并不局限于fpga区域,使得常规硬件固定的处理器系统架构具有一定的灵活性。fpga除了提供可编程门阵列外,还成为soc整个芯片的硬件资源池。在fpga部分,除了集成了众多的粗粒度、细粒度可重构逻辑单元、可编程互连,还集成了可实现宏模块、片上内存、接口控制器等各类ip模块,这些硬件资源通过可编程交叉总线或片上网络和处理器系统相连,除了实现大数据量的并行数据运算、硬件加速,还实现soc资源配置、接口控制实现等,降低互连长度,提高了soc系统集成的灵活性,降低了整机的bom成本和pcb尺寸,并且相比于这些资源放在片外,方便整机系统定型后的进一步优化修改和升级,提高了整机系统的可扩展性和可升级性。

多核dsp与fpga之间配置多路高速片内总线,便于数据运算任务在多核dsp和fpga之间多次切换,使算法的软件实现和硬件实现可以流水进行,或者软件实现和硬件实现之间进行相互嵌套,使算法实现更加灵活、自适应、智能化。

本硬件可编程异构多核片上系统的一种应用描述如下,待处理数据例如前端原始数据通过高速的io外设a8、fe总线10送往fpga6和多核dsp1,在fpga6中进行高吞吐率数据预处理、密集数据运算,降低数据速率后再送往多核dsp1进行进一步的数据处理。多核dsp1在数据处理过程中,有时又遇到需要密集数据并行运算,可将任务再切换到fpga6中来完成,处理后再送往多核dsp1。有时还会遇到在fpga6进行数据处理时,有部分算法需要用到多核dsp1中实现的处理函数、算法,可以将任务从fpga6切换到多核dsp1中执行,然后再切换至fpga6。本soc片上系统,配置多路dsp-pl总线11,用于完成这种灵活的数据处理。最终,处理完的数据送往mpu3,进行高层算法处理或最终的运算,其后用于显示或网络传输共享。

上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1