(57)【要約】【課題】  システム全体で消費電力削減の効果が高いデータ処理装置、データ処理システム、およびデータ処理方法を提供する。【解決手段】  レジスタファイル部３１は、バスＰＢ１を介して、データ復元回路３２Ｘａ，３２Ｘｂにレジスタファイル信号ＤＸａ，ＤＸｂをそれぞれ出力する。データ復元回路３２Ｘａ，３２Ｘｂは、バスＰＢ１を介して同時に転送されるデータ反転／非反転信号ＢＦａ，ＢＦｂを元に、レジスタファイル信号ＤＸａ，ＤＸｂからデータ信号Ｄａ，Ｄｂをそれぞれ復元する。演算器３５は、データ信号Ｄａ，Ｄｂを演算してデータ信号Ｄｃを出力する。データ変換回路３２Ｙは、データ信号Ｄｃを元に生成したデータ反転／非反転信号ＢＦｃに従ってデータ信号Ｄｃをビット列ごとに反転または非反転し、変換データ信号ＤＸｃを出力する。【選択図】        図３
2006203756.tif 000002
【特許請求の範囲】
【請求項１】
複数ビットのデータを転送するバスと、
前記バスを介して転送する入力信号を受け、前記入力信号の所定数のビットの論理を、反転／非反転信号と前記所定数のビットとにおける第１の論理の数が第２の論理の数以上となるように反転または非反転して変換信号を生成し、かつ前記変換信号の前記所定数のビットの反転または非反転を示す前記反転／非反転信号を生成し、前記変換信号および前記反転／非反転信号を前記バスに出力する変換回路とを備える、データ処理装置。
【請求項２】
前記バスがトライステート出力バッファを有する、請求項１に記載のデータ処理装置。
【請求項３】
前記バスはプリチャージバスであり、
前記第１の論理は前記プリチャージバスをプリチャージされた状態に維持する論理で、前記第２の論理は前記プリチャージバスを放電する論理である、請求項１に記載のデータ処理装置。
【請求項４】
前記変換回路は、前記入力信号を各々が所定数のビットを持つビット単位に分割し、前記ビット単位ごとに前記変換信号および前記反転／非反転信号を生成し、前記変換信号および前記反転／非反転信号を前記バスに出力する、請求項１〜３のいずれかに記載のデータ処理装置。
【請求項５】
前記バスを介して転送された前記変換信号および前記反転／非反転信号を受けて、前記入力信号を復元する復元回路をさらに備える、請求項１〜４のいずれかに記載のデータ処理装置。
【請求項６】
前記変換回路は、
前記反転／非反転信号と前記所定数のビットとにおける前記第１の論理の数が前記第２の論理の数以上か否かを判定し、前記判定に基づいて前記反転／非反転信号を生成する反転／非反転信号生成回路と、
前記入力信号を反転するインバータと、
前記反転／非反転信号に従って、前記入力信号と前記入力信号の反転信号とのいずれか一方を選択し、前記選択された信号を前記変換信号として出力するセレクタとを含む、請求項１〜５のいずれかに記載のデータ処理装置。
【請求項７】
前記復元回路は、
前記変換信号を反転するインバータと、
前記反転／非反転信号に従って、前記変換信号と前記変換信号の反転信号とのいずれか一方を選択し、前記選択された信号を前記入力信号として出力するセレクタとを含む、請求項５に記載のデータ処理装置。
【請求項８】
前記トライステート出力バッファは、
第１の電位ノードと、
前記第１の電位ノードより電位の低い第２の電位ノードと、
前記第１の電位ノードと第１のスイッチを介して接続され、かつ前記第２の電位ノードと第２のスイッチを介して接続された、前記バスとの接続ノードと、
出力制御信号と前記変換信号と前記反転／非反転信号とから前記第１のスイッチのオン／オフを制御する第１の制御信号を生成する第１の論理回路と、
前記出力制御信号と前記変換信号と前記反転／非反転信号とから前記第２のスイッチのオン／オフを制御する第２の制御信号を生成する第２の論理回路とを備え、
前記接続ノードは、高インピーダンス状態、または前記変換信号および前記反転／非反転信号の出力状態に設定されることを特徴とする、請求項２および４〜７のいずれかに記載のデータ処理装置。
【請求項９】
前記プリチャージバスは、
第１の電位ノードと、
前記第１の電位ノードより電位の低い第２の電位ノードと、
プリチャージノードと、
前記第１の電位ノードと前記プリチャージノードとの間に接続され、ゲートにクロック信号、または前記クロック信号の反転信号を受ける第１導電型の第１のトランジスタと、
一端が前記第２の電位ノードに接続され、ゲートに前記クロック信号、または前記クロック信号の反転信号を受ける第２導電型の第２のトランジスタと、
前記プリチャージノードと前記第２のトランジスタの他端との間に接続され、ゲートに前記変換信号および前記反転／非反転信号、または前記変換信号の反転信号および前記反転／非反転信号の反転信号を受ける第２導電型の第３のトランジスタと、
前記第１の電位ノードと前記プリチャージノードとの間に接続される第１導電型の第４のトランジスタと、
前記プリチャージノードと前記第４のトランジスタのゲートとの間に接続されるインバータとを含む、請求項３〜７のいずれかに記載のデータ処理装置。
【請求項１０】
前記所定数は８である、請求項１〜９のいずれかに記載のデータ処理装置。
【請求項１１】
前記入力信号は、データ信号である、請求項１〜１０のいずれかに記載のデータ処理装置。
【請求項１２】
前記入力信号は、アドレス信号である、請求項１〜１０のいずれかに記載のデータ処理装置。
【請求項１３】
複数ビットのデータを転送するバスと、
前記バスを介して転送する入力信号を受け、前記入力信号の所定数のビットの論理を、反転／非反転信号と前記所定数のビットとにおける第１の論理の数が第２の論理の数以上となるように反転または非反転して変換信号を生成し、かつ前記変換信号の前記所定数のビットの反転または非反転を示す前記反転／非反転信号を生成し、前記変換信号および前記反転／非反転信号を前記バスに出力する変換回路を含む処理部と、
前記バスを介して転送された前記変換信号および前記反転／非反転信号を受けるメモリ部とを備える、データ処理システム。
【請求項１４】
前記メモリ部は、前記バスを介して転送された前記変換信号および前記反転／非反転信号を受けて前記入力信号を復元する復元回路を含む、請求項１３に記載のデータ処理システム。
【請求項１５】
前記バスを介して転送された前記変換信号および前記反転／非反転信号を受けて、前記入力信号を復元する復元回路をさらに備える、請求項１３に記載のデータ処理システム。
【請求項１６】
前記処理部は、前記メモリ部から前記バスを介して転送される前記変換信号および前記反転／非反転信号を受けて前記入力信号を復元する復元回路をさらに含む、請求項１３に記載のデータ処理システム。
【請求項１７】
バスを介して転送すべき入力信号を変換するデータ変換方法であって、
前記入力信号の所定数のビット論理を、反転／非反転信号と前記所定数のビットとにおける第１の論理の数が第２の論理の数以上となるように反転または非反転して変換信号を生成するステップと、
前記変換信号の前記所定数のビットの反転または非反転を示す前記反転／非反転信号を生成するステップと、
前記変換信号および前記反転／非反転信号を前記バスに出力するステップとを備える、データ処理方法。
【請求項１８】
前記変換信号を生成するステップに先立って、前記入力信号を各々が所定数のビットを有するビット単位に分割するステップをさらに備える、請求項１７に記載のデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ処理装置、データ処理システム、およびデータ処理方法に関し、特に、データ処理された信号をバスを介して転送するデータ処理装置、データ処理システム、およびデータ処理方法に関する。
【背景技術】
【０００２】
データ処理装置の命令フォーマットまたはデータ等に処理を施すことによって消費電力の低減を図る技術の研究開発が進められている。
【０００３】
特許文献１に開示された従来のデータ変換回路は、ストレートバイナリ形式のデータを所定形式のデータに変換するデータ変換回路を備える。当該データ変換回路は、ストレートバイナリ形式のデータのうち最上位ビットが「１」であるものについて、当該データの最上位ビット以外のビットを反転する。このような所定形式への変換により、反転するビットの数が少なくなるので、消費電力が低減される。
【０００４】
特許文献２に開示された従来のデータ処理装置は、データ書込み時に「０」の数と「１」の数とを検出し、「０」の数が少ない場合には、反転したデータを書込むとともに、反転したかどうかのフラグ情報も書込む。読出し時には、当該フラグ情報に応じてデータを反転する。これにより、メモリセルに保持されているデータを反転させる頻度が少なくなるため、データ書込み時における消費電力が低減される。
【特許文献１】特開２００３−１０１４１５号公報
【特許文献２】特開２００２−３６６４１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１のデータ変換回路は、音声データや色成分データのような「０」を中心として正側および負側に変動するデータの変換に関して、「００００  ００００」から「１１１１  １１１１」、またはその逆のデータを頻繁に入出力する場合の問題点を解決するために考案されたものである。つまり、特許文献１のデータ変換回路は、連続性のあるデータに対して消費電力を削減するものであって、たとえばランダムなデータに対しては全く効果がなく、かえって消費電力が増大する可能性がある。
【０００６】
特許文献２のデータ処理装置は、メモリとシステムバスとの間にデータ変換部を設けることで、ランダムアクセスメモリの書込み時における消費電力を削減することを目的としたものである。つまり、特許文献２のデータ処理装置は、メモリアクセス時のメモリの消費電力を削減するものであって、システム全体を考えると消費電力削減の効果は低いという問題を有する。
【０００７】
それゆえに、この発明の目的は、システム全体で消費電力削減の効果が高いデータ処理装置、データ処理システム、およびデータ処理方法を提供することである。
【課題を解決するための手段】
【０００８】
この発明のある局面によるデータ処理装置は、複数ビットのデータを転送するバスと、バスを介して転送する入力信号を受け、入力信号の所定数のビットの論理を、反転／非反転信号と所定数のビットとにおける第１の論理の数が第２の論理の数以上となるように反転または非反転して変換信号を生成し、かつ変換信号の所定数のビットの反転または非反転を示す反転／非反転信号を生成し、変換信号および反転／非反転信号をバスに出力する変換回路とを備える。
【０００９】
この発明の他の局面によるデータ処理システムは、複数ビットのデータを転送するバスと、バスを介して転送する入力信号を受け、入力信号の所定数のビットの論理を、反転／非反転信号と所定数のビットとにおける第１の論理の数が第２の論理の数以上となるように反転または非反転して変換信号を生成し、かつ変換信号の所定数のビットの反転または非反転を示す反転／非反転信号を生成し、変換信号および反転／非反転信号をバスに出力する変換回路を含む処理部と、バスを介して転送された変換信号および反転／非反転信号を受けるメモリ部とを備える。
【００１０】
この発明のさらに他の局面によるデータ処理方法は、バスを介して転送すべき入力信号を変換するデータ変換方法であって、入力信号の所定数のビット論理を、反転／非反転信号と所定数のビットとにおける第１の論理の数が第２の論理の数以上となるように反転または非反転して変換信号を生成するステップと、変換信号の所定数のビットの反転または非反転を示す反転／非反転信号を生成するステップと、変換信号および反転／非反転信号をバスに出力するステップとを備える。
【発明の効果】
【００１１】
この発明によれば、システム全体で消費電力削減の効果が高くなる。
【発明を実施するための最良の形態】
【００１２】
以下、この発明の実施の形態について図面を参照して詳しく説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【００１３】
［実施の形態１］
図１は、この発明の実施の形態１によるデータ処理システム１Ａを概略的に表わしたブロック図である。
【００１４】
図１を参照して、実施の形態１のデータ処理システム１Ａは、メモリ２と、ＣＰＵ（Central Processing Unit）３とを備える。メモリ２とＣＰＵ３との間では、変換データ信号ＤＸおよびそれに対応するデータ反転／非反転信号ＢＦ、ならびに、変換アドレス信号ＡＤＤＸおよびそれに対応するアドレス反転／非反転信号ＢＦａｄが互いに入出力される。メモリ２とＣＰＵ３との間の上記信号の転送は、少なくとも一部がバスを介して行なわれる。
【００１５】
データ反転／非反転信号ＢＦは、１ビットまたは複数ビットからなり、データ転送論理に応じて変換データ信号ＤＸとビット反転信号ＢＦとの合計の「１」または「０」の出現率が同じかまたは高くなるようにデータ信号ＤＴ（図１では明示せず）のビット列ごとの反転／非反転を示した信号である。アドレス反転／非反転信号ＢＦａｄは、１ビットまたは複数ビットからなり、データ転送論理に応じて変換アドレス信号ＡＤＤＸとアドレス反転／非反転信号ＢＦａｄとの合計の「１」または「０」の出現率が同じかまたは高くなるようにアドレス信号ＡＤＤ（図１では明示せず）のビット列ごとの反転／非反転を示した信号である。
【００１６】
データ信号ＤＴおよびアドレス信号ＡＤＤの「１」または「０」のどちらの出現率を高めるかは、データ処理システム１Ａにおけるデータ転送が負論理に従うか正論理に従うかによって決めることができる。変換データ信号ＤＸは、データ反転／非反転信号ＢＦに従って、データ信号ＤＴがビット列ごとに反転または非反転されたデータ信号である。変換アドレス信号ＡＤＤＸは、アドレス反転／非反転信号ＢＦａｄに従って、アドレス信号ＡＤＤがビット列ごとに反転または非反転されたアドレス信号である。
【００１７】
データ処理システム１Ａにおけるデータ転送が正論理に従う場合、すなわち、データ転送時においてデータ信号の「１」が回路のＨレベル（高レベル）に対応する場合、変換データ信号ＤＸは、「１」の出現率が増加するようにビット列ごとに反転または非反転されている。当該変換データ信号ＤＸをデータ処理システム１Ａにおけるバスを介して転送することによって、正論理において「０」に遷移するビット数を削減することができる。これにより、データ処理システム１Ａの消費電力を低減することができる。これは、データ信号の代わりにたとえばアドレス信号を用いても同じである。
【００１８】
データ処理システム１Ａにおけるデータ転送が負論理に従う場合、すなわち、データ転送時においてデータ信号の「１」が回路のＬレベル（低レベル）に対応する場合、変換データ信号ＤＸは、「０」の出現率が増加するようにビット列ごとに反転または非反転されている。当該変換データ信号ＤＸをデータ処理システム１Ａにおけるバスを介して転送することによって、負論理において「１」に遷移するビット数を削減することができる。これにより、データ処理システム１Ａの消費電力を低減することができる。これは、データ信号の代わりにたとえばアドレス信号を用いても同じである。
【００１９】
以下、データ処理システム１Ａの具体的な構成の一例について説明する。
【００２０】
図２は、この発明の実施の形態１によるデータ処理システム１Ａの具体的な構成を示したブロック図である。
【００２１】
図２を参照して、実施の形態１のデータ処理システム１Ａは、メモリ＆周辺回路２ａと、ＣＰＵ３とを備える。メモリ＆周辺回路２ａは、図１のメモリ２に対応し、アドレス復元回路６を含む。ＣＰＵ３は、命令／データフェッチ部１０と、命令デコード部２０と、演算実行部３０とを含む。命令／データフェッチ部１０は、データストア部１１と、アドレス変換回路１２とを含む。
【００２２】
メモリ＆周辺回路２ａは、データ書込時、命令／データフェッチ部１０のデータストア部１１から出力される変換データ信号ＤＸ１３およびそれに対応するデータ反転／非反転信号ＢＦ１３を受ける。メモリ＆周辺回路２ａは、変換データ信号ＤＸ１３およびデータ反転／非反転信号ＢＦ１３を受けて、アドレス信号ＡＤＤ（図２では明示せず）に変換データ信号ＤＸ１３およびデータ反転／非反転信号ＢＦ１３を書き込む。
【００２３】
データ読出時、メモリ＆周辺回路２ａに含まれるアドレス復元回路６は、命令／データフェッチ部１０のアドレス変換回路１２から出力される変換アドレス信号ＡＤＤＸおよびそれに対応するアドレス反転／非反転信号ＢＦａｄを受けて、変換前のアドレス信号ＡＤＤを復元する。その後、メモリ＆周辺回路２ａは、当該アドレス信号ＡＤＤに応じてアドレス信号ＡＤＤからデータ反転／非反転信号ＢＦ１４および変換データ信号ＤＸ１４を読み出し、変換データ信号ＤＸ１４およびそれに対応するデータ反転／非反転信号ＢＦ１４を命令／データフェッチ部１０に出力する。
【００２４】
変換データ信号ＤＸ１４は、変換オペランド信号ＯＰＸおよび変換データ信号ＤＸ１１の少なくとも一方を含む。データ反転／非反転信号ＢＦ１４は、変換データ信号ＤＸ１４に対応して、オペランド反転／非反転信号ＢＦｏｐおよびデータ反転／非反転信号ＢＦ１１の少なくとも一方を含む。１ビットのデータ反転／非反転信号ＢＦ１４からオペランド反転／非反転信号ＢＦｏｐおよびデータ反転／非反転信号ＢＦ１１の両方を生成する場合、命令／データフェッチ部１０は、データ反転／非反転信号ＢＦ１４を複製する。これにより、オペランド反転／非反転信号ＢＦｏｐおよびデータ反転／非反転信号ＢＦ１１は、ともにデータ反転／非反転信号ＢＦ１４と同じ値となる。
【００２５】
命令／データフェッチ部１０は、変換データ信号ＤＸ１４に含まれる変換オペランド信号ＯＰＸ、およびそれに対応するオペランド反転／非反転信号ＢＦｏｐを、命令デコード部２０に出力する。命令デコード部２０は、当該変換オペランド信号ＯＰＸおよびそれに対応するオペランド反転／非反転信号ＢＦｏｐをデコードし、そのデコード内容に基づいた制御信号ＣＴＲを演算実行部３０に出力する。
【００２６】
また、命令／データフェッチ部１０は、変換データ信号ＤＸ１４に含まれる変換データ信号ＤＸ１１、およびそれに対応するデータ反転／非反転信号ＢＦ１１を、演算実行部３０に出力する。演算実行部３０は、データ反転／非反転信号ＢＦ１１に基づいて変換データ信号ＤＸ１１を変換前のデータ信号に復元し、制御信号ＣＴＲに応じて当該変換前のデータ信号に演算を施す。演算実行部３０は、制御信号ＣＴＲに応じて演算を施されたデータ信号を再び変換し、当該変換データ信号ＤＸ１２およびそれに対応するデータ反転／非反転信号ＢＦ１２を命令／データフェッチ部１０に出力する。変換データ信号ＤＸ１２は、変換データ信号ＤＸ１３または変換アドレス信号ＡＤＤの少なくとも一方を含む。
【００２７】
図３は、図２の演算実行部３０の具体的な構成を示したブロック図である。図３を参照して、演算実行部３０は、レジスタファイル部３１と、データ復元回路３２Ｘａ，３２Ｘｂと、データ変換回路３２Ｙと、演算器３５と、バスＰＢ１，ＰＢ２とを含む。バスＰＢ１，ＰＢ２は、プリチャージバスである。データ復元回路３２Ｘａ，３２Ｘｂおよびデータ変換回路３２Ｙは、以下に述べるデータ信号の変換による効果を高めるため、配線負荷の大きいところに設けられるのが好ましい。なお、バスＰＢ１とバスＰＢ２とは、同一のバスであっても構わない。
【００２８】
レジスタファイル部３１は、図２の制御信号ＣＴＲを受けて、データ復元回路３２Ｘａにレジスタファイル信号ＤＸａを、データ復元回路３２Ｘｂにレジスタファイル信号ＤＸｂを、バスＰＢ１を介してそれぞれ出力する。
【００２９】
レジスタファイル信号ＤＸａ，ＤＸｂは、それぞれ、図２の変換データ信号ＤＸ１４の一部を構成する信号であり、たとえば、変換データ信号ＤＸ１４をビット列ごとに分割した信号である。なお、レジスタファイル信号ＤＸａ，ＤＸｂの一方または両方は、図２の変換データ信号ＤＸ１１と同じデータを意味する。ここでは、演算実行部３０内における当該データを「ＤＸａ，ＤＸｂ」と呼び、演算実行部３０外では「ＤＸ１１」と呼ぶ。また、レジスタファイル部３１は、図２の制御信号ＣＴＲを受けて、データ復元回路３２Ｘａ，３２Ｘｂの各々にバスＰＢ１を介してデータ反転／非反転信号ＢＦａ，ＢＦｂを出力する。
【００３０】
データ復元回路３２Ｘａは、データ反転／非反転信号ＢＦａを元に、レジスタファイル信号ＤＸａからデータ信号Ｄａを復元する。データ復元回路３２Ｘｂは、データ反転／非反転信号ＢＦｂを元に、レジスタファイル信号ＤＸｂからデータ信号Ｄｂを復元する。演算器３５は、データ信号Ｄａ，Ｄｂを受けて、図２の制御信号ＣＴＲに含まれる演算命令（オペランドコード）を実行し、演算結果をデータ信号Ｄｃとして出力する。
【００３１】
データ変換回路３２Ｙは、反転／非反転信号生成回路（図３では図示せず）を用いて、データ信号Ｄｃからデータ反転／非反転信号ＢＦｃを生成する。データ変換回路３２Ｙは、データ反転／非反転信号ＢＦｃに従ってデータ信号Ｄｃをビット列ごとに反転または非反転し、生成された変換データ信号ＤＸｃを、バスＰＢ２を介して、レジスタファイル部３１等に出力する。なお、変換データ信号ＤＸｃは、図２の変換データ信号ＤＸ１２と同じデータを意味する。ここでは、データ変換回路３２Ｙからレジスタファイル部３１に出力される信号を変換データ信号ＤＸｃと呼び、レジスタファイル部３１から図２の命令／データフェッチ部１０に出力される信号を変換データ信号ＤＸ１２と呼ぶ。
【００３２】
また、データ変換回路３２Ｙは、レジスタファイル部３１等にバスＰＢ２を介してデータ反転／非反転信号ＢＦｃを出力する。なお、データ反転／非反転信号ＢＦｃは、図２のデータ反転／非反転信号ＢＦ１２と同じデータを意味する。ここでは、データ変換回路３２Ｙからレジスタファイル部３１に出力される信号をデータ反転／非反転信号ＢＦｃと呼び、レジスタファイル部３１から図２の命令／データフェッチ部１０に出力される信号をデータ反転／非反転信号ＢＦ１２と呼ぶ。
【００３３】
図４は、図３のバスＰＢ１の具体的な構成の一例であるバスＰＢ１ｐの構成を示した回路図である。なお、以下の図４の説明は、バスＰＢ１に限らず、データ処理システム１Ａのローカルバス、システムバスなどあらゆるバスに対して適用可能である。
【００３４】
図４を参照して、バスＰＢ１は、プリチャージバスであって、ＰチャネルＭＯＳトランジスタ５１，５３と、ＮチャネルＭＯＳトランジスタ５２，５６と、インバータ５４，５５とを含む。図４では、レジスタファイル部３１からデータ復元回路３２Ｘａに出力される信号を一例として取り上げている。
【００３５】
ＰチャネルＭＯＳトランジスタ５１は、電源ノードとプリチャージノードＰｒＮとの間に接続され、ゲートにクロック信号／ＣＬＫを受ける。これにより、クロック信号／ＣＬＫがＬレベルのとき、プリチャージノードＰｒＮは電源電圧（Ｈレベル）にプリチャージされる。なお、クロック信号／ＣＬＫは、その反転信号であるクロック信号ＣＬＫであってもよい。これは、次の図５でも同様である。
【００３６】
ＮチャネルＭＯＳトランジスタ５２は、プリチャージノードＰｒＮと第１ノードＮＤとの間に接続され、ゲートにインバータ５５を介して図３のレジスタファイル部３１から出力される変換データ信号ＤＸａおよびデータ反転／非反転信号ＢＦａを受ける。ＮチャネルＭＯＳトランジスタ５６は、第１ノードＮＤと接地ノードとの間に接続され、ゲートにクロック信号／ＣＬＫを受ける。以下、図４の説明において、変換データ信号ＤＸａといえば、特に分けて記載しない限りデータ反転／非反転信号ＢＦａを含むものとする。
【００３７】
ＰチャネルＭＯＳトランジスタ５３は、電源ノードとプリチャージノードＰｒＮとの間に接続されている。インバータ５４は、入力端子がプリチャージノードＰｒＮに接続され、出力端子がＰチャネルＭＯＳトランジスタ５３のゲートに接続されている。インバータ５４の出力端子は、図３のデータ復元回路３２Ｘａ，３２Ｘｂに接続されている。
【００３８】
次に、クロック信号／ＣＬＫがＨレベルのときについて説明する。まず、バスＰＢ１におけるデータ転送が正論理に従う場合、すなわち、バスＰＢ１の回路構成が図４のバスＰＢ１ｐに対応する場合について考える。
【００３９】
この場合、変換データ信号ＤＸが「１」すなわちＨレベルのとき、ＮチャネルＭＯＳトランジスタ５２は反転された変換データ信号ＤＸａの入力を受けてオフとなる。このとき、プリチャージノードＰｒＮは放電（ディスチャージ）しない。したがって、バスＰＢ１におけるデータ転送が正論理に従う場合、「１」の出現率が増加するようにデータ信号の各ビット列を反転または非反転した変換データ信号ＤＸａをバスＰＢ１上で転送することによって、変換データ信号ＤＸａの「０」のビット数を削減することができる。
【００４０】
これにより、プリチャージノードＰｒＮにおける放電回数が減り、バスＰＢ１におけるデータ転送時の消費電力を低減することができる。また、前述のように、図４に示したバスＰＢ１の構成は、図２のデータ処理システム１Ａにおけるあらゆるバスに対して適用可能である。そのため、実施の形態１では、図２のたとえばメモリ＆周辺回路２ａと命令／データフェッチ部１０との間のバスにおいても充放電が少なくなり、これによる消費電力の低減効果が生じる。
【００４１】
データ反転／非反転信号ＢＦａは、バスＰＢ１におけるデータ転送が正論理に従う場合には、変換データ信号ＤＸａとビット反転信号ＢＦａとの合計の「１」の出現率が高くなるようにデータ信号のビット列ごとの反転／非反転を示した信号である。このような出現率の決め方に従う限り、データ反転／非反転信号ＢＦａは、データ信号の反転時に「１」、非反転時に「０」と定義してもよいし、データ信号の反転時に「０」、非反転時に「１」と定義してもよい。
【００４２】
次に、バスＰＢ１におけるデータ転送が負論理に従う場合、すなわち、バスＰＢ１の回路構成が以下で説明するバスＰＢ１ｎに対応する場合について考える。
【００４３】
図５は、図３のバスＰＢ１の具体的な構成の他の一例であるバスＰＢ１ｎの構成を示した回路図である。図５は、バスＰＢ１におけるデータ転送が負論理に従うことに合わせてインバータ５５が取り除かれた点においてのみ図４と異なる。したがって、図４と重複する部分の説明は、ここでは繰り返さない。
【００４４】
図５において、クロック信号／ＣＬＫがＨレベルでかつ変換データ信号ＤＸａが「０」すなわちＬレベルのとき、ＮチャネルＭＯＳトランジスタ５２は変換データ信号ＤＸａの入力を受けてオフとなる。このとき、プリチャージノードＰｒＮは放電しない。したがって、バスＰＢ１におけるデータ転送が負論理に従う場合、「０」の出現率が増加するようにデータ信号の各ビット列を反転または非反転した変換データ信号ＤＸａをバスＰＢ１上で転送することによって、変換データ信号ＤＸａの「１」のビット数を削減することができる。
【００４５】
これにより、プリチャージノードＰｒＮにおける放電回数が減り、バスＰＢ１におけるデータ転送時の消費電力を低減することができる。また、前述のように、図４に示したバスＰＢ１の構成は、図２のデータ処理システム１Ａにおけるあらゆるバスに対して適用可能である。そのため、実施の形態１では、図２のたとえばメモリ＆周辺回路２ａと命令／データフェッチ部１０との間のバスにおいても充放電が少なくなり、これによる消費電力の低減効果が生じる。
【００４６】
データ反転／非反転信号ＢＦａは、バスＰＢ１におけるデータ転送が負論理に従う場合には、変換データ信号ＤＸａとビット反転信号ＢＦａとの合計の「０」の出現率が高くなるようにデータ信号のビット列ごとの反転／非反転を示した信号である。このような出現率の決め方に従う限り、データ反転／非反転信号ＢＦａは、データ信号の反転時に「１」、非反転時に「０」と定義してもよいし、データ信号の反転時に「０」、非反転時に「１」と定義してもよい。
【００４７】
図６は、図３のバスＰＢ１においてデータ信号を変換せずに転送する場合のデータ転送動作の一例を比較例として時系列的に示した図である。図６では転送されるデータ信号の電位レベルに着目しているため、バスＰＢ１におけるデータ転送が正論理に従う場合であっても負論理に従う場合であっても成り立つ。ここでは、説明を簡略化するために、データ反転／非反転信号は考慮しない。
【００４８】
図６を参照して、時刻ｔ１において、バスＰＢ１における各ビットレベルが全てＨレベルにプリチャージされる。時刻ｔ２において、時刻ｔ１の状態から２つのビットレベルをＨレベルからＬレベルに遷移させることにより、１回目のデータ転送が行なわれる。このとき、放電するビット数は２となる。
【００４９】
時刻ｔ３において、バスＰＢ１における各ビットレベルが再び全てＨレベルにプリチャージされる。時刻ｔ４において、時刻ｔ３の状態から４つのビットレベルをＨレベルからＬレベルに遷移させることにより、２回目のデータ転送が行なわれる。このとき、放電するビット数は４となる。
【００５０】
以上のように、データ信号を変換せずに転送する図６のデータ転送動作において、放電するビット数は１回目と２回目とで計６となる。
【００５１】
図７は、図３のバスＰＢ１において図６のデータ信号を変換して転送する場合のデータ転送動作の一例を時系列的に示した図である。図７では転送される変換データ信号の電位レベルに着目しているため、バスＰＢ１におけるデータ転送が正論理に従う場合であっても負論理に従う場合であっても成り立つ。
【００５２】
図７を参照して、時刻ｔ１において、バスＰＢ１における各ビットレベルが全てＨレベルにプリチャージされる。時刻ｔ２において、時刻ｔ１の状態から２つのビットレベルをＨレベルからＬレベルに遷移させることにより、１回目のデータ転送が行なわれる。図６において示したように、１回目のデータ転送時において、ＨレベルからＬレベルに遷移するデータビット数は遷移しないデータビット数より少ない。そのため、１回目のデータ転送時における変換データ信号は変換前のデータ信号と同一となり、放電するビット数は２となる。
【００５３】
時刻ｔ３において、バスＰＢ１における各ビットレベルが再び全てＨレベルにプリチャージされる。時刻ｔ４において、時刻ｔ３の状態から１つのビットレベルをＨレベルからＬレベルに遷移させることにより、２回目のデータ転送が行なわれる。図６において示したように、２回目のデータ転送時において、ＨレベルからＬレベルに遷移するデータビット数は遷移しないデータビット数より多い。そのため、２回目のデータ転送時における変換データ信号は変換前のデータ信号を反転した信号となり、その結果、放電するビット数は１となる。
【００５４】
以上のように、データ信号を変換して転送する図７のデータ転送動作において、放電するビット数は１回目と２回目とで計３となる。このように、図３のバスＰＢ１におけるデータ転送時にデータ信号を変換して転送することにより、データ信号を変換しない場合と比べて消費電力に直接影響を与える、放電するビット数を減少させることが可能となる。
【００５５】
図８は、図３のデータ復元回路３２Ｘａの具体的な構成の一例を示した回路ブロック図である。なお、データ復元回路３２Ｘｂも同様の回路構成を有する。
【００５６】
図８を参照して、データ復元回路３２Ｘａは、インバータ７２と、セレクタ７３とを含む。インバータ７２は、レジスタファイル信号ＤＸａを反転する。セレクタ７３は、データ反転／非反転信号ＢＦａに応じて、ビット列ごとにレジスタファイル信号ＤＸａおよびその反転信号のいずれか一方を選択する。これにより、レジスタファイル信号ＤＸａからデータ信号Ｄａが復元される。
【００５７】
上記のように、データ復元回路３２Ｘａ，３２Ｘｂは、レジスタファイル信号（変換データ信号）からデータ信号を復元するものであるが、レジスタファイル信号の代わりに変換アドレス信号、データ反転／非反転信号の代わりにアドレス反転／非反転信号をそれぞれ用いることによって、同様の回路構成で、アドレス復元回路６（図２参照）を実現することができる。
【００５８】
図９は、図３のデータ変換回路３２Ｙの具体的な構成の一例を示した回路ブロック図である。
【００５９】
図９を参照して、データ変換回路３２Ｙは、反転／非反転信号生成回路８１と、インバータ８２＿ｋと、セレクタ８３＿ｋとを含む（ｋ＝１〜８）。反転／非反転信号生成回路８１は、データ信号Ｄｃがビット列ごとに分割されたデータ信号Ｄｋ（ｋ＝１〜８）を受けて、それぞれ「０」が多いか「１」が多いかを判定する。当該判定結果を元に、データ反転／非反転信号ＢＦｃが生成される。
【００６０】
インバータ８２＿ｋは、データ信号Ｄｋを反転する。セレクタ８３＿ｋは、データ反転／非反転信号ＢＦ２に応じて、データ信号Ｄｋおよびその反転信号のいずれか一方を選択する。これにより、データ信号Ｄｋから変換データ信号ＤＸｋ（ｋ＝０〜８）が生成される。変換データ信号ＤＸｋを連結して、図３の変換データ信号ＤＸｃが生成される。
【００６１】
反転／非反転信号生成回路８１は、具体的には、次のようにして判定を行なう。すなわち、反転／非反転信号生成回路８１は、自身の判定結果に応じて生成される反転／非反転信号ＢＦｃと変換データ信号ＤＸｋとの合計の「０」および「１」の数を推定し、その推定値において「０」が多いか「１」が多いかを判定する。
【００６２】
なお、当該推定値の「０」の数と「１」の数とが等しくなった場合には、データ信号Ｄｋを反転すると判定しても反転しないと判定しても、反転／非反転信号ＢＦｃと変換データ信号ＤＸｋとの合計の「０」の数と「１」の数とは当然同じになる。この場合、データ信号Ｄｋを反転しないと判定するように設定しておけば、データ復元時に変換データ信号ＤＸｋを再反転する必要がない分だけ、図３のデータ復元回路３２Ｘａ，３２Ｘｂの動作を軽減することができる。これにより、実施の形態１のデータ処理システム１Ａの消費電力が低減される。
【００６３】
上記のように、データ変換回路３２Ｙは、データ信号を変換データ信号に変換するものであるが、データ信号の代わりにアドレス信号を用いることによって、同様の回路構成で、アドレス変換回路１２（図２参照）を実現することができる。
【００６４】
図１０は、図９の反転／非反転信号生成回路８１の具体的な構成の一例を示した回路図である。
【００６５】
図１０を参照して、反転／非反転信号生成回路８１は、半加算器（ＨＡ：Half Adder）８１０ａ〜８１０ｄと、全加算器（ＦＡ：Full Adder）８２０ａ，８２０ｂ，８３０と、比較値格納部８４０と、比較回路８５０とを含む。
【００６６】
なお、図１０の反転／非反転信号生成回路８１は、図３のバスＰＢ１，ＰＢ２におけるビット数が８ビット（１バイト）の場合の回路構成である。しかし、バスＰＢ１，ＰＢ２のビット数がたとえば１６ビット，３２ビットであっても、全加算器の数を増やすことによって、同様に反転／非反転信号生成回路を構成することが可能である。また、データ信号Ｄ１〜Ｄ８は、図９のデータ信号Ｄｋ（ｋ＝１〜８）に対応する。
【００６７】
半加算器８１０ａ〜８１０ｄは、それぞれ、２つの１ビットデータを入力して加算し、２ビットのデータとして出力する。全加算器８２０ａ，８２０ｂは、それぞれ、２つの２ビットデータを入力して加算し、３ビットのデータとして出力する。全加算器８３０は、２つの３ビットデータを入力して加算し、４ビットのデータとして出力する。
【００６８】
比較値格納部８４０は、データ反転／非反転信号ＢＦｃを決定する際に使用される比較値ＣＰを予め格納している。８ビット単位における「１」の数が５以上でビット列を反転する設定の場合、比較値格納部８４０に格納される比較値ＣＰは「０１０１（１０進数で５）」、「０１１０（１０進数で６）」、「０１１１（１０進数で７）」および「１０００（１０進数で８）」となる。比較値ＣＰを調整することによって、バスＰＢ１におけるデータ転送が正論理に従うか負論理に従うか、あるいは、データ反転／非反転信号をデータ反転時に「１」と定義するか「０」と定義するか、といった種々の場合に対応することができる。
【００６９】
比較回路８５０は、全加算器８３０から出力される４ビットのデータと、比較値格納部８４０から出力される比較値ＣＰとの一致を判定する。全加算器８３０から出力される４ビットデータと比較値ＣＰとが一致すれば、比較回路８５０は、データ反転／非反転信号ＢＦｃを「１」として出力する。一致しなければ、比較回路８５０は、データ反転／非反転信号ＢＦｃを「０」として出力する。
【００７０】
図１１は、図１０の半加算器８１０ａ〜８１０ｄを代表する半加算器８１０の具体的な構成の一例を示した回路図である。
【００７１】
図１１を参照して、半加算器８１０は、ＸＯＲゲート８１１と、ＡＮＤゲート８１２とを含む。データ信号Ｄｘ，Ｄｙは、図１０のデータ信号Ｄ１〜Ｄ８からなる複数の対のいずれかである。ＸＯＲゲート８１１は、データ信号Ｄｘ，Ｄｙを入力し、和信号Ｓおよび桁上げ信号Ｃを出力する。
【００７２】
図１２は、１ビットの全加算器８１５の構成の一例を示した回路ブロック図である。
【００７３】
図１２を参照して、１ビットの全加算器８１５は、半加算器８１６，８１７と、ＯＲゲート８１８とを含む。半加算器８１６は、入力信号Ｂおよび桁上げ信号ＣＩＮを入力し、和信号Ｓｂおよび桁上げ信号Ｃｂを出力する。半加算器８１７は、入力信号Ａおよび和信号Ｓｂを入力し、和信号Ｓおよび桁上げ信号Ｃａを出力する。ＯＲゲート８１８は、桁上げ信号Ｃａ，Ｃｂを入力し、桁上げ信号ＣＯＵＴを出力する。すなわち、１ビットの加算器８１５は、全体として見れば、入力信号Ａ，Ｂおよび（下位からの）桁上げ信号ＣＩＮを入力し、和信号Ｓおよび桁上げ信号ＣＯＵＴを出力する。
【００７４】
図１３は、図１０の全加算器８２０ａ，８２０ｂを代表する２ビットの全加算器８２０の構成の一例を示した回路ブロック図である。
【００７５】
図１３に示すように、２ビットの全加算器８２０は、図１２で説明した１ビットの全加算器８１５を２つ連結した構成を有する。具体的には、全加算器８１５ａの桁上げ出力端子ＣＯＵＴが全加算器８１５ｂの桁上げ入力端子ＣＩＮに接続されている。
【００７６】
全加算器８１５ａは、入力信号Ａ１，Ｂ１を入力して、和信号Ｓ１を出力する。全加算器８１５ａの桁上げ入力端子ＣＩＮは接地されている。全加算器８１５ｂは、入力信号Ａ２，Ｂ２および全加算器８１５ａからの桁上げ信号を入力して、和信号Ｓ２および桁上げ信号ＣＯＵＴを出力する。すなわち、２ビットの加算器８２０は、全体として見れば、入力信号Ａ１，Ａ２，Ｂ１，Ｂ２を入力し、和信号Ｓ１，Ｓ２および桁上げ信号ＣＯＵＴを出力する。
【００７７】
次に、データ信号をビット列ごとに反転／非反転する具体的な変換例について、データ処理システム１Ａにおけるデータ転送が正論理に従う場合と負論理に従う場合とに分けて説明する。
【００７８】
図１４は、データ処理システム１Ａにおけるデータ転送が正論理に従う場合のデータ信号の具体的な変換例を示した図である。図１４において、（Ａ１）は変換前のデータ信号ＤＴ１、（Ａ２）は変換データ信号ＤＸ１をそれぞれ表わす。
【００７９】
図１４（Ａ１）のデータ信号ＤＴ１は、８ビット×４の３２ビットのビット列からなる。データ信号ＤＴ１は、ＲａレジスタおよびＲｂレジスタの内容に対してＯＰコードによって示される演算命令を実行し、当該演算結果をＲｃレジスタへ格納するという命令列である。図１４に示すように、ＯＰコードは「０１００１１００」、Ｒａレジスタコードは「０００００１１１」、Ｒｂレジスタコードは「００００１０１０」、Ｒｃレジスタコードは「０００１１１１１」のビット列をそれぞれ有する。
【００８０】
図１４（Ａ２）の変換データ信号ＤＸ１は、図１４（Ａ１）のデータ信号ＤＴ１の８ビット（１バイト）ごとに、「０」の数が４個以上か４個未満かに応じて「１」または「０」に設定されたデータ反転／非反転信号ＢＦｐ，ＢＦａ，ＢＦｂ，ＢＦｃがそれぞれ付加されている。あるバイトの「０」の数が４個以上のとき、対応するデータ反転／非反転信号は「１」に設定され、当該コードはビット反転される。その結果、変換データ信号ＤＸ１のあるバイトと対応するデータ反転／非反転信号とを合わせた「１」の数は、当該「０」の数よりも必ず多くなる。これにより、変換データ信号ＤＸ１における「１」の出現率が増加する。
【００８１】
ＯＰコード、ＲａレジスタコードおよびＲｂレジスタコードは、いずれも「０」の数が４個以上なので、対応するデータ反転／非反転信号ＢＦｐ，ＢＦａ，ＢＦｂは全て「１」に設定され、それぞれのコードがビット反転されている。すなわち、ＯＰコードは「１０１１００１１」、Ｒａレジスタコードは「１１１１１０００」、Ｒｂレジスタコードは「１１１１０１０１」のビット列にそれぞれ変換されている。
【００８２】
Ｒｃレジスタコードは、「０」の数が４個未満なので、データ反転／非反転信号ＢＦｃが「０」に設定され、当該コードはビット反転されていない。すなわち、Ｒｃレジスタコードは、「０００１１１１１」のビット列のままである。
【００８３】
図１５は、データ処理システム１Ａにおけるデータ転送が正論理に従う場合のデータ信号の他の具体的な変換例を示した図である。図１５は、変換データ信号のビット数が偶数（図１５では８ビット）の場合を示した図である。図１５において、（Ｂ１）は変換前のデータ信号ＤＴ２０〜ＤＴ２８を表わし、（Ｂ２）は変換データ信号ＤＸ２０〜ＤＸ２８および対応するデータ反転／非反転信号ＢＦｘ０〜ＢＦｘ８を表わす。
【００８４】
図１５（Ｂ１）のデータ信号ＤＴ２０〜ＤＴ２８は、各々異なる９種類の８ビット列である。図１５に示すように、データ信号ＤＴ２０は「００００００００」、データ信号ＤＴ２１は「０００００００１」、・・・、データ信号ＤＴ２８は「１１１１１１１１」のビット列をそれぞれ有する。
【００８５】
図１５（Ｂ２）の変換データ信号ＤＸ２０〜ＤＸ２８は、図１５（Ｂ１）の対応するデータ信号ＤＴ２０〜ＤＴ２８の各ビット列の「０」の数が４個以上か４個未満かに応じて「１」または「０」が設定されたデータ反転／非反転信号ＢＦｘ０〜ＢＦｘ８がそれぞれ付加されている。
【００８６】
データ信号ＤＴ２０〜ＤＴ２８の「０」の数が４個以上のとき、対応するデータ反転／非反転信号ＢＦｘ０〜ＢＦｘ８のビットは「１」に設定され、当該データ信号はビット反転される。その結果、変換データ信号ＤＸ２０〜ＤＸ２８と対応するデータ反転／非反転信号ＢＦｘ０〜ＢＦｘ８とを合わせた「１」の数は、当該「０」の数よりも必ず多くなる。これにより、変換データ信号ＤＸ２０〜ＤＸ２８における「１」の出現率が増加する。
【００８７】
データ信号ＤＴ２０〜ＤＴ２４は、いずれも「０」の数が４個以上なので、対応するデータ反転／非反転信号ＢＦｘ０〜ＢＦｘ４のビットはすべて「１」に設定され、それぞれの変換データ信号がビット反転されている。すなわち、変換データ信号ＤＸ２０は「１１１１１１１１」、変換データ信号ＤＸ２１は「１１１１１１１０」、・・・、変換データ信号ＤＸ２４は「１１１１００００」のビット列にそれぞれ変換されている。
【００８８】
データ信号ＤＴ２５〜ＤＴ２８は、いずれも「０」の数が４個未満なので、対応するデータ反転／非反転信号ＢＦｘ５〜ＢＦｘ８のビットはすべて「０」に設定され、それぞれの変換データ信号はビット反転されていない。すなわち、変換データ信号ＤＸ２５は「０００１１１１１」、変換データ信号ＤＸ２６は「００１１１１１１」、・・・、変換データ信号ＤＸ２８は「１１１１１１１１」のビット列のままである。
【００８９】
図１６は、データ処理システム１Ａにおけるデータ転送が正論理に従う場合のデータ信号のさらに他の具体的な変換例を示した図である。図１６は、変換データ信号のビット数が奇数（図１６では９ビット）の場合を示した図である。図１６において、（Ｃ１）は変換前のデータ信号ＤＴ３０〜ＤＴ３９を表わし、（Ｃ２）は変換データ信号ＤＸ３０〜ＤＸ３９および対応するデータ反転／非反転信号ＢＦｙ０〜ＢＦｙ９を表わす。
【００９０】
図１６（Ｃ１）のデータ信号ＤＴ３０〜ＤＴ３９は、各々異なる１０種類の９ビット列である。図１６に示すように、データ信号ＤＴ３０は「０００００００００」、データ信号ＤＴ３１は「００００００００１」、・・・、データ信号ＤＴ３９は「１１１１１１１１１」のビット列をそれぞれ有する。
【００９１】
図１６（Ｃ２）の変換データ信号ＤＸ３０〜ＤＸ３９は、図１６（Ｃ１）の対応するデータ信号ＤＴ３０〜ＤＴ３９の各ビット列の「０」の数が５個以上か５個未満かに応じてそれぞれ「１」または「０」が設定されたデータ反転／非反転信号ＢＦｙ０〜ＢＦｙ９がそれぞれ付加されている。
【００９２】
データ信号ＤＴ３０〜ＤＴ３９の「０」の数が５個以上のとき、対応するデータ反転／非反転信号ＢＦｙ０〜ＢＦｙ９のビットは「１」に設定され、当該データ信号はビット反転される。その結果、変換データ信号ＤＸ３０〜ＤＸ３９と対応するデータ反転／非反転信号ＢＦｙ０〜ＢＦｙ９とを合わせた「１」の数は、当該「０」の数と等しいか多くなる。これにより、変換データ信号ＤＸ３０〜ＤＸ３９における「１」の出現率が増加する。
【００９３】
データ信号ＤＴ３０〜ＤＴ３４は、いずれも「０」の数が５個以上なので、対応するデータ反転／非反転信号ＢＦｙ０〜ＢＦｙ４のビットはすべて「１」に設定され、それぞれの変換データ信号がビット反転されている。すなわち、変換データ信号ＤＸ３０は「１１１１１１１１１」、変換データ信号ＤＸ３１は「１１１１１１１１０」、・・・、変換データ信号ＤＸ３４は「１１１１１００００」のビット列にそれぞれ変換されている。
【００９４】
データ信号ＤＴ３５は、「０」の数が５個未満なので、対応するデータ反転／非反転信号ＢＦｙ５のビットは「０」に設定され、変換データ信号ＤＸ３５はビット反転されていない。
【００９５】
なお、データ反転／非反転信号ＢＦｙ５のビットを「１」に設定してデータ信号ＤＴ３５をビット反転したとしても、データ反転／非反転信号ＢＦｙ５と変換データ信号ＤＸ３５との合計の「０」の数と「１」の数とは同じである。しかし、データ反転／非反転信号ＢＦｙ５のビットを「０」と設定することによって、データ復元時に変換データ信号ＤＸ３５を再反転する必要がない分だけ、図３のデータ復元回路３２Ｘａ，３２Ｘｂの動作を軽減することができる。これにより、実施の形態１のデータ処理システム１Ａの消費電力が低減される。
【００９６】
データ信号ＤＴ３６〜ＤＴ３９は、いずれも「０」の数が５個未満なので、対応するデータ反転／非反転信号ＢＦｙ６〜ＢＦｙ９のビットはすべて「０」に設定され、それぞれの変換データ信号はビット反転されていない。すなわち、変換データ信号ＤＸ３６は「０００１１１１１１」、変換データ信号ＤＸ３７は「００１１１１１１１」、・・・、変換データ信号ＤＸ３９は「１１１１１１１１１」のビット列のままである。
【００９７】
図１４では３２ビットのデータ信号ＤＴ１、図１５では各８ビットのデータ信号ＤＴ２０〜ＤＴ２８、図１６では各９ビットのデータ信号ＤＴ３０〜ＤＴ３９を例に説明したが、データ信号のビット数については特に制限はない。
【００９８】
また、図１４，１５では８ビット（１バイト）単位、図１６では９ビット単位でデータ反転／非反転信号を設けたが、一般にｎビット単位（ｎは２以上の自然数）で設けることが可能である。このとき、図１４，１５の「４個以上か４個未満」は、「ｎ／２以上かｎ／２未満（ｎ＝８の場合）」と一般化することができる。
【００９９】
一方、図１６の「５個以上か５個未満」は、「［ｎ／２］以上か［ｎ／２］未満（ｎ＝９の場合）」と一般化することができる。ここで、［ｘ］とはｘの小数点以下を切り上げた数であることを示す。この一般化は、図１４，１５の場合にも適用することができる。以下では、このような一般化された場合におけるデータ信号の変換動作について説明する。
【０１００】
図１７は、データ処理システム１Ａにおけるデータ転送が正論理に従う場合のデータ信号の変換動作を示したフロー図である。
【０１０１】
図１７を参照して、まず、ステップＳ１１において、ｎビット単位ごとにデータ信号の「０」の数をカウントする。ｎビット単位ごとの「０」の数をカウントした後、ステップＳ１２において、当該「０」の数が［ｎ／２］以上かどうかをｎビット単位ごとに判定する。
【０１０２】
当該「０」の数が［ｎ／２］以上の場合、ステップＳ１３において、対応するデータ反転／非反転信号を「１」とし、当該ｎビット単位のデータを反転する。当該「０」の数が［ｎ／２］以上でない場合、ステップＳ１４において、対応するデータ反転／非反転信号を「０」とし、当該ｎビット単位のデータを反転しない。ステップＳ１３，１４においてｎビット単位のデータを反転または非反転する動作は、図９で説明したように、反転／非反転されたｎビット単位のデータのいずれか一方を選択する動作に置き換えることが可能である。
【０１０３】
ステップＳ１２〜Ｓ１４の動作をデータ信号の全てのｎビット単位について行ない、変換動作が終了する。ステップＳ１２〜Ｓ１４におけるｎビット単位ごとの動作は、並列的に行なうことが可能である（図９参照）。以上の動作により、所望のデータ信号およびデータ反転／非反転信号が得られる。
【０１０４】
図１８は、データ処理システム１Ａにおけるデータ転送が負論理に従う場合のデータ信号の具体的な変換例を示した図である。図１８において、（Ｄ１）は変換前のデータ信号ＤＴ４、（Ｄ２）は変換データ信号ＤＸ４をそれぞれ表わす。
【０１０５】
図１８（Ｄ１）のデータ信号ＤＴ４は、８ビット×４の３２ビットのビット列からなる。データ信号ＤＴ４は、ＲａレジスタおよびＲｂレジスタの内容に対してＯＰコードによって示される演算命令を実行し、当該演算結果をＲｃレジスタへ格納するという命令列である。図１４（Ａ１）のデータ信号ＤＴ１と同じく、ＯＰコードは「０１００１１００」、Ｒａレジスタコードは「０００００１１１」、Ｒｂレジスタコードは「００００１０１０」、Ｒｃレジスタコードは「０００１１１１１」のビット列をそれぞれ有する。
【０１０６】
図１８（Ｄ２）の変換データ信号ＤＸ４は、図１８（Ｄ１）のデータ信号ＤＴ４の８ビット（１バイト）ごとに、「１」の数が４個より多いか４個以下かに応じて「１」または「０」に設定されたデータ反転／非反転信号ＢＦｐ，ＢＦａ，ＢＦｂ，ＢＦｃがそれぞれ付加されている。あるバイトの「１」の数が４個より多いとき、対応するデータ反転／非反転信号は「１」に設定され、当該コードはビット反転される。その結果、変換データ信号ＤＸ４のあるバイトと対応するデータ反転／非反転信号とを合わせた「０」の数は、当該「１」の数よりも必ず多くなる。これにより、変換データ信号ＤＸ４における「０」の出現率が増加する。
【０１０７】
なお、正論理か負論理かによってビット反転基準が「４個以上」と「４個より多い」とで異なるのは、正論理の場合に「１」の出現率を増加させ、負論理の場合に「０」の出現率を増加させるのにもかかわらず、ビット反転を示すデータ反転／非反転信号をいずれも便宜上「１」に設定しているからである。
【０１０８】
ＯＰコード、ＲａレジスタコードおよびＲｂレジスタコードは、いずれも「１」の数が４個以下なので、対応するデータ反転／非反転信号ＢＦｐ，ＢＦａ，ＢＦｂは全て「０」に設定され、それぞれのコードはビット反転されていない。すなわち、ＯＰコードは「０１００１１００」、Ｒａレジスタコードは「０００００１１１」、Ｒｂレジスタコードは「００００１０１０」のビット列のままである。
【０１０９】
Ｒｃレジスタコードは、「０」の数が４個より多いので、データ反転／非反転信号ＢＦｃが「１」に設定され、当該コードはビット反転されている。すなわち、Ｒｃレジスタコードは、「１１１０００００」のビット列に変換されている。
【０１１０】
図１９は、データ処理システム１Ａにおけるデータ転送が負論理に従う場合のデータ信号の他の具体的な変換例を示した図である。図１９は、変換データ信号のビット数が偶数（図１９では８ビット）の場合を示した図である。図１９において、（Ｅ１）は変換前のデータ信号ＤＴ５０〜ＤＴ５８を表わし、（Ｅ２）は変換データ信号ＤＸ５０〜ＤＸ５８および対応するデータ反転／非反転信号ＢＦｙ０〜ＢＦｙ８を表わす。
【０１１１】
図１９（Ｅ１）のデータ信号ＤＴ５０〜ＤＴ５８は、各々異なる９種類の８ビット列である。図１５（Ｂ１）のデータ信号ＤＴ２０〜ＤＴ２８と同じく、データ信号ＤＴ５０は「００００００００」、データ信号ＤＴ５１はは「０００００００１」、・・・、データ信号ＤＴ５８はは「１１１１１１１１」のビット列をそれぞれ有する。
【０１１２】
図１９（Ｅ２）の変換データ信号ＤＸ５０〜ＤＸ５８は、図１９（Ｅ１）のデータ信号ＤＴ５０〜ＤＴ５８の各ビット列ごとの「１」の数が４個より多いか４個以下かに応じて「１」または「０」が設定されたデータ反転／非反転信号ＢＦｙ０〜ＢＦｙ８がそれぞれ付加されている。
【０１１３】
データ信号ＤＴ５０〜ＤＴ５８の「１」の数が４個より多いとき、対応するデータ反転／非反転信号ＢＦｙ０〜ＢＦｙ８のビットは「１」に設定され、当該データ信号はビット反転される。その結果、変換データ信号ＤＸ５０〜ＤＸ５８と対応するデータ反転／非反転信号ＢＦｙ０〜ＢＦｙ８とを合わせた「０」の数は、当該「１」の数よりも必ず多くなる。これにより、変換データ信号ＤＸ５０〜ＤＸ５８における「０」の出現率が増加する。
【０１１４】
データ信号ＤＴ５０〜ＤＴ５４は、いずれも「１」の数が４個以下なので、対応するデータ反転／非反転信号ＢＦｙ０〜ＢＦｙ４のビットは全て「０」に設定され、それぞれの変換データ信号がビット反転されていない。すなわち、変換データ信号ＤＸ５０は「００００００００」、変換データ信号ＤＸ５１は「０００００００１」、・・・、変換データ信号ＤＸ５４は「００００１１１１」のビット列のままである。
【０１１５】
データ信号ＤＴ５５〜ＤＴ５８は、いずれも「１」の数が４個より多いので、対応するデータ反転／非反転信号ＢＦｙ５〜ＢＦｙ８のビットは全て「１」に設定され、それぞれの変換データ信号はビット反転されている。すなわち、変換データ信号ＤＸ５５は「１１１０００００」、変換データ信号ＤＸ５６は「１１００００００」、・・・、変換データ信号ＤＸ５８は「００００００００」のビット列にそれぞれ変換されている。
【０１１６】
図２０は、データ処理システム１Ａにおけるデータ転送が正論理に従う場合のデータ信号のさらに他の具体的な変換例を示した図である。図２０は、変換データ信号のビット数が奇数（図２０では９ビット）の場合を示した図である。図２０において、（Ｆ１）は変換前のデータ信号ＤＴ６０〜ＤＴ６９を表わし、（Ｆ２）は変換データ信号ＤＸ６０〜ＤＸ６９および対応するデータ反転／非反転信号ＢＦｗ０〜ＢＦｗ９を表わす。
【０１１７】
図２０（Ｆ１）のデータ信号ＤＴ６０〜ＤＴ６９は、各々異なる１０種類の９ビット列である。図１６（Ｃ１）のデータ信号ＤＴ３０〜ＤＴ３９と同じく、データ信号ＤＴ６０は「０００００００００」、データ信号ＤＴ６１は「００００００００１」、・・・、データ信号ＤＴ６９は「１１１１１１１１１」のビット列をそれぞれ有する。
【０１１８】
図２０（Ｆ２）の変換データ信号ＤＸ６０〜ＤＸ６９は、図２０（Ｆ１）の対応するデータ信号ＤＴ６０〜ＤＴ６９の各ビット列の「１」の数が５個より多いか５個以下かに応じて「１」または「０」が設定されたデータ反転／非反転信号ＢＦｗ０〜ＢＦｗ９がそれぞれ付加されている。
【０１１９】
データ信号ＤＴ６０〜ＤＴ６９の「１」の数が５個より多いとき、対応するデータ反転／非反転信号ＢＦｗ０〜ＢＦｗ９のビットは「１」に設定され、当該データ信号はビット反転される。その結果、変換データ信号ＤＸ６０〜ＤＸ６９と対応するデータ反転／非反転信号ＢＦｙ０〜ＢＦｙ９とを合わせた「０」の数は、当該「１」の数と等しいか多くなる。これにより、変換データ信号ＤＸ６０〜ＤＸ６９における「０」の出現率が増加する。
【０１２０】
データ信号ＤＴ６０〜ＤＴ６４は、いずれも「１」の数が５個以下なので、対応するデータ反転／非反転信号ＢＦｗ０〜ＢＦｗ４のビットはすべて「０」に設定され、それぞれの変換データ信号はビット反転されていない。すなわち、変換データ信号ＤＸ６０は「０００００００００」、変換データ信号ＤＸ６１は「００００００００１」、・・・、変換データ信号ＤＸ６４は「０００００１１１１」のビット列のままである。
【０１２１】
データ信号ＤＴ６５は、「１」の数が５個以下なので、対応するデータ反転／非反転信号ＢＦｗ５のビットは「０」に設定され、変換データ信号ＤＸ６５はビット反転されていない。
【０１２２】
なお、データ反転／非反転信号ＢＦｗ５のビットを「１」に設定してデータ信号ＤＴ６５をビット反転したとしても、データ反転／非反転信号ＢＦｗ５と変換データ信号ＤＸ６５との合計の「０」の数と「１」の数とは同じである。しかし、データ反転／非反転信号ＢＦｗ５のビットを「０」と設定することによって、データ復元時に変換データ信号ＤＸ６５を再反転する必要がない分だけ、図３のデータ復元回路３２Ｘａ，３２Ｘｂの動作を軽減することができる。これにより、実施の形態１のデータ処理システム１Ａの消費電力が低減される。
【０１２３】
データ信号ＤＴ６６〜ＤＴ６９は、いずれも「１」の数が５個より多いので、対応するデータ反転／非反転信号ＢＦｗ６〜ＢＦｗ９のビットはすべて「１」に設定され、それぞれの変換データ信号がビット反転されている。すなわち、変換データ信号ＤＸ６６は「１１１００００００」、変換データ信号ＤＸ６７は「１１０００００００」、・・・、変換データ信号ＤＸ６９は「０００００００００」のビット列にそれぞれ変換されている。
【０１２４】
図１８では３２ビットのデータ信号ＤＴ４、図１９では各８ビットのデータ信号ＤＴ５０〜ＤＴ５８、図２０では各９ビットのデータ信号ＤＴ６０〜ＤＴ６９を例に説明したが、データ信号のビット数については特に制限はない。
【０１２５】
また、図１８，１９では８ビット（１バイト）単位、図２０では９ビット単位でデータ反転／非反転信号を設けたが、一般にｎビット単位（ｎは２以上の自然数）で設けることが可能である。このとき、図１８，１９の「４個より多いか４個以下」は、「ｎ／２より多いかｎ／２以下（ｎ＝８の場合）」と一般化することができる。
【０１２６】
一方、図２０の「５個より多いか５個以下」は、「［ｎ／２］より多いか［ｎ／２］以下（ｎ＝９の場合）」と一般化することができる。ここで、［ｘ］とはｘの小数点以下を切り上げた数であることを示す。この一般化は、図１８，１９の場合にも適用することができる。以下では、このような一般化された場合におけるデータ信号の変換動作について説明する。
【０１２７】
図２１は、データ処理システム１Ａにおけるデータ転送が負論理に従う場合のデータ信号の変換動作を示したフロー図である。
【０１２８】
図２１を参照して、まず、ステップＳ２１において、ｎビット単位ごとにデータ信号の「１」の数をカウントする。ｎビット単位ごとの「１」の数をカウントした後、ステップＳ２２において、当該「１」の数が［ｎ／２］より多いかどうかをｎビット単位ごとに判定する。
【０１２９】
当該「１」の数が［ｎ／２］より多い場合、ステップＳ２３において、対応するデータ反転／非反転信号を「１」とし、当該ｎビット単位のデータを反転する。当該「１」の数が［ｎ／２］より多くない場合、ステップＳ２４において、対応するデータ反転／非反転信号を「０」とし、当該ｎビット単位のデータを反転しない。ステップＳ２３，２４においてｎビット単位のデータを反転または非反転する動作は、図９で説明したように、反転／非反転されたｎビット単位のデータのいずれか一方を選択する動作に置き換えることが可能である。
【０１３０】
ステップＳ２２〜Ｓ２４の動作をデータ信号の全てのｎビット単位について行ない、変換動作が終了する。ステップＳ２２〜Ｓ２４におけるｎビット単位ごとの動作は、並列的に行なうことが可能である（図９参照）。以上の動作により、所望のデータ信号およびデータ反転／非反転信号が得られる。
【０１３１】
図１４，１８では、データ信号の具体的な変換例を示しているが、データ信号に対するデータ反転／非反転信号の挿入位置は、図１４，１８に示した例だけには限られない。以下では、データ信号に対するデータ反転／非反転信号の他の挿入位置の例を示す。
【０１３２】
図２２〜２５は、データ信号に対するデータ反転／非反転信号の他の挿入位置の例を示した図である。図２２〜２５のいずれのバリエーションであっても、図１４，１８で説明した場合と同様の効果が得られる。
【０１３３】
図２２は、ＯＰコードに対してはデータ反転／非反転信号を挿入せず、Ｒａ〜Ｒｄレジスタコードに対してはＲａレジスタコードの前にデータ反転／非反転信号ＢＦｒを１つだけ挿入した例である。
【０１３４】
図２３は、ＯＰコードに対してはデータ反転／非反転信号を挿入せず、Ｒａ〜Ｒｄレジスタコードに対しては各レジスタコードの前にデータ反転／非反転信号ＢＦａ〜ＢＦｄをそれぞれ挿入した例である。
【０１３５】
図２４は、ＯＰ１〜ＯＰ４コードに対してはＯＰ１コードの前にデータ反転／非反転信号ＢＦｐを１つだけ挿入し、Ｒａ〜Ｒｄレジスタコードに対してはＲａレジスタコードの前にデータ反転／非反転信号ＢＦｒを１つだけ挿入した例である。
【０１３６】
図２５は、ＯＰ１〜ＯＰ４コードに対しては各ＯＰコードの前にデータ反転／非反転信号ＢＦｐ１〜ＢＦｐ４をそれぞれ挿入し、Ｒａ〜Ｒｄレジスタコードに対しては各レジスタコードの前にデータ反転／非反転信号ＢＦａ〜ＢＦｄをそれぞれ挿入した例である。
【０１３７】
図２２，２４のように４バイト（３２ビット）で１ビットの反転／非反転信号を設けた場合、「１」または「０」の数が１６個（３２ビットの半分）より多いか少ないか等を計算するのに必要な回路の構成が複雑となる。このため、４バイトで１ビットの反転／非反転信号を設けた場合、回路面積および処理速度の面で課題がある。しかしながら、反転／非反転信号の付加によるビット数増加を抑えることができる。
【０１３８】
図２３，２５のようにバイト単位（８ビット）で１ビットの反転／非反転信号を設けた場合、データ信号の演算がバイト単位で可能となる。一般に、データ処理システムはバイト単位でデータ信号を処理しているので、バイト単位で１ビットの反転／非反転信号を設けると演算処理が行ないやすくなるという利点がある。
【０１３９】
以上のように、実施の形態１によれば、バス上のデータ転送時における放電回数が減るようにデータ信号を所定のビット単位ごとに反転または非反転した変換データ信号をバス上で転送することによって、バス上でのデータ転送時における消費電力を低減することができる。
【０１４０】
［実施の形態２］
図２６は、この発明の実施の形態２によるデータ処理システム１Ｂを概略的に表わしたブロック図である。
【０１４１】
図２６を参照して、実施の形態２のデータ処理システム１Ｂは、メモリ２Ｂと、ＣＰＵ３と、アドレス復元回路６とを備える。メモリ２ＢとＣＰＵ３との間では、データ反転／非反転信号ＢＦおよび変換データ信号ＤＸが互いに入出力される。また、ＣＰＵ３は、アドレス復元回路６に、アドレス反転／非反転信号ＢＦａｄおよび変換アドレス信号ＡＤＤＸを出力する。メモリ２ＢとＣＰＵ３との間のデータ反転／非反転信号ＢＦおよび変換データ信号ＤＸの転送は、少なくとも一部がバスを介して行なわれる。ＣＰＵ３とアドレス復元回路６との間のアドレス反転／非反転信号ＢＦａｄおよび変換アドレス信号ＡＤＤＸの転送は、少なくとも一部がバスを介して行なわれる。
【０１４２】
アドレス復元回路６は、アドレス反転／非反転信号ＢＦａｄを元に、変換アドレス信号ＡＤＤＸからアドレス信号ＡＤＤを復元し、それをメモリ２Ｂに出力する。つまり、変換アドレス信号ＡＤＤＸは、アドレス反転／非反転信号ＢＦａｄに従って、アドレス信号ＡＤＤがビット列ごとに反転または非反転されたアドレス信号である。
【０１４３】
このように、変換アドレス信号ＡＤＤＸをアドレス復元回路６を介して通常のアドレス信号ＡＤＤに復元してからメモリ２Ｂに出力することによって、メモリ２Ｂでのアドレス指定時にアドレス復元回路を必要としない。そのため、メモリ２Ｂに既存のメモリを用いることが可能となる。
【０１４４】
図２７は、この発明の実施の形態２によるデータ処理システム１Ｂの具体的な構成を示したブロック図である。
【０１４５】
図２７を参照して、実施の形態２のデータ処理システム１Ｂは、メモリ＆周辺回路２Ｂａと、ＣＰＵ３と、アドレス復元回路６とを備える。メモリ＆周辺回路２Ｂａは、図２６のメモリ２Ｂに対応するが、メモリだけでなく周辺回路も含む。ＣＰＵ３は、実施の形態１の図２と同じく、命令／データフェッチ部１０と、命令デコード部２０と、演算実行部３０とを含む。命令／データフェッチ部１０は、データストア部１１と、アドレス変換回路１２とを含む。
【０１４６】
アドレス復元回路６は、命令／データフェッチ部１０のアドレス変換回路１２から出力される変換アドレス信号ＡＤＤＸおよびそれに対応するアドレス反転／非反転信号ＢＦａｄを受けて変換前のアドレス信号ＡＤＤを復元する。メモリ＆周辺回路２Ｂａは、アドレス復元回路６から出力されるアドレス信号ＡＤＤに応じて、変換データ信号ＤＸ１４およびそれに対応するデータ反転／非反転信号ＢＦ１４を命令／データフェッチ部１０に出力する。その他の回路動作は、実施の形態１のデータ処理システム１Ａと同様なので、ここでは繰り返さない。
【０１４７】
演算実行部３０の具体的な回路ブロック構成は、実施の形態１の図３〜１３において説明したので、ここでは説明を繰り返さない。アドレス復元回路６の具体的な回路ブロック構成は、実施の形態１の図８で説明したように、データ復元回路３２Ｘａのレジスタファイル信号の代わりに変換アドレス信号、データ反転／非反転信号の代わりにアドレス反転／非反転信号をそれぞれ用いることによって実現できる。アドレス信号をビット列ごとに反転／非反転する具体的な変換例は、実施の形態１の図１４〜２５において説明したデータ信号の場合と同様なので、ここでは説明を繰り返さない。
【０１４８】
実施の形態２では、メモリ＆周辺回路２Ｂａと命令／データフェッチ部１０との間、および、命令／データフェッチ部１０とアドレス復元回路６との間のバスの充放電が少なくなるため、これらによる消費電力の低減効果が生じる。
【０１４９】
以上のように、実施の形態２によれば、変換アドレス信号ＡＤＤＸをアドレス復元回路６を介して通常のアドレス信号ＡＤＤに復元してからメモリ２Ｂに出力することによって、バスの充放電が少なくなる効果に加えて、メモリ２Ｂに既存のメモリを用いることができる。これにより、安価で低消費電力なデータ処理システムを構築することが可能となる。
【０１５０】
［実施の形態３］
図２８は、この発明の実施の形態３によるデータ処理システム１Ｃを概略的に表わしたブロック図である。
【０１５１】
図２８を参照して、実施の形態３のデータ処理システム１Ｃは、メモリ２Ｃと、ＣＰＵ３Ｃと、データ変換・復元回路３２とを備える。メモリ２Ｃとデータ変換・復元回路３２との間では、データ反転／非反転信号ＢＦおよび変換データ信号ＤＸが互いに入出力される。変換・復元回路３２とＣＰＵ３Ｃとの間では、データ信号ＤＴが互いに入出力される。ＣＰＵ３Ｃは、メモリ２Ｃにアドレス信号ＡＤＤを出力する。メモリ２Ｃとデータ変換・復元回路３２との間のデータ反転／非反転信号ＢＦおよび変換データ信号ＤＸの転送は、少なくとも一部がバスを介して行なわれる。
【０１５２】
データ変換・復元回路３２は、ＣＰＵ３Ｃから出力されるデータ信号ＤＴを変換データ信号ＤＸに変換して、データ反転／非反転信号ＢＦとともにメモリ２Ｃに出力する。変換データ信号ＤＸは、データ反転／非反転信号ＢＦに従って、データ信号ＤＴがビット列ごとに反転または非反転されたデータ信号である。また、データ変換・復元回路３２は、メモリ２Ｃから出力されるデータ反転／非反転信号ＢＦを元に、変換データ信号ＤＸからデータ信号ＤＴを復元する。
【０１５３】
このように、メモリ２ＣとＣＰＵ３Ｃとの間にデータ変換・復元回路３２を設けてＣＰＵ３Ｃには通常のデータ信号が入出力されるようにすることによって、ＣＰＵ３Ｃにデータ変換回路およびデータ復元回路が必要なくなる。そのため、ＣＰＵ３Ｃに既存のＣＰＵを用いることが可能となる。また、ＣＰＵ３Ｃからメモリ２Ｃに直接アドレス信号ＡＤＤを出力しているので、実施の形態２と同じく、メモリ２Ｃにも既存のメモリを用いることが可能である。
【０１５４】
図２９は、図２８のデータ変換・復元回路３２の具体的な構成を示したブロック図である。
【０１５５】
図２９を参照して、データ変換・復元回路３２は、データ復元回路３２Ｘと、データ変換回路３２Ｙとを含む。データ復元回路３２Ｘは、図２８のメモリ２Ｃから出力される変換データ信号ＤＸ１１およびそれに対応するデータ反転／非反転信号ＢＦ１１を受けて変換前のデータ信号ＤＴ１１を復元し、それを図２８のＣＰＵ３Ｃに出力する。データ変換回路３２Ｙは、図２８のＣＰＵ３Ｃから出力されるデータ信号ＤＴ１２を変換データ信号ＤＸ１２に変換し、データ反転／非反転信号ＢＦ１２とともに図２８のメモリ２Ｃに出力する。
【０１５６】
データ復元回路３２Ｘの具体的な回路ブロック構成は、実施の形態１の図８に示したデータ復元回路３２Ｘａと同じである。データ変換回路３２Ｙの具体的な回路ブロック構成は、実施の形態１の図９に示したのと同じである。データ信号をビット列ごとに反転／非反転する具体的な変換例は、実施の形態１の図１４〜２５において説明したので、ここでは説明を繰り返さない。
【０１５７】
実施の形態３では、メモリ＆周辺回路２Ｂａと変換・復元回路３２との間のバスの充放電が少なくなるため、これによる消費電力の低減効果が生じる。
【０１５８】
以上のように、実施の形態３によれば、メモリ２ＣとＣＰＵ３Ｃとの間に変換・復元回路３２を設けてＣＰＵ３Ｃには通常のデータ信号ＤＴが互いに入出力されるようにすることによって、バスの充放電が少なくなる効果に加えて、ＣＰＵ３Ｃに既存のＣＰＵを用いることができる。これにより、安価で低消費電力なデータ処理システムを構築することが可能となる。
【０１５９】
［実施の形態４］
実施の形態１〜３では、データ処理システム１Ａ〜１Ｃの少なくとも一部に用いられるバスとして、図４，５のバスＰＢ１に示すようなプリチャージバスを想定していた。しかしながら、プリチャージバスというのは一例であって、他の形式のバスを用いることも可能である。以下では、他の形式のバスの一例として、トライステート出力バッファを有するバス（以下、トライステートバスとも称する）を例に説明する。
【０１６０】
図３０は、この発明の実施の形態４によるバスＴＢの具体的な構成の一例を示した回路図である。以下では、実施の形態１のバスＰＢ１の代わりにバスＴＢが用いられるとして説明するが、バスＴＢを実施の形態２，３に適用することも可能である。
【０１６１】
図３０を参照して、バスＴＢは、トライステートバスであって、ＮＡＮＤゲート１０１と、ＮＯＲゲート１０２と、インバータ１０３と、ＰチャネルＭＯＳトランジスタ１０４と、ＮチャネルＭＯＳトランジスタ１０５とを含む。図３０では、図４，５と同じく、図３のレジスタファイル部３１からデータ復元回路３２Ｘａに出力される信号を一例として取り上げている。
【０１６２】
ＮＡＮＤゲート１０１は、図３のレジスタファイル部３１から出力される変換データ信号ＤＸａおよびデータ反転／非反転信号ＢＦａと、インバータ１０３からの出力信号とを受ける。ＮＯＲゲート１０２は、変換データ信号ＤＸａおよびデータ反転／非反転信号ＢＦａと、出力制御信号ＩＮＨとを受ける。インバータ１０３は、出力制御信号ＩＮＨを反転する。ＰチャネルＭＯＳトランジスタ１０４（Ｔｒ１０４とも称す）は、電源ノードとトライステートノード（接続ノード）ＴｓＮとの間に接続され、ゲートにＮＡＮＤゲート１０１の出力信号を受ける。ＮチャネルＭＯＳトランジスタ１０５（Ｔｒ１０５とも称す）は、トライステートノードＴｓＮと接地ノードとの間に接続され、ゲートにＮＯＲゲート１０２の出力信号を受ける。
【０１６３】
図３１は、図３０のバスＴＢの動作を示した図である。
【０１６４】
図３１に示すように、出力制御信号ＩＮＨがＨレベルのとき、変換データ信号ＤＸａ（データ反転／非反転信号ＢＦａを含む。以下同じ）がＨレベルかＬレベルかに関わらず、Ｔｒ１０４，１０５はともにオフとなる。このとき、トライステートノードＴｓＮは高インピーダンス（Ｈｉ−Ｚ）状態となり、バスＴＢは前回転送したデータを保持する。
【０１６５】
出力制御信号ＩＮＨがＬレベルのとき、トライステートノードＴｓＮは変換データ信号ＤＸａを転送する出力状態となる。出力制御信号ＩＮＨがＬレベルで変換データ信号ＤＸａがＨレベルのとき、Ｔｒ１０４はオンとなり、Ｔｒ１０５はオフとなる。このとき、トライステートノードＴｓＮはＨレベルとなる。出力制御信号ＩＮＨがＬレベルで変換データ信号ＤＸａがＬレベルのとき、Ｔｒ１０４はオフとなり、Ｔｒ１０５はオンとなる。このとき、トライステートノードＴｓＮはＬレベルとなる。
【０１６６】
このように、バスＴＢは、出力制御信号ＩＮＨがＬレベルのとき入力された変換データ信号ＤＸａを転送し、出力制御信号ＩＮＨがＨレベルのとき前回転送したデータを保持する。バスＴＢは、出力制御信号ＩＮＨの入力に応じてこれら２つの動作を繰り返す。
【０１６７】
図３２は、図３０のバスＴＢにおいてデータ信号を変換せずに転送する場合のデータ転送動作の一例を比較例として時系列的に示した図である。図３２では、図６と同じく、転送されるデータ信号の電位レベルに着目しているため、バスＴＢにおけるデータ転送が正論理に従う場合であっても負論理に従う場合であっても成り立つ。
【０１６８】
図３２を参照して、時刻ｔ１において、バスＴＢは前回転送したデータのビットレベルを保持している。ここでは説明の便宜のため全てのビットレベルがＨレベルであるとしているが、Ｈレベルの数が全体の半数以上であればＨレベルがいくつであってもよい。時刻ｔ２において、時刻ｔ１の状態から２つのビットレベルをＨレベルからＬレベルに遷移させることにより、１回目のデータ転送が行なわれる。このとき、放電するビット数は２となる。
【０１６９】
時刻ｔ３において、バスＴＢは前回（時刻ｔ２）に転送したデータのビットレベルを保持している。時刻ｔ４において、時刻ｔ３の状態から３つのビットレベルをＨレベルからＬレベルに遷移させることにより、２回目のデータ転送が行なわれる。このとき、放電するビット数は３となる。
【０１７０】
以上のように、データ信号を変換せずに転送する図３２のデータ転送動作において、放電するビット数は１回目と２回目とで計５となる。
【０１７１】
図３３は、図３０のバスＴＢにおいてデータ信号を変換して転送する場合のデータ転送動作の一例を時系列的に示した図である。図３３では、図７と同じく、転送されるデータ信号の電位レベルに着目しているため、バスＴＢにおけるデータ転送が正論理に従う場合であっても負論理に従う場合であっても成り立つ。ここでは、説明を簡略化するために、データ反転／非反転信号は考慮しない。
【０１７２】
図３３を参照して、時刻ｔ１において、バスＴＢは前回転送したデータのビットレベルを保持している。全てのビットレベルがＨレベルであるのは図３２と同様の理由からであって、Ｈレベルの数が全体の半数以上であればＨレベルがいくつであってもよい。時刻ｔ２において、時刻ｔ１の状態から２つのビットレベルをＨレベルからＬレベルに遷移させることにより、１回目のデータ転送が行なわれる。図３２に示したように、１回目のデータ転送時において、ＨレベルからＬレベルに遷移するデータビット数は遷移しないデータビット数より少ない。そのため、１回目のデータ転送時における変換データ信号は変換前のデータ信号と同一となり、放電するビット数は２となる。
【０１７３】
時刻ｔ３において、バスＴＢは前回（時刻ｔ２）に転送したデータのビットレベルを保持している。時刻ｔ４において、時刻ｔ３の状態からビットレベルをＨレベルからＬレベルに遷移させることなく、２回目のデータ転送が行なわれる。図３２に示したように、２回目のデータ転送時において、Ｈレベルである全てのビットレベルがＬレベルに遷移する。そのため、２回目のデータ転送時における変換データ信号は変換前のデータ信号を反転した信号となり、その結果、放電するビット数は０となる。
【０１７４】
以上のように、データ信号を変換して転送する図３３のデータ転送動作において、放電するビット数は１回目と２回目とで計２となる。このように、図３０のバスＴＢにおけるデータ転送時にデータ信号を変換して転送することにより、データ信号を変換しない場合と比べて消費電力に直接影響を与える、放電するビット数を減少させることが可能となる。
【０１７５】
実施の形態１〜３では、バスＰＢ１がプリチャージバスであったため、プリチャージ動作時において全てのビットレベルがＨレベルにプリチャージされることになる。しかし、実施の形態４のバスＴＢはトライステートバスであるため、このような限定は伴わない。図３２，３３では前回転送したデータの半数以上がＨレベルの場合について説明したので、以下では前回転送したデータの半数以上がＬレベルの場合について説明する。
【０１７６】
図３４は、図３０のバスＴＢにおいてデータ信号を変換せずに転送する場合のデータ転送動作の他の一例を比較例として時系列的に示した図である。
【０１７７】
図３４を参照して、時刻ｔ１において、バスＴＢは前回転送したデータのビットレベルを保持している。ここでは説明の便宜のため全てのビットレベルがＬレベルであるとしているが、Ｌレベルの数が全体の半数以上であればＬレベルがいくつであってもよい。時刻ｔ２において、時刻ｔ１の状態から３つのビットレベルをＬレベルからＨレベルに遷移させることにより、１回目のデータ転送が行なわれる。このとき、ＨレベルからＬレベルに遷移するデータビットはないため、放電するビット数は０となる。
【０１７８】
時刻ｔ３において、バスＴＢは前回（時刻ｔ２）に転送したデータのビットレベルを保持している。時刻ｔ４において、時刻ｔ３の状態から３つのビットレベルをＨレベルからＬレベルに遷移させることにより、２回目のデータ転送が行なわれる。このとき、放電するビット数は３となる。
【０１７９】
以上のように、データ信号を変換せずに転送する図３２のデータ転送動作において、放電するビット数は１回目と２回目とで計３となる。
【０１８０】
図３５は、図３０のバスＴＢにおいてデータ信号を変換して転送する場合のデータ転送動作の一例を時系列的に示した図である。ここでは、説明を簡略化するために、データ反転／非反転信号は考慮しない。
【０１８１】
図３５を参照して、時刻ｔ１において、バスＴＢは前回転送したデータのビットレベルを保持している。全てのビットレベルがＬレベルであるのは図３４と同様の理由からであって、Ｌレベルの数が全体の半数以上であればＬレベルがいくつであってもよい。時刻ｔ２において、時刻ｔ１の状態から３つのビットレベルをＬレベルからＨレベルに遷移させることにより、１回目のデータ転送が行なわれる。図３４において示したように、１回目のデータ転送時において、ＨレベルからＬレベルに遷移するデータビットはない。そのため、そのため、１回目のデータ転送時における変換データ信号は変換前のデータ信号と同一となり、放電するビット数は０となる。
【０１８２】
時刻ｔ３において、バスＴＢは前回（時刻ｔ２）に転送したデータのビットレベルを保持している。時刻ｔ４において、時刻ｔ３の状態からビットレベルをＨレベルからＬレベルに遷移させることなく、２回目のデータ転送が行なわれる。図３４において示したように、２回目のデータ転送時において、ＨレベルからＬレベルに遷移するデータビット数は遷移しないデータビット数より多い。そのため、２回目のデータ転送時における変換データ信号は変換前のデータ信号を反転した信号となり、その結果、放電するビット数は０となる。
【０１８３】
以上のように、データ信号を変換して転送する図３５のデータ転送動作において、放電するビット数は１回目と２回目とで計０となる。このように、図３０のバスＴＢにおけるデータ転送時にデータ信号を変換して転送することにより、前回転送したデータのＨレベルの数が全体に対して多いか少ないかに関わらず、データ信号を変換しない場合と比べて消費電力に直接影響を与える、放電するビット数を減少させることが可能となる。
【０１８４】
以上のように、実施の形態４によれば、実施の形態１〜３でのプリチャージバスＰＢ１の代わりにトライステートバスＴＢを用いることによって、前回転送したデータのＨレベルの数が全体に対して多いか少ないかに関わらず、バス上でのデータ転送時における消費電力を低減することができる。
【０１８５】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１８６】
【図１】この発明の実施の形態１によるデータ処理システム１Ａを概略的に表わしたブロック図である。
【図２】この発明の実施の形態１によるデータ処理システム１Ａの具体的な構成を示したブロック図である。
【図３】図２の演算実行部３０の具体的な構成を示したブロック図である。
【図４】図３のバスＰＢ１の具体的な構成の一例であるバスＰＢ１ｐの構成を示した回路図である。
【図５】図３のバスＰＢ１の具体的な構成の他の一例であるバスＰＢ１ｎの構成を示した回路図である。
【図６】図３のバスＰＢ１においてデータ信号を変換せずに転送する場合のデータ転送動作の一例を比較例として時系列的に示した図である。
【図７】図３のバスＰＢ１において図６のデータ信号を変換して転送する場合のデータ転送動作の一例を時系列的に示した図である。
【図８】図３のデータ復元回路３２Ｘａの具体的な構成の一例を示した回路ブロック図である。
【図９】図３のデータ変換回路３２Ｙの具体的な構成の一例を示した回路ブロック図である。
【図１０】図９の反転／非反転信号生成回路８１の具体的な構成の一例を示した回路図である。
【図１１】図１０の半加算器８１０ａ〜８１０ｄを代表する半加算器８１０の具体的な構成の一例を示した回路図である。
【図１２】１ビットの全加算器８１５の構成の一例を示した回路ブロック図である。
【図１３】図１０の全加算器８２０ａ，８２０ｂを代表する２ビットの全加算器８２０の構成の一例を示した回路ブロック図である。
【図１４】データ処理システム１Ａにおけるデータ転送が正論理に従う場合のデータ信号の具体的な変換例を示した図である。
【図１５】データ処理システム１Ａにおけるデータ転送が正論理に従う場合のデータ信号の他の具体的な変換例を示した図である。
【図１６】データ処理システム１Ａにおけるデータ転送が正論理に従う場合のデータ信号のさらに他の具体的な変換例を示した図である。
【図１７】データ処理システム１Ａにおけるデータ転送が正論理に従う場合のデータ信号の変換動作を示したフロー図である。
【図１８】データ処理システム１Ａにおけるデータ転送が負論理に従う場合のデータ信号の具体的な変換例を示した図である。
【図１９】データ処理システム１Ａにおけるデータ転送が負論理に従う場合のデータ信号の他の具体的な変換例を示した図である。
【図２０】データ処理システム１Ａにおけるデータ転送が正論理に従う場合のデータ信号のさらに他の具体的な変換例を示した図である。
【図２１】データ処理システム１Ａにおけるデータ転送が負論理に従う場合のデータ信号の変換動作を示したフロー図である。
【図２２】データ信号に対するデータ反転／非反転信号の他の挿入位置の例を示した図である。
【図２３】データ信号に対するデータ反転／非反転信号の他の挿入位置の例を示した図である。
【図２４】データ信号に対するデータ反転／非反転信号の他の挿入位置の例を示した図である。
【図２５】データ信号に対するデータ反転／非反転信号の他の挿入位置の例を示した図である。
【図２６】この発明の実施の形態２によるデータ処理システム１Ｂを概略的に表わしたブロック図である。
【図２７】この発明の実施の形態２によるデータ処理システム１Ｂの具体的な構成を示したブロック図である。
【図２８】この発明の実施の形態３によるデータ処理システム１Ｃを概略的に表わしたブロック図である。
【図２９】図２８のデータ変換・復元回路３２の具体的な構成を示したブロック図である。
【図３０】この発明の実施の形態４によるバスＴＢの具体的な構成の一例を示した回路図である。
【図３１】図３０のバスＴＢの動作を示した図である。
【図３２】図３０のバスＴＢにおいてデータ信号を変換せずに転送する場合のデータ転送動作の一例を比較例として時系列的に示した図である。
【図３３】図３０のバスＴＢにおいてデータ信号を変換して転送する場合のデータ転送動作の一例を時系列的に示した図である。
【図３４】図３０のバスＴＢにおいてデータ信号を変換せずに転送する場合のデータ転送動作の他の一例を比較例として時系列的に示した図である。
【図３５】図３０のバスＴＢにおいてデータ信号を変換して転送する場合のデータ転送動作の一例を時系列的に示した図である。
【符号の説明】
【０１８７】
１Ａ，１Ｂ，１Ｃ  データ処理システム、２，２Ｂ，２Ｃ  メモリ、２ａ，２Ｂａ，２Ｃａ  メモリ＆周辺回路、３，３Ｃ  ＣＰＵ、６  アドレス復元回路、１０，１０Ｃ  命令／データフェッチ部、１１  データストア部、１２  アドレス変換回路、２０，２０Ｃ  命令デコード部、３０，３０Ｃ  演算実行部、３１  レジスタファイル部、３２  データ復元・変換回路、３２Ｘ，３２Ｘａ，３２Ｘｂ  データ復元回路、３２Ｙ  データ変換回路、３５  演算器、ＰＢ１，ＰＢ１ｐ，ＰＢ１ｎ，ＰＢ２，ＴＢ  バス、５１，５３，１０４  ＰチャネルＭＯＳトランジスタ、５２，５６，１０５  ＮチャネルＭＯＳトランジスタ、５４，７２，８２＿ｋ  インバータ、７３，８３＿ｋ  セレクタ、８１  反転／非反転信号生成回路、１０１  ＮＡＮＤゲート、１０２  ＮＯＲゲート、８１０，８１５，８１６，８１７  半加算器、８１１  ＸＯＲゲート、８１２  ＡＮＤゲート、８１８  ＯＲゲート、８２０，８２０ａ，８２０ｂ，８３０  全加算器、８４０  比較値格納部、８５０  比較回路。
【図１】
2006203756.tif 000003
【図２】
2006203756.tif 000004
【図３】
2006203756.tif 000005
【図４】
2006203756.tif 000006
【図５】
2006203756.tif 000007
【図６】
2006203756.tif 000008
【図７】
2006203756.tif 000009
【図８】
2006203756.tif 000010
【図９】
2006203756.tif 000011
【図１０】
2006203756.tif 000012
【図１１】
2006203756.tif 000013
【図１２】
2006203756.tif 000014
【図１３】
2006203756.tif 000015
【図１４】
2006203756.tif 000016
【図１５】
2006203756.tif 000017
【図１６】
2006203756.tif 000018
【図１７】
2006203756.tif 000019
【図１８】
2006203756.tif 000020
【図１９】
2006203756.tif 000021
【図２０】
2006203756.tif 000022
【図２１】
2006203756.tif 000023
【図２２】
2006203756.tif 000024
【図２３】
2006203756.tif 000025
【図２４】
2006203756.tif 000026
【図２５】
2006203756.tif 000027
【図２６】
2006203756.tif 000028
【図２７】
2006203756.tif 000029
【図２８】
2006203756.tif 000030
【図２９】
2006203756.tif 000031
【図３０】
2006203756.tif 000032
【図３１】
2006203756.tif 000033
【図３２】
2006203756.tif 000034
【図３３】
2006203756.tif 000035
【図３４】
2006203756.tif 000036
【図３５】
2006203756.tif 000037