JP2013196167A - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP2013196167A
JP2013196167A JP2012060809A JP2012060809A JP2013196167A JP 2013196167 A JP2013196167 A JP 2013196167A JP 2012060809 A JP2012060809 A JP 2012060809A JP 2012060809 A JP2012060809 A JP 2012060809A JP 2013196167 A JP2013196167 A JP 2013196167A
Authority
JP
Japan
Prior art keywords
packet
router
memory
memory access
access
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.)
Pending
Application number
JP2012060809A
Other languages
English (en)
Inventor
Yuichi Oda
雄一 小田
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012060809A priority Critical patent/JP2013196167A/ja
Priority to US13/611,295 priority patent/US9042391B2/en
Publication of JP2013196167A publication Critical patent/JP2013196167A/ja
Pending legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)

Abstract

【課題】少ないAPUで不正なメモリアクセスを検出すること。
【解決手段】本発明の一つの実施形態によれば、情報処理装置は、1つの共有メモリと、複数のプロセッサと、ルータ群と、アドレス保護装置とを備える。前記複数のプロセッサは、アクセス先アドレスとアクセス種類とを含む前記共有メモリへのメモリアクセス要求を記述したメモリアクセスパケットを生成する。前記ルータ群は、前記共有メモリに接続されている第1ルータと、前記第1ルータと前記複数のプロセッサとの間の転送経路を形成する第2ルータとを備え、前記複数のプロセッサが生成したメモリアクセスパケットを前記共有メモリに転送する。前記アドレス保護装置は、前記第1ルータを通過するメモリアクセスパケットを検査して違反メモリアクセスを検出する。
【選択図】図1

Description

