(57)【要約】【課題】  メモリを共有して使用する場合、アクセスが禁止されているバスマスタによりメモリに不用意にアクセスが行われることを確実に防止できるバスシステムを提供する。【解決手段】  バスブリッジ回路１５は、内部バス６と周辺バス１１〜１４とのデータ転送を中継する機能を備え、バスアクセス制限部２１によってバスマスタ２，３，５が周辺バスに接続されている共有メモリ１０に対して行うアクセスを制御する。バスマスタは、アクセス許可を受けるためのキーデータをキーデータレジスタ２２に書き込み、そのキーデータと固定データとが一致し、アービタ２３より出力されるＩＤデータも固定データと一致すれば、バスアクセス制限部２１は共有メモリ１０に対するアクセスを許可する。【選択図】  図１
2006293536.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスマスタが相互に直接接続されているシステムバスと、
このシステムバス上でバス権を獲得したバスマスタに対応するＩＤデータを、当該バス上に出力するＩＤデータ出力手段と、
前記複数の内、２つ以上の特定のバスマスタによって共通にアクセスされる共有メモリ、及びその他の周辺回路が接続される周辺バスと、
前記システムバスと前記周辺バスとの間に接続され、両バス間のデータ転送を中継するバスブリッジ回路とを備え、
前記バスブリッジ回路は、
前記特定のバスマスタが前記共有メモリにアクセスを行う場合に、アクセス許可を受けるためのキーデータを書き込むキーデータレジスタと、
このキーデータレジスタに書き込まれたデータ値と、予め設定されたキーデータ値とを比較する第１コンパレータと、
前記共有メモリに対する書込みサイクルの実行時に、前記ＩＤデータ出力手段より出力されるＩＤデータと、予め設定されたＩＤデータ値とを比較する第２コンパレータと、
前記第１及び第２コンパレータの比較結果が何れも一致する場合に、前記共有メモリに対するアクセスを許可するアクセス許可手段とを備えてなることを特徴とするバスシステム。
【請求項２】
前記複数のバスマスタの１つ以上は、外部との通信を行うための通信用ＩＣであり、且つ、前記共有メモリに対するアクセスが禁止されていることを特徴とする請求項１記載のバスシステム。
【請求項３】
前記通信用ＩＣの１つは、前記バスマスタの何れかの動作をエミュレートするＩＣＥ（In Circuit Emulator）との通信を行うＩＣＥ用インターフェイスであり、
前記ＩＣＥ用インターフェイスに前記ＩＣＥが接続されているか否かを判定する接続判定手段を備え、
前記アクセス許可手段は、前記接続判定手段により前記ＩＣＥが非接続であると判定される条件も併せて成立している場合に、前記共有メモリに対するアクセスを許可することを特徴とする請求項２記載のバスシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のバスマスタが相互に直接接続されているシステムバスと、共有メモリやその他の周辺回路が接続される周辺バスと、両バス間のデータ転送を中継するバスブリッジ回路とを備えてなるバスシステムに関する。
【背景技術】
【０００２】
近年、システムＬＳＩは多機能化が進んでおり、回路規模の増大を抑制するため回路部品を共有化したいという要請が高まっている。部品の共有化の１つとしては、例えば、１つ以上のＣＰＵやＤＭＡコントローラなどによって使用されるメモリを共有化することが考えられる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、その場合は、メモリを共通にアクセス可能なバス上に配置することになる。すると、本来はそのメモリに対するアクセスが許可されていないものまでアクセスを行い、メモリデータを読取ったり破壊したりするおそれがある。また、外部と通信を行うためのインターフェイス用ＩＣが搭載されており、そのＩＣが直接メモリにアクセスするような場合には、データが外部に流出することも考えられる。斯様な問題があることから、重要な情報が格納されるメモリについては共有化することなく、夫々のローカルバス上に配置して専用メモリとせざるを得なかった。
【０００４】
尚、出願人は、本願発明に関する先行技術文献として提示すべき適切なものを見つけることはできなかった。
本発明は上記事情に鑑みてなされたものであり、その目的は、メモリを共有して使用する場合でも、アクセスが禁止されているバスマスタにより前記メモリに不用意にアクセスが行われることを確実に防止できるバスシステムを提供することにある。
【課題を解決するための手段】
【０００５】
請求項１記載のバスシステムによれば、バスブリッジ回路は、システムバスと周辺バスとのデータ転送を中継する機能を備え、アクセス許可手段によって、バスマスタが周辺バスに接続されている共有メモリに対して行うアクセスを制御する。即ち、前記アクセスが許可されるには、バスマスタは、先ず、アクセス許可を受けるためのキーデータをキーデータレジスタに書き込む。そして、書き込まれたキーデータと予め定められたデータとが一致する必要がある。
また、バスサイクルを実行する際に、ＩＤデータ出力手段からはバスマスタのＩＤデータが出力されるが、そのＩＤデータについても予め定められたデータと一致する必要があり、アクセス許可手段は、これら２つの一致条件が成立した場合にだけ共有メモリに対するアクセスを許可する。従って、アクセスの許否について２重のチェックが行われるようになり、共有メモリに対するアクセス権が設定されていないバスマスタが不用意にアクセスを行うことを確実に防止できる。
【０００６】
請求項２記載のバスシステムによれば、複数のバスマスタの１つ以上を、共有メモリに対するアクセスが禁止され、外部との通信を行うための通信用ＩＣとする。即ち、斯様な通信用ＩＣがシステムバス上に存在すると、外部の通信先が前記ＩＣを介して共有メモリにアクセスを行い、データを取得したり書き換えたりするおそれがある。従って、そのようなバスシステムに対して本願発明を適用すれば、重要なメモリデータの流出や改変を防止することができる。
【０００７】
請求項３記載のバスシステムによれば、アクセス許可手段は、ＩＣＥ用インターフェイスに対してＩＣＥが非接続である条件も併せて、共有メモリに対するアクセスを許可する。即ち、ＩＣＥが接続されている場合は、ＩＣＥを用いたデバッグ作業時に共有メモリに対するアクセスが行われるおそれがある。従って、ＩＣＥが非接続である条件も加えてアクセスを許可すれば、ＩＣＥが接続されている場合におけるメモリデータの流出や改変を防止することができる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明を、ＡＲＭ社のバス規格であるアドバンスドマイクロコントローラバスアーキテクチャ（ＡＭＢＡ）を採用して構成されるシステムＬＳＩに適用した場合の一実施例について、図面を参照して説明する。図１は、システムＬＳＩ１の全体構成を示す機能ブロック図である。システムＬＳＩ１のコア部分は、ＣＰＵ２，ＤＭＡコントローラ（ＤＭＡＣ）３，シリアルインターフェイス（Ｉ／Ｆ）４，ＩＣＥインターフェイス（通信用ＩＣ）５によって構成され、これらは、内部バス（システムバス）６を介して相互に接続されている。
【０００９】
システムＬＳＩ１には、上記コア部分以外に周辺回路７〜９（ModuleＡ〜Ｃ）及び共有メモリ１０が存在しており、それらは、夫々独立の周辺バス１１〜１４に接続されている。そして、内部バス６と周辺バス１１〜１４とは、バスブリッジ回路１５を介して接続されている。バスブリッジ回路１５は、双方のバス６，１１〜１４を介して行われるデータ伝送を中継するもので、内部バス６側に対しては内部バスＩ／Ｆ１６が接続され、その内部バスＩ／Ｆ１６と周辺バス１１〜１４とは、各周辺バスＩ／Ｆ１７〜２０を介して接続されている。
【００１０】
尚、共有メモリ１０については、ＣＰＵ２及びＤＭＡコントローラ３のみがアクセス可能となっており、その他のバスマスタ、即ちＩＣＥ・Ｉ／Ｆ５によるアクセスを制限するため、内部バスＩ／Ｆ１６と周辺バスＩ／Ｆ２０との間にはバスアクセス制限部（アクセス許可手段）２１が配置されている。尚、シリアルＩ／Ｆ４内部の送受信バッファと共有メモリ１０との間のデータ転送はＤＭＡコントローラ３が行うので、シリアルＩ／Ｆ４自体はバスマスタとはならない。
また、バスアクセス制限部２１を制御するため、キーデータレジスタ２２が設けられている。そして、内部バス６は、ＡＭＢＡにおけるＡＨＢ（アドバンスドハイパフォーマンスバス）規格に準拠して構成され、周辺バス１１〜１４は、ＡＰＢ（アドバンスドペリフェラルバス）規格に準拠して構成されている。
【００１１】
内部バスＩ／Ｆ１６は、ＣＰＵ２等のバスマスタから見ると、内部バス６上のスレーブの１つとして位置づけられている。そして、内部バスＩ／Ｆ１６は、内部バス６側に関するインターフェイス処理を行なったり、バスマスタが何れの周辺回路７〜１０にアクセスを行うかをアドレスデコード結果によりセレクトしたり、周辺バスＩ／Ｆ１７〜２０の制御を行う。
また、内部バス６には、アービタ（ＩＤデータ出力手段）２３が接続されており、アービタ２３は、内部バス６におけるバス権の調停処理を行なう。そして、アービタ２３は、調停の結果、バス権を付与したバスマスタに対してはバスグラント信号を出力すると共に、各バスマスタに対応して予め割り当てられているマスタ番号（一般に、夫々のバスリクエスト信号，バスグラント信号と同じ番号）を出力するようになっており、そのマスタ番号は、バスアクセス制限部２１に出力されている。
【００１２】
ＣＰＵ２，ＤＭＡコントローラ３は、共有メモリ１０に対してアクセスを行う場合に、そのアクセス許可を受けるため、予め定められているキーデータをキーデータレジスタ２２に書き込むように設定されている。そして、バスアクセス制限部２１は、レジスタ２２に書き込まれたキーデータが予め定められているデータ値に一致するか否かの判定（ＫＥＹデータ判定）を行う。また、ＩＣＥ・Ｉ／Ｆ５は、外部のＩＣＥ本体がケーブルを介して接続されているか否かの状態を示す信号を、バスアクセス制限部２１に出力するようになっている。そして、バスアクセス制限部２１は、前記ＩＣＥ本体の接続状態にも応じて（ＩＣＥ接続判定）共有メモリ１０に対するアクセス制御を行うようになっている。
更に、バスアクセス制限部２１は、共有メモリ１０に対するアクセスについては、アービタ２３より出力されるマスタ番号（ＩＤデータ）についても、予めアクセスが許可されているバスマスタに対応する番号であるか否かを判定し（バスマスタ判定）、その結果も加えてアクセス制御を行うようになっている。
【００１３】
図２は、バスアクセス制限部２１の内部構成を示すものである。キーデータレジスタ２２に書き込まれたデータは、予め定められた固定データ（ＫＥＹ＿ＩＤ）２５とマグニチュードコンパレータ２６により比較され、コンパレータ２６の出力端子は、３入力ＡＮＤゲート２７の１つの入力端子に接続されている。
また、周辺バス１１〜１４の何れかにアクセスが行われる場合に出力されるマスタ番号は、マスタ番号レジスタ２８でラッチされるようになっており、そのレジスタ２８でラッチされたデータは、予め定められた固定データ（Master No.）２９とコンパレータ３０により比較される。そして、コンパレータ３０の出力端子は、ＡＮＤゲート２７の他の１つの入力端子に接続されている。尚、レジスタ２２及び２８にデータを書き込むためのロジック回路については図示を省略する。
【００１４】
加えて、ＩＣＥ・Ｉ／Ｆ５より与えられる接続状態信号は、ＮＯＴゲート３１を介してＡＮＤゲート２７の残り１つの入力端子に出力されている。
ＡＮＤゲート２７の出力端子は、ＡＮＤゲート３２〜３４の一方の入力端子に共通に接続されており、それらのＡＮＤゲート３２〜３４の他方の入力端子には、アドレス、共有メモリ１０に対するチップセレクト信号（即ち、上位アドレスのデコード信号）、データが夫々与えられている。尚、これらの内アドレス及びデータについては、実際には複数ビットであるものを１つだけで表している。
また、ＡＮＤゲート３２〜３４の出力端子は、Ｄフリップフロップ３５〜３７のデータ入力端子Ｄに接続されている。これらのフリップフロップ３５〜３７は、入力されるアドレス、チップセレクト信号、データをクロック信号Ｃｌｏｃｋにより同期化してメモリＩ／Ｆ２０に出力するもので、夫々の出力端子ＱはメモリＩ／Ｆ２０の入力端子に接続されている。
【００１５】
ここで、ＡＮＤゲート２７は、共有メモリ１０に対してアクセスを行うバスマスタの数に応じて設けられている（但し、レジスタ２８、固定データ２９、コンパレータ３０は共通化可能）。従って、例えばＡＮＤゲート２７が２つある場合は、それらのＯＲ信号がＡＮＤゲート３２〜３４に与えられる。
【００１６】
次に、本実施例の作用について説明する。何れかのバスマスタ２，３，５が周辺回路７〜９の何れかにアクセスする場合、或いは、ＣＰＵ２又はＤＭＡコントローラ３が共有メモリ１０にアクセスする場合は、先ずバスブリッジ回路１５の内部バスＩ／Ｆ１６にアクセスが行われる。アクセス先が周辺回路７〜９の何れかである場合、バスブリッジ回路１５を介して対応する周辺バスＩ／Ｆ１７〜１９にアクセス命令が発行され（２）、周辺回路７〜９にアクセスを行う（３）。
【００１７】
また、例えばＣＰＵ２が共有メモリ１０に対してアクセスを行う場合は、（１）において、内部バスＩ／Ｆ１６を介してキーデータレジスタ２２にキーデータの書込みを行う。この時、書き込まれたデータが固定データ２５に一致すれば、コンパレータ２６はハイレベルの一致信号を出力する。続いて、ＣＰＵ２は、共有メモリ１０のアクセスアドレスを出力して、リード又はライトサイクルを実行する（２）。すると、そのサイクルにおいてアービタ２３より出力されるマスタ番号がマスタ番号レジスタ２８に書き込まれ、書き込まれたデータが固定データ２９に一致すれば、コンパレータ３０はハイレベルの一致信号を出力する。
【００１８】
そして、ＩＣＥ・Ｉ／Ｆ５にＩＣＥ本体が接続されていなければ、ＮＯＴゲート３１の出力端子はハイレベルとなるので、ＡＮＤゲート２７の出力端子もハイレベルとなる。従って、ＣＰＵ２は、ＡＮＤゲート３２〜３４及びフリップフロップ３５〜３７を介してアドレス、チップセレクト信号及びデータをメモリＩ／Ｆ２０に出力することが許可され（４）、周辺バス１４を介して共有メモリ１０に対するアクセスが可能となる（５）。
尚、ＤＭＡコントローラ３が共有メモリ１０にアクセスを行う場合は、ＣＰＵ２がキーデータレジスタ２２にキーデータの書込みを行った後、ＤＭＡコントローラ３にＤＭＡ転送を開始させれば良い。
【００１９】
即ち、共有メモリ１０に対するアクセスが許可されるのは、以下の３つの条件が全て成立している場合に限られる。
（Ａ）予めアクセスが許可されているバスマスタであること。
（Ｂ）予め設定されているキーデータを書き込むこと。
（Ｃ）システムＬＳＩ１にＩＣＥ本体が接続されていないこと。
従って、（Ａ），（Ｂ）の条件によってアクセス許可が二重にチェックされている。また、（Ｃ）の条件は、ＩＣＥが接続されている場合、ＩＣＥを用いたデバッグ作業時に共有メモリ１０に対するアクセスが行われデータが読み出されたり改ざんされるおそれがあり、アクセスを禁止してデータを保護するために設定している。
【００２０】
以上のように本実施例によれば、バスブリッジ回路１５は、内部バス６と周辺バス１１〜１４とのデータ転送を中継する機能を備え、バスアクセス制限部２１によって、バスマスタが周辺バスに接続されている共有メモリ１０に対して行うアクセスを制御する。即ち、ＣＰＵ２がアクセス許可を受けるためのキーデータをキーデータレジスタ２２に書き込み、そのキーデータと固定データ２５とが一致し、また、アービタ２３より出力されるＩＤデータも固定データ２９と一致すれば、バスアクセス制限部２１は共有メモリ１０に対するアクセスを許可する。
従って、アクセスの許否について２重のチェックが行われるため、共有メモリ１０に対するアクセス権が設定されていないバスマスタが不用意にアクセスを行うことを確実に防止できる。また、バスアクセス制限部２１は、ＩＣＥ・Ｉ／Ｆ５に対してＩＣＥが非接続である条件も併せて、共有メモリ１０に対するアクセスを許可するので、ＩＣＥが接続されている場合におけるメモリデータの流出や改変を防止することができる。
【００２１】
本発明は上記し又は図面に記載した実施例にのみ限定されるものではなく、以下のような変形が可能である。
ＩＤデータ出力手段は、アービタ２３として構成するものに限らず、マスタ番号（ＩＤデータ）だけを出力するように独立した構成としても良い。
ＡＭＢＡを採用して構成されるシステムＬＳＩに限ることなく、バス規格については特に限定しないが、少なくとも、何らかの形でＩＤデータ出力手段やバスブリッジ回路に相当する構成が存在するバスであれば良い。
例えば、ＣＰＵが２個以上存在するマルチＣＰＵシステムに適用しても良い。
ＩＣＥ・Ｉ／Ｆ５は、必要に応じて設ければ良い。
また、通信用ＩＣはＩＣＥ・Ｉ／Ｆ５に限ることなく、通信を行う場合に共有メモリ１０に直接アクセスを行うバスマスタとなりうるものであれば良い。
周辺バスは、必ずしも各周辺回路に対して夫々独立に接続されるものに限らず、共通化されているバスであっても良い。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施例であり、システムＬＳＩの全体構成を示す機能ブロック図
【図２】バスアクセス制限部の内部構成を示す図
【符号の説明】
【００２３】
図面中、１はシステムＬＳＩ、２はＣＰＵ（バスマスタ）、３はＤＭＡコントローラ（バスマスタ）、５はＩＣＥインターフェイス（バスマスタ，通信用ＩＣ）、６は内部バス（システムバス）、７〜９は周辺回路、１０は共有メモリ、１１〜１４は周辺バス、１５はバスブリッジ回路、２１はバスアクセス制限部（アクセス許可手段）、２３はアービタ（ＩＤデータ出力手段）を示す。
【図１】
2006293536.tif 000003
【図２】
2006293536.tif 000004