(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-13
(45)【発行日】2023-11-21
(54)【発明の名称】情報処理回路、通信システム、および情報処理方法
(51)【国際特許分類】
G06F 17/10 20060101AFI20231114BHJP
【FI】
G06F17/10 Z
(21)【出願番号】P 2022042706
(22)【出願日】2022-03-17
【審査請求日】2022-03-17
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100106909
【氏名又は名称】棚井 澄雄
(74)【代理人】
【識別番号】100134544
【氏名又は名称】森 隆一郎
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100162868
【氏名又は名称】伊藤 英輔
(72)【発明者】
【氏名】齋藤 俊一
【審査官】田中 幸雄
(56)【参考文献】
【文献】特開2020-123125(JP,A)
【文献】特開2008-4011(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/10
(57)【特許請求の範囲】
【請求項1】
底を2、冪指数をcompress処理前のビット幅Mからexponent値を減算した値とする値である第1乗算値、
分割されたデータからなる1つのデータである跨ぎデータの位置を示す値であり、フレームデータ長とexponent値とによって規則性が定まる値である第2乗算値、および
、底を2、冪指数をexponent値とする値である第3乗算値の
セットを、入力データごとに記憶するROMテーブルと、
前記ROMテーブルに対して、前記第1乗算値、前記第2乗算値、および前記第3乗算値の読み出しおよび書き込みの処理を行う制御回路と、
N番目の入力パターンに1つのデータが分割された第1部分データが含まれ、N+1番目の入力パターンに前記1つのデータが分割された第2部分データが含まれている場合、前記N番目の入力パターンと前記第1乗算値とを乗算した第1乗算結果と、前記N+1番目の入力パターンと前記第2乗算値とを乗算した第2乗算結果とを加算する加算器と、
前記加算器による加算結果と前記第3乗算値とを乗算する第1乗算器と、
を備える情報処理回路。
【請求項2】
前記N番目の入力パターンと前記第1乗算値とを乗算する第2乗算器、
を備える請求項1に記載の情報処理回路。
【請求項3】
前記N+1番目の入力パターンと前記第2乗算値とを乗算する第3乗算器、
を備える請求項1または請求項2に記載の情報処理回路。
【請求項4】
請求項1から請求項
3の何れか一項に記載の情報処理回路を有する受信装置と、
前記N番目の入力パターンおよび前記N+1番目の入力パターンを含むデータを前記受信装置に送信する送信装置と、
を備える通信システム。
【請求項5】
ROMテーブルに対して、底を2、冪指数をcompress処理前のビット幅Mからexponent値を減算した値とする値である第1乗算値、
分割されたデータからなる1つのデータである跨ぎデータの位置を示す値であり、フレームデータ長とexponent値とによって規則性が定まる値である第2乗算値、および
、底を2、冪指数をexponent値とする値である第3乗算値の
読み出しおよび書き込みの処理を行うことと、
N番目の入力パターンに1つのデータが分割された第1部分データが含まれ、N+1番目の入力パターンに前記1つのデータが分割された第2部分データが含まれている場合、前記N番目の入力パターンと前記第1乗算値とを乗算した第1乗算結果と、前記N+1番目の入力パターンと前記第2乗算値とを乗算した第2乗算結果とを加算することと、
加算結果と前記第3乗算値とを乗算することと、
を含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理回路、通信システム、および情報処理方法に関する。
【背景技術】
【0002】
近年、通信システムにおいて送受信されるデータが増大している。特許文献1には、関連する技術として、FPGAに実装できるデータを復元する復元操作に関する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、通信システムにおいて送受信されるデータは、データをフレームに適用したパケットデータとするカプセル化が行われ、そのデータについてcompress(圧縮)処理が行われる場合がある。このようなデータについて、Block floating pointのデカプセル処理とBlock uncompressed処理を行うことによりデータを解凍、復元する回路は、入力されたcompressデータをフレームからデカプセル処理を行い、In-Phase sample、Quadrature Phase sampleを抽出し、その両sampleに対して、Block uncompressed処理を行うものである。その結果、一般的に、可変のexponent(指数)をサポートする場合、各exponent値に対応した回路が必要になり、回路規模が大きくなってしまう。
【0005】
そこで、通信システムにおいて、可変のexponent(指数)をサポートし、回路規模を抑制することのできる技術が求められている。
【0006】
本開示の各態様は、上記の課題を解決することのできる情報処理回路、通信システム、情報処理方法、およびプログラムを提供することを目的の1つとしている。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本開示の一態様によれば、情報処理回路は、底を2、冪指数をcompress処理前のビット幅Mからexponent値を減算した値とする値である第1乗算値、分割されたデータからなる1つのデータである跨ぎデータの位置を示す値であり、フレームデータ長とexponent値とによって規則性が定まる値である第2乗算値、および、底を2、冪指数をexponent値とする値である第3乗算値のセットを、入力データごとに記憶するROMテーブルと、前記ROMテーブルに対して、前記第1乗算値、前記第2乗算値、および前記第3乗算値の読み出しおよび書き込みの処理を行う制御回路と、N番目の入力パターンに1つのデータが分割された第1部分データが含まれ、N+1番目の入力パターンに前記1つのデータが分割された第2部分データが含まれている場合、前記N番目の入力パターンと前記第1乗算値とを乗算した第1乗算結果と、前記N+1番目の入力パターンと前記第2乗算値とを乗算した第2乗算結果とを加算する加算器と、前記加算器による加算結果と前記第3乗算値とを乗算する第1乗算器と、を備える。
【0008】
上記目的を達成するために、本開示の別の態様によれば、通信システムは、上記の情報処理回路を有する受信装置と、前記N番目の入力パターンおよび前記N+1番目の入力パターンを含むデータを前記受信装置に送信する送信装置と、を備える。
【0009】
上記目的を達成するために、本開示の別の態様によれば、情報処理方法は、ROMテーブルに対して、底を2、冪指数をcompress処理前のビット幅Mからexponent値を減算した値とする値である第1乗算値、分割されたデータからなる1つのデータである跨ぎデータの位置を示す値であり、フレームデータ長とexponent値とによって規則性が定まる値である第2乗算値、および、底を2、冪指数をexponent値とする値である第3乗算値の読み出しおよび書き込みの処理を行うことと、N番目の入力パターンに1つのデータが分割された第1部分データが含まれ、N+1番目の入力パターンに前記1つのデータが分割された第2部分データが含まれている場合、前記N番目の入力パターンと前記第1乗算値とを乗算した第1乗算結果と、前記N+1番目の入力パターンと前記第2乗算値とを乗算した第2乗算結果とを加算することと、加算結果と前記第3乗算値とを乗算することと、を含む。
【発明の効果】
【0011】
本開示の各態様によれば、通信システムにおいて、可変のexponent(指数)をサポートし、回路規模を抑制することができる。
【図面の簡単な説明】
【0012】
【
図1】本開示の一実施形態による通信システムの構成の一例を示す図である。
【
図2】本開示の一実施形態による情報処理回路が行うデカプセル処理およびuncompressed処理の概要を説明するための図である。
【
図3】本開示の一実施形態による乗算ブロックの実装の一例を示す図である。
【
図4】本開示の一実施形態による情報処理回路の処理フローの一例を示す図である。
【
図5】本開示の一実施形態による情報処理回路が行うデカプセル処理およびuncompressed処理の具体例の1つを説明するための図である。
【
図6】本開示の実施形態による情報処理回路の最小構成を示す図である。
【
図7】本開示の実施形態による最小構成の情報処理回路の処理フローの一例を示す図である。
【
図8】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0013】
以下、図面を参照しながら実施形態について詳しく説明する。
<実施形態>
図1は、本開示の一実施形態による通信システム1の構成の一例を示す図である。通信システム1は、
図1に示すように、送信装置10、および受信装置20を備える。
【0014】
送信装置10は、
図1に示すように、信号処理部101、および送信部102を備える。信号処理部101は、Block floating pointでデータをcompress(圧縮)するcompress処理を行う。送信部102は、compressされたBlock floating pointデータを含み、ヘッダやフッタの情報を加えてフレームを生成するフレーミング処理を行う。そして、送信部102は、生成したフレームを受信装置20に送信する。
【0015】
受信装置20は、
図1に示すように、情報処理回路201、および信号処理部202を備える。情報処理回路201は、送信装置10が送信するフレームに対して、デカプセル処理およびBlock uncompressed処理を行う。デカプセル処理とは、フレームに含まれるヘッダやフッタの情報を取り外し、compressされたデータを取り出す処理である。また、Block uncompressed処理とは、compressされたデータを解凍する、すなわち、compressされたデータを送信装置10がcompressする前のデータに戻す(いわゆる、解凍、復元する)処理である。
【0016】
情報処理回路201は、FPGA(Field Programmable Gate Array)などの再構成可能な回路により実現される。情報処理回路201は、
図1に示すように、乗算ブロック201a、乗算値ROMテーブル201b、およびROMテーブル制御回路201cを備える。
【0017】
例えば、情報処理回路201において、ハードウェア記述言語により乗算ブロック201a、乗算値ROMテーブル201b、およびROMテーブル制御回路201cを記述したデータを用いることにより、乗算ブロック201a、乗算値ROMテーブル201b、およびROMテーブル制御回路201cが構成される。具体的には、例えば、情報処理回路201がFPGAにより実現される場合、ハードウェア記述言語で乗算ブロック201a、乗算値ROMテーブル201b、およびROMテーブル制御回路201cを記述したコンフィギュレーションデータを用意する。そして、FPGAの専用アプリケーションプログラムであるコンフィギュレーションプログラムを実行することにより、コンフィギュレーションデータに応じた回路(すなわち、この場合、乗算ブロック201a、乗算値ROMテーブル201b、およびROMテーブル制御回路201c)がFPGA内に構成される。例えば、乗算ブロック201aは、FPGA内のDSP(Digital Signal Processor)により構成される。また、乗算値ROMテーブル201bは、FPGA内のBlock RAM(Random Access Memory)により構成される。なお、ハードウェア記述言語の例としては、VHDL(VHSIC Hardware Description Language)、Verilog HDL(Hardware Description Language)などが挙げられる。
【0018】
信号処理部202は、情報処理回路201によりuncompress処理が行われた後のデータについて、受信装置20で必要な種々の信号処理を行う。
【0019】
次に、本開示の一実施形態による通信システム1が行う処理について説明する。ここでは、
図2~
図5を参照して、通信システム1において情報処理回路201が行うデカプセル処理およびBlock uncompressed処理について説明する。
【0020】
図2は、本開示の一実施形態による情報処理回路201が行うデカプセル処理およびuncompressed処理の概要を説明するための図である。
図2における(a)の部分は、exponentが3である場合のBlock floating pointでcompress処理されたデータからなるフレームの例を示している。この例では、32bitのフレームに12bit単位のデータがマッピングされている。このフレームでは、3と3a、6と6aのように1つのデータが分割される場合がある。以下、このように分割されたデータからなる1つのデータを跨ぎデータという。情報処理回路201は、このフレームに対してデカプセル処理およびBlock uncompressed処理を行うことにより、
図2における(b)の部分のように1~8のデータを抽出する。
【0021】
ここで、乗算ブロック201aの実装について説明する。
図3は、本開示の一実施形態による乗算ブロック201aの実装の一例を示す図である。
図3に示すように、乗算ブロック201aは、乗算器201a1(第1乗算器の一例)、201a2(第3乗算器の一例)、201a3(第2乗算器の一例)、加算器201a4を備える。乗算ブロック201aは、乗算器201a1、201a2、201a3、加算器201a4を用いて、Block floating pointのデカプセル処理とBlock uncompressed処理が実現される。乗算器201a1は、N番目の入力パターンと乗算値Aとを乗算する。
図2に示す例では、縦1列32bit(bit31-0)のデータ列が左から順番に入力データとして入力され、1番目のデータ、2番目のデータ…N-1番目のデータ、N番目のデータ、N+1番目のデータと表現される。最新データをNとした場合、次に処理するデータはN+1として表される。乗算器201a2は、N+1番目のデータと乗算値Cとを乗算することにより跨ぎデータ処理を行う。加算器201a4は、乗算器201a1の乗算結果と跨ぎデータ処理の結果とを加算することにより、デカプセル処理を行う。乗算器201a3は、デカプセル処理の結果と乗算値Bとを乗算することにより、Block uncompressed処理を行う。
【0022】
図4は、本開示の一実施形態による情報処理回路201の処理フローの一例を示す図である。
図5は、本開示の一実施形態による情報処理回路201が行うデカプセル処理およびuncompressed処理の具体例の1つを説明するための図である。
図5における、1のデータを抽出するために、乗算器201a1は、入力データと乗算値Aである4096(バス幅16bit、すなわち2の12乗)とを乗算し、1のデータを12bitシフトさせる(ステップS1)。シフトの結果、1のデータは、47bit目から32bit目に移動する形となる。例えば、compress前のbit幅をMとした場合、“M-exponent値”という関係になる。つまり、bit幅が15、exponentが3となり、15-3=12となる。乗算値Aは、4096(バス幅16bit、すなわち2の12乗)となり、乗算器201a1は、入力データと乗算値Aを乗算する。乗算器201a1は、入力データと乗算値Aとを乗算すると、1のデータが結果的に47bit目から32bit目にシフトした状態になる。
【0023】
乗算器201a1は、1のデータが跨ぎデータであるか否かを判定する。なお、跨ぎデータの位置は事前に乗算値Cとして、乗算値ROMテーブルに登録しておけばよい。ここで示す例の場合、3回に1度跨ぎデータが生じる。そのため、乗算値Cは、0、0、4となる。なお、x0を行う(すなわち、0倍する)ことにより、補正値は無いものとなる。乗算値Cは、フレームデータ長(ここで示す例の場合、bit31から0までの32bit)とexponent値とによって規則性が定まる。そのため、処理開始前に準備することが可能となる。
図5に示す例において、乗算器201a1は、1のデータは跨ぎデータではないと判定する(ステップS2)。なお、乗算値Aを変更することにより、様々なexponentへ対応することができる。1のデータは跨ぎデータではないと乗算器201a1が判定した場合、乗算器201a2は、乗算値Cを0とし、乗算する。また、1のデータは跨ぎデータではないと乗算器201a1が判定した場合、加算器201a4は、加算値を0とする。
【0024】
また、乗算器201a1は、入力データと乗算値A4096(バス幅16bit)とを乗算し、2のデータを12bitシフトさせる(ステップS3)。乗算器201a1は、2のデータが跨ぎデータであるか否かを判定する。
図5に示す例において、乗算器201a1は、2のデータは跨ぎデータではないと判定する(ステップS4)。2のデータは跨ぎデータではないと乗算器201a1が判定した場合、乗算器201a2は、乗算値Cを0とし、乗算する。また、2のデータは跨ぎデータではないと乗算器201a1が判定した場合、加算器201a4は、加算値を0とする。
【0025】
また、乗算器201a1は、入力データと乗算値A4096(バス幅16bit)とを乗算し、3のデータを乗算値Aの分(この例では12bit)だけシフトさせる(ステップS5)。乗算器201a1は、3のデータが跨ぎデータであるか否かを判定する。
図5に示す例において、乗算器201a1は、3のデータは跨ぎデータであると判定する(ステップS6)。3のデータは跨ぎデータであると乗算器201a1が判定した場合、加算器201a4は、3のデータと3aのデータとを加算することにより、デカプセル処理を行う(ステップS7)。乗算器201a3は、乗算値Bをexponent値を用いて2^exponent(この例では、exponentは3)を演算することにより8(バス幅16bit)とし、3のデータと3aのデータとの加算結果を乗算値Bの分(この例では3bit)だけシフトさせることにより、Block uncompressed処理を行う(ステップS8)。
【0026】
1サイクル目の1のデータ、2のデータ、3のデータについてBlock uncompressed処理が完了した場合、入力データのN番目がN+1番目に、入力データのN+1番目がN+2番目にそれぞれ更新され、乗算器201a1、201a2、201a3、および加算器201a4は、上述と同様の処理を繰り返し行う。なお、1のデータ、2のデータ、3のデータ、・・・、8のデータまで処理が完了し、次のデータを9のデータとすると、1のデータと9のデータが同じBit配列パターンとなる。ここでは、この周期性をサイクルという。入力データの更新タイミングと各乗算値A、B、Cは、ROMテーブル制御回路201cにより管理および制御が行われる。例えば、ROMテーブル制御回路201cは、入力データと乗算値A、B、Cとの関係を管理する。なお、この場合、入力データ1列に対して、ABC、ABC、ABCと3セット分の乗算値が必要となる。この規則性は、exponentとフレーム幅(32bit)とによって変化する。また、例えば、ROMテーブル制御回路201cは、制御として、入力データを1回ロードする度にABC、ABC、ABCと乗算値を3回Readする。具体的には、ROMテーブル制御回路201cは、入力データを3回に1度更新する(入力データの取り込みを行う)と、乗算ROMテーブルから乗算値をReadする。乗算値ROMテーブル201bの値は、デカプセル処理およびuncompressed処理よりも前に(すなわち、入力データを受け入れる前に)、書き込みROMテーブルとして利用するほかに、書き換えて使用することも可能である。書き込みROMテーブルを書き換えて使用した場合、さらに汎用性のある回路となる。exponent値が変わると、それ専用のシフト量や跨ぎパターンの発生周期が変わる。そのため、各exponentに対応した回路が必要となる。上述の方式では、その回路における可変となる部分をパラメータ化し乗算値テーブルに持つことにより、
図3に示す構成の回路を共通に使用することができ、乗算値だけを変更することにより実現することができる。例えば、exponentが5の場合、乗算値Aが1024となり、乗算値Bが32、乗算値Cが0、0、0、256、0、0、0、64、0、0、0、16、0、0、04という周期のパターンとなる。
【0027】
(利点)
上述のように、通信システム1の情報処理回路201において、ROMテーブル制御回路201cは、乗算値A(第1乗算値の一例)、乗算値C(第2乗算値の一例)、および乗算値B(第3乗算値の一例)の管理および制御を行う。加算器201a4は、N番目の入力パターンに1つのデータが分割された第1部分データが含まれ、N+1番目の入力パターンに前記1つのデータが分割された第2部分データが含まれている場合、前記N番目の入力パターンと前記第1乗算値とを乗算した第1乗算結果と、前記N+1番目の入力パターンと前記第2乗算値とを乗算した第2乗算結果とを加算する。乗算器201a3は、前記加算器201a4による加算結果と前記第3乗算値とを乗算する。この情報処理回路201により、exponentごとに回路を設ける必要がなくなる。その結果、通信システムにおいて、可変のexponentをサポートし、回路規模を抑制することができる。
【0028】
図6は、本開示の実施形態による情報処理回路201の最小構成を示す図である。情報処理回路201は、
図6に示すように、ROMテーブル制御回路201c(制御回路の一例)、加算器201a4、および乗算器201a3(第1乗算器の一例)を備える。ROMテーブル制御回路201cは、乗算値A(第1乗算値の一例)、乗算値C(第2乗算値の一例)、および乗算値B(第3乗算値の一例)の管理および制御を行う。加算器201a4は、N番目の入力パターンに1つのデータが分割された第1部分データが含まれ、N+1番目の入力パターンに前記1つのデータが分割された第2部分データが含まれている場合、前記N番目の入力パターンと前記第1乗算値とを乗算した第1乗算結果と、前記N+1番目の入力パターンと前記第2乗算値とを乗算した第2乗算結果とを加算する。乗算器201a3は、前記加算器201a4による加算結果と前記第3乗算値とを乗算する。
【0029】
図7は、本開示の実施形態による最小構成の情報処理回路201の処理フローの一例を示す図である。次に、本開示の実施形態による最小構成の情報処理回路201の処理について
図7を参照して説明する。
【0030】
ROMテーブル制御回路201c、乗算値A、乗算値C、および乗算値Bの管理および制御を行う(ステップS101)。加算器201a4は、N番目の入力パターンに1つのデータが分割された第1部分データが含まれ、N+1番目の入力パターンに前記1つのデータが分割された第2部分データが含まれている場合、前記N番目の入力パターンと前記第1乗算値とを乗算した第1乗算結果と、前記N+1番目の入力パターンと前記第2乗算値とを乗算した第2乗算結果とを加算する(ステップS102)。乗算器201a3は、前記加算器201a4による加算結果と前記第3乗算値とを乗算する(ステップS103)。
【0031】
以上、本開示の実施形態による最小構成の情報処理回路201について説明した。この情報処理回路201により、通信システムにおいて、可変のexponentをサポートし、回路規模を抑制することができる。
【0032】
なお、本開示の実施形態における処理は、適切な処理が行われる範囲において、処理の順番が入れ替わってもよい。
【0033】
本開示の実施形態について説明したが、上述の通信システム1、送信装置10、受信装置20、情報処理回路201、その他の制御装置は内部に、コンピュータシステムを有していてもよい。そして、上述した処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。コンピュータの具体例を以下に示す。
【0034】
図8は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。コンピュータ5は、
図8に示すように、CPU6、メインメモリ7、ストレージ8、インターフェース9を備える。
例えば、上述の通信システム1、送信装置10、受信装置20、情報処理回路201、その他の制御装置のそれぞれは、コンピュータ5に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ8に記憶されている。CPU6は、プログラムをストレージ8から読み出してメインメモリ7に展開し、当該プログラムに従って上記処理を実行する。また、CPU6は、プログラムに従って、上述した各記憶部に対応する記憶領域をメインメモリ7に確保する。
【0035】
ストレージ8の例としては、HDD(Hard Disk Drive)、SSD(Solid State Drive)、磁気ディスク、光磁気ディスク、CD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)、半導体メモリ等が挙げられる。ストレージ8は、コンピュータ5のバスに直接接続された内部メディアであってもよいし、インターフェース9または通信回線を介してコンピュータ5に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ5に配信される場合、配信を受けたコンピュータ5が当該プログラムをメインメモリ7に展開し、上記処理を実行してもよい。少なくとも1つの実施形態において、ストレージ8は、一時的でない有形の記憶媒体である。
【0036】
また、上記プログラムは、前述した機能の一部を実現してもよい。さらに、上記プログラムは、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるファイル、いわゆる差分ファイル(差分プログラム)であってもよい。
【0037】
本開示のいくつかの実施形態を説明したが、これらの実施形態は、例であり、開示の範囲を限定しない。これらの実施形態は、開示の要旨を逸脱しない範囲で、種々の追加、省略、置き換え、変更を行ってよい。
【符号の説明】
【0038】
1・・・通信システム
5・・・コンピュータ
6・・・CPU
7・・・メインメモリ
8・・・ストレージ
9・・・インターフェース
10・・・送信装置
20・・・受信装置
101、202・・・信号処理部
102・・・送信部
201・・・情報処理回路
201a・・・乗算ブロック
201a1、201a2、201a3・・・乗算器
201a4・・・加算器
201b・・・乗算値ROMテーブル
201c・・・ROMテーブル制御回路