JP2007264679A - アクセス制御装置及びアクセス制御方法 - Google Patents

アクセス制御装置及びアクセス制御方法 Download PDF

Info

Publication number
JP2007264679A
JP2007264679A JP2004175207A JP2004175207A JP2007264679A JP 2007264679 A JP2007264679 A JP 2007264679A JP 2004175207 A JP2004175207 A JP 2004175207A JP 2004175207 A JP2004175207 A JP 2004175207A JP 2007264679 A JP2007264679 A JP 2007264679A
Authority
JP
Japan
Prior art keywords
access
bus master
bus
shared
area
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.)
Pending
Application number
JP2004175207A
Other languages
English (en)
Inventor
Masaaki Harada
昌明 原田
Hideyuki Kanzaki
英之 神崎
Tomohiko Kitamura
朋彦 北村
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004175207A priority Critical patent/JP2007264679A/ja
Priority to PCT/JP2005/009512 priority patent/WO2005121979A1/ja
Publication of JP2007264679A publication Critical patent/JP2007264679A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Abstract

【課題】 本発明は、コスト増を低減しつつマルチプロセッサシステムにおけるセキュリティを向上することを目的とする。
【解決手段】 複数のバスマスタから前記複数のバスマスタにより共有される少なくとも1の共有バススレーブへのアクセスについてアクセス可否判定を行うアクセス制御装置であって、前記バスマスタから前記共有バススレーブの所定領域へのアクセスを禁止するアクセス可否情報を格納するアクセス可否情報格納部と、前記バスマスタから前記共有バススレーブの所望の領域にアクセス要求が行われた場合、前記アクセス可否情報格納部のアクセス可否情報に基づいて、前記バスマスタが前記アクセス要求先の共有バススレーブの領域にアクセスが可能か否かを判定するアクセス可否判定部とを有するアクセス制御装置を提供する。
【選択図】 図1

Description

本発明は、バスマスタ及び共有バススレーブ間のアクセス制御を行うアクセス制御装置に関するものである。
現在、LSI(Large Scale Integrated circuit)の高機能化、高集積化が進む中、複数のプロセッサから構成されるマルチプロセッサシステムが一般化している。また、デジタルAV家電分野などでは、低コスト化のため主記憶装置などの情報資源を共有するユニファイドメモリ構成が欠かせない。そのため、あるプロセッサの秘匿プログラムが共有メモリ内に記憶されている場合に、他のプロセッサがその秘匿プログラムを改竄したり盗み出したりする等のセキュリティ低下が問題となっている。
特許文献1には、共有メモリへのアクセス制限を実現する機構として、各プロセッサがアクセス制限機構を有するマルチプロセッサシステムが開示されている。そして、各プロセッサ内のアクセス制限機構が、アドレスの生成等を阻止するソフトウェアプログラムを実行することによりアクセス制限を行っている。また、各プロセッサ毎に専用メモリを設け、特定のプロセッサの専用メモリには、特定のプロセッサのみがアクセスできるようにする方法が特許文献2に開示されている。
特許第2661733号公報 特開平6−96235号公報
しかし、特許文献1のマルチプロセッサシステムでは、アクセス制限機構として中央処理装置毎にアドレス生成保護装置が設けられている。そして、各アドレス生成保護装置が、対応するプロセッサの共有メモリへのアクセス制限をソフト的処理により行う。また、アクセス制限を行うソフトの書換制限は行われていない。よって、例えばアクセス制限を実行するプログラムのシーケンスやハードウェアの仕様書などが搾取され、プログラムが改竄されると、他のプロセッサのアクセス制限領域に不正にアクセスできるようになる。その結果、秘密データやプログラムが改竄されたり盗み出される危険性が生じ、セキュリティ上問題となる。また、特許文献2の各プロセッサ専用の専用メモリを設ける方法では、専用メモリとして専用RAM(Random Access Memory)や専用ROM(Read Only Memory)を別途設ける必要がありマルチプロセッサシステムのコスト増を招く。特に、専用メモリをLSIに内蔵する方法では、使用する専用メモリの容量をLSI設計段階でFIXさせなければならないため柔軟性に欠ける。また、専用メモリをマルチプロセッサを搭載したシステムLSIに外付けする方法では、外付けの専用メモリとLSIとの接続を行うためにLSIの外部端子等が増加し、LSIのコスト増を招く。
そこで、本発明は、コスト増を低減しつつマルチプロセッサシステムにおけるセキュリティを向上させることを目的とする。
本願第1発明は、上記の課題を解決するために、複数のバスマスタから前記複数のバスマスタにより共有される少なくとも1の共有バススレーブへのアクセスについてアクセス可否判定を行うアクセス制御装置であって、以下の構成要素を有する。
・前記バスマスタから前記共有バススレーブの所定領域へのアクセスを禁止するアクセス可否情報を格納するアクセス可否情報格納部。
・前記バスマスタから前記共有バススレーブの所望の領域にアクセス要求が行われた場合、前記アクセス可否情報格納部のアクセス可否情報に基づいて、前記バスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定するアクセス可否判定部。
バスマスタから共有バススレーブの所望の領域にアクセス要求が行われた場合、アクセス可否判定部がアクセス可否情報に基づいてアクセス可否の判定を行う。ここで、共有バススレーブとは、複数のバスマスタに共有される汎用メモリや各種制御レジスタ等の共有資源を意味する。アクセス可否判定部によりアクセスが禁止されると、バスマスタは共有バススレーブのアクセス要求先の領域にアクセスできない。よって、アクセス可否判定部により許可されたバスマスタのみが共有バススレーブの所定領域にアクセスができるため、共有バススレーブ上に特定のバスマスタの専用領域を確保することができる。そのため、特定のバスマスタ以外のバスマスタによる不正なアクセスを禁止し、セキュリティを向上させることができる。例えば、プログラムの改竄や誤動作により、特定のバスマスタ以外のバスマスタが特定のバスマスタの専用領域へアクセスしようとした場合でも、アクセス可否判定部によりアクセスを禁止することができる。
また、バスマスタは共有バススレーブを共有しているため、特定のバスマスタ毎に専用のバススレーブを別途設ける必要がない。よって、別途のバススレーブとバスマスタとを接続するためのバス配線や端子を設けるコストを削減することができる。
本願第2発明は、本願第1発明において、前記バスマスタから前記共有バススレーブの所望の領域へのアクセス要求に基づいて、前記アクセス要求を行ったバスマスタを識別するバスマスタ識別部をさらに含み、前記アクセス可否判定部は、前記バスマスタ識別部により識別されたバスマスタのアクセス可否情報に基づいて判定を行うことを特徴とするアクセス制御装置を提供する。
バスマスタ識別部は、いずれのバスマスタからアクセス要求が行われているかを識別し、アクセス可否判定部に出力する。バスマスタ識別部は、複数のバスマスタからアクセス要求が行われた場合、いずれのバスマスタからのアクセス要求を受け付けるかを選択するようにしても良い。例えば、優先度の高いバスマスタからのアクセス要求を受け付ける。
本願第3発明は、本願第1発明において、前記アクセス可否情報は、バスマスタ毎の共有バススレーブにおけるアクセス禁止領域を指定する禁止アドレスまたはアクセス許可領域を指定する許可アドレスであり、前記アクセス可否判定部は、前記バスマスタに対応する禁止アドレスまたは許可アドレスに基づいて、前記バスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定することを特徴とするアクセス制御装置を提供する。
アクセス可否情報格納部には、バスマスタ毎に共有バススレーブ内のアクセスが禁止される領域の禁止アドレスまたはアクセスが許可される領域の許可アドレスが格納されている。この禁止アドレスまたは許可アドレスと、バスマスタがアクセス要求を行った共有バススレーブの領域のアドレスとを比較する。そして、アクセス要求先のアドレスが禁止アドレスである場合は、バスマスタによるアクセスを禁止することができる。一方、アクセス要求先のアドレスが許可アドレスである場合は、バスマスタによるアクセスを許可することができる。
本願第4発明は、本願第3発明において、前記禁止アドレスは、バスマスタ毎の共有バススレーブへの書き込みアクセス禁止領域、または共有バススレーブからの読出しアクセス禁止領域または共有バススレーブへの全アクセス禁止領域を指定するアドレスであり、前記許可アドレスは、共有バススレーブへの読み出しアクセス許可領域、または共有バススレーブからの読み出しアクセス許可領域または共有バススレーブへの全アクセス許可領域を指定するアドレスであることを特徴とするアクセス制御装置を提供する。
バスマスタ毎に共有バススレーブからのデータの読み出しのみ許可する、書き込みのみ許可する等の自由度を高めることができる。
本願第5発明は、本願第1発明において、前記アクセス可否情報は、各バスマスタの動作状態毎に格納されており、前記アクセス可否判定部は、前記アクセス要求を行ったバスマスタの動作状態を受信し、その動作状態と前記バスマスタの動作状態毎のアクセス可否情報とに基づいて、前記アクセス要求を行ったバスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定することを特徴とするクセス制御装置を提供する。
各バスマスタの動作状態に応じてバスマスタがアクセス要求先の領域へアクセス可能か否かを判定する。よって、共有バススレーブ上に、特定のバスマスタが特定の動作状態にあるときのみアクセスすることができる専用領域を確保することができる。また、バスマスタの動作状態に応じてアクセス可否を行うことで、よりセキュリティを高めることができる。
本願第6発明は、本願第1発明において、前記共有バススレーブは、各種制御レジスタであり、前記アクセス可否情報は、前記各種制御レジスタへのアクセスを禁止する情報であり、前記アクセス可否判定部は、前記バスマスタから前記各種制御レジスタの所望の領域にアクセス要求が行われた場合、前記各種制御レジスタへのアクセス可否情報に基づいて、前記アクセス要求を行ったバスマスタが前記アクセス要求先の各種制御レジスタの領域にアクセス可能か否かを判定することを特徴とするアクセス制御装置を提供する。
バスマスタから共有の各種制御レジスタの所望の領域にアクセス要求が行われた場合、アクセス可否判定部がアクセス可否情報に基づいてアクセス可否の判定を行う。よって、アクセス可否判定部により許可されたバスマスタのみが共有の各種制御レジスタの領域にアクセスができる。例えば、特定のバスマスタ以外のバスマスタが不正に各種制御レジスタにアクセスし、各種制御情報が書き換えられることを防止することができる。
本願第7発明は、本願第6発明において、前記各種制御レジスタは、DMA制御情報を格納するDMA制御レジスタであり、前記アクセス可否情報は、前記DMA制御レジスタへのアクセスを禁止する情報であり、前記アクセス可否判定部は、前記バスマスタから前記DMA制御レジスタの所望の領域にアクセス要求が行われた場合、前記DMA制御レジスタへのアクセス可否情報に基づいて、前記アクセス要求を行ったバスマスタが前記アクセス要求先のDMA制御レジスタの領域にアクセス可能か否かを判定することを特徴とするアクセス制御装置を提供する。
特定のバスマスタのみが起動可能なDMA、例えば暗号データを復号しLSI内部のローカルメモリに転送するDMAを、特定のバスマスタ以外のバスマスタが転送先をLSI外部メモリに指定してDMA起動し、復号化された平文データをLSI外部で盗み出すといった、不正なDMA起動を防止することができる。
本願第8発明は、本願第1発明において、前記バスマスタ及び前記共有バススレーブ間のデータバス上に、前記バスマスタから前記共有バススレーブに出力されるデータを暗号化し、前記共有バススレーブから前記バスマスタに出力されるデータを復号化するバス暗号部をさらに含むことを特徴とするアクセス制御装置を提供する。
バスマスタ及び共有バススレーブ間のデータバス上にバス暗号部を設けることで、データバスを監視することによる解析を妨げることができる。よって、セキュリティをより高めることができる。
本願第9発明は、本願第1発明において、前記アクセス要求を行ったバスマスタが実行するプログラムを認証するプログラム認証部をさらに含み、前記アクセス可否判定部は、前記プログラム認証部での認証結果及び前記アクセス可否情報格納部のアクセス可否情報に基づいて、前記アクセス要求を行ったバスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定することを特徴とするアクセス制御装置を提供する。
本願第10発明は、本願第9発明において、前記バスマスタは、前記アクセス可否情報格納部に格納されたアクセス可否情報にアクセスするための専用命令を有し、前記専用命令実行時に前記専用命令をデコードして前記アクセス可否情報にアクセスするためのアクセス要求を発行し、前記アクセス可否判定部は、前記専用命令に基づくアクセス要求を受信し、前記プログラム認証部から受信した認証結果に基づいて前記アクセス要求を実行するか否かを判定することを特徴とするアクセス制御装置を提供する。
プログラム認証を行うと共に、アクセス可否情報へのアクセス可否判定をおこなうことで、アクセス可否情報の不正な書換を防止することが可能となり、かつアクセス可否情報の読み出しや書き換えなどのアクセスの自由度を高めることができる。
本願第11発明は、本願第1発明において、前記バスマスタは、前記アクセス可否情報格納部に格納されたアクセス可否情報にアクセスするための専用命令を有し、前記専用命令実行時に前記専用命令をデコードして前記アクセス可否情報にアクセスするためのアクセス要求を発行することを特徴とするアクセス制御装置を提供する。
アクセス可否情報にアクセスするための専用命令を有することで、アクセス可否情報を読み出したり、書き換えたりするなどの自由度を高めることができる。
本願第12発明は、本願1発明において、前記アクセス可否情報格納部は特定のアドレスが割り当てられたレジスタであり、前記バスマスタが前記特定のアドレスにアクセスすることで、前記アクセス可否情報格納部に格納されたアクセス可否情報へのアクセスが可能となることを特徴とするアクセス制御装置を提供する。
本願第13発明は、本願第11または第12発明において、前記アクセス可否情報は、アクセス可否情報へのアクセスを許可するか否かについての制限情報を含み、前記アクセス可否判定部は、前記制限情報に基づいて、前記アクセス可否情報にアクセス可能か否かを判定することを特徴とするアクセス制御装置を提供する。
アクセス可否情報へのアクセスの可否を決定することにより、アクセス可否情報へのアクセスの自由度を高めつつアクセスが許可されていないバスマスタからの不正なアクセス制限し、セキュリティを高めることができる。例えば、アクセス可否情報へのアクセスによりアクセス可否情報が書き換えられる場合であっても、書き換えの際のセキュリティを確保しつつ、書き換えによるアクセス許可領域の変更等、自由度を高めることができる。
本願第14発明は、本願第1発明において、前記アクセス可否判定部において、前記アクセス要求を行ったバスマスタが前記アクセス要求先の共有バススレーブの領域にアクセスができないと判定された場合、前記アクセス要求を行ったバスマスタにダミー応答を行うダミー応答部をさらに含むことを特徴とするアクセス制御装置を提供する。
ここで、ダミー応答とは、実際のアクセス要求先から得た応答であるとバスマスタに誤認させるダミーの応答を意味する。例えば、バスマスタから共有バススレーブのアクセス禁止領域にライト動作を行う場合、要求どおりのライト動作を実行せずにアクセス要求の受け付け完了やデータ書き込み完了等のダミー応答を行う。また、アクセス禁止領域にリード動作を行う場合、要求どおりのリード動作を実行せずにアクセス要求の受け付け完了等のダミー応答を行う。よって、共有バススレーブ上のアクセス禁止領域とアクセス許可領域とを見分けるのを困難にし、アクセス禁止領域へアクセスするための解析を妨げることができる。
本願第15発明は、本願第1発明において、前記アクセス可否判定部において、前記アクセス要求を行ったバスマスタが前記アクセス要求先の共有バススレーブの領域にアクセスができないと判定された場合、前記アクセス要求先の共有バススレーブにダミーアクセスを行うダミーアクセス部をさらに含むことを特徴とするアクセス制御装置を提供する。
ここで、ダミーアクセスとは、実際のアクセス要求先に対してアクセスが行われたとバス観測者に誤認させるダミーのアクセスを意味する。バスマスタが共有バススレーブの領域にアクセスできないと判定された場合でも何らかのダミーアクセスを共有バススレーブに対して行う。このダミーアクセスによりバスマスタ及び共有バススレーブ間のデータバスを監視することによる解析を妨げることができる。例えば、共有バススレーブ上のアクセス禁止領域とアクセス許可領域とを見分けるためのデータバスの解析を妨害することができる。ダミーアクセスとしては、ライト動作の場合、例えばアクセス先の領域のデータをマスクしつつ書き込みを行ったり、ライトコマンドの代わりにリードコマンドを発行する等のアクセスを行う。また、リード動作の場合、例えばアクセスが許可されている領域に対してリードコマンドを発行する等のアクセスを行う。
本願第16発明は、複数のバスマスタと、前記複数のバスマスタから前記複数のバスマスタにより共有される少なくとも1の共有バススレーブへのアクセスについてアクセス可否判定を行うアクセス制御装置とを含み、前記アクセス制御装置は、前記バスマスタから前記共有バススレーブへのアクセスを禁止するアクセス可否情報を格納するアクセス可否情報格納部と、前記バスマスタから前記共有バススレーブの所望の領域へのアクセス要求が行われた場合、前記アクセス可否情報格納部のアクセス可否情報に基づいて、前記バスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定するアクセス可否判定部とを有することを特徴とするシステムLSIを提供する。
以上の構成により本願第1発明と同様の作用効果を有するシステムLSIを得ることができる。
本願第17発明は、本願第16発明において、前記複数のバスマスタがアクセス可能な別バススレーブをさらに含むことを特徴とするシステムLSIを提供する。バスマスタは1つに限定されず複数設けることができる。
本願第18発明は、複数のバスマスタから前記複数のバスマスタにより共有される少なくとも1の共有バススレーブへのアクセスについてアクセス可否判定を行うアクセス制御方法であって、前記バスマスタから前記共有バススレーブへのアクセスを禁止するアクセス可否情報を格納する格納ステップと、前記バスマスタから前記共有バススレーブの所望の領域へのアクセス要求が行われた場合、前記アクセス可否情報格納部のアクセス可否情報に基づいて、前記バスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定する判定ステップとを含むことを特徴とするアクセス制御方法を提供する。
本願発明のアクセス制御装置を用いれば、特定のバスマスタ以外のバスマスタによる共有バススレーブへの不正なアクセスを禁止し、セキュリティを向上させることができる。
<発明の概要>
本願発明のアクセス制御部を有するマルチプロセッサシステムは、各プロセッサがメモリ等の資源を共有している。このマルチプロセッサシステムの共有メモリは、その領域が分割されプロセッサ毎に割り当てられている特定プロセッサ専用領域と、マルチプロセッサで共有されている共有領域とで構成されている。また、マルチプロセッサシステムを構成する複数のプロセッサは、共有メモリへのアクセスを制限するアクセス制御部に接続されている。このアクセス制御部は、プロセッサから共有メモリの所望の領域にアクセス要求が行われた場合、そのプロセッサに割り当てられた領域以外のアクセスを禁止する。よって、特定のプロセッサ以外のプロセッサによる不正なアクセスを禁止し、セキュリティを向上させることができる。
<第1実施形態例>
図1は本願発明の第1実施形態例に係るマルチプロセッサシステムの構成図である。
(1)構成
第1実施形態例に係るアクセス制御部を有するマルチプロセッサシステム1000は、マルチプロセッサ100、バスマスタ識別部200、アクセス制御部300、IF(InterFace)部400及び共有バススレーブ500を含む。マルチプロセッサ100は、プロセッサである第1バスマスタ10a、第2バスマスタ10b、第3バスマスタ10c、・・・、を有している。この第1バスマスタ10a、第2バスマスタ10b、第3バスマスタ10c、・・・は、メモリ等からなる共有資源として共有バススレーブ500を共有している。バスマスタ識別部200は、第1バスマスタ10a、第2バスマスタ10b、第3バスマスタ10c、・・・と接続されており、各バスマスタ10からアクセス要求を受け付ける。バスマスタ識別部200での識別結果及びアクセス要求がアクセス制御部300へ入力され、IF部400を介して共有バススレーブ500へ入力される。そして、共有バススレーブ500からのアクセス結果がIF部400を介して各バスマスタ10へ出力される。
以下に、共有バススレーブ500、バスマスタ識別部200、アクセス制御部300及びIF部400について説明する。
(1−1)共有バススレーブ
共有バススレーブ500は、汎用メモリ等であり、第1バスマスタ10a、第2バスマスタ10b、第3バスマスタ10c、・・・により共有される。共有バススレーブ500は分割され、図1に示すようにバスマスタ毎に第1バスマスタ専用領域50a、第2バスマスタ専用領域50b、第3バスマスタ専用領域50c、・・・が割り当てられ、さらに各バスマスタ10に共有される共有領域51が割り当てられている。
(1−2)バスマスタ識別部
バスマスタ識別部200は、バスマスタ10から共有バススレーブ500へのアクセス要求を受け付けると、どのバスマスタ10からのアクセス要求であるかを識別する。そして、アクセス要求及び識別結果をアクセス制御部300に出力する。複数のバスマスタ10からアクセス要求が行われている場合には、例えば優先度に応じてどのバスマスタ10からのアクセス要求を優先するかを決定する。バスマスタの識別方法としては、本実施形態例では、複数のバスアクセス入力ポートがそれぞれ特定のバスマスタと1対1に対応するため、どの入力ポートからのバスアクセスかを検知することでバスマスタを識別する方法が考えられる。また、アクセス要求は、例えば共有バススレーブ500内の所望の領域へアクセスするためのアドレス、書き込みデータ等の信号により行われる。
(1−3)アクセス制御部
アクセス制御部300は、アクセス可否判定部31及びアクセス可否情報DB33を有している。アクセス可否情報DB33には、バスマスタ10毎にアクセス可否情報が記憶されている。アクセス可否情報とは、バスマスタ10毎における共有バススレーブ500の所定領域へのアクセスを禁止する情報である。図2は、アクセス可否情報DB33に記憶されているアクセス可否情報の一例である。図2では、共有バススレーブ500内のアクセス禁止領域を、バスマスタ10毎にアクセス禁止領域開始アドレス及びアクセス禁止領域終了アドレスにより指定している。ここで、アクセス禁止領域開始アドレスとアクセス禁止領域終了アドレスが同一アドレスである場合、アクセス禁止領域が存在しないものとする。図2のアクセス可否情報に基づけば、第1バスマスタ10aのみが共有バススレーブ500内アドレス0x8000_0000〜8000_FFFFの64KB空間にアクセス可能である。ここで、アクセス禁止領域は、共有バススレーブ500への書き込みアクセスのみを禁止する領域、または、共有バススレーブ500からの読出しアクセスのみを禁止する領域、または、書き込み及び読み出しアクセスの両方を禁止する領域、または全てのアクセスを禁止する領域であっても良い。このようにすることで、バスマスタ毎に共有バススレーブからのデータの読み出しのみ許可する、書き込みのみ許可する等の自由度を高めることができる。
アクセス可否判定部31は、バスマスタ識別部200から入力されたアクセス要求及び識別結果とアクセス可否情報DB33内のアクセス可否情報とを照合することによりアクセス可否判定を行う。例えば、バスマスタ識別部200により第2バスマスタ10bが識別され、第2バスマスタ10bから共有バススレーブ500内のアドレス0x8000_0000へのアクセス要求がアクセス可否判定部31に入力されたとする。アクセス可否判定部31は、アクセス可否情報DB33内を参照し、第2バスマスタ10bによるアドレス0x8000_0000〜8000_FFFFへのアクセスが禁止されていることに基づいて、第2バスマスタ10bのアドレス0x8000_0000へのアクセスを禁止する。一方、第2バスマスタ10bからアドレス0x8000_0000〜8000_FFFF以外へのアクセス要求が行われた場合には、アクセス可否判定部31は、第2バスマスタ10bの共有バススレーブ500へのアクセス要求を許可する。アクセス可否判定部31は、この判定結果をIF部400に出力する。
ここで、バスマスタ識別部200とアクセス制御部300との接続がハードワーイヤード構成であると、識別結果の改竄等を防止できるので好ましい。
上記では、アクセス可否情報はアクセス禁止領域に関する情報であるが、バスマスタ10毎における共有バススレーブ500の所定領域へのアクセスを許可するアクセス許可領域を指定するアクセス許可アドレスであっても良い。ここで、アクセスが許可されるアクセス許可領域は、共有バススレーブ500への書き込みアクセスのみを許可する領域、または、共有バススレーブ500からの読出しアクセスのみを許可する領域、または、書き込み及び読み出しの両方を許可する領域、または全てのアクセスを禁止であっても良い。アクセス許可領域へのアクセス要求が行われた場合には、アクセス要求を行ったバスマスタから共有バススレーブへのアクセスが許可される。一方、アクセス許可領域以外へのアクセス要求が行われた場合には、アクセス要求を行ったバスマスタから共有バススレーブ500へのアクセスは禁止される。
バスマスタ10によるアクセス要求は、バスマスタ10がアクセス可否情報DB33に割り当てられた特定のアドレスを指定することにより行われても良い。このとき、アクセス可否情報DB33は、例えば特定のアドレスが割り当てられたレジスタである。
(1−4)IF部
IF部400は、アクセス要求及びアクセス可否判定部31からの判定結果を受け付ける。IF部400は、このアクセス要求及び判定結果に基づいて共有バススレーブ500にアクセスするためのコマンド生成を行う。例えば、共有バススレーブ500がDRAM(Dynamic Random Access Memory)である場合には、DRAMを制御するためのRAS(Row Address Strobe signal)、CAS(Column Address Strobe signal)等のコマンドを生成する。IF部400は、バスマスタ10による共有バススレーブ500内のアクセス要求先の領域へのアクセスが許可されている場合は、生成したコマンドに基づいてアクセス要求が行われた領域にアクセスし、データの読み出しやデータの書き込みなどを実行する。データが読み出された場合には、IF部400はアクセス要求を行ったバスマスタ10に対して読み出したデータを出力する。
一方、IF部400は、アクセス可否判定部31においてアクセスが禁止された場合は、アクセス要求先の領域へのアクセスを禁止する通知を、アクセス要求を行ったバスマスタ10に行っても良い。
IF部400は、ダミー応答を行うダミー応答部41とダミーアクセスを行うダミーアクセス部42をさらに有していると好ましい。ここで、ダミー応答とは、アクセス要求先の共有バススレーブ500の領域にバスマスタ10がアクセスできないと判定された場合において、実際のアクセス要求先から得た応答であるとバスマスタ10に誤認させるために行うダミーの応答を意味する。ダミー応答部41は、アクセス可否判定部31によりバスマスタ10からのアクセス要求がアクセス禁止領域へのアクセス要求であると判定されると、バスマスタ10に対してダミーの応答を返す。例えば、バスマスタ10から共有バススレーブ500のアクセス禁止領域にライト動作が要求された場合、ダミー応答部41がアクセス要求の受け付け完了やデータ書き込み完了等のダミーの応答を作成する。そして要求どおりのライト動作を行わずに、作成したダミー応答をバスマスタ10に行う。また、ダミーアクセス部42は、共有バススレーブ500内のアクセス要求先の領域とは関係ないダミー領域にアクセスしライト動作を行っても良い。一方、バスマスタ10からアクセス禁止領域にリード動作の要求が行われた場合、要求どおりのリード動作を行わずに、ダミー応答部41がアクセス要求の受け付け完了や所定のリードデータ等のダミーの応答を作成してダミー応答を行う。また、ダミーアクセス部42は、アクセス要求先の領域とは関係ないダミー領域にアクセスしリード動作を行っても良い。よって、共有バススレーブ500上のアクセス禁止領域とアクセス許可領域とを見分けるのを困難にし、アクセス禁止領域へアクセスするための解析を妨げることができる。ランダムなデータあるいは固定値をバスマスタに出力すると、さらに解析を困難にすることができ好ましい。
またダミーアクセスとは、アクセス要求先の共有バススレーブ500の領域にバスマスタ10がアクセスできないと判定された場合、実際のアクセス要求先に対して行われたと、IF部400と共有バススレーブ500との間の信号を観測して情報を不正に盗み出そうとする人に誤認させるために行うダミーのアクセスを意味する。バスマスタ10が共有バススレーブ500の領域にアクセスできないと判定された場合でも何らかのダミーアクセスを共有バススレーブ500に対して行う。よって、バスマスタ10及び共有バススレーブ500間のデータバスを監視することによる解析を妨げることができる。例えば、データバスをトレースすることによって共有バススレーブ500上のアクセス禁止領域とアクセス許可領域とを見分けることを妨害することができる。ダミーアクセスとしては、アクセス禁止領域へのライト動作の場合、例えばアクセス要求先の領域のデータをマスクしつつ書き込みを行う、ライトコマンドの代わりにリードコマンドを発行する、アクセスが許可されており書き込みを行っても影響のない領域に対して書き込みを行う等のダミーアクセスを行う。また、アクセス禁止領域へのリード動作の場合、例えばアクセスが許可されている領域に対してリードコマンドを発行する等のアクセスを行う。
(2)バスマスタからバススレーブへのアクセス制御処理
次に、マルチプロセッサ100内のバスマスタ10から共有バススレーブ500へアクセス要求が行われた場合のアクセス制御処理について説明する。図3は、アクセス制御処理の一例を示すフローチャートの一例である。
ステップS10:バスマスタ識別部200は、バスマスタ10から共有バススレーブ500の所望の領域へのアクセス要求を受け付ける。
ステップS11:バスマスタ識別部200は、受け付けたアクセス要求に基づいてどのバスマスタ10からのアクセス要求であるかを識別する。
ステップS12:バスマスタ識別部200は、ステップS11での識別の結果、アクセス要求が複数のバスマスタ10からなされているかを判定する。複数のバスマスタ10からアクセス要求がある場合は、ステップ13において共有バススレーブへのアクセス権利を与えるバスマスタ10を選択する。一方、一つのバスマスタ10からのアクセス要求の場合は、そのアクセス要求及び識別結果をアクセス可否判定部31に出力する。
ステップS13:バスマスタ識別部200はアクセス要求を受け付ける優先度に応じてバスマスタを選択する。選択されたバスマスタ10のアクセス要求及び識別結果をアクセス可否判定部31に出力する。
ステップS14:アクセス可否判定部31は、バスマスタ識別部200からのアクセス要求及び識別結果と、アクセス可否情報DB33内のアクセス可否情報とを照合する。例えば、アクセス要求が共有バススレーブ500のアクセス先のアドレスである場合は、そのアドレスがアクセス禁止領域のアドレスであるかをアクセス可否情報DB33を参照して照合する。
ステップS15:アクセス可否判定部31での照合の結果、アクセスが許可されていると判定された場合は、ステップS16においてアクセス許可処理を行う。一方、アクセスが禁止されていると判定された場合は、ステップS17においてアクセス禁止処理を行う。
ステップS16: IF部400は、アクセス可否判定部31においてアクセスが許可されたことに基づいて、共有バススレーブ500内のアクセス要求先の領域へアクセスするためのコマンドを生成する。そして、生成されたコマンドに基づいて共有バススレーブ500を制御し、共有バススレーブ500内のアクセス要求先の領域からのデータの読み出し、またはアクセス要求先の領域へのデータの書き込み等の処理を行う。
ステップS17:IF部400は、アクセス可否判定部31においてアクセスが禁止されたことに基づいてアクセス禁止処理を行う。アクセス禁止処理としては、(A)バスマスタ10へのアクセス禁止の通知、(B)ダミー応答部41によるダミー応答処理、(C)ダミーアクセス部42によるダミーアクセス等が挙げられる。
(3)効果
以上の構成により、第1実施形態例に係るマイクロプロセッサシステム1000では、アクセス可否判定部31により許可されたバスマスタ10のみが共有バススレーブ500の所望の領域にアクセスできる。よって、共有バススレーブ500上に特定のバスマスタ10の専用領域を確保することができる。そのため、特定のバスマスタ以外のバスマスタによる不正なアクセスによるデータやプログラムの読み出し・改竄、プログラムの不正実行を禁止し、セキュリティを向上させることができる。例えば、プログラムの改竄や誤動作により、特定のバスマスタ以外のバスマスタが特定のバスマスタの専用領域へアクセスしようとした場合でも、アクセスを禁止することができる。具体的には、デバッガを接続してバスマスタとして共有バススレーブ500上の他バスマスタ専用領域へアクセスしようとした場合に有効である。このとき、まずバスマスタ識別部200がどのバスマスタからのアクセス要求であるのかを識別する。次に、アクセス可否判定部31が、アクセス可否情報に基づいて、そのアクセス要求が許可されていない領域へのアクセス要求であることを認識することでそのアクセス要求を禁止することができる。
さらに、バスマスタ10は共有バススレーブ500を共有しているため、特定のバスマスタ毎に専用の別途のバススレーブを設ける必要がない。よって、例えば専用のDRAMやSRAM等の別途のバススレーブとバスマスタ10とを接続するためのバス配線や端子を設けるコストを削減することができる。
<第2実施形態例>
図4は、本願発明の第2実施形態例に係るマルチプロセッサシステムの構成図である。第2実施形態例に係るマルチプロセッサシステム1000のバスマスタ識別部200は、各バスマスタからアクセス要求とともに各バスマスタの動作状態を示す動作IDを受け付ける。そして、バスマスタ識別部200は、アクセス要求に基づいてどのバスマスタ10からのアクセス要求であるかを識別する。さらに、バスマスタ識別部200は、バスマスタの識別結果、アクセス要求及び動作IDをアクセス可否判定部31に出力する。複数のバスマスタ10からアクセス要求が行われている場合には、バスマスタ識別部200はアクセス要求を受け付けるバスマスタを選択する。また、アクセス可否情報DB33には、バスマスタ10毎の動作状態に応じたアクセス可否情報が記憶されている。アクセス可否判定部31は、識別したバスマスタ10の動作状態とアクセス可否情報とに基づいてアクセス可否判定を行う。第2実施形態例のその他の構成は、第1実施形態例と同様である。動作状態としては、例えば実行中のスレッド情報等が挙げられる。
図5は、アクセス可否情報DB33に記憶されている動作状態に応じたアクセス可否情報の一例である。動作状態として動作ID=0と1がある場合、各バスマスタ10の動作状態毎に、アクセス禁止開始アドレス及びアクセス禁止終了アドレスによりアクセス禁止領域を指定している。第1バスマスタ10aは、動作ID=0のときに共有バススレーブ500内のアドレス0x8000_0000〜8000_FFFFの領域にアクセスできる。一方、動作ID=1の場合はアドレス0x8000_0000〜8000_FFFFの領域へのアクセスは禁止される。
次に、バスマスタ10から共有バススレーブ500へアクセス要求が行われた場合のアクセス制御処理について、再び図2を用いて説明する。
ステップS10:バスマスタ識別部200は、バスマスタ10からアクセス要求を受け付ける。
ステップS11:バスマスタ識別部200は、どのバスマスタ10からのアクセス要求であるかを識別する。さらに、バスマスタ識別部200は、バスマスタ10の動作状態を識別してもよい。動作状態の識別は、例えばアクセス要求に伴ってバスマスタ10から入力される動作IDに基づいて行う。
ステップS12、13:バスマスタ識別部200は、バスマスタ10を選択し、選択したバスマスタ10のアクセス要求、識別結果及び動作状態をアクセス可否判定部31に出力する。
ステップS14:アクセス可否判定部31は、バスマスタ識別部200からのアクセス要求及び識別結果及び動作状態とアクセス可否情報DB33内のアクセス可否情報とを照合する。
ステップS15、16、17:アクセスが許可されている場合は、ステップS16においてアクセス許可処理を行う。一方、アクセスが禁止されていると判定された場合は、ステップS17においてアクセス禁止処理を行う。
上記の構成により、共有バススレーブ500上に、特定のバスマスタ10が特定の動作状態にあるときのみアクセスすることができる専用領域を確保することができる。このように、バスマスタ毎にアクセス可否判定を行うことに加えて、各バスマスタ10の動作状態に応じてアクセス可否判定を行うことで、よりセキュリティを高めることができる。例えば、メディア処理プロセッサから構成されるあるバスマスタが、動作状態として、極秘アルゴリズムのメディア処理用プログラムを共有メモリから構成される共有バススレーブ500から読み出して実行するとする。この動作状態に対して専用の動作IDがバスマスタから出力され、その専用の動作IDの場合にはアクセス可否判定部31においてアクセス要求が許可される。一方、同一のメディア処理プロセッサにおいて、例えば極秘アルゴリズム以外の別の処理プログラムが開発される場合には、専用の動作ID以外の動作IDが出力される。しかし、その動作IDの場合には、アクセス可否判定部31においてアクセス要求が許可されない。よって、極秘のメディア処理用プログラムにはアクセスできない。このようなアクセス可否判定により、同一のメディア処理プロセッサにおいて、別の処理プログラムが実行されている場合には、極秘のメディア処理用プログラムを読み出すことを防ぐことが可能となる。
<第3実施形態例>
図6は、第3実施形態例に係るマルチプロセッサシステムの構成図である。第3実施形態例に係るマルチプロセッサシステム1000では、第1バスマスタ10aが、アクセス可否情報にアクセスするために専用命令を有している。専用命令としては、例えばアクセス可否情報を読み出すためのリード命令、アクセス可否情報の書き込みや書換のためのライト命令などが挙げられる。そして、アクセス可否情報にアクセスする場合には、第1バスマスタ10aは、その専用命令をデコードし、バスマスタ識別部200に専用命令に基づくアクセス要求を出力する。バスマスタ識別部200は、アクセス要求をアクセス可否判定部31に出力する。アクセス可否判定部31は、第1バスマスタ10aからアクセス可否情報へのアクセスのためのアクセス要求を許可するか否かを、アクセス可否情報DB33内のアクセス可否情報に基づいて判定する。ここで、アクセス可否情報DB33内のアクセス可否情報は、アクセス可否情報へのアクセスを許可するか否かについての制限情報をバスマスタ毎に含んでいる。図7は、アクセス可否情報DB33内の制限情報の一例である。図7では、制限情報としてバスマスタ毎にアクセス可否情報へのアクセスが許可されるか否かが設定されている。また、制限情報は、各バスマスタの各種のアクセス可否情報毎にアクセス可能か否かを示す情報であっても良い。つまり、アクセス可否情報へのリードアクセスのみを禁止する、ライトアクセスのみを禁止する、リードアクセス及びライトアクセスの両方を禁止する情報であっても良い。第3実施形態例のその他の構成は、第1実施形態例と同様である
ここで、専用命令に基づいたアクセス可否情報へのアクセスは、例えばレジスタの所定のアドレスにアクセスすることにより行われる。
マルチプロセッサシステムが図6に示すように構成されていると、アクセス可否情報にアクセスし、アクセス可否情報を書き換えることにより次のようにバスマスタのアクセス許可領域を変更することもできる。例えばあるバスマスタがネットワークを介して新たなプログラムをダウンロードしたとする。あるバスマスタがその新たなプログラムを実行するために共有バススレーブ500における専用領域を拡張する必要が生じた場合、あるバスマスタはアクセス可否情報を書き換えるためのライト命令をデコードし、ライト命令に基づくアクセス要求を出力する。このアクセス要求は、例えば、アクセス可否判定部31内のレジスタ35の特定のアドレスにアクセスすることにより実行される。バスマスタ識別部200は、ライト命令に基づくアクセス要求を受け付け、アクセス要求を行っているバスマスタを識別する。アクセス可否判定部31は、バスマスタが出力したアクセス要求を許可するか否かを、アクセス可否情報DB33内のアクセス可否情報に基づいて判定する。ここで、アクセス可否情報DB33内のアクセス可否情報は、ライト命令に基づくアクセス要求を許可するか否かについての制限情報をバスマスタ毎に含んでいる。識別されたバスマスタによるアクセス要求が許可されている場合は、アクセス可否情報へのアクセス要求に基づいてアクセス可否情報DB33内のアクセス可否情報を書き換える。この書換によりバスマスタは、拡張された共有バススレーブ500内の領域を用いて新たなプログラムの実行が可能となる。一方、アクセス可否情報に基づいてアクセスが禁止された場合は、アクセス可否情報の書換の実行は禁止される。
さらに、アクセス可否情報を読み出すリード命令に基づくアクセス要求への制限を行うこともできる。例えば、まずバスマスタ識別部200が、バスマスタからのリード命令に基づくアクセス要求を受け付け、アクセス要求を出力したバスマスタを識別する。アクセス可否判定部31は、識別されたバスマスタによる読み出しが許可されている場合にのみ、リード命令に基づいてアクセス可否情報DB33内のアクセス可否情報を読み出す。そして、読み出したアクセス可否情報をIF部400に出力し、リード命令を行ったバスマスタに出力する。
このように、アクセス可否情報へのアクセスの可否を決定することにより、アクセス可否情報のアクセスの自由度を高めつつアクセスが許可されていないバスマスタからの不正なアクセス制限し、セキュリティを高めることができる。また、不正な読み出しを制限しつつアクセス可否情報を読み出すことで、セキュリティを高めつつデバッグ効率を向上させることができる。
上記では、アクセス可否情報へのアクセス要求を共有バスレーブへのアクセス要求と同一バスを使用する例で説明したが、別途、アクセス可否情報へのアクセスのためのアクセス専用バスを設けて行っても良い。
<第4実施形態例>
図8は、本願発明の第4実施形態例に係るマルチプロセッサシステムの構成図である。第4実施形態例に係るマルチプロセッサシステム1000は、バスマスタ識別部200内にプログラム認証部21を有している。このプログラム認証部21によりプログラムが正当なものであると認証された場合にアクセス要求を許可される。第4実施形態例のその他の構成は第1実施形態例と同様である。
プログラム認証部21は、バスマスタ10が実行するプログラムが正当なものであるか、不正なものであるかの認証を行い、その認証結果をアクセス可否判定部31に出力する。プログラムの認証方法としては、例えば公開鍵、秘密鍵及び電子署名等の暗号化技術を用いてプログラム認証を行う。そして、プログラム認証部21は、認証結果をアクセス可否判定部31に出力する。
アクセス可否判定部31は、プログラム認証部21においてバスマスタ10が実行するプログラムが正当でないと判定した場合は、バスマスタ10からのアクセス要求を禁止する。例え、アクセス可否判定部31が、バスマスタ10のアクセス要求とアクセス可否情報DB33内のアクセス可否情報とを照合し、アクセス要求が許可される場合であってもプログラムが認証されない場合はアクセスが禁止される。つまり、アクセス可否判定部31は、プログラムが認証され、かつアクセス要求がアクセス可否情報により許可されるものである場合に限りバスマスタ10のアクセス要求を許可する。
以上のように、第4実施形態例に係るマルチプロセッサシステムでは、バスマスタが認証されないプログラムを実行している場合には、共有バススレーブ内におけるアクセス要求先へのアクセスを禁止することができる。よって、よりセキュリティを高めることができる。なお、この例ではプログラム認証部21がバスマスタ識別部200内にあるが、バスマスタ識別部200内ではなく、独立の機能ブロックとして構成されても良い。また、アクセス可否情報DB33内のアクセス可否情報に、アクセス可能と判定するためにプログラムが認証されていることを必要とするか否かの情報を含んでいても良い。
<第5実施形態例>
図9は、本願発明の第5実施形態例に係るマルチプロセッサシステムの構成図である。第5実施形態例では、第4実施形態例と同様にプログラム認証を行うと共に、第3実施形態例に示すアクセス可否情報へのアクセス可否判定を行う。第5実施形態例に係るマルチプロセッサシステムの第1バスマスタ10aは、第3実施形態例と同様にアクセス可否情報にアクセスするために専用命令を有している。また、アクセス可否情報DB33内のアクセス可否情報は、バスマスタ毎にアクセス可否情報へのアクセスを許可するか否かについての制限情報を有している。また、バスマスタ識別部200は、第4実施形態例と同様にプログラム認証部21を有している。第5実施形態例のその他の構成は、第1実施形態例と同様である。
第1バスマスタ10aは、アクセス可否情報にアクセスする場合には、バスマスタ識別部200に専用命令に基づくアクセス要求を出力する。バスマスタ識別部200は、アクセス要求を行っているバスマスタを識別する。バスマスタ識別部200内のプログラム認証部21は、バスマスタ10が実行するプログラムが正当なものであるか、不正なものであるかの認証を行い、その認証結果をアクセス可否判定部31に出力する。アクセス可否判定部31は、認証結果、識別結果及びアクセス要求を受け付ける。アクセス可否判定部31は、アクセス要求を許可するか否かをアクセス可否情報DB33内のアクセス可否情報に基づいて判定すると供に、認証結果に基づいてバスマスタ10からのアクセス要求を許可するまたは禁止する。このように、リード命令やライト命令などの専用命令をデコードしてアクセス要求が行われた場合においても、プログラム認証を併用することでさらにセキュリティを高めることができる。なお、ここではアクセス可否情報にアクセスするための専用命令を有する例を示したが、アクセス可否情報DBはアドレスが割り当てられたレジスタであっても良く、つまりそのアドレスへアクセスすることでアクセス可否情報にアクセスしても良い。
<第6実施形態例>
図10は本願発明の第6実施形態例に係るマルチプロセッサシステムの構成図である。第6実施形態例に係るアクセス制御部を有するマルチプロセッサシステム1000は、第1バスマスタ識別部200a及び第2バスマスタ識別部200bを有している。第2バスマスタ10b及び第3バスマスタ10cから構成されるバスマスタ150は第1バスマスタ識別部200aに接続され、第1バスマスタ10aは第2バスマスタ識別部200bに接続される。その他の構成は、第1実施形態例と同様の構成である。
第2バスマスタ10b及び第3バスマスタ10cのアクセス要求が第1バスマスタ識別部200aに出力され、第1バスマスタ10aからのアクセス要求が第2バスマスタ識別部200bに出力される。第1バスマスタ識別部200aは、アクセス要求を受け付けた場合、第2バスマスタ10bからのアクセス要求であるか第3バスマスタ10cからのアクセス要求であるかを識別する。また、第2バスマスタ10b及び第3バスマスタ10c両方からのアクセス要求である場合は、どちらのバスマスタからのアクセス要求を受け付けるかを、例えばアクセス要求を受け付ける優先度に応じて決定する。さらに、第1バスマスタ識別部200aは、識別結果を第2バスマスタ識別部200bに出力する。第2バスマスタ識別部200bは、第1バスマスタ10aからアクセス要求を受け付け、第1バスマスタ識別部200aにより識別されたバスマスタのアクセス要求を受け付けるか、第1バスマスタ10aのアクセス要求を受け付けるかを決定する。
このように複数のバスマスタ識別部を設けることにより、バスマスタとバスマスタ識別部との間の配線数や配線長を削減することができる。なお、複数のバスマスタ識別部は、バスマスタの数や配線数、配線長を考慮して適宜設けることができる。
<第7実施形態例>
図11は本願発明の第7実施形態例に係るマルチプロセッサシステムの構成図である。マルチプロセッサシステム1000は、システムLSI600及び共有バススレーブ500を含む。システムLSI600は、マルチプロセッサ100、バスマスタ識別部200、アクセス制御部300及びIF(InterFace)部400が1個のチップ上に含まれるように形成されている。また、共有バススレーブ500は、システムLSI600に対して外付けされている共有領域であり、DRAM、SRAM(Static Random Access Memory)等の外付けの共有メモリ等で構成されている。マルチプロセッサ100、バスマスタ識別部200、アクセス制御部300及びIF(InterFace)部400及び共有バススレーブ500の各部の内部構成は、第1実施形態例と同様である。このように、共有バススレーブ500をシステムLSI600に外付けすると、システムLSIを設計した後に共有領域の容量を変更できるなど自由度を高めることができる。
さらに、システムLSI600とその外部に接続される共有バススレーブ500との間でやりとりされるアドレス、ライトデータ及びリードデータ等のアクセスデータを暗号化・復号化するバス暗号部450を有していると好ましい。バス暗号部450を設けることで、共有バススレーブ500内における各バスマスタ10の専用領域へのアクセスが解析されるのを防ぐことができる。
また、図12に示すようにチップ内に共有バススレーブ500を含むようにシステムLSI610を構成しても良い。共有バススレーブ500を1チップ内に含めることで、バスマスタ10から共有バススレーブへのアクセスの秘匿性を高めることができる。
<第8実施形態例>
図13は本願発明の第8実施形態例に係るマルチプロセッサシステムの構成図である。マルチプロセッサシステム1000は、システムLSI620、第1共有バススレーブ500a及び第2共有バススレーブ500bを含む。システムLSI620は、マルチプロセッサ100、バスマスタ識別部200、アクセス制御部300、第1IF部400a及び第2IF部400bが1個のチップ上に含まれるように形成されている。第1共有バススレーブ500a及び第2共有バススレーブ500bは、第1IF部400a及び第2IF部400bに接続されており、システムLSI620内の複数のバスマスタ10により共有されている。また、アクセス制御部300内には、第1共有バススレーブ500aに対応する第1アクセス可否判定部31a及び第2共有バススレーブ500bに対応する第2アクセス可否判定部31bが設けられている。第1IF部400a及び第2IF部400bは、それぞれ第1共有バススレーブ500a及び第1アクセス可否判定部31a間と、第2共有バススレーブ500b及び第2アクセス可否判定部31b間とに設けられている。ここで、第1アクセス可否判定部31a及び第2アクセス可否判定部31bは、第1実施形態例のアクセス可否判定部31と同様の構成である。また、第1IF部400a及び第2IF部400bは、第1実施形態例のIF部400と同様の構成である。その他のマルチプロセッサ100、バスマスタ識別部200アクセス可否情報DB33は第1実施形態例と同様の構成である。
また、図14に示すようにチップ内に第2共有バススレーブ500bを含むようにシステムLSI630を構成し、システムLSI630に第1共有バススレーブ500aを接続しても良い。よって、バスマスタ10から第2共有バススレーブ500bとへのアクセスの秘匿性を高めることができる。以上のように、第1共有バススレーブ500a及び第2共有バススレーブ500bをシステムLSI内部に内蔵あるいは外付けするなど様々な態様を有しつつ、アクセス制限可能なマルチプロセッサシステムを得ることができる。共有バススレーブを外付けした場合には、共有領域の容量を変更できるなど自由度を高めることができる。
<第9実施形態例>
図15は本願発明の第9実施形態例に係るマルチプロセッサシステムの構成図である。マルチプロセッサシステム1000は、例えばファクシミリ装置など大容量のデータを処理するデータ処理システムであり、システムLSI640、スキャナやプリンタなどの周辺回路部900及びDRAM、SRAM等のメモリ部950を含む。システムLSI640は、周辺回路部900及びメモリ部950に接続されており、マルチプロセッサ100、バスマスタ識別部200、アクセス制御部300、DMA制御部700及びメモリスケジューラ800が1個のチップ上に含まれるように形成されている。この第9実施形態例に係るマルチプロセッサシステム1000では、データの処理効率を向上させるために、マルチプロセッサ100を介さずに周辺回路部900とメモリ950との間で直接データ転送を行う。以下に、DMA制御部700及びメモリスケジューラ800の構成及び動作について説明する。
DMA制御部700は、ホストIF部400、共有バススレーブ500及び周辺回路IF部750を含んで構成される。共有バススレーブ500は、マルチプロセッサ100を構成する複数のバスマスタ10により共有されている。また、共有バススレーブ500は、転送モード、転送先または転送元のアドレス、転送バイト数などの直接データ転送を行うために必要な情報(以下、DMA制御情報)を記憶するDMA制御レジスタである。DMA制御部700の周辺回路IF部750は、メモリスケジューラ800及び周辺回路部900と接続される。また、メモリスケジューラ800は、システムLSI640外部のメモリ950と接続されており、メモリにアクセスするためのコマンド生成などを行う。直接メモリ転送が行われる場合、スキャナやプリンタなどの周辺回路部900から入力されたデータは、共有バススレーブ500内のDMA制御情報に基づいて、周辺回路IF部750及びメモリスケジューラ800を介してメモリ950に転送される。
ここで、バスマスタ10から共有バススレーブ500へのアクセス要求がなされた場合は、第1実施形態例と同様にアクセス可否情報に基づいてアクセス制限が行われる。まずバスマスタ識別部200においてアクセス要求を行ったバスマスタ10の識別を行う。そして、アクセス可否判定部31は、アクセス可否情報DB33内のアクセス可否情報に基づいてアクセス可否の判定を行う。アクセス可否判定部31によりアクセスが許可された場合は、ホストIF部400を介して共有バススレーブ500へアクセスが行われる。このように、DMA制御レジスタである共有バススレーブ500へのアクセス制限を行うことで、DMA制御情報への不正アクセスを防止することができる。つまり、DMA制御レジスタである共有バススレーブ500内にバスマスタの専用領域を確保することができる。よって、例えば暗号データを周辺回路部900から読み出して復号するDMA制御情報が書き換えられることによる不正読み出し等を防止することができる。
なお、ここでは共有バススレーブがDMA制御レジスタである例を示したが、それに限定するものではない。その他、アキュムレータ、スタックレジスタ、プログラムカウンタ、割り込みレジスタ、フラグレジスタなどの各種制御レジスタを含む。
なお、これまでの実施形態例においては、複数バスマスタを含む100をマルチプロセッサと称したが、複数のプロセッサでなく単にマルチマスタであっても良い。
本発明を用いれば、特定のバスマスタ以外のバスマスタによる不正なアクセスを禁止し、セキュリティを向上することができるため、マルチプロセッサシステムのセキュリティ向上に利用することができる。
第1実施形態例に係るマルチプロセッサシステムの構成図。 アクセス可否情報DB33に記憶されているアクセス可否情報の一例。 アクセス制御処理の一例を示すフローチャートの一例。 第2実施形態例に係るマルチプロセッサシステムの構成図。 アクセス可否情報DB33に記憶されている動作状態に応じたアクセス可否情報の一例。 第3実施形態例に係るマルチプロセッサシステムの構成図。 アクセス可否情報DB33内の書換命令許可情報の一例。 第4実施形態例に係るマルチプロセッサシステムの構成図。 第5実施形態例に係るマルチプロセッサシステムの構成図。 第6実施形態例に係るマルチプロセッサシステムの構成図。 第7実施形態例に係るマルチプロセッサシステムの構成図。 第7実施形態例に係るマルチプロセッサシステムのその他の構成図。 第8実施形態例に係るマルチプロセッサシステムの構成図。 第8実施形態例に係るマルチプロセッサシステムのその他の構成図。 第9実施形態例に係るマルチプロセッサシステムの構成図。
符号の説明
10 バスマスタ
19 プログラム認証部
31 アクセス可否判定部
33 アクセス可否情報DB
41 ダミー応答部
100 マルチプロセッサ
200 バスマスタ識別部
300 アクセス制御部
400 IF部
500 共有バススレーブ
600,610,620,630,640 システムLSI
700 DMA制御部

Claims (18)

  1. 複数のバスマスタから前記複数のバスマスタにより共有される少なくとも1の共有バススレーブへのアクセスについてアクセス可否判定を行うアクセス制御装置であって、
    前記バスマスタから前記共有バススレーブの所定領域へのアクセスを禁止するアクセス可否情報を格納するアクセス可否情報格納部と、
    前記バスマスタから前記共有バススレーブの所望の領域にアクセス要求が行われた場合、前記アクセス可否情報格納部のアクセス可否情報に基づいて、前記バスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定するアクセス可否判定部と、
    を含むことを特徴とするアクセス制御装置。
  2. 前記バスマスタから前記共有バススレーブの所望の領域へのアクセス要求に基づいて、前記アクセス要求を行ったバスマスタを識別するバスマスタ識別部をさらに含み、
    前記アクセス可否判定部は、前記バスマスタ識別部により識別されたバスマスタのアクセス可否情報に基づいて判定を行うことを特徴とする請求項1に記載のアクセス制御装置。
  3. 前記アクセス可否情報は、バスマスタ毎の共有バススレーブにおけるアクセス禁止領域を指定する禁止アドレスまたはアクセス許可領域を指定する許可アドレスであり、
    前記アクセス可否判定部は、前記バスマスタに対応する禁止アドレスまたは許可アドレスに基づいて、前記バスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定することを特徴とする請求項1に記載のアクセス制御装置。
  4. 前記禁止アドレスは、バスマスタ毎の共有バススレーブへの書き込みアクセス禁止領域、または共有バススレーブからの読出しアクセス禁止領域または共有バススレーブへの全アクセス禁止領域を指定するアドレスであり、
    前記許可アドレスは、共有バススレーブへの読み出しアクセス許可領域、または共有バススレーブからの読み出しアクセス許可領域または共有バススレーブへの全アクセス許可領域を指定するアドレスであることを特徴とする請求項3に記載のアクセス制御装置。
  5. 前記アクセス可否情報は、各バスマスタの動作状態毎に格納されており、
    前記アクセス可否判定部は、前記アクセス要求を行ったバスマスタの動作状態を受信し、その動作状態と前記バスマスタの動作状態毎のアクセス可否情報とに基づいて、前記アクセス要求を行ったバスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定することを特徴とする請求項1に記載のアクセス制御装置。
  6. 前記共有バススレーブは、各種制御レジスタであり、
    前記アクセス可否情報は、前記各種制御レジスタへのアクセスを禁止する情報であり、
    前記アクセス可否判定部は、前記バスマスタから前記各種制御レジスタの所望の領域にアクセス要求が行われた場合、前記各種制御レジスタへのアクセス可否情報に基づいて、前記アクセス要求を行ったバスマスタが前記アクセス要求先の各種制御レジスタの領域にアクセス可能か否かを判定することを特徴とする請求項1に記載のアクセス制御装置。
  7. 前記各種制御レジスタは、DMA制御情報を格納するDMA制御レジスタであり、
    前記アクセス可否情報は、前記DMA制御レジスタへのアクセスを禁止する情報であり、
    前記アクセス可否判定部は、前記バスマスタから前記DMA制御レジスタの所望の領域にアクセス要求が行われた場合、前記DMA制御レジスタへのアクセス可否情報に基づいて、前記アクセス要求を行ったバスマスタが前記アクセス要求先のDMA制御レジスタの領域にアクセス可能か否かを判定することを特徴とする請求項6に記載のアクセス制御装置。
  8. 前記バスマスタ及び前記共有バススレーブ間のデータバス上に、前記バスマスタから前記共有バススレーブに出力されるデータを暗号化し、前記共有バススレーブから前記バスマスタに出力されるデータを復号化するバス暗号部をさらに含むことを特徴とする請求項1に記載のアクセス制御装置。
  9. 前記アクセス要求を行ったバスマスタが実行するプログラムを認証するプログラム認証部をさらに含み、
    前記アクセス可否判定部は、前記プログラム認証部での認証結果及び前記アクセス可否情報格納部のアクセス可否情報に基づいて、前記アクセス要求を行ったバスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定することを特徴とする請求項1に記載のアクセス制御装置。
  10. 前記バスマスタは、前記アクセス可否情報格納部に格納されたアクセス可否情報にアクセスするための専用命令を有し、前記専用命令実行時に前記専用命令をデコードして前記アクセス可否情報にアクセスするためのアクセス要求を発行し、
    前記アクセス可否判定部は、前記専用命令に基づくアクセス要求を受信し、前記プログラム認証部から受信した認証結果に基づいて前記アクセス要求を実行するか否かを判定することを特徴とする請求項9に記載のアクセス制御装置。
  11. 前記バスマスタは、前記アクセス可否情報格納部に格納されたアクセス可否情報にアクセスするための専用命令を有し、前記専用命令実行時に前記専用命令をデコードして前記アクセス可否情報にアクセスするためのアクセス要求を発行することを特徴とする請求項1に記載のアクセス制御装置。
  12. 前記アクセス可否情報格納部は特定のアドレスが割り当てられたレジスタであり、前記バスマスタが前記特定のアドレスへのアクセス要求を発行することで、前記アクセス可否情報格納部に格納されたアクセス可否情報へのアクセスを要求することを特徴とする請求項1に記載のアクセス制御装置。
  13. 前記アクセス可否情報は、アクセス可否情報へのアクセスを許可するか否かについての制限情報を含み、
    前記アクセス可否判定部は、前記制限情報に基づいて、前記アクセス可否情報にアクセス可能か否かを判定することを特徴とする請求項11または12に記載のアクセス制御装置。
  14. 前記アクセス可否判定部において、前記アクセス要求を行ったバスマスタが前記アクセス要求先の共有バススレーブの領域にアクセスができないと判定された場合、前記アクセス要求を行ったバスマスタにダミー応答を行うダミー応答部をさらに含むことを特徴とする請求項1に記載のアクセス制御装置。
  15. 前記アクセス可否判定部において、前記アクセス要求を行ったバスマスタが前記アクセス要求先の共有バススレーブの領域にアクセスができないと判定された場合、前記アクセス要求先の共有バススレーブにダミーアクセスを行うダミーアクセス部をさらに含むことを特徴とする請求項1に記載のアクセス制御装置。
  16. 複数のバスマスタと、
    前記複数のバスマスタから前記複数のバスマスタにより共有される少なくとも1の共有バススレーブへのアクセスについてアクセス可否判定を行うアクセス制御装置とを含み、
    前記アクセス制御装置は、
    前記バスマスタから前記共有バススレーブへのアクセスを禁止するアクセス可否情報を格納するアクセス可否情報格納部と、
    前記バスマスタから前記共有バススレーブの所望の領域へのアクセス要求が行われた場合、前記アクセス可否情報格納部のアクセス可否情報に基づいて、前記バスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定するアクセス可否判定部と、
    を有することを特徴とするシステムLSI。
  17. 前記複数のバスマスタがアクセス可能なバススレーブをさらに含むことを特徴とする請求項16に記載のシステムLSI。
  18. 複数のバスマスタから前記複数のバスマスタにより共有される少なくとも1の共有バススレーブへのアクセスについてアクセス可否判定を行うアクセス制御方法であって、
    前記バスマスタから前記共有バススレーブへのアクセスを禁止するアクセス可否情報を格納する格納ステップと、
    前記バスマスタから前記共有バススレーブの所望の領域へのアクセス要求が行われた場合、前記アクセス可否情報格納部のアクセス可否情報に基づいて、前記バスマスタが前記アクセス要求先の共有バススレーブの領域にアクセス可能か否かを判定する判定ステップと、
    を含むことを特徴とするアクセス制御方法。