本発明の実施形態は、情報処理装置に関する。
近年、半導体集積回路の製造プロセス技術の進歩によりシステムLSIが高集積化できるようになってきており、1チップに搭載されるプロセッサ数が増加する傾向にある。一方、バスをベースとしたシステムでは、バスに接続できるプロセッサ数に制約が生じることが多い。また、プロセッサ間でのデータや制御の増加に伴い、バスへのアクセスがシステム全体の性能のボトルネックになることもある。この問題を改善する方法の1つとして、ネットワークオンチップ(NoC)がある。NoCでは、各プロセッサはルータを介して接続され、パケットによりデータや制御の通信を実現する。
また、プロセッサからの不正なメモリアクセスを検出する機構として、アドレス保護装置(Address Protection Unit;APU)を搭載することがある。APUには、あらかじめ許可する(または禁止する)メモリアクセスが、内部に保持するテーブルに登録される。APUは、プロセッサからメモリアクセスがあった際にそのテーブルを参照し、そのメモリアクセスが許可しないものであれば違反として検出する。
特開2009−110512号公報
本発明の一つの実施形態は、少ないAPUで不正なメモリアクセスを検出することができる情報処理装置を提供することを目的とする。
本発明の一つの実施形態によれば、情報処理装置は、1つの共有メモリと、複数のプロセッサと、ルータ群と、アドレス保護装置とを備える。前記複数のプロセッサは、アクセス先アドレスとアクセス種類とを含む前記共有メモリへのメモリアクセス要求を記述したメモリアクセスパケットを生成する。前記ルータ群は、前記共有メモリに接続されている第1ルータと、前記第1ルータと前記複数のプロセッサとの間の転送経路を形成する第2ルータとを備え、前記複数のプロセッサが生成したメモリアクセスパケットを前記共有メモリに転送する。前記アドレス保護装置は、前記第1ルータを通過するメモリアクセスパケットを検査して違反メモリアクセスを検出する。
本発明の第1の実施形態のNoCの構成を説明する図。 パケット仕様の例を示す図。 パケット仕様の例を示す図。 APUのマッピング例を説明する図。 APUに接続されるルータの構成を示す図。 APUの構成を示す図。 設定情報記憶部に格納される設定情報のデータ構造例を示す図。 違反検出器の構成を示す図。 ルータが具備するパケット復号器の動作を説明するフローチャート。 APUが具備するパケット復号器の動作を説明するフローチャート。 APUが具備する違反検出器の動作を説明するフローチャート。 不要な情報が含まれている通常パケットを示す図。 共有キャッシュメモリに接続されている第2の実施形態のルータの構成を説明する図。 第2の実施形態のルータが具備するパケット復号器の動作を示すフローチャート。 第2の実施形態のルータが具備するパケット生成器の動作を示すフローチャート。 第3の実施形態のAPUの構成を示す図。 第4の実施形態のプロセッサの構成を示す図。 ダミー通常パケットの仕様の一例を示す図。 第5の実施形態のNoCの構成を示す図。 第5の実施形態のプロセッサの構成を示す図。 第5の実施形態の設定パケットを示す図。 夫々APUに接続されている複数のルータに転送可能な、第5の実施形態のルータの構成を示す図。 夫々APUに接続されている複数のルータに転送可能な、第5の実施形態のルータの動作を説明する図。
以下に図面を参照して、実施形態にかかる情報処理装置を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。ここでは、本発明の実施形態の情報処理装置をNoCに適用した場合について説明するが、実施形態の情報処理装置は、複数チップに分割されて構成される情報処理システムに対しても適用することができる。
(第1の実施形態)
図1は、本発明の第1の実施形態の情報処理装置としてのNoCの構成例を説明する図である。図1のNoC1は、プロセッサ10a〜10d、ルータ20a〜20c、APU30、共有キャッシュメモリ40、バス50、およびメインメモリ60を備えている。
プロセッサ10a,10bは、ルータ20aに接続されており、プロセッサ10c,10dは、ルータ20bに接続されている。また、ルータ20a,20bは、ルータ20cに接続されている。また、ルータ20cは共有キャッシュメモリ40に接続されており、共有キャッシュメモリ40はバス50を介してメインメモリ60に接続されている。
ここで、共有キャッシュメモリ40に接続されているルータ20cを第1ルータとし、第1ルータとプロセッサ10a〜10dとの間の転送経路を形成するルータ20a,20bを第2ルータとする。第1の実施形態においては、第1ルータは1つだけ用意されているとともに、ルータ群(ルータ20a〜20c)は閉道を含まず、第1ルータを根ノードとし、第2ルータを葉ノードとする木構造を構成する。なお、図1のNoC1の第2ルータは2つだが、これに限らない。また、第2ルータの葉ノードは、複数階層で構成されてもよい。また、第2ルータに接続されるプロセッサ数は、1以上である。
メインメモリ60は、プロセッサ10a〜10dの情報処理結果のデータ、情報処理のための初期値、プロセッサ10a〜10dを制御する所定のプログラム等、各種のデータを記憶する記憶装置である。
プロセッサ10a〜10dは、例えばメインメモリ60にロードされた所定のプログラムに基づいて情報処理を実行し、情報処理結果のデータをメインメモリ60に格納する。
共有キャッシュメモリ40は、プロセッサ10a〜10dによるメインメモリ60へのアクセス時間を削減するために設けられた、メインメモリ60よりも高速かつ小容量の記憶装置であって、メインメモリ60をアクセス先としたプロセッサ10a〜10dからのリード/ライトデータをキャッシュしている。
APU30は、プロセッサからのメモリアクセス違反を検出する。APU30は、第1ルータであるルータ20cに接続されている。プロセッサ10a〜10dからのメモリアクセスは全て、ルータ20cを通過するため、APU30は全てのメモリアクセス違反を検出することができる。
メモリアクセス要求のパケットの仕様例を、図2および図3に示す。
図2に示すパケットは、通常のメモリアクセスで生成されるパケット(以下、通常パケットという。)である。通常パケットには、アクセス先アドレス、アクセスの種類およびアクセス元IDが記述される。アクセス元IDは、プロセッサ10a〜10dを識別する識別子であって、どのプロセッサからのメモリアクセス要求であるかを特定することができる。
図3に示すパケットは、APU30でメモリアクセス違反を検出するために条件設定を行うパケット(以下、設定パケットという。)である。設定パケットは、アクセス先アドレスと、禁止条件または許可条件と、アクセス元IDとが記述される。禁止条件として、アクセス禁止領域の開始アドレス、アクセス禁止領域の終了アドレス、違反アクセス種類のうちの1つが記述される。違反アクセス種類には、リードおよびライトが存在し、当該項目は例えば2値情報で表現される。なお、ここでは、設定パケットに禁止条件が記述されている例について説明するが、許可条件が記述されるようにしてもよい。
ここで、APU30は、NoC1のアドレス空間上にマッピングされている。したがって、APU30に対するアクセスは、プロセッサ10a〜10dからAPU30がマッピングされている番地にアクセスすることで実現される。
図4は、APU30のマッピング例を説明する図である。アクセス禁止領域の開始アドレスが0x400000番地に、アクセス禁止領域の終了アドレスが0x400004番地に、違反アクセス種類が0x400008番地に、夫々マッピングされている。即ち、設定パケットに記述されるアクセス先アドレスには、0x400000、0x400004、0x400008のうちの禁止条件に対応する番地が使用される。なお、図4のアクセス先アドレスおよび違反検出アクセス種類は、違反メモリアクセスの検出ログが格納されるレジスタ(後述するレジスタ342)のアドレスを示すものであって、例えばデバッグ時に参照される。図4では、アクセス先アドレスは0x40000c番地にマッピングされており、この番地には、違反メモリアクセスがなされたアクセス先アドレスが格納される。また、違反検出アクセス種類は0x400010番地にマッピングされており、この番地には、検出した違反メモリアクセスがリードであったかライトであったかを示す2値情報が格納される。
なお、アクセス禁止領域(開始アドレスおよび終了アドレス)、違反アクセス種類、アクセス先アドレス、および違反検出アクセス種類を1セットとし、複数セット分の項目がNoC1のアドレス空間にマッピングされている。即ち、図4は、複数セット分のうちの1セットを示している。
図5は、ルータ20cの構成図である。ルータ20cは、2つの入力ポート21,22と、3つの出力ポート23〜25を持つ。入力ポート21は、ルータ20aが接続されており、入力ポート22は、ルータ20bが接続されている。即ち、入力ポートは、直接接続される第2ルータの数だけ備える。出力ポート23および出力ポート24はAPU30に接続されており、出力ポート25は共有キャッシュメモリ40に接続されている。また、ルータ20cは、パケット復号器26を備えている。
パケット復号器26は、入力ポート21、22のいずれかにパケットが到着すると、そのパケットを復号化し、アクセス先のアドレス情報を抽出する。そして、パケット復号器26は、抽出したアドレス情報に基づいて、そのパケットが設定パケットであるか通常パケットであるかを判定する。設定パケットであった場合、当該パケットを出力ポート24に転送し、通常パケットであった場合、当該パケットを出力ポート23,25に転送する。
図6は、APU30の構成図である。APU30は、入力ポート31,32を備えている。入力ポート31は、ルータ20cの出力ポート23に接続され、入力ポート32は、ルータ20cの出力ポート24に接続されている。また、APU30は、パケット振り分け器33、違反検出器34、およびエントリ登録器35を備えている。
パケット振り分け器33は、ルータ20cから入力ポート31または入力ポート32を介して転送されてきたパケットを受け付ける。パケット振り分け器33は、受け付けたパケットが通常パケットであれば、当該通常パケットを違反検出器34に転送し、受け付けたパケットが設定パケットであれば、当該設定パケットをエントリ登録器35に転送する。パケット振り分け器33は、受け付けたパケットが通常パケットであるか設定パケットであるかを、転送されてきた際に経由した入力ポートに基づいて判断する。
エントリ登録器35は、違反検出ルールを記述した設定情報を格納する設定情報記憶部36を備えている。
図7は、設定情報記憶部36に格納される設定情報のデータ構成例を示す図である。設定情報は、アクセス禁止領域の開始アドレス、終了アドレスとアクセス種類とを備えるエントリが登録されるテーブルを有している。即ち、各エントリには、禁止条件または許可条件が登録される。ここでは、禁止条件のみが登録されるものとして説明する。
エントリ登録器35は、設定パケットの設定情報にエントリを登録する。なお、設定情報を構成するエントリが具備する夫々のフィールドは、NoC1のアドレス空間にマッピングされている。例えば、エントリ1が図4のセットに対応するものとすると、エントリ1の開始アドレス、終了アドレス、アクセス種類の各フィールドは、0x400000番地、0x400004番地、0x400008番地にマッピングされている。エントリ登録器35は、設定パケットのアクセス先アドレスに基づいて登録先のフィールドを決定し、記述されている設定情報を登録する。
図8は、違反検出器34の構成図である。違反検出器34は、判定器341およびレジスタ342を備えている。レジスタ342は、検出された違反メモリアクセスのアクセス先アドレスおよび違反アクセス種類を違反メモリアクセス毎に記録するレジスタである。レジスタ342におけるアクセス先アドレスおよび違反アクセス種類の格納位置は、夫々アドレス空間にマッピングされており、対応するアドレスにアクセスすることによって所望の違反メモリアクセスの内容を参照することができる。
判定器341は、通常パケットが入力されると、当該通常パケットのアクセス先アドレスとアクセス種類とのセットと、設定情報記憶部36に格納されている設定情報とを比較して、通常パケットが違反メモリアクセスに該当するか否かを判定する。違反メモリアクセスに該当すると判定した場合、判定器341は、当該通常パケットのアクセス先アドレスとアクセス種類とをレジスタ342に格納する。
次に、図9〜図11を参照して、第1の実施形態のNoC1の動作を説明する。
図9は、ルータ20cが具備するパケット復号器26の動作を説明するフローチャートである。プロセッサ10a〜10dがパケットを発行すると、当該パケットは、ルータ20aまたはルータ20bを介してルータ20cに入力される。パケット復号器26は、入力されたパケットからアクセス先アドレスの抽出を行う(S1)。そして、パケット復号器26は、抽出したアクセス先アドレスがAPU30宛て(即ちAPU30がマッピングされたアドレス)であるか否かを判定する(S2)。当該アクセス先アドレスがAPU30宛てであった場合(S2、Yes)、当該パケットは設定パケットであるので、パケット復号器26は、当該設定パケットを出力ポート23に転送し(S3)、動作を終了する。一方、抽出したアクセス先アドレスがAPU30宛てではなかった場合(S2、No)、当該パケットは通常パケットであるので、パケット復号器26は、当該通常パケットを出力ポート24および出力ポート25に転送し(S4)、動作を終了する。
図10は、APU30が具備するパケット振り分け器33の動作を説明するフローチャートである。パケット振り分け器33は、パケットがルータ20cから転送されると、当該パケットが入力ポート31または入力ポート32から入力されたかを判定する(S11)。入力ポート32から前記パケットが入力された場合(S11、Yes)、当該パケットは通常パケットであるので、パケット振り分け器33は、当該パケットを違反検出器34へ転送し(S12)、動作を終了する。入力ポート31から前記パケットが入力された場合(S11、No)、当該パケットは設定パケットであるので、パケット振り分け器33は、当該パケットをエントリ登録器35へ転送し(S13)、動作を終了する。
図11は、APU30が具備する違反検出器34の動作を説明するフローチャートである。違反検出器34は、通常パケットを受信すると、設定情報記憶部36に格納されているエントリを参照し(S21)、通常パケットのアクセス先アドレスが設定されているアクセス禁止領域に含まれているか否かを判定する(S22)。前記アクセス先アドレスがアクセス禁止領域に含まれている場合(S22、Yes)、違反検出器34は、通常パケットのアクセス種類が参照したエントリのアクセス種類と合致するか否かをさらに判定する(S23)。アクセス種類が合致する場合(S23、Yes)、違反検出器34は、当該通常パケットのアクセス先アドレスとアクセス種類とをレジスタ342に出力し(S24)、動作を終了する。
通常パケットのアクセス先アドレスが参照したエントリのアクセス禁止領域に含まれない場合(S22、No)、またはアクセス種類が合致しない場合(S23、No)、違反検出器34は、設定情報を構成する全エントリを参照済みであるか否かを判定する(S25)。全エントリを参照済みである場合には(S25、Yes)、違反検出器34は、動作を終了する。未参照のエントリが存在する場合には(S25、No)、違反検出器34は、S21の処理に制御を移して、未参照のエントリを新たに参照する。
第1の実施形態と比較される技術(以下、比較例)について説明する。比較例として、各プロセッサにAPUを備える木構造のNoCが考えられる。APUは個々に、接続されているプロセッサの違反メモリアクセスを検出する。この場合、プロセッサ毎に違反メモリアクセスを検出することができる。
しかしながら、比較例では、1つのプロセッサに対して1つのAPUが備えるため、プロセッサの数だけAPUが必要となる。これに対して、本発明の第1の実施形態のNoCでは、パケットは根ノードとなるルータ20cを通るため、ルータ20cにのみAPU30を備えていれば、全ての違反メモリアクセスを検出することができる。即ち、本発明の第1の実施形態によれば、比較例に対し、少ないAPUで違反メモリアクセスを検出することができる。
なお、以上の説明においては、設定情報を構成する夫々のエントリに含まれる設定項目は設定項目毎にアドレス空間にマッピングされているとしているが、設定情報を構成する要素をどのような粒度でアドレス空間にマッピングするかは設計者の自由である。少なくともエントリ毎にアドレス空間にマッピングしておくと、許可条件や禁止条件を複数設定できる。また、夫々のエントリをアドレス空間にマッピングする代わりに、設定パケットと通常パケットとを識別できるようにフラグを付しておいてもよい。
本発明の第1の実施形態によれば、NoC1は、共有キャッシュメモリ40に接続されている唯一のルータであるルータ20cに通常パケットに記述されているメモリアクセス要求を検査して違反メモリアクセスの有無を検出するAPU30を接続するように構成したので、少ないAPUで不正なメモリアクセスを検出することができる。
また、APU30は、設定パケットに記述されているアクセス先アドレスに記述されている許可条件または禁止条件を登録する、ようにしたので、簡単な仕組みでプロセッサ10a〜10dから設定情報を登録できる。
また、ルータ20cは、入力されたパケットに記述されているアクセス先アドレスが設定情報に含まれるアドレスであるか否かに基づいて入力されたパケットが通常パケットであるか設定パケットであるかを判定し、入力されたパケットが通常パケットである場合、当該通常パケットを共有キャッシュメモリ40およびAPU30の両方に転送し、入力されたパケットが設定パケットである場合、当該設定パケットをAPU30に転送し、APU30は、転送されてきた設定パケットに記述されている許可条件または禁止条件を設定情報に登録するようにした。これにより、APU30は、ルータ20cに入力された設定パケットに基づいて設定情報を取得できるようになる。
また、APU30は、検出した違反メモリアクセスの内容を格納する、アドレス空間にマッピングされているレジスタ342を備える、ようにしたので、デバッグ時などに、対応するアドレスを指定することによって違反メモリアクセスの検出結果を取得することができる。
(第2の実施形態)
一般に、プロセッサが生成するパケットには、プロトコル仕様のバージョン情報やパケットの優先度など、違反メモリアクセスを検出する際に不要な情報が含まれている場合がある。図12は、当該不要な情報が含まれている通常パケットを示す図であり、「その他」の記述が不要な情報に該当する。
このように通常パケットに不要な情報が含まれる場合には、共有キャッシュメモリに接続されている第1ルータにおいて、当該不要な情報を削除したパケットを生成するようにするとよい。
図13は、第2の実施形態のルータ70の構成図である。ルータ70は、入力ポート21,22、出力ポート23〜25、パケット復号器71、パケット生成器72を備えている。なお、第1の実施形態と同じ構成には同一の符号を付して、重複する説明を省略する。
図14は、パケット復号器71の動作示すフローチャートである。パケット復号器71は、入力ポート21または入力ポート22からパケットを受信すると、入力されたパケットからアクセス先アドレスの抽出を行う(S31)。そして、パケット復号器71は、抽出したアクセス先アドレスがAPU30宛てであるか否かを判定する(S32)。当該アクセス先アドレスがAPU30宛てであった場合(S32、Yes)、当該パケットは設定パケットであるので、パケット復号器71は、当該設定パケットを出力ポート23に転送し(S33)、動作を終了する。一方、抽出したアクセス先アドレスがAPU30宛てではなかった場合(S32、No)、当該パケットは通常パケットであるので、パケット復号器71は、当該通常パケットをパケット生成器72および出力ポート25に転送し(S34)、動作を終了する。
図15は、パケット生成器72の動作を示すフローチャートである。パケット生成器72は、S34の処理により通常パケットが入力されると、入力されたパケットから「その他」の内容を削除して新たなパケットを生成する(S41)。そして、パケット生成器72は、生成したパケットを出力ポート24に転送し(S42)、動作を終了する。
このように、第2の実施形態によれば、ルータ70は、通常パケットに違反メモリアクセスを検出するための情報のほかに不要な情報が含まれていた場合であっても、当該不要な情報を削除することで、APU30に登録可能な形式のパケットを生成することができる。
(第3の実施形態)
第3の実施形態は、違反メモリアクセスが検出された際に、当該違反メモリアクセスを行ったプロセッサに違反メモリアクセスを行った旨を通知する。
図16は、第3の実施形態のAPUの構成図である。第3の実施形態のAPU80は、入力ポート31,32、出力ポート82、パケット振り分け器33、違反検出器34、エントリ登録器35、およびパケット生成器81を備えている。
パケット生成器81は、違反検出器34に接続されており、違反検出器34が違反メモリアクセスを検出した際、違反メモリアクセスを行ったプロセッサを宛先とし、違反メモリアクセスを検出した旨を記述したパケットを生成する。そして、当該生成したパケットを出力ポート82に送信する。出力ポート82は、ルータ20cに接続されており、パケットは違反メモリアクセスを行ったプロセッサに送信される。
本発明の第3の実施形態によれば、APU80は、検出した違反メモリアクセスを行ったプロセッサを宛先として当該違反メモリアクセスを検出した旨を記述した通知パケットを生成するパケット生成器81を備える、ようにしたので、プロセッサ10a〜10dは、違反メモリアクセスを行った際には違反メモリアクセスを行ったことを認識することができる。
(第4の実施形態)
プロセッサ内部にキャッシュメモリを有する場合には、メモリアクセスがそのキャッシュメモリにヒットすると、プロセッサの外にパケットが出力されない。したがって、第1の実施形態の構成では、APUはメモリアクセス要求がプロセッサから出力されない違反メモリアクセスの検出を行うことができない。
そこで、第4の実施形態は、プロセッサにダミーのパケットをプロセッサの外に送信する仕組みを具備する。ダミーのパケットは、プロセッサ内部のキャッシュメモリにヒットした場合に送信される。
図17は、第4の実施形態のプロセッサの構成図である。プロセッサ11は、プロセッサコア12、キャッシュメモリ13、パケット生成器14、出力ポート15を備えている。
出力ポート15は、ルータに接続されている。プロセッサコア12は、情報処理を行い、メインメモリ60にアクセスする際には、メモリアクセス要求を発行する。キャッシュメモリ13は、共有キャッシュメモリ40あるいはメインメモリ60へのアクセス時間を削減するためにプロセッサ11内部に設けられたキャッシュメモリである。パケット生成器14は、プロセッサコア12が発行したメモリアクセス要求がキャッシュメモリ13にヒットした場合には、当該メモリアクセス要求を記述したダミー通常パケットを生成して、出力ポート15に送信する。また、パケット生成器14は、メモリアクセス要求がキャッシュメモリ13にヒットしなかった場合には、通常パケットを生成して、トを出力ポート15に送信する。
図18は、ダミー通常パケットの仕様例を示す図である。ダミー通常パケットは、図2に示した通常パケットにダミーアクセスフラグが付加された構成を有している。
なお、第1ルータが具備するパケット復号器26は、受信したパケットがダミー通常パケットであった場合、当該ダミー通常パケットを出力ポート25に転送しないで、出力ポート24にのみ転送するようにしてもよい。
本発明の第4の実施形態によれば、プロセッサ11は、メモリアクセス要求がキャッシュメモリ13にヒットした場合に、当該メモリアクセス要求を記述したダミー通常パケットを生成して、ルータに送信するパケット生成器14を備え、当該ダミー通常パケットはAPU30に転送される、ようにしたので、プロセッサ内部にキャッシュメモリを備える場合であっても違反メモリアクセスを検出できる。
(第5の実施形態)
図19は、第5の実施形態のNoC3の構成図である。第5の実施形態のNoC3は、プロセッサ120a〜120hと、ルータ90−1a,90−1b,90−2a〜90−2dと、共有キャッシュメモリ40と、バス50と、メインメモリ60と、APU110aおよびAPU110bとを備えている。
ルータ90−1aおよびルータ90−1b(第1ルータ)は、共有キャッシュメモリ40に接続されている。また、ルータ90−1a,90−1bはともに、ルータ90−2a〜90−2d(第2ルータ)が接続されている。ルータ90−2aは、プロセッサ120aおよびプロセッサ120bが、ルータ90−2bは、プロセッサ120cおよびプロセッサ120dが、ルータ90−2cは、プロセッサ120eおよびプロセッサ120fが、ルータ90−2dは、プロセッサ120gおよびプロセッサ120hが、夫々接続されている。即ち、ルータ90−1a、90−1b、90−2a〜90−2dはグラフ構造を形成する。なお、グラフ構造のうちの閉道を持たない構造が木構造に分類される。
APU110aは、ルータ90−1aに接続され、APU110bは、ルータ90−1bに接続されている。APU110a、110bの内部の構成は、第1の実施形態と同じであるので、説明を省略する。但し、APU110aとAPU110bとの違反メモリアクセスの検出対象とするメモリ領域が互いに重複しないように(即ち排他的に)、夫々のメモリ領域が予め静的に定められているものとする。例えば、APU11aは0x0〜0x7fffffff番地のメモリ領域aを、APU110bは0x80000000〜0xffffffff番地のメモリ領域bを違反メモリアクセスの検出対象とし、少なくとも一部をアクセス禁止領域として設定される。また、APU110a、APU110bにマッピングされるアドレスも静的に定められているものとする。
図20は、第5の実施形態のプロセッサ120の構成図である。プロセッサ120a〜120hは接続先のルータを除いて夫々同じ構成を備えている。
プロセッサ120は、プロセッサコア121、パケット生成器122、および出力ポート123を備えている。出力ポート123は、ルータ90−2に接続されている。プロセッサコア121は、メインメモリ60にアクセスする際には、メモリアクセス要求の通常パケットを発行し、APU110aまたはAPU110bの条件設定を行う際には、禁止条件または許可条件を記述した設定パケットを発行する。パケット生成器122は、メモリアクセス要求を受信すると、当該メモリアクセス要求にアクセス元IDを付与するなどして通常パケットを生成する。また、パケット生成器122は、設定パケットを受信すると、APU設定要求にアクセス元IDを付与するなどして第2の設定パケットを生成する。なお、第5の実施形態においては、図3に示した設定パケットを第1の設定パケットということとする。
図21は、第2の設定パケットを示す図である。第2の設定パケットは、APU設定フラグと、禁止条件、アクセス種類およびアクセス元IDが記述されている。禁止条件は、アクセス禁止領域の開始アドレスおよび終了アドレスである。APU設定フラグは、APUに対する条件設定を行うパケットであることを示すフラグである。
ルータ90−2は、APUが夫々接続されているルータ90−1a,90−1bの両方をパケットの転送先とすることができる。また、APU110a,110bは、違反メモリアクセスの検出対象とするメモリ領域が互いに異なる。そこで、ルータ90−2は、受信したパケットに記載されているアクセス先アドレスまたはアクセス禁止領域がどちらのメモリ領域であるかに基づいて、パケットの転送先を切り替える。
図22は、ルータ90−2の構成図である。ルータ90−2は、入力ポート91,92、出力ポート93,94、パケット復号器95およびパケット変換器96を備えている。入力ポート91,92は異なるプロセッサ120に、出力ポート93はルータ90−1aに、出力ポート94はルータ90−1bに、夫々接続されている。
パケット復号器95は、入力されたパケットのうち、第2の設定パケットをパケット変換器96に転送する。また、パケット復号器95は、入力されたパケットのうち通常パケットを、記載されているアクセス先アドレスに基づいて出力ポート93または94に転送する。
パケット変換器96は、第2の設定パケットから変換した第1の設定パケットを出力ポート93または94に転送する。パケット変換器96は、記載されているアクセス禁止領域がメモリ領域aとメモリ領域bのどちらに含まれているかにより決める。なお、第2の設定パケットは、設定項目として、アクセス禁止領域の開始アドレスおよび終了アドレスとアクセス種類とを含んでいる。したがって、1つの第2の設定パケットの変換により3つの第1の設定パケットが生成される。
図23は、ルータ90−2の動作を説明する図である。
パケットがルータ90−2に入力されると、パケット復号器95は、当該パケットにAPU設定フラグの有無を確認して、APU宛ての第2の設定パケットであるか否かを判定する(S51)。
入力されたパケットがAPU宛ての第2の設定パケットであった場合(S51、Yes)、パケット変換器96は、第2の設定パケットに記述されているアクセス禁止領域がメモリ領域aとメモリ領域bとを跨いでいるか否かを判定する(S52)。アクセス禁止領域がメモリ領域aとメモリ領域bとを跨いでいる場合(S52、Yes)、パケット変換器96は、第2の設定パケットを変換して、メモリ領域aにアクセス禁止領域を設定するパケットとメモリ領域bにアクセス禁止領域を設定するパケットとの2つの第1の設定パケットを生成する(S53)。具体的には、パケット変換器96は、アクセス禁止領域をメモリ領域aに含まれている領域とメモリ領域bに含まれている領域とに分割して、分割したアクセス禁止領域を夫々新たなアクセス禁止領域とする第1の設定パケットを生成する。その後、パケット変換器96は、メモリ領域aにアクセス禁止領域を設定する第1の設定パケットを一方のルータ90−1aに、メモリ領域bにアクセス禁止領域を設定する第1の設定パケットを他方のルータ90−1bに転送し(S54)、動作を終了する。
また、第2の設定パケットに記述されているアクセス禁止領域がメモリ領域aとメモリ領域bとを跨いでいない場合(S52、No)、パケット変換器96は、アクセス禁止領域がメモリ領域aに含まれているか否かをさらに判定する(S55)。アクセス禁止領域がメモリ領域aに含まれている場合(S55、Yes)、パケット変換器96は、第2の設定パケットを変換して第1の設定パケットを生成し(S56)、第1の設定パケットをルータ90−1aに転送し(S57)、動作を終了する。アクセス禁止領域がメモリ領域aに含まれていない場合(S55、No)、パケット変換器96は、第2の設定パケットを変換して第1の設定パケットを生成し(S58)、第1の設定パケットをルータ90−1bに転送し(S59)、動作を終了する。
一方、ルータ90−2に入力されたパケットがAPU宛てではなかった場合(S51、No)、即ちパケットが通常パケットであった場合、パケット復号器95は、通常パケットに記述されているアクセス先アドレスがメモリ領域aに含まれているか否かをさらに判定する(S60)。アクセス先アドレスがメモリ領域aに含まれている場合(S60、Yes)、パケット復号器95は、通常パケットをルータ90−1aに転送し(S61)、動作を終了する。アクセス先アドレスがメモリ領域aに含まれていない場合(S60、No)、パケット復号器95は、通常パケットをルータ90−1bに転送し(S62)、動作を終了する。
図22のルータ90−2の構成は、APUが接続されているルータ90−1の両方に直接、パケットを転送可能なルータを示している。
なお、ルータ90−1に直接接続されたルータ90−2が別のルータ90−2からパケットを送信される場合、当該別のルータ90−2にパケット復号器95およびパケット変換器96を搭載するようにしてもよい。すなわち、プロセッサとルータ90−1間に経由するルータ90−2のいずれかにパケット復号器95およびパケット変換器96が搭載されていればよい。また、ルータ90−1にパケット復号器95およびパケット変換器96を搭載し、ルータ90−2に、メモリ領域aおよびメモリ領域bのうちのどちらをアクセス先またはメモリ禁止領域の設定対象としているかに基づいて転送先を決定する機能を搭載するようにしてもよい。
本発明の第5の実施形態によれば、APUが接続されている複数のルータ90−1に転送可能なルータ90−2は、通常パケットが指定するアクセス先アドレスがどのAPUが違反メモリアクセスの検出対象のメモリ領域に属するかに基づいて、前記通常パケットを経由させるルータをルータ90eおよびルータ90fのうちから1つ選択する、ようにしたので、共有キャッシュメモリ40に直接接続されているルータ90−1が複数存在する場合であっても当該ルータ90−1にAPUを配設することで不正なメモリアクセスを検出することができるので、少ないAPUで不正なメモリアクセスを検出することができる。
また、ルータ90−2は、第2の設定パケットに記述されている許可条件または禁止条件が指定する領域がどのAPUが違反メモリアクセスの検出対象のメモリ領域に属するかに基づいて、第1の設定パケットの転送先のルータを選択する、ようにしたので、APUが接続されたルータが複数存在する場合でも設定パケットを設定対象のAPUに転送することができる。
また、ルータ90−2は、アクセス先アドレスを指定する記述を含まない第2の設定パケットを禁止条件または許可条件の登録先がマッピングされているアクセス先アドレスを付加した第1の設定パケットに変換するパケット変換器96を備える、ようにしたので、プロセッサ120は、APU110がマッピングされているアドレスを知らなくてもAPU110に禁止条件または許可条件を設定することができる。
このように、第1〜第5の実施形態によれば、グラフ構造を形成するルータ群のうち、メインメモリ60に最も近いルータ(共有キャッシュメモリ40に接続されているルータ)にAPUを接続し、当該ルータを通過するメモリアクセスをAPUが検査するようにしたので、少ないAPUで不正なメモリアクセスを検出することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1〜3 NoC、10a〜10d、11、120a〜120h プロセッサ、12、121 プロセッサコア、13 キャッシュメモリ、14、72、81、122 パケット生成器、20a〜20c、90−1a、90−1b、90−2a〜90−2d、100 ルータ、21、22、31、32、91、92 入力ポート、15、23、24、25、82、93、94、123 出力ポート、26、33、71、95 パケット復号器、34 違反検出器、35 エントリ登録器、36 設定情報記憶部、40 共有キャッシュメモリ、50 バス、60 メインメモリ、96 パケット変換器、341 判定器、342 表示器。

Claims (5)

  1. 共有メモリと、
    前記共有メモリへのメモリアクセス要求を行う複数のプロセッサと、
    前記共有メモリに接続されている第1ルータと、前記第1ルータと前記複数のプロセッサとの間の転送経路を形成する第2ルータとを備え、前記複数のプロセッサからのメモリアクセス要求を前記共有メモリに転送するルータ群と、
    前記第1ルータに接続され、前記第1ルータに入力されたメモリアクセス要求のパケットを検査して違反メモリアクセスを検出するアドレス保護装置と、
    を備える情報処理装置。
  2. 前記アドレス保護装置は、メモリアクセスの許可条件または禁止条件が1以上登録される設定情報を記憶する設定情報記憶部を備え、前記メモリアクセス要求が前記許可条件または禁止条件に該当するか否かに基づいて違反メモリアクセスを検出する、
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記プロセッサは、通常のメモリアクセス要求を行う第1のパケット、または、メモリアクセス違反を検出するための禁止条件または許可条件の設定を行う第2のパケットを生成する、
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記ルータ群は、前記第1ルータを複数備え、
    前記夫々の第1ルータは、違反メモリアクセスの検出対象とするメモリ領域が互いに排他的に設定された異なるアドレス保護装置が接続され、 前記第2ルータは、
    入力されたパケットのアクセス先アドレスが前記アドレス保護装置の設定されたメモリ領域に属するかに基づいて、次の転送先ルータを選択する、
    ことを特徴とする請求項3に記載の情報処理装置。
  5. 前記複数のプロセッサは、夫々、前記共有メモリへのメモリアクセス要求を生成するプロセッサコアと、キャッシュメモリと、前記プロセッサコアのメモリアクセス要求が前記キャッシュメモリにヒットした場合に、擬似メモリアクセス要求のパケットを生成して送信するパケット生成器と、を備え、
    前記第1ルータは、前記擬似メモリアクセス要求のパケットが入力されたとき、前記入力された擬似メモリアクセスパケットを前記アドレス保護装置に転送する、
    ことを特徴とする請求項1に記載の情報処理装置。
JP2012060809A 2012-03-16 2012-03-16 情報処理装置 Pending JP2013196167A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012060809A JP2013196167A (ja) 2012-03-16 2012-03-16 情報処理装置
US13/611,295 US9042391B2 (en) 2012-03-16 2012-09-12 Information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012060809A JP2013196167A (ja) 2012-03-16 2012-03-16 情報処理装置

Publications (1)

Publication Number Publication Date
JP2013196167A true JP2013196167A (ja) 2013-09-30

Family

ID=49157588

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012060809A Pending JP2013196167A (ja) 2012-03-16 2012-03-16 情報処理装置

Country Status (2)

Country Link
US (1) US9042391B2 (ja)
JP (1) JP2013196167A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017068334A (ja) * 2015-09-28 2017-04-06 ルネサスエレクトロニクス株式会社 データ処理装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9466091B2 (en) * 2013-09-26 2016-10-11 Imagination Technologies Limited Atomic memory update unit and methods
US11257271B2 (en) 2013-09-26 2022-02-22 Imagination Technologies Limited Atomic memory update unit and methods
US9876738B2 (en) * 2014-10-10 2018-01-23 Dell Products L.P. System and method for extending ports
WO2016080563A1 (ko) * 2014-11-18 2016-05-26 주식회사 아라기술 Lte 네트워크에서의 과금에 투명한 콘텐츠 전송 방법, 시스템 및 컴퓨터 프로그램
US10095622B2 (en) * 2015-12-29 2018-10-09 Intel Corporation System, method, and apparatuses for remote monitoring
US11163682B2 (en) 2015-12-29 2021-11-02 Intel Corporation Systems, methods, and apparatuses for distributed consistency memory
US10547680B2 (en) * 2015-12-29 2020-01-28 Intel Corporation Systems, methods, and apparatuses for range protection
CN108701003B (zh) 2016-03-31 2022-04-26 英特尔公司 用于对远程节点的许多存储操作的原子写入的结构弹性支持

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0713945A (ja) * 1993-06-16 1995-01-17 Nippon Sheet Glass Co Ltd 演算処理部および制御・記憶部分離型マルチプロセッサ ・システムのバス構造
US5513337A (en) * 1994-05-25 1996-04-30 Intel Corporation System for protecting unauthorized memory accesses by comparing base memory address with mask bits and having attribute bits for identifying access operational mode and type
US6374286B1 (en) * 1998-04-06 2002-04-16 Rockwell Collins, Inc. Real time processor capable of concurrently running multiple independent JAVA machines
US6275891B1 (en) * 1999-02-25 2001-08-14 Lsi Logic Corporation Modular and scalable system for signal and multimedia processing
US6751698B1 (en) * 1999-09-29 2004-06-15 Silicon Graphics, Inc. Multiprocessor node controller circuit and method
US7039058B2 (en) * 2000-09-21 2006-05-02 Avici Systems, Inc. Switched interconnection network with increased bandwidth and port count
US7007151B1 (en) * 2000-10-04 2006-02-28 Nortel Networks Limited System, device, and method for controlling access to a memory
US7516322B1 (en) * 2000-12-07 2009-04-07 Cisco Technology, Inc. Copy protection built into a network infrastructure
US6826713B1 (en) * 2001-01-02 2004-11-30 Juniper Networks, Inc. Diagnostic access to processors in a complex electrical system
US6748499B2 (en) * 2001-11-15 2004-06-08 International Business Machines Corporation Sharing memory tables between host channel adapters
JP4560409B2 (ja) 2002-10-08 2010-10-13 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データを交換する集積回路および方法
ATE421823T1 (de) * 2004-08-12 2009-02-15 Koninkl Philips Electronics Nv Integrierte schaltung und verfahren zur paketvermittlungssteuerung
FR2883117B1 (fr) 2005-03-08 2007-04-27 Commissariat Energie Atomique Architecture de noeud de communication dans un systeme de reseau sur puce globalement asynchrone.
KR100675850B1 (ko) 2005-10-12 2007-02-02 삼성전자주식회사 AXI 프로토콜을 적용한 NoC 시스템
KR100687659B1 (ko) 2005-12-22 2007-02-27 삼성전자주식회사 Axi 프로토콜에 따른 락 오퍼레이션을 제어하는네트워크 인터페이스, 상기 네트워크 인터페이스가 포함된패킷 데이터 통신 온칩 인터커넥트 시스템, 및 상기네트워크 인터페이스의 동작 방법
US8325618B2 (en) 2006-07-05 2012-12-04 Synopsys, Inc. Electronic device, system on chip and method for monitoring a data flow
KR100922965B1 (ko) * 2006-10-10 2009-10-22 삼성전자주식회사 네트워크온칩 장치와 이를 위한 동작 주파수 제어 방법
EP2009554A1 (en) * 2007-06-25 2008-12-31 Stmicroelectronics SA Method for transferring data from a source target to a destination target, and corresponding network interface
US20090109996A1 (en) 2007-10-29 2009-04-30 Hoover Russell D Network on Chip
US8526422B2 (en) * 2007-11-27 2013-09-03 International Business Machines Corporation Network on chip with partitions
US8217953B2 (en) * 2008-04-25 2012-07-10 International Business Machines Corporation Anisotropic texture filtering with texture data prefetching
US8108908B2 (en) * 2008-10-22 2012-01-31 International Business Machines Corporation Security methodology to prevent user from compromising throughput in a highly threaded network on a chip processor
JP4838377B2 (ja) * 2009-12-14 2011-12-14 株式会社エヌ・ティ・ティ・ドコモ 移動通信システム及び無線基地局
US8954755B2 (en) * 2012-01-23 2015-02-10 International Business Machines Corporation Memory address translation-based data encryption with integrated encryption engine

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017068334A (ja) * 2015-09-28 2017-04-06 ルネサスエレクトロニクス株式会社 データ処理装置

Also Published As

Publication number Publication date
US20130243003A1 (en) 2013-09-19
US9042391B2 (en) 2015-05-26

Similar Documents

Publication Publication Date Title
JP2013196167A (ja) 情報処理装置
US10027776B2 (en) Distributed queue pair state on a host channel adapter
US6430190B1 (en) Method and apparatus for message routing, including a content addressable memory
US20200136971A1 (en) Hash-table lookup with controlled latency
US10929060B2 (en) Data access request specifying enable vector
US8397025B2 (en) Apparatus and method for determining a cache line in an N-way set associative cache using hash functions
US8402248B2 (en) Explicitly regioned memory organization in a network element
US8122125B2 (en) Deep packet inspection (DPI) using a DPI core
US20180048562A1 (en) Network Processor Inter-Device Packet Source ID Tagging for Domain Security
CN104750580B (zh) 用于多核处理器的具有内部和外部访问的后备处理器单元
JP2013535720A (ja) ポート共有ハードウェアを介した記憶装置への帯域外アクセス
US10853271B2 (en) System architecture with query based address translation for access validation
US20160179720A1 (en) Device table in system memory
US9515929B2 (en) Traffic data pre-filtering
US9817594B2 (en) System and method for broadcasting data to multiple hardware forwarding engines
US10289384B2 (en) Methods, systems, and computer readable media for processing data containing type-length-value (TLV) elements
US20150261679A1 (en) Host bridge with cache hints
WO2024006144A1 (en) Security subsystem for execution verification
US20170118113A1 (en) System and method for processing data packets by caching instructions
US7340570B2 (en) Engine for comparing a key with rules having high and low values defining a range
US8559430B2 (en) Network connection device, switching circuit device, and method for learning address
CN106302259B (zh) 片上网络中处理报文的方法和路由器
US10013385B2 (en) Programmable validation of transaction requests
US20220197729A1 (en) Advanced queue monitoring system
Haynie et al. IBM system z10 open systems adapter ethernet data router