(57)【要約】【課題】  本発明は、コスト増を低減しつつマルチプロセッサシステムにおけるセキュリティを向上することを目的とする。【解決手段】  複数のバスマスタから前記複数のバスマスタにより共有される少なくとも１の共有バススレーブへのアクセスについてアクセス可否判定を行うアクセス制御装置であって、前記バスマスタから前記共有バススレーブの所定領域へのアクセスを禁止するアクセス可否情報を格納するアクセス可否情報格納部と、前記バスマスタから前記共有バススレーブの所望の領域にアクセス要求が行われた場合、前記アクセス可否情報格納部のアクセス可否情報に基づいて、前記バスマスタが前記アクセス要求先の共有バススレーブの領域にアクセスが可能か否かを判定するアクセス可否判定部とを有するアクセス制御装置を提供する。【選択図】      図１
2007264679.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスマスタから前記複数のバスマスタにより共有される少なくとも１の共有バススレーブへのアクセスについてアクセス可否判定を行うアクセス制御装置であって、
前記バスマスタから前記共有バススレーブの所定領域へのアクセスを禁止するアクセス可否情報を格納するアクセス可否情報格納部と、
前記バスマスタから前記共有バススレーブの所望の領域にアクセス要求が行われた場合、前記アクセス可否情報格納部のアクセス可否情報に基づいて、前記バスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定するアクセス可否判定部と、
を含むことを特徴とするアクセス制御装置。
【請求項２】
前記バスマスタから前記共有バススレーブの所望の領域へのアクセス要求に基づいて、前記アクセス要求を行ったバスマスタを識別するバスマスタ識別部をさらに含み、
前記アクセス可否判定部は、前記バスマスタ識別部により識別されたバスマスタのアクセス可否情報に基づいて判定を行うことを特徴とする請求項１に記載のアクセス制御装置。
【請求項３】
前記アクセス可否情報は、バスマスタ毎の共有バススレーブにおけるアクセス禁止領域を指定する禁止アドレスまたはアクセス許可領域を指定する許可アドレスであり、
前記アクセス可否判定部は、前記バスマスタに対応する禁止アドレスまたは許可アドレスに基づいて、前記バスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定することを特徴とする請求項１に記載のアクセス制御装置。
【請求項４】
前記禁止アドレスは、バスマスタ毎の共有バススレーブへの書き込みアクセス禁止領域、または共有バススレーブからの読出しアクセス禁止領域または共有バススレーブへの全アクセス禁止領域を指定するアドレスであり、
前記許可アドレスは、共有バススレーブへの読み出しアクセス許可領域、または共有バススレーブからの読み出しアクセス許可領域または共有バススレーブへの全アクセス許可領域を指定するアドレスであることを特徴とする請求項３に記載のアクセス制御装置。
【請求項５】
前記アクセス可否情報は、各バスマスタの動作状態毎に格納されており、
前記アクセス可否判定部は、前記アクセス要求を行ったバスマスタの動作状態を受信し、その動作状態と前記バスマスタの動作状態毎のアクセス可否情報とに基づいて、前記アクセス要求を行ったバスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定することを特徴とする請求項１に記載のアクセス制御装置。
【請求項６】
前記共有バススレーブは、各種制御レジスタであり、
前記アクセス可否情報は、前記各種制御レジスタへのアクセスを禁止する情報であり、
前記アクセス可否判定部は、前記バスマスタから前記各種制御レジスタの所望の領域にアクセス要求が行われた場合、前記各種制御レジスタへのアクセス可否情報に基づいて、前記アクセス要求を行ったバスマスタが前記アクセス要求先の各種制御レジスタの領域にアクセス可能か否かを判定することを特徴とする請求項１に記載のアクセス制御装置。
【請求項７】
前記各種制御レジスタは、DMA制御情報を格納するDMA制御レジスタであり、
前記アクセス可否情報は、前記DMA制御レジスタへのアクセスを禁止する情報であり、
前記アクセス可否判定部は、前記バスマスタから前記DMA制御レジスタの所望の領域にアクセス要求が行われた場合、前記DMA制御レジスタへのアクセス可否情報に基づいて、前記アクセス要求を行ったバスマスタが前記アクセス要求先のDMA制御レジスタの領域にアクセス可能か否かを判定することを特徴とする請求項６に記載のアクセス制御装置。
【請求項８】
前記バスマスタ及び前記共有バススレーブ間のデータバス上に、前記バスマスタから前記共有バススレーブに出力されるデータを暗号化し、前記共有バススレーブから前記バスマスタに出力されるデータを復号化するバス暗号部をさらに含むことを特徴とする請求項１に記載のアクセス制御装置。
【請求項９】
前記アクセス要求を行ったバスマスタが実行するプログラムを認証するプログラム認証部をさらに含み、
前記アクセス可否判定部は、前記プログラム認証部での認証結果及び前記アクセス可否情報格納部のアクセス可否情報に基づいて、前記アクセス要求を行ったバスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定することを特徴とする請求項１に記載のアクセス制御装置。
【請求項１０】
前記バスマスタは、前記アクセス可否情報格納部に格納されたアクセス可否情報にアクセスするための専用命令を有し、前記専用命令実行時に前記専用命令をデコードして前記アクセス可否情報にアクセスするためのアクセス要求を発行し、
前記アクセス可否判定部は、前記専用命令に基づくアクセス要求を受信し、前記プログラム認証部から受信した認証結果に基づいて前記アクセス要求を実行するか否かを判定することを特徴とする請求項９に記載のアクセス制御装置。
【請求項１１】
前記バスマスタは、前記アクセス可否情報格納部に格納されたアクセス可否情報にアクセスするための専用命令を有し、前記専用命令実行時に前記専用命令をデコードして前記アクセス可否情報にアクセスするためのアクセス要求を発行することを特徴とする請求項１に記載のアクセス制御装置。
【請求項１２】
前記アクセス可否情報格納部は特定のアドレスが割り当てられたレジスタであり、前記バスマスタが前記特定のアドレスへのアクセス要求を発行することで、前記アクセス可否情報格納部に格納されたアクセス可否情報へのアクセスを要求することを特徴とする請求項１に記載のアクセス制御装置。
【請求項１３】
前記アクセス可否情報は、アクセス可否情報へのアクセスを許可するか否かについての制限情報を含み、
前記アクセス可否判定部は、前記制限情報に基づいて、前記アクセス可否情報にアクセス可能か否かを判定することを特徴とする請求項１１または１２に記載のアクセス制御装置。
【請求項１４】
前記アクセス可否判定部において、前記アクセス要求を行ったバスマスタが前記アクセス要求先の共有バススレーブの領域にアクセスができないと判定された場合、前記アクセス要求を行ったバスマスタにダミー応答を行うダミー応答部をさらに含むことを特徴とする請求項１に記載のアクセス制御装置。
【請求項１５】
前記アクセス可否判定部において、前記アクセス要求を行ったバスマスタが前記アクセス要求先の共有バススレーブの領域にアクセスができないと判定された場合、前記アクセス要求先の共有バススレーブにダミーアクセスを行うダミーアクセス部をさらに含むことを特徴とする請求項１に記載のアクセス制御装置。
【請求項１６】
複数のバスマスタと、
前記複数のバスマスタから前記複数のバスマスタにより共有される少なくとも１の共有バススレーブへのアクセスについてアクセス可否判定を行うアクセス制御装置とを含み、
前記アクセス制御装置は、
前記バスマスタから前記共有バススレーブへのアクセスを禁止するアクセス可否情報を格納するアクセス可否情報格納部と、
前記バスマスタから前記共有バススレーブの所望の領域へのアクセス要求が行われた場合、前記アクセス可否情報格納部のアクセス可否情報に基づいて、前記バスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定するアクセス可否判定部と、
を有することを特徴とするシステムＬＳＩ。
【請求項１７】
前記複数のバスマスタがアクセス可能なバススレーブをさらに含むことを特徴とする請求項１６に記載のシステムＬＳＩ。
【請求項１８】
複数のバスマスタから前記複数のバスマスタにより共有される少なくとも１の共有バススレーブへのアクセスについてアクセス可否判定を行うアクセス制御方法であって、
前記バスマスタから前記共有バススレーブへのアクセスを禁止するアクセス可否情報を格納する格納ステップと、
前記バスマスタから前記共有バススレーブの所望の領域へのアクセス要求が行われた場合、前記アクセス可否情報格納部のアクセス可否情報に基づいて、前記バスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定する判定ステップと、
を含むことを特徴とするアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスマスタ及び共有バススレーブ間のアクセス制御を行うアクセス制御装置に関するものである。
【背景技術】
【０００２】
現在、LSI（Large Scale Integrated circuit）の高機能化、高集積化が進む中、複数のプロセッサから構成されるマルチプロセッサシステムが一般化している。また、デジタルAV家電分野などでは、低コスト化のため主記憶装置などの情報資源を共有するユニファイドメモリ構成が欠かせない。そのため、あるプロセッサの秘匿プログラムが共有メモリ内に記憶されている場合に、他のプロセッサがその秘匿プログラムを改竄したり盗み出したりする等のセキュリティ低下が問題となっている。
【０００３】
特許文献１には、共有メモリへのアクセス制限を実現する機構として、各プロセッサがアクセス制限機構を有するマルチプロセッサシステムが開示されている。そして、各プロセッサ内のアクセス制限機構が、アドレスの生成等を阻止するソフトウェアプログラムを実行することによりアクセス制限を行っている。また、各プロセッサ毎に専用メモリを設け、特定のプロセッサの専用メモリには、特定のプロセッサのみがアクセスできるようにする方法が特許文献２に開示されている。
【特許文献１】特許第２６６１７３３号公報
【特許文献２】特開平６−９６２３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１のマルチプロセッサシステムでは、アクセス制限機構として中央処理装置毎にアドレス生成保護装置が設けられている。そして、各アドレス生成保護装置が、対応するプロセッサの共有メモリへのアクセス制限をソフト的処理により行う。また、アクセス制限を行うソフトの書換制限は行われていない。よって、例えばアクセス制限を実行するプログラムのシーケンスやハードウェアの仕様書などが搾取され、プログラムが改竄されると、他のプロセッサのアクセス制限領域に不正にアクセスできるようになる。その結果、秘密データやプログラムが改竄されたり盗み出される危険性が生じ、セキュリティ上問題となる。また、特許文献２の各プロセッサ専用の専用メモリを設ける方法では、専用メモリとして専用RAM（Random Access Memory）や専用ROM（Read Only Memory）を別途設ける必要がありマルチプロセッサシステムのコスト増を招く。特に、専用メモリをLSIに内蔵する方法では、使用する専用メモリの容量をLSI設計段階でFIXさせなければならないため柔軟性に欠ける。また、専用メモリをマルチプロセッサを搭載したシステムLSIに外付けする方法では、外付けの専用メモリとLSIとの接続を行うためにLSIの外部端子等が増加し、LSIのコスト増を招く。
【０００５】
そこで、本発明は、コスト増を低減しつつマルチプロセッサシステムにおけるセキュリティを向上させることを目的とする。
【課題を解決するための手段】
【０００６】
本願第１発明は、上記の課題を解決するために、複数のバスマスタから前記複数のバスマスタにより共有される少なくとも１の共有バススレーブへのアクセスについてアクセス可否判定を行うアクセス制御装置であって、以下の構成要素を有する。
・前記バスマスタから前記共有バススレーブの所定領域へのアクセスを禁止するアクセス可否情報を格納するアクセス可否情報格納部。
・前記バスマスタから前記共有バススレーブの所望の領域にアクセス要求が行われた場合、前記アクセス可否情報格納部のアクセス可否情報に基づいて、前記バスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定するアクセス可否判定部。
【０００７】
バスマスタから共有バススレーブの所望の領域にアクセス要求が行われた場合、アクセス可否判定部がアクセス可否情報に基づいてアクセス可否の判定を行う。ここで、共有バススレーブとは、複数のバスマスタに共有される汎用メモリや各種制御レジスタ等の共有資源を意味する。アクセス可否判定部によりアクセスが禁止されると、バスマスタは共有バススレーブのアクセス要求先の領域にアクセスできない。よって、アクセス可否判定部により許可されたバスマスタのみが共有バススレーブの所定領域にアクセスができるため、共有バススレーブ上に特定のバスマスタの専用領域を確保することができる。そのため、特定のバスマスタ以外のバスマスタによる不正なアクセスを禁止し、セキュリティを向上させることができる。例えば、プログラムの改竄や誤動作により、特定のバスマスタ以外のバスマスタが特定のバスマスタの専用領域へアクセスしようとした場合でも、アクセス可否判定部によりアクセスを禁止することができる。
【０００８】
また、バスマスタは共有バススレーブを共有しているため、特定のバスマスタ毎に専用のバススレーブを別途設ける必要がない。よって、別途のバススレーブとバスマスタとを接続するためのバス配線や端子を設けるコストを削減することができる。
【０００９】
本願第２発明は、本願第１発明において、前記バスマスタから前記共有バススレーブの所望の領域へのアクセス要求に基づいて、前記アクセス要求を行ったバスマスタを識別するバスマスタ識別部をさらに含み、前記アクセス可否判定部は、前記バスマスタ識別部により識別されたバスマスタのアクセス可否情報に基づいて判定を行うことを特徴とするアクセス制御装置を提供する。
【００１０】
バスマスタ識別部は、いずれのバスマスタからアクセス要求が行われているかを識別し、アクセス可否判定部に出力する。バスマスタ識別部は、複数のバスマスタからアクセス要求が行われた場合、いずれのバスマスタからのアクセス要求を受け付けるかを選択するようにしても良い。例えば、優先度の高いバスマスタからのアクセス要求を受け付ける。
【００１１】
本願第３発明は、本願第１発明において、前記アクセス可否情報は、バスマスタ毎の共有バススレーブにおけるアクセス禁止領域を指定する禁止アドレスまたはアクセス許可領域を指定する許可アドレスであり、前記アクセス可否判定部は、前記バスマスタに対応する禁止アドレスまたは許可アドレスに基づいて、前記バスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定することを特徴とするアクセス制御装置を提供する。
【００１２】
アクセス可否情報格納部には、バスマスタ毎に共有バススレーブ内のアクセスが禁止される領域の禁止アドレスまたはアクセスが許可される領域の許可アドレスが格納されている。この禁止アドレスまたは許可アドレスと、バスマスタがアクセス要求を行った共有バススレーブの領域のアドレスとを比較する。そして、アクセス要求先のアドレスが禁止アドレスである場合は、バスマスタによるアクセスを禁止することができる。一方、アクセス要求先のアドレスが許可アドレスである場合は、バスマスタによるアクセスを許可することができる。
【００１３】
本願第４発明は、本願第３発明において、前記禁止アドレスは、バスマスタ毎の共有バススレーブへの書き込みアクセス禁止領域、または共有バススレーブからの読出しアクセス禁止領域または共有バススレーブへの全アクセス禁止領域を指定するアドレスであり、前記許可アドレスは、共有バススレーブへの読み出しアクセス許可領域、または共有バススレーブからの読み出しアクセス許可領域または共有バススレーブへの全アクセス許可領域を指定するアドレスであることを特徴とするアクセス制御装置を提供する。
【００１４】
バスマスタ毎に共有バススレーブからのデータの読み出しのみ許可する、書き込みのみ許可する等の自由度を高めることができる。
【００１５】
本願第５発明は、本願第１発明において、前記アクセス可否情報は、各バスマスタの動作状態毎に格納されており、前記アクセス可否判定部は、前記アクセス要求を行ったバスマスタの動作状態を受信し、その動作状態と前記バスマスタの動作状態毎のアクセス可否情報とに基づいて、前記アクセス要求を行ったバスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定することを特徴とするクセス制御装置を提供する。
【００１６】
各バスマスタの動作状態に応じてバスマスタがアクセス要求先の領域へアクセス可能か否かを判定する。よって、共有バススレーブ上に、特定のバスマスタが特定の動作状態にあるときのみアクセスすることができる専用領域を確保することができる。また、バスマスタの動作状態に応じてアクセス可否を行うことで、よりセキュリティを高めることができる。
【００１７】
本願第６発明は、本願第１発明において、前記共有バススレーブは、各種制御レジスタであり、前記アクセス可否情報は、前記各種制御レジスタへのアクセスを禁止する情報であり、前記アクセス可否判定部は、前記バスマスタから前記各種制御レジスタの所望の領域にアクセス要求が行われた場合、前記各種制御レジスタへのアクセス可否情報に基づいて、前記アクセス要求を行ったバスマスタが前記アクセス要求先の各種制御レジスタの領域にアクセス可能か否かを判定することを特徴とするアクセス制御装置を提供する。
【００１８】
バスマスタから共有の各種制御レジスタの所望の領域にアクセス要求が行われた場合、アクセス可否判定部がアクセス可否情報に基づいてアクセス可否の判定を行う。よって、アクセス可否判定部により許可されたバスマスタのみが共有の各種制御レジスタの領域にアクセスができる。例えば、特定のバスマスタ以外のバスマスタが不正に各種制御レジスタにアクセスし、各種制御情報が書き換えられることを防止することができる。
【００１９】
本願第７発明は、本願第６発明において、前記各種制御レジスタは、DMA制御情報を格納するDMA制御レジスタであり、前記アクセス可否情報は、前記DMA制御レジスタへのアクセスを禁止する情報であり、前記アクセス可否判定部は、前記バスマスタから前記DMA制御レジスタの所望の領域にアクセス要求が行われた場合、前記DMA制御レジスタへのアクセス可否情報に基づいて、前記アクセス要求を行ったバスマスタが前記アクセス要求先のDMA制御レジスタの領域にアクセス可能か否かを判定することを特徴とするアクセス制御装置を提供する。
【００２０】
特定のバスマスタのみが起動可能なDMA、例えば暗号データを復号しLSI内部のローカルメモリに転送するDMAを、特定のバスマスタ以外のバスマスタが転送先をLSI外部メモリに指定してDMA起動し、復号化された平文データをLSI外部で盗み出すといった、不正なDMA起動を防止することができる。
【００２１】
本願第８発明は、本願第１発明において、前記バスマスタ及び前記共有バススレーブ間のデータバス上に、前記バスマスタから前記共有バススレーブに出力されるデータを暗号化し、前記共有バススレーブから前記バスマスタに出力されるデータを復号化するバス暗号部をさらに含むことを特徴とするアクセス制御装置を提供する。
【００２２】
バスマスタ及び共有バススレーブ間のデータバス上にバス暗号部を設けることで、データバスを監視することによる解析を妨げることができる。よって、セキュリティをより高めることができる。
【００２３】
本願第９発明は、本願第１発明において、前記アクセス要求を行ったバスマスタが実行するプログラムを認証するプログラム認証部をさらに含み、前記アクセス可否判定部は、前記プログラム認証部での認証結果及び前記アクセス可否情報格納部のアクセス可否情報に基づいて、前記アクセス要求を行ったバスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定することを特徴とするアクセス制御装置を提供する。
【００２４】
本願第１０発明は、本願第９発明において、前記バスマスタは、前記アクセス可否情報格納部に格納されたアクセス可否情報にアクセスするための専用命令を有し、前記専用命令実行時に前記専用命令をデコードして前記アクセス可否情報にアクセスするためのアクセス要求を発行し、前記アクセス可否判定部は、前記専用命令に基づくアクセス要求を受信し、前記プログラム認証部から受信した認証結果に基づいて前記アクセス要求を実行するか否かを判定することを特徴とするアクセス制御装置を提供する。
【００２５】
プログラム認証を行うと共に、アクセス可否情報へのアクセス可否判定をおこなうことで、アクセス可否情報の不正な書換を防止することが可能となり、かつアクセス可否情報の読み出しや書き換えなどのアクセスの自由度を高めることができる。
【００２６】
本願第１１発明は、本願第１発明において、前記バスマスタは、前記アクセス可否情報格納部に格納されたアクセス可否情報にアクセスするための専用命令を有し、前記専用命令実行時に前記専用命令をデコードして前記アクセス可否情報にアクセスするためのアクセス要求を発行することを特徴とするアクセス制御装置を提供する。
【００２７】
アクセス可否情報にアクセスするための専用命令を有することで、アクセス可否情報を読み出したり、書き換えたりするなどの自由度を高めることができる。
【００２８】
本願第１２発明は、本願１発明において、前記アクセス可否情報格納部は特定のアドレスが割り当てられたレジスタであり、前記バスマスタが前記特定のアドレスにアクセスすることで、前記アクセス可否情報格納部に格納されたアクセス可否情報へのアクセスが可能となることを特徴とするアクセス制御装置を提供する。
【００２９】
本願第１３発明は、本願第１１または第１２発明において、前記アクセス可否情報は、アクセス可否情報へのアクセスを許可するか否かについての制限情報を含み、前記アクセス可否判定部は、前記制限情報に基づいて、前記アクセス可否情報にアクセス可能か否かを判定することを特徴とするアクセス制御装置を提供する。
【００３０】
アクセス可否情報へのアクセスの可否を決定することにより、アクセス可否情報へのアクセスの自由度を高めつつアクセスが許可されていないバスマスタからの不正なアクセス制限し、セキュリティを高めることができる。例えば、アクセス可否情報へのアクセスによりアクセス可否情報が書き換えられる場合であっても、書き換えの際のセキュリティを確保しつつ、書き換えによるアクセス許可領域の変更等、自由度を高めることができる。
【００３１】
本願第１４発明は、本願第１発明において、前記アクセス可否判定部において、前記アクセス要求を行ったバスマスタが前記アクセス要求先の共有バススレーブの領域にアクセスができないと判定された場合、前記アクセス要求を行ったバスマスタにダミー応答を行うダミー応答部をさらに含むことを特徴とするアクセス制御装置を提供する。
【００３２】
ここで、ダミー応答とは、実際のアクセス要求先から得た応答であるとバスマスタに誤認させるダミーの応答を意味する。例えば、バスマスタから共有バススレーブのアクセス禁止領域にライト動作を行う場合、要求どおりのライト動作を実行せずにアクセス要求の受け付け完了やデータ書き込み完了等のダミー応答を行う。また、アクセス禁止領域にリード動作を行う場合、要求どおりのリード動作を実行せずにアクセス要求の受け付け完了等のダミー応答を行う。よって、共有バススレーブ上のアクセス禁止領域とアクセス許可領域とを見分けるのを困難にし、アクセス禁止領域へアクセスするための解析を妨げることができる。
【００３３】
本願第１５発明は、本願第1発明において、前記アクセス可否判定部において、前記アクセス要求を行ったバスマスタが前記アクセス要求先の共有バススレーブの領域にアクセスができないと判定された場合、前記アクセス要求先の共有バススレーブにダミーアクセスを行うダミーアクセス部をさらに含むことを特徴とするアクセス制御装置を提供する。
【００３４】
ここで、ダミーアクセスとは、実際のアクセス要求先に対してアクセスが行われたとバス観測者に誤認させるダミーのアクセスを意味する。バスマスタが共有バススレーブの領域にアクセスできないと判定された場合でも何らかのダミーアクセスを共有バススレーブに対して行う。このダミーアクセスによりバスマスタ及び共有バススレーブ間のデータバスを監視することによる解析を妨げることができる。例えば、共有バススレーブ上のアクセス禁止領域とアクセス許可領域とを見分けるためのデータバスの解析を妨害することができる。ダミーアクセスとしては、ライト動作の場合、例えばアクセス先の領域のデータをマスクしつつ書き込みを行ったり、ライトコマンドの代わりにリードコマンドを発行する等のアクセスを行う。また、リード動作の場合、例えばアクセスが許可されている領域に対してリードコマンドを発行する等のアクセスを行う。
【００３５】
本願第１６発明は、複数のバスマスタと、前記複数のバスマスタから前記複数のバスマスタにより共有される少なくとも１の共有バススレーブへのアクセスについてアクセス可否判定を行うアクセス制御装置とを含み、前記アクセス制御装置は、前記バスマスタから前記共有バススレーブへのアクセスを禁止するアクセス可否情報を格納するアクセス可否情報格納部と、前記バスマスタから前記共有バススレーブの所望の領域へのアクセス要求が行われた場合、前記アクセス可否情報格納部のアクセス可否情報に基づいて、前記バスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定するアクセス可否判定部とを有することを特徴とするシステムＬＳＩを提供する。
【００３６】
以上の構成により本願第１発明と同様の作用効果を有するシステムLSIを得ることができる。
【００３７】
本願第１７発明は、本願第１６発明において、前記複数のバスマスタがアクセス可能な別バススレーブをさらに含むことを特徴とするシステムＬＳＩを提供する。バスマスタは１つに限定されず複数設けることができる。
【００３８】
本願第１８発明は、複数のバスマスタから前記複数のバスマスタにより共有される少なくとも１の共有バススレーブへのアクセスについてアクセス可否判定を行うアクセス制御方法であって、前記バスマスタから前記共有バススレーブへのアクセスを禁止するアクセス可否情報を格納する格納ステップと、前記バスマスタから前記共有バススレーブの所望の領域へのアクセス要求が行われた場合、前記アクセス可否情報格納部のアクセス可否情報に基づいて、前記バスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定する判定ステップとを含むことを特徴とするアクセス制御方法を提供する。
【発明の効果】
【００３９】
本願発明のアクセス制御装置を用いれば、特定のバスマスタ以外のバスマスタによる共有バススレーブへの不正なアクセスを禁止し、セキュリティを向上させることができる。
【発明を実施するための最良の形態】
【００４０】
＜発明の概要＞
本願発明のアクセス制御部を有するマルチプロセッサシステムは、各プロセッサがメモリ等の資源を共有している。このマルチプロセッサシステムの共有メモリは、その領域が分割されプロセッサ毎に割り当てられている特定プロセッサ専用領域と、マルチプロセッサで共有されている共有領域とで構成されている。また、マルチプロセッサシステムを構成する複数のプロセッサは、共有メモリへのアクセスを制限するアクセス制御部に接続されている。このアクセス制御部は、プロセッサから共有メモリの所望の領域にアクセス要求が行われた場合、そのプロセッサに割り当てられた領域以外のアクセスを禁止する。よって、特定のプロセッサ以外のプロセッサによる不正なアクセスを禁止し、セキュリティを向上させることができる。
【００４１】
＜第１実施形態例＞
図１は本願発明の第１実施形態例に係るマルチプロセッサシステムの構成図である。
【００４２】
（１）構成
第１実施形態例に係るアクセス制御部を有するマルチプロセッサシステム１０００は、マルチプロセッサ１００、バスマスタ識別部２００、アクセス制御部３００、IF（InterFace）部４００及び共有バススレーブ５００を含む。マルチプロセッサ１００は、プロセッサである第１バスマスタ１０ａ、第２バスマスタ１０ｂ、第３バスマスタ１０ｃ、・・・、を有している。この第１バスマスタ１０ａ、第２バスマスタ１０ｂ、第３バスマスタ１０ｃ、・・・は、メモリ等からなる共有資源として共有バススレーブ５００を共有している。バスマスタ識別部２００は、第１バスマスタ１０ａ、第２バスマスタ１０ｂ、第３バスマスタ１０ｃ、・・・と接続されており、各バスマスタ１０からアクセス要求を受け付ける。バスマスタ識別部２００での識別結果及びアクセス要求がアクセス制御部３００へ入力され、IF部４００を介して共有バススレーブ５００へ入力される。そして、共有バススレーブ５００からのアクセス結果がIF部４００を介して各バスマスタ１０へ出力される。
【００４３】
以下に、共有バススレーブ５００、バスマスタ識別部２００、アクセス制御部３００及びIF部４００について説明する。
【００４４】
（１−１）共有バススレーブ
共有バススレーブ５００は、汎用メモリ等であり、第１バスマスタ１０ａ、第２バスマスタ１０ｂ、第３バスマスタ１０ｃ、・・・により共有される。共有バススレーブ５００は分割され、図１に示すようにバスマスタ毎に第１バスマスタ専用領域５０ａ、第２バスマスタ専用領域５０ｂ、第３バスマスタ専用領域５０ｃ、・・・が割り当てられ、さらに各バスマスタ１０に共有される共有領域５１が割り当てられている。
【００４５】
（１−２）バスマスタ識別部
バスマスタ識別部２００は、バスマスタ１０から共有バススレーブ５００へのアクセス要求を受け付けると、どのバスマスタ１０からのアクセス要求であるかを識別する。そして、アクセス要求及び識別結果をアクセス制御部３００に出力する。複数のバスマスタ１０からアクセス要求が行われている場合には、例えば優先度に応じてどのバスマスタ１０からのアクセス要求を優先するかを決定する。バスマスタの識別方法としては、本実施形態例では、複数のバスアクセス入力ポートがそれぞれ特定のバスマスタと１対１に対応するため、どの入力ポートからのバスアクセスかを検知することでバスマスタを識別する方法が考えられる。また、アクセス要求は、例えば共有バススレーブ５００内の所望の領域へアクセスするためのアドレス、書き込みデータ等の信号により行われる。
【００４６】
（１−３）アクセス制御部
アクセス制御部３００は、アクセス可否判定部３１及びアクセス可否情報ＤＢ３３を有している。アクセス可否情報ＤＢ３３には、バスマスタ１０毎にアクセス可否情報が記憶されている。アクセス可否情報とは、バスマスタ１０毎における共有バススレーブ５００の所定領域へのアクセスを禁止する情報である。図２は、アクセス可否情報ＤＢ３３に記憶されているアクセス可否情報の一例である。図２では、共有バススレーブ５００内のアクセス禁止領域を、バスマスタ１０毎にアクセス禁止領域開始アドレス及びアクセス禁止領域終了アドレスにより指定している。ここで、アクセス禁止領域開始アドレスとアクセス禁止領域終了アドレスが同一アドレスである場合、アクセス禁止領域が存在しないものとする。図２のアクセス可否情報に基づけば、第１バスマスタ１０ａのみが共有バススレーブ５００内アドレス0x8000＿0000〜8000＿FFFFの64KB空間にアクセス可能である。ここで、アクセス禁止領域は、共有バススレーブ５００への書き込みアクセスのみを禁止する領域、または、共有バススレーブ５００からの読出しアクセスのみを禁止する領域、または、書き込み及び読み出しアクセスの両方を禁止する領域、または全てのアクセスを禁止する領域であっても良い。このようにすることで、バスマスタ毎に共有バススレーブからのデータの読み出しのみ許可する、書き込みのみ許可する等の自由度を高めることができる。
【００４７】
アクセス可否判定部３１は、バスマスタ識別部２００から入力されたアクセス要求及び識別結果とアクセス可否情報ＤＢ３３内のアクセス可否情報とを照合することによりアクセス可否判定を行う。例えば、バスマスタ識別部２００により第２バスマスタ１０ｂが識別され、第２バスマスタ１０ｂから共有バススレーブ５００内のアドレス0x8000＿0000へのアクセス要求がアクセス可否判定部３１に入力されたとする。アクセス可否判定部３１は、アクセス可否情報ＤＢ３３内を参照し、第２バスマスタ１０ｂによるアドレス0x8000＿0000〜8000＿FFFFへのアクセスが禁止されていることに基づいて、第２バスマスタ１０ｂのアドレス0x8000＿0000へのアクセスを禁止する。一方、第２バスマスタ１０ｂからアドレス0x8000＿0000〜8000＿FFFF以外へのアクセス要求が行われた場合には、アクセス可否判定部３１は、第２バスマスタ１０ｂの共有バススレーブ５００へのアクセス要求を許可する。アクセス可否判定部３１は、この判定結果をIF部４００に出力する。
【００４８】
ここで、バスマスタ識別部２００とアクセス制御部３００との接続がハードワーイヤード構成であると、識別結果の改竄等を防止できるので好ましい。
【００４９】
上記では、アクセス可否情報はアクセス禁止領域に関する情報であるが、バスマスタ１０毎における共有バススレーブ５００の所定領域へのアクセスを許可するアクセス許可領域を指定するアクセス許可アドレスであっても良い。ここで、アクセスが許可されるアクセス許可領域は、共有バススレーブ５００への書き込みアクセスのみを許可する領域、または、共有バススレーブ５００からの読出しアクセスのみを許可する領域、または、書き込み及び読み出しの両方を許可する領域、または全てのアクセスを禁止であっても良い。アクセス許可領域へのアクセス要求が行われた場合には、アクセス要求を行ったバスマスタから共有バススレーブへのアクセスが許可される。一方、アクセス許可領域以外へのアクセス要求が行われた場合には、アクセス要求を行ったバスマスタから共有バススレーブ５００へのアクセスは禁止される。
【００５０】
バスマスタ１０によるアクセス要求は、バスマスタ１０がアクセス可否情報ＤＢ３３に割り当てられた特定のアドレスを指定することにより行われても良い。このとき、アクセス可否情報ＤＢ３３は、例えば特定のアドレスが割り当てられたレジスタである。
【００５１】
（１−４）IF部
IF部４００は、アクセス要求及びアクセス可否判定部３１からの判定結果を受け付ける。IF部４００は、このアクセス要求及び判定結果に基づいて共有バススレーブ５００にアクセスするためのコマンド生成を行う。例えば、共有バススレーブ５００がDRAM（Dynamic Random Access Memory）である場合には、DRAMを制御するためのRAS（Row Address Strobe signal）、CAS（Column Address Strobe signal）等のコマンドを生成する。IF部４００は、バスマスタ１０による共有バススレーブ５００内のアクセス要求先の領域へのアクセスが許可されている場合は、生成したコマンドに基づいてアクセス要求が行われた領域にアクセスし、データの読み出しやデータの書き込みなどを実行する。データが読み出された場合には、IF部４００はアクセス要求を行ったバスマスタ１０に対して読み出したデータを出力する。
【００５２】
一方、IF部４００は、アクセス可否判定部３１においてアクセスが禁止された場合は、アクセス要求先の領域へのアクセスを禁止する通知を、アクセス要求を行ったバスマスタ１０に行っても良い。
【００５３】
IF部４００は、ダミー応答を行うダミー応答部４１とダミーアクセスを行うダミーアクセス部４２をさらに有していると好ましい。ここで、ダミー応答とは、アクセス要求先の共有バススレーブ５００の領域にバスマスタ１０がアクセスできないと判定された場合において、実際のアクセス要求先から得た応答であるとバスマスタ１０に誤認させるために行うダミーの応答を意味する。ダミー応答部４１は、アクセス可否判定部３１によりバスマスタ１０からのアクセス要求がアクセス禁止領域へのアクセス要求であると判定されると、バスマスタ１０に対してダミーの応答を返す。例えば、バスマスタ１０から共有バススレーブ５００のアクセス禁止領域にライト動作が要求された場合、ダミー応答部４１がアクセス要求の受け付け完了やデータ書き込み完了等のダミーの応答を作成する。そして要求どおりのライト動作を行わずに、作成したダミー応答をバスマスタ１０に行う。また、ダミーアクセス部４２は、共有バススレーブ５００内のアクセス要求先の領域とは関係ないダミー領域にアクセスしライト動作を行っても良い。一方、バスマスタ１０からアクセス禁止領域にリード動作の要求が行われた場合、要求どおりのリード動作を行わずに、ダミー応答部４１がアクセス要求の受け付け完了や所定のリードデータ等のダミーの応答を作成してダミー応答を行う。また、ダミーアクセス部４２は、アクセス要求先の領域とは関係ないダミー領域にアクセスしリード動作を行っても良い。よって、共有バススレーブ５００上のアクセス禁止領域とアクセス許可領域とを見分けるのを困難にし、アクセス禁止領域へアクセスするための解析を妨げることができる。ランダムなデータあるいは固定値をバスマスタに出力すると、さらに解析を困難にすることができ好ましい。
【００５４】
またダミーアクセスとは、アクセス要求先の共有バススレーブ５００の領域にバスマスタ１０がアクセスできないと判定された場合、実際のアクセス要求先に対して行われたと、IF部４００と共有バススレーブ５００との間の信号を観測して情報を不正に盗み出そうとする人に誤認させるために行うダミーのアクセスを意味する。バスマスタ１０が共有バススレーブ５００の領域にアクセスできないと判定された場合でも何らかのダミーアクセスを共有バススレーブ５００に対して行う。よって、バスマスタ１０及び共有バススレーブ５００間のデータバスを監視することによる解析を妨げることができる。例えば、データバスをトレースすることによって共有バススレーブ５００上のアクセス禁止領域とアクセス許可領域とを見分けることを妨害することができる。ダミーアクセスとしては、アクセス禁止領域へのライト動作の場合、例えばアクセス要求先の領域のデータをマスクしつつ書き込みを行う、ライトコマンドの代わりにリードコマンドを発行する、アクセスが許可されており書き込みを行っても影響のない領域に対して書き込みを行う等のダミーアクセスを行う。また、アクセス禁止領域へのリード動作の場合、例えばアクセスが許可されている領域に対してリードコマンドを発行する等のアクセスを行う。
【００５５】
（２）バスマスタからバススレーブへのアクセス制御処理
次に、マルチプロセッサ１００内のバスマスタ１０から共有バススレーブ５００へアクセス要求が行われた場合のアクセス制御処理について説明する。図３は、アクセス制御処理の一例を示すフローチャートの一例である。
【００５６】
ステップＳ１０：バスマスタ識別部２００は、バスマスタ１０から共有バススレーブ５００の所望の領域へのアクセス要求を受け付ける。
【００５７】
ステップＳ１１：バスマスタ識別部２００は、受け付けたアクセス要求に基づいてどのバスマスタ１０からのアクセス要求であるかを識別する。
【００５８】
ステップＳ１２：バスマスタ識別部２００は、ステップＳ１１での識別の結果、アクセス要求が複数のバスマスタ１０からなされているかを判定する。複数のバスマスタ１０からアクセス要求がある場合は、ステップ１３において共有バススレーブへのアクセス権利を与えるバスマスタ１０を選択する。一方、一つのバスマスタ１０からのアクセス要求の場合は、そのアクセス要求及び識別結果をアクセス可否判定部３１に出力する。
【００５９】
ステップＳ１３：バスマスタ識別部２００はアクセス要求を受け付ける優先度に応じてバスマスタを選択する。選択されたバスマスタ１０のアクセス要求及び識別結果をアクセス可否判定部３１に出力する。
【００６０】
ステップＳ１４：アクセス可否判定部３１は、バスマスタ識別部２００からのアクセス要求及び識別結果と、アクセス可否情報ＤＢ３３内のアクセス可否情報とを照合する。例えば、アクセス要求が共有バススレーブ５００のアクセス先のアドレスである場合は、そのアドレスがアクセス禁止領域のアドレスであるかをアクセス可否情報ＤＢ３３を参照して照合する。
【００６１】
ステップＳ１５：アクセス可否判定部３１での照合の結果、アクセスが許可されていると判定された場合は、ステップＳ１６においてアクセス許可処理を行う。一方、アクセスが禁止されていると判定された場合は、ステップＳ１７においてアクセス禁止処理を行う。
【００６２】
ステップＳ１６： IF部４００は、アクセス可否判定部３１においてアクセスが許可されたことに基づいて、共有バススレーブ５００内のアクセス要求先の領域へアクセスするためのコマンドを生成する。そして、生成されたコマンドに基づいて共有バススレーブ５００を制御し、共有バススレーブ５００内のアクセス要求先の領域からのデータの読み出し、またはアクセス要求先の領域へのデータの書き込み等の処理を行う。
【００６３】
ステップS１７：IF部４００は、アクセス可否判定部３１においてアクセスが禁止されたことに基づいてアクセス禁止処理を行う。アクセス禁止処理としては、（Ａ）バスマスタ１０へのアクセス禁止の通知、（Ｂ）ダミー応答部４１によるダミー応答処理、（Ｃ）ダミーアクセス部４２によるダミーアクセス等が挙げられる。
【００６４】
（３）効果
以上の構成により、第１実施形態例に係るマイクロプロセッサシステム１０００では、アクセス可否判定部３１により許可されたバスマスタ１０のみが共有バススレーブ５００の所望の領域にアクセスできる。よって、共有バススレーブ５００上に特定のバスマスタ１０の専用領域を確保することができる。そのため、特定のバスマスタ以外のバスマスタによる不正なアクセスによるデータやプログラムの読み出し・改竄、プログラムの不正実行を禁止し、セキュリティを向上させることができる。例えば、プログラムの改竄や誤動作により、特定のバスマスタ以外のバスマスタが特定のバスマスタの専用領域へアクセスしようとした場合でも、アクセスを禁止することができる。具体的には、デバッガを接続してバスマスタとして共有バススレーブ５００上の他バスマスタ専用領域へアクセスしようとした場合に有効である。このとき、まずバスマスタ識別部２００がどのバスマスタからのアクセス要求であるのかを識別する。次に、アクセス可否判定部３１が、アクセス可否情報に基づいて、そのアクセス要求が許可されていない領域へのアクセス要求であることを認識することでそのアクセス要求を禁止することができる。
【００６５】
さらに、バスマスタ１０は共有バススレーブ５００を共有しているため、特定のバスマスタ毎に専用の別途のバススレーブを設ける必要がない。よって、例えば専用のDRAMやSRAM等の別途のバススレーブとバスマスタ１０とを接続するためのバス配線や端子を設けるコストを削減することができる。
【００６６】
＜第２実施形態例＞
図４は、本願発明の第２実施形態例に係るマルチプロセッサシステムの構成図である。第２実施形態例に係るマルチプロセッサシステム１０００のバスマスタ識別部２００は、各バスマスタからアクセス要求とともに各バスマスタの動作状態を示す動作IDを受け付ける。そして、バスマスタ識別部２００は、アクセス要求に基づいてどのバスマスタ１０からのアクセス要求であるかを識別する。さらに、バスマスタ識別部２００は、バスマスタの識別結果、アクセス要求及び動作IDをアクセス可否判定部３１に出力する。複数のバスマスタ１０からアクセス要求が行われている場合には、バスマスタ識別部２００はアクセス要求を受け付けるバスマスタを選択する。また、アクセス可否情報ＤＢ３３には、バスマスタ１０毎の動作状態に応じたアクセス可否情報が記憶されている。アクセス可否判定部３１は、識別したバスマスタ１０の動作状態とアクセス可否情報とに基づいてアクセス可否判定を行う。第２実施形態例のその他の構成は、第１実施形態例と同様である。動作状態としては、例えば実行中のスレッド情報等が挙げられる。
【００６７】
図５は、アクセス可否情報ＤＢ３３に記憶されている動作状態に応じたアクセス可否情報の一例である。動作状態として動作ＩＤ＝０と１がある場合、各バスマスタ１０の動作状態毎に、アクセス禁止開始アドレス及びアクセス禁止終了アドレスによりアクセス禁止領域を指定している。第１バスマスタ１０ａは、動作ＩＤ=０のときに共有バススレーブ５００内のアドレス0x8000＿0000〜8000＿FFFFの領域にアクセスできる。一方、動作ID=1の場合はアドレス0x8000＿0000〜8000＿FFFFの領域へのアクセスは禁止される。
【００６８】
次に、バスマスタ１０から共有バススレーブ５００へアクセス要求が行われた場合のアクセス制御処理について、再び図２を用いて説明する。
【００６９】
ステップＳ１０：バスマスタ識別部２００は、バスマスタ１０からアクセス要求を受け付ける。
【００７０】
ステップＳ１１：バスマスタ識別部２００は、どのバスマスタ１０からのアクセス要求であるかを識別する。さらに、バスマスタ識別部２００は、バスマスタ１０の動作状態を識別してもよい。動作状態の識別は、例えばアクセス要求に伴ってバスマスタ１０から入力される動作ＩＤに基づいて行う。
【００７１】
ステップＳ１２、１３：バスマスタ識別部２００は、バスマスタ１０を選択し、選択したバスマスタ１０のアクセス要求、識別結果及び動作状態をアクセス可否判定部３１に出力する。
【００７２】
ステップＳ１４：アクセス可否判定部３１は、バスマスタ識別部２００からのアクセス要求及び識別結果及び動作状態とアクセス可否情報ＤＢ３３内のアクセス可否情報とを照合する。
【００７３】
ステップＳ１５、１６、１７：アクセスが許可されている場合は、ステップＳ１６においてアクセス許可処理を行う。一方、アクセスが禁止されていると判定された場合は、ステップＳ１７においてアクセス禁止処理を行う。
【００７４】
上記の構成により、共有バススレーブ５００上に、特定のバスマスタ１０が特定の動作状態にあるときのみアクセスすることができる専用領域を確保することができる。このように、バスマスタ毎にアクセス可否判定を行うことに加えて、各バスマスタ１０の動作状態に応じてアクセス可否判定を行うことで、よりセキュリティを高めることができる。例えば、メディア処理プロセッサから構成されるあるバスマスタが、動作状態として、極秘アルゴリズムのメディア処理用プログラムを共有メモリから構成される共有バススレーブ５００から読み出して実行するとする。この動作状態に対して専用の動作IDがバスマスタから出力され、その専用の動作IDの場合にはアクセス可否判定部３１においてアクセス要求が許可される。一方、同一のメディア処理プロセッサにおいて、例えば極秘アルゴリズム以外の別の処理プログラムが開発される場合には、専用の動作ID以外の動作IDが出力される。しかし、その動作IDの場合には、アクセス可否判定部３１においてアクセス要求が許可されない。よって、極秘のメディア処理用プログラムにはアクセスできない。このようなアクセス可否判定により、同一のメディア処理プロセッサにおいて、別の処理プログラムが実行されている場合には、極秘のメディア処理用プログラムを読み出すことを防ぐことが可能となる。
【００７５】
＜第３実施形態例＞
図６は、第３実施形態例に係るマルチプロセッサシステムの構成図である。第３実施形態例に係るマルチプロセッサシステム１０００では、第１バスマスタ１０ａが、アクセス可否情報にアクセスするために専用命令を有している。専用命令としては、例えばアクセス可否情報を読み出すためのリード命令、アクセス可否情報の書き込みや書換のためのライト命令などが挙げられる。そして、アクセス可否情報にアクセスする場合には、第１バスマスタ１０ａは、その専用命令をデコードし、バスマスタ識別部２００に専用命令に基づくアクセス要求を出力する。バスマスタ識別部２００は、アクセス要求をアクセス可否判定部３１に出力する。アクセス可否判定部３１は、第１バスマスタ１０ａからアクセス可否情報へのアクセスのためのアクセス要求を許可するか否かを、アクセス可否情報ＤＢ３３内のアクセス可否情報に基づいて判定する。ここで、アクセス可否情報ＤＢ３３内のアクセス可否情報は、アクセス可否情報へのアクセスを許可するか否かについての制限情報をバスマスタ毎に含んでいる。図７は、アクセス可否情報ＤＢ３３内の制限情報の一例である。図７では、制限情報としてバスマスタ毎にアクセス可否情報へのアクセスが許可されるか否かが設定されている。また、制限情報は、各バスマスタの各種のアクセス可否情報毎にアクセス可能か否かを示す情報であっても良い。つまり、アクセス可否情報へのリードアクセスのみを禁止する、ライトアクセスのみを禁止する、リードアクセス及びライトアクセスの両方を禁止する情報であっても良い。第３実施形態例のその他の構成は、第１実施形態例と同様である
ここで、専用命令に基づいたアクセス可否情報へのアクセスは、例えばレジスタの所定のアドレスにアクセスすることにより行われる。
【００７６】
マルチプロセッサシステムが図６に示すように構成されていると、アクセス可否情報にアクセスし、アクセス可否情報を書き換えることにより次のようにバスマスタのアクセス許可領域を変更することもできる。例えばあるバスマスタがネットワークを介して新たなプログラムをダウンロードしたとする。あるバスマスタがその新たなプログラムを実行するために共有バススレーブ５００における専用領域を拡張する必要が生じた場合、あるバスマスタはアクセス可否情報を書き換えるためのライト命令をデコードし、ライト命令に基づくアクセス要求を出力する。このアクセス要求は、例えば、アクセス可否判定部３１内のレジスタ３５の特定のアドレスにアクセスすることにより実行される。バスマスタ識別部２００は、ライト命令に基づくアクセス要求を受け付け、アクセス要求を行っているバスマスタを識別する。アクセス可否判定部３１は、バスマスタが出力したアクセス要求を許可するか否かを、アクセス可否情報ＤＢ３３内のアクセス可否情報に基づいて判定する。ここで、アクセス可否情報ＤＢ３３内のアクセス可否情報は、ライト命令に基づくアクセス要求を許可するか否かについての制限情報をバスマスタ毎に含んでいる。識別されたバスマスタによるアクセス要求が許可されている場合は、アクセス可否情報へのアクセス要求に基づいてアクセス可否情報ＤＢ３３内のアクセス可否情報を書き換える。この書換によりバスマスタは、拡張された共有バススレーブ５００内の領域を用いて新たなプログラムの実行が可能となる。一方、アクセス可否情報に基づいてアクセスが禁止された場合は、アクセス可否情報の書換の実行は禁止される。
【００７７】
さらに、アクセス可否情報を読み出すリード命令に基づくアクセス要求への制限を行うこともできる。例えば、まずバスマスタ識別部２００が、バスマスタからのリード命令に基づくアクセス要求を受け付け、アクセス要求を出力したバスマスタを識別する。アクセス可否判定部３１は、識別されたバスマスタによる読み出しが許可されている場合にのみ、リード命令に基づいてアクセス可否情報ＤＢ３３内のアクセス可否情報を読み出す。そして、読み出したアクセス可否情報をIF部４００に出力し、リード命令を行ったバスマスタに出力する。
【００７８】
このように、アクセス可否情報へのアクセスの可否を決定することにより、アクセス可否情報のアクセスの自由度を高めつつアクセスが許可されていないバスマスタからの不正なアクセス制限し、セキュリティを高めることができる。また、不正な読み出しを制限しつつアクセス可否情報を読み出すことで、セキュリティを高めつつデバッグ効率を向上させることができる。
【００７９】
上記では、アクセス可否情報へのアクセス要求を共有バスレーブへのアクセス要求と同一バスを使用する例で説明したが、別途、アクセス可否情報へのアクセスのためのアクセス専用バスを設けて行っても良い。
【００８０】
＜第４実施形態例＞
図８は、本願発明の第４実施形態例に係るマルチプロセッサシステムの構成図である。第４実施形態例に係るマルチプロセッサシステム１０００は、バスマスタ識別部２００内にプログラム認証部２１を有している。このプログラム認証部２１によりプログラムが正当なものであると認証された場合にアクセス要求を許可される。第４実施形態例のその他の構成は第１実施形態例と同様である。
【００８１】
プログラム認証部２１は、バスマスタ１０が実行するプログラムが正当なものであるか、不正なものであるかの認証を行い、その認証結果をアクセス可否判定部３１に出力する。プログラムの認証方法としては、例えば公開鍵、秘密鍵及び電子署名等の暗号化技術を用いてプログラム認証を行う。そして、プログラム認証部２１は、認証結果をアクセス可否判定部３１に出力する。
【００８２】
アクセス可否判定部３１は、プログラム認証部２１においてバスマスタ１０が実行するプログラムが正当でないと判定した場合は、バスマスタ１０からのアクセス要求を禁止する。例え、アクセス可否判定部３１が、バスマスタ１０のアクセス要求とアクセス可否情報ＤＢ３３内のアクセス可否情報とを照合し、アクセス要求が許可される場合であってもプログラムが認証されない場合はアクセスが禁止される。つまり、アクセス可否判定部３１は、プログラムが認証され、かつアクセス要求がアクセス可否情報により許可されるものである場合に限りバスマスタ１０のアクセス要求を許可する。
【００８３】
以上のように、第４実施形態例に係るマルチプロセッサシステムでは、バスマスタが認証されないプログラムを実行している場合には、共有バススレーブ内におけるアクセス要求先へのアクセスを禁止することができる。よって、よりセキュリティを高めることができる。なお、この例ではプログラム認証部２１がバスマスタ識別部２００内にあるが、バスマスタ識別部２００内ではなく、独立の機能ブロックとして構成されても良い。また、アクセス可否情報ＤＢ３３内のアクセス可否情報に、アクセス可能と判定するためにプログラムが認証されていることを必要とするか否かの情報を含んでいても良い。
【００８４】
＜第５実施形態例＞
図９は、本願発明の第５実施形態例に係るマルチプロセッサシステムの構成図である。第５実施形態例では、第４実施形態例と同様にプログラム認証を行うと共に、第３実施形態例に示すアクセス可否情報へのアクセス可否判定を行う。第５実施形態例に係るマルチプロセッサシステムの第１バスマスタ１０ａは、第３実施形態例と同様にアクセス可否情報にアクセスするために専用命令を有している。また、アクセス可否情報ＤＢ３３内のアクセス可否情報は、バスマスタ毎にアクセス可否情報へのアクセスを許可するか否かについての制限情報を有している。また、バスマスタ識別部２００は、第４実施形態例と同様にプログラム認証部２１を有している。第５実施形態例のその他の構成は、第１実施形態例と同様である。
【００８５】
第１バスマスタ１０ａは、アクセス可否情報にアクセスする場合には、バスマスタ識別部２００に専用命令に基づくアクセス要求を出力する。バスマスタ識別部２００は、アクセス要求を行っているバスマスタを識別する。バスマスタ識別部２００内のプログラム認証部２１は、バスマスタ１０が実行するプログラムが正当なものであるか、不正なものであるかの認証を行い、その認証結果をアクセス可否判定部３１に出力する。アクセス可否判定部３１は、認証結果、識別結果及びアクセス要求を受け付ける。アクセス可否判定部３１は、アクセス要求を許可するか否かをアクセス可否情報ＤＢ３３内のアクセス可否情報に基づいて判定すると供に、認証結果に基づいてバスマスタ１０からのアクセス要求を許可するまたは禁止する。このように、リード命令やライト命令などの専用命令をデコードしてアクセス要求が行われた場合においても、プログラム認証を併用することでさらにセキュリティを高めることができる。なお、ここではアクセス可否情報にアクセスするための専用命令を有する例を示したが、アクセス可否情報DBはアドレスが割り当てられたレジスタであっても良く、つまりそのアドレスへアクセスすることでアクセス可否情報にアクセスしても良い。
【００８６】
＜第６実施形態例＞
図１０は本願発明の第６実施形態例に係るマルチプロセッサシステムの構成図である。第６実施形態例に係るアクセス制御部を有するマルチプロセッサシステム１０００は、第１バスマスタ識別部２００ａ及び第２バスマスタ識別部２００ｂを有している。第２バスマスタ１０ｂ及び第３バスマスタ１０ｃから構成されるバスマスタ１５０は第１バスマスタ識別部２００ａに接続され、第１バスマスタ１０ａは第２バスマスタ識別部２００ｂに接続される。その他の構成は、第１実施形態例と同様の構成である。
【００８７】
第２バスマスタ１０ｂ及び第３バスマスタ１０ｃのアクセス要求が第１バスマスタ識別部２００ａに出力され、第１バスマスタ１０ａからのアクセス要求が第２バスマスタ識別部２００ｂに出力される。第１バスマスタ識別部２００ａは、アクセス要求を受け付けた場合、第２バスマスタ１０ｂからのアクセス要求であるか第３バスマスタ１０ｃからのアクセス要求であるかを識別する。また、第２バスマスタ１０ｂ及び第３バスマスタ１０ｃ両方からのアクセス要求である場合は、どちらのバスマスタからのアクセス要求を受け付けるかを、例えばアクセス要求を受け付ける優先度に応じて決定する。さらに、第１バスマスタ識別部２００ａは、識別結果を第２バスマスタ識別部２００ｂに出力する。第２バスマスタ識別部２００ｂは、第１バスマスタ１０ａからアクセス要求を受け付け、第１バスマスタ識別部２００ａにより識別されたバスマスタのアクセス要求を受け付けるか、第１バスマスタ１０aのアクセス要求を受け付けるかを決定する。
【００８８】
このように複数のバスマスタ識別部を設けることにより、バスマスタとバスマスタ識別部との間の配線数や配線長を削減することができる。なお、複数のバスマスタ識別部は、バスマスタの数や配線数、配線長を考慮して適宜設けることができる。
【００８９】
＜第７実施形態例＞
図１１は本願発明の第７実施形態例に係るマルチプロセッサシステムの構成図である。マルチプロセッサシステム１０００は、システムＬＳＩ６００及び共有バススレーブ５００を含む。システムＬＳＩ６００は、マルチプロセッサ１００、バスマスタ識別部２００、アクセス制御部３００及びIF（InterFace）部４００が１個のチップ上に含まれるように形成されている。また、共有バススレーブ５００は、システムＬＳＩ６００に対して外付けされている共有領域であり、ＤＲＡＭ、ＳＲＡＭ（Static Random Access Memory）等の外付けの共有メモリ等で構成されている。マルチプロセッサ１００、バスマスタ識別部２００、アクセス制御部３００及びIF（InterFace）部４００及び共有バススレーブ５００の各部の内部構成は、第１実施形態例と同様である。このように、共有バススレーブ５００をシステムＬＳＩ６００に外付けすると、システムＬＳＩを設計した後に共有領域の容量を変更できるなど自由度を高めることができる。
【００９０】
さらに、システムＬＳＩ６００とその外部に接続される共有バススレーブ５００との間でやりとりされるアドレス、ライトデータ及びリードデータ等のアクセスデータを暗号化・復号化するバス暗号部４５０を有していると好ましい。バス暗号部４５０を設けることで、共有バススレーブ５００内における各バスマスタ１０の専用領域へのアクセスが解析されるのを防ぐことができる。
【００９１】
また、図１２に示すようにチップ内に共有バススレーブ５００を含むようにシステムＬＳＩ６１０を構成しても良い。共有バススレーブ５００を１チップ内に含めることで、バスマスタ１０から共有バススレーブへのアクセスの秘匿性を高めることができる。
【００９２】
＜第８実施形態例＞
図１３は本願発明の第８実施形態例に係るマルチプロセッサシステムの構成図である。マルチプロセッサシステム１０００は、システムＬＳＩ６２０、第１共有バススレーブ５００ａ及び第２共有バススレーブ５００ｂを含む。システムＬＳＩ６２０は、マルチプロセッサ１００、バスマスタ識別部２００、アクセス制御部３００、第１IF部４００ａ及び第２IF部４００ｂが１個のチップ上に含まれるように形成されている。第１共有バススレーブ５００ａ及び第２共有バススレーブ５００ｂは、第１IF部４００ａ及び第２IF部４００ｂに接続されており、システムＬＳＩ６２０内の複数のバスマスタ１０により共有されている。また、アクセス制御部３００内には、第１共有バススレーブ５００ａに対応する第１アクセス可否判定部３１ａ及び第２共有バススレーブ５００ｂに対応する第２アクセス可否判定部３１ｂが設けられている。第１IF部４００ａ及び第２IF部４００ｂは、それぞれ第１共有バススレーブ５００ａ及び第１アクセス可否判定部３１ａ間と、第２共有バススレーブ５００ｂ及び第２アクセス可否判定部３１ｂ間とに設けられている。ここで、第１アクセス可否判定部３１ａ及び第２アクセス可否判定部３１ｂは、第１実施形態例のアクセス可否判定部３１と同様の構成である。また、第１IF部４００ａ及び第２IF部４００ｂは、第１実施形態例のIF部４００と同様の構成である。その他のマルチプロセッサ１００、バスマスタ識別部２００アクセス可否情報DB３３は第１実施形態例と同様の構成である。
【００９３】
また、図１４に示すようにチップ内に第２共有バススレーブ５００ｂを含むようにシステムＬＳＩ６３０を構成し、システムＬＳＩ６３０に第１共有バススレーブ５００ａを接続しても良い。よって、バスマスタ１０から第２共有バススレーブ５００ｂとへのアクセスの秘匿性を高めることができる。以上のように、第１共有バススレーブ５００ａ及び第２共有バススレーブ５００ｂをシステムLSI内部に内蔵あるいは外付けするなど様々な態様を有しつつ、アクセス制限可能なマルチプロセッサシステムを得ることができる。共有バススレーブを外付けした場合には、共有領域の容量を変更できるなど自由度を高めることができる。
【００９４】
＜第９実施形態例＞
図１５は本願発明の第９実施形態例に係るマルチプロセッサシステムの構成図である。マルチプロセッサシステム１０００は、例えばファクシミリ装置など大容量のデータを処理するデータ処理システムであり、システムＬＳＩ６４０、スキャナやプリンタなどの周辺回路部９００及びDRAM、SRAM等のメモリ部９５０を含む。システムＬＳＩ６４０は、周辺回路部９００及びメモリ部９５０に接続されており、マルチプロセッサ１００、バスマスタ識別部２００、アクセス制御部３００、DMA制御部７００及びメモリスケジューラ８００が１個のチップ上に含まれるように形成されている。この第９実施形態例に係るマルチプロセッサシステム１０００では、データの処理効率を向上させるために、マルチプロセッサ１００を介さずに周辺回路部９００とメモリ９５０との間で直接データ転送を行う。以下に、DMA制御部７００及びメモリスケジューラ８００の構成及び動作について説明する。
【００９５】
DMA制御部７００は、ホストIF部４００、共有バススレーブ５００及び周辺回路IF部７５０を含んで構成される。共有バススレーブ５００は、マルチプロセッサ１００を構成する複数のバスマスタ１０により共有されている。また、共有バススレーブ５００は、転送モード、転送先または転送元のアドレス、転送バイト数などの直接データ転送を行うために必要な情報（以下、DMA制御情報）を記憶するDMA制御レジスタである。DMA制御部７００の周辺回路IF部７５０は、メモリスケジューラ８００及び周辺回路部９００と接続される。また、メモリスケジューラ８００は、システムＬＳＩ６４０外部のメモリ９５０と接続されており、メモリにアクセスするためのコマンド生成などを行う。直接メモリ転送が行われる場合、スキャナやプリンタなどの周辺回路部９００から入力されたデータは、共有バススレーブ５００内のDMA制御情報に基づいて、周辺回路IF部７５０及びメモリスケジューラ８００を介してメモリ９５０に転送される。
【００９６】
ここで、バスマスタ１０から共有バススレーブ５００へのアクセス要求がなされた場合は、第１実施形態例と同様にアクセス可否情報に基づいてアクセス制限が行われる。まずバスマスタ識別部２００においてアクセス要求を行ったバスマスタ１０の識別を行う。そして、アクセス可否判定部３１は、アクセス可否情報ＤＢ３３内のアクセス可否情報に基づいてアクセス可否の判定を行う。アクセス可否判定部３１によりアクセスが許可された場合は、ホストIF部４００を介して共有バススレーブ５００へアクセスが行われる。このように、DMA制御レジスタである共有バススレーブ５００へのアクセス制限を行うことで、DMA制御情報への不正アクセスを防止することができる。つまり、DMA制御レジスタである共有バススレーブ５００内にバスマスタの専用領域を確保することができる。よって、例えば暗号データを周辺回路部９００から読み出して復号するDMA制御情報が書き換えられることによる不正読み出し等を防止することができる。
【００９７】
なお、ここでは共有バススレーブがDMA制御レジスタである例を示したが、それに限定するものではない。その他、アキュムレータ、スタックレジスタ、プログラムカウンタ、割り込みレジスタ、フラグレジスタなどの各種制御レジスタを含む。
【００９８】
なお、これまでの実施形態例においては、複数バスマスタを含む１００をマルチプロセッサと称したが、複数のプロセッサでなく単にマルチマスタであっても良い。
【産業上の利用可能性】
【００９９】
本発明を用いれば、特定のバスマスタ以外のバスマスタによる不正なアクセスを禁止し、セキュリティを向上することができるため、マルチプロセッサシステムのセキュリティ向上に利用することができる。
【図面の簡単な説明】
【０１００】
【図１】第１実施形態例に係るマルチプロセッサシステムの構成図。
【図２】アクセス可否情報ＤＢ３３に記憶されているアクセス可否情報の一例。
【図３】アクセス制御処理の一例を示すフローチャートの一例。
【図４】第２実施形態例に係るマルチプロセッサシステムの構成図。
【図５】アクセス可否情報ＤＢ３３に記憶されている動作状態に応じたアクセス可否情報の一例。
【図６】第３実施形態例に係るマルチプロセッサシステムの構成図。
【図７】アクセス可否情報ＤＢ３３内の書換命令許可情報の一例。
【図８】第４実施形態例に係るマルチプロセッサシステムの構成図。
【図９】第５実施形態例に係るマルチプロセッサシステムの構成図。
【図１０】第６実施形態例に係るマルチプロセッサシステムの構成図。
【図１１】第７実施形態例に係るマルチプロセッサシステムの構成図。
【図１２】第７実施形態例に係るマルチプロセッサシステムのその他の構成図。
【図１３】第８実施形態例に係るマルチプロセッサシステムの構成図。
【図１４】第８実施形態例に係るマルチプロセッサシステムのその他の構成図。
【図１５】第９実施形態例に係るマルチプロセッサシステムの構成図。
【符号の説明】
【０１０１】
１０  バスマスタ
１９  プログラム認証部
３１  アクセス可否判定部
３３  アクセス可否情報ＤＢ
４１  ダミー応答部
１００  マルチプロセッサ
２００  バスマスタ識別部
３００  アクセス制御部
４００  IF部
５００  共有バススレーブ
６００，６１０，６２０，６３０，６４０  システムＬＳＩ
７００  DMA制御部
【図１】
2007264679.tif 000003
【図２】
2007264679.tif 000004
【図３】
2007264679.tif 000005
【図４】
2007264679.tif 000006
【図５】
2007264679.tif 000007
【図６】
2007264679.tif 000008
【図７】
2007264679.tif 000009
【図８】
2007264679.tif 000010
【図９】
2007264679.tif 000011
【図１０】
2007264679.tif 000012
【図１１】
2007264679.tif 000013
【図１２】
2007264679.tif 000014
【図１３】
2007264679.tif 000015
【図１４】
2007264679.tif 000016
【図１５】
2007264679.tif 000017