(57)【要約】  メモリ管理の方法、装置、およびシステムが提供される。メモリ管理の方法は、メモリ管理ハードウェアアクセラレータによって実行され、メモリ管理ハードウェアアクセラレータは、アプリケーションサブシステム（501）および通信サブシステム（503）に結合される。アプリケーションサブシステム（501）はメインオペレーティングシステムを実行するように構成され、通信サブシステム（503）は通信オペレーティングシステムを実行するように構成される。方法は、メインオペレーティングシステムによって通信サブシステムに割り当てられた動的メモリ空間に対応するメモリアドレスのセットを取得するステップ（S001）であって、メモリアドレスのセットが1つまたは複数のメモリアドレスを含む、ステップ（S001）と、メモリアドレスのセット内のいくつかのメモリアドレスを通信サブシステムの構成要素に送信するステップ（S002）とを含む。
2021526766.tif 000002
【特許請求の範囲】
【請求項１】
メインオペレーティングシステムを実行するように構成されたアプリケーションサブシステムと、
通信オペレーティングシステムを実行するように構成された通信サブシステムと、
前記アプリケーションサブシステムおよび前記通信サブシステムに結合され、
前記メインオペレーティングシステムによって前記通信サブシステムに割り当てられた動的メモリ空間に対応するメモリアドレスのセットを取得し、メモリアドレスの前記セットが1つまたは複数のメモリアドレスを備え、
メモリアドレスの前記セット内のいくつかのメモリアドレスを前記通信サブシステムの構成要素に送信する
ように構成されたメモリ管理ハードウェアアクセラレータと
を備える、ワイヤレス通信装置。
【請求項２】
前記通信サブシステムの前記構成要素が第1のメモリを備え、前記第1のメモリが、前記メモリ管理ハードウェアアクセラレータから受信されたメモリアドレスを格納するように構成される、
請求項1に記載のワイヤレス通信装置。
【請求項３】
前記メモリ管理ハードウェアアクセラレータが、
前記通信サブシステムの前記構成要素のカテゴリに基づいて、メモリアドレスの前記セット内のいくつかのメモリアドレスを前記第1のメモリに送信する
ように構成される、請求項2に記載のワイヤレス通信装置。
【請求項４】
前記メモリ管理ハードウェアアクセラレータが、
メモリアドレスの前記セット内のいくつかのメモリアドレスを前記第1のメモリに周期的に送信する
ように構成される、請求項2または3に記載のワイヤレス通信装置。
【請求項５】
前記メモリ管理ハードウェアアクセラレータが、
第1のイベントのトリガリングに基づいて、メモリアドレスの前記セット内のいくつかのメモリアドレスを前記第1のメモリに送信する
ように構成される、請求項2または3に記載のワイヤレス通信装置。
【請求項６】
前記第1のイベントが、
前記第1のメモリに格納されたメモリアドレスの数が第1の下限しきい値より少ないこと
を備える、請求項5に記載のワイヤレス通信装置。
【請求項７】
前記第1のイベントが、
前記通信サブシステムの前記構成要素からの第1のハードウェア割込み要求
を備える、請求項5に記載のワイヤレス通信装置。
【請求項８】
前記通信サブシステムの前記構成要素が第2のメモリをさらに備え、前記第2のメモリが、前記メモリ管理ハードウェアアクセラレータから受信され、前記通信サブシステムの前記構成要素によって使用されているメモリアドレスを格納するように構成される、
請求項1から7のいずれか一項に記載のワイヤレス通信装置。
【請求項９】
前記メモリ管理ハードウェアアクセラレータが、
第2のイベントのトリガリングに基づいて、前記第2のメモリに格納される前記メモリアドレスを受信する
ようにさらに構成される、請求項8に記載のワイヤレス通信装置。
【請求項１０】
前記第2のイベントが、
前記第2のメモリに格納されたメモリアドレスの数が第2の上限しきい値を超えること
を備える、請求項9に記載のワイヤレス通信装置。
【請求項１１】
前記第2のイベントが、
前記通信サブシステムの前記構成要素からの第2のハードウェア割込み要求
を備える、請求項10に記載のワイヤレス通信装置。
【請求項１２】
メモリアドレスの前記セット内の前記メモリアドレスが、前記メモリ管理ハードウェアアクセラレータの内蔵メモリに格納される、
請求項1から10のいずれか一項に記載のワイヤレス通信装置。
【請求項１３】
メモリアドレスの前記セットが、相互接続バスを介して前記メモリ管理ハードウェアアクセラレータに接続されるメモリに格納される、
請求項1から10のいずれか一項に記載のワイヤレス通信装置。
【請求項１４】
前記メモリ管理ハードウェアアクセラレータが、
メモリアドレスの前記セットのステータス情報を検出し、メモリアドレスの前記セットの前記ステータス情報が、メモリアドレスの前記セット内のメモリアドレスの数を示すために使用される、
ようにさらに構成される、請求項1から13のいずれか一項に記載のワイヤレス通信装置。
【請求項１５】
前記メモリ管理ハードウェアアクセラレータが、
メモリアドレスの前記セット内のメモリアドレスの前記数が第3の下限しきい値より少ないことが検出されると、メモリアドレスの前記セットをいくつかのメモリアドレスで補足するように前記メインオペレーティングシステムに指示する
ようにさらに構成される、請求項14に記載のワイヤレス通信装置。
【請求項１６】
前記メモリ管理ハードウェアアクセラレータが、
メモリアドレスの前記セット内のメモリアドレスの前記数が第3の上限しきい値より多いことが検出されると、メモリアドレスの前記セットからいくつかのメモリアドレスを再請求するように前記メインオペレーティングシステムに指示する
ようにさらに構成される、請求項14または15に記載のワイヤレス通信装置。
【請求項１７】
前記第2のイベントのトリガリングに基づいて前記第2のメモリから受信された前記メモリアドレスが、第4のメモリに格納され、
前記第4のメモリが、前記メモリ管理ハードウェアアクセラレータの内蔵メモリである、
請求項9から16のいずれか一項に記載のワイヤレス通信装置。
【請求項１８】
前記メモリ管理ハードウェアアクセラレータが、
前記第4のメモリ内のメモリアドレスの数が第4の上限しきい値より多いことが検出されると、前記第4のメモリから前記メモリアドレスを再請求するように前記メインオペレーティングシステムに指示する
ようにさらに構成される、請求項17に記載のワイヤレス通信装置。
【請求項１９】
前記メモリ管理ハードウェアアクセラレータが、
前記メインオペレーティングシステムによって前記通信サブシステムに割り当てられた前記動的メモリ空間に対応するメモリアドレスを周期的に取得し、前記周期的に取得されたメモリアドレスもメモリアドレスの前記セットにグループ化される、
ように構成される、請求項1から13のいずれか一項に記載のワイヤレス通信装置。
【請求項２０】
前記メインオペレーティングシステムによって前記通信サブシステムに割り当てられた前記動的メモリ空間に対応するメモリアドレスを取得するためのサイクルが、メモリアドレスの前記セット内のいくつかのメモリアドレスを前記第1のメモリに送信するためのサイクルより大きい、
請求項19に記載のワイヤレス通信装置。
【請求項２１】
前記メインオペレーティングシステムによって前記通信サブシステムに割り当てられた前記動的メモリ空間に対応するメモリアドレスが、複数の異なるレベルのポインタに格納され、
同じレベルのポインタが同じサイズのメモリ空間に対応し、異なるレベルのポインタが異なるサイズのメモリ空間に対応する、
請求項1から20のいずれか一項に記載のワイヤレス通信装置。
【請求項２２】
前記メモリ管理ハードウェアアクセラレータの構成要素および前記通信サブシステムの前記構成要素が、同じチップに統合される、
請求項1から21のいずれか一項に記載のワイヤレス通信装置。
【請求項２３】
前記通信サブシステムの前記構成要素が、前記通信サブシステムの処理コア、前記通信サブシステムのハードウェアアクセラレータ、または前記通信サブシステムのベースバンドプロセッサのうちの1つまたは複数を備える、
請求項1から22のいずれか一項に記載のワイヤレス通信装置。
【請求項２４】
前記ワイヤレス通信装置がスマートフォンである、
請求項1から23のいずれか一項に記載のワイヤレス通信装置。
【請求項２５】
前記ワイヤレス通信装置がスマートフォンのシステムオンチップSoCである、
請求項1から23のいずれか一項に記載のワイヤレス通信装置。
【請求項２６】
メモリ管理の方法であって、前記方法がメモリ管理ハードウェアアクセラレータによって実行され、前記メモリ管理ハードウェアアクセラレータがアプリケーションサブシステムおよび通信サブシステムに結合され、前記アプリケーションサブシステムがメインオペレーティングシステムを実行するように構成され、前記通信サブシステムが通信オペレーティングシステムを実行するように構成され、前記方法が、
前記メインオペレーティングシステムによって前記通信サブシステムに割り当てられた動的メモリ空間に対応するメモリアドレスのセットを取得するステップであって、メモリアドレスの前記セットが1つまたは複数のメモリアドレスを備える、ステップと、
メモリアドレスの前記セット内のいくつかのメモリアドレスを前記通信サブシステムの構成要素に送信するステップと
を備える、方法。
【請求項２７】
メモリアドレスの前記セット内のいくつかのメモリアドレスを送信する前記ステップが、
前記通信サブシステムの前記構成要素のカテゴリに基づいて、メモリアドレスの前記セット内のいくつかのメモリアドレスを前記通信サブシステムの前記構成要素に送信するステップ
を備える、請求項26に記載の方法。
【請求項２８】
メモリアドレスの前記セット内のいくつかのメモリアドレスを送信する前記ステップが、
メモリアドレスの前記セット内のいくつかのメモリアドレスを前記通信サブシステムの前記構成要素に周期的に送信するステップ
を備える、請求項26または27に記載の方法。
【請求項２９】
メモリアドレスの前記セット内のいくつかのメモリアドレスを送信する前記ステップが、
第1のイベントのトリガリングに基づいて、メモリアドレスの前記セット内のいくつかのメモリアドレスを前記通信サブシステムの前記構成要素に送信するステップ
を備える、請求項26または27に記載の方法。
【請求項３０】
前記第1のイベントが、
前記通信サブシステムの前記構成要素内のメモリアドレスの数が第1の下限しきい値より少ないこと
を備える、請求項29に記載の方法。
【請求項３１】
前記第1のイベントが、
前記通信サブシステムの前記構成要素からの第1のハードウェア割込み要求
を備える、請求項29に記載の方法。
【請求項３２】
前記方法が、
第2のイベントのトリガリングに基づいて、前記通信サブシステムの前記構成要素によって使用されている、前記メモリ管理アクセラレータからのメモリアドレスを受信するステップ
をさらに備える、請求項26から31のいずれか一項に記載の方法。
【請求項３３】
前記第2のイベントが、
前記通信サブシステムの前記構成要素によって使用されている、前記メモリ管理アクセラレータからのメモリアドレスの数が、第2の上限しきい値より多いこと
を備える、請求項32に記載の方法。
【請求項３４】
前記第2のイベントが、
前記通信サブシステムの前記構成要素からの第2のハードウェア割込み要求
を備える、請求項32に記載の方法。
【請求項３５】
前記方法が、
メモリアドレスの前記セットのステータス情報を検出するステップであって、メモリアドレスの前記セットの前記ステータス情報が、メモリアドレスの前記セット内のメモリアドレスの数を示すために使用される、ステップ
をさらに備える、請求項26から34のいずれか一項に記載の方法。
【請求項３６】
前記方法が、
メモリアドレスの前記セット内のメモリアドレスの前記数が第3の下限しきい値より少ないことが検出されると、メモリアドレスの前記セットをいくつかのメモリアドレスで補足するように前記メインオペレーティングシステムに指示するステップ
をさらに備える、請求項35に記載の方法。
【請求項３７】
前記方法が、
メモリアドレスの前記セット内のメモリアドレスの前記数が第3の上限しきい値より多いことが検出されると、メモリアドレスの前記セットからいくつかのメモリアドレスを再請求するように前記メインオペレーティングシステムに指示するステップ
をさらに備える、請求項35または36に記載の方法。
【請求項３８】
前記方法が、
前記メインオペレーティングシステムによって前記通信サブシステムに割り当てられた前記動的メモリ空間に対応するメモリアドレスを周期的に取得するステップであって、前記周期的に取得されたメモリアドレスもメモリアドレスの前記セットにグループ化される、ステップ
をさらに備える、請求項26から34のいずれか一項に記載の方法。
【請求項３９】
前記メインオペレーティングシステムによって前記通信サブシステムに割り当てられた前記動的メモリ空間に対応するメモリアドレスを取得するためのサイクルが、メモリアドレスの前記セット内のいくつかのメモリアドレスを前記通信サブシステムの前記構成要素に送信するためのサイクルより大きい、
請求項38に記載の方法。
【請求項４０】
前記方法が、
前記メインオペレーティングシステムによって前記通信サブシステムに割り当てられた前記動的メモリ空間に対応するメモリアドレスを複数の異なるレベルのポインタに格納するステップ
を備え、
同じレベルのポインタが同じサイズのメモリ空間に対応し、異なるレベルのポインタが異なるサイズのメモリ空間に対応する、
請求項26から39のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、電子技術の分野に関し、詳細には、メモリ管理の方法、装置、およびシステムに関する。
【背景技術】
【０００２】
現代社会では、携帯電話、パーソナルコンピュータ、およびスマートウォッチなどの小型コンピューティングデバイス（computing device）から、サーバ、スイッチ、および基地局などの大型コンピューティングデバイスまで、コンピューティングデバイス（computing device）はいたるところにある。これらのコンピューティングデバイスは、通常、コンピュータシステム（computer system）として抽象化される。コンピュータシステムは、プロセッサおよびメモリなどのハードウェア構成要素だけでなく、オペレーティングシステムおよびアプリケーションなどのソフトウェア構成要素も含む。
【０００３】
技術の進化に伴い、コンピューティングデバイスはますます豊富な機能を提供することができる。一例として携帯電話が使用される。初期のフィーチャフォンから今日のスマートフォンまで、携帯電話のマルチメディア処理能力は絶え間なく強化され、携帯電話によってサポートされる最高のモバイル通信速度も絶え間なく向上している。これらの基礎技術の進歩は、モバイルインターネット業界の活発な発展のための確固たる基盤を提供し、人々のコミュニケーションおよび生活を大いに豊かにする。
【０００４】
加えて、コンピューティングデバイスの構造はより複雑になっている。一態様では、携帯電話プラットフォームのオペレーティングシステム（operating system、OS）は、初期のシンビアン（Symbian）オペレーティングシステムから、現在のアンドロイド（登録商標）（Android）オペレーティングシステムおよびアイフォンオペレーティングシステム（iPhone（登録商標） OS、iOS）に進化している。これらの新しいオペレーティングシステムはサードパーティソフトウェアに公開され、多種多様なモバイルアプリケーション（application、App）を生み出している。別の態様では、より強力なマルチメディア処理能力およびより高いモバイル通信速度をサポートするために、携帯電話のシステム構造は絶え間なく進化しており、より強力な仕様、マルチモード収束通信サブシステム、および大容量マルチキャッシュ（cache）ストレージ（storage）サブシステムを備えるメインコンピューティングシステムを含む。
【発明の概要】
【０００５】
メモリ（memory）容量およびアクセスレートは、コンピューティングデバイスのパフォーマンスにとって重要である。したがって、アプリケーション要件により適したメモリ管理ソリューションを提供することが必要である。
【課題を解決するための手段】
【０００６】
本出願の実施形態は、コンピューティングデバイスのパフォーマンスを向上させるか、またはコンピューティングデバイスのコストを削減するために、メモリ管理の方法、装置、およびシステムを提供する。
【０００７】
本出願の実施形態において提供される解決策では、特に明記しない限り、メモリは、通常、コンピュータシステムのメインメモリであることを理解されたい。メインメモリは、プロセッサがプログラムを実行するときに必要な関連データおよびプログラム命令を一時的に格納するように構成される。メインメモリは、通常、DRAMであるか、あるいは、SRAM、またはDRAMもしくはSRAMの機能と同じもしくは同様の機能を提供することができる別のメモリであってよい。
【０００８】
本出願の実施形態において提供される解決策では、コンピューティングデバイスは、通常、コンピュータシステムとして抽象化することができるデバイスであることを理解されたい。ワイヤレス通信機能をサポートするコンピューティングデバイスは、ワイヤレス通信デバイスと呼ばれる場合がある。ワイヤレス通信装置は、コンピューティングデバイスであってもよく、コンピューティングデバイスの構成要素、たとえば、ワイヤレス通信機能に関連するチップ、たとえば、システムチップまたは通信チップであってもよい。システムチップは、システムオンチップとも呼ばれるか、またはSoCチップと呼ばれる。具体的には、ワイヤレス通信装置は、スマートフォンなどの端末であってもよく、端末内に配置することができるシステムチップまたは通信チップであってもよい。加えて、ワイヤレス通信装置は、基地局などの無線アクセスネットワークデバイスであってもよく、無線アクセスネットワークデバイス内に配置することができる関連チップ、たとえば、SoCチップまたは通信チップであってもよい。通信チップは、無線周波数処理チップおよびベースバンド処理チップを含んでよい。ベースバンド処理チップは、モデム（modem）とも呼ばれる。物理的な実装形態では、通信チップはSoCチップに統合されてもよく、SoCチップに統合されなくてもよい。たとえば、ベースバンド処理チップはSoCチップに統合されるが、無線周波数処理チップはSoCチップに統合されない。
【０００９】
第1の態様によれば、
メインオペレーティングシステムを実行するように構成されたメインコンピューティングシステムと、補助オペレーティングシステムを実行するように構成された機能サブシステムと、メインコンピューティングシステムおよび機能サブシステムに結合され、
メインオペレーティングシステムによって機能サブシステムに割り当てられた動的メモリ空間に対応するメモリアドレスのセットを取得し、メモリアドレスのセットが1つまたは複数のメモリアドレスを含み、メモリアドレスのセット内のいくつかのメモリアドレスを機能サブシステムの構成要素に送信する
ように構成されたメモリ管理装置と
を含む、コンピュータシステムが提供される。
【００１０】
第2の態様によれば、
メインオペレーティングシステムを実行するように構成されたアプリケーションサブシステムと、通信オペレーティングシステムを実行するように構成された通信サブシステムと、アプリケーションサブシステムおよび通信サブシステムに結合され、
メインオペレーティングシステムによって通信サブシステムに割り当てられた動的メモリ空間に対応するメモリアドレスのセットを取得し、メモリアドレスのセットが1つまたは複数のメモリアドレスを含み、メモリアドレスのセット内のいくつかのメモリアドレスを通信サブシステムの構成要素に送信する
ように構成されたメモリ管理ハードウェアアクセラレータと
を含む、ワイヤレス通信装置が提供される。
【００１１】
第3の態様によれば、
通信オペレーティングシステムを実行するように構成された通信サブシステムと、アプリケーションサブシステムおよび通信サブシステムに結合されたメモリ管理ハードウェアアクセラレータとを含み、アプリケーションサブシステムがメインオペレーティングシステムを実行するように構成され、メモリ管理ハードウェアアクセラレータが、
メインオペレーティングシステムによって通信サブシステムに割り当てられた動的メモリ空間に対応するメモリアドレスのセットを取得し、メモリアドレスのセットが1つまたは複数のメモリアドレスを含み、メモリアドレスのセット内のいくつかのメモリアドレスを通信サブシステムの構成要素に送信する
ように構成される、ワイヤレス通信装置が提供される。
【００１２】
第4の態様によれば、
メインオペレーティングシステムを実行するように構成されたアプリケーションプロセッサと、通信サブシステムのリアルタイムオペレーティングシステムを実行するように構成された通信プロセッサと、アプリケーションプロセッサおよび通信プロセッサに電気的に接続され、
メインオペレーティングシステムによって通信サブシステムに割り当てられた動的メモリ空間に対応するメモリアドレスのセットを取得し、メモリアドレスのセットが1つまたは複数のメモリアドレスを含み、メモリアドレスのセット内のいくつかのメモリアドレスを通信サブシステムの構成要素に送信する
ように構成されたメモリ管理装置と
を含む、ワイヤレス通信装置が提供される。
【００１３】
第5の態様によれば、
通信サブシステムのリアルタイムオペレーティングシステムを実行するように構成された通信プロセッサと、アプリケーションプロセッサおよび通信プロセッサに電気的に接続されたメモリ管理装置とを含み、アプリケーションプロセッサがメインオペレーティングシステムを実行するように構成され、メモリ管理装置が、
メインオペレーティングシステムによって通信サブシステムに割り当てられた動的メモリ空間に対応するメモリアドレスのセットを取得し、メモリアドレスのセットが1つまたは複数のメモリアドレスを含み、メモリアドレスのセット内のいくつかのメモリアドレスを通信サブシステムの構成要素に送信する
ように構成される、ワイヤレス通信装置が提供される。
【００１４】
第6の態様によれば、メモリ管理の方法が提供される。方法はメモリ管理装置によって実行され、メモリ管理装置はメインコンピューティングシステムおよび機能サブシステムに結合され、メインコンピューティングシステムはメインオペレーティングシステムを実行するように構成され、機能サブシステムは補助オペレーティングシステムを実行するように構成される。方法は、
メインオペレーティングシステムによって機能サブシステムに割り当てられた動的メモリ空間に対応するメモリアドレスのセットを取得するステップであって、メモリアドレスのセットが1つまたは複数のメモリアドレスを含む、ステップと、メモリアドレスのセット内のいくつかのメモリアドレスを機能サブシステムの構成要素に送信するステップと
を含む。
【００１５】
第7の態様によれば、メモリ管理装置が提供される。メモリ管理装置は、メインコンピューティングシステムおよび機能サブシステムに結合される。メインコンピューティングシステムはメインオペレーティングシステムを実行するように構成され、機能サブシステムは補助オペレーティングシステムを実行するように構成される。メモリ管理装置は、
メインオペレーティングシステムによって機能サブシステムに割り当てられた動的メモリ空間に対応するメモリアドレスのセットを取得するように構成された第1のメモリ管理モジュールであって、メモリアドレスのセットが1つまたは複数のメモリアドレスを含む、第1のメモリ管理モジュールと、メモリアドレスのセット内のいくつかのメモリアドレスを機能サブシステムの構成要素に送信するように構成された第2のメモリ管理モジュールと
を含む。
【００１６】
第8の態様によれば、メモリ管理ハードウェアアクセラレータが提供される。メモリ管理ハードウェアアクセラレータは、メインコンピューティングシステムおよび機能サブシステムに結合される。メインコンピューティングシステムはメインオペレーティングシステムを実行するように構成され、機能サブシステムは補助オペレーティングシステムを実行するように構成される。メモリ管理ハードウェアアクセラレータは、
メモリ管理アクセラレータハードウェアおよびメモリ管理アクセラレータドライバを含み、メモリ管理アクセラレータドライバは、メモリ管理アクセラレータハードウェアと連携して動作する第1のドライバと、メインコンピューティングシステムと連携して動作する第2のドライバと、機能サブシステムと連携して動作する第3のドライバとを含む。メモリ管理アクセラレータハードウェアおよびメモリ管理アクセラレータドライバは、
メインオペレーティングシステムによって機能サブシステムに割り当てられた動的メモリ空間に対応するメモリアドレスのセットを取得し、メモリアドレスのセットが1つまたは複数のメモリアドレスを含み、メモリアドレスのセット内のいくつかのメモリアドレスを機能サブシステムの構成要素に送信する
ように協調的に構成される。
【００１７】
メインコンピューティングシステムは、コンピュータシステムの動作コアまたは制御コアを含むサブシステム、たとえば、スマートフォンのアプリケーションサブシステムであってよいことを理解されたい。コンピュータシステムのメインオペレーティングシステムは、サブシステム内で実行される。メインオペレーティングシステムは、アンドロイド（登録商標）オペレーティングシステムまたはアイフォンオペレーティングシステムなどのモバイルプラットフォームオペレーティングシステムであってもよく、デスクトップコンピュータ、モノのインターネットデバイス、またはクラウドサーバなどの別のオペレーティングシステムであってもよい。メインオペレーティングシステムのプログラムコードは、主に大容量ストレージに格納される。コンピュータシステムが電源オンになり動作すると、メインオペレーティングシステムのプログラムコードが最初にメモリにロードされ、次いでアプリケーションサブシステムの処理コア、たとえば、CPUにロードされてよい。メインオペレーティングシステムは、コンピュータシステム全体のソフトウェアリソースおよびハードウェアリソースを管理する、たとえば、アプリケーションサブシステムに固定的に割り当てられるメモリ空間を管理することができる。
【００１８】
前述の機能サブシステムは、通信サブシステムなどの独立したサブシステムであってよいことを理解されたい。各機能サブシステムは、コンピュータシステムのいくつかの独立した機能に関与することができる。機能サブシステムは独立したオペレーティングシステムを有することができ、メインオペレーティングシステムに対する補助オペレーティングシステムと表記される場合がある。補助オペレーティングシステムのプログラムコードも、大容量ストレージに格納されてよい。機能サブシステムが電源オンになり動作すると、補助オペレーティングシステムのプログラムコードが最初にメモリにロードされ、次いで機能サブシステムの処理コア、たとえば、CPUまたはDSPにロードされてよい。補助オペレーティングシステムは、機能サブシステムのソフトウェアリソースおよびハードウェアリソースを管理する、たとえば、機能サブシステムに固定的に割り当てられるメモリ空間を管理することができる。
【００１９】
メインオペレーティングシステムによって機能サブシステム（たとえば、通信サブシステム）に割り当てられる動的メモリ空間のサイズは調整可能なので、メモリアドレスのセットのサイズも変更可能であることを理解されたい。メモリアドレスのセットのサイズの変更要因には、動的メモリ空間のサイズおよびメモリアドレスのセット内のメモリアドレスの使用ステータスが含まれる。たとえば、メインオペレーティングシステムが最初にメモリ空間の一部を機能サブシステム（たとえば、通信サブシステム）に割り当てる場合、メモリ管理ハードウェアアクセラレータは、メモリ空間の一部に対応するメモリアドレスを取得することができる。メモリ空間の一部に対応するメモリアドレスは、メモリアドレスのセットを形成する。メモリ空間の一部に対応するメモリアドレスが機能サブシステム（たとえば、通信サブシステム）によってすでに使用されているか、またはメインオペレーティングシステムがメモリアドレスのセットからいくつかのメモリアドレスを再請求するとき、メモリアドレスのセット内のメモリアドレスの数が削減される。この場合、メインオペレーティングシステムがメモリ空間の別の部分を機能サブシステム（たとえば、通信サブシステム）にさらに割り当てた場合、新しく割り当てられたメモリ空間に対応するメモリアドレスは、メモリアドレスのセットにグループ化されてもよい。それに対応して、メモリアドレスのセット内のメモリアドレスの数が増加する。
【００２０】
通信サブシステム内で実行されている通信オペレーティングシステムは、リアルタイムオペレーティングシステム、たとえば、クアルコムのQuRTリアルタイムオペレーティングシステムであってよい。通信サブシステムの構成要素は、通信サブシステムの（CCoreと表記される）処理コア、通信サブシステムの（HACと表記される）ハードウェアアクセラレータ、通信サブシステムの（BBPと表記される）ベースバンドプロセッサ、またはメモリ使用要件を有する通信サブシステムの別の構成要素のうちの1つまたは複数であってよい。
【００２１】
ワイヤレス通信装置に含まれるアプリケーションサブシステムおよび通信サブシステムは、アプリケーションサブシステムおよび通信サブシステムの構成要素であってよい。たとえば、ワイヤレス通信装置は、アプリケーションプロセッサと表記されるアプリケーションサブシステムの処理コアを含んでよい。ワイヤレス通信装置は、通信プロセッサと表記される通信サブシステムの処理コアを含んでよい。
【００２２】
前述の態様のいずれか1つにおいて提供される技術的解決策に基づいて、メモリ管理装置（たとえば、メモリ管理ハードウェアアクセラレータ）は、メインオペレーティングシステムによって機能サブシステム（たとえば、通信サブシステム）に割り当てられた動的メモリ空間に対応するメモリアドレスのセットを取得するように構成される。メインオペレーティングシステムによって割り当てられる動的メモリ空間のサイズは調整可能なので、これは、機能サブシステムに固定的に割り当てられるメモリ空間のサイズを削減するのに役立つ。加えて、メインオペレーティングシステムによって割り当てられた動的メモリ空間内に機能サブシステムの構成要素によって格納された（音声、ビデオ、およびテキストなどの）アプリケーションデータは、追加の転送またはコピー動作なしに（アプリケーションサブシステムなどの）メインコンピューティングシステムによってアクセスすることができ、したがって、大量の不要なメモリアクセスオーバーヘッドを節約することができ、それにより、システムの電力消費およびサービスの遅延が低減される。加えて、メモリ管理装置は、メモリアドレスのセット内のいくつかのメモリアドレスを通信サブシステムの構成要素に送信するように構成される。機能サブシステムの構成要素は、いつでも、構成要素に送信されているいくつかのメモリアドレスを使用することができ、補助オペレーティングシステム（たとえば、通信オペレーティングシステム）に適用する必要も、メインオペレーティングシステムに適用する必要もない。したがって、いくつかのメモリアドレスは、補助オペレーティングシステムに適用せずに構成要素によって直接使用することができ、これはメモリ割当て遅延を低減するのに役立つ。
【００２３】
前述の態様のいずれか1つにおいて提供される技術的解決策では、メモリ管理装置は、コンピュータプログラムを実行する汎用機能プロセッサであってもよく、メモリ管理ハードウェアアクセラレータであってもよい。メモリ管理ハードウェアアクセラレータのドライバは、オペレーティングシステム（メインオペレーティングシステムおよび補助オペレーティングシステム）のソフトウェアと比較して下位層のソフトウェアであり、下位層のソフトウェアの応答遅延はより制御可能である。したがって、これはメモリ割当て遅延をさらに低減するのに役立つ。
【００２４】
前述の態様のいずれか1つにおいて提供される技術的解決策を参照して、オプションの実装形態では、機能サブシステム（たとえば、通信サブシステム）に送信された構成要素のいくつかのメモリアドレスは、第1のメモリに格納されてよい。機能サブシステムの異なる構成要素は、異なる第1のメモリに対応することができる。各構成要素に対応する第1のメモリは、構成要素の内蔵メモリ、たとえば、密結合メモリまたはレジスタであってよい。いくつかのメモリアドレスは、構成要素の内蔵メモリに格納される。この場合、構成要素がメモリ使用要件を有する場合、いくつかのメモリアドレスは構成要素の内蔵メモリから直接読み取られてよく、これらのメモリアドレスに対応するメモリ空間が直接使用される。したがって、メモリアドレスを別の場所、たとえばメモリに格納することと比較して、いくつかのメモリアドレスを構成要素の内蔵メモリに格納することは、メモリ割当て遅延をさらに低減することができる。
【００２５】
前述の態様またはオプションの実装形態のいずれか1つにおいて提供される技術的解決策を参照して、オプションの実装形態では、メモリ管理装置（たとえば、メモリ管理ハードウェアアクセラレータ）は、機能サブシステム（たとえば、通信サブシステム）の構成要素のカテゴリに基づいて、メモリアドレスのセット内のいくつかのメモリアドレスを第1のメモリに送信するように構成される。たとえば、第1のカテゴリの構成要素は、より多くのメモリアドレスを送信するためにより高いメモリ容量を必要とする。この場合、構成要素はより大きい容量の内蔵メモリを選択することができる。第2のカテゴリの構成要素は、より少ないメモリアドレスを送信するためにより小さいメモリ容量を必要とする。この場合、構成要素はより小さい容量の内蔵メモリを選択することができる。異なるカテゴリの構成要素のメモリ容量要件は、統計データまたは過去の経験に基づいて決定されてよい。たとえば、5G通信サブシステムの構成要素には、4G通信サブシステムの構成要素よりも高いメモリ容量要件を有する。複雑なデータ処理タスクを有する構成要素は、単純なデータ処理タスクを有する構成要素よりも高いメモリ要件を有する。
【００２６】
前述の態様またはオプションの実装形態のいずれか1つにおいて提供される技術的解決策を参照して、オプションの実装形態では、メモリ管理装置（たとえば、メモリ管理ハードウェアアクセラレータ）は、メモリアドレスのセット内のいくつかのメモリアドレスを第1のメモリに周期的に送信するように構成される。第1のメモリにメモリアドレスを送信するためのサイクルは、第1のメモリの容量または第1のメモリが位置する構成要素のカテゴリを参照して決定されてもよい。たとえば、第1のメモリのより大きい容量は、第1のメモリにメモリアドレスを送信するためのより長いサイクルを示すことができる。逆に、第1のメモリのより小さい容量は、第1のメモリにメモリアドレスを送信するためのより短いサイクルを示すことができる。別の例では、5G通信サブシステムの構成要素に対応する第1のメモリの送信サイクルはより短くてよく、4G通信サブシステムの構成要素に対応する第1のメモリの送信サイクルはより長くてよい。
【００２７】
前述の態様またはオプションの実装形態のいずれか1つにおいて提供される技術的解決策を参照して、オプションの実装形態では、メモリ管理装置（たとえば、メモリ管理ハードウェアアクセラレータ）は、第1のイベントのトリガリングに基づいて、第1のメモリにメモリアドレスのセット内のいくつかのメモリアドレスを送信するように構成される。
【００２８】
第1のイベントは、第1のメモリまたは第1のメモリによってサービスが提供される構成要素によって検出されてよく、第1のイベントが検出された後、メモリ管理装置は第1のイベントが発生したことを通知される。あるいは、第1のイベントは、メモリ管理装置が、たとえば、第1のメモリの読取り／書込みステータスを積極的に検出することであってよい。
【００２９】
具体的には、第1のイベントは、第1のメモリに格納されたメモリアドレスの数が第1の下限しきい値より少ないことを含んでよい。メモリアドレスの数は、自然数であってもよく、相対比率であってもよいことを理解されたい。それに対応して、第1の下限しきい値も、自然数または相対比率であってよい。あるいは、第1のイベントは、機能サブシステム（たとえば、通信サブシステム）の構成要素からの第1のハードウェア割込み要求を含んでよい。確かに、第1のイベントは、機能サブシステム（たとえば、通信サブシステム）の構成要素からの第1のソフトウェア割込み応答を含んでもよい。ハードウェア割込み応答の処理遅延は、通常、ソフトウェア割込み応答の処理遅延より短い。
【００３０】
前述の態様またはオプションの実装形態のいずれか1つにおいて提供される技術的解決策を参照して、オプションの実装形態では、機能サブシステム（たとえば、通信サブシステム）の構成要素は第2のメモリをさらに含み、第2のメモリは、メモリ管理装置（たとえば、メモリ管理ハードウェアアクセラレータ）から受信され、機能サブシステム（たとえば、通信サブシステム）の構成要素によって使用されているメモリアドレスを格納するように構成される。
【００３１】
特定の実装形態では、第1のメモリおよび第2のメモリは、異なるメモリであってもよく、同じメモリ内の異なる記憶空間であってもよい。加えて、機能サブシステムの異なる構成要素は、異なる第2のメモリまたは同じメモリの異なる記憶空間に対応することができる。オプションの代替実装形態では、第2のメモリもメモリ管理装置内に配置されてよい。別のオプションの代替実装形態では、メモリ管理装置（たとえば、メモリ管理ハードウェアアクセラレータ）から受信され、機能サブシステム（たとえば、通信サブシステム）の構成要素によって使用されているメモリアドレスは、依然として、第1のメモリに格納されてよい。
【００３２】
前述の態様またはオプションの実装形態のいずれか1つにおいて提供される技術的解決策を参照して、オプションの実装形態では、メモリ管理装置（たとえば、メモリ管理ハードウェアアクセラレータ）は、第2のイベントのトリガリングに基づいて、第2のメモリに格納されたメモリアドレスを受信するようにさらに構成される。
【００３３】
第2のイベントは第1のイベントとは異なってよい。第2のイベントは、第2のメモリまたは第2のメモリによってサービスが提供される構成要素によって検出されてよく、第2のイベントが検出された後、メモリ管理装置は通知される。あるいは、第2のイベントはメモリ管理装置によって積極的に検出されてよい。たとえば、第2のメモリの読取り／書込みステータスが検出される。
【００３４】
具体的には、第2のイベントは、第2のメモリに格納されたメモリアドレスの数が第2の上限しきい値よりも多いことを含んでよい。第1の下限しきい値は、自然数または相対比率であってよい。あるいは、第2のイベントは、機能サブシステム（たとえば、通信サブシステム）の構成要素からの第2のハードウェア割込み要求を含んでよい。
【００３５】
第2のハードウェア割込み要求は第1のハードウェア割込み要求とは異なってよい、すなわち、第2のハードウェア割込み要求および第1のハードウェア割込み要求は異なるハードウェア割込み番号を有することを理解されたい。確かに、第2のイベントは、機能サブシステム（たとえば、通信サブシステム）の構成要素からの第2のソフトウェア割込み応答を含んでもよい。あるいは、複数の第2のソフトウェア割込み要求が存在してよく、各々の第2のソフトウェア割込み要求は対応するソフトウェア割込み番号を有する。
【００３６】
前述の態様またはオプションの実装形態のいずれか1つにおいて提供される技術的解決策を参照して、オプションの実装形態では、メモリアドレスのセット内のメモリアドレスは第3のメモリに格納される。第3のメモリは、メモリ管理装置（たとえば、メモリ管理ハードウェアアクセラレータ）の内蔵メモリであってよい。別のオプションの実装形態では、第3のメモリは、相互接続バスを介してメモリ管理装置（たとえば、メモリ管理ハードウェアアクセラレータ）に接続されたメモリであってよい。後者のオプションの実装形態は、メモリ管理装置の内蔵メモリのオーバーヘッドを節約することができ、前者のオプションの実装形態は、メモリ管理装置によってメモリアドレスのセット内のメモリアドレスを管理する機能をさらに改善することができる。このようにして、メモリ割当て率を向上させることができる。
【００３７】
これに基づいて、メモリ管理装置（たとえば、メモリ管理ハードウェアアクセラレータ）は、メモリアドレスのセットのステータス情報を検出するようにさらに構成されてよい。メモリアドレスのセットのステータス情報は、メモリアドレスのセット内のメモリアドレスの数を示すために使用される。それに対応して、メモリ管理装置（たとえば、メモリ管理ハードウェアアクセラレータ）は、メモリアドレスのセット内のメモリアドレスの数が第3の下限しきい値より少ないことが検出されると、メモリアドレスのセットをいくつかのメモリアドレスで補足するようにメインオペレーティングシステムに指示するようにさらに構成されてよい。加えて、メモリ管理装置（たとえば、メモリ管理ハードウェアアクセラレータ）は、メモリアドレスのセット内のメモリアドレスの数が第3の上限しきい値より多いことが検出されると、メモリアドレスのセットからいくつかのメモリアドレスを再請求するようにメインオペレーティングシステムに指示するようにさらに構成されてよい。
【００３８】
前述の態様またはオプションの実装形態のいずれか1つにおいて提供される技術的解決策を参照して、オプションの実装形態では、第2のイベントのトリガリングに基づいて第2のメモリから受信されたメモリアドレスは、第4のメモリに格納される。第4のメモリは、メモリ管理装置（たとえば、メモリ管理ハードウェアアクセラレータ）の内蔵メモリまたはメモリであってよい。それに対応して、メモリ管理装置（たとえば、メモリ管理ハードウェアアクセラレータ）は、第4のメモリ内のメモリアドレスの数が第4の上限しきい値より多いことが検出されると、第4のメモリからメモリアドレスを再請求するようにメインオペレーティングシステムに指示するようにさらに構成されてよい
【００３９】
前述の態様またはオプションの実装形態のいずれか1つにおいて提供される技術的解決策を参照して、オプションの実装形態では、メモリ管理装置（たとえば、メモリ管理ハードウェアアクセラレータ）は、メインオペレーティングシステムによって機能サブシステム（たとえば、通信サブシステム）に割り当てられた動的メモリ空間に対応するメモリアドレスのセットを周期的に取得するように構成される。周期的に取得されるメモリアドレスも、メモリアドレスのセットにグループ化される。
【００４０】
メインオペレーティングシステムによって機能サブシステム（たとえば、通信サブシステム）に割り当てられた動的メモリ空間に対応するメモリアドレスを取得するためのサイクルは、メモリアドレスのセット内のいくつかのメモリアドレスを第1のメモリに送信するためのサイクルより大きい。
【００４１】
前述の態様またはオプションの実装形態のいずれか1つにおいて提供される技術的解決策を参照して、オプションの実装形態では、メインオペレーティングシステムによって機能サブシステム（たとえば、通信サブシステム）に割り当てられた動的メモリ空間に対応するメモリアドレスは、複数の異なるレベルのポインタに格納される。同じレベルのポインタは同じサイズのメモリ空間に対応し、異なるレベルのポインタは異なるサイズのメモリ空間に対応する。
【００４２】
前述の態様またはオプションの実装形態のいずれか1つにおいて提供される技術的解決策を参照して、オプションの実装形態では、メモリ管理装置（たとえば、メモリ管理ハードウェアアクセラレータ）の構成要素と機能サブシステム（たとえば、通信サブシステム）の構成要素は、同じチップに統合される。別のオプションの実装形態では、メモリ管理装置（たとえば、メモリ管理ハードウェアアクセラレータ）の構成要素とメインコンピューティングシステム（たとえば、アプリケーションサブシステム）の構成要素は、同じチップに統合される。本明細書における統合は、製造、梱包、および販売中にチップが存在する物理的形態であることを理解されたい。構成要素はハードウェア構成要素であってよいか、または構成要素の一部はハードウェア構成要素であってよく、構成要素の一部はソフトウェア構成要素である。このことは限定されない。
【００４３】
前述の態様またはオプションの実装形態のいずれか1つにおいて提供される技術的解決策を参照して、オプションの実装形態では、機能サブシステム（たとえば、通信サブシステム）の構成要素は、機能サブシステム（たとえば、通信サブシステム）の処理コア、機能サブシステム（たとえば、通信サブシステム）のハードウェアアクセラレータ、または機能サブシステムのサブ機能プロセッサ（たとえば、通信サブシステムのベースバンドプロセッサ）のうちの1つまたは複数を含む。
【００４４】
第9の態様によれば、コンピュータ可読記憶媒体が提供される。コンピュータ可読記憶媒体はプログラムコードを格納する。プログラムコードがコンピュータまたはプロセッサによって実行されると、第6の態様、第7の態様、および前述のオプションの実装形態において提供される複数の技術的解決策のいずれか1つにおけるメモリ管理の方法または装置が実施される。メモリ管理装置がメモリ管理ハードウェアアクセラレータであるとき、コンピュータ可読記憶媒体に格納されたプログラムコードは、メモリ管理ハードウェアアクセラレータのドライバまたはファームウェアであってよい。
【００４５】
第10の態様によれば、コンピュータプログラム製品が提供される。コンピュータプログラム製品に含まれるプログラムコードがコンピュータまたはプロセッサによって実行されると、第6の態様、第7の態様、および前述のオプションの実装形態において提供される複数の技術的解決策のいずれか1つにおけるメモリ管理の方法または装置が実施される。メモリ管理装置がメモリ管理ハードウェアアクセラレータであるとき、コンピュータプログラム製品に含まれるプログラムコードは、メモリ管理ハードウェアアクセラレータのドライバまたはファームウェアであってよい。
【００４６】
前述の複数の技術的解決策において、第1のメモリ、第2のメモリ、第3のメモリ、および第4のメモリを含む複数のタイプのメモリが提供されることを理解されたい。第1のメモリおよび第2のメモリは、機能サブシステムにサービスを提供する1つまたは複数の特定の構成要素として理解されてよく、一例としてポインタサブグループを使用することにより、以下の特定の実装形態に記載される。第3のメモリおよび第4のメモリは、機能サブシステム全体にサービスを提供する構成要素として理解されてよく、ポインタグループの一例を参照して、以下の特定の実装形態に記載される。
【００４７】
メインオペレーティングシステムは、通常、非リアルタイムオペレーティングシステムなので、メインオペレーティングシステムのソフトウェア遅延は比較的大きいが、機能サブシステムの遅延要件は、通常、比較的高いことを理解されたい。したがって、2レベルのメモリ管理メカニズムは、主に前述の複数の技術的解決策において使用される。レベル1のメモリ管理メカニズムは、主にメモリ管理装置とメインオペレーティングシステムとの間の対話向けであり、第2のレベルのメモリ管理メカニズムは、主にメモリ管理装置と機能サブシステムの構成要素との間の対話向けである。2レベルのメモリ管理メカニズムは、メインオペレーティングシステムの応答遅延からメモリ割当て遅延を切り離すのに役立つ。レベル2のメモリ管理メカニズムを最適化することにより、メモリ割当て遅延を改善することができる。メモリ管理装置と機能サブシステムの構成要素との間の対話の頻度は、メモリ管理装置とメインオペレーティングシステムとの間の対話の頻度よりも大きいか、またははるかに大きい（たとえば、数桁大きい）場合がある。それに対応して、第1のメモリまたは第2のメモリの記憶容量は、第3のメモリまたは第4のメモリの記憶容量よりも小さいか、またははるかに小さい（たとえば、数桁小さい）場合がある。
【００４８】
第1の下限しきい値、第2の上限しきい値、第3の下限しきい値、第3の上限しきい値、および第4の上限しきい値を含むメモリアドレスの数に関連付けられた複数のしきい値が、前述の複数の技術的解決策においてさらに提供される。これらのしきい値は相互に排他的ではなく、組み合わせて使用されてよいことを理解されたい。メモリアドレスの数は、自然数であってもよく、相対比率、たとえばパーセンテージであってもよい。それに対応して、これらのしきい値も、自然数または相対比率であってよい。これらのしきい値のいずれか1つに対して、メモリアドレスの数がしきい値と等しいとき、メモリアドレスの数は危機的な状態にあると見なされてよい。危機的な状態に対して、しきい値決定条件が満たされ、対応する後続の動作が実行されると見なされてよいか、またはしきい値決定条件が満たされず、対応する後続の動作が実行されないと見なされてよい。加えて、しきい値決定動作のピンポン効果を回避するために、追加の条件、たとえば遅延条件が、しきい値決定のタイプごとにさらに設定されてよい。一例として第1の下限しきい値の決定が使用される。メモリアドレスの数が第1の下限しきい値より少なく、この状態が短い遅延時間続くときのみ、しきい値決定条件が満たされたと見なされる。
【図面の簡単な説明】
【００４９】
【図１】本出願の一実施形態による、コンピュータシステムの概略構造図である。
【図２】本出願の一実施形態による、コンピュータシステムのメモリの階層構造の概略図である。
【図３】本出願の一実施形態による、コンピュータシステムのストレージサブシステムの概略構造図である。
【図４】本出願の一実施形態による、コンピュータシステムの層状構造の概略図である。
【図５】本出願の一実施形態による、ワイヤレス通信デバイスの概略構造図である。
【図６】本出願の一実施形態による、ワイヤレス通信デバイスのメモリ割当ての概略図である。
【図７】本出願の一実施形態による、別のワイヤレス通信デバイスの概略構造図である。
【図８】本出願の一実施形態による、メモリ管理ソリューションにおける対話のフレームワークの概略図である。
【図９】本出願の一実施形態による、ワイヤレス通信デバイスのメモリ割当ての別の概略図である。
【図１０】本出願の一実施形態による、さらに別のワイヤレス通信デバイスの概略構造図である。
【図１１】本出願の一実施形態による、メモリポインタのストレージの概略図である。
【図１２】本出願の一実施形態による、別のメモリポインタのストレージの概略図である。
【図１３】本出願の一実施形態による、メモリ管理の方法の概略フローチャートである。
【図１４】本出願の一実施形態による、別のメモリ管理の方法の概略フローチャートである。
【発明を実施するための形態】
【００５０】
前述の概略構造図において、ブロック図のサイズおよび形式は参照用のみであり、本発明の実施形態に対する排他的な解釈を構成するものではないことを理解されたい。概略構造図に示されるブロック図間の相対的な位置および包含関係は、本発明の実施形態における物理的な接続モードを制限するのではなく、ブロック図間の構造的な関連付けを概略的に表すだけである。
【００５１】
以下で、添付図面および実施形態を参照して、本出願において提供される技術的解決策をさらに記載する。本出願の実施形態におけるシステムアーキテクチャおよびサービスシナリオは、主に、本出願の技術的解決策の可能な実装形態を記載するものであり、本出願の技術的解決策に対する固有の制限として解釈されるべきではないことを理解されたい。当業者は、システムアーキテクチャの発展および新しいサービスシナリオの出現に伴い、本出願において提供される技術的解決策が同様の技術的問題にも適用可能であることを知ることができる。
【００５２】
メモリ管理の方法、装置、およびシステムは、本出願の実施形態において提供されるメモリ管理ソリューションに含まれることを理解されたい。これらの技術的解決策の問題解決原理は同じまたは同様なので、特定の実施形態の以下の説明では、いくつかの繰り返される部分は本明細書では記載されない場合があるが、これらの特定の実施形態は相互に参照され、互いに組み合わされてよいと考えられるべきである。
【００５３】
図1は、本出願の一実施形態による、コンピュータシステムの概略構造図である。図1に示されたように、コンピュータシステムは、中央処理装置（center processing unit、CPU）101、メモリ（memoryまたはstorage）102、入力／出力（input／output、I／O）デバイス103、ならびにCPU101、メモリ102、およびI／Oデバイス103を接続する相互接続バス（interconnectivity bus）104を含む。簡潔にするために、1つのCPU、1つのメモリ、および3つのI／Oデバイスが図1に示されていることを理解されたい。しかしながら、本出願のこの実施形態において提供されるコンピュータシステムでは、1つまたは複数のCPU、1つまたは複数のメモリ、および1つまたは複数のI／Oデバイスが存在してよい。加えて、相互接続バス104は、複数のバスであってもよく、さらに複数のタイプのバスのセットであってもよい。
【００５４】
CPUは中央処理装置とも呼ばれ、プログラム命令を実行するエンジンである。名前が意味するように、CPUはコンピュータシステムの計算および制御のコア構成要素である。メモリはコンピュータシステムのストレージ構成要素であり、データおよびプログラム命令を格納するように構成される。バスは、コンピュータシステム内部の各構成要素を通るデータ経路であり、コンピュータシステムのこれらの構成要素間でデータ情報を転送するために使用される。I／Oデバイスは、コンピュータシステムと外部の入出力との間のデータ経路であり、外部デバイスから入力情報を取得するか、または外部デバイスに情報を出力するように構成される。
【００５５】
バスは、通常、固定長のバイト（byteまたはByte）ブロック、すなわち、ワード（word）を転送するように設計される。ワード内のバイトの数（ワード長）は、コンピュータシステムの基本パラメータである。一例として、パーソナルコンピュータ（personal computer、PC）が使用される。頻繁に使用されるバスのワード長は、4バイト（32ビット）または8バイト（64ビット）である。一般的なI／Oデバイスには、キーボード、マウス、ハンドル、ディスプレイ、マイクロフォン、スピーカなどが含まれる。詳細には、ディスクまたはソリッドステートドライブもI／Oデバイスと見なされる。加えて、コンピュータシステムと通信するネットワークもI／Oデバイスと見なされてよい。
【００５６】
CPUは、通常、特定の命令セットアーキテクチャ（instruction set architecture、ISA）をサポートするプロセッサである。一般的なISAには、x86で代表される複合命令セットコンピューティング（complex instruction set computing、CISC）アーキテクチャ、ならびにARM（Advanced RISC MachineまたはAcorn RISC Machine）、MIPS（Microprocessor without Interlocked Pipeline Stages）、およびPowerで代表される縮小命令セットコンピューティング（reduced instruction set computing、RISC）アーキテクチャが含まれる。CPUは、一般に、レジスタファイル（register file）、プログラムカウンタ（program counter、PC）、および算術論理演算装置（arithmetic logical unit、ALU）を含む。
【００５７】
ALUはCPUの実行ユニットであり、主に、加算、乗算、否定、およびシフトなどの基本的な算術演算および論理演算を実装するように構成される。レジスタファイルは、容量は非常に小さいがアクセス速度が非常に速いレジスタをいくつか含み、少量の命令およびアドレス、ならびに少量のデータを一時的に格納するために使用することができる。プログラムカウンタは、命令ポインタ（instruction pointer）または命令アドレスレジスタ（instruction address register）とも呼ばれ、主にCPUによって実行される予定の命令のアドレスを格納するように構成される。レジスタサイズおよびレジスタの数はISA仕様の一部である。一般的なレジスタサイズは32ビットまたは64ビットである。例示的なプロセスでは、CPUがプログラムカウンタに基づいて実行される予定の命令のアドレスを決定し、命令および関連データがレジスタファイルにロードされる。次いで、CPUは算術論理演算装置を使用して命令に対応する演算を完了し、演算結果をレジスタファイルに一時的に格納することができる。加えて、CPUは次の命令のアドレスをさらに計算し、そのアドレスをプログラムカウンタに一時的に格納することができる。最後に、CPUは次の命令の実行に進み、それによってプログラムの自動実行が実現される。
【００５８】
メモリは、揮発性メモリ（volatile memory）および不揮発性メモリ（non−volatile memory、NVM）に分類されてよい。揮発性メモリは、電源が遮断された後、メモリに格納されているデータが失われるメモリである。現在、揮発性メモリは、主としてランダムアクセスメモリ（random access memory、RAM）であり、スタティックランダムアクセスメモリ（static RAM、SRAM）およびダイナミックランダムアクセスメモリ（dynamic RAM、DRAM）が含まれる。不揮発性メモリは、電源が遮断された場合でも、メモリに格納されているデータが失われないメモリである。一般的な不揮発性メモリには、読取り専用メモリ（read only memory、ROM）、光ディスク、磁気ディスク、ソリッドステートディスク、フラッシュメモリ（flash memory）技術に基づく様々なストレージカードなどが含まれる。
【００５９】
一般に、揮発性メモリのアクセスレートおよび単位容量あたりのコストは、不揮発性メモリのそれらよりもはるかに高い。より高いアクセスレートとより大きい記憶容量の両方の要件を満たすために、コンピュータシステムは、通常、複数のタイプのメモリを同時に使用して、メモリの階層構造を形成する。メモリの階層構造の基本的な考え方は、（上位レベルのメモリと表記される）アクセスレートが高いメモリはCPUに近く、（下位レベルのメモリと表記される）記憶容量が大きいメモリはCPUから離れており、上位レベルのメモリは、通常、下位レベルのメモリのキャッシュとして使用されることである。
【００６０】
図2は、本出願の一実施形態による、コンピュータシステムのメモリの階層構造の概略図である。図2に示されたように、レジスタは上部に位置し、レベル0またはL0と表記される。レジスタの下位レベルのメモリはCPUキャッシュであり、キャッシュとも呼ばれる。複数のレベルのCPUキャッシュ、たとえば、レベル1、レベル2、および／またはレベル3が存在してよい。図2は、L1〜L3と表記される3つのレベルのCPUキャッシュを示す。レジスタおよびCPUキャッシュは、一般に、各々SRAMを使用するが、レジスタのアクセスレートの方が通常高い。SRAMの典型的なアクセスレートは、数ナノ秒（nanosecond、ns）で測定される。CPUキャッシュの下位レベルのメモリは、L4と表記されるDRAMである。DRAMの典型的なアクセスレートは、数十ナノ秒で測定される。DRAMの下位レベルのメモリはフラッシュメモリである。フラッシュメモリの典型的なアクセスレートは、数十マイクロ秒（microsecond、μs）で測定される。フラッシュメモリの下位レベルのメモリレベルはディスクである。ディスクの典型的なアクセスレートは、数ミリ秒（millisecond、ms）で測定される。フラッシュメモリおよびディスクは、通常、コンピュータシステムのローカル大容量ストレージデバイスとして使用され、L5と記録される。現在のコンピュータシステムでは、ローカル大容量ストレージデバイスに加えて、リモート大容量ストレージデバイス、たとえば、クラウドストレージがさらに構成されてよい。図2から、コンピュータシステムのメモリの階層構造の上から下に、メモリの典型的なアクセスレートは降順であるが、単位容量当たりのコストは降順であることが容易に分かる。
【００６１】
図3は、本出願の一実施形態による、コンピュータシステムのストレージサブシステムの概略構造図である。図3に示されたように、CPUキャッシュ3011およびレジスタファイル3012はCPU301に統合され、メインメモリ302は相互接続バス304を介してCPU301に接続され、I／Oデバイスとして使用される大容量ストレージデバイス（mass storage device）303は、I／Oインターフェース305および相互接続バス304を介してCPU301に接続される。
【００６２】
メインメモリ（main memoryまたはprimary storage）は、略してMMである。メインメモリは、名前が意味するようにコンピュータシステム内の主メモリであり、CPUがプログラムを実行するときに必要な関連データおよびプログラム命令を一時的に格納するように構成される。メインメモリは、通常DRAMであり、レジスタまたはCPUキャッシュなどのSRAMを含むときもある。補助ストレージ（secondary storageまたはauxiliary storage）とも呼ばれる大容量ストレージデバイスは、一般に、フラッシュメモリまたは磁気ディスクを使用する。オペレーティングシステムおよびアプリケーションソフトウェアは、大容量ストレージデバイスに長期間格納することができる。しかしながら、大容量ストレージデバイスのアクセスレートはCPUのクロックサイクルと大きく異なるので、CPUによる直接アクセスに適していない。したがって、オペレーティングシステムまたはアプリケーションが実行される必要があるとき、関連データおよびプログラム命令は、大容量ストレージデバイスからメインメモリにコピーされる必要があり、メインメモリは、CPUによる高速アクセスのための要件を満たすために、CPUの実行に必要なデータおよび命令を一時的に格納する。
【００６３】
メインメモリのパフォーマンスがコンピュータシステムのパフォーマンスを大きく左右することは明らかである。したがって、メインメモリはコンピュータシステムに不可欠な内部構成要素であり、内蔵メモリ（internal memoryまたはmemory）とも呼ばれる。それに対応して、大容量ストレージデバイスは、外部メモリ（external memory）とも呼ばれ、コンピュータシステムの外部に配置されてよい。しかしながら、大容量ストレージに対する需要は依然として増加しているので、現在、大容量ストレージデバイスは、コンピュータシステムの非常に重要な構成要素であり、通常、コンピュータシステムの内部に配置される。
【００６４】
読取り速度が考慮されているが、メインメモリの総メモリ容量は、ワイヤレス通信デバイス全体のメモリ空間要件を満たすために、常により大きいことが期待される。しかしながら、現在、コストによって制限され、メインメモリの総メモリ容量は、大容量ストレージデバイスの記憶空間よりもかなり小さい。一例としてスマートフォンが使用される。スマートフォンの総メモリは、通常、数百メガバイト（megabyte、MB）から数ギガバイト（gigabyte、GB）の範囲、たとえば、512 MB、1GB、2GB、3GB、4GB、6GB、8GB、またはそれ以上である。大容量ストレージデバイスの記憶空間は、通常、数十GBから数百GBの範囲、たとえば、32GB、64B、128GB、256GB、512GB、またはそれ以上である。
【００６５】
本出願のこの実施形態では、特に明記しない限り、メモリは、通常、コンピュータシステムのメインメモリであることを理解されたい。具体的には、メモリは、DDRメモリまたは略してDDRと呼ばれる、ダブルデータレート（double data rate、DDR）を備える同期式DRAM（synchronous DRAM、SDRAM）であってよい。一般的なSDRAMはクロックサイクルで1回だけデータを転送するが、DDR SDRAMはクロックサイクルで少なくとも2回データを転送することができ、したがって、データ転送速度はダブルデータレートと呼ばれる。DDRメモリには、電子素子技術連合評議会（Joint Electron Device Engineering Council、JEDEC）によって策定されたDDR1、DDR2、DDR3、およびDDR4、ならびにその後に進化した規格に基づくDDRメモリが含まれ、モバイルDDR（mobile DDR、MDDR）または低電力DDR（low power DDR、LPDDR、もしくはLP−DDR）と呼ばれるDDRメモリも含まれる。
【００６６】
図4は、本出願の一実施形態による、コンピュータシステムの層状構造の概略図である。図4に示されたように、コンピュータシステムの階層構造では、ハードウェアは最下層に配置され、ソフトウェアは上位層に配置される。オペレーティングシステムは、コンピューティングデバイスのハードウェアリソースおよびソフトウェアリソースを管理するシステムソフトウェアであり、アプリケーションとハードウェアとの間のシステムソフトウェアと見なされてよい。オペレーティングシステムは、通常、メモリ管理（memory management）、I／Oデバイス管理、およびユーザ操作インターフェースなどの基本機能を提供することができる。ハードウェアに対する動作を実行するためにアプリケーションによって行われるいかなる試みも、オペレーティングシステムを使用して行われる必要がある。中間ソフトウェア、すなわち、オペレーティングシステムを導入すると、アプリケーションが複雑で多様な基盤となるハードウェアを使用するための簡単で一貫性があるメカニズムを提供することができ、基盤となるハードウェアが一部の制御不能なアプリケーションによって悪用されることを防止することもできる。
【００６７】
加えて、コンピュータシステムによってサポートされる機能がより豊富になるにつれて、いくつかの重要な機能は、通常、比較的独立したサブシステムによって実装される。これらのサブシステムは、それぞれのオペレーティングシステムを有することができる。この場合、コンピュータシステムは複数のオペレーティングシステムを含んでよい。メインオペレーティングシステムは、コンピュータシステムのメインシステム内で実行されて、コンピュータシステムのソフトウェアリソースおよびハードウェアリソースを管理する。加えて、補助オペレーティングシステムは、サブシステム内で実行されて、サブシステムのソフトウェアリソースおよびハードウェアリソースを管理することができる。
【００６８】
一例として携帯電話が使用される。現在、携帯電話プラットフォームのメインオペレーティングシステムは、通常、アンドロイド（登録商標）オペレーティングシステムまたはアイフォンオペレーティングシステムである。メインオペレーティングシステムは、携帯電話全体のソフトウェアリソースおよびハードウェアリソースを管理し、ユーザにグラフィック操作インターフェースを提供することができる。加えて、進化し続ける無線アクセス技術（radio access technology、RAT）をサポートするために、通常、携帯電話内部に適切に設計された通信サブシステムが存在する。メインオペレーティングシステムとは異なるオペレーティングシステムが通信サブシステム内で実行されてよい。通信サブシステム内で実行されるオペレーティングシステムは、本出願のこの実施形態では、通信オペレーティングシステムと表記される。通信オペレーティングシステムは、通常、リアルタイムオペレーティングシステム（real time operating system、RTOS）である。しかしながら、アンドロイド（登録商標）オペレーティングシステムおよびアイフォンオペレーティングシステムなどの携帯電話プラットフォームのオペレーティングシステムは、リアルタイムオペレーティングシステムと見なされない。オペレーティングシステムの理論によれば、「リアルタイム」は、通常、特定の動作、たとえばメモリ割当て動作に費やされる時間が、オペレーティングシステムによって約束された上限時間を超えないことを意味する。したがって、通信サブシステムがリアルタイムオペレーティングシステムを使用すると、いくつかのワイヤレス通信サービスの低遅延要件をよりよく満たすのに役立つ。
【００６９】
コンピュータシステムのアプリケーションとサブシステムの両方を実行するプロセスでは、メモリ空間の一部が使用される必要がある。コンピュータシステムのアプリケーションまたはサブシステムが実行されているとき、オペレーティングシステムは、通常、メモリ空間の一部をアプリケーションまたはサブシステムに割り当てる。オペレーティングシステムの場合、メモリ管理は動的メモリ管理および静的メモリ管理に分類されてよい。動的メモリ管理のソリューションでは、オペレーティングシステムによってアプリケーションまたはサブシステムに割り当てられたメモリ空間のこの部分は、動的メモリ空間または動的メモリと呼ばれる場合がある。アプリケーションまたはサブシステムによって使用されていないとき、動的メモリ空間は、別のアプリケーションまたはサブシステムが使用するためにオペレーティングシステムによって再割当てされてよい。静的メモリ管理のソリューションでは、オペレーティングシステムによってアプリケーションまたはサブシステムに割り当てられたメモリ空間のこの部分は、静的メモリ空間または静的メモリと呼ばれる場合がある。静的メモリ空間がアプリケーションまたはサブシステムによって使用されていない場合でも、静的メモリ空間は、別のサブシステムまたはアプリケーションが使用することはできない。
【００７０】
コンピュータシステムの継続的な進化に伴い、コンピュータシステム用のより多くのサブシステムが存在し、これらのサブシステムはますます高いメモリ要件を課している。以下では、一例としてワイヤレス通信デバイスの通信サブシステムを使用して、本出願のこの実施形態において提供されるいくつかのメモリ管理ソリューションを詳細に記載する。これらのメモリ管理方式は、コンピュータシステムのサブシステムのメモリ要件をよりよく満たすのに役立つ。たとえば、本出願のいくつかのオプションの実施形態において提供されるメモリ管理ソリューションは、メモリ割当て遅延を低減し、特に厳しい遅延要件を有するサブシステムのメモリ要件を満たすのに役立つことができる。本出願の他のオプションの実施形態において提供されるメモリ管理ソリューションでは、より多くの利用可能なメモリを提供することができ、それにより、メモリコストの削減またはメモリ使用効率の改善に役立つ。通信サブシステムはコンピュータのサブシステムの単なる例であり、本出願のこの実施形態において提供されるソリューションは、コンピュータの別のサブシステムにも適用可能であることを理解されたい。
【００７１】
図5は、本出願の一実施形態による、ワイヤレス通信デバイスの概略構造図である。
【００７２】
本出願のこの実施形態では、ワイヤレス通信デバイスは、ワイヤレス通信機能を有するコンピューティングデバイスであることを理解されたい。ワイヤレス通信シデバイスは、ワイヤレス通信システム内の端末であってもよく、基地局などの無線アクセスネットワークデバイスであってもよい。図5に示された端末および基地局は、第3世代パートナーシッププロジェクト（3rd Generation Partnership Project、3GPP）技術仕様に基づく移動通信システムの一例として使用され得るか、または他のワイヤレス通信規格、たとえば、ワイヤレス通信規格802．11、802．15、および802．20などの電気電子技術者協会（Institute of Electrical and Electronics Engineers、IEEE）の802シリーズに基づくワイヤレス通信システムを包含することができる。
【００７３】
端末は、ユーザ機器（user equipment、UE）、移動局（mobile station、MS）、または加入者ユニット（subscriber unit、SU）と呼ばれる場合もある。端末は、携帯電話、タブレットコンピュータ（tablet computer）、ラップトップコンピュータ（laptop computer）、ウェアラブルデバイス（たとえば、スマートウォッチ、スマートバンド、スマートヘルメット、もしくはスマートグラス）、またはスマートホームデバイス（たとえば、スマートメータもしくはスマートアプライアンス）、スマートビークルなどを含む、任意のモノのインターネットデバイスなどの、ワイヤレスアクセス機能を有する別の通信デバイスであってよいが、それらに限定されない。基地局は、具体的には、第5世代（5th Generation、5G）移動通信システムにおける汎用ノードB（generation Node B、gNB）、第4世代（4th Generation、4G）移動通信システムにおける発展型ノードB（evolutional Node B、eNBもしくはeNodeB）、または別の可能な無線アクセス技術における基地局であってよい。複数の物理形態および送信電力の基地局、たとえば、マクロ基地局（macro base station）またはマイクロ基地局（micro base station）が存在してもよい。
【００７４】
図5に示されたように、ワイヤレス通信デバイスは、アプリケーションサブシステム501、メモリ（memory）502、および通信サブシステム503を含む。アプリケーションサブシステム501および通信サブシステム503は、相互接続バスを介してメモリ502に接続され、アプリケーションサブシステム501と通信サブシステム503の両方は、メモリ502によって提供されるメモリ空間を使用することができる。アプリケーションサブシステム501は、ワイヤレス通信デバイスの主制御システムまたは主計算システムとして使用されてよく、メインオペレーティングシステムおよびアプリケーションを実行し、ワイヤレス通信デバイス全体のソフトウェアリソースおよびハードウェアリソースを管理し、ユーザにユーザ操作インターフェースを提供するように構成される。通信サブシステム503は、通信オペレーティングシステムおよび通信機能ソフトウェアを実行し、通信サブシステムのソフトウェアリソースおよびハードウェアリソースを管理し、ユーザにワイヤレス通信機能を提供するように構成される。
【００７５】
アプリケーションサブシステム501は、1つまたは複数の処理コア（core）を含んでよい。図5は、コア1（C−1）、コア2（C−2）、コア3（C−3）、およびコアn（C−n）を含むマルチコアアプリケーションサブシステムを示し、ここで、nは正の整数である。本明細書では、nは単なる例である。nの値は、4未満、たとえば、2または1であってもよく、4以上、たとえば、4、8、10、または12であってもよい。異なるコアの機能は異なっていてよく、たとえば、優位周波数が異なる。各コアは対応する専用キャッシュを含んでよく、複数のコアの間に共有キャッシュが存在してよい。加えて、アプリケーションサブシステム501は、別のサブシステムに関連するドライブソフトウェアを含んでよい。
【００７６】
通信サブシステム503は、無線周波数（radio frequency、RF）サブシステムおよびベースバンド（baseband、BB）サブシステムにさらに分割されてよい。無線周波数サブシステムは、主に無線周波数信号を処理するように構成され、図5ではRFモジュールによって表されている。具体的には、無線周波数サブシステムは、受信経路（receive path）および送信経路（transmit path）を提供するために、アンテナ、スイッチ、低雑音増幅器、電力増幅器、ミキサ、発振器、フィルタ、およびプロセッサなどの電子デバイスを含んでよい。受信経路は、アンテナを介して無線周波数信号を受信し、無線周波数信号に対して処理（たとえば、増幅、フィルタリング、およびダウンコンバージョン）を実行して、中間周波数信号またはベースバンド信号を取得し、中間周波数信号またはベースバンド信号をベースバンドサブシステムに転送するように構成される。受信経路は、ベースバンドサブシステムから中間周波数信号またはベースバンド信号を受信し、中間周波数信号またはベースバンド信号に対して処理（たとえば、アップコンバージョン、増幅、およびフィルタリング）を実行して、無線周波数を取得し、最後にアンテナを介して無線周波数信号を空間に放射するように構成される。
【００７７】
ベースバンドサブシステムは、1つまたは複数の処理コア、アナログデジタル変換構成要素、ベースバンドプロセッサ（baseband processor、BBP）、ハードウェアアクセラレータ（hardware accelerator、HAC）、キャッシュなどを含んでよい。説明の目的で、ベースバンドプロセッサ、処理コア、ハードウェアアクセラレータ、およびキャッシュが図5に示されている。これらの電子部品のタイプおよび数は、本出願のこの実施形態では限定されないことを理解されたい。ベースバンドサブシステムは、図5に示されたいくつかの構成要素（たとえば、HAC）を含まなくてもよく、図5に示されていないいくつかの構成要素（たとえば、アナログデジタル変換構成要素）を含んでもよい。アナログデジタル変換構成要素には、アナログ信号をデジタル文字に変換するアナログデジタルコンバータ（analog to digital converter、ADC）、およびデジタル信号をアナログ信号に変換するデジタルアナログコンバータ（digital to analog converter、DAC）が含まれる。
【００７８】
ベースバンドプロセッサは、基地局から発信されたデジタル信号から有用な情報もしくはデータビットを抽出するか、またはアプリケーションサブシステムから発信された情報もしくはデータビットを基地局に送信されるデジタル信号に変換するように構成されてよい。情報またはデータビットは、音声、テキスト、またはビデオなどのユーザデータまたは制御情報を表すデータであってよい。具体的には、ベースバンドプロセッサは、変調、復調、符号化、および復号などのベースバンド信号処理動作を実施することができる。加えて、異なる無線アクセス技術、たとえば、5Gの新無線（new radio、NR）および4Gのロングタームエボリューション（long term evolution、LTE）、まったく同じではないベースバンド信号処理動作が実行されてよい。したがって、複数の移動通信モードの併合をサポートするために、複数の処理コア、および複数のベースバンドプロセッサさえ同時に含まれてよい。
【００７９】
ハードウェアアクセラレータは、処理のオーバーヘッドが比較的高いいくつかのサブ機能、たとえば、データパケット（data packet）の組立、構文解析、暗号化、および解読を実施するように構成されてよい。これらのサブ機能は、共通機能を有するプロセッサを使用して実施されてもよい。しかしながら、パフォーマンスまたはコストを考慮すると、ハードウェアアクセラレータを使用してこれらのサブ機能を実施する方が適切な場合がある。したがって、ハードウェアアクセラレータのタイプおよび数は、要件に基づいて具体的に選択されてよい。特定の実装形態では、フィールドプログラマブルゲートアレイ（field programmable gate array、FPGA）および特定用途向け集積回路（application specified integrated circuit、ASIC）のうちの1つまたは組合せが実施に使用されてよい。確かに、1つまたは複数の処理コアがハードウェアアクセラレータ内で使用されてもよい。
【００８０】
本出願のこの実施形態では、ワイヤレス通信デバイスの各処理コアは1つのプロセッサを表すことができ、プロセッサは、汎用プロセッサであってもよく、特定の分野のために設計されたプロセッサであってもよいことを理解されたい。たとえば、プロセッサは、CPUであってもよく、デジタル信号プロセッサ（digital signal processor、DSP）であってもよい。必要に応じて、プロセッサは、マイクロ制御装置（micro control unit、MCU）、グラフィックス処理装置（graphics processing unit、GPU）、画像信号プロセッサ（image signal processing、ISP）、オーディオ信号プロセッサ（audio signal processor、ASP）、または人工知能（artificial intelligence、AI）アプリケーションに適用され、ニューラルネットワーク処理装置（neural network processing unit、NPU）、テンソル処理装置（tensor processing unit、TPU）、もしくはAIエンジンと呼ばれるプロセッサを含むが、それらに限定されない任意のプロセッサであってよい。
【００８１】
実際のアプリケーションでは、アプリケーションシナリオの要件に基づいて、ワイヤレス通信デバイスは、異なる数の処理コアと異なるタイプの処理コアの組合せを使用することができる。加えて、通信サブシステム503における無線周波数サブシステムおよびベースバンドサブシステムの機能分割も調整されてよい。たとえば、無線周波数サブシステムの一部の機能がベースバンドサブシステムに統合されるか、またはベースバンドサブシステムの一部の機能が無線周波数サブシステムに統合される。
【００８２】
一実装形態では、無線周波数サブシステムは、独立したアンテナ、独立した無線周波数フロントエンド（RF front end、RFFE）デバイス、および独立した無線周波数処理チップを含んでよい。無線周波数処理チップは、受信機（receiver）、送信機（transmitter）、またはトランシーバ（transceiver）と呼ばれることもある。アンテナ、無線周波数フロントエンドデバイス、および無線周波数処理チップのすべては、個別に製造および販売することができる。確かに、無線周波数サブシステムは、電力消費およびパフォーマンスに対する要件に基づいて、異なる構成要素または異なる統合方式を使用することもできる。たとえば、無線周波数フロントエンドデバイスに属するいくつかの構成要素は、無線周波数処理チップに統合される。
【００８３】
一実装形態では、ベースバンドサブシステムは独立したチップとして使用される場合があり、チップはモデム（modem）と呼ばれる場合がある。ベースバンドサブシステムのハードウェア構成要素は、modemによって製造および販売されてよい。ベースバンドプロセッサはワイヤレス通信用のコアデバイスなので、モデム（modem）はベースバンドチップまたはベースバンドプロセッサと呼ばれることもある。別の実装形態では、ベースバンドサブシステムはさらにSoCチップに統合される場合があり、SoCチップによって製造および販売される。加えて、ベースバンドサブシステムのソフトウェア構成要素は、納入前にハードウェア構成要素内で構築されてもよく、納入後に他の不揮発性メモリからハードウェア構成要素にインポートされてもよく、これらのソフトウェア構成要素がネットワークを介してオンラインで更新およびアップグレードされてもよい。
【００８４】
通信サブシステムを実行するプロセスでは、大量のデータ処理動作が実行される場合がある。その結果、特定のメモリ空間が占有される。加えて、ワイヤレス通信サービスは、低遅延に対する比較的高い要件を有する。したがって、ワイヤレス通信デバイスのメインオペレーティングシステムが通信サブシステムに動的にメモリを割り当てる場合、メモリ割当て遅延は比較的長い可能性があり、その結果、低遅延に対する一部のワイヤレス通信サービスの要件を満たすことができない。したがって、低遅延に対するワイヤレス通信サービスの要件を満たすために、メモリ空間の一部が通信サブシステムに固定的に割り当てられてよく、通信オペレーティングシステムによって直接管理される。
【００８５】
図6は、本出願の一実施形態による、ワイヤレス通信デバイスのメモリ割当ての概略図である。
【００８６】
図6の左側に示されたように、ワイヤレス通信デバイスの総メモリ容量は、上から下に「その他」、「アプリケーションサブシステム」、および「通信サブシステム」と表記された3つの部分に固定的に分割される。「その他」は、メモリ空間のこの部分が他の目的で使用されている、たとえば、他のサブシステム用に確保されていることを示す。「アプリケーションサブシステム」は、メモリ空間のこの部分が、アプリケーションサブシステムが使用するために割り当てられていることを示し、A1と表記される。最大のメモリ空間は、通常、アプリケーションサブシステムに割り当てられる。メモリ空間のこの部分は、アプリケーションサブシステム内で実行されるメインオペレーティングシステムによって直接管理され、必要に応じて、ワイヤレス通信デバイス内で実行されるアプリケーションおよび一部のサブシステムが使用するために割り当てられている。図6に示されたメモリ分割は単なる例であることを理解されたい。ワイヤレス通信デバイスのメモリは、別の方式で分割されてよく、たとえば、メモリが2つの部分、4つの部分、またはそれ以上の部分に分割される。
【００８７】
「通信サブシステム」は、メモリ空間のこの部分が、通信サブシステムが使用するために割り当てられていることを示し、C1と表記される。通信サブシステムに割り当てられたメモリ空間のこの部分は、通常、通信オペレーティングシステムによって直接管理され、通常、メインオペレーティングシステムからは見えない。言い換えれば、通信サブシステムが割り当てられたメモリ空間のすべてを使用しない場合でも、メモリ空間は、メインオペレーティングシステムによって別のサブシステムまたはアプリケーションが使用するために割り当てることはできない。したがって、この意味で、通信サブシステムに固定的に割り当てられたメモリ空間のこの部分はまた、メインオペレーティングシステム用の静的メモリ空間と同等である。
【００８８】
加えて、ワイヤレス通信サービスのパフォーマンスを保証するために、通信サブシステムに割り当てられるメモリ空間のサイズは、通常、ワイヤレス通信で使用されるピークレートを参照して決定される。しかしながら、ワイヤレス通信デバイスの動作サイクル内で、ワイヤレス通信で使用されるピークレートの時間比率は、通常、比較的小さい。この場合、通信サブシステムに割り当てられたメモリ空間の実際の使用量が多くない可能性があり、これにより、統計的な意味でメモリ空間の浪費が発生する可能性がある。
【００８９】
統計的な意味でメモリ空間を浪費する現象が図6の右側に示されている。実線は通信サブシステムに割り当てられたメモリ容量を表し、C1と表記される。破線は通信サブシステムによって実際に使用されるメモリ容量を表し、C2と表記される。図6から、時点t1とt2との間で、通信サブシステムによって実際に使用されるメモリ容量C2は、通信サブシステムに固定的に割り当てられたメモリ容量C1よりも常に小さく、C1とC2との間の差は十分に使用されていないメモリ容量を表すことが分かる。加えて、統計的な意味では、メモリ空間の浪費度は、通信サブシステムに固定的に割り当てられたメモリ空間のサイズに正比例する。
【００９０】
一例として携帯電話が使用される。4Gネットワークのピークモバイルデータレートは、1．2ギガビット／秒（Gigabit per second、Gbps）に達する可能性がある。モバイルデータを格納するために、少なくとも150MBのメモリ空間が必要である。4Gネットワークをサポートする携帯電話の場合、150MBのメモリ空間を4G通信サブシステムに固定的に割り当てることは大きい問題ではないかもしれない。しかしながら、5Gネットワークのピークモバイルデータレートは10Gbpsに達する可能性があり、それだけのモバイルデータを格納するために、少なくとも1．25GBのメモリ空間が必要である。この場合、1．25GBのメモリ空間が5G通信サブシステムに固定的に割り当てられた場合、携帯電話のメモリ容量に対する要件が大幅に増大し、その結果、メモリコストが増加する。
【００９１】
加えて、通信サブシステムが（音声、ビデオ、およびテキストなどの）大量のアプリケーションデータを受信するとき、通信サブシステムは、アプリケーションデータをアプリケーションサブシステムに転送する必要がある。メモリの観点から、通信サブシステムに対応するメモリ空間のこの部分に一時的に格納されたアプリケーションデータは、アプリケーションサブシステムに対応するメモリ空間の部分に転送またはコピーされる必要がある。これらの転送またはコピー動作により、大量のメモリアクセスオーバーヘッドが発生し、システムの電力消費が増加し、サービス遅延が増加する。場合によっては、送信される必要があるアプリケーションデータの量が多すぎると、大量のメモリアクセスオーバーヘッドが最大メモリアクセス帯域幅を超えて、ワイヤレス通信サービスの障害が発生する可能性がある。
【００９２】
図7は、本出願の一実施形態による、別のワイヤレス通信デバイスの概略構造図である。図5に示されたワイヤレス通信デバイスに基づいて、メモリ管理アクセラレータ（memory management accelerator、MMA）がワイヤレス通信デバイス上に示されている。メモリ管理アクセラレータは、通信サブシステムにメモリ管理動作を提供するように構成され、オペレーティングシステム（通信オペレーティングシステムまたはメインオペレーティングシステム）のメモリ管理機能を部分的に置き換えることができる。
【００９３】
図7に示されたように、ワイヤレス通信デバイスは、相互接続バスを介して接続されたアプリケーションサブシステム701、メモリ702、通信サブシステム703、およびメモリ管理アクセラレータ704を含む。アプリケーションサブシステム701は、メインオペレーティングシステムを実行し、ワイヤレス通信デバイスのソフトウェアリソースおよびハードウェアリソースを管理し、詳細には、アプリケーションサブシステムのメモリ空間を管理するように構成されてよい。通信サブシステムは、通信オペレーティングシステムおよび通信機能ソフトウェアを実行し、通信サブシステムのソフトウェアリソースおよびハードウェアリソースを管理し、詳細には、通信サブシステムのメモリ空間を管理することができる。図7では、アプリケーションサブシステム701の処理コアはACoreと表記され、通信サブシステム703の処理コアはCCoreと表記されている。図7のアプリケーションサブシステム701、メモリ702、ならびに（RFモジュール、HAC、およびBBPを含む）通信サブシステム703は、それぞれ、図5に示されたアプリケーションサブシステム501、メモリ502、および通信サブシステム503に対応することを理解されたい。関連する詳細については、前述の説明を参照されたい。繰り返される内容は再び記載されない。
【００９４】
本出願のこの実施形態では、メモリ管理アクセラレータはハードウェアアクセラレータであり、ハードウェアアクセラレータはハードウェア構成要素を含むが、ソフトウェア構成要素も含んでよい。ハードウェア構成要素およびソフトウェア構成要素は、メモリ管理アクセラレータと呼ばれるか、または略してMMAサブシステムであるメモリ管理アクセラレータサブシステムを一緒に形成することができる。メモリ管理アクセラレータのハードウェア構成要素は、計算に使用される処理構成要素、たとえば、ASIC、FPGA、または処理コアのうちの1つまたは複数を含む。メモリ管理アクセラレータのハードウェア構成要素は、メモリ、たとえば、レジスタ、キャッシュ、または密結合メモリ（tightly coupled memory、TCM）をさらに含んでよい。メモリ管理アクセラレータのソフトウェア構成要素は、メモリ管理アクセラレータのハードウェア構成要素に適合し、ハードウェア構成要素と連携して、通信サブシステムにメモリ管理動作を一緒に提供するように構成されてよい。
【００９５】
したがって、本出願のこの実施形態では、メモリ管理アクセラレータは、独立したハードウェア構成要素であってもよく、ハードウェア構成要素とソフトウェア構成要素の組合せであってもよい。加えて、メモリ管理アクセラレータのハードウェア構成要素は、ワイヤレス通信デバイス内の元の構成要素の処理圧力を増大させることなく、ワイヤレス通信デバイスに新しく追加されたハードウェア構成要素であってよい。あるいは、ワイヤレス通信デバイスの元のハードウェア構成要素は、メモリ管理アクセラレータのハードウェア構成要素として再利用されてよく、ソフトウェア構成要素は、本出願のこの実施形態において提供されるメモリ管理アクセラレータの機能を実装するようにアップグレードされる。メモリ管理アクセラレータは、独立したICチップであってもよく、通信チップまたはSoCチップに統合されてもよい。
【００９６】
メモリ管理アクセラレータは、別の名前、たとえば、メモリ管理ハードウェアアクセラレータ（memory management hardware accelerator、MMHAまたはMMHAC）、メモリアクセラレータ（memory accelerator、MA）、メモリハードウェアアクセラレータ（memory hardware accelerator、MHAまたはMHAC）、メモリ加速エンジン（memory acceleration engine、MAE）、メモリ割当てアクセラレータ（memory allocation accelerator、MAA）、メモリ割当てハードウェアアクセラレータ（memory allocation hardware accelerator、MAHAまたはMAHAC）、メモリアクセスアクセラレータ（memory access accelerator、MAA）、メモリアクセスハードウェアアクセラレータ（memory access hardware accelerator、MAHAまたはMAHAC）などを有してもよい。
【００９７】
メモリ管理アクセラレータは、同じまたは同様の技術的効果を得るために、別のコンピュータシステムに適用されて、コンピュータシステム内の別のサブシステムにメモリ管理動作を提供することもできることを理解されたい。以下では、メモリ管理アクセラレータが通信サブシステム上でメモリ管理動作を実行するように構成される一例を使用することにより、本出願のこの実施形態において提供されるメモリ管理ソリューションをさらに記載する。
【００９８】
図7に示されたMMAサブシステム704に基づいて、本出願のこの実施形態は、2つのメモリ管理メカニズムをさらに提供する。第1のメモリ管理メカニズムは、主にMMAサブシステムとアプリケーションサブシステムとの間の対話に関連し、S1と表記され得るメモリ空間の一部を、アプリケーションサブシステムによって管理されるメモリ空間から通信サブシステムに割り当てるために使用されてよい。第2のメモリ管理メカニズムは、主にMMAサブシステムと通信サブシステムとの間の対話に関連し、S2と表記され得るメモリ空間の一部を、メモリ空間S1から通信サブシステムのいくつかの構成要素（たとえば、CCore）に割り当てるために使用されてよい。以下では、添付図面を参照して、本出願のこの実施形態において提供される2つのメモリ管理メカニズムをさらに記載する。
【００９９】
図8は、本出願の一実施形態による、メモリ管理ソリューションにおける対話のフレームワークの概略図である。図8では、ACoreはメインオペレーティングシステムが実行されるアプリケーションサブシステムを表し、MMAはMMAサブシステムを表し、CCoreは通信サブシステムの構成要素を表す。ACoreとMMAの間の対話は、1st MMS、すなわち、第1のメモリ管理メカニズムと表記される。MMAとCCoreの間の対話は、2nd MMS、すなわち、第2のメモリ管理メカニズムと表記される。
【０１００】
第1のメモリ管理メカニズムでは、MMAサブシステムは、最初にアプリケーションサブシステムと対話して、メインオペレーティングシステムによって通信サブシステムに割り当てられたメモリ空間S1を取得することができる。このプロセスは、「S1を事前に割り当てる」と表記される場合がある。メインオペレーティングシステムによって通信サブシステムに割り当てられるメモリ空間S1のサイズは、動的に調整されてよく、ワイヤレス通信のピークレートを参照して比較的大量のメモリ空間を固定的に分割するか、または静的に確保する必要がない。通信サブシステムの利用可能な適切なサイズのメモリ空間を保証するために、MMAサブシステムは、メモリ空間S1内の利用可能なメモリのステータスを監視し、アプリケーションサブシステムと対話し、それに応じてメモリ空間S1のサイズを調整することができる。このプロセスは、「S1を更新する」と表記される場合がある。たとえば、ワイヤレス通信データレートが比較的高いとき、MMAサブシステムは、メモリ空間S1内の利用可能なメモリが不十分であることを発見することができ、メインオペレーティングシステムにアプリケーションを送信することができ、その結果、メインオペレーティングシステムはより多くのメモリを割り当てて、メモリ空間S1のサイズを増大させる。加えて、ワイヤレス通信データレートが比較的低いとき、MMAサブシステムは、メモリ空間S1内の利用可能なメモリが過度に大きいことを発見することができ、メモリ空間S1内の利用可能なメモリが過度に大きいことをメインオペレーティングシステムに通知することができ、その結果、メインオペレーティングシステムはスペアメモリを再請求して、メモリ空間S1のサイズを縮小させる。
【０１０１】
したがって、第1のメモリ管理メカニズムでは、MMAサブシステムは、メインオペレーティングシステムによって通信サブシステムに割り当てられるメモリ空間のサイズを動的に調整することができ、それにより、メモリ空間の浪費が回避される。加えて、メモリ空間はメインオペレーティングシステムによって動的に割り当てられるので、通信サブシステムによってメモリ空間に格納された（音声、ビデオ、およびテキストなどの）アプリケーションデータは、追加の転送またはコピー動作なしにアプリケーションサブシステムがアクセスすることができる。したがって、大量の不要なメモリアクセスオーバーヘッドを節約することができ、システムの電力消費およびサービス遅延がさらに低減される。
【０１０２】
第2のメモリ管理メカニズムでは、MMAサブシステムは、通信サブシステムと対話して、必要なメモリ空間を通信サブシステムにリアルタイムで割り当てることができる。本明細書における「リアルタイム」は、メモリ割当て遅延がサービスの実際の要件を満たすことができることと理解されてよい。通信サブシステムのメモリ要件をタイムリーに満たすことができることを保証するために、オプションの実装形態では、メモリ管理アクセラレータは、メモリ空間S1からメモリ空間S2の一部を通信サブシステムのいくつかの構成要素（たとえば、CCore）に事前に割り当てることができる。このプロセスは、「S2を事前に割り当てる」と表記される場合がある。メモリ空間S2の一部の容量は、メモリ空間S1の容量を超えない。メモリ空間S2の一部は、MMAサブシステムにより、通信サブシステムのいくつかの構成要素に、これらの構成要素による使用のために事前に割り当てられる。別のオプションの実装形態では、メモリ管理アクセラレータは、通信サブシステムのいくつかの構成要素（たとえば、BBP）にハードウェアアクセスメカニズムを提供することができ、その結果、これらの構成要素は、MMAハードウェアにアクセスすることにより、S1に対応するメモリを直接取得ですることがきる。したがって、通信サブシステム内のこれらの構成要素がメモリを使用する必要があるとき、これらの構成要素は、メモリ空間S2の一部を優先的に使用するか、またはMMAハードウェアにアクセスすることにより、通信オペレーティングシステムに再度適用することなく、S1に対応するメモリを取得することができる。このようにして、通信サブシステムのメモリ割当て速度を上げることができる。
【０１０３】
加えて、通信サブシステムに事前に割り当てられたメモリ空間S2内の利用可能なメモリが十分であることを保証するために、MMAサブシステムは、メモリ空間S2内の利用可能なメモリのステータスを監視し、通信サブシステムの構成要素と対話して、タイムリーにメモリ空間S2の利用可能なメモリを補足することができる。このプロセスは、「S2を更新する」と表記される場合がある。たとえば、メモリ管理アクセラレータが、メモリ空間S2内の利用可能なメモリが不十分であることを発見したとき、メモリ管理アクセラレータは、通信サブシステムをメモリ空間S1からのいくつかの利用可能なメモリで補足して、メモリ空間S2内の利用可能なメモリを増大させることができる。加えて、メモリ管理アクセラレータが、メモリ空間S2内の利用可能なメモリが十分であることを発見したとき、メモリ管理アクセラレータは、代替として、通信サブシステムを利用可能なメモリで補足することを延期することができる。
【０１０４】
通信サブシステムの特定の構成要素について、より小さいメモリ空間S2が構成要素に事前に割り当てられた場合でも、S2を更新する頻度が十分に高く、メモリ空間S2内に常に利用可能なメモリが存在することが保証されている限り、構成要素のメモリ使用要件を満たすことができる。たとえば、通信サブシステムの特定の構成要素のピークメモリアクセス帯域幅が10GB／秒であり、構成要素に事前に割り当てられたメモリ空間S2の容量が1MBである場合、構成要素の10GB／秒のピークメモリアクセス帯域幅レートは、S2が1ミリ秒当たり10回を超えて更新されることが保証されている限り満たすことができる。
【０１０５】
図9は、本出願の一実施形態による、ワイヤレス通信デバイスのメモリ割当ての別の概略図である。ワイヤレス通信デバイスは、図7に示されたワイヤレス通信デバイスであってよい。メモリ分割の概略図は、ワイヤレス通信デバイスが前述の2つのメモリ管理メカニズムを使用するときに存在するメモリ割当てステータスを示すために使用されてよい。
【０１０６】
図6と同様に、図9の左側で、ワイヤレス通信デバイスの総メモリ容量も、上から下に「その他」、「アプリケーションサブシステム」、および「通信サブシステム」と表記された3つの部分に固定的に分割される。「その他」は、メモリ空間のこの部分が他の目的で使用されている、たとえば、他のサブシステム用に確保されていることを示す。「アプリケーションサブシステム」はまた、メモリ空間のこの部分が、アプリケーションサブシステムが使用するために固定的に割り当てられていることを示し、A1’と表記される。「通信サブシステム」はまた、メモリ空間のこの部分が、通信サブシステムが使用するために固定的に割り当てられていることを示し、C1’と表記される。
【０１０７】
図6と図9との間の比較により、図9の「通信サブシステム」に割り当てられたメモリ空間C1’のサイズは、図6の「通信サブシステム」に割り当てられたメモリ空間C1のサイズとは異なることが分かる。加えて、図9では、「アプリケーションサブシステム」のメモリ空間A1’の一部は、「動的に割り当てられた」S1と表記されたメモリ空間の一部をさらに含む。名前が意味するように、「動的に割り当てられた」メモリ空間S1のこの部分のサイズは、動的に調整することができる。「動的に割り当てられた」メモリ空間S1のこの部分は、第1のメモリ管理メカニズムにおいて、メインオペレーティングシステムによって通信サブシステムに割り当てられたメモリ空間S1を表すために使用されてよい。加えて、メモリ空間S1内で、メモリ空間S2の一部は、第2のメモリ管理メカニズムにおいて、通信サブシステムの構成要素に事前に割り当てられたメモリ空間S2の一部を表すようにさらに示されている。
【０１０８】
動的に割り当てられたメモリ空間S1と固定的に割り当てられたメモリ空間C1’の両方が通信サブシステムによって使用されるので、図9の固定的に割り当てられたメモリ空間C1’は、図6の固定的に割り当てられたメモリ空間C1よりかなり小さい可能性がある。加えて、メモリ空間S1のサイズは動的に調整され得るので、ワイヤレス通信データレートが比較的低いとき、それに応じてメモリ空間S1のサイズが縮小されてよい。統計的な観点から、S1とC1’のメモリ容量の合計は、図6の固定的に割り当てられたメモリ空間C1のメモリ容量よりもまだ小さい。したがって、メモリ空間の浪費を低減することができる。
【０１０９】
メモリ空間のそのような浪費を低減する現象が図9の右側に示されている。細い実線は、元々通信サブシステムに固定的に割り当てられ、図6に示されたメモリ容量を表し、依然C1と表記されている。細い破線は、通信サブシステムによって実際に使用されているメモリ容量を表し、依然C2と表記されている。太い実線は、前述の第1のメモリ管理メカニズムが使用されるときに通信サブシステムに動的に割り当てられたメモリ容量S1を表す。点線は、前述の第1のメモリ管理メカニズムが使用されるときに通信サブシステムに固定的に割り当てられたメモリ容量C1’を表す。図9から、時点t1’とt2’との間で、通信サブシステムに動的に割り当てられたメモリ容量S1は、通信サブシステムによって実際に使用されるメモリ容量C2の変化に伴い動的に調整され得ることが分かる。加えて、ほとんどの場合、通信サブシステムに動的に割り当てられたメモリ容量S1と通信サブシステムに固定的に割り当てられたメモリ容量C1’の合計は、固定的に割り当てられたメモリ容量C1よりも少ない。
【０１１０】
本出願のこの実施形態では、MMAサブシステムは、前述の2つのメモリ管理メカニズムの両方を使用して、2レベルのメモリ管理ソリューションを形成することができることを理解されたい。前述の第1のメモリ管理メカニズムは、レベル1のメモリ管理ソリューションで使用され、前述の第2のメモリ管理メカニズムは、レベル2のメモリ管理ソリューションで使用される。
【０１１１】
加えて、MMAサブシステムは、メモリ管理メカニズムのうちの1つのみを使用することができる。オプションの実装形態では、MMAサブシステムは、第1のメモリ管理メカニズムに基づいてアプリケーションサブシステムと対話し、動的メモリ空間S1のサイズを調整することができる。メモリ空間のこの部分は、通信オペレーティングシステムによって通信サブシステム内で割り当てられてよい。このオプションの実装形態は、メモリ容量のオーバーヘッド、システムの電力消費、および通信サブシステムのサービス遅延を低減することができる。別のオプションの実装形態では、MMAサブシステムは、通信サブシステムのために静的に確保されるか、または固定的に割り当てられたメモリ空間を管理し、第2のメモリ管理メカニズムを使用して、通信オペレーティングシステムのメモリ管理機能を部分的に置き換えることができる。MMAサブシステムは、通信サブシステムの構成要素にメモリの一部を事前に割り当てるか、またはMMAハードウェアは、通信オペレーティングシステムソフトウェアを置き換えてメモリ割当てを実行し、その結果、通信サブシステムのメモリ割当て速度を上げることができる。
【０１１２】
図10は、本出願の一実施形態による、さらに別のワイヤレス通信デバイスの概略構造図である。ワイヤレス通信デバイスは、図7に示されたワイヤレス通信デバイスのメモリ管理アクセラレータに基づいて、本出願のこの実施形態のいくつかのオプションの実装形態をさらに記載する。関連する詳細については、前述の説明を参照されたい。繰り返される内容は再び記載されない。
【０１１３】
図10に示されたように、MMAハードウェア（hardware、HW）1004、ならびにアプリケーションサブシステム1001および通信サブシステム1003に分散された複数のMMAドライバ（driver）は、一緒にMMAサブシステムを形成する。簡潔にするために、MMAハードウェア1004にはMMAドライバが示されていないことを理解されたい。本出願のこの実施形態では、MMAハードウェアは、MMAドライバ、およびMMAハードウェアが機能することを可能にする上位レベルのソフトウェアをさらに含んでよい。これらのMMAドライバは、MMAハードウェアと連携して、メモリ管理ソリューション、詳細には、本出願の実施形態において提供されるメモリ管理の方法を実施するように構成されてよい。
【０１１４】
上位レベルのソフトウェア（high level software、HL SW）およびMMAドライバは、アプリケーションサブシステム1001のACore、ならびに通信サブシステム1003のCCoreおよびHACの各々の中に示されている。MMAドライバは、下位層のソフトウェアまたは基盤となるソフトウェアと見なされてよく、上位レベルのソフトウェアと基盤となるハードウェアとの間の対話のためのインターフェースを提供することができる。ACore、CCore、およびHACの各々は、異なる上位レベルのソフトウェアおよび異なるMMAドライバを含んでよいことを理解されたい。たとえば、ACore内の上位レベルのソフトウェアは、ACore内で実行されるメインオペレーティングシステムおよび様々なアプリケーションを表す場合があり、CCore内の上位レベルのソフトウェアは、CCore内で実行される通信オペレーティングシステムおよび通信機能ソフトウェアプログラムを表す場合があり、HAC内の上位レベルのソフトウェアは、ハードウェアアクセラレータ内で実行されるソフトウェアプログラムを表す場合がある。アプリケーションサブシステム1001のACore内のMMAドライバは、アプリケーションサブシステムの上位レベルのソフトウェアに、MMAハードウェアと対話するために使用されるインターフェースを提供することができる。同様に、通信サブシステム1003のCCoreおよびHACの各々の中のMMAドライバは、対応する上位レベルのソフトウェアに、MMAハードウェアと対話するために使用されるインターフェースを提供することができる。これらのMMAドライバは完全に同じでなくてよい。
【０１１５】
アプリケーションサブシステム1001のACore内で実行されるメインオペレーティングシステム、たとえば、アンドロイド（登録商標）オペレーティングシステムまたはアイフォンオペレーティングシステムは、アプリケーションサブシステムによって管理されるメモリ空間から通信サブシステム1003に、S1と表記されたメモリ空間の一部を動的に割り当てることができる。メモリ空間S1の一部はMMAサブシステムによって管理される。それに対応して、一実装形態では、ACore内のMMAドライバは、MMAサブシステムにメモリを事前格納するように構成された事前格納（prestore）モジュール、およびMMAサブシステムからメモリを再請求するように構成された再請求（reclaim）モジュールを含んでよい。
【０１１６】
本出願のこの実施形態では、メモリ空間はメモリアドレスに基づいて識別されてよい。加えて、メモリ空間は複数のメモリアドレスに対応することができ、各メモリアドレスはメモリ空間の一部に対応することができる。1つのメモリアドレスは、シングルバイトまたはマルチバイトのメモリ空間のセグメントを表すことができる。メモリアドレスは、マルチバイトメモリ空間のセグメント内の第1のバイトに対応するメモリアドレスであってよい。具体的なバイト数は、メモリアドレスのレベルまたはタイプなどの別のパラメータに基づいて決定されてよい。メモリアドレスに対応するメモリ空間は、メモリ空間の開始アドレスおよびメモリ空間の長さに基づいて一意に決定されてよい。加えて、メモリ空間のセグメントは別のパラメータなしで決定されてよい。いくつかのメモリアドレスに対応するメモリ空間のサイズは、各々デフォルトで具体的なバイト数、たとえば128バイトに設定されていると想定される。この場合、これらのメモリアドレスの各々は、128バイトのメモリ空間のセグメントを一意に決定することができる。
【０１１７】
コンピュータシステムでは、メモリはバイト単位の配列として編成されてよい。メモリ内の各バイトは、対応する一意の物理アドレス（physical address、PA）を有することができる。当然、メモリアクセス方式は物理アドレスを直接使用する方式であり、この方式は物理アドレス指定（physical addressing）と表記される。加えて、メモリは、仮想アドレス指定（virtual addressing）方式を使用してアクセスされてよい。仮想アドレス指定方式が使用されるとき、メモリ内の各バイトは、物理アドレスに対応する1つの仮想アドレス（virtual address、VA）を有することができる。メモリにアクセスするために仮想アドレスが使用されるとき、仮想アドレスは、メモリに送信される前に対応する物理アドレスに変換される。仮想アドレスを物理アドレスに変換するタスクは、アドレス変換（address translation）と呼ばれる場合がある。
【０１１８】
現在、メモリ管理ユニット（memory management unit、MMU）と呼ばれるハードウェアおよびページテーブル（page table）と呼ばれるデータ構造は、通常、アドレス変換機能を実装するためにコンピュータシステム内で使用される。MMUは、ページメモリ管理ユニット（paged memory management unit、PMMU）と呼ばれることもあり、仮想アドレスと物理アドレスとの間の変換を処理するように構成されたハードウェアである。サブページテーブルと呼ばれることもあるページテーブルは、仮想アドレスと物理アドレスとの間のマッピング関係または対応関係を示すために使用されるデータ構造である。
【０１１９】
本出願のこの実施形態では、メモリ空間は、メモリ内の物理的に連続するメモリ空間のセグメントであってもよく、メモリ内の物理的に不連続なメモリ空間のセグメントであってもよいことを理解されたい。メモリアドレスは、メモリの物理アドレスであってもよく、メモリの仮想アドレスであってもよい。メモリアドレスがメモリの仮想アドレスであるとき、本出願のこの実施形態におけるワイヤレス通信デバイスは、アドレス変換機能、たとえばMMUおよびページテーブルを実装するように構成されたハードウェア構成要素、ソフトウェア構成要素などをさらに含んでよい。それに対応して、アドレス変換機能を実装するように構成されたハードウェア構成要素およびソフトウェア構成要素は、本出願のこの実施形態において提供されるメモリ管理アクセラレータとさらに協働して、メモリ管理アクセラレータにアドレス変換機能を提供することができる。
【０１２０】
コンピュータシステムでは、ポインタ（pointer）という用語は、通常、メモリアドレスを示すために使用される。コンピュータサイエンスのコンテキストでは、ポインタはプログラミング言語のオブジェクトまたは変数として理解されてよく、オブジェクトまたは変数は、メモリアドレスを表すかまたは格納するために使用される。ポインタの値はメモリアドレスであり、これはポインタがメモリ内の特定の位置を指すことと同等である。ポインタによって表されるメモリアドレスに対応するメモリ空間は、ビデオおよびテキストなどのアプリケーションデータを格納するために使用されてよい。本出願のこの実施形態では、「ポインタ」および「メモリポインタ」という2つの用語は、本出願の実施形態において提供されるメモリ管理ソリューションにおけるメモリアドレスを示すために区別しないで使用される。
【０１２１】
本出願のこの実施形態では、複数の異なるタイプ（type）またはレベル（level）のメモリポインタが存在してよい。同じタイプまたはレベルのポインタは同じサイズまたは粒度のメモリ空間に対応し、異なるタイプまたはレベルのポインタは異なるサイズまたは粒度のメモリ空間に対応する。たとえば、3つのレベルのメモリポインタが存在する場合がある。第1のレベルのメモリポインタは256バイトのメモリサイズのメモリ空間に対応し、第2のレベルのメモリポインタは512バイトのメモリサイズのメモリ空間に対応し、第3のレベルのメモリポインタは1024バイトのメモリサイズのメモリ空間に対応する。対応するメモリ空間（たとえば、256バイト）内の開始バイトのメモリアドレスのみが、各レベル（たとえば、第1のレベル）のメモリポインタに格納されてよい。開始バイトのメモリアドレスは、メモリポインタのレベルに対応するメモリサイズを参照して、メモリ空間のこのセグメントを一意に特定することができる。メモリポインタには開始バイトのメモリアドレスのみが格納され、これはメモリポインタのサイズを小さくすることに役立ち、それにより、メモリポインタを格納するために必要な記憶空間が節約される。本明細書におけるメモリポインタは単なる例であることを理解されたい。本出願のこの実施形態では、メモリポインタは、代替として、たとえば、メモリポインタのレベルの数を調整すること、メモリポインタのレベルに対応するメモリサイズを調整すること、またはメモリポインタに格納されるメモリアドレスを調整することにより、別の可能な実装形態に実装されてよい。
【０１２２】
メモリポインタの概念に基づいて、アプリケーションサブシステム1001のACore内で実行されるメインオペレーティングシステムは、最初にMMAサブシステム用のいくつかのメモリポインタを事前格納し、次いで、それに対応して、MMAサブシステムの通知または要求、たとえば割込み要求（interrupt request、IRQ）に従って、いくつかのメモリポインタで補足を行うか、またはいくつかのメモリポインタを再請求することができる。割込み要求は、ハードウェア割込み要求であってもよく、ソフトウェア割込み要求であってもよい。メインオペレーティングシステムがいくつかのメモリポインタで補足を行うことは、メインオペレーティングシステムがMMAサブシステムにさらにいくつかのより多くのメモリポインタを送信して、通信サブシステムに利用可能なメモリ空間のサイズを増やすことを意味する。メインオペレーティングシステムがいくつかのメモリポインタを再請求することは、メインオペレーティングシステムがMMAサブシステムからいくつかのメモリポインタを受け取ることを意味する。MMAサブシステムから再請求されたこれらのメモリポインタに対応するメモリ空間は、メインオペレーティングシステムにより、たとえば、別のサブシステムまたはアプリケーションに再割り当てされてもよく、確かに通信サブシステムに再び割り当てられてもよい。
【０１２３】
説明を容易にするために、MMAサブシステム用のメインオペレーティングシステムによって事前に格納され、メインオペレーティングシステムがMMAサブシステムを補足するこれらのメモリポインタは、ポインタグループ1と表記されてよく、ポインタグループ1は、メインオペレーティングシステムによって通信サブシステムに動的に割り当てられたメモリ空間S1に対応することができる。ポインタグループ1は、複数の異なるレベルのメモリポインタを含んでよく、各レベルに複数のメモリポインタが存在してよい。各メモリポインタは、メモリ空間S1内のメモリ空間のセグメントを示すために使用される。一例として、ポインタグループ1は、64バイト（簡潔にBと表記される）、128B、256B、512B、1024B（簡潔に1KBと表記される）、2KB、4 KB、8 KB、または16KBに対応する1つまたは複数のレベルのメモリポインタを含んでよい。異なるレベルのメモリポインタを使用すると、通信サブシステムの要件を満たすために、異なる粒度のメモリをよりタイムリーに正確に提供するのに役立つことを理解されたい。
【０１２４】
オプションの実装形態では、ポインタグループ1は、ワイヤレス通信デバイスのメモリ1002に格納されてよく、MMAサブシステムは相互接続バスを介してメモリ1002に接続される。別のオプションの実装形態では、ポインタグループ1は、代替として、MMAサブシステムの内蔵メモリに格納されてよい。内蔵メモリは、MMAハードウェア内に構築されたTCMまたはレジスタなどのメモリであってよい。比較すると、前者のオプションの実装形態を使用することは、MMAサブシステムの内蔵メモリのオーバーヘッドを削減することができ、後者のオプションの実装形態を使用することは、MMAサブシステムがポインタグループ1を管理する機能をさらに向上させることができ、それにより、メモリ割当て率が向上する。
【０１２５】
MMAサブシステムは、ポインタグループ1内のいくつかのメモリポインタをポインタサブグループ11と表記し、通信サブシステム1003のいくつかの構成要素にいくつかのメモリポインタを事前に送信（send）またはプッシュ（push）することができる。ポインタグループ11は、MMAサブシステムにより、通信サブシステムのいくつかの構成要素に事前に割り当てられたメモリ空間S2に対応することができる。これらの構成要素は、通信構成要素CC1、たとえばCCoreおよびHACと表記される場合がある。メモリ使用要件を有するとき、通信構成要素CC1は、メモリ用の通信オペレーティングシステムに適用することなく、ポインタサブグループ11に対応するメモリを直接使用することができ、それにより、メモリ割当て速度が加速される。それに対応して、メモリ、たとえば、TCMまたはレジスタは、代替として、通信サブシステム1003のこれらの構成要素（たとえば、CCoreおよびHAC）内部に配置されて、MMAサブシステムによってプッシュされたいくつかのメモリポインタを格納することができる。通信サブシステム1003のこれらの構成要素（たとえば、CCoreおよびHAC）の各々のMMAドライバは、対応する内蔵メモリ内でメモリポインタを維持することができ、対応する上位レベルのソフトウェアに、様々なデータの処理に必要なメモリを提供することに関与する。
【０１２６】
確かに、MMAハードウェアは、ポインタサブグループ12と表記されるポインタグループ1内のいくつかのメモリポインタをさらに確保することができる。ポインタサブグループ12は、通信サブシステム1003に事前に送信またはプッシュされることなく、MMAハードウェアのメモリ、たとえば、MMAハードウェアのTCMまたはレジスタに格納されてよい。通信サブシステム1003の他の構成要素は、通信構成要素CC2（たとえば、BBP）と表記されてよい。メモリ使用要件を有するとき、通信構成要素CC2は、MMAハードウェア、たとえば、MMAハードウェアのTCMまたはレジスタにアクセスすることにより、ポインタサブグループ12内のメモリポインタを取得することができる。通信サブシステム1003のこれらの構成要素は、メモリ用の通信オペレーティングシステムに適用することなく、MMAハードウェアにアクセスすることによってメモリを取得する。したがって、メモリ割当て速度も加速することができる。それに対応して、関連する通信インターフェース回路、レジスタ、およびソフトウェア構成要素などは、代替として、通信サブシステム1003のこれらの構成要素（たとえば、BBP）およびMMAハードウェアの内部に別々に配置されて、MMAハードウェアにアクセスするための通信サブシステム1003のこれらの構成要素の要件を満たすことができる。
【０１２７】
MMAサブシステムによってこれらのメモリポインタを維持することは、通信サブシステムの構成要素のメモリ割当て速度を加速することができることを理解されたい。事前にメモリポインタを取得する通信構成要素CC1とMMAハードウェアにアクセスすることによってメモリポインタを取得する通信構成要素CC2の両方が、MMAサブシステムによってメモリポインタを維持する動作の恩恵を受けることができる。したがって、本出願のこの実施形態では、MMAサブシステムは、メインオペレーティングシステムによって通信サブシステムに割り当てられた動的メモリ空間を管理し、メインオペレーティングシステムまたは通信オペレーティングシステムのメモリ管理機能を部分的に置き換え、その結果、メモリ割当て率を向上させることができ、ワイヤレス通信サービスの低遅延要件をよりよく満たすことができ、それにより、ワイヤレス通信デバイスのパフォーマンスが向上する。
【０１２８】
前述のメモリポインタが通信サブシステムの構成要素によって使用された後、使用されたメモリポインタは、元のポインタグループまたはポインタサブグループに引き続き確保されてもよく、新しいポインタグループまたはポインタサブグループにグループ化されてもよい。たとえば、ポインタサブグループ11内の特定のメモリポインタが使用された後、メモリポインタは、ポインタサブグループ11に引き続き確保されてよい。あるいは、メモリポインタは、たとえば、ポインタサブグループ21と表記される新しいポインタサブグループにグループ化されてよい。ポインタサブグループ11内のメモリポインタは、割り当てられ、使用される予定のメモリポインタと表記されてよい。これらのメモリポインタは、いつでも構成要素によって使用されるために通信サブシステムの構成要素に割り当てられている。ポインタサブグループ21内のメモリポインタは、使用され、解放される予定のメモリポインタと表記されてよい。これらのメモリポインタは、通信サブシステムの構成要素によって使用されており、構成要素によって解放される可能性があり、MMAサブシステムによって構成要素から再請求される。
【０１２９】
それに対応して、通信サブシステムの構成要素からMMAサブシステムに再請求されたこれらのメモリポインタは、元のポインタグループ内で確保されてもよく、たとえば、ポインタグループ2と表記される新しいポインタグループにグループ化されてもよい。ポインタグループ1内のメモリポインタは、事前に割り当てられ、最終的に割り当てられる予定のメモリポインタと表記されてよい。これらのメモリポインタは、メインオペレーティングシステムによってMMAサブシステムに事前に割り当てられており、最終的にMMAサブシステムによって通信サブシステムの構成要素に割り当てられる予定である。ポインタグループ2内のメモリポインタは、事前に再請求され、最終的に再請求される予定のメモリポインタと表記されてよい。これらのメモリポインタは、通信サブシステムの構成要素からMMAサブシステムに事前にリサイクルされており、最終的にMMAサブシステムからメインオペレーティングシステムによって再請求されてよい。
【０１３０】
比較すると、通信サブシステムの構成要素によって使用されたメモリポインタが、元のポインタサブグループまたはポインタグループ以外の新しいポインタサブグループまたは新しいポインタグループにグループ化される場合、グループ化はメモリ再請求率を向上させ、メモリ容量のオーバーヘッドを削減するのに役立つ。通信サブシステムの構成要素によって使用されたメモリポインタが、元のポインタサブグループまたはポインタグループに確保される場合、確保はメモリの再請求およびメモリの再割当てに必要な計算のオーバーヘッドを削減するのに役立つ。
【０１３１】
本出願のこの実施形態では、説明を容易にするために、MMAサブシステムによって割り当てられるか、または再請求されるメモリポインタのセットは、ポインタグループと表記され、通信サブシステムの構成要素によって割り当てられるか、または再請求されるメモリポインタのセットは、ポインタサブグループと表記されることを理解されたい。ポインタグループまたはポインタサブグループは他の名前を有してもよい。たとえば、ポインタグループは、ポインタセット、ポインタリソースプール、ラージポインタリソースプール、ラージメモリポインタセットなどとも呼ばれる。ポインタサブグループは、ポインタサブセット、ポインタリソースサブプール、スモールポインタリソースプール、スモールメモリポインタセットなどとも呼ばれる。
【０１３２】
本出願のこの実施形態では、メモリポインタの格納および管理は、メモリ管理ソリューションの効果に直接の影響を及ぼす。ポインタグループ内のメモリポインタの数は、通常、ポインタサブグループ内のメモリポインタの数よりも多い。それに対応して、ポインタグループを格納するように構成されるメモリの容量要件は、通常、ポインタサブグループを格納するように構成されるメモリの容量要件よりも大きい。添付図面を参照して、以下では、本出願の実施形態において提供されるメモリポインタ格納および管理ソリューションをさらに記載する。
【０１３３】
オプションの実装形態では、ポインタグループにメモリポインタを格納するように構成されたメモリは、MMAサブシステムの内蔵メモリ、たとえば、MMAハードウェアのTCMまたはレジスタであってよい。具体的には、ポインタグループ内のすべてのメモリポインタは、MMAサブシステムの内蔵メモリに格納されてよい。
【０１３４】
別のオプションの実装形態では、ポインタグループにメモリポインタを格納するように構成されたメモリは、MMAサブシステムの下位レベルのメモリ、たとえば、ワイヤレス通信デバイスのメモリであってよい。ポインタグループ内のすべてのメモリポインタはメモリに格納されてよい。MMAサブシステムの内蔵メモリは、すべてのメモリポインタをポインタグループに格納する必要がない。MMAサブシステムの内蔵メモリは、ポインタグループのステータス情報を格納するように構成されてよい。たとえば、ステータス情報は、ポインタグループの空の状態または一杯の状態を示すために使用されてもよく、ポインタグループ内のメモリポインタの位置を示すために使用されてもよい、などである。加えて、MMAサブシステムの内蔵メモリは、ポインタグループに少数のメモリポインタをさらに格納することができる。
【０１３５】
比較すると、前者のオプションの実装形態が使用されるとき、メモリポインタは、メモリアクセスの競合またはメモリアクセスのオーバーヘッドを考慮せずに、MAAサブシステムの内蔵メモリ、たとえばTCMまたはレジスタに直接格納されるので、メモリ割当て率を向上させることができる。TCMまたはレジスタの単位容量当たりのコストが比較的高いので、後者のオプションの実装形態が使用されるとき、MMAサブシステムは、MMAサブシステムのコストを削減するために、比較的容量が小さいTCMまたはレジスタの使用を選択することができる。
【０１３６】
これに基づいて、ポインタサブグループの記憶容量に対する比較的小さい要件を考慮すると、ポインタサブグループ内のすべてのメモリポインタは、通信サブシステムの構成要素の内蔵メモリ、たとえばTCMまたはレジスタに格納されてよい。しかしながら、ポインタサブグループ内のすべてのメモリポインタは、代替として、MMAシステムの内蔵メモリまたはワイヤレス通信デバイスのメモリに格納されてよい。通信サブシステムの構成要素の内蔵メモリは、ポインタサブグループのステータス情報を格納するように構成されてよい。たとえば、ステータス情報は、ポインタサブグループの空の状態または一杯の状態を示すために使用されてもよく、ポインタサブグループ内のメモリポインタの位置を示すために使用されてもよい、などである。加えて、通信サブシステムの構成要素の内蔵メモリは、ポインタグループに少数のメモリポインタをさらに格納することができる。
【０１３７】
オプションの実装形態では、ポインタグループおよびポインタサブグループ内のメモリポインタがメモリに明確に格納されるとき、循環バッファ（cyclic buffer）のデータ構造が使用されてよい。循環バッファは、円形バッファ（circular buffer）、円形キュー（circular queue）、循環バッファ（cyclic buffer）、またはリングバッファ（ring buffer）とも呼ばれる。循環バッファは、サイズが固定で、ヘッドおよびテールが接続されたバッファを示すために使用されるデータ構造であり、データストリームのバッファリングに適している。循環バッファは、通常、4つのポインタを必要とし、1つはメモリ内の実際の開始位置にあり、1つは代替としてバッファ長によって置き換えられてよいメモリ内の実際の終了位置にあり、1つはバッファに格納された有効データの開始位置（読取りポインタ）にあり、1つはバッファに格納された有効データの終了位置（書込みポインタ）にある。この場合、循環バッファの読取りポインタおよび書込みポインタは、ポインタグループまたはポインタサブグループの空の状態または一杯の状態、および利用可能なメモリポインタの位置を示すために使用されてよい。
【０１３８】
本出願のこの実施形態では、ポインタグループまたはポインタサブグループのステータス情報を格納すること、およびポインタグループまたはポインタサブグループのすべてのメモリポインタを格納することは、互いに競合せず、組み合わされてよいことを理解されたい。メモリがポインタグループまたはポインタサブグループにすべてのメモリポインタを格納する場合でも、メモリはポインタグループまたはポインタサブグループのステータス情報をさらに格納することができる。加えて、メモリがポインタグループまたはポインタサブグループにすべてのメモリポインタを格納しない場合でも、メモリはポインタグループまたはポインタサブグループのステータス情報をさらに格納することができる。たとえば、MMAシステムの内蔵メモリはまた、1つまたは複数のポインタサブグループのステータス情報を格納して、ポインタサブグループの空の状態または一杯の状態をタイムリーに発見するように構成されてよい。MMAサブシステムが、特定のポインタサブグループ（たとえば、ポインタサブグループ12）が「空」の状態にあることを発見すると、MMAサブシステムは、ポインタサブグループをメモリポインタでタイムリーに補足することができる。MMAサブシステムが、特定のポインタサブグループ（たとえば、ポインタサブグループ21）が「一杯」の状態にあることを発見すると、MMAサブシステムは、ポインタサブグループからメモリポインタをタイムリーに再請求することができる。
【０１３９】
図11は、本出願の一実施形態による、メモリポインタのストレージの概略図である。ワイヤレス通信デバイスは、図7または図10に示されたワイヤレス通信デバイスであってよい。ワイヤレス通信デバイスは、前述の前者のオプションの実装形態では、メモリポインタをポインタグループに格納することができる。図11に示されたように、ポインタグループはMMAハードウェアに格納され、ポインタサブグループは通信サブシステムの構成要素（たとえば、CCore）に格納される。ポインタグループは、前述の実施形態におけるポインタグループ1であってもよく、ポインタグループ2であってもよく、ポインタグループ1およびポインタグループ2であってもよい。ポインタサブグループは、前述の実施形態におけるポインタサブグループ11であってもよく、ポインタサブグループ21であってもよく、ポインタサブグループ11およびポインタサブグループ21であってもよい。
【０１４０】
図11では、MMAハードウェア内の破線のボックスは、ポインタグループ内のメモリポインタを表すために使用され、MMAハードウェア内のTCM、レジスタ、または別のオンチップストレージデバイスに対応することができる。ポインタグループは、異なるレベルの複数のメモリポインタを含んでよい。図11に示されたポインタグループは、64B、128B、256B、512B、1KB、および2KBのメモリサイズに対応する異なるレベルのメモリポインタを含む。2つのレジスタがMMAハードウェア内にさらに示され、R1およびR2と表記される。R1およびR2は、MMAハードウェア内の複数のレジスタのうちのいくつかを表すことができる。R1は、ポインタグループのステータス情報を格納するように構成されてよく、R2は、ポインタサブグループのステータス情報を格納するように構成されてよい。加えて、MMAハードウェアには上位レベルのソフトウェアおよびMMAドライバも示されている。MMAハードウェア内の上位レベルのソフトウェアおよびMMAドライバは、ポインタグループ内のメモリポインタを管理する、たとえば、ポインタグループの空または一杯の状態、およびポインタサブグループの空または一杯の状態を監視し、タイムリーにメモリポインタを補足または再請求するように構成されてよい。
【０１４１】
CCore内の破線のボックスは、ポインタサブグループ内のメモリポインタを示すために使用され、CCore内のTCM、レジスタ、または別のオンチップストレージデバイスに対応することができる。ポインタサブグループはまた、複数の異なるレベルのメモリポインタを含んでよい。図11は、ポインタサブグループが、64B、128B、および256Bのメモリサイズに対応する複数のレベルのメモリポインタを含むことを示す。R0と表記されたレジスタがCCore内にさらに示されている。R0は、CCore内の複数のレジスタのうちのいくつかを表すことができる。R0はまた、ポインタサブグループのステータス情報を格納するために使用されてよい。加えて、上位レベルのソフトウェアおよびMMAドライバもCCore内に示されている。CCore内の上位レベルのソフトウェアおよびMMAドライバは、ポインタサブグループ内のメモリポインタを管理する、たとえば、CCoreのソフトウェアおよびハードウェアのメモリ要件に基づいてメモリポインタを使用し、ポインタサブグループの空または一杯の状態を監視し、メモリポインタを補足または再請求するようにタイムリーにMMAサブシステムに指示するように構成されてよい。
【０１４２】
図12は、本出願の一実施形態による、別のメモリポインタのストレージの概略図である。ワイヤレス通信デバイスは、図7または図10に示されたワイヤレス通信デバイスであってよい。ワイヤレス通信デバイスは、前述の後者のオプションの実装形態では、メモリポインタをポインタグループに格納することができる。図12に示されたように、ポインタグループはメモリに格納され、ポインタサブグループは通信サブシステムの構成要素（たとえば、HAC）に格納される。ポインタグループは、前述の実施形態におけるポインタグループ1であってもよく、ポインタグループ2であってもよく、ポインタグループ1およびポインタグループ2であってもよい。ポインタサブグループは、前述の実施形態におけるポインタサブグループ11であってもよく、ポインタサブグループ21であってもよく、ポインタサブグループ11およびポインタサブグループ21であってもよい。
【０１４３】
図12では、メモリ内の破線のボックスは、ポインタグループ内のメモリポインタを示すために使用される。ポインタグループは、異なるレベルの複数のメモリポインタを含んでよい。図12は、ポインタグループが、128B、256B、512B、1KB、2KB、および4KBのメモリサイズに対応する異なるレベルのメモリポインタを含むことを示す。
【０１４４】
HAC内の破線のボックスは、ポインタサブグループ内のメモリポインタを示すために使用される。ポインタサブグループはまた、複数の異なるレベルのメモリポインタを含んでよい。図12は、ポインタサブグループが512B、1KB、および2KBのメモリサイズに対応する複数のレベルのメモリポインタを含むことを示す。R3と表記されたレジスタもHAC内に示されている。R3は、HAC内の複数のレジスタのうちのいくつかを表すことができる。R3はまた、ポインタサブグループのステータス情報を格納するために使用されてよい。
【０１４５】
R4と表記されたMMAドライバおよびレジスタがBBP内にさらに示されている。R4は、BBP内の複数のレジスタのうちのいくつかを表すことができる。MMAドライバおよびレジスタR4は、ポインタグループ1内のメモリポインタを取得するために、MMAハードウェアに直接アクセスする際にBBPをサポートするように構成されてよい。
【０１４６】
上位レベルのソフトウェア、MMAドライバ、TCM、ならびにR5、R6、およびR7と表記された3つのレジスタがMMAハードウェア内に示されている。R5、R6、およびR7は、MMAハードウェア内の複数のレジスタのうちのいくつかを表すことができる。R5はポインタグループのステータス情報を格納するように構成されてよく、R6はポインタサブグループのステータス情報を格納するように構成されてよい。R7は、MMAハードウェアにアクセスするために通信サブシステムのいくつかの構成要素（たとえば、BBP）によって必要とされるいくつかのステータス情報を格納するように構成されてよい。TCMは、メモリに格納されたポインタグループにいくつかのメモリポインタを格納するように構成されてよい。これらのメモリポインタは、前述の実施形態のポインタサブグループ12に対応することができ、MMAハードウェアにアクセスすることにより、通信サブシステムのいくつかの構成要素（たとえば、BBP）によって取得されてよい。
【０１４７】
前述の実施形態において提供されるコンピューティングデバイス、ワイヤレス通信デバイス、ならびにMMAサブシステムのMMAハードウェアおよびMMAドライバに基づいて、本出願の実施形態は、いくつかのメモリ管理の方法をさらに提供する。これらのメモリ管理の方法は、ハードウェア構成要素によって実施されてもよく、ソフトウェア構成要素によって実施されてもよく、ハードウェア構成要素とソフトウェア構成要素の協働を介して実施されてもよい。ソフトウェア構成要素、たとえば、MMAハードウェア内の上位レベルのソフトウェア、ならびにアプリケーションサブシステム、通信サブシステム、およびMMAハードウェアに分散された複数のMMAドライバが、これらのメモリ管理の方法に使用される必要があるとき、これらのメモリ管理の方法は、ソフトウェアプログラムのアルゴリズムを表すことができ、方法のステップはアルゴリズムの機能モジュールを表すことができる。
【０１４８】
図13は、本出願の一実施形態による、メモリ管理の方法の概略フローチャートである。メモリ管理の方法は、前述の実施形態のMMAサブシステムによって実行されてよい。MMAサブシステムは、アプリケーションサブシステムおよび通信サブシステムに結合されている。アプリケーションサブシステムはメインオペレーティングシステムを実行するように構成され、通信サブシステムは通信オペレーティングシステムを実行するように構成される。MMAサブシステムは、通信サブシステムまたはアプリケーションサブシステムに完全または部分的に統合される場合があるので、方法はまた、前述の実施形態のベースバンドチップ、SoCチップ、またはワイヤレス通信デバイスによって実行されると考えられてよい。
【０１４９】
図13に示されたように、方法は以下のステップを含む。
【０１５０】
S001：メインオペレーティングシステムによって通信サブシステムに割り当てられた動的メモリ空間に対応するメモリアドレスのセットを取得し、メモリアドレスのセットは1つまたは複数のメモリアドレスを含む。
【０１５１】
S002：メモリアドレスのセット内のいくつかのメモリアドレスを通信サブシステムの構成要素に送信する。
【０１５２】
ステップS002は、以下の2つのオプションの解決策のうちの少なくとも1つを含んでよい：メモリアドレスのセット内のいくつかのメモリアドレスを通信サブシステムの構成要素に周期的に送信すること、または第1のイベントのトリガリングに基づいてメモリアドレスのセット内のいくつかのメモリアドレスを通信サブシステムの構成要素に送信すること。
【０１５３】
2つのオプションの解決策は互いに競合せず、組み合わせて使用されてよいことを理解されたい。たとえば、メモリアドレスを周期的に送信する前者の動作は従来の動作として使用され、イベントのトリガリングに基づいてメモリアドレスを送信する後者の動作は補足動作として使用される。最初に条件が満たされた動作が最初に実行される。
【０１５４】
具体的には、第1のイベントは、以下の複数のイベント：
通信サブシステムの構成要素内のメモリアドレスの数が第1の下限しきい値より少ないこと、通信サブシステムの構成要素からの第1のハードウェア割込み要求、および通信サブシステムの構成要素からの第1のソフトウェア割込み要求
のうちの1つまたは複数を含んでよい。
【０１５５】
あるいは、複数の第1のハードウェア割込み要求が存在してよく、各々の第1のハードウェア割込み要求は、対応するハードウェア割込み番号を有することを理解されたい。異なるハードウェア割込み番号は、メモリ管理装置の異なる動作、たとえば、異なる数のメモリアドレスを送信することに対応することができる。機能サブシステムの異なる構成要素は、異なる第1のメモリに対応することができる。加えて、異なる第1のメモリは、異なる第1のハードウェア割込み要求に対応する、すなわち、異なるハードウェア割込み番号を有することができる。あるいは、複数の第1ソフトウェア割込み要求が存在してよく、各々の第1ソフトウェア割込み要求は対応するソフトウェア割込み番号を有する。
【０１５６】
図14は、本出願の一実施形態による、別のメモリ管理の方法の概略フローチャートである。メモリ管理の方法は、前述の実施形態のMMAサブシステムによって実行され、たとえば、MMAハードウェアおよびMMAドライバによって協調して実行されてよい。メモリアドレスはメモリポインタによって表され、メモリアドレスのセットはポインタグループに対応し、通信サブシステムの構成要素に送信されるメモリアドレスはポインタサブグループに対応する。
【０１５７】
図に示されたように、MMAサブシステムは、メインオペレーティングシステムからポインタグループを取得した後、ポインタグループ内のいくつかのメモリポインタをポインタサブグループに割り当てる。次いで、ポインタグループ内の適切な数のメモリポインタおよびポインタサブグループ内の適切な数のメモリポインタを保証するために、MMAサブシステムは、ポインタグループのステータスおよびポインタサブグループのステータスを検出することができる。ポインタグループおよびポインタサブグループのステータスが「空」の状態および「一杯」の状態を含むことが、一例として使用される。ポインタグループの状態が「空」であるとき、MMAサブシステムは、ポインタグループをメモリポインタで補足するようにメインオペレーティングシステムに指示する。ポインタグループの状態が「一杯」であるとき、MMAサブシステムは、ポインタグループからメモリポインタを再請求するようにメインオペレーティングシステムに指示する。加えて、ポインタサブグループの状態が「空」であるとき、MMAサブシステムは、ポインタグループからポインタサブグループにメモリポインタを送信する。ポインタサブグループの状態が「一杯」であるとき、MMAサブシステムは、ポインタサブグループからポインタグループにメモリポインタを送信する。
【０１５８】
本出願のこの実施形態では、「空の」状態は、ポインタグループまたはポインタサブグループ内のメモリポインタの数が0である必要がないことを理解されたい。「空」の状態は、ポインタグループまたはポインタサブグループ内のメモリポインタの数が1つまたは複数の特定の下限しきい値よりも少ないことを示してよい。それに対応して、「一杯」の状態は、ポインタグループまたはポインタサブグループ内のメモリポインタの数が1つまたは複数の特定の上限しきい値よりも多いことを示してよい。異なるポインタグループおよび異なるポインタサブグループは、それぞれのしきい値を有してよく、各ポインタグループまたは各ポインタサブグループは、複数の上限しきい値および複数の下限しきい値を含む複数のしきい値を有してよい。加えて、ポインタグループの状態（たとえば、空の状態または一杯の状態）を決定するための条件（たとえば、下限しきい値または上限しきい値）は、ポインタサブグループの状態を決定するための条件とは異なってよいことを理解されたい。
【０１５９】
たとえば、特定のポインタグループ内のメモリポインタの数が30％未満である場合、ポインタグループは「空」の状態にあると見なされてよい。ポインタグループ内のメモリポインタの数が80％を超える場合、ポインタグループは「一杯」の状態にあると見なされてよい。ポインタグループ内のメモリポインタの数が30％と80％との間である場合、ポインタグループは、別の状態、たとえば「適切な」状態にあると見なされてよい。特定のポインタサブグループ内のメモリポインタの数が50％未満である場合、ポインタサブグループは「一杯」の状態にあると見なされてよい。ポインタサブグループ内のメモリポインタの数が90％を超える場合、ポインタサブグループは「一杯」状態にあると見なされてよい。ポインタサブグループ内のメモリポインタの数が50％と90％との間である場合、ポインタサブグループは、別の状態、たとえば「適切な」状態にあると見なされてよい。本明細書の値は単なる例であり、本出願のこの実施形態には他の解決策があってよいことを理解されたい。
【０１６０】
本出願の実施形態および添付図面において、「第1の」、「第2の」、「第3の」、「第4の」などの用語は、同様のオブジェクトを区別するものであるが、必ずしも特定の順序または順番を示すとは限らない。加えて、「含む」、「有する」、およびそれらの他の変形形態の用語は、たとえば、一連のステップまたはユニットを含む、非排他的な包含を示すものである。方法、システム、製品、またはデバイスは、文字通りに列挙されたステップまたはユニットに限定されず、文字通りに列挙されていないか、またはこれらのプロセス、方法、製品、もしくはデバイスに固有の他のステップまたはユニットを含んでよい。
【０１６１】
本出願では、「少なくとも1つ」は1つまたは複数を意味し、「複数の」は2つ以上を意味することを理解されたい。「および／または」という用語は、関連するオブジェクト間の関連付け関係を記載するために使用され、3つの関係が存在してよいことを示す。たとえば、「Aおよび／またはB」は、以下の3つのケース：Aのみが存在する、Bのみが存在する、およびAとBの両方が存在するのを示すことができ、AおよびBは単数形または複数形であってよい。文字「／」は通常、関連付けられたオブジェクト間の「または」関係を示す。「少なくとも以下のアイテム（ピース）」またはその同様の表現は、単一のアイテム（ピース）または複数のアイテム（ピース）の任意の組合せを含む、これらのアイテムの任意の組合せを意味する。たとえば、a、b、またはcのうちの少なくとも1つのアイテム（ピース）は、a、b、c、「aおよびb」、「aおよびc」、「bおよびc」、または「a、b、およびc」を示してよく、a、b、およびcは単数形または複数形であってよい。
【０１６２】
前述のプロセスの順序番号は、本出願における実行順序を意味しないことを理解されたい。処理の実行順序は、処理の機能および内部論理に従って決定されるべきであり、本出願の実施形態の実施処理に対するいかなる制限としても解釈されるべきではない。本出願において言及される「結合」という用語は、異なる構成要素間の相互作用または対話を示すために使用され、別の構成要素を使用して実行される直接接続または間接接続を含んでよい。
【０１６３】
本出願の前述の実施形態のすべてまたは一部は、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せを使用して実装されてよい。ソフトウェアが実施形態を実装するために使用されるとき、実施形態のすべてまたは一部は、コンピュータプログラム製品の形態で実装されてよい。コンピュータプログラム製品は1つまたは複数のコンピュータ命令を含む。コンピュータプログラム命令がコンピュータにロードされ実行されると、本出願の実施形態に記載された手順または機能のすべてまたは一部が生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、または別のプログラム可能な装置であってよい。コンピュータ命令は、コンピュータ可読記憶媒体に格納されてもよく、コンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体に送信されてもよい。たとえば、コンピュータ命令は、あるウェブサイト、コンピュータ、サーバ、またはデータセンタから別のウェブサイト、コンピュータ、サーバ、またはデータセンタに有線（たとえば、同軸ケーブルもしくは光ファイバ）またはワイヤレス（たとえば、赤外線、無線、もしくはマイクロ波）の方式で送信されてよい。コンピュータ可読記憶媒体は、コンピュータによってアクセス可能な任意の使用可能な媒体、または1つもしくは複数の使用可能な媒体を統合する、サーバもしくはデータセンタなどのデータストレージデバイスであってよい。使用可能な媒体は、磁気媒体、たとえば、フロッピーディスク、ハードディスク、または磁気テープ、光学媒体、たとえば、DVD、半導体媒体、たとえば、ソリッドステートドライブ（Solid State Disk、SSD）などであってよい。
【０１６４】
前述の説明は、本出願の特定の実装形態にすぎないが、本出願の保護範囲を限定するものではない。本出願に開示された技術的範囲内で当業者が容易に考え付くいかなる変形または置換も、本出願の保護範囲内に入るべきである。したがって、本出願の保護範囲は、特許請求の範囲の保護範囲に従うべきである。
【符号の説明】
【０１６５】
101  中央処理装置
102  メモリ
103  入力／出力デバイス
104  相互接続バス
301  CPU
302  メインメモリ
303  大容量ストレージデバイス
304  相互接続バス
305  I／Oインターフェース
501  アプリケーションサブシステム
502  メモリ
503  通信サブシステム
701  アプリケーションサブシステム
702  メモリ
703  通信サブシステム
704  メモリ管理アクセラレータ、MMAサブシステム
1001  アプリケーションサブシステム
1002  メモリ
1003  通信サブシステム
1004  MMAハードウェア
3011  CPUキャッシュ
3012  レジスタファイル
【図１】
2021526766.tif 000003
【図２】
2021526766.tif 000004
【図３】
2021526766.tif 000005
【図４】
2021526766.tif 000006
【図５】
2021526766.tif 000007
【図６】
2021526766.tif 000008
【図７】
2021526766.tif 000009
【図８】
2021526766.tif 000010
【図９】
2021526766.tif 000011
【図１０】
2021526766.tif 000012
【図１１】
2021526766.tif 000013
【図１２】
2021526766.tif 000014
【図１３】
2021526766.tif 000015
【図１４】
2021526766.tif 000016
【手続補正書】
【提出日】令和3年1月21日(2021.1.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メインオペレーティングシステムを実行するように構成されたアプリケーションサブシステムと、
通信オペレーティングシステムを実行するように構成された通信サブシステムと、
前記アプリケーションサブシステムおよび前記通信サブシステムに結合され、
前記メインオペレーティングシステムによって前記通信サブシステムに割り当てられた動的メモリ空間に対応するメモリアドレスのセットを取得し、メモリアドレスの前記セットが1つまたは複数のメモリアドレスを備え、
メモリアドレスの前記セット内のいくつかのメモリアドレスを前記通信サブシステムの構成要素に送信する
ように構成されたメモリ管理ハードウェアアクセラレータと
を備える、ワイヤレス通信装置。
【請求項２】
前記通信サブシステムの前記構成要素が第1のメモリを備え、前記第1のメモリが、前記メモリ管理ハードウェアアクセラレータから受信されたメモリアドレスを格納するように構成される、
請求項1に記載のワイヤレス通信装置。
【請求項３】
前記メモリ管理ハードウェアアクセラレータが、
前記通信サブシステムの前記構成要素のカテゴリに基づいて、メモリアドレスの前記セット内のいくつかのメモリアドレスを前記第1のメモリに送信する
ように構成される、請求項2に記載のワイヤレス通信装置。
【請求項４】
前記メモリ管理ハードウェアアクセラレータが、
メモリアドレスの前記セット内のいくつかのメモリアドレスを前記第1のメモリに周期的に送信する
ように構成される、請求項2または3に記載のワイヤレス通信装置。
【請求項５】
前記メモリ管理ハードウェアアクセラレータが、
第1のイベントのトリガリングに基づいて、メモリアドレスの前記セット内のいくつかのメモリアドレスを前記第1のメモリに送信する
ように構成される、請求項2または3に記載のワイヤレス通信装置。
【請求項６】
前記第1のイベントが、
前記第1のメモリに格納されたメモリアドレスの数が第1の下限しきい値より少ないこと
を備える、請求項5に記載のワイヤレス通信装置。
【請求項７】
前記第1のイベントが、
前記通信サブシステムの前記構成要素からの第1のハードウェア割込み要求
を備える、請求項5に記載のワイヤレス通信装置。
【請求項８】
前記通信サブシステムの前記構成要素が第2のメモリをさらに備え、前記第2のメモリが、前記メモリ管理ハードウェアアクセラレータから受信され、前記通信サブシステムの前記構成要素によって使用されているメモリアドレスを格納するように構成される、
請求項1から7のいずれか一項に記載のワイヤレス通信装置。
【請求項９】
前記メモリ管理ハードウェアアクセラレータが、
第2のイベントのトリガリングに基づいて、前記第2のメモリに格納される前記メモリアドレスを受信する
ようにさらに構成される、請求項8に記載のワイヤレス通信装置。
【請求項１０】
前記第2のイベントが、
前記第2のメモリに格納されたメモリアドレスの数が第2の上限しきい値を超えること
を備える、請求項9に記載のワイヤレス通信装置。
【請求項１１】
前記第2のイベントが、
前記通信サブシステムの前記構成要素からの第2のハードウェア割込み要求
を備える、請求項10に記載のワイヤレス通信装置。
【請求項１２】
メモリアドレスの前記セット内の前記メモリアドレスが、前記メモリ管理ハードウェアアクセラレータの内蔵メモリに格納される、
請求項1から10のいずれか一項に記載のワイヤレス通信装置。
【請求項１３】
メモリアドレスの前記セットが、相互接続バスを介して前記メモリ管理ハードウェアアクセラレータに接続されるメモリに格納される、
請求項1から10のいずれか一項に記載のワイヤレス通信装置。
【請求項１４】
前記メモリ管理ハードウェアアクセラレータが、
前記メインオペレーティングシステムによって前記通信サブシステムに割り当てられた前記動的メモリ空間に対応するメモリアドレスを周期的に取得し、前記周期的に取得されたメモリアドレスもメモリアドレスの前記セットにグループ化される、
ように構成される、請求項1から13のいずれか一項に記載のワイヤレス通信装置。
【請求項１５】
前記メインオペレーティングシステムによって前記通信サブシステムに割り当てられた前記動的メモリ空間に対応するメモリアドレスを取得するためのサイクルが、メモリアドレスの前記セット内のいくつかのメモリアドレスを第1のメモリに送信するためのサイクルより大きい、
請求項14に記載のワイヤレス通信装置。
【請求項１６】
前記メインオペレーティングシステムによって前記通信サブシステムに割り当てられた前記動的メモリ空間に対応するメモリアドレスが、複数の異なるレベルのポインタに格納され、
同じレベルのポインタが同じサイズのメモリ空間に対応し、異なるレベルのポインタが異なるサイズのメモリ空間に対応する、
請求項1から15のいずれか一項に記載のワイヤレス通信装置。
【請求項１７】
前記メモリ管理ハードウェアアクセラレータの構成要素および前記通信サブシステムの前記構成要素が、同じチップに統合される、
請求項1から16のいずれか一項に記載のワイヤレス通信装置。
【請求項１８】
前記通信サブシステムの前記構成要素が、前記通信サブシステムの処理コア、前記通信サブシステムのハードウェアアクセラレータ、または前記通信サブシステムのベースバンドプロセッサのうちの1つまたは複数を備える、
請求項1から17のいずれか一項に記載のワイヤレス通信装置。
【請求項１９】
メモリ管理の方法であって、前記方法がメモリ管理ハードウェアアクセラレータによって実行され、前記メモリ管理ハードウェアアクセラレータがアプリケーションサブシステムおよび通信サブシステムに結合され、前記アプリケーションサブシステムがメインオペレーティングシステムを実行するように構成され、前記通信サブシステムが通信オペレーティングシステムを実行するように構成され、前記方法が、
前記メインオペレーティングシステムによって前記通信サブシステムに割り当てられた動的メモリ空間に対応するメモリアドレスのセットを取得するステップであって、メモリアドレスの前記セットが1つまたは複数のメモリアドレスを備える、ステップと、
メモリアドレスの前記セット内のいくつかのメモリアドレスを前記通信サブシステムの構成要素に送信するステップと
を備える、方法。
【請求項２０】
メモリアドレスの前記セット内のいくつかのメモリアドレスを送信する前記ステップが、
前記通信サブシステムの前記構成要素のカテゴリに基づいて、メモリアドレスの前記セット内のいくつかのメモリアドレスを前記通信サブシステムの前記構成要素に送信するステップ
を備える、請求項19に記載の方法。
【請求項２１】
メモリアドレスの前記セット内のいくつかのメモリアドレスを送信する前記ステップが、
メモリアドレスの前記セット内のいくつかのメモリアドレスを前記通信サブシステムの前記構成要素に周期的に送信するステップ
を備える、請求項19または20に記載の方法。
【請求項２２】
メモリアドレスの前記セット内のいくつかのメモリアドレスを送信する前記ステップが、
第1のイベントのトリガリングに基づいて、メモリアドレスの前記セット内のいくつかのメモリアドレスを前記通信サブシステムの前記構成要素に送信するステップ
を備える、請求項19または20に記載の方法。
【請求項２３】
前記第1のイベントが、
前記通信サブシステムの前記構成要素内のメモリアドレスの数が第1の下限しきい値より少ないこと
を備える、請求項22に記載の方法。
【請求項２４】
前記第1のイベントが、
前記通信サブシステムの前記構成要素からの第1のハードウェア割込み要求
を備える、請求項22に記載の方法。
【請求項２５】
前記方法が、
第2のイベントのトリガリングに基づいて、前記通信サブシステムの前記構成要素によって使用されている、前記メモリ管理アクセラレータからのメモリアドレスを受信するステップ
をさらに備える、請求項19から24のいずれか一項に記載の方法。
【請求項２６】
前記第2のイベントが、
前記通信サブシステムの前記構成要素によって使用されている、前記メモリ管理アクセラレータからのメモリアドレスの数が、第2の上限しきい値より多いこと
を備える、請求項25に記載の方法。
【請求項２７】
前記第2のイベントが、
前記通信サブシステムの前記構成要素からの第2のハードウェア割込み要求
を備える、請求項25に記載の方法。
【請求項２８】
前記方法が、
前記メインオペレーティングシステムによって前記通信サブシステムに割り当てられた前記動的メモリ空間に対応するメモリアドレスを周期的に取得するステップであって、前記周期的に取得されたメモリアドレスもメモリアドレスの前記セットにグループ化される、ステップ
をさらに備える、請求項19から27のいずれか一項に記載の方法。
【請求項２９】
前記メインオペレーティングシステムによって前記通信サブシステムに割り当てられた前記動的メモリ空間に対応するメモリアドレスを取得するためのサイクルが、メモリアドレスの前記セット内のいくつかのメモリアドレスを前記通信サブシステムの前記構成要素に送信するためのサイクルより大きい、
請求項28に記載の方法。
【請求項３０】
前記方法が、
前記メインオペレーティングシステムによって前記通信サブシステムに割り当てられた前記動的メモリ空間に対応するメモリアドレスを複数の異なるレベルのポインタに格納するステップ
を備え、
同じレベルのポインタが同じサイズのメモリ空間に対応し、異なるレベルのポインタが異なるサイズのメモリ空間に対応する、
請求項19から29のいずれか一項に記載の方法。
【国際調査報告】
2021526766.tif 000017
2021526766.tif 000018
2021526766.tif 000019
2021526766.tif 000020