(57)【要約】    【課題】      複数メッセージの通信において、複雑な割り込み処理を必要とせず、また、複数メッセージの管理において、メッセージの混同を避けること。    【解決手段】  ＣＰＵ１１０において、送信処理部１１１は、メッセージＡｎの分割メッセージを各送信処理回路で送信する。ローカルメモリ１１２は送信できない分割メッセージを格納する。共有メモリ１２０は、２つのＣＰＵ間の通信を中継する。ＣＰＵ１３０において、メッセージ組み立て部１３２は、分割メッセージを各送信処理回路毎に組み立てる。メッセージ制御部１３３は、メッセージＡｎとメッセージＢｎとを個々のメッセージ毎に動的に領域を確保して記憶する。また、メッセージ制御部１３３は、これらのメッセージの記憶位置を示すポインタをリングバッファ１３４に格納する。  【選択図】      図１
2005284840.tif 000002
【特許請求の範囲】
【請求項１】
第１のメッセージを分割して得られる複数の分割メッセージを、それぞれ対応する送信系統で送信する第１の送信手段と、前記複数の分割メッセージの一部または全部を格納するローカルメモリと、を有する第１のＣＰＵと、
第２のメッセージを送信する第２の送信手段と、前記分割メッセージを前記第１の送信手段の各送信系統毎にまとめるメッセージ組み立て手段と、前記メッセージ組み立て手段で組み立てられたメッセージ、および前記第２の送信手段が送信したメッセージを個々のメッセージ毎に動的に領域を確保して記憶し、管理するメッセージ管理手段と、リードポインタとライトポインタとを備え、各記憶領域の先頭アドレスを示すポインタを格納するリングバッファと、を有する第２のＣＰＵと、
を具備し、
前記第２のＣＰＵ内のメッセージ管理手段は、
前記第１および第２のＣＰＵ間の通信を実現する共有メモリを介して前記第１のＣＰＵから受信されるメッセージ、および前記第２のＣＰＵからのメッセージを個々のメッセージ毎に動的に領域を確保して記憶し、前記リングバッファを用いて前記メッセージを管理する、
ことを特徴とするメッセージ通信システム。
【請求項２】
前記第１のＣＰＵの送信手段から送信されるメッセージのサイズが前記共有メモリの空き領域よりも大きい場合、
前記第１のＣＰＵは、
前記分割メッセージを前記共有メモリに格納し、前記共有メモリに格納できない分割メッセージを前記ローカルメモリに格納し、前記共有メモリ内のメッセージを全て送信した後に前記ローカルメモリ内の分割メッセージを前記共有メモリに送信する、
ことを特徴とする請求項１記載のメッセージ通信システム。
【請求項３】
前記分割メッセージのうち、最初の分割メッセージは、前記第１の送信手段の識別情報および前記メッセージのサイズが記述されたヘッダ部と、データ部と、で構成され、
他の分割メッセージは、データ部のみで構成される、
ことを特徴とする請求項２記載のメッセージ通信システム。
【請求項４】
請求項１から請求項３のいずれかに記載のメッセージ通信システムを具備することを特徴とする通信端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のメッセージを通信するメッセージ通信回路、当該回路で使用されるメッセージ送信方法、当該回路で使用されるメッセージ管理方法、および当該回路を有するメッセージ通信システムに関する。
【背景技術】
【０００２】
従来、ＣＰＵ等が複数のメッセージを管理するシステムにおいて、この複数のメッセージを格納するためにＦＩＦＯ（Fast-In Fast-Out）構造を採るリングバッファがよく用いられている（例えば、特許文献１参照）。
【０００３】
図６は、複数のメッセージを格納したリングバッファ１１内のデータ構造を示す図である。
【０００４】
リングバッファ１１において、複数の受信メッセージ（メッセージ１〜メッセージｎ）のうち、最後のメッセージ（図の例では、メッセージｎ）の後の空き領域の先頭位置（アドレス）がライトポインタ（ＷＰ）１３として記憶される。そして、メッセージｎの次のメッセージ（メッセージｎ＋１）が受信された際には、ＷＰ１３が示す位置からこのメッセージｎ＋１が書き込まれ、ＷＰ１３はこのメッセージｎ＋１の後の空き領域の先頭位置に更新される。
【０００５】
一方、読み出しの済んでいない複数のメッセージのうち、最も古く格納されたメッセージ（図の例では、メッセージ１）の先頭位置がリードポインタ（ＲＰ）１２として記憶される。そして、外部からメッセージの読み出し命令を受けると、ＲＰ１２の位置から読み出しが開始され、まずメッセージ１が読み出される。メッセージ１の読み出しが終わると、ＲＰ１２はメッセージ２の先頭位置に更新される。そして、メッセージ２についても同様な読み出し処理がなされる。
【特許文献１】特開平０５−０８９０１０号公報（第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、例えば、２つのＣＰＵ間で共有メモリを介してメッセージ通信を行なう際に、送信メッセージのサイズが共有メモリの空き領域よりも大きい場合は、この送信メッセージを分割し、共有メモリに収まるサイズにしてからメッセージを送信する必要がある。
【０００７】
図７は、分割されたメッセージを２つのＣＰＵ（ＣＰＵ１、ＣＰＵ２）間で通信する際の通信シーケンスを示す図である。なお、ここでは、メッセージＡを２つに分割したメッセージをそれぞれメッセージＡ−１およびメッセージＡ−２とする。
【０００８】
ＣＰＵ１は、分割メッセージＡ−１を共有メモリに書き込み（ＳＴ１）、この書き込みが終了したことをＣＰＵ２に「分割メッセージＡ−１書き込み通知割り込み」によって通知する（ＳＴ２）。一方、ＣＰＵ２は、共有メモリから分割メッセージＡ−１を読み出し（ＳＴ３）、この読み出しが終了したことをＣＰＵ１に「分割メッセージＡ−１読み出し完了割り込み」によって通知する（ＳＴ４）。このようにして、分割メッセージＡ−１のＣＰＵ１からＣＰＵ２への送信が完了する。そして、分割メッセージＡ−１の送信が完了してから、次の分割メッセージＡ−２の送信が、同様の処理によって行われる（ＳＴ５〜８）。このように、分割メッセージを２つのＣＰＵ間で通信する際に、分割メッセージを１つずつ順に送信するため、複雑な割り込み処理が必要となる。
【０００９】
また、メッセージを受信順にリングバッファに格納するメッセージ管理方法においては、ＣＰＵ１からの分割メッセージの全ての送信が終わらないうちに、ＣＰＵ２からのメッセージがリングバッファに入力されてしまうと、ＣＰＵ１からの各分割メッセージとＣＰＵ２からのメッセージとがリングバッファ内に混在して格納されることとなり、分割メッセージが混同し、この元のメッセージの実体が不明となる可能性がある。
【００１０】
本発明は、かかる点に鑑みてなされたものであり、複数メッセージの通信において、複雑な割り込み処理を必要とせず、また、複数メッセージの管理において、メッセージの混同を避けることができるメッセージ通信回路、メッセージ送信方法、メッセージ管理方法、およびメッセージ通信システムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明のメッセージ通信システムは、第１のメッセージを分割して得られる複数の分割メッセージを、それぞれ対応する送信系統で送信する第１の送信手段と、前記複数の分割メッセージの一部または全部を格納するローカルメモリと、を有する第１のＣＰＵと、第２のメッセージを送信する第２の送信手段と、前記分割メッセージを前記第１の送信手段の各送信系統毎にまとめるメッセージ組み立て手段と、前記メッセージ組み立て手段で組み立てられたメッセージ、および前記第２の送信手段が送信したメッセージを個々のメッセージ毎に動的に領域を確保して記憶し、管理するメッセージ管理手段と、リードポインタとライトポインタとを備え、各記憶領域の先頭アドレスを示すポインタを格納するリングバッファと、を有する第２のＣＰＵと、を具備し、前記第２のＣＰＵ内のメッセージ管理手段は、前記第１および第２のＣＰＵ間の通信を実現する共有メモリを介して前記第１のＣＰＵから受信されるメッセージ、および前記第２のＣＰＵからのメッセージを個々のメッセージ毎に動的に領域を確保して記憶し、前記リングバッファを用いて前記メッセージを管理する構成を採る。
【００１２】
この構成によれば、異なるメッセージ通信回路（例えば、ＣＰＵ）からの複数のメッセージの混同を避けることができる。また、メッセージの格納領域を動的に確保することにより、無駄なメモリ消費を避けることができる。
【００１３】
本発明のメッセージ通信システムは、上記の構成において、前記第１のＣＰＵの送信手段から送信されるメッセージのサイズが前記共有メモリの空き領域よりも大きい場合、前記第１のＣＰＵは、前記分割メッセージを前記共有メモリに格納し、前記共有メモリに格納できない分割メッセージを前記ローカルメモリに格納し、前記共有メモリ内のメッセージを全て送信した後に前記ローカルメモリ内の分割メッセージを前記共有メモリに送信する構成を採る。
【００１４】
この構成によれば、分割メッセージの通信を、複雑な割り込み処理なしに実現することができる。
【００１５】
本発明のメッセージ通信システムは、上記の構成において、前記分割メッセージのうち、最初の分割メッセージは、前記第１の送信手段の識別情報および前記メッセージのサイズが記述されたヘッダ部と、データ部と、で構成され、他の分割メッセージは、データ部のみで構成される構成を採る。
【００１６】
この構成によれば、ヘッダ等の情報を削減することができる。
【００１７】
本発明の通信端末装置は、上記いずれかに記載のメッセージ通信システムを具備する構成を採る。
【００１８】
この構成によれば、上記と同様の作用効果を有する通信端末装置を提供することができる。
【発明の効果】
【００１９】
以上説明したように、本発明によれば、複数メッセージの通信において、複雑な割り込み処理を必要とせず、また、複数メッセージの管理において、メッセージの混同を避けることができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態について、添付図面を参照して詳細に説明する。
【００２１】
（実施の形態１）
図１は、本発明の実施の形態１に係るメッセージ通信回路、および当該回路を有するメッセージ通信システムの主要な構成を示すブロック図である。なお、ここでは、メッセージ通信回路としてＣＰＵを例にとり、また、２つのＣＰＵ間で複数のメッセージを通信するシステムを例にとって説明する。
【００２２】
本実施の形態に係る通信システムは、ＣＰＵ１１０、共有メモリ１２０、およびＣＰＵ１３０を有する。
【００２３】
ＣＰＵ１１０は、複数の処理系統を有する送信処理部１１１、およびローカルメモリ１１２を有する。ここで、送信処理部１１１内のＡ１送信処理回路は、メッセージＡ１の送信処理を担当する処理系統、Ａ２送信処理回路は、メッセージＡ２の送信処理を担当する処理系統、・・・、Ａｎ送信処理回路は、メッセージＡｎの送信処理を担当する処理系統である。ローカルメモリ１１２は、メッセージＡｎを分割することにより得られるｉ個の分割メッセージＡｎ−１、Ａｎ−２、・・・、Ａｎ−ｉの一部（または全部）を格納する。
【００２４】
共有メモリ１２０は、２つのＣＰＵ、すなわち、ＣＰＵ１１０およびＣＰＵ１３０間の通信を中継する。
【００２５】
ＣＰＵ１３０は、複数の処理系統を有する送信処理部１３１、メッセージ組み立て部１３２、メッセージ制御部１３３、およびリングバッファ１３４を有する。ここで、送信処理部１３１は、ＣＰＵ１３０自身が送信するメッセージの送信処理を担当する回路であり、Ｂ１送信処理回路は、メッセージＢ１の送信処理を担当する処理系統、Ｂ２送信処理回路は、メッセージＢ２の送信処理を担当する処理系統、・・・、Ｂｎ送信処理回路は、メッセージＢｎの送信処理を担当する処理系統である。メッセージ組み立て部１３２は、共有メモリ１２０を介して受信された分割メッセージを各送信処理回路毎にまとめる。例えば、分割メッセージがＡｎ−１、Ａｎ−２、・・・、Ａｎ−ｉであれば、これらを１つにまとめてメッセージＡｎを得る。メッセージ制御部１３３は、メッセージ組み立て部１３２で各送信処理回路毎に組み立てられたメッセージＡ１、Ａ２、・・・、Ａｎと、送信処理部１３１が送信したメッセージＢ１、Ｂ２、・・・、Ｂｎとを個々のメッセージ毎に動的に領域を確保して、内部のメモリに記憶する。また、メッセージ制御部１３３は、これらのメッセージの記憶位置（各記憶領域の先頭アドレス）を示すポインタをリングバッファ１３４に格納し、必要時にリングバッファ１３４から読み出す。
【００２６】
図２は、ＣＰＵ１１０内の送信処理部１１１の送信メッセージ分割方法の一例を示す図である。
【００２７】
例えば、図２(ａ)に示すようなメッセージを２個に分割する場合、データ部の途中で分割して、データ部をデータ部１およびデータ部２に分ける。そして、分割メッセージ１は、送信処理回路の識別情報（ＩＤ）、分割前の元のメッセージのサイズ等が記述されたヘッダ部と（図２(ｃ)参照）、データ部１とで構成され、もう一つの分割メッセージ２は、データ部２のみで構成される（図２(ｂ)参照）。
【００２８】
図３は、上記構成を有するＣＰＵ１１０のメッセージ送信方法の手順について示すフロー図である。
【００２９】
ＣＰＵ１１０は、メッセージＡｎのサイズと共有メモリ１２０の空き領域とを比較する（ＳＴ１０１０）。メッセージＡｎのサイズが共有メモリ１２０の空き領域より小さい場合は、メッセージＡｎを分割せず（ＳＴ１０２０）、共有メモリ１２０に送信する（ＳＴ１０３０）。
【００３０】
一方、ＣＰＵ１１０は、メッセージＡｎのサイズが共有メモリの空き領域以上の場合、メッセージＡｎを複数のメッセージＡｎ−１、Ａｎ−２、・・・に分割する（ＳＴ１１２０）。次に、共有メモリ１２０に分割メッセージＡｎ−ｉを送信可能な状態であるか否かを判断し（ＳＴ１１３０）、送信可能な状態であれば分割メッセージＡｎ−ｉを共有メモリ１２０に送信する（ＳＴ１１４０）。そして、分割メッセージの全てを送信完了したか否か確認し（ＳＴ１１５０）、送信が完了していない場合には、ｉを１インクリメント（ＳＴ１１６０）し、ＳＴ１１３０に戻る。
【００３１】
ＳＴ１１３０において、分割メッセージＡｎ−ｉが送信可能でなければ、この分割メッセージをローカルメモリ１１２に格納する（ＳＴ１２４０）。そして再び、ＳＴ１１３０の判断処理に戻り、分割メッセージＡｎ−ｉが共有メモリ１２０に送信可能となるまでＳＴ１１３０、ＳＴ１２４０の処理を繰り返す。
【００３２】
図４は、本実施の形態に係るメッセージ通信回路のメッセージ送信方法を具体的に説明した図である。
【００３３】
なお、ここでは、メッセージＡ１のサイズは、共有メモリ１２０の容量よりも小さく、メッセージＡ１とメッセージＡｎとを合わせたサイズは、共有メモリ１２０の容量よりも大きいとする。
【００３４】
まず、ＣＰＵ１１０において、送信処理部１１１内のＡ１送信処理回路は、メッセージＡ１を共有メモリ１２０に送る。このとき、共有メモリ１２０の内部は空であり、メッセージＡ１は、共有メモリ１２０内に収まるので、そのサイズのままメッセージＡ１−０（０は非分割を表す）として格納される。
【００３５】
次に、送信処理部１１１内のＡｎ送信処理回路は、続いてメッセージＡｎを送る。しかし、この場合、共有メモリ１２０には既にメッセージＡ１が格納されており、メッセージＡｎは共有メモリ１２０の空き領域に全て収まらないサイズなので、Ａｎ送信処理回路は、メッセージＡｎを分割し、共有メモリ１２０に収まるサイズのメッセージ（Ａｎ−１、Ａｎ−２）に分割した後、分割メッセージＡｎ−１のみを共有メモリ１２０に格納する。また、Ａｎ送信処理回路は、共有メモリ１２０に収まらない分割メッセージＡｎ−２をＣＰＵ１１０内のローカルメモリ１１２に格納する。ローカルメモリ１１２内に格納された分割メッセージＡｎ−２は、共有メモリ１２０内のメッセージの送信が全て完了した後に、共有メモリ１２０に格納される。
【００３６】
なお、本システムにおいて、Ａｎ送信処理回路が分割メッセージＡｎ−１、Ａｎ−２を送っている途中で、ＣＰＵ１１０の送信処理部１１１内の他の処理系統から他のメッセージＡｍ（ｍ≦ｎ）が共有メモリ１２０を介してＣＰＵ１３０に送信されることはないものとする。
【００３７】
共有メモリ１２０からのメッセージ通知によりＣＰＵ１３０は動作する。ＣＰＵ１３０内のメッセージ組み立て部１３２は、ＣＰＵ１１０からのメッセージＡｎのサイズ分の分割メッセージＡｎ−１、Ａｎ−２を受信したならば、これらのメッセージをまとめてメッセージＡｎを組み立てる。ここで、送信処理回路に関する情報（例えば、ＩＤ）、およびメッセージＡｎのサイズ等についての情報は、分割メッセージＡｎ−１に付加されているヘッダ部を読取ることにより取得する。
【００３８】
メッセージ制御部１３３は、メッセージＡ１、・・・、メッセージＡｎ、およびメッセージＢ１、・・・、メッセージＢｎを格納する領域を内部メモリに動的に確保する。そして、各メッセージの記憶領域の先頭アドレスを示すポインタをリングバッファ１３４に格納し、このポインタにより、各メッセージを管理する。
【００３９】
図５は、リングバッファ１３４内のデータ構造を示す図である。
【００４０】
リングバッファ１３４において、複数の受信メッセージ（Ａ１、Ａ２、・・・、Ａｎ、および、Ｂ１、Ｂ２、・・・、Ｂｎ）のうち、最後のメッセージ（図の例では、メッセージＢｎ）へのポインタが格納されている領域の後の空き領域の先頭位置がライトポインタ（ＷＰ）１３６として記憶される。一方、読み出しの済んでいない複数のメッセージのうち、最も古く格納されたメッセージ（図の例では、メッセージＡ１）へのポインタが格納されている領域の先頭位置がリードポインタ（ＲＰ）１３５として記憶される。
【００４１】
このように、本実施の形態によれば、送信側のメッセージ通信回路であるＣＰＵ１１０内にローカルメモリ１１２を設け、共有メモリ１２０に送信することができない分割メッセージを一時保存し、共有メモリ１２０に空き領域ができたら、速やかにローカルメモリ１１２に一時保存した分割メッセージを送信する。この構成を採ることにより、ＣＰＵ１１０は、共有メモリ１２０の容量に関わらず、分割メッセージをＣＰＵ１３０に、１つずつではなく準連続的に一度に送信することができる。よって、複雑な割り込み処理を必要としない。
【００４２】
また、以上の構成において、受信側のメッセージ通信回路であるＣＰＵ１３０は、ＣＰＵ１１０からのメッセージＡｎとＣＰＵ１３０の送信メッセージＢｎとが合流する前（メッセージ制御部１３３の前段）にメッセージ組み立て部１３２を設け、このメッセージ組み立て部１３２において、分割メッセージを分割前の１つにメッセージに組み立てる。よって、ＣＰＵ１１０からのメッセージＡｎとＣＰＵ１３０の送信メッセージＢｎとの混同を避けることができる。
【００４３】
また、以上の構成において、ＣＰＵ１３０は、メッセージ本体を記憶するメモリをメッセージ制御部１３３の内部に有し、これとは別個に、各メッセージの記憶位置（先頭のアドレス）を示すポインタを記憶するメモリ（リングバッファ１３４）を有する。よって、各メッセージを記憶する際に、メッセージ制御部１３３内部のメモリ内に記憶領域を動的に確保することができ、ＣＰＵ１３０全体のメモリ容量の無駄な消費を避けることができる。
【００４４】
さらに、本実施の形態によれば、ＣＰＵ１３０にＯＳ（Operating System）を搭載することなく複数のメッセージを管理することができるため、ＯＳを搭載しない小規模なシステムを構築することができる。また、ＯＳによるメモリ消費がなくなり、ＯＳのオーバーヘッドをなくすことができる。
【００４５】
本発明に係るメッセージ通信回路は、移動体通信システム等における通信端末装置および基地局装置に搭載することも可能であり、これにより上記と同様の作用効果を有する通信端末装置および基地局装置を提供することができる。
【００４６】
なお、ここでは、２つのＣＰＵ間でメッセージを通信する場合を例にとって説明したが、本発明に係るメッセージ通信回路等は、複数のＣＰＵ間で相互にメッセージを通信するシステムにも適用できる。
【００４７】
また、ここでは、通信対象がメッセージである場合を例にとって説明したが、メッセージ以外のデータに対しても本発明は適用することができる。
【００４８】
また、ここでは、本発明をハードウェアで構成する場合を例にとって説明したが、ソフトウェアで実現することも可能である。
【産業上の利用可能性】
【００４９】
本発明に係るメッセージ通信回路は、複数のＣＰＵ間で複数のメッセージを通信するシステム等の用途に適用できる。
【図面の簡単な説明】
【００５０】
【図１】実施の形態１に係るメッセージ通信回路、および当該メッセージ通信回路を有する通信システムの主要な構成を示すブロック図
【図２】実施の形態１に係る送信処理部の送信メッセージ分割方法の一例を示す図
【図３】実施の形態１に係るＣＰＵのメッセージ送信方法の手順について示すフロー図
【図４】実施の形態１に係るメッセージ通信回路のメッセージ送信方法を具体的に説明した図
【図５】実施の形態１に係るリングバッファ内のデータ構造を示す図
【図６】複数のメッセージを格納したリングバッファ内のデータ構造を示す図
【図７】分割されたメッセージを２つのＣＰＵ間で通信する際の通信シーケンスを示す図
【符号の説明】
【００５１】
１１０、１３０  ＣＰＵ
１１１、１３１  送信処理部
１１２  ローカルメモリ
１２０  共有メモリ
１３２  メッセージ組み立て部
１３３  メッセージ制御部
１３４  リングバッファ
【図１】
2005284840.tif 000003
【図２】
2005284840.tif 000004
【図３】
2005284840.tif 000005
【図４】
2005284840.tif 000006
【図５】
2005284840.tif 000007
【図６】
2005284840.tif 000008
【図７】
2005284840.tif 000009