一种可配置的微控制器内核及其使用方法与流程

文档序号:14719042发布日期:2018-06-17 00:24阅读:170来源:国知局

本发明涉及微控制器技术领域,尤其涉及一种可配置的微控制器内核及其使用方法。



背景技术:

随着集成电路技术的发展,片上系统(SOC,SystemonChip)和专用集成电路(ASIC,ApplicationSpecificIntergratedCircut)技术已经应用在现在生活中的方方面面。目前的片上系统或者专用集成电路一般是将微控制器内核、存储器、总线和各种外设集成在一个芯片上,这里我们以片上系统为例来说明,图1A为片上系统的结构图,图中的微控制器内核,主要功能是数据的处理和控制,片上系统中的微控制器可以为ARM内核、MIPS内核等;总线,主要功能是将微控制器内核、存储器、外设和输入输出口连接在一起,用于数据的传输,比如AMBA总线;存储器,用于数据的存储和程序的执行,可以为静态随机存储器(SRAM)、只读存储器(ROM)或者非易失性存储器;外设,比如时钟timer、实时时钟(RTC,RealTimeClock)、智能卡接口和各种通信协议(SPI、UART、I2C等);输入输出口,主要用于数据的输入和输出。微控制器内核的基本结构如图1B所示,微控制器内核中包括算数逻辑单元(ALU)、布尔处理器、累加器、浮点处理单元、定时控制逻辑、指令寄存器、指令译码器、介质访问控制模块等。

对微控制器内核来说,在经过淀积、光刻、刻蚀和离子注入等工艺流程被制造出来后,所有的硬件电路都已经固定,不能被更改,而且对于某种微控制器内核来说其指令集也是固定的,比如微控制器是ARM内核的,那么该微控制器的指令集就为ARM的指令集,如果微控制器是MIPS内核的,那么该微控制器的指令集就为MIPS的指令集。对于每一个微控制器内核来说,它的指令集是确定的,指令集的译码方法和译码电路也是确定的,对于不同的指令集来说,指令集相应的译码方法和译码电路也是不同的,因此具有不同指令集的微控制器内核的译码方法和译码电路是不同的,并不能够相互共用。

对于应用在物联网和可穿戴设备领域的微控制器内核来说,客户为了满足低功耗和面积的要求,一般会基于该微控制器内核的指令集对应用程序做一定的优化,为了达到最好的优化结果,对应用程序的优化一般靠近底层,比如在汇编的层次上对应用程序做优化而不是在高级语言的层次上做优化(如C语言等),也就是说优化过的应用程序跟微控制器内核的指令集有很大的联系。比如对于某种应用程序而言是基于ARM指令集开发的,而且做了一定的优化,对于某个拥有MIPS微控制器内核的客户来说,如果想使用该应用程序一般有两种方法,一种方法是购买基于ARM指令集的微控制器内核来应用该应用程序,因为该应用程序是基于ARM指令集开发的,不能直接用在基于MIPS指令集的微控制器内核中,但这样会增加客户的硬件成本;另外一种方法是将该应用程序移植到基于MIPS指令集的微控制器内核中,但这样做的话会消耗大量的时间,增加产品的上市时间,而且软件开发的成本也会增大,从而使系统的成本增大。

微控制器内核生产厂商生产的微控制器内核为了满足所有客户的需求,因此把某个指令集所有的指令的译码都实现在微控制器内核中,这样虽然满足了所有用户的需求,提高了微控制器内核的应用情景,但是也带来了一些问题,比如对于部分客户来说,开发的大部分应用程序所用到的指令只是该微控制器内核指令集的一部分,并不是微控制器内核的指令集中的所有指令都会被用到,这就会造成微控制器内核面积和功耗的浪费,从而造成芯片成本的增大,这显然不符合目前芯片面积越来越小和低功耗的要求。

现场可编程门阵列(FPGA,FieldProgrammableGateArray)是在可编程阵列逻辑(PAL,ProgrammableArrayLogic)、门阵列逻辑(GAL,GateArrayLogic)和可编程器件(PLD,ProgrammableLogicDevice)的基础上发展而来的。FPGA是可编程的硅芯片,使用预建的逻辑块和可编程布线资源,用户无需通过流片和使用电路板,就能配置这些芯片来实现自己想实现的功能,它的出现解决了定制电路的不足,也克服了原来可编程器件门电路数有限的问题。FPGA的基本结构如图1C所示,图中1B中的微控制器内核,可被用户直接用于整个FPGA片上系统数据的处理和配置,在FPGA中如果用户用可编程门阵列实现微控制器内核所要用到的可编程资源比较大,面积也比较大,所以一般在FPGA中加入已经固化实现的微控制器内核,图中可编程门阵列,主要由可编程逻辑单元、连接单元、开关单元和可编程IO单元组成。FPGA中的微控制器内核的硬件已经确定,而且微控制器内核的指令集也已经确定,也就是说是专用的,如果客户的FPGA中的微控制器内核是基于ARM指令集的,而现在客户的要应用的应用程序是基于PowerPC指令集开发的,那么对于客户来说一种选择是购买基于PowerPC的FPGA,但是目前没有这种FPGA,另外一种选择是将基于PowerPC指令集的应用程序移植到基于ARM指令集的微控制器内核中,但这要花费一定的时间,最后一种方法是通过可编程门阵列实现基于PowerPC指令集的微控制器内核,但是客户在使用FPGA时,一般不会利用可编程门阵列去实现一个微控制器内核,如果这样做的话,那么FPGA中的微控制器内核就一直不会被用到,那么就会造成硬件资源的浪费。

对于某种微控制器内核来说,如果目前这种微控制器内核很流行,被应用在各种场合的SOC/ASIC/FPGA中,那么就会造成硬件的同化性,所谓硬件的同化性就是说不同生产厂商的产品核心部件(即内核)基本上都一样,基本没有差异性,而且基于该种微控制器内核的产品已经被客户接受,那么客户在购买产品时,就会直接选用基于该种微控制器内核的产品,那么这样就会造成其他产品的竞争性降低,而所有的产品都是基于同一指令集的微控制器内核开发的,这样也会使人们开发新的微控制器内核的兴趣性降低,造成创新性下降。



技术实现要素:

针对上述技术问题,本申请提供了一种可配置的微控制器内核,包括一嵌入式可编程门阵列模块和一全定制硬件电路实现模块,所述嵌入式可编程门阵列模块至少包括用于在所述微控制器内核中对指令进行译码处理的指令译码功能模块。。

较佳的,所述全定制硬件电路实现模块包括算数逻辑单元和/或布尔处理器和/或累加器和/或浮点处理器和/或定时控制逻辑器和/或指令寄存器和/或介质访问控制模块。

本发明还提供了一种可配置微控制器内核的使用方法,包括步骤:

S1:用户根据自己的系统需要,选择相应的指令集中自己用到的指令;

S2:下载用于配置所述嵌入式可编程门阵列模块的指令译码功能模块;

S3:所述用户利用PC中的嵌入式可编程门阵列的综合器将下载的所述指令译码功能模块转化为二进制位流文件;

S4:通过所述可编程输入输出口将所述二进制文件下载到所述嵌入式可编程门阵列模块中;

S5:将基于该指令集的应用程序烧到代码区;

S6:系统上电后所述微控制器内核执行相应指令,从而执行所述应用程序。

较佳的,所述步骤S2包括步骤:

S21:判断所述指令是否为指令集的一部分,如果是那么执行S22,否则执行S23;

S22:下载用于配置所述嵌入式可编程门阵列模块中所述指令所对应的指令译码功能模块,执行S3;

S23:下载用于配置所述嵌入式可编程门阵列模块的全部的指令译码功能模块,执行S3。

综上所述,由于采用了上述技术方案,本专利申请记载了一种可配置的微控制器内核及其使用方法,其有益效果有:其硬件和指令集是可配置的,通过所述嵌入式可编程门阵列,指令译码器可以重新配置;用户根据实际需求,下载相应的指令集的译码功能模块至所述可编程门阵列模块中,从而实现了拥有不同指令集的微控制器内核的效果,这样客户就不需要再购买具有另外指令集的微控制器内核。

附图说明

图1A是现有技术中片上系统的结构示意图;

图1B是现有技术中微控制器内核的结构示意图;

图1C是现有技术中FPGA的基本结构示意图;

图2是本发明一种可配置的微控制器内核的结构示意图;

图3是本发明一种可配置的微控制器内核的使用状态图;

图4是本发明一种可配置的微控制器内核的使用方法流程图一;

图5是本发明一种可配置的微控制器内核的使用方法流程图二;

图6是本发明实施例三中智能家居系统的结构图;

图7是本发明实施例三中应用程序开发包的结构示意图。

具体实施方式

下面结合附图对本发明的具体实施方式作进一步的说明。

实施例一

本发明提供了一种可配置的微控制器内核,如图2所示,所述微控制器内核包括一嵌入式可编程门阵列模块和一全定制硬件电路实现模块:

所述嵌入式可编程门阵列模块,用于实现所述微控制器内核中至少指令译码功能模块,从而实现指令集的译码等功能;

所述全定制硬件电路实现模块与所述嵌入式可编程门阵列相连,用于实现所述微控制器内核中除用所述嵌入式可编程门阵列实现的模块外的其他模块。

其中,所述微控制器内核还包括一可编程输入输出口,可编程输入输出口与所述嵌入式可编程门阵列模块相连,用于下载相应的二级制位流文件到所述嵌入式可编程门阵列模块。

所述全定制硬件电路实现模块至少包括算数逻辑单元、布尔处理器、累加器、浮点处理单元、定时控制逻辑、指令寄存器以及介质访问控制模块等模块。

目前的微控制器内核都是由全定制硬件电路实现的,而本发明提出的可配置的微控制器内核是由可编程门阵列模块和全定制硬件电路实现模块组成。嵌入式可编程门阵列模块的功能是:利用嵌入式可编程门阵列可以重新编程的优点,用嵌入式可编程门阵列实现微控制器内核中至少指令集的译码功能模块,这样客户就可以根据自己的需要下载相应的指令集的译码功能模块从而实现拥有不同指令集的微控制器内核,这样客户就不需要再购买具有另外指令集的微控制器内核,而且每次客户在下载相应指令集译码功能模块的时候,不用下载该指令集的全部指令,只用根据自己的需求下载自己应用程序中用得到的指令。而全定制硬件电路实现模块则是实现除了微控制器内核实现的模块外的其他模块,比如算数逻辑单元、布尔处理器等。

如图3所示,PC中有一与所述微控制器内核对应的嵌入式可编程门阵列的综合器,所述综合器将具体的指令集译码功能模块转化为相应的二进制位流文件,通过所述可编程输入输出口将所述二进制文件下载到所述嵌入式可编程门阵列模块中,从而实现微控制器内核中指令集的可配置。

本发明提供了一种可配置的微控制器内核,通过所述嵌入式可编程门阵列,指令译码器可以重新配置。

实施例二

根据上述实施例提出的一种可配置的微控制器内核,本实施例基于所述微控制器内核,提出了一种所述微控制器内核的工作方法。

如图4所示,所述可配置微控制器内核的具体工作方法为:

S1:用户根据自己的系统需要,选择相应的指令集中自己用到的指令;

S2:下载用于配置所述嵌入式可编程门阵列模块的指令译码功能模块;

S3:客户利用PC中的嵌入式可编程门阵列的综合器将下载的所述指令译码功能模块转化为二进制位流文件;

S4:通过所述可编程输入输出口将所述二进制文件下载到所述嵌入式可编程门阵列模块01中;

S5:将基于该指令集的应用程序烧到代码区;

S6:系统上电后所述微控制器内核执行相应指令,从而执行所述应用程序。

结合图5,其中,所述步骤S2包括步骤:

S21:判断所述指令是否为指令集的一部分,如果是那么执行S22,否则执行S23;

S22:下载用于配置所述嵌入式可编程门阵列模块相应的指令译码功能模块,执行S3;

S23:下载用于配置所述嵌入式可编程门阵列模块的全部的指令译码功能模块,执行S3。

值得指出的是,在步骤S22中,相应的指令译码功能模块指的是所述指令所对应的指令译码功能模块。即不同的指令对应的指令译码功能模块不同,当判定了所述指令仅为指令集的一部分时,那么并不需要下载全部的指令译码功能模块,而仅需要下载该指令所需的指令译码功能模块。

通过在传统的微控制器内核中添加所述嵌入式可编程门阵列模块01,利用所述可编程门阵列模块可以重新编程的优点,至少实现微控制器内核中指令集的译码功能。用户根据实际需求,下载相应的指令集的译码功能模块至所述可编程门阵列模块中,从而实现了拥有不同指令集的微控制器内核的效果,这样客户就不需要再购买具有另外指令集的微控制器内核。且在客户下载相应的指令集译码功能模块时,并不需要下载该指令集的全部指令,只需要根据自己的需求下载自己应用程序中用到的部分指令,从而避免了微控制器内核中应用全部指令集所带来的面积和功耗的浪费。

实施例三

根据上述实施例,本实施例对上述实施方式进行细化,提出了本发明在实际中的具体应用。

图6为一种智能家居系统的结构图,所述智能家居系统至少包括:一可配置的微控制器内核、一代码区、一数据区和一具有其它功能的芯片。所述智能家居系统的应用开发平台在云端,即所述智能家居系统所需的应用程序以及运行该应用程序相应的指令集译码功能模块的二进制位流文件,均存储在云端。

结合图7,所述云端共有N个应用程序所对应的应用开发包。其中,基于MIPS指令集开发的应用程序有X个,分别为应用程序M_1、应用程序M_2、……、M_X,基于ARM指令集开发的应用程序有Y个,分别为应用程序A_1、应用程序A_2、……、A_Y,且相对应的MIPS指令集的指令译码功能模块的二进制位流文件和ARM指令集的指令译码功能模块的二进制位流文件都存储在云端。对于某客户来说,如果该客户根据自己的需要选择的是基于MIPS指令集的应用程序M_3,应用程序M_3用到的MIPS指令集的指令数为30条,那么该客户只需要将应用程序M_3和应用程序M_3用到的30条MIPS指令译码功能模块的二进制位流文件从云端下载下来,应用程序M_3存储在系统中的代码区,应用程序M_3用到的30条MIPS指令译码功能模块的二进制位流文件被下载到可配置微控制器内核1中的嵌入式可编程门阵列模块01中,这样系统就可以直接执行应用程序M_3。如果客户现在根据自己的需要选择的是基于ARM指令集的应用程序A_1,应用程序A_1用到的ARM指令集的指令数为40条,那么该客户只需要将应用程序A_1和应用程序A_1用到的40条ARM指令译码功能模块的二进制位流文件从云端下载下来,应用程序A_1存储在系统中的代码区,应用程序A_1用到的40条ARM指令译码功能模块的二进制位流文件被下载到可配置微控制器内核1中的嵌入式可编程门阵列模块中,这样系统就可以直接执行应用程序A_1了。

本实施例提出的一种微控制器内核,如果客户需要运行基于某种指令集的应用程序,只需要从应用开发平台上下载相应的应用程序和该应用程序用到的对应指令集中相应的译码功能模块的二进制位流文件。在传统微控制器内核只能运行基于固定指令集的应用程序,不能运行基于其他指令集的应用程序,如果想要运行其他指令集的应用程序,就必须购买相应的硬件并且需要移植该应用程序,而利用本发明提出的可控制微控制器内核,节省了硬件和软件的开销,减小了产品的上市时间。

以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所做出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

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