(57)【要約】【課題】本発明は、Ｉ／Ｏピンにより消費されるエネルギ量を削減し、ひいてはチップの全電力消費を低減させることを目的とする。【解決手段】本発明によるエンコーダ及びデコーダは、バス上で通信される情報の符号化を行う。エンコーダ及びデコーダは、アドレスバスにおけるスイッチング動作を減らすために様々な組み合わせの技術を利用し得る。【選択図】　　図１
2004030646.tif 000002
【特許請求の範囲】
【請求項１】
メモリに伝達するアドレスをアドレスバスにて受信し；
受信したアドレスと第１の先行アドレスとの間の第１のオフセットを計算し；
受信したアドレスと第２の先行アドレスとの間の第２のオフセットを計算し；
前記第１のオフセットが前記第２のオフセットより小さい場合に、前記第１のオフセットを選択し；
前記第１のオフセットが前記第２のオフセットより小さくない場合に、前記第２のオフセットを選択し；
選択されたオフセットに少なくとも部分的に基づいて、非冗長性のコードワードを作成し；及び
前記コードワードを前記アドレスバスにて伝送する；
ことを特徴とするアドレスバスにおける遷移を減少させる非冗長方法。
【請求項２】
メモリに伝達するアドレスをアドレスバスにて受信し；
受信したアドレスを、少なくとも２つのセクタヘッドの１つであるセクタヘッドに関連付け；
受信したアドレスと、関連付けられたセクタヘッドに格納された先行アドレスとの間で排他的論理和を実行し；及び
排他的論理和演算の結果を前記アドレスバスにて伝達する；
ことを特徴とするアドレスバスにおける遷移を減少させる非冗長方法。
【請求項３】
アドレスを受信するよう動作することの可能な入力；
アドレスバスに接続された出力；
前記入力にて受信した第１の先行アドレスを維持する第１のセクタヘッド；
前記入力にて受信した第２の先行アドレスを維持する第２のセクタヘッド；及び
受信したアドレスと第１の先行アドレスとの間の第１のオフセットを計算し、受信したアドレスと第２の先行アドレスとの間の第２のオフセットを計算し、前記第１のオフセットが前記第２のオフセットより小さい場合に前記第１のオフセットを選択し、前記第１のオフセットが前記第２のオフセットより小さくない場合に前記第２のオフセットを選択し、選択されたオフセットに少なくとも部分的に基づいて非冗長性のコードワードを作成し、及び前記コードワードを前記出力にて伝送するように動作することの可能な選択モジュール；
を有することを特徴とするエンコーダ。
【請求項４】
アドレスを受信するように動作することの可能な入力；
アドレスバスに接続された出力；
前記入力にて受信した第１の先行アドレスを維持する第１のセクタヘッド；
前記入力にて受信した第２の先行アドレスを維持する第２のセクタヘッド；及び
受信したアドレスをセクタヘッドに関連付け、受信したアドレスと関連するセクタヘッドに格納された先行アドレスとの間で排他的論理和を実行し、前記出力に排他的論理和演算の結果を伝達するように動作し得る排他的論理和モジュール；
を有することを特徴とするエンコーダ。
【請求項５】
アドレスを受信するよう動作することの可能な入力；
アドレスバスに接続された出力；
前記入力にて受信した第１の先行アドレスを維持する第１のセクタヘッド；
前記入力にて受信した第２の先行アドレスを維持する第２のセクタヘッド；
前記入力にて受信した第３の先行アドレスを維持する第３のセクタヘッド；
前記入力にて受信した第４の先行アドレスを維持する第４のセクタヘッド；
前記第１の先行アドレス又は前記第２の先行アドレスに基づいて、第１のオフセットアドレスを選択するように動作する第１マルチプレクサ；
前記第３の先行アドレス又は前記第４の先行アドレスに基づいて、第２のオフセットアドレスを選択するように動作する第２マルチプレクサ；及び
受信したアドレスと第１のオフセットアドレスとの間の第１のオフセットを計算し、受信したアドレスと第２のオフセットアドレスとの間の第２のオフセットを計算し、前記第１のオフセットが前記第２のオフセットより小さい場合に前記第１のオフセットを選択し、前記第１のオフセットが前記第２のオフセットより小さくない場合に前記第２のオフセットを選択し、選択されたオフセットに少なくとも部分的に基づいて非冗長性のコードワードを作成し、及び前記コードワードを前記出力にて伝送するように動作することの可能な選択モジュール；
を有することを特徴とするエンコーダ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に回路設計の技術分野に関し、特にバス切り替え動作を低減させることに関連する。
【０００２】
【従来の技術】
今日のコンピュータプロセッサは、多くのエネルギを消費する多数の入出力（Ｉ／Ｏ）ピンを有する。命令アドレス及びデータアドレスバスを通じて又はデータ及び命令アドレス両者に使用される多重化されたバスを通じて、Ｉ／Ｏピンの多くは外部メモリチップとインターフェースをとるために使用される。
【０００３】
［関連出願］
本願は、２００２年６月３日付けの“ＲＥＤＵＣＴＩＯＮ　ＯＦ　ＢＵＳ　ＳＷＩＴＣＨＩＮＧ　ＡＣＴＩＶＩＴＹ”と題する米国特許出願番号第１０／１６２，０１０号の一部継続出願に関連し、それは、“ＡＬＢＯＲＺ：ＡＤＤＲＥＳＳ　ＬＥＶＥＬ　ＢＵＳ　ＰＯＷＥＲ　ＯＰＴＩＭＩＺＡＴＩＯＮ”と題する２００１年６月１１日付の３５Ｕ．Ｓ．Ｃ．§１１９による仮出願番号第６０／２９７，６１４号、及び“ＭＥＴＨＯＤ　ＡＮＤ　ＡＰＰＲＡＴＵＳ　ＦＯＲ　ＢＵＳ　ＥＮＣＯＤＩＮＧ”と題する２００１年６月１３日付の仮出願番号第６０／２９８，２３３号を基礎とする。
【０００４】
【発明が解決しようとする課題】
Ｉ／Ｏピンにより消費されるエネルギ量は、しばしば、チップの全電力消費に比べてかなりの量になる。
【０００５】
【課題を解決するための手段】
本発明によれば、アドレスバスにおける状態遷移を減らす技術が提供される。特定の実施例によれば、これらの手法は、アドレスバスにおけるスイッチングを減らすことで、電子装置の電力消費を減らす。
【０００６】
本発明の一態様による、アドレスバスにおける状態遷移を減少させる方法は、メモリに伝達するアドレスをアドレスバスにて受信し；
受信したアドレスと第１の先行アドレスとの間の第１のオフセットを計算し；
受信したアドレスと第２の先行アドレスとの間の第２のオフセットを計算し；
前記第１のオフセットが前記第２のオフセットより小さい場合に、前記第１のオフセットを選択し；
前記第１のオフセットが前記第２のオフセットより小さくない場合に、前記第２のオフセットを選択し；
選択されたオフセットに少なくとも部分的に基づいて、非冗長性のコードワードを作成し；及び
前記コードワードを前記アドレスバスにて伝送する；
ことを特徴とする非冗長方法である。
【０００７】
本発明の他の態様による、アドレスバスにおける状態遷移を減少させる方法は、メモリに伝達するアドレスをアドレスバスにて受信し；
受信したアドレスを、少なくとも２つのセクタヘッドの１つであるセクタヘッドに関連付け；
受信したアドレスと、関連付けられたセクタヘッドに格納された先行アドレスとの間で排他的論理和を実行し；及び
排他的論理和演算の結果を前記アドレスバスにて伝達する；
ことを特徴とする非冗長方法である。
【０００８】
本願実施例は、様々な技術的利点を与え得る。ある実施例は、プロセッサが非冗長性設計部（ｉｒｒｅｄｕｎｄａｎｔ　ｄｅｓｉｇｎ）を利用することを可能にする多数のワーキングゾーン（ｗｏｒｋｉｎｇ　ｚｏｎｅ）を更に与える。非冗長性設計部は、ゾーンレジスタ識別子及び対応するゾーンレジスタ識別子に対するオフセットが、当初のパターンと同一の幅を有するコードワードにエンコードされることを可能にする。可能性のある他の利点は、コンピュータシステムの電力効率を改善するためにゾーンを動的に更新することである。可能性のある更なる利点は、ゲート数を削減することである。
【０００９】
本発明の他の技術的有用性は、以下の説明により当業者に一層明確になるであろう。更に、具体的な利点が挙げられたが、本発明の様々な態様の中には、それらの利点を有しない又はその全部若しくは一部を有するものがあり得る。
【００１０】
【発明の実施の形態】
本発明及びその有用性をより一層理解するために、添付図面を考慮した説明が行われる。
【００１１】
図１は、１０として示される、メモリバスを介して送信される通信内容をエンコードする処理システムの部分を示し、これは、マイクロプロセッサ１２と、アドレスバス１６及びデータバス１８を利用して互いに接続されるメモリ１４とを含む。アドレスバス１６における状態遷移を減らすために、システム１０は、マイクロプロセッサ１２及びアドレスバス１６の間に接続されたエンコーダ２０を含み、アドレスバス１６及びメモリ１４の間に接続されたデコーダ２２を含む。エンコーダ２０は、以後セクタヘッド（ｓｅｃｔｏｒ　ｈｅａｄ）又はゾーンレジスタ（ｚｏｎｅｄ　ｒｅｇｉｓｔｅｒ）と呼ばれる少なくとも２つのレジスタ２５を有する。概して、エンコーダ２０及びデコーダ２２は、１つ又はそれ以上の符号化手法を利用して、アドレスバス１６における状態遷移を減らす。これらの手法はアドレスバス１６に関して説明されるが、多重化されたバス（図示せず）における状態遷移を減らすために、システム１０が本発明を使用し得ることは、理解されるであろう。
【００１２】
動作の一例にあっては、マイクロプロセッサ１２は、アドレスバス１６を利用してメモリ１４に対する又はそこからのデータ通信を要求する。マイクロプロセッサ１２及びメモリ１４は、アドレスバス１６の値に基づいてデータバス１８上のデータを交換する。アドレスバス１６及びデータバス１８に値を設定することは電力を消費し、それはしばしばバスの値における変化の数に比例する。例えば、アドレス００ｈｅｘからＦＦｈｅｘの変化は、００ｈｅｘから０１ｈｅｘへの変化より多くの電力を消費する。従って、アドレスバス１６における場所的に局所的な（ｓｐａｔｉａｌｌｙ　ｌｏｃａｌ）アドレスの間の変化を減らすことは、状態遷移を減らし、ひいてはバスの電力消費を減らすことを可能にする。従って、エンコーダ２０及びデコーダ２２を加えることは、アドレスバス１６における状態遷移を減らし、システム１０の電力消費における正味の削減をもたらし得る。
【００１３】
アドレスバス１６における遷移を減少させるために、エンコーダ２０及びデコーダ２２は、アドレスバス１６上で通信される場所的に局所的な（空間的にローカルな）値の変化を減らすことを意図する１つ又はそれ以上の手法を利用する。特定の実施例によれば、エンコーダ２０及びデコーダ２２は、データアドレスのトレース（ｔｒａｃｅ）が複数のサブトレース（ｓｕｂ−ｔｒａｃｅ）に分割されるように、メモリアドレス空間を複数のセクタに区分する。しばしば、同一セクタ内のデータアドレスは、その同一セクタ内の他のアドレスに近いという傾向を有する。そして、エンコーダ２０は、第１セクタ内で以前にアクセスされたデータアドレスに関連し、第１セクタ内で各データアドレスをエンコードすることが可能である。エンコーダ２０の一実施例は、トレース内のアドレスのサブトレースへの仮想的な分離を利用して、アドレスバス１６における状態遷移を減少させる。
【００１４】
一実施例では、エンコーダ２０は動的な区分け（ｄｙｎａｍｉｃ　ｓｅｃｔｏｒｉｎｇ）を実行する手法を利用する。本実施例では、エンコーダ２０は、アドレス空間を第１及び第２セクタに分ける。そしてエンコーダ２０は第１セクタヘッド２５を第１セクタに、第２セクタヘッド２５を第２セクタに関連付ける。各セクタヘッド２５は、適当なセクタでアクセスされた以前のデータアドレスの値を包含する。エンコーダ２０は、新たなアドレスを受信し（図２に示される）、第１オフセット及び第２オフセットを計算する。アドレス３０はＮビット整数である。説明の便宜上、アドレス３０は“Ｘ”として表現され、各ビットはＸ１乃至ＸＮとして表現され、ここでＸＮは最上位ビット（ＭＳＢ）である。各オフセットは、現在のアドレス３０と以前のアドレスとの間の距離（ｄｉｓｔａｎｃｅ）を判定することで計算される。エンコーダ２０は、最小のオフセットを判定することで、最も近い以前のアドレスを含むセクタヘッド２５を選択する。そして、到来するアドレス３０は、選択されたセクタヘッド２５に格納される。最小オフセット及び適切なセクタヘッドに少なくとも部分的に基づいて、コードワードが決定され、アドレスバス１６上に送信される。
【００１５】
コードワードを決定するために、エンコーダ２０は各オフセットにて最下位ビット反転（ＬＳＢ−Ｉｎｖ：ｌｅａｓｔ　ｓｉｇｎｉｆｉｃａｎｔ　ｂｉｔ−ｉｎｖｅｒｓｉｏｎ）を実行する。ＬＳＢ−Ｉｎｖは、オフセットの最下位ビットを反転し、負数における二進の１の数を減らす。二進の１の頻度を減らすために、エンコーダ２０は、マイクロプロセッサ動作の相対的な予測性を信頼する。多くの場合、エンコーダ２０で決定されるオフセットは、比較的小さいであろう。従って、正のオフセットに関し、そのオフセットは比較的少数の１（二進標記）を有するであろう。しかしながら、負のオフセットに関しては、それらのオフセットの大きさが比較的小さい傾向にあること（ｌｉｋｅｌｉｈｏｏｄ）は、決定されたオフセットにおける二進の１を増加させる。例えば、補数形式において、負の１の値は、総てが１であることによって表現される（例えば、ＦＦＦＦｈｅｘ）。負のオフセットに関し、エンコーダ２０は、負のオフセットを、符号／大きさ（ｓｉｇｎ／ｍａｇｎｉｔｕｄｅ）形式に又は符号／大きさ形式の変形に変換することによって、オフセット中の１の数を減らす。一実施例によれば、エンコーダ２０は、負のオフセットの最上位ビットを除く総てのビットを反転する。例えば、ＦＦＦｈｅｘ（−１）の所与のオフセットに対しては、エンコーダ２０はそのオフセットを８０００ｈｅｘに修正する。この例により理解されるように、最小限の処理又はプロセスを利用して、決定されたオフセット中の１の数を顕著に減らすことが可能である。この処理は、以下のアルゴリズムによって説明され得る：
ｉｆ（Ｘ≧０）
ＬＳＢ−Ｉｎｖ（Ｘ）＝Ｘ
ｅｌｓｅ
ＬＳＢ−Ｉｎｖ（Ｘ）＝Ｘ　ＸＯＲ（２Ｎ−１−１）。
【００１６】
一実施例によれば、エンコーダ２０は、代替的に又はそれに加えて、アドレスバス１６における遷移を減少させるために、アドレス空間の固定された区分けを利用する。本実施例では、エンコーダ２０はアドレスを複数のセクタにて区分けする。例えば、エンコーダ２０はアドレスを２つのセクタに分割する。エンコーダ２０は、アドレス３０のＭＳＢに基づいて、２つのセクタヘッド２５の何れを使用するかを決定する。エンコーダ２０は、アドレス３０の残余のビットと、適切なセクタヘッド２５に格納された以前のアドレスとの間で排他的論理和演算を実行する。ＭＳＢ及びＸＯＲ演算の出力は、コードワード又は遷移信号を生成するために使用される。区分けは、通常は２のべき乗であるが、任意のセクタ数を含み得ることは、理解されるであろう。固定的セクタ（ｆｉｘｅｄ−ｓｅｃｔｏｒ）符号化は、動的セクタ（ｄｙｎａｍｉｃ−ｓｅｃｔｏｒ）符号化よりも簡易であり、システム１０における遅延オーバーヘッドを更に減少させる。
【００１７】
コードワードを生成した後に、任意の符号化手法及び１の頻度の任意の適切な削減手法を利用して、エンコーダ２０はアドレスバス１６にコードワードを送信するために遷移信号を使用する。遷移信号送信（ｔｒａｎｓｉｔｉｏｎ　ｓｉｇｎａｌｉｎｇ）に関し、エンコーダ２０は、アドレスバス１６を利用して、符号化されたオフセット及びバスにおける以前の値の間の差分のみを示す。
【００１８】
上記の説明は、アドレスバス１６における遷移を減少させる多くの手法を詳述する。これらの手法は、特定の態様及び組み合わせにて説明されるが、システム１０は、エンコーダ２０が、適切な組み合わせ及びそれらの動作の順序付けを利用して、アドレスバス１６における減少した状態遷移を与えることを想定する。
【００１９】
図２は、動的セクタ符号化を利用して、アドレスバス１６を通じて送信される通信内容を符号化するエンコーダ１２０を示すブロック図である。エンコーダ１２０は、入力３２にて到来するアドレス３０を受信する。単なる具体例として、アドレス３０は、３２ビットである。信号経路の各々は、その経路にラベル付けされたような３２ビットの内の特定の１つを含む。例えば、（３２，３０−＞１）は、ビット３２及びビット３０乃至ビット１がその経路にあることを示す。
【００２０】
第１オフセット論理３４は、第１セクタヘッド２５に格納された以前のアドレスを受信する。第２オフセット論理３４は、第２セクタヘッド２５に格納された以前のアドレスを受信する。第１オフセット論理３４は、アドレス３０から格納された以前のアドレスを減算し、第１のオフセットを決定する。第２オフセット論理３４は、アドレス３０から格納された以前のアドレスを減算し、第２のオフセットを決定する。各オフセットは、符号であるビット３１を有する３１ビットワードであり得ることに、留意を要する。各オフセット論理３４は、負数における二進の１の数を削減するために、決定されたオフセットに対してＬＳＢ−Ｉｎｖを実行する。一例では、セクタヘッド２５に格納された以前のアドレスが、“Ｙ”として表現され、アドレス３０が“Ｘ”として表現される。
【００２１】
ｄｉｓｔ（Ｘ，Ｙ）＝Ｒ（Ｎ−１）−０
　　ｓｉｇｎ（Ｘ，Ｙ）＝ＲＮ
であり、ここで、Ｒ＝ＬＳＢ−Ｉｎｖ（Ｘ−Ｙ）である。従って、“Ｘ”及び“Ｙ”が３２ビットワードならば、ｄｉｓｔ（Ｘ，Ｙ）は３１ビットになる。上述したように、オフセットの符号はビット３１であり、オフセットの距離はビット３０乃至ビット１である。各オフセット論理３４は、各オフセットの符号をＡＮＤゲート４０に伝える。また、各オフセット論理３４は、各オフセットの残余の３０ビットをマルチプレクサ３８に伝える。
【００２２】
エンコーダ１２０は、第１及び第２オフセットの中で選択を行う。第２オフセットが第１オフセットよりも大きいならば、大きさ比較モジュール３６により判定され、マルチプレクサ３８は第１オフセットを選択する。そうでなければ、マルチプレクサ３８は第２オフセットを選択する。マルチプレクサ３８は、選択したオフセットを排他的論理和モジュール４２に伝える。
【００２３】
排他的論理和モジュール４２は、マルチプレクサ３８からの出力とＡＮＤゲート４０の出力との間で排他的論理和を実行する。排他的論理和モジュール４２は、この例では３１番目のビットである符号、及びビット３０乃至ビット１のオフセットを連結させる。出力４３において、遷移信号４４を得るために、ビット３２のようなセクタＩＤが、現在のコードワードビット３１乃至１に連結される。この処理は、以下のアルゴリズムによって表現され得る：
Ｓ＝ｍｉｎ（ｄｉｓｔ（Ｘ，ＳＨ２），ｄｉｓｔ（Ｘ，ＳＨ２））
ｉｆ（ｄｉｓｔ（Ｘ，ＳＨ１）＜ｄｉｓｔ（Ｘ，ＳＨ２））
Ｍ＝ｓｉｇｎ（Ｘ，ＳＨ１）
ｅｌｓｅ
Ｍ＝ｓｉｇｎ（Ｘ，ＳＨ２）
ｉｆ（ＳＮ−１＝＝１）
Ｃ（Ｘ，ＳＨ１；ＳＨ２）＝ＮＯＴ（Ｍ‖Ｓ（Ｎ−２）−０）
ｅｌｓｅ
Ｃ（Ｘ，ＳＨ１；ＳＨ２）＝Ｍ‖Ｓ（Ｎ−２）−０
であり、“Ｓ”は選択されたオフセットであり、“Ｍ”はオフセットの符号であり、“ＳＨ１”は第１セクタヘッドであり、“ＳＨ２”は第２セクタヘッドであり、Ｃ（Ｘ，ＳＨ１；ＳＨ２）はエンコードされたアドレスである。従って、エンコーダ１２０は、アドレスバス１６における通信のために、出力４３にて、３２ビット遷移信号４４として符号化アドレスを与える。
【００２４】
図３は、固定セクタ符号化を利用して、アドレスバス１６を通じて送信される通信内容を符号化するエンコーダ２２０を示すブロック図である。エンコーダ２２０は、入力３２にて到来するアドレス３０を受信する。単なる例として、アドレス３０は、３２ビットである。信号経路の各々は、経路にラベル付けされたような３２ビットの内の選択された１つを含む。例えば、（３２，３０−＞１）は、ビット３２及びビット３０乃至ビット１がその経路にあることを示す。
【００２５】
一実施例では、エンコーダ２０はアドレス空間を２つのセクタに区分する。いくつかの実施例では、マルチプレクサ４６は必要とされない。エンコーダ２０は、アドレス３０のＭＳＢに基づいて、２つのセクタヘッド２５の何れを使用するかを決定する。アドレス３０の残りのビットは、排他的論理和モジュール４８を利用して、適切なセクタヘッド２５に格納された以前のアドレスとＸＯＲ演算される。ＭＳＢ及び排他的論理和演算の出力は、コードワードを生成するために使用される。区分けは、通常は２のべき乗であるが、任意のセクタ数を含み得ることは、理解されるであろう。固定セクタ符号化は、動的セクタ符号化よりも簡易であり、システム１０における遅延オーバーヘッドを更に減少させ得る。
【００２６】
複数のセクタヘッド２５（２Ｍ個のセクタヘッド２５として描かれている）を包含する特定の実施例では、エンコーダ２２０は、アドレスをエンコードするために、適切なセクタヘッド２５を利用して、“Ｍ”個の最上位ビットを利用する又は“Ｍ”個の中間（ｍｉｄｄｌｅ）ビットを選択する。例えば、エンコーダ２２０は、アドレスを２Ｍ個のセクタに区分する。本実施例では、エンコーダ２２０は、アドレス３０からビット“ｉ＋１”乃至ビット“ｉ＋Ｍ”を選択し、ここで“ｉ”は選択された中間ビット（ｉｎｔｅｒｎａｌ　ｂｉｔ）である。これらの選択されたビットはマルチプレクサ４６に伝えられる。この入力に基づいて、マルチプレクサ４６は、ビット“ｉ＋１”乃至ビット“ｉ＋Ｍ”に一致する、セクタヘッド２５に格納済みの以前のアドレスを選択する。排他的論理和モジュール４６は、アドレス３０の残余のビットと、適切なセクタヘッド２５に格納済みの以前のアドレスとの間で排他的論理和演算を実行する。ビット“ｉ＋１”乃至ビット“ｉ＋Ｍ”及び排他的論理和演算の出力は、５０にてバス上の以前の値に関して遷移信号送信されるコードワードを生成するために使用される。
【００２７】
図４は、動的セクタ法を利用する、アドレス空間における２つのセクタヘッド２５及び関連するカバレッジセットを示す図である。上述したように、符号化されたアドレスは、セクタヘッドを指定するＭＳＢに起因して、そのアドレスよりも１ビット少ない。Ｎ−１ビットを利用して、各セクタヘッド２５は２Ｎ−１個のアドレスをカバーする又は網羅する。アドレスの第１セットは、“Ｓ１”により表現され、アドレスの第２セットは“Ｓ２”により表現される。“Ｓ１”及び“Ｓ２”のサイズは、実質的に等しい。更に、２Ｎ−１又は−２Ｎ−１に“Ｓ１”を加えることで、“Ｓ１”は“Ｓ２”に対応付けられる又はマッピング（ｍａｐ）される。
【００２８】
“Ｓ１”におけるアドレスは、第１セクタヘッド２５によりカバーされ、図中“ＳＨ１”により表現され、第２セクタヘッド２５は“ＳＨ２”により表現される。しかし、“Ｓ１”におけるアドレスは最も近いセクタヘッド２５にのみ関連して符号化される。これは、どのセクタヘッドの符号化範囲内でもないアドレス空間の部分と供に、セクタヘッド２５によりカバーされる領域の間に重なり（ｏｖｅｒｌａｐ）を与える。重なった部分に２Ｎ−１又は−２Ｎ−１を加えることは、それを区域範囲外にマッピングする。
【００２９】
オーバーラップするアドレス空間内の特定のロケーションに符号化するために、１つのセクタヘッドのみが選択されるので、１コードが消費される。消費されるコードは区域範囲外のアドレスを符号化するために使用され得る。
【００３０】
これは、接近していないセクタヘッド２５に関連してアドレスを符号化することで達成される。そして、例えば、セクタヘッド２５からのオフセットに２Ｎ−１を加えることで、対応するデコーダは、アドレス空間範囲外にマッピングするための信号送信を受ける。動的セクタ化は１対１写像（ｏｎｅ−ｔｏ−ｏｎｅ　ｍａｐｐｉｎｇ）であることが理解されるであろう。
【００３１】
図５は、動的セクタ符号化を利用して、アドレスバス１６を通じて送信される通信内容を符号化する方法のフローチャートである。以下の説明は、エンコーダ１２０の動作に着目するものであるが、その理由は、その回路図が符号化手法を行う機能要素を示すからである。しかしながら、システム１０は、これらの動作を行う機能要素の任意の適切な組み合わせ及び形態を利用することを想定することが可能であり、これらの手法は適切に他の技術と組み合わせることも可能である。
【００３２】
エンコーダ１２０は、ステップ２０５から始まる。例えば、エンコーダ１２０はセクタヘッド２５に対する初期値を設定する。エンコーダ１２０はステップ２１０にてアドレス３０を受信する。ステップ２２０において、エンコーダ１２０は、第１セクタヘッド２５にて以前のアドレスから第１オフセットを決定する。例えば、オフセット論理３４を利用して、エンコーダ１２０は、入力３２にて受信したアドレスと、第１セクタヘッド２５内に維持される以前のアドレスとの間のオフセットを決定する。エンコーダ１２０は、ステップ２２２にて、第１オフセットがゼロより大きいか否かを判定する。もしそうであれば、エンコーダ１２０は、ステップ２２４において、１を減算することで、そのオフセットを変換する。オフセットがゼロより大きくないならば、ステップ２２６にて、オフセットの最下位ビットを反転することで、そのオフセットを変換する。
【００３３】
処理過程はステップ２３０に進み、エンコーダ１２０は、第２セクタヘッド２５における以前のアドレスから第２オフセットを決定する。例えば、オフセット論理３４を利用して、エンコーダ１２０は、入力３２にて受信したアドレスと、第２セクタヘッド２５内に維持される以前のアドレスとの間のオフセットを決定する。エンコーダ１２０は、ステップ２３２において、第２オフセットがゼロより大きいか否かを判定する。もしそうであれば、エンコーダ１２０はステップ２３４にて１を減算することでそのオフセットを変換する。オフセットがゼロより大きくないならば、ステップ２３６にて、エンコーダ１２０は、オフセットの最下位ビットを反転することで、そのオフセットを変換する。
【００３４】
エンコーダ１２０は、ステップ２４０にて、より小さいオフセットを選択する。一実施例では、エンコーダ１２０は、第１オフセットが第２オフセットより小さい場合に、第１オフセットを選択する。第２オフセットが第１オフセットより小さい又は等しいならば、エンコーダ１２０は第２オフセットを選択する。ステップ２４５において、エンコーダ１２０は選択したオフセットからコードワードを作成する。コードワードは、４４におけるバス上の以前の値に関する遷移信号である。例えば、アドレス３０が３２ビットであるならば、選択されたオフセットは、距離に関する３０ビット及び符号に関するビット３１を有する、３１ビットになる。選択されたオフセットは、セクタＩＤと連結される。その結果のコードワードは３２ビットである。
【００３５】
処理過程はステップ２４７に進み、エンコーダ１２０は、選択されたオフセットを含むセクタヘッド２５内にアドレス３０を格納する。エンコーダ１２０は、ステップ２５０にて、選択されたオフセットを含むセクタヘッド２５を識別するセクタＩＤを、コードワードと連結させる。具体例に戻れば、これは３２ビットのコードワードになる。ステップ２５５にて、エンコーダ１２０は、アドレスバス１６にコードワードを伝える。これら一連の動作は、多くの場合に、状態遷移を削減し、これらの手法を実行する回路の電力消費を低くする。
【００３６】
図６は、固定セクタ符号化法を利用する、アドレスバス１６を通じて送信される通信内容を符号化する方法のフローチャートである。本方法は、エンコーダ２２０の機能と同様に動作するので、以下の説明は、本方法を実行するエンコーダ２２０の動作に着目する。しかしながら、先に説明したフローチャートと同様に、システム１０は、上述した機能の全部又は一部を実行する論理要素の適切な組み合わせ及び形態を利用することが可能である。
【００３７】
エンコーダ２２０は、ステップ３０５から始まる。例えば、エンコーダ２２０は、セクタヘッド２５に対する初期値を設定する。エンコーダ２２０はステップ３１０にてアドレス３０を受信する。ステップ３１５において、エンコーダ２２０は、アドレス３０からビット“ｉ＋１”乃至ビット“ｉ＋Ｍ”を選択し、ここで、“ｉ”はゼロ又は事前に選択された中間ビットである。エンコーダ２２０は、選択されたビットに基づいて、マルチプレクサ４６を通じて、適切なセクタヘッド２５を選択する。この入力に基づいて、マルチプレクサ４６は、ビット“ｉ＋１”乃至ビット“ｉ＋Ｍ”に合致する、セクタヘッド２５に格納された以前のアドレスを選択する。ステップ３２５において、エンコーダ２２０は、排他的論理和モジュール４８を利用して、アドレス３０の残余のビットと、適切なヘッド２５に格納された以前のアドレスとの排他的論理和を演算する。排他的論理和のビット“ｉ＋１”乃至ビット“ｉ＋Ｍ”は、コードワードを生成するために使用される。エンコーダ２２０は、ステップ３３０にて、アドレスバス１６におけるコードワードを伝達する。この一連の動作は、多くの場合に、減少した状態遷移となり、これらの手法を実行する回路の電力消費を低くする。
【００３８】
上述したフローチャート及びその説明は、様々な符号化手法を利用して、アドレスを符号化アドレスに符号化するための動作方法を例示する。しかしながら、これらの方法は、単なる例示であり、システム１０は、説明した方法の全部又は一部を利用して、対象のアドレスを符号化する任意の適切な手法を実行するエンコーダ２０を想定することが可能である。従って、これらの手法の任意のもの又は総ては、アドレスバス１６における切り替え動作を減らすのに適切であるように、単独で及び／又は組み合わせて使用されることが可能である。更に、フローチャート及び説明は例示に過ぎないので、システム１０は、その方法が適切に動作する限り、付加的なステップ、より少ないステップ及び／又は異なるステップを行う方法を使用するエンコーダ２０を想定することが可能である。
【００３９】
更に、明示的に図示されてはいないが、デコーダ２２内の要素の動作及び形態は、エンコーダ２０内で実行される具体的な手法に依存する。即ち、デコーダ２２は、エンコーダ２０により行われた符号化を戻す又はリバース（ｒｅｖｅｒｓｅ）するように機能する。例えば、一実施例では、デコーダ２２は、以下のアルゴリズムを実行し得る回路を包含する：
Ｕ＝ＬＳＢ−Ｉｎｖ（ＺＮ−１‖０‖｛Ｚ｝Ｎ−１）
ｉｆ（ＺＮ＝０）
Ｘ＝ＳＨ１＋Ｕ
ｉｆ（ｄｉｓｔ（Ｘ，ＳＨ２）＜ｄｉｓｔ（Ｘ，ＳＨ１））
Ｘ＋＝２Ｎ−１
　　ｅｌｓｅ
Ｘ＝ＳＨ２＋Ｕ
ｉｆ（ｄｉｓｔ（Ｘ，ＳＨ１）＜ｄｉｓｔ（Ｘ，ＳＨ２））
Ｘ＋＝２Ｎ−１
　　ｉｆ（ｄｉｓｔ（Ｘ，ＳＨ１）＜ｄｉｓｔ（Ｘ，ＳＨ２））
ＳＨ１＝Ｘ
ｅｌｓｅ
ＳＨ２＝Ｘ
であり、ここで“Ｚ”は遷移信号送信後に受信したコードである。従って、システム１０は、エンコーダ２０内で実行される動作に基づいて、アドレスバス１６からの符号化されたアドレスをデコードするよう動作する、ハードウエア及び／又は制御論理の任意の適切な組み合わせ及び形態を有するデコーダ２２を想定することが可能である。
【００４０】
以上本発明が詳細に説明されてきたが、特許請求の範囲に記載された本発明の範囲及び目的から逸脱することなしに、様々な変形、置換、及び変更がなされ得ることは、理解されるべきである。
【００４１】
特許庁、及び添付した請求の範囲を解釈する際に本願に発行された任意の特許の閲覧者の便宜を図るため、原文の特定の請求の範囲に“ｍｅａｎｓ　ｆｏｒ”が使用されない場合に、それが出願日に存在するものとして、任意の添付した請求項が６ｏｆ３５Ｕ．Ｓ．Ｃ§１１２を求めることを彼らが意図しないことを出願人は希望する。
【００４２】
以下、本発明により教示される手段を列挙する。
【００４３】
（付記１）　メモリに伝達するアドレスをアドレスバスにて受信し；
受信したアドレスと第１の先行アドレスとの間の第１のオフセットを計算し；
受信したアドレスと第２の先行アドレスとの間の第２のオフセットを計算し；
前記第１のオフセットが前記第２のオフセットより小さい場合に、前記第１のオフセットを選択し；
前記第１のオフセットが前記第２のオフセットより小さくない場合に、前記第２のオフセットを選択し；
選択されたオフセットに少なくとも部分的に基づいて、非冗長性のコードワードを作成し；及び
前記コードワードを前記アドレスバスにて伝送する；
ことを特徴とするアドレスバスにおける遷移を減少させる非冗長方法。
【００４４】
（付記２）　更に、オフセットが負であった場合に、前記第１のオフセットの選択されたビットを反転することを特徴とする付記１記載の方法。
【００４５】
（付記３）　前記第１のオフセットが第１のセクタヘッドに関連付けられ、前記第２のオフセットが第２のセクタヘッドに関連付けられることを特徴とする付記１記載の方法。
【００４６】
（付記４）　前記第１のセクタヘッドが第１セクタＩＤにより識別され、前記第２セクタヘッドが第２セクタＩＤにより識別され、非冗長性のコードワードの作成が：
選択されたオフセットに関連するセクタヘッドのセクタＩＤを受信し；及び
受信したセクタＩＤと選択されたオフセットを遷移信号に連結させる；
ことにより行われることを特徴とする付記３記載の方法。
【００４７】
（付記５）　更に、受信したアドレスを、受信したセクタＩＤにより識別されるセクタヘッドに格納することを特徴とする付記４記載の方法。
【００４８】
（付記６）　更に、受信したアドレスと、受信したセクタＩＤにより識別されるセクタヘッドに格納された前記先行アドレスとの間で排他的論理和を演算することを特徴とする付記４記載の方法。
【００４９】
（付記７）　メモリに伝達するアドレスをアドレスバスにて受信し；
受信したアドレスを、少なくとも２つのセクタヘッドの１つであるセクタヘッドに関連付け；
受信したアドレスと、関連付けられたセクタヘッドに格納された先行アドレスとの間で排他的論理和を実行し；及び
排他的論理和演算の結果を前記アドレスバスにて伝達する；
ことを特徴とするアドレスバスにおける遷移を減少させる非冗長方法。
【００５０】
（付記８）　受信したアドレスとセクタヘッドとの関連付けが：
受信したアドレスから複数のビットの部分集合を選択し；及び
複数のビットの部分集合に少なくとも部分的に基づいてセクタヘッドを選択する；
ことにより行われることを特徴とする付記７記載の方法。
【００５１】
（付記９）　更に、アドレス空間を複数のセクタに区分することを特徴とする付記７記載の方法。
【００５２】
（付記１０）　更に、複数のセクタヘッドの各々を固有のセクタに関連付けることを特徴とする付記９記載の方法。
【００５３】
（付記１１）　セクタヘッド数が２のべき乗であることを特徴とする付記１０記載の方法。
【００５４】
（付記１２）　受信したアドレスとセクタヘッドとの関連付けが：
受信したアドレスから複数のビットの部分集合を選択し；及び
複数のビットの部分集合に少なくとも部分的に基づいてセクタヘッドを選択する；
ことにより行われ、セクタヘッド数が選択されたビット数に等しいことを特徴とする付記１０記載の方法。
【００５５】
（付記１３）　アドレスを受信するよう動作することの可能な入力；
アドレスバスに接続された出力；
前記入力にて受信した第１の先行アドレスを維持する第１のセクタヘッド；
前記入力にて受信した第２の先行アドレスを維持する第２のセクタヘッド；及び
受信したアドレスと第１の先行アドレスとの間の第１のオフセットを計算し、受信したアドレスと第２の先行アドレスとの間の第２のオフセットを計算し、前記第１のオフセットが前記第２のオフセットより小さい場合に前記第１のオフセットを選択し、前記第１のオフセットが前記第２のオフセットより小さくない場合に前記第２のオフセットを選択し、選択されたオフセットに少なくとも部分的に基づいて非冗長性のコードワードを作成し、及び前記コードワードを前記出力にて伝送するように動作することの可能な選択モジュール；
を有することを特徴とするエンコーダ。
【００５６】
（付記１４）　更に、オフセットが負であった場合に、前記第１のオフセットの選択されたビットを反転することを特徴とする付記１３記載のエンコーダ。
【００５７】
（付記１５）　前記第１のオフセットが第１のセクタヘッドに関連付けられ、前記第２のオフセットが第２のセクタヘッドに関連付けられることを特徴とする付記１３記載のエンコーダ。
【００５８】
（付記１６）　前記第１のセクタヘッドが第１セクタＩＤにより識別され、前記第２セクタヘッドが第２セクタＩＤにより識別され、前記選択モジュールが、更に、選択されたオフセットに関連するセクタヘッドのセクタＩＤを受信し、及び受信したセクタＩＤと選択されたオフセットを遷移信号に連結させるように動作し得ることを特徴とする付記１５記載のエンコーダ。
【００５９】
（付記１７）　更に、受信したアドレスを、受信したセクタＩＤにより識別されるセクタヘッドに格納し得る回路を有することを特徴とする付記１６記載のエンコーダ。
【００６０】
（付記１８）　更に、受信したアドレスと、受信したセクタＩＤにより識別されるセクタヘッドに格納された前記先行アドレスとの間で排他的論理和を演算することの可能な排他的論理和モジュールを有することを特徴とする付記１６記載のエンコーダ。
【００６１】
（付記１９）　アドレスを受信するように動作することの可能な入力；
アドレスバスに接続された出力；
前記入力にて受信した第１の先行アドレスを維持する第１のセクタヘッド；
前記入力にて受信した第２の先行アドレスを維持する第２のセクタヘッド；及び
受信したアドレスをセクタヘッドに関連付け、受信したアドレスと関連するセクタヘッドに格納された先行アドレスとの間で排他的論理和を実行し、前記出力に排他的論理和演算の結果を伝達するように動作し得る排他的論理和モジュール；
を有することを特徴とするエンコーダ。
【００６２】
（付記２０）　選択モジュールが、更に、受信したアドレスから複数のビットの部分集合を選択し、複数のビットの部分集合に少なくとも部分的に基づいてセクタヘッドを選択するように動作することを特徴とする付記１９記載のエンコーダ。
【００６３】
（付記２１）　選択モジュールが、更に、第１のセクタヘッドをアドレス空間内の第１セクタに関連付け、第２のセクタヘッドをアドレス空間内の第２セクタに関連付けることを特徴とする付記２０記載のエンコーダ。
【００６４】
（付記２２）　更に：
前記入力にて受信した第３の先行アドレスを維持する第３のセクタヘッド；
前記入力にて受信した第４の先行アドレスを維持する第４のセクタヘッド；及び
受信したアドレスに関連付けるために４つのセクタヘッドの内の１つを選択するよう動作し得る選択モジュール；
を有することを特徴とする付記２１記載のエンコーダ。
【００６５】
（付記２３）　選択モジュールが、更に、受信したアドレスから複数のビットの部分集合を選択し、複数のビットの部分集合に少なくとも部分的に基づいて４つのセクタヘッドの内の１つを選択することを特徴とする付記２２記載のエンコーダ。
【００６６】
（付記２４）　アドレスを受信するよう動作することの可能な入力；
アドレスバスに接続された出力；
前記入力にて受信した第１の先行アドレスを維持する第１のセクタヘッド；
前記入力にて受信した第２の先行アドレスを維持する第２のセクタヘッド；
前記入力にて受信した第３の先行アドレスを維持する第３のセクタヘッド；
前記入力にて受信した第４の先行アドレスを維持する第４のセクタヘッド；
前記第１の先行アドレス又は前記第２の先行アドレスに基づいて、第１のオフセットアドレスを選択するように動作する第１マルチプレクサ；
前記第３の先行アドレス又は前記第４の先行アドレスに基づいて、第２のオフセットアドレスを選択するように動作する第２マルチプレクサ；及び
受信したアドレスと第１のオフセットアドレスとの間の第１のオフセットを計算し、受信したアドレスと第２のオフセットアドレスとの間の第２のオフセットを計算し、前記第１のオフセットが前記第２のオフセットより小さい場合に前記第１のオフセットを選択し、前記第１のオフセットが前記第２のオフセットより小さくない場合に前記第２のオフセットを選択し、選択されたオフセットに少なくとも部分的に基づいて非冗長性のコードワードを作成し、及び前記コードワードを前記出力にて伝送するように動作することの可能な選択モジュール；
を有することを特徴とするエンコーダ。
【００６７】
【図面の簡単な説明】
【図１】図１は、様々な本願実施例による、アドレスバスを介して送信される通信内容をエンコードする処理システムの一部を示す図である。
【図２】図２は、ダイナミックセクタ符号化を利用する、図１のアドレスバスを介して送信される通信内容をエンコードするエンコーダを示す図である。
【図３】図３は、固定セクタ符号化を利用する、図１のアドレスバスを介して送信される通信内容をエンコードするエンコーダを示す図である。
【図４】図４は、２つのセクタヘッド及びアドレス空間における関連するカバレッジセットを示す図である。
【図５】図５は、ダイナミックセクタ符号化を利用する、図１のアドレスバスを介して送信される通信内容をエンコードする方法を示すフローチャートである。
【図６】図６は、固定セクタ符号化を利用する、図１のアドレスバスを介して送信される通信内容をエンコードする方法を示すフローチャートである。
【符号の説明】
１０　システム
１２　マイクロプロセッサ
１４　メモリ
１６　アドレスバス
１８　データバス
２０　エンコーダ
２２　デコーダ
２５　セクタヘッド
３０　アドレス
３２　入力
３４　オフセット論理
３６　大小比較モジュール
３８　マルチプレクサ
４０　ＡＮＤゲート
４２　排他的論理和モジュール
４４　状態遷移信号部
４６　マルチプレクサ
４８　排他的論理和モジュール
５０　状態遷移信号部
１２０　エンコーダ
２２０　エンコーダ
【図１】
2004030646.tif 000003
【図２】
2004030646.tif 000004
【図３】
2004030646.tif 000005
【図４】
2004030646.tif 000006
【図５】
2004030646.tif 000007
【図６】
2004030646.tif 000008