CN107111523A - 命令执行控制系统和命令执行控制方法 - Google Patents

命令执行控制系统和命令执行控制方法 Download PDF

Info

Publication number
CN107111523A
CN107111523A CN201480082409.0A CN201480082409A CN107111523A CN 107111523 A CN107111523 A CN 107111523A CN 201480082409 A CN201480082409 A CN 201480082409A CN 107111523 A CN107111523 A CN 107111523A
Authority
CN
China
Prior art keywords
instruction
output
unit
dummy order
order
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.)
Granted
Application number
CN201480082409.0A
Other languages
English (en)
Other versions
CN107111523B (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Publication of CN107111523A publication Critical patent/CN107111523A/zh
Application granted granted Critical
Publication of CN107111523B publication Critical patent/CN107111523B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Abstract

这一命令执行控制系统(1)包括:多个命令存储单元(22),其在先入先出基础上向执行命令的多个命令执行单元中的每个命令执行单元输出命令;命令控制单元(20),其向多个命令存储单元(22)中的一个命令存储单元分配依次输入命令;以及输出控制单元(23),其控制命令从多个命令存储单元的输出。如果输入命令是为了维持执行顺序而被插入在命令之间插入的虚命令,则命令控制单元(20)向所有多个命令存储单元(22)分发输入命令。输出控制单元(23)阻止命令从其中待输出的命令是虚命令的命令存储单元(22)向命令执行单元的输出,直至在所有多个命令存储单元(22)中待输出的命令是虚命令。

Description

命令执行控制系统和命令执行控制方法
技术领域
本发明涉及一种命令执行控制系统和一种指令执行控制方法,并且特别地涉及一种用于并行执行指令的技术。
背景技术
专利文献1公开了一种用于确保指令在系统中的执行顺序的技术,该系统具有用于在存储器存取中追赶(overtake)其它指令的功能。利用这一技术,如果由指令发出设备发出的指令是屏障指令,则指令执行控制设备将在存储单元中寄存的该指令的屏障前标志设置成一。在另一方面,如果由指令发出设备发出的指令不是屏障指令,则在存储单元中寄存该指令,并且关于寄存的指令和其屏障前标志是一的指令这对指令是否为将对其执行顺序确保控制的指令类型的组合进行评估。
如果该对指令是将对其执行顺序确保控制的指令类型的组合,则指令执行控制设备将其屏障前标志是一的指令的追赶禁止标志设置成一。在指令执行控制设备执行指令时,指令执行控制设备清除执行的指令的屏障前标志和追赶禁止标志。指令执行控制设备然后中止在先前寄存的指令之后已经被寄存的指令的执行,直至追赶禁止标志被清除。以这一方式,确保指令的执行顺序。
引用列表
专利文献
专利文献1:日本待审专利申请公开号2014-153851
发明内容
技术问题
然而,在专利文献1中公开的技术不是一种确保指令在系统中的执行顺序的技术,在该系统中,多个指令执行单元独立地并行执行指令。
相关领域的其它问题和本发明的新特征将从说明书的以下描述和附图变得清楚。
对问题的解决方案
根据一个实施例,在指令执行控制系统中,在输入指令是将被插入在应当按照执行顺序被执行的指令之间的虚指令时,向多个指令存储单元分发输入指令,并且停止指令从指令存储单元(从其输出的指令已经变成虚指令)向指令执行单元的输出,直至从所有多个指令存储单元输出的指令变成虚指令。
本发明的有利效果
根据以上实施例,有可能确保指令的执行顺序。
附图说明
图1是根据第一实施例的模块控制系统的框图;
图2是根据第一实施例的接口板和外部计算器的框图;
图3是示出根据第一实施例的外部计算器3的软件配置和硬件配置的附图;
图4是示出根据第一实施例的指令的执行顺序的附图;
图5是示出根据第一实施例的模块控制系统的操作的流程图;
图6是示出根据第一实施例的外部计算器的操作的流程图;
图7是示出根据第一实施例的接口板(传输控制功能和虚指令检测功能)的操作的流程图;
图8是示出根据第一实施例的接口板(定时调整功能)的操作的流程图;
图9是清楚地示出根据第一实施例的接口板的接收功能的框图;
图10是示出其中没有按照执行顺序执行指令的示例的附图;
图11是示出根据第一实施例的模块控制系统的修改示例1的框图;
图12是示出根据第一实施例的模块控制系统的修改示例2的框图;
图13是示出根据第二实施例的接口板和外部计算器的框图;
图14是示出根据第二实施例的模块控制系统的修改示例的框图;
图15是示出根据第三实施例的接口板和外部计算器的框图;
图16是示出根据第三实施例的指令的执行顺序的附图;
图17是示出根据第三实施例的接口板(定时调整功能)的操作的流程图;
图18是示出根据第四实施例的接口板和外部计算器的框图;
图19是示出根据第四实施例的指令的执行顺序的附图;
图20是示出根据第四实施例的模块控制系统的修改示例的框图;
图21是示出根据第五实施例的接口板和外部计算器的框图;
图22是示出根据第五实施例的指令的执行顺序的附图;
图23是示出根据第五实施例的接口板(定时调整功能)的操作的流程图;
图24是示出根据第六实施例的接口板和外部计算器的框图;
图25是示出根据第七实施例的接口板和外部计算器的框图;
图26是示出根据第八实施例的接口板和外部计算器的框图;
图27是示出根据第八实施例的指令的执行顺序的附图;
图28是示出根据第八实施例的接口板(传输控制功能和虚指令检测功能)的操作的流程图;
图29是示出根据第九实施例的模块控制系统的框图;
图30是示出根据第九实施例的模块控制系统的框图;
图31是示出根据第九实施例的模块控制系统的框图;
图32是示出根据第九实施例的指令的执行顺序的附图;
图33是示出根据第十实施例的模块控制系统的框图;
图34是示出根据第十实施例的模块控制系统的框图;
图35是示出根据第十实施例的模块控制系统的框图;以及
图36是示出根据第十实施例的指令的执行顺序的附图。
具体实施方式
下文将参照附图描述优选实施例。在以下实施例中示出的具体数值仅为说明性以用于更容易地理解本发明,并且除非另有指明,否则本发明不限于它们。如适当的那样省略和简化对于本领域技术人员而言显而易见的以下描述和附图以便阐明描述。
第一实施例
首先,将参照图1描述根据第一实施例的模块控制系统1的配置。如图1中所示,模块控制系统1包括接口板2、外部计算器3和多个模块4。
接口板2通过通信路径90被连接到外部计算器3。另外,接口板2通过总线91至93被连接到多个模块4。模块4中的至少一个模块被连接到总线91至93中的每个总线。确切地讲,在接口板2被连接到多个模块4时,在那些部件内的信号线被连接以形成总线91至93。注意,在第一实施例中,虽然将描述其中将接口板2连接到模块4的总线91至93的数目是三的示例,但是总线的数目不限于此。
接口板2通过通过信路径90从外部计算器3接收指令。接口板2向总线91至93指派接收的指令。换而言之,接口板2将接收的指令传输给将执行指令的模块4被连接到的总线。
外部计算器3生成将由模块4执行的指令。外部计算器3通过通信路径90向接口板2传输生成的指令。外部计算器3典型地例如是PC(个人计算机)。
多个模块4中的每个模块执行从接口板2接收的指令。被相互连接的多个模块4构成一个操作配件(gadget)。配件可以例如是电子设备(比如家用电器)或者运输设备(比如汽车)。配件的操作由分别执行指令的多个模块4实现。
如图1中所示,多个模块4中的每个模块例如包括微计算机40、传感器41和马达42。注意,模块4可以各自包括传感器41和马达42之一。微计算机40执行从接口板2接收的指令。在接收的指令是传感器值获取指令时,微计算机40执行用于从传感器41获取传感器值并且向接口板2传输它的处理。接口板2向外部计算器3传输从模块4接收的传感器值。在接收的指令是马达驱动指令时,微计算机40执行用于驱动马达42的处理。这一马达驱动指令例如基于由外部计算器3从模块4获取的传感器值被生成。更确切地讲,指令在第一实施例中的执行指示模块4根据指令对处理的执行。换而言之,在这一实施例中的指令是指令模块4执行处理的信息项。
例如,在由多个模块4组成的配件是移动运输设备时,配件可以通过基于以上述方式由传感器41生成的传感器值驱动马达42而被移动。注意,模块4的配置不限于此。模块4可以各自包括除了传感器41之外的信息获取装置并且可以各自包括除了马达42之外的操作实现装置。
模块4到其它模块或者接口板2的连接可以由任意连接方法实现。连接方法可以例如是通过线缆或者连接部分的间接连接或者没有使用线缆的直接连接等。另外,在多个模块4将被连接时,可以使用两个或者更多个这些连接方法的组合。
在第一实施例中,外部计算器3通过接口板2控制多个模块4,从而使得外部计算器3可以控制更多模块4。也就是说,在外部计算器3通过可以通过使用多个总线91至93来连接模块4的接口板2被连接到多个模块4时,可以连接比在单个总线用来将外部计算器3直接地连接到模块4时更多的模块4。
在另一方面,利用这样的配置,被连接到总线41的一组模块4、被连接到总线92的一组模块4和被连接到总线93的一组模块4相互独立地执行指令。因此,如果没有给予考虑给多组模块4的相互独立,则存在如下问题:在向被连接到总线的不同多组模块4传输应当按照执行顺序被执行的指令时,应当在执行另一指令之后被执行的指令可以在该指令被执行之前被执行。注意,这些多组模块4用作指令执行单元。
在第一实施例中,在通过不同总线91至93向独立的多组模块4传输指令时,由多个模块4执行的指令的顺序由以下描述的功能确保。
外部计算器3包括虚指令生成功能30。虚指令生成功能30生成虚指令并且将它插入在向接口板2依次地传输的多个指令之中的应当按照执行顺序被执行的指令之间。也就是说,在多个指令之中,如果存在第一指令和应当在第一指令之后被执行的第二指令,则在第一指令与第二指令之间插入虚指令。因此,第一指令、虚指令和第二指令按照这一顺序从外部计算器3被传输给接口板2。
例如,第一指令对应于传感器值获取指令,并且第二指令对应于基于根据传感器值获取指令被获取的传感器值而被生成的马达驱动指令。注意,应当按照执行顺序被执行的指令的类型不限于在这一实施例中说明的传感器值获取指令和马达驱动指令。可以对于其它类型的指令按照以下方式确保执行顺序。
接口板2包括传输控制功能20、虚指令检测功能21、多个总线指令缓冲器22a至22c和定时调整功能23。在下文中,如果没有指示总线指令缓冲器22a至22c中的任何特定指令缓冲器,则总线指令缓冲器22a至22c各自仅被称为“总线指令缓冲器22”。
传输控制功能20向总线指令缓冲器22a至22c指派或者分发从外部计算器3接收的指令。换而言之,传输控制功能20在总线指令缓冲器22a至22c中存储从外部计算器3接收的指令。更具体而言,如果接收的指令是虚指令,则传输控制功能20向所有总线指令缓冲器22a至22c输出虚指令。而如果接收的指令不是虚指令,则传输控制功能20向总线指令缓冲器22a至22c中的任何总线指令缓冲器输出指令。更具体而言,传输控制功能20将指令输出给与将执行指令的模块4被连接到的总线对应的总线指令缓冲器22。传输控制功能20基于虚指令检测功能21的检测结果识别接收的指令是否为虚指令。
虚指令检测功能21关于从外部计算器3接收的指令是否为虚指令进行评估。也就是说,指令检测功能21关于向传输控制功能20输入的指令是否为虚指令进行评估。如果虚指令检测功能21确定从外部计算器3接收的指令是虚指令,则虚指令检测功能21向传输控制功能20通知检测到虚指令。
更具体而言,传输控制功能20和虚指令检测功能21例如由以下电路实现。如果向传输控制功能20输入的指令是虚指令,则虚指令检测功能21向被包括在传输控制功能20中的广播终端输出广播指令信号。广播指令信号对应于指示虚指令的上述检测结果的信号。在另一方面,如果向传输控制功能20输入的指令不是虚指令,则虚指令检测功能21不向被包括在传输控制功能20中的广播终端输出广播指令信号。如果从虚指令检测功能21输入了广播指令信号,则传输控制功能20向所有总线指令缓冲器22a至22c分发输入的指令。在另一方面,如果没有从虚指令检测功能21输入广播指令信号,则传输控制功能20向总线指令缓冲器22a至22c之一指派输入指令。
通过这样的操作,如果存在第一指令和应当在第一指令之后被执行的第二指令,则在所有总线指令缓冲器22a至22c中在第一指令之后存储虚指令,并且在总线指令缓冲器22a至22c之一中在虚指令之后存储第二指令。传输控制功能20和虚指令检测功能21用作指令控制单元。
总线指令缓冲器22a至22c中的每个总线指令缓冲器可以存储多个指令。总线指令缓冲器22a至22c中的每个总线指令缓冲器存储从传输控制功能20输入的指令。总线指令缓冲器22a至22c中的每个总线指令缓冲器按照FIFO(先入先出)顺序存储指令。因此,被存储在总线指令缓冲器22a至22c中的每个总线指令缓冲器中的指令按照它们被存储在其中的顺序被依次地取回,并且然后被分别传输给总线91至93。
总线指令缓冲器22a被连接到总线91,总线指令缓冲器22b被连接到总线92,并且总线指令缓冲器22c被连接到总线93。因此,通过总线91向模块4输出被存储在总线指令缓冲器22a中的指令。通过总线92向模块4输出被存储在总线指令缓冲器22b中的指令。通过总线93向模块4输出被存储在总线指令缓冲器22c中的指令。
在定时调整功能23使用虚指令以控制指令从总线指令缓冲器22a至22c向模块4的输出时,确保指令的顺序。定时调整功能23用作输出控制单元。
定时调整功能23监视从总线指令缓冲器22a至22c输出的指令。在定时调整功能23检测输出虚指令的总线指令缓冲器22时,定时调整功能23中止对应总线指令缓冲器22的操作。换而言之,定时调整功能23中止指令从对应总线指令缓冲器22向模块4的输出。此后,每当定时调整功能23检测输出新虚指令的总线指令缓冲器22时,定时调整功能23中止对应总线指令缓冲器22的操作。在从所有总线指令缓冲器22a至22c输出的指令变成虚指令时,定时调整功能23恢复已经被中止的总线指令缓冲器22的操作。也就是说,定时调整功能23恢复指令从已经被中止的总线指令缓冲器22向模块4的输出。
以这一方式,中止在虚指令之后向模块4的输出,直至所有总线指令缓冲器22a至22c输出虚指令。因此,如果存在第一指令和应当在第一指令之后被执行的第二指令,则至少直至输出第一指令和输出在第一指令之后的虚指令才会输出在虚指令之后的第二指令。因此,确保第一指令和第二指令的顺序。
更具体而言,总线指令缓冲器22a至22c和定时调整功能23例如由以下电路实现。定时调整功能23向输出虚指令的总线指令缓冲器22的中止信号输入终端输出中止信号,直至从所有总线指令缓冲器22a至22c输出虚指令。响应于来自定时调整功能23的中止信号,总线指令缓冲器22中止它的操作。更具体而言,总线指令缓冲器22响应于来自定时调整功能23的中止信号中止指令向模块4的输出操作。因此,例如,中断数据(指令)的序列从总线指令缓冲器22向模块4的传送。注意,传送序列与总线91至93的通信标准相符。也就是说,中断虚指令从总线指令缓冲器22向模块4的传输。因此,没有完成由模块4对虚指令的接收,并且虚指令继续留在总线指令缓冲器22内。因而,在虚指令之后的指令没有被传输并且留在总线指令缓冲器22内。以这一方式,停止指令从总线指令缓冲器22向模块4的传输。在从定时调整功能23向总线指令缓冲器22输入中止信号时停止指令的传输。
注意,虽然已经将用于通过中止总线指令缓冲器22的操作来中断指令的序列从总线指令缓冲器22向模块4的传送的方法描述为用于停止指令从总线指令缓冲器22向模块4的传输的方法之一,但是它不限于这一方法并且可以使用其它方法。例如,定时调整功能23可以获取从总线指令缓冲器22输出的指令,并且如果获取的指令是虚指令,则定时调整功能23可以停止指令的传输。如果获取的指令不是虚指令,则定时调整功能23可以向模块4传输指令。
在定时调整功能23检测到虚指令从所有总线指令缓冲器22a至22c的输出时,定时调整功能23停止输出中止信号。其操作已经被中止的总线指令缓冲器22在没有从定时调整功能23输入中止信号时恢复它们的操作。更具体而言,总线指令缓冲器22在取消来自定时调整功能23的中止信号时恢复指令向模块4的输出操作。如后文描述的那样,这时丢弃虚指令。因此,为在虚指令之后的下一指令开始指令的序列从总线指令缓冲器22向模块4的传送。也就是说,恢复指令从所有总线指令缓冲器22a至22c向模块4的传输。
接着将参照图2描述根据第一实施例的接口板2和外部计算器3的配置。
首先,将描述接口板2。图2示出被包括在接口板2中的传输控制功能20和定时调整功能23的具体配置。如图2中所示,传输控制功能20包括指令指派单元201、指令分发单元202和反相器209。定时调整功能23包括虚指令检测单元231a至231c和AND电路232。在下文中,如果没有指示虚指令检测单元231a至231c中的任何特定虚指令检测单元,则虚指令检测单元231a至231c各自仅被称为“虚指令检测单元231”。
向指令指派单元201和指令分发单元202二者输入向传输控制功能20输入的指令。指令指派单元201根据目的地向总线指令缓冲器22a至22c之一指派输入指令。指令分发单元202向所有总线指令缓冲器22a至22c分发输入指令。
指令指派单元201和指令分发单元202按照根据广播指令信号是否由虚指令检测功能21向传输控制功能20输入以相互补充的方式操作。如果没有向传输控制功能20输入广播指令信号,则指令指派单元201操作,并且指令分发单元202中止操作。在另一方面,如果向传输控制功能20输入了广播指令信号,则指令指派单元201中止操作,并且指令分发单元202操作。以这一方式,实现了传输控制功能20的以上操作。
更具体而言,指令指派单元201和指令分发单元202例如按照以下方式操作。虚指令检测功能21向指令指派单元201和指令分发单元202输出被切换成高电平或者低电平的信号。在向指令指派单元201和指令分发单元202输入虚指令时,虚指令检测功能21输出高电平信号。在另一方面,在没有向指令指派单元201和指令分发单元202输入虚指令时,虚指令检测功能21输出低电平信号。这一信号如同向指令分发单元202输入它,并且向指令指派单元201输入通过由反相器209使这一信号反相而获得的信号而被输入。指令指派单元201和指令分发单元202在向它们输入高电平信号时操作并且在向它们输入低电平信号时中止操作。也就是说,高电平信号对应于广播指令信号。
虚指令检测单元231a至231c中的每个虚指令检测单元分别监视从总线指令缓冲器22a至22c输出的指令,并且检测虚指令的输出。虚指令检测单元231a监视总线指令缓冲器22a。虚指令检测单元231b监视总线指令缓冲器22b。虚指令检测单元231c监视总线指令缓冲器22c。
在从总线指令缓冲器22a输出虚指令时,虚指令检测单元231a向总线指令缓冲器22a和AND电路232输出中止信号。在从总线指令缓冲器22b输出虚指令时,虚指令检测单元231b向总线指令缓冲器22b和AND电路232输出中止信号。在从总线指令缓冲器22c输出虚指令时,虚指令检测单元231c向总线指令缓冲器22c和AND电路232输出中止信号。
AND电路232将通过将从虚指令检测单元231a至231c输入的信号AND而获得的信号输出给虚指令检测单元231a至231c中的每个虚指令检测单元。在从所有虚指令检测单元231a至231c输入中止信号时,AND电路232向虚指令检测单元231a至231c中的每个虚指令检测单元输出清除信号。在另一方面,在没有从虚指令检测单元231a至231c中的至少一个虚指令检测单元向AND电路232输入中止信号时,AND电路232不会向虚指令检测单元231a至231c中的任何虚指令检测单元输出清除信号。
更具体而言,虚指令检测单元231a至231c和AND电路232例如如以下描述的那样操作。虚指令检测单元231a至231c中的每个虚指令检测单元分别向总线指令缓冲器22a至22c输出可以被切换成高电平或者低电平的信号。在从总线指令缓冲器22a至22c输出虚指令时,虚指令检测单元231a至231c中的对应虚指令检测单元输出高电平信号。在另一方面,在没有从总线指令缓冲器22a至22c输出虚指令时,虚指令检测单元231a至231c中的对应虚指令检测单元输出低电平信号。总线指令缓冲器22a至22c在向它们输入高电平信号时操作并且在向它们输入低电平信号时中止操作。也就是说,高电平信号对应于中止信号。
在从所有虚指令检测单元231a至231c向AND电路232输入高电平信号时,AND电路232向虚指令检测单元231a至231c中的每个虚指令检测单元输出高电平信号。在从虚指令检测单元231a至231c中的至少一个虚指令检测单元向AND电路232输入低电平信号时,AND电路232向虚指令检测单元231a至231c中的每个虚指令检测单元输出低电平信号。在从AND电路232向虚指令检测单元231a至231c输入高电平信号时,虚指令检测单元231a至231c中的每个虚指令检测单元把将向总线指令缓冲器22a至22c和AND电路输出的信号从高电平切换成低电平。在另一方面,在从AND电路232向虚指令检测单元231a至231c输入低电平信号时,虚指令检测单元231a至231c中的每个虚指令检测单元不切换将向总线指令缓冲器22a至22c和AND电路232输出的信号的电平。也就是说,由AND电路232输出的高电平信号对应于清除信号。
接着,将描述外部计算器3。图2更具体地示出外部计算器3的配置。如图2中所示,外部计算器3除了虚指令生成功能30之外还包括指令生成单元31和指令顺序评估单元32。
指令生成单元31生成将由多个模块4执行的多个指令。执行顺序评估单元32关于在由指令生成单元31生成的多个指令中是否存在应当按照执行顺序被执行的指令进行评估。虚指令生成功能30生成虚指令并且将它插入在已经由执行顺序评估单元32检测到的应当按照执行顺序被执行的指令之间。通过这样做,在由外部计算器3生成的多个指令之中,如果存在第一指令和应当在第一指令之后被执行的第二指令,则第一指令、虚指令和第二指令按照这一顺序而被传输。
接着将参照图3描述根据第一实施例的外部计算器3的软件配置和硬件配置。如图3中所示,外部计算器3包括CPU(中央处理单元)300、存储器301、硬盘302和通信控制器303。
CPU 300集中地控制外部计算器3。CPU 3将被存储在硬盘302中的解译器310加载到存储器301中并且执行解译器310以由此解译被存储在硬盘302中的源程序311并且生成可执行程序。在CPU 300执行生成的可执行程序时,CPU 300生成指令并且向接口板2传输它们。换而言之,解译器310和通过解译源程序311而被生成的可执行程序包括用于使得CPU300执行各种处理作为虚指令生成功能30、指令生成单元31和执行顺序评估单元32的代码。
存储器301暂时地存储由CPU 300使用的信息。这一信息如以上描述的那样包括从硬盘302加载的解译器310、源程序311等。存储器301例如为非易失性存储器设备,比如DRAM(动态随机存取存储器)、SRAM(静态随机存取存储器)等。
硬盘302如以上描述的那样存储各种信息项,比如解译器310、源程序311等。注意,可以使用其它存储设备(比如闪存)取代硬盘302,只要它为非易失性存储设备,如硬盘302。存储器301和硬盘302用作存储由外部计算器3使用的信息的存储单元。注意,存储设备的数目和用作存储单元的存储设备的组合不限于上例。
通信控制器303将由CPU 300输出的信息转换成可以向接口板2传输的格式并且向接口板2传输转换的信息。转换的格式与外部计算器3与接口板2之间的通信标准相符。另外,通信控制器303从接口板2接收信息、将它转换成可以由外部计算器3处理的格式并且向CPU 300输出转换的信息。
解译器310具有用于生成虚指令的功能。源程序(源代码、源程序)311描述用于控制多个模块4的代码。CPU 300执行由依次地解译(可以被称为依次编译)源程序311的解译器310生成的可执行程序(加载模块、机器语言程序、目标代码)以由此生成将由多个模块4执行的指令并且通过接口板2向多个模块4依次地传输指令。这时,在CPU 300生成应当按照执行顺序被执行的指令并且传输它们时,CPU 300生成虚指令并且在指令之间传输虚指令。也就是说,在执行用于生成应当按照执行顺序被执行的指令并且传输它们的代码时,解译器310添加用于在那些代码之间生成虚指令并且传输它们的代码而且使得CPU 300执行代码。然后,外部计算机3可以在应当按照执行顺序被执行的指令之间插入虚代码并且向接口板2传输指令。
注意,用于控制多个模块4的方案不限于其中执行由依次地解译源程序311的解译器310生成的可执行程序的上述示例。备选地,可以在硬盘302中存储取代解译器310的编译器,并且CPU 300可以执行由统一地解译(可以被称为统一编译)源程序311的编译器生成的可执行程序。在这一情况下,编译器使得CPU 300执行用于将用于生成虚指令并且传输它的代码添加到用于生成应当按照执行顺序被执行的指令并且传输指令的代码以由此生成可执行程序的处理。备选地,可以在可执行程序中包括评估应当按照执行顺序被执行的指令的指令评估功能和虚指令生成功能,从而使得CPU 300可以执行用于在检查指令的顺序时生成虚指令的处理。通过这样做,在CPU 300执行可执行程序时,在应当按照执行顺序被执行的指令之间插入虚指令,并且向接口板2传输指令。
如以上描述的那样,有可能不仅由解译器310而且由编译器插入虚指令。
接着,将参照图4描述根据第一实施例的用于执行指令的顺序。参照图4,给出了其中外部计算器3的指令生成单元31按照从指令A到指令F的顺序生成指令的示例。
需要按照执行顺序执行指令C、D和F。也就是说,需要在执行指令C之后执行指令D,并且需要在执行指令D之后执行指令F。注意,在图4中,为了完成通过总线91至93对一个指令的传输而花费的时间被指示为一个单位时间(=1.0)。
在这一情况下,虚指令生成功能30在指令C与D之间插入虚指令A并且在指令D与F之间插入虚指令B。因而,如图4中由“通信路径90中的数据”指示的那样,外部计算器3按照指令A、指令B、指令C、虚指令A、指令D、指令E、虚指令B和指令F的顺序通过通信路径90向接口板2逐个传输指令。
注意,希望通信路径90的通信速度大于总线91至93的通信速度。例如,如图4中所示,可以在通过总线91至93传输一个指令的时间内通过通信路径90传输多个指令(指令A到F以及虚指令A和B)。在图4中,虽然示出了其中可以在通过总线91至93传输一个指令的时间内通过通信路径90传输至少八个指令的示例,但是在通过通信路径90传输的指令的数目与通过总线91至93传输的指令的数目之间的关系不限于此。由于在通过通信路径90传输的指令的数目与通过总线91至93传输的指令的数目之间的关系,指令不会在总线91至93中用完,并且指令可以相继地被传输给模块4。
另外,指令A、B和C由被连接到总线91的模块4执行,指令D由被连接到总线92的模块4执行,并且指令E和F由被连接到总线93的模块4执行。
在这一情况下,如图4中由“总线中的数据”指示的那样,总线指令缓冲器22a至22c分别向总线91至93传输指令。也就是说,总线指令缓冲器22a将指令A、指令B、指令C、虚指令A和指令B按照这一顺序存储并且按照这一顺序传输指令。总线指令缓冲器22b将虚指令A、指令D和虚指令B按照这一顺序存储并且按照这一顺序传输指令。总线指令缓冲器22c将虚指令A、指令E、虚指令B和指令F按照这一顺序存储并且按照这一顺序传输指令。下文将描述总线91到93在这一情况下随着时间流逝的状态。
(时间1)
向总线91传输被存储在总线指令缓冲器22a中的指令A。被连接到总线91的模块4接收从总线指令缓冲器22a传输的指令A并且执行它。这时,从总线指令缓冲器22a传输的指令不是虚指令A,而从总线指令缓冲器22b和22c传输的指令是虚指令A。因此,定时调整功能23中止传输虚指令A的总线指令缓冲器22b和22c的操作。因此,模块4尚未完成接收由总线指令缓冲器22b和22c传输的虚指令A。
(时间2)
向总线91传输被存储在总线指令缓冲器22a中的指令B。被连接到总线91的模块4接收从总线指令缓冲器22a传输的指令B并且执行它。这时,从总线指令缓冲器22a传输的指令不是虚指令A,而从总线指令缓冲器22b和22c传输的指令是虚指令A。因而,定时调整功能23继续中止传输虚指令A的总线指令缓冲器22b和22c的操作
(时间3)
向总线91传输被存储在总线指令缓冲器22a中的指令C。被连接到总线91的模块4接收从总线指令缓冲器22a传输的指令C并且执行它。这时,从总线指令缓冲器22a传输的指令不是虚指令A,而从总线指令缓冲器22b和22c传输的指令是虚指令A。因而,定时调整功能23继续中止传输虚指令A的总线指令缓冲器22b和22c的操作。
(时间4)
也向总线91传输被存储在总线指令缓冲器22中的虚指令A。因而,从所有总线指令缓冲器22a至22c传输的指令是虚指令A。因此,定时调整功能23恢复总线指令缓冲器22b和22c的操作。注意,这时,总线指令缓冲器22a至22c丢弃虚指令A,随后将描述这一点。
(时间5)
向总线91传输被存储在总线指令缓冲器22a中的虚指令B。在另一方面,向总线92传输被存储在已经恢复了其操作的总线指令缓冲器22b中的指令D。被连接到总线92的模块4接收从总线指令缓冲器22b传输的指令D并且执行它。也向总线93传输被存储在已经恢复了其操作的总线指令缓冲器22c中的指令E。被连接到总线93的模块4接收从总线指令缓冲器22c传输的指令E并且执行它。如以上描述的那样,中止应当在指令C之后被执行的指令D的传输,直至传输指令C。因此,有可能确保指令C和D的执行顺序。这时,从总线指令缓冲器22b和22c传输的指令不是虚指令B,并且从总线指令缓冲器22a传输的指令是虚指令B。因而,定时调整功能23继续中止传输虚指令B的总线指令缓冲器22a的操作。
(时间6)
也向总线92传输被存储在总线指令缓冲器22b中的虚指令B。也向总线93传输被存储在总线指令缓冲器22c中的虚指令B。因而,从所有总线指令缓冲器22a至2c传输的指令是虚指令B。因此,定时调整功能23恢复总线指令缓冲器22a的操作。
(时间7)
向总线93传输被存储在总线指令缓冲器22c中的指令F。被连接到总线93的模块4接收从总线指令缓冲器22c传输的指令F并且执行它。如以上描述的那样,中止应当在指令D之后被执行的指令F的传输,直至传输指令D。因此,有可能确保指令D和F的执行顺序。
如以上所示,根据第一实施例的上述模块控制系统1即使对于独立地并行执行指令的多组模块4仍然可以确保指令执行顺序。
接着,将参照图5描述根据第一实施例的模块控制系统1的操作。
外部计算器3的CPU 300响应于用户的输入创建源程序311(S1)。在源程序311中描述用于控制多个模块4的代码。例如,在源程序311中描述用于生成传感器值获取指令和马达驱动指令并且向模块4传输它们的代码。用户的以上输入通过用户操作被包括在外部计算器3中的输入设备(未示出)而被执行。输入设备例如是键盘、鼠标等。
外部计算器3的CPU 300执行解译器310以由此依次地解译源程序311、生成可执行程序并且执行它(S2)。然后,各种指令由外部计算器3生成并且通过接口板2依次地被传输给多个模块4。在多个模块4执行接收的指令时,实现由多个模块4组成的配件的操作(S3)。
接着,将参照图6描述根据第一实施例的外部计算器3的操作。外部计算器3执行解译器310以由此在外部计算器3依次地解译源程序311并且执行可执行程序时反复地执行步骤S11至S14中的以下处理。
执行顺序评估单元32关于是否存在在由将被解译的在第i行中的代码生成的指令与由在第i-1行和在第i-1行之前的行中的代码生成的指令之间的顺序的限制进行评估(S11)(i是任何正整数)。执行顺序评估单元32例如分析源代码311,并且如果由在第-1行和在第i-1行之前的行中的代码生成的指令是传感器值获取指令,并且如果由在第i行中的代码生成的指令是基于根据传感器值获取指令获取的传感器值的马达驱动指令,则执行顺序评估单元32确定存在这些指令的顺序限制。
对于指令的顺序限制而待调查的范围可以例如通过以下方法(1)至(4)中的任何一种方法被确定。
(1)调查各行直至其中先前生成了虚指令的行
在这一方法中,执行顺序评估单元32调查从第i-1行反向地到其中先前生成了虚指令的行的多行。
(2)调查预定行
在这一方法中,执行顺序评估单元32从第i-1行反向地调查预定行。
(3)调查多行直至检测到具有顺序限制的指令
在这一方法中,执行顺序评估单元32调查从第i-1行反向地到如下行的多行,在该行检测到用于生成具有顺序限制的指令的代码。
(4)调查第i-1行和在第i-1行之前的多行
在这一方法中,执行顺序评估单元32调查从源程序311的第i-1行反向地到第一行的多行。
在执行顺序评估单元32确定存在在第i行中的指令以及在第i-1行和在第i-1行之前的行中的指令的顺序限制时(S11:是),虚指令生成功能30生成虚指令(S12)。在从源程序311生成的可执行程序中,在被确定包括由这些代码生成的指令的顺序限制的、与第i行对应的代码和与在第i-1行和在第i-1行之前的行对应的代码之间插入用于传输虚指令的代码。
在另一方面,在执行顺序评估单元32确定不存在在由在第i行中的代码生成的指令以及由在第i-1行和在第i-1行之前的行中的代码生成的指令的顺序限制时(S11:否),虚指令生成功能30不生成虚指令。
当在源程序311的第i行中描述用于向模块4传输指令的处理时,指令生成单元31从在源程序311的第i行中的描述生成指令(S13)。
指令生成单元31向生成的指令添加指示指令被传输到的总线的目标总线信息(S14)。基于指示模块4的对应数据和模块4被连接到的总线评估指令被传输到的总线。对应数据先前例如被存储在硬盘302中。在源程序311的描述中,用于生成指令的代码指示指令被传输到的模块4。因此,指令生成单元31基于对应数据生成指示总线(该总线是从指令被传输到的模块4传输的指令的目的地)的目标总线信息并且向指令添加目标总线信息。在接口板2的传输控制功能20(指令指派单元201)从外部计算器3接收指令时,传输控制功能20向与由已经向指令被添加的目标总线信息指示的总线对应的总线指令缓冲器22指派指令。这使传输控制功能20(指令指派单元201)能够向与传输目的地对应的总线指令缓冲器22正确地指派指令。
如以上描述的那样,如果确定存在在由在第i行中的代码生成的指令与由在第i-1行和在第i-1行之前的行中的代码生成的指令之间的顺序限制,则虚指令生成功能30在步骤S12中生成和传输虚指令,并且然后指令生成单元31在步骤S13中生成和传输指令。在另一方面,如果确定不存在在由在第i行中的代码生成的指令与由在第i-1行和在第i-1行之前的行中的代码生成的指令之间的顺序限制,则不传输虚指令,并且仅指令生成单元31在步骤S13中生成和传输指令。
通过这样做,在例如向分离的总线传输具有在其之间的顺序限制的传感器值获取指令和马达驱动指令时,可以在传感器值获取指令与马达驱动指令之间插入虚指令,并且可以传输指令。因而,如参照图4描述的那样,由接口板2使用虚指令进行的控制防止马达驱动指令在执行传感器值获取指令之前被执行。以这一方式,有可能例如避免故障,从而使得基于在一个周期之前的传感器值驱动马达。
接着,将参照图7描述根据第一实施例的接口板2的传输控制功能20和虚指令检测功能21的操作。
虚指令检测功能21关于从外部计算器3接收的指令是否为虚指令进行评估(S21)。如果确定从外部计算器3接收的指令不是虚指令(S21:否),则传输控制功能20控制指令指派单元201向由被包括在指令中的目标总线信息指示的总线指派指令(S22)。在另一方面,如果确定从外部计算器3接收的指令是虚指令(S21:是),则传输控制功能20控制指令分发单元202向所有总线91至93分发指令(S23)。
接着,将参照图8描述根据第一实施例的接口板2的定时调整功能23的操作。
定时调整功能23的虚指令检测单元231a至231c关于从总线指令缓冲器22a至22c输出的指令是否为虚指令分别进行评估(S31)。如果虚指令检测单元231a至231c分别确定从总线指令缓冲器22a至22c输出的指令不是虚指令(S31:否),则虚指令检测单元231a至231c分别允许总线指令缓冲器22a至22c输出指令(S32)。
在另一方面,如果虚指令检测单元231a至231c分别确定从对应总线指令缓冲器22a至22c输出的指令是虚指令(S31:是),则虚指令检测单元231a至231c分别中止总线指令缓冲器22a至22c输出指令(S33)。定时调整功能23关于是否从所有总线指令缓冲器22a至22c输出虚指令进行评估(S34)。也就是说,虚指令检测单元231关于是否已经输入了清除信号各自进行评估。
在定时调整功能23确定从所有总线指令缓冲器22a至22c输出虚指令时(S34:是),定时调整功能23指令总线指令缓冲器22a至22c丢弃虚指令(S35)。在总线指令缓冲器22a至22c丢弃在相应的虚指令检测单元231a至231c取消输出中止指令时的定时输出的指令时丢弃虚指令。然后,在由总线指令缓冲器22a至22c输出的指令不再是虚指令时(S31:否),总线指令缓冲器22a至22c输出指令(S32)。在另一方面,在定时调整功能23确定从所有总线指令缓冲器22a至22c没有输出虚指令时(S34:否),定时调整功能23不指令总线指令缓冲器22a至22c丢弃虚指令。
明显地可以从相应的模块4接收指令,这在以上描述中尚未被提到以便阐明关于虚指令的操作。更具体而言,如图9中所示,接口板2除了包括传输控制功能20、虚指令检测功能21、总线指令缓冲器22a至22c和定时调整功能23的传输功能200之外还包括接收功能220。接收功能220包括接收控制功能221和接收总线指令缓冲器222a至222c。
接收总线指令缓冲器222a至222c中的每个接收总线指令缓冲器可以存储多个指令。接收总线指令缓冲器222a至222c中的每个接收总线指令缓冲器分别存储通过总线91至93从模块4接收的指令。接收总线指令缓冲器222a至222c中的每个接收总线指令缓冲器按照FIFO顺序存储指令。因此,接收总线指令缓冲器222a至222c中的每个接收总线指令缓冲器按照指令被存储在其中的顺序向接收控制功能221依次地输出它们。
接收控制功能221按照它们到达其的顺序通过通信路径90向外部计算器3依次地传输从接收总线指令缓冲器222a至222c输入的指令。也就是说,如同图4中所示的占据通信路径90和总线路径91至93的指令,从模块4向外部计算器3传输的指令可以占据通信路径90和总线91至93。
注意,从模块4向外部计算器3传输的指令不仅是用于模块4指令外部计算器3执行处理的指令,而且是如下指令,这些指令包括模块4用来对来自外部计算器3的指令做出响应的信息。这一信息例如包括由模块4响应于传感器值获取指令向外部计算器3传输的传感器值。
如以上描述的那样,根据第一实施例的模块控制系统1包括按照FIFO顺序向相应的总线91至93(该组模块4)输出指令的总线指令缓冲器22a至22c、向总线指令缓冲器22a至22c之一指派依次输入指令中的每个指令的传输控制功能20和控制指令从总线指令缓冲器22a至22c的输出的定时调整功能23。
在输入指令是将被插入在应当按照执行顺序被执行的指令之间的虚指令时,传输控制功能20向所有总线指令缓冲器22a至22c分发输入指令。然后,定时调整功能23中止指令从总线指令缓冲器22(从其输出的指令已经变成虚指令)向总线(该组模块4)的输出,直至从所有总线指令缓冲器22a至22c输出的指令变成虚指令。
通过这样做,直至输出在虚指令之前的指令并且从所有总线指令缓冲器22a至22c输出虚指令,才会向模块4输出和执行在虚指令之后的指令。因此,有可能确保应当按照执行顺序被执行的指令的执行顺序。
例如,在根据第一实施例传输图4中所示的指令A至F而没有被虚指令控制时,如图10中所示传输指令A至F。也就是说,接口板2立即向总线91至93指派和通过通信路径90传输从外部计算器3接收的指令A至F。
因而,在(时间1),向总线91传输指令A,向总线92传输指令D,并且向总线93传输指令E。在(时间2),向总线91传输指令B,并且向总线93传输指令F。在(时间3),向总线91传输指令C。以这一方式,向模块4传输并且在指令C之前执行应当在指令C之后被执行的指令D。在另一方面,根据第一实施例,即使在传输与在上例中的指令相同的指令A至F时仍然有可能确保如图4中所示指令的顺序。
(第一实施例的修改示例1)
模块控制系统1不限于图1和2中所示的其中外部计算器3被直接地连接到接口板2的配置。如图11中所示,可以用外部计算器3和接口板2与介于它们之间的处理设备5被连接这样的方式配置模块控制系统1。外部计算器3通过通信路径90被连接到处理设备5。处理设备5通过通信路径95被连接到接口板2。
处理设备5例如是微计算机板。处理设备5包括指令存储器50。指令存储器50暂时地存储从外部计算器3接收的指令。指令存储器50例如是易失性存储设备,比如DRAM、SRAM等。处理设备5可以在指令存储器50中暂时地存储从外部计算器3接收的指令,并且然后向接口板2依次地传输指令。因而,指令存储器50按照FIFO顺序存储指令。
(第一实施例的修改示例2)
对处理设备5的使用不限于如以上描述的那样中继从外部计算器3接收的指令。如图12中所示,处理设备5可以执行由统一地解译源程序311的外部计算器3的编译器生成的可执行程序以由此向接口板2传输指令。
在这一修改示例中,外部计算器3包括程序生成单元320。在外部计算器3的CPU300具有以上编译器的功能时,CPU 300用作程序生成单元320。另外,程序生成单元320包括执行顺序评估单元32。在执行顺序评估单元32检测应当按照执行顺序被执行的指令时,程序生成单元320向用于生成和传输应当按照执行顺序被执行的指令的代码添加用于生成和传输虚指令的代码,以便生成可执行程序。外部计算器3向处理设备5传输生成的可执行程序。
另外,在这一修改示例中,处理设备5包括程序执行单元321。在处理设备5的CPU(未示出)执行从外部计算器3接收的可执行程序时,CPU用作程序执行单元321。程序执行单元321包括虚指令生成功能30和指令生成单元31。在处理设备5的CPU执行可执行程序时,依次地生成和向接口板2传输指令。这时,生成和在应当按照执行顺序被执行的指令之间插入虚指令。也就是说,在处理设备5的CPU执行可执行程序时,CPU用作指令生成功能30和指令生成单元31。
注意,处理设备5可以在接收可执行程序时没有立即地执行它,并且代之以可以在处理设备5的存储设备中存储可执行程序并且在任意定时执行它。通过这样做,可以通过仅将处理设备5和接口板2连接到多个模块4而没有将外部计算器3连接到它们来控制它们。因此,有可能消除由多个模块4组成的配件的操作范围的限制。例如,在外部计算器3借助线缆被连接到接口板2时,存在线缆的长度对配件的操作范围的限制。在另一方面,在仅处理设备5(例如,微计算机板)和接口板2被连接到配件时,由于处理设备5和接口板2小于外部计算器3(例如,PC),所以有可能与被装配在配件上的处理设备5和接口板2一起操作配件而没有操作范围的限制。
第二实施例
接着,将描述第二实施例。在以下描述中,将如适当的那样省略与在第一实施例中的内容相同的内容。将参照图13描述根据第二实施例的模块控制系统1的接口板2和外部计算器3的配置。根据第二实施例的接口板2除了被包括在根据第一实施例的接口板2中的部件之外还包括溢出检测单元24。
溢出检测单元24检测总线指令缓冲器22a至22c中的每个总线指令缓冲器中的溢出。在溢出检测单元24检测到总线指令缓冲器22a至22c中的至少一个总线指令缓冲器中的溢出时,溢出检测单元24向外部计算器3传输通知信号,以便向外部计算器3通知检测到溢出。
外部计算器3的虚指令生成功能30和指令生成单元31响应于来自接口板2的通知信号来中止生成和传输指令。外部计算器3可以例如通过重置接口板2来恢复接口板2,并且然后恢复传输指令。
如以上描述的那样,在第二实施例中,溢出检测单元24检测总线指令缓冲器22的溢出并且向作为指令的输入源的外部计算器3通知该检测。通过这样做,外部计算器3可以响应于通知来防止操作在接口板2的总线指令缓冲器22a至22c溢出时继续。因此,有可能防止操作在异常出现时继续。
(第二实施例的修改示例1)
虽然至此已经描述了其中接口板2包括检测总线指令缓冲器22a至22c的溢出的溢出检测单元24的示例,但是它不限于此。接口板2可以包括检测总线指令缓冲器22a至22c的缓冲器已满(检测总线缓冲器22已满)的缓冲器已满检测单元,取代溢出检测单元24。
在这一修改示例1中,在缓冲器已满检测单元检测到总线指令缓冲器22a至22c中的至少一个总线指令缓冲器已满时,缓冲器已满检测单元向外部计算器3传输通知信号,以便向外部计算器3通知检测到缓冲器已满。外部计算器3的虚指令生成功能30和指令生成单元31响应于来自接口板的通知信号中止生成和传输指令。另外,在化解总线指令缓冲器22a至22c的缓冲器已满时,缓冲器已满检测单元可以取消向外部计算器3传输通知信号。在这一情况下,外部计算器3的虚指令生成功能30和指令生成单元31可以在取消通知信号从接口板2的传输时恢复生成和传输指令。
根据这一修改示例,有可能防止接口板2的总线指令缓冲器22a至22c溢出。因此,有可能防止控制在异常出现时继续。
(第二实施例的修改示例2)
在第二实施例中,如图14中所示,模块控制系统1可以用与图11中所示的示例相似的方式将外部计算器3连接到接口板2而处理设备5介于它们之间。
在这一情况下,溢出检测单元24向处理设备5传输通知信号。处理设备5响应于来自接口板2的通知信号中止传输被积累在指令存储器50中的指令。注意,以与修改示例1相似的方式,可以包括缓冲器已满检测单元,取代溢出检测单元24。
另外,以与图12中所示的示例相似的方式,可以用在处理设备5执行由统一地解译源程序311的外部计算器3的编译器生成的可执行程序时向接口板2传输指令这样的方式配置模块控制系统1。在这一情况下,可以在可执行程序中包括用于响应于来自接口板2的通知信号中止指令的传输的处理,从而使得处理设备5的CPU可以响应于通知信号中止传输指令。备选地,可以在可执行程序中包括异常处理,并且在处理设备5的CPU在执行可执行程序时接收通知信号时,CPU可以例如通过在异常处理中重置接口板2来恢复接口板2,并且然后恢复指令的传输。
第三实施例
接着,将描述第三实施例。在以下描述中,将如适当的那样省略与在第一实施例和第二实施例中的内容相同的内容。
存在其中用户想要保持指令的执行顺序的以下两种主要情况。
(1)用户简单地想要保持指令的顺序
例如,如以上描述的那样,用户希望通过第一指令获取传感器值并且通过第二指令基于获取的传感器值驱动马达。
(2)用户想要按照每个控制周期分离指令
例如,在马达控制中,确定固定周期的定时以用于传感器值被采样的定时和基于控制理论向马达的指令定时。马达的控制值由采样的周期和指令的函数表示。如果周期不同于预计值,则马达不如设计的那样操作。
第一实施例和第二实施例可以实现(1),但是没有实现(2)。因此。在第三实施例中,将描述可以实现(1)和(2)二者的模块控制系统1。
将参照图15描述根据第三实施例的接口板和外部计算器的配置。根据第三实施例的接口板2与根据第一实施例的接口板2的不同在于根据第三实施例的接口板2除了被包括在根据第一实施例的接口板2中的部件之外还包括定时器25。
定时器25是向AND电路232输出通知信号以便周期地向AND电路232通知固定的周期流逝的电路。因此,在根据第三实施例从所有虚指令检测单元231a至231c输入中止信号并且从定时器25向AND电路232输入通知信号时,AND电路232向所有指令检测单元231a至231c输出清除信号。在另一方面,如果没有向AND电路232输入来自虚指令检测单元231a至231c的中止信号和来自定时器25的中止信号中的至少一个中止信号,则AND电路232不向虚指令检测单元231a至231c输出清除信号。
更具体而言,定时器25每当固定周期的时间流逝时向AND电路232输出其电平对于固定时间上升至高电平的脉冲信号。因而,这一脉冲信号(高电平信号)对应于通知信号。
在从所有虚指令检测单元231a至231c和定时器25输入高电平信号时,AND电路232向所有虚指令检测单元231a至231c输出高电平信号。在另一方面,在从虚指令检测单元231a至231c和定时器25中的至少一个输入低电平信号时,AND电路232向所有虚指令检测单元231a至231c输出低电平信号。注意,已经在第一实施例中描述了总线指令缓冲器22a至22c和虚指令检测单元231a至231c的依赖于输入信号是否为高电平或者低电平的操作。
接着,将参照图16描述根据第三实施例的指令的执行顺序。参照图16,以与根据第一实施例在图4中所示示例的方式相似的方式,将描述其中外部计算器3的指令生成单元31将指令A至F按照这一顺序生成的示例。注意,定时器25输出通知信号的周期是五单位时间,并且指示“时间5”和“时间10”。由于总线91至93从“时间1”到“时间3”的状态与图4中所示的状态相同,所以将省略其描述。
(时间4)
从所有总线指令缓冲器22a至22c传输的指令是虚指令。然而,定时器25尚未向定时调整功能23通知固定周期A的时间流逝。因而,定时调整功能23中止传输虚指令A的总线指令缓冲器22a至22c的操作。
(时间5)
定时器25向定时调整功能23通知固定周期的时间流逝。因此,在从所有总线指令缓冲器22a至22c传输的指令是虚指令A,并且从定时器25传输通知时,定时调整功能23恢复总线指令缓冲器22a至22c的操作。这时,总线指令缓冲器22a至22c丢弃虚指令A。
因此,向总线91传输被存储在总线指令缓冲器22a中的虚指令。总线指令缓冲器22b向总线92传输指令D。总线指令缓冲器22c也向总线93传输指令E。
(时间6)至(时间9)
向总线92传输被存储在总线指令缓冲器22b中的虚指令B。向总线93传输被存储在总线指令缓冲器22c中的虚指令B。虽然从所有总线指令缓冲器22a至22c传输的指令是虚指令B,但是定时器25尚未向定时调整功能23传输通知。定时调整功能23中止传输虚指令B的总线指令缓冲器22a至22c的操作。
(时间10)
定时器25向定时调整功能23通知固定周期的时间流逝。因此,在从所有总线指令缓冲器22a至22c传输的指令是虚指令B,并且从定时器25传输通知时,定时调整功能23恢复总线指令缓冲器22a至22c的操作。这时,总线指令缓冲器22a至22c丢弃虚指令B。然后,总线指令缓冲器22c向总线93传输指令F。被连接到总线93的模块4接收从总线指令缓冲器22c传输的指令F并且执行它。
根据第三实施例的以上模块控制系统1,模块4可以按照每个控制周期通过将定时器25的周期设置成控制周期而被控制。另外,根据第三实施例的模块控制系统1,有可能分离将在每个控制周期中被执行的指令。例如,可以在从时间5到时间9的时段中执行从虚指令A到虚指令B的指令,并且可以在从时间10起的时段中执行从虚指令B继续的指令。也就是说,可以按照在指令D和E是传感器值获取指令并且指令F是马达驱动指令时在从时间5到时间9的时段中执行传感器值获取指令并且在从时间10起的时段中执行马达驱动指令这样的方式分离和执行指令。
接着,将参照图17描述根据第三实施例的接口板2的定时调整功能23的操作。根据第三实施例的定时调整功能23的操作与根据第一实施例的定时调整功能23的操作的不同在于根据第三实施例的定时调整功能23的操作除了根据图8中所示的第一实施例的定时调整功能23的操作之外还包括步骤S36。
也就是说,定时调整功能23关于是否从所有总线指令缓冲器22a至22c输出虚指令并且定时器25的输出是一(高电平)进行评估(S34和S36)。在定时调整功能23确定从所有总线指令缓冲器22a至22c输出虚指令并且定时器25的输出是一(高电平)时(S34:是,并且S36:是),定时调整功能23指令总线指令缓冲器22a至22c丢弃虚指令(S35)。然后,总线指令缓冲器22a至22c分别恢复向总线91至93输出指令(S32)。
在另一方面,在定时调整功能23确定没有从所有总线指令缓冲器22a至22c输出虚指令或者定时器25的输出不是1(高电平)时(S34:否,或者S36:否),定时调整功能23不指令总线指令缓冲器22a至22c丢弃虚指令。
如至此描述的那样,在第三实施例中,定时调整功能23停止指令从总线指令缓冲器22(从其输出的指令已经变成虚指令)的输出,直至从所有总线指令缓冲器22a至22c输出的指令变成虚指令并且从定时器25输出通知信号。通过这样做,可以在定时器25的周期的定时执行在虚指令之后的指令。因此,模块4可以按照预定控制周期而被控制。另外,在虚指令之间的指令可以按照定时器25的每个周期而被分离地执行。也就是说,可以在每个控制周期中分离和执行指令。
(第三实施例的修改示例)
也在第三实施例中,以与图11中所示的示例相似的方式,外部计算器3可以被连接到接口板2而处理设备5介于它们之间。另外,也在第三实施例中,以与图12中所示的示例相似的方式,可以按照在处理设备5执行由统一地解译源程序311的外部计算器3的编译器生成的可执行程序时向接口板2传输指令这样的方式配置模块控制系统1。
第四实施例
接着,将描述第四实施例。在以下描述中,将如适当的那样省略与在第一实施例至第三实施例中的内容相同的内容。在第四实施例中,将描述如下配置,在该配置中可以同时解决在第二实施例中提到的溢出问题和在第三实施例中提到的控制周期的问题。
将参照图18描述根据第四实施例的接口板2和外部计算器3的配置。根据第四实施例的外部计算器3除了被包括在根据第三实施例的外部计算器3中的部件之外还包括虚指令检测单元33。
虚指令检测单元33检测在定时调整功能23检测到不同虚指令之后的指令N(N是预定正整数)。也就是说,虚指令检测单元33检测从在向接口板2传输第一虚指令时起的第N个虚指令(不包括第一虚指令)。换而言之,虚指令检测单元33检测从在开始指令的传输时起的第N+1个虚指令。
在虚指令检测单元33检测到在虚指令检测单元23检测到不同虚指令之后的虚指令N时,虚指令检测单元33中止虚指令生成功能30、指令生成单元31和执行顺序评估单元32的操作。换而言之,虚指令生成功能30和指令生成单元31中止生成和传输指令。
另外,根据第四实施例的AND电路232与根据第三实施例的AND电路232的不同是第四实施例的AND电路232向外部计算器3的虚指令检测单元33而不是仅向虚指令检测单元231a至231c传输清除信号。
虚指令检测单元33响应于清除信号从AND电路232的接收来恢复虚指令生成功能30、指令生成单元31和执行顺序评估单元32的操作。换而言之,虚指令生成功能30和指令生成单元31恢复生成和传输指令。
以这一方式,在定时调整功能23等待第x个虚指令的输出时,外部计算器3停止传输从第x+N个虚指令继续的指令。因此,在总线指令缓冲器22a至22c中仅存储从第x个虚指令起直至第x+N个虚指令传输的指令。因此,有可能控制被存储在总线指令缓冲器22a至22c中的指令的数目,以由此防止总线指令缓冲器22a至22c溢出。
注意,在第一检测之后,虚指令检测单元33可以首先恢复虚指令生成功能30、指令生成单元31和执行顺序评估单元32的操作,并且在虚指令检测单元33检测到向接口板2传输的下一虚指令时,虚指令检测单元33可以中止虚指令生成功能30、指令生成单元31和执行顺序评估单元32的操作。由于已经首先传输直至第N+1个虚指令的指令,所以通过为每个虚指令交替地重复传输中止和传输恢复,可以将总线指令缓冲器22a至22c维持在如下状态中,在该状态中在其中存储从第x个虚指令起直至第x+N个虚指令传输的指令。
接着,将参照图19描述根据第四实施例的指令的执行顺序。参照图19,以与根据第三实施例的图16中所示的示例的方式相似的方式,将描述其中外部计算器3的指令生成单元31将指令A至F按照这一顺序生成的示例。注意,假设N是一以便简化描述。
如图19中所示,虽然总线91至93的状态与根据第三实施例的图16的示例中所示的状态相同,但是通信路径90的状态不同于第三实施例的状态。如图16中所示,在检测到第二(第N+1个)虚指令时,外部计算器3中止生成和传输指令。因此,没有在通信路径90中完成虚指令B的传输。如以上描述的那样,继续通信路径90的这一状态,直至向所有总线91至93传输虚指令A和直至从定时器25输出脉冲信号的“时间5”。
因此,中止指令向总线92和93的传输,直至向总线91传输虚指令A。然而,分别在与总线92和93对应的总线指令缓冲器22b和22c中仅存储在虚指令A与B之间生成的指令。因此,有可能防止总线指令缓冲器22b和22c溢出。
如以上描述的那样,在第四实施例中,虚指令检测单元33在向接口板2输入预定数目的虚指令时中止向接口板2输出指令。在从所有总线指令缓冲器22a至22c输出的指令是虚指令并且从定时器25输出通知信号时,定时调整功能23向外部计算器3输出清除信号。然后,虚指令检测单元33响应于通知信号从定时调整功能3的输出来恢复指令的中断的输出。
因此,被存储在总线指令缓冲器22a至22c中的指令的数目不限于从第一虚指令起的虚指令的预定数目。因此,有可能控制被存储在总线指令缓冲器22a至22c中的指令的数目,以由此防止总线指令缓冲器22a至22c溢出。
(第四实施例的修改示例)
也在第四实施例中,如图20中所示,以与图11中所示的示例相似的方式,可以按照外部计算器3被连接到接口板2而处理设备5介于它们之间这样的方式配置模块控制系统1。
在这一情况下,如图20中所示,处理设备5而不是外部计算器3可以包括虚指令检测单元33。在虚指令检测单元33检测到在定时调整功能23检测到不同虚指令之后的虚指令N时,处理设备5中止传输被积累在指令存储器50中的指令。另外,处理设备5在虚指令检测单元33接收清除信号时恢复传输被积累在指令存储器50中的指令。
另外,也在第四实施例中,以与图12中所示的示例相似的方式,可以按照在处理设备5执行由统一地解译源程序311的外部计算机3的编译器生成的可执行程序时向接口板2传输指令这样的方式配置模块控制系统1。在这一情况下,可以在可执行程序中包括用于在定时调整功能23检测到不同虚指令之前的虚指令N时中止指令的传输的处理,从而使得处理设备5的CPU响应于虚指令N在定时调整功能23检测到不同虚指令之前的传输来中止传输指令。另外,可以在可执行程序中包括用于响应于来自接口板2的清除信号恢复指令的传输的处理,从而使得处理设备5的CPU可以响应于清除信号恢复传输指令。作为根据第四实施例的修改示例,可以运用如下配置,在该配置中,接口板2不包括定时器25(根据第一实施例的配置还包括虚指令检测单元33)。
第五实施例
接着,将描述第五实施例。在以下描述中,将如适当的那样省略与在第一实施例至第四实施例中的内容相同的内容。
如以上描述的那样,存在以下两种情况,其中:(1)用户简单地想要保持指令的顺序,以及(2)用户想要按照每个控制周期分离指令。考虑到配件(模块4)的实际操作,经常组合(1)和(2)。也就是说,存在许多如下情况,其中用户想要在某个定时实现(1),并且用户想要在另一定时也实现(2)。因此,在第五实施例中,将描述一种用于实现控制的方法,其中组合(1)和(2)。
如图21中所示,根据第五实施例的接口板2与根据第四实施例的接口板2的不同在于根据第五实施例的接口板2包括顺序指令检测单元211、周期指令检测单元212和OR电路213,取代被包括在根据第四实施例的接口板2中的虚指令检测功能21。
在向传输控制功能20输入的命令是顺序指令时,顺序指令检测单元211向OR电路213输出广播指令信号。在向传输控制功能20输入的指令是周期指令时,周期指令检测单元212向OR电路213输出广播指令信号。
OR电路213将通过将从顺序指令检测单元211和周期指令检测单元212输入的信号OR而生成的信号输出给被包括在传输控制功能20中的广播终端。换而言之,在从顺序指令检测单元211和周期指令检测单元212中的至少一个指令检测单元输入广播指令信号时,OR电路213向传输控制功能20输出广播指令信号。在另一方面,在没有从顺序指令检测单元211或者周期指令检测单元212中的任一指令检测单元数输入广播指令信号时,OR电路213不输出广播指令信号。
更具体而言,顺序指令检测单元211和周期指令检测单元212例如由以下电路实现。顺序指令检测单元211和周期指令检测单元212中的每个指令检测单元向传输控制功能20输出可以被切换成高电平或者低电平的信号。在向传输控制功能20输入顺序指令时,顺序指令检测单元211输出高电平信号。在另一方面,在没有向传输控制功能20输入顺序指令时,顺序指令检测单元211输出低电平信号。在向传输控制功能20输入周期指令时,周期指令检测单元212输出高电平信号。在另一方面,在没有向传输控制功能20输入周期指令时,周期指令检测单元212输出低电平信号。也就是说,高电平信号对应于广播指令信号。
因而,在从顺序指令检测单元211和周期指令检测单元212中的至少一个指令检测单元输入高电平信号时,OR电路213向传输控制功能20输出高电平信号。在另一方面,在从顺序指令检测单元211和周期指令检测单元212二者输入低电平信号时,OR电路213向传输控制功能20输出低电平信号。
如至此描述的那样,在第五实施例中,存在作为虚指令的顺序指令和周期指令。如在第一实施例和第二实施例中描述的那样,顺序指令在用户简单地想要按照顺序执行指令时的情况(1)下用作虚指令。如在第三和第四实施例中描述的那样,周期指令在用户想要按照每个控制周期分离指令时的情况(2)下用作虚指令。
另外,如图21中所示,根据第五实施例的接口板2与根据第四实施例的接口板2的不同在于根据第五实施例的接口板2包括虚指令评估单元233a至233c,取代被包括在根据第四实施例的接口板2中的虚指令检测单元231a至231c。根据第五实施例的接口板2与根据第四实施例的接口板2的另一不同在于根据第五实施例的接口板2包括AND电路234和235、OR电路236以及选择电路237,取代被包括在根据第四实施例的接口板2中的AND电路232。虚指令评估单元233a至233c中的每个虚指令评估单元包括顺序指令检测单元2331、周期指令检测单元2332和OR电路2333。
虚指令评估单元233a至233c中的每个虚指令评估单元分别监视从相应的总线指令缓冲器22a至22c输出的指令,并且检测虚指令(顺序指令和周期指令)的输出。虚指令评估单元233a监视总线指令缓冲器22a,虚指令评估单元233b监视总线指令缓冲器22b,并且虚指令评估单元233c监视总线指令缓冲器22c。
在从总线指令缓冲器22a输出顺序指令或者周期指令时,虚指令评估单元233a向总线指令缓冲器22a输出中止信号。在从总线指令缓冲器22b输出顺序指令或者周期指令时,虚指令评估单元233b向总线指令缓冲器22b输出中止信号。在从总线指令缓冲器22c输出顺序指令或者周期指令时,虚指令评估单元233c向总线指令缓冲器22c输出中止信号。另外,在从总线指令缓冲器22a至22c输出顺序指令时,相应的虚指令评估单元233a至233c向AND电路234输出中止信号。在从总线指令缓冲器22a至22c输出周期指令时,相应的虚指令评估单元233a至233c向OR电路236输出中止信号。
更具体而言,在从总线指令缓冲器22向虚指令评估单元233a至233c输出顺序指令时,对应顺序指令检测单元2331向对应OR电路2333输出中止信号。另外,在从总线指令缓冲器22输出周期指令时,对应周期指令检测单元2332向对应OR电路2333和OR电路236输出中止信号。
OR电路2333将通过将从顺序指令检测单元2331和周期指令检测单元2332输入的信号OR而生成的信号输出给对应总线指令缓冲器22和AND电路234。换而言之,在从顺序指令检测单元2331和周期指令检测单元2332中的至少一个指令检测单元输入中止信号时,OR电路2333向OR电路2333和OR电路236输出中止信号。在另一方面,在没有从顺序指令检测单元2331和周期指令检测单元2332中的任一指令检测单元输入中止信号时,OR电路2333不输出中止信号。
更具体而言,顺序指令检测单元2331、周期指令检测单元2332和OR电路2333例如由以下电路实现。顺序指令检测单元2331和周期指令检测单元2332中的每个指令检测单元向传输控制功能20输出可以被切换成高电平和低电平的信号。在从对应总线指令缓冲器22输出顺序指令时,顺序指令检测单元2331输出高电平信号。在另一方面,在没有从对应总线指令缓冲器22输出顺序指令时,顺序指令检测单元2331输出低电平信号。在从对应总线指令缓冲器22输出顺序指令时,顺序指令检测单元2332输出高电平信号。在另一方面,在没有从对应总线指令缓冲器22输出顺序指令时,顺序指令检测单元212输出低电平信号。也就是说,高电平信号对应于中止信号。
因而,在从顺序指令检测单元2331和周期指令检测单元2332中的至少一个指令检测单元输入高电平信号时,OR电路2333向对应总线指令缓冲器和AND电路234输出高电平信号。在另一方面,在从顺序指令检测单元2331和周期指令检测单元2332二者输入低电平信号时,OR电路2333向对应总线指令缓冲器和AND电路234输出低电平信号。
AND电路234将通过将从虚指令检测单元233a至233c输入的信号AND而获得的信号输出给AND电路235和选择电路237。在从所有虚指令评估单元233a至233c输入中止信号时,AND电路234向AND电路235输出中止信号。这一中止信号用作清除信号。在另一方面,在没有从虚指令评估单元233a至233c中的至少一个虚指令评估单元输入中止信号时,AND电路232不向AND电路235和选择电路237输出清除信号。
AND电路235将通过将从AND电路234和定时器25输入的信号AND而生成的信号输出给选择电路237。在从AND电路234输入中止信号并且从定时器25输入通知信号时,AND电路235向选择电路237输出清除信号。在另一方面,在没有输入来自AND电路234和清除信号和来自定时器25的通知信号中的至少一个信号时,AND电路235不向选择电路237输出清除信号。
OR电路236将通过将从虚指令评估单元233a至233c输入的信号AND而生成的信号输出给选择电路237的信号选择终端。在从虚指令评估单元233a至233c中的至少一个虚指令评估单元输入中止信号时,OR电路236向选择电路237输出用于选择AND电路235的清除信号的选择信号。在另一方面,在没有从虚指令评估单元233a至233c中的任何虚指令评估单元输入中止信号时,OR电路236向选择电路237输出用于选择AND电路234的清除信号的选择信号。
在从OR电路236输入用于选择AND电路234的清除信号的选择信号时,选择电路237选择从AND电路234输入的清除信号并且向虚指令评估单元233a至233c输出它。在另一方面,在从OR电路236输入用于选择AND电路235的清除信号的选择信号时,选择电路237选择从AND电路235输入的清除信号并且向虚指令评估单元233a至233c输出它。
更具体而言,AND电路234和235、OR电路236以及选择电路237例如如以下描述的那样操作。在从所有虚指令检测单元233a至233c输入高电平信号时,AND电路234向AND电路235和选择电路237输出高电平信号。在另一方面,在从虚指令检测单元233a至233c中的至少一个虚指令检测单元输入低电平信号时,AND电路234向AND电路235和选择电路237输出低电平信号。
在从AND电路234和定时器25二者输入高电平信号时,AND电路235向AND电路235和选择电路237输出高电平信号。在另一方面,在从AND电路234和定时器25中的至少一个电路输入低电平信号时,AND电路234向AND电路235和选择电路237输出低电平信号。
在从虚指令评估单元233a至233c中的至少一个虚指令评估单元输入高电平信号时,OR电路236向选择电路237输出高电平信号。在从所有虚指令评估单元233a至233c输入低电平信号时,OR电路236向选择电路237输出低电平信号。
在从OR电路236输入高电平信号时,选择电路237向虚指令评估单元233a至233c中的每个虚指令评估单元输出从AND电路235输入的信号。在另一方面,在从OR电路236输入低电平信号时,选择电路237向虚指令评估单元233a至233c中的每个虚指令评估单元输出从AND电路234输入的信号。
因而,从OR电路236输出的高电平信号对应于用于选择AND电路235的清除信号的选择信号。从OR电路236输出的低电平信号对应于用于选择AND电路234的清除信号的选择信号。从AND电路234、235和选择电路237输出的高电平信号对应于清除信号。
利用这样的配置,即使在从总线指令缓冲器22输出顺序指令和周期指令之一时,仍然有可能中止总线指令缓冲器22输出指令。此后,在来自所有总线指令缓冲器22a至22c的输出变成顺序指令或者周期指令时,可以恢复指令从总线指令缓冲器22的中止的输出。这时,在虚指令是周期指令时,仅如果定时器25传输固定周期的通知才可以恢复指令从总线指令缓冲器22的输出。在另一方面,在虚指令是顺序指令时,无论定时器25是否传输固定周期的通知都可以恢复指令从总线指令缓冲器22的输出。
因此,指令的执行顺序可以通过外部计算器3在用户简单地想要按照顺序执行的指令之间插入顺序指令而被确保。附加地,通过外部计算器3在用户希望分离预定控制周期的指令之间插入周期指令可以确保指令的执行顺序并且可以按照预定控制周期分离和执行指令。
另外,如图21中所示,根据第五实施例的外部计算器3与根据第四实施例的外部计算器3的不同在于第五实施例的外部计算器3包括周期指令检测单元34,取代被包括在根据第四实施例的外部计算器3中的虚指令检测单元33。
周期指令检测单元34检测在定时调整功能23检测到不同周期指令之前的周期指令N(N是预定正整数)。也就是说,周期指令检测单元34按照与根据第四实施例的虚指令检测单元33相似的方式操作,不同在于周期指令检测单元34仅检测周期指令而不检测作为虚指令的顺序指令。
AND电路235也向外部计算器3的周期指令检测单元34输出信号。因而,虽然已经描述了根据第四实施例的虚指令检测单元33响应于来自AND电路232的清除信号恢复虚指令生成功能30、指令生成单元31和执行顺序评估单元32的操作,但是周期指令检测单元34响应于来自AND电路235的清除信号恢复虚指令生成功能30、指令生成单元31和执行顺序评估单元32的操作。
按照与第四实施例相似的方式,因此,有可能控制被存储在总线指令缓冲器22a至22c中的指令的数目并且防止总线指令缓冲器22a至22c溢出。
接着,将参照图22描述根据第五实施例的指令的执行顺序。参照图22,将描述其中外部计算器3的指令生成单元31将指令A至G按照这一顺序生成的示例。在这一示例中,指令E和F是应当按照执行顺序被执行的指令。另外,指令C、D和G是按照固定周期被分离和执行的指令。按照与根据图19中所示的第四实施例的示例相似的方式,假设N是一以便简化描述。另外,按照与根据图19中所示的第四实施例的示例相似的方式,定时器25输出通知信号的周期是五单位时间并且指示“时间5”和“时间10”。
在这一情况下,虚指令生成功能30在指令C与D之间插入周期指令、在指令E与F之间插入顺序指令并且在指令D与G之间插入周期指令。因而,如图22中由“通信路径90中的数据”指示的那样,外部计算器3按照指令A、指令B、指令C、周期指令A、指令D、指令E、顺序指令、指令F和周期指令B的顺序通过通信路径90向接口板2逐个传输指令。在这一情况下,由于从“时间1”到“时间4”的状态与在图19中所示的示例中的状态相同,不同在于虚指令被周期指令取代,所以省略其描述。
(时间5)
定时器25向定时调整功能23通知固定周期的时间流逝。因此,在从所有总线指令缓冲器22a至22c传输的指令是周期指令并且从定时器25传输通知时,定时调整功能23恢复总线指令缓冲器22a至22c的操作。
然后,向总线91传输被存储在总线指令缓冲器22a中的顺序指令。向总线92传输被存储在指令缓冲器22b中的指令D。总线指令缓冲器22c也向总线93传输指令E。
(时间6)
向总线92传输被存储在总线指令缓冲器22b中的顺序指令。向总线93传输被存储在总线指令缓冲器22c中的顺序指令。因此,从所有总线指令缓冲器22a至22c传输的指令是顺序指令。因而,虽然定时器25尚未向定时调整功能23传输通知,但是定时调整功能23恢复总线指令缓冲器22b和22c的操作。
(时间7)
向总线91传输被存储在总线指令缓冲器22a中的周期指令。在另一方面,向总线92传输被存储在已经恢复了其操作的总线指令缓冲器22b中的周期指令。总线指令缓冲器22c也向总线93传输指令F。
(时间8)到(时间9)
向总线93传输被存储在总线指令缓冲器22c中的周期指令。虽然从所有总线指令缓冲器22a至22c传输的指令是周期指令,但是定时器25尚未向定时调整功能23传输通知。定时调整功能23的虚指令评估单元233a至233c中止传输周期指令的总线指令缓冲器22a至22c的操作。
(时间10)
定时器25向定时调整功能23通知固定周期的时间流逝。因此,在从所有总线指令缓冲器22a至22c传输的指令是周期指令并且从定时器25传输通知时,定时调整功能23恢复总线指令缓冲器22a至22c的操作。然后,总线指令缓冲器22b向总线92传输指令G。
根据第五实施例的上述模块控制系统1,如以上所示,有可能组合如下两种情况,其中:(1)用户简单地想要保持指令的顺序,以及(2)用户想要按照每个控制周期分离指令。例如,在指令D是传感器值获取指令并且指令G是马达驱动指令时,按照每个控制周期被执行的指令可以被分离成传感器值获取指令和马达驱动指令。另外,如同指令E和F,可以简单地按照顺序执行指令。
接着,将参照图23描述根据第五实施例的接口板2的定时调整功能23的操作。根据第五实施例的定时调整功能23的操作还包括步骤S36至S40,取代在根据图17中所示的第三实施例的定时调整功能23的操作的步骤S33之后的步骤S34至S35。
也就是说,定时调整功能23关于是否从所有总线指令缓冲器22a至22c输出顺序指令进行评估(S37)。在定时调整功能23确定从所有总线指令缓冲器22a至22c输出虚指令时(S37:是),定时调整功能23指令总线指令缓冲器22a至22c丢弃顺序指令(S41)。然后,总线指令缓冲器22a至22c分别恢复向总线91至93输出指令(S32)。在另一方面,在定时调整功能23确定没有从所有总线指令缓冲器22a至22c输出顺序指令时(S37:否),定时调整功能23不指令总线指令缓冲器22a至22c丢弃顺序指令。
接着,定时调整功能23关于是否从所有总线指令缓冲器22a至22c输出周期指令并且定时器25的输出是一(高电平)进行评估(S38和S39)。在定时调整功能23确定从所有总线指令缓冲器22a至22c输出周期指令并且定时器25的输出是一(高电平)时(S38:是,并且S39:是),定时调整功能23指令总线指令缓冲器22a至22c丢弃周期指令(S40)。然后,总线指令缓冲器22a至22c分别恢复向总线91至93输出指令(S32)。在另一方面,在定时调整功能23确定没有从所有总线指令缓冲器22a至22c输出虚指令或者定时器25的输出不是一(高电平)时(S38:否,或者S39:否),定时调整功能23不指令总线指令缓冲器22a至22c丢弃周期指令。
如以上描述的那样,在第五实施例中,在虚指令是顺序指令时,定时调整功能23停止指令从总线指令缓冲器22a(从其输出的指令已经变成顺序指令)的输出,直至从所有总线指令缓冲器22a至22c输出的指令无论定时器25是否已经输出通知信号都变成顺序指令。另外,定时调整功能23停止指令从总线指令缓冲器22a(从其输出的指令已经变成周期指令)的输出,直至从所有总线指令缓冲器22a至22c输出的指令变成周期指令并且定时器输出通知信号。
通过这样做,在虚指令是顺序指令时,如在第一实施例和第二实施例中描述的那样,有可能执行在(1)用户简单地想要按照顺序执行指令时的控制,而在虚指令是周期指令时,如在第三实施例和第四实施例中描述的那样,有可能执行在(2)用户想要按照每个控制周期分离指令时的控制。因此,可以组合(1)在用户简单地想要按照顺序执行指令时的控制和(2)在用户想要按照每个控制周期分离指令时的控制。
(第五实施例的修改示例)
也在第五实施例中,按照与图11中所示的示例相似的方式,可以按照外部计算器3被连接到接口板2而处理设备5介于它们之间这样的方式配置模块控制系统1。
在这一情况下,按照与图20中所示的示例相似的方式,处理设备5而不是外部计算器3可以包括周期指令检测单元34。在周期指令检测单元34检测到在定时调整功能23检测到不同虚指令之前的虚指令N时,处理设备5中止传输被积累在指令存储器50中的指令。另外,处理设备5在周期指令检测单元34接收清除信号时恢复传输被积累在指令存储器50中的指令。
另外,也在第五实施例中,如图12中所示,可以按照在处理设备50执行由统一地解译源程序311的外部计算器3的编译器生成的可执行程序时向接口板2传输指令这样的方式配置模块控制系统1。在这一情况下,可以在可执行程序中包括用于在定时调整功能23检测到不同周期指令之前的周期指令N时中止指令的传输的处理,从而使得处理设备5的CPU可以响应于在定时调整功能23检测到不同周期指令之前的周期指令N的传输来恢复传输指令。此外,可以在可执行程序中包括用于响应于来自接口板2的清除信号来恢复指令的传输的处理,从而使得处理设备5的CPU可以响应于清除信号恢复传输指令。
第六实施例
接着,将描述第六实施例。在以下描述中,将如适当的那样省略与在第一实施例至第五实施例中的内容相同的内容。
在第五实施例中,顺序指令和周期指令被预备作为虚指令。在顺序指令和周期指令按照通过传输控制功能20从外部计算器3传输它们的顺序正常地被分发给所有总线指令缓冲器22a至22c时,顺序指令和周期指令不会被混合为在相同时段从总线指令缓冲器22a至22c输出的虚指令。然而,如果由于功率噪声等而存在处理误差,则顺序指令和周期指令可以被混合作为在相同时段从总线指令缓冲器22a至22c输出的虚指令。在第五实施例中在这一情况下存在的问题在于不会取消指令从总线指令缓冲器22a至22c的中止的输出,并且接口板2将冻结。为此,在第六实施例中,将描述一种用于避免这一冻结的方法。
如图24中所示,根据第六实施例的接口板2与根据第五实施例的接口板2的不同是根据第六实施例的接口板2除了被包括在根据第五实施例的接口板2中的部件还包括OR电路238和AND电路239。
在第六实施例中,虚指令评估单元233a至233c的顺序指令检测单元2331中的每个顺序指令检测单元也向OR电路238输出信号。另外,OR电路236也向AND电路239输出信号。
也就是说,虚指令评估单元233关于从对应总线指令缓冲器22输出的指令是否为顺序指令或者周期指令进行评估。在指令是顺序指令时,虚指令评估单元233向OR电路238输出中止信号,而在指令是周期指令时,虚指令评估单元233向OR电路236输出中止信号。
OR电路238将通过将从相应的虚指令评估单元233a至233c的顺序指令检测单元2331输入的信号OR而生成的信号输出给AND电路239。在从虚指令评估单元233a至233c中的至少一个虚指令评估单元输入通知信号时,OR电路238向AND电路239输出通知信号。在另一方面,在没有从虚指令评估单元233a至233c中的任何虚指令评估单元输入通知信号时,OR电路238不向AND电路239输出通知信号。
AND电路239将通过将从OR电路236和238输入的信号AND而生成的信号传输给外部计算器3。在从OR电路236和238二者输入通知信号时,AND电路239向外部计算器3输出通知信号。在另一方面,在没有从OR电路236和238中的至少一个OR电路输入通知信号时,AND电路239不向外部计算器3输出通知信号。也就是说,AND电路239在虚指令评估单元233a至233c关于虚指令是否为顺序指令或者周期指令的评估的结果不一致时向外部计算器3传输通知信号。
更具体而言,OR电路238和AND电路239例如如以下描述的那样操作。在从虚指令评估单元233a至233c中的至少一个虚指令评估单元输入高电平信号时,OR电路238向AND电路239输出高电平信号。在另一方面,在从所有虚指令评估单元233a至233c输入低电平信号时,OR电路238向AND电路239输出低电平信号。
在从OR电路236和238二者输入高电平信号时,AND电路235向外部计算器3输出高电平信号。在另一方面,在从OR电路236和238中的至少一个OR电路输入低电平信号时,AND电路235向外部计算器3输出低电平信号。因而,高电平信号用作通知信号。
来自AND电路239的通知信号用作用于向外部计算器3通知异常的信号。以这一方式,在第六实施例中,在虚指令评估单元233a至233c的评估结果不一致时向外部计算器3通知异常。
以这一方式,外部计算器3可以例如响应于来自接口板2的AND电路239的通知信号来重置接口板2。因此,在其中使得指令的输出等待直至所有虚指令评估单元233a至233c评估顺序指令或者周期指令被输出的配置中,接口板2不会冻结。
(第六实施例的修改示例)
也在第六实施例中,按照与第五实施例相似的方式,外部计算器3可以被连接到接口板2而处理设备5介于它们之间。另外,处理设备5而不是外部计算器3可以包括周期指令检测单元34。另外,处理设备5可以执行由统一地解译源程序311的外部计算器3的编译器生成的可执行程序。
第七实施例
接着,将描述第七实施例。在以下描述中,将如适当的那样省略如在第一实施例中的内容相同的内容。将参照图25描述根据第七实施例的模块控制系统1的接口板2和外部计算器3的配置。根据第七实施例的接口板2除了被包括在根据第一实施例的接口板2中的部件之外还包括错误信号检测单元26和指令发出信息收集单元27。
错误信号检测单元26监视总线91至93。在错误信号检测单元26检测到在总线91至93中出现的错误时,错误检测单元26向指令发出信息收集单元27传输通知信号,以便向指令发出信息收集单元27通知检测到错误。例如,在错误分组按照总线91至93的通信标准被定义时,错误信号检测单元26在检测到这样的错误时确定错误已经出现。备选地,在错误分组没有按照总线91至93的通信标准被定义时,错误信号检测单元26可以在模块4检测到通信中的异常时传输用户定义的错误分组以由此在检测到错误分组时确定错误已经出现。
指令发出信息收集单元27响应于来自错误信号检测单元26的通知信号来收集被存储在总线指令缓冲器22a至22c中的与指令有关的信息。可以从所有总线指令缓冲器22a至22c或者仅从与其中错误信号检测单元26检测到异常的总线对应的总线指令缓冲器22收集信息。然后,指令发出信息收集单元27向外部计算器3传输通知信号以便向外部计算器3通知错误。这一通知信号包括收集的信息。这一信息例如指示被存储在总线指令缓冲器22a至22c中的指令的类型和数目。
如以上描述的那样,在第七实施例中,错误信号检测单元26检测在总线指令缓冲器22a至22c与该组模块4之间的总线91至93中的异常。在错误信号检测单元26检测到异常时,指令发出信息收集单元27收集被存储在总线指令缓冲器22a至22c中的与指令有关的信息。
通过这样做,外部计算器3可以识别其中在错误已经出现时传输的指令的种类。因此,外部计算器3有可能例如重置接口板2的总线指令缓冲器22a至22c,并且然后执行恢复处理,比如从其中错误已经出现的指令重传指令。
(第七实施例的修改示例)
也在第七实施例中,按照与图11中所示的示例相似的方式,可以用外部计算器3被连接到接口板2而处理设备5介于它们之间这样的方式配置模块控制系统1。
在这一情况下,指令发出信息收集单元27也向处理设备5(未示出)传输通知信息。处理设备5响应于来自指令发出信息收集单元27的通知信号中止传输被积累在指令存储器50中的指令。然后,外部计算器3可以比如通过重置接口板2的总线指令缓冲器22a至22c和处理设备5的指令存储器50并且然后从其中错误已经出现的指令重传指令来执行恢复处理。
另外,按照与图12相似的方式,可以按照在处理设备5执行由统一地解译源程序311的外部计算器3的编译器生成的可执行程序时向接口板2传输指令这样的方式配置模块控制系统1。在这一情况下,可以在可执行程序中包括用于响应于来自接口板2的通知信号来中止指令的传输的处理,从而使得处理设备5的CPU可以响应于通知信号中止传输指令。备选地,可以在可执行程序中包括异常处理,并且在处理设备5的CPU在执行可执行程序时接收通知信号时,CPU可以例如通过在异常处理中重置接口板2的总线指令缓冲器22a至22c并且然后从其中错误已经出现的指令重传指令来执行恢复处理。
第八实施例
接着将描述第八实施例。在以下描述中,将如适当的那样省略与如在第一实施例中的内容相同的内容。
将参照图26描述根据第八实施例的模块控制系统1的接口板2和外部计算器3的配置。如图26中所示,根据第八实施例的接口板2与根据第一实施例的接口板2的不同是根据第八实施例的接口板2除了被包括在根据第一实施例的接口板2中的部件之外还包括触发指令检测功能28和OR电路214。根据第八实施例的传输控制功能20与根据第一实施例的传输控制功能20的不同是根据第八实施例的传输控制功能20除了被包括在根据第一实施例的传输控制功能20中的部件之外还包括虚指令生成单元203。
在向传输控制功能20输入的指令是触发指令时,触发指令检测功能28向虚指令生成单元203和OR电路214输出广播指令信号,而在输入指令不是触发指令时,触发指令检测功能28不输出广播指令信号。
OR电路214将通过将从虚指令检测功能21和触发指令检测功能28输入的信号OR而生成的信号输出给指令指派单元201和指令分发单元202。也就是说,在第八实施例中,向OR电路214而没有向在第一实施例中从虚指令检测功能21输出的信号被输入到的指令指派单元201和指令分发单元202输入从虚指令检测功能21输出的信号。
在从虚指令检测功能21和触发指令检测功能28中的至少一个指令检测功能输入广播信号时,OR电路214向指令指派单元201和指令分发单元202输出广播信号。在另一方面,在没有从虚指令检测功能21或者触发指令检测功能28输入广播指令信号时,OR电路214不向指令指派单元201和指令分发单元202输出广播指令信号。
在从触发指令检测功能28输入广播指令信号时,虚指令生成单元203生成虚指令并且将它输出给指令指派单元201和指令分发单元202。也就是说,从触发指令检测功能28到虚指令生成单元203的广播指令信号用作虚指令生成指令信号。注意,在这一情况下,指令分发单元202向总线指令缓冲器22a至22c分发从虚指令生成单元203输入的虚指令,并且然后向缓冲器22a至22c分发从外部计算器3输入的触发指令。
更具体而言,由以下电路实现的虚指令检测功能21和触发指令检测功能28中的每个指令检测功能向OR电路214输出可以被切换成高电平或者低电平的信号。在向传输控制功能20输入的指令是触发指令时,触发指令检测功能28向OR电路214输出高电平信号。在另一方面,在向传输控制功能20输入的指令不是触发指令时,触发指令检测功能28向OR电路214输出低电平信号。
在从虚指令检测功能21和触发指令检测功能28中的至少一个指令检测功能输入的信号是高电平信号时,OR电路214向指令指派单元201和指令分发单元202输出高电平。在另一方面,在从虚指令检测功能21和触发指令检测功能28二者输入的信号是低电平信号时,OR电路214向指令指派单元201和指令分发单元202输出低电平信号。注意,如在第一实施例中描述的那样,这些信号被原样输入给指令分发单元202,并且这些信号由反相器209反相,并且然后被输入到指令指派单元201。在从触发指令检测功能28输入高电平信号时,虚指令生成单元203生成虚指令。也就是说,高电平信号对应于广播指令信号。
利用这样的配置,在从外部计算器3传输触发指令信号时,可以在所有总线指令缓冲器22a至22c中存储虚指令,并且可以在其中在虚指令之后存储触发指令。如在以上第一实施例至第七实施例中描述的那样,通过使用虚指令使来自总线指令缓冲器22a至22c的输出等待来确保指令的顺序。因而,同时向总线91至93传输在虚指令之后的指令,从而使得可以对准指令的执行定时。因此,在第八实施例中,在外部计算器3的指令生成单元31传输其由模块4的执行定时应当被对准的指令作为触发指令时,可以对准指令的执行定时。
接着,将参照图27描述根据第八实施例的指令的执行顺序。参照图27,将描述其中外部计算器3的指令生成单元31将指令A至C、触发指令以及指令D和F按照这一顺序生成的示例。在这一示例中,指令D和F是应当按照执行顺序被执行的指令。
在这一情况下,外部计算器3的虚指令生成功能30在指令D与F之间插入虚指令。因而,如由图4中的“通信路径90中的数据”指示的那样,外部计算器3按照指令A、指令B、指令C、触发指令、指令D、指令E、虚指令B和指令F的顺序通过通信路径90向接口板2逐个传输指令。
在这一情况下,虚指令生成单元203在指令C与触发指令之间插入虚指令。由于总线91至93从“时间1”到“时间4”的状态与图4中所示的状态相同,所以将省略其描述。
当在“时间4”恢复总线指令缓冲器22b和22c的操作时,所有相应的总线指令缓冲器22a至22c分别向总线91至93传输被存储在虚指令之后的触发指令。因此,触发指令分别由被连接到总线91至93的模块4同时执行。
由于从“时间6”继续的操作与图4中所示的示例中的从“时间5”起的操作相同,所以将省略其描述。如以上描述的那样,在第八实施例中,有可能通过使指令等待虚指令来同时执行触发指令,以便防止应当按照执行顺序被执行的指令的追赶。
接着,将参照图28描述根据第八实施例的接口板2的传输控制功能20、虚指令检测功能21和触发指令检测功能28的操作。根据第八实施例的接口板2的操作与根据图2中所示的第一实施例的接口板2的不同是根据第八实施例的接口板2的操作除了根据第一实施例的接口板2的操作之外还包括步骤S24至S26。
也就是说,触发指令检测功能28关于从外部计算器3接收的指令是否为触发指令进行评估(S24)。在触发指令检测功能28确定从外部计算器3接收的指令是触发指令时(S24:是),虚指令生成单元203生成虚指令并且在触发指令之前插入它(S25)。传输控制功能20控制指令分发单元202以向所有总线分发虚指令和触发指令(S26)。
在从外部计算器接收的指令不是触发指令而是虚指令时(S24:否,S21:是),执行步骤S23。在从外部计算器3接收的指令既不是触发指令也不是虚指令时(S24:否,S21:否),执行步骤S22。
如至此描述的那样,在第八实施例中,在输入指令是触发指令时,传输控制功能20在触发指令之前插入虚指令并且将虚指令与触发指令一起分发给所有总线指令缓冲器22a至22c。
以这一方式,通过使用如下机制来向所有总线91至93传输触发指令,在该机制中使指令的输出等待,直至从所有总线指令缓冲器22a至22c的输出变成虚指令,可以同时执行触发指令。
(第八实施例的修改示例1)
也在第八实施例中,按照与图11中所示的示例相似的方式,外部计算器3可以被连接到接口板2而处理设备5介于它们之间。另外,也在第三实施例中,按照与图112中所示的示例相似的方式,可以按照在处理设备5执行由统一地解译源程序311的外部计算器3的编译器生成的可执行程序时向接口板2传输指令这样的方式配置模块控制系统1。
(第八实施例的修改示例2)
在以上描述中,虽然虚指令由传输控制功能20生成和插入以便对准触发指令的执行定时,但是它不限于此。在外部计算器3中,虚指令生成功能30可以生成虚指令并且在触发指令之前插入它。通过这样做,在传输控制功能20中不再需要虚指令生成单元203。
第九实施例
接着,将描述作为模块控制系统1的更具体配置示例的第一配置示例作为第九实施例。
如图29至图31中所示,根据第九实施例的模块控制系统1包括接口板2、外部计算器3、多个模块4、处理设备5和服务器6。
如图29中所示,服务器6包括社区提供单元61、在线商店提供单元62和存储单元63。服务器6经由因特网被连接到外部计算器3。
社区提供单元61向外部计算器提供因特网社区服务。在线商店提供单元62向外部计算器3提供在线商店服务。
在存储单元63中存储模块数据601、设计数据602等。也就是说,存储单元63包括可以存储数据601和602的存储设备。存储设备例如是存储器、硬盘等。模块数据601是模块4的数据。模块数据601例如指示模块4的形状、重量和物理特性。模块数据条601的数目与模块4的类型的数目相同。设计数据602指示由多个模块4构建的配件的虚拟模型。
在外部计算器3的用户使用由社区提供单元61提供的社区时,用户可以与服务器6上的其他用户共享由用户自己创建的设计数据602。另外,外部计算器3的用户可以在由在线商店提供单元62提供的在线商店上购买设计数据602、用于创建设计数据的软件、模块4等。
如图29中所示,外部计算器3包括设计功能330和USB(通用串行总线)通信功能337。设计功能330包括存储功能331、基于GUI(图形用户界面)的模块组装功能332、显示功能333、物理仿真功能334、编程环境335和控制设计工具336。外部计算器3包括与这些功能331和336链接的设计功能330,以由此为用户提供用于舒适地设计配件的环境和用于操作配件的程序。
存储功能331存储从服务器3获取的模块数据601、设计数据602等。存储功能331包括可以存储数据601和602的存储设备。存储设备例如是存储器、硬盘等。
模块组装功能332提供使得用户能够虚拟地组装模块4并且在GUI上创建配件的虚拟模型的功能。在存储功能331中存储指示以这一方式创建的虚拟模型的设计数据602。用户可以通过操作外部计算器3的输入设备来创建虚拟模型。
显示功能333在三维计算机图形中显示模块4和配件的虚拟模型。更具体而言,显示功能333由外部计算器3的CPU实现从而在被包括在外部计算器3中的显示设备上显示图像。
物理仿真功能334提供通过由设计数据602指示的虚拟模型执行对配件的操作仿真的功能。物理仿真功能334用以使用构成配件的模块4的模块数据601以由此在考虑模块4的形状的情况下执行操作仿真。
编程环境335提供用于用户创建以上提到的源程序311的环境。编程环境335例如是集成开发环境。用户使用编程环境335以通过操作外部计算器3的输入设备来创建源程序311。
控制设计工具336是源程序311的用于控制多个模块4的自动生成工具。例如,控制设计工具336可以是用于基于设计数据602自动地生成源程序311的工具。
USB通信功能337实现与接口板2的与USB通信标准相符的通信。也就是说,在第九实施例中,将描述其中用于将外部计算器3连接到接口板2的通信路径90是USB总线的示例。
如图30中所示,处理设备5包括处理功能51、USB通信功能52、SPI通信功能53、电压转换器54、模拟输入/输出单元55和数字输入/输出单元56。
处理功能51集中地控制处理设备5。处理功能51包括CPU、存储器等(未示出)。在CPU执行被存储在存储器中的程序时,执行作为处理设备5的功能。例如,处理功能51通过USB通信功能52从外部计算器3接收指令。处理功能51通过SPI(串行外围接口)通信功能53向接口板2传输接收的指令。在这一情况下,被包括在处理功能51中的存储器用作指令存储器50。另外,在处理功能51用CPU执行被存储在存储器中的可执行程序时,处理功能51可以用作程序执行单元301。
USB通信功能52实现与外部计算器3的与USB通信标准相符的通信。SPI通信功能53实现与接口板2的与SPI通信标准相符的通信。也就是说,在第九实施例中,将描述其中将处理设备5连接到接口板2的通信路径95是SPI总线的示例。
电压转换器54将由电池80供应的电压转换成可以向接口板2供应的电压。Vdd输出单元541将由电压转换器54转换的电压供应给接口板2作为电源电压。Gnd输出单元543向接口板2供应接地电压。
模拟输入/输出单元55从被连接到模拟输入/输出单元55的连接器的设备接收任意模拟信号。模拟输入/输出单元55向处理功能51和接口板2输出输入模拟信号。数字输入/输出单元56从被连接到数字输入/输出单元56的连接器的设备接收任意数字信号。数字输入/输出单元56向处理功能51和接口板2输出输入数字信号。
因此,有可能通过处理设备5的连接器从外部设备向接口板2供应模拟信号和数字信号。因此,例如,在处理设备5被设置在接口板2上时,将不会中断模拟信号和数字信号从外部设备向接口板2的供应。
如图30中所示,接口板2包括传输功能200、接收功能220、SPI通信功能290、多个I2C通信功能291a至291d和连接器292a至292h。
传输功能200和接收功能220与在第一实施例至第八实施例中描述的功能相同。SPI通信功能290实现与处理设备5的与SPI通信标准相符的通信。I2C通信功能291a至291d通过连接器292a至292h实现与模块4的与I2C通信标准相符的通信。参照图30,将描述其中模块4被连接到四个连接器292a至292d的示例。在多个模块4被连接到四个连接器292a至292d时,接口板2和多个模块4内的信号线被连接以由此形成总线91至94。连接器292a至292h通常地是四管脚连接器。在这一情况下,总线91至94中的每个总线包括两个信号线、一个电源电压线和一个接地电压线。向电源电压线供应由Vdd输出单元541输出的电源电压。向接地电压线供应由Gnd输出单元542输出的接地电压。
如以上描述的那样,传输功能200可以向总线91至94指派或者分发并且然后通过传输控制功能20传输从处理设备5接收的指令。传输功能200、接收功能220、SPI通信功能290和I2C通信功能291a至291d例如由微计算机2000实现。
如图31中所示,模块4各自包括微计算机40和连接器48。如以上描述的那样,在接口板2的连接器292a至292d被连接到多个模块4的连接器48时,形成总线91至94。微计算机40用由接口板2通过对应连接器48供应的电源电压和接地电压操作。另外,微计算机40通过对应连接器通过由接口板2供应的信号接收指令并且执行它们。
可以在各种形式中运用模块4。例如,如图31中所示,模块4可以包括传感器41、AC(交流电)马达43、DC(直流电)马达44、模拟输入/输出模块45、数字输入/输出模块46和通信标准相符模块47中的一个或者多个模块。传感器41与在第一实施例中描述的传感器相同。
AC马达43由AC电源81供应的交流电驱动。DC马达44由电池80供应的直流电驱动。以这一方式,如果存在用完在模块4内通过总线91至94供应的电力的设备,则电池80和AC电源81可以直接地向这样的设备供应电力。另外,多个模块4不限于各自包括AC马达43的模块4和各自包括DC马达44的模块4的组合,其中在图31中示出了这样的组合。可以存在仅各自包括AC马达43的模块4或者仅各自包括DC马达44的模块4。另外,如图31中所示,来自AC电源81的交流电可以由AC/DC转换器82转换成直流电并且被供应给模块4内的设备(该设备是图31的示例中的模拟输入/输出模块45)。
模拟输入/输出模块45从和向外部设备输入和输出模拟信号。数字输入/输出模块46从和向外部设备输入和输出数字信号。如至此描述的那样,模块4可以被连接到外部设备并且通过向和从外部设备传输和接收任意信号来操作。
通信标准相符模块47根据任意通信标准向和从外部设备传输和接收信息。可以借助线缆或者无线地建立这一通信。如以上提到的那样,模块4可以通过向和从外部设备传输和接收信息来操作。
接着,将描述根据第九实施例的模块控制系统1的操作示例。将参照图32描述根据第九实施例的模块控制系统1的操作。控制周期的时段(例如,10毫秒)被指示为“控制时段”。
如图32中所示,在第一控制时段中在SPI通信中从处理设备5向接口板2传输传感器值获取指令A至F和马达驱动指令A至G。
如以上描述的那样,定时调整功能23使指令的输出等待,直至去往所有总线91至94的指令将变成周期指令。因此,在来自所有总线91至94的指令分别变成周期指令并且然后由模块4执行时的定时同时传输在周期指令之后的传感器值获取指令A至F和马达驱动指令A至G。
这时,无论何时必需,在SPI通信中从模块4向处理设备5传输通过传感器值获取指令A至F获取的传感器值A至F。另外,从处理设备5向外部计算器3传输这些传感器值。外部计算器3基于从模块4传输的传感器值A至F计算在第二控制周期中用于马达驱动指令A至I的指令值。
如图32中所示,在第二控制时段中在SPI通信中从处理设备5向接口板2传输周期指令、传感器值获取指令A至E和马达驱动指令A至I。
如以上描述的那样,定时调整功能23使指令的输出等待,直至去往所有总线91至94的指令将变成周期指令。因此,在周期指令分别从所有总线91至94输出并且然后由模块4执行时的定时同时传输在周期指令之后的传感器值获取指令A至E和马达驱动指令A至I。
以这一方式,使用周期指令的控制使指令能够按照每个控制周期被分离。通过反复地执行这些指令,可以控制配件(模块4)。这一控制例如适合用于基于图32中所示的传感器值的马达控制。在马达控制中,重复传感器值的获取以及马达的基于传感器值的驱动。在另一方面,使用周期指令的控制使得能够按照每个控制周期重复传感器值的获取和马达的驱动,由此实现优选马达控制。另外,如以上描述的那样,在控制时段中,通过同时执行马达驱动指令和用于获取将在下一控制时段中生成马达驱动指令时使用的传感器值的传感器值获取指令,可以通过相应的控制周期连续地驱动马达。
可以如在根据第九实施例的模块控制系统1中那样在其中嵌入开发环境的集成系统中实现在第一实施例至第八实施例中描述的内容而没有阻碍。
第十实施例
接着,将描述第十实施例。作为模块控制系统1的更具体配置示例的第二配置示例将被描述为第十实施例。将参照图33至35描述根据第十实施例的模块控制系统1的配置。虽然在图33中没有示出服务器6,但是明显地,根据第十实施例的模块控制系统1可以包括服务器6。
如图33中所示,根据第十实施例的外部计算器3与根据第九实施例的外部计算器3的不同在于根据第十实施例的外部计算器3除了被包括在根据第九实施例的外部计算器3中的部件之外还包括连接模块列表显示功能340。连接模块列表显示功能340通过显示功能333显示被连接到接口板2的多个模块4的列表。
如图33中所示,根据第十实施例的处理设备5与根据第九实施例的处理设备5的不同在于根据第十实施例的处理设备5除了被包括在根据第九实施例的处理设备5中的部件之外还包括I2C通信功能57、中断功能58和Vdd输出功能543。
I2C通信功能57实现与接口板2的与I2C通信标准相符的通信。也就是说,在第十实施例中,除了与SPI通信标准相符的通信路径95之外还包括通过其传输指令的通信路径。
中断功能58从接口板2接收中断信号。
Vdd输出单元543向接口板2供应由电压转换器54转换的电压作为电源电压。根据第十实施例的电压转换器54转换由电池80供应的电压并且生成第一电压和与第一电压不同的第二电压。Vdd输出单元541向接口板2供应第一电压,并且Vdd输出单元542向接口板2供应第二电压。
连接模块列表获取功能510获取被连接到接口板2的多个模块4的列表并且向外部连接器3传输指示多个模块4的列表的列表信息。因此,外部计算器3的连接模块列表显示功能340可以基于从处理设备5接收的列表信息显示多个模块4的列表。这使得用户能够容易地检查构成配件的多个模块4。
注意,连接模块列表获取功能510向多个模块4中的每个模块传输模块信息回复指令以便获取多个模块4的列表。多个模块4中的每个模块用标识自己的信息回复来自处理设备5的模块信息回复指令。这一信息例如是向模块4中的每个模块唯一地分配的模块ID。在这一情况下,多个模块4的模块ID的列表被获取作为多个模块4的列表。
例如,通过在以上提到的可执行程序中包括用于传输模块信息回复指令的处理并且处理功能51执行可执行程序来获取模块4的列表。
如图34中所示,根据第十实施例的接口板2除了被包括在根据第九实施例的接口板2中的部件之外还包括多个中断检测单元250a至250d、OR电路251、中止指令功能260、多个错误检测单元261a至261d、多个过电流检测单元262a至262d、过电流检测单元263、选择电路293和294、指派电路295和多个电压转换器296a至296d。根据第十实施例的接口板2包括RS485通信功能297,取代被包括在根据第九实施例的接口板2中的I2C通信功能291d。
多个中断检测单元250a至250d中的每个中断检测单元检测向对应总线91至94传输的中断分组。在中断检测单元250a至250d检测到中断分组时,中断检测单元250a至250d中的对应中断检测单元向OR电路251输出中断信号。OR电路251将通过将来自多个中断检测单元250a至250d的信号OR而生成的信号传输给处理设备5的中断功能58。也就是说,在从多个中断检测单元250a至250d中的至少一个中断检测单元向OR电路251输入中断信号时,OR电路251向处理设备5的中断功能58传输中断信号。例如,在模块4检测到需要紧急地应对的事件时,模块4传输中断分组。然后,在处理功能51通过中断功能58基于中断分组接收中断信号时,处理功能51可以迅速地应对事件。
在错误检测单元261a至261d检测到错误时,以及在过电流检测单元262a至262d和263检测到过电流时,中止指令功能260向处理设备5传输中止指令。响应于来自接口板2的中止指令功能260的中止指令,处理设备5执行异常处理。异常处理例如是重置接口板2、中止配件(多个模块4)等。通过这样做,可以防止配件的故障。
多个错误检测单元261a至261d中的每个错误检测单元检测向总线91至94中的对应总线传输的错误分组测作为以上提到的错误。多个过电流检测单元262a至262d中的每个过电流检测单元检测从电压转换器296a至296d中的对应电压转换器向总线91至94中的对应总线传输的信号的过电流作为以上提到的错误。过电流检测单元263检测通过选择电路293从Vdd输出单元541和543到总线91至94与电源电压一起被供应的电流的过电流作为以上提到的错误。
选择单元293选择由Vdd输出单元541供应的电压和由Vdd输出单元543供应的电压之一并且向总线91至94中的每个总线供应选择的电压作为电源电压。对电压的选择通过由处理设备5的处理功能51向选择单元293输出的信号而被切换。处理功能51根据待使用的模块4的操作电压选择适当电压。
选择单元294选择由处理设备5的I2C通信功能57传输的指令或者由接口板2的I2C通信功能291a传输的指令并且向总线91传输选择的指令。对信号的选择由从处理设备5的处理功能51向选择单元294输入的信号切换。以这一方式,为了调试模块4的操作,可以通过I2C通信功能57而不是通过传输功能200向模块4传输任意指令。
指派单元295向I2C通信功能291c或者RS485通信功能297指派从传输功能200传输的指令。因此,有可能组合多个模块4中的各自与互不相同的通信标准相符的模块4。例如,为了使用与RS485通信相符的模块4而不是仅使用与I2C通信相符的模块4,与RS485通信相符的模块4被连接到连接器292d的顶端而不是连接器292c的顶端。通过这样做,有可能控制由被连接到连接器292a至292b的与I2C通信相符的模块4和被连接到连接器292d的与RS485通信相符的模块4组成的配件。注意,在配件仅由与I2C通信相符的模块4组成时,模块4可以被连接到连接器292c的顶端而不是连接器292d的顶端。指派单元295将指令指派到的、I2C通信功能291c和RS485通信功能297之一由从处理设备5的处理功能51向指派单元295输入的信号切换。
电压转换器296a至296d中的每个电压转换器将从选择单元293输入的电压转换成可以用于总线91至94中的信号的电压。
RS485通信功能292实现与模块4的与RS485通信标准相符的通信。RS485通信功能297实现与被连接到连接器292d的总线94的通信。
如图35中所示,模块4各自包括微计算机40、马达42、连接器48和错误检测单元49。连接器48和马达42与在第一实施例至第九实施例中描述的部件相同。
微计算机40包括处理功能400和存储设备410。处理功能400包括操作控制单元401以及错误处置控制单元402和403。
操作控制单元401在其中在马达42中没有检测到异常的正常状态中对马达42执行控制。错误处置控制单元402和403在其中马达42中检测到异常的异常状态中对马达42执行控制。
存储设备410先前存储选择信息,该选择信息指示将在异常状态中由错误处置控制单元402和403之一执行的控制。处理功能400根据被存储在存储设备410中的选择信息确定执行控制的错误处置控制单元402和403之一并且执行控制。以这一方式,有可能根据其中使用模块4的配件改变在异常状态中由错误处置控制单元402或者403执行的控制。
错误检测单元49检测以上马达42的异常。在错误检测单元49检测到马达42中的异常时,错误检测单元49向处理功能400通知异常。
接着,将描述作为模块控制系统1的更具体操作示例的第二操作示例。将参照图36描述根据第十实施例的模块控制系统1的操作。控制周期的时段(例如,10毫秒)被指示为“控制时段”。
如图36中所示,按照与在参照图32在第九实施例中描述的示例相似的方式,在第一控制时段中在SPI通信中从处理设备5向接口板2传输周期指令、传感器值获取指令A至F和马达驱动指令A至G。
如以上描述的那样,定时调整功能23使指令的输出等待,直至去往所有总线91至94的指令将变成周期指令。因此,在周期指令分别从所有总线91至94输出并且然后由模块4执行时的定时同时传输在周期指令之后的传感器值获取指令A至F和马达驱动指令A至G。
这时,假设已经在传感器值获取指令A至F和马达驱动指令A至G的传输期间检测到异常,并且中止指令功能260已经向处理设备5传输了中止指令。在这一情况下,处理设备5根据异常执行控制。例如,如图36中所示,处理设备5可以向模块传输用于中止马达42的马达驱动指令。
然后,在处理设备5例如通过重置接口板2来恢复接口板2之后,处理设备5可以从第二控制时段恢复传感器值获取指令和马达驱动指令的正常传输。
以这一方式,如以上描述的那样,使用周期指令的控制可以按照每个控制周期分离指令。通过反复地执行这些指令,可以控制配件(模块4)。在第十实施例中,即使当在异常在这样的情况下出现时,中止指令功能260也可以检测到异常并且向处理设备5通知异常。因而,如以上描述的那样,处理设备5可以响应于来自接口板2的中止指令功能260的通知恢复异常状态并且恢复控制。
如至此已经描述的那样,可以如同根据第十实施例的模块控制系统1在其中嵌入各种异常检测功能的系统中实现在第一实施例至第八实施例中描述的内容而没有阻碍。
注意,本发明不限于以上实施例,并且可以做出修改而没有脱离其范围。
在以上第一实施例至第十实施例中,虽然在从所有总线指令缓冲器22输出虚指令时丢弃虚指令,但是它不限于此。即使在从所有总线指令缓冲器22输出虚指令时,仍然可以没有丢弃而是代之以可以向模块4传输虚指令。在这一情况下,虚指令可以是没有影响对模块4的控制的虚指令。例如,这些指令可以是即使在由模块4接收时仍然没有执行任何处理的指令。然而,优选的是如以上描述的那样丢弃虚指令以便消除对指令的不必要传输。
另外,在以上第一实施例至第十实施例中,即使在存在应当按照执行顺序被执行的指令时,如果指令将这些指令传输到相同总线,也可以没有在这些指令之间插入虚指令。这是因为对于向相同总线传输的指令没有指令的追赶。例如,在执行顺序评估单元32确定由在第i行中的代码生成的指令以及由在第i-1行和在第i-1行之前的行中的代码生成的指令将基于对应数据而被传输给相同总线时,执行顺序评估单元32可以不确定存在这些指令的顺序限制。
在以上第一实施例至第八实施例中,虽然已经描述了其中传输控制功能20、虚指令检测功能21和定时调整功能23由电路实现的具体示例,但是它不限于此。备选地,在接口板2的微计算机2000中包括的CPU可以执行用于执行这些功能中的至少一些功能的程序。也就是说,如在第九实施例中描述的那样,在第一实施例至第八实施例中,传输功能200和接收功能220可以由微计算机2000实现。
另外,在以上第一实施例至第十实施例中,虽然已经描述了其中在接口板2与模块4之间的通信路径的连接方案是总线连接的示例,但是它不限于此。在接口板2与模块4之间的链接路径的连接方案可以例如是对等连接。在这一情况下,可以通过线缆或者无线地实现通信路径。
这是因为即使在这一情况下,如果满足以下两个条件,参照图10而被描述的问题仍然出现。
条件1:(在接口板2与模块4之间的通信路径的数目×通信路径的速度)<在外部计算器3与接口板2之间的通信路径的速度
条件2:存在通过在接口板2与模块4之间的通信路径传输的指令的数目的偏差
在对等连接中,通过一个通信路径连接仅一个模块4,而在总线连接中,通过一个通信路径连接多个模块4。出于这一原因,在总线连接的情况下,以上问题仅在满足条件1时变得明显。因而,在第一至第十实施例中,在接口板2与模块4之间的通信路径的连接方案如以上描述的那样是总线连接时有效。
标号列表
1 模块控制系统
2 接口板
3 外部计算器
4 模块
5 处理设备
6 服务器
20 传输控制功能
21 虚指令检测功能
22a,22b,22c 总线指令缓冲器
23 定时调整功能
24 溢出检测单元
25 定时器
26 错误信号检测单元
27 指令发出信息收集单元
28 触发指令检测功能
30 虚指令生成功能
31 指令生成单元
32 执行顺序评估单元
33 虚指令检测单元
34 周期指令检测单元
40 微计算机
41 传感器
42 马达
43 AC马达
44 DC马达
45 模拟输入/输出模块
46 数字输入/输出模块
47 通信标准相符模块
48 连接器
49 错误检测单元
50 指令存储器
51 处理功能
52 USB通信功能
53 SPI通信功能
54 电压转换器
55 模拟输入/输出单元
56 数字输入/输出单元
57 I2C通信功能
58 中断功能
61 社区提供单元
62 在线商店提供单元
63 存储单元
80 电池
81 AC电源
82 AC/DC转换器
90 通信路径
91,92,93 总线
200 传输功能
201 指令指派单元
202 指令分发单元
203 虚指令生成单元
209 反相器
211 顺序指令检测单元
212 周期指令检测单元
213,214,236,238,2333 OR电路
220 接收功能
221 接收控制功能
222a,222b,222c 接收总线指令缓冲器
231a,231b,231c 虚指令检测单元
233a,233b,231c 虚指令评估功能
232,234,235,239 AND电路
237 选择电路
250a,250b,250c,250d 中断检测单元
261a,261b,261c,261d 错误检测单元
262a,262b,262c,262d,263 过电流检测单元
251 OR电路
290 SPI通信功能
291a,291b,291c,291d I2C通信功能
292a,292b,292c,292d,292e,292f,292g,292h 连接器
293,294 选择单元
295 指派单元
297 RS485通信功能
300 CPU
301 存储器
302 硬盘
303 通信控制器
310 中断器
311 源程序
320 程序生成单元
321 程序执行单元
330 设计功能
331 存储功能
332 模块组装功能
333 显示功能
334 物理仿真功能
335 编程环境
336 控制设计工具
337 USB通信功能
340 连接模块列表显示功能
400 处理功能
401 操作控制单元
402,403 错误处置控制单元
410 存储设备
510 连接模块列表获取功能
541,543 Vdd输出单元
542 Gnd输出单元
601 模块数据
602 设计数据
2000 微计算机
2331 顺序指令检测单元
2332 周期指令检测单元
权利要求书(按照条约第19条的修改)
1.一种指令执行控制系统,包括:
多个指令存储单元,所述多个指令存储单元被配置为按照FIFO顺序将指令输出给多个指令执行单元,所述多个指令执行单元被配置为执行所述指令;
指令控制单元,所述指令控制单元被配置为向所述多个指令存储单元中的一个指令存储单元指派多个依次输入指令中的每个依次输入指令;以及
输出控制单元,所述输出控制单元被配置为控制所述指令从所述多个指令存储单元的所述输出,其中
在所述输入指令是将被插入在应当按照执行顺序被执行的指令之间的虚指令时,所述指令控制单元向所有所述多个指令存储单元分发所述输入指令,并且
所述输出控制单元停止所述指令从其中从其输出的所述指令已经变成所述虚指令的所述指令存储单元向所述指令执行单元的所述输出,直至从所有所述多个指令存储单元输出的所述指令变成所述虚指令。
2.根据权利要求1所述的指令执行控制系统,还包括检测单元,所述检测单元被配置为检测所述指令存储单元溢出或者已满,并且向所述指令的输入源通知所述检测。
3.根据权利要求1所述的指令执行控制系统,还包括定时器,所述定时器被配置为按照固定周期输出通知信号,其中所述输出控制单元停止所述指令从其中从其输出的所述指令已经变成所述虚指令的所述指令存储单元的所述输出,直至在从所有所述多个指令存储单元输出的所述指令是所述虚指令时、所述通知信号从所述定时器被输出。
4.根据权利要求3所述的指令执行控制系统,还包括:
接口设备,所述接口设备包括所述多个指令存储单元、所述指令控制单元、所述输出控制单元和所述定时器;以及
外部设备,所述外部设备被配置为向所述接口设备输出所述指令,其中
所述外部设备包括虚指令检测单元,所述虚指令检测单元在预定数目的所述虚指令被输入给所述接口设备时,中断所述指令向所述接口设备的所述输出,
所述输出控制单元在从所有所述多个指令存储单元输出的所述指令变成所述虚指令、并且通知信号从所述定时器被输出时,向所述虚指令检测单元输出所述通知信号,并且
所述虚指令检测单元在所述通知信号从所述输出控制单元被输出时,恢复所述指令的中断的所述输出。
5.根据权利要求3所述的指令执行控制系统,其中
所述指令执行控制系统输入顺序指令和周期指令作为所述虚指令,
在所述虚指令是所述顺序指令时,所述输出控制单元停止所述指令从其中从其输出的所述指令已经变成所述顺序指令的所述指令存储单元的所述输出,直至从所有所述多个指令存储单元输出的所述指令无论所述定时器是否输出所述通知信号都变成所述顺序指令,并且
在所述虚指令是所述周期指令时,所述输出控制单元停止所述指令从其中从其输出的所述指令已经变成所述周期指令的所述指令存储单元的所述输出,直至在从所有所述多个指令存储单元输出的所述指令是所述顺序指令时、从所述定时器输出所述通知信号。
6.根据权利要求5所述的指令执行控制系统,还包括:
接口设备,所述接口设备包括所述多个指令存储单元、所述指令控制单元、所述输出控制单元和所述定时器;以及
外部设备,所述外部设备被配置为向所述接口设备输出所述指令,其中
所述外部设备包括周期指令检测单元,所述周期指令检测单元在预定数目的所述周期指令被输入给所述接口设备时,中断所述指令向所述接口设备的所述输出,
所述输出控制单元在从所有所述多个指令存储单元输出的所述指令变成所述周期指令、并且通知信号从所述定时器被输出时,向所述周期指令检测单元输出所述通知信号,并且
所述周期指令检测单元在所述通知信号从所述输出控制单元被输出时,恢复所述指令的中断的所述输出。
7.根据权利要求5所述的指令执行控制系统,其中所述输出控制单元包括:
多个虚指令评估单元,所述多个虚指令评估单元评估从相应的所述多个指令存储单元输出的所述指令是否为所述顺序指令和所述周期指令中的一项;以及
通知单元,所述通知单元在由所述多个虚指令评估单元的所述评估的结果不一致时,向所述指令的输入源通知异常。
8.根据权利要求1所述的指令执行控制系统,还包括:
异常检测单元,所述异常检测单元被配置为检测在所述指令存储单元与所述指令执行单元之间的通信路径中的异常,所述指令通过所述通信路径被传输;以及
信息收集单元,所述信息收集单元被配置为在所述异常被所述异常检测单元检测到时,收集被存储在所述指令存储单元中的、与所述指令有关的信息。
9.根据权利要求1所述的指令执行控制系统,其中在所述指令是触发指令时,所述指令控制单元在向所有所述多个指令存储单元分发所述触发指令时,在所述触发指令之前插入所述虚指令、并且向所有所述多个指令存储单元分发所述虚指令。
10.根据权利要求1所述的指令执行控制系统,其中所述指令存储单元在所述指令从所述输出控制单元的停止的所述输出被取消时,丢弃所述虚指令。
11.根据权利要求1所述的指令执行控制系统,还包括:
接口设备,所述接口设备包括所述多个指令存储单元、所述指令控制单元和所述输出控制单元;以及
外部设备,所述外部设备被配置为向所述接口设备输出所述指令,其中
所述外部设备包括:
指令生成单元,所述指令生成单元被配置为生成所述指令;
执行顺序评估单元,所述执行顺序评估单元被配置为关于在由所述指令生成单元生成的所述指令之中是否存在应当按照执行顺序被执行的指令来进行评估;以及
虚指令生成单元,所述虚指令生成单元被配置为生成所述虚指令,并且将所述虚指令插入在所述执行顺序评估单元已经评估的、应当按照所述执行顺序被执行的所述指令之间。
12.一种指令执行控制方法,包括:
指令控制步骤,所述指令控制步骤用于向多个指令存储单元中的一个指令存储单元指派依次输入指令中的每个依次输入指令;以及
指令输出步骤,所述指令输出步骤用于按照FIFO顺序向多个指令执行单元输出被存储在所述多个指令存储单元中的每个指令存储单元中的所述指令,所述多个指令执行单元各自执行所述指令,其中
在所述指令控制步骤中,在所述输入的指令是将被插入在应当按照执行顺序被执行的指令之间的虚指令时,所述输入指令向所有所述多个指令存储单元被分发,以及
在所述指令输出步骤中,所述指令从其中从其输出的所述指令已经变成所述虚指令的所述指令存储单元向所述指令执行单元的所述输出被停止,直至从所有所述多个指令存储单元输出的所述指令变成所述虚指令。

Claims (12)

1.一种指令执行控制系统,包括:
多个指令存储单元,所述多个指令存储单元被配置为按照FIFO顺序将指令输出给多个指令执行单元,所述多个指令执行单元被配置为执行所述指令;
指令控制单元,所述指令控制单元被配置为向所述多个指令存储单元中的一个指令存储单元指派多个依次输入指令中的每个依次输入指令;以及
输出控制单元,所述输出控制单元被配置为控制所述指令从所述多个指令存储单元的所述输出,其中
在所述输入指令是将被插入在应当按照执行顺序被执行的指令之间的虚指令时,所述指令控制单元向所有所述多个指令存储单元分发所述输入指令,并且
所述输出控制单元停止所述指令从其中从其输出的所述指令已经变成所述虚指令的所述指令存储单元向所述指令执行单元的所述输出,直至从所有所述多个指令存储单元输出的所述指令变成所述虚指令。
2.根据权利要求1所述的指令执行控制系统,还包括检测单元,所述检测单元被配置为检测所述指令存储单元溢出或者已满并且向所述指令的输入源通知所述检测。
3.根据权利要求1所述的指令执行控制系统,还包括定时器,所述定时器被配置为按照固定周期输出通知信号,其中所述输出控制单元停止所述指令从其中从其输出的所述指令已经变成所述虚指令的所述指令存储单元的所述输出,直至在从所有所述多个指令存储单元输出的所述指令是所述虚指令时所述通知信号从所述定时器被输出。
4.根据权利要求3所述的指令执行控制系统,还包括:
接口设备,所述接口设备包括所述多个指令存储单元、所述指令控制单元、所述输出控制单元和所述定时器;以及
外部设备,所述外部设备被配置为向所述接口设备输出所述指令,其中
所述外部设备包括虚指令检测单元,所述虚指令检测单元在预定数目的所述虚指令被输入给所述接口设备时中断所述指令向所述接口设备的所述输出,
所述输出控制单元在从所有所述多个指令存储单元输出的所述指令变成所述虚指令并且通知信号从所述定时器被输出时向所述虚指令检测单元输出所述通知信号,并且
所述虚指令检测单元在所述通知信号从所述输出控制单元被输出时恢复所述指令的中断的所述输出。
5.根据权利要求3所述的指令执行控制系统,其中
所述指令执行控制系统输入顺序指令和周期指令作为所述虚指令,
在所述虚指令是所述顺序指令时,所述输出控制单元停止所述指令从其中从其输出的所述指令已经变成所述顺序指令的所述指令存储单元的所述输出,直至从所有所述多个指令存储单元输出的所述指令无论所述定时器是否输出所述通知信号都变成所述顺序指令,并且
在所述虚指令是所述周期指令时,所述输出控制单元停止所述指令从其中从其输出的所述指令已经变成所述周期指令的所述指令存储单元的所述输出,直至在从所有所述多个指令存储单元输出的所述指令是所述顺序指令时从所述定时器输出所述通知信号。
6.根据权利要求5所述的指令执行控制系统,还包括:
接口设备,所述接口设备包括所述多个指令存储单元、所述指令控制单元、所述输出控制单元和所述定时器;以及
外部设备,所述外部设备被配置为向所述接口设备输出所述指令,其中
所述外部设备包括周期指令检测单元,所述周期指令检测单元在预定数目的所述周期指令被输入给所述接口设备时中断所述指令向所述接口设备的所述输出,
所述输出控制单元在从所有所述多个指令存储单元输出的所述指令变成所述周期指令并且通知信号从所述定时器被输出时向所述周期指令检测单元输出所述通知信号,并且
所述周期指令检测单元在所述通知信号从所述输出控制单元被输出时恢复所述指令的中断的所述输出。
7.根据权利要求5所述的指令执行控制系统,其中所述输出控制单元包括:
多个虚指令评估单元,所述多个虚指令评估单元评估从相应的所述多个指令存储单元输出的所述指令是否为所述顺序指令和所述周期指令中的一项;以及
通知单元,所述通知单元在由所述多个虚指令评估单元的所述评估的结果不一致时向所述指令的输入源通知异常。
8.根据权利要求1所述的指令执行控制系统,还包括:
异常检测单元,所述异常检测单元被配置为检测在所述指令存储单元与所述指令执行单元之间的通信路径中的异常,所述指令通过所述通信路径被传输;以及
信息收集单元,所述信息收集单元被配置为在所述异常被所述异常检测单元检测到时收集被存储在所述指令存储单元中的与所述指令有关的信息。
9.根据权利要求1所述的指令执行控制系统,其中在所述指令是触发指令时,所述指令控制单元在向所有所述多个指令存储单元分发所述触发指令时,在所述触发指令之前插入所述虚指令并且向所有所述多个指令存储单元分发所述虚指令。
10.根据权利要求1所述的指令执行控制系统,其中所述指令存储单元在所述指令从所述输出控制单元的停止的所述输出被取消时丢弃所述虚指令。
11.根据权利要求1所述的指令执行控制系统,还包括:
接口设备,所述接口设备包括所述多个指令存储单元、所述指令控制单元和所述输出控制单元;以及
外部设备,所述外部设备被配置为向所述接口设备输出所述指令,其中
所述接口设备包括:
指令生成单元,所述指令生成单元被配置为生成所述指令;
执行顺序评估单元,所述执行顺序评估单元被配置为关于在由所述指令生成单元生成的所述指令之中是否存在应当按照执行顺序被执行的指令来进行评估;以及
虚指令生成单元,所述虚指令生成单元被配置为生成所述虚指令并且将所述虚指令插入在所述执行顺序评估单元已经评估的、应当按照所述执行顺序被执行的所述指令之间。
12.一种指令执行控制方法,包括:
指令控制步骤,所述指令控制步骤用于向多个指令存储单元中的一个指令存储单元指派依次输入指令中的每个依次输入指令;以及
指令输出步骤,所述指令输出步骤用于按照FIFO顺序向多个指令执行单元输出被存储在所述多个指令存储单元中的每个指令存储单元中的所述指令,所述多个指令执行单元各自执行所述指令,其中
在所述指令控制步骤中,在所述输入指令是将被插入在应当按照执行顺序被执行的指令之间的虚指令时,所述输入指令向所有所述多个指令存储单元被分发,以及
在所述指令输出步骤中,所述指令从其中从其输出的所述指令已经变成所述虚指令的所述指令存储单元向所述指令执行单元的所述输出被停止,直至从所有所述多个指令存储单元输出的所述指令变成所述虚指令。
CN201480082409.0A 2014-11-11 2014-11-11 命令执行控制系统和命令执行控制方法 Expired - Fee Related CN107111523B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/005663 WO2016075721A1 (ja) 2014-11-11 2014-11-11 命令実行制御システム及び命令実行制御方法

Publications (2)

Publication Number Publication Date
CN107111523A true CN107111523A (zh) 2017-08-29
CN107111523B CN107111523B (zh) 2020-10-20

Family

ID=55953835

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480082409.0A Expired - Fee Related CN107111523B (zh) 2014-11-11 2014-11-11 命令执行控制系统和命令执行控制方法

Country Status (4)

Country Link
US (1) US20170300329A1 (zh)
JP (1) JP6314246B2 (zh)
CN (1) CN107111523B (zh)
WO (1) WO2016075721A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109994999A (zh) * 2017-12-29 2019-07-09 丰田自动车株式会社 用于电力转换电路的保护控制装置及其控制方法
CN111124496A (zh) * 2019-12-25 2020-05-08 合肥中感微电子有限公司 一种多周期指令处理方法、处理器和电子设备
CN111176251A (zh) * 2018-11-09 2020-05-19 丰田自动车株式会社 网络系统

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10303230B1 (en) * 2016-10-31 2019-05-28 Cadence Design Systems, Inc. Method and system to mitigate large power load steps due to intermittent execution in a computation system
US10719320B2 (en) * 2017-07-31 2020-07-21 Intel Corporation Power noise injection to control rate of change of current
JP6939718B2 (ja) * 2018-06-26 2021-09-22 日本電信電話株式会社 ネットワーク機器及びネットワーク機器の設定方法
US11366774B2 (en) * 2020-09-24 2022-06-21 Adesto Technologies Corporation Memory latency reduction in XIP mode
US11609868B1 (en) * 2020-12-31 2023-03-21 Waymo Llc Control calibration timing to avoid memory write blackout period

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06162206A (ja) * 1992-11-26 1994-06-10 Fujitsu Ltd 並列処理装置における処理順序指定方式
US6047334A (en) * 1997-06-17 2000-04-04 Intel Corporation System for delaying dequeue of commands received prior to fence command until commands received before fence command are ordered for execution in a fixed sequence
US7437521B1 (en) * 2003-08-18 2008-10-14 Cray Inc. Multistream processing memory-and barrier-synchronization method and apparatus
CN101446890A (zh) * 2007-11-29 2009-06-03 株式会社瑞萨科技 流处理装置、流处理方法和数据处理系统
US20100115249A1 (en) * 2008-11-06 2010-05-06 Via Technologies, Inc. Support of a Plurality of Graphic Processing Units
CN101796487A (zh) * 2007-08-10 2010-08-04 内特可力亚斯系统股份有限公司 虚拟队列处理电路以及任务处理器
CN102480387A (zh) * 2010-11-30 2012-05-30 英业达股份有限公司 机架式服务器装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819079A (en) * 1995-09-11 1998-10-06 Intel Corporation Instruction fetch on demand for uncacheable memory which avoids memory mapped I/O side effects in a processor with speculative instruction fetch
US5961639A (en) * 1996-12-16 1999-10-05 International Business Machines Corporation Processor and method for dynamically inserting auxiliary instructions within an instruction stream during execution
US6088772A (en) * 1997-06-13 2000-07-11 Intel Corporation Method and apparatus for improving system performance when reordering commands
US5941983A (en) * 1997-06-24 1999-08-24 Hewlett-Packard Company Out-of-order execution using encoded dependencies between instructions in queues to determine stall values that control issurance of instructions from the queues
US6209073B1 (en) * 1998-04-27 2001-03-27 International Business Machines Corp. System and method for interlocking barrier operations in load and store queues
US6643718B1 (en) * 2000-07-21 2003-11-04 Silicon Integrated Systems Corporation Method and apparatus for controlling order dependency of items in a multiple FIFO queue structure
US7363474B2 (en) * 2001-12-31 2008-04-22 Intel Corporation Method and apparatus for suspending execution of a thread until a specified memory access occurs
US7475397B1 (en) * 2004-07-28 2009-01-06 Sun Microsystems, Inc. Methods and apparatus for providing a remote serialization guarantee
US20060026388A1 (en) * 2004-07-30 2006-02-02 Karp Alan H Computer executing instructions having embedded synchronization points
US8176299B2 (en) * 2008-09-24 2012-05-08 Apple Inc. Generating stop indicators based on conditional data dependency in vector processors
JP2011234517A (ja) * 2010-04-28 2011-11-17 Renesas Electronics Corp 動力駆動制御装置および動力装置
JP5714455B2 (ja) * 2011-08-31 2015-05-07 ルネサスエレクトロニクス株式会社 半導体集積回路
US10691344B2 (en) * 2013-05-30 2020-06-23 Hewlett Packard Enterprise Development Lp Separate memory controllers to access data in memory
US9495318B2 (en) * 2013-11-25 2016-11-15 Apple Inc. Synchronizing transactions for a single master over multiple busses
US10067768B2 (en) * 2014-07-18 2018-09-04 Nvidia Corporation Execution of divergent threads using a convergence barrier
US9575802B2 (en) * 2014-10-28 2017-02-21 International Business Machines Corporation Controlling execution of threads in a multi-threaded processor

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06162206A (ja) * 1992-11-26 1994-06-10 Fujitsu Ltd 並列処理装置における処理順序指定方式
US6047334A (en) * 1997-06-17 2000-04-04 Intel Corporation System for delaying dequeue of commands received prior to fence command until commands received before fence command are ordered for execution in a fixed sequence
US7437521B1 (en) * 2003-08-18 2008-10-14 Cray Inc. Multistream processing memory-and barrier-synchronization method and apparatus
CN101796487A (zh) * 2007-08-10 2010-08-04 内特可力亚斯系统股份有限公司 虚拟队列处理电路以及任务处理器
CN101446890A (zh) * 2007-11-29 2009-06-03 株式会社瑞萨科技 流处理装置、流处理方法和数据处理系统
US20100115249A1 (en) * 2008-11-06 2010-05-06 Via Technologies, Inc. Support of a Plurality of Graphic Processing Units
CN102480387A (zh) * 2010-11-30 2012-05-30 英业达股份有限公司 机架式服务器装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109994999A (zh) * 2017-12-29 2019-07-09 丰田自动车株式会社 用于电力转换电路的保护控制装置及其控制方法
CN111176251A (zh) * 2018-11-09 2020-05-19 丰田自动车株式会社 网络系统
CN111124496A (zh) * 2019-12-25 2020-05-08 合肥中感微电子有限公司 一种多周期指令处理方法、处理器和电子设备
CN111124496B (zh) * 2019-12-25 2022-06-21 合肥中感微电子有限公司 一种多周期指令处理方法、处理器和电子设备

Also Published As

Publication number Publication date
CN107111523B (zh) 2020-10-20
JPWO2016075721A1 (ja) 2017-04-27
US20170300329A1 (en) 2017-10-19
JP6314246B2 (ja) 2018-04-18
WO2016075721A1 (ja) 2016-05-19

Similar Documents

Publication Publication Date Title
CN107111523A (zh) 命令执行控制系统和命令执行控制方法
CN103403692B (zh) 数据传输装置
CN102077149B (zh) 灵活的智能电子设备
KR20140132373A (ko) 레거시 하드웨어 및 소프트웨어를 위한 향상된 리­호스팅 능력
CN102792237A (zh) 可编程逻辑控制器的cpu单元、可编程逻辑控制器用的系统程序以及存储了可编程逻辑控制器用的系统程序的记录介质
Kruger et al. Multi-agent systems vs IEC 61499 for holonic resource control in reconfigurable systems
CN203798927U (zh) 一种光电耦合器的老化试验系统
Wang et al. A function block based approach for increasing adaptability of assembly planning and control
KR101627081B1 (ko) 프로그래머블 로직 컨트롤러
US20220398211A1 (en) Input/output unit for data acquisition with a field-bus system
JP2013258564A (ja) データポーリング方法及びその方法を用いた原子力プラントのディジタル計装制御システム
CN103901864B (zh) 一种适用于运载火箭测发控系统的虚拟发控台
CN105074668B (zh) 测试设计辅助装置和测试设计辅助方法
CN102646998A (zh) 电池包的充电和放电系统
CN103777546B (zh) 可重构网络化测控装置及其组件化编程方法
CN108696412A (zh) 用于数字变电站中的网络失效转移的系统和方法
CN108215907A (zh) 电池管理系统及方法
JP2005284415A (ja) 組立製造ラインにおける作業工程別タクトタイム推定方法、全体工程編成方法、装置およびプログラム
CN103129742A (zh) 用于接收和发送消息的设备和方法
CN107290985B (zh) 用于示教器的数据处理方法和装置
JP2009118041A (ja) ノード局の位置関係検出システム
CN110663232B (zh) 指令的预加载
US20130018601A1 (en) Sensing circuit
CN104852841A (zh) 即时传讯通讯装置及方法
CN204791008U (zh) 一种自动生成线束版图的设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20201020

CF01 Termination of patent right due to non-payment of annual fee