片上系统的制作方法

文档序号:18869361发布日期:2019-10-14 19:09阅读:189来源:国知局
片上系统的制作方法

本发明涉及半导体芯片领域,尤其涉及一种片上系统。



背景技术:

随着人工智能的飞速发展,人工智能算法复杂度越来越高,对实现人工智能算法的硬件要求也越来越高。人工智能算法通过片上系统(英文简称为soc)进行计算的。其中,片上系统包括现场可编程门阵列(英文简称为fpga)和微控制器单元(英文简称为mcu)。现有的fpga与mcu的连接方式有两种,一种是将fpga与mcu作为独立器件,该方案的不足之处在于,虽然mcu在计算时可以达到其设计的最高频率,计算能力更强,但是mcu不可扩展外部设备,可扩展性差,片外连线复杂,时序性差,功耗高;另一种则是构建基于fpga的mcu软核,该方案的不足之处在于,mcu软核的运行速度可能会因为受到fpga性能的限制而导致运行速度较慢。因此,现有的连接方式无法同时满足片上系统高性能和便捷性的要求。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种片上系统,以优化片上系统的内部结构,在保证mcu具有良好的运行速度的同时,满足可扩展性和便捷性的需求。

一种片上系统,包括mcu内核和fpga内核,所述fpga内核包括fpga内部边界总线和至少一个外部设备;

所述外部设备,用于生成中断请求并输出;

所述fpga内部边界总线,连接所述外部设备,用于接收所述外部设备发送的所述中断请求并输出;

所述mcu内核包括系统总线和信号中断处理单元:

所述系统总线,与所述fpga内部边界总线连接,用于接收并处理所述fpga内部边界总线输出的所述连接请求;

所述信号中断处理单元,与所述fpga内部边界总线连接,用于接收并处理所述fpga内部边界总线发送的中断请求。

可选地,所述片上系统还包括时间单元和复位单元;

所述时间单元,与所述mcu内核以及所述fpga内核连接,用于提供时间信号;所述mcu内核和所述fpga内核共用所述时间单元提供的所述时间信号;

所述复位单元,与所述mcu内核以及所述fpga内核连接,用于提供复位信号;所述mcu内核和所述fpga内核共用所述复位单元提供的所述复位信号。

可选地,所述mcu内核还包括:

信号中断处理线,用于连接所述fpga内部边界总线与所述信号中断处理单元,所述信号中断处理单元通过所述信号中断处理线接收所述fpga内部边界总线发送的中断请求。

可选地,所述片上系统还包括:

片内存储器,用于存储数据和指令,所述片内存储器根据当前所处的预设使能模式选择连接所述mcu内核或所述fpga内核。

可选地,所述预设使能模式包括mcu使能模式和fpga使能模式;

在所述片内存储器当前处于mcu使能模式时,所述片内存储器连接所述mcu内核,所述片内存储器用于存储所述mcu内核的数据和指令;

在所述片内存储器当前处于fpga使能模式时,所述片内存储器连接所述fpga内核,所述片内存储器用于存储所述fpga内核的数据和指令。

可选地,所述mcu内核还包括数据处理模块,所述系统总线包括数据总线,所述fpga内核包括ai加速器;

所述数据处理模块,连接所述数据总线,用于将数据信息通过所述数据总线输出;

所述数据总线,连接所述fpga内部边界总线,用于将自所述数据总线接收到的所述数据信息通过所述fpga内部边界总线输出;

所述fpga内部边界总线,连接所述ai加速器,用于将自所述fpga内部边界总线接收到的数据信息输出至所述ai加速器,以供所述ai加速器对所述数据信息进行数据加速处理。

可选地,所述mcu内核还包括逻辑控制模块,所述系统总线包括控制总线;

所述逻辑控制模块,连接所述控制总线,用于将控制信息通过所述控制总线输出;

所述控制总线,通过所述fpga内部边界总线连接所述ai加速器,用于将自所述控制总线接收到的所述控制信息通过所述fpga内部边界总线输出至所述ai加速器,以供所述ai加速器对所述控制信息进行数据加速处理。

可选地,所述fpga内核还包括译码器和多路选择器,所述系统总线包括地址总线;

所述译码器,通过fpga内部边界总线与所述地址总线连接,用于接收所述mcu内核通过所述地址总线传输的地址信号,并在译码所述地址信号之后,根据译码之后的所述地址信号生成控制信号;

所述多路选择器,与所述译码器连接,用于接收所述译码器发送的所述控制信号,并根据所述控制信号对所述外部设备进行寻址。

可选地,所述fpga内核还包括:

地址分线,连接所述译码器以及所述外部设备,所述译码器将译码之后的所述地址信号通过所述地址分线映射至所述外部设备。

可选地,所述fpga内核还包括:

数据分线,连接所述多路选择器和所述外部设备;

所述多路选择器选择根据所述控制信号寻址之后的所述外部设备,并将选择的所述外部设备通过所述数据分线与所述mcu内核连接。

上述片上系统,由于mcu内核通过系统边界总线与至少一个外部设备连接,并通过信号中断处理单元处理外部设备的中断请求,进而实现与外部设备之间的连接或者中断连接,因此,本发明的片上系统可以实现外部设备的易扩展性,进而满足片上系统的使用过程中对不同类型的外部设备需求。同时,由于mcu内核与fpga内核之间通过fpga内部边界总线连接,因此可以缩短片上系统的布局布线距离,提高时序,有助于降低片上系统的功耗。本发明在保证片上系统的mcu内核具有良好的运行速度的同时,还满足了可扩展性和便捷性的需求。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例中片上系统的一结构示意图;

图2是本发明一实施例中片上系统的一结构示意图;

图3是本发明一实施例中片上系统的一局部结构示意图;

图4是本发明一实施例中片上系统的一局部结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明提供一种片上系统,包括mcu内核10、fpga内核20、所述fpga内核20包括fpga内部边界总线201和至少一个外部设备202;其中,mcu内核10指的是在片内与fpga内核20连接的微控制器单元。微控制器单元,即单片机,具有良好的数据处理能力,适于对人工智能算法数据进行处理。同样的,fpga内核20指的是在片内与mcu内核10连接的现场可编程门阵列。fpga(field-programmablegatearray)是在pal(programmablearraylogic,可编程阵列逻辑)、gal(genericarraylogic,通用阵列逻辑)、cpld(complexprogrammablelogicdevice,复杂可编程逻辑器件)等可编程器件的基础上进一步发展的产物,属于一种半定制电路。

所述外部设备202,用于生成中断请求并输出;其中,外部设备202可以指利用fpga逻辑资源形成的器件或外部接口,如dma控制器、i3c接口、ddr接口、ethernet接口、can总线接口、uart接口、rtc模块、sd-card接口。外部设备202的个数可以是一个或多个,比如,如图1所示的m个。可理解地,上述中断请求是指外部设备202在请求与mcu内核10连接、中断与mcu内核10的连接或者向mcu内核10发送指令时所发送的中断处理信号。

所述fpga内部边界总线201,连接所述外部设备202,用于接收所述外部设备202发送的所述中断请求并输出;也即,fpga内核20包括与mcu内核10连接的fpga内部边界总线201。fpga内部边界总线201是fpga内核20内各个逻辑阵列(所述逻辑阵列包括外部设备202)的连接线路。

所述mcu内核10包括系统总线101和信号中断处理单元102:系统总线101,与所述fpga内部边界总线201连接,用于实现mcu内核10与fpga内核20之间的通信;系统总线101指的是mcu内核10与fpga内核20连接的信息通道。系统总线101上传送的信息可以包括数据信息、地址信息、控制信息。

信号中断处理单元102,与所述fpga内部边界总线201连接,用于接收并处理所述fpga内部边界总线201发送的中断请求。也即,在mcu内核10中,可设置有专门的信号中断处理单元102,用于处理由所述fpga内部边界总线201传送的中断请求。

