JPWO2007129482A1 - ブリッジ、プロセッサユニット、情報処理装置およびアクセス制御方法 - Google Patents

ブリッジ、プロセッサユニット、情報処理装置およびアクセス制御方法 Download PDF

Info

Publication number
JPWO2007129482A1
JPWO2007129482A1 JP2007533803A JP2007533803A JPWO2007129482A1 JP WO2007129482 A1 JPWO2007129482 A1 JP WO2007129482A1 JP 2007533803 A JP2007533803 A JP 2007533803A JP 2007533803 A JP2007533803 A JP 2007533803A JP WO2007129482 A1 JPWO2007129482 A1 JP WO2007129482A1
Authority
JP
Japan
Prior art keywords
access
identification information
processor unit
address
effective address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007533803A
Other languages
English (en)
Other versions
JP4219964B2 (ja
Inventor
英幸 斎藤
英幸 斎藤
山崎 剛
剛 山崎
高橋 祐治
祐治 高橋
秀樹 三林
秀樹 三林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Sony Corp
Original Assignee
Sony Corp
Sony Computer Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp, Sony Computer Entertainment Inc filed Critical Sony Corp
Application granted granted Critical
Publication of JP4219964B2 publication Critical patent/JP4219964B2/ja
Publication of JPWO2007129482A1 publication Critical patent/JPWO2007129482A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)
  • Bridges Or Land Bridges (AREA)
  • Selective Calling Equipment (AREA)

Abstract

周辺デバイスからプロセッサのメモリへのアクセスにおいて、効率を追求しながら安全性を図ることができるアクセス技術を提供する。アドレス変換部14は、実効アドレスを物理アドレスに変換するためのアドレス変換テーブルを備える。アドレス変換テーブルは、プロセッサユニット10のメモリにおいて各周辺デバイス30に割り当てられたエリアの実効アドレスと、該実効アドレスに対するアクセスの許可が与えられたアクセス元識別情報とを対応付けて格納している。周辺デバイス30からアクセスされた際に、アドレス変換部14は、アクセス要求パケットに含まれた、該周辺デバイス30を一意に識別可能なデバイス識別情報と、アドレス変換テーブルにおける、このアクセス要求パケットにより指定される実効アドレスに対応するアクセス元識別情報とが一致することを条件として、当該実効アドレスに対するアクセスの許可を決定する。

Description

