説明

バスシステム

【課題】 メモリを共有して使用する場合、アクセスが禁止されているバスマスタによりメモリに不用意にアクセスが行われることを確実に防止できるバスシステムを提供する。
【解決手段】 バスブリッジ回路15は、内部バス6と周辺バス11〜14とのデータ転送を中継する機能を備え、バスアクセス制限部21によってバスマスタ2,3,5が周辺バスに接続されている共有メモリ10に対して行うアクセスを制御する。バスマスタは、アクセス許可を受けるためのキーデータをキーデータレジスタ22に書き込み、そのキーデータと固定データとが一致し、アービタ23より出力されるIDデータも固定データと一致すれば、バスアクセス制限部21は共有メモリ10に対するアクセスを許可する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のバスマスタが相互に直接接続されているシステムバスと、共有メモリやその他の周辺回路が接続される周辺バスと、両バス間のデータ転送を中継するバスブリッジ回路とを備えてなるバスシステムに関する。
【背景技術】
【0002】
近年、システムLSIは多機能化が進んでおり、回路規模の増大を抑制するため回路部品を共有化したいという要請が高まっている。部品の共有化の1つとしては、例えば、1つ以上のCPUやDMAコントローラなどによって使用されるメモリを共有化することが考えられる。
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、その場合は、メモリを共通にアクセス可能なバス上に配置することになる。すると、本来はそのメモリに対するアクセスが許可されていないものまでアクセスを行い、メモリデータを読取ったり破壊したりするおそれがある。また、外部と通信を行うためのインターフェイス用ICが搭載されており、そのICが直接メモリにアクセスするような場合には、データが外部に流出することも考えられる。斯様な問題があることから、重要な情報が格納されるメモリについては共有化することなく、夫々のローカルバス上に配置して専用メモリとせざるを得なかった。
【0004】
尚、出願人は、本願発明に関する先行技術文献として提示すべき適切なものを見つけることはできなかった。
本発明は上記事情に鑑みてなされたものであり、その目的は、メモリを共有して使用する場合でも、アクセスが禁止されているバスマスタにより前記メモリに不用意にアクセスが行われることを確実に防止できるバスシステムを提供することにある。
【課題を解決するための手段】
【0005】
請求項1記載のバスシステムによれば、バスブリッジ回路は、システムバスと周辺バスとのデータ転送を中継する機能を備え、アクセス許可手段によって、バスマスタが周辺バスに接続されている共有メモリに対して行うアクセスを制御する。即ち、前記アクセスが許可されるには、バスマスタは、先ず、アクセス許可を受けるためのキーデータをキーデータレジスタに書き込む。そして、書き込まれたキーデータと予め定められたデータとが一致する必要がある。
また、バスサイクルを実行する際に、IDデータ出力手段からはバスマスタのIDデータが出力されるが、そのIDデータについても予め定められたデータと一致する必要があり、アクセス許可手段は、これら2つの一致条件が成立した場合にだけ共有メモリに対するアクセスを許可する。従って、アクセスの許否について2重のチェックが行われるようになり、共有メモリに対するアクセス権が設定されていないバスマスタが不用意にアクセスを行うことを確実に防止できる。
【0006】
請求項2記載のバスシステムによれば、複数のバスマスタの1つ以上を、共有メモリに対するアクセスが禁止され、外部との通信を行うための通信用ICとする。即ち、斯様な通信用ICがシステムバス上に存在すると、外部の通信先が前記ICを介して共有メモリにアクセスを行い、データを取得したり書き換えたりするおそれがある。従って、そのようなバスシステムに対して本願発明を適用すれば、重要なメモリデータの流出や改変を防止することができる。
【0007】
請求項3記載のバスシステムによれば、アクセス許可手段は、ICE用インターフェイスに対してICEが非接続である条件も併せて、共有メモリに対するアクセスを許可する。即ち、ICEが接続されている場合は、ICEを用いたデバッグ作業時に共有メモリに対するアクセスが行われるおそれがある。従って、ICEが非接続である条件も加えてアクセスを許可すれば、ICEが接続されている場合におけるメモリデータの流出や改変を防止することができる。
【発明を実施するための最良の形態】
【0008】
以下、本発明を、ARM社のバス規格であるアドバンスドマイクロコントローラバスアーキテクチャ(AMBA)を採用して構成されるシステムLSIに適用した場合の一実施例について、図面を参照して説明する。図1は、システムLSI1の全体構成を示す機能ブロック図である。システムLSI1のコア部分は、CPU2,DMAコントローラ(DMAC)3,シリアルインターフェイス(I/F)4,ICEインターフェイス(通信用IC)5によって構成され、これらは、内部バス(システムバス)6を介して相互に接続されている。
【0009】
システムLSI1には、上記コア部分以外に周辺回路7〜9(ModuleA〜C)及び共有メモリ10が存在しており、それらは、夫々独立の周辺バス11〜14に接続されている。そして、内部バス6と周辺バス11〜14とは、バスブリッジ回路15を介して接続されている。バスブリッジ回路15は、双方のバス6,11〜14を介して行われるデータ伝送を中継するもので、内部バス6側に対しては内部バスI/F16が接続され、その内部バスI/F16と周辺バス11〜14とは、各周辺バスI/F17〜20を介して接続されている。
【0010】
尚、共有メモリ10については、CPU2及びDMAコントローラ3のみがアクセス可能となっており、その他のバスマスタ、即ちICE・I/F5によるアクセスを制限するため、内部バスI/F16と周辺バスI/F20との間にはバスアクセス制限部(アクセス許可手段)21が配置されている。尚、シリアルI/F4内部の送受信バッファと共有メモリ10との間のデータ転送はDMAコントローラ3が行うので、シリアルI/F4自体はバスマスタとはならない。
また、バスアクセス制限部21を制御するため、キーデータレジスタ22が設けられている。そして、内部バス6は、AMBAにおけるAHB(アドバンスドハイパフォーマンスバス)規格に準拠して構成され、周辺バス11〜14は、APB(アドバンスドペリフェラルバス)規格に準拠して構成されている。
【0011】
内部バスI/F16は、CPU2等のバスマスタから見ると、内部バス6上のスレーブの1つとして位置づけられている。そして、内部バスI/F16は、内部バス6側に関するインターフェイス処理を行なったり、バスマスタが何れの周辺回路7〜10にアクセスを行うかをアドレスデコード結果によりセレクトしたり、周辺バスI/F17〜20の制御を行う。
また、内部バス6には、アービタ(IDデータ出力手段)23が接続されており、アービタ23は、内部バス6におけるバス権の調停処理を行なう。そして、アービタ23は、調停の結果、バス権を付与したバスマスタに対してはバスグラント信号を出力すると共に、各バスマスタに対応して予め割り当てられているマスタ番号(一般に、夫々のバスリクエスト信号,バスグラント信号と同じ番号)を出力するようになっており、そのマスタ番号は、バスアクセス制限部21に出力されている。
【0012】
CPU2,DMAコントローラ3は、共有メモリ10に対してアクセスを行う場合に、そのアクセス許可を受けるため、予め定められているキーデータをキーデータレジスタ22に書き込むように設定されている。そして、バスアクセス制限部21は、レジスタ22に書き込まれたキーデータが予め定められているデータ値に一致するか否かの判定(KEYデータ判定)を行う。また、ICE・I/F5は、外部のICE本体がケーブルを介して接続されているか否かの状態を示す信号を、バスアクセス制限部21に出力するようになっている。そして、バスアクセス制限部21は、前記ICE本体の接続状態にも応じて(ICE接続判定)共有メモリ10に対するアクセス制御を行うようになっている。
更に、バスアクセス制限部21は、共有メモリ10に対するアクセスについては、アービタ23より出力されるマスタ番号(IDデータ)についても、予めアクセスが許可されているバスマスタに対応する番号であるか否かを判定し(バスマスタ判定)、その結果も加えてアクセス制御を行うようになっている。
【0013】
図2は、バスアクセス制限部21の内部構成を示すものである。キーデータレジスタ22に書き込まれたデータは、予め定められた固定データ(KEY_ID)25とマグニチュードコンパレータ26により比較され、コンパレータ26の出力端子は、3入力ANDゲート27の1つの入力端子に接続されている。
また、周辺バス11〜14の何れかにアクセスが行われる場合に出力されるマスタ番号は、マスタ番号レジスタ28でラッチされるようになっており、そのレジスタ28でラッチされたデータは、予め定められた固定データ(Master No.)29とコンパレータ30により比較される。そして、コンパレータ30の出力端子は、ANDゲート27の他の1つの入力端子に接続されている。尚、レジスタ22及び28にデータを書き込むためのロジック回路については図示を省略する。
【0014】
加えて、ICE・I/F5より与えられる接続状態信号は、NOTゲート31を介してANDゲート27の残り1つの入力端子に出力されている。
ANDゲート27の出力端子は、ANDゲート32〜34の一方の入力端子に共通に接続されており、それらのANDゲート32〜34の他方の入力端子には、アドレス、共有メモリ10に対するチップセレクト信号(即ち、上位アドレスのデコード信号)、データが夫々与えられている。尚、これらの内アドレス及びデータについては、実際には複数ビットであるものを1つだけで表している。
また、ANDゲート32〜34の出力端子は、Dフリップフロップ35〜37のデータ入力端子Dに接続されている。これらのフリップフロップ35〜37は、入力されるアドレス、チップセレクト信号、データをクロック信号Clockにより同期化してメモリI/F20に出力するもので、夫々の出力端子QはメモリI/F20の入力端子に接続されている。
【0015】
ここで、ANDゲート27は、共有メモリ10に対してアクセスを行うバスマスタの数に応じて設けられている(但し、レジスタ28、固定データ29、コンパレータ30は共通化可能)。従って、例えばANDゲート27が2つある場合は、それらのOR信号がANDゲート32〜34に与えられる。
【0016】
次に、本実施例の作用について説明する。何れかのバスマスタ2,3,5が周辺回路7〜9の何れかにアクセスする場合、或いは、CPU2又はDMAコントローラ3が共有メモリ10にアクセスする場合は、先ずバスブリッジ回路15の内部バスI/F16にアクセスが行われる。アクセス先が周辺回路7〜9の何れかである場合、バスブリッジ回路15を介して対応する周辺バスI/F17〜19にアクセス命令が発行され(2)、周辺回路7〜9にアクセスを行う(3)。
【0017】
また、例えばCPU2が共有メモリ10に対してアクセスを行う場合は、(1)において、内部バスI/F16を介してキーデータレジスタ22にキーデータの書込みを行う。この時、書き込まれたデータが固定データ25に一致すれば、コンパレータ26はハイレベルの一致信号を出力する。続いて、CPU2は、共有メモリ10のアクセスアドレスを出力して、リード又はライトサイクルを実行する(2)。すると、そのサイクルにおいてアービタ23より出力されるマスタ番号がマスタ番号レジスタ28に書き込まれ、書き込まれたデータが固定データ29に一致すれば、コンパレータ30はハイレベルの一致信号を出力する。
【0018】
そして、ICE・I/F5にICE本体が接続されていなければ、NOTゲート31の出力端子はハイレベルとなるので、ANDゲート27の出力端子もハイレベルとなる。従って、CPU2は、ANDゲート32〜34及びフリップフロップ35〜37を介してアドレス、チップセレクト信号及びデータをメモリI/F20に出力することが許可され(4)、周辺バス14を介して共有メモリ10に対するアクセスが可能となる(5)。
尚、DMAコントローラ3が共有メモリ10にアクセスを行う場合は、CPU2がキーデータレジスタ22にキーデータの書込みを行った後、DMAコントローラ3にDMA転送を開始させれば良い。
【0019】
即ち、共有メモリ10に対するアクセスが許可されるのは、以下の3つの条件が全て成立している場合に限られる。
(A)予めアクセスが許可されているバスマスタであること。
(B)予め設定されているキーデータを書き込むこと。
(C)システムLSI1にICE本体が接続されていないこと。
従って、(A),(B)の条件によってアクセス許可が二重にチェックされている。また、(C)の条件は、ICEが接続されている場合、ICEを用いたデバッグ作業時に共有メモリ10に対するアクセスが行われデータが読み出されたり改ざんされるおそれがあり、アクセスを禁止してデータを保護するために設定している。
【0020】
以上のように本実施例によれば、バスブリッジ回路15は、内部バス6と周辺バス11〜14とのデータ転送を中継する機能を備え、バスアクセス制限部21によって、バスマスタが周辺バスに接続されている共有メモリ10に対して行うアクセスを制御する。即ち、CPU2がアクセス許可を受けるためのキーデータをキーデータレジスタ22に書き込み、そのキーデータと固定データ25とが一致し、また、アービタ23より出力されるIDデータも固定データ29と一致すれば、バスアクセス制限部21は共有メモリ10に対するアクセスを許可する。
従って、アクセスの許否について2重のチェックが行われるため、共有メモリ10に対するアクセス権が設定されていないバスマスタが不用意にアクセスを行うことを確実に防止できる。また、バスアクセス制限部21は、ICE・I/F5に対してICEが非接続である条件も併せて、共有メモリ10に対するアクセスを許可するので、ICEが接続されている場合におけるメモリデータの流出や改変を防止することができる。
【0021】
本発明は上記し又は図面に記載した実施例にのみ限定されるものではなく、以下のような変形が可能である。
IDデータ出力手段は、アービタ23として構成するものに限らず、マスタ番号(IDデータ)だけを出力するように独立した構成としても良い。
AMBAを採用して構成されるシステムLSIに限ることなく、バス規格については特に限定しないが、少なくとも、何らかの形でIDデータ出力手段やバスブリッジ回路に相当する構成が存在するバスであれば良い。
例えば、CPUが2個以上存在するマルチCPUシステムに適用しても良い。
ICE・I/F5は、必要に応じて設ければ良い。
また、通信用ICはICE・I/F5に限ることなく、通信を行う場合に共有メモリ10に直接アクセスを行うバスマスタとなりうるものであれば良い。
周辺バスは、必ずしも各周辺回路に対して夫々独立に接続されるものに限らず、共通化されているバスであっても良い。
【図面の簡単な説明】
【0022】
【図1】本発明の一実施例であり、システムLSIの全体構成を示す機能ブロック図
【図2】バスアクセス制限部の内部構成を示す図
【符号の説明】
【0023】
図面中、1はシステムLSI、2はCPU(バスマスタ)、3はDMAコントローラ(バスマスタ)、5はICEインターフェイス(バスマスタ,通信用IC)、6は内部バス(システムバス)、7〜9は周辺回路、10は共有メモリ、11〜14は周辺バス、15はバスブリッジ回路、21はバスアクセス制限部(アクセス許可手段)、23はアービタ(IDデータ出力手段)を示す。