由上述可知,本发明实施例中,由于mcu内核10通过系统边界总线201与至少一个外部设备202连接,并通过信号中断处理单元102处理外部设备202的中断请求,进而实现与外部设备202之间的连接或者中断连接,因此,本发明的片上系统可以实现外部设备202的易扩展性,进而满足片上系统的使用过程中对不同类型的外部设备202需求。同时,由于mcu内核10与fpga内核20之间通过fpga内部边界总线201连接,因此可以缩短片上系统的布局布线距离,提高时序,有助于降低片上系统的功耗。在一实施例中,如图2所示,所述片上系统还包括时间单元301和复位单元302;

所述时间单元301,与所述mcu内核10以及所述fpga内核20连接,用于提供时间信号;所述mcu内核10和所述fpga内核20共用所述时间单元301提供的所述时间信号;

所述复位单元302,与所述mcu内核10以及所述fpga内核20连接,用于提供复位信号;所述mcu内核10和所述fpga内核20共用所述复位单元302提供的所述复位信号。

本实施例中,时间单元301,可以是片上系统内部设置的计时器,也可以指片上系统接收外部时间信号的接口,用于向mcu内核10和fpga内核20提供时间信号。复位单元302,可以是片上系统内部设置的复位器,也可以指片上系统接收外部复位信号的接口,用于向mcu内核10和fpga内核20提供复位信号。fpga内核20和mcu内核10共用时钟信号和复位信号,可提高片上系统同步的时序性。经测算,本实施例提供的片上系统,相较于原有设计(即使用相同型号的mcu和fpga,但mcu和fpga通过片外连接的原有设计),在性能上有15~20%的提升,在功率上有10~15%的降低。

在一实施例中,如图2所示,所述mcu内核10还包括:

信号中断处理线,用于连接fpga内部边界总线201与所述信号中断处理单元102,所述信号中断处理单元102通过所述信号中断处理线接收所述fpga内部边界总线201发送的中断请求。也即,mcu内核10还设置有信号中断处理线,用于接收fpga内部边界总线201发送的中断请求,并将该中断请求传送给mcu内核10中的信号中断处理单元102。具体的,信号中断处理线与fpga内部边界总线201连接。在mcu内核10中,可设置有专门的信号中断处理单元102,用于处理由信号中断处理线传送的中断请求。

在一实施例中,如图2所示,所述片上系统还包括;

片内存储器303,用于存储数据和指令,片内存储器303根据当前所处的预设使能模式选择连接mcu内核10或所述fpga内核20。所述预设使能模式包括mcu使能模式和fpga使能模式;

在片内存储器303当前处于mcu使能模式时,片内存储器303连接所述mcu内核10,所述片内存储器303用于存储所述mcu内核10的数据和指令;

在所述片内存储器303当前处于fpga使能模式时,所述片内存储器303连接所述fpga内核20,所述片内存储器303用于存储所述fpga内核20的数据和指令。

本实施例中,片上系统可以设置有片内存储器303。片内存储器303可以包括非易失性存储器和易失性存储器。片内存储器303可分别与mcu内核10和fpga内核20。在一些情况下,mcu内核10可通过系统总线101与片内存储器303连接;而fpga内核20可通过fpga内部边界总线201以及系统总线101延伸至fpga内部边界总线201的部分与片内存储器303连接。

虽然片内存储器303为mcu内核10和所述fpga内核20共用,但是在同一时间内,片内存储器303仅可以为其中的一个内核使用。当片内存储器303处于mcu使能模式时,片内存储器303与mcu内核10处于连接状态,片内存储器303可以存储mcu内核10的数据和指令。当片内存储器303处于fpga使能模式时,片内存储器303与fpga内核20处于连接状态,片内存储器303可以存储fpga内核20的数据和指令。

在一实施例中,如图3所示,mcu内核10还包括数据处理模块103,系统总线101包括数据总线,fpga内核20包括ai加速器203;

所述数据处理模块103,连接所述数据总线,用于将数据信息通过所述数据总线输出;

所述数据总线,连接所述fpga内部边界总线201,用于将自所述数据总线接收到的所述数据信息通过所述fpga内部边界总线201输出;

所述fpga内部边界总线201,连接所述ai加速器203,用于将自所述fpga内部边界总线201接收到的数据信息输出至所述ai加速器203,以供所述ai加速器203对所述数据信息进行数据加速处理。

