JP5920595B2 - 電子機器、オペレーティングシステム、アクセス管理方法 - Google Patents

電子機器、オペレーティングシステム、アクセス管理方法 Download PDF

Info

Publication number
JP5920595B2
JP5920595B2 JP2013147733A JP2013147733A JP5920595B2 JP 5920595 B2 JP5920595 B2 JP 5920595B2 JP 2013147733 A JP2013147733 A JP 2013147733A JP 2013147733 A JP2013147733 A JP 2013147733A JP 5920595 B2 JP5920595 B2 JP 5920595B2
Authority
JP
Japan
Prior art keywords
operating system
gpio
access
register
rtos
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.)
Active
Application number
JP2013147733A
Other languages
English (en)
Other versions
JP2015022344A (ja
Inventor
一幸 小原
一幸 小原
克彦 鳥羽
克彦 鳥羽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yokogawa Electric Corp
Original Assignee
Yokogawa Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yokogawa Electric Corp filed Critical Yokogawa Electric Corp
Priority to JP2013147733A priority Critical patent/JP5920595B2/ja
Priority to EP14176470.4A priority patent/EP2827272B1/en
Priority to US14/331,414 priority patent/US9898420B2/en
Priority to CN201410337828.6A priority patent/CN104298623B/zh
Publication of JP2015022344A publication Critical patent/JP2015022344A/ja
Application granted granted Critical
Publication of JP5920595B2 publication Critical patent/JP5920595B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Description

本発明は、アドレス空間に配置されるデバイスのレジスタに対するアクセス保護を行なうメモリ保護ユニットを備えた電子機器、この電子機器で動作するオペレーティングシステムおよびアクセス管理方法に関する。
フィールド機器等の電子機器では、オペレーティングシステム上で動作しているプロセスが、アドレス空間にレジスタが配置されるデバイスを操作する処理が頻繁に行なわれる。ここでは、プロセスがGPIO(General Purpose Input/Output)を操作する処理の従来例について説明する。なお、GPIOは、汎用IOであり、ソフトウェアで任意に入出力を操作できる端子である。
図10は、マイクロコントローラ410とデバイス420を備えた電子機器400の要部構成例を示すブロック図である。本図に示すように、マイクロコントローラ410は、CPU CORE411とRAM412とMPU(Memory Protection Unit)413とGPIO414とを備えており、バス415を介して相互に接続されている。バス415には、デバイス420も接続されている。デバイス420は、記憶装置、センサ、入出力装置等、電子機器400の用途に応じた種々の装置を用いることができる。
CPU CORE411上では、RTOS(Real-Time Operating System)が動作しており、RTOS上で複数のプロセスが動作しているものとする。RTOSは、各プロセスに対して、プロセス管理やAPI(Application Programming Interface)経由で様々なサービスを提供する。
MPU413は、メモリ保護ユニットであり、アドレス空間に配置されたGPIO414等のレジスタへのアクセス保護を行なう。具体的には、プロセスからの依頼でRTOSがMPU413にアクセス権限を設定していれば、そのプロセスのアクセスを許可する。一方、アクセス権限が割り当てられていないプロセスに対しては、アクセス違反を検出して、アクセスを許可しない。なお、MPU413に代えて、MMU(Memory Management Unit)等のアクセス保護機能を備えた他のユニットを用いてもよい。
図11は、上記構成の電子機器において、RTOS430上で動作するプロセスがGPIO414を操作する手順について説明する図である。ここでは、プロセスa440a、プロセスb440bが独立したプログラムとしてRTOS430上で動作しているものとする。
また、GPIO414は、8ビット等の所定ビット数で区切られ、GPIO_A414aとGPIO_B414bの2つのグループとして扱われるものとする。ここでは、プロセスa440aがGPIO_A414aを操作し、プロセスb440bがGPIO_B414bを操作するとする。すなわち、GPIO_A414aをプロセスa440aの専用デバイスとして割り当て、GPIO_B414bをプロセスb440bの専用デバイスとして割り当てるようにする。
RTOS430が用意するAPIには、GPIO414を操作するためのレジスタであるGPIOレジスタへのアクセス権限の割り当てを依頼するためのAPI−1が含まれている。プロセスがGPIO414を操作するためには、事前に、API−1を利用してアクセス権限の割り当てを依頼する必要がある。この依頼に対してAPI−1は、MPU413を操作して、アクセス権限の設定を行なう。
本図の例では、プロセスa440aが、API−1経由でRTOS430に、GPIO_Aレジスタが存在するアドレス空間をプロセスa440aに割り当てるように依頼する(S1)。
RTOS430のAPI−1は、GPIO_Aレジスタへのアクセス権限が未設定であれば、GPIO_Aレジスタが存在するアドレス空間にプロセスa440a用のアクセス権限を設定する(S2)。図12は、MPU413において、GPIO_Aレジスタが存在するアドレス空間にプロセスa440a用のアクセス権限が設定された様子を示している。
この状態で、プロセスa440aについてGIPO_Aレジスタへのアクセス権限の設定があるため、MPU413は、プロセスa440aに対してGPIO_Aレジスタへのアクセスを許可する。このため、プロセスa440aは、GPIO_AレジスタにアクセスしてGPIO_A414aを操作することができる(S3)。
プロセスb440bも同様の手順により、GPIO_B414bを操作することができるようになる。一方、プロセスa440aが、GPIO_Bレジスタにアクセスした場合、アクセス権限が設定されていないため、MPU413により、アクセス違反が検出される。
なお、MPU413によるアドレス空間へのアクセス権限設定とアクセス制御は、GPIOレジスタのみならず、アドレス空間にレジスタが配置される種々のデバイス420に対しても行なうことができる。
μITRON4.0仕様 保護機能拡張 2.3.2 メモリオブジェクトのアクセス保護、4.1 メモリオブジェクト管理機能(p.113〜p.116)
上述のように、RTOS430が、プロセス440の依頼によりMPU413を操作することにより、アドレス空間に配置されたレジスタへのアクセス権限設定が行なわれる。そして、MPU413は、アクセス権限が設定されたプロセス440からのアクセスを許可する。
しかしながら、アドレス空間に配置されたレジスタへのアクセス管理は、ハードウェアであるMPU413の仕様により制限され、自由度は必ずしも高くない。これは、コスト、サイズ等について限られた資源でMPU413を実現するに当たり、複雑化を避けて機能を制限せざるを得ない場合等があるためである。
例えば、一般的にMPU413は、境界制限が定められており、アクセス権限を設定する場合の開始アドレスやサイズに制限がある。このため、アドレス空間におけるレジスタの配置とMPU413の境界制限によっては、図13に示すように、アクセス権の設定領域が、GPIO_AレジスタとGPIO_Bレジスタとにまたがってしまい、GPIO_A414aをプロセスa440aの専用デバイスとして割り当て、GPIO_B414bをプロセスb440bの専用デバイスとして割り当てるようなことができない場合がある。なお、MPU413に代えてMMUを用いた場合にもページ境界制限により同様の問題が生じる場合がある。
また、一般的にMPU413は、設定可能なアクセス権限の数に制限があり、各プロセスからのアクセス権限の割り当て要求に応えられない場合も起こり得る。
そこで、本発明は、アドレス空間に配置されるデバイスのレジスタに対するアクセス保護を行なうメモリ保護ユニットを備えた電子機器において、メモリ保護ユニットの制約を受けずアクセス管理の自由度を高めることを目的とする。
上記課題を解決するため、本発明の第1の態様である電子機器は、アドレス空間に配置されるデバイスのレジスタに対するアクセス保護を行なうメモリ保護ユニットを備え、オペレーティングシステムとプロセスとが動作する電子機器であって、前記オペレーティングシステムは、前記メモリ保護ユニットを利用して前記レジスタへのアクセス権限を設定し、前記プロセスは、前記デバイスを操作する際に、前記オペレーティングシステムに操作依頼を行ない、前記オペレーティングシステムが、前記操作依頼に従って対応するレジスタにアクセスして、前記デバイスの操作を実行することを特徴とする。
ここで、前記プロセスは、前記デバイスの操作に先立ち、前記オペレーティングシステムに前記デバイスの操作宣言を行ない、前記オペレーティングシステムは、操作宣言を行なっていないプロセスからの操作依頼には応じないようにすることができる。
このとき、前記オペレーティングシステムは、同一のデバイスに対して複数のプロセスが操作宣言を行なった場合、最先に宣言を行なったプロセスからの操作宣言を排他的に受け付けるようにしてもよい。
また、前記プロセスは、前記デバイスの処理単位で操作宣言を行ない、前記オペレーティングシステムは、前記デバイスの処理単位で前記デバイスの操作を実行するようにしてもよい。
また、前記デバイスは、汎用IOとすることができる。
上記課題を解決するため、本発明の第2の態様であるオペレーティングシステムは、アドレス空間に配置されるデバイスのレジスタに対するアクセス保護を行なうメモリ保護ユニットを備えた電子機器で動作するオペレーティングシステムであって、前記メモリ保護ユニットを利用して前記レジスタへのアクセス権限を設定し、オペレーティングシステム上で動作するプロセスから、前記デバイスの操作依頼を受け付けると、対応するレジスタにアクセスして、前記デバイスの操作を実行することを特徴とする。
上記課題を解決するため、本発明の第3の態様であるアクセス管理方法は、アドレス空間に配置されるデバイスのレジスタに対するアクセス保護を行なうメモリ保護ユニットを備え、オペレーティングシステムとプロセスとが動作する電子機器におけるアクセス管理方法であって、前記オペレーティングシステムが、前記メモリ保護ユニットを利用して前記レジスタへのアクセス権限を設定するステップと、前記プロセスが、前記デバイスを操作する際に、前記オペレーティングシステムに操作依頼を行なうステップと、前記オペレーティングシステムが、前記操作依頼に従って対応するレジスタにアクセスして、前記デバイスの操作を実行するステップと、を有することを特徴とする。
本発明によれば、アドレス空間に配置されるデバイスのレジスタに対するアクセス保護を行なうメモリ保護ユニットを備えた電子機器において、メモリ保護ユニットの制約を受けずアクセス管理の自由度を高めることができる。
マイクロコントローラとデバイスを備えた本実施形態の電子機器100の要部構成例を示すブロック図である。 RTOSの初期設定時の特徴的な動作を説明するフローチャートである。 RTOSの初期設定時の動作を模式的に説明する図である。 初期設定後のMPU113のアクセス権限を説明する図である。 第1実施例において、プロセスがGPIOを操作するときの動作を模式的に示す図である。 プロセスからの直接的な操作実行を拒絶する動作を模式的に示す図である。 第2実施例の動作を模式的に示す図である。 第3実施例の動作を模式的に示す図である。 第4実施例の動作を模式的に示す図である。 マイクロコントローラとデバイスを備えた電子機器の要部構成例を示すブロック図である。 RTOS上で動作するプロセスがGPIOにアクセスする手順について説明する図である。 MPUにおいて、GPIO_Aのレジスタが存在するアドレス空間にプロセスa用のアクセス権限が設定された様子を示す図である。 MPUの境界制限による問題点を説明する図である。
本発明の実施の形態について図面を参照して説明する。図1は、マイクロコントローラ110とデバイス120を備えた本実施形態の電子機器100の要部構成例を示すブロック図である。電子機器100は、例えば、フィールド機器とすることができる。本発明は、安全関連プロセスと非安全関連プロセスとが共存して動作している機能安全対応機器に特に効果的に適用することができるが、このようなフィールド機器に限られず種々の電子機器に適用することができる。
本図に示すように、マイクロコントローラ110は、CPU CORE111とRAM112とMPU(Memory Protection Unit)113とGPIO114とを備えており、バス115を介して相互に接続されている。バス115には、デバイス120も接続されている。デバイス120は、記憶装置、センサ、入出力装置等、電子機器100の用途に応じた種々の装置を用いることができる。
CPU CORE111上では、RTOS(Real-Time Operating System)が動作しており、RTOS上で複数のプロセスが動作しているものとする。RTOSは、各プロセスに対して、プロセス管理やAPI(Application Programming Interface)経由で様々なサービスを提供する。ただし、RTOSに代えて、一般的なOSを用いてもよい。
本実施形態の電子機器100は、従来の電子機器400と同様のハードウェアを用いて構成することができ、ソフトウェアであるRTOSとRTOS上で動作するプロセスに新たな機能を持たせるようにしている。このため、ハードウェアの設計変更等が不要となり、MPU113の制約を受けないアクセス管理を、コスト的に有利に実現することが可能である。
MPU113は、メモリ保護ユニットであり、アドレス空間に配置されたGPIO114等のレジスタへのアクセス保護を行なう。具体的には、MPU113にアクセス権限が設定されていれば、その依頼元からのアクセスを許可する。アクセス権限が設定されていない場合には、アクセス違反を検出して、アクセスを許可しない。なお、MPU113に代えて、MMU(Memory Management Unit)等のアクセス保護機能を備えた他のユニットを用いてもよい。
<第1実施例>
上記構成の電子機器100において、RTOS130上で動作するプロセスがGPIO114を操作する手順の第1実施例について説明する。ここでは、プロセスa140a、プロセスb140bが独立したプログラムとしてRTOS130上で動作しており、GPIO114は、8ビット等の所定ビット数で区分けられ、GPIO_A114aとGPIO_B114bの2つのグループとして扱われるものとする。
図2は、RTOS130の初期設定時の特徴的な動作を説明するフローチャートであり、図3は、初期設定時の動作を模式的に示す図である。後の実施例でも共通するが、第1実施例では、起動時等の初期設定において、RTOS130がGPIO114の情報を取得し(S101)、MPU113を操作して、各GPIOレジスタが存在するアドレス空間に、RTOS130用のアクセス権を設定する(S102)。
この結果、初期設定後のMPU113のアクセス権は、図4に示すように、GPIO_Aレジスタ、GPIO_BレジスタともRTOS用に設定される。なお、GPIO114に加えて、プロセスの操作対象となるデバイス120の情報も収集して、デバイス120のレジスタが割り当てられたアドレス空間にRTOS130用のアクセス権を設定するようにしてもよい。
図5は、第1実施例において、プロセス140がGPIO114を操作するときの動作を模式的に示す図である。第1実施例では、RTOS130は、プロセス140からGPIOの操作依頼を受け付け、GPIOの操作を実行するAPI−aを用意している。
プロセスa140aがGPIO_A114aを操作する場合には、API−aを使用して、GPIO_Aの操作を依頼する(S103)。このように、第1実施例では、プロセス140は、RTOS130に対して、アクセス権限割り当て依頼は行なわない。また、直接GPIO_Aの操作は行なわず、API−aを使用して、GPIO_Aの操作を依頼する。この段階で、プロセスa140aの実行中からRTOS130実行中にアクセス権限の設定が切り替わる。
そして、API−aが、依頼に従ってGPIO_Aレジスタにアクセスし、GPIO_A114aを操作する(S104)。このとき、RTOS130についてGIPO_Aレジスタへのアクセス権限の設定があるため、MPU113は、RTOS130のGPIO_Aレジスタへのアクセスを許可する。
なお、プロセスa140aあるいはプロセスb140bが、直接GPIO_Aレジスタにアクセスしようとすると、アクセス権限が設定されていないため、図6に示すように、MPU113によりアクセス違反として検出される。
このように、第1実施例によれば、個々のプロセス140に対してアクセス権限を割り当てるのではなく、RTOS130が一括してアクセス権限を設定し、プロセス140からの操作依頼に基づいてGPIOレジスタにアクセスする。このため、境界制限や設定可能なアクセス権限数の制限によるMPU113の制約を受けず、アクセス管理の自由度を高めることができる。
<第2実施例>
電子機器100において、RTOS130上で動作するプロセスがGPIO114を操作する手順の第2実施例について説明する。図7は、第2実施例の動作を模式的に示す図である。図7(a)に示すように、第2実施例においても、第1実施例と同様に、RTOS130がGPIO114の情報を取得し、MPU113を操作して、各GPIOレジスタが存在するアドレス空間に、RTOS130用のアクセス権を設定する(S201)。
そして、プロセスa140aがGPIO_A114aを操作する場合には、図7(b)に示すように、あらかじめ、RTOS130に対して、GPOP_A114aの操作宣言を行なう(S202)。RTOS130には、この操作宣言を受け付けるためのAPI−cが用意されている。
また、RTOS130は、操作宣言を行なっているプロセス140からGPIO114の操作依頼を受け付け、GPIO114の操作を実行するAPI−bを用意している。API−bは、操作依頼を行なったプロセス140が、そのGPIO114の操作宣言を行なっていない場合には、GPIO114の操作を実行しない。
プロセスa140aがGPIO_A114aを操作する場合には、図7(c)に示すように、API−bを使用して、GPIO_A114aの操作を依頼する(S203)。プロセスa140aは、GPIO_A114aの操作宣言を行なっているため、API−bは、依頼に従ってGPIO_Aレジスタにアクセスし、GPIO_A114aを操作する(S204)。このとき、RTOS130についてGIPO_Aレジスタへのアクセス権限の設定があるため、MPU113は、RTOS130のGPIO_Aレジスタへのアクセスを許可する。
一方、図7(d)に示すように、API−bは、GPIO_A114aの操作宣言を行なっていないプロセスb140bからGPIO_A114aの操作依頼を受け付けた場合には、GPIO_Aレジスタへのアクセスは行なわず、GPIO_A114aの操作は行なわない。
このように、第2実施例によれば、境界制限や設定可能なアクセス権限数の制限によるMPU113の制約を受けないことに加え、操作宣言を行なったプロセス140からの操作依頼に対してのみ操作を実行することにより、プロセス140毎にアクセス可能なGPIO114を制限することができるため、アクセス管理の自由度がさらに高められる。
<第3実施例>
電子機器100において、RTOS130上で動作するプロセスがGPIO114を操作する手順の第3実施例について説明する。図8は、第3実施例の動作を模式的に示す図である。図8(a)に示すように、第3実施例においても、第1実施例と同様に、RTOS130がGPIO114の情報を取得し、MPU113を操作して、各GPIOレジスタが存在するアドレス空間に、RTOS130用のアクセス権を設定する(S301)。
そして、第2実施例と同様に、プロセスa140aがGPIO_A114aを操作する場合には、図8(b)に示すように、あらかじめ、RTOS130に対して、GPOP_A114aの操作宣言を行なう(S302)。第3実施例では、RTOS130には、この操作宣言を受け付けるためのAPI−dが用意されている。
ここで、API−dは、同一のGPIO114に対しては、先に操作宣言をしたプロセス140に独占的に操作権限を与え、後から宣言した他のプロセス140からの操作宣言を拒否する。すなわち、操作権限の排他制御を行なう。
このため、図8(c)に示すように、他のプロセスがGPIO_B114bに対する操作宣言を行なっていない状態で、プロセスb140bがGPIO_B114bに対する操作宣言を行なうと、プロセスb140bに対してGPIO_B114bの独占的な操作権限を与える。
一方、図8(d)に示すように、プロセスa140aがGPIO_A114aに対する操作宣言を行なっている状態で、プロセスb140bがGPIO_A114aに対する操作宣言を行なうと、プロセスb140bからの操作宣言を拒否する。
操作宣言を行なったプロセス140がGPIO114を操作する手順については第2実施例と同様である。すなわち、RTOS130は、第2実施例と同様に、操作宣言を行なっているプロセス140からGPIO114の操作依頼を受け付け、GPIO114の操作を実行するAPI−bを用意している。API−bは、操作依頼を行なったプロセス140が、そのGPIO114の操作宣言を行なっていない場合には、GPIO114の操作を実行しない。
このように、第3実施例によれば、境界制限や設定可能なアクセス権限数の制限によるMPU113の制約を受けないことに加え、最先に操作宣言を行なったプロセス140からの操作依頼を独占的に受け付けることにより、プロセス140毎にアクセス可能なGPIO114を制限することができるため、アクセス管理の自由度がさらに高められる。
<第4実施例>
電子機器100において、RTOS130上で動作するプロセスがGPIO114を操作する手順の第4実施例について説明する。図9は、第4実施例の動作を模式的に示す図である。図9(a)に示すように、第4実施例においても、第1実施例と同様に、RTOS130がGPIO114の情報を取得し、MPU113を操作して、各GPIOレジスタが存在するアドレス空間に、RTOS130用のアクセス権を設定する(S401)。
そして、第2実施例と同様に、プロセスa140aがGPIO_A114aを操作する場合には、図9(b)に示すように、あらかじめ、RTOS130に対して、GPIO_A114aの操作宣言を行なう(S402)。
一般に、GPIOは、8ビット幅等の単位でまとめて扱われており、従来、上記の実施例ともこのまとめられた単位でGPIO114の操作を行なうようになっていたが、第4実施例では、操作宣言の際に対象とするGPIO114をビット単位で指定できるようになっている。このため、RTOS130には、ビット単位の操作宣言を受け付けるためのAPI−fが用意されている。
例えば、プロセスa140aは、ビット0〜ビット7の8ビットで構成されるGPIO_A114aについて、ビット1に対して操作宣言を行なうことができる。操作宣言は任意のビットを指定することができ、宣言対象のビット数は複数個であってもよい。また、ビット単位に限られず、チャネル等のデバイスの処理単位で操作宣言を行なえるようにしてもよい。
さらに、第4実施例では、RTOS130は、プロセス140からGPIOのビット単位の操作依頼を受け付け、GPIO114の操作をビット単位で実行するAPI−eを用意している。
プロセスa140aが、操作宣言を行なったGPIO_A114aのビット1を操作する場合には、図9(c)に示すように、API−eを使用して、GPIO_A114aのビット1の操作を依頼する(S403)。この段階で、プロセスa140aの実行中からRTOS130実行中にアクセス権限の設定が切り替わる。
そして、API−eが、依頼に従ってGPIO_Aレジスタにアクセスし、GPIO_A114aのビット1の操作を実行する(S404)。なお、図9(d)に示すように、プロセスa140aが、例えば、GPIO_A114aのビット7の操作を依頼した場合には、ビット7に対する操作宣言は行なっていないので、API−eは、GPIO_Aレジスタへのアクセスは行なわず、GPIO_A114aのビット7の操作は行なわない。
このように、第4実施例によれば、境界制限や設定可能なアクセス権限数の制限によるMPU113の制約を受けないことに加え、ビット単位の操作宣言を行なったプロセス140からの操作依頼に対してのみ、そのビットに対する操作を実行することにより、貴重なGPIO資源を有効に活用することができ、アクセス管理の自由度がさらに高められる。
なお、各実施例は任意の組み合わせで実現することができる。例えば、第3実施例と第4実施例とを組み合わせて、ビット単位で排他的なアクセス管理を行なうようにしてもよい。
100…電子機器、110…マイクロコントローラ、111…CPU…CORE、112…RAM、113…MPU、114…GPIO、115…バス、120…デバイス、130…RTOS、140…プロセス、400…電子機器、410…マイクロコントローラ、411…CPU…CORE、412…RAM、413…MPU、414…GPIO、415…バス、420…デバイス、430…RTOS、440…プロセス

Claims (7)

  1. アドレス空間に配置されるデバイスのレジスタに対するアクセス保護を行なうメモリ保護ユニットを備え、オペレーティングシステムとプロセスとが動作する電子機器であって、
    前記オペレーティングシステムは、前記メモリ保護ユニットを利用して前記オペレーティングシステム用の前記レジスタへのアクセス権限を設定し、
    前記プロセスは、前記デバイスを操作する際に、前記オペレーティングシステムに操作依頼を行ない、前記オペレーティングシステムが、前記操作依頼に従って対応するレジスタにアクセスして、前記デバイスの操作を実行することを特徴とする電子機器。
  2. 前記プロセスは、前記デバイスの操作に先立ち、前記オペレーティングシステムに前記デバイスの操作宣言を行ない、
    前記オペレーティングシステムは、操作宣言を行なっていないプロセスからの操作依頼には応じないことを特徴とする請求項1に記載の電子機器。
  3. 前記オペレーティングシステムは、同一のデバイスに対して複数のプロセスが操作宣言を行なった場合、最先に宣言を行なったプロセスからの操作宣言を排他的に受け付けることを特徴とする請求項2に記載の電子機器。
  4. 前記プロセスは、前記デバイスの処理単位で操作宣言を行ない、
    前記オペレーティングシステムは、前記デバイスの処理単位で前記デバイスの操作を実行することを特徴とする請求項2または3に記載の電子機器。
  5. 前記デバイスは、汎用IOであることを特徴とする請求項1〜4のいずれか1項に記載の電子機器。
  6. アドレス空間に配置されるデバイスのレジスタに対するアクセス保護を行なうメモリ保護ユニットを備えた電子機器で動作するオペレーティングシステムであって、
    前記メモリ保護ユニットを利用して前記オペレーティングシステム用の前記レジスタへのアクセス権限を設定し、
    オペレーティングシステム上で動作するプロセスから、前記デバイスの操作依頼を受け付けると、対応するレジスタにアクセスして、前記デバイスの操作を実行することを特徴とするオペレーティングシステム。
  7. アドレス空間に配置されるデバイスのレジスタに対するアクセス保護を行なうメモリ保護ユニットを備え、オペレーティングシステムとプロセスとが動作する電子機器におけるアクセス管理方法であって、
    前記オペレーティングシステムが、前記メモリ保護ユニットを利用して前記オペレーティングシステム用の前記レジスタへのアクセス権限を設定するステップと、
    前記プロセスが、前記デバイスを操作する際に、前記オペレーティングシステムに操作依頼を行なうステップと、
    前記オペレーティングシステムが、前記操作依頼に従って対応するレジスタにアクセスして、前記デバイスの操作を実行するステップと、を有することを特徴とするアクセス管理方法。
JP2013147733A 2013-07-16 2013-07-16 電子機器、オペレーティングシステム、アクセス管理方法 Active JP5920595B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2013147733A JP5920595B2 (ja) 2013-07-16 2013-07-16 電子機器、オペレーティングシステム、アクセス管理方法
EP14176470.4A EP2827272B1 (en) 2013-07-16 2014-07-10 Electronic device, operating system and access control method
US14/331,414 US9898420B2 (en) 2013-07-16 2014-07-15 Electronic device, operating system and access control method for protection of a register through an application programming interface
CN201410337828.6A CN104298623B (zh) 2013-07-16 2014-07-16 电子装置、操作系统以及访问控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013147733A JP5920595B2 (ja) 2013-07-16 2013-07-16 電子機器、オペレーティングシステム、アクセス管理方法

Publications (2)

Publication Number Publication Date
JP2015022344A JP2015022344A (ja) 2015-02-02
JP5920595B2 true JP5920595B2 (ja) 2016-05-18

Family

ID=51211037

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013147733A Active JP5920595B2 (ja) 2013-07-16 2013-07-16 電子機器、オペレーティングシステム、アクセス管理方法

Country Status (4)

Country Link
US (1) US9898420B2 (ja)
EP (1) EP2827272B1 (ja)
JP (1) JP5920595B2 (ja)
CN (1) CN104298623B (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014210481A1 (de) * 2014-06-03 2015-12-03 Siemens Aktiengesellschaft Informationsanzeige zu durch Fenster sichtbaren, bewegten Objekten
JP6619690B2 (ja) * 2016-05-19 2019-12-11 日本電信電話株式会社 処理装置、アクセス制御システム、アクセス制御方法およびアクセス制御プログラム
US10387336B2 (en) * 2017-03-24 2019-08-20 Micron Technology, Inc. Memory protection based on system state
CN111984538A (zh) * 2020-08-24 2020-11-24 深圳市捷诚技术服务有限公司 系统信息的输出方法、装置、计算机可读存储介质及终端
CN111949995B (zh) * 2020-08-25 2021-07-16 海光信息技术股份有限公司 安全管理硬件资源的主机cpu架构系统和方法
CN112463263A (zh) * 2020-12-03 2021-03-09 北京元心科技有限公司 程序运行方法、装置、电子设备及计算机可读存储介质

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0581045A (ja) * 1991-09-19 1993-04-02 Daikin Ind Ltd ハードウエア・レジスタ・アクセス方法およびその装置
JPH06250964A (ja) * 1993-02-26 1994-09-09 Kobe Steel Ltd 制御装置
JP3082701B2 (ja) * 1997-03-14 2000-08-28 日本電気株式会社 メモリ保護装置およびメモリ保護方法
JP2003044297A (ja) * 2000-11-20 2003-02-14 Humming Heads Inc コンピュータリソースの制御を行なう情報処理方法および装置、情報処理システム及びその制御方法並びに記憶媒体、プログラム
US7493498B1 (en) * 2002-03-27 2009-02-17 Advanced Micro Devices, Inc. Input/output permission bitmaps for compartmentalized security
US7380039B2 (en) * 2003-12-30 2008-05-27 3Tera, Inc. Apparatus, method and system for aggregrating computing resources
JP4756603B2 (ja) * 2006-10-10 2011-08-24 ルネサスエレクトロニクス株式会社 データプロセッサ
US20080162866A1 (en) * 2006-12-28 2008-07-03 Siddiqi Faraz A Apparatus and method for fast and secure memory context switching
GB2448151B (en) * 2007-04-03 2011-05-04 Advanced Risc Mach Ltd Memory domain based security control within data processing systems
US8850154B2 (en) * 2007-09-11 2014-09-30 2236008 Ontario Inc. Processing system having memory partitioning
US8402229B1 (en) * 2008-02-14 2013-03-19 Nvidia Corporation System and method for enabling interoperability between application programming interfaces
US7895404B2 (en) * 2008-02-14 2011-02-22 Atmel Rousset S.A.S. Access rights on a memory map
JP2009223776A (ja) * 2008-03-18 2009-10-01 Univ Of Tsukuba 情報処理システム及び情報処理システム用プログラム並びにクライアント装置のアクセス制御方法
US8086822B2 (en) * 2008-05-30 2011-12-27 Vmware, Inc. In-place shadow tables for virtualization
JP5531476B2 (ja) * 2009-07-15 2014-06-25 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
US8301856B2 (en) 2010-02-16 2012-10-30 Arm Limited Restricting memory areas for an instruction read in dependence upon a hardware mode and a security flag
JP5473756B2 (ja) * 2010-04-27 2014-04-16 キヤノン株式会社 情報処理装置、その制御方法及びプログラム
JP2011248551A (ja) * 2010-05-26 2011-12-08 Nec Corp アクセス制御装置
GB2482700A (en) * 2010-08-11 2012-02-15 Advanced Risc Mach Ltd Memory access control
US9003402B1 (en) * 2010-12-15 2015-04-07 Symantec Corporation Method and system for injecting function calls into a virtual machine
CN102736983B (zh) 2011-04-14 2016-05-25 上海华虹集成电路有限责任公司 控制智能卡flash空间大小的方法
US8639895B2 (en) * 2011-07-14 2014-01-28 Freescale Semiconductor, Inc. Systems and methods for memory region descriptor attribute override
JP2013120430A (ja) * 2011-12-06 2013-06-17 Auto Network Gijutsu Kenkyusho:Kk 制御装置及びコンピュータプログラム
US9304730B2 (en) * 2012-08-23 2016-04-05 Microsoft Technology Licensing, Llc Direct communication between GPU and FPGA components
US9262136B2 (en) * 2013-11-07 2016-02-16 Netronome Systems, Inc. Allocate instruction and API call that contain a sybmol for a non-memory resource

Also Published As

Publication number Publication date
EP2827272A1 (en) 2015-01-21
CN104298623B (zh) 2018-03-02
US20150026425A1 (en) 2015-01-22
CN104298623A (zh) 2015-01-21
US9898420B2 (en) 2018-02-20
EP2827272B1 (en) 2021-09-08
JP2015022344A (ja) 2015-02-02

Similar Documents

Publication Publication Date Title
JP5920595B2 (ja) 電子機器、オペレーティングシステム、アクセス管理方法
KR102161448B1 (ko) 멀티 채널 메모리를 포함하는 시스템 및 그 동작 방법
EP1903443A1 (en) Bridge, processor unit, information processing apparatus and access control method
KR20170008141A (ko) 복수의 엑세스 모드를 지원하는 불휘발성 메모리를 포함하는 시스템 및 그것의 엑세스 방법
JP2016516228A (ja) システムオンチップ内のスレーブユニットへの、コントロール下でのアクセス方法および回路装置
CN113094700A (zh) 执行安全操作的系统以及系统执行安全操作的方法
US20140250540A1 (en) Dynamic resource sharing
US10198202B2 (en) Safe userspace device access for network function virtualization using an IOMMU to map supervisor memory to a reserved range of application virtual addresses
JP4656347B2 (ja) コンピュータ・システム
US8689288B2 (en) Apparatus and method for protecting system in virtualized environment
US20060212642A1 (en) Partition allocation method and computer system
KR101535792B1 (ko) 운영체제 구성 장치 및 방법
KR102044075B1 (ko) 메모리 오류 감지 방법
KR20050076702A (ko) 멀티프로세서 시스템에서의 데이터 전송 방법과, 그방법을 수행하는 멀티프로세서 및 프로세서
CN110929304A (zh) 一种基于risc-v的内存保护方法
KR20170112855A (ko) 스토리지 디바이스에서 논리 블록 어드레싱 액세스 퍼미션을 정의하는 방법 및 시스템
US20170344504A1 (en) Method for accessing a number of slave devices with registers by a master device over a network
US10481951B2 (en) Multi-queue device assignment for application groups
CN108229201B (zh) 数据处理设备和访问控制方法
JP6948039B2 (ja) コンピュータシステム
US20170249173A1 (en) Guest protection from application code execution in kernel mode
JP2007293639A (ja) アクセス制御方法、アクセス制御方法を用いた機器及びシステム
CN117272412B (zh) 中断控制寄存器保护方法、装置、计算机设备及存储介质
JP2019128711A (ja) 電子制御装置
CN109246079B (zh) 权限管理方法、系统、介质和电子设备

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150601

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151021

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151207

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: 20160316

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160329

R150 Certificate of patent or registration of utility model

Ref document number: 5920595

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250