(57)【要約】【課題】  データをメモリに格納するときのエネルギー削減の方法を提供する【解決手段】  メモリ・デバイスを操作する方法を開示する。この方法は、メモリ・デバイス内のある位置における第１のデータ単位を第２のデータ単位で上書きする前に、第２のデータ単位を書き込むことが、反転されたビットを有する少なくとも１つのサブ単位を有する第２のデータ単位を書き込むことより多くのエネルギーを必要とするかどうかを判断することを含む。反転されたビットを有する少なくとも１つのサブ単位を有する第２のデータ単位を書き込むことがより少ないエネルギーを必要とすると判断された場合に、本方法は、第１のデータ単位を、反転されたビットを有する少なくとも１つのサブ単位を有する変更された第２のデータ単位で上書きすると共に、変更されたデータ単位内の、反転されたビットを有するデータのサブ単位の位置を示す少なくとも１つのビット・メモリを書き込むことをさらに含む。【選択図】      図２
2010536080.tif 000002
【特許請求の範囲】
【請求項１】
メモリ・デバイスを操作する方法であって、
メモリ・デバイス内のある位置における第１のデータ単位を第２のデータ単位で上書きする前に、前記第２のデータ単位を書き込むことが、反転されたビットを有する少なくとも１つのサブ単位を有する前記第２のデータ単位を書き込むことより多くのエネルギーを必要とするかどうかを判断することと、
前記反転されたビットを有する少なくとも１つのサブ単位を有する前記第２のデータ単位を書き込むことがより少ないエネルギーを必要とすると判断された場合、前記第１のデータ単位を、前記反転されたビットを有する少なくとも１つのサブ単位を有する変更された第２のデータ単位で上書きすると共に、前記変更されたデータ単位内の、前記反転されたビットを有するデータの前記サブ単位の位置を示す少なくとも１つのビットを書き込むことと
を含む方法。
【請求項２】
より多くのエネルギーを必要とするかどうかを前記判断するステップは、
あるメモリ位置に格納された現行データを読み取るステップと、
書き込まれる入力データを前記現行データと比較し、前記現行データと前記入力データの間の排他的ＯＲを実施して該排他的ＯＲの結果における「１」の数の和を取り、前記入力データで前記現行データを上書きした場合に生じるビット遷移の数を表す和ｓｕｍ１を取得することにより、前記入力データで前記現行データを上書きする場合に生じるビット遷移の数を算出するステップと、
ｓｕｍ１を所定の閾値と比較し、ｓｕｍ１が該閾値に等しいか又はそれを超える場合、前記入力データの全て又は一部分をネゲートし、現行データとの排他的ＯＲを実施して第２のｓｕｍ２を算出するステップと
を含み、
前記ネゲートされた入力データのｓｕｍ２＋１の値がｓｕｍ１より小さい場合、前記ネゲートされた入力データが前記メモリ位置に書き込まれる場合に前記ビット遷移の数が減少することになる、
請求項１に記載の方法。
【請求項３】
後に、前記変更されたデータ単位及び前記少なくとも１つのビットを読み取り、反転されたビットを有することを示された任意のサブ単位のビットを反転させて出力データを供給することをさらに含む、請求項１又は請求項２に記載の方法。
【請求項４】
前記データ単位は、Ｎを整数としてＮ個のビットを含み、前記サブ単位は１乃至Ｎ個のビットを含む、請求項１に記載の方法。
【請求項５】
前記少なくとも１つのビットは、ある値を示すためのグループとして符号化される複数のビットを含む、請求項１に記載の方法。
【請求項６】
前記少なくとも１つのビットは複数のビットを含み、前記複数のビットの個々の１つは複数のサブ単位の対応する個々の１つを指定する、請求項１に記載の方法。
【請求項７】
前記メモリ・デバイスは半導体ベースのメモリ・デバイスである、請求項１に記載の方法。
【請求項８】
前記メモリ・デバイスはディスク・ベース又はテープ・ベースのメモリ・デバイスである、請求項１に記載の方法。
【請求項９】
前記メモリ・デバイスはデータ・レジスタである、請求項１に記載の方法。
【請求項１０】
前記少なくとも１つのビットは、前記変更されたデータ単位が書き込まれるのと同じメモリ・デバイスに書き込まれる、請求項１に記載の方法。
【請求項１１】
前記少なくとも１つのビットは、前記変更されたデータ単位が書き込まれるメモリ・デバイスとは異なるメモリ・デバイスに書き込まれる、請求項１に記載の方法。
【請求項１２】
前記第２のデータ単位を前記メモリ・デバイスに書き込む前にバッファリングすることと、前記第２のデータ単位を、続いて前記バッファに格納される第３のデータ単位と比較して前記第２のデータ単位又は前記第３のデータ単位を前記メモリ・デバイスに書き込むかどうかを判断することとをさらに含む、請求項１に記載の方法。
【請求項１３】
メモリ・デバイスを操作するための装置であって、
メモリ・デバイス内のある位置における第１のデータ単位を第２のデータ単位で上書きする前に、前記第２のデータ単位を書き込むことが、反転されたビットを有する少なくとも１つのサブ単位を有する前記第２のデータ単位を書き込むことがより少ないエネルギーを必要とするかどうかを判断するように構成されたメモリ制御ユニットを備え、
前記メモリ制御ユニットは、前記反転されたビットを有する前記少なくとも１つのサブ単位を有する前記第２のデータ単位を書き込むことがより少ないエネルギーを必要とするとの判断に応じて、前記反転されたビットを有する前記少なくとも１つのサブ単位を有する変更された第２のデータ単位を、前記変更されたデータ単位内の、前記反転されたビットを有するデータの前記サブ単位の位置を示す少なくとも１つのビットを含む標識フィールドと共に、前記メモリ・デバイスに送るようにさらに構成される、
装置。
【請求項１４】
前記メモリ制御ユニットは、前記変更されたデータ単位及び前記対応する標識フィールドを読み取ることに応じて、反転されたビットを有するように示された任意のサブ単位のビットを反転させた後に出力データを供給するようにさらに構成される、請求項１３に記載の装置。
【請求項１５】
前記データ単位は、Ｎを整数としてＮ個のビットを含み、前記サブ単位は１乃至Ｎ個のビットを含む、請求項１３に記載の装置。
【請求項１６】
前記標識フィールドは、ある値を示すためにグループとして符号化される複数のビットを含む、請求項１３に記載の装置。
【請求項１７】
前記標識フィールドは複数のビットを含み、前記複数のビットの個々の１つは複数のサブ単位の対応する個々の１つを指定する、請求項１３に記載の装置
【請求項１８】
前記メモリ・デバイスは半導体ベースのメモリ・デバイスである、請求項１３に記載の装置。
【請求項１９】
前記メモリ・デバイスはディスク・ベース又はテープ・ベースのメモリ・デバイスである、請求項１３に記載の装置。
【請求項２０】
前記メモリ・デバイスはデータ・レジスタである、請求項１３に記載の装置。
【請求項２１】
前記標識フィールドは、前記変更されたデータ単位が書き込まれるのと同じメモリ・デバイスに書き込まれる、請求項１３に記載の装置。
【請求項２２】
前記標識フィールドは、前記変更されたデータ単位が書き込まれるメモリ・デバイスとは異なるメモリ・デバイスに書き込まれる、請求項１３に記載の装置。
【請求項２３】
集積回路に組み込まれる、請求項１３に記載の装置。
【請求項２４】
データ・プロセッサ及び前記メモリ・デバイスを有する集積回路に組み込まれる、請求項１３に記載の装置。
【請求項２５】
前記メモリ・デバイスは前記データ・プロセッサの部分を含む、請求項２４に記載の装置。
【請求項２６】
前記第２のデータ単位を前記メモリ・デバイスに書き込む前に、それを待ち行列に入れるためのバッファをさらに備え、
前記メモリ制御ユニットは、前記第２のデータ単位、又は前記第２のデータ単位が前記バッファに格納された後で前記バッファに格納される第３のデータ単位を前記メモリ・デバイスに書き込むのにどちらがより小さなエネルギーを必要とするかを判断するようにさらに構成される、
請求項１３に記載の装置。
【請求項２７】
コンピュータ・プログラム命令を格納するメモリ媒体であって、前記命令の実行は、
メモリ・デバイス内のある位置における第１のデータ単位を第２のデータ単位で上書きする前に、前記第２のデータ単位を書き込むことが、反転されたビットを有する少なくとも１つのサブ単位を有する前記第２のデータ単位を書き込むことより多くのエネルギーを必要とするかどうかを判断することと、
前記反転されたビットを有する少なくとも１つのサブ単位を有する前記第２のデータ単位を書き込むことがより少ないエネルギーを必要とすると判断された場合、前記第１のデータ単位を、前記反転されたビットを有する少なくとも１つのサブ単位を有する変更された第２のデータ単位で上書きすると共に、前記変更されたデータ単位内の、前記反転されたビットを有するデータの前記サブ単位の位置を示す少なくとも１つのビット・メモリを書き込むことと
を含む動作を生じる、
メモリ媒体。
【請求項２８】
後に、前記変更されたデータ単位及び前記少なくとも１つのビットを読み取ることに応じて、反転されたビットを有するように示された任意のサブ単位のビットを反転させて出力データを供給する動作をさらに含む、請求項２７に記載のメモリ媒体。
【請求項２９】
前記データ単位は、Ｎを整数としてＮ個のビットを含み、前記サブ単位は１乃至Ｎ個のビットを含む、請求項２７に記載のメモリ媒体。
【請求項３０】
前記少なくとも１つのビットは、ある値を示すためのグループとして符号化される複数のビットを含む、請求項２７に記載のメモリ媒体。
【請求項３１】
前記少なくとも１つのビットは複数のビットを含み、前記複数のビットの個々の１つは複数のサブ単位の対応する個々の１つを指定する、請求項２７に記載のメモリ媒体。
【請求項３２】
前記メモリ・デバイスは半導体ベースのメモリ・デバイスである、請求項２７に記載のメモリ媒体。
【請求項３３】
前記メモリ・デバイスはディスク・ベース又はテープ・ベースのメモリ・デバイスである、請求項２７に記載のメモリ媒体。
【請求項３４】
前記メモリ・デバイスはデータ・レジスタである、請求項２７に記載のメモリ媒体。
【請求項３５】
前記少なくとも１つのビットは、前記変更されたデータ単位が書き込まれるのと同じメモリ・デバイスに書き込まれる、請求項２７に記載のメモリ媒体。
【請求項３６】
前記少なくとも１つのビットは、前記変更されたデータ単位が書き込まれるメモリ・デバイスとは異なるメモリ・デバイスに書き込まれる、請求項２７に記載のメモリ媒体。
【請求項３７】
前記第２のデータ単位を前記メモリ・デバイスに書き込む前にバッファリングすることと、前記第２のデータ単位を続いて前記バッファに格納される第３のデータ単位と比較して前記第２のデータ単位又は前記第３のデータ単位のいずれを前記メモリ・デバイスに書き込むか判断することとの動作をさらに含む、請求項２７に記載のメモリ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の例示的な実施形態は一般にデータの格納及び引出しに関し、より具体的には、コンピュータ可読媒体にデータを格納するためのエネルギー効率が良い方法に関する。
【背景技術】
【０００２】
特許文献１においてSakata他は、ＭＴＪ素子の磁化を反転するのに必要な電流を、データ・ラインを通過させる必要があるために大電流を消費する、ＭＲＡＭの書込み操作を開示している。この書込み操作は、入力データをメモリセル配列から読み取られた読取りデータと比較すること、及びデータ・エンコーダを用いて入力データを符号化して書込みデータを形成することを含む。また、データ・デコーダを用いて読取りデータを復号して出力データを形成することが開示されている。不揮発半導体メモリにおいては、書込み操作中に書き込まれるビット数が減少し、電流消費もまた減少すると言われる。
【０００３】
特許文献２においてCohenは、コンピュータ・システム内でダイナミック・ランダム・アクセス・メモリをリフレッシュするのに必要な電力を削減する方法及び装置を開示している。一実施形態において、ＤＲＡＭに格納されるデータは一度に一ワードずつ評価される。８ビットのデータ・ワード毎に、１の数が４より多い場合、データ・ワードの各ビットは反転され、データ反転標識ビットが論理１に設定され、データが反転されたことを示す。これは、最少数の１を用いてデータが正確に格納されることを可能にする。ＤＲＡＭに格納されたデータのリフレッシュに必要な電力のため、最少数の１の格納は電力消費を減らす。データの読取りにより、そのデータが格納に際して反転されたかどうかが判断され、そうである場合には読み取られたデータはもとの形に戻される。
【０００４】
特許文献３においてNormanは、ビットのＸビット・パケット（Ｘは整数）を符号化し、符号化されたビットのＸビット・パケットを生成し、フラッシュ・メモリ・アレイの消去済セルに書き込む方法及び装置開示し、この場合、第１の値を有するビットを消去済セルに書き込むことの方が、第２の値を有するビットをセルに書き込むことより消費電力が少ない。未処理ビットの各パケットに対して第１（又は第２）の値を有するパケットのビット数を示すカウント信号が生成され、このカウント信号が処理されてパケットの符号化を決定する制御信号が生成され、パケットの未処理ビットは制御信号により決定されるスキームに従って符号化される。各々の消去済セルはバイナリ値「１」を示すことができ、カウント信号は参照値（Ｘ／２を示す）と比較されて、パケットを転極させるべきかどうかを決定する制御信号を生成し、パケットは制御信号の値に応じて反転される（又は反転されない）。カウント信号は、あるアレイの消去済セルに書き込まれるビットの各パケットに対して生成することができ（ここでカウント信号はパケット内の特定の値を有するビットの数を示す）、各パケットは対応するカウント信号により決定される様式で符号化され
、符号化ビットを消去済セル内に書き込むのに必要な電力が削減される。各パケットの符号化を示すフラッグ・ビットが生成され、このフラッグ・ビット（及び符号化されたパケット）をフラッシュ・メモリ・アレイのセルに格納することができる。
【０００５】
メモリ電力消費を制御するための他の技法は、非特許文献１乃至非特許文献３に開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許出願公開第２００４／００４２２９２Ａ１号明細書
【特許文献２】米国特許第６，６３３，９５１号明細書
【特許文献３】米国特許第５，８７３，１１２号明細書
【非特許文献】
【０００７】
【非特許文献１】IBM Technical Disclosure Bulletin, Vol.30, No. 1, June 1987,“PowerReduction Scheme with Data-Dependent Write”,pgs. 304-305。
【非特許文献２】IBM Technical Disclosure Bulletin, 11-89, “Reduced Power for HighPerformance Memory”,pgs. 415-416。
【非特許文献３】Marcello Duhalde他、IEEE publication,“A HighPerformance Modular Embedded ROM Architecture”(1995), pgs. 1057-1060。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
現在利用可能な及び将来のデータ記憶装置及びシステムにおける電力消費並びに電力消費の結果として生成される熱負荷をさらに削減するために、これらの従来技術に対する改善が必要である。
【課題を解決するための手段】
【０００９】
本発明の例示的な実施形態により、前述及び他の問題が克服され、そして他の利点が実現される。
【００１０】
本発明の例示的な実施形態の第１の態様において、メモリ・デバイスを操作する方法が提供される。本方法は、メモリ・デバイスのある位置における第１のデータ単位を第２のデータ単位で上書きする前に、第２のデータ単位を書き込むことが、反転されたビットを有する少なくとも１つのサブ単位を有する第２のデータ単位を書き込むことよりも多くのエネルギーを必要とするかどうかを判断することを含む。反転されたビットを有する少なくとも１つのサブ単位を有する第２のデータ単位を書き込むことの方がより少ないエネルギーを必要とすると判断された場合、本方法は、第１のデータ単位を、反転されたビットを有する少なくとも１つのサブ単位を有する変更された第２のデータ単位で上書きすると共に、変更されたデータ単位内の反転されたビットを有するデータのサブ単位の位置を示すための少なくとも１つのビットを書き込むことをさらに含む。
【００１１】
本発明の例示的な実施形態のさらに別の態様において、メモリ・デバイスを操作するための装置が提供され、この装置は、メモリ・デバイス内のある位置における第１のデータ単位を第２のデータ単位で上書きする前に、第２のデータ単位を書き込むことが、反転されたビットを有する少なくとも１つのサブ単位を有する第２のデータ単位を書き込むことよりも少ないエネルギーを必要とするかどうかを判断するように構成されたメモリ制御ユニットを含む。このメモリ制御ユニットは、反転されたビットを有する少なくとも１つのサブ単位を有する第２のデータ単位を書き込むことの方がより少ないエネルギーを必要とするとの判断に応じて、反転されたビットを有する少なくとも１つのサブ単位を有する変更された第２のデータ単位を、変更されたデータ単位内の反転されたビットを有するデータのサブ単位の位置を示す少なくとも１つのビットを含む標識フィールドと共に、メモリ・デバイスに送るようにさらに構成される。
【００１２】
本発明の例示的な実施形態の別の態様において、実行されると下記の操作を生じるコンピュータ・プログラム命令を格納するコンピュータ可読メモリ媒体を提供し、その操作は、メモリ・デバイスのある位置における第１のデータ単位を第２のデータ単位で上書きする前に、第２のデータ単位を書き込むことが、反転されたビットを有する少なくとも１つのサブ単位を有する第２のデータ単位を書き込むことよりも多くのエネルギーを必要とするかどうかを判断することと、反転されたビットを有する少なくとも１つのサブ単位を有する第２のデータ単位を書き込むことの方がより少ないエネルギーを必要とすると判断された場合に、第１のデータ単位を、反転されたビットを有する少なくとも１つのサブ単位を有する変更された第２のデータ単位で上書きすると共に、変更されたデータ単位内の反転されたビットを有するデータのサブ単位の位置を示すための少なくとも１つのビット・メモリを書き込むことを含む。
【００１３】
本発明の例示的な実施形態のさらに別の態様において、メモリ制御ユニットを操作する方法を提供する。この方法は、あるメモリ位置に格納された現行データを読み取ることと、書き込まれる入力データを現行データと比較し、現行データと入力データの間の排他的ＯＲを実施して排他的ＯＲの結果中の「１」の数を加え合せ、入力データで現行データを上書きした場合に生じるビット遷移の数を表す和ｓｕｍ１を取得することにより、新データで現行データを上書きする場合に生じるビット遷移の数を算出することと、ｓｕｍ１を所定の閾値と比較して、ｓｕｍ１が閾値に等しいか又はそれを超える場合に入力データの全て又は部分をネゲートし、現行データとの排他的ＯＲを実行して第２のｓｕｍ２を算出することとを含み、ここでネゲートされた入力データのｓｕｍ２＋１の値がｓｕｍ１より小さい場合には、ネゲートされた入力データがメモリ位置に書き込まれた場合にビット遷移の数が減少することになり、本方法はさらに、対応する標識フィールド内の少なくとも１つの標識ビットを、メモリ位置に入力データが格納されたかどうか又は入力データの全て又は部分のネゲートされた形が格納されたかどうかを示すように設定することを含む。
【００１４】
本発明の例示的な実施形態の別の態様において、電力アドバイザを操作する方法を提供する。この方法は、第１の命令セットを読み取ることと、データ・バスを読み取ることと、少なくとも１つのデータ・レジスタに格納されたレジスタ値を読み取ることとを含む。この情報はエネルギー使用目的に関して分析される。ある命令セットがより低いエネルギー使用のセットと同じ結果をもたらし得る場合、第１の命令セットは、そのより低い電力使用の命令セットで置き換えられる。
【００１５】
本発明の例示的な実施形態のさらに別の態様において、命令レジスタ、データ・バス、及び少なくとも１つのデータ・レジスタに結合された装置を提供する。この装置は、第１の命令セットを読み取り、データ・バスを読み取り、そしてデータ・レジスタに格納されたレジスタ値を読み取る。本装置はこの情報をエネルギー使用目的に関して分析する。ある命令セットがより低いエネルギー使用のセットと同じ結果をもたらし得る場合、第１の命令セットは、そのより低い電力使用の命令セットで置き換えられる
【００１６】
本発明の例示的な実施形態の別の態様において、実行されると下記の操作を生じるコンピュータ・プログラム命令を格納するコンピュータ可読メモリ媒体を提供し、その操作は、第１の命令セットを読み取ることと、データ・バスを読み取ることと、少なくとも１つのデータ・レジスタに格納されたレジスタ値を読み取ることとを含む。この情報はエネルギー使用目的に関して分析される。ある命令セットがより低いエネルギー使用のセットと同じ結果をもたらし得る場合、第１の命令セットは、そのより低い電力使用の命令セットで置き換えられる。
【００１７】
本発明の例示的な実施形態のさらに別の態様において、装置を提供する。この装置は、第１の命令セットを読み取り、データ・バスを読み取り、少なくとも１つのデータ・レジスタに格納されたレジスタ値を読み取るための手段を有する。本装置はこの情報をエネルギー使用目的に関して分析する。ある命令セットがより低いエネルギー使用のセットと同じ結果をもたらし得る場合、第１の命令セットは、そのより低い電力使用の命令セットで置き換えられる。
【００１８】
これらの教示の前述及び他の態様は、好ましい実施形態に関する以下の詳細な説明を添付の図面と関連して読むことによりさらに明白となる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施に用いるのに適したデータ処理システムの略ブロック図である。
【図２】本発明の例示的な実施形態による、図１のメモリ制御ユニットの一部分の略ブロック図である。
【図３】図１のメモリ制御ユニットを操作する方法の非限定的な実施例を示す論理フロー図である。
【図４】図３の方法の操作を反映する、入力データ及び同じ値を有する現行データの種々の実施例を示す表である。
【図５】本発明による方法の非限定的な実施例を示す論理フロー図である。
【図６】本発明の例示的な実施形態によって管理されるデータ・バッファを示す。
【図７】本発明の実施に用いるのに適した、マイクロプロセッサのようなデータ・プロセッサの一部分の略ブロック図である。
【図８】本発明による方法の非限定的な実施例を示す論理フロー図である。
【発明を実施するための形態】
【００２０】
本発明の例示的な実施形態を用いると、情報をメモリ・デバイスに格納するのに必要なエネルギー量の削減が可能になる。
【００２１】
本発明の例示的な実施形態には、デジタル・データの遷移（１から０へ、又は０から１へ）の数を減らし、その結果、データをメモリ・デバイスに格納するときに消費されるエネルギーを減らす技術が用いられる。本発明の例示的な実施形態の使用は、メモリ状態を変更するためのエネルギーが主要なエネルギー条件となるメモリ・デバイスに対して有利である。第１の例示的な実施形態において、書込みの前に、メモリ・デバイスに以前に格納されたデータ単位が読み取られ、そのデータ単位のある部分、又はそのデータ単位のその部分のネゲートされた形が、より少ない遷移で、従ってより少ないエネルギーで格納することができるかどうかが判断される。そのデータ単位のある部分がより少ない遷移で格納できると判断された場合、データ単位のどの１つ又は複数の部分が反転された形で格納されるかを明示するための１つ又は複数の標識が格納される。この１つ又は複数の標識は、後にデータ単位が読み取られるときに引き出されて、データ単位を原形に復元するのに用いられる。
【００２２】
別の例示的な実施形態において、データが、以前に格納されたデータを有するメモリ位置に書き込まれるときに遷移の数が減少するように、格納されるデータ単位内のバイナリ０に対する統計的偏りが生成される。
【００２３】
導入部として、図１は本発明の実施に用いるのに適したデータ処理システム１０の略ブロック図である。システム１０は少なくとも１つのメモリ１４に結合された少なくとも１つのプロセッサ１２を含む。メモリ１４にはメモリ制御ユニット１６が付随し、このメモリ制御ユニット１６は、本発明の例示的実施形態により構成され操作されて、データが格納されるときの遷移の数を減らす目的でメモリ１４に格納されるデータを分析する。簡単のために、これらのコンポーネントを相互接続する種々のバス１８Ａ、１８Ｂ及び１８Ｃの細部（例えば、アドレス、データ及び制御バスの細部）は図示しない。幾つかの実施形態においてプロセッサ１２は、メモリ制御ユニットを通してのみメモリ１４に接続することができ、この場合にはバス１８Ａは無くてもよいことに留意されたい。また幾つかの実施形態において、メモリ１４の全て又は一部分はプロセッサ１２から遠隔に配置することができ、付随するメモリ制御ユニット１６も同様にすることができることに留意されたい。この場合、１つ又は複数のバス、１８Ａ、１８Ｂ、１８Ｃは、ローカルな電気バス又は光バスとすることができ、或いは、ローカル・エリア・ネットワーク（ＬＡＮ）のような、遠隔の有線又は無線バス、或いは、インターネットのような広域ネットワークとすることができる。
【００２４】
データ処理システム１０は、メインフレーム・コンピュータ、ワークステーション、デスクトップ（例えばパーソナル）コンピュータ、ラップトップ又はノートブック・コンピュータ、又は別の装置に組み込まれたデータ処理システムのような、任意の適切な形態を取ることができる。プロセッサ１２は、複数コンポーネントから構成されたもの、又は、マイクロプロセッサのような単一の集積回路内に組み込まれる形態に構成されたものを含む、任意の型のデータ・プロセッサとすることができ。メモリ１４は任意の型の適切なメモリとすることができ、１つ又は複数の半導体ベースのメモリ、例えば、スタティック・ランダム・アクセス・メモリ（ＲＡＭ）又はダイナミックＲＡＭに具体化することができ、或いは、ディスク又はテープのような磁気記憶媒体として具体化することができる。他の実施形態においてメモリ１４は、磁気的原理に基づく半導体ベースのテクノロジ（磁気抵抗ＲＡＭなど）とすることができる。一般に、本発明の例示的な実施形態は、データ記憶位置の状態を変更するのに、即ち、０のビット格納から１のビット格納へ、及び／又は１のビット格納から０のビット格納へのデータ記憶位置の遷移に、いくらかの無視できない量のエネルギーを必要とする型のデータ記憶メモリに対して、特に有用である。
【００２５】
メモリ制御ユニット１６は、メモリ１４と一体化することができ、或いは、別々のユニットとすることができる。これはまた、ＤＲＡＭ制御ユニットとして又はディスク若しくはテープ・コントローラとして動作することのような、付加的な機能を有することができる。
【００２６】
幾つかの実施形態において、図１に示した全てのコンポーネントを同じ集積回路内に組み込むことができることに留意されたい。さらに、幾つかの実施形態において、メモリ１４の少なくともある部分は、プロセッサ１２のＲＡＭ、レジスタ及びレジスタ・ファイル（それらに限定されないが）を含むプロセッサ１２の内部メモリの部分とすることができることに留意されたい。
【００２７】
本発明の例示的な実施形態により、また図２を参照すると、メモリ制御ユニット１６は、メモリ１４の特定の位置に書き込まれるデータ（入力データ）と、その特定の位置に現在格納されているデータ（現行データ）との比較に基づいて、１つ又は複数の標識ビット（標識）をデータ・ストリーム中にある特定の間隔で導入するように動作する。
【００２８】
例えば、以下の場合を想定する。
Input Data= 10000111
Current Data = 11111111
【００２９】
例えば、メモリ制御ユニット１６の比較ユニット１６Ａは、インバータ１６Ｂのバンク中の個々の１つを選択的に制御して、メモリ１４に書き込まれる新データ内のある特定のビットを反転させてビット遷移の数を減らし、そして新データを表す標識ビットを生成させる。１バイト（８ビット）長のデータ単位を想定するこの非限定的な実施例においては、メモリ１４から読み取られる現行データ（例えば、全て１）及び入力データを保持するためのレジスタ２０が備えられ、ここで入力データの場合Ｄ７は１、Ｄ６〜Ｄ３は０、そしてＤ２〜Ｄ０は１である。明らかに、メモリ１４に入力データを直接書き込むことは４ビット（Ｄ６〜Ｄ３）の遷移を引き起こすことになる。この状況を避けるために、比較ユニット１６Ａは、遷移に用いられることになるビットの数がある所定の閾値（例えば、２、３又は４）に等しいか又はそれを超えることを検知し、それに応じて、インバータ制御信号ライン１６Ｃを、ビットＤ７〜Ｄ３の経路内のインバータ１６Ｂを対応するビットに反転させるように、設定する（インバータ制御信号ライン１６Ｃが設定されない場合、対応するインバータ１６Ｂはビットを反転させずに単に通過させるものと仮定し、或いは、スィッチがインバータを単に迂回すると仮定する）。この場合の結果は、メモリ１４に対する新データが以下の形をとり、
New Data= 01111111
これは、８ビットの内の１つだけ（この例においてはＤ７）に遷移を引き起こした結果である。３つの標識ビットＩ２、Ｉ１、Ｉ０を用いて新データ内のパリティ反転の開始点を示すことができる。１つの非限定的な実施例において、シーケンス０００は変更がなされていないことを示し、残りのシーケンスは１乃至７の数を表してどのビットが開始ビットであるかを示すことができる（例えば、０１１は第３ビット及びそれ以上が変更されたことを示し、００１は全てのビットが変更されたことを示す）。この場合Ｉ２が１に切り替えられ、その結果標識ビットは１００と読み取られて第４ビット（Ｄ３）及びそれ以上が反転されたことを示す。この付加的なビット切替によっても、切り替えられるビットの総数は最終的に減少する。理解できるように、新データをメモリに書き込むのに必要なエネルギーは、いずれのビットも反転させずにデータを直接書き込むのに必要となるエネルギーより著しく減少する。
【００３０】
後にこのデータをメモリ１４から読み取り、その原形に復元することを可能にするためには、メモリ制御ユニット１６の読み取りユニット１６Ｄに、データが格納されたときどのビットが反転されたか（もしあれば）を通知するように標識を設定することが大切である。標識は多くの異なる形をとることができる。図２の例証的な実施例においては、ビット反転が適用されたデータ単位内の最上位ビット位置（例えば、Ｄ７から数えて）は３ビット値として符号化され、標識ビットとして、格納されるデータ単位と共に記憶用のメモリ１４に送られる。上記の非限定的な実施例において、標識値は４（１００）となる。後に、このデータ単位がメモリ１４から読み戻されるとき、読み取りユニット１６Ｄは、標識値に至るまでの全てのビット（この実施例においてはビットＤ７〜Ｄ４）を反転させる相補的な操作を実行してデータを原形に復元させ、それにより出力データをプロセッサ１２又はどれか他のコンポーネントに供給する。
【００３１】
この実施形態において、付加的な標識ビットを追加して、３つの標識ビットをＤ０（データ単位のＬＳＢ）からの計数と解釈すべきか、又はＤ７（データ単位のＭＳＢ）からの計数と解釈すべきかを指定することができる。
【００３２】
これまでに説明した実施例において、反転が適用されるデータ単位内の境界は、比較ユニット１６Ａにより取得される結果に応じて、データ単位毎に変化する可能性がある。別の実施形態においてデータ単位は、所定のサブ単位（例えば、これまでに説明した例示的な場合には４ビットのサブ単位）に分割することができ、次いで標識ビットを各サブ単位に加えて、対応するサブ単位が反転されているか反転されていないかを示す。上記の例におけると同様に以下のように想定し、
Input Data= 10000111
Current Data = 1111 1111
ついで比較閾値を各サブ単位に適用すると、最も左側のサブ単位だけが反転され、以下のようになる。
New Data = 0111 0111
【００３３】
この場合の標識フィールドは各サブ単位のパリティを表すのに２ビット長だけが必要であり、以下の値を有することができ、
Indicator= 10
これは最も左側のサブ単位が反転されたことを示す。
【００３４】
他の実施形態において各サブ単位は２ビット幅とすることができ、それゆえに標識フィールドは、対応する２ビットのデータ単位の各々が反転されたか又は反転されなかったかを示すために４ビット幅となる。先の実施例、
Input Data= 10 00 0111
Current Data = 11 11 11 11
を続けて、次に各サブユニットに比較閾値（例えば、この場合には２）を適用すると、第２の最も左側のサブユニットだけが反転されて、以下のようになる。
New Data = 10 11 01 11
この場合、標識フィールドは４ビット長であり、以下の値を有する。
Indicator=0100
これは第２の最も左側のサブ単位が反転されたことを示す。
【００３５】
別の実施形態において標識ビット・フィールドは、データ単位（この実施例においては８ビット）と同じ幅にすることができ、その場合、標識フィールド内の個々のビットは、それぞれ、データ単位内のどの対応するビットが反転されたか又は反転されなかったかを示すように設定又は再設定される。
【００３６】
理解できるように、本発明の実施形態を実施することができる多くの可能な方法が存在する。別の実施例として、そして最初に説明した基本の８標識表現を再び参照すると、２つ又はそれ以上の３ビット・フィールドを設けてビット反転が選択的に適用された２つ又はそれ以上の位置を示すことができる。さらにインバータ１６Ｂをある特定の型の論理ゲート、例えば、排他的ＯＲで置き換えることができ、この排他的ＯＲの動作はメモリ１４に書き込まれるビットのうちの所望の幾つかの選択的な反転を生じて遷移の数を減少させることになる。
【００３７】
さらに、前述の説明は任意の所望の幅（例えば、６４ビット、２５６ビットなど）のデータ単位に適用することができるので、本発明の例示的な実施形態は８ビット幅のデータ単位のみの使用に限定されないことを理解されたい。
【００３８】
図３を参照して、ここでメモリ制御ユニット１６の動作の非限定的な実施例を与える。
ステップＡ：あるメモリ位置格納された現行データを読み取ること。
ステップＢ：書き込まれる入力データを現行データと比較し、現行データと入力データの間で排他的ＯＲを実施して排他的ＯＲの結果中の「１」の数を加え合わせ、入力データで現行データを上書きする場合に生じるビット遷移の数を表す和ｓｕｍ１を取得することによって、新データで現行データを上書きする場合に生じるビット遷移の数を算出すること。
ステップＣ：ｓｕｍ１を所定の閾値と比較し、ｓｕｍ１が閾値に等しいか又はそれを超える場合、入力データの全て又は一部分をネゲートし、現行データとの排他的ＯＲを実施して第２のｓｕｍ２を算出すること。ここでネゲートされた入力データのｓｕｍ２＋１の値がｓｕｍ１より小さい場合、ネゲートされた入力データをメモリ位置に書き込む場合にビット遷移の数が減少することになる。
ステップＤ：対応する標識フィールド内の少なくとも１つの標識ビットを、メモリ位置に入力データが格納された場合、或いは、入力データの全て又は一部分がネゲートされた形が格納された場合を示すように設定すること。
さらにステップＥは、後に、メモリ位置に格納されたデータ及び対応する標識フィールドを読み取り、対応する標識フィールドに設定されたビットに従って読み取りデータのビットを選択的に反転させるか又は反転させないことを含む。
ステップＢにおいて、データを書き込むのに必要なエネルギーは、EWrite*Sum + ERead*8 で与えられる。
【００３９】
上記のものの一例を図４に示すが、この実施例では、現行データは全てゼロであること及び入力データは２５０乃至２５５の値の範囲にあると仮定されている。この実施例においては、１つの標識ビットが８ビット・ワードと共に用いられる。パリティ変化を示すための１ビットの追加は和 Xor + 1 によって示され、これはパリティ変化後に切り替えられることになるビットの総数を表す。
【００４０】
図５は、本発明の例示的な実施形態によるメモリ・デバイスを操作する方法を記述する。この方法は、ブロック４Ａにおいて、メモリ・デバイスのある位置における第１のデータ単位を第２のデータ単位で上書きする前に、第２のデータ単位を書き込むことが、反転されたビットを有する少なくとも１つのサブ単位を有する第２のデータ単位を書き込むことより多くのエネルギーを必要とするかどうかを判断することを含む。反転されたビットを有する少なくとも１つのサブ単位を有する第２のデータ単位を書き込むことがより少ないエネルギーを必要とすると判断される場合には、本方法はさらにブロック４Ｂにおいて、第１のデータ単位を、反転されたビットを有する少なくとも１つのサブ単位を有する変更された第２のデータ単位で上書きすると共に、変更されたデータ単位内の反転されたビットを有するデータのサブ単位の位置を示す少なくとも１つのビットを書き込む。
【００４１】
図３及び図５に示した種々のブロックは、方法ステップとして、及び／又はコンピュータ可読媒体内に格納されたコンピュータ・プログラム・コードの実行から生じる操作として、及び／又は関連する機能を実施するように構成された複数の結合した論理回路要素として考えることができる。さらに、図２に示したメモリ制御ユニット１６の機能の幾つか又は全ては、コンピュータ可読媒体に格納されたコンピュータ・プログラム・コードの実行だけで、又はそれとハードウェア回路を組み合せて実施することができることに留意されたい。
【００４２】
標識フィールドは対応するデータ単位と共に同じメモリ１４に格納することができ、或いは、（データ）メモリ１４のアドレス指定及び読取りに同期してアドレス指定され及び読み取られる、同じ又は異なる型の別のメモリに分離して格納することができるに留意されたい。
【００４３】
さらに、本発明のこの実施形態の適用は、標識フィールドに格納された対応する情報なしにデータ（選択的に反転された種々のビットを至る所に有する）を読出し及び解釈することを困難にするので、メモリ１４に格納されたデータに対するあるレベルのセキュリティを与えることに留意されたい。
【００４４】
本発明の実施形態は、パターン化媒体を有するハードディスク・ドライブにも適する。
【００４５】
本発明の例示的な実施形態は、膨大なデータがセクタに格納されるハードディスク・ドライブに適用可能である。現在のドライブは凡そ５１２バイトを１つのセクタに格納し、セクタは典型的にはブロック内に書き換えられる。しかし、将来のディスク・ドライブ媒体は、各ビットがパターン化媒体の別々の離散的部分に存在するような様式でパターン化されると予想される。１から０へ又は逆の遷移の数を減少させることにより、書込み電流を減少させることができる。膨大なデータ内には標識ビットを付けることができる。
【００４６】
セクタはハードディスク上のデータ記憶の基本単位である。用語「セクタ」は、２つの側が半径で束縛され第３の側が円周で束縛された、円のパイ型角状部分を指す数学用語から派生したものである。本質的にハードディスクは円を形成する所定のセクタの群から構成され、所定のセクタの所与の１つの円は単一トラックと定義される。同心円（トラック）の群はディスクの円盤の単一表面を定める。初期のハードディスクはトラック位置毎に同数のセクタを有し、各トラック内のセクタの数は通常、モデル間でかなり標準化されていた。ハードディスクをデフォルト値で調整する場合、各セクタは５１２バイトのデータを格納することができる。ハードディスク・ドライブ技術の最近の進歩はトラック当りのセクタの数、即ちＳＰＴを著しく多様にすることを可能にした。
【００４７】
本発明の例示的な実施形態は、トラック当りのセクタ数が固定したハードディスク、及びトラック当りのセクタ数が可変のハードディスクの両方の利点と共に用いることができる。本発明の例示的な実施形態はまた、個々のビットを別々に記録できる（書込み動作毎に少なくとも一セクタ全体に記録するのとは反対に）パターン化媒体に基づくハードディスク・ドライブに役立つように用いることができる。
【００４８】
データの一セクタの標識フィールドはそのセクタの最初又は最後に格納することができる。代替的に、所与のトラックの１つ又は複数のセクタを、トラック内の全てのセクタの標識フィールドを格納するための専用にすることができる。格納されたディスク・データに関する標識情報を格納するための他の配置を用いることもできる。
【００４９】
非限定的な実施例として、レイド（redundant array of inexpensive disks (RAID)）形態のようなディスク・ドライブのアレイを用いて実施されるデータ記憶実施形態において、８個のディスク・ドライブをデータ格納用に用いることができ、一方９番目のディスク・ドライブは、標識情報を、可能であればエラー検出及び修正情報と共に、格納するのに用いることができる。多くの他のＲＡＩＤ型編成も可能である。
【００５０】
本発明の例示的な実施形態は、メモリに書き込まれるデータを予備処理する他の方法で用いることができる。例えば、幾つかのアプリケーションにおいて、データが頻繁に書き換えられる可能性がある。１つの非限定的な例は、複数のクライアントに関するトランザクション情報が１日の流れの中でアーカイブに入れられるアップリケーションである。図６を参照すると、先入れ先だし（ＦＩＦＯ）バッファのようなデータ・バッファ３０を設けて、クライアント情報をメモリ１４に送る前に格納することができる。データ・バッファ３０に格納された情報を読み取って前処理することにより、多くのトランザクションを圧縮して、メモリ１４に実際に書き込まれるデータにすることができる。例えば、以前のデータ・バイト＃２が現行データと一致することを認識すると、データ・バイト＃２が最初にメモリ３２に書き込まれ、次にデータ・バイト＃１が書き込まれ、次に現行データ・バイトが書き込まれる場合に行われるような、トランザクションを反転させることは必要なくなる。
Current Data 00001111
Data Byre #1 11111111
Data Byre #2 00001111
【００５１】
この場合、現行データがデータ・バイト＃２と一致することを検出すると、現行データのみを書き込む必要があり、データ・バイト＃２及び＃１は書き込む必要がない（又は代替的に、データ・バイト＃２のみをメモリ１４に送り、データ・バイト＃１及び現行データ・バイトは消去することができる）。
【００５２】
バッファ３０は、メモリ３２内の同じ位置に書き込まれるデータを格納するように説明したが、他の実施形態においてバッファ３０は、プロセッサ１２の算術論理ユニット（ＡＬＵ）に適用される待機コマンドを格納することができる。
【００５３】
データ・プロセッサ、例えばマイクロプロセッサ６０の一部分の簡略図を図７に示すが、これはＡＬＵ７０，レジスタＡ７２、レジスタＢ７４及びレジスタＣ６８、命令デコーダ６２、命令レジスタ６６、カウンタ７６及びアドレス・ラッチ７８を含む。カウンタ７６及びアドレス・ラッチ７８の両方はアドレス・バス８０に接続される。マイクロプロセッサ６０は、一組の命令を実行することができ、典型的な命令セットのサブセットを以下に示す。
【００５４】
LOAD A  −  あるメモリ・アドレスからの値をレジスタＡにロードする
LOAD B  −  あるメモリ・アドレスからの値をレジスタＢにロードする
CON A  −  定数値をレジスタＡにロードする
CON B  −  定数値をレジスタＢにロードする
CON C  −  定数値をレジスタＣにロードする
SAVE B  −  レジスタＢ内の値をあるメモリ・アドレスに保存する
SAVE C  −  レジスタＣ内の値をあるメモリ・アドレスに保存する
ADD  −  レジスタＡ内の値とレジスタＢ内の値を加え合せてその結果をレジスタＣに格納する
SUB  −  レジスタＡ内の値をレジスタＢ内の値から差し引いてその結果をレジスタＣに格納する
MUL  −  レジスタＡ内の値とレジスタＢ内の値を掛け合せてその結果をレジスタＣに格納する
DIV  −  レジスタＡ内の値をレジスタＢ内の値で割ってその結果をレジスタＣに格納する
【００５５】
プログラムは一組の順次命令である。マイクロプロセッサ６０はＡＬＵ７０の回路内又はレジスタ６８、７２及び７４の中のビットの状態を変更するのにエネルギーを消費する。変更されるビットの数を減らすことができる方法は計算の全体のエネルギーを削減することができる。これを達成するための１つの方法は、命令及びデータ・バス８２を検査して遷移の数、従って電力を最小化する電力アドバイザ６４をマイクロプロセッサ６０に含めることである。
１つの非限定的な実施例において、１と２５５を加え合わせることは、0000 0000 1111 1111から0000 0001 0000 0000への変化を生じ、９個のビットが０から１へ、又は１から０へ遷移することが必要である。この変更は以下の命令セットにより実行することができる。
LOAD A 200  （この場合メモリ位置２００−２５５にある値をレジスタにロードする）
CON B 1    (数１をレジスタＢにロードする)
ADD        （レジスタＡ内の値とレジスタＢ内の値を加え合わせてレジスタＣに格納する）
【００５６】
電力アドバイザ６４は、命令レジスタ６６、データ・バス８２並びにレジスタ６８、７２、及び７４をモニタし、命令のある特定の命令シーケンスを、例えば、以下の命令を用いて、低減されたエネルギーの命令セットで置き換えることができる。
CON C 256    （数「２５６」をレジスタＣにロードする）
この命令（CON C 256）は、ＡＬＵ７０内に現れる処理及びレジスタＡ７２及びＢ７４におけるビット変化を、削除又は削減してエネルギー節約をもたらす。
【００５７】
図８は、本発明の例示的な実施形態による電力アドバイザ６４を操作する方法の説明である。本方法は、ブロック１００で第１の命令セットを読み取ること、ブロック１１０でデータ・バスを読み取ること、及びブロック１２０でレジスタ値を読み取って少なくとも１つのデータ・レジスタに格納することを含む。本方法はさらにブロック１３０において電力アドバイザ６４が第１の命令セット、データ・バス、及びレジスタ値をエネルギー使用のために分析することを定める。ブロック１４０で、第２の命令セットが、より低いエネルギー使用で第１の命令セットと同じ結果を与えると判断された場合、第２の命令セットが第１の命令セットの代りに用いられる。次いで、結果として得られる命令セットがＡＬＵ７０に適用される。
【００５８】
電力アドバイザ６４を操作する方法は、ハードウェアのみにより、或いは、ファームウェアを含むソフトウェアにより、或いは、ハードウェア及びファームウェアを含むソフトウェアの組合せとして実施することができる。
【００５９】
本発明の例示的な実施形態はまた、電力階層の使用を通して実施することができる。幾つかの点で前述の実施形態に関連して、格納するデータを保持するのにメモリ１４より小さな遷移当り電力を消費することが好ましいメモリ・バッファ３０の使用により、電力消費は削減され、又はさらに削減される。
【００６０】
２レベル以外の論理を用いることが可能な（例えば、３レベル論理のレベルを用いることが可能な場合）システム／メモリ・アーキテクチャにおいて、標識ビットはデータ・ストリーム内に直接配置し、データがメモリ・デバイスから読み出されるときそれと同様に復号することができる。この場合、例えば、データを論理レベルのうちの２つを用いて格納し、一方標識ビットは第３の論理レベルを用いて格納することができる。この場合標識フィールドは、格納及びリード・バックされるデータ内の至るところに分散すると考えることができる。
【符号の説明】
【００６１】
１０：システム
１２：プロセッサ
１４：メモリ
１６：メモリ制御ユニット
１６Ａ：比較ユニット
１６Ｂ：インバータ
１６Ｃ：インバータ制御信号ライン
１６Ｄ：読取りユニット
１８Ａ、１８Ｂ、１８Ｃ：バス
２０：レジスタ
３０：バッファ
３２：メモリ
６０：マイクロプロセッサ
６２：命令デコーダ
６４：電力アドバイザ
６６：命令レジスタ
６８：レジスタＣ
７０：算術論理ユニット（ＡＬＵ）
７２：レジスタＡ
７４：レジスタＢ
７６：カウンタ
７８：アドレス・ラッチ
８０：アドレス・バス
８２：データ・バス
【図１】
2010536080.tif 000003
【図２】
2010536080.tif 000004
【図３】
2010536080.tif 000005
【図４】
2010536080.tif 000006
【図５】
2010536080.tif 000007
【図６】
2010536080.tif 000008
【図７】
2010536080.tif 000009
【図８】
2010536080.tif 000010
【手続補正書】
【提出日】平成22年4月21日(2010.4.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリ・デバイスを操作する方法であって、
メモリ・デバイス内のある位置における第１のデータ単位を第２のデータ単位で上書きする前に、前記第２のデータ単位を書き込むことが、反転されたビットを有する少なくとも１つのサブ単位を有する前記第２のデータ単位を書き込むことより多くのエネルギーを必要とするかどうかを判断することと、
前記反転されたビットを有する少なくとも１つのサブ単位を有する前記第２のデータ単位を書き込むことがより少ないエネルギーを必要とすると判断された場合、前記第１のデータ単位を、前記反転されたビットを有する少なくとも１つのサブ単位を有する変更された第２のデータ単位で上書きすると共に、前記変更されたデータ単位内の、前記反転されたビットを有するデータの前記サブ単位の位置を示す少なくとも１つのビットを書き込むことと
を含み、
より多くのエネルギーを必要とするかどうかを前記判断するステップは、
あるメモリ位置に格納された現行データを読み取るステップと、
書き込まれる入力データを前記現行データと比較し、前記現行データと前記入力データの間の排他的ＯＲを実施して該排他的ＯＲの結果における「１」の数の和を取り、前記入力データで前記現行データを上書きした場合に生じるビット遷移の数を表す和ｓｕｍ１を取得することにより、前記入力データで前記現行データを上書きする場合に生じるビット遷移の数を算出するステップと、
ｓｕｍ１を所定の閾値と比較し、ｓｕｍ１が該閾値に等しいか又はそれを超える場合、前記入力データの全て又は一部分をネゲートし、現行データとの排他的ＯＲを実施して第２のｓｕｍ２を算出するステップと
を含み、
前記ネゲートされた入力データのｓｕｍ２＋１の値がｓｕｍ１より小さい場合、前記ネゲートされた入力データが前記メモリ位置に書き込まれる場合に前記ビット遷移の数が減少することになる、
方法。
【請求項２】
後に、前記変更されたデータ単位及び前記少なくとも１つのビットを読み取り、反転されたビットを有することを示された任意のサブ単位のビットを反転させて出力データを供給することをさらに含む、請求項１に記載の方法。
【請求項３】
前記データ単位は、Ｎを整数としてＮ個のビットを含み、前記サブ単位は１乃至Ｎ個のビットを含む、請求項１に記載の方法。
【請求項４】
前記少なくとも１つのビットは、ある値を示すためのグループとして符号化される複数のビットを含む、請求項１に記載の方法。
【請求項５】
前記少なくとも１つのビットは複数のビットを含み、前記複数のビットの個々の１つは複数のサブ単位の対応する個々の１つを指定する、請求項１に記載の方法。
【請求項６】
前記メモリ・デバイスは半導体ベースのメモリ・デバイスである、請求項１に記載の方法。
【請求項７】
前記メモリ・デバイスはディスク・ベース又はテープ・ベースのメモリ・デバイスである、請求項１に記載の方法。
【請求項８】
前記メモリ・デバイスはデータ・レジスタである、請求項１に記載の方法。
【請求項９】
前記少なくとも１つのビットは、前記変更されたデータ単位が書き込まれるのと同じメモリ・デバイスに書き込まれる、請求項１に記載の方法。
【請求項１０】
前記少なくとも１つのビットは、前記変更されたデータ単位が書き込まれるメモリ・デバイスとは異なるメモリ・デバイスに書き込まれる、請求項１に記載の方法。
【請求項１１】
前記第２のデータ単位を前記メモリ・デバイスに書き込む前にバッファリングすることと、前記第２のデータ単位を、続いて前記バッファに格納される第３のデータ単位と比較して前記第２のデータ単位又は前記第３のデータ単位を前記メモリ・デバイスに書き込むかどうかを判断することとをさらに含む、請求項１に記載の方法。
【請求項１２】
メモリ・デバイスを操作するための装置であって、
メモリ・デバイス内のある位置における第１のデータ単位を第２のデータ単位で上書きする前に、前記第２のデータ単位を書き込むことが、反転されたビットを有する少なくとも１つのサブ単位を有する前記第２のデータ単位を書き込むことより多くのエネルギーを必要とするかどうかを判断するように構成されたメモリ制御ユニットを備え、
前記メモリ制御ユニットは、前記反転されたビットを有する前記少なくとも１つのサブ単位を有する前記第２のデータ単位を書き込むことがより少ないエネルギーを必要とするとの判断に応じて、前記反転されたビットを有する前記少なくとも１つのサブ単位を有する変更された第２のデータ単位を、前記変更されたデータ単位内の、前記反転されたビットを有するデータの前記サブ単位の位置を示す少なくとも１つのビットを含む標識フィールドと共に、前記メモリ・デバイスに送るようにさらに構成され、
前記メモリ制御ユニットは、少ないエネルギーが必要とされるかどうかを、
書き込まれる入力データを前記現行データと比較し、前記現行データと前記入力データの間の排他的ＯＲを実施して該排他的ＯＲの結果中の「１」の数を加え合わせて前記入力データで前記現行データを上書きする場合に生じるビット反転の数を表す和ｓｕｍ１を取得することにより、前記入力データで現行データを上書きする場合に生じるビット遷移の数を算出するための手段と、
ｓｕｍ１を所定の閾値と比較し、ｓｕｍ１が前記閾値に等しいか又はそれを超える場合に前記入力データの全て又は部分をネゲートし、前記現行データとの排他的ＯＲを実施して第２のｓｕｍ２を取得する手段であって、前記ネゲートされた入力データのｓｕｍ２＋１の値がｓｕｍ１より小さければ、前記ネゲートされた入力データが前記メモリ位置に書き込まれる場合に前記ビット遷移の数が減少することになる、前記手段と
を用いて判断する、
装置。
【請求項１３】
前記メモリ制御ユニットは、前記変更されたデータ単位及び前記対応する標識フィールドを読み取ることに応じて、反転されたビットを有するように示された任意のサブ単位のビットを反転させた後に出力データを供給するようにさらに構成される、請求項１２に記載の装置。
【請求項１４】
前記データ単位は、Ｎを整数としてＮ個のビットを含み、前記サブ単位は１乃至Ｎ個のビットを含む、請求項１２に記載の装置。
【請求項１５】
前記標識フィールドは、ある値を示すためにグループとして符号化される複数のビットを含む、請求項１２に記載の装置。
【請求項１６】
前記標識フィールドは複数のビットを含み、前記複数のビットの個々の１つは複数のサブ単位の対応する個々の１つを指定する、請求項１２に記載の装置
【請求項１７】
前記メモリ・デバイスは半導体ベースのメモリ・デバイスである、請求項１２に記載の装置。
【請求項１８】
前記メモリ・デバイスはディスク・ベース又はテープ・ベースのメモリ・デバイスである、請求項１２に記載の装置。
【請求項１９】
前記メモリ・デバイスはデータ・レジスタである、請求項１２に記載の装置。
【請求項２０】
前記標識フィールドは、前記変更されたデータ単位が書き込まれるのと同じメモリ・デバイスに書き込まれる、請求項１２に記載の装置。
【請求項２１】
前記標識フィールドは、前記変更されたデータ単位が書き込まれるメモリ・デバイスとは異なるメモリ・デバイスに書き込まれる、請求項１２に記載の装置。
【請求項２２】
集積回路に組み込まれる、請求項１２に記載の装置。
【請求項２３】
データ・プロセッサ及び前記メモリ・デバイスを有する集積回路に組み込まれる、請求項１２に記載の装置。
【請求項２４】
前記メモリ・デバイスは前記データ・プロセッサの部分を含む、請求項２３に記載の装置。
【請求項２５】
前記第２のデータ単位を前記メモリ・デバイスに書き込む前に、それを待ち行列に入れるためのバッファをさらに備え、
前記メモリ制御ユニットは、前記第２のデータ単位、又は前記第２のデータ単位が前記バッファに格納された後で前記バッファに格納される第３のデータ単位を前記メモリ・デバイスに書き込むのにどちらがより小さなエネルギーを必要とするかを判断するようにさらに構成される、
請求項１２に記載の装置。
【請求項２６】
コンピュータ・プログラム命令を格納するメモリ媒体であって、前記命令の実行は、
メモリ・デバイス内のある位置における第１のデータ単位を第２のデータ単位で上書きする前に、前記第２のデータ単位を書き込むことが、反転されたビットを有する少なくとも１つのサブ単位を有する前記第２のデータ単位を書き込むことより多くのエネルギーを必要とするかどうかを判断することと、
前記反転されたビットを有する少なくとも１つのサブ単位を有する前記第２のデータ単位を書き込むことがより少ないエネルギーを必要とすると判断された場合、前記第１のデータ単位を、前記反転されたビットを有する少なくとも１つのサブ単位を有する変更された第２のデータ単位で上書きすると共に、前記変更されたデータ単位内の、前記反転されたビットを有するデータの前記サブ単位の位置を示す少なくとも１つのビット・メモリを書き込むことと
を含む動作を生じ、
より多くのエネルギーを必要とするかどうかを前記判断するステップは、
あるメモリ位置に格納された現行データを読み取るステップと、
書き込まれる入力データを前記現行データと比較し、前記現行データと前記入力データの間の排他的ＯＲを実施して該排他的ＯＲの結果における「１」の数の和を取り、前記入力データで前記現行データを上書きした場合に生じるビット遷移の数を表す和ｓｕｍ１を取得することにより、前記入力データで前記現行データを上書きする場合に生じるビット遷移の数を算出するステップと、
ｓｕｍ１を所定の閾値と比較し、ｓｕｍ１が該閾値に等しいか又はそれを超える場合、前記入力データの全て又は一部分をネゲートし、現行データとの排他的ＯＲを実施して第２のｓｕｍ２を算出するステップと
を含み、
前記ネゲートされた入力データのｓｕｍ２＋１の値がｓｕｍ１より小さい場合、前記ネゲートされた入力データが前記メモリ位置に書き込まれる場合に前記ビット遷移の数が減少することになる、
メモリ媒体。
【請求項２７】
後に、前記変更されたデータ単位及び前記少なくとも１つのビットを読み取ることに応じて、反転されたビットを有するように示された任意のサブ単位のビットを反転させて出力データを供給する動作をさらに含む、請求項２６に記載のメモリ媒体。
【請求項２８】
前記データ単位は、Ｎを整数としてＮ個のビットを含み、前記サブ単位は１乃至Ｎ個のビットを含む、請求項２６に記載のメモリ媒体。
【請求項２９】
前記少なくとも１つのビットは、ある値を示すためのグループとして符号化される複数のビットを含む、請求項２６に記載のメモリ媒体。
【請求項３０】
前記少なくとも１つのビットは複数のビットを含み、前記複数のビットの個々の１つは複数のサブ単位の対応する個々の１つを指定する、請求項２６に記載のメモリ媒体。
【請求項３１】
前記メモリ・デバイスは半導体ベースのメモリ・デバイスである、請求項２６に記載のメモリ媒体。
【請求項３２】
前記メモリ・デバイスはディスク・ベース又はテープ・ベースのメモリ・デバイスである、請求項２６に記載のメモリ媒体。
【請求項３３】
前記メモリ・デバイスはデータ・レジスタである、請求項２６に記載のメモリ媒体。
【請求項３４】
前記少なくとも１つのビットは、前記変更されたデータ単位が書き込まれるのと同じメモリ・デバイスに書き込まれる、請求項２６に記載のメモリ媒体。
【請求項３５】
前記少なくとも１つのビットは、前記変更されたデータ単位が書き込まれるメモリ・デバイスとは異なるメモリ・デバイスに書き込まれる、請求項２６に記載のメモリ媒体。
【請求項３６】
前記第２のデータ単位を前記メモリ・デバイスに書き込む前にバッファリングすることと、前記第２のデータ単位を続いて前記バッファに格納される第３のデータ単位と比較して前記第２のデータ単位又は前記第３のデータ単位のいずれを前記メモリ・デバイスに書き込むか判断することとの動作をさらに含む、請求項２６に記載のメモリ媒体。
【国際調査報告】
2010536080.tif 000011
2010536080.tif 000012