JP5703505B2 - バスパーティション構造を備えるコンピュータ - Google Patents

バスパーティション構造を備えるコンピュータ Download PDF

Info

Publication number
JP5703505B2
JP5703505B2 JP2012228375A JP2012228375A JP5703505B2 JP 5703505 B2 JP5703505 B2 JP 5703505B2 JP 2012228375 A JP2012228375 A JP 2012228375A JP 2012228375 A JP2012228375 A JP 2012228375A JP 5703505 B2 JP5703505 B2 JP 5703505B2
Authority
JP
Japan
Prior art keywords
bus
access
code
master device
application
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
Application number
JP2012228375A
Other languages
English (en)
Other versions
JP2014081738A (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.)
WITZ CORPORATION
Nagoya University NUC
Tokai National Higher Education and Research System NUC
Original Assignee
WITZ CORPORATION
Nagoya University NUC
Tokai National Higher Education and Research System NUC
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 WITZ CORPORATION, Nagoya University NUC, Tokai National Higher Education and Research System NUC filed Critical WITZ CORPORATION
Priority to JP2012228375A priority Critical patent/JP5703505B2/ja
Publication of JP2014081738A publication Critical patent/JP2014081738A/ja
Application granted granted Critical
Publication of JP5703505B2 publication Critical patent/JP5703505B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)

Description

本発明は、バスパーティション構造を備えるコンピュータに関し、詳しくは、バス上のマスタデバイスによる実行中のアプリケーションの時間的動作への影響を防止するバスパーティション構造を備えるコンピュータに関する。
従来、コンピュータ上で実行されるアプリケーションの安全性を高めるための各種技術が知られている。例えば、ARM社のTrust Zone(登録商標)は、プロセッサだけでなく周辺デバイスの安全性を確保し、アプリケーションの保護を図っている(非特許文献1参照)。このTrust Zoneにおいては、周辺デバイス(マスタデバイス)やメモリの領域は、「Trust」又は「Non-Trust」に分類され、パーティショニングによって保護される。「Non-Trust」に割り付けられたマスタデバイスが「Trust」に割り付けられた周辺デバイスやメモリに対してアクセスを試みると例外が発生し、そのアクセスが中断されて保護される。この制御のため、Trust Zoneのハードウェアには、バスに1bitの信号が追加されている。この信号として、「Trust」に割り付けられたデバイスはバスをアクセスする時に「0」を出力し、「Non-Trust」に割り付けられたデバイスはアクセス時に「1」を出力する。バスを介してアクセスを受けたデバイスやメモリは、この信号をチェックして、自分が「Trust」に属しているにもかかわらず「Non-Trust」のデバイスからアクセスされた場合(信号が「1」の場合)には、そのアクセスを無視して例外を出力するように制御されている。
また、パーティショニングをサポートしたリアルタイムOS(RTOS)の代表的なものとして、航空機向けのOSであるARINC-653が知られている。
また、データ処理の増加に伴い、DMA等マスタデバイスによる転送量が増大し、リアルタイム性を保証することが困難になってきている。このため、バスの混雑具合に応じてDMA転送数を抑制するバス調停装置も知られている。更に、CPUのリアルタイム性を保証するため、特定のマスタからの要求を低レイテンシ(遅延時間)でスレーブに伝送すると共に、他のマスタに必要な帯域を確保するバス調停装置が開示されている(特許文献1参照)。このバス調停装置では、特定のマスタからの要求を他のマスタからの要求に比べて高い優先度で受け付ける調停部と、マスタの要求を監視する監視部が備えられ、複数のマスタの要求が滞留している場合に前記他のマスタからの要求が減るように抑制される。しかし、このようなバス調停技術は、標準的なアーキテクチャを基礎としている小型システムに適用することが困難である。
特開2011−150397号
ARM1176JZ-S Technical Reference Manual,ARM Limited.
近年、部品の故障や誤操作があった場合にも安全性を確保する機能安全が求められている。例えば、自動車分野では機能安全規格ISO26262が定められており、車載機器に搭載するソフトウェアは要求される安全度水準(SIL)で開発する必要がある。しかし、複雑なシステムにおいて、システム内のすべてのソフトウェアを同一のレベルの高いSILで開発するのは困難である。そこで、ソフトウェアを複数のアプリケーションに分割し、それらの間をプロセッサの保護機能により保護(パーティショニング)する手法が用いられる。パーティショニング技術によって、アプリケーションプログラム毎に異なるSILで開発することが可能となる。パーティショニングの手法では、それぞれのアプリケーションにメモリ領域やデバイスが割り当てられる。アプリケーションの実行時には、他のアプリケーションに割り当てられたリソースを侵害しないように、保護機能に対応したリアルタイムOSがプロセッサの保護機能を用いてアプリケーション間を保護する(図9参照)。
しかしながら、アプリケーションがDMAコントローラやGPU等のマスタデバイスを使用する場合、あるアプリケーションが動作している間に予定外のマスタデバイスが動作すると、動作しているアプリケーションの時間的振る舞いに影響を与えてしまう(マスタデバイスのバス帯域違反)。
システム上の複数のアプリケーションは、それぞれの時間パーティショニングのため、プロセッサの時間を分割して割り当てられ、パーティショニングをサポートしたRTOSにより切り替えられてプロセッサ上で実行される。例えば、図10は、アプリケーション1及びアプリケーション2が、一定のシステムサイクル(100μs)で実行される場合を表している。1つのシステムサイクルはタイムウィンドウ1及び2(各50μs)に分割され、タイムウィンドウ1においてアプリケーション1が実行され、タイムウィンドウ2においてアプリケーション2が実行される。アプリケーション1の実行とアプリケーション2の実行は、ハードウェアタイマーを用いてRTOSによって切り替えられ、各アプリケーションを構成するタスクが実行される。各アプリケーションがプロセッサ上で演算等の処理をしたり、タイマー等のスレーブデバイスを使用したりする限りは、従来の保護方法で時間パーティショニングが維持される。しかしながら、アプリケーションにマスタデバイスが割り付けられている場合には、マスタデバイスのバス帯域違反が発生する。図10に示す例において、アプリケーション1にはマスタデバイス(DMA1)が割り付けられている。DMA1はプロセッサの代わりにメモリ転送を行うため、DMA1が動作するとプロセッサとの間でバスの競合が発生し、プロセッサの実行性能が悪化する。アプリケーション1の動作中にDMA1をスタートさせ、タイムウィンドウ1内でDMA1の転送処理が終了する場合には、アプリケーション2に対する時間的な影響はない。しかし、図示するように、DMA1を実行させるタイミングが遅く、アプリケーション2に切り替わってもDMA1の転送が終了していないと、アプリケーション2の処理が遅れてしまう。つまり、マスタデバイスの動作が他のアプリケーションに対して時間的な影響を与えてしまう(バス帯域違反)という問題が発生する。なお、DMA1が正しいメモリ領域へアクセスしている限り、前記Trust Zoneによるメモリパーティショニングには違反しない。
本発明は、上記のような問題に鑑み、バス上のマスタデバイスによる実行中のアプリケーションの時間的動作への影響を防止することができる、バスパーティション構造を備えるコンピュータを提供することを目的とする。
本発明は、以下のとおりである。
1.オペレーティングシステム上で複数のアプリケーションプログラムを切り替えてプロセッサに実行させる処理部と、少なくとも1つのマスタデバイスと、前記処理部及び前記マスタデバイスが接続されたバスと、前記バスを調停するバスコントローラとを備えるコンピュータであって、前記オペレーティングシステム及び各前記アプリケーションプログラムには、それらのうちのいずれであるかを識別するための識別符号がそれぞれ与えられており、各前記マスタデバイスには該マスタデバイスの属する前記オペレーティングシステム又は前記アプリケーションプログラムの前記識別符号が格納され、前記プロセッサにより実行中の前記オペレーティングシステム又は前記アプリケーションプログラムの前記識別符号を実行中符号として前記バスに送出する実行中符号送出手段と、前記バスを要求する前記マスタデバイスが自己に格納されている前記識別符号をアクセス符号として前記バスに送出するアクセス符号送出手段と、前記バスを介して受信された前記実行中符号に応じて、前記バスを介して受信された前記アクセス符号で識別される前記マスタデバイスによる前記バスのアクセス制限を判断するアクセス判断手段と、を備え、前記バスコントローラは、前記アクセス判断手段により判断されたアクセス制限に基づいて、当該マスタデバイスによる前記バスのアクセスを制御することを特徴とする、バスパーティション構造を備えるコンピュータ。
2.前記実行中符号送出手段は、前記実行中符号を格納する実行中符号レジスタを備え、前記アクセス符号送出手段は、各前記マスタデバイスに具備され該マスタデバイスの属するアプリケーションプログラムの識別符号を格納するアクセス符号レジスタを備え、前記オペレーティングシステムは、前記コンピュータの起動時に各前記アクセス符号レジスタに当該マスタデバイスが属するアプリケーションプログラムの識別符号を格納し、前記アプリケーションプログラムを切り替える際に、次に実行するアプリケーションプログラムに対応して前記実行中符号レジスタの内容を書き換える、前記1.記載のバスパーティション構造を備えるコンピュータ。
3.前記バスには少なくとも1つのスレーブデバイスが接続されており、
各前記スレーブデバイスは、自己の属するアプリケーションプログラムの識別符号と前記バスに送出された前記アクセス符号とが所定の条件を満たす場合のみに当該マスタデバイスによるアクセスに応答するように制御する応答制御手段を備える、前記1.又は2.に記載のバスパーティション構造を備えるコンピュータ。
4.前記応答制御手段は、各前記スレーブデバイスに具備され該スレーブデバイスの属するアプリケーションプログラムの識別符号を所属符号として格納する所属符号レジスタを備え、前記オペレーティングシステムは、前記コンピュータの起動時に各前記所属符号レジスタに当該スレーブデバイスが属するアプリケーションプログラムの識別符号を格納する、前記3.記載のバスパーティション構造を備えるコンピュータ。
5.前記バスには少なくとも1つのスレーブデバイスが接続されており、各前記スレーブデバイスには該スレーブデバイスの属するアプリケーションプログラムの識別符号が格納され、前記バスに送出されている実行中符号が前記オペレーティングシステムの識別符号であるときのみに、各前記マスタデバイス及び各前記スレーブデバイスそれぞれ格納されている前記識別符号の前記プロセッサによる書き換え可能とする所属符号保護手段を備える、前記1.記載のバスパーティション構造を備えるコンピュータ。
本発明のバスパーティション構造を備えるコンピュータによれば、オペレーティングシステム(OS)上で複数のアプリケーションプログラムを切り替えてプロセッサに実行させる処理部と、少なくとも1つのマスタデバイスと、処理部及びマスタデバイスが接続されたバスと、バスを調停するバスコントローラとを備えるコンピュータであって、OS及び各アプリケーションプログラムには、それらのうちのいずれであるかを識別するための識別符号(ID)がそれぞれ与えられており、各マスタデバイスには該マスタデバイスの属するオペレーティングシステム又はアプリケーションプログラムの識別符号(ID)が格納され、プロセッサにより実行中のオペレーティングシステム又はアプリケーションプログラムのIDを実行中符号(実行中ID)としてバスに送出する実行中符号送出手段と、バスを要求するマスタデバイスが自己に格納されているIDをアクセス符号(アクセスID)としてバスに送出するアクセス符号送出手段と、バスを介して受信された実行中IDに応じて、バスを介して受信されたアクセス符号で識別されるマスタデバイスによるバスのアクセス制限(バスのアクセス許可又は禁止、バースト転送の禁止、優先度の変更等)を判断するアクセス判断手段と、を備えるため、実行するアプリケーションプログラムが切り替えられたとき、それまでに実行されていたアプリケーションプログラムによって作動されたマスタデバイスに対して、継続してバスを使用させるか否か、バスの使用に条件を課すか否か等の判断をすることができる。この判断は、アプリケーションプログラムの優先度や時間的制約に基づいてされるように設定することができる。そして、バスコントローラは、アクセス判断手段により判断されたアクセス制限に基づいて当該マスタデバイスによるバスのアクセスを制御するため、切り替え後のアプリケーションプログラムの優先度が高い場合や時間的制約が厳しい場合等には、それまでバスを使用していたマスタデバイスに対してバスのアクセスを禁止等することができる。以上のようなバスパーティション構造によって、アプリケーションプログラム切り替え後のマスタデバイスのバス帯域違反を防止し、次に実行するアプリケーションプログラムの時間的な振る舞いに影響を与えないようにすることが可能になる。また、本バスパーティション構造は簡単な構成であるため、標準的なアーキテクチャにより構成される組込みシステムに容易に適用することが可能である。
前記実行中符号送出手段は、実行中IDを格納する実行中符号レジスタ(実行中IDレジスタ)を備え、前記アクセス符号送出手段は、各マスタデバイスに具備され該マスタデバイスの属するアプリケーションプログラムのIDを格納するアクセス符号レジスタ(アクセスIDレジスタ)を備え、OSは、コンピュータの起動時に各アクセスIDレジスタに当該マスタデバイスが属するアプリケーションプログラムのIDを格納し、アプリケーションプログラムを切り替える際に、次に実行するアプリケーションプログラムに対応して実行中IDレジスタの内容を書き換える場合には、OSはシステム起動時に各アプリケーションプログラムに属するマスタデバイスを初期設定し、実行するアプリケーションプログラムのIDを実行中IDレジスタに格納することによって、当該アプリケーションプログラムの処理に必要なマスタデバイスの作動を許可し、その他のマスタデバイスの作動を制限することができる。また、実行中符号送出手段及びアクセス符号送出手段を簡素な構成とすることができる。
前記バスには少なくとも1つのスレーブデバイスが接続されており、各スレーブデバイスは、自己の属するアプリケーションプログラムのIDとバスに送出されたアクセスIDとが所定の条件を満たす場合のみに当該マスタデバイスによるアクセスに応答するように制御する応答制御手段を備えるときには、実行中のアプリケーションプログラムにおいて使用するスレーブデバイスを当該アプリケーションプログラムに属するスレーブデバイスとしておくことにより、所定のマスタデバイスからのアクセスのみに応答するようにすることができる。
前記応答制御手段は、各スレーブデバイスに具備され該スレーブデバイスの属するアプリケーションプログラムのIDを所属符号(所属ID)として格納する所属符号レジスタ(所属IDレジスタ)を備え、OSは、コンピュータの起動時に各所属IDレジスタに当該スレーブデバイスが属するアプリケーションプログラムのIDを格納する場合には、OSはシステム起動時に各アプリケーションプログラムに属するスレーブデバイスを初期設定し、実行するアプリケーションプログラムの処理に必要なスレーブデバイスのみの作動が許可されるようにしておくことができる。また、応答制御手段を簡素な構成とすることができる。
前記バスには少なくとも1つのスレーブデバイスが接続されており、各スレーブデバイスには該スレーブデバイスの属するアプリケーションプログラムの識別符号(ID)が格納され、前記バスに送出されている実行中IDがOSのIDであるときのみに、各マスタデバイス及び各スレーブデバイスそれぞれ格納されている識別符号の前記プロセッサによる書き換え可能とする所属符号保護手段を備える場合には、実行されるアプリケーションプログラムに対応するマスタデバイス及びスレーブデバイスをOSのみが設定でき、不測の書き換えを防止することができる。
本発明について、本発明による典型的な実施形態の非限定的な例を挙げ、言及された複数の図面を参照しつつ以下の詳細な記述にて更に説明するが、同様の参照符号は図面のいくつかの図を通して同様の部品を示す。
本実施形態に係るバスパーティション構造を備えるコンピュータの構成を表わすブロック図である。 バスコントローラに備えられるアクセス制御表の例を表わす図である。 RTOS及びアプリケーションプログラムの識別符号、使用デバイス、優先度等を割当てた例を表わす図である。 実施例に係る構成を表わすブロック図である。 実施例に係るアクセス制御表を表わす図である。 実施例に係るアプリケーションプログラム1と2とが切り替えられて実行される動作を表すタイミングチャートである。 実施例に係るアプリケーションプログラム1がマスタデバイス1を動作させる例を表わすタイミングチャートである。 実施例において、本バスパーティション構造によりアプリケーションプログラム1が作動させたマスタデバイス1のアクセスを禁止する場合を表わすタイミングチャートである。 従来のコンピュータにおける保護(パーティショニング)構造を説明するための模式図である。 従来のコンピュータの保護構造においてバス帯域違反が生じる場合を説明するためのタイミングチャートである。
ここで示される事項は例示的なもの及び本発明の実施形態を例示的に説明するためのものであり、本発明の原理と概念的な特徴とを最も有効に且つ難なく理解できる説明であると思われるものを提供する目的で述べたものである。この点で、本発明の根本的な理解のために必要である程度以上に本発明の構造的な詳細を示すことを意図していない。
(バスパーティション構造を備えるコンピュータの構成)
本発明に係るバスパーティション構造は、OS上で複数のアプリケーションプログラム(以下、たんに「アプリケーション」という。)を切り替えてプロセッサに実行させる処理部(以下、「CPU」という。)と、少なくとも1つのマスタデバイスと、CPU及びマスタデバイスが接続されたバスと、前記バスを調停するバスコントローラとを備えるコンピュータにおいて構築される。
前記プロセッサ及び前記OSは特に限定されないが、アプリケーションによるメモリや入出力等のアクセス違反に対する保護機能を備えたものであることが好ましい。本発明のバスパーティション構造を備えるコンピュータは、その応用の目的は問わず、特に機器や装置、車両等において使用される組込みシステムに好適に用いることができる。このような組込みシステムにおいては実時間性が求められ場合が多く、一般にリアルタイムOSが用いられている(以下、OSをRTOSともいう)。
複数のアプリケーションの実行は、各アプリケーションの優先度に応じて、OSにより所定時間毎に又は所定の事象の生起等により切り替えられる。本バスパーティション構造はOSによる切り替え方式等は問わないが、以下では、一定の時間(タイムウィンドウ)毎にアプリケーションが切り替えられる場合を例として説明する。
複数のアプリケーションを、アプリケーション1、2、3等と呼ぶこととする。OS及び各アプリケーションを識別するために識別符号(ID)を与え、そのIDを「アプリケーションID」と呼ぶ。「アプリケーションID」にはOSのIDを含む。具体的なIDの構成は問わず、例えば、OSのIDを0x00、アプリケーション1のIDを0x01、アプリケーション2のIDを0x02、アプリケーション3のIDを0x04等とすることができる。1つのアプリケーションは、複数のタスクから構成されていてもよい。
上記IDやメモリアドレス等の数値は、16進表記で表している(以下同様)。
前記「バス」は、CPUを含む複数のマスタデバイスに適用できる限り、その構成、伝送方式、性能等を問わない。また、前記「バスコントローラ」は、前記バスの調停機能を備える限り、調停方式や構成、機能等を問わない。一般に、バス及びバスコントローラには、各マスタデバイスがバスの使用を要求するためのバス要求信号線と、バスコントローラがそのマスタデバイスにバスを許可するための応答信号線が備えられている。
前記「マスタデバイス」は、バスに接続されているスレーブデバイスをアクセスするデバイスであり、例えば、DMAコントローラ、グラフィックス処理ユニット(GPU)、別のCPU等が挙げられる。「スレーブデバイス」は、CPU及びマスタデバイスからアクセスされるメモリ、入出力等である。
本バスパーティション構造を備えるコンピュータは、前記プロセッサにより実行中のOS又はアプリケーションのIDを実行中符号(実行中ID)としてバスに送出する実行中符号送出手段と、バスを要求するマスタデバイスが自己の属するアプリケーションID(所属ID)をアクセス符号(アクセスID)としてバスに送出するアクセス符号送出手段と、バスを介して受信された実行中IDとアクセスIDとに応じて、実行中のアプリケーションにおける当該マスタデバイスによるバスのアクセス制限を判断するアクセス判断手段と、を備える。「アクセス制限」は、バスのアクセス可否の他、バースト転送の可否、優先度の変更等、バスの使用条件を含む。前記バスコントローラは、アクセス判断手段により判断されたアクセス制限に基づいて、当該マスタデバイスによる前記バスのアクセスを制御する。例えば、アクセス判断手段によりアクセス不可と判断されたときには、当該マスタデバイスに対してバスのアクセスを禁止するように構成される。
また、バスには少なくとも1つのスレーブデバイスが接続され、各スレーブデバイスは、自己の属するアプリケーションのID(所属ID)とバスに送出されたアクセスIDとが所定の条件を満たす場合のみに当該マスタデバイスによるアクセスに応答するように制御する応答制御手段を備えることができる。
OSは、コンピュータ(システム)が起動された後、アプリケーションを起動する前に、各マスタデバイス及び各スレーブデバイスに対して、それぞれの所属IDを初期設定するように構成することができる。また、OSは、自己の処理中は実行中IDをOSのIDとし、次に実行するアプリケーションを起動するときに、実行中IDを当該アプリケーションのIDとするように構成される。
上記に限らず必要な場合には、OSは、アプリケーションを切り替える際に、次に実行するアプリケーションに対応して、マスタデバイスやスレーブデバイスの所属IDを書き換えるようにすることもできる。この場合、次に実行するアプリケーションで使用されるマスタデバイス及びスレーブデバイスに対して、そのアプリケーションIDが所属IDとして設定される。
本バスパーティション構造においては、バスに送出されている実行中IDがOSのIDであるときのみに、各前記マスタデバイス及び各前記スレーブデバイスがそれぞれ属するアプリケーションの前記識別符号を書き換え可能とする所属符号保護手段を備えることができる。これによって、実行されるアプリケーションに対応するマスタデバイス及びスレーブデバイスをOSのみが設定でき、不測の書き換えを防止することができる。
以上の各手段は、ハードウェア及び/又はソフトウェアによって構成することができる。ハードウェア、ソフトウェアの具体的な構成や実装方法は特に限定されない。
図1は、本発明に係る実施形態の構成を示す。バスパーティション構造を備えるコンピュータ1は、プロセッサを搭載するCPU2、バス3、バスコントローラ4、2つのマスタデバイス5(5a、5b)、2つのスレーブデバイス6(6a、6b)、及びスレーブデバイスであるメモリ7を備えている。バス3には、実行中ID信号31及びアクセスID信号32が備えられる。実行中ID信号31及びアクセスID信号32の具体的な構成や数は、使用するIDに応じて定められればよい。この他、バス3上には、バスコントローラ4によってバスを調停するためのバス要求信号線及びそれに対する応答信号線等が設けられている(図示せず)。
CPU2に、実行するアプリケーションIDを格納するための実行中IDレジスタ21が備えられ、バス3に接続されている。実行中IDレジスタ21の具体的な構成や実装場所は問わない。実行中IDレジスタ21の内容はプロセッサ(OS)により書き込み可能であり、格納された内容はバス3上の実行中ID信号31に出力される。OSが処理を実行する間は、実行中IDレジスタ21にはOSのIDが格納される。以上により、実行中符号送出手段が構成される。
マスタデバイス5(5a、5b)内に、そのマスタデバイスの所属IDを格納するためのアクセスIDレジスタ51(51a、51b)が備えられており、アクセスIDレジスタ51はバス3に接続されている。アクセスIDレジスタ51の内容はOSにより書き換え可能であり、OSは、アプリケーション毎に使用するマスタデバイス5に対して、そのアプリケーションIDを所属IDとしてアクセスIDレジスタ51にセットする。アクセスIDレジスタ51にセットされた内容は、バス3上のアクセスID信号32に出力される。以上により、アクセス符号送出手段が構成される。なお、アクセスIDレジスタ51は、自デバイスの所属IDを格納する点で、スレーブデバイスに置かれる所属IDレジスタ61と同じである。
スレーブデバイス6(6a、6b)内に、そのスレーブデバイスの所属IDを格納するための所属IDレジスタ61(61a、61b)、及び応答制御部62(62a、62b)が備えられている。所属IDレジスタ61の内容は、OSにより書き換え可能に構成される。OSは、アプリケーション毎に使用するスレーブデバイス6に対して、そのアプリケーションIDを所属IDとして所属IDレジスタ61にセットする。また、応答制御部62は、所属IDレジスタ61に格納された内容とバス3上のアクセスID信号32とを読み取り可能に構成されている。応答制御部62は、所属IDレジスタ61の内容とアクセスID信号32の内容とが所定の条件に一致する場合にはバス3を介したアクセスを受入れ、所定の条件に一致しない場合にはアクセスを無視するように構成されている。前記所定の条件は適宜定められればよく、例えば、両者の論理積が0とならないこととすることができる。以上により、応答制御手段が構成される。
スレーブデバイスの別の形態として、メモリ7は、分割されたアドレス領域毎に、そのメモリ領域の所属IDを格納するための所属IDレジスタ71を備えて構成することができる。メモリ領域毎に応答制御手段が構成されることを除き、前記スレーブデバイス6と同様である。
バスコントローラ4には、バス3を介して受信された実行中ID信号31の値とアクセスID信号32の値とに応じて、実行中のアプリケーションにおけるマスタデバイス5によるバス3のアクセス可否を判断するアクセス判断手段を備える。判断手法は特に限定されず、例えば、実行中IDとアクセスIDとを対応させ、アプリケーションの優先度に基づいて設定されたアクセス制御表41を用いて判断するように構成することができる。アクセス制御表41をどこに実装するかは問わない。
図2は、アクセス制御表41の構成例を表している。表中の実行中IDは、実行中ID信号31の値、すなわちプロセッサが実行中のOS又はアプリケーションのIDを表す。また、表中のアクセスIDは、アクセスID信号32の値、すなわちバスを要求するマスタデバイス5の所属IDを表す。ここで、OSのIDは0x00、アプリケーション1のIDは0x01、アプリケーション2のIDは0x02、アプリケーション3のIDは0x04としている。本例では、OSに属するマスタデバイス(アクセスID=0x00)に対しては、いずれのプログラムを実行中であっても、バスのアクセス要求は許可されることとなる。また、アプリケーション2の実行中(実行中ID=0x02)であれば、アプリケーション2に属するマスタデバイス(アクセスID=0x02)からのバス要求は許可され、アプリケーション1に属するマスタデバイス(アクセスID=0x01)からのバス要求は禁止されることとなる。このように、アクセス判断手段はアクセス制御表41に基づいて、実行中ID信号31の値とアクセスID信号32の値に応じて、マスタデバイス5によるバスの使用可否を判断することができる。
図2に示したアクセス制御表41は、アクセス制限としてアクセス許可(0)又は禁止(X)のみを行う場合を示しているが、アクセス制限の内容は特に限定されない。アクセス制限は、アプリケーションの優先度、時間的制約の厳しさ等に従って設定されることが好ましい。アクセス制御表41は、アクセス許可・禁止の他、バースト転送の許可・禁止、優先度の変更等、必要なアクセス制限を判断可能とするように構成されればよい。また、アクセス制御表41の内容は、予め設定されたものでもよいし、OSによって書き換え可能とされてもよい。
本バスパーティション構造を備えるコンピュータ1には、バス3上の実行中ID信号31に送出されている実行中IDがOSのIDであるときのみに、アクセスIDレジスタ51及び所属IDレジスタ61の内容を書き換え可能とする所属符号保護手段を備えることが好ましい。所属符号保護手段の具体的な構成は特に限定されず、例えば、各アクセスIDレジスタ51及び各所属IDレジスタ61の書き込み部において実行中ID信号31の値を読み込み可能とし、その値がOSのIDである場合のみに書き換えるように構成することができる。
(バスパーティション構造を備えるコンピュータの動作及び制御方法)
図3〜8は、バスパーティション構造を備えるコンピュータ1の実施例を表しており、これらを参照して動作及び制御方法を説明する。
図3に示すように、本例ではRTOS上で3つのアプリケーションが切り替えられて動作するものとする。RTOSのIDは0x00であり、アプリケーション1〜3のIDとして0x01、0x02、0x04がそれぞれ割り付けられている。また、RTOS及びアプリケーション1〜3には、図示するようなメモリ領域、マスタデバイス及びスレーブデバイスが割り付けられている。メモリのアドレス領域は、例えば、領域1のアドレスは0x0000-0x00FF、領域2は0x1000-0x1FFF、領域3は0x2000-0x20FFとする等、任意に設定することができる。
ここで、RTOS及びアプリケーション2は実行時間の制約が厳しく、高い優先度(1及び2)が与えられている。一方、アプリケーション1及び3は実行時間の制約が厳しくないため、相対的に低い優先度(3及び4)が設定されている。
図4は、バスパーティション構造を備えるコンピュータ1の本実施例の構成を表している。図1に示した構成と同様である。上記のRTOS及びアプリケーション1〜3の優先度(時間的制約)に基づいて、アクセス制御表41を設定することができる。
図5に示すバスアクセス制御表41は、アクセス制限としてアクセス許可(0)又は禁止(X)のみを行う例である。RTOSの動作中(実行中ID=0x00)は、すべてのアプリケーションに属するマスタデバイスによるバスアクセス(アクセスID=0x01、0x02、0x04)を禁止するように設定されている。また、時間制約が厳しいアプリケーション2の動作中(実行中ID=0x02)には、アプリケーション2に属するマスタデバイス2によるバスアクセス(アクセスID=0x02)を許可し、その他のマスタデバイスによるバスアクセス(アクセスID=0x01、0x04)を禁止する。一方、それよりも優先度の低いアプリケーション1の動作中(実行中ID=0x01)には、アプリケーション1及び優先度の高いアプリケーション2に属するマスタデバイスによるバスアクセス(アクセスID=0x01、0x02)を許可し、その他のマスタデバイスによるバスアクセス(アクセスID=0x04)を禁止するように設定されている。
図6は、アプリケーション1及びアプリケーション2が、一定のシステムサイクル(例えば、100μs)で実行される例を表している。1つのシステムサイクルはタイムウィンドウ1及び2(各50μs)に分割され、タイムウィンドウ1においてアプリケーション1が実行され、タイムウィンドウ2においてアプリケーション2が実行される。各アプリケーションは複数のタスクによって構成されている。
アプリケーション1の実行とアプリケーション2の実行は、RTOSによって切り替えられるが、RTOS自体の実行時間は図示されていない(以下同様)。アプリケーションの切り替えに際して、RTOSは一般に必要な切り替え処理(アプリケーション実行環境の保存・回復、優先順位に従ったアプリケーションの選択等)に加え、以下の処理を行う。
タイムウィンドウの終了時刻毎に起動されたRTOSは、実行中IDレジスタ21に自己のID(0x00)をセットする。その状態で、RTOSはアプリケーションを切り替えるために一般に必要な処理を行う。このとき、前のタイムウィンドウにおいて動作していたマスタデバイスがある場合、バス3上の実行中ID信号31にはRTOSのIDが出力されるため、バスコントローラ4は、アクセス制御表41に基づいて、そのマスタデバイスによるバスのアクセスを禁止することとなる。
RTOSが自己の処理を終了し、次のタイムウィンドウにおいて実行すべきアプリケーションを起動する際には、そのアプリケーションが使用するマスタデバイス及びスレーブデバイスに備えられているアクセスIDレジスタ51及び所属IDレジスタに、当該アプリケーションのIDをセットする。そして、実行中IDレジスタに当該アプリケーションのIDをセットした後、当該アプリケーションの実行を開始させる。この状態で、実行中ID信号31には実行中のアプリケーションIDが出力されることとなる。
マスタデバイス及びスレーブデバイスの属するアプリケーションが常に固定されている場合には、RTOSは、そのマスタデバイス(アクセスIDレジスタ51)及びスレーブデバイス(所属IDレジスタ61)に対して所属IDをシステム起動時に初期設定すればよく、その後に書き換える必要はない。本例においては、図3に示したように、アプリケーション1はマスタデバイス1、スレーブデバイス1及びメモリ領域2を使用し、アプリケーション2はマスタデバイス2、スレーブデバイス2及びメモリ領域3を使用する。よって、各アクセスIDレジスタ51及び各所属IDレジスタ61には、図4に示したように、それらが所属するアプリケーションのIDが格納されている。
図7は、1つのシステムサイクルにおけるタイムウィンドウ1の間アプリケーション1が動作し、次にタイムウィンドウ2の間アプリケーション2が動作する場合を示している。マスタデバイス1がDMAコントローラ(DMA1)である場合を例に挙げる。アプリケーション1の動作中は、実行中ID信号31の値は0x01である。アプリケーション1(タスク12)がマスタデバイス1を起動すると、マスタデバイス1はアクセスIDレジスタ51aに格納された自己の所属ID(0x01)をアクセスID信号32に出力して、バスコントローラ4にバス3を要求する。バスコントローラ4は、実行中ID信号31及びアクセスID信号32の値を読み、バスアクセス制御表41に基づいてマスタデバイス1の要求を許可する。これによって、マスタデバイス1はアプリケーション1に属するスレーブデバイス1とメモリの領域2との間のDMA転送(DMA1アクセス)を実行し、タイムウィンドウ1内でDMA転送を終了する。
次のタイムウィンドウ2においては、アプリケーション2を構成するタスク21及び22が順次実行される。その処理の時間制約が厳しく、タスク21の実行時間は25μsと策定されている。タスク21は、アプリケーション2に属するメモリの領域3に対して一定量のアクセスを行うが、いずれのマスタデバイスもバス3を使用していないので予定された時間25μs内に自己の処理を終了し、次のタスク22の処理に移ることができる。
図8により、アプリケーション1及び2が前図と同様に実行される場合であって、アプリケーション1がマスタデバイス1に実行させたDMA転送が、タイムウィンドウ1内で終了しない場合の動作を説明する。アプリケーション1の実行中は、前記のとおりマスタデバイス1によるDMA転送が許可されている。タイムウィンドウ1が終了するとRTOSによりアプリケーション2への切り替え処理がされるため、実行中ID信号31の内容は、RTOS動作中は0x00、アプリケーション2の実行開始後は0x02となる。すなわち、タイムウィンドウ1の終了後、実行中ID信号31の内容はアプリケーション1を示す0x01ではなくなる。そうすると、マスタデバイス1はアクセスID信号32として0x01を出力しているため、マスタデバイス1によるバス3のアクセスは禁止(図5参照)されて停止し、DMA転送はタイムウィンドウ2に継続されないこととなる。
上記のように、アプリケーション1に許されたタイムウィンドウ1を超えてマスタデバイス1がバス3をアクセスすることが禁止されるため、タイムウィンドウ2においてアプリケーション2(タスク21)が一定量のメモリアクセスを行っても、バス3のアクセスがマスタデバイス1によるアクセスと競合することはなく、アプリケーション2は策定された時間内に処理を終了することが可能になる。このようなバスパーティション構造を備えない場合、マスタデバイス1によるバス3のアクセスがタイムウィンドウ2に継続されてしまい、アクセスの競合(バス帯域違反)によってアプリケーション2のタスク処理に余計な時間を要する(図10参照)。本バスパーティション構造を備えるコンピュータ1によって、アプリケーション切り替え後のマスタデバイスのバス帯域違反を防止し、その後に実行するアプリケーションの時間的な振る舞いに影響を与えないようにすることができる。
また、本バスパーティション構造を備えるコンピュータ1において、スレーブデバイス6は、自己の所属IDとバス3に送出されたアクセスIDとが所定の条件を満たす場合のみに当該マスタデバイスによるアクセスに応答する応答制御手段を備えることができる。応答制御手段として、各スレーブデバイス6は、自己の属するアプリケーションのIDを所属IDとして格納する所属符号レジスタ61と、応答制御部62を備えている。RTOSは、アプリケーションを切り替える際に、次に実行するアプリケーションに対応して各所属IDレジスタ61の内容を書き換えるようにすることができる。応答制御部62は、バス3を介していずれかのマスタデバイス5からアクセスがあるとき、アクセスID信号32の値を読み、その値と自己の所属符号レジスタ61の値とが所定の条件を満たす場合は正常なアクセスとして応答し、条件を満たさない場合は違反するアクセスとして応答しない等の制御をすることができる。
以上に説明した実施例のいずれの場合にも、応答制御手段によって、アプリケーションに対応した保護を実現することができる。例えば、図7に示した例において、アプリケーション1が使用するスレーブデバイス1の所属IDレジスタ61aにはアプリケーション1のID(0x01)、アプリケーション2が使用するスレーブデバイス2の所属IDレジスタ61bにはアプリケーション2のID(0x02)、がセットされている。マスタデバイス1がスレーブデバイス1にアクセスするときには、アクセスID信号32にはマスタデバイス1のアクセスID(0x01)が出力されているので、スレーブデバイス1は所属IDレジスタ61aの値(0x01)と論理演算し、正常なアクセスと判断して応答することができる。しかし、マスタデバイス2からアクセスされるときには、アクセスID信号32にはマスタデバイス2のアクセスID(0x02)が出力されているので、スレーブデバイス1は所属IDレジスタ61aの値(0x01)と論理演算し、アクセス違反と判断することができる。メモリ7においては、アドレス領域毎に所属IDレジスタ71及び応答制御部72を備え、アプリケーションに応じた領域毎に同様の制御を行うことができる。
尚、本発明においては、以上に記載した実施形態に限られず、目的、用途に応じて本発明の範囲内で種々変更した実施形態とすることが可能である。
1;バスパーティション構造を備えるコンピュータ、2;処理部(CPU)、21;実行中IDレジスタ、3;バス、31;実行中ID信号、32;アクセスID信号、4;バスコントローラ、41;アクセス制御表、5;マスタデバイス、5a;マスタデバイス1、5b;マスタデバイス2、51(51a、51b);所属IDレジスタ、6;スレーブデバイス、6a;スレーブデバイス1、6b;スレーブデバイス2、61(61a、61b);所属IDレジスタ、62(62a、62b);応答制御部、7;メモリ、71;領域毎の所属IDレジスタ、72;領域毎の応答制御部。

Claims (5)

  1. オペレーティングシステム上で複数のアプリケーションプログラムを切り替えてプロセッサに実行させる処理部と、少なくとも1つのマスタデバイスと、前記処理部及び前記マスタデバイスが接続されたバスと、前記バスを調停するバスコントローラとを備えるコンピュータであって、
    前記オペレーティングシステム及び各前記アプリケーションプログラムには、それらのうちのいずれであるかを識別するための識別符号がそれぞれ与えられており、
    各前記マスタデバイスには該マスタデバイスの属する前記オペレーティングシステム又は前記アプリケーションプログラムの前記識別符号が格納され、
    前記プロセッサにより実行中の前記オペレーティングシステム又は前記アプリケーションプログラムの前記識別符号を実行中符号として前記バスに送出する実行中符号送出手段と、
    前記バスを要求する前記マスタデバイスが自己に格納されている前記識別符号をアクセス符号として前記バスに送出するアクセス符号送出手段と、
    前記バスを介して受信された前記実行中符号に応じて、前記バスを介して受信された前記アクセス符号で識別される前記マスタデバイスによる前記バスのアクセス制限を判断するアクセス判断手段と、
    を備え、
    前記バスコントローラは、前記アクセス判断手段により判断されたアクセス制限に基づいて、当該マスタデバイスによる前記バスのアクセスを制御することを特徴とする、バスパーティション構造を備えるコンピュータ。
  2. 前記実行中符号送出手段は、前記実行中符号を格納する実行中符号レジスタを備え、
    前記アクセス符号送出手段は、各前記マスタデバイスに具備され該マスタデバイスの属するアプリケーションプログラムの識別符号を格納するアクセス符号レジスタを備え、
    前記オペレーティングシステムは、前記コンピュータの起動時に各前記アクセス符号レジスタに当該マスタデバイスが属するアプリケーションプログラムの識別符号を格納し、前記アプリケーションプログラムを切り替える際に、次に実行するアプリケーションプログラムに対応して前記実行中符号レジスタの内容を書き換える、請求項1記載のバスパーティション構造を備えるコンピュータ。
  3. 前記バスには少なくとも1つのスレーブデバイスが接続されており、
    各前記スレーブデバイスは、自己の属するアプリケーションプログラムの識別符号と前記バスに送出された前記アクセス符号とが所定の条件を満たす場合のみに当該マスタデバイスによるアクセスに応答するように制御する応答制御手段を備える、請求項1又は2に記載のバスパーティション構造を備えるコンピュータ。
  4. 前記応答制御手段は、各前記スレーブデバイスに具備され該スレーブデバイスの属するアプリケーションプログラムの識別符号を所属符号として格納する所属符号レジスタを備え、
    前記オペレーティングシステムは、前記コンピュータの起動時に各前記所属符号レジスタに当該スレーブデバイスが属するアプリケーションプログラムの識別符号を格納する、請求項3記載のバスパーティション構造を備えるコンピュータ。
  5. 前記バスには少なくとも1つのスレーブデバイスが接続されており、
    各前記スレーブデバイスには該スレーブデバイスの属するアプリケーションプログラムの識別符号が格納され、
    前記バスに送出されている実行中符号が前記オペレーティングシステムの識別符号であるときのみに、各前記マスタデバイス及び各前記スレーブデバイスそれぞれ格納されている前記識別符号の前記プロセッサによる書き換え可能とする所属符号保護手段を備える、請求項1記載のバスパーティション構造を備えるコンピュータ。
JP2012228375A 2012-10-15 2012-10-15 バスパーティション構造を備えるコンピュータ Expired - Fee Related JP5703505B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012228375A JP5703505B2 (ja) 2012-10-15 2012-10-15 バスパーティション構造を備えるコンピュータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012228375A JP5703505B2 (ja) 2012-10-15 2012-10-15 バスパーティション構造を備えるコンピュータ

Publications (2)

Publication Number Publication Date
JP2014081738A JP2014081738A (ja) 2014-05-08
JP5703505B2 true JP5703505B2 (ja) 2015-04-22

Family

ID=50785894

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012228375A Expired - Fee Related JP5703505B2 (ja) 2012-10-15 2012-10-15 バスパーティション構造を備えるコンピュータ

Country Status (1)

Country Link
JP (1) JP5703505B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020149526A (ja) * 2019-03-15 2020-09-17 株式会社東芝 処理装置、処理方法及びプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6476256A (en) * 1987-09-18 1989-03-22 Fujitsu Ltd Bus adjusting device for multiplex input data transfer device
JP4587756B2 (ja) * 2004-09-21 2010-11-24 ルネサスエレクトロニクス株式会社 半導体集積回路装置
JP2006293536A (ja) * 2005-04-07 2006-10-26 Denso Corp バスシステム
EP1903443B1 (en) * 2006-04-06 2011-07-13 Sony Corporation Bridge, processor unit, information processing apparatus and access control method
JP2009129307A (ja) * 2007-11-27 2009-06-11 Oki Semiconductor Co Ltd データ転送装置

Also Published As

Publication number Publication date
JP2014081738A (ja) 2014-05-08

Similar Documents

Publication Publication Date Title
EP2660752B1 (en) Memory protection circuit, processing unit, and memory protection method
US6587937B1 (en) Multiple virtual machine system with efficient cache memory design
US8695002B2 (en) Multi-threaded processors and multi-processor systems comprising shared resources
CN105094084B (zh) 支持多核控制器上的相干数据访问的服务和系统
JP2013161299A (ja) 情報処理装置、インタフェースアクセス方法
CN111414626A (zh) 基于tee扩展的实时性保证方法及系统
CN103778099B (zh) 信息处理设备
WO2018084024A1 (ja) 車両制御装置
US7587543B2 (en) Apparatus, method and computer program product for dynamic arbitration control
JP4893427B2 (ja) マイクロコンピュータシステム
JP2015067107A (ja) 車両用制御装置
JP5999216B2 (ja) データ処理装置
JP5703505B2 (ja) バスパーティション構造を備えるコンピュータ
JP5699896B2 (ja) 情報処理装置、異常判定方法
JP2014074995A (ja) 情報処理装置
EP3246821B1 (en) Semiconductor device and its memory access control method
Farrall et al. Hardware and software support for mixed-criticality multicore systems
US11604739B2 (en) Conditional direct memory access channel activation
WO2020179344A1 (ja) 車両制御装置
JP6349444B2 (ja) 車両用制御装置
CN108369558B (zh) 用于运行微控制器的方法
US20120265904A1 (en) Processor system
JP2001188745A (ja) 制御装置及び制御方法
WO2023020069A1 (zh) 虚拟机管理方法及相关系统、存储介质
WO2022239331A1 (ja) 電子制御装置及び異常判定方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140930

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141128

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150203

R150 Certificate of patent or registration of utility model

Ref document number: 5703505

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees