发明内容
本发明的实施例提供一种微控制器及其指令执行方法,能够提高指令的执行效率。
本发明实施例采用的技术方案为:
一种微控制器,包括:
时序控制模块,用于由程序控制器获取指令,根据所述指令产生指令执行周期,将所述指令执行周期向状态信号模块发送,根据所述状态信号模块指示的所述指令执行时所处的时钟周期,在所述指令执行时所处的倒数第二个时钟周期向所述程序存储器发送读取下一条指令的控制信号,以及在所述指令执行时所处的最后一个时钟周期从所述程序控制器读取下一条指令;
状态信号模块,用于接收所述时序控制模块发送的指令执行周期,根据所述指令执行周期指示所述指令执行时所处的时钟周期,所述指令执行周期包括至少两个时钟周期。
一种指令执行方法,包括:
时序控制模块由程序控制器获取指令,根据所述指令产生指令执行周期,将所述指令执行周期向状态信号模块发送;
状态信号模块接收所述时序控制模块发送的指令执行周期,根据所述指令执行周期指示所述指令执行时所处的时钟周期,所述指令执行周期包括至少两个时钟周期;
时序控制模块根据所述状态信号模块指示的所述指令执行时所处的时钟周期,在所述指令执行时所处的倒数第二个时钟周期向所述程序存储器发送读取下一条指令的控制信号,以及在所述指令执行时所处的最后一个时钟周期从所述程序控制器读取下一条指令。
本发明实施例提供的微控制器及其指令执行方法,时序控制模块由程序控制器获取指令,根据所述指令产生指令执行周期,将所述指令执行周期向状态信号模块发送,状态信号模块根据所述指令执行周期指示所述指令执行时所处的时钟周期,所述指令执行周期包括至少两个时钟周期,时序控制模块根据所述状态信号模块指示的所述指令执行时所处的时钟周期,在所述指令执行时所处的倒数第二个时钟周期向所述程序存储器发送读取下一条指令的控制信号,以及在所述指令执行时所处的最后一个时钟周期从所述程序控制器读取下一条指令。与现有技术相比,本发明实施例采用指令局部流水方式,能够避免出现指令阻塞的情况,提高了指令的执行效率。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为使本发明技术方案的优点更加清楚,下面结合附图和实施例对本发明作详细说明。
实施例一
本实施例提供一种微控制器,如图1所示,所述微控制器包括:
时序控制模块101,用于由程序控制器103获取指令,根据所述指令产生指令执行周期,将所述指令执行周期向状态信号模块102发送,根据所述状态信号模块102指示的所述指令执行时所处的时钟周期,在所述指令执行时所处的倒数第二个时钟周期向所述程序存储器103发送读取下一条指令的控制信号,以及在所述指令执行时所处的最后一个时钟周期从所述程序控制器103读取下一条指令;
状态信号模块102,用于接收所述时序控制模块101发送的指令执行周期,根据所述指令执行周期指示所述指令执行时所处的时钟周期,所述指令执行周期包括至少两个时钟周期。
进一步的,如图1所示,所述微控制器还可以包括读写控制模块104和运算模块105;
所述时序控制模块101,还用于根据所述指令产生时序控制信号,将所述时序控制信号向所述读写控制模块104和运算模块105发送;
所述读写控制模块104,用于根据所述时序控制信号,从数据存储器106读取数据或者向数据存储器106写入数据;
所述运算模块105,用于根据所述时序控制信号,对从数据存储器106读取的数据进行处理。
进一步的,所述时序控制模块101,还用于在所述下一条指令执行时所处的第一个时钟周期产生时序控制信号,将所述时序控制信号向所述读写控制模块104和运算模块105发送。
进一步的,如图1所示,所述微控制器还可以包括:
中断定时模块107,用于根据所述状态信号模块102指示的所述指令执行时所处的时钟周期,在所述指令执行时所处的最后一个时钟周期进行中断仲裁,当具有所响应的中断时,在所述下一条指令执行时所处的倒数第二个时钟周期,控制所述时序控制模块101暂停从所述程序控制器103读取指令。
进一步的,所述时序控制模块101,还用于在复位期间将所述指令执行周期设置为包括两个时钟周期。
本发明实施例提供的微控制器,时序控制模块由程序控制器获取指令,根据所述指令产生指令执行周期,将所述指令执行周期向状态信号模块发送,状态信号模块根据所述指令执行周期指示所述指令执行时所处的时钟周期,所述指令执行周期包括至少两个时钟周期,时序控制模块根据所述状态信号模块指示的所述指令执行时所处的时钟周期,在所述指令执行时所处的倒数第二个时钟周期向所述程序存储器发送读取下一条指令的控制信号,以及在所述指令执行时所处的最后一个时钟周期从所述程序控制器读取下一条指令;中断定时模块根据所述状态信号模块指示的所述指令执行时所处的时钟周期,在所述指令执行时所处的最后一个时钟周期进行中断仲裁,当具有所响应的中断时,在所述下一条指令执行时所处的倒数第二个时钟周期,控制所述时序控制模块暂停从所述程序控制器读取指令;所述时序控制模块在复位期间将所述指令执行周期设置为包括两个时钟周期。与现有技术相比,本发明实施例采用指令局部流水方式,能够避免出现指令阻塞的情况,提高了指令的执行效率。
实施例二
本实施例提供一种指令执行方法,如图2所示,所述方法包括:
201、时序控制模块由程序控制器获取指令,根据所述指令产生指令执行周期,将所述指令执行周期向状态信号模块发送。
其中,在系统上电后,时序控制模块发出读取程序存储器的控制信号,从程序存储器获得指令,经过解析,产生指令执行周期,所述指令执行周期包括至少两个时钟周期。
进一步的,所述时序控制模块还可以根据所述指令产生时序控制信号,将所述时序控制信号向读写控制模块和运算模块发送;所述读写控制模块根据所述时序控制信号,从数据存储器读取数据或者向数据存储器写入数据;所述运算模块根据所述时序控制信号,对从数据存储器读取的数据进行处理。
202、状态信号模块接收所述时序控制模块发送的指令执行周期,根据所述指令执行周期指示所述指令执行时所处的时钟周期,所述指令执行周期包括至少两个时钟周期。
具体地,状态信号模块接收时序控制模块发出的指令执行周期,各个指令的执行周期可以从2个时钟周期到11个时钟周期。这里采用S1,S2,S3直至S2L和SL来指示指令执行时所处的时钟周期,当指令执行处在第一个时钟周期时,S1为1,当指令执行处在第二个时钟周期,S2为1,当指令处在倒数第二个时钟周期时,S2L为1,当指令处在最后一个时钟周期时,SL为1。
203、时序控制模块根据所述状态信号模块指示的所述指令执行时所处的时钟周期,在所述指令执行时所处的倒数第二个时钟周期向所述程序存储器发送读取下一条指令的控制信号,以及在所述指令执行时所处的最后一个时钟周期从所述程序控制器读取下一条指令。
具体地,在当前指令的倒数第二个时钟周期,也就是S2L=1时,时序控制模块发出取下一条指令的控制信号,在当前指令的倒数第一个周期,也就是SL=1时,时序控制模块从程序存储器读取指令。
进一步的,所述时序控制模块对下一条指令进行解析产生指令执行周期,在所述下一条指令执行时所处的第一个时钟周期,也就是S1=1时,对下一条指令进行解析,产生时序控制信号,将所述时序控制信号向所述读写控制模块和运算模块发送。从而,可以形成局部流水系统,增加了指令的吞吐量,提高了指令的执行效率。
204、中断定时模块根据所述状态信号模块指示的所述指令执行时所处的时钟周期,在所述指令执行时所处的最后一个时钟周期进行中断仲裁,当具有所响应的中断时,在所述下一条指令执行时所处的倒数第二个时钟周期,控制所述时序控制模块暂停从所述程序控制器读取指令。
具体地,中断定时模块在每条指令执行的最后一个时钟周期,也就是SL=1时,进行中断仲裁,当发现能够响应某一中断时,中断标志位intflag拉高,引起在下个时钟周期intrack_tmp信号变高,表示进入中断响应的处理。由于在SL状态进行中断仲裁之前已经读取了下一条指令,因此先将读取的下一条指令执行完,在读取的下一条指令的S2L状态,由intack_tmp信号屏蔽程序存储器取指信号。
205、所述时序控制模块在复位期间将所述指令执行周期设置为包括两个时钟周期。
为确保系统能够正常运行,在复位期间,将指令执行周期设置为2。这样在复位结束时,首先执行一个NOP指令,该指令为两个时钟周期,因此,在该指令的S1状态发送读取下一条指令的控制信号,在该指令的S2状态读取下一条指令。
本发明实施例提供的指令执行方法,时序控制模块由程序控制器获取指令,根据所述指令产生指令执行周期,将所述指令执行周期向状态信号模块发送,状态信号模块根据所述指令执行周期指示所述指令执行时所处的时钟周期,所述指令执行周期包括至少两个时钟周期,时序控制模块根据所述状态信号模块指示的所述指令执行时所处的时钟周期,在所述指令执行时所处的倒数第二个时钟周期向所述程序存储器发送读取下一条指令的控制信号,以及在所述指令执行时所处的最后一个时钟周期从所述程序控制器读取下一条指令;中断定时模块根据所述状态信号模块指示的所述指令执行时所处的时钟周期,在所述指令执行时所处的最后一个时钟周期进行中断仲裁,当具有所响应的中断时,在所述下一条指令执行时所处的倒数第二个时钟周期,控制所述时序控制模块暂停从所述程序控制器读取指令;所述时序控制模块在复位期间将所述指令执行周期设置为包括两个时钟周期。与现有技术相比,本发明实施例采用指令局部流水方式,能够避免出现指令阻塞的情况,提高了指令的执行效率。
本发明实施例提供的微控制器可以实现上述提供的方法实施例。本发明实施例提供的微控制器及其指令执行方法可以适用于8051微控制器的指令执行,但不仅限于此。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。