【特許請求の範囲】
【請求項1】
複数のバスマスタが相互に直接接続されているシステムバスと、
このシステムバス上でバス権を獲得したバスマスタに対応するIDデータを、当該バス上に出力するIDデータ出力手段と、
前記複数の内、2つ以上の特定のバスマスタによって共通にアクセスされる共有メモリ、及びその他の周辺回路が接続される周辺バスと、
前記システムバスと前記周辺バスとの間に接続され、両バス間のデータ転送を中継するバスブリッジ回路とを備え、
前記バスブリッジ回路は、
前記特定のバスマスタが前記共有メモリにアクセスを行う場合に、アクセス許可を受けるためのキーデータを書き込むキーデータレジスタと、
このキーデータレジスタに書き込まれたデータ値と、予め設定されたキーデータ値とを比較する第1コンパレータと、
前記共有メモリに対する書込みサイクルの実行時に、前記IDデータ出力手段より出力されるIDデータと、予め設定されたIDデータ値とを比較する第2コンパレータと、
前記第1及び第2コンパレータの比較結果が何れも一致する場合に、前記共有メモリに対するアクセスを許可するアクセス許可手段とを備えてなることを特徴とするバスシステム。
【請求項2】
前記複数のバスマスタの1つ以上は、外部との通信を行うための通信用ICであり、且つ、前記共有メモリに対するアクセスが禁止されていることを特徴とする請求項1記載のバスシステム。
【請求項3】
前記通信用ICの1つは、前記バスマスタの何れかの動作をエミュレートするICE(In Circuit Emulator)との通信を行うICE用インターフェイスであり、
前記ICE用インターフェイスに前記ICEが接続されているか否かを判定する接続判定手段を備え、
前記アクセス許可手段は、前記接続判定手段により前記ICEが非接続であると判定される条件も併せて成立している場合に、前記共有メモリに対するアクセスを許可することを特徴とする請求項2記載のバスシステム。


【図1】
image rotate

【図2】
image rotate


【公開番号】特開2006−293536(P2006−293536A)
【公開日】平成18年10月26日(2006.10.26)
【国際特許分類】
【出願番号】特願2005−111065(P2005−111065)
【出願日】平成17年4月7日(2005.4.7)
【出願人】(000004260)株式会社デンソー (27,639)
【Fターム(参考)】