(57)【要約】  計算手段上で実行状態にある１つ以上のソフトウェアアプリケーション（４０）と、当該バッファ（３０、２１０）を介してその１つ以上のアプリケーション（４０）と通信状態にある１つ以上のデータ生成および／または受信装置（２０）との間において、バッファリングを行うための動的メモリバッファ（３０、２１０）であって、１つ以上の装置（２０）内で生じる電力損失を低減するように、１つ以上のアプリケーション（４０）に割り当てられる当該バッファ（３０）の１つ以上の割当分の割当てを制御する、バッファ管理手段（２１０）を含むことを特徴とする動的メモリバッファ（３０、２１０）を開示する。
2007503042.tif 000002
【特許請求の範囲】
【請求項１】
計算手段上で実行状態にある１つ以上のソフトウェアアプリケーションと、当該バッファを介して前記１つ以上のアプリケーションと通信状態にある１つ以上のデータ生成および／または受信装置との間において、バッファリングを行うための動的メモリバッファであって、
前記１つ以上の装置内で生じる電力損失を低減するように、前記１つ以上のアプリケーションに割り当てられる当該バッファの１つ以上の割当分の割当てを制御する、バッファ管理手段を含むことを特徴とする動的メモリバッファ。
【請求項２】
前記管理手段が、前記１つ以上のアプリケーションによって当該バッファに課せられるデータストリーミングレートの要求に応じて、当該バッファの前記１つ以上の割当分の割当てを制御するように動作可能であることを特徴とする請求項１記載の動的メモリバッファ。
【請求項３】
前記管理手段が、前記１つ以上の装置に対する許容可能な最大電力損失の限界値への接近に応じて、当該バッファの前記１つ以上の割当分の割当てを制御するように動作可能であることを特徴とする請求項１または２記載の動的メモリバッファ。
【請求項４】
前記管理手段が、前記１つ以上の装置内における所定割合が掛け合わされた電力損失に応じて、当該バッファの前記１つ以上の割当分の割当てを制御するように動作可能とされており、
前記所定割合が掛け合わされた電力損失が、実質的に制限のないバッファメモリ容量と関連付けられた前記１つ以上のアプリケーションについて生じる、対応の潜在的な漸近電力損失値に比例することを特徴とする請求項１または２記載の動的メモリバッファ。
【請求項５】
前記所定割合が掛け合わされた電力損失が、対応の潜在的な漸近電力損失値の、１０５％から３００％の範囲内にあることを特徴とする請求項４記載の動的メモリバッファ。
【請求項６】
前記所定割合が掛け合わされた電力損失が、対応の潜在的な漸近電力損失値の、約１１０％であることを特徴とする請求項５記載の動的メモリバッファ。
【請求項７】
前記管理手段が、前記１つ以上の装置内で損なわれている電力の尺度を導出し、該尺度を用いて当該バッファの前記１つ以上の割当分の割当てを制御することにより、前記１つ以上の装置内で生じる電力損失を反復的に低減するように動作可能な、ニューラルネットワークとして実装されていることを特徴とする請求項１または２記載の動的メモリバッファ。
【請求項８】
前記計算手段上で実行状態にある前記１つ以上のソフトウェアアプリケーションと共に動作している際の、前記計算手段、当該バッファ、および前記１つ以上の装置が、資源が限られたマルチアプリケーションシステムに対応することを特徴とする請求項１から７いずれか１項記載の動的メモリバッファ。
【請求項９】
前記管理手段が、前記計算手段と前記１つ以上の装置との少なくとも一方において実行可能な、ソフトウェア中に実装されていることを特徴とする請求項１から８いずれか１項記載の動的メモリバッファ。
【請求項１０】
前記１つ以上のアプリケーションからのデータレートの要求および／または前記１つ以上の装置に対する予め決められた電力損失限界値に応じて、当該バッファの前記１つ以上の割当分を、前記１つ以上のアプリケーションに割り当てるのに用いるため、前記管理手段内に、予め決められたデータアレイが含まれていることを特徴とする請求項９記載の動的メモリバッファ。
【請求項１１】
当該バッファの少なくとも一部が、ＥＳＰ（ｅｌｅｃｔｒｏｎｉｃ  ｓｈｏｃｋ  ｐｒｏｔｅｃｔｉｏｎ）バッファを含んでいることを特徴とする請求項１から１０いずれか１項記載の動的メモリバッファ。
【請求項１２】
前記装置の少なくとも１つが、データをストリーミングする際に、ストップとスタートとの間で切り換えられるデューティーサイクルのモードで動作するように構成されていることを特徴とする請求項１から１１いずれか１項記載の動的メモリバッファ。
【請求項１３】
計算手段上で実行状態にある１つ以上のソフトウェアアプリケーションと、動的メモリバッファを介して前記１つ以上のアプリケーションと通信状態にある１つ以上のデータ生成および／または受信装置との間において、バッファリングを行うための前記動的メモリバッファを制御する方法であって、
前記１つ以上の装置内で生じる電力損失を低減するように、前記１つ以上のアプリケーションに割り当てられる前記バッファの１つ以上の割当分の割当てを制御するバッファ管理手段を、前記バッファが含むようになす工程を含むことを特徴とする方法。
【請求項１４】
前記管理手段が、前記１つ以上のアプリケーションによって前記バッファに課せられるデータストリーミングレートの要求に応じて、前記バッファの前記１つ以上の割当分の割当てを制御するように動作可能であることを特徴とする請求項１３記載の方法。
【請求項１５】
前記管理手段が、前記１つ以上の装置に対する許容可能な最大電力損失の限界値への接近に応じて、前記バッファの前記１つ以上の割当分の割当てを制御するように動作可能であることを特徴とする請求項１３または１４記載の方法。
【請求項１６】
前記管理手段が、前記１つ以上の装置内における所定割合が掛け合わされた電力損失に応じて、前記バッファの前記１つ以上の割当分の割当てを制御するように動作可能とされており、
前記所定割合が掛け合わされた電力損失が、実質的に制限のないバッファメモリ容量に対して前記１つ以上のアプリケーションについて生じる、対応の潜在的な漸近電力損失値に比例することを特徴とする請求項１３または１４記載の方法。
【請求項１７】
前記所定割合が掛け合わされた電力損失が、対応の潜在的な漸近電力損失値の、１０５％から３００％の範囲内にあることを特徴とする請求項１６記載の方法。
【請求項１８】
前記所定割合が掛け合わされた電力損失が、対応の潜在的な漸近電力損失値の、約１１０％であることを特徴とする請求項１７記載の方法。
【請求項１９】
前記管理手段が、前記１つ以上の装置内で損なわれている電力の尺度を導出し、該尺度を用いて前記バッファの前記１つ以上の割当分の割当てを制御することにより、前記１つ以上の装置内で生じる電力損失を反復的に低減するように動作可能な、ニューラルネットワークとして実装されていることを特徴とする請求項１３または１４記載の方法。
【請求項２０】
前記計算手段上で実行状態にある前記１つ以上のソフトウェアアプリケーションと共に動作している際の、前記計算手段、前記バッファ、および前記１つ以上の装置が、資源が限られたマルチアプリケーションシステムに対応することを特徴とする請求項１３から１９いずれか１項記載の方法。
【請求項２１】
前記管理手段が、前記計算手段と前記１つ以上の装置との少なくとも一方において実行可能な、ソフトウェア中に実装されていることを特徴とする請求項１３から２０いずれか１項記載の方法。
【請求項２２】
前記１つ以上のアプリケーションからのデータレートの要求および／または前記１つ以上の装置に対する予め決められた電力損失限界値に応じて、前記バッファの前記１つ以上の割当分を、前記１つ以上のアプリケーションに割り当てるのに用いるため、前記管理手段内に、予め決められたデータアレイが含まれていることを特徴とする請求項２１記載の方法。
【請求項２３】
前記バッファの少なくとも一部が、ＥＳＰバッファを含んでいることを特徴とする請求項１３から２２いずれか１項記載の方法。
【請求項２４】
前記装置の少なくとも１つが、データをストリーミングする際に、ストップとスタートとの間で切り換えられるデューティーサイクルのモードで動作するように構成されていることを特徴とする請求項１３から２３いずれか１項記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動的メモリバッファに関するものであり、特に（これに限定されるものではないが）、資源が限られたマルチアプリケーション環境で使用するための、電力損失が有利に低減された動的メモリバッファに関するものである。本発明はまた、そのような動的メモリバッファにおける電力損失を低減する方法にも関するものである。
【背景技術】
【０００２】
記憶バッファは、たとえば入力／出力バッファ（Ｉ／Ｏバッファ）等、よく知られている。そのようなバッファには、先入先出（ＦＩＦＯ）レジスタや、かかるＦＩＦＯに類似した動作を行うように構成されたＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリ装置が含まれる。これらのバッファは、光学テキスト／画像スキャナ、ＣＣＤ撮像装置、プリンタ、磁気ディスク装置、および光ディスクドライブといった機械的装置との関連で、用途が見出されることが多い。そのような機械的装置は、マイクロプロセッサやそれに付随するデコーダ等の周辺構成要素のような、実質的に電子的に動作する装置とは、顕著に異なるレートで、連続的にデータの受信および／または出力を行う能力を有するものであることが多い。実質的に電子的に動作する装置と共に機械的装置を効率的に動作させるためには、それらの機械的装置および電子的装置において遅延および／または互いの動作の一時的な失速が生じることを防ぐために、上記のようなバッファが用いられることが多い。
【０００３】
実質的に電子的に動作する装置と機械的装置との組合せを含むシステムを設計する際には、それらの装置のデータレート処理能力を考慮して有利となるように、それら電子的装置と機械的装置との間のインターフェースに必要な記憶バッファのサイズの選択が行われることがよく知られている。たとえば、持運び用のラップトップコンピュータのような装置や、最近のＤＶＤプレーヤ／レコーダおよびＭＰ３プレーヤ／レコーダといった携帯型オーディオビジュアル機器を設計する際には、そのような考慮がなされる。
【０００４】
ここで、期待される要求に応じて入力／出力バッファを動的に割り当てることが知られている。相互接続された電子的装置と機械的装置とが、互いに異なるデータ出力／受信レートのために互いに遅延を生じることを不可能にするため、かかる遅延を防止するために必要とされる最小サイズよりもかなり大きなサイズのバッファを付与することが、従来から実践されている手法である。
【０００５】
しかしながら、当該技術分野では、たとえば米国特許第５９５１６５８号に記載されているように、データ記憶システム内のバッファリングを管理することが知られている。かかるシステムにおいては、Ｉ／Ｏ要求を行うユーザーおよび／またはアプリケーションプログラムにより、管理されている自己のバッファリング設備に制御を伝達するシステムが結果として得られる。管理されているバッファリング設備の動作中においては、ユーザー／アプリケーションがどのようにデータの読出しまたは書込みを行うかを特定するために、ユーザーまたはアプリケーションからの要求が照会される。システムは、意図されている用途に応じて、関連データへの意図されているアクセスに基づき（たとえば、ファイルのサイズおよび／または記憶装置の属性に基づいて）、ユーザー／アプリケーションにそのシステムのバッファを割り当てる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の発明者は、最近の、資源が限られたマルチアプリケーションのシステム（たとえば、ユーザーインタラクティブな計算機、携帯型コンピュータ、民生オーディオおよび／またはビデオ機器等）にとっては、システム内で生じる電力損失に関して好適に管理される記憶バッファを含めることが、有利であると理解した。システムが、互いに異なるストリーミングビットレートが要求される複数のアプリケーションを実行できる場合には、そのような管理が特に有利であることが分かった。本発明の発明者は、そうしたアプローチに鑑み、本発明を考案した。
【０００７】
本発明は、たとえば充電池ならびに／もしくは使捨て電池のために利用可能な電力が限られており、かつ／または機器内での電力損失が熱負荷の問題を引き起こしやすい、携帯型機器に特に適している。
【０００８】
本発明の第１の目的は、資源が限られたマルチアプリケーションのシステムと組み合わされた際に、低減された電力損失をもたらすことのできる、動的メモリバッファを提供することである。
【０００９】
本発明の第２の目的は、生じる電力損失を低減しようとしながら、その動的メモリバッファに課される要求に応じてサイズを動的に変更することができる、動的メモリバッファを提供することである。
【課題を解決するための手段】
【００１０】
本発明の第１の側面によれば、計算手段上で実行状態にある１つ以上のソフトウェアアプリケーションと、当該バッファを介して上記の１つ以上のアプリケーションと通信状態にある１つ以上のデータ生成および／または受信装置との間において、バッファリングを行うための動的メモリバッファであって、上記の１つ以上の装置内で生じる電力損失を低減するように、上記の１つ以上のアプリケーションに割り当てられる当該バッファの１つ以上の割当分の割当てを制御する、バッファ管理手段を含むことを特徴とする動的メモリバッファが提供される。
【００１１】
本発明は、上記の１つ以上の装置内で生じる電力損失の低減と、バッファのより効率的な使用の保障との、少なくとも一方を実現できる点で利点がある。
【００１２】
上記のバッファにおいては、管理手段が、上記の１つ以上のアプリケーションによって当該バッファに課せられるデータストリーミングレートの要求に応じて、当該バッファの上記の１つ以上の割当分の割当てを制御するように動作可能であることが好ましい。バッファ容量の割当ては、データのストリーミングが生じている際の電力損失の低減に特に関係する。
【００１３】
また、上記のバッファにおいては、管理手段が、上記の１つ以上の装置に対する許容可能な最大電力損失の限界値への接近に応じて、当該バッファの上記の１つ以上の割当分の割当てを制御するように動作可能であることが好ましい。最大電力の閾値に基づいてバッファの割当てを決定する形態は、管理手段がバッファを制御するための、より直接的な形態である。
【００１４】
さらに、上記のバッファにおいては、管理手段が、上記の１つ以上の装置内における所定割合が掛け合わされた電力損失に応じて、当該バッファの１つ以上の割当分の割当てを制御するように動作可能とされ、その所定割合が掛け合わされた電力損失が、実質的に制限のないバッファメモリ容量と関連付けられた１つ以上のアプリケーションについて生じる、対応の潜在的な漸近電力損失値に比例するものとされることが好ましい。さらに好ましくは、上記の所定割合が掛け合わされた電力損失は、対応の潜在的な漸近電力損失値の、１０５％から３００％の範囲内にある値とされる。最も好ましくは、上記の所定割合が掛け合わされた電力損失は、対応の潜在的な漸近電力損失値の、約１１０％とされる。
【００１５】
予測不可能かつ／または新規なタイプの要求が課された場合に対するバッファの適応性をより高めるためには、管理手段は、上記の１つ以上の装置内で損なわれている電力の尺度を導出し、その尺度を用いて当該バッファの１つ以上の割当分の割当てを制御することにより、上記の１つ以上の装置内で生じる電力損失を反復的に低減するように動作可能な、ニューラルネットワークとして実装される。
【００１６】
計算手段上で実行状態にある上記の１つ以上のソフトウェアアプリケーションと共に動作している際の、その計算手段、当該バッファ、および上記の１つ以上の装置は、資源が限られたマルチアプリケーションシステムに対応する。有利な形態では、かかるシステムは、プログラム素材の再生および／または記録を行うことのできるオーディオ装置およびビデオ装置の少なくとも一方にあたる。
【００１７】
好ましくは、たとえば実装のコストおよび複雑さを抑制するために、上記のバッファの管理手段は、上記の計算手段と上記の１つ以上の装置との少なくとも一方において実行可能な、ソフトウェア中に実装される。
【００１８】
また、上記のバッファにおいては、上記の１つ以上のアプリケーションからのデータレートの要求および／または上記の１つ以上の装置に対する予め決められた電力損失限界値に応じて、当該バッファの１つ以上の割当分を、上記の１つ以上のアプリケーションに割り当てるのに用いるため、管理手段内に、予め決められたデータアレイが含まれていることが好ましい。
【００１９】
さらに、上記のバッファにおいては、当該バッファの少なくとも一部が、ＥＳＰ（ｅｌｅｃｔｒｏｎｉｃ  ｓｈｏｃｋ  ｐｒｏｔｅｃｔｉｏｎ）バッファを含んでいることが好ましい。
【００２０】
また、データストリーミング動作時における上記の１つ以上の装置内での損失を減らすため、それら装置の少なくとも１つが、データをストリーミングする際に、ストップとスタートとの間で切り換えられるデューティーサイクルのモードで動作するように構成されることが好ましい。
【００２１】
本発明の第２の側面によれば、計算手段上で実行状態にある１つ以上のソフトウェアアプリケーションと、動的メモリバッファを介して上記の１つ以上のアプリケーションと通信状態にある１つ以上のデータ生成および／または受信装置との間において、バッファリングを行うためのその動的メモリバッファを制御する方法であって、上記の１つ以上の装置内で生じる電力損失を低減するように、上記の１つ以上のアプリケーションに割り当てられる上記のバッファの１つ以上の割当分の割当てを制御するバッファ管理手段を、そのバッファが含むようになす工程を含むことを特徴とする方法が提供される。
【００２２】
この方法は、本発明の上記の目的の少なくとも一方に対処することができる方法である。
【００２３】
上記の方法においては、管理手段が、上記の１つ以上のアプリケーションによってバッファに課せられるデータストリーミングレートの要求に応じて、バッファの上記の１つ以上の割当分の割当てを制御するように動作可能であることが好ましい。
【００２４】
また、上記の方法においては、管理手段が、上記の１つ以上の装置に対する許容可能な最大電力損失の限界値への接近に応じて、バッファの上記の１つ以上の割当分の割当てを制御するように動作可能であることが好ましい。
【００２５】
さらに、上記の方法においては、管理手段が、上記の１つ以上の装置内における所定割合が掛け合わされた電力損失に応じて、バッファの１つ以上の割当分の割当てを制御するように動作可能とされ、その所定割合が掛け合わされた電力損失が、実質的に制限のないバッファメモリ容量に対して上記の１つ以上のアプリケーションについて生じる、対応の潜在的な漸近電力損失値に比例するものとされることが好ましい。さらに好ましくは、上記の所定割合が掛け合わされた電力損失は、対応の潜在的な漸近電力損失値の、１０５％から３００％の範囲内にある値とされる。最も好ましくは、上記の所定割合が掛け合わされた電力損失は、対応の潜在的な漸近電力損失値の、約１１０％とされる。
【００２６】
また、上記の方法においては、管理手段が、上記の１つ以上の装置内で損なわれている電力の尺度を導出し、その尺度を用いてバッファの１つ以上の割当分の割当てを制御することにより、上記の１つ以上の装置内で生じる電力損失を反復的に低減するように動作可能な、ニューラルネットワークとして実装されることが好ましい。
【００２７】
さらに、上記の方法においては、計算手段上で実行状態にある上記の１つ以上のソフトウェアアプリケーションと共に動作している際の、その計算手段、バッファ、および上記の１つ以上の装置が、資源が限られたマルチアプリケーションシステムに対応することが好ましい。
【００２８】
好ましくは、たとえばコスト抑制および／または当該方法の適用の簡単化のために、管理手段は、上記の計算手段と上記の１つ以上の装置との少なくとも一方において実行可能な、ソフトウェア中に実装される。
【００２９】
また、上記の方法においては、上記の１つ以上のアプリケーションからのデータレートの要求および／または上記の１つ以上の装置に対する予め決められた電力損失限界値に応じて、バッファの１つ以上の割当分を、上記の１つ以上のアプリケーションに割り当てるのに用いるため、管理手段内に、予め決められたデータアレイが含まれていることが好ましい。
【００３０】
さらに、上記の方法においては、たとえば当該方法がオーディオＣＤプレーヤ等の携帯型機器に適用された場合の物理的な衝撃に対処するために、バッファの少なくとも一部が、ＥＳＰバッファを含んでいることが好ましい。
【００３１】
また、データストリーミング時における潜在的な損失を低減するため、上記の装置の少なくとも１つが、データをストリーミングする際に、ストップとスタートとの間で切り換えられるデューティーサイクルのモードで動作するように構成されることが好ましい。
【００３２】
本発明の各特徴的な構成は、本発明の範囲から逸脱することなく、任意の組合せが可能である点を理解されたい。
【発明を実施するための最良の形態】
【００３３】
以下、図面を参照しながら、本発明の実施形態を説明する。ただし、これらの実施形態は単なる例である。
【００３４】
本発明は、メモリ記憶装置の特定の動作の仕方に基づいている。図１には、全体として参照番号１０で示された記憶装置構成が図示されている。構成１０は、記憶装置（ＳＴＯＲＥ  ＤＥＶ．）２０と、メモリバッファ（ＢＵＦＦＥＲ）３０と、コンピュータのハードウェア（図示せず）上で実行状態にある個々のソフトウェアアプリケーションを１つ以上含む、ソフトウェアアプリケーション群（ＡＰＰＬＣ．）４０とを含んでいる。記憶装置２０は、第１のデータ接続５０を介して、メモリバッファ３０の第１のポートに接続されている。同様に、ソフトウェアアプリケーション群４０は、そのコンピュータのハードウェアと、第２のデータ接続６０とを介して、バッファ３０の第２のポートに接続されている。
【００３５】
変更例として、たとえばオフチップのＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）の場合のように、バッファ３０に単一の双方向性ポートを付与して、入力データと出力データとの双方を、インターリーブさせて取り扱うようにすることもできる。
【００３６】
動作中におけるバッファ３０を通るデータの流れは、一方向または双方向に生じ得る。バッファ３０は、好ましくは、オンチップの半導体ＳＲＡＭと、オフチップの半導体ＳＤＲＡＭ（Ｓｔａｔｉｃ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）との少なくとも一方により実装される。これに加えて、あるいはこれに代えて、ＤＲＡＭによりバッファ３０を実装することもできるし、たとえば磁気メモリといったその他の技術を用いることもできる。ソフトウェアアプリケーション群４０は、たとえば、オーディオ再生、ビデオ再生、オーディオ記録およびビデオ記録の、少なくとも１つを行うことができるものとされ得る。
【００３７】
本発明に特に適しているのは、記憶装置２０が、１つ以上の機械的記憶ドライブ（たとえば、１つ以上の磁気ハードディスクユニットおよび光ディスクユニット）として実装される場合である。そのようなドライブは、物理的媒体（たとえば磁化可能な磁気層内の磁区）に記憶されたデータにアクセス可能、および／またはかかる媒体にデータを書込可能な、特定の最大ビットレートＢＲｍａｘを有する。さらに、記憶装置のタイプが異なると、この最大ビットレートＢＲｍａｘも異なる。加えて、これらのドライブはそれぞれ、動作中に損失する対応の最小エネルギー閾値電力Ｐｍｉｎを有する。閾値電力Ｐｍｉｎはたとえば、１種類以上の機械的駆動および光学的励起を包含する。機械的駆動は、磁気または光ディスクを、対応の読出／書込ヘッドに対して回転させるための電気モーターを包含している。同様に、光学的励起は、固体レーザーに、安定した書込および／または読出用のレーザー動作を行わせるためのレーザー電流や、光検出器の増幅器バイアス電流を包含している。最小電力Ｐｍｉｎは、ドライブにより出力されるまたは受信され得るデータビットレートには、ほとんど依存しない。
【００３８】
一般に、かかるドライブを、より高いビットレートで機能するように変更すると、最小電力Ｐｍｉｎは増分させられる。この増分は、たとえば、実質的に以下の式１で表されるような増分となる。
【数１】
2007503042.tif 000003
ここで、Ｐｄｒｉｖｅは動作中のドライブにより消費される電力であり、Ｋ０は比例係数である。
【００３９】
いくつかの特定のタイプのドライブについては、ドライブにより消費される電力Ｐｄｒｉｖｅは、式１に示されているような線形関数ではなく、最大ビットレートＢＲｍａｘのより高次の関数となるかもしれない。さらに、いくつかの特定のタイプのドライブは、起動のため、対応の電力消費を伴ういくらかの初期時間を必要とする。たとえば、光ディスクドライブは、光ディスクからの安定したデータ取出しおよび／または光ディスクへの信頼性の高いデータ書込みに適した角速度まで、その光ディスクを加速するための時間を要する、電気モーターを含む。一定動作のため実質的に式１で表された動作を行う独自のドライブの例としては、固体青色レーザー技術に基づいた、フィリップス独自の「ポータブル・ブルー」ドライブが挙げられる。このドライブは、「ブルーレイ」光ドライブ構成の小型版であり、毎秒３０メガビット（３０Ｍｂｐｓ）の最大読出ビットレートを発揮することができる。かかる読出レートは、デコーダ等の多くの電子機器の処理能力よりも高速である。
【００４０】
上記のようなドライブの動作はまた、コンピュータのハードウェア上で実行状態にあり、かつ１つ以上の上記のようなドライブにアクセスするように動作可能な、図１中のアプリケーション群４０に対応する１つ以上のソフトウェアアプリケーションと併せて考えることができる。それらのアプリケーションが、ドライブ中のデータにランダムアクセスするためおよび／またはドライブにデータをランダムに書き込むために、１つ以上のドライブとやりとりを行う際（すなわち、構成１０の第１の動作モードの際）、その１つ以上のドライブは、絶対必要な程度を超えてアプリケーションを遅延させることがないよう、最大速度（すなわち最大ビットレートＢＲｍａｘ）で動作させられるのが有利である。そのような第１の動作モードでは、バッファ３０の導入は、構成１０内で生じる電力損失を低減させることができない。
【００４１】
これに対して、第２の動作モードでは、１つ以上のアプリケーションは、「ストリーミング」形式で、１つ以上のドライブへのアクセスを要求し得る。この「ストリーミング」形式では、１つ以上のドライブからのデータの読出しおよび／または１つ以上のドライブへのデータの書込みの平均レートは、最大ビットレートＢＲｍａｘよりも低い。本発明は、この第２の動作モードに特に関係する。これは、第２の動作モードにおいては、バッファ３０の導入が、構成１０内で生じる電力損失の低減を可能とするためである。
【００４２】
ドライブが「ストリーミング」形式で使用される実例は、最近のＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｄｉｓｃ）装置やＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）装置といった、オーディオビジュアル機器の内にある。オーディオ再生においては、平均の「ストリーミング」データレートとして、毎秒１２８から１４４０キロビット（ｋｂｐｓ）の範囲内にあるレートが生じる場合が多い。同様に、ビデオ再生では、平均の「ストリーミング」データレートとして、３８４ｋｂｐｓ以上のレートが生じることが多い。
【００４３】
本発明の発明者は、構成１０がストリーミング形式で動作させられる場合には、連続動作させられている記憶装置２０が、１つ以上のアプリケーションからの最大ビットレートを提供することを、バッファ３０の導入が防止すると理解した。換言すれば、バッファ３０を組み込むことにより、装置２０が、以下の式２で与えられるデューティーサイクルＤを有するスタート／ストップの反復動作で機能することが可能とされる。
【数２】
2007503042.tif 000004
ここで、ＴＯＮは、ストリーミング中において装置２０が最大ビットレートＢＲｍａｘで動作している際の、装置２０の平均の時間周期であり、ＴＯＦＦは、ストリーミング中において装置２０がパワーダウン状態で動作している際の、装置２０の平均の時間周期である。
【００４４】
したがって、バッファ３０がデータ受信および／または装置２０へのデータ出力を行うビットレートのピーク値はＢＲｍａｘであり、一方、装置２０へのデータ出力および／または装置２０からのデータ出力の平均レートＢＲａｖｒは、
【数３】
2007503042.tif 000005
で与えられる。ここで、各ＯＮ期間の最初の起動期間におけるエネルギー損失を無視すれば、平均電力消費量Ｐａｖｒは、
【数４】
2007503042.tif 000006
により近似計算することができる。なお、Ｐｏｆｆは、ＯＦＦ状態にある装置２０内で生じるスタンバイ電力損失である。
【００４５】
装置２０が、常に平均ビットレートＢＲａｖｒで動作し、常にこのレートでデータ付与および／またはデータ受信を行うように設計されていれば、式１より、等価な電力損失Ｐｅｑは、
【数５】
2007503042.tif 000007
より計算することができる。
【００４６】
上記の第２の動作モードに関して言えば、本発明は、スタート／ストップ動作モードに基づく、式４より得られる電力Ｐａｖｒに依存している。この電力Ｐａｖｒは、アプリケーション４０へおよび／またはアプリケーション４０からの、バッファ３０を通るデータのストリーミングの間において、常に平均ビットレートＢＲａｖｒで動作するように設計された装置２０に対する電力Ｐｅｑよりも小さい。換言すると、本発明は、Ｐａｖｒ＜Ｐｅｑということに依存している。
【００４７】
本発明はさらに、上記の式４が、各ＯＮ期間ＴＯＮの開始時における当初の電力損失Ｐｓｔａｒｔを無視した近似式であるという、発明者の理解に基づいている。装置内の平均電力使用量Ｐａｖｒをより精確に示す値は、
【数６】
2007503042.tif 000008
により与えられる。
【００４８】
式６は、図２に見られる電力曲線の形態を記述した式である。ここで、このグラフを参照番号１００で示す。グラフ１００は、バッファ３０のサイズを示す横軸１１０と、装置２０内で生じる電力損失を示す縦軸１２０とを含んでいる。装置２０内で生じる電力消費量と比較すれば副次的な影響のものであるが、バッファ３０の大きなサイズは、それに付随したより高い電力消費量を有するので、実際には、もう少し複雑なモデルが適している。電力曲線１３０は、装置２０からおよび／または装置２０への平均ビットレートＢａｖｒが毎秒５１２キロビットである場合に対応する。曲線１３０より、構成１０内の電力損失は、バッファ３０のサイズが２メガビット（Ｍｂ）未満に減ると急速に増大することが見て取れる。２Ｍｂｐｓより上では、電力消費量は、Ｐａｓで示す最小電力消費量に向かって漸近するように減少する。
【００４９】
構成１０中では、実用上の理由（たとえば、構成２０が安価な大量生産の民生品に対応するものである場合におけるコストの考慮）から、バッファ３０のサイズは有限でなくてはならない。一方、バッファ３０のサイズは、構成１０に与えられた電力予算に適合するように選択されることが有利である。かかるバッファサイズの選択については、後で図５を参照しながらより詳細に説明する。さらに一方で、本発明の発明者は、バッファサイズと、構成１０内において生じる電力損失との間の妥協点に到達する手法としては、いくつかの選択肢があることを理解した。かかる選択肢の例としては、たとえば以下が挙げられる。
（ａ）漸近値Ｐａｓに特定の割合を掛け合わせた値（たとえば値Ｐａｓの１．３倍）に、妥協点を選択設定することができる。
（ｂ）曲線１３０が値Ｐａｓに実質的に類似している点に、妥協点を選択設定することができる。
【００５０】
本発明の発明者はさらに、構成１０がマルチアプリケーション環境に対応する場合（すなわち、図１中のアプリケーション群４０が、同時に実行される複数のソフトウェアアプリケーションに対応し、それら複数のアプリケーションの各々が、バッファ３０を介して装置２０にアクセスしようとする場合）には、曲線１３０は過度に単純化されたモデルであると理解した。かかるマルチアプリケーション環境では、複数のアプリケーションが、互いに異なる平均ビットレートで装置２０にアクセスするように動作可能であるので、最適なバッファサイズの計算はさらに複雑となる。前述のとおり、バッファ３０自体がかなりのコストを要するものであり、バッファ３０をあまりに大きなサイズに構成することは不経済であるが、バッファ３０をあまりに小さく構成すると、構成１０内で複数のアプリケーションが実行される場合に、バッファ３０の飽和が生じる。
【００５１】
そのため、本発明の発明者は、１からｎの記号で示され、記憶装置へのアクセスに関し互いに異なるビットレート要求と関連付けられている、複数のソフトウェアアプリケーション（１からｎで示す）を実行する構成は、最適バッファサイズ（たとえばＢ１、Ｂ２、・・・Ｂｎ）を有する仲介バッファを付与され、記憶装置の電力損失へのそれらの対応する寄与分Ｐ１、Ｐ２、・・・Ｐｎは、それらのアプリケーションの要求に応えるのに必要な全体のバッファサイズという観点、および記憶装置２０内の電力損失を最適化するという観点から、それぞれ個別に計算することができることを理解した。本発明の内容をさらに明らかにするため、以下、図３について説明する。
【００５２】
図３には、図１に示した構成１０と同様の、装置２０と、バッファ３０と、アプリケーション群４０とを含む構成が示されている。この構成２００は、装置２０と、バッファ３０と、アプリケーション群４０が実行されるコンピュータハードウェアとに接続された、バッファ管理ユニット２１０をさらに含んでいる。ユニット２１０は、装置２０内で生じる電力損失の低減を試みるよう、アプリケーション群４０をなす各アプリケーションに割り当てられるバッファ３０の領域サイズを管理するように動作可能である。
【００５３】
ユニット２１０は、アプリケーション群４０をなす各アプリケーションに必要なバッファ３０のサイズを動的に計算し、アプリケーションと装置２０との間のストリーミングデータの通信開始に先立って、かかる通信用にバッファの割当分を割り当てるように動作可能とされている。したがって、ストリーミングのためにアプリケーション群４０をなす各アプリケーションに割り当てられたバッファ３０の割当分は、そのアプリケーションのデータレートが一定という前提のもとでは好ましくは不変のままである。たとえばアプリケーション自身の要求等によって、アプリケーションのデータレートが変更された場合には、ユニット２１０は、好ましくは、バッファ３０の適切な割当分を再計算し、この割当分をそのアプリケーションに再割当てするように動作可能とされる。バッファ３０の適切な割当てを決定するため、ユニット２１０は、（ａ）アプリケーションのビットレートと、（ｂ）装置２０の所望の電力損失とを、主パラメータとして用いている。
【００５４】
本発明によれば、これらの主パラメータを用いることによって、所望のデータストリーミングの目的に合わせてバッファ３０のサイズをよりよく最適化する、バッファ３０の動的な管理のための解決策を提供することが容易となる。そのような動的な管理は、装置２０から読み出されるデータと、装置２０に書き込まれるデータとの両方に関係する。さらに、多くの記憶装置は、装置２０からのデータの読出レート、および装置２０へのデータの書込レートとして、互いに異なるレートを示す点を理解されたい。装置２０内におけるそのような読出／書込速度の違いは、動作中の装置２０内において、互いに異なる電力損失が生じるという結果を招きやすい。
【００５５】
以下、管理ユニット２１０の動作をさらに明らかにするため、図４を説明する。
【００５６】
図４には、全体が参照番号３００で示されたグラフが示されている。このグラフ３００は、バッファ３０のメモリ容量を表す横軸３１０と、装置２０内で生じる電力損失を示す縦軸３２０とを含んでいる。グラフ３００は、バッファ３０のサイズと、それに付随する装置２０内における電力損失との関係を、バッファを通る平均データストリーミングレート（ＵＤＲ）のいくつかの互いに異なる値（具体的には、毎秒１２８キロビット（ｋｂｐｓ）、５１２ｋｂｐｓ、毎秒１メガビット（Ｍｂｐｓ）、および１．４４Ｍｂｐｓ）に対して示している。
【００５７】
図４からは、グラフの各曲線が、概して、バッファサイズが増大するにつれて減少する漸近的な形状を有することが見て取れる。各曲線には、それに付随する漸近値がある。たとえば、１２８ｋｂｐｓのデータレートに対する曲線は、１０ｍＷのオーダーの漸近値Ｐａｓを有する。さらに、例示的な電力限界値Ｐａｓｌ（具体的には１６ｍＷ）を実現するためには、バッファ３０の、Ｂａビット（具体的には、たとえば１．３メガビット）の容量を有する割当分を提供する必要がある。この例では、電力限界値Ｐａｓｌは、漸近値Ｐａｓに、ある割合を掛け合わせた値（たとえば、Ｐａｓｌ＝１．６×Ｐａｓ）として表される。掛け合わせる割合としては、後でより詳しく説明するように、他の例示的な割合も可能である。
【００５８】
構成２００内においては、コンピュータハードウェアは、バッファ３０の対応割当分を必要とする、「ｎ」個のソフトウェアアプリケーションを同時に実行する。これらバッファ３０の対応割当分は、Ｂ１からＢｎのサイズを有する。「ｎ」個のアプリケーションそれぞれについてのバッファ３０の使用は、装置２０内において、対応の電力損失Ｐ１からＰｎをもたらす。構成２００の単純なモデルにおいては、個々の電力損失Ｐ１からＰｎの総和は、構成２００内において生じる電力損失の合計値Ｐｓｕｍのごく近似的な指標を、以下の式７のように与える。
【数７】
2007503042.tif 000009
【００５９】
しかしながら、実際には、同時に実行状態にある複数のアプリケーションについての、装置２０内で生じる損失の合計値の計算は、式７に表した計算よりもずっと複雑なものである。
【００６０】
そのため、管理ユニット２１０には、構成２００のある電力モデルが与えられる。このモデルは、アプリケーションのデータレートＲの要求に応えるのに必要なバッファ３０の最適な割当分（具体的にはＢｏｐｔ）を計算するために、ユニット２１０により必要とされる。この電力モデルは、好ましくは、データレートＲを入力パラメータとして受け取るように構成されて、管理ユニット２１０で実行されるソフトウェア内に埋め込まれた、数学的な関数の形態で実装される。これに代えて、またはこれに加えて、電力モデルを、構成２００の当初の設計時に準備された、予め計算された表として実装することもできる。かかる表は、好ましくは、レートＲの特定の値に対応する最適バッファサイズＢｏｐｔの、複数の値を含むものとされる。これらの複数個の値は、好適な離散値、および／または範囲を有する値とされ得る。さらに好ましくは、上記のような電力モデルは、装置２０自体の中に存在していてもよいし、かつ／またはアプリケーション群４０が実行されるコンピュータハードウェア内に存在していてもよい。有利な形態では、管理ユニット２１０は、上記のコンピュータハードウェア上で実行される、別の特別なソフトウェアアプリケーションとして提供されることも可能である。
【００６１】
装置２０上におけるデータレートの要求と特性とが予め分かっていないソフトウェアアプリケーションを実行するように構成された構成２００では、様々なデータレートの要求Ｒに対する装置２０内における合計の電力損失をモニタリングし、電力損失を低減するようにバッファ容量の割当てを反復的に行う人工知能のニューラルネットワークとして、管理ユニット２１０を実装することも可能である。好ましくは、そのようなニューラルネットワークは、ソフトウェア内に実装され、全体の電力損失を低減するため最適なバッファ割当てを反復する際に使用するのに、ほぼ適切なバッファサイズを与えられる。
【００６２】
アプリケーションの特定のデータレートに対する最適なバッファサイズＢｏｐｔの計算は、装置２０を動作させるのに採用されているファイルシステムと緊密に実行を行う、ソフトウェアによる決定プロセス中に実装されてもよい。そのような構成では、好ましくは、上記のコンピュータハードウェア上で実行されているアプリケーション群４０のうちの１つ以上のソフトウェアアプリケーションは、装置２０へのアクセスがストリーミング条件のアクセスであるか否かを示す情報を、上記の決定プロセスへと送り、アプリケーション群４０内の付随するアプリケーションが装置２０にアクセスする際に望ましい１つ以上のデータレートを、宣言するように動作可能とされる。決定プロセスは、上記の電力モデルを用いて最適なバッファサイズＢｏｐｔを計算し、バッファ３０の適切な割当分を割り当てる。好ましくは、１つ以上のソフトウェアアプリケーションと、装置２０との双方が、バッファ３０の割り当てられた割当分に対応するバッファメモリのアドレスに関する情報を受け取る。
【００６３】
ここで、１つの問題は、上記の決定プロセスがどのように機能するかである。装置２０内で生じる電力損失の最適化という問題は、いくつかの手法で解決することができる。有利な形態では、この決定プロセスにより行われる電力計算は、データレートＲが変化させられない静的な状態と同一のものとされる。しかしながら、本発明の発明者は、とりわけ好ましいと思われる２つのアプローチ、具体的には、電力予算の観点からの第１のアプローチ、および互いに独立した割当てを行う第２のアプローチを特定した。以下、図５および６を参照して、これら２つのプロセスを、それぞれさらに詳しく説明する。
【００６４】
図５を参照すると、全体が参照番号４００で示されたグラフが示されている。このグラフ４００は、バッファ３０の割当サイズに対応する横軸４１０を含んでいる。グラフ４００はさらに、構成２００の装置２０内において生じる電力損失に対応する縦軸４２０を含んでいる。毎秒１２８キロビット（ｋｂｐｓ）、５１２ｋｂｐｓ、毎秒１メガビット（Ｍｂｐｓ）、および１．４４Ｍｂｐｓのストリーミングデータレートに対応する、各電力損失曲線が示されている。グラフ４００には、Ｐｍａｘで表された電力限界値と、１２８ｋｂｐｓ、５１２ｋｂｐｓおよび１．４４Ｍｂｐｓのデータレートにおいてこの電力限界値Ｐｍａｘに到達するのに必要な、対応のバッファサイズＢ１、Ｂ２、Ｂｎとが示されている。
【００６５】
第１のアプローチでは、損失されてもよいが超えてはならない好適な大きさの電力予算Ｐｍａｘが割り当てられる。その後、グラフ４００に従って、実行されているアプリケーション群４０をなすアプリケーションに対して、対応の最適バッファサイズＢ１、Ｂ２、Ｂｎが計算される。
【００６６】
図６を参照すると、全体が参照番号５００で示されたグラフが示されている。図５と同様に、この図６のグラフ５００も、バッファ３０の割当サイズに対応する横軸５１０を含んでいる。グラフ５００はさらに、構成２００の装置２０内において生じる電力損失に対応する縦軸５２０を含んでいる。毎秒１２８キロビット（ｋｂｐｓ）、５１２ｋｂｐｓ、毎秒１メガビット（Ｍｂｐｓ）、および１．４４Ｍｂｐｓのストリーミングデータレートに対応する、各電力損失曲線が示されている。
【００６７】
グラフ５００の各曲線は、バッファ３０のサイズが非常に大きくされた際の対応の電力損失について、漸近値を有している。かかる漸近値を、たとえば１２８ｋｂｐｓ、５１２ｋｂｐｓおよび１．４４Ｍｂｐｓのデータレートに対して、それぞれＰａｓ１、Ｐａｓ２、・・・Ｐａｓｎと表すこととする。第２のアプローチは、対応のバッファサイズＢ１、Ｂ２、・・・Ｂｎを、上記の漸近値に所定割合を掛け合わせた値Ｐａｓｌ１、Ｐａｓｌ２およびＰａｓｌｎとして選択する工程を含み、これらの所定割合を掛け合わせた値は、図示されているように、２００％Ｐａｓ１、１３０％Ｐａｓ２および１３０％Ｐａｓｎに、それぞれほぼ等しい。しかしながら、たとえば１０５％から３００％の範囲内にあるような、他の割合を選択してもよい点を理解されたい。さらに図示されているように、必要であれば、異なるデータレートＲに対しては、上記の割合を互いに異なる割合としてもよい。
【００６８】
上記の例では、最適なバッファサイズの選択は、ＥＳＰバッファを含まない構成２００に基づいていた。しかしながら、ＥＳＰバッファが含まれる場合にも、本発明に関し上記で説明したのと同様にして、ＥＳＰバッファの各割当分をソフトウェアアプリケーションに割り当てることができる。そのようなＥＳＰバッファによって与えられる衝撃防止の所与の持続時間に対し、割り当てられるＥＳＰバッファのサイズは、処理されているデータレートＲの関数とすることができる。
【００６９】
上記において説明した本発明の実施形態は、本発明の範囲から逸脱することなく変更が可能である点を理解されたい。
【００７０】
また、上記においては、「含む」、「備える」、「包含する」、「有する」、「〜である」等の表現を用いたが、これらの表現は本発明を分かりやすく説明する目的のものであって、非限定的に捉えられるべきであり、とりわけ１つまたは複数の追加の項目が存在する可能性を許容すべき表現である。単数への言及は、複数への言及も含むものと捉えられるべきであり、逆に、複数への言及は、単数への言及も含むものと捉えられるべきである。
【図面の簡単な説明】
【００７１】
【図１】たとえば磁気および／または光ディスクドライブといった機械的装置と、コンピュータのハードウェア上で実行状態にあるソフトウェアアプリケーションとの間に配されたメモリバッファを含む構成の模式図
【図２】バッファを通る送信の平均のストリーミングデータレートが毎秒５１２キロビット（５１２ｋｂｐｓ）である場合について、メモリバッファ内で生じる電力損失を、バッファサイズの関数として示した第１のグラフ
【図３】電力効率のよいバッファの使用を制御するためのバッファ管理ユニットを追加的に含む、図１の構成の模式図
【図４】バッファを通る送信の、毎秒１２８キロビット（１２８ｋｂｐｓ）から毎秒１．４４メガビット（１．４４Ｍｂｐｓ）の範囲内にある様々な平均送信データレートについて、図３のメモリバッファ内における電力損失の変化を、バッファサイズの関数として示した第２のグラフ
【図５】図３のメモリバッファ内における電力損失を、バッファサイズの関数として示した第３のグラフであって、様々な平均送信データレートについて、バッファ内で所与の電力損失を実現するのに必要な最小バッファサイズに対応するマークを含む第３のグラフ
【図６】図３のメモリバッファ内における電力損失を、バッファサイズの関数として示した第４のグラフであって、ある範囲内の様々な平均送信データレートについて、所定割合が掛け合わされた最小漸近電力損失値に対応するマークと、それに対応するバッファサイズとを含む第４のグラフ
【図１】
2007503042.tif 000010
【図２】
2007503042.tif 000011
【図３】
2007503042.tif 000012
【図４】
2007503042.tif 000013
【図５】
2007503042.tif 000014
【図６】
2007503042.tif 000015
【国際調査報告】
2007503042.tif 000016
2007503042.tif 000017
2007503042.tif 000018