(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-10-07
(54)【発明の名称】伝送制御プロトコル(TCP)および/またはユーザデータグラムプロトコル(UDP)受信オフローディング
(51)【国際特許分類】
H04L 69/16 20220101AFI20220930BHJP
H04W 80/06 20090101ALI20220930BHJP
H04W 28/02 20090101ALI20220930BHJP
H04L 49/9057 20220101ALI20220930BHJP
【FI】
H04L69/16
H04W80/06
H04W28/02
H04L49/9057
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022504248
(86)(22)【出願日】2020-07-24
(85)【翻訳文提出日】2022-01-21
(86)【国際出願番号】 US2020070311
(87)【国際公開番号】W WO2021022295
(87)【国際公開日】2021-02-04
(32)【優先日】2019-07-26
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-07-21
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】507364838
【氏名又は名称】クアルコム,インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100163522
【氏名又は名称】黒田 晋平
(72)【発明者】
【氏名】アロック・ミトラ
(72)【発明者】
【氏名】スリニヴァス・レディ・マディレディー
(72)【発明者】
【氏名】ヴァイブハヴ・クマール
(72)【発明者】
【氏名】ハイム・スナピー
(72)【発明者】
【氏名】アッピンダー・バッバル
(72)【発明者】
【氏名】ダン・ギルボア・ワイズマン
(72)【発明者】
【氏名】ヴァムシ・ドック
(72)【発明者】
【氏名】アルン・コイムバトレ・クリシュナムルティ
(72)【発明者】
【氏名】シタラマンジャネユル・カナマルラプディ
【テーマコード(参考)】
5K030
5K067
【Fターム(参考)】
5K030HB11
5K030HC09
5K030JA05
5K067EE02
5K067EE10
5K067HH22
5K067HH23
5K067HH24
5K067HH25
(57)【要約】
本開示の様々な態様は、一般に、ワイヤードおよび/またはワイヤレス通信に関する。いくつかの態様では、デバイスは、デバイスのモデムにおいて複数のデータパケットを受信し得る。デバイスは、デバイスのモデムにおいて複数のデータパケットの第1のサブセットのペイロードをコンテナにグループ化し得る。デバイスは、モデムを使用して、第1のインターフェースチャネルを介してコンテナをデバイスのプロセッサに転送し得る。デバイスは、モデムを使用して、第2のインターフェースチャネルを介して複数のデータパケットの第2のサブセットをプロセッサに転送し得る。多数の他の態様が提供される。
【特許請求の範囲】
【請求項1】
デバイスによって実行されるワイヤレス通信の方法であって、
前記デバイスのモデムにおいて複数のデータパケットを受信するステップと、
前記デバイスの前記モデムにおいて前記複数のデータパケットの第1のサブセットのペイロードをコンテナにグループ化するステップと、
前記モデムを使用して、第1のインターフェースチャネルを介して前記コンテナを前記デバイスのプロセッサに転送するステップと、
前記モデムを使用して、第2のインターフェースチャネルを介して前記複数のデータパケットの第2のサブセットを前記プロセッサに転送するステップと
を含む方法。
【請求項2】
前記複数のデータパケットの前記第1のサブセットが、
同じTCPフローに関連付けられた複数の伝送制御プロトコル(TCP)セグメントを含み、
前記コンテナが、
合体フレームヘッダを有する合体されたTCPフレームを含む、または、
前記複数のデータパケットの前記第1のサブセットが、
同じUDPストリームに関連付けられた複数のユーザデータグラムプロトコル(UDP)パケットを含み、
前記コンテナが、
単一のUDPヘッダを有するグループ化されたUDPデータグラムを含む、
請求項1に記載の方法。
【請求項3】
前記コンテナに関連付けられたヘッダが、
前記コンテナに関連付けられたコンテキスト識別子を識別するコンテキスト識別子フィールド、
前記複数のデータパケットのうちのいずれかに対してチェックサムエラーが生じたかどうかを識別するチェックサム妥当性フィールド、
前記複数のデータパケットのうちのいずれかに対してチェックサムエラーが生じた場合、前記チェックサムエラーに関連付けられた前記複数のデータパケットのうちの1つまたは複数のデータパケットを識別するチェックサムエラービットマップフィールド、
複数のパケット番号パケット長(NL)フィールドであって、
各NLフィールドが、同じパケット長である前記複数のデータパケットの量を識別する、複数のパケット番号パケット長(NL)フィールド、または、
前記ヘッダに含まれるNLフィールドの量を識別するNL量フィールド
のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項4】
前記第1のインターフェースチャネルが、第1の転送リングに関連付けられ、
前記第2のインターフェースチャネルが、第2の転送リングに関連付けられ、
前記第1の転送リングおよび前記第2の転送リングが、異なる転送リングである、
請求項1に記載の方法。
【請求項5】
前記プロセッサを使用して、前記第1の転送リングを介して、前記第1のインターフェースチャネルに関連付けられた1つまたは複数の第1のバッファの指示を前記モデムに提供するステップと、
前記プロセッサを使用して、前記第2の転送リングを介して、前記第2のインターフェースチャネルに関連付けられた1つまたは複数の第2のバッファの指示を前記モデムに提供するステップと
をさらに含む、請求項4に記載の方法。
【請求項6】
前記第1のインターフェースチャネルを介して前記コンテナを転送するステップが、
前記第1の転送リングを介した前記1つまたは複数の第1のバッファの前記指示に少なくとも部分的に基づいて、前記1つまたは複数の第1のバッファに前記コンテナを記憶するステップを含み、
前記第2のインターフェースチャネルを介して前記複数のデータパケットの前記第2のサブセットを転送するステップが、
前記第2の転送リングを介した前記1つまたは複数の第2のバッファの前記指示に少なくとも部分的に基づいて、前記1つまたは複数の第2のバッファに前記複数のデータパケットの前記第2のサブセットを記憶するステップを含む、
請求項5に記載の方法。
【請求項7】
前記コンテナが、前記第1のインターフェースチャネルを介して前記プロセッサに転送されるべき複数のコンテナの中に含まれ、
前記第1のインターフェースチャネルを介して前記コンテナを転送するステップが、
前記複数のコンテナのそれぞれのアクティビティレベルに少なくとも部分的に基づく順序で、前記1つまたは複数の第1のバッファのうちのそれぞれのバッファに前記複数のコンテナの各々を記憶するステップを含む、
請求項5に記載の方法。
【請求項8】
前記プロセッサを使用して、前記第1のインターフェースチャネルに関連付けられた1つまたは複数のバッファの指示を前記モデムに提供するステップをさらに含み、
前記1つまたは複数のバッファの前記指示が、前記第1の転送リングを介して合体転送リング要素において提供され、
前記1つまたは複数のバッファの前記指示が、
前記1つまたは複数のバッファの各々に関連付けられたそれぞれのソフトウェアクッキーの指示を含む、
請求項4に記載の方法。
【請求項9】
前記第1のインターフェースチャネルを介して前記コンテナを転送するステップが、
前記1つまたは複数のバッファにわたって前記コンテナを記憶するステップと、
前記モデムを使用して、前記コンテナを記憶したことに少なくとも部分的に基づいて、合体完了イベントの指示を前記プロセッサに提供するステップとを含み、
前記合体完了イベントの前記指示が、前記第1のインターフェースチャネルおよび前記第2のインターフェースチャネルに関連付けられた共有イベントリングを介して提供され、
前記合体完了イベントの前記指示が、前記1つまたは複数のバッファの各々に関連付けられた前記それぞれのソフトウェアクッキーおよび前記コンテナに関連付けられた合体コンテキスト識別子を識別する、
請求項8に記載の方法。
【請求項10】
前記複数のデータパケットの前記第2のサブセットを転送するステップが、
前記モデムを使用して、完了イベントの指示を前記プロセッサに提供するステップを含み、
前記完了イベントの前記指示が、前記共有イベントリングを介して提供され、
前記合体完了イベントの前記指示および前記完了イベントの前記指示が、前記コンテナおよび前記複数のデータパケットの前記第2のサブセットが前記プロセッサに転送された順序に少なくとも部分的に基づいて、前記イベントリングにおいて順序付けられる、
請求項9に記載の方法。
【請求項11】
前記1つまたは複数のバッファにわたって前記コンテナを記憶するステップが、
前記第1のバッファが満たされるまで、前記1つまたは複数のバッファのうちの第1のバッファに前記コンテナを記憶するステップと、
前記第1のバッファが満たされたことに少なくとも部分的に基づいて、前記第1のバッファを閉じるステップと、
前記第1のバッファに関連付けられたイベントコードおよびコンテキスト識別子を生成するステップと、
前記1つまたは複数のバッファのうちの第2のバッファに前記コンテナの残りを記憶するステップと
を含む、請求項9に記載の方法。
【請求項12】
前記コンテナが、複数のコンテナの中に含まれ、
前記第1のインターフェースチャネルを介して前記コンテナを転送するステップが、
前記第1のインターフェースチャネルを介して前記複数のコンテナを転送するステップを含み、
前記複数のコンテナの各々が、それぞれの伝送制御プロトコル(TCP)接続またはユーザデータグラムプロトコル(UDP)接続に関連付けられる、
請求項1に記載の方法。
【請求項13】
前記複数のデータパケットの前記第1のサブセットの前記ペイロードを前記コンテナにグループ化するステップが、
前記複数のデータパケットの前記第1のサブセットは合体されることが可能であると決定するステップと、
前記複数のデータパケットの前記第1のサブセットは合体されることが可能であるとの決定に少なくとも部分的に基づいて、前記複数のデータパケットの前記第1のサブセットの前記ペイロードを前記コンテナにグループ化するステップと
を含み、
前記第2のインターフェースチャネルを介して前記複数のデータパケットの前記第2のサブセットを転送するステップが、
前記複数のデータパケットの前記第2のサブセットは合体されることが不可能であると決定するステップと、
前記複数のデータパケットの前記第2のサブセットは合体されることが不可能であるとの決定に少なくとも部分的に基づいて、前記第2のインターフェースチャネルを介して前記複数のデータパケットの前記第2のサブセットを転送するステップと
を含む、請求項1に記載の方法。
【請求項14】
前記複数のデータパケットの前記第1のサブセットの前記ペイロードを前記コンテナにグループ化するステップが、
前記コンテナを閉じるステップと、
前記コンテナが記憶されるべきであるバッファに関連付けられたイベントコードおよびコンテキスト識別子を生成するステップと
を含む、請求項13に記載の方法。
【請求項15】
前記コンテナを閉じるステップが、
前記コンテナが閉じられるべきであることを示す、前記複数のデータパケットの前記第1のサブセットのデータパケットに含まれるフラグを識別するステップ、または、
前記複数のデータパケットの前記第2のサブセットのデータパケットは前記複数のデータパケットの前記第1のサブセットと合体されることが不可能であると決定するステップ
のうちの少なくとも1つを含む、請求項14に記載の方法。
【請求項16】
前記第1のインターフェースチャネルを介して別のコンテナを転送すると決定するステップと、
前記第1のインターフェースチャネルを介して前記別のコンテナを転送するとの決定に少なくとも部分的に基づいて、前記第2のインターフェースチャネルを閉じるステップと
をさらに含む、請求項1に記載の方法。
【請求項17】
前記プロセッサが、
アプリケーションプロセッサ、または
ホストプロセッサ
であり、
前記第1のインターフェースチャネルおよび前記第2のインターフェースチャネルに関連付けられたインターフェースが、
周辺構成要素相互接続エクスプレスインターフェース、
ユニバーサルシリアルバスインターフェース、
シリアルATAインターフェース、または
イーサネットインターフェース
である、請求項1に記載の方法。
【請求項18】
前記複数のデータパケットの前記第1のサブセットが、同じフローまたは同じストリームに関連付けられ、
前記コンテナが、前記同じフローまたは前記同じストリームに関連付けられた複数のヘッダを含む、
請求項1に記載の方法。
【請求項19】
前記複数のデータパケットの前記第1のサブセットの前記ペイロードを前記コンテナにグループ化するステップが、
前記モデムにおいて、前記プロセッサから、前記コンテナ用のしきい値バイトサイズまたは前記コンテナ用のデータパケットのしきい値量のうちの少なくとも1つの指示を受信するステップと、
前記コンテナ用の前記しきい値バイトサイズまたは前記コンテナ用の前記データパケットのしきい値量のうちの前記少なくとも1つに少なくとも部分的に基づいて、前記モデムにおいて前記複数のデータパケットの前記第1のサブセットの前記ペイロードを前記コンテナにグループ化するステップと
を含む、請求項1に記載の方法。
【請求項20】
前記複数のデータパケットの前記第1のサブセットが、
複数の伝送制御プロトコル(TCP)セグメント、
複数のユーザデータグラムプロトコル(UDP)パケット、
複数のイーサネットフレーム、または
複数の非構造化パケット
を含む、請求項1に記載の方法。
【請求項21】
ワイヤレス通信のためのデバイスであって、
メモリと、
前記メモリに動作可能に結合された1つまたは複数のプロセッサとを備え、前記メモリおよび前記1つまたは複数のプロセッサが、
前記デバイスのモデムにおいて複数のデータパケットを受信することと、
前記デバイスの前記モデムにおいて前記複数のデータパケットの第1のサブセットのペイロードをコンテナにグループ化することと、
前記モデムを使用して、第1のインターフェースチャネルを介して前記コンテナを前記デバイスのプロセッサに転送することと、
前記モデムを使用して、第2のインターフェースチャネルを介して前記複数のデータパケットの第2のサブセットを前記プロセッサに転送することと
を行うように構成される、デバイス。
【請求項22】
前記複数のデータパケットの前記第1のサブセットが、
同じTCPフローに関連付けられた複数の伝送制御プロトコル(TCP)セグメントを含み、
前記コンテナが、
合体フレームヘッダを有する合体されたTCPフレームを含む、または、
前記複数のデータパケットの前記第1のサブセットが、
同じUDPストリームに関連付けられた複数のユーザデータグラムプロトコル(UDP)パケットを含み、
前記コンテナが、
単一のUDPヘッダを有するグループ化されたUDPデータグラムを含む、
請求項21に記載のデバイス。
【請求項23】
前記複数のデータパケットの前記第1のサブセットが、同じフローまたは同じストリームに関連付けられ、
前記コンテナが、前記同じフローまたは前記同じストリームに関連付けられた複数のヘッダを含む、
請求項21に記載のデバイス。
【請求項24】
前記1つまたは複数のプロセッサが、前記複数のデータパケットの前記第1のサブセットの前記ペイロードを前記コンテナにグループ化するとき、
前記モデムにおいて、前記プロセッサから、前記コンテナ用のしきい値バイトサイズまたは前記コンテナ用のデータパケットのしきい値量のうちの少なくとも1つの指示を受信することと、
前記コンテナ用の前記しきい値バイトサイズまたは前記コンテナ用の前記データパケットのしきい値量のうちの前記少なくとも1つに少なくとも部分的に基づいて、前記モデムにおいて前記複数のデータパケットの前記第1のサブセットの前記ペイロードを前記コンテナにグループ化することと
を行うように構成される、請求項21に記載のデバイス。
【請求項25】
通信のための1つまたは複数の命令を記憶する非一時的コンピュータ可読媒体であって、前記1つまたは複数の命令が、
デバイスの1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
前記デバイスのモデムにおいて複数のデータパケットを受信することと、
前記デバイスの前記モデムにおいて前記複数のデータパケットの第1のサブセットのペイロードをコンテナにグループ化することと、
前記モデムを使用して、第1のインターフェースチャネルを介して前記コンテナを前記デバイスのプロセッサに転送することと、
前記モデムを使用して、第2のインターフェースチャネルを介して前記複数のデータパケットの第2のサブセットを前記プロセッサに転送することと
を行わせる1つまたは複数の命令を含む、非一時的コンピュータ可読媒体。
【請求項26】
前記複数のデータパケットの前記第1のサブセットが、
同じTCPフローに関連付けられた複数の伝送制御プロトコル(TCP)セグメントを含み、
前記コンテナが、
合体フレームヘッダを有する合体されたTCPフレームを含む、または、
前記複数のデータパケットの前記第1のサブセットが、
同じUDPストリームに関連付けられた複数のユーザデータグラムプロトコル(UDP)パケットを含み、
前記コンテナが、
単一のUDPヘッダを有するグループ化されたUDPデータグラムを含む、
請求項25に記載の非一時的コンピュータ可読媒体。
【請求項27】
前記複数のデータパケットの前記第1のサブセットが、同じフローまたは同じストリームに関連付けられ、
前記コンテナが、前記同じフローまたは前記同じストリームに関連付けられた複数のヘッダを含む、
請求項25に記載の非一時的コンピュータ可読媒体。
【請求項28】
ワイヤレス通信のための装置であって、
前記装置のモデムにおいて複数のデータパケットを受信するための手段と、
前記装置の前記モデムにおいて前記複数のデータパケットの第1のサブセットのペイロードをコンテナにグループ化するための手段と、
前記モデムを使用して、第1のインターフェースチャネルを介して前記コンテナを前記装置のプロセッサに転送するための手段と、
前記モデムを使用して、第2のインターフェースチャネルを介して前記複数のデータパケットの第2のサブセットを前記プロセッサに転送するための手段と
を備える装置。
【請求項29】
前記複数のデータパケットの前記第1のサブセットが、
同じTCPフローに関連付けられた複数の伝送制御プロトコル(TCP)セグメントを含み、
前記コンテナが、
合体フレームヘッダを有する合体されたTCPフレームを含む、または、
前記複数のデータパケットの前記第1のサブセットが、
同じUDPストリームに関連付けられた複数のユーザデータグラムプロトコル(UDP)パケットを含み、
前記コンテナが、
単一のUDPヘッダを有するグループ化されたUDPデータグラムを含む、
請求項28に記載の装置。
【請求項30】
前記複数のデータパケットの前記第1のサブセットが、同じフローまたは同じストリームに関連付けられ、
前記コンテナが、前記同じフローまたは前記同じストリームに関連付けられた複数のヘッダを含む、
請求項28に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本特許出願は、参照により本明細書に明確に組み込まれる、「TRANSMISSION CONTROL PROTOCOL (TCP) AND/OR USER DATAGRAM PROTOCOL (UDP) RECEIVE OFFLOADING」と題する2019年7月26日に出願された米国仮特許出願第62/879,351号、および「TRANSMISSION CONTROL PROTOCOL (TCP) AND/OR USER DATAGRAM PROTOCOL (UDP) RECEIVE OFFLOADING」と題する2020年7月21日に出願された米国非仮特許出願第16/947,167号の優先権を主張する。
【0002】
本開示の態様は一般にワイヤードおよび/またはワイヤレス通信に関し、伝送制御プロトコル(TCP)および/またはユーザデータグラムプロトコル(UDP)受信オフローディングのための技法および装置に関する。
【背景技術】
【0003】
ワイヤレス通信システムは、テレフォニー、ビデオ、データ、メッセージング、およびブロードキャストなどの様々な電気通信サービスを提供するために広く展開されている。典型的なワイヤレス通信システムは、利用可能なシステムリソース(たとえば、帯域幅、送信電力など)を共有することによって複数のユーザとの通信をサポートすることが可能な多元接続技術を用い得る。そのような多元接続技術の例は、符号分割多元接続(CDMA)システム、時分割多元接続(TDMA)システム、周波数分割多元接続(FDMA)システム、直交周波数分割多元接続(OFDMA)システム、シングルキャリア周波数分割多元接続(SC-FDMA)システム、時分割同期符号分割多元接続(TD-SCDMA)システム、およびロングタームエボリューション(LTE)を含む。LTE/LTEアドバンストは、第3世代パートナーシッププロジェクト(3GPP)によって公表されたユニバーサルモバイルテレコミュニケーションズシステム(UMTS)モバイル規格に対する拡張のセットである。
【0004】
ワイヤレス通信ネットワークは、いくつかのユーザ機器(UE)のための通信をサポートすることができるいくつかの基地局(BS)を含み得る。ユーザ機器(UE)は、ダウンリンクおよびアップリンクを介して基地局(BS)と通信し得る。ダウンリンク(または順方向リンク)は、BSからUEへの通信リンクを指し、アップリンク(または逆方向リンク)は、UEからBSへの通信リンクを指す。本明細書でより詳細に説明するように、BSは、ノードB、gNB、アクセスポイント(AP)、無線ヘッド、送信受信ポイント(TRP)、ニューラジオ(NR)BS、5GノードBなどと呼ばれることがある。
【0005】
上記の多元接続技術は、異なるユーザ機器が都市、国家、地域、さらには地球規模で通信することを可能にする共通プロトコルを提供するために、様々な電気通信規格において採用されている。5Gと呼ばれることもあるニューラジオ(NR)は、第3世代パートナーシッププロジェクト(3GPP)によって公表されたLTEモバイル規格に対する拡張のセットである。NRは、スペクトル効率を改善することと、コストを下げることと、サービスを改善することと、新しいスペクトルを利用することと、ダウンリンク(DL)上でサイクリックプレフィックス(CP)を有する直交周波数分割多重化(OFDM)(CP-OFDM)を使用し、アップリンク(UL)上でCP-OFDMおよび/またはSC-FDM(たとえば、離散フーリエ変換拡散OFDM(DFT-s-OFDM)としても知られている)を使用し、ならびにビームフォーミング、多入力多出力(MIMO)アンテナ技術、およびキャリアアグリゲーションをサポートする、他のオープン規格とより良く統合することとによって、モバイルブロードバンドインターネットアクセスをより良くサポートするように設計されている。しかしながら、モバイルブロードバンドアクセスに対する需要が高まり続けるにつれて、LTE技術およびNR技術のさらなる改善が必要である。好ましくは、これらの改善は、これらの技術を用いる他の多元接続技術および電気通信規格に適用可能であるべきである。
【発明の概要】
【課題を解決するための手段】
【0006】
いくつかの態様では、デバイスによって実行されるワイヤードおよび/またはワイヤレス通信の方法は、デバイスのモデムにおいて複数のデータパケットを受信するステップと、デバイスのモデムにおいて複数のデータパケットの第1のサブセットのペイロードをコンテナにグループ化するステップと、モデムを使用して、第1のインターフェースチャネルを介してコンテナをデバイスのプロセッサに転送するステップと、モデムを使用して、第2のインターフェースチャネルを介して複数のデータパケットの第2のサブセットをプロセッサに転送するステップとを含み得る。
【0007】
いくつかの態様では、ワイヤードおよび/またはワイヤレス通信のためのデバイスは、メモリと、メモリに動作可能に結合された1つまたは複数のプロセッサとを含み得る。メモリおよび1つまたは複数のプロセッサは、デバイスのモデムにおいて複数のデータパケットを受信することと、デバイスのモデムにおいて複数のデータパケットの第1のサブセットのペイロードをコンテナにグループ化することと、モデムを使用して、第1のインターフェースチャネルを介してコンテナをデバイスのプロセッサに転送することと、モデムを使用して、第2のインターフェースチャネルを介して複数のデータパケットの第2のサブセットをプロセッサに転送することとを行うように構成され得る。
【0008】
いくつかの態様では、非一時的コンピュータ可読媒体は、ワイヤードおよび/またはワイヤレス通信のための1つまたは複数の命令を記憶し得る。1つまたは複数の命令は、デバイスの1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、デバイスのモデムにおいて複数のデータパケットを受信することと、デバイスのモデムにおいて複数のデータパケットの第1のサブセットのペイロードをコンテナにグループ化することと、モデムを使用して、第1のインターフェースチャネルを介してコンテナをデバイスのプロセッサに転送することと、モデムを使用して、第2のインターフェースチャネルを介して複数のデータパケットの第2のサブセットをプロセッサに転送することとを行わせ得る。
【0009】
いくつかの態様では、ワイヤードおよび/またはワイヤレス通信のための装置は、装置のモデムにおいて複数のデータパケットを受信するための手段と、装置のモデムにおいて複数のデータパケットの第1のサブセットのペイロードをコンテナにグループ化するための手段と、モデムを使用して、第1のインターフェースチャネルを介してコンテナを装置のプロセッサに転送するための手段と、モデムを使用して、第2のインターフェースチャネルを介して複数のデータパケットの第2のサブセットをプロセッサに転送するための手段とを含み得る。
【0010】
態様は、一般に、添付の図面および本明細書を参照しながら本明細書で十分に説明し、添付の図面および本明細書によって示すような、方法、装置、システム、コンピュータプログラム製品、非一時的コンピュータ可読媒体、ユーザ機器、基地局、ワイヤードおよび/もしくはワイヤレス通信デバイス、ならびに/または処理システムを含む。
【0011】
上記は、以下の詳細な説明がより良く理解され得るように、本開示による例の特徴および技術的利点をかなり広範に概説している。追加の特徴および利点について、以下で説明する。開示する概念および具体例は、本開示の同じ目的を実行するために他の構造を修正または設計するための基礎として容易に利用され得る。そのような等価な構成は、添付の特許請求の範囲から逸脱しない。本明細書で開示する概念の特性、それらの編成と動作方法の両方は、添付の図に関して検討されると、関連する利点とともに以下の説明からより良く理解されよう。図の各々は、例示および説明のために提供されるものであり、特許請求の範囲の限定の定義として提供されるものではない。
【0012】
本開示の上述の特徴が詳細に理解され得るように、添付の図面にその一部が示される態様を参照することによって、上記で簡潔に要約した内容について、より具体的な説明を行う場合がある。しかしながら、この説明は他の等しく効果的な態様に通じ得るので、添付の図面は、本開示のいくつかの典型的な態様のみを示し、したがって、本開示の範囲を限定するものと見なされるべきではないことに留意されたい。異なる図面における同じ参照番号は、同じまたは同様の要素を識別し得る。
【図面の簡単な説明】
【0013】
【
図1】本開示の様々な態様による、ワイヤレス通信ネットワークの一例を概念的に示すブロック図である。
【
図2】本開示の様々な態様による、ワイヤレス通信ネットワークにおけるユーザ機器(UE)と通信している基地局の一例を概念的に示すブロック図である。
【
図3】本開示の様々な態様による、伝送制御プロトコル(TCP)および/またはユーザデータグラムプロトコル(UDP)受信オフローディングの一例を示す図である。
【
図4】本開示の様々な態様による、伝送制御プロトコル(TCP)および/またはユーザデータグラムプロトコル(UDP)受信オフローディングの一例を示す図である。
【
図5】本開示の様々な態様による、伝送制御プロトコル(TCP)および/またはユーザデータグラムプロトコル(UDP)受信オフローディングの一例を示す図である。
【
図6】本開示の様々な態様による、伝送制御プロトコル(TCP)および/またはユーザデータグラムプロトコル(UDP)受信オフローディングの一例を示す図である。
【
図7】本開示の様々な態様による、伝送制御プロトコル(TCP)および/またはユーザデータグラムプロトコル(UDP)受信オフローディングの一例を示す図である。
【
図8】本開示の様々な態様による、伝送制御プロトコル(TCP)および/またはユーザデータグラムプロトコル(UDP)受信オフローディングの一例を示す図である。
【
図9】本開示の様々な態様による、伝送制御プロトコル(TCP)および/またはユーザデータグラムプロトコル(UDP)受信オフローディングの一例を示す図である。
【
図10】本開示の様々な態様による、たとえばデバイスによって実行される例示的なプロセスを示す図である。
【発明を実施するための形態】
【0014】
本開示の様々な態様について、添付の図面を参照しながら以下でより十分に説明する。しかしながら、本開示は、多くの異なる形態で具現化されてもよく、本開示全体にわたって提示される任意の特定の構造または機能に限定されるものと解釈されるべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるように与えられる。本明細書の教示に基づいて、本開示の範囲は、本開示の任意の他の態様とは無関係に実装されるにせよ、本開示の任意の他の態様と組み合わせて実装されるにせよ、本明細書で開示する本開示の任意の態様を包含するものであることを、当業者は諒解されたい。たとえば、本明細書に記載する任意の数の態様を使用して、装置が実装されてもよく、または方法が実践されてもよい。加えて、本開示の範囲は、本明細書に記載する本開示の様々な態様に加えて、またはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実践されるそのような装置または方法を包含するものとする。本明細書で開示する本開示のいかなる態様も、請求項の1つまたは複数の要素によって具現化され得ることを理解されたい。
【0015】
次に、様々な装置および技法を参照しながら、電気通信システムのいくつかの態様が提示される。これらの装置および技法について、以下の詳細な説明において説明し、様々なブロック、モジュール、構成要素、回路、ステップ、プロセス、アルゴリズムなど(「要素」と総称される)によって添付の図面に示す。これらの要素は、ハードウェア、ソフトウェア、またはそれらの組合せを使用して実装され得る。そのような要素がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課される設計制約に依存する。
【0016】
態様について、3Gおよび/または4Gワイヤレス技術に一般的に関連付けられた用語を使用して本明細書で説明する場合があるが、本開示の態様は、NR技術を含む、5G以降などの他の世代ベースの通信システムにおいて適用され得ることに留意されたい。
【0017】
図1は、本開示の態様が実践され得るワイヤレスネットワーク100を示す図である。ワイヤレスネットワーク100は、LTEネットワーク、または5GもしくはNRネットワークなどの何らかの他のワイヤレスネットワークであり得る。ワイヤレスネットワーク100は、いくつかのBS110(BS110a、BS110b、BS110c、およびBS110dとして示される)と、他のネットワークエンティティとを含み得る。BSは、ユーザ機器(UE)と通信するエンティティであり、基地局、NR BS、ノードB、gNB、5GノードB(NB)、アクセスポイント、送信受信ポイント(TRP)などと呼ばれることもある。各BSは、特定の地理的エリアに通信カバレージを提供し得る。3GPPでは、「セル」という用語は、この用語が使用される文脈に応じて、BSのカバレージエリアおよび/またはこのカバレージエリアにサービスしているBSサブシステムを指す場合がある。
【0018】
BSは、マクロセル、ピコセル、フェムトセル、および/または別のタイプのセルに通信カバレージを提供し得る。マクロセルは、比較的大きい地理的エリア(たとえば、半径数キロメートル)をカバーすることができ、サービスに加入しているUEによる無制限アクセスを可能にし得る。ピコセルは、比較的小さい地理的エリアをカバーすることができ、サービスに加入しているUEによる無制限アクセスを可能にし得る。フェムトセルは、比較的小さい地理的エリア(たとえば、自宅)をカバーすることができ、フェムトセルとの関連付けを有するUE(たとえば、限定加入者グループ(CSG)内のUE)による制限付きアクセスを可能にし得る。マクロセルのためのBSは、マクロBSと呼ばれることがある。ピコセルのためのBSは、ピコBSと呼ばれることがある。フェムトセルのためのBSは、フェムトBSまたはホームBSと呼ばれることがある。
図1に示す例では、BS110aは、マクロセル102aのためのマクロBSであってもよく、BS110bは、ピコセル102bのためのピコBSであってもよく、BS110cは、フェムトセル102cのためのフェムトBSであってもよい。BSは、1つまたは複数(たとえば、3つ)のセルをサポートしてもよい。「eNB」、「基地局」、「NR BS」、「gNB」、「TRP」、「AP」、「ノードB」、「5G NB」、および「セル」という用語は、本明細書では互換的に使用され得る。
【0019】
いくつかの態様では、セルは、必ずしも静止しているとは限らないことがあり、セルの地理的エリアは、モバイルBSのロケーションに従って移動することがある。いくつかの態様では、BSは、任意の適切なトランスポートネットワークを使用して、直接物理接続、仮想ネットワークなどの様々なタイプのバックホールインターフェースを通じて、ワイヤレスネットワーク100において互いにかつ/または1つもしくは複数の他のBSもしくはネットワークノード(図示せず)に相互接続され得る。
【0020】
ワイヤレスネットワーク100はまた、中継局を含み得る。中継局は、上流局(たとえば、BSまたはUE)からデータの送信を受信することができ、かつそのデータの送信を下流局(たとえば、UEまたはBS)に送ることができるエンティティである。中継局はまた、他のUEのための送信を中継することができるUEであり得る。
図1に示す例では、中継局110dは、BS110aとUE120dとの間の通信を容易にするために、マクロBS110aおよびUE120dと通信し得る。中継局は、中継BS、中継基地局、リレーなどと呼ばれることもある。
【0021】
ワイヤレスネットワーク100は、異なるタイプのBS、たとえば、マクロBS、ピコBS、フェムトBS、中継BSなどを含む異種ネットワークであり得る。これらの異なるタイプのBSは、ワイヤレスネットワーク100において、異なる送信電力レベル、異なるカバレージエリア、および干渉に対する異なる影響を有することがある。たとえば、マクロBSは、高い送信電力レベル(たとえば、5~40ワット)を有することがあるが、ピコBS、フェムトBS、および中継BSは、より低い送信電力レベル(たとえば、0.1~2ワット)を有することがある。
【0022】
ネットワークコントローラ130は、BSのセットに結合してもよく、これらのBSのための協調および制御を行ってもよい。ネットワークコントローラ130は、バックホールを介してBSと通信し得る。BSはまた、たとえば、ワイヤレスまたはワイヤラインバックホールを介して、直接または間接的に互いと通信し得る。
【0023】
UE120(たとえば、120a、120b、120c)は、ワイヤレスネットワーク100全体にわたって分散されてもよく、各UEは、固定またはモバイルであってもよい。UEは、アクセス端末、端末、移動局、加入者ユニット、局などと呼ばれることもある。UEは、セルラーフォン(たとえば、スマートフォン)、携帯情報端末(PDA)、ワイヤレスモデム、ワイヤレス通信デバイス、ハンドヘルドデバイス、ラップトップコンピュータ、コードレスフォン、ワイヤレスローカルループ(WLL)局、タブレット、カメラ、ゲームデバイス、ネットブック、スマートブック、ウルトラブック、医療デバイスもしくは医療機器、生体センサ/デバイス、ウェアラブルデバイス(スマートウォッチ、スマートクロージング、スマートグラス、スマートリストバンド、スマートジュエリー(たとえば、スマートリング、スマートブレスレット))、エンターテインメントデバイス(たとえば、音楽もしくはビデオデバイス、または衛星ラジオ)、車両構成要素もしくはセンサ、スマートメータ/センサ、産業用製造機器、全地球測位システムデバイス、または、ワイヤレスもしくはワイヤード媒体を介して通信するように構成される任意の他の適切なデバイスであり得る。
【0024】
いくつかのUEは、マシンタイプ通信(MTC)UE、または発展型もしくは拡張マシンタイプ通信(eMTC)UEと見なされてもよい。MTC UEおよびeMTC UEは、たとえば、基地局、別のデバイス(たとえば、リモートデバイス)、または何らかの他のエンティティと通信し得る、ロボット、ドローン、リモートデバイス、センサ、メータ、モニタ、ロケーションタグなどを含む。ワイヤレスノードは、たとえば、ワイヤードおよび/またはワイヤレス通信リンクを介して、ネットワーク(たとえば、インターネットまたはセルラーネットワークなどのワイドエリアネットワーク)のための接続性またはネットワークへの接続性を提供し得る。いくつかのUEは、モノのインターネット(IoT)デバイスと見なされてもよく、かつ/またはNB-IoT(狭帯域モノのインターネット)デバイスとして実装されてもよい。いくつかのUEは、顧客構内機器(CPE)と見なされてもよい。UE120は、プロセッサ構成要素、メモリ構成要素などの、UE120の構成要素を収容するハウジングの内部に含まれてもよい。
【0025】
一般に、任意の数のワイヤレスネットワークが所与の地理的エリアにおいて展開されてもよい。各ワイヤレスネットワークは、特定のRATをサポートしてもよく、1つまたは複数の周波数上で動作してもよい。RATは、無線技術、エアインターフェースなどと呼ばれることもある。周波数は、キャリア、周波数チャネルなどと呼ばれることもある。各周波数は、異なるRATのワイヤレスネットワーク間の干渉を回避するために、所与の地理的エリアにおいて単一のRATをサポートしてもよい。場合によっては、NRまたは5G RATネットワークが展開され得る。
【0026】
いくつかの態様では、2つ以上のUE120(たとえば、UE120aおよびUE120eとして示される)は、1つまたは複数のサイドリンクチャネルを使用して(たとえば、互いと通信するための媒介として基地局110を使用せずに)直接通信し得る。たとえば、UE120は、ピアツーピア(P2P)通信、デバイス間(D2D)通信、(たとえば、車両間(V2V)プロトコル、ビークルツーインフラストラクチャ(V2I)プロトコルなどを含み得る)ビークルツーエブリシング(V2X)プロトコル、メッシュネットワークなどを使用して通信し得る。この場合、UE120は、スケジューリング動作、リソース選択動作、および/または基地局110によって実行されるものとして本明細書の他の場所で説明する他の動作を実行し得る。
【0027】
上記で示したように、
図1は一例として与えられる。他の例は、
図1に関して説明したものとは異なってもよい。
【0028】
図2は、
図1の基地局のうちの1つおよびUEのうちの1つであり得る、基地局110およびUE120の設計200のブロック図を示す。基地局110はT個のアンテナ234a~234tを備えてもよく、UE120はR個のアンテナ252a~252rを備えてもよく、ただし、一般にT≧1およびR≧1である。
【0029】
基地局110において、送信プロセッサ220は、1つまたは複数のUEのためのデータをデータソース212から受信し、UEから受信されたチャネル品質インジケータ(CQI)に少なくとも部分的に基づいてUEごとに1つまたは複数の変調およびコーディング方式(MCS)を選択し、UE用に選択されたMCSに少なくとも部分的に基づいてUEごとにデータを処理(たとえば、符号化および変調)し、データシンボルをすべてのUEに提供し得る。送信プロセッサ220はまた、(たとえば、半静的リソース区分情報(SRPI)などのための)システム情報および制御情報(たとえば、CQI要求、許可、上位レイヤシグナリングなど)を処理し、オーバーヘッドシンボルおよび制御シンボルを提供し得る。送信プロセッサ220はまた、基準信号(たとえば、セル固有基準信号(CRS))および同期信号(たとえば、1次同期信号(PSS)および2次同期信号(SSS))用の基準シンボルを生成し得る。送信(TX)多入力多出力(MIMO)プロセッサ230は、該当する場合、データシンボル、制御シンボル、オーバーヘッドシンボル、および/または基準シンボルに対して空間処理(たとえば、プリコーディング)を実行し得、T個の出力シンボルストリームをT個の変調器(MOD)232a~232tに提供し得る。各変調器232は、それぞれの出力シンボルストリームを(たとえば、OFDM用などに)処理して、出力サンプルストリームを取得し得る。各変調器232は、出力サンプルストリームをさらに処理(たとえば、アナログに変換、増幅、フィルタ処理、およびアップコンバート)して、ダウンリンク信号を取得し得る。変調器232a~232tからのT個のダウンリンク信号は、それぞれ、T個のアンテナ234a~234tを介して送信され得る。以下でより詳細に説明する様々な態様によれば、同期信号は、追加の情報を伝達するために、ロケーション符号化を用いて生成され得る。
【0030】
UE120において、アンテナ252a~252rは、基地局110および/または他の基地局からダウンリンク信号を受信し得、それぞれ、受信信号を復調器(DEMOD)254a~254rに提供し得る。各復調器254は、受信信号を調整(たとえば、フィルタ処理、増幅、ダウンコンバート、およびデジタル化)して、入力サンプルを取得し得る。各復調器254は、入力サンプルを(たとえば、OFDM用などに)さらに処理して、受信シンボルを取得し得る。MIMO検出器256は、すべてのR個の復調器254a~254rから受信シンボルを取得し、該当する場合、受信シンボルに対してMIMO検出を実行し、検出されたシンボルを提供し得る。受信プロセッサ258は、検出されたシンボルを処理(たとえば、復調および復号)し、UE120のための復号されたデータをデータシンク260に提供し、復号された制御情報およびシステム情報をコントローラ/プロセッサ280に提供し得る。チャネルプロセッサは、基準信号受信電力(RSRP)、受信信号強度インジケータ(RSSI)、基準信号受信品質(RSRQ)、チャネル品質インジケータ(CQI)などを決定し得る。いくつかの態様では、UE120の1つまたは複数の構成要素は、ハウジングに含まれ得る。
【0031】
アップリンク上では、UE120において、送信プロセッサ264は、データソース262からのデータおよびコントローラ/プロセッサ280からの(たとえば、RSRP、RSSI、RSRQ、CQIなどを含む報告用の)制御情報を受信し、処理し得る。送信プロセッサ264はまた、1つまたは複数の基準信号用の基準シンボルを生成し得る。送信プロセッサ264からのシンボルは、該当する場合、TX MIMOプロセッサ266によってプリコーディングされ、(たとえば、DFT-s-OFDM、CP-OFDM用などに)変調器254a~254rによってさらに処理され、基地局110に送信され得る。基地局110において、UE120および他のUEからのアップリンク信号は、アンテナ234によって受信され、復調器232によって処理され、該当する場合、MIMO検出器236によって検出され、受信プロセッサ238によってさらに処理されて、UE120によって送られた復号されたデータおよび制御情報を取得し得る。受信プロセッサ238は、復号されたデータをデータシンク239に提供し、復号された制御情報をコントローラ/プロセッサ240に提供し得る。基地局110は、通信ユニット244を含み得、通信ユニット244を介してネットワークコントローラ130と通信し得る。ネットワークコントローラ130は、通信ユニット294、コントローラ/プロセッサ290、およびメモリ292を含み得る。
【0032】
基地局110のコントローラ/プロセッサ240、UE120のコントローラ/プロセッサ280、および/または
図2の任意の他の構成要素は、本明細書の他の場所でより詳細に説明するように、伝送制御プロトコル(TCP)および/またはユーザデータグラムプロトコル(UDP)受信オフローディングに関連付けられた1つまたは複数の技法を実行し得る。たとえば、基地局110のコントローラ/プロセッサ240、UE120のコントローラ/プロセッサ280、ネットワークコントローラ130のコントローラ/プロセッサ290、および/または
図2の任意の他の構成要素は、たとえば、
図9のプロセス900および/または本明細書で説明する他のプロセスの動作を実行または指示し得る。メモリ242、282、および292は、それぞれ、基地局110、UE120、およびネットワークコントローラ130のためのデータおよびプログラムコードを記憶し得る。いくつかの態様では、メモリ242、メモリ282、および/またはメモリ292は、ワイヤードおよび/またはワイヤレス通信のための1つまたは複数の命令を記憶する非一時的コンピュータ可読媒体を含み得る。たとえば、1つまたは複数の命令は、基地局110、UE120、および/またはネットワークコントローラ130の1つまたは複数のプロセッサによって実行されると、たとえば、
図9のプロセス900および/または本明細書で説明する他のプロセスの動作を実行または指示し得る。スケジューラ246は、ダウンリンク上および/またはアップリンク上でのデータ送信のためにUEをスケジュールし得る。
【0033】
いくつかの態様では、UE120は、UE120のモデムにおいて複数のデータパケットを受信するための手段、UE120のモデムにおいて複数のデータパケットの第1のサブセットのペイロードをコンテナにグループ化するための手段、モデムを使用して、第1のインターフェースチャネルを介してコンテナをUE120のプロセッサに転送するための手段、モデムを使用して、第2のインターフェースチャネルを介して複数のデータパケットの第2のサブセットをプロセッサに転送するための手段などを含み得る。いくつかの態様では、そのような手段は、コントローラ/プロセッサ280、送信プロセッサ264、TX MIMOプロセッサ266、MOD254、アンテナ252、DEMOD254、MIMO検出器256、受信プロセッサ258などの、
図2に関して説明したUE120の1つまたは複数の構成要素を含み得る。
【0034】
いくつかの態様では、BS110は、BS110のモデムにおいて複数のデータパケットを受信するための手段、BS110のモデムにおいて複数のデータパケットの第1のサブセットのペイロードをコンテナにグループ化するための手段、モデムを使用して、第1のインターフェースチャネルを介してコンテナをBS110のプロセッサに転送するための手段、モデムを使用して、第2のインターフェースチャネルを介して複数のデータパケットの第2のサブセットをプロセッサに転送するための手段などを含み得る。いくつかの態様では、そのような手段は、コントローラ/プロセッサ240、送信プロセッサ220、TX MIMOプロセッサ230、MOD232、アンテナ234、DEMOD232、MIMO検出器236、受信プロセッサ238、通信ユニット244などの、
図2に関して説明したBS110の1つまたは複数の構成要素を含み得る。
【0035】
いくつかの態様では、ネットワークコントローラ130は、ネットワークコントローラ130のモデムにおいて複数のデータパケットを受信するための手段、ネットワークコントローラ130のモデムにおいて複数のデータパケットの第1のサブセットのペイロードをコンテナにグループ化するための手段、モデムを使用して、第1のインターフェースチャネルを介してコンテナをネットワークコントローラ130のプロセッサに転送するための手段、モデムを使用して、第2のインターフェースチャネルを介して複数のデータパケットの第2のサブセットをプロセッサに転送するための手段などを含み得る。いくつかの態様では、そのような手段は、コントローラ/プロセッサ290、通信ユニット294、メモリ292などの、
図2に関して説明したネットワークコントローラ130の1つまたは複数の構成要素を含み得る。
【0036】
上記で示したように、
図2は一例として与えられる。他の例は、
図2に関して説明したものとは異なってもよい。
【0037】
デバイス(たとえば、UE120、BS110、ネットワークコントローラ130など)は、様々な通信プロトコルを使用してデータネットワークおよび/またはワイヤレスネットワークを介して別のデバイスと通信し得る。たとえば、デバイスは、伝送制御プロトコル(TCP)、ユーザデータグラムプロトコル(UDP)、インターネットプロトコル(IP)などを使用して、データパケットを別のデバイスに送信し、かつ/または別のデバイスからデータパケットを受信し得る。モデム(たとえば、受信プロセッサ258、コントローラ/プロセッサ280など)は、受信されたデータパケットをそのデータパケットに関連付けられたプロセッサ(たとえば、アプリケーションプロセッサ、ホストプロセッサなどを実装するコントローラ/プロセッサ280など)に転送し得る。プロセッサは、データパケットの1つまたは複数のヘッダをストリップし、データパケットのペイロードを取得するために、ネットワークプロトコルスタック(たとえば、TCP/IPベースのスタック、UDPベースのスタック、開放型システム間相互接続(OSI)ベースのスタックなど)の1つまたは複数のレイヤを通じてデータパケットを処理し得る。
【0038】
デバイスにおける受信されたデータパケットの処理は、一度に1つのデータパケット(たとえば、一度に1つのTCPセグメント、一度に1つのUDPデータグラムなど)で行われることがあり、このことは、処理の非効率性および/またはデータパケット処理時間の増加をもたらす。たとえば、デバイスのプロセッサは、個々の各データパケットからヘッダを除去またはストリップするために、ネットワークプロトコルスタックの1つまたは複数のレイヤを通じて各データパケットを個別に処理することを必要とすることがある。別の例として、モデムは、データパケットごとの個々のチェックサムを決定するために、(サポートされている場合)チェックサムオフローディングを個別に実行することを必要とすることがある。
【0039】
本明細書で説明するいくつかの態様は、TCPおよび/またはUDP受信オフローディングに関連付けられた技法および装置を提供する。いくつかの態様では、デバイスのプロセッサは、データパケットグループ化をデバイスのモデムにオフローディングすることによって、処理の非効率性を低減かつ/またはデータパケット処理時間を短縮し得る。モデムは、たとえば、特定のフローまたは接続に属するデータパケットをコンテナに合成、合体、および/またはさもなければグループ化し得(たとえば、合体されたTCPフレーム、グループ化されたまたはボックス化されたUDPデータグラムなど)、グループ化されたデータパケットのコンテナをネットワークプロトコルスタックを通じた処理のためにプロセッサに提供し得る。コンテナは、プロセッサが各データパケットから個々のヘッダ(またはヘッダのセット)をストリップまたは除去することとは対照的にコンテナから1つのヘッダ(またはヘッダの1つのセット)をストリップまたは除去することのみを必要とするように、(1つまたは複数の)共通ヘッダを有し得る。
【0040】
いくつかの態様では、モデムは、グループ化されたデータパケットのコンテナに関する指示を、対応するデータパケットの受信されたシーケンスに少なくとも部分的に基づいてプロセッサに提供することが可能である。さらに、モデムは、非グループ化、非合体、非ボックス化などが実行され得るように、コンテナに関連付けられた情報を提供することが可能である。
【0041】
いくつかの態様では、モデムは、グループ化されたデータパケットのコンテナのためのチェックサムオフローディングを実行することが可能である。モデムは、プロセッサが不正確なチェックサムを有するデータパケットに対して適切な措置を取ることができるように、コンテナのチェックサム正確性の指示をプロセッサに提供し得る。
【0042】
いくつかの態様では、モデムは、グループ化されたデータパケットおよびグループ化されていないデータパケットの順序を維持しながら、第1のインターフェースチャネル(たとえば、合体インターフェースチャネル)を介してグループ化されたデータパケットのコンテナをプロセッサに転送し、第2のインターフェースチャネル(たとえば、非合体インターフェースチャネル)を介して個々のデータパケット(たとえば、合体できないまたはグループ化できないデータパケット)をプロセッサに転送することが可能である。
【0043】
図3は、本開示の様々な態様による、TCPおよび/またはUDP受信オフローディングの一例300を示す図である。
図3に示すように、例300は、デバイス(たとえば、UE120、BS110、ネットワークコントローラ130など)によるデータパケットの通信および/または処理を含み得る。デバイスは、構成要素および/またはデバイスの中でも、モデム(たとえば、受信プロセッサ238、コントローラ/プロセッサ240、通信ユニット244、受信プロセッサ258、コントローラ/プロセッサ280、コントローラ/プロセッサ290、通信ユニット294など)およびプロセッサ(たとえば、コントローラ/プロセッサ240、コントローラ/プロセッサ280、コントローラ/プロセッサ290など)を含み得る。いくつかの態様では、モデムは、デバイスに含まれ得るか、またはデバイスに通信可能に接続され得る。いくつかの態様では、プロセッサは、ホストプロセッサ、アプリケーションプロセッサなどであり得る。
【0044】
図3に参照番号302によって示すように、デバイスは、デバイスのモデムにおいて複数のデータパケットを受信し得る。いくつかの態様では、デバイスは、別のデバイスから複数のデータパケットを受信し得る。複数のデータパケットは、データネットワーク(たとえば、インターネットおよび/または別のタイプのパケットデータネットワーク)、ワイヤレスネットワーク(たとえば、ワイヤレスネットワーク100)、基地局(たとえば、基地局110)などを介してデバイスに送信され得る。
【0045】
いくつかの態様では、データパケットは、TCPセグメント、UDPパケット、TCP肯定応答、イーサネットフレーム、非構造化フローに関連付けられたデータパケットなどを含み得る。いくつかの態様では、各データパケットは、1つまたは複数のヘッダにおいてラッピングされたペイロード(たとえば、アプリケーションデータおよび/または他のタイプのデータ)を含み得る。1つまたは複数のヘッダは、トランスポートレイヤヘッダ(たとえば、TCP/IPヘッダ、UDPヘッダ、イーサネットヘッダなど)、ネットワークレイヤヘッダ(たとえば、IPヘッダなど)、リンクレイヤヘッダなどのネットワークプロトコルスタックヘッダを含み得る。
【0046】
図3に参照番号304によってさらに示すように、モデムは、複数のデータパケットの少なくとも第1のサブセットのペイロードをコンテナにグループ化することによって、プロセッサのための受信オフローディングを実行し得る。いくつかの態様では、モデムは、複数のデータパケットの第1のサブセットがグループ化できるまたは合体できるとの決定に少なくとも部分的に基づいて、複数のデータパケットの第1のサブセットのペイロードをコンテナにグループ化すると決定し得る。いくつかの態様では、モデムは、たとえば、データパケットのIPヘッダが同じ識別子フィールド値または逐次的な識別子を有する場合、データパケットのIPヘッダがペイロード長においてのみ異なる場合、データパケットのTCPヘッダまたはUDPヘッダがシーケンス識別子、肯定応答識別子、および/またはチェックサムにおいてのみ異なる場合、TCPヘッダまたはUDPヘッダが長さにおいてのみ異なる場合など、複数のデータパケットの第1のサブセットがグループ化できるまたは合体できると決定し得る。いくつかの態様では、モデムは、たとえば、データパケットがIPフラグメントである場合、データパケットのうちの1つまたは複数がチェックサムエラーを生じた場合、パディングがデータパケットのうちの1つまたは複数に追加された場合、TCPオプションがデータパケット間で異なる場合、データパケットのうちの1つまたは複数のネットワークプロトコルスタックヘッダがしきい値サイズを満たさない場合、データパケットのうちの1つまたは複数のTCPシーケンス番号が他のデータパケットと連続していない場合など、複数のデータパケットの第1のサブセットがグループ化できないまたは合体できないと決定し得る。
【0047】
いくつかの態様では、複数のデータパケットの第1のサブセットは、複数のTCPセグメントを含み得る。モデムは、複数のTCPセグメントが同じTCPフローおよび/または同じTCP接続に関連付けられているとの決定に少なくとも部分的に基づいて、複数のTCPセグメントのペイロードをコンテナにグループ化し得る。いくつかの態様では、複数のTCPセグメントのペイロードの(たとえば、ビット単位、バイト単位、キロバイト単位などでの)全体的なサイズがしきい値サイズ(たとえば、32Kb、64Kbなど)を満たす場合、モデムは複数のTCPセグメントのペイロードのサブセットを異なるコンテナにグループ化し得る。
【0048】
いくつかの態様では、複数のデータパケットの第1のサブセットが複数のTCPセグメントを含む場合、コンテナは合体されたTCPフレームを含み得る。モデムは、単一の共通合体フレームヘッダおよび/またはネットワークプロトコルスタックヘッダの共通セットを(たとえば、第1のTCPセグメントのネットワークプロトコルスタックヘッダのもとで複数のTCPセグメントをグループ化することによって)生成し、合体されたTCPフレームを合体フレームヘッダにおいてラッピングすることによって、複数のTCPセグメントを合体されたTCPフレームにグループ化または合体し得、このことは、プロセッサが複数のTCPセグメントから除去またはストリップすべきであるヘッダの量を低減する。
【0049】
いくつかの態様では、複数のデータパケットの第1のサブセットは、複数のUDPパケットを含み得る。モデムは、複数のUDPパケットが同じUDPストリームおよび/または同じUDP接続に関連付けられているとの決定に少なくとも部分的に基づいて、複数のUDPパケットのペイロードをコンテナにグループ化し得る。いくつかの態様では、複数のUDPパケットのペイロードの(たとえば、ビット単位、バイト単位、キロバイト単位などでの)全体的なサイズがしきい値サイズ(たとえば、31Kb、63Kbなど)を満たす場合、モデムは複数のUDPパケットのペイロードのサブセットを異なるコンテナにグループ化し得る。
【0050】
いくつかの態様では、複数のデータパケットの第1のサブセットが複数のUDPパケットを含む場合、コンテナはグループ化されたまたはボックス化されたUDPデータグラムを含み得る。モデムは、単一の共通グループ化UDPヘッダおよび/またはネットワークプロトコルスタックヘッダの共通セットを(たとえば、第1のUDPパケットのネットワークプロトコルスタックヘッダのもとで複数のUDPパケットをグループ化することによって)生成し、グループ化されたUDPデータグラムをグループ化UDPヘッダにおいてラッピングすることによって、複数のUDPパケットをグループ化されたUDPデータグラムにグループ化または合体し得、このことは、プロセッサが複数のUDPパケットから除去またはストリップすべきであるヘッダの量を低減する。
【0051】
いくつかの態様では、モデムは、コンテナが複数のヘッダを有するように、複数のデータパケットの第1のサブセットのペイロードをコンテナにグループ化し得る。複数のヘッダは、複数の共通合体フレームヘッダ、複数のグループ化UDPヘッダ、(たとえば、複数のデータパケットが合体されることとは対照的にフローごとに蓄積されるように)複数のデータパケットの元のヘッダ、および/または他のタイプのヘッダであり得る。
【0052】
図3に参照番号306によってさらに示すように、モデムは、第1のインターフェースチャネル(たとえば、合体インターフェースチャネル)を介してコンテナをプロセッサに転送し得る(306-1)かつ/または第2のインターフェースチャネル(たとえば、非合体インターフェースチャネル)を介して複数のデータパケットの第2のサブセットをプロセッサに転送し得る(306-2)。複数のデータパケットの第2のサブセットは、合体されていないデータパケットであり得る。いくつかの態様では、モデムは、複数のデータパケットの第2のサブセットをコンテナに合体またはグループ化しないとの決定に少なくとも部分的に基づいて、複数のデータパケットの第2のサブセットが合体できないまたはグループ化できないデータパケット(たとえば、グループ化されるまたは合体されることが不可能であるデータパケット)であるとの決定に少なくとも部分的に基づいてなど、第2のインターフェースチャネルを介して複数のデータパケットの第2のサブセットを転送し得る。
【0053】
いくつかの態様では、第1のインターフェースチャネルおよび第2のインターフェースチャネルは、異なるインターフェースチャネルであり得る。第1のインターフェースチャネルおよび第2のインターフェースチャネルに関連付けられたインターフェースは、周辺構成要素相互接続エクスプレス(PCIe)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、シリアルATA(SATA)インターフェース、イーサネットインターフェース、および/または別のタイプの通信インターフェースであり得る。
【0054】
いくつかの態様では、モデムは、第1のインターフェースチャネルを介して複数のコンテナをならびに/または第2のインターフェースチャネルを介して複数の合体されていないおよび/もしくはグループ化されていないデータパケットをプロセッサに転送し得る。この場合、複数のコンテナのうちの1つまたは複数は、同じTCPフローまたはTCP接続に関連付けられ得る、異なるTCPフローまたは異なるTCP接続に関連付けられ得る、同じUDPストリームまたはUDP接続に関連付けられ得る、異なるUDPストリームまたは異なるUDP接続に関連付けられ得る、などである。
【0055】
図3に参照番号308によってさらに示すように、プロセッサは、コンテナおよび/または複数のデータパケットの第2のサブセットを処理し得る。たとえば、プロセッサは、コンテナに含まれるアプリケーションデータおよび/または他のペイロードデータを取得するためにコンテナから共通フレームヘッダもしくは共通UDPヘッダをおよび/またはコンテナから他の共通ネットワークプロトコルスタックヘッダを除去またはストリップすることによって、ネットワークプロトコルスタックの1つまたは複数のレイヤを通じてコンテナを処理し得る。別の例として、プロセッサは、複数のデータパケットの第2のサブセットに含まれるアプリケーションデータおよび/または他のペイロードデータを取得するために複数のデータパケットの第2のサブセットから個々のネットワークプロトコルスタックヘッダを除去またはストリップすることによって、ネットワークプロトコルスタックの1つまたは複数のレイヤを通じて複数のデータパケットの第2のサブセットを処理し得る。
【0056】
このようにして、デバイスのプロセッサは、データパケットグループ化をデバイスのモデムにオフローディングすることによって、処理の非効率性を低減かつ/またはデータパケット処理時間を短縮し得る。モデムは、たとえば、特定のフローまたは接続に属するデータパケットをコンテナに合成、合体、および/またはさもなければグループ化し得(たとえば、合体されたTCPフレーム、グループ化されたまたはボックス化されたUDPデータグラムなど)、グループ化されたデータパケットのコンテナをネットワークプロトコルスタックを通じた処理のためにプロセッサに提供し得る。コンテナは、プロセッサが各データパケットから個々のヘッダ(またはヘッダのセット)をストリップまたは除去することとは対照的にコンテナから単一のヘッダ(またはヘッダの単一のセット)をストリップまたは除去することを必要とするように、(1つまたは複数の)共通ヘッダを有し得る。
【0057】
上記で示したように、
図3は一例として与えられる。他の例は、
図3に関して説明したものとは異なってもよい。
【0058】
図4は、本開示の様々な態様による、TCPおよび/またはUDP受信オフローディングの一例400を示す図である。
【0059】
図4に示すように、デバイス(たとえば、
図3に関して上記で説明したデバイスおよび/または別のデバイス)は、特定のパケット到着順序でデバイスのモデムにおいて複数のデータパケット(たとえば、パケット1~パケット15)を受信し得る。モデムは、複数のデータパケットのサブセットを複数のコンテナにグループ化し得、第1のインターフェースチャネル(たとえば、合体インターフェースチャネル)を介してコンテナをデバイスのプロセッサに転送し得、第2のインターフェースチャネル(たとえば、非合体インターフェースチャネル)を介して複数のデータパケットのサブセット(たとえば、グループ化されていないまたは合体されていないデータパケット)をプロセッサに転送し得る。
【0060】
いくつかの態様では、デバイスは、マルチプロセッサデバイスにおけるプロセッサごとの使用を可能にするために、複数の並行する合体インターフェースチャネル(および/もしくは合体インターフェースチャネルのグループ)ならびに/または非合体インターフェースチャネル(および/もしくは非合体インターフェースチャネルのグループ)を利用し得る。たとえば、デバイスは、第1の合体インターフェースチャネルおよび第1の非合体インターフェースチャネルが割り当てられた第1のプロセッサを含み得、第2の合体インターフェースチャネルおよび第2の非合体インターフェースチャネルが割り当てられた第2のプロセッサを含み得、以下同様である。
【0061】
いくつかの態様では、複数のコンテナの各コンテナは、合体コンテキスト識別子に関連付けられ得る。たとえば、第1のコンテナはコンテキスト識別子0に関連付けられ得、第2のコンテナはコンテキスト識別子1に関連付けられ得、以下同様である。
【0062】
いくつかの態様では、複数のコンテナをプロセッサに転送するために、モデムは、第1のインターフェースチャネルに関連付けられた1つまたは複数のバッファにわたって複数のコンテナを記憶し得る。たとえば、モデムは、単一のバッファにわたってコンテナを記憶し得る、複数のバッファにわたってコンテナを記憶し得る、などである。
図4の例に示すように、モデムは、コンテキスト識別子0に関連付けられたコンテナに含まれるデータパケットをバッファA(たとえば、パケット1およびパケット3)、バッファC(たとえば、パケット4およびパケット5)、バッファE(たとえば、パケット8およびパケット9)、およびバッファF(たとえば、パケット11およびパケット13)に記憶し得る。
図4の例を続けると、モデムは、コンテキスト識別子1に関連付けられたコンテナに含まれるデータパケットをバッファB(たとえば、パケット2およびパケット6)およびバッファD(たとえば、パケット7およびパケット10)に記憶し得る。
図4の例を続けると、モデムは、コンテキスト識別子2に関連付けられたコンテナに含まれるデータパケットをバッファG(たとえば、パケット12およびパケット14)に記憶し得る。
図4にさらに示すように、モデムは、第2のインターフェースチャネルに関連付けられたバッファにグループ化されていないまたは合体されていないデータパケットを記憶し得る。
【0063】
図4に示すように、モデムはデータパケットを記憶するためにバッファを順不同で利用し得るが、グループ化されていないまたは合体されていないデータパケットは、グループ化されていないまたは合体されていないデータパケットが受信された順序で第2のインターフェースチャネルに関連付けられたバッファに記憶され得る。一例として、モデムがパケット1を受信したとき、モデムは、コンテキスト識別子0に関連付けられたコンテナに空きバッファ(たとえば、バッファA)を割り当て得、バッファAにパケット1を記憶し得る。モデムが受信した次のパケット(たとえば、パケット2)は、異なるTCPフローまたはUDPストリームに関連付けられ得、この場合、モデムは、そのTCPフローまたはUDPストリームのための別のコンテナ(たとえば、コンテキスト識別子1)を開始し得、そのコンテナに次の利用可能なバッファ(たとえば、バッファB)を割り当て得る。
【0064】
図4にさらに示すように、場合によっては、バッファにデータパケットを記憶するとき、モデムはコンテナに割り当てられたバッファを満たし得る。これはバッファ完了と呼ばれることがある。この場合、モデムは、次の利用可能なバッファをコンテナに割り当て得、新しいバッファにコンテナのデータパケットを記憶し得る。たとえば、モデムがバッファAをコンテキスト識別子0に関連付けられたコンテナのデータパケットで満たした場合、モデムは、(たとえば、バッファBがコンテキスト識別子1に関連付けられたコンテナにすでに割り当てられていたので)コンテキスト識別子0に関連付けられたコンテナにバッファCを割り当て得、バッファCにデータパケットを記憶し得る。
【0065】
モデムは、上記で説明したものと同様の方法で、バッファを割り当て、データパケットを記憶し続け得る。さらに、
図4に示すように、モデムはイベントリング内に完了イベントのログを維持し得る。イベントリングは、モデムのメモリ使用量をプロセッサに示すためのデータ構造、1つまたは複数のデータコンテナなどを含み得る。イベントリングは、第1のインターフェースチャネルと第2のインターフェースチャネルとの間の共通イベントリングであり得る。さらに、モデムは、完了イベントが発生した順序で完了イベントがログされるように、イベントリングを維持し得る。たとえば、バッファAの完了(たとえば、バッファAにおけるパケット3の記憶)が1番目に発生し、1番目にイベントリングにログされ、バッファCの完了(たとえば、バッファCにおけるパケット5の記憶)が2番目に発生し、2番目にイベントリングにログされ、バッファBの完了(たとえば、バッファBにおけるパケット6の記憶)が3番目に発生し、3番目にイベントリングにログされ、以下同様である。
【0066】
イベントリング内の完了イベントエントリは、完了イベントに関連付けられた情報を含み得る。たとえば、完了イベントエントリは、完了イベントに関連付けられたバッファに関連付けられたソフトウェアクッキー、バッファが割り当てられたコンテナのコンテキスト識別子、完了イベントに関連付けられたイベントタイプなどをポイントし得る。追加および/または代替として、完了イベントエントリは、バッファ内のデータパケットが記憶されるメモリアドレスを含み得る、ダイレクトメモリアクセス(DMA)のためにモデムによって使用されるメモリの長さを指定し得る、などである。
【0067】
いくつかの態様では、バッファに関連付けられたソフトウェアクッキーは、第1のインターフェースチャネルに関連付けられた転送リング(たとえば、合体転送リング)に記憶され得る。ソフトウェアクッキーは、仮想アドレス、物理アドレスなどの、バッファに関連付けられたバッファアドレスの指示を含み得る。いくつかの態様では、プロセッサは、合体転送リングを介して合体転送リング要素においてバッファに関連付けられたソフトウェアクッキーの指示を送信し得る、合体転送リングを介して第1のインターフェースチャネルに関連付けられたバッファの指示を提供し得る、非合体転送リングを介して第2のインターフェースチャネルに関連付けられたバッファの指示を提供し得る、などである。
【0068】
いくつかの態様では、合体転送リングは、第2のインターフェースチャネルに関連付けられた転送リング(たとえば、非合体転送リング)とは異なってもよく、第1のインターフェースチャネルおよび第2のインターフェースチャネルは、同じ転送リングを使用してもよい。転送リングは、第1のインターフェースチャネルおよび/または第2のインターフェースチャネルのデータバッファに関連付けられたメモリアドレス、メモリ長、ソフトウェアクッキーなどを記憶する、同じデータ構造または別個のデータ構造、同じデータコンテナまたは別個のデータコンテナなどを含み得る。
【0069】
いくつかの態様では、完了イベントのイベントタイプは、完了イベントに関連付けられたバッファが閉じられたという理由に少なくとも部分的に基づき得る。たとえば、バッファ終了(EOB:end of buffer)イベントタイプは、バッファが満たされたことにより、バッファが閉じられたことを示し得る。別の例として、送信終了(EOT:end of transmission)イベントタイプは、バッファへのデータパケットの転送が終了したことにより、バッファが閉じられたことを示し得る。いくつかの態様では、EOTイベントタイプは、データパケットが記憶されるべきであるコンテナ(したがって、バッファ)が閉じられるべきであることを示すフラグ(たとえば、TCP FIN/PUSHフラグ)がデータパケットにおいて設定されたことによってトリガされ得る。いくつかの態様では、EOTイベントタイプは、バッファが割り当てられたコンテナにデータパケットがグループ化されることが不可能であるとモデムが決定したことによってトリガされ得る。
【0070】
上記で示したように、
図4は一例として与えられる。他の例は、
図4に関して説明したものとは異なってもよい。
【0071】
図5は、本開示の様々な態様による、TCPおよび/またはUDP受信オフローディングの一例500を示す図である。
【0072】
図5に示すように、デバイス(たとえば、
図3に関して上記で説明したデバイスおよび/または別のデバイス)は、デバイスのモデムにおいて複数のデータパケットを受信し得る。モデムは、複数のデータパケットのサブセットを複数のコンテナ(たとえば、コンテナ1~5)にグループ化し得、第1のインターフェースチャネル(たとえば、合体インターフェースチャネル)を介してコンテナをデバイスのプロセッサに転送し得、第2のインターフェースチャネル(たとえば、非合体インターフェースチャネル)を介して複数のデータパケットのサブセット(たとえば、グループ化されていないまたは合体されていないデータパケット)をプロセッサに転送し得る。
【0073】
図5に示すように、モデムは、グループ化されていないまたは合体されていないデータパケットを転送する前に、コンテナ1~3をプロセッサに転送し得る。
図5にさらに示すように、モデムは、グループ化されていないまたは合体されていないデータパケットを転送した後に、コンテナ4および5を転送し得る。イベントリング(たとえば、
図4に関して上記で説明したイベントリングおよび/または別のイベントリング)におけるバッファ完了の順序付けを維持するために、モデムは、第2のインターフェースチャネルおよび/または第2のインターフェースチャネルに割り当てられたバッファを閉じるかまたはフラッシュし得る。このようにして、モデムは、コンテナ3に関連付けられたバッファの完了とコンテナ4に関連付けられたバッファの完了との間で第2のインターフェースチャネルに割り当てられたバッファについての完了イベントをログし、このことは、イベントリングにおけるバッファ完了の正確な順序付けを保証する。
【0074】
上記で示したように、
図5は一例として与えられる。他の例は、
図5に関して説明したものとは異なってもよい。
【0075】
図6は、本開示の様々な態様による、TCP受信オフローディングの一例600を示す図である。
【0076】
図6に示すように、デバイス(たとえば、
図3に関して上記で説明したデバイスおよび/または別のデバイス)は、デバイスのモデムにおいて複数のTCPセグメント(たとえば、TCPセグメント1~n)を受信し得る。モデムは、複数のTCPセグメントを合体されたTCPフレームなどのコンテナにグループ化し得、第1のインターフェースチャネル(たとえば、合体インターフェースチャネル)を介して合体されたTCPフレームをデバイスのプロセッサに転送し得る。モデムは、単一の共通合体フレームヘッダおよび/またはネットワークプロトコルスタックヘッダの共通セットを(たとえば、第1のTCPセグメントのネットワークプロトコルスタックヘッダのもとで複数のTCPセグメントをグループ化することによって)生成し、合体されたTCPフレームを合体フレームヘッダにおいてラッピングすることによって、複数のTCPセグメントを合体されたTCPフレームにグループ化または合体し得、このことは、プロセッサが複数のTCPセグメントから除去またはストリップすべきであるヘッダの量を低減する。
【0077】
プロセッサは、合体されたTCPフレームを受信し得、ネットワークプロトコルスタックの1つまたは複数のレイヤを通じて合体されたTCPフレームを処理し得る。たとえば、
図6に示すように、プロセッサは、合体されたTCPフレームから1つまたは複数のリンクレイヤヘッダを除去またはストリップし得、合体されたTCPフレームから1つまたは複数のネットワークレイヤヘッダを除去またはストリップし得、かつ/あるいは、合体されたTCPフレームから1つまたは複数のトランスポートレイヤヘッダを除去またはストリップし得る。プロセッサは、残りのペイロードデータをアプリケーションレイヤに提供し得る。
【0078】
上記で示したように、
図6は一例として与えられる。他の例は、
図6に関して説明したものとは異なってもよい。
【0079】
図7は、本開示の様々な態様による、UDP受信オフローディングの一例700を示す図である。
【0080】
図7に示すように、デバイス(たとえば、
図3に関して上記で説明したデバイスおよび/または別のデバイス)は、デバイスのモデムにおいて複数のUDPパケット(たとえば、UDPパケット1~m)を受信し得る。モデムは、複数のUDPパケットをグループ化されたUDPデータグラムなどのコンテナにグループ化し得、第1のインターフェースチャネル(たとえば、合体インターフェースチャネル)を介してグループ化されたUDPデータグラムをデバイスのプロセッサに転送し得る。モデムは、単一の共通グループ化UDPヘッダおよび/またはネットワークプロトコルスタックヘッダの共通セットを(たとえば、第1のUDPパケットのネットワークプロトコルスタックヘッダのもとで複数のUDPパケットをグループ化することによって)生成し、グループ化されたUDPデータグラムをグループ化UDPヘッダにおいてラッピングすることによって、複数のUDPパケットをグループ化されたUDPデータグラムにグループ化または合体し得、このことは、プロセッサが複数のUDPパケットから除去またはストリップすべきであるヘッダの量を低減する。
【0081】
プロセッサは、グループ化されたUDPデータグラムを受信し得、ネットワークプロトコルスタックの1つまたは複数のレイヤを通じてグループ化されたUDPデータグラムを処理し得る。たとえば、
図7に示すように、プロセッサは、グループ化されたUDPデータグラムから1つまたは複数のリンクレイヤヘッダを除去またはストリップし得、グループ化されたUDPデータグラムから1つまたは複数のネットワークレイヤヘッダを除去またはストリップし得、かつ/あるいは、グループ化されたUDPデータグラムから1つまたは複数のトランスポートレイヤヘッダを除去またはストリップし得る。プロセッサは、残りのペイロードデータをアプリケーションレイヤに提供し得る。
【0082】
上記で示したように、
図7は一例として与えられる。他の例は、
図7に関して説明したものとは異なってもよい。
【0083】
図8は、本開示の様々な態様による、データパケットをグループ化または合体するための共通ヘッダの一例800を示す図である。いくつかの態様では、デバイス(たとえば、
図3に関して上記で説明したデバイスおよび/または別のデバイス)は、
図8に示す共通ヘッダなどの共通ヘッダにおいて複数のデータパケットのペイロードをラッピングすることによって、複数のデータパケットのコンテナを生成し得る。
【0084】
図8に示すように、共通ヘッダは複数のフィールドを含み得る。たとえば、複数のフィールドは、ヘッダタイプフィールド、チェックサム妥当性フィールド、NL量フィールド、クローズ値フィールド、クローズタイプフィールド、コンテキスト識別子フィールド、1つまたは複数のパケット長フィールド、1つまたは複数のチェックサムエラービットマップフィールド、1つまたは複数のパケットの量フィールドなどを含み得る。共通ヘッダは特定の構成および/または量のフィールドを有するものとして例800に示されているが、共通ヘッダは、より多いおよび/またはより少ない量のフィールドを含み得る、
図8に示すフィールドとは異なるフィールドを含み得る、などである。
【0085】
いくつかの態様では、ヘッダタイプフィールドは、共通ヘッダが(たとえば、合体TCPフレームまたはグループ化されたUDPデータグラムのために使用され得る)合体フレームヘッダであることを示すために使用され得る1つまたは複数のビット(たとえば、7ビットおよび/または別の量のビット)を含み得る。いくつかの態様では、チェックサム妥当性フィールドは、デバイスのモデムがデバイスのプロセッサのためのチェックサムオフローディングを実行する場合に使用され得る。チェックサム妥当性フィールドは、コンテナのチェックサムが有効であるかどうかを示すための1つまたは複数のビット(たとえば、1ビットなど)を含み得、有効であることは、デバイスが、個々のデータパケットに対してチェックサム検証を実行することとは対照的に、複数のデータパケットにわたってチェックサム検証を実行することを許可する。
【0086】
いくつかの態様では、クローズタイプフィールドおよびクローズ値フィールドは、共通ヘッダに関連付けられたコンテナを閉じる理由を示すために使用され得る1つまたは複数のビット(たとえば、フィールドごとに4ビットなど)を含み得る。たとえば、1つまたは複数のビットは、共通ヘッダ内のNLフィールドの量がしきい値量を満たしたことにより、コンテナ内のデータパケットの量がしきい値量を満たしたことにより、コンテナのバイトサイズがしきい値サイズを満たしたことにより、強制クローズにより、(たとえば、最長時間未使用(LRU:least recently used)エビクションポリシーに少なくとも部分的に基づく)エビクションによりなど、コンテナが閉じられたことを示し得る。コンテキスト識別子フィールドは、コンテナに関連付けられたコンテキスト識別子を示すために使用され得る1つまたは複数のビット(たとえば、4ビットなど)を含み得る。コンテナ用のしきい値バイトサイズおよび/またはコンテナ用のデータパケットのしきい値量は、モデムとプロセッサとの間でネゴシエートされ得る。たとえば、コンテナがコンテナ用のしきい値バイトサイズおよび/またはコンテナ用のデータパケットのしきい値量を満たすように、プロセッサがコンテナ用のしきい値バイトサイズおよび/またはコンテナ用のデータパケットのしきい値量を指定し得、モデムがデータパケットのペイロードをコンテナにグループ化し得る。
【0087】
いくつかの態様では、NL量フィールドは、共通ヘッダに含まれる複数のパケット番号パケット長(NL)フィールドの量を示すために使用され得る複数のビット(たとえば、3ビットなど)を含み得る。いくつかの態様では、NLフィールドは、パケット長フィールド、チェックサムエラービットマップフィールド、およびパケットの量フィールドの行または組合せを含み得る。パケット長フィールドは、コンテナに含まれるデータパケットの特定のデータパケット長を示すために使用され得る1つまたは複数のビット(たとえば、16ビットなど)を含み得る。パケット長フィールドに関連付けられた(たとえば、パケット長フィールドと同じ行内の)パケットの量フィールドは、関連するパケット長フィールドにおいて示されたパケット長である、コンテナに含まれるデータパケットの量を示すために使用され得る1つまたは複数のビット(たとえば、8ビット)を含み得る。いくつかの態様では、パケットの量フィールドは、コンテナに記憶された同じパケット長の連続するデータパケットの量を含み得る。この場合、異なるパケット長のデータパケットが受信されると、モデムは新しいNLフィールド(たとえば、共通ヘッダ内の新しい行)に移動し得る。結果として、NLフィールドのいくつかの行は、共通ヘッダにおいて同じパケット長を含み得る。
【0088】
いくつかの態様では、チェックサムエラービットマップフィールドは、モデムがチェックサムエラーを検出したデータパケット(たとえば、TCPセグメントまたはUDPパケット)を識別するために使用され得る1つまたは複数のビット(たとえば、48ビットなど)を含み得る。いくつかの態様では、チェックサムエラービットマップフィールドは、共通ヘッダ内のNLフィールドにわたって拡散され得る。たとえば、8ビットおよび/または別の量のビットは、チェックサムエラービットマップフィールドの各NLフィールドに含まれ得る。
【0089】
上記で示したように、
図8は一例として与えられる。他の例は、
図8に関して説明したものとは異なってもよい。
【0090】
図9は、本開示の様々な態様による、転送リング要素フォーマットおよび完了イベントフォーマットの一例900を示す図である。
【0091】
いくつかの態様では、デバイスのプロセッサ(たとえば、
図3に関して上記で説明したデバイスおよび/または別のデバイス)は、転送リングを介して転送リング要素をデバイスのモデムに提供するために、転送リング要素フォーマットを使用し得る。転送リング要素は、合体インターフェースチャネルまたは非合体インターフェースチャネルに関連付けられたバッファのための1つまたは複数のパラメータを識別し得る。
【0092】
図9に示すように、転送リング要素フォーマットは、長さフィールド(LEN)、ポインタフィールド(PTR)、タイプフィールド(TYPE)、ソフトウェアクッキーフィールド(Cookie)などの複数のフィールドを含み得る。いくつかの態様では、転送リング要素フォーマットは、より多いまたはより少ない量のフィールドを含み得る、異なるフィールドを含み得る、などである。いくつかの態様では、長さフィールドは、バッファの利用可能なサイズ(たとえば、ビット単位、バイト単位、キロバイト単位など)を示すために使用され得る。
【0093】
いくつかの態様では、ポインタフィールドは、論理アドレス、物理アドレスなどであり得る、バッファのデータバッファアドレスをポイントするために使用され得る。いくつかの態様では、タイプフィールドは、転送リング要素の転送リング要素タイプを識別し得る。たとえば、タイプフィールドは、(たとえば、バッファが合体インターフェースチャネルに割り当てられるべきであることを示すために)転送リング要素が合体要素であることを示し得る。いくつかの態様では、ソフトウェアクッキーフィールドは、モデムは完了イベントをプロセッサに提供するときに使用すべきであるという、バッファに関連付けられたソフトウェアクッキーを識別し得る。ソフトウェアクッキーは、バッファを識別し得る、バッファのアドレスを識別し得る、などである。
【0094】
いくつかの態様では、デバイスのモデムは、イベントリングを介して完了イベントをプロセッサに提供するために、完了イベントフォーマットを使用し得る。完了イベントフォーマットは、バッファに関連付けられた完了イベントのための1つまたは複数のパラメータを識別し得る。
【0095】
図9に示すように、完了イベントフォーマットは、ソフトウェアクッキーフィールド(Cookie)、完了ステータスフィールド(CODE)、コンテキスト識別子フィールド(たとえば、合体コンテキスト識別子(CCID))、長さフィールド(LEN)、チャネル識別子フィールド(CHID)、タイプフィールド(TYPE)などの複数のフィールドを含み得る。いくつかの態様では、完了イベントフォーマットは、より多いまたはより少ない量のフィールドを含み得る、異なるフィールドを含み得る、などである。
【0096】
いくつかの態様では、ソフトウェアクッキーフィールドは、完了イベントに関連付けられたバッファのソフトウェアクッキーを識別するために使用され得る。いくつかの態様では、完了ステータスフィールドは、バッファへのデータパケットの転送が完了したかどうかを示し得る。いくつかの態様では、コンテキスト識別子フィールドは、バッファに関連付けられたコンテキスト識別子を識別し得る。いくつかの態様では、長さフィールドは、バッファにデータパケットを記憶するために使用された、バッファの利用可能なサイズの量(たとえば、ビット単位、バイト単位、キロバイト単位など)を示すために使用され得る。いくつかの態様では、チャネル識別子フィールドは、バッファが割り当てられるインターフェースチャネル(たとえば、合体インターフェースチャネル、非合体インターフェースチャネルなど)のチャネル識別子を示し得る。いくつかの態様では、タイプフィールドは、完了イベント(たとえば、合体完了イベント、合体されていないデータパケット転送完了イベントなど)の完了イベントタイプを示し得る。
【0097】
上記で示したように、
図9は一例として与えられる。他の例は、
図9に関して説明したものとは異なってもよい。
【0098】
図10は、本開示の様々な態様による、たとえばデバイスによって実行される例示的なプロセス1000を示す図である。例示的なプロセス1000は、デバイス(たとえば、UE120、BS110、ネットワークコントローラ130など)がTCPおよび/またはUDP受信オフローディングに関連付けられた動作を実行する一例である。
【0099】
図10に示すように、いくつかの態様では、プロセス1000は、デバイスのモデムにおいて複数のデータパケットを受信すること(ブロック1010)を含み得る。たとえば、デバイス(たとえば、送信プロセッサ220、受信プロセッサ238、コントローラ/プロセッサ240、メモリ242、通信ユニット244、受信プロセッサ258、送信プロセッサ264、コントローラ/プロセッサ280、メモリ282、コントローラ/プロセッサ290、メモリ292、通信ユニット294などを使用する)は、上記で説明したように、デバイスのモデムにおいて複数のデータパケットを受信し得る。
【0100】
図10にさらに示すように、いくつかの態様では、プロセス1000は、デバイスのモデムにおいて複数のデータパケットの第1のサブセットのペイロードをコンテナにグループ化すること(ブロック1020)を含み得る。たとえば、デバイス(たとえば、送信プロセッサ220、受信プロセッサ238、コントローラ/プロセッサ240、メモリ242、通信ユニット244、受信プロセッサ258、送信プロセッサ264、コントローラ/プロセッサ280、メモリ282、コントローラ/プロセッサ290、メモリ292、通信ユニット294などを使用する)は、上記で説明したように、デバイスのモデムにおいて複数のデータパケットの第1のサブセットのペイロードをコンテナにグループ化し得る。
【0101】
図10にさらに示すように、いくつかの態様では、プロセス1000は、モデムを使用して、第1のインターフェースチャネルを介してコンテナをデバイスのプロセッサに転送すること(ブロック1030)を含み得る。たとえば、デバイス(たとえば、送信プロセッサ220、受信プロセッサ238、コントローラ/プロセッサ240、メモリ242、通信ユニット244、受信プロセッサ258、送信プロセッサ264、コントローラ/プロセッサ280、メモリ282、コントローラ/プロセッサ290、メモリ292、通信ユニット294などを使用する)は、上記で説明したように、モデムを使用して、第1のインターフェースチャネルを介してコンテナをデバイスのプロセッサに転送し得る。
【0102】
図10にさらに示すように、いくつかの態様では、プロセス1000は、モデムを使用して、第2のインターフェースチャネルを介して複数のデータパケットの第2のサブセットをプロセッサに転送すること(ブロック1040)を含み得る。たとえば、デバイス(たとえば、送信プロセッサ220、受信プロセッサ238、コントローラ/プロセッサ240、メモリ242、通信ユニット244、受信プロセッサ258、送信プロセッサ264、コントローラ/プロセッサ280、メモリ282、コントローラ/プロセッサ290、メモリ292、通信ユニット294などを使用する)は、上記で説明したように、モデムを使用して、第2のインターフェースチャネルを介して複数のデータパケットの第2のサブセットをプロセッサに転送し得る。
【0103】
プロセス1000は、以下でおよび/または本明細書の他の場所で説明する1つもしくは複数の他のプロセスに関して説明する、任意の単一の態様または態様の任意の組合せなどの、追加の態様を含み得る。
【0104】
第1の態様では、複数のデータパケットの第1のサブセットは、同じTCPフローに関連付けられた複数のTCPセグメントを含み、コンテナは、合体フレームヘッダを有する合体されたTCPフレームを含む、または、複数のデータパケットの第1のサブセットは、同じUDPストリームに関連付けられた複数のUDPパケットを含み、コンテナは、単一のUDPヘッダを有するグループ化されたUDPデータグラムを含む。第2の態様では、単独でまたは第1の態様と組み合わせて、コンテナに関連付けられたヘッダは、コンテナに関連付けられたコンテキスト識別子を識別するコンテキスト識別子フィールド、複数のデータパケットのうちのいずれかに対してチェックサムエラーが生じたかどうかを識別するチェックサム妥当性フィールド、複数のデータパケットのうちのいずれかに対してチェックサムエラーが生じた場合、チェックサムエラーに関連付けられた複数のデータパケットのうちの1つまたは複数のデータパケットを識別するチェックサムエラービットマップフィールド、複数のパケット番号パケット長(NL)フィールド、または、ヘッダに含まれるNLフィールドの量を識別するNL量フィールドのうちの少なくとも1つを含む。
【0105】
第3の態様では、単独でまたは第1および第2の態様のうちの1つもしくは複数と組み合わせて、第1のインターフェースチャネルは、第1の転送リングに関連付けられ、第2のインターフェースチャネルは、第2の転送リングに関連付けられ、第1の転送リングおよび第2の転送リングは、異なる転送リングである。第4の態様では、単独でまたは第1~第3の態様のうちの1つもしくは複数と組み合わせて、プロセス1000は、プロセッサを使用して、第1の転送リングを介して、第1のインターフェースチャネルに関連付けられた1つまたは複数の第1のバッファの指示をモデムに提供することと、プロセッサを使用して、第2の転送リングを介して、第2のインターフェースチャネルに関連付けられた1つまたは複数の第2のバッファの指示をモデムに提供することとをさらに含む。
【0106】
第5の態様では、単独でまたは第1~第4の態様のうちの1つもしくは複数と組み合わせて、第1のインターフェースチャネルを介してコンテナを転送することは、第1の転送リングを介した1つまたは複数の第1のバッファの指示に少なくとも部分的に基づいて、1つまたは複数の第1のバッファにコンテナを記憶することを含み、第2のインターフェースチャネルを介して複数のデータパケットの第2のサブセットを転送することは、第2の転送リングを介した1つまたは複数の第2のバッファの指示に少なくとも部分的に基づいて、1つまたは複数の第2のバッファに複数のデータパケットの第2のサブセットを記憶することを含む。第6の態様では、単独でまたは第1~第5の態様のうちの1つもしくは複数と組み合わせて、コンテナは、第1のインターフェースチャネルを介してプロセッサに転送されるべき複数のコンテナの中に含まれ、第1のインターフェースチャネルを介してコンテナを転送することは、複数のコンテナのそれぞれのアクティビティレベルに少なくとも部分的に基づく順序で、1つまたは複数の第1のバッファのうちのそれぞれのバッファに複数のコンテナの各々を記憶することを含む。
【0107】
第7の態様では、単独でまたは第1~第6の態様のうちの1つもしくは複数と組み合わせて、プロセス1000は、プロセッサを使用して、第1のインターフェースチャネルに関連付けられた1つまたは複数のバッファの指示をモデムに提供することをさらに含み、1つまたは複数のバッファの指示は、第1の転送リングを介して合体転送リング要素において提供され、1つまたは複数のバッファの指示は、1つまたは複数のバッファの各々に関連付けられたそれぞれのソフトウェアクッキーの指示を含む。第8の態様では、単独でまたは第1~第7の態様のうちの1つもしくは複数と組み合わせて、第1のインターフェースチャネルを介してコンテナを転送することは、1つまたは複数のバッファにわたってコンテナを記憶することと、モデムを使用して、コンテナを記憶したことに少なくとも部分的に基づいて、合体完了イベントの指示をプロセッサに提供することとを含み、合体完了イベントの指示は、第1のインターフェースチャネルおよび第2のインターフェースチャネルに関連付けられた共有イベントリングを介して提供され、合体完了イベントの指示は、1つまたは複数のバッファの各々に関連付けられたそれぞれのソフトウェアクッキーおよびコンテナに関連付けられた合体コンテキスト識別子を識別する。
【0108】
第9の態様では、単独でまたは第1~第8の態様のうちの1つもしくは複数と組み合わせて、複数のデータパケットの第2のサブセットを転送することは、モデムを使用して、完了イベントの指示をプロセッサに提供することを含み、完了イベントの指示は、共有イベントリングを介して提供され、合体完了イベントの指示および完了イベントの指示は、コンテナおよび複数のデータパケットの第2のサブセットがプロセッサに転送された順序に少なくとも部分的に基づいて、イベントリングにおいて順序付けられる。第10の態様では、単独でまたは第1~第9の態様のうちの1つもしくは複数と組み合わせて、1つまたは複数のバッファにわたってコンテナを記憶することは、第1のバッファが満たされるまで、1つまたは複数のバッファのうちの第1のバッファにコンテナを記憶することと、第1のバッファが満たされたことに少なくとも部分的に基づいて、第1のバッファを閉じることと、第1のバッファに関連付けられたイベントコードおよびコンテキスト識別子を生成することと、1つまたは複数のバッファのうちの第2のバッファにコンテナの残りを記憶することとを含む。第11の態様では、単独でまたは第1~第10の態様のうちの1つもしくは複数と組み合わせて、コンテナは、複数のコンテナの中に含まれ、第1のインターフェースチャネルを介してコンテナを転送することは、第1のインターフェースチャネルを介して複数のコンテナを転送することを含み、複数のコンテナの各々は、それぞれのTCP接続またはUDP接続に関連付けられる。
【0109】
第12の態様では、単独でまたは第1~第11の態様のうちの1つもしくは複数と組み合わせて、複数のデータパケットの第1のサブセットのペイロードをコンテナにグループ化することは、複数のデータパケットの第1のサブセットは合体されることが可能であると決定することと、複数のデータパケットの第1のサブセットは合体されることが可能であるとの決定に少なくとも部分的に基づいて、複数のデータパケットの第1のサブセットのペイロードをコンテナにグループ化することとを含み、第2のインターフェースチャネルを介して複数のデータパケットの第2のサブセットを転送することは、複数のデータパケットの第2のサブセットは合体されることが不可能であると決定することと、複数のデータパケットの第2のサブセットは合体されることが不可能であるとの決定に少なくとも部分的に基づいて、第2のインターフェースチャネルを介して複数のデータパケットの第2のサブセットを転送することとを含む。第13の態様では、単独でまたは第1~第12の態様のうちの1つもしくは複数と組み合わせて、複数のデータパケットの第1のサブセットのペイロードをコンテナにグループ化することは、コンテナを閉じることと、コンテナが記憶されるべきであるバッファに関連付けられたイベントコードおよびコンテキスト識別子を生成することとを含む。
【0110】
第14の態様では、単独でまたは第1~第13の態様のうちの1つもしくは複数と組み合わせて、コンテナを閉じることは、コンテナが閉じられるべきであることを示す、複数のデータパケットの第1のサブセットのデータパケットに含まれるフラグを識別すること、または、複数のデータパケットの第2のサブセットのデータパケットは複数のデータパケットの第1のサブセットと合体されることが不可能であると決定することのうちの少なくとも1つを含む。第15の態様では、単独でまたは第1~第14の態様のうちの1つもしくは複数と組み合わせて、プロセス1000は、第1のインターフェースチャネルを介して別のコンテナを転送すると決定することと、第1のインターフェースチャネルを介して別のコンテナを転送するとの決定に少なくとも部分的に基づいて、第2のインターフェースチャネルを閉じることとをさらに含む。第16の態様では、単独でまたは第1~第15の態様のうちの1つもしくは複数と組み合わせて、プロセッサは、アプリケーションプロセッサ、またはホストプロセッサであり、第1のインターフェースチャネルおよび第2のインターフェースチャネルに関連付けられたインターフェースは、周辺構成要素相互接続エクスプレスインターフェース、ユニバーサルシリアルバスインターフェース、シリアルATAインターフェース、またはイーサネットインターフェースである。
【0111】
第17の態様では、単独でまたは第1~第16の態様のうちの1つもしくは複数と組み合わせて、複数のデータパケットの第1のサブセットは、同じフローまたは同じストリームに関連付けられ、コンテナは、同じフローまたは同じストリームに関連付けられた複数のヘッダを含む。第18の態様では、単独でまたは第1~第17の態様のうちの1つもしくは複数と組み合わせて、複数のデータパケットの第1のサブセットのペイロードをコンテナにグループ化することは、モデムにおいて、プロセッサから、コンテナ用のしきい値バイトサイズまたはコンテナ用のデータパケットのしきい値量のうちの少なくとも1つの指示を受信することと、コンテナ用のしきい値バイトサイズまたはコンテナ用のデータパケットのしきい値量のうちの少なくとも1つに少なくとも部分的に基づいて、モデムにおいて複数のデータパケットの第1のサブセットのペイロードをコンテナにグループ化することとを含む。第19の態様では、単独でまたは第1~第18の態様のうちの1つもしくは複数と組み合わせて、複数のデータパケットの第1のサブセットは、複数のTCPセグメント、複数のUDPパケット、複数のイーサネットフレーム、または複数の非構造化パケットを含む。
【0112】
図10は、プロセス1000の例示的なブロックを示すが、いくつかの態様では、プロセス1000は、
図10に示すものと比べて、追加のブロック、より少ないブロック、異なるブロック、または異なるように配置されたブロックを含んでもよい。追加または代替として、プロセス1000のブロックのうちの2つ以上が並行して実行されてもよい。
【0113】
上記の開示は、例示および説明を提供するものであり、網羅的なものでも、または態様を開示された厳密な形態に限定するものでもない。修正および変形が、上記の開示に照らして行われてもよく、または態様の実践から獲得されてもよい。
【0114】
本明細書で使用する「構成要素」という用語は、ハードウェア、ファームウェア、および/またはハードウェアとソフトウェアの組合せとして広く解釈されるものとする。本明細書で使用するプロセッサは、ハードウェア、ファームウェア、および/またはハードウェアとソフトウェアの組合せにおいて実装される。
【0115】
本明細書で使用する「しきい値を満たすこと」は、文脈に応じて、値がしきい値よりも大きいこと、しきい値以上であること、しきい値未満であること、しきい値以下であること、しきい値に等しいこと、しきい値に等しくないことなどを指すことがある。
【0116】
本明細書で説明するシステムおよび/または方法が異なる形態のハードウェア、ファームウェア、および/またはハードウェアとソフトウェアの組合せにおいて実装され得ることは明らかであろう。これらのシステムおよび/または方法を実装するために使用される実際の専用の制御ハードウェアまたはソフトウェアコードは、態様を限定するものではない。したがって、システムおよび/または方法の動作および挙動について、特定のソフトウェアコードを参照することなく本明細書で説明した。ソフトウェアおよびハードウェアは、本明細書での説明に少なくとも部分的に基づいてシステムおよび/または方法を実装するように設計され得ることを理解されたい。
【0117】
特徴の特定の組合せが特許請求の範囲において列挙され、かつ/または本明細書で開示されても、これらの組合せは、様々な態様の開示を限定するものではない。実際には、これらの特徴の多くが、特許請求の範囲において具体的に列挙されない方法で、および/または本明細書で開示されない方法で組み合わされてもよい。以下に記載する各従属クレームは、1つのみのクレームに直接従属し得るが、様々な態様の開示は、クレームセットの中のあらゆる他のクレームと組み合わせた各従属クレームを含む。項目のリスト「のうちの少なくとも1つ」を指す句は、単一のメンバーを含むそれらの項目の任意の組合せを指す。一例として、「a、b、またはcのうちの少なくとも1つ」は、a、b、c、a-b、a-c、b-c、およびa-b-c、ならびに複数の同じ要素を有する任意の組合せ(たとえば、a-a、a-a-a、a-a-b、a-a-c、a-b-b、a-c-c、b-b、b-b-b、b-b-c、c-c、およびc-c-c、または任意の他の順序のa、b、およびc)を包含するものとする。
【0118】
本明細書で使用する要素、行為、または命令はいずれも、そのようなものとして明示的に説明されない限り、重要または不可欠であるものと解釈されるべきではない。また、本明細書で使用する冠詞「a」および「an」は、1つまたは複数の項目を含むものとし、「1つまたは複数の」と互換的に使用されてもよい。さらに、本明細書で使用する「セット」および「グループ」という用語は、1つまたは複数の項目(たとえば、関連する項目、関連しない項目、関連する項目と関連しない項目の組合せなど)を含むものとし、「1つまたは複数の」と互換的に使用されてもよい。1つのみの項目が意図される場合、「1つのみの」という句または同様の言葉が使用される。また、本明細書で使用する「有する(has)」、「有する(have)」、「有する(having)」などの用語は、オープンエンド用語であるものとする。さらに、「に基づいて」という句は、別段に明記されていない限り、「に少なくとも部分的に基づいて」を意味するものとする。
【符号の説明】
【0119】
100 ワイヤレスネットワーク
102a マクロセル
102b ピコセル
102c フェムトセル
110 BS、基地局
110a BS、マクロBS
110b BS
110c BS
110d BS、中継局
120、120a、120b、120c、120d、120e UE
130 ネットワークコントローラ
200 設計
212 データソース
220 送信プロセッサ
230 送信(TX)多入力多出力(MIMO)プロセッサ、TX MIMOプロセッサ
232 変調器、復調器、MOD、DEMOD
232a~232t 変調器(MOD)、変調器
234、234a~234t アンテナ
236 MIMO検出器
238 受信プロセッサ
239 データシンク
240 コントローラ/プロセッサ
242 メモリ
244 通信ユニット
246 スケジューラ
252、252a~252r アンテナ
254 復調器、MOD、DEMOD
254a~254r 復調器(DEMOD)、復調器、変調器
256 MIMO検出器
258 受信プロセッサ
260 データシンク
262 データソース
264 送信プロセッサ
266 TX MIMOプロセッサ
280 コントローラ/プロセッサ
282 メモリ
290 コントローラ/プロセッサ
292 メモリ
294 通信ユニット
300、400、500、600、700、800 例
900 例、プロセス
1000 プロセス
【国際調査報告】