JP5712907B2 - Operation check method of control device, information processing device and memory management device - Google Patents
Operation check method of control device, information processing device and memory management device Download PDFInfo
- Publication number
- JP5712907B2 JP5712907B2 JP2011251605A JP2011251605A JP5712907B2 JP 5712907 B2 JP5712907 B2 JP 5712907B2 JP 2011251605 A JP2011251605 A JP 2011251605A JP 2011251605 A JP2011251605 A JP 2011251605A JP 5712907 B2 JP5712907 B2 JP 5712907B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- access
- data
- physical address
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本発明は、プロセッサからメモリに対するアクセスにおいて指定された仮想アドレスを物理アドレスに変換するメモリ管理装置を利用した情報処理装置およびメモリ管理装置の動作確認方法に関する。 The present invention relates to an information processing apparatus using a memory management apparatus that converts a virtual address designated in access to a memory from a processor into a physical address, and a method for confirming the operation of the memory management apparatus.
サービスロボットは、外界センサや自己診断装置によって安全状態を常時監視し、何らかの危険を検知した場合に適切な安全制御ロジックを実行することで、機能安全を確保する必要がある。 Service robots must ensure functional safety by constantly monitoring the safety state with external sensors and self-diagnosis devices and executing appropriate safety control logic when any danger is detected.
上述したサービスロボットのほか、運輸機器等の電気的な原理で動作するシステムを対象とした機能安全に関する国際標準としてIEC 61508が制定されている。IEC 61508では、機能安全の確保のために設けられるシステムのことを安全関連系と呼んでいる。IEC 61508は、マイクロプロセッサ及びPLC(Programmable Logic Controller)等のハードウェアとコンピュータプログラム(ソフトウェア)によって安全関連系を構築するための様々な技法を定めている。IEC 61508で定められている技法を用いることで、コンピュータシステムを用いて安全関連系を構築することが可能となる。 In addition to the service robots described above, IEC 61508 has been established as an international standard for functional safety for systems that operate on electrical principles such as transportation equipment. In IEC 61508, a system provided for ensuring functional safety is called a safety-related system. IEC 61508 defines various techniques for constructing a safety-related system using hardware such as a microprocessor and a PLC (Programmable Logic Controller) and a computer program (software). By using the technique defined in IEC 61508, it is possible to construct a safety-related system using a computer system.
一方で、近年、マイクロプロセッサ等のプログラマブル電子機器の処理能力が向上している。このため、マルチタスクOS(Operating System)を利用し、1つのコンピュータシステム上で様々なアプリケーションプログラムを並列実行することで、サービスロボット及び自動車等の機器に搭載されている複数用途のコンピュータシステムを統合することができる。 On the other hand, in recent years, the processing capability of programmable electronic devices such as microprocessors has improved. For this reason, a multi-task OS (Operating System) is used, and various application programs are executed in parallel on one computer system, thereby integrating multiple-use computer systems installed in service robots and automobiles. can do.
例えば特許文献1に、機能安全の確保に関するアプリケーションプログラム(以下、安全関連アプリケーションと呼ぶ)を、その他のアプリケーションプログラム(以下、非安全関連アプリケーションと呼ぶ)と共に1つのコンピュータシステム上で動作させる技術が開示されている。
For example,
IEC 61508で定められている技法を、安全関連アプリケーションおよび非安全関連アプリケーションを含むソフトウェア全体に適用すると、非安全関連アプリケーションにまで適用する必要性が生じる。このため、ソフトウェア開発コストが増大するという問題がある。 When the technique defined in IEC 61508 is applied to the entire software including safety-related applications and non-safety-related applications, it is necessary to apply even to non-safety-related applications. For this reason, there is a problem that the software development cost increases.
そこで、特許文献1に開示される技術では、システムプログラムのタイム・パーティションニングによって、安全関連アプリケーション(安全監視プログラム及び安全制御プログラム)を非安全関連アプリケーション(通常制御プログラム)から独立させている。このため、通常制御プログラムを安全関連系から除外することができ、コンピュータシステムを用いて構成される安全関連系の低コスト化に寄与することができる。
Therefore, in the technique disclosed in
ここで、特許文献1に開示の技術では、リソース・パーティショニングという技術を採用している。この技術では、実行用メモリ等の固定的な資源をリソースパーティションと言われるパーティションにパーティショニングしている。そして、アプリケーションは、予め割り当てられたリソースパーティションを超えて他のリソースにアクセスすることが禁止される。
Here, the technique disclosed in
本願出願人は、上述したリソース・パーティショニングを、MMU(Memory Management Unit)を利用して実現することを検討するにあたり、以下に説明する課題を見出した。以下、その課題について説明する。なお、以下に説明する内容は、本願出願人が新たに検討した内容であって、従来技術を説明したものではない。 The applicant of the present application has found the problems described below when examining the above-described resource partitioning using an MMU (Memory Management Unit). The problem will be described below. In addition, the content demonstrated below is the content which the present applicant newly examined, and is not what demonstrated the prior art.
タイム・パーティショニングを採用するオペレーティングシステムでは、図24に例示するように、タイムパーティションを切り替えることで、動作するアプリケーションも切り替えられる。図24では、「TP1」、「TP2」、「TP3」は、タイムパーティションを示し、「T1」、「T2」、「T3」のそれぞれは、TP1〜TP3のそれぞれに属するタスクを示している。なお、タスクは、非安全関連アプリケーション又は安全関連アプリケーションを実行することによって生成されているものとする。 In an operating system that employs time partitioning, as illustrated in FIG. 24, the operating application can be switched by switching the time partition. In FIG. 24, “TP1”, “TP2”, and “TP3” indicate time partitions, and “T1”, “T2”, and “T3” indicate tasks belonging to TP1 to TP3, respectively. It is assumed that the task is generated by executing a non-safety related application or a safety related application.
このような場合、アプリケーションの切り替えの組み合わせとして、以下の4パターンが考えられる。
1)非安全関連アプリケーションから安全関連アプリケーション
2)安全関連アプリケーションから安全関連アプリケーション
3)安全関連アプリケーションから非安全関連アプリケーション
4)非安全関連アプリケーションから非安全関連アプリケーション
In such a case, the following four patterns can be considered as combinations of application switching.
1) Non-safety related applications to safety related applications 2) Safety related applications to safety related applications 3) Safety related applications to non-safety related applications 4) Non-safety related applications to non-safety related applications
図24では、TP1に属するT1は、非安全関連アプリケーションによって生成されており、TP2に属するT2は、安全関連アプリケーションによって生成されているものとする。この場合、機能安全上、非安全関連系であるTP1に属するT1は、安全関連系であるTP2のリソースパーティションにアクセスすることを抑止する必要がある。 In FIG. 24, T1 belonging to TP1 is generated by a non-safety related application, and T2 belonging to TP2 is generated by a safety related application. In this case, for functional safety, T1 belonging to TP1, which is a non-safety related system, needs to prevent access to the resource partition of TP2, which is a safety related system.
これに対して、MMUが有するメモリ保護機能を利用すれば、タイムパーティションのそれぞれに、そのタイムパーティションに対応するリソースパーティションに対するアクセス権限を付与することで、リソース・パーティショニングを行うことができる。具体的には、TP1に属するT1には、TP1のリソースパーティションに割り当てられたメモリの領域のみにアクセス可能なアクセス権限を付与し、TP2に属するT2には、TP2のリソースパーティションに割り当てられたメモリの領域のみにアクセス可能なアクセス権限を付与する。このようにすることで、例えば、T1が、T2のリソースパーティションに割り当てられたメモリの領域に対してアクセスした場合に、MMUによって、そのアクセスをメモリ保護違反として検出することが可能となる。これによって、あるタイムパーティションに属するタスクが、他のタイムパーティションに割り当てられたリソースパーティションにアクセスすることを抑止することが可能となる。 On the other hand, if the memory protection function of the MMU is used, resource partitioning can be performed by giving an access authority to the resource partition corresponding to the time partition to each time partition. Specifically, T1 belonging to TP1 is given access authority to access only the memory area assigned to the resource partition of TP1, and T2 belonging to TP2 is assigned to the memory assigned to the resource partition of TP2. Grant access authority to access only the area. In this way, for example, when T1 accesses a memory area allocated to the resource partition of T2, the MMU can detect the access as a memory protection violation. This makes it possible to prevent a task belonging to a certain time partition from accessing a resource partition assigned to another time partition.
ここで、MMUは、仮想記憶管理も行っている。MMUは、タスクがメモリに対してアクセスする際に指定した仮想アドレスを、その仮想アドレスに対応する物理アドレスに変換している。ここで、タスクは、不連続なメモリ領域を連続するように見せかけるためや、実際のメモリよりも大きな記憶領域を仮想的に利用可能とするために用意された仮想アドレス空間において、仮想アドレスでメモリ等のアドレスを認識して動作している。そのため、MMUは、タスクが仮想アドレスを指定してメモリに対するアクセスを行った場合に、そのアクセスにおける仮想アドレスを物理アドレスに変換することで実際のメモリに適切にアクセスすることを可能としている。 Here, the MMU also performs virtual memory management. The MMU converts the virtual address designated when the task accesses the memory into a physical address corresponding to the virtual address. Here, a task uses a virtual address in a virtual address space prepared to make a discontinuous memory area appear to be continuous or to make a storage area larger than the actual memory virtually available. It is operating by recognizing addresses. For this reason, when a task accesses a memory by designating a virtual address, the MMU can appropriately access the actual memory by converting the virtual address in the access into a physical address.
しかしながら、MMUが故障している場合、メモリを適切に保護することができなくなってしまう可能性があるという問題がある。例えば、故障によって仮想記憶管理が適切に行われなくなってしまった場合には、アドレスが誤変換されてしまい、意図していない物理アドレスにアクセスしてしまう可能性もあるという問題がある。すなわち、T1がT1にアクセス権限が付与されているメモリの領域にアクセスしたつもりであっても、アドレスの誤変換によって、T2のみにアクセス権限が付与されているメモリの領域に対してアクセスが行われてしまう可能性がある。 However, when the MMU is out of order, there is a problem that the memory may not be properly protected. For example, when virtual storage management is not properly performed due to a failure, there is a problem that an address is erroneously converted and an unintended physical address may be accessed. That is, even if T1 intends to access a memory area to which access authority is granted to T1, access to the memory area to which only T2 has access authority is performed by erroneous address conversion. There is a possibility of being broken.
したがって、システムの信頼性をより向上するためには、このようなMMUの異常を検出して、MMUが異常な状態のままシステムが動作を継続してしまうことを防止する必要がある。そのためには、MMUが正常に動作していることを確認するための仕組みが必要である。しかしながら、MMUが正常に動作していることを確認するための技術は見当たらない。 Therefore, in order to further improve the reliability of the system, it is necessary to detect such an abnormality of the MMU and prevent the system from continuing operation while the MMU is in an abnormal state. For this purpose, a mechanism for confirming that the MMU is operating normally is necessary. However, there is no technique for confirming that the MMU is operating normally.
本発明は、上述した知見に基づいてなされたものであって、プロセッサからメモリに対するアクセスにおいて指定された仮想アドレスを物理アドレスに変換するメモリ管理装置が正常に動作しているか否かを確認することが可能となる情報処理装置及びメモリ管理装置の動作確認方法を提供することを目的とする。 The present invention has been made based on the above-described knowledge, and confirms whether or not a memory management device that converts a virtual address designated in a memory access from a processor to a physical address is operating normally. It is an object of the present invention to provide an operation check method for an information processing apparatus and a memory management apparatus that can perform the above-described processing.
本発明の第1の態様にかかる情報処理装置は、メモリと、前記メモリの物理アドレス又は当該メモリの物理アドレスに対応する仮想アドレスを指定することによって、当該メモリの物理アドレスに対してデータの読み出し又は書き込みを行うためのシステムプログラムと、前記システムプログラムを実行するプロセッサと、前記プロセッサからの前記メモリに対する前記仮想アドレスを指定した読み出し及び書き込みにおいて、当該読み出し及び当該書き込みにおいて指定された仮想アドレスをそれに対応する物理アドレスに変換するメモリ管理装置と、を備え、前記プロセッサは、前記システムプログラムを実行することによって、前記仮想アドレスを指定して前記メモリに対してデータの読み出しもしくは書き込みを行う第1のアクセスを実施した後、当該仮想アドレスに対応する物理アドレスを指定して前記メモリに対してデータの読み出しを行う第2のアクセスを実施するか、又は、前記物理アドレスを指定して前記メモリに対してデータの読み出しもしくは書き込みを行う第1のアクセスを実施した後、当該物理アドレスに対応する仮想アドレスを指定して前記メモリに対してデータの読み出しを行う第2のアクセスを実施して、前記第1のアクセスにおいて読み出した又は書き込んだデータと、前記第2のアクセスにおいて読み出したデータが一致するか否かを判定するものである。 The information processing apparatus according to the first aspect of the present invention reads data from a physical address of the memory by designating a memory and a virtual address corresponding to the physical address of the memory or the physical address of the memory. Alternatively, in the reading and writing in which the system program for performing the writing, the processor that executes the system program, and the virtual address for the memory from the processor are specified, the virtual address specified in the reading and the writing A memory management device that converts the data into a corresponding physical address, wherein the processor executes the system program to designate the virtual address to read or write data to the memory. access After the execution, the second access for reading the data from the memory by designating the physical address corresponding to the virtual address is performed, or the data for the memory by designating the physical address After performing the first access for reading or writing the data, the second access for reading the data from the memory by designating the virtual address corresponding to the physical address is performed. It is determined whether the data read or written in the access matches the data read in the second access.
本発明の第2の態様にかかるメモリ管理装置の動作確認方法は、メモリの物理アドレス又は当該メモリの物理アドレスに対応する仮想アドレスを指定することによって、当該メモリの物理アドレスに対してデータの読み出し又は書き込みを行うプロセッサからの前記メモリに対する前記仮想アドレスを指定した読み出し及び書き込みにおいて、当該読み出し及び当該書き込みにおいて指定された仮想アドレスをそれに対応する物理アドレスに変換するメモリ管理装置の動作確認方法であって、前記プロセッサが、前記仮想アドレスを指定して前記メモリに対してデータの読み出しもしくは書き込みを行う第1のアクセスを実施した後、当該仮想アドレスに対応する物理アドレスを指定して前記メモリに対してデータの読み出しを行う第2のアクセスを実施するか、又は、前記物理アドレスを指定して前記メモリに対してデータの読み出しもしくは書き込みを行う第1のアクセスを実施した後、当該物理アドレスに対応する仮想アドレスを指定して前記メモリに対してデータの読み出しを行う第2のアクセスを実施するステップと、前記プロセッサが、前記第1のアクセスにおいて読み出した又は書き込んだデータと、前記第2のアクセスにおいて読み出したデータが一致するか否かを比較するステップと、を備えたものである。 The operation check method of the memory management device according to the second aspect of the present invention is to read data from a physical address of the memory by designating a physical address of the memory or a virtual address corresponding to the physical address of the memory. Or a memory management device operation check method for converting a virtual address designated in the reading and writing into a physical address corresponding to the virtual address designated in the reading and writing in reading and writing from the processor that performs writing to the memory. Then, the processor designates the virtual address and performs a first access for reading or writing data to the memory, and then designates a physical address corresponding to the virtual address to the memory. To read the data. Or a first access for reading or writing data to the memory by designating the physical address and then designating a virtual address corresponding to the physical address A step of performing a second access for reading data from the processor and whether or not the data read or written by the processor in the first access matches the data read in the second access And a step of comparing these.
上述した本発明の各態様によれば、プロセッサからメモリに対するアクセスにおいて指定された仮想アドレスを物理アドレスに変換するメモリ管理装置が正常に動作しているか否かを確認することが可能となる情報処理装置及びメモリ管理装置の動作確認方法を提供することができる。 According to each aspect of the present invention described above, it is possible to confirm whether or not the memory management device that converts the virtual address designated in the access from the processor to the memory into the physical address is operating normally. It is possible to provide an operation check method for a device and a memory management device.
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。 Hereinafter, specific embodiments to which the present invention is applied will be described in detail with reference to the drawings. In the drawings, the same elements are denoted by the same reference numerals, and redundant description is omitted as necessary for the sake of clarity.
<発明の実施の形態1>
本実施の形態にかかる安全制御装置1は、サービスロボットや運輸機器等に搭載されて機能安全確保のための安全制御を実行する。安全制御装置1は、安全関連アプリケーションと非安全関連アプリケーションを同一のコンピュータシステムで実行するよう構成される。図1は、本実施の形態にかかる安全制御装置1の構成例を示すブロック図である。
<
The
プロセッサ10は、プログラム(命令ストリーム)の取得、命令のデコード、命令のデコード結果に応じた演算処理を行う。なお、図1では、1つのプロセッサ10のみを示しているが、安全制御装置1は、複数のプロセッサ10を有するマルチプロセッサ構成であってもよい。また、プロセッサ10は、マルチコアプロセッサでもよい。プロセッサ10は、システムプログラムとしてのオペレーティングシステム(OS)100を実行することによりマルチプログラミング環境を提供する。マルチプログラミング環境とは、複数のプログラムを定期的に切り替えて実行したり、あるイベントの発生に応じて実行するプログラムを切り替えたりすることによって、複数のプログラムがあたかも並列実行されているような環境を意味する。
The
マルチプログラミングは、マルチプロセス、マルチスレッド、マルチタスク等と呼ばれる場合もある。プロセス、スレッド及びタスクは、マルチプログラミング環境で並列実行されるプログラム単位を意味する。本実施の形態のプロセッサ10が具備するマルチプログラミング環境は、マルチプロセス環境でもよいし、マルチスレッド環境でもよい。
Multiprogramming is sometimes called multiprocess, multithread, multitask, and the like. A process, a thread, and a task mean a program unit that is executed in parallel in a multiprogramming environment. The multi-programming environment included in the
実行用メモリ11は、プロセッサ10によるプログラム実行のために使用されるメモリである。実行用メモリ11には、不揮発性メモリ13からロードされたプログラム(OS100及びアプリケーション101〜103等)、プロセッサ10の入出力データ等が記憶される。なお、プロセッサ10は、プログラムを不揮発性メモリ13から実行用メモリ11にロードすることなく、これらのプログラムを不揮発性メモリ13から直接実行してもよい。
The
具体的には、実行用メモリ11は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)等のランダムアクセス可能な揮発性メモリとすればよい。図1の実行用メモリ11は、論理的な構成単位を示している。すなわち、実行用メモリ11は、例えば、複数のSRAMデバイスの組み合わせ、複数のDRAMデバイスの組み合わせ、又はSRAMデバイスとDRAMデバイスの組み合わせでもよい。
Specifically, the
I/Oポート12は、外部デバイスとの間のデータ送受信に使用される。例えば、安全制御装置1がサービスロボットに搭載される場合であれば、外部デバイスは、各種センサ及びサービスロボットを動作させるアクチュエータ等である。この場合、各種センサは、例えば、サービスロボット周囲の障害物を計測可能な視覚センサ、サービスロボットの姿勢を検知するための姿勢センサ、及びサービスロボットのアクチュエータの状態を検知するための回転センタ等のサービスロボットの内外の状態を検出するセンサを含む。
The I /
不揮発性メモリ13は、電力の供給を受けることなく、実行用メモリ11に比べて安定的に記憶内容を維持することが可能なメモリデバイスである。例えば、不揮発性メモリ13は、ROM(Read Only Memory)、フラッシュメモリ、ハードディスクドライブ若しくは光ディスクドライブ、又はこれらの組み合わせである。不揮発性メモリ13は、OS100及びアプリケーション101〜103を格納する。なお、不揮発性メモリ13の少なくとも一部は安全制御装置1から取り外し可能に構成されてもよい。例えば、アプリケーション101〜103が格納されたメモリを取り外し可能としてもよい。また、不揮発性メモリ13の少なくとも一部は、安全制御装置1の外部に配置されてもよい。
The
OS100は、プロセッサ10によって実行されることにより、プロセッサ10及び実行用メモリ11及び不揮発性メモリ13等のハードウェア資源を利用して、タスクスケジューリングを含むタスク管理、割り込み管理、時間管理、資源管理、タスク間同期およびタスク間通信機構の提供等を行う。
The
さらに、機能安全の確保に関連する安全監視アプリケーション101及び安全制御アプリケーション103の通常制御アプリケーション102からの独立性を高めるため、OS100は、ハードウェア資源を、時間的および空間的に保護する機能を有する。ここで、ハードウェア資源とは、プロセッサ10、実行用メモリ11、I/Oポート12を含む。
Further, in order to increase the independence of the
このうち、時間的な保護は、プロセッサ10の実行時間という時間的な資源をパーティショニングすることにより行う。具体的に述べると、時間的な保護は、プロセッサ10の実行時間をパーティショニングし、各パーティション(タイムパーティションと呼ぶ)にタスク(プロセス又はスレッド)を割り当てることにより行う。OS100のスケジューリング機能(パーティションスケジューラ21)は、各タイムパーティション(以下、TPと略称する場合がある。)に割り当てられたタスクに対して、プロセッサ10の実行時間を含む資源の利用を保証する。
Of these, temporal protection is performed by partitioning a temporal resource called the execution time of the
図2は、タイム・パーティショニングに関する概念図である。図2の例では、予め定められた1サイクル時間を3つのTP1、TP2及びTP3に分割する例を示している。例えば、1サイクル時間を100Tickとした場合、このうち前半の20TickがTP1、中間の30TickがTP2、後半の50TickがTP3と規定される。 FIG. 2 is a conceptual diagram related to time partitioning. In the example of FIG. 2, an example in which a predetermined cycle time is divided into three TP1, TP2, and TP3 is shown. For example, when one cycle time is 100 Tick, the first 20 Tick is defined as TP1, the middle 30 Tick is defined as TP2, and the second 50 Tick is defined as TP3.
また、図2の例では、第1アプリケーション(APL1)〜第4アプリケーション(APL4)が、TP1〜TP3のいずれかに割り当てられている。OS100のスケジューリング機能(パーティションスケジューラ21)は、時間の経過に応じて、TP1〜TP3のいずれをアクティブにするかを選択・決定する。そして、アクティブなTPに割り当てられているアプリケーションが、プロセッサ10で実行される。
In the example of FIG. 2, the first application (APL1) to the fourth application (APL4) are assigned to any one of TP1 to TP3. The scheduling function (partition scheduler 21) of the
一方、空間的な保護は、実行用メモリ11及びI/Oポート12を含む固定的な資源をパーティショニングし、各パーティション(リソースパーティションと呼ぶ)にタスクを割り当てることにより行う。OS100のスケジューリング機能(パーティションスケジューラ21)は、予め割り当てられたリソースパーティション(以下、RPと略称する場合がある。)を超えてタスクが他のリソースにアクセスすることを禁止する。
On the other hand, spatial protection is performed by partitioning fixed resources including the
図3は、リソース・パーティショニングに関する概念図である。図3の例では、2つのRP(RP1及びRP2)を示している。RP1には、実行用メモリ11及び不揮発性メモリ13の一部(A領域)と、I/Oポート12の一部(ポートA)が割り当てられている。また、RP2には、実行用メモリ11及び不揮発性メモリ13の他の一部(B領域)と、I/Oポート12の他の一部(ポートB)が割り当てられている。RP1からはRP2に割り当てられたリソースへのアクセスが禁止され、RP2からはRP1に割り当てられたリソースへのアクセスが禁止される。実行用メモリ11におけるリソース・パーティショニングは、後述するMMUのメモリ保護機能を利用して実現される。
FIG. 3 is a conceptual diagram related to resource partitioning. In the example of FIG. 3, two RPs (RP1 and RP2) are shown. A part of the
なお、全てのリソースがいずれかのRPに排他的に割り当てられる必要はない。つまり、複数のRPによって共有されるリソースがあってもよい。例えば、サービスロボットの安全制御を行う場合、アクチュエータには、通常制御アプリケーション102及び安全制御アプリケーション103の双方からアクセスできる必要がある。よって、通常制御アプリケーション102が属するRPと安全制御アプリケーション103が属するRPによって、アクチュエータを制御するためのI/Oポートを共有するとよい。
Note that not all resources need to be exclusively assigned to any RP. That is, there may be a resource shared by a plurality of RPs. For example, when performing safety control of a service robot, the actuator needs to be accessible from both the
図1に戻り説明を続ける。アプリケーション101〜103は、OS100及びプロセッサ10によって提供されるマルチプログラミング環境で実行される。このうち、安全監視アプリケーション101は、通常制御アプリケーション102の実行状況の監視と、安全制御アプリケーション103の実行状況の監視と、I/Oポート12への入出力データの監視と、をプロセッサ10に実行させるための命令コードを含む。さらに、安全監視アプリケーション101は、パーティションスケジューラ21への結果通知をプロセッサ10に実行させるための命令コードを含む。つまり、安全監視アプリケーション101は、安全関連アプリケーションである。
Returning to FIG. The
また、通常制御アプリケーション102は、サービスロボット等の制御対象に通常の機能・動作を行わせるための制御手順をプロセッサ10に実行させるための命令コードを含む。さらに、通常制御アプリケーション102は、パーティションスケジューラ21への結果通知をプロセッサ10に実行させるための命令コードを含む。つまり、通常制御アプリケーション102は、非安全関連アプリケーションである。
Further, the
また、安全制御アプリケーション103は、何らかの異常が検出された場合に対応して、機能安全を確保するために定められた制御手順をプロセッサ10に実行させるための命令コードを含む。さらに、安全制御アプリケーション103は、パーティションスケジューラ21への結果通知をプロセッサ10に実行させるための命令コードを含む。つまり、安全制御アプリケーション103は、安全関連アプリケーションである。
Further, the
MMU14は、メモリ保護機能及び仮想記憶管理機能を有する。メモリ保護機能は、プロセッサ10から実行用メモリ11に対するアクセスを監視して、メモリ保護違反となるアクセスを検出する機能である。プロセッサ10から実行用メモリ11のあるアドレスに対するアクセスがあったときに、そのアクセスがそのアドレスに対するアクセス権限を有しているか否かを判定する。そして、そのアクセスがそのアドレスに対するアクセス権限を有していない場合には、そのアクセスをメモリ保護違反として検出するとともに、メモリ保護違反をプロセッサ10に通知する。また、この場合、MMU14は、実行用メモリ11に対するアクセスを抑止するようにしてもよい。
The
MMU14は、このメモリ保護機能によって、実行用メモリ11におけるリソース・パーティショニングを実現する。具体的には、図3に例示する場合には、RP1に属するタスクには、RP1に割り当てられた実行用メモリ11の領域のみにアクセス可能なアクセス権限が付与され、RP2に属するタスクには、RP2に割り当てられた実行用メモリ11の領域のみにアクセス可能なアクセス権限が付与される。これによって、例えば、RP1に属するタスクが、RP2に割り当てられた実行用メモリ11の領域に対してアクセスした場合に、MMU14は、そのアクセスをメモリ保護違反として検出する。アクセス権限は、実行用メモリ11のページ単位に付与される。また、1ページのサイズとして、予め任意のサイズを定めることができる。
The
仮想記憶管理機能は、プロセッサ10が実行用メモリ11にアクセスするときに指定された仮想アドレスを、その仮想アドレスに対応する物理アドレスに変換する機能である。すなわち、MMU14は、仮想記憶管理機能によって、プロセッサ10からの仮想アドレスを指定した実行用メモリ11へのアクセスを、その仮想アドレスが示す実行用メモリ11上のアドレスと同一のアドレスを示す物理アドレスを指定した実行用メモリ11へのアクセスに変換して、実行用メモリ11に発行する。
The virtual memory management function is a function for converting a virtual address designated when the
ここで、アクセス権限及び仮想アドレスに対応する物理アドレスは、プロセッサ10によって、MMU14が有するTLB(Translation Look-aside Buffer)(図示せず)に設定される。TLBは、例えば、MMU14が有するレジスタ及びメモリ等の記憶装置(図示せず)に格納される。TLBは、複数のエントリを含んでいる。1エントリには、1つのページについての内容が設定される。1エントリには、ASID(アドレス空間識別子:Address Space Identification)、仮想アドレス、その仮想アドレスに対応する物理アドレス、ページに対するアクセス権限等が設定される。
Here, the physical address corresponding to the access authority and the virtual address is set by the
ASIDは、RPごとに一意に定められた値をとる。なお、本実施の形態では、1つのTPに1つのRPが対応することになるため、ASIDは、TPごとに一意に定められた値ともなる。TLBにおける仮想アドレスとして、仮想アドレスのうち、ページを特定可能な一定の範囲を示す仮想ページ番号が設定されることが一般的である。物理アドレスについても同様である。この場合は、仮想アドレスのうち、仮想ページ番号に該当する範囲を物理ページ番号とされているアドレスに置き換え、その他のオフセットアドレスを示す範囲をそのまま用いることで、仮想アドレスを物理アドレスに変換することができる。アクセス権限としては、データの読み出し権限、データの書き込み権限、及び、データ(命令)の実行権限の有無を設定することができる。すなわち、アクセス権限は、アクセス種別(読み出し、書き込み、又は実行)ごとに、その有無を設定することが可能である。 The ASID takes a value uniquely determined for each RP. In the present embodiment, since one RP corresponds to one TP, the ASID is also a value uniquely determined for each TP. As a virtual address in the TLB, a virtual page number indicating a certain range in which a page can be specified is generally set in the virtual address. The same applies to the physical address. In this case, the virtual address is converted into a physical address by replacing the range corresponding to the virtual page number with the physical page number and using the other offset address range as it is. Can do. As the access authority, data read authority, data write authority, and data (command) execution authority can be set. That is, the access authority can be set for each access type (read, write, or execution).
例えば、実行用メモリ11上のあるページについて、あるTPに属するタスクからのデータの読み出し及び書き込みを許容する場合、エントリには、そのTPに対応するASID、そのページの仮想アドレス、そのページの物理アドレス、及び、読み出し権限及び書き込み権限を有りとしたアクセス権限等が設定される。
For example, when reading and writing of data from a task belonging to a certain TP is permitted for a certain page on the
プロセッサ10は、実行用メモリ11上のあるページ内のあるアドレスに対して、データの読み出し又は書き込みによるアクセスを行う場合、ASID、仮想アドレス、及びアクセス種別(読み出し又は書き込み)を指定したアクセスをMMU14に発行する。すなわち、ASID、仮想アドレス、及びアクセス種別のそれぞれを示す信号がMMU14に出力される。ASIDには、そのアクセスの発行元となったタスクに応じた値が指定される。すなわち、指定されたASIDを参照することで、どのTPに属するタスクの権限でのアクセスかを特定することができる。なお、本実施の形態では、同一のTPに属するタスクからアクセスには同一のASIDが指定されることになる。また、アクセス種別が書き込みである場合は、さらに実行用メモリ11に書き込むデータも指定される。
When the
MMU14は、TLBを参照して、指定されたASIDが設定されており、指定された仮想アドレスに対応する仮想アドレスが設定されており(仮想ページ番号が一致する)、かつ、指定されたアクセス種別の権限が有りに設定されているエントリを検出できた場合、そのアクセスを許容する。この場合、MMU14は、検出したエントリに基づいて、アクセスにおいて指定された仮想アドレスを物理アドレスに変換して、変換後の物理アドレスとアクセス種別を指定したアクセスを実行用メモリ11に発行する。すなわち、物理アドレス及びアクセス種別のそれぞれを示す信号が実行用メモリ11に出力される。また、アクセス種別が書き込みである場合は、さらに実行用メモリ11に書き込むデータも指定される。
The
また、プロセッサ10は、実行用メモリ11上のあるページ内のあるアドレスに対して、データ(命令)の実行によるアクセスを行う場合、ASID及び仮想アドレスを指定したアクセスをMMU14に発行する。MMU14は、上述と同様に、アドレスの変換及びアクセス権限のチェックを行う。そして、MMU14は、そのアクセスを許容する場合、変換後の物理アドレスを指定したアクセスを実行用メモリ11に発行する。
Further, the
実行用メモリ11は、MMU14からのアクセスに応じて、そのアクセスに応じたデータの処理を行う。具体的には、実行用メモリ11は、読み出し又は書き込みによるアクセスであり、かつ、アクセス種別が読み出しである場合は、指定された物理アドレスのデータをプロセッサ10に出力する。実行用メモリ11は、読み出し又は書き込みによるアクセスであり、かつ、アクセス種別が書き込みである場合は、指定された物理アドレスに、指定されたデータを書き込む。実行用メモリ11は、データ(命令)の実行によるアクセスである場合、指定された物理アドレスのデータをプロセッサ10に出力する。
In response to an access from the
一方、MMU14は、TLBを参照して、アクセスで指定された仮想アドレスに対応する仮想アドレスが設定されている(仮想ページ番号が一致する)が、指定されたASID及び指定されたアクセス種別の権限が設定されていない場合は、メモリ保護違反を検出する。なお、アクセスで指定された仮想アドレスに対応する仮想アドレスが設定されていない場合は、ページフォルトが検出されることになる。
On the other hand, the
また、MMU14は、その有効/無効をプロセッサ10からの指示で切り替えることが可能である。すなわち、プロセッサ10がMMU14を有効にする旨の指示をMMU14に出力したとき、MMU14はその指示に応じて、上述したメモリ管理機能及び仮想記憶管理機能を有効にする。これによって、上述したメモリ保護違反の検出及びアドレスの変換が行われるようになる。一方、プロセッサ10がMMU14を無効にする旨の指示をMMU14に出力したとき、MMU14はその指示に応じて、上述したメモリ管理機能及び仮想管理機能を無効にする。これによって、上述したメモリ保護違反の検出及びアドレスの変換が行われないようになる。プロセッサ10は、MMU14を無効にしている場合、直接、物理アドレスを指定したアクセスを発行することで、実行用メモリ11に対してアクセスすることが可能である。この場合、MMU14は、アクセスで指定された物理アドレスをそのまま指定したアクセスを実行用メモリ11に発行する。
Further, the
なお、図1では、MMU14を、プロセッサ10の外部に有する場合について例示したが、プロセッサ10がMMU14を有するようにしてもよい。
Although FIG. 1 illustrates the case where the
リセット回路15は、OS100からの信号に基づき、マイクロコントローラ20のリセットを行う。パーティションスケジューラ21からリセット回路15に定期的に送信信号を送信するようにし、リセット回路15は、パーティションスケジューラ21からの送信信号が途絶えた場合に、マイクロコントローラ20をリセットする。例えば、パーティションスケジューラ21は、後述するように、1Tickごとに動作するタイミングで送信信号を送信する。また、OS100で異常を検知した場合、又は、アプリケーション101〜103のいずれかから異常を示す結果通知を受けた場合に、パーティションスケジューラ21がリセット回路15にリセット信号を送信するようにして、それに応じて、リセット回路15がマイクロコントローラ20をリセットするようにしてもよい。このようにすることで、マイクロコントローラ20に不具合が発生した場合に、マイクロコントローラ20をリセットして復旧することができる。
The
続いて以下では、パーティションスケジューラ21と、アプリケーション101〜103の起動により生成されるタスクと、の関係について、図4を用いて説明する。図4は、OS100によって提供されるマルチプログラミング環境で起動される、パーティションスケジューラ21とタスク24、26、28との関係を示す図である。
Subsequently, the relationship between the
マイクロコントローラ20は、プロセッサ10、実行用メモリ11、I/Oポート12、不揮発性メモリ13等を含む。なお、図4では、マイクロコントローラ20の外部にリセット回路15を備える構成を例示しているが、マイクロコントローラ20の内部にリセット回路15を含む構成としてもよい。
The
マイクロコントローラ20には、外部のクロック源からのクロック信号が供給され、プロセッサ10等は、このクロック信号に基づく所定のタイマー周期で動作する。本実施の形態では、所定のタイマー周期を、1Tickであるとして説明する。このため、プロセッサ10によりOS100が実行されることで、パーティションスケジューラ21が1Tickごとに動作すると共に、各TPにおいて、タスクスケジューラ23、25、27およびタスク(安全監視タスク24、通常制御タスク26、安全制御タスク28)が1Tickごとに動作する。
The
パーティションスケジューラ21は、1Tickごとに動作し、TPの切り替え(パーティション・スケジューリング)を行う。パーティションスケジューラ21は、次の1Tickの間にTP1〜TP3のいずれをアクティブにするかを選択・決定する。さらに、パーティションスケジューラ21は、選択したTPに関するタスクスケジューラの動作を開始させる。
The
パーティションスケジューラ21によるパーティション・スケジューリングについて具体的に述べると、パーティションスケジューラ21は、スケジューリングテーブル22を参照し、TPの設定を定めたスケジューリングパターンに従って、パーティション・スケジューリングを行う。
More specifically, partition scheduling by the
スケジューリングテーブル22は、TPの切り替え順序およびタイミングを規定したスケジューリングパターンを保持している。スケジューリングテーブル22は、例えば、実行用メモリ11に予め格納されている。なお、スケジューリングテーブル22は、少なくとも2つの異なるスケジューリングパターンを保持している。1つは、安全監視タスク24による異常検知が行われていない場合(つまり通常時)に適用されるスケジューリングパターンである。もう1つは、安全監視タスク24によって異常が検知された場合に適用されるスケジューリングパターンである。以下では、通常時に適用されるスケジューリングパターンを"通常制御スケジューリングパターン"と呼ぶ。また、異常検知時に適用されるスケジューリングパターンを"安全制御スケジューリングパターン"と呼ぶ。
The scheduling table 22 holds a scheduling pattern that defines the TP switching order and timing. For example, the scheduling table 22 is stored in advance in the
図5Aは、通常制御スケジューリングパターンの具体例を示している。図5Aでは、通常制御タスク26が属するTP2が1サイクル時間の前半(T1)に割り当てられている。また、安全監視タスク24が属するTP1が1サイクル時間の後半(T2)に割り当てられている。図5Aのスケジューリングパターンによれば、通常制御タスク26と安全監視タスク24が繰り返しスケジューリングされる。
FIG. 5A shows a specific example of the normal control scheduling pattern. In FIG. 5A, TP2 to which the
図5Bは、安全制御スケジューリングパターンの具体例を示している。図5Bでは、安全制御タスク28が属するTP3が1サイクル時間の前半(T3)に割り当てられている。また、安全監視タスク24が属するTP1が1サイクル時間の後半(T4)に割り当てられている。図5Bのスケジューリングパターンによれば、安全制御タスク28と安全監視タスク24が繰り返しスケジューリングされる。
FIG. 5B shows a specific example of the safety control scheduling pattern. In FIG. 5B, TP3 to which the
図4に戻り説明を続ける。タスクスケジューラ23、25、27は、それぞれが属するTP内でのタスクのスケジューリングを行う。各TP内でのタスクのスケジューリングには、一般的な優先度ベースのスケジューリングを適用すればよい。なお、図4では、各TPはそれぞれ1つのタスクのみを含むものとして図示しているが、1以上のタスクが含まれるようにしてもよい。例えば、通常制御用のTP2内には、通常制御タスクA及び通常制御タスクBの2つのタスクが含まれていてもよい。 Returning to FIG. The task schedulers 23, 25, and 27 perform task scheduling in the TP to which each belongs. For scheduling tasks in each TP, general priority-based scheduling may be applied. In FIG. 4, each TP is illustrated as including only one task, but one or more tasks may be included. For example, the normal control task A and the normal control task B may be included in the normal control TP2.
安全監視タスク24は、安全監視アプリケーション101の起動によって生成されるタスクである。図4の例では、安全監視タスク24は、TP1及びRP1に割り当てられている。安全監視タスク24は、非安全関連アプリケーションである通常制御タスク26の実行状況の監視と、安全関連アプリケーションである安全制御タスク28の実行状況の監視と、I/Oポート12の入出力データを監視する。安全監視タスク24は、自身が属するRP1に割り当てられた実行用メモリ11のリソースを使用しながら、自身の処理を実行するために必要な演算等を行う。さらに、安全監視タスク24は、タスクの実行状況を、パーティションスケジューラ21へ通知する。
The
通常制御タスク26は、通常制御アプリケーション102の起動によって生成されるタスクである。図4の例では、通常制御タスク26は、TP2及びRP2に割り当てられている。通常制御タスク26は、サービスロボット等の制御対象に通常の機能・動作を行わせるための制御を行う。通常制御タスク26は、自身が属するRP2に割り当てられた実行用メモリ11のリソースを使用しながら、自身の処理を実行するために必要な演算等を行う。さらに、通常制御タスク26は、タスクの実行状況を、パーティションスケジューラ21へ通知する。
The
安全制御タスク28は、安全制御アプリケーション103の起動によって生成されるタスクである。図4の例では、安全制御タスク28は、TP3及びRP3に割り当てられている。安全制御タスク28は、何らかの異常が検出された場合に対応して、機能安全を確保するために定められた制御を行う。安全制御タスク28は、自身が属するRP3に割り当てられた実行用メモリ11のリソースを使用しながら、自身の処理を実行するために必要な演算等を行う。さらに、安全制御タスク28は、タスクの実行状況を、パーティションスケジューラ21へ通知する。
The
なお、各タスクからパーティションスケジューラ21へと結果を通知する具体的な構成としては、様々な手法を採用することができる。例えば、タスクがOS100のシステムコール(サービスコール)を呼び出し、OS100を介して、パーティションスケジューラ21に結果を通知することができる。具体的には、例えば、タスク間通信を行うシステムコールを呼び出す。また、例えば、タスクの実行状況に関するフラグを実行用メモリ11に格納するものとして、タスクがその実行状況に応じてフラグの値を設定し、パーティションスケジューラ21がフラグの設定値に応じてタスクの実行状況を判断することもできる。
Various methods can be adopted as a specific configuration for notifying the result from each task to the
OS100は、MMU確認ルーチン29を含んでいる。MMU確認ルーチン29は、MMU14が正常に動作できているか否かを確認するルーチンである。具体的には、MMU確認ルーチン29は、MMU14の有効/無効を切り替える前に実行用メモリ11の特定のアドレスに対して書き込んだデータと、MMU14の有効/無効を切り替えた後にそのアドレスと同一のアドレスから読み出したデータとが一致するか否かによって、MMU14が正常に動作しているか否かを判定する。MMU14の有効/無効を切り替える前における書き込みで指定するアドレスと、MMU14の有効/無効を切り替えた後における読み出しで指定するアドレスは、一方が仮想アドレスとなり、他方が物理アドレスとなる。そのため、上述したデータが一致すれば、MMU14の有効時に正常にアドレスの変換が行われていることになり、MMU14が正常に動作していることが確認される。なお、このときのアクセスは、検査対象のページに対して、検査対象とするタスクによる書き込み権限及び読み出し権限を有りに設定して行うことになる。
The
上述したように、パーティションスケジューラ21が1Tickごとに動作し、TP1〜TP3のいずれをアクティブにするかを選択・決定する。さらに、パーティションスケジューラ21が、選択したTPに関するタスクスケジューラの動作を開始させる。そして、タスクスケジューラ23、25、27が動作を開始することでタスクのスケジューリングが行われ、プロセッサ10が、タスクスケジューラ23、25、27によりスケジューリングされた順序に従って、TP内でのタスクを実行していく。これによって、アクティブなTPに割り当てられているアプリケーションが、プロセッサ10で実行される。
As described above, the
続いて以下では、パーティションスケジューラ21によるパーティション・スケジューリングについて、図6を用いて説明する。図6は、発明の実施の形態1にかかるパーティションスケジューラ21の処理手順の具体例を示すフローチャートである。
Next, partition scheduling by the
なお、図6では、通常制御スケジューリングパターン(例えば図5A)または安全制御スケジューリングパターン(例えば図5B)に従って、スケジューリングを実行する場合を例に説明する。すなわち、TP2またはTP3に続く次のTPはTP1であり、かつ、TP2での異常がTP1で検知された場合に、TP1からの結果を受けて次に選択・決定されるTPはTP3である場合を例に説明する。 Note that FIG. 6 illustrates an example in which scheduling is performed according to a normal control scheduling pattern (for example, FIG. 5A) or a safety control scheduling pattern (for example, FIG. 5B). That is, when the next TP following TP2 or TP3 is TP1, and when an abnormality in TP2 is detected in TP1, the next TP selected and determined based on the result from TP1 is TP3 Will be described as an example.
OS100は、1Tick経過するごとに(S11)、パーティションスケジューラ21を起動する(S12)。パーティションスケジューラ21は、スケジューリングパターンを参照して、TPの切り替えタイミングか否かを判定する(S13)。
The
TPの切り替えタイミングでないと判定した場合(S13でNo)、パーティションスケジューラ21は、同一のTPXについての動作を継続させる。このため、TPの切り替えタイミングとなるまでの間、S11〜S13、S15、S16の処理が繰り返される。ここで、変数XはTPの番号を示し、Xは1〜3のうちのいずれかの値となる。すなわち、通常制御スケジューリングパターンに従ってパーティション・スケジューリングを実施している場合は、安全制御用のTP3を除いた、TP2及びTP1のいずれかを動作させる。
If it is determined that it is not the TP switching timing (No in S13), the
一方、TPの切り替えタイミングであると判定した場合(S13でYes)、パーティションスケジューラ21は、TPの切り替えを実行する(S14)。このように、パーティションスケジューラ21は、次にアクティブにするTPを変更する(S13でYes)場合には、さらに、切り替え前のTPに属するタスクからの通知結果に応じて、切り替え前のTPが正常であったか否かを判断する。判断の結果、切り替え前のTPが異常であった場合、パーティションスケジューラ21は、次の1Tickの間にアクティブにするTPXを、安全制御スケジューリングパターンに従って、TP1及びTP3のいずれかから選択・決定する。判断の結果、正常であった場合、パーティションスケジューラ21は、次の1Tickの間にアクティブにするTPXを、通常制御スケジューリングパターンに従って、TP1及びTP2のいずれかを選択・決定する。
On the other hand, when it is determined that it is TP switching timing (Yes in S13), the
パーティションスケジューラ21は、現在アクティブになっているTPXのタスクスケジューラを動作させる(S15)。S15で動作を開始したTPXのタスクスケジューラは、TPX内のタスクを優先度に応じて実行する(S16)。
The
そして、1Tickが経過すると(S11)、パーティションスケジューラ21が、再びTPのスケジューリングを開始する(S12)。すなわち、パーティションスケジューラ21は、スケジューリングパターンに従って、次の1Tickの間にいずれのTPをアクティブにするかを選択・決定する。
When 1 Tick elapses (S11), the
図6で示した処理に関して、パーティション・スケジューリングの具体例を説明する。まず、図5Aに例示した通常制御スケジューリングパターンに従って、S15においてTP2がアクティブの状態からスケジューリングを開始した場合を説明する。この場合、S15ではTPX=TP2として開始し、続くS16、S11〜S13にかけてもTPX=TP2のままである。そして、S13でNoが続く限り、TPX=TP2の状態が維持される。S13でYesとなり、S14でTP2からTP1へと変更された場合、続くS15〜S16、S11〜S13にかけてTP1のままである。そして、S13でNoが続く限り、TPX=TP1の状態が維持される。TP1がアクティブのときに、S16で、TP2に関する実行状況(データ入出力等)が正常であると判定されていた場合には、次のS14では、TPX=TP2となる(つまり、TP2から開始する通常制御スケジューリングパターンが継続される。)。一方で、S16で、TP2に関する実行状況(データ入出力等)が異常であると判定されていた場合には、次のS14で、TPX=TP3となる(つまり、TP3から開始する安全制御スケジューリングパターンに切り替わる。)。 A specific example of partition scheduling will be described with respect to the processing shown in FIG. First, according to the normal control scheduling pattern illustrated in FIG. 5A, the case where scheduling is started from the active state of TP2 in S15 will be described. In this case, TPX = TP2 is started in S15, and TPX = TP2 remains even in subsequent S16 and S11 to S13. And as long as No continues in S13, the state of TPX = TP2 is maintained. If S13 is Yes and TP2 is changed to TP1 in S14, TP1 remains in S15 to S16 and S11 to S13. As long as No continues in S13, the state of TPX = TP1 is maintained. When it is determined in S16 that the execution status (data input / output, etc.) related to TP2 is normal when TP1 is active, TPX = TP2 in the next S14 (that is, start from TP2). Normal control scheduling pattern continues.) On the other hand, if it is determined in S16 that the execution status (data input / output, etc.) relating to TP2 is abnormal, TPX = TP3 (that is, a safety control scheduling pattern starting from TP3) in the next S14. Switch to.)
また、図5Bに例示した安全制御スケジューリングパターンに従って、S15においてTP3がアクティブの状態からスケジューリングを開始した場合を説明する。この場合、S15ではTPX=TP3として開始し、続くS16、S11〜S13にかけてもTPX=TP3のままである。そして、S13でNoが続く限り、TPX=TP3の状態が維持される。S13でYesとなり、S14でTP3からTP1へと変更された場合、続くS15〜S16、S11〜S13にかけてTP1のままである。そして、S13でNoが続く限り、TPX=TP1の状態が維持される。TP1がアクティブのときに、S16で、TP3に関する実行状況(データ入出力等)が正常であると判定されていた場合には、次のS14では、TPX=TP2とする(つまり、TP2から開始する通常制御スケジューリングパターンに切り替わる。)。一方で、S16で、TP3に関する実行状況(データ入出力等)に異常があると判定されていた場合には、次のS14で、TPX=TP3となる(つまり、TP3から開始する安全制御スケジューリングパターンが継続される。)。 Further, a case will be described in which scheduling is started from the active state of TP3 in S15 according to the safety control scheduling pattern illustrated in FIG. 5B. In this case, TPX = TP3 is started in S15, and TPX = TP3 remains even in subsequent S16 and S11 to S13. And as long as No continues in S13, the state of TPX = TP3 is maintained. If the answer is Yes in S13 and the TP3 is changed to TP1 in S14, TP1 remains as it is in subsequent S15 to S16 and S11 to S13. As long as No continues in S13, the state of TPX = TP1 is maintained. When it is determined in S16 that the execution status (data input / output, etc.) relating to TP3 is normal when TP1 is active, TPX = TP2 is set in the next S14 (that is, starting from TP2). Switch to normal control scheduling pattern.) On the other hand, if it is determined in S16 that there is an abnormality in the execution status (data input / output, etc.) related to TP3, TPX = TP3 (that is, a safety control scheduling pattern starting from TP3) in the next S14. Will continue.)
なお、上述の例では、スケジューリングパターンとして、3つのTP(安全監視用のTP1、通常制御用のTP2、安全制御用のTP3)のみを組み合わせた場合を例に説明したが、TP2のような通常制御用パーティションや、TP3のような安全制御用パーティションについては、それぞれ複数個存在するものとしてもよい。例えば、2つの通常制御用のTP2及びTP4と、安全監視用のTP1と、2つの安全制御用のTP3及びTP5と、が存在し、これら5つのTP(TP1〜TP5)を組み合わせてスケジューリングパターンを構成してもよい。この場合、S14では、パーティションスケジューラ21が、TPXに関する実行状況(データ入出力等)の異常状態の種類を判定し、その異常種類に応じて、安全制御用のTP3またはTP5のいずれかを選択すればよい。また、S14では、通常制御用のTP2またはTP4のいずれかを選択すればよい。
In the above-described example, a case where only three TPs (safety monitoring TP1, normal control TP2 and safety control TP3) are combined as a scheduling pattern has been described as an example. There may be a plurality of control partitions and safety control partitions such as TP3. For example, there are two TP2 and TP4 for normal control, TP1 for safety monitoring, and two TP3 and TP5 for safety control, and these five TPs (TP1 to TP5) are combined to form a scheduling pattern. It may be configured. In this case, in S14, the
上述したように、本実施の形態では、OS100は、安全監視用のTP1からの通知、または、各TPからの通知に応じて、次にアクティブとするパーティションを選択・決定するパーティションスケジューラ21を備えている。パーティションスケジューラ21は、各TPにおいて実行されるタスクとは独立して、所定のタイマー周期で動作する。
As described above, in this embodiment, the
独立に動作するパーティションスケジューラ21が、全てのTPから結果通知を受ける構成とすることで、パーティションスケジューラ21は、全てのTPに関する状況を一元的に把握することができる。このため、例えば、安全監視用のTP1からの結果通知に応じて、パーティションスケジューラ21が次のパーティションを決定・選択しようとする場合には、パーティションスケジューラ21は、各TPの状況を考慮した上で、正常状態にあるTPのみから次のパーティションを決定・選択することもできる。これによれば、より正確なパーティション・スケジューリングを実現することができるという効果を奏する。
With the configuration in which the
続いて、MMU確認ルーチン29によるMMU確認処理について、図7を用いて説明する。図7は、発明の実施の形態1にかかるMMU確認ルーチン29の処理手順の具体例を示すフローチャートである。OS100がMMU確認ルーチン29を実行することによって、以下に説明する処理手順が実行されることになる。なお、厳密には、以下に説明する処理は、OS100を実行するプロセッサ10によって実行されることになる。
Next, the MMU confirmation process by the
OS100は、検査対象とする実行用メモリ11のページと、検査対象とするTBLのエントリのそれぞれに格納されたデータのバックアップをとる(S20)。ここで、バックアップしたデータは、実行用メモリ11の他のページに格納するようにしてもよく、不揮発性メモリ13に格納するようにしてもよい。
The
OS100は、検査対象のページの先頭と末尾のそれぞれにテストパターンとなるデータを書き込む(S21)。ここで、ページの先頭と末尾には、例えば4ワード等の予め任意に定めた固定長のデータを書き込むものとする。また、ここでは、MMU14が無効とされているものとする。すなわち、OS100は、物理アドレスを指定して実行用メモリ11に対する書き込みを行う。
The
OS100は、検査対象のエントリに、検査対象のページに関する内容を設定する。具体的には、検査対象のエントリに、検査対象のタスクのASID、検査対象のページの仮想アドレス、検査対象のページの物理アドレス、並びに、読み出し権限及び書き込み権限を有りとしたアクセス権限等を設定する(S22)。なお、S21の前に、S22の処理を実行するようにしてもよい。
The
OS100は、MMU14を有効にする(S23)。OS100は、検査対象のページの先頭と末尾のそれぞれに対して、テストパターンとなるデータを加算したデータを書き込む(S24)。具体的には、OS100は、S21では、予め定めた数値をテストパターンとして書き込んでいる。そして、OS100は、検査対象のページの先頭から書き込んだ数値を読み出して、読み出した数値とテストパターンの数値を加算する。OS100は、加算結果となる数値を、検査対象のページの先頭に書き込む。OS100は、これと同様の処理を検査対象のページの末尾に対しても行う。これによって、実行用メモリ11に対する読み出し及び書き込みが正常に行われているのであれば、予め定めた数値の2倍の値が、検査対象のページの先頭と末尾のそれぞれに書き込まれていることになる。なお、S24では、MMU14が有効にされているため、OS100は、仮想アドレスを指定して実行用メモリ11に対する読み出し及び書き込みを行う。
The
OS100は、MMU14を無効にする(S25)。OS100は、検査対象のページの先頭と末尾のそれぞれから、書き込んだデータを読み出す。そして、OS100は、読み出したデータと、期待値となるデータとを比較する(S26)。すなわち、OS100は、読み出した数値が、テストパターンとなる数値の2倍の数値と一致するか否かを判定する。なお、S26では、MMU14が無効にされているため、OS100は、物理アドレスを指定して実行用メモリ11からの読み出しを行う。また、OS100は、S20において、バックアップしたデータを、検査対象のページと、検査対象のエントリに復元する(S27)。
The
OS100は、比較したデータが一致する場合、MMU14が正常に動作していると判定する(S28でNo)。一方、OS100は、比較したデータが一致しない場合、MMU14が正常に動作していないと判定する(S28でYes)。この場合、OS100は、緊急停止ルーチンを実行する(S29)。
If the compared data match, the
ここで、緊急停止ルーチンは、制御対象の安全を確保するために、制御対象を緊急停止させる処理となる。例えば、図5Aに示す通常制御スケジューリングパターンに従って動作している場合、スケジューリングパターンを、図5Bに示す安全制御スケジューリングパターンに切り替えるようにしてもよい。また、パーティションスケジューラ21の次の動作タイミングで、TPを強制的にTP3に切り替えるようにしてもよい。そして、TP3へ切り替えた後は、例えば、安全制御タスク28によって制御対象を停止させる。また、OS100は、直接、制御対象を停止させるように制御するようにしてもよい。
Here, the emergency stop routine is a process for stopping the control target in an emergency in order to ensure the safety of the control target. For example, when operating according to the normal control scheduling pattern shown in FIG. 5A, the scheduling pattern may be switched to the safety control scheduling pattern shown in FIG. 5B. Further, TP may be forcibly switched to TP3 at the next operation timing of
以上に説明したMMU確認ルーチン29の処理は、OS100に制御が移ったときにおける任意のタイミングで実行するようにしてよい。例えば、図8に示すように、TPにおいてそのTPに属する全てのタスクの実行が終了してOS100に制御が移ったときに、残りのTPの時間の間、処理を実行するようにしてもよい。このようにすることで、TPにおいて余った時間を有効利用することができる。
The processing of the
なお、MMU確認ルーチン29で検査対象とするページ、タスク、及びエントリの組み合わせは、任意の組み合わせを、任意の順序で組み合わせていくようにしてよい。例えば、検査対象とするページは、実行用メモリ11の全てのページを先頭からの順番に、検査対象とするタスクは、全てのタスク24、26、28を対象として予め定めた順番に、検査対象とするエントリは、TLBの全てのエントリを先頭から順番に組み合わせて検査していくことで、全ての組み合わせに対するMMU14の動作確認を行うようにしてもよい。また、図8に示すように、TP2の余った時間でMMU14の動作確認を行う場合は、次にアクティブとなるTP1に属するタスクを検査対象としてMMU14の動作確認を行うようにしてもよい。
Note that any combination of pages, tasks, and entries to be inspected in the
以上に説明したMMU確認ルーチン29の処理手順では、物理アドレスでテストパターンの数値を書き込み、MMU14を有効にして書き込んだ数値を仮想アドレスで読み出し、読み出した数値にテストパターンの数値を加算した数値を仮想アドレスで書き込み、MMU14を無効にして書き込んだ数値を物理アドレスで読み出し、最終的に読み出した数値とテストパターンの数値の2倍の数値とを比較するようにしているが、これに限られない。例えば、物理アドレスでテストパターンの数値を書き込み、MMU14を有効にして書き込んだ数値を仮想アドレスで読み出し、読み出した数値とテストパターンの数値とを比較するとともに、仮想アドレスでテストパターンの数値を書き込み、MMU14を無効にして書き込んだ数値を物理アドレスで読み出し、読み出した数値とテストパターンの数値とを比較するようにしてもよい。そして、それらの比較のうち、どちらか一方でも一致しないと判定された場合は、MMU14が正常に動作しておらず、それらの比較のいずれも一致したと判定された場合には、MMU14が正常に動作していると判定するようにしてもよい。このようにしても、MMU14を有効にしての仮想アドレスでの読み出し及び書き込みと、MMU14を無効にしての物理アドレスでの読み出し及び書き込みの全てのパターンについて、MMU14の動作確認を行うことが可能だからである。しかしながら、好ましくは、図7で説明した処理手順とすることで、1回だけデータを比較するだけで、全てのパターンについて検証することができる。
In the processing procedure of the
また、MMU確認ルーチン29として、テストパターンの数値を書き込み、MMU14の有効/無効を切り替えて、書き込んだ数値を読み出して、書き込んだ数値と読み出した数とを比較することのみを行うようにしてもよい。このようにしても、MMU14を有効又は無効のいずれかにしての書き込みと、そこからMMU14の有効/無効を切り替えた状態での読み出しとにおけるMMU14の動作確認を行うことが可能である。しかしながら、好ましくは、図7で説明した処理手順とすることで、上述したように全ての読み出し及び書き込みのパターンについて、MMU14の動作確認を行うことができる。
Further, as the
以上に説明したMMU確認ルーチン29の処理手順では、ページの先頭と末尾に対して、データの書き込み及び読み出しを行っているが、これに限られない。例えば、先頭と末尾のいずれか一方に対して、データを書き込み及び読み出しするようにしてもよい。また、ページ全体に対して、データを書き込み及び読み出しするようにしてもよい。また、ページの先頭と末尾以外の任意の位置に対して、データの書き込み及び読み出しを行うようにしてもよい。しかしながら、好ましくは、上述したように、ページの先頭と末尾を対象とすることで、ページ全体を対象とする場合に比べて、書き込み及び読み出しを行うデータ量を減少させることができる。そのため、MMU14の動作確認における処理負荷を低減して、確認効率を向上することができる。また、ページの先頭と末尾を対象とすることで、境界値分析を行うこととなるため、MMU14の異常を検出する精度が向上することが期待される。
In the processing procedure of the
以上に説明したMMU確認ルーチン29の処理手順では、MMU14が無効の状態から処理を開始する場合について例示したが、これに限られない。例えば、テスト開始時にMMU14が有効となっている場合は、S21で仮想アドレスでテストパターンの数値を書き込み、S23でMMU14を無効にして、S24で書き込んだ数値を物理アドレスで読み出し、読み出した数値にテストパターンの数値を加算した数値を物理アドレスで書き込み、S25でMMU14を有効にして、S26で書き込んだ数値を仮想アドレスで読み出すようにしてもよい。
In the processing procedure of the
以上に説明したように、本実施の形態1では、物理アドレスを指定して実行用メモリ11に対してデータの書き込みを行った後、その物理アドレスに対応する仮想アドレスを指定してMMU14によるアドレスの変換を行って実行用メモリ11に対してデータの読み出しを行うようにしている。そして、書き込んだデータと、読み出したデータが一致するか否かを判定するようにしている。これによれば、データが一致した場合に、MMU14によるアドレスの変換が正常に行われていることを確認することができる。つまり、MMU14が正常に動作していることを確認することができる。
As described above, in the first embodiment, after a physical address is designated and data is written to the
また、この判定は、TLBに設定したアクセス権限通りに、メモリ保護違反が検出されて実行用メモリ11に対するアクセス抑止が行われることなく、実行用メモリ11に対してデータの書き込み及び読み出しが行えた場合に行うことができる。すなわち、本実施の形態1によれば、メモリ保護が正常に行われていることも確認することができる。
Further, in this determination, according to the access authority set in the TLB, a memory protection violation was detected and access to the
<発明の実施の形態2>
続いて、本発明の実施の形態2にかかる安全制御装置について説明する。本実施の形態2にかかる安全制御装置の構成は、図1を参照して説明した実施の形態1にかかる安全制御装置の構成と同様であるため、その説明を省略する。以下では、パーティションスケジューラ30と、アプリケーション101〜103の起動により生成されるタスクと、の関係について、図9を用いて説明する。図9は、本実施の形態2にかかるパーティションスケジューラ30とタスク24、26、28との関係を示す図である。以下、実施の形態1と同様の内容については、適宜、その説明を省略する。
<
Then, the safety control
図9に示すように、本実施の形態2は、実施の形態1と比較して、パーティションスケジューラ21に代えてパーティションスケジューラ30を有し、MMU確認ルーチン29がパーティションスケジューラ30に含まれる点が異なる。すなわち、本実施の形態2にかかるパーティションスケジューラ30は、実施の形態1にかかるパーティションスケジューラ21と比較して、MMU確認ルーチン29を実行する点が異なる。
As shown in FIG. 9, the second embodiment is different from the first embodiment in that a
続いて、パーティションスケジューラ30によるパーティション・スケジューリングについて、図10を用いて説明する。図10は、発明の実施の形態2にかかるパーティションスケジューラ30の処理手順の具体例を示すフローチャートである。なお、図6を参照して説明した、実施の形態1にかかる処理手順と同様の処理手順については、同一の符号を付し、説明を省略する。本実施の形態2にかかる処理手順では、実施の形態1にかかる処理手順と比較して、S13でYesとなったときにS17を実行して、その次にS14を実行する点が異なる。
Next, partition scheduling by the
TPの切り替えタイミングであると判定した場合(S13でYes)、パーティションスケジューラ30は、切り替え先のTPで利用するページについて、MMU確認ルーチン29を実行する(S17)。そして、パーティションスケジューラ30は、MMU確認ルーチン29を実行した後に、TPの切り替えを実行する(S14)。
If it is determined that it is the TP switching timing (Yes in S13), the
MMU確認ルーチン29における処理手順については、OS100のパーティションスケジューラ30が実行すること以外は、実施の形態1において図7を参照して説明した処理と同様となるため、その説明を省略する。ここで、本実施の形態2では、上述したように切り替え先のTPで利用するページについて、MMU確認ルーチン29を実行する。すなわち、パーティションスケジューラ30は、切り替え先のTPに属するタスクの権限(ASID)で、切り替え先のTPに属するタスクで利用するページについてMMU確認ルーチン29を実行する。具体的には、パーティションスケジューラ30は、MMU14のTLBを参照して、切り替え先のTPに対応するASIDが設定されているエントリを検索する。そして、パーティションスケジューラ30は、検索によって検出したエントリにおいて設定されているページを切り替え先のTPで利用するページとして認識する。
The processing procedure in the
ここで、通常、切り替え先のTPで利用するページについてのエントリでは、切り替え先のTPに属するタスクに対して、アクセス権限の全て(読み出し権限、書き込み権限、及び実行権限)が有りに設定されている。そのため、この場合、パーティションスケジューラ30は、S20でページのデータのみをバックアップして、S22ではTLBの設定は行わずに、S27でページのデータのみを復元することで、MMU確認ルーチン29を実施するようにしてもよい。ただし、仮に、読み出し権限及び書き込み権限のいずれかが無しに設定されている場合、パーティションスケジューラ30は、読み出し権限及び書き込み権限を有りに設定してMMU確認ルーチン29を実施する。
Here, normally, in the entry for the page used in the switching destination TP, all the access authorities (reading authority, writing authority, and execution authority) are set to exist for the tasks belonging to the switching destination TP. Yes. Therefore, in this case, the
以上に説明したように、本実施の形態2では、TPを切り替えるときに、切り替え先のTPで実行されるタスクがアクセスする実行用メモリ11のページについて、MMU14の動作確認を行うようにしている。これによれば、直近で使用される実行用メモリ11のページについてのMMU14の動作が正常に行われていることを確認することができる。そのため、MMU14の異常をより早く検出することが可能となり、より信頼性を向上することが可能となる。
As described above, in the second embodiment, when the TP is switched, the operation of the
<発明の実施の形態3>
続いて、本発明の実施の形態3にかかる安全制御装置2について説明する。図11は、本実施の形態3にかかる安全制御装置2の構成例を示すブロック図である。以下、実施の形態1と同様の内容については、適宜、その説明を省略する。
<Third Embodiment of the Invention>
Next, the
本実施の形態3にかかる安全制御装置2は、図1を参照して説明した実施の形態1にかかる安全制御装置1と比較して、OS100に代えてOS200を有し、さらにMMU確認アプリケーション104を有する点が異なる。
The
MMU確認アプリケーション104は、MMU確認ルーチン29を実行することによって、MMU14が正常に動作しているか否かを確認する処理をプロセッサ10に実行させるための命令コードを含む。MMU確認アプリケーション104は、パーティションスケジューラ21への結果通知をプロセッサ10に実行させるための命令コードを含む。MMU確認アプリケーション104は、安全関連アプリケーションである。なお、OS100とOS200との違いについては、後述する。
The
続いて、パーティションスケジューラ21と、アプリケーション101〜104の起動により生成されるタスクと、の関係について、図12を用いて説明する。図12は、本実施の形態3にかかるパーティションスケジューラ21とタスク24、26、28、32との関係を示す図である。
Next, the relationship between the
図11に示すように、本実施の形態3は、実施の形態1と比較して、OS100に代えてOS200を有し、スケジューリングテーブル22に代えてスケジューリングテーブル33を有し、さらにタスクスケジューラ31とMMU確認タスク32とを有する点が異なる。また、本実施の形態3は、実施の形態1と比較して、さらにTP4及びRP4が定義されている。TP4及びRP4には、タスクスケジューラ31とMMU確認タスク32とが属する。
As shown in FIG. 11, the third embodiment has an
本実施の形態3にかかるOS200は、実施の形態1にかかるOS100と比較して、MMU確認ルーチン29を有しない点が異なる。すなわち、OS200によって、直接、MMU14の動作確認は行わない。後述するように、本実施の形態3では、OS200上で動作するMMU確認タスク32がMMU確認ルーチン29を実行する。
The
タスクスケジューラ31は、タスクスケジューラ23、25、27と同様に、自身が属するTP4内のタスクのスケジューリングを行う。なお、図12では、TP4は1つのタスクのみを含むものとして図示しているが、1以上のタスクが含まれるようにしてもよい。 Similar to the task schedulers 23, 25, and 27, the task scheduler 31 performs scheduling of tasks in the TP4 to which the task scheduler 31 belongs. In FIG. 12, TP4 is illustrated as including only one task, but one or more tasks may be included.
MMU確認タスク32は、MMU確認アプリケーション104の起動によって生成されるタスクである。図12の例では、MMU確認タスク32は、TP4及びRP4に割り当てられている。MMU確認タスク32は、MMU確認ルーチン29を実行することによって、MMU14が正常に動作しているか否かを確認する。
The MMU confirmation task 32 is a task generated when the
スケジューリングテーブル33は、図13A及び図13Bに示すスケジューリングパターンを保持している。図13Aは、通常制御スケジューリングパターンの具体例を示している。図13Aでは、1サイクル時間において、通常制御タスク26が属するTP2の期間(T1)、安全監視タスク24が属するTP1の期間(T2)、及びMMU確認タスク32が属するTP4の期間(T5)が割り当てられている。図13Bは、安全制御スケジューリングパターンの具体例を示している。図13Bでは、1サイクル時間において、安全監視タスク24が属するTP1の期間(T1)、安全監視タスク24が属するTP1の期間(T2)、及びMMU確認タスク32が属するTP4の期間(T6)が割り当てられている。
The scheduling table 33 holds the scheduling pattern shown in FIGS. 13A and 13B. FIG. 13A shows a specific example of the normal control scheduling pattern. In FIG. 13A, the period (T1) of TP2 to which the
MMU確認ルーチン29における処理手順については、MMU確認タスク32が実行すること以外は、実施の形態1において図7を参照して説明した処理と同様となるため、その説明を省略する。ここで、MMU確認タスク32は、TP4のタスクの権限でRP4に割り当てられたリソースしかアクセスすることができない。また、通常、OS200は、OS200上で動作するタスクからは、MMU14内のTLBのエントリへのアクセス及びMMU14の有効/無効の切り替えを実施することができないようにしている。そこで、本実施の形態3にかかるOS200は、MMU確認タスク32に対して、検査対象となるページ及びエントリへのデータのバックアップ及び復元のためのアクセスを可能とするAPI関数、検査対象となるタスクの権限(ASID)で検査対象となるページに対するデータの書き込み及び読み出しの発行を可能とするAPI関数、及び、MMU14の有効/無効の切り替えを可能とするAPI関数等を提供する。そして、MMU確認タスク32は、それぞれのAPI関数を使用して、MMU確認ルーチン29を実行する。
Since the processing procedure in the
また、MMU確認タスク32は、MMU14の異常を検出した場合(S28でYes)には、緊急停止ルーチン(S29)として、パーティションスケジューラ21に異常を通知する。そして、パーティションスケジューラ21は、その通知に応じて、スケジューリングパターンを、安全制御スケジューリングパターンに切り替えて、制御対象を緊急停止させる。
When the MMU confirmation task 32 detects an abnormality in the MMU 14 (Yes in S28), the MMU confirmation task 32 notifies the
以上に説明した本実施の形態3のように、MMU14の動作確認を行うための専用のTPを定義して、そのTPに属するタスクによって、MMU14の動作確認を行うようにすることもできる。
As in the third embodiment described above, a dedicated TP for confirming the operation of the
<発明の実施の形態4>
続いて、本発明の実施の形態4にかかる安全制御装置について説明する。本実施の形態4にかかる安全制御装置の構成は、図1を参照して説明した実施の形態1にかかる安全制御装置の構成と同様であるため、その説明を省略する。以下では、パーティションスケジューラ21と、アプリケーション101〜103の起動により生成されるタスクと、の関係について、図14を用いて説明する。図14は、本実施の形態4にかかるパーティションスケジューラ21とタスク34〜36との関係を示す図である。以下、実施の形態1と同様の内容については、適宜、その説明を省略する。
<
Then, the safety control
図14に示すように、本実施の形態4は、実施の形態1と比較して、OS100に代えてOS200を有し、安全監視タスク24、通常制御タスク26、及び安全制御タスク28に代えて安全監視タスク34、通常制御タスク35、及び安全制御タスク36を有する点が異なる。安全監視タスク34、通常制御タスク35、及び安全制御タスク36のそれぞれは、安全監視タスク24、通常制御タスク26、及び安全制御タスク28のそれぞれと比較して、MMU確認ルーチン29を有する点が異なる。
As shown in FIG. 14, the fourth embodiment has an
本実施の形態4にかかるOS200は、実施の形態1にかかるOS100と比較して、実施の形態3にかかるOS200と同様にMMU確認ルーチン29を有しない。すなわち、OS200において、直接、MMU14の動作確認は行わない。
The
本実施の形態4にかかる安全監視タスク34は、実施の形態1にかかる安全監視タスク24と比較して、さらに、MMU確認ルーチン29を実行することによって、MMU14が正常に動作しているか否かを確認する点が異なる。本実施の形態4にかかる通常制御タスク35は、実施の形態1にかかる通常制御タスク26と比較して、さらに、MMU確認ルーチン29を実行することによって、MMU14が正常に動作しているか否かを確認する点が異なる。本実施の形態4にかかる安全制御タスク36は、実施の形態1にかかる安全制御タスク28と比較して、さらに、MMU確認ルーチン29を実行することによって、MMU14が正常に動作しているか否かを確認する点が異なる。
Compared with the
MMU確認ルーチン29における処理手順については、安全監視タスク34、通常制御タスク35、及び安全制御タスク36のそれぞれが実行すること以外は、実施の形態1において図7を参照して説明した処理と同様となるため、その説明を省略する。ここで、安全監視タスク34、通常制御タスク35、及び安全制御タスク36のそれぞれは、それぞれが属するTPで利用するページについて、MMU確認ルーチン29を実行する。すなわち、それぞれのタスク34〜36は、それぞれのタスク34〜36の権限(ASID)で、それぞれのタスク34〜36が利用するページについてMMU確認ルーチン29を実行することになる。ここで、それぞれのタスク34〜36が利用するページを特定する方法については、実施の形態2において説明した方法と同様であるため、説明を省略する。
The processing procedure in the
ここで、通常、タスク34〜36のそれぞれが属するTPで利用するページについてのエントリでは、それぞれのタスク34〜36に対して、アクセス権限の全て(読み出し権限、書き込み権限、及び実行権限)が有りに設定されている。そのため、この場合、それぞれのタスク34〜36は、S20でページのデータのみをバックアップして、S22ではTLBの設定は行わずに、S27でページのデータのみを復元することで、MMU確認ルーチン29を実施するようにしてもよい。ただし、仮に、読み出し権限及び書き込み権限のいずれかが無しに設定されている場合、それぞれのタスク34〜36は、読み出し権限及び書き込み権限を有りに設定してMMU確認ルーチン29を実施する。
Here, normally, in the entry for the page used in the TP to which each of the
また、通常、OS200は、OS200上で動作するタスクからは、MMU14内のTLBのエントリへのアクセス及びMMU14の有効/無効の切り替えを実施することができないようにしている。そこで、本実施の形態4にかかるOS200は、実施の形態3にかかるOS200と同様に、各タスク34〜36に対して、検査対象となるページ及びエントリへのデータのバックアップ及び復元のためのアクセスを可能とするAPI関数、及び、MMU14の有効/無効の切り替えを可能とするAPI関数等を提供する。そして、各タスク34〜36は、それぞれのAPI関数を使用して、MMU確認ルーチン29を実行する。
Further, the
また、各タスク34〜36は、MMU14の異常を検出した場合(S28でYes)には、緊急停止ルーチン(S29)として、パーティションスケジューラ21に異常を通知する。そして、パーティションスケジューラ21は、その通知に応じて、スケジューリングパターンを、安全制御スケジューリングパターンに切り替えて、制御対象を緊急停止させる。
Further, when each of the
以上に説明したように、本実施の形態4では、TP1〜3のそれぞれにおいて、それぞれのTPに属するタスクによって、それぞれのTPに対応するRPに割り当てられた実行用メモリ11のページについてMMU14の動作確認を行うようにすることもできる。
As described above, in the fourth embodiment, the operation of the
<発明の実施の形態5>
続いて、本発明の実施の形態5にかかる安全制御装置について説明する。図15は、本実施の形態5にかかる安全制御装置3の構成例を示すブロック図である。以下、実施の形態1と同様の内容については、適宜、その説明を省略する。
<Embodiment 5 of the Invention>
Then, the safety control apparatus concerning Embodiment 5 of this invention is demonstrated. FIG. 15 is a block diagram illustrating a configuration example of the
本実施の形態5にかかる安全制御装置3は、図1を参照して説明した実施の形態1にかかる安全制御装置1と比較して、MMU14に代えてMMU16を有し、さらにROM17を有する点が異なる。
The
本実施の形態5にかかるMMU16は、実施の形態1にかかるMMU14と比較して、実行用メモリ11に代えてROM17を管理対象とする点が異なる。すなわち、本実施の形態5では、MMU16のメモリ保護機能及び仮想記憶管理機能によって、ROM17が管理される場合について説明する。
The
MMU16は、メモリ保護機能によって、実施の形態1にかかるMMU14と同様に、ROM17におけるリソース・パーティショニングを実現する。すなわち、プロセッサ10からROM17のあるアドレスに対するアクセスがあったときに、そのアクセスがそのアドレスに対するアクセス権限を有しているか否かを判定する。そして、そのアクセスがそのアドレスに対するアクセス権限を有していない場合には、そのアクセスをメモリ保護違反として検出するとともに、メモリ保護違反をプロセッサ10に通知する。また、この場合、MMU16は、ROM17に対するアクセスを抑止するようにしてもよい。
Similar to the
また、MMU16は、仮想記憶管理機能によって、実施の形態1にかかるMMU14と同様に、プロセッサ10がROM17にアクセスするときに指定されたアドレスを、仮想アドレスから物理アドレスに変換する。すなわち、MMU16は、仮想記憶管理機能によって、プロセッサ10からの仮想アドレスを指定したROM17へのアクセスを、物理アドレスを指定したROM17へのアクセスに変換して、実行用メモリ11に発行する。
Further, the
なお、これらの処理は、MMU16が有するTLB(図示せず)を参照することで行われるが、その具体的な処理内容については、実施の形態1にかかるMMU14と同様であるため、その説明を省略する。
Note that these processes are performed by referring to the TLB (not shown) of the
ROM17は、マスクROM、PROM(Programmable ROM)等の読み出しアクセスのみが可能なメモリである。図15のROM17は、論理的な構成単位を示している。すなわち、ROM17は、例えば、複数のマスクROMデバイスの組み合わせ、複数のPROMデバイスの組み合わせ、又はマスクROMデバイスとPROMデバイスの組み合わせであってもよい。
The
続いて、パーティションスケジューラ21と、アプリケーション101〜104の起動により生成されるタスクと、の関係について、図16を用いて説明する。図16は、本実施の形態5にかかるパーティションスケジューラ21とタスク24、26、28との関係を示す図である。
Next, the relationship between the
図16に示すように、本実施の形態5は、実施の形態1と比較して、MMU確認ルーチン29に代えてMMU確認ルーチン37を有する点が異なる。MMU確認ルーチン37は、MMU16が正常に動作できているか否かを確認するルーチンである。具体的には、MMU確認ルーチン37は、MMU16の有効/無効を切り替える前にROM17の特定のアドレスから読み出したデータと、MMU16の有効/無効を切り替えた後にそのアドレスと同一のアドレスから読み出したデータとが一致するか否かによって、MMU16が正常に動作しているか否かを判定する。MMU16の有効/無効を切り替える前における書き込みで指定するアドレスと、MMU16の有効/無効を切り替えた後における読み出しで指定するアドレスは、一方が仮想アドレスとなり、他方が物理アドレスとなる。そのため、上述したデータが一致すれば、MMU16の有効時に正常にアドレスの変換が行われていることになり、MMU16が正常に動作していることが確認される。なお、このときのアクセスは、検査対象のページに対して、検査対象とするタスクによる読み出し権限を有りに設定して行うことになる。
As shown in FIG. 16, the fifth embodiment is different from the first embodiment in that an
続いて、MMU確認ルーチン37によるMMU確認処理について、図17を用いて説明する。図17は、発明の実施の形態5にかかるMMU確認ルーチン37の処理手順の具体例を示すフローチャートである。OS100がMMU確認ルーチン37を実行することによって、以下に説明する処理手順が実行されることになる。なお、厳密には、以下に説明する処理は、プロセッサ10によって実行されることになる。
Next, the MMU confirmation process by the
ここで、OS100は、MMU確認ルーチン37を実行する以前に、予め定めた任意のタイミングでROM17の全域にわたって、事前にデータを読み出しておく。例えば、OS100の起動時にデータを読み出しておく。なお、ここでは、MMU16を無効としてROM17のデータを読み出しているものとする。このとき、OS100は、予め任意に定めた固定長ずつでデータを読み出して、読み出したデータのそれぞれのCRC(Cyclic Redundancy Check)を算出する。そして、OS100は、算出したCRCを実行用メモリ11又は不揮発性メモリ13に格納しておく。
Here, before executing the
OS100は、検査対象とするTBLのエントリに格納されたデータのバックアップをとる(S30)。ここで、バックアップしたデータは、実行用メモリ11に格納するようにしてもよく、不揮発性メモリ13に格納するようにしてもよい。なお、ここでは、MMU16は、無効にされているものとする。
The
OS100は、検査対象のTBLのエントリにおいて、検査対象のページに関する内容を設定する。具体的には、エントリに、検査対象のタスクのASID、検査対象のページの仮想アドレス、検査対象のページの物理アドレス、及び、読み出し権限を有りとしたアクセス権限等を設定する(S31)。
The
OS100は、MMU14を有効にする(S32)。OS100は、検査対象のページから、上述した固定長のデータを読み出して、読み出したデータのCRCを算出する(S33)。なお、ここでは、例えば、前回に読み出したデータに続くデータを読み出すものとする。また、S32では、MMU14が有効にされているため、OS100は、仮想アドレスを指定して実行用メモリ11に対する読み出しを行う。
The
OS100は、MMU14を無効にする(S34)。OS100は、S30において、バックアップしたデータを、検査対象のエントリに復元する(S35)。OS100は、読み出したデータのCRCの算出が完了したとき(S36でYes)、算出したCRCと、そのCRCを算出したデータを読み出した仮想アドレスが示すROM17上のアドレスと同一のアドレスを示す物理アドレスから事前に読み出して算出していたCRCとを比較する(S37)。
The
OS100は、比較したCRCが一致する場合(S37でYes)、MMU16が正常に動作していると判定する。一方、OS100は、比較したCRCが一致しない場合(37でNo)、MMU16が正常に動作していないと判定する。この場合、OS100は、緊急停止ルーチンを実行する(S29)。
If the compared CRCs match (Yes in S37), the
以上に説明したMMU確認ルーチン37の処理は、OS100に制御が移ったときにおける任意のタイミングで実行するようにしてよい。例えば、図8に示すように、TPにおいてそのTPに属する全てのタスクの実行が終了してOS100に制御が移ったときに、残りのTPの時間の間、実行するようにしてもよい。このようにすることで、TPにおいて余った時間を有効利用することができる。
The processing of the
MMU確認ルーチン37で検査対象とするページ、タスク、及びエントリの組み合わせは、任意の組み合わせを、任意の順序で組み合わせていくようにしてよい。例えば、検査対象とするページは、ROM17の全てのページを先頭からの順番に、検査対象とするタスクは、全てのタスク24、26、28を対象として予め定めた順番に、検査対象とするエントリは、TLBの全てのエントリを先頭から順番に組み合わせて検査していくことで、全ての組み合わせに対するMMU16の動作確認を行うようにしてもよい。さらに、ROM17の全てのページを先頭から順番に検査していく場合、ROM17の先頭から上述したように固定長ずつデータを読み出して検査を行っていくようにしてもよい。この場合、1ページの先頭から末尾まで全てのデータについての検査が終わってから、検査対象とするページをそのページの次のページに切り替えることになる。また、図8に示すように、TP2の余った時間でMMU16の動作確認を行う場合は、次にアクティブとなるTP1に属するタスクを検査対象としてMMU16の動作確認を行うようにしてもよい。また、実施の形態1と同様に、ページの先頭と末尾の所定サイズのデータについてのみ、検査を行うようにしてもよい。
Any combination of pages, tasks, and entries to be inspected in the
以上に説明したMMU確認ルーチン37の処理手順では、事前にMMU16が無効の状態で物理アドレスでデータを読み出してCRCを算出しておき、MMU16を有効にしてデータを読み出してCRCを算出しているが、これに限られない。例えば、事前にMMU16が有効の状態で仮想アドレスでデータを読み出してCRCを算出しておき、S32でMMU16を無効にして、S33で物理アドレスでデータを読み出してCRCを算出するようにしてもよい。この場合、S34でMMU16を有効にすることになる。
In the processing procedure of the
以上に説明したMMU確認ルーチン37の処理手順では、事前にROM17の全てデータを読み出してCRCを算出するようにしているが、これに限られない。例えば、S31とS32の間で、物理アドレスでデータを読み出してCRCを算出し、S32でMMU16を無効にして、S33で仮想アドレスでデータを読み出してCRCを算出するようにしてもよい。すなわち、その都度、比較するデータの双方を読み出すようにしてもよい。しかしながら、好ましくは、上述した処理手順のように、事前にROM17の全てのデータを読み出すことで、データの読み出し回数を低減することができる。そのため、MMU16の動作確認における処理負荷を低減して、確認効率を向上することができる。これは、検査対象がROM17であり、それに格納されるデータが不変であることを利用している。
In the processing procedure of the
以上に説明したMMU確認ルーチン37の処理手順では、CRCを算出して比較するようにしているが、これに限られない。読み出したデータそのものを比較するようにしてもよい。しかしながら、好ましくは、上述した処理手順のように、読み出したデータからCRCを算出してそれを保持しておくようにすることで、読み出したデータそのものを保持するよりも、必要な記憶容量を低減することができる。また、データの同一性を検証するためにCRC以外の誤り検出符号を使用するようにしてもよい。誤り検出符号として、例えば、CRC(Cyclic Redundancy Check)、パリティ、チェックサム、ハッシュ関数等を使用することができる。
In the processing procedure of the
以上に説明したように、本実施の形態5では、物理アドレスを指定してROM17に対してデータの読み出しを行った後、その物理アドレスに対応する仮想アドレスを指定してMMU16によるアドレスの変換を行ってROM17に対してデータの読み出しを行うようにしている。そして、読み出したデータが一致するか否かを判定するようにしている。これによれば、データが一致した場合に、MMU16によるアドレスの変換が正常に行われていることを確認することができる。つまり、MMU16が正常に動作していることを確認することができる。
As described above, in the fifth embodiment, after a physical address is designated and data is read from the
<発明の実施の形態6>
続いて、本発明の実施の形態6にかかる安全制御装置について説明する。本実施の形態6にかかる安全制御装置の構成は、図1を参照して説明した実施の形態1にかかる安全制御装置の構成と同様であるため、その説明を省略する。以下では、パーティションスケジューラ30と、アプリケーション101〜103の起動により生成されるタスクと、の関係について、図18を用いて説明する。図18は、本実施の形態6にかかるパーティションスケジューラ30とタスク24、26、28との関係を示す図である。以下、実施の形態5と同様の内容については、適宜、その説明を省略する。
<Sixth Embodiment of the Invention>
Next, a safety control device according to Embodiment 6 of the present invention will be described. Since the configuration of the safety control device according to the sixth embodiment is the same as the configuration of the safety control device according to the first embodiment described with reference to FIG. 1, the description thereof is omitted. Hereinafter, the relationship between the
図18に示すように、本実施の形態6は、実施の形態1と比較して、実施の形態2と同様にパーティションスケジューラ21に代えてパーティションスケジューラ30を有し、MMU確認ルーチン37がパーティションスケジューラ30に含まれる点が異なる。すなわち、パーティションスケジューラ30は、実施の形態1にかかるパーティションスケジューラ21と比較して、MMU確認ルーチン37を実行する点が異なる。
As shown in FIG. 18, the sixth embodiment has a
パーティションスケジューラ30の処理手順については、MMU確認ルーチン29に代えてMMU確認ルーチン37を実行すること以外は、実施の形態2において図10を参照して説明した処理と同様となるため、その説明を省略する。また、MMU確認ルーチン37における処理手順については、OS100のパーティションスケジューラ30が実行すること以外は、実施の形態5において図17を参照して説明した処理と同様となるため、その説明を省略する。
The processing procedure of the
ここで、本実施の形態6では、実施の形態2と同様に切り替え先のTPで利用するページについて、MMU確認ルーチン37を実行する。ここで、通常、切り替え先のTPで利用するページについてのエントリでは、切り替え先のTPに属するタスクに対して、アクセス権限の全て(読み出し権限、書き込み権限、及び実行権限)が有りに設定されている。そのため、この場合は、パーティションスケジューラ30は、S30、S31、及びS35は行わずに、MMU確認ルーチン37を実施するようにしてもよい。ただし、仮に、読み出し権限が無しに設定されている場合、パーティションスケジューラ30は、読み出し権限を有りに設定してMMU確認ルーチン37を実施する。
Here, in the sixth embodiment, the
以上に説明したように、本実施の形態6では、TPを切り替えるときに、切り替え先のTPで実行されるタスクがアクセスするROM17のページについて、MMU16の動作確認を行うようにしている。これによれば、直近で使用されるROM17のページについてのMMU16の動作が正常に行われていることを確認することができる。そのため、MMU16の異常をより早く検出することが可能となり、より信頼性を向上することが可能となる。
As described above, in the sixth embodiment, when the TP is switched, the operation of the
<発明の実施の形態7>
続いて、本発明の実施の形態7にかかる安全制御装置4について説明する。図19は、本実施の形態7にかかる安全制御装置9の構成例を示すブロック図である。以下、実施の形態5と同様の内容については、適宜、その説明を省略する。
<Seventh Embodiment of the Invention>
Next, the
本実施の形態7にかかる安全制御装置2は、図15を参照して説明した実施の形態5にかかる安全制御装置3と比較して、OS100に代えてOS200を有し、さらにMMU確認アプリケーション104を有する点が異なる。
The
本実施の形態7にかかるMMU確認アプリケーション104は、MMU確認ルーチン29に代えてMMU確認ルーチン37を実行すること以外は、実施の形態3にかかるMMU確認アプリケーション104と同様である。なお、OS100とOS200との違いについては、後述する。
The
続いて、パーティションスケジューラ21と、アプリケーション101〜104の起動により生成されるタスクと、の関係について、図20を用いて説明する。図20は、本実施の形態7にかかるパーティションスケジューラ21とタスク24、26、28、32との関係を示す図である。
Next, the relationship between the
図20に示すように、本実施の形態7は、実施の形態5と比較して、実施の形態3と同様に、OS100に代えてOS200を有し、スケジューリングテーブル22に代えてスケジューリングテーブル33を有し、さらにタスクスケジューラ31とMMU確認タスク32とを有する点が異なる。また、本実施の形態7は、実施の形態5と比較して、実施の形態3と同様に、さらにTP4及びRP4が定義されている。TP4及びRP4には、タスクスケジューラ31とMMU確認タスク32とが属する。
As shown in FIG. 20, the seventh embodiment has an
本実施の形態7にかかるOS200は、実施の形態1にかかるOS100と比較して、実施の形態3にかかるOS200と同様にMMU確認ルーチン37を有しない点が異なる。すなわち、OS200によって、直接、MMU16の動作確認は行わない。後述するように、本実施の形態7では、OS200上で動作するMMU確認タスク32がMMU確認ルーチン37を実行する。
The
本実施の形態7にかかるタスクスケジューラ31は、実施の形態3にかかるタスクスケジューラ31と同様である。本実施の形態7にかかるMMU確認タスク32は、MMU確認ルーチン29に代えてMMU確認ルーチン37を実行すること以外は、実施の形態3にかかるMMU確認タスク32と同様である。本実施の形態7にかかるスケジューリングテーブル33は、図13A及び図13Bを参照して説明した、実施の形態3にかかるスケジューリングテーブル33と同様である。
The task scheduler 31 according to the seventh embodiment is the same as the task scheduler 31 according to the third embodiment. The MMU confirmation task 32 according to the seventh embodiment is the same as the MMU confirmation task 32 according to the third embodiment except that an
MMU確認ルーチン37における処理手順については、MMU確認タスク32が実行すること以外は、実施の形態5において図17を参照して説明した処理と同様となるため、その説明を省略する。また、本実施の形態7にかかるOS200は、本実施の形態3にかかるOS200と同様に、MMU確認タスク32に対して、各種API関数を提供する。そして、MMU確認タスク32は、それぞれのAPI関数を使用して、MMU確認ルーチン37を実行する。
The processing procedure in the
以上に説明した本実施の形態7のように、MMU16の動作確認を行うための専用のTPを定義して、そのTPに属するタスクによって、MMU16の動作確認を行うようにすることもできる。
As in the seventh embodiment described above, a dedicated TP for checking the operation of the
<発明の実施の形態8>
続いて、本発明の実施の形態8にかかる安全制御装置について説明する。本実施の形態8にかかる安全制御装置の構成は、図15を参照して説明した実施の形態5にかかる安全制御装置の構成と同様であるため、その説明を省略する。以下では、パーティションスケジューラ21と、アプリケーション101〜103の起動により生成されるタスクと、の関係について、図21を用いて説明する。図21は、本実施の形態8にかかるパーティションスケジューラ21とタスク34〜36との関係を示す図である。以下、実施の形態5と同様の内容については、適宜、その説明を省略する。
<Embodiment 8 of the Invention>
Next, a safety control device according to Embodiment 8 of the present invention will be described. Since the configuration of the safety control device according to the eighth embodiment is the same as the configuration of the safety control device according to the fifth embodiment described with reference to FIG. 15, the description thereof is omitted. Hereinafter, the relationship between the
図21に示すように、本実施の形態8は、実施の形態5と比較して、実施の形態4と同様に、OS100に代えてOS200を有し、安全監視タスク24、通常制御タスク26、及び安全制御タスク28に代えて安全監視タスク34、通常制御タスク35、及び安全制御タスク36を有する点が異なる。安全監視タスク34、通常制御タスク35、及び安全制御タスク36のそれぞれは、安全監視タスク24、通常制御タスク26、及び安全制御タスク28のそれぞれと比較して、MMU確認ルーチン37を有する点が異なる。すなわち、本実施の形態8にかかる安全監視タスク34、通常制御タスク35、及び安全制御タスク36のそれぞれは、MMU確認ルーチン29に代えてMMU確認ルーチン37を有する点以外は、本実施の形態4にかかる安全監視タスク34、通常制御タスク35、及び安全制御タスク36と同様である。
As shown in FIG. 21, the eighth embodiment has an
本実施の形態8にかかるOS200は、実施の形態1にかかるOS100と比較して、実施の形態7にかかるOS200と同様にMMU確認ルーチン37を有しない。すなわち、OS200において、直接、MMU16の動作確認は行わない。
The
MMU確認ルーチン37における処理手順については、安全監視タスク34、通常制御タスク35、及び安全制御タスク36のそれぞれが実行すること以外は、実施の形態5において図17を参照して説明した処理と同様となるため、その説明を省略する。ここで、本実施の形態8にかかる安全監視タスク34、通常制御タスク35、及び安全制御タスク36のそれぞれは、実施の形態4にかかる安全監視タスク34、通常制御タスク35、及び安全制御タスク36と同様に、それぞれが属するTPで利用するページについて、MMU確認ルーチン37を実行する。
The processing procedure in the
また、本実施の形態8にかかるOS200は、本実施の形態7にかかるOS200と同様に、各タスク34〜36に対して、各種API関数を提供する。そして、各タスク34〜36は、それぞれのAPI関数を使用して、MMU確認ルーチン37を実行する。
Further, the
以上に説明したように、本実施の形態8では、TP1〜3のそれぞれにおいて、それぞれのTPに属するタスクによって、それぞれのTPに対応するRPに割り当てられたROM17のページについてMMU16の動作確認を行うようにすることもできる。
As described above, in the eighth embodiment, in each of TP1 to TP3, the operation of the
発明の他の実施の形態.
本実施の形態では、TPのそれぞれに属するタスクが、それぞれ安全監視タスク24、33、通常制御タスク26、34及び安全制御タスク28、35である場合について例示したが、タスクの種類は、これに限られない。安全監視タスク24、通常制御タスク26及び安全制御タスク28に限られず、その他の任意の制御対象の制御に関する処理を実行するタスクを有するようにしてもよい。
Another embodiment of the invention.
In the present embodiment, the case where the tasks belonging to each of the TPs are the
例えば、図22に示すようなタスク38〜40を有するようにしてもよい。なお、この場合、安全制御装置は、アプリケーション101〜103に代えて、タスク38〜40に対応するアプリケーションを有する必要があるが、その点は自明であるため図示及び説明を省略する。
For example, you may make it have the tasks 38-40 as shown in FIG. In this case, the safety control device needs to have an application corresponding to the
監視制御タスク38は、制御対象を制御する。具体的には、監視制御タスク38は、通常制御タスク39及び安全制御タスク40からの指令値に基づいて、制御対象のアクチュエータを制御する。通常制御タスク39は、制御対象に通常の機能・動作を行わせるための制御計算を行う。具体的には、通常制御タスク39は、通常制御におけるアクチュエータの制御計算をして、アクチュエータの指令値を算出する。通常制御タスク39は、算出した指令値を監視制御タスク38に出力する。安全制御タスク40は、機能安全を確保するために定められた制御計算を行う。具体的には、安全制御タスク40は、安全制御におけるアクチュエータの制御計算をして、アクチュエータの指令値を算出する。安全制御タスク40は、算出した指令値を監視制御タスク38に出力する。監視制御タスク38は、通常制御タスク39又は安全制御タスク40から出力された指令値に基づいてアクチュエータを制御する。
The
さらに、監視制御タスク38は、制御対象のセンサから、センサ値を取得する。監視制御タスク38は、取得したセンサ値を通常制御タスク39及び安全制御タスク40に出力する。通常制御タスク39及び安全制御タスク40のそれぞれは、監視制御タスク38から出力されたセンサ値に基づいて、アクチュエータの制御計算を行うようにしてもよい。
Furthermore, the
また、その他に、例えば、図23に示すようなタスク41〜43を有するようにしてもよい。なお、この場合、安全制御装置は、アプリケーション101〜103に代えて、タスク41〜43に対応するアプリケーションを有する必要があるが、その点は自明であるため図示及び説明を省略する。
In addition, for example, you may make it have the tasks 41-43 as shown in FIG. In this case, the safety control device needs to have an application corresponding to the
監視タスク41は、制御対象のセンサから、センサ値を取得する。このセンサには、上述したように制御対象の姿勢を検知するための姿勢センサを含む。ここで説明する例では、制御対象として、人が搭乗することができる走行装置に適用した場合について説明する。この場合、監視タスク41は、搭乗者による重心移動を姿勢センサにより検知することができる。監視タスク41は、取得したセンサ値をHMI(Human Machine Interface)タスク39に出力する。
The
HMIタスク43は、監視タスク41から出力されたセンサ値に基づいて、制御対象のアクチュエータの制御計算をして、アクチュエータの指令値を算出する。HMIタスク43は、算出した指令値を制御タスク42に出力する。制御タスク42は、HMIタスク43から出力された指令値に基づいて、アクチュエータを制御する。
Based on the sensor value output from the
これによれば、搭乗者の操作に応じて制御対象が制御されるというHMIを実現することができる。例えば、搭乗者が重心を前後に移動させることで制御対象が前後後退を行い、搭乗者が重心を左右に移動させることで制御対象が左右旋回を行うといった制御が可能となる。これについては、実施の形態1〜8及び図22によって説明した例についても同様のことが言える。具体的には、安全監視タスク24、33又は監視制御タスク38が取得したセンサ値に応じて、通常制御タスク26、34及び安全制御タスク28、35、もしくは、通常制御タスク39及び安全制御タスク40が同様の制御をすることで、HMIを実現することが可能である。また、本実施の形態によれば、より信頼性を向上した制御対象の制御を行うことが可能となる。そのため、以上に説明したように、人が搭乗することができる走行装置を制御対象として適用することで、より安全性を向上した制御対象の制御を行うことが可能となる。
According to this, it is possible to realize an HMI in which a control target is controlled in accordance with a passenger's operation. For example, it is possible to perform control such that the control object moves back and forth when the passenger moves the center of gravity back and forth, and the control object turns left and right when the passenger moves the center of gravity left and right. The same can be said for the examples described with reference to
なお、走行装置として、例えば、立ち乗り方の同軸二輪車とすることもできる。その場合は、アクチュエータを制御することで、車輪が回転動作をすることになる。また、安全制御装置自体も制御対象に搭載される構成としてもよい。 In addition, as a traveling apparatus, it can also be set as the coaxial two-wheeled vehicle of standing up riding. In this case, the wheel rotates by controlling the actuator. Further, the safety control device itself may be mounted on the control target.
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。 Furthermore, the present invention is not limited to the above-described embodiments, and various modifications can be made without departing from the gist of the present invention described above.
本実施の形態では、OSが、TP1〜TP3を有する場合について例示したが、TPの種類及び数は、これに限られない。スケジューリングパターンについても、本実施の形態に例示したものに限られない。 In the present embodiment, the case where the OS has TP1 to TP3 is illustrated, but the type and number of TPs are not limited to this. The scheduling pattern is not limited to that exemplified in the present embodiment.
本実施の形態では、タスクの数が3つである場合について例示したが、タスクの数は、これに限られない。例えば、本実施の形態では、TPがTP1〜TP3の3つである場合について例示したが、TPの数を3つ以外の数とし、それぞれのTPが1つ以上の任意の数のタスクを有するようにしてもよい。 In the present embodiment, the case where the number of tasks is three is exemplified, but the number of tasks is not limited to this. For example, in the present embodiment, the case where there are three TPs TP1 to TP3 is illustrated, but the number of TPs is set to a number other than three, and each TP has one or more arbitrary numbers of tasks. You may do it.
本実施の形態では、TP(RP)ごとに異なるアクセス権限を付与する場合について例示した。すなわち、本実施の形態では、同一のTPに属するタスクに対して同一のアクセス権限を付与する場合について例示したが、これに限られない。例えば、タスクごとに異なるアクセス権限を付与するようにしてもよい。この場合は、タスクごとにASIDが一意に定義されることになる。また、この場合は、実施の形態2、6において、切り替え先のTPに属するタスクのそれぞれで利用するページについて、MMU確認ルーチン29を実行するようにすればよい。
In the present embodiment, the case where different access authorities are assigned for each TP (RP) has been illustrated. That is, in the present embodiment, the case where the same access authority is given to tasks belonging to the same TP is exemplified, but the present invention is not limited to this. For example, a different access authority may be given for each task. In this case, the ASID is uniquely defined for each task. In this case, in the second and sixth embodiments, the
本実施の形態では、タイム・パーティショニングを採用したマルチタスクOSについて例示したが、これに限られない。タイム・パーティショニングを採用していないマルチタスクOSに適用することもできる。この場合は、タスクごとにASIDが一意に定義されることになる。 In the present embodiment, the multitask OS adopting time partitioning is exemplified, but the present invention is not limited to this. The present invention can also be applied to a multitasking OS that does not employ time partitioning. In this case, the ASID is uniquely defined for each task.
本実施の形態では、実施の形態1〜4におけるMMU14の管理対象をRAMである実行用メモリ11とし、実施の形態5〜8の管理対象をROM17とした場合について例示したが、MMUが管理対象とする記憶装置は、RAM及びROMのいずれかに限られない。例えば、本実施の形態1〜4及び実施の形態5〜8を組み合わせて、RAM及びROMの双方を管理しているMMUの動作確認を行うようにしてもよい。
In the present embodiment, the case where the management target of the
また、MMU確認ルーチンを実施前に、プロセッサ10に対するMMUに関連しない割り込みを抑止して、MMU確認ルーチンの実施後に、割り込み抑止を解除するようにしてもよい。このようにすることで、ページ及びTLBのエントリに検査時のデータが格納されたまま、他の処理が行われることを防止することができる。
Further, interrupts that are not related to the MMU for the
1、2、3、4 安全制御装置
10 プロセッサ
11 実行用メモリ
12 I/Oポート
13 不揮発性メモリ
14、16 MMU
15 リセット回路
17 ROM
20 マイクロコントローラ
21、30 パーティションスケジューラ
22、33 スケジューリングテーブル
23、25、27、31 タスクスケジューラ
24、34 安全監視タスク
26、35、39 通常制御タスク
28、36、40 安全制御タスク
29、37 MMU確認ルーチン
32 MMU確認タスク
38 監視制御タスク
41 監視タスク
42 制御タスク
43 HMIタスク
100、200 オペレーティングシステム
101 安全監視アプリケーション
102 通常制御アプリケーション
103 安全制御アプリケーション
104 MMU確認アプリケーション
1, 2, 3, 4
15
20
Claims (9)
メモリと、
前記メモリの物理アドレス又は当該メモリの物理アドレスに対応する仮想アドレスを指定することによって、当該メモリの物理アドレスに対してデータの読み出し又は書き込みを行うためのシステムプログラムと、
前記システムプログラムを実行するプロセッサと、
前記プロセッサからの前記メモリに対する前記仮想アドレスを指定した読み出し及び書き込みにおいて、当該読み出し及び当該書き込みにおいて指定された仮想アドレスをそれに対応する物理アドレスに変換するメモリ管理装置と、を備え、
前記プロセッサは、前記システムプログラムを実行することによって、
前記仮想アドレスを指定して前記メモリに対してデータの読み出しもしくは書き込みを行う第1のアクセスを実施した後、当該仮想アドレスに対応する物理アドレスを指定して前記メモリに対してデータの読み出しを行う第2のアクセスを実施するか、
又は、
前記物理アドレスを指定して前記メモリに対してデータの読み出しもしくは書き込みを行う第1のアクセスを実施した後、当該物理アドレスに対応する仮想アドレスを指定して前記メモリに対してデータの読み出しを行う第2のアクセスを実施して、
前記第1のアクセスにおいて読み出した又は書き込んだデータと、前記第2のアクセスにおいて読み出したデータが一致するか否かを判定し、
前記システムプログラムは、前記制御対象を制御するとともに、それに伴って前記仮想アドレスを指定して前記メモリに対してデータの読み出しもしくは書き込みを行う制御関連タスクが実行される制御関連タイムパーティションを含む複数のタイムパーティションのスケジューリング内容を示すスケジューリング情報に従って、前記制御関連タスクをスケジューリングして実行し、
前記システムプログラムは、前記タイムパーティションを前記制御関連タイムパーティションに切り替えるとき、当該制御関連タイムパーティションで実行される制御関連タスクがアクセスする仮想アドレスについて、前記判定を前記プロセッサに実行させる、
制御装置。 A control device for controlling a control object,
Memory,
A system program for reading or writing data to the physical address of the memory by designating a physical address of the memory or a virtual address corresponding to the physical address of the memory;
A processor for executing the system program;
A memory management device that converts the virtual address specified in the reading and writing into a physical address corresponding to the reading and writing in which the virtual address is specified from the processor to the memory; and
The processor executes the system program,
After performing the first access for reading or writing data to the memory by designating the virtual address, the physical address corresponding to the virtual address is designated and data is read from the memory Do a second access,
Or
After performing the first access for reading or writing data to the memory by designating the physical address, the virtual address corresponding to the physical address is designated and data is read from the memory Make a second access,
Wherein the read or written data in the first access, determining whether the data read in said second access match,
The system program includes a plurality of control-related time partitions in which a control-related task that controls the control target and executes a control-related task that reads or writes data to or from the memory by designating the virtual address is performed. According to scheduling information indicating scheduling contents of the time partition, the control related task is scheduled and executed,
When the system program switches the time partition to the control-related time partition, the system program causes the processor to execute the determination on a virtual address accessed by a control-related task executed in the control-related time partition.
Control device.
前記メモリの物理アドレス又は当該メモリの物理アドレスに対応する仮想アドレスを指定することによって、当該メモリの物理アドレスに対してデータの読み出し又は書き込みを行うためのシステムプログラムと、
前記システムプログラムを実行するプロセッサと、
前記プロセッサからの前記メモリに対する前記仮想アドレスを指定した読み出し及び書き込みにおいて、当該読み出し及び当該書き込みにおいて指定された仮想アドレスをそれに対応する物理アドレスに変換するメモリ管理装置と、を備え、
前記プロセッサは、前記システムプログラムを実行することによって、
前記仮想アドレスを指定して前記メモリに対してデータの書き込みを行う第1のアクセスを実施した後、当該仮想アドレスに対応する物理アドレスを指定して前記メモリに対してデータの読み出しを行う第2のアクセスを実施するとともに、前記物理アドレスを指定して前記メモリに対してデータの書き込みを行う第3のアクセスを実施した後、当該物理アドレスに対応する仮想アドレスを指定して前記メモリに対してデータの読み出しを行う第4のアクセスを実施するか、
又は、
前記物理アドレスを指定して前記メモリに対してデータの書き込みを行う第1のアクセスを実施した後、当該物理アドレスに対応する仮想アドレスを指定して前記メモリに対してデータの読み出しを行う第2のアクセスを実施するとともに、前記仮想アドレスを指定して前記メモリに対してデータの書き込みを行う第3のアクセスを実施した後、当該仮想アドレスに対応する物理アドレスを指定して前記メモリに対してデータの読み出しを行う第4のアクセスを実施して、
前記第1のアクセスにおいて書き込んだデータと、前記第2のアクセスにおいて読み出したデータが一致するか否か、及び、前記第3のアクセスにおいて書き込んだデータと、前記第4のアクセスにおいて読み出したデータが一致するか否かを判定する、
情報処理装置。 Memory,
A system program for reading or writing data to the physical address of the memory by designating a physical address of the memory or a virtual address corresponding to the physical address of the memory;
A processor for executing the system program;
A memory management device that converts the virtual address specified in the reading and writing into a physical address corresponding to the reading and writing in which the virtual address is specified from the processor to the memory; and
The processor executes the system program,
After performing the first access for writing the data to the memory by designating the virtual address, the second for reading the data from the memory by designating the physical address corresponding to the virtual address And performing a third access for writing data to the memory by designating the physical address, and then designating a virtual address corresponding to the physical address to the memory. Perform a fourth access to read data, or
Or
After performing the first access for writing data to the memory by designating the physical address, the second for reading data from the memory by designating a virtual address corresponding to the physical address And performing a third access for writing data to the memory by designating the virtual address, and then designating a physical address corresponding to the virtual address to the memory. Perform a fourth access to read data ,
Whether the data written in the first access matches the data read in the second access, and the data written in the third access and the data read in the fourth access are Determine whether they match,
Information processing apparatus.
前記第2のアクセスを実施した後に、前記第3のアクセスを実施するものであり、
前記第1のアクセスでは、所定の値を示すデータを書き込み、
前記第3のアクセスでは、前記第2のアクセスで読み出したデータが示す値に、前記所定の値を加算した値を示すデータを書き込み、
前記判定では、前記第4のアクセスで読み出したデータが示す値が、前記所定の値の2倍の値を示すデータとなっている場合に、前記第1のアクセスにおいて書き込んだデータと、前記第2のアクセスにおいて読み出したデータが一致し、かつ、前記第3のアクセスにおいて書き込んだデータと、前記第4のアクセスにおいて読み出したデータが一致すると判定する、
請求項2に記載の情報処理装置。 The processor is
Performing the third access after performing the second access;
In the first access, data indicating a predetermined value is written,
In the third access, data indicating a value obtained by adding the predetermined value to the value indicated by the data read in the second access is written.
In the determination, if the value indicated by the data read in the fourth access is data indicating a value twice the predetermined value, the data written in the first access and the first It is determined that the data read in the second access matches, and the data written in the third access matches the data read in the fourth access.
The information processing apparatus according to claim 2 .
前記メモリの物理アドレス又は当該メモリの物理アドレスに対応する仮想アドレスを指定することによって、当該メモリの物理アドレスに対してデータの読み出し又は書き込みを行うためのシステムプログラムと、
前記システムプログラムを実行するプロセッサと、
前記プロセッサからの前記メモリに対する前記仮想アドレスを指定した読み出し及び書き込みにおいて、当該読み出し及び当該書き込みにおいて指定された仮想アドレスをそれに対応する物理アドレスに変換するメモリ管理装置と、を備え、
前記プロセッサは、前記システムプログラムを実行することによって、
前記仮想アドレスを指定して前記メモリに対してデータの読み出しを行う第1のアクセスを実施した後、当該仮想アドレスに対応する物理アドレスを指定して前記メモリに対してデータの読み出しを行う第2のアクセスを実施するか、
又は、
前記物理アドレスを指定して前記メモリに対してデータの読み出しを行う第1のアクセスを実施した後、当該物理アドレスに対応する仮想アドレスを指定して前記メモリに対してデータの読み出しを行う第2のアクセスを実施して、
前記第1のアクセスにおいて読み出したデータと、前記第2のアクセスにおいて読み出したデータが一致するか否かを判定し、
前記メモリは、ROM(Read Only Memory)である、
情報処理装置。 Memory,
A system program for reading or writing data to the physical address of the memory by designating a physical address of the memory or a virtual address corresponding to the physical address of the memory;
A processor for executing the system program;
A memory management device that converts the virtual address specified in the reading and writing into a physical address corresponding to the reading and writing in which the virtual address is specified from the processor to the memory; and
The processor executes the system program,
After performing a first access for reading data from the memory by designating the virtual address, a second for reading data from the memory by designating a physical address corresponding to the virtual address Or access
Or
After performing a first access for reading data from the memory by designating the physical address, a second for reading data from the memory by designating a virtual address corresponding to the physical address Conducted access to
Determining whether the data read in the first access matches the data read in the second access ;
The memory is, Ru ROM (Read Only Memory) der,
Information processing apparatus.
前記プロセッサは、前記第2のアクセスと前記判定を繰り返すことによって、前記第1のアクセスにおいて読み出したデータと、前記第2のアクセスにおいて読み出したデータが一致するか否かを順次判定する、
請求項4に記載の情報処理装置。 The first access is to read all data stored in the ROM in advance,
The processor sequentially determines whether the data read in the first access and the data read in the second access match by repeating the second access and the determination.
The information processing apparatus according to claim 4 .
前記判定では、前記第1のアクセスにおいて読み出したデータから算出された誤り検出符号と、前記第2のアクセスにおいて読み出したデータから算出された誤り検出符号が一致するか否かによって、前記第1のアクセスにおいて読み出したデータと、前記第2のアクセスにおいて読み出したデータが一致するか否かを判定する、
請求項5に記載の情報処理装置。 The processor calculates an error detection code for each of all the data read by the first access, and calculates an error detection code of the read data every time the data is read by the second access. And
In the determination, the first error detection code calculated from the data read in the first access and the error detection code calculated from the data read in the second access match the first detection value. Determining whether the data read in the access and the data read in the second access match;
The information processing apparatus according to claim 5 .
前記プロセッサが、
前記仮想アドレスを指定して前記メモリに対してデータの読み出しもしくは書き込みを行う第1のアクセスを実施した後、当該仮想アドレスに対応する物理アドレスを指定して前記メモリに対してデータの読み出しを行う第2のアクセスを実施するか、
又は、
前記物理アドレスを指定して前記メモリに対してデータの読み出しもしくは書き込みを行う第1のアクセスを実施した後、当該物理アドレスに対応する仮想アドレスを指定して前記メモリに対してデータの読み出しを行う第2のアクセスを実施するステップと、
前記プロセッサが、前記第1のアクセスにおいて読み出した又は書き込んだデータと、前記第2のアクセスにおいて読み出したデータが一致するか否かを判定するステップと、を備え、
前記プロセッサは、制御対象を制御するとともに、それに伴って前記仮想アドレスを指定して前記メモリに対してデータの読み出しもしくは書き込みを行う制御関連タスクが実行される制御関連タイムパーティションを含む複数のタイムパーティションのスケジューリング内容を示すスケジューリング情報に従って、前記制御関連タスクをスケジューリングして実行し、
前記プロセッサは、前記タイムパーティションを前記制御関連タイムパーティションに切り替えるとき、当該制御関連タイムパーティションで実行される制御関連タスクがアクセスする仮想アドレスについて、前記判定を実行する、
メモリ管理装置の動作確認方法。 By designating a physical address of the memory or a virtual address corresponding to the physical address of the memory, a read designating the virtual address to the memory from a processor that reads or writes data to the physical address of the memory, and In the writing, the operation check method of the memory management device for converting the read and the virtual address designated in the write into a corresponding physical address,
The processor is
After performing the first access for reading or writing data to the memory by designating the virtual address, the physical address corresponding to the virtual address is designated and data is read from the memory Do a second access,
Or
After performing the first access for reading or writing data to the memory by designating the physical address, the virtual address corresponding to the physical address is designated and data is read from the memory Performing a second access;
Wherein the processor comprises the steps of: determining the the read or written data in the first access, whether said second read data in the access match,
A plurality of time partitions including a control related time partition for controlling a control target and executing a control related task for reading or writing data to or from the memory by designating the virtual address in accordance with the control target Scheduling and executing the control-related task according to scheduling information indicating the scheduling content of
When the processor switches the time partition to the control related time partition, the processor performs the determination on a virtual address accessed by a control related task executed in the control related time partition.
An operation check method of the memory management device.
前記プロセッサが、The processor is
前記仮想アドレスを指定して前記メモリに対してデータの書き込みを行う第1のアクセスを実施した後、当該仮想アドレスに対応する物理アドレスを指定して前記メモリに対してデータの読み出しを行う第2のアクセスを実施するとともに、前記物理アドレスを指定して前記メモリに対してデータの書き込みを行う第3のアクセスを実施した後、当該物理アドレスに対応する仮想アドレスを指定して前記メモリに対してデータの読み出しを行う第4のアクセスを実施するか、After performing the first access for writing the data to the memory by designating the virtual address, the second for reading the data from the memory by designating the physical address corresponding to the virtual address And performing a third access for writing data to the memory by designating the physical address, and then designating a virtual address corresponding to the physical address to the memory. Perform a fourth access to read data, or
又は、Or
前記物理アドレスを指定して前記メモリに対してデータの書き込みを行う第1のアクセスを実施した後、当該物理アドレスに対応する仮想アドレスを指定して前記メモリに対してデータの読み出しを行う第2のアクセスを実施するとともに、前記仮想アドレスを指定して前記メモリに対してデータの書き込みを行う第3のアクセスを実施した後、当該仮想アドレスに対応する物理アドレスを指定して前記メモリに対してデータの読み出しを行う第4のアクセスを実施するステップと、After performing the first access for writing data to the memory by designating the physical address, the second for reading data from the memory by designating a virtual address corresponding to the physical address And performing a third access for writing data to the memory by designating the virtual address, and then designating a physical address corresponding to the virtual address to the memory. Performing a fourth access for reading data;
前記プロセッサが、前記第1のアクセスにおいて書き込んだデータと、前記第2のアクセスにおいて読み出したデータが一致するか否か、及び、前記第3のアクセスにおいて書き込んだデータと、前記第4のアクセスにおいて読み出したデータが一致するか否かを判定するステップと、Whether the data written by the processor in the first access matches the data read in the second access, and the data written in the third access and in the fourth access Determining whether the read data matches; and
を備えたメモリ管理装置の動作確認方法。For checking the operation of a memory management device comprising:
前記プロセッサが、The processor is
前記仮想アドレスを指定して前記メモリに対してデータの読み出しを行う第1のアクセスを実施した後、当該仮想アドレスに対応する物理アドレスを指定して前記メモリに対してデータの読み出しを行う第2のアクセスを実施するか、After performing a first access for reading data from the memory by designating the virtual address, a second for reading data from the memory by designating a physical address corresponding to the virtual address Or access
又は、Or
前記物理アドレスを指定して前記メモリに対してデータの読み出しを行う第1のアクセスを実施した後、当該物理アドレスに対応する仮想アドレスを指定して前記メモリに対してデータの読み出しを行う第2のアクセスを実施するステップと、After performing a first access for reading data from the memory by designating the physical address, a second for reading data from the memory by designating a virtual address corresponding to the physical address Performing the access of
前記プロセッサが、前記第1のアクセスにおいて読み出したデータと、前記第2のアクセスにおいて読み出したデータが一致するか否かを判定するステップと、を備え、The processor determines whether the data read in the first access and the data read in the second access match,
前記メモリは、ROM(Read Only Memory)である、The memory is a ROM (Read Only Memory),
メモリ管理装置の動作確認方法。 An operation check method of the memory management device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011251605A JP5712907B2 (en) | 2011-11-17 | 2011-11-17 | Operation check method of control device, information processing device and memory management device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011251605A JP5712907B2 (en) | 2011-11-17 | 2011-11-17 | Operation check method of control device, information processing device and memory management device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013109392A JP2013109392A (en) | 2013-06-06 |
JP5712907B2 true JP5712907B2 (en) | 2015-05-07 |
Family
ID=48706114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011251605A Expired - Fee Related JP5712907B2 (en) | 2011-11-17 | 2011-11-17 | Operation check method of control device, information processing device and memory management device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5712907B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018206075A (en) * | 2017-06-05 | 2018-12-27 | 株式会社オートネットワーク技術研究所 | Processing device and computer program |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04338847A (en) * | 1991-05-16 | 1992-11-26 | Nec Ibaraki Ltd | Address conversion buffer diagnostic device |
JP5446447B2 (en) * | 2009-05-19 | 2014-03-19 | トヨタ自動車株式会社 | SAFETY CONTROL DEVICE AND SAFETY CONTROL METHOD |
-
2011
- 2011-11-17 JP JP2011251605A patent/JP5712907B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013109392A (en) | 2013-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5446447B2 (en) | SAFETY CONTROL DEVICE AND SAFETY CONTROL METHOD | |
US8706265B2 (en) | Safety controller and safety control method | |
US20070277023A1 (en) | Method For Switching Over Between At Least Two Operating Modes Of A Processor Unit, As Well Corresponding Processor Unit | |
US9632860B2 (en) | Multicore processor fault detection for safety critical software applications | |
US8880201B2 (en) | Safety controller and safety control method | |
US8756606B2 (en) | Safety controller and safety control method in which time partitions are scheduled according to a scheduling pattern | |
US20120198464A1 (en) | Safety controller and safety control method | |
EP2537091A1 (en) | Data processing method, data processor and apparatus including a data processor | |
JP6790686B2 (en) | Controls, control methods and programs | |
US20120245709A1 (en) | Safety controller and safety control method | |
JP5664530B2 (en) | Operation check method of control device and memory protection device | |
JP5834935B2 (en) | SAFETY CONTROL DEVICE AND SAFETY CONTROL METHOD | |
JP5845902B2 (en) | Information processing apparatus and memory access management method | |
JP5712907B2 (en) | Operation check method of control device, information processing device and memory management device | |
US11614988B2 (en) | Variable memory diagnostics | |
JP2013140476A (en) | Information processing device, access authority giving method, program generation device, and method therefor | |
JP2014211689A (en) | Safety control device and safety control method | |
JP5906584B2 (en) | Control apparatus and control method | |
JP6004057B2 (en) | Information processing apparatus and DMA controller operation check method | |
JP5811865B2 (en) | Control device and program execution method | |
JP5633501B2 (en) | Control apparatus and control method | |
JP5803689B2 (en) | Information processing apparatus and DMA controller operation check method | |
JP5699910B2 (en) | Control apparatus and control method | |
JP5853716B2 (en) | Information processing apparatus and task control method | |
JP5849731B2 (en) | Information processing apparatus and data storage method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140117 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140710 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140729 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140904 |
|
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: 20150210 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150223 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5712907 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |