具有不向cpu传递控制权的跳越处理部分的可编程控制器的制作方法

文档序号:6413840阅读:176来源:国知局
专利名称:具有不向cpu传递控制权的跳越处理部分的可编程控制器的制作方法
技术领域
本发明关于可编程控制器,尤其论及用多处理器技术加速可编程控制器。
迄今为止,关于使用多处理器技术的可编程控制器,已存在

图10所示的情况。参照图10,在可编程控制器,位处理器(以下缩写为BPU)B和中央处理器(缩写为CPU)C共享存储器M、地址总线和数据总线。存储在存储器M中程序由BPU B执行的第一类指令和CPU C执行的第二类指令的组合构成。BPU B原本具有执行程序中的控制权,而当要执行一个第二类指令时它将控制权传递给CPU。然后,CPU C执行该第二类指令。第二类指令包括可跳越指令,如果先前指令是一个第一类指令,并且该先前第一类指令的操作结果满足某一跳越条件,那么可以跳过所述可跳越指令。当CPU C一起接收到控制权和第二类指令,并且该指令是可跳越指令时,CPU根据先前指令的操作结果,判断该操作结果是否满足跳越条件。如果CPU C判定操作结果满足跳越条件,并且如果下一个指令属于第一类,那么CPU C将控制权返回给BPU B。
如上所述,在这种现有技术的可编程控制器中,如果当前指令属于第二类,那么CPU C总是无条件地继承控制权。程序由各种第一类和第二类的指令组成,并且一般包括许多可跳越指令。因此,多次传递控制权会有碍于加速程序的执行。
因此,本发明的基本目的是提供一种允许快速工作的可编程控制器。更具体的目的是提供一种允许加速处理可跳越指令的可编程控制器。
为了实现上述目的,根据本发明的一个方面,提供了一种可编程控制器,它具有一BPU,用于执行第一类指令;一CPU,用于执行第二类指令;和一存储器,它被BPU和CPU共享,并且存储一程序,所述程序由第一类指令和第二类指令的组合构成。第二类指令包括可跳越指令,如果前一个第一类指令的操作结果满足一预定的跳越条件,那么可以跳过可跳越指令。第一类指令主要命令进行位方式操作,而第二类指令主要命令进行字节方式操作。但是,字节方式操作可以用以具有一预定长度的单位(例如,字、双字等)执行的操作来代替。可编程控制器还包括一判断数据存储部分,它存储用于判断当前第二类指令是否为可跳越指令的判断数据;和一跳越处理部分,它判断前一第一类指令的操作结果是否满足跳越条件。如果判定操作结果满足跳越条件,那么跳越处理部分根据上述判断数据,判断当前的第二类指令是否为可跳越指令。如果判定操作结果满足跳越条件,并且当前指令是可跳越指令,那么跳越处理部分跳过当前指令,不将控制权传递给CPU。
判断数据存储部分存储判断数据,跳越处理部分根据存储第二类指令的地址,用所述判断数据判断该指令是否为可跳越指令。判断数据存储部分可以安装在BPU中。另一种方法是,增加一个与BPU分开但BPU可以对其访问的第二存储器,判断数据存储部分安装在第二存储器中。在另一种变化中,可以使用存储器中的一个自由存储区用以存储程序。
判断数据可以具有与第二类指令的地址一一对应的地址,但一一对应关系并不总是必要的。只要判断数据具有一个允许跳越处理部分根据某一指令的地址判断该指令是否为可跳越指令的数据结构就可以了。
跳越处理部分根据判断数据和操作结果,判断某一指令是否为可跳越指令和实际是否跳过该指令。如果跳越处理部分判定可以实际跳过一指令,那么跳越处理部分跳过该指令,但不将控制权传递给CPU,然后执行下一指令。跳越处理部分由一个建立在BPU内的程序构成,但也可以作为硬件装在BPU内。
依照本发明,如果可以实际跳过一可跳越指令,那么跳过该指令,不将控制权传递给CPU。因此,加快了跳越处理,并且显然缩短了执行程序的时间。
阅读以下结合较佳实施例和附图的描述,将清楚本发明的这些和其它目的和特点,其中在整个附图中,相同的部分用相同的标号表示,图1是依照本发明第一实施例的方框图;图2是一流程图,示出了第一实施例中BPU执行的工作过程;图3示出了第一实施例中指令的跳越;图4是依照本发明第二实施例的方框图;图5是一流程图,示出了第二实施例中BPU执行的工作过程;图6示出了第二实施例第二存储器中判断数据的存储状态;图7是一流程图,示出了第三实施例中BPU执行的工作过程;图8示出了第二实施例存储器中判断数据存储部分;
图9a是当抽取每个指令的判断数据时,用十六进制记数法表示的地址和用二进制记数法表示的地址;图9b是当抽取每个指令的判断数据时,用十六进制记数法表示的偏址值和用二进制记数法表示的偏址值;图9c是与图9a对应的另一个地址;图9d是图9c地址上的内容;图10是现有技术可编程控制器的方框图。
本申请基于日本专利申请平9-41909,该专利申请的内容通过引用包括在此。
以下结合图1、2和3描述本发明的第一实施例。参照图1,可编程控制具有存储器1、位处理器(BPU)2和中央处理器(CPU)3。
存储器1存储一程序,该程序由以任何方式排列的第一类指令和第二类指令的组合组成。第一类指令由BPU 2处理,并命令BPU 2进行相对简单的基本操作,主要是位方式操作。第二类指令由CPU 3处理,并命令CPU 3进行相对复杂情况的处理,诸如字节方式处理、数据转换和数据传递等。另外,第二类指令包括可跳越指令,如果先导的第一类指令满足预定的跳越条件,可跳过可跳越指令的操作。
BPU 2是执行位方式操作的处理器,并且通过数据总线4和地址总线5与存储器1相连。当获得在BPU 2和CPU 3之间传递的控制权时,BPU 2执行存储在存储器1中的第一类指令的操作。BPU 2具有判断数据存储部分2a、位累加器(BACC)2b和跳越处理部分2c。判断数据存储部分2a是一张存储判断数据的表,其中所述判断数据用于通过参照存储第二类指令的地址,判断执行第一类指令之后的第二类是否为可跳越指令。BACC 2b存储由BPU 2执行指令而获得的第一类指令的操作结果R。跳越处理部分2c判断第一类指令的操作结果R是否满足预定的跳越条件。如果判定操作结果R满足跳越条件,那么跳越处理部分2c根据判断数据,进一步判断第二类指令是否为可跳越指令。如果第二类指令是可跳越指令,那么跳越处理部分2c进行跳越第二类指令的处理,不将控制权传递给CPU 3。
CPU 3通过数据总线4和地址总线5与存储器1相连。当获得控制权时,CPU执行存储在存储器1中的第二类指令。
接下来将参照图2描述BPU 2本身的工作过程以及安装在其中的跳越处理部分2c。BPU 2读取存储在存储器1中的一条指令以及存储该指令的地址(步骤S101)。然后,BPU 2判断该指令是第一类基本指令还是第二类应用指令(步骤S102)。如果该指令是基本指令,那么BPU 2执行该指令(步骤S103)。如果该指令是应用指令,那么跳越处理部分2c判断是否应该执行该指令,即根据保存在BACC 2b中的操作结果R的二进制数值,判断它是否满足跳越条件(步骤S104)。操作结果R的值为0表示如果它是可跳越指令,那么跳过第二类指令,即表示满足跳越条件。操作结果R的值为1表示即使它是可跳越指令也不能跳过第二类指令。因此,如果保存在BACC 2b中的操作结果R为1,那么跳越处理部分2c判断是否应该执行应用指令,并且BPU 2将控制权传递给CPU 3(步骤S105)。然后,CPU 3执行该应用指令(步骤S106),并将控制权传回BPU 2(步骤S107)。
另一方面,如果保存在BACC 2b中的操作结果R为0,那么跳越处理部分2c决定可以跳过不执行该应用指令,即满足跳越条件,并且根据存储在判断数据存储部分2a中的判断数据,判断该应用指令是否为右跳越指令(步骤S108)。这里,存储器1中存储该指令的地址与判断数据存储部分2a中存储指令判断数据的地址相同,因此跳越处理部分2c只需要参照存储在该地址中的判断数据。
如果跳越处理部分2c在步骤S108判定应用指令不是可跳越指令,那么BPU2将控制权传递给CPU 3(步骤S105)。在这种情况下,CPU3然后执行该应用指令(步骤S106)并将控制权传回BPU 2(S107)。如果跳越处理部分2c在步骤S108判定应用指令是可跳越指令,那么跳过该指令(步骤S109)。
图3例示了如何从地址100开始存储指令。参照图3,BPU 2在执行了存储在地址104中的基本指令之后,跳过存储在地址105的应用指令。
在上述这种可编程的控制器中,由BPU 2根据存储在判断数据存储部分2a中的判断数据,判断跟在第一类指令之后的第二类指令是否为可跳越指令。此外,如果判定该第二类指令是可跳越指令,那么既不从BPU 2向CPU 3传递控制权,也不从CPU 3向BPU 2回传控制权。因此,节省了传递控制权所花费的时间,并且加快了程序的执行。
同样判断数据存储部分2a也被安装在BPU 2内。因此,不需要用于安装判断数据存储部分2a的专用存储器。
接下来,将结合图4、5和6描述依照本发明的第二实施例。功能与第一实施例基本相同的部件用相同的标号表示,并且仅描述与第一实施例不同的部分。在第一实施例中,判断数据存储部分2a是安装在BPU 2内的,而本实施例的判断数据存储部分2a由第二存储器6构成,它通过1位数据总线6a与BPU 2和CPU3相连,以便读取判断数据。
具体地说,第二存储器6是一个1位长的存储器,并且将判断数据存储在与存储1中存储相应指令的相同地址上。附带说一句,地址上判断数据的值为0表示相应的应用指令是可跳越指令;地址上判断数据的值为1表示相应的应用指令是不可跳越指令。
接下来,参照图5描述BPU 2的工作过程。根据存储在判断数据存储部分2a即第二存储器6中的判断数据,BPU 2中的跳越处理部分2c判断当前的应用指令是否为可跳越指令(步骤S110)。图5中流程的其余部分与图2中第一实施例的流程相同。
在上述这样的可编程控制器中,与第一实施例中的一样可以加速程序的执行。同样,判断数据存储部分2a被安装在第二存储器6中,与BPU 2相连,并由BPU 2读取。因此,判断数据的存储可以不受现有结构的限制。另外,由于第二存储器6只有1位长,所以可以将可编程控制器的大小做得小型化。
接下来,结合图7、8和9a-9d描述依照本发明的第三实施例。功能与第一实施例基本相同的部件用相同的标号表示,并且仅描述与第一实施例不同的部分。在第一实施例中,判断数据存储部分2a是安装在BPU 2内的,而本实施例的判断数据存储部分2a被安装在存储器1中。
具体地说,存储器1具有存储第一类和第二类指令的指令存储区1a和存储判断数据的判断数据存储区1b。判断数据存储区1b的地址大于下述的偏址值。每条指令的判断数据被存储在从存储该指令的地址计算出的地址中。
接下来,参照图8和9a-9d描述抽取每条指令的过程。首先,跳越处理部分2c抽取存储该指令的地址的高12位,并通过与偏址值相加计算相应的地址(步骤S111)。例如,如图9a所示,如果应用指令存储在地址014Dh上,那么将偏址值0500h与该地址的高12位相加得到如图9c所示的对应地址。
接下来,跳越处理部分2c读取对应地址的内容(步骤S112),从而根据应用指令地址低4位的值,从该内容中抽取判断数据(步骤S113)。在上例中,如图9a所示,应用指令地址低4位的值为Dh=1101b=13d。因此,应用指令的判断数据被存储计算得到的对应地址0514h上的第13位位置上。例如,如果如图9d所示,对应地址0514h上的内容是0011000000000001b,那么第13位上的1就是该指令的判断数据。注意,位的位置是按最低至最高位置的顺序从第0位置开始,并于第15位置结束的。在这种情况下,应用指令的判断数据为1,因此存储在014Dh上的应用指令不是可跳越指令。很清楚,除了第13位位置上的值1以外,还在相同的对应地址0514h上存储了判断数据的16个值。
接下来,参照图7描述BPU 2本身的工作过程以及安装在其内的跳越处理部分2c。除了以下事实,BPU 2的工作与第一实施例中的相同,所述事实是如上所述,跳越处理部分2c计算为一第二类指令存储判断数据的对应地址(步骤S111),并且根据存储在安装于存储器1中的判断数据存储部分2a中的判断数据,判断应用指令是否为可跳越指令(步骤S112、S113和S114)。
在上述这种可编程控制器中,与第一实施例中的一样可以加速程序的执行。同样,判断数据存储部分2a被安装在现有的存储器1中,因此不需要增加额外的存储器,来安装判断数据存储部分2a。另外,将判断数据存储在由存储指令的地址计算出的对应地址中,从而容易确定存储区。另外,多个指令的判断数据被存储在单个地址上,因此不需要将存储器1做得很大。
在第一实施例中,判断数据存储部分2a是一张表,表中列出了与存储指令的地址对应的判断数据,用于参照该表判断跟在第一类指令后面的第二类指令是否为可跳越指令。存储判断数据的方法不限于第一实施例中所描述的那种。它能够判断第二类指令是否为可跳越指令。例如,可以将列出各类的所有可跳越指令代码字的表存储安装在判断数据存储部分2a中。在该情况下,BPU 2通过搜索表中的指令代码字,判断将执行的第二类指令是否可跳越。
在第二实施例,第二存储器6与BPU 2和CPU 3相连,由它们进行读取。但是,第二存储器6可以只与BPU 2相连,由BPU 2进行读取。同样,在第二实施例中,判断数据存储部分2a不外是第二存储器6,但它可以作为其一部分而安装在其中。另外,在第二实施例中,第二存储器2为1位长,但如果第二存储器2的大小不会变是太大,长度也可以大于1位,在第三实施例中,判断数据存储在从存储器1中的地址计算出的对应地址上,但判断数据也可以存储在独立的地址上。同样,在第三实施例中,将多条指令的判断数据存储在单个地址上,但如果存储器1的大小不会变得太大,也可以将不同指令的判断数据存储在不同的地址。
尽管结合较佳实施例和附图完整地描述了本发明,但应该注意,各种变化和改变对于本领域的技术人员来说是显而易见的。除非脱离了本发明的范围,这些变化和改变将被认为包含在由所附权利要求书限定的本发明的范围内。
权利要求
1.一种可编程控制器,其特征在于,包括位处理器(BPU),用于执行第一类指令;中央处理器(CPU),用于执行第二类指令;存储器,它被所述BPU和所述CPU共享,并且存储一程序,所述程序由第一类指令和第二类指令的组合构成,所述第二类指令包括可跳越指令,如果执行第一类指令的操作结果满足预定的跳越条件,那么就可以跳过所述的可跳越指令;判断数据存储部分,它存储用于判断第二类指令的当前指令是否为可跳越指令的判断数据;和跳越处理部分,用于判断所述操作结果是否满足所述的条件,并根所述判断数据判断当前指令是否为可跳越指令,如果判定所述操作结果满足所述跳越条件并且所述当前指令是可跳越指令,那么所述跳越处理部分跳过所述当前指令。
2.如权利要求1所述的可编程控制器,其特征在于,所述跳越处理部分安装在所述BPU内。
3.如权利要求2所述的可编程控制器,其特征在于,所述判断数据存储部分安装在所述BPU内。
4.如权利要求3所述的可编程控制器,其特征在于,所述判断数据控制部分将其中的每个所述判断数据存储在与所述存储器中存储一相应第二类指令的地址对应的地址上。
5.如权利要求2所述的可编程控制器,其特征在于,所述判断数据存储部分安装在第二存储器中,所述第二存储器与所述BPU相连,并且由所述BPU对其读取。
6.如权利要求5所述的可编程控制器,其特征在于,所述第二存储器为1位长。
7.如权利要求5所述的可编程控制器,其特征在于,所述第二存储器将其中的每个所述判断数据存储在与所述存储器中存储一所述第二类指令的地址对应的地址上。
8.如权利要求6所述的可编程控制器,其特征在于,所述第二类存储器将其中的每个判断数据存储在与所述存储器中存储每个所述第二类指令的地址对应的地址上。
9.如权利要求2所述的可编程控制器,其特征在于,所述判断数据存储部分安装在所述存储器中。
10.如权利要9所述的可编程控制器,其特征在于,所述存储器将每个所述判断数据存储在由所述存储器存储一个所述第二类指令的地址计算得出的地址上。
11.如权利要求9所述的可编程控制器,其特征在于,所述存储器将多个所述判断数据存储在单个地址上。
12.如权利要求10所述的可编程控制器,其特征在于,所述存储器将多个所述判断数据存储在单个地址上。
全文摘要
一种可编程控制器包括执行第一类指令BPU;执行第二类指令的CPU;由BPU和CPU共享且存储一程序的存储器,所述程序由第一类指令和第二类指令的组合构成。还包括判断数据存储部分,它存储用于判断当前的第二类指令是否为可跳越指令的判断数据;和跳越处理部分,用于判断先前指令的操作结果是否满足跳越条件,如果满足,则根据判断数据继续判断当前的第二类指令是否为可跳越指令,如果是,那么跳过当前指令,不把控制权传递给CPU。
文档编号G06F9/30GK1193142SQ9810537
公开日1998年9月16日 申请日期1998年2月26日 优先权日1997年2月26日
发明者田中阳一, 中井大, 增田达男 申请人:松下电工株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1