以下、図面に基づいて、本願の開示する情報処理装置及びリソース割当方法の実施例を詳細に説明する。尚、本実施例により、開示技術が限定されるものではない。また、以下に示す各実施例は、矛盾を起こさない範囲で適宜組み合わせても良い。
図1は、本実施例の無線システム1の一例を示すブロック図である。図1に示す無線システム1は、複数のUE(User Equipment)2と、各セル内のUE2と無線接続するアンテナ3と、サーバ4と、EPC(Evolved Packet Core)装置5と、例えば、インターネット等のコアネットワーク6とを有する。UE2は、例えば、LTE(Long Term Evolution)方式の移動局である。
サーバ4は、CPU(Central Processing Unit)11と、メモリ12とを有する。図2は、CPU11内の機能構成の一例を示す説明図である。CPU11は、例えば、第1のCPU11A及び第2のCPU11B等を有する。第1のCPU11Aは、例えば、コア#1、コア#2、コア#3及びコア#4を有するマルチコアCPUである。第2のCPU11Bは、例えば、コア#5、コア#6、コア#7及びコア#8を有するマルチコアCPUである。CPU11は、例えば、第1のCPU11Aや第2のCPU11Bと異なるリソース上にリソースコントローラ22の処理機能を実行している。尚、説明の便宜上、リソースコントローラ22は、第1のCPU11Aや第2のCPU11Bと異なるリソースで実行するようにしたが、第1のCPU11Aや第2のCPU11Bのリソース上で実行するようにしても良い。サーバ4は、CPU11内のリソースを使用し、例えば、SDN(Software Defined Network)やNFV(Network Function Virtualization)を実現する。サーバ4は、CPU11のリソースに基地局(eNB:Evolved Node B)21及びリソースコントローラ22の処理機能を割当てる。eNB21は、アンテナ3と接続し、アンテナ3と無線接続するUE2の基地局としての処理機能を実行するリソース上の無線装置である。リソースコントローラ22は、eNB21毎のリソース量に基づき、サブフレーム単位で各eNB21の割当コアを決定する処理機能を実行するリソース上のコントローラである。EPC装置5は、サーバ4と、LTE方式のアクセス網を収容するコアネットワーク6との間を接続するゲートウェイ装置である。
リソースコントローラ22は、CPU11のリソース上で各eNB21を動的に割当てる割当機能を有する。eNB21は、L1(Layer1)処理部21Aと、L2(Layer2)/L3(Layer3)処理部21Bとを有する。L1処理部21Aは、L1の処理を実行する処理機能である。L2/L3処理部21Bは、L2/L3の処理を実行する処理機能である。
図3は、eNB21内の機能構成の一例を示すブロック図である。図3に示すeNB21内のL1処理部21Aは、FFT(Fast Fourier Transform)31と、等化部32と、CH(Channel)推定部33と、復調部34と、復号化部35と、符号化部36と、変調部37とを有する。更に、L1処理部21Aは、IFFT(Invers Fast Fourier Transform)38と、コントローラ39とを有する。FFT31は、上りの無線信号に対してFFT処理を実行し、上りの無線信号を時間領域から周波数領域に変換する。CH推定部33は、FFT処理後の上りの無線信号のパイロット信号からチャネルを推定する。等化部32は、チャネル推定結果に基づき、FFT処理後の上りの無線信号を等化処理する。復調部34は、等化処理後の上りの無線信号を復調する。復号化部35は、復調後の上りの無線信号を復号化する。復号化部35は、復号化後のデータをMAC(Medium Access Control)41に出力する。符号化部36は、MAC41から得たデータを符号化する。変調部37は、符号化されたデータを変調する。IFFT38は、変調後のデータを周波数領域から時間領域の下りの無線信号に変換する。コントローラ39は、L1処理部21Aを制御する。
eNB21内のL2/L3処理部21Bは、MAC41と、RLC(Radio Link Control)42と、PDCP(Packet Data Convergence Protocol)43と、RRC(Radio Resource Control)44とを有する。MAC41は、復号化部35からのL1のデータをL2のデータに変換してRLC42に出力すると共に、RLC42からのL2のデータをL1のデータに変換して符号化部36に出力するMAC処理を実行する。RLC42は、L2の無線リンクを制御するRLC処理を実行する。RRC44は、無線回線を制御するRRC処理を実行する。PDCP43は、EPC装置5とRLC42との間に配置し、データをIPプロトコルに変換するPDCP処理を実行する。MAC41は、SCD(Scheduler)45を有する。SCD45は、RLC42やPDCP43内の図示せぬバッファのデータ滞留量や、UE2から報告されたデータ送信量に基づき、eNB21の無線通信に関わるMACスケジュール情報(SCD情報)をサブフレーム毎に生成する。更に、SCD45は、SCD情報をリソースコントローラ22に通知する。尚、L1処理部21Aは、1m秒のサブフレーム単位でUE2との間でデータ通信の処理量が大きくなる部位である。尚、LTE方式のサブフレームは1m秒間隔である。
例えば、CPU11内のコア#1はeNB#1のSCD45、コア#5はeNB#2のSCD45を実行する。各SCD45は、RLC42内の図示せぬバッファにあるデータ滞留量やUE2から報告されたデータ送信量の情報から、どのようにデータを送受信すべきか、サブフレーム単位のデータ送信量を決定するSCD情報を生成する。リソースコントローラ22は、各SCD45からのSCD情報から各eNBが使用するリソース量を算出する。そして、リソースコントローラ22は、eNB毎のリソース量に基づき、CPU11内の複数のコアの内、サブフレーム単位で各eNBの割当コアを決定する。
図4は、CPU11の稼働状況の一例を示す説明図である。例えば、サブフレームm1のタイミングの場合、図4に示すようにコア#1、#2及び#5が稼働状態にある。リソースコントローラ22は、コア#1及び#2にeNB#1のL1処理、コア#5にeNB#2のL1処理を割当てる。また、サブフレームm2のタイミングの場合、コア#1、#2、#3及び#5が稼働状態にある。リソースコントローラ22は、例えば、コア#1及び#2にeNB#1のL1処理、コア#3及び#5にeNB#2のL1処理を割当てる。また、サブフレームm6のタイミングの場合、コア#1〜#5が稼働状態にある。リソースコントローラ22は、コア#1〜#3にeNB#1のL1処理、コア#4及び#5にeNB#2のL1処理を割当てる。つまり、サブフレーム毎にコア#1〜#8の稼働状態が変動している。
図5は、SCD45及びリソースコントローラ22の一例を示す説明図である。図5に示すリソースコントローラ22は、取得部51と、解析部52と、算出部53と、比較部54と、割当部55と、要求部56とを有する。取得部51は、eNB21内のSCD45から無線通信に関わるSCD情報を取得する。解析部52は、SCD情報を解析する。算出部53は、SCD情報の解析結果に基づき、eNB21がCPUリソース上で使用する使用可能なリソース量を算出する。尚、リソース量は、例えば、eNB21の機能が使用するCPUリソース量である。比較部54は、eNB21の算出リソース量と、CPUリソースの許容リソース量とを比較する。尚、許容リソース量は、CPU11が割当可能なCPUリソース量である。割当部55は、eNB21の算出リソース量が許容リソース量以下の場合、すなわち、リソースを確保した場合、eNB21に使用する算出リソース量に基づき、当該eNB21をCPUリソース上に割当てる。要求部56は、eNB21の算出リソース量が許容リソース量を超えた場合、すなわち、リソースを確保できなかった場合、後述する優先順位に基づき、再SCD対象のeNB21を選択する。そして、要求部56は、選択したeNB21内のSCD45に対してSCD情報の見直しを要求する。SCD45は、リソースコントローラ22からのSCD情報の見直し要求に応じて調整済みのSCD情報や使用可能な最大データレートを考慮してSCD情報を見直す。
図6は、共有メモリ13のテーブル構成の一例を示す説明図である。尚、共有メモリ13は、メモリ12内にある。共有メモリ13は、コア番号13Aと、リソース量13Bと、処理内容13Cとを有する。コア番号13Aは、コアを識別する番号である。リソース量13Bは、コアが使用中のリソース量である。処理内容13Cは、コアが実行する処理内容である。尚、リソースコントローラ22は、共有メモリ13内のコア毎のリソース量を参照し、各コアの最大リソース量と現在リソース量とを比較して許容リソース量を認識しているものとする。尚、最大リソース量はコアで使用可能な最大のCPUリソース量、現在リソース量はコアで現在使用中のCPUリソース量である。
次に実施例1の無線システム1の動作について説明する。図7は、サブフレーム単位のSCD45、リソースコントローラ22及びCPU11の処理状況の一例を示す説明図である。尚、サブフレームは、例えば、n、n+1、n+2、n+3…の順である。サブフレームnのタイミングでは、サブフレームn+2のULのスケジューリングを実行する。サブフレームn+1のタイミングで受信した信号は、サブフレームn+2のタイミングで復調処理及び復号化処理を実行する。また、サブフレームn+1のタイミングでは、サブフレームn+3で送信する送信信号のDLのスケジューリングを実行する。サブフレームn+2のタイミングでは、サブフレームn+3で送信する送信信号の生成処理を実行する。サブフレームn+2で競合するUL/DLリソースは、MACスケジューリングされる時間が異なる。
リソースコントローラ22は、eNB#1及び#2のサブフレームn+2のULのSCD情報に基づき、UL処理に使用するリソース量を算出する。更に、リソースコントローラ22は、eNB#1及び#2のDLのSCD情報に基づき、DL処理に使用するリソース量を算出する。リソースコントローラ22は、eNB#1及び#2のUL及びDLのリソース量に基づき、eNB#1及び#2に割当てるCPUリソースを確保できたか否かを判定する。リソースコントローラ22は、eNB#1及び#2に割当てるCPUリソースを確保できた場合、eNB#1及び#2を各コアに割当てるリソース情報を含むSCD結果をeNB#1及び#2に通知する。eNB#1及び#2は、SCD結果を共有メモリ13に設定する。その結果、SCD結果に対応した各コアは、共有メモリ13内のSCD結果に基づき、各eNB#1及び#2のL1処理を実行するスレッドを起動する。各スレッドは、eNB毎のSCD結果に基づき、実際の無線信号処理を実行するL1処理を実行する。また、リソースコントローラ22は、eNB#1及び#2に割当てるCPUリソースを確保できなかった場合、eNB#1及び#2内のSCD45に対してSCD情報の見直しを要求する。
eNB#1のSCD45がULのSCD情報をリソースコントローラ22、eNB#2のSCD45がULのSCD情報をリソースコントローラ22に通知する。そして、リソースコントローラ22は、ULのSCD情報に対応するリソース量と、各コアの許容リソース量とに基づき、eNB#1及び#2のリソース情報を含むSCD結果を共有メモリ13に設定する。サブフレームn+1のタイミングでは、各コアは、共有メモリ13のリソース情報を含むSCD結果に基づき、受信信号を復調及び復号化する。サブフレームn+2のタイミングでは、eNB#1のSCD45がDLのSCD情報をリソースコントローラ22、eNB#2のSCD45がDLのSCD情報をリソースコントローラ22に通知する。そして、リソースコントローラ22は、DLのSCD情報に対応するリソース量と、コアの許容リソース量とに基づき、eNB#1及び#2のリソース情報を含むSCD結果を共有メモリ13に設定する。サブフレームn+3のタイミングでは、各コアは、共有メモリ13のリソース情報を含むSCD結果に基づき、送信信号を符号化して変調する。
図8は、第1の設定処理に関わるリソースコントローラ22の処理動作の一例を示すフローチャートである。リソースコントローラ22は、各SCD45からeNB21毎のSCD情報を受信したか否かを判定する(ステップS21)。リソースコントローラ22は、eNB21毎のSCD情報を受信した場合(ステップS21肯定)、eNB21毎のSCD情報を解析する(ステップS22)。
リソースコントローラ22は、各SCD情報からeNB21毎のリソース量を算出する(ステップS23)。リソースコントローラ22は、eNB21毎のリソース量を算出した後、eNB21単位にリソース量と許容リソース量とを比較する(ステップS24)。リソースコントローラ22は、比較結果に基づき、各eNB21のリソース量をコア上で確保できたか否かを判定する(ステップS25)。リソースコントローラ22は、各eNB21のリソース量がコア上で確保できた場合(ステップS25肯定)、リソース情報を生成する(ステップS26)。尚、リソース情報は、例えば、eNB21の機能に割当てるコア等のリソース量を含む情報である。リソースコントローラ22は、生成したリソース情報を更新し(ステップS27)、eNB21毎のリソース情報を含むSCD結果を各SCD45に通知し(ステップS28)、図8に示す処理動作を終了する。
リソースコントローラ22は、各eNB21のリソース量がコア上に確保できなかった場合(ステップS25否定)、優先順位に基づき、再SCD対象のeNB21を選択する(ステップS29)。リソースコントローラ22は、選択した再SCD対象のeNB21のSCD45に対して利用可能な最大データレートを通知する(ステップS30)。更に、リソースコントローラ22は、再SCD対象のeNB21のSCD45に対してSCD情報の見直しを要求し(ステップS31)、eNB21毎のSCD情報を受信したか否かを判定すべく、ステップS21に移行する。リソースコントローラ22は、eNB21毎のSCD情報を受信しなかった場合(ステップS21否定)、図8に示す処理動作を終了する。
リソースコントローラ22は、各eNB21内のSCD45からのSCD情報に基づき、eNB21毎のリソース量を算出する。リソースコントローラ22は、算出リソース量と許容リソース量とを比較し、eNB21のリソースを確保したか否かを判定する。リソースコントローラ22は、eNB21のリソースを確保した場合、リソース情報を生成し、eNB21毎のリソース情報を含むSCD結果を各SCD45に通知する。その結果、リソースコントローラ22は、eNB21のSCD情報に応じてeNB21に割当てるコアを含むリソース情報をSCD45に通知できる。
リソースコントローラ22は、eNB21のリソースを確保できなかった場合、優先順位に基づき、再SCD対象のeNB21を選択し、選択したeNB21に対して利用可能な最大データレートを通知してSCD情報の見直しを要求する。その結果、リソースコントローラ22は、再SCD対象のeNB21内のSCD45から見直したSCD情報を取得できる。
図9は、第1の設定処理実行時に関わるリソースコントローラ22、eNB21、CPU11の処理動作の一例を示すシーケンス図である。eNB#1は、サブフレームの先頭を検出したか否かを判定する(ステップS41A)。また、eNB#2も、サブフレームの先頭を検出したか否かを判定する(ステップS41B)。eNB#1は、サブフレームの先頭を検出した場合(ステップS41A肯定)、処理結果を受信する(ステップS42A)。eNB#1は、処理結果に基づき、SCD情報を生成する(ステップS43A)。eNB#1は、生成したSCD情報をリソースコントローラ22に通知する(ステップS44)。
eNB#2も、サブフレームの先頭を検出した場合(ステップS41B肯定)、処理結果を受信する(ステップS42B)。eNB#2は、処理結果に基づき、SCD情報を生成する(ステップS43B)。eNB#2は、生成したSCD情報をリソースコントローラ22に通知する(ステップS44)。
リソースコントローラ22は、各eNB21からのSCD情報を受信した場合、第1の設定処理を実行する(ステップS45)。リソースコントローラ22は、eNB#1及び#2のリソースを確保したか否かを判定する(ステップS46)。リソースコントローラ22は、リソースを確保した場合(ステップS46肯定)、リソース情報を含むSCD結果をeNB#1及び#2に通知する(ステップS47)。eNB#1は、SCD結果を受信し、受信したSCD結果を設定し(ステップS48A)、SCD結果を共有メモリ13に設定する(ステップS49A)。また、eNB#2も、SCD結果を受信した場合、受信したSCD結果を設定し(ステップS48B)、SCD結果を共有メモリ13に設定する(ステップS49B)。
次に、リソースコントローラ22は、次のサブフレームの先頭を検出したか否かを判定する(ステップS50)。リソースコントローラ22は、サブフレームの先頭を検出した場合(ステップS50肯定)、共有メモリ13のSCD結果に基づき、例えば、コア#1〜#4上でスレッドを起動する(ステップS51)。例えば、コア#1及び#3は、共有メモリ13内のSCD結果に基づき、eNB#1のL1処理を実行する(ステップS52A)。更に、コア#2及び#4は、共有メモリ13内のSCD結果に基づき、eNB#2のL1処理を実行する(ステップS52B)。そして、コア#1及び#3は、eNB#1のL1処理実行後、起動中のスレッドを停止する(ステップS53A)。更に、コア#2及び#4は、eNB#2のL1処理実行後、起動中のスレッドを停止する(ステップS53B)。
コア#1〜#4は、L1処理実行後に処理結果を共有メモリ13に設定する(ステップS54)。そして、eNB#1及び#2は、次のサブフレームの先頭を検出したか否かを判定する(ステップS55A及びS55B)。eNB#1及び#2は、サブフレームの先頭を検出した場合(ステップS55A肯定及びS55B肯定)、処理結果を受信する(ステップS56A及びS56B)。eNB#1及び#2は、処理結果に基づき、SCD情報を生成する(ステップS57A及びS57B)。eNB#1及び#2は、SCD情報をリソースコントローラ22に通知し、ステップS45以降の処理動作を実行することになる。
また、リソースコントローラ22は、リソースを確保できなかった場合(ステップS46否定)、SCD情報の見直しをeNB#1及び#2のSCD45に要求する(ステップS58)。そして、eNB#1及び#2内のSCD45は、見直し要求に応じてSCD情報を見直し(ステップS59A及びS59B)、見直し後のSCD情報をリソースコントローラ22に通知する(ステップS59C)。そして、リソースコントローラ22は、ステップS59CにてSCD情報を受信した場合に、第1の設定処理を実行すべく、ステップS45に移行する。リソースコントローラ22は、次のサブフレームの先頭を検出したのでない場合(ステップS50否定)、サブフレームの先頭を検出したか否かを判定すべく、ステップS50に移行する。
本実施例のリソースコントローラ22は、各eNB21内のSCD45からSCD情報を取得し、SCD情報からeNB21のリソース量を算出し、リソース量に基づき、CPU11内の複数のコアの内、任意のコアにeNB21を動的に割り当てる。その結果、eNB21に対してCPUリソースの効率的な割当を実現できる。しかも、CPUリソースの効率的な割当を実現することで、複数のeNB21全体で使用する消費電力を個別に制御する場合に比較して消費電力を削減できる。しかも、同一パフォーマンスを得るために必要なリソースを削減してCPUコストを削減できる。
リソースコントローラ22は、eNB21の算出リソース量が許容リソース量を超えた場合に優先順位で選択したeNB21のSCD45にSCD情報の見直しを要求する。その結果、見直し後のSCD情報に基づき、リソース量を見直し、見直し後のリソース量に基づき、複数のコアの内、任意のコアに当該eNB21を割当てる。
リソースコントローラ22は、eNB21毎に最大転送量を優先的に割り当てる優先順位に基づき、複数のコアの内、eNB21を任意のコアに割当てる。その結果、優先順位に基づき、複数のコアの内、任意のコアに当該eNB21を割当てる。
リソースコントローラ22は、eNB21毎の転送データを保持するバッファ内のデータ滞留量に応じて当該データ滞留量が最大のeNB21の優先度が高くなるように優先順位を設定する。その結果、データ滞留量が大きいeNB21から優先的にコアを割当てることができる。
尚、LTE方式では、1m秒のサブフレーム毎に負荷が大きく変動するため、通常のサーバ4のOS(Operating System)で使用するCPU負荷を用いた事後制御では、システムが正常に動作できない。これに対して、本実施例では、各eNB21内のSCD45からSCD情報を取得し、SCD情報からeNB21のリソース量を算出し、リソース量と、CPU11内の許容リソース量とを比較してeNB21を任意のコアに割当てることができる。つまり、サブフレーム毎に負荷が大きく変動した場合でも、各eNB21を効率良く任意のコアに割当てるため、システムが正常に動作できる。しかも、例えば、昼や夜等の時間帯毎にCPUリソースの割当を変更することも考えられるが、本実施例の場合には、サブフレーム単位で各eNB21に対するCPUリソースの割当を瞬時に変更できる。
尚、上記実施例1では、サブフレーム毎に各eNB#1〜#3のSCD情報に対応したリソース量に応じて、複数のコアの内、任意のコアにeNB#1〜#3を割当てたが、本実施例の形態に限定されるものではなく、適宜変更可能である。そこで、例えば、eNB#1〜#3に割り当てたコアを集約する際の実施の形態につき、実施例2として以下に説明する。
図10は、サブフレーム単位毎の各eNB21のビットレート量の一例を示す説明図である。図10に示すサブフレームmのタイミングでは、eNB#1〜#3のビットレート量が所定量Xよりも大きい状態にある。また、サブフレームm+1のタイミングでは、eNB#3のビットレート量が所定量Xよりも大きく、eNB#1及び#2のビットレート量が所定量X以下の状態にある。また、サブフレームm+2のタイミングでは、eNB#1〜#3のビットレート量が所定量X以下の状態にある。
図11Aは、サブフレームm受信時に関わるSCD45、リソースコントローラ22及びCPU11の動作状況の一例を示す説明図である。リソースコントローラ22は、サブフレームmのタイミング時に、例えば、コア#1にeNB#3のL1処理を割当てる。更に、リソースコントローラ22は、コア#2にeNB#1のL1処理を割当てる。更に、リソースコントローラ22は、コア#3にeNB#2のL1処理を割当てる。
図11Bは、サブフレームm+1受信時に関わるSCD45、リソースコントローラ22及びCPU11の動作状況の一例を示す説明図である。リソースコントローラ22は、サブフレームm+1のタイミング時に、コア#1にeNB#3のL1処理を割当てる。更に、リソースコントローラ22は、コア#3にeNB#1及び#2のL1処理を割当てる。
図11Cは、サブフレームm+2受信時に関わるSCD45、リソースコントローラ22及びCPU11の動作状況の一例を示す説明図である。リソースコントローラ22は、サブフレームm+2のタイミング時に、コア#3にeNB#1〜#3のL1処理を割当てる。
図12は、第2の設定処理に関わるリソースコントローラ22の処理動作の一例を示すフローチャートである。リソースコントローラ22は、各SCD45からeNB21毎のSCD情報を受信したか否かを判定する(ステップS61)。リソースコントローラ22は、SCD情報を受信した場合(ステップS61肯定)、eNB21毎のSCD情報を解析する(ステップS62)。リソースコントローラ22は、各SCD情報からeNB21毎のリソース量を算出し(ステップS63)、eNB21単位にリソース量とコアの許容リソース量とを比較する(ステップS64)。
リソースコントローラ22は、比較結果に基づき、eNB21のリソースを確保したか否かを判定する(ステップS65)。リソースコントローラ22は、eNB21のリソースを確保した場合(ステップS65肯定)、eNB21を指定する(ステップS66)。リソースコントローラ22は、指定したeNB21のビットレート量が所定量X以下であるか否かを判定する(ステップS67)。
リソースコントローラ22は、指定したeNB21のビットレート量が所定量X以下の場合(ステップS67肯定)、未指定のeNB21があるか否かを判定する(ステップS68)。リソースコントローラ22は、未指定のeNB21がなしの場合(ステップS68否定)、所定量X以下のeNB21が集約可能であるか否かを判定する(ステップS69)。
リソースコントローラ22は、所定量X以下のeNB21が集約可能である場合(ステップS69肯定)、所定量X以下のeNB21の処理を実行するコアを集約する(ステップS70)。そして、リソースコントローラ22は、所定量X以下のeNB21の処理を実行するコアを集約後、リソース情報を生成する(ステップS71)。リソースコントローラ22は、生成したリソース情報を更新し(ステップS72)、リソース情報を含むSCD結果を各eNB21のSCD45に通知し(ステップS73)、図12に示す処理動作を終了する。
リソースコントローラ22は、リソースを確保できなかった場合(ステップS65否定)、優先順位に基づき、再SCD対象のeNB21を選択する(ステップS74)。リソースコントローラ22は、選択したeNB21に利用可能な最大データレートを通知する(ステップS75)。リソースコントローラ22は、再SCD対象のeNB21のSCD45に対してSCD情報の見直しを要求し(ステップS76)、eNB21毎のSCD情報を受信したか否かを判定すべく、ステップS61に移行する。リソースコントローラ22は、指定したeNB21のビットレート量が所定量X以下でない場合(ステップS67否定)、未指定のeNB21があるか否かを判定すべく、ステップS68に移行する。リソースコントローラ22は、未指定のeNB21がある場合(ステップS68肯定)、未指定のeNB21を指定すべく、ステップS66に移行する。リソースコントローラ22は、所定量X以下のeNB21が集約可能でない場合(ステップS69否定)、リソース情報を生成すべく、ステップS71に移行する。リソースコントローラ22は、SCD情報を受信しなかった場合(ステップS61否定)、図12に示す処理動作を終了する。
リソースコントローラ22は、各eNB21内のSCD45からのSCD情報に基づき、eNB21毎のリソース量を算出する。リソースコントローラ22は、算出リソース量と許容リソース量とを比較し、eNB21のリソースを確保したか否かを判定する。リソースコントローラ22は、eNB21のリソースを確保し、リソース量が所定量X以下のeNB21がある場合、所定量X以下のeNB21をコアに集約して割当てる。
図13は、第2の設定処理実行時に関わるリソースコントローラ22、eNB21及びCPU11の処理動作の一例を示すシーケンス図である。eNB#1〜#3内のSCD45は、サブフレームの先頭を受信したか否かを判定する(ステップS81)。eNB#1〜#3内のSCD45は、サブフレームの先頭を受信した場合(ステップS81肯定)、処理結果を受信する(ステップS82)。eNB#1〜#3内のSCD45は、受信した処理結果に基づき、SCD情報を生成する(ステップS83)。eNB#1〜#3内のSCD45は、生成したSCD情報をリソースコントローラ22に通知する(ステップS84)。
リソースコントローラ22は、受信したeNB#1〜#3のSCD情報に基づき、第2の設定処理を実行する(ステップS85)。リソースコントローラ22は、eNB#1〜#3のリソースを確保したか否かを判定する(ステップS86)。
リソースコントローラ22は、eNB#1〜#3のリソースを確保した場合(ステップS86肯定)、リソース情報を含むSCD結果を各SCD45に通知する(ステップS87)。リソースコントローラ22は、eNB21毎のSCD結果を各SCD45に設定する(ステップS88)。各SCD45は、eNB21毎のSCD結果を共有メモリ13に設定する(ステップS89)。コア#1〜#3は、共有メモリ13内のSCD結果に基づき、eNB#1〜#3毎のスレッドを起動する(ステップS90)。コア#1は、共有メモリ13内のSCD結果に基づき、eNB#1のL1処理を実行する(ステップS91A)。更に、コア#1は、eNB#1のL1処理を実行した後、スレッドを停止する(ステップS92A)。また、コア#2は、共有メモリ13内のSCD結果に基づき、eNB#2のL1処理を実行する(ステップS91B)。更に、コア#2は、eNB#2のL1処理を実行した後、スレッドを停止する(ステップS92A)。また、コア#3は、共有メモリ13内のSCD結果に基づき、eNB#3のL1処理を実行する(ステップS91C)。更に、コア#3は、eNB#3のL1処理を実行した後、スレッドを停止する(ステップS92C)。
リソースコントローラ22は、リソースが確保できなかった場合(ステップS86否定)、SCD情報の見直しを各eNB#1〜#3のSCD45に要求する(ステップS93)。eNB#1〜#3内のSCD45は、見直し要求に応じてSCD情報を見直しし(ステップS94)、見直し後のSCD情報をリソースコントローラ22に通知する(ステップS95)。そして、リソースコントローラ22は、SCD情報に基づき、第2の設定処理を実行すべく、ステップS85に移行する。
また、各eNB21は、サブフレームの先頭を検出したか否かを判定する(ステップS96)。eNB#1〜#3内のSCD45は、サブフレームの先頭を受信した場合(ステップS96肯定)、処理結果を受信する(ステップS97)。eNB#1〜#3内のSCD45は、受信した処理結果に基づき、SCD情報を生成する(ステップS98)。eNB#1〜#3内のSCD45は、生成したSCD情報をリソースコントローラ22に通知する(ステップS99)。
リソースコントローラ22は、受信したeNB#1〜#3のSCD情報に基づき、第2の設定処理を実行する(ステップS100)。リソースコントローラ22は、eNB#1〜#3のリソースを確保したか否かを判定する(ステップS101)。
リソースコントローラ22は、eNB#1〜#3のリソースを確保した場合(ステップS101肯定)、リソース情報を含むSCD結果を各SCD45に通知する(ステップS102)。リソースコントローラ22は、eNB毎のSCD結果を各SCD45に設定する(ステップS103)。各SCDは、eNB毎のSCD結果を共有メモリ13に設定する(ステップS104)。コア#1は、共有メモリ13内のSCD結果に基づき、eNB#1及び#2のスレッドを起動する(ステップS105A)。コア#1は、共有メモリ13内のSCD結果に基づき、eNB#1及び#2のL1処理を実行する(ステップS106A)。更に、コア#1は、eNB#1のL1処理を実行した後、スレッドを停止する(ステップS107A)。また、コア#3は、共有メモリ13内のSCD結果に基づき、eNB#3のスレッドを起動する(ステップS105B)。コア#3は、共有メモリ13内のSCD結果に基づき、eNB#3のL1処理を実行する(ステップS106B)。更に、コア#3は、eNB#3のL1処理を実行した後、スレッドを停止する(ステップS107B)。
リソースコントローラ22は、リソースが確保できなかった場合(ステップS101否定)、SCD情報の見直しを各eNB#1〜#3のSCD45に要求する(ステップS108)。eNB#1〜#3内の各SCD45は、見直し要求に応じてSCD情報を見直す(ステップS109)。eNB#1〜#3内のSCD45は、見直し後のSCD情報をリソースコントローラ22に通知する(ステップS110)。リソースコントローラ22は、受信したeNB#1〜#3のSCD情報に基づき、第2の設定処理を実行すべく、ステップS100に移行する。
また、各eNB#1〜#3は、サブフレームの先頭を検出したか否かを判定する(ステップS111)。eNB#1〜#3内のSCD45は、サブフレームの先頭を受信した場合(ステップS111)、処理結果を受信する(ステップS112)。eNB#1〜#3内のSCD45は、受信した処理結果に基づき、SCD情報を生成する(ステップS113)。eNB#1〜#3内のSCD45は、生成したSCD情報をリソースコントローラ22に通知する(ステップS114)。
リソースコントローラ22は、受信したeNB#1〜#3のSCD情報に基づき、第2の設定処理を実行する(ステップS115)。リソースコントローラ22は、eNB#1〜#3のリソースを確保したか否かを判定する(ステップS116)。
リソースコントローラ22は、eNB#1〜#3のリソースを確保した場合(ステップS116肯定)、リソース情報を含むSCD結果を各SCD45に通知する(ステップS117)。リソースコントローラ22は、eNB毎のSCD結果を各SCD45に設定する(ステップS118)。各SCD45は、eNB毎のSCD結果を共有メモリ13に設定する(ステップS119)。コア#1は、共有メモリ13内のSCD結果に基づき、eNB#1〜#3のスレッドを起動する(ステップS120)。コア#1は、共有メモリ13内のSCD結果に基づき、eNB#1〜#3のL1処理を実行する(ステップS121)。更に、コア#1は、eNB#1のL1処理を実行した後、スレッドを停止する(ステップS122)。
リソースコントローラ22は、リソースが確保できなかった場合(ステップS116否定)、SCD情報の見直しを各eNB#1〜#3のSCD45に要求する(ステップS123)。eNB#1〜#3内の各SCD45は、見直し要求に応じてSCD情報を見直す(ステップS124)。eNB#1〜#3内のSCD45は、見直し後のSCD情報をリソースコントローラ22に通知する(ステップS125)。リソースコントローラ22は、受信したeNB#1〜#3のSCD情報に基づき、第2の設定処理を実行すべく、ステップS115に移行する。
リソースコントローラ22は、図10に示すサブフレームmを受信した場合、図11Aに示すように、eNB#3のL1処理をコア#1に、eNB#1のL1処理をコア#2に、eNB#2のL1処理をコア#3に割当てる。
リソースコントローラ22は、図10に示すサブフレームm+1を受信した場合、図11Bに示すように、eNB#3のL1処理をコア#1に、eNB#2及びeNB#1のL1処理をコア#3に割当てる。つまり、eNB#2及びeNB#1のビットレート量が所定量X以下のため、eNB#2及びeNB#1のL1処理をコア#3に集約する。
リソースコントローラ22は、図10に示すサブフレームm+2を受信した場合、図11Cに示すように、eNB#1、eNB#2及びeNB#3のL1処理をコア#3に割当てる。つまり、eNB#1〜eNB#3のビットレート量が所定量X以下のため、eNB#1〜#3のL1処理をコア#3に集約する。
実施例2では、eNB21のビットレート量が所定量X以下の場合、当該eNB21のL1処理を任意のコアに集約する。その結果、コアの無駄な稼働を抑制することで、消費電力の削減を図ると共に、eNB21に対してリソースの効率的な割当を実現できる。
尚、上記実施例では、CPU11内のコア単位でeNB21等の処理機能を分散して割当てるようにしたが、CPU11単位で割当てても良い。また、CPU11内のリソースやコア内のリソースを複数の処理機能に分散して割当てても良く、適宜設定変更可能である。
上記実施例では、LTE方式のeNB21をコアのリソース上に実行した場合を例示したが、UE2を無線接続するeNB21に限定されるものではなく、例えば、アクセスポイント等の無線中継装置の機能に適用しても良く、適宜変更可能である。また、LTE方式に限定されるものではなく、例えば、5G等のeNBにも適用可能である。
上記実施例では、優先順位として、例えば、データ滞留量が多い順で説明した。しかしながら、これに限定されるものではなく、ユーザ数、例えば、RRC接続ユーザ数の多いセルのeNB21の順や、データレート実績、例えば、過去の所定フレーム数に対するデータレートが多いセルのeNB21の順を優先順位としても良く、適宜変更可能である。
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
更に、各装置で行われる各種処理機能は、CPU(又はMPU(Micro Processing Unit)、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部又は任意の一部を実行するようにしても良い。また、各種処理機能は、CPU(又はMPU、MCU等のマイクロ・コンピュータ)で解析実行するプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしても良いことは言うまでもない。
ところで、本実施例で説明した各種の処理は、予め用意されたプログラムを情報処理装置内のCPU等のプロセッサで実行させることによって実現できる。そこで、以下では、上記実施例と同様の機能を有するプログラムを実行する情報処理装置の一例を説明する。図14は、リソース割当プログラムを実行する情報処理装置の一例を示すブロック図である。
図14に示すリソース割当プログラムを実行する情報処理装置100は、通信IF110と、ROM120と、RAM130と、CPU140とを有する。更に、通信IF110、ROM120、RAM130及びCPU140は、バス150を介して接続される。
そして、ROM120には、上記実施例と同様の機能を発揮するリソース割当プログラムが予め記憶されている。ROM120には、リソース割当プログラムとして取得プログラム120A、算出プログラム120B及び割当プログラム120Cが記憶されている。尚、ROM120ではなく、図示せぬドライブでコンピュータ読取可能な記録媒体に情報処理プログラムが記録されていても良い。また、記録媒体としては、例えば、CD−ROM、DVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ等でも良い。
そして、CPU140は、取得プログラム120AをROM120から読み出して取得プロセス140Aとして機能する。CPU140は、算出プログラム120BをROM120から読み出して算出プロセス140Bとして機能する。CPU140は、割当プログラム120CをROM120から読み出して割当プロセス140Cとして機能する。
CPU140は、移動局と無線接続する無線装置の機能で使用可能なリソースを割当てる。CPU140は、無線装置の無線通信に関わるスケジュール情報を取得する。CPU140は、無線装置のスケジュール情報に基づき、前記無線装置の機能で使用するリソース量を算出する。CPU140は、算出したリソース量に基づき、当該無線装置の機能で使用可能なリソースを割当てる。その結果、無線装置の機能に対してリソースの効率的な割当を実現できる。