[0032] 下面结合附图对本发明的具体实施方式作进一步的说明。
[0033] 实施例一
[0034] 本发明提供了一种可配置的微控制器内核,如图2所示,所述微控制器内核包括一嵌入式可编程门阵列模块和一全定制硬件电路实现模块:
[0035] 所述嵌入式可编程门阵列模块,用于实现所述微控制器内核中至少指令译码功能模块,从而实现指令集的译码等功能;
[0036] 所述全定制硬件电路实现模块与所述嵌入式可编程门阵列相连,用于实现所述微控制器内核中除用所述嵌入式可编程门阵列实现的模块外的其他模块。
[0037] 其中,所述微控制器内核还包括一可编程输入输出口,可编程输入输出口与所述嵌入式可编程门阵列模块相连,用于下载相应的二级制位流文件到所述嵌入式可编程门阵列模块。
[0038] 所述全定制硬件电路实现模块至少包括算数逻辑单元、布尔处理器、累加器、浮点处理单元、定时控制逻辑、指令寄存器以及介质访问控制模块等模块。
[0039] 目前的微控制器内核都是由全定制硬件电路实现的,而本发明提出的可配置的微控制器内核是由可编程门阵列模块和全定制硬件电路实现模块组成。嵌入式可编程门阵列模块的功能是:利用嵌入式可编程门阵列可以重新编程的优点,用嵌入式可编程门阵列实现微控制器内核中至少指令集的译码功能模块,这样客户就可以根据自己的需要下载相应的指令集的译码功能模块从而实现拥有不同指令集的微控制器内核,这样客户就不需要再购买具有另外指令集的微控制器内核,而且每次客户在下载相应指令集译码功能模块的时候,不用下载该指令集的全部指令,只用根据自己的需求下载自己应用程序中用得到的指令。而全定制硬件电路实现模块则是实现除了微控制器内核实现的模块外的其他模块,比如算数逻辑单元、布尔处理器等。
[0040] 如图3所示,PC中有一与所述微控制器内核对应的嵌入式可编程门阵列的综合器,所述综合器将具体的指令集译码功能模块转化为相应的二进制位流文件,通过所述可编程输入输出口将所述二进制文件下载到所述嵌入式可编程门阵列模块中,从而实现微控制器内核中指令集的可配置。
[0041] 本发明提供了一种可配置的微控制器内核,通过所述嵌入式可编程门阵列,指令译码器可以重新配置。
[0042] 实施例二
[0043] 根据上述实施例提出的一种可配置的微控制器内核,本实施例基于所述微控制器内核,提出了一种所述微控制器内核的工作方法。
[0044] 如图4所示,所述可配置微控制器内核的具体工作方法为:
[0045] S1:用户根据自己的系统需要,选择相应的指令集中自己用到的指令;
[0046] S2:下载用于配置所述嵌入式可编程门阵列模块的指令译码功能模块;
[0047] S3:客户利用PC中的嵌入式可编程门阵列的综合器将下载的所述指令译码功能模块转化为二进制位流文件;
[0048] S4:通过所述可编程输入输出口将所述二进制文件下载到所述嵌入式可编程门阵列模块01中;
[0049] S5:将基于该指令集的应用程序烧到代码区;
[0050] S6:系统上电后所述微控制器内核执行相应指令,从而执行所述应用程序。
[0051] 结合图5,其中,所述步骤S2包括步骤:
[0052] S21:判断所述指令是否为指令集的一部分,如果是那么执行S22,否则执行S23;
[0053] S22:下载用于配置所述嵌入式可编程门阵列模块相应的指令译码功能模块,执行S3;
[0054] S23:下载用于配置所述嵌入式可编程门阵列模块的全部的指令译码功能模块,执行S3。
[0055] 值得指出的是,在步骤S22中,相应的指令译码功能模块指的是所述指令所对应的指令译码功能模块。即不同的指令对应的指令译码功能模块不同,当判定了所述指令仅为指令集的一部分时,那么并不需要下载全部的指令译码功能模块,而仅需要下载该指令所需的指令译码功能模块。
[0056] 通过在传统的微控制器内核中添加所述嵌入式可编程门阵列模块01,利用所述可编程门阵列模块可以重新编程的优点,至少实现微控制器内核中指令集的译码功能。用户根据实际需求,下载相应的指令集的译码功能模块至所述可编程门阵列模块中,从而实现了拥有不同指令集的微控制器内核的效果,这样客户就不需要再购买具有另外指令集的微控制器内核。且在客户下载相应的指令集译码功能模块时,并不需要下载该指令集的全部指令,只需要根据自己的需求下载自己应用程序中用到的部分指令,从而避免了微控制器内核中应用全部指令集所带来的面积和功耗的浪费。
[0057] 实施例三
[0058] 根据上述实施例,本实施例对上述实施方式进行细化,提出了本发明在实际中的具体应用。
[0059] 图6为一种智能家居系统的结构图,所述智能家居系统至少包括:一可配置的微控制器内核、一代码区、一数据区和一具有其它功能的芯片。所述智能家居系统的应用开发平台在云端,即所述智能家居系统所需的应用程序以及运行该应用程序相应的指令集译码功能模块的二进制位流文件,均存储在云端。
[0060] 结合图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了。
[0061] 本实施例提出的一种微控制器内核,如果客户需要运行基于某种指令集的应用程序,只需要从应用开发平台上下载相应的应用程序和该应用程序用到的对应指令集中相应的译码功能模块的二进制位流文件。在传统微控制器内核只能运行基于固定指令集的应用程序,不能运行基于其他指令集的应用程序,如果想要运行其他指令集的应用程序,就必须购买相应的硬件并且需要移植该应用程序,而利用本发明提出的可控制微控制器内核,节省了硬件和软件的开销,减小了产品的上市时间。
[0062] 以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所做出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。