(57)【要約】【課題】ＲＡＭ上に展開されるデータ容量を小さく抑えながら効率的にＷＣＤＭＡ規格に準拠したデータ転送を実施する技術が望まれていた。【解決手段】層毎に規定した通信規約に従って通信を行うに当たり、上位層からデータを取得し、当該データを取得してからの経過時間を所定の最大カウントまで計測しながら、当該最大カウントが計測される以前において所定のヘッダに対して基本単位長になるまで上記取得したデータを付加してパケットを生成し、上記最大カウントが計測された後においては上記取得したデータのうち下位層に未転送のデータについて下位層へ転送するためのパケットを生成する処理あるいは破棄処理を行いつつ基本単位長のパケットが生成されたら当該基本単位長のパケットを下位層に転送する。【選択図】  図８
2004289574.tif 000002
【特許請求の範囲】
【請求項１】
層毎に規定した通信規約に従って通信を行うに当たり特定層にてその上位層からデータを受け取って特定層の下位層にデータを受け渡すデータ転送装置であって、
上記上位層からデータを取得するデータ取得手段と、
同データを取得してからの経過時間を所定の最大カウントまで計測する計測手段と、
同計測手段によって上記最大カウントが計測される以前において所定のヘッダに対して基本単位長になるまで上記取得したデータを付加してパケットを生成するパケット生成手段と、
上記計測手段によって上記最大カウントが計測された後において上記取得したデータのうち下位層に未転送のデータについて下位層へ転送するためのパケットを生成する処理あるいは破棄処理を行う未転送データ処理手段と、
生成された基本単位長のパケットを上記下位層に転送するパケット転送手段とを備えることを特徴とするデータ転送装置。
【請求項２】
上記下位層へのデータ転送可能指示を当該下位層から取得するとともに当該データ転送可能指示によって上記特定層の状態を送信モードとし、一回のデータ転送可能指示に対して上記パケット転送手段が所定数の基本単位長のパケットを転送した後には上記送信モードを解除する送信モード設定手段を備え、当該送信モードにおいて上記データ取得手段がデータを取得し上記パケット生成手段がパケットを生成し、上記未転送データ処理手段が処理を行い、上記パケット転送手段がパケットを転送することを特徴とする上記請求項１に記載のデータ転送装置。
【請求項３】
上記未転送データ処理手段は、上記未転送のデータが存在するときに上記送信モードが解除され、上記最大カウントが計測される以前において再び送信モードになり、その後最大カウントが計測されたときに、当該未転送のデータが含まれるパケットが存在すればこのパケットに対してパディングを行って基本単位長のパケットとすることを特徴とする上記請求項請求項２に記載のデータ転送装置。
【請求項４】
上記未転送データ処理手段は、上記未転送のデータが存在するときに上記送信モードが解除され、上記最大カウントが計測された後において再び送信モードになったときに当該未転送のデータを破棄することを特徴とする上記請求項請求項２または請求項３のいずれかに記載のデータ転送装置。
【請求項５】
上記最大カウントに相当する時間間隔は、上記データ転送可能指示がなされる最小の時間間隔以下であることを特徴とする上記請求項２〜請求項４のいずれかに記載のデータ転送装置。
【請求項６】
上記最大カウントに相当する時間間隔は、物理層で所定送信単位のデータを転送するための時間間隔以下であることを特徴とする上記請求項１〜請求項５のいずれかに記載のデータ転送装置。
【請求項７】
層毎に規定した通信規約に従って通信を行うに当たり特定層にてその上位層からデータを受け取って特定層の下位層にデータを受け渡すデータ転送方法であって、
上記上位層からデータを取得し、当該データを取得してからの経過時間を所定の最大カウントまで計測しながら、当該最大カウントが計測される以前において所定のヘッダに対して基本単位長になるまで上記取得したデータを付加してパケットを生成し、上記最大カウントが計測された後においては上記取得したデータのうち下位層に未転送のデータについて下位層へ転送するためのパケットを生成する処理あるいは破棄処理を行いつつ基本単位長のパケットが生成されたら当該基本単位長のパケットを上記下位層に転送することを特徴とするデータ転送方法。
【請求項８】
層毎に規定した通信規約に従って通信を行うに当たり特定層にてその上位層からデータを受け取って特定層の下位層にデータを受け渡すデータ転送プログラムであって、
上記上位層からデータを取得するデータ取得機能と、
同データを取得してからの経過時間を所定の最大カウントまで計測する計測機能と、
同計測機能によって上記最大カウントが計測される以前において所定のヘッダに対して基本単位長になるまで上記取得したデータを付加してパケットを生成するパケット生成機能と、
上記計測機能によって上記最大カウントが計測された後において上記取得したデータのうち下位層に未転送のデータについて下位層へ転送するためのパケットを生成する処理あるいは破棄処理を行う未転送データ処理機能と、
生成された基本単位長のパケットを上記下位層に転送するパケット転送機能とをコンピュータに実現させることを特徴とするデータ転送プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、層毎に規定した通信規約に従って通信を行うに当たり、特定層でのデータ転送を制御するデータ転送装置、データ転送方法およびデータ転送プログラムに関する。
【０００２】
【従来の技術】
近年、携帯電話等の移動通信帯において高速通信の要請が高まりつつあるが、音声通話を前提に開発された従来の通信システムでは高速データ転送が困難であった。そこで、いわゆる第３世代と呼ばれる規格が策定され、ＷＣＤＭＡ規格（ＷＣＤＭＡは株式会社ＮＴＴドコモの登録商標）として知られている。このＷＣＤＭＡ規格では通信体間で守るべき約束事が通信規約として規定されており、ＯＳＩ参照モデルに準拠しながらＭＡＣ層（Ｍｅｄｉｕｍ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｌａｙｅｒ）、その上位のＲＬＣ層（Ｒａｄｉｏ  Ｌｉｎｋ  Ｃｏｎｔｒｏｌ  Ｌａｙｅｒ）、その上位のＲＲＣ層（Ｒａｄｉｏ  Ｒｅｓｏｕｒｃｅ  Ｃｏｎｔｒｏｌ  Ｌａｙｅｒ）等、各階層で扱うデータフォーマットが決められている。（例えば、非特許文献１参照。）。
【０００３】
【非特許文献１】
“３ｒｄ  Ｇｅｎｅｒａｔｉｏｎ  Ｐａｒｔｎｅｒｓｈｉｐ  Ｐｒｏｊｅｃｔ；      Ｔｅｃｈｎｉｃａｌ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｇｒｏｕｐ  Ｒａｄｉｏ  Ａｃｃｅｓｓ  Ｎｅｔｗｏｒｋ；      Ｒａｄｉｏ  Ｌｉｎｋ  Ｃｏｎｔｒｏｌ（ＲＬＣ）ｐｒｏｔｏｃｏｌ  ｓｐｅｃｉｆｉｃａｔｉｏｎ（ｒｅｌｅａｓｅ  １９９９）      ３ＧＰＰ  ＴＳ  ２５．３２２  Ｖ３．１１．０（２００２−０６）  Ｔｅｃｈｎｉｃａｌ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”２００２年６月発行，２２ページ
【０００４】
【発明が解決しようとする課題】
上述した規格においては、通信体間が満たすべき約束事および結果は示してあるが、具体的な実現方法やデータ処理についての詳細は規定していない。従って、実際に上記規格を準拠しながら通信端末において大容量データを高速に転送するためには通信端末の提供メーカーが具体的な処理を決定し、その処理を実現する通信端末を作成する必要がある。このデータ処理に時間を要すると高速データ転送時のボトルネックとなるし、多くのリソースを必要とするものであれば通信端末のコストが高くなる。
本発明は、上記課題にかんがみてなされたもので、ＲＡＭ上に展開されるデータ容量を小さく抑えながら効率的にＷＣＤＭＡ規格に準拠したデータ転送を実施することが可能なデータ転送装置、データ転送方法およびデータ転送プログラムの提供を目的とする。
【０００５】
【課題を解決するための手段および発明の効果】
上記目的を達成するため、本発明では、所定の時間間隔を計測するタイマーを設定し、タイマー切れに達するまでは上位層からのデータを待ちつつ、上位層からデータを取得したら基本単位長の総てがヘッダとデータとで構成されるパケットを生成する。上位層からのデータを待ちながらデータを取得することなくタイマー切れになった場合には未転送のデータを下位層に転送するかあるいは未転送のデータを破棄する。すなわち、特定層では上位層から取得したデータから所定の基本単位長のパケットを生成して下位層に転送しており、所定のヘッダとデータを含むパケットを生成するに当たり、パケット生成手段では所定のヘッダに対して基本単位長になるまで上記取得したデータを付加してパケットを生成する。また、本発明ではデータの取得後にカウントを開始して最大カウントまで計測することにより、当該最大カウント数に相当する時間間隔まで計測するタイマーを実現しており、このタイマーはデータを取得してから計測を行う。
【０００６】
従って、上位層から特定層に次々にデータが転送されている状況ではデータを取得した時点でタイマーのカウントが初期値にリセットされ、タイマー切れ（最大カウントに達した状態）になることが無く次々にデータを転送することができる。以上の構成により、転送すべきデータとしてパケットの基本単位長を超えるデータが存在する限りできるだけデータを書き込みながらパケットを生成し、生成された基本単位長のパケットがパケット転送手段によって順次下位層に転送されることになる。
【０００７】
基本単位長に満たないデータが下位層に転送されずに残っている場合はパケット生成手段が所定のヘッダに対して基本単位長になるまで上記取得したデータを付加する処理により、基本単位長の途中までがデータで構成された、基本単位長に満たないパケットを生成する。このパケットはＲＡＭ内にバッファリングされた状態となる。この状態でさらに上位層からデータを取得すると、パケット生成手段の処理により基本単位長に達しないままバッファリングされていたパケットに当該取得したデータが追加され、基本単位長のパケットが生成される。
【０００８】
上述のように、基本単位長に満たないパケットがＲＡＭ内にバッファリングされた状態で上位層から特定層にデータが送られないときにはタイマー切れになり、未転送データは下位層に転送可能なパケットとされ、あるいは破棄される。下位層に転送可能なパケットにするためには基本単位長になるまでパディングを行う構成等を採用可能である。すなわち、データを転送する際にはバッファ内に蓄積しておく時間が短いほど、また、転送するパケット内に無為なデータ（パディング等）が少ないほど効率的な転送が可能である。そこで、本発明ではタイマーによって所定の時間間隔を区切って処理を行っており、この時間間隔内ではパケット内になるべくデータを書き込んで下位層に受け渡すが、所定時間が経過しても上位層からデータを取得できないときには未転送データを転送あるいは破棄する。
【０００９】
すなわち、タイマーによる計測により、上位層からデータが送られない状態でいつまでも上位層からのデータを待つことなく、必要に応じてパディング等を行ってパケットを転送するかあるいはデータを破棄する。従って、非常に効率的に下位層に対してデータを受け渡すことができる。上記タイマーの時間間隔内では取得したデータをなるべくパケット内に書き込んで逐次下位層に受け渡すので、多くのＲＡＭ容量を必要としない。また、取得したデータによってパケットの基本単位長を満たすことができない場合には転送待ちとなるが、転送待ちのデータ容量が基本単位長に書き込み可能なデータ容量を超えることがないので、多くのＲＡＭ容量を必要としない。従って、ＲＡＭ上に展開されるデータ容量を小さく抑えながら効率的にＷＣＤＭＡ規格に準拠したデータ転送を実施することができる。
【００１０】
上記データ取得手段においては上位層からデータを取得することができれば良く、上位層における処理によって上位層から特定層への転送データにヘッダを付加していたとしてもこの転送データとヘッダとを含むデータが本発明にかかる特定層で取得するデータである。また、各層において通信を実現するために層毎にデータ取得可能になったことを上位層あるいは下位層に伝えながら通信を行う構成であっても良い。すなわち、データ取得手段においては本発明にかかる特定層でデータを取得可能になったときに上位層にその旨を通知してデータを受信する構成としても良い。
【００１１】
パケット生成手段では通信規約に従った基本単位長のパケットを生成することができればよい。基本単位長はデータの転送先となる下位層に受け渡すデータの最小単位であり、通信に際して予め下位層と特定層とで共通の基本単位長が決められていればよい。具体的な基本単位長としては種々のデータ容量を採用可能である。すなわち、データ転送装置で常に固定的であることは必須ではなく、データ転送装置の使用態様やデータ転送レート、ユーザ設定によって変更しても良いし、通信毎に下位層あるいは上位層と通信を行って決定してもよい。基本単位長が一旦決められるとこの単位毎に特定層から下位層にパケットが転送されるが、このパケットではヘッダおよびデータを合わせて基本単位長になる限り、個々の容量は可変である。すなわち、通信規約にて必要とされるヘッダはデータの内容によって可変的であるし、ヘッダの容量によってデータ容量も可変である。
【００１２】
未転送データ処理手段では未転送データについて処理することができれば良く、未転送データについて下位層に転送可能な基本単位長のパケットとして転送しても良いし、破棄しても良く、通信速度や処理速度の観点から都合の良い方を選択すればよい。例えば、上記パケット生成手段での処理が既に行われた状態で、基本単位長に達しないままのパケットがバッファリングされているときには、当該バッファリングされているパケットが未転送データになるし、パケット生成手段による処理がなされていなくても、データ取得手段によって取得され、下位層に転送されていないデータは未転送データである。パケット転送手段では生成された基本単位長のパケットを下位層に転送することができれば良く、上記パケット生成手段にて生成されたパケットや未転送データ処理手段にて生成されたパケットを下位層に転送する。
【００１３】
所定の通信規約に従って各層での処理を行って通信を行う際には、例えば単位時間当たりに電波に重畳可能なデータ容量など、データ転送の物理的な制約によって各層での単位処理当たりのデータ容量が決まる場合が多い。そこで、本発明における特定層において送信モード設定手段を形成し、上記データ取得手段では送信モードにおいてデータを取得する構成を採用するのが好ましい。
【００１４】
すなわち、送信モード設定手段では、上記下位層へのデータ転送可能指示を当該下位層から取得する。下位層からデータ転送可能指示を受け取ったときには下位層にデータ転送可能であるので、特定層の状態を送信モードとし、この送信モードにおいて上位層からのデータ取得と下位層への転送処理を行う。送信モードでデータ転送を行うため、このモードにおいて上記データ取得手段と上記パケット生成手段と上記未転送データ処理手段と上記パケット転送手段とが処理を行う。
【００１５】
これにより、下位層においてデータ取得不能であるときにデータ処理を行うことを防止することができ、必要最低限のバッファ用ＲＡＭを備えれば充分である。また、下位層では上述のように基本単位長を一回の最小データ転送量とするが、下位層がこれよりさらに下の層にデータを転送する際には当該基本単位長のパケットを所定数分まとめて転送する。そこで、一回のデータ転送可能指示に対して上記パケット転送手段が所定数の基本単位長のパケットを転送した後に送信モード設定手段は上記送信モードを解除する。
【００１６】
従って、下位層でパケットを受け取ることができる状況下において特定層が送信モードになっているよう構成することができる。また、本発明おいては、上述のように上位層から特定層に次々にデータが転送されている状況でデータを取得する度にタイマーのカウントをリセットし、次々にデータ転送できるようにしているが、送信モードの設定によれば下位層での処理容量を超えるデータを次々に取得することはない。従って、バッファ用ＲＡＭの容量を抑えることができる。
【００１７】
未転送データ処理手段の好適な構成として、送信モードの解除タイミングとカウントとの双方を加味する構成を採用可能である。すなわち、送信モードが解除されるのは上位層からデータを受け取ってから上記パケット転送手段が所定数の基本単位長のパケットを転送した後である。この後、再び送信モードに設定されるのは特定層で下位層からデータ転送可能指示を受け取ったときである。上記計測手段は送信モードの設定にかかわらず計測を続けており、このように再び送信モードに設定された状態で最大カウントが計測される以前であれば、上記パケット生成手段によって未転送のデータが処理される。
【００１８】
未転送のデータによって基本単位長のパケットが生成されれば下位層に転送されるが、未転送のデータによって基本単位長を満たすことができない場合にはパケットを転送しないまま上位層からのデータを待つことになる。しかし、ここではデータを待ちながら最大カウントが計測されたときに、当該未転送のデータが含まれるパケットに対してパディングを行って基本単位長のパケットとする。基本単位長のパケットが生成されれば、このパケットはパケット転送手段によって下位層に転送される。従って、いつまでも上位層からのデータを待つことなく未転送のデータを下位層に転送することができる。
【００１９】
尚、上述のように送信モード解除後に再び送信モードになったときに未転送のデータが含まれるパケットが存在しなければ、所定の通信規約に従って前回送信したパケットが最後である旨を示すヘッダを有するパケットを生成する。上位層から特定層にデータが受け渡されればこのパケットに対して当該データを書き込み、上位層から特定層にデータが受け渡されなければこのパケットに対してパディングを行って下位層に転送すればよい。また、上述のように再び送信モードになったときに、上位層からデータが受け渡されることによってタイマーがリセットされた場合は、パディング等を行わず、上記パケット生成手段による処理により、上位層から受け取ったデータとともに未転送データを転送することができる。
【００２０】
未転送データ処理手段の構成例として送信モードの解除タイミングとカウントとの双方を加味する構成を採用する例としては他にも種々の構成例が採用可能である。例えば、送信モードが解除され、再び送信モードが設定される前に計測手段で上記最大カウントが計測された場合に未転送データを破棄する構成を採用可能である。すなわち、再び送信モードに設定される以前に最大カウントが計測されていると、再び送信モードになった時点で上記パケット生成手段は未転送データについて処理を行っていない。
【００２１】
従って、未転送データを転送しようとすると基本単位長のパケットを生成する処理を行う必要があり、処理に時間を要する。そこで、未転送データを破棄してしまえば上位層から次のデータを受け渡されたとしてもすぐに処理を開始することができる。音声通話のように、送信側と受信側で厳密なデータの一致を要しない場合にはデータを破棄してしまっても問題が生じないことが多い。また、厳密なデータの一致を要する場合であっても、破棄された場合には受信側から再送要求を行い、この再送要求に応じる構成をとる通信規約が多いので、再送を行えばよい。尚、再び送信モードが設定される前に計測手段で上記最大カウントが計測された場合に、未転送データを破棄することなく当該未転送データから基本単位長のパケットを生成し、下位層に転送する構成を採用することも可能である。
【００２２】
上記計測手段においては、データ取得手段によってデータを取得してからの経過時間を計測し、最大カウントまで計測を続けることによって所定の時間間隔を計測するタイマーとして機能することができればよい。最大カウントに相当する時間間隔としては上位層からデータを取得するための待ち過ぎを防止可能な時間であればよいが、その好適な構成例として最大カウントに相当する時間間隔を上記データ転送可能指示がなされる最小の時間間隔以下にする例を採用可能である。
【００２３】
すなわち、データ転送可能指示は下位層でデータ受け取り可能になった時点で下位層から本発明にかかる特定層に対してなされるが、データ受け取り可能になるのは下位層からさらに下の層へデータを転送した後である。従って、下位層における単位時間当たりのデータ転送速度に応じてデータ転送可能指示がなされる最小の時間間隔は決まってくる。当該最小の時間間隔以下に上記計測手段の最大カウントを決めておけば、本発明によって上位層からデータが送られない状態でいつまでも上位層からのデータを待つことを防止するに際してデータ転送可能指示を最大一回だけ待ち、未転送データがあれば二回目のデータ転送可能指示がなされる前に処理してしまうことができる。従って、効率的にデータを処理することができる。
【００２４】
また、層構造における各層の通信規約を規定する構成においては、最下位層におけるデータ転送の物理的な制約（物理層での単位時間でのデータ転送量）によって各層での単位処理当たりのデータ容量が決まる場合が多い。すなわち、物理層での一回の送信データ量より多くのデータを物理層に受け渡しても物理層で送信待ちが発生するので、各層では、物理層での送信毎に当該物理層での一回の送信データ量に相当するデータを受け渡せるようにデータ処理を行えば充分である。従って、最大カウントを物理層で所定送信単位のデータを転送するための時間間隔以下にすることにより、物理層での転送周期においてデータ転送を行わない周期の発生頻度を低下させることができる。
【００２５】
ところで、上述したデータ転送装置は、データ転送のために時系列に所定の工程を実施する方法としても機能する。従って、請求項７に記載の発明のようにデータ転送方法としても発明を構成する、請求項２〜請求項６に対応した構成にすることも可能である。また、このようなデータ転送装置は単独で存在する場合もあるし、ある機器に組み込まれた状態で利用されることもあるなど、発明の思想としてはこれに限らず、各種の態様を含むものである。従って、ソフトウェアであったりハードウェアであったりするなど、適宜、変更可能である。発明の思想の具現化例としてデータ転送装置の制御ソフトウェアとなる場合には、かかる機能を実現するプログラムが当然に存在する。請求項８にかかる発明は、上述した機能を実現するデータ転送プログラムである。むろん、ここでも請求項２〜請求項６に対応した構成にすることが可能である。
【００２６】
【発明の実施の形態】
以下、下記の順序に従って本発明の実施形態を説明する。
（１）データ転送装置の構成：
（２）ＲＬＣ層での処理概要：
（３）データ転送処理：
（４）ＲＬＣ層での動作例：
（５）他の実施形態：
【００２７】
（１）データ転送装置の構成：
図１は、本発明を携帯電話に適用した実施形態における携帯電話１０の構成を示すブロック図である。携帯電話１０はＭＰＵ２０を備えており、同ＭＰＵ２０はＲＡＭ２１およびＲＯＭ２２とによってプログラム実行環境を構成しており、ＲＡＭ２１をワークエリアとして各種プログラムを実行可能である。各種プログラムとしてはＯＳ２３およびＲＲＣモジュール２４，ＲＬＣモジュール２５，ＭＡＣモジュール２６を備えている。ＲＲＣモジュール２４，ＲＬＣモジュール２５，ＭＡＣモジュール２６はＯＳ２３の実行下において通信制御処理を行っている。
【００２８】
本実施形態における携帯電話１０はＷＣＤＭＡ規格に準拠した通信を行うようになっており、ＲＲＣモジュール２４はＲＲＣ層でのデータ転送を制御し、ＲＬＣモジュール２５はＲＬＣ層でのデータ転送を制御し、ＭＡＣモジュール２６はＭＡＣ層でのデータ転送を制御する。ＭＰＵ２０は、他の機器とのインタフェースとしてＴｘコントローラ２７ａとＲｘコントローラ２７ｂとＩ／Ｆ２８とを備えている。Ｉ／Ｆ２８はＣＯＤＥＣ１２と接続されており、ＣＯＤＥＣ１２はスピーカ１２ａおよびマイク１２ｂと接続されている。
【００２９】
すなわち、マイク１２ｂによってアナログ電気信号に変換された音声はＣＯＤＥＣ１２によってデジタルデータ化され、Ｉ／Ｆ２８を介してＭＰＵ２０に供給される。このデジタルデータは送信されるデータとなる。また、ＭＰＵ２０は受信データから音声をコーディングしたデジタルデータを生成し、Ｉ／Ｆ２８を介してＣＯＤＥＣ１２に供給する。ＣＯＤＥＣ１２では当該デジタルデータをアナログ電気信号に変換しスピーカ１２ａから音声を発生させる。
【００３０】
Ｔｘコントローラ２７ａはＴｘ制御部１１ａにデータを転送するインタフェースであり、データ送信時にＭＡＣモジュール２６によって生成されたＭＡＣ層のデータをＴｘ制御部１１ａに転送するようになっている。Ｒｘコントローラ２７ｂはＲｘ制御部１１ｂからデータを受信するインタフェースであり、受け取ったデータをＭＡＣモジュール２６に受け渡す。
【００３１】
携帯電話１０は、基地局と無線通信を行うためＲＦモジュール１１を備えており、同ＲＦモジュール１１にはＴｘ制御部１１ａとＲｘ制御部１１ｂとＲＦコントローラ１１ｃとが備えられている。すなわち、ＲＦモジュール１１はデータを電波に重畳し、あるいは検波するモジュールであり、ＲＦコントローラ１１ｃはＭＰＵ２０の制御信号によってＲＦモジュール１１の電源管理や利得制御等を実施しながら、電波の送受信を制御する。ここで、ＲＦモジュール１１からは特定周期毎に電波を授受して通信を実施可能であり、特定周期内で特定容量のデータを授受する。
【００３２】
Ｔｘ制御部１１ａは、ＭＡＣモジュール２６によって生成されたデジタルデータを取得し、ＲＦモジュール１１で重畳可能なデータを作成するとともに当該作成したデータをＲＦモジュール１１に受け渡す。Ｒｘ制御部１１ｂは、ＲＦモジュール１１にて受信した電波に対して検波を行って得られたデータからＭＡＣモジュール２６に受け渡すデータを作成する。当該作成したデータはＭＡＣモジュール２６に受け渡される。
【００３３】
尚、図１のＯＳ２３においては、図示しない各種プログラムを実行可能である。例えば、図示しないユーザインタフェースによってデータの入出力を実施可能に構成するとともに各種アプリケーションプログラムを実行可能とし、メール送信，写真，動画データの送信を実施可能に構成しても良い。むろん、携帯電話１０は電話番号の入力やコネクションの確立を制御するプログラムを搭載しているし、ＲＲＣ層が生成したデータをさらに各種アプリケーションに受け渡すための処理や逆の処理を実施するプログラムも搭載する。
【００３４】
（２）ＲＬＣ層での処理概要：
本実施形態におけるデータ転送プログラムは上記ＲＬＣモジュール２５に相当する。すなわち、本実施形態では上述の特定層がＲＬＣ層であり、以下このＲＬＣ層での処理概要を説明する。ＲＬＣ層においてＲＬＣモジュール２５が本発明にかかる処理を実施するため、ＲＬＣモジュール２５はタイマー機能を備えており、図１に示すようにＲＡＭ２１においてＳＤＵバッファ２１ａとＰＤＵバッファ２１ｂという２種類のバッファを確保して処理を行う。
【００３５】
図２は、ＲＬＣ層でのデータ授受を説明する説明図であり、ＲＬＣ層，ＲＬＣ層より上位のＲＲＣ層，ＲＬＣ層より下位のＭＡＣ層，ＭＡＣ層より下位の物理層を図示している。データ送信に際してＭＡＣモジュール２６はＭＡＣ層にてデータを転送することが可能になったとき、データ転送可能指示を行う（本実施形態ではこのデータ転送可能指示をＴＴＩイベントと呼ぶ）。ＴＴＩイベントが発生したときにはＲＬＣモジュール２５がＲＲＣ層からＳＤＵ（Ｓｅｒｖｉｃｅ  Ｄａｔａ  Ｕｎｉｔ）と呼ばれるデータユニットを取得する。
【００３６】
すなわち、送信データはＳＤＵとしてＲＲＣ層からＲＬＣ層に受け渡されるようになっており、ＲＲＣモジュール２４は当該ＳＤＵを作成してＲＬＣ層に受け渡す。ＲＬＣモジュール２５は、ヘッダとデータとから構成されるとともに基本単位長のデータ容量となるパケット（ＰＤＵ：Ｐｒｏｔｏｃｏｌ  Ｄａｔａ  Ｕｎｉｔ）を生成する。このとき、ＲＬＣモジュール２５は上記ＲＡＭ２１内のＳＤＵバッファ２１ａに上記取得したＳＤＵをバッファリングし、バッファリングされたデータを逐次ＰＤＵバッファ２１ｂにコピーしながらＰＤＵを生成する。
【００３７】
ＲＬＣモジュール２５は、ＰＤＵバッファ２１ｂにバッファリング中のデータ容量が基本単位長に達したらそのデータをＰＤＵとしてＭＡＣ層に転送する。すなわち、ＲＬＣ層からＭＡＣ層へは当該ＰＤＵを単位としてデータが転送され、また、本実施形態では４つのＰＤＵをセットで処理するようになっている。すなわち、ＭＡＣモジュール２６は物理層にデータを転送する際に４つのＰＤＵを一回の転送単位として処理を行っており、ＲＬＣモジュール２５はこの転送単位に合わせて４つのＰＤＵをセットで処理する。
【００３８】
物理層は主に上記ＲＦモジュール１１，Ｔｘ制御部１１ａ，Ｒｘ制御部１１ｂ，ＲＦコントローラ１１ｃでの処理に相当しＭＡＣ層から取得したデータを電波に重畳して外部に送信する。ここで、物理層においては一回のデータ送信に際してＴ（ｍｓ）の時間を費やしており、ＲＬＣモジュール２５でセットとする上記４つのＰＤＵは物理層にて当該Ｔ（ｍｓ）で送信する容量のデータを作成するために必要なデータ容量である。尚、上記タイマー機能はＲＬＣ層にてＳＤＵを取得したときにリセットされるとともにリセット後から当該Ｔ（ｍｓ）の計測を行う機能であり、上記ＭＰＵ２０を駆動するクロックの数を計測する構成や上記ＯＳ２３の機能として提供されたタイマーを流用する構成等によって実現可能である。
【００３９】
また、ＲＬＣモジュール２５は、このタイマーによってＳＤＵ取得後の経過時間を計測しているときには、上記ＳＤＵの取得やＰＤＵの生成、転送処理を行う。基本単位長のＰＤＵに達しなければＲＲＣ層からのデータ取得を待って、データを受け取った場合にバッファリング中のＰＤＵにデータを追加する。タイマーによってＴ（ｍｓ）を計測し終えたときには、データ取得の待機を停止し、その時点で未転送のデータがあればＰＤＵを生成してＭＡＣ層に転送するか、あるいは当該未転送のデータを破棄する。
【００４０】
図３は、上記ＰＤＵのデータ構造を説明する説明図である。同図において上部に記載した０〜７は各ビットの桁番号を示している。すなわち、同図に示した矩形の横方向はＰＤＵの各データの容量をビット単位で示している。また、同図にて矩形が縦方向に８段並べてあるが、これは本実施形態におけるＰＤＵの容量（基本単位長）を示している。すなわち、本実施形態では８ビットのデータ８個（合計８バイト）によってＰＤＵが構成されている。むろん、これらの数値は一例であり、基本単位長がより大きなＰＤＵを利用する構成であっても良い。
【００４１】
当該ＰＤＵの構成は上述の非特許文献等に規定された規約に従っている。すなわち、ＰＤＵの先頭にはヘッダを付し、ヘッダの後にデータあるいはパディングを記述するフォーマットとなっている。ヘッダは各種の意味に相当するフラグであるが、ここでは本発明に関連するヘッダを中心に説明する。ヘッダＳＮは通し番号（Ｓｅｑｅｎｔｉａｌ  Ｎｕｍｂｅｒ）を示すフラグであり、ひとまとまりのデータを受信側で再構築したり再送信時の識別のために付与される。
【００４２】
ヘッダＨＥ（Ｈｅａｄｅｒ  Ｅｘｔｅｎｓｉｏｎ  Ｔｙｐｅ）は後ろに続くビットの内容を示しており、ヘッダＨＥが”００”のときにはデータが続くことを意味し、ヘッダＨＥが”０１”のときにはヘッダＬＩが続くことを示している。ヘッダＬＩ（Ｌｅｎｇｔｈ  Ｉｎｄｉｃａｔｏｒ）は各種の意味を有しており、ＰＤＵ内のデータがひとまとまりのＳＤＵの最後であるとともにそのデータの長さを示すことが可能である。本実施形態においては、データの長さをバイトで示すようになっている。また、直前のパケットでデータが終了していることおよびパディングが存在することを示すことが可能であり、本実施形態において前者は”０００００００”（以下、終了フラグと呼ぶ）であり、後者は”１１１１１１１”（以下、パディングフラグと呼ぶ）である。
【００４３】
ヘッダＬＩの長さは７ビットであり、繰り返し記載することができるし、パケットにまたがってデータが続くときにはヘッダＬＩを省略することができる。但し、ヘッダＬＩが続くのかヘッダＬＩの後にデータが続くのかを示す必要があり、これはヘッダＥ（Ｅｘｔｅｎｓｉｏｎ  ｂｉｔ）で指示される。すなわち、ヘッダＥが”０”のときはデータが続き、ヘッダＥが”１”のときはヘッダＬＩが続くことを示している。ヘッダＥが”０”のときにはその後にデータが記述され、ここに上記取得するＳＤＵを適宜分割して記述することになる。このデータは可変長であり、データによってＰＤＵの８バイトを満たすことができないときには適宜パディングを行うようになっている。
【００４４】
（３）データ転送処理：
以下、上記構成において上記ＲＬＣモジュール２５が通信規約に従いながら本発明のデータ転送を実現する際の処理を詳細に説明する。図４〜図６はＲＬＣモジュール２５での処理を示すフローチャートである。本実施形態においてＲＬＣモジュール２５にはデータの送受信およびパケット生成処理を行うＴｘモード（送信モード）という状態と、待機を行うＲｅａｄｙ状態との二つの状態が設定されており、ＴＴＩイベントの発生およびパケットの処理状況によってこれらの状態が移り変わる。
【００４５】
処理を行っていないとき、ＲＬＣモジュール２５はＲｅａｄｙ状態（ステップＳ１００）であり、この状態でＭＡＣ層からＴＴＩイベントの発生を受け付け待ちを行っている（ステップＳ１０５）。同ステップＳ１０５にてＴＴＩイベントの発生を受け付けたことを判別すると、ＲＬＣモジュール２５はステップＳ１１０にて状態をＴｘモードにする。Ｔｘモードでは、ステップＳ１１５にてさらにＴｘモードでの状態が遷移するか否かを把握する。
【００４６】
Ｔｘモードでは、ＲＲＣ層からデータを取得したとき、後述するループ処理で処理しきれなかった残り（未転送）のデータがあるときおよび上記タイマー機能によって設定時間まで計測した（タイマー切れ）ときの３つの場合にそれぞれに適合した処理を行うようになっており、この処理に移行することを状態遷移と呼んでいる。ＲＲＣ層からデータが転送されたときにはステップＳ１１５の判別により、ＲＬＣモジュール２５がステップＳ１２０にてデータ、すなわちＳＤＵを取得し上記ＳＤＵバッファ２１ａに対してバッファリングする。ステップＳ１２５では当該ＳＤＵの取得に応じてタイマーをリセットし、上記タイマー機能による計測を開始する。
【００４７】
ステップＳ１３０では、上記ＰＤＵバッファ２１ｂを参照し、ＰＤＵバッファ２１ｂ内の該当部分にヘッダＳＮが記述されていないときにヘッダＳＮを書き込む。すなわち、ＰＤＵに対して通し番号を付与してヘッダＳＮとして記述する。ステップＳ１３５では上記ＳＤＵバッファ２１ａ内のデータであってＰＤＵバッファ２１ｂに対してコピーしていないデータが当該ＰＤＵバッファ２１ｂで処理中のパケットの残り容量（残り容量＝基本単位長−書き込み済みのデータ容量）より少ないか否かを判別する。
【００４８】
ステップＳ１３５にてＳＤＵの未コピーデータがＰＤＵの残り容量より少ないと判別されたときには、当該未コピーデータがＳＤＵの最後になるのでステップＳ１４０にてＰＤＵバッファ２１ｂに対して当該未コピーデータのバイト数を示す上記ヘッダＬＩを書き込む。ステップＳ１３５にてＳＤＵの未コピーデータがＰＤＵの残り容量より少ないと判別されないときには、当該未コピーデータがＳＤＵの最後ではないのでステップＳ１４０をスキップしてヘッダＬＩは書き込まない。
【００４９】
ステップＳ１４５では、さらにＳＤＵバッファ２１ａ内のデータであってＰＤＵバッファ２１ｂに対してコピーしていないデータが当該ＰＤＵバッファ２１ｂで処理中のパケットの残り容量より少ないか否かを判別する。ステップＳ１４５にてＳＤＵの未コピーデータがＰＤＵの残り容量より少ないと判別されたときには、当該未コピーデータをＰＤＵに記述することによってＳＤＵをすべてＰＤＵに記述することになり、また未コピーデータによってＰＤＵの基本単位長に達しないことになり、ステップＳ１５０以降の処理を行う。
【００５０】
ステップＳ１４５にてＳＤＵの未コピーデータがＰＤＵの残り容量より少ないと判別されないときには、未コピーデータによって基本単位長に達するＰＤＵを生成可能であり、図５に示すステップＳ２００以降の処理を行って当該未コピーデータをＰＤＵに記述する。すなわち、ステップＳ１３５，Ｓ１４５にて二回の判別を行うことにより、前者ではヘッダＬＩを記述すべきか否かを判別し後者では基本単位長に達する場合と達しない場合とで処理を分岐するための判別を行っている。
【００５１】
ステップＳ２００ではＳＤＵバッファ２１ａ内の未コピーデータをＰＤＵバッファ２１ｂで処理中のパケットの残り部分に記述する。これにより、ヘッダとデータとによって基本単位長のＰＤＵが生成されるので、ステップＳ２１０では当該生成されたＰＤＵをＭＡＣ層に転送する。ステップＳ２２０では次のパケットを生成する処理を行うために、ＰＤＵバッファ２１ｂ内を初期化（データの削除）する。ステップＳ２３０では上記ＳＤＵバッファ２１ａ内の全データをＰＤＵに対してコピーする処理を行ったか否かを判別する。
【００５２】
同ステップＳ２３０で上記ＳＤＵバッファ２１ａ内の全データをＰＤＵに対してコピーする処理を行ったと判別されないときには、さらにＳＤＵバッファ２１ａに未コピーデータが残っているということであり、ステップＳ２３５の判別を行う。ステップＳ２３５では上記ステップＳ２１０で処理を行ったパケットが現段階のＴＴＩイベントで最後のパケット、すなわち、ＴＴＩイベント内でのＰＤＵの送信セットである４個目のパケットであったか否かを判別する。
【００５３】
ステップＳ２３５で現段階のＴＴＩイベントで最後のパケットであると判別されないときには、現段階のＴＴＩイベントでさらにＰＤＵをＭＡＣ層に転送可能であるため、ステップＳ１３０以降を繰り返すループ処理を行う。ステップＳ２３５で現段階のＴＴＩイベントで最後のパケットであると判別されたときには、現段階のＴＴＩイベントでさらにＰＤＵをＭＡＣ層に転送することはできないので、ステップＳ２４０にて次にＴｘモードになったときに残り有状態になるように設定し、ステップＳ１００にジャンプしてＲＬＣモジュール２５の状態をＲｅａｄｙとする。
【００５４】
上記ステップＳ２３０で上記ＳＤＵバッファ２１ａ内の全データをＰＤＵに対してコピーする処理を行ったと判別されるのは、上記ステップＳ２００での処理においてＳＤＵバッファ２１ａ内の未コピーデータとＰＤＵバッファ２１ｂで処理中のパケットの残り部分の容量が偶然一致していたときである。この場合は、ステップＳ２５０にてＳＤＵバッファ２１ａ内を初期化（データの削除）する。そして、上記ステップＳ２１０でＭＡＣ層に転送したＰＤＵにヘッダＬＩを記述したか否かをステップＳ２５５で判別し、記述したと判別されないときにはステップＳ２６０でＰＤＵバッファ２１ｂ内の適切な位置にヘッダＬＩの終了フラグを付加する。すなわち、次のＰＤＵのヘッダに終了フラグを付加することになり、受信側でこのＰＤＵを受け取ることによってＳＤＵの終了を判定できるようにする。
【００５５】
この後は、図４のステップＳ１６０の判別を行う。すなわち、上記ステップＳ２１０で処理を行ったパケットが現段階のＴＴＩイベントで最後のパケットであったか否かを判別する。同ステップＳ１６０にて現段階のＴＴＩイベントで最後のパケットであったと判別されたときにはステップＳ１００にジャンプしてＲＬＣモジュール２５の状態をＲｅａｄｙとし、ステップＳ１６０にて現段階のＴＴＩイベントで最後のパケットであったと判別されないときにはステップＳ１１０にジャンプしてＲＬＣモジュール２５の状態をＴｘモードにする。
【００５６】
図４のステップＳ１４５でＳＤＵの未コピーデータがＰＤＵの残り容量より少ないと判別された場合、ステップＳ１５０では上記ＳＤＵバッファ２１ａ内の未コピーデータの総てをＰＤＵに対してコピーする処理を行い、ステップＳ１５５にてＳＤＵバッファ２１ａを初期化する。そして、ステップＳ１６０の判別を行う。一方、ＴｘモードにおいてＳＤＵバッファ２１ａ内にデータが残っているときにはステップＳ１１５の判別により、ＲＬＣモジュール２５がステップＳ１３０以降の処理を繰り返す。さらに、ＴｘモードにおいてステップＳ１１５での判別の段階でタイマーが切れているときには図６に示す処理を実施する。
【００５７】
タイマーが切れているときには図６のステップＳ３００においてＳＤＵバッファ２１ａ内のデータの総てをＰＤＵに対してコピーする処理を実施済みであるか否かを判別する。同ステップＳ３００にてＳＤＵバッファ２１ａ内のデータの総てをＰＤＵに対してコピーする処理を実施済みであると判別されない場合、本実施形態ではステップＳ３１０にてＳＤＵバッファ２１ａを初期化する。すなわち、残りの未転送データについては破棄する。データを破棄しても音声通話では問題がない場合が多いので処理を高速に進めることができる。データ通信の場合には受信側からの再送信指示によってデータを再送することができる。ステップＳ３１０の処理後にはステップＳ１１０にジャンプしてＴｘモードとなる。
【００５８】
ステップＳ３００にてＳＤＵバッファ２１ａ内のデータの総てをＰＤＵに対してコピーする処理を実施済みであると判別されたとき、ステップＳ３２０ではＰＤＵバッファ２１ｂを参照し記述済みのデータ、すなわち転送すべきＰＤＵが存在するか否かを判別する。ステップＳ３２０で転送すべきＰＤＵが存在すると判別されないときには、ステップＳ１１０にジャンプしてＴｘモードとする。
【００５９】
ステップＳ３２０で転送すべきＰＤＵが存在すると判別されたときには、ステップＳ３２５にてＰＤＵバッファ２１ｂを参照し、処理中のパケットにヘッダＳＮがなければ適切な通し番号を示すヘッダＳＮを書き込む。ステップＳ３３０ではＰＤＵバッファ２１ｂ内にパディングフラグを示すヘッダＬＩを記述し、ステップＳ３３５においてＰＤＵバッファ２１ｂの空き容量に対してパディングを行う。尚、本実施形態においてパディングデータは”０”である。
【００６０】
パディングによって基本単位長のＰＤＵが生成されるのでステップＳ３４０ではこのＰＤＵをＭＡＣ層に転送し、ステップＳ３４５にてＰＤＵバッファ２１ｂを初期化する。そして、ステップＳ３５０において上記ステップＳ３４０で処理を行ったパケットが現段階のＴＴＩイベントで最後のパケットであったか否かを判別し、最後のパケットであったと判別されるまでステップＳ３２５以降の処理を繰り返す。
【００６１】
以上の処理により、通常はＴｘモードにおいてＲＲＣ層からＳＤＵを取得するのを待ちながらも、タイマー切れに達したときにはその時点での未転送データを処理することができる。すなわち、未転送データが存在し、かつ未転送データがＰＤＵバッファ２１ｂにコピー済みであった場合には、未転送データおよびパディングによってＴＴＩイベント内でのＰＤＵの送信セットである４回のパケットを送信してしまう。これにより、早い段階で次のＴＴＩイベントを発生させることができるし、未転送データに対する処理を行わないまま必要以上に長い時間待ち続けることを防止することができる。
【００６２】
（４）ＲＬＣ層での動作例：
次に、複数の例についてＲＬＣモジュール２５が実施する動作例を説明する。図７〜図１０はＲＲＣ層とＲＬＣ層とＭＡＣ層における動作を時系列的に示した図であり、上下に示した直線において上方から下方に向けて時間が進むことを示している。尚、図の簡略のため上下に示した直線の長さと時間間隔とは必ずしも一致していない。ＲＬＣモジュール２５は、上記ステップＳ１００にてＲｅａｄｙ状態で待機しており、ＭＡＣ層からＴＴＩイベントの発生を示すデータを受け取ったときにはステップＳ１０５の判別を経てステップＳ１１０にてＴｘモードとなる。
【００６３】
このＴｘモードにおいてＲＬＣモジュール２５がステップＳ１２０でＲＲＣ層からハッチを付して示す１１バイトのデータ（ＳＤＵ１）を受け取ると、当該ＳＤＵ１をＳＤＵバッファ２１ａに書き込み、ステップＳ１２５でタイマーをセットする。図においてハッチを付した矩形はデータを示しており、矩形の一つを１バイトとして示している。また、図に示すような頂点が重なる二つの逆向きの三角形はタイマーのセットを示しているこのタイマーのセットから延びる直線上で×印はタイマーのリセットを示し、直線終端の矢印はタイマーが切れたことを示している。
【００６４】
ＲＬＣモジュール２５は、ステップＳ１３０にてＰＤＵバッファ２１ｂを参照する。この段階ではＰＤＵバッファ２１ｂに何も記述されていないので、通し番号を作成してヘッダＳＮとし、ＰＤＵバッファ２１ｂに書き込む。ヘッダＳＮは２バイトでありＰＤＵの残り容量は６バイトになる。ステップＳ１３５ではＳＤＵバッファ２１ａ内の未コピーデータである１１バイトとＰＤＵの残り容量を比較して未コピーデータの方が容量が大きいと判別し、さらにステップＳ１４５においても同様の判別を行う。そして、ステップＳ２００においてＳＤＵバッファ２１ａから６バイト抽出し、ＰＤＵバッファ２１ｂに書き込む。このとき、ＳＤＵバッファ２１ａの全データを処理した訳ではないのでヘッダＬＩは不要であり、ヘッダＨＥを”００”としてヘッダＬＩを省略する。
【００６５】
こうして作成されたＰＤＵ１はステップＳ２１０にてＭＡＣ層に転送される。ＰＤＵ１の転送後にはさらに次のＰＤＵを生成するため、ステップＳ２２０でＰＤＵバッファ２１ｂを初期化し、５バイト分の未コピーデータが存在することをステップＳ２３０で判別し、転送済みのＰＤＵが１個であることからステップＳ２３５で現段階のＴＴＩイベントで最後のパケットであったと判別せずにステップＳ１３０以降の処理を繰り返す。
【００６６】
この繰り返しに際しては、ステップＳ１３０でＰＤＵバッファ２１ｂにヘッダＳＮを書き込むが、ＳＤＵバッファ２１ａ内の未コピーデータは５バイトであり、ヘッダＳＮ書き込み後のＰＤＵの残り容量は６バイトであるため、ヘッダＨＥを”０１”にするとともにステップＳ１３５の判別を経てステップＳ１４０でヘッダＬＩを書き込む。このとき、未コピーデータ容量５バイトを示すヘッダＬＩにするとともにヘッダＥを”０”とする
【００６７】
ＳＤＵバッファ２１ａ内の未コピーデータとＰＤＵの残り容量は双方とも５バイトである。従って、ステップＳ１４５ではＳＤＵバッファ２１ａ内の未コピーデータがＰＤＵの残り容量より少ないと判別せず、ステップＳ２００でＰＤＵを作成する。この結果、ＳＤＵバッファ２１ａ内の総てのデータをＰＤＵバッファ２１ｂにコピーしたことになる。このため、ステップＳ２１０，Ｓ２２０におけるＰＤＵ２の転送と初期化およびステップＳ２３０の判別を経てステップＳ２５０以降の処理を行う。すなわち、ＳＤＵバッファ２１ａを初期化し、ヘッダＬＩを書き込み済みであることによってステップＳ２５５の判別を経てステップＳ２６０をスキップする。さらに、ステップＳ１６０においては転送済みのＰＤＵが２個であることから現段階のＴＴＩイベントで最後のパケットであったと判別せずにＴｘモードを続ける。
【００６８】
図７に示す例では、このＴｘモードにおいてさらにＲＲＣ層から１２バイトのデータ（ＳＤＵ２）を取得する場合について示している。このように新たなデータをステップＳ１２０で取得すると、ステップＳ１２５でタイマーをセットする。すなわち、タイマーをリセットする。この１２バイトのデータについて処理を行う際にも上記１１バイトのデータと同様の処理を行うが、データ容量が１バイト異なるため、ループの２回目（ＰＤＵ４の生成処理）においてもステップＳ１４０をスキップしてヘッダＬＩを記述しない。これにより、ステップＳ２５５においてヘッダＬＩを書き込み済みであると判別し、ステップＳ２６０で次のＰＤＵ（ＰＤＵ５）のためにそのヘッダに終了フラグを含むヘッダＬＩを書き込んでおく。
【００６９】
ＰＤＵ４は最初のＴＴＩイベントが発生してから４個目のＰＤＵであるため、ステップＳ１６０の判別により、ＲＬＣモジュール２５はＲｅａｄｙ状態に復帰する。当該Ｒｅａｄｙ状態への復帰後、ＭＡＣ層から再びＴＴＩイベントの発生を示すデータを受け取ると、Ｔｘモードになる。図７はこのＴｘモードにおいて新たなＳＤＵをＲＲＣ層から取得しないままタイマーが切れた場合の例を示している。図７に示す例では取得済みのＳＤＵについて前回のＴｘモードで処理してしまっている。また、ＰＤＵバッファ２１ｂには既に終了フラグを示すヘッダＬＩが記述されている。従って、ステップＳ３００にてＳＤＵを総てＰＤＵバッファ２１ｂにコピー済みであると判別し、ステップＳ３２０にて転送すべきＰＤＵ（ヘッダＬＩ）が存在すると判別する。
【００７０】
そして、ＰＤＵバッファ２１ｂに対してステップＳ３２５にてヘッダＳＮを書き込み、ステップＳ３３０にてパディングフラグを示すヘッダＬＩを書き込む。むろん、ヘッダＨＥは”０１”とするし、終了フラグを示すヘッダＬＩの次のヘッダＥは”１”とし、パディングフラグの次のヘッダＥは”０”とする。そして、ステップＳ３３５にてパディングを実施し、ステップＳ３４０にてＰＤＵを転送し（ＰＤＵ５）、ステップＳ３４５にてＰＤＵバッファ２１ｂを初期化する。この後は、ステップＳ３５０において４回目のＰＤＵ（ＰＤＵ８）を転送したと判別されるまで、ステップＳ３２５〜Ｓ３５０を繰り返し、ヘッダとパディングとで構成されるＰＤＵ６〜ＰＤＵ８をＭＡＣ層に転送する。
【００７１】
尚、図７に示す例においてＳＤＵ２のデータ容量が１２バイトではなく１１バイトであった場合、ＰＤＵ４に相当するパケットはＰＤＵ２と同様の形となり、ヘッダＬＩによってＳＤＵ２データの終了を指示することができる。従って、再びＴｘモードになったとしてもＰＤＵバッファ２１ｂ内に転送すべきＰＤＵは存在せず、データ転送は行わない。
【００７２】
図８は、ＴｘモードにおいてＲＬＣ層で最初に１５バイトのデータ（ＳＤＵ３）を取得し、次に１１バイトのデータ（ＳＤＵ４）を取得した場合の例を示している。尚、同図においてはハッチの方向を変えることによってＳＤＵ３とＳＤＵ４とを区別している。ＳＤＵ３について最初の１２バイト分は上記ＳＤＵ２と同様の処理を行う。すなわち、ＳＤＵ３のデータ容量は１５バイトであり、ＰＤＵを生成するための最初の二回分の処理においてはステップＳ１３５，Ｓ１４５にて未コピーデータの容量がＰＤＵバッファ２１ｂ内の残り容量より少ないと判別せず、ヘッダＬＩを設けることがない。この結果、ヘッダＳＮと６バイトのデータからなるＰＤＵを生成し、２回転送する。
【００７３】
ＳＤＵ３のデータを２回のＰＤＵで転送した後には３バイトのデータが残るが、ステップＳ２３５の判別を経てさらにステップＳ１３０以降を繰り返すので、この場合はステップＳ１３５にてＳＤＵ３の未コピーデータの容量がＰＤＵバッファ２１ｂ内の残り容量より少ないと判別してヘッダＬＩを書き込む。このヘッダＬＩはデータ数３バイトを示し、ヘッダＥは”０”である。そして、ステップＳ１５０にてＰＤＵバッファ２１ｂに３バイトの未コピーデータをコピーし、ステップＳ１５５でＳＤＵバッファ２１ａを初期化する。従って、この時点でＳＤＵ３をＰＤＵバッファ２１ｂにコピーする処理は終了している。
【００７４】
しかし、このＰＤＵはＴＴＩイベントの発生から３個目のパケットであるため、ステップＳ１６０の判別を経て再びＴｘモードになる。ここで図８に示すようにＲＬＣモジュール２５がＲＲＣ層から１１バイトのデータ（ＳＤＵ４）を取得すると、ステップＳ１２５でタイマーがリセットされ、ステップＳ１３０にて当該ＳＤＵ４に対する処理が開始される。この例では、上述の３個目のパケットとしてＰＤＵが途中まで形成され、残り容量が２バイトであってＳＤＵ４が１１バイトであるため、ステップＳ１３５，Ｓ１４５にてＳＤＵ４の未コピーデータの容量がＰＤＵバッファ２１ｂ内の残り容量より少ないと判別しない。
【００７５】
そして、ステップＳ２００で２バイトの残り容量に対してＳＤＵ４の先頭の２バイトを記述し、生成されたＰＤＵをステップＳ２１０にてＭＡＣ層に転送する。ＳＤＵバッファ２１ａにはＳＤＵ４が記述されており、未コピーデータが９バイト存在するので、ステップＳ２３０，Ｓ２３５の判別を経てステップＳ１３０以降で４個目のパケットの生成作業を行う。このとき、ＳＤＵバッファ２１ａ内の未コピーデータは９バイトであるため、ステップＳ１３５，Ｓ１４５にて未コピーデータの容量がＰＤＵバッファ２１ｂ内の残り容量より少ないと判別せず、ヘッダＬＩを設けずにパケットを生成してＭＡＣ層に転送する。
【００７６】
当該転送されるパケットはＴＴＩイベントが発生してから４個目のパケットであり、さらにＳＤＵバッファ２１ａ内にはさらに未コピーデータが３バイト残っているため、ステップＳ２３０，Ｓ２３５，Ｓ２４０を経てＲＬＣモジュール２５はＲｅａｄｙ状態となる。図８に示す例ではＲｅａｄｙ状態になってから再びＴＴＩイベントが発生し、その後ＲＲＣ層からデータを取得することなくタイマー切れになる例を示している。
【００７７】
Ｒｅａｄｙ状態においては、上記ＳＤＵ４の残り３バイトが未転送データとして残っている。そこで、ステップＳ１１５の判別によってステップＳ１３０以降の処理を開始する。このとき、３バイトのデータはＰＤＵの残り容量より少ないのでステップＳ１３５の判別を経てステップＳ１４０にて３バイトを示すヘッダＬＩが付加される。さらにステップＳ１４５の判別を経てステップＳ１５０では上記ＳＤＵ４の残り３バイトをＰＤＵバッファ２１ｂに記述し、ＳＤＵバッファ２１ａを初期化する。この状態においてＰＤＵバッファ２１ｂ内のデータはヘッダＳＮとデータ数３バイトを示すヘッダＬＩと３バイト分のデータである。
【００７８】
このデータがＰＤＵバッファ２１ｂに記述されるとステップＳ１６０の判別を行うが、現在のパケットはＴＴＩイベントが発生してから１個目のパケットであるため、当該ステップＳ１６０の判別を経て再びＴｘモードになる。図８に示す例ではこのＴｘモードにてＲＲＣ層から新たにデータを受信しないので、時間の経過によってタイマー切れとなる。このとき、ステップＳ３００，Ｓ３２０の判別を経てステップＳ３２５以降の処理を行い、ＰＤＵを転送する。
【００７９】
すなわち、ステップＳ３３０にてＰＤＵバッファ２１ｂにパディングフラグを示すヘッダＬＩを付加し、ステップＳ３３５でパディングを行う。この結果生成されるデータは図８に示すＰＤＵ９である。このように、タイマーによって時間を区切ることによりいつまでもＲＲＣ層からデータが転送されることを待ち続けることなく、効率的にデータを転送することができる。尚、ＰＤＵ９をＭＡＣ層に転送した後には、上記図７のＰＤＵ６〜８と同様の処理を行ってＴＴＩイベントを終了させ、再びＲｅａｄｙ状態に復帰する。
【００８０】
図９は、ＴｘモードにおいてＲＬＣ層で最初に３０バイトのデータ（ＳＤＵ５）を取得した場合の例を示している。図９に示す例では１回目のＴＴＩイベントに対してＰＤＵを４回ＭＡＣ層に転送し、次のＴＴＩイベントが発生する前にタイマーが切れる場合の例を示している。ＳＤＵ５について最初の２４バイト分は上記ＳＤＵ２に対して行った処理と同様の処理を４パケット分行う。すなわち、ＳＤＵ５のデータ容量は３０バイトであり、ＰＤＵを生成するための４回分の処理においてはステップＳ１３５，Ｓ１４５にて未コピーデータの容量がＰＤＵバッファ２１ｂ内の残り容量より少ないと判別せず、ヘッダＬＩを設けることがない。この結果、ヘッダＳＮと６バイトのデータからなるＰＤＵを生成し、４回転送する。
【００８１】
ＳＤＵ５のデータを４回のＰＤＵで転送した後には６バイトのデータが残るが、このデータに対する処理はＴｘモードになるまで行わない。また、図９に示す例ではＭＡＣ層から再びＴＴＩイベントを示すデータを取得する以前にタイマーが切れる。従って、この再度のＴＴＩイベントによってステップＳ１１０のＴｘモードになるが、タイマーが切れているのでステップＳ１１５の判別を経て図６のステップＳ３００の判別を行う。この例では、上記残りの６バイトのデータはＰＤＵバッファ２１ｂに対してコピーされていないので、ステップＳ３００の判別を経てステップＳ３１０の処理を行う。すなわち、６バイトのデータを破棄する。そして、再びＴｘモードとなる。
【００８２】
（５）他の実施形態：
上記実施形態においては、ＲＬＣ層を請求項に言う特定層としていたが、層構造の通信において特定層から下位層に対して基本単位長毎にパケットを送信する構成である限りにおいて、ＲＬＣ層以外の層を請求項に言う特定層としても良い。また、上述の実施形態においては本発明を携帯電話に対して適用していたが、むろん、中継局での通信に対して本発明を適用しても良い。かかる構成により、効率的にデータを中継することが可能になり、通信システム全体として高速に通信を行うことが可能になる。また、上記図３に示すパケットはＡＭＤ（Ａｃｋｎｏｗｌｅｄｇｅ  Ｍｏｄｅ  Ｄａｔａ）と呼ばれるデータについての規約に従っているが、むろん他のデータ、例えばＵＭＤ（Ｕｎａｃｋｎｏｗｌｅｄｇｅ  Ｍｏｄｅ  Ｄａｔａ）と呼ばれるデータについて本発明を適用しても良い。
【図面の簡単な説明】
【図１】携帯電話の構成を示すブロック図である。
【図２】ＲＬＣ層でのデータ授受を説明する説明図である。
【図３】ＰＤＵのデータ構造を説明する説明図である。
【図４】ＲＬＣモジュールでの処理を示すフローチャートである。
【図５】ＲＬＣモジュールでの処理を示すフローチャートである。
【図６】ＲＬＣモジュールでの処理を示すフローチャートである。
【図７】各層における動作を時系列的に示した図である。
【図８】各層における動作を時系列的に示した図である。
【図９】各層における動作を時系列的に示した図である。
【符号の説明】
１０…携帯電話、１１…ＲＦモジュール、１１ａ…Ｔｘ制御部、１１ｂ…Ｒｘ制御部、１１ｃ…ＲＦコントローラ、１２…ＣＯＤＥＣ、１２ａ…スピーカ、１２ｂ…マイク、２０…ＭＰＵ、２１…ＲＡＭ、２１ａ…ＳＤＵバッファ、２１ｂ…ＰＤＵバッファ、２２…ＲＯＭ、２３…ＯＳ、２４…ＲＲＣモジュール、２５…ＲＬＣモジュール、２６…ＭＡＣモジュール、２７ａ…Ｔｘコントローラ、２７ｂ…Ｒｘコントローラ
【図１】
2004289574.tif 000003
【図２】
2004289574.tif 000004
【図３】
2004289574.tif 000005
【図４】
2004289574.tif 000006
【図５】
2004289574.tif 000007
【図６】
2004289574.tif 000008
【図７】
2004289574.tif 000009
【図８】
2004289574.tif 000010
【図９】
2004289574.tif 000011