(57)【要約】本発明は、熱が集中的に発生して高温部位となり易いホットスポットが生じない三次元集積回路を提供する。集積回路装置は、メモリ回路で構成される第１の回路と、演算回路で構成される第２の回路と、制御回路とを含み、第１の回路は、第２の回路との間の配置位置の距離に応じて複数の回路ブロックに分割され、制御回路は、分割された夫々の回路ブロックを独立して制御する。
2013080426.tif 000002
【特許請求の範囲】
【請求項１】
メモリ回路で構成される第１の回路と、演算回路で構成される第２の回路と、制御回路とを含み、
前記第１の回路は、前記第２の回路との間の配置位置の距離に応じて複数の回路ブロックに分割され、
前記制御回路は、分割された夫々の回路ブロックを独立して制御することを特徴とする集積回路装置。
【請求項２】
前記制御回路による制御が無ければ、前記第２の回路が動作することによって発生する熱の影響により、前記第１の回路は、動作が可能な温度範囲を超えることを特徴とする請求項１に記載の集積回路装置。
【請求項３】
前記メモリ回路がキャッシュメモリであり、前記演算回路がプロセッサコアである請求項２に記載の集積回路装置。
【請求項４】
前記制御回路は、分割された夫々の前記回路ブロックに対して、独立して電源電圧の供給、遮断の制御を行うことを特徴とする請求項３に記載の集積回路装置。
【請求項５】
前記制御回路は、分割された夫々の前記回路ブロックに対して、独立して電源電圧の変更の制御を行うことを特徴とする請求項３に記載の集積回路装置。
【請求項６】
前記制御回路が、別チップにされる配置することを特徴とする請求項３に記載の集積回路装置。
【請求項７】
更に、ヒートシンクを含み、
前記制御回路が、前記ヒートシンクに最も近いチップの層に配置されることを特徴とする請求項３に記載の集積回路装置。
【請求項８】
第１のチップと、第１のチップと直接に積層する第２のチップとを含む三次元集積回路であって、
前記第１のチップは、比較的発熱量の多い回路ブロックと比較的発熱量の少ない回路ブロックと含み、
前記第２のチップは、比較的発熱量の多い回路ブロックと比較的発熱量の少ない回路ブロックと含み、
前記第１のチップにおける比較的発熱量の多い回路ブロックと、前記第２のチップにおける比較的発熱量の多い回路ブロックとが、層間で重なる面積が最小となるように、前記第１のチップと前記第２のチップとが相互に配置された上で積層されていることを特徴とする三次元集積回路。
【請求項９】
２枚以上のチップを積層して構成される三次元集積回路であって、
その中の少なくとも２枚のチップが同一回路ブロックレイアウトを持つチップであり、
前記少なくとも２枚のチップの配置が層間で異なるように配置されていることを特徴とする三次元集積回路。
【請求項１０】
同一回路ブロックレイアウトを持つ前記少なくとも２枚のチップにおいて、一方のチップは他方のチップに対して９０度若しくは１８０度回転して積層されていることを特徴とする請求項９に記載の三次元集積回路。
【請求項１１】
同一回路ブロックレイアウトを持つ前記少なくとも２枚のチップがプロセッサチップであって、マルチコアシステムを構成する請求項９に記載の三次元集積回路。
【請求項１２】
前記少なくとも２枚のプロセッサチップにおいて、一方のプロセッサチップが他方のプロセッサチップに対して９０度若しくは１８０度回転して積層されていることを特徴とする請求項１１に記載の三次元集積回路。
【請求項１３】
積層時にレベル２キャッシュメモリ同士が上下方向で隣接する第１の領域が、前記少なくとも２枚のプロセッサチップの夫々において分割されており、
分割された前記第１の領域は、夫々のプロセッサチップにて独立して制御されることを特徴とする請求項１２に記載の三次元集積回路。
【請求項１４】
積層する複数のプロセッサチップと、割り当て制御部とを含む三次元プロセッサ装置であって、
各プロセッサチップは、一つ若しくは複数のプロセッサコアを備え、
前記割り当て制御部は、前記三次元プロセッサ装置における各プロセッサコアの位置のデータを記憶しているプロセッサコア位置記憶部を含み、
前記割り当て制御部は、前記プロセッサコア位置記憶部に記憶される各プロセッサコアの位置のデータに基づき、各プロセッサコアに対するプログラムの割り当てを制御する三次元プロセッサ装置。
【請求項１５】
前記割り当て制御部は、積層するプロセッサチップ間において、上下に隣接して配置されたプロセッサコアが同時にプログラムを動作しないように各プロセッサコアに対するプログラムの割り当てを制御する請求項１４に記載の三次元プロセッサ装置。
【請求項１６】
前記割り当て制御部は、積層するプロセッサチップ間において、左右に隣接して配置されたプロセッサコアが同時にプログラムを動作しないように各プロセッサコアに対するプログラムの割り当てを制御する請求項１４に記載の三次元プロセッサ装置。
【請求項１７】
複数のプロセッサチップを積層させて構成される三次元マルチコアプロセッサ装置における複数のプロセッサコアに対するプロセススケジューラであって、
各プロセッサコアにおける負荷量を取得する負荷取得部と、
三次元マルチコアプロセッサ装置における個々のプロセッサコアに対応する各プロセスキュー部に、各プロセッサコアの負荷量に基づいて、プロセスをスケジューリングするスケジュール部と、
前記プロセッサコア負荷取得部における、各プロセッサコアの負荷量を修正する負荷修正部と、
各プロセッサコアの位置を記憶する位置記憶部と、
各プロセッサコアの温度を取得する温度取得部と
を備え、
前記負荷修正部は、前記位置記憶部の記憶する各プロセッサコアの位置情報と、前記温度取得部の取得する各プロセッサコアの温度情報とを用いて、負荷取得時における各プロセッサコアの負荷量を修正することを特徴とするプロセススケジューラ。
【請求項１８】
前記負荷修正部は、前記位置記憶部の記憶する各プロセッサコアの位置情報と、前記温度取得部の取得する各プロセッサコアの温度情報とを用いて、所定値より高温であるプロセッサコアと上下に隣接して配置されたプロセッサコアの負荷量を、前記スケジュール部がスケジューリングを停止するように修正することを特徴とする請求項１７に記載のプロセススケジューラ。
【請求項１９】
複数のプロセッサチップを積層させて構成される三次元マルチコアプロセッサ装置における複数のプロセッサコアに対するプロセススケジューラであって、
各プロセッサコアに対するプロセスのキューを行い各プロセッサコアに順にプロセスを実行させるプロセスキュー部と、
前記プロセスキュー部の夫々の無効化及び有効化を制御するキュー無効化有効化制御部と、
各プロセッサコアの位置を記憶する位置記憶部と、
各プロセッサコアの温度を取得する温度取得部と
を備え、
前記キュー無効化有効化制御部は、前記位置記憶部の記憶する各プロセッサコアの位置情報と、前記温度取得部の取得する各プロセッサコアの温度情報とを用いて、前記プロセスキュー部の無効化及び有効化を制御することを特徴とするプロセススケジューラ。
【請求項２０】
前記キュー無効化有効化制御部は、前記位置記憶部の記憶する各プロセッサコアの位置情報と、前記温度取得部の取得する各プロセッサコアの温度情報とを用いて、所定値より高温であるプロセッサコアと上下に隣接して配置されたプロセッサコアに対するプロセスキュー部を無効化することを特徴とする請求項１９に記載のプロセススケジューラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、熱の発生を制御する集積回路装置、三次元集積回路、三次元プロセッサ装置、及びプロセススケジューラに関する。
【背景技術】
【０００２】
三次元集積回路は、複数のチップを積層して構成され、複数のチップ間は、シリコン貫通電極（Ｔｈｒｏｕｇｈ  Ｓｉｌｉｃｏｎ  Ｖｉａ；以下、「ＴＳＶ」と称する。）やマイクロバンプなどで接続される。三次元集積回路は、回路の高速化、データ通信の広帯域化、及び低電力化などを実現する高性能の集積回路として期待を集めている。なお以下では、三次元の積層を伴わない集積回路を「二次元集積回路」と称する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−５４８５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
三次元集積回路では、二次元平面の方向だけではなく三次元の方向にも回路が配置されることから、二次元集積回路に比べて、発生する熱が篭りやすい（逃げ難い）という問題がある。発生する熱による高温状態が持続すると、集積回路の誤作動が非常に発生し易くなる。発生する熱が篭りやすい原因として、大きく二つ挙げられる。【０００５】
一つ目は、発熱源に関する事象である。三次元集積回路では、発熱源が積層方向に重なることがある。つまり、単体の回路（チップ）から発生する熱だけではなく上下に積層されたチップから発生する熱が発熱源となることがある。例として、同一チップを積層した三次元プロセッサにより説明する。実行プログラムにも依存するが、プロセッサは基本的に演算器の周辺が高温になることが多い。演算器同士が二次元平面上で同じ位置に配置されるように複数のチップ同士を積層した構造においてシミュレーションを行ったところ、演算器同士が積層方向に重なる領域においては、他の領域よりも１０度以上温度が上昇する、という結果が得られた。【０００６】
二つ目は、冷却に関する事象である。三次元集積回路では、発熱源からヒートシンク等の冷却装置までの距離が大きくなることがあり、このことにより、発生熱の冷却が困難になることがある。集積回路を構成するシリコンやメタル配線は熱の伝導性が高い。しかし、メタル配線の間に配置される絶縁膜などの材料は、熱伝導度が低い。このために、ヒートシンクまでの距離が大きい程、即ち、積層チップ数が多い程、熱が篭りやすい。【０００７】
チップを積層した構造において上下方向の複数のチップから発生する熱による高温化を回避する対策が、特許文献１に記載されている。特許文献１は、ドライバチップとマイコンチップが積層されてなるＳｉＰ（Ｓｙｓｔｅｍ  ｉｎ  Ｐａｃｋａｇｅ）を開示している。そのＳｉＰでは、熱くなり易いドライバチップと熱に弱い回路ブロックを上下に重ならないように配置されている。しかし、このＳｉＰは、マイコンチップの配置に合うようにドライバチップのフロアプランが設計されたものである。即ち、様々な三次元集積回路に汎用的に応用できる技術ではない。 【０００８】
本発明は、熱が集中的に発生して高温部位となり易いホットスポットが生じない三次元集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、上記の目的を達成するために為されたものである。本発明に係る集積回路装置は、メモリ回路で構成される第１の回路と、演算回路で構成される第２の回路と、制御回路とを含み、第１の回路は、第２の回路との間の配置位置の距離に応じて複数の回路ブロックに分割され、制御回路は、分割された夫々の回路ブロックを独立して制御する。【００１０】
本発明に係る集積回路装置によれば、発生する熱の影響により動作不可能なメモリ回路の領域のみを停止し、同時に動作可能なメモリ回路の領域を継続して動作させることができるので、発生する熱の影響によるプロセッサチップの性能低下を最小限に抑えることができる。
【発明の効果】
【００１１】
本発明によれば、三次元集積回路において、熱が集中的に発生して高温部位となるホットスポットの発生を抑制できる。
【図面の簡単な説明】
【００１２】
【図１】（ａ）は、本発明の第１の実施形態に係るプロセッサチップ（回路）ｃ１の平面図である。（ｂ）は、従来のプロセッサチップｃ１の平面図である。
【図２】（ａ）及び（ｂ）は、図１（ａ）に示すマイクロチップｃ１と同じ構成を備える動作中のプロセッサチップｃ１における、８５度以上の部分の分布の例を示す図である。
【図３】（ａ）（ｂ）は、第１の実施形態における、レベル２キャッシュメモリの分割レイアウトの別の例を示す図である。
【図４】プロセッサチップにおけるプロセッサコアに、第１の実施形態を適用した場合の回路レイアウトの例を示す図である。
【図５】従来のプロセッサチップにおけるプロセッサコアの内部を構成する回路のレイアウトの例を示す図である。
【図６】本発明の第２の実施形態に係るプロセッサチップの平面図である。
【図７】４ウェイにより構成されるレベル２キャッシュメモリの模式図である。
【図８】各ウェイを、レベル２キャッシュメモリの、分割されたブロックに割り当てた例を示す図である。
【図９】第２の実施形態に係るプロセッサチップにおいて、様々な制御を行うことを示す図である。
【図１０】本発明の第３の実施形態に係るプロセッサチップの平面図である。
【図１１】(ａ）は、第３の実施形態に係る４ウェイ及び４セットにより構成されるレベル２キャッシュメモリの模式図である。（ｂ）は、サブアレイの構成を示す図である。
【図１２】サブアレイの構成を示すブロック図である。
【図１３】本発明の第４の実施形態に係るキャッシュメモリの電源遮断の処理フローである。
【図１４】第４の実施形態に係るキャッシュメモリ制御の処理フローである。
【図１５】第４の実施形態に係るキャッシュメモリ制御の別の処理フローである。
【図１６】第４の実施形態に係るキャッシュメモリ制御の更に別の処理フローである。
【図１７】第４の実施形態に係るキャッシュメモリ制御の更に別の処理フローである。
【図１８】第４の実施形態に係るキャッシュメモリ制御の更に別の処理フローである。
【図１９】第４の実施形態に係るプロセッサチップの平面図である。
【図２０】第５の実施形態に係るプロセッサチップの回路構成の例を示す図である。
【図２１】第５の実施形態に係るプロセッサチップの回路構成の別の例を示す図である。
【図２２】第５の実施形態に係るプロセッサチップの回路構成の、更に別の例を示す図である。
【図２３】第５の実施形態に係るプロセッサチップの回路構成の、更に別の例を示す図である。
【図２４】第５の実施形態に係るプロセッサチップの回路構成の、更に別の例を示す図である。
【図２５】（ａ）は、（ｂ）と対比されるプロセッサチップの回路レイアウトを示す図である。（ｂ）は、本発明の第６の実施形態に係るプロセッサチップの回路レイアウトを示す図である。
【図２６】第６の実施形態に係るプロセッサチップの回路レイアウトの別の例を示す図である。
【図２７】(ａ）（ｂ）は、夫々、第６の実施形態に係るプロセッサチップｃ１の回路レイアウトの、更に別の例を示す図である。
【図２８】第６の実施形態に係るプロセッサチップの回路レイアウトの、更に別の例を示す図である。
【図２９】（ａ）は、（ｂ）に示すプロセッサチップを２枚積層した三次元集積回路の側面図である。（ｂ）は、プロセッサチップの回路図である。
【図３０】一般的な三次元集積回路の側面図である。
【図３１】（ａ）は、２枚のプロセッサチップを積層させた三次元集積回路の側面図である。（ｂ）は、２枚のプロセッサチップを積層させる場合の模式図である。
【図３２】（ａ）は、２枚のプロセッサチップを積層させた、本発明の第７の実施形態に係る三次元集積回路の側面図である。（ｂ）は、第７の実施形態に係る三次元集積回路における、２枚のプロセッサチップを積層させる場合の模式図である。
【図３３】（ａ）は、２枚のプロセッサチップを積層させた、第７の実施形態に係る三次元集積回路の別の例の側面図である。（ｂ）は、第７の実施形態に係る三次元集積回路の別の例における、２枚のプロセッサチップを積層させる場合の模式図である。
【図３４】第７の実施形態に係る三次元積層回路の、更に別の例を示す図である。
【図３５】第７の実施形態に係る三次元積層回路の、更に別の例を示す図である。
【図３６】第７の実施形態に係る三次元積層回路の、更に別の例を示す図である。
【図３７】第７の実施形態に係る三次元積層回路の、更に別の例を示す図である。
【図３８】第７の実施形態に係る三次元積層回路の、更に別の例を示す図である。
【図３９】（ａ）は、本発明の第８の実施形態に係る、３枚のプロセッサチップを積層した三次元集積回路の側面図である。（ｂ）は、第８の実施形態に係る、３枚のプロセッサチップを積層させる場合の模式図である。
【図４０】（ａ）は、本発明の第８の実施形態に係る三次元集積回路における、プロセッサチップと割り当て制御回路との関係を示すブロック図である。（ｂ）は、本発明の第８の実施形態に係る三次元集積回路の別の例における、プロセッサチップと割り当て制御回路との関係を示すブロック図である。（ｃ）は、本発明の第８の実施形態に係る三次元集積回路における、プロセッサチップとヒートシンクとの関係を示す側面図である。
【図４１】（ａ）は、第８の実施形態に係る、２枚のプロセッサチップを積層した三次元集積回路の別例の側面図である。（ｂ）は、第８の実施形態に係る、２枚のプロセッサチップの模式図である。
【図４２】従来のプロセススケジューラ部のブロック図と、２枚のプロセッサチップを積層させて構成される三次元集積回路における各プロセッサチップとの、関係を示す図である。
【図４３】本発明の第９の実施形態に係るプロセススケジューラ部のブロック図である。
【図４４】第９の実施形態に係るプロセススケジューラ部の別例のブロック図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、本発明の好適な実施形態を説明する。好適な実施形態は、熱が集中的に発生して高温となり易いホットスポットが生じないように制御する三次元集積回路に関する。
【００１４】
好適な実施形態は、以下のように３つのグループに分けられる。
[第１の実施形態〜第６の実施形態]プロセッサチップの高温部分を冷却する回路構造及び制御方法に関する実施形態。
[第７の実施形態]異なる階層のチップ同士で発熱源となる回路が重ならないように配置されるチップレイアウト及び回路レイアウトに関する実施形態。
[第８の実施形態〜第９の実施形態]チップ上に高温の場所（ホットスポット）ができないように各回路の動作やプロセス割り振りを制限する方法に関する実施形態。
【００１５】
[第１の実施形態]
１．１．プロセッサチップの構成
図１（ａ）は、第１の実施形態に係るプロセッサチップ（回路）ｃ１の平面図である。なお、図１（ｂ）は、従来のプロセッサチップｃ１’の平面図である。
【００１６】
プロセッサチップｃ１は、プロセッサコアと称される演算を行う回路ブロックと、レベル２キャッシュメモリと称される記憶領域とに大きく分けられる。プロセッサコアは、一つのプロセッサチップ内に複数設けられることが多い。図１（ａ）に示すプロセッサチップｃ１は、２個のプロセッサコア（プロセッサコア０、プロセッサコア１）を含む。更にプロセッサコアには、レベル１キャッシュ、レジスタファイル、整数演算ユニット、小数演算ユニット、ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）演算ユニット、ロードストアユニットなどが含まれる。また、レベル２キャッシュメモリは、複数のＳＲＡＭサブアレイから構成される記憶領域である。
【００１７】
プロセッサチップｃ１は更に、周辺回路４、並びに、プロセッサコア及びレベル２キャッシュメモリの動作を制御する動作制御回路６を含む。周辺回路４は、クロック制御部、電源制御部、外部メモリインタフェース部、及びＰＣＩ−Ｅｘｐｒｅｓｓインタフェース部などを含む。動作制御回路６の制御動作については、後で説明する。
【００１８】
図１に示すようなプロセッサチップｃ１’においては、レベル２キャッシュメモリに比べて、プロセッサコアの方がより発熱する。その理由として、レベル２キャッシュメモリは容量が大きいこと、及び、プロセッサコアよりも動作速度が遅いことが挙げられる。更に、プロセッサコアは、パイプライン方式で動作しているので回路の多くの部分が同時に動作するが、レベル２キャッシュメモリなどの記憶素子は記憶領域の全てが同時に活性化することはないことも挙げられる。
【００１９】
従って、プロセッサコアから発生する熱の多くが、レベル２キャッシュメモリに回り込む。このような状態で長時間継続して使用していると、プロセッサコアや、それに隣接するレベル２キャッシュメモリの一部は、プロセッサチップが動作する許容温度を超えてしまうことがある。これを解消するために、レベル２キャッシュメモリに入っているデータを外部メモリへパージし、その上で熱を持つプロセッサコア及びレベル２キャッシュメモリへの電源を遮断して、プロセッサチップ上の熱を持つ部分を冷却することが考えられる。しかしながら、レベル２キャッシュメモリのうち動作不能な程度まで熱くなる部分はプロセッサコアの近傍に過ぎず、図１（ｂ）に示す従来の構成においてレベル２キャッシュメモリの全体を電源遮断すると、低温であり動作可能な部分まで使用できなくなる。特にマルチコアプロセッサシステムでは、レベル２キャッシュメモリを複数のプロセッサコアで共有して使用する場合も多い。このため、レベル２キャッシュメモリの全体の電源を遮断してしまうと、熱を発していない他のプロセッサコアも動作し得なくなる。
【００２０】
本実施形態のプロセッサチップｃ１は、上述の課題を解決するものであり、図１（ａ）に示すように、プロセッサコアで構成される回路ブロックと、レベル２キャッシュメモリで構成される記憶領域とを含み、更に、記憶領域は、３個のブロック（即ち、レベル２キャッシュメモリ（１）、レベル２キャッシュメモリ（２）、及びレベル２キャッシュメモリ（３））に分割されている。３個のメモリブロックは、２個のプロセッサコアからの距離に応じて配置されており、３個のメモリブロック（レベル２キャッシュメモリ（１）、レベル２キャッシュメモリ（２）、及びレベル２キャッシュメモリ（３））の各々は、独立して制御され得るように構成されている。
【００２１】
このような構成を有する本実施形態のプロセッサチップｃ１によれば、プロセッサコアから受ける熱で記憶領域（レベル２キャッシュメモリ）の温度が動作可能範囲を超えるような場合であっても、レベル２キャッシュメモリ全体を放熱のために停止する必要は無く、熱の影響により動作不可能な領域のメモリのみを停止し同時に動作可能な領域のメモリを継続して動作させることができる。このようにすることにより、熱の影響によるプロセッサチップｃ１の性能低下を最小限に抑えることができる。
【００２２】
本実施形態の効果について、図２（ａ）及び（ｂ）を用いて説明する。図２（ａ）及び（ｂ）は、図１（ａ）に示すマイクロチップｃ１が、動作中である場合のプロセッサチップｃ１における８５度以上の部分の分布の例を示している。なお、プロセッサコアを含むプロセッサチップにおける熱分布は、プロセッサアーキテクチャ、回路ブロックレイアウト、キャッシュ容量、デバイス構造、及び実行プログラムの内容などによって変化する。
【００２３】
図２（ａ）は、プロセッサコア０上で負荷が重いプログラムを実行し、プロセッサコア１で負荷が軽いプログラムを実行したときの、プロセッサチップｃ１上での８５度以上の部分の分布の例を示している。８５度以上の熱が発生する領域は、レベル２キャッシュメモリ（１）の領域まで広がっていることが分かる。このままプロセッサチップｃ１を連続して動作させると、プロセッサコア０とレベル２キャッシュメモリ（１）との領域で、更に温度が上がり、集積回路としての許容動作温度を超えてしまうことが想定され得る。そこで、本実施形態に係るプロセッサチップｃ１では、最小限の回路ブロック（ここでは、プロセッサコア０とレベル２キャッシュメモリ（１）との部分）だけ動作を停止して、集積回路としての許容動作温度を超えないようにする。このとき、プロセッサコア１、レベル２キャッシュメモリ（２）、及びレベル２キャッシュメモリ（３）は、そのまま継続して動作させることができる。
【００２４】
図２（ｂ）は、プロセッサコア０とプロセッサコア１との両方で負荷の重いプログラムを実行したときの、プロセッサチップｃ１上での８５度以上の部分の分布の例を示している。２つのプロセッサコアで負荷の重いプログラムを実行すると、レベル２キャッシュメモリ（１）及びレベル２キャッシュメモリ（２）の範囲まで、８５度以上の熱が発生する領域が広がっていることが分かる。この例でも、プロセッサチップｃ１を連続して動作させると、プロセッサコア０、プロセッサコア１、レベル２キャッシュメモリ（１）、及びレベル２キャッシュメモリ（２）の領域で、集積回路としての許容動作温度を超えてしまうことが想定され得る。そこで本実施形態では、プロセッサコア０、プロセッサコア１、レベル２キャッシュメモリ（１）、及びレベル２キャッシュメモリ（２）の部分を停止して、集積回路としての許容動作温度を超えないようにする。このとき、レベル２キャッシュメモリ（３）は、そのまま継続して動作させることができる。
【００２５】
レベル２キャッシュメモリの分割のレイアウトは、図１（ａ）に示すものに限定されない。図３（ａ）（ｂ）は、レベル２キャッシュメモリの分割レイアウトの別の例を示す図である。図１（ａ）に示すレベル２キャッシュメモリは、３領域に分けられているが、例えば、図３（a）に示すように２領域に分けられてもよいし、図示していないが４領域以上に分けられてもよい。また、個々のプロセッサコアからの熱伝導を考慮して、図３（ｂ）に示すように、プロセッサコアの近くの領域では個々のプロセッサコアに対応して分割された領域を設け、プロセッサコアから離れている領域では一つの領域を設けてもよい。また、熱は同心円状には伝導しないこともあるため、非均質にレベル２キャッシュメモリを分割してもよい。
【００２６】
図１乃至図３に示すプロセッサチップｃ１では、プロセッサコアとレベル２キャッシュメモリとに本実施形態の思想を適用したが、演算ユニットのような多量の熱を発生する回路と、キャッシュメモリのような熱の発生が少なく同一構成が一様に分布するような回路とが組み合わされた回路（チップ）であれば、本実施形態の思想の適用が可能である。例えば、図４に示すように、プロセッサコア内のレベル１キャッシュメモリに対して適用してもよい。
【００２７】
図５は、従来のプロセッサチップｃ１’におけるプロセッサコアの内部を構成する回路のレイアウトの例を示す。プロセッサコアｃ１’は、概略、レベル１命令キャッシュメモリ、レベル１データキャッシュメモリ、命令処理ユニット、データ処理ユニット、整数演算ユニット、及び小数演算ユニットにより構成される。図５に示すレイアウト構成では、プロセッサコアの最上部にレベル１命令キャッシュメモリが配置されており、ここから直ぐ下にある命令処理ユニットに命令が転送される。その後この命令に沿って、レベル１データキャッシュメモリ、データ処理ユニット、整数演算ユニット、及び小数演算ユニットにてデータの演算処理が行われる。
【００２８】
図４は、本実施形態のプロセッサチップｃ１におけるプロセッサコアの回路レイアウトの例である。プロセッサコアが実装するプログラムによっては、小数演算ユニットを頻繁に使う場合と全く使わない場合とがある。このために、レベル１命令キャッシュメモリを、小数演算ユニットに近い部分（レベル１命令キャッシュメモリ（２））と命令処理ユニットに近い部分（レベル１命令キャッシュメモリ（１））とに分割する。分割されたレベル１命令キャッシュメモリ（１）と、レベル１命令キャッシュメモリ（２）は夫々独立して制御される。例えば、小数演算ユニットの温度が高くなった場合には、プロセッサコア０は、小数演算が不要なプログラムに切り換えて運用する。これにより、小数演算ユニット及びレベル１命令キャッシュメモリ（２）は、集積回路としての許容動作温度を超えない。このとき、小数演算を使用する命令コードをレベル１命令キャッシュメモリ（２）側に入れておけばよい。
【００２９】
小数演算ユニットと同様に、プロセッサコア内部がプログラムによっては、整数演算ユニットを頻繁に使う場合と全く使わない場合とがある。このため、レベル１データキャッシュメモリを、整数演算ユニットに近い部分（レベル１データキャッシュメモリ（２））とデータ処理ユニットに近い部分（レベル１データキャッシュメモリ（１））とに分割してもよい。このとき、分割されたレベル１データキャッシュメモリ（１）と、レベル１データキャッシュメモリ（２）は夫々独立して制御される。
【００３０】
１．２．まとめ
第１の実施形態では、演算ユニットのような多量の熱を発生する回路と、キャッシュメモリのような熱の発生が少なく同一構成が一様に分布するような回路とが組み合わされた回路（チップ）において、メモリ回路が適宜分割され、分割された回路ブロックは独立して制御される。このように構成することにより、発生する熱の影響により動作不可能なメモリ回路の領域のみを停止し同時に動作可能なメモリ回路の領域を継続して動作させることができる。よって、発生する熱の影響によるプロセッサチップの性能低下を最小限に抑えることができる。なお、本実施形態の説明では、演算ユニットとキャッシュメモリを含む回路を取り上げているが、これに限定されるものではなく、発熱量の多い回路ブロックと発熱量の少ない回路ブロックを含む回路においても本実施形態を適用できる。
【００３１】
[第２の実施形態]
２．１．プロセッサチップの構成
図６は、第２の実施形態に係るプロセッサチップｃ１の平面図である。図６に示す第２の実施形態に係るプロセッサチップｃ１では、図１（ａ）に示す第１の実施形態に係るプロセッサチップと同様に、レベル２キャッシュメモリが複数のブロックに分割されているが、図６に示すレベル２キャッシュメモリの夫々のブロックは、ウェイの単位で利用されるように構成されている。
【００３２】
図６に示すプロセッサチップｃ１では、レベル２キャッシュメモリが４ウェイ（ウェイ０〜３）で構成されており、「ウェイ０」はレベル２キャッシュメモリ（１）の領域を使用し、「ウェイ１」はレベル２キャッシュメモリ（２）の領域を使用し、更に、「ウェイ２」「ウェイ３」はレベル２キャッシュメモリ（３）の領域を使用する。
【００３３】
まず従来のレベル２キャッシュメモリの構成について説明する。図７は、４ウェイにより構成されるレベル２キャッシュメモリの模式図である。レベル２キャッシュメモリは、タグを保持するメモリアレイ１１ａとデータを保持するメモリアレイ１１ｂとから構成されている。４ウェイの夫々にメモリアレイ１１ａ、１１ｂが割り当てられる。
【００３４】
図７に示すレベル２キャッシュメモリでは、アドレスの下位ビットにより、各ウェイ（即ち、４ウェイ全て）のタグがキャッシュメモリ制御回路８へ引き出される。そして、個々のタグに記憶された値とアドレスの上位ビットとが比較され一致すればヒットとなり、不一致であればミスとなる。ヒットの場合にはヒットしたタグのウェイをデータ選択回路１３が選択してデータを読み取り、プロセッサコアへ出力する。ミスの場合には外部メモリ（図示せず。）からデータを取得する。
【００３５】
次に、本実施形態のレベル２キャッシュメモリの構成について説明する。図８は、各ウェイを、レベル２キャッシュメモリの、分割されたブロック（領域）に割り当てた例である。図７に示す従来のキャッシュメモリの構成に加えて、ウェイ０〜４の有効・無効を示すビットフラグ１０を備えている。ビットフラグ１０は、各ウェイを無効化するために使用される。このビットフラグ１０は、プロセッサコア、又は、プロセッサコア及びキャッシュメモリの動作制御回路６から書き込まれる。ビットフラグ１０はウェイ毎に用意されており、フラグの値がＯＮであるときはそのウェイの全てが無効となる。例えば、図９（ａ）に示すように、レベル２キャッシュメモリ（１）の領域、即ちウェイ０が、放熱のために、電源遮断等の制御が行われる場合、ウェイ０に対応する部分をすべて無効にするためにウェイ０の有効・無効フラグ１０を無効を示す値に変更する。
【００３６】
また、電源遮断等の制御を独立して行う領域は、図９（ｂ）に示すレベル２キャッシュメモリ（１）、（３）のように、相互に離れていてもよい。このとき、プロセッサコアから離れたレベル２キャッシュメモリ（２）が使用されるので、プロセッサコアからの熱が伝わりにくいキャッシュメモリが使用されることになる。また、図９（ｃ）に示すように、連続する２領域（ウェイ０：レベル２キャッシュメモリ（１）、ウェイ１：レベル２キャッシュメモリ（２））の電源を遮断し、同時に一方のプロセッサコアの電源を遮断して、シングルコアのプロセッサチップとして使用することも可能である。キャッシュメモリの容量が少なくてもあまりキャッシュミスが発生しないプログラムに対しては、プロセッサコアそのものの性能がプログラム実行時の実効性能に影響するため、ホットスポットを発生させないように最も遠いプロセッサコアとレベル２キャッシュメモリの領域とを組み合わせて動作させるようにしてもよい。
【００３７】
なお、本実施形態では、４ウェイセットアソシアティブ方式を用いて説明したが、これ以外のウェイ数でもよい。例えば２ウェイセットアソシアティブ方式でもよいし、８ウェイセットアソシアティブ方式でもよい。
【００３８】
２．２．まとめ
第２の実施形態では、プロセッサコアと、レベル２キャッシュメモリが適宜分割されたプロセッサチップにおいて、分割されたレベル２キャッシュメモリの回路ブロックはウェイ単位で利用され、且つウェイ単位の利用は有効・無効フラグ１０により制御される。このように構成することにより、発生する熱の影響により、動作不可能なウェイ単位の利用に係る回路ブロックのみを停止し同時に動作可能な範囲を継続して動作させることができる。よって、発生する熱の影響によるプロセッサチップの性能低下を最小限に抑えることができる。
【００３９】
[第３の実施形態]
３．１．プロセッサチップの構成
図１０は、第３の実施形態に係るプロセッサチップｃ１の平面図である。図１０に示す第３の実施形態に係るプロセッサチップｃ１では、図１（ａ）に示す第１の実施形態に係るプロセッサチップと同様に、レベル２キャッシュメモリが複数のブロックに分割されているが、図１０に示すレベル２キャッシュメモリの夫々のブロックは、セットの単位で利用されるように構成されている。
【００４０】
図１０に示すプロセッサチップｃ１では、レベル２キャッシュメモリが４セット（セット０〜３）で構成されている。「セット０」「セット１」はレベル２キャッシュメモリ（３）の領域を使用し、「セット２」はレベル２キャッシュメモリ（２）の領域を使用し、更に、「セット３」はレベル２キャッシュメモリ（１）の領域を使用する。図１０は、セット２及びセット３について電源遮断がなされている状態を示している。
【００４１】
図１１(ａ）は、本実施形態の４ウェイ及び４セットにより構成されるレベル２キャッシュメモリの模式図である。従来のレベル２キャッシュメモリとは異なり、アドレスの入力部分にタグマスク回路１２が備わり、メモリアレイ（データ）の容量（セット数）が変更可能である。ここでセットは、１ウェイあたりの容量に関係するパラメータである。
【００４２】
キャッシュメモリは高速化のために、図１１（ｂ）に示すようなサブアレイ１４に分けて実装されている。このサブアレイ１４を一纏めにしたものが「セット」と称される。また、サブアレイ１４は一つ又は複数のキャッシュラインを備える。セット数が変更されると、アドレス内のビットフィールドにおいて、インデックスとタグに使用するビットが変わる。これを調整するためにタグマスク回路１４が実装されている。
【００４３】
次に、第３の実施形態に係るプロセッサチップｃ１の動作を説明する。なお、説明を分かりやすくするために、以下では、１セットあたりにキャッシュラインが２ラインのみ備わり、一つのセット（例えば、セット０）にのみ電源が供給されそれ以外の全てのセットには電源が遮断されている構成を例として取り上げる（この構成は、図１１に示す構成とは異なる）。なお、「１セットあたりにキャッシュラインが２ラインのみ備わる」構成には、各セットにサブアレイ１４が二つ備わり且つ各サブアレイ１４に一つのキャッシュラインが備わる構成と、各セットにサブアレイ１４が一つ備わり且つ各サブアレイ１４に二つのキャッシュラインが備わる構成とがある。このとき、１セットあたり２ラインしか無い。アドレスの最下位ビットの値は２ラインのうちいずれかを特定する。アドレスの残りの上位ビットの値はタグに格納される値と比較が行われウェイを特定する。
【００４４】
また、電源が供給されるセット数が２倍になると、アドレスの最下位ビットから２ビットの値により、セット及びキャッシュラインの検索と特定が行われ、アドレスの残りの上位ビットの値はタグに格納される値と比較が行われウェイを特定する。
【００４５】
次に、図１２を用いて、サブアレイの構成について説明する。なお、図１２に示すブロック図は、後で説明するメモリ回路のクロック制御にも関連する。図１２に示すＳＲＡＭのサブアレイ１４は、記憶素子のアレイとなっているＳＲＡＭアレイ１６を備える。アレイ内の行を選択する行ドライバ１８、列を選択する列ドライバ２４、及びこれらの選択信号を生成するデコーダ回路２２により制御系回路が構成される。外部からのデータをバッファリングするデータバッファ２６、ライトデータをアレイ内部までドライブし、アレイからの読み出しデータを増幅するライトデータドライバ／センスアンプ２６によりデータ系経路が構成される。更に、これらの回路へ制御信号やクロック信号を分配するＣＬＫ制御／メモリ制御回路３０が回路全体の制御を行う。
【００４６】
なお、第２の実施形態及び第３の実施形態では、ウェイとセットの夫々に基づいてキャッシュメモリを分割したが、それ以外の基準に基づいて分割してもよい。例えば、ウェイとセットを組み合わせてキャッシュメモリの領域を分割してもよい。
【００４７】
３．２．まとめ
第３の実施形態では、プロセッサコアと、レベル２キャッシュメモリが適宜分割されたプロセッサチップにおいて、分割されたレベル２キャッシュメモリの回路ブロック（メモリブロック）はセット単位で利用され、且つセット単位で利用が制御される。このように構成することにより、発生する熱の影響により、動作不可能なセット単位の利用に係る回路ブロックのみを停止し同時に動作可能な範囲を継続して動作させることができる。よって、発生する熱の影響によるプロセッサチップの性能低下を最小限に抑えることができる。
【００４８】
[第４の実施形態]
４．１．分割したレベル２キャッシュメモリの放熱の制御フロー
第１の実施形態から第３の実施形態では、キャッシュメモリの分割構造について説明した。第４の実施形態は、分割したレベル２キャッシュメモリの放熱の制御に関するものである。本実施形態では、熱の影響を受ける回路ブロックを分離して、放熱のために細かく制御を行う。この熱くなった回路に対して放熱するためには、電源電圧を遮断することが好ましい。
【００４９】
４．１．（１）第１の処理フロー
図１３は、第４の実施形態のレベル２キャッシュメモリ（以下、単に「キャッシュメモリ」という。）の電源遮断の第１の処理フローである。なお、図１３に示す処理フローの制御を行うキャッシュメモリでは、分割された回路ブロック（メモリブロック）毎に温度をモニタリングする温度検出回路が設けられている。この温度検出回路として、後で説明する図２０に示す温度検出回路３４を利用することができる。以下の、図１４〜図１８に示す処理フローの制御を行うキャッシュメモリにおいても同様である。
【００５０】
図１３に示す処理フローでは、初めに、モニタリングしているキャッシュメモリの温度が動作の許容温度を超えたかどうかを判別する（Ｓ１１）。ここでの許容温度は、キャッシュメモリ内の温度を計測するモニタリング回路の誤差や周辺回路の動作条件なども考慮して決定される必要がある。キャッシュメモリの温度が許容温度以上である場合（Ｓ１１・ＹＥＳ）には、冷却のための処理に移行する。キャッシュメモリの電源電圧を遮断するには、外部メモリ内の内容と一致しないデータに関しては、キャッシュメモリの内部のデータを外部メモリへ書き戻す（ライトバック）必要がある。ただし、ライトスルー方式で制御している場合にはライトバックは不要であるため、この処理が除かれてもよい。このために、電源遮断する領域のレベル２キャッシュメモリの内容をパージ（ライトバック）して（Ｓ１２）、パージした各キャッシュラインを無効化（インバリデート）する（Ｓ１３）。この後に電源遮断を行う（Ｓ１４）。電源遮断を行うと、プロセッサチップの温度は低下する。モニタリング回路は、起動可能温度以下になるまでモニタリングする（Ｓ１５）。起動可能温度も上述の許容温度と同様に、モニタリング回路の誤差等を考慮して決定される必要がある。キャッシュメモリが起動可能温度より低温になったら（Ｓ１５・ＹＥＳ）、キャッシュメモリに電源を供給して、キャッシュメモリの初期化を行う（Ｓ１５）。このとき、電源供給開始直後のキャッシュメモリの値はすべて不定値なので初期化でインバリデートする。この後は通常のキャッシュメモリとして、温度をモニタリングしながら（Ｓ１１）使用する。
【００５１】
４．１．（２）第２の処理フロー
図１４は、第４の実施形態に係る第２の処理フローである。図１４に示すステップＳ２１〜Ｓ２６の処理は、図１３に示すステップＳ１１〜１６の処理と略同様であるが、図１４に示す処理フローでは、電源遮断を行わず、電源電圧を変化（低下）させる（Ｓ２４）。集積回路のリーク電流などの消費電力は電源電圧に比例する。このために、電源電圧を下げることでも発生する熱量は低下して冷却の効果が得られる。更に、データを保持できる範囲で電圧を低下させる場合には、キャッシュメモリのパージ（Ｓ２２）や無効化（Ｓ２３）は不要である。通常、高温条件でのメモリ回路はデータ保持の能力が低くなるため、図１３に示す電源遮断を行う処理フローと、図１４に示す電源電圧を変更（低下）する処理フローとのいずれが適しているかについては、稼動させるアプリケーションも含めた上で判断することが好ましい。
【００５２】
４．１．（３）第３の処理フロー
図１５は、第４の実施形態に係る第３の処理フローである。図１５に示すステップＳ３１〜Ｓ３６の処理は、図１３に示すステップＳ１１〜１６の処理と略同様であるが、図１５に示す処理フローでは、電源遮断を行わず、クロックゲーティングを行う（Ｓ３４）。クロックゲーティングの処理では、電源遮断の処理とは異なり、データが揮発してしまうことはない。このため、キャッシュメモリが起動可能温度より低温になり（Ｓ３５・ＹＥＳ）、ゲーティングしていたキャッシュメモリを復帰させる際、即ち、ゲーティングしていたキャッシュメモリのゲーティングを解除する際には、キャッシュメモリの初期化は不要である（Ｓ３６）。キャッシュメモリのゲーティングは、図１２に示すＳＲＡＭのサブアレイのブロック図内の、ＣＬＫ／メモリ制御回路３０への入力クロックをゲーティングすることにより行われる。
【００５３】
４．１．（４）第４の処理フロー
図１６は、第４の実施形態に係る第４の処理フローである。図１６に示すステップＳ４１〜Ｓ４６の処理は、図１３に示すステップＳ１１〜１６の処理と略同様であるが、図１６に示す処理フローでは、電源遮断を行わず、メモリクロックの周波数の変更（減少）を行う（Ｓ４４）。メモリクロックの周波数の変更の処理でも、電源遮断の処理とは異なり、データが揮発してしまうことはない。このため、キャッシュメモリが起動可能温度より低温になり（Ｓ４５・ＹＥＳ）、メモリクロックの周波数を下げていたキャッシュメモリについて、周波数を元に戻す際には、キャッシュメモリの初期化は不要である（Ｓ４６）。キャッシュメモリへのメモリクロックの周波数の変更は、図１２に示すＳＲＡＭのサブアレイのブロック図内の、ＣＬＫ／メモリ制御回路３０への入力クロックを変更することにより行われる。なお、キャッシュメモリのメモリクロックの周波数変更（減少）は、ＤＶＦＳ（Ｄｙｎａｍｉｃ  Ｖｏｌｔａｇｅ  ａｎｄ  Ｆｒｅｑｕｅｎｃｙ  Ｓｃａｌｉｎｇ）のように、電源電圧を低下させることと同時に行われてもよい。
【００５４】
４．１．（５）第５の処理フロー
図１７は、第４の実施形態に係る第５の処理フローである。図１７に示すステップＳ５１〜Ｓ５６の処理は、図１３に示すステップＳ１１〜１６の処理と略同様であるが、図１７に示す処理フローでは、電源遮断を行わず、メモリクロックのデューティ比の変更（減少）を行う（Ｓ５４）。メモリクロックのデューティ比の変更の処理でも、電源遮断の処理とは異なり、データが揮発してしまうことはない。このため、キャッシュメモリが起動可能温度より低温になり（Ｓ５５・ＹＥＳ）、メモリクロックのデューティ比を元に戻す際には、キャッシュメモリの初期化は不要である（Ｓ５６）。
【００５５】
４．１．（６）第６の処理フロー
図１８は、第４の実施形態に係る第６の処理フローである。図１８に示すステップＳ６１〜Ｓ６６の処理は、図１３に示すステップＳ１１〜１６の処理と略同様であるが、図１８に示す処理フローでは、電源遮断を行わず、キャッシュメモリ内のサブアレイ（図１２参照）のチップセレクト信号をディスエーブルに（ここでは“１”に）固定する（Ｓ６４）。サブアレイのチップセレクト信号をディスエーブルに固定する処理も、電源遮断の処理とは異なり、データが揮発してしまうことはない。このため、キャッシュメモリが起動可能温度より低温になり（Ｓ６５・ＹＥＳ）、サブアレイのチップセレクト信号の固定を解除する際には、キャッシュメモリの初期化は不要である（Ｓ５６）。サブアレイのチップセレクト信号をディスエーブルに固定することは、図１２に示すＳＲＡＭのサブアレイのブロック図内の、ＣＬＫ／メモリ制御回路３０への入力制御信号を変更することにより行われる。
【００５６】
なお、図１３から図１８に示すこれらの制御方法を組み合わせて、分割したキャッシュメモリの放熱の制御を行ってもよい。例えば、電源電圧の変更とクロックゲーティングを組み合わせてもよいし、電源電圧の変更とクロック周波数の変更を組み合わせてもよい。
【００５７】
また、プロセッサチップｃ１全体の温度が上昇し動作許容温度を超えそうになった場合には、ブロック毎に異なる放熱の制御を行ってもよい。例えば、図１９に示すように、プロセッサコア０とレベル２キャッシュメモリ（３）では、電源電圧と動作周波数とを下げてプログラムを実行してもよい。プロセッサコア１ではメモリクロックのゲーティングを行い、レベル２キャッシュメモリ（１）（２）では電源遮断を行って、放熱を行ってもよい。このような構成とすることにより、プロセッサチップ全体の温度が上昇したときには、プロセッサコア０とレベル２キャッシュメモリ（３）を使って低速モードで動作し続けることが可能となる。
【００５８】
４．２．まとめ
第４の実施形態では、キャッシュメモリの分割された回路ブロックに対して、モニタリングする発生熱に基づいて、放熱のための制御を行う。放熱のための制御として、電源遮断、電源電圧低下、クロックゲーティング、メモリクロックの周波数減少、メモリクロックのデューティ比減少、及びＳＲＡＭのサブアレイのチップセレクト信号の固定等が挙げられる。
【００５９】
[第５の実施形態]
５．１．分割したレベル２キャッシュメモリの放熱の制御のための構成
第５の実施形態は、分割したキャッシュメモリの放熱の制御のための具体的構成に関するものである。第４の実施形態では、放熱の制御を開始するためのトリガが全て温度であったが、第５の実施形態に係る装置では、放熱の制御を開始するためのトリガが温度以外のものである。なお、以下の第５の実施形態に係る装置では、制御の対象を電源電圧としているが、第４の実施形態の処理フローで示したように制御の対象が別のもの（例えば、メモリクロック周波数）であってもよい。
【００６０】
５．１．（１）第１の例
図２０は、第５の実施形態に係るプロセッサチップｃ１の回路構成の第１の例を示す図である。図２０に示すプロセッサチップｃ１では、レベル２キャッシュメモリを構成する各ブロック、即ち、レベル２キャッシュメモリ（１）（２）（３）夫々の温度情報に基づいて、各レベル２キャッシュメモリ（１）（２）（３）の電源電圧が制御されている。レベル２キャッシュメモリ（１）（２）（３）の各ブロック内の温度を把握するために、レベル２キャッシュメモリ（１）（２）（３）の夫々の中央に、温度検出回路３４が配置されている。温度検出回路３４は、例えば、サーマルダイオードにより構成される。サーマルダイオードは、電流を流したときの電圧を計測することによりその部分の温度が判別される素子である。温度検出回路３４で検出された温度情報は、キャッシュメモリの外に配置された動作制御回路６へ送られる。動作制御回路６の中には、レベル２キャッシュメモリの各ブロックへの電源電圧を夫々制御するためのキャッシュブロック電源制御回路３６が設けられている。レベル２キャッシュメモリの各ブロックの温度が動作許容温度以上になった際には、キャッシュメモリのパージ処理を伴うため、電源電圧低下（又は、遮断）開始の情報がプロセッサコア側へ通知され、パージ処理と無効化処理が行われる。これらの処理がプロセッサコア側で完了したあとで、キャッシュブロック電源制御回路３６は電源電圧の低下（又は、遮断）処理を行う。
【００６１】
５．１．（２）第２の例
図２１は、第５の実施形態に係るプロセッサチップｃ１の回路構成の第２の例を示す図である。図２１に示すプロセッサチップｃ１では、動作制御回路６は、レベル２キャッシュメモリの各ブロックへの電源電圧を夫々制御するためのキャッシュブロック電源制御回路４０を含み、各キャッシュブロック電源制御回路４０はタイマー回路３８を備える。図２１に示す形態では、キャッシュブロック電源制御回路４０は、タイマー回路３８により計測された一定時間の経過後に、電源電圧の低下（又は、遮断）を開始する。例えば、組み込み向けのプロセッサにおいて所定の処理を周期的に行う場合には、タイマー回路３８で一定時間を計測して、キャッシュブロック電源制御回路４０にレベル２キャッシュメモリのブロックへの電源を遮断させるようにしてもよい。外部の温度によって周期が変化するような場合には、外部の温度をタイマー回路３８に入力して外部の温度によりタイマー回路３８の周期を変更するように構成してもよい。
【００６２】
５．１．（３）第３の例
図２２は、第５の実施形態に係るプロセッサチップｃ１の回路構成の第３の例を示す図である。図２２に示すプロセッサチップｃ１の動作制御回路６に含まれるキャッシュブロック電源制御回路４４は、プロセッサコアに与えられるクロック信号に基づいて、電源電圧を変動（又は、遮断）させる。周辺回路４に含まれるクロックギア切り替え回路４６が、プロセッサコア（プロセッサコア０、プロセッサコア１）に与えるクロック信号の周波数を切り替える。各キャッシュブロック電源制御回路４４に備わるクロックモニタ回路４２は、プロセッサコアに与えられるクロック信号の周波数をモニタしている。キャッシュブロック電源制御回路４４は、クロックモニタ回路４２のモニタ情報に基づいて電源電圧を変動（又は、遮断）させる制御を行う。
【００６３】
近年、プロセッサチップでは、プロセッサへの負荷に応じて、与えられる周波数や電圧が変動する、ＤＶＦＳ（Ｄｙｎａｍｉｃ  Ｖｏｌｔａｇｅ  ａｎｄ  Ｆｒｅｑｕｅｎｃｙ  Ｓｃａｌｉｎｇ）の仕組が利用されている。従って、プロセッサコアへのクロック信号の周波数をモニタリングすることにより、プロセッサコアにおける発熱の傾向が把握され得る。例えば、負荷が小さいときは周波数が１．８ＧＨｚであり、負荷が大きいときは周波数が３．８ＧＨｚであるプロセッサがあるとする。この場合、例えば、周波数を３段階（１．８ＧＨｚ、３．０ＧＨｚ、４．５ＧＨｚ）想定しておき、夫々のクロック周波数で使用するキャッシュメモリの領域を変えることが考えられる。例として、１．８ＧＨｚの場合にはレベル２キャッシュメモリ（３）のみ使用し、３．０ＧＨｚの場合にはレベル２キャッシュメモリ（１）（２）（３）を使用し、４．５ＧＨｚの場合にはレベル２キャッシュメモリ（２）（３）を使用するものとする。ここで、４．５ＧＨｚの場合は、瞬間に周波数を上げるケースであり、この場合には、プロセッサコア近傍のキャッシュメモリ（即ち、レベル２キャッシュメモリ（１））を熱の影響を考慮して使用しないものとされている。本実施形態のクロックモニタ回路４２は、クロック周波数をモニタするものであるが、図２１に示す第４の実施形態に係るタイマー回路を組み込んで、クロックモニタ回路４２内にタイマー機能を備え、周期的に電源電圧の低下（又は、遮断）を実施してもよい。
【００６４】
５．１．（４）第４の例
図２３は、第５の実施形態に係るプロセッサチップｃ１の回路構成の第４の例を示す図である。図２３に示すプロセッサチップｃ１の動作制御回路６に含まれるキャッシュブロック電源制御回路５０は、同じく動作制御回路６に備わる稼働率算出回路４８の算出する、プロセッサコアにおける演算ユニットの稼働率に基づいて、電源電圧を変動（又は、遮断）させる。通常、プロセッサコア内部の熱の発生は、演算ユニットの使用頻度に大きく影響を受ける。例えば、プロセッサによっては整数演算ユニットと小数演算ユニットは発熱しやすい傾向がある。このことを利用して、プロセッサコア内の命令から小数や整数演算ユニットの稼働率を算出する。図２３に示す稼働率算出回路４８は、プロセッサコアに含まれる命令デコード部５２が小数／整数演算回路５４に与える命令に基づいて、小数／整数演算回路（演算ユニット）の稼働率を計算する。稼働率算出回路４８が算出する稼働率が一定の基準を超えた場合に、キャッシュブロック電源制御回路５０は、キャッシュメモリの電源電圧低下（又は、遮断）を開始する。なお、小数／整数演算回路の動作周波数も発熱に影響するため、稼働率算出回路４８は、命令デコード部５２が小数／整数演算回路５４に与える命令だけでなく、プロセッサコアの動作周波数にも基づいて、稼働率を算出するような構成であってもよい。
【００６５】
５．１．（５）第５の例
図２４は、第５の実施形態に係るプロセッサチップｃ１の回路構成の第５の例を示す図である。図２４に示すプロセッサチップｃ１の動作制御回路６に含まれるキャッシュブロック電源制御回路５８は、同じく動作制御回路６に備わるキャッシュミス率算出回路５６の算出する、キャッシュメモリのミス率に基づいて、電源電圧を変動（又は、遮断）させる。キャッシュミスが多く発生すると、プロセッサコアは、通常、演算をせずに処理を停止する。言い換えると、キャッシュミスが多いプロセッサコアは、演算をあまり行わずに休止していることが多く、よって、あまり発熱しない。このことを利用して、キャッシュのミス率の大小によって、レベル２キャッシュメモリの各ブロックの電源電圧を変更する。図２４に示すプロセッサチップｃ１では、キャッシュミス時にはプロセッサコア内部のＢＣＵ（Ｂｕｓ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）６０から、周辺回路４の外部ＤＲＡＭ制御部６２を介して、外部メモリへのアクセスが発生する。キャッシュミス率算出回路５６は、ＢＣＵ６０を介する外部メモリへのアクセス信号に基づいて、キャッシュミス率を算出する。キャッシュミス率算出回路５６が算出するキャッシュミス率が、所定の時間、所与のしきい値よりも低くなった際に、キャッシュブロック電源制御回路５８は、キャッシュメモリの電源電圧低下（又は、遮断）を開始する。
【００６６】
５．２．まとめ
第５の実施形態では、キャッシュメモリの分割された回路ブロックに対して、放熱の制御を開始するためのトリガに基づいて、放熱のための制御を開始する。放熱の制御を行うためのトリガとして、キャッシュメモリの分割された回路ブロックにおける温度情報、周期、プロセッサコアに与えられるクロック信号の周波数、プロセッサコアにおける演算ユニットの稼働率、及びキャッシュメモリのミス率等が挙げられる。
【００６７】
[第６の実施形態]
６．１．プロセッサチップにおける動作制御回路の配置
第６の実施形態は、キャッシュメモリやプロセッサコアの放熱を制御する動作制御回路６の配置の位置に関するものである。動作制御回路６が周囲の熱の影響により動作許容温度より高くなると、キャッシュメモリやプロセッサコアの放熱が適切に実施されなくなる。従って、動作制御回路６の配置位置に関して、周囲の熱の発生を考慮する必要がある。
【００６８】
６．１．（１）第１の例
例えば、図２５（ａ）に示すように、動作制御回路６がプロセッサコア（プロセッサコア０、プロセッサコア１）の近傍に配置された場合に、動作制御回路６そのものが熱の影響で動作許容温度より高くなってしまう可能性がある。従って、プロセッサコアが発熱し易いプロセッサチップにおいては、動作制御回路６がプロセッサコアと離れて配置されるのが好ましい。図２５（ｂ）は、第６の実施形態に係るプロセッサチップｃ１の回路レイアウトの第１の例を示す図である。網掛け部分は、８５度以上の熱が発生し易い領域を示している。図２５（ｂ）に示すように、プロセッサチップｃ１では、動作制御回路６は、レベル２キャッシュメモリの近傍でありつつ、プロセッサコアから最も遠い位置に配置されている。このように配置することにより、動作制御回路６は、他の部位から発生する熱の影響を殆ど受けず、動作制御回路６そのものが許容範囲以上の温度になることがない。更に、プロセッサコアとの間にキャッシュメモリが存在しているので、プロセッサコアからの熱が動作制御回路６に回り込むまでに、キャッシュメモリにおける電源遮断などの冷却動作が開始され得る。よって、動作制御回路６は低温を維持し易い。
【００６９】
６．１．（２）第２の例
図２６は、第６の実施形態に係るプロセッサチップｃ１の回路レイアウトの第２の例を示す図である。図２６に示す動作制御回路６は、別チップｃ２上に配置されている。このように別チップｃ２上に動作制御回路６が配置されると、シリコン基板や金属配線を経由して熱が伝導することがない。即ち、動作制御回路６が、プロセッサコア及びキャッシュメモリと同一チップ上に形成される場合よりも、動作制御回路６に伝わる熱は確実に遮断され得る。
【００７０】
６．１．（３）第３の例
図２７（ａ）は、第６の実施形態に係るプロセッサチップｃ１の回路レイアウトの第３の例を示す図である。図２７（ａ）に示す回路レイアウトでは、動作制御回路６がプロセッサチップｃ１の外周に配置されている。このように、動作制御回路６をプロセッサチップｃ１の外周に配置することによって、動作制御回路６の熱が逃げ易くなる。特に、三次元積層を行う場合には、プロセッサチップｃ１の上面や下面だけではなく、側面から冷却された空気や液体が送り込まれる可能性があるため、プロセッサチップｃ１の中心よりも外周の方の温度が低くなり得る。ただし、プロセッサチップｃ１の外周上にＩＯセル６４が存在する場合には、図２７（ｂ）に示すように、動作制御回路６はこのＩＯセル６４よりも内側に配置される。
【００７１】
６．１．（４）第４の例
図２８は、第６の実施形態に係るプロセッサチップｃ１の回路レイアウトの第４の例を示す図である。図２８に示す回路は、３枚のプロセッサチップｃ１、ｃ２、ｃ３が三次元積層されたものであり、最上位のプロセッサチップｃ１の上面にはヒート
シンク６６が設けられている。この図２８に示す三次元積層回路では、動作制御回路６は、ヒートシンク６６に最も近い最上位のプロセッサチップｃ１に配置されている。
【００７２】
図２８に示す三次元積層回路で発生する熱は、三次元積層回路の上部のヒートシンク６６と、三次元積層回路の下部のプリント基板から放熱されるので、中央のプロセッサチップｃ２が最も高温になりやすい。これに続いて、プリント基板側のプロセッサチップｃ３、ヒートシンク６６側のプロセッサチップｃ１の順で、温度が高くなる。このような構造の場合には、ヒートシンク６６に近いプロセッサチップｃ１の温度が、最も低温で安定し易いため、この部分に動作制御回路６を実装することが好ましい。このように実装することで、動作制御回路６自体が動作許容温度を超えてしまうことを防止できる。
【００７３】
なお、中央の層のプロセッサチップｃ２に液体等を流して冷却するような構成を有する場合には、冷却液体に接するプロセッサチップｃ２に動作制御回路６を配置してもよく、また、冷却機構に隣接するプロセッサチップ上に動作制御回路６を配置してもよい。プリント基板側へも熱は相当程度逃げるため、プリント基板に最も近いプロセッサチップｃ３に動作制御回路６が配置されてもよい。
【００７４】
６．２．まとめ
第６の実施形態では、プロセッサコアとレベル２キャッシュメモリが適宜分割されたプロセッサチップにおいて、プロセッサコアやキャッシュメモリの放熱を制御する動作制御回路が、低温を維持する位置に配置される。このようにすることにより、動作制御回路が動作許容温度より高温になることが回避される。
【００７５】
[第７の実施形態]
７．１．従来の三次元集積回路の構成
第７の実施形態は、複数のプロセッサチップを積層してなる三次元集積回路に関するものである。まず、一般的な、複数のプロセッサチップからなる三次元集積回路について説明する。
【００７６】
図２９（ａ）は、図２９（ｂ）に示すプロセッサコア、レベル１キャッシュメモリ及びレベル２キャッシュメモリを含むプロセッサチップを、２枚積層した三次元集積回路の側面図である。夫々のプロセッサチップは単体でも動作するように設計されており、４つのプロセッサコア、並びにレベル１キャッシュメモリ及びレベル２キャッシュメモリが、同一のプロセッサチップ内に実装されている。周辺には、グラフィックス回路や外部メモリへアクセスするための周辺回路４が実装されている。プロセッサチップの中央部分に配置されたバンプ６８を経由して、上記のような基本構成を持つプロセッサチップｃ１を別のプロセッサチップｃ２と接続することによって、三次元でのマルチプロセッサが実現される。ボード上でマルチプロセッサの構成を実現することも可能であるが、プロセッサチップ同士をバンプ６８で直接接続する方が、広帯域で動作し、消費電力が低くなり、且つ高速で動作する回路となる。
【００７７】
このように積層される三次元集積回路では、商品グレードによってプロセッサコア数を変えることができる。例えば、図３０（ａ）及び（ｂ−１）（ｂ−２）（ｂ−３）に示すように、ローエンド向けでは１チップで４コアの構成、ミドルレンジ向けでは２チップで８コアの構成、ハイエンド向けでは４チップで１６コアの構成として、マルチコアプロセッサシステムが構築され得る。このような三次元集積回路は、大量に作成された同一チップを積層させて製造することができるため、チップのマスクのコストを抑えることができ、更に生産工場における生産ラインが有効に活用され得る。
【００７８】
一般に、集積回路は、面積が大きくなればなるほど良品率が低下するため、三次元集積回路は、歩留りコストの面でも有利である。特に、プロセッサチップのような数百ｍｍ２を超える大きいチップの歩留り対策として、小さいチップに分割して三次元積層することは有効である。
【００７９】
７．２．同一チップ積層時の熱についての問題
同一のプロセッサチップを複数積層させた場合には、熱の発生が問題となる。図３１（ａ）は、２枚のプロセッサチップｃ１、ｃ２を積層させた三次元集積回路の側面図であり、図３１（ｂ）は、２枚のプロセッサチップｃ１、ｃ２を積層させる場合の模式図である。図３１（ａ）（ｂ）に示すプロセッサチップは、１枚あたり２領域のプロセッサコアと２領域のレベル２キャッシュメモリを備える。
【００８０】
プロセッサチップでは、レベル２キャッシュメモリにくらべてプロセッサコア内の温度が上昇しやすい傾向がある。図３１（ｂ）に示すプロセッサチップｃ１、ｃ２において、発熱量の多い部分は、プロセッサコア０とプロセッサコア１である。レベル２キャッシュメモリは記憶素子であり、メモリを構成する全てのセルが同時に活性化することはないため発熱量は少ない。これらのプロセッサチップを単純に積層させた場合には、図３１（ｂ）に示すように、２枚のプロセッサチップｃ１、ｃ２における、プロセッサコアの部分同士が重なり合う。この場合、熱源が垂直方向において重なってしまうため、２枚のプロセッサチップｃ１、ｃ２のプロセッサコアの部分の温度が非常に高くなる。発明者は、シミュレーションにより、プロセッサチップを単体で動作させたときよりも、１０度以上温度が上がることを確認している。図３１（ｂ）に示すような構成では、単体のプロセッサチップで動作させる構成よりも、性能が低下してしまう。
【００８１】
７．３．積層構造
第７の実施形態は、上述の問題を解決するものである。本実施形態に係る三次元積層回路は、２枚以上のプロセッサチップを積層して構成される三次元集積回路であって、その中の少なくとも２枚のプロセッサチップが同一の回路ブロックレイアウトを持ち、且つそれら２枚のプロセッサチップが層間で配置を変えて積層する構造を備えることを特徴とする。ここでの「同一の回路ブロックレイアウト」ということは、プロセッサチップのマスクにおいて、配線層以外のトランジスタ層が同一であることを指すものとする。言い換えると、ＦＥＯＬ工程（Ｆｒｏｎｔ  Ｅｎｄ  ｏｆ  Ｌｉｎｅ）で使用するマスクが一致することである。
【００８２】
７．３．（１）第１の例
図３２（ａ）は、２枚のプロセッサチップｃ１、ｃ２を積層させた、第７の実施形態に係る三次元集積回路の側面図であり、図３２（ｂ）は、第７の実施形態に係る三次元集積回路における、２枚のプロセッサチップｃ１、ｃ２を積層させる場合の模式図である。第７の実施形態では、プロセッサチップｃ１とプロセッサチップｃ２とを、１８０度回転させて積層している。このように、プロセッサチップｃ１、ｃ２同士を１８０度回転させて積層することにより、発熱量の多いプロセッサコア部分と発熱量の少ないキャッシュメモリ部分とが重ね合わせられることになる。このように構成することによって、発熱量の多い部分同士が重なることがなくなり、図３１に示す構成にてプロセッサコア同士の重なりにより発生するホットスポットが、発生しなくなる。よって、図３２に示す構成を用いることで、冷却機構のコスト削減や回路の性能向上を見込むことができる。
【００８３】
また、図３２に示す構成では、２枚のプロセッサチップｃ１、ｃ２同士を１８０度回転させて積層させたが、積層させるプロセッサチップ同士による回転の角度は１８０度でなくてもよい。４５度回転でも、９０度回転でもよい。また、プロセッサコアなどの発熱量の多い部分が重ならなければよく、回転させずにオフセットを設けてプロセッサチップ同士をずらして積層してもよい。また、図３３（ａ）（ｂ）に示すように、回転させ且つオフセットを設けて、積層してもよい。
【００８４】
なお、第７の実施形態に係る発明の思想は、同一の回路ブロックレイアウトを持つ２枚のプロセッサチップによってのみ実現されるものではない。複数の回路ブロックから成るチップを２枚以上積層して構成される三次元集積回路であれば、２枚以上のチップ間で回路ブロックレイアウトが異なっていても、第７の実施形態に係る発明の思想は実現され得る。
【００８５】
すなわち、次のような構成の三次元集積回路により第７の実施形態に係る発明の思想は実現される。まず三次元集積回路が、第１のチップと、その第１のチップと直接に積層する第２のチップとを含む。第１のチップが、比較的発熱量の多い回路ブロックと比較的発熱量の少ない回路ブロックと含む。第２のチップも、比較的発熱量の多い回路ブロックと比較的発熱量の少ない回路ブロックと含む。この場合に、第１のチップにおける比較的発熱量の多い回路ブロックが、第２のチップにおける比較的発熱量の多い回路ブロックと垂直方向に重ならないように、第１のチップと第２のチップとが相互に配置されればよい。
【００８６】
または、第１のチップにおける比較的発熱量の多い回路ブロックと、第２のチップにおける比較的発熱量の多い回路ブロックとが層間で重なる面積が最小となるように、第１のチップと第２のチップとが相互に配置された上で積層されても、第７の実施形態に係る発明の思想は実現される。なおここで、「比較的発熱量の多い回路ブロック」と「比較的発熱量の少ない回路ブロック」というのは、例えば、以下の（１）〜（３）のような回路ブロックのことである。
（１）所定の閾値より発熱量の多いブロックと、所定の閾値より発熱量の少ないブロック。
（２）発熱量が最大である回路ブロックと、それ以外の回路ブロック。
（３）チップ全体の回路ブロックからの発熱量の平均値より発熱量の多いブロックと、チップ全体の回路ブロックからの発熱量の平均値より発熱量の少ないブロック。
【００８７】
三次元集積回路を上述のように構成することにより、発熱量の多い部分同士が重なることが殆どなくなり、よって、ホットスポットが発生しなくなる。その結果として、三次元集積回路における冷却機構のコスト削減や、三次元集積回路の性能向上を見込むことができる。
【００８８】
７．３．（２）第２の例
図３４は、第７の実施形態に係る三次元積層回路の第２の例を示しており、発熱量の少ない部分同士が重なる領域が、更に分けられている。即ち、プロセッサチップｃ１とプロセッサチップｃ２において、プロセッサコアとレベル２キャッシュメモリが重なる領域と、レベル２キャッシュメモリ同士が重なる領域とで、レベル２キャッシュメモリが分けられている。このように構成することで、あるプロセッサチップのプロセッサコアから伝導した熱により、他のプロセッサチップのレベル２キャッシュメモリ（２）が動作許容温度を超えたとしても、他のプロセッサチップにおける残余のレベル２キャッシュメモリ（１）には比較的熱が伝導していないと想定される。このとき、キャッシュメモリの部分停止による性能劣化を最低限に抑えることが可能となる。
【００８９】
また、図３４に示す構成を更に変形して、図３５に示すように各プロセッサチップｃ１、ｃ２の中央部分をレベル３キャッシュメモリとしてもよい。なお、各プロセッサチップの中央の領域は熱による影響を受けにくいため、各プロセッサチップの各コアが共有できるキャッシュメモリとして構成してもよい。
【００９０】
７．３．（３）第３の例
図３６は、第７の実施形態に係る三次元積層回路の第３の例を示す図である。発熱量の少ない部分同士が重なる領域は、それ以外の部分と比べて平均的に温度が低い。このことを利用して、図３６に示す三次元積層回路のように、発熱量の少ない部分同士が重なる領域を高速キャッシュメモリで実装してもよい。高速キャッシュメモリは高速に動作する反面、消費電流が大きくなり発熱が多くなる傾向にある。しかしながら、各プロセッサコアの中央部分におけるキャッシュメモリ同士が重なる領域は比較的低温となるので、高速キャッシュメモリを配置しても熱の問題はあまり大きくならない。特に、キャッシュメモリ同士が重なる領域は、プロセッサコアの近傍になることが多いため、図３６に示す配置は結果的に高速キャッシュメモリの性能が生かされることになる。
【００９１】
また、図３６に示す構成とは別に、発熱量の大きい部分と重なる領域には、図３７に示すように、低電力キャッシュメモリを実装してもよい。発熱量の大きい部分（即ち、例えば、プロセッサコアの部分）と重なるレベル２キャッシュメモリの領域に、消費電力の大きいメモリを配置すると発熱量も大きくなる。このため、低電力キャッシュメモリのような消費電力が小さいキャッシュメモリを配置すれば発熱が抑えられる。
【００９２】
７．３．（４）第４の例
図３８は、第７の実施形態に係る三次元積層回路の第４の例を示す図である。プロセッサ全体の制御回路等は、発熱量の多い部分（例えば、プロセッサコア）と積層時に重なる部分に配置しないことが好ましい。図３８に示す回路では、プロセッサチップ全体の電源の制御を行う電源制御回路３６ａは、キャッシュメモリ同士が重なる領域の中に配置されている。なお、図３８の電源制御回路３６ａは、同じプロセッサチップ上のプロセッサコアに設けられた温度センサ３４ａの検出する温度により、プロセッサチップ全体の電源の制御を行う。
【００９３】
７．４．まとめ
第７の実施形態に係る三次元積層回路は、２枚以上のプロセッサチップを積層して構成される三次元集積回路であって、その中の少なくとも２枚のプロセッサチップが同一の回路ブロックレイアウトを持ち、且つそれら２枚のプロセッサチップが層間で配置を変えて積層される。このようにすることにより、三次元集積回路において、ホットスポットの発生が回避され易くなる。
【００９４】
[第８の実施形態]
８．１．プロセッサコアの動作の制御
８．１．（１）第１の例
図３９（ａ）は、第８の実施形態における三次元集積回路の第１の例の構成を示した図である。第１の例の三次元集積回路は、３枚のプロセッサチップｃ１、ｃ２、ｃ３を積層した三次元集積回路である。図３９（ｂ）は、第８の実施形態に係る、３枚のプロセッサチップｃ１、ｃ２、ｃ３を積層させる場合の模式図である。第８の実施形態に係る三次元集積回路は、マルチプロセッサシステムを構築する。このシステム（三次元集積回路）は、同一回路レイアウトを持つプロセッサチップを３枚重ねて構成されている。１チップあたりに２プロセッサコアが実装されているため、全体として６プロセッサコアのマルチプロセッサシステムとなる。このような三次元マルチコアプロセッサについては、ソフトウェアは、１チップ上に６プロセッサコアが配置されるプロセッサチップ、即ち、６コアマルチプロセッサとして認識する。
【００９５】
前に説明したように、プロセッサチップを積層して構成される三次元集積回路においては、放熱の問題がある。例えば、発熱する回路ブロックの部分が積層により重なり合い、更に同時に動作する場合には、単層のプロセッサチップ以上に熱が発生する場合がある。このような理由から、マルチプロセッサシステムでは、熱の発生を考慮してプログラムが実行されることが好ましい。
【００９６】
図３９に示す三次元集積回路では、まず、プログラムを実行するプロセッサコアが上下層で重ならないように、三次元集積回路に備わる割り当て制御部により制御される。即ち、図３９（ｃ）に示すように、各プロセッサチップで動作するプロセッサコアが三次元方向に重ならないように、割り当て制御部によりプロセス（即ち、プログラム）がプロセッサコアに割り当てられる。
【００９７】
図４０（ａ）は、第８の実施形態に係る三次元集積回路における、３枚のプロセッサチップｃ１、ｃ２、ｃ３と、割り当て制御部７７との関係を示すブロック図である。割り当て制御部７７は、プロセッサコア位置記憶部８８を含む。このプロセッサコア位置記憶部８８は、各プロセッサコア（プロセッサコア１−０、プロセッサコア１−１、プロセッサコア２−０、プロセッサコア２−１、プロセッサコア３−０、プロセッサコア３−１）の三次元集積回路内における位置のデータ（位置データ）を記憶している。
【００９８】
割り当て制御部７７は、例えば、各プロセッサチップｃ１、ｃ２、ｃ３の周辺回路４に含まれている。また、プロセッサコアのうちの一つが、割り当て制御部７７として動作してもよい。即ち、１つのプロセッサコアが割り当て制御部７７を含んでもよい。図４０（ｂ）は、３枚のプロセッサチップｃ１、ｃ２、ｃ３からなる第８の実施形態に係る三次元集積回路において、プロセッサチップｃ１のプロセッサコア１−０が、割り当て制御回路を含む構成を示している。
【００９９】
図３９（ｃ）は、第８の実施形態に係る三次元集積回路が、割り当て制御部７７の制御の下で、各プロセッサチップにおけるプロセッサコアを動作させる動作例を示す表である。図３９（ｃ）に示す表では、例えば、動作例１では、プロセッサチップｃ１のプロセッサコア１−１、プロセッサチップｃ２のプロセッサコア２−０、プロセッサチップｃ３のプロセッサコア３−１が動作する。即ち、隣接するプロセッサチップ間にて上下で重なる部分のプロセッサコアが動作しないように制御される。このようなプロセス（プログラム）割り当てを行うことで、上下で隣接して重なり合う部分のプロセッサコアが、同時に動作することがないため、即ち、熱の発生源として重なることがなくなるため、高温のホットスポットの発生が抑制される。
【０１００】
図３９（ｃ）の表における動作例では、割り当て制御部７７は、特に、プログラムを実行するプロセッサコアが上下層で重ならないように、プロセッサコア位置記憶部８８に記憶される各プロセッサコアの三次元集積回路内における位置データに基づいて、プロセス（プログラム）割り当てを行う。
【０１０１】
割り当て制御部７７は、プロセッサコア位置記憶部８８に記憶される各プロセッサコアの三次元集積回路内における位置データに基づいて、熱の発生を想定して様々に、プロセス（プログラム）を割り当てる制御を行うことができる。まず、割り当て制御部７７は、左右に隣接して配置されたプロセッサコアが同時にプログラムを動作しないように、各プロセッサコアに対するプログラムの割り当てを制御してもよい。図４０（ａ）（ｂ）の例で言えば、例えば、プロセッサコア２−０とプロセッサコア２−１とが、同時にプログラムを動作しないようにプログラムの割り当てが制御されることになる。
【０１０２】
また、割り当て制御部７７は、あるプロセッサコアがプログラムを動作しているときに、そのプロセッサコアから最も遠いプロセッサコアが続いてプログラムを動作するように、各プロセッサコアに対するプログラムの割り当てを制御してもよい。図４０（ａ）（ｂ）の例で言えば、例えば、プロセッサコア１−１がプログラムを動作しているとき、プロセッサコア１−１から最も遠いプロセッサコアである、プロセッサコア３−０が続いてプログラムを動作するようにプログラムの割り当てが制御されることになる。
【０１０３】
また、三次元集積回路にヒートシンクが設けられている場合に、割り当て制御部７７は、ヒートシンクの近傍のプロセッサコアが優先してプログラムを動作するように、各プロセッサコアに対するプログラムの割り当てを制御してもよい。例えば、図４０（ｂ）に示す各プロセッサチップｃ１、ｃ２、ｃ３が図４０（ｃ）に示すように積層され、更にプロセッサチップｃ１上にヒートシンク６６が配置されている三次元集積回路では、プロセッサチップｃ１におけるプロセッサコア１−０、プロセッサコア１−１が、他のプロセッサコアに優先してプログラムが割り当てられるように、プログラムの割り当てが制御されることになる。
【０１０４】
また、図４０（ｂ）に示すようにプロセッサコアのうちの一つが割り当て制御部７７を含んでいる場合に、割り当て制御部７７は、その割り当て制御部７７を含むプロセッサコアを回避して、他のプロセッサコアがプログラムを動作するように、各プロセッサコアに対するプログラムの割り当てを制御してもよい。図４０（ｂ）の例で言えば、プロセッサコア１−０が割り当て制御部７７を含んでいるので、プロセッサコア１−０以外のプロセッサコア（プロセッサコア１−１、プロセッサコア２−０、プロセッサコア２−１、プロセッサコア３−０、及び、プロセッサコア３−１）がプログラムを動作するようにプログラムの割り当てが制御されることになる。
【０１０５】
また、プロセッサチップｃ１、ｃ２、ｃ３の周辺回路４のいずれかに、割り当て制御部７７が含まれている場合には、割り当て制御部７７は、その割り当て制御部７７の近傍のプロセッサコアを回避して、他のプロセッサコアがプログラムを動作するように、各プロセッサコアに対するプログラムの割り当てを制御してもよい。図４０（ａ）の例において、例えば、割り当て制御部７７が、プロセッサチップｃ２におけるプロセッサコア２−１の近傍の周辺回路４部分に配置されている場合、プロセッサコア２−１以外のプロセッサコア（プロセッサコア１−０、プロセッサコア１−１、プロセッサコア２−０、プロセッサコア３−０、及び、プロセッサコア３−１）がプログラムを動作するようにプログラムの割り当てが制御されることになる。
【０１０６】
このように、第８の実施形態における三次元集積回路では、プロセッサコア位置記憶部８８に記憶される個々のプロセッサコアの位置データを考慮して、割り当て制御部７７は、各プロセッサコアに対するプログラムの割り当てを制御する。位置データを考慮した各プロセッサコアに対するプログラムの割り当てにより、高温のホットスポットの発生が抑制される。
【０１０７】
８．１．（２）第２の例
図４１（ａ）は、第８の実施形態おける三次元集積回路の第２の例の構成を示した図である。第２の例の三次元集積回路は、２枚のプロセッサチップｃ１、ｃ２を積層した三次元集積回路である。図４１（ｂ）は、第８の実施形態に係る、２枚のプロセッサチップｃ１、ｃ２の模式図である。図３９に示す三次元集積回路では、同一の回路レイアウトを持つプロセッサチップが積層されているが、図４１に示す三次元集積回路では、異なる回路レイアウトを持つプロセッサチップｃ１、ｃ２が積層されている。図４１（ｂ）に示す三次元集積回路は、４プロセッサコアを持つプロセッサチップｃ１と、２プロセッサコアを持つプロセッサチップｃ２とが積層されて構成される、６マルチプロセッサコアの三次元集積回路である。
【０１０８】
図４１（ｂ）に示す例では、プロセッサチップｃ１とプロセッサチップｃ２の回路レイアウトが異なるため、プロセッサチップｃ１のプロセッサコアとプロセッサチップ２のプロセッサコアとは、完全に重なり合うものではない。このような場合には、一方のプロセッサチップのプロセッサコア内部のうち周辺よりも発熱量の多い部分が、別のプロセッサチップのプロセッサコアと重なる場合には、発熱量の多い部分が上下で重なっていると判断すればよい。例えば、小数演算ユニットや整数演算ユニットなどは高温になり易いため、プロセッサコアのうちのこの回路ブロックが、もう一方のプロセッサチップのプロセッサコアと重なる場合には、プロセッサコア同士が上下で重なり合っていると考える。
【０１０９】
図４１（ｃ）に示す表の動作例１のように、プロセッサチップｃ１のプロセッサコア１、２でプログラムを実行している場合には、プロセッサチップｃ２のプロセッサコア１を使わずにプロセッサコア０を使用するように、三次元集積回路に備わる割り当て制御部７７により制御される。割り当て制御部７７がこのように制御することにより、発熱するプロセッサコア同士が上下で重なり合うことがないため、ホットスポットの高温化を抑えることができる。
【０１１０】
その他、第８の実施形態に係る三次元集積回路の第２の例においても、プロセッサコア位置記憶部８８に記憶される個々のプロセッサコアの位置データを考慮して、割り当て制御部７７は、各プロセッサコアに対するプログラムの割り当てを制御することができる。例えば、割り当て制御部７７は、以下の（１）〜（４）に示すように各プロセッサコアに対するプログラムの割り当てを制御する。
（１）左右に隣接して配置されたプロセッサコアが同時にプログラムを動作しないように制御する。
（２）あるプロセッサコアがプログラムを動作しているときにそのプロセッサコアから最も遠いプロセッサコアが続いてプログラムを動作するように制御する。
（３）ヒートシンクに近いプロセッサコアが数多くプログラムを動作するように制御する。
（４）その割り当て制御部７７の近傍のプロセッサコアを回避して、他のプロセッサコアがプログラムを動作するように制御する。
【０１１１】
８．２．まとめ
第８の実施形態は、複数枚のプロセッサチップを積層した三次元集積回路に係るものであって、三次元集積回路内部の個々のプロセッサコアの位置関係が考慮されて、プロセス（プログラム）の割り当てが制御される。例えば、層間にて隣接するプロセッサチップ間で重なる部分のプロセッサコアが動作しないように、プロセス（プログラム）の割り当てが制御される。このようなプロセス（プログラム）割り当てを行うことで、隣接して重なり合う部分のプロセッサコアが、熱の発生源として重なったり集中したりすることが無いため、ホットスポットの発生が抑制され得る。
【０１１２】
[第９の実施形態]
９．１．プロセススケジューリング
９．１．（１）第１の例
図４３は、第９の実施形態に係るプロセススケジューラ７８ａの第１の例のブロック図である。図４２は、その前提となる従来のプロセススケジューラ７８’のブロック図と、２枚のプロセッサチップｃ１、ｃ２を積層させて構成される三次元集積回路における各プロセッサチップｃ１、ｃ２との、関係を示す図である。
【０１１３】
図４２を用いて、プロセッサチップを積層してなる三次元集積回路におけるプロセススケジューリングの処理フローを先に説明する。まず、オペレーティングシステム上で複数のプロセスが受け付けられる。これらのプロセスに対しては、プロセススケジュール部８０’によってスケジューリングが行われ、各プロセッサコア（プロセッサコア１−０、プロセッサコア１−１、プロセッサコア２−０、プロセッサコア２−１）に対応するプロセスキュー部８４ａ、８４ｂ、８４ｃ、８４ｄにプロセスが蓄積される。プロセススケジュール部８０’は、各プロセスに付与された優先度に基づいてスケジューリングを行う。ただし、マルチコアプロセッサ環境においては、各プロセッサコアの負荷量のバランスに基づいてスケジューリングが行われる。このため、プロセススケジュール部８０’は、プロセッサコア負荷取得部８２が取得する各プロセッサコアの負荷量を用いてスケジューリングを行う。スケジューリングのアルゴリズムについては、ここでは説明しない。
【０１１４】
図４３に示す、第９の実施形態に係るプロセススケジューラ７８ａにおけるプロセススケジュール部８０ａでは、プロセッサコア負荷取得部８２における各プロセッサコアの負荷量に関する情報が、プロセッサコア位置記憶部８８及びプロセッサコア温度取得部９０を備えるプロセッサコア負荷修正部８６によって、適宜書き換えられる。
【０１１５】
第９の実施形態に係る、プロセススケジュール部８０ａ及びプロセッサコア負荷取得部８２の処理の概要を以下説明する。プロセススケジュール部８０ａは、プロセッサコア負荷取得部８２が保持する各プロセッサコアの負荷量に応じて、プロセスをプロセスキュー部８４ａ、８４ｂ、８４ｃ、８４ｄに割り当てる。つまり、負荷量が小さいプロセッサコアにタスク（プロセス）を多く割り当て、負荷量が大きいプロセッサコアにタスク（プロセス）を少なく割り当てる。この点を利用して、特に、所定値より高温であるプロセッサコアと積層して重なるプロセッサコアの負荷量を、仮想的に大きくするように、即ち、実際の負荷量より大きくするように、プロセッサコア負荷取得部８２のデータが書き換えられる。
【０１１６】
このために、プロセッサコア位置記憶部８８は、三次元集積回路における各プロセッサコアの位置を記憶している。また、プロセッサコア温度取得部９０は、各プロセッサコアの温度を常時取得している。これらの二種類の情報から、所定値より高温になっているプロセッサコアと積層方向で重なるプロセッサコアの負荷量を、実際の負荷量より大きくするように、プロセッサコア負荷取得部８２のデータが書き換えられる。この書き換え処理は、プロセッサコア負荷修正部８６が行う。
【０１１７】
なお、所定値より高温になっているプロセッサコアの負荷量のみを大きい値に書き換えて、その上下のプロセッサコアを動作させるようにしてもよい。また、プロセッサコア位置記憶部８８にヒートシンクの位置の情報を記憶させておいてもよい。その場合、積層の中央にあるプロセッサコアへあまりプロセスが割り当てられないようにし、反対にヒートシンクに近いプロセッサコアへプロセスが優先して割り当てられるように、プロセッサ負荷修正部８６がプロセッサコア取得部８２における各プロセッサコアの負荷量を書き換えるように構成してもよい。
【０１１８】
なお、図４３に示すプロセッサコア負荷修正部８６は、対象となるプロセッサコアの負荷量を最大値に書き換えて、そのプロセッサコアへのプロセスの割り当てを抑止するものである。ここで、プロセッサコア負荷修正部８６は、対象となるプロセッサコアの負荷量を少し高い値に書き換えて割り当てるプロセスの数を少なくさせる、というものであってもよい。このようにすることで、対象となるプロセッサコアの負荷を低くすることができるため、発熱量を抑えることができる。また、このとき、書き換えのための負荷状態の情報は、プロセッサコア温度取得部９０のデータと、プロセッサコア位置記憶部８８のデータとに基づいて、多めの値が算出されるようにしてもよい。このようにすることによって、温度が高いプロセッサコアに積層により重なるプロセッサコアの負荷量を擬似的に高く見せることができ、プロセス割り当て量が見かけ上は減るため発熱量が少なくなる。
【０１１９】
９．１．（２）第２の例
図４４は、第９の実施形態に係るプロセススケジューラ７８ｂの第２の例のブロック図である。図４４に示すプロセススケジューラ７８ｂにおけるプロセススケジュール部８０ｂには、プロセッサコア位置記憶部８８及びプロセッサコア温度取得部９０を備えるプロセスキュー無効化有効化制御部９２が繋げられている。プロセスキュー無効化有効化制御部９２は、プロセスキュー部８４ａ、８４ｂ、８４ｃ、８４ｄの無効化及び有効化を行う。
【０１２０】
つまり、図４４に示す構成では、プロセスキュー無効化有効化制御部９２が、各プロセッサコアに対応するプロセスキュー部８４ａ、８４ｂ、８４ｃ、８４ｄを無効化（若しくは、有効化）する。有効化及び無効化を行うために、プロセスキュー無効化有効化制御部９２は、各プロセッサコアの位置の情報と各プロセッサコアの温度の情報を用いる。
【０１２１】
プロセッサコア温度取得部９０は、各プロセッサコアの温度情報を、プロセッサチップ上に実装されたサーマルダイオード等の回路から取得してもよいし、負荷状況と外気温等から所定のアルゴリズムにより推測してもよい。プロセッサコア温度取得部９０により得られた各プロセッサコアの温度情報は、プロセスキュー無効化有効化制御部９２に与えられる。また、プロセスキュー無効化有効化制御部９２は、プロセッサコア位置記憶部８８に記憶された各プロセッサコアの位置の情報を用いて、各プロセッサコアの温度と、隣接するプロセッサコアの位置関係を把握する。
【０１２２】
プロセスキュー無効化有効化制御部９２は、各プロセッサコアの温度と位置関係とから、無効化、有効化するプロセスキュー部を決定する。決定の手順として、例えば、所定値より高温であるプロセッサコアと積層して上下で重なるプロセッサコアに対するプロセスキュー部を無効化する（停止する）、というものが挙げられる。
【０１２３】
更に、その他の決定の手順として、以下の（１）〜（１１）の制御ルールのいずれかのものを使ってもよい。
（１）現在動作しているプロセッサコアの中で最も熱いものと積層して上下で重なるプロセッサコアのプロセスキュー部を無効化する（停止する）。
（２）現在動作しているプロセッサコアの中で最も熱いものと上下左右で接するプロセッサコアのプロセスキュー部を無効化する（停止する）。
（３）現在動作しているプロセッサコアの中で最も熱いものを停止して、同時にそのプロセッサコアと積層して上下で重なるプロセッサコアのプロセスキュー部を有効化する。
（４）現在動作しているプロセッサコアの中で最も熱いものを停止して、同時にそのプロセッサコアと上下左右で接する（左上、右上など斜め方向での隣接も含む）プロセッサコアのプロセスキュー部を有効化する。
（５）現在動作しているプロセッサコアの中でしきい値以上の温度を示すものと積層して上下で重なるプロセッサコアのプロセスキュー部を無効化する（停止する）。
（６）現在動作しているプロセッサコアの中でしきい値以上の温度を示すものと上下左右で接するプロセッサコアのプロセスキュー部を無効化する（停止する）。
（７）現在動作しているプロセッサコアの中でしきい値以上の温度を示すものを停止して、同時にそのプロセッサコアと積層して上下で重なるプロセッサコアのプロセスキュー部を有効化する。
（８）現在動作しているプロセッサコアの中でしきい値以上の温度を示すものを停止して、同時にそのプロセッサコアと上下左右で接する（左上、右上など斜め方向での隣接も含む）プロセッサコアのプロセスキュー部を有効化する。
（９）温度とは無関係に、隣接するプロセッサチップ間で隣り合うプロセッサコアが同時に動作しないようにプロセスキュー部を有効化又は無効化する。
（１０）温度とは無関係に、上下左右方向で隣接するプロセッサチップ間で隣り合うプロセッサコアが同時に動作しないようにプロセスキュー部を有効化又は無効化する。
（１１）ヒートシンクに接するプロセッサチップ（１枚目）については、全プロセッサコアを使用可能にし、それ以外のプロセッサチップにおけるプロセッサコアに対しては、上述の（１）〜（１０）の手順を行う。
【０１２４】
以上のような決定手順に従って、プロセスキュー無効化有効化制御部９２が、各プロセスキュー部の有効化及び無効化を制御する。上述の（１）〜（８）の処理は、図４３に示すプロセススケジュール部８０ａで行われてもよい。この場合、プロセスキュー部の有効化及び無効化の制御は、プロセッサコア負荷取得部８２が行う。
【０１２５】
また、プロセスキュー無効化有効化制御部９２は、プロセスキュー部を無効化せずに、キューの大きさを変更してそのプロセッサコアが実行できるプロセスの数を少なくなるように制御してもよい。このようにすることで、プロセッサコアの動作負荷が軽くなるため、プロセッサコアにおけるホットスポットの温度が抑えられる。
【０１２６】
なお、図４３及び図４４に示す例では、隣接するプロセッサチップは、１（プロセッサ）チップまでとしたが、隣接するプロセッサチップを、２チップ若しくは３チップまでとしてもよい。また、同一プロセッサチップ内の隣接するプロセッサコアも、隣り合う２コア（例えば、プロセッサコア１と隣り合うのは、プロセッサコア０及びプロセッサコア２）としても、隣り合う３コアとしてもよい。
【０１２７】
また、多数のプロセッサチップが積層される三次元集積回路においては、ヒートシンクに近いプロセッサチップとそれ以外のプロセッサチップとでは、放熱性能（即ち、熱のこもり具合）が異なる。このため、ヒートシンクに近いプロセッサチップ（１枚目〜３枚目）では全プロセッサコアを動作させ、４枚目〜５枚目のプロセッサチップでは隣接する１プロセッサコアを停止させ、５枚目〜８枚目のプロセッサチップでは隣接する２プロセッサコアを停止させ、８枚目〜１０枚目のプロセッサチップでは隣接する１プロセッサコアを停止させてもよい。ただし、この構成では１１枚目のプロセッサチップは無く、プリント基板があり、そこから放熱があることから、最後の３枚では隣接する１プロセッサコアを停止させるものとしている。なお、「１〜３」、「４〜５」、「５〜８」及び「８〜１０」という枚数は一例に過ぎない。
【０１２８】
なお、ヒートシンクは、金属製のヒートシンクだけではなく、液体冷却を行う水冷や、空気を流す空冷を含む。この場合、「ヒートシンクに隣接する」ということは、冷却媒体に接する部分にあることとする。例えば、プロセッサチップ間に冷却液体を流す水冷では、液体流路と接するプロセッサチップがヒートシンクに隣接するプロセッサチップである、ということになる。
【０１２９】
なお、図４３及び図４４に示すプロセススケジューラ７８は、ＣＰＵに対してオペレーティングシステム上のソフトウェアとして実装されることが前提であるが、同様の仕組みを持つハードウェアプロセススケジューラであってもよい。また、本明細書では、プロセスと称しているが、それらがタスクであってもよいし、プログラムであってもよい。
【０１３０】
９．１．まとめ
第９の実施形態は、複数枚のプロセッサチップを積層した三次元集積回路に対するプロセススケジューラに係るものであって、各プロセッサコアに対するプロセスキュー部へのプロセスのスケジューリングを制御するプロセススケジュール部への入力データが制御される。このようにすることにより、局所的なプロセッサコアにおけるホットスポットの発生が回避される。
【０１３１】
[その他の実施形態]
以上の文中において、レベル２キャッシュメモリと記載されて部分については、レベル３キャッシュメモリでもレベル４キャッシュメモリでもよく、キャッシュメモリの階層に依存するものではない。
【０１３２】
［発明の一態様の概要］
（１）本発明の第１の態様の集積回路装置は、
メモリ回路で構成される第１の回路と、演算回路で構成される第２の回路と、制御回路とを含み、
前記第１の回路は、前記第２の回路との間の配置位置の距離に応じて複数の回路ブロックに分割され、
前記制御回路は、分割された夫々の回路ブロックを独立して制御することを特徴とする。
【０１３３】
（２）本発明の第２の態様の集積回路装置は、第１の態様の集積回路装置において、
前記制御回路による制御が無ければ、前記第２の回路が動作することによって発生する熱の影響により、前記第１の回路は、動作が可能な温度範囲を超えることを特徴とする。
【０１３４】
（３）本発明の第３の態様の集積回路装置は、第２の態様の集積回路装置において、
前記メモリ回路がキャッシュメモリであり、前記演算回路がプロセッサコアである。
【０１３５】
（４）本発明の第４の態様の集積回路装置は、第３の態様の集積回路装置において、
前記制御回路は、分割された夫々の前記回路ブロックに対して、独立して電源電圧の供給、遮断の制御を行うことを特徴とする。
【０１３６】
（５）本発明の第５の態様の集積回路装置は、第３の態様の集積回路装置において、
前記制御回路は、分割された夫々の前記回路ブロックに対して、独立して電源電圧の変更の制御を行うことを特徴とする。
【０１３７】
（６）本発明の第６の態様の集積回路装置は、第３の態様の集積回路装置において、
前記制御回路は、分割された夫々の前記回路ブロックに対して、独立してクロックゲーティングの制御を行うことを特徴とする。
【０１３８】
（７）本発明の第７の態様の集積回路装置は、第３の態様の集積回路装置において、
前記制御回路は、分割された夫々の前記回路ブロックに対して、独立してメモリクロックの周波数の変更の制御を行うことを特徴とする。
【０１３９】
（８）本発明の第８の態様の集積回路装置は、第３の態様の集積回路装置において、
前記制御回路は、分割された夫々の前記回路ブロックに対して、独立してメモリクロックのデューティ比の変更の制御を行うことを特徴とする。
【０１４０】
（９）本発明の第９の態様の集積回路装置は、第３の態様の集積回路装置において、
前記制御回路は、分割された夫々の前記回路ブロックにおけるサブアレイのチップセレクト信号を、独立して制御することを特徴とする。
【０１４１】
（１０）本発明の第１０の態様の集積回路装置は、第３の態様の集積回路装置において、
前記制御回路は、分割された夫々の前記回路ブロック内の温度に基づいて、前記回路ブロックを独立して制御することを特徴とする。
【０１４２】
（１１）本発明の第１１の態様の集積回路装置は、第３の態様の集積回路装置において、
前記制御回路は、分割された夫々の前記回路ブロックに対して備わるタイマーの計測する時間に基づいて、前記回路ブロックを独立して制御することを特徴とする。
【０１４３】
（１２）本発明の第１２の態様の集積回路装置は、第３の態様の集積回路装置において、
前記制御回路は、前記第２の回路に与えられるクロックの周波数に基づいて、前記回路ブロックを独立して制御することを特徴とする。
【０１４４】
（１３）本発明の第１３の態様の集積回路装置は、第３の態様の集積回路装置において、
前記制御回路は、前記第２の回路における演算回路の稼働率に基づいて、前記回路ブロックを独立して制御することを特徴とする。
【０１４５】
（１４）本発明の第１４の態様の集積回路装置は、第３の態様の集積回路装置において、
前記制御回路は、前記キャッシュメモリへのキャッシュミス率に基づいて、前記回路ブロックを独立して制御することを特徴とする。
【０１４６】
（１５）本発明の第１５の態様の集積回路装置は、第３の態様の集積回路装置において、
前記制御回路が、前記第２の回路から最も遠い側の第１の回路に隣接する位置に配置されることを特徴とする。
【０１４７】
（１６）本発明の第１６の態様の集積回路装置は、第３の態様の集積回路装置において、
前記制御回路が、別チップにされる配置することを特徴とする。
【０１４８】
（１７）本発明の第１７の態様の集積回路装置は、第３の態様の集積回路装置において、
前記制御回路が、前記第２の回路から最も遠い側の同一チップの外周に設置されることを特徴とする。
【０１４９】
（１８）本発明の第１８の態様の集積回路装置は、第３の態様の集積回路装置において、
更に、ヒートシンクを含み、
前記制御回路が、前記ヒートシンクに最も近いチップの層に配置されることを特徴とする。
【０１５０】
（１９）本発明の第１９の態様の三次元集積回路は、
第１のチップと、第１のチップと直接に積層する第２のチップとを含む三次元集積回路であって、
前記第１のチップは、比較的発熱量の多い回路ブロックと比較的発熱量の少ない回路ブロックと含み、
前記第２のチップは、比較的発熱量の多い回路ブロックと比較的発熱量の少ない回路ブロックと含み、
前記第１のチップにおける比較的発熱量の多い回路ブロックと、前記第２のチップにおける比較的発熱量の多い回路ブロックとが、層間で重なる面積が最小となるように、前記第１のチップと前記第２のチップとが相互に配置された上で積層されていることを特徴とする。
【０１５１】
（２０）本発明の第２０の態様の三次元集積回路は、
２枚以上のチップを積層して構成される三次元集積回路であって、
その中の少なくとも２枚のチップが同一回路ブロックレイアウトを持つチップであり、
前記少なくとも２枚のチップの配置が層間で異なるように配置されていることを特徴とする。
【０１５２】
（２１）本発明の第２１の態様の三次元集積回路は、第２０の形態の三次元集積回路において、
同一回路ブロックレイアウトを持つ前記少なくとも２枚のチップにおいて、一方のチップは他方のチップに対して９０度若しくは１８０度回転して積層されていることを特徴とする。
【０１５３】
（２２）本発明の第２２の態様の三次元集積回路は、第２０の形態の三次元集積回路において、
同一回路ブロックレイアウトを持つ前記少なくとも２枚のチップがプロセッサチップであって、マルチコアシステムを構成する。
【０１５４】
（２３）本発明の第２３の態様の三次元集積回路は、第２２の形態の三次元集積回路において、
前記少なくとも２枚のプロセッサチップにおいて、一方のプロセッサチップが他方のプロセッサチップに対して９０度若しくは１８０度回転して積層されていることを特徴とする。
【０１５５】
（２４）本発明の第２４の態様の三次元集積回路は、第２３の形態の三次元集積回路において、
積層時にレベル２キャッシュメモリ同士が上下方向で隣接する第１の領域が、前記少なくとも２枚のプロセッサチップの夫々において分割されており、
分割された前記第１の領域は、夫々のプロセッサチップにて独立して制御されることを特徴とする。
【０１５６】
（２５）本発明の第２５の態様の三次元集積回路は、第２４の形態の三次元集積回路において、
分割された前記第１の領域が、レベル３キャッシュメモリで構成されることを特徴とする。
【０１５７】
（２６）本発明の第２６の態様の三次元集積回路は、第２５の形態の三次元集積回路において、
分割された前記第１の領域が、高速キャッシュメモリで構成されることを特徴と  
する。
【０１５８】
（２７）本発明の第２７の態様の三次元集積回路は、第２４の形態の三次元集積回路において、
前記少なくとも２枚のプロセッサチップの夫々において、積層時にプロセッサコアと上下方向で隣接する第２の領域が、低消費電力キャッシュメモリで構成されることを特徴とする。
【０１５９】
（２８）本発明の第２８の態様の三次元集積回路は、第２５の形態の三次元集積回路において、
更に、制御回路を含み、
前記制御回路が、前記第１の領域に配置されていることを特徴とする。
【０１６０】
（２９）本発明の第２９の態様の三次元集積回路は、
第１のチップと、第１のチップと直接に積層する第２のチップとを含む三次元集積回路であって、
前記第１のチップは、比較的発熱量の多い回路ブロックと比較的発熱量の少ない回路ブロックと含み、
前記第２のチップは、比較的発熱量の多い回路ブロックと比較的発熱量の少ない回路ブロックと含み、
前記第１のチップにおける比較的発熱量の多い回路ブロックが、前記第２のチップにおける比較的発熱量の多い回路ブロックと垂直方向に重ならないように、前記第１のチップと前記第２のチップとが相互に配置され上で積層されていることを特徴とする。
【０１６１】
（３０）本発明の第３０の態様の三次元プロセッサ装置は、
積層する複数のプロセッサチップと、割り当て制御部とを含む三次元プロセッサ装置であって、
各プロセッサチップは、一つ若しくは複数のプロセッサコアを備え、
前記割り当て制御部は、前記三次元プロセッサ装置における各プロセッサコアの位置のデータを記憶しているプロセッサコア位置記憶部を含み、
前記割り当て制御部は、前記プロセッサコア位置記憶部に記憶される各プロセッサコアの位置のデータに基づき、各プロセッサコアに対するプログラムの割り当てを制御する。
【０１６２】
（３１）本発明の第３１の態様の三次元プロセッサ装置は、第３０の形態の三次元プロセッサ装置において、
前記割り当て制御部は、積層するプロセッサチップ間において、上下に隣接して配置されたプロセッサコアが同時にプログラムを動作しないように各プロセッサコアに対するプログラムの割り当てを制御する。
【０１６３】
（３２）本発明の第３２の態様の三次元プロセッサ装置は、第３０の形態の三次元プロセッサ装置において、
前記割り当て制御部は、積層するプロセッサチップ間において、左右に隣接して配置されたプロセッサコアが同時にプログラムを動作しないように各プロセッサコアに対するプログラムの割り当てを制御する。
【０１６４】
（３３）本発明の第３３の態様の三次元プロセッサ装置は、第３０の形態の三次元プロセッサ装置において、
前記割り当て制御部は、積層するプロセッサチップ間において、左右に隣接して配置されたプロセッサコアが同時にプログラムを動作しないように各プロセッサコアに対するプログラムの割り当てを制御する。
【０１６５】
（３４）本発明の第３４の態様の三次元プロセッサ装置は、第３０の形態の三次元プロセッサ装置において、
前記割り当て制御部は、一つのプロセッサコアがプログラムを動作しているときに、そのプロセッサコアから最も遠いプロセッサコアが続いてプログラムを動作するように、各プロセッサコアに対するプログラムの割り当てを制御する。
【０１６６】
（３５）本発明の第３５の態様の三次元プロセッサ装置は、第３０の形態の三次元プロセッサ装置において、
更に、ヒートシンクを含み、
前記割り当て制御部は、前記ヒートシンクの近傍のプロセッサコアが優先してプログラムを動作するように各プロセッサコアに対するプログラムの割り当てを制御する。
【０１６７】
（３６）本発明の第３６の態様の三次元プロセッサ装置は、第３０の形態の三次元プロセッサ装置において、
前記割り当て制御部は、前記プロセッサコアのうちの一つに含まれており、
割り当て制御部は、その割り当て制御部を含むプロセッサコアを回避して、他のプロセッサコアがプログラムを動作するように、各プロセッサコアに対するプログラムの割り当てを制御する。
【０１６８】
（３７）本発明の第３７の態様の三次元プロセッサ装置は、第３０の形態の三次元プロセッサ装置において、
前記複数のプロセッサチップが、同一の回路ブロックレイアウトを有することを特徴とする。
【０１６９】
（３８）本発明の第３８の態様のプロセススケジューラは、
複数のプロセッサチップを積層させて構成される三次元マルチコアプロセッサ装置における複数のプロセッサコアに対するプロセススケジューラであって、
各プロセッサコアにおける負荷量を取得する負荷取得部と、
三次元マルチコアプロセッサ装置における個々のプロセッサコアに対応する各プロセスキュー部に、各プロセッサコアの負荷量に基づいて、プロセスをスケジューリングするスケジュール部と、
前記プロセッサコア負荷取得部における、各プロセッサコアの負荷量を修正する負荷修正部と、
各プロセッサコアの位置を記憶する位置記憶部と、
各プロセッサコアの温度を取得する温度取得部と
を備え、
前記負荷修正部は、前記位置記憶部の記憶する各プロセッサコアの位置情報と、前記温度取得部の取得する各プロセッサコアの温度情報とを用いて、負荷取得時における各プロセッサコアの負荷量を修正することを特徴とする。
【０１７０】
（３９）本発明の第３９の態様のプロセススケジューラは、第３８の形態のプロセススケジューラにおいて、
前記負荷修正部は、前記位置記憶部の記憶する各プロセッサコアの位置情報と、前記温度取得部の取得する各プロセッサコアの温度情報とを用いて、所定値より高温であるプロセッサコアと上下に隣接して配置されたプロセッサコアの負荷量を、前記スケジュール部がスケジューリングを停止するように修正することを特徴とする。
【０１７１】
（３９）本発明の第４０の態様のプロセススケジューラは、
複数のプロセッサチップを積層させて構成される三次元マルチコアプロセッサ装置における複数のプロセッサコアに対するプロセススケジューラであって、
各プロセッサコアに対するプロセスのキューを行い各プロセッサコアに順にプロセスを実行させるプロセスキュー部と、
前記プロセスキュー部の夫々の無効化及び有効化を制御するキュー無効化有効化制御部と、
各プロセッサコアの位置を記憶する位置記憶部と、
各プロセッサコアの温度を取得する温度取得部と
を備え、
前記キュー無効化有効化制御部は、前記位置記憶部の記憶する各プロセッサコアの位置情報と、前記温度取得部の取得する各プロセッサコアの温度情報とを用いて、前記プロセスキュー部の無効化及び有効化を制御することを特徴とする。
【０１７２】
（４０）本発明の第４１の態様のプロセススケジューラは、第４０の形態のプロセススケジューラにおいて、
前記キュー無効化有効化制御部は、前記位置記憶部の記憶する各プロセッサコアの位置情報と、前記温度取得部の取得する各プロセッサコアの温度情報とを用いて、所定値より高温であるプロセッサコアと上下に隣接して配置されたプロセッサコアに対するプロセスキュー部を無効化することを特徴とする。
【産業上の利用可能性】
【０１７３】
本開示に係る、プロセッサチップの高温部分を冷却する回路構造及び制御方法、異なる階層のチップ同士で発熱源となる回路が重ならないように配置されるチップレイアウト及び回路レイアウト、及び、チップ上にホットスポットができないように各回路の動作やプロセス割り振りを制限する方法は、三次元集積回路に対して利用されることが好ましい。
【符号の説明】
【０１７４】
４・・・周辺回路、６・・・動作制御回路、１２・・・タグマスク回路、１４・・・ＳＲＡＭのサブアレイ、１６・・・ＳＲＡＭアレイ、６６・・・ヒートシンク、７８ａ、７８ｂ・・・プロセススケジューラ、８０ａ、８０ｂ・・・プロセススケジュール部、８２・・・プロセッサコア負荷取得部、８６・・・プロセッサコア負荷修正部、８８・・・プロセッサコア位置記憶部、９０・・・プロセッサコア温度取得部、９２・・・プロセスキュー無効化有効化制御部、ｃ１、ｃ２、ｃ３・・・プロセッサチップ。
【図１】
2013080426.tif 000003
【図２】
2013080426.tif 000004
【図３】
2013080426.tif 000005
【図４】
2013080426.tif 000006
【図５】
2013080426.tif 000007
【図６】
2013080426.tif 000008
【図７】
2013080426.tif 000009
【図８】
2013080426.tif 000010
【図９】
2013080426.tif 000011
【図１０】
2013080426.tif 000012
【図１１】
2013080426.tif 000013
【図１２】
2013080426.tif 000014
【図１３】
2013080426.tif 000015
【図１４】
2013080426.tif 000016
【図１５】
2013080426.tif 000017
【図１６】
2013080426.tif 000018
【図１７】
2013080426.tif 000019
【図１８】
2013080426.tif 000020
【図１９】
2013080426.tif 000021
【図２０】
2013080426.tif 000022
【図２１】
2013080426.tif 000023
【図２２】
2013080426.tif 000024
【図２３】
2013080426.tif 000025
【図２４】
2013080426.tif 000026
【図２５】
2013080426.tif 000027
【図２６】
2013080426.tif 000028
【図２７】
2013080426.tif 000029
【図２８】
2013080426.tif 000030
【図２９】
2013080426.tif 000031
【図３０】
2013080426.tif 000032
【図３１】
2013080426.tif 000033
【図３２】
2013080426.tif 000034
【図３３】
2013080426.tif 000035
【図３４】
2013080426.tif 000036
【図３５】
2013080426.tif 000037
【図３６】
2013080426.tif 000038
【図３７】
2013080426.tif 000039
【図３８】
2013080426.tif 000040
【図３９】
2013080426.tif 000041
【図４０】
2013080426.tif 000042
【図４１】
2013080426.tif 000043
【図４２】
2013080426.tif 000044
【図４３】
2013080426.tif 000045
【図４４】
2013080426.tif 000046
【国際調査報告】
2013080426.tif 000047
2013080426.tif 000048
2013080426.tif 000049
2013080426.tif 000050