本発明は、プロセッサユニットに接続された周辺デバイスから、プロセッサユニットへのアクセス技術に関する。
パーソナルコンピュータやサーバには、たとえばPCI(Peripheral Component Interconnect)バスを介して各種の周辺デバイスが接続され、情報処理システムが構成される。
周辺デバイスからプロセッサのメモリへアクセスする際に、プロセッサの負担を減らすために、DMA(ダイレクト・メモリ・アクセス)アーキテクチャを用いることが考えられる。こうすることによって、たとえば、プロセッサのメモリ領域において、各周辺デバイスが使用するエリアを割り当てておき、周辺デバイスは、自身に割り当てられたエリアに直接アクセスすることができる。
しかし、周辺デバイスからの直接アクセスを実現するために、プロセッサのDMAC(ダイレクト・メモリ・アクセス・コントローラ)をユーザソフトウェアに開放してしまうと、悪意のあるユーザソフトウェアにより、周辺デバイスに割り当てられたエリアがアクセスされてしまうことが起こりうる。
本発明は、上記事情に鑑みてなされたものであり、その目的は、周辺デバイスからプロセッサのメモリへのアクセスにおいて、効率を追求しながら安全性を図ることができる技術を提供することにある。
本発明のある態様は、ブリッジである。このブリッジは、プロセッサユニットの入出力バスと周辺デバイスの入出力バスを中継するブリッジであり、上流ポートと、識別情報変換部と、下流ポートを有する。
上流ポートは、周辺デバイスから、該プロセッサユニットのメモリにおいて該周辺デバイスに割り当てられたエリアの実効アドレスを指定しうるアクセス要求パケットであって、該周辺デバイスを一意に識別可能なデバイス識別情報を有するアクセス要求パケットを受け取る。
識別情報変換部は、アクセス要求パケットに含まれるデバイス識別情報から、プロセッサユニットのメモリにおいて各周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスに対するアクセスの許可が与えられたアクセス元を、プロセッサユニットにおいて識別するために規定されたアクセス元識別情報と照合するための照合情報を得、該照合情報と、アクセス要求パケットにより指定される実効アドレスとを含むアクセスコマンドを得る。 下流ポートは、実効アドレスを物理アドレスに変換するためのアドレス変換テーブルであって、プロセッサユニットのメモリにおいて各周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスと、該実効アドレスに対応するアクセス元識別情報とを対応付けて格納したテーブルを参照して実効アドレスを物理アドレスに変換する際に、アクセスコマンドに含まれる照合情報と、アドレス変換テーブルにおける、該アクセスコマンドに含まれる実効アドレスに対応するアクセス元識別情報とが一致することを条件として、当該実効アドレスに対するアクセスの許可を決定する該プロセッサユニットへ、識別情報変換部により得られたアクセスコマンドを渡す。
また、プロセッサユニットのメモリは、複数のセグメントに分けられ、該複数のセグメントはさらにそれぞれ複数のページに分けられており、アドレス変換テーブルは、セグメント番号とページ番号の組み合わせを、アクセス元識別情報とを対応付けて格納したものであるようにし、識別情報変換部は、デバイス識別情報の一部をアクセス元識別情報に対応付けるとともに、他の部分をセグメント番号とページ番号に対応付けてアクセスコマンドを得るようにしてもよい。
本発明の別の態様は、プロセッサユニットである。このプロセッサユニットは、周辺デバイスの入出力バスを、プロセッサユニットの入出力バスに中継するブリッジにより周辺デバイスと接続されている。
該プロセッサユニットは、メモリと、アドレス変換部を有する。
アドレス変換部は、実効アドレスを物理アドレスに変換するためのアドレス変換テーブルであって、メモリにおいて各周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスと、該実効アドレスに対するアクセスの許可が与えられたアクセス元を、該プロセッサユニットにおいて識別するために規定されたアクセス元識別情報とを対応付けて格納したテーブルを備える。アドレス変換部は、ブリッジにより、周辺デバイスから発行されたアクセス要求パケットを変換して得たアクセスコマンドに含まれるデバイス識別情報であって、該周辺デバイスを一意に識別可能なデバイス識別情報と、アドレス変換テーブルにおける、アクセスコマンドに含まれる実効アドレスに対応するアクセス元識別情報とが一致することを条件として、当該実効アドレスに対するアクセスの許可を決定する。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記憶した記憶媒体などの間で相互に置換したものもまた、本発明の態様として有効である。
本発明は、プロセッサユニットに接続された周辺デバイスから、プロセッサユニットのメモリへのアクセスにおいて、効率を追求しながら安全性を図ることができる。
本発明の概要の説明に用いた情報処理システムを示す図である。 アクセス要求パケットの例(その1)を示す図である。 実効アドレスを物理アドレスに変換するためのアドレス変換テーブルの例(その1)を示す図である。 実効アドレスを物理アドレスに変換するためのアドレス変換テーブルの例(その2)を示す図である。 アクセス要求パケットの例(その2)を示す図である。 図5に示すアクセス要求パケットを変換して得たアクセスコマンドを示す図である。 本発明にかかる実施の形態による情報処理システムの構成を示す図である。 図7に示す情報処理システムにおけるブリッジの構成例を示す図である。 本発明の技術思想を適用可能な分散アプリケーションシステムの例を示す図である。
符号の説明
10 プロセッサユニット、 14 アドレス変換部、 16 アドレス変換テーブル、 18 アドレス変換テーブル、 20 ブリッジ、 30 周辺デバイス、 32 アクセス要求パケット、 34 アクセス要求パケット、 100 PCIデバイス、 110 ブリッジ、 112 第1の入出力部、 114 ブリッジコントローラ、 118 第2の入出力部、 120 マルチコアプロセッサ、 130 SPE、 132 コア、 134 ローカルメモリ、 136 MFC、 138 DMAC、 140 PPE、 142 コア、 144 キャッシュ、 145 キャッシュ、 146 MFC、 148 DMAC、 150 リングバス、 160 IOIF、 164 IOコントローラ、 170 メモリコントローラ、 180 メインメモリ、 200 ノード。
本発明の実施の形態の詳細を説明する前に、まず、本発明者が提案する技術の概要を説明する。
図1に示す情報処理システムについて考える。この情報処理システムは、プロセッサユニット10と、複数ここでは例として2つの周辺デバイス30を有し、プロセッサユニット10と周辺デバイス30は、ブリッジ20により接続される。プロセッサユニット10は、単一のプロセッサを有するシングルプロセッサシステムであってもよいし、複数のプロセッサを含むマルチプロセッサシステムであってもよい。なお、プロセッサユニット10は、図示しないメモリを備え、マルチプロセッサシステムの場合においては、このメモリは、各プロセッサからアクセス可能な共有メモリである。また、プロセッサユニット10は、アドレス変換部14を有し、その詳細については後述する。
周辺デバイス30は、プロセッサユニット10のメモリにアクセスするのに当たり、アクセス要求パケットを発行する。このアクセス要求パケットは、周辺デバイス30のアクセス先のメモリ領域の実効アドレスを指定可能なものであり、周辺デバイス30のデバイス識別情報を含む。図2は、アクセス要求パケットの例を示す。
ここで、実効アドレスとは実効アドレス空間内の所定の位置を示すアドレスである。さらに実効アドレス空間とは、プロセッサユニット10が備えるメモリから部分的に切り取られたメモリ空間の一部同士を集合させ、結合したものである。実効アドレス空間の内部構成を最適化することにより、プロセッサユニット10において動作するアプリケーションプログラムは最大パフォーマンスで動作できる。
図2に示す例のアクセス要求パケット32は、デバイス識別情報と実効アドレスを含む。デバイス識別情報は、図1に示す情報処理システムにおいて、周辺デバイス30を一意に識別可能な情報であり、たとえば、周辺デバイスが接続されたバスの番号など周辺デバイスの物理位置を特定可能な情報や、周辺デバイスの種類などを示す情報とすることができる。また、情報処理システムの機能拡張や性能強化を図るために、グラフィックプロセッサや高速なメモリデバイスを周辺デバイスとして接続することがあり、より多くの周辺デバイスを接続できるようにすることが要請されている背景において、ブリッジの先にスイッチを多段接続して、デバイスのネットワークを構成することもある。この場合において、デバイス識別情報は、スイッチ番号も含む。以下、説明の便宜のため、デバイス識別情報をリクエスタIDという。
プロセッサユニット10のアドレス変換部14は、アクセス要求パケット32に含まれる実効アドレスを、メモリの物理アドレスに変換することによって、アクセス要求パケットを発行した周辺デバイス30によるメモリへのアクセスを可能にする。ここで、アドレス変換部14について説明する。
アドレス変換部14は、図3に示すアドレス変換テーブル16を用いてアドレスの変換を行う。
プロセッサユニット10のメモリにおいて、各周辺デバイス30が使用するエリアを割り当てられており、アドレス変換テーブル16は、それぞれのエリアに対するアクセスの許可が与えられたアクセス元を、プロセッサユニット10において識別するアクセス元識別情報(以下IOIDという)と、これらのエリアに対応した、実効アドレス空間におけるエリア(以下実効エリアという)を示す実効アドレスと、物理アドレス空間におけるこれらのエリア(以下物理エリアという)を示す物理アドレスとを対応付けて格納している。なお、1つのIOIDは、1つ以上の実効アドレスに対応する。
アドレス変換部14は、アクセス要求パケット32に含まれる実効アドレスを物理アドレスに変換する際に、まず、アクセス要求パケット32に含まれるリクエスタIDと、アドレス変換テーブル16におけるIOIDとを用いて照合を行う。具体的には、アドレス変換テーブル16における、アクセス要求パケット32に含まれる実効アドレスに対応するIOIDが、リクエスタIDと一致するか否かを照合する。照合の結果、一致すればアクセスを許可し、この実効アドレスを対応する物理アドレスに変換する一方、一致しなければエラーを返し、アクセスを拒否する。
こうすることによって、周辺デバイス30から、プロセッサユニット10のメモリにおいてこの周辺デバイス30に割り当てられたエリアへの直接アクセスを実現する。それとともに、周辺デバイスが、自身に対して割り当てられた領域以外の領域へアクセスできないようにしているので、プロセッサユニット10に図示しないDMACをユーザソフトウェアに開放しても、悪意のあるデバイスやユーザソフトウェアから、周辺デバイス30へ割り当てられたメモリ領域へのアクセスを防ぐことができ、安全である。
一方、多くの場合において、プロセッサユニットの入出力バスと、周辺デバイスの入出力バスの規格が異なる。そのため、周辺デバイスの入出力バスを、プロセッサユニットの入出力バスへ中継するブリッジが用いられる。この場合において、規格の制約から、リクエスタIDのビット数と、IOIDのビット数は一般に異なり、IOIDのビット数がリクエスタIDのビット数より少ないときに問題が生じる。
そこで、リクエスタIDをそのままIOIDと照合する代わりに、ブリッジによって、リクエスタIDを、そのビット数がIOIDのビット数に合致するようにIOIDと照合するようにすれば、この場合においてもIOIDによるメモリの保護ができる。
これについて、本発明者は下記の技術を提案する。ここでも、図1に示す情報処理システムを利用して説明する。
この場合において、プロセッサユニット10のアドレス変換部14は、図4に示すアドレス変換テーブル18を用いる。図示のように、IOIDは、セグメント番号とページ番号の組み合わせに対応して格納されている。
プロセッサユニット10のメモリはセグメントに分けられており、各セグメントはさらに複数のページに分けられている。セグメント番号とページ番号の組み合わせは、実効エリアを示す。
アドレス変換テーブル18は、セグメントに含まれる各ページ毎に物理アドレスをマッピングするとともに、IOIDに基づいたアクセスの許否を示している。
図5は、この場合において、周辺デバイス30から発行されるアクセス要求パケットの例を示す。この例のアクセス要求パケット34は、リクエスタIDと、アクセス先のメモリ領域におけるオフセットを含む。
ブリッジ20は、アクセス要求パケット34を、IOIDと実効アドレスを含むアクセスコマンドに変換する。具体的には、アクセス要求パケット34に含まれるリクエスタIDの一部たとえば下位の、IOIDのビット数分のビットをIOIDに対応付けるとともに、他の部分たとえば上位のビットを、セグメント番号とページ番号に対応付ける。
図6は、ブリッジ20により得られたアクセスコマンドを示す。アクセスコマンドは、セグメント番号、ページ番号、IOID、オフセットを含む。
プロセッサユニット10のアドレス変換部14は、ブリッジ20からのアクセスコマンドに含まれる実効アドレス(ここでは、セグメント番号、ページ番号、オフセットの組合せ)を物理アドレスに変換する際に、まず、アクセスコマンドに含まれるIOIDと、アドレス変換テーブル18におけるIOIDとを照合する。具体的には、アドレス変換テーブル18における、アクセスコマンドに含まれるセグメント番号とページ番号の組合せに対応するIOIDが、アクセスコマンドに含まれるIOIDと一致するか否かを照合する。照合の結果、一致すればアクセスを許可し、アクセスコマンドに含まれる実効アドレスを対応する物理アドレスに変換する一方、一致しなければエラーを返し、アクセスを拒否する。
こうすることによって、周辺デバイスのリクエスタIDのビット数が、プロセッサユニット10のアドレス変換部14が使用するIOIDのビット数より多い場合においても、IOIDによるメモリの保護ができる。
以下、本発明の実施の形態について、以上の概要を具現化してシステムを説明する。
図7は、本発明にかかる実施の形態による情報処理システムの構成を示す。この情報処理システムは、複数の周辺デバイスたとえばPCIデバイス100、マルチコアプロセッサ120、メインメモリ180、PCIデバイス100とマルチコアプロセッサ120とを接続するブリッジ110を有する。マルチコアプロセッサ120とメインメモリ180は、1つのプロセッサユニットを構成する。
PCIデバイス100の接続インターフェイスとして、PCIバスを用いる。ここで、PCIバスは、PCI、PCIX、PCI Express(登録商標)のいずれの仕様によるものでもよい。
マルチコアプロセッサ120は、ワンチップで形成されており、主処理ユニットPPE(Power Processing Element)140と、複数、図示の例では8つのサブ処理ユニットSPE(Synergistic Processing Element)130と、IOインターフェイス(以下IOIFという)160と、メモリコントローラ170とを有し、これらは、リングバス150によって接続される。
メインメモリ180は、マルチコアプロセッサ120の各処理ユニットの共有メモリであり、メモリコントローラ170と接続されている。なお、メインメモリ180は、複数のセグメントに分けられており、各セグメントは、さらに複数のページに分けられている。
メモリコントローラ170は、PPE140および各SPE130がメインメモリ180にアクセスする仲介を行う。なお、図7に示す例では、メインメモリ180はマルチコアプロセッサ120の外部に設けられているが、マルチコアプロセッサ120内に含まれるように設けられてもよい。
IOIF160は、図示しないIOIFバスによってブリッジ110と接続され、ブリッジ110と協働して、PCIデバイス100からメインメモリ180へのアクセスを可能にする。IOIF160には、IOコントローラ164が含まれている。
SPE130は、コア132と、ローカルメモリ134と、メモリフローコントローラ(以下MFCという)136とを備え、MFC136には、DMAC(ダイレクトメモリアクセスコントローラ)138が含まれている。なお、ローカルメモリ134は、従来のハードウェアキャッシュメモリではないことが望ましく、それには、ハードウェアキャッシュメモリ機能を実現するための、チップ内蔵またはチップ外に置かれたハードウェアキャッシュ回路、キャッシュレジスタ、キャッシュメモリコントローラなどが無い。
PPE140は、コア142と、L1キャッシュ144と、L2キャッシュ145と、MFC146とを備え、MFC146には、DMAC148が含まれている。
通常、マルチコアプロセッサ120のオペレーティングシステム(以下OSともいう)は、PPE140において動作し、OSの基本処理に基づいて、各SPE130で動作するプログラムが決定される。また、SPE130で動作するプログラムは、OSの機能の一部をなすようなプログラム(たとえばデバイスドライバや、システムプログラムの一部など)であってもよい。なお、PPE140とSPE130の命令セットアーキテクチャは、異なる命令セットを有する。
図7に示す情報処理システムの初期化時において、マルチコアプロセッサ120のデバイスドライバは、デバイスの探索を行ってそれぞれのPCIデバイス100のリクエスタIDを取得する。ここの例において、リクエスタIDは、PCIの規格によりビット数が16ビットに定められている。これによって、マルチコアプロセッサ120のOSは、各PCIデバイス100が利用可能なセグメントと、各PCIデバイス100のIOIDを得る。ここで、マルチコアプロセッサ120の仕様によってIOIDのビット数がたとえば11ビットであり、OSはリクエスタIDの下位11ビットをIOIDとして取得する。
そして、OSは、PCIデバイス100に対するメモリ割り当て要求に応じて、セグメントに対してページエントリを生成する。ページのサイズはここで選択することができる。この割当てによって、図4に示すアドレス変換テーブル18が生成される。OSは、このアドレス変換テーブル18をメインメモリ180に格納し、これによってPCIデバイス100からメインメモリ180へのアクセスが可能になる。
PCIデバイス100は、メインメモリ180にアクセスするのにあたり、アクセス要求パケットを発行する。ここで、このアクセス要求パケットとして、図5に示すアクセス要求パケット34を用いる。
図8は、ブリッジ110の構成を示す。ブリッジ110は、第1の入出力部112、ブリッジコントローラ114と、第2の入出力部118を有する。
第1の入出力部112は、PCIデバイス100により発行されたアクセス要求パケットを受け取り、ブリッジコントローラ114は、このアクセス要求パケットをアクセスコマンドに変換する。そして、第2の入出力部118は、このアクセスコマンドをマルチコアプロセッサ120のIOIF160に渡す。
ブリッジコントローラ114は、アクセス要求パケットに含まれるPCIデバイス100のリクエスタIDの下位11ビットをIOIDとして取得し、リクエスタIDの上位5ビットを、セグメント番号とページ番号に対応づける。この変換によって、図6に示すアクセスコマンドが得られる。
IOIF160のIOコントローラ164は、図4に示すアドレス変換テーブル18を参照して、ブリッジ110から渡されたアクセスコマンドに含まれる実効アドレス(セグメント番号、ページ番号、オフセットの組合せ)を、メインメモリ180における物理アドレスに変換する。ページサイズが4KBであるときに、36ビットのアクセスコマンドの各ビットは下記のように規定される:[34:28]=セグメント、[27:12]=ページ、Address[11:0]=オフセット。
IOコントローラ164は、変換するのに際し、まず、アクセスコマンドに含まれるセグメント番号、ページ番号について、変換テーブルを参照して、アクセスが許可されているか否かを見出す。たとえば、「セグメント=1、ページ=2、オフセット=0」を示すアクセスコマンドとともに受信したIOIDがCである場合には、アドレス変換テーブル18はセグメント=1、ページ=2に対して、アクセスを許可するIOIDとしてCを対応づけているので、IOコントローラ164は、「セグメント=1、ページ=2」に対応する物理アドレスdへのアクセスを許可する。一方、「セグメント=127、ページ=1、オフセット=0」を示すアクセスコマンドとともに受信したIOIDがCである場合には、変換テーブルはセグメント=127、ページ=1に対して、アクセスを許可するIOIDとしてDを対応づけているため、IOコントローラ164は、エラー信号を返して、アクセスを拒否する。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
たとえば、図7に示す情報処理システムにおいて、周辺デバイスはPCIデバイス100であるが、PCI規格以外の周辺デバイスを用いてもよい。
また、本発明の技術思想を、ネットワーク上の複数のノードが並列に同じアプリケーションを処理可能な分散アプリケーションシステムに適用し、デバイス識別情報をアプリケーション識別情報に置き換えることによって、異なるノード上で動作する同じアプリケーション間のアクセスを可能にするとともに、それぞれのノード上においてこのアプリケーションに対して割り当てられたメモリ空間の保護を図ることができる。具体的には、たとえば図9に示す分散処理アプリケーションシステムにおいて、各ノード200は、プロセッサユニットとメモリを備える。動作中のアプリケーション毎に、このアプリケーションを一意に識別可能なアプリケーション識別情報を付与するとともに、各ノード200のメモリにおいて、動作中の各アプリケーション毎に、このアプリケーションが使用可能なエリアを割り当てる。アクセス元のノード200からアクセス先のノード200にアクセスする際に、アクセス要求パケットに、アプリケーション識別情報を付加する。アクセス先のノード200においてアクセス要求パケットに含まれる実効アドレスを物理アドレスに変換する際に、アプリケーション識別情報をもとに、この実効アドレスに対するアクセスの許否を決定する。こうすることによって、ネットワーク上の異なるノードで動作する同じアプリケーションは、互いのノードにおいて、このアプリケーションに対して割り当てられたエリアにアクセスできるとともに、他のアプリケーションによって、自身のエリアをアクセスされることを防ぐことができる。
本発明は、周辺デバイスからプロセッサのメモリへのアクセス技術に適用することができる。

