(57)【要約】【課題】データの伝送効率を低下させることなく、半導体装置の消費電力を削減する。【解決手段】半導体装置は、データを複数に分けた第１の部分データ毎に、前回の送信に比べてビット値の変化数がビット数の半数を超える場合、第１の部分データの論理を反転し、第１の部分データ毎に割り当てられた第１の反転情報を有効にする第１の反転部と、データを複数に分けた第２の部分データにおいて、前回の送信に比べてビット値の変化数がビット数の半数を超える比率に応じて、前記第１の反転部に第１の部分データとして供給する第２の部分データの論理を反転するかを判定し、論理を反転する場合、第２の反転情報を有効にする第２の反転部と、前記第１の反転部が生成した前記第１の部分データとともに、前記第１の反転情報と前記第２の反転情報とを送信する送信部と、を有する。【選択図】図１
2020170904.tif 000002
【特許請求の範囲】
【請求項１】
データを複数に分けた第１の部分データ毎に、前回の送信に比べてビット値の変化数がビット数の半数を超える場合、第１の部分データの論理を反転し、第１の部分データ毎に割り当てられた第１の反転情報を有効にする第１の反転部と、
データを複数に分けた第２の部分データにおいて、前回の送信に比べてビット値の変化数がビット数の半数を超える比率に応じて、前記第１の反転部に第１の部分データとして供給する第２の部分データの論理を反転するかを判定し、論理を反転する場合、第２の反転情報を有効にする第２の反転部と、
前記第１の反転部が生成した前記第１の部分データとともに、前記第１の反転情報と前記第２の反転情報とを送信する送信部と、を有することを特徴とする半導体装置。
【請求項２】
データの送信元の半導体装置から前記第１の部分データと前記第１の反転情報と前記第２の反転情報とを受信する受信部と、
前記受信部が受信した前記第１の部分データと前記第１の反転情報とに基づいて、有効状態の前記第１の反転情報に対応する前記第１の部分データの論理を反転する第３の反転部と、
前記送信元の半導体装置から受信する前記第２の反転情報に基づいて、前記第３の反転部が出力するデータの論理を反転することで、前記送信元の半導体装置からのデータを生成する第４の反転部と、を有することを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記第２の反転部は、前回の送信に比べて、前記第１の部分データ、前記第１の反転情報および前記第２の反転情報のビット値の変化の総数が増える場合、前記比率にかかわらず、前記第２の反転情報を有効に設定することを抑止すること、を特徴とする請求項１または請求項２に記載の半導体装置。
【請求項４】
前記第２の部分データの２つずつは、部分データペアに割り当てられ、
前記部分データペアの各々の前記第２の部分データは、第１のグループまたは第２のグループに割り当てられ、
前記第２の反転部は、
複数回の送信において、前記第１のグループと前記第２のグループのうち、前回の送信に比べてビット値の変化数がビット数の半数を超える前記第２の部分データの数が多い優位グループを判定し、
判定した前記優位グループにおいて、前記半数を超える前記第２の部分データの論理を反転し、
判定した前記優位グループを示すグループ識別情報と、論理を反転した前記第２の部分データを含む前記部分データペアを示す反転ペア情報とを前記第２の反転情報として設定すること、を特徴とする請求項２に記載の半導体装置。
【請求項５】
前記第４の反転部は、前記反転ペア情報が示す前記部分データペアにおいて、前記グループ識別情報が示すグループに属する前記第２の部分データの論理を反転すること、を特徴とする請求項４に記載の半導体装置。
【請求項６】
前記第２の反転部は、
複数回の送信の各々において、前記第１のグループまたは前記第２のグループの一方の全ての前記第２の部分データで、前回の送信に比べてビット値の変化数がビット数の半数を超え、前記第１のグループおよび前記第２のグループの他方の全ての前記第２の部分データで、前回の送信に比べてビット値の変化数がビット数の半数以下である場合、前記半数を超えたグループを前記優位グループに判定し、
前記優位グループが存在しない場合、前記グループ識別情報に無効情報を設定すること、を特徴とする請求項４に記載の半導体装置。
【請求項７】
前記第４の反転部は、前記グループ識別情報が無効情報の場合、前記第２の部分データの論理の反転処理を抑止すること、を特徴とする請求項６に記載の半導体装置。
【請求項８】
前記送信部は、複数回の送信の各々において、前記第１の部分データおよび第１の反転情報以外に、用途を定めない所定のビット数の付加情報を送信し、
前記第２の反転情報は、前記付加情報に含まれること、を特徴とする請求項１ないし請求項７のいずれか１項に記載の半導体装置。
【請求項９】
半導体装置はさらに、前記第１の部分データの誤り検出・訂正符号を生成する符号生成部を有し、
前記送信部は、前記誤り検出・訂正符号を前記付加情報の一部として送信し、前記第２の反転情報を前記付加情報の他の一部として送信すること、を特徴とする請求項８に記載の半導体装置。
【請求項１０】
データを送受信する複数の半導体装置を有するシステムにおいて、
前記複数の半導体装置の各々は、
データを複数に分けた第１の部分データ毎に、前回の送信に比べてビット値の変化数がビット数の半数を超える場合、第１の部分データの論理を反転し、第１の部分データ毎に割り当てられた第１の反転情報を有効にする第１の反転部と、
データを複数に分けた第２の部分データにおいて、前回の送信に比べてビット値の変化数がビット数の半数を超える比率に応じて、前記第１の反転部に第１の部分データとして供給する第２の部分データの論理を反転するかを判定し、論理を反転する場合、第２の反転情報を有効にする第２の反転部と、
前記第１の反転部が生成した前記第１の部分データとともに、前記第１の反転情報と前記第２の反転情報とを送信する送信部と、
データの送信元の半導体装置から前記第１の部分データと前記第１の反転情報と前記第２の反転情報とを受信する受信部と、
前記受信部が受信した前記第１の部分データと前記第１の反転情報とに基づいて、有効状態の前記第１の反転情報に対応する前記第１の部分データの論理を反転する第３の反転部と、
前記送信元の半導体装置から受信する前記第２の反転情報に基づいて、前記第３の反転部が出力するデータの論理を反転することで、前記送信元の半導体装置からのデータを生成する第４の反転部と、を有することを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置およびシステムに関する。
【背景技術】
【０００２】
データバスを介して装置間で伝送されるデータが”０”に駆動される頻度を下げて電力消費の増加を抑制するために、データの伝送サイクル後のサイクルを用いて、ビット値を反転させたことを示すデータバス反転ベクトルが伝送される。また、デーバス反転ベクトルのビット値を反転させたことを示すグローバルデータバス反転標識がデータマスク線を利用して伝送される。（例えば、特許文献１参照）。
【０００３】
メモリとＣＰＵ（Central  Processing  Unit）との間で伝送されるデータにおいて所定の論理値の出現率を高くするために、データの反転処理が行われ、データの反転を示す反転／非反転信号がデータとともに出力される（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１３−５２４３８３号公報
【特許文献２】特開２００６−２０３７５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
データの伝送サイクルに加えてデータバス反転ベクトルの伝送サイクルを設ける場合、データを受信したサイクルでデータの論理を再生することができない。この結果、データの伝送に寄与しないサイクルが挿入されることで、データの伝送効率が低下し、単位データの伝送当たりに消費される電力が増加する。
【０００６】
１つの側面では、本発明は、データの伝送効率を低下させることなく、半導体装置の消費電力を削減することを目的とする。
【課題を解決するための手段】
【０００７】
一つの観点によれば、半導体装置は、データを複数に分けた第１の部分データ毎に、前回の送信に比べてビット値の変化数がビット数の半数を超える場合、第１の部分データの論理を反転し、第１の部分データ毎に割り当てられた第１の反転情報を有効にする第１の反転部と、データを複数に分けた第２の部分データにおいて、前回の送信に比べてビット値の変化数がビット数の半数を超える比率に応じて、前記第１の反転部に第１の部分データとして供給する第２の部分データの論理を反転するかを判定し、論理を反転する場合、第２の反転情報を有効にする第２の反転部と、前記第１の反転部が生成した前記第１の部分データとともに、前記第１の反転情報と前記第２の反転情報とを送信する送信部と、を有することを特徴とする。
【発明の効果】
【０００８】
１つの側面では、本発明は、データの伝送効率を低下させることなく、半導体装置の消費電力を削減することができる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態における半導体装置を含むシステムの一例を示すブロック図である。
【図２】別の実施形態における半導体装置を有するシステム・イン・パッケージの一例を示す側面図である。
【図３】図２の積層メモリとプロセッサチップとの間で送受信されるデータの構成の一例を示す説明図である。
【図４】データマスク領域への全反転ビットの割り当ての一例を示す説明図である。
【図５】図２のプロセッサチップの一例を示すブロック図である。
【図６】図２のプロセッサチップから積層メモリに送信するデータの一例を示す説明図である。
【図７】図２のプロセッサチップから積層メモリに送信するデータの別の例を示す説明図である。
【図８】図２のプロセッサチップから積層メモリに送信するデータのさらなる別の例を示す説明図である。
【図９】図２のプロセッサチップが積層メモリにデータを送信する場合の動作の一例を示すフロー図である。
【図１０】図１のプロセッサチップが積層メモリからデータを受信する場合の動作の一例を示すフロー図である。
【図１１】別の実施形態の半導体装置におけるデータマスク領域の割り当ての一例を示す説明図である。
【図１２】図１１のデータマスク領域の割り当てが適用されるプロセッサチップの一例を示すブロック図である。
【図１３】図１１のデータマスク領域の割り当てが適用されるプロセッサチップの動作の概要を示す説明図である。
【図１４】図１１のデータマスク領域の割り当てが適用されるプロセッサチップから積層メモリに送信するデータの一例を示す説明図である。
【図１５】図１１のデータマスク領域の割り当てが適用されるプロセッサチップから積層メモリにデータを送信する場合の動作の一例を示すフロー図である。
【図１６】図１１のデータマスク領域の割り当てが適用されるプロセッサチップが積層メモリからデータを受信する場合の動作の一例を示すフロー図である。
【発明を実施するための形態】
【００１０】
以下、図面を用いて実施形態を説明する。
【００１１】
図１は、一実施形態における半導体装置を含むシステムの一例を示す。図１に示す例では、システム１００は、一対の半導体装置１ａ、１ｂを有する。例えば、半導体装置１ａは、ＣＰＵ等のプロセッサであり、半導体装置１ｂは、メモリである。しかしながら、半導体装置１ａ、１ｂは、上記に限定されず、例えば、ＣＰＵとＧＰＵ（Graphics  Processing  Unit）でもよく、ＣＰＵとロジックデバイスでもよい。
【００１２】
図１は、半導体装置１ａ、１ｂにおいて、データＤＴを送受信するインタフェース部分を示している。半導体装置１ａ、１ｂは、図に示した要素以外にも、データＤＴを処理する回路や、データＤＴを記憶する回路等を有する。半導体装置１ａ、１ｂのインタフェース部分は、互いに同じ構成であるため、以下では、半導体装置１ａについて説明する。なお、システム１００がシステム・イン・パッケージの場合、データＤＴを送受信するインタフェース部分は、後述する図２の入出力インタフェース部ＰＨＹに相当する。
【００１３】
半導体装置１ａは、第２の反転部２、第１の反転部３、送信部４、受信部５、第３の反転部６および第４の反転部７を有する。
【００１４】
第１の反転部３は、前回の送信したデータＤＴに対する今回送信するデータＤＴのビット値の変化数を算出する。第１の反転部３は、データＤＴを複数に分けた第１の部分データＤＴ１０−ＤＴ１３毎に、前回の送信時に比べてビット値の変化数（すなわち、論理の反転数）がビット数の半数を超えるかを判定する。そして、第１の反転部３は、ビット値の変化数がビット数の半数を超える第１の部分データＤＴの論理を反転する。第１の反転部３は、論理を反転した第１の部分データＤＴに対応して割り当てられた第１の反転情報ＩＶ（ＩＶ１０−ＩＶ１３）を有効状態（例えば、論理１）に設定する。そして、第１の反転部３は、第１の部分データＤＴ１０−ＤＴ１３と反転情報ＩＶ１０−ＩＶ１３とを送信部４に出力する。
【００１５】
第２の反転部２は、前回送信したデータＤＴに対する今回送信すると予測されるデータＤＴのビット値の変化数を算出する。なお、図示は省略するが、第２の反転部２は、前回送信したデータＤＴを第１の反転部３から受信してもよい。第２の反転部２は、データＤＴを複数に分けた第２の部分データＤＴ（ＤＴ２０−ＤＴ２３）において、前回の送信に比べてビット値の変化数がビット数の半数を超えるかを判定する。なお、図１では、第１の部分データＤＴの数と第２の部分データＤＴの数とを等しくしているが、例えば、第２の部分データＤＴの数は、第１の部分データＤＴの数より多くてもよい。図１に示す例では、データＤＴ＝第１の部分データＤＴ１０−ＤＴ１３＝第２の部分データＤＴ２０−ＤＴ２３の関係が成立する。
【００１６】
第２の反転部２は、複数の第２の部分データＤＴのうち、ビット値の変化数がビット数の半数を超える第２の部分データＤＴの比率に応じて、第１の反転部３に供給する第２の部分データＤＴの論理を反転するかを判定する。例えば、第２の反転部２は、上記比率が０．５を超える場合、第１の反転部３に供給する第２の部分データＤＴの論理を反転する。第２の反転部２は、第２の部分データＤＴの論理を反転する場合、第２の反転情報ＩＶ２を有効状態（例えば、論理１）に設定する。
【００１７】
以下では、第１の反転部３が、判定結果に基づき、反転情報ＩＶ１０−ＩＶ１３のうち第１の反転情報ＩＶ１０−ＩＶ１２を有効状態に設定し、有効状態に設定した第１の反転情報ＩＶに対応する第１の部分データＤＴ１０−ＤＴ１２の論理を反転したとする。この場合、例えば、第２の反転部２は、前回の送信に比べて、第１の部分データＤＴ１０−ＤＴ１２に対応する第２の部分データＤＴ２０−ＤＴ２２のビット値の変化数が半数を超えると判定する。
【００１８】
すなわち、第２の反転部２は、ビット値の変化数が半数を超える第２の部分データＤＴの数の比率が、５０％を超えると判定する。この例では、第２の部分データＤＴの７５％において、ビット値の変化数が半数を超える。第２の反転部２は、過半数の第２の部分データＤＴにおいて、ビット値の変化数が半数を超える場合、第１の反転部３に供給する第２の部分データＤＴの論理を予め反転する。
【００１９】
第１の反転部３は、受信した第２の部分データＤＴのうち、ビット値の変化数が半数を超える第２の部分データＤＴがないと判定し、第１の反転情報ＩＶ１０−ＩＶ１２の論理を無効状態に維持する。これにより、第１の部分データＤＴ１０−ＤＴ１２の論理が反転されて、反転情報ＩＶ１０−ＩＶ１２の論理が有効状態に反転されることを抑止することができる。
【００２０】
送信部４は、例えば、第１の反転部３が生成した第１の部分データＤＴ１０−ＤＴ１３および第１の反転情報ＩＶ１０−ＩＶ１３を送信するサイクルで、第２の反転部２が生成した第２の反転情報ＩＶ２を送信する。なお、第２の反転情報ＩＶ２は、第１の反転部３を経由することなく送信部４に直接出力されてもよい。
【００２１】
例えば、送信部４が、第１の部分データＤＴおよび第１の反転情報ＩＶ以外に、用途を定めない所定のビット数の付加情報を送信する場合、第２の反転情報ＩＶ２は付加情報に含めて送信される。なお、半導体装置１ａが第１の部分データＤＴの誤り検出・訂正符号を生成する符号生成部を有する場合、送信部４は、誤り検出・訂正符号を付加情報の一部として送信し、第２の反転情報ＩＶを付加情報の他の一部として送信してもよい。
【００２２】
この実施形態では、第２の反転部２の動作により、論理が反転される第１の反転情報ＩＶの数を削減することができるため、半導体装置１ａから半導体装置１ｂに送信される信号において、論理が変化するビット数を削減することができる。また、第２の反転情報ＩＶ２は、第１の部分データＤＴ１０−ＤＴ１３および第１の反転情報ＩＶ１０−ＩＶ１３とともに送信される。換言すれば、第２の反転情報ＩＶ２を半導体装置１ｂに転送するサイクルが新たに設けられることはない。したがって、データＤＴの伝送効率を低下させることなく、半導体装置１ａ、１ｂのインタフェース部分の消費電力を削減することができる。
【００２３】
一方、受信部５は、データの送信元の半導体装置１ｂから第１の部分データＤＴ１０−ＤＴ１３とともに、第１の反転情報ＩＶ１０−ＩＶ１３および第２の反転情報ＩＶ２を受信する。受信部５は、受信した第１の部分データＤＴ１０−ＤＴ１３、第１の反転情報ＩＶ１０−ＩＶ１３および第２の反転情報ＩＶ２を第３の反転部６に出力する。なお、第２の反転情報ＩＶ２は、第３の反転部６を経由することなく第４の反転部７に直接出力されてもよい。
【００２４】
第３の反転部６は、受信部５から受信した第１の部分データＤＴ１０−ＤＴ１３と第１の反転情報ＩＶ１０−ＩＶ１３とに基づいて、有効状態の第１の反転情報ＩＶに対応する第１の部分データＤＴの論理を反転する。第３の反転部６は、論理を反転した第１の部分データＤＴを含むデータＤＴを、第２の部分データＤＴ２０−ＤＴ２３として第４の反転部７に出力する。
【００２５】
第４の反転部７は、送信元の半導体装置１ｂから受信する第２の反転情報ＶＩ２に基づいて、有効状態の第２の反転情報ＩＶに対応する第２の部分データＤＴの論理を反転することで、送信元の半導体装置１ｂから受信したデータＤＴを生成する。
【００２６】
以上、図１に示す実施形態では、論理が反転される第１の反転情報ＩＶの数を削減することができ、半導体装置１ａから半導体装置１ｂに送信される信号において、論理が変化するビット数を削減することができる。この結果、半導体装置１ａ、１ｂ間の伝送路に、反転情報ＩＶを伝送する新たな信号線を設けることなく、充放電量を削減することができ、システム１００の消費電力を削減することができる。また、第１の反転情報ＩＶおよび第２の反転情報ＩＶは、第１の部分データＤＴとともに送受信されるため、データＤＴの伝送効率を低下させることなく、半導体装置１ａ、１ｂのインタフェース部分の消費電力を削減することができる。
【００２７】
図２は、別の実施形態における半導体装置を有するシステム・イン・パッケージの一例を示す。図２に示すシステム・イン・パッケージ１０２は、複数のメモリチップ１０と１つのロジックチップ２０とを積層した積層メモリ３０と、プロセッサチップ４０と、シリコンインターポーザ５０と、パッケージ基板６０とを有する。プロセッサチップ４０および積層メモリ３０は、半導体装置の一例である。なお、メモリチップ１０の積層数は、４つに限定されない。以下では、プロセッサチップ４０および積層メモリ３０は、デバイスとも称される。
【００２８】
例えば、メモリチップ１０およびロジックチップ２０は、それぞれＴＳＶ（Through-Silicon  Via）を有しており、メモリチップ１０とロジックチップ２０とは、バンプとＴＳＶとを介して相互に接続されている。図２は、システム・イン・パッケージ１０２を横から見た状態を示しており、バンプは、丸印で示されている。ロジックチップ２０は、プロセッサチップ４０に対して信号を入出力するための入出力インタフェース部ＰＨＹを有している。
【００２９】
例えば、プロセッサチップ４０は、ＧＰＵ（Graphics  Processing  Unit）、ＣＰＵまたはＳｏＣ（System  on  a  Chip）等であり、ロジックチップ２０に対して信号を入出力するための入出力インタフェース部ＰＨＹを有している。プロセッサチップ４０の入出力インタフェース部ＰＨＹとロジックチップ２０の入出力インタフェース部ＰＨＹとは、シリコンインターポーザ５０を介して相互に接続されている。
【００３０】
積層メモリ３０のロジックチップ２０は、バンプを介してシリコンインターポーザ５０に接続され、プロセッサチップ４０は、バンプを介してシリコンインターポーザ５０に接続されている。ロジックチップ２０の外部端子（バンプ）の一部およびプロセッサチップ４０の外部端子（バンプ）の一部は、シリコンインターポーザ５０を介してパッケージ基板６０に接続される。パッケージ基板６０において、図２の下側に示すバンプは、例えば、図示しない情報処理装置等（サーバ等）のマザーボード等に接続される。
【００３１】
図３は、図２の積層メモリ３０とプロセッサチップ４０との間で送受信されるデータの構成の一例を示す。
【００３２】
図２に示すプロセッサチップ４０は、読み出しアクセス要求または書き込みアクセス要求を積層メモリ３０に発行する。図２に示す積層メモリ３０は、読み出しアクセス要求に含まれるアドレス（例えば、カラムアドレス）の受信に基づいて、読み出しデータを４サイクル連続して出力するバースト機能を有している（バースト長ＢＬ＝４）。プロセッサチップ４０は、４サイクル連続して積層メモリ３０から出力される読み出しデータを受信するバースト機能を有している。このため、図３では、読み出しアクセス要求に対応する１回のバースト動作により積層メモリから４サイクルで出力されるデータを示している。
【００３３】
また、プロセッサチップ４０は、データの書き込み先のアドレスを含む書き込みアクセス要求とともに、書き込みデータを積層メモリ３０に出力する。プロセッサチップ４０は、書き込み動作において、読み出し動作と同様に、カラムアドレスに基づいて書き込みデータを４サイクル連続して積層メモリ３０に出力するバースト機能を有している。積層メモリ３０は、４サイクル連続してプロセッサチップ４０から出力される書き込みデータを受信するバースト機能を有している。
【００３４】
なお、図３は、例えば、積層メモリ３０の１チャネル当たりのデータＤＱを示しており、各メモリアクセスサイクルにおいて１チャネル当たり１６０ビットのデータＤＱが、積層メモリ３０に対して入出力される。例えば、積層メモリ３０が８チャネルを有する場合、図３の８倍のデータＤＱが、積層メモリ３０とプロセッサチップ４０との間で送受信される。１チャネルに対応する１６０ビットのデータＤＱは、１２８ビットのデータＤＱ（情報処理等が実施されるデータそのもの）と、１６ビットの反転ビットＤＢＩ（Data  Bus  Inversion）と、８ビットのデータマスクＤＭ（Data  Mask）とを含む。以下では、データマスクＤＭが設定される領域をデータマスク領域ＤＭとも称し、データマスク領域ＤＭに設定されるビットをデータマスクビットＤＭとも称する。データマスクＤＭは、付加情報の一例である。１６０ビットのデータのうちの太枠で示す半分は、スードチャネル（Pseudo  Channel）として割り当てられる。すなわち、１チャネルのデータは、２つのスードチャネルを含む。
【００３５】
反転ビットＤＢＩは、８ビットのデータＤＱ毎に１ビット設けられる。データＤＱを送信するデバイスは、８ビットのデータＤＱの論理を反転せずに送信する場合、反転ビットＤＢＩを論理０に設定し、８ビットのデータの論理を反転して送信する場合、反転ビットＤＢＩを論理１に設定する。ここで、データＤＱを送信するデバイスは、ロジックチップ２０またはプロセッサチップ４０である。反転ビットＤＢＩの論理（”０”または”１”）は、例えば、１つ前のサイクルで送信したデータＤＱおよび反転ビットＤＢＩの論理に対して、今回送信するデータＤＱおよび反転ビットＤＢＩのビット値の論理の変化が少なくなる方に設定される。
【００３６】
例えば、８ビットのデータＤＱにおいて、１つ前のサイクルに比べて論理が変化するビット数が５ビット以上である場合、出力するデータＤＱの論理は反転され、反転ビットＤＢＩは論理１に設定される。また、８ビットのデータＤＱで論理が変化するビット数が４ビットであり、かつ反転ビットＤＢＩが論理１の場合、出力するデータＤＱの論理は反転され、反転ビットＤＢＩは論理１に設定される。それ以外の場合、出力するデータＤＱの論理はそのままにされ、反転ビットＤＢＩは論理０に設定される。
【００３７】
これにより、８ビットのデータＤＱと１ビットの反転ビットＤＢＩの合計９ビットのうち、論理が変化するビットの数を常に４ビット以下にすることができる。デバイス３０、４０間のデータ線上に伝達されるデータＤＱおよび反転ビットＤＢＩのうち、トグルするビットを常に４ビット以下にすることで、データＤＱを送受信するインタフェース部分（例えば、図２のＰＨＹ）の消費電力を抑えることができる。
【００３８】
データＤＱを受信するデバイス（ロジックチップ２０またはプロセッサチップ４０）は、８ビットのデータＤＱとともに論理１の反転ビットＤＢＩを受信した場合、受信したＤＱの論理を反転する。また、データＤＱを受信するデバイスは、８ビットのデータＤＱとともに論理０の反転ビットＤＢＩを受信した場合、受信したＤＱの論理を反転しない。
【００３９】
データマスクＤＭは、本来の使い方では、８ビットのデータＤＱ毎に１ビット設けられ、８ビットのデータＤＱをマスクするか否かを設定するために使用される。一方、本実施形態では、バースト動作の２サイクル分の２５６ビットのデータＤＱの誤り検出・訂正のために、２４ビットのデータマスク領域ＤＭが使用される。以下では、誤り検出・訂正の単位であるバースト動作の２サイクル分の２５６ビット（図３の破線枠）は、ＥＣＣ（Error  Correction  Code）グループと称する。
【００４０】
特に限定されないが、この実施形態では、Ｓ８ＥＣ−Ｄ８ＥＤ（２８８，２５６）等のブロック誤り訂正コードが使用される。ＥＣＣグループ内の３２ビットのデータマスク領域ＤＭのうち、誤り検出・訂正用に使用されるビットは２４ビットであるため、残りの８ビットは誤り検出・訂正以外の用途に使用することができる。本実施形態では、図４で説明するように、残りの８ビットを使用して、反転ビットＤＢＩのトグルを少なくするための全反転ビットＤＡＩ（Data  All  Inversion）を設定することで、データのインタフェース部分の消費電力をさらに削減することができる。
【００４１】
図４は、データマスク領域ＤＭへの全反転ビットＤＡＩの割り当ての一例を示す。上述したバースト動作での各サイクルにおいて、空いている４ビットのデータマスク領域ＤＭは、１２８ビットのデータＤＱ毎に、全反転ビットＤＡＩ（ＤＡＩ０−ＤＡＩ３）が割り当てられる。全反転ビットＤＡＩの各々は、３２ビットのデータＤＱと、３２ビットのデータＤＱの８ビット毎にそれぞれ割り当てられる４ビットの反転ビットＤＢＩとに対応して設定される。
【００４２】
図４に示す例では、１２８ビットのデータＤＱの最上位の３２ビットと４ビットのＤＢＩとに対応して全反転ビットＤＡＩ０が割り当てられる。１２８ビットのデータＤＱの２番目に上位の３２ビットと４ビットのＤＢＩとに対応して全反転ビットＤＡＩ１が割り当てられる。また、１２８ビットのデータＤＱの３番目に上位の３２ビットと４ビットのＤＢＩとに対応して全反転ビットＤＡＩ２が割り当てられる。そして、１２８ビットのデータＤＱの最下位の３２ビットと４ビットのＤＢＩとに対応して全反転ビットＤＡＩ３が割り当てられる。
【００４３】
論理１の全反転ビットＤＡＩは、対応する３２ビットのデータＤＱの論理が、反転ビットＤＢＩによる反転とは別に反転されていることを示す。論理０の全反転ビットＤＡＩは、対応する３２ビットのデータＤＱの論理が、反転ビットＤＢＩによる反転以外では反転されていないことを示す。このため、データＤＱの受信側のデバイスは、受信した全反転ビットＤＡＩが論理１の場合、反転ビットＤＢＩによる反転とは別に、３２ビットのデータＤＱを反転する。データＤＱの受信側のデバイスは、受信した全反転ビットＤＡＩが論理０の場合、反転ビットＤＢＩにより反転された、または反転されていない３２ビットのデータＤＱを受信データとして扱う。
【００４４】
なお、バースト動作により積層メモリ３０から読み出されるデータＤＱおよび積層メモリ３０に書き込まれるデータＤＱは、バースト長＝４に対応する４サイクルＣＹＣの範囲において転送順序が保証される。一方、互いに隣接するバースト動作間ではデータの転送順序は保証されない。このため、バースト動作の最初のサイクルＣＹＣ０では、比較対象である１つ前のサイクルＣＹＣのデータＤＱが存在せず、３２ビットのデータＤＱを反転するか否かを判定できない。したがって、データマスク領域ＤＭの空き４ビットは、サイクルＣＹＣ１、ＣＹＣ２、ＣＹＣ３では使用されるが、サイクルＣＹＣ０では使用されない。
【００４５】
図５は、図２のプロセッサチップ４０の一例を示す。プロセッサチップ４０は、ラッチ回路４１、反転予測回路４２、反転処理回路４３、ＥＣＣ生成回路４４、ＤＢＩ反転回路４５、データ入出力回路４６（ＰＨＹ）、ＤＢＩ反転回路４７、ＥＣＣ訂正回路４８および反転処理回路４９を有する。反転予測回路４２および反転処理回路４３は、第２の反転部の一例であり、ＤＢＩ反転回路４５は、第１の反転部の一例である。データ入出力回路４６は、送信部および受信部の一例である。ＤＢＩ反転回路４７は、第３の反転部の一例であり、反転処理回路４９は、第４の反転部の一例である。ＥＣＣ生成回路４４は、符号生成部の一例である。
【００４６】
ラッチ回路４１は、反転処理回路４３から出力される反転ビットＤＢＩｐおよびデータＤＱｐを、１つ前のサイクルＣＹＣでプロセッサチップ４０が積層メモリ３０に送信した反転ビットＤＢＩおよびデータＤＱとして保持する。ラッチ回路４１は、保持した反転ビットＤＢＩｐおよびデータＤＱｐを反転予測回路４２に出力する。
【００４７】
反転予測回路４２は、積層メモリ３０に書き込むデータＤＱ（書き込みデータ）とラッチ回路４１からの１つ前のサイクルＣＹＣの情報とに基づいて動作する。反転予測回路４２は、今回のサイクルＣＹＣ（ＣＹＣ１、ＣＹＣ２またはＣＹＣ３）で送信するデータＤＱの論理が前回のサイクルＣＹＣで送信したデータＤＱに対して何ビット反転（変化）するかを、８ビット毎に求める。
【００４８】
そして、反転予測回路４２は、８ビットのデータＤＱのそれぞれに対応する反転ビットＤＢＩの論理がＤＢＩ反転回路４５により反転されるか否かを予測する。反転予測回路４２は、予測した反転ビットＤＢＩの論理の反転数（変化数）を、データＤＱとともに反転処理回路４３に出力する。
【００４９】
反転処理回路４３は、反転予測回路４２から受信する反転ビットＤＢＩの論理の反転数に基づいて、３２ビット（４バイト）のデータＤＱ毎に４ビットの反転ビットＤＢＩの論理の反転数が３ビット以上か否かを判定する。反転処理回路４３は、反転ビットＤＢＩの論理の反転数が３ビット以上の場合、対応する３２ビットのデータＤＱの論理を反転し、論理１の全反転ビットＤＡＩを生成する。反転処理回路４３は、反転ビットＤＢＩの論理の反転数が２ビット以下の場合、対応する３２ビットのデータＤＱの論理を反転せず、論理０の全反転ビットＤＡＩを生成する。全反転ビットＤＡＩは、第２の反転情報の一例である。
【００５０】
ここで、反転処理回路４３は、サイクルＣＹＣ毎に送信される１２８ビットのデータＤＱのうちの３２ビット毎に全反転ビットＤＡＩ（ＤＡＩ０−ＤＡＩ３）を生成する。そして、反転処理回路４３は、生成した全反転ビットＤＡＩを、反転処理回路４３内で処理したデータＤＱとともにＥＣＣ生成回路４４に出力する。また、反転処理回路４３は、反転処理回路４３内で処理したデータＤＱに対応してＤＢＩ反転回路４５が生成する反転ビットＤＢＩの予測値を、反転ビットＤＢＩｐとしてラッチ回路４１に出力する。さらに、反転処理回路４３は、ＤＢＩ反転回路４５が反転ビットＤＢＩともに生成する送信データＤＱの予測値を送信データＤＱｐとしてラッチ回路４１に出力する。
【００５１】
ＥＣＣ生成回路４４は、反転処理回路４３から受信したデータＤＱに基づいて、２４ビットの誤り検出・訂正符号を生成し、生成した誤り検出・訂正符号をデータＤＱおよび全反転ビットＤＡＩとともにＤＢＩ反転回路４５に出力する。ここで、ＥＣＣ生成回路４４は、図４に示したＥＣＣグループ内の２５６ビットのデータＤＱを単位として誤り検出・訂正符号を生成する。
【００５２】
ＤＢＩ反転回路４５は、ＥＣＣ生成回路４４を介して受信するデータＤＱに基づいて、８ビットのデータＤＱ毎に反転ビットＤＢＩを生成し、生成した反転ビットＤＢＩが論理１の場合、対応するデータＤＱの論理を反転する。反転ビットＤＢＩは、第１の反転情報の一例である。ＤＢＩ反転回路４５は、生成した反転ビットＤＢＩが論理０の場合、対応するデータＤＱの論理を反転しない。そして、ＤＢＩ反転回路４５は、生成した反転ビットＤＢＩと、反転ビットＤＢＩに基づいて処理したデータＤＱとをデータ入出力回路４６に出力する。
【００５３】
また、ＤＢＩ反転回路４５は、ＥＣＣ生成回路４４が生成した誤り検出・訂正符号（２４ビットのデータマスクビットＤＭ）と、反転処理回路４３が生成した全反転ビットＤＡＩ（残り８ビットのデータマスクビットＤＭ）とをデータ入出力回路４６に出力する。例えば、ＤＢＩ反転回路４５は、データＤＱ等を１サイクル分（１６０ビット）毎にデータ入出力回路４６に出力してもよい。
【００５４】
データ入出力回路４６は、ＤＢＩ反転回路４５から受信するデータＤＱ、反転ビットＤＢＩ、誤り検出・訂正符号および全反転ビットＤＡＩを、積層メモリ３０に順次転送する。また、データ入出力回路４６は、積層メモリ３０から順次受信するデータＤＱ、反転ビットＤＢＩ、誤り検出・訂正符号および全反転ビットＤＡＩをＤＢＩ反転回路４７に出力する。
【００５５】
ＤＢＩ反転回路４７は、データ入出力回路４６から受信した反転ビットＤＢＩに基づいてデータＤＱを反転し、またはデータＤＱを反転せずにＥＣＣ訂正回路４８に出力する。また、ＤＢＩ反転回路４７は、データ入出力回路４６から受信した誤り検出・訂正符号および全反転ビットＤＡＩをＥＣＣ訂正回路４８に出力する。
【００５６】
ＥＣＣ訂正回路４８は、誤り検出・訂正符号を用いて、ＤＢＩ反転回路４７により処理されたデータＤＱの誤りを検出し、データＤＱに誤りがある場合、誤りを訂正して反転処理回路４９に出力する。なお、ＥＣＣ訂正回路４８は、データ入出力回路４６から受信した全反転ビットＤＡＩを反転処理回路４９に出力する。
【００５７】
反転処理回路４９は、ＥＣＣ訂正回路４８から受信するデータＤＱの論理を、全反転ビットＤＡＩに基づいて反転する処理を実施する。反転処理回路４９は、全反転ビットＤＡＩが論理１の場合、全反転ビットＤＡＩに対応する３２ビットのデータＤＱの論理を反転し、読み出しデータとして出力する。反転処理回路４９は、全反転ビットＤＡＩが論理０の場合、全反転ビットＤＡＩに対応する３２ビットのデータＤＱの論理を反転せずに、そのまま読み出しデータとして出力する。
【００５８】
なお、図５に示すプロセッサチップ４０に含まれる符号４１〜符号４９で示す各要素は、積層メモリ３０にも搭載される。すなわち、図５のプロセッサチップ４０を積層メモリ３０とし、図５の積層メモリ３０をプロセッサチップ４０とし、書き込みデータを読み出しデータとし、読み出しデータを書き込みデータとすることで、積層メモリ３０の例が示される。
【００５９】
この場合、積層メモリ３０は、ラッチ回路４１、反転予測回路４２、反転処理回路４３、ＥＣＣ生成回路４４、ＤＢＩ反転回路４５およびデータ入出力回路４６を用いて、プロセッサチップ４０に送信するデータＤＱと、データＤＱに付随する情報とを生成する。また、積層メモリ３０は、データ入出力回路４６、ＤＢＩ反転回路４７、ＥＣＣ訂正回路４８および反転処理回路４９を用いて、プロセッサチップ４０から受信するデータを復元する。
【００６０】
図６は、図２のプロセッサチップ４０から積層メモリ３０に送信するデータＤＱの一例を示す。説明を分かりやすくするために、図６では、サイクルＣＹＣ毎に転送される１２８ビット（１６バイト）のデータＤＱのうち、３２ビット（４バイト）のデータＤＱを示す。実際には、サイクルＣＹＣ毎の１２８ビット（１６バイト）のデータＤＱに対応して、図６に示す処理が４回実行される。なお、誤り検出・訂正の単位では、２サイクルＣＹＣ毎に２５６ビット（３２バイト）のデータが転送される。図６では、ＥＣＣ生成回路４４およびＥＣＣ訂正回路４８の処理の説明は省略する。なお、積層メモリ３０からプロセッサチップ４０にデータＤＱを転送する場合も、図６と同じ処理が実行される。
【００６１】
図６（ａ）の”１サイクル前の送信データ”は、サイクルＣＹＣ１でデータＤＱを送信する場合、サイクルＣＹＣ０でデータ入出力回路４６が積層メモリ３０に送信したデータＤＱと反転ビットＤＢＩとを示す。また、”１サイクル前の送信データ”は、サイクルＣＹＣ３でデータＤＱを送信する場合、サイクルＣＹＣ２でデータ入出力回路４６が積層メモリ３０に送信したデータＤＱと反転ビットＤＢＩとを示す。
【００６２】
図６（ｂ）の”当該サイクルで送信したいデータ”は、プロセッサチップ４０が演算処理等により生成したデータであって、積層メモリ３０に実際に書き込まれるデータである。換言すれば、”当該サイクルで送信したいデータ”の論理は、プロセッサチップ４０から積層メモリ３０に送信（出力）するデータＤＱの論理とは異なる場合がある。以下の説明においても、”送信したいデータ”の論理は、データＤＱを受信するデバイスが扱うデータＤＱの論理であり、”送信するデータ”の論理は、データＤＱを受信するデバイスまでの伝送路上を伝送されるデータＤＱの論理である。
【００６３】
図６（ｃ）の”ＤＱ，ＤＢＩの反転ビット数”は、図５の反転予測回路４２により算出され、当該サイクルで送信したいデータＤＱの各バイトと反転ビットＤＢＩとが、１サイクル前に送信したデータＤＱおよび反転ビットＤＢＩから何ビット変化するかを示す。データＤＱの各バイトは、送信するデータＤＱを複数に分けた第２の部分データの一例である。括弧内は、ＤＢＩ反転回路４５がデータＤＱを反転するか否かを示す。反転予測回路４２は、算出したバイト毎の反転ビット数を反転処理回路４３に出力する。なお、反転予測回路４２は、”反転有り”、”反転無し”を示す情報をバイト毎に反転処理回路４３に出力してもよい。
【００６４】
上述したように、ＤＢＩ反転回路４５は、例えば、論理が変化するデータＤＱのビット数が５ビット以上である場合、データＤＱの論理が反転されると判定する。また、ＤＢＩ反転回路４５は、論理が変化するデータＤＱのビット数が４ビットであり、かつ１サイクル前の反転ビットＤＢＩが論理１の場合、データＤＱの論理が反転されると判定する。
【００６５】
反転処理回路４３は、反転予測回路４２からの情報に基づいて、４バイトのデータＤＱのうち、ＤＢＩ反転回路４５によるデータＤＱの反転が３バイト以上の場合、全反転ビットＤＡＩを論理１に設定する。また、反転処理回路４３は、反転予測回路４２からの情報に基づいて、４バイトのデータＤＱのうち、ＤＢＩ反転回路４５によるデータＤＱの反転が２バイト以下の場合、全反転ビットＤＡＩを論理０に設定する。
【００６６】
換言すれば、例えば、反転処理回路４３は、ＤＢＩ反転回路４５により論理１に設定される反転ビットＤＢＩの数の比率が半数（５０％）を超える場合、全反転ビットＤＡＩを論理１に設定する。反転処理回路４３は、ＤＢＩ反転回路４５により論理１に設定される反転ビットＤＢＩの数の比率が半数（５０％）以下の場合、全反転ビットＤＡＩを論理０に設定する。
【００６７】
但し、反転予測回路４２は、全反転ビットＤＡＩの論理１の設定時のデータＤＱ、反転ビットＤＢＩおよび全反転ビットＤＡＩの反転ビット数が、全反転ビットＤＡＩの論理０の設定時よりもが多い場合、全反転ビットＤＡＩを論理０に設定する。これにより、１サイクル前に送信したデータＤＱだけでなく、データＤＱ、反転ビットＤＢＩおよび全反転ビットＤＡＩの論理が変化する総数を削減することができ、データＤＱのインタフェース部分の消費電力をさらに削減することができる。全反転ビットＤＡＩを例外的に論理０に設定する例は、図８で説明する。
【００６８】
図６（ｃ）では、ＤＢＩ反転回路４５によりデータＤＱが３バイト以上反転することが予想される。このため、図６（ｄ）において、反転処理回路４３は、図６（ｂ）の当該サイクルで送信したいデータ”の各バイトの論理を反転し、全反転ビットＤＡＩを論理１に設定する。
【００６９】
図６（ｅ）では、ＤＢＩ反転回路４５は、反転処理回路４３から受信するデータＤＱに基づいて、１サイクル前に送信したデータＤＱに対してデータＤＱの論理が何ビット反転するかをバイト毎に判定する。論理が反転するビットには、下線を付している。ＤＢＩ反転回路４５が判定するバイトは、第１の部分データの一例である。
【００７０】
そして、ＤＢＩ反転回路４５は、判定結果に応じて当該サイクルで送信するデータＤＱと反転ビットＤＢＩとの論理をバイト毎に決定する。図６の例では、各バイトにおいて、１サイクル前に送信したデータＤＱの論理に対する反転ビット数がいずれも４ビット以下であるため、ＤＢＩ反転回路４５は、各バイトのデータＤＱを反転せず、各バイトに対応する反転ビットＤＢＩを論理０に設定する。
【００７１】
すなわち、図６（ｉ）〜図６（ｍ）で説明するように、全反転ビットＤＡＩが論理０の場合、３つの反転ビットＤＢＩが論理１に設定されるのに対して、全反転ビットＤＡＩを論理１に設定することで、反転ビットＤＢＩを論理０に維持することができる。この結果、デバイス間を伝送される信号の論理の変化数を削減することができ、消費電力を削減することができる。
【００７２】
そして、ＤＢＩ反転回路４５は、決定した論理のデータＤＱと反転ビットＤＢＩとを、ＥＣＣ生成回路４４を介してデータ入出力回路４６に出力する。データ入出力回路４６は、ＤＢＩ反転回路４５が生成したデータＤＱおよび反転ビットＤＢＩと、反転処理回路４３が生成した全反転ビットＤＡＩとを積層メモリ３０に送信する。
【００７３】
図６（ｆ）は、１サイクル前に対する図６（ｅ）の送信データであるデータＤＱ、反転ビットＤＢＩおよび全反転ビットＤＡＩの反転ビット数を示す。この例では、３２ビットのデータＤＱに対応する反転ビット数の総数は１４ビットである。
【００７４】
図６（ｇ）は、プロセッサチップ４０からデータＤＱ等を受信した積層メモリ３０のロジックチップ２０に設けられるＤＢＩ反転回路４７が出力するデータＤＱの論理をバイト毎に示す。図６（ｅ）に示したように、各バイトの反転ビットＤＢＩは論理０であるため、ＤＢＩ反転回路４７は、プロセッサチップ４０から受信したデータＤＱの論理をそのまま出力する。
【００７５】
図６（ｈ）は、積層メモリ３０のロジックチップ２０に設けられる反転処理回路４９が出力するデータＤＱの論理をバイト毎に示す。反転処理回路４９は、プロセッサチップ４０から受信した論理１の全反転ビットＤＡＩに基づいて、ＤＢＩ反転回路４７が出力したデータＤＱの論理を反転して出力する。これにより、図６（ｂ）に示した”当該サイクルで送信したいデータ”が積層メモリ３０に書き込まれる。
【００７６】
図６（ｉ）〜図６（ｍ）は、全反転ビットＤＡＩが論理０に設定された場合に、プロセッサチップ４０から積層メモリ３０に転送されるデータＤＱの例を示す。図６（ｉ）では、反転処理回路４３は、図６（ｂ）の”当該サイクルで送信したデータ”の論理をそのままＤＢＩ反転回路４５に出力する。
【００７７】
図６（ｊ）では、図６（ｅ）と同様に、ＤＢＩ反転回路４５は、１サイクル前に送信したデータＤＱに対して論理が変化するビット数に応じて、当該サイクルで送信するデータＤＱと反転ビットＤＢＩとの論理を決定する。図６（ｊ）においても、論理が反転するビットには、下線を付している。図６の例では、論理が５ビット反転するバイト３、バイト２、バイト１は、データＤＱの論理が反転され、反転ビットＤＢＩが論理１に設定される。論理が４ビット反転するバイト０は、元のデータＤＱの論理が送信データに設定され、反転ビットＤＢＩが論理０に設定される。
【００７８】
この場合、図６（ｋ）に示すように、３２ビットのデータＤＱに対応する反転ビット数の総数は１６ビットであり、全反転ビットＤＡＩを論理１に設定した方が、論理が反転するビット数が少なくなる。このため、プロセッサチップ４０から積層メモリ３０へのデータＤＱの転送は、図６（ａ）〜図６（ｈ）により実施される。
【００７９】
図６（ｌ）では、図６（ｇ）と同様に、積層メモリ３０のロジックチップ２０に設けられるＤＢＩ反転回路４７は、受信した反転ビットＤＢＩの論理に基づいて、受信したデータＤＱの論理を生成する。全反転ビットＤＡＩが論理０の場合、ＤＢＩ反転回路４７は、図６（ｂ）に示す”当該サイクルで送信したいデータ”に示される論理のデータＤＱを出力する。
【００８０】
図６（ｍ）では、全反転ビットＤＡＩが論理０であるため、積層メモリ３０のロジックチップ２０に設けられる反転処理回路４９は、ＤＢＩ反転回路４７から受信するデータＤＱの論理をそのまま出力する。そして、”当該サイクルで送信したいデータ”が積層メモリ３０に書き込まれる。
【００８１】
図７は、図２のプロセッサチップ４０から積層メモリ３０に送信するデータＤＱの別の例を示す。図６と同じ処理については、詳細な説明は省略する。なお、積層メモリ３０からプロセッサチップ４０にデータＤＱを転送する場合も、図７と同じ処理が実行される。図７は、図７（ａ）の”１サイクル前の送信データ”のデータＤＱと反転ビットＤＢＩとの論理が、図６（ａ）に対して異なっている。また、図７（ｂ）の”当該サイクルで送信したいデータ”のデータＤＱの論理が、図６（ｂ）に対して異なっている。
【００８２】
図７（ｃ）では、反転予測回路４２は、バイト３〜バイト１を反転有りと判定し、バイト０を反転無しと判定し、各バイトの反転ビット数をデータＤＱとともに反転処理回路４３に出力する。図７（ｃ）に示すように、ＤＢＩ反転回路４５によりデータＤＱが３バイト以上反転することが予想されるため、図７（ｄ）では、反転処理回路４３は、”当該サイクルで送信したいデータ”の各バイトの論理を反転し、全反転ビットＤＡＩは論理１に設定する。
【００８３】
図７（ｅ）では、図６（ｅ）と同様に、ＤＢＩ反転回路４５は、１サイクル前に送信したデータＤＱの論理に対する反転ビット数が４ビット以下であるバイト３〜バイト１では、データＤＱを反転せず、各バイトに対応する反転ビットＤＢＩを論理０に設定する。一方、ＤＢＩ反転回路４５は、１サイクル前に送信したデータＤＱの論理に対する反転ビット数が５ビット以上であるバイト０では、データＤＱを反転し、対応する反転ビットＤＢＩを論理１に設定する。ＤＢＩ反転回路４５が生成したデータＤＱと反転ビットＤＢＩは、ＥＣＣ生成回路４４を介してデータ入出力回路４６に出力される。データ入出力回路４６は、ＤＢＩ反転回路４５が生成したデータＤＱおよび反転ビットＤＢＩと、反転処理回路４３が生成した全反転ビットＤＡＩとを積層メモリ３０に送信する。
【００８４】
図７（ｆ）に示すように、１サイクル前に対する３２ビットのデータＤＱ、データＤＱのバイト毎に対応する反転ビットＤＢＩおよび全反転ビットＤＡＩの反転ビット数の総数は１２ビットである。
【００８５】
図７（ｇ）では、積層メモリ３０のロジックチップ２０に設けられるＤＢＩ反転回路４７は、反転ビットＤＢＩが論理０のバイト３〜バイト１では、データＤＱの論理をそのまま出力する。ＤＢＩ反転回路４７は、反転ビットＤＢＩが論理１のバイト０では、データＤＱの論理を反転して出力する。
【００８６】
図７（ｈ）では、積層メモリ３０のロジックチップ２０に設けられる反転処理回路４９は、論理１の全反転ビットＤＡＩに基づいて、ＤＢＩ反転回路４７が出力したデータＤＱの論理を反転して出力する。これにより、図６と同様に、図７（ｂ）に示した”当該サイクルで送信したいデータ”が積層メモリ３０に書き込まれる。
【００８７】
図７（ｉ）〜図７（ｍ）は、全反転ビットＤＡＩが論理０に設定された場合に、プロセッサチップ４０から積層メモリ３０に転送されるデータＤＱの例を示す。図７（ｋ）に示すように、全反転ビットＤＡＩが論理０に設定された場合の３２ビットのデータＤＱに対応する反転ビット数の総数は１６ビットであり、全反転ビットＤＡＩを論理１に設定した方が、論理が反転するビット数が少ない。このため、プロセッサチップ４０から積層メモリ３０へのデータＤＱの転送は、図７（ａ）〜図７（ｈ）により実施される。
【００８８】
図８は、図２のプロセッサチップ４０から積層メモリ３０に送信するデータＤＱのさらなる別の例を示す。図６と同じ処理については、詳細な説明は省略する。図８は、図８（ａ）の”１サイクル前の送信データ”のバイト３〜バイト２の反転ビットＤＢＩの論理が、図６（ａ）に対して異なっている。図８（ｂ）の”当該サイクルで送信したいデータ”のデータＤＱの論理は、図６（ｂ）と同じである。なお、積層メモリ３０からプロセッサチップ４０にデータＤＱを転送する場合も、図８と同じ処理が実行される。
【００８９】
図８（ａ）および図８（ｂ）のデータＤＱの論理は、図６（ａ）および図６（ｂ）とそれぞれ同じであるため、図８（ｃ）の反転ビット数は図６（ｃ）と同じである。図８（ｄ）は、図６（ｄ）と同じであり、図８（ｅ）は、図６（ｅ）と同じである。但し、バイト３〜バイト２の反転ビットＤＢＩの論理は、”１サイクル前の送信データ”の反転ビットＤＢＩの論理と異なるため、図８（ｆ）の反転ビット数は、図６より２ビット多い１６ビットになる。図８（ｇ）および図８（ｈ）は、図６（ｇ）および図６（ｈ）とそれぞれ同じである。
【００９０】
一方、全反転ビットＤＡＩを論理０に設定する図８（ｉ）〜図８（ｍ）では、図８（ｋ）の反転ビット数が異なることを除き、図６（ｉ）〜図６（ｍ）と同じである。図８（ｋ）において、バイト３〜バイト２の反転ビットＤＢＩの論理は、”１サイクル前の送信データ”の反転ビットＤＢＩの論理と同じであるため、反転ビット数の総数は、図６（ｋ）に比べて２つ少ない”１４”になる。その結果、全反転ビットＤＡＩを論理０にした方が、全反転ビットＤＡＩを論理１にするよりも反転ビット数の総数を減らすことができる。
【００９１】
このため、反転処理回路４３は、図８（ｄ）に示す論理ではなく、図８（ｉ）に示す論理をＤＢＩ反転回路４５に出力する。ＤＢＩ反転回路４５は、図８（ｅ）に示す論理でなく、図８（ｊ）に示す論理を積層メモリ３０に向けて出力する。
【００９２】
このように、ＤＢＩ反転回路４５によるデータＤＱの反転が３バイト以上の場合でも、データ入出力回路４６から出力されるデータ等の反転ビット数が、全反転ビットＤＡＩが論理０の場合より多い場合、全反転ビットＤＡＩは論理０に設定される。換言すれば、反転ビットＤＢＩの３ビット以上が論理１に設定される場合にも、前回の送信に比べて論理が反転する信号の総数が増える場合、全反転ビットＤＡＩは論理０に設定される。これにより、上述したように、データＤＱ、反転ビットＤＢＩおよび全反転ビットＤＡＩの論理が変化する総数を削減することができ、データＤＱのインタフェース部分の消費電力をさらに削減することができる。
【００９３】
図９は、図２のプロセッサチップ４０が積層メモリ３０にデータＤＱを送信する場合の動作の一例を示す。なお、図９は、プロセッサチップ４０にデータＤＱを送信する積層メモリ３０の動作の一例も示している。すなわち、図９は、プロセッサチップ４０による積層メモリ３０への書き込みデータＤＱの転送方法と、積層メモリ３０によるプロセッサチップ４０への読み出しデータＤＱの転送方法の一例を示している。
【００９４】
積層メモリ３０がプロセッサチップ４０にデータＤＱを転送する例は、以下の説明中の”プロセッサチップ４０”を”積層メモリ３０”に置き換えることで説明される。図９に示す動作は、バースト動作の開始に基づいて開始される。なお、図９に示す動作は、３２ビットのデータＤＱ毎に実行され、１サイクルの１２８ビットのデータＤＱでは、図９に示す動作が４回並列に実行される。
【００９５】
まず、ステップＳ１０において、プロセッサチップ４０は、バースト動作のサイクルＣＹＣ０の場合、動作をステップＳ２４に移行し、バースト動作のサイクルＣＹＣ１−ＣＹＣ３の場合、動作をステップＳ１２に移行する。
【００９６】
ステップＳ１２において、プロセッサチップ４０の反転予測回路４２は、ラッチ回路４１が保持する１サイクル前のデータＤＱと反転ビットＤＢＩとに基づいて、ＤＢＩ反転回路４５が論理を反転するビット数を算出する。ここで、ＤＢＩ反転回路４５が論理を反転するビット数は、”当該サイクルで送信したいデータＤＱ”と１サイクル前に送信したデータＤＱとを用いて算出される予測値であり、ＤＢＩ反転回路４５が実際に論理を反転するビット数ではない。反転予測回路４２は、算出したビット数を各バイトに対応させて反転処理回路４３に出力する。
【００９７】
次に、ステップＳ１４において、反転処理回路４３は、反転予測回路４２から受信した反転ビット数に基づいて、論理が５ビット以上反転するバイトが３バイト以上であるか否かを判定する。すなわち、反転処理回路４３は、前回の送信に比べてビット値の変化数がビット数の半数を超えるバイトの比率が５０％を超えるか否かを判定する。論理が５ビット以上反転するバイトが３バイト以上である場合、動作はステップＳ１６に移行され、論理が５ビット以上反転するバイトが２バイト以下である場合、動作はステップＳ２０に移行される。
【００９８】
ステップＳ１６において、反転処理回路４３は、全反転ビットＤＡＩを論理１に設定した方が、全反転ビットＤＡＩを論理０に設定するより、総反転ビット数が少ないか否かを判定する。ここで、データＤＱ、反転ビットＤＢＩおよび全反転ビットＤＡＩが、総反転ビット数の判定に使用される。
【００９９】
全反転ビットＤＡＩを論理１に設定した方が、総反転ビット数が少ない場合、動作はステップＳ１８に移行され、全反転ビットＤＡＩを論理１に設定しても、総反転ビット数が少なくならない場合、動作はステップＳ２０に移行される。
【０１００】
ステップＳ１８において、反転処理回路４３は、論理１の全反転ビットＤＡＩと、”当該サイクルで送信したいデータＤＱ”の論理を反転したデータＤＱとをＤＢＩ反転回路４５に向けて出力し、動作をステップＳ２２に移行する。一方、ステップＳ２０において、反転処理回路４３は、論理０の全反転ビットＤＡＩと、”当該サイクルで送信したいデータＤＱ”とをＤＢＩ反転回路４５に向けて出力し、動作をステップＳ２２に移行する。
【０１０１】
ステップＳ２２において、ＤＢＩ反転回路４５は、反転処理回路４３から受信したデータＤＱと１サイクル前に送信したデータＤＱとに基づいて、データＤＱの論理を反転するかどうかを決め、論理を反転する場合、反転ビットＤＢＩを論理１に設定する。ＤＢＩ反転回路４５は、反転ビットＤＢＩの論理に応じて論理を設定したデータＤＱをデータ入出力回路４６に出力し、動作をステップＳ２４に移行する。
【０１０２】
ステップＳ２４において、データ入出力回路４６は、ＤＢＩ反転回路４５から受信したデータＤＱおよび反転ビットＤＢＩと、反転処理回路４３が生成した全反転ビットＤＡＩとを送信し、動作を終了する。なお、バースト動作のサイクルＣＹＣ０の場合、例えば、反転ビットＤＢＩおよび全反転ビットＤＡＩは、論理０に設定される。
【０１０３】
図１０は、図１のプロセッサチップ４０が積層メモリ３０からデータＤＱを受信する場合の動作の一例を示す。なお、図１０は、プロセッサチップ４０からデータＤＱを受信する積層メモリ３０の動作の一例も示している。すなわち、図１０は、プロセッサチップ４０による積層メモリ３０からの読み出しデータＤＱの受信方法と、積層メモリ３０によるプロセッサチップ４０からの書き込みデータＤＱの受信方法の一例を示す。
【０１０４】
積層メモリ３０がプロセッサチップ４０から出力される書き込みデータＤＱを受信する例は、以下の説明中の”プロセッサチップ４０”を”積層メモリ３０”に置き換えることで説明される。図１０に示す動作は、バースト動作の開始に基づいて開始される。なお、図１０に示す動作は、３２ビットのデータＤＱ毎に実行され、１サイクルの１２８ビットのデータＤＱでは、図１０に示す動作が４回並列に実行される。
【０１０５】
まず、ステップＳ３０において、プロセッサチップ４０のデータ入出力回路４６は、データＤＱ、反転ビットＤＢＩおよび全反転ビットＤＡＩを受信する。次に、ステップＳ３２において、プロセッサチップ４０は、バースト動作のサイクルＣＹＣ０の場合、動作を終了し、バースト動作のサイクルＣＹＣ１−ＣＹＣ３の場合、動作をステップＳ３４に移行する。サイクルＣＹＣ０の場合、反転ビットＤＢＩおよび全反転ビットＤＡＩは無効であり、プロセッサチップ４０は、データ入出力回路４６が受信したデータＤＱを用いて、データ処理等を実行する。
【０１０６】
ステップＳ３４において、プロセッサチップ４０のＤＢＩ反転回路４７は、データＤＱのバイト毎に、受信したＤＢＩが論理１の場合、受信したデータＤＱの論理を反転し、反転処理回路４９に向けて出力する。次に、ステップＳ３６において、プロセッサチップ４０の反転処理回路４９は、受信した全反転ビットＤＡＩが論理１の場合、受信した３２ビットのデータＤＱの論理を反転し、動作を終了する。
【０１０７】
以上、図２から図１０に示す実施形態においても、図１に示した実施形態と同様の効果を得ることができる。例えば、論理が反転される反転ビットＤＢＩの数を削減することができ、デバイス３０、４０間を伝送される信号において、論理が変化する信号のビット数を削減することができる。この結果、データ入出力回路４６の消費電力を削減することができ、システム・イン・パッケージ１０２の消費電力を削減することができる。また、全反転ビットＤＡＩをデータＤＱとともに１つのサイクルで伝送することで、全反転ビットＤＡＩを伝送する専用のサイクルを不要にすることができる。この結果、データＤＱの伝送効率を低下させることなく、データ入出力回路４６の消費電力を削減することができる。
【０１０８】
さらに、図２から図１０に示す実施形態では、以下に示す効果を得ることができる。例えば、反転予測回路４２は、全反転ビットＤＡＩの論理１の設定時のデータＤＱ、反転ビットＤＢＩおよび全反転ビットＤＡＩの反転ビット数が、全反転ビットＤＡＩの論理０の設定時よりもが多い場合、全反転ビットＤＡＩを論理０に設定する。これにより、１サイクル前に送信したデータＤＱだけでなく、データＤＱ、反転ビットＤＢＩおよび全反転ビットＤＡＩの論理が変化する総数を削減することができ、データＤＱのインタフェース部分の消費電力をさらに削減することができる。
【０１０９】
また、データマスクビットＤＭのうち、誤り検出・訂正符号に使用されない８ビットを使用して、反転ビットＤＢＩのトグルを少なくするための全反転ビットＤＡＩを設定することで、データＤＱのインタフェース部分の消費電力をさらに削減することができる。
【０１１０】
図１１は、別の実施形態の半導体装置におけるデータマスク領域の割り当ての一例を示す。図２から図１０で説明した内容と同様の内容については、詳細な説明は省略する。例えば、図１１のデータマスク領域の割り当てが適用される半導体装置は、図２と同様に、システム・イン・パッケージ１０２に搭載されるプロセッサチップ４０Ａまたは積層メモリ３０Ａ（図１２）である。すなわち、プロセッサチップ４０Ａは、図２のプロセッサチップ４０の代わりにシステム・イン・パッケージ１０２に搭載することができる。
【０１１１】
図１１では、ＥＣＣグループ内の４つの６４ビットのデータＤＱが３２ビットずつのメイングループＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈに分割される。例えば、メイングループＡ、Ｂ、Ｃ、ＤのデータＤＱは、バースト動作のサイクルＣＹＣ０、ＣＹＣ２で送受信されるデータＤＱであり、メイングループＥ、Ｆ、Ｇ、ＨのデータＤＱは、バースト動作のサイクルＣＹＣ１、ＣＹＣ３で送受信されるデータＤＱである。
【０１１２】
さらに、各メイングループＡ−Ｈは、４ビットずつの８つのサブグループＳ（Ｓ０、Ｓ１、Ｓ２、Ｓ３、Ｓ４、Ｓ５、Ｓ６、Ｓ７）に分割される。サブグループＳ０−Ｓ７のデータは、第２の部分データの一例である。一方、データマスク領域ＤＭにおいて、誤り検出・訂正符号に使用されない空きビットは、以下のように使用される。サイクルＣＹＣ０の空きの４ビットには、２ビットの基本反転パターンＢＲＰ［１：０］が割り当てられる。サイクルＣＹＣ１の空きの４ビットには、メイングループＥ、Ｆ、Ｇ、Ｈの反転ビットＲＢ−Ｅ、ＲＢ−Ｆ、ＲＢ−Ｇ、ＲＢ−Ｈ（各１ビット）がそれぞれ割り当てられる。
【０１１３】
サイクルＣＹＣ２の空きの４ビットには、メイングループＡ、Ｂ、Ｃ、Ｄの反転ビットＲＢ−Ａ、ＲＢ−Ｂ、ＲＢ−Ｃ、ＲＢ−Ｄ（各１ビット）がそれぞれ割り当てられる。サイクルＣＹＣ３の空きの４ビットには、サイクルＣＹＣ１と同様に、メイングループＥ、Ｆ、Ｇ、Ｈの反転ビットＲＢ−Ｅ、ＲＢ−Ｆ、ＲＢ−Ｇ、ＲＢ−Ｈ（各１ビット）がそれぞれ割り当てられる。
【０１１４】
以下では、反転ビットＲＢ−Ａ、ＲＢ−Ｂ、ＲＢ−Ｃ、ＲＢ−Ｄ、ＲＢ−Ｅ、ＲＢ−Ｆ、ＲＢ−Ｇ、ＲＢ−Ｈを区別なく説明する場合、反転ビットＲＢと称する。基本反転パターンＢＲＰは、グループ識別情報の一例であり、反転ビットＲＢは、反転ペア情報の一例であり、基本反転パターンＢＲＰおよび反転ビットＲＢは、第２の反転情報の一例である。
【０１１５】
図１１に示すデータマスク領域ＤＭに割り当てられる基本反転パターンＢＲＰおよび反転ビットＲＢにより、送受信するデータがどのように制御されるかの例は、図１３で説明する。
【０１１６】
図１２は、図１１のデータマスク領域ＤＭの割り当てが適用されるプロセッサチップ４０Ａの一例を示す。図５のプロセッサチップ４０と同様の要素については、同じ符号を付し、詳細な説明は省略する。プロセッサチップ４０Ａは、反転処理回路４３Ａ、ＥＣＣ生成回路４４、ＤＢＩ反転回路４５、データ入出力回路４６（ＰＨＹ）、ＤＢＩ反転回路４７、ＥＣＣ訂正回路４８および反転処理回路４９Ａを有する。反転処理回路４３Ａは、第２の判定部の一例であり、反転処理回路４９Ａは、第４の反転部の一例である。
【０１１７】
反転処理回路４３Ａは、４つのサイクルＣＹＣ０−ＣＹＣ３を使用して１回のバースト動作で転送される５１２ビットのデータＤＱについて、送信するデータＤＱの論理をサイクルＣＹＣ毎に決定する。送信するデータＤＱの論理をバースト動作の単位毎に決定するため、反転処理回路４３Ａは、５１２ビットのデータＤＱ（書き込みでデータ）の受信に基づいて動作する。反転処理回路４３Ａの動作の例については、図１３および図１４で説明する。
【０１１８】
ＥＣＣ生成回路４４、ＤＢＩ反転回路４５、データ入出力回路４６、ＤＢＩ反転回路４７およびＥＣＣ訂正回路４８は、図５のＥＣＣ生成回路４４、ＤＢＩ反転回路４５、データ入出力回路４６、ＤＢＩ反転回路４７およびＥＣＣ訂正回路４８と同様の機能を有する。
【０１１９】
反転処理回路４９Ａは、ＥＣＣ訂正回路４８から受信するデータＤＱの論理を、基本反転パターンＢＲＰと反転ビットＲＢとに基づいて、サブグループＳ毎に反転する処理を実施する。反転処理回路４９Ａは、基本反転パターンＢＲＰが”００”の場合、偶数番号のサブグループＳに属するデータＤＱのうち、論理１の反転ビットＲＢに対応するデータＤＱの論理を反転し、読み出しデータＤＱとして出力する。反転処理回路４９Ａは、基本反転パターンＢＲＰが”１０”の場合、奇数番号のサブグループＳに属するデータＤＱのうち、論理１の反転ビットＲＢに対応するデータＤＱの論理を反転し、読み出しデータＤＱとして出力する。反転処理回路４９Ａは、基本反転パターンＢＲＰが”１１”（無効情報）の場合、受信したデータＤＱの論理を変えずに読み出しデータＤＱとして出力する。
【０１２０】
偶数番号のサブグループＳ０、Ｓ２、Ｓ４、Ｓ６は、第１のグループ（偶数グループ）の一例であり、奇数番号のサブグループＳ１、Ｓ３、Ｓ５、Ｓ７は、第２のグループ（奇数グループ）の一例である。サブグループＳ０／Ｓ１、Ｓ２／Ｓ３、Ｓ４／Ｓ５、Ｓ６／Ｓ７の各々は、部分データペアの一例である。基本反転パターンＢＲＰ［１：０］により示される偶数番号のサブグループＳまたは奇数番号のサブグループＳは、優位グループの一例である。
【０１２１】
なお、図１２に示すプロセッサチップ４０Ａに含まれる符号４３Ａ、４４〜４８、４９Ａで示す各要素は、積層メモリ３０にも搭載される。すなわち、プロセッサチップ４０Ａを積層メモリ３０Ａとし、積層メモリ３０Ａをプロセッサチップ４０Ａとし、書き込みデータＤＱを読み出しデータＤＱとし、読み出しデータＤＱを書き込みデータＤＱとすることで、積層メモリ３０Ａの例が示される。
【０１２２】
この場合、積層メモリ３０Ａは、反転処理回路４３Ａ、ＥＣＣ生成回路４４、ＤＢＩ反転回路４５およびデータ入出力回路４６を用いて、プロセッサチップ４０Ａに送信するデータＤＱと、データＤＱに付随する情報とを生成する。また、積層メモリ３０Ａは、データ入出力回路４６、ＤＢＩ反転回路４７、ＥＣＣ訂正回路４８および反転処理回路４９Ａを用いて、プロセッサチップ４０から受信するデータを復元する。
【０１２３】
図１３は、図１１のデータマスク領域ＤＭの割り当てが適用されるプロセッサチップ４０Ａの動作の概要を示す。図１３は、１回のバースト動作において、サイクルＣＹＣ０−ＣＹＣ３で５１２ビットのデータＤＱが積層メモリ３０Ａに送信される場合を示す。
【０１２４】
サイクルＣＹＣ０では、プロセッサチップ４０は、当該サイクルで送信したいデータＤＱの論理を操作せず、ＤＢＩ反転回路４５を介して積層メモリ３０Ａに送信する。サイクルＣＹＣ０で送信される基本反転パターンＢＲＰの値は、図１２で説明したように、バースト動作が開始される前に、反転処理回路４３Ａにより決められる。
【０１２５】
基本反転パターンＢＲＰが２進数で”００”の場合、サイクルＣＹＣ１−ＣＹＣ３において、論理１の反転ビットＲＢに対応するメイングループ（Ａ−Ｈのいずれか）の偶数番号のサブグループＳのデータＤＱの論理を反転することを示す。図１３に示す例では、”００”の基本反転パターンＢＲＰに基づいて、論理１の反転ビットＲＢに対応する太枠で示す偶数番号のサブグループＳのデータＤＱの論理が反転され、ＤＢＩ反転回路４５を介して積層メモリ３０Ａに送信される。
【０１２６】
基本反転パターンＢＲＰが２進数で”１０”の場合、サイクルＣＹＣ１−ＣＹＣ３において、論理１の反転ビットＲＢに対応するメイングループ（Ａ−Ｈのいずれか）の奇数番号のサブグループＳのデータＤＱの論理が反転される。基本反転パターンＢＲＰが２進数で”１１”の場合、サイクルＣＹＣ１−ＣＹＣ３において、サブグループ単位でのデータＤＱの論理の反転は実行されず、サイクルＣＹＣ０と同じ動作が実行される。
【０１２７】
なお、２進数で”０１”の基本反転パターンＢＲＰは使用されない。このため、基本反転パターンＢＲＰが２進数で”１１”または”０１”の場合、上述した”１１”の場合と同じ動作が実行されてもよい。
【０１２８】
この実施形態では、反転処理回路４３Ａは、各バースト動作における５１２ビットのデータＤＱの論理の変化の傾向に基づいて、３２ビットの各メイングループＡ−Ｈ内の１６ビット毎にデータＤＱの論理を反転するか否かを決めることができる。
【０１２９】
図１４は、図１１のデータマスク領域ＤＭの割り当てが適用されるプロセッサチップ４０Ａから積層メモリ３０Ａに送信するデータＤＱの一例を示す。積層メモリ３０Ａに送信するデータＤＱは、反転処理回路４３Ａにより決定される。図１４では、ＥＣＣ生成回路４４およびＥＣＣ訂正回路４８の処理の説明は省略する。なお、積層メモリ３０Ａからプロセッサチップ４０ＡにデータＤＱを送信する場合も、図１４と同じ処理が実行される。
【０１３０】
反転処理回路４３Ａは、サイクルＣＹＣ０で送信するデータＤＱの論理（図１４（ａ））とサイクルＣＹＣ１で送信したいデータＤＱの論理（図１４（ｂ））とを比較し、サブグループＳ毎に論理が反転する反転ビット数を算出する（図１４（ｃ））。反転処理回路４３Ａは、反転ビット数に基づいて、（判定式１）、（判定式２）のいずれが有効か、あるいは、（判定式１）、（判定式２）のいずれも有効でないかを判定する。
【０１３１】
（判定式１）：（Ｓ０の反転ビット数＞２）＆（Ｓ１の反転ビット数＜２）＆（Ｓ２の反転ビット数＞２）＆（Ｓ３の反転ビット数＜２）＆（Ｓ４の反転ビット数＞２）＆（Ｓ５の反転ビット数＜２）＆（Ｓ６の反転ビット数＞２）＆（Ｓ７の反転ビット数＜２）
（判定式２）：（Ｓ０の反転ビット数＜２）＆（Ｓ１の反転ビット数＞２）＆（Ｓ２の反転ビット数＜２）＆（Ｓ３の反転ビット数＞２）＆（Ｓ４の反転ビット数＜２）＆（Ｓ５の反転ビット数＞２）＆（Ｓ６の反転ビット数＜２）＆（Ｓ７の反転ビット数＞２）
【０１３２】
（判定式１）では、偶数グループの全てのサブグループＳで、前回の送信に比べてビット値の変化数がビット数の半数を超え、奇数グループの全てのサブグループＳで、前回の送信に比べてビット値の変化数がビット数の半数以下であることが判定される。（判定式２）では、奇数グループの全てのサブグループＳで、前回の送信に比べてビット値の変化数がビット数の半数を超え、偶数グループの全てのサブグループＳで、前回の送信に比べてビット値の変化数がビット数の半数以下であることが判定される。そして、反転処理回路４３Ａは、（判定式１）または（判定式２）を満足する場合、ビット値の変化数がビット数の半数を超えたグループを優位グループと判定する。
【０１３３】
次に、反転処理回路４３Ａは、（判定式１）、（判定式２）による判定結果に基づいて、サイクルＣＹＣ１で送信するデータＤＱを仮決定する（図１４（ｄ））。
【０１３４】
反転処理回路４３Ａは、（判定式１）が有効であると判定した場合、偶数番号のサブグループＳの反転ビット数が３ビット以上のデータＤＱの論理を反転してサイクルＣＹＣ１で送信するデータＤＱを生成する。すなわち、（判定式１）が有効である場合、偶数番号の４つのサブグループＳのうち、前回の送信に比べてデータＤＱのビット値の変化数がビット数の半数を超えるサブグループＳのデータＤＱの論理が反転される。
【０１３５】
反転処理回路４３Ａは、（判定式２）が有効である判定した場合、奇数番号のサブグループＳの反転ビット数が３ビット以上のデータＤＱの論理を反転してサイクルＣＹＣ１で送信するデータＤＱを生成する。すなわち、（判定式２）が有効である場合、奇数番号の４つのサブグループＳのうち、前回の送信に比べてデータＤＱのビット値の変化数がビット数の半数を超えるサブグループＳのデータＤＱの論理が反転される。
【０１３６】
反転処理回路４３Ａは、（判定式１）、（判定式２）のいずれも有効でないと判定した場合、サイクルＣＹＣ１で送信したいデータＤＱをサイクルＣＹＣ１で送信するデータＤＱとする。
【０１３７】
次に、反転処理回路４３Ａは、サイクルＣＹＣ１で送信するデータＤＱ（仮決定）の論理とサイクルＣＹＣ２で送信したいデータＤＱの論理（図１４（ｅ））とを比較し、サブグループＳ毎に論理が反転する反転ビット数を算出する（図１４（ｆ））。反転処理回路４３Ａは、反転ビット数に基づいて、（判定式１）、（判定式２）のいずれが有効か、あるいは、いずれも有効でないかを判定する。そして、反転処理回路４３Ａは、サイクルＣＹＣ１で送信するデータＤＱを決定したときと同様に、有効と判定した判定式を用いて、サイクルＣＹＣ２で送信するデータＤＱを仮決定する（図１４（ｇ））。
【０１３８】
次に、反転処理回路４３Ａは、上述と同様に、サイクルＣＹＣ２で送信するデータＤＱの論理（仮決定）とサイクルＣＹＣ３で送信したいデータＤＱ（図１４（ｈ））の論理とを比較し、サブグループＳ毎に論理が反転する反転ビット数を算出する（図１４（ｉ））。反転処理回路４３Ａは、上述と同様に、（判定式１）、（判定式２）を用いて、サイクルＣＹＣ３で送信するデータＤＱを仮決定する（図１４（ｊ））。
【０１３９】
次に、反転処理回路４３Ａは、サイクルＣＹＣ１−ＣＹＣ３のうち、(判定式１)が有効と判定したサイクルＣＹＣが２つ以上ある場合、偶数番号のサブグループＳのデータＤＱの論理を反転することが有効と判断し、基本反転パターンＢＲＰを”００”に設定する。この場合、反転処理回路４３Ａは、反転ビット数が３ビット以上の偶数番号のサブグループＳに対応する反転ビットＲＢを論理１に設定し、反転ビット数が２ビット以下の偶数番号のサブグループＳに対応する反転ビットＲＢを論理０に設定する。
【０１４０】
反転処理回路４３Ａは、サイクルＣＹＣ１−ＣＹＣ３のうち、(判定式２)が有効と判定したサイクルＣＹＣが２つ以上ある場合、奇数番号のサブグループＳのデータＤＱの論理を反転することが有効と判断し、基本反転パターンＢＲＰを”１０”に設定する。この場合、反転処理回路４３Ａは、反転ビット数が３ビット以上の奇数番号のサブグループＳに対応する反転ビットＲＢを論理１に設定し、反転ビット数が２ビット以下の奇数番号のサブグループＳに対応する反転ビットＲＢを論理０に設定する。
【０１４１】
反転処理回路４３Ａは、サイクルＣＹＣ１−ＣＹＣ３のうち、（判定式１）、(判定式２)が有効と判定したサイクルＣＹＣがいずれも１つ以下の場合、各サブグループＳのデータＤＱの論理を反転しないことが有効と判断する。そして、反転処理回路４３Ａは、基本反転パターンＢＲＰを”１１”に設定する。この場合、反転ビットＲＢの論理は、いずれに設定されてもよい。
【０１４２】
そして、反転処理回路４３Ａは、基本反転パターンＢＲＰが”００”の場合、送信したいデータＤＱにおいて、反転ビット数が３以上の偶数番号のサブグループＳのデータＤＱの論理を反転し、ＤＢＩ反転回路４５に向けて出力する。図１４は、基本反転パターンＢＲＰが”００”に設定された場合の例を示しており、下線で示した反転ビット数が３以上の偶数番号のサブグループＳのデータＤＱの論理が反転され、ＤＢＩ反転回路４５に供給される。
【０１４３】
反転処理回路４３Ａは、基本反転パターンＢＲＰが”１０”の場合、送信したいデータＤＱにおいて、反転ビット数が３以上の奇数番号のサブグループＳのデータＤＱの論理を反転し、ＤＢＩ反転回路４５に向けて出力する。反転処理回路４３Ａは、基本反転パターンＢＲＰが”１１”の場合、送信したいデータＤＱを、反転することなく送信するデータＤＱとしてＤＢＩ反転回路４５に向けて出力する。
【０１４４】
図１５は、図１１のデータマスク領域ＤＭの割り当てが適用されるプロセッサチップ４０から積層メモリ３０にデータＤＱを送信する場合の動作の一例を示す。なお、図１５は、プロセッサチップ４０ＡにデータＤＱを送信する積層メモリ３０Ａの動作の一例も示している。すなわち、図１５は、プロセッサチップ４０Ａによる積層メモリ３０Ａへの書き込みデータＤＱの転送方法と、積層メモリ３０Ａによるプロセッサチップ４０Ａへの読み出しデータＤＱの転送方法の一例を示している。
【０１４５】
積層メモリ３０Ａがプロセッサチップ４０ＡにデータＤＱを転送する例は、以下の説明中の”プロセッサチップ４０Ａ”を”積層メモリ３０Ａ”に置き換えることで説明される。図１５に示す動作は、バースト動作を開始する場合に、バースト動作で転送する５１２ビットのデータＤＱを反転処理回路４３Ａが受信したことに基づいて開始される。
【０１４６】
まず、ステップＳ４０において、プロセッサチップ４０Ａの反転処理回路４３Ａは、サイクルＣＹＣ１での反転ビット数をサブグループＳ毎に算出する。次に、ステップＳ４２において、反転処理回路４３Ａは、（判定式１）、（判定式２）のいずれが有効かを判定し、有効と判定した判定式を用いて、サイクルＣＹＣ１でＤＢＩ反転回路４５に出力するデータＤＱの論理を仮決定する。
【０１４７】
次に、ステップＳ４４において、反転処理回路４３Ａは、サイクルＣＹＣ２での反転ビット数をサブグループＳ毎に算出する。次に、ステップＳ４６において、反転処理回路４３Ａは、（判定式１）、（判定式２）のいずれが有効かを判定し、有効と判定した判定式を用いて、サイクルＣＹＣ２でＤＢＩ反転回路４５に出力するデータＤＱの論理を仮決定する。
【０１４８】
次に、ステップＳ４８において、反転処理回路４３Ａは、サイクルＣＹＣ３での反転ビット数をサブグループＳ毎に算出する。次に、ステップＳ５０において、反転処理回路４３Ａは、（判定式１）、（判定式２）のいずれが有効かを判定し、有効と判定した判定式を用いて、サイクルＣＹＣ３でＤＢＩ反転回路４５に出力するデータＤＱの論理を仮決定する。
【０１４９】
次に、ステップＳ５２において、反転処理回路４３Ａは、サイクルＣＹＣ１、ＣＹＣ２、ＣＹＣ３で有効と判定した（判定式１）、（判定式２）の数に基づいて、基本反転パターンＢＲＰを決定する。次に、ステップＳ５４において、反転処理回路４３Ａは、ステップＳ５２で決定した基本反転パターンＢＲＰに基づいて、反転ビット数が３ビット以上の偶数番号または奇数番号のいずれかのサブグループＳに対応する反転ビットＲＢを論理１に設定する。
【０１５０】
次に、ステップＳ５６において、反転処理回路４３Ａは、基本反転パターンＢＲＰに基づいて、論理１の反転ビットＲＢに対応する偶数番号のサブグループＳまたは奇数番号のサブグループＳのデータＤＱの論理を反転する。
【０１５１】
次に、ステップＳ５８において、反転処理回路４３Ａは、ステップＳ５４で生成したデータＤＱを含む５１２ビットのデータＤＱをサイクルＣＹＣ毎にＤＢＩ反転回路４５に向けて出力する。そして、ＤＢＩ反転回路４５は、８ビットのデータＤＱ毎に論理を反転するか否かを決定し、論理を反転する場合、反転ビットＤＢＩを論理１に設定し、データ入出力回路４６に出力する。そして、データ入出力回路４６は、データＤＱ、反転ビットＤＢＩ、ＲＢおよび全反転ビットＤＡＩをサイクル毎に順次送信し、バースト動作でのデータＤＱの送信処理が終了する。
【０１５２】
図１６は、図１１のデータマスク領域ＤＭの割り当てが適用されるプロセッサチップ４０が積層メモリ３０からデータＤＱを受信する場合の動作の一例を示す。なお、図１６は、プロセッサチップ４０ＡからデータＤＱを受信する積層メモリ３０Ａの動作の一例も示している。すなわち、図１６は、プロセッサチップ４０Ａによる積層メモリ３０Ａからの読み出しデータＤＱの受信方法と、積層メモリ３０Ａによるプロセッサチップ４０Ａからの書き込みデータＤＱの受信方法の一例を示す。
【０１５３】
積層メモリ３０Ａがプロセッサチップ４０Ａから出力される書き込みデータＤＱを受信する例は、以下の説明中の”プロセッサチップ４０Ａ”を”積層メモリ３０Ａ”に置き換えることで説明される。図１６に示す動作は、バースト動作の開始に基づいて開始される。
【０１５４】
まず、ステップＳ６０において、プロセッサチップ４０Ａの反転処理回路４９Ａは、サイクルＣＹＣ０において、データＤＱおよび基本反転パターンＢＲＰを、ＤＢＩ反転回路４７を介して受信する。次に、ステップＳ６２において、反転処理回路４９Ａは、受信したデータＤＱを読み出しデータとして出力する。
【０１５５】
次に、ステップＳ６４において、反転処理回路４９Ａは、サイクルＣＹＣ１でデータＤＱおよび反転ビットＲＢを、ＤＢＩ反転回路４７を介して受信する。次に、ステップＳ６６において、反転処理回路４９Ａは、基本反転パターンＢＲＰと反転ビットＲＢとに基づいて、論理１の反転ビットＲＢに対応する偶数番号または奇数番号のサブグループＳのデータＤＱの論理を反転する。そして、反転処理回路４９Ａは、サイクルＣＹＣ１での１２８ビットのデータＤＱを読み出しデータＤＱとして出力する。
【０１５６】
次に、ステップＳ６８において、反転処理回路４９Ａは、サイクルＣＹＣ２でデータＤＱおよび反転ビットＲＢを、ＤＢＩ反転回路４７を介して受信する。次に、ステップＳ７０において、反転処理回路４９Ａは、基本反転パターンＢＲＰと反転ビットＲＢとに基づいて、論理１の反転ビットＲＢに対応する偶数番号または奇数番号のサブグループＳのデータＤＱの論理を反転する。そして、反転処理回路４９Ａは、サイクルＣＹＣ２での１２８ビットのデータＤＱを読み出しデータとして出力する。
【０１５７】
次に、ステップＳ７２において、反転処理回路４９Ａは、サイクルＣＹＣ３でデータＤＱおよび反転ビットＲＢを、ＤＢＩ反転回路４７を介して受信する。次に、ステップＳ７４において、反転処理回路４９Ａは、基本反転パターンＢＲＰと反転ビットＲＢとに基づいて、論理１の反転ビットＲＢに対応する偶数番号または奇数番号のサブグループＳのデータＤＱの論理を反転する。そして、反転処理回路４９Ａは、サイクルＣＹＣ３での１２８ビットのデータＤＱを読み出しデータとして出力し、バースト動作でのデータＤＱの受信処理が終了する。
【０１５８】
以上、図１１から図１６に示す実施形態においても、図１から図１０に示した実施形態と同様に、論理が反転される反転ビットＤＢＩの数を削減でき、デバイス３０Ａ、４０Ａ間を伝送される信号において、論理が変化するビット数を削減することができる。この結果、データ入出力回路４６の消費電力を削減することができ、システム・イン・パッケージ１０２の消費電力を削減することができる。また、基本反転パターンＢＲＰと反転ビットＲＢとをデータＤＱとともに伝送することで、基本反転パターンＢＲＰおよび反転ビットＲＢを伝送する専用のサイクルを不要にすることができる。この結果、データＤＱの伝送効率を低下させることなく、データ入出力回路４６の消費電力を削減することができる。
【０１５９】
さらに、図１１から図１６に示す実施形態では、反転処理回路４３Ａは、各バースト動作における５１２ビットのデータＤＱの論理の変化の傾向に基づいて、各メイングループＡ−Ｈ内の１６ビット毎にデータＤＱの論理を反転するか否かを決めることができる。
【０１６０】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１６１】
１ａ、１ｂ  半導体装置
２  第２の反転部
３  第１の反転部
４  送信部
５  受信部
６  第３の反転部
７  第４の反転部７
１０  メモリチップ
２０  ロジックチップ
３０  積層メモリ
４０  プロセッサチップ
４１  ラッチ回路
４２  反転予測回路
４３  反転処理回路
４４  ＥＣＣ生成回路
４５  ＤＢＩ反転回路
４６  データ入出力回路（ＰＨＹ）
４７  ＤＢＩ反転回路
４８  ＥＣＣ訂正回路
４９  反転処理回路
５０  シリコンインターポーザ
６０  パッケージ基板
１００  システム
１０２  システム・イン・パッケージ
ＢＲＰ  基本反転パターン
ＤＡＩ  全反転ビット
ＤＢＩ  反転ビット
ＤＭ  データマスクビット、データマスク領域
ＤＱ  データ
ＤＴ  データ
ＩＶ１０−ＩＶ１３  第１の反転情報
ＩＶ２  第２の反転情報
ＲＢ  反転ビット
Ｓ（Ｓ０−Ｓ７）  サブグループ
【図１】
2020170904.tif 000003
【図２】
2020170904.tif 000004
【図３】
2020170904.tif 000005
【図４】
2020170904.tif 000006
【図５】
2020170904.tif 000007
【図６】
2020170904.tif 000008
【図７】
2020170904.tif 000009
【図８】
2020170904.tif 000010
【図９】
2020170904.tif 000011
【図１０】
2020170904.tif 000012
【図１１】
2020170904.tif 000013
【図１２】
2020170904.tif 000014
【図１３】
2020170904.tif 000015
【図１４】
2020170904.tif 000016
【図１５】
2020170904.tif 000017
【図１６】
2020170904.tif 000018