CN100549942C - 自我控制的多重微控制系统及方法 - Google Patents

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

Info

Publication number
CN100549942C
CN100549942C CNB200610073850XA CN200610073850A CN100549942C CN 100549942 C CN100549942 C CN 100549942C CN B200610073850X A CNB200610073850X A CN B200610073850XA CN 200610073850 A CN200610073850 A CN 200610073850A CN 100549942 C CN100549942 C CN 100549942C
Authority
CN
China
Prior art keywords
control
controller function
micro
function logic
micro controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CNB200610073850XA
Other languages
English (en)
Other versions
CN101046739A (zh
Inventor
张荣麟
凌全伯
林世裕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
YINGGUANG TECHNOLOGY CORP
Original Assignee
YINGGUANG TECHNOLOGY CORP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by YINGGUANG TECHNOLOGY CORP filed Critical YINGGUANG TECHNOLOGY CORP
Priority to CNB200610073850XA priority Critical patent/CN100549942C/zh
Publication of CN101046739A publication Critical patent/CN101046739A/zh
Application granted granted Critical
Publication of CN100549942C publication Critical patent/CN100549942C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

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

Description

自我控制的多重微控制系统及方法
技术领域
本发明涉及一种多重微控制系统及方法,特别是关于一种具有自 我控制能力的多重微控制系统及方法。
背景技术
微控制器(Microcontroller Unit , MCU),或称做微处理器 (Microprocessor Unit, MPU),亦又可称为单芯片微电脑(Single Chip Microcomputer),为一种不需要其它辅助电路而能独立执行运算的装 置,主要是负责系统产品中控制功能的集成电路元件, 一颗微控制器 几乎就是一台微型的计算机,因为它包含了完整计算机所提供的各种 功能。近年来,微控制器的应用已经相当地广泛,包括消费性电子、 工业控制、医疗仪器、车控等等,依据不同的微控制器规格,可应用 在不同的领域,且所控制的外围元件也有所不同。
而在回顾微控制器历史的发展时,发现其发展的主要目标包括有: (l)加速指令处理资料的速度,(2)更小的单位功能芯片尺寸,以及(3)更 少的功率消耗;在这些目的之下衍生出几个重要的发展过程,包括了 处理位数的增加、工作时间脉冲频率的加快、数值运算器的改进、存 储器管理及快速存取技术的发展、多管线处理结构的提出、指令预译 码及预执行技术的应用、因应多媒体需求建立出新的指令集、新的芯 片制造工艺及包装技术等等。然而,以上各种发展可以归纳于两种关 键技术的演进:第一,为着重在半导体技术的发展上,使得芯片可以
容纳下更多的晶体管,元件间的距离得以縮小,导致功能增加、使用
电压降低、电路反应速度得以加快;第二,则为针对硬件结构设计上 的改进,诸如超管线(Super-Pipeline)处理结构、微处理机内部快取结构、 超存量(Super-Scaler)处理、推测执行、微码追踪等等技术;其中,管线分工是其它结构技术演进的首要功臣,此项技术如同将原本一个人的 工作,同时分给多个人一起做,这正是若微控制器时间脉冲频率无法 提升时,指令执行速率仍然还可以提升的重要关键。
针对管线分工的微控制单元系统,以传统式多重微控制系统与超
线程(Hyper-Thread)微控制系统两种系统为例,其结构请参考图la与图 lb所示,图la为传统式多重微控制系统的硬件结构方块示意图,主要 包括数个微控制器IO、 11、 12,通过总线(在图中以空心双向箭头表示) 与共用的数据存储器13以及共用的外围部件14连接,由于每一个微 控制器核心逻辑102、 112、 122都拥有自己的程序存储器101、 111、 121,所有的微控制器IO、 11、 12都可以独立运作,而在图lb中,为 已知的超线程微控制系统的硬件结构方块示意图,主要的结构特征包 括有多个微控制器核心单元15、 16,每一微控制器核心单元15、 16具 有微控制器核心逻辑152、 162以及相对应专属的指令缓冲区 (Instruction Buffer)l51、 161,并通过总线(在图中以空心双向箭头表示) 与一数据存储器18与一程序存储器17连接,以使得所有的微控制核 心单元15、16得以平行执行各自的程序,并且通过利用指令缓冲区151、 161,降低微控制器核心单元15、 16读取程序存储器17的机率,使得 因不同微控制器核心单元读取程序存储器而相互干扰的机率大幅地降 低,执行的程序比较能够有效率地运作。
无论是传统式多重微控制系统或是超线程(Hyper-Thread)微控制 系统,其面对中断要求(interruptrequest)时,响应的程序执行模式均 相同。如图2所示,由于各个微控制器均独立运作,故当有中断产生 时,该要求中断的任务必须等待,直到其中一个微控制器能够侦测到 并响应该中断要求为止。例如,假设某个具有微控制器核心逻辑20的 微控制器侦测到该中断要求并打算予以响应。当微控制器核心逻辑20 侦测到中断要求时,微控制器核心逻辑20需先将自己的程序计数器24 中的内容,先置入堆栈存储器26,再取得中断服务程序(Interrupt Service Routine; ISR)的起始地址后,才得以开始中断后的工作。由此可知在上述已知的两种常见的多重微控制系统结构设计中,微控制单元之间无 法直接、有效的相互控制;某个微控制器核心单元(图中未示出)只 能「通知」另一个微控制器(例如具有微控制器核心逻辑20的微控制 器),利用设立标志(flag)或传送中断要求的方法,来告知其改变执 行的程序。之后,发出通知的微控制器,就只能等待接受通知的微控 制器,在后者认为恰当的时间下,收到该通知而响应。在上述系统运 作模式下,不但各个微控制器之间无法有效地互相控制,对于需要立
即执行的任务,也很难精准控制执行时间;此外,也非常可能因为工 作不当分配给部份微控制单元,而造成整体多重微控制系统效能无法 有效地发挥。因此上述系统运作模式难以满足日渐繁复的电子产品性 能要求。
有鉴于此,本发明针对上述的问题,提出一种自我控制的多重微 控制系统及方法,利用多重微控制单元间可彼此控制的特性,可将欲 插入的程序起始地址直接放入受控的微控制单元中,縮短微控制单元 中断时所需的时间,以有效地发挥每一个微控制单元的效能。
发明内容
本发明的主要目的,在于提供一种自我控制的多重微控制系统, 利用数个微控制器核心逻辑来平行执行多个程序,使得多个程序可以 平行处理,并且更可轻易地通过软件,以精确、有效地控制每一微控 制器核心逻辑的作动,以充分发挥多重微控制系统中各个微控制器核 心逻辑最大效能。
本发明的另一目的,在于提供一种自我控制的多重微控制系统及 方法,可通过软件将欲执行的程序,依照主控微控制器核心逻辑的指 示,将欲插入程序的程序起始地址传入受控微控制器核心逻辑内的程 序计数器中,使受控微控制器核心逻辑可即时地执行插入的程序,縮 减微控制器彼此沟通的处理时间。为达到上述的目的,本发明首先提出一种自我控制的多重微控制 系统,包括一多重微控制单元、 一微控制器致能暂存器以及至少一存 储器。多重微控制单元包含数个微控制器功能逻辑、及对应数目标程 序计数器,后者提供程序地址予对应前述的微控制器功能逻辑。微控
制器致能暂存器与多重微控制单元电连接,其用以致能(enable)或关闭 (disable)微控制器功能逻辑。存储器亦与多重微控制单元电连接,以供 储存多重微控制单元所需要执行的程序。其中,每一微控制器功能逻 辑均可改变上述任一个程序计数器的内容。
此外,本发明并提出一种自我控制的多重微控制系统的控制方法, 其中该系统具有至少一个主控微控制器功能逻辑、 一个受控微控制器 功能逻辑、 一个与该受控微控制器功能逻辑对应的程序计数器、以及 一个存储器,所述控制方法包括以下步骤:关闭受控微控制器功能逻 辑;冻结程序计数器;将存储器内的一个内容传入程序计数器中;以 及致能该受控微控制器功能逻辑。
另外,本发明尚提出一种自我控制的多重微控制系统的控制方法, 其中该系统具有至少一个主控微控制器功能逻辑、 一个受控微控制器
功能逻辑、 一个与该受控微控制器功能逻辑对应的程序计数器、 一个 程序存储器、 一个堆栈存储器、以及一个对应于该堆栈存储器的堆栈 指标器,所述控制方法包括以下步骤:关闭受控微控制器功能逻辑; 冻结程序计数器;依据堆栈指标器的第一索引,将程序计数器的内容 存入至堆栈存储器内的第一位置;依据堆栈指标器的第二索引,将程 序存储器的一个地址暂时存入至堆栈存储器内的第二位置;依据堆栈 指标器的第二索引,将堆栈存储器内该第二位置的内容,存入程序计 数器;致能受控微控制器功能逻辑,使该受控微控制器功能逻辑执行 与前述程序存储器地址内的内容相对应的任务;关闭受控微控制器功 能逻辑;将堆栈存储器第一位置的内容,重新存入程序计数器中;最
后再次致能受控微控制器功能逻辑,使受控微控制器功能逻辑得以接 续执行其原本正在执行的程序。以下通过具体实施例并配合所示附图详加说明,当更容易了解本 发明的目的、技术内容、特点及其所达成的功效。
附图说明
图la为传统式多重微控制系统的硬件结构方块示意图。
图lb为现有技术超线程微控制系统的硬件结构方块示意图。
图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中的程序地址为cl01;第二微控制器核 心逻辑31中的第二微控制器功能逻辑311正执行第二程序计数器312 所指程序地址的指令,且此指令于程序存储器33中的程序地址为c201; 第三微控制器核心逻辑32中的第三微控制器功能逻辑321正执行第三 程序计数器322所指程序地址的指令,且此指令于程序存储器33中的 程序地址为c301。此时,系统产生或接收到一个中断要求(intermpt request),要求系统执行由程序地址OOfO开始的一个程序,此插入程序 的程序地址例如已经被储存在系统程序区域330中。并且此中断要求(interrupt request)需要第二微控制器核心逻辑31终止其正在执行的程 序(卽位于第二微控制器核心逻辑程序区域332中的程序),改而执 行起始地址为OOfO的插入程序。假设第二微控制器核心逻辑31的第二 微控制器功能逻辑311不需重返至其原本所执行的程序,其原本所执 行的程序将被终止在当下的程序地址(例如:c202)中,而第二程序计数 器312即会被冻结在所对应的地址c202的状态下。在步骤S02中,第 一微控制器核心逻辑30通过微控制器致能暂存器35以传出一关闭第 二微控制器核心逻辑31的关闭讯号,同时,第二微控制器核心逻辑31 所对应的第二微控制器功能逻辑311亦被关闭,以停止执行其正在执 行的程序,并冻结程序计数器312于程序地址c202的状态下。在步骤 S03中,此时第一微控制器核心逻辑30中第一堆栈指标器303的索引 状态为在堆栈存储器地址i,而受控的第二微控制器核心逻辑31的第 二微控制器功能逻辑311所即将执行的插入程序,其程序起始地址为 OOfO。于是,第一微控制器核心逻辑30的第一微控制器功能逻辑301 便将OOfO存入堆栈存储器34中的堆栈存储器地址i内。在步骤S04中, 第一微控制器核心逻辑30的第一微控制器功能逻辑301,将储存在堆 栈存储器34里堆栈存储器地址i中的内容(即OOfO)转移到第二微控 制器核心逻辑31中的第二程序计数器312内,以做为第二微控制器核 心逻辑31被重新致能后,程序执行的地址;至于转移的方式,则例如 可利用记起(pop)指令,像是pop PC^来为之。在步骤S05中,第一微 控制器核心逻辑30通过微控制器致能暂存器35,输出一致能讯号给第 二微控制器核心逻辑31 (及其第二微控制器功能逻辑311),以使第 二微控制器核心逻辑31可由其第二程序计数器312中所指的程序地址 (即OOfO)开始,执行插入的程序。在步骤S06中,第二微控制器核 心逻辑31中的第二程序计数器312已被改为OOfO,因此,三个微控制 器核心逻辑30、 31、 32的状态分别是:第一微控制器核心逻辑30的 第一微控制器功能逻辑301仍执行其内的第一程序计数器302中的程 序地址,且此程序地址对应于程序存储器33中的第一微控制器核心逻 辑程序区域331;第二微控制器核心逻辑31的第二微控制器功能逻辑 311则执行其内的第二程序计数器312中的程序地址,而此程序地址对应于程序存储器33中的系统程序区域330;第三微控制器核心逻辑32 的第三微控制器功能逻辑321则仍执行其内的第三程序计数器322中 的程序地址,且此程序地址对应于程序存储器33中的第三微控制器核 心逻辑程序区域333。 ,
上述的第一实施例中已详细说明本发明的多重微控制系统内,主 控微控制器核心逻辑(30)与受控微控制器核心逻辑(31)间进行相互控制 的方法,但第一实施例中仅说明至受控微控制器核心逻辑完成改变程 序执行地址的步骤为止,然而,在此插入程序执行完毕后,受控微控 制器核心逻辑可继续执行其它程序,或是可返回被中断的程序而继续 执行原本的程序。而本发明的第二实施例,即为第一实施例的延伸, 进一步描述当受控微控制器核心逻辑执行完该插入程序后,若需返回 被中断的程序而继续执行原程序的动作,该如何进行,以及主控微控 制器核心逻辑与受控微控制器核心逻辑间的相互控制方法。
请同时参考图3与图5,其中,图5为本发明第二实施例的控制 方法流程图,此自我控制的多重微控制系统的结构已于上段说明中提 出,在此将不再赘述,而第二实施例中的自我控制的多重微控制系统 的控制方法将在以下详细叙述。首先,在步骤Sll中,三个微控制器 核心逻辑30、 31、 32均执行各自的程序,意即,第一微控制器核心逻 辑30的第一微控制器功能逻辑301正执行其内的第一程序计数器302 所指程序地址的指令,且此指令位于程序存储器33中的第一微控制器 核心逻辑程序区域331;第二微控制器核心逻辑31的第二微控制器功 能逻辑311正执行其内的第二程序计数器312所指程序地址的指令, 且此指令位于程序存储器33中的第二微控制器核心逻辑程序区域332; 第三微控制器核心逻辑32的第三微控制器功能逻辑321正执行其内的 第三程序计数器322所指程序位指的指令,且此指令位于程序存储器 33中的第三微控制器核心逻辑程序区域333。此时,系统产生或接收 到一个中断要求(intermpt request),要求系统执行由程序地址OOfO开始 的一个程序,此插入程序的程序地址现在已经被储存在系统程序区域330中。如此一来,便需要第二微控制器核心逻辑31终止其正在执行 的程序(卽位于第二微控制器核心逻辑程序区域332中的程序),改
而执行起始地址为OOfO的插入程序;不但如此,当插入程序执行完毕
后,第二微控制器核心逻辑31还必须恢复执行其原本的程序。在步骤 S12中,第一微控制器核心逻辑30通过微控制器致能暂存器35,输出 一关闭讯号给第二微控制器核心逻辑31 (及其第二微控制器功能逻辑 311),以停止其正在执行的程序并冻结第二程序计数器312于其当下 的程序地址(例如是c202)。在步骤S13中,此时第一微控制器核心 逻辑30中的第一堆栈指标器303状态为在堆栈存储器地址i,第一微 控制器核心逻辑30的第一微控制器功能逻辑301乃将第二微控制器核 心逻辑31中第二程序计数器312的内容存于堆栈存储器地址i中,至 于方法则例如可利用放入(push)指令,如pushPC2。在步骤S14中,此 时第一微控制器核心逻辑30中的第一堆栈指标器303状态为在堆栈存 储器地址i+l,而受控的第二微控制器核心逻辑31所即将执行的插入 程序的程序起始地址为OOfO,故第一微控制器核心逻辑30的第一微控 制器功能逻辑301便将OOfO存入堆栈存储器34中的堆栈存储器地址 i+l内。在步骤S15中,第一微控制器核心逻辑30的第一微控制器功 能逻辑301将储存在堆栈存储器34里堆栈存储器地址i+l中的内容(即 OOfO)传入第二微控制器核心逻辑31中的第二程序计数器312内,至 于传送的方式,则例如可利用记起(pop)指令,像是pop PC2来为之。 在步骤S16中,第一微控制器核心逻辑30通过微控制器致能暂存器35, 输出一致能的讯号给第二微控制器核心逻辑31 (及其第二微控制器功 能逻辑311),以使第二微控制器核心逻辑31的第二微控制器功能逻 辑311可开始执行第二程序计数器312所指程序起始地址为OOfO的系 统程序。接续,在步骤S17中,待第二微控制器核心逻辑31完成程序 起始地址为OOfO的插入系统程序后,即通知第一微控制器核心逻辑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中 的第一微控制器核心逻辑程序区域3M;第二微控制器核心逻辑31接 续执行其内的第二程序计数器312所指的程序,且此程序地址位于程 序存储器33中的第二微控制器核心逻辑程序区域332;第三微控制器 核心逻辑32仍执行其内的第三程序计数器322所指的程序,且此程序 地址位于程序存储器33中的第三微控制器核心逻辑程序区域333。
在上述的实施例中,虽然是以第一微控制器核心逻辑来描述作为 一主控微控制器核心逻辑,但当然,任一微控制器核心逻辑皆可作为 主控的微控制器核心逻辑,以将一插入程序的起始地址置入受控的微 控制器核心逻辑的程序计数器中。
此外,虽然在图3中,以方块绘示出一微控制器核心逻辑由一微
控制器功能逻辑、 一程序计数器与一堆栈指标器所共同构成,然而, 此等结构实为了能使本发明较易于了解而绘制,实际上,每一个微控
制器功能逻辑与程序计数器、堆栈指标器之间的运作,可以为一种动 态性的对应关系,而非固定的对应关系。再者,于上述的实施例中,插入程序的程序地址储存在系统程序 区域内(即330),然而,对于熟习此项技术领域者皆可容易地推想而得 知,此一插入程序的程序地址可储存在任一恰当的位置中,像是可储
存在通用暂存器(general register)里;至于实施例中所述的系统程序区 域,仅为其中的一种实施形式。
又,在上述的实施例中,程序地址利用堆栈存储器与堆栈指标器 (实施例中为主控微控制器核心逻辑30的堆栈指标器),来传送给受 控的微控制器核心逻辑(实施例中为31)、或由该处传出;然而,对于熟 习此项技术领域者皆可容易地推想而得知,有许多同等的方法皆可达 成此目的,例如:程序地址可通过使用通用暂存器、数据存储器或是 任意存储器,以于不同的记忆体之间迸行转移;同理,放入指令与记 起指令,亦非为唯一可应用的指令,其它常见的指令诸如搬移指令 (move)、呼叫指令(call)、返回指令(return),或是通过加载表法(load table),或是其它方法皆可应用来达到传送程序地址的目的。
与现有技术相比较可得知,本发明可直接更改受控的微控制器核 心逻辑中程序计数器的内容;因此主控的微控制器核心逻辑无须设定 标志,亦无须等待受控的微控制器核心逻辑的响应,因此,数个甚至 是数十个时序的反应时间均可节省下来,使得本发明所揭示的自我控 制的多重微控制系统及其方法具有简单、有效率且反应快速的特性。
以上所述通过实施例说明本发明的特点,其目的在使熟习该技术 者能了解本发明的内容并据以实施,而非限定本发明的专利范围,故, 凡其它未脱离本发明所揭示的精神所完成的等效修饰或修改,仍应包 含在所述的权利要求范围中。

Claims (20)

1.一种自我控制的多重微控制系统,包含: 一多重微控制器单元,其包括数个微控制器功能逻辑与数个程序计数器,每一该程序计数器分别与一个微控制器功能逻辑耦合连接,以提供一程序地址予该微控制器功能逻辑; 一微控制器致能暂存器,与该多重微控制器单元连接,该微控制器致能暂存器可致能与关闭上述微控制器功能逻辑;以及 至少一存储器,与该多重微控制器单元连接,该存储器用以储存该多重微控制器单元所需之一程序; 其中,每一上述微控制器功能逻辑能够更改任一上述程序计数器中的内容。
2. 如权利要求l所述的自我控制的多重微控制系统,其中,每一 上述微控制器功能逻辑可独立执行至少一程序,且同时执行一指令以 控制另一微控制器功能逻辑。
3. 如权利要求2所述的自我控制的多重微控制系统,其中,该指 令为以下数种指令之一:致能该另一微控制器功能逻辑; 关闭该另一微控制器功能逻辑;转移一程序地址至与该另一微控制器功能逻辑对应的程序计数器 中;或转移与该另一微控制器功能逻辑对应的程序计数器的内容到所述 至少一存储器中。
4. 如权利要求l所述的自我控制的多重微控制系统,其中,该至少一存储器包含:至少一程序存储器,通过一程序存储器总线与该多重微控制器单 元连接,该程序存储器具有数个程序存储器地址,以供储存至少一程序;以及至少一堆栈存储器,通过一堆栈存储器总线与该多重微控制器单 元连接,该堆栈存储器具有数个堆栈存储器地址,以至少供储存该多重微控制器单元所执行的程序的一程序地址;且 其中,该多重微控制器单元更包括:数个堆栈指标器,其分别与该微控制器功能逻辑连接,以提 供一堆栈存储器地址。
5. 如权利要求3所述的自我控制的多重微控制系统,其中,转移 与该另一微控制器功能逻辑对应的程序计数器的内容到所述至少一存 储器中的该指令,可为以下指令之一:放入指令或搬移指令。
6. 如权利要求3所述的自我控制的多重微控制系统,转移一程序地址至与该另一微控制器功能逻辑对应的程序计数器中的该指令,其可为以下指令之一:记起指令、搬移指令、呼叫指令、返回指令、或执行加载表法的指令。
7. —种应用在一多重微控制系统中的放入控制方法,该多重微控制系统具有至少一主控微控制器功能逻辑、 一受控微控制器功能逻辑、 对应于该受控微控制器功能逻辑的一程序计数器、与一记忆体,该放入控制方法包括下列步骤:该主控微控制器功能逻辑发出一放入指令;以及该系统将与该受控微控制器功能逻辑对应的程序计数器的内容, 储存至该记忆体中。
8. —种应用在一多重微控制系统中的记起控制方法,其中,该多 重微控制系统具有至少一主控微控制器功能逻辑、 一受控微控制器功 能逻辑、对应于该受控微控制器功能逻辑的一程序计数器、与一记忆 体,该记起控制方法包括下列步骤:该主控微控制器核心逻辑发出一记起指令;以及该系统插入一程序地址至该受控微控制器功能逻辑的该程序计数 器中。
9. 一种应用在一多重微控制系统中的控制方法,该多重微控制系 统具有至少一主控微控制器功能逻辑、 一受控微控制器功能逻辑、对 应于该受控微控制器功能逻辑之一程序计数器、与一存储器,该控制 方法包括下列步骤:关闭该受控微控制器功能逻辑; 冻结该程序计数器;转移该存储器内第一位置中的内容至该程序计数器中;以及 致能该受控微控制器功能逻辑。
10. 如权利要求9所述的控制方法,其中,该关闭步骤与该致能 步骤通过一微控制器致能暂存器以达成。
11. 如权利要求9所述的控制方法,包含下列步骤: 于转移步骤之前更可先储存该程序计数器的内容至该存储器中的第二位置。
12. 如权利要求ll所述的控制方法,还包含下列步骤:在致能该受控微控制器功能逻辑后,待该受控微控制器功能逻辑 完成与该存储器中第一位置的内容相对应的任务后,即可将该存储器中第二位置的内容重新存至所述程序计数器中。
13. 如权利要求9所述的控制方法,其中,转移该存储器内第一 位置中的内容至该程序计数器中的步骤,通过以下指令达成:记起指 令、搬移指令、呼叫指令、或执行加载表法的指令。
14. 如权利要求ll所述的控制方法,其中,储存该程序计数器的 内容至该存储器中的第二位置的步骤,通过以下指令达成:放入指令、或搬移指令。
15. 如权利要求12所述的控制方法,其中,将该存储器中第二位置的内容重新存至所述程序计数器中的步骤,通过以下指令达成:记 起指令、搬移指令、呼叫指令、或执行加载表法的指令。
16. 如权利要求9所述的控制方法,其中,该存储器的第一位置为一程序存储器中的位置。
17. 如权利要求ll所述的控制方法,其中,该存储器中的第二位 置为一堆栈存储器中的位置。
18. 如权利要求17所述的控制方法,其中,该系统更包含一堆栈 指标器,其与该堆栈存储器相对应,且储存该程序计数器的内容至该堆栈存储器中的第二位置的步骤包含:依据该堆栈指标器的索引,而将该程序计数器的内容储存至该堆 栈存储器的一位置中。
19. 如权利要求16所述的控制方法,其中,该系统更包含一堆栈 指标器,其与该堆栈存储器相对应,且转移该存储器内第一位置中的 内容至该程序计数器中的步骤包含-依据该堆栈指标器的一第一索引,将该存储器第一位置的内容暂 存至该堆栈存储器中;以及依据该堆栈指标器的一第二索引,将该堆栈存储器的上述位置的 内容储存至该程序计数器中。
20. —种应用在一多重微控制系统中的控制方法,该多重微控制 系统具有至少一主控微控制器功能逻辑、 一受控微控制器功能逻辑、 对应于该受控微控制器功能逻辑之一程序计数器、 一程序存储器、一 堆栈存储器、与对应于该堆栈存储器之一堆栈指标器,该控制方法包括下列步骤-关闭该受控微控制器功能逻辑; 冻结该程序计数器;依据该堆栈指标器的第一索引,将该程序计数器的内容储存至该 堆栈存储器中的第一位置;依据该堆栈指标器的第二索引,将该程序存储器中之一地址暂存 于该堆栈存储器中的第二位置;依据该堆栈指标器的该第二索引,将该堆栈存储器中的该第二位 置的内容储存至该程序计数器中;致能该受控微控制器功能逻辑,使该受控微控制器功能逻辑可进 行对应于该程序存储器该地址内容的任务;关闭该受控微控制器功能逻辑;恢复该堆栈存储器中第一位置的内容至该程序计数器中;以及 致能该受控微控制器功能逻辑,以使该受控微控制器功能逻辑得 以重新返回其原始的任务。
CNB200610073850XA 2006-03-31 2006-03-31 自我控制的多重微控制系统及方法 Active CN100549942C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB200610073850XA CN100549942C (zh) 2006-03-31 2006-03-31 自我控制的多重微控制系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB200610073850XA CN100549942C (zh) 2006-03-31 2006-03-31 自我控制的多重微控制系统及方法

Publications (2)

Publication Number Publication Date
CN101046739A CN101046739A (zh) 2007-10-03
CN100549942C true CN100549942C (zh) 2009-10-14

Family

ID=38771380

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200610073850XA Active CN100549942C (zh) 2006-03-31 2006-03-31 自我控制的多重微控制系统及方法

Country Status (1)

Country Link
CN (1) CN100549942C (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103226499B (zh) * 2013-04-22 2016-02-24 华为技术有限公司 一种恢复内部存储器中的异常数据的方法及装置
US9342384B1 (en) 2014-12-18 2016-05-17 Intel Corporation Function callback mechanism between a central processing unit (CPU) and an auxiliary processor
CN107589909B (zh) * 2017-08-24 2020-04-28 阿里巴巴集团控股有限公司 数据处理方法和装置、电子设备

Also Published As

Publication number Publication date
CN101046739A (zh) 2007-10-03

Similar Documents

Publication Publication Date Title
CN101504618B (zh) 面向多核处理器的实时线程迁移方法
TW448366B (en) Zero overhead computer interrupts with task switching
TW200719275A (en) Method for an interruptible graphics processing unit to process multi-programs and graphics processing unit
CN101266553A (zh) 基于嵌入式系统的多任务管理方法
JP2004030222A5 (zh)
CN100549942C (zh) 自我控制的多重微控制系统及方法
TWI515653B (zh) 指令順序執行之指令對、處理器、方法及系統
US9665466B2 (en) Debug architecture for multithreaded processors
US8732142B2 (en) Generation of suggestions to correct data race errors
CN101027642A (zh) 处理器
US20130339681A1 (en) Temporal Multithreading
CN102436393A (zh) 任务处理装置
CN107924310A (zh) 使用避免转出表(pat)预测计算机处理器中的存储器指令转出
CN103020535A (zh) 一种带比较功能的数据加解密系统
JP2006515446A (ja) 関連アプリケーションを相互参照するカルテシアンコントローラを有するデータ処理システム
US7124288B2 (en) Programmable unit with a stack buffer storage device configurable into discrete shadow storage elements accessible by a plurality of command execution units
US20130246670A1 (en) Information processing system
TWI312941B (zh)
US9804985B2 (en) Hardware abstract data structure, data processing method and system
CN104077156B (zh) 可程序化中央处理单元的重新启动系统及其方法
Chen et al. Approach to External Events of Real-Time Operating System Based on Polling
US20070220234A1 (en) Autonomous multi-microcontroller system and the control method thereof
US9785538B2 (en) Arbitrary instruction execution from context memory
CN104199685A (zh) 一种i/o设备及具有该i/o设备的计算机系统
CN100409221C (zh) 具有笛卡尔控制器的数据处理系统以及处理数据的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant