JP4985662B2 - Program, and the control device - Google Patents

Program, and the control device

Info

Publication number
JP4985662B2
JP4985662B2 JP2009012055A JP2009012055A JP4985662B2 JP 4985662 B2 JP4985662 B2 JP 4985662B2 JP 2009012055 A JP2009012055 A JP 2009012055A JP 2009012055 A JP2009012055 A JP 2009012055A JP 4985662 B2 JP4985662 B2 JP 4985662B2
Authority
JP
Grant status
Grant
Patent type
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009012055A
Other languages
Japanese (ja)
Other versions
JP2010170320A (en )
Inventor
洋介 佐藤
Original Assignee
株式会社デンソー
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
Grant date

Links

Images

Description

本発明は、CPUに、複数の処理単位を並行して実行させるプログラム等に関する。 The present invention relates to CPU, a program or the like to be executed in parallel a plurality of processing units.

車両には多くのECUが搭載されており、これらのECUは、車内LAN等を介して通信を行い、互いに連携して処理を行う。 The vehicle has a number of ECU mounted, these ECU communicates via the in-vehicle LAN, and performs processing in cooperation with each other. 今後、車両の高機能化、高性能化に伴い、より多くのECUが車両に搭載されると考えられている。 In the future, high performance of the vehicle, with the high performance, more ECU is believed to be mounted on a vehicle.

しかしながら、車両内部は限られた空間であるため、無制限にECUの数を増やすことはできない。 However, since the vehicle interior is limited space, it can not increase the number of unlimited ECU. また、ECUの数を増加させると、車内LANの通信負荷が増加するため、各ECUの処理に対する悪影響が生じるおそれがある。 Also, increasing the number of ECU, for communication load vehicle LAN is increased, there is a possibility that adverse effect on the processing of each ECU may occur. さらに、ECUの数の増加により車両の重量が増加してしまうため、燃費の悪化が懸念される。 Furthermore, since the weight of the vehicle is increased by increasing the number of ECU, deterioration of fuel efficiency is concerned. このように、車両に搭載可能なECUの数には限りがあると共に、ECUの数の増加による様々なデメリットが存在する。 Thus, with the number of mountable ECU in the vehicle it is limited, there are various disadvantages due to the increase in the number of ECU. このような問題の対策として、複数のECUを一つに統合するという方法が実施されている。 As a countermeasure for such a problem, methods have been implemented that integrate multiple ECU into one. 複数のECUを一つに統合する際には、ECUの小型化やコスト低減の観点から、統合前のECUのマイコンにて行われていた処理を1台のマイコンで実施することが望ましい。 When integrating a plurality of ECU to one, it is desirable to perform in terms of downsizing and cost reduction of the ECU, a process has been performed by the microcomputer of the ECU before integration with a single microcomputer. このためには、統合前のECUのマイコンに搭載されているプログラムを一つに統合し、新たなプログラムを作成しなければならない。 To this end, it integrated into one program installed in the microcomputer of the ECU before integration must create a new program.

ここで、非特許文献1には、複数のECUに搭載されているプログラムを統合し、一つのプログラムとする際に用いることができる保護機能付RTOSについて記載されている。 Here, Non-Patent Document 1, integrated programs that are installed in a plurality of ECU, have been described for RTOS with protection function can be used in a single program. この保護機能付RTOSでは、統合前のECUのプログラム(Virtual Machine Program、略してVMとも記載する)である第一のVMと、第二のVMと、第三のVMとに対し、例えば、図2の(a)に記載のVMスケジューリングテーブルに基づきタイムスロットを割り当て、各VMを並行して実行させていると考えられる。 In the attached protection RTOS, before integration ECU program (Virtual Machine Program, also referred to as VM for short) and the first VM is, the second VM, to a third VM, for example, FIG. assigned time slots based on the VM scheduling table according to the 2 (a), it is considered that is executed in parallel each VM. この保護機能付RTOSを用いることにより、プログラムを大きく変更することなく、複数のECUに搭載されているプログラムの統合を行うことができる。 By using this protection with RTOS, without significantly changing the program, it is possible to perform the integration of programs installed into a plurality of ECU.

ところで、車両には、例えば、エンジン制御ECUや、エアバック制御ECUが搭載されているが、このようなECUでは、安全上の観点から、外部からの入力に対して所定の時間内に応答を行うというリアルタイム性が要求される。 Incidentally, the vehicle, for example, an engine control ECU, but air bag control ECU is mounted, in such ECU, from the viewpoint of safety, a response within a predetermined time with respect to the input from the outside It requires real time of performing. これに対し、例えば、オーディオ制御ECU等においては、エンジン制御ECU等に比べると、リアルタイム性の必要性は低いといえる。 In contrast, for example, in the audio control ECU or the like, as compared to the engine control ECU or the like, the need for real-time can be said to be low. このため、エンジン制御ECU等とオーディオ制御ECUとを一つに統合する場合には、少なくともエンジン制御ECU等に対応するVMのリアルタイム性を確保する必要がある。 Therefore, when integrating the engine control ECU or the like and the audio control ECU in one, it is necessary to ensure the real-time VM corresponding to at least an engine control ECU, and the like. したがって、例えば、上述した保護機能RTOSを用いる場合であれば、エンジン制御ECU等に対応するVMに対しては、オーディオ制御ECU等に対応するVMよりも優先的に、タイムスロットの割り当て周期や、タイムスロットの長さ等を設定する必要がある。 Thus, for example, in the case of using the protection RTOS described above, for the VM corresponding to the engine control ECU or the like, preferentially than VM corresponding to the audio control ECU or the like, and allocation cycle of time slots, it is necessary to set the length, etc. of time slots. しかしながら、このようにしてタイムスロットの設定を行なうと、オーディオ制御ECU等に対応するVMが十分に実行されなくなってしまうおそれがある。 However, this way to set the time slot, there is a risk that VM corresponding to the audio control ECU or the like can no longer be sufficiently performed. このため、例えば、オーディオ制御ECU等に対応するVMにて動画表示処理を行う場合であれば、滑らかな動画表示ができなくなってしまうといった具合に、このVMによる処理が停滞してしまうおそれがある。 Thus, for example, in the case of performing the moving image display processing in VM corresponding to the audio control ECU or the like, in so on it becomes impossible smooth moving picture display, there is a possibility that treatment with this VM become stagnant .

ここで、特許文献1には、異なる優先度を有するスレッドを時分割処理するシステムにおけるスケジューリング方法が記載されている。 Here, Patent Document 1, a scheduling method in a system for time-sharing processing threads with different priorities is described. 特許文献1に記載の方法では、各スレッドに対してタイムスロットデータを対応付け、このタイムスロットデータに対してスケジューリングを行なう。 In the method described in Patent Document 1, associated time slot data for each thread performs scheduling for the time slot data. つまり、タイムスロットデータに処理時間が割り当てられると、このタイムスロットデータに対応するスレッドが実行されるのである。 That is, when the processing time is allocated to the time slot data is the thread corresponding to the time slot data is performed. そして、例えば、スレッドAが、このスレッドAよりも優先度がより低いスレッドBにおける所定の処理の終了を待つ必要が生じた場合には、スレッドAに対応するタイムスロットデータAをスレッドBに対応付けることにより、スレッドAの優先度をスレッドBに承継する。 Then, for example, thread A priority than the thread A if the need to wait for completion of the predetermined processing at lower thread B occurs associates the time slot data A corresponding to the thread A thread B it makes succeed the priority of the thread a thread B. そして、スレッドBにおける所定の処理が終了すると、タイムスロットデータAは、再びスレッドAに対応付けられる。 When the predetermined processing is completed in the thread B, the time slot data A is associated with a re-thread A.

特開2000−20323号公報 JP 2000-20323 JP

特許文献1に記載の方法によれば、スレッドの優先度を変更する際に生じるオーバーヘッドを抑えることができ、スレッドに割り当てられたCPUの処理時間を有効に利用することができる。 According to the method described in Patent Document 1, it is possible to suppress the overhead produced when changing the priority of threads, it is possible to effectively use the processing time of the CPU allocated to a thread. しかしながら、特許文献1に記載の方法を保護機能RTOSに適用したとしても、上述したような、リアルタイム性の必要性が低いVMによる処理が停滞しまうおそれがあるという問題を解決することはできない。 However, even when applying the method according to the protective function RTOS in Patent Document 1, as described above, treatment with low necessity VM for real-time can not solve the problem which may put away stagnant.

本願発明は上記課題を解決するためになされたものであり、リアルタイム性が要求される処理単位と、リアルタイム性が要求されない処理単位とを並行してCPUに実行させるプログラムに関する発明である。 The present invention has been made to solve the above problems, an invention relating to a program to be executed and the processing unit which requires real time, in parallel with processing units real time is not required to the CPU. 本願発明は、リアルタイム性が要求されない処理単位により実現される処理の停滞を抑えつつ、これらの処理単位をCPUに並行して実行させることが可能なプログラムを提供することを目的とする。 The present invention, while suppressing the stagnation of processing realized by the processing unit of real time is not required, and an object thereof is to provide a possible program to be executed in parallel these process unit to the CPU.

上記課題を解決するためのなされた請求項1に記載の基本プログラムは、複数の処理単位のうちのいずれかに対して予め設定されたタイミングでタイムスロットを割り当てることにより、これらの処理単位をCPUに並行して実行させる。 Basic program of claim 1 that made the in order to solve the above problem by assigning a time slot at a predetermined timing with respect to one of a plurality of processing units, CPU these process unit in parallel, to be executed in. 尚、処理単位にタイムスロットを割り当てるとは、例えば、CPUにタイムスロットが示す時間にわたって処理単位を実行させることであっても良い。 Note that allocates time slots to the processing unit, for example, may be possible to execute the processing unit over a period of time indicated by the time slot to the CPU. また、処理単位には、外部からの入力に対し予め設定された時間内での応答が可能であるという性質であるリアルタイム性が要求されるリアルタイム処理単位と、リアルタイム性が要求されない非リアルタイム処理単位とが存在し、非リアルタイム処理単位は、いずれかのリアルタイム処理単位に対応付けられている。 Further, the processing unit is real-time processing units and a non-real-time processing units real time is not required for real time is a property that it is possible to respond within a preset time the input from the outside is required DOO exists, non-real time processing unit is associated with one of the real-time processing units. また、処理単位として、所定の割込みに対応する割込み処理を有している割込み対応処理単位が存在する。 Further, as a processing unit, an interrupt handling process units having an interrupt processing corresponding to the predetermined interrupt exists. また、基本プログラムは、処理単位に対してタイムスロットを割り当てるタイミングを示すデータであるタイムスロットデータを有している。 The basic program comprises a time slot data is data indicating a timing for allocating time slots to the processing unit. また、基本プログラムは、タイムスロットデータに基づき、リアルタイム処理単位にタイムスロットを割り当てる第一のステップを有している。 Also, the basic program, on the basis of the time slot data has a first step of allocating time slots for real-time processing units. また、タイムスロットにリアルタイム処理単位が割り当てられて当該リアルタイム処理単位が実行中、または、タイムスロットの残り時間に非リアルタイム処理単位が割り当てられて当該非リアルタイム処理単位が実行中に、割込み対応処理単位に対応する所定の割込みが発生すると、該所定の割込みに対応する割込み処理を優先して実行する第七のステップを有している。 Also, during and real-time processing units are assigned to the time slot is the real time processing unit executes, or during a non-real time processing unit is allocated to the remaining time of the time slot the non real time processing unit executes an interrupt handling process units When a predetermined interrupt occurs that corresponds to, and has a seventh step of executing priority interrupt process corresponding to the predetermined interrupt.

ここで、リアルタイム処理単位は、外部からの入力に対し予め設定された時間内に応答することが要求されるが、例えば、この外部からの入力が無い場合等には、リアルタイム処理単位は、タイムスロットを割り当てられてもこのタイムスロットが示す時間にわたって処理を継続する必要が無いといったことが想定される。 Here, real-time processing unit, it is required to respond in time which is previously set to the input from the outside, for example, if there is no input or the like from the outside, real-time processing unit, time assigned slots also be said that there is no need to continue the process for a time indicated by the time slot is assumed. つまり、タイムスロットが割り当てられたリアルタイム処理単位は、タイムスロットを使い切ることなく処理を終了するという場合が想定されるのである。 In other words, real-time processing units timeslot is assigned is the case that the process ends without running out of time slots is assumed.

そこで、この基本プログラムは、第一のステップにて割り当てられたタイムスロットを使い切ることなくリアルタイム処理単位が終了した場合には、該リアルタイム処理単位に替えて、該リアルタイム処理単位に対応付けられている非リアルタイム処理単位に、該タイムスロットの残り時間を割り当てる第二のステップをさらに有している。 Therefore, the basic program, when the real time processing unit has been completed without using up the time slot assigned in a first step, in place of the real-time processing units are associated with the real-time processing units the non real time processing unit further includes a second step of assigning the remaining time of the time slot.

このような構成を有することにより、タイムスロットを使い切ることなくリアルタイム処理単位の実行を終了した場合に、余った時間を、非リアルタイム処理単位に割り当てることができる。 By having such a configuration, when it is completed to perform real-time processing units without using up the time slots, extra time may be allocated to non-real time processing unit. したがって、この基本プログラムは、非リアルタイム処理単位により実現される処理の停滞を抑えつつ、リアルタイム処理単位と非リアルタイム処理単位とをCPUに並行して実行させることができる。 Thus, the basic program, while suppressing the stagnation of processing realized by the non real time processing unit, and a real-time processing units and non-real-time processing units in parallel to the CPU can be executed.

また、タイムスロットを使い切ることなくリアルタイム処理単位の実行を終了した場合に、次のようにして、余った時間を非リアルタイム処理単位に割り当てても良い。 Further, when it is completed to perform real-time processing units without using up the time slot, as follows, may be assigned extra time to the non real time processing unit.

すなわち、請求項2に記載されているように、リアルタイム処理単位は、複数の非リアルタイム処理単位に対応付けられており、該リアルタイム処理単位に対応する非リアルタイム処理単位には、優先順位が設定されており、第二のステップにおいて、リアルタイム処理単位に対応する非リアルタイム処理単位のうち、優先順位の高い非リアルタイム処理単位から順にタイムスロットの残り時間を割り当てても良い。 That is, as described in claim 2, real-time processing units is associated with a plurality of non-real time processing unit, the non-real time processing unit corresponding to the real-time processing units, priority is set and, in a second step, among the non-real time processing unit corresponding to the real-time processing unit, or from a high-priority non real-time processing units allocated the remaining time of the time slot in order.

このような構成を有する場合であっても、非リアルタイム処理単位により実現される処理の停滞を抑えつつ、リアルタイム処理単位と非リアルタイム処理単位をCPUに並行して実行させることができる。 Even when having such a configuration, while suppressing the stagnation of processing realized by the non real time processing unit, the real-time processing unit and a non-real time processing unit can be executed in parallel to the CPU.

また、既に述べたように、複数のECUを一つに統合するということが望まれているが、このような場合には、複数のECUの制御プログラムを一つに統合し、新たなプログラムを作成しなければならない。 Moreover, as already mentioned, although it is desired that integrate multiple ECU to one, in such a case, by integrating the control program of the plurality of ECU into one, a new program It must be created. そこで、処理単位とは、次のようなソフトウェアであっても良い。 Therefore, the processing unit may be software as follows.

すなわち、請求項3に記載されているように、処理単位のうちの少なくとも二つは、プログラムが搭載される装置とは異なる他の装置の制御プログラムに基づく処理単位であるVM(Virtual Machine Programの略)であっても良い。 That is, as described in claim 3, at least two of the processing units, the device program is installed a processing unit based on the control program of a different other apparatus VM (the Virtual Machine Program it may be omitted).

こうすることにより、複数のECUの制御プログラムを一つに統合した場合に、リアルタイム性が要求されないVMの処理の停滞を抑えつつ、CPUに複数のVMを並行して実行させることができる。 In this way, when the integrated control program of the plurality of ECU in one, while suppressing the stagnation of VM processing real time is not required, a plurality of VM can be executed in parallel to the CPU.

また、処理単位をVMとした場合には、本プログラムを実行するCPUの周辺デバイスに対し、次のようにして指示を行っても良い。 Further, when the processing unit has a VM is to the CPU of the peripheral device for executing the program, it may be carried out instructions as follows.

すなわち、請求項4に記載されているように、VMは、他の装置におけるCPUの周辺デバイスであって、基本プログラムが搭載される装置におけるCPUにおける周辺デバイスである自装置の周辺デバイスと同一の用途にて用いられる周辺デバイスである他の装置の周辺デバイスを制御するための処理を有しており、自装置の周辺デバイスには、他の装置の周辺デバイスとは異なる形式で指示を行う必要があっても良い。 That is, as described in claim 4, VM ​​is a CPU of the peripheral device in another device, the basic program own device identical to the peripheral devices in the peripheral device in the CPU in the device to be mounted It has a process for controlling the peripheral devices other device is a peripheral device for use in applications, the peripheral devices of the apparatus, necessary to perform the instruction in a different format than the peripheral devices other devices there may be. そして、基本プログラムは、それぞれのVMから、他の装置の周辺デバイスへの指示と同様の形式で、自装置の周辺デバイスに対しての指示を受け付ける第三のステップと、第三のステップにて受け付けた指示を、自装置の周辺デバイスに対応する形式に変換し、該自装置の周辺デバイスに対しての制御を行う第四のステップとをさらに有していても良い。 Then, the basic program, from each VM, an instruction format similar to the peripheral devices of other equipment, and a third step of accepting an instruction to the peripheral devices of the apparatus, in a third step received instruction, into a format corresponding to the peripheral devices of the apparatus may further comprise a fourth step of controlling the relative peripheral devices the free-apparatus.

このような構成を有することにより、VMは、統合前のECUにおけるCPUの周辺デバイスに対応する形式で、統合後のECUにおけるCPUの周辺デバイスに対して指示を行うことができる。 By having such a configuration, VM is a format corresponding to the peripheral device CPU in the ECU before the integration, it is possible to perform an instruction to the CPU of the peripheral device in the ECU after integration. このため、統合前のECUにおける制御プログラムにおいてCPUの周辺デバイスに対する指示を行う部位の構成を変更することなく、この制御プログラムに基づきVMを作成することができる。 Therefore, without changing the structure of the site at which an instruction to the peripheral devices of the CPU in the control program in the ECU before integration, it is possible to create a VM on the basis of the control program. つまり、複数のECUの制御プログラムを一つに統合する際の変更規模の増加を抑えることができるのである。 In other words, it is possible to suppress the change scale increased in integrating a plurality of ECU control programs into one.

また、VMに対し、CPUの周辺デバイスから受け取ったデータを次のようにして提供しても良い。 Also, VM to the data received from the peripheral device of the CPU may be provided as follows.

すなわち、請求項5に記載されているように、基本プログラムは、自装置の周辺デバイスから提供されるデータを取得する第五のステップと、第五のステップにて自装置の周辺デバイスから取得したデータを、該自装置の周辺デバイスに対応する他の装置の周辺デバイスを制御する処理を有する前記VMに対し、該他の装置の周辺デバイスに対応する形式で提供する第六のステップとをさらに有していても良い。 That is, as described in claim 5, the basic program, and a fifth step of acquiring data provided from the peripheral device of its own device, obtained from the peripheral device of its own device at a fifth step data, to the VM with a process of controlling the peripheral devices other device corresponding to the peripheral device the free-device, further a sixth step of providing a form corresponding to the peripheral devices of the other device it may have.

このような構成を有することにより、VMは、統合前のECUにおけるCPUの周辺デバイスに対応する形式で、統合後のECUにおけるCPUの周辺デバイスからデータを受け取ることができる。 By having such a configuration, VM is a format corresponding to the peripheral device CPU in the ECU before the integration, can receive data from the peripheral device of the CPU in the ECU after integration. このため、統合前のECUにおける制御プログラムにおいてCPUの周辺デバイスからデータを受け取る部位の構成を変更することなく、この制御プログラムに基づきVMを作成することができる。 Therefore, without changing the structure of the site to receive the data from the peripheral device of the CPU in the control program in the ECU before integration, it is possible to create a VM on the basis of the control program. つまり、複数のECUの制御プログラムを一つに統合する際の変更規模の増加を抑えることができるのである。 In other words, it is possible to suppress the change scale increased in integrating a plurality of ECU control programs into one.

なお、請求項6に記載されているように、割込み対応処理単位が有する割込み処理に対応する所定の割込みとは、CANを介してデータを受信した際に発生する割り込みであり、該割込み処理では、該データを受信するための処理が行われても良い。 Incidentally, as described in claim 6, the predetermined interrupt corresponding to the interrupt process having the interrupt handling process units, a interrupt generated when data is received via the CAN, in該割inclusive process , processing for receiving the data may be performed.
また、統合前のECUにおける制御プログラムには、割込み処理が用いられている場合がある。 Further, the control program in the ECU before integration may interrupt process is used. 例えば、処理単位が、このような制御プログラムに基づくVMである場合には、プログラムは、次のようなステップをさらに有していても良い。 For example, processing units, if a VM based on such control program, the program may further have the following steps.

すなわち処理単位として、所定の割込みに対応する割込み処理を有している割込み対応処理単位が存在し、基本プログラムは、割込み対応処理単位に対し、タイムスロット、または、タイムスロットの残り時間が割り当てられている間に、該割込み対応処理単位に対応する所定の割込みが発生すると、該所定の割込みに対応する割込み処理を実行する第七のステップをさらに有していても良い。 That is, as a processing unit, there is an interrupt handling process units having an interrupt processing corresponding to the predetermined interrupt, the basic program, to interrupt handling process units, time slot, or the remaining time of the time slot allocation It is between and, when a predetermined interrupt occurs corresponding to 該割 included corresponding processing unit may further include a seventh step of executing an interrupt process corresponding to the predetermined interrupt.

このような構成を有することにより、処理単位が有している割込み処理を、確実に実行することができる。 By having such a configuration, the interrupt process processing unit has can be reliably performed. したがって、例えば、統合前のECUにおける制御プログラムに割込み処理が用いられている場合であっても、この割込み処理が流用されたVMを処理単位とすることができる。 Thus, for example, even when the interrupt processing is used in the control program in the ECU before integration can be a VM that this interrupt process is diverted as a processing unit. このため、複数のECUの制御プログラムを一つに統合する際の変更規模の増加を抑えることができる。 Therefore, it is possible to suppress the change scale increased in integrating a plurality of ECU control programs into one.

また、割込み処理は、割込み要求が発生した後、速やかに実行されるべきである。 The interrupt process, after the interrupt request is generated, should be performed quickly.

そこで基本プログラムは、所定の割込みが発生した後、該所定の割込みに対応する割込み対応処理単位に対してタイムスロット、または、タイムスロットの残り時間が割り当てられると、該所定の割込みに対応する割込み処理を実行する第八のステップをさらに有する。 Therefore, the basic program, after the predetermined interrupt occurs, the time slot to the interrupt handling process unit corresponding to the predetermined interrupts or, and assigned the remaining time of the time slot corresponding to the predetermined interrupt further comprising an eighth step of executing the interrupt processing.

こうすることにより、先に発生した割込み要求に対応する割込み処理を速やかに実行することができる。 Thus, it is possible to execute the interrupt processing corresponding to the interrupt request generated earlier quickly.

また、次のようにして割込み処理が実行されても良い。 The interrupt process in the following manner may be performed.

すなわち第一のステップにおいてタイムスロットが割り当てられるリアルタイム処理単位をメインの処理単位とすると共に、第二のステップにおいて、該第一のステップにてメインの処理単位に割り当てられたタイムスロットの残り時間が割り当てられる非リアルタイム処理単位をサブの処理単位としても良い。 That is, the real time processing unit time slots are allocated in a first step with a main processing unit, in a second step, the remaining time of the time slot allocated to the main processing unit in said first step non real time processing unit is assigned may be sub-processing units. そして、基本プログラムは、メインの処理単位が割込み対応処理単位である場合において、サブの処理単位にタイムスロットの残り時間が割り当てられている間に、該メインの処理単位に対応する所定の割込みが発生すると、第七のステップに先立ち、該メインの処理単位である割込み対応処理単位が有する割込み処理を実行する第九のステップをさらに有していても良い。 Then, the basic program, when the main processing unit is an interrupt handling process units, while the remaining time of the time slot sub-processing units are allocated, the predetermined interrupt corresponding to the processing unit of said main to occur prior to the seventh step, may further include a ninth step of executing the interrupt process having the interrupt handling process unit is a processing unit of said main.

こうすることにより、サブの処理単位にタイムスロットが割り当てられている間に、対応するメインの処理単位についての割込み要求が発生した場合には、優先的にこのメインの処理単位における対応する割込み処理を実行することができる。 By doing so, while the time slot is allocated to the sub-processing units, when an interrupt request for the corresponding main processing unit has occurred, preferentially corresponding interrupt processing in the main processing unit it is possible to run. したがって、メインの処理単位を、サブの処理単位に対してより優先的に実行することができ、メインの処理単位に要求されるリアルタイム性を、より確実なものとすることができる。 Therefore, the main processing unit can be performed more preferentially to the sub processing unit, a real-time required for the main processing unit, can be made more reliable.

ところで、請求項1から請求項に記載の基本プログラムに従い処理を行うコンピュータを備える制御装置を構成しても良い(請求項7) Incidentally, it may constitute a control device comprising a computer which performs processing in accordance with the basic program according to claims 1 to claim 6 (Claim 7).

こうすることにより、制御装置は、非リアルタイム処理単位により実現される処理の停滞を抑えつつ、リアルタイム処理単位と非リアルタイム処理単位とをCPUに並行して実行させることができる。 By doing so, the control device while suppressing the stagnation of processing realized by the non real time processing unit, and a real-time processing units and non-real-time processing units in parallel to the CPU can be executed.

統合ECU、及び、統合制御プログラムの構成を示すブロック図である。 Integrated ECU, and is a block diagram showing the configuration of an integrated control program. VMスケジューリングテーブル、及び、スケジュールパラメータテーブルを示す表である。 VM scheduling table, and a table showing the schedule parameter table. タイムスロット管理テーブルを示す表である。 It is a table showing a time slot management table. タイムスロット割当処理のフローチャートである。 It is a flowchart of the time slot allocation process. サブのタスク開始処理のフローチャートである。 It is a flowchart of a sub task start processing. 割込み発生処理のフローチャートである。 It is a flowchart of the interrupt generation process. タイムスロット1〜3の利用状況についての説明図である。 It is an explanatory view of usage time slots 1-3. 割込み処理の実行状況についての説明図である。 It is an explanatory view of execution status of the interrupt processing. 仮想デバイス等の構成を示すブロック図である。 Is a block diagram showing the configuration of a virtual device, and the like. CANを介してのデータ送信が行なわれる際の仮想デバイス等の動作についてのシーケンス図である。 Is a sequence diagram of the operation of the virtual device or the like upon data transmission via the CAN is performed. CANを介してのデータ受信が行なわれる際の仮想デバイス等の動作についてのシーケンス図である。 It is a sequence diagram of the operation of the virtual device or the like upon data received via the CAN is performed.

以下、本発明の実施形態について図面を用いて説明する。 Hereinafter will be described with reference to the accompanying drawings, embodiments of the present invention. 尚、本発明の実施の形態は、下記の実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態を採りうる。 The embodiments of the present invention is not limited to any embodiments described below, can take various forms within the technical scope of the present invention.

[構成の説明] [Description of Configuration]
(1)統合ECUの構成について 図1の(a)は、本実施形態における統合ECU10の構成を示すブロック図である。 (1) in FIG. 1 the structure of integrated ECU (a) is a block diagram showing the configuration of an integrated ECU10 in the present embodiment. この統合ECU10は、第一のECUと、第二のECUと、第三のECUという三つのECUが統合されたものであり、この三つのECUが有していた機能を全て有している。 This integration ECU10 includes a first ECU, the second ECU, are those three ECU are integrated as a third ECU, the three ECU has all have the function of a. また、統合ECU10は、CPU11と、ROM12と、RAM13と、CANコントローラ14とを有しており、これらの部位は内部バス15で接続されている。 The integrated ECU10 includes a CPU 11, a ROM 12, a RAM 13, has a CAN controller 14, these sites are connected by an internal bus 15. 尚、統合ECU10は、これらの部位以外にも、第一〜第三のECUが備えている部位に対応する部位を有している。 Incidentally, integration ECU10, in addition these sites have a portion corresponding to the portion where the first to third ECU has.

CPU11は、ROM12に記憶されているプログラムや、RAM13にロードされたプログラムに従い統合ECU10の制御や各種演算を行う部位である。 CPU11 stores programs stored in the ROM 12, is a portion for performing control and various operations integrated ECU10 in accordance with a program loaded into the RAM 13. 尚、統合前の三つのECUにそれぞれ搭載されていたCPUで実行されていた全ての処理は、このCPU11で実行される。 Incidentally, all of the process being executed by the CPU that is equipped respectively into three ECU before integration is performed in this CPU 11.

ROM12は、各種のプログラムやデータが記憶されている周知のROMである。 ROM12 is a well-known ROM in which various programs and data are stored.

RAM13は、CPU11から直接アクセスされるメインメモリ等として利用される記憶装置である。 RAM13 is a storage device used as a main memory or the like to be accessed directly from the CPU 11. このRAM13には、ROM12等から、各種プログラムやデータがロードされる。 The RAM13, from ROM12, etc., various programs and data are loaded.

CANコントローラ14は、CAN20を介して他のECUと通信を行うための部位である。 CAN controller 14 is a member for performing communication with another ECU via the CAN 20.

(2)統合制御プログラムの構成について また、図1の(b)は、統合ECU10に搭載されている統合制御プログラム100の構成を示すブロック図である。 (2) Configuration of the integrated control program also in FIG. 1 (b) is a block diagram showing the configuration of an integrated control program 100 installed in the integrated ECU 10. 統合制御プログラム100は、ROM12に記憶されている。 Integrated control program 100 is stored in the ROM 12. 統合制御プログラム100は、保護機能付きRTOS110と、第一のVM120と、第二のVM130と、第三のVM140と、仮想デバイス150とを有している。 Integrated control program 100, the protection function RTOS110, a first VM 120, the second VM 130, a third VM 140, and a virtual device 150. 尚、VMとは、Virtual Machine Programの略である。 It should be noted that the VM, is an abbreviation of Virtual Machine Program.

保護機能付きRTOS110は、第一〜第三のVMや、仮想デバイス150といったタスクのスケジューリングを行なうプログラムである。 Protection function RTOS110 is and first to third VM, a program for scheduling tasks such virtual device 150. このスケジューリングは、スケジューラ111により行なわれる。 This scheduling is performed by the scheduler 111. スケジューリングの詳細に関しては後述する。 It will be described later scheduling details. また、保護機能付きRTOS110は、各タスクに対応するメモリ領域や、自身に対応するメモリ領域の保護を行なう。 The protective function RTOS110 is, memory areas corresponding to each task, provide protection of memory areas corresponding to itself.

また、第一のVM120,第二のVM130,第三のVM140は、保護機能付きRTOS110によるスケジューリングの対象となるタスクである。 Further, the first VM 120, the second VM 130, third VM140 is a task to be scheduled by the protection function RTOS110. これらのVMは、それぞれ、統合前のECUである第一のECU,第二のECU,第三のECUの制御プログラムの一部を変更して作成されたプログラムである。 These VM, respectively, the first ECU is ECU before integration, the second ECU, a program that was created by changing a part of the control program of the third ECU. 尚、第一のECU及び第二のECUは、外部からの入力に対して所定の時間内に応答を行うというリアルタイム性が要求されるECUであるため、第一のVM120及び第二のVM130により実現される処理には、リアルタイム性が要求される。 Incidentally, the first ECU and the second ECU are the ECU which requires real time that a response within a predetermined time with respect to the input from the outside, by a first VM120 and second VM130 the process implemented, requires real time. また、これらのECUでは、AUTOSARやOSEK(登録商標)に準拠したリアルタイムOSがそれぞれ用いられている。 Further, in these ECU, real-time OS that conforms to AUTOSAR and OSEK (registered trademark) is used, respectively. このため、第一のVM120,第二のVM130は、それぞれ、AUTOSAR,OSEKに準拠したリアルタイムOSを有している。 Therefore, the first VM 120, second VM130, respectively, AUTOSAR, has a real-time OS that conforms to OSEK. 尚、第一のVM120に用いられているリアルタイムOSをAUTOSAR121、第二のVM130に用いられているリアルタイムOSをOSEK131と記載する。 Incidentally, the real-time OS used in the first VM 120 AUTOSAR121, described as a real-time OS used in the second VM130 OSEK131. 一方、第三のECUはリアルタイム性が要求されないECUであり、第三のVM140により実現される処理にはリアルタイム性は要求されない。 On the other hand, the third ECU is the ECU real time is not required, real time the processing realized by the third VM140 is not required. また、このECUでは、OSとしてLinuxが用いられており、第三のVM140はLinux141を有している。 Further, in the ECU, and Linux is used as OS, third VM140 has Linux141.

また、第一〜第三のVMでは、統合前のECUのプログラムで用いられていた割込みハンドラに対応する割込み処理が用いられており、保護機能付きRTOS110は、周辺デバイスから割込み要求が発生すると、対応する上記割込み処理を実行する。 Further, in the first to third VM, interrupt processing corresponding to the interrupt handler that has been used in pre-integration of the ECU program is used and protection function RTOS110 is an interrupt request is generated from a peripheral device, It performs corresponding the interrupt processing.

また、仮想デバイス150は、第一〜第三のVMと、統合ECU10におけるCPU11の周辺デバイスへとのI/Fとなるタスクである。 Further, the virtual device 150, the first to third VM, a task that the I / F between the CPU11 of the peripheral device in an integrated ECU 10.

[動作の説明] [Description of Operation]
統合制御プログラム100は、第一〜第三のECUの機能を、統合ECU10にて実現するためのプログラムである。 Integrated control program 100, the function of the first to third ECU, a program for realizing in the integrated ECU 10. 統合制御プログラム100では、保護機能付きRTOS110が第一〜第三のVMのスケジューリングを行い、第一〜第三のVMをCPU11に並行して実行させることにより、第一〜第三のECUの機能を実現している。 The integrated control program 100, the protection function RTOS110 performs the scheduling of the first to third VM, by executing in parallel the first to third VM to CPU 11, functions of the first to third ECU It is realized. ここでは、保護機能付きRTOS110の動作について説明する。 Here, a description will be given of the operation of the protection function RTOS110.

(1)タイムスロットについて 保護機能付きRTOS110のスケジューラ111は、第一〜第三のVMと、仮想デバイス150とをタスクとしており、これらのタスクに対し、タイムスロット1〜10を順次割り当てる。 (1) The scheduler 111 of the protective function RTOS110 for time slot, the first to third VM, has the task and the virtual device 150, for these tasks sequentially allocates time slots 1-10. また、タイムスロット10の割り当てが行なわれた後は、再度、タイムスロット1〜10の割り当てが順次行なわれる。 Further, after the allocation of the time slot 10 is performed again, assignment of time slots 1 to 10 are sequentially performed. そして、タスクにいずれかのタイムスロットが割り当てられると、CPU11は、このタイムスロット分の処理時間にわたって、このタスクを実行する。 When the assigned one of the time slots in task, CPU 11 is over the processing time of the time slot, to perform this task. 尚、本実施形態では、タイムスロット1〜10は全て100μsの長さであるが、各タイムスロットの長さは、この時間に限定されるものではない。 In the present embodiment, the length of all the time slots 1 to 10 are 100 [mu] s, the length of each time slot is not limited to this time. また、例えば、割り当てるタスクに応じてタイムスロットの長さを変更しても良いし、条件に応じて異なる長さのタイムスロットが用いられても良い。 Further, for example, assigns may change the length of the time slots depending on the task, the length of the time slot may be used vary depending on condition. また、タイムスロットの長さとして、例えば、100μs〜120μsといった具合に、一定の時間幅を持った時間が設定されていても良い。 Further, as the length of a time slot, for example, a so on 100Myuesu~120myuesu, time having a predetermined time width may be set. そして、例えば、所定の条件やタスクの状態等に応じて、この時間幅の範囲内でCPUの実行時間を変動させても良い。 Then, for example, depending on the state of the predetermined condition or task may be varied the execution time of the CPU within this time width.

尚、タスクにタイムスロットを割り当てるということを、タスクに対し、タイムスロットが示す時間にわたってCPUの実行権を付与すると言い換えることもできるということを、念のため付言しておく。 Incidentally, that allocates time slots to the task, to the task, that can also be called a grant execute permission of CPU over a period of time indicated by the time slot, keep added that just in case.

(2)第一〜第三のVMのスケジューリングについて 次に、第一〜第三のVMのスケジューリングについて説明する。 (2) scheduling of the first to third VM will be described scheduling of the first to third VM. 図2の(a)には、タイムスロット1〜10をどのVMに割り当てるかを示すVMスケジューリングテーブルが記載されている。 In (a) of FIG. 2, VM scheduling table that indicates allocated to which VM timeslots 1-10 are described. VMスケジューリングテーブルは、タイムスロット1は第一のVM120に、タイムスロット2は第二のVM130に、タイムスロット3は第三のVM140に、タイムスロット4は第三のVM140に、タイムスロット5は第三のVM140に、タイムスロット6は第一のVM120に、タイムスロット7は第二のVM130に、タイムスロット8は第三のVM140に、それぞれ割り当てられることを示している。 VM scheduling table, in time slot 1, the first VM 120, the time slot 2 a second VM 130, the time slot 3 a third VM 140, the time slot 4 the third VM 140, time slot 5 second the third VM 140, the time slot 6 is first VM 120, the time slot 7 the second VM 130, the time slot 8 in the third VM 140, indicates that the respectively assigned. また、タイムスロット9,10に関しては、第一〜第三のVMに割り当てられないことを示している。 Further, with respect to the time slot 9 and 10 shows that not assigned to the first to third VM. スケジューラ111は、VMスケジューリングテーブルが示すようにタイムスロット1〜10を第一〜第三のVMに割り当て、CPU11に、第一〜第三のVMを並行して実行させる。 The scheduler 111, the time slots 1 to 10 as indicated by VM scheduling table assigned to the first to third VM, the CPU 11, parallel to execute the first to third VM.

また、図2の(b)には、第一〜第三のVMのサービス周期等を示すスケジューリングパラメータテーブルが記載されている。 Further, in FIG. 2 (b), the scheduling parameter table indicating a service period, etc. of the first to third VM is described. スケジューリングパラメータテーブルは、「VM」,「最短サービス周期」,「最長連続走行時間」,「サービス周期許容誤差」という項目を有している。 Scheduling parameters table, "VM", has an entry "shortest service period", "longest continuous running time", "service cycle tolerance".

「VM」は、第一〜第三のVMのうちのいずれかを示す項目である。 "VM" is an item that shows one of the first to third VM.

また、「最短サービス周期」は、VMに対してタイムスロットが割り当てられる時間間隔を示している。 Further, "the shortest service period" indicates a time interval in which the time slots are assigned to VM.

また、「最長連続走行時間」は、VMの最長の連続実行時間を示している。 In addition, "the longest continuous running time" indicates the longest continuous execution time of the VM.

また、「サービス周期許容誤差」とは、「最短サービス周期」の誤差として許容される時間を示している。 In addition, the "service period tolerance" indicates the time allowed as an error of "the shortest service period".

