(58)【調査した分野】(Int.Cl.,DB名)
前記反転判定部は、前記入力データを構成する複数ビットのそれぞれの値と、前記第1論理反転部から出力されたデータを構成する複数ビットのそれぞれの値と、を比較した結果、異なる論理値を示すビット数が同じ論理値を示すビット数より多い場合には、前記第1論理反転部から前記反転データを出力させるように前記判定結果信号を出力する、請求項1に記載のデータバス駆動回路。
前記反転判定部は、異なる論理値を示すビット数が同じ論理値を示すビット数以下である場合には、前記第1論理反転部から前記処理データをそのまま出力させるように前記判定結果信号を出力する、請求項2に記載のデータバス駆動回路。
前記データ処理部は、ECC復号化部であって、メモリセルアレイから読み出された前記入力データに対して、エラー訂正コードに基づくエラー訂正処理を施し、訂正された前記入力データを前記処理データとして出力する、請求項1に記載のデータバス駆動回路。
前記データ処理部は、パラレルデータである前記入力データをシリアルデータである前記処理データに変換するパラレルシリアル変換部である、請求項1に記載のデータバス駆動回路。
前記データ処理部は、シリアルデータである前記入力データをパラレルデータである前記処理データに変換するシリアルパラレル変換部である、請求項1に記載のデータバス駆動回路。
前記データ処理部は、記憶データ判定部であって、メモリセルアレイに書き込むための前記入力データを前記処理データとして出力するとともに、前記入力データを構成する複数ビットのうち論理値1を示すビットの数が論理値0を示すビットの数よりも多い場合に前記処理データを反転させるための反転フラグ信号を出力する、請求項1に記載のデータバス駆動回路。
【発明を実施するための形態】
【0011】
以下、図面を参照しつつ、実施の形態について説明する。なお、図面は簡略的なものであるから、この図面の記載を根拠として実施の形態の技術的範囲を狭く解釈してはならない。また、同一の要素には、同一の符号を付し、重複する説明は省略する。
【0012】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【0013】
さらに、以下の実施の形態において、その構成要素(動作ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等(個数、数値、量、範囲等を含む)についても同様である。
【0014】
<実施の形態1>
図1は、実施の形態1に係る半導体装置10を示すブロック図である。半導体装置10は、メモリ部からデータを読み出す場合において、ECC復号化部にて処理される前のデータを用いて、データバスに伝達するデータを反転させるか否かを判定する処理を行っている。それにより、ECC復号化部によるECC処理と、データバスに伝達するデータを反転させるか否かを判定する処理と、を並列に実行することが可能になるため、処理性能を低下させることなく消費電力を低減することができる。以下、具体的に説明する。
【0015】
図1に示すように、半導体装置10は、データの書き込み及び読み出しが行われるメモリ部11と、メモリ部11とデータの受け渡しを行うロジック部12と、メモリ部11及びロジック部12間を接続するバスDBUS,RBUSと、を備える。バスDBUSは、メモリ部11から読み出されたデータ、及び、メモリ部11に書き込むデータが伝搬するバスである。バスRBUSは、後述する判定結果信号が伝搬するバスである。なお、
図1には、メモリ部11のデータ読み出し動作に関連する構成要素のみが示されている。
【0016】
メモリ部11は、メモリセルアレイ111と、ECC復号化部112と、反転判定部113と、論理反転部114と、を備える。メモリ部11は、例えば、DRAM、SRAM、ROM、その他の各種不揮発性メモリである。なお、ECC復号化部112と、反転判定部113と、論理反転部114と、により、データバス駆動回路が構成される。
【0017】
メモリセルアレイ111は、行列状に配置された複数のメモリセルを備える。メモリセルアレイ111には、メインデータが記憶されるとともに、メインデータに基づき算出されるエラー訂正コード(例えば、ハミングコード、パリティデータ)が記憶される。
【0018】
ECC復号化部112は、メモリセルアレイ111から読み出されたデータDi1に対して、エラー訂正コードDp1に基づくエラー訂正処理を施し、訂正されたデータDa1を出力する。なお、データDi1,Da1は、n(nは2以上の整数)ビット幅のデータである。エラー訂正コードDp1は、m(mは1以上の整数)ビット幅のコードである。
【0019】
論理反転部114は、判定結果信号r1に基づいてデータDa1又はその反転データをデータDt1としてデータバスDBUSに出力する。データDa1の反転データとは、データDa1を構成する複数ビットのそれぞれの値を論理反転したデータのことである。なお、データDt1は、nビット幅のデータである。データバスDBUSは、nビット幅のバスである。
【0020】
反転判定部113は、ECC復号化部112にて処理される前のデータDi1と、論理反転部114から出力され、データバスDBUSを伝搬する1サイクル前のデータDt1と、を比較して、その比較結果に応じた判定結果信号r1を出力する。なお、判定結果信号r1は、論理値0又は1を示す1ビット幅の信号である。
【0021】
具体的には、反転判定部113は、データDi1を構成するnビットのそれぞれの値と、データDt1を構成するnビットのそれぞれの値と、を比較して、異なる論理値を示すビットの数が同じ論理値を示すビットの数よりも多い場合、論理反転部114にデータDa1を反転させてデータDt1として出力させるように判定結果信号r1を出力する。
【0022】
ロジック部12は、ロジック回路121と、論理反転部124と、を備える。
【0023】
論理反転部124は、メモリ部11からバスRBUSを介して伝達された判定結果信号r1に基づいて、メモリ部11からデータバスDBUSを介して伝達されたデータDt1又はその反転データをデータDo1として出力する。
【0024】
ロジック回路121は、論理反転部124から出力されたデータDo1を受け取って所定の処理を実行する。
【0025】
例えば、反転判定部113は、データDi1を構成するnビットのそれぞれの値と、データDt1を構成するnビットのそれぞれの値と、を比較して、異なる論理値を示すビットの数が同じ論理値を示すビットの数よりも多い場合、Hレベルの判定結果信号r1を出力し、それ以外では、Lレベルの判定結果信号r1を出力する。Hレベルの判定結果信号r1が出力された場合、論理反転部114は、データDa1を反転させてデータDt1として出力し、論理反転部124は、データDt1を再度反転させてデータDo1として出力する(データDa1を復元する)。一方、Lレベルの判定結果信号r1が出力された場合、論理反転部114は、データDa1をそのままデータDt1として出力し、論理反転部124は、データDt1をそのままデータDo1として出力する。それにより、読み出しデータの遷移に伴う、データDt1を構成するnビットのそれぞれの値の変化、を常に半分以下に抑えることができるため、消費電力を低減することができる。なお、バスRBUSは1ビットであるため、データバスDBUSのビット幅が大きくなるほど、バスRBUSの消費電力の影響は無視できるほどに小さくなる。
【0026】
ここで、反転判定部113は、ECC復号化部112にて処理される前のデータDi1を用いて、論理反転部114にてデータDa1を反転させるか否かを判定している。つまり、反転判定部113は、ECC復号化部112による処理結果を待たずに、ECC復号化部112とともに並列に処理を実行している。それにより、ECC復号化部112による処理結果を待って反転判定部113にて処理が実行される場合と比較して、処理性能を低下させることなく消費電力を低減することができる。
【0027】
なお、ECC復号化部112にて処理される前のデータDi1には、エラービットが含まれている可能性があるが、その頻度及びビット数は無視できる程度に非常に少ない。そのため、データDa1を反転させるか否かの判定に影響を与えることはほとんどない。
【0028】
このように、半導体装置10は、データバスDBUSに伝達するデータを反転させるか否かを判定する処理を、ECC復号化部112にて処理される前のデータを用いて行っている。それにより、ECC復号化部によるECC処理と、データバスに伝達するデータを反転させるか否かを判定する処理と、を並列に実行することが可能になるため、処理性能(処理速度)を低下させることなく消費電力を低減することができる。
【0029】
また、大負荷のデータバスDBUSに伝達するデータの遷移を少なくすることにより、充放電のピーク電流を削減することができるため、電源ノイズを低減することも可能である。
【0030】
さらに、メモリ部11内でECC復号化部112による処理が行われるため、エラー訂正コードを伝搬するデータバスを設ける必要が無い。そのため、データバスにて消費される電力の増大を抑制することができるとともに、回路規模の増大を抑制することができる。
【0031】
図2は、半導体装置10が適用されたLSIシステム1を示すブロック図である。
【0032】
図2に示すように、LSIシステム1は、複数のメモリ部11と、ロジック部12と、複数のメモリ部11とロジック部12との間を接続するバスDBUS,RBUSと、を備える。つまり、LSIシステム1は、半導体装置10のうちメモリ部11を複数備えたものと等価である。
【0033】
ここで、複数のメモリ部11は、大規模メモリを複数に分割して形成されたものである。複数のメモリ部11のうちデータ読み出し対象のメモリ部11のみを活性化して、残りを非活性化しておくことができるため、メモリ全体の消費電力を低減することができる。
【0034】
しかしながら、大規模メモリを複数に分割した結果、複数のメモリ部11とロジック部12とを接続するデータバスDBUSが長くなり負荷容量が大きくなってしまう。そのため、データビット数が増加すると、データバスで消費される電力の割合はますます高くなる。
【0035】
そこで、LSIシステム1は、半導体装置10の仕組みを適用することで、処理性能を低下させることなく消費電力を低減している。
【0036】
<実施の形態2>
図3は、実施の形態2に係る半導体装置20を示すブロック図である。半導体装置20は、ロジック部からメモリ部にデータを書き込む場合において、ECC符号化部にて処理される前のデータを用いて、データバスに伝達するデータを反転させるか否かを判定する処理を行っている。それにより、ECC符号化部による処理と、データバスに伝達するデータを反転させるか否かを判定する処理と、を並列に実行することが可能になるため、処理性能を低下させることなく消費電力を低減することができる。以下、具体的に説明する。
【0037】
図3に示すように、半導体装置20は、メモリ部21と、ロジック部22と、メモリ部21及びロジック部22間を接続するバスDBUS,PBUS,RBUSと、を備える。メモリ部21及びロジック部22は、それぞれメモリ部11及びロジック部12に対応する。データバスPBUSは、エラー訂正コードが伝搬するバスである。なお、
図3には、メモリ部21のデータ書き込み動作に関連する構成要素のみが示されている。
【0038】
ロジック部22は、ロジック回路221と、ECC符号化部222と、ラッチ部224と、反転判定部223と、論理反転部225,226と、を備える。ロジック回路221は、ロジック回路121に対応する。なお、ECC符号化部222と、ラッチ部224と、反転判定部223と、論理反転部225,226と、により、データバス駆動回路が構成される。
【0039】
ロジック回路221は、メモリ部21に書き込むデータDi2を出力する。なお、データDi2は、nビット幅のデータである。
【0040】
ECC符号化部222は、データDi2に基づいてエラー訂正コードDp2を算出して出力する。なお、エラー訂正コードDp2は、mビット幅のデータである。
【0041】
ラッチ部224は、クロック信号に同期して動作し、ECC符号化部222が符号化処理を完了したのを受けて、データDi2を後段の論理反転部225に出力する。なお、ラッチ部224と論理反転部225とにより一つのラッチ部が形成されていてもよい。
【0042】
論理反転部225は、後述する判定結果信号r2に基づいてデータDi2又はその反転データをデータDt2としてデータバスDBUSに出力する。論理反転部226は、判定結果信号r2に基づいてエラー訂正コードDp2又はその反転データをデータDpt2としてデータバスPBUSに出力する。なお、データバスPBUSは、mビット幅のバスである。
【0043】
反転判定部223は、ECC符号化部222にて処理される前のデータDi2と、論理反転部225から出力され、データバスDBUSを伝搬する1サイクル前のデータDt2と、を比較して、その比較結果に応じた判定結果信号r2を出力する。なお、判定結果信号r2は、論理値0又は1を示す1ビット幅の信号である。
【0044】
具体的には、反転判定部223は、データDi2を構成するnビットのそれぞれの値と、データDt2を構成するnビットのそれぞれの値と、を比較して、異なる論理値を示すビットの数が同じ論理値を示すビットの数よりも多い場合、論理反転部225にデータDi2を反転させてデータDt2として出力させるとともに、論理反転部225にエラー訂正コードDp2を反転させてデータDpt2として出力させるように、判定結果信号r2を出力する。
【0045】
メモリ部21は、メモリセルアレイ211と、論理反転部215,216と、を備える。メモリセルアレイ211は、メモリセルアレイ111に対応する。
【0046】
論理反転部215は、ロジック部22からバスRBUSを介して伝達された判定結果信号r2に基づいて、ロジック部22からデータバスDBUSを介して伝達されたデータDt2又はその反転データをデータDo2として出力する。
【0047】
論理反転部216は、ロジック部22からバスRBUSを介して伝達された判定結果信号r2に基づいて、ロジック部22からデータバスPBUSを介して伝達されたデータDpt2又はその反転データをエラー訂正コードDp2として出力する。
【0048】
論理反転部215,216から出力されたデータDo2及びエラー訂正コードDp2は、メモリセルアレイ211に書き込まれる。
【0049】
例えば、反転判定部223は、データDi2を構成するnビットのそれぞれの値と、データDt2を構成するnビットのそれぞれの値と、を比較して、異なる論理値を示すビットの数が同じ論理値を示すビットの数よりも多い場合、Hレベルの判定結果信号r2を出力し、それ以外では、Lレベルの判定結果信号r2を出力する。Hレベルの判定結果信号r2が出力された場合、論理反転部225は、データDi2を反転させてデータDt2として出力し、論理反転部215は、データDt2を再度反転させてデータDo2として出力する(データDi2を復元する)。一方、Lレベルの判定結果信号r2が出力された場合、論理反転部225は、データDi2をそのままデータDt2として出力し、論理反転部215は、データDt2をそのままデータDo2として出力する。それにより、書き込みデータの遷移に伴う、データDt2を構成するnビットのそれぞれの値の変化、を常に半分以下に抑えることができるため、消費電力を低減することができる。なお、バスRBUSは1ビットであるため、データバスDBUSのビット幅が大きくなるほど、バスRBUSの消費電力の影響は無視できるほどに小さくなる。
【0050】
ここで、反転判定部223は、ECC符号化部222(及びラッチ部224)にて処理される前のデータDi2を用いて、論理反転部225にてデータDi2を反転させるか否かを判定している。つまり、反転判定部223は、ECC符号化部222(及びラッチ部224)による処理結果を待たずに、ECC符号化部222(及びラッチ部224)とともに並列に処理を実行している。それにより、ECC符号化部222(及びラッチ部224)による処理結果を待って反転判定部223にて処理が実行される場合と比較して、処理性能を低下させることなく消費電力を低減することができる。
【0051】
なお、反転判定部223は、ECC符号化部222にて生成されるエラー訂正コードDp2を反転させるか否かの判定を行わないが、一般的にはn>mであるため、データセット(書き込みデータ+エラー訂正コード)の反転判定における誤差は小さい。また、データDi2のビット数nが増加すると、エラー訂正コードDp2のビット数mの比率m/nは小さくなる。そのため、データDi2のビット数nが大きくなるほどデータセットの反転判定における誤差は小さくなる。つまり、より効率的に消費電力を削減することが可能になる。さらに、反転判定部223は、エラー訂正コードDp2を反転させるか否かの判定を行わず、データDi2を反転させるか否かの判定のみを行っているため、それぞれについて判定を行う場合よりも、判定処理速度を向上させることができる。
【0052】
このように、半導体装置20は、データバスDBUSに伝達するデータを反転させるか否かを判定する処理を、ECC符号化部222(及びラッチ部224)にて処理される前のデータを用いて行っている。それにより、ECC符号化部222(及びラッチ部224)による処理と、データバスに伝達するデータを反転させるか否かを判定する処理と、を並列に実行することが可能になるため、処理性能(処理速度)を低下させることなく消費電力を低減することができる。
【0053】
また、大負荷のデータバスDBUSに伝達するデータの遷移を少なくすることにより、充放電のピーク電流を削減することができるため、電源ノイズを低減することも可能である。
【0054】
図3では、エラー訂正コードの伝搬経路上に論理反転部216,226が設けられた場合について説明したが、これに限られない。エラー訂正コードは反転判定部323による反転判定の対象外であるため、論理反転部216,226は設けられていなくてもよい。
【0055】
図4は、半導体装置20が適用されたLSIシステム2を示すブロック図である。
【0056】
図4に示すように、LSIシステム2は、複数のメモリ部21と、ロジック部22と、複数のメモリ部21とロジック部22との間を接続するバスDBUS,RBUSと、を備える。つまり、LSIシステム2は、半導体装置20のうちメモリ部21を複数備えたものと等価である。
【0057】
ここで、複数のメモリ部21は、大規模メモリを複数に分割して形成されたものである。複数のメモリ部21のうちデータ書き込み対象のメモリ部21のみを活性化して、残りを非活性化しておくことができるため、メモリ全体の消費電力を低減することができる。
【0058】
しかしながら、大規模メモリを複数に分割した結果、複数のメモリ部21とロジック部22とを接続するデータバスDBUSが長くなり負荷容量が大きくなってしまう。そのため、データビット数が増加すると、データバスで消費される電力の割合はますます高くなる。
【0059】
そこで、LSIシステム2は、半導体装置20の仕組みを適用することで、処理性能を低下させることなく消費電力を低減している。
【0060】
なお、ECC符号化部222は、ロジック部22内に1つ設置すれば良く、複数のメモリ部21のそれぞれに搭載される必要はない。そのため、回路規模の増大が抑制される。
【0061】
続いて、半導体装置10,20の適用事例について説明する。
【0062】
例えば、CPUのキャッシュメモリでは、データを読み出す動作の比率が高いので、データの読み出し動作に関連する構成に対して半導体装置10の仕組みを適用する。それにより、データの読み出し動作において、処理性能を低下させることなく消費電力を低減することができる。一方、データの書き込み動作に関連する構成については、ECC符号化部をロジック部ではなくメモリ部に設ける。それにより、データ書き込み時にエラー訂正コードが伝搬するバスPBUSを省略することが可能となる。
【0063】
また、例えば、画像バッファでは、データの読み出し及び書き込みの動作比率はほぼ等しい。しかしながら、一般的にメモリには、データの書き込みによる消費電力が、データの読み出しによる消費電力よりも大きい傾向がある。そこで、画像バッファでは、データの書き込み動作に関連する構成に対して半導体装置20の仕組みを適用する。それにより、データの書き込み動作において、処理性能を低下させることなく消費電力を低減することができる。一方、データの読み出しに関連する構成については、ECC復号化部をメモリ部ではなくロジック部に設ける。それにより、メモリ部の回路面積を小さくしてコストを削減することができる。
【0064】
このとき、回路面積やバス本数の削減効果はチップの設計条件によって異なるが、メモリ仕様やアプリケーション環境に合わせて高速性能化、パワー削減及びコスト削減を実現することが可能となる。
【0065】
なお、DRAMの場合、定期的にリフレッシュが必要になるので、ECC復号化部及びECC符号化部の搭載は、信頼性の向上とともにセルデータの保持時間を長くする(ホールド特性を改善する)効果を持つ。これは、リフレッシュ頻度を削減するので、スタンバイ電流の削減につながる。ここで、DRAMは、メモリセル面積が小さいので、大規模メモリ構成を実現する場合に頻繁に使用される。そのため、DRAMでは、メモリの大規模化に伴う速度遅れ、リフレッシュ電流増加、データの書き込み及び読み出し時のアクティブ電流増加の問題が生じやすく、半導体装置10,20の仕組みの適用は特に有効である。
【0066】
<実施の形態3>
図5は、実施の形態3に係る半導体装置30を示すブロック図である。半導体装置30は、半導体装置10,20のそれぞれの仕組みを備えている。
【0067】
図5に示すように、半導体装置30は、メモリ部31と、ロジック部32と、メモリ部31及びロジック部32間を接続するバスDBUS,PBUS,RBUSと、を備える。メモリ部31及びロジック部32は、メモリ部11及びロジック部12に対応する。バスDBUS,PBUS,RBUSは、何れも、データの読み出し及び書き込みのそれぞれで共用される双方向バスである。
【0068】
メモリ部31は、メモリセルアレイ311と、ECC復号化部312と、反転判定部313と、論理反転部314,315と、を備える。メモリセルアレイ311、ECC復号化部312、反転判定部313及び論理反転部314,315は、それぞれメモリセルアレイ111、ECC復号化部112、反転判定部113及び論理反転部114,215に対応する。
【0069】
具体的には、メモリ部31は、メモリ部11と比較して、データバスDBUSを介して供給される書き込みデータをメモリセルアレイ311に伝達する信号経路と、当該信号経路上に設けられた論理反転部315と、データバスPBUSを介して供給されるエラー訂正コードをメモリセルアレイ311に伝達する信号経路と、をさらに備える。メモリ部31のその他の構成については、メモリ部11と同様であるため、その説明を省略する。
【0070】
ロジック部32は、ロジック回路321と、ECC符号化部322と、ラッチ部326と、反転判定部323と、論理反転部324,325と、を備える。ロジック回路321、ECC符号化部322、ラッチ部326、反転判定部323及び論理反転部324,325は、それぞれロジック回路221、ECC符号化部222、ラッチ部224、反転判定部223及び論理反転部124,225に対応する。
【0071】
具体的には、ロジック部32は、ロジック部22と比較して、データバスDBUSを介して供給される読み出しデータをロジック回路321に伝達する信号経路と、当該信号経路上に設けられた論理反転部324と、をさらに備える。ロジック部32のその他の構成については、ロジック部22と同様であるため、その説明を省略する。
【0072】
半導体装置30は、半導体装置10,20のそれぞれと同等の効果を奏することができる。さらに、半導体装置30では、データバスがデータの読み出し及び書き込みのそれぞれで共用されている。そのため、バス本数を削減することが可能である。
【0073】
<実施の形態4>
図6は、実施の形態4に係る半導体装置40を示すブロック図である。半導体装置40は、半導体装置10,20等を上位概念化した図である。
【0074】
図6に示すように、半導体装置40は、送信部41と、受信部42と、送信部41及び受信部42間を接続するバスDBUS,RBUSと、を備える。送信部41は、処理回路(データ処理部)411と、論理反転部(第1論理反転部)414と、反転判定部413と、を備える。受信部42は、論理反転部(第2論理反転部)424を備える。例えば、処理回路412、反転判定部413及び論理反転部414,424は、それぞれ、
図1におけるECC復号化部112、反転判定部113及び論理反転部114,124である。
【0075】
処理回路412は、入力データセットDiに対して処理を施しデータDaを出力する。論理反転部414は、判定結果信号rに基づいてデータDa又はその反転データをデータDtとしてデータバスDBUSに出力する。論理反転部424は、判定結果信号rに基づいてデータバスDBUSを介して伝達されたデータDt又はその反転データをデータDoとして出力する。
【0076】
反転判定部413は、処理回路412により処理される前のデータDij(データDiの一部又は全部)と、論理反転部414から出力され、データバスDBUSを伝搬する1サイクル前のデータDtj(データDtの一部又は全部)と、を比較して、その比較結果に応じた判定結果信号rを出力する。
【0077】
例えば、反転判定部413は、データDijを構成するnビットのそれぞれの値と、データDtjを構成するnビットのそれぞれの値と、を比較して、異なる論理値を示すビットの数が同じ論理値を示すビットの数よりも多い場合、Hレベルの判定結果信号rを出力し、それ以外では、Lレベルの判定結果信号rを出力する。Hレベルの判定結果信号rが出力された場合、論理反転部414は、データDaを反転させてデータDtとして出力し、論理反転部424は、データDtを再度反転させてデータDoとして出力する(データDaを復元する)。一方、Lレベルの判定結果信号rが出力された場合、論理反転部414は、データDiをそのままデータDtとして出力し、論理反転部424は、データDtをそのままデータDoとして出力する。それにより、送信するデータの遷移に伴う、データDtを構成するnビットのそれぞれの値の変化、を常に半分以下に抑えることができるため、消費電力を低減することができる。なお、バスRBUSは1ビットであるため、データバスDBUSのビット幅が大きくなるほど、バスRBUSの消費電力は無視できるほどに小さくなる。
【0078】
ここで、反転判定部413は、処理回路412にて処理される前のデータDijを用いて、論理反転部414にてデータDaを反転させるか否かを判定している。つまり、反転判定部43は、処理回路412による処理結果を待たずに、処理回路412とともに並列に処理を実行している。それにより、処理回路412による処理結果を待って反転判定部413にて処理が実行される場合と比較して、処理性能を低下させることなく消費電力を低減することができる。
【0079】
なお、処理回路412にて処理される前のデータDiには、処理された後のデータDaと完全に一致しない可能性があるが、その頻度及びビット数が少なければ、データDaを反転させるか否かの判定に与える影響は少ない。
【0080】
図7は、データビット数と、処理回路412の処理前後のデータ間で一致するビット数の割合と、を各々設定した場合における、パワー削減効果を示す図である。例えば、処理回路412の処理前後のデータの誤差が小さいほど、処理回路412の処理前後のデータ間で一致するビット数の割合は大きくなる。一方、処理回路412の処理前後のデータの誤差が大きいほど、処理回路412の処理前後のデータ間で一致するビット数の割合は小さくなる。なお、本例では、論理反転処理が全く行われない場合におけるデータバスの消費電力を100%として、各条件でのデータバスの消費電力の割合(%)、が示されている。
【0081】
図7に示すように、データビット数が多くなるほど、データバスの消費電力は低減している(パワー削減効果は向上している)。また、処理回路412の処理前後のデータ間で一致するビット数の割合が大きい(即ち、処理回路412の処理前後のデータの誤差が小さい)ほど、データバスの消費電力は低減している。
【0082】
例えば、反転判定部413にて消費される電力が10〜15%程度であると仮定すると、データバスDBUSの消費電力は85%以下であることが好ましい。また、データビット数は8ビット以上が現実的である。これらを考慮すると、処理回路412の処理前後のデータ間で一致するビット数の割合が50%以上でパワー削減効果を得られることがわかる。具体的には、ECC復号化部112の処理前後のデータの誤差が50%以下でパワー削減効果を得られることがわかる。
【0083】
このように、半導体装置40は、処理回路412の処理結果を待たずに、処理回路412にて処理される前のデータを用いて、反転判定部413による反転判定処理を行っている。それにより、処理回路412による処理と、反転判定部413による処理と、を並列に実行することが可能になるため、処理性能(処理速度)を低下させることなく消費電力を低減することができる。
【0084】
半導体装置40をより具体的に示したものが半導体装置10,20であるが、それ以外の具体的な構成例についても以降の実施形態で説明する。
【0085】
<実施の形態5>
図8は、実施の形態5に係る半導体装置50を示すブロック図である。半導体装置50は、半導体装置40の具体的構成の一つを示したものである。
【0086】
図8に示すように、半導体装置50は、バースト処理部51と、ロジック部52と、バースト処理部51及びロジック部52間を接続するバスDBUS,RBUSと、を備える。
【0087】
バースト処理部51は、パラレルシリアル変換部(以下、パラシリ変換部と称す)512と、反転判定部513と、論理反転部514と、を備える。
【0088】
パラシリ変換部512は、n×8ビットのパラレルデータDi5を、nビットのシリアルデータDa5に変換する。パラレルデータDi5は、nビットのバーストデータDi50〜Di57により構成される。シリアルデータDa5は、nビットのバーストデータDa50〜Da57がシリアル形式に連なって構成される。
【0089】
論理反転部514は、反転判定部513からの判定結果信号r5に基づいてシリアルデータDa5又はその反転データをデータDt5としてデータバスDBUSに出力する。
【0090】
反転判定部513は、パラシリ変換部512により処理される前のパラレルデータDi5の一部(例えば、バーストデータDi50)と、論理反転部514から出力され、データバスDBUSを伝搬するバーストデータ(例えば、ひとつ前のシリアルデータDt5の最後のバーストデータDt57)と、を比較して、その比較結果に応じた判定結果信号r5を出力する。なお、判定結果信号r5は、論理値0又は1を示す1ビット幅の信号である。また、判定結果信号r5は、バーストデータDa50〜Da57に対応する判定結果信号r50〜r57がシリアル形式に連なって構成される。
【0091】
ロジック部52は、論理反転部524を備える。論理反転部524は、バースト処理部51からデータバスRBUSを介して伝達された判定結果信号r5に基づいて、バースト処理部51からデータバスDBUSを介して伝達されたデータDt5又はその反転データをデータDo5として出力する。
【0092】
図9は、半導体装置50の動作を示すタイミングチャートである。
図9に示すように、パラシリ変換部512は、パラレルデータDi5が入力されると、当該パラレルデータDi5をシリアルデータDa5に変換する処理を行う。また、反転判定部513は、パラシリ変換部512とともに並列に処理を実行する。
【0093】
具体的には、反転判定部513は、パラシリ変換部512により処理される前のパラレルデータDi5のうちバーストデータDi50と、データバスDBUSを伝搬する1サイクル前のバーストデータDa57と、を比較する。そして、その比較結果に応じた判定結果信号r50を出力する。
【0094】
論理反転部514は、判定結果信号r50に基づいて、パラシリ変換部512から出力されているバーストデータDa50又はその反転データを、データDt50としてデータバスDBUSに出力する。
【0095】
パラシリ変換部512がバーストデータDa50を出力している間、反転判定部513は、パラレルデータDi5のうちバーストデータDi51と、データバスDBUSを伝搬する1サイクル前のバーストデータDt50と、を比較する。そして、その比較結果に応じた判定結果信号r51を出力する。
【0096】
パラシリ変換部512が次のバーストデータDa51を出力し始めると、論理反転部514は、判定結果信号r51に基づいて、パラシリ変換部512から出力されているバーストデータDa51又はその反転データを、データDt51としてデータバスDBUSに出力する。
【0097】
パラシリ変換部512がバーストデータDa51を出力している間、反転判定部513は、パラレルデータDi5のうちバーストデータDi52と、データバスDBUSを伝搬する1サイクル前のバーストデータDt51と、を比較する。そして、その比較結果に応じた判定結果信号r52を出力する。
【0098】
パラシリ変換部512が次のバーストデータDa52を出力し始めると、論理反転部514は、判定結果信号r52に基づいて、パラシリ変換部512から出力されているバーストデータDa52又はその反転データを、データDt52としてデータバスDBUSに出力する。このような反転判定の処理が各バーストデータについて行われる。
【0099】
ここで、反転判定部513は、パラシリ変換部512にて処理される前のパラレルデータDi5を用いて、論理反転部514にてシリアルデータDa5を反転させるか否かを判定している。つまり、反転判定部513は、パラシリ変換部512による処理結果を待たずに、パラシリ変換部512とともに並列に処理を実行している。それにより、パラシリ変換部512による処理結果を待って反転判定部513にて処理が実行される場合と比較して、処理性能を低下させることなく消費電力を低減することができる。
【0100】
なお、
図10に示すように、反転判定部513によるバーストデータDa50の反転判定の処理が、パラシリ変換部512による変換処理の完了に間に合わない場合がある。その場合には、バーストデータDa50の反転判定は省略される。この場合、本例では1/8の反転判定の誤差が生じるが、バーストデータの数が多くなるほど反転判定の誤差は小さくなる。
【0101】
このように、半導体装置50は、パラシリ変換部512の処理結果を待たずに、パラシリ変換部512にて処理される前のデータを用いて、反転判定部513による反転判定処理を行っている。それにより、パラシリ変換部512による変換処理と、反転判定部513による処理と、を並列に実行することが可能になるため、処理性能(処理速度)低下させることなく消費電力を低減することができる。
【0102】
<実施の形態6>
図11は、実施の形態6に係る半導体装置60を示すブロック図である。半導体装置60は、半導体装置40の具体的構成の一つを示したものである。
【0103】
図11に示すように、半導体装置60は、バースト処理部61と、ロジック部62と、バースト処理部61及びロジック部62間を接続するバスDBUS,RBUSと、を備える。なお、データバスDBUSは、8本のnビットのデータバスDBUS0〜DBUS7により構成される。データバスRBUSは、8本の1ビットのデータバスRBUS0〜RBUS7により構成される。
【0104】
バースト処理部61は、シリアルパラレル変換部(以下、シリパラ変換部と称す)612と、反転判定部613と、8個の論理反転回路6140〜6147からなる論理反転部614と、を備える。
【0105】
シリパラ変換部612は、nビットのシリアルデータDi6を、n×8ビットのパラレルデータDa6に変換する。シリアルデータDi6は、nビットのバーストデータDi60〜Di67がシリアル形式に連なって構成される。パラレルデータDa6は、nビットのデータDa60〜Da67により構成される。
【0106】
論理反転部614は、反転判定部613からの判定結果信号r6に基づいて、パラレルデータDa6又はその反転データを、データDt6としてデータバスDBUSに出力する。より具体的には、論理反転回路6140〜6147は、それぞれ、判定結果信号r60〜r67に基づいて、データDa60〜Da67又はそれらの反転データを、データDt60〜Dt67としてデータバスDBUS0〜DBUS7に出力する。
【0107】
反転判定部613は、シリパラ変換部612により処理される前のシリアルデータDi6の一部(例えば、バーストデータDi60)と、論理反転部614から出力され、データバスDBUSを伝搬するパラレルデータの一部(例えば、ひとつ前のパラレルデータDt6の一部であるバーストデータDt60)と、を比較して、その比較結果に応じた判定結果信号r6を出力する。なお、判定結果信号r6は、1ビットの判定結果信号r60〜r67により構成される。
【0108】
ロジック部62は、8個の論理反転回路6240〜6247からなる論理反転部624を備える。論理反転部624は、バースト処理部61からデータバスRBUSを介して伝達された判定結果信号r6に基づいて、バースト処理部61からデータバスDBUSを介して伝達されたパラレルデータDt6又はその反転データをパラレルデータDo6として出力する。
【0109】
図12は、半導体装置60の動作を示すタイミングチャートである。
図12に示すように、シリパラ変換部612は、シリアルデータDi6を構成するバーストデータDi60〜Di67が全て入力されると、当該シリアルデータDi6をパラレルデータDa6に変換する処理を行う。また、反転判定部613は、シリパラ変換部612とともに並列に処理を実行する。
【0110】
具体的には、反転判定部613は、シリパラ変換部612により処理される前のシリアルデータDi6のうちバーストデータDi60と、データバスDBUS0を伝搬するバーストデータDt60と、を比較する。そして、その比較結果に応じた判定結果信号r60を出力する。
【0111】
同様にして、反転判定部613は、シリパラ変換部612により処理される前のシリアルデータDi6のうちバーストデータDi61〜Di67と、データバスDBUS1〜DBUS7を伝搬するバーストデータDt61〜Dt67と、をそれぞれ比較する。そして、それらの比較結果に応じた判定結果信号r61〜r67を出力する。
【0112】
論理反転部614を構成する論理反転回路6140〜6147は、それぞれ、判定結果信号r60〜r67に基づいて、シリパラ変換部612から出力されているバーストデータDa60〜Da67又はそれらの反転データを、バーストデータDt60〜Dt67(即ち、パラレルデータDt6)としてデータバスDBUS0〜DBUS7に出力する。
【0113】
ここで、反転判定部613は、シリパラ変換部612にて処理される前のシリアルデータDi6を用いて、論理反転部614にてパラレルデータDa6を反転させるか否かを判定している。つまり、反転判定部613は、シリパラ変換部612による処理結果を待たずに、シリパラ変換部612とともに並列に処理を実行している。それにより、シリパラ変換部612による処理結果を待って反転判定部613にて処理が実行される場合と比較して、処理性能を低下させることなく消費電力を低減することができる。
【0114】
なお、
図13に示すように、反転判定部613は、バーストデータDi60〜Di67が一つ入力される毎に、バーストデータDa60〜Da67の対応する一つの反転判定の処理を実行することが可能である。しかしながら、反転判定部613による最後のバーストデータDa67の反転判定の処理が、シリパラ変換部612による変換処理の完了に間に合わない場合がある。その場合には、バーストデータDa67の反転判定は省略される。この場合、本例では1/8の反転判定の誤差が生じるが、バーストデータの数が多くなるほど反転判定の誤差は小さくなる。
【0115】
このように、半導体装置60は、シリパラ変換部612の処理結果を待たずに、シリパラ変換部612にて処理される前のデータを用いて、反転判定部613による反転判定処理を行っている。それにより、シリパラ変換部612による変換処理と、反転判定部613による処理と、を並列に実行することが可能になるため、処理性能(処理速度)を低下させることなく消費電力を低減することができる。
【0116】
<実施の形態7>
図14は、実施の形態7に係る半導体装置70を示すブロック図である。半導体装置70は、半導体装置40の具体的構成の一つを示したものである。
【0117】
図14に示すように、半導体装置70は、メモリ部71と、ロジック部72と、メモリ部71及びロジック部72間を接続するバスDBUS,FBUS,RBUSと、を備える。なお、データバスFBUSは、反転フラグ信号が伝搬する1ビット幅のバスである。
【0118】
ロジック部72は、ロジック回路721と、記憶データ判定部722と、反転判定部723と、論理反転部725,726と、を備える。ロジック回路721、反転判定部723及び論理反転部725,726は、それぞれ、ロジック回路221、反転判定部223及び論理反転部225,226に対応する。
【0119】
ロジック回路721は、メモリ部71に書き込むデータDi7を出力する。記憶データ判定部722は、データDi7を反転してメモリ部71に書き込むか否かを判定し、その判定結果に基づき反転フラグ信号Df7及び書き込みデータDi7を同期出力する。論理反転部725は、判定結果信号r7に基づいてデータDi7又はその反転データをデータDt7としてデータバスDBUSに出力する。論理反転部726は、判定結果信号r7に基づいて反転フラグ信号Df7又はその反転データを反転フラグ信号Dft7としてデータバスFBUSに出力する。
【0120】
例えば、記憶データ判定部722は、メモリ部71に書き込むためのデータDi7を構成する複数ビットのうち、論理値1を示すビットの数が論理値0を示すビットの数より多い場合、反転フラグ信号をHレベルにし(立ち上げ)、それ以外では、反転フラグ信号をLレベルにする。
【0121】
反転判定部723は、記憶データ判定部722にて処理される前のデータDi7と、論理反転部725から出力され、データバスDBUSを伝搬する1サイクル前のデータDt7と、を比較して、その比較結果に応じた判定結果信号r7を出力する。
【0122】
メモリ部71は、メモリセルアレイ711と、論理反転部715〜717と、を備える。メモリセルアレイ711及び論理反転部715,716は、それぞれ、メモリセルアレイ211及び論理反転部215,216に対応する。以下では、メモリセルアレイ711に記憶されるデータのうち、論理値1を示すデータの方が、論理値0を示すデータよりも、データ保持に必要な消費電流が大きい、又は、データ保持性能が低い場合について説明する。
【0123】
論理反転部715は、ロジック部72からバスRBUSを介して伝達された判定結果信号r7に基づいて、ロジック部72からデータバスDBUSを介して伝達されたデータDt7又はその反転データをデータDo7として出力する。
【0124】
論理反転部716は、ロジック部72からバスRBUSを介して伝達された判定結果信号r7に基づいて、ロジック部72からデータバスFBUSを介して伝達された反転フラグ信号Dft7又はその反転データを反転フラグ信号Df7として出力する。
【0125】
そして、論理反転部717は、この反転フラグ信号Df7に基づいてデータDo7又はその反転データを出力する。論理反転部716,718からそれぞれ出力された反転フラグ信号Df7及びデータDo7は、メモリセルアレイ711に書き込まれる。
【0126】
それにより、メモリセルアレイ711に書き込まれるデータDo7を構成する複数ビットのうち、論理値1を示すビットの数を半分以下に抑えることができる。それにより、消費電流を低減するとともに、データ保持性能を向上させることができる。
【0127】
ここで、反転判定部723は、記憶データ判定部722にて処理される前のデータDi7を用いて、論理反転部725にてデータDi7を反転させるか否かを判定している。つまり、反転判定部723は、記憶データ判定部722による処理結果を待たずに、記憶データ判定部722とともに並列に処理を実行している。それにより、記憶データ判定部722による処理結果を待って反転判定部723にて処理が実行される場合と比較して、処理性能を低下させることなく消費電力を低減することができる。
【0128】
本実施の形態では、メモリセルアレイ711に記憶されるデータのうち、論理値1を示すデータの方が、論理値0を示すデータよりも、データ保持に必要な消費電流が大きい、又は、データ保持性能自体が低い場合について説明したが、これに限られない。メモリセルアレイ711に記憶されるデータのうち、論理値0を示すデータの方が、論理値1を示すデータよりも、データ保持に必要な消費電流が大きい、又は、データ保持性能自体が低い場合も考えられる。いずれにしても、メモリセルアレイ711に記憶されるデータのうち、データ保持に必要な消費電流が大きい、又は、データ保持性能が低い論理値を示すデータのビット数が半分以下となるように反転処理を施せばよい。
【0129】
<実施の形態8>
図15は、実施の形態8に係る半導体装置80を示すブロック図である。半導体装置80は、半導体装置40の具体的構成の一つを示したものである。
【0130】
図15に示すように、半導体装置80は、ノイズ処理部81と、ロジック部82と、ノイズ処理部81及びロジック部82間を接続するバスDBUS,RBUSと、を備える。ノイズ処理部81及びロジック部82は、それぞれ送信部41及び受信部42に対応する。
【0131】
ノイズ処理部81は、ノイズフィルタ812と、反転判定部813と、論理反転部814と、を備える。ロジック部82は、論理反転部824を備える。ノイズフィルタ812、反転判定部813、論理反転部814及び論理反転部814は、それぞれ処理回路412、反転判定部413、論理反転部414及び論理反転部424に対応する。
【0132】
つまり、半導体装置80は、半導体装置40のうち処理回路412をノイズフィルタ811に置き換えたものである。半導体装置80のその他の構成については、半導体装置40と同様であるため、その説明を省略する。
【0133】
ここで、反転判定部813は、ノイズフィルタ812にて処理される前のデータDi8を用いて、論理反転部814にてデータDa8を反転させるか否かを判定している。つまり、反転判定部813は、ノイズフィルタ812による処理結果を待たずに、ノイズフィルタ812とともに並列に処理を実行している。それにより、ノイズフィルタ812にて処理される前のデータDi8を用いた反転判定の誤差が小さければ、ノイズフィルタ812による処理結果を待って反転判定部813にて処理が実行される場合と比較して、処理性能を低下させることなく消費電力を低減することができる。
【0134】
<実施の形態9>
図16は、実施の形態9に係る半導体装置90を示すブロック図である。半導体装置90は、半導体装置40の具体的構成の一つを示したものである。
【0135】
図16に示すように、半導体装置90は、仕様変換部91と、ロジック部92と、仕様変換部91及びロジック部92間を接続するバスDBUS,RBUSと、を備える。仕様変換部91及びロジック部92は、それぞれ送信部41及び受信部42に対応する。
【0136】
仕様変換部91は、ロジック信号の仕様を変換して出力する部である。本例では、データの電圧振幅を変換して出力する場合を例に説明するが、これに限られず、長配線伝送系における終端処理方法の変更、差動信号化、多値論理信号化等の仕様変更が行われてもよい。
【0137】
仕様変換部91は、データDi9の電圧振幅を変更してデータDa9として出力するレベルシフタ912と、反転判定部813と、論理反転部914と、論理反転部914の出力をレベルシフタ912による変換前の電圧振幅に戻すレベルシフタ915と、を備える。レベルシフタ912、反転判定部913及び論理反転部914は、それぞれ処理回路412、反転判定部413及び論理反転部414に対応する。
【0138】
反転判定部913は、レベルシフタ912にて処理される前のデータDi9と、論理反転部914から出力され、データバスDBUSを伝搬する1サイクル前のデータDt9をレベルシフタ915にて変換前の電圧振幅に戻したものと、を比較して、その比較結果に応じた判定結果信号r9を出力する。
【0139】
つまり、半導体装置90は、半導体装置40のうち処理回路412をレベルシフタ912に置き換え、かつ、論理反転部914の出力を変換前の電圧振幅に戻すレベルシフタ915を追加したものである。半導体装置90のその他の構成については、半導体装置40と同様であるため、その説明を省略する。
【0140】
ここで、反転判定部913は、レベルシフタ912にて処理される前のデータDi9を用いて、論理反転部914にてデータデータDa9を反転させるか否かを判定している。つまり、反転判定部913は、レベルシフタ912による処理結果を待たずに、レベルシフタ912とともに並列に処理を実行している。それにより、レベルシフタ912による処理結果を待って反転判定部913にて処理が実行される場合と比較して、処理性能を低下させることなく消費電力を低減することができる。
【0141】
なお、上記したように、反転判定部913に入力されるデータDt9は、レベルシフタ915を用いて変換前の電圧振幅に戻される必要があるが、レベルシフタ915の処理は前サイクルに連動したデータ処理なので遅延を生むことはない。
【0142】
以上のように、上記実施の形態1〜9に半導体装置は、ECC複合化部などの処理回路の処理結果を待たずに、処理回路にて処理される前のデータを用いて、データバスに伝達するデータを反転させるか否かを判定する処理を行っている。それにより、処理回路による処理と、データバスに伝達するデータを反転させるか否かを判定する処理と、を並列に実行することが可能になるため、処理性能(処理速度)を低下させることなく消費電力を低減することができる。
【0143】
なお、メモリセルアレイを搭載した半導体チップと、ロジック機能を有するシステムLSIと、の間のデータバスに対しても、上記実施の形態に係る半導体装置の構成を適用することが可能である。この場合、データビット当たりの消費電流が大きいので、ビット当たりの電流削減効果は大きくなる。さらに、TSVなどの積層チップ間での接続技術部分に適応することも可能である。この場合、データビット幅が大きくできるので、電流削減効果はさらに大きくなる。このように、複数チップで構成されるモジュールもしくはシステム設計における電流削減にも展開応用する事が可能である。
【0144】
例えば、上記の実施の形態に係る半導体装置では、半導体基板、半導体層、拡散層(拡散領域)などの導電型(p型もしくはn型)を反転させた構成としてもよい。そのため、n型、及びp型の一方の導電型を第1の導電型とし、他方の導電型を第2の導電型とした場合、第1の導電型をp型、第2の導電型をn型とすることもできるし、反対に第1の導電型をn型、第2の導電型をp型とすることもできる。
【0145】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。