(57)【特許請求の範囲】
【請求項１】
バスにおけるスイッチング動作を減少させる方法であって、
メモリに対して通信するための目標アドレスが、前記目標アドレスに先行する先行目標アドレスに一定値だけ増分したものに等しいならば、アドレス・バス上の現在値を維持するステップと、
前記目標アドレスが、前記先行目標アドレスに一定値だけ増分したものに等しくなく、且つ前記目標アドレスが前記アドレス・バス上の現在値に等しくないならば、前記アドレス・バスに前記目標アドレスを送信するステップと、
前記目標アドレスが前記アドレス・バス上の現在値に等しいならば、前記先行目標アドレスに前記一定値を加えたアドレスを前記アドレス・バスに送信するステップとを備えることを特徴とする方法。
【請求項２】
請求項１記載の方法において、更に、
前記目標アドレスを装置から受信するステップと、
前記目標アドレスと、前記目標アドレスに先行して前記装置から受信した先行目標アドレスとの間のオフセットを判定するステップとを備え、
前記目標アドレスが前記オフセットに等しく、前記先行目標アドレスが先行して判定されたオフセットに等しいことを特徴とする方法。
【請求項３】
バスにおけるスイッチング動作を減少させる方法であって、
メモリに対して通信するための目標アドレスをアドレスバス上で受信するステップと、
前記目標アドレスと、前記目標アドレスに先行して受信した先行目標アドレスとの間のオフセットを判定するステップと、
前記オフセットが負であるならば、前記オフセット中の選択されたビットを反転するステップと、
前記オフセットと、先行して符号化され前記アドレス・バスに送信された先行オフセットとの間の排他的ＯＲ演算を実行するステップと、
前記排他的ＯＲ演算の結果を、前記アドレス・バスに送信するステップとを備えることを特徴とする方法。
【請求項４】
バスにおけるスイッチング動作を減少させるために値を符号化する方法であって、
アドレス値を受信するステップと、
前記アドレス値を利用して、複数のアドレス・エントリを複数のコード・エントリにマッピングするコード・ブックにアクセスするステップと、
前記アドレス値が前記アドレス・エントリの１つに合致するならば、前記合致するアドレス・エントリに対応するコード・エントリに等しい符号化アドレス値を設定するステップと、
前記アドレス値が符号化エントリの１つに合致するならば、合致する符号化エントリに対応するアドレス・エントリに等しい符号化アドレス値を設定するステップと、
前記オフセットが前記アドレス・エントリにもコード・エントリにも合致しないならば、前記アドレス値に等しい符号化アドレス値を設定するステップと、
前記符号化アドレスをアドレス・バスに送信するステップとを備えることを特徴とする方法。
【請求項５】
エンコーダであって、
メモリに対して通信するための目標アドレスを受信する第１の入力と、
アドレス・バスに結合された出力と、
前記目標アドレスに先行して前記第１の入力から受信した先行目標アドレスを維持する第１メモリ素子と、
先行して符号化された、前記出力から前記アドレス・バスに送信された先行符号化アドレスを維持する第２メモリ素子と、
前記目標アドレスが前記第１メモリ素子に維持された前記先行目標アドレスに一定値だけ増分したものに等しいならば、前記第２メモリ素子に維持された前記先行符号化アドレスを前記出力に提供し、前記目標アドレスが前記第１メモリ素子に維持された前記先行目標アドレスに一定値だけ増分したものに等しくなく、且つ前記目標アドレスが前記先行符号化アドレスに等しくないならば、前記目標アドレスを符号化アドレスとして前記出力に提供し、前記目標アドレスが前記先行符号化アドレスに等しいならば、前記第１のメモリ素子に維持された前記先行目標アドレスに前記一定値を加えたものを符号化アドレスとして前記出力に提供する選択モジュールとを備えることを特徴とするエンコーダ。
【請求項６】
請求項５記載のエンコーダにおいて、更に、
目標アドレスを受信する第２の入力と、
前記第２の入力と前記第１の入力との間に結合され、前記目標アドレスと、前記目標アドレスに先行して受信した先行目標アドレスとの間のオフセットを決定するとともに、前記オフセットを前記目標アドレスとして前記第１の入力に提供する符号化論理回路とを備えることを特徴とするエンコーダ。
【請求項７】
エンコーダであって、
メモリに対して通信するための目標アドレスを受信する入力と、
アドレス・バスに結合された出力と、
前記目標アドレスに先行して前記入力から受信した先行目標アドレスを維持する第１メモリ素子と、
先行して符号化され前記アドレス・バスに送信された先行符号化アドレスを維持する第２メモリ素子と、
前記目標アドレスと、前記第１メモリ素子に維持された前記先行目標アドレスとの間のオフセットを判定するオフセット・モジュールと、
前記オフセットが負であるならば、前記オフセット中の選択されたビットを反転する符号化論理回路と、
前記オフセットと、前記第２メモリ素子に維持された前記先行符号化アドレスとの間の排他的ＯＲ演算を実行し、排他的ＯＲ演算の結果を符号化アドレスとして前記出力に提供し、前記アドレス・バスに送信する排他的ＯＲモジュールとを備えることを特徴とするエンコーダ。
【請求項８】
請求項７記載のエンコーダにおいて、前記符号化論理回路が、更に、前記オフセットから一定値を減算することを特徴とするエンコーダ。
【請求項９】
エンコーダであって、
複数のアドレス・エントリを複数のコード・エントリにマッピングするコード・ブックであって、アドレス値を受信し、前記アドレス値が前記アドレス・エントリの１つに合致するならば前記コード・エントリの対応するものを出力し、前記アドレス値が前記コード・エントリの１つに合致するならば前記アドレス・エントリの対応するものを出力し、前記アドレス値が前記オフセット・エントリにも前記コード・エントリにも合致しない場合にその旨を示す制御信号を生成するコード・ブックと、
前記アドレス値、前記限定コード・ブックからの出力および前記制御信号を受信するとともに、前記アドレス値が前記オフセット・エントリにも前記コード・エントリにも合致しないことを前記制御信号が通知する場合には前記アドレス値を選択し、前記アドレス値が前記オフセット・エントリあるいは前記コード・エントリに合致したことを前記制御信号が通知する場合には前記コード・ブックからの出力を選択する選択モジュールとを備えることを特徴とするエンコーダ。
【請求項１０】
請求項９記載のエンコーダにおいて、更に、
メモリに対して通信するための目標アドレスを受信する入力と、
前記目標アドレスに先行して前記入力から受信した先行目標アドレスを維持する第１メモリ素子と、
前記目標アドレスと、前記第１メモリ素子に維持された前記先行目標アドレスとの間のオフセットを決定し、前記オフセットを前記コード・ブックおよび前記選択モジュールにアドレス値として提供するオフセット・モジュールとを備えることを特徴とするエンコーダ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に回路設計に関し、特にバス・スイッチング動作を低減することに関する。
【０００２】
【従来の技術】
本発明は、“Alborz: Address Level Bus Power Optimization”と題する２００１年６月１１日に出願された米国仮特許出願番号６０／２９７，６１４および“Method and Apparatus for Bus Encoding”と題する２００１年６月１３日に出願された米国仮特許出願番号６０／２９８，２３３に基づくものである。
【０００３】
電力への配慮は回路設計をしばしば困難にする。回路設計は、発生する熱および全電力の条件および要請に対応しなければならず、それは回路がより一層小型化されるにつれて、より多くの素子を包含するにつれて、より高い周波数で動作するにつれて益々厳しくなる。さらに、移動体装置は一般に限られた充電バッテリを前提とする。したがって、電力消費を低減することは、充電と充電の間の装置の利用可能性を長期化することに相当する。
【０００４】
【発明が解決しようとする課題】
本願課題は、バス・スイッチング動作を削減する手法を提供することである。
【０００５】
【課題を解決するための手段】
本発明によれば、バス・スイッチング動作を削減するための手法が提供される。特定の実施形態によれば、これらの手法は電子機器の電力消費を削減する。
【０００６】
特定の実施形態によれば、バスにおけるスイッチング動作を減少させる方法は、目標アドレスが連続的(sequential)であるならば、アドレス・バスにおける現在値を維持する。本方法は、目標アドレスが連続的でない且つ目標アドレスが前記アドレス・バスにおける現在値に等しくないならば、前記アドレス・バスにおける目標アドレスをエンコードする。本方法は、目標アドレスが前記アドレス・バスにおける前記現在値に等しいならば、連続的なアドレス（以前の目標アドレスに一定値を加えたもの）を前記アドレス・バスに送信する。
【０００７】
他の実施形態によれば、バスにおけるスイッチング動作を減少させる方法は、メモリに対して通信するためのアドレス・バスにおける目標アドレスを受信する。本方法は、目標アドレスと以前の目標アドレスとの間のオフセットを判定し、前記オフセットが負であるならば、前記オフセット中の選択されたビットを反転し、前記オフセットと前記アドレス・バスに送信された以前の符号化されたオフセットとの間で排他的ＯＲ演算を実行する。本方法は更に排他的ＯＲ演算の結果をアドレス・バスに送信する。
【０００８】
他の実施形態によれば、バスにおけるスイッチング動作を減少させるために値を符号化する方法は、メモリに対して通信を行うためのアドレス・バスにおける目標アドレスを受信する。本方法は、目標アドレスと以前の目標アドレスの間のオフセットを判定し、そのオフセットを利用して限定コード・ブックにアクセスし、前記限定コード・ブックは複数のアドレス・エントリを複数のコード・エントリにマッピングする。オフセットがオフセット・エントリの１つに合致するならば、本方法は、前記合致するオフセット・エントリに対応するコード・エントリのものに等しい符号化オフセットを設定する。オフセットがコード・エントリの１つに合致するならば、本方法は、合致する符号化エントリに対応するオフセット・エントリのものに等しい符号化アドレスを設定する。オフセットがオフセット・エントリにもコード・エントリにも合致しないならば、本方法はそのオフセットに等しい符号化オフセットを設定する。本方法は、符号化オフセットおよびアドレス・バスに送信された以前の符号化オフセットの間で排他的ＯＲ演算を実行し、排他的ＯＲ演算の結果をアドレス・バスに送信する。
【０００９】
本発明の実施例は様々な技術的利点を提供する。これらの手法は、適切に実現されるならば、回路内の命令アドレス・バスのスイッチング動作を低減させる。このことは、熱の低減および消費電力の低減という回路設計の２つの主目的を達成することを支援する。
【００１０】
更に、これらの技術を利用すると、最小の外部回路しか必要とせず、または既存の回路設計に対して最小の変更しか必要としない。例えば、いくつかの開示される手法は、新たな制御または通信の線を導入することなしに、動作し得る。したがって、これらの手法は既存の回路板および回路素子を利用して実現され得る。
【００１１】
本発明の他の技術的利点は、以下の詳細な説明、請求の範囲および図面により、当業者によく理解されるであろう。なお、具体的な利点が列挙されたが、様々な実施例は列挙された利点の全部または一部を包含し、または包含しない。
【００１２】
本発明およびその利点の更なる理解のために、添付図面を考慮して説明がなされる。
【００１３】
【発明の実施の形態】
図１は、１０で示される処理システムを示すブロック図であり、アドレス・バス１６およびデータ・バス１８を利用して互いに結合されたマイクロプロセッサ１２およびメモリ１４を包含する。アドレス・バス１６のスイッチング動作を低減させるために、システム１０は、マイクロプロセッサ１２およびアドレス・バス１６の間に結合されたエンコーダ２０と、アドレス１６およびメモリ１４の間に結合されたデコーダ２２を有する。概して、エンコーダ２０およびデコーダ２２は、１つ又はそれ以上の符号化技術を利用して、アドレス・バス１６のスイッチング動作を低減させる。
【００１４】
動作時にあっては、マイクロプロセッサ１２は、アドレス・バス１６を利用して、メモリ１４におよびそこからデータの通信を要求する。マイクロプロセッサ１２およびメモリ１４は、アドレス・バス１６の値に基づいてデータ・バス１８上のデータを交換する。アドレス・バス１６およびデータ・バス１８に値を設定することは電力を使用し、多くの場合バスの値の変化数に比例する。例えば、１６進００(00 hex)のアドレスから１６進ＦＦへの変化は、１６進００から１６進０１への変化よりも多くの電力を消費する。したがって、バスにおける連続する設定の間の変化を低減することは、スイッチング動作を低減し、バスの電力消費を低減することを可能にする。システムの中で、バスは一般に他の素子よりも多くの電力を消費する。このため、スイッチング動作を低減するために導入される要素は、その要素に起因するスイッチング動作の削減によって節約される電力よりも、顕著に少ない電力しか消費しない。したがって、エンコーダ２０およびデコーダ２２を付加することは、アドレス・バス１６のスイッチング動作を低減させることによって、システム１０の正味の電力消費を低減させる。
【００１５】
アドレス・バス１６のスイッチング動作を低減させるために、エンコーダ２０およびデコーダ２２は１つ又はそれ以上の技術を利用して、アドレス・バス１６で通信される連続的な値の変化を減少させる。特定の実施例によれば、エンコーダ２０およびデコーダ２２は、所定のアプリケーションにおいて予測可能なアドレス要求の性質を利用する。あるアプリケーションでは、マイクロプロセッサ１２は、一連のアドレス要求を利用して多くのデータ・ブロックを頻繁に要求する。例えば、プログラムの実行時に、分岐または類似する命令が生じない限り、一般にプロセス・フローは命令から命令に連続的に進む。メモリ１４から命令を要求する場合に、マイクロプロセッサ１２は、一連のアドレス要求を頻繁に発生させ、その各々は先行する値に例えば１のようなある一定値だけ増分されたものに等しい。同様に、情報ブロックにアクセスするデータ要求は、一連のアドレスの有意義なストリング(significant strings)にもなり得る。したがって、エンコーダ２０およびデコーダ２２は、マイクロプロセッサ１２の高度に予測可能な挙動を利用することが可能であり、分岐、ジャンプ、データ要求および／または連続的でないアドレス指定となる他のイベントに対するマイクロプロセッサ１２の応答にも対応する必要がある。エンコーダ２０の特定の実施例は、マイクロプロセッサ１２により生成される目標アドレス(target address)の連続性を利用して、アドレス・バス１６のスイッチング動作を低減させる。
【００１６】
特定の実施例では、エンコーダ２０は、目標アドレスが連続的である限り、アドレス・バス１６の値を固定する手法を実行する。例えば、初期のアドレス値０５および以後のアドレス値０６，０７，０８が与えられる場合に、エンコーダ２０は最初にアドレス・バス１６に０５を送信し、０６，０７，０８を送信する代わりに０５の値をアドレス・バス１６で維持する。システム１０が適切に同期するならば、デコーダは、４つのタイム・フレームの間に、０５から始まる一連のアドレスを示すアドレス・バス１６の値０５を解読する。したがって、デコーダ２２は、アドレス・バス１６の固定された状態で、０５，０６，０７，０８のアドレス値を把握する。連続的でないアドレスが与えられると、エンコーダ２０は、アドレス・バス１６に連続的でないアドレスの値を単に送信する。例えば、アドレス０８の後に、マイクロプロセッサ１２がアドレス０３を要求するならば、エンコーダ２０はアドレス・バス１６に０３を送信する。デコーダ２２はアドレス・バス１６の変化を検出し、新たに受信したアドレスを解読する。
【００１７】
しかしながら、マイクロプロセッサ１２により要求された非連続的なアドレスがアドレス・バス１６に固定された現在値に等しい場合は、エンコーダ２０およびデコーダ２２はこの特殊な状況を明らかにするための付加的な手法を使用する。この状態を明らかにするため、エンコーダ２０は、マイクロプロセッサ１２により要求された以前のアドレスからカウントされるシーケンス・アドレスの値を送信する。すなわち、先の例を利用すると、マイクロプロセッサ１２が、シーケンス０５，０６，０７，０８の後で０５に分岐する場合に、エンコーダ２０はこの状況を明確にするためにアドレス・バス１６に０９の値を送信する。マイクロプロセッサ１２により要求されるアドレスが真に０９であったならば、エンコーダ２０は、アドレス・バス１６で現在値０５を維持するだけである。アドレス・バス１６に０９の値を送信することにより、エンコーダ２０は、デコーダ２２に対して、マイクロプロセッサ１２により要求された実際の目標アドレスが、その値が以前にアドレス・バス１６に固定されていたところのアドレスであることを通知する。
【００１８】
この手法は、アドレス・バス１６の値と、マイクロプロセッサ１２により生成される任意のアドレスとの間の１対１マッピングを提供する。したがって、この手法は、特定のアドレスがエンコードされるか否かを示すための付加的な制御線を必要とすることなしに、回路内で実現可能である。この手法はアドレスをエンコードするための非冗長的な(irredundant)手法を提供する。これは、バス・アーキテクチャまたは制御線における変更を要することなしに、既存のハードウエアおよび要素を機能強化することを可能にする。
【００１９】
特定の実施例によれば、エンコーダ２０は、代替的に又はそれに代えて、アドレス・バス１６における連続的な値の変化を減少させる操作を組み合わせることが可能である。特定の実施例によれば、エンコーダ２０は、オフセット符号化、２進１の頻度の低減、および信号変化(transition signaling)の組み合わせを利用して、連続的なアドレス値の変化を減少させる。エンコーダ２０はアドレス・バス１６にこれらの操作の結果を送信する。オフセット符号化に関し、エンコーダ２０は目標アドレスと先行する目標アドレスとの間のオフセットを判定する。例えば、エンコーダ２０は、目標アドレス値から以前の目標アドレス値を減算することが可能である。エンコーダ２０は更にこの値から１を減算し、連続的アドレスに関して値０のオフセットを生成し得る。
【００２０】
判定されたオフセットにおいて、２進１の頻度を減少させるために、エンコーダ２０はマイクロプロセッサの動作の相対的な予測可能性を利用する。多くの場合、マイクロプロセッサ１２の遭遇するオフセットは比較的小さいであろう。従って正のオフセットに対して、そのオフセットは相対的に少数の１（２進表記で）を有する。しかしながら、負のオフセットに対しては、これらのオフセットの大きさが相対的に小さいことの確からしさは、判定されたオフセット内の１の確率を増加させる。例えば、２つの相補的形式において、負の１の値は、総てが１であることによって表現される（例えば、１６進ＦＦＦＦ）。負のオフセットに関し、エンコーダ２０は、負のオフセットを、符号／大きさ(sign/magnitude)形式または符号／大きさ形式を変形したものに変換することによって、オフセット内の１の確率を減少させる。特定の実施例によれば、エンコーダ２０は、負のオフセットの最上位ビットを除く総てのビットを反転する。例えば、１６進ＦＦＦＦ（−１）のオフセットが与えられる場合に、エンコーダ２０はこのオフセットを１６進８０００に修正する。この例により理解されるように、これは、判定されたオフセット内の１の数を少ない処理労力で顕著に減少させることが可能である。
【００２１】
オフセット符号化および１の頻度の適切な低減化を利用して、符号化されたオフセットを生成した後に、エンコーダ２０は信号変化を利用して、アドレス・バス１６に符号化オフセットを送信する。信号変化に関し、エンコーダ２０はアドレス・バス１６を利用して、符号化オフセットとアドレス・バス１６で通信された以前の値との間の差分のみを示す。この信号送信に関し、エンコーダ２０は、修正されたオフセットとアドレス・バス１６における以前の値との間で排他的ＯＲ演算を実行する。排他的ＯＲ演算の非相関性(decorrelating)に起因して、デコーダ２２は、アドレス１６の現在値およびアドレス・バス１６からの以前の値を利用して、別の排他的ＯＲ演算を実行することによって、排他的ＯＲ演算をリバース(reverse)することが可能である。デコーダ２２は、エンコーダ２０によって実行された符号化手順を遡る（リバースする）ことが可能である。例えば、アドレス１６で受信したオフセットが０より大きい又は等しい場合に、デコーダ２２は、先行するアドレス値にオフセットと１の値とを付加し、要求される目標アドレスを指定する。受信したオフセットの最上位ビットが１であるならば、デコーダ２２は、受信したオフセットの最上位ビットを除く総てを反転する。そして、デコーダ２２は先行するアドレスにその負の値を加えて、要求される目標アドレスを指定する。こうして、比較的少数の操作を利用して、エンコーダ２０およびデコーダ２２はアドレス１６のスイッチング動作を低減させることが可能である。
【００２２】
更にスイッチング動作を低減させるために、エンコーダ２０およびデコーダ２２はコード・ブックを利用して、アドレス・バス１６に送信されるオフセット内の１の数を更に低減させる。コード・ブックは第１の値から第２の値への写像(mapping)を提供し、エンコーダ２０はコード・ブックを利用して、オフセットの値を、より少数の１を含む符号化オフセットにマッピングする。これらのコード・ブックは、適切な手法及び適切な写像を利用して、アドレス・バス１６で通信される値における１の数を減少させる。例えば、エンコーダ２０は、５つの１を有するオフセット値を、単一の１を有するにすぎない符号化オフセットにマッピングするエントリを有するコード・ブックを有する。受信した符号化オフセットを適切にデコードするために、デコーダ２２は逆写像を与えるコード・ブックを包含し、意図されるオフセットが区別されるようにする必要がある。このようなコード・ブックを実現するために、エンコーダ２０およびデコーダ２２は適切なハードウエア及び／又は論理を利用し得る。例えば、コード・ブック論理は、オフセットを符号化オフセットにマッピングするためのメモリその他の回路を包含し得る。特定の実施例では、コード・ブック論理は、メモリ素子を有しない論理装置の組み合わせのみによって実現され得る。任意の数および形式のコード・ブック手法が、エンコーダ２０およびデコーダ２２で実現され得ることを当業者は理解するであろう。
【００２３】
特定の実施例によれば、エンコーダ２０は埋め込み(embedded)ｋビット・コード・ブックを利用し、これはｋビット・ソース・ワードをｋビット・コード・ワードに変換するものである。例えば、所与の６４ビット値に対して、６４ビット・コード・ブックは値全体を６４ビット・コード・ワードに変換する。しかしながら、コード・ブックはオフセットの全ビットのマッピングを必要としない。例えば、６４ビット・オフセットおよび１０ビット・コード・ブックが与えられる場合に、エンコーダ２０はこのコード・ブックを利用して、オフセットの最下位１０ビットのみを変換する。オフセットの最上位ビットは多くの場合ほとんど一定であるので、オフセットおよび／またはアドレスの一部のみをマッピングするコード・ブックは、少ないハードウエアおよび処理オーバーヘッドを要求しつつ、１の頻度を減少させる上で実効的となり得る。
【００２４】
特定の実施例によれば、エンコーダ２０が包含するコード・ブックは、高い頻度で生じるオフセットを、より少数の１を含む制限された重みコード(limited weight code)にマッピングする。例えば、所与の１０ビット・コード・ブックに対して、第１の１０個の最も共通に生じるオフセットは、１，２，４，８，１６，３２，６４，１２８，２５６および５１２のコード値に割り当てられ得る。これは、これら共通に生じるオフセットを、単一の１を含むコード・ワードにマッピングする。コード・ブックにおける次の４５エントリは、正確に２つの１を有するコード・ワード（例えば、３，５，...）にマッピングする。この形式では、コード・ブックはソースの値を制限された重みの符号化値にマッピングし、符号化され値における１の確率を減少させ、アドレス・バス１６のスイッチング動作を低減させる。
【００２５】
コード・ブック内の多数のエントリを減少させるために、エンコーダ２０およびデコーダ２２は、同一のコード・ワードに互いに相補的である数の最下位ビットをマッピングするコード・ブックを使用する。例えば、符号／大きさ形式では、１０および−１０はそれぞれ同一の大きさを有し、これら２つの値の間では符号ビットが相違するのみである。値が符号／大きさ形式におけるものならば、エンコーダ２０およびデコーダ２２は、純粋に大きさに基づいてマッピングするコード・ブックを使用し得る。「純粋な(pure)」符号／大きさマッピングの代わりとして、エンコーダ２０およびデコーダ２２は、コード・ブックにアクセするのに先立って、負の数の最下位ビットを単に反転させ得る。その大きさを符号化された大きさにエンコードした後に、エンコーダ２０はアドレス・バス１６に符号ビットおよび符号化された大きさを送信する。この手法は、コード・ブック内のエントリの数を２の因子だけ減少させ、コード・ブックのハードウエア・オーバーヘッドを顕著に減少させる。この手法は完全なおよび限定されたコード・ブックの両者で実現可能である。
【００２６】
特定の実施例によれば、エンコーダ２０およびデコーダ２２は、限定されたコード・ブックを利用する非冗長的な符号化手法を実行する。限定されたコード・ブックは、ソース・ワードの潜在的な値のいくつかのみをコード・ワードにマッピングする。例えば、１ビットのみおよび２ビット限定重みコード（単独の１または２つの１を有するコード）に対するエントリを有する１０ビット限定コード・ブックが与えられる場合に、限定コード・ブックは、５５の可能な値のみに関するマッピングを提供する。符号化された値が通信されることを示すために余分な制御線を要せずに、限定コード・ブックを利用するために、エンコーダ２０は、目標アドレスの値とアドレス・バス１６での通信のための値との間の１対１の関連性を有する手法を実行する。すなわち、各目標アドレスは、アドレス・バス１６における通信用に正確に１つの値をマッピングし、デコーダ２２により受信される各値は目標アドレス値にマッピングされる。
【００２７】
このマッピングを実行するために、エンコーダ２０は先ず目標アドレスと以前のアドレスとの間のオフセットを決定する。エンコーダ２０はこのオフセットを利用して、限定されたコード・ブックにアクセスする。限定コード・ブックは、２つの列を有するテーブルとして描かれることが可能であり、第１列はオフセットを列挙し、第２列は対応する限定重みコードを列挙する。オフセットが、コード・ブック内のオフセットの１つに合致するならば、エンコーダ２０は、対応する限定された重みコードをコード値として使用する。決定されたオフセットがコード・ブック内の限定重みコードの１つに合致するならば、エンコーダ２０は限定コード・ブックから対応するオフセットをコード値として使用する。例えば、コード・ブック・エントリが、７のオフセットを１の限定された重みコードにマッピングすることを想定する。所与の決定されたオフセット７に対して、エンコーダ２０は１のコード・ブック値を使用する。所与の決定されたオフセット１に対して、エンコーダ２０は７のコード・ブック値を使用する。
【００２８】
決定されたオフセットが限定コード・ブック内の何れのオフセット又はコードにも合致しないならば、エンコーダ２０は決定されたオフセットに等しいコード値を使用する。例えば、６のオフセット値が、限定コード・ブック内で何れのオフセット又は限定重みコードに合致しないならば、エンコーダ２０は６のコード値を使用する。適切なコード値の決定の後に、エンコーダ２０は信号変化を利用してアドレス・バス１６にコード値を送信する。限定コード・ブックを利用することは、コード・ブックのサイズを減少させ、さらにこの手法は、付加的な制御線を要することなしに、限定コード・ブックを利用可能にする。
【００２９】
限定されたコード・ブックを利世する場合に、システム１０は、コード・ブック内にマッピングを設ける任意の適切な手法を使用し得る。特定の実施例では、エンコーダ２０およびデコーダ２２は、マッピングが時間と共に変化する適応的コード・ブックを使用し得る。例えば、エンコーダ２０およびデコーダ２２の各々は、１ビット限定重みコードへのマッピングを可能にするところの１０ビット・コード・ブックを使用し得る。各コード・ブックは１０個の可能性のあるマッピングを提供する。初期化の際に、これら１０個のマッピングは、１０個の最も共通して生じる値にマッピングするよう設定され、または当初は何らのマッピングも提供しないよう設定され得る。適応的なコード・ブック内でマッピングされない値を検出されると、コード・ブックは、特定のマッピングが新たなマッピングを反映するよう変更されることによって、代替的手法を強制する。例えば、新たな値が検出される度に、コード・ブックは、最も長期間使用されなかったエントリを置換し得る。しかしながら、システム１０は、適切な時間、カウンタおよび／または手法を利用してエンコーダ２０を監視し、適応的コード・ブック内における適切な置換を判定する。更に、適応的コード・ブックは、非冗長的または冗長的主王で使用され得る。例えば、エンコーダ２０は、適応的なコード・ブックからのエントリが使用されること又は置換されるべきことを示すために、デコーダ２２への制御線を有し得る。デコーダ２２は、エンコーダ２０で実行されたのと同様な手法を実行し、デコーダ２２がアドレス・バス１６で受信した値を適切に解釈し得るようにする。
【００３０】
以上の記述はアドレス・バス１６のスイッチング動作を低減させる多数の手法を説明する。これらの手法は特定の形態および組み合わせで説明されてきたが、システム１０は、任意の適切な組み合わせを利用してエンコーダ２０を監視し、それらの動作がアドレス・バス１６におけるスイッチング動作を減少させるよう要求する。
【００３１】
図２は、非冗長的符号化手法を実行するエンコーダ３０を示すブロック図であり、連続的なアドレス要求の間に、「凍結した(freezing)」アドレス・バス１６によって、アドレスの連続的な性質を利用してアドレス・バス１６におけるスイッチング動作を減少させる。エンコーダ３０は入力３２において目標アドレスを受信し、比較器３４を利用してその目標アドレスが連続的であるか否かを判定する。比較器３４は、レジスタ３６および加算器３８により供給されるところの一定値だけ増分された以前の目標値に加えて、入力３２から目標アドレスを受信する。図示される実施例では、連続的なアドレス値は一定値１だけ増分され、加算器３８が、レジスタ３６に格納されている以前の目標アドレス値に１の値を加算し、その値を比較器３４に提供する。入力３２で受信したアドレスと加算器３８から提供されたアドレスとの間の比較により、比較器３４は目標アドレスが連続的であるか否かを判定し、その結果をマルチプレクサ４０の制御入力として使用する。目標アドレスが連続的であるならば、比較器３４はマルチプレクサ４０を利用して、アドレス・バス１６の値を凍結させる（固定する）。エンコーダ３０は、レジスタ４２内のアドレス・バス１６で通信した以前の値を維持する。したがって、目標アドレスが連続的である場合は、比較器３４はマルチプレクサ４０に対してレジスタ４２からの値を選択させる制御入力を提供する。エンコーダ３０はマルチプレクサ４０からの値をアドレス・バス１６上の出力４４に送信する。こうして、目標アドレスが連続的である場合には、エンコーダ３０はアドレス・バス１６の値を固定する。
【００３２】
目標アドレスが連続的でないならば、エンコーダ３０は、目標アドレスおよび以前に送信したアドレスに対する値に基づいて、送信するアドレスを決定する。この選択を行うために、エンコーダ３０は、入力３２で受信した目標アドレスと、レジスタ４２内に保持される以前に送信したアドレスとの間で比較を行う比較器４６を備える。この比較は、目標アドレスがアドレス・バス１６に固定したアドレス値に等しい場合にエンコーダ３０が遭遇するところの特殊な状況に識別する。比較器４６からの結果はマルチプレクサ４８の出力を制御し、これは目標アドレスと、レジスタ３６及び加算器３８によって生成される連続的なアドレスとの間の選択を行う。目標アドレスおよび先行する符号化アドレスが等しくないならば、比較器４６はマルチプレクサ４８に対して目標アドレスを選択するよう命令する。目標アドレスおよび先行する符号化アドレスが等しいならば、マルチプレクサ４８は、レジスタ３６および加算器３８により生成される連続的なアドレスを選択する。こうして、エンコーダ３０は、アドレス・バス１６で通信されるアドレスに関して非冗長的な符号化手法を提供する３つの状態を実現する。
【００３３】
アドレス・バス１６のスイッチング動作を更に減少させるために、エンコーダ３０は、アドレス・バス１６で通信される値をエンコードする符号化論理５０をも包含し得る。例えば、符号化論理５０は、オフセット符号化、コード・ブック、符号／大きさ符号化、ビット反転および／または信号変化のような上述した他の手法の全部又は一部を実行し得る。したがって、エンコーダ２０が、２つの数が同一値にマッピングされないように数をマッピングする限り、上述した手法は適宜組み合わせることが可能であり、目標アドレスを符号化する付加的な恩恵を享受することが可能である。
【００３４】
図３は、入力６２を利用して目標アドレスを受信し、出力６４から符号化アドレスを生成するエンコーダ６０を示す回路図である。エンコーダ６０は、オフセット符号化、負数のビット反転および信号変化を利用して、符号化アドレスを生成する。エンコーダ６０は入力６２において目標アドレスを受信し、現在の目標アドレスからレジスタ６８に格納されているような以前の目標値を減算する減算器６６を利用して、オフセットを生成する。連続的なアドレスがアドレス・バス１６に何らの変化も生じさせないように、エンコーダ６０は減算器７２を利用して１つだけオフセット値を減算する。
【００３５】
エンコーダ６０は、オフセットがゼロより大きいか否かに基づいて、２値の内の１つを選択する。オフセットがゼロより大きいならば、マルチプレクサ７０は、減算器７２からの値を直接的に選択する。オフセットがゼロより大きくないならば、マルチプレクサ７０は、判定されたオフセットの最下位ビットを反転させる反転論理７４からの出力を選択する。すなわち、上述したように、反転論理７４は、最上位ビットを除いてオフセット内の総てのビットに対して反転する。マルチプレクサ７０は、選択した出力を排他的ＯＲモジュール７６に提供する。
【００３６】
排他的ＯＲモジュール７６は、マルチプレクサ７０からの出力と、レジスタ７８内に格納されているような以前の符号化アドレスとの間で排他的ＯＲ演算を実行し、信号変化を検出する。排他的ＯＲモジュール７６は、出力６４に結果を提供し、次のアドレスの計算用にレジスタ７８に格納する。エンコーダ６０は出力６４における符号化アドレスをアドレス・バス１６における通信に提供する。
【００３７】
図４は、入力９２で受信した目標アドレスに関して操作を行い、出力９４で符号化アドレスを生成するエンコーダ９０を示すブロック図である。エンコーダ６０と同様に、エンコーダ９０は、オフセット符号化、負数におけるビット反転、および信号変化を実行する。これらの操作に加えて、エンコーダ９０は、コード・ブックを利用するオフセットの符号化をも行う。
【００３８】
エンコーダ９０は、入力９２で受信した目標値から、レジスタ９８内に格納されているような以前の目標アドレスを減算する減算器９６を利用して、入力９２で受信した目標アドレスと以前の目標アドレスとの間のオフセットを判定する。連続的なアドレスがアドレス・バス１６に何らの変化も生じさせないように、エンコーダ９０は減算器１０２を利用して１つだけオフセット値を減算する。マルチプレクサ１００は、判定されたオフセットがゼロより大きいか否かに基づいて、２値の間で選択を行う。オフセットがゼロより大きいならば、マルチプレクサ１００は減算器１０２からの直接的な値を選択する。オフセットがゼロより大きくないならば、マルチプレクサ１００は反転論理１０４からの出力を選択する。エンコーダ６０内の動作と同様に、エンコーダ９０内の反転論理１０４は、オフセットの最下位ビットを反転して、負数の中の１の確率を減少させる。
【００３９】
マルチプレクサ１００は選択した出力をコード・ブック１０６に提供する。コード・ブック１０６は、入力値と出力値との間のマッピングを提供し、このマッピングはアドレス・バス１６のスイッチング動作を時間と共に減少させるものである。上述したように、コード・ブック１０６は、任意の適切な手法および受信した入力の内任意のビット数を利用することが可能である。例えば、ほとんどのオフセットが、１０ビット２進値を利用して表現され得る数の範疇にあるならば、コード・ブック１０６は、判定されたオフセットの１０個の最下位ビットにのみマッピングを実行し得る。
【００４０】
コード・ブック１０６は、符号化オフセットを排他的ＯＲモジュール１０８に提供する。排他的ＯＲモジュール１０８は、符号化されたオフセットと、レジスタ１１０内に格納されたような以前の符号化アドレスとの間で排他的ＯＲ演算を実行し、その排他的ＯＲ演算の結果を出力９４に、アドレス・バス１６における通信のための符号化アドレスとして提供する。排他的ＯＲモジュール１０８は、次の符号化アドレスの判定で使用するためにレジスタ１１０にも、符号化アドレスを提供する。したがって、エンコーダ９０は、オフセット符号化、１の頻度の低減、コード・ブック・マッピング、および信号変化を利用して、目標アドレスの符号化を行う。
【００４１】
図５は、エンコーダ１２０の例示的な論理回路図を示し、入力１２２で目標アドレスを受信し、出力１２４で符号化アドレス生成する。エンコーダ１２０は、オフセットを利用して符号化アドレスを生成し、限定されたコード・ブックにアクセスし、コード・ブック「不在(misses)」を取り扱うための論理を提供する。すなわち、エンコーダ１２０内の限定コード・ブックはｎビット・コード・ブックであり、ｎビット２進値を利用して表現可能な総ての値よりも少ないものへのマッピングを提供する。
【００４２】
エンコーダ１２０は、目標アドレスを受信し、以前の目標アドレスからオフセットを判定し、入力１２２で受信した目標アドレスから、レジスタ１２８内に格納されたような以前の目標アドレスを減算するための減算器１２６を利用する。エンコーダ１２０は判定されたオフセットを利用して限定されたコード・ブック１３０にアクセスする。上述したように、限定コード・ブック１３０は、決定されたオフセットの任意のビット数に対するマッピングを提供するが、それらのビットの可能な値の総てに対する完全なマッピングを提供するものではない。入力としてのオフセットを受信すると、コード・ブック１３０は、オフセットがオフセット・エントリに合致するか否かを判定し、合致するならば、対応するコードを選択する。オフセットがオフセット・エントリに合致しないならば、コード・ブック１３０はオフセットがコードの内の１つに合致するか否かを判定する。合致するならば、コード・ブック１３０は対応するオフセット・エントリを選択する。コード・ブック１３０は、入力として選択した値をマルチプレクサ１３２に提供し、マルチプレクサ１３２に対する制御信号も提供する。制御信号は、オフセットが、コード・ブック１３０内のオフセット・エントリの中の１つ又はコード・エントリの中の１つに「ヒット(hit)」するか否かを示す。コード・ブック１３０内にヒットがあれば、マルチプレクサ１３２はコード・ブック１３０からの出力を選択する。オフセットがコード・ブック１３０内でヒットしなかったならば、マルチプレクサ１３２はそのオフセットを選択する。マルチプレクサ１３２は選択した値を排他的ＯＲモジュール１３４に提供する。
【００４３】
排他的ＯＲモジュール１３４は、マルチプレクサ１３２から受信した入力と、レジスタ１３６内に格納されたような以前の符号化アドレスとの間で排他的ＯＲ演算を実行する。排他的ＯＲモジュール１３４はこの演算の結果を出力１２４における符号化アドレスとしてアドレス・バス１６に送信する。排他的ＯＲモジュール１３４は、次の符号化アドレス値の判定で使用するために、その符号化アドレスをレジスタ１３６にも提供する。エンコーダ１２０は、限定されたコード・ブックを利用して、目標アドレスの非冗長的な符号化を行う。
【００４４】
上記説明および添付図面は、様々な符号化手法を実現する回路例を提供する。しかしながら、これらは単なる例示であって、システム１０は、様々な符号化手法を実現する要素の適切な結合および配置を利用して実現することが可能である。したがって、これらのエンコーダは、目標アドレスを処理するための任意の適切な結合及び配置を包含し、アドレス・バス１６における通信のための符号化アドレスを生成し、その符号化アドレスはスイッチング動作を時間と共に減少させるものである。さらに、説明した様々なエンコーダの動作は適宜結合および／または分離され得る。例えば、上述したように、エンコーダ３０は符号化論理５０を包含し、エンコーダ６０，エンコーダ９０よびエンコーダ１２０で使用される符号化手法の全部又は一部を実行する。
【００４５】
図６は、目標アドレスの非冗長的符号化を行う方法を示すフローチャートであり、適切な時間においてアドレス・バス１６を凍結させることによって、受信した目標アドレスの連続的な性質を利用するものである。上述したように、本方法は、３つの動作モードを提供し、第１は連続的な目標アドレスに対するものであり、第２はアドレス・バス１６の値に等しい目標アドレスに対するものであり、第３は他の総てに対するものである。以下の説明は、エンコーダ３０の動作に関連するが、これはその回路図がこの符号化手法を提供する機能素子示すためである。しかしながら、システム１０は、これらの動作を提供する機能要素の任意の適切な結合および配置を利用して実現可能であり、これらの手法が適宜他の手法と共に結合され得ることに留意すべきである。
【００４６】
ステップ１５０においてエンコーダ３０は初期化する。例えば、エンコーダ３０は、レジスタ３６およびレジスタ４２の値を初期化する。エンコーダ３０はステップ１５２において目標アドレスを受信し、ステップ１５４において目標アドレスが連続的であるか否かを判定する。例えば、エンコーダ３０は、以前に受信した目標アドレスと比較する際に、比較器３４を利用して、受信した目標アドレスが連続的であるか否かを判定し得る。目標アドレスが連続的であるならば、エンコーダ３０はステップ１５６においてアドレス・バス１６における値を維持する。受信した目標アドレスが連続的である限り、エンコーダ２０はアドレス・バス１６で何らのスイッチング動作も起こさない。
【００４７】
目標アドレスが連続的でないならば、ステップ１５８において、エンコーダ３０は目標アドレスが現在のアドレス・バス値に等しいか否かを判定する。例えば、エンコーダ３０は、受信した目標アドレスを、レジスタ４２に格納した以前の符号化アドレスと比較し得る。目標アドレスおよび以前の符号化アドレスが等しくないならば、エンコーダ３０はステップ１６０において目標アドレスを符号化アドレスとして送信する。目標アドレスが以前の符号化アドレスに等しいならば、ステップ１６２において、エンコーダ３０はその連続的なアドレスを符号化アドレスとして送信する。例えば、エンコーダは、加算器３８により増分されるレジスタ３６内で維持される以前のアドレス目標アドレスを送信するよう選択し、デコーダ２２に対して、目標アドレスがアドレス・バス１６で符号化されている現在のアドレスに等しいところの特殊な状況を通知する。このプロセスは、エンコーダ３０が上述した手順に基づいて３つの動作モードの中から選択しながら、受信目標アドレス毎に反復される。
【００４８】
図７は、オフセット符号化、１の出現確率の低減、コード・ブックおよび信号変化を利用して、目標アドレスを符号化アドレスにエンコードする方法を示すフローチャートである。このフローチャートはエンコーダ９０により実現されるものと類似するプロセスを有するので、以下の説明はエンコーダ９０の動作に関連して行う。しかしながら、先のフローチャート同様に、システム１０は同様な機能を実現するのに適切な任意の素子および／または論理を利用することが可能である。
【００４９】
エンコーダ９０は、ステップ１８０において初期化する。例えば、エンコーダ９０はレジスタ９８およびレジスタ１１０内の初期値を設定し得る。エンコーダ９０はステップ１８２において目標アドレスを受信し、ステップ１８４において先行する目標アドレスからのオフセットを判定する。例えば、減算器９６を利用して、エンコーダ９０は、入力９２で受信した目標アドレスと、レジスタ９８に保持される先行する目標アドレスとの間のオフセットを判定する。
【００５０】
エンコーダ９０は、ステップ１８６において、オフセットがゼロより大きいか否かを判定する。大きいならば、エンコーダ９０はステップ１８８においてオフセットを１つ減算することによって変換する。オフセットがゼロより大きくないならば、エンコーダ９０は、ステップ１９０においてオフセットの最下位ビットを反転することによってオフセットを変換する。エンコーダ９０はステップ１９２において、コード・ブックを変換されたオフセットに適用する。エンコーダ９０は、コード・ブックから生成された符号化オフセットと、アドレス・バス１６で通信した以前の符号化アドレスとの間で排他的ＯＲ演算を実行し、ステップ１９４でその演算を行う。エンコーダ９０は、ステップ１９６で排他的ＯＲ演算の結果をアドレス・バス１６に送信する。この演算の組み合わせは、多くの場合、減少したスイッチング動作となり、これらの手法を実現する回路に関して低電力消費となる。
【００５１】
図８は、適応的限定コード・ブックを利用して、目標アドレスを符号化アドレスにエンコードする方法を示すフローチャートである。この方法はエンコーダ１２０の機能に類似するので、以下の説明は本法を実行するエンコーダ１２０の動作に関連している。しかしながら、先のフローチャート同様に、システム１０は、上述した機能の全部又は一部を実現する論理要素の適切な結合および配置を利用して実現することが可能である。
【００５２】
エンコーダ１２０はステップ２００で初期化する。例えば、エンコーダ１２０はレジスタ１２８およびレジスタ１３６に関する初期値を設定する。更に、エンコーダ１２０は限定コード・ブック１３０内の初期値を設定し得る。特定の実施例では、エンコーダ１２０は、共通に生じるオフセットを反映するために又は当初は何らのマッピングも含めないために限定コード・ブック１３０を初期化する。初期化の後に、エンコーダ１２０は受信した目標アドレスを処理する。
【００５３】
エンコーダ１２０はステップ２０２において目標アドレスを受信し、ステップ２０４において先行する受信目標アドレスとの間のオフセットを判定する。例えば、減算器１２６を利用して、エンコーダ１２０は、受信した目標アドレスとレジスタ１２８に維持される以前の目標アドレスとの間の差分を判定し得る。ステップ２０６においてオフセットが限定コード・ブック内のオフセット・エントリに合致する場合には、エンコーダ１２０はステップ２０８においてコード・ブック内の対応するコードに等しい符号化オフセット値を設定する。例えば、限定コード・ブック１３０は、コード・ブック内の対応するコードに対する値を出力し、マルチプレクサ１３２にこの出力を選択するよう命令し得る。
【００５４】
オフセットがコード・ブック内のオフセット・エントリに合致しないならば、エンコーダ１２０はステップ２１０においてオフセットがコード・ブック内のコード・エントリに合致するか否かを判定する。合致したならば、エンコーダ１２０はステップ２１２において対応するオフセット・エントリに等しい符号化オフセット値を設定する。例えば、一致が検出されると、限定コード・ブック１３０は対応するオフセット・エントリを出力し、限定コード・ブック１３０から提供される出力を選択するようマルチプレクサ１３２に命令し得る。
【００５５】
オフセットが、限定コード・ブック内のオフセット・エントリにもコード・エントリにも合致しなかったならば、エンコーダ１２０はステップ２１４においてそのオフセットに等しい符号化オフセット値を設定する。例えば、オフセットが総てのオフセット・エントリおよびコード・エントリの中で遭遇しなかったならば、限定コード・ブック１３０はマルチプレクサ１３２に対して、エンコーダ１２０により受信した目標アドレスを選択するよう命令する。さらに、エンコーダ１２０はステップ２１６でコード・ブックを更新し得る。例えば、限定コード・ブックの中で遭遇しないオフセットは、限定されたコード・ブック内で最も少なく使用されたオフセット・エントリを置換する。しかしながら、上述したように、エンコーダ１２０は任意の適切な手法を利用して、限定されたコード・ブックの内容を適応させることが可能である。更に、本方法は適応的コード・ブックを利用することを要しない。
【００５６】
エンコーダ１２０は、ステップ２１８において符号化オフセットおよび先行する符号化オフセットの間で排他的ＯＲ演算を実行し、ステップ２２０でアドレス・バス１６にその結果を送信する。したがって、本方法は、決定されたオフセットが限定されたコード・ブックの中でヒットするか否かに基づいて、符号化オフセットを選択する。さらに、限定されたコード・ブックにおいてそのオフセットおよびオフセット・エントリの間で又はそのオフセットおよびコード・エントリの間での一致に起因して、ヒットが生じるか否かに依存して、限定されたコード・ブックは適切な符号化オフセットを選択する。本方法は外部制御線または通信線の付加を要することなしに、限定コード・ブックの利用を可能にする。
【００５７】
図９は、コード・ブックのサイズを減少させるために、コード・ブック内の値をマッピングする方法を示すフローチャートである。本方法は、使用中のコード・ブック・サイズを確保するために、補数関係にある数を単独のコード・ブック・エントリにマッピングする。具体的には、説明される方法は符号化論理を使用し、２つの補数形式で受信した数について、符号／大きさ形式における値をマッピングするコード・ブックを利用して操作を行う。符号化論理はステップ２３０において符号化されていない値を受信し、ステップ２３２においてその値を符号／大きさ形式に変換する。この論理ではステップ２３４でその大きさを利用してコード・ブックにアクセスする。この論理は、ステップ２３６において符号ビットおよびその大きさに対応するコード・ブック値を出力する。この手法を利用すると、補数の対の各々はコード・ブック内で単独のエントリに合致するので、使用するコード・ブックのサイズが２の因数で減少する。符号／大きさ形式に変換された値に関して操作するよう図示および説明されているが、システム１０は、エンコーダ２０が、コード・ブック内で補数を単独のコード値にマッピングする任意の適切な手法を利用することを可能にする。
【００５８】
上記フローチャートおよび関連する説明は、様々な符号化手法を利用して目標アドレスを符号化アドレスにエンコードする動作の方法例を示す。しかしながら、これらの方法は単なる例示であって、システム１０は、エンコーダ２０が、説明した方法の全部又は一部を利用して、目標アドレスを符号化する任意の適切な手法を実行することを可能にする。したがって、これらの手法の任意の又は総ては、アドレス・バス１６のスイッチング動作を減少させるために別々におよび／または一緒に適宜使用されることが可能である。更に、フローチャートおよび説明は単なる例示であるので、システム１０は、方法が適切である限り、エンコーダ２０が付加的なステップ、より少ないステップおよび／または異なるステップを利用する方法を使用することを可能にする。更に、直接的には示されていないが、デコーダ２２内の素子の動作および配置は、エンコーダ２０の中で実行される具体的な手法に依存する。すなわち、デコーダ２２はエンコーダ２０によって実行される符号化をリバースするよう機能する。したがって、システム１０は、デコーダ２２がハードウエア及び／又は制御論理の適切な組み合わせおよび配置を有することを可能にし、それは、エンコーダ２０の中で実行される動作に依存して、アドレス・バス１６からの符号化アドレスをデコードするために動作するものである。
【００５９】
以上本発明はいくつかの実施例により説明されてきたが、多数の変更および修正が当業者に示唆されるであろうし、本発明の特許請求の範囲の範疇にそのような変更および修正が包含されることを意図する。
【００６０】
以下、本発明の教示する手段を列挙する。
【００６１】
（付記１）  バスにおけるスイッチング動作を減少させる方法であって：
目標アドレスが、以前の目標アドレスの一定値だけ増分したものに等しいならば、アドレス・バスにおける現在値を維持するステップ；
目標アドレスが以前の目標アドレスの一定値だけ増分したものに等しくないならば、および目標アドレスが前記アドレス・バスにおける現在値に等しくないならば、前記アドレス・バスに目標アドレスを送信するステップ；および
目標アドレスが前記アドレス・バスにおける前記現在値に等しいならば、以前の目標アドレスに前記一定値を加えたものを前記アドレス・バスに送信するステップ；
より成ることを特徴とする方法。
【００６２】
（付記２）  付記１記載の方法において、更に：
要求アドレスを装置から受信するステップ；および
前記要求アドレスと前記装置からの以前の要求アドレスとの間のオフセットを判定するステップであって、前記目標アドレスが前記オフセットに等しく、前記以前の目標アドレスが以前に判定したオフセットに等しいところのステップ；
より成ることを特徴とする方法。
【００６３】
（付記３）  付記１記載の方法において、更に：
要求アドレスを装置から受信するステップ；
前記要求アドレスと前記装置からの以前の要求アドレスとの間のオフセットを判定するステップ；および
コード・ブックを利用して前記オフセットを符号化されたオフセットに変換するステップであって、前記目標アドレスが前記符号化されたオフセットに等しいところのステップ；
より成ることを特徴とする方法。
【００６４】
（付記４）  付記１記載の方法において、アドレス・バスに値を送信するステップが：
前記値と前記アドレス・バスにおける現在値との間で排他的ＯＲ演算を実行するステップ；および
前記排他的ＯＲ演算の結果を前記アドレス・バスに送信するステップ；
より成ることを特徴とする方法。
【００６５】
（付記５）  バスにおけるスイッチング動作を減少させる方法であって：
メモリに対して通信するためのアドレス・バスにおける目標アドレスを受信するステップ；
前記目標アドレスと以前の目標アドレスとの間のオフセットを判定するステップ；
前記オフセットが負であるならば、前記オフセット中の選択されたビットを反転するステップ；
前記オフセットと前記アドレス・バスに送信された以前の符号化されたオフセットとの間で排他的ＯＲ演算を実行するステップ；
より成ることを特徴とする方法。
【００６６】
（付記６）  付記５記載の方法において、更に、前記オフセットから一定値を減算するステップより成ることを特徴とする方法。
【００６７】
（付記７）  付記５記載の方法において、更に、コード・ブックを利用して前記オフセットを符号化されたオフセットに変換するステップより成り、前記コード・ブックが複数のオフセット・エントリを複数のコード・エントリにマッピングすることを特徴とする方法。
【００６８】
（付記８）  付記５記載の方法において、前記オフセット中の選択されたビットを反転するステップが、前記オフセットの最上位ビットを除いて、前記オフセットの全ビットを反転するステップより成ることを特徴とする方法。
【００６９】
（付記９）  付記５記載の方法において、前記オフセット中の選択されたビットを反転するステップが、前記オフセットを２つの補数形式から符号／大きさ形式に変換するステップより成ることを特徴とする方法。
【００７０】
（付記１０）  付記９記載の方法において、前記オフセットを変換するステップが、前記符号化されたオフセットを決定するために前記オフセットの大きさを利用してコード・ブックにアクセスするステップより成り、前記コード・ブックが複数の大きさを複数のコード・エントリにマッピングすることを特徴とする方法。
【００７１】
（付記１１）  バスにおけるスイッチング動作を減少させるために値を符号化する方法であって：
アドレス値を受信するステップ；
前記アドレス値を利用して限定されたコード・ブックにアクセスするステップであって、前記限定されたコード・ブックが複数のアドレス・エントリを複数のコード・エントリにマッピングするところのステップ；
前記アドレス値が前記アドレス・エントリの１つに合致するならば、前記合致するアドレス・エントリに対応するコード・エントリのものに等しい符号化アドレス値を設定するステップ；
前記アドレス値が符号化エントリの１つに合致するならば、合致する符号化エントリに対応するアドレス・エントリのものに等しい符号化アドレス値を設定するステップ；
前記オフセットが前記アドレス・エントリにもコード・エントリにも合致しないならば、前記アドレス値に等しい符号化アドレス値を設定するステップ；および
前記符号化アドレスをアドレス・バスに送信するステップ；
より成ることを特徴とする方法。
【００７２】
（付記１２）  付記１１記載の方法であって、更に：
目標アドレスを受信するステップ；
前記目標アドレスと以前の目標アドレスとの間でオフセットを判定するステップ；および
前記コード・ブックにアクセスするアドレス値として前記オフセットを使用するステップ；
より成ることを特徴とする方法。
【００７３】
（付記１３）  付記１１記載の方法であって、前記符号化アドレスを前記アドレス・バスに送信するステップが：
前記符号化オフセットと前記アドレス・バスに送信された以前の符号化オフセットとの間で排他的ＯＲ演算を実行するステップ；および
前記排他的ＯＲ演算の結果をアドレス・バスに送信するステップ；
より成ることを特徴とする方法。
【００７４】
（付記１４）  付記１１記載の方法であって、前記符号化エントリが、２進表記で対応するオフセット・エントリより少数の１を含む限定された重み符号より成ることを特徴とする方法。
【００７５】
（付記１５）  付記１１記載の方法であって、更に、前記アドレス値が前記アドレス・エントリにも前記符号化エントリにも合致しないならば：
前記アドレス・エントリの１つを選択するステップ；および
選択したアドレス・エントリを前記アドレス値と置換し、前記アドレス値の次の出現の際に前記限定されたコード・ブック内で合致するようにするステップ；
より成ることを特徴とする方法。
【００７６】
（付記１６）  エンコーダであって：
目標アドレスを受信するよう動作する入力；
アドレス・バスに結合された出力；
前記入力で受信した以前の目標アドレスを維持する第１メモリ素子；
前記アドレス・バスに送信された以前の符号化アドレスを維持する第２メモリ素子；
前記目標アドレスが以前の目標アドレスに一定値だけ増分したものに等しいならば前記出力に以前の符号化アドレスを提供し、前記目標アドレスが以前の目標アドレスに一定値だけ増分したものに等しくない且つ前記目標アドレスが以前の符号化アドレスに等しくないならば前記出力に前記目標アドレスを提供し、前記目標アドレスが以前の符号化アドレスに等しいならば以前の目標アドレスに前記一定値を加えたものを前記出力に提供するよう動作する選択モジュール；
より成ることを特徴とするエンコーダ。
【００７７】
（付記１７）  付記１６記載のエンコーダにおいて、更に：
要求アドレスを受信するよう動作する初期入力；および
前記初期入力と前記入力との間に結合される符号化論理であって、前記要求アドレスと以前の要求アドレスとの間のオフセットを決定し、前記オフセットを前記目標アドレスとして前記入力に提供するよう動作するところの符号化論理；
より成ることを特徴とするエンコーダ。
【００７８】
（付記１８）  付記１６記載のエンコーダにおいて、更に：
要求アドレスを受信するよう動作する初期入力；および
前記初期入力と前記入力との間に結合される符号化論理であって、前記要求アドレスと以前の要求アドレスとの間のオフセットを決定し、コード・ブックを利用して前記オフセットを符号化オフセットに変換し、前記オフセットを前記目標アドレスとして前記入力に提供するよう動作するところの符号化論理；
より成ることを特徴とするエンコーダ。
【００７９】
（付記１９）  付記１６記載のエンコーダにおいて、更に、前記選択モジュールと前記出力との間に結合された排他的ＯＲモジュールより成り、前記選択モジュールから提供された値および以前の符号化アドレスを演算し、排他的ＯＲ演算の結果を前記出力に提供することを特徴とするエンコーダ。
【００８０】
（付記２０）  エンコーダであって：
目標アドレスを受信するよう動作する入力；
アドレス・バスに結合された出力；
前記入力で受信した以前の目標アドレスを維持する第１メモリ素子；
前記アドレス・バスに送信された以前の符号化アドレスを維持する第２メモリ素子；
前記目標アドレスおよび前記以前の目標アドレスの間でオフセットを判定するよう動作するオフセット・モジュール；
前記オフセットが負であるならば、前記オフセット中の選択されたビットを反転するよう動作する符号化論理；および
前記オフセットおよび前記以前の符号化アドレスの間で排他的ＯＲ演算を実行し、排他的ＯＲ演算の結果を前記出力に提供するよう動作する排他的ＯＲモジュール；
より成ることを特徴とするエンコーダ。
【００８１】
（付記２１）  付記２０記載のエンコーダにおいて、前記符号化論理が、更に、前記オフセットから一定値を減算するよう動作することを特徴とするエンコーダ。
【００８２】
（付記２２）  付記２０記載のエンコーダにおいて、前記符号化論理が、更に、前記オフセットが負である場合に最上位ビットを除く前記オフセットの全ビットを反転することを特徴とするエンコーダ。
【００８３】
（付記２３）  付記２０記載のエンコーダにおいて、更に：
複数のオフセット・エントリを複数のコード・エントリにマッピングするコード・ブック；
より成り、前記符号化論理が更に前記コード・ブックを利用して前記オフセットを符号化オフセットに変換するよう動作することを特徴とするエンコーダ。
【００８４】
（付記２４）  付記２０記載のエンコーダにおいて、前記符号化論理が、更に、２つの補数形式より成るオフセットを符号／大きさ形式に変換するよう動作することを特徴とするエンコーダ。
【００８５】
（付記２５）  付記２０記載のエンコーダにおいて、前記符号化論理が、更に、符号化オフセットを決定するために、前記オフセットの大きさを利用してコード・ブックにアクセスすることを特徴とするエンコーダ。
【００８６】
（付記２６）  エンコーダであって：
複数のアドレス・エントリを複数のコード・エントリにマッピングする限定コード・ブックであって、アドレス値を受信し、前記アドレス値が前記アドレス・エントリの１つに合致するならば前記コード・エントリの対応するものを出力し、前記アドレス値が前記コード・エントリの１つに合致するならば前記アドレス・エントリの対応するものを出力し、および前記アドレス値が前記オフセット・エントリにも前記コード・エントリにも合致しない場合に通知する制御信号を生成するよう機能する限定コード・ブック；
前記アドレス値、前記限定コード・ブックからの出力および制御信号を受信するよう動作する選択モジュールであって、更に、合致しないことを前記制御信号が通知する場合には前記アドレス値を選択し、合致したことを前記制御信号が通知する場合には前記限定コード・ブックからの出力を選択するところの選択モジュール；
より成ることを特徴とするエンコーダ。
【００８７】
（付記２７）  付記２６記載のエンコーダにおいて、更に：
目標アドレスを受信するよう動作する入力；
前記入力において受信した以前の目標アドレスを維持する第１メモリ素子；および
前記目標アドレスおよび前記以前の目標アドレスの間のオフセットを決定し、前記オフセットを前記限定コード・ブックおよび前記選択モジュールにアドレス値として提供するよう動作するオフセット・モジュール；
より成ることを特徴とするエンコーダ。
【００８８】
（付記２８）  付記２７記載のエンコーダにおいて、更に：
アドレス・バスに結合された出力；
前記アドレス・バスに送信された以前の符号化アドレスを維持する第２メモリ素子；および
前記選択モジュールからの選択内容を受信し、受信した選択内容と以前の符号化アドレスとの間で排他的ＯＲ演算を実行し、排他的ＯＲ演算の結果を前記出力に提供するよう動作する排他的ＯＲモジュール；
より成ることを特徴とするエンコーダ。
【００８９】
（付記２９）  付記２７記載のエンコーダにおいて、前記コード・エントリが、２進表記において対応するアドレス・エントリよりも少数の１を含む限定重み符号より成ることを特徴とするエンコーダ。
【００９０】
（付記３０）  付記２７記載のエンコーダにおいて、前記限定コード・ブックが、更に、前記アドレス値が前記アドレス・エントリにも前記コード・エントリにも合致しないならば：
前記アドレス・エントリの１つを選択し；および
前記アドレス値の次の出現の際に前記限定コード・ブック内で合致するように、選択したアドレス・エントリを前記アドレス値と置換するよう機能することを特徴とするエンコーダ。
【図面の簡単な説明】
【図１】図１は、本発明の様々な実施例によってバスに送信される通信内容を符号化する素子を有する処理システムを示す。
【図２】図２は、アドレス・バス信号の冗長符号化を実行する回路を示すブロック図である。
【図３】図３は、オフセット符号化、２進１の頻度の低減および信号変化を利用する、バスにおけるスイッチング動作を低減させる回路を示す。
【図４】図４は、オフセット符号化、２進１の頻度の低減、コード・ブック・マッピングおよび信号変化を利用する、バスにおけるスイッチング動作を低減させる回路を示す。
【図５】図５は、制限されたコード・ブックを有する冗長エンコーダを実現する回路を示すブロック図である。
【図６】図６は、バス信号の冗長符号化方法を示すフローチャートである。
【図７】図７は、オフセット符号化、２進１の頻度の低減、コード・ブック・マッピングおよび信号変化を利用する、バスにおけるスイッチング動作を低減させる方法を示すフローチャートである。
【図８】図８は、バスのスイッチング動作を低減させるために限定されたコード・ブックを利用するアドレスの冗長符号化方法を示すフローチャートである。
【図９】図９は、コード・ブック・サイズを減少させる方法を示すフローチャートである。
【符号の説明】
１０  処理システム
１２  マイクロプロセッサ
１４  メモリ
１６  アドレス・バス
１８  データ・バス
２０  エンコーダ
２２  デコーダ
３０  エンコーダ
３２  入力
３４  比較器
３６  レジスタ
３８  加算器
４０  マルチプレクサ
４２  レジスタ
４４  出力
５０  符号化論理
６０  エンコーダ
６２  入力
６４  出力
６６  減算器
６８  レジスタ
７０  マルチプレクサ
７２  減算器
７４  反転論理
７６  排他的ＯＲモジュール
７８  レジスタ
９０  エンコーダ
９２  入力
９４  出力
９６  減算器
９８  レジスタ
１００  マルチプレクサ
１０２  減算器
１０４  反転論理
１０６  コード・ブック
１０８  排他的論理和モジュール
１１０  レジスタ
１２０  エンコーダ
１２２  入力
１２４  出力
１２６  減算器
１２８  レジスタ
１３０  限定コード・ブック
１３２  マルチプレクサ
１３４  排他的ＯＲモジュール
１３６  レジスタ
【図１】
0004190214.tif 000002
【図２】
0004190214.tif 000003
【図３】
0004190214.tif 000004
【図４】
0004190214.tif 000005
【図５】
0004190214.tif 000006
【図６】
0004190214.tif 000007
【図７】
0004190214.tif 000008
【図８】
0004190214.tif 000009
【図９】
0004190214.tif 000010