データ処理装置、データ処理システム、およびデータ処理方法
【課題】 システム全体で消費電力削減の効果が高いデータ処理装置、データ処理システム、およびデータ処理方法を提供する。
【解決手段】 レジスタファイル部31は、バスPB1を介して、データ復元回路32Xa,32Xbにレジスタファイル信号DXa,DXbをそれぞれ出力する。データ復元回路32Xa,32Xbは、バスPB1を介して同時に転送されるデータ反転/非反転信号BFa,BFbを元に、レジスタファイル信号DXa,DXbからデータ信号Da,Dbをそれぞれ復元する。演算器35は、データ信号Da,Dbを演算してデータ信号Dcを出力する。データ変換回路32Yは、データ信号Dcを元に生成したデータ反転/非反転信号BFcに従ってデータ信号Dcをビット列ごとに反転または非反転し、変換データ信号DXcを出力する。
【解決手段】 レジスタファイル部31は、バスPB1を介して、データ復元回路32Xa,32Xbにレジスタファイル信号DXa,DXbをそれぞれ出力する。データ復元回路32Xa,32Xbは、バスPB1を介して同時に転送されるデータ反転/非反転信号BFa,BFbを元に、レジスタファイル信号DXa,DXbからデータ信号Da,Dbをそれぞれ復元する。演算器35は、データ信号Da,Dbを演算してデータ信号Dcを出力する。データ変換回路32Yは、データ信号Dcを元に生成したデータ反転/非反転信号BFcに従ってデータ信号Dcをビット列ごとに反転または非反転し、変換データ信号DXcを出力する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、データ処理装置、データ処理システム、およびデータ処理方法に関し、特に、データ処理された信号をバスを介して転送するデータ処理装置、データ処理システム、およびデータ処理方法に関する。
【背景技術】
【0002】
データ処理装置の命令フォーマットまたはデータ等に処理を施すことによって消費電力の低減を図る技術の研究開発が進められている。
【0003】
特許文献1に開示された従来のデータ変換回路は、ストレートバイナリ形式のデータを所定形式のデータに変換するデータ変換回路を備える。当該データ変換回路は、ストレートバイナリ形式のデータのうち最上位ビットが「1」であるものについて、当該データの最上位ビット以外のビットを反転する。このような所定形式への変換により、反転するビットの数が少なくなるので、消費電力が低減される。
【0004】
特許文献2に開示された従来のデータ処理装置は、データ書込み時に「0」の数と「1」の数とを検出し、「0」の数が少ない場合には、反転したデータを書込むとともに、反転したかどうかのフラグ情報も書込む。読出し時には、当該フラグ情報に応じてデータを反転する。これにより、メモリセルに保持されているデータを反転させる頻度が少なくなるため、データ書込み時における消費電力が低減される。
【特許文献1】特開2003−101415号公報
【特許文献2】特開2002−366419号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
特許文献1のデータ変換回路は、音声データや色成分データのような「0」を中心として正側および負側に変動するデータの変換に関して、「0000 0000」から「1111 1111」、またはその逆のデータを頻繁に入出力する場合の問題点を解決するために考案されたものである。つまり、特許文献1のデータ変換回路は、連続性のあるデータに対して消費電力を削減するものであって、たとえばランダムなデータに対しては全く効果がなく、かえって消費電力が増大する可能性がある。
【0006】
特許文献2のデータ処理装置は、メモリとシステムバスとの間にデータ変換部を設けることで、ランダムアクセスメモリの書込み時における消費電力を削減することを目的としたものである。つまり、特許文献2のデータ処理装置は、メモリアクセス時のメモリの消費電力を削減するものであって、システム全体を考えると消費電力削減の効果は低いという問題を有する。
【0007】
それゆえに、この発明の目的は、システム全体で消費電力削減の効果が高いデータ処理装置、データ処理システム、およびデータ処理方法を提供することである。
【課題を解決するための手段】
【0008】
この発明のある局面によるデータ処理装置は、複数ビットのデータを転送するバスと、バスを介して転送する入力信号を受け、入力信号の所定数のビットの論理を、反転/非反転信号と所定数のビットとにおける第1の論理の数が第2の論理の数以上となるように反転または非反転して変換信号を生成し、かつ変換信号の所定数のビットの反転または非反転を示す反転/非反転信号を生成し、変換信号および反転/非反転信号をバスに出力する変換回路とを備える。
【0009】
この発明の他の局面によるデータ処理システムは、複数ビットのデータを転送するバスと、バスを介して転送する入力信号を受け、入力信号の所定数のビットの論理を、反転/非反転信号と所定数のビットとにおける第1の論理の数が第2の論理の数以上となるように反転または非反転して変換信号を生成し、かつ変換信号の所定数のビットの反転または非反転を示す反転/非反転信号を生成し、変換信号および反転/非反転信号をバスに出力する変換回路を含む処理部と、バスを介して転送された変換信号および反転/非反転信号を受けるメモリ部とを備える。
【0010】
この発明のさらに他の局面によるデータ処理方法は、バスを介して転送すべき入力信号を変換するデータ変換方法であって、入力信号の所定数のビット論理を、反転/非反転信号と所定数のビットとにおける第1の論理の数が第2の論理の数以上となるように反転または非反転して変換信号を生成するステップと、変換信号の所定数のビットの反転または非反転を示す反転/非反転信号を生成するステップと、変換信号および反転/非反転信号をバスに出力するステップとを備える。
【発明の効果】
【0011】
この発明によれば、システム全体で消費電力削減の効果が高くなる。
【発明を実施するための最良の形態】
【0012】
以下、この発明の実施の形態について図面を参照して詳しく説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【0013】
[実施の形態1]
図1は、この発明の実施の形態1によるデータ処理システム1Aを概略的に表わしたブロック図である。
【0014】
図1を参照して、実施の形態1のデータ処理システム1Aは、メモリ2と、CPU(Central Processing Unit)3とを備える。メモリ2とCPU3との間では、変換データ信号DXおよびそれに対応するデータ反転/非反転信号BF、ならびに、変換アドレス信号ADDXおよびそれに対応するアドレス反転/非反転信号BFadが互いに入出力される。メモリ2とCPU3との間の上記信号の転送は、少なくとも一部がバスを介して行なわれる。
【0015】
データ反転/非反転信号BFは、1ビットまたは複数ビットからなり、データ転送論理に応じて変換データ信号DXとビット反転信号BFとの合計の「1」または「0」の出現率が同じかまたは高くなるようにデータ信号DT(図1では明示せず)のビット列ごとの反転/非反転を示した信号である。アドレス反転/非反転信号BFadは、1ビットまたは複数ビットからなり、データ転送論理に応じて変換アドレス信号ADDXとアドレス反転/非反転信号BFadとの合計の「1」または「0」の出現率が同じかまたは高くなるようにアドレス信号ADD(図1では明示せず)のビット列ごとの反転/非反転を示した信号である。
【0016】
データ信号DTおよびアドレス信号ADDの「1」または「0」のどちらの出現率を高めるかは、データ処理システム1Aにおけるデータ転送が負論理に従うか正論理に従うかによって決めることができる。変換データ信号DXは、データ反転/非反転信号BFに従って、データ信号DTがビット列ごとに反転または非反転されたデータ信号である。変換アドレス信号ADDXは、アドレス反転/非反転信号BFadに従って、アドレス信号ADDがビット列ごとに反転または非反転されたアドレス信号である。
【0017】
データ処理システム1Aにおけるデータ転送が正論理に従う場合、すなわち、データ転送時においてデータ信号の「1」が回路のHレベル(高レベル)に対応する場合、変換データ信号DXは、「1」の出現率が増加するようにビット列ごとに反転または非反転されている。当該変換データ信号DXをデータ処理システム1Aにおけるバスを介して転送することによって、正論理において「0」に遷移するビット数を削減することができる。これにより、データ処理システム1Aの消費電力を低減することができる。これは、データ信号の代わりにたとえばアドレス信号を用いても同じである。
【0018】
データ処理システム1Aにおけるデータ転送が負論理に従う場合、すなわち、データ転送時においてデータ信号の「1」が回路のLレベル(低レベル)に対応する場合、変換データ信号DXは、「0」の出現率が増加するようにビット列ごとに反転または非反転されている。当該変換データ信号DXをデータ処理システム1Aにおけるバスを介して転送することによって、負論理において「1」に遷移するビット数を削減することができる。これにより、データ処理システム1Aの消費電力を低減することができる。これは、データ信号の代わりにたとえばアドレス信号を用いても同じである。
【0019】
以下、データ処理システム1Aの具体的な構成の一例について説明する。
【0020】
図2は、この発明の実施の形態1によるデータ処理システム1Aの具体的な構成を示したブロック図である。
【0021】
図2を参照して、実施の形態1のデータ処理システム1Aは、メモリ&周辺回路2aと、CPU3とを備える。メモリ&周辺回路2aは、図1のメモリ2に対応し、アドレス復元回路6を含む。CPU3は、命令/データフェッチ部10と、命令デコード部20と、演算実行部30とを含む。命令/データフェッチ部10は、データストア部11と、アドレス変換回路12とを含む。
【0022】
メモリ&周辺回路2aは、データ書込時、命令/データフェッチ部10のデータストア部11から出力される変換データ信号DX13およびそれに対応するデータ反転/非反転信号BF13を受ける。メモリ&周辺回路2aは、変換データ信号DX13およびデータ反転/非反転信号BF13を受けて、アドレス信号ADD(図2では明示せず)に変換データ信号DX13およびデータ反転/非反転信号BF13を書き込む。
【0023】
データ読出時、メモリ&周辺回路2aに含まれるアドレス復元回路6は、命令/データフェッチ部10のアドレス変換回路12から出力される変換アドレス信号ADDXおよびそれに対応するアドレス反転/非反転信号BFadを受けて、変換前のアドレス信号ADDを復元する。その後、メモリ&周辺回路2aは、当該アドレス信号ADDに応じてアドレス信号ADDからデータ反転/非反転信号BF14および変換データ信号DX14を読み出し、変換データ信号DX14およびそれに対応するデータ反転/非反転信号BF14を命令/データフェッチ部10に出力する。
【0024】
変換データ信号DX14は、変換オペランド信号OPXおよび変換データ信号DX11の少なくとも一方を含む。データ反転/非反転信号BF14は、変換データ信号DX14に対応して、オペランド反転/非反転信号BFopおよびデータ反転/非反転信号BF11の少なくとも一方を含む。1ビットのデータ反転/非反転信号BF14からオペランド反転/非反転信号BFopおよびデータ反転/非反転信号BF11の両方を生成する場合、命令/データフェッチ部10は、データ反転/非反転信号BF14を複製する。これにより、オペランド反転/非反転信号BFopおよびデータ反転/非反転信号BF11は、ともにデータ反転/非反転信号BF14と同じ値となる。
【0025】
命令/データフェッチ部10は、変換データ信号DX14に含まれる変換オペランド信号OPX、およびそれに対応するオペランド反転/非反転信号BFopを、命令デコード部20に出力する。命令デコード部20は、当該変換オペランド信号OPXおよびそれに対応するオペランド反転/非反転信号BFopをデコードし、そのデコード内容に基づいた制御信号CTRを演算実行部30に出力する。
【0026】
また、命令/データフェッチ部10は、変換データ信号DX14に含まれる変換データ信号DX11、およびそれに対応するデータ反転/非反転信号BF11を、演算実行部30に出力する。演算実行部30は、データ反転/非反転信号BF11に基づいて変換データ信号DX11を変換前のデータ信号に復元し、制御信号CTRに応じて当該変換前のデータ信号に演算を施す。演算実行部30は、制御信号CTRに応じて演算を施されたデータ信号を再び変換し、当該変換データ信号DX12およびそれに対応するデータ反転/非反転信号BF12を命令/データフェッチ部10に出力する。変換データ信号DX12は、変換データ信号DX13または変換アドレス信号ADDの少なくとも一方を含む。
【0027】
図3は、図2の演算実行部30の具体的な構成を示したブロック図である。図3を参照して、演算実行部30は、レジスタファイル部31と、データ復元回路32Xa,32Xbと、データ変換回路32Yと、演算器35と、バスPB1,PB2とを含む。バスPB1,PB2は、プリチャージバスである。データ復元回路32Xa,32Xbおよびデータ変換回路32Yは、以下に述べるデータ信号の変換による効果を高めるため、配線負荷の大きいところに設けられるのが好ましい。なお、バスPB1とバスPB2とは、同一のバスであっても構わない。
【0028】
レジスタファイル部31は、図2の制御信号CTRを受けて、データ復元回路32Xaにレジスタファイル信号DXaを、データ復元回路32Xbにレジスタファイル信号DXbを、バスPB1を介してそれぞれ出力する。
【0029】
レジスタファイル信号DXa,DXbは、それぞれ、図2の変換データ信号DX14の一部を構成する信号であり、たとえば、変換データ信号DX14をビット列ごとに分割した信号である。なお、レジスタファイル信号DXa,DXbの一方または両方は、図2の変換データ信号DX11と同じデータを意味する。ここでは、演算実行部30内における当該データを「DXa,DXb」と呼び、演算実行部30外では「DX11」と呼ぶ。また、レジスタファイル部31は、図2の制御信号CTRを受けて、データ復元回路32Xa,32Xbの各々にバスPB1を介してデータ反転/非反転信号BFa,BFbを出力する。
【0030】
データ復元回路32Xaは、データ反転/非反転信号BFaを元に、レジスタファイル信号DXaからデータ信号Daを復元する。データ復元回路32Xbは、データ反転/非反転信号BFbを元に、レジスタファイル信号DXbからデータ信号Dbを復元する。演算器35は、データ信号Da,Dbを受けて、図2の制御信号CTRに含まれる演算命令(オペランドコード)を実行し、演算結果をデータ信号Dcとして出力する。
【0031】
データ変換回路32Yは、反転/非反転信号生成回路(図3では図示せず)を用いて、データ信号Dcからデータ反転/非反転信号BFcを生成する。データ変換回路32Yは、データ反転/非反転信号BFcに従ってデータ信号Dcをビット列ごとに反転または非反転し、生成された変換データ信号DXcを、バスPB2を介して、レジスタファイル部31等に出力する。なお、変換データ信号DXcは、図2の変換データ信号DX12と同じデータを意味する。ここでは、データ変換回路32Yからレジスタファイル部31に出力される信号を変換データ信号DXcと呼び、レジスタファイル部31から図2の命令/データフェッチ部10に出力される信号を変換データ信号DX12と呼ぶ。
【0032】
また、データ変換回路32Yは、レジスタファイル部31等にバスPB2を介してデータ反転/非反転信号BFcを出力する。なお、データ反転/非反転信号BFcは、図2のデータ反転/非反転信号BF12と同じデータを意味する。ここでは、データ変換回路32Yからレジスタファイル部31に出力される信号をデータ反転/非反転信号BFcと呼び、レジスタファイル部31から図2の命令/データフェッチ部10に出力される信号をデータ反転/非反転信号BF12と呼ぶ。
【0033】
図4は、図3のバスPB1の具体的な構成の一例であるバスPB1pの構成を示した回路図である。なお、以下の図4の説明は、バスPB1に限らず、データ処理システム1Aのローカルバス、システムバスなどあらゆるバスに対して適用可能である。
【0034】
図4を参照して、バスPB1は、プリチャージバスであって、PチャネルMOSトランジスタ51,53と、NチャネルMOSトランジスタ52,56と、インバータ54,55とを含む。図4では、レジスタファイル部31からデータ復元回路32Xaに出力される信号を一例として取り上げている。
【0035】
PチャネルMOSトランジスタ51は、電源ノードとプリチャージノードPrNとの間に接続され、ゲートにクロック信号/CLKを受ける。これにより、クロック信号/CLKがLレベルのとき、プリチャージノードPrNは電源電圧(Hレベル)にプリチャージされる。なお、クロック信号/CLKは、その反転信号であるクロック信号CLKであってもよい。これは、次の図5でも同様である。
【0036】
NチャネルMOSトランジスタ52は、プリチャージノードPrNと第1ノードNDとの間に接続され、ゲートにインバータ55を介して図3のレジスタファイル部31から出力される変換データ信号DXaおよびデータ反転/非反転信号BFaを受ける。NチャネルMOSトランジスタ56は、第1ノードNDと接地ノードとの間に接続され、ゲートにクロック信号/CLKを受ける。以下、図4の説明において、変換データ信号DXaといえば、特に分けて記載しない限りデータ反転/非反転信号BFaを含むものとする。
【0037】
PチャネルMOSトランジスタ53は、電源ノードとプリチャージノードPrNとの間に接続されている。インバータ54は、入力端子がプリチャージノードPrNに接続され、出力端子がPチャネルMOSトランジスタ53のゲートに接続されている。インバータ54の出力端子は、図3のデータ復元回路32Xa,32Xbに接続されている。
【0038】
次に、クロック信号/CLKがHレベルのときについて説明する。まず、バスPB1におけるデータ転送が正論理に従う場合、すなわち、バスPB1の回路構成が図4のバスPB1pに対応する場合について考える。
【0039】
この場合、変換データ信号DXが「1」すなわちHレベルのとき、NチャネルMOSトランジスタ52は反転された変換データ信号DXaの入力を受けてオフとなる。このとき、プリチャージノードPrNは放電(ディスチャージ)しない。したがって、バスPB1におけるデータ転送が正論理に従う場合、「1」の出現率が増加するようにデータ信号の各ビット列を反転または非反転した変換データ信号DXaをバスPB1上で転送することによって、変換データ信号DXaの「0」のビット数を削減することができる。
【0040】
これにより、プリチャージノードPrNにおける放電回数が減り、バスPB1におけるデータ転送時の消費電力を低減することができる。また、前述のように、図4に示したバスPB1の構成は、図2のデータ処理システム1Aにおけるあらゆるバスに対して適用可能である。そのため、実施の形態1では、図2のたとえばメモリ&周辺回路2aと命令/データフェッチ部10との間のバスにおいても充放電が少なくなり、これによる消費電力の低減効果が生じる。
【0041】
データ反転/非反転信号BFaは、バスPB1におけるデータ転送が正論理に従う場合には、変換データ信号DXaとビット反転信号BFaとの合計の「1」の出現率が高くなるようにデータ信号のビット列ごとの反転/非反転を示した信号である。このような出現率の決め方に従う限り、データ反転/非反転信号BFaは、データ信号の反転時に「1」、非反転時に「0」と定義してもよいし、データ信号の反転時に「0」、非反転時に「1」と定義してもよい。
【0042】
次に、バスPB1におけるデータ転送が負論理に従う場合、すなわち、バスPB1の回路構成が以下で説明するバスPB1nに対応する場合について考える。
【0043】
図5は、図3のバスPB1の具体的な構成の他の一例であるバスPB1nの構成を示した回路図である。図5は、バスPB1におけるデータ転送が負論理に従うことに合わせてインバータ55が取り除かれた点においてのみ図4と異なる。したがって、図4と重複する部分の説明は、ここでは繰り返さない。
【0044】
図5において、クロック信号/CLKがHレベルでかつ変換データ信号DXaが「0」すなわちLレベルのとき、NチャネルMOSトランジスタ52は変換データ信号DXaの入力を受けてオフとなる。このとき、プリチャージノードPrNは放電しない。したがって、バスPB1におけるデータ転送が負論理に従う場合、「0」の出現率が増加するようにデータ信号の各ビット列を反転または非反転した変換データ信号DXaをバスPB1上で転送することによって、変換データ信号DXaの「1」のビット数を削減することができる。
【0045】
これにより、プリチャージノードPrNにおける放電回数が減り、バスPB1におけるデータ転送時の消費電力を低減することができる。また、前述のように、図4に示したバスPB1の構成は、図2のデータ処理システム1Aにおけるあらゆるバスに対して適用可能である。そのため、実施の形態1では、図2のたとえばメモリ&周辺回路2aと命令/データフェッチ部10との間のバスにおいても充放電が少なくなり、これによる消費電力の低減効果が生じる。
【0046】
データ反転/非反転信号BFaは、バスPB1におけるデータ転送が負論理に従う場合には、変換データ信号DXaとビット反転信号BFaとの合計の「0」の出現率が高くなるようにデータ信号のビット列ごとの反転/非反転を示した信号である。このような出現率の決め方に従う限り、データ反転/非反転信号BFaは、データ信号の反転時に「1」、非反転時に「0」と定義してもよいし、データ信号の反転時に「0」、非反転時に「1」と定義してもよい。
【0047】
図6は、図3のバスPB1においてデータ信号を変換せずに転送する場合のデータ転送動作の一例を比較例として時系列的に示した図である。図6では転送されるデータ信号の電位レベルに着目しているため、バスPB1におけるデータ転送が正論理に従う場合であっても負論理に従う場合であっても成り立つ。ここでは、説明を簡略化するために、データ反転/非反転信号は考慮しない。
【0048】
図6を参照して、時刻t1において、バスPB1における各ビットレベルが全てHレベルにプリチャージされる。時刻t2において、時刻t1の状態から2つのビットレベルをHレベルからLレベルに遷移させることにより、1回目のデータ転送が行なわれる。このとき、放電するビット数は2となる。
【0049】
時刻t3において、バスPB1における各ビットレベルが再び全てHレベルにプリチャージされる。時刻t4において、時刻t3の状態から4つのビットレベルをHレベルからLレベルに遷移させることにより、2回目のデータ転送が行なわれる。このとき、放電するビット数は4となる。
【0050】
以上のように、データ信号を変換せずに転送する図6のデータ転送動作において、放電するビット数は1回目と2回目とで計6となる。
【0051】
図7は、図3のバスPB1において図6のデータ信号を変換して転送する場合のデータ転送動作の一例を時系列的に示した図である。図7では転送される変換データ信号の電位レベルに着目しているため、バスPB1におけるデータ転送が正論理に従う場合であっても負論理に従う場合であっても成り立つ。
【0052】
図7を参照して、時刻t1において、バスPB1における各ビットレベルが全てHレベルにプリチャージされる。時刻t2において、時刻t1の状態から2つのビットレベルをHレベルからLレベルに遷移させることにより、1回目のデータ転送が行なわれる。図6において示したように、1回目のデータ転送時において、HレベルからLレベルに遷移するデータビット数は遷移しないデータビット数より少ない。そのため、1回目のデータ転送時における変換データ信号は変換前のデータ信号と同一となり、放電するビット数は2となる。
【0053】
時刻t3において、バスPB1における各ビットレベルが再び全てHレベルにプリチャージされる。時刻t4において、時刻t3の状態から1つのビットレベルをHレベルからLレベルに遷移させることにより、2回目のデータ転送が行なわれる。図6において示したように、2回目のデータ転送時において、HレベルからLレベルに遷移するデータビット数は遷移しないデータビット数より多い。そのため、2回目のデータ転送時における変換データ信号は変換前のデータ信号を反転した信号となり、その結果、放電するビット数は1となる。
【0054】
以上のように、データ信号を変換して転送する図7のデータ転送動作において、放電するビット数は1回目と2回目とで計3となる。このように、図3のバスPB1におけるデータ転送時にデータ信号を変換して転送することにより、データ信号を変換しない場合と比べて消費電力に直接影響を与える、放電するビット数を減少させることが可能となる。
【0055】
図8は、図3のデータ復元回路32Xaの具体的な構成の一例を示した回路ブロック図である。なお、データ復元回路32Xbも同様の回路構成を有する。
【0056】
図8を参照して、データ復元回路32Xaは、インバータ72と、セレクタ73とを含む。インバータ72は、レジスタファイル信号DXaを反転する。セレクタ73は、データ反転/非反転信号BFaに応じて、ビット列ごとにレジスタファイル信号DXaおよびその反転信号のいずれか一方を選択する。これにより、レジスタファイル信号DXaからデータ信号Daが復元される。
【0057】
上記のように、データ復元回路32Xa,32Xbは、レジスタファイル信号(変換データ信号)からデータ信号を復元するものであるが、レジスタファイル信号の代わりに変換アドレス信号、データ反転/非反転信号の代わりにアドレス反転/非反転信号をそれぞれ用いることによって、同様の回路構成で、アドレス復元回路6(図2参照)を実現することができる。
【0058】
図9は、図3のデータ変換回路32Yの具体的な構成の一例を示した回路ブロック図である。
【0059】
図9を参照して、データ変換回路32Yは、反転/非反転信号生成回路81と、インバータ82_kと、セレクタ83_kとを含む(k=1〜8)。反転/非反転信号生成回路81は、データ信号Dcがビット列ごとに分割されたデータ信号Dk(k=1〜8)を受けて、それぞれ「0」が多いか「1」が多いかを判定する。当該判定結果を元に、データ反転/非反転信号BFcが生成される。
【0060】
インバータ82_kは、データ信号Dkを反転する。セレクタ83_kは、データ反転/非反転信号BF2に応じて、データ信号Dkおよびその反転信号のいずれか一方を選択する。これにより、データ信号Dkから変換データ信号DXk(k=0〜8)が生成される。変換データ信号DXkを連結して、図3の変換データ信号DXcが生成される。
【0061】
反転/非反転信号生成回路81は、具体的には、次のようにして判定を行なう。すなわち、反転/非反転信号生成回路81は、自身の判定結果に応じて生成される反転/非反転信号BFcと変換データ信号DXkとの合計の「0」および「1」の数を推定し、その推定値において「0」が多いか「1」が多いかを判定する。
【0062】
なお、当該推定値の「0」の数と「1」の数とが等しくなった場合には、データ信号Dkを反転すると判定しても反転しないと判定しても、反転/非反転信号BFcと変換データ信号DXkとの合計の「0」の数と「1」の数とは当然同じになる。この場合、データ信号Dkを反転しないと判定するように設定しておけば、データ復元時に変換データ信号DXkを再反転する必要がない分だけ、図3のデータ復元回路32Xa,32Xbの動作を軽減することができる。これにより、実施の形態1のデータ処理システム1Aの消費電力が低減される。
【0063】
上記のように、データ変換回路32Yは、データ信号を変換データ信号に変換するものであるが、データ信号の代わりにアドレス信号を用いることによって、同様の回路構成で、アドレス変換回路12(図2参照)を実現することができる。
【0064】
図10は、図9の反転/非反転信号生成回路81の具体的な構成の一例を示した回路図である。
【0065】
図10を参照して、反転/非反転信号生成回路81は、半加算器(HA:Half Adder)810a〜810dと、全加算器(FA:Full Adder)820a,820b,830と、比較値格納部840と、比較回路850とを含む。
【0066】
なお、図10の反転/非反転信号生成回路81は、図3のバスPB1,PB2におけるビット数が8ビット(1バイト)の場合の回路構成である。しかし、バスPB1,PB2のビット数がたとえば16ビット,32ビットであっても、全加算器の数を増やすことによって、同様に反転/非反転信号生成回路を構成することが可能である。また、データ信号D1〜D8は、図9のデータ信号Dk(k=1〜8)に対応する。
【0067】
半加算器810a〜810dは、それぞれ、2つの1ビットデータを入力して加算し、2ビットのデータとして出力する。全加算器820a,820bは、それぞれ、2つの2ビットデータを入力して加算し、3ビットのデータとして出力する。全加算器830は、2つの3ビットデータを入力して加算し、4ビットのデータとして出力する。
【0068】
比較値格納部840は、データ反転/非反転信号BFcを決定する際に使用される比較値CPを予め格納している。8ビット単位における「1」の数が5以上でビット列を反転する設定の場合、比較値格納部840に格納される比較値CPは「0101(10進数で5)」、「0110(10進数で6)」、「0111(10進数で7)」および「1000(10進数で8)」となる。比較値CPを調整することによって、バスPB1におけるデータ転送が正論理に従うか負論理に従うか、あるいは、データ反転/非反転信号をデータ反転時に「1」と定義するか「0」と定義するか、といった種々の場合に対応することができる。
【0069】
比較回路850は、全加算器830から出力される4ビットのデータと、比較値格納部840から出力される比較値CPとの一致を判定する。全加算器830から出力される4ビットデータと比較値CPとが一致すれば、比較回路850は、データ反転/非反転信号BFcを「1」として出力する。一致しなければ、比較回路850は、データ反転/非反転信号BFcを「0」として出力する。
【0070】
図11は、図10の半加算器810a〜810dを代表する半加算器810の具体的な構成の一例を示した回路図である。
【0071】
図11を参照して、半加算器810は、XORゲート811と、ANDゲート812とを含む。データ信号Dx,Dyは、図10のデータ信号D1〜D8からなる複数の対のいずれかである。XORゲート811は、データ信号Dx,Dyを入力し、和信号Sおよび桁上げ信号Cを出力する。
【0072】
図12は、1ビットの全加算器815の構成の一例を示した回路ブロック図である。
【0073】
図12を参照して、1ビットの全加算器815は、半加算器816,817と、ORゲート818とを含む。半加算器816は、入力信号Bおよび桁上げ信号CINを入力し、和信号Sbおよび桁上げ信号Cbを出力する。半加算器817は、入力信号Aおよび和信号Sbを入力し、和信号Sおよび桁上げ信号Caを出力する。ORゲート818は、桁上げ信号Ca,Cbを入力し、桁上げ信号COUTを出力する。すなわち、1ビットの加算器815は、全体として見れば、入力信号A,Bおよび(下位からの)桁上げ信号CINを入力し、和信号Sおよび桁上げ信号COUTを出力する。
【0074】
図13は、図10の全加算器820a,820bを代表する2ビットの全加算器820の構成の一例を示した回路ブロック図である。
【0075】
図13に示すように、2ビットの全加算器820は、図12で説明した1ビットの全加算器815を2つ連結した構成を有する。具体的には、全加算器815aの桁上げ出力端子COUTが全加算器815bの桁上げ入力端子CINに接続されている。
【0076】
全加算器815aは、入力信号A1,B1を入力して、和信号S1を出力する。全加算器815aの桁上げ入力端子CINは接地されている。全加算器815bは、入力信号A2,B2および全加算器815aからの桁上げ信号を入力して、和信号S2および桁上げ信号COUTを出力する。すなわち、2ビットの加算器820は、全体として見れば、入力信号A1,A2,B1,B2を入力し、和信号S1,S2および桁上げ信号COUTを出力する。
【0077】
次に、データ信号をビット列ごとに反転/非反転する具体的な変換例について、データ処理システム1Aにおけるデータ転送が正論理に従う場合と負論理に従う場合とに分けて説明する。
【0078】
図14は、データ処理システム1Aにおけるデータ転送が正論理に従う場合のデータ信号の具体的な変換例を示した図である。図14において、(A1)は変換前のデータ信号DT1、(A2)は変換データ信号DX1をそれぞれ表わす。
【0079】
図14(A1)のデータ信号DT1は、8ビット×4の32ビットのビット列からなる。データ信号DT1は、RaレジスタおよびRbレジスタの内容に対してOPコードによって示される演算命令を実行し、当該演算結果をRcレジスタへ格納するという命令列である。図14に示すように、OPコードは「01001100」、Raレジスタコードは「00000111」、Rbレジスタコードは「00001010」、Rcレジスタコードは「00011111」のビット列をそれぞれ有する。
【0080】
図14(A2)の変換データ信号DX1は、図14(A1)のデータ信号DT1の8ビット(1バイト)ごとに、「0」の数が4個以上か4個未満かに応じて「1」または「0」に設定されたデータ反転/非反転信号BFp,BFa,BFb,BFcがそれぞれ付加されている。あるバイトの「0」の数が4個以上のとき、対応するデータ反転/非反転信号は「1」に設定され、当該コードはビット反転される。その結果、変換データ信号DX1のあるバイトと対応するデータ反転/非反転信号とを合わせた「1」の数は、当該「0」の数よりも必ず多くなる。これにより、変換データ信号DX1における「1」の出現率が増加する。
【0081】
OPコード、RaレジスタコードおよびRbレジスタコードは、いずれも「0」の数が4個以上なので、対応するデータ反転/非反転信号BFp,BFa,BFbは全て「1」に設定され、それぞれのコードがビット反転されている。すなわち、OPコードは「10110011」、Raレジスタコードは「11111000」、Rbレジスタコードは「11110101」のビット列にそれぞれ変換されている。
【0082】
Rcレジスタコードは、「0」の数が4個未満なので、データ反転/非反転信号BFcが「0」に設定され、当該コードはビット反転されていない。すなわち、Rcレジスタコードは、「00011111」のビット列のままである。
【0083】
図15は、データ処理システム1Aにおけるデータ転送が正論理に従う場合のデータ信号の他の具体的な変換例を示した図である。図15は、変換データ信号のビット数が偶数(図15では8ビット)の場合を示した図である。図15において、(B1)は変換前のデータ信号DT20〜DT28を表わし、(B2)は変換データ信号DX20〜DX28および対応するデータ反転/非反転信号BFx0〜BFx8を表わす。
【0084】
図15(B1)のデータ信号DT20〜DT28は、各々異なる9種類の8ビット列である。図15に示すように、データ信号DT20は「00000000」、データ信号DT21は「00000001」、・・・、データ信号DT28は「11111111」のビット列をそれぞれ有する。
【0085】
図15(B2)の変換データ信号DX20〜DX28は、図15(B1)の対応するデータ信号DT20〜DT28の各ビット列の「0」の数が4個以上か4個未満かに応じて「1」または「0」が設定されたデータ反転/非反転信号BFx0〜BFx8がそれぞれ付加されている。
【0086】
データ信号DT20〜DT28の「0」の数が4個以上のとき、対応するデータ反転/非反転信号BFx0〜BFx8のビットは「1」に設定され、当該データ信号はビット反転される。その結果、変換データ信号DX20〜DX28と対応するデータ反転/非反転信号BFx0〜BFx8とを合わせた「1」の数は、当該「0」の数よりも必ず多くなる。これにより、変換データ信号DX20〜DX28における「1」の出現率が増加する。
【0087】
データ信号DT20〜DT24は、いずれも「0」の数が4個以上なので、対応するデータ反転/非反転信号BFx0〜BFx4のビットはすべて「1」に設定され、それぞれの変換データ信号がビット反転されている。すなわち、変換データ信号DX20は「11111111」、変換データ信号DX21は「11111110」、・・・、変換データ信号DX24は「11110000」のビット列にそれぞれ変換されている。
【0088】
データ信号DT25〜DT28は、いずれも「0」の数が4個未満なので、対応するデータ反転/非反転信号BFx5〜BFx8のビットはすべて「0」に設定され、それぞれの変換データ信号はビット反転されていない。すなわち、変換データ信号DX25は「00011111」、変換データ信号DX26は「00111111」、・・・、変換データ信号DX28は「11111111」のビット列のままである。
【0089】
図16は、データ処理システム1Aにおけるデータ転送が正論理に従う場合のデータ信号のさらに他の具体的な変換例を示した図である。図16は、変換データ信号のビット数が奇数(図16では9ビット)の場合を示した図である。図16において、(C1)は変換前のデータ信号DT30〜DT39を表わし、(C2)は変換データ信号DX30〜DX39および対応するデータ反転/非反転信号BFy0〜BFy9を表わす。
【0090】
図16(C1)のデータ信号DT30〜DT39は、各々異なる10種類の9ビット列である。図16に示すように、データ信号DT30は「000000000」、データ信号DT31は「000000001」、・・・、データ信号DT39は「111111111」のビット列をそれぞれ有する。
【0091】
図16(C2)の変換データ信号DX30〜DX39は、図16(C1)の対応するデータ信号DT30〜DT39の各ビット列の「0」の数が5個以上か5個未満かに応じてそれぞれ「1」または「0」が設定されたデータ反転/非反転信号BFy0〜BFy9がそれぞれ付加されている。
【0092】
データ信号DT30〜DT39の「0」の数が5個以上のとき、対応するデータ反転/非反転信号BFy0〜BFy9のビットは「1」に設定され、当該データ信号はビット反転される。その結果、変換データ信号DX30〜DX39と対応するデータ反転/非反転信号BFy0〜BFy9とを合わせた「1」の数は、当該「0」の数と等しいか多くなる。これにより、変換データ信号DX30〜DX39における「1」の出現率が増加する。
【0093】
データ信号DT30〜DT34は、いずれも「0」の数が5個以上なので、対応するデータ反転/非反転信号BFy0〜BFy4のビットはすべて「1」に設定され、それぞれの変換データ信号がビット反転されている。すなわち、変換データ信号DX30は「111111111」、変換データ信号DX31は「111111110」、・・・、変換データ信号DX34は「111110000」のビット列にそれぞれ変換されている。
【0094】
データ信号DT35は、「0」の数が5個未満なので、対応するデータ反転/非反転信号BFy5のビットは「0」に設定され、変換データ信号DX35はビット反転されていない。
【0095】
なお、データ反転/非反転信号BFy5のビットを「1」に設定してデータ信号DT35をビット反転したとしても、データ反転/非反転信号BFy5と変換データ信号DX35との合計の「0」の数と「1」の数とは同じである。しかし、データ反転/非反転信号BFy5のビットを「0」と設定することによって、データ復元時に変換データ信号DX35を再反転する必要がない分だけ、図3のデータ復元回路32Xa,32Xbの動作を軽減することができる。これにより、実施の形態1のデータ処理システム1Aの消費電力が低減される。
【0096】
データ信号DT36〜DT39は、いずれも「0」の数が5個未満なので、対応するデータ反転/非反転信号BFy6〜BFy9のビットはすべて「0」に設定され、それぞれの変換データ信号はビット反転されていない。すなわち、変換データ信号DX36は「000111111」、変換データ信号DX37は「001111111」、・・・、変換データ信号DX39は「111111111」のビット列のままである。
【0097】
図14では32ビットのデータ信号DT1、図15では各8ビットのデータ信号DT20〜DT28、図16では各9ビットのデータ信号DT30〜DT39を例に説明したが、データ信号のビット数については特に制限はない。
【0098】
また、図14,15では8ビット(1バイト)単位、図16では9ビット単位でデータ反転/非反転信号を設けたが、一般にnビット単位(nは2以上の自然数)で設けることが可能である。このとき、図14,15の「4個以上か4個未満」は、「n/2以上かn/2未満(n=8の場合)」と一般化することができる。
【0099】
一方、図16の「5個以上か5個未満」は、「[n/2]以上か[n/2]未満(n=9の場合)」と一般化することができる。ここで、[x]とはxの小数点以下を切り上げた数であることを示す。この一般化は、図14,15の場合にも適用することができる。以下では、このような一般化された場合におけるデータ信号の変換動作について説明する。
【0100】
図17は、データ処理システム1Aにおけるデータ転送が正論理に従う場合のデータ信号の変換動作を示したフロー図である。
【0101】
図17を参照して、まず、ステップS11において、nビット単位ごとにデータ信号の「0」の数をカウントする。nビット単位ごとの「0」の数をカウントした後、ステップS12において、当該「0」の数が[n/2]以上かどうかをnビット単位ごとに判定する。
【0102】
当該「0」の数が[n/2]以上の場合、ステップS13において、対応するデータ反転/非反転信号を「1」とし、当該nビット単位のデータを反転する。当該「0」の数が[n/2]以上でない場合、ステップS14において、対応するデータ反転/非反転信号を「0」とし、当該nビット単位のデータを反転しない。ステップS13,14においてnビット単位のデータを反転または非反転する動作は、図9で説明したように、反転/非反転されたnビット単位のデータのいずれか一方を選択する動作に置き換えることが可能である。
【0103】
ステップS12〜S14の動作をデータ信号の全てのnビット単位について行ない、変換動作が終了する。ステップS12〜S14におけるnビット単位ごとの動作は、並列的に行なうことが可能である(図9参照)。以上の動作により、所望のデータ信号およびデータ反転/非反転信号が得られる。
【0104】
図18は、データ処理システム1Aにおけるデータ転送が負論理に従う場合のデータ信号の具体的な変換例を示した図である。図18において、(D1)は変換前のデータ信号DT4、(D2)は変換データ信号DX4をそれぞれ表わす。
【0105】
図18(D1)のデータ信号DT4は、8ビット×4の32ビットのビット列からなる。データ信号DT4は、RaレジスタおよびRbレジスタの内容に対してOPコードによって示される演算命令を実行し、当該演算結果をRcレジスタへ格納するという命令列である。図14(A1)のデータ信号DT1と同じく、OPコードは「01001100」、Raレジスタコードは「00000111」、Rbレジスタコードは「00001010」、Rcレジスタコードは「00011111」のビット列をそれぞれ有する。
【0106】
図18(D2)の変換データ信号DX4は、図18(D1)のデータ信号DT4の8ビット(1バイト)ごとに、「1」の数が4個より多いか4個以下かに応じて「1」または「0」に設定されたデータ反転/非反転信号BFp,BFa,BFb,BFcがそれぞれ付加されている。あるバイトの「1」の数が4個より多いとき、対応するデータ反転/非反転信号は「1」に設定され、当該コードはビット反転される。その結果、変換データ信号DX4のあるバイトと対応するデータ反転/非反転信号とを合わせた「0」の数は、当該「1」の数よりも必ず多くなる。これにより、変換データ信号DX4における「0」の出現率が増加する。
【0107】
なお、正論理か負論理かによってビット反転基準が「4個以上」と「4個より多い」とで異なるのは、正論理の場合に「1」の出現率を増加させ、負論理の場合に「0」の出現率を増加させるのにもかかわらず、ビット反転を示すデータ反転/非反転信号をいずれも便宜上「1」に設定しているからである。
【0108】
OPコード、RaレジスタコードおよびRbレジスタコードは、いずれも「1」の数が4個以下なので、対応するデータ反転/非反転信号BFp,BFa,BFbは全て「0」に設定され、それぞれのコードはビット反転されていない。すなわち、OPコードは「01001100」、Raレジスタコードは「00000111」、Rbレジスタコードは「00001010」のビット列のままである。
【0109】
Rcレジスタコードは、「0」の数が4個より多いので、データ反転/非反転信号BFcが「1」に設定され、当該コードはビット反転されている。すなわち、Rcレジスタコードは、「11100000」のビット列に変換されている。
【0110】
図19は、データ処理システム1Aにおけるデータ転送が負論理に従う場合のデータ信号の他の具体的な変換例を示した図である。図19は、変換データ信号のビット数が偶数(図19では8ビット)の場合を示した図である。図19において、(E1)は変換前のデータ信号DT50〜DT58を表わし、(E2)は変換データ信号DX50〜DX58および対応するデータ反転/非反転信号BFy0〜BFy8を表わす。
【0111】
図19(E1)のデータ信号DT50〜DT58は、各々異なる9種類の8ビット列である。図15(B1)のデータ信号DT20〜DT28と同じく、データ信号DT50は「00000000」、データ信号DT51はは「00000001」、・・・、データ信号DT58はは「11111111」のビット列をそれぞれ有する。
【0112】
図19(E2)の変換データ信号DX50〜DX58は、図19(E1)のデータ信号DT50〜DT58の各ビット列ごとの「1」の数が4個より多いか4個以下かに応じて「1」または「0」が設定されたデータ反転/非反転信号BFy0〜BFy8がそれぞれ付加されている。
【0113】
データ信号DT50〜DT58の「1」の数が4個より多いとき、対応するデータ反転/非反転信号BFy0〜BFy8のビットは「1」に設定され、当該データ信号はビット反転される。その結果、変換データ信号DX50〜DX58と対応するデータ反転/非反転信号BFy0〜BFy8とを合わせた「0」の数は、当該「1」の数よりも必ず多くなる。これにより、変換データ信号DX50〜DX58における「0」の出現率が増加する。
【0114】
データ信号DT50〜DT54は、いずれも「1」の数が4個以下なので、対応するデータ反転/非反転信号BFy0〜BFy4のビットは全て「0」に設定され、それぞれの変換データ信号がビット反転されていない。すなわち、変換データ信号DX50は「00000000」、変換データ信号DX51は「00000001」、・・・、変換データ信号DX54は「00001111」のビット列のままである。
【0115】
データ信号DT55〜DT58は、いずれも「1」の数が4個より多いので、対応するデータ反転/非反転信号BFy5〜BFy8のビットは全て「1」に設定され、それぞれの変換データ信号はビット反転されている。すなわち、変換データ信号DX55は「11100000」、変換データ信号DX56は「11000000」、・・・、変換データ信号DX58は「00000000」のビット列にそれぞれ変換されている。
【0116】
図20は、データ処理システム1Aにおけるデータ転送が正論理に従う場合のデータ信号のさらに他の具体的な変換例を示した図である。図20は、変換データ信号のビット数が奇数(図20では9ビット)の場合を示した図である。図20において、(F1)は変換前のデータ信号DT60〜DT69を表わし、(F2)は変換データ信号DX60〜DX69および対応するデータ反転/非反転信号BFw0〜BFw9を表わす。
【0117】
図20(F1)のデータ信号DT60〜DT69は、各々異なる10種類の9ビット列である。図16(C1)のデータ信号DT30〜DT39と同じく、データ信号DT60は「000000000」、データ信号DT61は「000000001」、・・・、データ信号DT69は「111111111」のビット列をそれぞれ有する。
【0118】
図20(F2)の変換データ信号DX60〜DX69は、図20(F1)の対応するデータ信号DT60〜DT69の各ビット列の「1」の数が5個より多いか5個以下かに応じて「1」または「0」が設定されたデータ反転/非反転信号BFw0〜BFw9がそれぞれ付加されている。
【0119】
データ信号DT60〜DT69の「1」の数が5個より多いとき、対応するデータ反転/非反転信号BFw0〜BFw9のビットは「1」に設定され、当該データ信号はビット反転される。その結果、変換データ信号DX60〜DX69と対応するデータ反転/非反転信号BFy0〜BFy9とを合わせた「0」の数は、当該「1」の数と等しいか多くなる。これにより、変換データ信号DX60〜DX69における「0」の出現率が増加する。
【0120】
データ信号DT60〜DT64は、いずれも「1」の数が5個以下なので、対応するデータ反転/非反転信号BFw0〜BFw4のビットはすべて「0」に設定され、それぞれの変換データ信号はビット反転されていない。すなわち、変換データ信号DX60は「000000000」、変換データ信号DX61は「000000001」、・・・、変換データ信号DX64は「000001111」のビット列のままである。
【0121】
データ信号DT65は、「1」の数が5個以下なので、対応するデータ反転/非反転信号BFw5のビットは「0」に設定され、変換データ信号DX65はビット反転されていない。
【0122】
なお、データ反転/非反転信号BFw5のビットを「1」に設定してデータ信号DT65をビット反転したとしても、データ反転/非反転信号BFw5と変換データ信号DX65との合計の「0」の数と「1」の数とは同じである。しかし、データ反転/非反転信号BFw5のビットを「0」と設定することによって、データ復元時に変換データ信号DX65を再反転する必要がない分だけ、図3のデータ復元回路32Xa,32Xbの動作を軽減することができる。これにより、実施の形態1のデータ処理システム1Aの消費電力が低減される。
【0123】
データ信号DT66〜DT69は、いずれも「1」の数が5個より多いので、対応するデータ反転/非反転信号BFw6〜BFw9のビットはすべて「1」に設定され、それぞれの変換データ信号がビット反転されている。すなわち、変換データ信号DX66は「111000000」、変換データ信号DX67は「110000000」、・・・、変換データ信号DX69は「000000000」のビット列にそれぞれ変換されている。
【0124】
図18では32ビットのデータ信号DT4、図19では各8ビットのデータ信号DT50〜DT58、図20では各9ビットのデータ信号DT60〜DT69を例に説明したが、データ信号のビット数については特に制限はない。
【0125】
また、図18,19では8ビット(1バイト)単位、図20では9ビット単位でデータ反転/非反転信号を設けたが、一般にnビット単位(nは2以上の自然数)で設けることが可能である。このとき、図18,19の「4個より多いか4個以下」は、「n/2より多いかn/2以下(n=8の場合)」と一般化することができる。
【0126】
一方、図20の「5個より多いか5個以下」は、「[n/2]より多いか[n/2]以下(n=9の場合)」と一般化することができる。ここで、[x]とはxの小数点以下を切り上げた数であることを示す。この一般化は、図18,19の場合にも適用することができる。以下では、このような一般化された場合におけるデータ信号の変換動作について説明する。
【0127】
図21は、データ処理システム1Aにおけるデータ転送が負論理に従う場合のデータ信号の変換動作を示したフロー図である。
【0128】
図21を参照して、まず、ステップS21において、nビット単位ごとにデータ信号の「1」の数をカウントする。nビット単位ごとの「1」の数をカウントした後、ステップS22において、当該「1」の数が[n/2]より多いかどうかをnビット単位ごとに判定する。
【0129】
当該「1」の数が[n/2]より多い場合、ステップS23において、対応するデータ反転/非反転信号を「1」とし、当該nビット単位のデータを反転する。当該「1」の数が[n/2]より多くない場合、ステップS24において、対応するデータ反転/非反転信号を「0」とし、当該nビット単位のデータを反転しない。ステップS23,24においてnビット単位のデータを反転または非反転する動作は、図9で説明したように、反転/非反転されたnビット単位のデータのいずれか一方を選択する動作に置き換えることが可能である。
【0130】
ステップS22〜S24の動作をデータ信号の全てのnビット単位について行ない、変換動作が終了する。ステップS22〜S24におけるnビット単位ごとの動作は、並列的に行なうことが可能である(図9参照)。以上の動作により、所望のデータ信号およびデータ反転/非反転信号が得られる。
【0131】
図14,18では、データ信号の具体的な変換例を示しているが、データ信号に対するデータ反転/非反転信号の挿入位置は、図14,18に示した例だけには限られない。以下では、データ信号に対するデータ反転/非反転信号の他の挿入位置の例を示す。
【0132】
図22〜25は、データ信号に対するデータ反転/非反転信号の他の挿入位置の例を示した図である。図22〜25のいずれのバリエーションであっても、図14,18で説明した場合と同様の効果が得られる。
【0133】
図22は、OPコードに対してはデータ反転/非反転信号を挿入せず、Ra〜Rdレジスタコードに対してはRaレジスタコードの前にデータ反転/非反転信号BFrを1つだけ挿入した例である。
【0134】
図23は、OPコードに対してはデータ反転/非反転信号を挿入せず、Ra〜Rdレジスタコードに対しては各レジスタコードの前にデータ反転/非反転信号BFa〜BFdをそれぞれ挿入した例である。
【0135】
図24は、OP1〜OP4コードに対してはOP1コードの前にデータ反転/非反転信号BFpを1つだけ挿入し、Ra〜Rdレジスタコードに対してはRaレジスタコードの前にデータ反転/非反転信号BFrを1つだけ挿入した例である。
【0136】
図25は、OP1〜OP4コードに対しては各OPコードの前にデータ反転/非反転信号BFp1〜BFp4をそれぞれ挿入し、Ra〜Rdレジスタコードに対しては各レジスタコードの前にデータ反転/非反転信号BFa〜BFdをそれぞれ挿入した例である。
【0137】
図22,24のように4バイト(32ビット)で1ビットの反転/非反転信号を設けた場合、「1」または「0」の数が16個(32ビットの半分)より多いか少ないか等を計算するのに必要な回路の構成が複雑となる。このため、4バイトで1ビットの反転/非反転信号を設けた場合、回路面積および処理速度の面で課題がある。しかしながら、反転/非反転信号の付加によるビット数増加を抑えることができる。
【0138】
図23,25のようにバイト単位(8ビット)で1ビットの反転/非反転信号を設けた場合、データ信号の演算がバイト単位で可能となる。一般に、データ処理システムはバイト単位でデータ信号を処理しているので、バイト単位で1ビットの反転/非反転信号を設けると演算処理が行ないやすくなるという利点がある。
【0139】
以上のように、実施の形態1によれば、バス上のデータ転送時における放電回数が減るようにデータ信号を所定のビット単位ごとに反転または非反転した変換データ信号をバス上で転送することによって、バス上でのデータ転送時における消費電力を低減することができる。
【0140】
[実施の形態2]
図26は、この発明の実施の形態2によるデータ処理システム1Bを概略的に表わしたブロック図である。
【0141】
図26を参照して、実施の形態2のデータ処理システム1Bは、メモリ2Bと、CPU3と、アドレス復元回路6とを備える。メモリ2BとCPU3との間では、データ反転/非反転信号BFおよび変換データ信号DXが互いに入出力される。また、CPU3は、アドレス復元回路6に、アドレス反転/非反転信号BFadおよび変換アドレス信号ADDXを出力する。メモリ2BとCPU3との間のデータ反転/非反転信号BFおよび変換データ信号DXの転送は、少なくとも一部がバスを介して行なわれる。CPU3とアドレス復元回路6との間のアドレス反転/非反転信号BFadおよび変換アドレス信号ADDXの転送は、少なくとも一部がバスを介して行なわれる。
【0142】
アドレス復元回路6は、アドレス反転/非反転信号BFadを元に、変換アドレス信号ADDXからアドレス信号ADDを復元し、それをメモリ2Bに出力する。つまり、変換アドレス信号ADDXは、アドレス反転/非反転信号BFadに従って、アドレス信号ADDがビット列ごとに反転または非反転されたアドレス信号である。
【0143】
このように、変換アドレス信号ADDXをアドレス復元回路6を介して通常のアドレス信号ADDに復元してからメモリ2Bに出力することによって、メモリ2Bでのアドレス指定時にアドレス復元回路を必要としない。そのため、メモリ2Bに既存のメモリを用いることが可能となる。
【0144】
図27は、この発明の実施の形態2によるデータ処理システム1Bの具体的な構成を示したブロック図である。
【0145】
図27を参照して、実施の形態2のデータ処理システム1Bは、メモリ&周辺回路2Baと、CPU3と、アドレス復元回路6とを備える。メモリ&周辺回路2Baは、図26のメモリ2Bに対応するが、メモリだけでなく周辺回路も含む。CPU3は、実施の形態1の図2と同じく、命令/データフェッチ部10と、命令デコード部20と、演算実行部30とを含む。命令/データフェッチ部10は、データストア部11と、アドレス変換回路12とを含む。
【0146】
アドレス復元回路6は、命令/データフェッチ部10のアドレス変換回路12から出力される変換アドレス信号ADDXおよびそれに対応するアドレス反転/非反転信号BFadを受けて変換前のアドレス信号ADDを復元する。メモリ&周辺回路2Baは、アドレス復元回路6から出力されるアドレス信号ADDに応じて、変換データ信号DX14およびそれに対応するデータ反転/非反転信号BF14を命令/データフェッチ部10に出力する。その他の回路動作は、実施の形態1のデータ処理システム1Aと同様なので、ここでは繰り返さない。
【0147】
演算実行部30の具体的な回路ブロック構成は、実施の形態1の図3〜13において説明したので、ここでは説明を繰り返さない。アドレス復元回路6の具体的な回路ブロック構成は、実施の形態1の図8で説明したように、データ復元回路32Xaのレジスタファイル信号の代わりに変換アドレス信号、データ反転/非反転信号の代わりにアドレス反転/非反転信号をそれぞれ用いることによって実現できる。アドレス信号をビット列ごとに反転/非反転する具体的な変換例は、実施の形態1の図14〜25において説明したデータ信号の場合と同様なので、ここでは説明を繰り返さない。
【0148】
実施の形態2では、メモリ&周辺回路2Baと命令/データフェッチ部10との間、および、命令/データフェッチ部10とアドレス復元回路6との間のバスの充放電が少なくなるため、これらによる消費電力の低減効果が生じる。
【0149】
以上のように、実施の形態2によれば、変換アドレス信号ADDXをアドレス復元回路6を介して通常のアドレス信号ADDに復元してからメモリ2Bに出力することによって、バスの充放電が少なくなる効果に加えて、メモリ2Bに既存のメモリを用いることができる。これにより、安価で低消費電力なデータ処理システムを構築することが可能となる。
【0150】
[実施の形態3]
図28は、この発明の実施の形態3によるデータ処理システム1Cを概略的に表わしたブロック図である。
【0151】
図28を参照して、実施の形態3のデータ処理システム1Cは、メモリ2Cと、CPU3Cと、データ変換・復元回路32とを備える。メモリ2Cとデータ変換・復元回路32との間では、データ反転/非反転信号BFおよび変換データ信号DXが互いに入出力される。変換・復元回路32とCPU3Cとの間では、データ信号DTが互いに入出力される。CPU3Cは、メモリ2Cにアドレス信号ADDを出力する。メモリ2Cとデータ変換・復元回路32との間のデータ反転/非反転信号BFおよび変換データ信号DXの転送は、少なくとも一部がバスを介して行なわれる。
【0152】
データ変換・復元回路32は、CPU3Cから出力されるデータ信号DTを変換データ信号DXに変換して、データ反転/非反転信号BFとともにメモリ2Cに出力する。変換データ信号DXは、データ反転/非反転信号BFに従って、データ信号DTがビット列ごとに反転または非反転されたデータ信号である。また、データ変換・復元回路32は、メモリ2Cから出力されるデータ反転/非反転信号BFを元に、変換データ信号DXからデータ信号DTを復元する。
【0153】
このように、メモリ2CとCPU3Cとの間にデータ変換・復元回路32を設けてCPU3Cには通常のデータ信号が入出力されるようにすることによって、CPU3Cにデータ変換回路およびデータ復元回路が必要なくなる。そのため、CPU3Cに既存のCPUを用いることが可能となる。また、CPU3Cからメモリ2Cに直接アドレス信号ADDを出力しているので、実施の形態2と同じく、メモリ2Cにも既存のメモリを用いることが可能である。
【0154】
図29は、図28のデータ変換・復元回路32の具体的な構成を示したブロック図である。
【0155】
図29を参照して、データ変換・復元回路32は、データ復元回路32Xと、データ変換回路32Yとを含む。データ復元回路32Xは、図28のメモリ2Cから出力される変換データ信号DX11およびそれに対応するデータ反転/非反転信号BF11を受けて変換前のデータ信号DT11を復元し、それを図28のCPU3Cに出力する。データ変換回路32Yは、図28のCPU3Cから出力されるデータ信号DT12を変換データ信号DX12に変換し、データ反転/非反転信号BF12とともに図28のメモリ2Cに出力する。
【0156】
データ復元回路32Xの具体的な回路ブロック構成は、実施の形態1の図8に示したデータ復元回路32Xaと同じである。データ変換回路32Yの具体的な回路ブロック構成は、実施の形態1の図9に示したのと同じである。データ信号をビット列ごとに反転/非反転する具体的な変換例は、実施の形態1の図14〜25において説明したので、ここでは説明を繰り返さない。
【0157】
実施の形態3では、メモリ&周辺回路2Baと変換・復元回路32との間のバスの充放電が少なくなるため、これによる消費電力の低減効果が生じる。
【0158】
以上のように、実施の形態3によれば、メモリ2CとCPU3Cとの間に変換・復元回路32を設けてCPU3Cには通常のデータ信号DTが互いに入出力されるようにすることによって、バスの充放電が少なくなる効果に加えて、CPU3Cに既存のCPUを用いることができる。これにより、安価で低消費電力なデータ処理システムを構築することが可能となる。
【0159】
[実施の形態4]
実施の形態1〜3では、データ処理システム1A〜1Cの少なくとも一部に用いられるバスとして、図4,5のバスPB1に示すようなプリチャージバスを想定していた。しかしながら、プリチャージバスというのは一例であって、他の形式のバスを用いることも可能である。以下では、他の形式のバスの一例として、トライステート出力バッファを有するバス(以下、トライステートバスとも称する)を例に説明する。
【0160】
図30は、この発明の実施の形態4によるバスTBの具体的な構成の一例を示した回路図である。以下では、実施の形態1のバスPB1の代わりにバスTBが用いられるとして説明するが、バスTBを実施の形態2,3に適用することも可能である。
【0161】
図30を参照して、バスTBは、トライステートバスであって、NANDゲート101と、NORゲート102と、インバータ103と、PチャネルMOSトランジスタ104と、NチャネルMOSトランジスタ105とを含む。図30では、図4,5と同じく、図3のレジスタファイル部31からデータ復元回路32Xaに出力される信号を一例として取り上げている。
【0162】
NANDゲート101は、図3のレジスタファイル部31から出力される変換データ信号DXaおよびデータ反転/非反転信号BFaと、インバータ103からの出力信号とを受ける。NORゲート102は、変換データ信号DXaおよびデータ反転/非反転信号BFaと、出力制御信号INHとを受ける。インバータ103は、出力制御信号INHを反転する。PチャネルMOSトランジスタ104(Tr104とも称す)は、電源ノードとトライステートノード(接続ノード)TsNとの間に接続され、ゲートにNANDゲート101の出力信号を受ける。NチャネルMOSトランジスタ105(Tr105とも称す)は、トライステートノードTsNと接地ノードとの間に接続され、ゲートにNORゲート102の出力信号を受ける。
【0163】
図31は、図30のバスTBの動作を示した図である。
【0164】
図31に示すように、出力制御信号INHがHレベルのとき、変換データ信号DXa(データ反転/非反転信号BFaを含む。以下同じ)がHレベルかLレベルかに関わらず、Tr104,105はともにオフとなる。このとき、トライステートノードTsNは高インピーダンス(Hi−Z)状態となり、バスTBは前回転送したデータを保持する。
【0165】
出力制御信号INHがLレベルのとき、トライステートノードTsNは変換データ信号DXaを転送する出力状態となる。出力制御信号INHがLレベルで変換データ信号DXaがHレベルのとき、Tr104はオンとなり、Tr105はオフとなる。このとき、トライステートノードTsNはHレベルとなる。出力制御信号INHがLレベルで変換データ信号DXaがLレベルのとき、Tr104はオフとなり、Tr105はオンとなる。このとき、トライステートノードTsNはLレベルとなる。
【0166】
このように、バスTBは、出力制御信号INHがLレベルのとき入力された変換データ信号DXaを転送し、出力制御信号INHがHレベルのとき前回転送したデータを保持する。バスTBは、出力制御信号INHの入力に応じてこれら2つの動作を繰り返す。
【0167】
図32は、図30のバスTBにおいてデータ信号を変換せずに転送する場合のデータ転送動作の一例を比較例として時系列的に示した図である。図32では、図6と同じく、転送されるデータ信号の電位レベルに着目しているため、バスTBにおけるデータ転送が正論理に従う場合であっても負論理に従う場合であっても成り立つ。
【0168】
図32を参照して、時刻t1において、バスTBは前回転送したデータのビットレベルを保持している。ここでは説明の便宜のため全てのビットレベルがHレベルであるとしているが、Hレベルの数が全体の半数以上であればHレベルがいくつであってもよい。時刻t2において、時刻t1の状態から2つのビットレベルをHレベルからLレベルに遷移させることにより、1回目のデータ転送が行なわれる。このとき、放電するビット数は2となる。
【0169】
時刻t3において、バスTBは前回(時刻t2)に転送したデータのビットレベルを保持している。時刻t4において、時刻t3の状態から3つのビットレベルをHレベルからLレベルに遷移させることにより、2回目のデータ転送が行なわれる。このとき、放電するビット数は3となる。
【0170】
以上のように、データ信号を変換せずに転送する図32のデータ転送動作において、放電するビット数は1回目と2回目とで計5となる。
【0171】
図33は、図30のバスTBにおいてデータ信号を変換して転送する場合のデータ転送動作の一例を時系列的に示した図である。図33では、図7と同じく、転送されるデータ信号の電位レベルに着目しているため、バスTBにおけるデータ転送が正論理に従う場合であっても負論理に従う場合であっても成り立つ。ここでは、説明を簡略化するために、データ反転/非反転信号は考慮しない。
【0172】
図33を参照して、時刻t1において、バスTBは前回転送したデータのビットレベルを保持している。全てのビットレベルがHレベルであるのは図32と同様の理由からであって、Hレベルの数が全体の半数以上であればHレベルがいくつであってもよい。時刻t2において、時刻t1の状態から2つのビットレベルをHレベルからLレベルに遷移させることにより、1回目のデータ転送が行なわれる。図32に示したように、1回目のデータ転送時において、HレベルからLレベルに遷移するデータビット数は遷移しないデータビット数より少ない。そのため、1回目のデータ転送時における変換データ信号は変換前のデータ信号と同一となり、放電するビット数は2となる。
【0173】
時刻t3において、バスTBは前回(時刻t2)に転送したデータのビットレベルを保持している。時刻t4において、時刻t3の状態からビットレベルをHレベルからLレベルに遷移させることなく、2回目のデータ転送が行なわれる。図32に示したように、2回目のデータ転送時において、Hレベルである全てのビットレベルがLレベルに遷移する。そのため、2回目のデータ転送時における変換データ信号は変換前のデータ信号を反転した信号となり、その結果、放電するビット数は0となる。
【0174】
以上のように、データ信号を変換して転送する図33のデータ転送動作において、放電するビット数は1回目と2回目とで計2となる。このように、図30のバスTBにおけるデータ転送時にデータ信号を変換して転送することにより、データ信号を変換しない場合と比べて消費電力に直接影響を与える、放電するビット数を減少させることが可能となる。
【0175】
実施の形態1〜3では、バスPB1がプリチャージバスであったため、プリチャージ動作時において全てのビットレベルがHレベルにプリチャージされることになる。しかし、実施の形態4のバスTBはトライステートバスであるため、このような限定は伴わない。図32,33では前回転送したデータの半数以上がHレベルの場合について説明したので、以下では前回転送したデータの半数以上がLレベルの場合について説明する。
【0176】
図34は、図30のバスTBにおいてデータ信号を変換せずに転送する場合のデータ転送動作の他の一例を比較例として時系列的に示した図である。
【0177】
図34を参照して、時刻t1において、バスTBは前回転送したデータのビットレベルを保持している。ここでは説明の便宜のため全てのビットレベルがLレベルであるとしているが、Lレベルの数が全体の半数以上であればLレベルがいくつであってもよい。時刻t2において、時刻t1の状態から3つのビットレベルをLレベルからHレベルに遷移させることにより、1回目のデータ転送が行なわれる。このとき、HレベルからLレベルに遷移するデータビットはないため、放電するビット数は0となる。
【0178】
時刻t3において、バスTBは前回(時刻t2)に転送したデータのビットレベルを保持している。時刻t4において、時刻t3の状態から3つのビットレベルをHレベルからLレベルに遷移させることにより、2回目のデータ転送が行なわれる。このとき、放電するビット数は3となる。
【0179】
以上のように、データ信号を変換せずに転送する図32のデータ転送動作において、放電するビット数は1回目と2回目とで計3となる。
【0180】
図35は、図30のバスTBにおいてデータ信号を変換して転送する場合のデータ転送動作の一例を時系列的に示した図である。ここでは、説明を簡略化するために、データ反転/非反転信号は考慮しない。
【0181】
図35を参照して、時刻t1において、バスTBは前回転送したデータのビットレベルを保持している。全てのビットレベルがLレベルであるのは図34と同様の理由からであって、Lレベルの数が全体の半数以上であればLレベルがいくつであってもよい。時刻t2において、時刻t1の状態から3つのビットレベルをLレベルからHレベルに遷移させることにより、1回目のデータ転送が行なわれる。図34において示したように、1回目のデータ転送時において、HレベルからLレベルに遷移するデータビットはない。そのため、そのため、1回目のデータ転送時における変換データ信号は変換前のデータ信号と同一となり、放電するビット数は0となる。
【0182】
時刻t3において、バスTBは前回(時刻t2)に転送したデータのビットレベルを保持している。時刻t4において、時刻t3の状態からビットレベルをHレベルからLレベルに遷移させることなく、2回目のデータ転送が行なわれる。図34において示したように、2回目のデータ転送時において、HレベルからLレベルに遷移するデータビット数は遷移しないデータビット数より多い。そのため、2回目のデータ転送時における変換データ信号は変換前のデータ信号を反転した信号となり、その結果、放電するビット数は0となる。
【0183】
以上のように、データ信号を変換して転送する図35のデータ転送動作において、放電するビット数は1回目と2回目とで計0となる。このように、図30のバスTBにおけるデータ転送時にデータ信号を変換して転送することにより、前回転送したデータのHレベルの数が全体に対して多いか少ないかに関わらず、データ信号を変換しない場合と比べて消費電力に直接影響を与える、放電するビット数を減少させることが可能となる。
【0184】
以上のように、実施の形態4によれば、実施の形態1〜3でのプリチャージバスPB1の代わりにトライステートバスTBを用いることによって、前回転送したデータのHレベルの数が全体に対して多いか少ないかに関わらず、バス上でのデータ転送時における消費電力を低減することができる。
【0185】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【0186】
【図1】この発明の実施の形態1によるデータ処理システム1Aを概略的に表わしたブロック図である。
【図2】この発明の実施の形態1によるデータ処理システム1Aの具体的な構成を示したブロック図である。
【図3】図2の演算実行部30の具体的な構成を示したブロック図である。
【図4】図3のバスPB1の具体的な構成の一例であるバスPB1pの構成を示した回路図である。
【図5】図3のバスPB1の具体的な構成の他の一例であるバスPB1nの構成を示した回路図である。
【図6】図3のバスPB1においてデータ信号を変換せずに転送する場合のデータ転送動作の一例を比較例として時系列的に示した図である。
【図7】図3のバスPB1において図6のデータ信号を変換して転送する場合のデータ転送動作の一例を時系列的に示した図である。
【図8】図3のデータ復元回路32Xaの具体的な構成の一例を示した回路ブロック図である。
【図9】図3のデータ変換回路32Yの具体的な構成の一例を示した回路ブロック図である。
【図10】図9の反転/非反転信号生成回路81の具体的な構成の一例を示した回路図である。
【図11】図10の半加算器810a〜810dを代表する半加算器810の具体的な構成の一例を示した回路図である。
【図12】1ビットの全加算器815の構成の一例を示した回路ブロック図である。
【図13】図10の全加算器820a,820bを代表する2ビットの全加算器820の構成の一例を示した回路ブロック図である。
【図14】データ処理システム1Aにおけるデータ転送が正論理に従う場合のデータ信号の具体的な変換例を示した図である。
【図15】データ処理システム1Aにおけるデータ転送が正論理に従う場合のデータ信号の他の具体的な変換例を示した図である。
【図16】データ処理システム1Aにおけるデータ転送が正論理に従う場合のデータ信号のさらに他の具体的な変換例を示した図である。
【図17】データ処理システム1Aにおけるデータ転送が正論理に従う場合のデータ信号の変換動作を示したフロー図である。
【図18】データ処理システム1Aにおけるデータ転送が負論理に従う場合のデータ信号の具体的な変換例を示した図である。
【図19】データ処理システム1Aにおけるデータ転送が負論理に従う場合のデータ信号の他の具体的な変換例を示した図である。
【図20】データ処理システム1Aにおけるデータ転送が正論理に従う場合のデータ信号のさらに他の具体的な変換例を示した図である。
【図21】データ処理システム1Aにおけるデータ転送が負論理に従う場合のデータ信号の変換動作を示したフロー図である。
【図22】データ信号に対するデータ反転/非反転信号の他の挿入位置の例を示した図である。
【図23】データ信号に対するデータ反転/非反転信号の他の挿入位置の例を示した図である。
【図24】データ信号に対するデータ反転/非反転信号の他の挿入位置の例を示した図である。
【図25】データ信号に対するデータ反転/非反転信号の他の挿入位置の例を示した図である。
【図26】この発明の実施の形態2によるデータ処理システム1Bを概略的に表わしたブロック図である。
【図27】この発明の実施の形態2によるデータ処理システム1Bの具体的な構成を示したブロック図である。
【図28】この発明の実施の形態3によるデータ処理システム1Cを概略的に表わしたブロック図である。
【図29】図28のデータ変換・復元回路32の具体的な構成を示したブロック図である。
【図30】この発明の実施の形態4によるバスTBの具体的な構成の一例を示した回路図である。
【図31】図30のバスTBの動作を示した図である。
【図32】図30のバスTBにおいてデータ信号を変換せずに転送する場合のデータ転送動作の一例を比較例として時系列的に示した図である。
【図33】図30のバスTBにおいてデータ信号を変換して転送する場合のデータ転送動作の一例を時系列的に示した図である。
【図34】図30のバスTBにおいてデータ信号を変換せずに転送する場合のデータ転送動作の他の一例を比較例として時系列的に示した図である。
【図35】図30のバスTBにおいてデータ信号を変換して転送する場合のデータ転送動作の一例を時系列的に示した図である。
【符号の説明】
【0187】
1A,1B,1C データ処理システム、2,2B,2C メモリ、2a,2Ba,2Ca メモリ&周辺回路、3,3C CPU、6 アドレス復元回路、10,10C 命令/データフェッチ部、11 データストア部、12 アドレス変換回路、20,20C 命令デコード部、30,30C 演算実行部、31 レジスタファイル部、32 データ復元・変換回路、32X,32Xa,32Xb データ復元回路、32Y データ変換回路、35 演算器、PB1,PB1p,PB1n,PB2,TB バス、51,53,104 PチャネルMOSトランジスタ、52,56,105 NチャネルMOSトランジスタ、54,72,82_k インバータ、73,83_k セレクタ、81 反転/非反転信号生成回路、101 NANDゲート、102 NORゲート、810,815,816,817 半加算器、811 XORゲート、812 ANDゲート、818 ORゲート、820,820a,820b,830 全加算器、840 比較値格納部、850 比較回路。
【技術分野】
【0001】
この発明は、データ処理装置、データ処理システム、およびデータ処理方法に関し、特に、データ処理された信号をバスを介して転送するデータ処理装置、データ処理システム、およびデータ処理方法に関する。
【背景技術】
【0002】
データ処理装置の命令フォーマットまたはデータ等に処理を施すことによって消費電力の低減を図る技術の研究開発が進められている。
【0003】
特許文献1に開示された従来のデータ変換回路は、ストレートバイナリ形式のデータを所定形式のデータに変換するデータ変換回路を備える。当該データ変換回路は、ストレートバイナリ形式のデータのうち最上位ビットが「1」であるものについて、当該データの最上位ビット以外のビットを反転する。このような所定形式への変換により、反転するビットの数が少なくなるので、消費電力が低減される。
【0004】
特許文献2に開示された従来のデータ処理装置は、データ書込み時に「0」の数と「1」の数とを検出し、「0」の数が少ない場合には、反転したデータを書込むとともに、反転したかどうかのフラグ情報も書込む。読出し時には、当該フラグ情報に応じてデータを反転する。これにより、メモリセルに保持されているデータを反転させる頻度が少なくなるため、データ書込み時における消費電力が低減される。
【特許文献1】特開2003−101415号公報
【特許文献2】特開2002−366419号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
特許文献1のデータ変換回路は、音声データや色成分データのような「0」を中心として正側および負側に変動するデータの変換に関して、「0000 0000」から「1111 1111」、またはその逆のデータを頻繁に入出力する場合の問題点を解決するために考案されたものである。つまり、特許文献1のデータ変換回路は、連続性のあるデータに対して消費電力を削減するものであって、たとえばランダムなデータに対しては全く効果がなく、かえって消費電力が増大する可能性がある。
【0006】
特許文献2のデータ処理装置は、メモリとシステムバスとの間にデータ変換部を設けることで、ランダムアクセスメモリの書込み時における消費電力を削減することを目的としたものである。つまり、特許文献2のデータ処理装置は、メモリアクセス時のメモリの消費電力を削減するものであって、システム全体を考えると消費電力削減の効果は低いという問題を有する。
【0007】
それゆえに、この発明の目的は、システム全体で消費電力削減の効果が高いデータ処理装置、データ処理システム、およびデータ処理方法を提供することである。
【課題を解決するための手段】
【0008】
この発明のある局面によるデータ処理装置は、複数ビットのデータを転送するバスと、バスを介して転送する入力信号を受け、入力信号の所定数のビットの論理を、反転/非反転信号と所定数のビットとにおける第1の論理の数が第2の論理の数以上となるように反転または非反転して変換信号を生成し、かつ変換信号の所定数のビットの反転または非反転を示す反転/非反転信号を生成し、変換信号および反転/非反転信号をバスに出力する変換回路とを備える。
【0009】
この発明の他の局面によるデータ処理システムは、複数ビットのデータを転送するバスと、バスを介して転送する入力信号を受け、入力信号の所定数のビットの論理を、反転/非反転信号と所定数のビットとにおける第1の論理の数が第2の論理の数以上となるように反転または非反転して変換信号を生成し、かつ変換信号の所定数のビットの反転または非反転を示す反転/非反転信号を生成し、変換信号および反転/非反転信号をバスに出力する変換回路を含む処理部と、バスを介して転送された変換信号および反転/非反転信号を受けるメモリ部とを備える。
【0010】
この発明のさらに他の局面によるデータ処理方法は、バスを介して転送すべき入力信号を変換するデータ変換方法であって、入力信号の所定数のビット論理を、反転/非反転信号と所定数のビットとにおける第1の論理の数が第2の論理の数以上となるように反転または非反転して変換信号を生成するステップと、変換信号の所定数のビットの反転または非反転を示す反転/非反転信号を生成するステップと、変換信号および反転/非反転信号をバスに出力するステップとを備える。
【発明の効果】
【0011】
この発明によれば、システム全体で消費電力削減の効果が高くなる。
【発明を実施するための最良の形態】
【0012】
以下、この発明の実施の形態について図面を参照して詳しく説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【0013】
[実施の形態1]
図1は、この発明の実施の形態1によるデータ処理システム1Aを概略的に表わしたブロック図である。
【0014】
図1を参照して、実施の形態1のデータ処理システム1Aは、メモリ2と、CPU(Central Processing Unit)3とを備える。メモリ2とCPU3との間では、変換データ信号DXおよびそれに対応するデータ反転/非反転信号BF、ならびに、変換アドレス信号ADDXおよびそれに対応するアドレス反転/非反転信号BFadが互いに入出力される。メモリ2とCPU3との間の上記信号の転送は、少なくとも一部がバスを介して行なわれる。
【0015】
データ反転/非反転信号BFは、1ビットまたは複数ビットからなり、データ転送論理に応じて変換データ信号DXとビット反転信号BFとの合計の「1」または「0」の出現率が同じかまたは高くなるようにデータ信号DT(図1では明示せず)のビット列ごとの反転/非反転を示した信号である。アドレス反転/非反転信号BFadは、1ビットまたは複数ビットからなり、データ転送論理に応じて変換アドレス信号ADDXとアドレス反転/非反転信号BFadとの合計の「1」または「0」の出現率が同じかまたは高くなるようにアドレス信号ADD(図1では明示せず)のビット列ごとの反転/非反転を示した信号である。
【0016】
データ信号DTおよびアドレス信号ADDの「1」または「0」のどちらの出現率を高めるかは、データ処理システム1Aにおけるデータ転送が負論理に従うか正論理に従うかによって決めることができる。変換データ信号DXは、データ反転/非反転信号BFに従って、データ信号DTがビット列ごとに反転または非反転されたデータ信号である。変換アドレス信号ADDXは、アドレス反転/非反転信号BFadに従って、アドレス信号ADDがビット列ごとに反転または非反転されたアドレス信号である。
【0017】
データ処理システム1Aにおけるデータ転送が正論理に従う場合、すなわち、データ転送時においてデータ信号の「1」が回路のHレベル(高レベル)に対応する場合、変換データ信号DXは、「1」の出現率が増加するようにビット列ごとに反転または非反転されている。当該変換データ信号DXをデータ処理システム1Aにおけるバスを介して転送することによって、正論理において「0」に遷移するビット数を削減することができる。これにより、データ処理システム1Aの消費電力を低減することができる。これは、データ信号の代わりにたとえばアドレス信号を用いても同じである。
【0018】
データ処理システム1Aにおけるデータ転送が負論理に従う場合、すなわち、データ転送時においてデータ信号の「1」が回路のLレベル(低レベル)に対応する場合、変換データ信号DXは、「0」の出現率が増加するようにビット列ごとに反転または非反転されている。当該変換データ信号DXをデータ処理システム1Aにおけるバスを介して転送することによって、負論理において「1」に遷移するビット数を削減することができる。これにより、データ処理システム1Aの消費電力を低減することができる。これは、データ信号の代わりにたとえばアドレス信号を用いても同じである。
【0019】
以下、データ処理システム1Aの具体的な構成の一例について説明する。
【0020】
図2は、この発明の実施の形態1によるデータ処理システム1Aの具体的な構成を示したブロック図である。
【0021】
図2を参照して、実施の形態1のデータ処理システム1Aは、メモリ&周辺回路2aと、CPU3とを備える。メモリ&周辺回路2aは、図1のメモリ2に対応し、アドレス復元回路6を含む。CPU3は、命令/データフェッチ部10と、命令デコード部20と、演算実行部30とを含む。命令/データフェッチ部10は、データストア部11と、アドレス変換回路12とを含む。
【0022】
メモリ&周辺回路2aは、データ書込時、命令/データフェッチ部10のデータストア部11から出力される変換データ信号DX13およびそれに対応するデータ反転/非反転信号BF13を受ける。メモリ&周辺回路2aは、変換データ信号DX13およびデータ反転/非反転信号BF13を受けて、アドレス信号ADD(図2では明示せず)に変換データ信号DX13およびデータ反転/非反転信号BF13を書き込む。
【0023】
データ読出時、メモリ&周辺回路2aに含まれるアドレス復元回路6は、命令/データフェッチ部10のアドレス変換回路12から出力される変換アドレス信号ADDXおよびそれに対応するアドレス反転/非反転信号BFadを受けて、変換前のアドレス信号ADDを復元する。その後、メモリ&周辺回路2aは、当該アドレス信号ADDに応じてアドレス信号ADDからデータ反転/非反転信号BF14および変換データ信号DX14を読み出し、変換データ信号DX14およびそれに対応するデータ反転/非反転信号BF14を命令/データフェッチ部10に出力する。
【0024】
変換データ信号DX14は、変換オペランド信号OPXおよび変換データ信号DX11の少なくとも一方を含む。データ反転/非反転信号BF14は、変換データ信号DX14に対応して、オペランド反転/非反転信号BFopおよびデータ反転/非反転信号BF11の少なくとも一方を含む。1ビットのデータ反転/非反転信号BF14からオペランド反転/非反転信号BFopおよびデータ反転/非反転信号BF11の両方を生成する場合、命令/データフェッチ部10は、データ反転/非反転信号BF14を複製する。これにより、オペランド反転/非反転信号BFopおよびデータ反転/非反転信号BF11は、ともにデータ反転/非反転信号BF14と同じ値となる。
【0025】
命令/データフェッチ部10は、変換データ信号DX14に含まれる変換オペランド信号OPX、およびそれに対応するオペランド反転/非反転信号BFopを、命令デコード部20に出力する。命令デコード部20は、当該変換オペランド信号OPXおよびそれに対応するオペランド反転/非反転信号BFopをデコードし、そのデコード内容に基づいた制御信号CTRを演算実行部30に出力する。
【0026】
また、命令/データフェッチ部10は、変換データ信号DX14に含まれる変換データ信号DX11、およびそれに対応するデータ反転/非反転信号BF11を、演算実行部30に出力する。演算実行部30は、データ反転/非反転信号BF11に基づいて変換データ信号DX11を変換前のデータ信号に復元し、制御信号CTRに応じて当該変換前のデータ信号に演算を施す。演算実行部30は、制御信号CTRに応じて演算を施されたデータ信号を再び変換し、当該変換データ信号DX12およびそれに対応するデータ反転/非反転信号BF12を命令/データフェッチ部10に出力する。変換データ信号DX12は、変換データ信号DX13または変換アドレス信号ADDの少なくとも一方を含む。
【0027】
図3は、図2の演算実行部30の具体的な構成を示したブロック図である。図3を参照して、演算実行部30は、レジスタファイル部31と、データ復元回路32Xa,32Xbと、データ変換回路32Yと、演算器35と、バスPB1,PB2とを含む。バスPB1,PB2は、プリチャージバスである。データ復元回路32Xa,32Xbおよびデータ変換回路32Yは、以下に述べるデータ信号の変換による効果を高めるため、配線負荷の大きいところに設けられるのが好ましい。なお、バスPB1とバスPB2とは、同一のバスであっても構わない。
【0028】
レジスタファイル部31は、図2の制御信号CTRを受けて、データ復元回路32Xaにレジスタファイル信号DXaを、データ復元回路32Xbにレジスタファイル信号DXbを、バスPB1を介してそれぞれ出力する。
【0029】
レジスタファイル信号DXa,DXbは、それぞれ、図2の変換データ信号DX14の一部を構成する信号であり、たとえば、変換データ信号DX14をビット列ごとに分割した信号である。なお、レジスタファイル信号DXa,DXbの一方または両方は、図2の変換データ信号DX11と同じデータを意味する。ここでは、演算実行部30内における当該データを「DXa,DXb」と呼び、演算実行部30外では「DX11」と呼ぶ。また、レジスタファイル部31は、図2の制御信号CTRを受けて、データ復元回路32Xa,32Xbの各々にバスPB1を介してデータ反転/非反転信号BFa,BFbを出力する。
【0030】
データ復元回路32Xaは、データ反転/非反転信号BFaを元に、レジスタファイル信号DXaからデータ信号Daを復元する。データ復元回路32Xbは、データ反転/非反転信号BFbを元に、レジスタファイル信号DXbからデータ信号Dbを復元する。演算器35は、データ信号Da,Dbを受けて、図2の制御信号CTRに含まれる演算命令(オペランドコード)を実行し、演算結果をデータ信号Dcとして出力する。
【0031】
データ変換回路32Yは、反転/非反転信号生成回路(図3では図示せず)を用いて、データ信号Dcからデータ反転/非反転信号BFcを生成する。データ変換回路32Yは、データ反転/非反転信号BFcに従ってデータ信号Dcをビット列ごとに反転または非反転し、生成された変換データ信号DXcを、バスPB2を介して、レジスタファイル部31等に出力する。なお、変換データ信号DXcは、図2の変換データ信号DX12と同じデータを意味する。ここでは、データ変換回路32Yからレジスタファイル部31に出力される信号を変換データ信号DXcと呼び、レジスタファイル部31から図2の命令/データフェッチ部10に出力される信号を変換データ信号DX12と呼ぶ。
【0032】
また、データ変換回路32Yは、レジスタファイル部31等にバスPB2を介してデータ反転/非反転信号BFcを出力する。なお、データ反転/非反転信号BFcは、図2のデータ反転/非反転信号BF12と同じデータを意味する。ここでは、データ変換回路32Yからレジスタファイル部31に出力される信号をデータ反転/非反転信号BFcと呼び、レジスタファイル部31から図2の命令/データフェッチ部10に出力される信号をデータ反転/非反転信号BF12と呼ぶ。
【0033】
図4は、図3のバスPB1の具体的な構成の一例であるバスPB1pの構成を示した回路図である。なお、以下の図4の説明は、バスPB1に限らず、データ処理システム1Aのローカルバス、システムバスなどあらゆるバスに対して適用可能である。
【0034】
図4を参照して、バスPB1は、プリチャージバスであって、PチャネルMOSトランジスタ51,53と、NチャネルMOSトランジスタ52,56と、インバータ54,55とを含む。図4では、レジスタファイル部31からデータ復元回路32Xaに出力される信号を一例として取り上げている。
【0035】
PチャネルMOSトランジスタ51は、電源ノードとプリチャージノードPrNとの間に接続され、ゲートにクロック信号/CLKを受ける。これにより、クロック信号/CLKがLレベルのとき、プリチャージノードPrNは電源電圧(Hレベル)にプリチャージされる。なお、クロック信号/CLKは、その反転信号であるクロック信号CLKであってもよい。これは、次の図5でも同様である。
【0036】
NチャネルMOSトランジスタ52は、プリチャージノードPrNと第1ノードNDとの間に接続され、ゲートにインバータ55を介して図3のレジスタファイル部31から出力される変換データ信号DXaおよびデータ反転/非反転信号BFaを受ける。NチャネルMOSトランジスタ56は、第1ノードNDと接地ノードとの間に接続され、ゲートにクロック信号/CLKを受ける。以下、図4の説明において、変換データ信号DXaといえば、特に分けて記載しない限りデータ反転/非反転信号BFaを含むものとする。
【0037】
PチャネルMOSトランジスタ53は、電源ノードとプリチャージノードPrNとの間に接続されている。インバータ54は、入力端子がプリチャージノードPrNに接続され、出力端子がPチャネルMOSトランジスタ53のゲートに接続されている。インバータ54の出力端子は、図3のデータ復元回路32Xa,32Xbに接続されている。
【0038】
次に、クロック信号/CLKがHレベルのときについて説明する。まず、バスPB1におけるデータ転送が正論理に従う場合、すなわち、バスPB1の回路構成が図4のバスPB1pに対応する場合について考える。
【0039】
この場合、変換データ信号DXが「1」すなわちHレベルのとき、NチャネルMOSトランジスタ52は反転された変換データ信号DXaの入力を受けてオフとなる。このとき、プリチャージノードPrNは放電(ディスチャージ)しない。したがって、バスPB1におけるデータ転送が正論理に従う場合、「1」の出現率が増加するようにデータ信号の各ビット列を反転または非反転した変換データ信号DXaをバスPB1上で転送することによって、変換データ信号DXaの「0」のビット数を削減することができる。
【0040】
これにより、プリチャージノードPrNにおける放電回数が減り、バスPB1におけるデータ転送時の消費電力を低減することができる。また、前述のように、図4に示したバスPB1の構成は、図2のデータ処理システム1Aにおけるあらゆるバスに対して適用可能である。そのため、実施の形態1では、図2のたとえばメモリ&周辺回路2aと命令/データフェッチ部10との間のバスにおいても充放電が少なくなり、これによる消費電力の低減効果が生じる。
【0041】
データ反転/非反転信号BFaは、バスPB1におけるデータ転送が正論理に従う場合には、変換データ信号DXaとビット反転信号BFaとの合計の「1」の出現率が高くなるようにデータ信号のビット列ごとの反転/非反転を示した信号である。このような出現率の決め方に従う限り、データ反転/非反転信号BFaは、データ信号の反転時に「1」、非反転時に「0」と定義してもよいし、データ信号の反転時に「0」、非反転時に「1」と定義してもよい。
【0042】
次に、バスPB1におけるデータ転送が負論理に従う場合、すなわち、バスPB1の回路構成が以下で説明するバスPB1nに対応する場合について考える。
【0043】
図5は、図3のバスPB1の具体的な構成の他の一例であるバスPB1nの構成を示した回路図である。図5は、バスPB1におけるデータ転送が負論理に従うことに合わせてインバータ55が取り除かれた点においてのみ図4と異なる。したがって、図4と重複する部分の説明は、ここでは繰り返さない。
【0044】
図5において、クロック信号/CLKがHレベルでかつ変換データ信号DXaが「0」すなわちLレベルのとき、NチャネルMOSトランジスタ52は変換データ信号DXaの入力を受けてオフとなる。このとき、プリチャージノードPrNは放電しない。したがって、バスPB1におけるデータ転送が負論理に従う場合、「0」の出現率が増加するようにデータ信号の各ビット列を反転または非反転した変換データ信号DXaをバスPB1上で転送することによって、変換データ信号DXaの「1」のビット数を削減することができる。
【0045】
これにより、プリチャージノードPrNにおける放電回数が減り、バスPB1におけるデータ転送時の消費電力を低減することができる。また、前述のように、図4に示したバスPB1の構成は、図2のデータ処理システム1Aにおけるあらゆるバスに対して適用可能である。そのため、実施の形態1では、図2のたとえばメモリ&周辺回路2aと命令/データフェッチ部10との間のバスにおいても充放電が少なくなり、これによる消費電力の低減効果が生じる。
【0046】
データ反転/非反転信号BFaは、バスPB1におけるデータ転送が負論理に従う場合には、変換データ信号DXaとビット反転信号BFaとの合計の「0」の出現率が高くなるようにデータ信号のビット列ごとの反転/非反転を示した信号である。このような出現率の決め方に従う限り、データ反転/非反転信号BFaは、データ信号の反転時に「1」、非反転時に「0」と定義してもよいし、データ信号の反転時に「0」、非反転時に「1」と定義してもよい。
【0047】
図6は、図3のバスPB1においてデータ信号を変換せずに転送する場合のデータ転送動作の一例を比較例として時系列的に示した図である。図6では転送されるデータ信号の電位レベルに着目しているため、バスPB1におけるデータ転送が正論理に従う場合であっても負論理に従う場合であっても成り立つ。ここでは、説明を簡略化するために、データ反転/非反転信号は考慮しない。
【0048】
図6を参照して、時刻t1において、バスPB1における各ビットレベルが全てHレベルにプリチャージされる。時刻t2において、時刻t1の状態から2つのビットレベルをHレベルからLレベルに遷移させることにより、1回目のデータ転送が行なわれる。このとき、放電するビット数は2となる。
【0049】
時刻t3において、バスPB1における各ビットレベルが再び全てHレベルにプリチャージされる。時刻t4において、時刻t3の状態から4つのビットレベルをHレベルからLレベルに遷移させることにより、2回目のデータ転送が行なわれる。このとき、放電するビット数は4となる。
【0050】
以上のように、データ信号を変換せずに転送する図6のデータ転送動作において、放電するビット数は1回目と2回目とで計6となる。
【0051】
図7は、図3のバスPB1において図6のデータ信号を変換して転送する場合のデータ転送動作の一例を時系列的に示した図である。図7では転送される変換データ信号の電位レベルに着目しているため、バスPB1におけるデータ転送が正論理に従う場合であっても負論理に従う場合であっても成り立つ。
【0052】
図7を参照して、時刻t1において、バスPB1における各ビットレベルが全てHレベルにプリチャージされる。時刻t2において、時刻t1の状態から2つのビットレベルをHレベルからLレベルに遷移させることにより、1回目のデータ転送が行なわれる。図6において示したように、1回目のデータ転送時において、HレベルからLレベルに遷移するデータビット数は遷移しないデータビット数より少ない。そのため、1回目のデータ転送時における変換データ信号は変換前のデータ信号と同一となり、放電するビット数は2となる。
【0053】
時刻t3において、バスPB1における各ビットレベルが再び全てHレベルにプリチャージされる。時刻t4において、時刻t3の状態から1つのビットレベルをHレベルからLレベルに遷移させることにより、2回目のデータ転送が行なわれる。図6において示したように、2回目のデータ転送時において、HレベルからLレベルに遷移するデータビット数は遷移しないデータビット数より多い。そのため、2回目のデータ転送時における変換データ信号は変換前のデータ信号を反転した信号となり、その結果、放電するビット数は1となる。
【0054】
以上のように、データ信号を変換して転送する図7のデータ転送動作において、放電するビット数は1回目と2回目とで計3となる。このように、図3のバスPB1におけるデータ転送時にデータ信号を変換して転送することにより、データ信号を変換しない場合と比べて消費電力に直接影響を与える、放電するビット数を減少させることが可能となる。
【0055】
図8は、図3のデータ復元回路32Xaの具体的な構成の一例を示した回路ブロック図である。なお、データ復元回路32Xbも同様の回路構成を有する。
【0056】
図8を参照して、データ復元回路32Xaは、インバータ72と、セレクタ73とを含む。インバータ72は、レジスタファイル信号DXaを反転する。セレクタ73は、データ反転/非反転信号BFaに応じて、ビット列ごとにレジスタファイル信号DXaおよびその反転信号のいずれか一方を選択する。これにより、レジスタファイル信号DXaからデータ信号Daが復元される。
【0057】
上記のように、データ復元回路32Xa,32Xbは、レジスタファイル信号(変換データ信号)からデータ信号を復元するものであるが、レジスタファイル信号の代わりに変換アドレス信号、データ反転/非反転信号の代わりにアドレス反転/非反転信号をそれぞれ用いることによって、同様の回路構成で、アドレス復元回路6(図2参照)を実現することができる。
【0058】
図9は、図3のデータ変換回路32Yの具体的な構成の一例を示した回路ブロック図である。
【0059】
図9を参照して、データ変換回路32Yは、反転/非反転信号生成回路81と、インバータ82_kと、セレクタ83_kとを含む(k=1〜8)。反転/非反転信号生成回路81は、データ信号Dcがビット列ごとに分割されたデータ信号Dk(k=1〜8)を受けて、それぞれ「0」が多いか「1」が多いかを判定する。当該判定結果を元に、データ反転/非反転信号BFcが生成される。
【0060】
インバータ82_kは、データ信号Dkを反転する。セレクタ83_kは、データ反転/非反転信号BF2に応じて、データ信号Dkおよびその反転信号のいずれか一方を選択する。これにより、データ信号Dkから変換データ信号DXk(k=0〜8)が生成される。変換データ信号DXkを連結して、図3の変換データ信号DXcが生成される。
【0061】
反転/非反転信号生成回路81は、具体的には、次のようにして判定を行なう。すなわち、反転/非反転信号生成回路81は、自身の判定結果に応じて生成される反転/非反転信号BFcと変換データ信号DXkとの合計の「0」および「1」の数を推定し、その推定値において「0」が多いか「1」が多いかを判定する。
【0062】
なお、当該推定値の「0」の数と「1」の数とが等しくなった場合には、データ信号Dkを反転すると判定しても反転しないと判定しても、反転/非反転信号BFcと変換データ信号DXkとの合計の「0」の数と「1」の数とは当然同じになる。この場合、データ信号Dkを反転しないと判定するように設定しておけば、データ復元時に変換データ信号DXkを再反転する必要がない分だけ、図3のデータ復元回路32Xa,32Xbの動作を軽減することができる。これにより、実施の形態1のデータ処理システム1Aの消費電力が低減される。
【0063】
上記のように、データ変換回路32Yは、データ信号を変換データ信号に変換するものであるが、データ信号の代わりにアドレス信号を用いることによって、同様の回路構成で、アドレス変換回路12(図2参照)を実現することができる。
【0064】
図10は、図9の反転/非反転信号生成回路81の具体的な構成の一例を示した回路図である。
【0065】
図10を参照して、反転/非反転信号生成回路81は、半加算器(HA:Half Adder)810a〜810dと、全加算器(FA:Full Adder)820a,820b,830と、比較値格納部840と、比較回路850とを含む。
【0066】
なお、図10の反転/非反転信号生成回路81は、図3のバスPB1,PB2におけるビット数が8ビット(1バイト)の場合の回路構成である。しかし、バスPB1,PB2のビット数がたとえば16ビット,32ビットであっても、全加算器の数を増やすことによって、同様に反転/非反転信号生成回路を構成することが可能である。また、データ信号D1〜D8は、図9のデータ信号Dk(k=1〜8)に対応する。
【0067】
半加算器810a〜810dは、それぞれ、2つの1ビットデータを入力して加算し、2ビットのデータとして出力する。全加算器820a,820bは、それぞれ、2つの2ビットデータを入力して加算し、3ビットのデータとして出力する。全加算器830は、2つの3ビットデータを入力して加算し、4ビットのデータとして出力する。
【0068】
比較値格納部840は、データ反転/非反転信号BFcを決定する際に使用される比較値CPを予め格納している。8ビット単位における「1」の数が5以上でビット列を反転する設定の場合、比較値格納部840に格納される比較値CPは「0101(10進数で5)」、「0110(10進数で6)」、「0111(10進数で7)」および「1000(10進数で8)」となる。比較値CPを調整することによって、バスPB1におけるデータ転送が正論理に従うか負論理に従うか、あるいは、データ反転/非反転信号をデータ反転時に「1」と定義するか「0」と定義するか、といった種々の場合に対応することができる。
【0069】
比較回路850は、全加算器830から出力される4ビットのデータと、比較値格納部840から出力される比較値CPとの一致を判定する。全加算器830から出力される4ビットデータと比較値CPとが一致すれば、比較回路850は、データ反転/非反転信号BFcを「1」として出力する。一致しなければ、比較回路850は、データ反転/非反転信号BFcを「0」として出力する。
【0070】
図11は、図10の半加算器810a〜810dを代表する半加算器810の具体的な構成の一例を示した回路図である。
【0071】
図11を参照して、半加算器810は、XORゲート811と、ANDゲート812とを含む。データ信号Dx,Dyは、図10のデータ信号D1〜D8からなる複数の対のいずれかである。XORゲート811は、データ信号Dx,Dyを入力し、和信号Sおよび桁上げ信号Cを出力する。
【0072】
図12は、1ビットの全加算器815の構成の一例を示した回路ブロック図である。
【0073】
図12を参照して、1ビットの全加算器815は、半加算器816,817と、ORゲート818とを含む。半加算器816は、入力信号Bおよび桁上げ信号CINを入力し、和信号Sbおよび桁上げ信号Cbを出力する。半加算器817は、入力信号Aおよび和信号Sbを入力し、和信号Sおよび桁上げ信号Caを出力する。ORゲート818は、桁上げ信号Ca,Cbを入力し、桁上げ信号COUTを出力する。すなわち、1ビットの加算器815は、全体として見れば、入力信号A,Bおよび(下位からの)桁上げ信号CINを入力し、和信号Sおよび桁上げ信号COUTを出力する。
【0074】
図13は、図10の全加算器820a,820bを代表する2ビットの全加算器820の構成の一例を示した回路ブロック図である。
【0075】
図13に示すように、2ビットの全加算器820は、図12で説明した1ビットの全加算器815を2つ連結した構成を有する。具体的には、全加算器815aの桁上げ出力端子COUTが全加算器815bの桁上げ入力端子CINに接続されている。
【0076】
全加算器815aは、入力信号A1,B1を入力して、和信号S1を出力する。全加算器815aの桁上げ入力端子CINは接地されている。全加算器815bは、入力信号A2,B2および全加算器815aからの桁上げ信号を入力して、和信号S2および桁上げ信号COUTを出力する。すなわち、2ビットの加算器820は、全体として見れば、入力信号A1,A2,B1,B2を入力し、和信号S1,S2および桁上げ信号COUTを出力する。
【0077】
次に、データ信号をビット列ごとに反転/非反転する具体的な変換例について、データ処理システム1Aにおけるデータ転送が正論理に従う場合と負論理に従う場合とに分けて説明する。
【0078】
図14は、データ処理システム1Aにおけるデータ転送が正論理に従う場合のデータ信号の具体的な変換例を示した図である。図14において、(A1)は変換前のデータ信号DT1、(A2)は変換データ信号DX1をそれぞれ表わす。
【0079】
図14(A1)のデータ信号DT1は、8ビット×4の32ビットのビット列からなる。データ信号DT1は、RaレジスタおよびRbレジスタの内容に対してOPコードによって示される演算命令を実行し、当該演算結果をRcレジスタへ格納するという命令列である。図14に示すように、OPコードは「01001100」、Raレジスタコードは「00000111」、Rbレジスタコードは「00001010」、Rcレジスタコードは「00011111」のビット列をそれぞれ有する。
【0080】
図14(A2)の変換データ信号DX1は、図14(A1)のデータ信号DT1の8ビット(1バイト)ごとに、「0」の数が4個以上か4個未満かに応じて「1」または「0」に設定されたデータ反転/非反転信号BFp,BFa,BFb,BFcがそれぞれ付加されている。あるバイトの「0」の数が4個以上のとき、対応するデータ反転/非反転信号は「1」に設定され、当該コードはビット反転される。その結果、変換データ信号DX1のあるバイトと対応するデータ反転/非反転信号とを合わせた「1」の数は、当該「0」の数よりも必ず多くなる。これにより、変換データ信号DX1における「1」の出現率が増加する。
【0081】
OPコード、RaレジスタコードおよびRbレジスタコードは、いずれも「0」の数が4個以上なので、対応するデータ反転/非反転信号BFp,BFa,BFbは全て「1」に設定され、それぞれのコードがビット反転されている。すなわち、OPコードは「10110011」、Raレジスタコードは「11111000」、Rbレジスタコードは「11110101」のビット列にそれぞれ変換されている。
【0082】
Rcレジスタコードは、「0」の数が4個未満なので、データ反転/非反転信号BFcが「0」に設定され、当該コードはビット反転されていない。すなわち、Rcレジスタコードは、「00011111」のビット列のままである。
【0083】
図15は、データ処理システム1Aにおけるデータ転送が正論理に従う場合のデータ信号の他の具体的な変換例を示した図である。図15は、変換データ信号のビット数が偶数(図15では8ビット)の場合を示した図である。図15において、(B1)は変換前のデータ信号DT20〜DT28を表わし、(B2)は変換データ信号DX20〜DX28および対応するデータ反転/非反転信号BFx0〜BFx8を表わす。
【0084】
図15(B1)のデータ信号DT20〜DT28は、各々異なる9種類の8ビット列である。図15に示すように、データ信号DT20は「00000000」、データ信号DT21は「00000001」、・・・、データ信号DT28は「11111111」のビット列をそれぞれ有する。
【0085】
図15(B2)の変換データ信号DX20〜DX28は、図15(B1)の対応するデータ信号DT20〜DT28の各ビット列の「0」の数が4個以上か4個未満かに応じて「1」または「0」が設定されたデータ反転/非反転信号BFx0〜BFx8がそれぞれ付加されている。
【0086】
データ信号DT20〜DT28の「0」の数が4個以上のとき、対応するデータ反転/非反転信号BFx0〜BFx8のビットは「1」に設定され、当該データ信号はビット反転される。その結果、変換データ信号DX20〜DX28と対応するデータ反転/非反転信号BFx0〜BFx8とを合わせた「1」の数は、当該「0」の数よりも必ず多くなる。これにより、変換データ信号DX20〜DX28における「1」の出現率が増加する。
【0087】
データ信号DT20〜DT24は、いずれも「0」の数が4個以上なので、対応するデータ反転/非反転信号BFx0〜BFx4のビットはすべて「1」に設定され、それぞれの変換データ信号がビット反転されている。すなわち、変換データ信号DX20は「11111111」、変換データ信号DX21は「11111110」、・・・、変換データ信号DX24は「11110000」のビット列にそれぞれ変換されている。
【0088】
データ信号DT25〜DT28は、いずれも「0」の数が4個未満なので、対応するデータ反転/非反転信号BFx5〜BFx8のビットはすべて「0」に設定され、それぞれの変換データ信号はビット反転されていない。すなわち、変換データ信号DX25は「00011111」、変換データ信号DX26は「00111111」、・・・、変換データ信号DX28は「11111111」のビット列のままである。
【0089】
図16は、データ処理システム1Aにおけるデータ転送が正論理に従う場合のデータ信号のさらに他の具体的な変換例を示した図である。図16は、変換データ信号のビット数が奇数(図16では9ビット)の場合を示した図である。図16において、(C1)は変換前のデータ信号DT30〜DT39を表わし、(C2)は変換データ信号DX30〜DX39および対応するデータ反転/非反転信号BFy0〜BFy9を表わす。
【0090】
図16(C1)のデータ信号DT30〜DT39は、各々異なる10種類の9ビット列である。図16に示すように、データ信号DT30は「000000000」、データ信号DT31は「000000001」、・・・、データ信号DT39は「111111111」のビット列をそれぞれ有する。
【0091】
図16(C2)の変換データ信号DX30〜DX39は、図16(C1)の対応するデータ信号DT30〜DT39の各ビット列の「0」の数が5個以上か5個未満かに応じてそれぞれ「1」または「0」が設定されたデータ反転/非反転信号BFy0〜BFy9がそれぞれ付加されている。
【0092】
データ信号DT30〜DT39の「0」の数が5個以上のとき、対応するデータ反転/非反転信号BFy0〜BFy9のビットは「1」に設定され、当該データ信号はビット反転される。その結果、変換データ信号DX30〜DX39と対応するデータ反転/非反転信号BFy0〜BFy9とを合わせた「1」の数は、当該「0」の数と等しいか多くなる。これにより、変換データ信号DX30〜DX39における「1」の出現率が増加する。
【0093】
データ信号DT30〜DT34は、いずれも「0」の数が5個以上なので、対応するデータ反転/非反転信号BFy0〜BFy4のビットはすべて「1」に設定され、それぞれの変換データ信号がビット反転されている。すなわち、変換データ信号DX30は「111111111」、変換データ信号DX31は「111111110」、・・・、変換データ信号DX34は「111110000」のビット列にそれぞれ変換されている。
【0094】
データ信号DT35は、「0」の数が5個未満なので、対応するデータ反転/非反転信号BFy5のビットは「0」に設定され、変換データ信号DX35はビット反転されていない。
【0095】
なお、データ反転/非反転信号BFy5のビットを「1」に設定してデータ信号DT35をビット反転したとしても、データ反転/非反転信号BFy5と変換データ信号DX35との合計の「0」の数と「1」の数とは同じである。しかし、データ反転/非反転信号BFy5のビットを「0」と設定することによって、データ復元時に変換データ信号DX35を再反転する必要がない分だけ、図3のデータ復元回路32Xa,32Xbの動作を軽減することができる。これにより、実施の形態1のデータ処理システム1Aの消費電力が低減される。
【0096】
データ信号DT36〜DT39は、いずれも「0」の数が5個未満なので、対応するデータ反転/非反転信号BFy6〜BFy9のビットはすべて「0」に設定され、それぞれの変換データ信号はビット反転されていない。すなわち、変換データ信号DX36は「000111111」、変換データ信号DX37は「001111111」、・・・、変換データ信号DX39は「111111111」のビット列のままである。
【0097】
図14では32ビットのデータ信号DT1、図15では各8ビットのデータ信号DT20〜DT28、図16では各9ビットのデータ信号DT30〜DT39を例に説明したが、データ信号のビット数については特に制限はない。
【0098】
また、図14,15では8ビット(1バイト)単位、図16では9ビット単位でデータ反転/非反転信号を設けたが、一般にnビット単位(nは2以上の自然数)で設けることが可能である。このとき、図14,15の「4個以上か4個未満」は、「n/2以上かn/2未満(n=8の場合)」と一般化することができる。
【0099】
一方、図16の「5個以上か5個未満」は、「[n/2]以上か[n/2]未満(n=9の場合)」と一般化することができる。ここで、[x]とはxの小数点以下を切り上げた数であることを示す。この一般化は、図14,15の場合にも適用することができる。以下では、このような一般化された場合におけるデータ信号の変換動作について説明する。
【0100】
図17は、データ処理システム1Aにおけるデータ転送が正論理に従う場合のデータ信号の変換動作を示したフロー図である。
【0101】
図17を参照して、まず、ステップS11において、nビット単位ごとにデータ信号の「0」の数をカウントする。nビット単位ごとの「0」の数をカウントした後、ステップS12において、当該「0」の数が[n/2]以上かどうかをnビット単位ごとに判定する。
【0102】
当該「0」の数が[n/2]以上の場合、ステップS13において、対応するデータ反転/非反転信号を「1」とし、当該nビット単位のデータを反転する。当該「0」の数が[n/2]以上でない場合、ステップS14において、対応するデータ反転/非反転信号を「0」とし、当該nビット単位のデータを反転しない。ステップS13,14においてnビット単位のデータを反転または非反転する動作は、図9で説明したように、反転/非反転されたnビット単位のデータのいずれか一方を選択する動作に置き換えることが可能である。
【0103】
ステップS12〜S14の動作をデータ信号の全てのnビット単位について行ない、変換動作が終了する。ステップS12〜S14におけるnビット単位ごとの動作は、並列的に行なうことが可能である(図9参照)。以上の動作により、所望のデータ信号およびデータ反転/非反転信号が得られる。
【0104】
図18は、データ処理システム1Aにおけるデータ転送が負論理に従う場合のデータ信号の具体的な変換例を示した図である。図18において、(D1)は変換前のデータ信号DT4、(D2)は変換データ信号DX4をそれぞれ表わす。
【0105】
図18(D1)のデータ信号DT4は、8ビット×4の32ビットのビット列からなる。データ信号DT4は、RaレジスタおよびRbレジスタの内容に対してOPコードによって示される演算命令を実行し、当該演算結果をRcレジスタへ格納するという命令列である。図14(A1)のデータ信号DT1と同じく、OPコードは「01001100」、Raレジスタコードは「00000111」、Rbレジスタコードは「00001010」、Rcレジスタコードは「00011111」のビット列をそれぞれ有する。
【0106】
図18(D2)の変換データ信号DX4は、図18(D1)のデータ信号DT4の8ビット(1バイト)ごとに、「1」の数が4個より多いか4個以下かに応じて「1」または「0」に設定されたデータ反転/非反転信号BFp,BFa,BFb,BFcがそれぞれ付加されている。あるバイトの「1」の数が4個より多いとき、対応するデータ反転/非反転信号は「1」に設定され、当該コードはビット反転される。その結果、変換データ信号DX4のあるバイトと対応するデータ反転/非反転信号とを合わせた「0」の数は、当該「1」の数よりも必ず多くなる。これにより、変換データ信号DX4における「0」の出現率が増加する。
【0107】
なお、正論理か負論理かによってビット反転基準が「4個以上」と「4個より多い」とで異なるのは、正論理の場合に「1」の出現率を増加させ、負論理の場合に「0」の出現率を増加させるのにもかかわらず、ビット反転を示すデータ反転/非反転信号をいずれも便宜上「1」に設定しているからである。
【0108】
OPコード、RaレジスタコードおよびRbレジスタコードは、いずれも「1」の数が4個以下なので、対応するデータ反転/非反転信号BFp,BFa,BFbは全て「0」に設定され、それぞれのコードはビット反転されていない。すなわち、OPコードは「01001100」、Raレジスタコードは「00000111」、Rbレジスタコードは「00001010」のビット列のままである。
【0109】
Rcレジスタコードは、「0」の数が4個より多いので、データ反転/非反転信号BFcが「1」に設定され、当該コードはビット反転されている。すなわち、Rcレジスタコードは、「11100000」のビット列に変換されている。
【0110】
図19は、データ処理システム1Aにおけるデータ転送が負論理に従う場合のデータ信号の他の具体的な変換例を示した図である。図19は、変換データ信号のビット数が偶数(図19では8ビット)の場合を示した図である。図19において、(E1)は変換前のデータ信号DT50〜DT58を表わし、(E2)は変換データ信号DX50〜DX58および対応するデータ反転/非反転信号BFy0〜BFy8を表わす。
【0111】
図19(E1)のデータ信号DT50〜DT58は、各々異なる9種類の8ビット列である。図15(B1)のデータ信号DT20〜DT28と同じく、データ信号DT50は「00000000」、データ信号DT51はは「00000001」、・・・、データ信号DT58はは「11111111」のビット列をそれぞれ有する。
【0112】
図19(E2)の変換データ信号DX50〜DX58は、図19(E1)のデータ信号DT50〜DT58の各ビット列ごとの「1」の数が4個より多いか4個以下かに応じて「1」または「0」が設定されたデータ反転/非反転信号BFy0〜BFy8がそれぞれ付加されている。
【0113】
データ信号DT50〜DT58の「1」の数が4個より多いとき、対応するデータ反転/非反転信号BFy0〜BFy8のビットは「1」に設定され、当該データ信号はビット反転される。その結果、変換データ信号DX50〜DX58と対応するデータ反転/非反転信号BFy0〜BFy8とを合わせた「0」の数は、当該「1」の数よりも必ず多くなる。これにより、変換データ信号DX50〜DX58における「0」の出現率が増加する。
【0114】
データ信号DT50〜DT54は、いずれも「1」の数が4個以下なので、対応するデータ反転/非反転信号BFy0〜BFy4のビットは全て「0」に設定され、それぞれの変換データ信号がビット反転されていない。すなわち、変換データ信号DX50は「00000000」、変換データ信号DX51は「00000001」、・・・、変換データ信号DX54は「00001111」のビット列のままである。
【0115】
データ信号DT55〜DT58は、いずれも「1」の数が4個より多いので、対応するデータ反転/非反転信号BFy5〜BFy8のビットは全て「1」に設定され、それぞれの変換データ信号はビット反転されている。すなわち、変換データ信号DX55は「11100000」、変換データ信号DX56は「11000000」、・・・、変換データ信号DX58は「00000000」のビット列にそれぞれ変換されている。
【0116】
図20は、データ処理システム1Aにおけるデータ転送が正論理に従う場合のデータ信号のさらに他の具体的な変換例を示した図である。図20は、変換データ信号のビット数が奇数(図20では9ビット)の場合を示した図である。図20において、(F1)は変換前のデータ信号DT60〜DT69を表わし、(F2)は変換データ信号DX60〜DX69および対応するデータ反転/非反転信号BFw0〜BFw9を表わす。
【0117】
図20(F1)のデータ信号DT60〜DT69は、各々異なる10種類の9ビット列である。図16(C1)のデータ信号DT30〜DT39と同じく、データ信号DT60は「000000000」、データ信号DT61は「000000001」、・・・、データ信号DT69は「111111111」のビット列をそれぞれ有する。
【0118】
図20(F2)の変換データ信号DX60〜DX69は、図20(F1)の対応するデータ信号DT60〜DT69の各ビット列の「1」の数が5個より多いか5個以下かに応じて「1」または「0」が設定されたデータ反転/非反転信号BFw0〜BFw9がそれぞれ付加されている。
【0119】
データ信号DT60〜DT69の「1」の数が5個より多いとき、対応するデータ反転/非反転信号BFw0〜BFw9のビットは「1」に設定され、当該データ信号はビット反転される。その結果、変換データ信号DX60〜DX69と対応するデータ反転/非反転信号BFy0〜BFy9とを合わせた「0」の数は、当該「1」の数と等しいか多くなる。これにより、変換データ信号DX60〜DX69における「0」の出現率が増加する。
【0120】
データ信号DT60〜DT64は、いずれも「1」の数が5個以下なので、対応するデータ反転/非反転信号BFw0〜BFw4のビットはすべて「0」に設定され、それぞれの変換データ信号はビット反転されていない。すなわち、変換データ信号DX60は「000000000」、変換データ信号DX61は「000000001」、・・・、変換データ信号DX64は「000001111」のビット列のままである。
【0121】
データ信号DT65は、「1」の数が5個以下なので、対応するデータ反転/非反転信号BFw5のビットは「0」に設定され、変換データ信号DX65はビット反転されていない。
【0122】
なお、データ反転/非反転信号BFw5のビットを「1」に設定してデータ信号DT65をビット反転したとしても、データ反転/非反転信号BFw5と変換データ信号DX65との合計の「0」の数と「1」の数とは同じである。しかし、データ反転/非反転信号BFw5のビットを「0」と設定することによって、データ復元時に変換データ信号DX65を再反転する必要がない分だけ、図3のデータ復元回路32Xa,32Xbの動作を軽減することができる。これにより、実施の形態1のデータ処理システム1Aの消費電力が低減される。
【0123】
データ信号DT66〜DT69は、いずれも「1」の数が5個より多いので、対応するデータ反転/非反転信号BFw6〜BFw9のビットはすべて「1」に設定され、それぞれの変換データ信号がビット反転されている。すなわち、変換データ信号DX66は「111000000」、変換データ信号DX67は「110000000」、・・・、変換データ信号DX69は「000000000」のビット列にそれぞれ変換されている。
【0124】
図18では32ビットのデータ信号DT4、図19では各8ビットのデータ信号DT50〜DT58、図20では各9ビットのデータ信号DT60〜DT69を例に説明したが、データ信号のビット数については特に制限はない。
【0125】
また、図18,19では8ビット(1バイト)単位、図20では9ビット単位でデータ反転/非反転信号を設けたが、一般にnビット単位(nは2以上の自然数)で設けることが可能である。このとき、図18,19の「4個より多いか4個以下」は、「n/2より多いかn/2以下(n=8の場合)」と一般化することができる。
【0126】
一方、図20の「5個より多いか5個以下」は、「[n/2]より多いか[n/2]以下(n=9の場合)」と一般化することができる。ここで、[x]とはxの小数点以下を切り上げた数であることを示す。この一般化は、図18,19の場合にも適用することができる。以下では、このような一般化された場合におけるデータ信号の変換動作について説明する。
【0127】
図21は、データ処理システム1Aにおけるデータ転送が負論理に従う場合のデータ信号の変換動作を示したフロー図である。
【0128】
図21を参照して、まず、ステップS21において、nビット単位ごとにデータ信号の「1」の数をカウントする。nビット単位ごとの「1」の数をカウントした後、ステップS22において、当該「1」の数が[n/2]より多いかどうかをnビット単位ごとに判定する。
【0129】
当該「1」の数が[n/2]より多い場合、ステップS23において、対応するデータ反転/非反転信号を「1」とし、当該nビット単位のデータを反転する。当該「1」の数が[n/2]より多くない場合、ステップS24において、対応するデータ反転/非反転信号を「0」とし、当該nビット単位のデータを反転しない。ステップS23,24においてnビット単位のデータを反転または非反転する動作は、図9で説明したように、反転/非反転されたnビット単位のデータのいずれか一方を選択する動作に置き換えることが可能である。
【0130】
ステップS22〜S24の動作をデータ信号の全てのnビット単位について行ない、変換動作が終了する。ステップS22〜S24におけるnビット単位ごとの動作は、並列的に行なうことが可能である(図9参照)。以上の動作により、所望のデータ信号およびデータ反転/非反転信号が得られる。
【0131】
図14,18では、データ信号の具体的な変換例を示しているが、データ信号に対するデータ反転/非反転信号の挿入位置は、図14,18に示した例だけには限られない。以下では、データ信号に対するデータ反転/非反転信号の他の挿入位置の例を示す。
【0132】
図22〜25は、データ信号に対するデータ反転/非反転信号の他の挿入位置の例を示した図である。図22〜25のいずれのバリエーションであっても、図14,18で説明した場合と同様の効果が得られる。
【0133】
図22は、OPコードに対してはデータ反転/非反転信号を挿入せず、Ra〜Rdレジスタコードに対してはRaレジスタコードの前にデータ反転/非反転信号BFrを1つだけ挿入した例である。
【0134】
図23は、OPコードに対してはデータ反転/非反転信号を挿入せず、Ra〜Rdレジスタコードに対しては各レジスタコードの前にデータ反転/非反転信号BFa〜BFdをそれぞれ挿入した例である。
【0135】
図24は、OP1〜OP4コードに対してはOP1コードの前にデータ反転/非反転信号BFpを1つだけ挿入し、Ra〜Rdレジスタコードに対してはRaレジスタコードの前にデータ反転/非反転信号BFrを1つだけ挿入した例である。
【0136】
図25は、OP1〜OP4コードに対しては各OPコードの前にデータ反転/非反転信号BFp1〜BFp4をそれぞれ挿入し、Ra〜Rdレジスタコードに対しては各レジスタコードの前にデータ反転/非反転信号BFa〜BFdをそれぞれ挿入した例である。
【0137】
図22,24のように4バイト(32ビット)で1ビットの反転/非反転信号を設けた場合、「1」または「0」の数が16個(32ビットの半分)より多いか少ないか等を計算するのに必要な回路の構成が複雑となる。このため、4バイトで1ビットの反転/非反転信号を設けた場合、回路面積および処理速度の面で課題がある。しかしながら、反転/非反転信号の付加によるビット数増加を抑えることができる。
【0138】
図23,25のようにバイト単位(8ビット)で1ビットの反転/非反転信号を設けた場合、データ信号の演算がバイト単位で可能となる。一般に、データ処理システムはバイト単位でデータ信号を処理しているので、バイト単位で1ビットの反転/非反転信号を設けると演算処理が行ないやすくなるという利点がある。
【0139】
以上のように、実施の形態1によれば、バス上のデータ転送時における放電回数が減るようにデータ信号を所定のビット単位ごとに反転または非反転した変換データ信号をバス上で転送することによって、バス上でのデータ転送時における消費電力を低減することができる。
【0140】
[実施の形態2]
図26は、この発明の実施の形態2によるデータ処理システム1Bを概略的に表わしたブロック図である。
【0141】
図26を参照して、実施の形態2のデータ処理システム1Bは、メモリ2Bと、CPU3と、アドレス復元回路6とを備える。メモリ2BとCPU3との間では、データ反転/非反転信号BFおよび変換データ信号DXが互いに入出力される。また、CPU3は、アドレス復元回路6に、アドレス反転/非反転信号BFadおよび変換アドレス信号ADDXを出力する。メモリ2BとCPU3との間のデータ反転/非反転信号BFおよび変換データ信号DXの転送は、少なくとも一部がバスを介して行なわれる。CPU3とアドレス復元回路6との間のアドレス反転/非反転信号BFadおよび変換アドレス信号ADDXの転送は、少なくとも一部がバスを介して行なわれる。
【0142】
アドレス復元回路6は、アドレス反転/非反転信号BFadを元に、変換アドレス信号ADDXからアドレス信号ADDを復元し、それをメモリ2Bに出力する。つまり、変換アドレス信号ADDXは、アドレス反転/非反転信号BFadに従って、アドレス信号ADDがビット列ごとに反転または非反転されたアドレス信号である。
【0143】
このように、変換アドレス信号ADDXをアドレス復元回路6を介して通常のアドレス信号ADDに復元してからメモリ2Bに出力することによって、メモリ2Bでのアドレス指定時にアドレス復元回路を必要としない。そのため、メモリ2Bに既存のメモリを用いることが可能となる。
【0144】
図27は、この発明の実施の形態2によるデータ処理システム1Bの具体的な構成を示したブロック図である。
【0145】
図27を参照して、実施の形態2のデータ処理システム1Bは、メモリ&周辺回路2Baと、CPU3と、アドレス復元回路6とを備える。メモリ&周辺回路2Baは、図26のメモリ2Bに対応するが、メモリだけでなく周辺回路も含む。CPU3は、実施の形態1の図2と同じく、命令/データフェッチ部10と、命令デコード部20と、演算実行部30とを含む。命令/データフェッチ部10は、データストア部11と、アドレス変換回路12とを含む。
【0146】
アドレス復元回路6は、命令/データフェッチ部10のアドレス変換回路12から出力される変換アドレス信号ADDXおよびそれに対応するアドレス反転/非反転信号BFadを受けて変換前のアドレス信号ADDを復元する。メモリ&周辺回路2Baは、アドレス復元回路6から出力されるアドレス信号ADDに応じて、変換データ信号DX14およびそれに対応するデータ反転/非反転信号BF14を命令/データフェッチ部10に出力する。その他の回路動作は、実施の形態1のデータ処理システム1Aと同様なので、ここでは繰り返さない。
【0147】
演算実行部30の具体的な回路ブロック構成は、実施の形態1の図3〜13において説明したので、ここでは説明を繰り返さない。アドレス復元回路6の具体的な回路ブロック構成は、実施の形態1の図8で説明したように、データ復元回路32Xaのレジスタファイル信号の代わりに変換アドレス信号、データ反転/非反転信号の代わりにアドレス反転/非反転信号をそれぞれ用いることによって実現できる。アドレス信号をビット列ごとに反転/非反転する具体的な変換例は、実施の形態1の図14〜25において説明したデータ信号の場合と同様なので、ここでは説明を繰り返さない。
【0148】
実施の形態2では、メモリ&周辺回路2Baと命令/データフェッチ部10との間、および、命令/データフェッチ部10とアドレス復元回路6との間のバスの充放電が少なくなるため、これらによる消費電力の低減効果が生じる。
【0149】
以上のように、実施の形態2によれば、変換アドレス信号ADDXをアドレス復元回路6を介して通常のアドレス信号ADDに復元してからメモリ2Bに出力することによって、バスの充放電が少なくなる効果に加えて、メモリ2Bに既存のメモリを用いることができる。これにより、安価で低消費電力なデータ処理システムを構築することが可能となる。
【0150】
[実施の形態3]
図28は、この発明の実施の形態3によるデータ処理システム1Cを概略的に表わしたブロック図である。
【0151】
図28を参照して、実施の形態3のデータ処理システム1Cは、メモリ2Cと、CPU3Cと、データ変換・復元回路32とを備える。メモリ2Cとデータ変換・復元回路32との間では、データ反転/非反転信号BFおよび変換データ信号DXが互いに入出力される。変換・復元回路32とCPU3Cとの間では、データ信号DTが互いに入出力される。CPU3Cは、メモリ2Cにアドレス信号ADDを出力する。メモリ2Cとデータ変換・復元回路32との間のデータ反転/非反転信号BFおよび変換データ信号DXの転送は、少なくとも一部がバスを介して行なわれる。
【0152】
データ変換・復元回路32は、CPU3Cから出力されるデータ信号DTを変換データ信号DXに変換して、データ反転/非反転信号BFとともにメモリ2Cに出力する。変換データ信号DXは、データ反転/非反転信号BFに従って、データ信号DTがビット列ごとに反転または非反転されたデータ信号である。また、データ変換・復元回路32は、メモリ2Cから出力されるデータ反転/非反転信号BFを元に、変換データ信号DXからデータ信号DTを復元する。
【0153】
このように、メモリ2CとCPU3Cとの間にデータ変換・復元回路32を設けてCPU3Cには通常のデータ信号が入出力されるようにすることによって、CPU3Cにデータ変換回路およびデータ復元回路が必要なくなる。そのため、CPU3Cに既存のCPUを用いることが可能となる。また、CPU3Cからメモリ2Cに直接アドレス信号ADDを出力しているので、実施の形態2と同じく、メモリ2Cにも既存のメモリを用いることが可能である。
【0154】
図29は、図28のデータ変換・復元回路32の具体的な構成を示したブロック図である。
【0155】
図29を参照して、データ変換・復元回路32は、データ復元回路32Xと、データ変換回路32Yとを含む。データ復元回路32Xは、図28のメモリ2Cから出力される変換データ信号DX11およびそれに対応するデータ反転/非反転信号BF11を受けて変換前のデータ信号DT11を復元し、それを図28のCPU3Cに出力する。データ変換回路32Yは、図28のCPU3Cから出力されるデータ信号DT12を変換データ信号DX12に変換し、データ反転/非反転信号BF12とともに図28のメモリ2Cに出力する。
【0156】
データ復元回路32Xの具体的な回路ブロック構成は、実施の形態1の図8に示したデータ復元回路32Xaと同じである。データ変換回路32Yの具体的な回路ブロック構成は、実施の形態1の図9に示したのと同じである。データ信号をビット列ごとに反転/非反転する具体的な変換例は、実施の形態1の図14〜25において説明したので、ここでは説明を繰り返さない。
【0157】
実施の形態3では、メモリ&周辺回路2Baと変換・復元回路32との間のバスの充放電が少なくなるため、これによる消費電力の低減効果が生じる。
【0158】
以上のように、実施の形態3によれば、メモリ2CとCPU3Cとの間に変換・復元回路32を設けてCPU3Cには通常のデータ信号DTが互いに入出力されるようにすることによって、バスの充放電が少なくなる効果に加えて、CPU3Cに既存のCPUを用いることができる。これにより、安価で低消費電力なデータ処理システムを構築することが可能となる。
【0159】
[実施の形態4]
実施の形態1〜3では、データ処理システム1A〜1Cの少なくとも一部に用いられるバスとして、図4,5のバスPB1に示すようなプリチャージバスを想定していた。しかしながら、プリチャージバスというのは一例であって、他の形式のバスを用いることも可能である。以下では、他の形式のバスの一例として、トライステート出力バッファを有するバス(以下、トライステートバスとも称する)を例に説明する。
【0160】
図30は、この発明の実施の形態4によるバスTBの具体的な構成の一例を示した回路図である。以下では、実施の形態1のバスPB1の代わりにバスTBが用いられるとして説明するが、バスTBを実施の形態2,3に適用することも可能である。
【0161】
図30を参照して、バスTBは、トライステートバスであって、NANDゲート101と、NORゲート102と、インバータ103と、PチャネルMOSトランジスタ104と、NチャネルMOSトランジスタ105とを含む。図30では、図4,5と同じく、図3のレジスタファイル部31からデータ復元回路32Xaに出力される信号を一例として取り上げている。
【0162】
NANDゲート101は、図3のレジスタファイル部31から出力される変換データ信号DXaおよびデータ反転/非反転信号BFaと、インバータ103からの出力信号とを受ける。NORゲート102は、変換データ信号DXaおよびデータ反転/非反転信号BFaと、出力制御信号INHとを受ける。インバータ103は、出力制御信号INHを反転する。PチャネルMOSトランジスタ104(Tr104とも称す)は、電源ノードとトライステートノード(接続ノード)TsNとの間に接続され、ゲートにNANDゲート101の出力信号を受ける。NチャネルMOSトランジスタ105(Tr105とも称す)は、トライステートノードTsNと接地ノードとの間に接続され、ゲートにNORゲート102の出力信号を受ける。
【0163】
図31は、図30のバスTBの動作を示した図である。
【0164】
図31に示すように、出力制御信号INHがHレベルのとき、変換データ信号DXa(データ反転/非反転信号BFaを含む。以下同じ)がHレベルかLレベルかに関わらず、Tr104,105はともにオフとなる。このとき、トライステートノードTsNは高インピーダンス(Hi−Z)状態となり、バスTBは前回転送したデータを保持する。
【0165】
出力制御信号INHがLレベルのとき、トライステートノードTsNは変換データ信号DXaを転送する出力状態となる。出力制御信号INHがLレベルで変換データ信号DXaがHレベルのとき、Tr104はオンとなり、Tr105はオフとなる。このとき、トライステートノードTsNはHレベルとなる。出力制御信号INHがLレベルで変換データ信号DXaがLレベルのとき、Tr104はオフとなり、Tr105はオンとなる。このとき、トライステートノードTsNはLレベルとなる。
【0166】
このように、バスTBは、出力制御信号INHがLレベルのとき入力された変換データ信号DXaを転送し、出力制御信号INHがHレベルのとき前回転送したデータを保持する。バスTBは、出力制御信号INHの入力に応じてこれら2つの動作を繰り返す。
【0167】
図32は、図30のバスTBにおいてデータ信号を変換せずに転送する場合のデータ転送動作の一例を比較例として時系列的に示した図である。図32では、図6と同じく、転送されるデータ信号の電位レベルに着目しているため、バスTBにおけるデータ転送が正論理に従う場合であっても負論理に従う場合であっても成り立つ。
【0168】
図32を参照して、時刻t1において、バスTBは前回転送したデータのビットレベルを保持している。ここでは説明の便宜のため全てのビットレベルがHレベルであるとしているが、Hレベルの数が全体の半数以上であればHレベルがいくつであってもよい。時刻t2において、時刻t1の状態から2つのビットレベルをHレベルからLレベルに遷移させることにより、1回目のデータ転送が行なわれる。このとき、放電するビット数は2となる。
【0169】
時刻t3において、バスTBは前回(時刻t2)に転送したデータのビットレベルを保持している。時刻t4において、時刻t3の状態から3つのビットレベルをHレベルからLレベルに遷移させることにより、2回目のデータ転送が行なわれる。このとき、放電するビット数は3となる。
【0170】
以上のように、データ信号を変換せずに転送する図32のデータ転送動作において、放電するビット数は1回目と2回目とで計5となる。
【0171】
図33は、図30のバスTBにおいてデータ信号を変換して転送する場合のデータ転送動作の一例を時系列的に示した図である。図33では、図7と同じく、転送されるデータ信号の電位レベルに着目しているため、バスTBにおけるデータ転送が正論理に従う場合であっても負論理に従う場合であっても成り立つ。ここでは、説明を簡略化するために、データ反転/非反転信号は考慮しない。
【0172】
図33を参照して、時刻t1において、バスTBは前回転送したデータのビットレベルを保持している。全てのビットレベルがHレベルであるのは図32と同様の理由からであって、Hレベルの数が全体の半数以上であればHレベルがいくつであってもよい。時刻t2において、時刻t1の状態から2つのビットレベルをHレベルからLレベルに遷移させることにより、1回目のデータ転送が行なわれる。図32に示したように、1回目のデータ転送時において、HレベルからLレベルに遷移するデータビット数は遷移しないデータビット数より少ない。そのため、1回目のデータ転送時における変換データ信号は変換前のデータ信号と同一となり、放電するビット数は2となる。
【0173】
時刻t3において、バスTBは前回(時刻t2)に転送したデータのビットレベルを保持している。時刻t4において、時刻t3の状態からビットレベルをHレベルからLレベルに遷移させることなく、2回目のデータ転送が行なわれる。図32に示したように、2回目のデータ転送時において、Hレベルである全てのビットレベルがLレベルに遷移する。そのため、2回目のデータ転送時における変換データ信号は変換前のデータ信号を反転した信号となり、その結果、放電するビット数は0となる。
【0174】
以上のように、データ信号を変換して転送する図33のデータ転送動作において、放電するビット数は1回目と2回目とで計2となる。このように、図30のバスTBにおけるデータ転送時にデータ信号を変換して転送することにより、データ信号を変換しない場合と比べて消費電力に直接影響を与える、放電するビット数を減少させることが可能となる。
【0175】
実施の形態1〜3では、バスPB1がプリチャージバスであったため、プリチャージ動作時において全てのビットレベルがHレベルにプリチャージされることになる。しかし、実施の形態4のバスTBはトライステートバスであるため、このような限定は伴わない。図32,33では前回転送したデータの半数以上がHレベルの場合について説明したので、以下では前回転送したデータの半数以上がLレベルの場合について説明する。
【0176】
図34は、図30のバスTBにおいてデータ信号を変換せずに転送する場合のデータ転送動作の他の一例を比較例として時系列的に示した図である。
【0177】
図34を参照して、時刻t1において、バスTBは前回転送したデータのビットレベルを保持している。ここでは説明の便宜のため全てのビットレベルがLレベルであるとしているが、Lレベルの数が全体の半数以上であればLレベルがいくつであってもよい。時刻t2において、時刻t1の状態から3つのビットレベルをLレベルからHレベルに遷移させることにより、1回目のデータ転送が行なわれる。このとき、HレベルからLレベルに遷移するデータビットはないため、放電するビット数は0となる。
【0178】
時刻t3において、バスTBは前回(時刻t2)に転送したデータのビットレベルを保持している。時刻t4において、時刻t3の状態から3つのビットレベルをHレベルからLレベルに遷移させることにより、2回目のデータ転送が行なわれる。このとき、放電するビット数は3となる。
【0179】
以上のように、データ信号を変換せずに転送する図32のデータ転送動作において、放電するビット数は1回目と2回目とで計3となる。
【0180】
図35は、図30のバスTBにおいてデータ信号を変換して転送する場合のデータ転送動作の一例を時系列的に示した図である。ここでは、説明を簡略化するために、データ反転/非反転信号は考慮しない。
【0181】
図35を参照して、時刻t1において、バスTBは前回転送したデータのビットレベルを保持している。全てのビットレベルがLレベルであるのは図34と同様の理由からであって、Lレベルの数が全体の半数以上であればLレベルがいくつであってもよい。時刻t2において、時刻t1の状態から3つのビットレベルをLレベルからHレベルに遷移させることにより、1回目のデータ転送が行なわれる。図34において示したように、1回目のデータ転送時において、HレベルからLレベルに遷移するデータビットはない。そのため、そのため、1回目のデータ転送時における変換データ信号は変換前のデータ信号と同一となり、放電するビット数は0となる。
【0182】
時刻t3において、バスTBは前回(時刻t2)に転送したデータのビットレベルを保持している。時刻t4において、時刻t3の状態からビットレベルをHレベルからLレベルに遷移させることなく、2回目のデータ転送が行なわれる。図34において示したように、2回目のデータ転送時において、HレベルからLレベルに遷移するデータビット数は遷移しないデータビット数より多い。そのため、2回目のデータ転送時における変換データ信号は変換前のデータ信号を反転した信号となり、その結果、放電するビット数は0となる。
【0183】
以上のように、データ信号を変換して転送する図35のデータ転送動作において、放電するビット数は1回目と2回目とで計0となる。このように、図30のバスTBにおけるデータ転送時にデータ信号を変換して転送することにより、前回転送したデータのHレベルの数が全体に対して多いか少ないかに関わらず、データ信号を変換しない場合と比べて消費電力に直接影響を与える、放電するビット数を減少させることが可能となる。
【0184】
以上のように、実施の形態4によれば、実施の形態1〜3でのプリチャージバスPB1の代わりにトライステートバスTBを用いることによって、前回転送したデータのHレベルの数が全体に対して多いか少ないかに関わらず、バス上でのデータ転送時における消費電力を低減することができる。
【0185】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【0186】
【図1】この発明の実施の形態1によるデータ処理システム1Aを概略的に表わしたブロック図である。
【図2】この発明の実施の形態1によるデータ処理システム1Aの具体的な構成を示したブロック図である。
【図3】図2の演算実行部30の具体的な構成を示したブロック図である。
【図4】図3のバスPB1の具体的な構成の一例であるバスPB1pの構成を示した回路図である。
【図5】図3のバスPB1の具体的な構成の他の一例であるバスPB1nの構成を示した回路図である。
【図6】図3のバスPB1においてデータ信号を変換せずに転送する場合のデータ転送動作の一例を比較例として時系列的に示した図である。
【図7】図3のバスPB1において図6のデータ信号を変換して転送する場合のデータ転送動作の一例を時系列的に示した図である。
【図8】図3のデータ復元回路32Xaの具体的な構成の一例を示した回路ブロック図である。
【図9】図3のデータ変換回路32Yの具体的な構成の一例を示した回路ブロック図である。
【図10】図9の反転/非反転信号生成回路81の具体的な構成の一例を示した回路図である。
【図11】図10の半加算器810a〜810dを代表する半加算器810の具体的な構成の一例を示した回路図である。
【図12】1ビットの全加算器815の構成の一例を示した回路ブロック図である。
【図13】図10の全加算器820a,820bを代表する2ビットの全加算器820の構成の一例を示した回路ブロック図である。
【図14】データ処理システム1Aにおけるデータ転送が正論理に従う場合のデータ信号の具体的な変換例を示した図である。
【図15】データ処理システム1Aにおけるデータ転送が正論理に従う場合のデータ信号の他の具体的な変換例を示した図である。
【図16】データ処理システム1Aにおけるデータ転送が正論理に従う場合のデータ信号のさらに他の具体的な変換例を示した図である。
【図17】データ処理システム1Aにおけるデータ転送が正論理に従う場合のデータ信号の変換動作を示したフロー図である。
【図18】データ処理システム1Aにおけるデータ転送が負論理に従う場合のデータ信号の具体的な変換例を示した図である。
【図19】データ処理システム1Aにおけるデータ転送が負論理に従う場合のデータ信号の他の具体的な変換例を示した図である。
【図20】データ処理システム1Aにおけるデータ転送が正論理に従う場合のデータ信号のさらに他の具体的な変換例を示した図である。
【図21】データ処理システム1Aにおけるデータ転送が負論理に従う場合のデータ信号の変換動作を示したフロー図である。
【図22】データ信号に対するデータ反転/非反転信号の他の挿入位置の例を示した図である。
【図23】データ信号に対するデータ反転/非反転信号の他の挿入位置の例を示した図である。
【図24】データ信号に対するデータ反転/非反転信号の他の挿入位置の例を示した図である。
【図25】データ信号に対するデータ反転/非反転信号の他の挿入位置の例を示した図である。
【図26】この発明の実施の形態2によるデータ処理システム1Bを概略的に表わしたブロック図である。
【図27】この発明の実施の形態2によるデータ処理システム1Bの具体的な構成を示したブロック図である。
【図28】この発明の実施の形態3によるデータ処理システム1Cを概略的に表わしたブロック図である。
【図29】図28のデータ変換・復元回路32の具体的な構成を示したブロック図である。
【図30】この発明の実施の形態4によるバスTBの具体的な構成の一例を示した回路図である。
【図31】図30のバスTBの動作を示した図である。
【図32】図30のバスTBにおいてデータ信号を変換せずに転送する場合のデータ転送動作の一例を比較例として時系列的に示した図である。
【図33】図30のバスTBにおいてデータ信号を変換して転送する場合のデータ転送動作の一例を時系列的に示した図である。
【図34】図30のバスTBにおいてデータ信号を変換せずに転送する場合のデータ転送動作の他の一例を比較例として時系列的に示した図である。
【図35】図30のバスTBにおいてデータ信号を変換して転送する場合のデータ転送動作の一例を時系列的に示した図である。
【符号の説明】
【0187】
1A,1B,1C データ処理システム、2,2B,2C メモリ、2a,2Ba,2Ca メモリ&周辺回路、3,3C CPU、6 アドレス復元回路、10,10C 命令/データフェッチ部、11 データストア部、12 アドレス変換回路、20,20C 命令デコード部、30,30C 演算実行部、31 レジスタファイル部、32 データ復元・変換回路、32X,32Xa,32Xb データ復元回路、32Y データ変換回路、35 演算器、PB1,PB1p,PB1n,PB2,TB バス、51,53,104 PチャネルMOSトランジスタ、52,56,105 NチャネルMOSトランジスタ、54,72,82_k インバータ、73,83_k セレクタ、81 反転/非反転信号生成回路、101 NANDゲート、102 NORゲート、810,815,816,817 半加算器、811 XORゲート、812 ANDゲート、818 ORゲート、820,820a,820b,830 全加算器、840 比較値格納部、850 比較回路。
【特許請求の範囲】
【請求項1】
複数ビットのデータを転送するバスと、
前記バスを介して転送する入力信号を受け、前記入力信号の所定数のビットの論理を、反転/非反転信号と前記所定数のビットとにおける第1の論理の数が第2の論理の数以上となるように反転または非反転して変換信号を生成し、かつ前記変換信号の前記所定数のビットの反転または非反転を示す前記反転/非反転信号を生成し、前記変換信号および前記反転/非反転信号を前記バスに出力する変換回路とを備える、データ処理装置。
【請求項2】
前記バスがトライステート出力バッファを有する、請求項1に記載のデータ処理装置。
【請求項3】
前記バスはプリチャージバスであり、
前記第1の論理は前記プリチャージバスをプリチャージされた状態に維持する論理で、前記第2の論理は前記プリチャージバスを放電する論理である、請求項1に記載のデータ処理装置。
【請求項4】
前記変換回路は、前記入力信号を各々が所定数のビットを持つビット単位に分割し、前記ビット単位ごとに前記変換信号および前記反転/非反転信号を生成し、前記変換信号および前記反転/非反転信号を前記バスに出力する、請求項1〜3のいずれかに記載のデータ処理装置。
【請求項5】
前記バスを介して転送された前記変換信号および前記反転/非反転信号を受けて、前記入力信号を復元する復元回路をさらに備える、請求項1〜4のいずれかに記載のデータ処理装置。
【請求項6】
前記変換回路は、
前記反転/非反転信号と前記所定数のビットとにおける前記第1の論理の数が前記第2の論理の数以上か否かを判定し、前記判定に基づいて前記反転/非反転信号を生成する反転/非反転信号生成回路と、
前記入力信号を反転するインバータと、
前記反転/非反転信号に従って、前記入力信号と前記入力信号の反転信号とのいずれか一方を選択し、前記選択された信号を前記変換信号として出力するセレクタとを含む、請求項1〜5のいずれかに記載のデータ処理装置。
【請求項7】
前記復元回路は、
前記変換信号を反転するインバータと、
前記反転/非反転信号に従って、前記変換信号と前記変換信号の反転信号とのいずれか一方を選択し、前記選択された信号を前記入力信号として出力するセレクタとを含む、請求項5に記載のデータ処理装置。
【請求項8】
前記トライステート出力バッファは、
第1の電位ノードと、
前記第1の電位ノードより電位の低い第2の電位ノードと、
前記第1の電位ノードと第1のスイッチを介して接続され、かつ前記第2の電位ノードと第2のスイッチを介して接続された、前記バスとの接続ノードと、
出力制御信号と前記変換信号と前記反転/非反転信号とから前記第1のスイッチのオン/オフを制御する第1の制御信号を生成する第1の論理回路と、
前記出力制御信号と前記変換信号と前記反転/非反転信号とから前記第2のスイッチのオン/オフを制御する第2の制御信号を生成する第2の論理回路とを備え、
前記接続ノードは、高インピーダンス状態、または前記変換信号および前記反転/非反転信号の出力状態に設定されることを特徴とする、請求項2および4〜7のいずれかに記載のデータ処理装置。
【請求項9】
前記プリチャージバスは、
第1の電位ノードと、
前記第1の電位ノードより電位の低い第2の電位ノードと、
プリチャージノードと、
前記第1の電位ノードと前記プリチャージノードとの間に接続され、ゲートにクロック信号、または前記クロック信号の反転信号を受ける第1導電型の第1のトランジスタと、
一端が前記第2の電位ノードに接続され、ゲートに前記クロック信号、または前記クロック信号の反転信号を受ける第2導電型の第2のトランジスタと、
前記プリチャージノードと前記第2のトランジスタの他端との間に接続され、ゲートに前記変換信号および前記反転/非反転信号、または前記変換信号の反転信号および前記反転/非反転信号の反転信号を受ける第2導電型の第3のトランジスタと、
前記第1の電位ノードと前記プリチャージノードとの間に接続される第1導電型の第4のトランジスタと、
前記プリチャージノードと前記第4のトランジスタのゲートとの間に接続されるインバータとを含む、請求項3〜7のいずれかに記載のデータ処理装置。
【請求項10】
前記所定数は8である、請求項1〜9のいずれかに記載のデータ処理装置。
【請求項11】
前記入力信号は、データ信号である、請求項1〜10のいずれかに記載のデータ処理装置。
【請求項12】
前記入力信号は、アドレス信号である、請求項1〜10のいずれかに記載のデータ処理装置。
【請求項13】
複数ビットのデータを転送するバスと、
前記バスを介して転送する入力信号を受け、前記入力信号の所定数のビットの論理を、反転/非反転信号と前記所定数のビットとにおける第1の論理の数が第2の論理の数以上となるように反転または非反転して変換信号を生成し、かつ前記変換信号の前記所定数のビットの反転または非反転を示す前記反転/非反転信号を生成し、前記変換信号および前記反転/非反転信号を前記バスに出力する変換回路を含む処理部と、
前記バスを介して転送された前記変換信号および前記反転/非反転信号を受けるメモリ部とを備える、データ処理システム。
【請求項14】
前記メモリ部は、前記バスを介して転送された前記変換信号および前記反転/非反転信号を受けて前記入力信号を復元する復元回路を含む、請求項13に記載のデータ処理システム。
【請求項15】
前記バスを介して転送された前記変換信号および前記反転/非反転信号を受けて、前記入力信号を復元する復元回路をさらに備える、請求項13に記載のデータ処理システム。
【請求項16】
前記処理部は、前記メモリ部から前記バスを介して転送される前記変換信号および前記反転/非反転信号を受けて前記入力信号を復元する復元回路をさらに含む、請求項13に記載のデータ処理システム。
【請求項17】
バスを介して転送すべき入力信号を変換するデータ変換方法であって、
前記入力信号の所定数のビット論理を、反転/非反転信号と前記所定数のビットとにおける第1の論理の数が第2の論理の数以上となるように反転または非反転して変換信号を生成するステップと、
前記変換信号の前記所定数のビットの反転または非反転を示す前記反転/非反転信号を生成するステップと、
前記変換信号および前記反転/非反転信号を前記バスに出力するステップとを備える、データ処理方法。
【請求項18】
前記変換信号を生成するステップに先立って、前記入力信号を各々が所定数のビットを有するビット単位に分割するステップをさらに備える、請求項17に記載のデータ処理方法。
【請求項1】
複数ビットのデータを転送するバスと、
前記バスを介して転送する入力信号を受け、前記入力信号の所定数のビットの論理を、反転/非反転信号と前記所定数のビットとにおける第1の論理の数が第2の論理の数以上となるように反転または非反転して変換信号を生成し、かつ前記変換信号の前記所定数のビットの反転または非反転を示す前記反転/非反転信号を生成し、前記変換信号および前記反転/非反転信号を前記バスに出力する変換回路とを備える、データ処理装置。
【請求項2】
前記バスがトライステート出力バッファを有する、請求項1に記載のデータ処理装置。
【請求項3】
前記バスはプリチャージバスであり、
前記第1の論理は前記プリチャージバスをプリチャージされた状態に維持する論理で、前記第2の論理は前記プリチャージバスを放電する論理である、請求項1に記載のデータ処理装置。
【請求項4】
前記変換回路は、前記入力信号を各々が所定数のビットを持つビット単位に分割し、前記ビット単位ごとに前記変換信号および前記反転/非反転信号を生成し、前記変換信号および前記反転/非反転信号を前記バスに出力する、請求項1〜3のいずれかに記載のデータ処理装置。
【請求項5】
前記バスを介して転送された前記変換信号および前記反転/非反転信号を受けて、前記入力信号を復元する復元回路をさらに備える、請求項1〜4のいずれかに記載のデータ処理装置。
【請求項6】
前記変換回路は、
前記反転/非反転信号と前記所定数のビットとにおける前記第1の論理の数が前記第2の論理の数以上か否かを判定し、前記判定に基づいて前記反転/非反転信号を生成する反転/非反転信号生成回路と、
前記入力信号を反転するインバータと、
前記反転/非反転信号に従って、前記入力信号と前記入力信号の反転信号とのいずれか一方を選択し、前記選択された信号を前記変換信号として出力するセレクタとを含む、請求項1〜5のいずれかに記載のデータ処理装置。
【請求項7】
前記復元回路は、
前記変換信号を反転するインバータと、
前記反転/非反転信号に従って、前記変換信号と前記変換信号の反転信号とのいずれか一方を選択し、前記選択された信号を前記入力信号として出力するセレクタとを含む、請求項5に記載のデータ処理装置。
【請求項8】
前記トライステート出力バッファは、
第1の電位ノードと、
前記第1の電位ノードより電位の低い第2の電位ノードと、
前記第1の電位ノードと第1のスイッチを介して接続され、かつ前記第2の電位ノードと第2のスイッチを介して接続された、前記バスとの接続ノードと、
出力制御信号と前記変換信号と前記反転/非反転信号とから前記第1のスイッチのオン/オフを制御する第1の制御信号を生成する第1の論理回路と、
前記出力制御信号と前記変換信号と前記反転/非反転信号とから前記第2のスイッチのオン/オフを制御する第2の制御信号を生成する第2の論理回路とを備え、
前記接続ノードは、高インピーダンス状態、または前記変換信号および前記反転/非反転信号の出力状態に設定されることを特徴とする、請求項2および4〜7のいずれかに記載のデータ処理装置。
【請求項9】
前記プリチャージバスは、
第1の電位ノードと、
前記第1の電位ノードより電位の低い第2の電位ノードと、
プリチャージノードと、
前記第1の電位ノードと前記プリチャージノードとの間に接続され、ゲートにクロック信号、または前記クロック信号の反転信号を受ける第1導電型の第1のトランジスタと、
一端が前記第2の電位ノードに接続され、ゲートに前記クロック信号、または前記クロック信号の反転信号を受ける第2導電型の第2のトランジスタと、
前記プリチャージノードと前記第2のトランジスタの他端との間に接続され、ゲートに前記変換信号および前記反転/非反転信号、または前記変換信号の反転信号および前記反転/非反転信号の反転信号を受ける第2導電型の第3のトランジスタと、
前記第1の電位ノードと前記プリチャージノードとの間に接続される第1導電型の第4のトランジスタと、
前記プリチャージノードと前記第4のトランジスタのゲートとの間に接続されるインバータとを含む、請求項3〜7のいずれかに記載のデータ処理装置。
【請求項10】
前記所定数は8である、請求項1〜9のいずれかに記載のデータ処理装置。
【請求項11】
前記入力信号は、データ信号である、請求項1〜10のいずれかに記載のデータ処理装置。
【請求項12】
前記入力信号は、アドレス信号である、請求項1〜10のいずれかに記載のデータ処理装置。
【請求項13】
複数ビットのデータを転送するバスと、
前記バスを介して転送する入力信号を受け、前記入力信号の所定数のビットの論理を、反転/非反転信号と前記所定数のビットとにおける第1の論理の数が第2の論理の数以上となるように反転または非反転して変換信号を生成し、かつ前記変換信号の前記所定数のビットの反転または非反転を示す前記反転/非反転信号を生成し、前記変換信号および前記反転/非反転信号を前記バスに出力する変換回路を含む処理部と、
前記バスを介して転送された前記変換信号および前記反転/非反転信号を受けるメモリ部とを備える、データ処理システム。
【請求項14】
前記メモリ部は、前記バスを介して転送された前記変換信号および前記反転/非反転信号を受けて前記入力信号を復元する復元回路を含む、請求項13に記載のデータ処理システム。
【請求項15】
前記バスを介して転送された前記変換信号および前記反転/非反転信号を受けて、前記入力信号を復元する復元回路をさらに備える、請求項13に記載のデータ処理システム。
【請求項16】
前記処理部は、前記メモリ部から前記バスを介して転送される前記変換信号および前記反転/非反転信号を受けて前記入力信号を復元する復元回路をさらに含む、請求項13に記載のデータ処理システム。
【請求項17】
バスを介して転送すべき入力信号を変換するデータ変換方法であって、
前記入力信号の所定数のビット論理を、反転/非反転信号と前記所定数のビットとにおける第1の論理の数が第2の論理の数以上となるように反転または非反転して変換信号を生成するステップと、
前記変換信号の前記所定数のビットの反転または非反転を示す前記反転/非反転信号を生成するステップと、
前記変換信号および前記反転/非反転信号を前記バスに出力するステップとを備える、データ処理方法。
【請求項18】
前記変換信号を生成するステップに先立って、前記入力信号を各々が所定数のビットを有するビット単位に分割するステップをさらに備える、請求項17に記載のデータ処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【公開番号】特開2006−203756(P2006−203756A)
【公開日】平成18年8月3日(2006.8.3)
【国際特許分類】
【出願番号】特願2005−15383(P2005−15383)
【出願日】平成17年1月24日(2005.1.24)
【出願人】(503121103)株式会社ルネサステクノロジ (4,790)
【Fターム(参考)】
【公開日】平成18年8月3日(2006.8.3)
【国際特許分類】
【出願日】平成17年1月24日(2005.1.24)
【出願人】(503121103)株式会社ルネサステクノロジ (4,790)
【Fターム(参考)】
[ Back to top ]