Claims (10)

  1. プロセッサユニットと周辺デバイスとが相互接続された情報処理装置であって、
    前記プロセッサユニットは、実効アドレスを物理アドレスに変換するためのアドレス変換テーブルであって、該プロセッサユニットのメモリにおいて各前記周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスと、該実効アドレスに対するアクセスの許可が与えられたアクセス元を、該プロセッサユニットにおいて識別するために規定されたアクセス元識別情報とを対応付けて格納したテーブルを備えたアドレス変換部を有し、
    前記周辺デバイスは、前記メモリへアクセスする際に、該周辺デバイスに対応する前記実効アドレスを指定しうるアクセス要求パケットであって、該周辺デバイスを一意に識別可能なデバイス識別情報を有するアクセス要求パケットを発行し、
    前記アドレス変換部は、前記アクセス要求パケットに含まれるデバイス識別情報と、前記アドレス変換テーブルにおける、該アクセス要求パケットにより指定される実効アドレスに対応するアクセス元識別情報とが一致することを条件として、当該実効アドレスに対するアクセスの許可を決定することを特徴とする情報処理装置。
  2. 前記プロセッサユニットと周辺デバイスは、各前記周辺デバイスの入出力バスを、前記プロセッサユニットの入出力バスに中継するブリッジにより接続され、
    前記ブリッジは、前記デバイス識別情報と前記アクセス元識別情報のビット数が異なる場合において、前記アクセス要求パケットに含まれるデバイス識別情報をアクセス元識別情報に対応付けることを特徴とする請求項1に記載の情報処理装置。
  3. 前記プロセッサユニットのメモリは、複数のセグメントに分けられ、該複数のセグメントはさらにそれぞれ複数のページに分けられており、
    前記アドレス変換テーブルは、セグメント番号とページ番号の組み合わせを、前記アクセス元識別情報とを対応付けて格納したものであり、
    前記ブリッジは、前記デバイス識別情報の一部をアクセス元識別情報に対応付けるとともに、他の部分をセグメント番号とページ番号に対応付けることを特徴とする請求項2に記載の情報処理装置。
  4. プロセッサユニットの入出力バスに、周辺デバイスの入出力バスを中継するブリッジであって、
    前記周辺デバイスから、該プロセッサユニットのメモリにおいて該周辺デバイスに割り当てられたエリアの実効アドレスを指定しうるアクセス要求パケットであって、該周辺デバイスを一意に識別可能なデバイス識別情報を有するアクセス要求パケットを受け取る上流ポートと、
    前記アクセス要求パケットに含まれる前記デバイス識別情報から、前記プロセッサユニットのメモリにおいて各前記周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスに対するアクセスの許可が与えられたアクセス元を、前記プロセッサユニットにおいて識別するために規定されたアクセス元識別情報と照合するための照合情報を得、該照合情報と、前記アクセス要求パケットにより指定される実効アドレスとを含むアクセスコマンドを得る識別情報変換部と、
    実効アドレスを物理アドレスに変換するためのアドレス変換テーブルであって、前記プロセッサユニットのメモリにおいて各前記周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスと、該実効アドレスに対応するアクセス元識別情報とを対応付けて格納したテーブルを参照して実効アドレスを物理アドレスに変換する際に、前記アクセスコマンドに含まれる照合情報と、前記アドレス変換テーブルにおける、該アクセスコマンドに含まれる実効アドレスに対応するアクセス元識別情報とが一致することを条件として、当該実効アドレスに対するアクセスの許可を決定する前記プロセッサユニットへ、前記アクセスコマンドを渡す下流ポートとを備えることを特徴とするブリッジ。
  5. 前記プロセッサユニットのメモリは、複数のセグメントに分けられ、該複数のセグメントはさらにそれぞれ複数のページに分けられており、
    前記アドレス変換テーブルは、セグメント番号とページ番号の組み合わせを、前記アクセス元識別情報とを対応付けて格納したものであり、
    前記デバイス識別情報の一部をアクセス元識別情報に対応付けるとともに、他の部分をセグメント番号とページ番号に対応付けて前記アクセスコマンドを得ることを特徴とする請求項4に記載のブリッジ。
  6. 周辺デバイスの入出力バスを、プロセッサユニットの入出力バスに中継するブリッジにより前記周辺デバイスと接続された前記プロセッサユニットであって、
    メモリと、
    実効アドレスを物理アドレスに変換するためのアドレス変換テーブルであって、前記メモリにおいて各前記周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスと、該実効アドレスに対するアクセスの許可が与えられたアクセス元を、該プロセッサユニットにおいて識別するために規定されたアクセス元識別情報とを対応付けて格納したテーブルを備えたアドレス変換部と、
    該アドレス変換部は、前記ブリッジにより、前記周辺デバイスから発行されたアクセス要求パケットを変換して得たアクセスコマンドに含まれるデバイス識別情報であって、該周辺デバイスを一意に識別可能なデバイス識別情報と、前記アドレス変換テーブルにおける、前記アクセスコマンドに含まれる実効アドレスに対応するアクセス元識別情報とが一致することを条件として、当該実効アドレスに対するアクセスの許可を決定することを特徴とするプロセッサユニット。
  7. 前記プロセッサユニットのメモリは、複数のセグメントに分けられ、該複数のセグメントはさらにそれぞれ複数のページに分けられており、
    前記アドレス変換テーブルは、セグメント番号とページ番号の組み合わせを、前記アクセス元識別情報とを対応付けて格納したものであり、
    前記アクセスコマンドは、前記ブリッジにより、前記デバイス識別情報の一部からアクセス元識別情報と照合するための照合情報を得るとともに、他の部分をセグメント番号とページ番号に対応付けるようにして得られたものであることを特徴とする請求項6に記載のプロセッサユニット。
  8. プロセッサユニットと周辺デバイスとが、前記周辺デバイスの入出力バスを前記プロセッサユニットの入出力バスに中継するブリッジにより接続された情報処理装置におけるアクセス制御方法であって、
    前記周辺デバイスから、該プロセッサユニットのメモリにおいて該周辺デバイスに割り当てられたエリアの実効アドレスを指定しうるアクセス要求パケットであって、該周辺デバイスを一意に識別可能なデバイス識別情報を有するアクセス要求パケットを受け取るステップと、
    実効アドレスを物理アドレスに変換するためのアドレス変換テーブルであって、該プロセッサユニットのメモリにおいて各前記周辺デバイスにそれぞれ割り当てられたエリアの実効アドレスと、該実効アドレスに対するアクセスの許可が与えられたアクセス元を、該プロセッサユニットにおいて識別するために規定されたアクセス元識別情報とを対応付けて格納したテーブルを参照して、前記アクセス要求パケットに含まれるデバイス識別情報と、前記アドレス変換テーブルにおける、該アクセス要求パケットにより指定される実効アドレスに対応するアクセス元識別情報とが一致することを条件として、当該実効アドレスに対するアクセスの許可を決定するステップとを有することを特徴とするアクセス制御方法。
  9. 前記デバイス識別情報と前記アクセス元識別情報のビット数が異なる場合において、前記デバイス識別情報を前記アクセス元識別情報に対応付けるステップを更に備えることを特徴とする請求項8に記載のアクセス制御方法。
  10. 前記プロセッサユニットのメモリは、複数のセグメントに分けられ、該複数のセグメントはさらにそれぞれ複数のページに分けられており、
    前記アドレス変換テーブルは、セグメント番号とページ番号の組み合わせを、前記アクセス元識別情報とを対応付けて格納したものであり、
    前記デバイス識別情報を前記アクセス元識別情報に対応付けるステップは、前記デバイス識別情報の一部をアクセス元識別情報に対応付けるとともに、他の部分をセグメント番号とページ番号に対応付けるステップを含むことを特徴とする請求項9に記載のアクセス制御方法。