保護機能付きRTOS110は、スケジューラ111による第一〜第三のVMについてのスケジューリングについて、スケジューリングパラメータテーブルに基づき異常判定を行うという機能を有している。 Protection function RTOS110 the scheduling for the first to third VM by the scheduler 111 has a function of performing an abnormality determination based on the scheduling parameter table. この機能について具体的に説明する。 Specifically describes this feature. 保護機能付きRTOS110は、各VMについて、対応する「最短サービス周期」が示す時間に「サービス周期許容誤差」が示す時間を加えた時間を閾値とする。 Protection function RTOS110 for each VM, the plus the time indicated by the "Service cycle tolerance" to the time indicated by the corresponding "shortest service period" time to a threshold. そして、リアルタイム性が要求されるVMに関して、このVMにタイムスロットが割り当てられた後、上記閾値に相当する時間が経過しても新たにタイムスロットが割り当てられない場合には、異常が発生したものとみなす。 Then, with respect to VM which requires real time, as the time slot in this VM after being assigned, when the time corresponding to the threshold is not assigned a new time slot may be passed, a failure occurs regarded as. また、保護機能付きRTOS110は、各VMについて、タイムスロットが割り当てられた後、対応する「最長連続走行時間」を経過した後もCPU11による実行が継続されている場合には、異常が発生したものとみなす。 The protective function RTOS110 for each VM, after the time slot is allocated, if the execution by CPU11 even after the expiration of the corresponding "longest continuous run time" is continued, that an abnormality has occurred regarded as.

(3)タスクのスケジューリングについて スケジューラ111によるタスクのスケジューリングについて説明する。 (3) scheduling of tasks for task scheduling by the scheduler 111 will be described. 上述したように、タイムスロット1〜10は、順次、第一〜第三のVMのいずれかに割り当てられる。 As described above, the time slots 1 to 10 are sequentially assigned to any of the first to third VM. しかし、仮想デバイス150に関しても、処理時間を確保する必要があり、仮想デバイス150に対してもタイムスロットを割り当てることができる。 However, even with respect to the imaginary device 150, it is necessary to secure the processing time can be assigned time slots with respect to the virtual device 150. また、タイムスロットを割り当てられた第一のVM120または第二のVM130は、所定の条件が成立すると、自発的に処理を終了する。 Further, the first VM120 or second VM130 assigned time slot when a predetermined condition is satisfied, and ends spontaneously process. このため、第一のVM120または第二のVM130に関しては、割り当てられたタイムスロットを全て使い切ることなく、処理が終了してしまう場合がある。 Therefore, for the first VM120 or second VM 130, without using up all the allocated time slot, there are cases where operation is complete. このようなケースを想定して、タイムスロット1〜10に対し、メインのタスクとサブのタスクとを対応付けておくことができる。 Such case is assumed with respect to the time slots 1 to 10, it can be kept in correspondence with the main task and sub-tasks. そして、スケジューラ111は、メインのタスクがタイムスロットを使い切ることなく終了した場合には、サブのタスクに対しタイムスロットの残り時間を割り当てるのである。 Then, the scheduler 111, when the main task is completed without using up the time slot is assign the rest of the time slots to sub-tasks.

尚、図2の(a)に記載のVMスケジューリングテーブルは、タイムスロット1〜10に対し、メインのタスクとして登録されているVMを示している。 Incidentally, VM scheduling table described in FIG. 2 (a), with respect to the time slots 1 to 10 shows a VM that has been registered as the main task.

(3−1)タイムスロット管理テーブルについて 図3には、タイムスロット1〜10に対応付けられているメインのタスクとサブのタスクを示すタイムスロット管理テーブルの一例が記載されている。 (3-1) in Figure 3 for time slot management table, an example of a time slot management table showing the main tasks and sub-tasks associated with the time slot 10 is described. タイムスロット管理テーブルは、タイムスロット1,6には、メインのタスクとして第一のVM120が、サブのタスクとして第三のVM140が対応付けられていることを示している。 Time slot management table, the time slots 1,6, the first VM120 as a main task, shows that the third VM140 is associated as a sub task. また、タイムスロット2,7には、メインのタスクとして第二のVM130が、サブのタスクとして第三のVM140が対応付けられていることを示している。 Also, the time slots 2,7, the second VM130 as a main task, shows that the third VM140 is associated as a sub task. また、タイムスロット3〜5、8には、メインのタスクとして第三のVM140が対応付けられており、サブのタスクに関しては対応付けがなされていないことを示している。 Further, the time slot 3~5,8, and third VM140 is associated as a main task, indicating that no association is made is with regard sub tasks. また、タイムスロット9には、メインのタスクとして仮想デバイス150が対応付けられており、サブのタスクに関しては対応付けがなされていないことを示している。 Further, the time slot 9, and the virtual device 150 is associated as a main task, indicating that no association is made is with regard sub tasks. また、タイムスロット10には、メインのタスク及びサブのタスクに関して、対応付けがなされていないことを示している。 Further, the time slot 10, with respect to the main task and sub-tasks, indicating that the association has not been made. スケジューラ111は、タイムスロット管理テーブルに基づき、各タスクのスケジューリングを行なう。 The scheduler 111 is based on the time slot management table, it performs scheduling for each task.

(3−2)タイムスロット割当処理について スケジューラ111によるタスクのスケジューリングについて、さらに詳しく説明する。 (3-2) for task scheduling by the scheduler 111 for time slot assignment process will be described in more detail. スケジューラ111は、各タイムスロットに相当する時間(100μs)が経過する度に、タイムスロット割当処理を実行する。 Scheduler 111 whenever the time corresponding to each time slot (100 [mu] s) has elapsed, performing a time-slot assignment process. ここでは、タイムスロット割当処理について、図4に記載のフローチャートを用いて説明する。 Here, the time slot assignment process will be described with reference to a flowchart in FIG.

S205では、スケジューラ111は、CPUの実行権が付与されているタスク、つまり、動作中のタスクの有無についてチェックし、動作中のタスクが有る場合には(S205:Yes)、このタスクを停止させる(S210)。 In S205, the scheduler 111, task execution right of the CPU is granted, i.e., to check for the presence of the task in operation, if the task in operation there (S205: Yes), stops the task (S210).

続いて、スケジューラ111は、タイムスロット管理テーブルに基づき、タスクへの割り当てを行なうタイムスロットを特定する(S215)。 Subsequently, the scheduler 111 based on the time slot management table, identifies the time slot for allocating to a task (S215). 尚、スケジューラ111は、番号の若いタイムスロットから順に対応するタスクへの割り当てを行い、タイムスロット10についての割り当てを行なった後は、再度、タイムスロット1から順に割り当てを行なう。 Note that the scheduler 111 performs assignment from numbers of young timeslot to the task corresponding to the order, after performing assignment for a time slot 10, again, the assignment from time slot 1 in order.

そして、スケジューラ111は、タイムスロット管理テーブルに基づき、特定したタイムスロットを割り当てるメインのタスクの有無を判定する(S220)。 Then, the scheduler 111 based on the time slot management table, determines whether or not the main task of assigning a particular time slot (S220). そして、タイムスロット1〜9のように、タイムスロットを割り当てるメインのタスクが有る場合には(S220:Yes)、スケジューラ111は、このメインのタスクにタイムスロットを割り当てる(S225)。 Then, as time slots 1-9, in the case where the main task of assigning time slots there is (S220: Yes), the scheduler 111 allocates time slots to the main task (S225). また、タイムスロット10のように、タイムスロットを割り当てるメインのタスクが無い場合には(S220:No)、タイムスロットの割り当てを行うことなく本処理を終了する。 Also, as in the time slot 10, when the main task is not to assign the time slots (S220: No), the process ends without performing timeslot assignment.

続いて、スケジューラ111は、タイムスロットを割り当てたメインのタスクがVMである場合(S230:Yes)、このVMに対応する割込み要求フラグがセットされているか否かを判定する(S235)。 Subsequently, the scheduler 111, when the main task assigned time slots is VM (S230: Yes), the interrupt request flag corresponding to the VM determines whether it is set (S235). そして、このVMに対応する割込み要求フラグがセットされている場合(S235:Yes)、スケジューラ111は、CPU11に、このVMにおける、この割込み要求フラグに対応する割込み処理を実行させる(S240)。 When the interrupt request flag corresponding to the VM is set (S235: Yes), the scheduler 111, the CPU 11, in the VM, to execute the interrupt processing corresponding to the interrupt request flag (S240). そして、この割込み処理の実行が終了すると、スケジューラ111は、上記割込み要求フラグをクリアし、本処理を終了する。 When the execution of the interrupt process is completed, the scheduler 111 clears the interrupt request flag, and the process ends. そして、以後、タイムスロットが割り当てられたVMにおける、割込み処理以外の他の処理が実行される。 Then, thereafter, in the VM in which time slot is allocated, other processing than the interrupt processing is executed.

また、タイムスロットを割り当てたメインのタスクがVMでない場合や(S230:No)、このVMに対応する割込み要求フラグがセットされていない場合(S235:No)には、スケジューラ111は、本処理を終了する。 Further, when the main task assigned time slots is not VM and (S230: No), if the interrupt request flag corresponding to the VM is not set: in (S235 No), the scheduler 111, the process finish. そして、以後、タイムスロットが割り当てられたタスクが実行される。 Then, thereafter, the task of the time slot is allocated is executed.

尚、割込み処理とは、VMに対応する統合前のECUの制御プログラムにて用いられていた割込みハンドラに相当するサブルーチンであり、周辺デバイスからの割込み要求に応じてCPU11から直接コールされる割込みハンドラとは異なる処理であることを念のため付言しておく。 Here, the interrupt process is a subroutine corresponding to the interrupt handler has been used by the control program of the ECU before integration corresponding to VM, the interrupt handler that is called directly from the CPU11 in response to an interrupt request from the peripheral device keep it added that just to make sure that it is a different process from the.

(3−3)サブのタスク開始処理について また、上述したように、第一のVM120及び第二のVM130は、自発的に終了する場合があるが、タイムスロットを割り当てられたメインのタスクが自発的に終了すると、スケジューラ111は、サブのタスク開始処理を実行する。 (3-3) The sub-task start processing As described above, the first VM120 and second VM130 is sometimes voluntarily terminated, the main task spontaneous assigned time slots When manner finished, the scheduler 111 performs a sub-task start processing. ここでは、サブのタスク開始処理について、図5に記載のフローチャートを用いて説明する。 Here, the sub-task start processing will be described with reference to a flowchart in FIG.

S305では、スケジューラ111は、タイムスロット管理テーブルに基づき、終了したメインのタスクに対応するタイムスロットに、サブのタスクが登録されているか判定する。 In S305, the scheduler 111 determines whether based on time slot management table, the time slot corresponding to the main task ended, the sub-tasks are registered. タイムスロット1,2,6,7のように、サブのタスクが登録されている場合には(S305:Yes)、S310に処理を移行する。 As in the time slot 1, 2, 6, 7, if the sub-task has been registered (S305: Yes), the process proceeds to S310. また、サブのタスクが登録されていない場合には(S305:No)、本処理を終了する。 Further, if the sub-task is not registered (S305: No), the process ends.

S310では、スケジューラ111は、サブのタスクにタイムスロットの残り時間を割り当て、S315に処理を移行する。 In S310, the scheduler 111 may allocate the remaining time of the time slot sub-task, the process proceeds to S315.

続いて、スケジューラ111は、タイムスロットを割り当てたサブのタスクがVMである場合(S315:Yes)、このVMに対応する割込み要求フラグがセットされているか否かを判定する(S320)。 Subsequently, the scheduler 111, when the sub-tasks assigned the time slot is VM (S315: Yes), the interrupt request flag corresponding to the VM determines whether it is set (S320). そして、このVMに対応する割込み要求フラグがセットされている場合(S320:Yes)、スケジューラ111は、CPU11に、このVMにおける、この割込み要求フラグに対応する割込み処理を実行させる(S325)。 When the interrupt request flag corresponding to the VM is set (S320: Yes), the scheduler 111, the CPU 11, in the VM, to execute the interrupt processing corresponding to the interrupt request flag (S325). そして、この割込み処理の実行が終了すると、スケジューラ111は、上記割込み要求フラグをクリアし、本処理を終了する。 When the execution of the interrupt process is completed, the scheduler 111 clears the interrupt request flag, and the process ends. そして、以後、タイムスロットが割り当てられたVMにおける、割込み処理以外の他の処理が実行される。 Then, thereafter, in the VM in which time slot is allocated, other processing than the interrupt processing is executed.

また、タイムスロットを割り当てたサブのタスクがVMでない場合や(S315:No)、このVMに対応する割込み要求フラグがセットされていない場合(S320:No)には、スケジューラ111は、本処理を終了する。 Further, if the sub-tasks assigned the time slot is not VM and (S315: No), if the interrupt request flag corresponding to the VM is not set: in (S320 No), the scheduler 111, the process finish. そして、以後、タイムスロットが割り当てられたタスクが実行される。 Then, thereafter, the task of the time slot is allocated is executed.

(3−4)割込み発生処理について 既に述べたが、統合ECU10は、第一〜第三のECUを統合したECUであり、第一〜第三のECUが備える機能を有している。 (3-4) For interrupt generation process has been already mentioned, integrated ECU10 is ECU that integrates the first to third ECU, has a function provided in the first to third ECU. また、第一〜第三のVMは、それぞれ、第一〜第三のECUのプログラムの一部を変更して作成されたプログラムである。 Further, the first to third VM, respectively, a program that was created by changing a part of the first to third ECU program. そして、第一〜第三のECUのプログラムでは、周辺デバイスからの割込み要求が発生した際にCPUから直接コールされる割込みハンドラが用いられているが、第一〜第三のVMでは、この割込みハンドラに対応するサブルーチンが用いられている。 Then, in the first to third ECU program, but the interrupt handler interrupt request from the peripheral device is called directly from the CPU when generated is used, the first to third VM, this interrupt subroutine corresponding to the handler is used.

統合ECU10では、周辺デバイスからCPU11に対して割込み要求が発生すると、割込みハンドラが実行される。 Integration ECU 10, an interrupt request is generated for CPU11 from a peripheral device, interrupt handler is executed. この割込みハンドラでは、発生した割込み要求がどのVMに対応するものであるか特定し、対応するVMに対しての割込み要求フラグをセットすることにより、対応するVMに対して割込み要求を通知する。 This interrupt handler identifies whether those interrupt request generated corresponds to which VM, by setting the interrupt request flag for the corresponding VM, and notifies the interrupt request to the corresponding VM. ここでは、周辺デバイスからの割込み要求が発生し、対応するVMに対しての割込み要求の通知がなされた直後にスケジューラ111が行なう処理である割込み発生処理について、図6に記載のフローチャートを用いて説明する。 Here, the interrupt request from the peripheral device is generated, the interrupt generation process is a process scheduler 111 performed immediately after the notification of the interrupt request to the corresponding VM is made, with reference to a flowchart in FIG. 6 explain. 尚、周辺デバイスからCPU11に対して割込み要求が発生した際に統合制御プログラム100にて行われる処理については、後述する。 The processing of an interrupt request to CPU11 from a peripheral device is carried out in the integrated control program 100 when generated will be described later.

S405では、スケジューラ111は、第一〜第三のVMのうちのいずれかに対してタイムスロットが割り当てられているか判定する。 In S405, the scheduler 111 determines whether the time slot is assigned to one of the first to third VM. そして、いずれかのVMにタイムスロットが割り当てられている場合には(S405:Yes)、S410に処理を移行し、いずれのVMにもタイムスロットが割り当てられていない場合には(S405:No)、本処理を終了する。 Then, if the time slot is allocated to one of the VM (S405: Yes), the process proceeds to S410, and if not time slots assigned to any VM (S405: No) , the present process is terminated. 尚、現在タイムスロットが割り当てられているVMのことを、実行中のVMとも記載する。 Incidentally, that the VM currently timeslot is assigned, also described as running VM.

S410では、スケジューラ111は、実行中のVMは、タイムスロット管理テーブルにサブのタスクとして登録されているか判定する(尚、以後、タイムスロット管理テーブルにメインのタスクとして登録されているVMをメインのVMとも記載し、サブのタスクとして登録されているVMをサブのVMとも記載する)。 In S410, the scheduler 111, VM running, determines whether it is registered as a sub-task in the time slot management table (Note that hereinafter, the VM that is registered as the main task in the time slot management table main It describes both VM, describes a VM that has been registered as a sub-task with sub VM). そして、実行中のVMがサブのタスクとして登録されている場合には(S410:Yes)、発生した割込み要求が、実行中のサブのVMに対応するメインのVMに対応しているか判定する(S415)。 When the running VM is registered as a sub-task (S410: Yes), normal interrupt processing is judged whether the response to the main VM corresponding to sub running VM ( S415). 発生した割込み要求がこのメインのVMに対応している場合には(S415:Yes)、スケジューラ111は、S420に処理を移行する。 If the interrupt request generated corresponds to the main VM (S415: Yes), the scheduler 111, the process proceeds to S420. また、実行中のVMがサブのタスクでない場合や(S410:No)、発生した割込み要求が上記メインのVMに対応していない場合には(S415:No)、スケジューラ111は、S435に処理を移行する。 Also, if the running VM is not a sub-task or (S410: No), if the generated interrupt request does not correspond to the main VM (S415: No), the scheduler 111, processed S435 Transition.

S420では、スケジューラ111は、実行中のサブのVMに替えて、このサブのVMに対応するメインのVMにタイムスロットの残り時間を割り当て、このメインのVMにおける、発生した割込み要求に対応する割込み処理を実行する(S425)。 In S420, the scheduler 111, instead of the sub-running VM allocates a remaining time of the time slots in the main VM corresponding to the sub VM, in this main VM, corresponding to the interrupt request generated interrupt process is executed (S425). そして、この割込み処理の実行が終了すると、対応する割込み要求フラグをクリアし、メインのVMに替えて、このメインのVMに対応するサブのVMにタイムスロットの残り時間を割り当てる(S430)。 When the execution of the interrupt process is completed, and clears the corresponding interrupt request flag, instead of the main VM, assigning the remaining time of the time slot sub VM corresponding to the main VM (S430). そして、S435に処理を移行する。 Then, the process proceeds to S435.

S435では、スケジューラ111は、発生した割込み要求が、実行中のVMに対応しているか判定する。 In S435, the scheduler 111 determines whether an interrupt request has occurred, and corresponds to the running VM. 発生した割込み要求が実行中のVMに対応している場合(S435:Yes)、実行中のVMにおける対応する割込み処理を実行する(S440)。 When an interrupt request generated corresponds to running VM (S435: Yes), executes the corresponding interrupt process in the running VM (S440). そして、この割込み処理の実行が終了すると、対応する割込み要求フラグをクリアし、本処理を終了する。 When the execution of the interrupt process is completed, and clears the corresponding interrupt request flag, and the process ends. 発生した割込みが実行中のVMに対応していない場合(S435:No)、本処理を終了する。 If occurred interrupt is not compatible with the running VM (S435: No), the process ends.

(4)タイムスロットの利用状況について 次に、上述したタイムスロット割当処理やサブのタスク開始処理によりタイムスロットの割り当てを行った場合のタイムスロットの利用状況について説明する。 (4) The usage of time slots will now be described usage of time slots in the case of performing allocation of time slots by the above-described time slot allocation process and the sub-task start processing. 尚、スケジューラ111は、図3に記載のタイムスロット管理テーブルに従いタイムスロットの割り当てを行うものとする。 Note that the scheduler 111 is assumed to allocate a time slot in accordance with the time slot management table according to FIG. また、ここでは、わかりやすく説明するため、タイムスロット1〜3の利用状況については、図7に記載の説明図を用いて特に詳しく説明する。 In addition, here, for explanation clarity, the use status of time slots 1 to 3 will be described in particular detail with reference to the explanatory diagram according to FIG.

図7に記載されているように、タイムスロット1は、最初、メインのタスクである第一のVM120に割り当てられる。 As described in FIG. 7, the time slot 1 is first assigned to the first VM120 is a main task. そして、タイムスロット1が割り当てられた後、100μsが経過する前に第一のVM120が自発的に停止すると、タイムスロット1の残り時間がサブのタスクである第三のVM140に割り当てられる。 After the time slot 1 is allocated, the first VM120 before 100μs elapses voluntarily stopped, remaining time of the time slot 1 is allocated to the third VM140 is a sub task. 尚、第一のVM120が自発的に停止しなかった場合には、第三のVM140へのタイムスロット1の残り時間の割り当ては行なわれず、タイムスロット1は、全て、第一のVM120により消費される。 In the case where the first VM120 has not stopped voluntarily allocates the remaining time of the time slots 1 to the third VM140 is not performed, time slot 1 are all consumed by the first VM120 that.

タイムスロット1が全て消費されると(換言すれば、タイムスロット1が第一のVM120に割り当てられた後100μsが経過すると)、タイムスロット2についての割り当てが行なわれる。 When the time slot 1 is consumed (in other words, after a lapse of 100μs is after the time slot 1 is assigned to the first VM 120), allocation of the time slot 2 is performed. タイムスロット2は、最初、メインのタスクである第二のVM130に割り当てられる。 Time slot 2, the first, assigned to the second VM130 is a main task. そして、タイムスロット2が割り当てられた後、100μsが経過する前に第二のVM130が自発的に停止すると、タイムスロット2の残り時間がサブのタスクである第三のVM140に割り当てられる。 After the time slot 2 is assigned, the second VM130 before 100μs elapses voluntarily stopped, remaining time of the time slot 2 is assigned to the third VM140 is a sub task. 尚、第二のVM130が自発的に停止しなかった場合には、第三のVM140へのタイムスロット2の残り時間の割り当ては行なわれず、タイムスロット2は、全て、第二のVM130により消費される。 In the case where the second VM130 has not stopped voluntarily allocates the remaining time of the time slot 2 to the third VM140 is not performed, the time slots 2 are all consumed by the second VM130 that.

タイムスロット2が全て消費されると(換言すれば、タイムスロット2が第二のVM130に割り当てられた後100μsが経過すると)、タイムスロット3についての割り当てが行なわれる。 When the time slot 2 is consumed (in other words, after a lapse of 100μs is after the time slot 2 is assigned to the second VM 130), allocation of the time slot 3 is performed. タイムスロット3は、メインのタスクである第三のVM140に割り当てられる。 Time slot 3 is assigned to the third VM140 is a main task. 第三のVM140は、自発的に停止することはないため、タイムスロット3は、全て第三のVM140により消費される。 Third VM 140, because does not spontaneously stopped, time slot 3 is consumed by all third VM 140.

そして、タイムスロット4〜8に関しても、同様にして対応するタスクへの割り当てが行なわれる。 Then, with regard timeslot 4-8, assignment to the corresponding task is performed in the same manner.

尚、タイムスロット9に関しては、後述する仮想デバイス150に割り当てられ、この仮想デバイス150により全て消費される。 With respect to the time slots 9, assigned to the virtual device 150 described later, it is consumed by the virtual device 150.

また、タイムスロット管理テーブルにおいて、タイムスロット10に対応するタスクは登録されていないため、タイムスロット10の割り当てを行なうタイミングが到来しても、タイムスロット10の割り当ては行なわれない(つまり、どのタスクも実行されない)。 Further, in the time slot management table, since the task corresponding to the time slot 10 is not registered, even if incoming timing for allocation of time slots 10, assignment of time slots 10 is not performed (i.e., which tasks not be executed). そして、タイムスロット10の割り当てを行なうタイミングが到来した後、タイムスロット10に相当する時間(100μs)が経過すると、再度、タイムスロット1の割り当てが行なわれる。 After the timing of the allocation of time slots 10 arrives, the time corresponding to the time slot 10 (100 [mu] s) has elapsed, again, allocated timeslot 1 is performed.

(5)割込み処理の実行状況について 次に、割込み処理の実行状況について、図8に記載の説明図を用いて説明する。 (5) The execution status of the interrupt processing Next, the execution status of the interrupt processing will be described with reference to illustration according to FIG. 尚、スケジューラ111は、図3に記載のタイムスロット管理テーブルに従いタイムスロットの割り当てを行うものとする。 Note that the scheduler 111 is assumed to allocate a time slot in accordance with the time slot management table according to FIG. また、この説明では、例としてA割込み,B割込み,C割込みが発生するものとしているが、A割込み,B割込みに関しては、第一〜第三のVMがそれぞれ対応する割込み処理を有しており、C割込みに関しては、第二,第三のVMがそれぞれ対応する割込み処理を有している。 Further, in this description, A interrupt examples, B interrupt, but it is assumed that C interrupt occurs, A interrupt, with respect to B interrupt has an interrupt processing first to third VM correspond respectively , with respect to C interrupt has an interrupt processing the second, the third VM correspond.

タイムスロット10に対応する期間においてA割込みが発生し、タイムスロット1がメインのタスクである第一のVM120に割り当てられると、最初に第一のVM120におけるA割込みに対応する割込み処理が実行され、次に、この割込み処理以外の他の処理が実行される。 A interrupt occurs during the period corresponding to the time slot 10, the time slot 1 is assigned to the first VM120 is a main task, interrupt processing corresponding to the A interrupt in the first VM120 is executed first, Next, other processing than the interrupt processing is executed. そして、第一のVM120が終了し、タイムスロット1の残り時間がサブのタスクである第三のVM140に割り当てられると、最初に第三のVM140におけるA割込みに対応する割込み処理が実行され、次に、この割込み処理以外の他の処理が実行される。 Then, the first VM120 is completed and the remaining time of the time slot 1 is allocated to the third VM140 is a sub task, interrupt processing corresponding to the A interrupt in the third VM140 is executed first, the next to, other processing than the interrupt processing is executed.

続いてタイムスロット2がメインのタスクである第二のVM130に割り当てられると、最初に第二のVM130におけるA割込みに対応する割込み処理が実行され、次に、この割込み処理以外の他の処理が実行される。 Subsequently, when the time slot 2 is assigned to the second VM130 is a main task, the first interrupt process corresponding to the A interrupt in the second VM130 is executed, then other processing other than the interrupt processing It is executed. この割込み処理の実行によりA割込みに対応する割込み処理は全て実行済となり、A割込みに対応する割込み要求フラグは全てクリアされる。 The interrupt interrupt processing corresponding to the A interrupt by the execution of processing becomes all the executed, the interrupt request flag corresponding to the A interrupts are cleared.

