説明

不揮発性メモリを有するシステムの電力バジェットの動的な割り当て

【課題】不揮発性メモリを有するシステムに対し電力を動的に割り当てるシステム及び方法を提供する。
【解決手段】システムの電力バジェットマネージャーは、システムに得られる合計電力量が所定の電力レベル(例えば、低電力状態)より低いかどうか決定することができる。システムが低電力状態で動作する間に、電力バジェットマネージャーは、システムの種々のコンポーネント(例えば、プロセッサ及び不揮発性メモリ)間で電力を動的に割り当てることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不揮発性メモリを有するシステムの電力を、システムの1つ以上の電力状態に基づいて動的に割り当てることに係る。
【背景技術】
【0002】
NANDフラッシュメモリ及び他の形式の不揮発性メモリ(NVM)は、一般に、大量記憶に使用される。例えば、ポータブルメディアプレーヤ又はセルラー電話のような電子装置は、音楽、ビデオを記憶するためのローフラッシュメモリ又はフラッシュカード、並びに他のメディアをしばしば備えている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
電子装置は、バッテリのような内部電源により供給される電力を使用して動作し、バッテリのような内部電源は、それを補充するため時々充電を必要とする。その内部電源は、電子装置を充電装置に結合することにより(例えば、充電装置の端子を電子装置の端子に物理的に接続することにより)再充電することができる。しかしながら、充電装置を最初に電子装置に結合したときには、電子装置が充電装置から限定された量の電力しか引き出せない時間インターバルがある。この時間インターバル中には、電子装置のあるコンポーネント又はそのようなコンポーネントの組み合わせが機能できなくなるか、又はこの制限された電力バジェットのもとで動作するときに完全に機能する能力に障害が生じることがある。
【課題を解決するための手段】
【0004】
システムの電力を1つ以上の電力状態に基づいて動的に割り当てるためのシステム及び方法が開示される。このシステムは、プロセッサ、不揮発性メモリ(NVM)、及び電力バジェットマネージャーを含む電子装置(例えば、ポータブルメディアプレーヤ又はセルラー電話)を備えている。
【0005】
NVMは、例えば、フラッシュメモリ(例えば、NANDフラッシュメモリ)のような適当な形式のメモリである。NVMは、1つ以上のNVMダイと、それらダイのアクセス及び動作を可能にする関連回路とを含む。ある実施形態では、NVMは、それ自身のコントローラ及び他のコンポーネント、例えば、エラー修正コードモジュールも含む。
【0006】
電力バジェットマネージャー(例えば、装置プロセッサ又はNVMに実施される)は、得られる電力の量を監視し、そしてプロセッサ、NVM及びシステム内の他のコンポーネントの各々、或いはプロセッサ及び/又はNVM内のコンポーネントへ電力バジェットを動的に割り当てることができる。例えば、一実施形態では、電力バジェットマネージャーは、システムが低電力状態で動作していることを検出できる。低電力状態とは、システムが外部充電源から少量の電力(例えば、100mAの所定電力レベル)しか受け取らないときであって且つシステムの内部電源(例えば、バッテリ)では電子装置を付勢できない場合であるとここに定義する。このような低電力状態は、例えば、電子装置と外部充電装置との間のユニバーサルシリアルバス(USB)プロトコルハンドシェークシーケンス中に生じる。この低電力状態を検出するのに応答して、電力バジェットマネージャーは、システムの1つ以上のコンポーネントの各コンポーネントに各電力バジェットを動的に割り当てることができる。例えば、電力バジェットマネージャーは、プロセッサ及びNVMが低電力状態中に得られる電力を越えないように集合的に動作できるように、プロセッサ及びNVMの各々に電力バジェットを動的に割り当てることができる。
【0007】
各コンポーネント(例えば、プロセッサ又はNVM)の電力バジェットは、多数の技術を使用して実施することができる。例えば、一実施形態では、電力バジェットマネージャーは、プロセッサをストールして、プロセッサが動作するのを防止し、電力バジェットに従うように電力を保存することができる。プロセッサは、クロックゲーティングのような多数の技術により(例えば、プロセッサ回路の1つ以上の部分をディスエイブルすることにより)ストールすることができる。別の例として、プロセッサは、そのクロック速度を絞る(例えば、そのクロック速度を所定のレベルに下げる)ことによりストールすることができる。更に別の例として、電力バジェットマネージャーは、例えば、電力をNVMの1つ以上のコンポーネントへ細分化することによりNVMの電力消費を制御することができる。
【0008】
又、電力バジェットマネージャーは、任意の適当な技術を使用してプロセッサのストールを中断することもできる。例えば、電力バジェットマネージャーは、NVMコントローラにより発生された1つ以上のフラグを受け取るのに応答してプロセッサのストールを中断することができ、1つ以上のフラグは、1つ以上のメモリ動作が完了したときを指示することができる。別の例として、電力バジェットマネージャーは、NVMコントローラから中断要求を受け取るのに応答してプロセッサのストールを中断することができる。
【0009】
ある実施形態では、現在電力レベルが低電力状態の電力レベルを越えることを電力バジェットマネージャーが検出した場合に、電力バジェットマネージャーは、システムの1つ以上のコンポーネントの各コンポーネントに割り当てられる各電力バジェットを除去することができる。各電力バジェットが除去された後に、システムのコンポーネントは、必要とされる電流を外部充電装置から引き出すことができる。他の実施形態では、電力バジェットマネージャーは、システムの種々のコンポーネントの電力消費を監視し、そしてそれに応じて電力を割り当てることができる。
【0010】
本発明の前記及び他の態様並びに効果は、全体を通して同じ部分が同じ参照文字で示された添付図面を参照してなされた以下の詳細な説明から明らかとなろう。
【図面の簡単な説明】
【0011】
【図1】本発明の実施形態により構成された電子装置の回路図である。
【図2】本発明の実施形態により構成された電子装置の回路図である。
【図3】本発明の実施形態により形成された例示的電子システムの回路図である。
【図4】本発明の実施形態による電子装置のコンポーネントに対する電力バジェット割り当てを例示するグラフである。
【図5】本発明の実施形態による動的電力割り当てのためのプロセスを例示するフローチャートである。
【図6】本発明の実施形態によりシステムに電力バジェットを割り当てるためのプロセスを例示するフローチャートである。
【発明を実施するための形態】
【0012】
図1は、電子装置100の回路図である。ある実施形態では、電子装置100は、ポータブルメディアプレーヤ(例えば、カリフォルニア州クパチーノのアップル社により入手できるiPodTM)、セルラー電話(例えば、アップル社により入手できるiPhoneTM)、ポケットサイズのパーソナルコンピュータ、パーソナルデジタルアシスタンス(PDA)、デスクトップコンピュータ、ラップトップコンピュータ、及び他の適当な形式の電子装置であり、又はそれらを含む。
【0013】
電子装置100は、システム・オン・ア・チップ(SoC)110及び不揮発性メモリ(NVM)120を含むことができる。NVM120は、フローティングゲート又は電荷トラップ技術に基づくNANDフラッシュメモリ、NORフラッシュメモリ、消去可能なプログラマブルリードオンリメモリ(EPROM)、電気的に消去可能なプログラマブルリードオンリメモリ(EEPROM)、強誘電性RAM(FRAM)、磁気抵抗性RAM(MRAM)、他の既知の又は将来の形式の不揮発性メモリ技術、又はその組み合わせを含むことができる。
【0014】
ある実施形態では、NVM120は、内部チップ選択信号を使用して内部チャンネル(例えば、NVMコントローラ122とNVMダイ124との間の1つ以上のデータ経路)を経てNVMダイ124にアクセスし且つそれを管理するためにNVMコントローラ122を含むことができる。ある場合には、NVMコントローラ122は、NVMダイ124のうちのいずれかのダイを選択的にイネーブルすることができる。例えば、NVMダイ124のうちの特定のダイにアクセスするために装置プロセッサ112から要求(例えば、読み取り、プログラム又は消去要求)を受け取るのに応答して、NVMコントローラ122は、装置プロセッサ112により要求されたダイを選択的にイネーブルすることができる。
【0015】
NVMコントローラ122は、ウェアレベリング、不良ブロック管理、及び論理的/物理的変換動作のようなメモリ管理機能を遂行することができる。NVM120は、データエラー(例えば、フリップされたビット)を検出して修正するためのエラー修正コード(ECC)エンジン126を含むことができる。このECCエンジン126は、その機能を異なる位置で実施できることを指示するために破線のボックスで示されている。ある実施形態では、ECCエンジン126は、NVMコントローラ122におけるハードウェアコンポーネントとして、又はNVMコントローラ122により実行されるソフトウェアコンポーネントとして実施することができる。ある実施形態では、ECCエンジン126は、NVM120におけるスタンドアローンモジュールである。
【0016】
NVMコントローラ122により実施される1つ以上の機能は、SoC110によって実施できることが理解される。従って、ある実施形態では、NVMコントローラ122は、SoC110の一部分として含まれてもよい。このような実施形態では、NVM120は、ダイ124及び関連回路(例えば、電荷ポンプ、行列デコーダ、等)を含むことができるが、NVMコントローラは含まない。
【0017】
NVMダイ124は、最小の消去単位である「ブロック」へ編成できると共に、最小のプログラム可能で且つ読み取り可能な単位である「ページ」へ編成することもできる。各ダイ124は、1つ以上の平面(又はバンク)に配列できる複数のブロックを含むことができる。各平面又はダイからのブロックは、実質上、一緒にリンクされて、「スーパーブロック」を形成する。NVMダイ124の各メモリ位置(例えば、ページ又はブロック)は、物理的アドレス(例えば、物理的ページアドレス又は物理的ブロックアドレス)を使用してアドレスすることができる。
【0018】
図1及びそれ以降の図、並びにここに開示する種々の実施形態は、時々、フラッシュ技術の使用に関連して説明する。しかしながら、これは、限定を意図したものではなく、他の形式の不揮発性メモリも実施することができる。又、電子装置100は、例えば、図面が複雑になり過ぎるのを防ぐために図1には示されていない電源又はユーザ入力又は出力コンポーネントのような他のコンポーネントを含むことができる。
【0019】
SoC110は、装置プロセッサ112、メモリ114、及びNVMインターフェイス118を含むことができる。装置プロセッサ112は、SoC110の一般的な動作及び機能、並びにSoC110又は装置100の他のコンポーネントを制御することができる。例えば、ユーザ入力、及び/又はアプリケーション又はオペレーティングシステムのインストラクションに応答して、装置プロセッサ112は、NVM120からデータを得たり又はそこにデータを記憶したりするためにNVMインターフェイス118へ読み取り又は書き込みコマンドを発生することができる。即ち、NVMインターフェイス118は、NVM120と装置プロセッサ112との間の通信を可能にする。明瞭化のために、装置プロセッサ112が記憶又は検索のために要求するデータは、そのデータがユーザ又はユーザアプリケーションに直接関連していなくても、「ユーザデータ」と称される。むしろ、ユーザデータは、(例えば、アプリケーション又はオペレーティングシステムを経て)装置プロセッサ112により発生され又は得られたデジタル情報の適当なシーケンスである。
【0020】
装置プロセッサ112は、ハードウェア、ソフトウェア及びファームウェアの任意の組み合わせ、並びに電子装置100の機能を駆動するように働くコンポーネント、回路又はロジックを含む。例えば、装置プロセッサ112は、NVM120又はメモリ114に記憶されたソフトウェア/ファームウェアの制御の下で動作する1つ以上のプロセッサを含む。
【0021】
ある実施形態では、装置プロセッサ112は、電子装置100の1つ以上のコンポーネントへ電力バジェットを動的に割り当てることのできる電力バジェットマネージャー128を含むことができる。その1つ以上のコンポーネントは、例えば、装置プロセッサ112、NVM120、NVMインターフェイス118、及び電子装置100の他の適当なコンポーネントを含むことができる。ある実施形態では、電力バジェットは、電子装置100に得られる又はSoC110及びNVM120に得られる合計電力量に基づいて割り当てることができる。電力バジェットマネージャー128は、図1の装置プロセッサ112において実施されるものとして示されているが、当業者に明らかなように、電力バジェットマネージャー128は、それに加えて又はそれに代わってNVMコントローラ122において実施されてもよい。動的な電力割り当ては、図3から5を参照して以下に詳細に述べる。
【0022】
メモリ114は、適当な形式の揮発性又は不揮発性メモリ、例えば、ダイナミックランダムアクセスメモリ(DRAM)、同期ダイナミックランダムアクセスメモリ(SDRAM)、ダブルデータレート(DDR)RAM、キャッシュメモリ、リードオンリメモリ(ROM)、又はその組み合わせを含むことができる。メモリ114は、ユーザデータをNVM120へプログラミングするか又はそこから読み取るために一時的に記憶できるデータソースを含むことができる。ある実施形態では、メモリ14は、装置プロセッサ112の一部分として実施されるプロセッサのためのメインメモリとして働くことができる。
【0023】
NVMインターフェイス118は、装置プロセッサ112とNVM120との間のインターフェイス又はドライバとして働くように構成されたハードウェア、ソフトウェア及び/又はファームウェアの適当な組み合わせを含む。NVMインターフェイス118に含まれたソフトウェアモジュールについては、それに対応するプログラムコードがNVM120又はメモリ114に記憶される。
【0024】
NVMインターフェイス118は、装置プロセッサ112がNVM120にアクセスしそしてNVM120のメモリ位置(例えば、ページ、ブロック、スーパーブロック、集積回路)及びそこに記憶されたデータ(例えば、ユーザデータ)を管理できるようにする種々の機能を遂行することができる。例えば、NVMインターフェイス118は、装置プロセッサ112からの読み取り又は書き込みコマンドを解釈し、ウェアレベリングを遂行し、そしてNVM120のバスプロトコルに適合する読み取り及びプログラムインストラクションを発生することができる。
【0025】
NVMインターフェイス118及び装置プロセッサ112は、個別のモジュールとして示されているが、これは、本発明の実施形態の説明を簡単化するために過ぎない。これらのモジュールは、ハードウェアコンポーネント、ソフトウェアコンポーネント、又はその両方を共有することを理解されたい。例えば、装置プロセッサ112の一部分として実施されるプロセッサは、NVMインターフェイス118のためのソフトウェアベースのメモリドライバを実行する。従って、装置プロセッサ112及びNVMインターフェイス118の各部分を集合的に「制御回路」と称してもよい。
【0026】
図1は、NVM120がそれ自身のコントローラ(例えば、NVMコントローラ122)をもつ電子装置を示す。ある実施形態では、電子装置100は、NVM120と、NVMインターフェイス118の幾つかの部分又は全ての部分(例えば、以下に述べる変換レイヤ)とを含むフラッシュ又はSDカードのようなターゲット装置を含むことができる。これらの実施形態では、SoC110又は装置プロセッサ112は、ターゲット装置のためのホストコントローラとして働いてもよい。例えば、ホストコントローラとして、SoC110は、ターゲット装置へ読み取り又は書き込み要求を発生することができる。
【0027】
図2は、電子装置200の回路図で、1つ以上の実施形態による電子装置100(図1)のファームウェア、ソフトウェア及び/又はハードウェアコンポーネントの幾つかを詳細に示している。電子装置200は、図1に示す装置100に関連して上述した特徴及び機能のいずれかを有し、そしてその逆のことも言える。電子装置200は、ファイルシステム210、NVMドライバ212、NVMバスコントローラ216、及びNVM220を含むことができる。ある実施形態では、ファイルシステム210及びNVMドライバ212は、ソフトウェア又はファームウェアモジュールであり、そしてNVMバスコントローラ216及びNVM220は、ハードウェアモジュールである。従って、これらの実施形態では、NVMドライバ212は、NVMインターフェイス218のソフトウェア又はファームウェア態様を表し、そしてNVMバスコントローラ216は、NVMインターフェイス218のハードウェア態様を表す。
【0028】
ファイルシステム210は、適当な形式のファイルシステムを含み、そして電子装置200のオペレーティングシステムの一部分(例えば、図1の装置プロセッサ112の一部分)でよい。ある実施形態では、ファイルシステム210は、ページの論理的/物理的マッピングを与えるフラッシュファイルシステムを含む。ファイルシステム210は、以下に述べるNVMドライバ212の機能の幾つか又は全部を遂行し、それ故、ファイルシステム210及びNVMドライバ212は、個別のモジュールであってもよいし、なくてもよい。
【0029】
ファイルシステム210は、アプリケーション及び/又はオペレーティングシステムのためのファイル及びフォルダ構造を管理することができる。ファイルシステム210は、電子装置200で実行されるアプリケーション又はオペレーティングシステムの制御のもとで動作し、そして情報をNVM220から読み取るか又はそこに記憶することをアプリケーション又はオペレーティングシステムが要求するときにNVMドライバ212に書き込み及び読み取りコマンドを与えることができる。各読み取り又は書き込みコマンドと共に、ファイルシステム210は、ユーザデータをどこから読み取り又はどこへ書き込むかを指示する論理的アドレス、例えば、論理的ページアドレス、又はページオフセット付きの論理的ブロックアドレスを与えることができる。
【0030】
ファイルシステム210は、NVM220に直接適合しない読み取り及び書き込み要求をNVMドライバ212に与えることがある。例えば、論理的アドレスが、ハードドライブベースシステムの典型である慣習又はプロトコルを使用することがある。ハードドライブベースシステムは、フラッシュメモリとは異なり、ブロック消去を最初に遂行せずに、メモリ位置にオーバーライトすることができる。更に、ハードドライブは、装置の寿命を延ばすためのウェアレベリングも、フラッシュベース装置に特有の他の技術も必要としない。それ故、NVMインターフェイス218は、ファイルシステム要求を取り扱うためのメモリ特有、ベンダー特有又はその両方の機能を遂行すると共に、他の管理機能をNVM220に適した仕方で遂行することができる。
【0031】
NVMドライバ212は、変換レイヤ214を含むことができる。ある実施形態では、変換レイヤ214は、フラッシュ変換レイヤ(FTL)であるか、又はそれを含む。書き込み動作では、変換レイヤ214は、与えられた論理的アドレスを、NVM220の消去された空き物理的位置へマップすることができる。読み取り動作では、変換レイヤ214は、与えられた論理的アドレスを使用して、要求されたデータが記憶されている物理的アドレスを決定することができる。各NVMは、NVMのサイズ又はベンダーに基づいて異なるレイアウトを有するので、このマッピング動作は、メモリ及び/又はベンダー特有のものである。変換レイヤ214は、論理的/物理的アドレスマッピングに加えて他の適当な機能を遂行することができる。例えば、変換レイヤ214は、フラッシュ変換レイヤの典型である他の機能、例えば、不要データ収集及びウェアレベリングのいずれかを遂行することができる。
【0032】
NVMドライバ212は、NVMアクセス要求(例えば、プログラム、読み取り及び/又は消去要求)を完了させるためにNVMバスコントローラ216とインターフェイスする。バスコントローラ216は、NVM220へのハードウェアインターフェイスとして働き、そしてバスプロトコル、データレート、及び/又はNVM220の他の仕様を使用して、NVM220と通信することができる。
【0033】
NVMインターフェイス218は、ここでは時々「メタデータ」と称されるメモリ管理データに基づいてNVM220を管理することができる。メタデータは、NVMドライバ212により発生されてもよいし、又はNVMドライバ212の制御のもとで動作するモジュールにより発生されてもよい。例えば、メタデータは、論理的アドレスと物理的アドレスとの間のマッピングを管理するのに使用される情報、不良ブロック管理、ウェアレベリング、“ECC”データ、又はその組み合わせを含むことができる。メタデータは、ファイルシステム210により与えられるデータを、論理的アドレスのようなユーザデータと共に含んでもよい。従って、一般的に、「メタデータ」は、ユーザデータに関する情報、又は不揮発性メモリの動作及びメモリ位置を管理するために一般的に使用される情報を指す。
【0034】
NVMインターフェイス218は、NVM220にメタデータを記憶するように構成される。ある実施形態では、NVMインターフェイス218は、ユーザデータに関連したメタデータを、ユーザデータが記憶された同じメモリ位置(例えば、ページ)に記憶することができる。例えば、NVMインターフェイス218は、ユーザデータ、それに関連した論理的アドレス、及びユーザデータのためのECCデータを、NVM220の1つ以上のメモリ位置に記憶することができる。又、NVMインターフェイス218は、ユーザデータに関する他の形式のメタデータを同じメモリ位置に記憶することもできる。例えば、メタデータは、記憶されたデータが良好なデータであるかどうか指示するフラグを含む。
【0035】
NVMインターフェイス218は、NVM220の始動時に又はNVM220の動作中に、どんなデータがその特定位置に存在するか電子装置200で決定できるように、論理的アドレス及びそれに関連したユーザ情報それ自体を記憶する。特に、ファイルシステム210は、ユーザデータを、その物理的アドレスではなく、その論理的アドレスに基づいて参照するので、NVMインターフェイス218は、ユーザデータ及び論理的アドレスを一緒に記憶して、それらの関連性を維持する。例えば、NVMインターフェイス218が論理的セクタを物理的ページへと直接的にマップする実施形態では、NVMインターフェイス218は、論理的/物理的マッピング、及び情報それ自体を、NVMのページに記憶することができる。
【0036】
図3を参照すれば、ここに例示する電子システムの回路図が示されている。この電子システム300は、電子装置302、及び外部充電電源310を含むことができる。ある実施形態では、電子装置302は、図1の電子装置100及び/又は図2の電子装置200と同じであるか又は実質的に同様である。
【0037】
例えば、電子装置302は、ホストシステム又はプロセッサ304(例えば、図1のSoC110)、及びNVM306(例えば、図1のNVM120又は図2のNVM220)を含むことができる。ある場合には、電子装置302は、少なくとも所定レベルに充電されたときに、電子装置302に給電することのできるバッテリ308を含むことができる。しかしながら、電子装置302が、長期間、非充電であったときには、バッテリ308は、実質的に全ての電荷が最終的に尽きていることがある。そのような状態では、バッテリ308は、電子装置302及び1つ以上のそのコンポーネントに給電することができない。
【0038】
ある実施形態では、電子装置302は、1つ以上の電力接続部336を経て外部の充電装置310に電子装置302を結合することにより、再充電することができる。外部の充電装置310は、電子装置302へ電力を供給できる適当な電子充電装置又はシステムを含むことができる。例えば、外部の充電装置310は、ラップトップコンピュータ、電源、又はドッキングステーションを含むことができる。更に、電力接続部336は、例えば、ユニバーサルシリアルバス(USB)接続、USB2.0接続、シリアル接続、パラレル接続、ファイアワイヤ接続、他の適当なワイヤード又はワイヤレス電力接続、及び/又はその組み合わせを含むことができる。
【0039】
しかしながら、電子装置302が電力接続部336を経て外部の充電装置310に最初に結合されるときには、外部の充電装置310から引き出せる電流量が制限される。例えば、電子装置302がUSB接続を使用して外部の充電装置310に結合される場合には、電子装置302は、外部充電装置310から最大量の電力(例えば、500mA、1A又は2Aの最大電流)を引き出せるまでに、外部充電装置310とのハンドシェーク段階を完了させることが最初に必要となる。このハンドシェーク段階とは、電子装置302がどれほど多くの電流を充電装置310から引き出せるか決定するための電子装置302と外部充電装置310との間のネゴシエーションプロセスである。このハンドシェーク段階中には、限定された量の電力しか供給されないが、ハンドシェークが完了すると、「合意された」電力レベルを与えることができる。
【0040】
その結果、ハンドシェーク段階を完了する前に、電子装置302は、外部充電装置310から限定された量の電力(例えば、通常動作中の500mAの最大電流に対して100mAの最大電流)しか引き出すことができない。従って、限定された電力バジェットが与えられると、プロセッサ304は、選択的コンポーネント(1つ又は複数)を動作できるに充分な電力が与えられるよう保証するためにその種々のコンポーネント(例えば、NVM及びプロセッサ)間に電力を動的に割り当てることが必要になる。
【0041】
当業者に明らかなように、プロセッサ304及びNVM306に電力を割り当てるのに加えて、又はそれに代わって、電子装置302の他のコンポーネント(1つ又は複数)にも電力を動的に割り当てることができる。又、当業者に明らかなように、この説明は、USBプロトコルから生じる低電力状態に向けられるが、電子装置302は、低電力シナリオに応答して、その種々のコンポーネント間で電力を動的に割り当てることができる。従って、低電力状態とは、電子装置302がその通常の動作モード(例えば、音楽を再生したり、セルホンのコールを促進したりする)で動作できるに充分な電力を内部電源(例えば、バッテリ308)が電子装置302に供給できない状態である。同時に、外部の充電装置(例えば、外部充電装置310)も、少量の電力(例えば、100mAの所定電力レベル)しか電子装置302に供給できない。
【0042】
図4は、電子装置(例えば、図1の電子装置100、図2の電子装置200、又は図3の電子装置302)のコンポーネントに対する電力バジェット割り当て400を例示するグラフである。当業者に明らかなように、時間インターバルt0ないしt5は、一定の縮尺で描かれておらず、それ故、ある場合には、ある時間インターバルが、他の時間インターバルに比して、実際上、著しく長い又は短いことがある。
【0043】
時間t0において、電力バジェットマネージャー(例えば、図1の電力バジェットマネージャー128)は、メモリシステムが低電力状態で動作していることを決定できる。その結果、電力バジェットマネージャーは、電力バジェット402をプロセッサ(例えば、図1のSoC110又は図3のプロセッサ304)に割り当て、そして電力バジェット404をNVM(例えば、図1のNVM120、図2のNVM220又は図3のNVM306)に割り当てることができる。電力バジェット402及び404の組み合わせは、電力レベル420以下である。時間t0とt5との間では、電力レベル420は、ハンドシェーク段階中に与えられる電力レベル(例えば、100mA)であり、そして時間t5の後では、電力レベル422は、ハンドシェーク段階が完了した後に与えられる電力レベル(例えば、500mA、1A又は2A)である。更に、プロセッサは、最初に大きな電力(例えば、1つ以上の要求を発生するための付加的な電力)を使用する必要があるので、電力バジェット402は、電力バジェット404より大きい。
【0044】
次いで、時間t0と時間t1との間に、プロセッサは、NVMにアクセスする要求(例えば、読み取り、消去又はプログラム要求)を発生する。一実施形態において、プロセッサは、システムブートアップ用の1つ以上のプログラム(例えば、オペレーティングシステム)をNVMがロードするための要求を発生することができる。
【0045】
その要求が発生された後に、時間t1において、電力バジェットマネージャーは、電力バジェット406及び408をプロセッサ及びNVMに各々割り当てることができる。電力バジェット406及び408の組み合わせは、電力レベル420以下である。
【0046】
ある場合には、少量の電力を時間t1にプロセッサに割り当ててもよい。というのは、プロセッサは、要求を発生した後に他の著しい動作を遂行する必要がないからである。それ故、電力バジェット406は、電力バジェット402より低い。
【0047】
対照的に、NVMは、プロセッサから要求を受け取った後に、ほとんどのシステム動作(例えば、システムブートアップ用の1つ以上のプログラムをロードする)を遂行するので、NVMは、プロセッサに比して付加的な電力を必要とする。それ故、電力バジェット408は、電力バジェット406より高い。
【0048】
ある実施形態では、プロセッサが時間t1と時間t2との間に電力バジェット406を満足させるために、電力バジェットマネージャーは、プロセッサをストールすることができる。例えば、電力バジェットマネージャーは、プロセッサをクロックゲーティングすることにより(例えば、プロセッサ回路の1つ以上の部分をディスエイブルすることにより)プロセッサをストールすることができる。別の例として、電力バジェットマネージャーは、プロセッサのクロック速度を絞る(例えば、クロック速度を最小レベルに減少する)ことによりプロセッサをストールすることができる。
【0049】
次いで、時間t2に、電力バジェットマネージャーは、中断要求を受け取るのに応答して、プロセッサのストールを中断することができる。例えば、電力バジェットマネージャーは、電子システム(例えば、図3の電子システム300)の1つ以上のコンポーネントから中断要求を受け取る。ある実施形態では、電力バジェットマネージャーは、NVMから中断要求を受け取る。例えば、NVMコントローラ(例えば、図1のNVMコントローラ122)は、高い電力レベルで動作するようにプロセッサに命令する中断要求をプロセッサに与えることができる。別の例として、NVMコントローラは、1つ以上のフラグを発生することができ、その1つ以上のフラグは、1つ以上のメモリ動作が完了したときを指示することができる。
【0050】
プロセッサのストールを中断する要求が受け取られたことを電力バジェットマネージャーが決定した場合には、電力バジェットマネージャーは、電力バジェット402及び404を各々プロセッサ及びNVMに割り当てることができる。従って、ある実施形態では、時間t2と時間t3との間に割り当てられた電力バジェットは、時間t0と時間t1との間に割り当てられた電力バジェットと同じ又は同様である。
【0051】
時間t2には、プロセッサに多量の電力を割り当てることができる。というのは、プロセッサは、システム動作を遂行し続ける(例えば、1つ以上のシステムアプリケーションを実行する)ために付加的な電力を必要とするからである。それに対応して、プロセッサは、ストールが中断された後にほとんどのシステム動作を遂行するので、電力バジェット402は、電力バジェット404より高い。
【0052】
当業者であれば、電力バジェット割り当て400に示された電力バジェットは、単なる例示に過ぎず、システムの各コンポーネントに割り当てられる実際の電力バジェットは、1つ以上のファクタに依存することが明らかであろう。その1つ以上のファクタは、例えば、システムの現在状態、システムの1つ以上の将来状態、得られる全電力、プロセッサにより発生される要求の形式(例えば、読み取り、プログラム又は消去要求)、他の適当なファクタ、及び/又はその組み合わせを含むことができる。
【0053】
従って、例えば、時間t3と時間t4との間に、電力バジェットマネージャーは、得られる電力のほぼ全部をプロセッサに割り当てることができ(例えば、電力バジェット410)、これは、プロセッサが付加的な動作を遂行できるようにする。更に、時間t4と時間t5との間に、電力バジェットマネージャーは、得られる電力のほぼ全部をNVMに割り当てることができ(例えば、電力バジェット412)、これは、NVMが付加的な動作を遂行できるようにする。
【0054】
次いで、時間t5に、ハンドシェーク動作が完了し、電力バジェットマネージャーは、低電力状態で動作するようにもはや制限されない。この時点で、電力バジェットマネージャーは、新たな電力レベル422に基づいて電力を割り当てることができる。
【0055】
図5及び6を参照すれば、本発明の種々の実施形態による例示的プロセスのフローチャートが示されている。これらのプロセスは、システム(例えば、図1のシステム100)の1つ以上のコンポーネントにより実行することができる。例えば、電力バジェットマネージャー(例えば、図1の電力バジェットマネージャー128)は、これらプロセスの1つ以上のステップを遂行することができる。
【0056】
先ず、図5を参照すれば、動的な電力割り当てのためのプロセス500が示されている。このプロセス500は、ステップ502で始まり、電力バジェットマネージャーは、システム(例えば、図3の電子装置302)に対して得られる電力の量を監視する。
【0057】
ステップ504において、電力バジェットマネージャーは、システム(例えば、図3の電子装置302)に対して得られる合計電力量が所定の電力レベルより低いかどうか決定することができる。ステップ504において、システムに対して得られる合計電力量が所定の電力レベルより低くないと電力バジェットマネージャーが決定した場合には、プロセス500は、ステップ506において終了となる。
【0058】
そうではなく、ステップ504において、システムに対して得られる合計電力量が所定の電力レベルより低いと電力バジェットマネージャーが決定した場合には、プロセス500は、ステップ508に進む。例えば、電力バジェットマネージャーは、システムが低電力状態で動作していると検出することがある。低電力状態の間に、電子装置(例えば、図1の電子装置100、図2の電子装置200、及び/又は図3の電子装置302)のバッテリ(例えば、図3のバッテリ308)は、システムに給電することができない。又、同時に、電子装置は、外部充電装置(例えば、図3の外部充電装置310)から少量の電力(例えば、100mAの所定電力レベル)を受け取ることもできる。例えば、電力バジェットマネージャーは、電子装置がUSBプロトコルを経て外部充電装置と通信していること、及びUSBプロトコルのハンドシェーク段階がまだ完了していないことを検出することにより、低電力状態を検出することができる。
【0059】
次いで、ステップ508において、電力バジェットマネージャーは、システムの1つ以上のコンポーネントの各コンポーネントに各電力バジェットを動的に割り当てることができる。ある実施形態では、電力バジェットマネージャーは、得られる電力量に基づいて各電力バジェットを割り当てることができる。例えば、電力バジェットマネージャーは、プロセッサ(例えば、図1のSoC110又は図3のプロセッサ304)及びNVM(例えば、図1のNVM120、図2のNVM220又は図3のNVM306)の各々に電力バジェットを動的に割り当てて、プロセッサ及びNVMが所定の電力レベルを越えることなく集合的に動作できるようにする。換言すれば、電力バジェットマネージャーは、プロセッサ及びNVMの累積電力消費を監視して、その累積電力消費が所定の電力レベルを越えないよう保証することができる。
【0060】
他の実施形態では、電力バジェットマネージャーは、例えば、NVMの1つ以上のコンポーネント(例えば、図1の1つ以上のNVMダイ124、又は図1のNVMコントローラ122)に割り当てられた電力を細分化することにより、NVMの電力消費を制御することができる。ある場合には、電力バジェットマネージャーは、NVMの現在動作状態に基づいてNVMのコンポーネント間で電力を細分化することができる。従って、NVMのどのコンポーネントが多くの電力を必要とするかに基づいて、電力バジェットマネージャーは、それらのコンポーネントに高い電力バジェットを、そして残りのコンポーネントに低い電力バジェットを対応的に割り当てることができる。
【0061】
更に別の実施形態では、電力バジェットマネージャーは、システムの種々のコンポーネントの電力消費を監視し、それに応じて、電力を割り当てることができる。従って、システムの特定のコンポーネントが最も電力を消費し又は消費する必要があることを検出するのに応答して、電力バジェットマネージャーは、そのコンポーネントに大きな電力バジェットを対応的に割り当てることができる。
【0062】
システムの種々のコンポーネントに異なる電力バジェットを動的に割り当てることにより、電力バジェットマネージャーは、システムの性能を向上させることができる。例えば、NVMが現在使用されていない場合には、電力バジェットマネージャーは、高い電力バジェットをプロセッサに割り当てることができる。次いで、プロセッサは、付加的な動作を遂行することで、この高い電力バジェットの利点を取り入れることができる。この性能向上は、メモリコンポーネントに固定の電力スレッシュホールドを所定の期間割り当てるシステムでは達成できない。
【0063】
ステップ510へと続いて、電力バジェットマネージャーは、システムに得られる合計電力量が所定の電力レベルより高いかどうか決定することができる。ステップ510において、システムに得られる合計電力量が所定の電力レベルより高くないと電力バジェットマネージャーが決定した場合には、プロセス500は、ステップ508へ復帰する。ステップ508において、電力バジェットマネージャーは、システムのコンポーネントに電力バジェットを動的に割り当て続けることができる。
【0064】
そうではなく、ステップ510において、システムに得られる合計電力量が所定の電力レベルより高いと電力バジェットマネージャーが決定した場合には、プロセス500は、ステップ512へ進む。例えば、電力バジェットマネージャーは、システムが高電力状態で動作していることを検出する。高電力状態の間に、電子装置は、外部充電装置から多量の電力(例えば、500mA)を受け取ることができる。しかしながら、電子装置のバッテリは、いかなる電力も供給できず、又はシステムを付勢するに充分な電力を供給できないことがある。ある実施形態では、電力バジェットマネージャーは、外部充電装置と電子装置との間のUSBプロトコルのハンドシェーク段階が完了したことを検出することで、高電力状態を検出する。
【0065】
別の例として、電力バジェットマネージャーは、システムがフル電力状態で動作していることを検出する。フル電力状態の間には、電子装置は、外部充電装置及び/又はバッテリからフル電力を受け取ることができる。ある実施形態では、電力バジェットマネージャーは、電子装置のバッテリがフル充電されたことを検出することで、システムがフル電力状態で動作していると検出することができる。
【0066】
次いで、ステップ512において、電力バジェットマネージャーは、システムの1つ以上のコンポーネントの各々に割り当てられた各電力バジェットを除去することができる。各電力バジェットが除去された後に、システムのコンポーネントは、必要とされる電流を外部充電装置から引き出すことができる。プロセス500は、ステップ506で終了となる。
【0067】
図6を参照すれば、システム(例えば、図3の電子装置302)に電力バジェットを割り当てるためのプロセス600が示されている。ある実施形態では、プロセス600は、プロセス500(図5)のステップ508を詳細に表している。従って、システムは、低電力状態で動作し、この状態では、システムは、外部充電装置(例えば、図3の外部充電装置310)から電力を受け取り、且つ内部電源(例えば、図3のバッテリ308)は、それ自身でシステムを付勢することができない。ある実施形態では、受電する合計電力が所定の電力レベル(例えば、100mA)である。
【0068】
以下の説明は、低電力状態に応答してプロセッサ(例えば、図1のSoC110又は図3のプロセッサ304)をストールすることに関するが、当業者であれば、NVM(例えば、図1のNVM120、図2のNVM220、又は図3のNVM306)のプロセッサ、例えばNVMコントローラ(例えば、図1のNVMコントローラ122)にも、同様の解決策を適用することができる。従って、低電力状態が長時間続く場合には、プロセッサ及びNVMコントローラは、システムの性能を向上させるためにストールプロセスを交替することができる。
【0069】
プロセス600は、ステップ602で開始する。ステップ604において、電力バジェットマネージャー(例えば、図1の電力バジェットマネージャー128)は、第1の電力バジェット(例えば、図4の電力バジェット402)をプロセッサに割り当てることができる。
【0070】
次いで、ステップ606において、プロセッサは、NVM(例えば、図1のNVM120、図2のNVM220、又は図3のNVM306)にアクセスするための要求(例えば、読み取り、消去、又はプログラム要求)を発生する。例えば、プロセッサは、1つ以上のNVMダイ(例えば、図1のNVMダイ124)のメモリ位置に記憶されたデータにアクセスするための読み取り要求を発生することができる。別の例として、プロセッサは、1つ以上のNVMダイのメモリ位置へデータをプログラムするためのプログラム要求を発生することができる。ある実施形態では、低電力状態で動作する間に電力を保存するために、プロセッサ又はNVMコントローラ(例えば、図1のNVMコントローラ122)は、一度にNVMの1つのダイにしかアクセスしないように要求を制限することができる。他の実施形態では、入力/出力(I/O)信号がプロセッサとNVMコントローラとの間に転送される間に他のシステム動作を阻止することができる。
【0071】
ステップ608へと続いて、電力バジェットマネージャーは、プロセッサに第2の電力バジェット(例えば、図4の電力バジェット406)を割り当てることができ、ここで、第2の電力バジェットは、第1の電力バジェットより低い。要求を発生した後、プロセッサは、他の著しい動作を遂行する必要がないので、プロセッサには、少量の電力しか割り当てられない。
【0072】
ステップ610において、電力バジェットマネージャーは、第3の電力バジェット(例えば、図4の電力バジェット408)をNVMに割り当てることができ、ここで、第2及び第3の電力バジェットの組み合わせは、所定の電力レベル(例えば、図4の電力レベル420)以下である。ある場合には、NVMは、プロセッサから要求を受け取った後に、ほとんどのシステム動作を遂行するので、NVMは、プロセッサに比して付加的な電力を必要とする。従って、第3の電力バジェットは、第2の電力バジェットより高い。
【0073】
次いで、ステップ612において、電力バジェットマネージャーは、プロセッサが第2の電力バジェットを越えないようにプロセッサをストールして電力消費を制限することができる。例えば、プロセッサは、クロックゲーティングにより(例えば、プロセッサ回路の1つ以上の部分をディスエイブルすることにより)ストールすることができる。別の例として、プロセッサは、そのクロック速度を絞る(例えば、そのクロック速度を最小レベルへ下げる)ことによりストールすることができる。
【0074】
ステップ614へと続いて、電力バジェットマネージャーは、プロセッサのストールを中断する要求が受け取られたかどうか決定することができる。例えば、電力バジェットマネージャーは、電子システム(例えば、図3の電子システム300)の1つ以上のコンポーネントから中断要求を受け取る。例えば、電力バジェットマネージャー(及び/又はプロセッサ)は、電子装置(例えば、図1の電子装置100、図2の電子装置200、及び/又は図3の電子装置302)のコンポーネントから、或いは電子装置に結合された外部充電装置(例えば、図3の外部充電装置310)から中断要求を受け取る。
【0075】
ある実施形態では、電力バジェットマネージャーは、NVMから中断要求を受け取る。例えば、NVMコントローラは、高い電力レベルで動作するようにプロセッサに命令する中断要求をプロセッサに与えることができる。ある実施形態では、プロセッサとNVMコントローラとの間のI/O信号の転送を許すために中断要求が送信される。別の例として、NVMコントローラは、1つ以上のメモリ動作が完了したときを指示する1つ以上のフラグを発生することができる。
【0076】
ステップ614において、ストールを中断する要求が受け取られなかったと電力バジェットマネージャーが決定した場合には、プロセス600は、ステップ612へ復帰する。ステップ612において、電力バジェットマネージャーは、プロセッサのストールを続けることができる。
【0077】
そうではなくて、ステップ614において、ストールを中断する要求が受け取られたと電力バジェットマネージャーが決定した場合には、プロセス600は、ステップ616へ進む。
【0078】
ステップ616において、電力バジェットマネージャーは、第1の電力バジェットをプロセッサに割り当てることができる。ある実施形態では、システム動作(例えば、I/O信号をNVMコントローラへ又はそこから転送する)を遂行し続けるためにプロセッサが多量の電力を必要とするために、第1の電力バジェットが割り当てられる。
【0079】
次いで、ステップ618において、電力バジェットマネージャーは、第4の電力バジェット(例えば、図4の電力バジェット404)をNVMに割り当てることができ、ここで、第1及び第4の電力バジェットの組み合わせは、所定の電力レベル以下である。ある場合には、プロセッサは、ストールが中断された後にほとんどのシステム動作を遂行するので、NVMに比して付加的な電力を必要とする。従って、第1の電力バジェットは、第4の電力バジェットより高い。次いで、プロセスは、ステップ620で終了となる。
【0080】
図5及び6のプロセス500及び600は、各々、単なる例示に過ぎないことを理解されたい。本発明の範囲から逸脱せずに、いずれのステップを除去し、変更し又は結合してもよく、又、付加的なステップを追加してもよい。
【0081】
本発明の以上の実施形態は、説明上表現されたもので、これに限定されない。
【符号の説明】
【0082】
100:電子装置
110:システム・オン・ア・チップ(SoC)
112:装置プロセッサ
118:NVMインターフェイス
120:不揮発性メモリ(NVM)
122:NVMコントローラ
124:NVMダイ
128:電力バジェットマネージャー
200:電子装置
210:ファイルシステム
212:NVMドライバ
214:変換レイヤ
216:NVMバスコントローラ
220:NVM
302:電子装置
304:ホストシステム又はプロセッサ
306:NVM
308:バッテリ
310:外部充電装置
336:電力接続部
400:電力バジェット割り当て
402、404、406、408:電力バジェット
420、422:電力レベル