JP2007533803A 2006-04-06 2007-01-11 ブリッジ、プロセッサユニット、情報処理装置およびアクセス制御方法 Expired - Fee Related JP4219964B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2006105735 2006-04-06
JP2006105735 2006-04-06
JP2006121900 2006-04-26
JP2006121900 2006-04-26
PCT/JP2007/050265 WO2007129482A1 (ja) 2006-04-06 2007-01-11 ブリッジ、プロセッサユニット、情報処理装置およびアクセス制御方法

Publications (2)

Publication Number Publication Date
JP4219964B2 JP4219964B2 (ja) 2009-02-04
JPWO2007129482A1 true JPWO2007129482A1 (ja) 2009-09-17

Family

ID=38667594

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007533803A Expired - Fee Related JP4219964B2 (ja) 2006-04-06 2007-01-11 ブリッジ、プロセッサユニット、情報処理装置およびアクセス制御方法

Country Status (6)

Country Link
US (1) US8006000B2 (ja)
EP (1) EP1903443B1 (ja)
JP (1) JP4219964B2 (ja)
CN (1) CN101326501B (ja)
AT (1) ATE516547T1 (ja)
WO (1) WO2007129482A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016536720A (ja) * 2013-09-24 2016-11-24 インテル・コーポレーション セキュアなメモリの再パーティショニング

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007037117A1 (ja) * 2005-09-29 2007-04-05 Pioneer Corporation 中継装置及び中継方法、変換装置及び変換方法、中継処理用プログラム及び変換処理用プログラム並びに情報記録媒体
US7660912B2 (en) * 2006-10-18 2010-02-09 International Business Machines Corporation I/O adapter LPAR isolation in a hypertransport environment
JP4766498B2 (ja) * 2008-12-24 2011-09-07 株式会社ソニー・コンピュータエンタテインメント ユーザレベルdmaとメモリアクセス管理を提供する方法と装置
JP5228938B2 (ja) 2009-01-21 2013-07-03 ソニー株式会社 アクセスキー生成装置および情報処理装置
US8239663B2 (en) * 2009-05-30 2012-08-07 Lsi Corporation System and method for maintaining the security of memory contents and computer architecture employing the same
US8682639B2 (en) * 2010-09-21 2014-03-25 Texas Instruments Incorporated Dedicated memory window for emulation address
JP5541275B2 (ja) * 2011-12-28 2014-07-09 富士通株式会社 情報処理装置および不正アクセス防止方法
JP5703505B2 (ja) * 2012-10-15 2015-04-22 国立大学法人名古屋大学 バスパーティション構造を備えるコンピュータ
CN103019968B (zh) * 2012-12-31 2015-07-29 青岛海信移动通信技术股份有限公司 输入设备在输入处理实例中注册的控制方法及装置
US8924608B2 (en) 2013-06-25 2014-12-30 Airwatch Llc Peripheral device management
US9535857B2 (en) * 2013-06-25 2017-01-03 Airwatch Llc Autonomous device interaction
US9501222B2 (en) * 2014-05-09 2016-11-22 Micron Technology, Inc. Protection zones in virtualized physical addresses for reconfigurable memory systems using a memory abstraction
US9720868B2 (en) 2014-07-07 2017-08-01 Xilinx, Inc. Bridging inter-bus communications
CN107105975A (zh) * 2014-12-26 2017-08-29 奥林巴斯株式会社 内窥镜系统
JP6406027B2 (ja) * 2015-01-20 2018-10-17 富士通株式会社 情報処理システム、情報処理装置、メモリアクセス制御方法
US10025727B2 (en) * 2016-02-05 2018-07-17 Honeywell International Inc. Relay mechanism to facilitate processor communication with inaccessible input/output (I/O) device
US10324858B2 (en) 2017-06-12 2019-06-18 Arm Limited Access control
US11609845B2 (en) * 2019-05-28 2023-03-21 Oracle International Corporation Configurable memory device connected to a microprocessor
US11086806B2 (en) * 2019-06-03 2021-08-10 Smart IOPS, Inc. Memory access system to access abstracted memory
JP7363344B2 (ja) * 2019-10-15 2023-10-18 オムロン株式会社 メモリ制御装置、および制御方法
US11782610B2 (en) * 2020-01-30 2023-10-10 Seagate Technology Llc Write and compare only data storage

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57189384A (en) * 1981-05-14 1982-11-20 Toshiba Corp Information processor
JPS62115554A (ja) * 1985-11-15 1987-05-27 Fujitsu Ltd マルチプロセツサシステムにおける記憶保護方式
JPH04130553A (ja) * 1990-09-20 1992-05-01 Matsushita Electric Ind Co Ltd 電子計算機
US5890220A (en) 1991-02-05 1999-03-30 Hitachi, Ltd. Address conversion apparatus accessible to both I/O devices and processor and having a reduced number of index buffers
JP3124778B2 (ja) * 1991-02-05 2001-01-15 株式会社日立製作所 アドレス変換装置
DE4402903A1 (de) 1994-02-02 1995-08-03 Deutsche Telekom Mobil Verfahren zur paketweisen Datenübertragung in einem Mobilfunknetz
JP3264319B2 (ja) 1997-06-30 2002-03-11 日本電気株式会社 バスブリッジ
US6839777B1 (en) * 2000-09-11 2005-01-04 National Instruments Corporation System and method for transferring data over a communication medium using data transfer links
US6578122B2 (en) * 2001-03-01 2003-06-10 International Business Machines Corporation Using an access key to protect and point to regions in windows for infiniband
US6526491B2 (en) * 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US6775750B2 (en) * 2001-06-29 2004-08-10 Texas Instruments Incorporated System protection map
JP4130553B2 (ja) 2002-05-20 2008-08-06 日立工機株式会社 汎用充電装置及び汎用充電装置の充電法
JP2005242598A (ja) * 2004-02-26 2005-09-08 Sony Corp 情報処理システム及び情報処理方法、並びにコンピュータ・プログラム
US7451249B2 (en) * 2005-03-21 2008-11-11 Hewlett-Packard Development Company, L.P. Method and apparatus for direct input and output in a virtual machine environment containing a guest operating system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016536720A (ja) * 2013-09-24 2016-11-24 インテル・コーポレーション セキュアなメモリの再パーティショニング

