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