JP2021018510A - パケット処理装置及びそのメモリアクセス制御方法並びにプログラム - Google Patents

パケット処理装置及びそのメモリアクセス制御方法並びにプログラム Download PDF

Info

Publication number
JP2021018510A
JP2021018510A JP2019132580A JP2019132580A JP2021018510A JP 2021018510 A JP2021018510 A JP 2021018510A JP 2019132580 A JP2019132580 A JP 2019132580A JP 2019132580 A JP2019132580 A JP 2019132580A JP 2021018510 A JP2021018510 A JP 2021018510A
Authority
JP
Japan
Prior art keywords
access
hmc
access control
storage
memory
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
JP2019132580A
Other languages
English (en)
Inventor
智洋 郡川
Tomohiro Korigawa
智洋 郡川
明生 川端
Akio Kawabata
明生 川端
大木 英司
Eiji Oki
英司 大木
馥君 何
Fujun He
馥君 何
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.)
Nippon Telegraph and Telephone Corp
Kyoto University NUC
Original Assignee
Nippon Telegraph and Telephone Corp
Kyoto University NUC
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 Nippon Telegraph and Telephone Corp, Kyoto University NUC filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2019132580A priority Critical patent/JP2021018510A/ja
Publication of JP2021018510A publication Critical patent/JP2021018510A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】高いメモリアクセス性能を実現するパケット処理装置及びそのメモリアクセス制御方法を提供する。【解決手段】パケット処理装置において、マルチコアCPU200とHMC(Hybrid Memory Cube)300との間にHMCコントローラ100を配置する。マルチコアCPU200は、共有キャッシュ220と、アクセスリクエストを共有キャッシュ220又はHMC300へ振り分けるアクセスリクエスト振分機構230を備える。HMC300には並列アクセス可能にテーブルを分割して記憶する。HMCコントローラ100は、アクセスリクエストによるHMC300の負荷を監視するとともに負荷の高い記憶領域に記憶されている分割されたテーブルを共有キャッシュ220にコピーする負荷監視部140を備えた。【選択図】図3

Description

