JP5228938B2 - アクセスキー生成装置および情報処理装置 - Google Patents

アクセスキー生成装置および情報処理装置 Download PDF

Info

Publication number
JP5228938B2
JP5228938B2 JP2009010488A JP2009010488A JP5228938B2 JP 5228938 B2 JP5228938 B2 JP 5228938B2 JP 2009010488 A JP2009010488 A JP 2009010488A JP 2009010488 A JP2009010488 A JP 2009010488A JP 5228938 B2 JP5228938 B2 JP 5228938B2
Authority
JP
Japan
Prior art keywords
access key
bus number
access
shortened
conversion
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.)
Expired - Fee Related
Application number
JP2009010488A
Other languages
English (en)
Other versions
JP2010170237A (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 Corp
Original Assignee
Sony Corp
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 filed Critical Sony Corp
Priority to JP2009010488A priority Critical patent/JP5228938B2/ja
Priority to US12/690,505 priority patent/US8312295B2/en
Priority to CN2010100026395A priority patent/CN101782874B/zh
Publication of JP2010170237A publication Critical patent/JP2010170237A/ja
Application granted granted Critical
Publication of JP5228938B2 publication Critical patent/JP5228938B2/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

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)

Description

本発明は、アクセスキー生成装置に関し、特に周辺デバイスからのメモリアクセスを制御するために必要なアクセスキーを生成するアクセスキー生成装置および情報処理装置に関する。
入出力アドレスがプロセッサの物理メモリにマッピングされるシステムにおいて、周辺デバイスからメモリへアクセスする際、何の制限も設けないとすると、悪意のあるユーザソフトウェアにより、不正なアドレス領域にアクセスされてしまうことが起こり得る。例えば、DMAC(ダイレクト・メモリ・アクセス・コントローラ)を無制限にユーザソフトウェアに開放した場合に、そのような問題が生じ得る。この問題に対して、例えばプロセッサCell(セル:Cell Broadband Engine)では、周辺デバイスが有する11ビットのアクセスキーとその周辺デバイスがアクセス可能なアドレス領域とをペアにしたアドレス変換テーブルが設けられている。このアドレス変換テーブルは特権ソフトウェアにより設定されるため、特権ソフトウェアによって許可されていないアドレス領域には周辺デバイスがアクセスできないように制御される。
しかし、このような制御を一般的なバスシステムにおいて実現しようとすると以下のような問題が生じる。すなわち、例えば、PCI(Peripheral Component Interconnect)バスを用いたシステムで利用することを想定した場合、システム内のデバイスを個別に識別するデバイス識別子は16ビットであるため、11ビットのアクセスキーではビット長が不足してしまう。
これに対して、周辺デバイスのデバイス識別子をアクセスキーおよびアドレスの一部として割り当てる技術が知られている。例えば、デバイス識別子の下位11ビットをアクセスキーとして利用し、上位5ビットをセグメント番号およびページ番号に対応付けることによりアクセスの許否を決定する情報処理装置が提案されている(例えば、特許文献1参照。)。
国際公開第2007/129482号パンフレット(第7乃至9頁)
上述の従来技術によれば、デバイス識別子とアクセスキーとの間のビット数の不一致を調整することが可能となる。しかしながら、この従来技術では、アクセスキーのビット長からはみ出したデバイス識別子をアドレスの一部に割り当てるため、周辺デバイスから使用可能なアドレスが制限されるという問題がある。また、ソフトウェアにより自由に設定することができないデバイス識別子の一部がアドレスとなるため、特権ソフトウェアによって設定されるアドレス変換テーブルが複雑になるおそれがある。さらに、デバイス識別子とアクセスキーとの間の関係が固定されてしまい、異なるデバイス識別子を有する複数の周辺デバイスに対して同じキーを与えることが困難になる。
本発明はこのような状況に鑑みてなされたものであり、周辺デバイスから使用可能なアドレスを制限することなく、デバイス識別子とアクセスキーとを対応させることを目的とする。
本発明は、上記課題を解決するためになされたものであり、その第1の側面は、周辺デバイスのデバイス識別子を表すビットフィールドの一部である部分ビットフィールドを上記部分ビットフィールドよりもビット幅の短い短縮ビットフィールドに変換するビットフィールド変換部と、上記周辺デバイスからメモリへのアクセスを制御するためのアクセスキーを上記周辺デバイスの各々に対応して複数保持するアクセスキー保持部と、上記短縮ビットフィールドへの変換が成功した場合には上記短縮ビットフィールドを含むインデックスアドレスを用いて上記アクセスキー保持部から上記アクセスキーを索引し、上記短縮ビットフィールドへの変換が失敗した場合には上記部分ビットフィールドを含むインデックスアドレスを用いて上記アクセスキー保持部から上記アクセスキーを索引する索引部とを具備するアクセスキー生成装置である。これにより、周辺デバイスのデバイス識別子に基づいてアクセスキーを索引するという作用をもたらす。
また、本発明の第2の側面は、周辺デバイスのデバイス識別子を表すビットフィールドの一部であるバス番号を上記バス番号よりもビット幅の短い短縮バス番号に変換するバス番号変換部と、上記周辺デバイスからメモリへのアクセスを制御するためのアクセスキーを上記周辺デバイスの各々に対応して複数保持するアクセスキー保持部と、上記短縮バス番号への変換が成功した場合には上記短縮バス番号を含むインデックスアドレスを用いて上記アクセスキー保持部から上記アクセスキーを索引し、上記短縮バス番号への変換が失敗した場合には上記バス番号を含むインデックスアドレスを用いて上記アクセスキー保持部から上記アクセスキーを索引する索引部とを具備するアクセスキー生成装置である。これにより、周辺デバイスのデバイス識別子に基づいてアクセスキーを索引するという作用をもたらす。
また、この第2の側面において、上記デバイス識別子は、上記バス番号とデバイス番号とを含み、上記索引部は、上記短縮バス番号への変換が成功した場合には上記短縮バス番号と上記デバイス番号とを含むインデックスアドレスを用いて上記アクセスキー保持部から上記アクセスキーを索引し、上記短縮バス番号への変換が失敗した場合には上記バス番号を含むインデックスアドレスを用いて上記アクセスキー保持部から上記アクセスキーを索引するようにしてもよい。これにより、バスの種類に応じたインデックスアドレスによりアクセスキーを索引するという作用をもたらす。
また、この第2の側面において、上記デバイス識別子は、上記バス番号とデバイス番号と機能番号とからなり、上記索引部は、上記短縮バス番号への変換が成功した場合には上記短縮バス番号と上記デバイス番号と上記機能番号とから特定される上記アクセスキー保持部の領域から上記アクセスキーを索引し、上記短縮バス番号への変換が失敗した場合には上記バス番号と上記機能番号とから特定される上記アクセスキー保持部の領域から上記アクセスキーを索引するようにしてもよい。これにより、機能番号を含むデバイス識別子に基づいてアクセスキーを索引するという作用をもたらす。
また、この第2の側面において、上記バス番号変換部は、上記バス番号を保持するエントリを複数備え、上記エントリの何れかに変換対象となるバス番号が保持されている場合には上記短縮バス番号への変換が成功したものとして当該エントリに固有に付与された番号を上記短縮バス番号として出力し、上記エントリの何れにも変換対象となるバス番号が保持されていない場合には上記短縮バス番号への変換が失敗したものとするように構成してもよい。これにより、保持されたバス番号に応じて短縮バス番号への変換を試みるという作用をもたらす。
また、本発明の第3の側面は、周辺デバイスのデバイス識別子を表すビットフィールドの一部である部分ビットフィールドを上記部分ビットフィールドよりもビット幅の短い短縮ビットフィールドに変換するビットフィールド変換部と、上記周辺デバイスからメモリへのアクセスを制御するためのアクセスキーを上記周辺デバイスの各々に対応して複数保持するアクセスキー保持部と、上記短縮ビットフィールドへの変換が成功した場合には上記短縮ビットフィールドを含むインデックスアドレスを用いて上記アクセスキー保持部から上記アクセスキーを索引し、上記短縮ビットフィールドへの変換が失敗した場合には上記部分ビットフィールドを含むインデックスアドレスを用いて上記アクセスキー保持部から上記アクセスキーを索引する索引部と、上記索引されたアクセスキーを用いて上記メモリへのアクセスを制御するメモリアクセス制御部とを具備する情報処理装置である。これにより、周辺デバイスのデバイス識別子に基づいてアクセスキーを索引するという作用をもたらす。
また、本発明の第4の側面は、周辺デバイスのデバイス識別子を表すビットフィールドの一部であるバス番号を上記バス番号よりもビット幅の短い短縮バス番号に変換するバス番号変換部と、上記周辺デバイスからメモリへのアクセスを制御するためのアクセスキーを上記周辺デバイスの各々に対応して複数保持するアクセスキー保持部と、上記短縮バス番号への変換が成功した場合には上記短縮バス番号を含むインデックスアドレスを用いて上記アクセスキー保持部から上記アクセスキーを索引し、上記短縮バス番号への変換が失敗した場合には上記バス番号を含むインデックスアドレスを用いて上記アクセスキー保持部から上記アクセスキーを索引する索引部と、上記索引されたアクセスキーを用いて上記メモリへのアクセスを制御するメモリアクセス制御部とを具備する情報処理装置である。これにより、周辺デバイスのデバイス識別子に基づいてアクセスキーを索引するという作用をもたらす。
本発明によれば、周辺デバイスから使用可能なアドレスを制限することなく、デバイス識別子とアクセスキーとを対応させることができるという優れた効果を奏し得る。
本発明の第1の実施の形態における情報処理システムの全体構成例を示す図である。 本発明の第1の実施の形態におけるホストブリッジ装置100の一構成例を示す図である。 PCIデバイスおよびPCIeデバイスを識別するための入出力デバイス識別子710のフィールド構成を示す図である。 プロセッサCellにおける入出力アドレスの変換機構を示す図である。 IOPTエントリ610のフィールド構成を示す図である。 本発明の第1の実施の形態におけるアクセスキー生成部120の一構成例を示す図である。 本発明の第1の実施の形態におけるバス番号テーブル121の一構成例を示す図である。 本発明の第1の実施の形態におけるアクセスキーメモリ123の一構成例を示す図である。 本発明の第2の実施の形態におけるアクセスキー生成部520の一構成例を示す図である。
以下、本発明を実施するための最良の形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(PCIデバイスおよびPCI−Expressデバイスが混在する情報処理システムにおける実現例)
2.第2の実施の形態(一般的な情報処理システムにおける実現例)
<1.第1の実施の形態>
[情報処理システムの全体構成例]
図1は、本発明の第1の実施の形態における情報処理システムの全体構成例を示す図である。この情報処理システムでは、PCIデバイス321乃至328とPCI−Express(以下、PCIeと省略する。)デバイス311乃至316とが混在しており、ホストブリッジ装置100を介してプロセッサシステム200に接続している。プロセッサシステム200は、ホストプロセッサ210およびホストメモリ220などをプロセッサバス290により接続することにより構成される。ホストプロセッサ210は、この情報処理システムの全体を制御するプロセッサである。ホストメモリ220は、ホストプロセッサ210の動作に必要なプログラムや作業領域などを保持するメモリである。プロセッサバス290には、ホストブリッジ装置100が接続される。なお、ホストプロセッサ210は、特許請求の範囲に記載のメモリアクセス制御部の一例であり、ここではCellを想定している。
ホストブリッジ装置100は、プロセッサシステム200とPCIeバスとの間の橋渡しを実現するブリッジである。このホストブリッジ装置100は、プロセッサバス290によりプロセッサシステム200に接続する。また、このホストブリッジ装置100は、以下に説明するようにスイッチや他のブリッジを介してPCIデバイス321乃至328およびPCIeデバイス311乃至316に接続する。
この例では、ホストブリッジ装置100のデバイス側には、バス#1(401)および#10(410)を介してスイッチ421および423が接続されている。スイッチ421には、さらにバス#3(403)、#4(404)および#5(405)を介してPCIeデバイス311、312およびスイッチ422が接続されている。スイッチ421乃至423は、PCIeバスを分岐させるものである。スイッチ422には、さらにバス#7(407)、#8(408)および#9(409)を介してPCIeデバイス313乃至315が接続されている。スイッチ423には、さらにバス#12(412)、#13(413)および#15(415)を介してPCIeデバイス316、PCIブリッジ424および425が接続されている。PCIブリッジ424および425は、PCIeバスとPCIバスとの間の橋渡しを実現するブリッジである。PCIブリッジ424には、さらにバス#14(414)を介してPCIスロットが設けられており、PCIデバイス321乃至324が接続されている。PCIブリッジ425には、さらにバス#16(416)を介してPCIスロットが設けられており、PCIデバイス325乃至328が接続されている。
PCIデバイスは、1つのPCIバス上に複数のPCIスロットを介して接続する形態が一般的である。一方、PCIeデバイスでは、ポイント・ツゥ・ポイント(Point-to-Point)接続方式が採用されており、1つのPCIeバスには1つのPCIeデバイスのみが接続される。
[ホストブリッジ装置100の構成例]
図2は、本発明の第1の実施の形態におけるホストブリッジ装置100の一構成例を示す図である。このホストブリッジ装置100は入出力インターフェースコントローラ101と、スイッチ102と、PCIeコントローラ103乃至105と、内部ブリッジ106と、周辺バス190とを備えている。
入出力インターフェースコントローラ101は、プロセッサシステム200のプロセッサバス290との間のインターフェースである。スイッチ102は、入出力インターフェースコントローラ101側の1つのポートを複数に分岐させるためのものである。ここでは、3つのPCIeコントローラ103乃至105と内部ブリッジ106の計4つのポートに分岐することを想定している。また、スイッチ102は、アクセスキー生成部120を有しており、PCIデバイスまたはPCIeデバイスからの入出力デバイス識別子に基づいてアクセスキーを生成して、入出力インターフェースコントローラ101に供給する。
スイッチ102のポートに接続するPCIeコントローラ103乃至105は、PCIeバスを制御するものである。ここでは、PCIeコントローラ103にはバス#1が接続され、PCIeコントローラ104にはバス#10が接続され、PCIeコントローラ105には何も接続されていないことを想定している。
スイッチ102のもう一つのポートには内部ブリッジ106が接続されている。この内部ブリッジ106は、PCIeバスとPCIバスとの間の橋渡しを実現するブリッジであり、PCIバスとして周辺バス190に接続する。この周辺バス190は、周辺デバイスに接続するためのバスであり、ここではタイマー191、シリアルインターフェースUART(Universal Asynchronous Receiver Transmitter)192およびPCIデバイス193などを接続できるようになっている。
[入出力デバイス識別子710のフィールド構成]
図3は、PCIデバイスおよびPCIeデバイスを識別するための入出力デバイス識別子710のフィールド構成を示す図である。この入出力デバイス識別子710は、8ビットのバス番号711、5ビットのデバイス番号712、および、3ビットの機能番号713の各フィールドから構成される。この入出力デバイス識別子710は、システム構成に応じて決定される値であり、一般ユーザのソフトウェアによって自由に設定することはできないようになっている。
バス番号711は、そのデバイスが直接的に接続されるPCIバスまたはPCIeバスの番号である。例えば、図1の例では、バス401には#1がバス番号として付与されている。
デバイス番号712は、そのデバイスが直接的に接続されるPCIバスまたはPCIeバスにおけるデバイス番号である。上述のように、PCIバスでは、1つのバスに対して複数のPCIスロットを介して複数のPCIデバイスが接続できるようになっており、1つのバス番号毎に複数のデバイス番号が付与されるようになっている。一方、PCIeバスでは、1つのPCIeバスには1つのPCIeデバイスのみが接続されるため、1つのバス番号に対して1つのデバイス番号のみ付与される。
機能番号713は、そのデバイスが備える各機能に対して付与される番号である。例えば、入出力コントローラハブ(I/O controller hub)は、複数のインターフェースを接続できるように設計される。すなわち、1つのPCIデバイスとして、例えば、LPC(Low Pin Count)コントローラ、IDE(Integrated Drive Electronics)コントローラおよびSATA(Serial Advanced Technology Attachment)コントローラの各機能を有する。この場合、この入出力コントローラハブは、3つの機能番号#0乃至#2を付与することによって、デバイス内の各機能を識別する。
このように、PCIデバイスおよびPCIeデバイスを識別するための入出力デバイス識別子は16ビット構成となっている。一方、プロセッサCellのアクセスキーは11ビットを想定しているため、入出力デバイス識別子をそのままアクセスキーとして利用することができない。そこで、本発明の実施の形態では、入出力デバイス識別子のビット幅を短縮するように変換することにより、アクセスキーとして利用できるようにする。
なお、入出力デバイス識別子710は、特許請求の範囲に記載のデバイス識別子の一例である。
[入出力アドレスの変換機構]
図4は、プロセッサCellにおける入出力アドレスの変換機構を示す図である。ホストブリッジ装置100から供給された入出力アドレスは42ビット幅を有しており、上位14ビットがセグメント番号を示す。セグメント番号の下位にはページ番号が割り当てられ、そのさらに下位はオフセットとなる。ページサイズが4KBの場合、ページ番号は16ビット、オフセット番号は12ビットとなる。ページサイズが64KBの場合、ページ番号は12ビット、オフセットは16ビットとなる。ページサイズが1MBの場合、ページ番号は8ビット、オフセット番号は20ビットとなる。ページサイズが16MBの場合、ページ番号は4ビット、オフセットは24ビットとなる。
各セグメントの属性を保持する入出力セグメントテーブル(IOST:I/O Segment Table)、および、各ページの属性を保持する入出力ページテーブル(IOPT:I/O Page Table)600は、ホストメモリ220の実アドレス空間に配置される。
入出力セグメントテーブルのベースアドレスにセグメント番号を加算することにより、目的のIOSTエントリにアクセスすることができるようになっている。IOSTエントリには入出力ページテーブル600のベース番号が保持されており、ページ番号を加算することにより、目的のIOPTエントリ610にアクセスすることができるようになっている。
図5は、IOPTエントリ610のフィールド構成を示す図である。このIOPTエントリ610において、第0および1ビット目の2ビットは、ページ保護611を示すフィールドである。このページ保護611は、「00」であれば対応するページへのアクセスはできないことを意味する。「01」であれば対応するページは読出しのみが許可されることを意味する。「10」であれば対応するページは書込みのみが許可されることを意味する。「11」であれば対応するページは読出しおよび書込みの両者が許可されることを意味する。
第2ビット目は、メモリコヒーレンスが必要か否かを示すコヒーレンス612のフィールドである。第3および4ビット目の2ビットは、記憶順序(Storage Ordering)613を示すフィールドである。「00」であれば対応するページへの書込みの前に、先行する読出しおよび書込みの完了は不要であることを意味する。「10」であれば対応するページへの書込みの前に、先行する書込みの完了が必要であることを意味する。「11」であれば対応するページからの読出しまたは書込みの前に、先行する読出しおよび書込みの完了が必要であることを意味する。
第5乃至51ビット目の47ビットは、対応するページの実ページ番号614を示すフィールドである。ただし、入出力アドレスとしては42ビット幅を有することを想定しており、ページサイズに応じて適宜LSB側にゼロ値が設定される。
第52ビット目は、ヒント615を示すフィールドである。このヒント615はIOPTのキャッシュのエントリを維持するか否かのヒントとなる値が保持される。
第53乃至63ビット目の11ビットは、対応するページのアクセスキー616を示すフィールドである。このアクセスキー616は、ホストブリッジ装置100から供給されたアクセスキーと比較され、一致する場合のみ当該ページに対するアクセスが許可されるようにホストプロセッサ210によって制御される。
[アクセスキー生成部120の構成例]
図6は、本発明の第1の実施の形態におけるアクセスキー生成部120の一構成例を示す図である。このアクセスキー生成部120は、PCIデバイスまたはPCIeデバイスから入出力デバイス識別子710を受け取ると、上位8ビットのバス番号711をバス番号テーブル121から検索する。バス番号テーブル121は、後述するように各エントリに保持されたバス番号の中からバス番号711に一致するエントリを検索する機能を有する。選択器122は、信号線125の内容に従って、信号線126または127の何れか一方の出力を選択して、アクセスインデックスとして信号線128に出力するものである。アクセスキーメモリ123は、11ビット幅のアクセスキーを「2の12乗」個分記憶するメモリである。
バス番号テーブル121においてバス番号711が一致するエントリが存在する場合には、その格納位置がバスインデックスとして信号線124を介して出力される。バス番号テーブル121における総エントリ数を8個と仮定すると、バスインデックスは3ビットあれば足りることになる。また、一致するエントリが存在するか否かは、ヒット/ミス信号として、信号線125を介して出力される。一致するエントリが存在する場合には信号線125にはヒット信号が出力され、一致するエントリが存在しない場合には信号線125にはミス信号が出力される。
バス番号テーブル121においてバス番号711が一致するエントリが存在する場合には、値「1」を示すデータ739に続いて、3ビットのデータ731と、5ビットのデータ732と、3ビットのデータ733とがアクセスインデックスとなる。ここで、バス番号テーブル121からの3ビットがデータ731、デバイス番号712の5ビットがデータ732、機能番号713の3ビットがデータ733にそれぞれ設定されて、信号線127に出力される。すなわち、一致するエントリが存在する場合には、選択器122は信号線125の信号がヒット信号であるため、信号線127の出力を選択して、信号線128に出力する。
バス番号テーブル121においてバス番号711が一致するエントリが存在しない場合には、値「0」を示すデータ729に続いて、8ビットのデータ721と、3ビットのデータ723とがアクセスインデックスとなる。ここで、バス番号711の8ビットがデータ721、機能番号713の3ビットがデータ723にそれぞれ設定されて、信号線126に出力される。すなわち、一致するエントリが存在しない場合には、選択器122は信号線125の信号がミス信号であるため、信号線126の出力を選択して、信号線128に出力する。
アクセスキーメモリ123は、信号線128を介してアクセスインデックスが供給されると、そのアクセスインデックスにより記憶内容を索引して、アクセスキーを信号線129に出力する。これにより、16ビットの入出力デバイス識別子710から11ビットのアクセスキーが生成されたことになる。すなわち、PCIeデバイスの場合には1つのバスに対して1つのデバイスのみが対応するため、バス番号および機能番号をアクセスインデックスとしてアクセスキーを生成する。一方、PCIデバイスの場合には1つのバスに対して複数のデバイスが存在し得るためデバイス番号をアクセスインデックスに含ませるが、バス番号は高々8程度で足りると想定して、バス番号を短縮して扱う。そのため、バス番号テーブル121を用いて8ビットのバス番号を3ビットのバスインデックスに変換している。
なお、バス番号テーブル121は、特許請求の範囲に記載のビットフィールド変換部またはバス番号変換部の一例である。また、アクセスキーメモリ123は、特許請求の範囲に記載のアクセスキー保持部の一例である。また、選択器122は、特許請求の範囲に記載の索引部の一例である。
[バス番号テーブル121の構成例]
図7は、本発明の第1の実施の形態におけるバス番号テーブル121の一構成例を示す図である。このバス番号テーブル121は、8エントリのバス番号保持部1211と、8つの比較器1212と、エンコーダ1213と、論理和回路1214とを備えている。
バス番号保持部1211は、バス番号を各エントリに保持するものである。このバス番号保持部1211の各エントリのバス番号は、システムの立上げ時等にオペレーティングシステムの特権ソフトウェア等によって予め設定されていることを想定する。比較器1212は、バス番号保持部1211の各エントリに保持されたバス番号と、入出力デバイス識別子710のバス番号711とを比較して、一致を検出する比較器である。エンコーダ1213は、比較器1212から出力された計8ビットの信号をエンコードして、3ビットのバスインデックスとして信号線124に出力するものである。論理和回路1214は、比較器1212から出力された計8ビットの信号の論理和を生成して、ヒット/ミス信号として信号線125に出力するものである。
このような構成により、バス番号711と一致するエントリの番号がバスインデックスとして信号線124に出力され、バス番号711と一致するエントリの有無がヒット/ミス信号として信号線125に出力される。バス番号テーブル121は、このような機能を有するものであるが、他の構成例により実現してもよい。例えば、既存の連想メモリ(CAM:Content Addressable Memory)を用いて、バス番号を検索できるように構成しても構わない。
[アクセスキーメモリ123の構成例]
図8は、本発明の第1の実施の形態におけるアクセスキーメモリ123の一構成例を示す図である。このアクセスキーメモリ123は、11ビット幅のアクセスキーを「2の12乗」個分記憶している。そのうち、前半の「2の11乗」個のアクセスキーはPCIeデバイス用のアクセスキーであり、後半の「2の11乗」個のアクセスキーはPCIデバイス用のアクセスキーである。
すなわち、選択器122から出力されるアクセスインデックスが「000000000000」から「011111111111」の範囲であればPCIe用のアクセスキーが読み出される。一方、選択器122から出力されるアクセスインデックスが「100000000000」から「111111111111」の範囲であればPCI用のアクセスキーが読み出される。
このアクセスキーメモリ123は、11ビット幅のアクセスキーを「2の12乗」個分記憶するため、11ビット×212語=44Kビットの容量となる。
[第1の実施の形態による効果]
このように、本発明の第1の実施の形態によれば、16ビットの入出力デバイス識別子に基づいて11ビットのアクセスキーを生成することができる。この第1の実施の形態では、PCIバスおよびPCIeバスのそれぞれ特徴を利用することにより、周辺デバイスから使用可能なアドレスを不当に制限することなくアクセスキーを生成する。また、複数のデバイスを1つのグループとして、同じアクセスキーを割り当てることも可能となる。
ここで、テーブル変換方式により16ビットから11ビットへの変換を行った場合のメモリ容量と比較する。16ビットの入出力デバイス識別子と11ビットのアクセスキーとの対応テーブルを設けた場合には、11ビット×216語=704Kビットの容量となる。これに対し、本発明の第1の実施の形態によれば、上述のように44Kビットの容量となり、テーブル変換方式の16分の1のメモリ容量によりアクセスキーを生成することができる。
<2.第2の実施の形態>
上述の第1の実施の形態においては、PCIデバイスおよびPCI−Expressデバイスが混在する情報処理システムにおける実現例について示したが、本発明は一般的な情報処理システムにおいても適用可能である。ここでは、一般的な情報処理システムに適用した場合のアクセスキー生成部120の構成例について説明する。
[アクセスキー生成部120の構成例]
図9は、本発明の第2の実施の形態におけるアクセスキー生成部520の一構成例を示す図である。このアクセスキー生成部520は、nビット(nは整数)の識別子810を入力とする。このnビットの識別子810は、上位naビット(naは整数)のデータa811と、続くnbビット(nbは整数)のデータb812と、下位ncビット(ncは整数)のデータc813とから構成される。nビットのデータが入力されると、データa811がテーブル521から検索される。テーブル521は、各エントリに保持されたデータの中からデータa811に一致するエントリを検索する機能を有する。選択器522は、信号線525の内容に従って、信号線526または527の何れか一方の出力を選択して、アクセスインデックスとして信号線528に出力するものである。アクセスキーメモリ523は、mビット幅(mは整数、m<n)のアクセスキーを「2の(na+nc+1)乗」個分記憶するメモリである。
テーブル521においてデータa811が一致するエントリが存在する場合には、その格納位置がインデックスとして信号線524を介して出力される。テーブル521における総エントリ数を「2のp乗」個と仮定すると、バスインデックスはpビット(p=na−nb:整数)あれば足りることになる。また、一致するエントリが存在するか否かは、ヒット/ミス信号として、信号線525を介して出力される。一致するエントリが存在する場合には信号線525にはヒット信号が出力され、一致するエントリが存在しない場合には信号線525にはミス信号が出力される。
テーブル521においてデータa811が一致するエントリが存在する場合には、値「1」を示すデータ839に続いて、pビットのデータ831と、nbビットのデータ832と、ncビットのデータ833とがアクセスインデックスとなる。ここで、テーブル521からのpビットがデータ831、データb812のnbビットがデータ832、データc813のncビットがデータ833にそれぞれ設定されて、信号線527に出力される。すなわち、一致するエントリが存在する場合には、選択器522は信号線525の信号がヒット信号であるため、信号線527の出力を選択して、信号線528に出力する。
テーブル521においてデータa811が一致するエントリが存在しない場合には、値「0」を示すデータ829に続いて、naビットのデータ821と、ncビットのデータ823とがアクセスインデックスとなる。ここで、データa811のnaビットがデータ821、データc813のncビットがデータ823にそれぞれ設定されて、信号線526に出力される。すなわち、一致するエントリが存在しない場合には、選択器522は信号線525の信号がミス信号であるため、信号線526の出力を選択して、信号線528に出力する。
アクセスキーメモリ523は、信号線528を介してアクセスインデックスが供給されると、そのアクセスインデックスにより記憶内容を索引して、アクセスキーを信号線529に出力する。これにより、nビットの識別子810からmビットのアクセスキーが生成されたことになる。
このように、本発明の第2の実施の形態によれば、nビットの識別子に基づいてmビットのアクセスキー(n>m)を生成することができる。
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、上述のように特許請求の範囲における発明特定事項とそれぞれ対応関係を有する。ただし、本発明は実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形を施すことができる。
100 ホストブリッジ装置
101 入出力インターフェースコントローラ
102 スイッチ
103〜105 PCIeコントローラ
106 内部ブリッジ
120 アクセスキー生成部
121 バス番号テーブル
122 選択器
123 アクセスキーメモリ
190 周辺バス
191 タイマー
192 UART
193 PCIデバイス
200 プロセッサシステム
210 ホストプロセッサ
220 ホストメモリ
290 プロセッサバス
311〜316 PCIeデバイス
321〜328 PCIデバイス
401〜416 バス
421〜423 スイッチ
424、425 PCIブリッジ
520 アクセスキー生成部
521 テーブル
522 選択器
523 アクセスキーメモリ
600 入出力ページテーブル(IOPT)
610 IOPTエントリ
710 入出力デバイス識別子
711 バス番号
712 デバイス番号
713 機能番号
810 識別子
1211 バス番号保持部
1212 比較器
1213 エンコーダ
1214 論理和回路

