首页> 中国专利> 自我控制的多重微控制系统及方法

自我控制的多重微控制系统及方法

摘要

本发明揭露一种自我控制多重微控制系统及其控制方法,在此多重微控制系统中,任一微控制器核心逻辑可将一插入程序的起始地址直接置入于另一受控微控制器核心逻辑中的程序计数器内,而此受控微控制器核心逻辑受到中断时的程序地址,则是暂存于微控制器核心逻辑的堆栈指标器所指示的堆栈存储器中,以使受控微控制器核心逻辑在执行完毕插入程序后,可从此断点开始重新执行原本的程序。

著录项

  • 公开/公告号CN101046739A

    专利类型发明专利

  • 公开/公告日2007-10-03

    原文格式PDF

  • 申请/专利权人 应广科技股份有限公司;

    申请/专利号CN200610073850.X

  • 发明设计人 张荣麟;凌全伯;林世裕;

    申请日2006-03-31

  • 分类号G06F9/38(20060101);

  • 代理机构11219 中原信达知识产权代理有限责任公司;

  • 代理人谢丽娜;陈肖梅

  • 地址 中国台湾新竹市

  • 入库时间 2023-12-17 19:16:00

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2009-10-14

    授权

    授权

  • 2007-11-28

    实质审查的生效

    实质审查的生效

  • 2007-10-03

    公开

    公开

说明书

技术领域

本发明涉及一种多重微控制系统及方法,特别是关于一种具有自我控制能力的多重微控制系统及方法。

背景技术

微控制器(Microcontroller Unit,MCU),或称做微处理器(Microprocessor Unit,MPU),亦又可称为单芯片微电脑(Single ChipMicrocomputer),为一种不需要其它辅助电路而能独立执行运算的装置,主要是负责系统产品中控制功能的集成电路元件,一颗微控制器几乎就是一台微型的计算机,因为它包含了完整计算机所提供的各种功能。近年来,微控制器的应用已经相当地广泛,包括消费性电子、工业控制、医疗仪器、车控等等,依据不同的微控制器规格,可应用在不同的领域,且所控制的外围元件也有所不同。

而在回顾微控制器历史的发展时,发现其发展的主要目标包括有:(1)加速指令处理资料的速度,(2)更小的单位功能芯片尺寸,以及(3)更少的功率消耗;在这些目的之下衍生出几个重要的发展过程,包括了处理位数的增加、工作时间脉冲频率的加快、数值运算器的改进、存储器管理及快速存取技术的发展、多管线处理结构的提出、指令预译码及预执行技术的应用、因应多媒体需求建立出新的指令集、新的芯片制造工艺及包装技术等等。然而,以上各种发展可以归纳于两种关键技术的演进:第一,为着重在半导体技术的发展上,使得芯片可以容纳下更多的晶体管,元件间的距离得以缩小,导致功能增加、使用电压降低、电路反应速度得以加快;第二,则为针对硬件结构设计上的改进,诸如超管线(Super-Pipeline)处理结构、微处理机内部快取结构、超存量(Super-Scaler)处理、推测执行、微码追踪等等技术;其中,管线分工是其它结构技术演进的首要功臣,此项技术如同将原本一个人的工作,同时分给多个人一起做,这正是若微控制器时间脉冲频率无法提升时,指令执行速率仍然还可以提升的重要关键。

针对管线分工的微控制单元系统,以传统式多重微控制系统与超线程(Hyper-Thread)微控制系统两种系统为例,其结构请参考图1a与图1b所示,图1a为传统式多重微控制系统的硬件结构方块示意图,主要包括数个微控制器10、11、12,通过总线(在图中以空心双向箭头表示)与共用的数据存储器13以及共用的外围部件14连接,由于每一个微控制器核心逻辑102、112、122都拥有自己的程序存储器101、111、121,所有的微控制器10、11、12都可以独立运作,而在图1b中,为已知的超线程微控制系统的硬件结构方块示意图,主要的结构特征包括有多个微控制器核心单元15、16,每一微控制器核心单元15、16具有微控制器核心逻辑152、162以及相对应专属的指令缓冲区(Instruction Buffer)151、161,并通过总线(在图中以空心双向箭头表示)与一数据存储器18与一程序存储器17连接,以使得所有的微控制核心单元15、16得以平行执行各自的程序,并且通过利用指令缓冲区151、161,降低微控制器核心单元15、16读取程序存储器17的机率,使得因不同微控制器核心单元读取程序存储器而相互干扰的机率大幅地降低,执行的程序比较能够有效率地运作。

无论是传统式多重微控制系统或是超线程(Hyper-Thread)微控制系统,其面对中断要求(interrupt request)时,响应的程序执行模式均相同。如图2所示,由于各个微控制器均独立运作,故当有中断产生时,该要求中断的任务必须等待,直到其中一个微控制器能够侦测到并响应该中断要求为止。例如,假设某个具有微控制器核心逻辑20的微控制器侦测到该中断要求并打算予以响应。当微控制器核心逻辑20侦测到中断要求时,微控制器核心逻辑20需先将自己的程序计数器24中的内容,先置入堆栈存储器26,再取得中断服务程序(Interrupt ServiceRoutine;ISR)的起始地址后,才得以开始中断后的工作。由此可知在上述已知的两种常见的多重微控制系统结构设计中,微控制单元之间无法直接、有效的相互控制;某个微控制器核心单元(图中未示出)只能「通知」另一个微控制器(例如具有微控制器核心逻辑20的微控制器),利用设立标志(flag)或传送中断要求的方法,来告知其改变执行的程序。之后,发出通知的微控制器,就只能等待接受通知的微控制器,在后者认为恰当的时间下,收到该通知而响应。在上述系统运作模式下,不但各个微控制器之间无法有效地互相控制,对于需要立即执行的任务,也很难精准控制执行时间;此外,也非常可能因为工作不当分配给部份微控制单元,而造成整体多重微控制系统效能无法有效地发挥。因此上述系统运作模式难以满足日渐繁复的电子产品性能要求。

有鉴于此,本发明针对上述的问题,提出一种自我控制的多重微控制系统及方法,利用多重微控制单元间可彼此控制的特性,可将欲插入的程序起始地址直接放入受控的微控制单元中,缩短微控制单元中断时所需的时间,以有效地发挥每一个微控制单元的效能。

发明内容

本发明的主要目的,在于提供一种自我控制的多重微控制系统,利用数个微控制器核心逻辑来平行执行多个程序,使得多个程序可以平行处理,并且更可轻易地通过软件,以精确、有效地控制每一微控制器核心逻辑的作动,以充分发挥多重微控制系统中各个微控制器核心逻辑最大效能。

本发明的另一目的,在于提供一种自我控制的多重微控制系统及方法,可通过软件将欲执行的程序,依照主控微控制器核心逻辑的指示,将欲插入程序的程序起始地址传入受控微控制器核心逻辑内的程序计数器中,使受控微控制器核心逻辑可即时地执行插入的程序,缩减微控制器彼此沟通的处理时间。

为达到上述的目的,本发明首先提出一种自我控制的多重微控制系统,包括一多重微控制单元、一微控制器致能暂存器以及至少一存储器。多重微控制单元包含数个微控制器功能逻辑、及对应数目标程序计数器,后者提供程序地址予对应前述的微控制器功能逻辑。微控制器致能暂存器与多重微控制单元电连接,其用以致能(enable)或关闭(disable)微控制器功能逻辑。存储器亦与多重微控制单元电连接,以供储存多重微控制单元所需要执行的程序。其中,每一微控制器功能逻辑均可改变上述任一个程序计数器的内容。

此外,本发明并提出一种自我控制的多重微控制系统的控制方法,其中该系统具有至少一个主控微控制器功能逻辑、一个受控微控制器功能逻辑、一个与该受控微控制器功能逻辑对应的程序计数器、以及一个存储器,所述控制方法包括以下步骤:关闭受控微控制器功能逻辑;冻结程序计数器;将存储器内的一个内容传入程序计数器中;以及致能该受控微控制器功能逻辑。

另外,本发明尚提出一种自我控制的多重微控制系统的控制方法,其中该系统具有至少一个主控微控制器功能逻辑、一个受控微控制器功能逻辑、一个与该受控微控制器功能逻辑对应的程序计数器、一个程序存储器、一个堆栈存储器、以及一个对应于该堆栈存储器的堆栈指标器,所述控制方法包括以下步骤:关闭受控微控制器功能逻辑;冻结程序计数器;依据堆栈指标器的第一索引,将程序计数器的内容存入至堆栈存储器内的第一位置;依据堆栈指标器的第二索引,将程序存储器的一个地址暂时存入至堆栈存储器内的第二位置;依据堆栈指标器的第二索引,将堆栈存储器内该第二位置的内容,存入程序计数器;致能受控微控制器功能逻辑,使该受控微控制器功能逻辑执行与前述程序存储器地址内的内容相对应的任务;关闭受控微控制器功能逻辑;将堆栈存储器第一位置的内容,重新存入程序计数器中;最后再次致能受控微控制器功能逻辑,使受控微控制器功能逻辑得以接续执行其原本正在执行的程序。

以下通过具体实施例并配合所示附图详加说明,当更容易了解本发明的目的、技术内容、特点及其所达成的功效。

附图说明

图1a为传统式多重微控制系统的硬件结构方块示意图。

图1b为现有技术超线程微控制系统的硬件结构方块示意图。

图2为现有技术微控制系统中断指令运作模式结构方块示意图。

图3为本发明的自我控制的多重微控制系统结构方块示意图。

图4为本发明的第一实施例的控制流程图。

图5为本发明的第二实施例的控制流程图。

图号说明:

10、11、12     微控制器

101、111、121  程序存储器

102、112、122  微控制器核心逻辑

13             数据存储器

14             外围元件

15、16         微控制器核心单元

151、161       指令缓冲区

152、162       微控制器核心逻辑

17             程序存储器

18             数据存储器

20             微控制器核心逻辑

24             程序计数器

26             堆栈存储器

30             第一微控制器核心逻辑

31             第二微控制器核心逻辑

32             第三微控制器核心逻辑

301            第一微控制器功能逻辑

311            第二微控制器功能逻辑

321            第三微控制器功能逻辑

302            第一程序计数器

312            第二程序计数器

322            第三程序计数器

303            第一堆栈指标器

313            第二堆栈指标器

323            第三堆栈指标器

33             程序存储器

330            系统程序区域

331            第一微控制器核心逻辑程序区域

332            第二微控制器核心逻辑程序区域

333            第三微控制器核心逻辑程序区域

334            程序存储器总线

34             堆栈存储器

341            第一微控制器核心逻辑堆栈区域

342            第二微控制器核心逻辑堆栈区域

343            第三微控制器核心逻辑堆栈区域

344            堆栈存储器总线

35             微控制器致能暂存器

具体实施方式

本发明建构在多重微控制系统的结构上,每一个微控制器核心逻辑具有独立处理程序的能力,每一微控制器核心逻辑,更可在处理各自程序状态下,将指派的程序起始地址传入其它微控制器核心逻辑内的程序计数器中,以藉此方式,控制后者微控制器核心逻辑(受控微控制器核心逻辑)的下一个任务,如此,可以缩短受控微控制器核心逻辑变换执行程序的反应时间。

以下就本发明的第一实施例来举例说明,在本发明的自我控制的多重微控制系统中,当其中之一微控制器核心逻辑欲进行控制另一不特定微控制器核心逻辑时,系统如何运作与其方法步骤。请参考图3所示,首先,此自我控制的多重微控制系统中包括三个微控制器核心逻辑30、31、32,一微控制器致能暂存器35,一程序存储器33与一堆栈存储器34。其中,每一个微控制器核心逻辑30、31、32中分别有一微控制器功能逻辑301、311、321;一程序计数器302、312、322;以及一堆栈指标器303、313、323。微控制器核心逻辑30、31、32通过程序存储器总线334而与程序存储器33连接,以撷取或检索储存在程序存储器33中的系统程序区域330、第一微控制器核心逻辑程序区域331、第二微控制器核心逻辑程序区域332以及第三微控制器核心逻辑程序区域333内的所有指令与程序。且微控制器核心逻辑30、31、32也通过堆栈存储器总线344而与堆栈存储器34连接,以在第一、第二与第三微控制器核心逻辑30、31、32执行程序时,分别将各自的第一、第二与第三程序计数器302、312与322的内容存放入至与其相对应的第一微控制器核心逻辑堆栈区域341、第二微控制器核心逻辑堆栈区域342以及第三微控制器核心逻辑堆栈区域343中暂存。

而本发明自我控制的多重微控制系统的控制方法将在以下详细叙述,请同时配合图3与图4,其中,图4为本发明第一实施例的控制方法流程图。最初,在步骤S01中,三个微控制器核心逻辑30、31、32均执行各自的程序;详言之,假设第一微控制器核心逻辑30中的第一微控制器功能逻辑301正执行第一程序计数器302所指程序地址的指令,且此指令于程序存储器33中的程序地址为c101;第二微控制器核心逻辑31中的第二微控制器功能逻辑311正执行第二程序计数器312所指程序地址的指令,且此指令于程序存储器33中的程序地址为c201;第三微控制器核心逻辑32中的第三微控制器功能逻辑321正执行第三程序计数器322所指程序地址的指令,且此指令于程序存储器33中的程序地址为c301。此时,系统产生或接收到一个中断要求(interruptrequest),要求系统执行由程序地址00f0开始的一个程序,此插入程序的程序地址例如已经被储存在系统程序区域330中。并且此中断要求(interrupt request)需要第二微控制器核心逻辑31终止其正在执行的程序(卽位于第二微控制器核心逻辑程序区域332中的程序),改而执行起始地址为00f0的插入程序。假设第二微控制器核心逻辑31的第二微控制器功能逻辑311不需重返至其原本所执行的程序,其原本所执行的程序将被终止在当下的程序地址(例如:c202)中,而第二程序计数器312即会被冻结在所对应的地址c202的状态下。在步骤S02中,第一微控制器核心逻辑30通过微控制器致能暂存器35以传出一关闭第二微控制器核心逻辑31的关闭讯号,同时,第二微控制器核心逻辑31所对应的第二微控制器功能逻辑311亦被关闭,以停止执行其正在执行的程序,并冻结程序计数器312于程序地址c202的状态下。在步骤S03中,此时第一微控制器核心逻辑30中第一堆栈指标器303的索引状态为在堆栈存储器地址i,而受控的第二微控制器核心逻辑31的第二微控制器功能逻辑311所即将执行的插入程序,其程序起始地址为00f0。于是,第一微控制器核心逻辑30的第一微控制器功能逻辑301便将00f0存入堆栈存储器34中的堆栈存储器地址i内。在步骤S04中,第一微控制器核心逻辑30的第一微控制器功能逻辑301,将储存在堆栈存储器34里堆栈存储器地址i中的内容(即00f0)转移到第二微控制器核心逻辑31中的第二程序计数器312内,以做为第二微控制器核心逻辑31被重新致能后,程序执行的地址;至于转移的方式,则例如可利用记起(pop)指令,像是pop PC2来为之。在步骤S05中,第一微控制器核心逻辑30通过微控制器致能暂存器35,输出一致能讯号给第二微控制器核心逻辑31(及其第二微控制器功能逻辑311),以使第二微控制器核心逻辑31可由其第二程序计数器312中所指的程序地址(即00f0)开始,执行插入的程序。在步骤S06中,第二微控制器核心逻辑31中的第二程序计数器312已被改为00f0,因此,三个微控制器核心逻辑30、31、32的状态分别是:第一微控制器核心逻辑30的第一微控制器功能逻辑301仍执行其内的第一程序计数器302中的程序地址,且此程序地址对应于程序存储器33中的第一微控制器核心逻辑程序区域331;第二微控制器核心逻辑31的第二微控制器功能逻辑311则执行其内的第二程序计数器312中的程序地址,而此程序地址对应于程序存储器33中的系统程序区域330;第三微控制器核心逻辑32的第三微控制器功能逻辑321则仍执行其内的第三程序计数器322中的程序地址,且此程序地址对应于程序存储器33中的第三微控制器核心逻辑程序区域333。

上述的第一实施例中已详细说明本发明的多重微控制系统内,主控微控制器核心逻辑(30)与受控微控制器核心逻辑(31)间进行相互控制的方法,但第一实施例中仅说明至受控微控制器核心逻辑完成改变程序执行地址的步骤为止,然而,在此插入程序执行完毕后,受控微控制器核心逻辑可继续执行其它程序,或是可返回被中断的程序而继续执行原本的程序。而本发明的第二实施例,即为第一实施例的延伸,进一步描述当受控微控制器核心逻辑执行完该插入程序后,若需返回被中断的程序而继续执行原程序的动作,该如何进行,以及主控微控制器核心逻辑与受控微控制器核心逻辑间的相互控制方法。

请同时参考图3与图5,其中,图5为本发明第二实施例的控制方法流程图,此自我控制的多重微控制系统的结构已于上段说明中提出,在此将不再赘述,而第二实施例中的自我控制的多重微控制系统的控制方法将在以下详细叙述。首先,在步骤S11中,三个微控制器核心逻辑30、31、32均执行各自的程序,意即,第一微控制器核心逻辑30的第一微控制器功能逻辑301正执行其内的第一程序计数器302所指程序地址的指令,且此指令位于程序存储器33中的第一微控制器核心逻辑程序区域331;第二微控制器核心逻辑31的第二微控制器功能逻辑311正执行其内的第二程序计数器312所指程序地址的指令,且此指令位于程序存储器33中的第二微控制器核心逻辑程序区域332;第三微控制器核心逻辑32的第三微控制器功能逻辑321正执行其内的第三程序计数器322所指程序位指的指令,且此指令位于程序存储器33中的第三微控制器核心逻辑程序区域333。此时,系统产生或接收到一个中断要求(interrupt request),要求系统执行由程序地址00f0开始的一个程序,此插入程序的程序地址现在已经被储存在系统程序区域330中。如此一来,便需要第二微控制器核心逻辑31终止其正在执行的程序(卽位于第二微控制器核心逻辑程序区域332中的程序),改而执行起始地址为00f0的插入程序;不但如此,当插入程序执行完毕后,第二微控制器核心逻辑31还必须恢复执行其原本的程序。在步骤S12中,第一微控制器核心逻辑30通过微控制器致能暂存器35,输出一关闭讯号给第二微控制器核心逻辑31(及其第二微控制器功能逻辑311),以停止其正在执行的程序并冻结第二程序计数器312于其当下的程序地址(例如是c202)。在步骤S13中,此时第一微控制器核心逻辑30中的第一堆栈指标器303状态为在堆栈存储器地址i,第一微控制器核心逻辑30的第一微控制器功能逻辑301乃将第二微控制器核心逻辑31中第二程序计数器312的内容存于堆栈存储器地址i中,至于方法则例如可利用放入(push)指令,如push PC2。在步骤S14中,此时第一微控制器核心逻辑30中的第一堆栈指标器303状态为在堆栈存储器地址i+1,而受控的第二微控制器核心逻辑31所即将执行的插入程序的程序起始地址为00f0,故第一微控制器核心逻辑30的第一微控制器功能逻辑301便将00f0存入堆栈存储器34中的堆栈存储器地址i+1内。在步骤S15中,第一微控制器核心逻辑30的第一微控制器功能逻辑301将储存在堆栈存储器34里堆栈存储器地址i+1中的内容(即00f0)传入第二微控制器核心逻辑31中的第二程序计数器312内,至于传送的方式,则例如可利用记起(pop)指令,像是pop PC2来为之。在步骤S16中,第一微控制器核心逻辑30通过微控制器致能暂存器35,输出一致能的讯号给第二微控制器核心逻辑31(及其第二微控制器功能逻辑311),以使第二微控制器核心逻辑31的第二微控制器功能逻辑311可开始执行第二程序计数器312所指程序起始地址为00f0的系统程序。接续,在步骤S17中,待第二微控制器核心逻辑31完成程序起始地址为00f0的插入系统程序后,即通知第一微控制器核心逻辑30该程序已执行完毕。在步骤S18中,第一微控制器核心逻辑30通过微控制器的致能暂存器35,输出一关闭讯号以将第二微控制器核心逻辑31暂停,以停止其正在执行的程序。在步骤S19中,依据第一微控制器核心逻辑30内第一堆栈指标器303的指示,第一微控制器核心逻辑30的第一微控制器功能逻辑301将储存在堆栈存储器34地址i中的内容(即c202)重新传回(例如使用记起指令pop)到第二微控制器核心逻辑31内的第二程序计数器312中,此一动作表示第二微控制器核心逻辑31中的第二程序计数器312又再次指回程序存储器33中的地址c202。在步骤S20中,第一微控制器核心逻辑30利用微控制器致能暂存器35,输出一致能讯号将第二微控制器核心逻辑31的第二微控制器功能逻辑311致能,使第二微控制器核心逻辑31重新被致能后,可依照第二程序计数器312中的程序地址接续中断前的任务继续执行第二微控制器核心逻辑程序区域332的程序。最终,在步骤S21中,第二微控制器核心逻辑31中的第二程序计数器312已又指向程序存储器地址c202,因此,三个微控制器核心逻辑30、31、32的状态分别是:第一微控制器核心逻辑30的第一微控制器功能逻辑301仍执行其内的第一程序计数器302所指的程序,且此程序地址位于程序存储器33中的第一微控制器核心逻辑程序区域331;第二微控制器核心逻辑31接续执行其内的第二程序计数器312所指的程序,且此程序地址位于程序存储器33中的第二微控制器核心逻辑程序区域332;第三微控制器核心逻辑32仍执行其内的第三程序计数器322所指的程序,且此程序地址位于程序存储器33中的第三微控制器核心逻辑程序区域333。

在上述的实施例中,虽然是以第一微控制器核心逻辑来描述作为一主控微控制器核心逻辑,但当然,任一微控制器核心逻辑皆可作为主控的微控制器核心逻辑,以将一插入程序的起始地址置入受控的微控制器核心逻辑的程序计数器中。

此外,虽然在图3中,以方块绘示出一微控制器核心逻辑由一微控制器功能逻辑、一程序计数器与一堆栈指标器所共同构成,然而,此等结构实为了能使本发明较易于了解而绘制,实际上,每一个微控制器功能逻辑与程序计数器、堆栈指标器之间的运作,可以为一种动态性的对应关系,而非固定的对应关系。

再者,于上述的实施例中,插入程序的程序地址储存在系统程序区域内(即330),然而,对于熟习此项技术领域者皆可容易地推想而得知,此一插入程序的程序地址可储存在任一恰当的位置中,像是可储存在通用暂存器(general register)里;至于实施例中所述的系统程序区域,仅为其中的一种实施形式。

又,在上述的实施例中,程序地址利用堆栈存储器与堆栈指标器(实施例中为主控微控制器核心逻辑30的堆栈指标器),来传送给受控的微控制器核心逻辑(实施例中为31)、或由该处传出;然而,对于熟习此项技术领域者皆可容易地推想而得知,有许多同等的方法皆可达成此目的,例如:程序地址可通过使用通用暂存器、数据存储器或是任意存储器,以于不同的记忆位置之间进行转移;同理,放入指令与记起指令,亦非为唯一可应用的指令,其它常见的指令诸如搬移指令(move)、呼叫指令(call)、返回指令(return),或是通过加载表法(loadtable),或是其它方法皆可应用来达到传送程序地址的目的。

与现有技术相比较可得知,本发明可直接更改受控的微控制器核心逻辑中程序计数器的内容;因此主控的微控制器核心逻辑无须设定标志,亦无须等待受控的微控制器核心逻辑的响应,因此,数个甚至是数十个时序的反应时间均可节省下来,使得本发明所揭示的自我控制的多重微控制系统及其方法具有简单、有效率且反应快速的特性。

以上所述通过实施例说明本发明的特点,其目的在使熟习该技术者能了解本发明的内容并据以实施,而非限定本发明的专利范围,故,凡其它未脱离本发明所揭示的精神所完成的等效修饰或修改,仍应包含在所述的权利要求范围中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号