(57)【要約】【課題】高速なパケット処理が可能であり且つ汎用性の高い情報処理装置及び方法を提供する。【解決手段】マルチコアＣＰＵ１００と、複数のブロック２２０に区画されているとともに前記マルチコアＣＰＵ１００から各ブロック２２０への並列アクセスが可能に構成された記憶装置２００との間に、トラヒックフロー振り分け部４００を設ける。トラヒックフロー振り分け部４００は、マルチコアＣＰＵ１００の複数あるＣＰＵコアとＨＭＣ２００内の複数あるＶａｕｌｔ２２０の個々のアクセスに対して紐付けるロジックと、ネットワークからの入力トラヒックをパケットのヘッダ情報に基づきマルチコアＣＰＵ１００のどのＣＰＵコアに処理させるかを振り分けるロジックを設ける。【選択図】図２
2018148455.tif 000002
【特許請求の範囲】
【請求項１】
複数のコアを有する演算装置と、記憶装置と、前記演算装置による前記記憶装置へのアクセスを制御する制御装置とを備え、データ通信に係るパケットを処理する情報処理装置であって、
前記記憶装置は、複数のブロックに区画されているとともに前記演算装置から各ブロックへの並列アクセスが可能に構成されており、
前記制御装置は、外部から受信したパケットを前記演算装置の複数のコアの何れかに振り分ける振り分け手段と、前記演算装置のコアと前記記憶装置のブロックとを紐付けた対応情報を記憶する対応情報記憶手段と、前記演算装置のコアでのパケットの処理における前記記憶装置へのアクセスがあると、当該アクセスのアクセス元のコアを識別し、識別したコア及び前記対応情報に基づきアクセス先となる前記記憶装置のブロックを決定し、決定したブロックがアクセス先となるよう前記アクセスを制御するアクセス制御手段とを備えた
ことを特徴とする情報処理装置。
【請求項２】
前記アクセス制御手段は、前記記憶装置へのアクセスに含まれるメモリアドレスを前記決定したブロックを示すアドレスに変換する
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記振り分け手段は、受信したパケットのヘッダ情報に基づき当該パケットを前記演算装置の複数のコアの何れかに振り分ける
ことを特徴とする請求項１又は２何れか１項記載の情報処理装置。
【請求項４】
前記記憶装置は、複数のデータ記憶素子層とメモリコントロール機能層とを互いに接続するように積層するとともに、各データ記憶素子層を平面上において複数の区画に分割するとともに各データ記憶素子層の同一区画間を互いに接続することによりブロックを形成した
ことを特徴とする請求項１乃至３何れか１項記載の情報処理装置。
【請求項５】
複数のコアを有する演算装置と、記憶装置と、前記演算装置による前記記憶装置へのアクセスを制御する制御装置とを備え、データ通信に係るパケットを処理する情報処理方法であって、
前記記憶装置は、複数のブロックに区画されているとともに前記演算装置から各ブロックへの並列アクセスが可能に構成されており、
前記制御装置の振り分け手段が、外部から受信したパケットを前記演算装置の複数のコアの何れかに振り分けるステップと、
前記演算装置のコアが、振り分けられたパケットの処理において前記記憶装置へのアクセスを前記制御装置に対して行うステップと、
前記制御装置のアクセス制御装置が、前記アクセスのアクセス元のコアを識別し、識別したコア、及び対応情報記憶手段に記憶されている前記演算装置のコアと前記記憶装置のブロックとを紐付けた対応情報に基づき、アクセス先となる前記記憶装置のブロックを決定し、決定したブロックがアクセス先となるよう前記アクセスを制御するステップと、を備えた
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワークにおける大規模トラヒックフローを対象とするパケット処理を行う情報処理装置に関する。
【背景技術】
【０００２】
近年、通信ネットワーク内には、従来のテキストデータや静止画像に加えストリーミングによる映像配信、ユーザの大容量のデータのダウンロード等のサービスが一般的になってきている。このため、ネットワーク内を流れるデータトラヒック量は、容量が年々拡大の一途をたどっている。特に、今後、映像や静止画像等の品質のさらなる向上や広帯域使用ユーザ数の増大が予想され、ネットワーク内でさらなるトラヒック増大が予想される。
【０００３】
このトラヒックの増大に対応するため、ルータ、スイッチ及びサーバ等各種ネットワーク内での通信処理システムや伝送系システムの性能向上が図られており、ユーザ側でより快適な広帯域データでの通信が可能となって来ている。通信事業者等のネットワーク内を流れるデータはＩＰ（Internet Protocol）化されたパケットで転送され、ルータ、スイッチ及びサーバ等でパケット処理を行うことにより制御データやユーザデータが転送されるのが一般的である。これらを処理するＣＰＵ（Central Processing Unit）は、マルチコア化が進み、マルチスレッドでの処理技術が一般化しており、また、メインメモリとなる大容量のＤＲＡＭ（Dynamic Random Access Memory）でＤＤＲ３（Double-Data-Rate3）ＤＲＡＭやＤＤＲ４（Double-Data-Rate4）ＤＲＡＭが現在主流となっている。なお、以下の説明では、ＤＤＲ３  ＤＲＡＭやＤＤＲ４  ＤＲＡＭをＤＤＲｘ  ＤＲＡＭと総称するものとする。
【０００４】
上記した今後のさらなるトラヒックの増大に対応してゆく場合、これらＤＤＲｘ  ＤＲＡＭによるアーキテクチャでの処理性能には、システムが要求する処理性能でいずれ限界が生じてくるものと想定される。この性能限界に対して、メモリデバイスアーキテクチャを一新する革新的技術の一つであるＨｙｂｒｉｄ  Ｍｅｍｏｒｙ  Ｃｕｂｅ（以下「ＨＭＣ」と言う。）が２０１３年４月に仕様が開示され、既にスーパーコンピュータ等で実用化が開始されている。ＨＭＣは、３次元形状を持つ半導体の層が４〜８枚積層され、各層がシリコン貫通電極によって接続されている。その積層した縦の列を「Ｖａｕｌｔ」と呼び、１つひとつのＤＲＡＭとして機能する。ＨＭＣは、例えば、ＤＤＲ３と比較し１５倍以上の高速アクセスを実現している。
【０００５】
ＨＭＣを適用した情報処理装置としては特許文献１に記載のものが知られている。特許文献１では、プロセッサとＨＭＣ間のメモリコントローラにおいて、プロセッサからのアクセス要求に対するＨＭＣ側の応答時間を算出し、所要時間を基にプロセッサ側からのアクセス要求に対するＨＭＣ側のアクセス経路を選択する方法を提案している。
【０００６】
また、ＨＭＣを適用したスーパーコンピュータとしては非特許文献１に記載のものが知られている。非特許文献１に記載のスーパーコンピュータでは、メモリにＨＭＣを採用し、１ノードあたり４８０ＧＢ／ｓというメモリ帯域を実現している。
【０００７】
［従来技術］
通信事業者ネットワークにおける大規模トラヒックフローを対象とするパケット処理は、現在、ルータやスイッチ等の専用装置により実現している。汎用サーバでの高速パケット処理もある程度は、実現可能となって来ているが、通信事業者ネットワークにおけるような大規模トラヒックフローへの適用には、現行の汎用サーバアーキテクチャでは、メモリ性能がボトルネックとなる。現行の汎用サーバアーキテクチャとして図１に示すようなＤＤＲｘ  ＤＲＡＭを使用したアーキテクチャが採用されている。
【０００８】
図１に従来技術の汎用サーバを適用したパケット処理装置構成を示す。メインメモリには、上記したようにＤＤＲｘ  ＤＲＡＭを採用している。ＤＤＲｘ  ＤＲＡＭは、パケット処理においてパケットバッファ、アドレス検索テーブル等に使用される。ＣＰＵは、マルチコアＣＰＵであり、複数のＣＰＵコアで構成され、並列処理が可能となっている。また、マルチコアＣＰＵは、各ＣＰＵコア内や各ＣＰＵコアで共通に使用する低容量で高速動作可能なキャッシュメモリを内蔵しており、キャッシュメモリに納まる範囲内の処理であれば高い処理性能を発揮する。しかしながら、これらキャッシュメモリは、容量が小さく容量不足によりメインメモリであるＤＤＲｘ  ＤＲＡＭ  へのアクセスが頻発した場合、性能のボトルネックが生じる。これは、ＤＤＲｘ  ＤＲＡＭは、アクセス速度がキャッシュメモリと比較して遅いとともに、アクセスの並列度がないかもしくは並列度があっても低いため、複数のＣＰＵコア側が同時に多くのアクセス要求を出す場合、ＤＤＲｘ  ＤＲＡＭ側がアクセス中でビジー状態となり、ＣＰＵコア側で待ち合わせ状態となるためである。
【０００９】
また、パケット転送処理で特に処理時間を要する高速テーブル検索は、ルータ等に採用されている、テーブル検索特化の専用デバイスであり、高速動作可能なＴｅｒｎａｒｙ  Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ（以下「ＴＣＡＭ」と言う。）により実現されている。キャッシュメモリ同様、低容量である。さらには高消費電力であり、また高価であることが難点である。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１６‐０７６１０８号公報
【非特許文献】
【００１１】
【非特許文献１】"FUJITSU Supercomputer PRIMEHPC FX100", [online], [平成27年1月11日検索], インターネット<URL:http://www.fujitsu.com/jp/products/computing/servers/supercomputer/primehpc-fx100>
【発明の概要】
【発明が解決しようとする課題】
【００１２】
前述したように、将来的な巨大な大容量パケットトラヒックフローに対応してゆくためには、これら従来サーバアーキテクチャの延長によるパケット処理方式では、いずれは限界がくると想定される。これは、以下の問題による。
【００１３】
・ＤＤＲｘ  ＤＲＡＭを使用したアーキテクチャでは、メモリのアクセス並列度がないもしくは低いため、マルチコアの複数のＣＰＵからＤＤＲｘ  ＤＲＡＭ  へのアクセスが頻発した場合、ＤＤＲｘ  ＤＲＡＭ側の同時アクセス可能な並列度がないもしくは低いため、アクセス待ち状態により性能のボトルネックが生じる。このような性能のボトルネックでは、特に、優先度の高いパケット処理への影響は大きくＱｏＳ（Quality of Service）遵守の観点からも重要な課題である。
【００１４】
・ＴＣＡＭは、テーブル検索以外の用途には適用できないとともに、低容量であるとともに高消費電力であるため、汎用性が無くサーバのメインメモリとして利用できないことが課題である。
【００１５】
これらの問題を解決するためには、従来のサーバアーキテクチャでなく、新しいサーバアーキテクチャが必要となり、大容量のメモリでアクセス性能を飛躍的に高めるパケット処理装置の具体的な方式の考案が必要となってくる。
【００１６】
本発明は上記事情に鑑みてなされたものであり、その目的とするところは、高速なパケット処理が可能であり且つ汎用性の高い情報処理装置及び方法を提供することにある。
【課題を解決するための手段】
【００１７】
上記目的を達成するために、本願発明に係る情報処理装置は、複数のコアを有する演算装置と、記憶装置と、前記演算装置による前記記憶装置へのアクセスを制御する制御装置とを備え、データ通信に係るパケットを処理する情報処理装置であって、前記記憶装置は、複数のブロックに区画されているとともに前記演算装置から各ブロックへの並列アクセスが可能に構成されており、前記制御装置は、外部から受信したパケットを前記演算装置の複数のコアの何れかに振り分ける振り分け手段と、前記演算装置のコアと前記記憶装置のブロックとを紐付けた対応情報を記憶する対応情報記憶手段と、前記演算装置のコアでのパケットの処理における前記記憶装置へのアクセスがあると、当該アクセスのアクセス元のコアを識別し、識別したコア及び前記対応情報に基づきアクセス先となる前記記憶装置のブロックを決定し、決定したブロックがアクセス先となるよう前記アクセスを制御するアクセス制御手段とを備えたことを特徴とする。
【００１８】
また、本願発明に係る情報処理方法は、複数のコアを有する演算装置と、記憶装置と、前記演算装置による前記記憶装置へのアクセスを制御する制御装置とを備え、データ通信に係るパケットを処理する情報処理方法であって、前記記憶装置は、複数のブロックに区画されているとともに前記演算装置から各ブロックへの並列アクセスが可能に構成されており、前記制御装置の振り分け手段が、外部から受信したパケットを前記演算装置の複数のコアの何れかに振り分けるステップと、前記演算装置のコアが、振り分けられたパケットの処理において前記記憶装置へのアクセスを前記制御装置に対して行うステップと、前記制御装置のアクセス制御装置が、前記アクセスのアクセス元のコアを識別し、識別したコア、及び対応情報記憶手段に記憶されている前記演算装置のコアと前記記憶装置のブロックとを紐付けた対応情報に基づき、アクセス先となる前記記憶装置のブロックを決定し、決定したブロックがアクセス先となるよう前記アクセスを制御するステップと、を備えたことを特徴とする。
【発明の効果】
【００１９】
本発明によれば、マルチコア演算装置と記憶装置のもつ並列処理ポテンシャルを最大限に引き出することができるので、汎用的なデバイスのみを活用してサーバ上のパケット処理性能向上を図ることができる。また、マルチコア演算装置と記憶装置との間に設ける制御装置のロジック実装次第で、優先制御等の付加機能が実現可能となる。
【図面の簡単な説明】
【００２０】
【図１】従来の高速パケット処理方式を説明する図
【図２】本発明に係る情報処理装置の概略構成図
【図３】本発明に係る情報処理装置の構成図
【図４】高速パケット処理フロー例
【発明を実施するための形態】
【００２１】
本発明の一実施形態に係る情報処理装置及び方法について詳述する。まず本発明のポイントについて説明する。本発明のポイントは以下の５つである。
【００２２】
（１）大量のトラヒックフローを対象とするパケット処理実現手段として高性能と汎用性を両立したアーキテクチャを確立。
【００２３】
（２）パケット処理の並列処理適正（フロー毎に独立処理が可能）に着目したマルチコアＣＰＵおよびＨＭＣの制御方式を確立。
【００２４】
（３）前記（２）においては、従来の性能のボトルネックとなっていたメモリアクセス並列度のないもしくは低いＤＤＲｘ  ＤＲＡＭメモリに替えて、アクセス並列度の高いＨＭＣを適用し、マルチコアＣＰＵとＨＭＣ間のアクセス制御用にパケット処理用ＨＭＣアクセス制御機能を設けることにより、トラヒックフローをマルチコアＣＰＵ・ＨＭＣ間で振り分ける制御方式の確立。
【００２５】
（４）前記（３）におけるパケット処理用ＨＭＣアクセス制御機能の具体的な実現方式として、マルチコアＣＰＵの複数あるＣＰＵコアとＨＭＣ内の複数あるＶａｕｌｔの個々のアクセスに対して紐付けるロジックを設け、パケット処理時には、各ＣＰＵコアに対応するＨＭＣ内のＶａｕｌｔをアクセスする方式を確立。
【００２６】
（５）前記（３）におけるパケット処理用ＨＭＣアクセス制御機能部の周辺部に、マルチコアＣＰＵの複数あるＣＰＵコアについてもネットワークからの入力トラヒックをパケットのヘッダ情報に基づきマルチコアＣＰＵのどのＣＰＵコアに処理させるかを振り分けるロジックを設けることにより、パケットの優先制御処理等を効率よく実現する方式を確立。
【００２７】
ＨＭＣは、Ｖａｕｌｔと呼ばれる複数のブロックに区画されているとともにマルチコアＣＰＵから各Ｖａｕｌｔへの並列アクセスが可能に構成されている。ＨＭＣは、データ記憶素子層である複数のＤＲＡＭ層と、メモリコントロール機能を実装した層であるロジックベースとを、ＴＳＶ（Through-Silicon Via／シリコン貫通電極）と呼ばれる層間接続導体により互いに接続するように積層したものである。ＨＭＣは、各データ記憶素子層を平面上において複数の区画に分割するとともに各データ記憶素子層の同一区画間を互いに接続することによりＶａｕｌｔが形成されている。
【００２８】
なお、本発明においては「パケット」とは、例えばＩＰパケットなどＯＳＩ（Open Systems Interconnection）参照モデルのレイヤー３のパケットを意味するものとする。
【００２９】
次に、本発明の情報処理装置及び方法の概念について図２を参照して説明する。図２は本発明に係る情報処理装置の概略構成図である。
【００３０】
本発明では、図２に示すような、メモリとして従来のＤＤＲｘ  ＤＲＡＭでは有していない高いアクセス並列度をもつＨｙｂｒｉｄ  Ｍｅｍｏｒｙ  Ｃｕｂｅ（ＨＭＣ）を用い、マルチコアＣＰＵとＨＭＣ間のアクセス制御用および一部パケット処理をＦｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ（以下「ＦＰＧＡ」と言う。）等で実装するサーバアーキテクチャを提案する。これにより通信事業者ネットワークおけるパケット処理等の高いメモリアクセス性能が求められるアプリケーションにおいて高性能を実現することが可能となる。
【００３１】
図２において、マルチコアＣＰＵ１００は、複数のＣＰＵコアを有し、内部にキャッシュメモリを内蔵している。ＨＭＣ２００は、上述したロジックベース２１０と複数のＶａｕｌｔ２２０を有し、各Ｖａｕｌｔ２２０は、並列アクセス可能である。図２では、パケット処理において、パケット処理プログラムをマルチコアＣＰＵ１００側に接続するＤＲＡＭ３００内に設け、パケット処理時間に影響する検索テーブルやパケットバッファをＨＭＣ２００内に設ける場合を示している。
【００３２】
本発明では、図２に示すように、上記のパケット処理において、マルチコアＣＰＵ１００とＨＭＣ２００間にトラヒックフロー振り分け部４００を設け、アクセス制御用に以下の２つの機能を盛り込むことによりトラヒックフロー振り分け型ＣＰＵ・メモリ制御方式を実現する。
【００３３】
１）マルチコアＣＰＵ１００の複数あるＣＰＵコアとＨＭＣ２００内の複数あるＶａｕｌｔ２２０の個々のアクセスに対して紐付けるロジックを設ける。これによりパケット処理時には、各ＣＰＵコアに対応するＨＭＣ２００内のＶａｕｌｔ２２０をアクセスする。
【００３４】
２）ネットワークからの入力トラヒックをパケットのヘッダ情報に基づきマルチコアＣＰＵ１００のどのＣＰＵコアに処理させるかを振り分けるロジックを設ける。
【００３５】
前記１）により、パケットトラヒックフロー数が増大し、キャッシュメモリでは対応できずにメインメモリアクセスとなった場合等でも、各ＣＰＵコアは、自コアに割り当てられたＨＭＣ２００内のＶａｕｌｔ２２０のアクセスができ複数のＣＰＵコアが同時に複数のＶａｕｌｔ２２０へのアクセスによる並列処理が可能となり、処理性能を高められる。
【００３６】
また、前記２）のパケットヘッダ情報やアドレス情報等に基づきマルチコアＣＰＵ１００のどのＣＰＵコアに処理させるかを振り分けることにより、パケットのＱｏＳ機能である優先制御処理等を効率よく実現できる。
【００３７】
以下、実施例に係る情報処理装置について図３を参照して説明する。図３に図２をベースにした高速パケット処理のためのトラヒックフロー振り分け型ＣＰＵ・メモリ制御方式の構成図を示す。
【００３８】
図３において、情報処理装置は、マルチコアＣＰＵ１００、トラヒックフロー振り分け部４００及びＨＭＣ２００の３つの主要部分から構成される。
【００３９】
マルチコアＣＰＵ１００は、数個〜数十個のオーダの複数のＣＰＵコア１１０を備えている。各ＣＰＵコア１１０は、Ｌｅｖｅｌ１  Ｃａｃｈｅ（Ｌ１）１１１と、Ｌｅｖｅｌ２  Ｃａｃｈｅ（Ｌ２）１１２を内蔵している。またマルチコアＣＰＵ１００は、各ＣＰＵコア１１０で共有されるＬａｓｔ  Ｌｅｖｅｌ  Ｃａｃｈｅ（ＬＬＣ）１２０を備えている。マルチコアＣＰＵ１００には、ＤＲＡＭ３００が接続されている。ＤＲＡＭ３００には、例えばルーティングプログラムなどのパケット処理プログラムが記憶されている。
【００４０】
ＨＭＣ２００は、マルチコアＣＰＵ１００側とのインタフェース部であるロジックベース２１０と、並列アクセスできる１６個もしくは３２個程度のＶａｕｌｔ２２０とを備えている。ＨＭＣ２００は、各Ｖａｕｌｔ２２０に対応するアドレス領域を指定したアクセスを行うことにより、所望のＶａｕｌｔ２２０へのアクセスが可能となる。
【００４１】
このマルチコアＣＰＵ１００とＨＭＣ２００間に本発明のトラヒックフロー振り分け部４００を設ける。またトラヒックフロー振り分け部４００には、ネットワークからのパケットの入出力部であるＮｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ（以下「ＮＩＣ」と言う。）５００が接続されている。
【００４２】
トラヒックフロー振り分け部４００は、ＦＰＧＡで構成し、プログラム可能な論理コンポーネントを含んでいる。すなわち、トラヒックフロー振り分け部４００は、論理コンポーネントとして、入力側のインタフェースとなるパケットパーサ４１０と、出力側のインタフェースとなるパケット出力部４２０と、パケットパーサ４１０からのヘッダ位置が特定されたパケットを解析して、複数あるＣＰＵコア１１０の何れかに振り分けるパケットヘッダ情報解析・ＣＰＵコア振り分け判断部４３０及びパケットＣＰＵコア振り分け部４４０と、複数あるＣＰＵコア１１０側のマルチコアＣＰＵ１００からＨＭＣ２００をアクセス時のＨＭＣ２００内のアクセス先のＶａｕｌｔを制御するＨＭＣアクセス制御部４５０と、アクセス時にＨＭＣアクセス制御部４５０が参照するＣＰＵコア・Ｖａｕｌｔ対応表４６０と、ＨＭＣ２００とのインタフェース部であるＨＭＣ  Ｃｏｎｔｒｏｌｌｅｒ４７０とを備えている。
【００４３】
以下、図３の構成をもとに、パケット処理の流れについて図４の高速パケット処理フロー例にてパケットの入力からパケットの出力までについて説明する。なお、上記した図３のＣＰＵコア・Ｖａｕｌｔ対応表４６０には、ＣＰＵコア数とＨＭＣのＶａｕｌｔ数に対応して、アクセスするＣＰＵコアとＶａｕｌｔとの対応表を事前にプログラムしておく。
【００４４】
図４において高速パケット処理開始（ステップＳ１）し、ＮＩＣ５００でパケットを受信した場合（ステップＳ２のＹｅｓ）、トラヒックフロー振り分け部４００のパケットパーサ４１０にて入力パケットのヘッダ位置を特定し（ステップＳ３）、次にパケットヘッダ情報解析・ＣＰＵコア振り分け判断部４３０にてパケットのヘッダ情報（例えばアドレス内容等）から入力パケットを分類し、どのＣＰＵコア１１０に振り分けるべきか判断する（ステップＳ４）。パケットＣＰＵコア振り分け部４４０にて本判断情報をもとに入力パケットを各ＣＰＵコア１１０へ振り分ける（ステップＳ５）。振り分け法については、例えば図４では、アドレス内容によりパケット処理の高優先及び低優先の処理を行うＣＰＵコアを各々複数台ずつ割り当て、振り分ける方法を示している。
【００４５】
振り分けられたパケットを受信した各ＣＰＵコア１１０では、必要なパケット処理を実施する（ステップＳ６）。ここで、パケット処理時に必要なメモリアクセス、例えば、テーブル検索やパケット加工等はすべてＨＭＣ２００に対して行う。ＨＭＣアクセスが有る場合（ステップＳ７）、ＨＭＣアクセス制御部４５０にて、アクセス元ＣＰＵコア１１０からコア・Ｖａｕｌｔ対応表４６０よりアクセス先Ｖａｕｌｔを決定し、ＨＭＣ  Ｃｏｎｔｒｏｌｌｅｒ４７０によりアクセスする（ステップＳ８）。
【００４６】
コア・Ｖａｕｌｔ対応表４６０には、ＣＰＵコアと当該ＣＰＵコアのアクセスするＶａｕｌｔの対応表が記述されている。ＨＭＣアクセス制御部４５０はこれを参照し、ＣＰＵコアからのメモリアクセス命令中のメモリアドレス（物理メモリアドレス）を指定されたアクセスＶａｕｌｔを示すＨＭＣメモリアドレスに変換してＶａｕｌｔ２２０をアクセスし、アクセス結果をアクセス元ＣＰＵ側にアクセスルートと同ルートで返送する（ステップＳ９）。
【００４７】
パケット処理が終了するまで必要に応じたＨＭＣ２００へのアクセスが行われるが、パケット処理が終了（ステップＳ１０）すると各ＣＰＵコア１１０では、パケット出力部４２０を経由してＮＩＣ５００へパケット送信され（ステップＳ１１）、受信から送信までの処理を終了する（ステップＳ１２）。
【００４８】
本発明に係る情報処理装置によれば、マルチコアＣＰＵ１００およびＨＭＣ２００のもつ並列処理ポテンシャルを最大限に引き出することができるので、特定用途向けではない、汎用的なデバイスのみを活用してサーバ上のパケット処理性能向上を図ることができる。また、マルチコアＣＰＵ１００およびＨＭＣ２００間に設けるトラヒックフロー振り分け部４００のロジック実装次第で、優先制御等の付加機能が実現可能となる。さらに、ＨＭＣ２００を採用しているので、消費電力削減、実装面積削減による低消費電力化、コンパクト化が可能となる。
【００４９】
以上本発明の一実施の形態について詳述したが本発明はこれに限定されるものではない。例えば、上記実施の形態では、記憶装置としてＨＭＣを例示したが、複数のブロックに区画されているとともに各ブロックへの並列アクセスが可能であり、且つ、当該ブロックを指定したアクセスが可能なものであれば、他の記憶装置を用いてもよい。
【００５０】
また、上記実施の形態では、パケットのヘッダ情報のうちアドレス情報に基づきパケットの振り分けを行っていたが、他のヘッダ情報を用いてもよい。他のヘッダ情報としては、例えばトラフィッククラスやＴＯＳ（Type of Service）に格納されている、パケットの優先度などパケットの品質を決める情報などが挙げられる。また、上記実施の形態では、レイヤー３のパケットのヘッダ情報に基づきパケットの振り分けを行っていたが、当該パケットのコンテナに格納されている上位プロトコルのパケットに係るヘッダ情報やその他の情報に基づき振り分けを行ってもよい。さらに、これら複数の各種情報の任意の組み合わせに基づき振り分けを行ってもよい。
【符号の説明】
【００５１】
１００…マルチコアＣＰＵ
１１０…ＣＰＵコア
２００…ＨＭＣ
２１０…ロジックベース
２２０…Ｖａｕｌｔ
３００…ＤＲＡＭ
４００…トラヒックフロー振り分け部
４１０…パケットパーサ
４２０…パケット出力部
４３０…パケットヘッダ情報解析・ＣＰＵコア振り分け判断部
４４０…パケットＣＰＵコア振り分け部
４５０…ＨＭＣアクセス制御部
４６０…コア・Ｖａｕｌｔ対応表
４７０…ＨＭＣ  Ｃｏｎｔｒｏｌｌｅｒ
【図１】
2018148455.tif 000003
【図２】
2018148455.tif 000004
【図３】
2018148455.tif 000005
【図４】
2018148455.tif 000006