(57)【特許請求の範囲】
【請求項１】
第１のバスと第２のバスとの間の通信をブリッジングする方法であって、
アドレス変換情報と、関連付けられたセキュリティ指標とを共有メモリ内に記憶するステップと、
前記共有メモリに接続された送出回路を用いて、第１のリクエスタセキュリティ指標と第１のアドレスとを含む、前記第１のバスから受信された各第１のアクセス要求に応答して、
前記第１のリクエスタセキュリティ指標が非セキュアなリクエスタを表わすこと、かつ、前記第１のアドレスに関する、前記共有メモリに記憶された前記アドレス変換情報に関連付けられた前記セキュリティ指標がセキュアなアドレス範囲を表わすことに応答して、前記第１のアクセス要求を拒否するステップと、
前記第１のリクエスタセキュリティ指標がセキュアなリクエスタを表わすことに応答して、前記アドレス変換情報を用いて前記第１のアクセス要求を前記第２のバス用の第２のアクセス要求に変換し、前記第２のアクセス要求を前記第２のバスに伝達するステップと、
前記共有メモリに接続された入来回路を用いて、第３のアドレスを含む、前記第２のバスから受信された各第３のアクセス要求に応答して、
前記共有メモリに記憶された前記アドレス変換情報を用いて前記第３のアクセス要求を前記第１のバス用の第４のアクセス要求に変換するステップと、
前記第４のアクセス要求と、第４のアドレスに関する前記アドレス変換情報に関連付けられ、前記共有メモリに記憶された前記セキュリティ指標とを前記第１のバスに伝達するステップとを含む、方法。
【請求項２】
前記アドレス変換情報は複数のアドレス範囲マップを含み、各アドレス範囲マップは、前記第１のバスの第１のアドレス範囲を前記第２のバスの第２のアドレス範囲にマップし、前記セキュリティ指標の各々は、前記アドレス範囲マップのうちの１つに関連付けられる、請求項１に記載の方法。
【請求項３】
前記第１のリクエスタセキュリティ指標が非セキュアなリクエスタを表わすこと、かつ、前記第１のアドレスに関する前記アドレス変換情報が非セキュアなアドレス範囲を表わすことに応答して、前記第１のアクセス要求を前記第２のバス用の前記第２のアクセス要求に変換し、前記第２のアクセス要求を前記第２のバスに伝達するステップをさらに含む、請求項１または２に記載の方法。
【請求項４】
前記アドレス変換情報は複数のアドレス範囲マップを含み、各アドレス範囲マップは、前記第１のバスの第１のアドレス範囲を前記第２のバスの第２のアドレス範囲にマップし、前記セキュリティ指標の各々は、前記アドレス範囲マップのうちの１つに関連付けられ、
各アドレス範囲マップは、第１のベースアドレスと第２のベースアドレスとを指定する、請求項１に記載の方法。
【請求項５】
各アドレス範囲マップはサイズを指定する、請求項４に記載の方法。
【請求項６】
前記第１のベースアドレスは前記第１のバスの第１のアドレス空間内にあり、前記第２のベースアドレスは前記第２のバスの第２のアドレス空間内にある、請求項５に記載の方法。
【請求項７】
前記セキュリティ指標はプログラマブルである、請求項１〜６のいずれかに記載の方法。
【請求項８】
第１のバスと第２のバスとの間の通信のためのブリッジ回路であって、
アドレス変換情報と、関連付けられたセキュリティ指標とを記憶するように構成可能である共有メモリと、
前記共有メモリと前記第１および第２のバスとに結合された送出回路とを備え、前記送出回路は、前記第１のバスから第１のアクセス要求を受信するように構成され、各第１のアクセス要求は第１のリクエスタセキュリティ指標と第１のアドレスとを含み、各第１のアクセス要求に関して、前記送出回路は、
前記第１のリクエスタセキュリティ指標が非セキュアなリクエスタを表わすこと、かつ、前記第１のアドレスに関する、前記共有メモリに記憶された前記アドレス変換情報に関連付けられた前記セキュリティ指標がセキュアなアドレス範囲を表わすことに応答して、前記第１のアクセス要求を拒否し、
前記第１のリクエスタセキュリティ指標がセキュアなリクエスタを表わすことに応答して、前記アドレス変換情報を用いて前記第１のアクセス要求を前記第２のバス用の第２のアクセス要求に変換し、前記第２のアクセス要求を前記第２のバスに伝達するように構成され、前記ブリッジ回路はさらに、
前記共有メモリと前記第１および第２のバスとに結合された入来回路を備え、前記入来回路は、前記第２のバスから第３のアクセス要求を受信するように構成され、各第３のアクセス要求は第３のアドレスを含み、前記入来回路はさらに、
前記共有メモリに記憶された前記アドレス変換情報を用いて前記第３のアクセス要求を前記第１のバス用の第４のアクセス要求に変換し、
前記第４のアクセス要求と、第４のアドレスに関する前記アドレス変換情報に関連付けられ、前記共有メモリに記憶された前記セキュリティ指標とを前記第１のバスに伝達するように構成されている、ブリッジ回路。
【請求項９】
前記アドレス変換情報は複数のアドレス範囲マップを含み、各アドレス範囲マップは、前記第１のバスの第１のアドレス範囲を前記第２のバスの第２のアドレス範囲にマップし、前記セキュリティ指標の各々は、前記アドレス範囲マップのうちの１つに関連付けられる、請求項８に記載のブリッジ回路。
【請求項１０】
前記第１のリクエスタセキュリティ指標が非セキュアなリクエスタを表わすこと、かつ、前記第１のアドレスに関する前記アドレス変換情報が非セキュアなアドレス範囲を表わすことに応答して、前記送出回路は、さらに、前記第１のアクセス要求を前記第２のバス用の前記第２のアクセス要求に変換し、前記第２のアクセス要求を前記第２のバスに伝達するように構成されている、請求項８または９に記載のブリッジ回路。
【請求項１１】
前記アドレス変換情報は複数のアドレス範囲マップを含み、各アドレス範囲マップは、前記第１のバスの第１のアドレス範囲を前記第２のバスの第２のアドレス範囲にマップし、前記セキュリティ指標の各々は、前記アドレス範囲マップのうちの１つに関連付けられ、
各アドレス範囲マップは、第１のベースアドレスと第２のベースアドレスとを指定する、請求項８に記載のブリッジ回路。
【請求項１２】
各アドレス範囲マップはサイズを指定する、請求項１１に記載のブリッジ回路。
【請求項１３】
前記第１のベースアドレスは前記第１のバスの第１のアドレス空間内にあり、前記第２のベースアドレスは前記第２のバスの第２のアドレス空間内にある、請求項１２に記載のブリッジ回路。
【請求項１４】
前記セキュリティ指標はプログラマブルである、請求項８〜１３のいずれかに記載のブリッジ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
本開示は、概してバス間の通信をブリッジングすることに関する。
【背景技術】
【０００２】
背景
バスは、電子回路内の異なるデバイス間でデータを転送するインターコネクトサブシステムまたは回路である。バスを介して効果的に通信するために、バスは、当該バスに接続された各デバイスが従うべき１組のルールおよび接続を規定する。バスに接続され得るデバイスの例として、たとえばプロセッサ、メモリ、外部システムへのブリッジが含まれ得るが、これらに限定されない。バスは、ポイントツーポイント接続と違って、共通の１組の線を介して複数の周辺機器を接続可能である。
【０００３】
多くの電子システムは複数のバスを含むことにより、並行して複数のデバイス間でデータを転送することが容易になる。いくつかのシステムにおいて、或るプロトコルを実現するバスから別の異なるプロトコルを実現するバスにデータが転送されてもよい。異なるプロトコルを実現するバスを接続することにより、互換性の問題が生じる場合がある。たとえば、ＡＭＢＡ（Advanced Microcontroller Bus Architecture）のＡＸＩ（Advanced eXtensible Interface）は、ソフトウェアにより制御され、かつ、ハードウェアにより実施されるセキュアなアイソレーションと、バスに接続された非セキュアなリソースとをサポートする。一方、ＰＣＩエクスプレス（ＰＣＩｅ：Peripheral Component Interconnect express）バスアーキテクチャは、同様のセキュリティを提供しない。異なるバスは異なる特徴を有するため、バスを接続することは問題をはらむ場合がある。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要
一実施形態において、第１のバスと第２のバスとの間の通信のブリッジングの方法は、アドレス変換情報と、関連付けられたセキュリティ指標とをメモリ内に記憶するステップを含む。第１のバスから受信された各第１のアクセス要求は、第１のリクエスタセキュリティ指標と第１のアドレスとを含む。各第１のアクセス要求に応答して、上記方法は、第１のリクエスタセキュリティ指標が非セキュアなリクエスタを表わすこと、かつ、第１のアドレスに関するアドレス変換情報に関連付けられたセキュリティ指標がセキュアなアドレス範囲を表わすことに応答して、第１のアクセス要求を拒否する。第１のリクエスタセキュリティ指標がセキュアなリクエスタを表わすことに応答して、第１のアクセス要求は、アドレス変換情報を用いて第２のバス用の第２のアクセス要求に変換され、第２のアクセス要求は、第２のバスに伝達される。第２のバスから受信された各第３のアクセス要求は、第３のアドレスを含む。各第３のアクセス要求に応答して、上記方法は、アドレス変換情報を用いて第３のアクセス要求を第１のバス用の第４のアクセス要求に変換する。上記方法は、第４のアクセス要求を、第４のアドレスに関するアドレス変換情報に関連付けられたセキュリティ指標と共に、第１のバスに伝達する。
【０００５】
別の実施形態において、第１のバスと第２のバスとの間の通信のためのブリッジ回路は、アドレス変換情報と、関連付けられたセキュリティ指標とを記憶するように構成可能であるメモリを備える。送出回路が、メモリと第１および第２のバスとに結合される。送出回路は、第１のバスから第１のアクセス要求を受信するように構成され、各第１のアクセス要求は第１のリクエスタセキュリティ指標と第１のアドレスとを含む。各第１のアクセス要求に関して、送出回路は、第１のリクエスタセキュリティ指標が非セキュアなリクエスタを表わすこと、かつ、第１のアドレスに関するアドレス変換情報に関連付けられたセキュリティ指標がセキュアなアドレス範囲を表わすことに応答して、第１のアクセス要求を拒否するように構成されている。送出回路は、第１のリクエスタセキュリティ指標がセキュアなリクエスタを表わすことに応答して、アドレス変換情報を用いて第１のアクセス要求を第２のバス用の第２のアクセス要求に変換し、第２のアクセス要求を第２のバスに伝達するように構成されている。入来回路が、メモリと第１および第２のバスとに結合される。入来回路は、第２のバスから第３のアクセス要求を受信するように構成され、各第３のアクセス要求は第３のアドレスを含む。入来回路は、さらに、アドレス変換情報を用いて第３のアクセス要求を第１のバス用の第４のアクセス要求に変換するように構成されている。入来回路は、第４のアクセス要求を、第４のアドレスに関するアドレス変換情報に関連付けられたセキュリティ指標と共に、第１のバスに伝達するように構成されている。
【０００６】
別の実施形態において、システムが提供される。このシステムは、第１のバスと、第１のバスに結合された第１の組のマスター・スレーブ回路と、第２のバスと、第１のバスと第２のバスとの間に結合されたブリッジ回路と、第２のバスに結合された第２の組のマスター・スレーブ回路とを含む。ブリッジ回路は、アドレス変換情報と、関連付けられたセキュリティ指標とを記憶するように構成可能であるメモリを備える。送出回路が、メモリと第１および第２のバスとに結合される。送出回路は、第１のバスから第１のアクセス要求を受信するように構成され、各第１のアクセス要求は第１のリクエスタセキュリティ指標と第１のアドレスとを含む。各第１のアクセス要求に関して、送出回路は、第１のリクエスタセキュリティ指標が非セキュアなリクエスタを表わすこと、かつ、第１のアドレスに関するアドレス変換情報に関連付けられたセキュリティ指標がセキュアなアドレス範囲を表わすことに応答して、第１のアクセス要求を拒否するように構成されている。送出回路は、第１のリクエスタセキュリティ指標がセキュアなリクエスタを表わすことに応答して、アドレス変換情報を用いて第１のアクセス要求を第２のバス用の第２のアクセス要求に変換し、第２のアクセス要求を第２のバスに伝達するように構成されている。入来回路が、メモリと第１および第２のバスとに結合される。入来回路は、第２のバスから第３のアクセス要求を受信するように構成され、各第３のアクセス要求は第３のアドレスを含む。入来回路は、さらに、アドレス変換情報を用いて第３のアクセス要求を第１のバス用の第４のアクセス要求に変換するように構成されている。入来回路は、第４のアクセス要求を、第４のアドレスに関するアドレス変換情報に関連付けられたセキュリティ指標と共に、第１のバスに伝達するように構成されている。
【０００７】
他の特徴は、以下の詳細な説明および特許請求の範囲を考慮することにより理解されるであろう。
【０００８】
以下の詳細な説明を検討し、かつ図面を参照すれば、方法およびシステムのさまざまな局面および特徴が明らかになるであろう。
【図面の簡単な説明】
【０００９】
【図１】ハードウェアにより実施される制御をセキュアなリソースおよび非セキュアなリソースに対して提供する第１のバスと、第１のバスのセキュリティ機構を認識しない第２のバスとの間で通信するためのブリッジ回路を含むシステムを示す図である。
【図２】第１のバスと第２のバスとの間の通信のブリッジングに関する処理の例のフローチャートである。
【図３】図１のブリッジング回路と図２の処理とが実現され得るプログラマブル集積回路（ＩＣ：integrated circuit）を示す図である。
【発明を実施するための形態】
【００１０】
図面の詳細な説明
以下の説明において、本明細書で提示する具体例を説明するために、多くの具体的詳細を示す。しかしながら、下記の具体的詳細のうち必ずしもすべてが無くても、１つ以上の他の例および／またはこれらの例の変形例を実践し得ることが、当業者に明らかになるはずである。他の例において、本明細書中の例の説明が不鮮明にならないように、公知の特徴については詳述していない。説明を容易にするために、異なる図中で同じ参照番号を用いて同じ事項を指すことがある。一方、別の例では、事項が異なることもある。
【００１１】
開示されたブリッジ回路は、第２のバスとの通信のブリッジングにおいて、第１のバスにより実現されるセキュリティ手段を収容する。第２のバスは、第１のバスのセキュリティ機構を実現しない。１つの方策によれば、ブリッジ回路は、アドレス変換情報と、関連付けられたセキュリティ指標とを記憶する。アドレス変換情報を用いて、第１のバスのアドレス空間と第２のバスのアドレス空間との間でアドレスが変換される。アドレス変換情報に関連付けられたセキュリティ指標は、異なるアドレス範囲が異なるセキュリティ指定を有し得るように構成可能である。
【００１２】
ブリッジ回路により第１のバスから受信されたアクセス要求は要求されたアドレスを参照し、関連付けられたリクエスタセキュリティ指標を有する。要求されたアドレスは、第１のバスの第１のアドレス空間内のアドレスを参照する。リクエスタセキュリティ指標は、リクエスタのセキュリティ設定を表わす。たとえばリクエスタのセキュリティ設定は、セキュアであるか非セキュアであるかであってもよい。
【００１３】
リクエスタが非セキュアである旨をリクエスタセキュリティ指標が表わすこと、かつ、要求されたアドレスに関するアドレス変換情報に関連付けられたセキュリティ指標がセキュアなアドレス範囲を表わすことに応答して、ブリッジ回路は、第１のバス上のリクエスタから第２のバス上の宛先へのアクセス要求を拒否する。リクエスタが非セキュアであり、かつ、要求されたアドレス範囲が非セキュアであることをリクエスタセキュリティ指標が表わす場合、ブリッジ回路は、アドレス変換情報を用いてアクセス要求を第２のバス用のアクセス要求に変換する。リクエスタがセキュアであることをリクエスタセキュリティ指標が表わす場合、ブリッジ回路は、セキュアなアドレス範囲および非セキュアなアドレス範囲の両方について、アドレス変換情報を用いてアクセス要求を第２のバス用のアクセス要求に変換する。変換されたアクセス要求は第２のバスに伝達される。
【００１４】
ブリッジ回路により第２のバスから受信されたアクセス要求は要求されたアドレスを参照するが、関連付けられたリクエスタセキュリティ指標は存在しない。要求されたアドレスは、第２のバスの第２のアドレス空間内のアドレスを参照する。第２のバスを介して受信された要求について、ブリッジ回路は、アドレス変換情報を用いて当該要求を第１のバス用のアクセス要求に変換する。次いでブリッジ回路は、変換されたアクセス要求を、アドレス変換情報に関連付けられたセキュリティ指標と共に第１のバスに伝達する。
【００１５】
図１は、ハードウェアにより実施される制御をセキュアなリソースおよび非セキュアなリソースに対して提供する第１のバスと、第１のバスのセキュリティ機構を認識しない第２のバスとの間で通信するためのブリッジ回路を含むシステム１００を示す。図示はしないが、ブリッジおよびバスは、図示されたアドレスチャネルの他にデータチャネルを提供することが理解されるであろう。
【００１６】
システム１００は、第１のバス１０４に結合された第１の組のマスター・スレーブ回路１０２と、ブリッジ回路１０６と、バスコントローラ１０８と、第２のバス１１０と、第２のバスに結合された第２の組のマスター・スレーブ回路１１２とを含む。第１の組のマスター・スレーブ回路１０２は、１つ以上のマスター回路と１つ以上のスレーブ回路とを含んでもよく、第２の組のマスター・スレーブ回路１１２は、１つ以上のマスター回路と１つ以上のスレーブ回路とを含んでもよい。マスター回路の例としては、マイクロプロセッサ、ダイレクトメモリアクセス（ＤＭＡ：direct memory access）回路、および／またはデジタルシグナルプロセッサ（ＤＳＰ：digital signal processor）が含まれる。スレーブ回路の例としては、フラッシュメモリデバイス、ソリッドステートドライブ、またはハードディスクドライブが含まれる。ブリッジ回路１０６は、第１のバス１０４上のスレーブ回路の一例である。
【００１７】
ブリッジ回路１０６は、第１のバス１０４と第２のバス１１０との間で要求を変換する。バスは、さまざまなアドレス空間、さまざまな物理構成、およびさまざまなセキュリティ機構を有し得る。たとえば、バス１０４は、ＡＸＩバスなどのパラレルバスであってもよく、バス１１０は、ＰＣＩｅなどのシリアルバスであってもよい。また、ＡＸＩバスは、セキュアなリソースと非セキュアなリソースとを分離する。ＡＸＩバス上において、デバイスがセキュアであるか非セキュアであるかを表わすセキュリティプロファイルが各デバイスに割当てられてもよい。メモリアクセストランザクションは、リクエスタのセキュリティレベルを表わすようにタグが付けられ、タグはインターコネクトシステムにわたって伝達される。非セキュアなマスターデバイスまたは非セキュアなソフトウェアタスクは、非セキュアなメモリ領域または非セキュアなスレーブデバイスのみへのアクセスが許可される。セキュアなマスターデバイスまたはセキュアなソフトウェアタスクは、セキュアなメモリ領域および非セキュアなメモリ領域の両方へのアクセスが許可される。ＡＸＩバス上において、トランザクションセキュリティは、セキュリティ指標１４２に相当するＡｘＰＲＯＴ［１］信号（ｘは読取チャネルを表わすＲおよび書込チャネルを表わすＷを示す）の状態により表わされる。ＰＣＩｅバス上において、トランザクションと共に送信される同様のセキュリティ情報は存在しない。
【００１８】
送出回路１２２は、第１のバス１０４上のリクエスタ（マスター回路）からの要求を、第２のバス１１０上のスレーブ回路に好適な要求に変換する。入来回路１２４は、第２のバス１１０上のリクエスタからの要求を、第１のバス１０４上のスレーブ回路に好適な要求に変換する。送出変換回路および入来変換回路は、２つのアドレス空間の間でアドレスを変換し、アドレス範囲マップ１２６を用いて第１のバスのセキュリティ機構を実施する。アドレス範囲マップは、たとえば、１つ以上のデュアルポートメモリ１２８で実現されてもよい。実施の一例において、アドレス範囲マップ１２６は、構成信号１３０を介して構成可能であってもよい。
【００１９】
各アドレス範囲マップは、それぞれのアドレスの範囲を記述する。アドレス範囲マップにおける情報は、アドレス範囲のサイズ１３２と、リモートベースアドレス１３４と、ローカルベースアドレス１３６と、セキュリティ指標１３８とを指定する。アドレス範囲のサイズは、たとえば、範囲内のアドレス可能なワード数を表わす。リモートベースアドレスは、第２のバス１１０のアドレス空間内の、アドレス範囲が始まるベースアドレスを表わす。ローカルベースアドレスは、第１のバス１０４のアドレス空間内の、アドレス範囲が始まるベースアドレスを表わす。セキュリティ指標１３８は、アドレス範囲がセキュアであるか非セキュアであるかを表わす。
【００２０】
送出回路は、第１のバス１０４からアクセス要求を受信する。各アクセス要求（本明細書においてトランザクションと称される場合もある）は、リクエスタセキュリティ指標１４２とアドレス１４４とを含む。セキュリティ指標は、要求を開始したマスター回路のセキュリティレベル、たとえば、セキュアであるか非セキュアであるかを指定する。アドレスは、第１のバス１０４のアドレス空間のアドレスを参照する。アクセス要求に応答して、送出回路は、リクエスタセキュリティ指標と、要求されたアドレスに関連付けられたセキュリティ指標とに基づき、当該要求を変換して第２のバス１１０に伝達するか否かを判断する。リクエスタがセキュアであることをリクエスタセキュリティ指標が表わす場合、送出回路は、第１のバスからのアクセス要求を、第２のバス用のアクセス要求に変換する。特に、要求されたアドレスは、当該要求されたアドレスが該当するアドレス範囲を指定する、アドレスマップ１２６のうちの１つを用いて変換される（ローカルベースアドレス＜＝要求されたアドレス＜＝（ローカルベースアドレス＋サイズ））。送出回路により出力されるアドレス１４６は、第２のバス１１０のアドレス空間内のアドレスであり、（要求されたアドレス−ローカルベースアドレス）＋リモートベースアドレスと等しい。リクエスタセキュリティ指標が非セキュアなリクエスタを表わし、かつ、要求されたアドレスに関するアドレス変換情報が非セキュアなアドレス範囲を表わす場合、送出回路は上述のようにアクセス要求を変換する。リクエスタが非セキュアである旨をリクエスタセキュリティ指標が表わすこと、かつ、要求されたアドレスがセキュアなアドレス範囲内である旨をアドレス範囲に関連付けられたセキュリティ指標が表わすことに応答して、送出回路はアクセス要求を拒否する。この拒否は、送出回路からの拒否信号１４８によって表わされてもよい。
【００２１】
入来回路１２４は、第１のバス１０４上のデバイスにアドレス指定された、第２のバス１１０上のリクエスタからの要求を受信して処理する。第２のバスからの要求は、要求されたアドレス１５２を含むが、第１のバス１０４からの要求が含むようなリクエスタセキュリティ指標を含まない。入来回路は、アドレス範囲マップのうちの１つを用いて、第２のバス１１０からのアクセス要求を、第１のバス１０４用のアクセス要求に変換する。上記１つのアドレス範囲マップは、（リモートベースアドレス＜＝要求されたアドレス＜＝（リモートベースアドレス＋サイズ））である。入来回路により出力されたアドレス１５４は、第１のバス１０４のアドレス空間内のアドレスであり、（要求されたアドレス−リモートベースアドレス）＋ローカルベースアドレスである。アドレス１５４と共に、入来回路は、要求されたアドレスのアドレス範囲に関連付けられたセキュリティ指標１５６を伝達する。このように、アドレス範囲に関連付けられたセキュリティ指標は、第１のバス１０４にアクセス要求を送るすべてのマスター回路１１２について、リクエスタのセキュリティレベルを表わす。承認信号および拒否信号は、信号線１５８を通ってバスコントローラ１０８に提供される。
【００２２】
バスコントローラは、ブリッジ回路１０６と第２のバス１１０との間のインターフェイスを提供する。バス１１０が、ＰＣＩエクスプレス（ＰＣＩｅ）などのシリアルリンクを提供する実施態様において、バスコントローラは、トランザクション、リンク、および回路の物理層を含み得る。
【００２３】
図２は、第１のバスと第２のバスとの間の通信のブリッジングに関する処理の例のフローチャートである。ブロック２０２において、アドレスマップは、第１のバスと第２のバスとの間で要求を変換するためのアドレス変換情報で構成される。各アドレス範囲マップは、それぞれのアドレスの範囲について、サイズと、リモートベースアドレスと、ローカルベースアドレスと、セキュリティ指標とを指定する。
【００２４】
第１のバス（セキュリティ手段を実現するバス）からのアクセス要求に関して、処理はブロック２０４に進む。ブロック２０４において、アクセス要求におけるアドレスのアドレス範囲を決定する。判断ブロック２０６は、範囲がセキュアであると指定されたか否かを判断する。範囲がセキュアである場合、判断ブロック２０８は、アクセス要求に伴う信号によって表わされるように、リクエスタがセキュアであるか否かを判断する。リクエスタがセキュアである場合、ブロック２１０において、処理は、要求のアドレスを第１のバスのアドレス空間から第２のバスのアドレス空間に変換する。ブロック２１２において、変換されたアドレスを用いてアクセス要求を作成し、第２のバスへ伝達する。リクエスタがセキュアではなく、かつ、要求されたアドレスが、セキュアであると指定されたアドレス範囲内にある場合、判断ブロック２０８は、処理をブロック２１４に進める。ブロック２１４では、アクセス要求がリクエスタへの信号を用いて拒否される。
【００２５】
ブロック２２０において、第２のバス（第１のバスのセキュリティ手段を実現しないバス）からのアクセス要求に関して、アクセス要求におけるアドレスのアドレス範囲を決定する。ブロック２２６において、アドレス範囲マップを用いて、アドレスを、第２のバスのアドレス空間から第１のバスのアドレス空間のアドレスに変換する。ブロック２２８において、変換されたアドレスを用いてアクセス要求を作成し、このアドレス要求と、アドレス範囲マップに基づくセキュリティ指標の状態とを第１のバスに伝達する。アクセス要求を受信する第１のバス上のデバイスは、アクセスを許可するか要求を拒否するかを判断可能である。
【００２６】
図３は、図１のブリッジング回路と図２の処理とが実現され得るプログラマブル集積回路（ＩＣ）を示す。図３のプログラマブルＩＣは、数多くのさまざまなプログラマブルタイルを含むＦＰＧＡアーキテクチャ（３００）を示す。さまざまなプログラマブルタイルには、マルチギガビットトランシーバ（ＭＧＴ：multi-gigabit transceiver）３０１、構成可能な論理ブロック（ＣＬＢ：configurable logic block）３０２、ランダムアクセスメモリブロック（ＢＲＡＭ：random access memory block）３０３、入力／出力ブロック（ｌＯＢ：input／output block）３０４、構成およびクロッキング論理（ＣＯＮＦＩＧ／ＣＬＯＣＫＳ：configuration and clocking logic）３０５、デジタル信号処理ブロック（ＤＳＰ：digital signal processing block）３０６、特殊入力／出力ブロック（Ｉ／Ｏ：input/output block）３０７（たとえばクロックポート）、および他のプログラマブル論理３０８（たとえば、デジタルクロックマネージャ、アナログデジタル変換器、およびシステム監視論理）などが含まれる。いくつかのＦＰＧＡは、専用プロセッサブロック（ＰＲＯＣ：dedicated processor block）３１０、ならびに内部再構成ポートおよび外部再構成ポート（図示せず）も含む。
【００２７】
いくつかのＦＰＧＡにおいて、各プログラマブルタイルはプログラマブルインターコネクト要素（ＩＮＴ：programmable interconnect element）３１１を含む。このプログラマブルインターコネクト要素３１１は、隣接する各タイルにおける対応するインターコネクト要素への規格化された接続、および、隣接する各タイルにおける対応するインターコネクト要素からの規格化された接続を有する。したがって、プログラマブルインターコネクト要素の集合によって、図示されたＦＰＧＡのプログラマブルインターコネクト構造が実現される。図３の上部に含まれた例で示すように、プログラマブルインターコネクト要素ＩＮＴ３１１は、同一タイル内のプログラマブル論理素子への接続、および同一タイル内のプログラマブル論理素子からの接続も含む。
【００２８】
たとえば、ＣＬＢ３０２は、ユーザ論理と、単一のプログラマブルインターコネクト要素ＩＮＴ３１１とを実現するようにプログラムされ得る構成可能な論理素子（ＣＬＥ：configurable logic element）３１２を含み得る。ＢＲＡＭ３０３は、１つ以上のプログラマブルインターコネクト要素に加えて、ＢＲＡＭ論理素子（ＢＲＬ：BRAM logic element）３１３を含み得る。典型的には、１つのタイルに含まれるインターコネクト要素の数は、そのタイルの高さによって決まる。図示した実施形態において、ＢＲＡＭタイルは５つのＣＬＢと同じ高さを有するが、他の数（たとえば４つ）も用いられ得る。ＤＳＰタイル３０６は、適切な数のプログラマブルインターコネクト要素に加えて、ＤＳＰ論理素子（ＤＳＰＬ：DSP logic element）３１４を含み得る。ＩＯＢ３０４は、プログラマブルインターコネクト要素ＩＮＴ３１１の１つのインスタンスに加えて、たとえば、入力／出力論理素子（ＩＯＬ：input/output logic element）３１５の２つのインスタンスを含み得る。当業者には明らかになるであろうが、たとえばＩ／Ｏ論理素子３１５に接続される実際のＩ／Ｏボンディングパッドは、金属層を用いて、図示したさまざまな論理ブロック上に製造され、典型的には、入力／出力論理素子３１５の領域に限定されない。
【００２９】
図示した実施形態において、ダイ（die）の中心付近の列領域（図３において網掛けで示した領域）は、構成、クロック、および他の制御論理のために用いられる。この列から広がる水平領域３０９を用いて、クロックおよび構成信号がＦＰＧＡの幅にわたって分配される。
【００３０】
図３に示すアーキテクチャを用いるいくつかのＦＰＧＡは、ＦＰＧＡの大部分を構成する規則正しい列構造を乱す追加の論理ブロックを含む。追加の論理ブロックは、プログラマブルブロックおよび／または専用論理であり得る。たとえば、図３に示すプロセッサブロックＰＲＯＣ３１０は、いくつかのＣＬＢの列およびＢＲＡＭの列にまたがる。
【００３１】
図３は、単なる例であるＦＰＧＡアーキテクチャを示すように意図されたものであることに留意されたい。１列中の論理ブロックの数、列の相対幅、列の数および順番、列に含まれる論理ブロックの種類、論理ブロックの相対サイズ、ならびに、図３の上部に含まれたインターコネクト／論理の実施は、全くの例示である。たとえば実際のＦＰＧＡにおいて、典型的には、ＣＬＢが現れる場合は必ずＣＬＢの隣接列が１つ以上含まれる。これにより、ユーザ論理の効率的な実現が容易になる。
【００３２】
本明細書において記載される例示的な方法は、第１のバスと第２のバスとの間の通信をブリッジングすることに関する。通信のブリッジに関するそのような方法は、アドレス変換情報と、関連付けられたセキュリティ指標とをメモリ内に記憶するステップを含み得る。上記方法は、さらに、第１のリクエスタセキュリティ指標と第１のアドレスとを含む、第１のバスから受信された各第１のアクセス要求に応答して、第１のリクエスタセキュリティ指標が非セキュアなリクエスタを表わすこと、かつ、第１のアドレスに関するアドレス変換情報に関連付けられたセキュリティ指標がセキュアなアドレス範囲を表わすことに応答して、第１のアクセス要求を拒否するステップと、第１のリクエスタセキュリティ指標がセキュアなリクエスタを表わすことに応答して、アドレス変換情報を用いて第１のアクセス要求を第２のバス用の第２のアクセス要求に変換し、第２のアクセス要求を第２のバスに伝達するステップとを含み得る。上記方法は、さらに、第３のアドレスを含む、第２のバスから受信された各第３のアクセス要求に応答して、アドレス変換情報を用いて第３のアクセス要求を第１のバス用の第４のアクセス要求に変換するステップと、第４のアクセス要求と、第４のアドレスに関するアドレス変換情報に関連付けられたセキュリティ指標とを第１のバスに伝達するステップとを含み得る。
【００３３】
そのような方法において、アドレス変換情報は複数のアドレス範囲マップを含み、各アドレス範囲マップは、第１のバスの第１のアドレス範囲を第２のバスの第２のアドレス範囲にマップし、セキュリティ指標の各々は、アドレス範囲マップのうちの１つに関連付けられ得る。
【００３４】
そのような方法は、第１のリクエスタセキュリティ指標が非セキュアなリクエスタを表わすこと、かつ、第１のアドレスに関するアドレス変換情報が非セキュアなアドレス範囲を表わすことに応答して、第１のアクセス要求を第２のバス用の第２のアクセス要求に変換し、第２のアクセス要求を第２のバスに伝達するステップをさらに含み得る。
【００３５】
そのような方法は、アドレス変換情報が複数のアドレス範囲マップを含み、各アドレス範囲マップが、第１のバスの第１のアドレス範囲を第２のバスの第２のアドレス範囲にマップし、セキュリティ指標の各々が、アドレス範囲マップのうちの１つに関連付けられ、各アドレス範囲マップが、第１のベースアドレスと第２のベースアドレスとを指定することをさらに含み得る。
【００３６】
そのような方法は、各アドレス範囲マップがサイズを指定することをさらに含み得る。
そのような方法は、第１のベースアドレスが第１のバスの第１のアドレス空間内にあり、第２のベースアドレスが第２のバスの第２のアドレス空間内にあることをさらに含み得る。
【００３７】
そのような方法は、セキュリティ指標がプログラマブルであることをさらに含み得る。
本明細書において記載される例示的な装置は、概してブリッジ回路に関する。そのような装置において、第１のバスと第２のバスとの間の通信のためのブリッジ回路は、アドレス変換情報と、関連付けられたセキュリティ指標とを記憶するように構成可能であるメモリを備え得る。ブリッジ回路は、さらに、メモリと第１および第２のバスとに結合された送出回路を備え得る。送出回路は、第１のバスから第１のアクセス要求を受信するように構成され、各第１のアクセス要求は第１のリクエスタセキュリティ指標と第１のアドレスとを含む。各第１のアクセス要求に関して、送出回路は、第１のリクエスタセキュリティ指標が非セキュアなリクエスタを表わすこと、かつ、第１のアドレスに関するアドレス変換情報に関連付けられたセキュリティ指標がセキュアなアドレス範囲を表わすことに応答して、第１のアクセス要求を拒否するとともに、第１のリクエスタセキュリティ指標がセキュアなリクエスタを表わすことに応答して、アドレス変換情報を用いて第１のアクセス要求を第２のバス用の第２のアクセス要求に変換し、第２のアクセス要求を第２のバスに伝達するように構成されている。ブリッジ回路は、さらに、メモリと第１および第２のバスとに結合された入来回路を備え得る。入来回路は、第２のバスから第３のアクセス要求を受信するように構成されており、各第３のアクセス要求は第３のアドレスを含む。入来回路はさらに、アドレス変換情報を用いて第３のアクセス要求を第１のバス用の第４のアクセス要求に変換するとともに、第４のアクセス要求と、第４のアドレスに関するアドレス変換情報に関連付けられたセキュリティ指標とを第１のバスに伝達するように構成されている。
【００３８】
そのような装置において、アドレス変換情報は複数のアドレス範囲マップを含み、各アドレス範囲マップは、第１のバスの第１のアドレス範囲を第２のバスの第２のアドレス範囲にマップし、セキュリティ指標の各々は、アドレス範囲マップのうちの１つに関連付けられ得る。
【００３９】
そのような装置において、第１のリクエスタセキュリティ指標が非セキュアなリクエスタを表わすこと、かつ、第１のアドレスに関するアドレス変換情報が非セキュアなアドレス範囲を表わすことに応答して、送出回路は、さらに、第１のアクセス要求を第２のバス用の第２のアクセス要求に変換し、第２のアクセス要求を第２のバスに伝達するように構成され得る。
【００４０】
そのような装置において、アドレス変換情報は複数のアドレス範囲マップを含み、各アドレス範囲マップは、第１のバスの第１のアドレス範囲を第２のバスの第２のアドレス範囲にマップし、セキュリティ指標の各々は、アドレス範囲マップのうちの１つに関連付けられ、各アドレス範囲マップは、第１のベースアドレスと第２のベースアドレスとを指定し得る。
【００４１】
そのような装置において、各アドレス範囲マップはサイズを指定し得る。
そのような装置において、第１のベースアドレスは第１のバスの第１のアドレス空間内にあり、第２のベースアドレスは第２のバスの第２のアドレス空間内にあり得る。
【００４２】
そのような装置において、セキュリティ指標はプログラマブルであり得る。
また、別の例として、システムが提供される。このシステムは、第１のバスと、第１のバスに結合された第１の組のマスター・スレーブ回路と、第２のバスと、第１のバスと第２のバスとの間に結合されたブリッジ回路と、第２のバスに結合された第２の組のマスター・スレーブ回路とを含み得る。ブリッジ回路は、アドレス変換情報と、関連付けられたセキュリティ指標とを記憶するように構成可能であるメモリを備える。ブリッジ回路は、さらに、メモリと第１および第２のバスとに結合された送出回路を備える。送出回路は、第１のバスから第１のアクセス要求を受信するように構成され、各第１のアクセス要求は第１のリクエスタセキュリティ指標と第１のアドレスとを含む。各第１のアクセス要求に関して、送出回路は、第１のリクエスタセキュリティ指標が非セキュアなリクエスタを表わすこと、かつ、第１のアドレスに関するアドレス変換情報に関連付けられたセキュリティ指標がセキュアなアドレス範囲を表わすことに応答して、第１のアクセス要求を拒否するとともに、第１のリクエスタセキュリティ指標がセキュアなリクエスタを表わすことに応答して、アドレス変換情報を用いて第１のアクセス要求を第２のバス用の第２のアクセス要求に変換し、第２のアクセス要求を第２のバスに伝達するように構成されている。ブリッジ回路は、さらに、メモリと第１および第２のバスとに結合された入来回路を備える。入来回路は、第２のバスから第３のアクセス要求を受信するように構成されており、各第３のアクセス要求は第３のアドレスを含む。入来回路はさらに、アドレス変換情報を用いて第３のアクセス要求を第１のバス用の第４のアクセス要求に変換するとともに、第４のアクセス要求と、第４のアドレスに関するアドレス変換情報に関連付けられたセキュリティ指標とを第１のバスに伝達するように構成されている。
【００４３】
そのようなシステムにおいて、アドレス変換情報は複数のアドレス範囲マップを含み、各アドレス範囲マップは、第１のバスの第１のアドレス範囲を第２のバスの第２のアドレス範囲にマップし、セキュリティ指標の各々は、アドレス範囲マップのうちの１つに関連付けられ得る。
【００４４】
そのようなシステムにおいて、第１のリクエスタセキュリティ指標が非セキュアなリクエスタを表わすこと、かつ、第１のアドレスに関するアドレス変換情報が非セキュアなアドレス範囲を表わすことに応答して、送出回路は、さらに、第１のアクセス要求を第２のバス用の第２のアクセス要求に変換し、第２のアクセス要求を第２のバスに伝達するように構成され得る。
【００４５】
そのようなシステムにおいて、アドレス変換情報は複数のアドレス範囲マップを含み、各アドレス範囲マップは、第１のバスの第１のアドレス範囲を第２のバスの第２のアドレス範囲にマップし、セキュリティ指標の各々は、アドレス範囲マップのうちの１つに関連付けられ、各アドレス範囲マップは、第１のベースアドレスと第２のベースアドレスとを指定し得る。
【００４６】
そのようなシステムにおいて、各アドレス範囲マップはサイズを指定し得る。そのようなシステムにおいて、第１のベースアドレスは第１のバスの第１のアドレス空間内にあり、第２のベースアドレスは第２のバスの第２のアドレス空間内にあり得る。
【００４７】
場合によっては、局面および特徴が個別の図に記載されていることがあるが、組合せが明示的に図示されていないとしても、または、組合せとして明示的に説明されていないとしても、或る図中の特徴を別の図中の特徴と組合せ得ることが理解されるであろう。
【００４８】
上記方法およびシステムは、異なるバス間の通信のブリッジングのためのさまざまなシステムに適用可能であると考えられる。明細書を考慮することにより、他の局面および特徴が当業者に明らかになるであろう。上記方法およびシステムは、特定用途向け集積回路（ＡＳＩＣ：application specific integrated circuit）として、または、プログラマブル論理デバイス上の論理として、ソフトウェアを実行するように構成された１つ以上のプロセッサとして実現されてもよい。明細書および図面は例として考慮されるにすぎず、本発明の真の範囲は以下の特許請求の範囲によって表わされることが意図される。
【図１】
0006464253.tif 000002
【図２】
0006464253.tif 000003
【図３】
0006464253.tif 000004