(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-04
(45)【発行日】2023-09-12
(54)【発明の名称】メッセージモニタリング
(51)【国際特許分類】
G06F 11/30 20060101AFI20230905BHJP
G06F 12/14 20060101ALI20230905BHJP
H04L 67/00 20220101ALI20230905BHJP
【FI】
G06F11/30 172
G06F11/30 140G
G06F12/14 510D
H04L67/00
【外国語出願】
(21)【出願番号】P 2020169020
(22)【出願日】2020-10-06
【審査請求日】2022-03-16
(32)【優先日】2019-10-07
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】520161964
【氏名又は名称】シーメンス インダストリー ソフトウェア インコーポレイテッド
(74)【代理人】
【識別番号】100114890
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100135633
【氏名又は名称】二宮 浩康
(74)【代理人】
【識別番号】100162880
【氏名又は名称】上島 類
(72)【発明者】
【氏名】ガジンダー パネザー
(72)【発明者】
【氏名】イアン ロバートソン
(72)【発明者】
【氏名】キャラム スチュワート
(72)【発明者】
【氏名】ハナン モラー
(72)【発明者】
【氏名】メルヴィン チア
【審査官】木村 雅也
(56)【参考文献】
【文献】米国特許出願公開第2016/0180114(US,A1)
【文献】米国特許出願公開第2015/0043575(US,A1)
【文献】米国特許出願公開第2014/0344916(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/30
G06F 12/14
H04L 67/00
(57)【特許請求の範囲】
【請求項1】
相互接続部へ通過するまたは相互接続部から通過してくる相互接続メッセージを監視するための監視ユニットであって、前記監視ユニットは、相互接続メッセージを受信すると、
前記相互接続メッセージをデータストアに格納する格納ステップと、
前記相互接続メッセージを予め定められたフィルタ基準と比較する比較ステップと、
該比較に依存して、前記相互接続メッセージに関して行うべき1つもしくは複数のアクションを選択する選択ステップであって、前記アクションは、前記相互接続メッセージの変更されていない状態での通過を許可すること、前記相互接続メッセージの通過を阻止すること、および前記相互接続メッセージの変更された状態での通過を許可すること、から成るグループから選択される、選択ステップと、
前記相互接続メッセージに関して選択された前記アクションを行うステップと、
を行うように構成されている、監視ユニット。
【請求項2】
前記データストアは、前記相互接続部が準拠して動作する相互接続プロトコルの参加者と前記相互接続部との間の相互接続メッセージのための通信経路に配置されている、ハードウェア内に実装されたマルチビットラッチユニットである、請求項1記載の監視ユニット。
【請求項3】
前記監視ユニットは、前記
マルチビットラッチユニットにそれぞれの相互接続メッセージを解放または削除するように通知することによって、前記アクションを行うように構成されている、請求項2記載の監視ユニット。
【請求項4】
前記監視ユニットは、前記相互接続部とは異なる外部通信インタフェースを備え、前記グループは、前記外部通信インタフェースを介してメッセージを送信することを含む、請求項1から3までのいずれか1項記載の監視ユニット。
【請求項5】
前記相互接続部は、相互接続プロトコルに準拠して動作し、前記監視ユニットは、前記比較ステップを実行するための比較機能部と、前記相互接続メッセージを前記相互接続プロトコルに準拠した形式から前記相互接続プロトコルに準拠しない第2の形式の翻訳されたメッセージへ翻訳し、該翻訳されたメッセージを前記比較機能部への入力として提供するように構成された翻訳機能部と、を備える、請求項1から4までのいずれか1項記載の監視ユニット。
【請求項6】
前記グループは、前記フィルタ基準を変更することを含む、請求項1から5までのいずれか1項記載の監視ユニット。
【請求項7】
前記監視ユニットは、前記相互接続部とは異なる外部通信インタフェースを備え、前記監視ユニットは、前記外部通信インタフェースを介して受信したコマンドに応答して前記フィルタ基準の変更を許可するように構成されている、請求項1から6までのいずれか1項記載の監視ユニット。
【請求項8】
前記監視ユニットは、専用のハードウェア内に実装されている、請求項1から7までのいずれか1項記載の監視ユニット。
【請求項9】
前記
監視ユニットは、データプロセッサコアから相互接続部へ通過する相互接続メッセージを監視するように構成されている、請求項1から8までのいずれか1項記載の監視ユニット。
【請求項10】
前記フィルタ基準のうちの少なくとも1つが、セキュリティおよび/または完全性リスクに関連する相互接続メッセージを定義しており、前記監視ユニットが、前記
フィルタ基準と相互接続メッセージとの一致を識別すると、前記相互接続メッセージの通過を阻止する前記アクションまたは前記相互接続メッセージの変更された状態での通過を許可する前記アクションを行うように構成されている、請求項1から9までのいずれか1項記載の監視ユニット。
【請求項11】
前記相互接続部が、メモリ相互接続部である、請求項1から10までのいずれか1項記載の監視ユニット。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータシステムにおけるメッセージのモニタリングに関する。
【0002】
典型的なコンピュータシステムでは、プロセッサは命令を実行する。命令の少なくとも幾つかは、通信インタフェース、通常はバスを介して、メモリから取り出すことができる。命令が作用すべきデータも、同様の手段で取り出すことができる。
【0003】
プロセッサが間違った命令を実行したり、またはメモリの間違った領域からデータを取り出したりしようとする状況が存在する。これらの状況は、命令がエラーを含む場合、またはプロセッサが実行しようとしていた命令セットを何者かが破壊することに成功した場合に発生する可能性がある。例として、命令セットにエラーが含まれている場合、プロセッサが後続の命令を正しくない位置から取り出し始める可能性がある。プロセッサが他の位置で命令を実行すれば、これにより、プロセッサが間違った挙動を取る可能性がある。別の例では、設計者は、プロセッサにメモリの特定領域にアクセスさせないようにして、当該領域にある情報の漏洩の回避を意図しうるが、何者かが命令の一部を破壊し、プロセッサに当該領域から情報を取り出させる可能性がある。
【0004】
上述したような事例を防止する対策を実現することが所望されている。これにより、コンピュータシステムのセキュリティを改善し、またその信頼性を向上させることができる。
【0005】
一態様によれば、相互接続部へ通過するまたは相互接続部から通過してくる相互接続メッセージを監視するための監視ユニットであって、監視ユニットは、相互接続メッセージを受信すると、相互接続メッセージをデータストアに格納し、相互接続メッセージを予め定められたフィルタ基準と比較し、当該比較結果に依存して、当該相互接続メッセージに関して行うべき1つもしくは複数のアクションを選択し、アクションは、相互接続メッセージの変更されていない状態での通過を許可すること、相互接続メッセージの通過を阻止すること、および相互接続メッセージの変更された状態での通過を許可すること、から成るグループから選択され、相互接続メッセージに関して選択されたアクションを行うように構成されている、監視ユニットが提供される。
【0006】
相互接続部は、バス、例えばデータバスや命令バスであってよい。相互接続部は、NoC(ネットワーク・オン・チップ)であってもよい。
【0007】
データストアは、相互接続部が準拠して動作する相互接続プロトコルの参加者と相互接続部との間の相互接続メッセージのための通信経路に配置されている、ハードウェア内に実装されたマルチビットラッチユニットであってよい。
【0008】
監視ユニットは、ラッチユニットにそれぞれの相互接続メッセージを解放するまたは削除するように通知することによって、前記アクションを行うように構成可能である。
【0009】
監視ユニットは、相互接続部とは異なる外部通信インタフェースを備えることができ、グループは、外部通信インタフェースを介してメッセージを送信することを含む。
【0010】
相互接続部は、相互接続プロトコルに準拠して動作可能であり、監視ユニットは、比較ステップを実行するための比較機能部と、相互接続メッセージを相互接続プロトコルに準拠した形式から相互接続プロトコルに準拠していない第2の形式の翻訳されたメッセージへ翻訳し、翻訳されたメッセージを比較機能部への入力として提供するように構成された翻訳機能部と、を備える。
【0011】
グループは、フィルタ基準を変更することを含んでもよい。
【0012】
監視ユニットは、相互接続部と別個の外部通信インタフェースを備えることができ、監視ユニットは、外部通信インタフェースを介して受信したコマンドに応答してフィルタ基準の変更を許可するように構成されてもよい。
【0013】
監視ユニットは、専用のハードウェア内に実装されてもよい。
【0014】
ユニットは、データプロセッサコアから、相互接続部へ、またはハードウェアアクセラレータなどの別のデバイスへ通過する相互接続メッセージを監視するように構成可能である。
【0015】
フィルタ基準のうちの少なくとも1つは、セキュリティおよび/または完全性リスク(integrity risk)に関する相互接続メッセージを定義することができ、監視ユニットは、当該基準と相互接続メッセージとの一致を識別すると、相互接続メッセージの通過を阻止するアクションまたは相互接続メッセージの変更された状態での通過を許可するアクションを行うように構成可能である。
【0016】
相互接続部は、メモリ相互接続部であってよい。
【0017】
本明細書では、或る事項が或る動作を行うように構成されていると述べるとき、これは、当該事項が、それぞれの動作を遂行することを可能にするために必要な全てのハードウェア(もしあれば)およびソフトウェア(もしあれば)を装備しているが、必ずしも当該動作を行う動作状態へと電源投入または準備されているわけではないことを示す。
【0018】
次に、本発明を、添付図面を参照して例示的に説明する。
【図面の簡単な説明】
【0019】
【
図2】
図1のコンピュータシステムにおけるプロセッサのアーキテクチャの一部を示す図である。
【
図3】メッセージインターセプト機能部を示す図である。
【0020】
後述するシステムにおいて、機構は、プロセッサと通信バスとの間の通信経路に配置されている。バスは、プロセッサをメモリに接続することができる。機構は、バスを介して送信されたメッセージを解析する。解析結果に依存して、機構はメッセージをどのように扱うべきかを選択できる。例えば、メッセージに関する判定に応答して、機構は、(i)バスを介した当該メッセージの通過を許可する、(ii)バスを介した当該メッセージの通過を阻止する、または(iii)バスを介した、変更されたバージョンのメッセージ(または全く異なるメッセージ)の通過を許可する、ことができる。このことにより、以下でさらに説明するように、プロセッサの信頼性またはセキュリティの向上を支援することができる。
【0021】
図1は、プロセッサ1、通信バス2、およびメモリユニット3,4を備えたコンピュータシステムを示す。プロセッサおよびメモリユニットは、バスに結合されており、バスを介して搬送されるメッセージによって相互通信可能である。プロセッサは、好都合には、単一の集積回路上に実装可能である。メモリユニットのうちの少なくとも1つは、同一の集積回路上に実装可能である。代替的に、メモリユニットは、プロセッサとは別個のデバイス、例えば、1つもしくは複数の専用のメモリ集積回路上に実装されていてもよい。プロセッサは、プロセッサコア5およびバスインタフェース6を含む。プロセッサコアは、命令を実行する。バスインタフェースは、バスを介してメッセージを送受信するための好適なプロトコルを実装している。
【0022】
典型的なバスプロトコルでは、バス上のユニットに、アドレスのセットを割り当てることができる。ユニットがメモリであるとき、これらのアドレスはメモリ内の各位置にマッピング可能である。バス上の別のユニットは、バストランザクションでアドレスを指定することにより、当該アドレスからの読み出しまたは当該アドレスへの書き込みを行うことができる。
【0023】
個々のバストランザクションは、幾つかのフェーズに分割することができる。各フェーズは、典型的には、時間的に段差が付けられているので、任意の他のフェーズと時間的に重なり合うことはない。フェーズの詳細はプロトコル間で異なるが、典型的には、バス上の第1のユニットがバスを介してリモートアドレスを指定するアドレスフェーズと、(a)トランザクションが読み出しトランザクションである場合に、リモートアドレスが割り当てられたユニットがバスを介して当該アドレスのデータを返すデータフェーズ、または(b)トランザクションが書き込みトランザクションである場合に、第1のユニットがバスを介してアドレスに格納されるべきデータを送信し、次いで当該アドレスが割り当てられたユニットが格納可能となるデータフェーズと、を含む。例えばAXIなどのオンチップ相互接続プロトコルまたはその変形例を使用するバス上のトランザクションは、応答フェーズも含むことができる。
【0024】
図1のシステムでは、プロセッサ1がメモリ3,4のうちの1つからの読み出しを希望するとき、当該プロセッサは相互接続トランザクションを開始し、データの読み出しまたは書き込みを希望するアドレスを、相互接続部を介して指定することができる。この場合、データ自体が、相互接続部(NoCであってよい)を介して、プロセッサへ送信可能であり、またはプロセッサから送信可能である。
【0025】
図2は、プロセッサの相互接続またはNoCトランザクションを監視できるようにするためにプロセッサがどのように構成可能であるかを示す。当該プロセッサは、相互接続部またはNoCへの物理的接続部10を有する。物理的接続部は、プロセッサの境界にある。この例では、全体として11で示している監視機能部が、プロセッサの論理バスインタフェース6とその物理的バス接続部10との間に配置されている。この配置では、監視機能部の少なくとも一部は、プロセッサの一部であると考えられる。代替的に、監視機能部は、プロセッサの物理的相互接続部またはNoC接続部と、相互接続部またはNoC2自体との間に配置されてもよい。この場合、監視機能部は、プロセッサの外部にあると考えられる。監視機能部は、ゲータ12、トランザクションモニタ13、および制御インタフェース14の3つの機能ブロックを含む。ゲータは、プロセッサの論理バスインタフェース6とバス2との間の通信経路に配置されている。
【0026】
図3は、監視機能部のアーキテクチャをより詳細に示す。この例では、ゲータ12は、プロセッサの相互接続部またはNoCインタフェース6とプロセッサ外部の物理的相互接続部またはNoCとの接続部10との間の、相互接続またはNoCメッセージのための通信経路内に配置されている。マッパー23は、バスインタフェース6からの通信を受信する。マッパーの出力は、インタプリタ24およびフィルタユニット25へと通過させられる。フィルタユニットの1つの出力は、クロスコネクトユニット19へと通過させられる。クロスコネクトユニットの出力は、ストレージユニット16、アクションユニット17、およびカウンタユニット18へと通過させられる。アクションユニットの出力は、ゲータへと通過させられる。カウンタユニットの出力とフィルタユニットの別の出力とは、制御インタフェース14の一部であるイベントインタフェース22へと通過させられる。制御インタフェースはまた、クロック20およびインターバルタイマ21を備え、当該インターバルタイマ21の出力はカウンタユニット18へと通過させられる。イベントインタフェース22は、第2の通信インタフェース15に結合されている。第2の通信インタフェースにより、オペレータがトランザクションモニタ13を構成でき、トランザクションモニタによって行われた動作、およびバスを介して通過させられたメッセージについての情報を受信することができる。
【0027】
システムを機能ブロックの1セットとして説明している。当該システムの機能は、任意の好適な手段で、任意の好都合な数のソフトウェアブロックおよび/またはハードウェアブロックに分割できる。これらは、
図3に示したものと同じでも、または異なっていてもよい。
【0028】
次に、システムの動作について説明する。バスメッセージがバスインタフェース6によって送信されるとき、バスメッセージは、ゲータ12およびマッパー23によって受信される。ゲータはメッセージを保持し、トランザクションモニタにより実行を命令されるまで、メッセージをその先へ送信しない。マッパー23の目的は、バスメッセージを、トランザクションモニタ13の残りの部分の動作のために設定された、標準化された形式に変換することである。トランザクションモニタが1種類のバスのみで動作するように意図されている場合は、マッパーは省略可能である。マッパーは、マッパーが受信したバスメッセージから予め定められた特徴を識別し、これらの特徴が予め定められた形式および順序で提示されている出力を形成する。異なるバスからのメッセージを当該予め定められた形式と順序とにマッピングすることにより、マッパーは、異なるバス形式に対して、トランザクションモニタの残りの部分の多くを共通化することができる。
【0029】
マッパーは、受信したバスメッセージの標準化されたバージョンを、インタプリタ24およびフィルタユニット25に出力する。フィルタユニットには、後述するようにアクションへの従属が企図されているバスメッセージパターンのセットが予め構成されている。当該構成は、制御インタフェース14を介して好都合に行うことができる。わかりやすくするために、制御インタフェースからトランザクションモニタのユニットを構成するためのデータ経路は、
図3には示されていない。例えば、フィルタユニットは、バスアドレスの予め定められたサブセットに向けられたメッセージ、または所定の先行するバスメッセージの後に予め定められた間隔(例えば、時間またはバスメッセージの数)内で発生するメッセージを一致判別するように設定可能である。以下のデータフローを要約すると、バスメッセージがフィルタユニットにより一致判別されなかった場合、トランザクションモニタは、ゲータに、メッセージを変更せずに解放させる。バスメッセージがフィルタユニットにより一致判別された場合、トランザクションモニタは、ゲータによって保持されているバスメッセージを阻止するか、または解放する前に変更させる。
【0030】
ストレージ16は、フィルタで利用可能なパターンを格納している。これは、制御インタフェース14から構成可能である。
【0031】
フィルタユニットは、予め格納されたパターンのうちの1つに対してメッセージを一致判別しなかった場合、アクションユニット17に通知を行い、アクションユニットからゲータ12に当該メッセージを解放させる。この場合、システムは、バスを介して到来する次のメッセージを処理することができる。フィルタユニットはまた、カウンタユニット18のカウンタをインクリメントし、バスメッセージが変更されずに通過したことを示すことができる。また、フィルタユニットは、ストレージユニット16を更新させることもできる。これにより、システムは、先行するバスメッセージによりフィルタ条件を変更可能である。例えば、フィルタ条件は、予め定められた数の不一致のメッセージが先行して通過している場合にのみ、メッセージを一致判別するように設定可能である。当該予め定められた数は、ストレージに記憶可能であり、この場合、不一致のメッセージを受信したときにデクリメント可能である。あるいは、フィルタ条件は、メモリまたはメモリの予め定められた領域への予め定められた頻度を超えてのアクセスに関連するメッセージを一致判別するように設定可能である。
【0032】
フィルタユニットは、予め格納されたパターンのうちの1つに対してメッセージを一致判別した場合、現在ゲータによって保持されているメッセージにフィルタパターンが一致したという指標を、アクションユニット17に通知する。また、フィルタユニットは、どのフィルタパターンが一致したかを示すことができる。アクションユニットは、どのフィルタパターンが一致したと示されたかに依存して、異なるアクションを行うことができる。フィルタユニットは、カウンタユニット18のカウンタをインクリメントして、バスメッセージがフィルタパターンに一致したことを示すことができ、任意手段として、どのフィルタパターンが一致したかを示すことができる。また、それぞれのフィルタパターンに対して特異的なカウンタを設けてもよい。また、フィルタユニットは、ストレージユニット16を更新させることができる。例えば、予め定められたアドレスへのバスメッセージが一致判別されたことに応答して、フィルタユニット内の、別の予め定められたアドレスへのバスメッセージに一致するパターンを、有効化または無効化することができる。フィルタユニットは、バスメッセージとフィルタパターンとの一致を識別すると、メッセージおよびイベントインタフェース22にも一致を通知する。これにより、一致が識別された場合、制御ユニット14は付加的なアクションを行うことができる。例えば、インタフェース15を介して通知することによってメッセージを送信し、ユーザに警告することができる。
【0033】
アクションユニット17は、ゲータに保持されているバス上のメッセージが、フィルタユニットおよび/またはストレージ16に予めプログラミングされたパターンのうちの1つに一致したときに、フィルタユニットから通知を受ける。アクションユニットには、一致が検出されたときに行いうるアクションが予めプログラミングされている。行うべきアクションは、一致したパターンおよび/またはパターンに対して一致したメッセージの内容(例えば、当該メッセージ内のパラメータ)に依存させることができる。行われるアクションの例としては、以下が挙げられる。
1.ゲータに、メッセージのバスへの通過を阻止させる。ゲータはメッセージを削除することもできる。
2.ゲータに保持されているメッセージを変更し、ゲータにより、当該メッセージをバスへと通過させる。メッセージを変更可能な手段の例には、メッセージで指定されたアドレスを変更すること(読み出しまたは書き込みメッセージの場合)、またはメッセージで指定されたデータを変更し、バスを介して遠隔位置に書き込むことが含まれる。
【0034】
上述のシステムは、プロセッサのプロセシングコアと通信バスとの間で作用する。バスは、プロセッサコアを1つもしくは複数のメモリに通信可能に結合することができる。システムがコアからバスに送信されたメッセージを一時的に保持し、その間、メッセージは、1つもしくは複数の予め定義された基準またはパターンに対してチェックされる。メッセージが基準のいずれも満たさない場合、かつ/または任意手段として1つもしくは複数の指定された或る基準を満たす場合、システムは、メッセージを変更せずにバスへ通過させることを許可する。メッセージが基準のうちの1つもしくは複数の他の基準を満たす場合、システムは、メッセージに関する他のアクション、すなわち例えば、バスへのメッセージの通過の阻止、またはバスへの通過前のメッセージの変更を行う。基準/パターンは様々な目的のために定義可能である。幾つかの例を以下に挙げる。
1.プロセッサのセキュリティおよび/または完全性が支援されるように、パターンを定義することができる。例えば、プロセッサがアクセスすべきでないメモリ領域へのアクセスの試みをチェックし、阻止することができる。オペレータは、インタフェース15を介してこうした全ての試みの警告を受けることができる。
2.プロセッサ上で実行されるソフトウェアのデバッグを支援するように、パターンを定義することができる。例えば、こうしたソフトウェアの実行中に、指定されたイベントをチェックすることができる。イベントは、所望の挙動または好ましくない挙動に関連づけることができる。オペレータは、インタフェース15を介してこうした全てのイベントの警告を受けることができる。
【0035】
フィルタユニットにより一致判別可能な基準/パターンの幾つかの例として、以下が挙げられる。
1.予め定められた範囲のアドレスを指定する予め定められた種類のメッセージ(例えば読み出しまたは書き込み)。
2.予め定められた方式で先行メッセージに関連するメッセージ:例えば、先行メッセージで指定されたアドレスから予め定められた範囲のオフセットだけオフセットされたアドレスの指定。
3.予め定められたパターンに一致するデータの書き込みを指定する書き込みメッセージ。
4.トランザクションのプロファイルが疑わしい。
【0036】
監視システムは、バスメッセージを受信すると、以下のステップを行う。
1.バスプロトコルを解釈する。
2.フィルタを使用して関心対象のトランザクションを識別する。
3.関心対象のトランザクションが検出されたとき、こうしたトランザクションに関して予め定義されたアクションを行わせる(異なるトランザクションまたはトランザクションのクラスに対して異なるアクションを行うことができる)。
考えられるアクションの例には、以下が含まれる。
1.トランザクションを、変更せずに、ゲータを介して(待ち時間の加算のみで)進行させる。
2.(トランザクションゲーティングを使用して)トランザクションをそれ以上進行しないように阻止する。
3.トランザクションを進行させる前に、(トランザクションゲーティングを使用して)トランザクションを変更する。
4.(ストレージユニットを使用して)将来のトランザクション識別においてフィルタによって使用される幾つかの状態を保存する。
5.トリガを発行する(メッセージ、リアルタイムイベントまたは内部トリガを一致判別する)。当該トリガは、他のモニタリングインフラストラクチャで使用可能である。
【0037】
図3に示すシステムは、任意の好適なハードウェアおよび/またはソフトウェアを使用して実装可能である。好都合には、ユニットは専用のハードウェア内に実装される。なぜなら、これにより、ゲータが可能な限り迅速にメッセージを通過させることができるようになるからである。
図3に示されたユニットは、それぞれ別個のハードウェアユニットまたはソフトウェアユニットとして実装可能であり、またはこれらの複数のユニットを組み合わせて1つのユニットとすることもできる。
【0038】
異なるバスは、異なるメッセージプロトコルを使用する。任意のバスプロトコルで動作可能となるように、監視ユニットを可能な限り一般化できれば効率的である。これにより、異なるアプリケーション用システムのセクションを再設計する必要性を減らすことができる。1つの配置構成では、マッパーおよびゲータ、ならびに任意の手段としてのフィルタおよびアクションユニットの一部は、特定のバスプロトコルに固有であってよく、システムの他の機能部分は、使用されるバスプロトコルとは無関係に動作可能である。
【0039】
監視ユニットは、プロセッサコアとバスとの間の通信経路に介在するという点で、貫入的である。ゲータは、バスメッセージを受信したときにバスメッセージを格納し、バスへまたはプロセッサもしくはメモリデバイスなどの受信者へメッセージを解放するためにトリガすることができる、マルチビットラッチを含んでいてよい。メッセージは、システムがメッセージに関してどのようなアクションを行うかを決定する間、他の手段で格納可能である。
【0040】
上述した例は、ゲータならびに関連するフィルタリングおよびアクション決定ユニットが、プロセッサからメモリへの通信に作用する実施形態に焦点を当てている。しかし、監視ユニットは、他の手段で動作することもできる。監視ユニットは、バスからプロセッサへの通信、または双方向の通信において動作可能である。監視ユニットは、バスと別のデバイス、例えばメモリとの間の通信においても動作可能である。こうした通信は、バスへの通信および/またはバスからの通信であってよい。
【0041】
監視ユニットは、好ましくは、バストランザクションの少なくともアドレスフェーズおよびデータフェーズのフィルタリングをサポートすることができる。典型的なバスプロトコルでは、バストランザクションの阻止または変更のための有用なアクションを行うには遅すぎるかもしれないので、応答フェーズでのフィルタリングは有利でない可能性がある。
【0042】
上述した種類の監視ユニットは、例えば、安全でないトランザクション(例えば、権限のないメモリエリアへのアクセスの試み、および/またはシステム領域へのアクセスプロファイル)を検出するフィルタルールを適用して、こうしたトランザクションを阻止または修正することにより、システムのセキュリティの向上を支援することができる。上述した種類の監視ユニットは、例えば、不正または誤ったバスアクセス要求(例えば、存在しない位置からの読み出し要求)を検出するフィルタルールを適用することによって、システムの完全性の改善を支援することができる。
【0043】
本出願人は、特許請求の範囲の範囲に限定されることなく、本明細書に開示した問題点を解決するか否かにかかわらず、本明細書に記載した個々の特徴および2つ以上のこうした特徴の任意の組み合わせを、こうした特徴または特徴の組み合わせが、当業者の共通の一般的な知見に照らして、全体として本明細書に基づいて実施することが可能である範囲で、個別に開示する。本出願人は、本発明の態様がこうした個々の特徴または特徴の組み合わせから構成可能であることを示す。上記説明に鑑みて、本発明の範囲内で様々な変更が行われうることは、当業者には明らかであろう。