(57)【要約】  周辺デバイスからプロセッサのメモリへのアクセスにおいて、効率を追求しながら安全性を図ることができるアクセス技術を提供する。  アドレス変換部１４は、実効アドレスを物理アドレスに変換するためのアドレス変換テーブルを備える。アドレス変換テーブルは、プロセッサユニット１０のメモリにおいて各周辺デバイス３０に割り当てられたエリアの実効アドレスと、該実効アドレスに対するアクセスの許可が与えられたアクセス元識別情報とを対応付けて格納している。周辺デバイス３０からアクセスされた際に、アドレス変換部１４は、アクセス要求パケットに含まれた、該周辺デバイス３０を一意に識別可能なデバイス識別情報と、アドレス変換テーブルにおける、このアクセス要求パケットにより指定される実効アドレスに対応するアクセス元識別情報とが一致することを条件として、当該実効アドレスに対するアクセスの許可を決定する。
2007129482.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサユニットと周辺デバイスとが相互接続された情報処理装置であって、
前記プロセッサユニットは、実効アドレスを物理アドレスに変換するためのアドレス変換テーブルであって、該プロセッサユニットのメモリにおいて各前記周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスと、該実効アドレスに対するアクセスの許可が与えられたアクセス元を、該プロセッサユニットにおいて識別するために規定されたアクセス元識別情報とを対応付けて格納したテーブルを備えたアドレス変換部を有し、
前記周辺デバイスは、前記メモリへアクセスする際に、該周辺デバイスに対応する前記実効アドレスを指定しうるアクセス要求パケットであって、該周辺デバイスを一意に識別可能なデバイス識別情報を有するアクセス要求パケットを発行し、
前記アドレス変換部は、前記アクセス要求パケットに含まれるデバイス識別情報と、前記アドレス変換テーブルにおける、該アクセス要求パケットにより指定される実効アドレスに対応するアクセス元識別情報とが一致することを条件として、当該実効アドレスに対するアクセスの許可を決定することを特徴とする情報処理装置。
【請求項２】
前記プロセッサユニットと周辺デバイスは、各前記周辺デバイスの入出力バスを、前記プロセッサユニットの入出力バスに中継するブリッジにより接続され、
前記ブリッジは、前記デバイス識別情報と前記アクセス元識別情報のビット数が異なる場合において、前記アクセス要求パケットに含まれるデバイス識別情報をアクセス元識別情報に対応付けることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記プロセッサユニットのメモリは、複数のセグメントに分けられ、該複数のセグメントはさらにそれぞれ複数のページに分けられており、
前記アドレス変換テーブルは、セグメント番号とページ番号の組み合わせを、前記アクセス元識別情報とを対応付けて格納したものであり、
前記ブリッジは、前記デバイス識別情報の一部をアクセス元識別情報に対応付けるとともに、他の部分をセグメント番号とページ番号に対応付けることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
プロセッサユニットの入出力バスに、周辺デバイスの入出力バスを中継するブリッジであって、
前記周辺デバイスから、該プロセッサユニットのメモリにおいて該周辺デバイスに割り当てられたエリアの実効アドレスを指定しうるアクセス要求パケットであって、該周辺デバイスを一意に識別可能なデバイス識別情報を有するアクセス要求パケットを受け取る上流ポートと、
前記アクセス要求パケットに含まれる前記デバイス識別情報から、前記プロセッサユニットのメモリにおいて各前記周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスに対するアクセスの許可が与えられたアクセス元を、前記プロセッサユニットにおいて識別するために規定されたアクセス元識別情報と照合するための照合情報を得、該照合情報と、前記アクセス要求パケットにより指定される実効アドレスとを含むアクセスコマンドを得る識別情報変換部と、
実効アドレスを物理アドレスに変換するためのアドレス変換テーブルであって、前記プロセッサユニットのメモリにおいて各前記周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスと、該実効アドレスに対応するアクセス元識別情報とを対応付けて格納したテーブルを参照して実効アドレスを物理アドレスに変換する際に、前記アクセスコマンドに含まれる照合情報と、前記アドレス変換テーブルにおける、該アクセスコマンドに含まれる実効アドレスに対応するアクセス元識別情報とが一致することを条件として、当該実効アドレスに対するアクセスの許可を決定する前記プロセッサユニットへ、前記アクセスコマンドを渡す下流ポートとを備えることを特徴とするブリッジ。
【請求項５】
前記プロセッサユニットのメモリは、複数のセグメントに分けられ、該複数のセグメントはさらにそれぞれ複数のページに分けられており、
前記アドレス変換テーブルは、セグメント番号とページ番号の組み合わせを、前記アクセス元識別情報とを対応付けて格納したものであり、
前記デバイス識別情報の一部をアクセス元識別情報に対応付けるとともに、他の部分をセグメント番号とページ番号に対応付けて前記アクセスコマンドを得ることを特徴とする請求項４に記載のブリッジ。
【請求項６】
周辺デバイスの入出力バスを、プロセッサユニットの入出力バスに中継するブリッジにより前記周辺デバイスと接続された前記プロセッサユニットであって、
メモリと、
実効アドレスを物理アドレスに変換するためのアドレス変換テーブルであって、前記メモリにおいて各前記周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスと、該実効アドレスに対するアクセスの許可が与えられたアクセス元を、該プロセッサユニットにおいて識別するために規定されたアクセス元識別情報とを対応付けて格納したテーブルを備えたアドレス変換部と、
該アドレス変換部は、前記ブリッジにより、前記周辺デバイスから発行されたアクセス要求パケットを変換して得たアクセスコマンドに含まれるデバイス識別情報であって、該周辺デバイスを一意に識別可能なデバイス識別情報と、前記アドレス変換テーブルにおける、前記アクセスコマンドに含まれる実効アドレスに対応するアクセス元識別情報とが一致することを条件として、当該実効アドレスに対するアクセスの許可を決定することを特徴とするプロセッサユニット。
【請求項７】
前記プロセッサユニットのメモリは、複数のセグメントに分けられ、該複数のセグメントはさらにそれぞれ複数のページに分けられており、
前記アドレス変換テーブルは、セグメント番号とページ番号の組み合わせを、前記アクセス元識別情報とを対応付けて格納したものであり、
前記アクセスコマンドは、前記ブリッジにより、前記デバイス識別情報の一部からアクセス元識別情報と照合するための照合情報を得るとともに、他の部分をセグメント番号とページ番号に対応付けるようにして得られたものであることを特徴とする請求項６に記載のプロセッサユニット。
【請求項８】
プロセッサユニットと周辺デバイスとが、前記周辺デバイスの入出力バスを前記プロセッサユニットの入出力バスに中継するブリッジにより接続された情報処理装置におけるアクセス制御方法であって、
前記周辺デバイスから、該プロセッサユニットのメモリにおいて該周辺デバイスに割り当てられたエリアの実効アドレスを指定しうるアクセス要求パケットであって、該周辺デバイスを一意に識別可能なデバイス識別情報を有するアクセス要求パケットを受け取るステップと、
実効アドレスを物理アドレスに変換するためのアドレス変換テーブルであって、該プロセッサユニットのメモリにおいて各前記周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスと、該実効アドレスに対するアクセスの許可が与えられたアクセス元を、該プロセッサユニットにおいて識別するために規定されたアクセス元識別情報とを対応付けて格納したテーブルを参照して、前記アクセス要求パケットに含まれるデバイス識別情報と、前記アドレス変換テーブルにおける、該アクセス要求パケットにより指定される実効アドレスに対応するアクセス元識別情報とが一致することを条件として、当該実効アドレスに対するアクセスの許可を決定するステップとを有することを特徴とするアクセス制御方法。
【請求項９】
前記デバイス識別情報と前記アクセス元識別情報のビット数が異なる場合において、前記デバイス識別情報を前記アクセス元識別情報に対応付けるステップを更に備えることを特徴とする請求項８に記載のアクセス制御方法。
【請求項１０】
前記プロセッサユニットのメモリは、複数のセグメントに分けられ、該複数のセグメントはさらにそれぞれ複数のページに分けられており、
前記アドレス変換テーブルは、セグメント番号とページ番号の組み合わせを、前記アクセス元識別情報とを対応付けて格納したものであり、
前記デバイス識別情報を前記アクセス元識別情報に対応付けるステップは、前記デバイス識別情報の一部をアクセス元識別情報に対応付けるとともに、他の部分をセグメント番号とページ番号に対応付けるステップを含むことを特徴とする請求項９に記載のアクセス制御方法。  
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサユニットに接続された周辺デバイスから、プロセッサユニットへのアクセス技術に関する。
【背景技術】
【０００２】
パーソナルコンピュータやサーバには、たとえばＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスを介して各種の周辺デバイスが接続され、情報処理システムが構成される。【０００３】
周辺デバイスからプロセッサのメモリへアクセスする際に、プロセッサの負担を減らすために、ＤＭＡ（ダイレクト・メモリ・アクセス）アーキテクチャを用いることが考えられる。こうすることによって、たとえば、プロセッサのメモリ領域において、各周辺デバイスが使用するエリアを割り当てておき、周辺デバイスは、自身に割り当てられたエリアに直接アクセスすることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、周辺デバイスからの直接アクセスを実現するために、プロセッサのＤＭＡＣ（ダイレクト・メモリ・アクセス・コントローラ）をユーザソフトウェアに開放してしまうと、悪意のあるユーザソフトウェアにより、周辺デバイスに割り当てられたエリアがアクセスされてしまうことが起こりうる。【０００５】
本発明は、上記事情に鑑みてなされたものであり、その目的は、周辺デバイスからプロセッサのメモリへのアクセスにおいて、効率を追求しながら安全性を図ることができる技術を提供することにある。
【課題を解決するための手段】
【０００６】
本発明のある態様は、ブリッジである。このブリッジは、プロセッサユニットの入出力バスと周辺デバイスの入出力バスを中継するブリッジであり、上流ポートと、識別情報変換部と、下流ポートを有する。【０００７】
上流ポートは、周辺デバイスから、該プロセッサユニットのメモリにおいて該周辺デバイスに割り当てられたエリアの実効アドレスを指定しうるアクセス要求パケットであって、該周辺デバイスを一意に識別可能なデバイス識別情報を有するアクセス要求パケットを受け取る。【０００８】
識別情報変換部は、アクセス要求パケットに含まれるデバイス識別情報から、プロセッサユニットのメモリにおいて各周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスに対するアクセスの許可が与えられたアクセス元を、プロセッサユニットにおいて識別するために規定されたアクセス元識別情報と照合するための照合情報を得、該照合情報と、アクセス要求パケットにより指定される実効アドレスとを含むアクセスコマンドを得る。  下流ポートは、実効アドレスを物理アドレスに変換するためのアドレス変換テーブルであって、プロセッサユニットのメモリにおいて各周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスと、該実効アドレスに対応するアクセス元識別情報とを対応付けて格納したテーブルを参照して実効アドレスを物理アドレスに変換する際に、アクセスコマンドに含まれる照合情報と、アドレス変換テーブルにおける、該アクセスコマンドに含まれる実効アドレスに対応するアクセス元識別情報とが一致することを条件として、当該実効アドレスに対するアクセスの許可を決定する該プロセッサユニットへ、識別情報変換部により得られたアクセスコマンドを渡す。【０００９】
また、プロセッサユニットのメモリは、複数のセグメントに分けられ、該複数のセグメントはさらにそれぞれ複数のページに分けられており、アドレス変換テーブルは、セグメント番号とページ番号の組み合わせを、アクセス元識別情報とを対応付けて格納したものであるようにし、識別情報変換部は、デバイス識別情報の一部をアクセス元識別情報に対応付けるとともに、他の部分をセグメント番号とページ番号に対応付けてアクセスコマンドを得るようにしてもよい。【００１０】
本発明の別の態様は、プロセッサユニットである。このプロセッサユニットは、周辺デバイスの入出力バスを、プロセッサユニットの入出力バスに中継するブリッジにより周辺デバイスと接続されている。【００１１】
該プロセッサユニットは、メモリと、アドレス変換部を有する。【００１２】
アドレス変換部は、実効アドレスを物理アドレスに変換するためのアドレス変換テーブルであって、メモリにおいて各周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスと、該実効アドレスに対するアクセスの許可が与えられたアクセス元を、該プロセッサユニットにおいて識別するために規定されたアクセス元識別情報とを対応付けて格納したテーブルを備える。アドレス変換部は、ブリッジにより、周辺デバイスから発行されたアクセス要求パケットを変換して得たアクセスコマンドに含まれるデバイス識別情報であって、該周辺デバイスを一意に識別可能なデバイス識別情報と、アドレス変換テーブルにおける、アクセスコマンドに含まれる実効アドレスに対応するアクセス元識別情報とが一致することを条件として、当該実効アドレスに対するアクセスの許可を決定する。【００１３】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記憶した記憶媒体などの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１４】
本発明は、プロセッサユニットに接続された周辺デバイスから、プロセッサユニットのメモリへのアクセスにおいて、効率を追求しながら安全性を図ることができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の概要の説明に用いた情報処理システムを示す図である。
【図２】アクセス要求パケットの例（その１）を示す図である。
【図３】実効アドレスを物理アドレスに変換するためのアドレス変換テーブルの例（その１）を示す図である。
【図４】実効アドレスを物理アドレスに変換するためのアドレス変換テーブルの例（その２）を示す図である。
【図５】アクセス要求パケットの例（その２）を示す図である。
【図６】図５に示すアクセス要求パケットを変換して得たアクセスコマンドを示す図である。
【図７】本発明にかかる実施の形態による情報処理システムの構成を示す図である。
【図８】図７に示す情報処理システムにおけるブリッジの構成例を示す図である。
【図９】本発明の技術思想を適用可能な分散アプリケーションシステムの例を示す図である。
【符号の説明】
【００１６】
１０  プロセッサユニット、  １４  アドレス変換部、  １６  アドレス変換テーブル、  １８  アドレス変換テーブル、  ２０  ブリッジ、  ３０  周辺デバイス、  ３２  アクセス要求パケット、  ３４  アクセス要求パケット、  １００  ＰＣＩデバイス、  １１０  ブリッジ、  １１２  第１の入出力部、  １１４  ブリッジコントローラ、  １１８  第２の入出力部、  １２０  マルチコアプロセッサ、  １３０  ＳＰＥ、  １３２  コア、  １３４  ローカルメモリ、  １３６  ＭＦＣ、  １３８  ＤＭＡＣ、  １４０  ＰＰＥ、  １４２  コア、  １４４  キャッシュ、  １４５  キャッシュ、  １４６  ＭＦＣ、  １４８  ＤＭＡＣ、  １５０  リングバス、  １６０  ＩＯＩＦ、  １６４  ＩＯコントローラ、  １７０  メモリコントローラ、  １８０  メインメモリ、  ２００  ノード。
【発明を実施するための最良の形態】
【００１７】
本発明の実施の形態の詳細を説明する前に、まず、本発明者が提案する技術の概要を説明する。【００１８】
図１に示す情報処理システムについて考える。この情報処理システムは、プロセッサユニット１０と、複数ここでは例として２つの周辺デバイス３０を有し、プロセッサユニット１０と周辺デバイス３０は、ブリッジ２０により接続される。プロセッサユニット１０は、単一のプロセッサを有するシングルプロセッサシステムであってもよいし、複数のプロセッサを含むマルチプロセッサシステムであってもよい。なお、プロセッサユニット１０は、図示しないメモリを備え、マルチプロセッサシステムの場合においては、このメモリは、各プロセッサからアクセス可能な共有メモリである。また、プロセッサユニット１０は、アドレス変換部１４を有し、その詳細については後述する。【００１９】
周辺デバイス３０は、プロセッサユニット１０のメモリにアクセスするのに当たり、アクセス要求パケットを発行する。このアクセス要求パケットは、周辺デバイス３０のアクセス先のメモリ領域の実効アドレスを指定可能なものであり、周辺デバイス３０のデバイス識別情報を含む。図２は、アクセス要求パケットの例を示す。【００２０】
ここで、実効アドレスとは実効アドレス空間内の所定の位置を示すアドレスである。さらに実効アドレス空間とは、プロセッサユニット１０が備えるメモリから部分的に切り取られたメモリ空間の一部同士を集合させ、結合したものである。実効アドレス空間の内部構成を最適化することにより、プロセッサユニット１０において動作するアプリケーションプログラムは最大パフォーマンスで動作できる。【００２１】
図２に示す例のアクセス要求パケット３２は、デバイス識別情報と実効アドレスを含む。デバイス識別情報は、図１に示す情報処理システムにおいて、周辺デバイス３０を一意に識別可能な情報であり、たとえば、周辺デバイスが接続されたバスの番号など周辺デバイスの物理位置を特定可能な情報や、周辺デバイスの種類などを示す情報とすることができる。また、情報処理システムの機能拡張や性能強化を図るために、グラフィックプロセッサや高速なメモリデバイスを周辺デバイスとして接続することがあり、より多くの周辺デバイスを接続できるようにすることが要請されている背景において、ブリッジの先にスイッチを多段接続して、デバイスのネットワークを構成することもある。この場合において、デバイス識別情報は、スイッチ番号も含む。以下、説明の便宜のため、デバイス識別情報をリクエスタＩＤという。【００２２】
プロセッサユニット１０のアドレス変換部１４は、アクセス要求パケット３２に含まれる実効アドレスを、メモリの物理アドレスに変換することによって、アクセス要求パケットを発行した周辺デバイス３０によるメモリへのアクセスを可能にする。ここで、アドレス変換部１４について説明する。【００２３】
アドレス変換部１４は、図３に示すアドレス変換テーブル１６を用いてアドレスの変換を行う。【００２４】
プロセッサユニット１０のメモリにおいて、各周辺デバイス３０が使用するエリアを割り当てられており、アドレス変換テーブル１６は、それぞれのエリアに対するアクセスの許可が与えられたアクセス元を、プロセッサユニット１０において識別するアクセス元識別情報（以下ＩＯＩＤという）と、これらのエリアに対応した、実効アドレス空間におけるエリア（以下実効エリアという）を示す実効アドレスと、物理アドレス空間におけるこれらのエリア（以下物理エリアという）を示す物理アドレスとを対応付けて格納している。なお、１つのＩＯＩＤは、１つ以上の実効アドレスに対応する。【００２５】
アドレス変換部１４は、アクセス要求パケット３２に含まれる実効アドレスを物理アドレスに変換する際に、まず、アクセス要求パケット３２に含まれるリクエスタＩＤと、アドレス変換テーブル１６におけるＩＯＩＤとを用いて照合を行う。具体的には、アドレス変換テーブル１６における、アクセス要求パケット３２に含まれる実効アドレスに対応するＩＯＩＤが、リクエスタＩＤと一致するか否かを照合する。照合の結果、一致すればアクセスを許可し、この実効アドレスを対応する物理アドレスに変換する一方、一致しなければエラーを返し、アクセスを拒否する。【００２６】
こうすることによって、周辺デバイス３０から、プロセッサユニット１０のメモリにおいてこの周辺デバイス３０に割り当てられたエリアへの直接アクセスを実現する。それとともに、周辺デバイスが、自身に対して割り当てられた領域以外の領域へアクセスできないようにしているので、プロセッサユニット１０に図示しないＤＭＡＣをユーザソフトウェアに開放しても、悪意のあるデバイスやユーザソフトウェアから、周辺デバイス３０へ割り当てられたメモリ領域へのアクセスを防ぐことができ、安全である。【００２７】
一方、多くの場合において、プロセッサユニットの入出力バスと、周辺デバイスの入出力バスの規格が異なる。そのため、周辺デバイスの入出力バスを、プロセッサユニットの入出力バスへ中継するブリッジが用いられる。この場合において、規格の制約から、リクエスタＩＤのビット数と、ＩＯＩＤのビット数は一般に異なり、ＩＯＩＤのビット数がリクエスタＩＤのビット数より少ないときに問題が生じる。【００２８】
そこで、リクエスタＩＤをそのままＩＯＩＤと照合する代わりに、ブリッジによって、リクエスタＩＤを、そのビット数がＩＯＩＤのビット数に合致するようにＩＯＩＤと照合するようにすれば、この場合においてもＩＯＩＤによるメモリの保護ができる。【００２９】
これについて、本発明者は下記の技術を提案する。ここでも、図１に示す情報処理システムを利用して説明する。【００３０】
この場合において、プロセッサユニット１０のアドレス変換部１４は、図４に示すアドレス変換テーブル１８を用いる。図示のように、ＩＯＩＤは、セグメント番号とページ番号の組み合わせに対応して格納されている。【００３１】
プロセッサユニット１０のメモリはセグメントに分けられており、各セグメントはさらに複数のページに分けられている。セグメント番号とページ番号の組み合わせは、実効エリアを示す。【００３２】
アドレス変換テーブル１８は、セグメントに含まれる各ページ毎に物理アドレスをマッピングするとともに、ＩＯＩＤに基づいたアクセスの許否を示している。【００３３】
図５は、この場合において、周辺デバイス３０から発行されるアクセス要求パケットの例を示す。この例のアクセス要求パケット３４は、リクエスタＩＤと、アクセス先のメモリ領域におけるオフセットを含む。【００３４】
ブリッジ２０は、アクセス要求パケット３４を、ＩＯＩＤと実効アドレスを含むアクセスコマンドに変換する。具体的には、アクセス要求パケット３４に含まれるリクエスタＩＤの一部たとえば下位の、ＩＯＩＤのビット数分のビットをＩＯＩＤに対応付けるとともに、他の部分たとえば上位のビットを、セグメント番号とページ番号に対応付ける。【００３５】
図６は、ブリッジ２０により得られたアクセスコマンドを示す。アクセスコマンドは、セグメント番号、ページ番号、ＩＯＩＤ、オフセットを含む。【００３６】
プロセッサユニット１０のアドレス変換部１４は、ブリッジ２０からのアクセスコマンドに含まれる実効アドレス（ここでは、セグメント番号、ページ番号、オフセットの組合せ）を物理アドレスに変換する際に、まず、アクセスコマンドに含まれるＩＯＩＤと、アドレス変換テーブル１８におけるＩＯＩＤとを照合する。具体的には、アドレス変換テーブル１８における、アクセスコマンドに含まれるセグメント番号とページ番号の組合せに対応するＩＯＩＤが、アクセスコマンドに含まれるＩＯＩＤと一致するか否かを照合する。照合の結果、一致すればアクセスを許可し、アクセスコマンドに含まれる実効アドレスを対応する物理アドレスに変換する一方、一致しなければエラーを返し、アクセスを拒否する。【００３７】
こうすることによって、周辺デバイスのリクエスタＩＤのビット数が、プロセッサユニット１０のアドレス変換部１４が使用するＩＯＩＤのビット数より多い場合においても、ＩＯＩＤによるメモリの保護ができる。【００３８】
以下、本発明の実施の形態について、以上の概要を具現化してシステムを説明する。【００３９】
図７は、本発明にかかる実施の形態による情報処理システムの構成を示す。この情報処理システムは、複数の周辺デバイスたとえばＰＣＩデバイス１００、マルチコアプロセッサ１２０、メインメモリ１８０、ＰＣＩデバイス１００とマルチコアプロセッサ１２０とを接続するブリッジ１１０を有する。マルチコアプロセッサ１２０とメインメモリ１８０は、１つのプロセッサユニットを構成する。【００４０】
ＰＣＩデバイス１００の接続インターフェイスとして、ＰＣＩバスを用いる。ここで、ＰＣＩバスは、ＰＣＩ、ＰＣＩＸ、ＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）のいずれの仕様によるものでもよい。【００４１】
マルチコアプロセッサ１２０は、ワンチップで形成されており、主処理ユニットＰＰＥ（Ｐｏｗｅｒ  Ｐｒｏｃｅｓｓｉｎｇ  Ｅｌｅｍｅｎｔ）１４０と、複数、図示の例では８つのサブ処理ユニットＳＰＥ（Ｓｙｎｅｒｇｉｓｔｉｃ  Ｐｒｏｃｅｓｓｉｎｇ  Ｅｌｅｍｅｎｔ）１３０と、ＩＯインターフェイス（以下ＩＯＩＦという）１６０と、メモリコントローラ１７０とを有し、これらは、リングバス１５０によって接続される。【００４２】
メインメモリ１８０は、マルチコアプロセッサ１２０の各処理ユニットの共有メモリであり、メモリコントローラ１７０と接続されている。なお、メインメモリ１８０は、複数のセグメントに分けられており、各セグメントは、さらに複数のページに分けられている。【００４３】
メモリコントローラ１７０は、ＰＰＥ１４０および各ＳＰＥ１３０がメインメモリ１８０にアクセスする仲介を行う。なお、図７に示す例では、メインメモリ１８０はマルチコアプロセッサ１２０の外部に設けられているが、マルチコアプロセッサ１２０内に含まれるように設けられてもよい。【００４４】
ＩＯＩＦ１６０は、図示しないＩＯＩＦバスによってブリッジ１１０と接続され、ブリッジ１１０と協働して、ＰＣＩデバイス１００からメインメモリ１８０へのアクセスを可能にする。ＩＯＩＦ１６０には、ＩＯコントローラ１６４が含まれている。【００４５】
ＳＰＥ１３０は、コア１３２と、ローカルメモリ１３４と、メモリフローコントローラ（以下ＭＦＣという）１３６とを備え、ＭＦＣ１３６には、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）１３８が含まれている。なお、ローカルメモリ１３４は、従来のハードウェアキャッシュメモリではないことが望ましく、それには、ハードウェアキャッシュメモリ機能を実現するための、チップ内蔵またはチップ外に置かれたハードウェアキャッシュ回路、キャッシュレジスタ、キャッシュメモリコントローラなどが無い。【００４６】
ＰＰＥ１４０は、コア１４２と、Ｌ１キャッシュ１４４と、Ｌ２キャッシュ１４５と、ＭＦＣ１４６とを備え、ＭＦＣ１４６には、ＤＭＡＣ１４８が含まれている。【００４７】
通常、マルチコアプロセッサ１２０のオペレーティングシステム（以下ＯＳともいう）は、ＰＰＥ１４０において動作し、ＯＳの基本処理に基づいて、各ＳＰＥ１３０で動作するプログラムが決定される。また、ＳＰＥ１３０で動作するプログラムは、ＯＳの機能の一部をなすようなプログラム（たとえばデバイスドライバや、システムプログラムの一部など）であってもよい。なお、ＰＰＥ１４０とＳＰＥ１３０の命令セットアーキテクチャは、異なる命令セットを有する。【００４８】
図７に示す情報処理システムの初期化時において、マルチコアプロセッサ１２０のデバイスドライバは、デバイスの探索を行ってそれぞれのＰＣＩデバイス１００のリクエスタＩＤを取得する。ここの例において、リクエスタＩＤは、ＰＣＩの規格によりビット数が１６ビットに定められている。これによって、マルチコアプロセッサ１２０のＯＳは、各ＰＣＩデバイス１００が利用可能なセグメントと、各ＰＣＩデバイス１００のＩＯＩＤを得る。ここで、マルチコアプロセッサ１２０の仕様によってＩＯＩＤのビット数がたとえば１１ビットであり、ＯＳはリクエスタＩＤの下位１１ビットをＩＯＩＤとして取得する。【００４９】
そして、ＯＳは、ＰＣＩデバイス１００に対するメモリ割り当て要求に応じて、セグメントに対してページエントリを生成する。ページのサイズはここで選択することができる。この割当てによって、図４に示すアドレス変換テーブル１８が生成される。ＯＳは、このアドレス変換テーブル１８をメインメモリ１８０に格納し、これによってＰＣＩデバイス１００からメインメモリ１８０へのアクセスが可能になる。【００５０】
ＰＣＩデバイス１００は、メインメモリ１８０にアクセスするのにあたり、アクセス要求パケットを発行する。ここで、このアクセス要求パケットとして、図５に示すアクセス要求パケット３４を用いる。【００５１】
図８は、ブリッジ１１０の構成を示す。ブリッジ１１０は、第１の入出力部１１２、ブリッジコントローラ１１４と、第２の入出力部１１８を有する。【００５２】
第１の入出力部１１２は、ＰＣＩデバイス１００により発行されたアクセス要求パケットを受け取り、ブリッジコントローラ１１４は、このアクセス要求パケットをアクセスコマンドに変換する。そして、第２の入出力部１１８は、このアクセスコマンドをマルチコアプロセッサ１２０のＩＯＩＦ１６０に渡す。【００５３】
ブリッジコントローラ１１４は、アクセス要求パケットに含まれるＰＣＩデバイス１００のリクエスタＩＤの下位１１ビットをＩＯＩＤとして取得し、リクエスタＩＤの上位５ビットを、セグメント番号とページ番号に対応づける。この変換によって、図６に示すアクセスコマンドが得られる。【００５４】
ＩＯＩＦ１６０のＩＯコントローラ１６４は、図４に示すアドレス変換テーブル１８を参照して、ブリッジ１１０から渡されたアクセスコマンドに含まれる実効アドレス（セグメント番号、ページ番号、オフセットの組合せ）を、メインメモリ１８０における物理アドレスに変換する。ページサイズが４ＫＢであるときに、３６ビットのアクセスコマンドの各ビットは下記のように規定される：［３４：２８］＝セグメント、［２７：１２］＝ページ、Ａｄｄｒｅｓｓ［１１：０］＝オフセット。【００５５】
ＩＯコントローラ１６４は、変換するのに際し、まず、アクセスコマンドに含まれるセグメント番号、ページ番号について、変換テーブルを参照して、アクセスが許可されているか否かを見出す。たとえば、「セグメント＝１、ページ＝２、オフセット＝０」を示すアクセスコマンドとともに受信したＩＯＩＤがＣである場合には、アドレス変換テーブル１８はセグメント＝１、ページ＝２に対して、アクセスを許可するＩＯＩＤとしてＣを対応づけているので、ＩＯコントローラ１６４は、「セグメント＝１、ページ＝２」に対応する物理アドレスｄへのアクセスを許可する。一方、「セグメント＝１２７、ページ＝１、オフセット＝０」を示すアクセスコマンドとともに受信したＩＯＩＤがＣである場合には、変換テーブルはセグメント＝１２７、ページ＝１に対して、アクセスを許可するＩＯＩＤとしてＤを対応づけているため、ＩＯコントローラ１６４は、エラー信号を返して、アクセスを拒否する。【００５６】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。【００５７】
たとえば、図７に示す情報処理システムにおいて、周辺デバイスはＰＣＩデバイス１００であるが、ＰＣＩ規格以外の周辺デバイスを用いてもよい。【００５８】
また、本発明の技術思想を、ネットワーク上の複数のノードが並列に同じアプリケーションを処理可能な分散アプリケーションシステムに適用し、デバイス識別情報をアプリケーション識別情報に置き換えることによって、異なるノード上で動作する同じアプリケーション間のアクセスを可能にするとともに、それぞれのノード上においてこのアプリケーションに対して割り当てられたメモリ空間の保護を図ることができる。具体的には、たとえば図９に示す分散処理アプリケーションシステムにおいて、各ノード２００は、プロセッサユニットとメモリを備える。動作中のアプリケーション毎に、このアプリケーションを一意に識別可能なアプリケーション識別情報を付与するとともに、各ノード２００のメモリにおいて、動作中の各アプリケーション毎に、このアプリケーションが使用可能なエリアを割り当てる。アクセス元のノード２００からアクセス先のノード２００にアクセスする際に、アクセス要求パケットに、アプリケーション識別情報を付加する。アクセス先のノード２００においてアクセス要求パケットに含まれる実効アドレスを物理アドレスに変換する際に、アプリケーション識別情報をもとに、この実効アドレスに対するアクセスの許否を決定する。こうすることによって、ネットワーク上の異なるノードで動作する同じアプリケーションは、互いのノードにおいて、このアプリケーションに対して割り当てられたエリアにアクセスできるとともに、他のアプリケーションによって、自身のエリアをアクセスされることを防ぐことができる。
【産業上の利用可能性】
【００５９】
本発明は、周辺デバイスからプロセッサのメモリへのアクセス技術に適用することができる。
【図１】
2007129482.tif 000003
【図２】
2007129482.tif 000004
【図３】
2007129482.tif 000005
【図４】
2007129482.tif 000006
【図５】
2007129482.tif 000007
【図６】
2007129482.tif 000008
【図７】
2007129482.tif 000009
【図８】
2007129482.tif 000010
【図９】
2007129482.tif 000011
【手続補正書】
【提出日】平成20年10月20日(2008.10.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサユニットと周辺デバイスとが相互接続された情報処理装置であって、
前記プロセッサユニットは、実効アドレスを物理アドレスに変換するためのアドレス変換テーブルであって、該プロセッサユニットのメモリにおいて各前記周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスと、該実効アドレスに対するアクセスの許可が与えられたアクセス元を、該プロセッサユニットにおいて識別するために規定されたアクセス元識別情報とを対応付けて格納したテーブルを備えたアドレス変換部を有し、
前記周辺デバイスは、前記メモリへアクセスする際に、該周辺デバイスに対応する前記実効アドレスを指定しうるアクセス要求パケットであって、該周辺デバイスを一意に識別可能なデバイス識別情報を有するアクセス要求パケットを発行し、
前記アドレス変換部は、前記アクセス要求パケットに含まれるデバイス識別情報と、前記アドレス変換テーブルにおける、該アクセス要求パケットにより指定される実効アドレスに対応するアクセス元識別情報とが一致することを条件として、当該実効アドレスに対するアクセスの許可を決定することを特徴とする情報処理装置。
【請求項２】
プロセッサユニットと周辺デバイスとが相互接続された情報処理装置であって、
前記プロセッサユニットと周辺デバイスは、各前記周辺デバイスの入出力バスを、前記プロセッサユニットの入出力バスに中継するブリッジにより接続され、
前記プロセッサユニットは、実効アドレスを物理アドレスに変換するためのアドレス変換テーブルであって、該プロセッサユニットのメモリにおいて各前記周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスと、該実効アドレスに対するアクセスの許可が与えられたアクセス元を、該プロセッサユニットにおいて識別するために規定されたアクセス元識別情報とを対応付けて格納したテーブルを備えたアドレス変換部を有し、
前記周辺デバイスは、前記メモリへアクセスする際に、該周辺デバイスに対応する前記実効アドレスを指定しうるアクセス要求パケットであって、該周辺デバイスを一意に識別可能なデバイス識別情報を有するアクセス要求パケットを発行し、
前記ブリッジは、前記アクセス要求パケットからアクセスコマンドを得るに際し、前記デバイス識別情報から照合情報を得て、前記アクセスコマンドに照合情報が含まれるようにし、
前記アドレス変換部は、前記アクセスコマンドに含まれる前記照合情報と、前記アドレス変換テーブルにおける、該アクセスコマンドにより指定される実効アドレスに対応するアクセス元識別情報とが一致することを条件として、当該実効アドレスに対するアクセスの許可を決定することを特徴とする情報処理装置。
【請求項３】
前記プロセッサユニットのメモリは、複数のセグメントに分けられ、該複数のセグメントはさらにそれぞれ複数のページに分けられており、
前記アドレス変換テーブルは、セグメント番号とページ番号の組み合わせを、前記アクセス元識別情報と対応付けて格納したものであり、
前記ブリッジは、前記デバイス識別情報の一部を前記照合情報に対応付けるとともに、他の部分をセグメント番号とページ番号に対応付けることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
プロセッサユニットの入出力バスに、周辺デバイスの入出力バスを中継するブリッジであって、
前記周辺デバイスから、該プロセッサユニットのメモリにおいて該周辺デバイスに割り当てられたエリアの実効アドレスを指定しうるアクセス要求パケットであって、該周辺デバイスを一意に識別可能なデバイス識別情報を有するアクセス要求パケットを受け取る上流ポートと、
前記アクセス要求パケットに含まれる前記デバイス識別情報から、前記プロセッサユニットのメモリにおいて各前記周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスに対するアクセスの許可が与えられたアクセス元を、前記プロセッサユニットにおいて識別するために規定されたアクセス元識別情報と照合するための照合情報を得、該照合情報と、前記アクセス要求パケットにより指定される実効アドレスとを含むアクセスコマンドを得る識別情報変換部と、
実効アドレスを物理アドレスに変換するためのアドレス変換テーブルであって、前記プロセッサユニットのメモリにおいて各前記周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスと、該実効アドレスに対応するアクセス元識別情報とを対応付けて格納したテーブルを参照して実効アドレスを物理アドレスに変換する際に、前記アクセスコマンドに含まれる照合情報と、前記アドレス変換テーブルにおける、該アクセスコマンドに含まれる実効アドレスに対応するアクセス元識別情報とが一致することを条件として、当該実効アドレスに対するアクセスの許可を決定する前記プロセッサユニットへ、前記アクセスコマンドを渡す下流ポートとを備えることを特徴とするブリッジ。
【請求項５】
前記プロセッサユニットのメモリは、複数のセグメントに分けられ、該複数のセグメントはさらにそれぞれ複数のページに分けられており、
前記アドレス変換テーブルは、セグメント番号とページ番号の組み合わせを、前記アクセス元識別情報と対応付けて格納したものであり、
前記デバイス識別情報の一部を前記照合情報に対応付けるとともに、他の部分をセグメント番号とページ番号に対応付けて前記アクセスコマンドを得ることを特徴とする請求項４に記載のブリッジ。
【請求項６】
周辺デバイスと接続されたプロセッサユニットであって、
メモリと、
実効アドレスを物理アドレスに変換するためのアドレス変換テーブルであって、前記メモリにおいて各前記周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスと、該実効アドレスに対するアクセスの許可が与えられたアクセス元を、該プロセッサユニットにおいて識別するために規定されたアクセス元識別情報とを対応付けて格納したテーブルを備えたアドレス変換部とを有し、
該アドレス変換部は、前記周辺デバイスから発行されたアクセス要求パケットに含まれるデバイス識別情報であって、該周辺デバイスを一意に識別可能なデバイス識別情報と、前記アドレス変換テーブルにおける、前記アクセス要求パケットに含まれる実効アドレスに対応するアクセス元識別情報とが一致することを条件として、当該実効アドレスに対するアクセスの許可を決定することを特徴とするプロセッサユニット。
【請求項７】
周辺デバイスの入出力バスを、プロセッサユニットの入出力バスに中継するブリッジにより前記周辺デバイスと接続された前記プロセッサユニットであって、
メモリと、
実効アドレスを物理アドレスに変換するためのアドレス変換テーブルであって、前記メモリにおいて各前記周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスと、該実効アドレスに対するアクセスの許可が与えられたアクセス元を、該プロセッサユニットにおいて識別するために規定されたアクセス元識別情報とを対応付けて格納したテーブルを備えたアドレス変換部とを有し、
該アドレス変換部は、前記周辺デバイスから発行されたデバイス識別情報を含むアクセス要求パケットを、前記ブリッジにより変換して得たアクセスコマンドに含まれる照合情報であって、該周辺デバイスを一意に識別可能なデバイス識別情報に対応付けられる照合情報と、前記アドレス変換テーブルにおける、前記アクセスコマンドに含まれる実効アドレスに対応するアクセス元識別情報とが一致することを条件として、当該実効アドレスに対するアクセスの許可を決定することを特徴とするプロセッサユニット。
【請求項８】
前記プロセッサユニットのメモリは、複数のセグメントに分けられ、該複数のセグメントはさらにそれぞれ複数のページに分けられており、
前記アドレス変換テーブルは、セグメント番号とページ番号の組み合わせを、前記アクセス元識別情報と対応付けて格納したものであり、
前記アクセスコマンドは、前記ブリッジにより、前記デバイス識別情報の一部からアクセス元識別情報と照合するための照合情報を得るとともに、他の部分をセグメント番号とページ番号に対応付けるようにして得られたものであることを特徴とする請求項７に記載のプロセッサユニット。
【請求項９】
プロセッサユニットと周辺デバイスとが接続された情報処理装置におけるアクセス制御方法であって、
前記周辺デバイスから、該プロセッサユニットのメモリにおいて該周辺デバイスに割り当てられたエリアの実効アドレスを指定しうるアクセス要求パケットであって、該周辺デバイスを一意に識別可能なデバイス識別情報を有するアクセス要求パケットを受け取るステップと、
実効アドレスを物理アドレスに変換するためのアドレス変換テーブルであって、該プロセッサユニットのメモリにおいて各前記周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスと、該実効アドレスに対するアクセスの許可が与えられたアクセス元を、該プロセッサユニットにおいて識別するために規定されたアクセス元識別情報とを対応付けて格納したテーブルを参照して、前記アクセス要求パケットに含まれるデバイス識別情報と、前記アドレス変換テーブルにおける、該アクセス要求パケットにより指定される実効アドレスに対応するアクセス元識別情報とが一致することを条件として、当該実効アドレスに対するアクセスの許可を決定するステップとを有することを特徴とするアクセス制御方法。
【請求項１０】
プロセッサユニットと周辺デバイスとが、前記周辺デバイスの入出力バスを前記プロセッサユニットの入出力バスに中継するブリッジにより接続された情報処理装置におけるアクセス制御方法であって、
前記周辺デバイスから前記ブリッジが、該プロセッサユニットのメモリにおいて該周辺デバイスに割り当てられたエリアの実効アドレスを指定しうるアクセス要求パケットであって、該周辺デバイスを一意に識別可能なデバイス識別情報を有するアクセス要求パケットを受け取るステップと、
前記ブリッジが、前記アクセス要求パケットからアクセスコマンドを得るに際し、前記デバイス識別情報から照合情報を得て、前記アクセスコマンドに照合情報が含まれるようにするステップと、
実効アドレスを物理アドレスに変換するためのアドレス変換テーブルであって、該プロセッサユニットのメモリにおいて各前記周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスと、該実効アドレスに対するアクセスの許可が与えられたアクセス元を、該プロセッサユニットにおいて識別するために規定されたアクセス元識別情報とを対応付けて格納したテーブルを参照して、前記アクセスコマンドに含まれる前記照合情報と、前記アドレス変換テーブルにおける、該アクセスコマンドにより指定される実効アドレスに対応するアクセス元識別情報とが一致することを条件として、当該実効アドレスに対するアクセスの許可を決定するステップとを有することを特徴とするアクセス制御方法。
【請求項１１】
前記プロセッサユニットのメモリは、複数のセグメントに分けられ、該複数のセグメントはさらにそれぞれ複数のページに分けられており、
前記アドレス変換テーブルは、セグメント番号とページ番号の組み合わせを、前記アクセス元識別情報と対応付けて格納したものであり、
前記デバイス識別情報の一部を前記照合情報に対応付けるとともに、他の部分をセグメント番号とページ番号に対応付けることを特徴とする請求項１０に記載のアクセス制御方法。
【国際調査報告】
2007129482.tif 000012
2007129482.tif 000013
2007129482.tif 000014
2007129482.tif 000015