また、タイムスロット2がメインのタスクである第二のVM130に割り当てられている間にB割込みが発生すると、第二のVM130におけるB割込みに対応する割込み処理が実行される。 Also, when the B interrupt occurs during the time slot 2 is allocated to the second VM130 is a main task, interrupt processing corresponding to the B interrupt in the second VM130 is executed. この割込み処理が終了すると、第二のVM130におけるこの割込み処理以外の他の処理が実行される。 When the interrupt process is completed, other processing than the interrupt process in the second VM130 is executed. そして、第二のVM130の実行が終了し、タイムスロット2の残り時間がサブのタスクである第三のVM140に割り当てられると、最初に第三のVM140におけるB割込みに対応する割込み処理が実行され、次に、この割込み処理以外の他の処理が実行される。 Then, execution of the second VM130 is completed and the remaining time of the time slot 2 is assigned to the third VM140 is a sub task, interrupt processing is executed corresponding to the first B interrupt in the third VM140 , then other processing than the interrupt processing is executed.

続いてタイムスロット3〜5は、それぞれ、第三のVM140に割り当てられる。 Then time slot 3-5, respectively, are allocated to the third VM 140. 尚、第三のVM140はB割込みに対応している。 Incidentally, the third VM140 corresponds to B interrupt. しかし、第三のVM140におけるB割込みに対応する割込み処理はタイムスロット2が割り当てられている間に既に実行されたため、タイムスロット3〜5が第三のVM140に割り当てられている間に、この割込み処理が実行されることはない。 However, since the interrupt processing corresponding to the B interrupt in the third VM 140 it has already been performed during the time slot 2 is assigned, while the time slots 3-5 are allocated to the third VM 140, the interrupt does not processing is executed.

そして、タイムスロット6がメインのタスクである第一のVM120に割り当てられると、最初に第一のVM120におけるB割込みに対応する割込み処理が実行され、次に、この割込み処理以外の他の処理が実行される。 When the time slot 6 is allocated to the first VM120 is a main task, the first interrupt process corresponding to the B interrupt in the first VM120 is executed, then other processing other than the interrupt processing It is executed. この割込み処理の実行により、B割込みに対応する割込み処理は全て実行済となり、B割込みに対応する割込み要求フラグは全てクリアされる。 By executing the interrupt process, the interrupt processing corresponding to the B interrupts becomes all the executed, the interrupt request flag corresponding to the B interrupt is cleared. そして、第一のVM120が終了すると、タイムスロット6の残り時間がサブのタスクである第三のVM140に割り当てられる。 When the first VM120 is completed, the remaining time of the time slot 6 is allocated to the third VM140 is a sub task.

続いてタイムスロット7は、メインのタスクである第二のVM130に割り当てられる。 Then time slot 7 is assigned to the second VM130 is a main task. その後、第二のVM130が終了すると、タイムスロット7の残り時間がサブのタスクである第三のVM140に割り当てられる。 Thereafter, when the second VM130 is completed, the remaining time of the time slots 7 is allocated to the third VM140 is a sub task. サブのタスクである第三のVM140を実行中にC割込みが発生すると、第三のVM140に替えて、メインのタスクである第二のVM130にタイムスロットの残り時間が割り当てられ、第二のVM130におけるC割込みに対応する割込み処理が実行される。 When C interrupt occurs during execution of the third VM 140 is a sub task, instead of the third VM 140, the remaining time of the time slot allocated to a second VM130 is a main task, the second VM130 interrupt processing corresponding to the C interrupt in is performed. そして、この割込み処理の実行が終了すると、タイムスロット7の残り時間が再び第三のVM140に割り当てられ、第三のVM140におけるC割込みに対応する割込み処理が実行される。 When the execution of the interrupt process is completed, remaining time of the time slots 7 is allocated to the third VM140 again, interrupt processing corresponding to the C interrupt in the third VM140 is executed. この割込み処理の実行により、C割込みに対応する割込み処理は全て実行済となり、C割込みに対応する割込み要求フラグは全てクリアされる。 By executing the interrupt process, the interrupt processing corresponding to the C interrupts becomes all the executed, the interrupt request flag corresponding to the C interrupts are cleared. C割込みに対応する割込み処理が終了すると、第三のVM140における他の処理が実行される。 When the interrupt process corresponding to the C interrupt is completed, other processing in the third VM140 is executed.

そして、タイムスロット8は、メインのタスクである第三のVM130に割り当てられ、タイムスロット9,10に関しては、第一〜第三のVMへの割り当ては行なわれない。 Then, the time slot 8 is assigned to the third VM130 is a main task, with respect to the time slot 9, 10, assigned to the first to third VM is not performed. また、タイムスロット1は、再び第一のVM120に割り当てられる。 The time slot 1 is assigned to the first VM120 again.

(6)仮想デバイスについて 次に、スケジューラ111におけるタスクの一つである仮想デバイス150について説明する。 (6) The virtual device will be described next virtual device 150 which is one of the tasks in scheduler 111. 上述したように、この仮想デバイス150は、第一〜第三のVMと、統合ECU10におけるCPU11の周辺デバイスへとのI/Fとなる部位である。 As described above, the virtual device 150, the first to third VM, which is the site of the I / F between the CPU11 of the peripheral device in an integrated ECU 10. また、この仮想デバイス150は、図3に記載のタイムスロット管理テーブルでは、タイムスロット9に対応するメインのタスクとして設定されている。 Further, the virtual device 150, the time slot management table according to FIG. 3, is set as the main task corresponding to the time slot 9. ここでは、一例として、仮想デバイス150におけるCANコントローラ14に対応する機能について説明する。 Here, as an example, a description will be given of the function corresponding to the CAN controller 14 in the virtual device 150.

第一のECU及び第二のECUはCANによる通信機能を有している。 The first ECU and the second ECU has a communication function by CAN. これらのECUのプログラムは、CANによる通信を制御するためのCANドライバを有しており、このCANドライバでは、統合前のECUにおけるCANコントローラを制御するためのレジスタへのIOアクセスが行われる。 These ECU program has a CAN driver for controlling the communication by CAN, in this CAN driver, IO access to the register for controlling the CAN controller in ECU before integration is carried out. 第一のVM120,第二のVM130は、統合前のプログラムにおけるCANドライバを流用した第一のCANドライバ122,第二のCANドライバ132をそれぞれ有している。 The first VM 120, second VM130 includes first CAN driver 122 diverted CAN driver, the second CAN driver 132, respectively, in pre-integration program. 仮想デバイス150は、第一のCANドライバ122や第二のCANドライバ132からCANコントローラ14への指令を受け付け、このCANコントローラ14を制御する機能を有している。 The virtual device 150 receives the command to the CAN controller 14 from the first CAN driver 122 and the second CAN driver 132 has a function of controlling the CAN controller 14.

図9に記載のブロック図には仮想デバイス150の構成が記載されているが、仮想デバイス150は、第一の仮想CANドライバ151と、第二の仮想CANドライバ152と、デバイス調停機構153とを有している。 Although the block diagram according to Figure 9 configuration of the virtual device 150 has been described, the virtual device 150 includes a first virtual CAN driver 151, a second virtual CAN driver 152, a device arbitration mechanism 153 It has.

第一の仮想CANドライバ151は、第一のVM120がCAN20による他のECUとの通信を行う際に、第一のCANドライバ122から、CANコントローラ14への指令を受け付ける部位である。 First virtual CAN driver 151, when the first VM120 communicates with another ECU by CAN 20, from the first CAN driver 122 is a portion for accepting a command to the CAN controller 14.

また、第二の仮想CANドライバ152は、第二のVM130がCAN20による他のECUとの通信を行う際に、第二のCANドライバ132から、CANコントローラ14への指令を受け付ける部位である。 The second virtual CAN driver 152, when the second VM130 communicates with another ECU by CAN 20, the second CAN driver 132 is a portion for accepting a command to the CAN controller 14.

また、デバイス調停機構153は、第一のCANドライバ122や第二のCANドライバ132からの指令に従い、CANコントローラ14を制御する部位である。 The device arbitration mechanism 153, in accordance with a command from the first CAN driver 122 and the second CAN driver 132, a portion for controlling the CAN controller 14.

(6−2)データ送信処理について 次に、第一のVM120または第二のVM130が、CAN20を介して接続されている他のECUにデータを送信する場合の動作について、図10に記載のシーケンス図を用いて説明する。 (6-2) for the data transmission processing Next, the first VM120 or second VM130 is, the operation when data is transmitted to the other ECU connected via a CAN 20, the sequence according to Figure 10 It will be described with reference to FIG.

第一のVM120では、CAN20を介してデータ送信を行う場合には、第一のCANドライバ122がコールされる(S505)。 In the first VM 120, when data is transmitted over the CAN20 the first CAN driver 122 is called (S505).

第一のCANドライバ122は、第一のECUにおけるCPUの周辺デバイスであるCANコントローラに対応する形式で、CAN20を介しての送信要求と送信データの設定を行なう。 First CAN driver 122 is a format corresponding to the CAN controller is a peripheral device of the CPU in the first ECU, to transmit request and setting of the transmission data via the CAN 20. このとき、第一のCANドライバ122から、仮想デバイス150における第一の仮想CANドライバ151がサブルーチンとしてコールされる(S510)。 At this time, from the first CAN driver 122, a first virtual CAN driver 151 is called as a subroutine in the virtual device 150 (S510). そして、第一の仮想CANドライバ151が、第一のECUにおけるCANコントローラに対応する形式でCAN20を介しての送信要求等を受け付けるのである。 The first virtual CAN driver 151 is to accept a transmission request or the like through the CAN20 in a format corresponding to the CAN controller in the first ECU.

このようにしてCAN20を介しての送信要求等を受け付けることにより、第一のECUにおけるプログラムを流用して第一のCANドライバ122とする際の変更規模を抑えることが可能となる。 By accepting a transmission request or the like of the thus through CAN20, it becomes possible to suppress the change scale of time of the first CAN driver 122 by use of programs in the first ECU. また、このとき、第一の仮想CANドライバ151は、例えば、第一のECUにおけるCANコントローラと同様にして、第一のCANドライバ122に対して応答を行っても良い。 At this time, the first virtual CAN driver 151, for example, in the same manner as the CAN controller in the first ECU, may be performed in response to the first CAN driver 122. こうすることにより、第一のCANドライバ122は、第一のECUと同一の形式でCAN20を介してのデータ送信を行うことが可能となる。 By doing so, the first CAN driver 122, it is possible to perform data transmission through the CAN20 at first ECU and the same format. したがって、第一のECUにおけるプログラムを流用して第一のCANドライバ122とする際の変更規模をより抑えることが可能となる。 Therefore, it is possible to further suppress the change scale when the first CAN driver 122 by use of programs in the first ECU.

そして、第一の仮想CANドライバ151では、デバイス調停機構153に属するサブルーチンがコールされ(S515)、このサブルーチンにて、第一のCANドライバ122から受け付けた送信データがバッファされる。 Then, the first virtual CAN driver 151, a subroutine belonging to the device arbitration mechanism 153 is called (S515), in this subroutine, the transmission data received from the first CAN driver 122 are buffered.

第二のVM130においても、同様にしてCAN20を介してのデータ送信要求が行なわれる。 Also in the second VM 130, the data transmission request via the CAN20 similarly performed. 第二のVM130では、CAN20を介してのデータ送信を行う場合には、第二のCANドライバ132がコールされる(S520)。 In the second VM 130, when performing data transmission over the CAN20, the second CAN driver 132 is called (S520).

第二のCANドライバ132は、第二のECUにおけるCANコントローラに対応する形式で、CAN20を介しての送信要求と送信データの設定を行なう。 Second CAN driver 132 is a format corresponding to the CAN controller in the second ECU, to transmit request and setting of the transmission data via the CAN 20. このとき、第二のCANドライバ132から、仮想デバイス150における第二の仮想CANドライバ152がサブルーチンとしてコールされる(S525)。 At this time, the second CAN driver 132, a second virtual CAN driver 152 in the virtual device 150 is called as a subroutine (S525). そして、第二の仮想CANドライバ152が、第二のECUにおけるCANコントローラに対応する形式でCAN20を介しての送信要求等を受け付けるのである。 Then, the second virtual CAN driver 152 is to accept a transmission request or the like through the CAN20 in a format corresponding to the CAN controller in the second ECU. また、このとき、第二の仮想CANドライバ152は、例えば、第二のECUにおけるCANコントローラと同様にして、第二のCANドライバ132に対して応答を行っても良い。 At this time, the second virtual CAN driver 152, for example, in the same manner as the CAN controller in the second ECU, may be performed in response to the second of the CAN driver 132.

そして、第二の仮想CANドライバ152では、デバイス調停機構153に属するサブルーチンがコールされ(S530)、このサブルーチンにて、第二のCANドライバ132から受け付けた送信データがバッファされる。 Then, the second virtual CAN driver 152, a subroutine belonging to the device arbitration mechanism 153 is called (S530), in this subroutine, transmission data received from the second CAN driver 132 are buffered.

次に、タイムスロット9が仮想デバイス150に割り当てられ、仮想デバイス150の実行が開始されると、デバイス調停機構に属するサブルーチンがコールされる(S535)。 Then, the time slots 9 are assigned to the virtual device 150, the execution of the virtual device 150 is started, a subroutine belonging to the device arbitration mechanism is called (S535). このサブルーチンは、CANコントローラ14に対し、このCANコントローラ14に対応する形式で、第一のCANドライバ122等から受け取った送信データの送信を指示する。 This subroutine to CAN controller 14, in a format corresponding to the CAN controller 14, and instructs the transmission of the transmission data received from like the first CAN driver 122. 具体的には、CANコントローラ14にIOアクセスを行い(S540)、バッファされている送信データをCANコントローラ14の送信バッファにセットし、送信を指示する。 Specifically, perform IO access to the CAN controller 14 (S540), sets the transmission data buffered in the transmission buffer of the CAN controller 14, and instructs the transmission.

(6−2)データ受信時の動作について 次に、統合ECU10がCAN20を介して接続されている他のECUからデータを受信する場合の仮想デバイス150等の動作について、図11に記載のシーケンス図を用いて説明する。 (6-2) Operation at the time of data reception Next, the operation of the virtual device 150, such as when the integrated ECU10 receives data from other ECU connected via a CAN 20, a sequence diagram according to FIG. 11 It will be described with reference to.

統合ECU10がCAN20を介して他のECUからデータを受信すると、CANコントローラ14は、CPU11に対して割込み要求を通知し(S605)、この割込み要求に対応する割込みハンドラ(以後、CAN受信割込みハンドラとも記載)がコールされる(S610)。 When integrated ECU10 receives data from another ECU via the CAN 20, CAN controller 14 notifies the interrupt request to the CPU 11 (S605), the interrupt handler (hereinafter, corresponding to the interrupt request, both CAN receive interrupt handler wherein) is called (S610). 尚、このCAN受信割込みハンドラは、仮想デバイス150におけるデバイス調停機構153に属するものである。 In this CAN receive interrupt handler is one which belongs to the device arbitration mechanism 153 in the virtual device 150.

このCAN受信割込みハンドラでは、CANコントローラ14から受信データが取得される。 This CAN receive interrupt handler, the received data is acquired from the CAN controller 14. そして、受信データが第一のVM120宛のデータである場合には、第一のCANドライバ122に属するサブルーチンがコールされる(S615)。 The received data when the data addressed to the first VM120 is a subroutine is called which belong to the first CAN driver 122 (S615). このサブルーチンでは、第一のVM120に対してのCAN受信割込み要求フラグがセットされ、第一のECUにおけるCANコントローラと同様の形式で、第一のVM120に対してのデータ受信の通知や、受信データのバッファが行なわれる。 In this subroutine, CAN receive interrupt request flag for the first VM 120 is set, in a format similar to CAN controller in the first ECU, notification and data reception with respect to the first VM 120, the received data buffer is performed. また、受信したデータが第二のVM130宛のデータである場合にも同様に、第二のCANドライバ132に属するサブルーチンがコールされる(S620)。 Further, the received data is similarly in the case of data addressed to the second VM 130, the subroutine is called belonging to the second CAN driver 132 (S620). このサブルーチンでも、第二のVM130に対してのCAN受信割込み要求フラグがセットされ、第二のECUにおけるCANコントローラと同様の形式で、第二のVM130に対してのデータ受信の通知や、受信データのバッファが行なわれる。 In this subroutine, CAN receive interrupt request flag for the second VM 130 is set, in a format similar to CAN controller in the second ECU, notification and data reception with respect to the second VM 130, the received data buffer is performed.

[効果] [effect]
本実施形態の統合制御プログラム100におけるスケジューラ111では、タイムスロット1,6に対応付けて、リアルタイム性が要求される第一のVM120がメインのタスクとして登録されていると共に、リアルタイム性が要求されない第三のVM140がサブのタスクとして登録されている。 In the scheduler 111 in the integrated control program 100 of the present embodiment, in association with the time slot 1,6, with the first VM120 that requires real time is registered as a main task, the real time is not required third VM140 has been registered as a sub-task. また、タイムスロット2,7に対応付けて、リアルタイム性が要求される第二のVM130がメインのタスクとして登録されていると共に、第三のVM140がサブのタスクとして登録されている。 Further, in association with the time slot 2, 7, a second VM130 that requires real time together with is registered as a main task, the third VM140 are registered as a sub-task. そして、メインのタスクとして登録されている第一のVM120或いは第二のVM130が、自身に割り当てられたタイムスロットを全て消費することなく処理を終了した場合には、サブのタスクである第三のVM140に、このタイムスロットの残り時間が割り当てられる(S310)。 The first VM120 or second VM130 which is registered as a main task, when it is completed to process without consuming any time slot assigned to itself, the third is a sub task the VM 140, the remaining time of the time slots are allocated (S310). したがって、スケジューラ111によれば、リアルタイム性が要求されない第三のVM140により実現される処理の停滞を抑えつつ、第一〜第三のVMをCPUに並行して実行させることができる。 Therefore, according to the scheduler 111, it is possible while suppressing the stagnation of processing realized by the third VM140 real time is not required to execute in parallel the first to third VM to the CPU.

また、スケジューラ111では、実行中のVMに対応する割込み要求が発生した場合には、このVMにおける、発生した割込み要求に対応する割込み処理が実行される(S440)。 Also, the scheduler 111, when an interrupt request corresponding to the running VM is generated, in this VM, interrupt processing is executed corresponding to the interrupt request generated (S440). したがって、VMが有している割込み処理を確実に実行することができる。 Therefore, it is possible to reliably execute the interrupt process VM has. このため、統合前のECUの制御プログラムに割込みハンドラが用いられている場合であっても、この割込みハンドラが流用されたVMを処理単位とすることができる。 Therefore, even if the interrupt handler is used in the control program of the ECU before integration can be a VM that this interrupt handler is diverted as a processing unit. このため、複数のECUの制御プログラムを一つに統合する際の変更規模の増加を抑えることができる。 Therefore, it is possible to suppress the change scale increased in integrating a plurality of ECU control programs into one.

尚、この割込み処理の実行に関しては、例外が存在する。 With respect to the execution of the interrupt process, exceptions exist. 具体的には、サブのVMを実行中に、このサブのVMに対応するメインのVMに対しての割込み要求が発生した場合には、サブのVMの実行を中断し、メインのVMにおける、上記割込み要求に対応する割込み処理が実行される(S425)。 More specifically, during the sub-VM, when an interrupt request is generated with respect to the main VM corresponding to the sub VM, it interrupts the execution of the sub-VM, in the main VM, interrupt processing corresponding to the interrupt request is executed (S425). そして、この割込み要求がサブのVMに対応している場合には、メインのVMにおける割込み処理が終了した後に、サブのVMにおける割込み処理が実行されるのである(S440)。 When the interrupt request corresponds to the sub VM, after the interrupt processing in the main VM has been completed, it is an interrupt process in the sub-VM is executed (S440). このため、優先的にメインのVMにおける割込み処理を実行することができる。 Thus, preferentially it can perform the interrupt processing in the main VM. したがって、メインのVMをサブのVMに対してより優先的に実行することができ、メインのVMのリアルタイム性をより確実なものとすることができる。 Therefore, it is possible to execute the main VM more preferentially to the sub of the VM, can be made more reliable real-time the main VM.

また、スケジューラ111では、割込み要求が発生した状態で、この割込み要求に対応するVMにタイムスロットが割り当てられると、最初に、このVMにおける、この割込み要求に対応する割込み処理が実行される(S240,S325)。 Also, the scheduler 111, in a state in which the interrupt request is generated, the time slots are allocated to the VM corresponding to the interrupt request, first, in the VM, the interrupt processing is executed corresponding to the interrupt request (S240 , S325). したがって、発生した割込み要求に対応する割込み処理を速やかに実行することができる。 Therefore, it is possible to execute the interrupt processing corresponding to the interrupt request generated quickly.

また、本実施形態の統合制御プログラム100では、仮想デバイス150は、第一のVM120から、統合前のECUである第一のECUと同様の形式でCANコントローラ14への指示を受け付ける第一の仮想CANドライバ151を有していると共に、第二のVM130から、統合前のECUである第二のECUと同様の形式でCANコントローラ14への指示を受け付ける第二の仮想CANドライバ152を有している。 Further, the integrated control program 100 of the present embodiment, the virtual device 150 from the first VM 120, the first virtual receiving an instruction to the CAN controller 14 in the same format as the first ECU is ECU before integration together and a CAN driver 151, from the second VM 130, a second virtual CAN driver 152 for receiving an instruction to the CAN controller 14 in the same format as the second ECU is ECU before integration there. また、統合制御プログラム100では、第一のVM120に対し、第一のECUと同様の形式で、CANコントローラ14が受信したデータの提供が行なわれると共に、第二のVM130に対し、第二のECUと同様の形式で、CANコントローラ14が受信したデータの提供が行なわれる。 Further, the integrated control program 100, to the first VM 120, in the same format as the first ECU, together with providing data that CAN controller 14 has received is performed with respect to the second VM 130, the second ECU in a similar format as, providing data that cAN controller 14 has received is performed. このため、第一のECUの制御プログラムに基づき第一のVM120を作成する際、第一のECUの制御プログラムにおけるCANドライバを流用することが可能となる。 Therefore, when creating a first VM120 based on the first ECU control program, it is possible to divert the CAN driver in the first ECU control program. また、同様にして、第二のECUの制御プログラムに基づき第二のVM130を作成する際、第二のECUの制御プログラムにおけるCANドライバを流用することが可能となる。 Similarly, when creating a second VM130 based on the control program of the second ECU, it is possible to divert the CAN driver in the second ECU control program. つまり、第一のECUの制御プログラムや第二のECUの制御プログラムを統合する際の変更規模の増加を抑えることができるのである。 In other words, it is possible to suppress the change scale increased in integrating the first ECU control program and the second ECU control program for.

[他の実施形態] [Other embodiments]
(1)本実施形態では、第一〜第三のVMと、仮想デバイス150とがスケジューラ111の四つがタスクとして登録されているが、スケジューラ111に登録されるタスクの数は四つに限定されるものではない。 (1) In the present embodiment, the first to third VM, but the virtual device 150 has four scheduler 111 is registered as a task, the number of tasks registered in the scheduler 111 is limited to four not shall. また、本実施形態では、仮想デバイス150は、メインのタスクとしてタイムスロット9に割り当てられているが、サブのタスクとしてタイムスロットに割り当てられていても良い。 Further, in the present embodiment, the virtual device 150 is assigned to a time slot 9 as a main task may be assigned to a time slot as a sub task. また、VM等に替えて、例えば、外部装置を制御するためのアプリケーション等をタスクとしても良い。 Further, instead of the VM, etc., for example, it may be as a task an application or the like for controlling the external device. このような構成を有する場合であっても、同様の効果を得ることができる。 Even when having such a configuration, it is possible to obtain the same effect.

(2)本実施形態のスケジューラ111では、一つのタイムスロットに対し、第一〜第三のVMのうちのいずれか一つがサブのタスクとして登録されている。 (2) the scheduler 111 of the present embodiment, with respect to one time slot, any one of the first to third VM is registered as a sub-task. しかし、一つのタイムスロットに対し、第一〜第三のVM、或いは仮想デバイス150のうちの複数をサブのタスクとして登録可能とし、この複数のVM等に優先順位を設定しても良い。 However, for one time slot, the first to third VM, or to be registered more than one of the virtual device 150 as a sub-task may be prioritize the plurality of VM like. そして、メインのタスクの実行が終了すると、サブのタスクとして登録されている複数のVM等のうち、優先順位の高いVM等から順に、タイムスロットの残り時間を割り当てても良い。 When the execution of the main task is completed, among such plurality of VM which is registered as a sub-task, in descending order of priority VM, etc., may be assigned the remaining time of the time slot. このような構成を有する場合であっても、リアルタイム性が要求されないタスクにより実現される処理の停滞を抑えつつ、リアルタイム性が要求されるタスクとリアルタイム性が要求されないタスクをCPUに並行して実行させることができる。 Even when having such a configuration, while suppressing the stagnation of processing realized by task real time is not required, a task that the task in real time is not required that requires real time in parallel with CPU execution it can be.

[特許請求の範囲との対応] [Correspondence between the claims]
上記実施形態の説明で用いた用語と、特許請求の範囲の記載に用いた用語との対応を示す。 And terminology used in the description of the embodiment, the correspondence between terms used in the description of the claims shown.

保護機能付きRTOS110及び仮想デバイス150が基本プログラムに相当する。 Protection function RTOS110 and virtual device 150 corresponds to the basic program. また、保護機能付きRTOS110によるスケジューリングの対象となるタスクが処理単位に相当する。 The task to be scheduled by the protective function RTOS110 corresponds to the unit of processing. また、第一のVM120,第二のVM130が、それぞれ、リアルタイム処理単位に相当し、第三のVM140が非リアルタイム処理単位に相当する。 Further, the first VM 120, the second VM 130, respectively, correspond to the real time processing unit, a third VM140 corresponds to the non real time processing unit. また、第一のVM120,第二のVM130,第三のVM140が、それぞれ、割込み対応処理単位に相当する。 Further, the first VM 120, the second VM 130, the third VM 140, respectively, corresponding to the interrupt handling process units. また、タイムスロット管理テーブルがタイムスロットデータに相当する。 The time slot management table corresponds to a time slot data.

また、統合ECU10が制御装置に相当し、第一〜第三のECUが、それぞれ、他の装置に相当する。 The integrated ECU10 corresponds to the control device, the first to third ECU, respectively, correspond to another device. また、統合ECU10におけるCANコントローラ14が自装置の周辺デバイスに、第一,第二のECUにおけるCANコントローラが、それぞれ、他の装置の周辺デバイスに相当する。 Further, CAN controller 14 in the integrated ECU10 is a peripheral device of the apparatus, first, CAN controller in the second ECU, respectively, corresponding to the peripheral devices other devices.

また、タイムスロット割当処理におけるS225が第一のステップに、S240が第八のステップにそれぞれ相当する。 Further, S225 in the time slot allocation process is the first step, S240 corresponds respectively to the eighth step. また、サブのタスク開始処理におけるS310が第二のステップに、S325が第八のステップにそれぞれ相当する。 Further, in S310 in the sub-task start processing the second step, S325 corresponds respectively to the eighth step. また、割込み発生処理のS440が第七のステップに、S425が第九のステップにそれぞれ相当する。 Also, the S440 of the interrupt generation processing seventh step, S425 corresponds respectively to a ninth step.

また、図10に記載のシーケンス図におけるS510及びS515,S525及びS530が、それぞれ、第三のステップに相当し、S535が第四のステップに相当する。 Also, S510 and S515, S525 and S530 in the sequence diagram according to FIG. 10, respectively, corresponds to the third step, S535 corresponds to the fourth step. また、図11に記載のシーケンス図におけるS610が第五のステップに相当し、S615,S620が、それぞれ、第六のステップに相当する。 Also, the S610 in the sequence diagram according to FIG. 11 corresponds to the fifth step, S615, S620, respectively, corresponding to the sixth step.

10…統合ECU、11…CPU、12…ROM、13…RAM、14…CANコントローラ、15…内部バス、20…CAN、100…統合制御プログラム、110…保護機能付きRTOS、111…スケジューラ、120…第一のVM、121…AUTOSAR、122…第一のCANドライバ、130…第二のVM、131…OSEK、132…第二のCANドライバ、140…第三のVM、141…Linux、150…仮想デバイス、151…第一の仮想CANドライバ、152…第二の仮想CANドライバ、153…デバイス調停機構。 10 ... integrated ECU, 11 ... CPU, 12 ... ROM, 13 ... RAM, 14 ... CAN controller, 15 ... internal bus, 20 ... CAN, 100 ... integrated control program, 110 ... protection function RTOS, 111 ... scheduler 120 ... first VM, 121 ... AUTOSAR, 122 ... first CAN driver, 130 ... second VM, 131 ... OSEK, 132 ... second CAN driver, 140 ... third VM, 141 ... Linux, 0.99 ... virtual device, 151 ... first virtual CAN driver, 152 ... second virtual CAN driver, 153 ... device arbitration mechanism.

Claims (7)

  1. 複数の処理単位のうちのいずれかに対して予め設定されたタイミングでタイムスロットを割り当てることにより、これらの前記処理単位をCPUに並行して実行させる基本プログラムであって、 By allocating time slots at a predetermined timing with respect to one of a plurality of processing units, a basic program to execute them in parallel of the processing units CPU,
    前記処理単位として、外部からの入力に対し予め設定された時間内での応答が可能であるという性質であるリアルタイム性が要求されるリアルタイム処理単位と、前記リアルタイム性が要求されない非リアルタイム処理単位とが存在し、前記非リアルタイム処理単位は、いずれかの前記リアルタイム処理単位に対応付けられており、 As the processing unit, the real-time processing unit which requires real time is a property that is capable of responding within a predetermined time to an external input, and a non-real-time processing units in which the real time is not required there exists, it said non real time processing unit is associated with one of the real-time processing units,
    前記処理単位として、所定の割込みに対応する割込み処理を有している割込み対応処理単位が存在し、 As the processing unit, there is an interrupt handling process units having an interrupt processing corresponding to the predetermined interrupt,
    前記基本プログラムは、前記処理単位に対して前記タイムスロットを割り当てるタイミングを示すデータであるタイムスロットデータを有しており、 The basic program has a time slot data is data indicating a timing for allocating the time slots to the processing unit,
    前記基本プログラムは、 The basic program,
    前記タイムスロットデータに基づき、前記リアルタイム処理単位に前記タイムスロットを割り当てる第一のステップと、 Based on the time slot data, a first step of allocating said time slots in said real time processing unit,
    前記第一のステップにて割り当てられた前記タイムスロットを使い切ることなく、前記リアルタイム処理単位が終了した場合には、該リアルタイム処理単位に替えて、該リアルタイム処理単位に対応付けられている前記非リアルタイム処理単位に、該タイムスロットの残り時間を割り当てる第二のステップと、 Without running out of the time slot assigned by the first step, when the real time processing unit has been completed, instead of the real-time processing units, the non-real-time associated with the said real time processing unit the processing unit, and a second step of assigning the remaining time of the time slot,
    前記タイムスロットに前記リアルタイム処理単位が割り当てられて当該リアルタイム処理単位が実行中、または、前記タイムスロットの前記残り時間に前記非リアルタイム処理単位が割り当てられて当該非リアルタイム処理単位が実行中に、前記割込み対応処理単位に対応する前記所定の割込みが発生すると、該所定の割込みに対応する前記割込み処理を優先して実行する第七のステップと、 Wherein in said time slot to time processing unit assigned the real-time processing units executing, or during the remaining time said non real time processing unit assigned to the non real time processing unit of the time slot is performed, the When the predetermined interrupt corresponding to the interrupt handling process unit occurs, a seventh step of executing in priority the interrupt process corresponding to the predetermined interrupt,
    を有することを特徴とする基本プログラム。 Basic program and having a.
  2. 請求項1に記載の基本プログラムにおいて、 In the basic program according to claim 1,
    前記リアルタイム処理単位は、複数の前記非リアルタイム処理単位に対応付けられており、該リアルタイム処理単位に対応する前記非リアルタイム処理単位には、優先順位が設定されており、 The real time processing unit is associated with a plurality of said non real time processing unit, said non real time processing unit corresponding to the real-time processing unit is set priority,
    前記第二のステップにおいて、前記リアルタイム処理単位に対応する前記非リアルタイム処理単位のうち、優先順位の高い前記非リアルタイム処理単位から順に前記タイムスロットの残り時間を割り当てること、 In the second step, among the non-real time processing unit corresponding to the real time processing unit, assigning the remaining time of the time slot from highest priority said non real time processing unit in order,
    を特徴とする基本プログラム。 Basic program and said.
  3. 請求項1または請求項2に記載の基本プログラムにおいて、 In the basic program according to claim 1 or claim 2,
    前記処理単位のうちの少なくとも二つは、前記基本プログラムが搭載される装置とは異なる他の装置の制御プログラムに基づく処理単位であるVM(Virtual Machine Programの略)であること、 At least two of the processing units, the apparatus in which the basic program is mounted a VM is a processing unit based on the control program of a different other apparatus (short for Virtual Machine Program),
    を特徴とする基本プログラム。 Basic program and said.
  4. 請求項3に記載の基本プログラムにおいて、 In the basic program according to claim 3,
    前記VMは、前記他の装置におけるCPUの周辺デバイスであって、前記基本プログラムが搭載される装置におけるCPUにおける周辺デバイスである自装置の周辺デバイスと同一の用途にて用いられる周辺デバイスである他の装置の周辺デバイスを制御するための処理を有しており、 The VM is a CPU of the peripheral device in the other device, the other said basic program is a peripheral device used in the peripheral device and the same application of the apparatus with the peripheral device in the CPU in the device to be mounted has a process for controlling the peripheral devices of the apparatus,
    前記自装置の周辺デバイスには、前記他の装置の周辺デバイスとは異なる形式で指示を行う必要があり、 Wherein the peripheral devices of the apparatus, it is necessary to issue an instruction in a different format than the peripheral devices of the other device,
    前記基本プログラムは、 The basic program,
    それぞれの前記VMから、前記他の装置の周辺デバイスへの指示と同様の形式で、前記自装置の周辺デバイスに対しての指示を受け付ける第三のステップと、 From each of the VM, an instruction format similar to the peripheral devices of the other device, and a third step of accepting an instruction to the peripheral devices of the own apparatus,
    前記第三のステップにて受け付けた指示を、前記自装置の周辺デバイスに対応する形式に変換し、該自装置の周辺デバイスに対しての制御を行う第四のステップと、 The instruction received by the third step, converted the to the format corresponding to the peripheral device of its own device, and a fourth step of controlling the relative peripheral devices the free-apparatus,
    をさらに有すること、 Further comprising a,
    を特徴とする基本プログラム。 Basic program and said.
  5. 請求項4に記載の基本プログラムにおいて、 In the basic program according to claim 4,
    前記基本プログラムは、 The basic program,
    前記自装置の周辺デバイスから提供されるデータを取得する第五のステップと、 A fifth step of acquiring data provided from the peripheral device of the self apparatus,
    前記第五のステップにて取得したデータを、該自装置の周辺デバイスに対応する前記他の装置の周辺デバイスを制御する処理を有する前記VMに対し、該他の装置の周辺デバイスに対応する形式で提供する第六のステップと、 The data obtained in the fifth step, with respect to the VM with a process of controlling the peripheral devices of the other device corresponding to the peripheral device the free-device, format corresponding to the peripheral device of the other device and a sixth step of providing in,
    をさらに有すること、 Further comprising a,
    を特徴とする基本プログラム。 Basic program and said.
  6. 請求項1から請求項5のうちのいずれか1項に記載の基本プログラムにおいて、 In the basic program as claimed in any one of claims 5,
    前記割込み対応処理単位が有する前記割込み処理に対応する前記所定の割込みとは、CANを介してデータを受信した際に発生する割り込みであり、該割込み処理では、該データを受信するための処理が行われること、 Wherein A predetermined interrupt corresponding to the interrupt process the interrupt handling process units has a interrupt generated when data is received via the CAN, in該割inclusive process, the processing for receiving the data It carried out that,
    を特徴とする基本プログラム。 Basic program and said.
  7. 請求項1から請求項6のうちのいずれか1項に記載の基本プログラムに従い処理を行うコンピュータを備える制御装置。 Controller comprising a computer for performing processing in accordance with the basic program according to any one of claims 1 to 6.
JP2009012055A 2009-01-22 2009-01-22 Program, and the control device Active JP4985662B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009012055A JP4985662B2 (en) 2009-01-22 2009-01-22 Program, and the control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009012055A JP4985662B2 (en) 2009-01-22 2009-01-22 Program, and the control device

Publications (2)

Publication Number Publication Date
JP2010170320A true JP2010170320A (en) 2010-08-05
JP4985662B2 true JP4985662B2 (en) 2012-07-25

Family

ID=42702419

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009012055A Active JP4985662B2 (en) 2009-01-22 2009-01-22 Program, and the control device

Country Status (1)

Country Link
JP (1) JP4985662B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5423635B2 (en) 2009-11-09 2014-02-19 株式会社デンソー Scheduling method, scheduling program, scheduling apparatus

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3659062B2 (en) * 1999-05-21 2005-06-15 株式会社日立製作所 Computer system
JP3813930B2 (en) * 2002-01-09 2006-08-23 松下電器産業株式会社 Processor and program execution method
JP2007509387A (en) * 2003-09-30 2007-04-12 ジャルナ エスアー operating system
JP4728083B2 (en) * 2005-10-14 2011-07-20 パナソニック株式会社 The media processing device
JP2008262419A (en) * 2007-04-12 2008-10-30 Toyota Motor Corp Information processor, operating system selection method and program

Also Published As

Publication number Publication date Type
JP2010170320A (en) 2010-08-05 application

Similar Documents

Publication Publication Date Title
US6353844B1 (en) Guaranteeing completion times for batch jobs without static partitioning
Ramos-Thuel et al. On-line scheduling of hard deadline aperiodic tasks in fixed-priority systems
US6732139B1 (en) Method to distribute programs using remote java objects
US6389449B1 (en) Interstream control and communications for multi-streaming digital processors
Davis et al. Resource sharing in hierarchical fixed priority pre-emptive systems
US20070016907A1 (en) Method, system and computer program for automatic provisioning of resources to scheduled jobs
US20090019449A1 (en) Load balancing method and apparatus in symmetric multi-processor system
US20080288949A1 (en) Interprocess Resource-Based Dynamic Scheduling System and Method
US20020087618A1 (en) System and method for utilizing dispatch queues in a multiprocessor data processing system
US6721948B1 (en) Method for managing shared tasks in a multi-tasking data processing system
Herman et al. RTOS support for multicore mixed-criticality systems
US20060107264A1 (en) Operating system and architecture for embedded system
Devi et al. Efficient synchronization under global EDF scheduling on multiprocessors
CN102096602A (en) Task scheduling method, and system and equipment thereof
Kaneko et al. Integrated scheduling of multimedia and hard real-time tasks
US20110302587A1 (en) Information processing device and information processing method
US7711822B1 (en) Resource management in application servers
Elliott et al. GPUSync: A framework for real-time GPU management
US7565659B2 (en) Light weight context switching
US20070169126A1 (en) Multi-processor system and program for causing computer to execute controlling method of multi-processor system
JPH07141305A (en) Control method for execution of parallel computer
US20080229319A1 (en) Global Resource Allocation Control
JP2001202258A (en) Rear time processor
JPH07200496A (en) Processor allocation system
US20090183166A1 (en) Algorithm to share physical processors to maximize processor cache usage and topologies

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100603

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110906

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111031

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120403

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120416

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250