【実施例1】
【0013】
[システム構成]
図1は、実施例1に係る無線通信システムの全体構成例を示す図である。
図1に示すように、この無線通信システムは、複数のユーザ端末1と基地局装置10とを有する。
【0014】
各ユーザ端末1は、基地局装置10を介して他のユーザ端末1と無線通信を実行し、基地局装置10との間で各種制御情報を送受信する端末装置である。例えば、ユーザ端末1は、携帯電話、スマートフォン、パーソナルコンピュータなどである。
【0015】
基地局装置10は、ユーザ端末1の無線通信に関する各種制御を実行する装置である。例えば、基地局装置10は、異なるユーザ端末1間の無線通信を中継し、ユーザ端末1に各種制御情報を送信し、ユーザ端末1のハンドオーバなどを制御する。
【0016】
[ハードウェア構成]
図2は、実施例1に係る基地局装置の構成を示すブロック図である。
図2に示すように、基地局装置10は、複数のAMP部11と、複数のTRX部12と、BB部13と、CNT部14を有する。なお、基地局装置10は、図示した処理部以外の処理部を有していてもよい。
【0017】
各AMP部11は、各AMP部11に接続される各アンテナを介して送受信される無線信号に対して、電力増幅を実行する処理部である。例えば、各AMP部11は、増幅回路などによって実現される。
【0018】
各TRX部12は、無線信号に対してアナログ−デジタル変換、または、デジタル−アナログ変換を実行する処理部である。例えば、各TRX部12は、変換回路などによって実現される。
【0019】
BB部13は、無線信号に対して、ベースバンド処理などの信号処理を実行する処理部である。例えば、BB部13は、DSP(Digital Signal Processor)やLSIなどによって実現される。このBB部13の内部は、各回路等の処理部がSRIOによって接続される。
【0020】
CNT部14は、IP(Internet Protocol)レイヤのプロトコル処理、呼制御処理、OAM(Operations Administration and Maintenance)処理、帯域制御処理、障害情報の収集、装置の障害監視などを実行する処理部である。例えば、CNT部14は、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などによって実現される。
【0021】
[BB部のハードウェア構成]
図3は、実施例1に係る基地局装置のBB部の構成例を示す図である。
図3に示すように、BB部13は、LSI(Large Scale Integration)13aと、DSP#01から06と、SRIOスイッチ20とを有し、SRIOスイッチ20を中心とするスター状で各処理部が接続される。
【0022】
LSI13aは、RF(Radio Frequency)インタフェースやコアネットワークインタフェースなどのインタフェースとの間でデータを送受信する。また、LSI13aは、TRX部12とデータの送受信を実行する。このLSI13aは、SRIOスイッチ20を介して、各DSPと通信を実行する。
【0023】
各DSPは、1つまたは複数のDSPを用いて各種処理部を実行する。ここで実行される処理部には、例えば、レイヤ2処理部、符号化部、変調部、復調部、復号化部、スケジューラ部などがある。
【0024】
レイヤ2処理部は、CNT部14とのインタフェースを行う処理部であり、レイヤ2に関する各種処理を実行する。ここで実行される処理には、MAC(Media Access Control)、RLC(Radio Link Control)、PDCP(Packet Data Convergence Protocol)の各サブレイヤに関する処理がある。
【0025】
符号化部は、レイヤ2処理部からのデータに対してターボ符号化などの符号化処理を実行する。変調部は、符号化部からのデータに対して、変調処理や無線送信用の処理を実行する。復調部は、LSI13aからのデータの復調及びチャネル推定処理を実行する。復号化部は、復調部からのデータに対して、ターボ復号等の復号処理を実行する。スケジューラ部は、無線帯域の制御や測定情報の収集を実行する。
【0026】
SRIOスイッチ20は、BB部13内の各処理部とSRIOで接続し、SRIOを用いてBB13内部のデータ通信を中継する。例えば、このSRIOスイッチ20は、SRIOパケットの優先度であるHigh、Mid、Lowごとに、送信側に送信用のバッファが設けられる。
【0027】
そして、SRIOスイッチ20は、各処理部からSRIOパケットを受信した順に、各SRIOパケットの優先度に対応する再送用バッファの該当領域に順に格納する。そして、SRIOスイッチは、優先度が最も高いHighから順にSRIOパケットを読み出して宛先に送信する。
【0028】
[SRIOスイッチの構成]
図4は、SRIOスイッチの機能構成を示す機能ブロック図である。
図4に示すように、SRIOスイッチ20は、複数の受信バッファ20a、フロー制御用バッファ群21、送信制御部22、バッファ調整部23、パケット制御部24を有する。
【0029】
各受信バッファ20aは、SRIOスイッチ20と接続される処理部ごとに設けられるバッファである。例えば、DSP#01が実行する符号化部が、DSP#02で実行される変調部への送信対象のSRIOパケットを受信バッファ20aに書き込む。
【0030】
フロー制御用バッファ群21は、SRIOパケットに設定される優先度ごとにパケットを保持する。例えば、フロー制御用バッファ群21は、High用バッファ21aとMid用バッファ21bとLow用バッファ21cとを有し、BB部13内のある処理部から他の処理部へ送信されるSRIOパケットを一時的に保持する。
【0031】
High用バッファ21aは、優先度が最も高いHighが設定されるSRIOパケットを保持する。Mid用バッファ21bは、優先度が次に高いMid用が設定されるSRIOパケットを保持する。Low用バッファ21cは、優先度が最も低いLowが設定されるSRIOパケットを保持する。
【0032】
送信制御部22は、フロー制御用バッファ群21からSRIOパケットを読み出して、宛先の処理部へ送信する処理部である。例えば、送信制御部22は、High用バッファ21aからSRIOパケットを読み出して宛先に送信する。続いて、送信制御部22は、High用バッファ21aのパケット送信が完了すると、次にMid用バッファ21bからSRIOパケットを読み出して宛先に送信する。その後、送信制御部22は、Mid用バッファ21bのパケット送信が完了すると、Low用バッファ21cからSRIOパケットを読み出して、宛先へ送信する。
【0033】
なお、送信制御部22は、SRIOパケットの再送制御も実行する。具体的には、送信制御部22は、送信エラーが発生したり、受信側の処理部から再送要求を受信したりした場合に、再送処理を実行する。例えば、送信制御部22は、エラーが発生したSRIOパケット以降のSRIOパケットの格納をパケット制御部24に指示して、SRIOパケットの再送を実行する。
【0034】
バッファ調整部23は、基地局装置10内で取得されるパラメータに基づいてSRIOパケットのトラフィック量を予測し、予測値に基づいて、SRIOスイッチ20が有する優先度ごとのバッファ量を動的に制御する処理部である。このバッファ調整部23は、重みテーブル23a、パラメータ収集部23b、パラメータ分析部23c、容量制御部23dを有する。
【0035】
重みテーブル23aは、基地局装置10内で取得されるパラメータごとに設定される重みを記憶する。
図5は、重みテーブルに記憶される情報の例を示す図である。
図5に示すように、重みテーブル23aは、「番号、パラメータ要因及び情報、重み係数1、重み係数2」を対応付けて記憶する。
【0036】
ここで記憶される「番号」は、重み係数1の優先順位を示す番号である。「パラメータ要因及び情報」は、基地局装置10内で取得されるパラメータを特定する情報である。「重み係数1」は、パラメータに設定される重みの情報であり、重み総数を用いてバッファ制御をする際に利用される。「重み係数2」は、パラメータに設定される重みの情報であり、バッファを個々に制御をする際に利用される。
【0037】
図5の例では、「データ通信を要求しているUE(ユーザ端末)数」に対して、重み係数1として「10」が設定されており、重み係数2として「1.5」が設定されている。また、「HO(ハンドオーバー)されるデータ量」に対して、重み係数1として「4」が設定されており、重み係数2として「1.8」が設定されている。
【0038】
なお、各「パラメータ要因及び情報」には、いずれかの優先度が対応付けられている。例えば、「番号=1、パラメータ要因及び情報=データ通信を要求しているUE数」の重み係数1と重み係数2は、優先度が「High」に対する重みである。また、「番号=2、パラメータ要因及び情報=現在データ通信しているUEの再送の発生有無と再送量」の重み係数1と重み係数2は、優先度が「Mid」に対する重みである。このような設定は、システム等にあわせて、管理者が任意に設定できる。
【0039】
パラメータ収集部23bは、基地局装置10と基地局装置外の外部装置との間のデータ通信に関するパラメータを収集する処理部である。例えば、パラメータ収集部23bは、SRIOスイッチ20と専用線で接続される各処理部から、
図5に示した各パラメータを収集し、収集結果をパラメータ分析部23cに出力する。なお、収集タイミングは、一定時間ごとや管理者が指定したタイミングなど任意に設定できる。
【0040】
パラメータ分析部23cは、パラメータ収集部23bによって収集されたパラメータに基づいて、基地局装置10と基地局装置10外の外部装置との間のデータ通信のトラフィック量を予測する処理部である。具体的には、
図5に示した重み係数1を用いた例で説明する。パラメータ分析部23cは、パラメータ収集部23bによって収集されたパラメータごとの重みを、重みテーブル23aの重み係数1を参照して特定する。
【0041】
そして、パラメータ分析部23cは、優先度High、Mid、Lowごとに、重み係数1の総数を算出する。その後、パラメータ分析部23cは、算出した各優先度の重み総数から、各優先度の割合や相対値を算出する。例えば、パラメータ分析部23cは、Highの重みが50、Midの重みが20、Lowの重みが30であった場合、「High:Mid:Low=5:2:3」と決定する。そして、パラメータ分析部23cは、算出した割合等を容量制御部23dに出力する。
【0042】
容量制御部23dは、フロー制御用バッファ群21の各バッファの容量を制御する処理部である。具体的には、容量制御部23dは、パラメータ分析部23cから通知された情報に基づいて、フロー制御用バッファ群21の全容量における各バッファへの割当を調整する。
【0043】
例えば、上記重み係数1を用いた例で説明すると、容量制御部23dは、フロー制御用バッファ群21の全容量が「500MB(メガバイト)」である状態で、パラメータ分析部23cから「High:Mid:Low=5:2:3」を受信する。この場合、容量制御部23dは、High用バッファ21aの容量を「500×5/10=250MB」に調整する。同様に、容量制御部23dは、Mid用バッファ21bの容量を「500×2/10=100MB」に調整し、Low用バッファ21cの容量を「500×3/10=150MB」に調整する。
【0044】
ここで、調整方法としては、各バッファへの格納アドレスを変更する方法が利用できる。例えば、容量制御部23dは、調整した容量にしたがって、アドレステーブル24aに対して、各バッファの開始アドレスと終了アドレスとを書き換えることで、各優先度のバッファ量を調整する。
【0045】
図6は、バッファ容量の変更を説明する図である。
図6に示すように、容量制御部23dは、全バッファの合計容量を変更することなく、各優先度に割り与える割合を変更することで、各優先度のバッファ容量を調整する。
図6の例では、容量制御部23dが、High用バッファ21aの割合を大きくし、Mid用バッファ21bの割合を変更せず、Low用バッファ21cの割合を小さくする例を示している。
【0046】
なお、容量制御部23dは、調整後の容量と現在の容量とを比較して、各優先度のバッファ量の増減値を算出し、算出した増減値に基づいて、各優先度のバッファ量を調整することもできる。
【0047】
パケット制御部24は、アドレステーブル24a、格納アドレス計算部24b、インタフェース部24c、再送処理部24dを有し、これらによって、パケットの送信を制御する処理部である。
【0048】
アドレステーブル24aは、フロー制御用バッファ群21への格納アドレスを記憶するテーブルである。例えば、アドレステーブル24aは、各バッファに対応付けて、各バッファの開始アドレスと終了アドレスとを記憶する。ここで記憶される情報は、容量制御部23dによって書き換えられる。
【0049】
格納アドレス計算部24bは、受信バッファ20aごとに、受信されたSRIOパケットに設定される優先度に対応するフロー制御用バッファへの格納アドレスを、アドレステーブル24aに基づいて算出する処理部である。この格納アドレス計算部24bは、算出したアドレス情報および受信されたSRIOパケットをインタフェース部24cに出力する。
【0050】
インタフェース部24cは、受信されたSRIOパケットを指定された優先度に対応するバッファの指定された格納位置へ格納する処理部である。具体的には、インタフェース部24cは、格納アドレス計算部24bから受信した格納アドレスを用いて、受信されたSRIOパケットを格納する。
【0051】
例えば、インタフェース部24cは、格納アドレス計算部24bから格納アドレス「0x0012」が指定された場合、フロー制御用バッファ群21に対してアドレス「0x0012」を指定して、受信されたSRIOパケットを書き込む。この結果、インタフェース部24cは、SRIOパケットに指定される優先度に対応するバッファの領域に、SRIOパケットを格納することができる。
【0052】
再送処理部24dは、SRIOパケットの再送を実行する処理部である。例えば、再送処理部24dは、送信制御部22からエラーが発生したSRIOパケット以降の再送依頼を受信した場合に、依頼されたSRIOパケット以降の再送を実行する。
【0053】
[処理の流れ]
次に、SRIOスイッチ20が実行する処理の流れを説明する。ここでは、全体的な処理の流れ、バッファ量の調整処理、バッファへの格納処理について説明する。
【0054】
(全体的な処理)
図7は、SRIOスイッチが実行する全体的な処理の流れを示すフローチャートである。
図7に示すように、SRIOスイッチ20は、電源が投入されると、バッファ量調整機能をONにし(S101)、初期化を実行する(S102)。
【0055】
その後、パラメータの収集タイミングになると(S103:Yes)、パラメータ収集部23bは、パラメータを収集する(S104)。続いて、パラメータ分析部23cは、重みテーブル23aを参照し、収集されたパラメータに重み付けを実行する(S105)。
【0056】
そして、パラメータ分析部23cは、パラメータの重み係数1や重み係数2を用いて、各優先度に対する重みや各優先度の割合等を算出するパラメータ判断処理を実行する(S106)。その後、容量制御部23dは、各優先度に対応するパラメータが容量を変更する閾値以上である場合に(S107:Yes)、該当する優先度のバッファ容量を変更する(S108)。なお、容量制御部23dは、各優先度に対応するパラメータが容量を変更する閾値未満である場合に(S107:No)、処理を終了する。
【0057】
(調整処理)
図8は、バッファ量の調整処理の流れを示すフローチャートである。
図8に示すように、容量制御部23dは、各優先度について、パラメータ分析部23cによりパラメータや重みの分析結果から、調整量がプラスかマイナスか0か判定する(S201)。
【0058】
容量制御部23dは、調整量がプラスである場合(S201:プラス)、フロー制御用バッファ群21全体の現バッファ量が最大値(Max)ではない場合(S202:No)、調整量にしたがって、バッファ量を増やすようにアドレステーブル24aに記憶された格納アドレスを更新する(S203)。なお、容量制御部23dは、調整量がプラスである場合(S201:プラス)、かつ、現バッファ量が最大値(Max)である場合(S202:Yes)、処理を終了する。
【0059】
一方、容量制御部23dは、調整量がマイナスである場合(S201:マイナス)、現バッファ量が0ではない場合(S204:No)、調整量にしたがって、バッファ量を減らすようにアドレステーブル24aに記憶された格納アドレスを更新する(S205)。なお、容量制御部23dは、調整量がマイナスである場合(S201:マイナス)、かつ、現バッファ量が0である場合(S204:Yes)、処理を終了する。また、容量制御部23dは、調整量が0である場合も(S201:0)、処理を終了する。
【0060】
(格納処理)
図9は、バッファへの格納処理の流れを示すフローチャートである。
図9に示すように、格納アドレス計算部24bは、SRIOパケットを受信すると(S301)、受信パケットの優先度を検出する(S302)。
【0061】
続いて、格納アドレス計算部24bは、アドレステーブル24aを参照し、検出した優先度に対応するバッファの最新アドレス位置を取得し(S303)、さらに、当該バッファの最大時のアドレス位置を取得する(S304)。
【0062】
その後、格納アドレス計算部24bは、最新のアドレス位置から最大アドレス位置までの範囲内で、受信されたSRIOパケットの格納位置を算出する(S305)。そして、インタフェース部24cは、算出された格納位置に、受信されたSRIOパケットを格納する(S306)。
【0063】
[具体例]
次に、パラメータを用いてバッファ容量を変更する具体例を説明する。ここでは、一例として、
図5に示した「データ通信を要求しているユーザ端末数」を用いたバッファ制御と、「下りデータの再送処理量」を用いたバッファ制御と、
図5の重み係数2を用いて実行する例について説明する。
【0064】
(ユーザ端末数の算出)
まず、データ通信を要求しているユーザ端末数をパラメータとして抽出する例を説明する。ユーザ端末1が発信時やハンドオーバなどにより、基地局装置10と接続を確立する場合や再同期を行う場合に、ランダムアクセスが行われる。ランダムアクセスにおいて最初にpreambleを送信するためのチャネルは、物理ランダムチャネル(PRACH:Physical Random Access Channel)と呼ばれる。
【0065】
図10は、発信時のランダムアクセス処理を説明する図である。ユーザ端末1は、セル内に用意された複数のpreambleからランダムに選択したpreambleを、message1として送信する(S401)。基地局装置10は、preambleを検出すると、その応答情報であるRACH responseを、message2として送信する(S402)。
【0066】
RACH responseを受信したユーザ端末1は、コネクション要求信号であるRRC(Radio Resource Control)connection requestを、message3として送信する(S403)。基地局装置10は、message3を受信した後に、コネクション確立のためのセル設定情報などを含むRRC connection setupをmessage4として送信する(S404)。その後、ユーザ端末1は、自分のUE IDがmessage4に含まれていた場合に、ランダムアクセス処理を完了し、コネクションを確立する(S405)。
【0067】
基地局装置10のパラメータ収集部23bは、発信時に行われるランダムアクセス処理のmessage4にて確立したコネクション数を、例えば10ms単位で監視する。そして、このデータ通信を要求しているユーザ端末数は、スケジューラ部(図示せず)等にて算出され、バッファ調整部23に送信される。具体的に
図11を用いて説明する。
【0068】
図11は、データ通信を要求しているユーザ端末数の変化を示す図である。
図11は、message4にて確立したコネクション数を10ms単位で監視した結果を表すグラフである。
図11の(a)のグラフは、
図10で説明したmessage4の数であり、
図11の(b)のグラフは、データ通信を要求しているユーザ端末数である。バッファ調整部23のパラメータ収集部23bは、受信した「データ通信を要求しているユーザ端末数」を監視する。そして、例えば閾値(例えば150)を超えた場合には、パラメータ分析部23cが、重み付けを実行する。
【0069】
このように、基地局装置10は、10msで動作するRACH処理で平均10個のユーザ端末を受付する。したがって、ユーザ端末数が150個となった場合、例えば在圏セルの最大ユーザ端末数を600とすると、「600」の25%程度を超えていることから、BB部13内の制御情報が増加し、優先度が高いSRIOパケットが増加すると想定することができる。
【0070】
(再送量の算出)
次に、下りデータの再送量をパラメータとして抽出する例を説明する。
図12は、下りデータの再送処理を説明する図である。
図12に示すように、基地局装置10は、ユーザ端末1に対して、下り送信データを下りデータChannelで送信する。
【0071】
ユーザ端末1は、受信するべきデータが届いたかどうかを上り制御Channel内のACK/NACK情報にて基地局装置10に送信する。基地局装置10は、未到着を示すNACKを受信した場合は、NACK送信元のユーザ端末1に下りデータを再送する。
【0072】
ここで、データ通信しているユーザ端末の再送量は、BB部13内の復号部における上り制御Channelから抽出されたACK/NACK情報をもとに、BB部13内のスケジューラ部にて算出できる。
図13は、下りデータの再送量の変化を示す図である。
【0073】
図13は、再送ビット数を8秒間隔で計数し、その変化を表した図である。
図13に示すように、時間が経過するに連れて再送ビット数が増加している。そして、56秒まで再送ビット数が増加し続け、56秒以後は閾値を超え続けている。このように、閾値600Kbit以上が連続している場合、パラメータ収集部23bにパラメータが収集された後、重み付けされて判定が実行される。閾値は、再送が8ms単位で行われることから、最大送信時の150kbitの50%である1msで75kbitが再送されたとした場合の値「75kbit×8ms=600kbit」とすることができる。データ通信しているユーザ端末の再送量が増加した場合、データが増加することから優先度がMidのSRIOパケットが増加すると想定することができる。
【0074】
(バッファ制御)
パラメータ収集部23bは、
図11や
図13で説明したように、上述したデータ通信を要求しているユーザ端末数および下りデータの再送量を収集する。この実施例では、データ通信を要求しているユーザ端末数については、閾値「150」に対して26%以上であり、超えている値の平均値「138kbit」が閾値「600」の23%以上である。
【0075】
ここで、一例として、パラメータ分析部23cは、「データ通信を要求しているユーザ端末数」について、制御情報が増加の直接要因となることから、
図5の重み計数2を参照して、「1.5」を取得する。そして、この重み計数2の「1.5」を用いて、0.26%を1.5倍する。具体的には、「0.4≒(0.26×1.5)」を算出する。
【0076】
また、パラメータ分析部23cは、「下りデータの再送量」について、個別channelのデータ量の増加の直接要因となることから、
図5の重み計数2を参照して、「1.5」を取得する。そして、この重み計数2の「1.5」を用いて、0.23%を1.5倍する。具体的には、「0.3≒(0.23×1.5)」を算出する。
【0077】
また、一例として、バッファ全体で9Kbyteであり、バッファの優先度High、Mid、Lowには、初期化時に3Kbyteずつが割り当てられているとする。そうすると、パラメータ分析部23cは、「データ通信を要求しているユーザ端末数」について、優先度Highに影響があることから、High用バッファ21aの容量を「3Kbyte×(1.0+0.4)=4.2kbyte」と算出する。
【0078】
また、パラメータ分析部23cは、「下りデータの再送量」について、優先度Midに影響があることから、Mid用バッファ21bのバッファ容量を「3Kbyte×(1.0+0.3)=3.9kbyte」と算出する。
【0079】
そして、パラメータ分析部23cは、Low用バッファ21cのバッファ容量については、「9.0−4.2−3.9=0.9kbyte」と算出する。
【0080】
容量制御部23dは、これらの算出結果を用いてアドレステーブル24aを更新する。
図14は、バッファ制御の具体例を説明する図である。
図14に示すように、調整前は、「0x0000−0x0BB4」がHigh用バッファ21aであり、「0x0BB8−0x176C」がMid用バッファ21bであり、「0x1770」から最後までがLow用バッファ21cである。
【0081】
この状態から、容量制御部23dは、High用バッファ21aについて、「0x0000−0x0BB4」から「0x0000−0x1064」にアドレステーブル24aを書き換えることで、High用バッファ21aの容量を4.2Kbyteに増加させる。
【0082】
同様に、容量制御部23dは、Mid用バッファ21bについて、「0x0BB8−0x176C」から「0x1068−0x1FA0」にアドレステーブル24aを書き換えることで、Mid用バッファ21bの容量を3.9Kbyteに増加させる。
【0083】
また、容量制御部23dは、Low用バッファ21cについて、アドレステーブル24aにおいて開始位置を「0x1FA4」に書き換えることで、Low用バッファ21cの容量を0.9Kbyteに減少させる。このようして、容量制御部23dは、各バッファの合計容量を変化させることなく、各バッファの容量を各種パラメータによって動的に変化させる。
【0084】
従来、SRIOスイッチ20内のフロー制御バッファは、システム的にバッファ量を決定するが、シングルバッファを優先度毎に分割して、その優先度毎に転送量の平均値と最大値の間からバッファ量を決定する。その為、大きめのバッファを用意することが行われていた。
【0085】
しかし、各優先度のバッファの最大値が重なる場合は少ない。また、本実施例の手法を用いることで、重なったとしても、Low用バッファ21cの容量を小さくし、優先度がHighのSRIOパケットを優先的に送信することができる。このため、優先度毎のバッファの空きを有効活用が出来ることから、全体バッファ量自体の削減が可能となり、コストダウンが図れる。
【0086】
従来は、再送が発生した場合は、データを再度送信することから、電力増大を招いていた。しかし、本実施例の手法を用いることで、フロー制御用のバッファ量の優先度に対応した割合をトラフィックに応じて変更することができ、再送処理発生が低下し、電力削減が図れる。
【0087】
従来は、再送発生を考えて、BB部13の内部の動作タイミングを規定していたので、各処理部間には、マージンを含んだタイミングが設定されていた。しかし、本実施例の手法を用いることで、再送発生が低くなり、マージンを削減することができるので、処理時間に余裕が生まれ、BB部13の性能向上により、処理収容ユーザ数が増大することになる。