(57)【特許請求の範囲】
【請求項１】
第２のプロセッサにデータを転送するために第１のプロセッサ内で使用可能な（operational）方法であって、前記方法は、
パケットバンドル（a packet bundle）へデータパケット（data packets）を集約すること（aggregating）；
前記パケットバンドルを共有メモリを介して前記第２のプロセッサに転送する時に、単独の（single）コンテキストスイッチで前記パケットバンドルを処理すること、ここにおいて、前記第１のプロセッサの処理負荷は、前記パケットバンドルへの前記データパケットの前記集約により低減される；
前記パケットバンドルを転送することに関連する処理をサスペンドすること；および
別のプロセスの動作を行うためにコンテキストスイッチすること、を具備する方法。
【請求項２】
請求項１の方法において、前記第２のプロセッサの処理負荷は、前記パケットバンドルへの前記データパケットの前記集約により低減される。
【請求項３】
請求項１の方法において、前記パケットバンドルへ前記データパケットを集約することは、前記第２のプロセッサでのコンテキストスイッチングをも低減する。
【請求項４】
請求項１の方法において、コンテキストスイッチは、マルチファンクション（multiple functions）による処理リソースのインターリーブ共有（interleaved sharing）である。
【請求項５】
請求項１の方法において、同じ量のデータパケットに対して前記第１のプロセッサによってより少ないデータ転送動作が行われるように、パケットバンドルへ前記データパケットを集約することによって、前記第１のプロセッサでのコンテキストスイッチングは低減される。
【請求項６】
請求項１の方法において、前記パケットバンドルは一つまたは複数のトリガの発生で第２のプロセッサに転送され、ここにおいて、前記一つまたは複数のトリガは少なくとも、
（ａ）前記第１のプロセッサから前記第２のプロセッサへのパケットバンドル（packet bundles）の連続した転送間の最大値時間（maximum amount time）に基づいたタイムアウトトリガ、
（ｂ）前記データパケットが前記パケットバンドルに集約される送信キューのためのサイズに基づいたキューレベルトリガ、
（ｃ）前記共有メモリ内の前記第１のプロセッサと前記第２のプロセッサとの間に前記パケットバンドルを転送するために用いられる転送バッファの利用に基づいたバッファ使用トリガ、
（ｄ）前記第２のプロセッサに対しての処理負荷に基づいた負荷トリガ、または
（ｅ）前記第２のプロセッサが無線ネットワークを介して送信するところのデータレートに基づいた最小データレートトリガ
を含む。
【請求項７】
請求項１の方法において、前記第１のプロセッサは、複数の層を横断してファンクション（functions）を実行し、そして、前記ファンクション間でコンテキストスイッチングを行う。
【請求項８】
請求項７の方法において、前記ファンクションは、送信キューおよび受信キューを介してお互いの間でデータを転送するファンクションドライバおよびインターコネクトドライバを含む。
【請求項９】
請求項８の方法において、前記インターコネクトドライバは、前記送信キュー内の前記データパケットの前記集約をコントロールし、そして、前記第２のプロセッサへの前記パケットバンドルの前記転送をスケジュールする。
【請求項１０】
請求項８の方法において、前記ファンクションドライバは、前記送信キュー内の前記データパケットの前記集約をコントロールし、そして、前記第２のプロセッサへの前記パケットバンドルの前記転送をスケジュールする。
【請求項１１】
第１のプロセッサであって、
第２のプロセッサとデータを交換するための通信インターフェース；
前記通信インターフェースに結合された処理回路；ここにおいて、前記処理回路は、
データパケット（data packets）をパケットバンドルに集約するように適合されている、
前記パケットバンドルを共有メモリを介して前記第２のプロセッサに転送する時に、単独の（single）コンテキストスイッチで前記パケットバンドルを処理するように適合されている、ここにおいて、前記第１のプロセッサの処理負荷は、前記パケットバンドルへの前記データパケットの前記集約により低減される；
前記パケットバンドルを転送することに関連する処理をサスペンドする；および
別のプロセスの動作を行うためにコンテキストスイッチする
を具備する第１のプロセッサ。
【請求項１２】
請求項１１のプロセッサにおいて、前記第１のプロセッサは、複数の層を横断してファンクション（functions）を実行し、そして、前記ファンクション間でコンテキストスイッチングを行う。
【請求項１３】
請求項１１のプロセッサにおいて、前記処理回路は、送信キューおよび受信キューを介してお互いの間でデータを転送するファンクションドライバおよびインターコネクトドライバを実行する。
【請求項１４】
請求項１３のプロセッサにおいて、前記インターコネクトドライバは、前記送信キュー内の前記データパケットの前記集約をコントロールし、そして、前記第２のプロセッサへの前記パケットバンドルの前記転送をスケジュールする。
【請求項１５】
請求項１３のプロセッサにおいて、前記ファンクションドライバは、前記送信キュー内の前記データパケットの前記集約をコントロールし、そして、前記第２のプロセッサへの前記集約されたデータの前記転送をスケジュールする。
【請求項１６】
請求項１３のプロセッサにおいて、前記送信キューおよび受信キューは前記共有メモリ内で実行される。
【請求項１７】
請求項１３のプロセッサにおいて、前記送信キューおよび受信キューは前記第１のプロセッサ内で実行される。
【請求項１８】
第１のプロセッサであって、
第２のプロセッサとデータを交換するための手段；
前記データパケットをパケットバンドルに集約するための手段；および
前記パケットバンドルを共有メモリを介して前記第２のプロセッサに転送する時に、単独の（single）コンテキストスイッチで前記パケットバンドルを処理するための手段、ここにおいて、前記第１のプロセッサの処理負荷は、前記パケットバンドルへの前記データパケットの前記集約により低減される；
前記パケットバンドルを転送することに関連する処理をサスペンドするための手段；および
別のプロセスの動作を行うためにコンテキストスイッチするための手段
を具備する第１のプロセッサ。
【請求項１９】
コンピュータ読み取り可能な記録媒体であって、第２のプロセッサとデータを交換するための、第１のプロセッサ上で使用可能な（operational）命令（instructions）を具備し、一つまたは複数のプロセッサで実行された時に、該プロセッサに対して、
データパケット（data packets）をパケットバンドルに集約させる；
前記パケットバンドルを共有メモリを介して前記第２のプロセッサに転送する時に、単独の（single）コンテキストスイッチで前記パケットバンドルを処理させる、ここにおいて、前記第１のプロセッサの処理負荷は、前記パケットバンドルへの前記データパケットの前記集約により低減される；
前記パケットバンドルを転送することに関連する処理をサスペンドさせる；および
別のプロセスの動作を行うためにコンテキストスイッチさせる
プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２０】
第２のプロセッサからデータ転送（data transfers）を受け取るために第１のプロセッサ内において使用可能な（operational）方法であって、
前記第２のプロセッサから共有メモリを介してパケットバンドルを単独の（single）コンテキストスイッチで取得すること、ここにおいて、前記パケットバンドルは集約されたデータパケットを含んでいる；
別のコンテキストにスイッチすること；および
前記パケットバンドルを複数のデータパケットに分離すること（unbundling）、ここにおいて、前記第１のプロセッサの処理負荷は、前記第２のプロセッサによる前記パケットバンドルへの前記データパケットの前記集約により低減される
を具備する方法。
【請求項２１】
請求項２０の方法は、前記第２のプロセッサから前記データパケットが転送されていることを指示している割り込みを受け取ることをさらに具備する。
【請求項２２】
請求項２０の方法において、前記第２のプロセッサの処理負荷は、前記パケットバンドルへの前記データパケットの前記集約により低減される。
【請求項２３】
請求項２０の方法において、前記第１のプロセッサは、複数の層を横断してファンクション（functions）を実行し、そして前記ファンクション間でコンテキストスイッチングを行い、そして、前記ファンクションは、送信キューおよび受信キューを介してお互いの間でデータを転送するファンクションドライバおよびインターコネクトドライバを含む。
【請求項２４】
第１のプロセッサであって、
第２のプロセッサとデータを交換するための通信インターフェース；および、
前記通信インターフェースに結合された処理回路；ここにおいて、前記処理回路は、
前記第２のプロセッサから共有メモリを介してパケットバンドルを単独の（single）コンテキストスイッチで取得するように適合されており、ここにおいて、前記パケットバンドルは集約されたデータパケットを含んでおり、
別のコンテキストにスイッチすること；および
前記パケットバンドルを複数のデータパケットに分離する（unbundle）ように適合されており、ここにおいて、前記第１のプロセッサの処理負荷は、前記第２のプロセッサによる前記パケットバンドルへの前記データパケットの前記集約により低減される
を具備する第１のプロセッサ。
【請求項２５】
請求項２４の第１のプロセッサにおいて、前記処理回路は、前記第２のプロセッサから前記データパケットが転送されていることを指示している割り込みを受け取るようにさらに適合されている。
【請求項２６】
請求項２４の第１のプロセッサにおいて、前記第２のプロセッサの処理負荷は、前記パケットバンドルへの前記データパケットの前記集約により低減される。
【請求項２７】
請求項２４の第１のプロセッサにおいて、前記第１のプロセッサは、送信キューおよび受信キューを介してお互いの間でデータを転送するファンクションドライバおよびインターコネクトドライバを実行する。
【請求項２８】
第１のプロセッサであって、
第２のプロセッサとデータを交換するための手段；
前記第２のプロセッサから共有メモリを介してパケットバンドルを単独の（single）コンテキストスイッチで取得するための手段；ここにおいて、前記パケットバンドルは集約されたデータパケット（data packets）を含んでいる；
別のコンテキストにスイッチするための手段；および
前記パケットバンドルを複数のデータパケットに分離するための手段、ここにおいて、前記第１のプロセッサの処理負荷は、前記第２のプロセッサによる前記パケットバンドルへの前記データパケットの前記集約により低減される
を具備する第１のプロセッサ。
【請求項２９】
コンピュータ読み取り可能な記録媒体であって、第２のプロセッサからデータ転送を受け取るための、第１のプロセッサ上で使用可能な（operational）命令（instructions）を具備し、一つまたは複数のプロセッサで実行された時に、該プロセッサに対して、
前記第２のプロセッサから共有メモリを介してパケットバンドルを単独の（single）コンテキストスイッチで取得させる、ここにおいて、前記パケットバンドルは集約されたデータパケット（data packets）を含んでいる；
別のコンテキストにスイッチさせる；および
前記パケットバンドルを複数のデータパケットに分離させる、ここにおいて、前記第１のプロセッサの処理負荷は、前記第２のプロセッサによる前記パケットバンドルへの前記データパケットの前記集約により低減される
プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項３０】
第１のプロセッサから第２のプロセッサにデータを転送するための方法であって、
前記第１のプロセッサで複数のデータパケットをパケットバンドルに集約すること；
共有メモリを用いて前記第１のプロセッサから前記第２のプロセッサに前記パケットバンドルを転送すること、ここにおいて、別のプロセスの動作を行うために前記パケットバンドルの転送に関連する処理がサスペンドされる前に、前記パケットバンドルの前記転送は前記第１のプロセッサで単独の（single）コンテキストスイッチで行われる；および
前記第２のプロセッサで前記パケットバンドルを個々のデータパケットに分離すること、ここにおいて、前記第２のプロセッサの処理負荷は、前記第１のプロセッサによる前記パケットバンドルへの前記データパケットの前記集約により低減される
を具備する方法。
【請求項３１】
請求項３０の方法において、前記第１のプロセッサから転送されていることを指示している割り込みを前記第２のプロセッサで受け取ることをさらに具備し、ここにおいて、前記第２のプロセッサでの前記割り込みの数は、前記第１のプロセッサでの前記データパケットの前記集約により低減される。
【請求項３２】
請求項３０の方法において、前記第１のプロセッサはアプリケーションプロセッサであり、前記第２のプロセッサはモデムプロセッサであり、両方のプロセッサは無線通信デバイス内で動作していること。
【請求項３３】
請求項３０の方法において、前記第２のプロセッサはアプリケーションプロセッサであり、前記第１のプロセッサはモデムプロセッサであり、両方のプロセッサは無線通信デバイス内で動作していること。
【請求項３４】
請求項３０の方法において、前記パケットバンドルは一つまたは複数のトリガの発生で第２のプロセッサに転送され、ここにおいて、前記一つまたは複数のトリガは少なくとも、
（ａ）前記第１のプロセッサから前記第２のプロセッサへのパケットバンドル（packet bundles）の連続した転送間の最大値時間（maximum amount time）に基づいたタイムアウトトリガ、
（ｂ）前記データパケットが前記パケットバンドルに集約されるところの送信キューのためのサイズに基づいたキューレベルトリガ、
（ｃ）前記第１のプロセッサと前記第２のプロセッサとの間で前記パケットバンドルを転送するために用いられる前記共有メモリ内の転送バッファの利用に基づいたバッファ使用トリガ、
（ｄ）第２のプロセッサに対しての処理負荷に基づいた負荷トリガ、または
（ｅ）前記第２のプロセッサが無線ネットワークを介して送信するところのデータレートに基づいた最小データレートトリガ
を含む。
【請求項３５】
請求項３０の方法において、前記第１のプロセッサおよび第２のプロセッサはそれぞれ複数の層を横断してファンクション（functions）を実行し、前記第１および第２のプロセッサそれぞれでの前記ファンクションは、送信キューおよび受信キューを介してお互いの間でデータを転送するファンクションドライバおよびインターコネクトドライバを含む。
【請求項３６】
請求項３５の方法において、前記インターコネクトドライバは、前記送信キュー内のデータパケットの前記集約をコントロールし、そして、前記第２のプロセッサへの前記パケットバンドルの転送をスケジュールする。
【請求項３７】
請求項３５の方法において、前記ファンクションドライバは、前記送信キュー内のデータパケットの前記集約をコントロールし、そして、前記第２のプロセッサへの前記パケットバンドルの転送をスケジュールする。
【請求項３８】
請求項３０の方法において、
前記第２のプロセッサで第２の複数のデータパケットを第２のパケットバンドルに集約
すること、
共有メモリを用いて前記第２のプロセッサから第１のプロセッサに前記第２のパケットバンドルを転送すること、ここにおいて、前記パケットバンドルの転送は前記第２のプロセッサで単独の（single）コンテキストスイッチで行われ、および
前記第１のプロセッサで前記第２のパケットバンドルを個々のデータパケットに分離し、ここにおいて、前記第１のプロセッサの処理負荷は、前記第２のプロセッサによる前記第２のパケットバンドルへの前記データパケットの前記集約によって低減される。
【請求項３９】
アクセス端末であって、
複数のデータパケットをパケットバンドルに集約するように適合された第１のプロセッサ；
前記第１のプロセッサに結合された共有メモリであって、前記パケットバンドルを別のプロセッサに送るために前記第１のプロセッサにより使用される前記共有メモリ、ここにおいて、別のプロセスの動作を行うために前記パケットバンドルの転送に関連する処理がサスペンドされる前に、前記パケットバンドルの前記転送は第１のプロセッサで単独の（single）コンテキストスイッチで行われる；および
前記共有メモリに結合された第２のプロセッサであって、前記共有メモリから前記パケットバンドルを取得し、そして、前記パケットバンドルを個々のデータパケットへと分離するように適合された前記第２のプロセッサ、ここにおいて、前記第２のプロセッサの処理負荷は前記第１のプロセッサによる前記パケットバンドルへの前記データパケットの前記集約により低減されている
を具備してなるアクセス端末。
【請求項４０】
請求項３９のアクセス端末において、
前記第２のプロセッサは、第２の複数のデータパケットを第２のパケットバンドルに集約し、そして、前記共有メモリを用いて前記第２のプロセッサから第１のプロセッサに前記第２のパケットバンドルを転送するようにさらに適合され、ここにおいて、前記パケットバンドルの前記転送は前記第２のプロセッサにより単独の（single）コンテキストスイッチで行われ、および
前記第１のプロセッサは、前記第１のプロセッサで前記第２のパケットバンドルを個々のデータパケットに分離するようにさらに適合され、ここにおいて、前記第１のプロセッサの処理負荷は、前記第２のプロセッサによる前記第２のパケットバンドルへの前記データパケットの前記集約によって低減される。
【請求項４１】
アクセス端末であって、
第１のプロセッサで複数のデータパケットをパケットバンドルに集約するための手段；
前記第１のプロセッサから前記第２のプロセッサに前記パケットバンドルを転送するための記憶（memory）手段；ここにおいて、別のプロセスの動作を行うために前記パケットバンドルの転送に関連する処理がサスペンドされる前に、前記パケットバンドルの転送は前記第１のプロセッサで単独の（single）コンテキストスイッチで行われる；および、
第２のプロセッサで前記共有メモリから前記パケットバンドルを取得し、そして、前記パケットバンドルを個々のデータパケットに分離するための手段；ここにおいて、前記第２のプロセッサの処理負荷は、前記第１のプロセッサによる前記パケットバンドルへの前記データパケットの前記集約により低減される
を具備するアクセス端末。
【請求項４２】
コンピュータ読み取り可能な記録媒体であって、第１のプロセッサと第２のプロセッサとの間でデータパケットを効率的に転送するための、アクセス端末上で使用可能な（operational）命令（instructions）を具備してなり、一つまたは複数のプロセッサで実行された時に、該プロセッサに対して、
前記第１のプロセッサで前記データパケットをパケットバンドルに集約させる；
共有メモリを用いて前記第１のプロセッサから前記第２のプロセッサに前記パケットバンドルを転送させる、ここにおいて、別のプロセスの動作を行うために前記パケットバンドルの転送に関連する処理がサスペンドされる前に、前記パケットバンドルの前記転送は前記第１のプロセッサで単独の（single）コンテキストスイッチで行われる；および
前記第２のプロセッサで前記パケットバンドルを個々のデータパケットに分離させる、ここにおいて、前記第２のプロセッサの処理負荷は、前記第１のプロセッサによる前記パケットバンドルへの前記データパケットの前記集約により低減される
プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【関連出願の表示】
【０００１】
米国特許法第１１９条に定められているように、本願は、本願の譲受人に譲渡され、２００８年６月２６日に出願され、“Method and apparatuses to reduce content switching during data networking in dual processor access terminals”と表題された米国仮出願番号６１／０７６，０８８の優先権の利益を主張しており、その内容は本明細書中に参照によって組み込まれる。
【技術分野】
【０００２】
一つのフィーチャー（feature）は、通信システムに係わり、より詳細には、二つ以上のプロセッサ間のデータ転送期間中のコンテキストスイッチングおよび割り込み（interruptions）を低減するための方法に関する。
【背景技術】
【０００３】
消費者がよりいっそうのモバイルテクノロジーおよび利便性を求める毎に、より多くのコンテンツおよびサービスがモバイルおよび／またはコンパクトデバイスに供給される。同時に、携帯電話などのアクセス端末は、ユーザーが容易にどこにも持ち運べることができるように、ますますサイズは小さくまたはコンパクトになっている。サイズが小さいがために、アクセス端末は、しばしば処理能力および／または電源（例えば、バッテリ）に制限がある。処理性能とバッテリ寿命との間にはしばしばトレードオフが生じる。よりパワフルなプロセッサはより多くの電力を消費し、それにより充電間のバッテリ寿命は短くなる。しかしながら、より非力なプロセッサは新しいアプリケーションに対して必要とされる十分な処理パワーを提供できない可能性がある。例えば、国際電気通信連合（ＩＴＵ）に基づいた第３世代（３Ｇ）および第４世代（４Ｇ）の通信規格の到来とともに、高速データアプリケーション（例えば、インターネットアクセス、ボイス・オーバー・ＩＰ、映像配信など）が無線ネットワークに提供されている。３Ｇおよび４Ｇネットワークにより提供されるより高速なデータレートは、これらのより高速なデータレートを提供するための限られたクロックレートを持つプロセッサコアにより一層の圧力を与えている。無線通信チップおよびチップセットを組み込むハンドセット製造会社および他の相手先商標製品の製造会社（ＯＥＭ）に対して、これらの要因は、Windows Mobile（登録商標）、Linux（登録商標）またはSymbian（登録商標）などの在庫がありすぐに入手できる（off-the-shelf: OTS）市販のモバイルオペレーティングシステムを用いて高速データアプリケーションを提供することに圧力を与えることにつながる。残念ながら、このようなモバイルオペレーティングシステムはたびたびコンテキストスイッチングにおいてかなりの処理時間を費やし、次世代高速データレートを効率よくサポートすることに対して、特にＯＴＳモバイルオペレーティングシステムにより要求される階層化ソフトウェアアーキテクチャに対して重大な障害を呈している。
【０００４】
したがって、より高速なデータレートに対しての処理能力を犠牲にすることなくクロックレートが限られたプロセッサの電力消費を削減するための技術が必要とされている。
【発明の概要】
【０００５】
以下は、いくつかの実施形態の基本的な理解を提供するための一つまたは二つ以上の実施形態の簡略化された概要を提示している。この概要は、全ての考えられた実施形態の広範囲のあらましではなく、そして、全ての実施形態のキーとなる要素または重大な要素を意図するものでも、実施形態の範囲または全ての実施形態を叙述するものでもない。その唯一の目的は一つまたは二つ以上の実施形態のいくつかコンセプトを後に呈されるより詳細な説明の前置きとして簡単な表現形式で呈することである。
【０００６】
一フィーチャーによれば、第２のプロセッサにデータを転送するための第１のプロセッサ内で動作可能な方法が提供される。データパケットは前記第１のプロセッサによりパケットパンドルに集約されても構わない。前記第１のプロセッサはそれから前記パケットバンドルを共有メモリを介して前記第２のプロセッサに転送する時に、単独のコンテキストスイッチで前記パケットバンドルを処理しても構わなく、ここにおいて、前記第１のプロセッサの処理負荷は、前記パケットバンドルへの前記データパケットの前記集約により低減される。また、第２のプロセッサの処理負荷もまた、前記パケットバンドルへの前記データパケットの前記集約により低減されても構わない。コンテキストスイッチは、マルチファンクションによる処理リソースのインターリーブ共有を含んでいても構わない。同じ量のデータパケットに対して前記第１のプロセッサによってより少ないデータ転送動作が行われるように、パケットバンドルへ前記データパケットを集約することによって、前記第１のプロセッサでのコンテキストスイッチングは低減されても構わない。
【０００７】
前記パケットバンドルは一つまたは複数のトリガの発生で前記第２のプロセッサに転送されても構わない。例えば、前記一つまたは複数のトリガは少なくとも、（ａ）前記第１のプロセッサから前記第２のプロセッサへのパケットバンドルの連続した転送間の最大値時間に基づいたタイムアウトトリガ；（ｂ）前記データパケットが前記パケットバンドルに集約される送信キューのためのサイズに基づいたキューレベルトリガ；（ｃ）前記共有メモリ内の前記第１のプロセッサと前記第２のプロセッサとの間にパケットバンドルを転送するために用いられる転送バッファの利用に基づいたバッファ使用トリガ；（ｄ）前記第２のプロセッサに対しての処理負荷に基づいた負荷トリガ；または（ｅ）前記第２のプロセッサが無線ネットワークを介して送信するところのデータレートに基づいた最小データレートトリガ（data rate trigger）を含んでも構わない。
【０００８】
前記第１のプロセッサは、複数の層を横断してファンクション（functions）を実行し、そして、前記ファンクション間でコンテキストスイッチングを行っても構わない。前記ファンクションは、送信キューおよび受信キューを介してお互いの間でデータを転送するファンクションドライバおよびインターコネクトドライバを含んでも構わない。一例では、前記インターコネクトドライバは、前記送信キュー内の前記データパケットの前記集約をコントロールし、そして、前記第２のプロセッサへの前記パケットバンドルの前記転送をスケジュールしても構わない。別の例では、前記ファンクションドライバは、前記送信キュー内の前記データパケットの前記集約をコントロールし、そして、前記第２のプロセッサへの前記パケットバンドルの前記転送をスケジュールしても構わない。
【０００９】
一フィーチャーによれば、第２のプロセッサからデータ転送を受け取るために第１のプロセッサ内において使用可能（operational）な方法。前記第１のプロセッサは、前記第２のプロセッサから前記データパケットが転送されていることを指示している割り込みを受け取っても構わない。前記パケットバンドルはそれから共有メモリを介して第２のプロセッサから単独の（single）コンテキストスイッチで取得され、ここにおいて、前記パケットバンドルは集約されたデータパケットを含んでいる。第１のプロセッサは、前記パケットバンドルを複数のデータパケットに分離しても構わなく、ここにおいて、前記第１のプロセッサの処理負荷は、前記第２のプロセッサによる前記パケットバンドルへの前記データパケットの前記集約により低減される。前記第２のプロセッサの処理負荷もまた、前記パケットバンドルへの前記データパケットの前記集約により低減される。前記第１のプロセッサは、複数の層を横断してファンクション（functions）を実行し、そして前記ファンクション間でコンテキストスイッチングを行っても構わない。このような前記ファンクションは、送信キューおよび受信キューを介してお互いの間でデータを転送するファンクションドライバおよびインターコネクトドライバを含んでも構わない。
【００１０】
アクセス端末もまた提供され、第１のプロセッサおよび第２のプロセッサを具備し、そして、第１のプロセッサから第２のプロセッサにデータを転送するように適合されている。前記第１のプロセッサで複数のデータパケットはパケットバンドルに集約されても構わない。前記パケットバンドルはそれから共有メモリを用いて第１のプロセッサから第２のプロセッサに転送され、ここにおいて、前記パケットバンドルの転送は前記第１のプロセッサで一つのコンテキストスイッチで行われる。第２のプロセッサは、前記第１のプロセッサから前記パケットバンドルが転送されていることを指示している割り込みを受け取っても構わなく、ここにおいて、前記第２のプロセッサでの前記割り込みの数は、前記第１のプロセッサでの前記データパケットの前記集約により低減される。前記パケットバンドルは、前記第２のプロセッサで個々のデータパケットに分離されても構わなく、ここにおいて、前記第２のプロセッサの処理負荷は、前記第１のプロセッサによる前記パケットバンドルへの前記データパケットの前記集約により低減される。前記第１のプロセッサおよび第２のプロセッサはそれぞれ複数の層を横断してファンクション（functions）を実行しても構わなく、ここにおいて、前記第１および第２のプロセッサそれぞれでの前記ファンクションは、送信キューおよび受信キューを介してお互いの間でデータを転送するファンクションドライバおよびインターコネクトドライバを含んでも構わない。
【００１１】
同様に、第２の複数のデータパケットは、前記第２のプロセッサで第２のパケットバンドルに集約されても構わない。前記第２のプロセッサはそれから前記共有メモリを用いて前記第１のプロセッサに前記第２のパケットバンドルを転送し、ここにおいて、前記パケットバンドルの転送は前記第２のプロセッサで単独の（single）コンテキストスイッチで行われる。前記第１のプロセッサはそれから前記第２のパケットバンドルを個々のデータパケットに分離し、ここにおいて、前記第１のプロセッサの処理負荷は、前記第２のプロセッサによる前記第２のパケットバンドルへの前記データパケットの前記集約によって低減される。
【００１２】
一例では、前記第１のプロセッサはアプリケーションプロセッサで構わなく、そして、前記第２のプロセッサはモデムプロセッサで構わなく、両方のプロセッサは無線通信デバイス内で動作していること。あるいは、前記第２のプロセッサはアプリケーションプロセッサで構わなく、そして、前記第１のプロセッサはモデムプロセッサで構わなく、両方のプロセッサは無線通信デバイス内で動作していること。
【図面の簡単な説明】
【００１３】
【図１】どのようにして一つまたは複数のアクセス端末が通信システム内において動作できるかを示しているブロック図である。
【図２】アクセス端末の一例を示すブロック図である。
【図３】データ集約を行うために適用されても構わないデュアルプロセッサアーキテクチャを示している。
【図４】一例に従ったデータ集約のコンセプトを示すブロック図である。
【図５】データ集約のためのタイムアウトタイマおよびキューレベルを利用するためにインテリジェントスケジューラーに使用されても構わない方法を示す。
【図６】データ集約を行うために適用されても構わないデュアルプロセッサアーキテクチャの別の例を示している。
【図７】第１のプロセッサおよび第２のプロセッサを含み、そして、共有メモリを用いてその二つのプロセッサ間のデータパケットを効率よく転送するように適合されたデバイスを示すブロック図である。
【図８】第２のプロセッサに束ねられた（bundled）データを転送するための第１のプロセッサ内で使用可能な方法を示している。
【図９】第２のプロセッサへの束ねられたデータを受信するための第１のプロセッサ内で使用可能な方法を示している。
【図１０】デュアルプロセッサ間でデータパケットをより効率的に転送するためのデュアルプロセッサアクセス端末内で使用可能な（operational）方法を示している。
【発明を実施するための形態】
【００１４】
以下の記載において、実施形態の十分な理解を提供するための具体的な詳説が与えられる。しかしながら、これらの具体的な詳説がなくても当業者であれば実施形態は実施される得ることは理解できるであろう。不要な詳説中で実施形態が不明瞭にならないように、例えば、回路はブロック図で示されるか、もしくは全く示されないかもしれない。他の例においては、実施形態が不明瞭にならないように、周知の回路、構造および技術は詳細には示されないかもしれない。
【００１５】
ここにおいて使用されるような、用語“アクセス端末”は、携帯電話、セル方式の携帯無線電話、通信デバイス、コミュニケーション・デバイス、無線デバイス、衛星ラジオ、パーソナル・デジタル・アシスタント、ラップトップおよび／または無線通信機能を有するパームヘルドコンピュータデバイス（palm-held computing device）をさしても構わないが、それらには限定されない。用語“データ”は、プロセッサ間またはネットワークを介して転送される可能性がある全てのタイプの情報および／またはコンテンツをさしている。
【００１６】
大要
一主要点は、同じデバイス上での第１のプロセッサと第２のプロセッサとの間のデータの転送時に割り込みおよび／またはコンテキストスイッチングを低減するためのデータ集約スキームを提供する。第１のプロセッサはデータパケットを第２のプロセッサに転送されるパケットバンドに集約または累算する。集約されたデータパケットはそれから単独の（single）コンテキストスイッチングかつ少なくとも部分的には一つまたは複数のトリガに基づいて第１のプロセッサから第２のプロセッサに転送される。第１のプロセッサおよび第２のプロセッサの両方にアクセス可能な転送バッファまたはメモリは集約されたデータパケットを転送するために使用されても構わない。第２のプロセッサは第１のプロセッサからデータが転送されていることを指示している割り込みを受け取る。第１のプロセッサでデータパケットを集約することにより、第１および／または第２のプロセッサでのコンテキストスイッチングの数は低減される。集約されたデータパケットはそれから分離されて（unbundled）も構わなく、そして、より高いアプリケーション・レイヤーへと沿って送られるかまたは無線ネットワークまたはテザーデバイス（tethered device）を介しての転送のために送られる。
【００１７】
データ集約は通信チャンネル（例えば、無線ネットワークのための転送チャンネル）のチャンネル特性にマッチさせるために行われても構わないし、そして、コンテキストスイッチングを効果的に低減するために行われても構わないし、これにより、プロセッサ利用を向上（低減）でき、そして、プロセッサアイドル時間を増やせる。第１および第２のプロセッサ間の集約されたデータ転送のインテリジェント・スケジューリングはデータ転送に用いられるキュー内のローおよびハイキューレベルに基づいても構わない。これらの関連するキューレベルは異なるネットワークデータレートに合わせて調整されても構わない。所定の期間内での集約されたデータパケットの転送を保証するためにタイムアウトタイマもまた利用されても構わない。さらに、いつ集約されたデータが転送されるべきかを決定するために他のトリガが利用されても構わない。例えば、バッファ使用トリガが用いられても構わなく、ここにおいて、バッファ使用トリガは第１のプロセッサと第２のプロセッサとの間に集約されたデータを転送するために利用される転送バッファの容量または利用（usage）に基づいている。同様に、ロード（load）トリガもまた用いられても構わなく、ここにおいて、ロードトリガは第２のプロセッサに対しての処理負荷に基づいている。別の例は、第２のプロセッサが無線ネットワークを介して情報を転送するところのデータレートに基づく最小データレートトリガである。
【００１８】
通信システム
図１はどのようにして一つまたは複数のアクセス端末が通信システム内において動作できるかを示しているブロック図である。通信システム１００はサービングネットワーク（serving network）１０８と通信可能に接続された（coupled）一つまたはそれ多くのアクセスポイントＡＰ−Ａ１０４およびＡＰ−Ｂ１１０を含むことが可能である。サービングネットワーク１０８は、加入者認証、セッションセットアップ、コールルーティング、データまたはコンテンツ配信などを容易とする、一つまたはそれ多くのネットワーク基盤デバイスを含んでいても構わない。サービングネットワーク１０８はまた異なる領土および／またはネットワークにわたってサービスを提供する他のネットワークに接続されても構わない。
【００１９】
一つまたはそれ多くのアクセス端末ＡＴ−Ａ１０２，ＡＴ−Ｂ１０６およびＡＴ−Ｃ１１２は、アクセスポイントＡＰ−Ａ１０４およびＡＰ−Ｂ１１０を経由してサービングネットワーク１０８によってサービスを得てもおよび／または通信しても構わない。三つのアクセス端末ＡＴ−Ａ１０２，ＡＴ−Ｂ１０６およびＡＴ−Ｃ１１２しか描かれていないが、通信システム１００は如何なる数のアクセスポイントをサービスしても構わない。さまざまな実施に従って、サービングネットワークは、アクセス端末ＡＴ−Ａ１０２，ＡＴ−Ｂ１０６およびＡＴ−Ｃ１１２への／からの（to/from）高データレートサービスをサポートしても構わない。一例においては、アクセス端末ＡＴ−Ａ１０２，ＡＴ−Ｂ１０６およびＡＴ−Ｃ１１２は、再充電可能な電源（例えば、バッテリ）を含んでいても構わなく、そして、コンテキストスイッチングを低減するように一つまたはそれ多くの技術を行うように適合され、それにより一つまたはそれ多くのプロセッサのための時間が増え、そして、バッテリパワーを節約できる。
【００２０】
なお、アクセスポイントからアクセス端末への通信リンクまたはチャネルはしばしばフォワードリンクまたはダウンリンクと呼ばれる。アクセス端末からアクセスポイントへの通信リンクまたはチャネルはリバースドリンクまたはアップリンクと呼ばれても構わない。
【００２１】
図２は、アクセス端末の一例を示すブロック図である。アクセス端末２０２は、アクセス端末上でアプリケーションを実行するアプリケーションプロセッサ２１６などの一つまたはそれ多くのプロセッサを含んでいても構わない、処理回路２０４を含んでいても構わない。処理回路２０４は、アンテナ２１０に結合された送受信機２０８（例えば、送信機２１８および受信機２２０モジュール（modules））に結合されたモデムプロセッサ２０６に結合されても構わない。アプリケーションプロセッサ２１６とモデムプロセッサ２０６とにより定義されたプロセッサアーキテクチャはデュアルプロセッサシステムと称されることもある。
【００２２】
処理回路２０４、モデムプロセッサ２０６および送受信機２０８は、アクセス端末への／からの（to/from）一つまたはそれ多くのコンカレントまたはシリアルのデータストリームをプロセス、送信および／または受信するために動作する、送信チェーンおよび受信チェーンを形成しても構わない。一例においては、各データストリームは各自の送信アンテナによって送信されても構わない。コード化したデータを提供するためのデータストリームに対して選択された特定のコーディングスキームに基づいて、各データストリームに対してトラフィックデータをフォーマッティング、エンコーディングおよび／またはインターリービングすることにより、送信されるデータに対して、モデムプロセッサ２０６はそのデータを変調しても構わない。同様に、使用された特定のコーディングスキームに基づいて、各データストリームに対してトラフィックデータをデインターリービング、デコーディング、および／または展開すること（extracting）により、受信されたデータに対して、モデムプロセッサ２０６はそのデータを復調しても構わない。送受信機２０８では、送信モジュール２１８は、一つまたはそれ多くのアナログ信号を提供するために、データストリームを処理しても構わなく、そして、さらに、アンテナ２１０による送信のために適切している変調された信号を提供するために、そのアナログ信号を調整して（例えば、増幅して、フィルタして、および／またはアップコンバートして）も構わない。同様に、受信モジュール２２０は、アンテナ２１０から変調された信号を受信しても構わなく、そして、受信した信号を調整し（例えば、フィルタし、増幅して、および／またはダウンコンバートし）、サンプルを提供するためにその調整された信号をデジタル化し、そして、さらに、対応する受信されたデータストリームを提供するために、そのサンプルを処理しても構わない。
【００２３】
処理回路２０４はまたメモリデバイス２１２および一つまたはそれ多くの入力／出力インターフェース２１４に結合されても構わない。メモリデバイス２１２は、処理回路２０４により実行される、情報、データ、および／またはアプリケーションを記憶する働きをしても構わない。随意的な実施として、メモリデバイス２１２は随意的にモデルプロセッサ２０６に結合し、そして、アプリケーションプロセッサとモデムプロセッサとの間の転送バッファとしての機能を果たしても構わない。入力／出力インターフェース２１４は、数あるインターフェースのなかでも、ディスプレイスクリーン、マイクロフォン、スピーカー、キーパッド、タッチスクリーンを含んでいても構わない。なお、他の実施として、処理回路２０４、アプリケーションプロセッサ２１６、および／またはモデムプロセッサは、共通のデータバスに結合されても構わない。
【００２４】
一例において、モデルプロセッサ２０６およびアプリケーションプロセッサ２１６は、アクセス端末２０２の同じ回路またはボード上に備わっていても構わない。別の例において、モデルプロセッサ２０６およびアプリケーションプロセッサ２１６は、別々の回路ボード上にあっても構わない。例えば、モデルプロセッサ２０６は独立でも、または、アクセス端末２０２に差し込むリムーバブルな通信カードでも構わない。さらに、モデルプロセッサ２０６および／またはアプリケーションプロセッサ２１６の各々は、一つのプロセッサまたはマルチプロセッサで実施されても構わない。
【００２５】
いくつかのフィーチャーによれば、アクセス端末２０２は、高スピードデータアクセス技術を用いる３Ｇおよび／または４Ｇ通信規格に完全に適合しても構わない。しかしながら、処理回路２０４（またはアプリケーションプロセッサ２１６）および／またはモデルプロセッサ２０６は、高スピードデータレート３Ｇおよび／または４Ｇ通信を達成するために要求される処理オーバーヘッドに対して制限されたクロックレートを有していても構わない
処理回路２０４および／またはアプリケーションプロセッサ２１６は、Windows Mobile（登録商標）、Linux（登録商標）またはSymbian（登録商標）などの市販のモバイルオペレーティングシステムを実行しても構わない。このようなモバイルオペレーティングシステムはたびたびコンテキストスイッチングにおいてかなりの処理時間を費やし、次世代高速データレートを効率よくサポートすることに対して、特に多くのモバイルオペレーティングシステムにより用いられる階層化ソフトウェアアーキテクチャに対して重大な障害を呈している。
【００２６】
用語“コンテキストスイッチング”は、多重処理（multiple processes）が一つのプロセッサリソースを共有できるように、プロセッサの状態（コンテキスト）を記憶すること（storing）およびリストアすること（restoring）の計算処理（computing process）をさす。コンテキストスイッチは、プロセッシングリソースを共有またはインターリーブすることにより、みたところコンカレントベースでマルチプロセスオペレーションを行うために、マルチタスクオペレーティングシステムにより使用されても構わない。コンテキストスイッチは通常コンピュータ的に集約的であり、オペレーティングシステムの設計の多くはコンテキストスイッチの使用を最適化することになっている。さまざまな例によれば、コンテキストスイッチは、レジスタコンテキストスイッチ、スレッドコンテキストスイッチ、および／または、プロセス／ファンクションコンテキストスイッチを意味することができる。コンテキストを構成するものは、使用されているプロセッサおよび／またはオペレーティングシステムによって決定することが可能である。
【００２７】
できるだけ最もエネルギー効率のよいやり方で最高性能を達成するために、アクセス端末は、電力を節約そうでなければバッテリ消費を最小化するように、処理回路２０４（またはアプリケーションプロセッサ２１６）および／またはモデルプロセッサ２０６の、クロックレートを下げるようにおよび／またはアイドルサイクルを短くするように、適合されても構わない。
【００２８】
一フィーチャーによれば、データ集約は、通信チャネルのチャネル特性に合わせるように、そして、コンテキストスイッチを効果的に減らすように、プロセッサ内で用いられても構わなく、それにより、プロセッサ利用を向上（低減）でき、そして、プロセッサアイドル時間を増やせる。
【００２９】
図３は、データ集約を行うために適用されても構わないデュアルプロセッサアーキテクチャを示している。デュアルプロセッサ３００は第１のプロセッサ３０２および第２のプロセッサ３０４を含んでも構わない。第１のプロセッサ３０２は、例えば、アクセス端末の一部として実行されても構わない。第１のプロセッサ３０２は、例えば、特定の無線通信規格（例えば、無線インターフェース）のためのラジオスタック（radio stack）を実行するためのモデルプロセッサであっても構わない。第２のプロセッサ３０４は、例えば、一つまたはそれ多くのアプリケーション３４８を実行するためのアプリケーションプロセッサであっても構わない。第１のプロセッサ３０２および第２のプロセッサ３０４は、転送バッファ３０６（例えば、共有メモリなど）を用いることによりデータを交換しても構わない。第１のプロセッサ３０２はまた、無線ネットワークによりデータを受信および送信するためのラジオスタック３０８およびアンテナ３１０に結合されても構わない。
【００３０】
第１のプロセッサ３０２は、ファンクションドライバ３１２、分離モジュール（unbundling module）３１４、送信（Ｔｘ）キュー３１６、受信（Ｒｘ）キュー３１８および／またはインターコネクトドライバ３２０を含んでいてもまたは実行しても構わない。ファンクションドライバ３１２は、分離モジュール３１４を含んでいてもまたは実行しても構わない。インターコネクトドライバ３２０は、タイマ３２２、データ集約（data aggregation）モジュール３２４および／またはインテリジェントスケジューラー３２６を含んでいてもまたは実行しても構わない。
【００３１】
第２のプロセッサ３０４は、ファンクションドライバ３３０、送信（Ｔｘ）キュー３３４、受信（Ｒｘ）キュー３３６および／または一つまたはそれ多くのインターコネクトドライバ３４８、オペレーティングシステムネットワーキングスタック３４６および／または一つまたはそれ多くのアプリケーション３４８を含んでいてもまたは実行しても構わない。ファンクションドライバ３３０は、分離モジュール３３２を含んでいてもまたは実行しても構わない。インターコネクトドライバ３３８は、データ集約モジュール３４０、インテリジェントスケジューラー３４２および／またはタイマ３４４を含んでいてもまたは実行しても構わない。
【００３２】
第１のプロセッサ３０２および第２のプロセッサ３０４として示された要素および／またはモジュールは、各プロセッサ内で動作している機能コンポーネントでも構わないし、および／または、他のコンポーネントに結合されても構わない。一例では、転送バッファ３０６は、第１および第２のプロセッサ３０２および３０４によりアクセス可能な共有メモリ空間またはデバイスでも構わない。いくつかの例では、第１および第２のプロセッサ３０２および３０４は、ＴＸキューおよびＲＸキューが実行される内部メモリを含んでいても構わない。他の例では、ＴＸキューおよびＲＸキューは、共有メモリ（例えば、共有メモリデバイス内の同じメモリ空間またはメモリデバイス内の異なるメモリ空間のどちらか）内で実行されても構わない。一例では、転送バッファ３０６は、第１のプロセッサが集約されたデータパケットを同じメモリ空間内に送信し、第１のプロセッサにより通知された時に第２のプロセッサがそのメモリ空間から集約されたデータパケットを読み出すように、第１のプロセッサ３０２および第２のプロセッサ３０４の両方に対してＴＸキューおよびＲＸキューを実行しても構わない。
【００３３】
フォワードリンクまたはダウンリンク上で受信されたデータ（つまり、アクセス端末で受信されたデータ）に対しては、そのデータはアンテナ３１０を介して受信され、そして、ラジオスタック３０８で収集される。第１のプロセッサ３０２のファンクションドライバ３１２はそれからラジオスタック３０８からＴｘキュー３１６中にへとデータを転送する。データ集約モジュール３２４およびインテリジェントスケジューラー３２６は選択的に束ねられたまたは集約されたデータパケット（バケットバンドルとも呼ばれる）をもう一つのファクタ（factors）またはパラメータ（parameters）に基づいてＴｘキュー３１６から転送バッファ３０６へと転送する。これらのファクタまたはパラメータは、タイマ３２２のタイムアウト値、Ｔｘキュー３１６のサイズ、一つまたはそれ多くのＴｘキューレベル（例えば、ここにおいて、レベルは、バイト、パケットまたはその他のデータ転送タイプに適切な単位で測れた、キューに含まれるある一定量のデータとして定義されも構わない）、転送バッファ３０６のサイズ、ラジオスタック３０８から期待されるデータレートの一つまたはそれ多くの指標、プロセッサ負荷指標（例えば、第２のプロセッサ３０４の負荷）、または、それの組み合わせを含んでも構わないが、それらには限定されない。インテリジェントスケジューラー３２６が、Ｔｘキュー３１６から読み出され、転送バッファ３０６に書き込まれるべきデータを決定すると、（Ｔｘキュー３１６からの）読み出し動作および（転送バッファ３０６への）書き込み動作が行われ、第２のプロセッサ３０４への割り込み（interrupt）が発生する。インターコネクトドライバ３３８は、割り込みに応じる時に、転送バッファ３０６から集約されたデータパケットを読み出して、Ｒｘキュー３３６中にそのデータを書き込む。ファンクションドライバ３３０はそれからＲｘキュー３３６からデータパケットを読み出し、そして、分離モジュール３３２は、上層に（例えば、最終的にはアプリケーション３４８に）送るために、束ねられたパケットを個々のパケットに分ける。
【００３４】
なお、この例では、割り込み信号伝達経路またはメカニズム（interrupt signaling path or mechanism）３１７は、第１および第２のプロセッサ３０２および３０４の間にあらわれても構わない。他の実施では、転送バッファ３０６からデータを読み出すための時に、異なる技術がプロセッサに実施されても構わない。
【００３５】
同様に、リバースリンクまたはアップリンク上で送信されるデータ（つまり、アクセス端末からアクセスポイントまたは基地局に送信されるデータ）に対しては、そのデータは上層（例えば、アプリケーション３４８）から受信され、Ｔｘキュー３３４中に書き込まれる。データ集約モジュール３４０およびインテリジェントスケジューラー３４２は選択的に束ねられたまたは集約されたデータパケットをもう一つのファクタ（factors）またはパラメータ（parameters）に基づいてＴｘキュー３３４から転送バッファ３０６に転送する。これらのファクタまたはパラメータは、タイマ３３４のタイムアウト値、Ｔｘキュー３３４のサイズ、一つまたはそれ多くのＴｘキューレベル、転送バッファ３０６のサイズ、負荷指標（例えば、第１のプロセッサ３０２の負荷）、アプリケーション３４８から期待されるデータレートの一つまたはそれ多くの指標、または、それの組み合わせを含んでも構わないが、それらには限定されない。インテリジェントスケジューラー３４２が、Ｔｘキュー３３４から読み出され、転送バッファ３０６に書き込まれるべきデータを決定すると、読み出し動作および書き込み動作が行われ、第１のプロセッサ３０２への割り込み（interrupt）が発生する。インターコネクトドライバ３２０は、割り込みに応じる時に、転送バッファ３０６から集約されたデータパケットを読み出して、Ｒｘキュー３１８にそのデータを書き込む。ファンクションドライバ３１２はそれからＲｘキュー３１８からデータパケットを読み出し、そして、分離モジュール３１４は、ラジオスタック３０８に送るために、束ねられたパケットを個々のパケットに分ける。
【００３６】
一フィーチャーによれば、二つのプロセッサ３０２および３０４との間の転送のために、データはＴｘキュー（３３４または３１６）で集約されても構わない。これは、各データパケットがＴｘキュー（３１６または３３４）に到着したとたんにそれを送るというよりも、インテリジェントスケジューラー（３２６および／または３４２）が、Ｔｘキュー（３１６または３３４）に十分に大きな数のパケットが蓄積されるまでデータパケットを蓄積させることである。蓄積されたデータはそれから転送バッファ３０６への転送のために一つのパケットとしてグループ化または束ねられる。
【００３７】
一例によれば、インテリジェントスケジューラー（３２６または３４２）は、いつデータ転送が転送されるべきかを決定するために、低および高キューレベルを利用しても構わない。これらのウォーターマーク（watermark）キューレベルは異なる３Ｇデータレートまたは４Ｇデータレートに対して調整されても構わない。低および高キューレベルは、Ｔｘキュー（３１６または３３４）内に蓄積されたデータパケットをいつ転送バッファ３０６に転送できるかを決定するために、用いられても構わない。例えば、低キューレベルはＴｘキュー（３１６または３３４）内に保持されるべきデータの最小量を示しても構わないとともに、高キューレベルはＴｘキュー内に保持されるべきデータの最大量を示していても構わない。
【００３８】
また、タイマー（３２２または３４４）はまたコンテキスト間の転送の前にデータの集約を促進する（facilitate）ために利用されても構わない。最大タイムアウト値（タイマー３２２または３４４によってトラックされたとき）はＴｘキュー３１６／３３４内にデータが長い間保持されていないと利用されても構わない。一例では、タイムアウト値（タイマー３２２または３４４によってトラックされた）は、タイマタイムアウト値対達成データスループットを描いたグラフ上で変曲点を見つけ出すことにより、実験的（empirically）に決定または調整されても構わない。一つのケースでは、スループットのピーク値は最適タイムアウト値を取得するために用いられ、それは改善されたプロセッサアイドル時間性能（例えば、デュアルプロセッサアーキテクチャ内の第１のプロセッサ３０２および／または第２のプロセッサ３０４に対して）につながる。
【００３９】
図４は、一例に従ったデータ集約のコンセプトを示すブロック図である。送信キュー（transmit queue）４０２は中に複数のデータパケット（データパケットＡ−Ｆ）を例えば先入れ先出し原理で集めて構わない。これは、データパケットが送信キュー４０２に到着したとたんにそれを送るというよりも、プロセッサが複数のデータパケットを集めて、それらをパケットバンドル（packet bundle）４０４に束ねるまたは集約することである。パケットバンドル４０４のサイズおよび／またはパケットバンドル４０４が送信される頻度は、一つまたはそれ多くのトリガに基づいても構わない。例えば、一つまたはそれ多くの頻度は、
（ａ）第１のプロセッサから第２のプロセッサへのパケットバンドルの連続した転送の間の最大値時間に基づいたタイムアウトトリガ、
（ｂ）送信キュー４０２（つまり、データパケットがパケットバンドルに集約されるキュー）に対してのサイズに基づいたキューレベルトリガ、
（ｃ）共有メモリ内の第１のプロセッサと第２のプロセッサとの間にパケットバンドルを転送するために用いられる転送バッファ（つまり、図３のバッファ３０６）の利用または容量に基づいたバッファ使用トリガ、
（ｄ）第２のプロセッサ（つまり、パケットバンドルが転送されるプロセッサ）に対しての処理負荷に基づいた負荷トリガ、および／または
（ｅ）第２のプロセッサが無線ネットワークを介して送信する時のデータレートに基づいた最小データレートトリガを含んでも構わない。
【００４０】
パケットバンドル４０４はそれから一つのコンテキストスイッチで受信キュー４０６に転送される。これは、それぞれ個々のデータパケットを転送するために複数（multiple）のコンテキストスイッチを利用するというよりも、パケットデータがパケットバンドル４０６として（例えば、ファンクションドライバまたはインターコネクトドライバなどのような低レベルファンクションによって）グループ化され、そして、パケットバンドル４０４を受信するために受信プロセッサによって一つのコンテキストスイッチが利用されることである。パケットバンドル４０４は受信キュー４０６で受信され、そして、そのパケットバンドルは個々のデータパケット４０８に展開するために分離される。なお、データパケットを束ねるおよび分離するためのいくつかの動作を取るけれども、このような動作は追加のコンテキストスイッチなしに行うことができるので、転送をより効率的にすることができる。
【００４１】
一例において、データパケットの“束ね（bundling）”は、受信プロセッサがデータパケットを読み出せるように、各データパケットへの一つの適切なポインタとともに、単に、個々のパケットデータを一緒に、または、グループとして（単独のコンテキストスイッチで）転送することを含んでいても構わない。
【００４２】
多くのモバイルオペレーティングシステムは、ＯＥＭドライバレイヤとネイティブ・オペレーティングシステム・コンポーネントとの間にコンテキストスイッチを余儀なくさせることをソフトウエアアーキテクチャに負わし、これは本質的にデータネットワーキング機能性（data networking functionality）に処理オーバーヘッドを加え、そして、コンテキストスイッチング要求を解消するための機会を制限する可能性がある。さらに、第１のプロセッサ３０２と第２のプロセッサ３０４のオペレーティングシステムが異なると、データネットワーキング機能性を実行させるために、異なるオペレーティングシステムのインターフェースを調和させるための追加のステップが要求される可能性があり、それにより、さらにプロセッサにオーバーヘッドを加えることになる。しかしながら、ここに記載されたデータ集約技術はそのようなオペレーティングシステム上での高価なコンテキストスイッチを最小限に抑えることに役立つ。それは、同時に（concurrently）第１のプロセッサ３０２と第２のプロセッサ３０４との間の多重（multiple）パケットのデータ転送のインテリジェントスケジューリングである。別の態様においては、インテリジェントスケジューラーは、第１のプロセッサ、スレッドまたはコンテキストと、第２のプロセッサ、スレッドまたはコンテキストとの間で多重パケットを同時に転送しても構わない。ここに記載したインテリジェントスケジューラーは、プロセッサ間またはプロセス間で同じ量のデータを転送するために必要とされるコンテキストスイッチの数を減らす。
【００４３】
キューレベルおよびタイムアウトタイマ動作
図３を参照すると、インテリジェントスケジューラ（３２６／３４２）の動作の一例によれば、キューレベル（例えば、図４の高レベルおよび低レベル）およびタイムアウトタイマは、Ｔｘキュー（３１６または３３４）内に蓄積されたデータパケットを転送バッファ３０６に転送するためにいつ移動すべきかを決定するために、利用されても構わない。例えば、データ集約モジュール３３８は、転送バッファ３０６への多重パケットデータユニットの束ねられた集約（aggregation）を書き込んでも構わない。たとえ集約キューレベルを引き起こすこと（triggering）がまだ達成されていなくても、書き込みプロセスを引き起こすことによって、低サイズデータ交換（例えば、呼び出しセットのためのデータ）を占めて（account for）そして処理する（handle）ために、タイマ（３２２／３４４）は使用されても構わない。タイマ（３２２／３４４）はまた如何なる最大待ち時間（maximum latency）要求も確実にし、および、これらの待ち時間要求が合致する方法で第１のプロセッサ３０２と第２のプロセッサ３０６との間のデータの流れを確実にしても構わない。
【００４４】
図５は、データ集約のためのタイムアウトタイマおよびキューレベルを利用するためにインテリジェントスケジューラーに使用されても構わない方法を示す。所定量の時間（例えば、Ｘミリ秒）内に受信される期待されるデータの量が最初に決定または取得される５０２。このような決定は、特定の通信アーキテクチャ（例えば、使用されている特定の通信規格およびその特定の規格に対しての典型的なデータレート）に対してのチャンネル特性などのファクタを考慮してなされても構わない。例えば、平均データレートおよび最大データレートが決定または取得されても構わない５０４。高レベルキューレベルを含んでいるより多くのキューレベルの一つは、平均データレートおよび最大データレートに基づいて決定または取得される５０６。これらのキューレベルは、例えば、少なくとも一部は所定の期間（time period）内のラジオスタックから受信される予想される（expected）データの量に基づく、キュー（例えば、Ｔｘキュー）内に格納（store）できるデータの低レベル、高レベルおよび最大レベルであることができる。なお、どのようにキューを満たすかまたは空にするかの他の指標は、特定のアプリケーションのために必要な特定の精度をサポートするために維持されても構わない。
【００４５】
一実施形態では、第１のパケットデータユニット（ＰＤＵ）がＴｘキュー内に入る時に、タイマはどれがタイムアウト値と関連しているのかとスタートする５０８。データはＴｘキュー５１０内に蓄積または集約またはスタックされる。なお、この実施形態では、集約されたデータは、単独の（single）パケットデータユニットからより上の（次の）層のパケットデータユニットに一度に送るよりはむしろプロセス（またはプロセッサ）間で転送されても構わない。タイムアウト値は、キュー深さ、および、一度いっぱいになるとキューコンテンツはフローコントロールが適用される前に送信されてしまうので、ネットワーク側の要素を混雑することまたは過負をかけ過ぎることを避けるための考慮に基づく方式（formula）によって構成されることができる。
【００４６】
一例では、送信キューは、タイムアウト値によって分割された最大のデータレート（ｂｐｓ）と等しくても構わない。別の例では、データレートは時間とともに変わる可能性があるので、転送キューは、最大リンク速度に対しての平均データレートよりも大きくても構わない。しかしながら、メモリはアクセス端末上ではしばしば制限があるので、以下のステップがメモリ制限に対応できる可能性がある。一態様では、タイマは、非常に短い継続期間（例えば、１ミリ秒から２５５ミリ秒のオーダー）のために構成され、そして、プロセッサアイドル時間およびスループットは、タイマタイムアウトのさまざまな値に対して測定される。最大サポートスループット（maximum supported throughput）を維持しながらのレイテンシィ（latency）対低減されたプロセッサ使用の最善のトレードオフはタイムアウト値の理想値を決定する可能性がある。
【００４７】
いくつかのケースでは、プロセッサアイドルは増加する可能性があるが、例えば、タイマしきい値が変動され、対応するスループットが測定される特性プロセスにおいて、実験的（empirically）に決定することができる、あるしきい値にタイムが達した後に、スループットレートは減少する可能性がある。この点で、データパケットのスタッキングまたは集約は、短いデータのバースト、特に、状態情報を維持し、送信および受信されたデータに対応するフィードバックを提供するための措置を有するＴＣＰなどのデータプロトコルに対して適している。一例において、ミリ秒のオーダーの時間（time period）または継続時間（duration）の間のデータパケットのスタッキングはプロセッサ利用において改善を達成し、それにより、プロセッサアイドル時間の改善が結果として起こる。一つの考慮は、以下に詳細に記載されるような小さいサイズのデータ交換（例えば、コネクションセットアップの間の）のためのデータスタッキングの起因する、タイムアウト問題を避けるために、タイムアウト値が通信機プロトコルで仕様で定める最小タイム値よりも小さく構成されることである。別の考慮は、端末相互間（end to end）レイテンシィ要求が、タイムアウト値が全レイテンシィに対して相対的に重要でないようなタイムアウト値の選択に影響する可能性があることである。
【００４８】
タイマがタイムアウト値に到達した時か、または、高キューレベルが到達した時に５１２、だがキューが完全に満たされる前に（例えば、８０％のキューが満たされているなど、所定のパーセンテージが満たされる）、集約されたデータは送信キューから別のプロセッサに転送されることができる５１４。例えば、集約されたデータはそれが別のプロセッサにより取り出される（retrieved）ところから転送バッファに転送され、そして、その後、別のプロセッサ上のより上の層におそらくは集約されたフォームで提供されても構わない。なお、特別の通信規格または特定の通信技術に適合させるために最適なコンフィギュレーションを達成するために、キューレベルおよびタイマ値は異なって構成または調整されることができる。さらに、このプロセスは繰り返されることができ、そして、ファクタ（例えば、タイムアウト値、キューレベルおよびプロセッサ負荷指標）の一つまたはそれ多くの異なるパラメータは異なるデータレートを有する異なる通信技術に対してカスタマイズされても構わない。
【００４９】
デュアルプロセッサアーキテクチャにおける割り込みの低減
ここで述べられるデータパケットの集約スキームはデュアルプロセッサアーキテクチャにおける割り込みを低減し、それにより、そのようなプロセッサの効率は向上することについて言及する。
【００５０】
一コンフィギュレーションでは、第１のプロセッサは中間転送バッファまたは共有メモリデバイスを介して第２のプロセッサにデータを転送しても構わない。従来技術のやり方では、第１のプロセッサは転送バッファに一つのパケットを一度に書き込んでも構わない。例えば、第１のプロセッサの送信キュー内にデータパケットがある時に、インターコネクトドライバは送信キューからデータを読み出し、そして、次に、そのデータパケットを転送バッファに書き込む。第１のプロセッサのインターコネクトドライバによって転送バッファにデータが書き込まれる時はいつでもハードな割り込みが第２のプロセッサに対して生じる。したがって、このやり方は、どんなに小さなパケットであっても転送バッファに置かれる各々パケットに対しては割り込みが生じるので、第２のプロセッサの効率を下げる望ましくない特質を有する。同様に、転送バッファにデータを書き込む時はいつでも第２のプロセッサ上で実行されるインターコネクトドライバは第１のプロセッサに割り込むので、第２のプロセッサから第１のプロセッサに転送されるデータがある時は、第１のプロセッサの効率は下がる。
【００５１】
第１および第２のプロセス間のパケットの転送を改善するために、データ集約が採用される。前述したように、データパケットは一つまたはそれ多くのファクタに基づいて送信プロセッサにより集約され、それから、集約されたデータ（一度の一つまたはそれ多くのパケット）は転送バッファに書き込まれ、それにより、受信プロセッサへの割り込みの数が減少される。例えば、この集約されたデータの転送技術が第１のプロセッサから第２のプロセッサへのデータの転送に採用されると、第２のプロセッサへの割り込みの数が減少され、これにより、第２のプロセッサの効率が高まる。
【００５２】
コンテキストスイッチングの減少
コンテキストスイッチングは、プロセッサが別のプロセスまたはスレッドの動作を行うために、プロセスまたはスレッドをサスペンドまたはストップした時に起こる。例えば、図３では、受信されたデータがインターコネクトドライバからアプリケーションにパスされた時に、コンテキスト１とコンテキスト２との間、コンテキスト２とコンテキスト３との間、および、コンテキスト３とコンテキスト４との間で起こる可能性がある。なお、プロセッサ上で実行されている異なるプロセス間またはスレッド間のスイッチングなどのコンテキストスイッチングはオーバーヘッドを受け、これによりプロセッサのレイテンシィが増加する。したがって、容認できない遅延を導入せずに可能であればコンテキストスイッチングを減らすことは有利である。
【００５３】
上述したように、データ集約は、あるプロセッサから他のプロセッサへの送信を目的として、複数のデータパケットを一つのパケットにグループ化または束ねるために勤めも構わない。すなわち、個々のデータパケットを境界を横切ってあるプロセッサから他のプロセッサに送る（つまり、これにより多重（multiple）コンテキストスイッチおよび／または割り込みを引き起こす）よりもむしろ、集約されたデータパケットが一緒に送られる（これにより、一つだけのコンテキストスイッチまたは割り込みを引き起こす）。このように集約されたデータは単独の（single）コンテキストスイッチを要求または利用するので、複数のコンテキストスイッチで個々のデータパケットを転送する代わりに、データの束が実体（entities）間で転送される。別の言い方をすれば、一定量のデータを転送するために用いられるコンテキストスイッチの数は、ここに述べたデータ集約技術によって低減される。
【００５４】
別のアプローチでは、コンテキストスイッチングを減らすための別の方法でホールドオフ信号メカニズム（hold-off signal mechanism）を使用する。例えば、データのオリジネータ（originator）（例えば、転送または送るデータを有するスレッドまたはプロセッサ）は、ホールドオフ信号をデータのレシーバに送ることができる。ホールドオフ信号は、レシーバ（例えば、スレッドまたはプロセスを受信すること）に、所定量のデータが蓄積される（例えば、格納先（例えば、格納キュー）に書き込む）までは、特定の記憶域（memory location）から読み出さないように指示する。このようにして所定量のデータを処理するためのコンテキストスイッチの数は複数の（multiple）パケットを単独の（single）コンテキストスイッチで処理することにより低減される。
【００５５】
なお、シグナリング（signaling）は、下記のような境界の異なるサイドに存在する実体（例えば、プロセス、スレッド、ドライバなど）間の所定の境界（例えば、アプリケーション・プログラミング・インターフェース（ＡＰＩ））を利用することにより、境界（例えば、図３のプロセッサ３０２および３０４の間）を横切って、実行することができる。
【００５６】
別のデータ集約例
図６は、データ集約を行うために適用されても構わないデュアルプロセッサアーキテクチャの別の例を示している。デュアルプロセッサアーキテクチャ６００は、図３のそれと似ており、そして、第１のプロセッサ６０２および第２のプロセッサ６０４を含んでいても構わない。第１のプロセッサ６０２および第２のプロセッサ６０４は転送バッファ６０６（例えば、共有メモリなど）を用いてデータを交換しても構わない。第１のプロセッサ６０２はラジオスタック６０８および無線ネットワークを介してデータを受信および送信するためのアンテナ６１０に結合されても構わない。
【００５７】
この例では、データ集約は、インターコネクトドライバ６２０／６３８よりはむしろそれぞれ第１および第２のプロセッサ６０２／６０４のファンクションドライバ６１２／６３０によりコントロールされる。
【００５８】
第１のプロセッサ６０２は、ファンクションドライバ６１２、送信（Ｔｘ）キュー６１６、受信（ＲＸ）キュー６１８および／またはインターコネクトドライバ６２０を含んでいてもまたは実行しても構わない。ファンクションドライバ６１２は、データ集約モジュール６２４、分離モジュール６１４、タイマ６２２および／またはインテリジェントスケジューラー６２６を含んでいてもまたは実行しても構わない。
【００５９】
第２のプロセッサ６０４は、ファンクションドライバ６３０、送信（Ｔｘ）キュー６３４、受信（ＲＸ）キュー６３６、インターコネクトドライバ６３８、オペレーティングシステムネットワーキングスタック６４６および／または一つまたはそれ多くのアプリケーション６４８を含んでいてもまたは実行しても構わない。ファンクションドライバ６３０は、データ集約モジュール６４０、分離モジュール６３２、インテリジェントスケジューラー６４２および／またはタイマ６４４を含んでいてもまたは実行しても構わない。
【００６０】
第１のプロセッサ６０２および第２のプロセッサ６０４として示された要素および／またはモジュールは、各プロセッサ内で動作している機能コンポーネントでも構わないし、および／または、他のコンポーネントに結合されていても構わない。
【００６１】
フォワードリンクまたはダウンリンク上で受信されたデータ（つまり、アクセス端末で受信されたデータ）に対しては、そのデータはアンテナ６１０を介して受信され、そして、ラジオスタック６０８で収集される。第１のプロセッサ６０２のファンクションドライバ６１２はそれからラジオスタック６０８からＴｘキュー６１６中にデータを転送する。すなわち、データ集約モジュール６２４はＴｘキュー６１６中にデータを束ねるまたは集約しても構わないし、そして、インテリジェントスケジューラー６２６は、もう一つのファクタ（factors）またはパラメータ（parameters）に基づいて、集約されたデータがいつ転送バッファ６０６に転送されるべきかをインターコネクトドライバ６２０に指示しても構わない。これらのファクタまたはパラメータは、タイマ６２２のタイムアウト値、Ｔｘキュー６１６のサイズ、一つまたはそれ多くのＴｘキューレベル、転送バッファ６０６のサイズ、ラジオスタック６０８から期待されるデータレートの一つまたはそれ多くの指標、プロセッサ負荷指標（例えば、第２のプロセッサ６０４の負荷）、または、それの組み合わせを含んでも構わないが、それらには限定されない。インテリジェントスケジューラー６２６が、Ｔｘキュー６１６から読み出され、転送バッファ６０６に書き込まれるべきデータを決定すると、それはインターコネクトドライバ６２０に（Ｔｘキュー６１６からの）読み出し動作および（転送バッファ６０６への）書き込み動作を行うように指示する。第２のプロセッサ６０４への割り込み（interrupt）が発生する。インターコネクトドライバ６３８は、割り込みに応じる時に、転送バッファ６０６から集約されたデータパケットを読み出して、Ｒｘキュー６３６中にそのデータを書き込む。ファンクションドライバ６３０はそれからＲｘキュー６３６からデータパケットを読み出し、そして、分離モジュール６３２は、上層に（例えば、最終的にはアプリケーション６４８に）送るために、束ねられたパケットを個々のパケットに分ける。
【００６２】
同様に、リバースリンクまたはアップリンク上で送信されるデータ（つまり、アクセス端末からアクセスポイントまたは基地局に送信されるデータ）に対しては、そのデータは上層（例えば、アプリケーション６４８）から受信され、Ｔｘキュー６３４中に書き込まれる。この実行においては、ファンクションドライバ６３０は、データ集約をコントロールし、そして、Ｔｘキュー６３４中から転送する。すなわち、データ集約モジュール６４０はＴｘキュー６３４中にデータを束ねるまたは集約しても構わないし、そして、インテリジェントスケジューラー６４２は、もう一つのファクタ（factors）またはパラメータ（parameters）に基づいて、集約されたデータをいつ転送バッファ６３４から転送バッファ６０６に転送するべきかをインターコネクトドライバ６３８に指示しても構わない。これらのファクタまたはパラメータは、タイマ６６４のタイムアウト値、Ｔｘキュー６３４のサイズ、一つまたはそれ多くのＴｘキューレベル、転送バッファ６０６のサイズ、負荷指標（例えば、第１のプロセッサ６０２の負荷）、アプリケーション６４８から期待されるデータレートの一つまたはそれ多くの指標、または、それの組み合わせを含んでも構わないが、それらには限定されない。インテリジェントスケジューラー３４２が、Ｔｘキュー６３４から読み出され、転送バッファ６０６に書き込まれるべきデータを決定すると、それはインターコネクトドライバ６３８にＴｘキュー６３４からの読み出し動作および転送バッファ６０６への書き込み動作を行うように指示する。第１のプロセッサ６０２への割り込み（interrupt）もまた発生する。インターコネクトドライバ６２０は、割り込みに応じる時に、転送バッファ６０６から集約されたデータパケットを読み出して、Ｒｘキュー６１８中にそのデータを書き込む。ファンクションドライバ６１２はそれからＲｘキュー６１８からデータパケットを読み出し、そして、分離モジュール６１４は、ラジオスタック６０８に送るために、束ねられたパケットを個々のパケットに分ける。
【００６３】
一フィーチャーによれば、二つのプロセッサ６０２および６０４との間の転送のために、データはＴｘキュー（６３４または６１６）で集約されても構わない。これは、各個別のデータパケットがＴｘキュー（６１６または６３４）に到着したとたんにそれを送るというよりも、インテリジェントスケジューラー（６２６および／または６４２）が、Ｔｘキュー（６１６または６３４）に十分に大きな数のパケットが蓄積されるまでデータパケットを蓄積させることである。蓄積されたデータはそれから転送バッファ６０６への転送のために一つのパケットとしてグループ化または束ねられた。
【００６４】
一例によれば、インテリジェントスケジューラー（６２６または６４２）は、いつデータ転送が転送されるべきかを決定するために、低および高キューレベルを利用しても構わない。これらのウォーターマーク（watermark）キューレベルは異なる３Ｇデータレートまたは４Ｇデータレートに対して調整されても構わない。低および高キューレベルは、Ｔｘキュー（６１６または６３４）内に蓄積されたデータパケットをいつ転送バッファ６０６に転送できるかを決定するために、用いられても構わない。例えば、低キューレベルはＴｘキュー（６１６または６３４）内に保持されるべきデータの最小量を示しても構わないとともに、高キューレベルはＴｘキュー内に保持されるべきデータの最大量を示していても構わない。
【００６５】
また、タイマー（６２２または６４４）はまたコンテキスト間の転送の前にデータの集約を促進するために利用されても構わない。最大タイムアウト値（タイマ６２２または６４４によってトラックされたとき）はＴｘキュー６１６／６３４内にデータが長い間保持されていないと利用されても構わない。一例では、タイムアウト値（タイマ６２２または６４４によってトラックされた）は、タイマタイムアウト値対達成データスループットを描いたグラフ上で変曲点を見つけ出すことにより、実験的（empirically）に決定または調整されても構わない。一つのケースでは、スループットのピーク値は最適タイムアウト値を取得するために用いられ、それは改善されたプロセッサアイドル時間性能（例えば、デュアルプロセッサアーキテクチャ内の第１のプロセッサ６０２および／または第２のプロセッサ６０４に対して）につながる。
【００６６】
図７は、第１のプロセッサ７０２および第２のプロセッサ７０４を含み、そして、共有メモリ７０６を用いてその二つのプロセッサ間のデータパケットを効率よく転送するように適合されたデバイスを示すブロック図である。デバイス７００は、例えば、無線通信デバイスなどのアクセス端末でも構わない。第１のプロセッサ７０２は、通信インターフェース７１４に結合された処理回路７０８を含んでも構わない。処理回路７０８は、お互いの間でデータを転送するために送信キュー７１６および／または受信キュー７１８を利用しても構わないファンクションドライバ７１０およびインターコネクトドライバ７１２を含んでもまたは実行しても構わない。なお、送信キュー７１６および受信キュー７１８は、第１のプロセッサ７０２内で実行されても構わなく、外部メモリデバイス内、または共有メモリ７０６内でも行われても構わない。同様に、第２のプロセッサ７０４は、通信インターフェース７２６に結合された処理回路７２０を含んでも構わない。処理回路７２０は、お互いの間でデータを転送するために送信キュー７３０および／または受信キュー７２８を利用しても構わないファンクションドライバ７２２およびインターコネクトドライバ７２４を含んでもまたは実行しても構わない。なお、送信キュー７３０および受信キュー７２８は、第２のプロセッサ７０４内で実行されても構わなく、外部メモリデバイス内、または共有メモリ７０６内でも行われても構わない。
【００６７】
一フィーチャーによれば、処理回路７０８は、（ａ）データパケットをパケットバンドルに集約するように、および／または、（ｂ）パケットバンドルを共有メモリ７０６を介して第２のプロセッサ７０４に転送する時に、パケットバンドルを単独の（single）コンテキストスイッチで処理するように適合されても構わなく、ここにおいて、第１のプロセッサ７０４の処理負荷はパケットバンドルへのデータパケットの集約によって低減される。なお、第１のプロセッサ７０２は、複数の（multiple）層を横断してファンクション（functions）を実行し、そして、ファンクション間でコンテキストスイッチングを行っても構わない。処理回路７０２は、送信キュー７１６および受信キュー７１８を介してお互いの間でデータを転送するファンクションドライバ７１０およびインターコネクトドライバ７１２を実行しても構わない。この例では、ファンクションドライバ７１０とインターコネクトドライバ７１４との間でデータパケットを転送するために多重（multiple）コンテキストスイッチを利用するよりもむしろパケットバンドルを転送するために単独の（single）コンテキストスイッチ（例えば、コンテキストＡからコンテキストＢへ）が用いられても構わなく、これにより第１のプロセッサ７０２の処理負荷は低減する。なお、パケットバンドルの使用はまた第２のプロセッサ７０２でのファンクションドライバ７２２とインターコネクトドライバ７２４との間の単独の（single）コンテキストスイッチ（例えば、コンテキストＣからコンテキストＤ、または、コンテキストＤからコンテキストＣ）の使用を可能とする。
【００６８】
一実施形態では、インターコネクトドライバ７１２は、送信キュー７１６内のデータパケットの集約をコントロールし、そして、第２のプロセッサ７０４へのパケットバンドルの転送をスケジュールしても構わない。他の実施形態では、ファンクションドライバ７１０は、送信キュー７１６内の集約されたデータパケットをコントロールし、そして、第２のプロセッサ７０４への集約されたパケットバンドルの転送をスケジュールしても構わない。なお、ファンクションドライバ７２２および／またはインターコネクトドライバ７２４でデータパケット集約を命令すること（directing）またはコントロールすることの利点は、集約がオペレーティングシステムの低いレベルまたは層で起こることである。その結果として、そのような集約は、より高いレベルであるところのアプリケーションおよび／またはネットワーキングスタックにトランスペアレントである。
【００６９】
送信キュー７１６および受信キュー７１８は共有メモリ７０６内で実行されても構わなく、または、第１のプロセッサ７０８内で実行されても構わない。
【００７０】
一フィーチャーによれば、処理回路７０８は、（ａ）第２のプロセッサ７０４から共有メモリ７０６を介してパケットバンドルを単独の（single）コンテキストスイッチで取得するように、ここにおいて、パケットバンドルは集約されたデータパケットを含んでいる、および／または、（ｂ）パケットバンドルを複数のデータパケットに分離するように適合されても構わなく、ここにおいて、第１のプロセッサ７０２の処理負荷は第２のプロセッサ７０４によるパケットバンドルへのデータパケットの集約によって低減される。一例では、処理回路は、第２のプロセッサ７０４からデータバンドルが転送されると指示している割り込みを、受けるように適合されても構わない。第２のプロセッサ７０４の処理負荷は、パケットバンドルへのデータパケットの集約によって低減される。
【００７１】
その結果として、アクセス端末は第１のプロセッサ７０２、第２のプロセッサ７０４および共有メモリ７０６を具備して提供されても構わない。第１のプロセッサ７０２はパケットバンドルへと複数のデータパケットを集約するように適合されても構わない。共有メモリは第１のプロセッサに結合されても構わなく、そして、第２のプロセッサ７０４にパケットバンドルを転送するために第１のプロセッサにより用いられても構わなく、ここにおいて、パケットバンドルの転送は第２のプロセッサ７０４により単独の（single）コンテキストスイッチで行われる。第２のプロセッサ７０４は共有メモリに結合されても構わなく、そして、共有メモリからパケットバンドルを取得し、そして、個々のデータパケットへとパケットバンドルを分離しても構わなく、ここにおいて、第２のプロセッサ７０４の処理負荷は、第１のプロセッサ７０２によるパケットバンドルへのデータパケットの集約によって低減される。
【００７２】
また、第２のプロセッサ７０４は、さらに、第２のパケットバンドルへと第２の複数のデータパケットを集約し、そして、共有メモリ７０６を用いて第２のプロセッサ７０４から第１のプロセッサ７０２に第２のパケットバンドルを転送するように適合されても構わなく、ここにおいて、パケットバンドルの転送は第２のプロセッサ７０４により単独の（single）コンテキストスイッチで行われる。第１のプロセッサ７０２は、さらに、第１のプロセッサ７０２で個々のデータパケットへと第２のパケットバンドルを分離しても構わなく、ここにおいて、第１のプロセッサ７０２の処理負荷は、第２のプロセッサ７０４によるパケットバンドルへのデータパケットの集約によって低減される。
【００７３】
なお、ここに述べたデータ集役技術はマルチ-プロセッサシステム、回路またはデバイス内で実行されても構わない。したがって、このようなデータ集約はＮ個のプロセッサの間で行われても構わなく、ここにおいて、Ｎは２以上である。
【００７４】
図８は、第２のプロセッサに束ねられたデータを転送するための第１のプロセッサ内で使用可能な（operational）方法を示している。第１のプロセッサはパケットバンドルへとデータパケットを集約しても構わない８０２。共有メモリを介して第２のプロセッサへとパケットバンドルを転送する時に、パケットバンドルは単独の（single）コンテキストスイッチで処理されても構わなく、ここにおいて、第１のプロセッサの処理負荷はパケットバンドルへのデータパケットの集約によって低減される０８４。第１のプロセッサは、第２のプロセッサへとデータバンドルが転送されていることを指示している割り込みを、発生しても構わない８０６。第２のプロセッサの処理負荷はパケットバンドルへのデータパケットの集約によって低減される可能性がある。パケットバンドルへとデータパケットを集約することはまた第１のプロセッサおよび／または第２のプロセッサでのコンテキストスイッチングを低減する。例えば、同じ量のデータパケットに対して第１のプロセッサによってより少ないデータ転送動作が行われる、パケットバンドルへのデータパケットの集約によって、第１のプロセッサでのコンテキストスイッチングは低減される可能性がある。コンテキストスイッチはマルチファンクション（multiple functions）による処理リソースのインターリーブ共有（interleaved sharing）でも構わない。
【００７５】
パケットバンドルは一つまたは複数のトリガの発生で第２のプロセッサに転送されても構わなく、ここにおいて、一つまたは複数のトリガは少なくとも、
（ａ）前記第１のプロセッサから前記第２のプロセッサへのパケットバンドル（packet bundles）の連続した転送間の最大値時間（maximum amount time）に基づいたタイムアウトトリガ、
（ｂ）前記データパケットが前記パケットバンドルに集約されるところの送信キューのためのサイズに基づいたキューレベルトリガ、
（ｃ）前記第１のプロセッサと前記第２のプロセッサとの間で前記パケットバンドルを転送するために用いられる前記共有メモリ内の転送バッファの利用に基づいたバッファ使用トリガ、
（ｄ）第２のプロセッサに対しての処理負荷に基づいた負荷トリガ、または
（ｅ）前記第２のプロセッサが無線ネットワークを介して送信するところのデータレートに基づいた最小データレートトリガを含む。
【００７６】
一例によれば、第１のプロセッサは複数の層を横断してファンクション（functions）を実行し、そして、ファンクション間でコンテキストスイッチングを行っても構わない。ファンクションは、送信キューおよび受信キューを介してお互いの間でデータを転送するファンクションドライバおよびインターコネクトドライバを含んでも構わない。一実施形態では、インターコネクトドライバは、送信キュー内のデータパケットの集約をコントロールし、そして、第２のプロセッサへのパケットバンドルの転送をスケジュールしても構わない。他の例では、ファンクションドライバは、送信キュー内のデータパケットの集約をコントロールし、そして、第２のプロセッサへのパケットバンドルの転送をスケジュールしても構わない。
【００７７】
図９は、第２のプロセッサへの束ねられたデータを受信するための第１のプロセッサ内で使用可能な（operational）方法を示している。第１のプロセッサは、第２のプロセッサからデータバンドルが転送されていることを指示している割り込みを、受信しても構わない９０２。このような割り込みに応えて、第１のプロセッサは、単独の（single）コンテキストスイッチで、第２のプロセッサから共有メモリを介してパケットバンドルを取得しても構わなく、ここにおいて、パケットバンドルは集約されたデータパケットを含んでいる９０４。第１のプロセッサは、それから、パケットバンドルを複数のデータパケットに分離しても構わなく、ここにおいて、第１のプロセッサの処理負荷は第２のプロセッサによるパケットバンドルへのデータパケットの集約によって低減される９０６。第２のプロセッサの処理負荷もまた、パケットバンドルへのデータパケットの集約によって低減される。第１のプロセッサは複数の層を横断してファンクション（functions）を実行し、そして、ファンクション間でコンテキストスイッチングを行っても構わなく、そして、ファンクションは、送信キューおよび受信キューを介してお互いの間でデータを転送するファンクションドライバおよびインターコネクトドライバを含んでいる。
【００７８】
図１０は、デュアルプロセッサ間でデータパケットをより効率的に転送するためのデュアルプロセッサアクセス端末内で使用可能な（operational）方法を示している。第１のフィーチャーによれば複数のデータパケットは第１のプロセッサでパケットバンドルに集約されても構わない１００２。第１のプロセッサはそれから共有メモリを用いてパケットバンドルを第２のプロセッサに転送し、ここにおいて、パケットバンドルの転送は第１のプロセッサでの単独の（single）コンテキストスイッチで行われる１００４。第１のプロセッサは生成しても構わなく、第２のプロセッサは第１のプロセッサからパケットバンドルが転送されていることを指示している割り込みを受信しても構わなく、ここにおいて、第２のプロセッサでの割り込みの数は第１のプロセッサでのデータパケットの集約によって低減される１００６。第２のプロセッサはそれからパケットバンドルを個々のデータパケットに分離しても構わなく、ここにおいて、第２のプロセッサの処理負荷は、第１のプロセッサによるパケットバンドルへのデータパケットの集約によって低減される１００８。なお、一実施形態では、第１のプロセッサではアプリケーションプロセッサでも構わなく、そして、第２のプロセッサはモデムプロセッサでも構わなく、両方のプロセッサは無線通信デバイス内で動作する。他の実施形態では、第２のプロセッサはアプリケーションプロセッサでも構わなく、そして、第１のプロセッサは無線通信デバイスとともに動作するモデムプロセッサでも構わない。
【００７９】
さらに別のフィーチャーは、パケットバンドルは一つまたは複数のトリガの発生で第２のプロセッサに転送されても構わない。一つまたは複数のトリガは少なくとも、
（ａ）第１のプロセッサから第２のプロセッサへのパケットバンドルの連続した転送の間の最大値時間に基づいたタイムアウトトリガ、
（ｂ）データパケットがパケットバンドルに集約される送信キューに対してのサイズに基づいたキューレベルトリガ、
（ｃ）共有メモリ内の第１のプロセッサと第２のプロセッサとの間にパケットバンドルを転送するために用いられる転送バッファの利用に基づいたバッファ使用トリガ、
（ｄ）第２のプロセッサに対しての処理負荷に基づいた負荷トリガ、または
（ｅ）第２のプロセッサが無線ネットワークを介して送信する時のデータレートに基づいた最小データレートトリガを含んでも構わない。
【００８０】
第１のプロセッサおよび第２のプロセッサはそれぞれ複数の層を横断してファンクション（functions）を実行しも構わなく、そして、第１および第２のプロセッサそれぞれでのファンクションは、送信キューおよび受信キューを介してお互いの間でデータを転送するファンクションドライバおよびインターコネクトドライバを含んでも構わない。第１の例では、インターコネクトドライバは、送信キュー内のデータパケットの集約をコントロールし、そして、第２のプロセッサへのパケットバンドルの転送をスケジュールしても構わない。第２の例では、ファンクションドライバは、送信キュー内のデータパケットの集約をコントロールし、そして、第２のプロセッサへのパケットバンドルの転送をスケジュールしても構わない。
【００８１】
前記方法は、第２のプロセッサで第２の複数のデータパケットを第２のパケットバンドルに集約することをさらに具備しても構わない１０１０。第２のプロセッサはそれから共有メモリを用いて第２のプロセッサから第１のプロセッサに第２のパケットバンドルを転送され、ここにおいて、パケットバンドルの転送は第２のプロセッサ７０４で単独の（single）コンテキストスイッチで行われる１０１２。第２のプロセッサはそれから生成しても構わなく、そして、第１のプロセッサは第２のプロセッサからパケットバンドルが転送されていることを指示している割り込みを受信しても構わなく、ここにおいて、第１のプロセッサでの割り込みの数は第２のプロセッサでの第２のデータパケットの集約によって低減される１０１４。第１のプロセッサはそれから第２のパケットバンドルを個々のデータパケットに分離しても構わなく、ここにおいて、第１のプロセッサの処理負荷は、第２のプロセッサによる第２のパケットバンドルへのデータパケットの集約によって低減される１０１６。
【００８２】
なお、一般に、ここに記載した処理の多くは類似の方法で実施しても構わないことに認知するべきである。如何なる回路（単数または複数）または回路セクション（sections）は、単独でも、または、一つまたは複数のプロセッサを有する集積回路の一部との組合で実施されても構わない。一つまたは複数の回路は、集積回路、Advance RISC Machine（ＡＲＭ）プロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、一般用途プロセッサなど上で実施されても構わない。
【００８３】
また、実施形態は、フローチャート、流れ図、構造図またはブロック図で描かれたプロセスで表現されても構わないことを指摘しておく。フローチャートは順次的なプロセスで記載されているが、多くの動作（operations）は並行または同時に行われても構わない。さらに、動作の順序は並べ替えても構わない。プロセスはその動作を完了したら終了する。プロセスは、方法（method）、機能（function）、手続（procedure）、サブルーチン、サブブログラムなどに対応しても構わない。プロセスが機能に対応している時には、その終了は呼び出し機能（calling function）またはメイン機能への機能のリターンに対応する。
【００８４】
本願中で使用されているように、用語“コンポーネント”、“モジュール”、“システム”などは、ハードウエア、ファームウェア、ハードウエアとソフトウエアの組合せ、ソフトウエア、または、実行中のソフトウエアのいずれかのコンピュータ関係の構成要素（entity）のことを指すことを意図している。例えば、コンポーネントは、プロセッサ上で実行中のプロセス、プロセッサ、オブジェクト、実行ファイル（executable）、実行のスレッド（thread of execution）、プログラム、および／またはコンピュータであっても構わないが、それらには限定されない。例として、コンピュータ・デバイス（computing device）上で実行中のアプリケーションおよびコンピュータ・デバイスの両方は、コンポーネントにすることができる。一つまたは複数のコンポーネントは、プロセスおよび／または実行のスレッド内に駐在する（resident）ことができ、そして、コンポーネントは一つのコンピュータ上にローカライズおよび／または二つ以上のコンピュータ間に分散されていても構わない。さらに、これらのコンポーネントは、さまざまなデータ構造が記憶されている、さまざまなコンピュータ読取り可能媒体から実行できる。コンポーネント（components）はローカルおよび／または一つまたは複数のデータパケット（例えば、ローカルシステム内の別のコンポーネントと情報をやりとりするコンポーネントからのデータ、分散システム内の別のコンポーネントと情報をやりとりするコンポーネントからのデータ、および／または、下記の信号を手段として別のシステムでのインターネット（the Internet）などのネットワークを横切ったデータ）を有する信号に従うなどのリモートプロセスを経由して通信しても構わない。
【００８５】
さらに、記憶媒体は、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイスおよび／または情報を記憶するための他の機械読み出し可能媒体を含む、データを記憶するための一つまたは複数のデバイスをあらわしていても構わない。用語“機械読み出し可能媒体”は、ポータブルまたは固定記憶デバイス、光学記憶デバイス、無線チャネル（wireless channels）、および、指令（instruction(s)）および／またはデータを記憶し、含み、または、運ぶことができるさまざまな他の媒体を含むが、それらには限定されない。
【００８６】
さらに、実施形態は、ハードウエア、ソフトウエア、ファームウェア、ミドルウェア、マイクロコード、またはこれらの如何なる組合せで実行されても構わない。ソフトウエア、ファームウェア、ミドルウェハアまたはマイクロコードで実行される時、必要なタスクを行うためのプログラムコードまたはコードセグメントは、記憶媒体または他の記憶装置（storage）などの機械読み出し可能媒体に記憶されても構わない。プロセッサは必要なタスクを行っても構わない。コードセグメントは、プロシージャ、ファンクション、サブブログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウエアパッケージ、クラス、または、指令（instructions）、データ構造（data structures）もしくはプログラムセグメントの如何なる組合せをあらわしていても構わない。コードセグメントは、情報、データ、引数、パラメータまたはメモリコンテンツ（memory contents）をパスしておよび／または受け取ることによって、別のコードセグメントまたはハードウエア回路に結合されても構わない。情報、引数、パラメータ、データなどは、メモリ共有、メッセージ・パッシング、トークンパッシング、ネットワーク送信などの如何なる適切な手段を介して、パスされ、転送（forward）され、または、送信されても構わない。
【００８７】
図に示された一つまたは複数のコンポーネント、ステップおよび／またはファンクションは、単独の（single）コンポーネント、ステップまたはファンクションに、再配置されおよび／または結合されても、または、いくつかのコンポーネント、ステップまたはファンクションで実施されても構わない。追加の構成要素、コンポーネント、ステップおよび／またはファンクションもまた本発明を逸脱することなく加えても構わない。図に示された装置、デバイスおよび／またはコンポーネントは、図に示された一つまたは複数の方法、フィーチャーまたはステップを行うように構成されても構わない。いくつかの実施においては、本明細書に記載された新規なアルゴにズムはソフトウエアおよび／または組み込まれたハードウエアにて効果的に実施することが可能である。
【００８８】
当業者は、本明細書にて開示された実施形態に関係して記述されたさまざまな例示的なロジックブロック、モジュール、回路およびアルゴリズムステップは、電子的ハードウエア、コンピュータソフトウエアまたはそれらの組合せとして実施されても構わない。このハードウエアとソフトウエアとの互換性を明瞭に説明するために、上記では、一般に、さまざまな例示的なコンポーネント、ブロック、モジュール、回路およびステップはそれらの機能（functionality）の点からみて記述した。このような機能は、全システムに負わされる特定の用途および設計制約に基づいて、ハードウエアまたはソフトウエアとして実施される。
【００８９】
本明細書に記述された種々の特徴は、本発明を逸脱することなく、異なるシステム（systems）内で実施することができる。上述の実施形態はただ単に例であり、現手的に解釈されるべきないことに留意すべきである。実施形態の記述は例示を意図しており、特許請求の範囲を限定することは意図していない。そのようなこととして、本教示は他のタイプの装置および他の多くの代替物に容易に適用でき、変更および変形は当業者であれば明確であろう。
［付記１］
第２のプロセッサにデータを転送するために第１のプロセッサ内で使用可能な（operational）方法であって、前記方法は、
パケットバンドル（a packet bundle）へデータパケット（data packets）を集約すること（aggregating）；および
前記パケットバンドルを共有メモリを介して前記第２のプロセッサに転送する時に、単独の（single）コンテキストスイッチで前記パケットバンドルを処理すること、ここにおいて、前記第１のプロセッサの処理負荷は、前記パケットバンドルへの前記データパケットの前記集約により低減される、を具備する方法。
［付記２］
請求項１の方法において、前記第２のプロセッサの処理負荷は、前記パケットバンドルへの前記データパケットの前記集約により低減される。
［付記３］
請求項１の方法において、前記パケットバンドルへ前記データパケットを集約することは、前記第２のプロセッサでのコンテキストスイッチングをも低減する。
［付記４］
請求項１の方法において、コンテキストスイッチは、マルチファンクション（multiple functions）による処理リソースのインターリーブ共有（interleaved sharing）である。
［付記５］
請求項１の方法において、同じ量のデータパケットに対して前記第１のプロセッサによってより少ないデータ転送動作が行われるように、パケットバンドルへ前記データパケットを集約することによって、前記第１のプロセッサでのコンテキストスイッチングは低減される。
［付記６］
請求項１の方法において、前記パケットバンドルは一つまたは複数のトリガの発生で第２のプロセッサに転送され、ここにおいて、前記一つまたは複数のトリガは少なくとも、
（ａ）前記第１のプロセッサから前記第２のプロセッサへのパケットバンドル（packet bundles）の連続した転送間の最大値時間（maximum amount time）に基づいたタイムアウトトリガ、
（ｂ）前記データパケットが前記パケットバンドルに集約される送信キューのためのサイズに基づいたキューレベルトリガ、
（ｃ）前記共有メモリ内の前記第１のプロセッサと前記第２のプロセッサとの間に前記パケットバンドルを転送するために用いられる転送バッファの利用に基づいたバッファ使用トリガ、
（ｄ）前記第２のプロセッサに対しての処理負荷に基づいた負荷トリガ、または
（ｅ）前記第２のプロセッサが無線ネットワークを介して送信するところのデータレートに基づいた最小データレートトリガ
を含む。
［付記７］
請求項１の方法において、前記第１のプロセッサは、複数の層を横断してファンクション（functions）を実行し、そして、前記ファンクション間でコンテキストスイッチングを行う。
［付記８］
請求項７の方法において、前記ファンクションは、送信キューおよび受信キューを介してお互いの間でデータを転送するファンクションドライバおよびインターコネクトドライバを含む。
［付記９］
請求項８の方法において、前記インターコネクトドライバは、前記送信キュー内の前記データパケットの前記集約をコントロールし、そして、前記第２のプロセッサへの前記パケットバンドルの前記転送をスケジュールする。
［付記１０］
請求項８の方法において、前記ファンクションドライバは、前記送信キュー内の前記データパケットの前記集約をコントロールし、そして、前記第２のプロセッサへの前記パケットバンドルの前記転送をスケジュールする。
［付記１１］
第１のプロセッサであって、
第２のプロセッサとデータを交換するための通信インターフェース；
前記通信インターフェースに結合された処理回路；ここにおいて、前記処理回路は、
データパケット（data packets）をパケットバンドルに集約するように適合されている、および
前記パケットバンドルを共有メモリを介して前記第２のプロセッサに転送する時に、単独の（single）コンテキストスイッチで前記パケットバンドルを処理するように適合されている、ここにおいて、前記第１のプロセッサの処理負荷は、前記パケットバンドルへの前記データパケットの前記集約により低減される
を具備する第１のプロセッサ。
［付記１２］
請求項１１のプロセッサにおいて、前記第１のプロセッサは、複数の層を横断してファンクション（functions）を実行し、そして、前記ファンクション間でコンテキストスイッチングを行う。
［付記１３］
請求項１１の方法において、前記処理回路は、送信キューおよび受信キューを介してお互いの間でデータを転送するファンクションドライバおよびインターコネクトドライバを実行する。
［付記１４］
請求項１３の方法において、前記インターコネクトドライバは、前記送信キュー内の前記データパケットの前記集約をコントロールし、そして、前記第２のプロセッサへの前記パケットバンドルの前記転送をスケジュールする。
［付記１５］
請求項１３のプロセッサにおいて、前記ファンクションドライバは、前記送信キュー内の前記データパケットの前記集約をコントロールし、そして、前記第２のプロセッサへの前記集約されたデータの前記転送をスケジュールする。
［付記１６］
請求項１１のプロセッサにおいて、前記送信キューおよび受信キューは前記共有メモリ内で実行される。
［付記１７］
請求項１１のプロセッサにおいて、前記送信キューおよび受信キューは前記第１のプロセッサ内で実行される。
［付記１８］
第１のプロセッサであって、
第２のプロセッサとデータを交換するための手段；
前記データパケットをパケットバンドルに集約するための手段；および
前記パケットバンドルを共有メモリを介して前記第２のプロセッサに転送する時に、単独の（single）コンテキストスイッチで前記パケットバンドルを処理するための手段、ここにおいて、前記第１のプロセッサの処理負荷は、前記パケットバンドルへの前記データパケットの前記集約により低減される
を具備する第１のプロセッサ。
［付記１９］
機械読み取り可能な媒体であって、第２のプロセッサとデータを交換するための、第１のプロセッサ上で使用可能な（operational）命令（instructions）を具備し、一つまたは複数のプロセッサで実行された時に、該プロセッサに対して、
データパケット（data packets）をパケットバンドルに集約させる；および
前記パケットバンドルを共有メモリを介して前記第２のプロセッサに転送する時に、単独の（single）コンテキストスイッチで前記パケットバンドルを処理させる、ここにおいて、前記第１のプロセッサの処理負荷は、前記パケットバンドルへの前記データパケットの前記集約により低減される
機械読み取り可能な媒体。
［付記２０］
第２のプロセッサからデータ転送（data transfers）を受け取るために第１のプロセッサ内において使用可能な（operational）方法であって、
前記第２のプロセッサから共有メモリを介してパケットバンドルを単独の（single）コンテキストスイッチで取得すること、ここにおいて、前記パケットバンドルは集約されたデータパケットを含んでいる；および
前記パケットバンドルを複数のデータパケットに分離すること（unbundling）、ここにおいて、前記第１のプロセッサの処理負荷は、前記第２のプロセッサによる前記パケットバンドルへの前記データパケットの前記集約により低減される
を具備する方法。
［付記２１］
請求項２０の方法は、前記第２のプロセッサから前記データパケットが転送されていることを指示している割り込みを受け取ることをさらに具備する。
［付記２２］
請求項２０の方法において、前記第２のプロセッサの処理負荷は、前記パケットバンドルへの前記データパケットの前記集約により低減される。
［付記２３］
請求項２０の方法において、前記第１のプロセッサは、複数の層を横断してファンクション（functions）を実行し、そして前記ファンクション間でコンテキストスイッチングを行い、そして、前記ファンクションは、送信キューおよび受信キューを介してお互いの間でデータを転送するファンクションドライバおよびインターコネクトドライバを含む。
［付記２４］
第１のプロセッサであって、
第２のプロセッサとデータを交換するための通信インターフェース；および、
前記通信インターフェースに結合された処理回路；ここにおいて、前記処理回路は、
前記第２のプロセッサから共有メモリを介してパケットバンドルを単独の（single）コンテキストスイッチで取得するように適合されており、ここにおいて、前記パケットバンドルは集約されたデータパケットを含んでおり、および
前記パケットバンドルを複数のデータパケットに分離する（unbundle）ように適合されており、ここにおいて、前記第１のプロセッサの処理負荷は、前記第２のプロセッサによる前記パケットバンドルへの前記データパケットの前記集約により低減される
を具備する第１のプロセッサ。
［付記２５］
請求項２４の第１のプロセッサにおいて、前記処理回路は、前記第２のプロセッサから前記データパケットが転送されていることを指示している割り込みを受け取るようにさらに適合されている。
［付記２６］
請求項２４の第１のプロセッサにおいて、前記第２のプロセッサの処理負荷は、前記パケットバンドルへの前記データパケットの前記集約により低減される。
［付記２７］
請求項２４の第１のプロセッサにおいて、前記第１のプロセッサは、送信キューおよび受信キューを介してお互いの間でデータを転送するファンクションドライバおよびインターコネクトドライバを実行する。
［付記２８］
第１のプロセッサであって、
第２のプロセッサとデータを交換するための手段；
前記第２のプロセッサから共有メモリを介してパケットバンドルを単独の（single）コンテキストスイッチで取得するための手段；ここにおいて、前記パケットバンドルは集約されたデータパケット（data packets）を含んでいる；および
前記パケットバンドルを複数のデータパケットに分離するための手段、ここにおいて、前記第１のプロセッサの処理負荷は、前記第２のプロセッサによる前記パケットバンドルへの前記データパケットの前記集約により低減される
を具備する第１のプロセッサ。
［付記２９］
機械読み取り可能な媒体であって、第２のプロセッサからデータ転送を受け取るための、第１のプロセッサ上で使用可能な（operational）命令（instructions）を具備し、一つまたは複数のプロセッサで実行された時に、該プロセッサに対して、
前記第２のプロセッサから共有メモリを介してパケットバンドルを単独の（single）コンテキストスイッチで取得させる、ここにおいて、前記パケットバンドルは集約されたデータパケット（data packets）を含んでいる；および
前記パケットバンドルを複数のデータパケットに分離させる、ここにおいて、前記第１のプロセッサの処理負荷は、前記第２のプロセッサによる前記パケットバンドルへの前記データパケットの前記集約により低減される
機械読み取り可能な媒体。
［付記３０］
第１のプロセッサから第２のプロセッサにデータを転送するための方法であって、
前記第１のプロセッサで複数のデータパケットをパケットバンドルに集約すること；
共有メモリを用いて前記第１のプロセッサから前記第２のプロセッサに前記パケットバンドルを転送すること、ここにおいて、前記パケットバンドルの前記転送は前記第１のプロセッサで単独の（single）コンテキストスイッチで行われる；および
前記第２のプロセッサで前記パケットバンドルを個々のデータパケットに分離すること、ここにおいて、前記第２のプロセッサの処理負荷は、前記第１のプロセッサによる前記パケットバンドルへの前記データパケットの前記集約により低減される
を具備する方法。
［付記３１］
請求項３０の方法において、前記第１のプロセッサから転送されていることを指示している割り込みを前記第２のプロセッサで受け取ることをさらに具備し、ここにおいて、前記第２のプロセッサでの前記割り込みの数は、前記第１のプロセッサでの前記データパケットの前記集約により低減される。
［付記３２］
請求項３０の方法において、前記第１のプロセッサはアプリケーションプロセッサであり、前記第２のプロセッサはモデムプロセッサであり、両方のプロセッサは無線通信デバイス内で動作していること。
［付記３３］
請求項３０の方法において、前記第２のプロセッサはアプリケーションプロセッサであり、前記第１のプロセッサはモデムプロセッサであり、両方のプロセッサは無線通信デバイス内で動作していること。
［付記３４］
請求項３０の方法において、前記パケットバンドルは一つまたは複数のトリガの発生で第２のプロセッサに転送され、ここにおいて、前記一つまたは複数のトリガは少なくとも、
（ａ）前記第１のプロセッサから前記第２のプロセッサへのパケットバンドル（packet bundles）の連続した転送間の最大値時間（maximum amount time）に基づいたタイムアウトトリガ、
（ｂ）前記データパケットが前記パケットバンドルに集約されるところの送信キューのためのサイズに基づいたキューレベルトリガ、
（ｃ）前記第１のプロセッサと前記第２のプロセッサとの間で前記パケットバンドルを転送するために用いられる前記共有メモリ内の転送バッファの利用に基づいたバッファ使用トリガ、
（ｄ）第２のプロセッサに対しての処理負荷に基づいた負荷トリガ、または
（ｅ）前記第２のプロセッサが無線ネットワークを介して送信するところのデータレートに基づいた最小データレートトリガ
を含む。
［付記３５］
請求項３０の方法において、前記第１のプロセッサおよび第２のプロセッサはそれぞれ複数の層を横断してファンクション（functions）を実行し、前記第１および第２のプロセッサそれぞれでの前記ファンクションは、送信キューおよび受信キューを介してお互いの間でデータを転送するファンクションドライバおよびインターコネクトドライバを含む。
［付記３６］
請求項３５の方法において、前記インターコネクトドライバは、前記送信キュー内のデータパケットの前記集約をコントロールし、そして、前記第２のプロセッサへの前記パケットバンドルの転送をスケジュールする。
［付記３７］
請求項３４の方法において、前記ファンクションドライバは、前記送信キュー内のデータパケットの前記集約をコントロールし、そして、前記第２のプロセッサへの前記パケットバンドルの転送をスケジュールする。
［付記３８］
請求項３０の方法において、
前記第２のプロセッサで第２の複数のデータパケットを第２のパケットバンドルに集約すること、
共有メモリを用いて前記第２のプロセッサから第１のプロセッサに前記第２のパケットバンドルを転送すること、ここにおいて、前記パケットバンドルの転送は前記第２のプロセッサで単独の（single）コンテキストスイッチで行われ、および
前記第１のプロセッサで前記第２のパケットバンドルを個々のデータパケットに分離し、ここにおいて、前記第１のプロセッサの処理負荷は、前記第２のプロセッサによる前記第２のパケットバンドルへの前記データパケットの前記集約によって低減される。
［付記３９］
アクセス端末であって、
複数のデータパケットをパケットバンドルに集約するように適合された第１のプロセッサ；
前記第１のプロセッサに結合された共有メモリであって、前記パケットバンドルを別のプロセッサに送るために前記第１のプロセッサにより使用される前記共有メモリ、ここにおいて、前記パケットバンドルの前記転送は第１のプロセッサで単独の（single）コンテキストスイッチで行われる；および
前記共有メモリに結合された第２のプロセッサであって、前記共有メモリから前記パケットバンドルを取得し、そして、前記パケットバンドルを個々のデータパケットへと分離するように適合された前記第２のプロセッサ、ここにおいて、前記第２のプロセッサの処理負荷は前記第１のプロセッサによる前記パケットバンドルへの前記データパケットの前記集約により低減されている
を具備してなるアクセス端末。
［付記４０］
請求項３９の方法において、
前記第２のプロセッサは、第２の複数のデータパケットを第２のパケットバンドルに集約し、そして、前記共有メモリを用いて前記第２のプロセッサから第１のプロセッサに前記第２のパケットバンドルを転送するようにさらに適合され、ここにおいて、前記パケットバンドルの前記転送は前記第２のプロセッサにより単独の（single）コンテキストスイッチで行われ、および
前記第１のプロセッサは、前記第１のプロセッサで前記第２のパケットバンドルを個々のデータパケットに分離するようにさらに適合され、ここにおいて、前記第１のプロセッサの処理負荷は、前記第２のプロセッサによる前記第２のパケットバンドルへの前記データパケットの前記集約によって低減される。
［付記４１］
アクセス端末であって、
第１のプロセッサで複数のデータパケットをパケットバンドルに集約するための手段；
前記第１のプロセッサから前記第２のプロセッサに前記パケットバンドルを転送するための記憶（memory）手段；ここにおいて、前記パケットバンドルの転送は前記第１のプロセッサで単独の（single）コンテキストスイッチで行われる；および、
第２のプロセッサで前記共有メモリから前記パケットバンドルを取得し、そして、前記パケットバンドルを個々のデータパケットに分離するための手段；ここにおいて、前記第２のプロセッサの処理負荷は、前記第１のプロセッサによる前記パケットバンドルへの前記データパケットの前記集約により低減される
を具備するアクセス端末。
［付記４２］
機械読み取り可能な媒体であって、第１のプロセッサと第２のプロセッサとの間でデータパケットを効率的に転送するための、アクセス端末上で使用可能な（operational）命令（instructions）を具備してなり、一つまたは複数のプロセッサで実行された時に、該プロセッサに対して、
前記第１のプロセッサで前記データパケットをパケットバンドルに集約させる；
共有メモリを用いて前記第１のプロセッサから前記第２のプロセッサに前記パケットバンドルを転送させる、ここにおいて、前記パケットバンドルの前記転送は前記第１のプロセッサで単独の（single）コンテキストスイッチで行われる；および
前記第２のプロセッサで前記パケットバンドルを個々のデータパケットに分離させる、ここにおいて、前記第２のプロセッサの処理負荷は、前記第１のプロセッサによる前記パケットバンドルへの前記データパケットの前記集約により低減される
機械読み取り可能な媒体。
【図１】
0005507556.tif 000002
【図２】
0005507556.tif 000003
【図３】
0005507556.tif 000004
【図４】
0005507556.tif 000005
【図５】
0005507556.tif 000006
【図６】
0005507556.tif 000007
【図７】
0005507556.tif 000008
【図８】
0005507556.tif 000009
【図９】
0005507556.tif 000010
【図１０】
0005507556.tif 000011