Also Published As

Publication number Publication date
US20090216921A1 (en) 2009-08-27
ATE516547T1 (de) 2011-07-15
US8006000B2 (en) 2011-08-23
EP1903443B1 (en) 2011-07-13
EP1903443A1 (en) 2008-03-26
JP4219964B2 (ja) 2009-02-04
EP1903443A4 (en) 2009-03-04
WO2007129482A1 (ja) 2007-11-15
CN101326501B (zh) 2010-12-15
CN101326501A (zh) 2008-12-17

Similar Documents

Publication Publication Date Title
JP4219964B2 (ja) ブリッジ、プロセッサユニット、情報処理装置およびアクセス制御方法
JP4469010B2 (ja) ブリッジ、情報処理システムおよびアクセス制御方法
US8250254B2 (en) Offloading input/output (I/O) virtualization operations to a processor
US6345347B1 (en) Address protection using a hardware-defined application key
EP0497600B1 (en) Memory access method and apparatus
JP4945053B2 (ja) 半導体装置、バスインターフェース装置、およびコンピュータシステム
CN115292214A (zh) 页表预测方法、存储访问操作方法、电子装置和电子设备
WO2007080718A1 (ja) ブリッジ、情報処理装置、情報処理システムおよびグローバルアドレス管理方法
JP4656347B2 (ja) コンピュータ・システム
US11150928B2 (en) Hypervisor translation bypass
JP2001333137A (ja) 自主動作通信制御装置及び自主動作通信制御方法
CN114116524A (zh) 一种创建安全页表及访问内存的方法及装置
JP2001051958A (ja) 多重プロセッサ多成分アーキテクチャのための統一メモリ管理システム
JPH07281947A (ja) 入出力アドレス用変換装置
US10481951B2 (en) Multi-queue device assignment for application groups
JP5074697B2 (ja) ブリッジ、情報処理装置およびアクセス制御方法
JPS6237752A (ja) 別々の命令及びデ−タインタ−フエ−ス及びキヤツシユを持つたマイクロプロセサを有するマルチプルバスシステム
JP2014119787A (ja) プロセッサ
RU2005115088A (ru) Управление доступом устройства к памяти
US20110072246A1 (en) Node control device interposed between processor node and io node in information processing system
US20240211299A1 (en) Technique for handling request transfers from a peripheral device in a communication network
JP2008123333A5 (ja)
JP3256558B2 (ja) 電子計算機におけるアドレス変換方式
WO2016114144A1 (ja) 計算機、デバイス制御システムおよびデバイス制御方法
JPH1078941A (ja) 並列計算機

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081111

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081112

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4219964

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131121

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070823

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees