(57)【要約】ＯＬＴ（１）は、外部装置と通信するＩＦボード（２）と、第一処理を行うＧＰＵ（４）と、ＩＦボード（２）及びＧＰＵ（４）を制御するＣＰＵ（３）を備える。ＣＰＵ（３）は、第二処理を行うデータ処理実行部と、外部装置から受信したデータをＩＦボード（２）からＣＰＵ（３）又はＧＰＵ（４）へ転送するよう制御する処理と、外部装置へ送信するデータをＣＰＵ（３）又はＧＰＵ（４）からＩＦボード（２）へ転送するよう制御する処理とを行う外部転送制御部と、外部装置から受信したデータ又は外部装置へ送信するデータに対して、ＧＰＵ（４）による第一処理と、ＣＰＵ（３）による第二処理とを実行させるよう制御するデータ処理制御部と、第一処理の処理結果をＣＰＵ（３）へ出力して第二処理の処理対象とする制御と、第二処理の処理結果をＧＰＵ（４）へ出力して第一処理の処理対象とする制御とを行う処理結果コピー部とを備える。
2020080458.tif 000002
【特許請求の範囲】
【請求項１】
外部装置と通信するインタフェース回路と、
第一データ処理を行うアクセラレータと、
前記アクセラレータ及び前記インタフェース回路を制御する中央演算処理装置とを備え、
前記中央演算処理装置は、
第二データ処理を行うデータ処理実行部と、
前記外部装置から受信したデータを前記インタフェース回路から前記アクセラレータ又は当該中央演算処理装置へ転送するよう制御する処理と、前記外部装置へ送信するデータを前記アクセラレータ又は当該中央演算処理装置から前記インタフェース回路へ転送するよう制御する処理との少なくともいずれかを行う外部転送制御部と、
前記外部装置から受信した前記データ又は前記外部装置へ送信する前記データに対して、前記アクセラレータによる前記第一データ処理と、前記データ処理実行部による前記第二データ処理とを実行させるよう制御するデータ処理制御部と、
前記第一データ処理の処理結果である第一処理結果を前記中央演算処理装置へ出力して、前記第一処理結果を前記第二データ処理の処理対象とする制御と、前記第二データ処理の処理結果である第二処理結果を前記アクセラレータへ出力して、前記第二処理結果を前記第一データ処理の処理対象とする制御との少なくとも一方を行う処理結果コピー部とを備える、
データ処理システム。
【請求項２】
前記第一データ処理は、並列処理であり、
前記第二データ処理は、逐次処理である、
請求項１に記載のデータ処理システム。
【請求項３】
前記データ処理システムは、端局装置であり、
前記第一データ処理は、ヘッダ付与、前方誤り訂正符号化、パディング及びサプレッションの並列処理であり、
前記第二データ処理は、スクランブラ処理である、
請求項１又は請求項２に記載のデータ処理システム。
【請求項４】
外部装置から受信したデータ又は前記外部装置へ送信するデータを記憶する記憶部と、
前記記憶部に記憶される前記データを用いてデータ処理を行い、処理結果を前記記憶部に記憶するデータ処理実行部と、
前記外部装置から受信したデータをインタフェース回路からアクセラレータ又は前記記憶部へ転送するよう制御する処理と、前記外部装置へ送信するデータを前記アクセラレータ又は前記記憶部から前記インタフェース回路へ転送するよう制御する処理との少なくともいずれかを行う外部転送制御部と、
前記外部装置から受信した前記データ又は前記外部装置へ送信する前記データに対して、前記アクセラレータによるデータ処理と、前記データ処理実行部による前記データ処理とを実行させるよう制御するデータ処理制御部と、
前記アクセラレータによる前記データ処理の処理結果である第一処理結果を前記記憶部へ転送して、前記第一処理結果を前記データ処理実行部における前記データ処理の処理対象とする制御と、前記データ処理実行部による前記データ処理の処理結果である第二処理結果を前記記憶部から前記アクセラレータへ転送して、前記第二処理結果を前記アクセラレータによる前記データ処理の処理対象とする制御との少なくとも一方を行う処理結果コピー部と、
を備える中央演算処理装置。
【請求項５】
データ処理システムが実行するデータ処理方法であって、
アクセラレータが、第一データ処理を行う第一データ処理ステップと、
中央演算処理装置が、
第二データ処理を行う第二データ処理ステップと、
外部装置から受信したデータをインタフェース回路から前記アクセラレータ又は当該中央演算処理装置へ転送するよう制御する処理と、前記外部装置へ送信するデータを前記アクセラレータ又は当該中央演算処理装置から前記インタフェース回路へ転送するよう制御する処理との少なくともいずれかを行う外部転送ステップと、
前記外部装置から受信した前記データ又は前記外部装置へ送信する前記データに対して、前記第一データ処理ステップによる前記第一データ処理と、前記第二データ処理ステップによる前記第二データ処理とを実行させるよう制御するデータ処理制御ステップと、
前記第一データ処理の処理結果である第一処理結果を前記中央演算処理装置へ出力して、前記第一処理結果を前記第二データ処理の処理対象とする制御と、前記第二データ処理の処理結果である第二処理結果を前記アクセラレータへ出力して、前記第二処理結果を前記第一データ処理の処理対象とする制御との少なくとも一方を行う処理結果コピーステップと、
を有するデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システム、中央演算処理装置及びデータ処理方法に関する。
本願は、２０１８年１０月１９日に日本へ出願された日本特願２０１８−１９７９４５号に対して優先権を主張し、その内容をここに援用する。
【背景技術】
【０００２】
近年、ネットワークの分野では仮想化が注目されている。仮想化により、実際の物理的なハードウェア構成によらず、ネットワークを構成する装置を論理的に利用できる。仮想化のため、光アクセスシステムにおいて従来専用のハードウェアで作られていたＯＬＴ（Optical Line Terminal）等の装置を汎用ハードウェアで構成し、機能をソフトウェアで実装する構成が検討されている。機能をソフトウェアで実現することで、装置の機能が入れ替え可能となり、加えて、装置の共通化やリソース共有化が図れる。このため、ＣＡＰＥＸ（Capital expenditure）の削減が期待できる。また、ソフトウェアにより、機能のアップデートや設定変更を容易とすることでＣＡＰＥＸ削減に繋がると考えられている。【０００３】
ここでは、アクセスシステムのソフトウェア領域を、誤り訂正機能を含む物理層処理にまで拡大するための検討として、アクセスシステムが有するＧＰＵ（Graphics Processing Unit）による実装技術を示す。物理層処理は演算量が大きいため、従来は専用チップのＡＳＩＣ（Application Specific Integrated Circuit）に実装されている。一般的に汎用ハードウェアは高速処理が難しい。そのため、物理層処理にＣＰＵ（central processing unit）のみを利用した場合、スループットの性能達成が困難である。また、汎用プロセッサの動向としても、ＣＰＵの性能は頭打ちとなってきている。そこで、多くのコアを持ち、高レベルでの並列化が可能なＧＰＵ、ＦＰＧＡ（field-programmable gate array）等のアクセラレータと組み合わせることによって性能向上を行うようになってきている。このように、ＧＰＵ等のアクセラレータを用いることで、性能達成の実現を図る。【０００４】
１０Ｇ−ＥＰＯＮ（10Gigabit Ethernet(登録商標) Passive Optical Network）（例えば、非特許文献２参照）システムにおける局側装置であるＯＬＴ（Optical Line Terminal）は、図４に示す機能により符号化処理を実現する。つまり、物理層は、ＰＭＡ（physical medium attachment；物理媒体接続部）、ＰＭＤ（physical medium dependent；物理媒体依存部）、ＰＣＳ（physical coding sublayer；物理符号化副層）、ＲＳ（reconciliation sublayer；調停副層）で構成されている。符号化を行う機能はＰＣＳに該当する。ＰＣＳ内の機能は、スクランブラ処理、ヘッダ付与、０付与・除去、ＦＥＣ（forward error correction：前方誤り訂正）符号化などを含む。【０００５】
ここで、ＰＣＳの機能をソフトウェア化することを検討する。ＰＣＳにおける符号化に関しては、並列処理可能な機能と並列処理不可能な機能とが混在している。ＧＰＵは、並列処理可能な機能に対して大幅な高速化が可能である。しかし、並列処理不可能な機能に対しては逐次処理に有効なＣＰＵ処理のほうがＧＰＵによる処理よりも高速化可能である。そのため、ＣＰＵとＧＰＵの協調処理が可能なアーキテクチャが必要である。さらに、ＣＰＵとＧＰＵを通信処理に利用する際には、連続的に信号をＣＰＵやＧＰＵに転送する技術が必要である。【０００６】
上記の二つの点から、ＣＰＵとＧＰＵで協調的に処理が可能なアーキテクチャであり、かつ、連続的に信号を流すことが可能なアーキテクチャと、そのようなアーキテクチャの制御方法とが必要である。加えて、信号を外部に連続的に転送し、かつ、ＣＰＵ、ＧＰＵを経由する方法が必要である。【０００７】
ＣＰＵとＧＰＵを利用した協調処理システムは、画像処理などの高速化において提案されている。このような協調処理システムでは、ＣＰＵからＧＰＵへのメモリの転送とＧＰＵに転送されたデータへの処理とを繰り返す構成をとる。【０００８】
図５は、ＯＬＴ内において、ＣＰＵで計算を行った信号を直接外部に転送する方法を示す（例えば、非特許文献１参照）。同図に示すＯＬＴは、例えば、汎用サーバを用いて実現される。同図に示す方法では、ＣＰＵに複数面の送信用バッファを確保しておく。ＣＰＵは、ＩＦボードに送信する主信号が記憶されるバッファのアドレスを転送の度、逐次、変更して主信号の転送を行う。ＣＰＵのみが主信号への演算を行う。【０００９】
図６は、ＯＬＴ内において、外部信号を連続的に直接、ＧＰＵに転送する方法を示す（例えば、非特許文献２参照）。同図に示すＯＬＴは、例えば、汎用サーバを用いて実現される。同図に示す方法では、ＧＰＵに複数面の受信用バッファを確保しておく。ＯＬＴは、ＧＰＵが受信する信号を記憶するバッファのアドレスを転送の度、逐次、変更して転送を行う。主信号への演算はＧＰＵのみで行う。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】Takahiro Suzuki, Sang-Yuep Kim, Jun-ichi Kani, Ken-Ichi Suzuki, Akihiro Otaka, "Real-time Demonstration of PHY Processing on CPU for Programmable Optical Access Systems", 2016 IEEE Global Communications Conference (GLOBECOM 2016), 2016年
【非特許文献２】Takahiro Suzuki, Sang-Yuep Kim, Jun-ichi Kani, Toshihiro Hanawa, Ken-Ichi Suzuki, Akihiro Otaka, "Demonstration of 10-Gbps Real-Time Reed-Solomon Decoding Using GPU Direct Transfer and Kernel Scheduling for Flexible Access Systems", Journal of Lightwave Technology, 2018年5月, Vol.36, No.10, p.1875-1881
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、上述した図５に示す技術では、ＣＰＵのみが主信号への演算を行っており、図６に示す技術では、ＧＰＵのみが主信号への演算を行っている。このように、これらは中央演算処理装置（ＣＰＵ）とアクセラレータが連携して主信号への演算を行うものではない。【００１２】
上記事情に鑑み、本発明は、中央演算処理装置とアクセラレータが協調的にデータ処理を行うことができるデータ処理システム、中央演算処理装置及びデータ処理方法を提供することを目的としている。
【課題を解決するための手段】
【００１３】
本発明の一態様は、外部装置と通信するインタフェース回路と、第一データ処理を行うアクセラレータと、前記アクセラレータ及び前記インタフェース回路を制御する中央演算処理装置とを備え、前記中央演算処理装置は、第二データ処理を行うデータ処理実行部と、前記外部装置から受信したデータを前記インタフェース回路から前記アクセラレータ又は当該中央演算処理装置へ転送するよう制御する処理と、前記外部装置へ送信するデータを前記アクセラレータ又は当該中央演算処理装置から前記インタフェース回路へ転送するよう制御する処理との少なくともいずれかを行う外部転送制御部と、前記外部装置から受信した前記データ又は前記外部装置へ送信する前記データに対して、前記アクセラレータによる前記第一データ処理と、前記データ処理実行部による前記第二データ処理とを実行させるよう制御するデータ処理制御部と、前記第一データ処理の処理結果である第一処理結果を前記中央演算処理装置へ出力して、前記第一処理結果を前記第二データ処理の処理対象とする制御と、前記第二データ処理の処理結果である第二処理結果を前記アクセラレータへ出力して、前記第二処理結果を前記第一データ処理の処理対象とする制御との少なくとも一方を行う処理結果コピー部とを備える、データ処理システムである。【００１４】
本発明の一態様は、外部装置から受信したデータ又は前記外部装置へ送信するデータを記憶する記憶部と、前記記憶部に記憶される前記データを用いてデータ処理を行い、処理結果を前記記憶部に記憶するデータ処理実行部と、前記外部装置から受信したデータをインタフェース回路からアクセラレータ又は前記記憶部へ転送するよう制御する処理と、前記外部装置へ送信するデータを前記アクセラレータ又は前記記憶部から前記インタフェース回路へ転送するよう制御する処理との少なくともいずれかを行う外部転送制御部と、前記外部装置から受信した前記データ又は前記外部装置へ送信する前記データに対して、前記アクセラレータによるデータ処理と、前記データ処理実行部による前記データ処理とを実行させるよう制御するデータ処理制御部と、前記アクセラレータによる前記データ処理の処理結果である第一処理結果を前記記憶部へ転送して、前記第一処理結果を前記データ処理実行部における前記データ処理の処理対象とする制御と、前記データ処理実行部による前記データ処理の処理結果である第二処理結果を前記記憶部から前記アクセラレータへ転送して、前記第二処理結果を前記アクセラレータによる前記データ処理の処理対象とする制御との少なくとも一方を行う処理結果コピー部と、を備える中央演算処理装置である。【００１５】
本発明の一態様は、データ処理システムが実行するデータ処理方法であって、アクセラレータが、第一データ処理を行う第一データ処理ステップと、中央演算処理装置が、第二データ処理を行う第二データ処理ステップと、外部装置から受信したデータをインタフェース回路から前記アクセラレータ又は当該中央演算処理装置へ転送するよう制御する処理と、前記外部装置へ送信するデータを前記アクセラレータ又は当該中央演算処理装置から前記インタフェース回路へ転送するよう制御する処理との少なくともいずれかを行う外部転送ステップと、前記外部装置から受信した前記データ又は前記外部装置へ送信する前記データに対して、前記第一データ処理ステップによる前記第一データ処理と、前記第二データ処理ステップによる前記第二データ処理とを実行させるよう制御するデータ処理制御ステップと、前記第一データ処理の処理結果である第一処理結果を前記中央演算処理装置へ出力して、前記第一処理結果を前記第二データ処理の処理対象とする制御と、前記第二データ処理の処理結果である第二処理結果を前記アクセラレータへ出力して、前記第二処理結果を前記第一データ処理の処理対象とする制御との少なくとも一方を行う処理結果コピーステップと、を有するデータ処理方法である。
【発明の効果】
【００１６】
本発明により、中央演算処理装置とアクセラレータが協調的にデータ処理を行うことが可能となる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施形態によるＯＬＴの構成を示す図である。
【図２】同実施形態によるＯＬＴの処理を示すフロー図である。
【図３】第２の実施形態によるＯＬＴの下り信号の処理に関する構成を示す図である。
【図４】従来技術のＯＬＴにおける符号化処理に関する機能を示す図である。
【図５】従来技術のＯＬＴにおける信号転送を示す図である。
【図６】従来技術のＯＬＴにおける信号転送を示す図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照しながら本発明の実施形態を詳細に説明する。
本実施形態のデータ処理システムでは、周期的なタイミングで、ＩＦ（インタフェース）ボードがＣＰＵ（central processing unit；中央演算処理装置）の割り込みハンドラを起動する。割り込みハンドラは、ＣＰＵ又はＩＦボードからＧＰＵにデータを転送する際のＧＰＵ上の転送先メモリ、及び、ＧＰＵからＩＦボード又はＣＰＵにデータを転送する際のＧＰＵ上の転送元メモリを指定し、さらに、ＣＰＵの関数起動と、ＧＰＵのカーネル起動と、ＣＰＵとＧＰＵ間のメモリコピーと、ＧＰＵとＩＦボード又はＩＦボード間のＤＭＡ（Direct Memory Access）転送の命令とを行う。
【００１９】
本実施形態のデータ処理システムによれば、ＣＰＵ−ＧＰＵ間において協調的な処理を行いつつ、外部への連続信号転送も可能となる。よって、本実施形態のデータ処理システムを通信装置に適用することによって、並列処理が可能な機能と並列処理が不可の機能との両方を含む通信処理の高速化が実現でき、さらには、機能全体のソフトウェア化を実現できる。以下に、データ処理システムが、アクセスシステムの端局装置である場合を例に、詳細な実施形態を説明する。
【００２０】
［第１の実施形態］
図１は、本実施形態によるＯＬＴ１の構成を示す図である。ＯＬＴ１は、データ処理システムの一例である。ＯＬＴ１は、例えば、汎用サーバを用いて実現される。同図に示す構成により、ＯＬＴ１は、ＣＰＵ−ＧＰＵ協調演算を行う。ＯＬＴ１は、ＩＦボード２と、ＣＰＵ３と、ＧＰＵ４とを備える。
【００２１】
ＩＦボード２は、例えば、ＦＰＧＡ（field-programmable gate array）、専用ボード等で実現されるインタフェース回路である。ＩＦボード２は、外部装置とプロセッサ間の信号の入出力を行う。例えば、外部装置は、ＯＮＵ（Optical network unit）及び上位装置であり、プロセッサは、ＣＰＵ３及びＧＰＵ４である。ＩＦボード２は、周期的にＣＰＵ３の割り込みハンドラを起動する。ＩＦボード２は、ＣＰＵ３の割り込みハンドラからの制御に従って、ＤＭＡ転送を行う。すなわち、ＩＦボード２は、外部装置から受信した信号に含まれる主信号を、ＣＰＵ３及びＧＰＵ４に転送する。また、ＩＦボード２は、ＣＰＵ３が保持するメモリ又はＧＰＵ４が保持するメモリから外部装置宛ての主信号を取得し、取得した主信号を外部装置に出力する。ＩＦボード２は、電気信号と光信号との変換を行う標準光モジュールを有する。標準光モジュールは、光伝送路を介してＯＮＵから受信した光信号を電気信号に変換する。また、標準光モジュールは、ＯＮＵ宛ての電気信号を光信号に変換し、光信号を光伝送路に出力する。
【００２２】
ＣＰＵ３は、ＩＦボード２からの割り込みにより、割り込みハンドラを起動する。割り込みハンドラは、ＩＦボード２に対して、ＣＰＵ３及びＧＰＵ４とＩＦボード２との間のＤＭＡ転送を行うための制御を実行する。また、割り込みハンドラは、ＧＰＵ４に対して、ＣＰＵ３とＧＰＵ４との間のＤＭＡ転送を行うための制御と、ＧＰＵ４のカーネルの起動の制御を実行する。これにより、主信号が、ＩＦボード２とプロセッサ間だけではなく、ＣＰＵ３−ＧＰＵ４間においても送受信されるようにする。また、ＣＰＵ３は、ＩＦボード２が受信した又はＩＦボード２から送信する主信号に対して、ＰＣＳ（physical coding sublayer）に含まれるデータ処理のうち、逐次処理を行う。
【００２３】
ＧＰＵ４は、アクセラレータの一例である。ＧＰＵ４は、ＣＰＵ３からの制御に従ってカーネルを実行する。ＧＰＵ４はカーネルにより、ＩＦボード２又はＣＰＵ３から転送された主信号に対して、ＰＣＳ（physical coding sublayer）に含まれるデータ処理のうち、並列処理が可能なデータ処理を行う。
【００２４】
図２は、ＯＬＴ１における処理を示すフロー図である。同図を用いて、ＯＬＴ１のＩＦボード２、ＣＰＵ３及びＧＰＵ４の機能を説明する。まず、ＩＦボード２は、外部からの信号の入力又は外部への信号の出力の準備が完了した際に、割り込み信号をＣＰＵ３へ送信する（ステップＳ１１）。
【００２５】
ＣＰＵ３は、ＩＦボード２から割り込み信号を受信すると、割り込みハンドラを起動する。割り込みハンドラは、まず、メモリ制御を行うことにより、ＣＰＵ３の関数が演算対象とするデータを記憶するＣＰＵ３のメモリ領域や、ＧＰＵ４のカーネルが演算対象とするデータを記憶するＧＰＵ４のメモリ領域とを決定する（ステップＳ１２）。なお、入力したデータを記憶するメモリ領域と、出力するデータを記憶するメモリ領域とは異なっていてもよい。続いて、割り込みハンドラは、ＩＦボード２に、ＣＰＵ３のメモリアドレスとＧＰＵ４のメモリアドレスの一方又は両方を通知し、さらにＩＦボード２に外部転送を指示する（ステップＳ１３）。ＩＦボード２は、主信号のデータを、通知されたアドレスのＣＰＵ３のメモリとＧＰＵ４のメモリの一方又は両方へ転送する（ステップＳ１４）。
【００２６】
次の割り込み周期で、ＩＦボード２は、割り込み信号をＣＰＵ３へ送信する（ステップＳ１５）。ＣＰＵ３は、ＩＦボード２から割り込み信号を受信すると、割り込みハンドラを起動する。割り込みハンドラは、ステップＳ１２において決定したメモリアドレスのメモリ領域に対して、関数起動又はカーネル起動を行う（ステップＳ１６）。なお、割り込みハンドラは、ステップＳ１４でＣＰＵ３のメモリにデータが転送された場合には関数起動を行い、ＧＰＵ４のメモリにデータが転送された場合にはカーネル起動を行う。また、ＧＰＵ４のカーネルを起動する場合、割り込みハンドラは、ステップＳ１２において決定したＧＰＵ４のメモリアドレス、ＧＰＵ４で並列実行する処理等をＧＰＵ４に通知する。
【００２７】
ステップＳ１６において関数起動が行われた場合、ＣＰＵ３は、メモリアドレスが示すＣＰＵ３のメモリ領域に記憶される主信号に対して関数演算を行い、この関数演算の演算結果をＣＰＵ３のメモリ領域に書き込む。一方、ステップＳ１６においてカーネル起動が行われた場合、ＧＰＵ４は、カーネルを起動して、ＧＰＵ４のメモリ領域に記憶された主信号に対して、ＣＰＵ３の割り込みハンドラから指示された処理を並列で実行する。ＧＰＵ４は、これら並列実行した処理の実行結果をＧＰＵ４のメモリ領域に書き込む（ステップＳ１７）。
【００２８】
続いて、割り込みハンドラは、ＣＰＵ３−ＧＰＵ４間のメモリコピーを指示する（ステップＳ１８）。ＣＰＵ３及びＧＰＵ４は、割り込みハンドラの指示に従ってＤＭＡ転送を行う（ステップＳ１９）。すなわち、割り込みハンドラは、ステップＳ１６において起動した関数演算が終了したことを検出すると、ステップＳ１７における関数演算の実行結果が記憶されるＣＰＵ３のメモリ領域の内容を、ステップＳ１２おいて決定したＧＰＵ４のメモリ領域にコピーする。あるいは、割り込みハンドラは、ステップＳ１６において起動したＧＰＵ４の並列処理が終了したことを検出すると、ステップＳ１７におけるＧＰＵ４の並列処理の実行結果が記憶されるＧＰＵ４のメモリ領域の内容を、ステップＳ１２おいて決定したメモリアドレスが示すＣＰＵ３のメモリ領域にコピーする。なお、割り込みハンドラはＧＰＵ４における並列処理の終了を、ＧＰＵ４から通知を受けることにより検出してもよく、並列処理の終了時にＧＰＵ４のメモリに書き込まれる終了フラグを検出することにより検出してもよい。
【００２９】
その後、ＣＰＵ３及びＧＰＵ４は、必要に応じて、ステップＳ１６〜ステップＳ１９の処理を繰り返す（ステップＳ２０〜ステップＳ２３）。すなわち、割り込みハンドラは、関数起動及びカーネル起動を任意に繰り返して、ＣＰＵ３及びＧＰＵ４それぞれにおける演算を繰り返し、ＣＰＵ３及びＧＰＵ４の間で演算結果のデータをコピーする。
【００３０】
最後に、ＯＬＴ１がステップＳ１６及びステップＳ１７と同様の処理を行うと（ステップＳ２４及びステップＳ２５）、割り込みハンドラは、ＤＭＡ起動の命令をＩＦボード２に送ることにより、ＩＦボード２のＤＭＡを開始する（ステップＳ２６）。このとき、割り込みハンドラは、ステップＳ２５における関数演算の実行結果が記憶されるＣＰＵ３のメモリアドレス、又は、ステップＳ２５における並列処理の実行結果が記憶されるＧＰＵ４のメモリアドレスをデータ転送元としてＩＦボード２に通知する。ＩＦボード２は、データ転送元からデータをコピーする（ステップＳ２７）。ＩＦボード２は、ＣＰＵ３又はＧＰＵ４から転送したデータを、ＯＮＵ又は上位装置に送信する。このデータは、主信号である。ＩＦボード２における割り込みは、連続的に繰り返される（ステップＳ２８）。
【００３１】
上述したように、本実施形態によれば、ＣＰＵ３のメモリコピー命令によるＣＰＵ３−ＧＰＵ４間のＤＭＡの実行を信号転送のフローに入れることにより、ＣＰＵ３−ＧＰＵ４間でＤＭＡ転送（主信号）が可能となる。また、ＣＰＵ３は外部転送を指示する際に、ＣＰＵ３−ＩＦボード２間の転送であるかＧＰＵ４−ＩＦボード２間の転送であるかと、ＩＦボード２への転送であるかＩＦボード２からの転送であるかとを選択できる。よって、ＣＰＵ３とＧＰＵ４のいずれも、ＩＦボード２との間の両方向のＤＭＡ転送（主信号の転送）が可能である。さらには、メモリコピーと関数／カーネル起動とを任意の回数繰り返すことによって、任意の順番で任意の処理をＣＰＵ、ＧＰＵに割り当てることが可能となる。
【００３２】
[第２の実施形態］
本実施形態では、プロセッサからＩＦボードへの方向（下り）の信号処理を例に、ＯＬＴ１の詳細な構成例を説明する。
【００３３】
図３は、ＯＬＴ１における下りの信号処理に関する構成を示す図である。１０Ｇ−ＥＰＯＮ、ＮＧ−ＰＯＮ２、ＸＧＳ−ＰＯＮ等のＰＯＮ規格のＯＬＴは、同図と同様な構成を取る。
【００３４】
ＣＰＵ３は、メインメモリ３１と、割り込みハンドラ３２と、関数実行部３３とを有する。メインメモリ３１は、外部装置から受信した主信号又は外部装置へ送信する主信号を記憶する記憶部の一例である。メインメモリ３１は、入出力用のメモリ領域ｈ＿ｏｕｔｐｕｔを有する。割り込みハンドラ３２は、メモリ制御部３２１と、関数起動部３２２と、メモリコピー部３２３と、カーネル起動部３２４と、外部転送制御部３２５とを備える。メモリ制御部３２１は、関数が演算対象とするＣＰＵ３のメモリアドレスと、ＧＰＵ４のカーネルにより起動される並列処理が演算対象とするＧＰＵ４のメモリアドレスとを決定するメモリ制御を行う。関数起動部３２２は、関数の実行を関数実行部３３に指示する。メモリコピー部３２３は、ＩＦボード２又はＧＰＵ４とメインメモリ３１との間のデータのコピーを行う。カーネル起動部３２４は、ＧＰＵ４へカーネル起動を指示する。外部転送制御部３２５は、ＩＦボード２とＣＰＵ３又はＧＰＵ４との間のＤＭＡ転送を指示する。
【００３５】
ＧＰＵ４は、グローバルメモリ４１と、カーネル実行部４２とを備える。グローバルメモリ４１は、入力用のメモリ領域ｄ＿ｉｎｐｕｔと出力用のメモリ領域ｄ＿ｏｕｔｐｕｔとを有する。カーネル実行部４２は、カーネルを起動して並列処理を実行する。
【００３６】
ＩＦボード２は、ＤＭＡ実行部２１と、外部転送部２２とを備える。ＤＭＡ実行部２１は、ＣＰＵ３からの指示を受けて、ＣＰＵ３又はＧＰＵ４から主信号のデータをコピーする。外部転送部２２は、ＤＭＡ実行部２１がコピーした主信号を光信号に変換してＯＮＵに送信する。
【００３７】
続いて、ＯＬＴ１における下り信号の処理を説明する。
本実施形態において、主信号の入力は、ＣＰＵ３のメインメモリ３１内のメモリ領域ｈ＿ｏｕｔｐｕｔに保持される。メモリ領域ｈ＿ｏｕｔｐｕｔは、Ｎ個のバッファを有している。ｉｎｄｅｘの値によりこれらＮ個のバッファのいずれであるかが特定される。ＣＰＵ３は、主信号の入力のたびに、逐次的な機能であるスクランブラを、メモリ領域ｈ＿ｏｕｔｐｕｔのバッファのアドレスを示すｉｎｄｅｘを変化させながらＣＰＵ３上で実行する。
【００３８】
具体的には、ＩＦボード２がＣＰＵ３の割り込みハンドラ３２を起動すると、メモリ制御部３２１は、メインメモリ３１において使用するメモリ領域ｈ＿ｏｕｔｐｕｔのアドレスと、グローバルメモリ４１において使用するメモリ領域ｄ＿ｉｎｐｕｔ及びメモリ領域ｄ＿ｏｕｔｐｕｔのアドレスとを決定する。外部転送制御部３２５は、ＩＦボード２にメモリ領域ｈ＿ｏｕｔｐｕｔのアドレスを示すｉｎｄｅｘを通知し、さらにＩＦボード２に主信号を転送するよう指示する。ＩＦボード２の外部転送部２２は、ｉｎｄｅｘで示されるメモリ領域ｈ＿ｏｕｔｐｕｔのバッファに、主信号を転送する。
【００３９】
メインメモリ３１へ主信号を転送した次の周期でＣＰＵが割り込みハンドラ３２を起動すると、関数起動部３２２は、関数実行部３３にメモリ領域ｈ＿ｏｕｔｐｕｔのｉｎｄｅｘを通知し、さらに関数実行部３３にスクランブラの起動を指示する。スクランブラは、データ列のビット位置を入れ替える処理を行う。関数実行部３３は、ｉｎｄｅｘで示されるメモリ領域ｈ＿ｏｕｔｐｕｔのバッファから読み出した主信号を入力データに用いて、スクランブラの機能を有する関数を実行し、関数の実行結果をその当該バッファに書き込む。
【００４０】
グローバルメモリ４１のメモリ領域ｄ＿ｉｎｐｕｔ及びメモリ領域ｄ＿ｏｕｔｐｕｔも、それぞれＮ個のバッファを有している。ｉｎｄｅｘの値によりこれらＮ個のバッファのいずれであるかが特定される。なお、メモリ領域ｈ＿ｏｕｔｐｕｔが有するバッファの数と、メモリ領域ｄ＿ｉｎｐｕｔが有するバッファの数と、メモリ領域ｄ＿ｏｕｔｐｕｔが有するバッファの数とが異なっていてもよい。メモリ制御３１１は、ＧＰＵ４の入力用・出力用のメモリアドレスを示すインデックスｉｎｄｅｘを下記の式により決定する。ＧＰＵ４は、逐次的にグローバルメモリ４１におけるメモリ領域ｄ＿ｉｎｐｕｔ及びメモリ領域ｄ＿ｏｕｔｐｕｔそれぞれのｉｎｄｅｘを変化させながら、データの転送を行う。
【００４１】
ｉｎｄｅｘ＝（ｉｎｄｅｘ＋１）  ｍｏｄ  Ｎ
【００４２】
ここで、ＮはＧＰＵ４がもつバッファの面数であり、ｍｏｄは剰余演算を示す。その後、メモリコピー部３２３は、メモリ制御部３２１が決定したメモリアドレスに対して、ＣＰＵ３からＧＰＵ４にメモリコピーを行う。更に、カーネル起動部３２４は、ＧＰＵ４に対し、転送したメモリのアドレスを指定して、カーネル起動を行う。ＧＰＵ４は、カーネルを起動し、並列処理可能な機能であるヘッダ付与、ＦＥＣ、パディング、サプレッションを並列で実行し、計算結果を出力用のメモリ領域ｄ＿ｉｎｐｕｔに格納する。
【００４３】
具体的には、スクランブラ処理の終了後、メモリコピー部３２３は、メインメモリ３１のインデックスと、グローバルメモリ４１のメモリ領域ｄ＿ｉｎｐｕｔのインデックスとをＧＰＵ４に出力し、さらにＧＰＵ４にメモリコピーを指示する。ＧＰＵ４は、通知されたこれらインデックスに基づいて、メインメモリ３１のメモリ領域ｈ＿ｏｕｔｐｕｔのバッファから、グローバルメモリ４１のメモリ領域ｄ＿ｉｎｐｕｔのバッファへ主信号をコピーする。
【００４４】
続いて、割り込みハンドラ３２は、ＧＰＵ４に、グローバルメモリ４１のメモリ領域ｄ＿ｉｎｐｕｔ及びメモリ領域ｄ＿ｏｕｔｐｕｔそれぞれのｉｎｄｅｘを通知し、さらにＧＰＵ４にヘッダ付与、ＦＥＣ符号化、パディング、及び、サプレッションの並列実行を指示する。ヘッダ付与は、主信号にヘッダを付与する処理である。パディングは、送信に用いるフィールドの空き領域に所定パターンのデータを付加する処理である。サプレッションは、データ先頭に付加された０など、所定位置に付加されている余分なデータを削除する処理である。ＧＰＵ４のカーネル実行部４２は、通知されたインデックスが示すメモリ領域ｄ＿ｉｎｐｕｔのバッファに記憶されるデータを用いて、ヘッダ付与、ＦＥＣ符号化、パディング、及び、サプレッションの処理を並列で実行する。カーネル実行部４２は、各並列処理の処理結果を、通知されたｉｎｄｅｘが示すメモリ領域ｄ＿ｏｕｔｐｕｔのバッファに書き込む。
【００４５】
ＣＰＵ３の外部転送制御部３２５は、ＩＦボード２にグローバルメモリ４１のメモリ領域ｄ＿ｏｕｔｐｕｔのバッファを示すｉｎｄｅｘを通知し、さらにＩＦボード２に外部転送の命令を送信する。ＩＦボード２のＤＭＡ実行部２１は、ＤＭＡを開始し、通知されたｉｎｄｅｘが示すメモリ領域ｄ＿ｏｕｔｐｕｔのバッファから主信号を転送する。外部転送部２２は、ＧＰＵ４から読み出した主信号を光信号に変換し、光信号をＯＮＵなどの外部装置に出力する。
【００４６】
上述した実施形態によれば、ＣＰＵとＧＰＵで協調的に処理可能なアーキテクチャにより、連続的に信号転送可能な制御を行う。よって、ＰＣＳの符号化処理のような並列処理可能な機能と並列処理不可能な機能の両方を含む通信処理の高速化が実現でき、アクセスシステムのソフトウェア領域を拡大できる。
【００４７】
以上説明した実施形態によれば、データ処理システムは、外部装置と通信するインタフェース回路と、第一データ処理を行うアクセラレータと、アクセラレータ及びインタフェース回路を制御する中央演算処理装置とを備える。例えば、データ処理システムは、ＯＬＴ１であり、アクセラレータは、ＧＰＵ４であり、中央演算処理装置は、ＣＰＵ３である。中央演算処理装置は、データ処理実行部と、外部転送制御部と、データ処理制御部と、処理結果コピー部とを備える。例えば、データ処理実行部は、関数実行部３３であり、外部転送部は、外部転送制御部３２５であり、データ処理制御部は、関数起動部３２２及びカーネル起動部３２４であり、処理結果コピー部は、メモリコピー部３２３である。データ処理実行部は、第二データ処理を行う。外部転送部は、外部装置から受信したデータをインタフェース回路からアクセラレータ又は中央演算処理装置へ転送するよう制御する処理と、外部装置へ送信するデータをアクセラレータ又は中央演算処理装置からインタフェース回路へ転送するよう制御する処理との少なくともいずれかを行う。データ処理制御部は、外部装置から受信したデータ又は外部装置へ送信するデータに対して、アクセラレータによる第一データ処理と、データ処理実行部による第二データ処理とを実行させるよう制御する。処理結果コピー部は、第一データ処理の処理結果である第一処理結果を中央演算処理装置の記憶部へ出力して、出力された第一処理結果を第二データ処理の処理対象とする制御と、第二データ処理の処理結果である第二処理結果を記憶部からアクセラレータへ出力して、出力された第二処理結果を第一データ処理の処理対象とする制御との少なくとも一方を行う。
【００４８】
例えば、アクセラレータが行う第一データ処理は並列処理であり、中央演算処理装置が行う第二データ処理は逐次処理である。データ処理システムが、ＰＯＮシステムにおける端局装置である場合、第一データ処理は、ヘッダ付与、前方誤り訂正符号化、パディング及びサプレッションの並列処理であり、第二データ処理は、スクランブラ処理を含む処理である。
【００４９】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【００５０】
中央演算処理装置とアクセラレータとを有する装置に利用可能である。
【符号の説明】
【００５１】
１…ＯＬＴ，  ２…ＩＦボード，  ３…ＣＰＵ，  ４…ＧＰＵ，  ２１…ＤＭＡ実行部，  ２２…外部転送部，  ３１…メインメモリ，  ３２…割り込みハンドラ，  ３３…関数実行部，  ４１…グローバルメモリ，  ４２…カーネル実行部，  ３２１…メモリ制御部，  ３２２…関数起動部，  ３２３…メモリコピー部，  ３２４…カーネル起動部，  ３２５…外部転送制御部
【図１】
2020080458.tif 000003
【図２】
2020080458.tif 000004
【図３】
2020080458.tif 000005
【図４】
2020080458.tif 000006
【図５】
2020080458.tif 000007
【図６】
2020080458.tif 000008
【国際調査報告】
2020080458.tif 000009
2020080458.tif 000010
2020080458.tif 000011
2020080458.tif 000012