Claims (7)

  1. 周辺デバイスのデバイス識別子を表すビットフィールドの一部である部分ビットフィールドを前記部分ビットフィールドよりもビット幅の短い短縮ビットフィールドに変換するビットフィールド変換部と、
    前記周辺デバイスからメモリへのアクセスを制御するためのアクセスキーを前記周辺デバイスの各々に対応して複数保持するアクセスキー保持部と、
    前記短縮ビットフィールドへの変換が成功した場合には前記短縮ビットフィールドを含むインデックスアドレスを用いて前記アクセスキー保持部から前記アクセスキーを索引し、前記短縮ビットフィールドへの変換が失敗した場合には前記部分ビットフィールドを含むインデックスアドレスを用いて前記アクセスキー保持部から前記アクセスキーを索引する索引部と
    を具備するアクセスキー生成装置。
  2. 周辺デバイスのデバイス識別子を表すビットフィールドの一部であるバス番号を前記バス番号よりもビット幅の短い短縮バス番号に変換するバス番号変換部と、
    前記周辺デバイスからメモリへのアクセスを制御するためのアクセスキーを前記周辺デバイスの各々に対応して複数保持するアクセスキー保持部と、
    前記短縮バス番号への変換が成功した場合には前記短縮バス番号を含むインデックスアドレスを用いて前記アクセスキー保持部から前記アクセスキーを索引し、前記短縮バス番号への変換が失敗した場合には前記バス番号を含むインデックスアドレスを用いて前記アクセスキー保持部から前記アクセスキーを索引する索引部と
    を具備するアクセスキー生成装置。
  3. 前記デバイス識別子は、前記バス番号とデバイス番号とを含み、
    前記索引部は、前記短縮バス番号への変換が成功した場合には前記短縮バス番号と前記デバイス番号とを含むインデックスアドレスを用いて前記アクセスキー保持部から前記アクセスキーを索引し、前記短縮バス番号への変換が失敗した場合には前記バス番号を含むインデックスアドレスを用いて前記アクセスキー保持部から前記アクセスキーを索引する
    請求項2記載のアクセスキー生成装置。
  4. 前記デバイス識別子は、前記バス番号とデバイス番号と機能番号とからなり、
    前記索引部は、前記短縮バス番号への変換が成功した場合には前記短縮バス番号と前記デバイス番号と前記機能番号とから特定される前記アクセスキー保持部の領域から前記アクセスキーを索引し、前記短縮バス番号への変換が失敗した場合には前記バス番号と前記機能番号とから特定される前記アクセスキー保持部の領域から前記アクセスキーを索引する
    請求項2記載のアクセスキー生成装置。
  5. 前記バス番号変換部は、前記バス番号を保持するエントリを複数備え、前記エントリの何れかに変換対象となるバス番号が保持されている場合には前記短縮バス番号への変換が成功したものとして当該エントリに固有に付与された番号を前記短縮バス番号として出力し、前記エントリの何れにも変換対象となるバス番号が保持されていない場合には前記短縮バス番号への変換が失敗したものとする
    請求項2記載のアクセスキー生成装置。
  6. 周辺デバイスのデバイス識別子を表すビットフィールドの一部である部分ビットフィールドを前記部分ビットフィールドよりもビット幅の短い短縮ビットフィールドに変換するビットフィールド変換部と、
    前記周辺デバイスからメモリへのアクセスを制御するためのアクセスキーを前記周辺デバイスの各々に対応して複数保持するアクセスキー保持部と、
    前記短縮ビットフィールドへの変換が成功した場合には前記短縮ビットフィールドを含むインデックスアドレスを用いて前記アクセスキー保持部から前記アクセスキーを索引し、前記短縮ビットフィールドへの変換が失敗した場合には前記部分ビットフィールドを含むインデックスアドレスを用いて前記アクセスキー保持部から前記アクセスキーを索引する索引部と、
    前記索引されたアクセスキーを用いて前記メモリへのアクセスを制御するメモリアクセス制御部と
    を具備する情報処理装置。
  7. 周辺デバイスのデバイス識別子を表すビットフィールドの一部であるバス番号を前記バス番号よりもビット幅の短い短縮バス番号に変換するバス番号変換部と、
    前記周辺デバイスからメモリへのアクセスを制御するためのアクセスキーを前記周辺デバイスの各々に対応して複数保持するアクセスキー保持部と、
    前記短縮バス番号への変換が成功した場合には前記短縮バス番号を含むインデックスアドレスを用いて前記アクセスキー保持部から前記アクセスキーを索引し、前記短縮バス番号への変換が失敗した場合には前記バス番号を含むインデックスアドレスを用いて前記アクセスキー保持部から前記アクセスキーを索引する索引部と、
    前記索引されたアクセスキーを用いて前記メモリへのアクセスを制御するメモリアクセス制御部と
    を具備する情報処理装置。