【特許請求の範囲】
【請求項1】
プロセッサ及び不揮発性メモリ(NVM)を備えたシステムの電力を動的に管理するための方法において、
前記システムを低電力状態で動作する段階であって、前記システムは、外部充電装置から電力を受け取り、その受け取られた電力は、前記システムと前記外部充電装置との間のハンドシェーク段階中に所定の電力レベルを有するものである段階と、
前記ハンドシェーク段階を遂行する段階と、
前記プロセッサ及びNVMが前記所定の電力レベルを越えずに集合的に動作するように前記プロセッサ及びNVMの各々に電力バジェットを動的に割り当てる段階と、
を備えた方法。
【請求項2】
前記システムのバッテリは、前記システムが通常のモードで動作できるに充分な電力を前記システムに独立して与えることができない、請求項1に記載の方法。
【請求項3】
電力バジェットを動的に割り当てる前記段階は、
前記プロセッサに第1の電力バジェットを割り当てる段階、
前記NVMにアクセスするための要求を前記プロセッサから発生する段階、
前記プロセッサに第2の電力バジェットを割り当てる段階であって、その第2の電力バジェットは、前記第1の電力バジェットより低いものである段階、及び
前記プロセッサが前記第2の電力バジェットを越えないように、前記プロセッサをストールして、前記プロセッサによる電力消費を制限する段階、
を更に含む請求項1に記載の方法。
【請求項4】
要求を発生する前記段階は、一度にNVMの利用可能な全てのダイのサブセットにアクセスするように前記要求を制限することを含み、そのサブセットは、そこに含まれるダイの数が、同時にアクセスできる全てのダイより少ない、請求項3に記載の方法。
【請求項5】
前記ストールする段階は、前記プロセッサをクロックゲーティングすることを更に含む、請求項3に記載の方法。
【請求項6】
前記ストールする段階は、前記プロセッサのクロック速度を絞ることを含む、請求項3に記載の方法。
【請求項7】
前記NVMに第3の電力バジェットを割り当てる段階を更に備え、前記第2及び第3の電力バジェットの組み合わせは、前記所定の電力レベル以下である、請求項3に記載の方法。
【請求項8】
前記第3の電力バジェットは、前記第2の電力バジェットより高い、請求項7に記載の方法。
【請求項9】
前記プロセッサのストールを中断する要求を受け取る段階、及び
前記プロセッサのストールを中断する要求を受け取るのに応答して、前記プロセッサに前記第1の電力バジェットを割り当てる段階、
を更に含む請求項7に記載の方法。
【請求項10】
前記中断する要求を受け取る段階は、少なくとも1つのメモリ動作が完了するときを指示するフラグを受け取ることを更に含む、請求項3に記載の方法。
【請求項11】
前記NVMに第4の電力バジェットを割り当てる段階を更に含み、前記第1及び第4の電力バジェットの組み合わせは、前記所定の電力レベル以下である、請求項9に記載の方法。
【請求項12】
前記第1の電力バジェットは、前記第4の電力バジェットより高い、請求項10に記載の方法。
【請求項13】
プロセッサと、
前記プロセッサと通信するように働く不揮発性メモリ(NVM)であって、NVMコントローラ及び複数のNVMダイを含み、NVMコントローラは、複数のNVMダイのいずれかを選択的にイネーブルするように働くNVMと、
前記プロセッサ及びNVMの累積電力消費が所定の電力レベルを越えないように前記プロセッサ及びNVMに各電力バジェットを動的に割り当てるように働く電力バジェットマネージャーと、
を備えたシステム。
【請求項14】
前記電力バジェットマネージャーは、前記プロセッサ及び前記NVMコントローラの少なくとも一方において実施される、請求項13に記載のシステム。
【請求項15】
前記NVMコントローラは、高い電力レベルで動作するよう前記プロセッサに命令する中断要求を前記プロセッサに与えるように働く、請求項13に記載のシステム。
【請求項16】
前記電力バジェットマネージャーは、
得られる電力量を監視し、
前記得られる電力量に基づいて前記システムの複数のコンポーネントの各コンポーネントに電力バジェットを割り当てる、
ように働く請求項13に記載のシステム。
【請求項17】
前記システムの複数のコンポーネントは、前記プロセッサ及びNVMの少なくとも1つを含む、請求項16に記載のシステム。
【請求項18】
前記電力バジェットマネージャーは、得られる電力量に関連した状態を検出するように働く、請求項16に記載のシステム。
【請求項19】
電子装置に電力バジェットを割り当てる方法において、
電子装置に得られる合計電力量が所定の電力レベルより低いことを決定する段階と、
前記電子装置の複数のコンポーネントの各コンポーネントに各電力バジェットを動的に割り当てる段階と、
を備えた方法。
【請求項20】
各電力バジェットを動的に割り当てる前記段階は、更に、不揮発性メモリに割り当てられた電力バジェットをその不揮発性メモリの1つ以上のコンポーネントへと細分化することを含む、請求項19に記載の方法。
【請求項21】
得られる合計電力量を決定する前記段階は、前記電子装置が外部充電装置から少量の電力を受け取り且つ前記電子装置のバッテリが前記電子装置を独立して付勢できない低電力状態を検出する段階を含む、請求項19に記載の方法。
【請求項22】
前記低電力状態を検出する段階は、
前記電子装置がユニバーサルシリアルバス(USB)プロトコルを経て前記外部充電装置と通信することを検出する段階、及び
前記USBプロトコルのハンドシェーク段階がまだ完了しないことを検出する段階、
を含む請求項20に記載の方法。
【請求項23】
前記システムに得られる合計電力量が前記所定の電力レベルより高いことを決定する段階、及び
前記システムの複数のコンポーネントの各コンポーネントに割り当てられた各電力バジェットを除去する段階、
を更に含む請求項19に記載の方法。
【請求項24】
前記得られる合計電力量を決定する段階は、前記外部充電装置と電子装置との間の前記USBのハンドシェーク段階が完了したことを検出する段階を含む、請求項23に記載の方法。
【請求項25】
前記複数のコンポーネントは、装置プロセッサ及び不揮発性NANDフラッシュメモリを含み、その装置プロセッサには第1の電力バジェットが割り当てられ、そして前記NANDフラッシュメモリには第2の電力バジェットが割り当てられる、請求項19に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−69100(P2012−69100A)
【公開日】平成24年4月5日(2012.4.5)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−176363(P2011−176363)
【出願日】平成23年7月26日(2011.7.26)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FRAM
【出願人】(503260918)アップル インコーポレイテッド (568)
【Fターム(参考)】