本発明は、通信ネットワークにおける大規模トラヒックフローを対象とするパケット処理方式及びパケット処理装置構成に関する。
近年のInternet of Things(IoT)やエッジコンピューティング、第5世代モバイルネットワーク(5G)の登場により、ネットワークを流れるトラヒック量や遅延低減化の要求、ネットワークに接続されるデバイス数、さらには通信の多様性は急速に増加している。通信事業者やサービスプロバイダのネットワークは、その規模や信頼性由来の要件から、従来は用途に特化した専用デバイスや独自のアーキテクチャからなる装置により構成されてきた。
しかし、近年の急激なトラヒック需要変動に対する柔軟かつ迅速な装置増減設やネットワーク機能の容易な追加実装を可能にするために、通信事業者ネットワークやサービスプロバイダネットワークのような大規模ネットワークにおいても、ネットワーク仮想化(Network Function Virtualization;NFV)やソフトウェア定義ネットワーク(Software Defined Networking;SDN)などの仮想化技術の活用が期待されている。
このような仮想化技術活用の機運到来の背景には、従来に比べてより汎用的なデバイスの性能向上がある。Central Processing Unit(CPU)やDynamic Random Access Memory(DRAM)といった、汎用的で安価なデバイスからなる汎用コンピュータの性能が向上したことにより、従来は専用装置を用いないと実現困難であった数十ギガビット毎秒級のパケット処理が汎用コンピュータ上のソフトウェアにより実現可能になってきている。したがって、今後、大規模ネットワークにおいても、汎用コンピュータを活用したネットワーク構築により、急激な需要変動や新サービスのための機能追加実装を柔軟・迅速・安価に実現することが可能になると期待される。
しかし、このような大規模ネットワークにおいては、以降で議論するように、パケット処理のためのテーブル検索等の処理で、現在の汎用コンピュータアーキテクチャではメモリアクセス性能が支配的な性能ボトルネックとなり、これが大規模ネットワークにおける仮想化技術導入の性能観点での障壁になる。
一方、このメモリアクセス性能を高めるデバイスとして、3D積層メモリがある。3D積層メモリは、従来の2次元のDRAMを複数枚3次元方向に積層したもので、従来の2次元DRAM単一デバイス当たりのメモリ容量やアクセスの並列数が増加している。Hybrid Memory Cube(HMC。以降、本表記を使用)はHigh Bandwidth Memory(HBM。以降、本表記を使用)と並び有力な3D積層メモリである。HMCはその仕様が2013年4月に開示され、既にスーパーコンピュータ等の領域で使用されている。
HMCは、3次元形状を持つ半導体の層が4〜8枚積層され、各層がシリコン貫通電極によって接続されている。その積層した縦の列を“Vault”と呼び、各Vaultは、独立したDRAMベースのメモリであり独立にアクセス可能で並列動作が可能である。また、Vault内には、各層ごとに数個のBankと呼ばれる領域がある。同一Vault内でこれらBankは、共有バスにより接続されているが、共有バス衝突が発生しない範囲内で並列に動作(Bank間interleaving。以降、本表記を使用)可能。このため、汎用メモリデバイスながらきわめて高い性能を実現できる可能性を有している。特に、HBMに比べてHMCは単一デバイス当たりでより多くのvaultを有していることから、より高いメモリアクセス並列数が期待できる。
パケット処理におけるルーティングやフィルタリング等の処理は、特に高いメモリアクセス性能を要求する。テーブル検索処理に特化した場合、従来のネットワーク装置においては、TCAMのような専用の高速なメモリを使用されている。しかし、上記した仮想化技術を用いた柔軟かつ低コストな大規模ネットワーク実現に向けてTernary Content Addressable Memory(TCAM。以降、本表記を使用)のような専用デバイスを汎用コンピュータに組み込むというアプローチから望ましくないとともに、検索処理に限らず今後より多くのネットワーク機能が仮想化されていくうえでは、汎用コンピュータにおけるメモリアクセスの高性能化が必要である。
NFVを考慮した従来の汎用コンピュータアーキテクチャには、図8に示すような(1)のDDRx DRAM及び(2)のHMCを使用する方式がある。
図8の(1)では、上記したようにDouble−Data−Rate 3(DDR3)DRAMや速度がこの2倍となるDouble−Data−Rate 4(DDR4)DRAMを採用している。最近は、更にDDR4の2倍程度高速なDouble−Data−Rate 5(DDR5)等が次世代メモリとして登場してきている。このような、Double−Data−Rate xDRAM(DDRx DRAM。以降、本表記を使用)は、パケット処理においてパケットバッファやアドレス検索テーブル等に使用される。CPUは、マルチコア化されたマルチスレッドでの処理技術が一般化しており、並列処理が可能となっている。また、マルチコアCPUは、各CPUコア内や各CPUコアで共通に使用する低容量で高速動作可能なキャッシュメモリを内蔵しており、キャッシュメモリに納まる範囲内の処理であれば高い処理性能を発揮する。しかしながら、これらキャッシュメモリは、容量が小さく容量不足によりメインメモリであるDDRx DRAMへのアクセスが頻発した場合、性能のボトルネックが生じる。これは、DDRx DRAMは、アクセス速度がキャッシュメモリと比較して遅いとともに、アクセスの並列度がないかもしくは並列度があっても低いため、複数のCPUコア側が同時に多くのアクセス要求を出す場合、DDRx DRAM側がアクセス中でビジー状態となり、CPUコア側で待ち合わせ状態となるためである。
図8の(2)では、メモリとしてHMCを使用し、これを検索テーブル格納に使用している例を示している。非特許文献1及び2に示すように、HMCの並列アクセス性能を活かした並列パケット処理方式も検討されているが、近年のマルチコアCPUでは一つのCPU内に数十のコアが存在しており、HMC内のVault数も数十程度であることから、マルチコアCPUとHMCを用いた汎用コンピュータアーキテクチャにおいては、使用するCPUコア数およびVault数によってCPU内の共有キャッシュメモリのアクセス性能が装置全体の性能ボトルネックとなる可能性がある。一方で、マルチコアCPU内のキャッシュメモリとHMCを協調動作させることで、さらにパケット処理性能を高める余地が残されている。
Packet Matching on FPGAs Using HMC Memory: Towards One Million Rules, Proceedings of the 2017 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays T. Korikawa, A. Kawabata, F. He, and E. Oki, "Carrier-Scale Packet Processing System Using Interleaved 3D-Stacked DRAM," in IEEE ICC, May 2018, pp. 1-6.
大規模な通信事業者ネットワークを汎用コンピュータにより実現し、将来的な大容量トラヒックに対応するため、前述した従来アーキテクチャの延長によるパケット処理方式では、いずれは限界がくると想定される。これは、テーブル検索に代表される情報処理においてメモリアクセス性能不足が顕在化するためである。図8の従来アーキテクチャでのDDRx DRAMやHMC、また専用メモリであるTCAMでは、具体的には、以下が問題となってくる。
(1)DDRx DRAMを使用したアーキテクチャでは、メモリのアクセス並列度がないもしくは低い。マルチコアCPUの複数のCPUコアからDDRx DRAMへのアクセスが頻発した場合、アクセス待ち状態により情報処理性能のボトルネックになる。
(2)HMCの複数のVaultやBank間 interleavingを活用した並列メモリアクセスとマルチコアCPUを用いた並列処理により情報処理性能を高める際に、バースト性の高いトラヒック入力等により特定のメモリ領域へのアクセスが集中した場合、当該メモリ領域のメモリアクセス性能不足が情報処理装置全体の性能ボトルネックとなる。
(3)仮想化適用による柔軟な運用や低コスト化のメリットを享受するためには汎用コンピュータ等汎用装置でネットワークが作れることが重要だが、専用デバイスであるTCAMを使わないといけなかった高速テーブル検索などの領域の汎用デバイス化が課題となってくる。また、TCAMは、高価・高消費電力・小容量という課題もある。
これらの問題を解決するためには、従来のパケット処理装置アーキテクチャでなく、新しいパケット処理装置アーキテクチャが必要となる。特に、仮想化環境での使用を前提とした、汎用デバイスから構成される汎用装置で、高いメモリアクセス性能を実現するパケット処理の具体的な方式の考案が必要である。
上記目的を達成するために、本願発明は、複数のコア及び複数のコアで共有される共有キャッシュを有する演算装置と、前記演算装置からアクセスされるテーブルを記憶した記憶装置と、前記演算装置からの前記記憶装置の前記テーブルへのアクセスリクエストに基づき前記記憶装置へのメモリアクセスを制御するアクセス制御装置とを備えたパケット処理装置であって、前記演算装置は、複数のコアからのアクセスリクエストを前記共有キャッシュ又は前記記憶装置へ振り分けるアクセスリクエスト振分手段を備え、前記記憶装置は互いに並列アクセス可能な複数の記憶領域に区画されており、前記テーブルは分割されて前記記憶装置の前記記憶領域に分散して記憶されており、前記アクセス制御装置は、前記アクセスリクエストに対してアクセス対象データが格納されている記憶領域を特定する記憶領域特定手段と、前記記憶領域特定手段により特定された記憶領域にアクセスするアクセス制御手段と、前記演算装置からのアクセスリクエストによる前記記憶装置の負荷を監視するとともに負荷の高い記憶領域に記憶されている分割されたテーブルを前記共有キャッシュにコピーする負荷監視手段とを備えたことを特徴とする。
本発明によれば、パケット処理における入力トラヒックのバースト性およびそれによる特定分割テーブルへのメモリアクセス集中に対して、共有キャッシュメモリの協調動作有無を動的に切り替えることで、非バースト入力時、バースト入力時とも演算装置と記憶装置のもつ並列処理性能を最大限に引き出し、システム全体のスループットを最大化できる。
本発明に係るパケット処理装置の概要を示す構成図 HMC内のテーブル分散配置方式を説明する図 本発明の一実施の形態に係るパケット処理装置の機能ブロック図 本発明の一実施の形態に係る(Vault,Bank)対アクセス履歴部の構成例 本発明の一実施の形態に係るメモリアクセス制御動作を説明するフローチャート 本発明の一実施の形態に係るメモリアクセス制御動作を説明するフローチャート 本発明の一実施の形態に係るメモリアクセス制御動作を説明するフローチャート 従来技術を用いた汎用コンピュータアーキテクチャを説明する図
まず、本発明の概要について図面を参照して説明する。図1は本発明に係るパケット処理装置の概要を示す構成図である。
本発明では、上記の課題を解決するため、図1の本発明の汎用コンピュータアーキテクチャに示すような、並列アクセス可能なHybrid Memory Cube(HMC)300を検索テーブル等高速なアクセスが求められるデータの格納に用い、HMC300への並列アクセスを可能とするためのHMCコントローラ100を、マルチコアCPU200とHMC300間に、Field Programmable Gate Array(FPGA。以降、本表記を使用)等の再プログラム可能な汎用デバイスで実装し、HMCコントローラ100の一部機能によりトラヒックのバースト入力を検知するとともにそれに応じてCPU200内でHMC300に加えて共有キャッシュメモリ220を協調動作させてメモリアクセスリクエストを処理するかどうか動的に切り替えることを可能とするパケット処理アーキテクチャを提案する。これにより通信事業者ネットワークのような大規模ネットワークにおけるパケット処理等、高いメモリアクセス性能が求められるアプリケーションにおいて仮想化環境下での使用を想定して、トラヒックのバースト入力時にパケット処理装置全体としてパケット処理性能を低下させないパケット処理装置を構成する。なお、HMCコントローラ100は、特許請求の範囲に記載のアクセス制御装置に相当する。
図1において、CPUは、複数のCPUコア210を有するマルチコアCPU200で構成され、内部にキャッシュメモリを内蔵し、これと主メモリ用のDRAM400と接続している。キャッシュメモリは、各CPUコア専用のキャッシュメモリ211と、同じマルチコアCPU200内の全CPUコア210で共有される共有キャッシュメモリ220が存在する。HMC300は、前述したように、Vaultを複数有し(Vault 1〜Vault SのS個)、各Vaultは、マルチコアCPU200側から並列アクセス可能な構造をもつ。また、一つのVaultは複数のBankにより構成され、Bank間interleavingが可能である。パケット処理においては、パケット処理プログラム及びパケットバッファは、CPU200に接続されたDRAM400内に設け、パケット処理時間に特に影響する検索テーブル等データをHMC300内に設ける。
検索テーブル等データをHMC300内で並列アクセス可能な単位である複数のVaultとBankに分散して配置する。Bank間interleavingは同一Vault内の複数のBankへのメモリアクセスリクエストの順番を工夫することによる疑似的な並列アクセスであるため、メモリの容量効率も勘案して、元の検索テーブルを同一Vault内で分割して各Bankに分割配置し、Vault間では配置された検索テーブルデータを複製して配置する。この配置方式を分散配置と呼ぶこととし、あるVaultとBankで特定されるある領域に配置された部分的なテーブルデータを分割テーブルと呼ぶことにする。さらに、それらの分散配置された分割テーブルへのCPU200からのメモリアクセスリクエストを振り分けるためのHMCコントローラ100をCPU200とHMC300間に設ける。
本発明では、以下に示すように、パケット処理装置へのトラヒック入力のバースト性に応じて、当該トラヒックのパケット処理に必要な分割テーブルデータをHMC300に加えてマルチコアCPU200内の共有キャッシュメモリ220にも配置し、共有キャッシュメモリ220とHMC300の応答速度およびメモリアクセスの並列数の違いを考慮してパケット処理後のパケットの順序を極力維持するためにメモリアクセスリクエストを制御する。
(1)HMCコントローラ100内の一部機能により、HMC300内のアクセス先Vaultの統計情報とあらかじめプログラムされている閾値との比較を行い、入力トラヒックのバースト性が閾値以上であるかどうか判断する。
(2)上記(1)の判断により、マルチコアCPU200内のリクエスト振り分け機構230において、入力トラヒックのバースト性が高く、特定の分割テーブルへのアクセスが集中することにより、他分割テーブルへのメモリアクセス性能が低下しパケット処理装置全体のパケット処理性能が低下している場合は、アクセスが集中している分割テーブルのデータをマルチコアCPU200内の共有キャッシュメモリ220にコピーする。
(3)リクエスト振り分け機構230では、マルチコアCPU200内の共有キャッシュメモリ220とHMC300のメモリ応答速度およびメモリアクセス並列数の違いを考慮し、メモリアクセスリクエストのスケジューリングを行う。
上記(1)、(2)により、バーストトラヒック入力時にパケット処理性能が低下することを動的に回避しつつ、上記(3)によりマルチコアCPU200内の共有キャッシュメモリ220とHMC300の協調動作を行い、メモリアクセス応答速度や並列数の違いによるパケット順序の変更を抑えることが可能となる。
本発明の実施の形態に係るパケット処理装置ついて図1〜図7を参照して説明する。
図2は、図1のHMC内のテーブル分散配置方式を具体化したものである。図2に示すように、HMC300が、1つのVault内のN個のBankにおいて、ルーティングテーブルやフローテーブル等の検索テーブル全体をテーブル1からテーブルNまで等分割して配置し、この一つのVaultに配置した検索テーブルを、さらに残りの全てのVaultにコピーして配置する。これにより、同一テーブル番号のアクセスが競合しても複数のVaultに同一内容の検索テーブルがあるため、Vault間の並列動作が可能となる。また、1つのVault内では、Bank間のinterleavingによる並列動作が可能である。これら並列動作機能を高めた方式の採用により、CPUからの検索テーブルアクセス頻度が増大する、より高いレートでのパケット処理が期待できる。
図3は、図1にその概略を示した、本発明におけるメモリアクセス制御機構構成を示したものである。図3において、本発明は、マルチコアCPU200およびDRAM400、HMCコントローラ100、HMC300の3つの主要な要素から構成される。
マルチコアCPU200には、数個〜数十個の複数のCPUコア210とこれに内蔵される各CPUコア専用のキャッシュメモリ211、全CPUコア210で共有される共有キャッシュメモリ220、各CPUコア210からのメモリアクセスリクエストを共有キャッシュメモリ220またはHMC300方面へと振り分けるリクエスト振り分け機構230がある。
リクエスト振り分け機構230は、後述するように、CPUコア210からHMC300へのメモリアクセスリクエストを、共有キャッシュメモリ220又は(HMCコントローラ100を介して)HMC300に振り分けて送出する第1の処理を行う、或いは、全てのメモリアクセスを共有キャッシュメモリ220を介することなくHMC300に送出する第2の処理を行う。第1又は第2のいずれの処理を行うかは、HMCコントローラ100からの指示に基づく。
ここで、振り分け処理においてメモリアクセスの振り分け先の決定は、単位時間あたりの、共有キャッシュメモリ220に送出するメモリアクセスリクエストの数と、共有キャッシュメモリ220を介することなくHMC300に送出するメモリアクセスリクエストの数の比率が所定値となるように決定する。この所定値は、マルチコアCPU200内の共有キャッシュメモリ220とHMC300のメモリ応答速度およびメモリアクセス並列数の違いを考慮して決定される。本実施の形態では、例えば、共有キャッシュメモリ220の応答速度、HMC300の各(Vault,Bank)対の応答速度とVault数の積の比とする。
HMC300には、前述したように、並列動作できる32個程度のVaultがあり、それぞれのVaultには16個程度のBankがある。
このマルチコアCPU200とHMC300間にHMCアクセスの制御および入力トラヒックのバースト性を判断する機構をもつHMCコントローラ100を設ける。
HMCコントローラ100は、FPGA等の再プログラム可能な汎用デバイスにより構成可能である。HMCコントローラ100には、マルチコアCPU200からHMC300へのメモリアクセスリクエストを受け付け、アクセス結果を返すCPUインタフェース部110と、これと接続してメモリリクエストからテーブル検索処理等に必要な宛先アドレス等の情報を抽出するパケット付随情報抽出部120と、この抽出した宛先アドレス等からハッシュ計算によりHMC300の検索テーブルの分割テーブル番号(1〜N)を特定する分割テーブル特定部130と、分割テーブル番号をもとに各分割テーブルへのメモリアクセスの負荷を監視する負荷監視部140と、この負荷監視部140においてマルチコアCPU200内のリクエスト振り分け機構230に対してメモリアクセスリクエストの振り分けを指示するか判断するために必要な閾値をあらかじめプログラムしておき必要に応じて参照する負荷閾値部150と、分割テーブル番号とこれに対応するHMC300のBank番号を特定するBank番号特定部160と、Bank番号および分割テーブル番号からHMC300のアクセス先Vaultを決定するVault決定部170と、このアクセスするVaultを決定する際に(Vault,Bank)対がアイドル状態(メモリアクセス中でない状態)であるのかビジー状態(メモリアクセス中状態)なのかを表示している(Vault,Bank)対アクセス履歴部180と、および決定したアクセス先(Vault,Bank)対アドレスをもとにHMC300を実際にアクセスするインタフェース部となるHMCアクセスコントローラ部190とから構成される。
図4は、図3の(Vault,Bank)対アクセス履歴部180におけるHMC300内の(Vault,Bank)対が現在、アイドル状態なのかビジー状態なのかを表示するアクセス表示フラグ構成を示す。マトリックス構成(Bank番号、Vault番号)で行がBank番号を示し、Bank 1からBank Nまでであり、列がVault番号を示し、Vault 1からVault Sまである。現状のHMC300では、前述したように最大でも16×32程度の簡易なマトリックスであり、アイドル状態時が“0”でビジー状態が“1”のフラグ表示構成となっている。本フラグは、HMC300アクセス開始時に“1”を立て、HMCアクセス完了時に“0”リセットする。図4では、例として、マトリックス(3,2)においてBank 3がアクセス該当部となった場合、Vault 2が“0”でアイドル状態であり、アクセス可能な状態にあることを示す。
以下、図3、図4の構成をもとに、メモリアクセスリクエストの流れおよびメモリアクセス制御の流れについて図5〜図7を用いて説明する。
図5において、図3のマルチコアCPU200からHMC300へのアクセスに伴うメモリリクエストを受け付け、HMCコントローラ100の処理を開始する(ステップS101)。
CPUインタフェース部110では、受け付けたHMC300へのメモリアクセスリクエストをパケット付随情報抽出部120に転送する(ステップS102)。
これを受信したパケット付随情報抽出部120では、メモリアクセスリクエストの内容に応じて検索テーブル処理に必要な宛先アドレス等の情報を抽出する(ステップS103)。
この抽出した宛先アドレス等の情報をもとに分割テーブル特定部130では、ハッシュ計算によりHMC300の検索テーブルの分割テーブル番号(1〜N)を特定する(ステップS104)。
負荷監視部140では、各分割テーブルへのメモリアクセスリクエスト数により各分割テーブルへの負荷を監視し、負荷閾値部150のあらかじめプログラムされている閾値と比較する(ステップS105)。閾値との比較により、閾値を超える場合、負荷が集中している分割テーブルの内容をマルチコアCPU200内の共有キャッシュメモリ220に上書きコピーし(ステップS106,S108)、それ以後のメモリアクセスリクエストについては共有キャッシュメモリ220の応答速度、HMC300の各(Vault,Bank)対の応答速度とVault数の積の比で共有キャッシュメモリ220とHMC300に振り分けるように負荷監視部140がリクエスト振り分け機構230に指示する(ステップS109)。
また、閾値との比較により、閾値を超えない場合は、それ以後のメモリアクセスリクエストについては共有キャッシュメモリ220を介さずにHMC300に直接行うように負荷監視部140がリクエスト振り分け機構230に指示する(ステップS106,S107)。
次に、Bank番号特定部160では、分割テーブル特定部130で特定した分割テーブル番号からこれと対応するHMC300内のアクセス先Bank番号を特定する(ステップS110)。
Vault決定部170では、Bank番号からHMC300のアクセス先Vaultを決定するために該当するBank番号のうちアイドル状態のVaultを見つけるため(Vault,Bank)対アクセス履歴部180にアイドル状態の参照要求を出す(ステップS111)。この参照要求を受信した(Vault,Bank)対アクセス履歴部180では、図4に示す(Vault,Bank)対のアイドル状態かビジー状態かを表示するアクセス状態表示フラグを該当アクセスBank部分について順次確認する(ステップS112)。該当アクセスBank部分の全Vaultがすべてビジー状態である(すべてフラグ“1”)場合、一定時間W(1〜数クロック程度)待機し(ステップS113,S115)、再びフラグを順次確認する(ステップS112)。一方、(Vault,Bank)対アクセス履歴部180は、アイドル状態を最初に見つけたVault番号を参照番号結果としてVault決定部170に返送する(ステップS113,S114)。この返送直後に、当該(Vault,Bank)対のアクセス状態表示フラグを“1”としてビジー状態にする(ステップS116)。
アクセスするVault番号を参照結果として受け取ったVault決定部170では、アクセスするBank番号とVault番号の対をHMCアクセスコントローラ部190にアクセス要求する(ステップS117)。これを受信したHMCアクセスコントローラ部190では、この(Vault,Bank)対番号よりHMC300の該当アドレスを割り出して、HMC300に対してアクセス要求を出す(ステップS118)。このアクセスにおいて、HMC300からアクセス応答の状態を監視し(ステップS119)、アクセス応答が正常である場合にはアクセス結果をVault決定部170に返却転送する(ステップS120)。
これを受信したVault決定部170では、(Vault,Bank)対アクセス履歴部180の対応する(Vault,Bank)対のアクセス状態表示フラグを“0”にリセット要求を出しアクセス結果をCPUインタフェース部110に返送する(ステップS121)。リセット要求に従って、(Vault,Bank)対アクセス履歴部では該当のアクセス状態表示フラグを“0”にリセットしアイドル状態とする(ステップS122)。
一方、HMCアクセスコントローラ部190は、HMC300からのアクセス応答が異常でエラーがあった場合には、アクセス結果をエラーとしてVault決定部170に返却する(ステップS123)。Vault決定部170では、これをアクセスエラーとしてCPUインタフェース部110に返送する(ステップS124)。マルチコアCPU200では、エラー内容に応じてアプリケーションレベルで適宜エラー処理を行う。この流れをもって、メモリアクセスおよびメモリアクセス制御を終了する。
本実施の形態に係るパケット処理装置によれば、パケット処理における入力トラヒックのバースト性およびそれによる特定分割テーブルへのメモリアクセス集中に対して、共有キャッシュメモリ220の協調動作有無を動的に切り替えることで、非バースト入力時、バースト入力時ともマルチコアCPU200およびHMC300のもつ並列処理性能を最大限に引き出し、システム全体のスループットを最大化できる。
また、本実施の形態に係るパケット処理装置によれば、HMC300を含め汎用デバイスから成る汎用コンピュータによるシステム構成のため、幅広い既存アプリケーションをより高速に動作させることが可能である。
また、本実施の形態に係るパケット処理装置によれば、TCAMに比べて低消費電力なDRAMベースのHMCの採用により、システム全体の消費電力削減や実装面積削減によるコンパクト化が可能となる。
以上、本発明の一実施の形態について詳述したが、本発明は上記実施の形態に限定されるものではなく、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよい。
例えば、上記実施の形態では、HMCコントローラ100をFPGA等の再プログラム可能な汎用デバイスで実装していたが、専用デバイスとして実装してもよい。また、上記実施の形態では、HMCコントローラ100をマルチコアCPU200やHMC300とは別デバイスとして実装していたが、HMCコントローラ100の全部又は一部をマルチコアCPU200に実装するようにしてもよい。
また、上記実施の形態では、記憶装置の一例としてHMCについて説明したが、並列アクセス可能なブロック(Vaultやメモリチャネル)及びバンク構成を有する他の構造・規格の記憶装置であっても本発明を適用できる。
100…HMCコントローラ
110…CPUインタフェース部
120…パケット付随情報抽出部
130…分割テーブル特定部
140…負荷監視部
150…負荷閾値部
160…Bank番号特定部
170…Vault決定部
180…(Vault,Bank)対アクセス履歴部
190…HMCアクセスコントローラ部
200…マルチコアCPU
210…CPUコア
211…コア専用キャッシュメモリ
220…共有キャッシュメモリ
230…リクエスト振り分け機構
300…HMC

Claims (5)

  1. 複数のコア及び複数のコアで共有される共有キャッシュを有する演算装置と、前記演算装置からアクセスされるテーブルを記憶した記憶装置と、前記演算装置からの前記記憶装置の前記テーブルへのアクセスリクエストに基づき前記記憶装置へのメモリアクセスを制御するアクセス制御装置とを備えたパケット処理装置であって、
    前記演算装置は、複数のコアからのアクセスリクエストを前記共有キャッシュ又は前記記憶装置へ振り分けるアクセスリクエスト振分手段を備え、
    前記記憶装置は互いに並列アクセス可能な複数の記憶領域に区画されており、
    前記テーブルは分割されて前記記憶装置の前記記憶領域に分散して記憶されており、
    前記アクセス制御装置は、前記アクセスリクエストに対してアクセス対象データが格納されている記憶領域を特定する記憶領域特定手段と、前記記憶領域特定手段により特定された記憶領域にアクセスするアクセス制御手段と、前記演算装置からのアクセスリクエストによる前記記憶装置の負荷を監視するとともに負荷の高い記憶領域に記憶されている分割されたテーブルを前記共有キャッシュにコピーする負荷監視手段とを備えた
    ことを特徴とするパケット処理装置。
  2. 前記負荷監視手段は、前記記憶装置の負荷に応じた振分指示を前記アクセスリクエスト振分手段に通知し、
    前記アクセスリクエスト振分手段は、前記振分指示に応じた比率でアクセスリクエストを前記共有キャッシュ又は前記記憶装置へ振り分ける
    ことを特徴とする請求項1記載のパケット処理装置。
  3. 前記記憶装置は互いに並列アクセス可能なS個(Sは2以上の自然数)のブロックに区画されており、
    前記各ブロックは互いに並列アクセス可能なN個(Nは2以上の自然数)のバンクに区画されており、
    前記テーブルをN個の分割テーブルに分割し、前記S個のブロックのそれぞれにおいて、前記N個の分割テーブルを前記N個のバンクに対応させて記憶した
    ことを特徴とする請求項1又は2記載のパケット処理装置。
  4. 複数のコア及び複数のコアで共有される共有キャッシュを有する演算装置と、前記演算装置からアクセスされるテーブルを記憶した記憶装置と、前記演算装置からの前記記憶装置の前記テーブルへのアクセスリクエストに基づき前記記憶装置へのメモリアクセスを制御するアクセス制御装置とを備えたパケット処理装置におけるメモリアクセス制御方法であって、
    前記記憶装置は互いに並列アクセス可能な複数の記憶領域に区画されており、
    前記テーブルは分割されて前記記憶装置の前記記憶領域に分散して記憶されており、
    前記演算装置のアクセスリクエスト振分手段が、複数のコアからのアクセスリクエストを前記共有キャッシュ又は前記記憶装置へ振り分ける工程と、
    前記アクセス制御装置の記憶領域特定手段が、前記アクセスリクエストに対してアクセス対象データが格納されている記憶領域を特定する工程と、
    前記アクセス制御装置のアクセス制御手段が、前記記憶領域特定手段により特定された記憶領域にアクセスする工程と、
    前記アクセス制御装置の負荷監視手段が、前記演算装置からのアクセスリクエストによる前記記憶装置の負荷を監視するとともに負荷の高い記憶領域に記憶されている分割されたテーブルを前記共有キャッシュにコピーする工程とを備えた
    ことを特徴とするパケット処理装置におけるメモリアクセス制御方法。
  5. コンピュータを、請求項1乃至3何れか1項記載の情報処理装置のアクセス制御装置として機能させる
    ことを特徴とするメモリアクセス制御プログラム。
JP2019132580A 2019-07-18 2019-07-18 パケット処理装置及びそのメモリアクセス制御方法並びにプログラム Pending JP2021018510A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019132580A JP2021018510A (ja) 2019-07-18 2019-07-18 パケット処理装置及びそのメモリアクセス制御方法並びにプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019132580A JP2021018510A (ja) 2019-07-18 2019-07-18 パケット処理装置及びそのメモリアクセス制御方法並びにプログラム

Publications (1)

Publication Number Publication Date
JP2021018510A true JP2021018510A (ja) 2021-02-15

Family

ID=74563641

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019132580A Pending JP2021018510A (ja) 2019-07-18 2019-07-18 パケット処理装置及びそのメモリアクセス制御方法並びにプログラム

Country Status (1)

Country Link
JP (1) JP2021018510A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117393013A (zh) * 2023-12-09 2024-01-12 深圳星云智联科技有限公司 统计应用中的高效ddr控制方法及相关装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117393013A (zh) * 2023-12-09 2024-01-12 深圳星云智联科技有限公司 统计应用中的高效ddr控制方法及相关装置
CN117393013B (zh) * 2023-12-09 2024-04-09 深圳星云智联科技有限公司 统计应用中的高效ddr控制方法及相关装置

Similar Documents

Publication Publication Date Title
US10887238B2 (en) High performance, scalable multi chip interconnect
US9690502B2 (en) Systems and methods for segmenting data structures in a memory system
US8984085B2 (en) Apparatus and method for controlling distributed memory cluster
US10379766B2 (en) Access processor
US7287255B2 (en) System and method for dynamic ordering in a network processor
JP4299536B2 (ja) Dramベースのランダム・アクセス・メモリ・サブシステムでツリー・アクセスに関する性能を改善するためのマルチ・バンク・スケジューリング
EP2240852B1 (en) Scalable sockets
US20120278587A1 (en) Dynamic Data Partitioning For Optimal Resource Utilization In A Parallel Data Processing System
US7944931B2 (en) Balanced bandwidth utilization
US7802025B2 (en) DMA engine for repeating communication patterns
US20230275832A1 (en) Networking processor and network device
KR102693395B1 (ko) 동적 다중 뱅크 메모리 커맨드 병합
CN110830574B (zh) 一种基于docker容器实现内网负载均衡的方法
JP2021018510A (ja) パケット処理装置及びそのメモリアクセス制御方法並びにプログラム
CN110658983A (zh) 用于机架实施方式的非易失性存储器模块
US7089378B2 (en) Shared receive queues
US9658951B1 (en) Scalable high bandwidth memory in a network device
US10862755B2 (en) High-performance data repartitioning for cloud-scale clusters
US9104465B2 (en) Main processor support of tasks performed in memory
JP6991446B2 (ja) パケット処理装置及びそのメモリアクセス制御方法
JP2018148455A (ja) 情報処理装置及び方法
CN114880272A (zh) 全局高度数顶点集合通信的优化方法及应用
KR20210122056A (ko) 스토리지 장치들을 포함하는 스토리지 서버의 성능 스케일링
JP2021018509A (ja) 情報処理装置及びそのメモリアクセス制御方法並びにプログラム
US8732264B2 (en) HiperSockets SIGA light-sending without outbound queue

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20190719

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20190719