JP2009010488A 2009-01-21 2009-01-21 アクセスキー生成装置および情報処理装置 Expired - Fee Related JP5228938B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009010488A JP5228938B2 (ja) 2009-01-21 2009-01-21 アクセスキー生成装置および情報処理装置
US12/690,505 US8312295B2 (en) 2009-01-21 2010-01-20 Access key generating apparatus and information processing apparatus
CN2010100026395A CN101782874B (zh) 2009-01-21 2010-01-20 访问密钥生成装置和信息处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009010488A JP5228938B2 (ja) 2009-01-21 2009-01-21 アクセスキー生成装置および情報処理装置

Publications (2)

Publication Number Publication Date
JP2010170237A JP2010170237A (ja) 2010-08-05
JP5228938B2 true JP5228938B2 (ja) 2013-07-03

Family

ID=42337867

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009010488A Expired - Fee Related JP5228938B2 (ja) 2009-01-21 2009-01-21 アクセスキー生成装置および情報処理装置

Country Status (3)

Country Link
US (1) US8312295B2 (ja)
JP (1) JP5228938B2 (ja)
CN (1) CN101782874B (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6854032B2 (en) * 2001-12-04 2005-02-08 Sun Microsystems, Inc. System for accessing a region of memory using remote address translation and using a memory window table and a memory region table
WO2003090052A2 (en) 2002-04-18 2003-10-30 Advanced Micro Devices Inc. A computer system including a secure execution mode - capable cpu and a security services processor connected via a secure communication path
JP2009110032A (ja) * 2006-01-16 2009-05-21 Sony Computer Entertainment Inc ブリッジ、情報処理装置、情報処理システムおよびグローバルアドレス管理方法
US8006000B2 (en) 2006-04-06 2011-08-23 Sony Corporation Bridge, processor unit, information processing apparatus, and access control method
JP2008250386A (ja) 2007-03-29 2008-10-16 Toshiba Corp アクセス制御装置及びコンピュータシステム
US8082405B2 (en) * 2008-01-11 2011-12-20 International Business Machines Corporation Dynamic address translation with fetch protection

Also Published As

Publication number Publication date
US20100185826A1 (en) 2010-07-22
CN101782874A (zh) 2010-07-21
US8312295B2 (en) 2012-11-13
CN101782874B (zh) 2012-07-18
JP2010170237A (ja) 2010-08-05

Similar Documents

Publication Publication Date Title
US4055851A (en) Memory module with means for generating a control signal that inhibits a subsequent overlapped memory cycle during a reading operation portion of a reading memory cycle
KR920005280B1 (ko) 고속 캐쉬 시스템
US4045781A (en) Memory module with selectable byte addressing for digital data processing system
CN1118027C (zh) 存储器访问保护
US5893930A (en) Predictive translation of a data address utilizing sets of associative entries stored consecutively in a translation lookaside buffer
JPH0337218B2 (ja)
EP3964967B1 (en) Cache memory and method of using same
US11775445B2 (en) Translation support for a virtual cache
US10810134B2 (en) Sharing virtual and real translations in a virtual cache
US20210026771A1 (en) Cache structure using a logical directory
JP2002073412A (ja) メモリへのアクセス方法及びメモリ
JP2015515057A (ja) ハイブリッド・アドレス変換のためのシステム、方法、およびコンピュータ・プログラム(ハイブリッド・アドレス変換)
TW201810046A (zh) 用於存取快取記憶體的方法與裝置
TWI300897B (en) Use of a context identifier in cache memory
US4493033A (en) Dual port cache with interleaved read accesses during alternate half-cycles and simultaneous writing
JPH11272676A (ja) 分割検索方法及び装置
CN115774683A (zh) 用于超级用户模式中获取物理地址的方法及相应处理器
US20050027960A1 (en) Translation look-aside buffer sharing among logical partitions
JP5228938B2 (ja) アクセスキー生成装置および情報処理装置
JP2008512758A (ja) 仮想アドレス・キャッシュに格納されたデータを共用する仮想アドレス・キャッシュ及び方法
JP2846697B2 (ja) キャッシュメモリ制御装置
JP2004530962A (ja) キャッシュメモリおよびアドレス指定方法
JPS63132355A (ja) メモリ制御装置
US7200733B2 (en) Virtual memory translator for real-time operating systems
US7996576B2 (en) Generating an identifier for a SATA disk

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121225

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: 20130219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130304

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

Free format text: PAYMENT UNTIL: 20160329

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees