(57)【特許請求の範囲】
【請求項１】
不揮発性メモリ内に記憶されたメディアデータのポインタ構造を、第１のプロセッサによって生成することと、
第２のプロセッサによってアクセス可能なメモリ領域内に、前記第１のプロセッサによって前記ポインタ構造を書き込むことと、
前記第２のプロセッサによって前記メモリ領域から前記ポインタ構造を読み出すことと、
前記ポインタ構造に基づいて、前記第２のプロセッサによって前記不揮発性メモリから前記メディアデータのブロックを検索することと、
を具備し、
前記第１のプロセッサは、前記メモリ領域への前記ポインタ構造の書き込みの後、スリープモードに入り、
前記ポインタ構造は、リストを作成することで生成され、
前記リストは、メディアデータの長さ、アドレス、及びオフセットを含む
メディア機器の電力を減らす方法。
【請求項２】
前記第１のプロセッサはアプリケーションプロセッサである請求項１の方法。
【請求項３】
前記第２のプロセッサは、デジタル信号プロセッサまたは、周辺プロセッサである請求項１の方法。
【請求項４】
前記メディアデータは、オーディオファイルデータ、またはビデオファイルデータである請求項１の方法。
【請求項５】
前記第２のプロセッサによって検索された前記メディアデータの前記ブロックの少なくとも一部は、ビットストリームバッファに書き込まれる請求項１の方法。
【請求項６】
前記第２のプロセッサは、ビットストリームバッファの残りを監視する請求項５の方法。
【請求項７】
前記第２のプロセッサは、検索された前記メディアデータの前記少なくとも一部を復号化（decrypt）する請求項５の方法。
【請求項８】
前記第２のプロセッサは、検索された前記メディアデータの前記少なくとも一部をクリプトエンジンアクセラレータ（crypto engine accelerator）に送る請求項５の方法。
【請求項９】
同時タスク（concurrent task）がある場合、前記第１のプロセッサは、前記第２のプロセッサが前記不揮発性メモリから前記メディアデータの前記ブロックの検索を終了した後に、前記不揮発性メモリに書き込み、
ポインタ構造は、前記同時のタスクが終了した後に再作成される
請求項１の方法。
【請求項１０】
前記第１のプロセッサによって前記ポインタ構造を生成することは、前記メディア機器のユーザーからオーディオファイルまたはビデオファイルの選択によって開始される請求項１の方法。
【請求項１１】
早送りまたは巻き戻しの間、前記第１のプロセッサは、前記検索されたメディアデータの前記ブロックよりも小さいステップサイズに基づいて、新ポインタ構造を再作成する請求項１の方法。
【請求項１２】
メディアデータを記憶した不揮発性メモリと、
前記不揮発性メモリに結合され、前記不揮発性メモリ内に記憶された前記メディアデータの位置及びサイズを含むポインタ構造を生成するように構成された第１のプロセッサと、
前記第１のプロセッサによって書き込まれた前記ポインタ構造を記憶するためのメモリ領域と、
前記メモリ領域から前記ポインタ構造を読み出すように構成され、前記不揮発性メモリから前記メディアデータのブロックを検索するように構成された第２のプロセッサと、
を具備し、
前記第１のプロセッサは、前記ポインタ構造を前記メモリ領域へ書き込んだ後に、スリープモードに入り、
前記ポインタ構造は、リストを作成することで生成され、
前記リストは、メディアデータの長さ、アドレス、及びオフセットを含む
メディア機器。
【請求項１３】
前記第１のプロセッサは、アプリケーションプロセッサである請求項１２のメディア機器。
【請求項１４】
前記第２のプロセッサは、デジタル信号プロセッサまたは、周辺プロセッサである請求項１２のメディア機器。
【請求項１５】
前記メディアデータは、オーディオファイルデータ、またはビデオファイルデータである請求項１２のメディア機器。
【請求項１６】
前記第２のプロセッサによって検索された前記メディアデータの前記ブロックの少なくとも一部は、ビットストリームバッファに書き込まれる請求項１２のメディア機器。
【請求項１７】
同時タスク（concurrent task）がある場合、前記第１のプロセッサは、前記第２のプロセッサが前記不揮発性メモリから前記メディアデータの前記ブロックの検索を終了した後に、前記不揮発性メモリに書き込み、
ポインタ構造は、前記同時のタスクが終了した後に再作成される
請求項１２のメディア機器。
【請求項１８】
早送りまたは巻き戻しの間、前記第１のプロセッサは、前記検索されたメディアデータの前記ブロックよりも小さいステップサイズに基づいて、新ポインタ構造を再作成する請求項１２のメディア機器。
【請求項１９】
不揮発性メモリ内に記憶されたメディアデータのポインタ構造を、アプリケーションプロセッサによって生成する手段と、
前記アプリケーションプロセッサによって、異なるプロセッサによってアクセス可能なメモリ領域内に前記ポインタ構造を書き込む手段と、
前記異なるプロセッサによって前記メモリ領域から前記ポインタ構造を読み出す手段と、
前記ポインタ構造に基づいて、前記異なるプロセッサによって前記不揮発性メモリから前記メディアデータを検索する手段と、
を具備し、
前記アプリケーションプロセッサは、前記ポインタ構造を前記メモリ領域へ書き込む手段が達成された後に、スリープモードに入り、
前記ポインタ構造は、リストを作成することで生成され、
前記リストは、メディアデータの長さ、アドレス、及びオフセットを含む
メディア機器。
【請求項２０】
前記異なるプロセッサは、デジタル信号プロセッサまたは周辺プロセッサである請求項１９のメディア機器。
【請求項２１】
前記メディアデータはオーディオファイルデータ、またはビデオファイルデータである請求項１９のメディア機器。
【請求項２２】
前記異なるプロセッサによって検索された前記メディアデータのブロックの少なくとも一部は、ビットストリームバッファに書き込まれる請求項１９のメディア機器。
【請求項２３】
デジタル信号プロセッサは、検索された前記メディアデータの少なくとも一部を復号化（decrypt）する請求項１９のメディア機器。
【請求項２４】
前記異なるプロセッサは、検索された前記メディアデータの少なくとも一部をクリプトエンジンアクセラレータ（crypto engine accelerator）に送る請求項１９のメディア機器。
【請求項２５】
早送りまたは巻き戻しの間、前記アプリケーションプロセッサは、前記検索されたメディアデータのブロックよりも小さいステップサイズに基づいて、新ポインタ構造を再作成する請求項１９のメディア機器。
【請求項２６】
不揮発性メモリ内に記憶されたメディアデータのポインタ構造を、第１のプロセッサによって生成するためのコードと、
前記第１のプロセッサによって第２のプロセッサによってアクセス可能なメモリ領域内に前記ポインタ構造を書き込むためのコードと、
前記第２のプロセッサによって前記メモリ領域から前記ポインタ構造を読み出すためのコードと、
前記ポインタ構造に基づいて、前記第２のプロセッサによって前記不揮発性メモリから前記メディアデータのブロックを検索するためのコードと、
を具備し、
前記第１のプロセッサは、前記メモリ領域への前記ポインタ構造の書き込みの後、スリープモードに入り、
前記ポインタ構造は、リストを作成することで生成され、
前記リストは、メディアデータの長さ、アドレス、及びオフセットを含む
１以上のプロセッサによって実行可能な命令のセットを具体化するコンピュータ読み取り可能な記憶メディア。
【請求項２７】
前記第１のプロセッサはアプリケーションプロセッサである請求項２６のコンピュータ読み取り可能な記憶メディア。
【請求項２８】
前記第２のプロセッサは、デジタル信号プロセッサ、または周辺プロセッサである請求項２６のコンピュータ読み取り可能な記憶メディア。
【請求項２９】
前記メディアデータは、オーディオファイルデータ、またはビデオファイルデータである請求項２６のコンピュータ読み取り可能な記憶メディア。
【発明の詳細な説明】
【米国特許法第１１９条に基づく優先権の主張】
【０００１】
この特許出願は、２００８年３月１８日に出願され、本願の譲受人に譲渡され、“EFFICIENT RETRIEVAL TECHNIQUES OF DATA FROM MEMORY”と表題された仮出願番号６１／０３７，４５０、代理人整理番号０８１１１Ｐ１に対して優先権を主張する。
【技術分野】
【０００２】
本発明は、概して、コンピュータ及びコンピュータ関連技術に関し、より具体的には、不揮発性メモリからの圧縮ファイルの検索のための効果的な技術に関する。この技術は、モバイル計算機器（mobile computing devices）を含む計算機器において利用され得る。
【背景技術】
【０００３】
計算機器は、オペレーティングシステム（operating system）を有している。オペレーティングシステムは、計算機器ハードウェア上でソフトウェアアプリケーションの実行を可能にするソフトウェアプログラムである。オペレーティングシステムは、計算機器内に配置されたプロセッサ上にロードされる。多くのアプリケーションは、モバイル機器上に搭載されるようになった。これらのアプリケーションのいくつかは、オーディオ処理及び／またはビデオ処理を含む。
【０００４】
オーディオ処理という用語は、オーディオ信号の処理を表し得る。同様に、ビデオ処理という用語は、ビデオ信号の処理を表し得る。オーディオ信号は、オーディオ、すなわち、人間の聴力の範囲内の音を表す電気的な信号である。同様に、ビデオ信号は、ビデオを表す電気的な信号である。オーディオ信号またはビデオ信号はデジタルまたはアナログのどちらかであり得る。様々な種類の計算機器は、オーディオおよびビデオ処理技術に利用し得る。そのような計算機器の例は、デスクトップコンピュータ、ラップトップコンピュータ、ワークステーション、ワイヤレス通信機器、ワイヤレスモバイル機器、携帯情報端末（ＰＤＡ）、スマートフォン、ｉＰｏｄ（登録商標）、ＭＰ３プレイヤー、携帯ゲーム機（handheld gaming unit）または他のメディアプレイヤー、及び多種多様の他のコンシューマー機器を含んでいる。本明細書で用いられるように、計算機器のこれらの例のいくつかはメディア機器と見なされる。
【０００５】
オーディオの圧縮は、オーディオファイルのサイズを減少させるように設計されているデータ圧縮の形式である。今日用いられている多くの種類のオーディオ圧縮アルゴリズムがある。オーディオ圧縮アルゴリズムのいくつかの例は、ＭＰＥＧ−１オーディオレイヤー３（ＭＰ３）、先進的音響符号化（ＡＡＣ）、ハイエフィシェンシーＡＡＣ（ＨＥ（High Efficiency）−ＡＡＣ）、ＨＥ−ＡＡＣバージョン２（ＨＥ−ＡＡＣ  ｖ２）、ウィンドウズ（登録商標）メディアオーディオ（ＷＭＡ）（登録商標）、ＷＭＡプロ（登録商標）、等を含む。
【０００６】
同様に、ビデオ圧縮（時々、ビデオと同様にピクチャを圧縮するために使用され得る）はビデオ（またはピクチャ）ファイルのサイズを減少させるように設計されたデータ圧縮の形式である。今日用いられている多くの種類のビデオ圧縮アルゴリズムがある。ビデオ圧縮アルゴリズムのいくつかの例は、ＪＰＥＧベースプロファイル、ＪＰＥＧ２０００、ＭＰＥＧ−１、ＭＰＧ−２、ＭＰＥＧ−４、シンプルプロファイル、ＭＰＥＧ−４アドバンスドシンプルプロファイル、Ｈ．２６３ベースプロファイル、Ｈ．２６４ベースプロファイル、Ｈ．２６４メインプロファイル、ＶＣ１スタンダードを含んでいるウィンドウズメディアビデオ（登録商標）９シリーズ、等を含んでいる。
【０００７】
オーディオファイルまたはビデオファイルは、オーディオまたはビデオ信号を圧縮するオーディオまたはビデオ圧縮アルゴリズムに依存する異なるフォーマットを有し得る。圧縮されたデータは、時々、ビットストリームとして言及され得る。ビットストリーム(言い換えると、圧縮されたオーディオファイルまたは圧縮されたビデオファイル)は、メモリに記憶され得る。時々ビットストリームは、コンピュータまたはモバイル機器のオペレーティングシステムに関連付けられたたフォーマットに暗号化または記憶される。ビットストリーム（それが圧縮データを表し得る場合）を解凍すること、及びビットストリーム（もし、それが暗号化されていたら）を復号化（decrypt）することは、秒当たり、多くの計算を要する。
【０００８】
アプリケーションソフトウェアを走らせるプロセッサ(時々、アプリケーションプロセッサと呼ばれる)は専用プロセッサとインタラクト（interact）する。専用プロセッサの一つのタイプは、デジタル信号プロセッサ（ＤＳＰ）として知られている。オペレーティングシステムがロードされたアプリケーションプロセッサは、メモリからのビットストリームを検索し、復号化及び／または解凍するためのＤＳＰにビットストリームを渡す。この方法でビットストリームを処理することは、大抵、多くの電力を消費する。低電力でビットストリームを処理するための技術を見つけることが望まれている。
【発明の概要】
【０００９】
一態様によれば、メディア機器の電力を減らす方法は、不揮発性メモリ内に記憶されたメディアデータのポインタ構造を、第１のプロセッサによって生成することと、第２のプロセッサによってアクセス可能なメモリ領域内に、前記第１のプロセッサによって前記ポインタ構造を書き込むことと、前記第２のプロセッサによって前記メモリ領域から前記ポインタ構造を読み出すことと、前記ポインタ構造に基づいて、前記第２のプロセッサによって前記不揮発性メモリから前記メディアデータのブロックを検索することと、を含む。
【００１０】
他の態様によれば、メディア機器は、メディアデータを記憶した不揮発性メモリと、前記不揮発性メモリに結合され、前記不揮発性メモリ内に記憶された前記メディアデータの位置及びサイズを含むポインタ構造を生成するように構成された第１のプロセッサと、前記アプリケーションプロセッサによって書き込まれた前記ポインタ構造を記憶するためのメモリ領域と、前記メモリ領域から前記ポインタ構造を読み出すように構成され、前記不揮発性メモリから前記メディアデータのブロックを検索するように構成された第２のプロセッサと、を含む。
【００１１】
他の態様によれば、メディア機器は、不揮発性メモリ内に記憶されたメディアデータのポインタ構造を、アプリケーションプロセッサによって生成する手段と、前記アプリケーションプロセッサによって、異なるプロセッサによってアクセス可能なメモリ領域内に前記ポインタ構造を書き込む手段と、前記異なるプロセッサによって前記メモリ領域から前記ポインタ構造を読み出す手段と、前記ポインタ構造に基づいて、前記異なるプロセッサによって前記不揮発性メモリから前記メディアデータを検索する手段と、を含む。
【００１２】
さらなる態様によれば、１以上のプロセッサによって実行可能な命令のセットを具体化するコンピュータ読み取り可能なメディアは、不揮発性メモリ内に記憶されたメディアデータのポインタ構造を、第１のプロセッサによって生成するためのコードと、前記第１のプロセッサによって第２のプロセッサによってアクセス可能なメモリ領域内に前記ポインタ構造を書き込むためのコードと、前記第２のプロセッサによって前記メモリ領域から前記ポインタ構造を読み出すためのコードと、前記ポインタ構造に基づいて、前記第２のプロセッサによって前記不揮発性メモリから前記メディアデータのブロックを検索するためのコードと、を含む。
【００１３】
他の態様、特徴、方法及び長所は、下記の図面及び詳細な記載の考察で、当業者に明白になる。それは、そのような追加の特徴、態様、方法及び長所の全てはこの記載の中に含まれており、特許請求の範囲によって保護されることを意図している。
【００１４】
図面は、単に例示の目的のためのものであるということが理解される。さらに、図中の構成要素は、寸法がある必要はなく、代わりに、重要性は本明細書に記載された技術及び装置の原理を説明することに置かれている。図面において、異なる図を通して関連する部分には同じ参照番号を示す。
【図面の簡単な説明】
【００１５】
【図１】図１は、メモリからのファイルを検索し、ファイル内のデータをＤＳＰに渡すためのアプリケーションプロセッサを用いて、オーディオファイルの処理を行うための技術を実行するメディア機器例を示しているブロックダイアグラムである。
【図２Ａ】図２Ａは、メモリからのファイルを検索するための異なるプロセッサ（アプリケーションプロセッサ以外のもの）を用いて、オーディオファイルの処理を行うための技術を実行するメディア機器例を示しているブロックダイアグラムである。
【図２Ｂ】図２Ｂは、メモリからのファイルを検索するための異なるプロセッサ（アプリケーションプロセッサ以外のもの）を用いて、ビデオファイルの処理を行うための技術を実行するメディア機器例を示しているブロックダイアグラムである。
【図２Ｃ】代替実施形態において、図２Ａ及び図２Ｂに示した共通のアーキテクチャと、図２Ａ及び図２Ｂに示したアーキテクチャの違いとが、図２Ｃに示されているメディア機器を形成する。
【図３】図３は、する周辺プロセッサまたはＤＳＰ等の異なるプロセッサが不揮発性メモリからのデータを検索した後のアプリケーションプロセッサによる不揮発性メモリへの書き込みのプロセスのフローダイアグラムを示している。
【図４Ａ】図４Ａは、図２Ａの代替実施形態である。
【図４Ｂ】図４Ｂは、図２Ｂの代替実施形態である。
【図４Ｃ】代替実施形態において、図４Ａ及び図４Ｂに示した共通のアーキテクチャと、図４Ａ及び図４Ｂに示したアーキテクチャの違いとが、図４Ｃに示されているメディア機器１４０を形成する。
【図５】図５は、電源管理用集積回路（ＰＭＩＣ）の一例のブロックダイアグラムである。
【図６Ａ】図６Ａは、トータル電流消費対バッテリー寿命のグラフを示している。
【図６Ｂ】図６Ｂは、本明細書に記載された技術／アーキテクチャによって使用され得るバッテリー寿命の量を（時間により）示したグラフ例である。
【図７】図７は、メモリからファイルを検索するためのアプリケーションプロセッサとは異なるプロセッサを用いてメディアファイルを処理するための技術例のフローチャートを示している。
【図８】図８は、メモリからファイルを検索するためのアプリケーションプロセッサとは異なるプロセッサを用いてメディアファイルを処理するための技術例のフローチャートを示している。
【発明の詳細な説明】
【００１６】
近年、計算機器におけるセキュリティは重要になってきている。人々は、デジタル方式で記憶され得る彼らの個人情報を保護することに関して心配している。アーティストと同様に、音楽会社及び映画スタジオも、彼らのコンテンツが不法にコピーされ得ることを心配している。多くの計算機器において、異なるオペレーティングシステムによって動作するファイルシステム(ソフトウェアプログラムも)が存在する。多くのオペレーティングシステムにより、ユーザーは、安全にデータを記憶することができる。ファイルシステムは、選択されたファイルシステムにおいてファイル及びフォルダ内のデータを暗号化することによって、安全にデータを記憶することができ得る。これをし得る、ＦＡＴ、ＦＡＴ１６、ＦＡＴ３２、ＮＴＦＳ、または他の独自のシステムのような種々のファイルシステムがある。ＷｉｎＦＳ（Windows（登録商標） Future Storage）（登録商標）のようないくつかのシステムは、今や未来のために開発されている。人気が出てきている一つのそのようなシステムは、ＮＴＦＳである。ＮＴＦＳ（New technology File System）は、Ｗｉｎｄｏｗｓ ＸＰ（登録商標） Ｖｉｓｔａ（登録商標） ２００３（登録商標） ２０００（登録商標） ＆ ＮＴ (マイクロソフトによって開発された) （登録商標）またはＷｉｎｄｏｗｓ Ｍｏｂｉｌｅ ５．０、 ６．０、 ７．０（登録商標）等といった最新のオペレーティングシステムに対して独占の暗号化ファイルシステム（ＥＦＳ：Encrypting File System）である。ＮＴＦＳは、ファイルレベルセキュリティ及びファイル圧縮をサポートする。ファイル圧縮(この文脈の中で)は、予め言及されたオーディオ処理圧縮の後に適用される“追加”の圧縮であり得る。ＥＦＳもＷｉｎｄｏｗｓ Ｍｏｂｉｌｅオペレーティングシステム上に存在する。リナックス（登録商標）及びアップルのオペレーティングシステムは、同様にして用いられ得る暗号化ファイルシステムを有している。暗号化ファイルシステムは、ファイルシステムに統合されているので、管理しやすく、攻撃することが困難である。一度、ファイルまたはフォルダが暗号化されたとしてマークされると、暗号化され、ユーザーに明白になる。
【００１７】
マイクロソフトのＥＦＳによって、ファイル及びフォルダを暗号化するために、正当なＸ．５０９認証が用いられる。将来、他の認証が用いられ得る。暗号化において、Ｘ．５０９は、公開鍵基盤（ＰＫＩ）のための国際電気通信連合（ＩＴＵ）−Ｔスタンダードである。とりわけ、Ｘ．５０９は、公開鍵証明書及び認証パス検証アルゴリズムのためのスタンダードフォーマットを明記する。ＩＴＵは、情報及び通信技術をリードする国際機関である。ユーザーがデータを暗号化しようと試みるとき、ＥＦＳは、正当な認証を捜す。もし、ＥＦＳが正当な認証を見つけられなかったとき、ＥＦＳはウインドウズ認証機関（ＣＡ：certification authority）を用いて認証を登録しようと試みることができる。もし、ＣＡを介して認証の要求をすることができなかったとき、ＥＦＳは自己署名証明書を生成し得る。
【００１８】
ファイルシステムソフトウェアは計算機器内のプロセッサ（アプリケーションプロセッサ）上にロードされたオペレーティングシステムの一つである。モバイル機器において、これは大抵ＡＲＭプロセッサである。ＡＲＭアーキテクチャは、多くのモバイル機器の中で広く用いられているＡＲＭ有限会社によって開発された３２−ｂｉｔ ＲＩＳＣプロセッサアーキテクチャである。彼らの電力抑制機構のお陰で、ＡＲＭプロセッサは、低電力消費がデザインゴールであるモバイルエレクトロニクス市場の中で優勢である。ＡＲＭ有限会社は、彼ら自身のアプリケーションプロセッサを作る多くの会社に対し、コアＡＲＭアーキテクチャの使用を許可している。他のタイプのプロセッサも、アプリケーションプロセッサのような役目を果たし得る。
【００１９】
典型的に、歌またはビデオといったメディアファイルを再生するといったユーザーアプリケーションを実行する（走らせる）ために、アプリケーションプロセッサは、デジタル信号プロセッサ(ＤＳＰ)と共に働く。ＤＳＰは、専門化された機能や演算を行うように設計されている。典型的に、ＤＳＰは、処理のいくつかをアプリケーションプロセッサから解放する。そのようなものとして、ＤＳＰは、ファイルシステムを含むアプリケーションプロセッサに搭載されたオペレーションシステムを有していない。ＤＳＰ上でファイルシステムを走らせることは、多くの複雑さを導入し得る。したがって、ファイルシステムは、アプリケーションプロセッサに搭載される。メディアファイルはファイルシステムを用いてメモリ内に安全に記憶されるので、アプリケーションプロセッサは、メモリからビットストリーム(または暗号化されたビットストリーム)を検索する。メディアファイルは、オーディオファイル、ビデオファイル、またはオーディ及びビデオファイルの組み合わせであることがある。オーディオファイルは、歌、携帯電話の着信メロディ、またはレコーディングで記憶された自然または人工のいくつかの他の形態であることがある。ビデオファイルは、ビデオクリップ、絵、またはいくつかの絵であることがある。オーディオ及びビデオファイルの組み合わせは、ミュージックビデオ、映画、アニメ、またはメディアコンテンツのような他のものであることがある。
【００２０】
図１は、メモリからのファイルを検索し、ファイル内のデータをＤＳＰに渡すためのアプリケーションプロセッサを用いて、オーディオファイルの処理を行うための技術を実行するメディア機器例を示しているブロックダイアグラムである。例示的なメディア機器４は、メディア機器４上で走っているアプリケーションに依存してＤＳＰ／ＳＨＷ８にロードされるファームウェアイメージを決定するアプリケーションプロセッサ６を有している。ファームウェアは、典型的に、ＤＳＰ上で走るソフトウェアの名前である。ユーザーが、再生するためのメディアファイルを選択するアプリケーションにおいて、初めにメディアファイルは不揮発性メモリ１０に記憶され得る。不揮発性メモリは、電力を切った後も記憶されたデータが残る。不揮発性メモリの例は、メモリカード、オンボードのＮＡＮＤメモリ、及びフラッシュランダムアクセスメモリ（ＲＡＭ）である。
【００２１】
オンチップであろうとオフチップであろうとフラッシュＲＡＭ（例えば、ＮＡＮＤベースのリムーバルメディアフォーマット）は、今日の通信機器において一般的である。ＮＡＮＤベースのリムーバルメディアフォーマットのいくつかの例は、マルチメディアカード、セキュアデジタル、メモリスティック及びｘＤ−ピクチャカード、ＲＳ−ＭＭＣ、ｍｉｎｉＳＤ（登録商標）及びｍｉｃｒｏＳＤ（登録商標）、及びインテリジェントスティックである。ここ数年ずっと、オープンＮＡＮＤフラッシュインタフェース（ＯＮＦＩ：Open NAND Flash Interface）コンソーシアムが、ＮＡＮＤベースのリムーバルメディアフォーマットと通信するＮＡＮＤフラッシュメモリチップ及びデバイスのオープンスタンダードを作る活動し続けている。
【００２２】
ユーザーが、ＵＩディスプレイ（ユーザーインタフェースディスプレイ）１２を介してオーディオファイルを選択するとき、ＵＩドライバ（ユーザーインタフェースドライバ）１３によって駆動される。アプリケーションプロセッサ６は、不揮発性メモリ１０からバスブリッジ１４及びメモリコントローラ１６を介してオーディオファイルデータを検索し得る。不揮発性メモリ１０からのメディアファイルデータの検索は、“ビットストリームタスク（bitstream task）”と言及され得る。メディアファイルのフォーマットに依存するが、メディアファイルデータは、ヘッダまたは他のメタデータ、及びビットストリームを含んでいるコンテンツ部を含み得る。バスブリッジ１４は、異なる構成要素（例えばプロセッサ及びメモリ）の一部である異なるバス間のインタフェースとして役立ち得る。例えば、アプリケーションプロセッサは、ＡＭＢＡハイパフォーマンスバス（ＡＨＢ：AMBA High-performance Bus）を有し得る。ＡＭＢＡはアドバンスドマイクロプロセッサバスアーキテクチャ（advanced microprocessor bus architecture）の略語である。バスブリッジ１４は、マスターＡＨＢインタフェース、ＡＨＢスレイブインタフェース、またはメモリバスインタフェースとして役立ち得る。不揮発性メモリ１０から読み込んだデータは、次に、メモリコントローラ２０（及び他のバスブリッジ（図示せず））を介して他の（不揮発性メモリも外部であって良い）外部メモリ２２に書込まれ得る。外部メモリ２２の例は、ＳＤＲＡＭ（synchronous dynamic random access memory）であり得る。外部メモリ２２は、１つまたはそれ以上のアプリケーションプロセッサ及び１つまたはそれ以上のＤＳＰを含む集積回路２３の“外部”にある。上述で直接言及したが、不揮発性メモリは、集積回路２３の外部にあり得る。
【００２３】
メディアファイルを聞く及び／または見るために、ビットストリームは解凍される。ＤＳＰ／ＳＨＷ８によって実行される機能の一つは、ビットストリームを解凍することである。異なるタイプのアーキテクチャは、ＤＳＰ／ＳＨＷ８にビットストリームを書込むために用いられ得る。ビットストリームは、外部メモリ２２からのＤＭＥ’ｄ（Direct Memory Exchanged）であり得る。ＤＳＰ／ＳＨＷ８内にビットストリームを書込み得るアプリケーションデータムーバー（ＡＤＭ）があっても良い。これらの技術（ＤＭＥ及びＡＤＭ）はアプリケーションプロセッサ６を介して調整を要求する。
【００２４】
ＤＳＰ／ＳＨＷ８は一度ビットストリームを読み込むとそれを解凍し、ビットストリームがオーディオデータである場合、解凍はパルス符号変調（ＰＣＭ）バッファ２４に配置され、オーディオコーデック２６に読み出されるＰＣＭサンプルを生成する。ＰＣＭバッファ２４及び／またはオーディオコーデック２６はどちらもＤＳＰ／ＳＨＷ８内またはＤＳＰ／ＳＨＷ８の外側に配置され得る。デジタル／アナログ変換回路（ＤＡＣ）２８は、コーデック２６からのデジタルサンプルを、一つまたはそれ以上のスピーカ３０Ａ及び３０Ｂを駆動するためにスピーカドライブ回路２９が使用するアナログ電圧波形に変換する。ＰＣＭバッファ２４、オーディオコーデック２６、及びＤＡＣ２８のあらゆる組み合わせは、共に統合されて良く、集積コーデック３２として言及され得る。メディア機器４内に配置された全ての構成要素に電力を供給する電源管理集積回路（ＰＭＩＣ）３４があり得る。ビットストリームがビデオファイルデータである場合、ＤＳＰ／ＳＨＷ８はビデオコーデック４９により処理され、ピクセルをピクセルバッファ１４１（図２Ｂ参照）内に配置されるピクセルを生成するためにビットストリームを解凍する。ピクセルは、ディスプレイプロセッサ５０によってさらに処理され、ディスプレイに送られ得る。ビデオコーデック４９及び／またはピクセルバッファ１４１はＤＳＰ／ＳＨＷ８の内側または外側、またはディスプレイプロセッサ５０内に組込まれるいくつかの構成内に配置され得る。
【００２５】
予め言及したように、予め言及された計算機器のいくつかは“メディア機器”として考慮される。従って、ここの図で説明した例示的なメディア機器４は、デスクトップコンピュータ、ラップトップコンピュータ、ワークステーション、ワイヤレス通信機器、ワイヤレスモバイル機器、携帯情報端末ＰＤＡ、スマートフォン、ｉＰｏｄ、ＭＰ３プレイヤー、携帯ゲーム機（handheld gaming unit）または他のメディアプレイヤー、及び多種多様の他のコンシューマー機器を含み得る。
【００２６】
例示的な趣旨で、設計者の要求に従って、場合によってＤＳＰまたは専門ハードウェア（ＳＨＷ：specialized hardware）が使用されて良いことを例示するために、本明細書では“ＤＳＰ／ＳＨＷ”なる表記が使用される。
【００２７】
図２Ａは、アプリケーションプロセッサ６によって生成されるポインタ構造を用いることで、メモリからのオーディオファイルデータを検索するための異なるプロセッサ（アプリケーションプロセッサ以外のもの）を用いて、オーディオファイルの処理を行うための技術を実行するメディア機器５の例を示しているブロックダイアグラムである。図２Ａは、不揮発性メモリ１０からオーディオデータを検索し得る他のプロセッサとしてＤＳＰ／ＳＨＷを図示している。しかしながら、周辺のプロセッサといった異なるプロセッサは、本明細書に概念及び技術を配置及び説明したＤＳＰ／ＳＨＷ内で代用され得る。周辺のプロセッサは、アプリケーションプロセッサ６として、全てのオプション機能を有する必要がないプロセッサである。周辺のプロセッサまたはＤＳＰ／ＳＨＷのどちらかの他のプロセッサは、典型的にはるかに少ない電力を消費し、アプリケーションプロセッサ６に比べて機能が低くて良い専門プロセッサであり、この専門プロセッサは、例えばオーディオファイルデータの検索のような、専門のタスクのために用いられる。ＤＳＰ／ＳＨＷまたは周辺のプロセッサといった他のプロセッサを用いることで、メディア機器５は、ビットストリームタスクの間、低電力モードに切り替わることが可能となる。
【００２８】
ＤＳＰ／ＳＨＷ８上でファイルシステムを走らせることは複雑さを導入する。そのため、ファイルシステムはアプリケーションプロセッサ６にロードされる。アプリケーションプロセッサ６はロードされたファイルシステムを有しているので、オーディオファイルデータのヘッダ及びデータ情報を読むことが可能である。アプリケーションプロセッサ６は、次に、オーディオファイルがオーディオデータをどのようにメモリに記憶しているかのポインタ構造を生成し得る。ポインタ構造は、リストを作成することで生成される。リストは、オーディオファイルのアドレス、オフセット、及び長さを含んでいる。このオフセットは、オーディオファイル内にあり得るパディングデータから成り、ＭＰ３オーディオファイルの場合におけるＩＤ３メタデータのようなものである。リストはまた、ユーザーがオーディオファイル内において最後に聴いた所から早送りまたは巻き戻しをする際に、対応するオーディオファイルのアドレス、オフセット、長さをセットし得る。アプリケーションプロセッサ６は、次に、ページ長、コマンド言語等を含み、ＤＳＰ／ＳＨＷ８に限られた回数が送られる必要があるだけかもしれないドライバの詳細な仕様を作成し得る。例えば、アプリケーションプロセッサ６及びＤＳＰ／ＳＨＷ８間の起動または初期通信の間、ドライバの詳細な仕様は、ＤＳＰ／ＳＨＷ８に送られ得る、または直接、ＤＳＰ／ＳＨＷ８がアクセスできる共有バッファ４０といった共有メモリスペースに保持され得る。ポインタ構造(リストを含んでいる)を入手するＤＳＰ／ＳＨＷ８による方法は、同様の方法で行われ得る。すなわち、ポインタ構造は、アプリケーションプロセッサ６によってＤＳＰ／ＳＨＷ８が共有バッファ４０といった共有メモリスペースにポインタ構造を書込む、またはポインタ構造はアプリケーションプロセッサ６によって共有バッファ４０といった共有メモリスペースに書込まれ得るＤＳＰ／ＳＨＷ８に送られ得る。
【００２９】
共有バッファ４０は、ＤＳＰ／ＳＨＷ８内に局所的に配置され得る、または代替的に共有バッファ４０はＤＳＰ／ＳＨＷ８の外側に配置され得る。もしページ長が変わる場合、その時ＤＳＰ／ＳＨＷ８は、アップデートされたドライブの詳細な仕様が必要になる。しかしながら、もしページ長およびコマンド言語が変わらずにある場合、その時、ＤＳＰ／ＳＨＷ８はアップデートされたリストを要求するだけであるかもしれない。このように、ポインタ構造は状況に依存してリスト、ドライバの詳細な仕様、またはリスト及びドライバの詳細な仕様を含み得る。典型的に、アプリケーションプロセッサ６及びＤＳＰ／ＳＨＷ８は、互いに通信するための種々の“応答確認（handshake）”機構を有している。一度、共有バッファ４０内にポインタ構造が記憶されると、アプリケーションプロセッサ６は“破損（collapse）”、すなわち、アプリケーションプロセッサ６の電力をシャットダウンし得る。アプリケーションプロセッサ６が破損するとき、アプリケーションプロセッサ６は以前よりも少ない電力を消費する“スリープモード”に入る。この点において、ＤＳＰ／ＳＨＷ８は、共有バッファ４０から“ポインタロケーション”、すなわち、検索され、ビットストリームバッファ４４内に配置される不揮発性メモリ１０内のメモリロケーション毎のバイト数を読み得る。
【００３０】
共有バッファ４０のケースにおいて、ビットストリームバッファ４４は、ＤＳＰ／ＳＨＷ８内に局所的に、または代替的にＤＳＰ／ＳＨＷ８の外側に配置され得る。不揮発性メモリ１０内のデータが暗号化された場合、ＤＳＰ／ＳＨＷ８は、ビットストリーム４４内のデータを“クリプトエンジン（crypto engine）”（ＤＳＰ／ＳＨＷに対してローカル）によって復号化し得る、または“クリプトエンジンアクセラレータ（crypto engine accelerator）”４６に暗号化されたデータを送り得る。代替実施形態において、クリプトエンジンアクセラレータ４６が用いられる場合、図２Ａに示す例示的な集積回路４５とは他の分離された集積回路上に配置される。このアクセラレータは、ハードウェアの専門化された一部であってよく、しばしば、より早くデータを復号化（decrypt）し、（依然としてビットストリームである）このデータをビットストリームバッファの指定された領域に渡すことが出来る特定用途向け集積回路（ＡＳＩＣ）であり得る。ＤＳＰ／ＳＨＷ８は、その後、ビットストリームを解凍（デコーディングとしても知られている）し、以前のようにオーディオファイルを再生し得る。ＤＳＰ／ＳＨＷ８を検索する際、すなわち、不揮発性メモリ１０からの読み出し、及び解凍されたビットストリーム（ＰＣＭサンプル）がスピーカから再生される間に、小さな時間の遅れがある。時間の遅れは、１秒程度であり得るが、プロセッサ（アプリケーションプロセッサ及びＤＳＰ／ＳＨＷの両方）速度が上昇することで、将来において時間の遅れが減少するであろうと予想される。
【００３１】
図２Ａに図示するように、ＤＳＰ／ＳＨＷによる不揮発性メモリ１０への直接のアクセスを可能とするようにＭＰＵ（memory protection unit：メモリ保護ユニット）がプログラムされ得るため、ＤＳＰ／ＳＨＷ８は、バスブリッジ１４及びメモリコントローラ１６を介して不揮発性メモリ１０から直接データを検索することができる。他のメモリコントローラのＭＰＵは、明らかなので図示されていない。いくつかのアーキテクチャにおいて、ＤＳＰ／ＳＨＷ８は、メモリコントローラ１６（バスブリッジ１４を通るもの以外）または不揮発性メモリ１０（メモリコントローラ１６を通るもの以外）と直接結合し得る。バッテリーが急速に枯渇されないので、ＤＳＰ／ＳＨＷ８による直接的なメモリアクセスは、電力を抑制し、最終的にメディア機器５の再生時間を増加さる。
【００３２】
ポインタストラクチャの作成及び／またはメディアファイルの再生の間、無傷（integrity）のポインタストラクチャの損傷の防止するＤＳＰ／ＳＨＷ８及びアプリケーションプロセッサ６以外のメディア機器（メディア機器５、メディア機器７、メディア機器５２、メディア機器５３または他の同様のメディア機器）内の全ての要素に対して、不揮発性メモリ１０へのアクセスはブロックされ得る。アプリケーションプロセッサ６は、同時タスク（concurrent task）のためにいつでも高速アクセスをリコールし得る。これが生じる時、同時タスクが完了するまで、ＤＳＰ／ＳＨＷ８からビットストリームタスクを引き継ぎ得る。同時タスクが完了した後、アプリケーションプロセッサ６は、ＤＳＰ／ＳＨＷ８へビットストリームタスクの制御を戻し得る。
【００３３】
ＤＳＰ／ＳＨＷ８は、オープンまたはクローズドアーキテクチャを有し得る。ＤＳＰ／ＳＨＷアーキテクチャがオープンの場合、他の周辺装置またはスレッドは、オーディオファイルデータにアクセスし、オーディオファイルデータを破損し得る。従って、ＤＳＰ／ＳＨＷ８が不揮発性メモリ１０からビットストリームを検索する際、クローズドＤＳＰ／ＳＨＷアーキテクチャを用いることが望ましい。クローズドＤＳＰ／ＳＨＷアーキテクチャを用いることで、ＤＳＰ／ＳＨＷ８は“信用”され得る。従って、不揮発性メモリ１０から検索されたオーディオファイルデータは、オープンＤＳＰ／ＳＨＷアーキテクチャの場合と異なり、他のスレッドや周辺装置によってアクセスされ得ない。
【００３４】
図２Ｂは、メモリからのファイルを検索するためのアプリケーションプロセッサと異なるプロセッサを用いて、ビデオファイルの処理を行うための技術を実行する例示的なメディア機器７を示しているブロックダイアグラムである。実例のための趣旨、スピーカ、オーディオドライブ回路、ＡＤＣ、及び他の同様の構成要素は図示されていない。上述に記載された図２Ａの技術及び代替アーキテクチャは図２Ｂに直接適応し得る。ビットストリームバッファ４８は、ビデオファイルデータが圧縮され、ＤＳＰ／ＳＨＷ８がピクセルを生成するために解凍するビットストリームを含む。ピクセルは、ビデオコーデック４９の使用及びピクセルバッファ１４１内にピクセルを配置することで処理される。ピクセルは、ディスプレイプロセッサ５０によってさらに処理され、ディスプレイに送られ得る。ビデオコーデック４９及び／またはピクセルバッファ１４１はＤＳＰ／ＳＨＷ８の内側または外側、またはディスプレイプロセッサ５０内に統合された、いくつかの構成要素内に配置され得る。
【００３５】
代替実施形態において、図２Ａ及び図２Ｂに示した共通のアーキテクチャと、図２Ａ及び図２Ｂに示したアーキテクチャの違いとが図２Ｃに示されているメディア機器１３０を形成する。メディア機器１３０は図２Ａの、ビットストリームバッファ４８、ピクセルバッファ１４１及びビデオコーデック４９といった全てのブロックを含んでいる。ビデオコーデック４９及び／またはピクセルバッファ１４１はＤＳＰ／ＳＨＷ８の内側または外側、またはディスプレイプロセッサ５０内に統合された、いくつかの構成要素内に配置され得る。同様に、一つまたはそれ以上の集積オーディオコーデック３２の構成要素は、ＤＳＰ／ＳＨＷ８の内側または外側に配置され得る。メディア機器１３０において、ＤＳＰ／ＳＨＷ８は、ビデオファイルデータ及びオーディオファイルデータであるビットストリームを解凍し得る。同様の場合において、図２Ａに示す集積回路４５内に示した全ての構成要素、及び集積回路４７内に示した全ての構成要素は、一つの集積回路５１内に統合され得る。
【００３６】
アプリケーションプロセッサ６も、不揮発性メモリ１０に書き込み得る。ＤＳＰ／ＳＨＷ８が不揮発性メモリ１０からデータを検索した後のアプリケーションプロセッサによる不揮発性メモリへの書き込みのプロセスのフローダイアグラムが図３に示されている。書き込む前、アプリケーションプロセッサ６は、既に検索が始まっているメモリのブロックの検索を止めることをＤＳＰ／ＳＨＷ８に指示する。ブロックは、メモリの１ページ、またはポイント構造の生成の間、アプリケーションプロセッサ６によって指定された、いくつかの他の予め決められたサイズであり得る。ＤＳＰ／ＳＨＷ８がメモリのブロックの検索を完了すると、ＤＳＰ／ＳＨＷ８は、アプリケーションプロセッサ６がインデックスまたはインデックスのセットをリスト及びページ番号に送ることで応答する。ページ番号は、検索された最後のページ、または検索される次のページ、または他の便利なページ番号であり得る。ＤＳＰ／ＳＨＷ８はビットストリーム及び解凍されたビットストリームの再生を続けるオーディオファイルの解凍を続ける。
【００３７】
ＤＳＰ／ＳＨＷ８が不揮発性メモリ１０からのメディアデータの検索を終了すると、アプリケーションプロセッサ６は、次に、不揮発性メモリ１０へと書き込む。書き込みが完了すると、書き込みは、メディアファイルデータのシャッフルを引き起こす、すなわち、不揮発性メモリが断片化（fragmented）され得るので、アプリケーションプロセッサ６はリスト及び新しいポインタ構造を再作成する。次に、アプリケーションプロセッサ６は、ＤＳＰ／ＳＨＷ８に新しいポインタ構造を送る（または、上述したように、共有メモリ領域に直接新しいポインタ構造を書き込む）。ＤＳＰ／ＳＨＷ８は、ポインタ構造を用い、再作成されたリストに基づいて不揮発性メモリ１０から検索を始める。
【００３８】
ＤＳＰ／ＳＨＷ８が連続した“検索停止（stop retrieve）”に応答する最悪な場合の時間は、ＤＳＰ／ＳＨＷ８によって、最大のブロックサイズ読出しが不揮発性メモリ１０の検索の最小ビットレートで分割される場合である。オーディオファイルの例として、もし最大のブロックサイズが２．０４８キロバイトであり、最小ビットレートが５キロビット／秒（kbps）である場合、連続する“検索停止”コマンドについての最悪の場合の応答時間は、３．３秒程度である。典型的な連続する“検索停止”コマンドに対する典型的な応答時間は、２．０４８キロバイト／１２８ｋｂｐｓで１２８ｍｓ程度である。“検索停止”コマンドについての応答時間を改善するために、ＤＳＰ／ＳＨＷ８は、ビットストリームバッファ４４内の２ｋｂ周辺の空間を配分する必要がある。
【００３９】
時々、不揮発性メモリからの“検索（retrieving）”は、不揮発性メモリからの“読み出し（read）”として言及されることに留意すべきである。
【００４０】
ユーザーによって選択された早送り及び／または巻き戻しの間、先頭（早送り）へのジャンプまたは後ろ（巻き戻し）へのジャンプする際の“ステップサイズ”は、ブロックサイズよりも小さいことがある。ステップサイズがブロックサイズよりも小さいこの場合において、アプリケーションプロセッサ６は、ステップサイズに基づいて、リスト（オフセット及び長さを含む）、及び新ポインタ構造を再作成し得る。もし、他のリスト及び新ポインタ構造が作成されない場合、図１、４Ａ、４Ｂ、４Ｃのアーキテクチャまたは他のアーキテクチャが用いられ得る。
【００４１】
同様のフローダイアグラムは、異なるプロセッサが不揮発性メモリ１０からデータを検索する後の、アプリケーションプロセッサ６による不揮発性メモリ１０への書き込みプロセスを記載し得る。周辺プロセッサのような異なるプロセッサが、図２Ａ、２Ｂ、または２ＣにおけるＤＳＰ／ＳＨＷ８の代わりに、または図４Ａ，４Ｂ、４Ｃに示すように直接用いられ得る。
【００４２】
再生するためのＰＣＭサンプルが十分にない、またはディスプレイするためのピクセルが十分にない機会を最小化するために、アプリケーションプロセッサ６は、ＤＳＰ／ＳＨＷ８がビットストリームバッファ４４からの解凍するためのビットを使い切る前に、不揮発性メモリ１０への書き込みを終わらせる必要があり得る。オーディオファイルの例として、１オーディオフレームの連続書き込みの最悪の場合の時間は、ＭＰ３オーディオファイルの場合、１２ｍｓである。
【００４３】
図４Ａは、図２Ａの代替実施形態である。前もって言及したように、ＤＳＰ／ＳＨＷや周辺プロセッサのような他のプロセッサを用いることで、メディア機器５２に、ビットストリームタスクの間、低電力モードに切り替えさせる。すなわち、メディア機器５２は、バス５５（または他のバス通路）を介してオーディオファイルデータを検索するアプリケーションプロセッサ６を用いることから、周辺プロセッサ５４を用いることに切り替える。これは、共有バッファ５６のような共有メモリスペース内に記憶されたポインタ構造（以前に記載したように）を有することで達成され得る。図４Ａに示した周辺プロセッサ５４といった周辺プロセッサは、不揮発性メモリ１０からオーディオファイルデータを検索し得るとはいえ、ビットストリームを解凍するため、図４Ａに示すＤＳＰ／ＳＨＷ９といったＤＳＰ／ＳＨＷであることが望ましいことがある。これは、ＤＳＰ／ＳＨＷ９がビットストリームをデコードするように、周辺プロセッサ５４に対してビットストリームバッファ５８内のビットストリームを記憶させることで達成し得る。いくつかの実施形態において、プロセッサが別々の集積回路上にあってもよいが、周辺プロセッサ５４とＤＳＰ／ＳＨＷ９の両方は、アプリケーションプロセッサ６および例示された他の要素とともに、同一の集積回路５９内に集積されていることが望ましい。
【００４４】
図４Ｂは図２Ｂの代替実施形態である。この代替実施形態（図４Ａのビデオファイルデータバージョン）において、他のプロセッサは、ビットストリームタスクの間、メディア機器５３が低電力モードに切り替えることの許可する、ＤＳＰ／ＳＨＷまたは周辺プロセッサであり得うる。すなわち、メディア機器５３はバス５５（または他のバス通路）を介してビデオファイルデータを検索するアプリケーションプロセッサ６を用いることから周辺プロセッサ５４を用いることに切り替える。これは、共有バッファ５６のような共有メモリスペース内に記憶されたポインタ構造（以前に記載したように）を有することで達成され得る。図４Ｂに示した周辺プロセッサ５４といった周辺プロセッサは、不揮発性メモリ１０からビデオファイルデータを検索し得るとはいえ、ビットストリームを解凍するため、図４Ｂに示すＤＳＰ／ＳＨＷ９といったＤＳＰ／ＳＨＷであることが望ましいことがある。これは、ＤＳＰ／ＳＨＷ９がビットストリームをデコードするように、周辺プロセッサ５４に対応してビットストリームバッファ５８内のビットストリームを記憶させることで達成し得る。いくつかの実施形態において、プロセッサが別々の集積回路上に。
【００４５】
代替実施形態において、図４Ａ及び図４Ｂに示した共通のアーキテクチャと、図４Ａ及び図４Ｂに示したアーキテクチャの違いとが図２Ｃに示されているメディア機器１４０を形成する。メディア機器１４０はビットストリームバッファ４８、ピクセルバッファ１４１、及びビデオコーデック４９といった図４Ａの全てのブロックを含んでいる。ビデオコーデック４９及び／またはピクセルバッファ１４１は、ＤＳＰ／ＳＨＷ８の内側または外側、またはディスプレイプロセッサ５０内に統合された、いくつかの構成要素内に配置され得る。同様に、集積オーディオコーデック３２の１以上の構成要素はＤＳＰ／ＳＨＷ８の内側または外側に配置される。
【００４６】
メディア機器１４０において、ＤＳＰ／ＳＨＷ９はビデオファイルデータ及びオーディオファイルデータであるビットストリームを解凍し得る。いくつかの場合において、図４Ａの集積回路５９内に示した全ての構成要素及び集積回路６０内に示した全ての構成要素は、一つの集積回路６１内に統合され得る。メディア機器１４０において、ビットストリームバッファ４８は、オーディオまたはビデオファイルデータのビットストリームを扱うために２つまたはそれ以上のバッファに分割され得る。
【００４７】
図４Ａ、４Ｂ、または４Ｃに示すアーキテクチャは、ＤＳＰ／ＳＨＷ９が信用できない場合、すなわちＤＳＰ／ＳＨＷがオープンアーキテクチャを有する場合、望ましいかもしれない。周辺プロセッサ５４は、信頼され、例えば、他のスレッドまたは周辺装置の構成要素の不揮発性メモリ１０から検索されたオーディオファイルデータを破損することを防ぎ得る。
【００４８】
図２Ａ、２Ｂ、２Ｃ、４Ａ、４Ｂ、４Ｃに示したアーキテクチャ及びそれらの代替実施形態において、電力消費はメディア機器において減少され得る。メディア機器は、アプリケーションプロセッサといった第１のプロセッサを含む。第１のプロセッサは、第１のプロセッサが、メディアが不揮発性メモリ内にメディアデータを記憶する方法のポインタ構造を生成することを許可するため不揮発性メモリに直接的にまたは間接的（種々の通路を介して、例えば、バスブリッジ、周辺プロセッサ、ＤＳＰまたはＳＨＷ、メモリコントローラ、または他の同様の構成要件を介して）に結合され得る。ポインタ構造は、不揮発性メモリ内に記憶されたメディアデータの位置及びサイズ（すなわち、アドレス、オフセット、及び長さ）を含む。第１のプロセッサは、第１のプロセッサが記憶すること、すなわち、メモリ領域にポインタ構造を書き込むことを許可するために、直接的、または間接的（種々の通路を介して、例えば、バスブリッジ、周辺プロセッサ、ＤＳＰまたはＳＨＷ、メモリコントローラ、または他の同様の構成要件を介して）にメモリ領域に結合され得る。第１のプロセッサは、メモリ領域にポインタ構造を書き込んだ後、スリープモードに入り得る。第１のプロセッサがスリープモードに入らない場合、第１のプロセッサは、ノーマルモードにおいて動作させ続ける。ＤＳＰ／ＳＨＷまたは周辺プロセッサのような第２のプロセッサも、ポインタ構造に基づいて第２のプロセッサに不揮発性メモリからメディアデータのブロックを検索させることを許可するために直接的または間接的（種々の通路を介して、例えば、バスブリッジ、周辺プロセッサ、ＤＳＰまたはＳＨＷ、メモリコントローラ、または他の同様の構成要件を介して）にメモリ領域に結合され得る。メディアデータのブロックの検索は、不揮発性メモリから直接検索され得り、または、いくつかの場合において、検索されたデータが構文解析され得る。メディアデータはオーディオファイルデータ、ビデオファイルデータ、または両方であり得る。同時タスク（concurrent task）がある場合、第２のプロセッサが不揮発性メモリからメディアデータのブロックの検索を終了する後、第１のプロセッサは、不揮発性メモリに書き込み得る。そのような場合において、ポインタ構造は、同時タスクが終了した後に再作成される。早送りまたは巻き戻しの間、第１のプロセッサは、検索されたメディアデータのブロックよりも小さいステップサイズに基づいて、新ポインタ構造を再作成し得る。
【００４９】
図５は、ＰＭＩＣ６４を駆動するバッテリー６２を示している。ＰＭＩＣ６４は、異なるタイプの構成要素を駆動するための種々の電力モジュールを有し得る。例えば、ＭＳＭＣ１  ６５は、モデムといったコア構成要素、種々のバスブリッジ、及びＤＳＰ／ＳＨＷを駆動する。ＭＳＭＣ２  ６６は、アプリケーションプロセッサ６を駆動する。ＭＳＭＳＡ６７は、アナログコーデックを駆動し、ＭＳＭＥ６８は、種々のメモリを駆動する。これらのメモリのそれぞれの電力モジュールの消費電流において、消費されたトータルの電流は、バッテリーが切れるまでの時間に影響を与え、これゆえに、メディア機器５、メディア機器７、メディア機器１３０、メディア機器５２、メディア機器５３、メディア機器１４０またはこれらのメディア機器の他の代替実施形態で聴かれ得る再生の時間に影響を与える。
【００５０】
バッテリーは異なる定格を有している。図６Ａの図は、８００ｍＡ−Ｈｒ定格のバッテリーの指数減少カーブである。グラフに見られるように、消費電流が低い時、バッテリー寿命の量は多い（例えば、５ｍＡの場合、トータルのバッテリー寿命（再生の時間）は１６０時間程度である）。
【００５１】
図６Ｂは図１及び図２Ａ（または図４Ａ）に記載された技術によって用いられ得るバッテリー寿命（時間において）の量を示しているグラフ例である。例えば、図１に示すメディア機器４は、１５ｍＡの電流を消費し、５０時間程度の再生（または消費されたバッテリー寿命）時間、再生することができ得る。しかしながら、図２Ａのメディア機器５では、１０ｍＡの電流が消費され、従って、再生時間が８０時間であることができ得る。これゆえに、共有メモリバッファ４０内においてポインタ構造でＤＳＰ／ＳＨＷ８を用いることは、メディア機器５にとって少ない電力消費になり、それゆえに、オーディオファイルを聴くための再生時間が多くなり得る。同様の低電流消費は、図４Ａに示したメディア機器５２を用いて達成され得る。バッテリー技術を改善すると、５０時間及び８０時間の再生時間は上昇し得ることがわかり、バッテリーはより有能になり得る。グラフ例は、図２Ａ、２Ｂ、２Ｃ、４Ａ、４Ｂ、及び４Ｃ、またはこれらのアーキテクチャの代替実施形態のいくつかのアーキテクチャを用いて図示され、メディア機器はオーディオファイルの再生時間を長くする、またはビデオファイルの再生を長くすることができ得る。低電力モードの間、メディア機器は、アプリケーションプロセッサを用いることから、ＤＳＰ／ＳＨＷまたは周辺プロセッサのような他のプロセッサを用いることに切り替わる。
【００５２】
図７及び図８は、メモリからファイルを検索するための異なるプロセッサ（アプリケーションプロセッサ６以外の）を用いてメディアファイルを処理するための技術例を示すフローチャートである。図８は、図７のさらなる詳細を示している。まず、他のプロセッサ上でコードの初期化及び認証が行われ得る（７４）。これはアプリケーションプロセッサ６によるコード及び／またはテーブルのロードを含み（１０４）、もし必要であれば、アプリケーションプロセッサ６はコード、例えばファームウェアを認証し得る（１０６）。次に、ユーザーによる、メディアファイルを再生するインタラクションがある（７８）。これは、ユーザーがＵＩディスプレイ１２を見ること及びソフトウェアメニューをスクロールしてメディアファイルを検索することを含み得る（１０８）。メディアファイルが見つかった後、ユーザーは、タッチスクリーン、キーパッド、音声認識、または他のメディアファイルを再生するための方法によってボタンを押すことでメディアファイルを再生することを選択し得る（１１０）。ユーザーによるこのアクションは、アプリケーションプロセッサ６がポインタ構造を生成することを開始し得る（１１４）。共有メモリバッファにポインタ構造を書き込んだ（１１６）後に、次にアプリケーションプロセッサ６は電源を切断し得る（８２）。これは、バッテリーが電流を消費されることからを抑制し、図２Ａ，２Ｂ，２Ｃ，４Ａ，４Ｂ，４Ｃ，それぞれ、またはこれらのメディア機器の代替実施形態のメディア機器（５，６，１３０，５２，５３、及び１４０）の再生時間を増加させ得る。不揮発性メモリから検索することができる他のプロセッサを有する実施形態において、他のプロセッサは共有メモリバッファ内のポインタ構造を用いることで、ビットストリームバッファを満たす（８６）。
【００５３】
他のプロセッサはビットストリームバッファを随意的にモニタし得る。もし、ビットストリームバッファのエントリが十分であれば、他のプロセッサは、クリプトエンジンまたはクリプトエンジンアクセラレータにデータを送ることで、ビットストリームが暗号化されている場合、ビットストリームを復号化し得る。ビットストリームバッファが残り少ない場合（９０の分岐におけるＮＯ）、他のプロセッサは、ポインタ構造を用いることで、ビットストリームバッファをデータ（すなわち、ビットストリーム）で満たす。ビットストリームが復号化（または復号化されていない場合において）された後、ビットストリームはまだ圧縮されたままである。他のプロセッサはビットストリームをデコード（すなわち解凍）する。ビットストリームがオーディオファイルデータであると、ＰＣＭサンプルが生成され、ＰＣＭバッファ内に配置される。オーディオコーデックはＰＣＭバッファを読み出し、ＰＣＭサンプルは、スピーカの外に再生されるアナログ波形に切替させられる。ビットストリームがビデオファイルデータであると、ピクセルが生成され、ピクセルバッファ内に配置される。ディスプレイプロセッサはピクセルを処理し、ディスプレイされるためにピクセルを送り得る。図４Ａ，４Ｂ，または４Ｃにおいて、ＤＳＰ／ＳＨＷは望ましくはビットストリームをデコードし、たとえ代替実施形態でも、周辺プロセッサは、この機能を実行し得る。
【００５４】
本明細書に記載の技術の１つまたはそれ以上の態様は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせで実行され得る。モジュールまたは構成要素として記載したいくつかの特徴は、集積論理機器において共に、またはディスクリートしかし共通の論理機器として別々に実行され得る。ソフトウェア内で実行される場合、技術の１つまたはそれ以上の態様は、実行されたときに上述した１つまたはそれ以上の方法を行う命令を含むコンピュータ読み取り可能なメディアによって少なくともある程度認識され得る。コンピュータ読み取り可能なデータ記憶メディアは、パッケージング材料を含み得るコンピュータプログラム製品を形成し得る。コンピュータ読み取り可能なメディアは、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気的に消去及び書き込み可能な読み出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、磁気または光学データ記憶メディア等のランダムアクセスメモリ（ＲＡＭ）を含み得る。追加のまたは代替の技術は、命令またはデータ構造の形式でコードを運ぶまたは通信し、コンピュータによってアクセス、読み出し、及び／または実行されることが可能なコンピュータ読み取り可能な通信メディアによって少なくともある程度認識される。
【００５５】
命令は、１つまたはそれ以上のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または他の同等な集積またはディスクリート論理回路のような１つまたはそれ以上のプロセッサによって実行され得る。従って、本明細書で用いられている“プロセッサ”という用語は、前の構造、または、本明細書に記載の技術の実行にふさわしい他の構造のいくつかを言及し得る。さらに、いくつかの態様において、本明細書に記載の機能性は、本明細書の技術を行うように構成されたまたは適応された専用のソフトウェアモジュールまたはハードウェアモジュール内に提供され得る。
【００５６】
本明細書に記載の構成は、回路構成がＡＳＩＣ内に形成されるハードウェアにより管理されている回路として、または、不揮発性記憶部内に搭載されたファームウェアプログラム、または、マイクロプロセッサまたは他のデジタル信号処理装置のような論理素子のアレイによって命令実行可能になる機械読み取り可能なコードとして、コンピュータ読み取り可能なメディアから、または内に搭載されたソフトウェアプログラムによって、ある程度、または完全に実行され得る。コンピュータ読み取り可能なメディアは、半導体メモリ(ダイナミックまたはスタティックＲＡＭ（Random Access memory）、ＲＯＭ（Read Only Memory）、及び／またはフラッシュＲＡＭに限らず含み得る)、または強誘電体、磁気抵抗、オボニック、ポリメリック、または相変化メモリ、磁気または光学ディスクのようなディスクメディアまたはその他といったデータを記憶するためのコンピュータ読み取り可能なメディアのような、記憶素子のアレイになり得る。ソフトウェアという用語は、ソースコード、アセンブリ言語コード、機械コード、バイナリコード、ファームウェア、マクロコード、ミクロコード、論理素子のアレイ、実行できる命令の１以上のセット、またはシーケンス、及びそのような例の組み合わせを含んでいると理解されるべきである。
【００５７】
ハードウェアで実行する場合、本明細書の１つまたはそれ以上の態様は、集積回路、チップセット、ＡＳＩＣ、ＦＰＧＡ、論理または、本明細書に記載の１以上の技術を実行するように構成された、または適応されたそれらの種々の組み合わせのような回路に割り当てられ得る。回路は、集積回路またはチップセットにおいて、本明細書に記載したようなプロセッサ、及び１以上のハードウェア装置を含み得る。
【００５８】
当業者は回路が上述した機能のいくつか、または全てを実行し得ることを認識するであろうことを留意すべきである。全ての機能を実行する１回路があり得る、または、機能を実行する回路の複数のセクションがあり得る。多くのメディア機器で用いられている現在のモバイルプラットフォーム技術について、集積回路は、少なくとも１つのＤＳＰ、及び制御及び／またはＤＳＰまたは複数のＤＳＰと通信する少なくとも１つのアドバンスド縮小命令セットコンピュータ（ＲＩＳＣ）マシン（ＡＲＭ）プロセッサを含み得る。さらに、回路は、いくつかのセクションにおいて設計され、または実行され得る。そして、いくつかの場合において、セクションは本明細書に記載の異なる機能を行うために再利用され得る。
【００５９】
種々の態様、及び例が記載されている。しかしながら、変形例は後述の特許請求の範囲の範囲から逸脱しない本明細書の構成または技術によって形成されることができる。例えば、他の種類の機器も本明細書に記載の処理技術を実行することができる。これら及び他の例は、後述の特許請求の範囲の範囲内にある。本明細書で開示したそれぞれの方法は、論理素子（例えば、プロセッサ、マイクロプロセッサ、マイクロコントローラ、または他の有限状態機械）のアレイを含む機械によって読み取り可能、及び／または実行可能な命令の１以上のセットとして明確に具体化（例えば、１以上の上述にリストしたようなコンピュータ読み取り可能なメディアにおいて）され得る。このようにして、本開示は、上述で示した構成、またはアーキテクチャに限定されることを表さない。しかし、もっと正確に言えば、本開示は、最初の開示の一部を形作る提出書類として添付された特許請求の範囲内に含まれる本明細書のいくつかの方法で開示された原理及び新しい特徴と一致する広い範囲に一致する。
【００６０】
他の実施形態及び変形例はこれらを教える視点で、当業者はすぐに思い浮かぶであろう。従って、後述の特許請求の範囲は、上述の明細書及び関連する図面を結合すると考えたときに、全てのそのような実施形態及び変形例をカバーすることを目的としている。
１．不揮発性メモリ内に記憶されたメディアデータのポインタ構造を、第１のプロセッサによって生成することと、
第２のプロセッサによってアクセス可能なメモリ領域内に、前記第１のプロセッサによって前記ポインタ構造を書き込むことと、
前記第２のプロセッサによって前記メモリ領域から前記ポインタ構造を読み出すことと、
前記ポインタ構造に基づいて、前記第２のプロセッサによって前記不揮発性メモリから前記メディアデータのブロックを検索することと、
を具備するメディア機器の電力を減らす方法。
２．前記第１のプロセッサはアプリケーションプロセッサである１の方法。
３．前記第２のプロセッサは、デジタル信号プロセッサである１の方法。
４．前記第２のプロセッサは、周辺プロセッサである１の方法。
５．前記第１のプロセッサは、前記メモリ領域への前記ポインタ構造の書き込みの後、スリープモードに入る１の方法。
６．前記メディアデータは、オーディオファイルデータである１の方法。
７．前記メディアデータは、ビデオファイルデータである１の方法。
８．前記第２のプロセッサによって検索された前記メディアデータの前記ブロックの少なくとも一部は、ビットストリームバッファに書き込まれる１の方法。
９．前記第２のプロセッサは、ビットストリームバッファの残りを監視する８の方法。
１０．前記第２のプロセッサは、検索された前記メディアデータの前記少なくとも一部を復号化（decrypt）する８の方法。
１１．前記第２のプロセッサは、検索された前記メディアデータの前記少なくとも一部をクリプトエンジンアクセラレータ（crypto engine accelerator）に送る８の方法。
１２．同時タスク（concurrent task）がある場合、前記第１のプロセッサは、前記第２のプロセッサが前記不揮発性メモリから前記メディアデータの前記ブロックの検索を終了した後に、前記不揮発性メモリに書き込む１の方法。
１３．ポインタ構造は、前記同時のタスクが終了した後に再作成される１２の方法。
１４．前記第１のプロセッサによって前記ポインタ構造を生成することは、前記メディア機器のユーザーからオーディオファイルまたはビデオファイルの選択によって開始される１の方法。
１５．早送りまたは巻き戻しの間、前記第１のプロセッサは、前記検索されたメディアデータの前記ブロックよりも小さいステップサイズに基づいて、新ポインタ構造を再作成する１の方法。
１６．メディアデータを記憶した不揮発性メモリと、
前記不揮発性メモリに結合され、前記不揮発性メモリ内に記憶された前記メディアデータの位置及びサイズを含むポインタ構造を生成するように構成された第１のプロセッサと、
前記アプリケーションプロセッサによって書き込まれた前記ポインタ構造を記憶するためのメモリ領域と、
前記メモリ領域から前記ポインタ構造を読み出すように構成され、前記不揮発性メモリから前記メディアデータのブロックを検索するように構成された第２のプロセッサと、
を具備するメディア機器。
１７．前記第１のプロセッサは、アプリケーションプロセッサである１６のメディア機器。
１８．前記第２のプロセッサは、デジタル信号プロセッサである１６のメディア機器。
１９．前記第２のプロセッサは、周辺プロセッサである１６のメディア機器。
２０．前記第１のプロセッサは、前記ポインタ構造を前記メモリ領域へ書き込んだ後に、スリープモードに入る１６のメディア機器。
２１．前記メディアデータは、オーディオファイルデータである１６のメディア機器。
２２．前記メディアデータは、ビデオファイルデータである１６のメディア機器。
２３．前記第２のプロセッサによって検索された前記メディアデータの前記ブロックの少なくとも一部は、ビットストリームバッファに書き込まれる１６のメディア機器。
２４．同時タスク（concurrent task）がある場合、前記第１のプロセッサは、前記第２のプロセッサが前記不揮発性メモリから前記メディアデータの前記ブロックの検索を終了した後に、前記不揮発性メモリに書き込む１６のメディア機器。
２５．ポインタ構造は、前記同時のタスクが終了した後に再作成される２４のメディア機器。
２６．早送りまたは巻き戻しの間、前記アプリケーションプロセッサは、前記検索されたメディアデータの前記ブロックよりも小さいステップサイズに基づいて、新ポインタ構造を再作成する１６のメディア機器。
２７．不揮発性メモリ内に記憶されたメディアデータのポインタ構造を、アプリケーションプロセッサによって生成する手段と、
前記アプリケーションプロセッサによって、異なるプロセッサによってアクセス可能なメモリ領域内に前記ポインタ構造を書き込む手段と、
前記異なるプロセッサによって前記メモリ領域から前記ポインタ構造を読み出す手段と、
前記ポインタ構造に基づいて、前記異なるプロセッサによって前記不揮発性メモリから前記メディアデータを検索する手段と、
を具備するメディア機器。
２８．前記異なるプロセッサは、デジタル信号プロセッサまたは周辺プロセッサである２７のメディア機器。
２９．前記アプリケーションプロセッサは、前記ポインタ構造を前記メモリ領域へ書き込む手段が達成された後に、スリープモードに入る２７のメディア機器。
３０．前記メディアデータはオーディオファイルデータである２７のメディア機器。
３１．前記メディアデータはビデオファイルデータである２７のメディア機器。
３２．前記異なるプロセッサによって検索された前記メディアデータの前記ブロックの少なくとも一部は、ビットストリームバッファに書き込まれる２７のメディア機器。
３３．デジタル信号プロセッサは、検索された前記メディアデータの前記少なくとも一部を復号化（decrypt）する２７のメディア機器。
３４．前記異なるプロセッサは、検索された前記メディアデータの前記少なくとも一部をクリプトエンジンアクセラレータ（crypto engine accelerator）に送る２７のメディア機器。
３５．早送りまたは巻き戻しの間、前記アプリケーションプロセッサは、前記検索されたメディアデータの前記ブロックよりも小さいステップサイズに基づいて、新ポインタ構造を再作成する２７のメディア機器。
３６．不揮発性メモリ内に記憶されたメディアデータのポインタ構造を、第１のプロセッサによって生成するためのコードと、
前記第１のプロセッサによって第２のプロセッサによってアクセス可能なメモリ領域内に前記ポインタ構造を書き込むためのコードと、
前記第２のプロセッサによって前記メモリ領域から前記ポインタ構造を読み出すためのコードと、
前記ポインタ構造に基づいて、前記第２のプロセッサによって前記不揮発性メモリから前記メディアデータのブロックを検索するためのコードと、
を具備する１以上のプロセッサによって実行可能な命令のセットを具体化するコンピュータ読み取り可能なメディア。
３７．前記第１のプロセッサはアプリケーションプロセッサである３６のコンピュータ読み取り可能なメディア。
３８．前記第２のプロセッサは、デジタル信号プロセッサである３６のコンピュータ読み取り可能なメディア。
３９．前記第２のプロセッサは、周辺プロセッサである３６のコンピュータ読み取り可能なメディア。
４０．前記第１のプロセッサは、前記メモリ領域への前記ポインタ構造の書き込みの後、スリープモードに入る３６のコンピュータ読み取り可能なメディア。
４１．前記メディアデータは、オーディオファイルデータである３７のコンピュータ読み取り可能なメディア。
４２．前記メディアデータは、ビデオファイルデータである３７のコンピュータ読み取り可能なメディア。
【図１】
0005734835.tif 000002
【図２Ａ】
0005734835.tif 000003
【図２Ｂ】
0005734835.tif 000004
【図２Ｃ】
0005734835.tif 000005
【図３】
0005734835.tif 000006
【図４Ａ】
0005734835.tif 000007
【図４Ｂ】
0005734835.tif 000008
【図４Ｃ】
0005734835.tif 000009
【図５】
0005734835.tif 000010
【図６Ａ】
0005734835.tif 000011
【図６Ｂ】
0005734835.tif 000012
【図７】
0005734835.tif 000013
【図８】
0005734835.tif 000014