JP2004175207A 2004-06-14 2004-06-14 アクセス制御装置及びアクセス制御方法 Pending JP2007264679A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004175207A JP2007264679A (ja) 2004-06-14 2004-06-14 アクセス制御装置及びアクセス制御方法
PCT/JP2005/009512 WO2005121979A1 (ja) 2004-06-14 2005-05-25 アクセス制御装置及びアクセス制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004175207A JP2007264679A (ja) 2004-06-14 2004-06-14 アクセス制御装置及びアクセス制御方法

Publications (1)

Publication Number Publication Date
JP2007264679A true JP2007264679A (ja) 2007-10-11

Family

ID=35503254

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004175207A Pending JP2007264679A (ja) 2004-06-14 2004-06-14 アクセス制御装置及びアクセス制御方法

Country Status (2)

Country Link
JP (1) JP2007264679A (ja)
WO (1) WO2005121979A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7793083B2 (en) 2004-11-26 2010-09-07 Panasonic Corporation Processor and system for selectively disabling secure data on a switch
EP1977363B1 (en) * 2006-01-13 2016-10-26 Freescale Semiconductor, Inc. Protection system and method of operation therein
JP2009175774A (ja) * 2006-05-11 2009-08-06 Panasonic Corp Dma制御装置
JP2022129555A (ja) * 2021-02-25 2022-09-06 セイコーエプソン株式会社 回路装置及び電子機器

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59121561A (ja) * 1982-12-28 1984-07-13 Fuji Facom Corp マルチプロセサシステムにおける共有資源アクセス保護方式
JPS59191198A (ja) * 1983-04-14 1984-10-30 Hitachi Ltd メモリ保護装置
JPH03212749A (ja) * 1990-01-17 1991-09-18 Fuji Xerox Co Ltd マルチプロセッサシステム
US6311255B1 (en) * 1999-04-29 2001-10-30 International Business Machines Corporation System and method for selectively restricting access to memory for bus attached unit IDs

Also Published As

Publication number Publication date
WO2005121979A1 (ja) 2005-12-22

Similar Documents

Publication Publication Date Title
US7444668B2 (en) Method and apparatus for determining access permission
JP4872001B2 (ja) メモリ・アクセス安全性管理
CN109828827B (zh) 一种检测方法、装置及相关设备
CN109766165B (zh) 一种内存访问控制方法、装置、内存控制器及计算机系统
JP4823481B2 (ja) 安全な環境を初期化する命令を実行するシステムおよび方法
JP4602403B2 (ja) データ処理システムにおけるエンディアンネス制御方法および装置
JP5249399B2 (ja) 安全なメモリ区分を使用した安全な実行のための方法および装置
US7434264B2 (en) Data processing system with peripheral access protection and method therefor
US7277972B2 (en) Data processing system with peripheral access protection and method therefor
JP4945053B2 (ja) 半導体装置、バスインターフェース装置、およびコンピュータシステム
CN101026455A (zh) 安全处理器
JP2009129394A (ja) 情報処理装置及びそのプログラム実行制御方法
JP4591163B2 (ja) バスアクセス制御装置
WO2005121979A1 (ja) アクセス制御装置及びアクセス制御方法
JP2007109053A (ja) バスアクセス制御装置
JPH09160831A (ja) 情報処理装置
JP2011150457A (ja) 情報処理装置およびメモリアクセス制御方法
JP5324676B2 (ja) プロセッサ、バスインターフェース装置、およびコンピュータシステム
JP5380392B2 (ja) 半導体装置、バスインターフェース装置、およびコンピュータシステム
CN115905108A (zh) 一种用于risc-v芯片的iopmp架构实现方法
JP2004341769A (ja) 回路装置及びその不正アクセス防止方法
JP2009175774A (ja) Dma制御装置