(57)【特許請求の範囲】
【請求項１】
共通のメモリを共有するメモリ共有システム装置において，
順方向メモリ領域と逆方向メモリ領域とに分割された共有メモリと，
順方向に転送されるデータを下層側から入力し前記順方向メモリ領域に書き込み，逆方向に転送されるデータを前記逆方向メモリ領域から読み出し前記下層側に出力する第１のプロセッサと，
逆方向に転送されるデータを上層側から入力し前記逆方向メモリ領域に書き込み，順方向に転送されるデータを前記順方向メモリ領域から読み出し前記上層側に出力する第２のプロセッサとを有し，
前記第１または第２のプロセッサは，前記順方向メモリ領域と逆方向メモリ領域について，それぞれのメモリ解放基準値を設定し，前記転送データの読み出しが完了した使用済みメモリ領域が前記メモリ解放基準値に達した時に，前記使用済みメモリ領域を開放して書き込み可能にするメモリ解放処理を行い，
前記第１または第２のプロセッサは，前記順方向データ転送速度と逆方向データ転送速度とを監視し，前記順方向メモリ領域または逆方向メモリ領域の前記メモリ解放基準値を，対応する転送速度が第１の転送速度の場合に第１のメモリ解放基準値に設定し，前記第１の転送速度より大きい第２の転送速度の場合に前記第１のメモリ解放基準値より小さい第２のメモリ解放基準値に設定することを特徴とするメモリ共有システム装置。
【請求項２】
請求項１において，
前記メモリ解放基準値は，読み出しが完了した領域に対応する読み出し基準値と，書き込みが完了した領域に対応する書き込み基準値とを有し，
前記第１または第２のプロセッサは，前記メモリ解放処理を，前記使用済みメモリ領域が前記読み出し基準値に達し且つ書き込み済みメモリ領域が前記書き込み基準値に達した時に行うことを特徴とするメモリ共有システム装置。
【請求項３】
請求項１において，
前記第１及び第２のプロセッサは，所定容量のメモリブロック領域毎に転送データの書き込みと読み出しを行い，
前記第１及び第２のプロセッサは，対応するメモリ領域に転送データを書き込んだ時に，当該書き込みアドレスと共に書き込み割り込み通知を前記第２及び第１のプロセッサに供給し，
前記書き込み割り込み通知を受信した第２及び第１のプロセッサは，前記書き込みアドレスを読み出し待ち行列メモリに格納し，その後，当該読み出し待ち行列メモリ内に格納されている書き込みアドレスの転送データを読み出した時に，前記使用済みメモリ領域が前記メモリ解放基準値に達している場合に，前記第１及び第２のプロセッサに解放割り込み通知を行い，
前記解放割り込み通知を受信した第１及び第２のプロセッサが，前記使用済みメモリ領域について前記解放処理を行うことを特徴とするメモリ共有システム装置。
【請求項４】
請求項３において，
前記第１及び第２のプロセッサは，前記順方向及び逆方向メモリ領域における解放されたメモリ領域のアドレスを示すリリースポインタをそれぞれ管理し，前記解放処理で前記使用済みメモリ領域に対応して前記リリースポインタを更新することを特徴とするメモリ共有システム装置。
【請求項５】
請求項１において，
前記第１のプロセッサは，順方向に転送されるデータの伝送速度を監視し，前記順方向メモリ領域のメモリ解放基準値を監視した伝送速度に応じて可変制御し，
前記第２のプロセッサは，逆方向に転送されるデータの伝送速度を監視し，前記逆方向メモリ領域のメモリ解放基準値を監視した伝送速度に応じて可変制御することを特徴とするメモリ共有システム装置。
【請求項６】
共通のメモリを共有するメモリ共有システム装置において，
順方向メモリ領域と逆方向メモリ領域とに分割された共有メモリと，
順方向に転送されるデータを下層側から入力し前記順方向メモリ領域に書き込み，逆方向に転送されるデータを前記逆方向メモリ領域から読み出し前記下層側に出力する第１のプロセッサと，
逆方向に転送されるデータを上層側から入力し前記逆方向メモリ領域に書き込み，順方向に転送されるデータを前記順方向メモリ領域から読み出し前記上層側に出力する第２のプロセッサとを有し，
前記第１または第２のプロセッサは，前記順方向データ転送速度と逆方向データ転送速度とを監視し，前記順方向メモリ領域と逆方向メモリ領域の容量比を，前記両方の転送速度に応じて，より大きい転送速度に対応するメモリ領域の容量のほうが大きくなるように変更し，
前記第１または第２のプロセッサは，前記順方向メモリ領域と逆方向メモリ領域について，それぞれのメモリ解放基準値を設定し，前記転送データの読み出しが完了した使用済みメモリ領域が前記メモリ解放基準値に達した時に，前記使用済みメモリ領域を開放して書き込み可能にするメモリ解放処理を行い，
前記第１または第２のプロセッサは，前記順方向メモリ領域と逆方向メモリ領域の前記メモリ解放基準値を，対応する転送速度が第１の転送速度の場合に第１のメモリ解放基準値に設定し，前記第１の転送速度より大きい第２の転送速度の場合に前記第１のメモリ解放基準値より小さい第２のメモリ解放基準値に設定することを特徴とするメモリ共有システム装置。
【請求項７】
請求項６において，
前記第１または第２のプロセッサは，前記順方向メモリ領域と逆方向メモリ領域の前記メモリ解放基準値を，当該メモリ領域が第１の容量の時に第３のメモリ解放基準値にし，当該メモリ領域が前記第１の容量より大きい第２の容量の時に前記第３のメモリ解放基準値より大きい第４のメモリ解放基準値に設定することを特徴とするメモリ共有システム装置。
【請求項８】
請求項６において，
前記メモリ解放基準値は，読み出しが完了した領域に対応する読み出し基準値と，書き込みが完了した領域に対応する書き込み基準値とを有し，
前記第１または第２のプロセッサは，前記メモリ解放処理を，前記使用済みメモリ領域が前記読み出し基準値に達し且つ書き込み済みメモリ領域が前記書き込み基準値に達した時に行うことを特徴とするメモリ共有システム装置。
【請求項９】
請求項１乃至８のいずれかのメモリ共有システム装置と，
前記第１のプロセッサに順方向に転送されるデータを出力し，前記第１のプロセッサから逆方向に転送されるデータを入力する通信装置と，
前記第２のプロセッサから順方向に転送されるデータを入力し，前記第２のプロセッサに逆方向に転送されるデータを出力するアプリケーション装置とを有する通信端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，２つのプロセッサがメモリを共有してデータの転送を行うメモリ共有システム装置に関し，特に，共有メモリの利用効率を向上させたメモリ共有システム装置に関する。
【背景技術】
【０００２】
近年，大容量のデータ通信を行う移動体通信端末装置，例えば携帯電話や無線カード，の開発が活発に行われている。特に，広域無線分野のＷｉＭＡＸ（Worldwide Interoperability for Microwave Access）は，いわゆるラストワンマイルの接続手段として期待されている無線通信技術の一規格であり，高速移動体通信用の規格にも採用されている。
【０００３】
移動体端末は，基地局から大容量のデータ，例えば画像データ，音声データ，プログラムなどをダウンロードしたり，基地局に大容量のデータをアップロードしたりする。そこで，性能を向上させるために，移動体端末内には２つのＣＰＵ（プロセッサ）が搭載されそれぞれで機能を分担することで１つのＣＰＵにかかる負担を軽減している。そして，コスト削減のために２つのＣＰＵがＳＤＲＡＭやフラッシュメモリなどの大容量メモリを共有し，両ＣＰＵ間で共有メモリを介してデータ転送をする。
【０００４】
２つのＣＰＵが共有メモリを介してデータ転送を行う例として，移動体端末内に設けられるＭＡＣ（Media Access Control）ユニットがある。このＭＡＣユニットは，無線装置に接続され主にハードウエアの制御を行う下層側のＣＰＵ（以下，下層側ＭＡＣ：ＬＭＡＣ）と，通信プロトコルに対応して通信制御を行う上層側のＣＰＵ（以下，上層側ＭＡＣ：ＵＭＡＣ）と，それらのＣＰＵによりメモリコントローラを介して共有される共有メモリとを有する。
【０００５】
そして，データをダウンロードする場合は，無線装置経由で受信したデータを下層側ＣＰＵが共有メモリに書き込み，上層側ＣＰＵがそのデータを共有メモリから読み出し，更に上位のアプリケーション装置に転送する。これを順方向データ転送とする。一方，データをアップロードする場合は，上位のアプリケーション装置からのデータを上層側ＣＰＵが共有メモリに書き込み，下層側ＣＰＵがそのデータを共有メモリから読み出し，更に下位の無線装置に転送する。これを逆方向データ転送とする。
【０００６】
移動体端末に限らず，２つのプロセッサがメモリを共有し，プロセッサ間で順方向のデータ転送と逆方向のデータ転送とを，共有メモリを介して行うメモリ共有システム装置が，本件発明の対象である。
【０００７】
メモリ共有システム装置は，共有メモリ内を順方向データ転送用の順方向メモリ領域と逆方向データ転送用の逆方向メモリ領域とに分離し，データ転送時に順方向メモリ領域，逆方向メモリ領域をそれぞれリングバッファとして使用する。すなわち，順方向のデータ転送の場合は，下層側ＣＰＵが順方向メモリ領域にデータを書き込み，上層側ＣＰＵに書き込みを通知し，上層側ＣＰＵが順方向メモリ領域からデータを読み出す。そして，ＣＰＵが書き込みと読み出しが終了したメモリ領域を開放して，新たなバッファ領域として利用可能にする。逆方向のデータ転送の場合も，下層側と上層側ＣＰＵの動作が逆になることを除いて同じである。
【０００８】
大容量のデータを高速に転送するためには，リングバッファとなるメモリ領域はできるだけ大きい方が好ましい。しかしながら，共有メモリのメモリ容量は一定である。一方，順方向データ転送に必要な伝送速度と逆方向データ転送に必要な伝送速度とは，装置の使用状況に応じて動的に変化する。そこで，共有メモリの順方向メモリ領域と逆方向メモリ領域との境界を動的に変動させて，使用状況に適したメモリ容量を順方向及び逆方向メモリ領域に割り当てることが提案されている。例えば，特許文献１に記載されるとおりである。
【０００９】
特許文献１によれば，リングバッファのメモリ管理方法として，ライトポインタとリードポインタを常時監視し，リードポインタがライトポインタに追いつき使用済みのメモリ領域を解放するたびに，２つのメモリ領域の境界をメモリ領域を開放した側の容量をより小さくするように変動させる。つまり，リードポインタがライトポインタに追いついたことは，バッファメモリ内に有効なデータが存在せずデータ転送処理が一時的に完了したことを意味するので，データ転送処理が完了した側のメモリ容量を小さくし，データ転送処理が滞っている側のメモリ容量を大きくする。その結果，使用状況に適したメモリ容量を両メモリ領域に割り当てることができる。
【特許文献１】特開２００６−９１９６６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら，リードポインタとライトポインタの両方を使用してリングバッファのメモリ管理をするためには，データ転送時に一方のＣＰＵがデータを読み出すたびにリードポインタを更新して新たに使用可能なメモリ領域を開放する処理を行わなければならない。このように頻繁にメモリ領域を開放する処理は，ＣＰＵへの割り込み処理の頻度を高めることになり，ＣＰＵによるデータ転送処理のオーバーヘッドが大きくなり好ましくない。両ＣＰＵはデータ転送以外それぞれの固有の処理を行い，その固有の処理の合間にデータ転送処理を実行する。よって，両ＣＰＵのデータ転送処理のオーバーヘッドが増大することは，固有の処理およびデータ転送処理効率を低下させる。
【００１１】
そこで，本発明の目的は，データ転送効率を向上させることができるメモリ共有システム装置を提供することにある。
【課題を解決するための手段】
【００１２】
上記の目的を達成するために，本発明の第１の側面によれば，共通のメモリを共有するメモリ共有システム装置において，
順方向メモリ領域と逆方向メモリ領域とに分割された共有メモリと，
順方向に転送されるデータを下層側から入力し前記順方向メモリ領域に書き込み，逆方向に転送されるデータを前記逆方向メモリ領域から読み出し前記下層側に出力する第１のプロセッサと，
逆方向に転送されるデータを上層側から入力し前記逆方向メモリ領域に書き込み，順方向に転送されるデータを前記順方向メモリ領域から読み出し前記上層側に出力する第２のプロセッサとを有し，
前記第１または第２のプロセッサは，前記順方向メモリ領域と逆方向メモリ領域について，それぞれのメモリ解放基準値を設定し，前記転送データの読み出しが完了した使用済みメモリ領域が前記メモリ解放基準値に達した時に，前記使用済みメモリ領域を開放して書き込み可能にするメモリ解放処理を行い，
前記第１または第２のプロセッサは，前記順方向データ転送速度と逆方向データ転送速度とを監視し，前記順方向メモリ領域または逆方向メモリ領域の前記メモリ解放基準値を，対応する転送速度が第１の転送速度の場合に第１のメモリ解放基準値に設定し，前記第１の転送速度より大きい第２の転送速度の場合に前記第１のメモリ解放基準値より小さい第２のメモリ解放基準値に設定することを特徴とする。
【００１３】
上記の目的を達成するために，本発明の第２の側面によれば，共通のメモリを共有するメモリ共有システム装置において，
順方向メモリ領域と逆方向メモリ領域とに分割された共有メモリと，
順方向に転送されるデータを下層側から入力し前記順方向メモリ領域に書き込み，逆方向に転送されるデータを前記逆方向メモリ領域から読み出し前記下層側に出力する第１のプロセッサと，
逆方向に転送されるデータを上層側から入力し前記逆方向メモリ領域に書き込み，順方向に転送されるデータを前記順方向メモリ領域から読み出し前記上層側に出力する第２のプロセッサとを有し，
前記第１または第２のプロセッサは，前記順方向データ転送速度と逆方向データ転送速度とを監視し，前記順方向メモリ領域と逆方向メモリ領域の容量比を，前記両方の転送速度に応じて，より大きい転送速度に対応するメモリ領域の容量のほうが大きくなるように変更することを特徴とする。
【発明の効果】
【００１４】
本発明によれば，共有メモリを介してデータ転送する場合のデータ転送効率を向上させることができる。
【発明を実施するための最良の形態】
【００１５】
以下，図面にしたがって本発明の実施の形態について説明する。但し，本発明の技術的範囲はこれらの実施の形態に限定されず，特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１６】
図１は，本実施の形態におけるメモリ共有システム装置を有する通信端末装置の構成図である。携帯端末局ＭＳ（Mobile Station）と基地局ＢＳ(Base Station)とが無線通信媒体を介して接続可能になっている。携帯端末局ＭＳは，無線通信媒体側の下位に設けられ基地局ＢＳとの間でデータの送受信を行う通信ユニット１０と，上位に設けられユーザインターフェースに応答してデータダウンロードやデータアップロードなどを制御するアプリケーション装置１２とを有する。通信ユニット１０は，ダウンロードデータとアップロードデータのデータ転送を行うＭＡＣユニット１４と，符号化と変調，復調と復号化を行う無線装置ＲＦとを有する。
【００１７】
そして，ＭＡＣユニット１４は，メモリ共有システム装置の一例である。ＭＡＣユニット１４は，無線装置ＲＦから受信データを入力し無線装置ＲＦに送信データを出力すると共に周辺のハードウエアを制御する下位側のプロセッサＬＭＡＣ（下位側ＣＰＵ−Ａ）と，基地局との通信プロトコルを制御するとともに，アプリケーション装置１２に受信データを出力しアプリケーション装置１２から送信データを入力する上位側のプロセッサＵＭＡＣ（上位側ＣＰＵ−Ｂ）と，メモリコントローラＭＥＭＣＯＮと，共有メモリ２０とを有する。
【００１８】
ここで，アプリケーション装置１２による指示で基地局からデータをダウンロードする場合，受信データは通信装置ＲＦから上位のアプリケーション装置１２へデータ転送が行われ，ＭＡＣユニット１４内では下位側プロセッサＬＭＡＣから上位側プロセッサＵＭＡＣにデータ転送が行われる。これを順方向データ転送と定義する。逆に，アプリケーション装置１２からデータをアップロードする場合，送信データはアプリケーション装置１２から通信装置ＲＦへデータ転送が行われ，ＭＡＣユニット１４内では上位側プロセッサＵＭＡＣから下位側プロセッサＬＭＡＣにデータ転送が行われる。これを逆方向データ転送と定義する。
【００１９】
順方向のデータ転送の場合，基地局ＢＳから送信されたデータが無線装置ＲＦで受信され，復調，復号化され，ＭＡＣユニット１４に入力される。下位側プロセッサＬＭＡＣは入力した転送データをメモリコントローラＭＥＭＣＯＮを介して共有メモリ２０内の順方向メモリ領域に書き込む。下位側プロセッサＬＭＡＣはこの転送データの書き込みを上位側プロセッサＵＭＡＣの動作に独立して行う。一方，上位側プロセッサＵＭＡＣは，書き込まれたデータを順方向メモリ領域からメモリコントローラＭＥＭＣＯＮを介して読み出し，アプリケーション装置１２に供給する。データの書き込みと読み出しが行われたメモリ領域は，下位側または上位側プロセッサにより書き込み可能な状態に解放される。そして，新たな転送データが解放されたメモリ領域に書き込まれる。
【００２０】
逆方向のデータ転送の場合，アプリケーション装置１２がデータを上位側プロセッサＵＭＡＣに出力し，上位側プロセッサＵＭＡＣがメモリコントローラを介して共有メモリ２０内の逆方向メモリ領域に書き込む。そして，下位側プロセッサＬＭＡＣは，書き込まれたデータを逆方向メモリ領域からメモリコントローラＭＥＭＣＯＮを介して読み出し，無線装置ＲＦに供給する。無線装置ＲＦは，転送データを符号化し変調して基地局ＢＳに送信する。逆方向メモリ領域においても，データが読み出された使用済みメモリ領域が，書き込み可能な状態に解放される。
【００２１】
図２は，ＭＡＣユニットの構成図である。図１で説明したとおり，ＭＡＣユニット１４は，下位側プロセッサＬＭＡＣと上位側プロセッサＵＭＡＣと，それらが共有する共有メモリＣＯＭ−ＭＥＭと，メモリコントローラＭＥＭ−ＣＯＮとを有する。共有メモリＣＯＭ−ＭＥＭは，転送データを一時的に格納するバッファ領域ＣＯＭ−ＭＥＭ１と，それ以外の種々のデータを格納する共有メモリ領域ＣＯＭ−ＭＥＭ０とを有する。
【００２２】
バッファ領域ＣＯＭ−ＭＥＭ１は，境界ポインタＢＰを境にして順方向メモリ領域ＦＷ−ＭＥＭと逆方向メモリ領域ＢＷ−ＭＥＭとに分割されている。そして，矢印ＦＷ方向の順方向データ転送では，下位側プロセッサＬＭＡＣが順方向メモリ領域ＦＷ−ＭＥＭ内に転送データを書き込み，上位側プロセッサＵＭＡＣがその転送データを読み出す。逆に，矢印ＢＷ方向の逆方向データ転送では，上位側プロセッサＵＭＡＣが逆方向メモリ領域ＢＷ−ＭＥＭ内に転送データを書き込み，下位側プロセッサＬＭＡＣがその転送データを読み出す。
【００２３】
各メモリ領域ＦＷ−ＭＥＭ，ＢＷ−ＭＥＭは，リングバッファとして使用され，順方向メモリ領域ＦＷ−ＭＥＭは矢印２０のようにアドレスを順次インクリメントして使用され，逆方向メモリ領域ＢＷ−ＭＥＭは矢印２１のようにアドレスを順次デクリメントして使用される。
【００２４】
リングバッファとして使用するために，両メモリ領域ＦＷ−ＭＥＭ，ＢＷ−ＭＥＭについて，書き込み済みアドレスを示す書き込みポインタＷＰａ，ＷＰｂと，書き込みと読み出しが終了したアドレスに対応するリリースポインタＬＰａ，ＬＰｂとが，両プロセッサＬＭＡＣ，ＵＭＡＣにより管理される。具体的にはこれらのポインタが共有メモリ領域ＣＯＭ−ＭＥＭ０内に格納される。
【００２５】
順方向のデータ転送を例にして，両プロセッサ間のデータ転送の動作を説明する。前提として，両プロセッサＬＭＡＣ，ＵＭＡＣの共有メモリへのデータの書き込みと読み出しは，全てメモリコントローラＭＥＭ−ＣＯＮを介して行われる。両プロセッサによる共有メモリへのアクセス権は，メモリコントローラＭＥＭ−ＣＯＮによる調停により決定される。
【００２６】
まず，下位側プロセッサＬＭＡＣが，順方向メモリ領域ＦＷ−ＭＥＭの書き込みポインタＷＰａの次のアドレスに転送データを書き込み，割り込み信号ＩｎｔＡＢを書き込んだアドレスの書き込みポインタＷＰａ１と共に上位側プロセッサＵＭＡＣに送信する。上位側プロセッサＵＭＡＣは，読み出し待ち行列ＲＤ−ＱＵＥｂ内にその書き込みポインタＷＰａ１を格納する。データの書き込み及び読み出しは，予め決められた容量のデータをアドレスに対応するメモリブロック対して行われる。下位側プロセッサＬＭＡＣが書き込みを行うたびに，上位側プロセッサＵＭＡＣは書き込みポインタＷＰａ１〜３を読み出し待ち行列ＲＤ−ＱＵＥｂ内に格納する。
【００２７】
一方，上位側プロセッサＵＭＡＣは，他の処理の合間に，読み出し待ち行列ＲＤ−ＱＵＥｂ内の書き込みポインタＷＰａ１〜３のアドレスに順番にアクセスして，書き込まれている転送データを読み出し，上位のアプリケーション装置１２（図１）に供給する。そして，読み出しを実行した時に，上位側プロセッサＵＭＡＣは，リリースポインタＬＰａと読み出したアドレスに対応する書き込みポインタＷＰａ１〜３とから，読み出しが完了したメモリの領域（書き込みは当然完了している）を求め，それがメモリ解放基準値Ｖｔｈ−Ｒａに達しているか否かをチェックする。もし達していると，上位側プロセッサＵＭＡＣは下位側プロセッサＬＭＡＣに割り込みＩｎｔＢＡを出力し，それに応答して，下位側プロセッサＬＭＡＣはメモリ解放処理を割り込み処理として実行する。メモリ解放処理では，読み出しが完了したメモリ領域に対応してリリースポインタＬＰａが更新される。その結果，解放されたメモリ領域は，その後データの書き込みが許可される。
【００２８】
読み出しを実行した時に，上位側プロセッサＵＭＡＣは，読み出しが完了したメモリの領域がメモリ解放基準値Ｖｔｈ−Ｒａに達しているか否かをチェックすると共に，リリースポインタＬＰａと書き込みポインタＷＰａとから書き込みが完了しているメモリ領域（読み出しが完了したか否かにかかわらず）を求め，それがもう一つのメモリ解放基準値Ｖｔｈ−Ｗａに達しているか否かもチェックしてよい。そして，両方とも達した時に下位側プロセッサＬＭＡＣに割り込みを通知しメモリ領域の開放割り込み処理を実行させてもよい。
【００２９】
定常的なデータ転送では，読み出しよりも書き込みが先行するので，読み出しが完了したメモリ領域よりも書き込みが完了したメモリ領域のほうが大きい。よって，両方のメモリ解放基準値Ｖｔｈ−Ｒａ，Ｖｔｈ−Ｗａに達しているか否かをチェックするのが好ましい。つまり，読み出しが完了したメモリ領域がメモリ解放基準値Ｖｔｈ−Ｒａに達していても，書き込み済みのメモリ領域がメモリ解放基準値Ｖｔｈ−Ｗａに達していなければ，メモリ領域を開放する必要性は少ない。よって，できるだけメモリの解放割り込み処理の頻度を少なくするためには，両方のメモリ解放基準値に達したか否かをチェックすることが望ましい。
【００３０】
以上のように，両プロセッサＬＭＡＣ，ＵＭＡＣは，転送データの書き込みと読み出しをそれぞれ実行し，読み出しが完了したメモリ領域と書き込みが完了したメモリ領域がある程度の容量になったときに，メモリ領域の開放割り込み処理を実行する。メモリの解放割り込み処理の頻度をできるだけ低くすることにより，両プロセッサでの処理のオーバーヘッドを抑えることができる。
【００３１】
逆方向のデータ転送では，上記の下位側プロセッサＬＭＡＣに割り込みと上位側プロセッサＵＭＡＣとが逆の関係になるだけであり，同様の動作が行われる。
【００３２】
バッファ領域ＣＯＭ−ＭＥＭ１は，境界ポインタＢＰを境にして順方向メモリ領域ＦＷ−ＭＥＭと逆方向メモリ領域ＢＷ−ＭＥＭとに分割されている。本実施の形態では，両方のメモリ領域ＦＷ−ＭＥＭ，ＢＷ−ＭＥＭの境界ポイントＢＰは，両プロセッサＬＭＡＣ，ＵＭＡＣのいずれかにより，転送データの伝送速度に応じて矢印２２のように動的に変更される。すなわち，両プロセッサＬＭＡＣ，ＵＭＡＣが両方向の伝送速度を監視し，伝送速度が高い転送方向に対応するメモリ領域ＦＷ−ＭＥＭ，ＢＷ−ＭＥＭの容量が大きくなるように，境界ポインタＢＰを動的に変更する。つまり，順方向メモリ領域と逆方向メモリ領域の容量比を，両方の転送速度に応じて，より大きい転送速度に対応するメモリ領域の容量のほうが大きくなるように変更する。その結果，伝送速度が高い転送方向により大きなバッファ領域が割り当てられ，データ転送効率を高くすることが出来る。
【００３３】
さらに，本実施の形態では，メモリ領域の開放割り込み処理を行うか否かのメモリ解放基準値Ｖｔｈ−Ｒａ，Ｖｔｈ−Ｒｂ，Ｖｔｈ−Ｗａ，Ｖｔｈ−Ｗｂが，転送データの伝送速度に応じて動的に変更される。つまり，両プロセッサＬＭＡＣ，ＵＭＡＣが伝送速度を監視し，伝送速度が高くなるとメモリ解放基準値をより小さくして，使用済みメモリ領域の開放処理頻度を上げてバッファ領域の利用効率を高め，伝送速度が低くなるとメモリ解放基準値をより大きくして，メモリ解放割り込み処理頻度を低下させ割り込みによるオーバーヘッドを抑制する。
【００３４】
また，本実施の形態では，メモリ領域の開放割り込み処理を行うか否かのメモリ解放基準値Ｖｔｈ−Ｒａ，Ｖｔｈ−Ｒｂ，Ｖｔｈ−Ｗａ，Ｖｔｈ−Ｗｂが，順方向メモリ領域と逆方向メモリ領域の容量比に応じても動的に変更される。つまり，下位側または上位側プロセッサＬＭＡＣ，ＵＭＡＣは，順方向または逆方向メモリ領域の容量が大きくなると，そのメモリ領域のメモリ解放基準値をより大きくするよう制御する。その結果，境界ポインタＢＰの変更により順方向または逆方向メモリ領域の容量が大きくなると，それのメモリ解放基準値も大きくなるので，必要以上にメモリ解放割り込み処理頻度を高く保つことがなくなり，適切な処理頻度に抑制できオーバーヘッドを抑制することができる。
【００３５】
よって，いずれかの方向のデータ伝送速度が高くなると，それに対応する共有メモリ内のメモリ領域の容量を大きくするように容量比が変更される。それと共に，データ伝送速度の増大に伴ってメモリ解放基準値を小さくしてデータ転送速度を高くする。ただし，メモリ領域の容量が大きくなればそれに対応してメモリ解放基準値が大きくなるように変更され，それによりメモリ解放割り込み頻度を低下させる。
【００３６】
図３は，本実施の形態における共有メモリの制御を示す図である。図２に示したとおり，共有メモリ領域ＣＯＭ−ＭＥＭ０内にバッファ領域ＣＯＭ−ＭＥＭ１の書き込み制御に使うリリースポインタＬＰａ，ＬＰｂと，メモリ容量の制御に使う境界ポインタＢＰと，メモリ解放割り込み処理のタイミング制御のための基準値Ｖｔｈ−Ｗａ，Ｖｔｈ−Ｗｂ，Ｖｔｈ−Ｒａ，Ｖｔｈ−Ｒｂなどが格納されている。そして，所定の容量のメモリブロックＢＬＫの単位で転送データの書き込みと読み出しが行われる。
【００３７】
図３に示されるとおり，下位側プロセッサＬＭＡＣまたは上位側プロセッサＵＭＡＣが順方向及び逆方向のデータ伝送速度を監視し，データ伝送速度が高いほうの順方向または逆方向メモリ領域ＦＷ−ＭＥＭ，ＢＷ−ＭＥＭのメモリ容量を大きくするように，両メモリ領域の容量比を制御する。具体的には，両メモリ領域の境界のアドレスに対応する境界ポインタＢＰを矢印２２のように変更することで，両メモリ領域の容量比を制御する。図中の境界ポインタＢＰ０の場合は，両メモリ領域の容量比は５０／５０（％）であるが，境界ポインタＢＰ１の場合は逆方向メモリ領域ＢＷ−ＭＥＭの容量のほうが比率が大きくなり，境界ポインタＢＰ２の場合は巡方向メモリ領域ＦＷ−ＭＥＭの容量のほうが比率が大きくなる。
【００３８】
データ伝送速度の監視は，一方のプロセッサが転送データを共有メモリ内のバッファ領域ＣＯＭ−ＭＥＭ１に書き込み，他方のプロセッサが読み出しを完了したデータ量を，単位時間毎に監視することで行われる。
【００３９】
図４は，本実施の形態における共有メモリの制御を示す図である。図３で説明したとおり，より多くのデータを転送する側のメモリ領域の容量比を大きくするように制御されるが，図４に示すとおり，境界ポインタＢＰ２をより大きなアドレス値に変更して順方向メモリ領域ＦＷ−ＭＥＭの容量比を高くしたとしても，転送データを書き込む下位側プロセッサＬＭＡＣと，転送データを読み出す上位側プロセッサＵＭＡＣとは，かならずしもデータ転送の処理能力が一定の比率に保たれるわけではない。両プロセッサの処理能力の違いにも起因するし，たとえ同じ処理能力であっても他の処理量が大きい場合はデータ転送の処理能力は低くなる。
【００４０】
図４の例では，下位側プロセッサＬＭＡＣのデータ転送の処理能力が高く，順方向メモリ領域ＦＷ−ＭＥＭ内の全てのブロックに転送データが書き込まれている（図中Ｗは書き込み済みを示す）。ところが，上位側プロセッサＵＭＡＣのデータ転送の処理能力は低く，書き込み済みメモリブロックの一部しか読み出しが完了していない（図中Ｒは読み出し済み）。このような状況では，単に境界ポインタＢＰを可変制御して両メモリ領域の容量比を制御するだけでは，データ転送の効率を高めることにはならない。
【００４１】
図５，図６，図７は，本実施の形態における共有メモリの制御を示す図である。仮に，順方向メモリ領域ＦＷ−ＭＥＭはアドレスＡＤＤ０からアドレスＡＤＤ４まで順に転送データが書き込まれ（図中Ｒ／Ｗ，Ｗ），アドレスＡＤＤ０からＡＤＤ２までの最初の３ブロックのみ読み出しが完了している（図中Ｗ／Ｒ）ものとして，順方向データ転送について説明する。
【００４２】
プロセッサＬＭＡＣ，ＵＭＡＣは，メモリ解放割り込み処理のタイミングを制御するメモリ解放基準値として書き込み基準値Ｖｔｈ−Ｗａ，読み出し基準値Ｖｔｈ−Ｒａを設定しておき，読み出し済みメモリ領域（図中Ｒ／Ｗの領域）が読み出し基準値Ｖｔｈ−Ｒａに達したか否か，書き込み済みメモリ領域（図中Ｒ／ＷとＷの領域）が書き込み基準値Ｖｔｈ−Ｗａに達したか否かをチェックする。そして，読み出し済みメモリ領域Ｒ／Ｗが読み出し基準値Ｖｔｈ−Ｒａに達した場合に，若しくは，読み出し済みメモリ領域Ｒ／Ｗが読み出し基準値Ｖｔｈ−Ｒａに達し且つ書き込み済みメモリ領域が書き込み基準値Ｖｔｈ−Ｗａに達した場合に，使用済みメモリ領域を示すリリースポインタＬＰａを読み出し済みメモリ領域Ｒ／Ｗの次のメモリブロックのアドレスに変更するメモリ解放処理を行う。
【００４３】
図５の例では，読み出し基準値Ｖｔｈ−Ｗａ＝３ブロック，書き込み基準値Ｖｔｈ−Ｗａ＝５ブロックと設定されていて，リリースポインタＬＰａから３ブロックが読み出し済みＷ／Ｒ，５ブロックが書き込み済みＷとなっている。よって，いずれの基準値にも達している。その結果，図６に示すとおり，リリースポインタＬＰａがアドレスＡＤＤ２の次のメモリブロックのアドレスに変更され，最初の３ブロック２４が解放されて書き込み可能領域になっている。
【００４４】
このように，読み出し済みメモリ領域がある程度の容量になった時点で，若しくは読み出し済みメモリ領域がある程度の容量になり且つ書き込み済みメモリ領域もある程度の容量になった時点でメモリ解放割り込み処理を行うので，メモリ解放割り込み処理の頻度を抑えることができる。特に，読み出し済みメモリ領域と書き込み済みメモリ領域の両方が基準値に達したか否かをチェックすることで，両プロセッサのデータ転送能力に基づいて最適な頻度でメモリ解放割り込み処理を行わせることができる。
【００４５】
図７では，順方向データ転送のデータ伝送速度が図５，６より大きくなった場合を示し，データ伝送速度（書き込みと読み出しが完了した転送データの単位時間当たりのデータ量）が大きくなったことにともなって，メモリ解放基準値Ｖｔｈ−Ｒａ，Ｖｔｈ−Ｗａが小さく制御されている。つまり，読み出し基準値Ｖｔｈ−Ｗａ＝２ブロック，書き込み基準値Ｖｔｈ−Ｗａ＝４ブロックと設定が変更され，両基準値に達した結果，最初の２ブロックのメモリ領域２５が解放されている。
【００４６】
図８は，本実施の形態における共有メモリの制御を示す図である。図８では，図７の状態に比較すると，順方向メモリ領域ＦＷ−ＭＥＭの容量が小さくなるように境界ポインタＢＰ０に変更されている。順方向メモリ領域ＦＷ−ＭＥＭの容量比が低いので，メモリ解放基準値Ｖｔｈ−Ｗａ，Ｖｔｈ−Ｒａはより小さい値，Ｖｔｈ−Ｗａ＝３ブロック，Ｖｔｈ−Ｒａ＝１ブロックに設定されている。その結果，メモリ解放割り込み処理の頻度が高くなり，狭い容量のバッファ領域の使用効率を高めている。
【００４７】
図９，図１０は，本実施の形態における共有メモリの具体的な制御を示す図である。また，図１１は，本実施の形態における共有メモリの具体的な制御フローチャート図である。共有メモリの具体的な制御について，図９，図１０を参照しながら図１１のフローチャート図に沿って説明する。
【００４８】
図９の状態では，順方向メモリ領域ＦＷ−ＭＥＭと逆方向メモリ領域ＢＷ−ＭＥＭの容量比が１０：８になるように境界１００が設定されている。境界１００に対応して，境界ポインタＢＰは順方向メモリ領域ＦＷ−ＭＥＭの最上位アドレスに設定される。順方向メモリ領域ＦＷ−ＭＥＭ側では，メモリ解放基準値がＶｔｈ−Ｒａ＝４ブロック，Ｖｔｈ−Ｗａ＝５ブロックに設定され，逆方向メモリ領域ＢＷ−ＭＥＭ側では，メモリ解放基準値がＶｔｈ−Ｒｂ＝３ブロック，Ｖｔｈ−Ｗｂ＝４ブロックに設定されている。また，それぞれの書き込み済みメモリ領域に対応して書き込みポインタＷＰａ，ＷＰｂが，メモリ解放領域に対応してリリースポインタＬＰａ，ＬＰｂがそれぞれ管理されている。
【００４９】
図１１に示されるとおり，下位側プロセッサＬＭＡＣは，転送データがあると（Ｓ１０のＹＥＳ），共有メモリ領域ＣＯＭ−ＭＥＭ０内の書き込みポインタＷＰａを読み出し，それをインクリメントしたアドレスのメモリブロックに，所定容量の転送データを書き込む（Ｓ１１，Ｓ１２）。そして，下位側プロセッサＬＭＡＣは，書き込んだメモリブロックのアドレスを新たな書き込みポインタＷＰａとして共有メモリ領域ＣＯＭ−ＭＥＭ０に記憶し（Ｓ１３），書き込み割り込み通知ＩｎｔＡＢを新たな書き込みポインタＷＰａと共に，上位側プロセッサＵＭＡＣに出力する（Ｓ１４）。上記の書き込み処理Ｓ１１〜Ｓ１４が，転送データが存在する限り（Ｓ１０のＹＥＳ），下位側プロセッサＬＭＡＣにより繰り返される。
【００５０】
上位側プロセッサＵＭＡＣは，下位側プロセッサＬＭＡＣから書込割り込み通知ＩｎｔＡＢを受信するたびに，添付されている書込ポインタＷＰａ１〜３を読み出し待ち行列ＲＤ−ＱＵＥｂに格納する（Ｓ１５）。そして，上位側プロセッサＵＭＡＣは，他の処理の合間のアイドル状態で（Ｓ２０のＹＥＳ），読み出し待ち行列ＲＤ−ＱＵＥｂから書込ポインタＷＰａを読み出して，その転送データを順方向メモリ領域から読み出し，上位のアプリケーション装置に供給する（Ｓ２２）。
【００５１】
そして，読み出した後に，上位側プロセッサＵＭＡＣは，リリースポインタＲＰａと読み出したアドレスに対応する書込ポインタＷＰａとから求められる読み出し済みメモリ領域（３ブロック）が，読み出し基準値Ｖｔｈ−Ｒａ（＝４）に達したか否かをチェックする（Ｓ２３）。もし達していたら，上位側プロセッサＵＭＡＣは，更に，リリースポインタＲＰａと共有メモリ領域ＣＯＭ−ＭＥＭ０内に格納されている最新の書込ポインタＷＰａとから求められる書き込み済みメモリ領域（３ブロック）が，書込基準値Ｖｔｈ−Ｗａ（＝６）に達しているか否かもチェックする（Ｓ２４）。両方が満足されない場合は（Ｓ２３，Ｓ２４のいずれかがＮＯ）の場合は，上位側プロセッサＵＭＡＣは，メモリの解放割り込み通知をすることなく（Ｓ２５），読み出し待ち行列ＲＤ−ＱＵＥｂ内に書込ポインタＷＰａが存在する限り（Ｓ２７のＹＥＳ），上記の読み出し処理Ｓ２１〜Ｓ２４を繰り返す。
【００５２】
図９では，読み出し基準値Ｖｔｈ−Ｒａ＝４にも達していないし，書き込み基準値Ｖｔｈ−Ｗａ＝６にも達していないので，メモリの解放割り込み処理は行われない。同様に，逆方向メモリ領域ＢＷ−ＭＥＭにおいても，読み出し基準値Ｖｔｈ−Ｒｂ＝３にも達していないし，書き込み基準値Ｖｔｈ−Ｗｂ＝５にも達していないので，メモリの解放割り込み処理は行われない。
【００５３】
図１０では，順方向メモリ領域ＦＷ−ＭＥＭにおいて，アドレスＡＤＤ５までデータの書き込みが完了し，アドレスＡＤＤ３までのデータの読み出しが完了している。よって，上位側プロセッサＵＭＡＣは，アドレスＡＤＤ３の読み出しが行われた時に，読み出し済みメモリ領域（４ブロック）が読み出し基準値Ｖｔｈ−Ｒａ＝４に達していて（Ｓ２３のＹＥＳ），書き込み済みメモリ領域（６ブロック）が書き込み基準値Ｖｔｈ−Ｗａ＝６に達している（Ｓ２４のＹＥＳ）ことを検出する。それに伴い，上位側プロセッサＵＭＡＣは，メモリ解放割り込み通知ＩｎｔＢＡを下位側プロセッサＬＭＡＣに出力する（Ｓ２５）。これに応答して，下位側プロセッサＬＭＡＣは，リリースポインタＬＰａをアドレスＡＤＤ０からアドレスＡＤＤ４に変更し，共有メモリ領域ＣＯＭ−ＭＥＭ０内に格納するメモリ解放処理を実行する（Ｓ２６）。これにより，下位側プロセッサＬＭＡＣは，新たにアドレスＡＤＤ０〜ＡＤＤ３の４ブロックのメモリ領域２７が書き込み可能領域になったことを把握することができる。
【００５４】
逆方向のデータ転送の処理フローチャートは，図１１において，下位側プロセッサＬＭＡＣと上位側プロセッサＵＭＡＣとの関係を逆にしたものと同じである。図１０では，逆方向メモリ領域ＢＷ−ＭＥＭにおいても，読み出し済みメモリ領域（３ブロック）が読み出し基準値Ｖｔｈ−Ｒｂ＝３に達し，書き込み済みメモリ領域（５ブロック）も書き込み基準値Ｖｔｈ−Ｗｂ＝５に達しているので，リリースポインタＬＰｂが変更され３ブロックのメモリ領域２８が解放される。
【００５５】
以上の通り，本実施の形態では，両プロセッサがデータの読み出しを行うたびに読み出し済みメモリ領域，つまり使用済みメモリ領域の開放処理を割り込み動作で行うのではなく，読み出し済みメモリ領域が基準値Ｖｔｈ−Ｒａに達し，好ましくは書き込み済みメモリ領域も基準値Ｖｔｈ−Ｗａに達したときにメモリ解放割り込み処理を行う。したがって，メモリ解放割り込み処理の頻度を抑制することができる。
【００５６】
本実施の形態では，上記のメモリ解放割り込み処理タイミングの判定基準である基準値Ｖｔｈ−Ｒａ，Ｖｔｈ−Ｗａ，Ｖｔｈ−Ｒｂ，Ｖｔｈ−Ｗｂを，それぞれのデータ伝送速度に応じて変更設定する。具体的には，データ伝送速度が大きい方の順方向または逆方向メモリ領域ＦＷ−ＭＥＭ，ＢＷ−ＭＥＭの基準値Ｖｔｈ−Ｒａ，Ｖｔｈ−Ｗａ，またはＶｔｈ−Ｒｂ，Ｖｔｈ−Ｗｂを，より小さくするように動的に制御する。そのために，下位側プロセッサＬＭＡＣは，順方向のデータ伝送速度を監視し順方向メモリ領域ＦＷ−ＭＥＭに関する基準値Ｖｔｈ−Ｒａ，Ｖｔｈ−Ｗａを動的に制御する。また，上位側プロセッサＵＭＡＣは，逆方向のデータ伝送速度を監視し逆方向メモリ領域ＦＷ−ＭＥＭに関する基準値Ｖｔｈ−Ｒｂ，Ｖｔｈ−Ｗｂを動的に制御する。
【００５７】
図１２は，本実施の形態におけるデータ伝送速度とそれに対応するメモリ解放基準値のテーブル例を示す図である。図１２中には，横軸が時間軸のデータ伝送例３０，３１，３２が示されている。無線通信では，単位時間（ｎmsec）毎に１フレームのデータが伝送される。１フレームのデータ伝送には複数のパケットが含まれ，それに対応してバッファ領域ＣＯＭ−ＭＥＭ１内の複数メモリブロックにデータが書き込まれ，読み出される。
【００５８】
データ伝送例３０は，全てのフレーム期間でデータが伝送されており伝送速度は大きい。一方，データ伝送例３１は，約５０％のフレーム期間でデータが伝送されており伝送速度はやや小さい。そして，データ伝送例３２は，約２５％のフレーム期間でデータが伝送されるだけであり伝送速度は小さい。
【００５９】
そこで，両プロセッサＬＭＡＣ，ＵＭＡＣは，所定数Ｌのフレーム期間，例えばＬ＝４，毎の伝送されるデータ量を監視する。すなわち，伝送速度算出式３３に示されるとおり，フレーム期間Ｌ＝４の間に受信して転送したデータ数（byte）に８bitを乗算し，Ｌフレーム期間の時間（ｎmsec×Ｌ）で除して，伝送速度（bps）を求める。そして，両プロセッサＬＭＡＣ，ＵＭＡＣは，伝送速度算出式３４に示されるとおり，複数のＬフレーム期間の伝送速度の平均を求める。順方向のデータ伝送速度はデータを受信する下位側プロセッサＬＭＡＣが監視し，逆方向のデータ伝送速度はデータを受信する上位側プロセッサＵＭＡＣが監視するのが好ましい。
【００６０】
上記のデータ伝送速度は，両プロセッサＬＭＡＣ，ＵＭＡＣがそれぞれ受信した転送データ量から求めることができる。つまり，共有メモリ内のバッファ領域に書き込んだ転送データの量である。若しくは，両プロセッサが受信し，バッファ領域に書き込み，バッファ領域から読み出した転送データの量であってもよい。いずれも，バッファ領域のメモリ管理に使用される共有メモリ領域ＣＯＭ−ＭＥＭ０に格納されている書き込みポインタＷＰと，読み出し待ち行列内の書き込みポインタＷＰとの変化に基づいて，単位時間あたりのデータ量を監視することができる。
【００６１】
図１２には，順方向テーブル４０と逆方向テーブル４２とが示されている。下位側プロセッサＬＭＡＣは，順方向のデータ伝送速度を監視し，順方向テーブル４０内の前記検出した伝送速度に対応する基準値Ｖｔｈ−Ｗａ，Ｖｔｈ−Ｒａに設定する。上位側プロセッサＵＭＡＣは，逆方向のデータ伝送速度を監視し，逆方向テーブル４２内の前記検出した伝送速度に対応する基準値Ｖｔｈ−Ｗｂ，Ｖｔｈ−Ｒｂに設定する，各テーブル内の基準値の値（％）は，対応するメモリ領域ＦＷ−ＭＥＭ，ＢＷ−ＭＥＭの容量に対する比率である。
【００６２】
このように，本実施の形態では，伝送速度が大きいほど基準値を小さく設定して，高い伝送速度ではより頻繁にメモリを解放して，バッファ領域の使用効率を高め，伝送速度が低いほど基準値を大きく設定して，低い伝送速度ではメモリ解放処理頻度を抑制して，不必要なオーバーヘッドを抑える。
【００６３】
さらに，ＷｉＭＡＸのように無線通信方式では，一般に順方向データ転送に対応するダウンロードのデータ量のほうが逆方向データ転送に対応するアップロードのデータ量よりも大きい。したがって，図１２のテーブル４０，４２では，順方向テーブル４０の伝送速度群のほうが逆方向テーブル４２の伝送速度群よりも高くなっている。また，同じ伝送速度では，順方向テーブル４０のほうが基準値は高くなっている。
【００６４】
図１１のフローチャートにおいて，転送データを受信する側のプロセッサＬＭＡＣが，上記のデータ伝送速度の監視とメモリ解放基準値の変更処理を，書き込み処理Ｓ１１〜Ｓ１４と平行して行う。
【００６５】
図１３は，本実施の形態におけるメモリ解放基準値の制御を示す図である。図１３には，順方向のテーブル例のみが示されている。テーブル４０Ａは，バッファ領域ＣＯＭ−ＭＥＭ１内の順方向メモリ領域ＦＷ−ＭＥＭと逆方向メモリ領域ＢＷ−ＭＥＭとが５０：５０％の容量比の場合であり，図１２の順方向テーブル４０と同じ基準値になっている。
【００６６】
それに対して，テーブル４０Ｂは，順方向メモリ領域ＦＷ−ＭＥＭと逆方向メモリ領域ＢＷ−ＭＥＭとが７０：３０％の容量比の場合である。順方向メモリ領域の容量比率が高くなったことで，メモリ解放基準値Ｖｔｈ−Ｒａ，Ｖｔｈ−Ｗａは，テーブル４０Ａに比較するとより大きくなっている。バッファ領域が大きくなったことによりメモリ解放割り込み処理頻度を下げることが，オーバーヘッドを抑制して，全体のデータ転送効率を高めることができるからである。
【００６７】
逆に，テーブル４０Ｃは，順方向メモリ領域ＦＷ−ＭＥＭと逆方向メモリ領域ＢＷ−ＭＥＭとが３０：７０％の容量比の場合である。例えば，アップロードが頻繁に行われる場合などにこのような容量比になるように境界ポインタＢＰが設定されることがある。順方向メモリ領域の容量比率が低くなったことで，メモリ解放基準値Ｖｔｈ−Ｒａ，Ｖｔｈ−Ｗａは，テーブル４０Ａに比較するとより小さくなっている。バッファ領域が小さくなったことによりメモリ解放基準値を低くしてメモリ解放割り込み処理頻度を上げることが，書き込み可能なメモリ領域を増加して，全体のデータ転送効率を高めることができるからである。
【００６８】
以上の通り，両プロセッサＬＭＡＣ，ＵＭＡＣは，それぞれの方向の伝送速度に応じて，メモリ領域の容量比を制御し，その容量比に対応する基準値テーブル４０Ａ，４０Ｂ，４０Ｃを参照して，伝送速度に対応したメモリ解放基準値に動的に変更設定する。データ伝送速度が上昇（または低下）した時に，図１２のテーブルに基づいてメモリ解放基準値を低下（または上昇）させる第１の制御と，データ伝送速度が上昇（または低下）したときに，メモリ領域の容量比を変更して図１３のテーブルに基づいてメモリ解放基準値を上昇（または低下）させる第２の制御とがバッティングしないように，両制御の発生頻度を異ならせることが望ましい。例えば，第１の制御頻度を第２の制御頻度よりも大きく設定するなどが考えられる。
【００６９】
以上説明したとおり，本実施の形態によれば，２つのプロセッサがメモリを共有し，順方向と逆方向のデータ転送のバッファ領域として使用する場合，伝送速度に対応して最適のメモリ解放基準値を動的に変更することで，メモリ解放割り込み処理頻度を最適化することができる。両プロセッサは，バッファ領域へのデータ書き込みとデータ読みだしのたびに使用済みメモリ領域を開放する割り込み処理を行う必要がなく，メモリ解放割り込みによるオーバーヘッドを抑制し，データ転送効率を高めることができる。
【００７０】
以上の実施の形態をまとめると，次の付記のとおりである。
【００７１】
（付記１）共通のメモリを共有するメモリ共有システム装置において，
順方向メモリ領域と逆方向メモリ領域とに分割された共有メモリと，
順方向に転送されるデータを下層側から入力し前記順方向メモリ領域に書き込み，逆方向に転送されるデータを前記逆方向メモリ領域から読み出し前記下層側に出力する第１のプロセッサと，
逆方向に転送されるデータを上層側から入力し前記逆方向メモリ領域に書き込み，順方向に転送されるデータを前記順方向メモリ領域から読み出し前記上層側に出力する第２のプロセッサとを有し，
前記第１または第２のプロセッサは，前記順方向メモリ領域と逆方向メモリ領域について，それぞれのメモリ解放基準値を設定し，前記転送データの読み出しが完了した使用済みメモリ領域が前記メモリ解放基準値に達した時に，前記使用済みメモリ領域を開放して書き込み可能にするメモリ解放処理を行い，
前記第１または第２のプロセッサは，前記順方向データ転送速度と逆方向データ転送速度とを監視し，前記順方向メモリ領域または逆方向メモリ領域の前記メモリ解放基準値を，対応する転送速度が第１の転送速度の場合に第１のメモリ解放基準値に設定し，前記第１の転送速度より大きい第２の転送速度の場合に前記第１のメモリ解放基準値より小さい第２のメモリ解放基準値に設定することを特徴とするメモリ共有システム装置。
【００７２】
（付記２）付記１において，
前記メモリ解放基準値は，読み出しが完了した領域に対応する読み出し基準値と，書き込みが完了した領域に対応する書き込み基準値とを有し，
前記第１または第２のプロセッサは，前記メモリ解放処理を，前記使用済みメモリ領域が前記読み出し基準値に達し且つ書き込み済みメモリ領域が前記書き込み基準値に達した時に行うことを特徴とするメモリ共有システム装置。
【００７３】
（付記３）付記１において，
前記第１及び第２のプロセッサは，所定容量のメモリブロック領域毎に転送データの書き込みと読み出しを行い，
前記第１及び第２のプロセッサは，対応するメモリ領域に転送データを書き込んだ時に，当該書き込みアドレスと共に書き込み割り込み通知を前記第２及び第１のプロセッサに供給し，
前記書き込み割り込み通知を受信した第２及び第１のプロセッサは，前記書き込みアドレスを読み出し待ち行列メモリに格納し，その後，当該読み出し待ち行列メモリ内に格納されている書き込みアドレスの転送データを読み出した時に，前記使用済みメモリ領域が前記メモリ解放基準値に達している場合に，前記第１及び第２のプロセッサに解放割り込み通知を行い，
前記解放割り込み通知を受信した第１及び第２のプロセッサが，前記使用済みメモリ領域について前記解放処理を行うことを特徴とするメモリ共有システム装置。
【００７４】
（付記４）付記３において，
前記第１及び第２のプロセッサは，前記順方向及び逆方向メモリ領域における解放されたメモリ領域のアドレスを示すリリースポインタをそれぞれ管理し，前記解放処理で前記使用済みメモリ領域に対応して前記リリースポインタを更新することを特徴とするメモリ共有システム装置。
【００７５】
（付記５）付記４において，
前記第１及び第２のプロセッサは，前記順方向及び逆方向メモリ領域において，前記リリースポインタと最新の書き込みアドレスから書込済みメモリ領域の容量を求め，前記リリースポインタと読み出し時の書き込みアドレスとから読み出し済みである使用済みメモリ領域の容量を求めることを特徴とするメモリ共有システム装置。
【００７６】
（付記６）付記１において，
前記第１のプロセッサは，順方向に転送されるデータの伝送速度を監視し，前記順方向メモリ領域のメモリ解放基準値を監視した伝送速度に応じて可変制御し，
前記第２のプロセッサは，逆方向に転送されるデータの伝送速度を監視し，前記逆方向メモリ領域のメモリ解放基準値を監視した伝送速度に応じて可変制御することを特徴とするメモリ共有システム装置。
【００７７】
（付記７）共通のメモリを共有するメモリ共有システム装置において，
順方向メモリ領域と逆方向メモリ領域とに分割された共有メモリと，
順方向に転送されるデータを下層側から入力し前記順方向メモリ領域に書き込み，逆方向に転送されるデータを前記逆方向メモリ領域から読み出し前記下層側に出力する第１のプロセッサと，
逆方向に転送されるデータを上層側から入力し前記逆方向メモリ領域に書き込み，順方向に転送されるデータを前記順方向メモリ領域から読み出し前記上層側に出力する第２のプロセッサとを有し，
前記第１または第２のプロセッサは，前記順方向データ転送速度と逆方向データ転送速度とを監視し，前記順方向メモリ領域と逆方向メモリ領域の容量比を，前記両方の転送速度に応じて，より大きい転送速度に対応するメモリ領域の容量のほうが大きくなるように変更することを特徴とするメモリ共有システム装置。
【００７８】
（付記８）付記７において，
前記第１または第２のプロセッサは，前記順方向メモリ領域と逆方向メモリ領域について，それぞれのメモリ解放基準値を設定し，前記転送データの読み出しが完了した使用済みメモリ領域が前記メモリ解放基準値に達した時に，前記使用済みメモリ領域を開放して書き込み可能にするメモリ解放処理を行い，
前記第１または第２のプロセッサは，前記順方向メモリ領域と逆方向メモリ領域の前記メモリ解放基準値を，対応する転送速度が第１の転送速度の場合に第１のメモリ解放基準値に設定し，前記第１の転送速度より大きい第２の転送速度の場合に前記第１のメモリ解放基準値より小さい第２のメモリ解放基準値に設定することを特徴とするメモリ共有システム装置。
【００７９】
（付記９）付記８において，
前記第１または第２のプロセッサは，前記順方向メモリ領域と逆方向メモリ領域の前記メモリ解放基準値を，当該メモリ領域が第１の容量の時に第３のメモリ解放基準値にし，当該メモリ領域が前記第１の容量より大きい第２の容量の時に前記第３のメモリ解放基準値より大きい第４のメモリ解放基準値に設定する特徴とするメモリ共有システム装置。
【００８０】
（付記１０）付記８において，
前記メモリ解放基準値は，読み出しが完了した領域に対応する読み出し基準値と，書き込みが完了した領域に対応する書き込み基準値とを有し，
前記第１または第２のプロセッサは，前記メモリ解放処理を，前記使用済みメモリ領域が前記読み出し基準値に達し且つ書き込み済みメモリ領域が前記書き込み基準値に達した時に行うことを特徴とするメモリ共有システム装置。
【００８１】
（付記１１）付記１乃至１０のいずれかのメモリ共有システム装置と，
前記第１のプロセッサに順方向に転送されるデータを出力し，前記第１のプロセッサから逆方向に転送されるデータを入力する通信装置と，
前記第２のプロセッサから順方向に転送されるデータを入力し，前記第２のプロセッサに逆方向に転送されるデータを出力するアプリケーション装置とを有する通信端末装置。
【図面の簡単な説明】
【００８２】
【図１】本実施の形態におけるメモリ共有システム装置を有する通信端末装置の構成図である。
【図２】ＭＡＣユニットの構成図である。
【図３】本実施の形態における共有メモリの制御を示す図である。
【図４】本実施の形態における共有メモリの制御を示す図である。
【図５】本実施の形態における共有メモリの制御を示す図である。
【図６】本実施の形態における共有メモリの制御を示す図である。
【図７】本実施の形態における共有メモリの制御を示す図である。
【図８】本実施の形態における共有メモリの制御を示す図である。
【図９】本実施の形態における共有メモリの具体的な制御を示す図である。
【図１０】本実施の形態における共有メモリの具体的な制御を示す図である。
【図１１】本実施の形態における共有メモリの具体的な制御フローチャート図である。
【図１２】本実施の形態におけるデータ伝送速度とそれに対応するメモリ解放基準値のテーブル例を示す図である。
【図１３】本実施の形態におけるメモリ解放基準値の制御を示す図である。
【符号の説明】
【００８３】
ＦＷ：順方向データ転送
ＢＷ：逆方向データ転送
ＬＭＡＣ，ＵＭＡＣ：第１，第２のプロセッサ
ＭＥＭ−ＣＯＭ：メモリコントローラ
ＣＯＭ−ＭＥＭ：共有メモリ
ＣＯＭ−ＭＥＭ０：共有メモリ領域
ＣＯＭ−ＭＥＭ１：順方向，逆方向メモリ領域，バッファ領域
ＦＷ−ＭＥＭ：順方向メモリ領域
ＢＷ−ＭＥＭ：逆方向メモリ領域
ＷＰａ，ＷＰｂ：書き込みポインタ
ＬＰａ，ＬＰｂ：リリースポインタ
Ｖｔｈ−Ｒａ，Ｖｔｈ−Ｗａ，Ｖｔｈ−Ｒｂ，Ｖｔｈ−Ｗｂ：メモリ解放基準値
ＲＤ−ＱＵＥａ，ＲＤ−ＱＵＥｂ：読み出し待ち行列
【図１】
0004415071.tif 000002
【図２】
0004415071.tif 000003
【図３】
0004415071.tif 000004
【図４】
0004415071.tif 000005
【図５】
0004415071.tif 000006
【図６】
0004415071.tif 000007
【図７】
0004415071.tif 000008
【図８】
0004415071.tif 000009
【図９】
0004415071.tif 000010
【図１０】
0004415071.tif 000011
【図１１】
0004415071.tif 000012
【図１２】
0004415071.tif 000013
【図１３】
0004415071.tif 000014