(57)【要約】  フラッシュメモリベースストレージデバイスのマルチホスト電力コントローラ(MHPC)が開示される。一態様では、MHPCは、複数の入力/出力(I/O)クライアントの各々から電力モード変更要求を受信する。MHPCは、電力モード変更要求から「票」または要求された電力モードを抽出し、記憶し、次いで、電力モード間でフラッシュメモリベースストレージデバイスを移行すべきかどうかを判定するために、記憶された票に投票ロジックを適用する。フラッシュメモリベースストレージデバイスが、MHPCによって判定された電力モードで現在動作していない場合に、MHPCは、判定された電力モードに移行するようフラッシュメモリベースストレージデバイスに電力モード変更コマンドを発行するように構成される。このようにして、MHPCは、複数のI/Oクライアントから直接電力モード変更要求を受信する一方でフラッシュメモリベースストレージデバイスの電力モードを制御することが可能である。
2017519294.tif 000002
【特許請求の範囲】
【請求項１】
複数の入力/出力(I/O)クライアントとフラッシュメモリベースストレージデバイスとに通信可能に結合された、マルチホストコントローラのマルチホスト電力コントローラ(MHPC)であって、
前記MHPCは、前記複数のI/Oクライアントの各I/Oクライアントに関する最後の要求された電力モードを示すように構成されたMHPC要求状態レジスタを含み、
前記MHPCは、
前記マルチホストコントローラの転送要求(TR)フィルタ回路を介して、前記複数のI/OクライアントのうちのI/Oクライアントから電力モード変更要求を受信し、
前記I/Oクライアントによって要求された電力モードを示す電力モード票を前記電力モード変更要求から抽出し、
前記MHPCの前記MHPC要求状態レジスタに前記電力モード票を記憶し、
前記フラッシュメモリベースストレージデバイスの電力モードが変更されるべきかどうかを判定するために、前記MHPC要求状態レジスタに投票ロジックを適用し、
前記電力モードが変更されるべきであるとの判定に応答して、前記電力モードを変更するよう前記MHPCから前記フラッシュメモリベースストレージデバイスに電力モード変更コマンドを発行する
ように構成された、MHPC。
【請求項２】
スモールコンピュータシステムインターフェース(SCSI)START STOP UNIT(SSU)コマンドおよび組込み型MultiMedia Card(eMMC)Sleep(CMD5)コマンドのうちの1つを受信することによって、前記電力モード変更要求を受信するように構成された、請求項1に記載のMHPC。
【請求項３】
eMMC規格に従って前記フラッシュメモリベースストレージデバイスに通信可能に結合されており、eMMC Sleep(CMD5)コマンドからSLEEP電力モードおよびACTIVE電力モードのうちの1つの1ビット指示を抽出することによって、前記電力モード票を前記電力モード変更要求から抽出するように構成された、請求項1に記載のMHPC。
【請求項４】
ユニバーサルフラッシュストレージ(UFS)規格に従って前記フラッシュメモリベースストレージデバイスに通信可能に結合されており、SCSI SSUコマンド内の電力状況(PC)フィールドの値を抽出することによって、前記電力モード票を前記電力モード変更要求から抽出するように構成され、前記PCフィールドの前記値は、アクティブ電力モードを表す1の値、スリープ電力モードを表す2の値、およびパワーダウン電力モードを表す3の値から選択される、請求項1に記載のMHPC。
【請求項５】
前記フラッシュメモリベースストレージデバイスの前記電力モードが変更されるべきかどうかを判定するために、前記MHPC要求状態レジスタに最高電力レベル要求ルールを適用することによって、前記MHPC要求状態レジスタに前記投票ロジックを適用するように構成された、請求項1に記載のMHPC。
【請求項６】
前記複数のI/Oクライアントの各I/Oクライアントに関して、前記I/Oクライアントが投票することを許可されているかどうかを示すように構成されたMHPC制御レジスタをさらに含み、
前記MHPCは、前記MHPC制御レジスタに基づく、前記I/Oクライアントが投票することを許可されているとの判定に応答して、前記I/Oクライアントに関する前記電力モード票を抽出するように構成された、請求項1に記載のMHPC。
【請求項７】
前記電力モードが変更されるべきであるとの判定と、前記電力モードを変更するよう前記フラッシュメモリベースストレージデバイスに前記電力モード変更コマンドを発行したこととに応答して、
前記フラッシュメモリベースストレージデバイスから応答メッセージを受信し、
前記応答メッセージが正常な電力モード変更を示すとの判定に応答して、前記正常な電力モード変更を示す前記MHPCからの応答メッセージを前記I/Oクライアントに送信し、
前記応答メッセージが不成功の電力モード変更を示すとの判定に応答して、前記I/Oクライアントへの誤り割込みを生成する
ようにさらに構成された、請求項1に記載のMHPC。
【請求項８】
前記電力モードが変更されるべきではないとの判定に応答して、正常な電力モード変更を示す前記MHPCからの応答メッセージを前記I/Oクライアントに送信するようにさらに構成された、請求項1に記載のMHPC。
【請求項９】
集積回路(IC)に組み込まれた、請求項1に記載のMHPC。
【請求項１０】
セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナー、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤからなる群から選択されるデバイスに組み込まれる、請求項1に記載のMHPC。
【請求項１１】
複数のホストのためのフラッシュメモリベースストレージデバイスの電力モードを制御するための方法であって、
マルチホスト電力コントローラ(MHPC)によってマルチホストコントローラの転送要求(TR)フィルタ回路を介して、複数の入力/出力(I/O)クライアントのうちのI/Oクライアントから電力モード変更要求を受信するステップと、
前記MHPCによって、前記I/Oクライアントによって要求された電力モードを示す電力モード票を前記電力モード変更要求から抽出するステップと、
前記MHPCによって、前記MHPCのMHPC要求状態レジスタに前記電力モード票を記憶するステップであって、前記MHPC要求状態レジスタは、前記複数のI/Oクライアントの各I/Oクライアントに関する最後の要求された電力モードを示す、ステップと、
前記MHPCによって、前記フラッシュメモリベースストレージデバイスの電力モードが変更されるべきかどうかを判定するために、前記MHPC要求状態レジスタに投票ロジックを適用するステップと、
前記電力モードが変更されるべきであるとの判定に応答して、前記電力モードを変更するよう前記MHPCから前記フラッシュメモリベースストレージデバイスに電力モード変更コマンドを発行するステップと
を含む方法。
【請求項１２】
前記電力モード変更要求を受信するステップは、スモールコンピュータシステムインターフェース(SCSI)START STOP UNIT(SSU)コマンドおよび組込み型MultiMedia Card(eMMC)Sleep(CMD5)コマンドのうちの1つを含む、請求項11に記載の方法。
【請求項１３】
前記フラッシュメモリベースストレージデバイスは、組込み型MultiMedia Card(eMMC)デバイスを含み、
前記電力モード票を前記電力モード変更要求から抽出するステップは、eMMC Sleep(CMD5)コマンドからSLEEP電力モードおよびACTIVE電力モードのうちの1つの1ビット指示を抽出するステップを含む、請求項11に記載の方法。
【請求項１４】
前記フラッシュメモリベースストレージデバイスは、ユニバーサルフラッシュストレージ(UFS)デバイスを含み、
前記電力モード票を前記電力モード変更要求から抽出するステップは、SCSI SSUコマンド内の電力状況(PC)フィールドの値を抽出するステップを含み、前記PCフィールドの前記値は、アクティブ電力モードを表す1の値、スリープ電力モードを表す2の値、およびパワーダウン電力モードを表す3の値から選択される、請求項11に記載の方法。
【請求項１５】
前記MHPC要求状態レジスタに前記投票ロジックを適用するステップは、前記フラッシュメモリベースストレージデバイスの前記電力モードが変更されるべきかどうかを判定するために、前記MHPC要求状態レジスタに最高電力レベル要求ルールを適用するステップを含む、請求項11に記載の方法。
【請求項１６】
前記I/Oクライアントに関する前記電力モード票を抽出するステップは、MHPC制御レジスタに基づく、前記I/Oクライアントが投票することを許可されているとの判定に応答したものである、請求項11に記載の方法。
【請求項１７】
前記電力モードが変更されるべきであるとの判定と、前記電力モードを変更するよう前記フラッシュメモリベースストレージデバイスに前記電力モード変更コマンドを発行したこととに応答して、
前記フラッシュメモリベースストレージデバイスから応答メッセージを受信するステップと、
前記応答メッセージが正常な電力モード変更を示すとの判定に応答して、前記正常な電力モード変更を示す前記MHPCからの応答メッセージを前記I/Oクライアントに送信するステップと、
前記応答メッセージが不成功の電力モード変更を示すとの判定に応答して、前記I/Oクライアントへの誤り割込みを生成するステップと
をさらに含む、請求項11に記載の方法。
【請求項１８】
前記電力モードが変更されるべきではないとの判定に応答して、正常な電力モード変更を示す前記MHPCからの応答メッセージを前記I/Oクライアントに送信するステップをさらに含む、請求項11に記載の方法。
【請求項１９】
マルチホストコントローラのマルチホスト電力コントローラ(MHPC)であって、
複数の入力/出力(I/O)クライアントのうちのI/Oクライアントから電力モード変更要求を受信するための手段と、
前記I/Oクライアントによって要求された電力モードを示す電力モード票を前記電力モード変更要求から抽出するための手段と、
前記MHPCのMHPC要求状態レジスタに前記電力モード票を記憶するための手段であって、前記MHPC要求状態レジスタは、前記複数のI/Oクライアントの各I/Oクライアントに関する最後の要求された電力モードを示す、手段と、
フラッシュメモリベースストレージデバイスの電力モードが変更されるべきかどうかを判定するために、前記MHPC要求状態レジスタに投票ロジックを適用するための手段と、
前記電力モードが変更されるべきであるとの判定に応答して、前記電力モードを変更するよう前記MHPCから前記フラッシュメモリベースストレージデバイスに電力モード変更コマンドを発行するための手段と
を含むMHPC。
【請求項２０】
前記電力モード変更要求を受信するための前記手段は、スモールコンピュータシステムインターフェース(SCSI)START STOP UNIT(SSU)コマンドおよび組込み型MultiMedia Card(eMMC)Sleep(CMD5)コマンドのうちの1つを受信するための手段を含む、請求項19に記載のMHPC。
【請求項２１】
前記フラッシュメモリベースストレージデバイスは、組込み型MultiMedia Card(eMMC)デバイスを含み、
前記電力モード票を前記電力モード変更要求から抽出するための前記手段は、eMMC Sleep(CMD5)コマンドからSLEEP電力モードおよびACTIVE電力モードのうちの1つの1ビット指示を抽出するための手段を含む、請求項19に記載のMHPC。
【請求項２２】
前記フラッシュメモリベースストレージデバイスは、ユニバーサルフラッシュストレージ(UFS)デバイスを含み、
前記電力モード票を前記電力モード変更要求から抽出するための前記手段は、SCSI SSUコマンド内の電力状況(PC)フィールドの値を抽出するための手段を含み、前記PCフィールドの前記値は、アクティブ電力モードを表す1の値、スリープ電力モードを表す2の値、およびパワーダウン電力モードを表す3の値から選択される、請求項19に記載のMHPC。
【請求項２３】
前記MHPC要求状態レジスタに前記投票ロジックを適用するための前記手段は、前記フラッシュメモリベースストレージデバイスの前記電力モードが変更されるべきかどうかを判定するために、前記MHPC要求状態レジスタに最高電力レベル要求ルールを適用するための手段を含む、請求項19に記載のMHPC。
【請求項２４】
前記I/Oクライアントに関する前記電力モード票を抽出するための前記手段は、MHPC制御レジスタに基づいて、前記I/Oクライアントが投票することを許可されていると判定するための手段を含む、請求項19に記載のMHPC。
【請求項２５】
前記電力モードが変更されるべきであるとの判定と、前記電力モードを変更するよう前記フラッシュメモリベースストレージデバイスに前記電力モード変更コマンドを発行したこととに応答して、前記フラッシュメモリベースストレージデバイスから応答メッセージを受信するための手段と、
前記応答メッセージが正常な電力モード変更を示すとの判定に応答して、前記正常な電力モード変更を示す前記MHPCからの応答メッセージを前記I/Oクライアントに送信するための手段と、
前記応答メッセージが不成功の電力モード変更を示すとの判定に応答して、前記I/Oクライアントへの誤り割込みを生成するための手段と
をさらに含む、請求項19に記載のMHPC。
【請求項２６】
前記電力モードが変更されるべきではないとの判定に応答して、正常な電力モード変更を示す前記MHPCからの応答メッセージを前記I/Oクライアントに送信するための手段をさらに含む、請求項19に記載のMHPC。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権主張
本出願は、その内容の全体が参照により本明細書に組み込まれる、2014年6月3日に出願された「MULTI-HOST POWER CONTROLLER OF A UNIVERSAL FLASH STORAGE (UFS) MEMORY DEVICE」と題する米国仮特許出願第62/007,119号の優先権を主張する。
【０００２】
本出願はまた、その内容の全体が参照により本明細書に組み込まれる、2015年6月2日に出願された「A MULTI-HOST POWER CONTROLLER (MHPC) OF A FLASH-MEMORY-BASED STORAGE DEVICE」と題する米国特許出願第14/728,296号の優先権を主張する。
【０００３】
本開示の技術は、一般に、モバイルコンピューティングデバイスにおけるフラッシュメモリベースストレージに関する。
【背景技術】
【０００４】
フラッシュメモリは、データを電子的に書き込み、消去することが可能な不揮発性データ記憶媒体である。フラッシュメモリは現在、メモリカード、ソリッドステートドライブ、およびユニバーサルシリアルバス(USB)フラッシュドライブを含む様々なフラッシュメモリベースストレージデバイスにおいて使用されている。フラッシュメモリベースストレージデバイスは、従来のハードディスクよりも高い耐久性および衝撃抵抗を実現する一方で、ダイナミックランダムアクセスメモリ(RAM)に匹敵する高速の読取りおよび書込み時間をもたらすことができる。
【０００５】
フラッシュメモリベースストレージデバイスの普及を促進するために、いくつかの規格が開発されており、または現在開発中である。1つのそのような規格は、スマートフォンおよびタブレットコンピュータなどのモバイルコンピューティングデバイスにおけるフラッシュメモリベースストレージのために電子デバイス技術合同協議会(JEDEC)によって開発されたユニバーサルフラッシュストレージ(UFS)である。UFSは、コマンドキューイング機能により複数のコマンドをサポートし、そのようにしてマルチスレッドプログラミングパラダイムを可能にする、スモールコンピュータシステムインターフェース(SCSI)アーキテクチャモデルおよびコマンドプロトコルを採用する。JEDECによって開発された別の規格は、組込み型MultiMediaCard(eMMC:Embedded MultiMediaCard)規格であり、eMMC規格は、単純化されたアプリケーションインターフェース設計、小型パッケージサイズ、および低電力消費をもたらす。eMMCフラッシュメモリベースストレージデバイスは現在、モバイルデバイスにおける主たるストレージ形態のうちの1つである。
【０００６】
UFSおよびeMMCなどの従来のフラッシュメモリベースストレージデバイス規格は現在、単一の入力/出力(I/O)クライアントによる管理および使用のために設計されている。だが、多くの現代のコンピューティングデバイスは、仮想化環境を使用して同時に複数のI/Oクライアント(たとえば、ホストまたは他のプロセッササブシステム)をサポートすることが可能である。そのような仮想化環境では、複数のI/Oクライアントはそれぞれ、単一のフラッシュメモリベースストレージデバイスとの間で、それがフラッシュメモリベースストレージデバイスの唯一のホストであるかのように対話する必要があり得る。同様に、フラッシュメモリベースストレージデバイスは、実際にはそれが複数のI/Oクライアントと通信しているときに、それが単一のI/Oクライアントのみと通信しているかのように動作する必要があり得る。
【０００７】
特に、フラッシュメモリベースストレージ規格は、複数ホスト環境に及んでおり、フラッシュメモリベースストレージデバイスは、複数のI/Oクライアントをサポートする一方で効果的な電力制御を維持することが可能でなければならない。単一のホストと対話する従来のフラッシュメモリベースストレージデバイスでは、単一のホストのみがフラッシュメモリベースストレージデバイスの電力状態を制御するという点で、電力制御は比較的単純である。だが、複数ホスト環境における効果的な電力制御を達成するためには、フラッシュメモリベースストレージデバイスは、単一のホストではなく複数のホストから要求を受信したことに応答して、電力モード間で移行する必要があり得る。
【発明の概要】
【課題を解決するための手段】
【０００８】
発明を実施するための形態で開示する態様は、フラッシュメモリベースストレージデバイスのマルチホスト電力コントローラ(MHPC)を含む。関連する方法およびシステムも開示する。一態様では、非限定的な例として、ユニバーサルフラッシュストレージ(UFS)デバイスまたは組込み型MultiMediaCard(eMMC)デバイスなど、フラッシュメモリベースストレージデバイスの電力モードを制御するためのマルチホスト電力コントローラ(MHPC)が提供される。MHPCは、複数の入力/出力(I/O)クライアントの各々から、非限定的な例として、スモールコンピュータシステムインターフェース(SCSI)START STOP UNIT(SSU)コマンドまたはeMMC Sleep(CMD5)コマンドなどの電力モード変更要求を受信する。MHPCは、電力モード変更要求から「票」または要求された電力モードを抽出し、記憶し、次いで、電力モード間でフラッシュメモリベースストレージデバイスを移行すべきかどうかを判定するために、記憶された票に投票ロジックを適用する。フラッシュメモリベースストレージデバイスが、MHPCによって判定された電力モードで現在動作していない場合に、MHPCは、判定された電力モードに移行するようフラッシュメモリベースストレージデバイスに電力モード変更コマンドを発行するように構成される。いくつかの態様では、マルチホストコントローラは、そのような電力モードによって引き起こされたフラッシュメモリベースストレージデバイスからの応答を追跡し、対応するI/Oクライアントに応答を送るように構成される。さらに、いくつかの態様は、マルチホストコントローラが、電力モード変更要求がフラッシュメモリベースストレージデバイスの電力モード移行をもたらさない各I/Oクライアントへの応答を生成し、送るように構成されることを実現し得る。このようにして、マルチホストコントローラは、複数のI/Oクライアントから直接電力モード変更要求を受信する一方でフラッシュメモリベースストレージデバイスの電力を制御することが可能である。
【０００９】
別の態様では、マルチホストコントローラのMHPCが提供される。MHPCは、複数のI/Oクライアントとフラッシュメモリベースストレージデバイスとに通信可能に結合される。MHPCは、複数のI/Oクライアントの各I/Oクライアントに関する最後の要求された電力モードを示すように構成されるMHPC要求状態レジスタを含む。MHPCは、マルチホストコントローラの転送要求(TR)フィルタ回路を介して、複数のI/OクライアントのうちのI/Oクライアントから電力モード変更要求を受信するように構成される。MHPCはさらに、I/Oクライアントによって要求された電力モードを示す電力モード票を電力モード変更要求から抽出するように構成される。MHPCはまた、MHPCのMHPC要求状態レジスタに電力モード票を記憶するように構成される。MHPCはまた、フラッシュメモリベースストレージデバイスの電力モードが変更されるべきかどうかを判定するために、MHPC要求状態レジスタに投票ロジックを適用するように構成される。MHPCはさらに、電力モードが変更されるべきであるとの判定に応答して、電力モードを変更するようMHPCからフラッシュメモリベースストレージデバイスに電力モード変更コマンドを発行するように構成される。
【００１０】
別の態様では、複数のホストのためのフラッシュメモリベースストレージデバイスの電力モードを制御するための方法が提供される。本方法は、MHPCによってマルチホストコントローラのTRフィルタ回路を介して、複数のI/OクライアントのうちのI/Oクライアントから電力モード変更要求を受信するステップを含む。本方法はさらに、MHPCによって、I/Oクライアントによって要求された電力モードを示す電力モード票を電力モード変更要求から抽出するステップを含む。本方法はまた、MHPCによって、MHPCのMHPC要求状態レジスタに電力モード票を記憶するステップを含み、MHPC要求状態レジスタは、複数のI/Oクライアントの各I/Oクライアントに関する最後の要求された電力モードを示す。本方法はまた、MHPCによって、フラッシュメモリベースストレージデバイスの電力モードが変更されるべきかどうかを判定するために、MHPC要求状態レジスタに投票ロジックを適用するステップを含む。本方法はさらに、電力モードが変更されるべきであるとの判定に応答して、電力モードを変更するようMHPCからフラッシュメモリベースストレージデバイスに電力モード変更コマンドを発行するステップを含む。
【００１１】
別の態様では、マルチホストコントローラのMHPCが提供される。MHPCは、複数のI/OクライアントのうちのI/Oクライアントから電力モード変更要求を受信するための手段を含む。MHPCはさらに、I/Oクライアントによって要求された電力モードを示す電力モード票を電力モード変更要求から抽出するための手段を含む。MHPCはまた、MHPCのMHPC要求状態レジスタに電力モード票を記憶するための手段を含み、MHPC要求状態レジスタは、複数のI/Oクライアントの各I/Oクライアントに関する最後の要求された電力モードを示す。MHPCはまた、フラッシュメモリベースストレージデバイスの電力モードが変更されるべきかどうかを判定するために、MHPC要求状態レジスタに投票ロジックを適用するための手段を含む。MHPCはさらに、電力モードが変更されるべきであるとの判定に応答して、電力モードを変更するようMHPCからフラッシュメモリベースストレージデバイスに電力モード変更コマンドを発行するための手段を含む。
【図面の簡単な説明】
【００１２】
【図１】例示的なフラッシュメモリベースストレージデバイスおよび複数のホストとマルチホストコントローラとを用いる例示的なシステムオンチップ(SoC)のブロック図である。
【図２】マルチホスト電力コントローラ(MHPC)を用いる例示的なマルチホストコントローラのブロック図である。
【図３】図2のMHPCの例示的な構成要素を示すブロック図である。
【図４Ａ】電力モード変更要求を受信し、フラッシュメモリベースストレージデバイスの電力モードを制御するために投票ロジックを適用し、要求側入力/出力(I/O)クライアントへの応答を生成するための図2および図3のMHPCの動作を示すブロック図である。
【図４Ｂ】電力モード変更要求を受信し、フラッシュメモリベースストレージデバイスの電力モードを制御するために投票ロジックを適用し、要求側入力/出力(I/O)クライアントへの応答を生成するための図2および図3のMHPCの動作を示すブロック図である。
【図４Ｃ】電力モード変更要求を受信し、フラッシュメモリベースストレージデバイスの電力モードを制御するために投票ロジックを適用し、要求側入力/出力(I/O)クライアントへの応答を生成するための図2および図3のMHPCの動作を示すブロック図である。
【図４Ｄ】電力モード変更要求を受信し、フラッシュメモリベースストレージデバイスの電力モードを制御するために投票ロジックを適用し、要求側入力/出力(I/O)クライアントへの応答を生成するための図2および図3のMHPCの動作を示すブロック図である。
【図４Ｅ】電力モード変更要求を受信し、フラッシュメモリベースストレージデバイスの電力モードを制御するために投票ロジックを適用し、要求側入力/出力(I/O)クライアントへの応答を生成するための図2および図3のMHPCの動作を示すブロック図である。
【図５Ａ】フラッシュメモリベースストレージデバイスの電力モードを制御するための図2および図3のMHPCの例示的な動作を示すフローチャートである。
【図５Ｂ】フラッシュメモリベースストレージデバイスの電力モードを制御するための図2および図3のMHPCの例示的な動作を示すフローチャートである。
【図６】マルチホストコントローラ内に図2および図3のMHPCを用いるSoCを含み得る例示的なコンピューティングデバイスのブロック図である。
【発明を実施するための形態】
【００１３】
ここで図面を参照しながら、本開示のいくつかの例示的な態様について説明する。「例示的」という言葉は、本明細書では「例、事例、または例示として役立つ」ことを意味するように使用される。「例示的」として本明細書で説明するいずれの実施形態も、必ずしも他の態様よりも好ましい、または有利であると解釈されるべきではない。
【００１４】
発明を実施するための形態で開示する態様は、フラッシュメモリベースストレージデバイスのマルチホスト電力コントローラ(MHPC)を含む。関連する方法およびシステムも開示する。一態様では、非限定的な例として、ユニバーサルフラッシュストレージ(UFS)デバイスまたは組込み型MultiMediaCard(eMMC)デバイスなど、フラッシュメモリベースストレージデバイスの電力モードを制御するためのマルチホスト電力コントローラ(MHPC)が提供される。MHPCは、複数の入力/出力(I/O)クライアントの各々から、非限定的な例として、スモールコンピュータシステムインターフェース(SCSI)START STOP UNIT(SSU)コマンドまたはeMMC Sleep(CMD5)コマンドなどの電力モード変更要求を受信する。MHPCは、電力モード変更要求から「票」または要求された電力モードを抽出し、記憶し、次いで、電力モード間でフラッシュメモリベースストレージデバイスを移行すべきかどうかを判定するために、記憶された票に投票ロジックを適用する。フラッシュメモリベースストレージデバイスが、MHPCによって判定された電力モードで現在動作していない場合に、MHPCは、判定された電力モードに移行するようフラッシュメモリベースストレージデバイスに電力モード変更コマンドを発行するように構成される。いくつかの態様では、マルチホストコントローラは、そのような電力モードによって引き起こされたフラッシュメモリベースストレージデバイスからの応答を追跡し、対応するI/Oクライアントに応答を送るように構成される。さらに、いくつかの態様は、マルチホストコントローラが、電力モード変更要求がフラッシュメモリベースストレージデバイスの電力モード移行をもたらさない各I/Oクライアントへの応答を生成し、送るように構成されることを実現し得る。このようにして、マルチホストコントローラは、複数のI/Oクライアントから直接電力モード変更要求を受信する一方でフラッシュメモリベースストレージデバイスの電力を制御することが可能である。
【００１５】
この点について、図1は、マルチホストコントローラ102を含む例示的なシステムオンチップ(SoC)100のブロック図である。図1の例では、マルチホストコントローラ102は、複数のI/Oクライアント104(0)〜104(N)が単一のフラッシュメモリベースストレージデバイス106にアクセスすることを可能にするために提供される。いくつかの態様では、非限定的な例として、フラッシュメモリベースストレージデバイス106は、ユニバーサルフラッシュストレージ(UFS)デバイスまたは組込み型MultiMediaCard(eMMC)デバイスを含み得る。特に、この態様では、フラッシュメモリベースストレージデバイス106は、モバイルデバイス内のSoC100に隣接して組み込まれているが、他の態様は、取外し可能なメモリデバイスとしてフラッシュメモリベースストレージデバイス106を用いるときに同様の機能を達成することができる。
【００１６】
SoC100はまた、仮想マシンマネージャ(VMM)108を含み、VMM108は、I/Oクライアント104(0)〜104(N)のための仮想化機能および管理を行う。VMM108は、SoC100のプロセッサ(図示せず)によって実行され、SoC100のシステムメモリまたは必要もしくは要望に応じて他のメモリ位置に存在するソフトウェアモジュールであり得る。I/Oクライアント104(0)〜104(N)の各々は、ホストソフトウェアエンティティ(図1のI/Oクライアント104(0)およびI/Oクライアント104(1)など)を含むことができ、ホストソフトウェアエンティティは、SoC100のプロセッサ上および/またはSoC100のプロセッササブシステム(図示せず)上で実行される。マルチホストコントローラ102は、I/Oクライアント104(0)〜104(N)とフラッシュメモリベースストレージデバイス106との間の仲介役となり得る。このようにしてマルチホストコントローラ102は、I/Oクライアント104(0)〜104(N)がそれぞれフラッシュメモリベースストレージデバイス106との間で、それがフラッシュメモリベースストレージデバイス106と通信している唯一のI/Oクライアント104(0)〜104(N)であるかのように対話するように、I/Oクライアント104(0)〜104(N)とフラッシュメモリベースストレージデバイス106との間の対話を制御することができる。同様に、マルチホストコントローラ102は、フラッシュメモリベースストレージデバイス106が、実際にはそれが複数のI/Oクライアント104(0)〜104(N)と通信しているときに、それが単一のI/Oクライアント104(0)〜104(N)のみと通信しているかのように動作することを可能にするように構成され得る。
【００１７】
いくつかの態様による図1のマルチホストコントローラ102の例示的な構成要素をより良く示すために、図2が提供される。マルチホストコントローラ102は、使用されているフラッシュメモリベースストレージデバイス規格(たとえば、非限定的な例としてUFSまたはeMMC)のニーズに従って、図2に示す要素よりも多いまたは少ない要素を含み得ることを理解されたい。図2に見られるように、マルチホストコントローラ102はベースレジスタインターフェース(BRI)200を含み、図1のVMM108はBRI200を介してマルチホストコントローラ102と通信することができる。マルチホストコントローラ102はまた、クライアントレジスタインターフェース(CRI)202(0)〜202(N)を含む。CRI202(0)〜202(N)の各々は、マルチホストコントローラ102に転送要求(TR)(図示せず)を送信するための図1のI/Oクライアント104(0)〜104(N)のうちの対応するもののためのインターフェースを表す。本明細書で開示するいくつかの態様によれば、TRは、SCSI SSUコマンドもしくはeMMC Sleep(CMD5)コマンドおよび/または他の要求などの電力モード変更要求を含むことができる。CRI202(0)〜202(N)は、照会または無動作(NOP)命令など、他の非TR要求を送信するために使用されてもよい。
【００１８】
図2に見られるように、CRI202(0)〜202(N)は、それぞれ矢印206、208および210によって示されるように、マルチホストコントローラ102のTRフェッチ回路(TR FETCH CIRC)204に通信可能に結合される。いくつかの態様では、TRフェッチ回路204は、UFSトランスポートプロトコル(UTP)転送要求記述子(UTRD)(図示せず)またはeMMCタスク記述子(TD)などのトランスポートプロトコル記述子をシステムメモリからフェッチし、トランスポートプロトコル記述子を復号して、UTPコマンド記述子(UCD)(図示せず)などのコマンド記述子の位置を特定することを担当する。次いでTRフェッチ回路204は、矢印214によって示されるように、システムメモリ212からコマンド記述子のTRセクション(図示せず)をフェッチすることができる。
【００１９】
従来のホストコントローラでは、その場合にTRフェッチ回路204は、TRからパラメータ(たとえば、UFS規格に基づく態様では、トランザクションコード(TC)およびSCSIオペコード(OPC)、またはeMMC規格に基づく態様ではコマンドインデックスおよびコマンド引数)を抽出する。次いでTRフェッチ回路204は、TR全体を処理のためにトランスポートプロトコルエンジン216(たとえば、UTPエンジンまたはeMMCトランスポートプロトコルエンジン)に転送する。ただし、マルチクライアント環境では、TRの追加の検査および処理が必要とされ得る。たとえば、異なるタイプのTRのためのカスタム処理を行うこと、またはTRをトラップするか、もしくは終わらせることが望ましいことがある。したがって、マルチホストコントローラ102は、コマンドトラッピング機能を提供するように構成される。したがって、マルチホストコントローラ102は、TR検査および処理のためのTRフィルタ回路218と、コマンドトラッピングのためのTRトラップ220と、I/Oクライアント104(0)〜104(N)への応答の送信を容易にするための応答生成回路222とを含む。TRフィルタ回路218、TRトラップ220および応答生成回路222の動作は、以下でさらに詳細に説明する。
【００２０】
引き続き図2を参照すると、TRフェッチ回路204によってフェッチされたあらゆるTRの検査および処理が、マルチホストコントローラ102のTRフィルタ回路218によって実行される。TRフィルタ回路218は、TRの内容に基づいてTRがどのように処理されるべきかを判定する。
【００２１】
TRの内容が、TRが読取りまたは書込みのコマンドに対応することを示す場合、TRは、矢印226によって示されるように、TRフィルタ回路218によってアクセス制御回路224に転送され得る。アクセス制御回路224は、論理ユニット(図示せず)への読取りまたは書込みのアクセスルールのハードウェア実施(hardware enforcement)を行う。TRがアクセス制御回路224によって検証された場合、TRは、矢印228によって示されるように、トランスポートプロトコルエンジン216に渡される。アクセス制御回路224によって否定されたTRは、矢印230によって示されるように、ソフトウェア処理のためにトラップされる。
【００２２】
TRの内容が、TRが電力モード変更要求に対応することを示す場合、TRは、矢印234によって示されるように、TRフィルタ回路218によってMHPC232に送られる。上述のように、いくつかの態様における電力モード変更要求は、非限定的な例としてSCSI SSUコマンドまたはeMMC Sleep(CMD5)コマンドを含むことができる。フラッシュメモリベースストレージデバイス106がUFSストレージデバイスであるいくつかの態様では、電力モード変更要求は、アクティブ電力モードを表す1の値、スリープ電力モードを表す2の値、およびパワーダウン電力モードを表す3の値を有する電力状況(PC)フィールドを含むことができる。フラッシュメモリベースストレージデバイス106がeMMCストレージデバイスであるいくつかの態様によれば、電力モード変更要求は、SLEEP電力モードおよびACTIVE電力モードのうちの1つの1ビット指示を含むことができる。
【００２３】
図2のMHPC232は、フラッシュメモリベースストレージデバイス106の電力モードを制御するためのI/Oクライアント104(0)〜104(N)の間の投票機構を実装する、以下でより詳細に説明するハードウェア状態機械である。TRがMHPC232によって正常に処理された場合、TRは、矢印236によって示されるように、トランスポートプロトコルエンジン216に渡され得る。次いでトランスポートプロトコルエンジン216は、相互接続238およびバス240を介してフラッシュメモリベースストレージデバイス106と電力モード変更コマンドおよび応答を通信する。他の場合、MHPC232はTRを静かに処分すること、または矢印242によって示されるように、TRをソフトウェア処理のためにトラップすることができる。MHPC232はまた、要求された電力モード変更が不成功に終わったことをフラッシュメモリベースストレージデバイス106によって通知されると、誤り割込み244を生成することができる。TRが他のコマンドを含む場合、TRは、矢印246によって示されるように、TRフィルタ回路218によってインターセプトおよびトラップされ得る。
【００２４】
図2に見られるように、TRトラップ220はマルチホストコントローラ102によって、トラップされたTRを記憶するために提供される。TRトラップ220内には、コマンド(CMD)ミラー248(0)〜248(N)があり、各々はCRI202(0)〜202(N)のうちの1つに関連付けられる。トラップされたTRは、TRが受信された際の発信側CRI202(0)〜202(N)のCMDミラー248(0)〜248(N)に記憶される。TRがトラップされていることを示すために、BRI200を介してVMM108に対して割込み(矢印250および252によって表される)が生成される。次いでVMM108は、該当するCMDミラー248(0)〜248(N)の内容を読み取って情報を抽出することと、発信側CRI202(0)〜202(N)への応答を生成することとによって、TRをさらに処理することができる。
【００２５】
TRがトラップされると、TRフェッチ回路204は、それの処理を完了しており、別のCRI202(0)〜202(N)に関する次のTRをフェッチすることに進むことができる。トラップされたTRがVMM108によって処理されるまで、トラップされたTRに関連するCRI202(0)〜202(N)は、TRフェッチ裁定から除去される。VMM108がTRを転送または処分するためにマルチホストコントローラ102を順序付けることによってTRを処理したときのみ、同じCRI202(0)〜202(N)からの後続TRがTRフェッチ回路204によってフェッチされ得る。
【００２６】
図3は、複数のI/Oクライアント104(0)〜104(N)のための図1および図2のフラッシュメモリベースストレージデバイス106の電力モード変更を制御するための図2のMHPC232の例示的な構成要素を示す。特に、本明細書で開示する例示的な態様では、MHPC232は、図4A〜図4Eに関して以下でさらに詳細に説明する、要求された電力モード変更に投票ルールを適用するための投票ロジック300を含む。
【００２７】
特に、MHPC232のいくつかの態様は、マルチホストコントローラ102においてMHPC232がサポートされるかどうかを示すMHPC能力フィールド302を含むことができる。マルチホストコントローラ102を初期化すると、仮想化管理ソフトウェア(たとえば、VMM108など)は、MHPC能力フィールド302を読み取ることができる。MHPC能力フィールド302が論理「0」値を記憶している場合、MHPC232はサポートされず、仮想化管理ソフトウェアには2つのオプションが残る。第一に、仮想化管理ソフトウェアは、フラッシュメモリベースストレージデバイス106にI/Oクライアント104(0)〜104(N)の各々からのすべての電力モード変更要求を渡し、たった1つのI/Oクライアント104(0)〜104(N)がそのような電力モード変更要求を送信し得るように設計されたソフトウェアを実行するように、TRフィルタ回路218を構成することができる。代替的に、仮想化管理ソフトウェアは、すべての電力モード変更要求をトラップし、仮想化管理ソフトウェアにおけるソフトウェア投票アルゴリズムを実施するように、TRフィルタ回路218を構成することができる。一方、MHPC能力フィールド302が論理「1」値を記憶している場合、仮想化管理ソフトウェアはMHPC232を、I/Oクライアント104(0)〜104(N)の各々のために、それの起動プロセス中または仮想マシン生成中に有効にすることができる。特に、仮想マシンが生成されるとき、またはクライアントサブシステムが起動するとき、仮想マシンまたはサブシステムは、クライアント識別子(ID)を割り当てられ、図2のマルチホストコントローラ102のCRI202(0)〜202(N)のうちの1つなどのCRIを割り振られる。
【００２８】
いくつかの態様におけるMHPC232はまた、以下で説明するように、I/Oクライアント104(0)〜104(N)のうちのどれがフラッシュメモリベースストレージデバイス106の電力モード制御に投票することを許可されているかを示すために仮想化管理ソフトウェア(非限定的な例としてVMM108など)によって使用されるMHPC制御レジスタ304を含むことができる。たとえば、電力制御に投票することを許可されているI/Oクライアント104(0)〜104(N)のうちの1つに関する電力モード変更要求(図示せず)が、MHPC232ハードウェアによって復号され、処理される。一方、電力制御に投票することを許可されていないI/Oクライアント104(0)〜104(N)のうちの1つに関する電力モード変更要求は、図2に関して上記で説明したように「トラップされる」。さらに、いくつかの態様によれば、MHPC232は、MHPC232ハードウェアの様々な状態メトリック(たとえば、非限定的な例として現在の電力状況および/または受信された最後の要求)を仮想化管理ソフトウェアに知らせるMHPC状態レジスタ306を含むことができる。MHPC232はまた、I/Oクライアント104(0)〜104(N)の各々によって要求された電力状況/モードを仮想化管理ソフトウェアに知らせるMHPC要求状態レジスタ308を含む。
【００２９】
上記で説明したように、MHPC232は、I/Oクライアント104(0)〜104(N)によって発行された電力モード変更要求を処理するときに、投票ロジック300によって具現化されたルールを適用する。投票ロジック300について、ここでより詳細に説明する。特に、投票ロジック300は、すべての参加I/Oクライアント104(0)〜104(N)によって許可された最低電力モード、または代替的に参加I/Oクライアント104(0)〜104(N)のいずれかによって必要とされる最高電力モードでフラッシュメモリベースストレージデバイス106が動作するポリシーを実施する。本明細書で使用する、「参加」I/Oクライアント104(0)〜104(N)は、投票することを許可され、それぞれ電力モード票がMHPC要求状態レジスタ308に記憶されるI/Oクライアント104(0)〜104(N)と定義される。上記で示したように、投票に参加することを許可されていないI/Oクライアント104(0)〜104(N)によって発行された電力モード変更要求は、(たとえば、いくつかの態様ではコマンドをトラップすることによって)投票プロセス中に無視される。このようにして、要求された電力モードがアクティブである少なくとも1つの参加I/Oクライアント104(0)〜104(N)がある場合、フラッシュメモリベースストレージデバイス106は、アクティブ電力モードで動作する。そうではなく、要求された電力モードがスリープである少なくとも1つの参加I/Oクライアント104(0)〜104(N)がある場合、フラッシュメモリベースストレージデバイス106は、スリープ電力モードで動作する。アクティブ電力モードおよびスリープ電力モード以外の電力モードが利用可能であり得るUFSなどの規格に基づく態様によれば、アクティブ電力モードもしくはスリープ電力モードを要求している参加I/Oクライアント104(0)〜104(N)がない場合、または参加I/Oクライアント104(0)〜104(N)がない場合、フラッシュメモリベースストレージデバイス106はパワーダウン電力モードで動作することができる。アクティブ電力モードおよびスリープ電力モードのみが利用可能であるeMMCなどの規格に基づく態様では、フラッシュメモリベースストレージデバイス106は、少なくとも1つの参加I/Oクライアント104(0)〜104(N)によって要求された場合にアクティブ電力モードで動作することができ、そうでない場合にスリープ電力モードにとどまることができる。
【００３０】
この点について、上記で説明した電力モード制御プロセスを用いるMHPC232の一例が、図4A〜図4Eにおいて提供される。わかりやすくするために、図4A〜図4Eについて説明する際に図1〜図3の要素が参照される。図4Aに示す初期状態では、I/Oクライアント104(0)〜104(2)は、それぞれ、MHPC232のMHPC制御レジスタ304に記憶されたビット値406、408および410によって示されるように、現在の参加I/Oクライアント104(0)〜104(2)である。MHPC232のMHPC要求状態レジスタ308は、それぞれのI/Oクライアント104(0)〜104(2)の電力モード変更要求(図示せず)から直近に抽出された電力モード票400、402および404を記憶する。図4A〜図4Eの例では、フラッシュメモリベースストレージデバイス106は、電力モード票400、402、404の1の値がアクティブ電力モードを表し、2の値がスリープ電力モードを表し、3の値がパワーダウン電力モードを表すUFSストレージデバイスである。したがって、電力モード票400、402および404は、I/Oクライアント104(0)がアクティブであり、I/Oクライアント104(1)がパワーダウン電力モードを要求しており、I/Oクライアント104(2)がアクティブであることを示す。
【００３１】
図4Bでは、I/Oクライアント104(0)は、フラッシュメモリベースストレージデバイス106がスリープモードに移行することを要求する電力モード変更コマンド412を発行する。I/Oクライアント104(0)が依然として参加I/Oクライアント104(0)であることを確認した後、MHPC232は、スリープモードに対応する2の値を有する電力モード票414を抽出する。電力モード票414は、MHPC要求状態レジスタ308に電力モード票400として記憶される。次いでMHPC232は、フラッシュメモリベースストレージデバイス106の電力モードが変更されるべきかどうかを判定するために、上記で説明したように投票ロジック300をMHPC要求状態レジスタ308に適用する。図4Bの例では、I/Oクライアント104(2)が依然としてアクティブであるので、電力モード移行は開始されない。したがって、正常な電力モード変更を示す「GOOD」状態を有する応答メッセージ416がI/Oクライアント104(0)に送信される。
【００３２】
次に図4Cを参照すると、次にI/Oクライアント104(2)は、フラッシュメモリベースストレージデバイス106がパワーダウン電力モードに移行することを要求する電力モード変更要求418を発行する。MHPC232は、ビット値410に基づいて、I/Oクライアント104(2)が参加I/Oクライアント104(2)であると判定し、次いでパワーダウン電力モードに対応する3の値を有する電力モード票420を抽出する。MHPC232は、MHPC要求状態レジスタ308に電力モード票404として電力モード票420を記憶し、フラッシュメモリベースストレージデバイス106の電力モードが変更されるべきかどうかを判定するために、MHPC要求状態レジスタ308に投票ロジック300を適用する。図4Cに見られるように、I/Oクライアント104(0)は、電力モード票400によって示されるようにスリープ電力モード(たとえば、I/Oクライアント104(2)によって要求されたパワーダウン電力モードよりも高い電力モード)を以前要求したので、MHPC232は、フラッシュメモリベースストレージデバイス106の電力モードが変更されるべきであると判定する。したがって、電力モードがスリープ電力モードに移行することを要求するために、フラッシュメモリベースストレージデバイス106に電力モード変更コマンド422が送られる。正常な電力モード変更を示す「GOOD」状態を有する応答メッセージ424がフラッシュメモリベースストレージデバイス106から受信され、正常な電力モード変更を示す応答メッセージ426としてI/Oクライアント104(2)に送信される。
【００３３】
図4Dでは、I/Oクライアント104(0)に対応するビット値406がオフにされており、それによりI/Oクライアント104(0)は非参加I/Oクライアント104(0)になっている。したがって、MHPC232は、参加I/Oクライアント104(1)、104(2)に対応するMHPC要求状態レジスタ308における電力モード票402、404に基づいて、投票ロジック300を適用する。参加I/Oクライアント104(1)、104(2)は両方ともパワーダウン電力モードを要求したので、MHPC232は、フラッシュメモリベースストレージデバイス106がパワーダウン電力モードに移行すべきであると判定する。したがって、MHPC232は、パワーダウン電力モードへの移行を要求するためにフラッシュメモリベースストレージデバイス106に電力モード変更コマンド428を送り、応答して、正常な電力モード変更を示す「GOOD」状態を有する応答メッセージ430を受信する。
【００３４】
次に図4Eを参照すると、I/Oクライアント104(1)は、フラッシュメモリベースストレージデバイス106がアクティブ電力モードに移行することを要求する電力モード変更要求432を送る。I/Oクライアント104(1)が依然として参加I/Oクライアント104(1)であることを確認した後、MHPC232は、アクティブモードに対応する1の値を有する電力モード票434を抽出する。電力モード票434は、MHPC要求状態レジスタ308に電力モード票402として記憶される。次いでMHPC232は、フラッシュメモリベースストレージデバイス106の電力モードが変更されるべきかどうかを判定するために、上記で説明したように投票ロジック300をMHPC要求状態レジスタ308に適用する。この例では、アクティブ電力モードは最高の要求された電力モードであり、したがって、アクティブ電力モードへの移行を要求するためにフラッシュメモリベースストレージデバイス106に電力モード変更コマンド436が送られる。正常な電力モード変更を示す「GOOD」状態を有する応答メッセージ438がフラッシュメモリベースストレージデバイス106から受信され、正常な電力モード変更を示す応答メッセージ440としてI/Oクライアント104(1)に送信される。
【００３５】
図1のフラッシュメモリベースストレージデバイス106の電力モードを制御するための図2および図3のMHPC232の例示的な動作を示すために、図5Aおよび図5Bが提供される。図5Aおよび図5Bについて説明する際に、わかりやすくするために、図1〜図3および図4A〜図4Eの要素が参照される。図5Aでは、動作は、MHPC232がマルチホストコントローラ102のTRフィルタ回路218を介して、複数のI/Oクライアント104(0)〜104(2)のうちのI/Oクライアント104(2)などのI/Oクライアントから電力モード変更要求418を受信することにより始まる(ブロック500)。いくつかの態様では、電力モード変更要求418は、非限定的な例としてSCSI SSUコマンドまたはeMMC Sleep(CMD5)コマンドを含むことができる。したがってMHPC232は、本明細書では「電力モード変更要求を受信するための手段」と呼ばれ得る。
【００３６】
いくつかの態様によるMHPC232は次に、MHPC制御レジスタ304の内容に基づいて、I/Oクライアント104(2)が投票することを許可されているかどうかを判定することができる(ブロック502)。I/Oクライアント104(2)が参加I/Oクライアント104(2)ではないことをMHPC制御レジスタ304が示す場合、電力モード変更要求418はトラップされ、しかるべく処理され得る(ブロック504)。一方、MHPC232が決定ブロック502において、I/Oクライアント104(2)が投票することを許可されていると判定した場合、MHPC232は、I/Oクライアント104(2)によって要求された電力モードを示す電力モード票420を電力モード変更要求418から抽出する(ブロック506)。したがって、MHPC232は、本明細書では「電力モード票を抽出するための手段」と呼ばれ得る。フラッシュメモリベースストレージデバイス106がUFSストレージデバイスであるいくつかの態様では、電力モード票420は、アクティブ電力モードを表す1の値、スリープ電力モードを表す2の値、およびパワーダウン電力モードを表す3の値を有するSCSI SSU PCフィールドの内容を表すことができる。フラッシュメモリベースストレージデバイス106がeMMCストレージデバイスであるいくつかの態様によれば、電力モード票420は、SLEEP電力モードおよびACTIVE電力モードのうちの1つの1ビット指示を含むことができる。次いで電力モード票420は、MHPC232によって、MHPC232のMHPC要求状態レジスタ308に記憶され、MHPC要求状態レジスタ308は、複数のI/Oクライアント104(0)〜104(2)の各I/Oクライアント104(2)に関する最後の要求された電力モードを示す(ブロック508)。
【００３７】
次いでMHPC232は、フラッシュメモリベースストレージデバイス106の電力モードが変更されるべきかどうかを判定するために、MHPC要求状態レジスタ308に投票ロジック300(非限定的な例として、最高電力レベル要求ルールなど)を適用する(ブロック510)。いくつかの態様では、投票ロジック300は、すべての参加I/Oクライアント104(0)〜104(N)によって許可された最低電力モード、または代替的に参加I/Oクライアント104(0)〜104(N)のいずれかによって必要とされる最高電力モードでフラッシュメモリベースストレージデバイス106が動作するポリシーを実施する。この点について、MHPC232は、本明細書では「MHPC要求状態レジスタに投票ロジックを適用するための手段」と呼ばれ得る。
【００３８】
次に図5Bを参照すると、MHPC232は、投票ロジック300の適用に基づいて、電力モードが変更されるべきかどうかを判定する(ブロック512)。MHPC232が決定ブロック512において、フラッシュメモリベースストレージデバイス106の現在の電力モードが維持されるべきであると判定した場合、MHPC232は、電力モードを実際に変更することのない、正常な電力モード変更を示す応答メッセージ426をI/Oクライアント104(2)に送信する(ブロック514)。一方、決定ブロック512において、フラッシュメモリベースストレージデバイス106の現在の電力モードが変更されるべきであると判定された場合、MHPC232は、電力モードを変更するようフラッシュメモリベースストレージデバイス106に電力モード変更コマンド422を発行する(ブロック516)。したがってMHPC232は、本明細書では「電力モード変更コマンドを発行するための手段」と呼ばれ得る。
【００３９】
いくつかの態様では、次いでMHPC232は、フラッシュメモリベースストレージデバイス106から応答メッセージ424を受信することができる(ブロック518)。したがって、MHPC232は、本明細書では「フラッシュメモリベースストレージデバイスから応答メッセージを受信するための手段」と呼ばれ得る。応答メッセージ424はMHPC232によって、応答メッセージ424がフラッシュメモリベースストレージデバイス106による正常な電力モード変更を示すかどうかを判定するために評価され得る(ブロック520)。決定ブロック520において、正常な電力モード変更が応答メッセージ424によって示されていると判定された場合、MHPC232は、正常な電力モード変更を示す応答メッセージ426をI/Oクライアント104(2)に送信する(ブロック514)。この点について、MHPC232は、本明細書では「正常な電力モード変更を示すMHPCからの応答メッセージをI/Oクライアントに送信するための手段」と呼ばれ得る。電力モード変更が不成功に終わった場合、MHPC232はI/Oクライアント104(2)への誤り割込み250を生成することができる。したがってMHPC232は、本明細書では「I/Oクライアントへの誤り割込みを生成するための手段」と呼ばれ得る。
【００４０】
本明細書で開示する態様によるフラッシュメモリベースストレージデバイスのマルチホスト電力コントローラは、任意のプロセッサベースデバイスにおいて提供されること、または任意のプロセッサベースデバイスに統合されることがある。例としては、限定はしないが、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナー、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤがある。
【００４１】
この点について、図6は、図3に示すMHPC232とともに図2のSoC100を用いることができるプロセッサベースシステム600の一例を示す。この例では、プロセッサベースシステム600は、1つまたは複数の中央処理装置(CPU)602を含み、各CPUが1つまたは複数のプロセッサ604を含む。CPU602は、一時的に記憶されたデータへの高速アクセスのためにプロセッサ604に結合されたキャッシュメモリ606を有してもよい。CPU602は、システムバス608に結合され、プロセッサベースシステム600中に含まれるデバイスを相互結合することができる。よく知られているように、CPU602は、これらの他のデバイスと、システムバス608を介してアドレス情報、制御情報、およびデータ情報を交換することによって通信する。たとえば、CPU602は、スレーブデバイスの一例として、メモリコントローラ610にバストランザクション要求を通信することができる。図6に示されていないが、複数のシステムバス608を設けることができる。
【００４２】
他のデバイスをシステムバス608に接続することができる。図6に示すように、これらのデバイスは、例として、メモリシステム612、1つまたは複数の入力デバイス614、1つまたは複数の出力デバイス616、1つまたは複数のネットワークインターフェースデバイス618、および1つまたは複数のディスプレイコントローラ620を含むことができる。入力デバイス614は、限定はしないが、入力キー、スイッチ、音声プロセッサなどを含む、任意のタイプの入力デバイスを含むことができる。出力デバイス616は、限定はしないが、オーディオインジケータ、ビデオインジケータ、他の視覚インジケータなどを含む、任意のタイプの出力デバイスを含むことができる。ネットワークインターフェースデバイス618は、ネットワーク622との間のデータ交換を可能にするように構成された任意のデバイスとすることができる。ネットワーク622は、限定はしないが、ワイヤードネットワークまたはワイヤレスネットワーク、プライベートネットワークまたは公衆ネットワーク、ローカルエリアネットワーク(LAN)、ワイドローカルエリアネットワーク、ワイヤレスローカルエリアネットワーク、BLUETOOTH(登録商標)(BT)、およびインターネットを含む任意のタイプのネットワークであり得る。ネットワークインターフェースデバイス618は、所望の任意のタイプの通信プロトコルをサポートするように構成され得る。メモリシステム612は、1つまたは複数のメモリユニット624(0)〜624(N)を含み得る。
【００４３】
CPU602はまた、1つまたは複数のディスプレイ626に送られる情報を制御するために、システムバス608を介してディスプレイコントローラ620にアクセスするように構成され得る。ディスプレイコントローラ620は、1つまたは複数のビデオプロセッサ628を介して、表示されるべき情報をディスプレイ626に送り、ビデオプロセッサ628は、表示されるべき情報を、ディスプレイ626に適したフォーマットとなるように処理する。ディスプレイ626は、限定はしないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、プラズマディスプレイなどを含む、任意のタイプのディスプレイを含むことができる。
【００４４】
本明細書で開示する態様に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムは、電子ハードウェア、メモリもしくは別のコンピュータ可読媒体に記憶され、プロセッサもしくは他の処理デバイスによって実行される命令、または両方の組合せとして実装され得ることを当業者はさらに諒解されよう。本明細書で説明するデバイスは、例として、任意の回路、ハードウェア構成要素、集積回路(IC)、またはICチップ内で用いられ得る。本明細書で開示するメモリは、任意のタイプおよびサイズのメモリであってもよく、所望の任意のタイプの情報を記憶するように構成されてもよい。この互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、上記では概してそれらの機能に関して説明した。そのような機能がどのように実装されるかは、特定の適用例、設計上の選定、および/または全体的なシステムに課された設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装してもよいが、そのような実装の決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【００４５】
本明細書で開示する態様に関して説明する様々な例示的な論理ブロック、モジュール、および回路は、プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。プロセッサはマイクロプロセッサであり得るが、代替実施形態では、プロセッサは、任意の従来型プロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装される場合もある。
【００４６】
本明細書で開示する態様は、ハードウェアにおいて、また、ハードウェアに記憶された命令において具現化され得、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態のコンピュータ可読媒体に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替として、記憶媒体はプロセッサに一体化されてもよい。プロセッサおよび記憶媒体はASICに存在し得る。ASICはリモート局に存在し得る。代替として、プロセッサおよび記憶媒体は個別構成要素としてリモート局、基地局、またはサーバに存在し得る。
【００４７】
本明細書の例示的な態様のいずれかで説明した動作ステップは、例および議論を提供するために説明されていることにも留意されたい。説明した動作は、図示した順序以外の多数の異なる順序で実行され得る。さらに、単一の動作ステップで説明した動作は、実際にはいくつかの異なるステップで実行され得る。加えて、例示的な態様において説明した1つまたは複数の動作ステップは、組み合わされ得る。当業者には容易に明らかになるように、フローチャート図に示す動作ステップは、多数の異なる修正を受ける場合があることを理解されたい。当業者はまた、情報および信号が様々な異なる技術および技法のいずれかを使用して表され得ることを理解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表され得る。
【００４８】
本開示の上述の説明は、当業者が本開示を作製または使用することを可能にするために提供される。本開示に対する様々な修正は、当業者に容易に明らかになり、本明細書で定義する一般原理は、本開示の趣旨または範囲から逸脱することなく、他の変形形態に適用され得る。したがって、本開示は、本明細書で説明する例および設計に限定されるものではなく、本明細書で開示する原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
【符号の説明】
【００４９】
100  システムオンチップ(SoC)
102  マルチホストコントローラ
104(0)  I/Oクライアント
104(1)  I/Oクライアント
104(2)  I/Oクライアント
104(N)  I/Oクライアント
106  フラッシュメモリベースストレージデバイス
108  仮想マシンマネージャ(VMM)
200  ベースレジスタインターフェース(BRI)
202(0)〜202(N)  クライアントレジスタインターフェース(CRI)
204  TRフェッチ回路(TR FETCH CIRC)
206  矢印
208  矢印
210  矢印
212  システムメモリ
214  矢印
216  トランスポートプロトコルエンジン
218  TRフィルタ回路
220  TRトラップ
222  応答生成回路
224  アクセス制御回路
226  矢印
228  矢印
230  矢印
232  MHPC
234  矢印
236  矢印
238  相互接続
240  バス
242  矢印
244  誤り割込み
246  矢印
248(0)〜248(N)  コマンド(CMD)ミラー
250  矢印
252  矢印
300  投票ロジック
302  MHPC能力フィールド
304  MHPC制御レジスタ
306  MHPC状態レジスタ
308  MHPC要求状態レジスタ
400  電力モード票
402  電力モード票
404  電力モード票
406  ビット値
408  ビット値
410  ビット値
412  電力モード変更コマンド
414  電力モード票
416  応答メッセージ
418  電力モード変更要求
420  電力モード票
422  電力モード変更コマンド
424  応答メッセージ
426  応答メッセージ
428  電力モード変更コマンド
430  応答メッセージ
432  電力モード変更要求
434  電力モード票
436  電力モード変更コマンド
438  応答メッセージ
440  応答メッセージ
600  プロセッサベースシステム
602  中央処理装置(CPU)
604  プロセッサ
606  キャッシュメモリ
608  システムバス
610  メモリコントローラ
612  メモリシステム
614  入力デバイス
616  出力デバイス
618  ネットワークインターフェースデバイス
620  ディスプレイコントローラ
622  ネットワーク
624(0)〜624(N)  メモリユニット
626  ディスプレイ
628  ビデオプロセッサ
【図１】
2017519294.tif 000003
【図２】
2017519294.tif 000004
【図３】
2017519294.tif 000005
【図４Ａ】
2017519294.tif 000006
【図４Ｂ】
2017519294.tif 000007
【図４Ｃ】
2017519294.tif 000008
【図４Ｄ】
2017519294.tif 000009
【図４Ｅ】
2017519294.tif 000010
【図５Ａ】
2017519294.tif 000011
【図５Ｂ】
2017519294.tif 000012
【図６】
2017519294.tif 000013
【手続補正書】
【提出日】平成28年12月6日(2016.12.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の入力/出力(I/O)クライアントとフラッシュメモリベースストレージデバイスとに通信可能に結合された、マルチホストコントローラのマルチホスト電力コントローラ(MHPC)であって、
前記MHPCは、記憶された電力モード票として、前記複数のI/Oクライアントの各I/Oクライアントに関する最後の要求された電力モードを示すように構成されたMHPC要求状態レジスタを含み、
前記MHPCは、
前記マルチホストコントローラの転送要求(TR)フィルタ回路を介して、前記複数のI/OクライアントのうちのI/Oクライアントから電力モード変更要求を受信し、
前記I/Oクライアントによって要求された電力モードを示す電力モード票を前記電力モード変更要求から抽出し、
前記MHPCの前記MHPC要求状態レジスタに前記電力モード票を記憶し、
前記フラッシュメモリベースストレージデバイスの電力モードが変更されるべきかどうかを判定するために、前記MHPC要求状態レジスタ内の前記記憶された電力モード票に投票ロジックを適用し、
前記電力モードが変更されるべきであるとの判定に応答して、前記電力モードを変更するよう前記MHPCから前記フラッシュメモリベースストレージデバイスに電力モード変更コマンドを発行する
ように構成された、MHPC。
【請求項２】
スモールコンピュータシステムインターフェース(SCSI)START STOP UNIT(SSU)コマンドおよび組込み型MultiMedia Card(eMMC)Sleep(CMD5)コマンドのうちの1つを受信することによって、前記電力モード変更要求を受信するように構成された、請求項1に記載のMHPC。
【請求項３】
eMMC規格に従って前記フラッシュメモリベースストレージデバイスに通信可能に結合されており、eMMC Sleep(CMD5)コマンドからSLEEP電力モードおよびACTIVE電力モードのうちの1つの1ビット指示を抽出することによって、前記電力モード票を前記電力モード変更要求から抽出するように構成された、請求項1に記載のMHPC。
【請求項４】
ユニバーサルフラッシュストレージ(UFS)規格に従って前記フラッシュメモリベースストレージデバイスに通信可能に結合されており、SCSI SSUコマンド内の電力状況(PC)フィールドの値を抽出することによって、前記電力モード票を前記電力モード変更要求から抽出するように構成され、前記PCフィールドの前記値は、アクティブ電力モードを表す1の値、スリープ電力モードを表す2の値、およびパワーダウン電力モードを表す3の値から選択される、請求項1に記載のMHPC。
【請求項５】
前記フラッシュメモリベースストレージデバイスの前記電力モードが変更されるべきかどうかを判定するために、前記MHPC要求状態レジスタに最高電力レベル要求ルールを適用することによって、前記MHPC要求状態レジスタに前記投票ロジックを適用するように構成された、請求項1に記載のMHPC。
【請求項６】
前記複数のI/Oクライアントの各I/Oクライアントに関して、前記I/Oクライアントが投票することを許可されているかどうかを示すように構成されたMHPC制御レジスタをさらに含み、
前記MHPCは、前記MHPC制御レジスタに基づく、前記I/Oクライアントが投票することを許可されているとの判定に応答して、前記I/Oクライアントに関する前記電力モード票を抽出するように構成された、請求項1に記載のMHPC。
【請求項７】
前記電力モードが変更されるべきであるとの判定と、前記電力モードを変更するよう前記フラッシュメモリベースストレージデバイスに前記電力モード変更コマンドを発行したこととに応答して、
前記フラッシュメモリベースストレージデバイスから応答メッセージを受信し、
前記応答メッセージが正常な電力モード変更を示すとの判定に応答して、前記正常な電力モード変更を示す前記MHPCからの応答メッセージを前記I/Oクライアントに送信し、
前記応答メッセージが不成功の電力モード変更を示すとの判定に応答して、前記I/Oクライアントへの誤り割込みを生成する
ようにさらに構成された、請求項1に記載のMHPC。
【請求項８】
前記電力モードが変更されるべきではないとの判定に応答して、正常な電力モード変更を示す前記MHPCからの応答メッセージを前記I/Oクライアントに送信するようにさらに構成された、請求項1に記載のMHPC。
【請求項９】
集積回路(IC)に組み込まれた、請求項1に記載のMHPC。
【請求項１０】
セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナー、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤからなる群から選択されるデバイスに組み込まれる、請求項1に記載のMHPC。
【請求項１１】
複数のホストのためのフラッシュメモリベースストレージデバイスの電力モードを制御するための方法であって、
マルチホスト電力コントローラ(MHPC)によってマルチホストコントローラの転送要求(TR)フィルタ回路を介して、複数の入力/出力(I/O)クライアントのうちのI/Oクライアントから電力モード変更要求を受信するステップと、
前記MHPCによって、前記I/Oクライアントによって要求された電力モードを示す電力モード票を前記電力モード変更要求から抽出するステップと、
前記MHPCによって、前記MHPCのMHPC要求状態レジスタに前記電力モード票を記憶するステップであって、前記MHPC要求状態レジスタは、記憶された電力モード票として、前記複数のI/Oクライアントの各I/Oクライアントに関する最後の要求された電力モードを示す、ステップと、
前記MHPCによって、前記フラッシュメモリベースストレージデバイスの電力モードが変更されるべきかどうかを判定するために、前記MHPC要求状態レジスタ内の前記記憶された電力モード票に投票ロジックを適用するステップと、
前記電力モードが変更されるべきであるとの判定に応答して、前記電力モードを変更するよう前記MHPCから前記フラッシュメモリベースストレージデバイスに電力モード変更コマンドを発行するステップと
を含む方法。
【請求項１２】
前記電力モード変更要求を受信するステップは、スモールコンピュータシステムインターフェース(SCSI)START STOP UNIT(SSU)コマンドおよび組込み型MultiMedia Card(eMMC)Sleep(CMD5)コマンドのうちの1つを受信するステップを含む、請求項11に記載の方法。
【請求項１３】
前記フラッシュメモリベースストレージデバイスは、組込み型MultiMedia Card(eMMC)デバイスを含み、
前記電力モード票を前記電力モード変更要求から抽出するステップは、eMMC Sleep(CMD5)コマンドからSLEEP電力モードおよびACTIVE電力モードのうちの1つの1ビット指示を抽出するステップを含む、請求項11に記載の方法。
【請求項１４】
前記フラッシュメモリベースストレージデバイスは、ユニバーサルフラッシュストレージ(UFS)デバイスを含み、
前記電力モード票を前記電力モード変更要求から抽出するステップは、SCSI SSUコマンド内の電力状況(PC)フィールドの値を抽出するステップを含み、前記PCフィールドの前記値は、アクティブ電力モードを表す1の値、スリープ電力モードを表す2の値、およびパワーダウン電力モードを表す3の値から選択される、請求項11に記載の方法。
【請求項１５】
前記MHPC要求状態レジスタに前記投票ロジックを適用するステップは、前記フラッシュメモリベースストレージデバイスの前記電力モードが変更されるべきかどうかを判定するために、前記MHPC要求状態レジスタに最高電力レベル要求ルールを適用するステップを含む、請求項11に記載の方法。
【請求項１６】
前記I/Oクライアントに関する前記電力モード票を抽出するステップは、MHPC制御レジスタに基づく、前記I/Oクライアントが投票することを許可されているとの判定に応答したものである、請求項11に記載の方法。
【請求項１７】
前記電力モードが変更されるべきであるとの判定と、前記電力モードを変更するよう前記フラッシュメモリベースストレージデバイスに前記電力モード変更コマンドを発行したこととに応答して、
前記フラッシュメモリベースストレージデバイスから応答メッセージを受信するステップと、
前記応答メッセージが正常な電力モード変更を示すとの判定に応答して、前記正常な電力モード変更を示す前記MHPCからの応答メッセージを前記I/Oクライアントに送信するステップと、
前記応答メッセージが不成功の電力モード変更を示すとの判定に応答して、前記I/Oクライアントへの誤り割込みを生成するステップと
をさらに含む、請求項11に記載の方法。
【請求項１８】
前記電力モードが変更されるべきではないとの判定に応答して、正常な電力モード変更を示す前記MHPCからの応答メッセージを前記I/Oクライアントに送信するステップをさらに含む、請求項11に記載の方法。
【請求項１９】
マルチホストコントローラのマルチホスト電力コントローラ(MHPC)であって、
複数の入力/出力(I/O)クライアントのうちのI/Oクライアントから電力モード変更要求を受信するための手段と、
前記I/Oクライアントによって要求された電力モードを示す電力モード票を前記電力モード変更要求から抽出するための手段と、
前記MHPCのMHPC要求状態レジスタに前記電力モード票を記憶するための手段であって、前記MHPC要求状態レジスタは、記憶された電力モード票として、前記複数のI/Oクライアントの各I/Oクライアントに関する最後の要求された電力モードを示す、手段と、
フラッシュメモリベースストレージデバイスの電力モードが変更されるべきかどうかを判定するために、前記MHPC要求状態レジスタ内の前記記憶された電力モード票に投票ロジックを適用するための手段と、
前記電力モードが変更されるべきであるとの判定に応答して、前記電力モードを変更するよう前記MHPCから前記フラッシュメモリベースストレージデバイスに電力モード変更コマンドを発行するための手段と
を含むMHPC。
【請求項２０】
前記電力モード変更要求を受信するための前記手段は、スモールコンピュータシステムインターフェース(SCSI)START STOP UNIT(SSU)コマンドおよび組込み型MultiMedia Card(eMMC)Sleep(CMD5)コマンドのうちの1つを受信するための手段を含む、請求項19に記載のMHPC。
【請求項２１】
前記フラッシュメモリベースストレージデバイスは、組込み型MultiMedia Card(eMMC)デバイスを含み、
前記電力モード票を前記電力モード変更要求から抽出するための前記手段は、eMMC Sleep(CMD5)コマンドからSLEEP電力モードおよびACTIVE電力モードのうちの1つの1ビット指示を抽出するための手段を含む、請求項19に記載のMHPC。
【請求項２２】
前記フラッシュメモリベースストレージデバイスは、ユニバーサルフラッシュストレージ(UFS)デバイスを含み、
前記電力モード票を前記電力モード変更要求から抽出するための前記手段は、SCSI SSUコマンド内の電力状況(PC)フィールドの値を抽出するための手段を含み、前記PCフィールドの前記値は、アクティブ電力モードを表す1の値、スリープ電力モードを表す2の値、およびパワーダウン電力モードを表す3の値から選択される、請求項19に記載のMHPC。
【請求項２３】
前記MHPC要求状態レジスタに前記投票ロジックを適用するための前記手段は、前記フラッシュメモリベースストレージデバイスの前記電力モードが変更されるべきかどうかを判定するために、前記MHPC要求状態レジスタに最高電力レベル要求ルールを適用するための手段を含む、請求項19に記載のMHPC。
【請求項２４】
前記I/Oクライアントに関する前記電力モード票を抽出するための前記手段は、MHPC制御レジスタに基づいて、前記I/Oクライアントが投票することを許可されていると判定するための手段を含む、請求項19に記載のMHPC。
【請求項２５】
前記電力モードが変更されるべきであるとの判定と、前記電力モードを変更するよう前記フラッシュメモリベースストレージデバイスに前記電力モード変更コマンドを発行したこととに応答して、前記フラッシュメモリベースストレージデバイスから応答メッセージを受信するための手段と、
前記応答メッセージが正常な電力モード変更を示すとの判定に応答して、前記正常な電力モード変更を示す前記MHPCからの応答メッセージを前記I/Oクライアントに送信するための手段と、
前記応答メッセージが不成功の電力モード変更を示すとの判定に応答して、前記I/Oクライアントへの誤り割込みを生成するための手段と
をさらに含む、請求項19に記載のMHPC。
【請求項２６】
前記電力モードが変更されるべきではないとの判定に応答して、正常な電力モード変更を示す前記MHPCからの応答メッセージを前記I/Oクライアントに送信するための手段をさらに含む、請求項19に記載のMHPC。
【国際調査報告】
2017519294.tif 000014
2017519294.tif 000015
2017519294.tif 000016