オーディオデコーダと関連づけられた1つまたは複数のメモリイメージを、プロセッサからのアクセスが可能なマルチウェイキャッシュにロードすることを備え、前記1つまたは複数のメモリイメージの各々は、前記マルチウェイキャッシュのページサイズを超えないようにサイズ調整される、方法。前記1つまたは複数のメモリイメージを前記マルチウェイキャッシュにロードすることは、前記オーディオデコーダが前記マルチウェイキャッシュにおいてキャッシュミスを発生させることなく、オーディオデコーディングを可能にする、請求項1に記載の方法。前記オーディオデコーディングは、前記プロセッサに利用可能なより上位のメモリにアクセスすることなく、前記1つまたは複数のメモリイメージを前記マルチウェイキャッシュにロードした後に行われる、請求項2に記載の方法。各メモリイメージのサイズは、前記マルチウェイキャッシュの前記ページサイズに等しい、請求項1に記載の方法。前記オーディオデコーダは、1つまたは複数のオーディオストリームをデコードするように動作可能である、請求項1に記載の方法。前記1つまたは複数のメモリイメージは、メモリから前記マルチウェイキャッシュにそれぞれロードされ、前記1つまたは複数のメモリイメージは、前記マルチウェイキャッシュの対応する単一のページにロードされるように、前記メモリにおいてそれぞれ整列される、請求項1に記載の方法。前記メモリにおける前記1つまたは複数のメモリイメージは、前記1つまたは複数のメモリイメージのすべてが前記マルチウェイキャッシュにロードされている場合にオーディオデコーディングおよび低電力オーディオデコーディングを可能にするようにアクセス可能である、請求項6に記載の方法。前記メモリは、第2のオーディオデコーダと関連づけられた1つまたは複数のメモリイメージを含む、請求項6に記載の方法。前記メモリは、複数のオーディオデコーダに共通の少なくとも1つのメモリイメージを含む、請求項6に記載の方法。前記メモリは、動的メモリ割り当て領域を含む、請求項6に記載の方法。前記マルチウェイキャッシュは、4ウェイキャッシュを備える、請求項1に記載の方法。第1の前記1つまたは複数のメモリイメージは、オーディオデコーダプログラム命令を含み、第2の前記1つまたは複数のメモリイメージは、動的メモリ割り当て領域に対応し、第3の前記1つまたは複数のメモリイメージは、後処理プログラム命令を含む、請求項1に記載の方法。前記1つまたは複数のメモリイメージの全メモリイメージを前記マルチウェイキャッシュにロードさせる処理を開始することをさらに備える、請求項1に記載の方法。前記処理は、前記プロセッサのバックグラウンドスレッドを備える、請求項13に記載の方法。前記処理は、オーディオデコーディング処理の開始または停止を検出することに応答して開始される、請求項13に記載の方法。前記オーディオデコーダにおいて第1のオーディオストリームを、および第2のオーディオデコーダにおいて第2のオーディオストリームを、同時並行にデコードすることと、前記第2のオーディオストリームの終了を検出することと、前記第2のデコーダにおいて前記第2のオーディオストリームを前記デコードすることを終了することと、前記第2のオーディオストリームを前記デコードすることを終了した後に、前記オーディオデコーダにおいて前記第1のオーディオストリームをデコードすることと、をさらに備える、請求項1に記載の方法。前記1つまたは複数のメモリイメージは、前記第1のオーディオストリームまたは前記第2のオーディオストリームにおける可聴中断なく、前記マルチウェイキャッシュにロードされる、請求項16に記載の方法。前記1つまたは複数のメモリイメージは、アプリケーションプロセッサからの介入とは無関係に、前記マルチウェイキャッシュにロードされる、請求項1に記載の方法。前記オーディオデコーダが前記マルチウェイキャッシュにおいてキャッシュミスも発生させことなく、前記オーディオデコーダにおいて第1のオーディオストリームをデコードすることと、前記第1のオーディオストリームの終了と、第2のオーディオデコーダによってデコードされる第2のオーディオストリームの開始とを検出することと、前記第2のオーディオデコーダと関連づけられた1つまたは複数のメモリイメージを前記マルチウェイキャッシュにロードすることと、前記第2のオーディオデコーダが前記マルチウェイキャッシュにおいてキャッシュミスも発生させることなく、前記第2のオーディオデコーダにおいて前記第2のオーディオストリームをデコードすることと、をさらに備える、請求項1に記載の方法。前記第2のオーディオデコーダと関連づけられた前記1つまたは複数のメモリイメージは、前記第1のオーディオストリームまたは前記第2のオーディオストリームにおける可聴中断なく、前記マルチウェイキャッシュにロードされる、請求項19に記載の方法。前記第2のオーディオデコーダと関連づけられた前記1つまたは複数のメモリイメージは、アプリケーションプロセッサからの介入とは無関係に、前記マルチウェイキャッシュにロードされる、請求項19に記載の方法。前記プロセッサと一体化されたメモリにおいて、複数のオーディオデコーダに共通のプログラム命令にアクセスすることをさらに備える、請求項1に記載の方法。前記プロセッサは、デジタル信号プロセッサを備える、請求項1に記載の方法。オーディオデータを受信することと、前記1つまたは複数のメモリイメージは、前記オーディオデータが前記オーディオデコーダに対応すると決定することに応答してロードされ、前記マルチウェイキャッシュにおいてキャッシュミスを発生させることなく、前記オーディオデコーダにおいて前記オーディオデータをデコードすることと、処理されたオーディオデータを前記プロセッサの出力ポートに提供することと、をさらに備える、請求項1に記載の方法。後処理されたオーディオデータを生成するために、デコードされたオーディオデータに1つまたは複数の後処理機能を適用することと、前記1つまたは複数の後処理機能は前記オーディオデコーダに固有であり、前記処理されたオーディオデータを生成するために、前記後処理されたデータに1つまたは複数の共通処理機能を適用することと、前記1つまたは複数の共通処理機能は複数のオーディオデコーダに共通である、をさらに備える、請求項24に記載の方法。非一時的なコンピュータ可読記憶媒体であって、プロセッサによって実行されるとき、前記プロセッサに、オーディオデコーダと関連づけられた1つまたは複数のメモリイメージを、プロセッサからのアクセスが可能なマルチウェイキャッシュにロードさせる命令を備え、前記1つまたは複数のメモリイメージの各々は、前記マルチウェイキャッシュのページサイズを超えないようにサイズ調整される、非一時的なコンピュータ可読記憶媒体。前記1つまたは複数のメモリイメージを前記マルチウェイキャッシュにロードすることは、前記オーディオデコーダが前記マルチウェイキャッシュにおいてキャッシュミスを発生させることなく、オーディオデコーディングを可能にする、請求項26に記載の非一時的なコンピュータ可読記憶媒体。各メモリイメージのサイズは、前記マルチウェイキャッシュの前記ページサイズに等しい、請求項26に記載の非一時的なコンピュータ可読記憶媒体。プロセッサと、前記プロセッサからのアクセスが可能なマルチウェイキャッシュと、を備え、前記プロセッサは、オーディオデコーダと関連づけられた1つまたは複数のメモリイメージを前記マルチウェイキャッシュにロードするように構成され、前記1つまたは複数のメモリイメージの各々は、前記マルチウェイキャッシュのページサイズを超えないようにサイズ調整される、電子デバイス。前記1つまたは複数のメモリイメージを前記マルチウェイキャッシュにロードすることは、前記オーディオデコーダが前記マルチウェイキャッシュにおいてキャッシュミスも発生させることなく、オーディオデコーディングを可能にする、請求項29に記載の電子デバイス。前記1つまたは複数のメモリイメージを含むランダムアクセスメモリと、前記プロセッサからのアクセスが可能な低電力メモリと、オーディオデータを、前記ランダムアクセスメモリから取り出させ、前記低電力メモリにおいて前記オーディオデータを格納させるように構成されたアプリケーションプロセッサと、前記オーディオデコーダは、デコードされたオーディオデータを生成するために、前記低電力メモリから取り出されたオーディオデータをデコードするように構成され、後処理されたオーディオデータを生成するために、前記デコードされたオーディオデータに1つまたは複数の後処理操作を適用するように構成された後処理回路と、前記1つまたは複数の後処理操作は、前記オーディオデコーダに固有であり、処理されたオーディオデータを生成するために、前記後処理されたオーディオデータに1つまたは複数の共通処理操作を適用するように構成された共通処理回路と、前記1つまたは複数の共通処理操作は、複数のオーディオデコーダに共通であり、前記処理されたオーディオデータを出力するように構成された出力ポートと、をさらに備える、請求項29に記載の電子デバイス。データを処理する手段と、複数のキャッシュウェイにおいてデータをキャッシュする手段と、を備え、前記キャッシュする手段は、前記処理する手段からのアクセスが可能であり、前記処理する手段は、オーディオデコーダと関連づけられた1つまたは複数のメモリイメージを前記キャッシュする手段にロードするように構成され、前記1つまたは複数のメモリイメージの各々は、前記キャッシュする手段のページサイズを超えないようにサイズ調整される、装置。前記1つまたは複数のメモリイメージを前記キャッシュする手段にロードすることは、前記オーディオデコーダが前記キャッシュする手段においてキャッシュミスも発生させることなく、オーディオデコーディングを可能にする、請求項32に記載の装置。各メモリイメージのサイズは、前記キャッシュする手段の前記ページサイズに等しい、請求項32に記載の装置。前記オーディオデコーダは、アドバンストオーディオコーディングAACタイプのオーディオデコーダ、モーションピクチャエクスパーツグループオーディオレイヤ3MP3タイプのオーディオデコーダ、スピーチオーディオデコーダ、パルス符号変調PCMオーディオデコーダ、またはこれらの任意の組み合わせである、請求項32に記載の装置。非一時的なコンピュータ可読記憶媒体であって、プロセッサによって実行されるとき、前記プロセッサに、ビットマスクに基づいて、少なくとも1つのバッファが要求されたバッファサイズを満足し利用可能であるかどうかを決定させる命令を備え、前記ビットマスクの第1のビットは、第1のバッファサイズを有するバッファが利用可能であるかどうかを示し、前記ビットマスクの第2のビットは、第2のバッファサイズを有するバッファが利用可能であるかどうかを示す、非一時的なコンピュータ可読記憶媒体。前記ビットマスクの各ビット位置は、それぞれのバッファサイズに対応し、特定のビット位置におけるビット値は、前記特定のビット位置に対応する前記それぞれのバッファサイズを有するバッファの可用性を示す、請求項36に記載の非一時的なコンピュータ可読記憶媒体。前記プロセッサによって実行されるとき、前記プロセッサに、マルチウェイキャッシュの単一のページに対応するように整列され、かつ前記マルチウェイキャッシュの前記単一のページのサイズに実質的に等しいサイズを有するメモリの領域を割り当てさせ、前記メモリの割り当てられた領域の少なくとも一部分を、前記第1のバッファサイズを有する少なくとも1つのバッファと前記第2のバッファサイズを有する少なくとも1つのバッファとを含む複数の所定のバッファに分割させ、前記所定のバッファへのポインタをもつ1つまたは複数のデータ構造を追加させ、特定のデータ構造の各ポインタは、特定のサイズの所定のバッファを指し示し、前記メモリの割り当てられた領域において利用可能なバッファサイズを示すためにビットマスクをセットさせる、命令をさらに備える、請求項36に記載の非一時的なコンピュータ可読記憶媒体。前記メモリの領域は、前記マルチウェイキャッシュにおいてキャッシュされ、オーディオデコーディングを可能にするために、プロセッサにおいて1つまたは複数のオーディオデコーダによるアクセスの実行を可能にし、前記オーディオデコーディングに対応するすべての動的メモリ割り当て要求は、前記マルチウェイキャッシュにおいてキャッシュされた前記メモリの領域から満たされる、請求項38に記載の非一時的なコンピュータ可読記憶媒体。各所定のバッファは、サイズ=2n8バイトという式に従うサイズを有し、ここで、nは1以上の整数である、請求項38に記載の非一時的なコンピュータ可読記憶媒体。各所定のバッファの第1の4バイトは破損テストワードを表し、各所定のバッファの第2の4バイトは前記データ構造のうちの1つを識別するリターンポインタを表す、請求項38に記載の非一時的なコンピュータ可読記憶媒体。前記プロセッサによって実行されるとき、前記プロセッサに、要求されたサイズのメモリ割り当てを示す要求を受信させ、前記要求されたサイズを満足する最小の利用可能なバッファに対応するポインタを提供させ、前記提供されたバッファを割り当て解除する要求を受信させ、前記提供されたバッファが破損しているかどうかを検出するために、前記提供されたバッファの前記破損テストワードを評価させ、前記提供されたバッファが破損していない場合、前記提供されたバッファに対応する前記ポインタを、前記提供されたバッファの前記リターンポインタによって識別される前記データ構造に挿入させる、命令をさらに備える、請求項41に記載の非一時的なコンピュータ可読記憶媒体。プロセッサにおいて、ビットマスクに基づいて、プロセッサからのアクセスが可能なメモリの少なくとも1つのバッファが、要求されたバッファサイズを満たし利用可能であるかどうかを決定することを備え、前記ビットマスクの第1のビットは、第1のバッファサイズを有するバッファが利用可能であるかどうかを示し、前記ビットマスクの第2のビットは、第2のバッファサイズを有するバッファが利用可能であるかどうかを示す、コンピュータ実装方法。マルチウェイキャッシュの単一のページに対応するように整列され、かつ前記マルチウェイキャッシュの前記単一のページのサイズに実質的に等しいサイズを有する前記メモリの領域を割り当てることと、前記メモリの割り当てられた領域の少なくとも一部分を、前記第1のバッファサイズを有する少なくとも1つのバッファと前記第2のバッファサイズを有する少なくとも1つのバッファとを含む複数の所定のバッファに分割することと、前記所定のバッファへのポインタを用いて1つまたは複数のデータ構造を追加することと、特定のデータ構造の各ポインタは、特定のサイズの所定のバッファを指し示し、前記メモリの割り当てられた領域において利用可能なバッファサイズを示すためにビットマスクをセットすることと、をさらに備える、請求項43に記載のコンピュータ実装方法。0022図1は、キャッシュされたイメージを用いた低電力のオーディオのデコーディングおよび再生を行うためのシステム100の特定の実施形態を例示するブロック図である。このシステムは、プロセッサ110およびメモリ140を含む。プロセッサ110は、プロセッサコア120およびマルチウェイキャッシュ130を含みうる。プロセッサ110での動作中例えば、プロセッサコア120の動作に基づいて、データは、メモリ140からマルチウェイキャッシュ130にロードされうる。例えば、マルチウェイキャッシュ120は、プロセッサ110によって最近使用された、または使用される頻度の高いメモリ140の部分からのデータを格納しうる。0023プロセッサ110は、汎用プロセッサまたはデジタル信号プロセッサDSPでありうる。特定の実施形態では、プロセッサ110は、オーディオDSPであり、プロセッサコア120は、1つまたは複数のオーディオデコーディングブロック例えば、例示的なオーディオデコーディングブロック122を含む。オーディオデコーディングブロック122は、ハードウェア回路を含むことができ、および/または、特定のタイプのオーディオストリームをデコードするように動作可能なソフトウェアを実行することができる。例えば、オーディオデコーディングブロック122は、アドバンストオーディオコーディングAAC:advancedaudiocodingタイプのオーディオデコーダ例えば、AAC、モーションピクチャエクスパーツグループオーディオレイヤ3MP3:motionpictureexpertsgroupaudiolayer3タイプのオーディオデコーダ、スピーチオーディオデコーダ、パルス符号変調PCMオーディオデコーダ、その他のタイプのオーディオデコーダ、またはこれらの任意の組み合わせのインプリメンテーションimplementationを含みうる。0024マルチウェイキャッシュ130は、複数のキャッシュウェイ例えば、図1に例示されるようなウェイ0、ウェイ1、ウェイN-1を含みうる。例えば、マルチウェイキャッシュ130は、4つのキャッシュウェイを含む4ウェイキャッシュであることができ、ここで、4ウェイキャッシュの各キャッシュラインは、4つのデータ要素を含み、その各々が異なるタグと関連づけられる。あるいは、マルチウェイキャッシュ130は、4つよりも多いまたは4つよりも少ないキャッシュウェイを含みうる。特定の実施形態では、マルチウェイキャッシュ130は、ページに分割され例えば、各キャッシュウェイが、1つのページに対応しうる、また、メモリ140のページ整列境界pagealignmentboundariesにしたがって、メモリ140からのデータを格納するように動作し得る。例えば、マルチウェイキャッシュ130は、メモリ140から最大4つまでの64キロバイトkbページを格納することができる256キロバイトkbの4ウェイキャッシュでありうる。0025メモリ140は、マルチウェイキャッシュ130よりも上位のメモリでありうる。例えば、メモリ140は、プロセッサ110からアクセス可能なランダムアクセスメモリRAMでありうる。メモリ140は、マルチウェイキャッシュ130と比較した場合、増大された待ち時間レイテンシーとともに、マルチウェイキャッシュ130よりも多くの格納スペースを提供しうる。加えて、プロセッサ110によるメモリ140の使用は、マルチウェイキャッシュ130の使用に比べて追加の電力を伴いうる。例えば、メモリ140の使用は、プロセッサ110外部の1つまたは複数のデータバスに電力を供給することを伴いうる。0026特定の実施形態では、メモリ140は、マルチウェイキャッシュ130のページサイズと実質的に等しいページサイズを有するページにデータを格納する。例えば、メモリ140とマルチウェイキャッシュ130の両方が、64kbのページサイズを有しうる。メモリ140とマルチウェイキャッシュ130が等しいページサイズを有する場合、メモリ140の単一のページ内に格納されるように整列されたメモリイメージ例えば、例示的なメモリイメージ142、144、および146は、マルチウェイキャッシュ130の単一のページにロードされうる。例えば、図1に例示されるように、メモリイメージ142、144、および146の各々は、マルチウェイキャッシュ130の単一のページにロードされうる。特定の実施形態では、メモリイメージ142、144、および146は、特定のオーディオデコーダと関連づけられる。メモリイメージ142、144、および146をマルチウェイキャッシュ130にロードすることは、マルチウェイキャッシュ130においていずれのキャッシュミスも引き起こすことなく、またRAM140にアクセスすることなく、オーディオデコーディングを可能にしうる。メモリ140はまた、他のオーディオデコーダおよびアプリケーションと関連づけられた命令およびデータ148、149を格納しうる。0027動作中、データは、プロセッサコア120のオーディオデコーディングブロック122によって発行されたメモリアクセス要求例えば、リードおよびライト要求に応答して、マルチウェイキャッシュ130にロードされうる。アクセス要求がマルチウェイキャッシュ130にキャッシュされていないメモリアドレスに対応する場合、キャッシュミスが発生しうる。キャッシュミスに応答して、メモリアドレスを含むページのすべてまたは一部分が、メモリ140からマルチウェイキャッシュ130にロードされうる。あるいは、アクセス要求がマルチウェイキャッシュ130にキャッシュされているメモリアドレスに対応する場合、このアクセス要求は、キャッシュミスの発生なくサービスされうる。0028システム100においてデコードおよび再生されている各オーディオストリームが同じタイプのものである場合例えば、MP3オーディオストリームのみがデコードおよび再生されている、システム100は、低電力のデコーディングおよび再生モードに遷移されうる。低電力モードでは、オーディオデコーディングの命令およびデータ例えば、メモリイメージ142、144、および146において格納されたMP3デコーダの命令およびデータは、メモリ140からマルチウェイキャッシュ130にロードされ、これにより、1つまたは複数のオーディオストリームを処理することに関連づけられたすべてのメモリ要求は、マルチウェイキャッシュ130におけるキャッシュされたメモリイメージに対応し、オーディオストリームの処理によって引き起こされるキャッシュミスは起こらない。0029図1のシステム100は、オーディオストリームの低電力のデコーディングおよび再生を可能にすることが理解されるであろう。例えば、図1のシステム100は、メモリイメージ142、144、および146をマルチウェイキャッシュ130にロードして、キャッシュミスを引き起こすことなくオーディオデコーディングを可能にし、それによって、システム100の全体的な電力消費を低減させる。したがって、単一のキャッシュページに対応するようにメモリイメージ142、144、および146をサイズ調整および整列することによって、アプリケーションのプログラマおよび開発者は、図1のシステム100において低電力のデコーディングおよび再生を可能にし得る。加えて、低電力の再生は、マルチウェイキャッシュ130を、再生中に可聴エフェクトaudibleeffectを引き起こしうる密結合メモリTMC構成に変換することなく達成できる。加えて、マルチウェイキャッシュ130のサイズに基づいて、低電力のデコーディングは、異なるストリームタイプの同時並行ストリームにまで拡張されうる。例えば、マルチウェイキャッシュは、MP3とAACの両方のために必要なメモリイメージを収容するのに十分なサイズを有し、それによって、低電力の同時並行MP3およびAACデコーディングおよび再生のシナリオのためのサポートを可能にする。低電力のデコーディングおよび再生はまた、超音波、グラフィックス、およびビデオなどの非オーディオ処理アプリケーションにまで拡張されうる。0030図2は、キャッシュされたイメージを用いた低電力のオーディオのデコーディングおよび再生を行うためのシステム200の別の特定の実施形態を例示するブロック図である。システム200は、4ウェイキャッシュ210およびRAM220を含む。具体的には、図2に例示される実施形態は、同時並行のデコーディングおよび再生のシナリオから低電力のデコーディングおよび再生のシナリオへの第1の遷移230と、低電力のデコーディングおよび再生シナリオから同時並行のデコーディングおよび再生のシナリオへの第2の遷移231とを図示する。0031RAM220は、複数のオーディオデコーダと関連づけられたデータを格納しうる。例えば、RAM220は、各デコーダに対し、複数のデコーディングイメージ例えば、デコーディングプログラム命令と複数の動的バッファ割り当て領域を格納しうる。RAM220はまた、後処理イメージpostprocessingimageのような、複数のデコーダに共通の1つまたは複数のメモリイメージを格納しうる。あるいは、異なる後処理イメージが、オーディオストリームのタイプごとに存在しうる。図2に例示される特定の実施形態では、RAM220は、2つのAACデコーディングイメージ211-212、MP3デコーディングイメージ213、PCMデコーディングイメージ216、すべてのオーディオストリームに適用可能な後処理イメージ214、AAC動的バッファ割り当て領域217、MP3動的バッファ割り当て領域215、およびPCM動的バッファ割り当て領域218を含む。メモリイメージ211-218が、低電力モードのみならず、非低電力モードの両方で、オーディオのデコーディングおよび再生のために使用されうることに留意されたい。低電力モードと非低電力モードのために同じメモリイメージを使用する能力は、低電力モードでのみ使用可能な専用メモリイメージに必要とされるものを削除することによって、RAM220内のスペースを節約しうる。また、メモリイメージ211-218は、4ウェイキャッシュ210の単一のページにロードされるようにサイズ調整および整列されるが、低電力のデコーディングとの互換性がないオーディオデコーダのためのメモリイメージは、そのようにサイズ調整および整列されない場合があることにも留意されたい。0032初期構成では、4ウェイキャッシュ210は、異なるストリームタイプを有する同時並行ストリームをデコードする間に使用されうる。例えば、4ウェイキャッシュ210は、図2の上方部分に例示されるように、1つまたは複数のAACストリームおよび1つまたは複数のMP3ストリームを同時並行にデコードする間に使用されうる。例示のために、4ウェイキャッシュ210は、MP3およびAACオーディオの同時並行処理の間に使用される最大6個までのメモリイメージからの部分を含む部分データ201を格納しうる。部分データ201は、1つまたは複数のメモリイメージ211-215および217の最近アクセスされた部分を含みうる。PCMオーディオは処理されていないので、PCMデコーディングイメージ216またはPCM動的バッファ割り当て領域218またはからのデータは、4ウェイキャッシュ210に存在しない。キャッシュミスは、このような同時並行処理の間に発生しうる。例えば、AACストリーム処理は、4つのメモリイメージAACデコーディングイメージ211-212、AAC動的バッファ割り当て領域217、および後処理イメージ214に対するメモリアクセス要求を含み、MP3ストリーム処理は、3つのメモリイメージMP3デコーディングイメージ213、MP3動的バッファ割り当て領域215、および後処理イメージ214へのメモリアクセス要求を含みうる。4ウェイキャッシュ210は、6個すべてのメモリイメージの全部を収容することができないので、AACストリームとMP3ストリームの同時並行処理は、システム200においてキャッシュミスを引き起こしうる。0033動作中、複数のAACストリームの終了の際に、システム200は、図2の下方部分に例示されるような低電力構成への第1の遷移230を経験しうる。例えば、MP3デコーディングイメージ213、MP3動的バッファ割り当て領域215、および後処理イメージ214は、低電力構成における4ウェイキャッシュ210内に共存しうる。3つすべてのイメージ213、214、および215が、4ウェイキャッシュ210においてキャッシュされている場合、MP3デコーディングおよび再生は、キャッシュミスなく起こることができ、それによって、MP3ストリームの低電力処理を可能にする。さらに、低電力処理は、MP3ストリームにおける可聴中断なく、またシステム200外部の任意のプロセッサ例えば、アプリケーションプロセッサからの介入なしに行われうる。0034特定の実施形態では、低電力構成への第1の遷移230は、4ウェイキャッシュ210にメモリイメージをロードする処理を開始させる。例えば、第1の遷移230は、特定のメモリページからのデータ即ち、特定のメモリイメージを、特定のキャッシュページのキャッシュラインに入れるprimeように動作可能であるシステム200のバックグラウンドスレッド240を開始させる。バックグラウンドスレッド240は、オーディオデコーディング処理の開始または停止例えば、オーディオストリームの開始または停止を検出することに応答して、プロセッサによって開始および実行されうる。0035バックグラウンドスレッド240が4ウェイキャッシュ210にメモリイメージを入れるprimeために使用される場合、低電力のデコーディングおよび再生の間に生成されるキャッシュミスの数は、グラフ290の第1の曲線298によって表されうる。第1の曲線298によって例示されるように、キャッシュミスの数は、メモリイメージが4ウェイキャッシュ210に入れられている短い時間期間の間に減少して、一旦メモリイメージが4ウェイキャッシュ210において完全にキャッシュされるとゼロになる。バックグラウンドスレッド240が使用されない場合のキャッシュミスの発生は、第2の曲線299によって表されうる。第2の曲線299によって例示されるように、システム200は、バックグラウンドスレッド240が使用されない場合、ゼロのキャッシュミスに達するのにより時間がかかることがあり、これは、システム200においてより大きな電力消費を伴いうる。0036あるいは、またはこれに加えて、システム200は、低電力のMP3処理から同時並行のACCおよびMP3処理への第2の遷移231を経験しうる。第2の遷移231は、可聴中断なく行われうる。例えば、MP3デコーダが複数のMP3ストリームをデコードし続けるとともに、AACデコーダが開始されうる。AACデコーダのためのコード、データ、および動的メモリ割り当ての部分例えば、メモリイメージ211、212、および217によって表されるがアクセスされて、4ウェイキャッシュ210においてキャッシュされうる。同時並行処理の間、4ウェイキャッシュ210は、部分データ201を格納することができ、ここで、部分データ201は、MP3メモリイメージ213、215、AACメモリイメージ211、212、217、および後処理イメージ214の最近アクセスされた部分を表すことができる。MP3とAACオーディオを同時並行に処理することは、キャッシュミスを引き起こしうるが、MP3メモリイメージ213、215とAACメモリイメージ211、212、217の両方が4ウェイキャッシュ210のページサイズに整列されているという事実は、システム200において改善されたキャッシュ効率を提供しうる。0037図3は、キャッシュされたイメージを用いた低電力のオーディオのデコーディングおよび再生を行うためのシステム300の別の特定の実施形態を例示するブロック図である。具体的には、図3に例示される実施形態は、第1の低電力のデコーディングおよび再生シナリオから、第2の低電力のデコーディングおよび再生シナリオへの遷移330を図示する。0038初期構成では、図3の上方部分に例示さるように、4ウェイキャッシュ210は、低電力モードでの1つまたは複数のMP3ストリームの処理中に使用されうる。例えば、MP3ストリームの低電力処理は、図2を参照して説明および例示されたように達成されうる。0039動作中、1つまたは複数のMP3ストリームが終了し、1つまたは複数のPCMストリームが開始し得る。これに応答して、システム300は、図3の下方部分に例示されるように、低電力のMP3処理モードから低電力のPCM処理モードに遷移330しうる。例えば、PCM動的バッファ割り当て領域218およびPCMデコーディングイメージ216がバックグラウンドスレッド240によって4ウェイキャッシュ210に入れられている間、後処理イメージ214は、4ウェイキャッシュ210内に残りうる。一旦、3つすべてのイメージ218、216、および214が、4ウェイキャッシュ210においてキャッシュされると、キャッシュミスなくPCMデコーディングおよび再生が行われ、それによって、PCMストリームの低電力処理を可能にする。さらに、低電力処理は、複数のMP3ストリームまたは複数のPCMストリームにおける可聴中断例えば、ポッピングノイズなしに行われうる。0040図4は、キャッシュされたイメージを用いた低電力のオーディオのデコーディングおよび再生を行うためのシステム400の別の特定の実施形態を例示するブロック図である。システム400は、RAM420と通信可能に結合されたアプリケーションプロセッサ410およびDSP430を含む。DSP430はまた、4ウェイキャッシュ210に結合される。例示的な実施形態では、DSP430は、図1のプロセッサ110である。代替の実施形態では、4ウェイキャッシュ210は、DSP210内に含まれうる。0041アプリケーションプロセッサ410は、未処理のオーディオビットストリームをDSP430に提供しうる。例えば、アプリケーションプロセッサ410は、未処理のビットストリームをRAM420内に配置することができ、この未処理のビットストリームについてDSP430に通知することができる。これに応答して、DSP430は、RAM420から未処理のビットストリームを取り出しうる。0042特定の実施形態では、DSP430は、低電力メモリLPM440を含むか、あるいはそれに結合される。例えば、LPM440は、ビットストリームバッファ442と、DSPカーネルコードおよびデータ444と、出力ポート例えば、オーディオフロントエンドポートコードおよびデータ446とを含みうる。DSPカーネルコードおよびデータ444と出力ポートコードおよびデータ446は、複数のオーディオデコーダに共通のプログラム命令を含みうる。特定の実施形態では、LPM440は、4ウェイキャッシュ210に対する補完として機能しうる。すなわち、低電力のデコーディングおよび再生は、4ウェイキャッシュ210およびLPM440の使用を伴うが、RAM420の使用を伴わない。DSP430は、バーストにおいて、RAM420から未処理のビットストリームを取り出し例えば、固定サイズまたは可変サイズの部分の周期的な取り出し、ビットストリームバッファ442において未処理のビットストリームを格納し得る。0043DSP430はまた、1つまたは複数のデコーダ、後処理回路、ミキシング/ルーティング行列、共通処理回路、および出力ポートを含みうる。各デコーダ例えば、例示的なデコーダ452、454、および456は、ビットストリームバッファ442からデータを受信し、受信されたデータをデコードしてデコードされたデータを生成し、デコードされたデータを後処理回路例えば、例示的な後処理回路462、464、および466に送信するように動作可能である。各後処理回路は、1つまたは複数の後処理動作をデコードされたデータに適用して後処理されたデータを生成し、後処理されたデータをミキシングおよびルーティング行列470に送信しうる。特定の実施形態では、後処理動作は、デコーダおよびオーディオストリームのタイプに固有である。例えば、MP3の後処理動作は、PCMの後処理動作とは区別される。あるいは、後処理動作は、複数のタイプのデコーダおよびオーディオストリームに共通の動作を含みうる。0044行列470は、後処理されたデータを共通処理回路例えば、例示的な共通処理回路482、484、および486へルーティングしうる。共通処理回路は、出力の準備が整った処理されたデータを生成するために、1つまたは複数の共通処理動作を後処理されたデータに適用しうる。共通処理動作は、処理中のビットストリームのタイプに関係なく適用される、デコーダに不可知な動作でありうる。処理されたデータは、出力ポート例えば、例示的な出力ポート492、494、および496を介して出力されうる。例示的な実施形態では、各出力ポートは、システム400の異なる出力に対応する。例えば、図4に例示されるように、第1の出力ポート492はHDMI登録商標出力に対応し、第2の出力ポート494はヘッドセット出力に対応する。0045システム400における動作は、典型的なユースケース-ユーザがモバイルフォンのヘッドセット出力を介してMP3の曲を聴いている-を参照して説明される。ある特定の状況では例えば、他のオーディオストリームまたは他のタイプのオーディオストリームがデコードされていない場合、このユースケースは、低電力のオーディオのデコーディングおよび再生のユースケースを表しうる。アプリケーションプロセッサ410は、MP3の曲またはその一部分に対応するビットストリームをRAM420に配置し、このビットストリームについてDSP430に通知し得る。これに応答して、DSP430は、ビットストリームをRAM420からLPM440のビットストリームバッファ442にコピーしうる。0046その後、MP3ビットストリームは、デコードされ、後処理され、ミキシングされ、共通処理され、ヘッドセット出力ポート494を介して出力され、それによって、ユーザがMP3の曲を聴くことを可能にする。これらの動作中、MP3処理に対応するすべてのメモリアクセスは、LPM440と、4ウェイキャッシュ210におけるメモリイメージ213、214、および215とを使用してサービスされうる。例えば、メモリイメージ213、214、および215は、MP3処理の開始において、図2のバックグラウンドスレッド240のようなバックグラウンドスレッドによって、4ウェイキャッシュ210にロードされている。0047ビットストリームバッファ442から出力ポートまでの処理経路が、4ウェイキャッシュ210とLPM440を使用するが、RAM420を使用しないことによって、低電力のデコーディングおよび再生のユースケースを表すことが理解されるであろう。例えば、ビットストリームバッファ442からヘッドセット出力ポート494までの経路図4の網掛けによって示されるは、MP3の曲をデコードおよび再生することと関連づけられる低電力のユースケースを表す。0048特定の実施形態では、低電力のユースケースは、例えば、図2を参照して例示されるように同時並行オーディオのユースケースからの遷移に続いて起こりうる。例えば、オーディオデコーダ452は、オーディオデコーダ454がMP3の曲をデコードする間に、通話により生成されるスピーチオーディオストリームをデコードすることができる。通話が終了すると、スピーチオーディオストリームの終了が検出され、オーディオデコーダ452は、非アクティブになる。しかしながら、MP3の曲は再生し続けるので、オーディオデコーダ454は、MP3の曲をデコードし続ける。4ウェイキャッシュ210内にまだない任意のメモリイメージ213、214、および215は、スピーチオーディオストリームまたはMP3オーディオストリームにおける可聴中断なく、またアプリケーションプロセッサ410からの介入なしに、4ウェイキャッシュ210にロードされうる。0049別の特定の実施形態では、低電力のユースケースは、例えば、図3を参照して例示されるような別の低電力のユースケースからの遷移に続いて起こりうる。例えば、オーディオデコーダ452は、通話によって生成されるスピーチオーディオストリームをキャッシュミスなくデコードし、一方、オーディオデコーダ454は例えば、ユーザがMP3の曲を聴いていないので非アクティブである。通話が終了すると、スピーチオーディオストリームの終了が検出される。さらに、ユーザは、MP3の曲の再生を開始するためにコマンドを入力し、MP3ストリームを開始させる。これに応答して、メモリイメージ213、214、および215は、4ウェイキャッシュ210にロードされて、スピーチオーディオストリームまたはMP3オーディオストリームにおける可聴中断なく、またアプリケーションプロセッサ410からの介入なしに、MP3の曲の低電力処理を可能にしうる。0050図5は、キャッシュされたイメージを用いた低電力のオーディオのデコーディングおよび再生を行うためのシステム500の別の特定の実施形態を例示する図である。システム500は、システムファブリックsystemfabric510を介して互いに通信可能に結合されたアプリケーションプロセッサ502、メモリ504、リソースマネージャ506、および低電力のオーディオサブシステムLPA-SS520を含む。例示的な実施形態では、アプリケーションプロセッサ502は、図4のアプリケーションプロセッサ410であり、また、メモリ504は、図1のメモリ140、図2のメモリ220、または図4のRAM420である。特定の実施形態では、メモリ504は、32ビットのダブルデータレートDDRシンクロナスDRAMSDRAM:synchronousdynamicrandomaccessmemoryである。0051LPA-SS520は、AHBマスタブリッジ521、AHBスレーブブリッジ522、DMAコントローラ540、128kbLPM550、および256kbマルチウェイL2キャッシュ570に結合されたオーディオDSP560などの、LPA-SS520の様々なコンポーネントの間でデータを通信するように動作可能なアドバンスト高性能バスAHB530を含みうる。例示的な実施形態では、LPM550は、図4のLPM440であり、キャッシュ570は、図1のマルチウェイキャッシュ130または図2の4ウェイキャッシュ210である。オーディオDSP560は、リソースマネージャ506からのDSP割込みinterruptsを受信しうる。例えば、オーディオDSP割込みは、アプリケーションプロセッサ502、オーディオ入力または出力デバイス、あるいは何らかの他の割込みソースによって生成されうる。0052動作時に、アプリケーションプロセッサ502は、オーディオビットストリーム例えば、MP3の曲をメモリ504に配置しうる。アプリケーションプロセッサ502はまた、例えば、リソースマネージャ506によって発行されたオーディオDSP割込みを介してこのビットストリームについてオーディオDSP560に通知しうる。これに応答して、DMAコントローラ540は、これらビットストリームをメモリ504からLPM550にロードしうる。あるいは、DMAコントローラ540は、割込みベースのメカニズムに依存する代わりに、メモリ504からのビットストリームのバーストを周期的に取り出しうる。オーディオDSP560は、LPM550内のビットストリームを処理して出力オーディオを生成する。LPA-SS520が低電力のユースケースにある場合、オーディオDSP560によって生成されたすべてのメモリ要求は、LPM550またはキャッシュ570によって例えば、キャッシュ570においてロードされたメモリイメージを使用してサービスされうる。低電力のユースケースの間、アプリケーションプロセッサ502、メモリ504、リソースマネージャ506、およびシステムファブリック510に適用される電力は、低減され、それによって、システム500において電力を保存することが理解されるであろう。例えば、1つまたは複数のアプリケーションプロセッサ502、メモリ504、リソースマネージャ506、およびシステムファブリック510は、低電力モードまたはスリープモードにされか、あるいは電源が切られる。0053オーディオストリームを処理することは、動的に割り当てられたバッファの使用を伴いうる。例えば、図2-図4に例示されるように、1つまたは複数の動的メモリ割り当て領域は、低電力のデコーディングおよび再生の間にマルチウェイキャッシュ内にキャッシュされうる。特定の実施形態では、複数の動的メモリ割り当て領域は、図6によって例示され全般的に600と指定される動的メモリ管理技術にしたがって管理される動的メモリヒープdynamicmemoryheapを表す。技術600は、動的バッファの一定時間即ち、O1の割り当ておよび割り当て解除を達成するために、低電力のユースケースの間のみならず、非低電力のユースケースの間にも使用されうる。0054技術600は、低電力のオーディオのデコーディングおよび再生のユースケースに適用されるものとして例示され、ここで、メモリの領域610が割り当てられる。割り当てられた領域610は、マルチウェイキャッシュの単一のページに対応するように整列およびサイズ調整されうる。例えば、割り当てられた領域は64kbであり、256kbの4ウェイキャッシュの単一の64kbページにロードできるように整列されうる。その後、割り当てられた領域610は、複数の所定のバッファに分割される。例えば、割り当てられた領域610は、図6に例示されるように、32バイトのバッファ612、128バイトのバッファ614、および512バイトのバッファ616に分割されうる。データ構造例えば、スタックまたはキューは、各バッファサイズに対し加えられpopulated、各データ構造は、バッファサイズの利用可能なバッファへのポインタを格納する。例えば、データ構造641、642、および643は、それぞれバッファ612、614、および616に対応するように加えられる。0055ビットマスク630は、要求されたバッファサイズを満足する十分な大きさの所定のバッファが利用可能であるかどうかを示すために作成されうる。ビットマスクの各ビット位置は、特定のバッファサイズに対応し、またビット位置における値は、割り当てられた領域610において、特定のバッファサイズのバッファが利用可能であるかどうかを示す。図6の例示において、利用可能でないバッファは、Xまたは使用中で示されている。0056図6の特定の実施形態では、ビットマスク630の1番目のビット位置は、20バイト即ち、1バイトのバッファに対応し、また1番目のビット位置における値0は、割り当てられた領域610においていずれの1バイトのバッファも利用可能でないことを示す。5番目のビット位置631は、25バイト即ち、32バイトのバッファに対応し、またその値1は、32バイトのバッファが、割り当てられた領域610において利用可能であり、データ構造641において利用可能な32バイトのバッファへのポインタが存在するということを示す。7番目のビット位置632は、27バイト即ち、128バイトのバッファに対応し、またその値0は、即ち、割り当てられた領域610におけるすべての128バイトのバッファが使用中であるので、割り当てられた領域610においていずれの128バイトのバッファも利用可能でないことを示す。9番目のビット位置633は、29バイト即ち、512バイトのバッファに対応し、またその値1は、512バイトのバッファが、割り当てられた領域610において利用可能であり、データ構造643において利用可能な512バイトのバッファへのポインタが存在するということを示す。0057特定の実施形態では、各所定のバッファは、サイズ=2n8バイト、という式に従うサイズを有し、ここで、nは1以上の整数である。余分の8バイトは、以下に説明されるように、割り当て解除の間に使用されるリターンポインタおよび破損テストワードcorruptiontestwordを表しうる。したがって、32バイトのバッファ612は、実際には40バイトを占有し、128バイトのバッファは、実際には130バイトを占有し、512バイトのバッファ616は、実際には520バイトを占有しうる。0058動作時に、割り当てられた領域610は、マルチウェイキャッシュにおいてキャッシュされ、オーディオデコーディングを可能にするために、1つまたは複数のオーディオデコーダがプロセッサにおいて実行するアクセスを可能にし、ここで、オーディオデコーディングに対応するすべての動的メモリ割り当て要求は、割り当てられた領域610から満たされる。すなわち、動的メモリ割り当てによるいずれのキャッシュミスも、オーディオデコーディングによって生成されることはない。0059特定の要求されたサイズのバッファに関する要求が受信された場合、ビットマスク630は、要求されたサイズを収容するのに十分な大きさのバッファが利用可能であるかどうかを決定するために調べられるexamined。例えば、32バイトのバッファが要求された場合、ビットマスク630は、そのサイズが32バイト以上の任意バッファが利用可能であるかどうかをチェックするために調べられる。特定の実施形態では、一定時間で実行可能な単一の先行/末尾ゼロleadingtrailingzeroesのDSPコマンドは、ビットマスク630、要求されたバッファサイズ、またはその両方を調べるために使用される。例えば、5番目のビット位置630における1は、要求を満たすために32バイトのバッファが利用可能であることを示す。データ構造641からのポインタが、動的メモリ割り当て要求を満たすために提供されうるまた、データ構造641から除去されうる。提供されたポインタがデータ構造の最後に残っているポインタである場合、ビットマスク630の対応する値は、0にセットされうる。ポインタを提供することおよびビットマスク値をセットすることもまた、例えば、スタック/キューのポップpop動作および書き込みコマンドを使用して一定時間で行われうる。0060例えば、代表的なバッファ620へのポインタが提供されうる。バッファ620は、32バイトのバッファ622、4バイトの破損テストワード626、および4バイトのリターンポインタ624を含みうる。バッファ620を割り当て解除する要求が受信された場合、破損テストワード626が評価されうるevaluated。破損テストワード626例えば、疑似ランダムの32ビット値が変更されているmodified場合、バッファ620は、例えば、バッファ領域を越えたデータによって不適切に上書きされたことにより破損していると決定され、エラーが返される。破損テストワード626が変更されていないと決定された場合、バッファ620は、割り当て解除されうる。バッファ620を割り当て解除することは、バッファ620のリターンポインタと識別されるデータ構造641内にバッファ620へのポインタを配置することを含む。バッファ620を割り当て解除することはまた、ビットマスク630の対応する値を1にセットすることを含む。データ構造内にポインタを配置することおよびビットマスク値をセットすることは、一定時間で行われる。0061図6の技術600は、動的メモリの一定時間割り当ておよび割り当て解除を提供しうることが理解されるであろう。すなわち、図6の技術600は、割り当てられた領域610のサイズとは無関係に動作することができ、したがって、1つのキャッシュよりも大きなスペースにおける動的メモリ割り当てに適用し得る。例示的な実施形態では、図6の技術600は、他のソフトウェア開発者によって利用されうるメモリ管理ソフトウェアとして実装できる。例えば、図6の技術600は、1つまたは複数のヘッダおよびソースファイル例えば、CまたはCファイルを使用して実装でき、また、既存の動的メモリ管理技術例えば、mallocおよびfreeの代わりに使用できる。データ構造641-643の同じ側からプッシュすることpushingおよびポップすることpoppingによって、図6の技術600は、可能な範囲でバッファを再利用することができ、それによって、動的割り当てメモリの全体的なフットプリントfootprintサイズを低減させる。0062図7は、キャッシュされたイメージを用いた低電力オーディオデコーディングおよび再生方法700の特定の実施形態を例示するフロー図である。例示的な実施形態では、方法700は、図1のシステム100、図2のシステム200、図3のシステム300、図4のシステム400、または図5のシステム500において行われうる。0063方法700は、702では、DSPにおいて低電力オーディオデコーディングシナリオを検出することを含む。低電力オーディオデコーディングシナリオは、単一のオーディオデコーディング処理の開始、または同時並行のオーディオデコーディングから単一のデコーディング処理への遷移に対応しうる。例えば、低電力オーディオデコーディングシナリオは、図4のLPM440に格納されたMP3ストリームの開始に基づいて検出されうる。あるいは、低電力オーディオデコーディングシナリオは、図2の第1の遷移230または図3の遷移330に基づいて検出されうる。0064方法700はまた、704では、DSPのオーディオデコーダと関連づけられた1つまたは複数のメモリイメージをマルチウェイキャッシュにロードすることを含む。マルチウェイキャッシュは、DSPからのアクセスが可能であり、各メモリイメージは、マルチウェイキャッシュのページサイズを超えないようにサイズ調整される。例えば、図4において、メモリイメージ213、214、および215は、DSP430からのアクセスが可能な4ウェイキャッシュ210にロードされうる。メモリイメージ213、214、および215は、4ウェイキャッシュ210のページサイズを超えないようにサイズ調整され、また、オーディオデコーダ454に対応し得る。例えば、バックグラウンドスレッド240によってメモリイメージ213、214、および215が、4ウェイキャッシュ210にロードされている間、オーディオデコーディングは、低減するキャッシュミスの数を低減しながら、オーディオデコーダにおいて続行しうる。例えば、キャッシュミスの数は、図2の第1の曲線298を参照して例示および説明されるように低減しうる。0065方法700は、706において、マルチウェイキャッシュにおいてキャッシュミスを発生させることなく、またDSPに利用可能なより上位のメモリにアクセスすることなく、オーディオデコーダにおいてオーディオデコーディングを行うことをさらに含みうる。例えば、図4では、オーディオデコーダ454は、4ウェイキャッシュ210においてキャッシュミスを発生させることなく、またRAM420にアクセスすることなく、MP3ストリームをデコードしうる。例えば、図2の第1の曲線298を参照して例示および説明されたように、各々のメモリイメージ213、214、および215が、バクグラウンドスレッド240によって4ウェイキャッシュ210にロードされていた場合、キャッシュミスの数はゼロに低下しうる。0066他の実施形態では、方法700は、オーディオデコーダと関連づけられた1つまたは複数のメモリイメージを、プロセッサからのアクセスが可能なマルチウェイキャッシュにロードすることを含み、ここで、1つまたは複数のメモリイメージの各々は、マルチウェイキャッシュのページサイズを超えないようにサイズ調整される。マルチウェイキャッシュは、4ウェイキャッシュを含み、また、プロセッサは、デジタル信号プロセッサを含み得る。1つまたは複数のメモリイメージをロードすることは、オーディオデコーダがマルチウェイキャッシュにおいていずれのキャッシュミスも発生させることなく、オーディオデコーディングを可能にし、ここで、オーディオデコーディングは、プロセッサに利用可能なより上位のメモリにアクセスすることなく、マルチウェイキャッシュに1つまたは複数のメモリイメージをロードした後に行われる。各メモリイメージのサイズは、マルチウェイキャッシュのページサイズに等しく、また、オーディオデコーダは、1つまたは複数のオーディオストリームをデコードするように動作可能でありうる。1つまたは複数のメモリイメージは、メモリからマルチウェイキャッシュにそれぞれロードされ、マルチウェイキャッシュの対応する単一のページにロードされるように、当該メモリにおいてそれぞれ整列され得る。メモリはまた、複数のオーディオデコーダに共通の少なくとも1つのメモリイメージを含む、第2のオーディオデコーダと関連づけられた1つまたは複数のメモリイメージおよび動的メモリ割り当て領域を含みうる。方法700は、プロセッサと一体化されたメモリにおいて、複数のオーディオデコーダに共通のプログラム命令にアクセスすることを含みうる。0067第1の1つまたは複数のメモリイメージは、オーディオデコーダプログラム命令を含み、第2の1つまたは複数のメモリイメージは、動的メモリ割り当て領域に対応し、第3の1つまたは複数のメモリイメージは、後処理プログラム命令を含み得る。方法700は、1つまたは複数のメモリイメージの全メモリイメージをマルチウェイキャッシュにロードさせる処理を開始することを含みうる。この処理は、バックグラウンドスレッドを含み、オーディオデコーディング処理の開始または停止を検出することに応答して開始され得る。0068追加の実施形態では、方法700は、オーディオデコーダにおいて第1のオーディオストリームを、および第2のオーディオデコーダにおいて第2のオーディオストリームを、同時並行にデコードすることを含みうる。第2のオーディオストリームの終了が検出され、第2のデコーダにおける第2のオーディオストリームのデコーディングが終了される。第1のオーディオストリームは、第2のオーディオストリームのデコーディング終了後、オーディオデコーダにおいてデコードされうる。1つまたは複数のメモリイメージは、第1または第2のオーディオストリームにおける可聴中断なく、またアプリケーションプロセッサからの介入とは無関係に、マルチウェイキャッシュにロードされうる。さらなる実施形態では、方法700は、オーディオデコーダがマルチウェイキャッシュにおいていずれのキャッシュミスも発生させことなく、オーディオデコーダにおいて第1のオーディオストリームをデコードすることを含みうる。第1のオーディオストリームの終了および第2のオーディオデコーダによってデコードされる第2のオーディオストリームの開始が検出され、第2のオーディオデコーダと関連づけられた1つまたは複数のメモリイメージが、マルチウェイキャッシュにロードされ得る。第2のオーディオストリームは、第2のオーディオデコーダがマルチウェイキャッシュにおいていずれのキャッシュミスも発生させることなく、第2のオーディオデコーダにおいてデコードされうる。第2のオーディオデコーダと関連づけられた1つまたは複数のメモリイメージは、第1または第2のオーディオストリームにおける可聴中断なく、またアプリケーションプロセッサからの介入とは無関係に、マルチウェイキャッシュにロードされうる。0069他の実施形態では、方法700は、オーディオデータを受信することと、ここで、1つまたは複数のメモリイメージは、オーディオデータがこのオーディオデコーダに対応すると決定することに応答してロードされ、マルチウェイキャッシュにおいてキャッシュミスを発生させることなく、オーディオデコーダにおいてオーディオデータをデコードすることと、後処理されたオーディオデータを生成するために、デコードされたオーディオデータに1つまたは複数の後処理機能functionsを適用することと、処理されたオーディオデータを生成するために、後処理されたデータに1つまたは複数の共通処理機能を適用することと、処理されたオーディオデータをプロセッサの出力ポートに提供することと、を含みうる。1つまたは複数の後処理機能は、オーディオデコーダに固有であり、また、1つまたは複数の共通処理機能は、複数のオーディオデコーダに共通である。0070図7の方法700は、フィールドプログラマブルゲートアレイFPGAデバイス、特定用途向け集積回路ASIC、中央処理装置CPUのような処理ユニット、デジタル信号プロセッサDSP、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、またはこれらの任意の組み合わせによって実装されうる。一例として、図7の方法700は、図9に関して説明されるように、命令を実行するプロセッサによって行われうる。0071図8は、キャッシュされたイメージを用いた低電力のオーディオのデコーディングおよび再生の間の動的メモリ管理の方法800の特定の実施形態を例示するフロー図である。例示的な実施形態では、方法800は、図6の技術600を参照して例示されうる。0072方法800は、802では、メモリの領域を割り当てることを含みうる。割り当てられた領域は、マルチウェイキャッシュの単一のページに対応するように整列されて、マルチウェイキャッシュの単一のページのサイズに実質的に等しいサイズを有する。例えば、図6を参照すると、領域610が割り当てられ、領域610は、マルチウェイキャッシュのページサイズ例えば、図5の256kbキャッシュ570のページサイズに等しいサイズ64kbを有する。0073方法800はまた、804において、オーディオデコーディングを可能にするために、1つまたは複数のオーディオデコーダによるアクセスを可能にするために、マルチウェイキャッシュの単一のページにおいて、メモリの割り当てられた領域をキャッシュすることを含みうる。オーディオデコーディングに対応するすべての動的メモリ割り当て要求は、メモリのキャッシュされた領域から満たされうる。例えば、図6を参照すると、割り当てられた領域610は、低電力オーディオデコーディングを可能にするためにキャッシュされる。0074方法800は、806において、メモリの割り当てられた領域の少なくとも一部分を、第1のバッファサイズを有する第1のバッファと第2のバッファサイズを有する第2のバッファとを含む複数の所定のバッファに分割することをさらに含みうる。例えば、図6を参照すると、割り当てられた領域610は、32バイトのバッファ612、128バイトのバッファ614、および512バイトのバッファ616に分割される。0075方法800は、808において、所定のバッファへのポインタを有する1つまたは複数のデータ構造を加えるpopulatingことを含みうる。特定のデータ構造の各ポインタは、特定のサイズの所定のバッファを指し示す。例えば、図6を参照すると、データ構造641、642、および643が加えられるポピュレートされる。0076方法800はまた、810において、メモリの割り当てられた領域における利用可能なバッファを示すためにビットマスクをセットすることを含みうる。ビットマスクの第1のビットは、第1のバッファサイズを有するバッファが利用可能であるかどうかを示し、ビットマスクの第2のビットは、第2のバッファサイズを有するバッファが利用可能であるかどうかを示す。例えば、図6を参照すると、ビットマスク630がセットされる。0077方法800は、812において、要求されたサイズのメモリ割り当てを示す要求を受信することをさらに含みうる。例えば、図6を参照すると、32バイトのバッファに対する要求が受信される。方法800は、814において、ビットマスクが、この要求を満たすために少なくとも1つのバッファが利用可能あることを示すかどうかを決定することを含みうる。ビットマスクが、少なくとも1つのバッファが利用可能であることを示す場合、方法800は、816において、この要求を満たす最小の利用可能なバッファに対応するポインタを提供することを含みうる。例えば、図6を参照すると、バッファ620へのポインタが提供される。この要求を満たすのに十分な大きさのバッファが存在しないと決定された場合、方法800は、818において、要求を満たすことができないというインジケーションを提供することを含みうる。0078図8の方法800は、フィールドプログラマブルゲートアレイFPGAデバイス、特定用途向け集積回路ASIC、中央処理装置CPUのような処理ユニット、デジタル信号プロセッサDSP、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、またはこれらの任意の組み合わせによって実装されうる。一例として、図8の方法800は、図9に関して説明されるように、命令を実行するプロセッサによって行われうる。0079図9を参照すると、電子デバイスの特定の実施形態の図が図示され、全般的に900と指定されている。デバイス900は、アプリケーションプロセッサ910およびオーディオデジタル信号プロセッサDSP950などの、1つまたは複数のプロセッサを含む。アプリケーションプロセッサ910およびオーディオDSP950は、ここに開示される方法を行うように構成されたハードウェアを含みうる。アプリケーションプロセッサ910およびオーディオDSP950はまた、ここに開示される方法を行うために実行可能なソフトウェア命令を実行するように動作可能でありうる。アプリケーションプロセッサ910は、ランダムアクセスメモリRAM932に結合される。RAMは、オーディオストリームの低電力のデコーディングおよび再生を可能にするためにキャッシュ可能な1つまたは複数のキャッシュサイズ調整されたおよびキャッシュ整列されたメモリイメージ970を含む。例示的な実施形態では、メモリイメージ970は、図1のメモリイメージ142-146、図2のメモリイメージ211-218、または図6の割り当てられた領域610に対応しうる。0080図9はまた、アプリケーションプロセッサ910とディスプレイ928とに結合されたディスプレイコントローラ926を示す。オーディオDSP950は、コーダ/デコーダCODEC952および1つまたは複数のポート例えば、例示的なポート954および956を含みうる。スピーカ936およびマイクロホン938は、それぞれポート954および956を介してオーディオDSP950に結合されうる。例示的な実施形態では、CODEC952は、図1のオーディオデコーディングブロック122またはデコーダ454、454、および456などの図4のDSP430の1つまたは複数のコンポーネントを含む。別の例示的な実施形態では、ポート954および956は、図4の出力ポート492、494、および496のうちのそれぞれ一つである。オーディオDSP950はまた、メモリイメージ970をキャッシュするように動作可能なマルチウェイキャッシュ960を含むか、あるいはそれに結合されうる。例示的な実施形態では、マルチウェイキャッシュ960は、図1のマルチウェイキャッシュ130、図2の4ウェイキャッシュ210、または図5のキャッシュ570である。0081図9はまた、無線コントローラ940が、アプリケーションプロセッサ910と、無線アンテナ942とに結合されうることを示す。特定の実施形態では、アプリケーションプロセッサ910、オーディオDSP950、マルチウェイキャッシュ960、ディスプレイコントローラ926、RAM932、および無線コントローラ940は、システムインパッケージまたはシステムオンチップデバイス922に含まれる。特定の実施形態では、入力デバイス930例えば、キーボードまたはタッチスクリーンおよび電源944例えば、バッテリが、システムオンチップデバイス922に結合される。さらに、特定の実施形態では、図9に例示されるように、ディスプレイ928、入力デバイス930、スピーカ936、マイクロホン938、無線アンテナ942、および電源944は、システムオンチップデバイス922の外部にありうる。しかしながら、ディプレイ928、入力デバイス930、スピーカ936、マイクロホン938、無線アンテナ942、および電源944の各々は、インタフェースまたはコントローラなどの、システムオンチップデバイス922のコンポーネントに結合されうる。0082当業者は、ここに開示された実施形態に関連して説明された様々な例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、ハードウェアプロセッサのような処理デバイスによって実行されるコンピュータソフトウェア、または両方の組み合わせとして実装されうることをさらに理解するであろう。さまざまな例示的なコンポーネント、ブロック、構成、モジュール、回路、およびステップは、一般に、それらの機能の観点から上記に説明された。このような機能が、ハードウェアとして実装されるか、あるいは実行可能なソフトウェアとして実装されるかは、特定のアプリケーションおよびシステム全体に課せられる設計制約に依存する。当業者は、各々の特定のアプリケーションに関して、多様な方法で説明された機能を実装することができるが、このような実装の決定は、本開示の範囲からの逸脱を引き起こしていると解釈されるべきでない。0083ここに開示された実施形態に関連して説明されたアルゴリズムまたは方法のステップは、直接ハードウェアにおいて、プロセッサによって実行されるソフトウェアモジュールにおいて、またはこれら2つの組み合わせにおいて、具現化embodiedされうる。ソフトウェアモジュールは、ランダムアクセスメモリRAM、磁気抵抗ランダムアクセスメモリMRAM、STT-MRAMspintorquetransferMRAM、フラッシュメモリ、読み出し専用メモリROM、プログラマブル読み出し専用メモリPROM、消去可能PROMEPROM、電気的消去可能PROMEEPROM、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読み出し専用メモリCD-ROM、または当該技術分野において周知であるその他任意の形状の記憶媒体などの非一時的な記憶媒体に存在しうる。典型的な記憶媒体は、プロセッサがこの記憶媒体から情報を読み取り、またこの記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替において、記憶媒体は、プロセッサと一体化されうる。プロセッサおよび記憶媒体は、特定用途向け集積回路ASIC内に存在しうる。ASICは、コンピューティングデバイスまたはユーザ端末内に存在しうる。代替において、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末内に個別のコンポーネントとして存在しうる。0084開示された実施形態の先の説明は、開示された実施形態を製造または使用することを当業者に可能にするために提供される。これらの実施形態への様々な修正は、当業者にとって容易に明らかであり、ここに定義された原理は、本開示の範囲から逸脱することなく他の実施形態に応用されうる。したがって、本開示は、ここに示された実施形態に限定されるようには意図されず、下記の特許請求の範囲によって定義されるような原理および新規な特徴と一致する可能である最も広い範囲を与えられることとなる。