JP2019080190A - 通信装置 - Google Patents

通信装置 Download PDF

Info

Publication number
JP2019080190A
JP2019080190A JP2017206168A JP2017206168A JP2019080190A JP 2019080190 A JP2019080190 A JP 2019080190A JP 2017206168 A JP2017206168 A JP 2017206168A JP 2017206168 A JP2017206168 A JP 2017206168A JP 2019080190 A JP2019080190 A JP 2019080190A
Authority
JP
Japan
Prior art keywords
data
unit
kernel
memory
accelerator
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
JP2017206168A
Other languages
English (en)
Other versions
JP6954535B2 (ja
Inventor
貴大 鈴木
Takahiro Suzuki
貴大 鈴木
サンヨプ キム
Sang-Yuep Kim
サンヨプ キム
淳一 可児
Junichi Kani
淳一 可児
敏博 塙
Toshihiro Hanawa
敏博 塙
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
University of Tokyo NUC
Original Assignee
Nippon Telegraph and Telephone Corp
University of Tokyo 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, University of Tokyo NUC filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2017206168A priority Critical patent/JP6954535B2/ja
Publication of JP2019080190A publication Critical patent/JP2019080190A/ja
Application granted granted Critical
Publication of JP6954535B2 publication Critical patent/JP6954535B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)
  • Communication Control (AREA)

Abstract

【課題】汎用デバイスを用いて信号処理を高速に行うことができる通信装置を提供する。【解決手段】IF回路11は、受信した信号を所定の規格のデータに変換する。GPU120aは、変換されたデータに対する信号処理を実行する。CPU13は、IF回路11において信号が変換されたことによる割り込みを受けると、GPU120aにおけるデータの転送先アドレスをIF回路11に設定して転送を指示し、GPU120aにカーネルの起動を指示する。IF回路11は、CPU13からの指示を受け、変換したデータをGPU120aの転送先アドレスへ転送する。GPU120aは、CPU13からの指示を受けて起動したカーネルにより、IF回路11から転送先アドレスに転送されたデータを用いた信号処理を実行させる。【選択図】図3

Description

本発明は、通信装置に関する。
近年、ネットワークの分野では仮想化が注目されている。仮想化により、実際の物理的なハードウェア構成によらず、ネットワークを構成する装置を論理的に利用できる。仮想化のため、光アクセスシステムにおいて従来は専用のハードウェアで作られていた装置を汎用ハードウェアで構成し、機能をソフトウェアで実装する構成が検討されている。機能をソフトウェアで実現することで、装置の機能が入れ替え可能となり、装置の共通化やリソース共有化が図れるため、CAPEX(Capital Expenditure)の削減が期待できる。また、機能のアップデートや設定変更を容易とすることでも、CAPEX削減に繋がると考えられている。そこで、光アクセスシステムのソフトウェア領域を物理層処理にまで拡大し、光アクセスシステムを構成する通信装置が備えるGPU(Graphics Processing Unit)等のアクセラレータに物理層処理を実装することが考えられる。
しかしながら、従来は通信処理の物理演算は専用チップを用いて行われてきたため、GPUを使って処理を行う従来研究は少ない。一方で、FPGA等のハードウェアを使って、誤り訂正を実装する検討例は複数存在する(例えば、非特許文献1、2参照)。これらの検討はRTL(Register Transfer Level)の設計であり、レジスタ間のタスクレベルの並列性や全体のアーキテクチャの提案となっているため、GPUを活用する本検討の設計思想とは異なっている。
誤り訂正をGPUで実行する例として、RAID(Redundant Arrays of Inexpensive Disks)システムへの適応がある(例えば、非特許文献3参照)。この手法においては具体的な実装方法までは記載されておらず、システムの提案を行っているのみである。加えて、システムのスループットも大きくない。
また、GPUへのデータの転送技術としては、図8に示すように、一般的にはCPUからGPUに転送を行う構成が用いられる。DMA(Direct Memory Access)転送用メモリとして、高速なDDP−DRAM(Dual-Data-Port Dynamic Random Access Memory)を用いる手法が挙げられる(例えば、非特許文献4参照)。しかし、調査した限り、汎用化されていない規格の信号の外部入力を、CPUを介さずに直接GPUに転送する方法はない。
Hanho Lee, Chang-Seok Choi, Jongyoon Shin, Je-Soo Ko, "100-Gb/s Three-Parallel Reed-Solomon based Foward Error Correction Architecture for Optical Communications", International SoC Design Conference 2008 (ISOCC '08), p. I-265-I-268, 2008年11月 Hanho Lee, "A High-Speed Low-Complexity Reed-Solomon Decoder for Optical Communications", IEEE Transactions on Circuits and Systems II: Express Briefs, Vol.52, No.8, p.461-465, 2005年8月 Matthew L. Curry, Anthony Skjellum, H. Lee Ward, Ron Brightwell, "Accelerating Reed-Solomon Coding in RAID systems with GPUs", IEEE International Symposium on Parallel and Distributed Processing 2008 (IPDPS 2008), 2008年4月 Donghyuk Lee, Lavanya Subramanian, Rachata Ausavarungnirun, Jongmoo Choi, Onur Mutlu, "Decoupled Direct Memory Access: Isolating CPU and IO Traffic by Leveraging a Dual-Data-Port DRAM", In Proceedings of the 2015 International Conference on Parallel Architecture and Compilation (PACT), 2015年10月
上記事情に鑑み、本発明は、汎用デバイスを用いて信号処理を高速に行うことができる通信装置を提供することを目的としている。
本発明の一態様は、受信した信号を所定の規格のデータに変換するインタフェース回路と、前記データに対する信号処理を実行するアクセラレータと、前記アクセラレータ及び前記インタフェース回路を制御する中央処理装置とを備え、前記中央処理装置は、前記インタフェース回路において前記信号が変換されたことによる割り込みを受ける割り込み受信部と、前記割り込み受信部が割り込みを受けた場合に、前記アクセラレータにおける前記データの転送先アドレスを前記インタフェース回路に設定するアドレス設定部と、前記データを前記転送先アドレスへ転送するよう前記インタフェース回路に指示する転送指示部と、前記アクセラレータにカーネルの起動を指示するカーネル制御部とを備え、前記インタフェース回路は、前記転送指示部からの指示を受け、前記データを前記アクセラレータの前記転送先アドレスへ転送し、前記アクセラレータは、前記カーネル制御部からの指示を受けてカーネルを起動し、起動したカーネルにより、前記インタフェース回路から前記転送先アドレスに転送された前記データを用いた前記信号処理を実行させる、通信装置である。
本発明の一態様は、上述の通信装置であって、前記中央処理装置は、前記割り込み受信部が割り込みを受けた場合に、前記データの転送先となる仮想アドレスを決定するアドレス制御部をさらに有し、前記アドレス設定部は、予め確保した仮想メモリと物理メモリとのマッピングに基づき、前記アドレス制御部が決定した仮想アドレスの前記仮想メモリに対応した前記物理メモリのアドレスを前記転送先アドレスとする。
本発明の一態様は、上述の通信装置であって、前記カーネル制御部は、外部から入力された前記通信装置の起動方法に応じて、前記アクセラレータにおいて前記信号処理を行うハードウェアに関する設定と前記信号処理の処理内容に関する設定との少なくとも一方を取得し、取得した前記設定に基づいて前記カーネルの起動を指示する。
本発明の一態様は、上述の通信装置であって、前記カーネル制御部は、前記割り込み受信部が信号の入力を示す割り込み信号を前記インタフェース回路から受信する度にカーネルを起動し、前記アクセラレータは、前記カーネル制御部からの前記指示を受けてカーネルを実行するカーネル実行部を複数有しており、複数の前記カーネル実行部それぞれが起動したカーネルにより前記信号処理を実行させた結果得られたデータを、カーネルの起動順に出力する。
本発明の一態様は、上述の通信装置であって、前記信号処理は、誤り訂正処理を含み、前記アクセラレータは、前記インタフェース回路からグローバルメモリに転送された誤り訂正処理の対象の前記データを高速メモリに格納し、前記高速メモリに格納された前記データを用いた誤り訂正処理の実行と並行して誤り訂正処理の対象の前記データをコピーした出力データを前記グローバルメモリに格納し、実行中の誤り訂正処理において誤り発生部分が検出された場合には前記誤り発生部分のデータを前記出力データから取得して高速メモリに転送し、高速メモリに格納された前記誤り発生部分のデータに対して誤りを訂正した結果を用いて、前記グローバルメモリに格納された前記出力データにおける前記誤り発生部分を書き換える。
本発明の一態様は、上述の通信装置であって、前記信号処理は、誤り訂正処理を含み、前記アクセラレータは、前記誤り訂正処理において用いられるバイナリとガロア体の対応を示す対応テーブルをコンスタントメモリに格納しておき、前記誤り訂正処理の実行時にスレッドブロック単位で前記対応テーブルを前記コンスタントメモリから高速メモリに転送する。
本発明の一態様は、上述の通信装置であって、前記信号処理は、物理層の演算処理を含む。
本発明の一態様は、上述の通信装置であって、前記通信装置は、端局装置であり、前記インタフェース回路は、終端装置から受信した受動光ネットワークの規格の信号を所定の規格のデータに変換する。
本発明により、通信装置は、汎用デバイスを用いて信号処理を高速に行うことが可能となる。
第1の実施形態による通信装置のハードウェア構成を示す図である。 同実施形態による各ハードウェアの機能構成を示す図である。 同実施形態によるIF回路及びCPUが備える機能の詳細を示す図である。 第2の実施形態によるハードウェアの設定フローを示す図である。 第3の実施形態によるストリーム処理を用いた高速化手法を示す図である。 第4の実施形態による誤り訂正処理のメモリアクセス高速化方法を示す図である。 第5の実施形態による誤り訂正処理のテーブルアクセス高速化方法を示す図である。 従来技術によるGPUへのデータの転送を示す図である。
以下、図面を参照しながら本発明の実施形態を詳細に説明する。
本実施形態では、光アクセスシステムにおける仮想的な通信装置のソフトウェア領域を、誤り訂正機能を含む物理層処理にまで拡大する。具体的には、GPU(Graphics Processing Unit)等のアクセラレータに物理層処理を実装する。物理層処理は演算量が大きいため、従来は専用チップのASIC(Application Specific Integrated Circuit)で実装されている。物理層処理は、一般的に汎用ハードウェアでの高速処理が難しく、CPU(central processing unit)のみの利用ではスループットの性能達成が困難である。また、汎用プロセッサの動向としても、CPUの性能は頭打ちとなってきており、GPU、FPGA(field-programmable gate array)等のアクセラレータと組み合わせることによって性能向上を行うようになってきている。しかし、物理層処理をアクセラレータに実装するためには、以下の問題がある。
(1)GPU等の汎用デバイスであるアクセラレータへのデータの入出力方法を含めた通信処理における物理演算を高速に行うことが必要である。
(2)CPU等に専用回路として実装されたイーサネット(登録商標)やPCIe(ピーシーアイエクスプレス)の規格ではなく、光アクセスシステムのPON規格の信号をアクセラレータへ転送するための実装方法を検討する必要がある。
(3)演算量が大きい誤り訂正機能を、アクセラレータが高スループットで行うような実装を実現する必要がある。
上記の問題を解決するために、本実施形態の通信装置は以下を実装する。
(1)外部装置との間で信号の送受信を行うIF(インタフェース)回路において、外部装置との間で使用する規格(例えば、PON規格)の信号を汎用の規格に変換した後に、CPUを介さずに入力データをIF回路から直接アクセラレータに転送する。
(2)CPUは、予めアクセラレータのメモリ確保を行って物理メモリと仮想メモリとの対応付けを行い、IF回路からアクセラレータへのデータの転送制御を行う。
(3)ストリーム処理によるパイプライン化で高速化を行う。CPUは、外部装置からの信号受信によってデータ入力が発生する度にアクセラレータのカーネルを起動し、最も早く実行したカーネルの出力データを外部に出力する。
(4)誤り訂正復号化においては、入力データの参照回数が多く、出力データの参照回数が少ないという特徴を利用し、アクセラレータは、入力データを低速メモリから高速メモリに保持して誤り訂正復号化を行い、出力データについては必要なデータのみをその都度参照して低速メモリから高速メモリに保持する方法を実装して高速化する。
(5)アクセラレータは、誤り訂正復号化に使用されるバイナリ−ガロア体の対応を事前計算した対応テーブルをあらかじめコンスタントメモリに転送しておく。アクセラレータは、カーネル起動の度にスレッドブロック毎にコンスタントメモリから高速メモリに対応テーブルをコピーし、その後の計算に利用することで高速化する。
上記により、PON信号等の任意のプロトコルの信号を、IF回路からCPUを介さずにアクセラレータへ効率的に転送することが可能となる。また、アクセラレータで動作する誤り訂正復号化の処理が高速化される。
以下に、詳細な実施形態を説明する。
[第1の実施形態]
図1は、本実施形態の通信装置1のハードウェア構成を示す図である。通信装置1は、例えば、PON(Passive Optical Network;受動光ネットワーク)における光加入者線端局装置(OLT:Optical Line Terminal)であり、外部装置である1以上の光回線終端装置(ONU:Optical Network Unit)及び上位装置と接続される。ONUから上位装置方向への通信を上り、上位装置からONU方向への通知を下りと記載する。通信装置1は、IF(インタフェース)回路11、アクセラレータボード12及びCPU(Central Processing Unit;中央処理装置)13を備える。
IF回路11は、例えば、FPGA(field-programmable gate array)、専用ボード等である。IF回路11は、外部装置とプロセッサ間の信号の入出力を行う。IF回路11は、受信信号に含まれる主信号をアクセラレータボード12に搭載されたアクセラレータに転送する。また、IF回路11は、一部の主信号をCPU13に転送する。アクセラレータボード12に搭載されるアクセラレータは、例えば、GPU(Graphics Processing Unit)であるが、FPGAやDSP(Digital Signal Processor)等でもよい。アクセラレータボード12に搭載されたGPU(又はFPGA、DSP)は、IF回路11から転送された主信号を用いて物理演算を行う。この物理演算は、物理層処理を含む信号処理の演算である。CPU13は、IF回路11から転送された一部の主信号の信号処理を行なったり、トラヒック解析、管理機能等の一部アプリケーションを動作させたりする。
図2は、各ハードウェアの機能構成を示す図である。IF回路11として使用されるFPGA110は、光・電気変換部111、転送処理部112及び転送処理部113を備える。光・電気変換部111は、ONUから受信したPON信号入力(上り信号)に対して光信号を電気信号に変換する光・電気変換を行い、汎用デバイスが受信可能な規格の信号(PCIe、イーサネット(登録商標))へのフレーム変換を行う。また、光・電気変換部111は、その逆の処理を行う。すなわち、光・電気変換部111は、転送処理部112から出力されたPCIeやイーサネット(登録商標)などの規格の下り信号を、電気信号から光信号のPON信号に変換し、ONUに送信する。転送処理部112は、光・電気変換部111が出力したPON信号から主信号を取得してアクセラレータ120に転送し、アクセラレータ120が出力した主信号を光・電気変換部111へ転送する転送処理を行う。転送処理部113は、アクセラレータ120が出力した上り信号を上位装置に転送し、上位装置から受信した下り信号をアクセラレータ120へ転送する。
アクセラレータ120は、例えばGPUであり、図1のアクセラレータボード12に搭載される。アクセラレータ120は、カーネル実行部121及びカーネル実行部122を有する。
カーネル実行部121は、カーネルを実行し、上り信号に対する物理演算を行うブロック同期部1211、ライン復号化部1212、誤り訂正復号化部1213、及び、PON MAC(Medium Access Control)処理部1214を動作させる。ブロック同期部1211は、FPGA110から転送された上りの主信号に対してブロック同期を行い、ライン復号化部1212に出力する。ライン復号化部1212は、ブロック同期部1211が出力した上りの主信号にライン復号化等を行い、誤り訂正復号化部1213に出力する。誤り訂正復号化部1213は、ライン復号化部1212が出力した上りの主信号に誤り訂正復号を行い、PON MAC処理部1214に出力する。PON MAC処理部1214は、誤り訂正復号化部1213が出力した上りの主信号に対して、PON MAC処理を行い、FPGA110の転送処理部113に転送する。
カーネル実行部122は、カーネルを実行し、下り信号に対する物理演算を行うPON MAC処理部1221、暗号化符号化部1222、誤り訂正符号化部1223及びライン符号化部1224を動作させる。PON MAC処理部1221は、FPGA110の転送処理部113から転送された主信号に対してPON MAC処理を行い、暗号化符号化部1222に出力する。暗号化符号化部1222は、PON MAC処理部1221が出力した下りの主信号に暗号化及び符号化を行い、誤り訂正符号化部1223に出力する。誤り訂正符号化部1223は、暗号化符号化部1222が出力した下りの主信号に誤り訂正符号化を行い、ライン符号化部1224に出力する。ライン符号化部1224は、誤り訂正符号化部1223が出力した下りの主信号にライン符号化等を行い、FPGA110の転送処理部112に転送する。
CPU13は、転送制御部131、カーネル制御部132、メモリコピー部133及び管理アプリ実行部134を備える。転送制御部131は、FPGA110の転送処理部112及び転送処理部113に対して転送命令を出力することにより、主信号(データ)の転送の制御を行う。カーネル制御部132は、アクセラレータ120におけるカーネル実行部121、122に起動命令を出力することにより、カーネル実行部121、122のプログラムの起動を管理する。メモリコピー部133は、CPU13が保持するメモリに記録されたパラメータをコピーし、アクセラレータ120に出力する。出力するパラメータは、アクセラレータ120における処理内容を決定するパラメータである。このパラメータには、例えば、カーネル実行部121においていずれの機能部を実行させるかを示すパラメータ(又は各機能部を実行させるか否かを示すパラメータ)や、実行させる対象の機能部が処理を行うときの条件等を指示するパラメータなどが含まれる。管理アプリ実行部134は、管理アプリを実行する。管理アプリの詳細は、第2の実施形態において説明する。
図3は、IF回路11及びCPU13が備える機能の詳細を示す。同図では、アクセラレータ120の一例として、GPU120aを用いた場合を示している。GPU120aのカーネル実行部123は、図2に示すカーネル実行部121及びカーネル実行部122に相当する。
PONの転送処理部112は、事前処理部1121とDMA(Direct Memory Access)処理部1122とを有する。なお、転送処理部113も転送処理部112と同様の構成であるが、光・電気変換部111を介さずに上位装置から信号を受信する。CPU13の転送制御部131は、割り込み/ポーリング制御部1311、アドレス制御部1312、アドレス設定部1313及びDMAスタート部1314を備える。CPU13のカーネル制御部132は、ストリーム制御部1321及びカーネル起動部1322を備える。
IF回路11の光・電気変換部111は、ONUからのPON信号を入力データとして受信すると、光・電気信号変換処理を行ってPON信号を光信号から電気信号に変換する。転送処理部112の事前処理部1121は、電気信号に変換されたデータ入力をバッファしてPCIe等のプロトコルのデータに変換すると、データ転送可能を示す割り込み信号をCPU13に送信する。このように、IF回路11が外部から信号を受信する度に、割り込み信号がCPU13に送信される。
CPU13の割り込み/ポーリング制御部1311は、IF回路11からの割り込み信号を受信又はポーリングし、アドレス制御部1312を立ち上げる。アドレス制御部1312は、IF回路11から入力されるデータのバッファ先となるGPU120aの仮想アドレスを決定する。なお、アドレス制御部1312は、事前にGPU120aの仮想メモリ領域を確保し、アドレス設定部1313は、仮想アドレスに対応する物理メモリを取得しておく。仮想アドレスは、仮想メモリ領域におけるアドレスである。バッファ先の仮想アドレスの決定後、アドレス設定部1313は、その仮想アドレスに対応した物理アドレスを取得する。アドレス設定部1313は、取得した物理アドレスの値をIF回路11に出力し、IF回路11にデータの転送先アドレスとして設定する。
DMAスタート部1314は、転送処理部112のDMA処理部1122に、IF回路11からGPU120aへのDMAの開始を命令する。この命令を受け、IF回路11において転送処理部112のDMA処理部1122は、プロトコル変換されたデータ入力を、バッファしていたメモリから、GPU120aのメモリへ転送する転送処理を開始する。転送先のGPU120aのメモリは、アドレス設定部1313により設定された転送先アドレスが示すメモリである。
CPU13のストリーム制御部1321は、複数のカーネルを起動可能なGPU120aを利用する際に、何番目のカーネルを起動するかの決定を行う。ストリーム制御の詳細は、第3の実施形態にも示す。最後に、カーネル起動部1322は、GPU120aのカーネル実行部123を起動する。このとき、カーネル起動部1322は、ストリーム制御部1321が決定したカーネルを起動させる。このカーネルの起動により、GPU120aのカーネル実行部121は、ブロック同期部1211、ライン復号化部1212、誤り訂正復号化部1213、及び、PON MAC処理部1214を実行させる。CPU13の割り込み/ポーリング制御部1311は、次のデータの割り込み処理やポーリングを行う。
GPU120aからIF回路11の転送処理部113へのデータの送信の場合も、上記と同様の転送制御を行う。すなわち、CPU13のアドレス制御部1312は、GPU120aにおける転送元の仮想メモリ領域を事前に確保し、アドレス設定部1313は、その転送元の仮想メモリ領域の物理メモリを取得しておく。アドレス制御部1312は、転送元の仮想アドレスを決定し、アドレス設定部1313は、IF回路11の転送処理部113に、転送元の仮想アドレスに対応した物理アドレスを設定する。IF回路11の転送処理部113は、設定されたGPU120aの物理アドレスからデータを取得し、取得したデータにプロトコル変換を行って上位装置に送信する。
上位装置からの信号受信の場合も、上述したONUからの信号受信と同様の処理を行う。ただし、IF回路11が上位装置から下り信号を受信すると、転送処理部113の事前処理部1121は、受信した下り信号をバッファしてPCIe等のプロトコルに変換し、データ転送可能を示す割り込み信号をCPU13に送信する。また、転送処理部113のDMA処理部1122は、プロトコル変換されたデータ入力を、バッファしていたメモリから、アドレス設定部1313により設定された転送先アドレスが示すGPU120aのメモリへ転送する。GPU120aのカーネル実行部122は、カーネル起動部1322からの指示を受けてカーネルを起動し、PON MAC処理部1221、暗号化符号化部1222、誤り訂正符号化部1223及びライン符号化部1224を実行させる。その後、CPU13のアドレス設定部1313は、アドレス制御部1312が決定したデータ転送元の物理アドレスをIF回路11の転送処理部112に設定する。IF回路11の転送処理部112は、設定されたGPU120aの物理アドレスからデータを取得する。IF回路11の転送処理部112は、取得したデータをPON信号に変換して光・電気変換部111に出力し、光・電気変換部111は、PON信号を電気信号から光信号に変換してONUへ送信する。
本実施形態により、通信装置は、汎用デバイスを用いて信号処理を行うことが可能となる。
[第2の実施形態]
図4は、本実施形態のCPU13におけるハードウェアの設定フローを示す図である。まず、外部から通信装置1をどのような設定で利用するか決定するための指示が、外部入力としてCPU13に入力される。CPU13の管理アプリ実行部134は、外部入力の値に応じて、管理アプリ内に予め保持していたパラメータテーブルからアクセラレータ利用のための設定を呼び出す(ステップS10)。この設定として、例えば、転送制御部131がカーネル実行部123を起動する際に使用するブロック数、スレッド数、ストリーム数、コンスタントメモリに格納するための定数などのカーネルパラメータの値や、転送処理で使用するバッファサイズ等のパラメータの値を得る。
アドレス制御部1312は、管理アプリ実行部134からGPU120aのバッファサイズの入力を受ける。アドレス制御部1312は、IF回路11が保持しているデータをGPU120aへ転送可能とするため、バッファサイズに基づいて、GPU120aの仮想メモリを確保する(ステップS20)。アドレス設定部1313は、メモリマッピングによって物理メモリと、アドレス制御部1312が確保した仮想メモリとの対応付けを行う(ステップS30)。アドレス設定部1313は、IF回路11にDMA転送先バッファの物理メモリ設定を行い、CPU13を介さずにIF回路11からGPU120aへのデータの転送を可能とする(ステップS40)。
一方、カーネル起動部1322は、ステップS10において管理アプリ実行部134が呼び出したカーネルパラメータをカーネル制御部132に出力する。カーネル制御部132は、カーネルパラメータに基づいて、事前計算可能なパラメータ(例えば、後述する対応テーブル等)のコンスタントメモリへの転送や、ブロック数、スレッド数の値などの設定を行う(ステップS50)。なお、割り込み発生時には、ストリーム制御部1321は、カーネルパラメータの設定に基づいて起動するストリームを決定し、カーネル起動部1322は、カーネルパラメータの設定に基づいて、カーネル実行部123を起動する。
アクセラレータ120は、複数の規格それぞれに応じた信号処理を行う機能部を実装しておくことができ、一部の機能部については複数の規格に共通して使用される。なお、複数の規格に共通して使用される機能部であっても、信号処理を行うときの条件が異なる場合がある。そこで、メモリコピー部133は、IF回路11における信号受信によってCPU13に割り込みが発生したときに、上記のステップS10の処理を開始するときに外部から入力された指示に基づいて、アクセラレータ120において行う処理内容を示すパラメータを決定する。このパラメータの決定には、IF回路11が受信信号から取得し、CPU13に転送したデータや、その転送されたデータに基づいて得られた情報等をさらに用いてもよい。メモリコピー部133は、決定したパラメータをカーネル実行部123に出力する。カーネル実行部123は、受信したパラメータに従って、各機能部を実行させる。例えば、カーネル実行部121にブロック同期部1211、ライン復号化部1212、誤り訂正復号化部1213、及び、PON MAC処理部1214のうち一部のみを実行させることや、これらの機能部が物理演算を行うときに使用するデータ形式等を変更するよう制御することが可能となる。
このように、外部入力に応じてGPUカーネルパラメータを変更することにより、外部との通信装置1との間の通信の規格に応じた機能部を実行させたり、決められた動作条件やトラヒック量などの条件に従って各機能部を実行させたりすることが可能となる。
[第3の実施形態]
図5は、ストリーム処理を用いた高速化手法を示す図である。
CPU13のカーネル起動部1322は、データの割り込み又はポーリング毎に、ストリーム処理を用いてカーネル起動を行う。カーネルの起動のタイミングは、データ入力時とし、割込み処理における割込みハンドラや、ポーリング時のデータ入力タイミング検出時とする。CPU13のカーネル起動部1322は、データ入力の度にカーネルを起動する。GPU120aは、最も早く処理を開始したカーネルから順番(LRU:Least Recently Used)にデータを出力する。CPU13は、GPU120aからのデータの出力前にストリームの処理が完了しているか確認処理を行い、完了していない場合には、CPU13においてエラー発生時の処理を行う機能部(図示せず)に対してエラーを出力する。ストリーム処理の完了の確認方法としては、CUDA言語におけるcudaStreamQueryをコールする方法や、GPU120aがストリーム処理の終了時にメモリに設定する完了フラグを読み込んで確認する方法がある。
[第4の実施形態]
図6は、誤り訂正処理のメモリアクセス高速化方法を示す図である。誤り訂正処理は、入力データのアクセス頻度が高い一方、出力データのアクセス頻度は低く、バイト(Byte)単位のエラーレートと同程度になる性質を使う。
アクセラレータ120は、複数のSM(ストリーミングマルチプロセッサ)と、メモリ(Memory)及びL2キャッシュ(L2 Cashe)とを有する。メモリは、例えば、DRAM(Dynamic Random Access Memory)などの低速のグローバルメモリであり、全SMから参照可能なメモリである。L2キャッシュはグローバルメモリから読み出されたデータをキャッシュする。
各SMは、複数のコア(Core)及びDP(Double Precision)ユニットと、レジスタ(Register)、L1キャッシュ(L1 Cache)、共有メモリ(Shared memory)及び読出し専用メモリ(Read-only memory)とを有するスレッドブロックである。コア及びDPユニットは、スレッド毎の演算器である。レジスタは、コア及びDPユニットが演算に用いるデータを記憶するメモリであり、コア及びDPユニットから高速にアクセスが可能である。L1キャッシュは、共有メモリから読み出したデータをキャッシュするメモリである。共有メモリは、同一のSM内で共有される、読書き可能なメモリである。読出し専用メモリは、同一のSM内で共有される、読出しのみが可能なデータを記憶するコンスタントメモリである。
アクセラレータ120は、IF回路11から転送され、グローバルメモリに書き込んだ処理対象の入力データD1を、ローカル変数にコピーすることで、アクセラレータ120の高速メモリ(レジスタ等)に保持する。その後に、誤り訂正復号化部1213が誤り訂正処理を開始し、高速メモリに保持された入力データD2を用いて誤り訂正処理を実行する。誤り訂正復号化部1213は、誤り訂正処理の実行と並列の処理により、入力データD1をコピーした出力データD3をグローバルメモリに書き込む。誤り訂正復号化部1213は、その出力データD3に関しては全てのデータをローカル変数にコピーせず、誤り訂正処理の実行によって誤りの発生を検出した場合に、検出の都度、コンスタントメモリにアクセスして出力データD3から誤り発生部分のデータD4をコピーし、レジスタに保持する。誤り訂正復号化部1213は、データD4を参照して誤り訂正処理により正しい復号データを得ると、得られた正しい復号データによりデータD4を書き換える。誤り訂正復号化部1213は、書き換え後のデータD4により、出力データD3の誤り発生部分を書き換える。これにより、高速なメモリアクセスを実現する。
本実施形態は、第1〜第3の実施形態の構成で用いられるだけではなく、一般的な誤り訂正復号化のGPU実装においても用いることができる。
[第5の実施形態]
図7は、誤り訂正処理のテーブルアクセス高速化方法を示す図である。誤り訂正処理においては、バイナリ−ガロア体変換演算を複数回行う必要があるため、通常は対応テーブルをメモリ保持して処理を行う。ここではメモリ配置の高速化手法を示す。図7に示すアクセラレータ120の構成は、図6に示す第4の実施形態のアクセラレータ120の構成と同様である。
GPU等のアクセラレータ120においては、定数を事前に読出し専用メモリ(コンスタントメモリ)に転送することが可能である。そこで、誤り訂正処理に使用されるバイナリ−ガロア体変換テーブル(対応テーブル)をアクセラレータ120に事前転送し、読出し専用メモリに設定しておく。その後、カーネル起動時に、スレッドブロック毎(SM毎)に高速なメモリ(シェアードメモリ等)へそのバイナリ−ガロア体変換テーブルを転送した後に、各コアが誤り訂正処理の演算を行う。これにより、バイナリ−ガロア体変換テーブルへのメモリアクセスの高速化を実現し、誤り訂正演算を高速に行う。
本実施形態は、第1〜第3の実施形態の構成で用いられるだけではなく、一般的な誤り訂正復号化のGPU実装においても用いることができる。
アクセス装置の仮想化では、例えば、物理的に複数に分かれているハードウェアを、論理的に一つのアクセス装置に見せかける。この仮想化のためには、通信装置の主信号処理を高速処理できる汎用ハードウェアが必要となる。汎用装置の場合、従来、主信号はCPUを一旦経由した上で、GPU等のアクセラレータが処理を行っていた。しかし、より高速に主信号を処理するためには、GPUに直接主信号を転送して処理を行うことが望ましい。本実施形態の通信装置は、主信号(PON規格の信号等)を汎用の規格に変換した後に、CPUを介さずに、入力データを直接GPU等のアクセラレータに転送し、信号処理を行う。これにより、アクセス装置の仮想化において必須のPON機能のソフト化を可能とし、アクセス装置の仮想化の具体的な実現に寄与する。
以上説明した実施形態によれば、通信装置(例えば、通信装置1)は、受信した信号を所定の規格のデータに変換するインタフェース回路(例えば、IF回路11)と、データに対する信号処理を実行するアクセラレータ(例えば、アクセラレータ120)と、アクセラレータ及びインタフェース回路を制御する中央処理装置(例えば、CPU13)とを備える。通信装置は、例えば、端局装置及び上位装置と接続される終端装置であり、光アクセスネットワークのアクセス装置として用いられる。
中央処理装置は、割り込み受信部(例えば、割り込み/ポーリング制御部1311)と、アドレス設定部(例えば、アドレス設定部1313)と、転送指示部(例えば、DMAスタート部1314)と、カーネル制御部(例えば、カーネル制御部132)とを備える。割り込み受信部は、インタフェース回路において信号が変換されたことによる割り込みを受ける。アドレス設定部は、割り込み受信部が割り込みを受けた場合に、アクセラレータにおけるデータの転送先アドレスをインタフェース回路に設定する。転送指示部は、変換したデータを転送先アドレスへ転送するようインタフェース回路に指示する。カーネル制御部132は、アクセラレータにカーネルの起動を指示する。
インタフェース回路は、転送指示部からの指示を受け、変換したデータをアクセラレータの転送先アドレスへ転送する。アクセラレータは、カーネル制御部からの指示を受けてカーネルを起動し、起動したカーネルにより、インタフェース回路から転送先アドレスに転送されたデータを用いた信号処理を実行させる。信号処理は、例えば、ブロック同期部1211、ライン復号化部1212、誤り訂正復号化部1213、PON MAC処理部1214、PON MAC処理部1221、暗号化符号化部1222、誤り訂正符号化部1223及びライン符号化部1224が実行する演算処理であり、物理層の処理を含み得る。
これにより、インタフェース回路からの主信号を、CPUを介さずに直接アクセラレータに転送し、アクセラレータで信号処理を行うことができる。
なお、中央処理装置は、割り込み受信部が割り込みを受けた場合に、データの転送先となる仮想アドレスを決定するアドレス制御部をさらに有してもよい。アドレス設定部は、アドレス制御部が予め確保した仮想メモリと物理メモリとをマッピングしておき、アドレス制御部が決定した仮想アドレスの仮想メモリに対応した物理メモリのアドレスをそのマッピングに基づき取得して、転送先アドレスとする。
また、カーネル制御部は、外部から入力された通信装置の起動方法に応じて、アクセラレータにおいて信号処理を行うハードウェアに関する設定と信号処理の処理内容に関する設定との少なくとも一方を取得し、取得した設定に基づいてカーネルの起動を指示してもよい。ハードウェアに関する設定は、例えば、バッファサイズ、カーネルパラメータなどである。信号処理の処理内容に関する設定は、実行する信号処理や、信号処理を行うときの条件である。
また、カーネル制御部は、割り込み受信部が主信号の入力を示す割り込み信号をインタフェース回路から受信する度にカーネルを起動する。アクセラレータは、カーネル制御部からの指示を受けてカーネルを実行するカーネル実行部を複数有し、複数のカーネル実行部それぞれが起動したカーネルにより信号処理を実行させた結果得られたデータを、カーネルの起動順に出力してもよい。これにより、入出力と信号処理を行う機能部をパイプライン化し、装置のスループット向上を行うことができる。
なお、信号処理が誤り訂正処理を含む場合、アクセラレータは、インタフェース回路からグローバルメモリに転送された誤り訂正処理の対象のデータを高速メモリのレジスタに格納し、レジスタに格納されたデータを用いた誤り訂正処理の実行と並行して誤り訂正処理の対象のデータをコピーした出力データをグローバルメモリに格納する。実行中の誤り訂正処理において誤り発生部分が検出された場合には誤り発生部分のデータを出力データから取得してレジスタに転送し、レジスタに格納された誤り発生部分のデータに対して誤りを訂正した結果を用いて、グローバルメモリに格納された出力データにおける誤り発生部分を書き換える。これにより、誤り訂正処理を高速化することができる。
信号処理が誤り訂正処理を含む場合、アクセラレータは、誤り訂正処理において用いられるバイナリとガロア体の対応を示す対応テーブルを、スレッドブロック単位でアクセス可能な読み出し専用メモリなどのコンスタントメモリに格納しておく。アクセラレータは、誤り訂正処理の実行時にスレッドブロック単位でコンスタントメモリからシェアードメモリなどの高速メモリに対応テーブルを転送する。これにより、その後の対応テーブルへのアクセスを高速化し、誤り訂正処理を高速化することができる。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
1…通信装置
11…IF回路
110…FPGA
111…光・電気変換部
112、113…転送処理部
1121…事前処理部
1122…DMA処理部
12…アクセラレータボード
120…アクセラレータ
120a…GPU
121、122…カーネル実行部
1211…ブロック同期部
1212…ライン復号化部
1213…誤り訂正復号化部
1214…PON MAC処理部
1221…PON MAC処理部
1222…暗号化符号化部
1223…誤り訂正符号化部
1224…ライン符号化部
13…CPU
131…転送制御部
1311…割り込み/ポーリング制御部
1312…アドレス制御部
1313…アドレス設定部
1314…DMAスタート部
132…カーネル制御部
1321…ストリーム制御部
1322…カーネル起動部
133…メモリコピー部
134…管理アプリ実行部

Claims (8)

  1. 受信した信号を所定の規格のデータに変換するインタフェース回路と、
    前記データに対する信号処理を実行するアクセラレータと、
    前記アクセラレータ及び前記インタフェース回路を制御する中央処理装置とを備え、
    前記中央処理装置は、
    前記インタフェース回路において前記信号が変換されたことによる割り込みを受ける割り込み受信部と、
    前記割り込み受信部が割り込みを受けた場合に、前記アクセラレータにおける前記データの転送先アドレスを前記インタフェース回路に設定するアドレス設定部と、
    前記データを前記転送先アドレスへ転送するよう前記インタフェース回路に指示する転送指示部と、
    前記アクセラレータにカーネルの起動を指示するカーネル制御部とを備え、
    前記インタフェース回路は、前記転送指示部からの指示を受け、前記データを前記アクセラレータの前記転送先アドレスへ転送し、
    前記アクセラレータは、前記カーネル制御部からの指示を受けてカーネルを起動し、起動したカーネルにより、前記インタフェース回路から前記転送先アドレスに転送された前記データを用いた前記信号処理を実行させる、
    通信装置。
  2. 前記中央処理装置は、前記割り込み受信部が割り込みを受けた場合に、前記データの転送先となる仮想アドレスを決定するアドレス制御部をさらに有し、
    前記アドレス設定部は、予め確保した仮想メモリと物理メモリとのマッピングに基づき、前記アドレス制御部が決定した仮想アドレスの前記仮想メモリに対応した前記物理メモリのアドレスを前記転送先アドレスとする、
    請求項1に記載の通信装置。
  3. 前記カーネル制御部は、外部から入力された前記通信装置の起動方法に応じて、前記アクセラレータにおいて前記信号処理を行うハードウェアに関する設定と前記信号処理の処理内容に関する設定との少なくとも一方を取得し、取得した前記設定に基づいて前記カーネルの起動を指示する、
    請求項1又は請求項2に記載の通信装置。
  4. 前記カーネル制御部は、前記割り込み受信部が信号の入力を示す割り込み信号を前記インタフェース回路から受信する度にカーネルを起動し、
    前記アクセラレータは、前記カーネル制御部からの前記指示を受けてカーネルを実行するカーネル実行部を複数有しており、複数の前記カーネル実行部それぞれが起動したカーネルにより前記信号処理を実行させた結果得られたデータを、カーネルの起動順に出力する、
    請求項1から請求項3のいずれか一項に記載の通信装置。
  5. 前記信号処理は、誤り訂正処理を含み、
    前記アクセラレータは、前記インタフェース回路からグローバルメモリに転送された誤り訂正処理の対象の前記データを高速メモリに格納し、前記高速メモリに格納された前記データを用いた誤り訂正処理の実行と並行して誤り訂正処理の対象の前記データをコピーした出力データを前記グローバルメモリに格納し、実行中の誤り訂正処理において誤り発生部分が検出された場合には前記誤り発生部分のデータを前記出力データから取得して高速メモリに転送し、高速メモリに格納された前記誤り発生部分のデータに対して誤りを訂正した結果を用いて、前記グローバルメモリに格納された前記出力データにおける前記誤り発生部分を書き換える、
    請求項1から請求項4のいずれか一項に記載の通信装置。
  6. 前記信号処理は、誤り訂正処理を含み、
    前記アクセラレータは、前記誤り訂正処理において用いられるバイナリとガロア体の対応を示す対応テーブルをコンスタントメモリに格納しておき、前記誤り訂正処理の実行時にスレッドブロック単位で前記対応テーブルを前記コンスタントメモリから高速メモリに転送する、
    請求項1から請求項5のいずれか一項に記載の通信装置。
  7. 前記信号処理は、物理層の演算処理を含む、
    請求項1から請求項6のいずれか一項に記載の通信装置。
  8. 前記通信装置は、端局装置であり、
    前記インタフェース回路は、終端装置から受信した受動光ネットワークの規格の信号を所定の規格のデータに変換する、
    請求項1から請求項7のいずれか一項に記載の通信装置。
JP2017206168A 2017-10-25 2017-10-25 通信装置 Active JP6954535B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017206168A JP6954535B2 (ja) 2017-10-25 2017-10-25 通信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017206168A JP6954535B2 (ja) 2017-10-25 2017-10-25 通信装置

Publications (2)

Publication Number Publication Date
JP2019080190A true JP2019080190A (ja) 2019-05-23
JP6954535B2 JP6954535B2 (ja) 2021-10-27

Family

ID=66628885

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017206168A Active JP6954535B2 (ja) 2017-10-25 2017-10-25 通信装置

Country Status (1)

Country Link
JP (1) JP6954535B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020255239A1 (ja) * 2019-06-18 2020-12-24 日本電信電話株式会社 データ処理装置、データ処理方法及びプログラム
WO2023047436A1 (ja) * 2021-09-21 2023-03-30 日本電信電話株式会社 情報処理装置および情報処理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH114235A (ja) * 1996-07-01 1999-01-06 Sun Microsyst Inc アドレス変換ユニット内のメモリを分離する回路及び方法
JP2012514386A (ja) * 2008-12-30 2012-06-21 インテル・コーポレーション メッセージ通信方法
WO2015163171A1 (ja) * 2014-04-24 2015-10-29 ソニー株式会社 画像処理装置および方法、並びに手術システム
JP2016087468A (ja) * 2014-11-04 2016-05-23 株式会社東芝 医用画像診断装置及び医用画像処理装置
JP2017038256A (ja) * 2015-08-11 2017-02-16 日本電信電話株式会社 局側光終端装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH114235A (ja) * 1996-07-01 1999-01-06 Sun Microsyst Inc アドレス変換ユニット内のメモリを分離する回路及び方法
JP2012514386A (ja) * 2008-12-30 2012-06-21 インテル・コーポレーション メッセージ通信方法
WO2015163171A1 (ja) * 2014-04-24 2015-10-29 ソニー株式会社 画像処理装置および方法、並びに手術システム
JP2016087468A (ja) * 2014-11-04 2016-05-23 株式会社東芝 医用画像診断装置及び医用画像処理装置
JP2017038256A (ja) * 2015-08-11 2017-02-16 日本電信電話株式会社 局側光終端装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020255239A1 (ja) * 2019-06-18 2020-12-24 日本電信電話株式会社 データ処理装置、データ処理方法及びプログラム
JPWO2020255239A1 (ja) * 2019-06-18 2020-12-24
JP7277824B2 (ja) 2019-06-18 2023-05-19 日本電信電話株式会社 データ処理装置、データ処理方法及びプログラム
US11880611B2 (en) 2019-06-18 2024-01-23 Nippon Telegraph And Telephone Corporation Data processing apparatus, data processing method and program
WO2023047436A1 (ja) * 2021-09-21 2023-03-30 日本電信電話株式会社 情報処理装置および情報処理方法

Also Published As

Publication number Publication date
JP6954535B2 (ja) 2021-10-27

Similar Documents

Publication Publication Date Title
CN110647480B (zh) 数据处理方法、远程直接访存网卡和设备
US9760386B2 (en) Accelerator functionality management in a coherent computing system
US20140068134A1 (en) Data transmission apparatus, system, and method
US9582463B2 (en) Heterogeneous input/output (I/O) using remote direct memory access (RDMA) and active message
US11726876B2 (en) FPGA acceleration system for MSR codes
US10936517B2 (en) Data transfer using a descriptor
US11720475B2 (en) Debugging dataflow computer architectures
US10728311B2 (en) Device, system and method for adaptive payload compression in a network fabric
US20220206846A1 (en) Dynamic decomposition and thread allocation
JP6954535B2 (ja) 通信装置
JP6913312B2 (ja) データ処理装置及びデータ転送方法
CN113468090A (zh) 一种PCle通信方法、装置、电子设备及可读存储介质
US10802828B1 (en) Instruction memory
US20220229723A1 (en) Low overhead error correction code
CN116529721A (zh) 按需可编程原子内核加载
US10956248B1 (en) Configurable reporting for device conditions
JP7037097B2 (ja) データ処理システム、中央演算処理装置及びデータ処理方法
KR20040067063A (ko) 디지털 신호 처리장치의 저전력 소비형 캐시 메모리 장치및 이에 대한 제어방법
Giefers et al. Extending the power architecture with transprecision co-processors
CN115297169B (zh) 数据处理方法、装置、电子设备及介质
US20240128982A1 (en) Hardware acceleration of data reduction operations
US11863318B2 (en) Error correction for network packets
US20240070112A1 (en) Context load mechanism in a coarse-grained reconfigurable array processor
WO2023231330A1 (zh) 一种池化平台的数据处理方法、装置、设备和介质
JP2005044124A (ja) Mpu

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20171025

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200917

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201124

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210420

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210630

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20210630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20210630

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20210813

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20210817

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210916

R150 Certificate of patent or registration of utility model

Ref document number: 6954535

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150