CN107807866A - 多处理器系统和车辆控制系统 - Google Patents
多处理器系统和车辆控制系统 Download PDFInfo
- Publication number
- CN107807866A CN107807866A CN201710592790.0A CN201710592790A CN107807866A CN 107807866 A CN107807866 A CN 107807866A CN 201710592790 A CN201710592790 A CN 201710592790A CN 107807866 A CN107807866 A CN 107807866A
- Authority
- CN
- China
- Prior art keywords
- processing
- processor element
- monitored
- monitoring
- line mechanism
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C5/00—Registering or indicating the working of vehicles
- G07C5/08—Registering or indicating performance data other than driving, working, idle, or waiting time, with or without registering driving, working, idle or waiting time
- G07C5/0841—Registering performance data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3027—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/349—Performance evaluation by tracing or monitoring for interfaces, buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/845—Systems in which the redundancy can be transformed in increased performance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Abstract
本公开涉及多处理器系统和车辆控制系统,其可以在抑制成本的同时实现处理器元件的监控。多处理器系统(1)包括总线机构,其包括:存储单元(6),被配置为当第一处理器元件(2)执行被监控处理时存储总线访问信息;请求单元(7),被配置为在第一处理器元件(2)已经完成被监控处理的执行之后请求第二处理器元件(3)执行监控处理;以及比较单元(8),被配置为当第二处理器元件(3)执行监控处理时,将存储在存储单元(6)中的关于第一处理器元件2的访问的总线访问信息与从第二处理器元件(3)输入的总线访问信息进行比较。第二处理器元件(3)在空闲时间中执行监控处理。
Description
相关申请的交叉参考
本申请基于2016年9月8日提交的日本专利申请第2016-175474并要求该优先权的权利,其内容结合于此作为参考。
技术领域
本发明涉及多处理器系统和车辆控制系统,并且例如涉及被配置为使用总线机构执行监控的多处理器系统和车辆控制系统。
背景技术
近年来,在汽车市场等中,要求通过多核处理等以及故障-安全技术(诸如双重锁步(DSL)或三重多数决定规则(TMR))来满足性能的提升。因此,已经提出了各种技术。
例如,日本未审查专利申请公开第2015-153282号公开了一种多处理器系统,其实现了其功能安全性而不紧密地耦合处理器元件。在该多处理器系统中,总线机构保持并比较多个处理器元件的总线访问请求,并且检测处理器元件的异常。
发明内容
然而,根据日本未审查专利申请公开第2015-153282号公开的用于功能安全的配置,两个处理器元件需要执行相同的处理以实现DLS,并且三个处理器元件需要执行相同的处理以实现TMR。即,为了实现功能安全性,在被监控的处理器元件之外,还需要准备专用于监控的处理器元件。即,需要准备至少一个处理器元件专用于监控,其执行与由被监控的处理器元件执行的程序相同的处理。这使得成本增加。
现有技术的其他问题以及本发明的新颖特性将根据说明书和附图的描述而变得明显。
根据一个实施例,一种多处理器系统包括:总线机构,包括被配置为当第一处理器元件执行被监控的处理时存储总线访问信息的存储单元;请求单元,被配置为在第一处理器元件已经完成被监控的处理的执行之后,请求第二处理器元件执行监控处理;以及比较单元,被配置为当第二处理器元件已经执行监控处理时,将存储在存储单元中的关于第一处理器元件的访问的总线访问信息与从第二处理器元件输入的总线访问信息进行比较。第二处理器元件在空闲时间执行监控处理。
根据该实施例,可以在抑制成本的同时实现处理器元件的监控。
附图说明
上述和其他方面、优势和特征将根据以下结合附图进行的特定实施例的描述而变得更加明显,其中:
图1是示出根据实施例的概况的多处理器系统的配置的一个示例的框图;
图2是示出根据第一实施例的多处理器系统的详细配置的一个示例的框图;
图3是示出数据被存储在存储区中的示例的示意图;
图4A是示出根据第一实施例的当在多处理器系统中没有发生中断时的操作示例的流程图;
图4B是示出根据第一实施例的当在多处理器系统中没有发生中断时的操作示例的流程图;
图5A是示出当在执行被监控的处理的PE中发生中断处理时的操作示例的流程图;
图5B是示出当在执行被监控的处理的PE中发生不包括被监控的处理的中断处理时的与中断相关的处理的操作示例的流程图;
图6A是示出当在执行被监控的处理的PE中发生包括被监控的处理的中断处理时的与中断相关的处理的操作示例的流程图;
图6B是示出当在执行被监控的处理的PE中发生包括被监控的处理的中断处理时的与中断相关的处理的操作示例的流程图;
图7A是示出在执行监控处理的PE中发生中断处理时的操作示例的流程图;
图7B是示出当在执行监控处理的PE中发生中断处理时的与中断相关的处理的操作示例的流程图;以及
图8是示出根据第二实施例的车辆控制系统的配置的一个示例的框图。
具体实施方式
为了描述的清楚,以下说明书和附图可以适当地省略或简化。在附图中,相同的部件由相同的参考符号来表示,并且将适当地省略重复描述。
<实施例的概况>
在给出实施例的细节的描述之前,将首先给出实施例的概况。图1是示出根据实施例的概况的多处理器系统1的配置的一个示例的框图。多处理器系统1包括第一处理器元件2、第二处理器元件3、总线机构4以及被访问单元5。
第一处理器元件2是其操作被监控的处理器元件。第二处理器元件3执行其处理内容与由第一处理器元件2执行的被监控目标的处理相同的处理(下文中该处理将被称为监控处理)。在以下描述中,被监控目标的处理将被称为被监控处理。
当第一处理器元件2执行被监控处理时,通过第一处理器元件访问被访问单元5。
总线机构4设置在第一处理器元件2与被访问单元5之间的访问路径上,并且控制对被访问单元5的访问。如图1所示,总线机构4包括存储单元6、请求单元7和比较单元8。
存储单元6存储关于当第一处理器元件2执行被监控处理时发生的对被访问单元5的访问的总线访问信息。例如,存储在存储单元6中的总线访问信息包括用于读访问的访问目的地信息和读数据、以及用于写访问的访问目的地信息和写数据。
在第一处理器元件2已经完成被监控处理的执行之后,请求单元7请求第二处理器元件3执行监控处理。第二处理器元件2在其接收到来自请求单元7的请求之后执行监控处理。第二处理器元件3在其接收到来自请求单元7的请求之后在空闲时间中执行监控处理。第二处理器元件3例如在一时区(期间不执行除监控处理的执行之外的预定处理)中执行监控处理。该预定处理可以是优先级高于监控处理的执行优先级的处理。第二处理器元件3在不执行预定处理的时区中执行监控处理,从而可以防止中断预定处理的执行。
当第二处理器元件3已经执行监控处理时,比较单元8将存储在存储单元6中的关于第一处理器元件2的访问的总线访问信息与从第二处理器元件输入至总线机构4的总线访问信息进行比较。当上面的前一个和后一个总线访问信息相互一致时,意味着第一处理器2的操作是正常的。另一方面,当上面的前一个和后一个总线访问信息相互不一致时,意味着第一处理器2的操作是异常的。因此,可以通过比较单元8执行的比较处理来监控第一处理器2的操作。
如上所述,根据该多处理器系统1,在第一处理器元件2已经完成被监控处理的执行之后,请求单元7请求第二处理器元件3执行监控处理。然后,第二处理器元件3在其自己的空闲时间中执行监控处理。因此,第二处理器元件3能够执行除监控处理的执行之外的处理。换句话说,第二处理器元件3不是专用于监控第一处理器元件2的处理器元件。因此,在多处理器系统1中,可以实现处理器元件的监控,同时降低成本。
虽然在上面的描述中操作被监控的处理器元件是第一处理器元件2,但也可以监控第二处理器元件3的操作。在这种情况下,第一处理器元件2执行监控处理,其处理内容与被第二处理器元件3执行的被监控处理的处理内容相同。此外,在这种情况下,当第二处理器元件3执行被监控处理时,还通过第二处理器元件访问被访问单元5。以这种方式,可以相互地执行监控操作。
<实施例的细节>
<第一实施例>
接下来,将描述实施例的细节。图2是示出根据第一实施例的多处理器系统10的详细配置的一个示例的框图。如图2所示,多处理器系统10包括PE 100和200、总线机构300以及外围IP(知识产权)组400。
PE 100和200是对应于前述第一处理器元件2和第二处理器元件3的处理器元件。PE 100和200被称为处理器核等,并且是能够执行程序并执行数据处理的电路。在该实施例中,PE 100和200周期性地执行预定处理以周期性地实现预定处理。例如,PE 100和200在周期T内完成预定处理的执行。在下一循环中,PE100和200也在周期T内完成预定处理的执行。PE 100和200重复该操作。如果假设PE 100和200能够在每个循环中的时间t1处完成预定处理的执行,则该周期T中的时间t2(=T-t1)成为空穴时间。即,空闲时间是指一时区,在该时区内,在执行PE 100和200中的预定处理和监控处理的周期中不执行预定处理。PE 100和200在该空闲时间t2处执行监控处理以相互监控。即,PE 100和200周期性地执行预定处理和监控处理。
更具体地,PE 100和200执行被监控处理、监控处理以及既不是被监控处理也不是监控处理的处理(该处理被称为正常处理)中的一个。前述预定处理包括被监控处理和正常处理。然而,当所有预定处理都是被监控目标时,预定处理不包括正常处理。监控处理是由一个PE执行以监控由另一PE执行的被监控处理的处理,并且是处理内容与被监控处理相同的处理。
当开始和结束被监控处理的执行时以及开始和结束监控处理的执行时,PE 100和200经由总线301通知总线机构300已经开始/结束处理的执行。当其接收到指示应该开始被监控处理的执行的通知时,总线机构300通过总线机构300的对应于前述存储单元6、请求单元7和比较单元8的每个结构执行处理。因此,总线机构300不需要针对由PE 100和200执行的所有处理执行监控处理,从而可以减少处理量。此外,当开始和结束中断处理的执行时,PE 100和200经由总线302通知总线机构300已经开始/结束处理的执行。在该说明书中,在开始被监控处理的执行时发送的通知可以被称为监控目标处理开始通知,并且在结束被监控处理的执行时发送的通知可以称为监控目标处理结束通知。此外,在本说明书中,在开始监控处理的执行时发送的通知可以称为监控处理开始通知,并且在结束监控处理的执行时发送的通知可以称为监控处理结束通知。此外,在本说明书中,在开始中断处理的执行时发送的通知可以称为中断发生通知,以及在结束中断处理的执行时发送的通知可以被称为中断结束通知。
监控目标处理开始通知、监控目标处理结束通知、监控处理开始通知、和监控处理结束通知被输入至总线机构300的监控控制器320(稍后描述)。此外,中断发生通知和中断结束通知被输入至总线机构300的中断控制器310(稍后描述)。
此外,当开始被监控处理的执行时,PE 100和200经由总线301通知总线机构300监控有效范围信息。监控有效范围信息是指表示被监控的访问范围的信息。当不需要监控针对外围IP组400发生的所有访问范围时,PE 100和200通过发送监控有效范围信息通知总线机构300被监控的访问范围。因此,代替针对与监控处理的执行相关联发生的所有访问执行监控处理,总线机构可以仅针对需要被监控的访问执行监控处理。因此,可以减少总线机构300的处理量。
此外,当开始被监控处理的执行时,PE 100和200经由总线301通知总线机构300存储区信息。存储区信息是表示需要存储通过由于被监控处理的执行而发生的访问中的包括在监控有效范围中的访问所生成的总线访问信息的存储容量的信息。
监控有效范围信息和存储区信息也被输入至总线机构300的监控控制器320(稍后描述)。
外围IP组400对应于前述被访问单元5,并且是被PE 100和200访问的电路。虽然外围IP组400包括例如但不限于存储设备(诸如存储器)、AD转换器和定时器电路,外围IP组400可以包括作为PE 100和200的读访问或写访问的目标的任何电路。此外,外围IP组400不是必须包括多个被访问单元,而是可以仅包括一个被访问单元。经由总线机构300,通过PE100和200访问外围IP组400。
总线机构300对应于前述总线机构4,并且设置在PE 100和200与外围IP组400之间的访问路径上。总线机构300控制从PE 100和200对外围IP组400的访问。总线机构300包括总线301和302、控制器303、存储单元304和比较/确定单元305。
总线301是传输路径以在PE 100和200访问外围IP组400时传输总线访问信息。此外,总线302是传输路径以传输关于PE 100和200中发生的中断处理的中断信息。
控制器303是执行控制的控制电路,包括通过PE 100和200对外围IP组400的访问的控制以及PE 100和200的监控控制。存储单元304对应于前述存储单元6,并且是存储关于在被监控的PE 100和200执行被监控处理时发生的对外围IP组400的访问的总线访问信息。比较/确定单元305对应于上述比较单元8,并且是将当PE 100和200中的一个执行被监控处理时的总线访问信息与当PE 100和200中的另一个执行监控处理时的总线访问信息比较以确定在PE 100和200中是否存在异常的电路。稍后将描述控制器303、存储单元304和比较/确定单元305的详细配置。
为了便于根据本实施例的监控方法进行理解,参照图3,将描述该实施例中的监控的具体示例。图3是示出在存储单元304的存储区(稍后描述)中存储数据的示例的示意图。在以下描述中,假设PE 100是被监控的PE(即,PE 100是执行被监控处理的PE),以及PE 200是执行用于监控PE 100的监控处理的PE。
图3具体地示出了存储区362,其是当通过PE 100执行被监控处理时存储总线访问信息的存储区。在该实施例中,为每个被监控处理分配ID。存储区362为每个ID保留一个区。在图3中,IDn_Start是为被监控处理保留的区的顶部地址,其中,ID的值为IDn(n=1、2、3…)。此外,IDn_End是为被监控处理保留的区的最终地址,其中ID的值为IDn。此外,P1是指示IDn_Start的指针,以及P2是在PE100执行被监控处理时指示总线访问信息的存储位置的指针或者是在PE 200执行监控处理时指示总线访问信息的参考目的地的指针。指针P2是相对于指针P1的相对地址,并且当PE 100完成被监控处理的执行时以及当PE 200完成监控处理的执行时被初始化为0。
如图3所示,当在通过PE 100执行被监控处理时发生读访问时,读地址和读数据被存储在存储区362中作为总线访问信息。以类似方式,当通过PE 100执行被监控处理时发生写访问时,写地址和写数据被存储在存储区362中作为总线访问信息。
具体地,当通过PE 100执行被监控处理时发生读访问时,总线机构300以以下过程执行处理。首先,总线机构300将从PE 100请求的读地址存储在由指针P1和P2指定的存储位置中。接下来,总线机构300更新指针P2的值。即,总线机构300通过添加与已经被存储的读地址数据的数据量相对应的地址值来更新指针P2。对应于读地址数据的数据量的地址值可以是预定值。接下来,总线机构300基于已经被更新的由指针P2指定的存储位置中的读地址来存储从外围IP组400获取的读数据。然后,总线机构300更新指针P2的值。即,总线机构300通过添加与已经存储的读数据的数据量相对应的地址值来更新指针P2。与读数据的数据量相对应的地址值可以是预定值。然后,总线机构300将读数据传输至PE 100。总线机构300每当发生与被监控处理的执行相关联的读访问时执行前述处理。
此外,当通过PE 100执行被监控处理时发生写访问时,总线机构300以以下过程执行处理。首先,总线机构300将从PE 100请求的写地址存储在由指针P1和指针P2指定的存储位置中。接下来,总线机构300更新指针P2的值。即,总线机构300通过添加与已经存储的写地址数据的数据量对应的地址值来更新指针P2。与写地址数据的数据量相对应的地址值可以是预定值。接下来,总线机构300将从PE 100请求的写数据存储在已经被更新的由指针P2指定的存储位置中。然后,总线机构300更新指针P2的值。即,总线机构300通过添加与已经存储的写数据的数据量相对应的地址值来更新指针P2。与写数据的数据量相对应的地址值可以是预定值。总线机构300将写数据写入由写地址指定的外围IP组400中。每当发生与被监控处理的执行相关联的写访问时,总线机构300执行前述处理。
当通过PE 100执行被监控处理均完成时,总线机构300请求PE200执行监控处理。当在通过PE 200执行监控处理时发生对外围IP组400的访问时,总线机构300如下操作。
当通过PE 200执行监控处理时发生读访问时,总线机构300以以下过程执行处理。首先,总线机构300将从PE 200请求的读地址与存储在由指针P1和指针P2指定的存储位置中的读地址进行比较。接下来,总线机构300更新指针P2的值。即,总线机构300通过添加与被存储的读地址数据的数据量相对应的地址值来更新指针P2。接下来,总线机构300将存储在由指针P1和指针P2指定的存储位置中的读数据传输至PE 200。总线机构300更新指针P2的值。即,总线机构300通过添加与存储的读数据的数据量相对应的地址值来更新指针P2。每当发生与监控处理的执行相关联的读访问时,总线机构300执行前述处理。
此外,当在通过PE 200执行监控处理时发生写访问时,总线机构300以以下过程执行处理。首先,总线机构300将从PE 200请求的写地址与存储在由指针P1和指针P2指定的存储位置中的写地址进行比较。接下来,总线机构300更新指针P2的值。即,总线机构300通过添加与存储的写地址数据的数据量相对应的地址值来更新指针P2。接下来,总线机构300将从PE 200请求的写数据与存储在由指针P1和P2指定的存储位置中的写数据进行比较。即,总线机构300更新指针P2的值。即,总线机构300通过添加与存储的写数据的数据量相对应的地址值来更新指针P2。每当发生与监控处理的执行相关联的写访问时,总线机构300执行前述处理。
如上所述,总线机构300仅检查关于与被监控处理的执行相关联的读访问的读地址,并且确定在PE 100和200中是否存在异常。此外,总线机构300检查关于与被监控处理的执行相关联的写访问的写地址和写数据,并确定在PE 100和200中是否存在异常。
接下来,将描述总线机构300的具体配置示例。在以下描述中,作为被监控目标的PE将被称为被监控PE,并且执行监控处理的PE(其处理内容与由被监控PE执行的被监控处理的处理内容相同,从而对被监控PE进行监控)被称为监控处理执行PE。虽然PE 100用作被监控PE且PE 200用作监控处理执行PE,但是PE 200也可以用作被监控PE且PE 100可用作监控处理执行PE。
<控制器303>
如图2所示,控制器303包括中断控制器310、监控控制器320、监控相关信息控制器330、总线访问信息控制器340和确定控制器350。此外,监控相关信息控制器330包括ID控制器331、指针控制器332、监控有效范围确定单元333和存储区信息控制器334。在以下描述中,将描述每个部件。
<中断控制器310>
中断控制器310是根据发生在PE 100和200中的中断请求监控控制器320控制监控处理的控制电路。中断控制器310具体执行以下操作。
在接收到来自PE 100和200的中断发生通知时,中断控制器310请求监控控制器320中断正在执行的监控处理。此外,在接收到来自PE 100和200的中断结束通知时,中断控制器310请求监控控制器320重新开始已经中断的监控处理。
<监控控制器320>
监控控制器320是控制总线机构300中的监控处理的控制电路。监控控制器320具体执行以下操作。
当监控控制器320接收到来自被监控PE的监控目标处理开始通知时,监控控制器320请求监控相关信息控制器330配置ID和指针。此外,监控控制器320向监控相关信息控制器330输出监控有效范围信息和存储区信息(与监控目标处理开始通知一起接收)。此外,当监控控制器320接收到来自被监控PE的监控目标处理开始通知时,监控控制器320通知总线访问信息控制器340其已经接收到通知,然后将来自被监控PE的总线访问信息输出至总线访问信息控制器340作为被监控处理,直到其接收到监控目标处理结束通知或者其接收到来自中断控制器310的用于中断监控处理的请求为止。
当监控控制器320接收到来自被监控PE的监控目标处理结束通知时,监控控制器320请求监控处理执行PE来执行监控处理。即,监控控制器320对应于前述请求单元7。此外,当监控控制器320接收到来自被监控PE的监控目标处理结束通知时,监控控制器320通知总线访问信息控制器340其接收到通知,然后将来自被监控PE的总线访问信息输出至总线访问信息控制器340作为正常处理,直到其接收到来自被监控PE的监控目标处理开始通知为止。
当监控控制器320接收到来自监控处理执行PE的监控处理开始通知时,监控控制器320请求总线访问信息控制器340禁止从监控处理执行PE对外围IP组400的访问。此外,当监控控制器320接收到来自监控处理执行PE的监控处理开始通知时,监控控制器320通知总线访问信息控制器340其已经接收到通知,然后向总线访问信息控制器340输出来自监控处理执行PE的总线访问信息作为监控处理。
当监控控制器320接收到来自监控处理执行PE的监控处理结束通知时,监控控制器320请求总线访问信息控制器340允许从监控处理执行PE对外围IP组400进行访问。此外,当监控控制器320接收到来自监控处理执行PE的监控处理结束通知时,监控控制器320通知总线访问信息控制器340其已经接收到通知,然后将来自监控处理执行PE的总线访问信息输出至总线访问信息控制器340作为正常处理。此外,当监控控制器320接收到来自监控处理执行PE的监控处理结束通知时,监控控制器320请求监控相关信息控制器330重置ID、重置指针、重置监控有效范围信息并释放已经保留的存储区。
当在执行被监控处理的同时监控控制器320接收到来自中断控制器310的中断请求时,监控控制器320请求监控相关信息控制器330保存ID、指针和监控有效范围信息。
当在执行监控处理的同时监控控制器320接收到来自中断控制器310的中断请求时,监控控制器320请求总线访问信息控制器340允许从监控处理执行PE访问外围IP组400。
当监控控制器320接收到来自中断控制器310的用于重新开始关于被监控处理的监控处理的请求时,监控控制器320请求监控相关信息控制器330恢复ID、指针和监控有效范围信息。当监控控制器320接收到重新开始请求时,监控控制器320通知总线访问信息控制器340其接收到重新开始请求,然后将总线访问信息从被监控PE输出至总线访问信息控制器340作为被监控处理,直到其接收到监控目标处理结束通知或者其接收到来自中断控制器310的用于中断的请求为止。
当监控控制器320接收到来自中断控制器310的关于监控处理的用于重新开始监控处理的请求时,监控控制器320请求总线访问信息控制器340禁止从监控处理执行PE访问外围IP组400。此外,当监控控制器320接收到来自中断控制器310发送的重新开始请求时,监控控制器320通知总线访问信息控制器340其接收到重新开始请求,然后将总线访问信息从监控处理执行PE输出至总线访问信息控制器340作为监控处理。
<ID控制器331>
ID控制器331是用于管理为每个被监控处理分配的ID的控制电路。ID控制器331具体地执行以下操作。
ID控制器331接收来自监控控制器320的用于设置ID的请求、用于保存ID的请求以及用于恢复ID的请求。当ID控制器331接收到来自监控控制器320的用于设置ID的请求时,ID控制器331向被监控处理分配特定ID。ID控制器331在设置在ID控制器331中的管理寄存器(未示出)中存储分配的ID,该寄存器是用于存储当前执行的ID的寄存器。同时,ID控制器331请求存储单元304存储与ID相关联的被监控处理。此外,当ID控制器331接收到来自监控控制器320的用于保存ID的请求时,ID控制器331将在管理寄存器中存储的ID存储在ID控制器331中设置的保存寄存器(未示出)中。此外,当ID控制器331接收到来自监控控制器320的用于恢复ID的请求时,ID控制器331在管理寄存器中恢复在保存寄存器中存储的ID。此外,当ID控制器331接收到来自监控控制器320的用于重置ID的请求时,ID控制器331重置管理寄存器。
<指针控制器332>
指针控制器332是管理前述指针P1和P2的控制电路。指针控制器332具体地执行以下操作。
指针控制器332接收来自监控控制器320的用于设置指针的请求、用于保存指针的请求、用于恢复指针的请求以及用于重置指针的请求。当指针控制器332接收到来自监控控制器320的用于设置指针的请求时,指针控制器332执行前述指针P1和P2的初始配置。指针控制器332请求存储单元304在指针控制器332中设置的管理寄存器(未示出)中存储与ID相关联地初始配置的指针P1的参考值并且存储初始配置的指针P2的参考值。虽然在该实施例中在存储单元304中存储指针P1,但可以类似于指针P2的方式在指针控制器332中设置的寄存器等中管理指针P1。此外,当指针控制器332接收到来自监控控制器320的用于保存指针的请求时,指针控制器332在指针控制器332中设置的保存寄存器(未示出)中存储在管理寄存器中存储的指针的参考值。此外,当指针控制器332接收到来自监控控制器320的用于恢复指针的请求时,指针控制器332在管理寄存器中恢复在保存寄存器中存储的指针的参考值。此外,当指针控制器332接收到来自监控控制器320的用于重置指针的请求时,指针控制器332重置管理寄存器。此外,当指针控制器332接收到来自总线访问信息控制器340的用于更新指针参考值的请求时,指针控制器332更新存储在管理寄存器中的指针P2的参考值。
<监控有效范围确定单元333>
监控有效范围确定单元333是配置监控有效范围信息的控制电路。监控有效范围确定单元333具体地执行以下操作。
监控有效范围确定单元333接收来自监控控制器的监控有效范围信息。此外,监控有效范围确定单元333接收来自监控控制器的用于保存监控有效范围信息的请求、用于恢复监控有效范围信息的请求以及用于重置监控有效范围信息的请求。一旦接收到来自监控控制器320的监控有效范围信息,监控有效范围确定单元333就在监控有效范围确定单元333中设置的管理寄存器(未示出)中存储监控有效范围信息。此外,一旦接收到来自监控控制器320的用于保存监控有效范围信息的请求,监控有效范围确定单元333就将在管理寄存器中存储的监控有效范围信息存储在监控有效范围确定单元333中设置的保存寄存器(未示出)中。此外,一旦接收到来自监控控制器320的用于恢复监控有效范围信息的请求,监控有效范围确定单元333就在管理寄存器中恢复在保存寄存器中存储的监控有效范围信息。此外,一旦接收到来自监控控制器320的用于重置监控有效范围信息的请求,监控有效范围确定单元333就重置与ID控制器331中设置的ID相对应的监控有效范围信息。具体地,监控有效范围确定单元333重置管理寄存器。
<存储区信息控制器334>
存储区信息控制器334是请求存储单元304基于存储区信息保留存储区的控制电路。存储区信息控制器334具体地执行以下操作。
存储区信息控制器334接收来自监控控制器320的存储区信息。此外,存储区信息控制器334接收来自监控控制器320的用于请求释放存储区的信号。当存储区信息控制器334接收到来自监控控制器320的存储区信息时,存储区信息控制器334请求存储单元304的存储控制器361保留与由存储区信息表示的存储容量相对应的区作为用于被监控PE的存储区。此外,当存储区信息控制器334接收到来自监控控制器320的用于释放存储区的请求时,存储区信息控制器334请求存储单元304的存储控制器361释放用于被监控PE的存储区。<总线访问信息控制器340>
总线访问信息控制器340是控制来自PE 100和200的总线访问信息的控制电路。总线访问信息控制器340具体地执行以下操作。
当总线访问信息控制器340由于被监控处理访问总线而接收到来自监控控制器320的总线访问信息时,总线访问信息控制器340检查在监控有效范围确定单元333中设置的信息。总线访问信息控制器340确定由接收到的总线访问信息指示的访问目的地是否在监控有效范围内。当访问目的地在监控有效范围内时,总线访问信息控制器340请求存储单元304在与ID控制器331中设置的ID相对应的存储区中存储总线访问信息,并且根据总线访问信息访问外围IP组400。当访问目的地在监控有效范围外时,总线访问信息控制器340不请求存储单元304存储总线访问信息并访问外围IP组400。
当总线访问信息控制器340接收到来自监控控制器320的总线访问信息作为监控处理的读访问时,总线访问信息控制器340执行以下操作。总线访问信息控制器340请求指针控制器332更新指针P2的指针参考值。此外,总线访问信息控制器340请求存储单元304输出与ID控制器331中设置的ID和指针控制器332中设置的指针参考值相对应的总线访问信息(具体地,读数据)。此外,总线访问信息控制器340请求确定控制器350比较与ID控制器331中设置的ID和指针控制器332中设置的指针参考值相对应的总线访问信息(具体地,读地址)。此外,总线访问信息控制器340将总线访问信息(具体地,读地址)从监控处理执行PE输出至比较器371。当总线访问信息控制器340获取来自存储单元304的读数据时,总线访问信息控制器340经由监控控制器320将读数据输出至监控处理执行PE。读地址是读目的地地址,并且读数据是已经被读出的数据。
此外,当总线访问信息控制器340接收到来自监控控制器320的总线访问信息作为由监控处理进行的写访问时,总线访问信息控制器340执行以下操作。总线访问信息控制器340请求指针控制器320更新指针P2的指针参考值。此外,总线访问信息控制器340请求确定控制器350比较与ID控制器331中设置的ID和指针控制器332中设置的指针参考值相对应的总线访问信息(具体地,写地址和写数据)。此外,总线访问信息控制器340将总线访问信息(具体地,写地址和写数据)从监控处理执行PE输出至比较器371。写地址表示写目的地地址,并且写数据表示被写入的数据。
<确定控制器350>
确定控制器350是基于关于被监控处理的访问的总线访问信息和关于监控处理的访问的总线访问信息控制被监控PE的操作的确定的控制电路。确定控制器350具体地执行以下操作。
当确定控制器350接收到来自总线访问信息控制器340的用于比较总线访问信息的请求时,确定控制器350请求存储单元302向比较/确定单元305输出关于与被请求的ID和指针相对应的被监控处理的总线访问信息。此外,确定控制器350接收来自比较/确定单元305的比较结果。当比较结果指示总线访问信息相互一致时,确定控制器350等待直到其接收到用于下一比较的请求为止。当比较结果指示总线访问信息相互不一致时,确定控制器350执行预定的错误处理。例如,该错误处理可以是用于请求被监控PE和监控处理执行PE执行预定中断处理的处理,或者可以是用于请求被监控PE和监控处理执行PE执行重置处理的处理。确定控制器350可以称为错误处理单元。以这种方式,执行错误处理,使得可以减少由于处理器元件的异常所导致的系统中的损伤。
<存储单元304>
如图2所示,存储单元304是包括存储控制器361以及存储区362和363的存储设备。在以下描述中,将描述每个部件。
<存储控制器361>
存储控制器361是控制存储单元304的操作的控制电路。存储控制器361具体地执行以下操作。
响应于来自ID控制器331和指针控制器332的请求,存储控制器361请求存储区362和363中的一个(其是用于被监控PE的存储区)存储ID和指针参考值。
此外,当存储控制器361接收到来自存储区信息控制器334的用于保留存储区的请求时,存储控制器361执行控制以在存储区362和363中为被监控PE保留与由存储区信息指示的存储容量相对应的区。当存储控制器361接收到来自存储区信息控制器334的用于释放存储区的请求时,存储控制器361执行控制以释放已经被保留的区。
响应于来自总线访问信息控制器340的请求,存储控制器361执行控制以在与关于被监控处理的ID相关联地保留的区中存储关于被监控处理的总线访问的总线访问信息。此外,响应于来自总线访问信息控制器340的请求,存储控制器361从存储区获取读数据作为对监控处理的读访问的响应,并且将获取的数据输出至总线访问信息控制器340。此时,具体地,存储控制器361为被监控处理请求存储区(即,存储区362和363中的一个)以传输存储在由ID和指针参考值指定的存储位置中的读数据,并且将由此获取的读数据输出至总线访问信息控制器340。
此外,响应于来自确定控制器350的请求,存储控制器361为被监控PE请求存储区(即,存储区362和363中的一个)以将存储在由ID和指针参考值指定的存储位置中的关于被监控处理的总线访问信息传输至比较/确定单元305。
<存储区362和363>
例如,存储区362和363中的每一个都是存储器。存储区362是用于PE 100的存储区,以及存储区363是用于PE 200的存储区。存储区362存储在PE 100是被监控PE时生成的ID和指针以及与通过PE 100执行被监控处理相关联的总线访问信息。以类似方式,存储区363存储在PE 200是被监控处理时生成的ID和指针以及与通过PE200执行被监控处理相关联的总线访问信息。
即,响应于来自存储控制器361的请求,存储区362存储关于由PE 100(其是被监控PE)执行的被监控处理的ID。以类似方式,响应于来自存储控制器361的请求,存储区363存储关于由PE 200(其是被监控PE)执行的被监控处理的ID。此外,响应于来自存储控制器361的请求,存储区362存储关于由PE 100(其是被监控PE)执行的被监控处理的指针P1的参考值。以类似方式,响应于来自存储控制器361的请求,存储区363存储关于由PE 200(其是被监控PE)执行的被监控处理的指针P1的参考值。此外,响应于来自存储控制器361的请求,存储区362在由ID和指针参考值指定的存储位置中存储通过PE 100执行被监控处理生成的总线访问信息。以类似方式,响应于来自存储控制器361的请求,存储区363在由ID和指针参考值指定的存储位置中存储通过PE 200执行被监控处理生成的总线访问信息。此外,响应于来自存储控制器361的请求,存储区362和363将存储在由ID和指针参考值指定的存储位置中存储的读数据传输至存储控制器361。此外,响应于来自存储控制器361的请求,存储区362和363将由ID和指针参考值指定的存储位置中存储的总线访问信息传输至比较/确定单元305。
<比较/确定单元305>
如图2所示,比较/确定单元305是包括比较器371和比较结果通知单元372的控制电路。以下将描述每个部件。
<比较器371>
比较器371从存储单元304输出的关于被监控处理的总线访问信息与从总线访问信息控制器340输出的关于监控处理的总线访问信息进行比较,并将比较结果输出至比较结果通知单元372。当将被比较的总线访问信息是关于读访问的总线访问信息时,比较器371执行用于读地址的比较。当将被比较的总线访问信息是关于写访问的总线访问信息时,比较器371执行用于写地址和写数据的比较。
<比较结果通知单元372>
比较结果通知单元372是向确定控制器350通知从比较器371输出的比较结果的控制电路。
<多处理器系统10的操作示例>
接下来,将描述多处理器系统10的操作示例。首先,将描述不发生中断时的操作示例。
<操作示例1>
图4A和图4B是示出根据第一实施例的当在多处理器系统10中不发生中断时的操作示例的流程图。在以下描述中,参照图4A和图4B所示的流程图,将描述多处理器系统10的操作示例。
在步骤100(S100)中,假设PE 100执行正常处理。以类似方式,在步骤200(S200)中,假设PE 200执行正常处理。此时,总线机构300执行正常总线访问(步骤300(S300))。即,虽然总线机构300响应于PE 100或PE 200对外围IP组400的访问请求相对于外围IP组400执行写处理或读处理,但总线机构300不执行用于监控的处理。
当假设PE 100执行被监控处理时,在步骤101(S101)中,PE 100向总线机构300输出监控目标处理开始通知、监控有效范围信息和存储区信息。
另一方面,在步骤301(S301)中,总线机构300执行用于监控处理的初始配置。具体地,总线机构300执行以下处理。总线机构300基于存储区信息保留该区以在存储区362中存储由被监控处理生成的总线访问信息。此外,总线机构300为被监控处理设置ID并存储该ID。此外,总线机构300设置对应于该ID的指针并存储该指针。此外,总线机构300存储监控有效范围信息。在该步骤之后,总线机构300将来自PE 100的访问处理为通过被监控处理发生的访问。
虽然在该实施例中基于存储区信息保留该区,但存储区信息可以不是必须地输入至总线机构300。在这种情况下,总线机构300例如可以保留预定的充足区域。
在步骤102(S102)中,PE 100执行被监控处理。例如,PE 100请求总线机构300用于外围IP组400的读访问,基于读数据执行操作,并且请求总线机构300用于写访问来将操作结果写入外围IP组400。
总线机构300处理从PE 100发送的访问请求(步骤302(S302))。具体地,总线机构300响应于从PE 100发送的读访问请求将来自外围IP组400的读数据输出至PE 100。此外,总线机构300响应于从PE 100发送的写访问请求将写数据写入外围IP组400。
当总线机构300接收到从PE 100发送的访问请求时,即,当总线机构300接收到来自PE 100的总线访问信息时,总线机构300确定访问目的地是否在监控有效范围内(步骤303(S303))。
当访问目的地在监控有效范围内时,在步骤304(S304)中,总线机构300在步骤301中保留的区中存储总线访问信息。即,总线机构300响应于读访问存储读地址和读数据,以及响应于写访问存储写地址和写数据。以这种方式,总线机构300的存储单元304存储关于通知为被监控目标的访问范围中包括的访问的总线访问信息。
在PE 100中,重复步骤102,直到完成被监控处理的执行为止(步骤103(S103)中为否)。当PE 100完成被监控处理的执行时(步骤103中为是),则PE 100向总线机构300输出监控目标处理结束通知(步骤104(S104))。此后,PE执行正常处理(步骤105(S105))。
在步骤305(S305)中,当总线机构300接收来自PE 100的监控目标处理结束通知时,总线机构300请求PE 200执行监控处理。另一方面,当生成空闲时间时,PE 200执行监控处理。当总线机构300请求PE 200执行监控处理时,总线机构300可以向PE 200通知指定应该被执行的监控处理的信息。当总线机构300不向PE 200通知指定应该被执行的监控处理的信息时,PE 200例如执行预定的监控处理。
在步骤201(S201)中,当开始执行监控处理时,PE 200向总线机构300输出监控处理开始通知。
在步骤306(S306)中,已经接收到来自PE 200的监控处理开始通知的总线机构300禁止PE 200访问外围IP组400。在以下处理中,不响应于与PE 200中的监控处理的执行相关联的对外围IP组400的访问请求而执行对外围IP组400的实际访问。以这种方式,由于禁止实际访问,所以可以防止外围IP组中的数据由于监控处理的执行为被重写。
在步骤202(S202)中,PE 200执行监控处理。例如,PE 200请求总线机构300执行对外围IP组400的读访问,基于读数据执行操作,并且请求总线机构300用于写访问以将操作结果写入外围IP组400。此时,即使在从PE 200发送写访问请求时,也不执行对外围IP组400的写处理。此外,即使在从PE 200发送读访问请求时,也不执行从外围IP组400的读处理并且存储在存储区362中的读数据被传输至PE 200。换句话说,在PE 200正在执行监控处理的同时,总线机构300响应于PE 200对外围IP组400的读访问请求将通过PE100存储在存储单元304中的读数据输出至PE 200,并且不响应于PE200对外围IP组400的写访问请求执行对外围IP组400的写访问。
在步骤307(S307中),总线机构300比较总线访问信息。具体地,总线机构300将步骤304中存储的从PE 200发送的访问请求的总线访问信息与从PE 100发送的访问请求的总线访问信息进行比较。在这种情况下,对访问请求的总线访问信息执行比较,其中,访问目的地在监控有效范围内。即,总线机构300的比较器371比较关于包括在访问范围中的访问(通知被发送作为被监控目标)的总线访问信息。
作为关于读访问的总线访问信息的比较,总线机构300的比较器371将存储在存储单元304中的PE 100的读地址与在PE 200执行监控处理时从PE 200输入的读地址进行比较。因此,可以确定读访问是否已经被适当地执行。此外,作为关于写访问的总线访问信息的比较,比较器371将存储在存储单元304中的PE 100的写地址与在PE200执行监控处理时从PE 200输入的写地址进行比较,并且将存储在存储单元304中的PE 100的写数据与在PE200执行监控处理时从PE200输入的写数据进行比较。因此,可以确定是否适当地执行写访问。
当上文的前一和后一总线访问信息相互不一致时(步骤308(S308)中为否),总线机构300执行预定的错误处理(步骤309(S309))。例如,总线机构300请求PE 100和PE 200执行中断处理等。
当总线访问信息相互一致时(步骤308中为是),在PE 200中,重复步骤202直到完成监控处理的执行为止(步骤203(S203)中为否)。当完成监控处理的执行时(步骤203中为是),PE 200向总线机构300输出监控处理结束通知(步骤204(S204))。此后,PE 200执行正常处理(步骤205(S205))。
在步骤310(S310)中,当总线机构300接收到来自PE 200的监控处理结束通知时,总线机构300执行关于监控处理的重置处理。具体地,总线机构300删除ID、指针和监控有效访问,并释放在步骤301中保留的区。此后,总线机构300执行正常总线访问(步骤311(S311))。
<操作示例2>
接下来,将描述在正在执行被监控处理的PE 100中发生不包括被监控处理的中断处理时的操作示例。图5A是示出当在正在执行被监控处理的PE 100中发生中断处理时的操作示例的流程图。图5B是示出在正在执行被监控处理的PE 100中发生不包括被监控处理的中断处理时的中断相关处理的操作示例的流程图。当在正在执行被监控处理的PE 100中发生中断处理时,如图5A所示,在PE 100和总线机构300中发生中断相关处理(步骤10(S10))。图5A所示的流程图与图4A所示的流程图相同,除了在图5A中添加了中断相关处理(步骤10)。因此,将省略图5A所示流程图中的步骤的描述。在图5B中示出步骤10中的中断相关处理的具体操作。在以下描述中,参照图5B所示的流程图,将描述在多处理器系统10中发生中断相关处理的操作示例。
在中断相关处理中,在步骤120(S120)中,PE 100在其开始执行中断处理时向总线机构300输出中断发生通知。然后,在步骤121(S121)中,PE 100执行不包括被监控处理的中断处理。
当总线机构300接收中断发生通知时,总线机构300中断监控处理(步骤320(S320))。总线机构300在其中断监控处理时保存ID、指针和监控有效范围信息。
在PE 100中,重复步骤S121直到完成中断处理为止(步骤122(S122)中为否)。当完成中断处理时(步骤122中为是),PE 100向总线机构300输出中断结束通知(步骤123(S123))。
当总线机构300接收到中断结束通知时,总线机构300重新开始监控处理(步骤321(S321))。总线机构300在其重新开始监控处理时恢复已经保存的ID、指针和监控有效范围信息。此后,执行步骤103中的处理和图4A中的以下处理。
<操作示例3>
接下来,将描述在正在执行被监控处理的PE 100中发生包括被监控处理的中断处理的情况的操作示例。在这种情况下,图5A所示的流程图也是操作示例。然而,关于步骤10中的中断相关处理,图6A和图6B所示的流程图(而非图5B所示的流程图)是操作示例。图6A和图6B是示出在正在执行被监控处理的PE 100中发生包括被监控处理的中断处理的情况中的中断相关处理的操作示例。在以下描述中,参照图6A和图6B所示的流程图,将描述在PE100中发生包括被监控处理的中断处理的情况下的操作示例。
在该操作示例的中断相关处理中,在步骤130(S130)中,PE 100在其开始中断处理的执行时向总线机构300输出中断发生通知、监控目标处理开始通知、监控有效范围信息和存储区信息。
在步骤330(S330)中,当总线机构300接收到中断发生通知时,总线机构300中断作为被监控目标的被监控处理(以下该处理将被称为第一被监控处理)的监控处理。当总线机构300中断第一被监控处理的监控处理时,总线机构300保存关于第一被监控处理的ID、指针和监控有效范围信息。
在步骤331(S331)中,总线机构300执行用于中断处理中的新的被监控处理(以下该处理将被称为第二被监控处理)的监控处理的初始配置。具体地,总线机构300执行以下处理。总线机构300基于存储区信息保留用于在存储区362中存储由第二被监控处理生成的总线访问信息的区。此外,总线机构300设置用于第二被监控处理的ID并存储该ID。此外,总线机构300设置对应于该ID的指针并存储该指针。此外,总线机构300存储关于第二被监控处理的监控有效范围信息。在该步骤之后,总线机构300处理来自PE 100的访问作为通过被监控处理发生的访问。
以下,执行与步骤102的操作和图4A中的以下操作类似的操作。因此,将简要描述步骤331中的处理和以下操作。
在步骤131(S131)中,类似于图4A中的S102,PE 100执行中断处理,即第二被监控处理。
类似于图4A中的S302,总线机构300处理从PE 100发送的访问请求(步骤332(S332))。
类似于图4A中的S303,当从PE 100发送访问请求时,总线机构300确定访问目的地是否在监控有效范围内(步骤333(S333))。
当访问目的地在于监控有效范围内时,类似于图4A中的S304,在步骤334(S334)中,总线机构300在步骤331中保留的区中存储总线访问信息。即,在为每个被监控处理设置的区中,存储单元304存储关于在执行被监控处理时发生的对外围IP组400的访问的总线访问信息。因此,当PE 100正在执行被监控处理的同时在PE 100中发生关于另一个新的被监控处理的中断处理时,总线机构300在与发生中断处理之前对应于被监控处理的区不同的区中存储关于中断处理的总线访问信息。以这种方式,针对每个被监控处理管理总线访问信息,从而可以适当地对每个被监控处理执行监控处理,即使在发生中断处理时。
在PE 100中,重复步骤131直到完成第二被监控处理的执行为止(步骤132(S132)中为否)。当完成第二被监控处理的执行时(步骤132中为是),PE 100向总线机构300输出监控目标处理结束通知和中断结束通知(步骤133(S133))。
在步骤335(S335)中,类似于图4A中的S305,当总线机构300接收到来自PE 100的关于第二被监控处理的监控目标处理结束通知时,总线机构300请求PE 200执行关于第二被监控处理的监控处理(以下该处理将被称为第二监控处理)。另一方面,当生成空闲时间时,PE 200执行第二监控处理。
在步骤230(S230)中,类似于图4B中的S201,PE 200在其开始第二监控处理的执行时向总线机构300输出监控处理开始通知。
在步骤336(S336)中,类似于图4B中的S306,接收到来自PE200的监控处理开始通知的总线机构300禁止PE 200访问外围IP组400。
在步骤231(S231)中,类似于图4B中的S202,PE 200执行第二监控处理。
在步骤337(S337)中,类似于图4B中的S307,总线机构300比较总线访问信息。当两个总线访问信息相互不一致时(步骤338(S338)中为否),类似于图4B中的S309,总线机构300执行预定的错误处理(步骤339(S339))。
当两个总线访问信息相互一致时(步骤S338中为是),在PE 200中,重复步骤231直到完成第二监控处理的执行为止(步骤232(S232)中为否)。当完成第二监控处理的执行时(步骤232中为是),则PE 200向总线机构300输出关于第二监控处理的监控处理结束通知(步骤233(S233))。
在步骤340(S340)中,类似于图4B中的S310,当总线机构300接收到来自PE 200的监控处理结束通知时,总线机构300执行关于第二被监控处理的监控处理的重置处理。此外,在步骤341(S341)中,总线机构300重新开始关于第一被监控处理的监控处理。即,总线机构300在其重新开始监控处理时恢复已经被保存的ID、指针和监控有效范围信息。此后,PE 100重新开始第一被监控处理的执行,并且执行步骤103中的处理和图4A中的以下处理。
<操作示例4>
接下来,将描述在正在执行监控处理的PE 200中发生中断处理时的操作示例。在这种情况下,通过图7A所示的流程图来代替图4B所示的流程图。即,在图4A所示流程图之后,执行图7A所示流程图。图7A是示出在正在执行监控处理的PE 200中发生中断处理时的操作示例的流程图。图7B是示出在正在执行监控处理的PE 200中发生中断处理时的中断相关处理的操作示例的流程图。
当在正在执行监控处理的PE 200中发生中断处理时,如图7A所示,在PE 200和总线机构300中发生中断相关处理(步骤20(S20))。图7A所示的流程图与图4B所示流程图相同,除了添加了中断相关处理(步骤20)。因此,将省略图7A所示流程图的步骤的描述。图7B中示出了步骤20中的中断相关处理的具体操作。在以下描述中,参照图7B所示的流程图,将描述发生在多处理器系统10中的中断相关处理的操作示例。
在根据该操作示例的中断相关处理中,在步骤250(S250)中,PE 200在其开始中断处理的执行时向总线机构300输出中断发生通知。
在步骤350(S350)中,当总线机构300接收到来自PE 200的中断发生通知时,总线机构300释放PE 200对外围IP组400的禁止访问,并且执行正常的总线访问。因此,PE 200能够执行涉及对外围IP组400的访问的中断处理(步骤251(S251))。
在PE 200中,重复步骤251,直到完成中断处理位置(步骤252(S252)中为否)。当完成中断处理时(步骤252中为是),PE 200向总线机构300输出中断结束通知(步骤253(S253))。
在步骤351(S351)中,当总线机构300接收到中断结束通知时,总线机构300再次禁止PE访问外围IP组400。此后,PE 200重新开始执行监控处理,并且执行步骤203中的处理以及图4B所示的以下处理。
上文已经描述了第一实施例。在根据该实施例的多处理器系统10中,如上所述,在完成由被监控PE执行的被监控处理之后,总线机构300请求监控处理执行PE执行监控处理。然后,监控处理执行PE在其自己的空闲时间中执行监控处理。因此,监控处理执行PE可以不是专用于监控被监控PE的处理器元件。因此,根据多处理器系统10,可以在抑制成本的同时实现监控处理器元件。
此外,当PE 100和200周期性地执行包括被监控处理的预定处理以周期性地实现预定处理时,得到以下优势。在每个循环中,监控处理执行PE例如能够在时间t1处完成预定处理的执行,并且使用周期T中的空闲时间t2(=T-t1)来执行用于监控被监控PE的监控处理。因此,总线机构300能够完成针对每个循环的监控处理。即,可以在开始下一循环之前检测被监控PE中的异常。此外,当PE 100和200周期性地执行包括被监控处理的预定处理以周期性地实现预定处理时,PE 100和200均能够使用其自己的空闲时间执行监控处理,从而总线机构300能够在每个循环中监控PE 100和200。
虽然例如在DLS中需要四个PE以检测任意两个独立处理的异常,但在其他技术中,两个PE可以在该实施例中相互执行彼此独立的监控。因此,可以降低成本。顺便提及,具有两种方法来通过软件处理检测PE的异常,而不是根据该实施例的异常检测方法。
第一种方法是通过两个PE中的每一个从外围IP组获取读数据,以在不同的存储区中存储数据,并且执行操作、比较和确定。第二种方法是通过一个PE使用通过另一PE获取的读数据用于操作、比较和确定。第一种方法具有当从外围IP资源获取数据时通过一个PE获取的数据例如会由于定时差而不同于由另一PE获取的数据的问题。即,第一种方法的问题在于不能确保读数据的身份。此外,在第二种方法中,PE需要执行用于存储在存储区中获取的读数据的处理。这导致开销增加(overhead)并降低了PE的性能。此外,当PE中存在异常时,读数据不可以正确地存储在存储区中。如果另一PE使用这些读数据,则不能正确地检测异常。该实施例通过软件处理避免了方法问题的发生。
<第二实施例>
接下来,将描述第二实施例。第二实施例是关于使用根据第一实施例的多处理器系统10的车辆控制系统的实施例。图8是示出根据第二实施例的车辆控制系统20的配置的一个示例的框图。如图8所示,车辆控制系统20与根据第一实施例的多处理器系统10的不同在于:进一步设置有电机500和600。车辆控制系统20安装在车辆(未示出)上。因此,在以下描述中,仅描述与第一实施例的不同,并且将省略重复描述。
电机500和600中的每一个都是安装在车辆上的电机,并且例如是驱动车辆的驱动源。由于PE 100和200在预定时间段内控制对应的电机,所以它们在预定的时间段内执行用于生成控制信号(诸如矩形波)的处理。PE 100生成控制信号以控制电机500。此外,PE 200生成控制信号以控制电机600。
在生成控制信号时,PE 100和200经由总线机构300访问外围IP组400。在预定周期中周期性地执行控制信号的生成。更具体地,每个PE 100和200都周期性地执行用于生成控制信号的信号生成处理和监控处理。该信号生成处理是被监控处理。即,在周期T期间,PE100执行信号生成处理并且执行被监控处理以通过PE 200监控信号生成处理的执行。以类似方式,在周期T期间,PE 200执行信号生成处理并且执行被监控处理以通过PE 100监控信号生成处理的执行。PE100和200在时区(在此期间,不在执行信号生成处理和监控处理的周期T中执行信号生成处理)中执行监控处理。
作为当两个PE控制对应电机时实现功能安全性的方法,存在准备专用于监控一个PE的一个或两个PE的方法。然而,该方法要求至少四个PE。另一方面,在该实施例中,可以通过两个PE实现功能安全性。即,不需要准备专用于监控的PE。以这种方式,根据该实施例,可以当控制车辆时实现功能安全性,同时抑制成本。
虽然上文基于实施例已经具体描述了发明人做出的本发明,但不需要说,本发明不限于上文具体阐述的实施例,而是可以在本发明的范围内以各种方式改变。
本领域技术人员可以根据需要组合第一和第二实施例。
虽然根据多个实施例描述了本发明,但本领域技术人员将意识到在所附权利要求的精神和范围内可以各种修改来实践本发明,并且本发明不限于上述示例。
此外,权利要求的范围不通过上述实施例来限制。
此外,应注意,申请人的意图是包括所有权利要求要素的等效物,即使稍后在审查程序期间进行修改。
Claims (11)
1.一种多处理器系统,包括:
第一处理器元件;
第二处理器元件;
被访问单元,被配置为通过所述第一处理器元件来访问;以及
总线机构,设置在所述第一处理器元件与所述被访问单元之间的访问路径上,其中
所述总线机构包括:
存储单元,被配置为存储与在所述第一处理器元件已执行被监控处理时发生的对所述被访问单元的访问有关的总线访问信息;
请求单元,被配置为在所述第一处理器元件已完成所述被监控处理的执行之后,请求所述第二处理器元件执行监控处理,所述监控处理的处理内容与所述被监控处理的处理内容相同;和
比较单元,被配置为将存储在所述存储单元中的与所述第一处理器元件的访问有关的总线访问信息与在所述第二处理器元件已执行所述监控处理时从所述第二处理器元件输入的总线访问信息进行比较,并且
所述第二处理器元件在空闲时间中执行所述监控处理。
2.根据权利要求1所述的多处理器系统,其中
所述第二处理器元件周期性地执行预定处理和所述监控处理,并且
所述空闲时间是一时区,在该时区内,在所述第二处理器元件中执行所述预定处理和所述监控处理的周期中不执行所述预定处理。
3.根据权利要求1所述的多处理器系统,其中
当开始所述被监控处理的执行时,所述第一处理器元件通知所述总线机构开始执行所述被监控处理,并且
所述总线机构在接收到指示开始执行所述被监控处理的通知时通过所述存储单元、所述请求单元和所述比较单元来执行处理。
4.根据权利要求3所述的多处理器系统,其中
当开始执行所述被监控处理时,所述第一处理器元件还通知所述总线机构被监控的访问范围,
所述存储单元存储与包括在所述访问范围中的访问有关的总线访问信息,其中关于所述访问范围,已作为被监控目标发送通知,并且
所述比较单元执行与包括在所述访问范围中的访问有关的总线访问信息的比较,其中关于所述访问范围,已作为所述被监控目标发送通知。
5.根据权利要求1所述的多处理器系统,其中
在所述第二处理器元件执行所述监控处理时,
响应于所述第二处理器元件对所述被访问单元的读访问请求,所述总线机构将存储在所述存储单元中的所述第一处理器元件的读数据输出至所述第二处理器元件,并且
响应于所述第二处理器元件对所述被访问单元的写访问请求,所述总线机构不执行对所述被访问单元的写访问。
6.根据权利要求1所述的多处理器系统,其中
作为关于读访问的所述总线访问信息的比较,
所述比较单元将存储在所述存储单元中的所述第一处理器元件的读地址与在所述第二处理器元件已执行所述监控处理时从所述第二处理器元件输入的读地址进行比较。
7.根据权利要求1所述的多处理器系统,其中
作为关于写访问的所述总线访问信息的比较,
所述比较单元将存储在所述存储单元中的所述第一处理器元件的写地址与在所述第二处理器元件已执行所述监控处理时从所述第二处理器元件输入的写地址进行比较,并且
所述比较单元将存储在所述存储单元中的所述第一处理器元件的写数据与在所述第二处理器元件已执行所述监控处理时从所述第二处理器元件输入的写数据进行比较。
8.根据权利要求1所述的多处理器系统,其中
所述存储单元在针对每个被监控处理设置的区中存储与在已执行所述被监控处理时发生的对所述被访问单元的访问有关的总线访问信息,并且
当在所述第一处理器元件中已发生关于另一个新的被监控处理的中断处理并且同时所述第一处理器元件正在执行所述被监控处理时,所述总线机构在一个区中存储关于所述中断处理的总线访问信息,所述一个区与在发生所述中断处理之前的被监控处理相对应的区不同。
9.根据权利要求1所述的多处理器系统,还包括错误处理单元,当所述比较单元的比较结果指示前一个和后一个总线访问信息相互不一致时,所述错误处理单元执行预定的错误处理。
10.一种车辆控制系统,包括:
第一电机,安装在车辆上;
第一处理器元件,被配置为生成用于所述第一电机的控制信号;
第二电机,安装在所述车辆上;
第二处理器元件,被配置为生成用于所述第二电机的控制信号;
被访问单元,被所述第一处理器元件访问;以及
总线机构,设置在所述第一处理器元件与所述被访问单元之间的访问路径上,其中
所述总线机构包括:
存储单元,被配置为存储与在所述第一处理器元件已执行被监控处理时发生的对所述被访问单元的访问有关的总线访问信息;
请求单元,被配置为在所述第一处理器元件已完成所述被监控处理的执行之后,请求所述第二处理器元件执行监控处理,所述监控处理的处理内容与所述被监控处理的处理内容相同;和
比较单元,被配置为将存储在所述存储单元中的与所述第一处理器元件的访问有关的总线访问信息与在所述第二处理器元件已执行所述监控处理时从所述第二处理器元件输入的总线访问信息进行比较,并且
所述第二处理器元件在空闲时间中执行所述监控处理。
11.根据权利要求10所述的车辆控制系统,其中
所述第一处理器元件和所述第二处理器元件周期性地执行用于生成所述控制信号的信号生成处理和所述监控处理,
所述被监控处理是由所述第一处理器元件执行的所述信号生成处理,并且
所述空闲时间是一时区,在该时区内,在执行所述信号生成处理和所述监控处理的周期中不执行所述信号生成处理。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016-175474 | 2016-09-08 | ||
JP2016175474A JP2018041311A (ja) | 2016-09-08 | 2016-09-08 | マルチプロセッサシステム及び車両制御システム |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107807866A true CN107807866A (zh) | 2018-03-16 |
Family
ID=61281378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710592790.0A Pending CN107807866A (zh) | 2016-09-08 | 2017-07-19 | 多处理器系统和车辆控制系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10269194B2 (zh) |
JP (1) | JP2018041311A (zh) |
CN (1) | CN107807866A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595303A (zh) * | 2018-04-11 | 2018-09-28 | 郑州云海信息技术有限公司 | 一种基于系统的进程和文件监控方法及系统 |
JP7347380B2 (ja) * | 2020-09-09 | 2023-09-20 | トヨタ自動車株式会社 | 処理装置、通信システム、及び処理装置用プログラム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7272681B2 (en) * | 2005-08-05 | 2007-09-18 | Raytheon Company | System having parallel data processors which generate redundant effector date to detect errors |
JP6297853B2 (ja) | 2014-02-18 | 2018-03-20 | ルネサスエレクトロニクス株式会社 | マルチプロセッサシステム |
-
2016
- 2016-09-08 JP JP2016175474A patent/JP2018041311A/ja active Pending
-
2017
- 2017-07-06 US US15/643,305 patent/US10269194B2/en active Active
- 2017-07-19 CN CN201710592790.0A patent/CN107807866A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2018041311A (ja) | 2018-03-15 |
US20180068501A1 (en) | 2018-03-08 |
US10269194B2 (en) | 2019-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8543866B2 (en) | Remote access diagnostic mechanism for communication devices | |
EP0167540A1 (en) | CENTRAL UNIT TOLERATING LOSS OF ACCESS TO AN AUXILIARY MEMORY. | |
US20170149925A1 (en) | Processing cache data | |
KR20180030115A (ko) | 분산 데이터베이스 시스템을 갖는 네트워크에서 데이터베이스 접근 제어를 제공하기 위한 방법 및 아키텍처 | |
CN108351840B (zh) | 车辆控制装置 | |
JPH1083257A (ja) | データストレージシステム及びデータストレージ管理方法 | |
JP2008168649A (ja) | 車両用制御システム | |
CN107807866A (zh) | 多处理器系统和车辆控制系统 | |
JPH08320835A (ja) | 外部バスの障害検出方法 | |
US7805709B2 (en) | System and method for bypassing execution of an algorithm | |
EP2110748A2 (en) | Cluster control apparatus, control system, control method, and control program | |
JP6654230B2 (ja) | 車両制御装置 | |
JP2009146051A (ja) | 設備管理装置、設備機器ネットワークシステム、データアクセス制御方法、通信トラフィック制御方法、データアクセス制御プログラム、通信トラフィック制御プログラム | |
JP2002027027A (ja) | 計算機システム、計算機管理システム及びシステム管理方法 | |
JP6874102B2 (ja) | 不正検知電子制御ユニット、車載ネットワークシステム及び不正検知方法 | |
CN109358903A (zh) | 数据访问设备和访问错误通知方法 | |
US11403218B2 (en) | Storage controller cache integrity management | |
US20230033947A1 (en) | Memory system with accessible storage region to gateway | |
JP5942904B2 (ja) | 処理装置 | |
JPH11272508A (ja) | 監視対象装置の異常検出方法及びその装置並びにプログラムを記録した機械読み取り可能な記録媒体 | |
US11314954B2 (en) | RFID tag and RFID tag system | |
JP3487337B2 (ja) | メモリ検査方法、情報記憶媒体、データ処理装置 | |
CN114327826A (zh) | 调度器管理方法、装置、设备及存储介质 | |
JP4595549B2 (ja) | 情報処理装置 | |
JPS5839307A (ja) | プログラマブル・コントロ−ラ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180316 |
|
WD01 | Invention patent application deemed withdrawn after publication |