本实施例中,ai加速器203可使用fpga内核20的逻辑资源实现。ai加速器203的个数一般为多个,如图2或图3所示的n个。mcu内核10包括数据处理模块103,而系统总线101包括数据总线。数据总线的一端与数据处理模块103连接,另一端则延伸至fpga内部边界总线201,使得数据处理模块103与各个ai加速器203建立数据连接。在该实施例中,由于mcu内核10通过系统边界总线201与至少一个ai加速器203连接,并通过ai加速器203对mcu内核10中的数据处理模块103输出的数据信息进行数据加速处理,进而实现与外部设备之间的连接或者中断连接,因此,本发明的片上系统可以实现ai加速器203的易扩展性,进而通过扩展的ai加速器203满足人工智能算法对数据处理速度的要求,使得mcu内核10可以达到最高运行频率。同时,通过扩展的ai加速器203,可以满足了人工智能算法高时序、低功耗的要求,也加速了人工智能在fpga领域的研发速度,降低了人工智能设计的复杂度。在一实施例中,所述mcu内核10还包括逻辑控制模块104,所述系统总线101包括控制总线;

所述逻辑控制模块104,连接所述控制总线,用于将控制信息通过所述控制总线输出;

所述控制总线,通过所述fpga内部边界总线201连接所述ai加速器203,用于将自所述控制总线接收到的所述控制信息通过所述fpga内部边界总线201输出至ai加速器203,以供所述ai加速器203对所述控制信息进行数据加速处理。

具体的,mcu内核10还包括逻辑控制模块104,而系统总线101包括控制总线。控制总线的一端与逻辑控制模块104连接,另一端延伸至fpga内部边界总线201,使得逻辑控制模块104与各个ai加速器203建立数据连接。逻辑控制模块104产生的控制信号可顺次通过控制总线和fpga内部边界总线201传送至ai加速器203,控制ai加速器203的工作状态。

在一实施例中,如图4所示,所述fpga内核20还包括译码器204和多路选择器205,所述系统总线101包括地址总线;

所述译码器204,通过fpga内部边界总线201与所述地址总线连接,用于接收所述mcu内核10通过所述地址总线传输的地址信号,并在译码所述地址信号之后,根据译码之后的所述地址信号生成控制信号;

所述多路选择器205,与译码器204连接,用于接收所述译码器204发送的所述控制信号,并根据所述控制信号对所述外部设备202进行寻址。在一实施例中,如图4所示,fpga内核20还包括译码器204和多路选择器205,系统总线101包括地址总线和数据总线。译码器204可接收由mcu内核10生成,经地址总线传送的地址信号,对mcu内部地址存储空间进行分段,每个地址段连接映射一个外部设备202,实现mcu内核10对外部设备202的寻址。

多路选择器205与译码器204连接,可接收经译码器204产生的控制信号。同时,多路选择器205还通过数据总线与mcu内核10连接。多路选择器205与多个外部设备202相连,可根据控制信号选择相应的外部设备202。

在一实施例中,所述fpga内核20还包括:

地址分线,连接所述译码器204以及所述外部设备202,所述译码器204将译码之后的所述地址信号通过所述地址分线映射至所述外部设备;

数据分线,连接所述多路选择器205和所述外部设备202;

所述多路选择器205选择根据所述控制信号寻址之后的所述外部设备202,并将选择的所述外部设备202通过所述数据分线与所述mcu内核10连接。

本实施例中,译码器204与外部设备202之间是通过地址分线连接。经译码器204译码后的地址信号通过地址分线映射至外部设备202。而多路选择器205与外部设备202之间是通过数据分线连接的。多路选择器205接收到由译码器204提供的控制信号后,根据控制信号选择与数据分线连接的外部设备202。这样可以使得外部设备202可依次通过数据分线、多路选择器205、数据总线,与mcu内核10建立连接。

本发明上述实施例通过对片上系统的内部结构重新布局,解决了原有的芯片无法同时满足数据处理速率高和外部设备易扩展的问题,在保证片上系统的mcu内核具有良好的运行速度的同时,满足外部设备易扩展的需求,同时还可以提高对人工智能算法的处理效率,降低片上系统的运行功耗。

其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

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